Merge commit 'release-4-0-0alpha1' into v4-0-test
authorStefan Metzmacher <metze@samba.org>
Fri, 21 Dec 2007 04:23:22 +0000 (05:23 +0100)
committerStefan Metzmacher <metze@samba.org>
Fri, 21 Dec 2007 04:23:22 +0000 (05:23 +0100)
3580 files changed:
.bzrignore
NEWS
README [new file with mode: 0644]
howto.txt
services/json.esp [deleted file]
services/json_auth.esp [deleted file]
services/jsondate.esp [deleted file]
services/qooxdoo/test.esp [deleted file]
services/request.esp [deleted file]
services/resources.esp [deleted file]
services/samba/adm.esp [deleted file]
services/samba/config.esp [deleted file]
services/samba/ejsnet.esp [deleted file]
services/samba/ldb.esp [deleted file]
services/samba/management.esp [deleted file]
services/samba/system.esp [deleted file]
source/VERSION
source/auth/auth.c
source/auth/auth_developer.c
source/auth/auth_sam.c
source/auth/auth_server.c
source/auth/auth_simple.c
source/auth/auth_unix.c
source/auth/auth_util.c
source/auth/auth_winbind.c
source/auth/credentials/credentials.c
source/auth/credentials/credentials.h
source/auth/credentials/credentials_files.c
source/auth/gensec/cyrus_sasl.c
source/auth/gensec/gensec.c
source/auth/gensec/gensec.h
source/auth/gensec/gensec_gssapi.c
source/auth/gensec/gensec_krb5.c
source/auth/gensec/schannel.c
source/auth/gensec/schannel_sign.c
source/auth/gensec/schannel_state.c
source/auth/gensec/socket.c
source/auth/gensec/spnego.c
source/auth/gensec/spnego_parse.c
source/auth/kerberos/config.mk
source/auth/kerberos/gssapi_parse.c
source/auth/kerberos/kerberos_util.c
source/auth/kerberos/krb5_init_context.c
source/auth/ntlm_check.c
source/auth/ntlmssp/ntlmssp.c
source/auth/ntlmssp/ntlmssp.h
source/auth/ntlmssp/ntlmssp_client.c
source/auth/ntlmssp/ntlmssp_parse.c
source/auth/ntlmssp/ntlmssp_server.c
source/auth/ntlmssp/ntlmssp_sign.c
source/auth/sam.c
source/autogen.sh
source/build/m4/public.m4
source/build/smb_build/input.pm
source/build/smb_build/makefile.pm
source/build/smb_build/output.pm
source/build/smb_build/summary.pm
source/cldap_server/cldap_server.c
source/cldap_server/netlogon.c
source/client/cifsdd.c
source/client/cifsddio.c
source/client/client.c
source/client/config.mk
source/client/smbmount.c
source/client/smbspool.c
source/cluster/cluster.c
source/cluster/ctdb/brlock_ctdb.c
source/cluster/ctdb/client/ctdb_client.c
source/cluster/ctdb/common/ctdb_io.c
source/cluster/ctdb/common/ctdb_ltdb.c
source/cluster/ctdb/common/ctdb_util.c
source/cluster/ctdb/ctdb_cluster.c
source/cluster/ctdb/opendb_ctdb.c
source/cluster/local.c
source/configure.ac
source/dsdb/common/flags.h
source/dsdb/common/sidmap.c
source/dsdb/config.mk
source/dsdb/repl/drepl_service.c
source/dsdb/samdb/cracknames.c
source/dsdb/samdb/ldb_modules/entryUUID.c
source/dsdb/samdb/ldb_modules/extended_dn.c
source/dsdb/samdb/ldb_modules/kludge_acl.c
source/dsdb/samdb/ldb_modules/local_password.c
source/dsdb/samdb/ldb_modules/partition.c
source/dsdb/samdb/ldb_modules/password_hash.c
source/dsdb/samdb/ldb_modules/samldb.c
source/dsdb/samdb/ldb_modules/schema.c
source/dsdb/samdb/ldb_modules/update_keytab.c
source/dsdb/samdb/samdb.c
source/dsdb/schema/schema_constructed.c
source/dsdb/schema/schema_init.c
source/dynconfig.c
source/dynconfig.h
source/dynconfig.mk
source/headermap.txt
source/heimdal/lib/asn1/lex.c
source/heimdal/lib/com_err/lex.c
source/heimdal_build/config.m4
source/heimdal_build/config.mk
source/include/includes.h
source/install-sh [changed mode: 0644->0755]
source/kdc/hdb-ldb.c
source/kdc/kdc.c
source/kdc/kpasswdd.c
source/ldap_server/ldap_backend.c
source/ldap_server/ldap_server.c
source/lib/appweb/ejs/ejsLib.c
source/lib/basic.mk
source/lib/charset/charcnv.c
source/lib/charset/charset.h
source/lib/charset/iconv.c
source/lib/charset/util_unistr.c
source/lib/cmdline/credentials.c
source/lib/cmdline/popt_common.c
source/lib/cmdline/popt_credentials.c
source/lib/crypto/hmacmd5test.c
source/lib/crypto/hmacsha1test.c
source/lib/crypto/md4test.c
source/lib/crypto/md5test.c
source/lib/crypto/sha1test.c
source/lib/db_wrap.c
source/lib/db_wrap.h
source/lib/dbwrap/dbwrap.c
source/lib/dbwrap/dbwrap_tdb.c
source/lib/events/events.c
source/lib/events/events_epoll.c
source/lib/events/events_signal.c
source/lib/gencache/gencache.c
source/lib/ldb-samba/README [moved from source/lib/ldb/samba/README with 100% similarity]
source/lib/ldb-samba/config.mk [moved from source/lib/ldb/samba/config.mk with 100% similarity]
source/lib/ldb-samba/ldif_handlers.c [moved from source/lib/ldb/samba/ldif_handlers.c with 97% similarity]
source/lib/ldb/Makefile.in
source/lib/ldb/common/attrib_handlers.c
source/lib/ldb/common/ldb.c
source/lib/ldb/common/ldb_attributes.c
source/lib/ldb/common/ldb_dn.c
source/lib/ldb/common/ldb_modules.c
source/lib/ldb/config.mk
source/lib/ldb/configure.ac
source/lib/ldb/include/ldb.h
source/lib/ldb/include/ldb_private.h
source/lib/ldb/ldb.pc.in
source/lib/ldb/ldb_ildap/config.mk [new file with mode: 0644]
source/lib/ldb/ldb_ildap/ldb_ildap.c
source/lib/ldb/ldb_tdb/ldb_cache.c
source/lib/ldb/ldb_tdb/ldb_index.c
source/lib/ldb/ldb_tdb/ldb_search.c
source/lib/ldb/ldb_tdb/ldb_tdb.c
source/lib/ldb/ldb_tdb/ldb_tdb.h
source/lib/ldb/modules/paged_searches.c
source/lib/ldb/setup.py [new file with mode: 0755]
source/lib/ldb/swig/ldb.i
source/lib/ldb/tests/schema-tests/schema.ldif
source/lib/ldb/tests/test-tdb-features.sh
source/lib/ldb/tools/ad2oLschema.c
source/lib/ldb/tools/cmdline.c
source/lib/ldb/tools/config.mk [new file with mode: 0644]
source/lib/messaging/irpc.h
source/lib/messaging/messaging.c
source/lib/policy/lex.c
source/lib/policy/lex.l
source/lib/policy/parse_adm.c
source/lib/policy/parse_adm.h
source/lib/policy/parse_adm.y
source/lib/registry/dir.c
source/lib/registry/hive.c
source/lib/registry/hive.h
source/lib/registry/interface.c
source/lib/registry/ldb.c
source/lib/registry/local.c
source/lib/registry/patchfile.c
source/lib/registry/patchfile.h
source/lib/registry/patchfile_dotreg.c
source/lib/registry/patchfile_preg.c
source/lib/registry/regf.c
source/lib/registry/registry.h
source/lib/registry/rpc.c
source/lib/registry/samba.c
source/lib/registry/tests/hive.c
source/lib/registry/tests/registry.c
source/lib/registry/tools/common.c
source/lib/registry/tools/regshell.c
source/lib/registry/util.c
source/lib/registry/wine.c
source/lib/replace/README
source/lib/replace/configure.ac
source/lib/replace/dlfcn.m4
source/lib/replace/getaddrinfo.c [new file with mode: 0644]
source/lib/replace/getaddrinfo.h [new file with mode: 0644]
source/lib/replace/inet_ntop.c [new file with mode: 0644]
source/lib/replace/inet_ntop.m4 [new file with mode: 0644]
source/lib/replace/inet_pton.c [new file with mode: 0644]
source/lib/replace/inet_pton.m4 [new file with mode: 0644]
source/lib/replace/libreplace.m4
source/lib/replace/replace.h
source/lib/replace/system/network.h
source/lib/samba3/config.mk
source/lib/smbreadline/smbreadline.c
source/lib/socket/access.c
source/lib/socket/config.m4
source/lib/socket/config.mk
source/lib/socket/connect.c
source/lib/socket/connect_multi.c
source/lib/socket/interface.c
source/lib/socket/netif.h
source/lib/socket/socket.c
source/lib/socket/socket.h
source/lib/socket/socket_ip.c [new file with mode: 0644]
source/lib/socket/socket_ipv4.c [deleted file]
source/lib/socket/socket_ipv6.c [deleted file]
source/lib/socket/socket_unix.c
source/lib/socket_wrapper/socket_wrapper.c
source/lib/socket_wrapper/socket_wrapper.h
source/lib/stream/packet.c
source/lib/talloc/config.mk
source/lib/talloc/configure.ac
source/lib/talloc/talloc.c
source/lib/talloc/talloc.h
source/lib/talloc/talloc_guide.txt
source/lib/talloc/testsuite.c
source/lib/tdb/swig/Tdb.py
source/lib/tdb/swig/tdb.i
source/lib/tdb/tools/tdbtorture.c
source/lib/tls/tls.c
source/lib/tls/tlscert.c
source/lib/util/attr.h [new file with mode: 0644]
source/lib/util/config.mk
source/lib/util/data_blob.c
source/lib/util/data_blob.h
source/lib/util/dprintf.c
source/lib/util/fault.c
source/lib/util/fault.m4
source/lib/util/ms_fnmatch.c
source/lib/util/tests/file.c
source/lib/util/tests/str.c [new file with mode: 0644]
source/lib/util/tests/strlist.c
source/lib/util/time.c
source/lib/util/time.h
source/lib/util/util.c
source/lib/util/util.h
source/lib/util/util_pw.c
source/lib/util/util_str.c
source/lib/util/util_strlist.c
source/lib/util/util_tdb.c
source/lib/util/xfile.c
source/libcli/auth/credentials.c
source/libcli/auth/session.c
source/libcli/auth/smbencrypt.c
source/libcli/cldap/cldap.c
source/libcli/cliconnect.c
source/libcli/clideltree.c
source/libcli/clifile.c
source/libcli/clilist.c
source/libcli/climessage.c
source/libcli/clireadwrite.c
source/libcli/clitrans2.c
source/libcli/composite/composite.c
source/libcli/config.mk
source/libcli/dgram/browse.c
source/libcli/dgram/mailslot.c
source/libcli/dgram/netlogon.c
source/libcli/dgram/ntlogon.c
source/libcli/finddcs.c
source/libcli/ldap/ldap.c
source/libcli/ldap/ldap.h
source/libcli/ldap/ldap_bind.c
source/libcli/ldap/ldap_client.c
source/libcli/ldap/ldap_controls.c
source/libcli/ldap/ldap_ildap.c
source/libcli/ldap/ldap_msg.c
source/libcli/libcli.h
source/libcli/nbt/namequery.c
source/libcli/nbt/namerefresh.c
source/libcli/nbt/nameregister.c
source/libcli/nbt/namerelease.c
source/libcli/nbt/nbtname.c
source/libcli/nbt/nbtsocket.c
source/libcli/raw/clierror.c [moved from source/libcli/util/clierror.c with 97% similarity]
source/libcli/raw/clioplock.c
source/libcli/raw/clisession.c
source/libcli/raw/clisocket.c
source/libcli/raw/clitransport.c
source/libcli/raw/clitree.c
source/libcli/raw/interfaces.h
source/libcli/raw/raweas.c
source/libcli/raw/rawfile.c
source/libcli/raw/rawfileinfo.c
source/libcli/raw/rawlpq.c
source/libcli/raw/rawnegotiate.c
source/libcli/raw/rawreadwrite.c
source/libcli/raw/rawrequest.c
source/libcli/raw/rawsetfileinfo.c
source/libcli/raw/rawshadow.c
source/libcli/raw/rawtrans.c
source/libcli/raw/smb_signing.c
source/libcli/resolve/bcast.c
source/libcli/resolve/nbtlist.c
source/libcli/resolve/resolve.c
source/libcli/resolve/wins.c
source/libcli/security/dom_sid.c
source/libcli/security/privilege.c
source/libcli/security/sddl.c
source/libcli/security/security_descriptor.c
source/libcli/security/security_token.c
source/libcli/smb2/cancel.c
source/libcli/smb2/close.c
source/libcli/smb2/connect.c
source/libcli/smb2/create.c
source/libcli/smb2/find.c
source/libcli/smb2/flush.c
source/libcli/smb2/getinfo.c
source/libcli/smb2/ioctl.c
source/libcli/smb2/keepalive.c
source/libcli/smb2/lock.c
source/libcli/smb2/logoff.c
source/libcli/smb2/negprot.c
source/libcli/smb2/notify.c
source/libcli/smb2/read.c
source/libcli/smb2/request.c
source/libcli/smb2/session.c
source/libcli/smb2/setinfo.c
source/libcli/smb2/tcon.c
source/libcli/smb2/tdis.c
source/libcli/smb2/transport.c
source/libcli/smb2/write.c
source/libcli/smb_composite/appendacl.c
source/libcli/smb_composite/connect.c
source/libcli/smb_composite/fetchfile.c
source/libcli/smb_composite/fsinfo.c
source/libcli/smb_composite/loadfile.c
source/libcli/smb_composite/savefile.c
source/libcli/smb_composite/sesssetup.c
source/libcli/swig/libcli_nbt.i
source/libcli/swig/libcli_smb.i [new file with mode: 0644]
source/libcli/util/asn1.c
source/libcli/util/clilsa.c
source/libcli/util/doserr.c
source/libcli/util/doserr.h
source/libcli/util/error.h
source/libcli/util/errormap.c
source/libcli/util/nt_status.h [deleted file]
source/libcli/util/nterr.c
source/libcli/util/nterr.h [deleted file]
source/libcli/util/ntstatus.h [new file with mode: 0644]
source/libcli/util/werror.h [new file with mode: 0644]
source/libcli/wrepl/winsrepl.c
source/libcli/wrepl/winsrepl.h
source/libnet/config.mk
source/libnet/groupman.c [new file with mode: 0644]
source/libnet/groupman.h [new file with mode: 0644]
source/libnet/libnet.c
source/libnet/libnet.h
source/libnet/libnet_become_dc.c
source/libnet/libnet_group.c
source/libnet/libnet_join.c
source/libnet/libnet_lookup.c
source/libnet/libnet_samdump.c
source/libnet/libnet_samdump_keytab.c
source/libnet/libnet_samsync_ldb.c
source/libnet/libnet_unbecome_dc.c
source/libnet/libnet_user.c
source/libnet/libnet_user.h
source/libnet/libnet_vampire.c
source/libnet/prereq_domain.c
source/libnet/userman.c
source/libnet/userman.h
source/librpc/idl/dcerpc.idl
source/librpc/idl/dfs.idl
source/librpc/idl/dssetup.idl
source/librpc/idl/epmapper.idl
source/librpc/idl/notify.idl
source/librpc/idl/orpc.idl
source/librpc/idl/security.idl
source/librpc/ndr/libndr.h
source/librpc/ndr/ndr.c
source/librpc/ndr/ndr_compression.c
source/librpc/ndr/ndr_drsuapi.c
source/librpc/ndr/ndr_string.c
source/librpc/ndr/ndr_table.c
source/librpc/ndr/uuid.c
source/librpc/rpc/dcerpc.c
source/librpc/rpc/dcerpc_auth.c
source/librpc/rpc/dcerpc_connect.c
source/librpc/rpc/dcerpc_smb.c
source/librpc/rpc/dcerpc_smb2.c
source/librpc/rpc/dcerpc_sock.c
source/librpc/rpc/dcerpc_util.c
source/librpc/tests/binding_string.c
source/librpc/tools/ndrdump.c
source/main.mk
source/nbt_server/config.mk
source/nbt_server/dgram/netlogon.c
source/nbt_server/dgram/ntlogon.c
source/nbt_server/dgram/request.c
source/nbt_server/interfaces.c
source/nbt_server/irpc.c
source/nbt_server/packet.c
source/nbt_server/query.c
source/nbt_server/register.c
source/nbt_server/wins/wins_hook.c
source/nbt_server/wins/wins_ldb.c
source/nbt_server/wins/winsclient.c
source/nbt_server/wins/winsdb.c
source/nbt_server/wins/winsserver.c
source/nbt_server/wins/winswack.c
source/nsswitch/nsstest.c
source/nsswitch/wb_common.c
source/nsswitch/wbinfo.c
source/nsswitch/winbind_client.h
source/nsswitch/winbind_nss.h
source/nsswitch/winbind_nss_config.h
source/nsswitch/winbind_nss_irix.h
source/nsswitch/winbind_nss_linux.c
source/nsswitch/winbind_nss_solaris.h
source/nsswitch/winbind_struct_protocol.h [new file with mode: 0644]
source/nsswitch/winbindd_nss.h [deleted file]
source/ntptr/ntptr_base.c
source/ntptr/simple_ldb/ntptr_simple_ldb.c
source/ntvfs/cifs/vfs_cifs.c
source/ntvfs/cifs_posix_cli/vfs_cifs_posix.c
source/ntvfs/common/brlock_tdb.c
source/ntvfs/common/notify.c
source/ntvfs/common/opendb.c
source/ntvfs/common/opendb_tdb.c
source/ntvfs/ipc/vfs_ipc.c
source/ntvfs/nbench/vfs_nbench.c
source/ntvfs/ntvfs_base.c
source/ntvfs/ntvfs_generic.c
source/ntvfs/ntvfs_interface.c
source/ntvfs/ntvfs_util.c
source/ntvfs/posix/pvfs_acl.c
source/ntvfs/posix/pvfs_dirlist.c
source/ntvfs/posix/pvfs_lock.c
source/ntvfs/posix/pvfs_notify.c
source/ntvfs/posix/pvfs_open.c
source/ntvfs/posix/pvfs_resolve.c
source/ntvfs/posix/pvfs_search.c
source/ntvfs/posix/pvfs_setfileinfo.c
source/ntvfs/posix/pvfs_shortname.c
source/ntvfs/posix/pvfs_streams.c
source/ntvfs/posix/pvfs_util.c
source/ntvfs/posix/pvfs_xattr.c
source/ntvfs/posix/vfs_posix.c
source/ntvfs/posix/vfs_posix.h
source/ntvfs/print/vfs_print.c
source/ntvfs/simple/vfs_simple.c
source/ntvfs/sysdep/inotify.c
source/ntvfs/sysdep/sys_notify.c
source/ntvfs/unixuid/vfs_unixuid.c
source/param/config.mk
source/param/generic.c
source/param/loadparm.c
source/param/loadparm.h
source/param/param.h
source/param/params.c
source/param/secrets.c
source/param/secrets.h
source/param/share.c
source/param/share.h
source/param/share_classic.c
source/param/share_ldb.c
source/param/util.c
source/pidl/lib/Parse/Pidl/NDR.pm
source/pidl/lib/Parse/Pidl/Samba4/Header.pm
source/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm
source/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
source/pidl/lib/Parse/Pidl/Samba4/NDR/Server.pm
source/pidl/lib/Parse/Pidl/Samba4/TDR.pm
source/pidl/tests/ndr.pl
source/pidl/tests/ndr_represent.pl
source/rpc_server/common/server_info.c
source/rpc_server/config.mk
source/rpc_server/dcerpc_server.c
source/rpc_server/dcerpc_sock.c [deleted file]
source/rpc_server/dcesrv_auth.c
source/rpc_server/drsuapi/dcesrv_drsuapi.c
source/rpc_server/lsa/dcesrv_lsa.c
source/rpc_server/lsa/lsa.h [new file with mode: 0644]
source/rpc_server/lsa/lsa_init.c [new file with mode: 0644]
source/rpc_server/lsa/lsa_lookup.c [new file with mode: 0644]
source/rpc_server/netlogon/dcerpc_netlogon.c
source/rpc_server/remote/dcesrv_remote.c
source/rpc_server/samr/dcesrv_samr.c
source/rpc_server/samr/samr_password.c
source/rpc_server/service_rpc.c [new file with mode: 0644]
source/rpc_server/spoolss/dcesrv_spoolss.c
source/rpc_server/srvsvc/dcesrv_srvsvc.c
source/rpc_server/winreg/rpc_winreg.c
source/samba4-knownfail
source/samba4-skip
source/script/gdb_run
source/script/installbin.sh [changed mode: 0644->0755]
source/script/installjsonrpc.sh [deleted file]
source/script/installman.sh [changed mode: 0644->0755]
source/script/installmisc.sh
source/script/installmodules.sh [changed mode: 0644->0755]
source/script/installscripts.sh [changed mode: 0644->0755]
source/script/installswat.sh [new file with mode: 0755]
source/script/installwebapps.sh [deleted file]
source/script/lex_compile.sh
source/script/mkproto.pl
source/script/mkversion.sh
source/script/revert.sh [changed mode: 0644->0755]
source/script/uninstallbin.sh [changed mode: 0644->0755]
source/script/uninstallman.sh [changed mode: 0644->0755]
source/script/uninstallmodules.sh [changed mode: 0644->0755]
source/script/uninstallscripts.sh [changed mode: 0644->0755]
source/scripting/ejs/ejsnet/net_ctx.c
source/scripting/ejs/ejsnet/net_user.c
source/scripting/ejs/ejsrpc.c
source/scripting/ejs/ejsrpc.h
source/scripting/ejs/literal.c
source/scripting/ejs/mprutil.c
source/scripting/ejs/smbcalls.c
source/scripting/ejs/smbcalls.h
source/scripting/ejs/smbcalls_auth.c
source/scripting/ejs/smbcalls_cli.c
source/scripting/ejs/smbcalls_config.c
source/scripting/ejs/smbcalls_creds.c
source/scripting/ejs/smbcalls_data.c
source/scripting/ejs/smbcalls_ldb.c
source/scripting/ejs/smbcalls_param.c
source/scripting/ejs/smbcalls_reg.c
source/scripting/ejs/smbcalls_rpc.c
source/scripting/ejs/smbcalls_samba3.c
source/scripting/ejs/smbcalls_string.c
source/scripting/ejs/smbcalls_sys.c
source/scripting/ejs/smbscript.c
source/scripting/libjs/provision.js
source/scripting/swig/config.mk
source/selftest/README
source/selftest/Subunit.pm
source/selftest/TODO
source/selftest/env/Samba3.pm
source/selftest/env/Samba4.pm
source/selftest/output/buildfarm.pm
source/selftest/output/html.pm
source/selftest/output/plain.pm
source/selftest/output/testresults.css
source/selftest/selftest.pl
source/selftest/test_binding_string.sh [deleted file]
source/selftest/test_cifs.sh
source/selftest/test_echo.sh
source/selftest/test_ejs.sh
source/selftest/test_functions.sh
source/selftest/test_ldap.sh
source/selftest/test_local.sh
source/selftest/test_member.sh
source/selftest/test_nbt.sh
source/selftest/test_net.sh
source/selftest/test_nss.sh
source/selftest/test_pidl.sh
source/selftest/test_posix.sh
source/selftest/test_quick.sh [deleted file]
source/selftest/test_rpc.sh
source/selftest/test_rpc_quick.sh [deleted file]
source/selftest/test_s3upgrade.sh
source/selftest/test_session_key.sh
source/selftest/test_simple.sh
source/selftest/test_winbind.sh [new file with mode: 0755]
source/selftest/tests_all.sh
source/selftest/tests_quick.sh
source/setup/named.conf
source/setup/provision
source/setup/provision.smb.conf [deleted file]
source/setup/provision.smb.conf.dc [new file with mode: 0644]
source/setup/provision.smb.conf.member [new file with mode: 0644]
source/setup/provision.smb.conf.standalone [new file with mode: 0644]
source/setup/provision_configuration.ldif
source/setup/provision_init.ldif
source/setup/provision_partitions.ldif
source/setup/provision_self_join.ldif
source/setup/provision_users.ldif
source/setup/secrets.ldif
source/setup/secrets_dc.ldif [new file with mode: 0644]
source/setup/slapd.conf
source/smb_server/smb/negprot.c
source/smb_server/smb/receive.c
source/smb_server/smb/reply.c
source/smb_server/smb/request.c
source/smb_server/smb/search.c
source/smb_server/smb/service.c
source/smb_server/smb/sesssetup.c
source/smb_server/smb/signing.c
source/smb_server/smb/trans2.c
source/smb_server/smb2/fileinfo.c
source/smb_server/smb2/fileio.c
source/smb_server/smb2/find.c
source/smb_server/smb2/keepalive.c
source/smb_server/smb2/negprot.c
source/smb_server/smb2/receive.c
source/smb_server/smb2/sesssetup.c
source/smb_server/smb2/tcon.c
source/smb_server/smb_server.c
source/smb_server/smb_server.h
source/smbd/pidfile.c
source/smbd/process_model.c
source/smbd/process_model.h
source/smbd/process_single.c
source/smbd/process_standard.c
source/smbd/server.c
source/smbd/service_stream.c
source/smbd/service_stream.h
source/smbd/service_task.c
source/smbd/service_task.h
source/static_deps.mk
source/torture/auth/ntlmssp.c
source/torture/basic/aliases.c
source/torture/basic/attr.c
source/torture/basic/base.c
source/torture/basic/charset.c
source/torture/basic/delaywrite.c
source/torture/basic/delete.c
source/torture/basic/denytest.c
source/torture/basic/dir.c
source/torture/basic/disconnect.c
source/torture/basic/locking.c
source/torture/basic/mangle_test.c
source/torture/basic/misc.c
source/torture/basic/properties.c
source/torture/basic/rename.c
source/torture/basic/scanner.c
source/torture/basic/secleak.c
source/torture/basic/unlink.c
source/torture/basic/utable.c
source/torture/config.mk
source/torture/gentest.c
source/torture/ldap/basic.c
source/torture/ldap/cldap.c
source/torture/ldap/cldapbench.c
source/torture/ldap/schema.c
source/torture/ldap/uptodatevector.c
source/torture/libnet/domain.c
source/torture/libnet/groupinfo.c
source/torture/libnet/groupman.c [new file with mode: 0644]
source/torture/libnet/grouptest.h [new file with mode: 0644]
source/torture/libnet/libnet.c
source/torture/libnet/libnet_BecomeDC.c
source/torture/libnet/libnet_domain.c
source/torture/libnet/libnet_group.c
source/torture/libnet/libnet_lookup.c
source/torture/libnet/libnet_rpc.c
source/torture/libnet/libnet_share.c
source/torture/libnet/libnet_user.c
source/torture/libnet/userinfo.c
source/torture/libnet/userman.c
source/torture/libnet/utils.c [new file with mode: 0644]
source/torture/libnet/utils.h [new file with mode: 0644]
source/torture/local/config.mk
source/torture/local/dbspeed.c
source/torture/local/event.c
source/torture/local/iconv.c
source/torture/local/irpc.c
source/torture/local/local.c
source/torture/local/messaging.c
source/torture/local/sddl.c
source/torture/local/share.c
source/torture/locktest.c
source/torture/locktest2.c
source/torture/masktest.c
source/torture/nbench/nbench.c
source/torture/nbench/nbio.c
source/torture/nbt/browse.c
source/torture/nbt/dgram.c
source/torture/nbt/nbt.c
source/torture/nbt/query.c
source/torture/nbt/register.c
source/torture/nbt/wins.c
source/torture/nbt/winsbench.c
source/torture/nbt/winsreplication.c
source/torture/ndr/lsa.c
source/torture/ndr/ndr.c
source/torture/ndr/winreg.c
source/torture/rap/rap.c
source/torture/raw/acls.c
source/torture/raw/chkpath.c
source/torture/raw/close.c
source/torture/raw/composite.c
source/torture/raw/context.c
source/torture/raw/eas.c
source/torture/raw/ioctl.c
source/torture/raw/lock.c
source/torture/raw/lockbench.c
source/torture/raw/mkdir.c
source/torture/raw/mux.c
source/torture/raw/notify.c
source/torture/raw/open.c
source/torture/raw/openbench.c
source/torture/raw/oplock.c
source/torture/raw/pingpong.c
source/torture/raw/qfileinfo.c
source/torture/raw/qfsinfo.c
source/torture/raw/raw.c
source/torture/raw/read.c
source/torture/raw/rename.c
source/torture/raw/samba3hide.c
source/torture/raw/samba3misc.c
source/torture/raw/search.c
source/torture/raw/seek.c
source/torture/raw/setfileinfo.c
source/torture/raw/streams.c
source/torture/raw/unlink.c
source/torture/raw/write.c
source/torture/rpc/alter_context.c
source/torture/rpc/async_bind.c
source/torture/rpc/atsvc.c
source/torture/rpc/autoidl.c
source/torture/rpc/bench.c
source/torture/rpc/bind.c
source/torture/rpc/countcalls.c
source/torture/rpc/dfs.c
source/torture/rpc/drsuapi.c
source/torture/rpc/drsuapi_cracknames.c
source/torture/rpc/dssetup.c
source/torture/rpc/dssync.c
source/torture/rpc/echo.c
source/torture/rpc/epmapper.c
source/torture/rpc/eventlog.c
source/torture/rpc/initshutdown.c
source/torture/rpc/join.c
source/torture/rpc/lsa.c
source/torture/rpc/lsa_lookup.c
source/torture/rpc/mgmt.c
source/torture/rpc/netlogon.c
source/torture/rpc/rpc.c
source/torture/rpc/rpc.h
source/torture/rpc/samba3rpc.c
source/torture/rpc/samlogon.c
source/torture/rpc/samr.c
source/torture/rpc/samr_accessmask.c [new file with mode: 0644]
source/torture/rpc/samsync.c
source/torture/rpc/scanner.c
source/torture/rpc/schannel.c
source/torture/rpc/session_key.c
source/torture/rpc/spoolss.c
source/torture/rpc/spoolss_notify.c [new file with mode: 0644]
source/torture/rpc/srvsvc.c
source/torture/rpc/svcctl.c
source/torture/rpc/testjoin.c
source/torture/rpc/unixinfo.c
source/torture/rpc/winreg.c
source/torture/smb2/connect.c
source/torture/smb2/dir.c
source/torture/smb2/find.c
source/torture/smb2/getinfo.c
source/torture/smb2/lock.c
source/torture/smb2/maxwrite.c
source/torture/smb2/notify.c
source/torture/smb2/scan.c
source/torture/smb2/setinfo.c
source/torture/smb2/util.c
source/torture/smbtorture.c
source/torture/torture.c
source/torture/ui.c
source/torture/ui.h
source/torture/unix/unix_info2.c
source/torture/unix/whoami.c
source/torture/util.c
source/torture/util_smb.c
source/torture/winbind/config.mk [new file with mode: 0644]
source/torture/winbind/struct_based.c [new file with mode: 0644]
source/torture/winbind/winbind.c [new file with mode: 0644]
source/utils/getntacl.c
source/utils/net/net_join.c
source/utils/nmblookup.c
source/utils/ntlm_auth.c
source/utils/testparm.c
source/web_server/http.c
source/web_server/web_server.c
source/winbind/wb_cmd_getpwent.c
source/winbind/wb_cmd_getpwnam.c
source/winbind/wb_cmd_getpwuid.c
source/winbind/wb_cmd_list_users.c
source/winbind/wb_cmd_setpwent.c
source/winbind/wb_dom_info.c
source/winbind/wb_dom_info_trusted.c
source/winbind/wb_init_domain.c
source/winbind/wb_irpc.c
source/winbind/wb_pam_auth.c
source/winbind/wb_samba3_cmd.c
source/winbind/wb_samba3_protocol.c
source/winbind/wb_server.c
source/winbind/wb_server.h
source/winbind/wb_sid2domain.c
source/winbind/wb_utils.c
source/wrepl_server/wrepl_apply_records.c
source/wrepl_server/wrepl_in_call.c
source/wrepl_server/wrepl_in_connection.c
source/wrepl_server/wrepl_out_helpers.c
source/wrepl_server/wrepl_out_push.c
source/wrepl_server/wrepl_scavenging.c
source/wrepl_server/wrepl_server.c
swat/cldap_server/index.esp [new file with mode: 0644]
swat/desktop/index.esp [new file with mode: 0644]
swat/esptest/exception.esp [new file with mode: 0644]
swat/esptest/formtest.esp [new file with mode: 0644]
swat/esptest/include.esp [new file with mode: 0644]
swat/esptest/index.esp [new file with mode: 0644]
swat/esptest/ldb.esp [new file with mode: 0644]
swat/esptest/loadparm.esp [new file with mode: 0644]
swat/esptest/qooxdoo.esp [new file with mode: 0644]
swat/esptest/registry.esp [new file with mode: 0644]
swat/esptest/samr.esp [new file with mode: 0644]
swat/esptest/session.esp [new file with mode: 0644]
swat/esptest/showvars.esp [new file with mode: 0644]
swat/favicon.ico [moved from webapps/images/favicon.ico with 100% similarity]
swat/images/core/alpha.gif [moved from webapps/images/core/alpha.gif with 100% similarity]
swat/images/core/blank.gif [moved from webapps/images/core/blank.gif with 100% similarity]
swat/images/core/brightness.jpg [moved from webapps/images/core/brightness.jpg with 100% similarity]
swat/images/core/brightnesshandle.gif [moved from webapps/images/core/brightnesshandle.gif with 100% similarity]
swat/images/core/dotted.gif [moved from webapps/images/core/dotted.gif with 100% similarity]
swat/images/core/huesaturation.jpg [moved from webapps/images/core/huesaturation.jpg with 100% similarity]
swat/images/core/huesaturationhandle.gif [moved from webapps/images/core/huesaturationhandle.gif with 100% similarity]
swat/images/favicon.ico [new file with mode: 0644]
swat/images/icons/crystalsvg/128/antivirus.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/back.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/background.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/bell.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/blockdevice.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/browser.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/cache.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/clock.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/colors.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/core.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/date.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/desktop.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/display.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/document.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/email.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/empty.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/encrypted.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/energy.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/error.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/exec.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/fileprint.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/folder.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/folder_home.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/folder_important.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/folder_locked.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/folder_open.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/font.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/forward.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/gohome.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/hwinfo.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/info.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/kcoloredit.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/kcontrol.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/keyboard.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/khelpcenter.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/konqueror.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/kpaint.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/krita.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/ksmiletris.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/ksnapshot.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/ktalkd.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/kuser.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/kview.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/linuxconf.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/locale.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/looknfeel.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/mac.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/mail.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/mimetypes.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/mouse.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/mozilla.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/mycomputer.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/mymac.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/netscape.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/network.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/password.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/penguin.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/proxy.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/quicktime.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/realplayer.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/reload.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/services.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/socket.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/stylesheet.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/tux.png [new file with mode: 0644]
swat/images/icons/crystalsvg/128/up.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/access.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/agent.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/antivirus.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/appearance.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/apply.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/back.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/background.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/bell.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/blockdevice.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/bookmark.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/browser.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/button_cancel.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/button_ok.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/cache.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/clock.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/colorize.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/colors.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/colorset.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/configure.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/contents.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/cookie.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/core.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/date.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/decrypted.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/desktop.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/display.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/doc.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/document.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/down.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/edit.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/editcopy.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/editcut.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/editdelete.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/editpaste.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/edittrash.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/email.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/empty.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/empty_ascii.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/encrypted.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/energy.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/error.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/exec.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/favorites.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/filefind.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/filenew.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/fileopen.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/fileprint.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/filesave.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/filesaveas.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/find.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/folder.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/folder_home.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/folder_important.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/folder_locked.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/folder_open.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/font.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/forward.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/gohome.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/help.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/history.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/hwinfo.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/icons.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/iconthemes.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/idea.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/important.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/info.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/kcoloredit.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/kcontrol.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/key_enter.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/keyboard.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/khelpcenter.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/kmix.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/knotify.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/konqueror.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/kpackage.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/kpaint.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/kpersonalizer.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/krita.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/ksmiletris.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/ksnapshot.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/ktalkd.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/ktip.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/kuser.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/kview.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/launch.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/linuxconf.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/locale.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/images/locale.png with 100% similarity]
swat/images/icons/crystalsvg/16/looknfeel.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/mac.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/mail.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/mail_delete.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/mail_find.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/mail_forward.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/mail_generic.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/mail_new.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/mail_replay.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/mail_replyall.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/mail_send.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/mimetypes.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/misc.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/mouse.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/mousecursor.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/mozilla.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/mycomputer.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/mymac.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/netscape.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/network.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/no.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/ok.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/opera.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/package.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/password.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/penguin.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/pipe.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/printer.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/proxy.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/quicktime.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/realplayer.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/redo.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/reload.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/run.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/search.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/services.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/socket.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/spellcheck.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/stop.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/style.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/stylesheet.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/tar.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/thumbnail.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/todo.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/tux.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/up.png [new file with mode: 0644]
swat/images/icons/crystalsvg/16/wizard.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/antivirus.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/appearance.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/back.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/background.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/bell.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/blockdevice.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/bookmark.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/browser.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/button_cancel.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/button_ok.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/cache.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/clock.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/colorize.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/colors.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/configure.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/contents.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/core.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/date.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/decrypted.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/desktop.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/display.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/document.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/down.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/edit.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/editcopy.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/editcut.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/editdelete.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/editpaste.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/edittrash.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/email.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/empty.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/encrypted.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/energy.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/error.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/exec.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/filefind.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/filenew.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/fileopen.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/fileprint.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/filesave.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/filesaveas.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/find.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/folder.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/folder_home.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/folder_important.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/folder_locked.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/folder_open.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/font.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/forward.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/gohome.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/help.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/history.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/hwinfo.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/idea.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/info.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/kcoloredit.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/kcontrol.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/keyboard.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/khelpcenter.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/konqueror.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/kpaint.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/krita.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/ksmiletris.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/ksnapshot.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/ktalkd.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/kuser.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/kview.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/launch.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/linuxconf.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/locale.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/looknfeel.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/mac.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/mail.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/mail_delete.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/mail_find.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/mail_forward.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/mail_generic.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/mail_new.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/mail_replay.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/mail_replyall.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/mail_send.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/misc.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/mouse.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/mozilla.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/mycomputer.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/mymac.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/netscape.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/network.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/next.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/password.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/penguin.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/previous.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/proxy.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/quicktime.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/realplayer.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/redo.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/reload.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/run.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/search.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/services.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/socket.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/spellcheck.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/stop.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/stylesheet.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/thumbnail.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/todo.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/tux.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/up.png [new file with mode: 0644]
swat/images/icons/crystalsvg/22/wizard.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/access.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/agent.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/antivirus.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/appearance.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/back.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/background.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/bell.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/blockdevice.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/bookmark.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/browser.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/button_cancel.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/button_ok.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/cache.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/clock.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/colorize.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/colors.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/configure.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/contents.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/cookie.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/core.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/date.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/decrypted.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/desktop.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/display.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/document.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/down.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/edit.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/editcopy.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/editcut.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/editdelete.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/editpaste.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/edittrash.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/email.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/empty.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/encrypted.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/energy.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/error.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/exec.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/favorites.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/filefind.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/filenew.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/fileopen.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/fileprint.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/filesave.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/filesaveas.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/find.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/folder.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/folder_home.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/folder_important.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/folder_locked.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/folder_open.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/font.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/forward.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/gohome.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/help.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/hwinfo.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/icons.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/iconthemes.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/important.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/info.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/kcoloredit.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/kcontrol.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/keyboard.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/khelpcenter.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/kmix.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/knotify.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/konqueror.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/kpackage.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/kpaint.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/kpersonalizer.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/krita.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/ksmiletris.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/ksnapshot.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/ktalkd.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/ktip.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/kuser.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/kview.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/launch.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/linuxconf.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/locale.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/looknfeel.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/mac.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/mail.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/mail_delete.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/mail_find.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/mail_generic.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/mail_new.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/mail_replay.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/mail_send.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/mimetypes.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/misc.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/mouse.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/mozilla.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/mycomputer.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/mymac.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/netscape.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/network.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/opera.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/package.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/password.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/penguin.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/pipe.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/proxy.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/quicktime.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/realplayer.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/redo.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/reload.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/run.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/search.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/services.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/socket.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/stop.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/style.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/stylesheet.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/todo.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/tux.png [new file with mode: 0644]
swat/images/icons/crystalsvg/32/up.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/access.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/agent.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/antivirus.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/back.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/background.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/bell.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/blockdevice.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/browser.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/cache.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/clock.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/colors.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/core.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/date.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/desktop.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/display.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/document.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/email.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/empty.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/encrypted.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/energy.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/error.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/exec.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/favorites.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/fileprint.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/folder.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/folder_home.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/folder_important.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/folder_locked.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/folder_open.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/font.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/forward.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/gohome.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/hwinfo.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/icons.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/iconthemes.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/important.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/info.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/kcoloredit.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/kcontrol.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/keyboard.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/khelpcenter.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/kmix.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/knotify.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/konqueror.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/kpackage.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/kpaint.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/krita.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/ksmiletris.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/ksnapshot.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/ktalkd.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/ktip.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/kuser.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/kview.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/linuxconf.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/locale.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/looknfeel.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/mac.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/mail.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/mouse.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/mozilla.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/mycomputer.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/mymac.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/netscape.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/network.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/opera.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/package.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/password.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/penguin.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/pipe.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/proxy.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/quicktime.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/realplayer.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/reload.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/services.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/socket.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/style.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/stylesheet.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/tux.png [new file with mode: 0644]
swat/images/icons/crystalsvg/48/up.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/antivirus.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/back.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/background.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/bell.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/blockdevice.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/browser.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/cache.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/clock.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/colors.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/core.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/date.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/desktop.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/display.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/document.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/email.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/empty.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/encrypted.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/energy.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/error.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/exec.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/fileprint.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/folder.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/folder_home.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/folder_important.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/folder_locked.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/folder_open.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/font.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/forward.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/gohome.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/hwinfo.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/icons.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/important.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/info.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/kcoloredit.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/kcontrol.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/keyboard.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/khelpcenter.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/kmix.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/knotify.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/konqueror.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/kpackage.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/kpaint.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/krita.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/ksmiletris.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/ksnapshot.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/ktalkd.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/ktip.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/kuser.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/kview.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/linuxconf.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/locale.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/looknfeel.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/mac.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/mail.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/mimetypes.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/mouse.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/mozilla.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/mycomputer.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/mymac.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/netscape.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/network.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/package.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/password.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/penguin.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/pipe.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/proxy.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/quicktime.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/realplayer.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/reload.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/services.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/socket.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/style.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/stylesheet.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/tux.png [new file with mode: 0644]
swat/images/icons/crystalsvg/64/up.png [new file with mode: 0644]
swat/images/icons/crystalsvg/README [new file with mode: 0644]
swat/images/icons/nuvola/128/access.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/preferences-desktop-accessibility.png with 100% similarity]
swat/images/icons/nuvola/128/agent.png [new file with mode: 0644]
swat/images/icons/nuvola/128/background.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/preferences-desktop-wallpaper.png with 100% similarity]
swat/images/icons/nuvola/128/bell.png [new file with mode: 0644]
swat/images/icons/nuvola/128/browser.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/internet-web-browser.png with 100% similarity]
swat/images/icons/nuvola/128/cache.png [new file with mode: 0644]
swat/images/icons/nuvola/128/clock.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-clock.png with 100% similarity]
swat/images/icons/nuvola/128/colors.png [new file with mode: 0644]
swat/images/icons/nuvola/128/colorset.png [new file with mode: 0644]
swat/images/icons/nuvola/128/cookie.png [new file with mode: 0644]
swat/images/icons/nuvola/128/core.png [new file with mode: 0644]
swat/images/icons/nuvola/128/date.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-date.png with 100% similarity]
swat/images/icons/nuvola/128/desktop.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/user-desktop.png with 100% similarity]
swat/images/icons/nuvola/128/display.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/preferences-desktop.png with 100% similarity]
swat/images/icons/nuvola/128/document.png [new file with mode: 0644]
swat/images/icons/nuvola/128/email.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/internet-email-client.png with 100% similarity]
swat/images/icons/nuvola/128/empty.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/empty-x-generic.png with 100% similarity]
swat/images/icons/nuvola/128/encrypted.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/empty-x-encrypted.png with 100% similarity]
swat/images/icons/nuvola/128/energy.png [new file with mode: 0644]
swat/images/icons/nuvola/128/error.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/status/dialog-error.png with 100% similarity]
swat/images/icons/nuvola/128/exec.png [new file with mode: 0644]
swat/images/icons/nuvola/128/folder.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/folder.png with 100% similarity]
swat/images/icons/nuvola/128/folder_home.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/user-home.png with 100% similarity]
swat/images/icons/nuvola/128/folder_important.png [new file with mode: 0644]
swat/images/icons/nuvola/128/folder_locked.png [new file with mode: 0644]
swat/images/icons/nuvola/128/folder_open.png [new file with mode: 0644]
swat/images/icons/nuvola/128/font.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/font-x-generic.png with 100% similarity]
swat/images/icons/nuvola/128/hwinfo.png [new file with mode: 0644]
swat/images/icons/nuvola/128/icons.png [new file with mode: 0644]
swat/images/icons/nuvola/128/iconthemes.png [new file with mode: 0644]
swat/images/icons/nuvola/128/important.png [new file with mode: 0644]
swat/images/icons/nuvola/128/info.png [new file with mode: 0644]
swat/images/icons/nuvola/128/kcoloredit.png [new file with mode: 0644]
swat/images/icons/nuvola/128/kcontrol.png [new file with mode: 0644]
swat/images/icons/nuvola/128/keyboard.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-character-map.png with 100% similarity]
swat/images/icons/nuvola/128/khelpcenter.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/actions/help-faq.png with 100% similarity]
swat/images/icons/nuvola/128/kmix.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/multimedia-volume-control.png with 100% similarity]
swat/images/icons/nuvola/128/knotify.png [new file with mode: 0644]
swat/images/icons/nuvola/128/konqueror.png [new file with mode: 0644]
swat/images/icons/nuvola/128/kpackage.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/system-software-update.png with 100% similarity]
swat/images/icons/nuvola/128/kpaint.png [new file with mode: 0644]
swat/images/icons/nuvola/128/krita.png [new file with mode: 0644]
swat/images/icons/nuvola/128/ksnapshot.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/graphics-snapshot.png with 100% similarity]
swat/images/icons/nuvola/128/ktip.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-tip.png with 100% similarity]
swat/images/icons/nuvola/128/kuser.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/system-users.png with 100% similarity]
swat/images/icons/nuvola/128/kview.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/graphics-image-viewer.png with 100% similarity]
swat/images/icons/nuvola/128/locale.png [new file with mode: 0644]
swat/images/icons/nuvola/128/looknfeel.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/preferences-desktop-personal.png with 100% similarity]
swat/images/icons/nuvola/128/mozilla.png [new file with mode: 0644]
swat/images/icons/nuvola/128/mycomputer.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/computer.png with 100% similarity]
swat/images/icons/nuvola/128/netscape.png [new file with mode: 0644]
swat/images/icons/nuvola/128/network.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/preferences-system-network.png with 100% similarity]
swat/images/icons/nuvola/128/opera.png [new file with mode: 0644]
swat/images/icons/nuvola/128/package.png [new file with mode: 0644]
swat/images/icons/nuvola/128/password.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/status/dialog-password.png with 100% similarity]
swat/images/icons/nuvola/128/pipe.png [new file with mode: 0644]
swat/images/icons/nuvola/128/realplayer.png [new file with mode: 0644]
swat/images/icons/nuvola/128/services.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/services.png with 100% similarity]
swat/images/icons/nuvola/128/socket.png [new file with mode: 0644]
swat/images/icons/nuvola/128/style.png [new file with mode: 0644]
swat/images/icons/nuvola/128/stylesheet.png [new file with mode: 0644]
swat/images/icons/nuvola/16/access.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/preferences-desktop-accessibility.png with 100% similarity]
swat/images/icons/nuvola/16/agent.png [new file with mode: 0644]
swat/images/icons/nuvola/16/apply.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/dialog-apply.png with 100% similarity]
swat/images/icons/nuvola/16/back.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/go-previous.png with 100% similarity]
swat/images/icons/nuvola/16/background.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/preferences-desktop-wallpaper.png with 100% similarity]
swat/images/icons/nuvola/16/bell.png [new file with mode: 0644]
swat/images/icons/nuvola/16/bookmark.png [new file with mode: 0644]
swat/images/icons/nuvola/16/browser.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/internet-web-browser.png with 100% similarity]
swat/images/icons/nuvola/16/button_cancel.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/dialog-cancel.png with 100% similarity]
swat/images/icons/nuvola/16/button_ok.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/dialog-ok.png with 100% similarity]
swat/images/icons/nuvola/16/cache.png [new file with mode: 0644]
swat/images/icons/nuvola/16/clock.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-clock.png with 100% similarity]
swat/images/icons/nuvola/16/colorize.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/format-color.png with 100% similarity]
swat/images/icons/nuvola/16/colors.png [new file with mode: 0644]
swat/images/icons/nuvola/16/colorset.png [new file with mode: 0644]
swat/images/icons/nuvola/16/configure.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/preferences.png with 100% similarity]
swat/images/icons/nuvola/16/cookie.png [new file with mode: 0644]
swat/images/icons/nuvola/16/core.png [new file with mode: 0644]
swat/images/icons/nuvola/16/date.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-date.png with 100% similarity]
swat/images/icons/nuvola/16/decrypted.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/decrypt.png with 100% similarity]
swat/images/icons/nuvola/16/desktop.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/user-desktop.png with 100% similarity]
swat/images/icons/nuvola/16/display.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/preferences-desktop.png with 100% similarity]
swat/images/icons/nuvola/16/document.png [new file with mode: 0644]
swat/images/icons/nuvola/16/down.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/go-down.png with 100% similarity]
swat/images/icons/nuvola/16/edit.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/edit.png with 100% similarity]
swat/images/icons/nuvola/16/editcopy.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/edit-copy.png with 100% similarity]
swat/images/icons/nuvola/16/editcut.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/edit-cut.png with 100% similarity]
swat/images/icons/nuvola/16/editdelete.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/edit-delete.png with 100% similarity]
swat/images/icons/nuvola/16/editpaste.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/edit-paste.png with 100% similarity]
swat/images/icons/nuvola/16/edittrash.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/edit-trash.png with 100% similarity]
swat/images/icons/nuvola/16/email.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/internet-email-client.png with 100% similarity]
swat/images/icons/nuvola/16/empty.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/empty-x-generic.png with 100% similarity]
swat/images/icons/nuvola/16/encrypted.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/encrypt.png with 100% similarity]
swat/images/icons/nuvola/16/energy.png [new file with mode: 0644]
swat/images/icons/nuvola/16/error.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/status/dialog-error.png with 100% similarity]
swat/images/icons/nuvola/16/exec.png [new file with mode: 0644]
swat/images/icons/nuvola/16/filenew.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/document-new.png with 100% similarity]
swat/images/icons/nuvola/16/fileopen.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/document-open.png with 100% similarity]
swat/images/icons/nuvola/16/fileprint.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/document-print.png with 100% similarity]
swat/images/icons/nuvola/16/filesave.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/document-save.png with 100% similarity]
swat/images/icons/nuvola/16/filesaveas.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/document-save-as.png with 100% similarity]
swat/images/icons/nuvola/16/find.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/edit-find.png with 100% similarity]
swat/images/icons/nuvola/16/folder.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/folder.png with 100% similarity]
swat/images/icons/nuvola/16/folder_home.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/user-home.png with 100% similarity]
swat/images/icons/nuvola/16/folder_important.png [new file with mode: 0644]
swat/images/icons/nuvola/16/folder_locked.png [new file with mode: 0644]
swat/images/icons/nuvola/16/folder_open.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/status/folder-open.png with 100% similarity]
swat/images/icons/nuvola/16/font.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/font-x-generic.png with 100% similarity]
swat/images/icons/nuvola/16/forward.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/go-next.png with 100% similarity]
swat/images/icons/nuvola/16/gohome.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/go-home.png with 100% similarity]
swat/images/icons/nuvola/16/help.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/help-about.png with 100% similarity]
swat/images/icons/nuvola/16/history.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/history.png with 100% similarity]
swat/images/icons/nuvola/16/hwinfo.png [new file with mode: 0644]
swat/images/icons/nuvola/16/icons.png [new file with mode: 0644]
swat/images/icons/nuvola/16/iconthemes.png [new file with mode: 0644]
swat/images/icons/nuvola/16/important.png [new file with mode: 0644]
swat/images/icons/nuvola/16/info.png [new file with mode: 0644]
swat/images/icons/nuvola/16/kcoloredit.png [new file with mode: 0644]
swat/images/icons/nuvola/16/kcontrol.png [new file with mode: 0644]
swat/images/icons/nuvola/16/keyboard.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-character-map.png with 100% similarity]
swat/images/icons/nuvola/16/khelpcenter.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/help-faq.png with 100% similarity]
swat/images/icons/nuvola/16/kmix.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/multimedia-volume-control.png with 100% similarity]
swat/images/icons/nuvola/16/knotify.png [new file with mode: 0644]
swat/images/icons/nuvola/16/konqueror.png [new file with mode: 0644]
swat/images/icons/nuvola/16/kpackage.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/system-software-update.png with 100% similarity]
swat/images/icons/nuvola/16/kpaint.png [new file with mode: 0644]
swat/images/icons/nuvola/16/krita.png [new file with mode: 0644]
swat/images/icons/nuvola/16/ksnapshot.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/graphics-snapshot.png with 100% similarity]
swat/images/icons/nuvola/16/ktip.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-tip.png with 100% similarity]
swat/images/icons/nuvola/16/kuser.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/system-users.png with 100% similarity]
swat/images/icons/nuvola/16/kview.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/graphics-image-viewer.png with 100% similarity]
swat/images/icons/nuvola/16/locale.png [new file with mode: 0644]
swat/images/icons/nuvola/16/looknfeel.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/preferences-desktop-personal.png with 100% similarity]
swat/images/icons/nuvola/16/mail_delete.png [new file with mode: 0644]
swat/images/icons/nuvola/16/mail_find.png [new file with mode: 0644]
swat/images/icons/nuvola/16/mail_forward.png [new file with mode: 0644]
swat/images/icons/nuvola/16/mail_generic.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/mail.png with 100% similarity]
swat/images/icons/nuvola/16/mail_new.png [new file with mode: 0644]
swat/images/icons/nuvola/16/mail_replyall.png [new file with mode: 0644]
swat/images/icons/nuvola/16/mail_send.png [new file with mode: 0644]
swat/images/icons/nuvola/16/misc.png [new file with mode: 0644]
swat/images/icons/nuvola/16/mozilla.png [new file with mode: 0644]
swat/images/icons/nuvola/16/mycomputer.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/computer.png with 100% similarity]
swat/images/icons/nuvola/16/netscape.png [new file with mode: 0644]
swat/images/icons/nuvola/16/network.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/preferences-system-network.png with 100% similarity]
swat/images/icons/nuvola/16/next.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/go-right.png with 100% similarity]
swat/images/icons/nuvola/16/no.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/dialog-no.png with 100% similarity]
swat/images/icons/nuvola/16/ok.png [new file with mode: 0644]
swat/images/icons/nuvola/16/opera.png [new file with mode: 0644]
swat/images/icons/nuvola/16/package.png [new file with mode: 0644]
swat/images/icons/nuvola/16/password.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/status/dialog-password.png with 100% similarity]
swat/images/icons/nuvola/16/pipe.png [new file with mode: 0644]
swat/images/icons/nuvola/16/previous.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/go-left.png with 100% similarity]
swat/images/icons/nuvola/16/realplayer.png [new file with mode: 0644]
swat/images/icons/nuvola/16/redo.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/edit-redo.png with 100% similarity]
swat/images/icons/nuvola/16/reload.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/view-refresh.png with 100% similarity]
swat/images/icons/nuvola/16/run.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/system-run.png with 100% similarity]
swat/images/icons/nuvola/16/services.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/services.png with 100% similarity]
swat/images/icons/nuvola/16/socket.png [new file with mode: 0644]
swat/images/icons/nuvola/16/spellcheck.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/tools-check-spelling.png with 100% similarity]
swat/images/icons/nuvola/16/stop.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/stop.png with 100% similarity]
swat/images/icons/nuvola/16/style.png [new file with mode: 0644]
swat/images/icons/nuvola/16/stylesheet.png [new file with mode: 0644]
swat/images/icons/nuvola/16/thumbnail.png [new file with mode: 0644]
swat/images/icons/nuvola/16/up.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/go-up.png with 100% similarity]
swat/images/icons/nuvola/16/wizard.png [new file with mode: 0644]
swat/images/icons/nuvola/22/access.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/preferences-desktop-accessibility.png with 100% similarity]
swat/images/icons/nuvola/22/agent.png [new file with mode: 0644]
swat/images/icons/nuvola/22/apply.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/dialog-apply.png with 100% similarity]
swat/images/icons/nuvola/22/back.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/go-previous.png with 100% similarity]
swat/images/icons/nuvola/22/background.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/preferences-desktop-wallpaper.png with 100% similarity]
swat/images/icons/nuvola/22/bell.png [new file with mode: 0644]
swat/images/icons/nuvola/22/bookmark.png [new file with mode: 0644]
swat/images/icons/nuvola/22/browser.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/internet-web-browser.png with 100% similarity]
swat/images/icons/nuvola/22/button_cancel.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/dialog-cancel.png with 100% similarity]
swat/images/icons/nuvola/22/button_ok.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/dialog-ok.png with 100% similarity]
swat/images/icons/nuvola/22/cache.png [new file with mode: 0644]
swat/images/icons/nuvola/22/clock.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-clock.png with 100% similarity]
swat/images/icons/nuvola/22/colorize.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/format-color.png with 100% similarity]
swat/images/icons/nuvola/22/colors.png [new file with mode: 0644]
swat/images/icons/nuvola/22/colorset.png [new file with mode: 0644]
swat/images/icons/nuvola/22/configure.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/preferences.png with 100% similarity]
swat/images/icons/nuvola/22/cookie.png [new file with mode: 0644]
swat/images/icons/nuvola/22/core.png [new file with mode: 0644]
swat/images/icons/nuvola/22/date.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-date.png with 100% similarity]
swat/images/icons/nuvola/22/decrypted.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/decrypt.png with 100% similarity]
swat/images/icons/nuvola/22/desktop.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/user-desktop.png with 100% similarity]
swat/images/icons/nuvola/22/display.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/preferences-desktop.png with 100% similarity]
swat/images/icons/nuvola/22/document.png [new file with mode: 0644]
swat/images/icons/nuvola/22/down.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/go-down.png with 100% similarity]
swat/images/icons/nuvola/22/edit.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/edit.png with 100% similarity]
swat/images/icons/nuvola/22/editcopy.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/edit-copy.png with 100% similarity]
swat/images/icons/nuvola/22/editcut.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/edit-cut.png with 100% similarity]
swat/images/icons/nuvola/22/editdelete.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/edit-delete.png with 100% similarity]
swat/images/icons/nuvola/22/editpaste.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/edit-paste.png with 100% similarity]
swat/images/icons/nuvola/22/edittrash.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/edit-trash.png with 100% similarity]
swat/images/icons/nuvola/22/email.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/internet-email-client.png with 100% similarity]
swat/images/icons/nuvola/22/empty.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/empty-x-generic.png with 100% similarity]
swat/images/icons/nuvola/22/encrypted.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/encrypt.png with 100% similarity]
swat/images/icons/nuvola/22/energy.png [new file with mode: 0644]
swat/images/icons/nuvola/22/error.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/status/dialog-error.png with 100% similarity]
swat/images/icons/nuvola/22/exec.png [new file with mode: 0644]
swat/images/icons/nuvola/22/filenew.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/document-new.png with 100% similarity]
swat/images/icons/nuvola/22/fileopen.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/document-open.png with 100% similarity]
swat/images/icons/nuvola/22/fileprint.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/document-print.png with 100% similarity]
swat/images/icons/nuvola/22/filesave.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/document-save.png with 100% similarity]
swat/images/icons/nuvola/22/filesaveas.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/document-save-as.png with 100% similarity]
swat/images/icons/nuvola/22/find.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/edit-find.png with 100% similarity]
swat/images/icons/nuvola/22/folder.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/folder.png with 100% similarity]
swat/images/icons/nuvola/22/folder_home.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/user-home.png with 100% similarity]
swat/images/icons/nuvola/22/folder_important.png [new file with mode: 0644]
swat/images/icons/nuvola/22/folder_locked.png [new file with mode: 0644]
swat/images/icons/nuvola/22/folder_open.png [new file with mode: 0644]
swat/images/icons/nuvola/22/font.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/font-x-generic.png with 100% similarity]
swat/images/icons/nuvola/22/forward.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/go-next.png with 100% similarity]
swat/images/icons/nuvola/22/gohome.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/go-home.png with 100% similarity]
swat/images/icons/nuvola/22/help.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/help-about.png with 100% similarity]
swat/images/icons/nuvola/22/history.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/history.png with 100% similarity]
swat/images/icons/nuvola/22/hwinfo.png [new file with mode: 0644]
swat/images/icons/nuvola/22/icons.png [new file with mode: 0644]
swat/images/icons/nuvola/22/iconthemes.png [new file with mode: 0644]
swat/images/icons/nuvola/22/important.png [new file with mode: 0644]
swat/images/icons/nuvola/22/info.png [new file with mode: 0644]
swat/images/icons/nuvola/22/kcoloredit.png [new file with mode: 0644]
swat/images/icons/nuvola/22/kcontrol.png [new file with mode: 0644]
swat/images/icons/nuvola/22/keyboard.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-character-map.png with 100% similarity]
swat/images/icons/nuvola/22/khelpcenter.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/help-faq.png with 100% similarity]
swat/images/icons/nuvola/22/kmix.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/multimedia-volume-control.png with 100% similarity]
swat/images/icons/nuvola/22/knotify.png [new file with mode: 0644]
swat/images/icons/nuvola/22/konqueror.png [new file with mode: 0644]
swat/images/icons/nuvola/22/kpackage.png [new file with mode: 0644]
swat/images/icons/nuvola/22/kpaint.png [new file with mode: 0644]
swat/images/icons/nuvola/22/krita.png [new file with mode: 0644]
swat/images/icons/nuvola/22/ksnapshot.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/graphics-snapshot.png with 100% similarity]
swat/images/icons/nuvola/22/ktip.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-tip.png with 100% similarity]
swat/images/icons/nuvola/22/kuser.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/system-users.png with 100% similarity]
swat/images/icons/nuvola/22/kview.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/graphics-image-viewer.png with 100% similarity]
swat/images/icons/nuvola/22/locale.png [new file with mode: 0644]
swat/images/icons/nuvola/22/mail_delete.png [new file with mode: 0644]
swat/images/icons/nuvola/22/mail_find.png [new file with mode: 0644]
swat/images/icons/nuvola/22/mail_forward.png [new file with mode: 0644]
swat/images/icons/nuvola/22/mail_generic.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/mail.png with 100% similarity]
swat/images/icons/nuvola/22/mail_new.png [new file with mode: 0644]
swat/images/icons/nuvola/22/mail_replyall.png [new file with mode: 0644]
swat/images/icons/nuvola/22/mail_send.png [new file with mode: 0644]
swat/images/icons/nuvola/22/misc.png [new file with mode: 0644]
swat/images/icons/nuvola/22/mycomputer.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/computer.png with 100% similarity]
swat/images/icons/nuvola/22/netscape.png [new file with mode: 0644]
swat/images/icons/nuvola/22/network.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/preferences-system-network.png with 100% similarity]
swat/images/icons/nuvola/22/next.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/go-right.png with 100% similarity]
swat/images/icons/nuvola/22/no.png [new file with mode: 0644]
swat/images/icons/nuvola/22/ok.png [new file with mode: 0644]
swat/images/icons/nuvola/22/opera.png [new file with mode: 0644]
swat/images/icons/nuvola/22/password.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/status/dialog-password.png with 100% similarity]
swat/images/icons/nuvola/22/pipe.png [new file with mode: 0644]
swat/images/icons/nuvola/22/previous.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/go-left.png with 100% similarity]
swat/images/icons/nuvola/22/realplayer.png [new file with mode: 0644]
swat/images/icons/nuvola/22/redo.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/edit-redo.png with 100% similarity]
swat/images/icons/nuvola/22/reload.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/view-refresh.png with 100% similarity]
swat/images/icons/nuvola/22/run.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/system-run.png with 100% similarity]
swat/images/icons/nuvola/22/services.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/services.png with 100% similarity]
swat/images/icons/nuvola/22/socket.png [new file with mode: 0644]
swat/images/icons/nuvola/22/spellcheck.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/tools-check-spelling.png with 100% similarity]
swat/images/icons/nuvola/22/stop.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/stop.png with 100% similarity]
swat/images/icons/nuvola/22/style.png [new file with mode: 0644]
swat/images/icons/nuvola/22/stylesheet.png [new file with mode: 0644]
swat/images/icons/nuvola/22/thumbnail.png [new file with mode: 0644]
swat/images/icons/nuvola/22/up.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/go-up.png with 100% similarity]
swat/images/icons/nuvola/22/wizard.png [new file with mode: 0644]
swat/images/icons/nuvola/32/access.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/preferences-desktop-accessibility.png with 100% similarity]
swat/images/icons/nuvola/32/agent.png [new file with mode: 0644]
swat/images/icons/nuvola/32/apply.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/dialog-apply.png with 100% similarity]
swat/images/icons/nuvola/32/back.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/go-previous.png with 100% similarity]
swat/images/icons/nuvola/32/background.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/preferences-desktop-wallpaper.png with 100% similarity]
swat/images/icons/nuvola/32/bell.png [new file with mode: 0644]
swat/images/icons/nuvola/32/bookmark.png [new file with mode: 0644]
swat/images/icons/nuvola/32/browser.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/internet-web-browser.png with 100% similarity]
swat/images/icons/nuvola/32/button_cancel.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/dialog-cancel.png with 100% similarity]
swat/images/icons/nuvola/32/button_ok.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/dialog-ok.png with 100% similarity]
swat/images/icons/nuvola/32/cache.png [new file with mode: 0644]
swat/images/icons/nuvola/32/clock.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-clock.png with 100% similarity]
swat/images/icons/nuvola/32/colorize.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/format-color.png with 100% similarity]
swat/images/icons/nuvola/32/colors.png [new file with mode: 0644]
swat/images/icons/nuvola/32/colorset.png [new file with mode: 0644]
swat/images/icons/nuvola/32/configure.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/preferences.png with 100% similarity]
swat/images/icons/nuvola/32/contents.png [new file with mode: 0644]
swat/images/icons/nuvola/32/cookie.png [new file with mode: 0644]
swat/images/icons/nuvola/32/core.png [new file with mode: 0644]
swat/images/icons/nuvola/32/date.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-date.png with 100% similarity]
swat/images/icons/nuvola/32/decrypted.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/decrypt.png with 100% similarity]
swat/images/icons/nuvola/32/desktop.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/user-desktop.png with 100% similarity]
swat/images/icons/nuvola/32/display.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/preferences-desktop.png with 100% similarity]
swat/images/icons/nuvola/32/document.png [new file with mode: 0644]
swat/images/icons/nuvola/32/down.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/go-down.png with 100% similarity]
swat/images/icons/nuvola/32/edit.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/edit.png with 100% similarity]
swat/images/icons/nuvola/32/editcopy.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/edit-copy.png with 100% similarity]
swat/images/icons/nuvola/32/editcut.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/edit-cut.png with 100% similarity]
swat/images/icons/nuvola/32/editdelete.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/edit-delete.png with 100% similarity]
swat/images/icons/nuvola/32/editpaste.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/edit-paste.png with 100% similarity]
swat/images/icons/nuvola/32/edittrash.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/edit-trash.png with 100% similarity]
swat/images/icons/nuvola/32/email.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/internet-email-client.png with 100% similarity]
swat/images/icons/nuvola/32/empty.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/empty-x-generic.png with 100% similarity]
swat/images/icons/nuvola/32/encrypted.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/encrypt.png with 100% similarity]
swat/images/icons/nuvola/32/energy.png [new file with mode: 0644]
swat/images/icons/nuvola/32/error.png [new file with mode: 0644]
swat/images/icons/nuvola/32/exec.png [new file with mode: 0644]
swat/images/icons/nuvola/32/filenew.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/document-new.png with 100% similarity]
swat/images/icons/nuvola/32/fileopen.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/document-open.png with 100% similarity]
swat/images/icons/nuvola/32/fileprint.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/document-print.png with 100% similarity]
swat/images/icons/nuvola/32/filesave.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/document-save.png with 100% similarity]
swat/images/icons/nuvola/32/filesaveas.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/document-save-as.png with 100% similarity]
swat/images/icons/nuvola/32/find.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/edit-find.png with 100% similarity]
swat/images/icons/nuvola/32/folder.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/folder.png with 100% similarity]
swat/images/icons/nuvola/32/folder_home.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/user-home.png with 100% similarity]
swat/images/icons/nuvola/32/folder_important.png [new file with mode: 0644]
swat/images/icons/nuvola/32/folder_locked.png [new file with mode: 0644]
swat/images/icons/nuvola/32/folder_open.png [new file with mode: 0644]
swat/images/icons/nuvola/32/font.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/font-x-generic.png with 100% similarity]
swat/images/icons/nuvola/32/forward.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/go-next.png with 100% similarity]
swat/images/icons/nuvola/32/gohome.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/go-home.png with 100% similarity]
swat/images/icons/nuvola/32/help.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/help-about.png with 100% similarity]
swat/images/icons/nuvola/32/history.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/history.png with 100% similarity]
swat/images/icons/nuvola/32/hwinfo.png [new file with mode: 0644]
swat/images/icons/nuvola/32/icons.png [new file with mode: 0644]
swat/images/icons/nuvola/32/iconthemes.png [new file with mode: 0644]
swat/images/icons/nuvola/32/important.png [new file with mode: 0644]
swat/images/icons/nuvola/32/info.png [new file with mode: 0644]
swat/images/icons/nuvola/32/kcoloredit.png [new file with mode: 0644]
swat/images/icons/nuvola/32/kcontrol.png [new file with mode: 0644]
swat/images/icons/nuvola/32/keyboard.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-character-map.png with 100% similarity]
swat/images/icons/nuvola/32/khelpcenter.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/help-faq.png with 100% similarity]
swat/images/icons/nuvola/32/kmix.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/multimedia-volume-control.png with 100% similarity]
swat/images/icons/nuvola/32/knotify.png [new file with mode: 0644]
swat/images/icons/nuvola/32/konqueror.png [new file with mode: 0644]
swat/images/icons/nuvola/32/kpackage.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/system-software-update.png with 100% similarity]
swat/images/icons/nuvola/32/kpaint.png [new file with mode: 0644]
swat/images/icons/nuvola/32/krita.png [new file with mode: 0644]
swat/images/icons/nuvola/32/ksnapshot.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/graphics-snapshot.png with 100% similarity]
swat/images/icons/nuvola/32/ktip.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-tip.png with 100% similarity]
swat/images/icons/nuvola/32/kuser.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/system-users.png with 100% similarity]
swat/images/icons/nuvola/32/kview.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/graphics-image-viewer.png with 100% similarity]
swat/images/icons/nuvola/32/locale.png [new file with mode: 0644]
swat/images/icons/nuvola/32/looknfeel.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/preferences-desktop-personal.png with 100% similarity]
swat/images/icons/nuvola/32/mail_delete.png [new file with mode: 0644]
swat/images/icons/nuvola/32/mail_find.png [new file with mode: 0644]
swat/images/icons/nuvola/32/mail_forward.png [new file with mode: 0644]
swat/images/icons/nuvola/32/mail_generic.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/mail.png with 100% similarity]
swat/images/icons/nuvola/32/mail_new.png [new file with mode: 0644]
swat/images/icons/nuvola/32/mail_replyall.png [new file with mode: 0644]
swat/images/icons/nuvola/32/mail_send.png [new file with mode: 0644]
swat/images/icons/nuvola/32/misc.png [new file with mode: 0644]
swat/images/icons/nuvola/32/mozilla.png [new file with mode: 0644]
swat/images/icons/nuvola/32/mycomputer.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/computer.png with 100% similarity]
swat/images/icons/nuvola/32/netscape.png [new file with mode: 0644]
swat/images/icons/nuvola/32/network.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/preferences-system-network.png with 100% similarity]
swat/images/icons/nuvola/32/next.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/go-right.png with 100% similarity]
swat/images/icons/nuvola/32/no.png [new file with mode: 0644]
swat/images/icons/nuvola/32/ok.png [new file with mode: 0644]
swat/images/icons/nuvola/32/opera.png [new file with mode: 0644]
swat/images/icons/nuvola/32/package.png [new file with mode: 0644]
swat/images/icons/nuvola/32/password.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/status/dialog-password.png with 100% similarity]
swat/images/icons/nuvola/32/pipe.png [new file with mode: 0644]
swat/images/icons/nuvola/32/previous.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/go-left.png with 100% similarity]
swat/images/icons/nuvola/32/realplayer.png [new file with mode: 0644]
swat/images/icons/nuvola/32/redo.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/edit-redo.png with 100% similarity]
swat/images/icons/nuvola/32/reload.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/view-refresh.png with 100% similarity]
swat/images/icons/nuvola/32/run.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/system-run.png with 100% similarity]
swat/images/icons/nuvola/32/services.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/services.png with 100% similarity]
swat/images/icons/nuvola/32/socket.png [new file with mode: 0644]
swat/images/icons/nuvola/32/spellcheck.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/tools-check-spelling.png with 100% similarity]
swat/images/icons/nuvola/32/stop.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/stop.png with 100% similarity]
swat/images/icons/nuvola/32/style.png [new file with mode: 0644]
swat/images/icons/nuvola/32/stylesheet.png [new file with mode: 0644]
swat/images/icons/nuvola/32/thumbnail.png [new file with mode: 0644]
swat/images/icons/nuvola/32/up.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/go-up.png with 100% similarity]
swat/images/icons/nuvola/32/wizard.png [new file with mode: 0644]
swat/images/icons/nuvola/48/access.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/preferences-desktop-accessibility.png with 100% similarity]
swat/images/icons/nuvola/48/agent.png [new file with mode: 0644]
swat/images/icons/nuvola/48/apply.png [new file with mode: 0644]
swat/images/icons/nuvola/48/back.png [new file with mode: 0644]
swat/images/icons/nuvola/48/background.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/preferences-desktop-wallpaper.png with 100% similarity]
swat/images/icons/nuvola/48/bell.png [new file with mode: 0644]
swat/images/icons/nuvola/48/bookmark.png [new file with mode: 0644]
swat/images/icons/nuvola/48/browser.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/internet-web-browser.png with 100% similarity]
swat/images/icons/nuvola/48/button_cancel.png [new file with mode: 0644]
swat/images/icons/nuvola/48/button_ok.png [new file with mode: 0644]
swat/images/icons/nuvola/48/cache.png [new file with mode: 0644]
swat/images/icons/nuvola/48/clock.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-clock.png with 100% similarity]
swat/images/icons/nuvola/48/colorize.png [new file with mode: 0644]
swat/images/icons/nuvola/48/colors.png [new file with mode: 0644]
swat/images/icons/nuvola/48/colorset.png [new file with mode: 0644]
swat/images/icons/nuvola/48/configure.png [new file with mode: 0644]
swat/images/icons/nuvola/48/cookie.png [new file with mode: 0644]
swat/images/icons/nuvola/48/core.png [new file with mode: 0644]
swat/images/icons/nuvola/48/date.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-date.png with 100% similarity]
swat/images/icons/nuvola/48/decrypted.png [new file with mode: 0644]
swat/images/icons/nuvola/48/desktop.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/user-desktop.png with 100% similarity]
swat/images/icons/nuvola/48/display.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/preferences-desktop.png with 100% similarity]
swat/images/icons/nuvola/48/document.png [new file with mode: 0644]
swat/images/icons/nuvola/48/down.png [new file with mode: 0644]
swat/images/icons/nuvola/48/edit.png [new file with mode: 0644]
swat/images/icons/nuvola/48/editcopy.png [new file with mode: 0644]
swat/images/icons/nuvola/48/editcut.png [new file with mode: 0644]
swat/images/icons/nuvola/48/editdelete.png [new file with mode: 0644]
swat/images/icons/nuvola/48/editpaste.png [new file with mode: 0644]
swat/images/icons/nuvola/48/edittrash.png [new file with mode: 0644]
swat/images/icons/nuvola/48/email.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/internet-email-client.png with 100% similarity]
swat/images/icons/nuvola/48/empty.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/empty-x-generic.png with 100% similarity]
swat/images/icons/nuvola/48/encrypted.png [new file with mode: 0644]
swat/images/icons/nuvola/48/energy.png [new file with mode: 0644]
swat/images/icons/nuvola/48/error.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/status/dialog-error.png with 100% similarity]
swat/images/icons/nuvola/48/exec.png [new file with mode: 0644]
swat/images/icons/nuvola/48/filenew.png [new file with mode: 0644]
swat/images/icons/nuvola/48/fileopen.png [new file with mode: 0644]
swat/images/icons/nuvola/48/fileprint.png [new file with mode: 0644]
swat/images/icons/nuvola/48/filesave.png [new file with mode: 0644]
swat/images/icons/nuvola/48/filesaveas.png [new file with mode: 0644]
swat/images/icons/nuvola/48/find.png [new file with mode: 0644]
swat/images/icons/nuvola/48/folder.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/folder.png with 100% similarity]
swat/images/icons/nuvola/48/folder_home.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/user-home.png with 100% similarity]
swat/images/icons/nuvola/48/folder_important.png [new file with mode: 0644]
swat/images/icons/nuvola/48/folder_locked.png [new file with mode: 0644]
swat/images/icons/nuvola/48/folder_open.png [new file with mode: 0644]
swat/images/icons/nuvola/48/font.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/font-x-generic.png with 100% similarity]
swat/images/icons/nuvola/48/forward.png [new file with mode: 0644]
swat/images/icons/nuvola/48/gohome.png [new file with mode: 0644]
swat/images/icons/nuvola/48/help.png [new file with mode: 0644]
swat/images/icons/nuvola/48/history.png [new file with mode: 0644]
swat/images/icons/nuvola/48/hwinfo.png [new file with mode: 0644]
swat/images/icons/nuvola/48/icons.png [new file with mode: 0644]
swat/images/icons/nuvola/48/iconthemes.png [new file with mode: 0644]
swat/images/icons/nuvola/48/important.png [new file with mode: 0644]
swat/images/icons/nuvola/48/info.png [new file with mode: 0644]
swat/images/icons/nuvola/48/kcoloredit.png [new file with mode: 0644]
swat/images/icons/nuvola/48/kcontrol.png [new file with mode: 0644]
swat/images/icons/nuvola/48/keyboard.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-character-map.png with 100% similarity]
swat/images/icons/nuvola/48/khelpcenter.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/actions/help-faq.png with 100% similarity]
swat/images/icons/nuvola/48/kmix.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/multimedia-volume-control.png with 100% similarity]
swat/images/icons/nuvola/48/knotify.png [new file with mode: 0644]
swat/images/icons/nuvola/48/konqueror.png [new file with mode: 0644]
swat/images/icons/nuvola/48/kpackage.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/system-software-update.png with 100% similarity]
swat/images/icons/nuvola/48/kpaint.png [new file with mode: 0644]
swat/images/icons/nuvola/48/krita.png [new file with mode: 0644]
swat/images/icons/nuvola/48/ksnapshot.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/graphics-snapshot.png with 100% similarity]
swat/images/icons/nuvola/48/ktip.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-tip.png with 100% similarity]
swat/images/icons/nuvola/48/kuser.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/system-users.png with 100% similarity]
swat/images/icons/nuvola/48/kview.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/graphics-image-viewer.png with 100% similarity]
swat/images/icons/nuvola/48/locale.png [new file with mode: 0644]
swat/images/icons/nuvola/48/looknfeel.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/preferences-desktop-personal.png with 100% similarity]
swat/images/icons/nuvola/48/mail_delete.png [new file with mode: 0644]
swat/images/icons/nuvola/48/mail_find.png [new file with mode: 0644]
swat/images/icons/nuvola/48/mail_forward.png [new file with mode: 0644]
swat/images/icons/nuvola/48/mail_generic.png [new file with mode: 0644]
swat/images/icons/nuvola/48/mail_new.png [new file with mode: 0644]
swat/images/icons/nuvola/48/mail_replyall.png [new file with mode: 0644]
swat/images/icons/nuvola/48/mail_send.png [new file with mode: 0644]
swat/images/icons/nuvola/48/misc.png [new file with mode: 0644]
swat/images/icons/nuvola/48/mozilla.png [new file with mode: 0644]
swat/images/icons/nuvola/48/mycomputer.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/computer.png with 100% similarity]
swat/images/icons/nuvola/48/netscape.png [new file with mode: 0644]
swat/images/icons/nuvola/48/network.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/preferences-system-network.png with 100% similarity]
swat/images/icons/nuvola/48/next.png [new file with mode: 0644]
swat/images/icons/nuvola/48/no.png [new file with mode: 0644]
swat/images/icons/nuvola/48/ok.png [new file with mode: 0644]
swat/images/icons/nuvola/48/opera.png [new file with mode: 0644]
swat/images/icons/nuvola/48/package.png [new file with mode: 0644]
swat/images/icons/nuvola/48/password.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/status/dialog-password.png with 100% similarity]
swat/images/icons/nuvola/48/pipe.png [new file with mode: 0644]
swat/images/icons/nuvola/48/previous.png [new file with mode: 0644]
swat/images/icons/nuvola/48/realplayer.png [new file with mode: 0644]
swat/images/icons/nuvola/48/redo.png [new file with mode: 0644]
swat/images/icons/nuvola/48/reload.png [new file with mode: 0644]
swat/images/icons/nuvola/48/run.png [new file with mode: 0644]
swat/images/icons/nuvola/48/services.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/services.png with 100% similarity]
swat/images/icons/nuvola/48/socket.png [new file with mode: 0644]
swat/images/icons/nuvola/48/spellcheck.png [new file with mode: 0644]
swat/images/icons/nuvola/48/stop.png [new file with mode: 0644]
swat/images/icons/nuvola/48/style.png [new file with mode: 0644]
swat/images/icons/nuvola/48/stylesheet.png [new file with mode: 0644]
swat/images/icons/nuvola/48/thumbnail.png [new file with mode: 0644]
swat/images/icons/nuvola/48/up.png [new file with mode: 0644]
swat/images/icons/nuvola/48/wizard.png [new file with mode: 0644]
swat/images/icons/nuvola/64/access.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/preferences-desktop-accessibility.png with 100% similarity]
swat/images/icons/nuvola/64/agent.png [new file with mode: 0644]
swat/images/icons/nuvola/64/background.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/preferences-desktop-wallpaper.png with 100% similarity]
swat/images/icons/nuvola/64/bell.png [new file with mode: 0644]
swat/images/icons/nuvola/64/browser.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/internet-web-browser.png with 100% similarity]
swat/images/icons/nuvola/64/cache.png [new file with mode: 0644]
swat/images/icons/nuvola/64/clock.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-clock.png with 100% similarity]
swat/images/icons/nuvola/64/colors.png [new file with mode: 0644]
swat/images/icons/nuvola/64/colorset.png [new file with mode: 0644]
swat/images/icons/nuvola/64/cookie.png [new file with mode: 0644]
swat/images/icons/nuvola/64/core.png [new file with mode: 0644]
swat/images/icons/nuvola/64/date.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-date.png with 100% similarity]
swat/images/icons/nuvola/64/desktop.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/user-desktop.png with 100% similarity]
swat/images/icons/nuvola/64/display.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/preferences-desktop.png with 100% similarity]
swat/images/icons/nuvola/64/document.png [new file with mode: 0644]
swat/images/icons/nuvola/64/email.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/internet-email-client.png with 100% similarity]
swat/images/icons/nuvola/64/empty.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/empty-x-generic.png with 100% similarity]
swat/images/icons/nuvola/64/encrypted.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/empty-x-encrypted.png with 100% similarity]
swat/images/icons/nuvola/64/energy.png [new file with mode: 0644]
swat/images/icons/nuvola/64/error.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/status/dialog-error.png with 100% similarity]
swat/images/icons/nuvola/64/exec.png [new file with mode: 0644]
swat/images/icons/nuvola/64/folder.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/folder.png with 100% similarity]
swat/images/icons/nuvola/64/folder_home.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/user-home.png with 100% similarity]
swat/images/icons/nuvola/64/folder_important.png [new file with mode: 0644]
swat/images/icons/nuvola/64/folder_locked.png [new file with mode: 0644]
swat/images/icons/nuvola/64/folder_open.png [new file with mode: 0644]
swat/images/icons/nuvola/64/font.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/font-x-generic.png with 100% similarity]
swat/images/icons/nuvola/64/hwinfo.png [new file with mode: 0644]
swat/images/icons/nuvola/64/icons.png [new file with mode: 0644]
swat/images/icons/nuvola/64/iconthemes.png [new file with mode: 0644]
swat/images/icons/nuvola/64/important.png [new file with mode: 0644]
swat/images/icons/nuvola/64/info.png [new file with mode: 0644]
swat/images/icons/nuvola/64/kcoloredit.png [new file with mode: 0644]
swat/images/icons/nuvola/64/kcontrol.png [new file with mode: 0644]
swat/images/icons/nuvola/64/keyboard.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-character-map.png with 100% similarity]
swat/images/icons/nuvola/64/khelpcenter.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/actions/help-faq.png with 100% similarity]
swat/images/icons/nuvola/64/kmix.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/multimedia-volume-control.png with 100% similarity]
swat/images/icons/nuvola/64/knotify.png [new file with mode: 0644]
swat/images/icons/nuvola/64/konqueror.png [new file with mode: 0644]
swat/images/icons/nuvola/64/kpackage.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/system-software-update.png with 100% similarity]
swat/images/icons/nuvola/64/kpaint.png [new file with mode: 0644]
swat/images/icons/nuvola/64/krita.png [new file with mode: 0644]
swat/images/icons/nuvola/64/ksnapshot.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/graphics-snapshot.png with 100% similarity]
swat/images/icons/nuvola/64/ktip.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-tip.png with 100% similarity]
swat/images/icons/nuvola/64/kuser.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/system-users.png with 100% similarity]
swat/images/icons/nuvola/64/kview.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/graphics-image-viewer.png with 100% similarity]
swat/images/icons/nuvola/64/locale.png [new file with mode: 0644]
swat/images/icons/nuvola/64/looknfeel.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/preferences-desktop-personal.png with 100% similarity]
swat/images/icons/nuvola/64/mozilla.png [new file with mode: 0644]
swat/images/icons/nuvola/64/mycomputer.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/computer.png with 100% similarity]
swat/images/icons/nuvola/64/netscape.png [new file with mode: 0644]
swat/images/icons/nuvola/64/network.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/preferences-system-network.png with 100% similarity]
swat/images/icons/nuvola/64/opera.png [new file with mode: 0644]
swat/images/icons/nuvola/64/package.png [new file with mode: 0644]
swat/images/icons/nuvola/64/password.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/status/dialog-password.png with 100% similarity]
swat/images/icons/nuvola/64/pipe.png [new file with mode: 0644]
swat/images/icons/nuvola/64/realplayer.png [new file with mode: 0644]
swat/images/icons/nuvola/64/services.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/services.png with 100% similarity]
swat/images/icons/nuvola/64/socket.png [new file with mode: 0644]
swat/images/icons/nuvola/64/style.png [new file with mode: 0644]
swat/images/icons/nuvola/64/stylesheet.png [new file with mode: 0644]
swat/images/icons/nuvola/README [new file with mode: 0644]
swat/images/icons/nuvola/author [new file with mode: 0644]
swat/images/icons/nuvola/license.txt [new file with mode: 0644]
swat/images/icons/nuvola/readme.txt [new file with mode: 0644]
swat/images/icons/nuvola/thanks.to [new file with mode: 0644]
swat/images/linkpad.gif [moved from webapps/images/linkpad.gif with 100% similarity]
swat/images/logo.png [moved from webapps/images/logo.png with 100% similarity]
swat/images/stripes.png [moved from webapps/images/stripes.png with 100% similarity]
swat/images/widgets/windows/arrows/down.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/arrows/down.gif with 100% similarity]
swat/images/widgets/windows/arrows/down_small.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/arrows/down_small.gif with 100% similarity]
swat/images/widgets/windows/arrows/down_tiny.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/arrows/down_tiny.gif with 100% similarity]
swat/images/widgets/windows/arrows/first.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/arrows/first.png with 100% similarity]
swat/images/widgets/windows/arrows/forward.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/arrows/forward.gif with 100% similarity]
swat/images/widgets/windows/arrows/last.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/arrows/last.png with 100% similarity]
swat/images/widgets/windows/arrows/left.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/arrows/left.png with 100% similarity]
swat/images/widgets/windows/arrows/minimize.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/arrows/minimize.gif with 100% similarity]
swat/images/widgets/windows/arrows/next.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/arrows/next.gif with 100% similarity]
swat/images/widgets/windows/arrows/previous.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/arrows/previous.gif with 100% similarity]
swat/images/widgets/windows/arrows/rewind.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/arrows/rewind.gif with 100% similarity]
swat/images/widgets/windows/arrows/right.png [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/arrows/right.png with 100% similarity]
swat/images/widgets/windows/arrows/up.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/arrows/up.gif with 100% similarity]
swat/images/widgets/windows/arrows/up_small.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/arrows/up_small.gif with 100% similarity]
swat/images/widgets/windows/arrows/up_tiny.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/arrows/up_tiny.gif with 100% similarity]
swat/images/widgets/windows/cursors/alias.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/cursors/alias.gif with 100% similarity]
swat/images/widgets/windows/cursors/copy.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/cursors/copy.gif with 100% similarity]
swat/images/widgets/windows/cursors/move.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/cursors/move.gif with 100% similarity]
swat/images/widgets/windows/cursors/nodrop.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/cursors/nodrop.gif with 100% similarity]
swat/images/widgets/windows/menu/checkbox.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/menu/checkbox.gif with 100% similarity]
swat/images/widgets/windows/menu/radiobutton.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/menu/radiobutton.gif with 100% similarity]
swat/images/widgets/windows/tree/cross.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/tree/cross.gif with 100% similarity]
swat/images/widgets/windows/tree/cross_minus.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/tree/cross_minus.gif with 100% similarity]
swat/images/widgets/windows/tree/cross_plus.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/tree/cross_plus.gif with 100% similarity]
swat/images/widgets/windows/tree/end.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/tree/end.gif with 100% similarity]
swat/images/widgets/windows/tree/end_minus.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/tree/end_minus.gif with 100% similarity]
swat/images/widgets/windows/tree/end_plus.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/tree/end_plus.gif with 100% similarity]
swat/images/widgets/windows/tree/line.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/tree/line.gif with 100% similarity]
swat/images/widgets/windows/tree/minus.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/tree/minus.gif with 100% similarity]
swat/images/widgets/windows/tree/plus.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/tree/plus.gif with 100% similarity]
swat/images/widgets/windows/window/close.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/window/close.gif with 100% similarity]
swat/images/widgets/windows/window/maximize.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/window/maximize.gif with 100% similarity]
swat/images/widgets/windows/window/minimize.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/window/minimize.gif with 100% similarity]
swat/images/widgets/windows/window/restore.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/window/restore.gif with 100% similarity]
swat/index.esp [moved from webapps/index.esp with 100% similarity]
swat/install/index.esp [moved from webapps/install/index.esp with 100% similarity]
swat/install/newuser.esp [moved from webapps/install/newuser.esp with 100% similarity]
swat/install/provision.esp [moved from webapps/install/provision.esp with 100% similarity]
swat/install/samba3.esp [moved from webapps/install/samba3.esp with 100% similarity]
swat/install/vampire.esp [moved from webapps/install/vampire.esp with 100% similarity]
swat/kdc_server/index.esp [new file with mode: 0644]
swat/ldap_server/index.esp [new file with mode: 0644]
swat/login.esp [moved from webapps/login.esp with 100% similarity]
swat/logout.esp [moved from webapps/logout.esp with 100% similarity]
swat/menu.js [moved from webapps/menu.js with 76% similarity]
swat/nbt_server/index.esp [new file with mode: 0644]
swat/rpc_server/index.esp [new file with mode: 0644]
swat/scripting/client/call.js [moved from webapps/scripting/client/call.js with 100% similarity]
swat/scripting/client/desktop.js [moved from webapps/scripting/client/desktop.js with 100% similarity]
swat/scripting/client/encoder.js [moved from webapps/scripting/client/encoder.js with 100% similarity]
swat/scripting/client/js_scripts.js [moved from webapps/scripting/client/js_scripts.js with 100% similarity]
swat/scripting/client/regedit.js [moved from webapps/scripting/client/regedit.js with 100% similarity]
swat/scripting/client/status.js [moved from webapps/scripting/client/status.js with 100% similarity]
swat/scripting/common.js [moved from webapps/scripting/common.js with 100% similarity]
swat/scripting/footer_columns.esp [moved from webapps/scripting/footer_columns.esp with 100% similarity]
swat/scripting/footer_desktop.esp [moved from webapps/scripting/footer_desktop.esp with 100% similarity]
swat/scripting/footer_plain.esp [moved from webapps/scripting/footer_plain.esp with 100% similarity]
swat/scripting/forms.js [moved from webapps/scripting/forms.js with 100% similarity]
swat/scripting/general_calls.esp [moved from webapps/scripting/general_calls.esp with 100% similarity]
swat/scripting/header_columns.esp [moved from webapps/scripting/header_columns.esp with 96% similarity]
swat/scripting/header_desktop.esp [moved from webapps/scripting/header_desktop.esp with 100% similarity]
swat/scripting/header_plain.esp [moved from webapps/scripting/header_plain.esp with 100% similarity]
swat/scripting/menus.js [moved from webapps/scripting/menus.js with 100% similarity]
swat/scripting/preauth.esp [moved from webapps/scripting/preauth.esp with 100% similarity]
swat/scripting/server/regedit.esp [moved from webapps/scripting/server/regedit.esp with 100% similarity]
swat/scripting/server/status.esp [moved from webapps/scripting/server/status.esp with 100% similarity]
swat/scripting/test.ejs [moved from webapps/scripting/test.ejs with 100% similarity]
swat/scripting/test.esp [moved from webapps/scripting/test.esp with 100% similarity]
swat/smb_server/index.esp [new file with mode: 0644]
swat/style/columns.css [moved from webapps/style/columns.css with 100% similarity]
swat/style/common.css [moved from webapps/style/common.css with 100% similarity]
swat/style/qooxdoo/core.css [new file with mode: 0644]
swat/style/qooxdoo/layouts/application.css [new file with mode: 0644]
swat/style/qooxdoo/layouts/page.css [new file with mode: 0644]
swat/style/qooxdoo/test.css [new file with mode: 0644]
swat/style/qooxdoo/themes.css [new file with mode: 0644]
swat/style/qooxdoo/themes/osx/grad_blue.gif [new file with mode: 0755]
swat/style/qooxdoo/themes/osx/grad_gray.gif [new file with mode: 0755]
swat/style/qooxdoo/themes/osx/pin_dark.gif [new file with mode: 0755]
swat/style/qooxdoo/themes/osx/toolbar_bg.gif [new file with mode: 0755]
swat/style/qooxdoo/themes/win9x/radiobuttonbackground.gif [moved from webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/static/image/dotted_white.gif with 100% similarity]
swat/style/qooxdoo/themes/win9x/theme.css [new file with mode: 0644]
swat/style/qooxdoo/themes/win9x/windowcaption_active.png [new file with mode: 0644]
swat/style/qooxdoo/themes/win9x/windowcaption_inactive.png [new file with mode: 0644]
swat/style/qooxdoo/themes/winxp/menubackground.gif [new file with mode: 0644]
swat/style/qooxdoo/themes/winxp/theme.css [new file with mode: 0644]
swat/style/qooxdoo/themes/winxp/toolbarparthandle.gif [new file with mode: 0644]
swat/style/qooxdoo/widgets.css [new file with mode: 0644]
swat/style/qooxdoo/widgets/core/QxApplication.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/core/QxBorder.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/core/QxBuilder.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/core/QxClient.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/core/QxClientWindow.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/core/QxCommand.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/core/QxData.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/core/QxDebug.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/core/QxDom.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/core/QxExtend.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/core/QxNativeWindow.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/core/QxObject.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/core/QxSelectionStorage.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/core/QxTarget.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/core/QxTimer.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/core/QxUserApplication.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/core/QxXmlHttpLoader.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/events/QxDataEvent.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/events/QxDragEvent.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/events/QxEvent.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/events/QxFocusEvent.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/events/QxKeyEvent.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/events/QxMouseEvent.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/managers/QxDataManager.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/managers/QxDomSelectionManager.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/managers/QxDragAndDropManager.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/managers/QxEventManager.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/managers/QxFocusManager.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/managers/QxImageManager.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/managers/QxImagePreloaderManager.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/managers/QxManager.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/managers/QxMenuManager.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/managers/QxPopupManager.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/managers/QxRadioButtonManager.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/managers/QxRangeManager.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/managers/QxSelectionManager.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/managers/QxTimerManager.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/managers/QxToolTipManager.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/managers/QxWindowManager.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/qooxdoo.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/types/QxColor.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/types/QxInteger.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/types/QxNumber.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/types/QxString.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/types/QxTextile.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/types/QxVariable.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxAtom.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxBarSelectorBar.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxBarSelectorButton.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxBarSelectorFrame.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxBarSelectorPage.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxBarSelectorPane.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxBlocker.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxBoxLayout.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxButton.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxCheckBox.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxClientDocument.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxColorPresetPopup.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxColorSelector.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxComboBox.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxContainer.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxDockLayout.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxFieldSet.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxFlowLayout.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxForm.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxGallery.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxGalleryList.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxGridLayout.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxHorizontalBoxLayout.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxIframe.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxImage.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxImagePreloader.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxInline.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxInputCheckIcon.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxLayout.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxList.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxListItem.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxListView.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxMenu.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxMenuBar.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxMenuBarButton.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxMenuButton.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxMenuCheckBox.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxMenuRadioButton.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxMenuSeparator.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxPasswordField.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxPopup.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxRadioButton.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxSpinner.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxTab.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxTabBar.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxTabFrame.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxTabPage.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxTabPane.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxTerminator.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxTextArea.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxTextField.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxToolBar.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxToolBarButton.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxToolBarCheckBox.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxToolBarMenuButton.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxToolBarPart.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxToolBarPartHandle.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxToolBarRadioButton.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxToolBarSeparator.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxToolTip.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxTree.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxTreeElement.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxTreeFile.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxTreeFolder.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxVerticalBoxLayout.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxWidget.js [new file with mode: 0644]
swat/style/qooxdoo/widgets/widgets/QxWindow.js [new file with mode: 0644]
swat/style/swat.css [moved from webapps/style/swat.css with 100% similarity]
swat/style/wide.css [moved from webapps/style/wide.css with 100% similarity]
swat/wins_server/index.esp [new file with mode: 0644]
testdata/samba3/smb.conf
testprogs/blackbox/test_cifsdd.sh
testprogs/blackbox/test_kinit.sh
testprogs/blackbox/test_smbclient.sh
testprogs/ejs/ldb.js
webapps/qooxdoo-0.6.5-sdk/AUTHORS [deleted file]
webapps/qooxdoo-0.6.5-sdk/LICENSE [deleted file]
webapps/qooxdoo-0.6.5-sdk/README [deleted file]
webapps/qooxdoo-0.6.5-sdk/RELEASENOTES [deleted file]
webapps/qooxdoo-0.6.5-sdk/TODO [deleted file]
webapps/qooxdoo-0.6.5-sdk/VERSION [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/Makefile [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/Makefile [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/Makefile [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/class/apiviewer/Application.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/class/apiviewer/ClassViewer.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/class/apiviewer/InfoViewer.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/class/apiviewer/TreeUtil.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/class/apiviewer/Viewer.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/index.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/css/apiviewer.css [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/class18.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/class_abstract18.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/class_abstract_warning18.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/class_static18.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/class_static_warning18.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/class_warning18.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/close.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/colorstrip.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/constant18.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/constructor18.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/event18.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/method_protected18.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/method_public18.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/nextlevel.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/open.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_abstract18.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_constructor18.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_error18.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_inherited18.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_overridden18.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_static18.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_warning18.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/package18.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/package_warning18.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/property18.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/translation/C.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/translation/de.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/translation/en.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/translation/es.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/translation/fr.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/Makefile [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/class/feedreader/Application.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/class/feedreader/ArticleView.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/index.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/css/reader.css [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/feeds/ajaxian.xml [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/feeds/febo-feeds.opml.xml [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/feeds/qooxdoo-blog.xml [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/feeds/qooxdoo-news.xml [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/feeds/safari.xml [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/feeds/zimbra-atom.xml [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/proxy/proxy.php [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/translation/C.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/translation/de.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/translation/en.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/translation/es.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/translation/it.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/translation/ru.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/translation/sv.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/translation/tr.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/index.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/Makefile [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/css/layout.css [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/css/layout_ie.css [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Atom_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Atom_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Atom_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ButtonView_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ButtonView_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Button_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/CheckBox_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ColorPopup_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ColorSelector_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ColorSelector_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ComboBoxEx_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ComboBox_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Command_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Command_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/DateChooser_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Drag_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Fields_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Flash_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Fsm_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Fsm_1/fsm.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Fsm_1/gui.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Fsm_1/main.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/GalleryList_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Gallery_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/GroupBox_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/GroupBox_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/GroupBox_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Iframe_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Inline_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ListView_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ListView_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ListView_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ListView_4.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/List_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Menu_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/NativeWindow_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/RadioButton_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/RepeatButton_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Resizer_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/RpcTreeFullControl_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Spinner_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/SplitPane_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/SplitPane_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TabView_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TabView_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Table_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Table_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ToolBar_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ToolBar_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ToolBar_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ToolBar_4.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ToolTip_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TreeFullControl_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TreeFullControl_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TreeFullControl_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TreeFullControl_4.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TreeVirtual_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TreeVirtual_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TreeVirtual_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TreeVirtual_4.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Tree_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Window_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file1.swf [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file10.swf [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file2.swf [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file3.swf [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file4.swf [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file5.swf [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file6.swf [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file7.swf [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file8.swf [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file9.swf [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/fo_tester.fla [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/fo_tester.swf [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/index.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/ArrayCreate_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/ArrayCreate_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/GlobalObject_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/GlobalObject_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/GlobalObject_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/GlobalObject_4.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/LocalObject_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/LocalObject_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/LocalObject_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/LocalObject_4.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/LocalObject_5.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/NumberCreate_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/ObjectCreate_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/ObjectCreate_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/ObjectLevel_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/ObjectLevel_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/ObjectLevel_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/ObjectSize_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/Qooxdoo_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/StringConcat_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/StringConcat_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/StringConcat_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/TypeCheck_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/index.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_4.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_5.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_6.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_7.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_8.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_9.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Border_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/BoxLayout_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/BoxLayout_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Builder_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Builder_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Builder_2.xml [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Builder_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Builder_3.xml [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Builder_4.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Button_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CSS_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CanvasLayout_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CanvasLayout_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CanvasLayout_4.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CanvasLayout_5.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Clipping_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Clone_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Clone_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ColorTheme_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ColorTheme_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ColorTheme_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ComboBox_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ComboBox_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ComboBox_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ComboBox_4.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CookieStorage_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CookieStorage_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Cookie_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CrossBrowser_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CrossBrowser_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DateChooserButton_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DateChooserButton_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DockLayout_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DockLayout_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DockLayout_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DockLayout_4.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DockLayout_5.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DockLayout_6.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DragAndDropManager_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DragAndDropManager_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/EnabledDisabled_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/FieldSet_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Fields_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/FlowLayout_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/FlowLayout_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/FlowLayout_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/FocusManager_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Font_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/FormUtils_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Gallery_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Gallery_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Generate_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_10.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_11.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_4.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_5.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_6.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_7.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_8.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_9.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/History_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/HorizontalBoxLayout_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/HorizontalBoxLayout_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/HorizontalBoxLayout_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/HtmlTable_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/HtmlTable_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/IconHtml_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Image_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Image_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Keyhandler_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Label_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Label_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Label_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Label_4.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Leak_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Link_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_10.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_4.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_5.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_6.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_7.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_8.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_9.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/List_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/List_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/List_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Menu_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Menu_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Node_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Popups_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Popups_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/RPC_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/RPC_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/RPC_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/RPC_4.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/RPC_5.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/SplitPane_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Table_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Table_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Table_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Table_4.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Table_5.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ToolBar_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ToolBar_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ToolBar_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ToolBar_4.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Transport_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Transport_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Transport_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Transport_4.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Transport_5.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Transport_6.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/TreeVirtual_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/TreeVirtual_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Tree_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Tree_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Tree_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Tree_4.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Tree_5.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Tree_6.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Tree_7.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Umlauts_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/VerticalBoxLayout_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/VerticalBoxLayout_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/VerticalBoxLayout_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Window_1.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Window_2.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Window_3.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Window_4.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Window_5.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Window_6.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/bigFont.css [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/boldFont.css [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/filesize/400kb.xml [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/filesize/40kb.xml [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/anita.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/anita.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/anita.txt [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/anita.xml [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/harald.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/harald.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/harald.txt [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/harald.xml [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/lisbeth.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/lisbeth.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/lisbeth.txt [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/lisbeth.xml [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/paul.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/paul.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/paul.txt [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/paul.xml [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file1.swf [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file10.swf [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file2.swf [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file3.swf [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file4.swf [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file5.swf [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file6.swf [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file7.swf [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file8.swf [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file9.swf [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/fo_tester.fla [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/fo_tester.swf [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/grid_dialog_box.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/index.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/index.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/translation/C.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/tool/layout.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/Makefile [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/class/showcase/Application.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/index.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/C.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/ar.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/de.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/de_AT.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/de_DE.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/en.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/en_US.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/es.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/es_ES.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/fr.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/fr_FR.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/it.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/ru.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/sv.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/tr.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/zh.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/Makefile [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/source/class/webmail/Application.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/source/index.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/source/index.xhtml.tmpl [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/source/translation/C.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/source/translation/de.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/source/translation/en.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/source/translation/es.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/source/translation/fr.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/Makefile [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/Locale.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/OO.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/Settings.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/client/Command.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/client/History.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/client/NativeWindow.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/client/Timer.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/component/AbstractApplication.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/component/AbstractComponent.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/component/DummyApplication.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/component/init/AbstractInitComponent.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/component/init/BasicInitComponent.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/component/init/InterfaceInitComponent.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/core/Client.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/core/Init.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/core/Object.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/core/Target.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/core/Version.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/dev/Pollution.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/dev/TimeTracker.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/dom/Element.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/dom/Node.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/dom/String.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/handler/DragAndDropHandler.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/handler/EventHandler.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/handler/FocusHandler.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/handler/KeyEventHandler.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/type/DataEvent.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/type/DomEvent.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/type/DragEvent.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/type/Event.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/type/FocusEvent.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/type/KeyEvent.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/type/MouseEvent.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Dimension.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/ElementFromPoint.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Entity.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/EventRegistration.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Form.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Iframe.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Location.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Offset.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Scroll.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/ScrollIntoView.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/String.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Style.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/StyleSheet.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Textile.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Window.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/Json.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/image/Preloader.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/image/PreloaderSystem.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/local/CookieApi.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/local/CookieTransport.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/AbstractRemoteTransport.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/Exchange.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/IframeTransport.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/Request.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/RequestQueue.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/Response.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/Rpc.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/ScriptTransport.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/XmlHttpTransport.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/lang/Array.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/lang/Core.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/lang/Function.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/lang/Generics.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/lang/Number.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/lang/Object.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/lang/Prototypes.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/lang/String.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Date.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/LocalizedString.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Manager.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Number.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/String.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/AlertAppender.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/Appender.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/DefaultFilter.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/DivAppender.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/Filter.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/FireBugAppender.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/ForwardAppender.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/LogEventProcessor.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/Logger.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/RingBufferAppender.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/WindowAppender.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/AliasManager.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/AppearanceManager.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/ColorManager.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/IframeManager.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/ImageManager.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/ImagePreloaderManager.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/MenuManager.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/ObjectManager.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/PopupManager.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/ToolTipManager.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/WindowManager.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/selection/DomSelectionManager.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/selection/RadioManager.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/selection/SelectionManager.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/selection/TreeFullControlSelectionManager.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/selection/TreeSelectionManager.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/selection/VirtualSelectionManager.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/net/Http.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/net/HttpRequest.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/net/Protocol.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/border/Border.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/border/BorderCache.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/border/BorderObject.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/border/BorderPresets.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/color/Color.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/color/ColorCache.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/color/ColorObject.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/font/Font.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/font/FontCache.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/font/FontObject.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/CanvasLayoutImpl.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/DockLayoutImpl.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/FlowLayoutImpl.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/GridLayoutImpl.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/HorizontalBoxLayoutImpl.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/LayoutImpl.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/MenuButtonLayoutImpl.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/MenuLayoutImpl.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/VerticalBoxLayoutImpl.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/theme/AppearanceTheme.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/theme/ColorTheme.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/theme/IconTheme.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/theme/WidgetTheme.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/appearance/Classic.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/color/System.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/color/WindowsClassic.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/color/WindowsLunaBlue.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/color/WindowsLunaGreen.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/color/WindowsLunaSilver.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/color/WindowsRoyale.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/icon/CrystalClear.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/icon/NuoveXT.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/icon/Nuvola.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/icon/VistaInspirate.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/widget/Windows.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/type/Range.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/type/Selection.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/type/Version.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/basic/Atom.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/basic/HorizontalSpacer.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/basic/Image.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/basic/Inline.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/basic/Label.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/basic/Terminator.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/basic/VerticalSpacer.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/ColorPopup.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/ColorSelector.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/DateChooser.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/DateChooserButton.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/core/ClientDocument.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/core/ClientDocumentBlocker.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/core/Parent.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/core/ScrollBar.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/core/Widget.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/Flash.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/Gallery.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/GalleryList.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/HtmlEmbed.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/IconHtmlEmbed.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/Iframe.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/LinkEmbed.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/NodeEmbed.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/TextEmbed.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/Button.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/CheckBox.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ComboBox.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ComboBoxEx.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/InputCheckSymbol.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/List.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ListItem.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/PasswordField.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/RadioButton.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/RepeatButton.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/Spinner.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/TextArea.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/TextField.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/groupbox/CheckGroupBox.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/groupbox/GroupBox.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/groupbox/RadioGroupBox.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/layout/BoxLayout.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/layout/CanvasLayout.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/layout/DockLayout.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/layout/FlowLayout.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/layout/GridLayout.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/layout/HorizontalBoxLayout.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/layout/VerticalBoxLayout.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellHtml.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellIconHtml.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellImage.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellLink.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellText.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/Header.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/HeaderCell.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/HeaderSeparator.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/ListView.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/ListViewPane.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/menu/Button.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/menu/CheckBox.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/menu/Layout.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/menu/Menu.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/menu/RadioButton.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/menu/Separator.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/menubar/Button.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/menubar/MenuBar.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractBar.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractButton.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractPage.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractPageView.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractPane.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Bar.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Button.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/ButtonView.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Page.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Pane.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Bar.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Button.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Page.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Pane.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/TabView.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/popup/Popup.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/popup/PopupAtom.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/popup/ToolTip.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/resizer/Resizer.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/splitpane/HorizontalSplitPane.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/splitpane/SplitPane.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/splitpane/VerticalSplitPane.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/AbstractDataCellRenderer.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/AbstractResizeBehavior.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/AbstractTableModel.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/BooleanDataCellRenderer.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/CellEditorFactory.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/CheckBoxCellEditorFactory.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/DataCellRenderer.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/DataRowRenderer.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/DefaultDataCellRenderer.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/DefaultDataRowRenderer.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/DefaultHeaderCellRenderer.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/DefaultResizeBehavior.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/HeaderCellRenderer.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/IconDataCellRenderer.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/IconHeaderCellRenderer.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/RemoteTableModel.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/ResizeBehaviorColumnData.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/ResizeTableColumnModel.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/SelectionManager.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/SelectionModel.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/SimpleTableModel.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/Table.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/TableColumnModel.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/TableModel.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/TablePane.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/TablePaneHeader.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/TablePaneModel.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/TablePaneScroller.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/TextFieldCellEditorFactory.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/toolbar/Button.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/toolbar/CheckBox.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/toolbar/MenuButton.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/toolbar/Part.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/toolbar/PartHandle.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/toolbar/RadioButton.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/toolbar/Separator.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/toolbar/ToolBar.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/tree/AbstractTreeElement.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/tree/Tree.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/tree/TreeFile.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/tree/TreeFolder.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/AbstractTreeElement.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/Tree.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/TreeFile.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/TreeFolder.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/TreeRowStructure.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/DefaultDataCellRenderer.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/SelectionManager.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/SimpleTreeDataCellRenderer.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/SimpleTreeDataModel.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/SimpleTreeDataRowRenderer.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/TreeVirtual.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/window/Window.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/ColorUtil.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/Compare.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/GuiBuilder.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/Mime.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/Normalization.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/StringBuilder.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/Validation.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/format/DateFormat.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/format/Format.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/format/NumberFormat.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/fsm/FiniteStateMachine.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/fsm/State.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/fsm/Transition.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/fsm/example.txt [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/xml/Document.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/xml/Element.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/xml/Entity.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/xml/Namespace.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/xml/String.js [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/C.xml [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/de.xml [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/de_DE.xml [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/en.xml [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/en_US.xml [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/es.xml [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/es_ES.xml [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/fr.xml [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/fr_FR.xml [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/actions/help-contents.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/actions/system-search.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-alarm.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-archiver.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-clipboard.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-dictionary.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-disk-usage.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-floppy.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-magnifier.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-notes.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-terminal.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-text-editor.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-time-tracking.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-timer.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/help-browser.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/internet-download-manager.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/multimedia-movie-player.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/office-adobe-reader.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/office-organizer.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/office-pim.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/preferences-desktop-font.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/preferences-desktop-multimedia.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/preferences-desktop-theme.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/system-file-manager.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/utilities-terminal.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications-games.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications-graphics.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications-internet.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications-multimedia.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications-office.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications-utilities.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/preferences.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/system-help.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/camera-photo.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/camera-video.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/drive-harddisk.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/drive-optical.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/drive-removable-media.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/input-mouse.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/media-flash.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/media-floppy.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/media-optical.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/network-wired.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/network-wireless.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/printer.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/scanner.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/usb.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/video-display.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/application-pdf.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/application-quicktime.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/application-x-executable.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/audio-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/empty-x-locked.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/empty-x-temporary.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/image-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/package-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/text-ascii.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/text-html.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/text-x-generic-template.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/text-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/text-x-script.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/unknown-x-temporary.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/video-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/x-office-calendar.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/x-office-spreadsheet.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/archive-folder.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/document-folder.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/folder-remote.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/html-folder.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/network-server.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/network-workgroup.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/user-trash-empty.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/user-trash-full.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/user-trash.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/www.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/alarm.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/application-exit.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/dialog-finish.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/document-close.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/document-export.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/document-print-quick.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/document-revert.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/document-save-all.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/edit-add.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/edit-undo.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/favorite-add.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/folder-new.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/go-bottom.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/go-top.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/help-contents.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/history-clear.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/identity.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-eject.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-playback-pause.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-playback-start.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-playback-stop.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-seek-backward.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-seek-forward.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-skip-backward.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-skip-forward.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/start.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/system-lock-screen.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/system-search.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/view-pane-column.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/view-pane-detailed.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/view-pane-icon.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/view-pane-remove.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/view-pane-text.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/view-pane-tree.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/window-new.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/zoom-best-fit.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/zoom-in.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/zoom-original.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/zoom-out.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/zoom.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-alarm.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-archiver.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-calculator.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-clipboard.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-dictionary.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-disk-usage.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-floppy.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-magnifier.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-notes.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-terminal.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-text-editor.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-time-tracking.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-timer.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/help-browser.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/internet-download-manager.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/multimedia-movie-player.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/office-adobe-reader.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/office-organizer.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/office-pim.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/preferences-desktop-font.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/preferences-desktop-multimedia.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/preferences-desktop-theme.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/system-file-manager.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/utilities-terminal.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-development.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-games.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-graphics.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-internet.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-multimedia.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-office.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-system.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-utilities.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/preferences-system.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/preferences.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/system-help.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/camera-photo.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/camera-video.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/drive-harddisk.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/drive-optical.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/drive-removable-media.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/input-mouse.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/media-flash.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/media-floppy.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/media-optical.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/network-wired.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/network-wireless.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/printer.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/scanner.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/usb.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/video-display.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/application-pdf.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/application-quicktime.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/application-x-executable.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/audio-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/empty-x-encrypted.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/empty-x-locked.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/empty-x-temporary.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/image-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/package-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/text-ascii.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/text-html.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/text-x-generic-template.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/text-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/text-x-script.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/unknown-x-temporary.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/video-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/x-office-calendar.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/x-office-spreadsheet.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/archive-folder.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/document-folder.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/favorite-folder.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/folder-remote.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/html-folder.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/network-server.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/network-workgroup.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/user-trash-empty.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/user-trash-full.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/user-trash.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/www.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/alarm.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/application-exit.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/dialog-finish.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/document-close.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/document-export.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/document-print-quick.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/document-revert.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/document-save-all.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/edit-add.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/edit-undo.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/favorite-add.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/folder-new.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-eject.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-playback-pause.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-playback-start.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-playback-stop.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-seek-backward.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-seek-forward.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-skip-backward.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-skip-forward.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/start.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/system-lock-screen.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/system-search.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/view-pane-column.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/view-pane-detailed.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/view-pane-icon.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/view-pane-remove.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/view-pane-text.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/view-pane-tree.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/window-new.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/zoom-best-fit.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/zoom-in.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/zoom-original.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/zoom-out.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/zoom.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-alarm.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-archiver.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-dictionary.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-floppy.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-terminal.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-text-editor.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-time-tracking.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/help-browser.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/internet-download-manager.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/office-adobe-reader.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/office-pim.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/preferences-desktop-multimedia.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/preferences-desktop-theme.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/system-file-manager.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/utilities-terminal.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/applications-graphics.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/applications-internet.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/applications-multimedia.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/applications-office.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/applications-utilities.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/preferences.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/camera-photo.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/camera-video.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/drive-harddisk.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/drive-optical.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/drive-removable-media.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/input-mouse.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/media-flash.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/media-floppy.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/media-optical.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/network-wired.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/network-wireless.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/scanner.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/usb.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/video-display.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/application-pdf.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/application-quicktime.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/application-x-executable.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/audio-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/empty-x-encrypted.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/empty-x-temporary.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/image-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/package-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/text-ascii.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/text-html.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/text-x-generic-template.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/text-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/text-x-script.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/unknown-x-temporary.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/video-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/x-office-calendar.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/x-office-spreadsheet.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/archive-folder.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/document-folder.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/favorite-folder.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/folder-remote.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/html-folder.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/network-server.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/network-workgroup.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/user-trash-empty.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/user-trash-full.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/user-trash.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/www.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/application-exit.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/document-close.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/document-print-quick.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/document-revert.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/document-save-all.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/edit-add.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/edit-undo.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/favorite-add.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/folder-new.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/go-top.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/help-contents.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/identity.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-eject.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-playback-pause.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-playback-start.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-seek-backward.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-seek-forward.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-skip-backward.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-skip-forward.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/start.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/system-lock-screen.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/system-search.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/view-pane-column.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/view-pane-detailed.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/view-pane-icon.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/view-pane-remove.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/view-pane-text.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/view-pane-tree.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/window-new.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/zoom-best-fit.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/zoom-in.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/zoom-original.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/zoom-out.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/zoom.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-alarm.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-archiver.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-calculator.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-clipboard.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-dictionary.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-disk-usage.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-floppy.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-magnifier.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-notes.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-terminal.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-text-editor.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-time-tracking.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-timer.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/help-browser.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/internet-download-manager.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/multimedia-movie-player.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/office-adobe-reader.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/office-organizer.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/office-pim.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/preferences-desktop-font.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/preferences-desktop-multimedia.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/preferences-desktop-theme.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/system-file-manager.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/utilities-terminal.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-games.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-graphics.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-internet.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-multimedia.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-office.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-system.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-utilities.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/preferences-system.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/preferences.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/system-help.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/camera-photo.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/camera-video.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/drive-harddisk.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/drive-optical.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/drive-removable-media.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/input-mouse.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/media-flash.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/media-floppy.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/media-optical.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/network-wired.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/network-wireless.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/printer.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/scanner.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/usb.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/video-display.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/application-pdf.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/application-quicktime.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/application-x-executable.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/audio-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/empty-x-encrypted.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/empty-x-locked.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/empty-x-temporary.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/image-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/package-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/text-ascii.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/text-html.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/text-x-generic-template.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/text-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/text-x-script.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/unknown-x-temporary.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/video-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/x-office-calendar.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/x-office-spreadsheet.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/archive-folder.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/document-folder.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/favorite-folder.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/folder-remote.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/html-folder.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/network-server.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/network-workgroup.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/user-trash-empty.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/user-trash-full.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/user-trash.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/www.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/status/dialog-error.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/status/dialog-information.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/status/dialog-warning.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/actions/help-contents.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/actions/system-search.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-alarm.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-archiver.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-calculator.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-clipboard.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-dictionary.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-disk-usage.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-floppy.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-magnifier.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-notes.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-terminal.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-text-editor.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-time-tracking.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-timer.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/help-browser.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/internet-download-manager.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/multimedia-movie-player.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/office-adobe-reader.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/office-organizer.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/office-pim.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/preferences-desktop-font.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/preferences-desktop-multimedia.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/preferences-desktop-theme.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/system-file-manager.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/utilities-terminal.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-games.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-graphics.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-internet.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-multimedia.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-office.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-system.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-utilities.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/preferences-system.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/preferences.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/system-help.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/camera-photo.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/camera-video.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/drive-harddisk.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/drive-optical.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/drive-removable-media.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/input-mouse.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/media-flash.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/media-floppy.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/media-optical.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/network-wired.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/network-wireless.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/printer.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/scanner.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/usb.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/video-display.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/application-pdf.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/application-quicktime.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/application-x-executable.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/audio-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/empty-x-encrypted.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/empty-x-locked.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/empty-x-temporary.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/image-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/package-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/text-ascii.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/text-html.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/text-x-generic-template.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/text-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/text-x-script.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/unknown-x-temporary.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/video-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/x-office-calendar.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/x-office-spreadsheet.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/archive-folder.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/document-folder.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/folder-remote.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/html-folder.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/network-server.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/network-workgroup.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/user-trash-empty.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/user-trash-full.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/user-trash.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/www.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/actions/help-contents.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/actions/system-search.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-alarm.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-archiver.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-calculator.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-clipboard.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-dictionary.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-disk-usage.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-floppy.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-magnifier.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-notes.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-terminal.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-text-editor.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-time-tracking.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/help-browser.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/internet-download-manager.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/multimedia-movie-player.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/office-adobe-reader.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/office-organizer.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/office-pim.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/preferences-desktop-font.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/preferences-desktop-multimedia.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/preferences-desktop-theme.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/system-file-manager.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/utilities-terminal.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-games.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-graphics.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-internet.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-multimedia.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-office.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-system.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-utilities.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/preferences-system.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/preferences.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/system-help.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/camera-photo.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/camera-video.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/drive-harddisk.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/drive-optical.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/drive-removable-media.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/input-mouse.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/media-flash.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/media-floppy.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/media-optical.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/network-wired.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/network-wireless.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/printer.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/scanner.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/usb.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/video-display.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/application-pdf.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/application-quicktime.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/application-x-executable.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/audio-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/empty-x-locked.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/empty-x-temporary.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/image-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/package-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/text-ascii.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/text-html.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/text-x-generic-template.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/text-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/text-x-script.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/unknown-x-temporary.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/video-x-generic.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/x-office-calendar.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/x-office-spreadsheet.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/archive-folder.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/document-folder.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/folder-remote.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/html-folder.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/network-server.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/network-workgroup.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/user-trash-empty.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/user-trash-full.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/user-trash.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/www.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/LICENSE [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/README [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/static/history/historyHelper.html [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/static/image/blank.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/colorselector/brightness-field.jpg [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/colorselector/brightness-handle.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/colorselector/huesaturation-field.jpg [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/colorselector/huesaturation-handle.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/datechooser/lastMonth.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/datechooser/lastYear.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/datechooser/nextMonth.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/datechooser/nextYear.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/menu/menu-blank.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/splitpane/knob-horizontal.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/splitpane/knob-vertical.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/table/ascending.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/table/boolean-false.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/table/boolean-true.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/table/descending.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/table/selectColumnOrder.png [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/tree/only_minus.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/tree/only_plus.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/tree/start_minus.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/tree/start_plus.gif [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/C.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/ar.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/de.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/de_AT.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/de_DE.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/en.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/en_US.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/es.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/es_ES.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/fr.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/fr_FR.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/it.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/ru.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/sv.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/tr.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/zh.po [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/generator.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/data/freedesktop_spec.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/data/kde_freedesktop.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/data/kde_normalize.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/data/qooxdoo_freedesktop.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/data/qooxdoo_whitelist.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/freedesktop-to-qooxdoo.sh [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/generate-whitelist.sh [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/kde-to-freedesktop.sh [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/modules/fix-names.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/modules/kde-to-freedesktop.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/normalize-kde-themes.sh [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/prepare-kde-themes.sh [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/scalable-to-png.sh [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/make/apiviewer.mk [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/make/application.mk [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/make/framework.mk [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/make/impl.mk [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/make/project.mk [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/make/targets.mk [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.5.2/info/01-changes.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.1/info/01-windowevents.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.1/patches/01-xml.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.1/patches/02-application.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.2/info/01-nativewindow.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.2/info/02-functionextension.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.2/patches/01-parent.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/01-constants.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/02-oo.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/03-widget.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/04-nativewindow.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/05-font.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/06-border.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/07-color.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/08-image.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/09-tree.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/10-table.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/11-embed.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/12-label.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/13-window.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/14-colorselector.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/15-datechooser.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/16-button.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/17-selection.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/40-classnames.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.4/info/01-locale.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.4/info/02-deprecated.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/info/01-mime.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/info/02-iconcleanup.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/info/03-icons.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/patches/01-locale.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/patches/02-spinner.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/patches/03-api.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/patches/04-string.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/patches/05-xml.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/patches/06-mime.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/patches/07-icons.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/patches/08-genvar.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6/info/01-prototypes.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6/info/02-obsolete.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6/patches/01-classnames.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6/patches/02-domapi.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6/patches/03-const.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6/patches/04-events.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6/patches/05-util.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6/patches/06-main.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.7/patch.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/ElementPath.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/ElementTree.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/api.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/checklocales.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/cldr.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/comment.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/compiler.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/config.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/filetool.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/graph.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/loader.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/mapper.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/migrator.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/msgfmt.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/obfuscator.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/optparseext.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/resources.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/settings.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/stringoptimizer.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/svninfo.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/textile.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/textutil.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/tokenizer.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/tree.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/treegenerator.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/variableoptimizer.py [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/presets/core.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/presets/io.dat [deleted file]
webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/presets/packages.dat [deleted file]
webapps/swat/Makefile [deleted file]
webapps/swat/source/.ignore [deleted file]
webapps/swat/source/class/swat/main/AbstractModule.js [deleted file]
webapps/swat/source/class/swat/main/AbstractModuleFsm.js [deleted file]
webapps/swat/source/class/swat/main/Authenticate.js [deleted file]
webapps/swat/source/class/swat/main/Gui.js [deleted file]
webapps/swat/source/class/swat/main/Main.js [deleted file]
webapps/swat/source/class/swat/main/Module.js [deleted file]
webapps/swat/source/class/swat/module/documentation/Documentation.js [deleted file]
webapps/swat/source/class/swat/module/documentation/Fsm.js [deleted file]
webapps/swat/source/class/swat/module/ldbbrowse/Fsm.js [deleted file]
webapps/swat/source/class/swat/module/ldbbrowse/Gui.js [deleted file]
webapps/swat/source/class/swat/module/ldbbrowse/LdbBrowse.js [deleted file]
webapps/swat/source/class/swat/module/ldbbrowse/LdbModify.js [deleted file]
webapps/swat/source/class/swat/module/ldbbrowse/LdifViewer.js [deleted file]
webapps/swat/source/class/swat/module/netmgr/Fsm.js [deleted file]
webapps/swat/source/class/swat/module/netmgr/Gui.js [deleted file]
webapps/swat/source/class/swat/module/netmgr/NetManager.js [deleted file]
webapps/swat/source/class/swat/module/netmgr/UsersView.js [deleted file]
webapps/swat/source/class/swat/module/statistics/Fsm.js [deleted file]
webapps/swat/source/class/swat/module/statistics/Gui.js [deleted file]
webapps/swat/source/class/swat/module/statistics/Statistics.js [deleted file]
webapps/swat/source/index.html [deleted file]

index c0eb35d4e32832242f6c4f72b5cef7f239c59b52..39f306eabdfcfe66f5a19a589972336c068d0782 100644 (file)
@@ -196,3 +196,9 @@ source/lib/tdb/bin/tdbbackup
 source/lib/tdb/bin/tdbdump
 source/lib/registry/tools/common.h
 source/librpc/ndr/ndr_table.h
+test-results
+source/lib/ldb-samba/ldif_handlers.h
+rpc_server/lsa/proto.h
+torture/winbind/proto.h
+source/rpc_server/lsa/proto.h
+source/torture/winbind/proto.h
diff --git a/NEWS b/NEWS
index 829f946b3ed06d8061997ff5cc19f9761d73e224..dd01091921066e3801e9998a148f312a1c166787 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -22,6 +22,13 @@ Introduction of LDB
 Samba now stores most of its persistent data in a LDAP-like database 
 called LDB (see ldb(7) for more info). 
 
+Much improved SWAT
+==================
+SWAT has had some rather large improvements and is now more than just a 
+direct editor for smb.conf. Its layout has been improved. SWAT can now also 
+be used for editing run-time data - maintaining user information, provisioning,
+etc. TLS is supported out of the box.
+
 Built-in KDC
 ============
 Samba4 ships with an integrated KDC (Kerberos Key Distribution
diff --git a/README b/README
new file mode 100644 (file)
index 0000000..596dbd5
--- /dev/null
+++ b/README
@@ -0,0 +1,136 @@
+Samba 4 is the ambitious next version of the Samba suite that is being
+developed in parallel to the stable 3.0 series. The main emphasis in
+this branch is support for the Active Directory logon protocols used
+by Windows 2000 and above.
+
+While we welcome your interest in Samba 4, we don't want you to run your network with it quite yet. Please note the WARNINGS below, and the STATUS file,
+which aims to document what should and should not work.
+
+With 4 years of development under our belt since Tridge first proposed
+a new Virtual File System (VFS) layer for Samba3 (a project which
+eventually lead to our Active Directory efforts), we felt that we
+should create something we could 'show off' to our users.  This is a
+Technology Preview (TP), aimed at allowing you, our users, managers and
+developers to see how we have progressed, and to invite your feedback and
+support.
+
+WARNINGS
+========
+
+Samba4 TP is currently a pre-alpha technology.  That is more a
+reference to Samba4's lack of the features we expect you will need
+than a statement of code quality, but clearly it hasn't seen a broad
+deployment yet.  If you were to upgrade Samba3 (or indeed Windows) to
+Samba4, you would find many things work, but that other key features
+you may have relied on simply are not there yet.
+
+For example, while Samba 3.0 is an excellent member of a Active
+Directory domain, Samba4 is happier as a domain controller: (This is
+where we have done most of the research and development).
+
+While Samba4 is subjected to an awesome battery of tests on an
+automated basis, and we have found Samba4 to be very stable in it's
+behaviour, we have to recommend against upgrading production servers
+from Samba 3 to Samba 4 at this stage.  If you are upgrading an
+experimental server, or looking to develop and test Samba, you should
+backup all configuration and data.
+
+As we research the needs of Active Directory integration more closely,
+we may need to change the format of the user database, in particular
+as we begin to understand how the attributes are generated and stored.
+At a worst case, we expect users will be able to extract the stored
+data as LDIF and hand munge it, but until we make an alpha release, we
+won't do this automatically.  Indeed, many module changes are simply
+easier to cope with if you just re-provision after the upgrade.
+
+We value the security of your computers, and so we must warn you that
+Samba 4 Technology Preview includes basic Access Control List (ACL)
+protection on the main user database, but due to time constraints,
+none on the registry at this stage.  We also do not currently have
+ACLs on the SWAT web-based management tool. This means that Samba 4
+Technology Preview is not secure, and should not be exposed to
+untrusted networks.
+
+Within the above proviso, file system access should occur as the
+logged in user, much as Samba3 does.
+
+As such, we must strongly recommend against using Samba4 in a
+production environment at this stage.
+
+NEW FEATURES
+============
+
+Samba4 supports the server-side of the Active Directory logon environment
+used by Windows 2000 and later, so we can do full domain join
+and domain logon operations with these clients.
+
+Our Domain Controller (DC) implementation includes our own built-in
+LDAP server and Kerberos Key Distribution Centre (KDC) as well as the
+Samba3-like logon services provided over CIFS.  We correctly generate
+the infamous Kerberos PAC, and include it with the Kerberos tickets we
+issue.
+
+SWAT is now integrated into Samba 4 as the user-friendly interface to
+Samba server management. SWAT provides easy access to our
+setup and migration tools.  Using SWAT, you can migrate windows
+domains in Samba 4, allowing easy setup of initial user databases, and
+upgrades from Samba 3.
+
+The new VFS features in Samba 4 adapts the file-system on the server to
+match the Windows client semantics, allowing Samba 4 to better match
+windows behaviour and application expectations.  This includes file
+annotation information (in streams) and NT ACLs in particular.  The
+VFS is backed with an extensive automated test suite.
+
+A new scripting interface has been added to Samba 4, allowing
+JavaScript programs to interface to Samba's internals.
+
+The Samba 4 architecture is based around an LDAP-like database that
+can use a range of modular backends.  One of the backends supports
+standards compliant LDAP servers (including OpenLDAP), and we are
+working on modules to map between AD-like behaviours and this back-end.
+We are aiming for Samba 4 to be powerful front-end to large
+directories.
+
+CHANGES
+=======
+
+Those familiar with Samba 3 can find a list of user-visible changes
+since that release series in the NEWS file.
+
+ - An optional password is no longer supported as the second argument to 
+   smbclient.
+
+ - The default location of smb.conf in non-FHS builds has changed from the 
+   PREFIX/lib directory to the PREFIX/etc directory.
+
+KNOWN ISSUES
+============
+
+- Standalone server and domain member roles are not currently
+  supported.  While we have much of the infrastructure required, we
+  have not collected these pieces together. 
+
+- There is no printing support in the current release.
+
+- SWAT can be painful with <TAB> and forms.  Just use the mouse, as
+  the JavaScript layer doing this will change.
+
+RUNNING Samba4
+==============
+
+A short guide to setting up Samba 4 can be found in the howto.txt file
+in root of the tarball.
+
+DEVELOPMENT and FEEDBACK
+========================
+Bugs can be filed at https://bugzilla.samba.org/. Please
+look at the STATUS file before filing a bug to see if a particular
+is supposed to work yet.
+
+Development and general discussion about Samba 4 happens mainly on
+the #samba-technical IRC channel (on irc.freenode.net) and
+the samba-technical mailing list (see http://lists.samba.org/ for
+details).
+
+
index 4e148495d680633bfe43d7c62d6987288e848219..7b10b5960a4571933ea191b7828c894b47ba7d34 100644 (file)
--- a/howto.txt
+++ b/howto.txt
@@ -74,7 +74,8 @@ It is presumed it's available just like any other commands from your shell.
 Must be run as a user with permission to write to the install directory.
 
   # cd source
-  # ./setup/provision --realm=YOUR.REALM --domain=YOURDOM --adminpass=SOMEPASSWORD
+  # ./setup/provision --realm=YOUR.REALM --domain=YOURDOM \
+  #  --adminpass=SOMEPASSWORD --server-role='domain controller'
 
 REMINDER: Add the "bin" directory of the path you installed to
           (e.g. /usr/local/samba/bin) to your path, or the provision command
diff --git a/services/json.esp b/services/json.esp
deleted file mode 100644 (file)
index 6c59db0..0000000
+++ /dev/null
@@ -1,269 +0,0 @@
-<%
-
-/*
- * Copyright:
- *   (C) 2006 by Derrell Lipman
- *       All rights reserved
- *
- * License:
- *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
- */
-
-/*
- * This module provides a JSON encoder.
- */
-
-
-/* escape a string as required by json */
-function _escape(s)
-{
-    var i;
-    var arr = new Array();
-
-    for (i = 0; i < strlen(s); i++)
-    {
-        var c = substr(s, i, 1);
-        if (c == '\x00')
-        {
-            arr[i] = '\\u0000';
-        }
-        if (Json._internal.convert[c] != undefined)
-        {
-            arr[i] = Json._internal.convert[c];
-        }
-        else
-        {
-            arr[i] = c;
-        }
-    }
-
-    if (arr.length == 0)
-    {
-        return "";
-    }
-    
-    return join("", arr);
-}
-
-/* encode an arbitrary object.  called recursively, for object and array */
-function _encode(o)
-{
-    var type = nativeTypeOf(o);
-
-    if (type == "undefined")
-    {
-        return "null";          /* you really shouldn't count on this! */
-    }
-    else if (type == "null")
-    {
-        return "null";
-    }
-    else if (type == "boolean")
-    {
-        if (o)
-        {
-            return "true";
-        }
-        else
-        {
-            return "false";
-        }
-    }
-    else if (type == "c_function" ||
-             type == "js_function" ||
-             type == "string_c_function")
-    {
-        /* no output */
-    }
-    else if (type == "float" ||
-             type == "integer" ||
-             type == "integer64")
-    {
-        return o + 0;
-    }
-    else if (type == "pointer")
-    {
-        var x = "" + o;
-        return '"' + substr(x, 16, strlen(x) - 16 - 1) + '"';
-    }
-    else if (type == "object")
-    {
-        var buf;
-
-        /* Is this an array or an ordinary object? */
-        if (o["length"] != undefined)
-        {
-            var i;
-
-            /* Assume it's an array if there's a length field */
-            buf = "[";
-            for (i = 0; i < o.length; i++)
-            {
-                /*
-                 * NOTE: We don't support sparse arrays nor associative
-                 * arrays.  Should we later want to do either, we're supposed
-                 * to send it as an object rather than as an array.
-                 */
-                if (i > 0)
-                {
-                    buf = buf + ",";
-                }
-                buf = buf + this.encode(o[i]);
-            }
-            buf = buf + "]";
-        }
-        else if (o["__type"] == "_JSON_Date")
-        {
-            buf = "" + o.encoding();
-        }
-        else
-        {
-            /* No length field, so it must be an ordinary object */
-            var key;
-            var first = true;
-
-            buf = "{";
-            for (key in o)
-            {
-                if (! first)
-                {
-                    buf = buf + ",";
-                }
-                buf = buf + '"' + key + '":' + this.encode(o[key]);
-                first = false;
-            }
-            buf = buf + "}";
-        }
-
-        return buf;
-    }
-    else if (type == "string")
-    {
-        return '"' + this._internal.escape(o) + '"';
-    }
-    else
-    {
-        return '{ "unknown_object":"' + type + '"}';
-    }
-}
-
-/* Allocate the public Json access object */
-Json = new Object();
-
-/* Json.encode(): encode an arbitrary object */
-Json.encode = _encode;
-_encode = null;
-
-/* Json.decode(): decode a string into its object form */
-Json.decode = literal_to_var;
-
-/* Internal stuff, not for external access */
-Json._internal = new Object();
-
-Json._internal.escape = _escape;
-_escape = null;
-
-Json._internal.convert = new Object();
-Json._internal.convert['\b'] = '\\b';
-Json._internal.convert['\t'] = '\\t';
-Json._internal.convert['\n'] = '\\n';
-Json._internal.convert['\f'] = '\\f';
-Json._internal.convert['\r'] = '\\r';
-Json._internal.convert['"'] = '\\"';
-Json._internal.convert['\\'] = '\\\\';
-Json._internal.convert['\x01'] = '\\u0001';
-Json._internal.convert['\x02'] = '\\u0002';
-Json._internal.convert['\x03'] = '\\u0003';
-Json._internal.convert['\x04'] = '\\u0004';
-Json._internal.convert['\x05'] = '\\u0005';
-Json._internal.convert['\x06'] = '\\u0006';
-Json._internal.convert['\x07'] = '\\u0007';
-Json._internal.convert['\x08'] = '\\u0008';
-Json._internal.convert['\x09'] = '\\u0009';
-Json._internal.convert['\x0a'] = '\\u000a';
-Json._internal.convert['\x0b'] = '\\u000b';
-Json._internal.convert['\x0c'] = '\\u000c';
-Json._internal.convert['\x0d'] = '\\u000d';
-Json._internal.convert['\x0e'] = '\\u000e';
-Json._internal.convert['\x0f'] = '\\u000f';
-Json._internal.convert['\x10'] = '\\u0010';
-Json._internal.convert['\x11'] = '\\u0011';
-Json._internal.convert['\x12'] = '\\u0012';
-Json._internal.convert['\x13'] = '\\u0013';
-Json._internal.convert['\x14'] = '\\u0014';
-Json._internal.convert['\x15'] = '\\u0015';
-Json._internal.convert['\x16'] = '\\u0016';
-Json._internal.convert['\x17'] = '\\u0017';
-Json._internal.convert['\x18'] = '\\u0018';
-Json._internal.convert['\x19'] = '\\u0019';
-Json._internal.convert['\x1a'] = '\\u001a';
-Json._internal.convert['\x1b'] = '\\u001b';
-Json._internal.convert['\x1c'] = '\\u001c';
-Json._internal.convert['\x1d'] = '\\u001d';
-Json._internal.convert['\x1e'] = '\\u001e';
-Json._internal.convert['\x1f'] = '\\u001f';
-/*
- * At some point, we probably want to add \x80-\xff as well, and it's then
- * probably more efficient to generate these strings dynamically.  (Even now
- * it may be, but this was the the way I started, and so it remains.)
- */
-
-
-/* Test it */
-/*
-libinclude("base.js");
-function testFormat()
-{
-    var test = new Object();
-    test.int = 23;
-    test.str = "hello world";
-    test.float = 223.1;
-    test.bool = true;
-    test.array = new Array();
-    test.array[0] = "hello";
-    test.array[1] = "world";
-    test.obj = new Object();
-    test.obj.int = 1000;
-    test.obj.array = new Array();
-    test.obj.array[0] = 42;
-    test.obj.array[1] = 223;
-    printf("%s\n", Json.encode(test));
-}
-testFormat();
-*/
-
-/*
-libinclude("base.js");
-function testParse()
-{
-    var s;
-
-    s = '{ "x" : 23 }';
-    obj = Json.decode(s);
-    printf("Decode/encode of\n\t%s\nyielded\n\t%s\n\n", s, Json.encode(obj));
-
-    s = '{ "x" : [ 23, 42] }';
-    obj = Json.decode(s);
-    printf("Decode/encode of\n\t%s\nyielded\n\t%s\n\n", s, Json.encode(obj));
-
-    s = '[ 13, 19, { "x" : [ 23, 42] }, 223 ]';
-    obj = Json.decode(s);
-    printf("Decode/encode of\n\t%s\nyielded\n\t%s\n\n", s, Json.encode(obj));
-
-    s = '{ "x" : [ "hi" ] }';
-    obj = Json.decode(s);
-    printf("Decode/encode of\n\t%s\nyielded\n\t%s\n\n", s, Json.encode(obj));
-
-    s = '[ 13, 19, { "x" : [ 23, 42, { "y":{"a":"hello", "b":"world", "c":[1,2,3]}}] }, 223 ]';
-    obj = Json.decode(s);
-    printf("Decode/encode of\n\t%s\nyielded\n\t%s\n\n", s, Json.encode(obj));
-}
-testParse();
-*/
-
-/*
- * Local Variables:
- * mode: c
- * End:
- */
-%>
diff --git a/services/json_auth.esp b/services/json_auth.esp
deleted file mode 100644 (file)
index 57fbd7a..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-<%
-libinclude("auth.js");
-
-/* Return true to allow access; false otherwise */
-function json_authenticate(serviceComponents, method, scriptTransportId, error)
-{
-    // Don't allow any access via ScriptTransport, for now.  There are serious
-    // potential security exploits that will need to be protected against when
-    // we do want to allow use of ScriptTransport.  -- djl
-    if (scriptTransportId != jsonrpc.Constant.ScriptTransport.NotInUse)
-    {
-        error.setError(jsonrpc.Constant.ServerError.PermissionDenied,
-                       "Permission denied");
-        return false;
-    }
-
-    // Does the requested method require authentication?
-    if (! _authentication_required(serviceComponents, method))
-    {
-        // Nope.  Let 'em in.
-        return true;
-    }
-
-    // Did our session expire?
-    if (request['SESSION_EXPIRED'] == "True")
-    {
-        // Yup.
-        error.setError(jsonrpc.Constant.ServerError.SessionExpired,
-                       "Session expired");
-        error.setInfo(getDomainList());
-        return false;
-    }
-
-    // Are we authenticated?
-    if (! session.AUTHENTICATED)
-    {
-        // Nope.
-        error.setError(jsonrpc.Constant.ServerError.NotLoggedIn,
-                       "Not logged in");
-        error.setInfo(getDomainList());
-        return false;
-    }
-
-    return true;
-}
-
-
-/*
- * Return true if authentication is required for the specified method;
- * false otherwise.
- */
-function _authentication_required(serviceComponents, method)
-{
-    var m = join(".", serviceComponents) + "." + method;
-
-    // See if this method requires authentication
-    if (m == "samba.system.login" ||
-        m == "samba.system.logout")
-    {
-        // Nope.
-        return false;
-    }
-
-    // Anything not listed above requires authentication
-    return true;
-}
-
-/*
- * Local Variables:
- * mode: c
- * End:
- */
-%>
diff --git a/services/jsondate.esp b/services/jsondate.esp
deleted file mode 100644 (file)
index 3467228..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-<%
-/*
- * Copyright:
- *   (C) 2006 by Derrell Lipman
- *       All rights reserved
- *
- * License:
- *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
- */
-
-/*
- * Date class for JSON-RPC
- */
-
-
-function _JSON_Date_create(secondsSinceEpoch)
-{
-    var o = new Object();
-    o.__type = "_JSON_Date";
-
-    function _setUtcDateTimeFields(year, month, day, hour, minute, second, millisecond)
-    {
-        this.year = year + 0;
-        this.month = month + 0;
-        this.day =  day + 0;
-        this.hour = hour + 0;
-        this.minute = minute + 0;
-        this.second = second + 0;
-        this.millisecond = millisecond + 0;
-    }
-
-    o.setUtcYear = _setUtcDateTimeFields;
-
-    function _setUtcYear(year)
-    {
-        this.year = year + 0;
-    }
-    o.setUtcYear = _setUtcYear;
-
-    function _setUtcMonth(month)
-    {
-        this.month = month + 0;
-    }
-    o.setUtcMonth = _setUtcMonth;
-
-    function _setUtcDay(day)
-    {
-        this.day = day + 0;
-    }
-    o.setUtcDay = _setUtcDay;
-
-    function _setUtcHour(hour)
-    {
-        this.hour = hour + 0;
-    }
-    o.setUtcHour = _setUtcHour;
-
-    function _setUtcMinute(minute)
-    {
-        this.minute = minute + 0;
-    }
-    o.setUtcMinute = _setUtcMinute;
-
-    function _setUtcSecond(second)
-    {
-        this.second = second + 0;
-    }
-    o.setUtcSecond = _setUtcSecond;
-
-    function _setUtcMillisecond(millisecond)
-    {
-        this.millisecond = millisecond + 0;
-    }
-    o.setUtcMillisecond = _setUtcMillisecond;
-
-    function _setEpochTime(secondsSinceEpoch)
-    {
-        var microseconds = 0;
-
-        if (typeof(secondsSinceEpoch) != "number")
-        {
-            var currentTime = gettimeofday();
-            secondsSinceEpoch = currentTime.sec;
-            microseconds = currentTime.usec;
-        }
-
-        var tm = gmtime(secondsSinceEpoch);
-
-        this.year = 1900 + tm.tm_year;
-        this.month = tm.tm_mon;
-        this.day = tm.tm_mday;
-        this.hour = tm.tm_hour;
-        this.minute = tm.tm_min;
-        this.second = tm.tm_sec;
-        this.millisecond = 0;
-    }
-    o.setEpochTime = _setEpochTime;
-
-    function _getUtcYear()
-    {
-        return this.year;
-    }
-    o.getUtcYear = _getUtcYear;
-
-    function _getUtcMonth()
-    {
-        return this.month;
-    }
-    o.getUtcMonth = _getUtcMonth;
-
-    function _getUtcDay()
-    {
-        return this.day;
-    }
-    o.getUtcDay = _getUtcDay;
-
-    function _getUtcHour()
-    {
-        return this.hour;
-    }
-    o.getUtcHour = _getUtcHour;
-
-    function _getUtcMinute()
-    {
-        return this.minute;
-    }
-    o.getUtcMinute = _getUtcMinute;
-
-    function _getUtcSecond()
-    {
-        return this.second;
-    }
-    o.getUtcSecond = _getUtcSecond;
-
-    function _getUtcMillisecond()
-    {
-        return this.millisecond;
-    }
-    o.getUtcMillisecond = _getUtcMillisecond;
-
-    function _getEpochTime()
-    {
-        var tm = new Object();
-        tm.tm_sec = this.second;
-        tm.tm_min = this.minute;
-        tm.tm_hour = this.hour;
-        tm.tm_mday = -1;
-        tm.tm_mon = this.month;
-        tm.tm_year = this.year;
-        tm.tm_wday = -1;
-        tm.tm_yday = -1;
-        tm.isdst = 0;
-        return gmmktime(tm);
-    }
-    o.getEpochTime = _getEpochTime;
-
-    function _encoding()
-    {
-        /* Encode the date in a well-documented fashion */
-        return sprintf("new Date(Date.UTC(%d,%d,%d,%d,%d,%d,%d))",
-                       this.year,
-                       this.month,
-                       this.day,
-                       this.hour,
-                       this.minute,
-                       this.second,
-                       this.millisecond);
-    }
-    o.encoding = _encoding;
-
-    if (! secondsSinceEpoch)
-    {
-        var now = gettimeofday();
-        o.setEpochTime(now.sec);
-    }
-    else
-    {
-        o.setEpochTime(secondsSinceEpoch);
-    }
-    o.year = 0;
-    o.month = 0;
-    o.day = 0;
-    o.hour = 0;
-    o.minute = 0;
-    o.second = 0;
-    o.millisecond = 0;
-    return o;
-}
-
-JSON_Date = new Object();
-JSON_Date.create = _JSON_Date_create;
-_JSON_Date_create = null;
-
-
-/*
- * Local Variables:
- * mode: c
- * End:
- */
-%>
diff --git a/services/qooxdoo/test.esp b/services/qooxdoo/test.esp
deleted file mode 100644 (file)
index e8686dc..0000000
+++ /dev/null
@@ -1,236 +0,0 @@
-<%
-/*
- * Copyright:
- *   (C) 2006 by Derrell Lipman
- *       All rights reserved
- *
- * License:
- *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
- */
-
-/*
- * This is the standard qooxdoo test class.  There are tests for each of the
- * primitive types here, along with standard named tests "echo", "sink" and
- * "sleep".
- */
-
-/**
- * Echo the (one and only) parameter.
- *
- * @param params
- *   An array containing the parameters to this method
- *
- * @param error
- *   An object of class JsonRpcError.
- *
- * @return
- *   Success: The object containing the result of the method;
- *   Failure: null
- */
-function _echo(params, error)
-{
-    if (params.length != 1)
-    {
-        error.setError(JsonRpcError_ParameterMismatch,
-                       "Expected 1 parameter; got " + params.length);
-        return error;
-    }
-    return "Client said: [" + params[0] + "]";
-}
-jsonrpc.method.echo = _echo;
-
-/**
- * Sink all data and never return.
- *
- * @param params
- *   An array containing the parameters to this method (none expected)
- *
- * @param error
- *   An object of class JsonRpcError.
- *
- * @return
- *   "Never"
- */
-function _sink(params, error)
-{
-    /* We're never supposed to return.  Just sleep for a very long time. */
-    sleep(240);
-}
-jsonrpc.method.sink = _sink;
-
-/**
- * Sleep for the number of seconds specified by the parameter.
- *
- * @param params
- *   An array containing the parameters to this method (one expected)
- *
- * @param error
- *   An object of class JsonRpcError.
- *
- * @return
- *   Success: The object containing the result of the method;
- *   Failure: null
- */
-function _sleep(params, error)
-{
-    if (params.length != 1)
-    {
-        error.setError(JsonRpcError_ParameterMismatch,
-                       "Expected 1 parameter; got " + params.length);
-        return error;
-    }
-    
-    sleep(params[0]);
-    return params[0];
-}
-jsonrpc.method.sleep = _sleep;
-
-/*************************************************************************/
-
-/*
- * The remainder of the functions test each individual primitive type, and
- * test echoing arbitrary types.  Hopefully the name is self-explanatory.
- */
-
-function _getInteger(params, error)
-{
-    return 1;
-}
-jsonrpc.method.getInteger = _getInteger;
-
-function _getFloat(params, error)
-{
-    return 1/3;
-}
-jsonrpc.method.getFloat = _getFloat;
-
-function _getString(params, error)
-{
-    return "Hello world";
-}
-jsonrpc.method.getString = _getString;
-
-function _getBadString(params, error)
-{
-    return "<!DOCTYPE HTML \"-//IETF//DTD HTML 2.0//EN\">";
-}
-jsonrpc.method.getBadString = _getBadString;
-
-function _getArrayInteger(params, error)
-{
-    return new Array(1, 2, 3, 4);
-}
-jsonrpc.method.getArrayInteger = _getArrayInteger;
-
-function _getArrayString(params, error)
-{
-    return new Array("one", "two", "three", "four");
-}
-jsonrpc.method.getArrayString = _getArrayString;
-
-function _getObject(params, error)
-{
-    o = new Object(); // some arbitrary object
-    o.something = 23;
-    o.garbage = 'lkasjdff;lajsdfkl;sadf';
-    return o;    
-}
-jsonrpc.method.getObject = _getObject;
-
-function _getTrue(params, error)
-{
-    return true;
-}
-jsonrpc.method.getTrue = _getTrue;
-
-function _getFalse(params, error)
-{
-    return false;
-}
-jsonrpc.method.getFalse = _getFalse;
-
-function _getNull(params, error)
-{
-    return null;
-}
-jsonrpc.method.getNull = _getNull;
-
-function _isInteger(params, error)
-{
-    var type = nativeTypeOf(params[0]);
-    return type == "integer" || type == "integer64";
-}
-jsonrpc.method.isInteger = _isInteger;
-
-function _isFloat(params, error)
-{
-    return nativeTypeOf(params[0]) == "float";
-}
-jsonrpc.method.isFloat = _isFloat;
-
-function _isString(params, error)
-{
-    return nativeTypeOf(params[0]) == "string";
-}
-jsonrpc.method.isString = _isString;
-
-function _isBoolean(params, error)
-{
-    return nativeTypeOf(params[0]) == "boolean";
-}
-jsonrpc.method.isBoolean = _isBoolean;
-
-function _isArray(params, error)
-{
-    return nativeTypeOf(params[0]) == "object" && params.length != undefined;
-}
-jsonrpc.method.isArray = _isArray;
-
-function _isObject(params, error)
-{
-    return nativeTypeOf(params[0]) == "object";
-}
-jsonrpc.method.isObject = _isObject;
-
-function _isNull(params, error)
-{
-    return nativeTypeOf(params[0]) == "null";
-}
-jsonrpc.method.isNull = _isNull;
-
-function _getParams(params, error)
-{
-    return params;
-}      
-jsonrpc.method.getParams = _getParams;
-
-function _getParam(params, error)
-{
-    return params[0];
-}      
-jsonrpc.method.getParam = _getParam;
-
-function _getCurrentTimestamp()
-{
-    now = gettimeofday();
-    obj = new Object();
-    obj.now = now.sec;
-    obj.json = JSON_Date.create(now);
-    return obj;
-}
-jsonrpc.method.getCurrentTimestamp = _getCurrentTimestamp;
-
-function _getError(params, error)
-{
-    error.setError(23, "This is an application-provided error");
-    return error;
-}      
-jsonrpc.method.getError = _getError;
-
-
-/*
- * Local Variables:
- * mode: c
- * End:
- */
-%>
diff --git a/services/request.esp b/services/request.esp
deleted file mode 100644 (file)
index 03226f9..0000000
+++ /dev/null
@@ -1,540 +0,0 @@
-<%
-
-/*
- * Copyright:
- *   (C) 2006 by Derrell Lipman
- *       All rights reserved
- *
- * License:
- *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
- */
-
-/*
- * This is a simple JSON-RPC server.
- */
-
-/* Bring in the json format/parse functions */
-jsonrpc_include("json.esp");
-
-/* Bring in the date class */
-jsonrpc_include("jsondate.esp");
-
-/* Load the authentication script */
-jsonrpc_include("json_auth.esp");
-
-
-/* bring the string functions into the global frame */
-string_init(global);
-
-/* Bring the system functions into the global frame */
-sys_init(global);
-
-/* Bring the session functions into the global frame */
-system_session(global);
-
-
-function printf()
-{
-       print(vsprintf(arguments));
-}
-
-
-/*
- * All of our manipulation of JSON RPC methods will be through this object.
- * Each class of methods will assign to here, and all of the constants will
- * also be in this object.
- */
-jsonrpc = new Object();
-jsonrpc.Constant = new Object();
-jsonrpc.Constant.ErrorOrigin = new Object(); /* error origins */
-jsonrpc.Constant.ServerError = new Object(); /* server-generated error codes */
-jsonrpc.method = new Object();       /* methods available in requested class */
-
-/*
- * ScriptTransport constants
- */
-jsonrpc.Constant.ScriptTransport = new Object();
-jsonrpc.Constant.ScriptTransport.NotInUse        = -1;
-
-
-/*
- * JSON-RPC error origin constants
- */
-jsonrpc.Constant.ErrorOrigin.Server              = 1;
-jsonrpc.Constant.ErrorOrigin.Application         = 2;
-jsonrpc.Constant.ErrorOrigin.Transport           = 3;
-jsonrpc.Constant.ErrorOrigin.Client              = 4;
-
-
-
-/*
- * JSON-RPC server-generated error code constants
- */
-
-/**
- * Error code, value 0: Unknown Error
- *
- * The default error code, used only when no specific error code is passed to
- * the JsonRpcError constructor.  This code should generally not be used.
- */
-jsonrpc.Constant.ServerError.Unknown               = 0;
-
-/**
- * Error code, value 1: Illegal Service
- *
- * The service name contains illegal characters or is otherwise deemed
- * unacceptable to the JSON-RPC server.
- */
-jsonrpc.Constant.ServerError.IllegalService        = 1;
-
-/**
- * Error code, value 2: Service Not Found
- *
- * The requested service does not exist at the JSON-RPC server.
- */
-jsonrpc.Constant.ServerError.ServiceNotFound       = 2;
-
-/**
- * Error code, value 3: Class Not Found
- *
- * If the JSON-RPC server divides service methods into subsets (classes), this
- * indicates that the specified class was not found.  This is slightly more
- * detailed than "Method Not Found", but that error would always also be legal
- * (and true) whenever this one is returned. (Not used in this implementation)
- */
-jsonrpc.Constant.ServerError.ClassNotFound         = 3;
-
-/**
- * Error code, value 4: Method Not Found
- *
- * The method specified in the request is not found in the requested service.
- */
-jsonrpc.Constant.ServerError.MethodNotFound        = 4;
-
-/*
- * Error code, value 5: Parameter Mismatch
- *
- * If a method discovers that the parameters (arguments) provided to it do not
- * match the requisite types for the method's parameters, it should return
- * this error code to indicate so to the caller.
- *
- * This error is also used to indicate an illegal parameter value, in server
- * scripts.
- */
-jsonrpc.Constant.ServerError.ParameterMismatch     = 5;
-
-/**
- * Error code, value 6: Permission Denied
- *
- * A JSON-RPC service provider can require authentication, and that
- * authentication can be implemented such the method takes authentication
- * parameters, or such that a method or class of methods requires prior
- * authentication.  If the caller has not properly authenticated to use the
- * requested method, this error code is returned.
- */
-jsonrpc.Constant.ServerError.PermissionDenied      = 6;
-
-/*** Errors generated by this server which are not qooxdoo-standard ***/
-
-/*
- * Error code, value 1000: Unexpected Output
- *
- * The called method illegally generated output to the browser, which would
- * have preceeded the JSON-RPC data.
- */
-jsonrpc.Constant.ServerError.UnexpectedOutput      = 1000;
-
-/*
- * Error code, value 1001: Resource Error
- *
- * Too many resources were requested, a system limitation on the total number
- * of resources has been reached, or a resource or resource id was misused.
- */
-jsonrpc.Constant.ServerError.ResourceError         = 1001;
-
-/*
- * Error code, value 1002: Not Logged In
- *
- * The user has logged out and must re-authenticate, or this is a brand new
- * session and the user must log in.
- *
- */
-jsonrpc.Constant.ServerError.NotLoggedIn           = 1002;
-
-/*
- * Error code, value 1003: Session Expired
- *
- * The session has expired and the user must re-authenticate.
- *
- */
-jsonrpc.Constant.ServerError.SessionExpired        = 1003;
-
-/*
- * Error code, value 1004: Login Failed
- *
- * An attempt to log in failed.
- *
- */
-jsonrpc.Constant.ServerError.LoginFailed           = 1004;
-
-
-
-
-
-function sendReply(reply, scriptTransportId)
-{
-    /* If not using ScriptTransport... */
-    if (scriptTransportId == jsonrpc.Constant.ScriptTransport.NotInUse)
-    {
-        /* ... then just output the reply. */
-        write(reply);
-    }
-    else
-    {
-        /* Otherwise, we need to add a call to a qooxdoo-specific function */
-        reply =
-            "qx.io.remote.ScriptTransport._requestFinished(" +
-            scriptTransportId + ", " + reply +
-            ");";
-        write(reply);
-    }
-}
-
-
-function _jsonValidRequest(req)
-{
-    if (req == undefined)
-    {
-        return false;
-    }
-
-    if (typeof(req) != "object")
-    {
-        return false;
-    }
-
-    if (req["id"] == undefined)
-    {
-        return false;
-    }
-
-    if (req["service"] == undefined)
-    {
-        return false;
-    }
-
-    if (req["method"] == undefined)
-    {
-        return false;
-    }
-
-    if (req["params"] == undefined)
-    {
-        return false;
-    }
-
-    return true;
-}
-jsonrpc.validRequest = _jsonValidRequest;
-_jsonValidRequest = null;
-
-/*
- * class JsonRpcError
- *
- * This class allows service methods to easily provide error information for
- * return via JSON-RPC.
- */
-function _JsonRpcError_create(origin, code, message)
-{
-    var o = new Object();
-
-    o.data = new Object();
-    o.data.origin = origin;
-    o.data.code = code;
-    o.data.message = message;
-    o.scriptTransportId = jsonrpc.Constant.ScriptTransport.NotInUse;
-    o.__type = "_JsonRpcError";
-
-    function _origin(origin)
-    {
-        this.data.origin = origin;
-    }
-    o.setOrigin = _origin;
-
-    function _setError(code, message)
-    {
-        this.data.code = code;
-        this.data.message = message;
-    }
-    o.setError = _setError;
-
-    function _setId(id)
-    {
-        this.id = id;
-    }
-    o.setId = _setId;
-
-    function _setScriptTransportId(id)
-    {
-        this.scriptTransportId = id;
-    }
-    o.setScriptTransportId = _setScriptTransportId;
-
-    function _setInfo(info)
-    {
-        // Add the info field only if info is actually provided.
-        // This is an extension to qooxdoo's normal Error return value.
-        this.data.info = info;
-    }
-    o.setInfo = _setInfo;
-
-    function _Send()
-    {
-        var error = this;
-        var id = this.id;
-        var ret = new Object();
-        ret.error = this.data;
-        ret.id = this.id;
-        sendReply(Json.encode(ret), this.scriptTransportId);
-    }
-    o.Send = _Send;
-
-    return o;
-}
-
-jsonrpc.createError = _JsonRpcError_create;
-_JsonRpcError_create = null;
-
-/*
- * 'input' is the user-provided json-encoded request
- * 'jsonInput' is that request, decoded into its object form
- */
-var input;
-var jsonInput = null;
-
-/* Allocate a generic error object */
-error = jsonrpc.createError(jsonrpc.Constant.ErrorOrigin.Server,
-                            jsonrpc.Constant.ServerError.Unknown,
-                            "Unknown error");
-
-/* Assume (default) we're not using ScriptTransport */
-scriptTransportId = jsonrpc.Constant.ScriptTransport.NotInUse;
-
-/* What type of request did we receive? */
-if (request["REQUEST_METHOD"] == "POST" &&
-    request["CONTENT_TYPE"] == "application/json")
-{
-    /* We found literal POSTed json-rpc data (we hope) */
-    input = request["POST_DATA"];
-    jsonInput = Json.decode(input);
-}
-else if (request["REQUEST_METHOD"] == "GET" &&
-         form["_ScriptTransport_id"] != undefined &&
-         form["_ScriptTransport_id"] !=
-           jsonrpc.Constant.ScriptTransport.NotInUse &&
-         form["_ScriptTransport_data"] != undefined)
-{
-    /* We have what looks like a valid ScriptTransport request */
-    scriptTransportId = form["_ScriptTransport_id"];
-    error.setScriptTransportId(scriptTransportId);
-    input = form["_ScriptTransport_data"];
-    jsonInput = Json.decode(input);
-}
-
-/* Ensure that this was a JSON-RPC service request */
-if (! jsonrpc.validRequest(jsonInput))
-{
-    /*
-     * This request was not issued with JSON-RPC so echo the error rather than
-     * issuing a JsonRpcError response.
-     */
-    write("JSON-RPC request expected; service, method or params missing<br>");
-    return;
-}
-
-/*
- * Ok, it looks like JSON-RPC, so we'll return an Error object if we encounter
- * errors from here on out.
- */
-error.setId(jsonInput.id);
-
-/* Service and method names may contain these characters */
-var nameChars =
-    "_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
-
-/* The first letter of service and method names must be a letter */
-var nameFirstLetter =
-    "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
-
-/*
- * Ensure the method name is kosher.  A method name should be:
- *
- *   - first character is in [a-zA-Z] 
- *   - other characters are in [_a-zA-Z0-9]
- */
-
-/* First check for legal characters */
-if (strspn(jsonInput.method, nameChars) != strlen(jsonInput.method))
-{
-    /* There's some illegal character in the service name */
-    error.setError(jsonrpc.Constant.ServerError.MethodNotFound,
-                   "Illegal character found in method name.");
-    error.Send();
-    return;
-}
-
-/* Now ensure that it begins with a letter */
-if (strspn(substr(jsonInput.method, 0, 1), nameFirstLetter) != 1)
-{
-    error.setError(jsonrpc.Constant.ServerError.MethodNotFound,
-                   "The method name does not begin with a letter");
-    error.Send();
-    return;
-}
-
-/*
- * Ensure the requested service name is kosher.  A service name should be:
- *
- *   - a dot-separated sequences of strings; no adjacent dots
- *   - first character of each string is in [a-zA-Z] 
- *   - other characters are in [_a-zA-Z0-9]
- */
-
-/* First check for legal characters */
-if (strspn(jsonInput.service, "." + nameChars) != strlen(jsonInput.service))
-{
-    /* There's some illegal character in the service name */
-    error.setError(jsonrpc.Constant.ServerError.IllegalService,
-                   "Illegal character found in service name.");
-    error.Send();
-    return;
-}
-
-/*
- * Now ensure there are no double dots.
- *
- * Frustration with ejs.  Result must be NULL, but we can't use the ===
- * operator: strstr() === null so we have to use typeof.  If the result isn't
- * null, then it'll be a number and therefore not type "pointer".
- */
-if (typeof(strstr(jsonInput.service, "..")) != "pointer")
-{
-    error.setError(jsonrpc.Constant.ServerError.IllegalService,
-                   "Illegal use of two consecutive dots in service name");
-    error.Send();
-    return;
-}
-
-/* Explode the service name into its dot-separated parts */
-var serviceComponents = split(".", jsonInput.service);
-
-/* Ensure that each component begins with a letter */
-for (var i = 0; i < serviceComponents.length; i++)
-{
-    if (strspn(substr(serviceComponents[i], 0, 1), nameFirstLetter) != 1)
-    {
-        error.setError(jsonrpc.Constant.ServerError.IllegalService,
-                       "A service name component does not begin with a letter");
-        error.Send();
-        return;
-    }
-}
-
-/*
- * Now replace all dots with slashes so we can locate the service script.  We
- * also retain the split components of the path, as the class name of the
- * service is the last component of the path.
- */
-var servicePath = join("/", serviceComponents) + ".esp";
-
-/* Load the requested class */
-if (jsonrpc_include(servicePath))
-{
-    /* Couldn't find the requested service */
-    error.setError(jsonrpc.Constant.ServerError.ServiceNotFound,
-                   "Service class `" + servicePath + "` does not exist.");
-    error.Send();
-    return;
-}
-
-/*
- * Find the requested method.
- *
- * What we really want to do here, and could do in any reasonable language,
- * is:
- *
- *   method = jsonrpc.method[jsonInput.method];
- *   if (method && typeof(method) == "function") ...
- *
- * The following completely unreasonable sequence of commands is because:
- *
- *  (a) ejs evaluates all OR'ed expressions even if an early one is false, and
- *      barfs on the typeof(method) call if method is undefined
- *
- *  (b) ejs does not allow comparing against the string "function"!!!  What
- *      the hell is special about that particular string???
- *
- * E-gad.  What a mess.
- */
-var method = jsonrpc.method[jsonInput.method];
-var valid = (method != undefined);
-if (valid)
-{
-    var type = typeof(method);
-    if (substr(type, 0, 1) != 'f' || substr(type, 1) != "unction")
-    {
-        valid = false;
-    }
-}
-
-if (! valid)
-{
-    error.setError(jsonrpc.Constant.ServerError.MethodNotFound,
-                   "Method `" + jsonInput.method + "` not found.");
-    error.Send();
-    return;
-}
-
-/*
- * Ensure the logged-in user is allowed to issue the requested method.  We
- * provide the scriptTransportId as one of the determining factors because
- * accepting requests via ScriptTransport is dangerous.  Only methods which
- * one might allow when unauthenticated should be allowed via ScriptTransport
- * as it is easy for a rogue site to trick a user into bypassing
- * authentication.
- */
-if (! json_authenticate(serviceComponents,
-                        jsonInput.method,
-                        scriptTransportId,
-                        error))
-{
-    error.Send();
-    return;
-}
-
-/* Most errors from here on out will be Application-generated */
-error.setOrigin(jsonrpc.Constant.ErrorOrigin.Application);
-
-/* Call the requested method passing it the provided params */
-var retval = method(jsonInput.params, error);
-
-/* See if the result of the function was actually an error object */
-if (retval["__type"] == "_JsonRpcError")
-{
-    /* Yup, it was.  Return the error */
-    retval.Send();
-    return;
-}
-
-/* Give 'em what they came for! */
-var ret = new Object();
-ret.result = retval;
-ret.id = jsonInput.id;
-sendReply(Json.encode(ret), scriptTransportId);
-
-/*
- * Local Variables:
- * mode: c
- * End:
- */
-%>
diff --git a/services/resources.esp b/services/resources.esp
deleted file mode 100644 (file)
index b5c4bd3..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-<%
-
-/*
- * Various JSON-RPC calls will want to maintain open resources within a
- * session, across multiple calls.  We'll provide a standardized way to
- * maintain those open resources here, with some protection against rogue
- * scripts.
- */
-
-function _resourcesCreate()
-{
-    /* The being-created resources object */
-    var o = new Object();
-
-    /*
-     * The maximum number of resources available to a single session.  This
-     * should be more than is ever needed (even by reasonable recursive
-     * functions) but limits rogue scripts ability to generate DOS attacks.
-     */
-    o.RESOURCE_LIMIT = 100;
-
-    /* List of current resources */
-    o.resourceList = new Object();
-
-    /* Resource id values will be constantly incrementing; never reset. */
-    o.resourceList.id = 0;
-
-    /* We'll maintain our own count of the number of open resources */
-    o.resourceList.count = 0;
-
-
-    /*
-     * Set a new saved resource.
-     */
-    function _set(resource, type, error)
-    {
-        /* Do they already have the maximum number of resources allocated? */
-        if (this.resourceList.count >= this.RESOURCE_LIMIT)
-        {
-            /* Yup. */
-            error.setOrigin(jsonrpc.Constant.ErrorOrigin.Server);
-            error.setError(jsonrpc.Constant.ServerError.ResourceError,
-                           "Session limit on resources (" +
-                           RESOURCE_LIMIT +
-                           ") exceeded.");
-            return error;
-        }
-
-        /* Allocate an object to hold the new resource and its type */
-        var r = new Object();
-
-        /* Save the resource and its type */
-        r.resource = resource;
-        r.type = type;
-       r.id = this.resourceList.id;
-
-        /* Add this resource to the list */
-        this.resourceList[this.resourceList.id] = r;
-
-        /* There's a new resource in the list! */
-        this.resourceList.count++;
-
-        /*
-         * Return the index of the resource, its resource id, and advance to
-         * the next resource id for next time.
-         */
-        var id = this.resourceList.id;
-        this.resourceList.id++;
-        return id;
-    }
-    o.set = _set;
-
-    /*
-     * Get a previously-saved resource
-     */
-    function _get(resourceId, error)
-    {
-        /* Does the specified resource id exist? */
-        if (! this.resourceList[resourceId])
-        {
-            /* Nope. */
-            error.setOrigin(jsonrpc.Constant.ErrorOrigin.Server);
-            error.setError(jsonrpc.Constant.ServerError.ResourceError,
-                           "Resource not found.");
-            return error;
-        }
-
-        /* Retrieve the resource */
-        var r = this.resourceList[resourceId];
-
-        /* Give 'em what they came for! */
-        return r.resource;
-    }
-    o.get = _get;
-
-    /*
-     * Find a previously-saved resource
-     */
-    function _find(type, error)
-    {
-        /* Does the specified resource id exist? */
-        for (var resourceId in this.resourceList)
-        {
-            /* Retrieve the resource */
-            var r = this.resourceList[resourceId];
-
-            /* Ignore "id" and "count" integer fields */
-            if (typeof(r) == "object")
-            {
-                /* Is the specified resource the correct type? */
-                if (r.type == type)
-                {
-                    /* Yup, this is the one they want. */
-                 return r.id;
-                }
-            }
-        }
-
-        /* It wasn't found. */
-        return undefined;
-    }
-    o.find = _find;
-
-    /*
-     * Release a previously-saved resource, allowing it to be freed
-     */
-    function _release(resourceId, error)
-    {
-        /* Does the specified resource id exist? */
-        if (! this.resourceList[resourceId])
-        {
-            /* Nope. */
-            error.setOrigin(jsonrpc.Constant.ErrorOrigin.Server);
-            error.setError(jsonrpc.Constant.ServerError.ResourceError,
-                           "Resource not found.");
-            return error;
-        }
-
-        /* It exists.  Delete it. */
-        delete this.resourceList[resourceId];
-
-        /* There's now one fewer resources in the list */
-        this.resourceList.count--;
-    }
-    o.release = _release;
-
-    /*
-     * Retrieve the list of resources (for debugging) */
-     */
-    function _getList(error)
-    {
-        return this.resourceList;
-    }
-    o.getList = _getList;
-
-    return o;
-}
-
-/* singleton: create session resources list */
-if (! session.resources)
-{
-    session.resources = _resourcesCreate();
-}
-
-
-/*
- * Local Variables:
- * mode: c
- * End:
- */
-%>
diff --git a/services/samba/adm.esp b/services/samba/adm.esp
deleted file mode 100644 (file)
index 8843a06..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<%
-
-jsonrpc_include("resources.esp");
-
-libinclude("base.js");
-libinclude("management.js");
-
-function _echo(params, error) {
-       var echo_string = params[0];
-       return echo_string;
-}
-jsonrpc.method.echo = _echo;
-
-function _nbt_packet_stats(params, error) {
-       var stats = nbtd_statistics();
-       stats.server_status = new Object();
-       stats.server_status = server_status("nbt");
-       return stats;
-}
-jsonrpc.method.NBTPacketStats = _nbt_packet_stats;
-
-
-/*
- * Local Variables:
- * mode: c
- * End:
- */
-%>
diff --git a/services/samba/config.esp b/services/samba/config.esp
deleted file mode 100644 (file)
index bf4b789..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<%
-
-/*
- * Copyright (C)  Rafal Szczesniak 2007
- */
-
-/* Simple JSON-RPC access to the configuration parameters */
-
-function _lp_get(params, error)
-{
-  if (params.length < 1)
-  {
-    error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                  "no parameter specified");
-    return error;
-  }
-
-  var lp = loadparm_init();
-  var name = params[0];
-  var value = lp.get(name);
-
-  return value;
-}
-jsonrpc.method.lp_get = _lp_get;
-
-%>
diff --git a/services/samba/ejsnet.esp b/services/samba/ejsnet.esp
deleted file mode 100644 (file)
index 00424f2..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-<%
-
-/*
- * Copyright (C)  Rafal Szczesniak 2007
- */
-
-/* JSON-RPC mappings to the libnet functions */
-
-jsonrpc_include("resources.esp");
-
-
-function _NetContext(params, error)
-{
-  var hostName, credParams, credentials;
-  var resName = "netCtx";
-
-  credentials = session.authinfo.credentials;
-
-  if (params.length > 0)
-  {
-    /* first expected argument is host name that this context is going
-       to be attached to */
-    hostName = params[0];
-    if (typeof(hostName) != "string" || hostName == "")
-    {
-      error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                    "hostName parameter is expected to be a valid non zero-length string");
-      return error;
-    }
-
-    resName = "netCtx[" + hostName + "]";
-    
-    /* check whether credentials are supplied as well */
-    if (params.length > 1)
-    {
-      /* create user specified credentials object */
-      credParams = params[1];
-      if (typeof(credParams) != "object")
-      {
-        error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                      "credentials parameter is expected to be an object");
-       return error;
-      }
-
-      if (typeof(credParams.domain) != "string")
-      {
-       error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                      "a valid string is expected in credentials.domain");
-       return error;
-      }
-      
-      if (typeof(credParams.username) != "string")
-      {
-       error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                      "a valid string is expected in credentials.username");
-       return error;
-      }
-    
-      if (typeof(credParams.username) != "string")
-      {
-       error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                      "a valid string is expected in credentials.password");
-       return error;
-      }
-  
-      credentials = credentials_init();
-      credentials.set_domain(credParams.domain);
-      credentials.set_username(credParams.username);
-      credentials.set_password(credParams.password);
-    }
-  }
-
-  /* was this NetContext created yet ? */
-  var resId = session.resources.find(resName, error);
-  if (resId != undefined)
-  {
-    /* yes, return its resource id */
-    return resId;
-  }
-
-  /* no, create the new context and assign it a resource id */
-  var netCtx = NetContext(credentials);
-  resId = session.resources.set(netCtx, resName, error);
-  return resId;
-}
-jsonrpc.method.NetContext = _NetContext;
-
-
-function _NetContextCreds(params, error)
-{
-  if (params.length != 1)
-  {
-    error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                   "missing resource id parameter");
-    return error;
-  }
-
-  var resId = params[0];
-  if (typeof(resId) != "number")
-  {
-    error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                  "an integer parameter is required");
-    return error;
-  }
-  
-  var netCtx = session.resources.get(resId, error);
-  if (typeof(netCtx) != "object")
-  {
-    return null;
-  }
-
-  var creds = netCtx.credentials;
-  var result = new Object();
-  result.username = creds.get_username();
-  result.domain   = creds.get_domain();
-
-  return result;
-}
-jsonrpc.method.NetContextCreds = _NetContextCreds;
-
-
-function _UserMgr(params, error)
-{
-  var domainName = null, netCtxId;
-  var resId = -1;
-  var resName = "usrCtx";
-  var netCtx = undefined;
-  var usrCtx = undefined;
-
-  if (params.length == 0)
-  {
-    error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                  "NetContext parameter missing");
-    return error;
-  }
-
-  /* checking NetContext parameter */
-  netCtxId = params[0];
-  if (netCtxId == undefined || typeof(netCtxId) != "number")
-  {
-    error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                  "NetContext parameter is expected to be a number");
-  }
-  
-  netCtx = session.resources.get(netCtxId, error);
-  if (netCtx == undefined || typeof(netCtx) != "object")
-  {
-    error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                  "Incorrect NetContext passed");
-    return error;
-  }
-
-  if (params.length > 1)
-  {
-    domainName = params[1];
-    if (domainName == undefined || typeof(domainName) != "string")
-    {
-      error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                    "domainName parameter is expected to be a valid non zero-length string");
-      return error;
-    }
-  }
-  
-  if (domainName == "")
-  {
-    usrCtx = netCtx.UserMgr();
-  }
-  else
-  {
-    usrCtx = netCtx.UserMgr(domainName);
-  }
-
-  resId = session.resources.set(usrCtx, resName, error);
-  return resId;
-}
-jsonrpc.method.UserMgr = _UserMgr;
-
-%>
diff --git a/services/samba/ldb.esp b/services/samba/ldb.esp
deleted file mode 100644 (file)
index f69abde..0000000
+++ /dev/null
@@ -1,675 +0,0 @@
-<%
-/*
- * Copyright:
- *   (C) 2006 by Derrell Lipman
- *       All rights reserved
- *
- * License:
- *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
- */
-
-/*
- * JSON-RPC mappings to the ldb ejs functions
- */
-
-/* We'll be saving resources in the session */
-jsonrpc_include("resources.esp");
-
-
-/**
- * Local function to determine if the requested database is one which we allow
- * access to.
- *
- * @param dbRequested
- *   Name of the database which is being requested to be opened
- *
- * @return
- *   true if access is allowed; false otherwise.
- */
-function accessAllowed(dbRequested)
-{
-    /* Databases allowed to connect to */
-    dbAllowed = new Array();
-    dbAllowed[dbAllowed.length] = "sam.ldb";
-
-    for (var i = 0; i < dbAllowed.length; i++)
-    {
-        if (dbRequested == dbAllowed[i])
-        {
-            return true;
-        }
-    }
-
-    return false;
-}
-
-
-/**
- * Connect to a database
- *
- * @param params[0]
- *   Database name
- *
- * @param params[1..n]
- *   Option (e.g. "modules:modlist")
- *
- * @param error
- *   An object of class JsonRpcError.
- *
- * @return
- *   Success: The resource id to be used for future access to the database
- *   Failure: error event
- *
- * @note
- *   Credentials or session_info may be set up first.
- */
-function _connect(params, error)
-{
-    if (params.length < 1)
-    {
-        error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                       "usage: <db_name> [<option> ...]");
-        return error;
-    }
-
-    /* First, see if this database was already opened */
-    var resourceId = session.resources.find("ldb:" + params[0], error);
-    if (resourceId != undefined)
-    {
-        /* It was.  Give 'em the resource id */
-        return resourceId;
-    }
-
-    /* Ensure that the database name is one that is allowed to be opened */
-    if (! accessAllowed(params[0]))
-    {
-        error.setError(-1, "Invalid or disallowed database name");
-        return error;
-    }
-
-    /* Get access to loadparm functions */
-    var lp = loadparm_init();
-
-    /* Determine the private directory */
-    var private_dir = lp.get("private dir");
-
-    /* Database was not previously opened.  Connect to it. */
-    ldb = ldb_init();
-    ldb.session_info = session.authinfo.session_info;
-    ldb.credentials = session.authinfo.credentials;
-    var ret = ldb.connect(private_dir + "/" + params[0]);
-    if (ret && ldb.db)
-    {
-        return session.resources.set(ldb, "ldb:" + params[0], error);
-    }
-    else
-    {
-        error.setError(-1, "ldb.connect failed");
-        return error;
-    }
-}
-jsonrpc.method.connect = _connect;
-
-
-/**
- * Close a database
- *
- * @param params[0]
- *   The resource id of the open database, previously returned by connect()
- *
- * @param error
- *   An object of class JsonRpcError.
- *
- * @return
- *   Success: True
- *   Failure: Will only fail with invalid parameters, and throws an error
- */
-function _close(params, error)
-{
-    if (params.length != 1)
-    {
-        error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                       "usage: <resource_id>");
-        return error;
-    }
-
-    ldb = session.resources.get(params[0], error);
-    if (ldb["__type"] == "_JsonRpcError")
-    {
-        return ldb;
-    }
-
-    var ret = ldb.close();
-    
-    /* If close succeeded, release the stored resource */
-    if (ret)
-    {
-        session.resources.release(params[0], error);
-    }
-
-    return ret;
-}
-jsonrpc.method.close = _close;
-
-
-/**
- * Begin a transaction
- *
- * @param params[0]
- *   The resource id of the open database, previously returned by connect()
- *
- * @param error
- *   An object of class JsonRpcError.
- *
- * @return
- *   Success: True
- *   Failure: False
- */
-function _transaction_start(params, error)
-{
-    if (params.length != 1)
-    {
-        error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                       "usage: <resource_id>");
-        return error;
-    }
-
-    ldb = session.resources.get(params[0], error);
-    if (ldb["__type"] == "_JsonRpcError")
-    {
-        return ldb;
-    }
-
-    return ldb.transaction_start();
-}
-jsonrpc.method.transaction_start = _transaction_start;
-
-
-/**
- * Cancel a transaction
- *
- * @param params[0]
- *   The resource id of the open database, previously returned by connect()
- *
- * @param error
- *   An object of class JsonRpcError.
- *
- * @return
- *   Success: True
- *   Failure: False
- */
-function _transaction_cancel(params, error)
-{
-    if (params.length != 1)
-    {
-        error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                       "usage: <resource_id>");
-        return error;
-    }
-
-    ldb = session.resources.get(params[0], error);
-    if (ldb["__type"] == "_JsonRpcError")
-    {
-        return ldb;
-    }
-
-    return ldb.transaction_cancel();
-}
-jsonrpc.method.transaction_cancel = _transaction_cancel;
-
-
-/**
- * Commit a transaction
- *
- * @param params[0]
- *   The resource id of the open database, previously returned by connect()
- *
- * @param error
- *   An object of class JsonRpcError.
- *
- * @return
- *   Success: True
- *   Failure: False
- */
-function _transaction_commit(params, error)
-{
-    if (params.length != 1)
-    {
-        error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                       "usage: <resource_id>");
-        return error;
-    }
-
-    ldb = session.resources.get(params[0], error);
-    if (ldb["__type"] == "_JsonRpcError")
-    {
-        return ldb;
-    }
-
-    return ldb.transaction_commit();
-}
-jsonrpc.method.transaction_commit = _transaction_commit;
-
-
-/**
- * Issue a Search request
- *
- * @param params[0]
- *   The resource id of the open database, previously returned by connect()
- *
- * @param params[1]
- *   Search expression
- *
- * @param params[2]
- *   Base DN
- *
- * @param params[3]
- *   Scope: "default", "base", "one" or "subtree"
- *
- * @param params[4]
- *   Attributes: an array object
- *
- * @param error
- *   An object of class JsonRpcError.
- *
- * @return
- *   Success: found object
- *   Failure: `undefined`
- *
- * @note
- *   If params[4] is missing, assume no attributes
- *   If params[3..4] are missing, also assume "default" scope
- *   If params[2..4] are missing, also assume null base DN
- */
-function _search(params, error)
-{
-    if (params.length < 2 || params.length > 5)
-    {
-        error.setOrigin(jsonrpc.Constant.ErrorOrigin.Server);
-        error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                       "usage: " +
-                       "<resource_id> <expr> [<baseDN> [<scope> [<attrs>]]]");
-        return error;
-    }
-
-    ldb = session.resources.get(params[0], error);
-    if (ldb["__type"] == "_JsonRpcError")
-    {
-        return ldb;
-    }
-
-    /* Retrieve parameters */
-    var expr = params[1];
-    var baseDN = params[2];
-    var scope = params[3];
-    var attrs = params[4];
-
-    /* Fill in optional parameters */
-    if (params.length < 3) baseDN = null;
-    if (params.length < 4) scope = "one";
-    if (params.length < 5) attrs = null;
-
-    /* Determine scope value */
-    if (scope == "base")
-    {
-        scope = ldb.SCOPE_BASE;
-    }
-    else if (scope == "one")
-    {
-        scope = ldb.SCOPE_ONE;
-    }
-    else if (scope == "subtree")
-    {
-        scope = ldb.SCOPE_SUBTREE;
-    }
-    else if (scope == "default")
-    {
-        scope = ldb.SCOPE_DEFAULT;
-    }
-    else
-    {
-        error.setOrigin(jsonrpc.Constant.ErrorOrigin.Server);
-        error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                       "invalid scope: " + scope);
-        return error;
-    }
-
-    var res = ldb.search(expr, baseDN, scope, attrs);
-
-    if (res.error != 0) {
-        error.setError(res.error, res.errstr);
-        return error;
-    }
-
-    return res.msgs;
-}
-jsonrpc.method.search = _search;
-
-
-/**
- * Add data to the database
- *
- * @param params[0]
- *   The resource id of the open database, previously returned by connect()
- *
- * @param params[1]
- *   An LDIF string representing the data to be added
- *
- * @param error
- *   An object of class JsonRpcError.
- *
- * @return
- *   Success: True
- *   Failure: False
- */
-function _add(params, error)
-{
-    if (params.length != 2)
-    {
-        error.setOrigin(jsonrpc.Constant.ErrorOrigin.Server);
-        error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                       "usage: <resource_id> <ldif>");
-        return error;
-    }
-
-    ldb = session.resources.get(params[0], error);
-    if (ldb["__type"] == "_JsonRpcError")
-    {
-        return ldb;
-    }
-
-    var res = ldb.add(params[1]);
-    if (res.error != 0) {
-        error.setError(res.error, res.errstr);
-        return error;
-    }
-
-    return true;
-}
-jsonrpc.method.add = _add;
-
-
-/**
- * Modify data in the database
- *
- * @param params[0]
- *   The resource id of the open database, previously returned by connect()
- *
- * @param params[1]
- *   An LDIF string representing the data to be modified
- *
- * @param error
- *   An object of class JsonRpcError.
- *
- * @return
- *   Success: True
- *   Failure: False
- */
-function _modify(params, error)
-{
-    if (params.length != 2)
-    {
-        error.setOrigin(jsonrpc.Constant.ErrorOrigin.Server);
-        error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                       "usage: <resource_id> <ldif>");
-        return error;
-    }
-
-    ldb = session.resources.get(params[0], error);
-    if (ldb["__type"] == "_JsonRpcError")
-    {
-        return ldb;
-    }
-
-    var res = ldb.modify(params[1]);
-    if (res.error != 0) {
-        error.setError(res.error, res.errstr);
-        return error;
-    }
-
-    return true;
-}
-jsonrpc.method.modify = _modify;
-
-
-/**
- * Delete data from the database
- *
- * @param params[0]
- *   The resource id of the open database, previously returned by connect()
- *
- * @param params[1]
- *   The DN to be located and deleted
- *
- * @param error
- *   An object of class JsonRpcError.
- *
- * @return
- *   Success: True
- *   Failure: False
- */
-function _del(params, error)
-{
-    if (params.length != 2)
-    {
-        error.setOrigin(jsonrpc.Constant.ErrorOrigin.Server);
-        error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                       "usage: <resource_id> <dn>");
-        return error;
-    }
-
-    ldb = session.resources.get(params[0], error);
-    if (ldb["__type"] == "_JsonRpcError")
-    {
-        return ldb;
-    }
-
-    var res = ldb.del(params[1]);
-    if (res.error != 0) {
-        error.setError(res.error, res.errstr);
-        return error;
-    }
-
-    return true;
-}
-jsonrpc.method.del = _del;
-
-
-/**
- * Rename data in the database
- *
- * @param params[0]
- *   The resource id of the open database, previously returned by connect()
- *
- * @param params[1]
- *   The DN to be renamed
- *
- * @param params[2]
- *   The new name for the DN being renamed
- *
- * @param error
- *   An object of class JsonRpcError.
- *
- * @return
- *   Success: True
- *   Failure: False
- */
-function _rename(params, error)
-{
-    if (params.length != 3)
-    {
-        error.setOrigin(jsonrpc.Constant.ErrorOrigin.Server);
-        error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                       "usage: <resource_id> <old_dn> <new_dn>");
-        return error;
-    }
-
-    ldb = session.resources.get(params[0], error);
-    if (ldb["__type"] == "_JsonRpcError")
-    {
-        return ldb;
-    }
-
-    var res = ldb.rename(params[1], params[2]);
-    if (res.error != 0) {
-        error.setError(res.error, res.errstr);
-        return error;
-    }
-
-    return true;
-}
-jsonrpc.method.rename = _rename;
-
-
-/**
- * Base64-encode a string
- *
- * @param params[0]
- *   The resource id of the open database, previously returned by connect()
- *
- * @param params[1]
- *   The string to be base64 encoded
- *
- * @param error
- *   An object of class JsonRpcError.
- *
- * @return
- *   Success: encoded string
- *   Failure: `undefined`
- */
-function _base64encode(params, error)
-{
-    if (params.length != 2)
-    {
-        error.setOrigin(jsonrpc.Constant.ErrorOrigin.Server);
-        error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                       "usage: <resource_id> <string_to_be_encoded>");
-        return error;
-    }
-
-    ldb = session.resources.get(params[0], error);
-    if (ldb["__type"] == "_JsonRpcError")
-    {
-        return ldb;
-    }
-
-    return ldb.base64encode(params[1]);
-}
-jsonrpc.method.base64encode = _base64encode;
-
-
-/**
- * Base64-decode a string
- *
- * @param params[0]
- *   The resource id of the open database, previously returned by connect()
- *
- * @param params[1]
- *   The string to be base64 decoded
- *
- * @param error
- *   An object of class JsonRpcError.
- *
- * @return
- *   Success: decoded string
- *   Failure: `undefined`
- */
-function _base64decode(params, error)
-{
-    if (params.length != 2)
-    {
-        error.setOrigin(jsonrpc.Constant.ErrorOrigin.Server);
-        error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                       "usage: <resource_id> <string_to_be_decoded>");
-        return error;
-    }
-
-    ldb = session.resources.get(params[0], error);
-    if (ldb["__type"] == "_JsonRpcError")
-    {
-        return ldb;
-    }
-
-    return ldb.base64decode(params[1]);
-}
-jsonrpc.method.base64decode = _base64decode;
-
-
-/**
- * escape a DN
- *
- * @param params[0]
- *   The resource id of the open database, previously returned by connect()
- *
- * @param params[1]
- *   The DN to be escaped
- *
- * @param error
- *   An object of class JsonRpcError.
- *
- * @return
- *   Success: escaped string
- *   Failure: undefined
- */
-function _base64decode(params, error)
-{
-    if (params.length != 2)
-    {
-        error.setOrigin(jsonrpc.Constant.ErrorOrigin.Server);
-        error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                       "usage: <resource_id> <string_to_be_decoded>");
-        return error;
-    }
-
-    ldb = session.resources.get(params[0], error);
-    if (ldb["__type"] == "_JsonRpcError")
-    {
-        return ldb;
-    }
-
-    return ldb.base64decode(params[1]);
-}
-jsonrpc.method.base64decode = _base64decode;
-
-
-/**
- * Retrieve a description of the most recent error
- *
- * @param params[0]
- *   The resource id of the open database, previously returned by connect()
- *
- * @param error
- *   An object of class JsonRpcError.
- *
- * @return
- *   The most recent error string for the ldb specified by the resource id
- */
-function _errstring(params, error)
-{
-    if (params.length != 1)
-    {
-        error.setOrigin(jsonrpc.Constant.ErrorOrigin.Server);
-        error.setError(jsonrpc.Constant.ServerError.ParameterMismatch,
-                       "usage: <resource_id>");
-        return error;
-    }
-
-    ldb = session.resources.get(params[0], error);
-    if (ldb["__type"] == "_JsonRpcError")
-    {
-        return ldb;
-    }
-
-    return ldb.errstring();
-}
-jsonrpc.method.errstring = _errstring;
-
-
-
-
-/*
- * Local Variables:
- * mode: c
- * End:
- */
-%>
diff --git a/services/samba/management.esp b/services/samba/management.esp
deleted file mode 100644 (file)
index 1efd8f6..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-<%
-/*
- * Copyright:
- *   (C) 2006 by Derrell Lipman
- *       All rights reserved
- *
- * License:
- *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
- */
-
-/*
- * JSON-RPC mappings to management functions
- */
-
-libinclude("base.js");
-libinclude("management.js");
-
-/**
- * Get statistics from each of the servers
- *
- * @param params[0]
- *   Optional enum_smb_sessions flag, default false
- *
- * @param params[1]
- *   Optional enum_smb_tcons flag, default false
- *
- * @param error
- *   An object of class JsonRpcError.
- *
- * @return
- *   Success: Object containing all of the statistics
- *   Failure: error event
- */
-function _get_statistics(params, error)
-{
-    var enum_smb_sessions = false;
-    var enum_smb_tcons = false;
-    
-    if (params.length >= 1)
-    {
-        enum_smb_sessions = params[0];
-    }
-    if (params.length >= 2)
-    {
-        enum_smb_tcons = params[1];
-    }
-
-    var info = new Object();
-
-    info["nbt"]   = new Object();
-    info["wins"]  = new Object();
-    info["cldap"] = new Object();
-    info["kdc"]   = new Object();
-    info["smb"]   = new Object();
-    info["ldap"]  = new Object();
-    info["rpc"]   = new Object();
-
-    for (var service in info)
-    {
-       var irpc = irpc_init();
-        var status;
-        var obj = info[service];
-        obj.status = null;
-
-       if (!service_enabled(service))
-        {
-            obj.status = "DISABLED";
-       }
-        else
-        {
-            status = irpc.connect(service + "_server");
-            if (status.is_ok != true)
-            {
-                obj.status = "INACTIVE";
-            }
-            else
-            {
-                var io = irpcObj();
-                status = irpc.irpc_uptime(io);
-                if (status.is_ok != true)
-                {
-                    obj.status = "NOT RESPONDING";
-                }
-                else
-                {
-                    obj.status = "RUNNING";
-
-                    if (service == "smb" ||
-                        service == "ldap" ||
-                        service == "rpc")
-                    {
-                        obj.connections = io.results.length;
-                    }
-
-                    if (service == "smb")
-                    {
-                        if (enum_smb_sessions)
-                        {
-                            var io = irpcObj();
-                            io.input.level = irpc.SMBSRV_INFO_SESSIONS;
-                            status = irpc.smbsrv_information(io);
-                            obj.sessions = new Array(0);
-                            if (status.is_ok == true)
-                            {
-                                /* gather the results into a single array */
-                                var count = 0;
-                                for (var i = 0; i < io.results.length; i++)
-                                {
-                                    var sessions =
-                                        io.results[i].info.sessions.sessions;
-                                    for (var j = 0; j < sessions.length; j++)
-                                    {
-                                        obj.sessions[count] = sessions[j];
-
-                                        // convert NT times to unix epoch
-                                        obj.sessions[count].auth_time =
-                                            nttime2unix(obj.sessions[count].auth_time);
-                                        obj.sessions[count].last_use_time =
-                                            nttime2unix(obj.sessions[count].last_use_time);
-                                        obj.sessions[count].connect_time =
-                                            nttime2unix(obj.sessions[count].connect_time);
-
-                                        count++;
-                                    }
-                                }
-                            }
-                        }
-
-                        if (enum_smb_tcons)
-                        {
-                            var io = irpcObj();
-                            io.input.level = irpc.SMBSRV_INFO_TCONS;
-                            status = irpc.smbsrv_information(io);
-                            obj.tcons = new Array(0);
-
-                            if (status.is_ok == true)
-                            {
-                                /* gather the results into a single array */
-                                var count=0;
-                                for (var i = 0; i < io.results.length; i++)
-                                {
-                                    var tcons = io.results[i].info.tcons.tcons;
-                                    for (var j = 0; j < tcons.length; j++)
-                                    {
-                                        obj.tcons[count] = tcons[j];
-
-
-                                        // convert NT times to unix epoch
-                                        obj.tcons[count].last_use_time =
-                                            nttime2unix(obj.tcons[count].last_use_time);
-                                        obj.tcons[count].connect_time =
-                                            nttime2unix(obj.tcons[count].connect_time);
-
-                                        count++;
-                                    }
-                                }
-                            }
-                        }
-                    }
-                    else if (service == "nbt")
-                    {
-                        var io = irpcObj();
-                        io.input.level = irpc.NBTD_INFO_STATISTICS;
-                        status = irpc.nbtd_information(io);
-                        if (status.is_ok == true)
-                        {
-                            obj.statistics = io.results[0].info.stats;
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    return info;
-}
-jsonrpc.method.get_statistics = _get_statistics;
-
-/*
- * Local Variables:
- * mode: c
- * End:
- */
-%>
diff --git a/services/samba/system.esp b/services/samba/system.esp
deleted file mode 100644 (file)
index 59844cd..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-<%
-/*
- * Copyright:
- *   (C) 2006 by Derrell Lipman
- *       All rights reserved
- *
- * License:
- *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
- */
-
-/*
- * JSON-RPC mappings to system facilities
- */
-
-/* We'll be accessing session resources */
-jsonrpc_include("resources.esp");
-
-
-/**
- * Authenticate and log in
- *
- * @param params[0]
- *   User name
- *
- * @param params[1]
- *   Password
- *
- * @param params[2]
- *   Domain
- *
- * @param error
- *   An object of class JsonRpcError.
- *
- * @return
- *   Success: "Logged in"
- *   Failure: error event, origin=Server, code=LoginFailed
- */
-function _login(params, error)
-{
-    var ret;
-    var creds = credentials_init();
-
-    creds.set_username(params[0]);
-    creds.set_password(params[1]);
-    creds.set_domain(params[2]);
-    creds.set_workstation(request['REMOTE_HOST']);
-    auth = userAuth(creds, request['REMOTE_SOCKET_ADDRESS']);
-
-    if (auth == undefined)
-    {
-        error.setOrigin(jsonrpc.Constant.ErrorOrigin.Server);
-        error.setError(jsonrpc.Constant.ServerError.LoginFailed,
-                       "Invalid login.");
-        ret = error;
-    }
-    else if (auth.result)
-    {
-        session.AUTHENTICATED = true;
-        session.authinfo = new Object();
-
-        session.authinfo.username = auth.username;
-        session.authinfo.domain = auth.domain;
-        session.authinfo.credentials = creds;
-        session.authinfo.session_info = auth.session_info;
-
-        ret = "Logged in";
-    }    
-    else if (auth.report == undefined)
-    {
-        error.setOrigin(jsonrpc.Constant.ErrorOrigin.Server);
-        error.setError(jsonrpc.Constant.ServerError.LoginFailed,
-                       "Login failed.");
-        ret = error;
-    }
-    else
-    {
-        error.setOrigin(jsonrpc.Constant.ErrorOrigin.Server);
-        error.setError(jsonrpc.Constant.ServerError.LoginFailed,
-                       "Login failed: " + auth.report);
-        ret = error;
-    }
-
-    return ret;
-}
-jsonrpc.method.login = _login;
-
-
-
-/**
- * Retrieve the list of open resources (for debugging)
- *
- * @return "Logged out"
- */
-function _logout(params, error)
-{
-    session.AUTHENTICATED = false;
-    return "Logged out";
-}
-jsonrpc.method.logout = _logout;
-
-
-
-/**
- * Retrieve the list of open resources (for debugging)
- */
-function _get_open_resources(params, error)
-{
-    return session.resources.getList(error);
-}
-jsonrpc.method.get_open_resources = _get_open_resources;
-
-
-/*
- * Local Variables:
- * mode: c
- * End:
- */
-%>
index 7441b7421bfa071e1a04b165a53ae79f0e279eb4..18daa5163d5a4ea062e97e5c34bc4aabef2d1d03 100644 (file)
@@ -57,7 +57,7 @@ SAMBA_VERSION_TP_RELEASE=
 # e.g. SAMBA_VERSION_ALPHA_RELEASE=1                   #
 #  ->  "4.0.0alpha1"                                   #
 ########################################################
-SAMBA_VERSION_ALPHA_RELEASE=1
+SAMBA_VERSION_ALPHA_RELEASE=2
 
 ########################################################
 # For 'pre' releases the version will be               #
@@ -89,7 +89,7 @@ SAMBA_VERSION_RC_RELEASE=
 # e.g. SAMBA_VERSION_IS_SVN_SNAPSHOT=yes               #
 #  ->  "3.0.0-SVN-build-199"                           #
 ########################################################
-SAMBA_VERSION_IS_SVN_SNAPSHOT=no
+SAMBA_VERSION_IS_SVN_SNAPSHOT=yes
 
 ########################################################
 # This is for specifying a release nickname            #
index 57e2c050c12c639b21fd187557f176f6c9c0a42a..1dc55de61e71be9cc2d9ee5ce6f5d720056ddd86 100644 (file)
@@ -23,6 +23,7 @@
 #include "auth/auth.h"
 #include "lib/events/events.h"
 #include "build.h"
+#include "param/param.h"
 
 /***************************************************************************
  Set a fixed challenge
@@ -41,7 +42,7 @@ NTSTATUS auth_context_set_challenge(struct auth_context *auth_ctx, const uint8_t
 /***************************************************************************
  Set a fixed challenge
 ***************************************************************************/
-BOOL auth_challenge_may_be_modified(struct auth_context *auth_ctx) 
+bool auth_challenge_may_be_modified(struct auth_context *auth_ctx) 
 {
        return auth_ctx->challenge.may_be_modified;
 }
@@ -92,7 +93,7 @@ _PUBLIC_ NTSTATUS auth_get_challenge(struct auth_context *auth_ctx, const uint8_
                NT_STATUS_HAVE_NO_MEMORY(auth_ctx->challenge.data.data);
                auth_ctx->challenge.set_by              = "random";
 
-               auth_ctx->challenge.may_be_modified     = True;
+               auth_ctx->challenge.may_be_modified     = true;
        }
 
        DEBUG(10,("auth_get_challenge: challenge set by %s\n",
@@ -103,7 +104,7 @@ _PUBLIC_ NTSTATUS auth_get_challenge(struct auth_context *auth_ctx, const uint8_
 }
 
 struct auth_check_password_sync_state {
-       BOOL finished;
+       bool finished;
        NTSTATUS status;
        struct auth_serversupplied_info *server_info;
 };
@@ -114,7 +115,7 @@ static void auth_check_password_sync_callback(struct auth_check_password_request
        struct auth_check_password_sync_state *s = talloc_get_type(private_data,
                                                   struct auth_check_password_sync_state);
 
-       s->finished = True;
+       s->finished = true;
        s->status = auth_check_password_recv(req, s, &s->server_info);
 }
 
@@ -375,7 +376,7 @@ NTSTATUS auth_context_create_methods(TALLOC_CTX *mem_ctx, const char **methods,
        ctx = talloc(mem_ctx, struct auth_context);
        NT_STATUS_HAVE_NO_MEMORY(ctx);
        ctx->challenge.set_by           = NULL;
-       ctx->challenge.may_be_modified  = False;
+       ctx->challenge.may_be_modified  = false;
        ctx->challenge.data             = data_blob(NULL, 0);
        ctx->methods                    = NULL;
        ctx->event_ctx                  = ev;
@@ -416,15 +417,15 @@ NTSTATUS auth_context_create(TALLOC_CTX *mem_ctx,
                             struct auth_context **auth_ctx)
 {
        const char **auth_methods = NULL;
-       switch (lp_server_role()) {
+       switch (lp_server_role(global_loadparm)) {
        case ROLE_STANDALONE:
-               auth_methods = lp_parm_string_list(-1, "auth methods", "standalone", NULL);
+               auth_methods = lp_parm_string_list(global_loadparm, NULL, "auth methods", "standalone", NULL);
                break;
        case ROLE_DOMAIN_MEMBER:
-               auth_methods = lp_parm_string_list(-1, "auth methods", "member server", NULL);
+               auth_methods = lp_parm_string_list(global_loadparm, NULL, "auth methods", "member server", NULL);
                break;
        case ROLE_DOMAIN_CONTROLLER:
-               auth_methods = lp_parm_string_list(-1, "auth methods", "domain controller", NULL);
+               auth_methods = lp_parm_string_list(global_loadparm, NULL, "auth methods", "domain controller", NULL);
                break;
        }
        return auth_context_create_methods(mem_ctx, auth_methods, ev, msg, auth_ctx);
@@ -443,9 +444,8 @@ static int num_backends;
   The 'name' can be later used by other backends to find the operations
   structure for this backend.
 */
-NTSTATUS auth_register(const void *_ops)
+NTSTATUS auth_register(const struct auth_operations *ops)
 {
-       const struct auth_operations *ops = _ops;
        struct auth_operations *new_ops;
        
        if (auth_backend_byname(ops->name) != NULL) {
@@ -455,13 +455,14 @@ NTSTATUS auth_register(const void *_ops)
                return NT_STATUS_OBJECT_NAME_COLLISION;
        }
 
-       backends = realloc_p(backends, struct auth_backend, num_backends+1);
-       if (!backends) {
-               return NT_STATUS_NO_MEMORY;
-       }
+       backends = talloc_realloc(talloc_autofree_context(), backends, 
+                                 struct auth_backend, num_backends+1);
+       NT_STATUS_HAVE_NO_MEMORY(backends);
 
-       new_ops = smb_xmemdup(ops, sizeof(*ops));
-       new_ops->name = smb_xstrdup(ops->name);
+       new_ops = talloc_memdup(backends, ops, sizeof(*ops));
+       NT_STATUS_HAVE_NO_MEMORY(new_ops);
+       new_ops->name = talloc_strdup(new_ops, ops->name);
+       NT_STATUS_HAVE_NO_MEMORY(new_ops->name);
 
        backends[num_backends].ops = new_ops;
 
@@ -510,15 +511,15 @@ const struct auth_critical_sizes *auth_interface_version(void)
 
 NTSTATUS auth_init(void)
 {
-       static BOOL initialized = False;
+       static bool initialized = false;
 
        init_module_fn static_init[] = STATIC_auth_MODULES;
        init_module_fn *shared_init;
        
        if (initialized) return NT_STATUS_OK;
-       initialized = True;
+       initialized = true;
        
-       shared_init = load_samba_modules(NULL, "auth");
+       shared_init = load_samba_modules(NULL, global_loadparm, "auth");
 
        run_init_functions(static_init);
        run_init_functions(shared_init);
index a28cf4a5900dd2cf06b0bd752489b73c3aeab4c3..cc5e79631f4c35997a4332a44858ba8f14dbc9de 100644 (file)
@@ -122,7 +122,7 @@ static NTSTATUS name_to_ntstatus_check_password(struct auth_method_context *ctx,
 
        server_info->acct_flags = ACB_NORMAL;
 
-       server_info->authenticated = False;
+       server_info->authenticated = false;
 
        *_server_info = server_info;
 
index 840db3ede69adb9571edc9262a2044d59fd56550..da1ffb5c851ffeb5e8f7f89baf8d19b8f16e6bbc 100644 (file)
@@ -29,6 +29,7 @@
 #include "dsdb/samdb/samdb.h"
 #include "libcli/security/security.h"
 #include "libcli/ldap/ldap.h"
+#include "param/param.h"
 
 extern const char *user_attrs[];
 extern const char *domain_ref_attrs[];
@@ -150,7 +151,7 @@ static NTSTATUS authsam_password_ok(struct auth_context *auth_context,
        NTSTATUS status;
 
        if (acct_flags & ACB_PWNOTREQ) {
-               if (lp_null_passwords()) {
+               if (lp_null_passwords(global_loadparm)) {
                        DEBUG(3,("Account for user '%s' has no password and null passwords are allowed.\n", 
                                 user_info->mapped.account_name));
                        return NT_STATUS_OK;
@@ -341,17 +342,19 @@ static NTSTATUS authsam_want_check(struct auth_method_context *ctx,
                                   TALLOC_CTX *mem_ctx,
                                   const struct auth_usersupplied_info *user_info)
 {
-       BOOL is_local_name, is_my_domain;
+       bool is_local_name, is_my_domain;
 
        if (!user_info->mapped.account_name || !*user_info->mapped.account_name) {
                return NT_STATUS_NOT_IMPLEMENTED;
        }
 
-       is_local_name = is_myname(user_info->mapped.domain_name);
-       is_my_domain  = strequal(user_info->mapped.domain_name, lp_workgroup());
+       is_local_name = lp_is_myname(global_loadparm, 
+                                 user_info->mapped.domain_name);
+       is_my_domain  = lp_is_mydomain(global_loadparm, 
+                                      user_info->mapped.domain_name); 
 
        /* check whether or not we service this domain/workgroup name */
-       switch (lp_server_role()) {
+       switch (lp_server_role(global_loadparm)) {
                case ROLE_STANDALONE:
                        return NT_STATUS_OK;
 
@@ -387,14 +390,14 @@ static NTSTATUS authsam_check_password(struct auth_method_context *ctx,
        const char *domain;
 
        /* check whether or not we service this domain/workgroup name */
-       switch (lp_server_role()) {
+       switch (lp_server_role(global_loadparm)) {
                case ROLE_STANDALONE:
                case ROLE_DOMAIN_MEMBER:
-                       domain = lp_netbios_name();
+                       domain = lp_netbios_name(global_loadparm);
                        break;
 
                case ROLE_DOMAIN_CONTROLLER:
-                       domain = lp_workgroup();
+                       domain = lp_workgroup(global_loadparm);
                        break;
 
                default:
index 5d4c33969fd8ff267bcea7b519598cacfa552688..abc052c9eae5548a96f3af43feefd70246808a6f 100644 (file)
@@ -31,13 +31,13 @@ static struct smbcli_state *server_cryptkey(TALLOC_CTX *mem_ctx)
        struct ipv4_addr dest_ip;
        const char *p;
        char *pserver;
-       BOOL connected_ok = False;
+       bool connected_ok = false;
 
        if (!(cli = smbcli_initialise(cli)))
                return NULL;
 
        /* security = server just can't function with spnego */
-       cli->use_spnego = False;
+       cli->use_spnego = false;
 
         pserver = talloc_strdup(mem_ctx, lp_passwordserver());
        p = pserver;
@@ -66,7 +66,7 @@ static struct smbcli_state *server_cryptkey(TALLOC_CTX *mem_ctx)
 
                if (smbcli_connect(cli, desthost, &dest_ip)) {
                        DEBUG(3,("connected to password server %s\n",desthost));
-                       connected_ok = True;
+                       connected_ok = true;
                        break;
                }
        }
@@ -195,10 +195,10 @@ static NTSTATUS check_smbserver_security(const struct auth_context *auth_context
        struct smbcli_state *cli;
        static uint8_t badpass[24];
        static fstring baduser; 
-       static BOOL tested_password_server = False;
-       static BOOL bad_password_server = False;
+       static bool tested_password_server = false;
+       static bool bad_password_server = false;
        NTSTATUS nt_status = NT_STATUS_LOGON_FAILURE;
-       BOOL locally_made_cli = False;
+       bool locally_made_cli = false;
 
        /* 
         * Check that the requested domain is not our own machine name.
@@ -206,7 +206,7 @@ static NTSTATUS check_smbserver_security(const struct auth_context *auth_context
         * password file.
         */
 
-       if(is_myname(user_info->domain.str)) {
+       if (lp_is_myname(global_loadparm, user_info->domain.str)) {
                DEBUG(3,("check_smbserver_security: Requested domain was for this machine.\n"));
                return NT_STATUS_LOGON_FAILURE;
        }
@@ -216,7 +216,7 @@ static NTSTATUS check_smbserver_security(const struct auth_context *auth_context
        if (cli) {
        } else {
                cli = server_cryptkey(mem_ctx);
-               locally_made_cli = True;
+               locally_made_cli = true;
        }
 
        if (!cli || !cli->initialised) {
@@ -273,7 +273,7 @@ static NTSTATUS check_smbserver_security(const struct auth_context *auth_context
                         * We connected to the password server so we
                         * can say we've tested it.
                         */
-                       tested_password_server = True;
+                       tested_password_server = true;
 
                        if ((SVAL(cli->inbuf,smb_vwv2) & 1) == 0) {
                                DEBUG(0,("server_validate: password server %s allows users as non-guest \
@@ -285,7 +285,7 @@ use this machine as the password server.\n"));
                                /*
                                 * Password server has the bug.
                                 */
-                               bad_password_server = True;
+                               bad_password_server = true;
                                return NT_STATUS_LOGON_FAILURE;
                        }
                        smbcli_ulogoff(cli);
index add45268d4b103bdfa06911dbc483cb6baacd91d..3e07adcb6a4743ec09deb258296ada1027211502 100644 (file)
@@ -61,7 +61,7 @@ _PUBLIC_ NTSTATUS authenticate_username_pw(TALLOC_CTX *mem_ctx,
                return NT_STATUS_NO_MEMORY;
        }
 
-       user_info->mapped_state = True;
+       user_info->mapped_state = true;
        user_info->client.account_name = nt4_username;
        user_info->mapped.account_name = nt4_username;
        user_info->client.domain_name = nt4_domain;
index 61e004f5926a648be794689b8b40ac5fbe5e7244..8b4e23a2c4ff86f4f9a238359452ed5bbd485aa2 100644 (file)
@@ -24,6 +24,7 @@
 #include "system/passwd.h" /* needed by some systems for struct passwd */
 #include "lib/socket/socket.h" 
 #include "auth/pam_errors.h"
+#include "param/param.h"
 
 /* TODO: look at how to best fill in parms retrieveing a struct passwd info
  * except in case USER_INFO_DONT_CHECK_UNIX_ACCOUNT is set
@@ -52,7 +53,7 @@ static NTSTATUS authunix_make_server_info(TALLOC_CTX *mem_ctx,
                server_info = talloc(mem_ctx, struct auth_serversupplied_info);
                NT_STATUS_HAVE_NO_MEMORY(server_info);
                
-               server_info->authenticated = True;
+               server_info->authenticated = true;
                
                server_info->account_name = talloc_steal(server_info, pwd->pw_name);
                NT_STATUS_HAVE_NO_MEMORY(server_info->account_name);
@@ -318,7 +319,7 @@ static NTSTATUS smb_pam_auth(pam_handle_t *pamh, const char *user)
        
        DEBUG(4,("smb_pam_auth: PAM: Authenticate User: %s\n", user));
 
-       pam_error = pam_authenticate(pamh, PAM_SILENT | lp_null_passwords() ? 0 : PAM_DISALLOW_NULL_AUTHTOK);
+       pam_error = pam_authenticate(pamh, PAM_SILENT | lp_null_passwords(global_loadparm) ? 0 : PAM_DISALLOW_NULL_AUTHTOK);
        switch( pam_error ){
                case PAM_AUTH_ERR:
                        DEBUG(2, ("smb_pam_auth: PAM: Authentication Error for user %s\n", user));
@@ -498,7 +499,7 @@ core of password checking routine
 static NTSTATUS password_check(const char *username, const char *password,
                                        const char *crypted, const char *salt)
 {
-       BOOL ret;
+       bool ret;
 
 #ifdef WITH_AFS
        if (afs_auth(username, password))
@@ -598,7 +599,7 @@ static NTSTATUS check_unix_password(TALLOC_CTX *ctx, const struct auth_usersuppl
        char *crypted;
        struct passwd *pws;
        NTSTATUS nt_status;
-       int level = lp_passwordlevel();
+       int level = lp_passwordlevel(global_loadparm);
 
        *ret_passwd = NULL;
 
@@ -701,7 +702,7 @@ static NTSTATUS check_unix_password(TALLOC_CTX *ctx, const struct auth_usersuppl
 #endif
 
        if (crypted[0] == '\0') {
-               if (!lp_null_passwords()) {
+               if (!lp_null_passwords(global_loadparm)) {
                        DEBUG(2, ("Disallowing %s with null password\n", username));
                        return NT_STATUS_LOGON_FAILURE;
                }
index 693ec35f866487bff90157f32b772983c49126ff..60ba043479b69d8395350177dddaa3d792309398 100644 (file)
@@ -27,6 +27,7 @@
 #include "libcli/auth/libcli_auth.h"
 #include "dsdb/samdb/samdb.h"
 #include "auth/credentials/credentials.h"
+#include "param/param.h"
 
 /* this default function can be used by mostly all backends
  * which don't want to set a challenge
@@ -72,7 +73,7 @@ NTSTATUS map_user_info(TALLOC_CTX *mem_ctx,
                d++;
                domain = d;
        } else {
-               domain = lp_workgroup();
+               domain = lp_workgroup(global_loadparm);
        }
 
        *user_info_mapped = talloc(mem_ctx, struct auth_usersupplied_info);
@@ -81,7 +82,7 @@ NTSTATUS map_user_info(TALLOC_CTX *mem_ctx,
        }
        talloc_reference(*user_info_mapped, user_info);
        **user_info_mapped = *user_info;
-       (*user_info_mapped)->mapped_state = True;
+       (*user_info_mapped)->mapped_state = true;
        (*user_info_mapped)->mapped.domain_name = talloc_strdup(*user_info_mapped, domain);
        (*user_info_mapped)->mapped.account_name = talloc_strdup(*user_info_mapped, account_name);
        talloc_free(account_name);
@@ -137,8 +138,8 @@ NTSTATUS map_user_info(TALLOC_CTX *mem_ctx,
                        }
                        
                        chall_blob = data_blob_talloc(mem_ctx, challenge, 8);
-                       if (lp_client_ntlmv2_auth()) {
-                               DATA_BLOB names_blob = NTLMv2_generate_names_blob(mem_ctx, lp_netbios_name(), lp_workgroup());
+                       if (lp_client_ntlmv2_auth(global_loadparm)) {
+                               DATA_BLOB names_blob = NTLMv2_generate_names_blob(mem_ctx, lp_netbios_name(global_loadparm), lp_workgroup(global_loadparm));
                                DATA_BLOB lmv2_response, ntlmv2_response, lmv2_session_key, ntlmv2_session_key;
                                
                                if (!SMBNTLMv2encrypt_hash(user_info_temp,
@@ -162,7 +163,7 @@ NTSTATUS map_user_info(TALLOC_CTX *mem_ctx,
                                SMBOWFencrypt(user_info_in->password.hash.nt->hash, challenge, blob.data);
 
                                user_info_temp->password.response.nt = blob;
-                               if (lp_client_lanman_auth() && user_info_in->password.hash.lanman) {
+                               if (lp_client_lanman_auth(global_loadparm) && user_info_in->password.hash.lanman) {
                                        DATA_BLOB lm_blob = data_blob_talloc(mem_ctx, NULL, 24);
                                        SMBOWFencrypt(user_info_in->password.hash.lanman->hash, challenge, blob.data);
                                        user_info_temp->password.response.lanman = lm_blob;
@@ -341,7 +342,7 @@ NTSTATUS make_server_info_netlogon_validation(TALLOC_CTX *mem_ctx,
        server_info->bad_password_count = base->bad_password_count;
        server_info->acct_flags = base->acct_flags;
 
-       server_info->authenticated = True;
+       server_info->authenticated = true;
 
        /* ensure we are never given NULL session keys */
 
@@ -412,7 +413,7 @@ NTSTATUS auth_anonymous_server_info(TALLOC_CTX *mem_ctx, struct auth_serversuppl
        server_info->home_drive = talloc_strdup(server_info, "");
        NT_STATUS_HAVE_NO_MEMORY(server_info->home_drive);
 
-       server_info->logon_server = talloc_strdup(server_info, lp_netbios_name());
+       server_info->logon_server = talloc_strdup(server_info, lp_netbios_name(global_loadparm));
        NT_STATUS_HAVE_NO_MEMORY(server_info->logon_server);
 
        server_info->last_logon = 0;
@@ -427,7 +428,7 @@ NTSTATUS auth_anonymous_server_info(TALLOC_CTX *mem_ctx, struct auth_serversuppl
 
        server_info->acct_flags = ACB_NORMAL;
 
-       server_info->authenticated = False;
+       server_info->authenticated = false;
 
        *_server_info = server_info;
 
@@ -482,7 +483,7 @@ NTSTATUS auth_system_server_info(TALLOC_CTX *mem_ctx, struct auth_serversupplied
        server_info->home_drive = talloc_strdup(server_info, "");
        NT_STATUS_HAVE_NO_MEMORY(server_info->home_drive);
 
-       server_info->logon_server = talloc_strdup(server_info, lp_netbios_name());
+       server_info->logon_server = talloc_strdup(server_info, lp_netbios_name(global_loadparm));
        NT_STATUS_HAVE_NO_MEMORY(server_info->logon_server);
 
        server_info->last_logon = 0;
@@ -497,7 +498,7 @@ NTSTATUS auth_system_server_info(TALLOC_CTX *mem_ctx, struct auth_serversupplied
 
        server_info->acct_flags = ACB_NORMAL;
 
-       server_info->authenticated = True;
+       server_info->authenticated = true;
 
        *_server_info = server_info;
 
@@ -561,7 +562,7 @@ NTSTATUS auth_anonymous_session_info(TALLOC_CTX *parent_ctx,
                return NT_STATUS_NO_MEMORY;
        }
 
-       cli_credentials_set_conf(session_info->credentials);
+       cli_credentials_set_conf(session_info->credentials, global_loadparm);
        cli_credentials_set_anonymous(session_info->credentials);
        
        *_session_info = session_info;
@@ -581,7 +582,7 @@ struct auth_session_info *anonymous_session(TALLOC_CTX *mem_ctx)
 }
 
 static NTSTATUS _auth_system_session_info(TALLOC_CTX *parent_ctx, 
-                                         BOOL anonymous_credentials, 
+                                         bool anonymous_credentials, 
                                          struct auth_session_info **_session_info) 
 {
        NTSTATUS nt_status;
@@ -607,7 +608,7 @@ static NTSTATUS _auth_system_session_info(TALLOC_CTX *parent_ctx,
                return NT_STATUS_NO_MEMORY;
        }
 
-       cli_credentials_set_conf(session_info->credentials);
+       cli_credentials_set_conf(session_info->credentials, global_loadparm);
 
        if (anonymous_credentials) {
                cli_credentials_set_anonymous(session_info->credentials);
@@ -622,8 +623,9 @@ static NTSTATUS _auth_system_session_info(TALLOC_CTX *parent_ctx,
 _PUBLIC_ NTSTATUS auth_system_session_info(TALLOC_CTX *parent_ctx, 
                                           struct auth_session_info **_session_info) 
 {
-       return _auth_system_session_info(parent_ctx, lp_parm_bool(-1,"system","anonymous", False), 
-                                        _session_info);
+       return _auth_system_session_info(parent_ctx, 
+                       lp_parm_bool(global_loadparm, NULL, "system", "anonymous", false), 
+                       _session_info);
 }
 
 /*
@@ -648,7 +650,7 @@ _PUBLIC_ struct auth_session_info *system_session_anon(TALLOC_CTX *mem_ctx)
 {
        NTSTATUS nt_status;
        struct auth_session_info *session_info = NULL;
-       nt_status = _auth_system_session_info(mem_ctx, False, &session_info);
+       nt_status = _auth_system_session_info(mem_ctx, false, &session_info);
        if (!NT_STATUS_IS_OK(nt_status)) {
                return NULL;
        }
index 95636d784365667415dcfdaddf9a8da39355caa5..2ec0dc7a562b87816f056b1bcd16ab3d85dce0e4 100644 (file)
@@ -109,7 +109,7 @@ static NTSTATUS winbind_check_password_samba3(struct auth_method_context *ctx,
        memcpy(request.data.auth_crap.nt_resp, user_info->password.response.nt.data,
               request.data.auth_crap.nt_resp_len);
 
-       result = winbindd_request(WINBINDD_PAM_AUTH_CRAP, &request, &response);
+       result = winbindd_request_response(WINBINDD_PAM_AUTH_CRAP, &request, &response);
 
        nt_status = NT_STATUS(response.data.auth.nt_status);
        NT_STATUS_NOT_OK_RETURN(nt_status);
index c32efb045f17551e57cfdb6c525cbb2fd27bf706..d6c0bbc0ba27d8b8941c4ec356cdc4535fee6477 100644 (file)
@@ -27,6 +27,7 @@
 #include "auth/credentials/credentials_krb5.h"
 #include "libcli/auth/libcli_auth.h"
 #include "lib/events/events.h"
+#include "param/param.h"
 
 /**
  * Create a new credentials structure
@@ -40,7 +41,7 @@ struct cli_credentials *cli_credentials_init(TALLOC_CTX *mem_ctx)
        }
 
        cred->netlogon_creds = NULL;
-       cred->machine_account_pending = False;
+       cred->machine_account_pending = false;
        cred->workstation_obtained = CRED_UNINITIALISED;
        cred->username_obtained = CRED_UNINITIALISED;
        cred->password_obtained = CRED_UNINITIALISED;
@@ -58,12 +59,12 @@ struct cli_credentials *cli_credentials_init(TALLOC_CTX *mem_ctx)
        cred->old_password = NULL;
        cred->smb_krb5_context = NULL;
        cred->salt_principal = NULL;
-       cred->machine_account = False;
+       cred->machine_account = false;
 
        cred->bind_dn = NULL;
 
        cred->tries = 3;
-       cred->callback_running = False;
+       cred->callback_running = false;
        cred->ev = NULL;
 
        cli_credentials_set_kerberos_state(cred, CRED_AUTO_USE_KERBEROS);
@@ -81,7 +82,7 @@ struct cli_credentials *cli_credentials_init_anon(TALLOC_CTX *mem_ctx)
        struct cli_credentials *anon_credentials;
 
        anon_credentials = cli_credentials_init(mem_ctx);
-       cli_credentials_set_conf(anon_credentials);
+       cli_credentials_set_conf(anon_credentials, global_loadparm);
        cli_credentials_set_anonymous(anon_credentials);
 
        return anon_credentials;
@@ -123,9 +124,9 @@ const char *cli_credentials_get_username(struct cli_credentials *cred)
 
        if (cred->username_obtained == CRED_CALLBACK && 
            !cred->callback_running) {
-               cred->callback_running = True;
+               cred->callback_running = true;
                cred->username = cred->username_cb(cred);
-               cred->callback_running = False;
+               cred->callback_running = false;
                cred->username_obtained = CRED_SPECIFIED;
                cli_credentials_invalidate_ccache(cred, cred->username_obtained);
        }
@@ -133,36 +134,36 @@ const char *cli_credentials_get_username(struct cli_credentials *cred)
        return cred->username;
 }
 
-BOOL cli_credentials_set_username(struct cli_credentials *cred, 
+bool cli_credentials_set_username(struct cli_credentials *cred, 
                                  const char *val, enum credentials_obtained obtained)
 {
        if (obtained >= cred->username_obtained) {
                cred->username = talloc_strdup(cred, val);
                cred->username_obtained = obtained;
                cli_credentials_invalidate_ccache(cred, cred->username_obtained);
-               return True;
+               return true;
        }
 
-       return False;
+       return false;
 }
 
-BOOL cli_credentials_set_username_callback(struct cli_credentials *cred,
+bool cli_credentials_set_username_callback(struct cli_credentials *cred,
                                  const char *(*username_cb) (struct cli_credentials *))
 {
        if (cred->username_obtained < CRED_CALLBACK) {
                cred->username_cb = username_cb;
                cred->username_obtained = CRED_CALLBACK;
-               return True;
+               return true;
        }
 
-       return False;
+       return false;
 }
 
-BOOL cli_credentials_set_bind_dn(struct cli_credentials *cred, 
+bool cli_credentials_set_bind_dn(struct cli_credentials *cred, 
                                 const char *bind_dn)
 {
        cred->bind_dn = talloc_strdup(cred, bind_dn);
-       return True;
+       return true;
 }
 
 /**
@@ -191,9 +192,9 @@ const char *cli_credentials_get_principal(struct cli_credentials *cred, TALLOC_C
 
        if (cred->principal_obtained == CRED_CALLBACK && 
            !cred->callback_running) {
-               cred->callback_running = True;
+               cred->callback_running = true;
                cred->principal = cred->principal_cb(cred);
-               cred->callback_running = False;
+               cred->callback_running = false;
                cred->principal_obtained = CRED_SPECIFIED;
                cli_credentials_invalidate_ccache(cred, cred->principal_obtained);
        }
@@ -212,7 +213,7 @@ const char *cli_credentials_get_principal(struct cli_credentials *cred, TALLOC_C
        return talloc_reference(mem_ctx, cred->principal);
 }
 
-BOOL cli_credentials_set_principal(struct cli_credentials *cred, 
+bool cli_credentials_set_principal(struct cli_credentials *cred, 
                                   const char *val, 
                                   enum credentials_obtained obtained)
 {
@@ -220,53 +221,53 @@ BOOL cli_credentials_set_principal(struct cli_credentials *cred,
                cred->principal = talloc_strdup(cred, val);
                cred->principal_obtained = obtained;
                cli_credentials_invalidate_ccache(cred, cred->principal_obtained);
-               return True;
+               return true;
        }
 
-       return False;
+       return false;
 }
 
 /* Set a callback to get the principal.  This could be a popup dialog,
  * a terminal prompt or similar.  */
 
-BOOL cli_credentials_set_principal_callback(struct cli_credentials *cred,
+bool cli_credentials_set_principal_callback(struct cli_credentials *cred,
                                  const char *(*principal_cb) (struct cli_credentials *))
 {
        if (cred->principal_obtained < CRED_CALLBACK) {
                cred->principal_cb = principal_cb;
                cred->principal_obtained = CRED_CALLBACK;
-               return True;
+               return true;
        }
 
-       return False;
+       return false;
 }
 
 /* Some of our tools are 'anonymous by default'.  This is a single
  * function to determine if authentication has been explicitly
  * requested */
 
-BOOL cli_credentials_authentication_requested(struct cli_credentials *cred) 
+bool cli_credentials_authentication_requested(struct cli_credentials *cred) 
 {
        if (cred->bind_dn) {
-               return True;
+               return true;
        }
 
        if (cli_credentials_is_anonymous(cred)){
-               return False;
+               return false;
        }
 
        if (cred->principal_obtained >= CRED_SPECIFIED) {
-               return True;
+               return true;
        }
        if (cred->username_obtained >= CRED_SPECIFIED) {
-               return True;
+               return true;
        }
 
        if (cli_credentials_get_kerberos_state(cred) == CRED_MUST_USE_KERBEROS) {
-               return True;
+               return true;
        }
 
-       return False;
+       return false;
 }
 
 /**
@@ -282,9 +283,9 @@ const char *cli_credentials_get_password(struct cli_credentials *cred)
 
        if (cred->password_obtained == CRED_CALLBACK && 
            !cred->callback_running) {
-               cred->callback_running = True;
+               cred->callback_running = true;
                cred->password = cred->password_cb(cred);
-               cred->callback_running = False;
+               cred->callback_running = false;
                cred->password_obtained = CRED_CALLBACK_RESULT;
                cli_credentials_invalidate_ccache(cred, cred->password_obtained);
        }
@@ -295,7 +296,7 @@ const char *cli_credentials_get_password(struct cli_credentials *cred)
 /* Set a password on the credentials context, including an indication
  * of 'how' the password was obtained */
 
-BOOL cli_credentials_set_password(struct cli_credentials *cred, 
+bool cli_credentials_set_password(struct cli_credentials *cred, 
                                  const char *val, 
                                  enum credentials_obtained obtained)
 {
@@ -305,23 +306,23 @@ BOOL cli_credentials_set_password(struct cli_credentials *cred,
                cli_credentials_invalidate_ccache(cred, cred->password_obtained);
 
                cred->nt_hash = NULL;
-               return True;
+               return true;
        }
 
-       return False;
+       return false;
 }
 
-BOOL cli_credentials_set_password_callback(struct cli_credentials *cred,
+bool cli_credentials_set_password_callback(struct cli_credentials *cred,
                                           const char *(*password_cb) (struct cli_credentials *))
 {
        if (cred->password_obtained < CRED_CALLBACK) {
                cred->password_cb = password_cb;
                cred->password_obtained = CRED_CALLBACK;
                cli_credentials_invalidate_ccache(cred, cred->password_obtained);
-               return True;
+               return true;
        }
 
-       return False;
+       return false;
 }
 
 /**
@@ -338,12 +339,12 @@ const char *cli_credentials_get_old_password(struct cli_credentials *cred)
        return cred->old_password;
 }
 
-BOOL cli_credentials_set_old_password(struct cli_credentials *cred, 
+bool cli_credentials_set_old_password(struct cli_credentials *cred, 
                                      const char *val, 
                                      enum credentials_obtained obtained)
 {
        cred->old_password = talloc_strdup(cred, val);
-       return True;
+       return true;
 }
 
 /**
@@ -374,7 +375,7 @@ const struct samr_Password *cli_credentials_get_nt_hash(struct cli_credentials *
        }
 }
 
-BOOL cli_credentials_set_nt_hash(struct cli_credentials *cred,
+bool cli_credentials_set_nt_hash(struct cli_credentials *cred,
                                 const struct samr_Password *nt_hash, 
                                 enum credentials_obtained obtained)
 {
@@ -386,10 +387,10 @@ BOOL cli_credentials_set_nt_hash(struct cli_credentials *cred,
                } else {
                        cred->nt_hash = NULL;
                }
-               return True;
+               return true;
        }
 
-       return False;
+       return false;
 }
 
 /**
@@ -406,9 +407,9 @@ const char *cli_credentials_get_domain(struct cli_credentials *cred)
 
        if (cred->domain_obtained == CRED_CALLBACK && 
            !cred->callback_running) {
-               cred->callback_running = True;
+               cred->callback_running = true;
                cred->domain = cred->domain_cb(cred);
-               cred->callback_running = False;
+               cred->callback_running = false;
                cred->domain_obtained = CRED_SPECIFIED;
                cli_credentials_invalidate_ccache(cred, cred->domain_obtained);
        }
@@ -417,7 +418,7 @@ const char *cli_credentials_get_domain(struct cli_credentials *cred)
 }
 
 
-BOOL cli_credentials_set_domain(struct cli_credentials *cred, 
+bool cli_credentials_set_domain(struct cli_credentials *cred, 
                                const char *val, 
                                enum credentials_obtained obtained)
 {
@@ -428,22 +429,22 @@ BOOL cli_credentials_set_domain(struct cli_credentials *cred,
                cred->domain = strupper_talloc(cred, val);
                cred->domain_obtained = obtained;
                cli_credentials_invalidate_ccache(cred, cred->domain_obtained);
-               return True;
+               return true;
        }
 
-       return False;
+       return false;
 }
 
-BOOL cli_credentials_set_domain_callback(struct cli_credentials *cred,
+bool cli_credentials_set_domain_callback(struct cli_credentials *cred,
                                         const char *(*domain_cb) (struct cli_credentials *))
 {
        if (cred->domain_obtained < CRED_CALLBACK) {
                cred->domain_cb = domain_cb;
                cred->domain_obtained = CRED_CALLBACK;
-               return True;
+               return true;
        }
 
-       return False;
+       return false;
 }
 
 /**
@@ -460,9 +461,9 @@ const char *cli_credentials_get_realm(struct cli_credentials *cred)
 
        if (cred->realm_obtained == CRED_CALLBACK && 
            !cred->callback_running) {
-               cred->callback_running = True;
+               cred->callback_running = true;
                cred->realm = cred->realm_cb(cred);
-               cred->callback_running = False;
+               cred->callback_running = false;
                cred->realm_obtained = CRED_SPECIFIED;
                cli_credentials_invalidate_ccache(cred, cred->realm_obtained);
        }
@@ -474,7 +475,7 @@ const char *cli_credentials_get_realm(struct cli_credentials *cred)
  * Set the realm for this credentials context, and force it to
  * uppercase for the sainity of our local kerberos libraries 
  */
-BOOL cli_credentials_set_realm(struct cli_credentials *cred, 
+bool cli_credentials_set_realm(struct cli_credentials *cred, 
                               const char *val, 
                               enum credentials_obtained obtained)
 {
@@ -482,22 +483,22 @@ BOOL cli_credentials_set_realm(struct cli_credentials *cred,
                cred->realm = strupper_talloc(cred, val);
                cred->realm_obtained = obtained;
                cli_credentials_invalidate_ccache(cred, cred->realm_obtained);
-               return True;
+               return true;
        }
 
-       return False;
+       return false;
 }
 
-BOOL cli_credentials_set_realm_callback(struct cli_credentials *cred,
+bool cli_credentials_set_realm_callback(struct cli_credentials *cred,
                                        const char *(*realm_cb) (struct cli_credentials *))
 {
        if (cred->realm_obtained < CRED_CALLBACK) {
                cred->realm_cb = realm_cb;
                cred->realm_obtained = CRED_CALLBACK;
-               return True;
+               return true;
        }
 
-       return False;
+       return false;
 }
 
 /**
@@ -511,38 +512,38 @@ const char *cli_credentials_get_workstation(struct cli_credentials *cred)
 {
        if (cred->workstation_obtained == CRED_CALLBACK && 
            !cred->callback_running) {
-               cred->callback_running = True;
+               cred->callback_running = true;
                cred->workstation = cred->workstation_cb(cred);
-               cred->callback_running = False;
+               cred->callback_running = false;
                cred->workstation_obtained = CRED_SPECIFIED;
        }
 
        return cred->workstation;
 }
 
-BOOL cli_credentials_set_workstation(struct cli_credentials *cred, 
+bool cli_credentials_set_workstation(struct cli_credentials *cred, 
                                     const char *val, 
                                     enum credentials_obtained obtained)
 {
        if (obtained >= cred->workstation_obtained) {
                cred->workstation = talloc_strdup(cred, val);
                cred->workstation_obtained = obtained;
-               return True;
+               return true;
        }
 
-       return False;
+       return false;
 }
 
-BOOL cli_credentials_set_workstation_callback(struct cli_credentials *cred,
+bool cli_credentials_set_workstation_callback(struct cli_credentials *cred,
                                              const char *(*workstation_cb) (struct cli_credentials *))
 {
        if (cred->workstation_obtained < CRED_CALLBACK) {
                cred->workstation_cb = workstation_cb;
                cred->workstation_obtained = CRED_CALLBACK;
-               return True;
+               return true;
        }
 
-       return False;
+       return false;
 }
 
 /**
@@ -620,12 +621,13 @@ const char *cli_credentials_get_unparsed_name(struct cli_credentials *credential
  *
  * @param cred Credentials structure to fill in
  */
-void cli_credentials_set_conf(struct cli_credentials *cred)
+void cli_credentials_set_conf(struct cli_credentials *cred, 
+                             struct loadparm_context *lp_ctx)
 {
        cli_credentials_set_username(cred, "", CRED_UNINITIALISED);
-       cli_credentials_set_domain(cred, lp_workgroup(), CRED_UNINITIALISED);
-       cli_credentials_set_workstation(cred, lp_netbios_name(), CRED_UNINITIALISED);
-       cli_credentials_set_realm(cred, lp_realm(), CRED_UNINITIALISED);
+       cli_credentials_set_domain(cred, lp_workgroup(lp_ctx), CRED_UNINITIALISED);
+       cli_credentials_set_workstation(cred, lp_netbios_name(lp_ctx), CRED_UNINITIALISED);
+       cli_credentials_set_realm(cred, lp_realm(lp_ctx), CRED_UNINITIALISED);
 }
 
 /**
@@ -638,7 +640,7 @@ void cli_credentials_guess(struct cli_credentials *cred)
 {
        char *p;
 
-       cli_credentials_set_conf(cred);
+       cli_credentials_set_conf(cred, global_loadparm);
        
        if (getenv("LOGNAME")) {
                cli_credentials_set_username(cred, getenv("LOGNAME"), CRED_GUESS_ENV);
@@ -656,7 +658,8 @@ void cli_credentials_guess(struct cli_credentials *cred)
        }
 
        if (getenv("PASSWD_FD")) {
-               cli_credentials_parse_password_fd(cred, atoi(getenv("PASSWD_FD")), CRED_GUESS_FILE);
+               cli_credentials_parse_password_fd(cred, atoi(getenv("PASSWD_FD")), 
+                                                 CRED_GUESS_FILE);
        }
        
        p = getenv("PASSWD_FILE");
@@ -719,10 +722,10 @@ void cli_credentials_set_anonymous(struct cli_credentials *cred)
 
 /**
  * Describe a credentials context as anonymous or authenticated
- * @retval True if anonymous, False if a username is specified
+ * @retval true if anonymous, false if a username is specified
  */
 
-BOOL cli_credentials_is_anonymous(struct cli_credentials *cred)
+bool cli_credentials_is_anonymous(struct cli_credentials *cred)
 {
        const char *username;
        
@@ -736,10 +739,10 @@ BOOL cli_credentials_is_anonymous(struct cli_credentials *cred)
         * here - anonymous is "", not NULL, which is 'never specified,
         * never guessed', ie programmer bug */
        if (!username[0]) {
-               return True;
+               return true;
        }
 
-       return False;
+       return false;
 }
 
 /**
@@ -750,10 +753,10 @@ BOOL cli_credentials_is_anonymous(struct cli_credentials *cred)
  *
  * @retval whether the credentials struct is finished
  */
-BOOL cli_credentials_wrong_password(struct cli_credentials *cred)
+bool cli_credentials_wrong_password(struct cli_credentials *cred)
 {
        if (cred->password_obtained != CRED_CALLBACK_RESULT) {
-               return False;
+               return false;
        }
        
        cred->password_obtained = CRED_CALLBACK;
index 1cecb97055dd0d961f8963ebba5b64523920f1e9..7ea37e40d15fbb2d165ffa85aa6546cc798e5b8f 100644 (file)
@@ -22,6 +22,7 @@
 #ifndef __CREDENTIALS_H__
 #define __CREDENTIALS_H__
 
+#include "util/data_blob.h"
 #include "librpc/gen_ndr/misc.h"
 
 struct ccache_container;
@@ -126,6 +127,7 @@ struct cli_credentials {
 };
 
 struct ldb_context;
+struct loadparm_context;
 #include "auth/credentials/credentials_proto.h"
 
 #endif /* __CREDENTIALS_H__ */
index 2b6bc4f9d6c7f1ea0a0042a0ee1de68f2bf856f8..1708fa5841d123ef596ae63c731d2d9df447361a 100644 (file)
@@ -29,6 +29,7 @@
 #include "db_wrap.h"
 #include "auth/credentials/credentials.h"
 #include "auth/credentials/credentials_krb5.h"
+#include "param/param.h"
 
 /**
  * Read a file descriptor, and parse it for a password (eg from a file or stdin)
@@ -38,7 +39,7 @@
  * @param obtained This enum describes how 'specified' this password is
  */
 
-BOOL cli_credentials_parse_password_fd(struct cli_credentials *credentials, 
+bool cli_credentials_parse_password_fd(struct cli_credentials *credentials, 
                                       int fd, enum credentials_obtained obtained)
 {
        char *p;
@@ -60,18 +61,18 @@ BOOL cli_credentials_parse_password_fd(struct cli_credentials *credentials,
                                break;
                        } else {
                                fprintf(stderr, "Error reading password from file descriptor %d: %s\n", fd, "empty password\n");
-                               return False;
+                               return false;
                        }
 
                default:
                        fprintf(stderr, "Error reading password from file descriptor %d: %s\n",
                                        fd, strerror(errno));
-                       return False;
+                       return false;
                }
        }
 
        cli_credentials_set_password(credentials, pass, obtained);
-       return True;
+       return true;
 }
 
 /**
@@ -82,15 +83,15 @@ BOOL cli_credentials_parse_password_fd(struct cli_credentials *credentials,
  * @param obtained This enum describes how 'specified' this password is
  */
 
-BOOL cli_credentials_parse_password_file(struct cli_credentials *credentials, const char *file, enum credentials_obtained obtained)
+bool cli_credentials_parse_password_file(struct cli_credentials *credentials, const char *file, enum credentials_obtained obtained)
 {
        int fd = open(file, O_RDONLY, 0);
-       BOOL ret;
+       bool ret;
 
        if (fd < 0) {
                fprintf(stderr, "Error opening password file %s: %s\n",
                                file, strerror(errno));
-               return False;
+               return false;
        }
 
        ret = cli_credentials_parse_password_fd(credentials, fd, obtained);
@@ -108,7 +109,7 @@ BOOL cli_credentials_parse_password_file(struct cli_credentials *credentials, co
  * @param obtained This enum describes how 'specified' this password is
  */
 
-BOOL cli_credentials_parse_file(struct cli_credentials *cred, const char *file, enum credentials_obtained obtained) 
+bool cli_credentials_parse_file(struct cli_credentials *cred, const char *file, enum credentials_obtained obtained) 
 {
        uint16_t len = 0;
        char *ptr, *val, *param;
@@ -121,7 +122,7 @@ BOOL cli_credentials_parse_file(struct cli_credentials *cred, const char *file,
        {
                /* fail if we can't open the credentials file */
                d_printf("ERROR: Unable to open credentials file!\n");
-               return False;
+               return false;
        }
 
        for (i = 0; i < numlines; i++) {
@@ -157,7 +158,7 @@ BOOL cli_credentials_parse_file(struct cli_credentials *cred, const char *file,
 
        talloc_free(lines);
 
-       return True;
+       return true;
 }
 
 
@@ -202,10 +203,10 @@ NTSTATUS cli_credentials_set_secrets(struct cli_credentials *cred,
        const char *keytab;
        
        /* ok, we are going to get it now, don't recurse back here */
-       cred->machine_account_pending = False;
+       cred->machine_account_pending = false;
 
        /* some other parts of the system will key off this */
-       cred->machine_account = True;
+       cred->machine_account = true;
 
        mem_ctx = talloc_named(cred, 0, "cli_credentials fetch machine password");
 
@@ -307,7 +308,7 @@ NTSTATUS cli_credentials_set_secrets(struct cli_credentials *cred,
        } else {
                keytab = ldb_msg_find_attr_as_string(msgs[0], "privateKeytab", NULL);
                if (keytab) {
-                       keytab = talloc_asprintf(mem_ctx, "FILE:%s", private_path(mem_ctx, keytab));
+                       keytab = talloc_asprintf(mem_ctx, "FILE:%s", private_path(mem_ctx, global_loadparm, keytab));
                        if (keytab) {
                                cli_credentials_set_keytab_name(cred, keytab, CRED_SPECIFIED);
                        }
@@ -330,7 +331,7 @@ NTSTATUS cli_credentials_set_machine_account(struct cli_credentials *cred)
        /* Bleh, nasty recursion issues: We are setting a machine
         * account here, so we don't want the 'pending' flag around
         * any more */
-       cred->machine_account_pending = False;
+       cred->machine_account_pending = false;
        filter = talloc_asprintf(cred, SECRETS_PRIMARY_DOMAIN_FILTER, 
                                       cli_credentials_get_domain(cred));
        return cli_credentials_set_secrets(cred, NULL, SECRETS_PRIMARY_DOMAIN_DN,
@@ -349,7 +350,7 @@ NTSTATUS cli_credentials_set_krbtgt(struct cli_credentials *cred)
        /* Bleh, nasty recursion issues: We are setting a machine
         * account here, so we don't want the 'pending' flag around
         * any more */
-       cred->machine_account_pending = False;
+       cred->machine_account_pending = false;
        filter = talloc_asprintf(cred, SECRETS_KRBTGT_SEARCH,
                                       cli_credentials_get_realm(cred),
                                       cli_credentials_get_domain(cred));
@@ -370,7 +371,7 @@ NTSTATUS cli_credentials_set_stored_principal(struct cli_credentials *cred,
        /* Bleh, nasty recursion issues: We are setting a machine
         * account here, so we don't want the 'pending' flag around
         * any more */
-       cred->machine_account_pending = False;
+       cred->machine_account_pending = false;
        filter = talloc_asprintf(cred, SECRETS_PRINCIPAL_SEARCH,
                                 cli_credentials_get_realm(cred),
                                 cli_credentials_get_domain(cred),
@@ -390,7 +391,7 @@ NTSTATUS cli_credentials_set_stored_principal(struct cli_credentials *cred,
  */
 void cli_credentials_set_machine_account_pending(struct cli_credentials *cred)
 {
-       cred->machine_account_pending = True;
+       cred->machine_account_pending = true;
 }
 
 
index db77ed13a7d210caaecb62cdba6181df111c50e4..0bce35e1c58eb4eefa4fdbf9c55ac71d59a37fa0 100644 (file)
@@ -248,6 +248,7 @@ static NTSTATUS gensec_sasl_unwrap_packets(struct gensec_security *gensec_securi
        return sasl_nt_status(sasl_ret);
 
 }
+
 static NTSTATUS gensec_sasl_wrap_packets(struct gensec_security *gensec_security, 
                                        TALLOC_CTX *out_mem_ctx, 
                                        const DATA_BLOB *in, 
@@ -271,7 +272,7 @@ static NTSTATUS gensec_sasl_wrap_packets(struct gensec_security *gensec_security
 }
 
 /* Try to figure out what features we actually got on the connection */
-static BOOL gensec_sasl_have_feature(struct gensec_security *gensec_security, 
+static bool gensec_sasl_have_feature(struct gensec_security *gensec_security, 
                                     uint32_t feature) 
 {
        struct gensec_sasl_state *gensec_sasl_state = talloc_get_type(gensec_security->private_data,
@@ -279,25 +280,25 @@ static BOOL gensec_sasl_have_feature(struct gensec_security *gensec_security,
        sasl_ssf_t ssf;
        int sasl_ret = sasl_getprop(gensec_sasl_state->conn, SASL_SSF, &ssf);
        if (sasl_ret != SASL_OK) {
-               return False;
+               return false;
        }
        if (feature & GENSEC_FEATURE_SIGN) {
                if (ssf == 0) {
-                       return False;
+                       return false;
                }
                if (ssf >= 1) {
-                       return True;
+                       return true;
                }
        }
        if (feature & GENSEC_FEATURE_SEAL) {
                if (ssf <= 1) {
-                       return False;
+                       return false;
                }
                if (ssf > 1) {
-                       return True;
+                       return true;
                }
        }
-       return False;
+       return false;
 }
 
 /* This could in theory work with any SASL mech */
@@ -309,7 +310,7 @@ static const struct gensec_security_ops gensec_sasl_security_ops = {
        .wrap_packets     = gensec_sasl_wrap_packets,
        .unwrap_packets   = gensec_sasl_unwrap_packets,
        .have_feature     = gensec_sasl_have_feature,
-       .enabled          = True,
+       .enabled          = true,
        .priority         = GENSEC_SASL
 };
 
index 25366dc246d45c2b6cd4df195cf8687930dc09ab..4821e6a19bd39ef3e32789144fdd86cce76c6046 100644 (file)
@@ -27,6 +27,7 @@
 #include "librpc/rpc/dcerpc.h"
 #include "auth/credentials/credentials.h"
 #include "auth/gensec/gensec.h"
+#include "param/param.h"
 
 /* the list of currently registered GENSEC backends */
 static struct gensec_security_ops **generic_security_ops;
@@ -46,10 +47,15 @@ struct gensec_security_ops **gensec_security_all(void)
 
 struct gensec_security_ops **gensec_use_kerberos_mechs(TALLOC_CTX *mem_ctx, 
                                                       struct gensec_security_ops **old_gensec_list, 
-                                                      enum credentials_use_kerberos use_kerberos) 
+                                                      struct cli_credentials *creds)
 {
        struct gensec_security_ops **new_gensec_list;
        int i, j, num_mechs_in;
+       enum credentials_use_kerberos use_kerberos = CRED_AUTO_USE_KERBEROS;
+
+       if (creds) {
+               use_kerberos = cli_credentials_get_kerberos_state(creds);
+       }
 
        if (use_kerberos == CRED_AUTO_USE_KERBEROS) {
                if (!talloc_reference(mem_ctx, old_gensec_list)) {
@@ -79,13 +85,13 @@ struct gensec_security_ops **gensec_use_kerberos_mechs(TALLOC_CTX *mem_ctx,
                }
                switch (use_kerberos) {
                case CRED_DONT_USE_KERBEROS:
-                       if (old_gensec_list[i]->kerberos == False) {
+                       if (old_gensec_list[i]->kerberos == false) {
                                new_gensec_list[j] = old_gensec_list[i];
                                j++;
                        }
                        break;
                case CRED_MUST_USE_KERBEROS:
-                       if (old_gensec_list[i]->kerberos == True) {
+                       if (old_gensec_list[i]->kerberos == true) {
                                new_gensec_list[j] = old_gensec_list[i];
                                j++;
                        }
@@ -111,7 +117,6 @@ struct gensec_security_ops **gensec_security_mechs(struct gensec_security *gense
                }
                return backends;
        } else {
-               enum credentials_use_kerberos use_kerberos;
                struct cli_credentials *creds = gensec_get_credentials(gensec_security);
                if (!creds) {
                        if (!talloc_reference(mem_ctx, backends)) {
@@ -119,8 +124,7 @@ struct gensec_security_ops **gensec_security_mechs(struct gensec_security *gense
                        }
                        return backends;
                }
-               use_kerberos = cli_credentials_get_kerberos_state(creds);
-               return gensec_use_kerberos_mechs(mem_ctx, backends, use_kerberos);
+               return gensec_use_kerberos_mechs(mem_ctx, backends, creds);
        }
 }
 
@@ -485,7 +489,7 @@ static NTSTATUS gensec_start(TALLOC_CTX *mem_ctx,
        ZERO_STRUCT((*gensec_security)->peer_addr);
        ZERO_STRUCT((*gensec_security)->my_addr);
 
-       (*gensec_security)->subcontext = False;
+       (*gensec_security)->subcontext = false;
        (*gensec_security)->want_features = 0;
        
        if (ev == NULL) {
@@ -521,7 +525,7 @@ _PUBLIC_ NTSTATUS gensec_subcontext_start(TALLOC_CTX *mem_ctx,
        (*gensec_security)->ops = NULL;
        (*gensec_security)->private_data = NULL;
 
-       (*gensec_security)->subcontext = True;
+       (*gensec_security)->subcontext = true;
        (*gensec_security)->event_ctx = parent->event_ctx;
        (*gensec_security)->msg_ctx = parent->msg_ctx;
 
@@ -1026,11 +1030,11 @@ _PUBLIC_ void gensec_want_feature(struct gensec_security *gensec_security,
  *
  */
 
-_PUBLIC_ BOOL gensec_have_feature(struct gensec_security *gensec_security,
+_PUBLIC_ bool gensec_have_feature(struct gensec_security *gensec_security,
                         uint32_t feature) 
 {
        if (!gensec_security->ops->have_feature) {
-               return False;
+               return false;
        }
        
        /* We might 'have' features that we don't 'want', because the
@@ -1104,7 +1108,7 @@ _PUBLIC_ NTSTATUS gensec_set_target_hostname(struct gensec_security *gensec_secu
 _PUBLIC_ const char *gensec_get_target_hostname(struct gensec_security *gensec_security) 
 {
        /* We allow the target hostname to be overriden for testing purposes */
-       const char *target_hostname = lp_parm_string(-1, "gensec", "target_hostname");
+       const char *target_hostname = lp_parm_string(global_loadparm, NULL, "gensec", "target_hostname");
        if (target_hostname) {
                return target_hostname;
        }
@@ -1202,7 +1206,7 @@ const char *gensec_get_target_principal(struct gensec_security *gensec_security)
 */
 NTSTATUS gensec_register(const struct gensec_security_ops *ops)
 {
-       if (!lp_parm_bool(-1, "gensec", ops->name, ops->enabled)) {
+       if (!lp_parm_bool(global_loadparm, NULL, "gensec", ops->name, ops->enabled)) {
                DEBUG(2,("gensec subsystem %s is disabled\n", ops->name));
                return NT_STATUS_OK;
        }
@@ -1222,7 +1226,7 @@ NTSTATUS gensec_register(const struct gensec_security_ops *ops)
                return NT_STATUS_NO_MEMORY;
        }
 
-       generic_security_ops[gensec_num_backends] = discard_const(ops);
+       generic_security_ops[gensec_num_backends] = discard_const_p(struct gensec_security_ops, ops);
        gensec_num_backends++;
        generic_security_ops[gensec_num_backends] = NULL;
 
@@ -1257,15 +1261,15 @@ static int sort_gensec(struct gensec_security_ops **gs1, struct gensec_security_
 */
 NTSTATUS gensec_init(void)
 {
-       static BOOL initialized = False;
+       static bool initialized = false;
 
        init_module_fn static_init[] = STATIC_gensec_MODULES;
        init_module_fn *shared_init;
 
        if (initialized) return NT_STATUS_OK;
-       initialized = True;
+       initialized = true;
        
-       shared_init = load_samba_modules(NULL, "gensec");
+       shared_init = load_samba_modules(NULL, global_loadparm, "gensec");
 
        run_init_functions(static_init);
        run_init_functions(shared_init);
index 48a2903513330a38bd8a2476e279f9afaeaefe6e..bda740cc86229e70998f9f1f23455ea64e5742c0 100644 (file)
@@ -39,8 +39,6 @@ enum gensec_priority {
        GENSEC_OTHER = 0
 };
 
-enum credentials_use_kerberos;
-
 struct gensec_security;
 struct gensec_target {
        const char *principal;
@@ -63,6 +61,7 @@ enum gensec_role
 };
 
 struct auth_session_info;
+struct cli_credentials;
 
 struct gensec_update_request {
        struct gensec_security *gensec_security;
index 3c66a032d5948089e460e4e5e0a3ac03daac4323..dceb10e7b6204e663553f66587be12da209a7bc2 100644 (file)
@@ -34,6 +34,7 @@
 #include "auth/credentials/credentials.h"
 #include "auth/credentials/credentials_krb5.h"
 #include "auth/gensec/gensec.h"
+#include "param/param.h"
 
 enum gensec_gssapi_sasl_state 
 {
@@ -64,7 +65,7 @@ struct gensec_gssapi_state {
 
        gss_cred_id_t delegated_cred_handle;
 
-       BOOL sasl; /* We have two different mechs in this file: One
+       bool sasl; /* We have two different mechs in this file: One
                    * for SASL wrapped GSSAPI and another for normal
                    * GSSAPI */
        enum gensec_gssapi_sasl_state sasl_state;
@@ -154,9 +155,9 @@ static NTSTATUS gensec_gssapi_start(struct gensec_security *gensec_security)
        
        gensec_gssapi_state->gss_exchange_count = 0;
        gensec_gssapi_state->max_wrap_buf_size
-               = lp_parm_int(-1, "gensec_gssapi", "max wrap buf size", 65536);
+               = lp_parm_int(global_loadparm, NULL, "gensec_gssapi", "max wrap buf size", 65536);
                
-       gensec_gssapi_state->sasl = False;
+       gensec_gssapi_state->sasl = false;
        gensec_gssapi_state->sasl_state = STAGE_GSS_NEG;
 
        gensec_security->private_data = gensec_gssapi_state;
@@ -169,16 +170,16 @@ static NTSTATUS gensec_gssapi_start(struct gensec_security *gensec_security)
        gensec_gssapi_state->input_chan_bindings = GSS_C_NO_CHANNEL_BINDINGS;
        
        gensec_gssapi_state->want_flags = 0;
-       if (lp_parm_bool(-1, "gensec_gssapi", "mutual", True)) {
+       if (lp_parm_bool(global_loadparm, NULL, "gensec_gssapi", "mutual", true)) {
                gensec_gssapi_state->want_flags |= GSS_C_MUTUAL_FLAG;
        }
-       if (lp_parm_bool(-1, "gensec_gssapi", "delegation", True)) {
+       if (lp_parm_bool(global_loadparm, NULL, "gensec_gssapi", "delegation", true)) {
                gensec_gssapi_state->want_flags |= GSS_C_DELEG_FLAG;
        }
-       if (lp_parm_bool(-1, "gensec_gssapi", "replay", True)) {
+       if (lp_parm_bool(global_loadparm, NULL, "gensec_gssapi", "replay", true)) {
                gensec_gssapi_state->want_flags |= GSS_C_REPLAY_FLAG;
        }
-       if (lp_parm_bool(-1, "gensec_gssapi", "sequence", True)) {
+       if (lp_parm_bool(global_loadparm, NULL, "gensec_gssapi", "sequence", true)) {
                gensec_gssapi_state->want_flags |= GSS_C_SEQUENCE_FLAG;
        }
 
@@ -212,10 +213,10 @@ static NTSTATUS gensec_gssapi_start(struct gensec_security *gensec_security)
                talloc_free(gensec_gssapi_state);
                return NT_STATUS_INTERNAL_ERROR;
        }
-       if (lp_realm() && *lp_realm()) {
-               char *upper_realm = strupper_talloc(gensec_gssapi_state, lp_realm());
+       if (lp_realm(global_loadparm) && *lp_realm(global_loadparm)) {
+               char *upper_realm = strupper_talloc(gensec_gssapi_state, lp_realm(global_loadparm));
                if (!upper_realm) {
-                       DEBUG(1,("gensec_krb5_start: could not uppercase realm: %s\n", lp_realm()));
+                       DEBUG(1,("gensec_krb5_start: could not uppercase realm: %s\n", lp_realm(global_loadparm)));
                        talloc_free(gensec_gssapi_state);
                        return NT_STATUS_NO_MEMORY;
                }
@@ -229,7 +230,7 @@ static NTSTATUS gensec_gssapi_start(struct gensec_security *gensec_security)
        }
 
        /* don't do DNS lookups of any kind, it might/will fail for a netbios name */
-       ret = gsskrb5_set_dns_canonicalize(lp_parm_bool(-1, "krb5", "set_dns_canonicalize", false));
+       ret = gsskrb5_set_dns_canonicalize(lp_parm_bool(global_loadparm, NULL, "krb5", "set_dns_canonicalize", false));
        if (ret) {
                DEBUG(1,("gensec_krb5_start: gsskrb5_set_dns_canonicalize failed\n"));
                talloc_free(gensec_gssapi_state);
@@ -290,7 +291,7 @@ static NTSTATUS gensec_gssapi_sasl_server_start(struct gensec_security *gensec_s
 
        if (NT_STATUS_IS_OK(nt_status)) {
                gensec_gssapi_state = talloc_get_type(gensec_security->private_data, struct gensec_gssapi_state);
-               gensec_gssapi_state->sasl = True;
+               gensec_gssapi_state->sasl = true;
        }
        return nt_status;
 }
@@ -331,7 +332,7 @@ static NTSTATUS gensec_gssapi_client_start(struct gensec_security *gensec_securi
        gensec_gssapi_state->gss_oid = gss_mech_krb5;
 
        principal = gensec_get_target_principal(gensec_security);
-       if (principal && lp_client_use_spnego_principal()) {
+       if (principal && lp_client_use_spnego_principal(global_loadparm)) {
                name_type = GSS_C_NULL_OID;
        } else {
                principal = talloc_asprintf(gensec_gssapi_state, "%s@%s", 
@@ -385,7 +386,7 @@ static NTSTATUS gensec_gssapi_sasl_client_start(struct gensec_security *gensec_s
 
        if (NT_STATUS_IS_OK(nt_status)) {
                gensec_gssapi_state = talloc_get_type(gensec_security->private_data, struct gensec_gssapi_state);
-               gensec_gssapi_state->sasl = True;
+               gensec_gssapi_state->sasl = true;
        }
        return nt_status;
 }
@@ -631,7 +632,7 @@ static NTSTATUS gensec_gssapi_update(struct gensec_security *gensec_security,
 
                        maj_stat = gss_wrap(&min_stat, 
                                            gensec_gssapi_state->gssapi_context, 
-                                           False,
+                                           false,
                                            GSS_C_QOP_DEFAULT,
                                            &input_token,
                                            &conf_state,
@@ -696,7 +697,7 @@ static NTSTATUS gensec_gssapi_update(struct gensec_security *gensec_security,
 
                        maj_stat = gss_wrap(&min_stat, 
                                            gensec_gssapi_state->gssapi_context, 
-                                           False,
+                                           false,
                                            GSS_C_QOP_DEFAULT,
                                            &input_token,
                                            &conf_state,
@@ -1109,7 +1110,7 @@ static NTSTATUS gensec_gssapi_check_packet(struct gensec_security *gensec_securi
 }
 
 /* Try to figure out what features we actually got on the connection */
-static BOOL gensec_gssapi_have_feature(struct gensec_security *gensec_security, 
+static bool gensec_gssapi_have_feature(struct gensec_security *gensec_security, 
                                       uint32_t feature) 
 {
        struct gensec_gssapi_state *gensec_gssapi_state
@@ -1135,7 +1136,7 @@ static BOOL gensec_gssapi_have_feature(struct gensec_security *gensec_security,
        if (feature & GENSEC_FEATURE_SESSION_KEY) {
                /* Only for GSSAPI/Krb5 */
                if (gss_oid_equal(gensec_gssapi_state->gss_oid, gss_mech_krb5)) {
-                       return True;
+                       return true;
                }
        }
        if (feature & GENSEC_FEATURE_DCE_STYLE) {
@@ -1143,9 +1144,9 @@ static BOOL gensec_gssapi_have_feature(struct gensec_security *gensec_security,
        }
        /* We can always do async (rather than strict request/reply) packets.  */
        if (feature & GENSEC_FEATURE_ASYNC_REPLIES) {
-               return True;
+               return true;
        }
-       return False;
+       return false;
 }
 
 /*
@@ -1229,7 +1230,9 @@ static NTSTATUS gensec_gssapi_session_info(struct gensec_security *gensec_securi
                return NT_STATUS_FOOBAR;
        }
 
-       principal_string = talloc_strndup(mem_ctx, name_token.value, name_token.length);
+       principal_string = talloc_strndup(mem_ctx, 
+                                         (const char *)name_token.value, 
+                                         name_token.length);
 
        gss_release_buffer(&min_stat, &name_token);
 
@@ -1314,7 +1317,7 @@ static NTSTATUS gensec_gssapi_session_info(struct gensec_security *gensec_securi
                        talloc_free(mem_ctx);
                        return nt_status;
                }
-       } else if (!lp_parm_bool(-1, "gensec", "require_pac", False)) {
+       } else if (!lp_parm_bool(global_loadparm, NULL, "gensec", "require_pac", false)) {
                DEBUG(1, ("Unable to find PAC, resorting to local user lookup: %s\n",
                          gssapi_error_string(mem_ctx, maj_stat, min_stat, gensec_gssapi_state->gss_oid)));
                nt_status = sam_get_server_info_principal(mem_ctx, principal_string,
@@ -1356,7 +1359,7 @@ static NTSTATUS gensec_gssapi_session_info(struct gensec_security *gensec_securi
                }
 
                cli_credentials_set_event_context(session_info->credentials, gensec_security->event_ctx);
-               cli_credentials_set_conf(session_info->credentials);
+               cli_credentials_set_conf(session_info->credentials, global_loadparm);
                /* Just so we don't segfault trying to get at a username */
                cli_credentials_set_anonymous(session_info->credentials);
                
@@ -1411,8 +1414,8 @@ static const struct gensec_security_ops gensec_gssapi_spnego_security_ops = {
        .wrap           = gensec_gssapi_wrap,
        .unwrap         = gensec_gssapi_unwrap,
        .have_feature   = gensec_gssapi_have_feature,
-       .enabled        = False,
-       .kerberos       = True,
+       .enabled        = false,
+       .kerberos       = true,
        .priority       = GENSEC_GSSAPI
 };
 
@@ -1434,8 +1437,8 @@ static const struct gensec_security_ops gensec_gssapi_krb5_security_ops = {
        .wrap           = gensec_gssapi_wrap,
        .unwrap         = gensec_gssapi_unwrap,
        .have_feature   = gensec_gssapi_have_feature,
-       .enabled        = True,
-       .kerberos       = True,
+       .enabled        = true,
+       .kerberos       = true,
        .priority       = GENSEC_GSSAPI
 };
 
@@ -1453,8 +1456,8 @@ static const struct gensec_security_ops gensec_gssapi_sasl_krb5_security_ops = {
        .wrap             = gensec_gssapi_wrap,
        .unwrap           = gensec_gssapi_unwrap,
        .have_feature     = gensec_gssapi_have_feature,
-       .enabled          = True,
-       .kerberos         = True,
+       .enabled          = true,
+       .kerberos         = true,
        .priority         = GENSEC_GSSAPI
 };
 
index 87ce571fc02493a9dea8998cc1182e74634c7a67..ca48e850898525eea765cda2d2ad99d32a8e47ed 100644 (file)
@@ -36,6 +36,7 @@
 #include "auth/credentials/credentials.h"
 #include "auth/credentials/credentials_krb5.h"
 #include "auth/gensec/gensec.h"
+#include "param/param.h"
 
 enum GENSEC_KRB5_STATE {
        GENSEC_KRB5_SERVER_START,
@@ -53,7 +54,7 @@ struct gensec_krb5_state {
        krb5_data enc_ticket;
        krb5_keyblock *keyblock;
        krb5_ticket *ticket;
-       BOOL gssapi;
+       bool gssapi;
 };
 
 static int gensec_krb5_destroy(struct gensec_krb5_state *gensec_krb5_state)
@@ -111,7 +112,7 @@ static NTSTATUS gensec_krb5_start(struct gensec_security *gensec_security)
        gensec_krb5_state->keyblock = NULL;
        gensec_krb5_state->session_key = data_blob(NULL, 0);
        gensec_krb5_state->pac = data_blob(NULL, 0);
-       gensec_krb5_state->gssapi = False;
+       gensec_krb5_state->gssapi = false;
 
        talloc_set_destructor(gensec_krb5_state, gensec_krb5_destroy); 
 
@@ -191,7 +192,7 @@ static NTSTATUS gensec_krb5_server_start(struct gensec_security *gensec_security
                return nt_status;
        }
        
-       gensec_krb5_state = gensec_security->private_data;
+       gensec_krb5_state = (struct gensec_krb5_state *)gensec_security->private_data;
        gensec_krb5_state->state_position = GENSEC_KRB5_SERVER_START;
 
        return NT_STATUS_OK;
@@ -203,8 +204,8 @@ static NTSTATUS gensec_fake_gssapi_krb5_server_start(struct gensec_security *gen
 
        if (NT_STATUS_IS_OK(nt_status)) {
                struct gensec_krb5_state *gensec_krb5_state;
-               gensec_krb5_state = gensec_security->private_data;
-               gensec_krb5_state->gssapi = True;
+               gensec_krb5_state = (struct gensec_krb5_state *)gensec_security->private_data;
+               gensec_krb5_state->gssapi = true;
        }
        return nt_status;
 }
@@ -240,7 +241,7 @@ static NTSTATUS gensec_krb5_client_start(struct gensec_security *gensec_security
                return nt_status;
        }
 
-       gensec_krb5_state = gensec_security->private_data;
+       gensec_krb5_state = (struct gensec_krb5_state *)gensec_security->private_data;
        gensec_krb5_state->state_position = GENSEC_KRB5_CLIENT_START;
 
        principal = gensec_get_target_principal(gensec_security);
@@ -260,7 +261,7 @@ static NTSTATUS gensec_krb5_client_start(struct gensec_security *gensec_security
        }
        in_data.length = 0;
        
-       if (principal && lp_client_use_spnego_principal()) {
+       if (principal && lp_client_use_spnego_principal(global_loadparm)) {
                krb5_principal target_principal;
                ret = krb5_parse_name(gensec_krb5_state->smb_krb5_context->krb5_context, principal,
                                      &target_principal);
@@ -327,8 +328,8 @@ static NTSTATUS gensec_fake_gssapi_krb5_client_start(struct gensec_security *gen
 
        if (NT_STATUS_IS_OK(nt_status)) {
                struct gensec_krb5_state *gensec_krb5_state;
-               gensec_krb5_state = gensec_security->private_data;
-               gensec_krb5_state->gssapi = True;
+               gensec_krb5_state = (struct gensec_krb5_state *)gensec_security->private_data;
+               gensec_krb5_state->gssapi = true;
        }
        return nt_status;
 }
@@ -368,7 +369,7 @@ static NTSTATUS gensec_krb5_update(struct gensec_security *gensec_security,
                                   TALLOC_CTX *out_mem_ctx, 
                                   const DATA_BLOB in, DATA_BLOB *out) 
 {
-       struct gensec_krb5_state *gensec_krb5_state = gensec_security->private_data;
+       struct gensec_krb5_state *gensec_krb5_state = (struct gensec_krb5_state *)gensec_security->private_data;
        krb5_error_code ret = 0;
        NTSTATUS nt_status;
 
@@ -416,7 +417,7 @@ static NTSTATUS gensec_krb5_update(struct gensec_security *gensec_security,
                if (ret) {
                        DEBUG(1,("krb5_rd_rep (mutual authentication) failed (%s)\n",
                                 smb_get_krb5_error_message(gensec_krb5_state->smb_krb5_context->krb5_context, ret, out_mem_ctx)));
-                       dump_data_pw("Mutual authentication message:\n", inbuf.data, inbuf.length);
+                       dump_data_pw("Mutual authentication message:\n", (uint8_t *)inbuf.data, inbuf.length);
                        nt_status = NT_STATUS_ACCESS_DENIED;
                } else {
                        *out = data_blob(NULL, 0);
@@ -477,7 +478,7 @@ static NTSTATUS gensec_krb5_update(struct gensec_security *gensec_security,
                if (ret) {
                        return NT_STATUS_LOGON_FAILURE;
                }
-               unwrapped_out.data = outbuf.data;
+               unwrapped_out.data = (uint8_t *)outbuf.data;
                unwrapped_out.length = outbuf.length;
                gensec_krb5_state->state_position = GENSEC_KRB5_DONE;
                /* wrap that up in a nice GSS-API wrapping */
@@ -500,7 +501,7 @@ static NTSTATUS gensec_krb5_update(struct gensec_security *gensec_security,
 static NTSTATUS gensec_krb5_session_key(struct gensec_security *gensec_security, 
                                        DATA_BLOB *session_key) 
 {
-       struct gensec_krb5_state *gensec_krb5_state = gensec_security->private_data;
+       struct gensec_krb5_state *gensec_krb5_state = (struct gensec_krb5_state *)gensec_security->private_data;
        krb5_context context = gensec_krb5_state->smb_krb5_context->krb5_context;
        krb5_auth_context auth_context = gensec_krb5_state->auth_context;
        krb5_keyblock *skey;
@@ -539,7 +540,7 @@ static NTSTATUS gensec_krb5_session_info(struct gensec_security *gensec_security
                                         struct auth_session_info **_session_info) 
 {
        NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL;
-       struct gensec_krb5_state *gensec_krb5_state = gensec_security->private_data;
+       struct gensec_krb5_state *gensec_krb5_state = (struct gensec_krb5_state *)gensec_security->private_data;
        krb5_context context = gensec_krb5_state->smb_krb5_context->krb5_context;
        struct auth_serversupplied_info *server_info = NULL;
        struct auth_session_info *session_info = NULL;
@@ -581,7 +582,7 @@ static NTSTATUS gensec_krb5_session_info(struct gensec_security *gensec_security
                                                      KRB5_AUTHDATA_WIN2K_PAC, 
                                                      &pac_data);
        
-       if (ret && lp_parm_bool(-1, "gensec", "require_pac", False)) {
+       if (ret && lp_parm_bool(global_loadparm, NULL, "gensec", "require_pac", false)) {
                DEBUG(1, ("Unable to find PAC in ticket from %s, failing to allow access: %s \n",
                          principal_string,
                          smb_get_krb5_error_message(context, 
@@ -666,7 +667,7 @@ static NTSTATUS gensec_krb5_wrap(struct gensec_security *gensec_security,
                                   const DATA_BLOB *in, 
                                   DATA_BLOB *out)
 {
-       struct gensec_krb5_state *gensec_krb5_state = gensec_security->private_data;
+       struct gensec_krb5_state *gensec_krb5_state = (struct gensec_krb5_state *)gensec_security->private_data;
        krb5_context context = gensec_krb5_state->smb_krb5_context->krb5_context;
        krb5_auth_context auth_context = gensec_krb5_state->auth_context;
        krb5_error_code ret;
@@ -696,7 +697,7 @@ static NTSTATUS gensec_krb5_unwrap(struct gensec_security *gensec_security,
                                     const DATA_BLOB *in, 
                                     DATA_BLOB *out)
 {
-       struct gensec_krb5_state *gensec_krb5_state = gensec_security->private_data;
+       struct gensec_krb5_state *gensec_krb5_state = (struct gensec_krb5_state *)gensec_security->private_data;
        krb5_context context = gensec_krb5_state->smb_krb5_context->krb5_context;
        krb5_auth_context auth_context = gensec_krb5_state->auth_context;
        krb5_error_code ret;
@@ -722,19 +723,19 @@ static NTSTATUS gensec_krb5_unwrap(struct gensec_security *gensec_security,
        return NT_STATUS_OK;
 }
 
-static BOOL gensec_krb5_have_feature(struct gensec_security *gensec_security,
+static bool gensec_krb5_have_feature(struct gensec_security *gensec_security,
                                     uint32_t feature)
 {
-       struct gensec_krb5_state *gensec_krb5_state = gensec_security->private_data;
+       struct gensec_krb5_state *gensec_krb5_state = (struct gensec_krb5_state *)gensec_security->private_data;
        if (feature & GENSEC_FEATURE_SESSION_KEY) {
-               return True;
+               return true;
        } 
        if (!gensec_krb5_state->gssapi && 
            (feature & GENSEC_FEATURE_SEAL)) {
-               return True;
+               return true;
        } 
        
-       return False;
+       return false;
 }
 
 static const char *gensec_krb5_oids[] = { 
@@ -754,8 +755,8 @@ static const struct gensec_security_ops gensec_fake_gssapi_krb5_security_ops = {
        .session_key    = gensec_krb5_session_key,
        .session_info   = gensec_krb5_session_info,
        .have_feature   = gensec_krb5_have_feature,
-       .enabled        = False,
-       .kerberos       = True,
+       .enabled        = false,
+       .kerberos       = true,
        .priority       = GENSEC_KRB5
 };
 
@@ -769,8 +770,8 @@ static const struct gensec_security_ops gensec_krb5_security_ops = {
        .have_feature   = gensec_krb5_have_feature,
        .wrap           = gensec_krb5_wrap,
        .unwrap         = gensec_krb5_unwrap,
-       .enabled        = True,
-       .kerberos       = True,
+       .enabled        = true,
+       .kerberos       = true,
        .priority       = GENSEC_KRB5
 };
 
index 5dc5c287eca1db092af0d958ac4339a0e45edf71..4d2c9cfee30b8c0fee3760c6f35248a47dc79adb 100644 (file)
@@ -44,7 +44,7 @@ static NTSTATUS schannel_session_key(struct gensec_security *gensec_security,
 static NTSTATUS schannel_update(struct gensec_security *gensec_security, TALLOC_CTX *out_mem_ctx, 
                                       const DATA_BLOB in, DATA_BLOB *out) 
 {
-       struct schannel_state *state = gensec_security->private_data;
+       struct schannel_state *state = (struct schannel_state *)gensec_security->private_data;
        NTSTATUS status;
        struct schannel_bind bind_schannel;
        struct schannel_bind_ack bind_schannel_ack;
@@ -207,8 +207,8 @@ static NTSTATUS schannel_server_start(struct gensec_security *gensec_security)
                return status;
        }
 
-       state = gensec_security->private_data;
-       state->initiator = False;
+       state = (struct schannel_state *)gensec_security->private_data;
+       state->initiator = false;
                
        return NT_STATUS_OK;
 }
@@ -223,27 +223,27 @@ static NTSTATUS schannel_client_start(struct gensec_security *gensec_security)
                return status;
        }
 
-       state = gensec_security->private_data;
-       state->initiator = True;
+       state = (struct schannel_state *)gensec_security->private_data;
+       state->initiator = true;
                
        return NT_STATUS_OK;
 }
 
 
-static BOOL schannel_have_feature(struct gensec_security *gensec_security,
+static bool schannel_have_feature(struct gensec_security *gensec_security,
                                         uint32_t feature)
 {
        if (feature & (GENSEC_FEATURE_SIGN | 
                       GENSEC_FEATURE_SEAL)) {
-               return True;
+               return true;
        }
        if (feature & GENSEC_FEATURE_DCE_STYLE) {
-               return True;
+               return true;
        }
        if (feature & GENSEC_FEATURE_ASYNC_REPLIES) {
-               return True;
+               return true;
        }
-       return False;
+       return false;
 }
 
 
@@ -261,7 +261,7 @@ static const struct gensec_security_ops gensec_schannel_security_ops = {
        .session_info   = schannel_session_info,
        .sig_size       = schannel_sig_size,
        .have_feature   = schannel_have_feature,
-       .enabled        = True,
+       .enabled        = true,
        .priority       = GENSEC_SCHANNEL
 };
 
index 43de328c9e4b1a8d1c4eca8e9ee7e2901b6f38c7..1e57beba08974882bf5acdd9407129bef13aec80 100644 (file)
@@ -26,6 +26,7 @@
 #include "auth/gensec/schannel.h"
 #include "auth/credentials/credentials.h"
 #include "auth/gensec/gensec.h"
+#include "auth/gensec/schannel_proto.h"
 
 #define NETSEC_SIGN_SIGNATURE { 0x77, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00 }
 #define NETSEC_SEAL_SIGNATURE { 0x77, 0x00, 0x7a, 0x00, 0xff, 0xff, 0x00, 0x00 }
index a911ed92889cd9212f0e01b0c0d23953f3c0b898..808240c4f4b3e4e923e64b5b21e8c309516ff692 100644 (file)
@@ -26,6 +26,7 @@
 #include "db_wrap.h"
 #include "libcli/auth/libcli_auth.h"
 #include "auth/auth.h"
+#include "param/param.h"
 
 /**
   connect to the schannel ldb
@@ -34,20 +35,21 @@ struct ldb_context *schannel_db_connect(TALLOC_CTX *mem_ctx)
 {
        char *path;
        struct ldb_context *ldb;
-       BOOL existed;
+       bool existed;
        const char *init_ldif = 
                "dn: @ATTRIBUTES\n" \
                "computerName: CASE_INSENSITIVE\n" \
                "flatname: CASE_INSENSITIVE\n";
 
-       path = smbd_tmp_path(mem_ctx, "schannel.ldb");
+       path = smbd_tmp_path(mem_ctx, global_loadparm, "schannel.ldb");
        if (!path) {
                return NULL;
        }
 
        existed = file_exist(path);
        
-       ldb = ldb_wrap_connect(mem_ctx, path, system_session(mem_ctx), 
+       ldb = ldb_wrap_connect(mem_ctx, global_loadparm, path, 
+                              system_session(mem_ctx), 
                               NULL, LDB_FLG_NOSYNC, NULL);
        talloc_free(path);
        if (!ldb) {
index 9bd97109fb92d72cff9f73db2715769b5b1bfa25..4dc05e8cc4e5b26deddc87e13589ed65caf89fcc 100644 (file)
@@ -34,13 +34,13 @@ struct gensec_socket {
        struct packet_context *packet;
        DATA_BLOB read_buffer;  /* SASL packets are turned into liniarlised data here, for reading */
        size_t orig_send_len;
-       BOOL eof;
+       bool eof;
        NTSTATUS error;
-       BOOL interrupted;
+       bool interrupted;
        void (*recv_handler)(void *, uint16_t);
        void *recv_private;
        int in_extra_read;
-       BOOL wrap; /* Should we be wrapping on this socket at all? */
+       bool wrap; /* Should we be wrapping on this socket at all? */
 };
 
 static NTSTATUS gensec_socket_init_fn(struct socket_context *sock)
@@ -190,7 +190,7 @@ static void gensec_socket_error_handler(void *private, NTSTATUS status)
 {
        struct gensec_socket *gensec_socket = talloc_get_type(private, struct gensec_socket);
        if (NT_STATUS_EQUAL(status, NT_STATUS_END_OF_FILE)) {
-               gensec_socket->eof = True;
+               gensec_socket->eof = true;
        } else {
                gensec_socket->error = status;
        }
@@ -331,7 +331,7 @@ static NTSTATUS gensec_socket_unwrap(void *private, DATA_BLOB blob)
 static void send_callback(void *private) 
 {
        struct gensec_socket *gensec_socket = talloc_get_type(private, struct gensec_socket);
-       gensec_socket->interrupted = False;
+       gensec_socket->interrupted = false;
 }
 
 /*
@@ -384,7 +384,7 @@ static NTSTATUS gensec_socket_send(struct socket_context *sock,
                return nt_status;
        }
        
-       gensec_socket->interrupted = True;
+       gensec_socket->interrupted = true;
        gensec_socket->error = NT_STATUS_OK;
 
        nt_status = packet_send_callback(gensec_socket->packet, 
@@ -446,17 +446,17 @@ NTSTATUS gensec_socket_init(struct gensec_security *gensec_security,
        if (!gensec_have_feature(gensec_security, GENSEC_FEATURE_SEAL) &&
            !gensec_have_feature(gensec_security, GENSEC_FEATURE_SIGN)) {
                
-               gensec_socket->wrap = False;
+               gensec_socket->wrap = false;
                *new_socket = new_sock;
                return NT_STATUS_OK;
        }
 
        gensec_socket->gensec_security = gensec_security;
 
-       gensec_socket->wrap          = True;
-       gensec_socket->eof           = False;
+       gensec_socket->wrap          = true;
+       gensec_socket->eof           = false;
        gensec_socket->error         = NT_STATUS_OK;
-       gensec_socket->interrupted   = False;
+       gensec_socket->interrupted   = false;
        gensec_socket->in_extra_read = 0;
 
        gensec_socket->read_buffer   = data_blob(NULL, 0);
index 88521b912cbc9b86fba9f9d17503e629bcd88b96..5c1c15935f39ff3de1635577711715a4b07c094c 100644 (file)
@@ -41,7 +41,7 @@ struct spnego_state {
        enum spnego_message_type expected_packet;
        enum spnego_state_position state_position;
        struct gensec_security *sub_sec_security;
-       BOOL no_response_expected;
+       bool no_response_expected;
 
        const char *neg_oid;
 };
@@ -59,7 +59,7 @@ static NTSTATUS gensec_spnego_client_start(struct gensec_security *gensec_securi
        spnego_state->expected_packet = SPNEGO_NEG_TOKEN_INIT;
        spnego_state->state_position = SPNEGO_CLIENT_START;
        spnego_state->sub_sec_security = NULL;
-       spnego_state->no_response_expected = False;
+       spnego_state->no_response_expected = false;
 
        gensec_security->private_data = spnego_state;
        return NT_STATUS_OK;
@@ -77,7 +77,7 @@ static NTSTATUS gensec_spnego_server_start(struct gensec_security *gensec_securi
        spnego_state->expected_packet = SPNEGO_NEG_TOKEN_INIT;
        spnego_state->state_position = SPNEGO_SERVER_START;
        spnego_state->sub_sec_security = NULL;
-       spnego_state->no_response_expected = False;
+       spnego_state->no_response_expected = false;
 
        gensec_security->private_data = spnego_state;
        return NT_STATUS_OK;
@@ -92,7 +92,7 @@ static NTSTATUS gensec_spnego_unseal_packet(struct gensec_security *gensec_secur
                                            const uint8_t *whole_pdu, size_t pdu_length, 
                                            const DATA_BLOB *sig)
 {
-       struct spnego_state *spnego_state = gensec_security->private_data;
+       struct spnego_state *spnego_state = (struct spnego_state *)gensec_security->private_data;
 
        if (spnego_state->state_position != SPNEGO_DONE 
            && spnego_state->state_position != SPNEGO_FALLBACK) {
@@ -112,7 +112,7 @@ static NTSTATUS gensec_spnego_check_packet(struct gensec_security *gensec_securi
                                           const uint8_t *whole_pdu, size_t pdu_length, 
                                           const DATA_BLOB *sig)
 {
-       struct spnego_state *spnego_state = gensec_security->private_data;
+       struct spnego_state *spnego_state = (struct spnego_state *)gensec_security->private_data;
 
        if (spnego_state->state_position != SPNEGO_DONE 
            && spnego_state->state_position != SPNEGO_FALLBACK) {
@@ -132,7 +132,7 @@ static NTSTATUS gensec_spnego_seal_packet(struct gensec_security *gensec_securit
                                          const uint8_t *whole_pdu, size_t pdu_length, 
                                          DATA_BLOB *sig)
 {
-       struct spnego_state *spnego_state = gensec_security->private_data;
+       struct spnego_state *spnego_state = (struct spnego_state *)gensec_security->private_data;
 
        if (spnego_state->state_position != SPNEGO_DONE 
            && spnego_state->state_position != SPNEGO_FALLBACK) {
@@ -152,7 +152,7 @@ static NTSTATUS gensec_spnego_sign_packet(struct gensec_security *gensec_securit
                                          const uint8_t *whole_pdu, size_t pdu_length, 
                                          DATA_BLOB *sig)
 {
-       struct spnego_state *spnego_state = gensec_security->private_data;
+       struct spnego_state *spnego_state = (struct spnego_state *)gensec_security->private_data;
 
        if (spnego_state->state_position != SPNEGO_DONE 
            && spnego_state->state_position != SPNEGO_FALLBACK) {
@@ -171,7 +171,7 @@ static NTSTATUS gensec_spnego_wrap(struct gensec_security *gensec_security,
                                   const DATA_BLOB *in, 
                                   DATA_BLOB *out)
 {
-       struct spnego_state *spnego_state = gensec_security->private_data;
+       struct spnego_state *spnego_state = (struct spnego_state *)gensec_security->private_data;
 
        if (spnego_state->state_position != SPNEGO_DONE 
            && spnego_state->state_position != SPNEGO_FALLBACK) {
@@ -188,7 +188,7 @@ static NTSTATUS gensec_spnego_unwrap(struct gensec_security *gensec_security,
                                     const DATA_BLOB *in, 
                                     DATA_BLOB *out)
 {
-       struct spnego_state *spnego_state = gensec_security->private_data;
+       struct spnego_state *spnego_state = (struct spnego_state *)gensec_security->private_data;
 
        if (spnego_state->state_position != SPNEGO_DONE 
            && spnego_state->state_position != SPNEGO_FALLBACK) {
@@ -206,7 +206,7 @@ static NTSTATUS gensec_spnego_wrap_packets(struct gensec_security *gensec_securi
                                           DATA_BLOB *out,
                                           size_t *len_processed) 
 {
-       struct spnego_state *spnego_state = gensec_security->private_data;
+       struct spnego_state *spnego_state = (struct spnego_state *)gensec_security->private_data;
 
        if (spnego_state->state_position != SPNEGO_DONE 
            && spnego_state->state_position != SPNEGO_FALLBACK) {
@@ -222,7 +222,7 @@ static NTSTATUS gensec_spnego_wrap_packets(struct gensec_security *gensec_securi
 static NTSTATUS gensec_spnego_packet_full_request(struct gensec_security *gensec_security, 
                                                DATA_BLOB blob, size_t *size)
 {
-       struct spnego_state *spnego_state = gensec_security->private_data;
+       struct spnego_state *spnego_state = (struct spnego_state *)gensec_security->private_data;
 
        if (spnego_state->state_position != SPNEGO_DONE 
            && spnego_state->state_position != SPNEGO_FALLBACK) {
@@ -240,7 +240,7 @@ static NTSTATUS gensec_spnego_unwrap_packets(struct gensec_security *gensec_secu
                                             DATA_BLOB *out,
                                             size_t *len_processed) 
 {
-       struct spnego_state *spnego_state = gensec_security->private_data;
+       struct spnego_state *spnego_state = (struct spnego_state *)gensec_security->private_data;
 
        if (spnego_state->state_position != SPNEGO_DONE 
            && spnego_state->state_position != SPNEGO_FALLBACK) {
@@ -255,7 +255,7 @@ static NTSTATUS gensec_spnego_unwrap_packets(struct gensec_security *gensec_secu
 
 static size_t gensec_spnego_sig_size(struct gensec_security *gensec_security, size_t data_size) 
 {
-       struct spnego_state *spnego_state = gensec_security->private_data;
+       struct spnego_state *spnego_state = (struct spnego_state *)gensec_security->private_data;
 
        if (spnego_state->state_position != SPNEGO_DONE 
            && spnego_state->state_position != SPNEGO_FALLBACK) {
@@ -267,7 +267,7 @@ static size_t gensec_spnego_sig_size(struct gensec_security *gensec_security, si
 
 static size_t gensec_spnego_max_input_size(struct gensec_security *gensec_security) 
 {
-       struct spnego_state *spnego_state = gensec_security->private_data;
+       struct spnego_state *spnego_state = (struct spnego_state *)gensec_security->private_data;
 
        if (spnego_state->state_position != SPNEGO_DONE 
            && spnego_state->state_position != SPNEGO_FALLBACK) {
@@ -279,7 +279,7 @@ static size_t gensec_spnego_max_input_size(struct gensec_security *gensec_securi
 
 static size_t gensec_spnego_max_wrapped_size(struct gensec_security *gensec_security) 
 {
-       struct spnego_state *spnego_state = gensec_security->private_data;
+       struct spnego_state *spnego_state = (struct spnego_state *)gensec_security->private_data;
 
        if (spnego_state->state_position != SPNEGO_DONE 
            && spnego_state->state_position != SPNEGO_FALLBACK) {
@@ -292,7 +292,7 @@ static size_t gensec_spnego_max_wrapped_size(struct gensec_security *gensec_secu
 static NTSTATUS gensec_spnego_session_key(struct gensec_security *gensec_security, 
                                          DATA_BLOB *session_key)
 {
-       struct spnego_state *spnego_state = gensec_security->private_data;
+       struct spnego_state *spnego_state = (struct spnego_state *)gensec_security->private_data;
        if (!spnego_state->sub_sec_security) {
                return NT_STATUS_INVALID_PARAMETER;
        }
@@ -304,7 +304,7 @@ static NTSTATUS gensec_spnego_session_key(struct gensec_security *gensec_securit
 static NTSTATUS gensec_spnego_session_info(struct gensec_security *gensec_security,
                                                                      struct auth_session_info **session_info) 
 {
-       struct spnego_state *spnego_state = gensec_security->private_data;
+       struct spnego_state *spnego_state = (struct spnego_state *)gensec_security->private_data;
        if (!spnego_state->sub_sec_security) {
                return NT_STATUS_INVALID_PARAMETER;
        }
@@ -329,16 +329,16 @@ static NTSTATUS gensec_spnego_server_try_fallback(struct gensec_security *gensec
        struct gensec_security_ops **all_ops
                = gensec_security_mechs(gensec_security, out_mem_ctx);
        for (i=0; all_ops[i]; i++) {
-               BOOL is_spnego;
+               bool is_spnego;
                NTSTATUS nt_status;
                if (!all_ops[i]->oid) {
                        continue;
                }
 
-               is_spnego = False;
+               is_spnego = false;
                for (j=0; all_ops[i]->oid[j]; j++) {
                        if (strcasecmp(GENSEC_OID_SPNEGO,all_ops[i]->oid[j]) == 0) {
-                               is_spnego = True;
+                               is_spnego = true;
                        }
                }
                if (is_spnego) {
@@ -622,7 +622,7 @@ static NTSTATUS gensec_spnego_create_negTokenInit(struct gensec_security *gensec
                spnego_state->neg_oid = all_sec[i].oid;
                
                if (NT_STATUS_IS_OK(nt_status)) {
-                       spnego_state->no_response_expected = True;
+                       spnego_state->no_response_expected = true;
                }
 
                return NT_STATUS_MORE_PROCESSING_REQUIRED;
@@ -685,7 +685,7 @@ static NTSTATUS gensec_spnego_server_negTokenTarg(struct gensec_security *gensec
 static NTSTATUS gensec_spnego_update(struct gensec_security *gensec_security, TALLOC_CTX *out_mem_ctx, 
                                     const DATA_BLOB in, DATA_BLOB *out) 
 {
-       struct spnego_state *spnego_state = gensec_security->private_data;
+       struct spnego_state *spnego_state = (struct spnego_state *)gensec_security->private_data;
        DATA_BLOB null_data_blob = data_blob(NULL, 0);
        DATA_BLOB unwrapped_out = data_blob(NULL, 0);
        struct spnego_data spnego_out;
@@ -820,7 +820,7 @@ static NTSTATUS gensec_spnego_update(struct gensec_security *gensec_security, TA
                spnego_state->state_position = SPNEGO_CLIENT_TARG;
 
                if (NT_STATUS_IS_OK(nt_status)) {
-                       spnego_state->no_response_expected = True;
+                       spnego_state->no_response_expected = true;
                }
                
                spnego_free_data(&spnego);
@@ -947,7 +947,7 @@ static NTSTATUS gensec_spnego_update(struct gensec_security *gensec_security, TA
                                                  &unwrapped_out);
 
                        if (NT_STATUS_IS_OK(nt_status)) {
-                               spnego_state->no_response_expected = True;
+                               spnego_state->no_response_expected = true;
                        }
                } 
                
@@ -999,12 +999,12 @@ static NTSTATUS gensec_spnego_update(struct gensec_security *gensec_security, TA
        return NT_STATUS_INVALID_PARAMETER;
 }
 
-static BOOL gensec_spnego_have_feature(struct gensec_security *gensec_security,
+static bool gensec_spnego_have_feature(struct gensec_security *gensec_security,
                                       uint32_t feature) 
 {
-       struct spnego_state *spnego_state = gensec_security->private_data;
+       struct spnego_state *spnego_state = (struct spnego_state *)gensec_security->private_data;
        if (!spnego_state->sub_sec_security) {
-               return False;
+               return false;
        }
        
        return gensec_have_feature(spnego_state->sub_sec_security, 
@@ -1039,7 +1039,7 @@ static const struct gensec_security_ops gensec_spnego_security_ops = {
        .session_key      = gensec_spnego_session_key,
        .session_info     = gensec_spnego_session_info,
        .have_feature     = gensec_spnego_have_feature,
-       .enabled          = True,
+       .enabled          = true,
        .priority         = GENSEC_SPNEGO
 };
 
index bb674a7aad6011abf79a9a40729d821cac691237..37f4f12278ad85964f873ab4a3eb6403fe0b8e31 100644 (file)
@@ -25,7 +25,7 @@
 #include "auth/gensec/gensec.h"
 #include "libcli/util/asn_1.h"
 
-static BOOL read_negTokenInit(struct asn1_data *asn1, TALLOC_CTX *mem_ctx,
+static bool read_negTokenInit(struct asn1_data *asn1, TALLOC_CTX *mem_ctx,
                              struct spnego_negTokenInit *token)
 {
        ZERO_STRUCTP(token);
@@ -37,7 +37,7 @@ static BOOL read_negTokenInit(struct asn1_data *asn1, TALLOC_CTX *mem_ctx,
                int i;
                uint8_t context;
                if (!asn1_peek_uint8(asn1, &context)) {
-                       asn1->has_error = True;
+                       asn1->has_error = true;
                        break;
                }
 
@@ -79,7 +79,7 @@ static BOOL read_negTokenInit(struct asn1_data *asn1, TALLOC_CTX *mem_ctx,
                        uint8_t type_peek;
                        asn1_start_tag(asn1, ASN1_CONTEXT(3));
                        if (!asn1_peek_uint8(asn1, &type_peek)) {
-                               asn1->has_error = True;
+                               asn1->has_error = true;
                                break;
                        }
                        if (type_peek == ASN1_OCTET_STRING) {
@@ -101,7 +101,7 @@ static BOOL read_negTokenInit(struct asn1_data *asn1, TALLOC_CTX *mem_ctx,
                        break;
                }
                default:
-                       asn1->has_error = True;
+                       asn1->has_error = true;
                        break;
                }
        }
@@ -112,7 +112,7 @@ static BOOL read_negTokenInit(struct asn1_data *asn1, TALLOC_CTX *mem_ctx,
        return !asn1->has_error;
 }
 
-static BOOL write_negTokenInit(struct asn1_data *asn1, struct spnego_negTokenInit *token)
+static bool write_negTokenInit(struct asn1_data *asn1, struct spnego_negTokenInit *token)
 {
        asn1_push_tag(asn1, ASN1_CONTEXT(0));
        asn1_push_tag(asn1, ASN1_SEQUENCE(0));
@@ -175,7 +175,7 @@ static BOOL write_negTokenInit(struct asn1_data *asn1, struct spnego_negTokenIni
        return !asn1->has_error;
 }
 
-static BOOL read_negTokenTarg(struct asn1_data *asn1, TALLOC_CTX *mem_ctx, 
+static bool read_negTokenTarg(struct asn1_data *asn1, TALLOC_CTX *mem_ctx, 
                              struct spnego_negTokenTarg *token)
 {
        ZERO_STRUCTP(token);
@@ -186,7 +186,7 @@ static BOOL read_negTokenTarg(struct asn1_data *asn1, TALLOC_CTX *mem_ctx,
        while (!asn1->has_error && 0 < asn1_tag_remaining(asn1)) {
                uint8_t context;
                if (!asn1_peek_uint8(asn1, &context)) {
-                       asn1->has_error = True;
+                       asn1->has_error = true;
                        break;
                }
 
@@ -214,7 +214,7 @@ static BOOL read_negTokenTarg(struct asn1_data *asn1, TALLOC_CTX *mem_ctx,
                        asn1_end_tag(asn1);
                        break;
                default:
-                       asn1->has_error = True;
+                       asn1->has_error = true;
                        break;
                }
        }
@@ -225,7 +225,7 @@ static BOOL read_negTokenTarg(struct asn1_data *asn1, TALLOC_CTX *mem_ctx,
        return !asn1->has_error;
 }
 
-static BOOL write_negTokenTarg(struct asn1_data *asn1, struct spnego_negTokenTarg *token)
+static bool write_negTokenTarg(struct asn1_data *asn1, struct spnego_negTokenTarg *token)
 {
        asn1_push_tag(asn1, ASN1_CONTEXT(1));
        asn1_push_tag(asn1, ASN1_SEQUENCE(0));
@@ -282,7 +282,7 @@ ssize_t spnego_read_data(TALLOC_CTX *mem_ctx, DATA_BLOB data, struct spnego_data
        asn1_load(asn1, data);
 
        if (!asn1_peek_uint8(asn1, &context)) {
-               asn1->has_error = True;
+               asn1->has_error = true;
        } else {
                switch (context) {
                case ASN1_APPLICATION(0):
@@ -299,7 +299,7 @@ ssize_t spnego_read_data(TALLOC_CTX *mem_ctx, DATA_BLOB data, struct spnego_data
                        }
                        break;
                default:
-                       asn1->has_error = True;
+                       asn1->has_error = true;
                        break;
                }
        }
@@ -330,7 +330,7 @@ ssize_t spnego_write_data(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, struct spnego_da
                write_negTokenTarg(asn1, &spnego->negTokenTarg);
                break;
        default:
-               asn1->has_error = True;
+               asn1->has_error = true;
                break;
        }
 
@@ -343,9 +343,9 @@ ssize_t spnego_write_data(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, struct spnego_da
        return ret;
 }
 
-BOOL spnego_free_data(struct spnego_data *spnego)
+bool spnego_free_data(struct spnego_data *spnego)
 {
-       BOOL ret = True;
+       bool ret = true;
 
        if (!spnego) goto out;
 
@@ -366,7 +366,7 @@ BOOL spnego_free_data(struct spnego_data *spnego)
                data_blob_free(&spnego->negTokenTarg.mechListMIC);
                break;
        default:
-               ret = False;
+               ret = false;
                break;
        }
        ZERO_STRUCTP(spnego);
index f75fd993230fa2a7e9b7a83025ccc2206f8f987d..87c62fb6edfad91f5ac4b6dc40e59a3231a64243 100644 (file)
@@ -10,6 +10,6 @@ OBJ_FILES = kerberos.o \
                        gssapi_parse.o \
                        krb5_init_context.o
 PUBLIC_DEPENDENCIES = HEIMDAL_KRB5 NDR_KRB5PAC samba-socket LIBCLI_RESOLVE
-PRIVATE_DEPENDENCIES = ASN1_UTIL HEIMDAL_ROKEN_ADDRINFO auth_sam CREDENTIALS_KRB5
+PRIVATE_DEPENDENCIES = ASN1_UTIL auth_sam CREDENTIALS_KRB5
 # End SUBSYSTEM KERBEROS
 #################################
index 27c96770a676858c2b6f96b6cfcc37e243d53b96..4b1b178238773fd8b49479eda0ba67f77577df50 100644 (file)
@@ -64,14 +64,14 @@ DATA_BLOB gensec_gssapi_gen_krb5_wrap(TALLOC_CTX *mem_ctx, const DATA_BLOB *tick
 /*
   parse a krb5 GSS-API wrapper packet giving a ticket
 */
-BOOL gensec_gssapi_parse_krb5_wrap(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob, DATA_BLOB *ticket, uint8_t tok_id[2])
+bool gensec_gssapi_parse_krb5_wrap(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob, DATA_BLOB *ticket, uint8_t tok_id[2])
 {
-       BOOL ret;
+       bool ret;
        struct asn1_data *data = asn1_init(mem_ctx);
        int data_remaining;
 
        if (!data) {
-               return False;
+               return false;
        }
 
        asn1_load(data, *blob);
@@ -81,7 +81,7 @@ BOOL gensec_gssapi_parse_krb5_wrap(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob, D
        data_remaining = asn1_tag_remaining(data);
 
        if (data_remaining < 3) {
-               data->has_error = True;
+               data->has_error = true;
        } else {
                asn1_read(data, tok_id, 2);
                data_remaining -= 2;
@@ -102,12 +102,12 @@ BOOL gensec_gssapi_parse_krb5_wrap(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob, D
 /*
   check a GSS-API wrapper packet givin an expected OID
 */
-BOOL gensec_gssapi_check_oid(const DATA_BLOB *blob, const char *oid)
+bool gensec_gssapi_check_oid(const DATA_BLOB *blob, const char *oid)
 {
-       BOOL ret;
+       bool ret;
        struct asn1_data *data = asn1_init(NULL);
 
-       if (!data) return False;
+       if (!data) return false;
 
        asn1_load(data, *blob);
        asn1_start_tag(data, ASN1_APPLICATION(0));
index 918c28cf33652decc095b6e37a316c61bf064037..70e2961d552daa5383fbbfc22dd6826af8adecae 100644 (file)
@@ -343,7 +343,7 @@ static int create_keytab(TALLOC_CTX *parent_ctx,
                         struct smb_krb5_context *smb_krb5_context,
                         const char **enctype_strings,
                         krb5_keytab keytab,
-                        BOOL add_old) 
+                        bool add_old) 
 {
        krb5_error_code ret;
        const char *password_s;
@@ -484,7 +484,7 @@ static int create_keytab(TALLOC_CTX *parent_ctx,
 static krb5_error_code remove_old_entries(TALLOC_CTX *parent_ctx,
                                          struct cli_credentials *machine_account,
                                          struct smb_krb5_context *smb_krb5_context,
-                                         krb5_keytab keytab, BOOL *found_previous)
+                                         krb5_keytab keytab, bool *found_previous)
 {
        krb5_error_code ret, ret2;
        krb5_kt_cursor cursor;
@@ -496,7 +496,7 @@ static krb5_error_code remove_old_entries(TALLOC_CTX *parent_ctx,
                return ENOMEM;
        }
 
-       *found_previous = False;
+       *found_previous = false;
        princ_string = cli_credentials_get_principal(machine_account, mem_ctx);
 
        /* Get the principal we will store the new keytab entries under */
@@ -575,7 +575,7 @@ static krb5_error_code remove_old_entries(TALLOC_CTX *parent_ctx,
                        }
                        
                } else {
-                       *found_previous = True;
+                       *found_previous = true;
                }
                
                /* Free the entry, we don't need it any more */
@@ -609,7 +609,7 @@ int smb_krb5_update_keytab(TALLOC_CTX *parent_ctx,
                           struct keytab_container *keytab_container) 
 {
        krb5_error_code ret;
-       BOOL found_previous;
+       bool found_previous;
        TALLOC_CTX *mem_ctx = talloc_new(parent_ctx);
        if (!mem_ctx) {
                return ENOMEM;
@@ -629,7 +629,7 @@ int smb_krb5_update_keytab(TALLOC_CTX *parent_ctx,
        ret = create_keytab(mem_ctx, machine_account, smb_krb5_context, 
                            enctype_strings, 
                            keytab_container->keytab, 
-                           found_previous ? False : True);
+                           found_previous ? false : true);
        talloc_free(mem_ctx);
        return ret;
 }
index c11d93f44adfb7da2a7291663829fb97f3367e44..68e60dcdc545d3b07e3720b19e60bbf3446c00c2 100644 (file)
@@ -29,6 +29,7 @@
 #include "system/network.h"
 #include "lib/events/events.h"
 #include "roken.h"
+#include "param/param.h"
 
 /*
   context structure for operations on cldap packets
@@ -249,12 +250,12 @@ krb5_error_code smb_krb5_send_and_recv_func(krb5_context context,
                status = NT_STATUS_INVALID_PARAMETER;
                switch (hi->proto) {
                case KRB5_KRBHST_UDP:
-                       if (lp_parm_bool(-1, "krb5", "udp", True)) {
+                       if (lp_parm_bool(global_loadparm, NULL, "krb5", "udp", true)) {
                                status = socket_create(name, SOCKET_TYPE_DGRAM, &smb_krb5->sock, 0);
                        }
                        break;
                case KRB5_KRBHST_TCP:
-                       if (lp_parm_bool(-1, "krb5", "tcp", True)) {
+                       if (lp_parm_bool(global_loadparm, NULL, "krb5", "tcp", true)) {
                                status = socket_create(name, SOCKET_TYPE_STREAM, &smb_krb5->sock, 0);
                        }
                        break;
@@ -392,7 +393,7 @@ krb5_error_code smb_krb5_init_context(void *parent_ctx,
 
        talloc_set_destructor(*smb_krb5_context, smb_krb5_context_destroy_1);
 
-       config_file = config_path(tmp_ctx, "krb5.conf");
+       config_file = config_path(tmp_ctx, global_loadparm, "krb5.conf");
        if (!config_file) {
                talloc_free(tmp_ctx);
                return ENOMEM;
@@ -417,10 +418,10 @@ krb5_error_code smb_krb5_init_context(void *parent_ctx,
                return ret;
        }
                                                
-       if (lp_realm() && *lp_realm()) {
-               char *upper_realm = strupper_talloc(tmp_ctx, lp_realm());
+       if (lp_realm(global_loadparm) && *lp_realm(global_loadparm)) {
+               char *upper_realm = strupper_talloc(tmp_ctx, lp_realm(global_loadparm));
                if (!upper_realm) {
-                       DEBUG(1,("gensec_krb5_start: could not uppercase realm: %s\n", lp_realm()));
+                       DEBUG(1,("gensec_krb5_start: could not uppercase realm: %s\n", lp_realm(global_loadparm)));
                        talloc_free(tmp_ctx);
                        return ENOMEM;
                }
@@ -472,7 +473,7 @@ krb5_error_code smb_krb5_init_context(void *parent_ctx,
        /* Set options in kerberos */
 
        krb5_set_dns_canonicalize_hostname((*smb_krb5_context)->krb5_context,
-                                          lp_parm_bool(-1, "krb5", "set_dns_canonicalize", false));
+                                          lp_parm_bool(global_loadparm, NULL, "krb5", "set_dns_canonicalize", false));
 
        return 0;
 }
index 5c5ad1f3ca82cf43d2b1dbc9cd9e7dcb3c6a7589..5214c46e0eecdd6f1a58999181e0505ea451e781 100644 (file)
 #include "lib/crypto/crypto.h"
 #include "librpc/gen_ndr/netlogon.h"
 #include "libcli/auth/libcli_auth.h"
+#include "param/param.h"
 
 /****************************************************************************
  Core of smb password checking routine.
 ****************************************************************************/
 
-static BOOL smb_pwd_check_ntlmv1(TALLOC_CTX *mem_ctx,
+static bool smb_pwd_check_ntlmv1(TALLOC_CTX *mem_ctx,
                                 const DATA_BLOB *nt_response,
                                 const uint8_t *part_passwd,
                                 const DATA_BLOB *sec_blob,
@@ -40,19 +41,19 @@ static BOOL smb_pwd_check_ntlmv1(TALLOC_CTX *mem_ctx,
        if (part_passwd == NULL) {
                DEBUG(10,("No password set - DISALLOWING access\n"));
                /* No password set - always false ! */
-               return False;
+               return false;
        }
        
        if (sec_blob->length != 8) {
                DEBUG(0, ("smb_pwd_check_ntlmv1: incorrect challenge size (%lu)\n", 
                          (unsigned long)sec_blob->length));
-               return False;
+               return false;
        }
        
        if (nt_response->length != 24) {
                DEBUG(0, ("smb_pwd_check_ntlmv1: incorrect password length (%lu)\n", 
                          (unsigned long)nt_response->length));
-               return False;
+               return false;
        }
 
        SMBOWFencrypt(part_passwd, sec_blob->data, p24);
@@ -72,9 +73,9 @@ static BOOL smb_pwd_check_ntlmv1(TALLOC_CTX *mem_ctx,
                        *user_sess_key = data_blob_talloc(mem_ctx, NULL, 16);
                        SMBsesskeygen_ntv1(part_passwd, user_sess_key->data);
                }
-               return True;
+               return true;
        } 
-       return False;
+       return false;
 }
 
 /****************************************************************************
@@ -82,12 +83,12 @@ static BOOL smb_pwd_check_ntlmv1(TALLOC_CTX *mem_ctx,
  Note:  The same code works with both NTLMv2 and LMv2.
 ****************************************************************************/
 
-static BOOL smb_pwd_check_ntlmv2(TALLOC_CTX *mem_ctx,
+static bool smb_pwd_check_ntlmv2(TALLOC_CTX *mem_ctx,
                                 const DATA_BLOB *ntv2_response,
                                 const uint8_t *part_passwd,
                                 const DATA_BLOB *sec_blob,
                                 const char *user, const char *domain,
-                                BOOL upper_case_domain, /* should the domain be transformed into upper case? */
+                                bool upper_case_domain, /* should the domain be transformed into upper case? */
                                 DATA_BLOB *user_sess_key)
 {
        /* Finish the encryption of part_passwd. */
@@ -97,14 +98,14 @@ static BOOL smb_pwd_check_ntlmv2(TALLOC_CTX *mem_ctx,
 
        if (part_passwd == NULL) {
                DEBUG(10,("No password set - DISALLOWING access\n"));
-               /* No password set - always False */
-               return False;
+               /* No password set - always false */
+               return false;
        }
 
        if (sec_blob->length != 8) {
                DEBUG(0, ("smb_pwd_check_ntlmv2: incorrect challenge size (%lu)\n", 
                          (unsigned long)sec_blob->length));
-               return False;
+               return false;
        }
        
        if (ntv2_response->length < 24) {
@@ -113,7 +114,7 @@ static BOOL smb_pwd_check_ntlmv2(TALLOC_CTX *mem_ctx,
                   for LMv2, let alone NTLMv2. */
                DEBUG(0, ("smb_pwd_check_ntlmv2: incorrect password length (%lu)\n", 
                          (unsigned long)ntv2_response->length));
-               return False;
+               return false;
        }
 
        client_key_data = data_blob_talloc(mem_ctx, ntv2_response->data+16, ntv2_response->length-16);
@@ -123,7 +124,7 @@ static BOOL smb_pwd_check_ntlmv2(TALLOC_CTX *mem_ctx,
        */
 
        if (!ntv2_owf_gen(part_passwd, user, domain, upper_case_domain, kr)) {
-               return False;
+               return false;
        }
 
        SMBOWFencrypt_ntv2(kr, sec_blob, &client_key_data, value_from_encryption);
@@ -146,9 +147,9 @@ static BOOL smb_pwd_check_ntlmv2(TALLOC_CTX *mem_ctx,
                        *user_sess_key = data_blob_talloc(mem_ctx, NULL, 16);
                        SMBsesskeygen_ntv2(kr, value_from_encryption, user_sess_key->data);
                }
-               return True;
+               return true;
        }
-       return False;
+       return false;
 }
 
 /****************************************************************************
@@ -156,12 +157,12 @@ static BOOL smb_pwd_check_ntlmv2(TALLOC_CTX *mem_ctx,
  Note:  The same code works with both NTLMv2 and LMv2.
 ****************************************************************************/
 
-static BOOL smb_sess_key_ntlmv2(TALLOC_CTX *mem_ctx,
+static bool smb_sess_key_ntlmv2(TALLOC_CTX *mem_ctx,
                                const DATA_BLOB *ntv2_response,
                                const uint8_t *part_passwd,
                                const DATA_BLOB *sec_blob,
                                const char *user, const char *domain,
-                               BOOL upper_case_domain, /* should the domain be transformed into upper case? */
+                               bool upper_case_domain, /* should the domain be transformed into upper case? */
                                DATA_BLOB *user_sess_key)
 {
        /* Finish the encryption of part_passwd. */
@@ -171,14 +172,14 @@ static BOOL smb_sess_key_ntlmv2(TALLOC_CTX *mem_ctx,
 
        if (part_passwd == NULL) {
                DEBUG(10,("No password set - DISALLOWING access\n"));
-               /* No password set - always False */
-               return False;
+               /* No password set - always false */
+               return false;
        }
 
        if (sec_blob->length != 8) {
                DEBUG(0, ("smb_sess_key_ntlmv2: incorrect challenge size (%lu)\n", 
                          (unsigned long)sec_blob->length));
-               return False;
+               return false;
        }
        
        if (ntv2_response->length < 24) {
@@ -187,19 +188,19 @@ static BOOL smb_sess_key_ntlmv2(TALLOC_CTX *mem_ctx,
                   for LMv2, let alone NTLMv2. */
                DEBUG(0, ("smb_sess_key_ntlmv2: incorrect password length (%lu)\n", 
                          (unsigned long)ntv2_response->length));
-               return False;
+               return false;
        }
 
        client_key_data = data_blob_talloc(mem_ctx, ntv2_response->data+16, ntv2_response->length-16);
 
        if (!ntv2_owf_gen(part_passwd, user, domain, upper_case_domain, kr)) {
-               return False;
+               return false;
        }
 
        SMBOWFencrypt_ntv2(kr, sec_blob, &client_key_data, value_from_encryption);
        *user_sess_key = data_blob_talloc(mem_ctx, NULL, 16);
        SMBsesskeygen_ntv2(kr, value_from_encryption, user_sess_key->data);
-       return True;
+       return true;
 }
 
 /**
@@ -239,7 +240,7 @@ NTSTATUS hash_password_check(TALLOC_CTX *mem_ctx,
                }
 
        } else if (client_lanman && stored_lanman) {
-               if (!lp_lanman_auth()) {
+               if (!lp_lanman_auth(global_loadparm)) {
                        DEBUG(3,("ntlm_password_check: Interactive logon: only LANMAN password supplied for user %s, and LM passwords are disabled!\n",
                                 username));
                        return NT_STATUS_WRONG_PASSWORD;
@@ -310,7 +311,7 @@ NTSTATUS ntlm_password_check(TALLOC_CTX *mem_ctx,
                struct samr_Password client_nt;
                struct samr_Password client_lm;
                char *unix_pw = NULL;
-               BOOL lm_ok;
+               bool lm_ok;
 
                DEBUG(4,("ntlm_password_check: checking plaintext passwords for user %s\n",
                         username));
@@ -321,12 +322,12 @@ NTSTATUS ntlm_password_check(TALLOC_CTX *mem_ctx,
                                          lm_response->data, lm_response->length, 
                                           (void **)&unix_pw) != -1)) {
                        if (E_deshash(unix_pw, client_lm.hash)) {
-                               lm_ok = True;
+                               lm_ok = true;
                        } else {
-                               lm_ok = False;
+                               lm_ok = false;
                        }
                } else {
-                       lm_ok = False;
+                       lm_ok = false;
                }
                return hash_password_check(mem_ctx, 
                                           lm_ok ? &client_lm : NULL, 
@@ -350,7 +351,7 @@ NTSTATUS ntlm_password_check(TALLOC_CTX *mem_ctx,
                                         stored_nt->hash, challenge, 
                                         client_username, 
                                         client_domain,
-                                        False,
+                                        false,
                                         user_sess_key)) {
                        *lm_sess_key = *user_sess_key;
                        if (user_sess_key->length) {
@@ -365,7 +366,7 @@ NTSTATUS ntlm_password_check(TALLOC_CTX *mem_ctx,
                                         stored_nt->hash, challenge, 
                                         client_username, 
                                         client_domain,
-                                        True,
+                                        true,
                                         user_sess_key)) {
                        *lm_sess_key = *user_sess_key;
                        if (user_sess_key->length) {
@@ -380,7 +381,7 @@ NTSTATUS ntlm_password_check(TALLOC_CTX *mem_ctx,
                                         stored_nt->hash, challenge, 
                                         client_username, 
                                         "",
-                                        False,
+                                        false,
                                         user_sess_key)) {
                        *lm_sess_key = *user_sess_key;
                        if (user_sess_key->length) {
@@ -391,7 +392,7 @@ NTSTATUS ntlm_password_check(TALLOC_CTX *mem_ctx,
                        DEBUG(3,("ntlm_password_check: NTLMv2 password check failed\n"));
                }
        } else if (nt_response->length == 24 && stored_nt) {
-               if (lp_ntlm_auth()) {           
+               if (lp_ntlm_auth(global_loadparm)) {            
                        /* We have the NT MD4 hash challenge available - see if we can
                           use it (ie. does it exist in the smbpasswd file).
                        */
@@ -403,7 +404,7 @@ NTSTATUS ntlm_password_check(TALLOC_CTX *mem_ctx,
                                /* The LM session key for this response is not very secure, 
                                   so use it only if we otherwise allow LM authentication */
                                
-                               if (lp_lanman_auth() && stored_lanman) {
+                               if (lp_lanman_auth(global_loadparm) && stored_lanman) {
                                        *lm_sess_key = data_blob_talloc(mem_ctx, stored_lanman->hash, 8);
                                }
                                return NT_STATUS_OK;
@@ -431,7 +432,7 @@ NTSTATUS ntlm_password_check(TALLOC_CTX *mem_ctx,
                return NT_STATUS_WRONG_PASSWORD;
        }
                
-       if (!lp_lanman_auth()) {
+       if (!lp_lanman_auth(global_loadparm)) {
                DEBUG(3,("ntlm_password_check: Lanman passwords NOT PERMITTED for user %s\n",
                         username));
        } else if (!stored_lanman) {
@@ -450,7 +451,7 @@ NTSTATUS ntlm_password_check(TALLOC_CTX *mem_ctx,
                           It not very secure, so use it only if we otherwise 
                           allow LM authentication */
 
-                       if (lp_lanman_auth() && stored_lanman) {
+                       if (lp_lanman_auth(global_loadparm) && stored_lanman) {
                                uint8_t first_8_lm_hash[16];
                                memcpy(first_8_lm_hash, stored_lanman->hash, 8);
                                memset(first_8_lm_hash + 8, '\0', 8);
@@ -475,7 +476,7 @@ NTSTATUS ntlm_password_check(TALLOC_CTX *mem_ctx,
                                 stored_nt->hash, challenge, 
                                 client_username,
                                 client_domain,
-                                False,
+                                false,
                                 &tmp_sess_key)) {
                if (nt_response->length > 24) {
                        /* If NTLMv2 authentication has preceeded us
@@ -487,7 +488,7 @@ NTSTATUS ntlm_password_check(TALLOC_CTX *mem_ctx,
                                            stored_nt->hash, challenge, 
                                            client_username,
                                            client_domain,
-                                           False,
+                                           false,
                                            user_sess_key);
                } else {
                        /* Otherwise, use the LMv2 session key */
@@ -506,7 +507,7 @@ NTSTATUS ntlm_password_check(TALLOC_CTX *mem_ctx,
                                 stored_nt->hash, challenge, 
                                 client_username,
                                 client_domain,
-                                True,
+                                true,
                                 &tmp_sess_key)) {
                if (nt_response->length > 24) {
                        /* If NTLMv2 authentication has preceeded us
@@ -518,7 +519,7 @@ NTSTATUS ntlm_password_check(TALLOC_CTX *mem_ctx,
                                            stored_nt->hash, challenge, 
                                            client_username,
                                            client_domain,
-                                           True,
+                                           true,
                                            user_sess_key);
                } else {
                        /* Otherwise, use the LMv2 session key */
@@ -537,7 +538,7 @@ NTSTATUS ntlm_password_check(TALLOC_CTX *mem_ctx,
                                 stored_nt->hash, challenge, 
                                 client_username,
                                 "",
-                                False,
+                                false,
                                 &tmp_sess_key)) {
                if (nt_response->length > 24) {
                        /* If NTLMv2 authentication has preceeded us
@@ -549,7 +550,7 @@ NTSTATUS ntlm_password_check(TALLOC_CTX *mem_ctx,
                                            stored_nt->hash, challenge, 
                                            client_username,
                                            "",
-                                           False,
+                                           false,
                                            user_sess_key);
                } else {
                        /* Otherwise, use the LMv2 session key */
@@ -566,7 +567,7 @@ NTSTATUS ntlm_password_check(TALLOC_CTX *mem_ctx,
           - I think this is related to Win9X pass-though authentication
        */
        DEBUG(4,("ntlm_password_check: Checking NT MD4 password in LM field\n"));
-       if (lp_ntlm_auth()) {
+       if (lp_ntlm_auth(global_loadparm)) {
                if (smb_pwd_check_ntlmv1(mem_ctx, 
                                         lm_response, 
                                         stored_nt->hash, challenge,
@@ -575,7 +576,7 @@ NTSTATUS ntlm_password_check(TALLOC_CTX *mem_ctx,
                           It not very secure, so use it only if we otherwise 
                           allow LM authentication */
 
-                       if (lp_lanman_auth() && stored_lanman) {
+                       if (lp_lanman_auth(global_loadparm) && stored_lanman) {
                                uint8_t first_8_lm_hash[16];
                                memcpy(first_8_lm_hash, stored_lanman->hash, 8);
                                memset(first_8_lm_hash + 8, '\0', 8);
index a2d2d2217088fd50c6a7d5d6b4f368996252aff2..f957ac9dbd373b7d66a26e0c25823a8f723c0179 100644 (file)
@@ -199,7 +199,7 @@ static NTSTATUS gensec_ntlmssp_update(struct gensec_security *gensec_security,
                                      TALLOC_CTX *out_mem_ctx, 
                                      const DATA_BLOB input, DATA_BLOB *out)
 {
-       struct gensec_ntlmssp_state *gensec_ntlmssp_state = gensec_security->private_data;
+       struct gensec_ntlmssp_state *gensec_ntlmssp_state = (struct gensec_ntlmssp_state *)gensec_security->private_data;
        NTSTATUS status;
        uint32_t i;
 
@@ -229,7 +229,7 @@ static NTSTATUS gensec_ntlmssp_update(struct gensec_security *gensec_security,
 NTSTATUS gensec_ntlmssp_session_key(struct gensec_security *gensec_security, 
                                    DATA_BLOB *session_key)
 {
-       struct gensec_ntlmssp_state *gensec_ntlmssp_state = gensec_security->private_data;
+       struct gensec_ntlmssp_state *gensec_ntlmssp_state = (struct gensec_ntlmssp_state *)gensec_security->private_data;
 
        if (!gensec_ntlmssp_state->session_key.data) {
                return NT_STATUS_NO_USER_SESSION_KEY;
@@ -240,16 +240,16 @@ NTSTATUS gensec_ntlmssp_session_key(struct gensec_security *gensec_security,
 }
 
 void ntlmssp_handle_neg_flags(struct gensec_ntlmssp_state *gensec_ntlmssp_state,
-                             uint32_t neg_flags, BOOL allow_lm)
+                             uint32_t neg_flags, bool allow_lm)
 {
        if (neg_flags & NTLMSSP_NEGOTIATE_UNICODE) {
                gensec_ntlmssp_state->neg_flags |= NTLMSSP_NEGOTIATE_UNICODE;
                gensec_ntlmssp_state->neg_flags &= ~NTLMSSP_NEGOTIATE_OEM;
-               gensec_ntlmssp_state->unicode = True;
+               gensec_ntlmssp_state->unicode = true;
        } else {
                gensec_ntlmssp_state->neg_flags &= ~NTLMSSP_NEGOTIATE_UNICODE;
                gensec_ntlmssp_state->neg_flags |= NTLMSSP_NEGOTIATE_OEM;
-               gensec_ntlmssp_state->unicode = False;
+               gensec_ntlmssp_state->unicode = false;
        }
 
        if ((neg_flags & NTLMSSP_NEGOTIATE_LM_KEY) && allow_lm && !gensec_ntlmssp_state->use_ntlmv2) {
@@ -341,40 +341,40 @@ DATA_BLOB ntlmssp_weakend_key(struct gensec_ntlmssp_state *gensec_ntlmssp_state,
        return weakened_key;
 }
 
-static BOOL gensec_ntlmssp_have_feature(struct gensec_security *gensec_security,
+static bool gensec_ntlmssp_have_feature(struct gensec_security *gensec_security,
                                        uint32_t feature)
 {
-       struct gensec_ntlmssp_state *gensec_ntlmssp_state = gensec_security->private_data;
+       struct gensec_ntlmssp_state *gensec_ntlmssp_state = (struct gensec_ntlmssp_state *)gensec_security->private_data;
        if (feature & GENSEC_FEATURE_SIGN) {
                if (!gensec_ntlmssp_state->session_key.length) {
-                       return False;
+                       return false;
                }
                if (gensec_ntlmssp_state->neg_flags & NTLMSSP_NEGOTIATE_SIGN) {
-                       return True;
+                       return true;
                }
        }
        if (feature & GENSEC_FEATURE_SEAL) {
                if (!gensec_ntlmssp_state->session_key.length) {
-                       return False;
+                       return false;
                }
                if (gensec_ntlmssp_state->neg_flags & NTLMSSP_NEGOTIATE_SEAL) {
-                       return True;
+                       return true;
                }
        }
        if (feature & GENSEC_FEATURE_SESSION_KEY) {
                if (gensec_ntlmssp_state->session_key.length) {
-                       return True;
+                       return true;
                }
        }
        if (feature & GENSEC_FEATURE_DCE_STYLE) {
-               return True;
+               return true;
        }
        if (feature & GENSEC_FEATURE_ASYNC_REPLIES) {
                if (gensec_ntlmssp_state->neg_flags & NTLMSSP_NEGOTIATE_NTLM2) {
-                       return True;
+                       return true;
                }
        }
-       return False;
+       return false;
 }
 
 NTSTATUS gensec_ntlmssp_start(struct gensec_security *gensec_security)
@@ -418,7 +418,7 @@ static const struct gensec_security_ops gensec_ntlmssp_security_ops = {
        .session_key    = gensec_ntlmssp_session_key,
        .session_info   = gensec_ntlmssp_session_info,
        .have_feature   = gensec_ntlmssp_have_feature,
-       .enabled        = True,
+       .enabled        = true,
        .priority       = GENSEC_NTLMSSP
 };
 
index 282fcbc51056e4ae3637247ae6670ce5976678cd..e39e2d9407a3e70d38fb2044e25fb3f58160819f 100644 (file)
@@ -93,7 +93,7 @@ struct gensec_ntlmssp_state
                                                  style 'challenge caching' */
 
        char *user;
-       char *domain;
+       const char *domain;
        const char *workstation;
        char *server_domain;
 
@@ -156,7 +156,6 @@ struct gensec_ntlmssp_state
                                   DATA_BLOB *nt_session_key, DATA_BLOB *lm_session_key);
 
        const char *server_name;
-       const char *(*get_domain)(void);
 
        bool doing_ntlm2; 
 
index 3f507908f25deaa8959bbb1e3b9887ce244d65fb..61d6f1b25f719d9730a377fb92a374719964690c 100644 (file)
@@ -28,6 +28,7 @@
 #include "libcli/auth/libcli_auth.h"
 #include "auth/credentials/credentials.h"
 #include "auth/gensec/gensec.h"
+#include "param/param.h"
 
 /*********************************************************************
  Client side NTLMSSP
@@ -47,7 +48,7 @@ NTSTATUS ntlmssp_client_initial(struct gensec_security *gensec_security,
                                TALLOC_CTX *out_mem_ctx, 
                                DATA_BLOB in, DATA_BLOB *out) 
 {
-       struct gensec_ntlmssp_state *gensec_ntlmssp_state = gensec_security->private_data;
+       struct gensec_ntlmssp_state *gensec_ntlmssp_state = (struct gensec_ntlmssp_state *)gensec_security->private_data;
 
        if (gensec_ntlmssp_state->unicode) {
                gensec_ntlmssp_state->neg_flags |= NTLMSSP_NEGOTIATE_UNICODE;
@@ -65,7 +66,7 @@ NTSTATUS ntlmssp_client_initial(struct gensec_security *gensec_security,
                  "NTLMSSP",
                  NTLMSSP_NEGOTIATE,
                  gensec_ntlmssp_state->neg_flags,
-                 gensec_ntlmssp_state->get_domain()
+                 gensec_ntlmssp_state->domain
                  cli_credentials_get_workstation(gensec_security->credentials));
 
        gensec_ntlmssp_state->expected_state = NTLMSSP_CHALLENGE;
@@ -87,7 +88,7 @@ NTSTATUS ntlmssp_client_challenge(struct gensec_security *gensec_security,
                                  TALLOC_CTX *out_mem_ctx,
                                  const DATA_BLOB in, DATA_BLOB *out) 
 {
-       struct gensec_ntlmssp_state *gensec_ntlmssp_state = gensec_security->private_data;
+       struct gensec_ntlmssp_state *gensec_ntlmssp_state = (struct gensec_ntlmssp_state *)gensec_security->private_data;
        uint32_t chal_flags, ntlmssp_command, unkn1, unkn2;
        DATA_BLOB server_domain_blob;
        DATA_BLOB challenge_blob;
@@ -180,7 +181,7 @@ NTSTATUS ntlmssp_client_challenge(struct gensec_security *gensec_security,
        if (gensec_ntlmssp_state->use_nt_response) {
                flags |= CLI_CRED_NTLM_AUTH;
        }
-       if (lp_client_lanman_auth()) {
+       if (lp_client_lanman_auth(global_loadparm)) {
                flags |= CLI_CRED_LANMAN_AUTH;
        }
 
@@ -205,7 +206,7 @@ NTSTATUS ntlmssp_client_challenge(struct gensec_security *gensec_security,
        }
        
        if ((gensec_ntlmssp_state->neg_flags & NTLMSSP_NEGOTIATE_LM_KEY) 
-           && lp_client_lanman_auth() && lm_session_key.length == 16) {
+           && lp_client_lanman_auth(global_loadparm) && lm_session_key.length == 16) {
                DATA_BLOB new_session_key = data_blob_talloc(mem_ctx, NULL, 16);
                if (lm_response.length == 24) {
                        SMBsesskeygen_lm_sess_key(lm_session_key.data, lm_response.data, 
@@ -292,21 +293,21 @@ NTSTATUS gensec_ntlmssp_client_start(struct gensec_security *gensec_security)
        nt_status = gensec_ntlmssp_start(gensec_security);
        NT_STATUS_NOT_OK_RETURN(nt_status);
 
-       gensec_ntlmssp_state = gensec_security->private_data;
+       gensec_ntlmssp_state = (struct gensec_ntlmssp_state *)gensec_security->private_data;
 
        gensec_ntlmssp_state->role = NTLMSSP_CLIENT;
 
-       gensec_ntlmssp_state->get_domain = lp_workgroup;
+       gensec_ntlmssp_state->domain = lp_workgroup(global_loadparm);
 
-       gensec_ntlmssp_state->unicode = lp_parm_bool(-1, "ntlmssp_client", "unicode", True);
+       gensec_ntlmssp_state->unicode = lp_parm_bool(global_loadparm, NULL, "ntlmssp_client", "unicode", true);
 
-       gensec_ntlmssp_state->use_nt_response = lp_parm_bool(-1, "ntlmssp_client", "send_nt_reponse", True);
+       gensec_ntlmssp_state->use_nt_response = lp_parm_bool(global_loadparm, NULL, "ntlmssp_client", "send_nt_reponse", true);
 
-       gensec_ntlmssp_state->allow_lm_key = (lp_client_lanman_auth() 
-                                             && (lp_parm_bool(-1, "ntlmssp_client", "allow_lm_key", False)
-                                                 || lp_parm_bool(-1, "ntlmssp_client", "lm_key", False)));
+       gensec_ntlmssp_state->allow_lm_key = (lp_client_lanman_auth(global_loadparm
+                                             && (lp_parm_bool(global_loadparm, NULL, "ntlmssp_client", "allow_lm_key", false)
+                                                 || lp_parm_bool(global_loadparm, NULL, "ntlmssp_client", "lm_key", false)));
 
-       gensec_ntlmssp_state->use_ntlmv2 = lp_client_ntlmv2_auth();
+       gensec_ntlmssp_state->use_ntlmv2 = lp_client_ntlmv2_auth(global_loadparm);
 
        gensec_ntlmssp_state->expected_state = NTLMSSP_INITIAL;
 
@@ -314,31 +315,31 @@ NTSTATUS gensec_ntlmssp_client_start(struct gensec_security *gensec_security)
                NTLMSSP_NEGOTIATE_NTLM |
                NTLMSSP_REQUEST_TARGET;
 
-       if (lp_parm_bool(-1, "ntlmssp_client", "128bit", True)) {
+       if (lp_parm_bool(global_loadparm, NULL, "ntlmssp_client", "128bit", true)) {
                gensec_ntlmssp_state->neg_flags |= NTLMSSP_NEGOTIATE_128;               
        }
 
-       if (lp_parm_bool(-1, "ntlmssp_client", "56bit", False)) {
+       if (lp_parm_bool(global_loadparm, NULL, "ntlmssp_client", "56bit", false)) {
                gensec_ntlmssp_state->neg_flags |= NTLMSSP_NEGOTIATE_56;                
        }
 
-       if (lp_parm_bool(-1, "ntlmssp_client", "lm_key", False)) {
+       if (lp_parm_bool(global_loadparm, NULL, "ntlmssp_client", "lm_key", false)) {
                gensec_ntlmssp_state->neg_flags |= NTLMSSP_NEGOTIATE_LM_KEY;
        }
 
-       if (lp_parm_bool(-1, "ntlmssp_client", "keyexchange", True)) {
+       if (lp_parm_bool(global_loadparm, NULL, "ntlmssp_client", "keyexchange", true)) {
                gensec_ntlmssp_state->neg_flags |= NTLMSSP_NEGOTIATE_KEY_EXCH;          
        }
 
-       if (lp_parm_bool(-1, "ntlmssp_client", "alwayssign", True)) {
+       if (lp_parm_bool(global_loadparm, NULL, "ntlmssp_client", "alwayssign", true)) {
                gensec_ntlmssp_state->neg_flags |= NTLMSSP_NEGOTIATE_ALWAYS_SIGN;               
        }
 
-       if (lp_parm_bool(-1, "ntlmssp_client", "ntlm2", True)) {
+       if (lp_parm_bool(global_loadparm, NULL, "ntlmssp_client", "ntlm2", true)) {
                gensec_ntlmssp_state->neg_flags |= NTLMSSP_NEGOTIATE_NTLM2;             
        } else {
                /* apparently we can't do ntlmv2 if we don't do ntlm2 */
-               gensec_ntlmssp_state->use_ntlmv2 = False;
+               gensec_ntlmssp_state->use_ntlmv2 = false;
        }
 
        if (gensec_security->want_features & GENSEC_FEATURE_SESSION_KEY) {
index 98594f1fc3ec1e849ca239b7cd1cbec4ba501de1..ea9b52e432d4b4c66988bd32ad92abac281e12ed 100644 (file)
@@ -40,7 +40,7 @@
   d = word (4 bytes)
   C = constant ascii string
  */
-BOOL msrpc_gen(TALLOC_CTX *mem_ctx, DATA_BLOB *blob,
+bool msrpc_gen(TALLOC_CTX *mem_ctx, DATA_BLOB *blob,
               const char *format, ...)
 {
        int i;
@@ -66,7 +66,7 @@ BOOL msrpc_gen(TALLOC_CTX *mem_ctx, DATA_BLOB *blob,
                        head_size += 8;
                        n = push_ucs2_talloc(pointers, (void **)&pointers[i].data, s);
                        if (n == -1) {
-                               return False;
+                               return false;
                        }
                        pointers[i].length = n;
                        pointers[i].length -= 2;
@@ -77,7 +77,7 @@ BOOL msrpc_gen(TALLOC_CTX *mem_ctx, DATA_BLOB *blob,
                        head_size += 8;
                        n = push_ascii_talloc(pointers, (char **)&pointers[i].data, s);
                        if (n == -1) {
-                               return False;
+                               return false;
                        }
                        pointers[i].length = n;
                        pointers[i].length -= 1;
@@ -89,7 +89,7 @@ BOOL msrpc_gen(TALLOC_CTX *mem_ctx, DATA_BLOB *blob,
                        s = va_arg(ap, char *);
                        n = push_ucs2_talloc(pointers, (void **)&pointers[i].data, s);
                        if (n == -1) {
-                               return False;
+                               return false;
                        }
                        pointers[i].length = n;
                        pointers[i].length -= 2;
@@ -175,14 +175,14 @@ BOOL msrpc_gen(TALLOC_CTX *mem_ctx, DATA_BLOB *blob,
        
        talloc_free(pointers);
 
-       return True;
+       return true;
 }
 
 
 /* a helpful macro to avoid running over the end of our blob */
 #define NEED_DATA(amount) \
 if ((head_ofs + amount) > blob->length) { \
-        return False; \
+        return false; \
 }
 
 /*
@@ -198,7 +198,7 @@ if ((head_ofs + amount) > blob->length) { \
   C = constant ascii string
  */
 
-BOOL msrpc_parse(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob,
+bool msrpc_parse(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob,
                 const char *format, ...)
 {
        int i;
@@ -226,21 +226,21 @@ BOOL msrpc_parse(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob,
                        } else {
                                /* make sure its in the right format - be strict */
                                if ((len1 != len2) || (ptr + len1 < ptr) || (ptr + len1 < len1) || (ptr + len1 > blob->length)) {
-                                       return False;
+                                       return false;
                                }
                                if (len1 & 1) {
                                        /* if odd length and unicode */
-                                       return False;
+                                       return false;
                                }
                                if (blob->data + ptr < (uint8_t *)ptr || blob->data + ptr < blob->data)
-                                       return False;
+                                       return false;
 
                                if (0 < len1) {
                                        pull_string(p, blob->data + ptr, sizeof(p), 
                                                    len1, STR_UNICODE|STR_NOALIGN);
                                        (*ps) = talloc_strdup(mem_ctx, p);
                                        if (!(*ps)) {
-                                               return False;
+                                               return false;
                                        }
                                } else {
                                        (*ps) = "";
@@ -259,18 +259,18 @@ BOOL msrpc_parse(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob,
                                *ps = "";
                        } else {
                                if ((len1 != len2) || (ptr + len1 < ptr) || (ptr + len1 < len1) || (ptr + len1 > blob->length)) {
-                                       return False;
+                                       return false;
                                }
 
                                if (blob->data + ptr < (uint8_t *)ptr || blob->data + ptr < blob->data)
-                                       return False;   
+                                       return false;   
 
                                if (0 < len1) {
                                        pull_string(p, blob->data + ptr, sizeof(p), 
                                                    len1, STR_ASCII|STR_NOALIGN);
                                        (*ps) = talloc_strdup(mem_ctx, p);
                                        if (!(*ps)) {
-                                               return False;
+                                               return false;
                                        }
                                } else {
                                        (*ps) = "";
@@ -289,11 +289,11 @@ BOOL msrpc_parse(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob,
                        } else {
                                /* make sure its in the right format - be strict */
                                if ((len1 != len2) || (ptr + len1 < ptr) || (ptr + len1 < len1) || (ptr + len1 > blob->length)) {
-                                       return False;
+                                       return false;
                                }
 
                                if (blob->data + ptr < (uint8_t *)ptr || blob->data + ptr < blob->data)
-                                       return False;   
+                                       return false;   
                        
                                *b = data_blob_talloc(mem_ctx, blob->data + ptr, len1);
                        }
@@ -304,7 +304,7 @@ BOOL msrpc_parse(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob,
                        /* make sure its in the right format - be strict */
                        NEED_DATA(len1);
                        if (blob->data + head_ofs < (uint8_t *)head_ofs || blob->data + head_ofs < blob->data)
-                               return False;   
+                               return false;   
                        
                        *b = data_blob_talloc(mem_ctx, blob->data + head_ofs, len1);
                        head_ofs += len1;
@@ -318,18 +318,18 @@ BOOL msrpc_parse(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob,
                        s = va_arg(ap, char *);
 
                        if (blob->data + head_ofs < (uint8_t *)head_ofs || blob->data + head_ofs < blob->data)
-                               return False;   
+                               return false;   
        
                        head_ofs += pull_string(p, blob->data+head_ofs, sizeof(p), 
                                                blob->length - head_ofs, 
                                                STR_ASCII|STR_TERMINATE);
                        if (strcmp(s, p) != 0) {
-                               return False;
+                               return false;
                        }
                        break;
                }
        }
        va_end(ap);
 
-       return True;
+       return true;
 }
index 18e38cf6bfd1eb7b954e2a3c6feaf67e4aa4faf4..79a17e5733af0d8b1f08f8b111041a016a0049bc 100644 (file)
 #include "auth/ntlmssp/ntlmssp.h"
 #include "auth/ntlmssp/msrpc_parse.h"
 #include "lib/crypto/crypto.h"
-#include "pstring.h"
 #include "system/filesys.h"
 #include "libcli/auth/libcli_auth.h"
 #include "auth/credentials/credentials.h"
 #include "auth/gensec/gensec.h"
 #include "auth/auth.h"
+#include "param/param.h"
 
 /** 
  * Set a username on an NTLMSSP context - ensures it is talloc()ed 
@@ -98,66 +98,13 @@ static const char *ntlmssp_target_name(struct gensec_ntlmssp_state *gensec_ntlms
                        return gensec_ntlmssp_state->server_name;
                } else {
                        *chal_flags |= NTLMSSP_TARGET_TYPE_DOMAIN;
-                       return gensec_ntlmssp_state->get_domain();
+                       return gensec_ntlmssp_state->domain;
                };
        } else {
                return "";
        }
 }
 
-/*
-  Andrew, please remove these totally bogus calls when you get time
-*/
-static BOOL get_myfullname(char *my_name)
-{
-       pstring hostname;
-
-       *hostname = 0;
-
-       /* get my host name */
-       if (gethostname(hostname, sizeof(hostname)) == -1) {
-               DEBUG(0,("gethostname failed\n"));
-               return False;
-       } 
-
-       /* Ensure null termination. */
-       hostname[sizeof(hostname)-1] = '\0';
-
-       if (my_name)
-               fstrcpy(my_name, hostname);
-       return True;
-}
-
-static BOOL get_mydomname(char *my_domname)
-{
-       pstring hostname;
-       char *p;
-
-       /* arrgh! relies on full name in system */
-
-       *hostname = 0;
-       /* get my host name */
-       if (gethostname(hostname, sizeof(hostname)) == -1) {
-               DEBUG(0,("gethostname failed\n"));
-               return False;
-       } 
-
-       /* Ensure null termination. */
-       hostname[sizeof(hostname)-1] = '\0';
-
-       p = strchr_m(hostname, '.');
-
-       if (!p)
-               return False;
-
-       p++;
-       
-       if (my_domname)
-               fstrcpy(my_domname, p);
-
-       return True;
-}
-
 
 
 /**
@@ -174,9 +121,10 @@ NTSTATUS ntlmssp_server_negotiate(struct gensec_security *gensec_security,
                                  TALLOC_CTX *out_mem_ctx, 
                                  const DATA_BLOB in, DATA_BLOB *out) 
 {
-       struct gensec_ntlmssp_state *gensec_ntlmssp_state = gensec_security->private_data;
+       struct gensec_ntlmssp_state *gensec_ntlmssp_state = (struct gensec_ntlmssp_state *)gensec_security->private_data;
        DATA_BLOB struct_blob;
-       fstring dnsname, dnsdomname;
+       char dnsname[MAXHOSTNAMELEN], dnsdomname[MAXHOSTNAMELEN];
+       const char *p;
        uint32_t neg_flags = 0;
        uint32_t ntlmssp_command, chal_flags;
        const uint8_t *cryptkey;
@@ -227,13 +175,20 @@ NTSTATUS ntlmssp_server_negotiate(struct gensec_security *gensec_security,
        gensec_ntlmssp_state->chal = data_blob_talloc(gensec_ntlmssp_state, cryptkey, 8);
        gensec_ntlmssp_state->internal_chal = data_blob_talloc(gensec_ntlmssp_state, cryptkey, 8);
 
-       /* This should be a 'netbios domain -> DNS domain' mapping */
-       dnsdomname[0] = '\0';
-       get_mydomname(dnsdomname);
-       strlower_m(dnsdomname);
-       
        dnsname[0] = '\0';
-       get_myfullname(dnsname);
+       if (gethostname(dnsname, sizeof(dnsname)) == -1) {
+               DEBUG(0,("gethostname failed\n"));
+               return NT_STATUS_UNSUCCESSFUL;
+       }
+
+       /* This should be a 'netbios domain -> DNS domain' mapping */
+       p = strchr(dnsname, '.');
+       if (p != NULL) {
+               safe_strcpy(dnsdomname, p+1, sizeof(dnsdomname));
+               strlower_m(dnsdomname);
+       } else {
+               dnsdomname[0] = '\0';
+       }
        
        /* This creates the 'blob' of names that appears at the end of the packet */
        if (chal_flags & NTLMSSP_CHAL_TARGET_INFO) 
@@ -404,7 +359,7 @@ static NTSTATUS ntlmssp_server_preauth(struct gensec_ntlmssp_state *gensec_ntlms
                        SMB_ASSERT(gensec_ntlmssp_state->internal_chal.data 
                                   && gensec_ntlmssp_state->internal_chal.length == 8);
                        
-                       gensec_ntlmssp_state->doing_ntlm2 = True;
+                       gensec_ntlmssp_state->doing_ntlm2 = true;
 
                        memcpy(gensec_ntlmssp_state->crypt.ntlm2.session_nonce, gensec_ntlmssp_state->internal_chal.data, 8);
                        memcpy(&gensec_ntlmssp_state->crypt.ntlm2.session_nonce[8], gensec_ntlmssp_state->lm_resp.data, 8);
@@ -447,7 +402,7 @@ static NTSTATUS ntlmssp_server_postauth(struct gensec_security *gensec_security,
                                        DATA_BLOB *user_session_key, 
                                        DATA_BLOB *lm_session_key) 
 {
-       struct gensec_ntlmssp_state *gensec_ntlmssp_state = gensec_security->private_data;
+       struct gensec_ntlmssp_state *gensec_ntlmssp_state = (struct gensec_ntlmssp_state *)gensec_security->private_data;
        NTSTATUS nt_status;
        DATA_BLOB session_key = data_blob(NULL, 0);
 
@@ -594,7 +549,7 @@ NTSTATUS ntlmssp_server_auth(struct gensec_security *gensec_security,
                             TALLOC_CTX *out_mem_ctx, 
                             const DATA_BLOB in, DATA_BLOB *out) 
 {      
-       struct gensec_ntlmssp_state *gensec_ntlmssp_state = gensec_security->private_data;
+       struct gensec_ntlmssp_state *gensec_ntlmssp_state = (struct gensec_ntlmssp_state *)gensec_security->private_data;
        DATA_BLOB user_session_key = data_blob(NULL, 0);
        DATA_BLOB lm_session_key = data_blob(NULL, 0);
        NTSTATUS nt_status;
@@ -662,7 +617,7 @@ static const uint8_t *auth_ntlmssp_get_challenge(const struct gensec_ntlmssp_sta
  *
  * @return If the effective challenge used by the auth subsystem may be modified
  */
-static BOOL auth_ntlmssp_may_set_challenge(const struct gensec_ntlmssp_state *gensec_ntlmssp_state)
+static bool auth_ntlmssp_may_set_challenge(const struct gensec_ntlmssp_state *gensec_ntlmssp_state)
 {
        return auth_challenge_may_be_modified(gensec_ntlmssp_state->auth_context);
 }
@@ -706,7 +661,7 @@ static NTSTATUS auth_ntlmssp_check_password(struct gensec_ntlmssp_state *gensec_
 
        user_info->logon_parameters = MSV1_0_ALLOW_SERVER_TRUST_ACCOUNT | MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT;
        user_info->flags = 0;
-       user_info->mapped_state = False;
+       user_info->mapped_state = false;
        user_info->client.account_name = gensec_ntlmssp_state->user;
        user_info->client.domain_name = gensec_ntlmssp_state->domain;
        user_info->workstation_name = gensec_ntlmssp_state->workstation;
@@ -760,7 +715,7 @@ NTSTATUS gensec_ntlmssp_session_info(struct gensec_security *gensec_security,
                                     struct auth_session_info **session_info) 
 {
        NTSTATUS nt_status;
-       struct gensec_ntlmssp_state *gensec_ntlmssp_state = gensec_security->private_data;
+       struct gensec_ntlmssp_state *gensec_ntlmssp_state = (struct gensec_ntlmssp_state *)gensec_security->private_data;
 
        nt_status = auth_generate_session_info(gensec_ntlmssp_state, gensec_ntlmssp_state->server_info, session_info);
        NT_STATUS_NOT_OK_RETURN(nt_status);
@@ -784,21 +739,21 @@ NTSTATUS gensec_ntlmssp_server_start(struct gensec_security *gensec_security)
        nt_status = gensec_ntlmssp_start(gensec_security);
        NT_STATUS_NOT_OK_RETURN(nt_status);
 
-       gensec_ntlmssp_state = gensec_security->private_data;
+       gensec_ntlmssp_state = (struct gensec_ntlmssp_state *)gensec_security->private_data;
 
        gensec_ntlmssp_state->role = NTLMSSP_SERVER;
 
        gensec_ntlmssp_state->workstation = NULL;
-       gensec_ntlmssp_state->server_name = lp_netbios_name();
+       gensec_ntlmssp_state->server_name = lp_netbios_name(global_loadparm);
 
-       gensec_ntlmssp_state->get_domain = lp_workgroup;
+       gensec_ntlmssp_state->domain = lp_workgroup(global_loadparm);
 
        gensec_ntlmssp_state->expected_state = NTLMSSP_NEGOTIATE;
 
-       gensec_ntlmssp_state->allow_lm_key = (lp_lanman_auth() 
-                                         && lp_parm_bool(-1, "ntlmssp_server", "allow_lm_key", False));
+       gensec_ntlmssp_state->allow_lm_key = (lp_lanman_auth(global_loadparm
+                                         && lp_parm_bool(global_loadparm, NULL, "ntlmssp_server", "allow_lm_key", false));
 
-       gensec_ntlmssp_state->server_multiple_authentications = False;
+       gensec_ntlmssp_state->server_multiple_authentications = false;
        
        gensec_ntlmssp_state->neg_flags = 
                NTLMSSP_NEGOTIATE_NTLM | NTLMSSP_UNKNOWN_02000000;
@@ -807,23 +762,23 @@ NTSTATUS gensec_ntlmssp_server_start(struct gensec_security *gensec_security)
        gensec_ntlmssp_state->nt_resp = data_blob(NULL, 0);
        gensec_ntlmssp_state->encrypted_session_key = data_blob(NULL, 0);
 
-       if (lp_parm_bool(-1, "ntlmssp_server", "128bit", True)) {
+       if (lp_parm_bool(global_loadparm, NULL, "ntlmssp_server", "128bit", true)) {
                gensec_ntlmssp_state->neg_flags |= NTLMSSP_NEGOTIATE_128;               
        }
 
-       if (lp_parm_bool(-1, "ntlmssp_server", "56bit", True)) {
+       if (lp_parm_bool(global_loadparm, NULL, "ntlmssp_server", "56bit", true)) {
                gensec_ntlmssp_state->neg_flags |= NTLMSSP_NEGOTIATE_56;                
        }
 
-       if (lp_parm_bool(-1, "ntlmssp_server", "keyexchange", True)) {
+       if (lp_parm_bool(global_loadparm, NULL, "ntlmssp_server", "keyexchange", true)) {
                gensec_ntlmssp_state->neg_flags |= NTLMSSP_NEGOTIATE_KEY_EXCH;          
        }
 
-       if (lp_parm_bool(-1, "ntlmssp_server", "alwayssign", True)) {
+       if (lp_parm_bool(global_loadparm, NULL, "ntlmssp_server", "alwayssign", true)) {
                gensec_ntlmssp_state->neg_flags |= NTLMSSP_NEGOTIATE_ALWAYS_SIGN;               
        }
 
-       if (lp_parm_bool(-1, "ntlmssp_server", "ntlm2", True)) {
+       if (lp_parm_bool(global_loadparm, NULL, "ntlmssp_server", "ntlm2", true)) {
                gensec_ntlmssp_state->neg_flags |= NTLMSSP_NEGOTIATE_NTLM2;             
        }
 
@@ -844,7 +799,7 @@ NTSTATUS gensec_ntlmssp_server_start(struct gensec_security *gensec_security)
        gensec_ntlmssp_state->may_set_challenge = auth_ntlmssp_may_set_challenge;
        gensec_ntlmssp_state->set_challenge = auth_ntlmssp_set_challenge;
        gensec_ntlmssp_state->check_password = auth_ntlmssp_check_password;
-       gensec_ntlmssp_state->server_role = lp_server_role();
+       gensec_ntlmssp_state->server_role = lp_server_role(global_loadparm);
 
        return NT_STATUS_OK;
 }
index 4eb6156debfe606c1b7cd67c1a0a69bbe665c467..dd8dd450c89dbe250d0f31fc200bfea4209b5dec 100644 (file)
@@ -65,7 +65,7 @@ static NTSTATUS ntlmssp_make_packet_signature(struct gensec_ntlmssp_state *gense
                                              const uint8_t *data, size_t length, 
                                              const uint8_t *whole_pdu, size_t pdu_length, 
                                              enum ntlmssp_direction direction,
-                                             DATA_BLOB *sig, BOOL encrypt_sig)
+                                             DATA_BLOB *sig, bool encrypt_sig)
 {
        if (gensec_ntlmssp_state->neg_flags & NTLMSSP_NEGOTIATE_NTLM2) {
 
@@ -137,12 +137,12 @@ _PUBLIC_ NTSTATUS gensec_ntlmssp_sign_packet(struct gensec_security *gensec_secu
                                    const uint8_t *whole_pdu, size_t pdu_length, 
                                    DATA_BLOB *sig)
 {
-       struct gensec_ntlmssp_state *gensec_ntlmssp_state = gensec_security->private_data;
+       struct gensec_ntlmssp_state *gensec_ntlmssp_state = (struct gensec_ntlmssp_state *)gensec_security->private_data;
 
        return ntlmssp_make_packet_signature(gensec_ntlmssp_state, sig_mem_ctx, 
                                             data, length, 
                                             whole_pdu, pdu_length, 
-                                            NTLMSSP_SEND, sig, True);
+                                            NTLMSSP_SEND, sig, true);
 }
 
 /**
@@ -156,7 +156,7 @@ NTSTATUS gensec_ntlmssp_check_packet(struct gensec_security *gensec_security,
                                     const uint8_t *whole_pdu, size_t pdu_length, 
                                     const DATA_BLOB *sig)
 {
-       struct gensec_ntlmssp_state *gensec_ntlmssp_state = gensec_security->private_data;
+       struct gensec_ntlmssp_state *gensec_ntlmssp_state = (struct gensec_ntlmssp_state *)gensec_security->private_data;
 
        DATA_BLOB local_sig;
        NTSTATUS nt_status;
@@ -169,7 +169,7 @@ NTSTATUS gensec_ntlmssp_check_packet(struct gensec_security *gensec_security,
        nt_status = ntlmssp_make_packet_signature(gensec_ntlmssp_state, sig_mem_ctx, 
                                                  data, length, 
                                                  whole_pdu, pdu_length, 
-                                                 NTLMSSP_RECEIVE, &local_sig, True);
+                                                 NTLMSSP_RECEIVE, &local_sig, true);
        
        if (!NT_STATUS_IS_OK(nt_status)) {
                DEBUG(0, ("NTLMSSP packet check failed with %s\n", nt_errstr(nt_status)));
@@ -220,7 +220,7 @@ NTSTATUS gensec_ntlmssp_seal_packet(struct gensec_security *gensec_security,
                                    const uint8_t *whole_pdu, size_t pdu_length, 
                                    DATA_BLOB *sig)
 {
-       struct gensec_ntlmssp_state *gensec_ntlmssp_state = gensec_security->private_data;
+       struct gensec_ntlmssp_state *gensec_ntlmssp_state = (struct gensec_ntlmssp_state *)gensec_security->private_data;
        NTSTATUS nt_status;
        if (!gensec_ntlmssp_state->session_key.length) {
                DEBUG(3, ("NO session key, cannot seal packet\n"));
@@ -236,7 +236,7 @@ NTSTATUS gensec_ntlmssp_seal_packet(struct gensec_security *gensec_security,
                nt_status = ntlmssp_make_packet_signature(gensec_ntlmssp_state, sig_mem_ctx, 
                                                          data, length, 
                                                          whole_pdu, pdu_length, 
-                                                         NTLMSSP_SEND, sig, False);
+                                                         NTLMSSP_SEND, sig, false);
                arcfour_crypt_sbox(gensec_ntlmssp_state->crypt.ntlm2.send_seal_arcfour_state, data, length);
                if (gensec_ntlmssp_state->neg_flags & NTLMSSP_NEGOTIATE_KEY_EXCH) {
                        arcfour_crypt_sbox(gensec_ntlmssp_state->crypt.ntlm2.send_seal_arcfour_state, sig->data+4, 8);
@@ -281,7 +281,7 @@ NTSTATUS gensec_ntlmssp_unseal_packet(struct gensec_security *gensec_security,
                                      const uint8_t *whole_pdu, size_t pdu_length, 
                                      const DATA_BLOB *sig)
 {
-       struct gensec_ntlmssp_state *gensec_ntlmssp_state = gensec_security->private_data;
+       struct gensec_ntlmssp_state *gensec_ntlmssp_state = (struct gensec_ntlmssp_state *)gensec_security->private_data;
        if (!gensec_ntlmssp_state->session_key.length) {
                DEBUG(3, ("NO session key, cannot unseal packet\n"));
                return NT_STATUS_NO_USER_SESSION_KEY;
index 6e160941d8684b7028eb99f73497aae0028a9f30..ad8d77ecf86049ca0e4ba1da31316728b4ba67c8 100644 (file)
@@ -27,6 +27,7 @@
 #include "libcli/security/security.h"
 #include "libcli/ldap/ldap.h"
 #include "librpc/gen_ndr/ndr_netlogon.h"
+#include "param/param.h"
 
 const char *user_attrs[] = {
        /* required for the krb5 kdc */
@@ -75,7 +76,7 @@ const char *domain_ref_attrs[] =  {"nETBIOSName", "nCName",
  bitmask.
 ****************************************************************************/
                                                                                                               
-static BOOL logon_hours_ok(struct ldb_message *msg, const char *name_for_logs)
+static bool logon_hours_ok(struct ldb_message *msg, const char *name_for_logs)
 {
        /* In logon hours first bit is Sunday from 12AM to 1AM */
        const struct ldb_val *hours;
@@ -87,12 +88,12 @@ static BOOL logon_hours_ok(struct ldb_message *msg, const char *name_for_logs)
        hours = ldb_msg_find_ldb_val(msg, "logonHours");
        if (!hours) {
                DEBUG(5,("logon_hours_ok: No hours restrictions for user %s\n", name_for_logs));
-               return True;
+               return true;
        }
 
        if (hours->length != 168/8) {
                DEBUG(5,("logon_hours_ok: malformed logon hours restrictions for user %s\n", name_for_logs));
-               return True;            
+               return true;            
        }
 
        lasttime = time(NULL);
@@ -100,7 +101,7 @@ static BOOL logon_hours_ok(struct ldb_message *msg, const char *name_for_logs)
        if (!utctime) {
                DEBUG(1, ("logon_hours_ok: failed to get gmtime. Failing logon for user %s\n",
                        name_for_logs));
-               return False;
+               return false;
        }
 
        /* find the corresponding byte and bit */
@@ -121,14 +122,14 @@ static BOOL logon_hours_ok(struct ldb_message *msg, const char *name_for_logs)
                DEBUG(1, ("logon_hours_ok: Account for user %s not allowed to "
                          "logon at this time (%s).\n",
                          name_for_logs, asct ));
-               return False;
+               return false;
        }
 
        asct = asctime(utctime);
        DEBUG(5,("logon_hours_ok: user %s allowed to logon at this time (%s)\n",
                name_for_logs, asct ? asct : "UNKNOWN TIME" ));
 
-       return True;
+       return true;
 }
 
 /****************************************************************************
@@ -204,7 +205,7 @@ _PUBLIC_ NTSTATUS authsam_account_ok(TALLOC_CTX *mem_ctx,
 
        /* Test workstation. Workstation list is comma separated. */
        if (logon_workstation && workstation_list && *workstation_list) {
-               BOOL invalid_ws = True;
+               bool invalid_ws = true;
                int i;
                const char **workstations = str_list_make(mem_ctx, workstation_list, ",");
                
@@ -213,7 +214,7 @@ _PUBLIC_ NTSTATUS authsam_account_ok(TALLOC_CTX *mem_ctx,
                                  workstations[i], logon_workstation));
 
                        if (strequal(workstations[i], logon_workstation)) {
-                               invalid_ws = False;
+                               invalid_ws = false;
                                break;
                        }
                }
@@ -343,7 +344,7 @@ _PUBLIC_ NTSTATUS authsam_make_server_info(TALLOC_CTX *mem_ctx, struct ldb_conte
        server_info->home_drive = talloc_strdup(server_info, str);
        NT_STATUS_HAVE_NO_MEMORY(server_info->home_drive);
 
-       server_info->logon_server = talloc_strdup(server_info, lp_netbios_name());
+       server_info->logon_server = talloc_strdup(server_info, lp_netbios_name(global_loadparm));
        NT_STATUS_HAVE_NO_MEMORY(server_info->logon_server);
 
        server_info->last_logon = samdb_result_nttime(msg, "lastLogon", 0);
@@ -370,7 +371,7 @@ _PUBLIC_ NTSTATUS authsam_make_server_info(TALLOC_CTX *mem_ctx, struct ldb_conte
        server_info->user_session_key = user_sess_key;
        server_info->lm_session_key = lm_sess_key;
 
-       server_info->authenticated = True;
+       server_info->authenticated = true;
 
        *_server_info = server_info;
 
index 984831bf900891f8ccfb7bca20107a341ae51ef5..e5aa69776f3cf44a215d7a128ad5b24c8c2e4c7b 100755 (executable)
@@ -63,11 +63,6 @@ $AUTOCONF $IPATHS || exit 1
 
 rm -rf autom4te*.cache
 
-if test x"${AUTOGEN_SKIP_SWAT}" != x"yes"; then
-       echo "$0: building Web Application Framework (SWAT)"
-       (cd ../webapps/swat && make distclean build || exit 1)
-fi
-
 echo "Now run ./configure and then make."
 exit 0
 
index 41600986c820d219d18107918fbb9a76a1b04712..9e82e6aaf199e7c7e2e47d8dae1aa83123deb4bc 100644 (file)
@@ -67,21 +67,14 @@ AC_DEFUN([SMB_EXT_LIB_FROM_PKGCONFIG],
                echo "*** The pkg-config script could not be found. Make sure it is"
                echo "*** in your path, or set the PKG_CONFIG environment variable"
                echo "*** to the full path to pkg-config."
-               echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
-               SMB_EXT_LIB($1)
-               SMB_ENABLE($1, NO)
-               $4
-
+               echo "*** Or see http://pkg-config.freedesktop.org/ to get pkg-config."
+                       ac_cv_$1_found=no
        else
                if $PKG_CONFIG --atleast-pkgconfig-version 0.9.0; then
                        AC_MSG_CHECKING(for $2)
 
-                       if test "$SMB_$1"x = "NO"x ; then
-                               SMB_ENABLE($1, NO)
-                               AC_MSG_RESULT(disabled)         
-                               $4
-                       elif $PKG_CONFIG --exists '$2' ; then
-                               AC_MSG_RESULT(yes)
+                       if $PKG_CONFIG --exists '$2' ; then
+                               AC_MSG_RESULT(yes)
 
 
                                $1_CFLAGS="`$PKG_CONFIG --cflags '$2'`"
@@ -101,23 +94,27 @@ AC_DEFUN([SMB_EXT_LIB_FROM_PKGCONFIG],
                                        [`$PKG_CONFIG --cflags-only-other '$2'`],
                                        [`$PKG_CONFIG --cflags-only-I '$2'`],
                                        [`$PKG_CONFIG --libs-only-other '$2'` `$PKG_CONFIG --libs-only-L '$2'`])
-                               $3
+                               ac_cv_$1_found=yes
 
                        else
-                               SMB_EXT_LIB($1)
-                               SMB_ENABLE($1, NO)
                                AC_MSG_RESULT(no)
                                $PKG_CONFIG --errors-to-stdout --print-errors '$2'
-                               $4
+                               ac_cv_$1_found=no
                        fi
                else
                        echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
-                               echo "*** See http://www.freedesktop.org/software/pkgconfig"
-                               SMB_EXT_LIB($1)
-                               SMB_ENABLE($1, NO)
-                               $4
+                               echo "*** See http://pkg-config.freedesktop.org/"
+                               ac_cv_$1_found=no
                fi
        fi
+       if test x$ac_cv_$1_found = x"yes"; then
+               ifelse([$3], [], [echo -n ""], [$3])
+       else
+               ifelse([$4], [], [
+                         SMB_EXT_LIB($1)
+                         SMB_ENABLE($1, NO)
+               ], [$4])
+       fi
 ])
 
 dnl SMB_INCLUDE_MK(file)
index 77b497d25ccd915d8fe3a2c07696826dc56a7a3d..a96aad227175f309cdd336f2a7e83468a7be95b8 100644 (file)
@@ -91,11 +91,17 @@ sub check_module($$$)
        }
 
        if (not defined($mod->{OUTPUT_TYPE})) {
-               $mod->{OUTPUT_TYPE} = $default_ot;
+               if ($INPUT->{$mod->{SUBSYSTEM}}->{TYPE} eq "EXT_LIB") {
+                       $mod->{OUTPUT_TYPE} = ["SHARED_LIBRARY"];
+               } else {
+                       $mod->{OUTPUT_TYPE} = $default_ot;
+               }
        }
 
        if (grep(/SHARED_LIBRARY/, @{$mod->{OUTPUT_TYPE}})) {
-               $mod->{INSTALLDIR} = "MODULESDIR/$mod->{SUBSYSTEM}";
+               my $sane_subsystem = lc($mod->{SUBSYSTEM});
+               $sane_subsystem =~ s/^lib//;
+               $mod->{INSTALLDIR} = "MODULESDIR/$sane_subsystem";
                push (@{$mod->{PRIVATE_DEPENDENCIES}}, $mod->{SUBSYSTEM});
        } 
        if (grep(/INTEGRATED/, @{$mod->{OUTPUT_TYPE}})) {
index b88a1ea72e67fd0206903cbf2e6606ed06e0ed9f..b1bd215af18df00362e820b0f0075ae98e35d7cc 100644 (file)
@@ -88,8 +88,7 @@ MODULESDIR = $self->{config}->{modulesdir}
 INCLUDEDIR = $self->{config}->{includedir}
 CONFIGDIR = $self->{config}->{sysconfdir}
 DATADIR = $self->{config}->{datadir}
-WEBAPPSDIR = \$(DATADIR)/webapps
-SERVICESDIR = \$(DATADIR)/services
+SWATDIR = \$(DATADIR)/swat
 JSDIR = \$(DATADIR)/js
 SETUPDIR = \$(DATADIR)/setup
 VARDIR = $self->{config}->{localstatedir}
@@ -115,17 +114,19 @@ sub _prepare_suffix_rules($)
        }
 
        $self->output(<< "__EOD__"
+FIRST_PREREQ = $first_prereq
+
 # Dependencies command
 DEPENDS = \$(CC) -M -MG -MP -MT \$(<:.c=.o) -MT \$@ \\
     `\$(PERL) \$(srcdir)/script/cflags.pl \$@` \\
-    \$(CFLAGS) $first_prereq -o \$@
+    \$(CFLAGS) \$(FIRST_PREREQ) -o \$@
 # Dependencies for host objects
 HDEPENDS = \$(CC) -M -MG -MP -MT \$(<:.c=.ho) -MT \$@ \\
     `\$(PERL) \$(srcdir)/script/cflags.pl \$@` \\
-    \$(HOSTCC_CFLAGS) $first_prereq -o \$@
+    \$(HOSTCC_CFLAGS) \$(FIRST_PREREQ) -o \$@
 # Dependencies for precompiled headers
 PCHDEPENDS = \$(CC) -M -MG -MT include/includes.h.gch -MT \$@ \\
-    \$(CFLAGS) $first_prereq -o \$@
+    \$(CFLAGS) \$(FIRST_PREREQ) -o \$@
 
 # \$< is broken in older BSD versions:
 # when \$@ is foo/bar.o, \$< could be torture/foo/bar.c
@@ -137,20 +138,20 @@ PCHDEPENDS = \$(CC) -M -MG -MT include/includes.h.gch -MT \$@ \\
 
 # Run a static analysis checker
 CHECK = \$(CC_CHECKER) `\$(PERL) \$(srcdir)/script/cflags.pl \$@` \\
-    \$(CFLAGS) \$(PICFLAG) -c $first_prereq -o \$@
+    \$(CFLAGS) \$(PICFLAG) -c \$(FIRST_PREREQ) -o \$@
 
 # Run the configured compiler
 COMPILE = \$(CC) `\$(PERL) \$(srcdir)/script/cflags.pl \$@` \\
-    \$(CFLAGS) \$(PICFLAG) -c $first_prereq -o \$@
+    \$(CFLAGS) \$(PICFLAG) -c \$(FIRST_PREREQ) -o \$@
 
 # Run the compiler for the build host
 HCOMPILE = \$(HOSTCC) `\$(PERL) \$(srcdir)/script/cflags.pl \$@` \\
-    \$(HOSTCC_CFLAGS) -c $first_prereq -o \$@
+    \$(HOSTCC_CFLAGS) -c \$(FIRST_PREREQ) -o \$@
 
 # Precompile headers
 PCHCOMPILE = @\$(CC) -Ilib/replace \\
     `\$(PERL) \$(srcdir)/script/cflags.pl \$@` \\
-    \$(CFLAGS) \$(PICFLAG) -c $first_prereq -o \$@
+    \$(CFLAGS) \$(PICFLAG) -c \$(FIRST_PREREQ) -o \$@
 
 __EOD__
 );
@@ -284,24 +285,27 @@ sub SharedLibrary($$)
 
        my $init_obj = "";
        my $has_static_lib = 0;
-       
+
        if ($ctx->{TYPE} eq "LIBRARY") {
                push (@{$self->{shared_libs}}, "$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}") if (defined($ctx->{SO_VERSION}));
                push (@{$self->{installable_shared_libs}}, "$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}") if (defined($ctx->{SO_VERSION}));
        } elsif ($ctx->{TYPE} eq "MODULE") {
+               my $sane_subsystem = lc($ctx->{SUBSYSTEM});
+               $sane_subsystem =~ s/^lib//;
+       
                push (@{$self->{shared_modules}}, "$ctx->{TARGET_SHARED_LIBRARY}");
                push (@{$self->{plugins}}, "$ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME}");
 
-               $self->{install_plugins} .= "\t\@echo Installing $ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME} as \$(DESTDIR)\$(MODULESDIR)/$ctx->{SUBSYSTEM}/$ctx->{LIBRARY_REALNAME}\n";
-               $self->{install_plugins} .= "\t\@mkdir -p \$(DESTDIR)\$(MODULESDIR)/$ctx->{SUBSYSTEM}/\n";
-               $self->{install_plugins} .= "\t\@cp $ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME} \$(DESTDIR)\$(MODULESDIR)/$ctx->{SUBSYSTEM}/$ctx->{LIBRARY_REALNAME}\n";
-               $self->{uninstall_plugins} .= "\t\@echo Uninstalling \$(DESTDIR)\$(MODULESDIR)/$ctx->{SUBSYSTEM}/$ctx->{LIBRARY_REALNAME}\n";
-               $self->{uninstall_plugins} .= "\t\@-rm \$(DESTDIR)\$(MODULESDIR)/$ctx->{SUBSYSTEM}/$ctx->{LIBRARY_REALNAME}\n";
+               $self->{install_plugins} .= "\t\@echo Installing $ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME} as \$(DESTDIR)\$(MODULESDIR)/$sane_subsystem/$ctx->{LIBRARY_REALNAME}\n";
+               $self->{install_plugins} .= "\t\@mkdir -p \$(DESTDIR)\$(MODULESDIR)/$sane_subsystem/\n";
+               $self->{install_plugins} .= "\t\@cp $ctx->{SHAREDDIR}/$ctx->{LIBRARY_REALNAME} \$(DESTDIR)\$(MODULESDIR)/$sane_subsystem/$ctx->{LIBRARY_REALNAME}\n";
+               $self->{uninstall_plugins} .= "\t\@echo Uninstalling \$(DESTDIR)\$(MODULESDIR)/$sane_subsystem/$ctx->{LIBRARY_REALNAME}\n";
+               $self->{uninstall_plugins} .= "\t\@-rm \$(DESTDIR)\$(MODULESDIR)/$sane_subsystem/$ctx->{LIBRARY_REALNAME}\n";
                if (defined($ctx->{ALIASES})) {
                        foreach (@{$ctx->{ALIASES}}) {
-                               $self->{install_plugins} .= "\t\@rm -f \$(DESTDIR)\$(MODULESDIR)/$ctx->{SUBSYSTEM}/$_.\$(SHLIBEXT)\n";
-                               $self->{install_plugins} .= "\t\@ln -fs $ctx->{LIBRARY_REALNAME} \$(DESTDIR)\$(MODULESDIR)/$ctx->{SUBSYSTEM}/$_.\$(SHLIBEXT)\n";
-                               $self->{uninstall_plugins} .= "\t\@-rm \$(DESTDIR)\$(MODULESDIR)/$ctx->{SUBSYSTEM}/$_.\$(SHLIBEXT)\n";
+                               $self->{install_plugins} .= "\t\@rm -f \$(DESTDIR)\$(MODULESDIR)/$sane_subsystem/$_.\$(SHLIBEXT)\n";
+                               $self->{install_plugins} .= "\t\@ln -fs $ctx->{LIBRARY_REALNAME} \$(DESTDIR)\$(MODULESDIR)/$sane_subsystem/$_.\$(SHLIBEXT)\n";
+                               $self->{uninstall_plugins} .= "\t\@-rm \$(DESTDIR)\$(MODULESDIR)/$sane_subsystem/$_.\$(SHLIBEXT)\n";
                        }
                }
        }
index ec273b894a328305d55fe4829e87af9b92be14b1..42e68abec982b3136dd4eb863bee7655e76213f4 100644 (file)
@@ -55,9 +55,11 @@ sub generate_shared_library($)
                $lib->{SHAREDDIR} = $lib->{BASEDIR};
        } else {
                if ($lib->{TYPE} eq "MODULE") {
-                       $lib->{SHAREDDIR} = "bin/modules/$lib->{SUBSYSTEM}";
+                       my $sane_subsystem = lc($lib->{SUBSYSTEM});
+                       $sane_subsystem =~ s/^lib//;
+                       $lib->{SHAREDDIR} = "bin/modules/$sane_subsystem";
                        $lib->{LIBRARY_REALNAME} = $link_name;
-                       $lib->{LIBRARY_REALNAME} =~ s/^$lib->{SUBSYSTEM}_//g;
+                       $lib->{LIBRARY_REALNAME} =~ s/^$sane_subsystem\_//g;
                        $lib->{LIBRARY_REALNAME}.= ".\$(SHLIBEXT)";
                } else {
                        $lib->{SHAREDDIR} = "bin/shared";
index 7b84266d62880470e0a365b608717cf7d00a5ea4..541a569a3b650d2bf9dd609ca604c539213ee7d9 100644 (file)
@@ -34,6 +34,13 @@ sub showitem($$$)
        }
 }
 
+sub showisexternal($$$)
+{
+       my ($output, $desc, $name) = @_;
+       print "Using external $desc: ".
+           (($output->{$name}->{TYPE} eq "EXT_LIB")?"yes":"no")."\n";
+}
+
 sub show($$)
 {
        my ($output,$config) = @_;
@@ -47,8 +54,10 @@ sub show($$)
        showitem($output, "using libblkid", ["BLKID"]);
        showitem($output, "using iconv", ["ICONV"]);
        showitem($output, "using pam", ["PAM"]);
-       print "Using external popt: ".
-           (($output->{LIBPOPT}->{TYPE} eq "EXT_LIB")?"yes":"no")."\n";
+       showisexternal($output, "popt", "LIBPOPT");
+       showisexternal($output, "talloc", "LIBTALLOC");
+       showisexternal($output, "tdb", "LIBTDB");
+       showisexternal($output, "ldb", "LIBLDB");
        print "Developer mode: ".(enabled($config->{developer})?"yes":"no")."\n";
        print "Automatic dependencies: ".
            (enabled($config->{automatic_dependencies})
index a1a1414c98d9a7c66fe61f3800111f613b9b3778..466444ace81b0e420930212c42f087b57aa01454 100644 (file)
@@ -33,6 +33,7 @@
 #include "dsdb/samdb/samdb.h"
 #include "db_wrap.h"
 #include "auth/auth.h"
+#include "param/param.h"
 
 /*
   handle incoming cldap requests
@@ -94,7 +95,7 @@ static NTSTATUS cldapd_add_socket(struct cldapd_server *cldapd, const char *addr
        NT_STATUS_HAVE_NO_MEMORY(cldapsock);
 
        socket_address = socket_address_from_strings(cldapsock, cldapsock->sock->backend_name, 
-                                                    address, lp_cldap_port());
+                                                    address, lp_cldap_port(global_loadparm));
        if (!socket_address) {
                talloc_free(cldapsock);
                return NT_STATUS_NO_MEMORY;
@@ -103,7 +104,7 @@ static NTSTATUS cldapd_add_socket(struct cldapd_server *cldapd, const char *addr
        status = socket_listen(cldapsock->sock, socket_address, 0, 0);
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0,("Failed to bind to %s:%d - %s\n", 
-                        address, lp_cldap_port(), nt_errstr(status)));
+                        address, lp_cldap_port(global_loadparm), nt_errstr(status)));
                talloc_free(cldapsock);
                return status;
        }
@@ -127,7 +128,7 @@ static NTSTATUS cldapd_startup_interfaces(struct cldapd_server *cldapd)
 
        /* if we are allowing incoming packets from any address, then
           we need to bind to the wildcard address */
-       if (!lp_bind_interfaces_only()) {
+       if (!lp_bind_interfaces_only(global_loadparm)) {
                status = cldapd_add_socket(cldapd, "0.0.0.0");
                NT_STATUS_NOT_OK_RETURN(status);
        } else {
index 1dec27990589365f1119e023f860b98d1687737b..6b398a4144ed51a5ed0f247df67ccc06da296ed2 100644 (file)
@@ -33,6 +33,7 @@
 #include "db_wrap.h"
 #include "system/network.h"
 #include "lib/socket/netif.h"
+#include "param/param.h"
 
 /*
   fill in the cldap netlogon union for a given version
@@ -50,7 +51,7 @@ static NTSTATUS cldapd_netlogon_fill(struct cldapd_server *cldapd,
        const char *dom_attrs[] = {"objectGUID", NULL};
        struct ldb_message **ref_res, **dom_res;
        int ret, count = 0;
-       const char **services = lp_server_services();
+       const char **services = lp_server_services(global_loadparm);
        uint32_t server_type;
        const char *pdc_name;
        struct GUID domain_uuid;
@@ -135,15 +136,17 @@ static NTSTATUS cldapd_netlogon_fill(struct cldapd_server *cldapd,
                server_type |= NBT_SERVER_KDC;
        }
 
-       pdc_name         = talloc_asprintf(mem_ctx, "\\\\%s", lp_netbios_name());
+       pdc_name         = talloc_asprintf(mem_ctx, "\\\\%s", lp_netbios_name(global_loadparm));
        domain_uuid      = samdb_result_guid(dom_res[0], "objectGUID");
-       realm            = samdb_result_string(ref_res[0], "dnsRoot", lp_realm());
-       dns_domain       = samdb_result_string(ref_res[0], "dnsRoot", lp_realm());
+       realm            = samdb_result_string(ref_res[0], "dnsRoot", lp_realm(global_loadparm));
+       dns_domain       = samdb_result_string(ref_res[0], "dnsRoot", lp_realm(global_loadparm));
        pdc_dns_name     = talloc_asprintf(mem_ctx, "%s.%s", 
-                                          strlower_talloc(mem_ctx, lp_netbios_name()), 
+                                          strlower_talloc(mem_ctx, 
+                                                          lp_netbios_name(global_loadparm)), 
                                           dns_domain);
 
-       flatname         = samdb_result_string(ref_res[0], "nETBIOSName", lp_workgroup());
+       flatname         = samdb_result_string(ref_res[0], "nETBIOSName", 
+                                              lp_workgroup(global_loadparm));
        server_site      = "Default-First-Site-Name";
        client_site      = "Default-First-Site-Name";
        pdc_ip           = iface_best_ip(src_address);
@@ -187,7 +190,7 @@ static NTSTATUS cldapd_netlogon_fill(struct cldapd_server *cldapd,
                netlogon->logon5.dns_domain   = dns_domain;
                netlogon->logon5.pdc_dns_name = pdc_dns_name;
                netlogon->logon5.domain       = flatname;
-               netlogon->logon5.pdc_name     = lp_netbios_name();
+               netlogon->logon5.pdc_name     = lp_netbios_name(global_loadparm);
                netlogon->logon5.user_name    = user;
                netlogon->logon5.server_site  = server_site;
                netlogon->logon5.client_site  = client_site;
@@ -202,7 +205,7 @@ static NTSTATUS cldapd_netlogon_fill(struct cldapd_server *cldapd,
                netlogon->logon13.dns_domain   = dns_domain;
                netlogon->logon13.pdc_dns_name = pdc_dns_name;
                netlogon->logon13.domain       = flatname;
-               netlogon->logon13.pdc_name     = lp_netbios_name();
+               netlogon->logon13.pdc_name     = lp_netbios_name(global_loadparm);
                netlogon->logon13.user_name    = user;
                netlogon->logon13.server_site  = server_site;
                netlogon->logon13.client_site  = client_site;
@@ -286,7 +289,7 @@ void cldapd_netlogon_request(struct cldap_socket *cldap,
        }
 
        if (domain_guid == NULL && domain == NULL) {
-               domain = lp_realm();
+               domain = lp_realm(global_loadparm);
        }
 
        if (version == -1) {
index 28c9059efaa00d5d4fc099a490bbc8b41ab8f482..5735d127e4f0146a80a8d8c921dd30afce01d367 100644 (file)
@@ -24,6 +24,7 @@
 #include "lib/cmdline/popt_common.h"
 
 #include "cifsdd.h"
+#include "param/param.h"
 
 const char * const PROGNAME = "cifsdd";
 
@@ -102,7 +103,7 @@ static struct argdef args[] =
  */
 };
 
-struct argdef * find_named_arg(const char * arg)
+static struct argdef * find_named_arg(const char * arg)
 {
        int i;
 
@@ -218,7 +219,7 @@ fail:
        return;
 }
 
-BOOL check_arg_bool(const char * name)
+bool check_arg_bool(const char * name)
 {
        struct argdef * arg;
 
@@ -229,7 +230,7 @@ BOOL check_arg_bool(const char * name)
 
        DEBUG(0, ("invalid argument name: %s", name));
        SMB_ASSERT(0);
-       return(False);
+       return(false);
 }
 
 uint64_t check_arg_numeric(const char * name)
@@ -394,7 +395,7 @@ static void set_max_xmit(uint64_t iomax)
        char buf[64];
 
        snprintf(buf, sizeof(buf), "%llu", (unsigned long long)iomax);
-       lp_set_cmdline("max xmit", buf);
+       lp_set_cmdline(global_loadparm, "max xmit", buf);
 }
 
 static int copy_files(void)
@@ -418,7 +419,7 @@ static int copy_files(void)
         * could accumulate a remainder if ibs and obs don't match.
         */
        iomax = 2 * MAX(ibs, obs);
-       if ((iobuf = malloc(iomax)) == NULL) {
+       if ((iobuf = malloc_array_p(uint8_t, iomax)) == NULL) {
                fprintf(stderr,
                        "%s: failed to allocate IO buffer of %llu bytes\n",
                        PROGNAME, (unsigned long long)iomax);
@@ -428,7 +429,7 @@ static int copy_files(void)
        set_max_xmit(MAX(ibs, obs));
 
        DEBUG(4, ("IO buffer size is %llu, max xmit is %d\n",
-                       (unsigned long long)iomax, lp_max_xmit()));
+                       (unsigned long long)iomax, lp_max_xmit(global_loadparm)));
 
        if (!(ifile = open_file("if"))) {
                return(FILESYS_EXIT_CODE);
@@ -442,7 +443,7 @@ static int copy_files(void)
        ifile->io_seek(ifile, check_arg_numeric("skip") * ibs);
        ofile->io_seek(ofile, check_arg_numeric("seek") * obs);
 
-       DEBUG(4, ("max xmit was negotiated to be %d\n", lp_max_xmit()));
+       DEBUG(4, ("max xmit was negotiated to be %d\n", lp_max_xmit(global_loadparm)));
 
        for (data_size = 0;;) {
 
@@ -548,9 +549,9 @@ int main(int argc, const char ** argv)
        set_arg_val("if", NULL);
        set_arg_val("of", NULL);
        /* Options. */
-       set_arg_val("direct", False);
-       set_arg_val("sync", False);
-       set_arg_val("oplock", False);
+       set_arg_val("direct", false);
+       set_arg_val("sync", false);
+       set_arg_val("oplock", false);
 
        pctx = poptGetContext(PROGNAME, argc, argv, poptions, 0);
        while ((i = poptGetNextOpt(pctx)) != -1) {
index 7dc9b8d081ba5933a8bdfb0273c4a9e6ff2f9a3b..5cea8cf3055ac2d543dfca4be509e60b169ae015 100644 (file)
@@ -38,7 +38,7 @@ struct fd_handle
 
 #define IO_HANDLE_TO_FD(h) (((struct fd_handle *)(h))->fd)
 
-static BOOL fd_seek_func(void * handle, uint64_t offset)
+static bool fd_seek_func(void * handle, uint64_t offset)
 {
        ssize_t ret;
 
@@ -46,13 +46,13 @@ static BOOL fd_seek_func(void * handle, uint64_t offset)
        if (ret < 0) {
                fprintf(stderr, "%s: seek failed: %s\n",
                                PROGNAME, strerror(errno));
-               return(False);
+               return(false);
        }
 
-       return(True);
+       return(true);
 }
 
-static BOOL fd_read_func(void * handle,
+static bool fd_read_func(void * handle,
                        uint8_t * buf,
                        uint64_t wanted,
                        uint64_t * actual)
@@ -64,14 +64,14 @@ static BOOL fd_read_func(void * handle,
                fprintf(stderr, "%s: %llu byte read failed: %s\n",
                                PROGNAME, (unsigned long long)wanted,
                                strerror(errno));
-               return(False);
+               return(false);
        }
 
        *actual = (uint64_t)ret;
-       return(True);
+       return(true);
 }
 
-static BOOL fd_write_func(void * handle,
+static bool fd_write_func(void * handle,
                        uint8_t * buf,
                        uint64_t wanted,
                        uint64_t * actual)
@@ -83,11 +83,11 @@ static BOOL fd_write_func(void * handle,
                fprintf(stderr, "%s: %llu byte write failed: %s\n",
                                PROGNAME, (unsigned long long)wanted,
                                strerror(errno));
-               return(False);
+               return(false);
        }
 
        *actual = (uint64_t)ret;
-       return(True);
+       return(true);
 }
 
 static struct dd_iohandle * open_fd_handle(const char * path,
@@ -149,16 +149,14 @@ struct cifs_handle
 
 #define IO_HANDLE_TO_SMB(h) ((struct cifs_handle *)(h))
 
-BOOL smb_seek_func(void * handle, uint64_t offset)
+static bool smb_seek_func(void * handle, uint64_t offset)
 {
        IO_HANDLE_TO_SMB(handle)->offset = offset;
-       return(True);
+       return(true);
 }
 
-BOOL smb_read_func(void * handle,
-               uint8_t * buf,
-               uint64_t wanted,
-               uint64_t * actual)
+static bool smb_read_func(void * handle, uint8_t * buf, uint64_t wanted,
+                         uint64_t * actual)
 {
        NTSTATUS                ret;
        union smb_read          r;
@@ -182,7 +180,7 @@ BOOL smb_read_func(void * handle,
                fprintf(stderr, "%s: %llu byte read failed: %s\n",
                                PROGNAME, (unsigned long long)wanted,
                                nt_errstr(ret));
-               return(False);
+               return(false);
        }
 
        /* Trap integer wrap. */
@@ -190,13 +188,11 @@ BOOL smb_read_func(void * handle,
 
        *actual = r.readx.out.nread;
        smbh->offset += r.readx.out.nread;
-       return(True);
+       return(true);
 }
 
-BOOL smb_write_func(void * handle,
-               uint8_t * buf,
-               uint64_t wanted,
-               uint64_t * actual)
+static bool smb_write_func(void * handle, uint8_t * buf, uint64_t wanted,
+                          uint64_t * actual)
 {
        NTSTATUS                ret;
        union smb_write         w;
@@ -216,12 +212,12 @@ BOOL smb_write_func(void * handle,
                fprintf(stderr, "%s: %llu byte write failed: %s\n",
                                PROGNAME, (unsigned long long)wanted,
                                nt_errstr(ret));
-               return(False);
+               return(false);
        }
 
        *actual = w.writex.out.nwritten;
        smbh->offset += w.writex.out.nwritten;
-       return(True);
+       return(true);
 }
 
 static struct smbcli_state * init_smb_session(const char * host,
@@ -363,7 +359,7 @@ struct dd_iohandle * dd_open_path(const char * path,
  * NOTE: The IO buffer is guaranteed to be big enough to fit
  * need_size + block_size bytes into it.
  */
-BOOL dd_fill_block(struct dd_iohandle * h,
+bool dd_fill_block(struct dd_iohandle * h,
                uint8_t * buf,
                uint64_t * buf_size,
                uint64_t need_size,
@@ -377,7 +373,7 @@ BOOL dd_fill_block(struct dd_iohandle * h,
        while (*buf_size < need_size) {
 
                if (!h->io_read(h, buf + (*buf_size), block_size, &read_size)) {
-                       return(False);
+                       return(false);
                }
 
                if (read_size == 0) {
@@ -402,14 +398,14 @@ BOOL dd_fill_block(struct dd_iohandle * h,
                }
        }
 
-       return(True);
+       return(true);
 }
 
 /* Flush a buffer that contains buf_size bytes. Use writes of block_size to do it,
  * and shift any remaining bytes back to the head of the buffer when there are
  * no more block_size sized IOs left.
  */
-BOOL dd_flush_block(struct dd_iohandle * h,
+bool dd_flush_block(struct dd_iohandle * h,
                uint8_t * buf,
                uint64_t * buf_size,
                uint64_t block_size)
@@ -423,13 +419,13 @@ BOOL dd_flush_block(struct dd_iohandle * h,
        if ((*buf_size) < block_size) {
 
                if (!h->io_write(h, buf, *buf_size, &write_size)) {
-                       return(False);
+                       return(false);
                }
 
                if (write_size == 0) {
                        fprintf(stderr, "%s: unexpectedly wrote 0 bytes\n",
                                        PROGNAME);
-                       return(False);
+                       return(false);
                }
 
                total_size += write_size;
@@ -441,13 +437,13 @@ BOOL dd_flush_block(struct dd_iohandle * h,
        while (((*buf_size) - total_size) >= block_size) {
 
                if (!h->io_write(h, buf + total_size, block_size, &write_size)) {
-                       return(False);
+                       return(false);
                }
 
                if (write_size == 0) {
                        fprintf(stderr, "%s: unexpectedly wrote 0 bytes\n",
                                        PROGNAME);
-                       return(False);
+                       return(false);
                }
 
                if (write_size == block_size) {
@@ -489,7 +485,7 @@ BOOL dd_flush_block(struct dd_iohandle * h,
                        (unsigned long long)(*buf_size)));
        }
 
-       return(True);
+       return(true);
 }
 
 /* vim: set sw=8 sts=8 ts=8 tw=79 : */
index 1fdbec4bfd010f5f90f1bb3e84e30e5a86f9d55b..44153616028c300a05bf54d0b0aed0e8d2883389 100644 (file)
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
+/* 
+ * TODO: remove this ... and don't use talloc_append_string()
+ *
+ * NOTE: I'm not changing the code yet, because I assume there're
+ *       some bugs in the existing code and I'm not sure how to fix
+ *      them correctly.
+ */
+#define TALLOC_DEPRECATED 1
+
 #include "includes.h"
 #include "version.h"
 #include "libcli/libcli.h"
@@ -40,6 +49,7 @@
 #include "libcli/security/security.h"
 #include "lib/smbreadline/smbreadline.h"
 #include "librpc/gen_ndr/ndr_nbt.h"
+#include "param/param.h"
 
 static int io_bufsize = 64512;
 
@@ -48,12 +58,12 @@ struct smbclient_context {
        struct smbcli_state *cli;
        char *fileselection;
        time_t newer_than;
-       BOOL prompt;
-       BOOL recurse;
+       bool prompt;
+       bool recurse;
        int archive_level;
-       BOOL lowercase;
+       bool lowercase;
        int printmode;
-       BOOL translation;
+       bool translation;
 };
 
 /* timing globals */
@@ -71,7 +81,7 @@ static double dir_total;
 /*******************************************************************
  Reduce a file name, removing .. elements.
 ********************************************************************/
-void dos_clean_name(char *s)
+static void dos_clean_name(char *s)
 {
        char *p=NULL,*r;
 
@@ -95,9 +105,9 @@ void dos_clean_name(char *s)
 write to a local file with CR/LF->LF translation if appropriate. return the 
 number taken from the buffer. This may not equal the number written.
 ****************************************************************************/
-static int writefile(int f, const void *_b, int n, BOOL translation)
+static int writefile(int f, const void *_b, int n, bool translation)
 {
-       const uint8_t *b = _b;
+       const uint8_t *b = (const uint8_t *)_b;
        int i;
 
        if (!translation) {
@@ -123,9 +133,9 @@ static int writefile(int f, const void *_b, int n, BOOL translation)
   read from a file with LF->CR/LF translation if appropriate. return the 
   number read. read approx n bytes.
 ****************************************************************************/
-static int readfile(void *_b, int n, XFILE *f, BOOL translation)
+static int readfile(void *_b, int n, XFILE *f, bool translation)
 {
-       uint8_t *b = _b;
+       uint8_t *b = (uint8_t *)_b;
        int i;
        int c;
 
@@ -280,16 +290,16 @@ static int cmd_cd(struct smbclient_context *ctx, const char **args)
 }
 
 
-BOOL mask_match(struct smbcli_state *c, const char *string, const char *pattern
-               BOOL is_case_sensitive)
+static bool mask_match(struct smbcli_state *c, const char *string
+               const char *pattern, bool is_case_sensitive)
 {
        char *p2, *s2;
-       BOOL ret;
+       bool ret;
 
        if (ISDOTDOT(string))
                string = ".";
        if (ISDOT(pattern))
-               return False;
+               return false;
        
        if (is_case_sensitive)
                return ms_fnmatch(pattern, string, 
@@ -309,27 +319,27 @@ BOOL mask_match(struct smbcli_state *c, const char *string, const char *pattern,
 /*******************************************************************
   decide if a file should be operated on
   ********************************************************************/
-static BOOL do_this_one(struct smbclient_context *ctx, struct clilist_file_info *finfo)
+static bool do_this_one(struct smbclient_context *ctx, struct clilist_file_info *finfo)
 {
-       if (finfo->attrib & FILE_ATTRIBUTE_DIRECTORY) return(True);
+       if (finfo->attrib & FILE_ATTRIBUTE_DIRECTORY) return(true);
 
        if (ctx->fileselection && 
-           !mask_match(ctx->cli, finfo->name,ctx->fileselection,False)) {
+           !mask_match(ctx->cli, finfo->name,ctx->fileselection,false)) {
                DEBUG(3,("mask_match %s failed\n", finfo->name));
-               return False;
+               return false;
        }
 
        if (ctx->newer_than && finfo->mtime < ctx->newer_than) {
                DEBUG(3,("newer_than %s failed\n", finfo->name));
-               return(False);
+               return(false);
        }
 
        if ((ctx->archive_level==1 || ctx->archive_level==2) && !(finfo->attrib & FILE_ATTRIBUTE_ARCHIVE)) {
                DEBUG(3,("archive %s failed\n", finfo->name));
-               return(False);
+               return(false);
        }
        
-       return(True);
+       return(true);
 }
 
 /****************************************************************************
@@ -361,8 +371,8 @@ static void do_du(struct smbclient_context *ctx, struct clilist_file_info *finfo
        }
 }
 
-static BOOL do_list_recurse;
-static BOOL do_list_dirs;
+static bool do_list_recurse;
+static bool do_list_dirs;
 static char *do_list_queue = 0;
 static long do_list_queue_size = 0;
 static long do_list_queue_start = 0;
@@ -396,7 +406,7 @@ static void init_do_list_queue(void)
 {
        reset_do_list_queue();
        do_list_queue_size = 1024;
-       do_list_queue = malloc(do_list_queue_size);
+       do_list_queue = malloc_array_p(char, do_list_queue_size);
        if (do_list_queue == 0) { 
                d_printf("malloc fail for size %d\n",
                         (int)do_list_queue_size);
@@ -490,7 +500,7 @@ a helper for do_list
   ****************************************************************************/
 static void do_list_helper(struct clilist_file_info *f, const char *mask, void *state)
 {
-       struct smbclient_context *ctx = state;
+       struct smbclient_context *ctx = (struct smbclient_context *)state;
 
        if (f->attrib & FILE_ATTRIBUTE_DIRECTORY) {
                if (do_list_dirs && do_this_one(ctx, f)) {
@@ -506,7 +516,7 @@ static void do_list_helper(struct clilist_file_info *f, const char *mask, void *
                        p = strrchr_m(mask2,'\\');
                        if (!p) return;
                        p[1] = 0;
-                       mask2 = talloc_asprintf_append(mask2, "%s\\*", f->name);
+                       mask2 = talloc_asprintf_append_buffer(mask2, "%s\\*", f->name);
                        add_to_do_list_queue(mask2);
                }
                return;
@@ -522,7 +532,7 @@ static void do_list_helper(struct clilist_file_info *f, const char *mask, void *
 a wrapper around smbcli_list that adds recursion
   ****************************************************************************/
 static void do_list(struct smbclient_context *ctx, const char *mask,uint16_t attribute,
-            void (*fn)(struct smbclient_context *, struct clilist_file_info *),BOOL rec, BOOL dirs)
+            void (*fn)(struct smbclient_context *, struct clilist_file_info *),bool rec, bool dirs)
 {
        static int in_do_list = 0;
 
@@ -618,7 +628,7 @@ static int cmd_dir(struct smbclient_context *ctx, const char **args)
                }
        }
 
-       do_list(ctx, mask, attribute, display_finfo, ctx->recurse, True);
+       do_list(ctx, mask, attribute, display_finfo, ctx->recurse, true);
 
        rc = do_dskattr(ctx);
 
@@ -649,7 +659,7 @@ static int cmd_du(struct smbclient_context *ctx, const char **args)
                mask = talloc_asprintf(ctx, "%s\\*", ctx->remote_cur_dir);
        }
 
-       do_list(ctx, mask, attribute, do_du, ctx->recurse, True);
+       do_list(ctx, mask, attribute, do_du, ctx->recurse, true);
 
        talloc_free(mask);
 
@@ -664,10 +674,10 @@ static int cmd_du(struct smbclient_context *ctx, const char **args)
 /****************************************************************************
   get a file from rname to lname
   ****************************************************************************/
-static int do_get(struct smbclient_context *ctx, char *rname, const char *lname, BOOL reget)
+static int do_get(struct smbclient_context *ctx, char *rname, const char *lname, bool reget)
 {  
        int handle = 0, fnum;
-       BOOL newhandle = False;
+       bool newhandle = false;
        uint8_t *data;
        struct timeval tp_start;
        int read_size = io_bufsize;
@@ -705,7 +715,7 @@ static int do_get(struct smbclient_context *ctx, char *rname, const char *lname,
                } else {
                        handle = open(lname, O_WRONLY|O_CREAT|O_TRUNC, 0644);
                }
-               newhandle = True;
+               newhandle = true;
        }
        if (handle < 0) {
                d_printf("Error opening local file %s\n",lname);
@@ -808,24 +818,24 @@ static int cmd_get(struct smbclient_context *ctx, const char **args)
        
        dos_clean_name(rname);
        
-       return do_get(ctx, rname, lname, False);
+       return do_get(ctx, rname, lname, false);
 }
 
 /****************************************************************************
  Put up a yes/no prompt.
 ****************************************************************************/
-static BOOL yesno(char *p)
+static bool yesno(char *p)
 {
        char ans[4];
        printf("%s",p);
 
        if (!fgets(ans,sizeof(ans)-1,stdin))
-               return(False);
+               return(false);
 
        if (*ans == 'y' || *ans == 'Y')
-               return(True);
+               return(true);
 
-       return(False);
+       return(false);
 }
 
 /****************************************************************************
@@ -852,7 +862,7 @@ static void do_mget(struct smbclient_context *ctx, struct clilist_file_info *fin
 
        if (!(finfo->attrib & FILE_ATTRIBUTE_DIRECTORY)) {
                asprintf(&rname, "%s%s",ctx->remote_cur_dir,finfo->name);
-               do_get(ctx, rname, finfo->name, False);
+               do_get(ctx, rname, finfo->name, false);
                SAFE_FREE(rname);
                return;
        }
@@ -860,7 +870,7 @@ static void do_mget(struct smbclient_context *ctx, struct clilist_file_info *fin
        /* handle directories */
        saved_curdir = talloc_strdup(NULL, ctx->remote_cur_dir);
 
-       ctx->remote_cur_dir = talloc_asprintf_append(NULL, "%s\\", finfo->name);
+       ctx->remote_cur_dir = talloc_asprintf_append_buffer(NULL, "%s\\", finfo->name);
 
        string_replace(discard_const_p(char, finfo->name), '\\', '/');
        if (ctx->lowercase) {
@@ -880,7 +890,7 @@ static void do_mget(struct smbclient_context *ctx, struct clilist_file_info *fin
 
        mget_mask = talloc_asprintf(NULL, "%s*", ctx->remote_cur_dir);
        
-       do_list(ctx, mget_mask, FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_DIRECTORY,do_mget,False, True);
+       do_list(ctx, mget_mask, FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_DIRECTORY,do_mget,false, true);
        chdir("..");
        talloc_free(ctx->remote_cur_dir);
 
@@ -916,7 +926,7 @@ static int cmd_more(struct smbclient_context *ctx, const char **args)
        rname = talloc_asprintf(ctx, "%s%s", ctx->remote_cur_dir, args[1]);
        dos_clean_name(rname);
 
-       rc = do_get(ctx, rname, lname, False);
+       rc = do_get(ctx, rname, lname, false);
 
        pager=getenv("PAGER");
 
@@ -949,14 +959,14 @@ static int cmd_mget(struct smbclient_context *ctx, const char **args)
                mget_mask = talloc_strdup(ctx, args[i]);
                if (mget_mask[0] != '\\')
                        mget_mask = talloc_append_string(ctx, mget_mask, "\\");
-               do_list(ctx, mget_mask, attribute,do_mget,False,True);
+               do_list(ctx, mget_mask, attribute,do_mget,false,true);
 
                talloc_free(mget_mask);
        }
 
        if (mget_mask == NULL) {
                mget_mask = talloc_asprintf(ctx, "%s\\*", ctx->remote_cur_dir);
-               do_list(ctx, mget_mask, attribute,do_mget,False,True);
+               do_list(ctx, mget_mask, attribute,do_mget,false,true);
                talloc_free(mget_mask);
        }
        
@@ -1046,7 +1056,7 @@ static int cmd_altname(struct smbclient_context *ctx, const char **args)
        if (!NT_STATUS_IS_OK(smbcli_qpathinfo_alt_name(ctx->cli->tree, name, &altname))) {
                d_printf("%s getting alt name for %s\n",
                         smbcli_errstr(ctx->cli->tree),name);
-               return(False);
+               return(false);
        }
        d_printf("%s\n", altname);
 
@@ -1057,7 +1067,7 @@ static int cmd_altname(struct smbclient_context *ctx, const char **args)
 /****************************************************************************
   put a single file
   ****************************************************************************/
-static int do_put(struct smbclient_context *ctx, char *rname, char *lname, BOOL reput)
+static int do_put(struct smbclient_context *ctx, char *rname, char *lname, bool reput)
 {
        int fnum;
        XFILE *f;
@@ -1214,7 +1224,7 @@ static int cmd_put(struct smbclient_context *ctx, const char **args)
                return 1;
        }
 
-       return do_put(ctx, rname, lname, False);
+       return do_put(ctx, rname, lname, false);
 }
 
 /*************************************
@@ -1224,7 +1234,7 @@ static int cmd_put(struct smbclient_context *ctx, const char **args)
 static struct file_list {
        struct file_list *prev, *next;
        char *file_path;
-       BOOL isdir;
+       bool isdir;
 } *file_list;
 
 /****************************************************************************
@@ -1248,17 +1258,17 @@ static void free_file_list (struct file_list * list)
   seek in a directory/file list until you get something that doesn't start with
   the specified name
   ****************************************************************************/
-static BOOL seek_list(struct file_list *list, char *name)
+static bool seek_list(struct file_list *list, char *name)
 {
        while (list) {
                trim_string(list->file_path,"./","\n");
                if (strncmp(list->file_path, name, strlen(name)) != 0) {
-                       return(True);
+                       return(true);
                }
                list = list->next;
        }
       
-       return(False);
+       return(false);
 }
 
 /****************************************************************************
@@ -1311,17 +1321,17 @@ static const char *readdirname(DIR *p)
 
 /****************************************************************************
   Recursive file matching function act as find
-  match must be always set to True when calling this function
+  match must be always set to true when calling this function
 ****************************************************************************/
 static int file_find(struct smbclient_context *ctx, struct file_list **list, const char *directory, 
-                     const char *expression, BOOL match)
+                     const char *expression, bool match)
 {
        DIR *dir;
        struct file_list *entry;
         struct stat statbuf;
         int ret;
         char *path;
-       BOOL isdir;
+       bool isdir;
        const char *dname;
 
         dir = opendir(directory);
@@ -1336,14 +1346,14 @@ static int file_find(struct smbclient_context *ctx, struct file_list **list, con
                        continue;
                }
 
-               isdir = False;
+               isdir = false;
                if (!match || !gen_fnmatch(expression, dname)) {
                        if (ctx->recurse) {
                                ret = stat(path, &statbuf);
                                if (ret == 0) {
                                        if (S_ISDIR(statbuf.st_mode)) {
-                                               isdir = True;
-                                               ret = file_find(ctx, list, path, expression, False);
+                                               isdir = true;
+                                               ret = file_find(ctx, list, path, expression, false);
                                        }
                                } else {
                                        d_printf("file_find: cannot stat file %s\n", path);
@@ -1389,7 +1399,7 @@ static int cmd_mput(struct smbclient_context *ctx, const char **args)
        
                file_list = NULL;
 
-               ret = file_find(ctx, &file_list, ".", args[i], True);
+               ret = file_find(ctx, &file_list, ".", args[i], true);
                if (ret) {
                        free_file_list(file_list);
                        continue;
@@ -1445,7 +1455,7 @@ static int cmd_mput(struct smbclient_context *ctx, const char **args)
 
                        dos_format(rname);
 
-                       do_put(ctx, rname, lname, False);
+                       do_put(ctx, rname, lname, false);
                }
                free_file_list(file_list);
                SAFE_FREE(quest);
@@ -1482,7 +1492,7 @@ static int cmd_print(struct smbclient_context *ctx, const char **args)
                slprintf(rname, sizeof(rname)-1, "stdin-%d", (int)getpid());
        }
 
-       return do_put(ctx, rname, lname, False);
+       return do_put(ctx, rname, lname, false);
 }
 
 
@@ -2460,7 +2470,7 @@ static int cmd_reget(struct smbclient_context *ctx, const char **args)
        else
                local_name = talloc_strdup(ctx, args[1]);
        
-       return do_get(ctx, remote_name, local_name, True);
+       return do_get(ctx, remote_name, local_name, true);
 }
 
 /****************************************************************************
@@ -2489,7 +2499,7 @@ static int cmd_reput(struct smbclient_context *ctx, const char **args)
        
        dos_clean_name(remote_name);
 
-       return do_put(ctx, remote_name, local_name, True);
+       return do_put(ctx, remote_name, local_name, true);
 }
 
 
@@ -2535,7 +2545,7 @@ static void display_share_result(struct srvsvc_NetShareCtr1 *ctr1)
 /****************************************************************************
 try and browse available shares on a host
 ****************************************************************************/
-static BOOL browse_host(const char *query_host)
+static bool browse_host(const char *query_host)
 {
        struct dcerpc_pipe *p;
        char *binding;
@@ -2554,7 +2564,7 @@ static BOOL browse_host(const char *query_host)
                d_printf("Failed to connect to %s - %s\n", 
                         binding, nt_errstr(status));
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        r.in.server_unc = talloc_asprintf(mem_ctx,"\\\\%s",dcerpc_server_name(p));
@@ -2584,19 +2594,19 @@ static BOOL browse_host(const char *query_host)
        if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
                d_printf("Failed NetShareEnumAll %s - %s/%s\n", 
                         binding, nt_errstr(status), win_errstr(r.out.result));
-               return False;
+               return false;
        }
 
-       return False;
+       return false;
 }
 
 /****************************************************************************
 try and browse available connections on a host
 ****************************************************************************/
-static BOOL list_servers(const char *wk_grp)
+static bool list_servers(const char *wk_grp)
 {
        d_printf("REWRITE: list servers not implemented\n");
-       return False;
+       return false;
 }
 
 /* Some constants for completing filename arguments */
@@ -2830,7 +2840,7 @@ static char **remote_completion(const char *text, int len)
        if (info.count == 2)
                info.matches[0] = strdup(info.matches[1]);
        else {
-               info.matches[0] = malloc(info.samelen+1);
+               info.matches[0] = malloc_array_p(char, info.samelen+1);
                if (!info.matches[0])
                        goto cleanup;
                strncpy(info.matches[0], info.matches[1], info.samelen);
@@ -2912,7 +2922,7 @@ static char **completion_fn(const char *text, int start, int end)
                        matches[0] = strdup(matches[1]);
                        break;
                default:
-                       matches[0] = malloc(samelen+1);
+                       matches[0] = malloc_array_p(char, samelen+1);
                        if (!matches[0])
                                goto cleanup;
                        strncpy(matches[0], matches[1], samelen);
@@ -3045,10 +3055,10 @@ static struct smbclient_context *do_connect(TALLOC_CTX *mem_ctx,
 /****************************************************************************
 handle a -L query
 ****************************************************************************/
-static int do_host_query(const char *query_host)
+static int do_host_query(const char *query_host, const char *workgroup)
 {
        browse_host(query_host);
-       list_servers(lp_workgroup());
+       list_servers(workgroup);
        return(0);
 }
 
@@ -3062,7 +3072,7 @@ static int do_message_op(const char *desthost, const char *destip, int name_type
        const char *server_name;
        struct smbcli_state *cli;
 
-       make_nbt_name_client(&calling, lp_netbios_name());
+       make_nbt_name_client(&calling, lp_netbios_name(global_loadparm));
 
        nbt_choose_called_name(NULL, &called, desthost, name_type);
 
@@ -3095,7 +3105,7 @@ static int do_message_op(const char *desthost, const char *destip, int name_type
        const char *dest_ip = NULL;
        int opt;
        const char *query_host = NULL;
-       BOOL message = False;
+       bool message = false;
        const char *desthost = NULL;
 #ifdef KANJI
        const char *term_code = KANJI;
@@ -3150,7 +3160,7 @@ static int do_message_op(const char *desthost, const char *destip, int name_type
                        name_type = 0x03; 
                        desthost = strdup(poptGetOptArg(pc));
                        if( 0 == port ) port = 139;
-                       message = True;
+                       message = true;
                        break;
                case 'I':
                        dest_ip = poptGetOptArg(pc);
@@ -3209,7 +3219,7 @@ static int do_message_op(const char *desthost, const char *destip, int name_type
        }
   
        if (query_host) {
-               return do_host_query(query_host);
+               return do_host_query(query_host, lp_workgroup(global_loadparm));
        }
 
        if (message) {
index ebac2a4bb00c4017fc3df01579d69b74301a2a3b..9f785004a0163c2d00867db9d36ec0b8c57cd941 100644 (file)
@@ -15,7 +15,8 @@ PRIVATE_DEPENDENCIES = \
                LIBCLI_LSA \
                LIBPOPT \
                POPT_SAMBA \
-               POPT_CREDENTIALS
+               POPT_CREDENTIALS \
+               LIBCLI_RAW 
 # End BINARY smbclient
 #################################
 
index f15b1f7030ec96fd26a4b09a995674070b2c79a5..31e7628fcd23a4dcc7d21feadb8c2449a4e6dd8c 100644 (file)
@@ -34,18 +34,18 @@ static pstring service;
 static pstring options;
 
 static struct ipv4_addr dest_ip;
-static BOOL have_ip;
+static bool have_ip;
 static int smb_port = 0;
-static BOOL got_user;
-static BOOL got_pass;
+static bool got_user;
+static bool got_pass;
 static uid_t mount_uid;
 static gid_t mount_gid;
 static int mount_ro;
 static uint_t mount_fmask;
 static uint_t mount_dmask;
-static BOOL use_kerberos;
+static bool use_kerberos;
 /* TODO: Add code to detect smbfs version in kernel */
-static BOOL status32_smbfs = False;
+static bool status32_smbfs = false;
 
 static void usage(void);
 
@@ -155,10 +155,10 @@ static struct smbcli_state *do_connection(char *the_service)
 
        /* SPNEGO doesn't work till we get NTSTATUS error support */
        /* But it is REQUIRED for kerberos authentication */
-       if(!use_kerberos) c->use_spnego = False;
+       if(!use_kerberos) c->use_spnego = false;
 
        /* The kernel doesn't yet know how to sign it's packets */
-       c->sign_info.allow_smb_signing = False;
+       c->sign_info.allow_smb_signing = false;
 
        /* Use kerberos authentication if specified */
        c->use_kerberos = use_kerberos;
@@ -204,7 +204,7 @@ static struct smbcli_state *do_connection(char *the_service)
            c->capabilities &= ~(CAP_UNICODE | CAP_LARGE_FILES | CAP_NT_SMBS |
                                 CAP_NT_FIND | CAP_STATUS32 |
                                 CAP_LEVEL_II_OPLOCKS);
-           c->force_dos_errors = True;
+           c->force_dos_errors = true;
        }
 
        if (!smbcli_session_setup(c, username, 
@@ -234,7 +234,7 @@ static struct smbcli_state *do_connection(char *the_service)
 
        DEBUG(4,("%d: tconx ok\n", sys_getpid()));
 
-       got_pass = True;
+       got_pass = true;
 
        return c;
 }
@@ -539,7 +539,7 @@ static void get_password_file(void)
 {
        int fd = -1;
        char *p;
-       BOOL close_it = False;
+       bool close_it = false;
        pstring spec;
        char pass[128];
 
@@ -547,7 +547,7 @@ static void get_password_file(void)
                pstrcpy(spec, "descriptor ");
                pstrcat(spec, p);
                sscanf(p, "%d", &fd);
-               close_it = False;
+               close_it = false;
        } else if ((p = getenv("PASSWD_FILE")) != NULL) {
                fd = open(p, O_RDONLY, 0);
                pstrcpy(spec, p);
@@ -556,7 +556,7 @@ static void get_password_file(void)
                                spec, strerror(errno));
                        exit(1);
                }
-               close_it = True;
+               close_it = true;
        }
 
        for(p = pass, *p = '\0'; /* ensure that pass is null-terminated */
@@ -637,7 +637,7 @@ static void read_credentials_file(char *filename)
                if (strwicmp("password", param) == 0)
                {
                        pstrcpy(password, val);
-                       got_pass = True;
+                       got_pass = true;
                }
                else if (strwicmp("username", param) == 0) {
                        pstrcpy(username, val);
@@ -750,12 +750,12 @@ static void parse_mount_smb(int argc, char **argv)
                         if (!strcmp(opts, "username") || 
                            !strcmp(opts, "logon")) {
                                char *lp;
-                               got_user = True;
+                               got_user = true;
                                pstrcpy(username,opteq+1);
                                if ((lp=strchr_m(username,'%'))) {
                                        *lp = 0;
                                        pstrcpy(password,lp+1);
-                                       got_pass = True;
+                                       got_pass = true;
                                        memset(strchr_m(opteq+1,'%')+1,'X',strlen(password));
                                }
                                if ((lp=strchr_m(username,'/'))) {
@@ -765,7 +765,7 @@ static void parse_mount_smb(int argc, char **argv)
                        } else if(!strcmp(opts, "passwd") ||
                                  !strcmp(opts, "password")) {
                                pstrcpy(password,opteq+1);
-                               got_pass = True;
+                               got_pass = true;
                                memset(opteq+1,'X',strlen(password));
                        } else if(!strcmp(opts, "credentials")) {
                                pstrcpy(credentials,opteq+1);
@@ -789,7 +789,7 @@ static void parse_mount_smb(int argc, char **argv)
                                        fprintf(stderr,"Can't resolve address %s\n", opteq+1);
                                        exit(1);
                                }
-                               have_ip = True;
+                               have_ip = true;
                        } else if(!strcmp(opts, "workgroup")) {
                                pstrcpy(workgroup,opteq+1);
                        } else if(!strcmp(opts, "sockopt")) {
@@ -807,11 +807,11 @@ static void parse_mount_smb(int argc, char **argv)
                                exit(1);
                        } else if(!strcmp(opts, "guest")) {
                                *password = '\0';
-                               got_pass = True;
+                               got_pass = true;
                        } else if(!strcmp(opts, "krb")) {
 #ifdef HAVE_KRB5
 
-                               use_kerberos = True;
+                               use_kerberos = true;
                                if(!status32_smbfs)
                                        fprintf(stderr, "Warning: kerberos support will only work for samba servers\n");
 #else
@@ -873,7 +873,7 @@ static void parse_mount_smb(int argc, char **argv)
                if ((p=strchr_m(username,'%'))) {
                        *p = 0;
                        pstrcpy(password,p+1);
-                       got_pass = True;
+                       got_pass = true;
                        memset(strchr_m(getenv("USER"),'%')+1,'X',strlen(password));
                }
                strupper(username);
@@ -881,19 +881,19 @@ static void parse_mount_smb(int argc, char **argv)
 
        if (getenv("PASSWD")) {
                pstrcpy(password,getenv("PASSWD"));
-               got_pass = True;
+               got_pass = true;
        }
 
        if (getenv("PASSWD_FD") || getenv("PASSWD_FILE")) {
                get_password_file();
-               got_pass = True;
+               got_pass = true;
        }
 
        if (*username == 0 && getenv("LOGNAME")) {
                pstrcpy(username,getenv("LOGNAME"));
        }
 
-       if (!lp_load()) {
+       if (!lp_load(dyn_CONFIGFILE)) {
                fprintf(stderr, "Can't load %s - run testparm to debug it\n", 
                        lp_config_file());
        }
@@ -901,7 +901,7 @@ static void parse_mount_smb(int argc, char **argv)
        parse_mount_smb(argc, argv);
 
        if (use_kerberos && !got_user) {
-               got_pass = True;
+               got_pass = true;
        }
 
        if (*credentials != 0) {
@@ -911,7 +911,7 @@ static void parse_mount_smb(int argc, char **argv)
        DEBUG(3,("mount.smbfs started (version %s)\n", VERSION));
 
        if (*workgroup == 0) {
-               pstrcpy(workgroup,lp_workgroup());
+               pstrcpy(workgroup, lp_workgroup());
        }
 
        if (!*my_netbios_name) {
index 45407b1accffa192d6cba699dfab1d4df0f8195a..72709420371f7c4da5a631f3b6438f27fc2ef71c 100644 (file)
@@ -176,7 +176,7 @@ static int          smb_print(struct smbcli_state *, char *, FILE *);
 
   setup_logging(argv[0], DEBUG_STDOUT);
 
-  if (!lp_load()) {
+  if (!lp_load(dyn_CONFIGFILE)) {
          fprintf(stderr, "ERROR: Can't load %s - run testparm to debug it\n", lp_config_file());
          return (1);
   }
index 606ca9b8b14f57e4c38d1b841b4b0e9f59c08f72..673ce2be4e121119459d38e89c14d01250c75426 100644 (file)
@@ -22,6 +22,7 @@
 #include "includes.h"
 #include "cluster/cluster.h"
 #include "cluster/cluster_private.h"
+#include "librpc/gen_ndr/misc.h"
 
 static struct cluster_ops *ops;
 
index fecc88da45a95b7f9ab4b1bfbc7437d3329a6a2a..8b633358a3b02bed17d433e26807b3d0b431e567 100644 (file)
@@ -148,7 +148,7 @@ static struct brl_handle *brl_ctdb_create_handle(TALLOC_CTX *mem_ctx, struct ntv
 /*
   see if two locking contexts are equal
 */
-static BOOL brl_ctdb_same_context(struct lock_context *ctx1, struct lock_context *ctx2)
+static bool brl_ctdb_same_context(struct lock_context *ctx1, struct lock_context *ctx2)
 {
        return (cluster_id_equal(&ctx1->server, &ctx2->server) &&
                ctx1->smbpid == ctx2->smbpid &&
@@ -158,7 +158,7 @@ static BOOL brl_ctdb_same_context(struct lock_context *ctx1, struct lock_context
 /*
   see if lck1 and lck2 overlap
 */
-static BOOL brl_ctdb_overlap(struct lock_struct *lck1, 
+static bool brl_ctdb_overlap(struct lock_struct *lck1, 
                        struct lock_struct *lck2)
 {
        /* this extra check is not redundent - it copes with locks
@@ -166,35 +166,35 @@ static BOOL brl_ctdb_overlap(struct lock_struct *lck1,
        if (lck1->size != 0 &&
            lck1->start == lck2->start &&
            lck1->size == lck2->size) {
-               return True;
+               return true;
        }
            
        if (lck1->start >= (lck2->start+lck2->size) ||
            lck2->start >= (lck1->start+lck1->size)) {
-               return False;
+               return false;
        }
-       return True;
+       return true;
 } 
 
 /*
  See if lock2 can be added when lock1 is in place.
 */
-static BOOL brl_ctdb_conflict(struct lock_struct *lck1, 
+static bool brl_ctdb_conflict(struct lock_struct *lck1, 
                         struct lock_struct *lck2)
 {
        /* pending locks don't conflict with anything */
        if (lck1->lock_type >= PENDING_READ_LOCK ||
            lck2->lock_type >= PENDING_READ_LOCK) {
-               return False;
+               return false;
        }
 
        if (lck1->lock_type == READ_LOCK && lck2->lock_type == READ_LOCK) {
-               return False;
+               return false;
        }
 
        if (brl_ctdb_same_context(&lck1->context, &lck2->context) &&
            lck2->lock_type == READ_LOCK && lck1->ntvfs == lck2->ntvfs) {
-               return False;
+               return false;
        }
 
        return brl_ctdb_overlap(lck1, lck2);
@@ -205,16 +205,16 @@ static BOOL brl_ctdb_conflict(struct lock_struct *lck1,
  Check to see if this lock conflicts, but ignore our own locks on the
  same fnum only.
 */
-static BOOL brl_ctdb_conflict_other(struct lock_struct *lck1, struct lock_struct *lck2)
+static bool brl_ctdb_conflict_other(struct lock_struct *lck1, struct lock_struct *lck2)
 {
        /* pending locks don't conflict with anything */
        if (lck1->lock_type >= PENDING_READ_LOCK ||
            lck2->lock_type >= PENDING_READ_LOCK) {
-               return False;
+               return false;
        }
 
        if (lck1->lock_type == READ_LOCK && lck2->lock_type == READ_LOCK) 
-               return False;
+               return false;
 
        /*
         * note that incoming write calls conflict with existing READ
@@ -224,7 +224,7 @@ static BOOL brl_ctdb_conflict_other(struct lock_struct *lck1, struct lock_struct
        if (brl_ctdb_same_context(&lck1->context, &lck2->context) &&
            lck1->ntvfs == lck2->ntvfs &&
            (lck2->lock_type == READ_LOCK || lck1->lock_type == WRITE_LOCK)) {
-               return False;
+               return false;
        }
 
        return brl_ctdb_overlap(lck1, lck2);
index b569a69c8d8d3bcce5f241288140751a52b4ce3d..84c095ec8a63bd7237c90ce7a3f1a7a3833e9c56 100644 (file)
@@ -79,7 +79,7 @@ int ctdb_call_local(struct ctdb_db_context *ctdb_db, struct ctdb_call *call,
 
        c->key = call->key;
        c->call_data = &call->call_data;
-       c->record_data.dptr = talloc_memdup(c, data->dptr, data->dsize);
+       c->record_data.dptr = (unsigned char *)talloc_memdup(c, data->dptr, data->dsize);
        c->record_data.dsize = data->dsize;
        CTDB_NO_MEMORY(ctdb, c->record_data.dptr);
        c->new_data = NULL;
@@ -311,9 +311,10 @@ int ctdb_call_recv(struct ctdb_client_call_state *state, struct ctdb_call *call)
        }
 
        if (state->call.reply_data.dsize) {
-               call->reply_data.dptr = talloc_memdup(state->ctdb_db,
-                                                     state->call.reply_data.dptr,
-                                                     state->call.reply_data.dsize);
+               call->reply_data.dptr = (unsigned char *)talloc_memdup(
+                                       state->ctdb_db,
+                                       state->call.reply_data.dptr,
+                                       state->call.reply_data.dsize);
                call->reply_data.dsize = state->call.reply_data.dsize;
        } else {
                call->reply_data.dptr = NULL;
@@ -484,7 +485,7 @@ int ctdb_set_message_handler(struct ctdb_context *ctdb, uint64_t srvid,
 /*
   tell the daemon we no longer want a srvid
 */
-int ctdb_remove_message_handler(struct ctdb_context *ctdb, uint64_t srvid, void *private_data)
+static int ctdb_remove_message_handler(struct ctdb_context *ctdb, uint64_t srvid, void *private_data)
 {
        int res;
        int32_t status;
@@ -580,7 +581,7 @@ struct ctdb_record_handle *ctdb_fetch_lock(struct ctdb_db_context *ctdb_db, TALL
 
        h->ctdb_db = ctdb_db;
        h->key     = key;
-       h->key.dptr = talloc_memdup(h, key.dptr, key.dsize);
+       h->key.dptr = (unsigned char *)talloc_memdup(h, key.dptr, key.dsize);
        if (h->key.dptr == NULL) {
                talloc_free(h);
                return NULL;
@@ -812,7 +813,7 @@ int ctdb_control(struct ctdb_context *ctdb, uint32_t destnode, uint64_t srvid,
 
        if (outdata) {
                *outdata = state->outdata;
-               outdata->dptr = talloc_memdup(mem_ctx, outdata->dptr, outdata->dsize);
+               outdata->dptr = (unsigned char *)talloc_memdup(mem_ctx, outdata->dptr, outdata->dsize);
        }
 
        *status = state->status;
@@ -1156,10 +1157,10 @@ int ctdb_ctrl_pulldb(struct ctdb_context *ctdb, uint32_t destnode, uint32_t dbid
        rec = (struct ctdb_rec_data *)&reply->data[0];
 
        for (i=0;i<reply->count;i++) {
-               keys->keys[i].dptr = talloc_memdup(mem_ctx, &rec->data[0], rec->keylen);
+               keys->keys[i].dptr = (unsigned char *)talloc_memdup(mem_ctx, &rec->data[0], rec->keylen);
                keys->keys[i].dsize = rec->keylen;
                
-               keys->data[i].dptr = talloc_memdup(mem_ctx, &rec->data[keys->keys[i].dsize], rec->datalen);
+               keys->data[i].dptr = (unsigned char *)talloc_memdup(mem_ctx, &rec->data[keys->keys[i].dsize], rec->datalen);
                keys->data[i].dsize = rec->datalen;
 
                if (keys->data[i].dsize < sizeof(struct ctdb_ltdb_header)) {
@@ -1333,7 +1334,7 @@ int ctdb_ctrl_createdb(struct ctdb_context *ctdb, struct timeval timeout, uint32
        int32_t res;
        TDB_DATA data;
 
-       data.dptr = discard_const(name);
+       data.dptr = (unsigned char *)discard_const(name);
        data.dsize = strlen(name)+1;
 
        ret = ctdb_control(ctdb, destnode, 0, 
@@ -1468,7 +1469,7 @@ struct ctdb_db_context *ctdb_attach(struct ctdb_context *ctdb, const char *name)
        ctdb_db->db_name = talloc_strdup(ctdb_db, name);
        CTDB_NO_MEMORY_NULL(ctdb, ctdb_db->db_name);
 
-       data.dptr = discard_const(name);
+       data.dptr = (unsigned char *)discard_const(name);
        data.dsize = strlen(name)+1;
 
        /* tell ctdb daemon to attach */
@@ -1557,7 +1558,7 @@ static void traverse_handler(struct ctdb_context *ctdb, uint64_t srvid, TDB_DATA
        if (data.dsize < sizeof(uint32_t) ||
            d->length != data.dsize) {
                DEBUG(0,("Bad data size %u in traverse_handler\n", (unsigned)data.dsize));
-               state->done = True;
+               state->done = true;
                return;
        }
 
@@ -1568,12 +1569,12 @@ static void traverse_handler(struct ctdb_context *ctdb, uint64_t srvid, TDB_DATA
 
        if (key.dsize == 0 && data.dsize == 0) {
                /* end of traverse */
-               state->done = True;
+               state->done = true;
                return;
        }
 
        if (state->fn(ctdb, key, data, state->private_data) != 0) {
-               state->done = True;
+               state->done = true;
        }
 
        state->count++;
@@ -1593,7 +1594,7 @@ int ctdb_traverse(struct ctdb_db_context *ctdb_db, ctdb_traverse_func fn, void *
        uint64_t srvid = (getpid() | 0xFLL<<60);
        struct traverse_state state;
 
-       state.done = False;
+       state.done = false;
        state.count = 0;
        state.private_data = private_data;
        state.fn = fn;
@@ -1929,7 +1930,7 @@ int ctdb_ctrl_get_tunable(struct ctdb_context *ctdb,
        int ret;
 
        data.dsize = offsetof(struct ctdb_control_get_tunable, name) + strlen(name) + 1;
-       data.dptr  = talloc_size(ctdb, data.dsize);
+       data.dptr  = (unsigned char *)talloc_size(ctdb, data.dsize);
        CTDB_NO_MEMORY(ctdb, data.dptr);
 
        t = (struct ctdb_control_get_tunable *)data.dptr;
@@ -1970,7 +1971,7 @@ int ctdb_ctrl_set_tunable(struct ctdb_context *ctdb,
        int ret;
 
        data.dsize = offsetof(struct ctdb_control_set_tunable, name) + strlen(name) + 1;
-       data.dptr  = talloc_size(ctdb, data.dsize);
+       data.dptr  = talloc_array(ctdb, unsigned char, data.dsize);
        CTDB_NO_MEMORY(ctdb, data.dptr);
 
        t = (struct ctdb_control_set_tunable *)data.dptr;
index 3cc522b58a485ea3791a3d59597a7852cc049816..ca9c635878c768e56591c87d9f451a464c4b1504 100644 (file)
@@ -73,8 +73,9 @@ static void queue_io_read(struct ctdb_queue *queue)
        }
 
 
-       queue->partial.data = talloc_realloc_size(queue, queue->partial.data, 
-                                                 num_ready + queue->partial.length);
+       queue->partial.data = talloc_realloc(queue, queue->partial.data, 
+                                            uint8_t, 
+                                            num_ready + queue->partial.length);
 
        if (queue->partial.data == NULL) {
                DEBUG(0,("read error alloc failed for %u\n", 
@@ -114,7 +115,7 @@ static void queue_io_read(struct ctdb_queue *queue)
                        DEBUG(0,("Invalid packet of length 0\n"));
                        goto failed;
                }
-               d2 = talloc_memdup(queue, data, len);
+               d2 = (uint8_t *)talloc_memdup(queue, data, len);
                if (d2 == NULL) {
                        DEBUG(0,("read error memdup failed for %u\n", len));
                        /* sigh */
@@ -131,7 +132,7 @@ static void queue_io_read(struct ctdb_queue *queue)
                        queue->partial.data = data;
                        queue->partial.length = nread;
                } else {
-                       queue->partial.data = talloc_memdup(queue, data, nread);
+                       queue->partial.data = (uint8_t *)talloc_memdup(queue, data, nread);
                        if (queue->partial.data == NULL) {
                                DEBUG(0,("read error memdup partial failed for %u\n", 
                                         (unsigned)nread));
@@ -265,7 +266,7 @@ int ctdb_queue_send(struct ctdb_queue *queue, uint8_t *data, uint32_t length)
        pkt = talloc(queue, struct ctdb_queue_pkt);
        CTDB_NO_MEMORY(queue->ctdb, pkt);
 
-       pkt->data = talloc_memdup(pkt, data, length2);
+       pkt->data = (uint8_t *)talloc_memdup(pkt, data, length2);
        CTDB_NO_MEMORY(queue->ctdb, pkt->data);
 
        pkt->length = length2;
index 7db1523ca1e02f8e138441c119b34bf0576d6d5c..8d8b4fd24a22765e3cf15a2dec87a00e986f6bb6 100644 (file)
@@ -106,7 +106,7 @@ int ctdb_ltdb_fetch(struct ctdb_db_context *ctdb_db,
 
        if (data) {
                data->dsize = rec.dsize - sizeof(struct ctdb_ltdb_header);
-               data->dptr = talloc_memdup(mem_ctx, 
+               data->dptr = (unsigned char *)talloc_memdup(mem_ctx, 
                                           sizeof(struct ctdb_ltdb_header)+rec.dptr,
                                           data->dsize);
        }
@@ -144,7 +144,7 @@ int ctdb_ltdb_store(struct ctdb_db_context *ctdb_db, TDB_DATA key,
        }
 
        rec.dsize = sizeof(*header) + data.dsize;
-       rec.dptr = talloc_size(ctdb, rec.dsize);
+       rec.dptr = (unsigned char *)talloc_size(ctdb, rec.dsize);
        CTDB_NO_MEMORY(ctdb, rec.dptr);
 
        memcpy(rec.dptr, header, sizeof(*header));
index 54b1e4e7ff5f68887b7f1c169533401b253cf651..f11388331d33529ec3cc0db96859b51d17cee3dd 100644 (file)
@@ -51,7 +51,7 @@ void ctdb_set_error(struct ctdb_context *ctdb, const char *fmt, ...)
 /*
   a fatal internal error occurred - no hope for recovery
 */
-void ctdb_fatal(struct ctdb_context *ctdb, const char *msg)
+_NORETURN_ void ctdb_fatal(struct ctdb_context *ctdb, const char *msg)
 {
        DEBUG(0,("ctdb fatal error: %s\n", msg));
        abort();
index 8acb79425114edb4c2ffca8bade910dfd7e75b39..d8860aabd085451186d7078dde14ddec3b2041ff 100644 (file)
@@ -28,6 +28,8 @@
 #include "include/ctdb.h"
 #include "db_wrap.h"
 #include "lib/util/dlinklist.h"
+#include "param/param.h"
+#include "librpc/gen_ndr/misc.h"
 
 /* a linked list of messaging handlers, allowing incoming messages
    to be directed to the right messaging context */
@@ -52,7 +54,7 @@ struct cluster_state {
 */
 static struct server_id ctdb_id(struct cluster_ops *ops, uint32_t id)
 {
-       struct cluster_state *state = ops->private;
+       struct cluster_state *state = (struct cluster_state *)ops->private;
        struct ctdb_context *ctdb = state->ctdb;
        struct server_id server_id;
        server_id.node = ctdb_get_vnn(ctdb);
@@ -80,7 +82,7 @@ static struct tdb_wrap *ctdb_tdb_tmp_open(struct cluster_ops *ops,
                                          TALLOC_CTX *mem_ctx, const char *dbname, 
                                          int flags)
 {
-       const char *dir = lp_parm_string(-1, "ctdb", "shared data");
+       const char *dir = lp_parm_string(global_loadparm, NULL, "ctdb", "shared data");
        char *path;
        struct tdb_wrap *w;
        if (dir == NULL) {
@@ -100,7 +102,7 @@ static struct tdb_wrap *ctdb_tdb_tmp_open(struct cluster_ops *ops,
 */
 static void *ctdb_backend_handle(struct cluster_ops *ops)
 {
-       struct cluster_state *state = ops->private;
+       struct cluster_state *state = (struct cluster_state *)ops->private;
        return (void *)state->ctdb;
 }
 
@@ -138,7 +140,7 @@ static NTSTATUS ctdb_message_init(struct cluster_ops *ops,
                                  struct server_id server,
                                  cluster_message_fn_t handler)
 {
-       struct cluster_state *state = ops->private;
+       struct cluster_state *state = (struct cluster_state *)ops->private;
        struct ctdb_handler_state *h;
        int ret;
 
@@ -169,7 +171,7 @@ static NTSTATUS ctdb_message_init(struct cluster_ops *ops,
 static NTSTATUS ctdb_message_send(struct cluster_ops *ops,
                                  struct server_id server, DATA_BLOB *data)
 {
-       struct cluster_state *state = ops->private;
+       struct cluster_state *state = (struct cluster_state *)ops->private;
        struct ctdb_context *ctdb = state->ctdb;
        TDB_DATA tdata;
        int ret;
@@ -200,7 +202,7 @@ void cluster_ctdb_init(struct event_context *ev, const char *model)
        struct cluster_state *state;
        int ret;
 
-       if (!lp_parm_bool(-1, "ctdb", "enable", False)) {
+       if (!lp_parm_bool(global_loadparm, NULL, "ctdb", "enable", false)) {
                return;
        }
 
index f894af839e0960a2f7866001b82f0dc242183447..7753992df858054a3c9c61c101ee254c0966a16b 100644 (file)
 #include "ntvfs/common/ntvfs_common.h"
 #include "cluster/cluster.h"
 #include "include/ctdb.h"
+#include "param/param.h"
 
 struct odb_context {
        struct ctdb_context *ctdb;
        struct ctdb_db_context *ctdb_db;
        struct ntvfs_context *ntvfs_ctx;
-       BOOL oplocks;
+       bool oplocks;
 };
 
 /*
@@ -96,7 +97,7 @@ static struct odb_context *odb_ctdb_init(TALLOC_CTX *mem_ctx,
        odb->ntvfs_ctx = ntvfs_ctx;
 
        /* leave oplocks disabled by default until the code is working */
-       odb->oplocks = lp_parm_bool(-1, "opendb", "oplocks", False);
+       odb->oplocks = lp_parm_bool(global_loadparm, NULL, "opendb", "oplocks", false);
 
        return odb;
 }
@@ -263,7 +264,7 @@ static NTSTATUS odb_oplock_break_send(struct odb_context *odb, struct opendb_ent
 */
 static NTSTATUS odb_ctdb_open_file(struct odb_lock *lck, void *file_handle,
                                  uint32_t stream_id, uint32_t share_access, 
-                                 uint32_t access_mask, BOOL delete_on_close,
+                                 uint32_t access_mask, bool delete_on_close,
                                  const char *path, 
                                  uint32_t oplock_level, uint32_t *oplock_granted)
 {
@@ -273,7 +274,7 @@ static NTSTATUS odb_ctdb_open_file(struct odb_lock *lck, void *file_handle,
        struct opendb_file file;
        NTSTATUS status;
 
-       if (odb->oplocks == False) {
+       if (odb->oplocks == false) {
                oplock_level = OPLOCK_NONE;
        }
 
@@ -404,7 +405,7 @@ static NTSTATUS odb_ctdb_close_file(struct odb_lock *lck, void *file_handle)
                if (file_handle == file.entries[i].file_handle &&
                    cluster_id_equal(&odb->ntvfs_ctx->server_id, &file.entries[i].server)) {
                        if (file.entries[i].delete_on_close) {
-                               file.delete_on_close = True;
+                               file.delete_on_close = true;
                        }
                        if (i < file.num_entries-1) {
                                memmove(file.entries+i, file.entries+i+1, 
@@ -491,7 +492,7 @@ static NTSTATUS odb_ctdb_rename(struct odb_lock *lck, const char *path)
 /*
   update delete on close flag on an open file
 */
-static NTSTATUS odb_ctdb_set_delete_on_close(struct odb_lock *lck, BOOL del_on_close)
+static NTSTATUS odb_ctdb_set_delete_on_close(struct odb_lock *lck, bool del_on_close)
 {
        NTSTATUS status;
        struct opendb_file file;
@@ -509,7 +510,7 @@ static NTSTATUS odb_ctdb_set_delete_on_close(struct odb_lock *lck, BOOL del_on_c
   people still have the file open
 */
 static NTSTATUS odb_ctdb_get_delete_on_close(struct odb_context *odb, 
-                                           DATA_BLOB *key, BOOL *del_on_close, 
+                                           DATA_BLOB *key, bool *del_on_close, 
                                            int *open_count, char **path)
 {
        NTSTATUS status;
@@ -522,7 +523,7 @@ static NTSTATUS odb_ctdb_get_delete_on_close(struct odb_context *odb,
        status = odb_pull_record(lck, &file);
        if (NT_STATUS_EQUAL(NT_STATUS_OBJECT_NAME_NOT_FOUND, status)) {
                talloc_free(lck);
-               (*del_on_close) = False;
+               (*del_on_close) = false;
                return NT_STATUS_OK;
        }
        if (!NT_STATUS_IS_OK(status)) {
@@ -538,7 +539,7 @@ static NTSTATUS odb_ctdb_get_delete_on_close(struct odb_context *odb,
                *path = talloc_strdup(odb, file.path);
                NT_STATUS_HAVE_NO_MEMORY(*path);
                if (file.num_entries == 1 && file.entries[0].delete_on_close) {
-                       (*del_on_close) = True;
+                       (*del_on_close) = true;
                }
        }
 
index dc4759ebae0621b4d53240877b876cc163b05263..2abe422d5a9478e3d0617170c8759833cc5564c2 100644 (file)
@@ -25,6 +25,8 @@
 #include "lib/tdb/include/tdb.h"
 #include "db_wrap.h"
 #include "system/filesys.h"
+#include "param/param.h"
+#include "librpc/gen_ndr/misc.h"
 
 /*
   server a server_id for the local node
@@ -56,7 +58,7 @@ static struct tdb_wrap *local_tdb_tmp_open(struct cluster_ops *ops,
                                           TALLOC_CTX *mem_ctx, const char *dbname, 
                                           int flags)
 {
-       char *path = smbd_tmp_path(mem_ctx, dbname);
+       char *path = smbd_tmp_path(mem_ctx, global_loadparm, dbname);
        struct tdb_wrap *w;
        w = tdb_wrap_open(mem_ctx, path, 0, flags,
                          O_RDWR|O_CREAT, 0600);
index c947a1629a8ed714288ae65b0c1300cd0abbf771..52be29c022854822b9071828fec86525e695fe86 100644 (file)
@@ -27,26 +27,53 @@ m4_include(lib/charset/config.m4)
 m4_include(lib/socket/config.m4)
 m4_include(nsswitch/nsstest.m4)
 
-#SMB_EXT_LIB_FROM_PKGCONFIG(LIBTALLOC, talloc >= 1.0,
-#                         [samba_cv_internal_talloc=no],
-#                         [samba_cv_internal_talloc=yes])
-samba_cv_internal_talloc=yes
-if test x"$samba_cv_internal_talloc" = x"yes"; then
-       m4_include(lib/talloc/libtalloc.m4)
-       SMB_INCLUDE_MK(lib/talloc/config.mk)
-fi
-
-#SMB_EXT_LIB_FROM_PKGCONFIG(LIBTDB, tdb >= 1.1.0,
-#                         [samba_cv_internal_tdb=no],
-#                         [samba_cv_internal_tdb=yes])
-samba_cv_internal_tdb=yes
-if test x"$samba_cv_internal_tdb" = x"yes"; then
-       m4_include(lib/tdb/libtdb.m4)
-       SMB_INCLUDE_MK(lib/tdb/config.mk)
-fi
+SMB_EXT_LIB_FROM_PKGCONFIG(LIBTALLOC, talloc >= 1.1.0,
+       [],
+       [
+               m4_include(lib/talloc/libtalloc.m4)
+               SMB_INCLUDE_MK(lib/talloc/config.mk)
+       ]
+)
+
+SMB_EXT_LIB_FROM_PKGCONFIG(LIBTDB, tdb >= 1.1.0,
+       [],
+       [
+               m4_include(lib/tdb/libtdb.m4)
+               SMB_INCLUDE_MK(lib/tdb/config.mk)
+       ]
+)
+
+SMB_EXT_LIB_FROM_PKGCONFIG(LIBLDB, ldb >= 0.9.1,
+       [
+               SMB_INCLUDE_MK(lib/ldb/ldb_ildap/config.mk)
+               SMB_INCLUDE_MK(lib/ldb/tools/config.mk)
+               SMB_SUBSYSTEM(ldb_map, [], [LIBLDB])
+               define_ldb_modulesdir=no
+       ],
+       [
+               # Here we need to do some tricks
+               # with AC_CONFIG_COMMANDS_PRE
+               # as that's the deferrs the commands
+               # to location after $prefix and $exec_prefix
+               # have usefull values and directly before
+               # creating config.status.
+               #
+               # The 'eval eval echo' trick is used to
+               # actually get the raw absolute directory
+               # path as this is needed in config.h
+               define_ldb_modulesdir=yes
+               AC_CONFIG_COMMANDS_PRE([
+               if test x"$define_ldb_modulesdir" = x"yes";then
+                       LDB_MODULESDIR=`eval eval echo ${modulesdir}/ldb`
+                       AC_DEFINE_UNQUOTED(LDB_MODULESDIR, "${LDB_MODULESDIR}" , [ldb Modules directory])
+               fi
+               ])
+               m4_include(lib/ldb/sqlite3.m4)
+               m4_include(lib/ldb/libldb.m4)
+               SMB_INCLUDE_MK(lib/ldb/config.mk)
+       ]
+)
 
-m4_include(lib/ldb/sqlite3.m4)
-m4_include(lib/ldb/libldb.m4)
 m4_include(lib/tls/config.m4)
 m4_include(lib/events/config.m4)
 
index 8de3f6dc19ca6b10f32ee6803492e6b27d5b360c..36111418e20c5ad5f2645ae0cf550ec27700e121 100644 (file)
                GROUP_TYPE_ACCOUNT_GROUP| \
                GROUP_TYPE_SECURITY_ENABLED \
                )
+#define GTYPE_SECURITY_UNIVERSAL_GROUP ( \
+               /* 0x80000008 -2147483656 */ \
+               GROUP_TYPE_UNIVERSAL_GROUP| \
+               GROUP_TYPE_SECURITY_ENABLED \
+               )
 #define GTYPE_DISTRIBUTION_GLOBAL_GROUP                0x00000002      /* 2 */
 #define GTYPE_DISTRIBUTION_DOMAIN_LOCAL_GROUP  0x00000004      /* 4 */
 #define GTYPE_DISTRIBUTION_UNIVERSAL_GROUP     0x00000008      /* 8 */
index 8a594f3fc7981db63ca1c2f1ec55cff7bce9a2b5..de1f3f3c7a13af5bbfc7583da684b34bc01dbeb1 100644 (file)
@@ -68,26 +68,26 @@ _PUBLIC_ struct sidmap_context *sidmap_open(TALLOC_CTX *mem_ctx)
   check the sAMAccountType field of a search result to see if
   the account is a user account
 */
-static BOOL is_user_account(struct ldb_message *res)
+static bool is_user_account(struct ldb_message *res)
 {
        uint_t atype = samdb_result_uint(res, "sAMAccountType", 0);
        if (atype && (!(atype & ATYPE_ACCOUNT))) {
-               return False;
+               return false;
        }
-       return True;
+       return true;
 }
 
 /*
   check the sAMAccountType field of a search result to see if
   the account is a group account
 */
-static BOOL is_group_account(struct ldb_message *res)
+static bool is_group_account(struct ldb_message *res)
 {
        uint_t atype = samdb_result_uint(res, "sAMAccountType", 0);
        if (atype && atype == ATYPE_NORMAL_ACCOUNT) {
-               return False;
+               return false;
        }
-       return True;
+       return true;
 }
 
 
@@ -217,7 +217,7 @@ allocated_sid:
 /*
   see if a sid is a group - very inefficient!
 */
-_PUBLIC_ BOOL sidmap_sid_is_group(struct sidmap_context *sidmap, struct dom_sid *sid)
+_PUBLIC_ bool sidmap_sid_is_group(struct sidmap_context *sidmap, struct dom_sid *sid)
 {
        const char *attrs[] = { "sAMAccountType", NULL };
        int ret;
@@ -225,7 +225,7 @@ _PUBLIC_ BOOL sidmap_sid_is_group(struct sidmap_context *sidmap, struct dom_sid
        struct ldb_message **res;
        NTSTATUS status;
        struct dom_sid *domain_sid;
-       BOOL is_group;
+       bool is_group;
 
        tmp_ctx = talloc_new(sidmap);
 
@@ -240,19 +240,19 @@ _PUBLIC_ BOOL sidmap_sid_is_group(struct sidmap_context *sidmap, struct dom_sid
        status = sidmap_primary_domain_sid(sidmap, tmp_ctx, &domain_sid);
        if (!NT_STATUS_IS_OK(status)) {
                talloc_free(tmp_ctx);
-               return False;
+               return false;
        }
 
        if (dom_sid_in_domain(domain_sid, sid)) {
                uint32_t rid = sid->sub_auths[sid->num_auths-1];
                if (rid >= SIDMAP_LOCAL_GROUP_BASE) {
                        talloc_free(tmp_ctx);
-                       return True;
+                       return true;
                }
        }
 
        talloc_free(tmp_ctx);
-       return False;
+       return false;
 }
 
 /*
@@ -550,13 +550,13 @@ _PUBLIC_ NTSTATUS sidmap_allocated_sid_lookup(struct sidmap_context *sidmap,
                                              TALLOC_CTX *mem_ctx, 
                                              const struct dom_sid *sid,
                                              const char **name,
-                                             uint32_t *atype)
+                                             enum lsa_SidType *rtype)
 {
        NTSTATUS status;
        struct dom_sid *domain_sid;
        TALLOC_CTX *tmp_ctx = talloc_new(mem_ctx);
-       uint32_t rid;
-
+       uint32_t rid, atype;
+       
        status = sidmap_primary_domain_sid(sidmap, tmp_ctx, &domain_sid);
        if (!NT_STATUS_IS_OK(status)) {
                return NT_STATUS_NO_SUCH_DOMAIN;
@@ -577,7 +577,9 @@ _PUBLIC_ NTSTATUS sidmap_allocated_sid_lookup(struct sidmap_context *sidmap,
        if (rid < SIDMAP_LOCAL_GROUP_BASE) {
                struct passwd *pwd;
                uid_t uid = rid - SIDMAP_LOCAL_USER_BASE;
-               *atype = ATYPE_NORMAL_ACCOUNT;
+               atype = ATYPE_NORMAL_ACCOUNT;
+               *rtype = samdb_atype_map(atype);
+
                pwd = getpwuid(uid);
                if (pwd == NULL) {
                        *name = talloc_asprintf(mem_ctx, "uid%u", uid);
@@ -587,7 +589,8 @@ _PUBLIC_ NTSTATUS sidmap_allocated_sid_lookup(struct sidmap_context *sidmap,
        } else {
                struct group *grp;
                gid_t gid = rid - SIDMAP_LOCAL_GROUP_BASE;
-               *atype = ATYPE_LOCAL_GROUP;
+               atype = ATYPE_LOCAL_GROUP;
+               *rtype = samdb_atype_map(atype);
                grp = getgrgid(gid);
                if (grp == NULL) {
                        *name = talloc_asprintf(mem_ctx, "gid%u", gid);
index 9555afd5cb42dfc320374196800e6aaa2c43b262..defe089ce2a68e3b544f73fafd724c68a7697980 100644 (file)
@@ -8,7 +8,7 @@ include samdb/ldb_modules/config.mk
 PUBLIC_PROTO_HEADER = samdb/samdb_proto.h
 PUBLIC_HEADERS = samdb/samdb.h
 PUBLIC_DEPENDENCIES = LIBCLI_LDAP HEIMDAL_KRB5 
-PRIVATE_DEPENDENCIES = LIBNDR NDR_MISC NDR_DRSUAPI
+PRIVATE_DEPENDENCIES = LIBNDR NDR_MISC NDR_DRSUAPI NDR_DRSBLOBS
 LDFLAGS = $(LIBRARY_ldb_OUTPUT)
 OBJ_FILES = \
                samdb/samdb.o \
index b26358b3a52da076a79c3e47b0c93774d6db6af1..e56e2e179c631ea43b86e9520181c6602403de82 100644 (file)
@@ -31,6 +31,7 @@
 #include "librpc/gen_ndr/ndr_misc.h"
 #include "librpc/gen_ndr/ndr_drsuapi.h"
 #include "librpc/gen_ndr/ndr_drsblobs.h"
+#include "param/param.h"
 
 static WERROR dreplsrv_init_creds(struct dreplsrv_service *service)
 {
@@ -117,7 +118,7 @@ static void dreplsrv_task_init(struct task_server *task)
        struct dreplsrv_service *service;
        uint32_t periodic_startup_interval;
 
-       switch (lp_server_role()) {
+       switch (lp_server_role(global_loadparm)) {
        case ROLE_STANDALONE:
                task_server_terminate(task, "dreplsrv: no DSDB replication required in standalone configuration");
                return;
@@ -164,8 +165,8 @@ static void dreplsrv_task_init(struct task_server *task)
                return;
        }
 
-       periodic_startup_interval       = lp_parm_int(-1, "dreplsrv", "periodic_startup_interval", 15); /* in seconds */
-       service->periodic.interval      = lp_parm_int(-1, "dreplsrv", "periodic_interval", 300); /* in seconds */
+       periodic_startup_interval       = lp_parm_int(global_loadparm, NULL, "dreplsrv", "periodic_startup_interval", 15); /* in seconds */
+       service->periodic.interval      = lp_parm_int(global_loadparm, NULL, "dreplsrv", "periodic_interval", 300); /* in seconds */
 
        status = dreplsrv_periodic_schedule(service, periodic_startup_interval);
        if (!W_ERROR_IS_OK(status)) {
index aa5d221fd8dd392ea5658610f32c35abf010e539..3754be2e96001e77bbf4ef2e55dabebf9d0f6549 100644 (file)
@@ -348,7 +348,7 @@ WERROR DsCrackNameOneName(struct ldb_context *sam_ctx, TALLOC_CTX *mem_ctx,
 
        struct smb_krb5_context *smb_krb5_context;
        ret = smb_krb5_init_context(mem_ctx, 
-                                   ldb_get_opaque(sam_ctx, "EventContext"), 
+                                   (struct event_context *)ldb_get_opaque(sam_ctx, "EventContext"), 
                                    &smb_krb5_context);
                                
        if (ret) {
index f5de138b52d35eaeaa683f6df69330e890bc1adf..1a16cb8321e6da6a14702ff056b8f565f86b66cc 100644 (file)
@@ -693,7 +693,7 @@ static int nsuniqueid_init(struct ldb_module *module)
 static int get_seq(struct ldb_context *ldb, void *context, 
                   struct ldb_reply *ares) 
 {
-       unsigned long long *max_seq = context;
+       unsigned long long *max_seq = (unsigned long long *)context;
        unsigned long long seq;
        if (ares->type == LDB_REPLY_ENTRY) {
                struct ldb_message_element *el = ldb_msg_find_element(ares->message, "contextCSN");
index 6f32d22d26dc5b38fabccf940a3ba72e9e75d698..d64673fdd53fde98903d0cbaa764a8f79cb4a428 100644 (file)
 
 #include <time.h>
 
-static BOOL is_attr_in_list(const char * const * attrs, const char *attr)
+static bool is_attr_in_list(const char * const * attrs, const char *attr)
 {
        int i;
 
        for (i = 0; attrs[i]; i++) {
                if (strcasecmp(attrs[i], attr) == 0)
-                       return True;
+                       return true;
        }
 
-       return False;
+       return false;
 }
 
 static char **copy_attrs(void *mem_ctx, const char * const * attrs)
@@ -75,7 +75,7 @@ static char **copy_attrs(void *mem_ctx, const char * const * attrs)
        return new;
 }
 
-static BOOL add_attrs(void *mem_ctx, char ***attrs, const char *attr)
+static bool add_attrs(void *mem_ctx, char ***attrs, const char *attr)
 {
        char **new;
        int num;
@@ -83,23 +83,23 @@ static BOOL add_attrs(void *mem_ctx, char ***attrs, const char *attr)
        for (num = 0; (*attrs)[num]; num++);
 
        new = talloc_realloc(mem_ctx, *attrs, char *, num + 2);
-       if (!new) return False;
+       if (!new) return false;
 
        *attrs = new;
 
        new[num] = talloc_strdup(new, attr);
-       if (!new[num]) return False;
+       if (!new[num]) return false;
 
        new[num + 1] = NULL;
 
-       return True;
+       return true;
 }
 
-static BOOL inject_extended_dn(struct ldb_message *msg,
+static bool inject_extended_dn(struct ldb_message *msg,
                                struct ldb_context *ldb,
                                int type,
-                               BOOL remove_guid,
-                               BOOL remove_sid)
+                               bool remove_guid,
+                               bool remove_sid)
 {
        const struct ldb_val *val;
        struct GUID guid;
@@ -112,7 +112,7 @@ static BOOL inject_extended_dn(struct ldb_message *msg,
        guid = samdb_result_guid(msg, "objectGUID");
        object_guid = GUID_string(msg, &guid);
        if (!object_guid)
-               return False;
+               return false;
 
        if (remove_guid)
                ldb_msg_remove_attr(msg, "objectGUID");
@@ -123,7 +123,7 @@ static BOOL inject_extended_dn(struct ldb_message *msg,
        if (sid) {
                object_sid = dom_sid_string(msg, sid);
                if (!object_sid)
-                       return False;
+                       return false;
 
                if (remove_sid)
                        ldb_msg_remove_attr(msg, "objectSID");
@@ -144,24 +144,24 @@ static BOOL inject_extended_dn(struct ldb_message *msg,
                        }
                        break;
                default:
-                       return False;
+                       return false;
        }
 
        if (!new_dn)
-               return False;
+               return false;
 
        msg->dn = ldb_dn_new(msg, ldb, new_dn);
        if (! ldb_dn_validate(msg->dn))
-               return False;
+               return false;
 
        val = ldb_msg_find_ldb_val(msg, "distinguishedName");
        if (val) {
                ldb_msg_remove_attr(msg, "distinguishedName");
                if (ldb_msg_add_steal_string(msg, "distinguishedName", new_dn))
-                       return False;
+                       return false;
        }
 
-       return True;
+       return true;
 }
 
 /* search */
@@ -172,8 +172,8 @@ struct extended_context {
        int (*up_callback)(struct ldb_context *, void *, struct ldb_reply *);
 
        const char * const *attrs;
-       BOOL remove_guid;
-       BOOL remove_sid;
+       bool remove_guid;
+       bool remove_sid;
        int extended_type;
 };
 
@@ -229,8 +229,8 @@ static int extended_search(struct ldb_module *module, struct ldb_request *req)
        ac->up_context = req->context;
        ac->up_callback = req->callback;
        ac->attrs = req->op.search.attrs;
-       ac->remove_guid = False;
-       ac->remove_sid = False;
+       ac->remove_guid = false;
+       ac->remove_sid = false;
        ac->extended_type = extended_ctrl->type;
 
        down_req = talloc_zero(req, struct ldb_request);
@@ -246,10 +246,10 @@ static int extended_search(struct ldb_module *module, struct ldb_request *req)
        /* check if attrs only is specified, in that case check wether we need to modify them */
        if (req->op.search.attrs) {
                if (! is_attr_in_list(req->op.search.attrs, "objectGUID")) {
-                       ac->remove_guid = True;
+                       ac->remove_guid = true;
                }
                if (! is_attr_in_list(req->op.search.attrs, "objectSID")) {
-                       ac->remove_sid = True;
+                       ac->remove_sid = true;
                }
                if (ac->remove_guid || ac->remove_sid) {
                        new_attrs = copy_attrs(down_req, req->op.search.attrs);
index 2d6d8a2d80196c93434246965ead07d539290c2d..27c13ddf60ed95eb9ab17c344a04ca044a0e82c6 100644 (file)
@@ -60,7 +60,7 @@ struct kludge_private_data {
 static enum user_is what_is_user(struct ldb_module *module) 
 {
        struct auth_session_info *session_info
-               = ldb_get_opaque(module->ldb, "sessionInfo");
+               = (struct auth_session_info *)ldb_get_opaque(module->ldb, "sessionInfo");
        if (!session_info) {
                return ANONYMOUS;
        }
@@ -87,7 +87,7 @@ static enum user_is what_is_user(struct ldb_module *module)
 static const char *user_name(TALLOC_CTX *mem_ctx, struct ldb_module *module) 
 {
        struct auth_session_info *session_info
-               = ldb_get_opaque(module->ldb, "sessionInfo");
+               = (struct auth_session_info *)ldb_get_opaque(module->ldb, "sessionInfo");
        if (!session_info) {
                return "UNKNOWN (NULL)";
        }
index 573d2e27b96a494437270c112d0b35579756e3c8..350434df51733a768e8eebaec41a3eb95f18baa1 100644 (file)
@@ -75,8 +75,8 @@ struct lpdb_context {
 
        struct ldb_message *local_message;
 
-       BOOL added_objectGUID;
-       BOOL added_objectClass;
+       bool added_objectGUID;
+       bool added_objectClass;
 
        struct ldb_reply *search_res;
 };
@@ -660,7 +660,7 @@ static int local_password_search(struct ldb_module *module, struct ldb_request *
        if (req->op.search.attrs && !ldb_attr_in_list(req->op.search.attrs, "*")) {
                if (!ldb_attr_in_list(req->op.search.attrs, "objectGUID")) {
                        search_attrs = ldb_attr_list_copy_add(req, req->op.search.attrs, "objectGUID");
-                       ac->added_objectGUID = True;
+                       ac->added_objectGUID = true;
                        if (!search_attrs) {
                                return LDB_ERR_OPERATIONS_ERROR;
                        }
@@ -669,7 +669,7 @@ static int local_password_search(struct ldb_module *module, struct ldb_request *
                }
                if (!ldb_attr_in_list(search_attrs, "objectClass")) {
                        search_attrs = ldb_attr_list_copy_add(req, search_attrs, "objectClass");
-                       ac->added_objectClass = True;
+                       ac->added_objectClass = true;
                        if (!search_attrs) {
                                return LDB_ERR_OPERATIONS_ERROR;
                        }
index 0675f38c566c1fc9aa479cb8fb69ade0ccea3c66..76e8578573e99ff367cd6ff087151938e13421e7 100644 (file)
@@ -678,8 +678,10 @@ static int partition_extended(struct ldb_module *module, struct ldb_request *req
 static int sort_compare(void *void1,
                        void *void2, void *opaque)
 {
-       struct dsdb_control_current_partition **pp1 = void1;
-       struct dsdb_control_current_partition **pp2 = void2;
+       struct dsdb_control_current_partition **pp1 = 
+               (struct dsdb_control_current_partition **)void1;
+       struct dsdb_control_current_partition **pp2 = 
+               (struct dsdb_control_current_partition **)void2;
        struct dsdb_control_current_partition *partition1 = talloc_get_type(*pp1,
                                                            struct dsdb_control_current_partition);
        struct dsdb_control_current_partition *partition2 = talloc_get_type(*pp2,
@@ -692,7 +694,8 @@ static const char *relative_path(struct ldb_module *module,
                                 TALLOC_CTX *mem_ctx, 
                                 const char *name) 
 {
-       const char *base_url = ldb_get_opaque(module->ldb, "ldb_url");
+       const char *base_url = 
+               (const char *)ldb_get_opaque(module->ldb, "ldb_url");
        char *path, *p, *full_name;
        if (name == NULL) {
                return NULL;
index 98061570c8ce946384def5901ff14eb2704ba323..090cce27199863b05f863f3d92a72de5374e8112 100644 (file)
@@ -48,6 +48,7 @@
 #include "librpc/ndr/libndr.h"
 #include "librpc/gen_ndr/ndr_drsblobs.h"
 #include "lib/crypto/crypto.h"
+#include "param/param.h"
 
 /* If we have decided there is reason to work on this request, then
  * setup all the password hash types correctly.
@@ -91,7 +92,7 @@ struct ph_context {
 };
 
 struct domain_data {
-       BOOL store_cleartext;
+       bool store_cleartext;
        uint_t pwdProperties;
        uint_t pwdHistoryLength;
        char *netbios_domain;
@@ -340,17 +341,17 @@ static int setup_primary_kerberos(struct setup_password_fields_io *io,
                return LDB_ERR_OPERATIONS_ERROR;
        }
 
-if (lp_parm_bool(-1, "password_hash", "create_aes_key", false)) {
-/*
- * TODO:
- *
- * w2k and w2k3 doesn't support AES, so we'll not include
- * the AES key here yet.
- *
- * Also we don't have an example supplementalCredentials blob
- * from Windows Longhorn Server with AES support
- *
- */
+       if (lp_parm_bool(global_loadparm, NULL, "password_hash", "create_aes_key", false)) {
+       /*
       * TODO:
       *
       * w2k and w2k3 doesn't support AES, so we'll not include
       * the AES key here yet.
       *
       * Also we don't have an example supplementalCredentials blob
       * from Windows Longhorn Server with AES support
       *
       */
        /*
         * create ENCTYPE_AES256_CTS_HMAC_SHA1_96 key out of
         * the salt and the cleartext password
index 5342c1496763df04708ac40f9282c6fb0b6b3485..8f80b5cd555ba52b9d053789d24cf1a94c0ee291 100644 (file)
@@ -44,7 +44,7 @@
 int samldb_notice_sid(struct ldb_module *module, 
                      TALLOC_CTX *mem_ctx, const struct dom_sid *sid);
 
-static BOOL samldb_msg_add_sid(struct ldb_module *module, struct ldb_message *msg, const char *name, const struct dom_sid *sid)
+static bool samldb_msg_add_sid(struct ldb_module *module, struct ldb_message *msg, const char *name, const struct dom_sid *sid)
 {
        struct ldb_val v;
        NTSTATUS status;
index 21e93e17158716f4fde26292626623d4b323f232..cf923d673b953129ee92ff6f8cbe1fb1fcd8c546 100644 (file)
@@ -319,7 +319,7 @@ static int schema_init_attrs(struct ldb_module *module, struct schema_private_da
                data->attrs[i]->max = ldb_msg_find_attr_as_int(res->msgs[i], "rangeUpper", INT_MAX);
                data->attrs[i]->systemflag = ldb_msg_find_attr_as_int(res->msgs[i], "systemFlag", 0);
                data->attrs[i]->searchflag = ldb_msg_find_attr_as_int(res->msgs[i], "searchFlag", 0);
-               data->attrs[i]->isdefunct = ldb_msg_find_attr_as_bool(res->msgs[i], "isDefunct", False);
+               data->attrs[i]->isdefunct = ldb_msg_find_attr_as_bool(res->msgs[i], "isDefunct", false);
        }
 
 done:
@@ -397,9 +397,9 @@ static int schema_init_classes(struct ldb_module *module, struct schema_private_
 */
                /* the following attributes are all optional */
 
-               data->class[i]->systemOnly = ldb_msg_find_attr_as_bool(res->msgs[i], "systemOnly", False);
+               data->class[i]->systemOnly = ldb_msg_find_attr_as_bool(res->msgs[i], "systemOnly", false);
                data->class[i]->systemflag = ldb_msg_find_attr_as_int(res->msgs[i], "systemFlag", 0);
-               data->class[i]->isdefunct = ldb_msg_find_attr_as_bool(res->msgs[i], "isDefunct", False);
+               data->class[i]->isdefunct = ldb_msg_find_attr_as_bool(res->msgs[i], "isDefunct", false);
 
                /* attributes are loaded first, so we can just go an query the attributes repo */
                
index 2b6a0152f55fb70f25e432b6e433e755c8077152..f1937319003bbc4351140d383fbd4ae947a84887 100644 (file)
@@ -32,6 +32,7 @@
 #include "auth/credentials/credentials.h"
 #include "auth/credentials/credentials_krb5.h"
 #include "system/kerberos.h"
+#include "param/param.h"
 
 struct dn_list {
        struct cli_credentials *creds;
@@ -42,7 +43,7 @@ struct update_kt_private {
        struct dn_list *changed_dns;
 };
 
-static int add_modified(struct ldb_module *module, struct ldb_dn *dn, BOOL delete) {
+static int add_modified(struct ldb_module *module, struct ldb_dn *dn, bool delete) {
        struct update_kt_private *data = talloc_get_type(module->private_data, struct update_kt_private);
        struct dn_list *item;
        char *filter;
@@ -88,7 +89,7 @@ static int add_modified(struct ldb_module *module, struct ldb_dn *dn, BOOL delet
                return LDB_ERR_OPERATIONS_ERROR;
        }
 
-       cli_credentials_set_conf(item->creds);
+       cli_credentials_set_conf(item->creds, global_loadparm);
        status = cli_credentials_set_secrets(item->creds, module->ldb, NULL, filter);
        talloc_free(filter);
        if (NT_STATUS_IS_OK(status)) {
@@ -112,7 +113,7 @@ static int update_kt_add(struct ldb_module *module, struct ldb_request *req)
        if (ret != LDB_SUCCESS) {
                return ret;
        }
-       return add_modified(module, req->op.add.message->dn, False);
+       return add_modified(module, req->op.add.message->dn, false);
 }
 
 /* modify */
@@ -123,7 +124,7 @@ static int update_kt_modify(struct ldb_module *module, struct ldb_request *req)
        if (ret != LDB_SUCCESS) {
                return ret;
        }
-       return add_modified(module, req->op.mod.message->dn, False);
+       return add_modified(module, req->op.mod.message->dn, false);
 }
 
 /* delete */
@@ -131,7 +132,7 @@ static int update_kt_delete(struct ldb_module *module, struct ldb_request *req)
 {
        int ret;
        /* Before we delete it, record the details */
-       ret = add_modified(module, req->op.del.dn, True);
+       ret = add_modified(module, req->op.del.dn, true);
        if (ret != LDB_SUCCESS) {
                return ret;
        }
@@ -146,7 +147,7 @@ static int update_kt_rename(struct ldb_module *module, struct ldb_request *req)
        if (ret != LDB_SUCCESS) {
                return ret;
        }
-       return add_modified(module, req->op.rename.newdn, False);
+       return add_modified(module, req->op.rename.newdn, false);
 }
 
 /* end a transaction */
@@ -179,7 +180,7 @@ static int update_kt_del_trans(struct ldb_module *module)
        talloc_free(data->changed_dns);
        data->changed_dns = NULL;
 
-       return ldb_next_end_trans(module);
+       return ldb_next_del_trans(module);
 }
 
 static int update_kt_init(struct ldb_module *module)
index 17c40dd30d09bb5608b0a6aab8d240908f8535c2..7de873d77df899e45832c73f73743dde53bac091 100644 (file)
@@ -35,6 +35,7 @@
 #include "db_wrap.h"
 #include "dsdb/samdb/samdb.h"
 #include "dsdb/common/flags.h"
+#include "param/param.h"
 
 /*
   connect to the SAM database
@@ -44,7 +45,8 @@ struct ldb_context *samdb_connect(TALLOC_CTX *mem_ctx,
                                  struct auth_session_info *session_info)
 {
        struct ldb_context *ldb;
-       ldb = ldb_wrap_connect(mem_ctx, lp_sam_url(), session_info,
+       ldb = ldb_wrap_connect(mem_ctx, global_loadparm, 
+                              lp_sam_url(global_loadparm), session_info,
                               NULL, 0, NULL);
        if (!ldb) {
                return NULL;
@@ -449,9 +451,7 @@ struct dom_sid *samdb_result_sid_prefix(TALLOC_CTX *mem_ctx, const struct ldb_me
 */
 NTTIME samdb_result_nttime(struct ldb_message *msg, const char *attr, NTTIME default_value)
 {
-       const char *str = ldb_msg_find_attr_as_string(msg, attr, NULL);
-       if (!str) return default_value;
-       return nttime_from_string(str);
+       return ldb_msg_find_attr_as_uint64(msg, attr, default_value);
 }
 
 /*
@@ -637,17 +637,13 @@ struct ldb_message_element *samdb_find_attribute(struct ldb_context *ldb,
 {
        int i;
        struct ldb_message_element *el = ldb_msg_find_element(msg, name);
-       struct ldb_val v;
-
-       v.data = discard_const_p(uint8_t, value);
-       v.length = strlen(value);
 
        if (!el) {
                return NULL;
        }
 
        for (i=0;i<el->num_values;i++) {
-               if (strcasecmp(value, (char *)el->values[i].data) == 0) {
+               if (ldb_attr_cmp(value, (char *)el->values[i].data) == 0) {
                        return el;
                }
        }
@@ -1072,7 +1068,7 @@ const struct dom_sid *samdb_domain_sid(struct ldb_context *ldb)
        struct dom_sid *domain_sid;
 
        /* see if we have a cached copy */
-       domain_sid = ldb_get_opaque(ldb, "cache.domain_sid");
+       domain_sid = (struct dom_sid *)ldb_get_opaque(ldb, "cache.domain_sid");
        if (domain_sid) {
                return domain_sid;
        }
@@ -1139,7 +1135,7 @@ struct ldb_dn *samdb_ntds_settings_dn(struct ldb_context *ldb)
        struct ldb_dn *settings_dn;
        
        /* see if we have a cached copy */
-       settings_dn = ldb_get_opaque(ldb, "cache.settings_dn");
+       settings_dn = (struct ldb_dn *)ldb_get_opaque(ldb, "cache.settings_dn");
        if (settings_dn) {
                return settings_dn;
        }
@@ -1192,7 +1188,7 @@ const struct GUID *samdb_ntds_invocation_id(struct ldb_context *ldb)
        struct GUID *invocation_id;
        
        /* see if we have a cached copy */
-       invocation_id = ldb_get_opaque(ldb, "cache.invocation_id");
+       invocation_id = (struct GUID *)ldb_get_opaque(ldb, "cache.invocation_id");
        if (invocation_id) {
                return invocation_id;
        }
@@ -1242,7 +1238,8 @@ bool samdb_set_ntds_invocation_id(struct ldb_context *ldb, const struct GUID *in
        struct GUID *invocation_id_old;
 
        /* see if we have a cached copy */
-       invocation_id_old = ldb_get_opaque(ldb, "cache.invocation_id");
+       invocation_id_old = (struct GUID *)ldb_get_opaque(ldb, 
+                                                        "cache.invocation_id");
 
        tmp_ctx = talloc_new(ldb);
        if (tmp_ctx == NULL) {
@@ -1285,7 +1282,7 @@ const struct GUID *samdb_ntds_objectGUID(struct ldb_context *ldb)
        struct GUID *ntds_guid;
        
        /* see if we have a cached copy */
-       ntds_guid = ldb_get_opaque(ldb, "cache.ntds_guid");
+       ntds_guid = (struct GUID *)ldb_get_opaque(ldb, "cache.ntds_guid");
        if (ntds_guid) {
                return ntds_guid;
        }
@@ -1335,7 +1332,7 @@ bool samdb_set_ntds_objectGUID(struct ldb_context *ldb, const struct GUID *ntds_
        struct GUID *ntds_guid_old;
        
        /* see if we have a cached copy */
-       ntds_guid_old = ldb_get_opaque(ldb, "cache.ntds_guid");
+       ntds_guid_old = (struct GUID *)ldb_get_opaque(ldb, "cache.ntds_guid");
 
        tmp_ctx = talloc_new(ldb);
        if (tmp_ctx == NULL) {
@@ -1394,19 +1391,19 @@ struct ldb_dn *samdb_server_site_dn(struct ldb_context *ldb, TALLOC_CTX *mem_ctx
 /*
   work out if we are the PDC for the domain of the current open ldb
 */
-BOOL samdb_is_pdc(struct ldb_context *ldb)
+bool samdb_is_pdc(struct ldb_context *ldb)
 {
        const char *dom_attrs[] = { "fSMORoleOwner", NULL };
        int ret;
        struct ldb_result *dom_res;
        TALLOC_CTX *tmp_ctx;
-       BOOL is_pdc;
+       bool is_pdc;
        struct ldb_dn *pdc;
 
        tmp_ctx = talloc_new(ldb);
        if (tmp_ctx == NULL) {
                DEBUG(1, ("talloc_new failed in samdb_is_pdc"));
-               return False;
+               return false;
        }
 
        ret = ldb_search(ldb, ldb_get_default_basedn(ldb), LDB_SCOPE_BASE, NULL, dom_attrs, &dom_res);
@@ -1424,9 +1421,9 @@ BOOL samdb_is_pdc(struct ldb_context *ldb)
        pdc = ldb_msg_find_attr_as_dn(ldb, tmp_ctx, dom_res->msgs[0], "fSMORoleOwner");
 
        if (ldb_dn_compare(samdb_ntds_settings_dn(ldb), pdc) == 0) {
-               is_pdc = True;
+               is_pdc = true;
        } else {
-               is_pdc = False;
+               is_pdc = false;
        }
 
        talloc_free(tmp_ctx);
@@ -1436,7 +1433,7 @@ BOOL samdb_is_pdc(struct ldb_context *ldb)
 failed:
        DEBUG(1,("Failed to find if we are the PDC for this ldb\n"));
        talloc_free(tmp_ctx);
-       return False;
+       return false;
 }
 
 
@@ -1477,7 +1474,7 @@ struct ldb_dn *samdb_search_for_parent_domain(struct ldb_context *ldb, TALLOC_CT
 /*
   check that a password is sufficiently complex
 */
-static BOOL samdb_password_complexity_ok(const char *pass)
+static bool samdb_password_complexity_ok(const char *pass)
 {
        return check_password_quality(pass);
 }
@@ -1503,7 +1500,7 @@ _PUBLIC_ NTSTATUS samdb_set_password(struct ldb_context *ctx, TALLOC_CTX *mem_ct
                            const char *new_pass,
                            struct samr_Password *lmNewHash, 
                            struct samr_Password *ntNewHash,
-                           BOOL user_change,
+                           bool user_change,
                            enum samr_RejectReason *reject_reason,
                            struct samr_DomInfo1 **_dominfo)
 {
@@ -1524,7 +1521,7 @@ _PUBLIC_ NTSTATUS samdb_set_password(struct ldb_context *ctx, TALLOC_CTX *mem_ct
        int sambaLMPwdHistory_len, sambaNTPwdHistory_len;
        struct dom_sid *domain_sid;
        struct ldb_message **res;
-       BOOL restrictions;
+       bool restrictions;
        int count;
        time_t now = time(NULL);
        NTTIME now_nt;
@@ -1741,7 +1738,7 @@ _PUBLIC_ NTSTATUS samdb_set_password_sid(struct ldb_context *ctx, TALLOC_CTX *me
                                const char *new_pass,
                                struct samr_Password *lmNewHash, 
                                struct samr_Password *ntNewHash,
-                               BOOL user_change,
+                               bool user_change,
                                enum samr_RejectReason *reject_reason,
                                struct samr_DomInfo1 **_dominfo) 
 {
@@ -1814,7 +1811,7 @@ NTSTATUS security_token_create(TALLOC_CTX *mem_ctx,
                               struct dom_sid *group_sid, 
                               int n_groupSIDs,
                               struct dom_sid **groupSIDs, 
-                              BOOL is_authenticated,
+                              bool is_authenticated,
                               struct security_token **token)
 {
        struct security_token *ptoken;
index 3ded84c1845f7df268406b1f8d1c1b1ad0de0636..51343817b0029396675c4f36089d19622018fdc6 100644 (file)
@@ -38,10 +38,6 @@ static char *dsdb_subSchema_list_append(char *v, const char *list_name)
                NULL
        };
 
-       if (!attrs) {
-               return v;
-       }
-
        v = talloc_asprintf_append(v, "%s ( ", list_name);
        if (!v) return NULL;
 
index 41b53be97757161c272e69f1ae1c4f096744cdcb..e8c8d49f5e8899a26e75915b0e9019d7afddf5d5 100644 (file)
@@ -358,12 +358,12 @@ WERROR dsdb_map_int2oid(const struct dsdb_schema *schema, uint32_t in, TALLOC_CT
                        d_printf("%s: %s == NULL\n", __location__, attr); \
                        return WERR_INVALID_PARAM; \
                } else { \
-                       (p)->elem = False; \
+                       (p)->elem = false; \
                } \
        } else if (strcasecmp("TRUE", str) == 0) { \
-               (p)->elem = True; \
+               (p)->elem = true; \
        } else if (strcasecmp("FALSE", str) == 0) { \
-               (p)->elem = False; \
+               (p)->elem = false; \
        } else { \
                d_printf("%s: %s == %s\n", __location__, attr, str); \
                return WERR_INVALID_PARAM; \
@@ -396,9 +396,9 @@ WERROR dsdb_attribute_from_ldb(const struct dsdb_schema *schema,
 {
        WERROR status;
 
-       GET_STRING_LDB(msg, "cn", mem_ctx, attr, cn, False);
-       GET_STRING_LDB(msg, "lDAPDisplayName", mem_ctx, attr, lDAPDisplayName, True);
-       GET_STRING_LDB(msg, "attributeID", mem_ctx, attr, attributeID_oid, True);
+       GET_STRING_LDB(msg, "cn", mem_ctx, attr, cn, false);
+       GET_STRING_LDB(msg, "lDAPDisplayName", mem_ctx, attr, lDAPDisplayName, true);
+       GET_STRING_LDB(msg, "attributeID", mem_ctx, attr, attributeID_oid, true);
        if (schema->num_prefixes == 0) {
                /* set an invalid value */
                attr->attributeID_id = 0xFFFFFFFF;
@@ -418,10 +418,10 @@ WERROR dsdb_attribute_from_ldb(const struct dsdb_schema *schema,
 
        GET_UINT32_LDB(msg, "searchFlags", attr, searchFlags);
        GET_UINT32_LDB(msg, "systemFlags", attr, systemFlags);
-       GET_BOOL_LDB(msg, "isMemberOfPartialAttributeSet", attr, isMemberOfPartialAttributeSet, False);
+       GET_BOOL_LDB(msg, "isMemberOfPartialAttributeSet", attr, isMemberOfPartialAttributeSet, false);
        GET_UINT32_LDB(msg, "linkID", attr, linkID);
 
-       GET_STRING_LDB(msg, "attributeSyntax", mem_ctx, attr, attributeSyntax_oid, True);
+       GET_STRING_LDB(msg, "attributeSyntax", mem_ctx, attr, attributeSyntax_oid, true);
        if (schema->num_prefixes == 0) {
                /* set an invalid value */
                attr->attributeSyntax_id = 0xFFFFFFFF;
@@ -437,21 +437,21 @@ WERROR dsdb_attribute_from_ldb(const struct dsdb_schema *schema,
        GET_UINT32_LDB(msg, "oMSyntax", attr, oMSyntax);
        GET_BLOB_LDB(msg, "oMObjectClass", mem_ctx, attr, oMObjectClass);
 
-       GET_BOOL_LDB(msg, "isSingleValued", attr, isSingleValued, True);
+       GET_BOOL_LDB(msg, "isSingleValued", attr, isSingleValued, true);
        GET_UINT32_LDB(msg, "rangeLower", attr, rangeLower);
        GET_UINT32_LDB(msg, "rangeUpper", attr, rangeUpper);
-       GET_BOOL_LDB(msg, "extendedCharsAllowed", attr, extendedCharsAllowed, False);
+       GET_BOOL_LDB(msg, "extendedCharsAllowed", attr, extendedCharsAllowed, false);
 
        GET_UINT32_LDB(msg, "schemaFlagsEx", attr, schemaFlagsEx);
        GET_BLOB_LDB(msg, "msDs-Schema-Extensions", mem_ctx, attr, msDs_Schema_Extensions);
 
-       GET_BOOL_LDB(msg, "showInAdvancedViewOnly", attr, showInAdvancedViewOnly, False);
-       GET_STRING_LDB(msg, "adminDisplayName", mem_ctx, attr, adminDisplayName, False);
-       GET_STRING_LDB(msg, "adminDescription", mem_ctx, attr, adminDescription, False);
-       GET_STRING_LDB(msg, "classDisplayName", mem_ctx, attr, classDisplayName, False);
-       GET_BOOL_LDB(msg, "isEphemeral", attr, isEphemeral, False);
-       GET_BOOL_LDB(msg, "isDefunct", attr, isDefunct, False);
-       GET_BOOL_LDB(msg, "systemOnly", attr, systemOnly, False);
+       GET_BOOL_LDB(msg, "showInAdvancedViewOnly", attr, showInAdvancedViewOnly, false);
+       GET_STRING_LDB(msg, "adminDisplayName", mem_ctx, attr, adminDisplayName, false);
+       GET_STRING_LDB(msg, "adminDescription", mem_ctx, attr, adminDescription, false);
+       GET_STRING_LDB(msg, "classDisplayName", mem_ctx, attr, classDisplayName, false);
+       GET_BOOL_LDB(msg, "isEphemeral", attr, isEphemeral, false);
+       GET_BOOL_LDB(msg, "isDefunct", attr, isDefunct, false);
+       GET_BOOL_LDB(msg, "systemOnly", attr, systemOnly, false);
 
        attr->syntax = dsdb_syntax_for_attribute(attr);
        if (!attr->syntax) {
@@ -468,9 +468,9 @@ WERROR dsdb_class_from_ldb(const struct dsdb_schema *schema,
 {
        WERROR status;
 
-       GET_STRING_LDB(msg, "cn", mem_ctx, obj, cn, False);
-       GET_STRING_LDB(msg, "lDAPDisplayName", mem_ctx, obj, lDAPDisplayName, True);
-       GET_STRING_LDB(msg, "governsID", mem_ctx, obj, governsID_oid, True);
+       GET_STRING_LDB(msg, "cn", mem_ctx, obj, cn, false);
+       GET_STRING_LDB(msg, "lDAPDisplayName", mem_ctx, obj, lDAPDisplayName, true);
+       GET_STRING_LDB(msg, "governsID", mem_ctx, obj, governsID_oid, true);
        if (schema->num_prefixes == 0) {
                /* set an invalid value */
                obj->governsID_id = 0xFFFFFFFF;
@@ -486,36 +486,36 @@ WERROR dsdb_class_from_ldb(const struct dsdb_schema *schema,
        GET_GUID_LDB(msg, "schemaIDGUID", obj, schemaIDGUID);
 
        GET_UINT32_LDB(msg, "objectClassCategory", obj, objectClassCategory);
-       GET_STRING_LDB(msg, "rDNAttID", mem_ctx, obj, rDNAttID, False);
-       GET_STRING_LDB(msg, "defaultObjectCategory", mem_ctx, obj, defaultObjectCategory, True);
+       GET_STRING_LDB(msg, "rDNAttID", mem_ctx, obj, rDNAttID, false);
+       GET_STRING_LDB(msg, "defaultObjectCategory", mem_ctx, obj, defaultObjectCategory, true);
  
-       GET_STRING_LDB(msg, "subClassOf", mem_ctx, obj, subClassOf, True);
+       GET_STRING_LDB(msg, "subClassOf", mem_ctx, obj, subClassOf, true);
 
        obj->systemAuxiliaryClass       = NULL;
 
        obj->auxiliaryClass             = NULL;
 
-       GET_STRING_LIST_LDB(msg, "systemMustContain", mem_ctx, obj, systemMustContain, False);
-       GET_STRING_LIST_LDB(msg, "systemMayContain", mem_ctx, obj, systemMayContain, False);
-       GET_STRING_LIST_LDB(msg, "mustContain", mem_ctx, obj, mustContain, False);
-       GET_STRING_LIST_LDB(msg, "mayContain", mem_ctx, obj, mayContain, False);
+       GET_STRING_LIST_LDB(msg, "systemMustContain", mem_ctx, obj, systemMustContain, false);
+       GET_STRING_LIST_LDB(msg, "systemMayContain", mem_ctx, obj, systemMayContain, false);
+       GET_STRING_LIST_LDB(msg, "mustContain", mem_ctx, obj, mustContain, false);
+       GET_STRING_LIST_LDB(msg, "mayContain", mem_ctx, obj, mayContain, false);
 
-       GET_STRING_LIST_LDB(msg, "systemPossSuperiors", mem_ctx, obj, systemPossSuperiors, False);
-       GET_STRING_LIST_LDB(msg, "possSuperiors", mem_ctx, obj, possSuperiors, False);
-       GET_STRING_LIST_LDB(msg, "possibleInferiors", mem_ctx, obj, possibleInferiors, False);
+       GET_STRING_LIST_LDB(msg, "systemPossSuperiors", mem_ctx, obj, systemPossSuperiors, false);
+       GET_STRING_LIST_LDB(msg, "possSuperiors", mem_ctx, obj, possSuperiors, false);
+       GET_STRING_LIST_LDB(msg, "possibleInferiors", mem_ctx, obj, possibleInferiors, false);
 
-       GET_STRING_LDB(msg, "defaultSecurityDescriptor", mem_ctx, obj, defaultSecurityDescriptor, False);
+       GET_STRING_LDB(msg, "defaultSecurityDescriptor", mem_ctx, obj, defaultSecurityDescriptor, false);
 
        GET_UINT32_LDB(msg, "schemaFlagsEx", obj, schemaFlagsEx);
        GET_BLOB_LDB(msg, "msDs-Schema-Extensions", mem_ctx, obj, msDs_Schema_Extensions);
 
-       GET_BOOL_LDB(msg, "showInAdvancedViewOnly", obj, showInAdvancedViewOnly, False);
-       GET_STRING_LDB(msg, "adminDisplayName", mem_ctx, obj, adminDisplayName, False);
-       GET_STRING_LDB(msg, "adminDescription", mem_ctx, obj, adminDescription, False);
-       GET_STRING_LDB(msg, "classDisplayName", mem_ctx, obj, classDisplayName, False);
-       GET_BOOL_LDB(msg, "defaultHidingValue", obj, defaultHidingValue, False);
-       GET_BOOL_LDB(msg, "isDefunct", obj, isDefunct, False);
-       GET_BOOL_LDB(msg, "systemOnly", obj, systemOnly, False);
+       GET_BOOL_LDB(msg, "showInAdvancedViewOnly", obj, showInAdvancedViewOnly, false);
+       GET_STRING_LDB(msg, "adminDisplayName", mem_ctx, obj, adminDisplayName, false);
+       GET_STRING_LDB(msg, "adminDescription", mem_ctx, obj, adminDescription, false);
+       GET_STRING_LDB(msg, "classDisplayName", mem_ctx, obj, classDisplayName, false);
+       GET_BOOL_LDB(msg, "defaultHidingValue", obj, defaultHidingValue, false);
+       GET_BOOL_LDB(msg, "isDefunct", obj, isDefunct, false);
+       GET_BOOL_LDB(msg, "systemOnly", obj, systemOnly, false);
 
        return WERR_OK;
 }
@@ -689,9 +689,9 @@ static struct drsuapi_DsReplicaAttribute *dsdb_find_object_attr_name(struct dsdb
        if (_a && _a->value_ctr.num_values >= 1 \
            && _a->value_ctr.values[0].blob \
            && _a->value_ctr.values[0].blob->length == 4) { \
-               (p)->elem = (IVAL(_a->value_ctr.values[0].blob->data,0)?True:False);\
+               (p)->elem = (IVAL(_a->value_ctr.values[0].blob->data,0)?true:false);\
        } else { \
-               (p)->elem = False; \
+               (p)->elem = false; \
        } \
 } while (0)
 
@@ -744,8 +744,8 @@ WERROR dsdb_attribute_from_drsuapi(struct dsdb_schema *schema,
 {
        WERROR status;
 
-       GET_STRING_DS(schema, r, "name", mem_ctx, attr, cn, True);
-       GET_STRING_DS(schema, r, "lDAPDisplayName", mem_ctx, attr, lDAPDisplayName, True);
+       GET_STRING_DS(schema, r, "name", mem_ctx, attr, cn, true);
+       GET_STRING_DS(schema, r, "lDAPDisplayName", mem_ctx, attr, lDAPDisplayName, true);
        GET_UINT32_DS(schema, r, "attributeID", attr, attributeID_id);
        status = dsdb_map_int2oid(schema, attr->attributeID_id, mem_ctx, &attr->attributeID_oid);
        if (!W_ERROR_IS_OK(status)) {
@@ -761,7 +761,7 @@ WERROR dsdb_attribute_from_drsuapi(struct dsdb_schema *schema,
 
        GET_UINT32_DS(schema, r, "searchFlags", attr, searchFlags);
        GET_UINT32_DS(schema, r, "systemFlags", attr, systemFlags);
-       GET_BOOL_DS(schema, r, "isMemberOfPartialAttributeSet", attr, isMemberOfPartialAttributeSet, False);
+       GET_BOOL_DS(schema, r, "isMemberOfPartialAttributeSet", attr, isMemberOfPartialAttributeSet, false);
        GET_UINT32_DS(schema, r, "linkID", attr, linkID);
 
        GET_UINT32_DS(schema, r, "attributeSyntax", attr, attributeSyntax_id);
@@ -775,21 +775,21 @@ WERROR dsdb_attribute_from_drsuapi(struct dsdb_schema *schema,
        GET_UINT32_DS(schema, r, "oMSyntax", attr, oMSyntax);
        GET_BLOB_DS(schema, r, "oMObjectClass", mem_ctx, attr, oMObjectClass);
 
-       GET_BOOL_DS(schema, r, "isSingleValued", attr, isSingleValued, True);
+       GET_BOOL_DS(schema, r, "isSingleValued", attr, isSingleValued, true);
        GET_UINT32_DS(schema, r, "rangeLower", attr, rangeLower);
        GET_UINT32_DS(schema, r, "rangeUpper", attr, rangeUpper);
-       GET_BOOL_DS(schema, r, "extendedCharsAllowed", attr, extendedCharsAllowed, False);
+       GET_BOOL_DS(schema, r, "extendedCharsAllowed", attr, extendedCharsAllowed, false);
 
        GET_UINT32_DS(schema, r, "schemaFlagsEx", attr, schemaFlagsEx);
        GET_BLOB_DS(schema, r, "msDs-Schema-Extensions", mem_ctx, attr, msDs_Schema_Extensions);
 
-       GET_BOOL_DS(schema, r, "showInAdvancedViewOnly", attr, showInAdvancedViewOnly, False);
-       GET_STRING_DS(schema, r, "adminDisplayName", mem_ctx, attr, adminDisplayName, False);
-       GET_STRING_DS(schema, r, "adminDescription", mem_ctx, attr, adminDescription, False);
-       GET_STRING_DS(schema, r, "classDisplayName", mem_ctx, attr, classDisplayName, False);
-       GET_BOOL_DS(schema, r, "isEphemeral", attr, isEphemeral, False);
-       GET_BOOL_DS(schema, r, "isDefunct", attr, isDefunct, False);
-       GET_BOOL_DS(schema, r, "systemOnly", attr, systemOnly, False);
+       GET_BOOL_DS(schema, r, "showInAdvancedViewOnly", attr, showInAdvancedViewOnly, false);
+       GET_STRING_DS(schema, r, "adminDisplayName", mem_ctx, attr, adminDisplayName, false);
+       GET_STRING_DS(schema, r, "adminDescription", mem_ctx, attr, adminDescription, false);
+       GET_STRING_DS(schema, r, "classDisplayName", mem_ctx, attr, classDisplayName, false);
+       GET_BOOL_DS(schema, r, "isEphemeral", attr, isEphemeral, false);
+       GET_BOOL_DS(schema, r, "isDefunct", attr, isDefunct, false);
+       GET_BOOL_DS(schema, r, "systemOnly", attr, systemOnly, false);
 
        attr->syntax = dsdb_syntax_for_attribute(attr);
        if (!attr->syntax) {
@@ -806,8 +806,8 @@ WERROR dsdb_class_from_drsuapi(struct dsdb_schema *schema,
 {
        WERROR status;
 
-       GET_STRING_DS(schema, r, "name", mem_ctx, obj, cn, True);
-       GET_STRING_DS(schema, r, "lDAPDisplayName", mem_ctx, obj, lDAPDisplayName, True);
+       GET_STRING_DS(schema, r, "name", mem_ctx, obj, cn, true);
+       GET_STRING_DS(schema, r, "lDAPDisplayName", mem_ctx, obj, lDAPDisplayName, true);
        GET_UINT32_DS(schema, r, "governsID", obj, governsID_id);
        status = dsdb_map_int2oid(schema, obj->governsID_id, mem_ctx, &obj->governsID_oid);
        if (!W_ERROR_IS_OK(status)) {
@@ -819,10 +819,10 @@ WERROR dsdb_class_from_drsuapi(struct dsdb_schema *schema,
        GET_GUID_DS(schema, r, "schemaIDGUID", mem_ctx, obj, schemaIDGUID);
 
        GET_UINT32_DS(schema, r, "objectClassCategory", obj, objectClassCategory);
-       GET_STRING_DS(schema, r, "rDNAttID", mem_ctx, obj, rDNAttID, False);
-       GET_DN_DS(schema, r, "defaultObjectCategory", mem_ctx, obj, defaultObjectCategory, True);
+       GET_STRING_DS(schema, r, "rDNAttID", mem_ctx, obj, rDNAttID, false);
+       GET_DN_DS(schema, r, "defaultObjectCategory", mem_ctx, obj, defaultObjectCategory, true);
 
-       GET_STRING_DS(schema, r, "subClassOf", mem_ctx, obj, subClassOf, True);
+       GET_STRING_DS(schema, r, "subClassOf", mem_ctx, obj, subClassOf, true);
 
        obj->systemAuxiliaryClass       = NULL;
        obj->systemPossSuperiors        = NULL;
@@ -836,18 +836,18 @@ WERROR dsdb_class_from_drsuapi(struct dsdb_schema *schema,
 
        obj->possibleInferiors          = NULL;
 
-       GET_STRING_DS(schema, r, "defaultSecurityDescriptor", mem_ctx, obj, defaultSecurityDescriptor, False);
+       GET_STRING_DS(schema, r, "defaultSecurityDescriptor", mem_ctx, obj, defaultSecurityDescriptor, false);
 
        GET_UINT32_DS(schema, r, "schemaFlagsEx", obj, schemaFlagsEx);
        GET_BLOB_DS(schema, r, "msDs-Schema-Extensions", mem_ctx, obj, msDs_Schema_Extensions);
 
-       GET_BOOL_DS(schema, r, "showInAdvancedViewOnly", obj, showInAdvancedViewOnly, False);
-       GET_STRING_DS(schema, r, "adminDisplayName", mem_ctx, obj, adminDisplayName, False);
-       GET_STRING_DS(schema, r, "adminDescription", mem_ctx, obj, adminDescription, False);
-       GET_STRING_DS(schema, r, "classDisplayName", mem_ctx, obj, classDisplayName, False);
-       GET_BOOL_DS(schema, r, "defaultHidingValue", obj, defaultHidingValue, False);
-       GET_BOOL_DS(schema, r, "isDefunct", obj, isDefunct, False);
-       GET_BOOL_DS(schema, r, "systemOnly", obj, systemOnly, False);
+       GET_BOOL_DS(schema, r, "showInAdvancedViewOnly", obj, showInAdvancedViewOnly, false);
+       GET_STRING_DS(schema, r, "adminDisplayName", mem_ctx, obj, adminDisplayName, false);
+       GET_STRING_DS(schema, r, "adminDescription", mem_ctx, obj, adminDescription, false);
+       GET_STRING_DS(schema, r, "classDisplayName", mem_ctx, obj, classDisplayName, false);
+       GET_BOOL_DS(schema, r, "defaultHidingValue", obj, defaultHidingValue, false);
+       GET_BOOL_DS(schema, r, "isDefunct", obj, isDefunct, false);
+       GET_BOOL_DS(schema, r, "systemOnly", obj, systemOnly, false);
 
        return WERR_OK;
 }
index ddd1f2ab7410696ec3274ff6f29cee0027bc6476..6dbbf872d9d25d25c10e4fb3590cb619382c7369 100644 (file)
@@ -73,11 +73,8 @@ _PUBLIC_ const char *dyn_PIDDIR  = PIDDIR;
 /** Private data directory; holds ldb files and the like */
 _PUBLIC_ const char *dyn_PRIVATE_DIR = PRIVATE_DIR;
 
-/** WEBAPPS  directory */
-_PUBLIC_ const char *dyn_WEBAPPSDIR = WEBAPPSDIR;
-
-/** JSON-RPC Services script directory */
-_PUBLIC_ const char *dyn_SERVICESDIR = SERVICESDIR;
+/** SWAT  directory */
+_PUBLIC_ const char *dyn_SWATDIR = SWATDIR;
 
 /** SETUP files (source files used by the provision) */
 _PUBLIC_ const char *dyn_SETUPDIR = SETUPDIR;
index cb56bc6514416bef029f4980956887a134b1fde4..ac54db63d699236469277220a4dcd4c60783d3c4 100644 (file)
@@ -34,8 +34,7 @@ extern const char *dyn_MODULESDIR;
 extern const char *dyn_LOCKDIR; 
 extern const char *dyn_PIDDIR;
 extern const char *dyn_PRIVATE_DIR;
-extern const char *dyn_WEBAPPSDIR;
-extern const char *dyn_SERVICESDIR;
+extern const char *dyn_SWATDIR;
 extern const char *dyn_JSDIR;
 extern const char *dyn_SETUPDIR;
 extern const char *dyn_WINBINDD_SOCKET_DIR;
index 873ea5b45a4eb5edf29d78b7eb49ee01557a0120..1840ededaca2c0bd32f9d1be5297d8564fe8d320 100644 (file)
@@ -13,7 +13,7 @@ PATH_FLAGS = -DCONFIGFILE=\"$(CONFIGFILE)\" \
         -DLOCKDIR=\"$(LOCKDIR)\" -DPIDDIR=\"$(PIDDIR)\" -DDATADIR=\"$(DATADIR)\" \
         -DLOGFILEBASE=\"$(LOGFILEBASE)\" \
         -DCONFIGDIR=\"$(CONFIGDIR)\" -DNCALRPCDIR=\"$(NCALRPCDIR)\" \
-        -DWEBAPPSDIR=\"$(WEBAPPSDIR)\" -DSERVICESDIR=\"$(SERVICESDIR)\" \
+        -DSWATDIR=\"$(SWATDIR)\" \
         -DPRIVATE_DIR=\"$(PRIVATEDIR)\" \
         -DMODULESDIR=\"$(MODULESDIR)\" -DJSDIR=\"$(JSDIR)\" \
         -DTORTUREDIR=\"$(TORTUREDIR)\" \
@@ -21,4 +21,5 @@ PATH_FLAGS = -DCONFIGFILE=\"$(CONFIGFILE)\" \
 
 dynconfig.o: dynconfig.c Makefile
        @echo Compiling $<
-       @$(CC) `$(PERL) $(srcdir)/script/cflags.pl $@` $(CFLAGS) $(PICFLAG) $(PATH_FLAGS) -c $< -o $@
+       @$(CC) `$(PERL) $(srcdir)/script/cflags.pl $@` $(CFLAGS) $(PICFLAG) \
+               $(PATH_FLAGS) -c $(FIRST_PREREQ) -o $@
index 30fef21ed243d59a4aa809acc6fbdb7640a11477..3f17ee55b862753d5dc1fb9069b016b4afc58385 100644 (file)
@@ -4,7 +4,7 @@ lib/talloc/talloc.h: talloc.h
 lib/util/util.h: util.h
 lib/util/debug.h: util/debug.h
 lib/util/mutex.h: util/mutex.h
-nt_status.h: core/nt_status.h
+lib/util/attr.h: util/attr.h
 lib/util/byteorder.h: util/byteorder.h
 lib/util/safe_string.h: util/safe_string.h
 lib/util/xfile.h: util/xfile.h
@@ -34,9 +34,9 @@ librpc/ndr/libndr.h: ndr.h
 lib/registry/registry.h: registry/registry.h
 lib/registry/hive.h: registry/hive.h
 lib/registry/patchfile.h: registry/patchfile.h
-libcli/util/nterr.h: core/nterr.h
+libcli/util/werror.h: core/werror.h
 libcli/util/doserr.h: core/doserr.h
-libcli/util/nt_status.h: core/ntstatus.h
+libcli/util/ntstatus.h: core/ntstatus.h
 libcli/cldap/cldap.h: cldap.h
 lib/samba3/samba3.h: samba3.h
 librpc/gen_ndr/dcerpc.h: gen_ndr/dcerpc.h
index d628e4696f5d7caf68d2fcc4aa105bc6d2d122fe..638b182d1384b6a8571735255da1bf604e013612 100644 (file)
@@ -1,5 +1,6 @@
+#include "config.h"
 
-#line 3 "lex.c"
+#line 3 "heimdal/lib/asn1/lex.c"
 
 #define  YY_INT_ALIGNED short int
 
@@ -342,9 +343,6 @@ FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
 typedef int yy_state_type;
 
 extern int yylineno;
-
-int yylineno = 1;
-
 extern char *yytext;
 #define yytext_ptr yytext
 
@@ -826,7 +824,7 @@ char *yytext;
  * SUCH DAMAGE. 
  */
 
-/* $Id: lex.l 18738 2006-10-21 11:57:22Z lha $ */
+/* $Id: lex.l,v 1.31 2006/10/21 11:57:22 lha Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include <config.h>
@@ -851,7 +849,7 @@ static unsigned lineno = 1;
 static void unterminated(const char *, unsigned);
 
 /* This is for broken old lexes (solaris 10 and hpux) */
-#line 855 "lex.c"
+#line 852 "heimdal/lib/asn1/lex.c"
 
 #define INITIAL 0
 
@@ -1006,7 +1004,7 @@ YY_DECL
     
 #line 68 "lex.l"
 
-#line 1010 "lex.c"
+#line 1007 "heimdal/lib/asn1/lex.c"
 
        if ( !(yy_init) )
                {
@@ -1675,7 +1673,7 @@ YY_RULE_SETUP
 #line 274 "lex.l"
 ECHO;
        YY_BREAK
-#line 1679 "lex.c"
+#line 1676 "heimdal/lib/asn1/lex.c"
 case YY_STATE_EOF(INITIAL):
        yyterminate();
 
@@ -2485,15 +2483,6 @@ static void yy_fatal_error (yyconst char* msg )
 
 /* Accessor  methods (get/set functions) to struct members. */
 
-/** Get the current line number.
- * 
- */
-int yyget_lineno  (void)
-{
-        
-    return yylineno;
-}
-
 /** Get the input stream.
  * 
  */
@@ -2527,16 +2516,6 @@ char *yyget_text  (void)
         return yytext;
 }
 
-/** Set the current line number.
- * @param line_number
- * 
- */
-void yyset_lineno (int  line_number )
-{
-    
-    yylineno = line_number;
-}
-
 /** Set the input stream. This does not discard the current
  * input buffer.
  * @param in_str A readable stream.
index c5af2ead5c47715437a061beda9b2167e30c7e31..77e79d4eae6791bf813c7ec94b7d36ae537c4ce6 100644 (file)
@@ -1,5 +1,6 @@
+#include "config.h"
 
-#line 3 "lex.c"
+#line 3 "heimdal/lib/com_err/lex.c"
 
 #define  YY_INT_ALIGNED short int
 
@@ -342,9 +343,6 @@ FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
 typedef int yy_state_type;
 
 extern int yylineno;
-
-int yylineno = 1;
-
 extern char *yytext;
 #define yytext_ptr yytext
 
@@ -523,7 +521,7 @@ char *yytext;
 #include "parse.h"
 #include "lex.h"
 
-RCSID("$Id: lex.l 15143 2005-05-16 08:52:54Z lha $");
+RCSID("$Id: lex.l,v 1.8 2005/05/16 08:52:54 lha Exp $");
 
 static unsigned lineno = 1;
 static int getstring(void);
@@ -532,7 +530,7 @@ static int getstring(void);
 
 #undef ECHO
 
-#line 536 "lex.c"
+#line 533 "heimdal/lib/com_err/lex.c"
 
 #define INITIAL 0
 
@@ -687,7 +685,7 @@ YY_DECL
     
 #line 59 "lex.l"
 
-#line 691 "lex.c"
+#line 688 "heimdal/lib/com_err/lex.c"
 
        if ( !(yy_init) )
                {
@@ -851,7 +849,7 @@ YY_RULE_SETUP
 #line 75 "lex.l"
 ECHO;
        YY_BREAK
-#line 855 "lex.c"
+#line 852 "heimdal/lib/com_err/lex.c"
 case YY_STATE_EOF(INITIAL):
        yyterminate();
 
@@ -1661,15 +1659,6 @@ static void yy_fatal_error (yyconst char* msg )
 
 /* Accessor  methods (get/set functions) to struct members. */
 
-/** Get the current line number.
- * 
- */
-int yyget_lineno  (void)
-{
-        
-    return yylineno;
-}
-
 /** Get the input stream.
  * 
  */
@@ -1703,16 +1692,6 @@ char *yyget_text  (void)
         return yytext;
 }
 
-/** Set the current line number.
- * @param line_number
- * 
- */
-void yyset_lineno (int  line_number )
-{
-    
-    yylineno = line_number;
-}
-
 /** Set the input stream. This does not discard the current
  * input buffer.
  * @param in_str A readable stream.
index 01a620c1c5a8d859d02a8e7f1a6fcc8b7b017d0a..8c0959550bebeba3853c8ffa911719fb52e14b11 100644 (file)
@@ -71,8 +71,6 @@ AC_CHECK_FUNCS([                              \
        cgetent                                 \
        getprogname                             \
        inet_aton                               \
-       inet_ntop                               \
-       inet_pton                               \
        gethostname                             \
        getnameinfo                             \
        iruserok                                \
@@ -100,8 +98,6 @@ AC_CHECK_FUNCS([                             \
        errx                                    \
        warnx                                   \
        flock                                   \
-       getaddrinfo                             \
-       freeaddrinfo                            \
        getipnodebyname                         \
        getipnodebyaddr                         \
        freehostent                             \
@@ -229,49 +225,6 @@ SMB_ENABLE(KERBEROS_LIB, YES)
 SMB_ENABLE(asn1_compile, YES)
 SMB_ENABLE(compile_et, YES)
 
-# only add getaddrinfo and related functions if needed
-SMB_ENABLE(HEIMDAL_ROKEN_ADDRINFO, NO)
-if test t$ac_cv_func_getaddrinfo != tyes; then
-       SMB_ENABLE(HEIMDAL_ROKEN_ADDRINFO, YES)
-fi
-
-SMB_ENABLE(HEIMDAL_ROKEN_GETNAMEINFO, NO)
-if test t$ac_cv_func_getnameinfo != tyes; then
-       SMB_ENABLE(HEIMDAL_ROKEN_GETNAMEINFO, YES)
-fi
-
-# only add inet_aton if needed
-SMB_ENABLE(HEIMDAL_ROKEN_INET_ATON, NO)
-if test t$ac_cv_func_inet_aton != tyes; then
-       SMB_ENABLE(HEIMDAL_ROKEN_INET_ATON, YES)
-fi
-
-SMB_ENABLE(HEIMDAL_ROKEN_INET_NTOP, NO)
-if test x"$ac_cv_func_inet_ntop" = x"no"; then
-    AC_CHECK_LIB_EXT(nsl_s, NSL_LIBS, inet_ntop)
-    AC_CHECK_LIB_EXT(nsl, NSL_LIBS, inet_ntop)
-    if test x"$ac_cv_lib_ext_nsl_s_inet_ntop" != x"yes" &&
-       test x"$ac_cv_lib_ext_nsl_inet_ntop" != x"yes"; then
-       SMB_ENABLE(HEIMDAL_ROKEN_INET_NTOP, YES)
-    else
-       SMB_ENABLE(NSL,YES)
-    fi
-fi
-
-SMB_ENABLE(HEIMDAL_ROKEN_INET_PTON, NO)
-if test x"$ac_cv_func_inet_pton" = x"no"; then
-    AC_CHECK_LIB_EXT(nsl_s, NSL_LIBS, inet_pton)
-    AC_CHECK_LIB_EXT(nsl, NSL_LIBS, inet_pton)
-    if test x"$ac_cv_lib_ext_nsl_s_inet_pton" != x"yes" &&
-       test x"$ac_cv_lib_ext_nsl_inet_pton" != x"yes"; then
-       SMB_ENABLE(HEIMDAL_ROKEN_INET_PTON, YES)
-    else
-       SMB_ENABLE(NSL,YES)
-    fi
-fi
-
-SMB_EXT_LIB(NSL,[${NSL_LIBS}],[],[],[])
-
 # only add closefrom if needed
 SMB_ENABLE(HEIMDAL_ROKEN_CLOSEFROM, NO)
 if test t$ac_cv_func_closefrom != tyes; then
@@ -285,29 +238,3 @@ if test t$ac_cv_func_getprogname != tyes; then
        SMB_ENABLE(HEIMDAL_ROKEN_GETPROGNAME, YES)
        SMB_ENABLE(HEIMDAL_ROKEN_GETPROGNAME_H, YES)
 fi
-
-# only add gai_strerror if needed
-SMB_ENABLE(HEIMDAL_ROKEN_GAI_STRERROR, NO)
-AC_CHECK_FUNC(gai_strerror)
-
-if test t$ac_cv_func_gai_strerror != tyes; then
-    AC_CHECK_LIB_EXT(nsl, GAI_LIBS, gai_strerror)
-    AC_CHECK_LIB_EXT(socket, GAI_LIBS, gai_strerror)
-    AC_CHECK_LIB_EXT(xnet, GAI_LIBS, gai_strerror)
-
-    dnl We can't just call AC_CHECK_FUNCS(gai_strerror) here, because the value
-    dnl has been cached.
-    if test x"$ac_cv_lib_ext_nsl_gai_strerror" = x"yes" ||
-       test x"$ac_cv_lib_ext_socket_gai_strerror" = x"yes" ||
-       test x"$ac_cv_lib_ext_xnet_gai_strerror" = x"yes"; then
-        AC_DEFINE(HAVE_GAI_STRERROR,1,[Whether the system has gai_strerror()])
-       SMB_ENABLE(GAI, YES)
-    else
-       SMB_ENABLE(HEIMDAL_ROKEN_GAI_STRERROR, YES)
-    fi
-
-else
-    AC_DEFINE(HAVE_GAI_STRERROR,1,[Whether gai_strerror() is available])
-fi
-
-SMB_EXT_LIB(GAI,[${GAI_LIBS}],[${GAI_CFLAGS}],[${GAI_CPPFLAGS}],[${GAI_LDFLAGS}])
index 940d9cdb9ce6b958cab916669cb2f90f3c92a7bc..ce5fa6e98ea233ec02fb162c3be8f5a75b267bc2 100644 (file)
@@ -369,24 +369,6 @@ OBJ_FILES = \
 # End SUBSYSTEM HEIMDAL_HX509
 #######################
 
-#######################
-# Start SUBSYSTEM HEIMDAL_ROKEN_GAI_STRERROR
-[SUBSYSTEM::HEIMDAL_ROKEN_GAI_STRERROR]
-CFLAGS = -Iheimdal_build -Iheimdal/lib/roken  -Ilib/socket_wrapper
-OBJ_FILES = ../heimdal/lib/roken/gai_strerror.o
-
-[SUBSYSTEM::HEIMDAL_ROKEN_INET_ATON]
-CFLAGS = -Iheimdal_build -Iheimdal/lib/roken  -Ilib/socket_wrapper
-OBJ_FILES = ../heimdal/lib/roken/inet_aton.o
-
-[SUBSYSTEM::HEIMDAL_ROKEN_INET_NTOP]
-CFLAGS = -Iheimdal_build -Iheimdal/lib/roken  -Ilib/socket_wrapper
-OBJ_FILES = ../heimdal/lib/roken/inet_ntop.o
-
-[SUBSYSTEM::HEIMDAL_ROKEN_INET_PTON]
-CFLAGS = -Iheimdal_build -Iheimdal/lib/roken  -Ilib/socket_wrapper
-OBJ_FILES = ../heimdal/lib/roken/inet_pton.o
-
 [SUBSYSTEM::HEIMDAL_ROKEN_GETPROGNAME]
 CFLAGS = -Iheimdal_build -Iheimdal/lib/roken  -Ilib/socket_wrapper
 OBJ_FILES = ../heimdal/lib/roken/getprogname.o
@@ -399,24 +381,6 @@ OBJ_FILES = ../heimdal/lib/roken/closefrom.o
 CFLAGS = -Iheimdal_build -Iheimdal/lib/roken  -Ilib/socket_wrapper
 OBJ_FILES = ../heimdal/lib/roken/getprogname.ho
 
-[SUBSYSTEM::HEIMDAL_ROKEN_GETNAMEINFO]
-CFLAGS = -Iheimdal_build -Iheimdal/lib/roken  -Ilib/socket_wrapper
-OBJ_FILES = ../heimdal/lib/roken/getnameinfo.o
-
-#######################
-# Start SUBSYSTEM HEIMDAL_ROKEN_ADDRINFO
-[SUBSYSTEM::HEIMDAL_ROKEN_ADDRINFO]
-CFLAGS = -Iheimdal_build -Iheimdal/lib/roken
-OBJ_FILES = \
-       ../heimdal/lib/roken/getaddrinfo.o \
-       ../heimdal/lib/roken/freeaddrinfo.o \
-       ../heimdal/lib/roken/getipnodebyaddr.o \
-       ../heimdal/lib/roken/getipnodebyname.o \
-       ../heimdal/lib/roken/freehostent.o \
-       ../heimdal/lib/roken/copyhostent.o \
-       ../heimdal/lib/roken/hostent_find_fqdn.o
-PRIVATE_DEPENDENCIES = HEIMDAL_ROKEN_INET_PTON EXT_SOCKET
-
 #######################
 # Start SUBSYSTEM HEIMDAL_ROKEN
 [SUBSYSTEM::HEIMDAL_ROKEN]
@@ -453,16 +417,8 @@ OBJ_FILES = \
        ../heimdal/lib/roken/rtbl.o \
        replace.o
 PUBLIC_DEPENDENCIES = \
-                       HEIMDAL_ROKEN_ADDRINFO \
-                       HEIMDAL_ROKEN_GAI_STRERROR \
-                       HEIMDAL_ROKEN_INET_ATON \
-                       HEIMDAL_ROKEN_INET_NTOP \
-                       HEIMDAL_ROKEN_INET_PTON \
                        HEIMDAL_ROKEN_GETPROGNAME \
                        HEIMDAL_ROKEN_CLOSEFROM \
-                       HEIMDAL_ROKEN_GETNAMEINFO \
-                       GAI \
-                       NSL \
                        RESOLV \
                        EXT_SOCKET
 # End SUBSYSTEM HEIMDAL_ROKEN
index 40cb306eb2047f5d133789cec8fbb97c65294d2e..1a92e4665718749a11290bb92055a90e4a2856e0 100644 (file)
 
 #include "local.h"
 
-#ifdef __GNUC__
-/** gcc attribute used on function parameters so that it does not emit
- * warnings about them being unused. **/
-#  define UNUSED(param) param __attribute__ ((unused))
-#else
-#  define UNUSED(param) param
-/** Feel free to add definitions for other compilers here. */
-#endif
-
-#ifndef _PUBLIC_
-#ifdef HAVE_VISIBILITY_ATTR
-#  define _PUBLIC_ __attribute__((visibility("default")))
-#else
-#  define _PUBLIC_
-#endif
-#endif
-
-#ifndef PRINTF_ATTRIBUTE
-#if __GNUC__ >= 3
-/** Use gcc attribute to check printf fns.  a1 is the 1-based index of
- * the parameter containing the format, and a2 the index of the first
- * argument. Note that some gcc 2.x versions don't handle this
- * properly **/
-#define PRINTF_ATTRIBUTE(a1, a2) __attribute__ ((format (__printf__, a1, a2)))
-#else
-#define PRINTF_ATTRIBUTE(a1, a2)
-#endif
-#endif
-
-#ifndef _DEPRECATED_
-#if (__GNUC__ >= 3) && (__GNUC_MINOR__ >= 1 )
-#define _DEPRECATED_ __attribute__ ((deprecated))
-#else
-#define _DEPRECATED_
-#endif
-#endif
-
-#ifndef _WARN_UNUSED_RESULT_
-#if (__GNUC__ >= 3) && (__GNUC_MINOR__ >= 1 )
-#define _WARN_UNUSED_RESULT_ __attribute__ ((warn_unused_result))
-#else
-#define _WARN_UNUSED_RESULT_
-#endif
-#endif
-
-#ifndef _NORETURN_
-#if (__GNUC__ >= 3) && (__GNUC_MINOR__ >= 1 )
-#define _NORETURN_ __attribute__ ((noreturn))
-#else
-#define _NORETURN_
-#endif
-#endif
-
-#ifndef _PURE_
-#if (__GNUC__ >= 3) && (__GNUC_MINOR__ >= 1)
-#define _PURE_ __attribute__((pure))
-#else
-#define _PURE_
-#endif
-#endif
-
-#ifndef NONNULL
-#if (__GNUC__ >= 3) && (__GNUC_MINOR__ >= 1)
-#define NONNULL(param) param __attribute__((nonnull))
-#else
-#define NONNULL(param) param
-#endif
-#endif
-
 #include "system/time.h"
 #include "system/wait.h"
 
-#ifndef _PRINTF_ATTRIBUTE
-#define _PRINTF_ATTRIBUTE(a1, a2) PRINTF_ATTRIBUTE(a1, a2)
-#endif
-
 /* Lists, trees, caching, database... */
 #include <stdlib.h>
 #include <stdbool.h>
 #include <talloc.h>
-#include "libcli/util/nt_status.h"
-#include "charset/charset.h"
+#ifndef _PRINTF_ATTRIBUTE
+#define _PRINTF_ATTRIBUTE(a1, a2) PRINTF_ATTRIBUTE(a1, a2)
+#endif
 #include "util/util.h"
-#include "param/param.h"
-#include "librpc/gen_ndr/misc.h"
-
-typedef bool BOOL;
-
-#define False false
-#define True true
 
-struct smbcli_tree;
 #include "libcli/util/error.h"
 
 /* String routines */
old mode 100644 (file)
new mode 100755 (executable)
index ddee8d19d1670042b0eb51b899d194b872b8b911..3ef5f9510aed8e7d74f354176cab9b2f7c00ffda 100644 (file)
@@ -49,6 +49,7 @@
 #include "librpc/ndr/libndr.h"
 #include "librpc/gen_ndr/ndr_drsblobs.h"
 #include "libcli/auth/libcli_auth.h"
+#include "param/param.h"
 
 enum hdb_ldb_ent_type 
 { HDB_LDB_ENT_TYPE_CLIENT, HDB_LDB_ENT_TYPE_SERVER, 
@@ -480,7 +481,7 @@ static krb5_error_code LDB_message2entry(krb5_context context, HDB *db,
                entry_ex->entry.flags.ok_as_delegate = 1;
        }
 
-       if (lp_parm_bool(-1, "kdc", "require spn for service", True)) {
+       if (lp_parm_bool(global_loadparm, NULL, "kdc", "require spn for service", true)) {
                if (!is_computer && !ldb_msg_find_attr_as_string(msg, "servicePrincipalName", NULL)) {
                        entry_ex->entry.flags.server = 0;
                }
index c58f73824374f00f327bad2a19a3dacee6936722..d1582215f8786ccf67c2e1866186a6696161eb3b 100644 (file)
@@ -38,6 +38,7 @@
 #include "heimdal/kdc/windc_plugin.h"
 #include "heimdal/lib/krb5/krb5_locl.h"
 #include "heimdal/kdc/kdc_locl.h"
+#include "param/param.h"
 
 
 /* Disgusting hack to get a mem_ctx into the hdb plugin, when used as a keytab */
@@ -50,7 +51,7 @@ struct kdc_reply {
        DATA_BLOB packet;
 };
 
-typedef BOOL (*kdc_process_fn_t)(struct kdc_server *kdc,
+typedef bool (*kdc_process_fn_t)(struct kdc_server *kdc,
                                 TALLOC_CTX *mem_ctx, 
                                 DATA_BLOB *input, 
                                 DATA_BLOB *reply,
@@ -310,7 +311,7 @@ static void kdc_tcp_send(struct stream_connection *conn, uint16_t flags)
    calling conventions
 */
 
-static BOOL kdc_process(struct kdc_server *kdc,
+static bool kdc_process(struct kdc_server *kdc,
                        TALLOC_CTX *mem_ctx, 
                        DATA_BLOB *input, 
                        DATA_BLOB *reply,
@@ -336,7 +337,7 @@ static BOOL kdc_process(struct kdc_server *kdc,
                                            datagram_reply);
        if (ret == -1) {
                *reply = data_blob(NULL, 0);
-               return False;
+               return false;
        }
        if (k5_reply.length) {
                *reply = data_blob_talloc(mem_ctx, k5_reply.data, k5_reply.length);
@@ -344,7 +345,7 @@ static BOOL kdc_process(struct kdc_server *kdc,
        } else {
                *reply = data_blob(NULL, 0);    
        }
-       return True;
+       return true;
 }
 
 /*
@@ -407,15 +408,14 @@ static const struct stream_server_ops kpasswdd_tcp_stream_ops = {
 /*
   start listening on the given address
 */
-static NTSTATUS kdc_add_socket(struct kdc_server *kdc, const char *address)
+static NTSTATUS kdc_add_socket(struct kdc_server *kdc, const char *address,
+                              uint16_t kdc_port, uint16_t kpasswd_port)
 {
        const struct model_ops *model_ops;
        struct kdc_socket *kdc_socket;
        struct kdc_socket *kpasswd_socket;
        struct socket_address *kdc_address, *kpasswd_address;
        NTSTATUS status;
-       uint16_t kdc_port = lp_krb5_port();
-       uint16_t kpasswd_port = lp_kpasswd_port();
 
        kdc_socket = talloc(kdc, struct kdc_socket);
        NT_STATUS_HAVE_NO_MEMORY(kdc_socket);
@@ -526,7 +526,8 @@ static NTSTATUS kdc_startup_interfaces(struct kdc_server *kdc)
        
        for (i=0; i<num_interfaces; i++) {
                const char *address = talloc_strdup(tmp_ctx, iface_n_ip(i));
-               status = kdc_add_socket(kdc, address);
+               status = kdc_add_socket(kdc, address, lp_krb5_port(global_loadparm), 
+                                       lp_kpasswd_port(global_loadparm));
                NT_STATUS_NOT_OK_RETURN(status);
        }
 
@@ -554,7 +555,7 @@ static void kdc_task_init(struct task_server *task)
        NTSTATUS status;
        krb5_error_code ret;
 
-       switch (lp_server_role()) {
+       switch (lp_server_role(global_loadparm)) {
        case ROLE_STANDALONE:
                task_server_terminate(task, "kdc: no KDC required in standalone configuration");
                return;
index dc717daa6589b76b82de8305ae109fad52c19721..5bda85c96e6da61ad456f448bfed2b93ba776403 100644 (file)
@@ -38,6 +38,7 @@
 #include "rpc_server/dcerpc_server.h"
 #include "rpc_server/samr/proto.h"
 #include "libcli/security/security.h"
+#include "param/param.h"
 
 /* hold information about one kdc socket */
 struct kpasswd_socket {
@@ -50,7 +51,7 @@ struct kpasswd_socket {
 };
 
 /* Return true if there is a valid error packet formed in the error_blob */
-static BOOL kpasswdd_make_error_reply(struct kdc_server *kdc, 
+static bool kpasswdd_make_error_reply(struct kdc_server *kdc, 
                                     TALLOC_CTX *mem_ctx, 
                                     uint16_t result_code, 
                                     const char *error_string, 
@@ -63,33 +64,33 @@ static BOOL kpasswdd_make_error_reply(struct kdc_server *kdc,
 
        len = push_utf8_talloc(mem_ctx, &error_string_utf8, error_string);
        if (len == -1) {
-               return False;
+               return false;
        }
 
        *error_blob = data_blob_talloc(mem_ctx, NULL, 2 + len + 1);
        if (!error_blob->data) {
-               return False;
+               return false;
        }
        RSSVAL(error_blob->data, 0, result_code);
        memcpy(error_blob->data + 2, error_string_utf8, len + 1);
-       return True;
+       return true;
 }
 
 /* Return true if there is a valid error packet formed in the error_blob */
-static BOOL kpasswdd_make_unauth_error_reply(struct kdc_server *kdc, 
+static bool kpasswdd_make_unauth_error_reply(struct kdc_server *kdc, 
                                            TALLOC_CTX *mem_ctx, 
                                            uint16_t result_code, 
                                            const char *error_string, 
                                            DATA_BLOB *error_blob) 
 {
-       BOOL ret;
+       bool ret;
        int kret;
        DATA_BLOB error_bytes;
        krb5_data k5_error_bytes, k5_error_blob;
        ret = kpasswdd_make_error_reply(kdc, mem_ctx, result_code, error_string, 
                                       &error_bytes);
        if (!ret) {
-               return False;
+               return false;
        }
        k5_error_bytes.data = error_bytes.data;
        k5_error_bytes.length = error_bytes.length;
@@ -97,17 +98,17 @@ static BOOL kpasswdd_make_unauth_error_reply(struct kdc_server *kdc,
                             result_code, NULL, &k5_error_bytes, 
                             NULL, NULL, NULL, NULL, &k5_error_blob);
        if (kret) {
-               return False;
+               return false;
        }
        *error_blob = data_blob_talloc(mem_ctx, k5_error_blob.data, k5_error_blob.length);
        krb5_data_free(&k5_error_blob);
        if (!error_blob->data) {
-               return False;
+               return false;
        }
-       return True;
+       return true;
 }
 
-static BOOL kpasswd_make_pwchange_reply(struct kdc_server *kdc, 
+static bool kpasswd_make_pwchange_reply(struct kdc_server *kdc, 
                                        TALLOC_CTX *mem_ctx, 
                                        NTSTATUS status, 
                                        enum samr_RejectReason reject_reason,
@@ -168,7 +169,7 @@ static BOOL kpasswd_make_pwchange_reply(struct kdc_server *kdc,
    Return true if there is a valid error packet (or sucess) formed in
    the error_blob
 */
-static BOOL kpasswdd_change_password(struct kdc_server *kdc,
+static bool kpasswdd_change_password(struct kdc_server *kdc,
                                     TALLOC_CTX *mem_ctx, 
                                     struct auth_session_info *session_info,
                                     const char *password,
@@ -196,7 +197,7 @@ static BOOL kpasswdd_change_password(struct kdc_server *kdc,
        status = samdb_set_password_sid(samdb, mem_ctx, 
                                        session_info->security_token->user_sid,
                                        password, NULL, NULL, 
-                                       True, /* this is a user password change */
+                                       true, /* this is a user password change */
                                        &reject_reason,
                                        &dominfo);
        return kpasswd_make_pwchange_reply(kdc, mem_ctx, 
@@ -207,7 +208,7 @@ static BOOL kpasswdd_change_password(struct kdc_server *kdc,
 
 }
 
-static BOOL kpasswd_process_request(struct kdc_server *kdc,
+static bool kpasswd_process_request(struct kdc_server *kdc,
                                    TALLOC_CTX *mem_ctx, 
                                    struct gensec_security *gensec_security,
                                    uint16_t version,
@@ -228,7 +229,7 @@ static BOOL kpasswd_process_request(struct kdc_server *kdc,
        {
                char *password = talloc_strndup(mem_ctx, (const char *)input->data, input->length);
                if (!password) {
-                       return False;
+                       return false;
                }
                return kpasswdd_change_password(kdc, mem_ctx, session_info, 
                                                password, reply);
@@ -255,7 +256,7 @@ static BOOL kpasswd_process_request(struct kdc_server *kdc,
 
                msg = ldb_msg_new(mem_ctx);
                if (!msg) {
-                       return False;
+                       return false;
                }
 
                ret = decode_ChangePasswdDataMS(input->data, input->length,
@@ -267,11 +268,12 @@ static BOOL kpasswd_process_request(struct kdc_server *kdc,
                                                        reply);
                }
                
-               password = talloc_strndup(mem_ctx, chpw.newpasswd.data, 
+               password = talloc_strndup(mem_ctx, 
+                                         (const char *)chpw.newpasswd.data, 
                                          chpw.newpasswd.length);
                if (!password) {
                        free_ChangePasswdDataMS(&chpw);
-                       return False;
+                       return false;
                }
                if ((chpw.targname && !chpw.targrealm) 
                    || (!chpw.targname && chpw.targrealm)) {
@@ -360,7 +362,7 @@ static BOOL kpasswd_process_request(struct kdc_server *kdc,
                        status = samdb_set_password(samdb, mem_ctx,
                                                    set_password_on_dn, NULL,
                                                    msg, password, NULL, NULL, 
-                                                   False, /* this is not a user password change */
+                                                   false, /* this is not a user password change */
                                                    &reject_reason, &dominfo);
                }
 
@@ -399,10 +401,10 @@ static BOOL kpasswd_process_request(struct kdc_server *kdc,
                                                                 version),
                                                 reply);
        }
-       return True;
+       return true;
 }
 
-BOOL kpasswdd_process(struct kdc_server *kdc,
+bool kpasswdd_process(struct kdc_server *kdc,
                      TALLOC_CTX *mem_ctx, 
                      DATA_BLOB *input, 
                      DATA_BLOB *reply,
@@ -410,7 +412,7 @@ BOOL kpasswdd_process(struct kdc_server *kdc,
                      struct socket_address *my_addr,
                      int datagram_reply)
 {
-       BOOL ret;
+       bool ret;
        const uint16_t header_len = 6;
        uint16_t len;
        uint16_t ap_req_len;
@@ -426,20 +428,20 @@ BOOL kpasswdd_process(struct kdc_server *kdc,
        TALLOC_CTX *tmp_ctx = talloc_new(mem_ctx);
        
        if (!tmp_ctx) {
-               return False;
+               return false;
        }
 
        /* Be parinoid.  We need to ensure we don't just let the
         * caller lead us into a buffer overflow */
        if (input->length <= header_len) {
                talloc_free(tmp_ctx);
-               return False;
+               return false;
        }
 
        len = RSVAL(input->data, 0);
        if (input->length != len) {
                talloc_free(tmp_ctx);
-               return False;
+               return false;
        }
 
        /* There are two different versions of this protocol so far,
@@ -449,7 +451,7 @@ BOOL kpasswdd_process(struct kdc_server *kdc,
        ap_req_len = RSVAL(input->data, 4);
        if ((ap_req_len >= len) || (ap_req_len + header_len) >= len) {
                talloc_free(tmp_ctx);
-               return False;
+               return false;
        }
        
        krb_priv_len = len - ap_req_len;
@@ -459,19 +461,19 @@ BOOL kpasswdd_process(struct kdc_server *kdc,
        nt_status = gensec_server_start(tmp_ctx, kdc->task->event_ctx, kdc->task->msg_ctx, &gensec_security);
        if (!NT_STATUS_IS_OK(nt_status)) {
                talloc_free(tmp_ctx);
-               return False;
+               return false;
        }
 
        server_credentials = cli_credentials_init(tmp_ctx);
        if (!server_credentials) {
                DEBUG(1, ("Failed to init server credentials\n"));
-               return False;
+               return false;
        }
 
        /* We want the credentials subsystem to use the krb5 context
         * we already have, rather than a new context */        
        cli_credentials_set_krb5_context(server_credentials, kdc->smb_krb5_context);
-       cli_credentials_set_conf(server_credentials);
+       cli_credentials_set_conf(server_credentials, global_loadparm);
        nt_status = cli_credentials_set_stored_principal(server_credentials, "kadmin/changepw");
        if (!NT_STATUS_IS_OK(nt_status)) {
                ret = kpasswdd_make_unauth_error_reply(kdc, mem_ctx, 
@@ -491,7 +493,7 @@ BOOL kpasswdd_process(struct kdc_server *kdc,
        nt_status = gensec_set_credentials(gensec_security, server_credentials);
        if (!NT_STATUS_IS_OK(nt_status)) {
                talloc_free(tmp_ctx);
-               return False;
+               return false;
        }
 
        /* The kerberos PRIV packets include these addresses.  MIT
@@ -499,12 +501,12 @@ BOOL kpasswdd_process(struct kdc_server *kdc,
        nt_status = gensec_set_peer_addr(gensec_security, peer_addr);
        if (!NT_STATUS_IS_OK(nt_status)) {
                talloc_free(tmp_ctx);
-               return False;
+               return false;
        }
        nt_status = gensec_set_my_addr(gensec_security, my_addr);
        if (!NT_STATUS_IS_OK(nt_status)) {
                talloc_free(tmp_ctx);
-               return False;
+               return false;
        }
 
        /* We want the GENSEC wrap calls to generate PRIV tokens */
@@ -513,7 +515,7 @@ BOOL kpasswdd_process(struct kdc_server *kdc,
        nt_status = gensec_start_mech_by_name(gensec_security, "krb5");
        if (!NT_STATUS_IS_OK(nt_status)) {
                talloc_free(tmp_ctx);
-               return False;
+               return false;
        }
 
        /* Accept the AP-REQ and generate teh AP-REP we need for the reply */
@@ -558,7 +560,7 @@ BOOL kpasswdd_process(struct kdc_server *kdc,
                                      &kpasswd_req, &kpasswd_rep); 
        if (!ret) {
                /* Argh! */
-               return False;
+               return false;
        }
 
        /* And wrap up the reply: This ensures that the error message
@@ -583,7 +585,7 @@ BOOL kpasswdd_process(struct kdc_server *kdc,
 reply:
        *reply = data_blob_talloc(mem_ctx, NULL, krb_priv_rep.length + ap_rep.length + header_len);
        if (!reply->data) {
-               return False;
+               return false;
        }
 
        RSSVAL(reply->data, 0, reply->length);
index c8ae293a2af45d399a3757bf6d5ae0d2d08b672b..25d19a5a588f6df70fb33455e5b6c18811c12801 100644 (file)
@@ -26,6 +26,7 @@
 #include "lib/db_wrap.h"
 #include "auth/credentials/credentials.h"
 #include "auth/gensec/gensec.h"
+#include "param/param.h"
 
 #define VALID_DN_SYNTAX(dn,i) do {\
        if (!(dn)) {\
@@ -54,7 +55,9 @@ static int map_ldb_error(struct ldb_context *ldb, int err, const char **errstrin
 */
 NTSTATUS ldapsrv_backend_Init(struct ldapsrv_connection *conn) 
 {
-       conn->ldb = ldb_wrap_connect(conn, lp_sam_url(), conn->session_info,
+       conn->ldb = ldb_wrap_connect(conn, 
+                                    global_loadparm,
+                                    lp_sam_url(global_loadparm), conn->session_info,
                                     NULL, conn->global_catalog ? LDB_FLG_RDONLY : 0, NULL);
        if (conn->ldb == NULL) {
                return NT_STATUS_INTERNAL_DB_CORRUPTION;
@@ -63,10 +66,8 @@ NTSTATUS ldapsrv_backend_Init(struct ldapsrv_connection *conn)
        if (conn->server_credentials) {
                char **sasl_mechs = NULL;
                struct gensec_security_ops **backends = gensec_security_all();
-               enum credentials_use_kerberos use_kerberos
-                       = cli_credentials_get_kerberos_state(conn->server_credentials);
                struct gensec_security_ops **ops
-                       = gensec_use_kerberos_mechs(conn, backends, use_kerberos);
+                       = gensec_use_kerberos_mechs(conn, backends, conn->server_credentials);
                int i, j = 0;
                for (i = 0; ops && ops[i]; i++) {
                        if (ops[i]->sasl_name && ops[i]->server_start) {
index 0de76052d1c3c66398af3c95b19a76f5a1ee5945..a74d002e9b7c4e8ec38a4c33f4858b9c0bb8e687 100644 (file)
@@ -40,6 +40,7 @@
 #include "system/network.h"
 #include "lib/socket/netif.h"
 #include "dsdb/samdb/samdb.h"
+#include "param/param.h"
 /*
   close the socket and shutdown a server_context
 */
@@ -368,7 +369,7 @@ static void ldapsrv_accept(struct stream_connection *c)
                conn->sockets.tls = tls_socket;
 
        } else if (port == 3268) /* Global catalog */ {
-               conn->global_catalog = True;
+               conn->global_catalog = true;
        }
        conn->packet = packet_init(conn);
        if (conn->packet == NULL) {
@@ -395,7 +396,7 @@ static void ldapsrv_accept(struct stream_connection *c)
                return;
        }
        
-       cli_credentials_set_conf(server_credentials);
+       cli_credentials_set_conf(server_credentials, global_loadparm);
        status = cli_credentials_set_machine_account(server_credentials);
        if (!NT_STATUS_IS_OK(status)) {
                stream_terminate_connection(c, talloc_asprintf(conn, "Failed to obtain server credentials, perhaps a standalone server?: %s\n", nt_errstr(status)));
@@ -512,6 +513,18 @@ static void ldapsrv_task_init(struct task_server *task)
        NTSTATUS status;
        const struct model_ops *model_ops;
 
+       switch (lp_server_role(global_loadparm)) {
+       case ROLE_STANDALONE:
+               task_server_terminate(task, "ldap_server: no LDAP server required in standalone configuration");
+               return;
+       case ROLE_DOMAIN_MEMBER:
+               task_server_terminate(task, "ldap_server: no LDAP server required in member server configuration");
+               return;
+       case ROLE_DOMAIN_CONTROLLER:
+               /* Yes, we want an LDAP server */
+               break;
+       }
+
        task_server_set_title(task, "task[ldapsrv]");
 
        /* run the ldap server as a single process */
@@ -524,7 +537,7 @@ static void ldapsrv_task_init(struct task_server *task)
        ldap_service->tls_params = tls_initialise(ldap_service);
        if (ldap_service->tls_params == NULL) goto failed;
 
-       if (lp_interfaces() && lp_bind_interfaces_only()) {
+       if (lp_interfaces(global_loadparm) && lp_bind_interfaces_only(global_loadparm)) {
                int num_interfaces = iface_count();
                int i;
 
@@ -538,7 +551,8 @@ static void ldapsrv_task_init(struct task_server *task)
                        if (!NT_STATUS_IS_OK(status)) goto failed;
                }
        } else {
-               status = add_socket(task->event_ctx, model_ops, lp_socket_address(), ldap_service);
+               status = add_socket(task->event_ctx, model_ops, 
+                                   lp_socket_address(global_loadparm), ldap_service);
                if (!NT_STATUS_IS_OK(status)) goto failed;
        }
 
index 0dfc2e0ed2d6347c2ac3e05316724783a8224bce..67d0a4e7601558aa180cd5fce9c79018c5fb806e 100644 (file)
@@ -154,7 +154,7 @@ EjsId ejsOpenEngine(EjsHandle primaryHandle, EjsHandle altHandle)
        MprVar  *np;
        Ejs             *ep;
 
-       ep = mprMalloc(sizeof(Ejs));
+       ep = (Ejs *)mprMalloc(sizeof(Ejs));
        if (ep == 0) {
                return (EjsId) -1;
        }
index e993207b007c8caefe11217176da86272b076382..266ca6e685a82f9bd5fe95d9efc62f00efb0b9a7 100644 (file)
@@ -2,7 +2,7 @@
 include samba3/config.mk
 include socket/config.mk
 include charset/config.mk
-include ldb/config.mk
+include ldb-samba/config.mk
 include tls/config.mk
 include registry/config.mk
 include policy/config.mk
index fcf29d46475dd05ac048e88a59889ba9f5a2b0fe..9c794202b2659fa16b82106f7eeaae168274ccb7 100644 (file)
@@ -21,6 +21,7 @@
 */
 #include "includes.h"
 #include "system/iconv.h"
+#include "param/param.h"
 
 /**
  * @file
  * @sa lib/iconv.c
  */
 
-char *unix_charset = NULL;
-char *dos_charset = NULL;
-char *display_charset = NULL;
-
 /**
  * Return the name of a charset to give to iconv().
  **/
-static const char *charset_name(charset_t ch)
+static const char *charset_name(struct loadparm_context *lp_ctx, charset_t ch)
 {
        switch (ch) {
        case CH_UTF16: return "UTF-16LE";
-       case CH_UNIX: return unix_charset;
-       case CH_DOS: return dos_charset;
-       case CH_DISPLAY: return display_charset;
+       case CH_UNIX: return lp_unix_charset(lp_ctx);
+       case CH_DOS: return lp_dos_charset(lp_ctx);
+       case CH_DISPLAY: return lp_display_charset(lp_ctx);
        case CH_UTF8: return "UTF8";
        case CH_UTF16BE: return "UTF-16BE";
        default:
@@ -108,20 +105,20 @@ static smb_iconv_t get_conv_handle(charset_t from, charset_t to)
                return conv_handles[from][to];
        }
 
-       n1 = charset_name(from);
-       n2 = charset_name(to);
+       n1 = charset_name(global_loadparm, from);
+       n2 = charset_name(global_loadparm, to);
 
        conv_handles[from][to] = smb_iconv_open(n2,n1);
        
        if (conv_handles[from][to] == (smb_iconv_t)-1) {
                if ((from == CH_DOS || to == CH_DOS) &&
-                   strcasecmp(charset_name(CH_DOS), "ASCII") != 0) {
+                   strcasecmp(charset_name(global_loadparm, CH_DOS), "ASCII") != 0) {
                        DEBUG(0,("dos charset '%s' unavailable - using ASCII\n",
-                                charset_name(CH_DOS)));
-                       lp_set_cmdline("dos charset", "ASCII");
+                                charset_name(global_loadparm, CH_DOS)));
+                       lp_set_cmdline(global_loadparm, "dos charset", "ASCII");
 
-                       n1 = charset_name(from);
-                       n2 = charset_name(to);
+                       n1 = charset_name(global_loadparm, from);
+                       n2 = charset_name(global_loadparm, to);
                        
                        conv_handles[from][to] = smb_iconv_open(n2,n1);
                }
@@ -151,7 +148,7 @@ _PUBLIC_ ssize_t convert_string(charset_t from, charset_t to,
        smb_iconv_t descriptor;
 
        if (srclen == (size_t)-1)
-               srclen = strlen(src)+1;
+               srclen = strlen(inbuf)+1;
 
        descriptor = get_conv_handle(from, to);
 
@@ -175,12 +172,12 @@ _PUBLIC_ ssize_t convert_string(charset_t from, charset_t to,
                                reason="No more room"; 
                                if (from == CH_UNIX) {
                                        DEBUG(0,("E2BIG: convert_string(%s,%s): srclen=%d destlen=%d - '%s'\n",
-                                                charset_name(from), charset_name(to),
+                                                charset_name(global_loadparm, from), charset_name(global_loadparm, to),
                                                 (int)srclen, (int)destlen, 
                                                 (const char *)src));
                                } else {
                                        DEBUG(0,("E2BIG: convert_string(%s,%s): srclen=%d destlen=%d\n",
-                                                charset_name(from), charset_name(to),
+                                                charset_name(global_loadparm, from), charset_name(global_loadparm, to),
                                                 (int)srclen, (int)destlen));
                                }
                               return -1;
@@ -222,7 +219,7 @@ _PUBLIC_ ssize_t convert_string_talloc(TALLOC_CTX *ctx, charset_t from, charset_
        if (descriptor == (smb_iconv_t)-1 || descriptor == (smb_iconv_t)0) {
                /* conversion not supported, return -1*/
                DEBUG(3, ("convert_string_talloc: conversion from %s to %s not supported!\n",
-                         charset_name(from), charset_name(to)));
+                         charset_name(global_loadparm, from), charset_name(global_loadparm, to)));
                return -1;
        }
 
@@ -350,9 +347,9 @@ static ssize_t pull_ascii(char *dest, const void *src, size_t dest_len, size_t s
 
        if (flags & (STR_TERMINATE | STR_TERMINATE_ASCII)) {
                if (src_len == (size_t)-1) {
-                       src_len = strlen(src) + 1;
+                       src_len = strlen((const char *)src) + 1;
                } else {
-                       size_t len = strnlen(src, src_len);
+                       size_t len = strnlen((const char *)src, src_len);
                        if (len < src_len)
                                len++;
                        src_len = len;
index 6943a6018263034331eb123ad99c49adb3c60afd..be2705100a31ce098880b76ff15a2f3257b4e463 100644 (file)
@@ -49,7 +49,7 @@ typedef uint32_t codepoint_t;
 
 
 /* generic iconv conversion structure */
-typedef struct {
+typedef struct smb_iconv_s {
        size_t (*direct)(void *cd, const char **inbuf, size_t *inbytesleft,
                         char **outbuf, size_t *outbytesleft);
        size_t (*pull)(void *cd, const char **inbuf, size_t *inbytesleft,
@@ -77,9 +77,4 @@ typedef struct {
 #define strlower(s) strlower_m(s)
 #define strupper(s) strupper_m(s)
 
-/* from lib/charset */
-extern char *dos_charset;
-extern char *unix_charset;
-extern char *display_charset;
-
 #endif /* __CHARSET_H__ */
index 062b4ddfc869bcfb87dcc14f0c926522894f7e0b..9b035cd1dbaca5a9599e8942ed69819f60ad58b2 100644 (file)
@@ -22,6 +22,7 @@
 #include "lib/util/dlinklist.h"
 #include "system/iconv.h"
 #include "system/filesys.h"
+#include "param/param.h"
 
 
 /**
@@ -74,7 +75,7 @@ static struct charset_functions *charsets = NULL;
 
 bool charset_register_backend(const void *_funcs) 
 {
-       struct charset_functions *funcs = memdup(_funcs,sizeof(struct charset_functions));
+       struct charset_functions *funcs = (struct charset_functions *)memdup(_funcs,sizeof(struct charset_functions));
        struct charset_functions *c;
 
        /* Check whether we already have this charset... */
@@ -198,7 +199,7 @@ smb_iconv_t smb_iconv_open(const char *tocode, const char *fromcode)
        }
 
 #ifdef HAVE_NATIVE_ICONV
-       if ((!from || !to) && !lp_parm_bool(-1, "iconv", "native", true)) {
+       if ((!from || !to) && !lp_parm_bool(global_loadparm, NULL, "iconv", "native", true)) {
                goto failed;
        }
        if (!from) {
index 6c86b0b899be886812abd8448344275f6883c857..e9cca090cc7e39dd33b65305e210e22e9e1bdd78 100644 (file)
@@ -393,7 +393,7 @@ _PUBLIC_ char *strchr_m(const char *s, char c)
                size_t size;
                codepoint_t c2 = next_codepoint(s, &size);
                if (c2 == c) {
-                       return discard_const(s);
+                       return discard_const_p(char, s);
                }
                s += size;
        }
@@ -418,7 +418,7 @@ _PUBLIC_ char *strrchr_m(const char *s, char c)
                size_t size;
                codepoint_t c2 = next_codepoint(s, &size);
                if (c2 == c) {
-                       ret = discard_const(s);
+                       ret = discard_const_p(char, s);
                }
                s += size;
        }
@@ -482,7 +482,7 @@ _PUBLIC_ char *strlower_talloc(TALLOC_CTX *ctx, const char *src)
 
        /* this takes advantage of the fact that upper/lower can't
           change the length of a character by more than 1 byte */
-       dest = talloc_size(ctx, 2*(strlen(src))+1);
+       dest = talloc_array(ctx, char, 2*(strlen(src))+1);
        if (dest == NULL) {
                return NULL;
        }
@@ -505,7 +505,7 @@ _PUBLIC_ char *strlower_talloc(TALLOC_CTX *ctx, const char *src)
        dest[size] = 0;
 
        /* trim it so talloc_append_string() works */
-       dest = talloc_realloc_size(ctx, dest, size+1);
+       dest = talloc_realloc(ctx, dest, char, size+1);
 
        talloc_set_name_const(dest, dest);
 
@@ -526,7 +526,7 @@ _PUBLIC_ char *strupper_talloc(TALLOC_CTX *ctx, const char *src)
 
        /* this takes advantage of the fact that upper/lower can't
           change the length of a character by more than 1 byte */
-       dest = talloc_size(ctx, 2*(strlen(src))+1);
+       dest = talloc_array(ctx, char, 2*(strlen(src))+1);
        if (dest == NULL) {
                return NULL;
        }
@@ -549,7 +549,7 @@ _PUBLIC_ char *strupper_talloc(TALLOC_CTX *ctx, const char *src)
        dest[size] = 0;
 
        /* trim it so talloc_append_string() works */
-       dest = talloc_realloc_size(ctx, dest, size+1);
+       dest = talloc_realloc(ctx, dest, char, size+1);
 
        talloc_set_name_const(dest, dest);
 
index 36e0504021b4fd8b46ee317d325e92161a7040e0..2e5c6fd94ab33fe0df96761e2398689bd57c1b9b 100644 (file)
@@ -38,7 +38,12 @@ static const char *cmdline_get_userpassword(struct cli_credentials *credentials)
        return ret;
 }
 
-void cli_credentials_set_cmdline_callbacks(struct cli_credentials *cred)
+bool cli_credentials_set_cmdline_callbacks(struct cli_credentials *cred)
 {
-       cli_credentials_set_password_callback(cred, cmdline_get_userpassword);
+       if (isatty(fileno(stdout))) {
+               cli_credentials_set_password_callback(cred, cmdline_get_userpassword);
+               return true;
+       }
+
+       return false;
 }
index 413c8e7cc3d44476711f87e2d076aa8a3662686f..41eb70094ecea482cfde4277c4b896acdb9dfb08 100644 (file)
@@ -22,6 +22,8 @@
 #include "includes.h"
 #include "version.h"
 #include "lib/cmdline/popt_common.h"
+#include "param/param.h"
+#include "dynconfig.h"
 
 /* Handle command line options:
  *             -d,--debuglevel 
@@ -39,8 +41,6 @@ enum {OPT_OPTION=1,OPT_LEAK_REPORT,OPT_LEAK_REPORT_FULL,OPT_DEBUG_STDERR};
 
 struct cli_credentials *cmdline_credentials = NULL;
 
-static bool PrintSambaVersionString;
-
 static void popt_common_callback(poptContext con, 
                           enum poptCallbackReason reason,
                           const struct poptOption *opt,
@@ -49,12 +49,12 @@ static void popt_common_callback(poptContext con,
        const char *pname;
 
        if (reason == POPT_CALLBACK_REASON_POST) {
-               if (PrintSambaVersionString) {
-                       printf( "Version %s\n", SAMBA_VERSION_STRING );
-                       exit(0);
+               if (!lp_loaded()) {
+                       if (getenv("SMB_CONF_PATH"))
+                               lp_load(getenv("SMB_CONF_PATH"));
+                       else
+                               lp_load(dyn_CONFIGFILE);
                }
-
-               lp_load();
                /* Hook any 'every Samba program must do this, after
                 * the smb.conf is setup' functions here */
                return;
@@ -76,15 +76,12 @@ static void popt_common_callback(poptContext con,
                /* and logging */
                setup_logging(pname, DEBUG_STDOUT);
 
-               if (getenv("SMB_CONF_PATH")) {
-                       lp_set_cmdline("config file", getenv("SMB_CONF_PATH"));
-               }
                return;
        }
 
        switch(opt->val) {
        case 'd':
-               lp_set_cmdline("log level", arg);
+               lp_set_cmdline(global_loadparm, "log level", arg);
                break;
 
        case OPT_DEBUG_STDERR:
@@ -92,55 +89,55 @@ static void popt_common_callback(poptContext con,
                break;
 
        case 'V':
-               PrintSambaVersionString = true;
-               break;
+               printf("Version %s\n", SAMBA_VERSION_STRING );
+               exit(0);
 
        case 'O':
                if (arg) {
-                       lp_set_cmdline("socket options", arg);
+                       lp_set_cmdline(global_loadparm, "socket options", arg);
                }
                break;
 
        case 's':
                if (arg) {
-                       lp_set_cmdline("config file", arg);
+                       lp_load(arg);
                }
                break;
 
        case 'l':
                if (arg) {
                        char *new_logfile = talloc_asprintf(NULL, "%s/log.%s", arg, pname);
-                       lp_set_cmdline("log file", new_logfile);
+                       lp_set_cmdline(global_loadparm, "log file", new_logfile);
                        talloc_free(new_logfile);
                }
                break;
                
        case 'W':
-               lp_set_cmdline("workgroup", arg);
+               lp_set_cmdline(global_loadparm, "workgroup", arg);
                break;
 
        case 'r':
-               lp_set_cmdline("realm", arg);
+               lp_set_cmdline(global_loadparm, "realm", arg);
                break;
                
        case 'n':
-               lp_set_cmdline("netbios name", arg);
+               lp_set_cmdline(global_loadparm, "netbios name", arg);
                break;
                
        case 'i':
-               lp_set_cmdline("netbios scope", arg);
+               lp_set_cmdline(global_loadparm, "netbios scope", arg);
                break;
 
        case 'm':
-               lp_set_cmdline("client max protocol", arg);
+               lp_set_cmdline(global_loadparm, "client max protocol", arg);
                break;
 
        case 'R':
-               lp_set_cmdline("name resolve order", arg);
+               lp_set_cmdline(global_loadparm, "name resolve order", arg);
                break;
 
        case OPT_OPTION:
-               if (!lp_set_option(arg)) {
+               if (!lp_set_option(global_loadparm, arg)) {
                        fprintf(stderr, "Error setting option '%s'\n", arg);
                        exit(1);
                }
index 259dbf8ee14a20ef40fe54c4759d1e0ef877f291..53e214ab221b8d693d82b29a6e71820217fbc586 100644 (file)
@@ -23,6 +23,7 @@
 #include "lib/cmdline/credentials.h"
 #include "auth/credentials/credentials.h"
 #include "auth/gensec/gensec.h"
+#include "param/param.h"
 
 /* Handle command line options:
  *             -U,--user
@@ -36,7 +37,7 @@
  */
 
 
-static BOOL dont_ask;
+static bool dont_ask;
 
 enum opt { OPT_SIMPLE_BIND_DN, OPT_PASSWORD, OPT_KERBEROS };
 
@@ -45,7 +46,7 @@ enum opt { OPT_SIMPLE_BIND_DN, OPT_PASSWORD, OPT_KERBEROS };
 */
 void popt_common_dont_ask(void)
 {
-       dont_ask = True;
+       dont_ask = true;
 }
 
 static void popt_common_credentials_callback(poptContext con, 
@@ -94,7 +95,7 @@ static void popt_common_credentials_callback(poptContext con,
                break;
 
        case 'S':
-               lp_set_cmdline("client signing", arg);
+               lp_set_cmdline(global_loadparm, "client signing", arg);
                break;
 
        case 'P':
@@ -104,7 +105,7 @@ static void popt_common_credentials_callback(poptContext con,
 
        case OPT_KERBEROS:
        {
-               BOOL use_kerberos = True;
+               bool use_kerberos = true;
                /* Force us to only use kerberos */
                if (arg) {
                        if (!set_boolean(arg, &use_kerberos)) {
index 3e277a9232c92ac2e71be0e6a2b465b5d6e8b8e8..07ed54c98d2822dda3f63e9970e9b7a5a4381641 100644 (file)
@@ -31,9 +31,9 @@ static DATA_BLOB data_blob_repeat_byte(uint8_t byte, size_t length)
 /*
  This uses the test values from rfc 2104, 2202
 */
-BOOL torture_local_crypto_hmacmd5(struct torture_context *torture) 
+bool torture_local_crypto_hmacmd5(struct torture_context *torture) 
 {
-       BOOL ret = True;
+       bool ret = true;
        uint32_t i;
        struct {
                DATA_BLOB key;
@@ -90,7 +90,7 @@ BOOL torture_local_crypto_hmacmd5(struct torture_context *torture)
                        dump_data(0, testarray[i].data.data, testarray[i].data.length);
                        dump_data(0, testarray[i].md5.data, testarray[i].md5.length);
                        dump_data(0, md5, sizeof(md5));
-                       ret = False;
+                       ret = false;
                }
        }
 
index 9c4662a4059508ca3aad64a407faedc4637678f8..6e53124d2163f1f133c8fa1ed0fef2006b5725df 100644 (file)
@@ -31,9 +31,9 @@ static DATA_BLOB data_blob_repeat_byte(uint8_t byte, size_t length)
 /*
  This uses the test values from rfc2202
 */
-BOOL torture_local_crypto_hmacsha1(struct torture_context *torture) 
+bool torture_local_crypto_hmacsha1(struct torture_context *torture) 
 {
-       BOOL ret = True;
+       bool ret = true;
        uint32_t i;
        struct {
                DATA_BLOB key;
@@ -89,7 +89,7 @@ BOOL torture_local_crypto_hmacsha1(struct torture_context *torture)
                        dump_data(0, testarray[i].data.data, testarray[i].data.length);
                        dump_data(0, testarray[i].sha1.data, testarray[i].sha1.length);
                        dump_data(0, sha1, sizeof(sha1));
-                       ret = False;
+                       ret = false;
                }
        }
 
index fa92668f84a4bc0218a677e0523552cb5b0b2140..5e0451973c8e07ca1f0eb44f10a0d77dbc88798f 100644 (file)
@@ -25,9 +25,9 @@ struct torture_context;
 /*
  This uses the test values from rfc1320
 */
-BOOL torture_local_crypto_md4(struct torture_context *torture) 
+bool torture_local_crypto_md4(struct torture_context *torture) 
 {
-       BOOL ret = True;
+       bool ret = true;
        uint32_t i;
        struct {
                const char *data;
@@ -74,7 +74,7 @@ BOOL torture_local_crypto_md4(struct torture_context *torture)
                        dump_data(0, data.data, data.length);
                        dump_data(0, md4blob.data, md4blob.length);
                        dump_data(0, md4, sizeof(md4));
-                       ret = False;
+                       ret = false;
                }
                talloc_free(md4blob.data);
        }
index 12645dc04573e47b0e159fbae4bebe61dde01582..702e0fcf416c3ed36df36cc6e3e1d9179796398d 100644 (file)
@@ -25,9 +25,9 @@ struct torture_context;
 /*
  This uses the test values from rfc1321
 */
-BOOL torture_local_crypto_md5(struct torture_context *torture) 
+bool torture_local_crypto_md5(struct torture_context *torture) 
 {
-       BOOL ret = True;
+       bool ret = true;
        uint32_t i;
        struct {
                const char *data;
@@ -84,7 +84,7 @@ BOOL torture_local_crypto_md5(struct torture_context *torture)
                        dump_data(0, data.data, data.length);
                        dump_data(0, md5blob.data, md5blob.length);
                        dump_data(0, md5, sizeof(md5));
-                       ret = False;
+                       ret = false;
                }
                talloc_free(md5blob.data);
        }
index a37328e328e0841aa4d47456c8de6c0e8704c706..0e943bd74d7584368ab9cb65da22858987b65cb8 100644 (file)
@@ -57,7 +57,7 @@ bool torture_local_crypto_sha1(struct torture_context *tctx)
     struct SHA1Context sha;
     int i, j, err;
     uint8_t Message_Digest[20];
-    BOOL ret = True;
+    bool ret = true;
     char tmp[60 + 10];
 
     /*
@@ -94,7 +94,7 @@ bool torture_local_crypto_sha1(struct torture_context *tctx)
         torture_comment(tctx, "\n");
         torture_comment(tctx, "Should match:\n\t%s\n", resultarray[j]);
        if (strcmp(resultarray[j], tmp) != 0) {
-           ret = False;        
+           ret = false;        
        }
     }
 
index 0e026f84e1d8011e7b4906442e051576dbe0df51..c33786a1e43a8c0b83b8259c9972357e23ff33d6 100644 (file)
 #include "lib/tdb/include/tdb.h"
 #include "lib/ldb/include/ldb.h"
 #include "lib/ldb/include/ldb_errors.h"
-#include "lib/ldb/samba/ldif_handlers.h"
+#include "lib/ldb-samba/ldif_handlers.h"
 #include "db_wrap.h"
 #include "dsdb/samdb/samdb.h"
+#include "param/param.h"
 
 static struct tdb_wrap *tdb_list;
 
@@ -102,6 +103,7 @@ static int ldb_wrap_destructor(struct ldb_context *ldb)
   TODO:  We need an error_string parameter
  */
 struct ldb_context *ldb_wrap_connect(TALLOC_CTX *mem_ctx,
+                                    struct loadparm_context *lp_ctx,
                                     const char *url,
                                     struct auth_session_info *session_info,
                                     struct cli_credentials *credentials,
@@ -119,6 +121,9 @@ struct ldb_context *ldb_wrap_connect(TALLOC_CTX *mem_ctx,
                return NULL;
        }
 
+       ldb_set_modules_dir(ldb, 
+                           talloc_asprintf(ldb, "%s/ldb", lp_modulesdir(lp_ctx)));
+
        /* we want to use the existing event context if possible. This
           relies on the fact that in smbd, everything is a child of
           the main event_context */
@@ -139,7 +144,7 @@ struct ldb_context *ldb_wrap_connect(TALLOC_CTX *mem_ctx,
                return NULL;
        }
        
-       if (strcmp(lp_sam_url(), url) == 0) {
+       if (strcmp(lp_sam_url(lp_ctx), url) == 0) {
                dsdb_set_global_schema(ldb);
        }
 
@@ -153,14 +158,14 @@ struct ldb_context *ldb_wrap_connect(TALLOC_CTX *mem_ctx,
 
        ldb_set_utf8_fns(ldb, NULL, wrap_casefold);
 
-       real_url = private_path(ldb, url);
+       real_url = private_path(ldb, lp_ctx, url);
        if (real_url == NULL) {
                talloc_free(ldb);
                return NULL;
        }
 
        /* allow admins to force non-sync ldb for all databases */
-       if (lp_parm_bool(-1, "ldb", "nosync", False)) {
+       if (lp_parm_bool(lp_ctx, NULL, "ldb", "nosync", false)) {
                flags |= LDB_FLG_NOSYNC;
        }
 
index 4ead9f30103177a32f742481888cf36da2885f7b..b45a05c24f5741f1566e4924d0148ab76b06e7fb 100644 (file)
@@ -31,5 +31,6 @@ struct auth_session_info;
 struct ldb_message;
 struct ldb_dn;
 struct cli_credentials;
+struct loadparm_context;
 
 #include "lib/db_wrap_proto.h"
index c0bac672aa9b24765f1f86cbdfe030b004a0fa9c..9e893b12439666bbc769c9f4ebf7e6ee2cf475bc 100644 (file)
 #include "includes.h"
 #include "lib/tdb/include/tdb.h"
 #include "lib/dbwrap/dbwrap.h"
+#include "param/param.h"
 
 /*
   open a temporary database
  */
 struct db_context *db_tmp_open(TALLOC_CTX *mem_ctx, const char *name, int tdb_flags)
 {
-       if (lp_parm_bool(-1, "ctdb", "enable", False) &&
-           lp_parm_bool(-1, "ctdb", name, True)) {
+       if (lp_parm_bool(global_loadparm, NULL, "ctdb", "enable", false) &&
+           lp_parm_bool(global_loadparm, NULL, "ctdb", name, true)) {
                    return db_tmp_open_ctdb(mem_ctx, name, tdb_flags);
        }
 
index dedb344e0b13c0aca31d0b1d8c7c0c5e4877f823..b256b6ccc4d2f9c18983111261acc98d8fab58cf 100644 (file)
@@ -25,6 +25,7 @@
 #include "lib/dbwrap/dbwrap.h"
 #include "system/filesys.h"
 #include "db_wrap.h"
+#include "param/param.h"
 
 struct db_tdb_ctx {
        struct tdb_wrap *wtdb;
@@ -240,7 +241,7 @@ struct db_context *db_tmp_open_tdb(TALLOC_CTX *mem_ctx, const char *name, int td
 
        /* the name passed in should not be a full path, it should be
           just be the db name */
-       path = smbd_tmp_path(result, name);
+       path = smbd_tmp_path(result, global_loadparm, name);
 
        db_tdb->wtdb = tdb_wrap_open(db_tdb, path, 0, tdb_flags,
                                     O_CREAT|O_RDWR, 0666);
index 9ba3254190c28b6138faeab2b3dba02cbb4c382c..2b36c92491730fe8eca8cc2b714b79ed473fac06 100644 (file)
@@ -57,6 +57,7 @@
 #include "lib/events/events.h"
 #include "lib/events/events_internal.h"
 #include "lib/util/dlinklist.h"
+#include "param/param.h"
 #if _SAMBA_BUILD_
 #include "build.h"
 #endif
@@ -79,11 +80,11 @@ bool event_register_backend(const char *name, const struct event_ops *ops)
 {
        struct event_ops_list *e;
        e = talloc(talloc_autofree_context(), struct event_ops_list);
-       if (e == NULL) return False;
+       if (e == NULL) return false;
        e->name = name;
        e->ops = ops;
        DLIST_ADD(event_backends, e);
-       return True;
+       return true;
 }
 
 /*
@@ -104,7 +105,7 @@ static void event_backend_init(void)
        init_module_fn static_init[] = STATIC_LIBEVENTS_MODULES;
        init_module_fn *shared_init;
        if (event_backends) return;
-       shared_init = load_samba_modules(NULL, "LIBEVENTS");
+       shared_init = load_samba_modules(NULL, global_loadparm, "events");
        run_init_functions(static_init);
        run_init_functions(shared_init);
 #else
@@ -184,7 +185,7 @@ struct event_context *event_context_init_byname(TALLOC_CTX *mem_ctx, const char
 
 #if _SAMBA_BUILD_
        if (name == NULL) {
-               name = lp_parm_string(-1, "event", "backend");
+               name = lp_parm_string(global_loadparm, NULL, "event", "backend");
        }
 #endif
        if (name == NULL) {
index acd204c89857063dbf12a7012ff949e7e5bf47d7..e2212e533301f8194ce9fa6f3902dd54845e3260 100644 (file)
@@ -56,7 +56,7 @@ struct epoll_event_context {
   called when a epoll call fails, and we should fallback
   to using select
 */
-static void epoll_panic(struct epoll_event_context *epoll_ev, const char *reason)
+_NORETURN_ static void epoll_panic(struct epoll_event_context *epoll_ev, const char *reason)
 {
        DEBUG(0,("%s (%s) - calling abort()\n", reason, strerror(errno)));
        abort();
index 2f6d4993832354121b82dce1c4478c3031e3d6f8..aec34339c363c701c5bbbb3e659307ac36c94700 100644 (file)
@@ -217,8 +217,8 @@ struct signal_event *common_event_add_signal(struct event_context *ev,
                if (sig_state->pipe_hack[0] == 0 && 
                    sig_state->pipe_hack[1] == 0) {
                        pipe(sig_state->pipe_hack);
-                       set_blocking(sig_state->pipe_hack[0], False);
-                       set_blocking(sig_state->pipe_hack[1], False);
+                       set_blocking(sig_state->pipe_hack[0], false);
+                       set_blocking(sig_state->pipe_hack[1], false);
                }
                ev->pipe_fde = event_add_fd(ev, ev, sig_state->pipe_hack[0],
                                            EVENT_FD_READ, signal_pipe_handler, NULL);
index a30f09fefa8b0049499bd2aab144851e182aead2..949b16cb3bb64dc0878ff1299a4b9a570fc2452c 100644 (file)
@@ -47,30 +47,31 @@ static struct tdb_wrap *cache;
  *         false on failure
  **/
 
-BOOL gencache_init(void)
+bool gencache_init(void)
 {
        char* cache_fname = NULL;
+       TALLOC_CTX *mem_ctx = talloc_autofree_context();
        
        /* skip file open if it's already opened */
-       if (cache) return True;
+       if (cache) return true;
 
-       asprintf(&cache_fname, "%s/%s", lp_lockdir(), "gencache.tdb");
-       if (cache_fname)
+       cache_fname = lock_path(mem_ctx, global_loadparm, "gencache.tdb");
+       if (cache_fname != NULL) {
                DEBUG(5, ("Opening cache file at %s\n", cache_fname));
-       else {
+       else {
                DEBUG(0, ("Filename allocation failed.\n"));
-               return False;
+               return false;
        }
 
-       cache = tdb_wrap_open(NULL, cache_fname, 0, TDB_DEFAULT,
+       cache = tdb_wrap_open(mem_ctx, cache_fname, 0, TDB_DEFAULT,
                              O_RDWR|O_CREAT, 0644);
 
-       SAFE_FREE(cache_fname);
+       talloc_free(cache_fname);
        if (!cache) {
                DEBUG(5, ("Attempt to open gencache.tdb has failed.\n"));
-               return False;
+               return false;
        }
-       return True;
+       return true;
 }
 
 
@@ -81,12 +82,12 @@ BOOL gencache_init(void)
  *         false on failure during cache shutdown
  **/
  
-BOOL gencache_shutdown(void)
+bool gencache_shutdown(void)
 {
-       if (!cache) return False;
+       if (!cache) return false;
        DEBUG(5, ("Closing cache file\n"));
        talloc_free(cache);
-       return True;
+       return true;
 }
 
 
@@ -102,7 +103,7 @@ BOOL gencache_shutdown(void)
  * @retval false on failure
  **/
  
-BOOL gencache_set(const char *keystr, const char *value, time_t timeout)
+bool gencache_set(const char *keystr, const char *value, time_t timeout)
 {
        int ret;
        TDB_DATA keybuf, databuf;
@@ -111,11 +112,11 @@ BOOL gencache_set(const char *keystr, const char *value, time_t timeout)
        /* fail completely if get null pointers passed */
        SMB_ASSERT(keystr && value);
 
-       if (!gencache_init()) return False;
+       if (!gencache_init()) return false;
        
        asprintf(&valstr, CACHE_DATA_FMT, (int)timeout, value);
        if (!valstr)
-               return False;
+               return false;
 
        keybuf.dptr = (uint8_t *)strdup(keystr);
        keybuf.dsize = strlen(keystr)+1;
@@ -145,7 +146,7 @@ BOOL gencache_set(const char *keystr, const char *value, time_t timeout)
  * @retval false on failure
  **/
 
-BOOL gencache_set_only(const char *keystr, const char *valstr, time_t timeout)
+bool gencache_set_only(const char *keystr, const char *valstr, time_t timeout)
 {
        int ret = -1;
        TDB_DATA keybuf, databuf;
@@ -155,7 +156,7 @@ BOOL gencache_set_only(const char *keystr, const char *valstr, time_t timeout)
        /* fail completely if get null pointers passed */
        SMB_ASSERT(keystr && valstr);
 
-       if (!gencache_init()) return False;
+       if (!gencache_init()) return false;
                        
        /* 
         * Check whether entry exists in the cache
@@ -163,7 +164,7 @@ BOOL gencache_set_only(const char *keystr, const char *valstr, time_t timeout)
         */     
        gencache_get(keystr, &old_valstr, &old_timeout);
        
-       if (!(old_valstr && old_timeout)) return False;
+       if (!(old_valstr && old_timeout)) return false;
                
        DEBUG(10, ("Setting cache entry with key = %s; old value = %s and old timeout \
                   = %s\n", keystr, old_valstr, ctime(&old_timeout)));
@@ -198,7 +199,7 @@ BOOL gencache_set_only(const char *keystr, const char *valstr, time_t timeout)
  * @retval false in case of failure
  **/
 
-BOOL gencache_del(const char *keystr)
+bool gencache_del(const char *keystr)
 {
        int ret;
        TDB_DATA keybuf;
@@ -206,7 +207,7 @@ BOOL gencache_del(const char *keystr)
        /* fail completely if get null pointers passed */
        SMB_ASSERT(keystr);
 
-       if (!gencache_init()) return False;     
+       if (!gencache_init()) return false;     
        
        keybuf.dptr = (uint8_t *)strdup(keystr);
        keybuf.dsize = strlen(keystr)+1;
@@ -228,10 +229,10 @@ BOOL gencache_del(const char *keystr)
  *        timeout
  *
  * @retval true when entry is successfuly fetched
- * @retval False for failure
+ * @retval false for failure
  **/
 
-BOOL gencache_get(const char *keystr, char **valstr, time_t *timeout)
+bool gencache_get(const char *keystr, char **valstr, time_t *timeout)
 {
        TDB_DATA keybuf, databuf;
 
@@ -239,7 +240,7 @@ BOOL gencache_get(const char *keystr, char **valstr, time_t *timeout)
        SMB_ASSERT(keystr);
 
        if (!gencache_init())
-               return False;
+               return false;
        
        keybuf.dptr = (uint8_t *)strdup(keystr);
        keybuf.dsize = strlen(keystr)+1;
@@ -285,7 +286,7 @@ BOOL gencache_get(const char *keystr, char **valstr, time_t *timeout)
                DEBUG(10, ("Cache entry with key = %s couldn't be found\n", 
                           keystr));
 
-               return False;
+               return false;
        }
 }
 
similarity index 97%
rename from source/lib/ldb/samba/ldif_handlers.c
rename to source/lib/ldb-samba/ldif_handlers.c
index cfd79563d541a695857cb9c30b4170d2e5b8828f..928a06ab43860359fa8fd8ecdbafdac7f0931e77 100644 (file)
@@ -78,15 +78,15 @@ static int ldif_write_objectSid(struct ldb_context *ldb, void *mem_ctx,
        return 0;
 }
 
-static BOOL ldb_comparision_objectSid_isString(const struct ldb_val *v)
+static bool ldb_comparision_objectSid_isString(const struct ldb_val *v)
 {
        if (v->length < 3) {
-               return False;
+               return false;
        }
 
-       if (strncmp("S-", (const char *)v->data, 2) != 0) return False;
+       if (strncmp("S-", (const char *)v->data, 2) != 0) return false;
        
-       return True;
+       return true;
 }
 
 /*
@@ -176,22 +176,22 @@ static int ldif_write_objectGUID(struct ldb_context *ldb, void *mem_ctx,
        return 0;
 }
 
-static BOOL ldb_comparision_objectGUID_isString(const struct ldb_val *v)
+static bool ldb_comparision_objectGUID_isString(const struct ldb_val *v)
 {
        struct GUID guid;
        NTSTATUS status;
 
-       if (v->length < 33) return False;
+       if (v->length < 33) return false;
 
        /* see if the input if null-terninated (safety check for the below) */
-       if (v->data[v->length] != '\0') return False;
+       if (v->data[v->length] != '\0') return false;
 
        status = GUID_from_string((const char *)v->data, &guid);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 /*
index 4a4585d861f88a8e7b44e6593d0d34625ce1d411..75f1767550a073663c65552f519f31161251d539 100644 (file)
@@ -30,11 +30,14 @@ POPT_LIBS = @POPT_LIBS@
 POPT_CFLAGS = @POPT_CFLAGS@
 POPT_OBJ = @POPT_OBJ@
 
+LDAP_LIBS = @LDAP_LIBS@
+
 CFLAGS=-g -I$(srcdir)/include -Iinclude -I$(srcdir) -I$(srcdir)/.. \
        $(POPT_CFLAGS) $(TALLOC_CFLAGS) $(TDB_CFLAGS) \
        -DLIBDIR=\"$(libdir)\" -DSHLIBEXT=\"@SHLIBEXT@\" -DUSE_MMAP=1 @CFLAGS@
 
-LIB_FLAGS=@LDFLAGS@ -Llib -lldb @LIBS@ $(POPT_LIBS) $(TALLOC_LIBS) $(TDB_LIBS)
+LIB_FLAGS=@LDFLAGS@ -Llib -lldb @LIBS@ $(POPT_LIBS) $(TALLOC_LIBS) $(TDB_LIBS) \
+                 $(LDAP_LIBS)
 
 LDB_TDB_DIR=ldb_tdb
 LDB_TDB_OBJ=$(LDB_TDB_DIR)/ldb_tdb.o \
index b8747c3b955e113d1964cd1e55720384dbfc0118..8ed2763d4df5112af67f89b43b109f0e3c359cbc 100644 (file)
@@ -277,33 +277,6 @@ int ldb_comparison_dn(struct ldb_context *ldb, void *mem_ctx,
        return ret;
 }
 
-/*
-  compare two objectclasses, looking at subclasses
-*/
-int ldb_comparison_objectclass(struct ldb_context *ldb, void *mem_ctx,
-                                     const struct ldb_val *v1, const struct ldb_val *v2)
-{
-       int ret, i;
-       const char **subclasses;
-       ret = ldb_comparison_fold(ldb, mem_ctx, v1, v2);
-       if (ret == 0) {
-               return 0;
-       }
-       subclasses = ldb_subclass_list(ldb, (char *)v1->data);
-       if (subclasses == NULL) {
-               return ret;
-       }
-       for (i=0;subclasses[i];i++) {
-               struct ldb_val vs;
-               vs.data = discard_const(subclasses[i]);
-               vs.length = strlen(subclasses[i]);
-               if (ldb_comparison_objectclass(ldb, mem_ctx, &vs, v2) == 0) {
-                       return 0;
-               }
-       }
-       return ret;
-}
-
 /*
   compare two utc time values. 1 second resolution
 */
@@ -368,7 +341,7 @@ static const struct ldb_schema_syntax ldb_standard_syntaxes[] = {
                .ldif_read_fn    = ldb_handler_copy,
                .ldif_write_fn   = ldb_handler_copy,
                .canonicalise_fn = ldb_handler_fold,
-               .comparison_fn   = ldb_comparison_objectclass
+               .comparison_fn   = ldb_comparison_fold
        },
        { 
                .name            = LDB_SYNTAX_UTC_TIME,
index f8085d213a0abebb534b884a0d23f5ae4cffb00c..eb8ff62a0db0f8d6c2b19f1231c9416f988c763c 100644 (file)
@@ -51,6 +51,7 @@ struct ldb_context *ldb_init(void *mem_ctx)
 
        ldb_set_utf8_default(ldb);
        ldb_set_create_perms(ldb, 0666);
+       ldb_set_modules_dir(ldb, LDB_MODULESDIR);
 
        return ldb;
 }
index 358d2f18bd599ec2f53766ae6ac27a7451062323..effd93ae2674e9e8ec620d53033b3bf4e2732886 100644 (file)
@@ -204,114 +204,3 @@ int ldb_setup_wellknown_attributes(struct ldb_context *ldb)
        return LDB_SUCCESS;
 }
 
-/*
-  return the list of subclasses for a class
-*/
-const char **ldb_subclass_list(struct ldb_context *ldb, const char *classname)
-{
-       int i;
-       for (i=0;i<ldb->schema.num_classes;i++) {
-               if (ldb_attr_cmp(classname, ldb->schema.classes[i].name) == 0) {
-                       return (const char **)ldb->schema.classes[i].subclasses;
-               }
-       }
-       return NULL;
-}
-
-
-/*
-  add a new subclass
-*/
-static int ldb_subclass_new(struct ldb_context *ldb, const char *classname, const char *subclass)
-{
-       struct ldb_subclass *s, *c;
-       s = talloc_realloc(ldb, ldb->schema.classes, struct ldb_subclass, ldb->schema.num_classes+1);
-       if (s == NULL) goto failed;
-
-       ldb->schema.classes = s;
-       c = &s[ldb->schema.num_classes];
-       c->name = talloc_strdup(s, classname);
-       if (c->name == NULL) goto failed;
-
-       c->subclasses = talloc_array(s, char *, 2);
-       if (c->subclasses == NULL) goto failed;
-
-       c->subclasses[0] = talloc_strdup(c->subclasses, subclass);
-       if (c->subclasses[0] == NULL) goto failed;
-       c->subclasses[1] = NULL;
-
-       ldb->schema.num_classes++;
-
-       return 0;
-failed:
-       ldb_oom(ldb);
-       return -1;
-}
-
-/*
-  add a subclass
-*/
-int ldb_subclass_add(struct ldb_context *ldb, const char *classname, const char *subclass)
-{
-       int i, n;
-       struct ldb_subclass *c;
-       char **s;
-
-       for (i=0;i<ldb->schema.num_classes;i++) {
-               if (ldb_attr_cmp(classname, ldb->schema.classes[i].name) == 0) {
-                       break;
-               }
-       }
-       if (i == ldb->schema.num_classes) {
-               return ldb_subclass_new(ldb, classname, subclass);
-       }
-       c = &ldb->schema.classes[i];
-       
-       for (n=0;c->subclasses[n];n++) /* noop */;
-
-       s = talloc_realloc(ldb->schema.classes, c->subclasses, char *, n+2);
-       if (s == NULL) {
-               ldb_oom(ldb);
-               return -1;
-       }
-
-       c->subclasses = s;
-       s[n] = talloc_strdup(s, subclass);
-       if (s[n] == NULL) {
-               ldb_oom(ldb);
-               return -1;
-       }
-       s[n+1] = NULL;
-
-       return 0;
-}
-
-/*
-  remove a set of subclasses for a class
-*/
-void ldb_subclass_remove(struct ldb_context *ldb, const char *classname)
-{
-       int i;
-       struct ldb_subclass *c;
-
-       for (i=0;i<ldb->schema.num_classes;i++) {
-               if (ldb_attr_cmp(classname, ldb->schema.classes[i].name) == 0) {
-                       break;
-               }
-       }
-       if (i == ldb->schema.num_classes) {
-               return;
-       }
-
-       c = &ldb->schema.classes[i];
-       talloc_free(c->name);
-       talloc_free(c->subclasses);
-       if (ldb->schema.num_classes-(i+1) > 0) {
-               memmove(c, c+1, sizeof(*c) * (ldb->schema.num_classes-(i+1)));
-       }
-       ldb->schema.num_classes--;
-       if (ldb->schema.num_classes == 0) {
-               talloc_free(ldb->schema.classes);
-               ldb->schema.classes = NULL;
-       }
-}
index 41e70cffd15ee74d7f117ef83d525786d7daadf6..f0bd72e0098dfa3eb8a261b45d5bb4ea9a679b5e 100644 (file)
@@ -1279,6 +1279,7 @@ static char *ldb_dn_canonical(void *mem_ctx, struct ldb_dn *dn, int ex_format) {
        int i;
        TALLOC_CTX *tmpctx;
        char *cracked = NULL;
+       const char *format = (ex_format ? "\n" : "/" );
  
        if ( ! ldb_dn_validate(dn)) {
                return NULL;
@@ -1305,32 +1306,23 @@ static char *ldb_dn_canonical(void *mem_ctx, struct ldb_dn *dn, int ex_format) {
 
        /* Only domain components?  Finish here */
        if (i < 0) {
-               if (ex_format) {
-                       cracked = talloc_append_string(tmpctx, cracked, "\n");
-               } else {
-                       cracked = talloc_append_string(tmpctx, cracked, "/");
-               }
+               cracked = talloc_strdup_append_buffer(cracked, format);
                talloc_steal(mem_ctx, cracked);
                goto done;
        }
 
        /* Now walk backwards appending remaining components */
        for (; i > 0; i--) {
-               cracked = talloc_asprintf_append(cracked, "/%s", 
-                                         ldb_dn_escape_value(tmpctx, dn->components[i].value));
+               cracked = talloc_asprintf_append_buffer(cracked, "/%s", 
+                                                       ldb_dn_escape_value(tmpctx, dn->components[i].value));
                if (!cracked) {
                        goto done;
                }
        }
 
        /* Last one, possibly a newline for the 'ex' format */
-       if (ex_format) {
-               cracked = talloc_asprintf_append(cracked, "\n%s",
-                                         ldb_dn_escape_value(tmpctx, dn->components[i].value));
-       } else {
-               cracked = talloc_asprintf_append(cracked, "/%s", 
-                                         ldb_dn_escape_value(tmpctx, dn->components[i].value));
-       }
+       cracked = talloc_asprintf_append_buffer(cracked, "%s%s", format,
+                                               ldb_dn_escape_value(tmpctx, dn->components[i].value));
 
        talloc_steal(mem_ctx, cracked);
 done:
index 2c9fba590a4b4f5d1cf52f425fa75554a7d11aa3..9f94c90c92065408f7ff5eec27ab772a10440533 100644 (file)
 #if (_SAMBA_BUILD_ >= 4)
 #include "includes.h"
 #include "build.h"
-#include "dynconfig.h"
 #endif
 
 #define LDB_MODULE_PREFIX      "modules:"
 #define LDB_MODULE_PREFIX_LEN  8
 
+void ldb_set_modules_dir(struct ldb_context *ldb, const char *path)
+{
+       talloc_free(ldb->modules_dir);
+       ldb->modules_dir = talloc_strdup(ldb, path);
+}
+
 static char *ldb_modules_strdup_no_spaces(TALLOC_CTX *mem_ctx, const char *string)
 {
        int i, len;
@@ -203,21 +208,12 @@ int ldb_try_load_dso(struct ldb_context *ldb, const char *name)
        char *path;
        void *handle;
        int (*init_fn) (void);
-       char *modulesdir;
 
-       if (getenv("LD_LDB_MODULE_PATH") != NULL) {
-               modulesdir = talloc_strdup(ldb, getenv("LD_LDB_MODULE_PATH"));
-       } else {
-#ifdef _SAMBA_BUILD_
-               modulesdir = talloc_asprintf(ldb, "%s/ldb", dyn_MODULESDIR);
-#else
-               modulesdir = talloc_strdup(ldb, MODULESDIR);
-#endif
-       }
-
-       path = talloc_asprintf(ldb, "%s/%s.%s", modulesdir, name, SHLIBEXT);
+       if (ldb->modules_dir == NULL)
+               return -1;
 
-       talloc_free(modulesdir);
+       path = talloc_asprintf(ldb, "%s/%s.%s", ldb->modules_dir, name, 
+                              SHLIBEXT);
 
        ldb_debug(ldb, LDB_DEBUG_TRACE, "trying to load %s from %s\n", name, path);
 
index e47bf8ea39b4241f07554be568c1f5521e0ebbe8..6472612837718b96f1d242db8ec93a1affd3c647 100644 (file)
@@ -70,25 +70,11 @@ OBJ_FILES = \
 # End MODULE ldb_rdn_name
 ################################################
 
-################################################
-# Start MODULE ldb_ildap
-[MODULE::ldb_ildap]
-SUBSYSTEM = LIBLDB
-CFLAGS = -Ilib/ldb/include
-PRIVATE_DEPENDENCIES = LIBTALLOC LIBCLI_LDAP
-INIT_FUNCTION = ldb_ildap_init
-ALIASES = ldapi ldaps ldap
-OBJ_FILES = \
-               ldb_ildap/ldb_ildap.o
-# End MODULE ldb_ildap
-################################################
-
 ################################################
 # Start MODULE ldb_map
-[MODULE::ldb_map]
+[SUBSYSTEM::ldb_map]
 PRIVATE_DEPENDENCIES = LIBTALLOC
 CFLAGS = -Ilib/ldb/include -Ilib/ldb/ldb_map
-SUBSYSTEM = LIBLDB
 OBJ_FILES = \
                ldb_map/ldb_map_inbound.o \
                ldb_map/ldb_map_outbound.o \
@@ -137,14 +123,6 @@ PRIVATE_DEPENDENCIES = \
 # End MODULE ldb_tdb
 ################################################
 
-# NOTE: this rule is broken for some systems when $builddir != $srcdir because
-# it hardcodes the use of $<. See smb_build/makefile.pm.
-./lib/ldb/common/ldb_modules.o: lib/ldb/common/ldb_modules.c Makefile
-       @echo Compiling $<
-       @$(CC) `$(PERL) $(srcdir)/script/cflags.pl $@` $(CFLAGS) $(PICFLAG) \
-       -DLDBMODULESDIR=\"$(MODULESDIR)/ldb\" -DSHLIBEXT=\"$(SHLIBEXT)\" \
-       -c $< -o $@
-
 ################################################
 # Start SUBSYSTEM ldb
 [LIBRARY::LIBLDB]
@@ -178,89 +156,6 @@ PUBLIC_HEADERS = include/ldb.h include/ldb_errors.h
 # End SUBSYSTEM ldb
 ################################################
 
-################################################
-# Start SUBSYSTEM LIBLDB_CMDLINE
-[SUBSYSTEM::LIBLDB_CMDLINE]
-CFLAGS = -Ilib/ldb
-OBJ_FILES= \
-               tools/cmdline.o
-PUBLIC_DEPENDENCIES = LIBLDB LIBPOPT
-PRIVATE_DEPENDENCIES = LIBSAMBA-UTIL POPT_SAMBA POPT_CREDENTIALS gensec
-# End SUBSYSTEM LIBLDB_CMDLINE
-################################################
-
-################################################
-# Start BINARY ldbadd
-[BINARY::ldbadd]
-INSTALLDIR = BINDIR
-OBJ_FILES = \
-               tools/ldbadd.o
-PRIVATE_DEPENDENCIES = \
-               LIBLDB_CMDLINE LIBCLI_RESOLVE
-MANPAGE = man/ldbadd.1
-# End BINARY ldbadd
-################################################
-
-################################################
-# Start BINARY ldbdel
-[BINARY::ldbdel]
-INSTALLDIR = BINDIR
-OBJ_FILES= \
-               tools/ldbdel.o
-PRIVATE_DEPENDENCIES = \
-               LIBLDB_CMDLINE
-MANPAGE = man/ldbdel.1
-# End BINARY ldbdel
-################################################
-
-################################################
-# Start BINARY ldbmodify
-[BINARY::ldbmodify]
-INSTALLDIR = BINDIR
-OBJ_FILES= \
-               tools/ldbmodify.o
-PRIVATE_DEPENDENCIES = \
-               LIBLDB_CMDLINE
-MANPAGE = man/ldbmodify.1
-# End BINARY ldbmodify
-################################################
-
-################################################
-# Start BINARY ldbsearch
-[BINARY::ldbsearch]
-INSTALLDIR = BINDIR
-OBJ_FILES= \
-               tools/ldbsearch.o
-PRIVATE_DEPENDENCIES = \
-               LIBLDB_CMDLINE 
-MANPAGE = man/ldbsearch.1
-# End BINARY ldbsearch
-################################################
-
-################################################
-# Start BINARY ldbedit
-[BINARY::ldbedit]
-INSTALLDIR = BINDIR
-OBJ_FILES= \
-               tools/ldbedit.o
-PRIVATE_DEPENDENCIES = \
-               LIBLDB_CMDLINE
-MANPAGE = man/ldbedit.1
-# End BINARY ldbedit
-################################################
-
-################################################
-# Start BINARY ldbrename
-[BINARY::ldbrename]
-INSTALLDIR = BINDIR
-OBJ_FILES= \
-               tools/ldbrename.o
-PRIVATE_DEPENDENCIES = \
-               LIBLDB_CMDLINE
-MANPAGE = man/ldbrename.1
-# End BINARY ldbrename
-################################################
-
 ################################################
 # Start BINARY ldbtest
 [BINARY::ldbtest]
@@ -306,4 +201,5 @@ OBJ_FILES = swig/ldb_wrap.o
 # End LIBRARY swig_ldb
 #######################
 
-include samba/config.mk
+include tools/config.mk
+include ldb_ildap/config.mk
index 083518474d3826ee75219b4e0645d7ae159dc8ed..6f19d882909cec2da716c88017ec6db10df507ba 100644 (file)
@@ -11,7 +11,7 @@ AC_DEFUN([SMB_MODULE_DEFAULT], [echo -n ""])
 AC_DEFUN([SMB_LIBRARY_ENABLE], [echo -n ""])
 AC_DEFUN([SMB_EXT_LIB], [echo -n ""])
 AC_DEFUN([SMB_ENABLE], [echo -n ""])
-AC_INIT(ldb, 0.9.0)
+AC_INIT(ldb, 0.9.1)
 AC_CONFIG_SRCDIR([common/ldb.c])
 
 AC_LIBREPLACE_ALL_CHECKS
@@ -41,8 +41,8 @@ AC_SEARCH_LIBS(dlopen, dl, AC_DEFINE(HAVE_DLOPEN, [1], [have dlopen]))
 SHLIBEXT="so" # Should be set based on OS later on
 AC_SUBST(SHLIBEXT)
 
-AC_DEFINE_UNQUOTED(MODULESDIR, LIBDIR "/ldb" , [Modules directory] )
-AC_SUBST(MODULESDIR)
+AC_DEFINE_UNQUOTED(LDB_MODULESDIR, LIBDIR "/ldb" , [Modules directory] )
+AC_SUBST(LDB_MODULESDIR)
 
 TESTS=""
 EXTRA_OBJ=""
@@ -53,9 +53,10 @@ m4_include(libtdb.m4)
 
 m4_include(ldap.m4)
 if test x"$with_ldap_support" = x"yes"; then
-   LIBS="$LIBS -llber -lldap"
    CFLAGS="$CFLAGS -DHAVE_LDB_LDAP=1"
    EXTRA_OBJ="$EXTRA_OBJ ldb_ldap/ldb_ldap.o"
+   LDAP_LIBS="-llber -lldap"
+   AC_SUBST(LDAP_LIBS)
    TESTS="$TESTS test-ldap.sh"
 fi
 
index 8f693309c5e4aebe6eaa2d81fb3982ef1b984590..41d23b5d1030b9b51d460fd97ce846e7038ea721 100644 (file)
@@ -779,6 +779,7 @@ int ldb_wait(struct ldb_handle *handle, enum ldb_wait_type type);
 int ldb_set_timeout(struct ldb_context *ldb, struct ldb_request *req, int timeout);
 int ldb_set_timeout_from_prev_req(struct ldb_context *ldb, struct ldb_request *oldreq, struct ldb_request *newreq);
 void ldb_set_create_perms(struct ldb_context *ldb, unsigned int perms);
+void ldb_set_modules_dir(struct ldb_context *ldb, const char *path);
 
 /**
   Initialise ldbs' global information
@@ -876,7 +877,7 @@ int ldb_search_default_callback(struct ldb_context *ldb, void *context, struct l
 
   \param ret_req the request structure is returned here (talloced on mem_ctx)
   \param ldb the context associated with the database (from ldb_init())
-  \param mem_ctx a talloc emmory context (used as parent of ret_req)
+  \param mem_ctx a talloc memory context (used as parent of ret_req)
   \param base the Base Distinguished Name for the query (use ldb_dn_new() for an empty one)
   \param scope the search scope for the query
   \param expression the search expression to use for this query
@@ -904,7 +905,7 @@ int ldb_build_search_req(struct ldb_request **ret_req,
 
   \param ret_req the request structure is returned here (talloced on mem_ctx)
   \param ldb the context associated with the database (from ldb_init())
-  \param mem_ctx a talloc emmory context (used as parent of ret_req)
+  \param mem_ctx a talloc memory context (used as parent of ret_req)
   \param message contains the entry to be added 
   \param controls an array of controls
   \param context the callback function context
@@ -926,7 +927,7 @@ int ldb_build_add_req(struct ldb_request **ret_req,
 
   \param ret_req the request structure is returned here (talloced on mem_ctx)
   \param ldb the context associated with the database (from ldb_init())
-  \param mem_ctx a talloc emmory context (used as parent of ret_req)
+  \param mem_ctx a talloc memory context (used as parent of ret_req)
   \param message contains the entry to be modified
   \param controls an array of controls
   \param context the callback function context
@@ -948,7 +949,7 @@ int ldb_build_mod_req(struct ldb_request **ret_req,
 
   \param ret_req the request structure is returned here (talloced on mem_ctx)
   \param ldb the context associated with the database (from ldb_init())
-  \param mem_ctx a talloc emmory context (used as parent of ret_req)
+  \param mem_ctx a talloc memory context (used as parent of ret_req)
   \param dn the DN to be deleted
   \param controls an array of controls
   \param context the callback function context
@@ -970,7 +971,7 @@ int ldb_build_del_req(struct ldb_request **ret_req,
 
   \param ret_req the request structure is returned here (talloced on mem_ctx)
   \param ldb the context associated with the database (from ldb_init())
-  \param mem_ctx a talloc emmory context (used as parent of ret_req)
+  \param mem_ctx a talloc memory context (used as parent of ret_req)
   \param olddn the old DN
   \param newdn the new DN
   \param controls an array of controls
@@ -1043,15 +1044,6 @@ int ldb_search_exp_fmt(struct ldb_context *ldb, TALLOC_CTX *mem_ctx,
                       enum ldb_scope scope, const char * const *attrs,
                       const char *exp_fmt, ...) PRINTF_ATTRIBUTE(7,8);
 
-/*
-  like ldb_search() but takes a parse tree
-*/
-int ldb_search_bytree(struct ldb_context *ldb, 
-                     struct ldb_dn *base,
-                     enum ldb_scope scope,
-                     struct ldb_parse_tree *tree,
-                     const char * const *attrs, struct ldb_result **res);
-
 /**
   Add a record to the database.
 
@@ -1137,7 +1129,7 @@ int ldb_extended_default_callback(struct ldb_context *ldb, void *context, struct
 
   \param ret_req the request structure is returned here (talloced on mem_ctx)
   \param ldb the context associated with the database (from ldb_init())
-  \param mem_ctx a talloc emmory context (used as parent of ret_req)
+  \param mem_ctx a talloc memory context (used as parent of ret_req)
   \param oid the OID of the extended operation.
   \param data a void pointer a the extended operation specific parameters,
   it needs to be NULL or a valid talloc pointer! talloc_get_type() will be used on it  
@@ -1418,9 +1410,6 @@ bool ldb_dn_check_special(struct ldb_dn *dn, const char *check);
 bool ldb_dn_is_null(struct ldb_dn *dn);
 
 
-/* useful functions for ldb_message structure manipulation */
-int ldb_dn_cmp(struct ldb_context *ldb, const char *dn1, const char *dn2);
-
 /**
    Compare two attributes
 
index cac665b5bbd58294b0ecadb3e9da1e213bcee71b..e07083bef75494f8ca0986aa6d91d1ee3fd1b4c0 100644 (file)
@@ -120,6 +120,8 @@ struct ldb_context {
        unsigned int flags;
 
        unsigned int create_perms;
+
+       char *modules_dir;
 };
 
 #ifndef ARRAY_SIZE
index fb59f8269833cc955f1efde018684fc00dcd766a..248fb05c4fc89eeb7acc1944e54c8307aa50ed6d 100644 (file)
@@ -10,6 +10,7 @@ Version: @PACKAGE_VERSION@
 Requires.private: tdb
 Requires: talloc
 Libs: -L${libdir} -lldb
-Cflags: -I${includedir} @CFLAGS@
+Libs.private: @LDAP_LIBS@
+Cflags: -I${includedir} 
 Modulesdir: ${modulesdir}
 URL: http://ldb.samba.org/
diff --git a/source/lib/ldb/ldb_ildap/config.mk b/source/lib/ldb/ldb_ildap/config.mk
new file mode 100644 (file)
index 0000000..71887c1
--- /dev/null
@@ -0,0 +1,14 @@
+################################################
+# Start MODULE ldb_ildap
+[MODULE::ldb_ildap]
+SUBSYSTEM = LIBLDB
+CFLAGS = -Ilib/ldb/include
+PRIVATE_DEPENDENCIES = LIBTALLOC LIBCLI_LDAP
+INIT_FUNCTION = ldb_ildap_init
+ALIASES = ldapi ldaps ldap
+OBJ_FILES = \
+               ldb_ildap.o
+# End MODULE ldb_ildap
+################################################
+
+
index 440686c65efdbedd665a9e75d45969e0f402688e..7b9023958ce92c919af8e505e36d1c3601fbd962 100644 (file)
@@ -646,7 +646,7 @@ static int ildb_rename(struct ldb_module *module, struct ldb_request *req)
                return LDB_ERR_INVALID_DN_SYNTAX;
        }
 
-       msg->r.ModifyDNRequest.deleteolddn = True;
+       msg->r.ModifyDNRequest.deleteolddn = true;
 
        return ildb_request_send(ildb, msg, req);
 }
index 6bbf31dee766440d5e171aa26db576451021b78f..de489e3d8b3325eb51fd669ba4a37892f7ae41ca 100644 (file)
@@ -38,7 +38,6 @@
 #define LTDB_FLAG_CASE_INSENSITIVE (1<<0)
 #define LTDB_FLAG_INTEGER          (1<<1)
 #define LTDB_FLAG_HIDDEN           (1<<2)
-#define LTDB_FLAG_OBJECTCLASS      (1<<3)
 
 /* valid attribute flags */
 static const struct {
@@ -58,7 +57,7 @@ static const struct {
 */
 static void ltdb_attributes_unload(struct ldb_module *module)
 {
-       struct ltdb_private *ltdb = module->private_data;
+       struct ltdb_private *ltdb = (struct ltdb_private *)module->private_data;
        struct ldb_message *msg;
        int i;
 
@@ -105,7 +104,7 @@ static int ltdb_attributes_flags(struct ldb_message_element *el, unsigned *v)
 */
 static int ltdb_attributes_load(struct ldb_module *module)
 {
-       struct ltdb_private *ltdb = module->private_data;
+       struct ltdb_private *ltdb = (struct ltdb_private *)module->private_data;
        struct ldb_message *msg = ltdb->cache->attributes;
        struct ldb_dn *dn;
        int i, r;
@@ -167,72 +166,12 @@ failed:
 }
 
 
-/*
-  register any subclasses from @SUBCLASSES
-*/
-static int ltdb_subclasses_load(struct ldb_module *module)
-{
-       struct ltdb_private *ltdb = module->private_data;
-       struct ldb_message *msg = ltdb->cache->subclasses;
-       struct ldb_dn *dn;
-       int i, j, r;
-
-       dn = ldb_dn_new(module, module->ldb, LTDB_SUBCLASSES);
-       if (dn == NULL) goto failed;
-
-       r = ltdb_search_dn1(module, dn, msg);
-       if (r != LDB_SUCCESS && r != LDB_ERR_NO_SUCH_OBJECT) {
-               talloc_free(dn);
-               goto failed;
-       }
-       talloc_free(dn);
-
-       for (i=0;i<msg->num_elements;i++) {
-               struct ldb_message_element *el = &msg->elements[i];
-               for (j=0;j<el->num_values;j++) {
-                       if (ldb_subclass_add(module->ldb, el->name, 
-                                            (char *)el->values[j].data) != 0) {
-                               goto failed;
-                       }
-               }
-       }
-
-       return 0;
-failed:
-       return -1;
-}
-
-
-/*
-  de-register any @SUBCLASSES
-*/
-static void ltdb_subclasses_unload(struct ldb_module *module)
-{
-       struct ltdb_private *ltdb = module->private_data;
-       struct ldb_message *msg;
-       int i;
-
-       if (ltdb->cache->subclasses == NULL) {
-               /* no previously loaded subclasses */
-               return;
-       }
-
-       msg = ltdb->cache->subclasses;
-       for (i=0;i<msg->num_elements;i++) {
-               ldb_subclass_remove(module->ldb, msg->elements[i].name);
-       }
-
-       talloc_free(ltdb->cache->subclasses);
-       ltdb->cache->subclasses = NULL;
-}
-
-
 /*
   initialise the baseinfo record
 */
 static int ltdb_baseinfo_init(struct ldb_module *module)
 {
-       struct ltdb_private *ltdb = module->private_data;
+       struct ltdb_private *ltdb = (struct ltdb_private *)module->private_data;
        struct ldb_message *msg;
        struct ldb_message_element el;
        struct ldb_val val;
@@ -285,7 +224,7 @@ failed:
  */
 static void ltdb_cache_free(struct ldb_module *module)
 {
-       struct ltdb_private *ltdb = module->private_data;
+       struct ltdb_private *ltdb = (struct ltdb_private *)module->private_data;
 
        ltdb->sequence_number = 0;
        talloc_free(ltdb->cache);
@@ -298,7 +237,6 @@ static void ltdb_cache_free(struct ldb_module *module)
 int ltdb_cache_reload(struct ldb_module *module)
 {
        ltdb_attributes_unload(module);
-       ltdb_subclasses_unload(module);
        ltdb_cache_free(module);
        return ltdb_cache_load(module);
 }
@@ -308,7 +246,7 @@ int ltdb_cache_reload(struct ldb_module *module)
 */
 int ltdb_cache_load(struct ldb_module *module)
 {
-       struct ltdb_private *ltdb = module->private_data;
+       struct ltdb_private *ltdb = (struct ltdb_private *)module->private_data;
        struct ldb_dn *baseinfo_dn = NULL;
        struct ldb_dn *indexlist_dn = NULL;
        uint64_t seq;
@@ -325,10 +263,8 @@ int ltdb_cache_load(struct ldb_module *module)
                ltdb->cache = talloc_zero(ltdb, struct ltdb_cache);
                if (ltdb->cache == NULL) goto failed;
                ltdb->cache->indexlist = talloc_zero(ltdb->cache, struct ldb_message);
-               ltdb->cache->subclasses = talloc_zero(ltdb->cache, struct ldb_message);
                ltdb->cache->attributes = talloc_zero(ltdb->cache, struct ldb_message);
                if (ltdb->cache->indexlist == NULL ||
-                   ltdb->cache->subclasses == NULL ||
                    ltdb->cache->attributes == NULL) {
                        goto failed;
                }
@@ -369,16 +305,12 @@ int ltdb_cache_load(struct ldb_module *module)
        memset(&ltdb->cache->last_attribute, 0, sizeof(ltdb->cache->last_attribute));
 
        ltdb_attributes_unload(module);
-       ltdb_subclasses_unload(module);
 
        talloc_free(ltdb->cache->indexlist);
-       talloc_free(ltdb->cache->subclasses);
 
        ltdb->cache->indexlist = talloc_zero(ltdb->cache, struct ldb_message);
-       ltdb->cache->subclasses = talloc_zero(ltdb->cache, struct ldb_message);
        ltdb->cache->attributes = talloc_zero(ltdb->cache, struct ldb_message);
        if (ltdb->cache->indexlist == NULL ||
-           ltdb->cache->subclasses == NULL ||
            ltdb->cache->attributes == NULL) {
                goto failed;
        }
@@ -394,9 +326,6 @@ int ltdb_cache_load(struct ldb_module *module)
        if (ltdb_attributes_load(module) == -1) {
                goto failed;
        }
-       if (ltdb_subclasses_load(module) == -1) {
-               goto failed;
-       }
 
 done:
        talloc_free(baseinfo);
@@ -417,7 +346,7 @@ failed:
 */
 int ltdb_increase_sequence_number(struct ldb_module *module)
 {
-       struct ltdb_private *ltdb = module->private_data;
+       struct ltdb_private *ltdb = (struct ltdb_private *)module->private_data;
        struct ldb_message *msg;
        struct ldb_message_element el[2];
        struct ldb_val val;
index 1fe697f2776872c2d1b157264315a374dfed175a..cf9380f8c089bf47e454d8d292acdbcfa6b6cbe0 100644 (file)
@@ -45,7 +45,7 @@ static int ldb_list_find(const void *needle,
                         const void *base, size_t nmemb, size_t size, 
                         comparison_fn_t comp_fn)
 {
-       const char *base_p = base;
+       const char *base_p = (const char *)base;
        size_t min_i, max_i, test_i;
 
        if (nmemb == 0) {
@@ -257,67 +257,6 @@ static int ltdb_index_dn_simple(struct ldb_module *module,
 
 static int list_union(struct ldb_context *, struct dn_list *, const struct dn_list *);
 
-/*
-  return a list of dn's that might match a simple indexed search on
-  the special objectclass attribute
- */
-static int ltdb_index_dn_objectclass(struct ldb_module *module, 
-                                    const struct ldb_parse_tree *tree,
-                                    const struct ldb_message *index_list,
-                                    struct dn_list *list)
-{
-       struct ldb_context *ldb = module->ldb;
-       unsigned int i;
-       int ret;
-       const char *target = (const char *)tree->u.equality.value.data;
-       const char **subclasses;
-
-       list->count = 0;
-       list->dn = NULL;
-
-       ret = ltdb_index_dn_simple(module, tree, index_list, list);
-
-       subclasses = ldb_subclass_list(module->ldb, target);
-
-       if (subclasses == NULL) {
-               return ret;
-       }
-
-       for (i=0;subclasses[i];i++) {
-               struct ldb_parse_tree tree2;
-               struct dn_list *list2;
-               tree2.operation = LDB_OP_EQUALITY;
-               tree2.u.equality.attr = LTDB_OBJECTCLASS;
-               if (!tree2.u.equality.attr) {
-                       return LDB_ERR_OPERATIONS_ERROR;
-               }
-               tree2.u.equality.value.data = 
-                       (uint8_t *)talloc_strdup(list, subclasses[i]);
-               if (tree2.u.equality.value.data == NULL) {
-                       return LDB_ERR_OPERATIONS_ERROR;                        
-               }
-               tree2.u.equality.value.length = strlen(subclasses[i]);
-               list2 = talloc(list, struct dn_list);
-               if (list2 == NULL) {
-                       talloc_free(tree2.u.equality.value.data);
-                       return LDB_ERR_OPERATIONS_ERROR;
-               }
-               if (ltdb_index_dn_objectclass(module, &tree2, 
-                                             index_list, list2) == LDB_SUCCESS) {
-                       if (list->count == 0) {
-                               *list = *list2;
-                               ret = LDB_SUCCESS;
-                       } else {
-                               list_union(ldb, list, list2);
-                               talloc_free(list2);
-                       }
-               }
-               talloc_free(tree2.u.equality.value.data);
-       }
-
-       return ret;
-}
-
 /*
   return a list of dn's that might match a leaf indexed search
  */
@@ -326,9 +265,6 @@ static int ltdb_index_dn_leaf(struct ldb_module *module,
                              const struct ldb_message *index_list,
                              struct dn_list *list)
 {
-       if (ldb_attr_cmp(tree->u.equality.attr, LTDB_OBJECTCLASS) == 0) {
-               return ltdb_index_dn_objectclass(module, tree, index_list, list);
-       }
        if (ldb_attr_dn(tree->u.equality.attr) == 0) {
                list->dn = talloc_array(list, char *, 1);
                if (list->dn == NULL) {
@@ -1014,7 +950,7 @@ static int ltdb_index_add1(struct ldb_module *module, const char *dn,
 static int ltdb_index_add0(struct ldb_module *module, const char *dn,
                           struct ldb_message_element *elements, int num_el)
 {
-       struct ltdb_private *ltdb = module->private_data;
+       struct ltdb_private *ltdb = (struct ltdb_private *)module->private_data;
        int ret;
        unsigned int i, j;
 
@@ -1138,7 +1074,7 @@ int ltdb_index_del_value(struct ldb_module *module, const char *dn,
 */
 int ltdb_index_del(struct ldb_module *module, const struct ldb_message *msg)
 {
-       struct ltdb_private *ltdb = module->private_data;
+       struct ltdb_private *ltdb = (struct ltdb_private *)module->private_data;
        int ret;
        const char *dn;
        unsigned int i, j;
@@ -1180,7 +1116,7 @@ int ltdb_index_del(struct ldb_module *module, const struct ldb_message *msg)
 */
 int ltdb_index_one(struct ldb_module *module, const struct ldb_message *msg, int add)
 {
-       struct ltdb_private *ltdb = module->private_data;
+       struct ltdb_private *ltdb = (struct ltdb_private *)module->private_data;
        struct ldb_message_element el;
        struct ldb_val val;
        struct ldb_dn *pdn;
@@ -1244,7 +1180,7 @@ static int delete_index(struct tdb_context *tdb, TDB_DATA key, TDB_DATA data, vo
 */
 static int re_index(struct tdb_context *tdb, TDB_DATA key, TDB_DATA data, void *state)
 {
-       struct ldb_module *module = state;
+       struct ldb_module *module = (struct ldb_module *)state;
        struct ldb_message *msg;
        const char *dn = NULL;
        int ret;
@@ -1309,7 +1245,7 @@ static int re_index(struct tdb_context *tdb, TDB_DATA key, TDB_DATA data, void *
 */
 int ltdb_reindex(struct ldb_module *module)
 {
-       struct ltdb_private *ltdb = module->private_data;
+       struct ltdb_private *ltdb = (struct ltdb_private *)module->private_data;
        int ret;
 
        if (ltdb_cache_reload(module) != 0) {
index 013b341d42a36a68bdd6378632f19d2a999679c9..a195a39391b55b2db2a37c4807e50860839630cf 100644 (file)
@@ -210,7 +210,7 @@ static struct ldb_message *ltdb_pull_attrs(struct ldb_module *module,
 */
 int ltdb_search_dn1(struct ldb_module *module, struct ldb_dn *dn, struct ldb_message *msg)
 {
-       struct ltdb_private *ltdb = module->private_data;
+       struct ltdb_private *ltdb = (struct ltdb_private *)module->private_data;
        int ret;
        TDB_DATA tdb_key, tdb_data;
 
@@ -252,7 +252,7 @@ int ltdb_search_dn1(struct ldb_module *module, struct ldb_dn *dn, struct ldb_mes
 */
 static int ltdb_lock_read(struct ldb_module *module)
 {
-       struct ltdb_private *ltdb = module->private_data;
+       struct ltdb_private *ltdb = (struct ltdb_private *)module->private_data;
        return tdb_lockall_read(ltdb->tdb);
 }
 
@@ -261,7 +261,7 @@ static int ltdb_lock_read(struct ldb_module *module)
 */
 static int ltdb_unlock_read(struct ldb_module *module)
 {
-       struct ltdb_private *ltdb = module->private_data;
+       struct ltdb_private *ltdb = (struct ltdb_private *)module->private_data;
        return tdb_unlockall_read(ltdb->tdb);
 }
 
index 324a8e38812ede32b9db0323935068b5809b92ee..3461f98d5f3f46d44dd5eda73b47a3baa20d37d9 100644 (file)
@@ -145,7 +145,7 @@ struct TDB_DATA ltdb_key(struct ldb_module *module, struct ldb_dn *dn)
                goto failed;
        }
 
-       key_str = talloc_append_string(ldb, key_str, dn_folded);
+       key_str = talloc_strdup_append_buffer(key_str, dn_folded);
        if (!key_str) {
                goto failed;
        }
@@ -856,16 +856,38 @@ static int ltdb_rename(struct ldb_module *module, struct ldb_request *req)
                goto done;
        }
 
-       ret = ltdb_add_internal(module, msg);
-       if (ret != LDB_SUCCESS) {
-               goto done;
-       }
+       if (ldb_dn_compare(req->op.rename.olddn, req->op.rename.newdn) == 0) {
+               /* The rename operation is apparently only changing case -
+                  the DNs are the same.  Delete the old DN before adding
+                  the new one to avoid a TDB_ERR_EXISTS error.
 
-       tret = ltdb_delete_internal(module, req->op.rename.olddn);
-       if (tret != LDB_SUCCESS) {
-               ltdb_delete_internal(module, req->op.rename.newdn);
-               ret = LDB_ERR_OPERATIONS_ERROR;
-               goto done;
+                  The only drawback to this is that if the delete
+                  succeeds but the add fails, we rely on the
+                  transaction to roll this all back. */
+               ret = ltdb_delete_internal(module, req->op.rename.olddn);
+               if (ret != LDB_SUCCESS) {
+                       goto done;
+               }
+
+               ret = ltdb_add_internal(module, msg);
+               if (ret != LDB_SUCCESS) {
+                       goto done;
+               }
+       } else {
+               /* The rename operation is changing DNs.  Try to add the new
+                  DN first to avoid clobbering another DN not related to
+                  this rename operation. */
+               ret = ltdb_add_internal(module, msg);
+               if (ret != LDB_SUCCESS) {
+                       goto done;
+               }
+
+               tret = ltdb_delete_internal(module, req->op.rename.olddn);
+               if (tret != LDB_SUCCESS) {
+                       ltdb_delete_internal(module, req->op.rename.newdn);
+                       ret = LDB_ERR_OPERATIONS_ERROR;
+                       goto done;
+               }
        }
 
        if (ltdb_ac->callback) {
index 956f18688b6fe5bbac4dc2c16a418ae08377f856..d4a8ff2fb15ee185cf5f320bd7c3a59953c9f124 100644 (file)
@@ -1,11 +1,4 @@
-
-#ifdef _SAMBA_BUILD_
-#include "system/filesys.h"
-#endif
-
-#if (_SAMBA_BUILD_ >= 4)
-#include "lib/tdb/include/tdb.h"
-#elif defined(_SAMBA_BUILD_)
+#if (_SAMBA_BUILD_ == 3)
 #include "tdb/include/tdb.h"
 #else
 #include "tdb.h"
@@ -28,7 +21,6 @@ struct ltdb_private {
        struct ltdb_cache {
                struct ldb_message *indexlist;
                struct ldb_message *attributes;
-               struct ldb_message *subclasses;
 
                struct {
                        char *name;
@@ -63,7 +55,6 @@ struct ltdb_context {
 #define LTDB_IDXONE     "@IDXONE"
 #define LTDB_BASEINFO   "@BASEINFO"
 #define LTDB_ATTRIBUTES "@ATTRIBUTES"
-#define LTDB_SUBCLASSES "@SUBCLASSES"
 
 /* special attribute types */
 #define LTDB_SEQUENCE_NUMBER "sequenceNumber"
index 3e0941357e022f0e8fdfe00a46c76dba1388bd03..749858b49b3221ce8e48b647e3177588a284cd9b 100644 (file)
@@ -90,7 +90,10 @@ static struct ldb_handle *init_handle(void *mem_ctx, struct ldb_module *module,
        ac->up_context = context;
        ac->up_callback = callback;
 
-       ac->pending = False;
+       ac->pending = false;
+
+
+
        ac->saved_referrals = NULL;
        ac->num_referrals = 0;
 
@@ -110,7 +113,7 @@ static int check_ps_continuation(struct ldb_reply *ares, struct ps_context *ac)
        rep_control = talloc_get_type(ares->controls[0]->data, struct ldb_paged_control);
        if (rep_control->cookie_len == 0) {
                /* we are done */
-               ac->pending = False;
+               ac->pending = false;
                return LDB_SUCCESS;
        }
 
@@ -135,7 +138,7 @@ static int check_ps_continuation(struct ldb_reply *ares, struct ps_context *ac)
                                            rep_control->cookie_len);
        req_control->cookie_len = rep_control->cookie_len;
 
-       ac->pending = True;
+       ac->pending = true;
        return LDB_SUCCESS;
 }
 
@@ -395,7 +398,7 @@ static int check_supported_paged(struct ldb_context *ldb, void *context,
                if (ldb_msg_check_string_attribute(ares->message,
                                                   "supportedControl",
                                                   LDB_CONTROL_PAGED_RESULTS_OID)) {
-                       data->paged_supported = True;
+                       data->paged_supported = true;
                }
        }
        return LDB_SUCCESS;
@@ -415,7 +418,7 @@ static int ps_init(struct ldb_module *module)
                return LDB_ERR_OTHER;
        }
        module->private_data = data;
-       data->paged_supported = False;
+       data->paged_supported = false;
 
        req = talloc(module, struct ldb_request);
        if (req == NULL) {
diff --git a/source/lib/ldb/setup.py b/source/lib/ldb/setup.py
new file mode 100755 (executable)
index 0000000..e5fcddf
--- /dev/null
@@ -0,0 +1,8 @@
+#!/usr/bin/python
+from distutils.core import setup
+from distutils.extension import Extension
+setup(name='ldb',
+      version='1.0',
+      ext_modules=[Extension('_ldb', ['swig/ldb.i'], include_dirs=['include'],
+                             libraries=['ldb','ldap'])],
+      )
index 6a0adb7bf86f16ce93da8eed3ec0b0bdbb4b23d6..cdf1d66de1f4db2432329ac105c6d16346567e86 100644 (file)
@@ -36,9 +36,9 @@ typedef long long int64_t;
 
 /* Include headers */
 
-#include "lib/replace/replace.h"
-#include "lib/talloc/talloc.h"
-#include "lib/ldb/include/ldb.h"
+#include <stdbool.h>
+#include "talloc.h"
+#include "ldb.h"
 
 %}
 
@@ -234,6 +234,8 @@ int ldb_msg_sanity_check(struct ldb_context *ldb, const struct ldb_message *msg)
 
 /* DN operations */
 
-struct ldb_dn *ldb_dn_explode(void *mem_ctx, const char *dn);
+/* struct ldb_dn *ldb_dn_explode(void *mem_ctx, const char *dn); */
 
-char *ldb_dn_linearize(void *mem_ctx, const struct ldb_dn *dn);
+/* char *ldb_dn_linearize(void *mem_ctx, const struct ldb_dn *dn); */
+
+%rename(ldb_context) Ldb;
index 515408144ab37aef33f1feb0db9cc57d1c3d5b15..4ab1932839b8b8b91bcdea9da886303b81aa4f89 100644 (file)
@@ -26,18 +26,6 @@ lmPwdHistory: HIDDEN
 createTimestamp: HIDDEN
 modifyTimestamp: HIDDEN
 
-dn: @SUBCLASSES
-top: domain
-top: person
-top: group
-domain: domainDNS
-domain: builtinDomain
-person: organizationalPerson
-organizationalPerson: user
-user: computer
-template: userTemplate
-template: groupTemplate
-
 dn: @MODULES
 @LIST: timestamps,schema
 
index 09a46d833e5dd2ee6f4c0db4aac1a26f9d187f09..fc0959c54a16775e3cc45592318ff0db9380ff6a 100644 (file)
@@ -83,16 +83,6 @@ echo "Testing class search"
 checkcount 0 '(objectClass=otherclass)'
 checkcount 1 '(objectClass=testclass)'
 
-echo "Adding subclass"
-cat <<EOF | $VALGRIND bin/ldbmodify || exit 1
-dn: @SUBCLASSES
-changetype: add
-add: otherclass
-otherclass: testclass
-EOF
-checkcount 1 '(objectClass=otherclass)'
-checkcount 1 '(objectClass=testclass)'
-
 echo "Adding index"
 cat <<EOF | $VALGRIND bin/ldbadd || exit 1
 dn: @INDEXLIST
index 761339b96f74daa3255d8dc9ca68a4a089863f4a..5fcf75257824d5a7d4577168bde89c58f9dd1d69 100644 (file)
@@ -36,6 +36,7 @@
 #include "system/locale.h"
 #include "tools/cmdline.h"
 #include "tools/convert.h"
+#include "param/param.h"
 
 struct schema_conv {
        int count;
@@ -354,7 +355,7 @@ static struct schema_conv process_convert(struct ldb_context *ldb, enum convert_
                const char *description = ldb_msg_find_attr_as_string(msg, "description", NULL);
                const char *oid = ldb_msg_find_attr_as_string(msg, "attributeID", NULL);
                const char *syntax = ldb_msg_find_attr_as_string(msg, "attributeSyntax", NULL);
-               BOOL single_value = ldb_msg_find_attr_as_bool(msg, "isSingleValued", False);
+               bool single_value = ldb_msg_find_attr_as_bool(msg, "isSingleValued", false);
                const struct syntax_map *map = find_syntax_map_by_ad_oid(syntax);
                char *schema_entry = NULL;
                int j;
@@ -676,7 +677,7 @@ static struct schema_conv process_convert(struct ldb_context *ldb, enum convert_
                }
        }
 
-       target_str = lp_parm_string(-1, "convert", "target");
+       target_str = lp_parm_string(global_loadparm, NULL, "convert", "target");
 
        if (!target_str || strcasecmp(target_str, "openldap") == 0) {
                target = TARGET_OPENLDAP;
index 08f5dc721fb0d80f48dd8330e169ba48b9048729..2cf82121547c1bec5fabf5f5739c6d4efc3565cf 100644 (file)
@@ -27,7 +27,7 @@
 #if (_SAMBA_BUILD_ >= 4)
 #include "includes.h"
 #include "lib/cmdline/popt_common.h"
-#include "lib/ldb/samba/ldif_handlers.h"
+#include "lib/ldb-samba/ldif_handlers.h"
 #include "auth/gensec/gensec.h"
 #include "auth/auth.h"
 #include "db_wrap.h"
diff --git a/source/lib/ldb/tools/config.mk b/source/lib/ldb/tools/config.mk
new file mode 100644 (file)
index 0000000..bf6c5f9
--- /dev/null
@@ -0,0 +1,84 @@
+################################################
+# Start SUBSYSTEM LIBLDB_CMDLINE
+[SUBSYSTEM::LIBLDB_CMDLINE]
+CFLAGS = -Ilib/ldb -Ilib/ldb/include
+OBJ_FILES= \
+               cmdline.o
+PUBLIC_DEPENDENCIES = LIBLDB LIBPOPT
+PRIVATE_DEPENDENCIES = LIBSAMBA-UTIL POPT_SAMBA POPT_CREDENTIALS gensec
+# End SUBSYSTEM LIBLDB_CMDLINE
+################################################
+
+################################################
+# Start BINARY ldbadd
+[BINARY::ldbadd]
+INSTALLDIR = BINDIR
+OBJ_FILES = \
+               ldbadd.o
+PRIVATE_DEPENDENCIES = \
+               LIBLDB_CMDLINE LIBCLI_RESOLVE
+MANPAGE = ../man/ldbadd.1
+# End BINARY ldbadd
+################################################
+
+################################################
+# Start BINARY ldbdel
+[BINARY::ldbdel]
+INSTALLDIR = BINDIR
+OBJ_FILES= \
+               ldbdel.o
+PRIVATE_DEPENDENCIES = \
+               LIBLDB_CMDLINE
+MANPAGE = ../man/ldbdel.1
+# End BINARY ldbdel
+################################################
+
+################################################
+# Start BINARY ldbmodify
+[BINARY::ldbmodify]
+INSTALLDIR = BINDIR
+OBJ_FILES= \
+               ldbmodify.o
+PRIVATE_DEPENDENCIES = \
+               LIBLDB_CMDLINE
+MANPAGE = ../man/ldbmodify.1
+# End BINARY ldbmodify
+################################################
+
+################################################
+# Start BINARY ldbsearch
+[BINARY::ldbsearch]
+INSTALLDIR = BINDIR
+OBJ_FILES= \
+               ldbsearch.o
+PRIVATE_DEPENDENCIES = \
+               LIBLDB_CMDLINE 
+MANPAGE = ../man/ldbsearch.1
+# End BINARY ldbsearch
+################################################
+
+################################################
+# Start BINARY ldbedit
+[BINARY::ldbedit]
+INSTALLDIR = BINDIR
+OBJ_FILES= \
+               ldbedit.o
+PRIVATE_DEPENDENCIES = \
+               LIBLDB_CMDLINE
+MANPAGE = ../man/ldbedit.1
+# End BINARY ldbedit
+################################################
+
+################################################
+# Start BINARY ldbrename
+[BINARY::ldbrename]
+INSTALLDIR = BINDIR
+OBJ_FILES= \
+               ldbrename.o
+PRIVATE_DEPENDENCIES = \
+               LIBLDB_CMDLINE
+MANPAGE = ../man/ldbrename.1
+# End BINARY ldbrename
+################################################
+
+
index bcfc1f1ab4afda2d232269f5abde39777bc81572..989e5d4255de1c72088351f9aa1306d8621e45ca 100644 (file)
@@ -76,13 +76,12 @@ struct irpc_request {
        } async;
 };
 
+struct loadparm_context;
+
 typedef void (*msg_callback_t)(struct messaging_context *msg, void *private, 
                               uint32_t msg_type, 
                               struct server_id server_id, DATA_BLOB *data);
 
-struct messaging_context *messaging_init(TALLOC_CTX *mem_ctx, 
-                                        struct server_id server_id, 
-                                        struct event_context *ev);
 NTSTATUS messaging_send(struct messaging_context *msg, struct server_id server, 
                        uint32_t msg_type, DATA_BLOB *data);
 NTSTATUS messaging_register(struct messaging_context *msg, void *private,
@@ -91,9 +90,11 @@ NTSTATUS messaging_register(struct messaging_context *msg, void *private,
 NTSTATUS messaging_register_tmp(struct messaging_context *msg, void *private,
                                msg_callback_t fn, uint32_t *msg_type);
 struct messaging_context *messaging_init(TALLOC_CTX *mem_ctx, 
+                                        const char *dir,
                                         struct server_id server_id, 
                                         struct event_context *ev);
 struct messaging_context *messaging_client_init(TALLOC_CTX *mem_ctx, 
+                                        const char *dir,
                                         struct event_context *ev);
 NTSTATUS messaging_send_ptr(struct messaging_context *msg, struct server_id server, 
                            uint32_t msg_type, void *ptr);
index c4c0d0e05970192a58f1da83b45674d81ad1602e..36cf9aa60948d3953bee4f037bd7d5796983eafd 100644 (file)
@@ -34,6 +34,7 @@
 #include "lib/util/util_tdb.h"
 #include "lib/util/util_tdb.h"
 #include "cluster/cluster.h"
+#include "param/param.h"
 
 /* change the message version with any incompatible changes in the protocol */
 #define MESSAGING_VERSION 1
@@ -136,7 +137,8 @@ static void messaging_dispatch(struct messaging_context *msg, struct messaging_r
 
        /* temporary IDs use an idtree, the rest use a array of pointers */
        if (rec->header->msg_type >= MSG_TMP_BASE) {
-               d = idr_find(msg->dispatch_tree, rec->header->msg_type);
+               d = (struct dispatch_fn *)idr_find(msg->dispatch_tree, 
+                                                  rec->header->msg_type);
        } else if (rec->header->msg_type < msg->num_types) {
                d = msg->dispatch[rec->header->msg_type];
        } else {
@@ -416,7 +418,8 @@ void messaging_deregister(struct messaging_context *msg, uint32_t msg_type, void
        struct dispatch_fn *d, *next;
 
        if (msg_type >= msg->num_types) {
-               d = idr_find(msg->dispatch_tree, msg_type);
+               d = (struct dispatch_fn *)idr_find(msg->dispatch_tree, 
+                                                  msg_type);
                if (!d) return;
                idr_remove(msg->dispatch_tree, msg_type);
                talloc_free(d);
@@ -504,7 +507,7 @@ NTSTATUS messaging_send_ptr(struct messaging_context *msg, struct server_id serv
 {
        DATA_BLOB blob;
 
-       blob.data = (void *)&ptr;
+       blob.data = (uint8_t *)&ptr;
        blob.length = sizeof(void *);
 
        return messaging_send(msg, server, msg_type, &blob);
@@ -527,13 +530,13 @@ static int messaging_destructor(struct messaging_context *msg)
   create the listening socket and setup the dispatcher
 */
 struct messaging_context *messaging_init(TALLOC_CTX *mem_ctx, 
+                                        const char *dir,
                                         struct server_id server_id, 
                                         struct event_context *ev)
 {
        struct messaging_context *msg;
        NTSTATUS status;
        struct socket_address *path;
-       char *dir;
 
        msg = talloc_zero(mem_ctx, struct messaging_context);
        if (msg == NULL) {
@@ -552,11 +555,9 @@ struct messaging_context *messaging_init(TALLOC_CTX *mem_ctx,
        }
 
        /* create the messaging directory if needed */
-       dir = smbd_tmp_path(msg, "messaging");
        mkdir(dir, 0700);
-       talloc_free(dir);
 
-       msg->base_path     = smbd_tmp_path(msg, "messaging");
+       msg->base_path     = talloc_reference(msg, dir);
        msg->path          = messaging_path(msg, server_id);
        msg->server_id     = server_id;
        msg->idr           = idr_init(msg);
@@ -607,12 +608,13 @@ struct messaging_context *messaging_init(TALLOC_CTX *mem_ctx,
    A hack, for the short term until we get 'client only' messaging in place 
 */
 struct messaging_context *messaging_client_init(TALLOC_CTX *mem_ctx, 
+                                               const char *dir,
                                                struct event_context *ev)
 {
        struct server_id id;
        ZERO_STRUCT(id);
        id.id = random() % 0x10000000;
-       return messaging_init(mem_ctx, id, ev);
+       return messaging_init(mem_ctx, dir, id, ev);
 }
 /*
   a list of registered irpc server functions
@@ -665,7 +667,7 @@ static void irpc_handler_reply(struct messaging_context *msg_ctx, struct irpc_me
 {
        struct irpc_request *irpc;
 
-       irpc = idr_find(msg_ctx->idr, m->header.callid);
+       irpc = (struct irpc_request *)idr_find(msg_ctx->idr, m->header.callid);
        if (irpc == NULL) return;
 
        /* parse the reply data */
index d599c929155b939ffe9929da0b3f2fa155b014bd..fd4c1021424574e8a6f4e3c02d2cb09c67471adb 100644 (file)
@@ -909,7 +909,7 @@ YY_RULE_SETUP
 case 13:
 YY_RULE_SETUP
 #line 61 "lex.l"
-{ return MACHINE; }
+{ return CLASS_MACHINE; }
        YY_BREAK
 case 14:
 YY_RULE_SETUP
@@ -964,7 +964,7 @@ YY_RULE_SETUP
 case 24:
 YY_RULE_SETUP
 #line 72 "lex.l"
-{ return USER; }
+{ return CLASS_USER; }
        YY_BREAK
 case 25:
 YY_RULE_SETUP
index 1157bca2f7df942c66627f357c727328717420f8..199cd228c0ebf0c3a20b845d40304b67945f53e7 100644 (file)
@@ -58,7 +58,7 @@ END { return END; }
 EXPLAIN { return EXPLAIN; }
 ITEMLIST { return ITEMLIST; }
 KEYNAME { return KEYNAME; }
-MACHINE { return MACHINE; }
+MACHINE { return CLASS_MACHINE; }
 MIN { return MINIMUM; }
 MAX { return MAXIMUM; }
 NAME { return NAME; }
@@ -69,7 +69,7 @@ REQUIRED { return REQUIRED; }
 SPIN { return SPIN; }
 SUPPORTED { return SUPPORTED; }
 TEXT { return TEXT; }
-USER { return USER; }
+USER { return CLASS_USER; }
 VALUE { return VALUE; }
 VALUENAME { return VALUENAME; }
 VALUEON { return VALUEON; }
index 91cda1b262e8a733c468425bb3e58d5dcb2c7ac6..c68e2db814e3cf40aa51fea011addb0aae5e06ab 100644 (file)
@@ -68,8 +68,8 @@
    enum yytokentype {
      CATEGORY = 258,
      CLASS = 259,
-     USER = 260,
-     MACHINE = 261,
+     CLASS_USER = 260,
+     CLASS_MACHINE = 261,
      POLICY = 262,
      KEYNAME = 263,
      EXPLAIN = 264,
 /* Tokens.  */
 #define CATEGORY 258
 #define CLASS 259
-#define USER 260
-#define MACHINE 261
+#define CLASS_USER 260
+#define CLASS_MACHINE 261
 #define POLICY 262
 #define KEYNAME 263
 #define EXPLAIN 264
@@ -520,19 +520,19 @@ static const yytype_uint8 yyrline[] =
    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
 static const char *const yytname[] =
 {
-  "$end", "error", "$undefined", "CATEGORY", "CLASS", "USER", "MACHINE",
-  "POLICY", "KEYNAME", "EXPLAIN", "VALUENAME", "VALUEON", "VALUEOFF",
-  "PART", "ITEMLIST", "NAME", "VALUE", "NUMERIC", "EDITTEXT", "TEXT",
-  "DROPDOWNLIST", "CHECKBOX", "MINIMUM", "MAXIMUM", "DEFAULT", "END",
-  "ACTIONLIST", "DEL", "SUPPORTED", "LITERAL", "INTEGER", "LOOKUPLITERAL",
-  "CLIENTEXT", "REQUIRED", "NOSORT", "SPIN", "EQUALS", "STRINGSSECTION",
-  "$accept", "admfile", "classes", "class", "classvalue", "categories",
-  "string", "category", "categoryitem", "categoryitems", "policy",
-  "policyitem", "policyitems", "valuetype", "part", "spin", "partitem",
-  "partitems", "min", "max", "defaultvalue", "explain", "value", "valueon",
-  "valueoff", "valuename", "keyname", "itemlist", "itemname", "itemvalue",
-  "item", "items", "supported", "actionlist", "actions", "variable",
-  "variables", "strings", 0
+  "$end", "error", "$undefined", "CATEGORY", "CLASS", "CLASS_USER",
+  "CLASS_MACHINE", "POLICY", "KEYNAME", "EXPLAIN", "VALUENAME", "VALUEON",
+  "VALUEOFF", "PART", "ITEMLIST", "NAME", "VALUE", "NUMERIC", "EDITTEXT",
+  "TEXT", "DROPDOWNLIST", "CHECKBOX", "MINIMUM", "MAXIMUM", "DEFAULT",
+  "END", "ACTIONLIST", "DEL", "SUPPORTED", "LITERAL", "INTEGER",
+  "LOOKUPLITERAL", "CLIENTEXT", "REQUIRED", "NOSORT", "SPIN", "EQUALS",
+  "STRINGSSECTION", "$accept", "admfile", "classes", "class", "classvalue",
+  "categories", "string", "category", "categoryitem", "categoryitems",
+  "policy", "policyitem", "policyitems", "valuetype", "part", "spin",
+  "partitem", "partitems", "min", "max", "defaultvalue", "explain",
+  "value", "valueon", "valueoff", "valuename", "keyname", "itemlist",
+  "itemname", "itemvalue", "item", "items", "supported", "actionlist",
+  "actions", "variable", "variables", "strings", 0
 };
 #endif
 
index ba134db19d585562bd71895c7bcd60a6eb4205b2..372e4b968077f244caf3a98ed8816f5ea0553cb2 100644 (file)
@@ -41,8 +41,8 @@
    enum yytokentype {
      CATEGORY = 258,
      CLASS = 259,
-     USER = 260,
-     MACHINE = 261,
+     CLASS_USER = 260,
+     CLASS_MACHINE = 261,
      POLICY = 262,
      KEYNAME = 263,
      EXPLAIN = 264,
@@ -79,8 +79,8 @@
 /* Tokens.  */
 #define CATEGORY 258
 #define CLASS 259
-#define USER 260
-#define MACHINE 261
+#define CLASS_USER 260
+#define CLASS_MACHINE 261
 #define POLICY 262
 #define KEYNAME 263
 #define EXPLAIN 264
index 450625f58ad027bd6cf228c76a849eaf9492b417..1dc21cf1d31506537bb8acddb506c9b4e57fa842 100644 (file)
@@ -37,8 +37,8 @@ extern int yylex (void);
 
 %token CATEGORY
 %token CLASS
-%token USER
-%token MACHINE
+%token CLASS_USER
+%token CLASS_MACHINE
 %token POLICY
 %token KEYNAME
 %token EXPLAIN
@@ -73,7 +73,7 @@ admfile: classes strings;
 classes: /* empty */ | class classes;
 
 class: CLASS classvalue categories;
-classvalue: USER|MACHINE;
+classvalue: CLASS_USER|CLASS_MACHINE;
 
 categories: /* empty */ | category categories;
 
index 146c5197fd76ff0aef8d645ed1a5f61b203a378b..532770bcaf04fb23e2b4d0d6203a4d3d55c2c7af 100644 (file)
@@ -1,18 +1,18 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
    Registry interface
-   Copyright (C) Jelmer Vernooij                                         2004-2007.
-   
+   Copyright (C) Jelmer Vernooij                                 2004-2007.
+
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program 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 General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
@@ -29,11 +29,11 @@ struct dir_key {
 
 static struct hive_operations reg_backend_dir;
 
-static WERROR reg_dir_add_key(TALLOC_CTX *mem_ctx, 
-                                                         const struct hive_key *parent, 
-                                                         const char *name, const char *classname,
-                                                         struct security_descriptor *desc, 
-                                                         struct hive_key **result)
+static WERROR reg_dir_add_key(TALLOC_CTX *mem_ctx,
+                             const struct hive_key *parent,
+                             const char *name, const char *classname,
+                             struct security_descriptor *desc,
+                             struct hive_key **result)
 {
        struct dir_key *dk = talloc_get_type(parent, struct dir_key);
        char *path;
@@ -61,8 +61,8 @@ static WERROR reg_dir_del_key(const struct hive_key *k, const char *name)
        char *child = talloc_asprintf(NULL, "%s/%s", dk->path, name);
        WERROR ret;
 
-       if (rmdir(child) == 0) 
-               ret = WERR_OK; 
+       if (rmdir(child) == 0)
+               ret = WERR_OK;
        else if (errno == ENOENT)
                ret = WERR_NOT_FOUND;
        else
@@ -73,25 +73,26 @@ static WERROR reg_dir_del_key(const struct hive_key *k, const char *name)
        return ret;
 }
 
-static WERROR reg_dir_open_key(TALLOC_CTX *mem_ctx, 
-                                                          const struct hive_key *parent, 
-                                                          const char *name, struct hive_key **subkey)
+static WERROR reg_dir_open_key(TALLOC_CTX *mem_ctx,
+                              const struct hive_key *parent,
+                              const char *name, struct hive_key **subkey)
 {
        DIR *d;
        char *fullpath;
        const struct dir_key *p = talloc_get_type(parent, struct dir_key);
        struct dir_key *ret;
-       
+
        if (name == NULL) {
                DEBUG(0, ("NULL pointer passed as directory name!"));
                return WERR_INVALID_PARAM;
        }
-       
+
        fullpath = talloc_asprintf(mem_ctx, "%s/%s", p->path, name);
-       
+
        d = opendir(fullpath);
        if (d == NULL) {
-               DEBUG(3,("Unable to open '%s': %s\n", fullpath, strerror(errno)));
+               DEBUG(3,("Unable to open '%s': %s\n", fullpath,
+                       strerror(errno)));
                return WERR_BADFILE;
        }
        closedir(d);
@@ -102,11 +103,11 @@ static WERROR reg_dir_open_key(TALLOC_CTX *mem_ctx,
        return WERR_OK;
 }
 
-static WERROR reg_dir_key_by_index(TALLOC_CTX *mem_ctx, 
-                                                                  const struct hive_key *k, uint32_t idx, 
-                                                                  const char **name,
-                                                                  const char **classname,
-                                                                  NTTIME *last_mod_time)
+static WERROR reg_dir_key_by_index(TALLOC_CTX *mem_ctx,
+                                  const struct hive_key *k, uint32_t idx,
+                                  const char **name,
+                                  const char **classname,
+                                  NTTIME *last_mod_time)
 {
        struct dirent *e;
        const struct dir_key *dk = talloc_get_type(k, struct dir_key);
@@ -115,14 +116,14 @@ static WERROR reg_dir_key_by_index(TALLOC_CTX *mem_ctx,
 
        d = opendir(dk->path);
 
-       if (d == NULL) 
+       if (d == NULL)
                return WERR_INVALID_PARAM;
-       
+
        while((e = readdir(d))) {
                if(!ISDOT(e->d_name) && !ISDOTDOT(e->d_name)) {
                        struct stat stbuf;
                        char *thispath;
-                       
+
                        /* Check if file is a directory */
                        asprintf(&thispath, "%s/%s", dk->path, e->d_name);
                        stat(thispath, &stbuf);
@@ -153,12 +154,12 @@ static WERROR reg_dir_key_by_index(TALLOC_CTX *mem_ctx,
        return WERR_NO_MORE_ITEMS;
 }
 
-WERROR reg_open_directory(TALLOC_CTX *parent_ctx, 
-                                                 const char *location, struct hive_key **key)
+WERROR reg_open_directory(TALLOC_CTX *parent_ctx,
+                         const char *location, struct hive_key **key)
 {
        struct dir_key *dk;
 
-       if (location == NULL) 
+       if (location == NULL)
                return WERR_INVALID_PARAM;
 
        dk = talloc(parent_ctx, struct dir_key);
@@ -168,8 +169,8 @@ WERROR reg_open_directory(TALLOC_CTX *parent_ctx,
        return WERR_OK;
 }
 
-WERROR reg_create_directory(TALLOC_CTX *parent_ctx, 
-                                                       const char *location, struct hive_key **key)
+WERROR reg_create_directory(TALLOC_CTX *parent_ctx,
+                           const char *location, struct hive_key **key)
 {
        if (mkdir(location, 0700) != 0) {
                *key = NULL;
@@ -179,11 +180,11 @@ WERROR reg_create_directory(TALLOC_CTX *parent_ctx,
        return reg_open_directory(parent_ctx, location, key);
 }
 
-static WERROR reg_dir_get_info(TALLOC_CTX *ctx, const struct hive_key *key, 
-                                                          const char **classname,
-                                                          uint32_t *num_subkeys,
-                                                          uint32_t *num_values,
-                                                          NTTIME *lastmod)
+static WERROR reg_dir_get_info(TALLOC_CTX *ctx, const struct hive_key *key,
+                              const char **classname,
+                              uint32_t *num_subkeys,
+                              uint32_t *num_values,
+                              NTTIME *lastmod)
 {
        DIR *d;
        const struct dir_key *dk = talloc_get_type(key, struct dir_key);
@@ -196,7 +197,7 @@ static WERROR reg_dir_get_info(TALLOC_CTX *ctx, const struct hive_key *key,
                *classname = NULL;
 
        d = opendir(dk->path);
-       if (d == NULL) 
+       if (d == NULL)
                return WERR_INVALID_PARAM;
 
        if (num_subkeys != NULL)
@@ -207,10 +208,12 @@ static WERROR reg_dir_get_info(TALLOC_CTX *ctx, const struct hive_key *key,
 
        while((e = readdir(d))) {
                if(!ISDOT(e->d_name) && !ISDOTDOT(e->d_name)) {
-                       char *path = talloc_asprintf(ctx, "%s/%s", dk->path, e->d_name);
+                       char *path = talloc_asprintf(ctx, "%s/%s",
+                                                    dk->path, e->d_name);
 
                        if (stat(path, &st) < 0) {
-                               DEBUG(0, ("Error statting %s: %s\n", path, strerror(errno)));
+                               DEBUG(0, ("Error statting %s: %s\n", path,
+                                       strerror(errno)));
                                continue;
                        }
 
@@ -231,8 +234,8 @@ static WERROR reg_dir_get_info(TALLOC_CTX *ctx, const struct hive_key *key,
        return WERR_OK;
 }
 
-static WERROR reg_dir_set_value (struct hive_key *key, const char *name, 
-                                                uint32_t type, const DATA_BLOB data)
+static WERROR reg_dir_set_value(struct hive_key *key, const char *name,
+                               uint32_t type, const DATA_BLOB data)
 {
        const struct dir_key *dk = talloc_get_type(key, struct dir_key);
        char *path = talloc_asprintf(dk, "%s/%s", dk->path, name);
@@ -245,9 +248,9 @@ static WERROR reg_dir_set_value (struct hive_key *key, const char *name,
        return WERR_OK;
 }
 
-static WERROR reg_dir_get_value (TALLOC_CTX *mem_ctx, 
-                                                                struct hive_key *key, const char *name, 
-                                                                uint32_t *type, DATA_BLOB *data)
+static WERROR reg_dir_get_value(TALLOC_CTX *mem_ctx,
+                               struct hive_key *key, const char *name,
+                               uint32_t *type, DATA_BLOB *data)
 {
        const struct dir_key *dk = talloc_get_type(key, struct dir_key);
        char *path = talloc_asprintf(mem_ctx, "%s/%s", dk->path, name);
@@ -256,7 +259,7 @@ static WERROR reg_dir_get_value (TALLOC_CTX *mem_ctx,
 
        contents = file_load(path, &size, mem_ctx);
        talloc_free(path);
-       if (contents == NULL) 
+       if (contents == NULL)
                return WERR_NOT_FOUND;
 
        if (type != NULL)
@@ -267,11 +270,11 @@ static WERROR reg_dir_get_value (TALLOC_CTX *mem_ctx,
 
        return WERR_OK;
 }
-       
-static WERROR reg_dir_enum_value (TALLOC_CTX *mem_ctx, 
-                                                                const struct hive_key *key, int idx, 
-                                                                const char **name, 
-                                                                uint32_t *type, DATA_BLOB *data)
+
+static WERROR reg_dir_enum_value(TALLOC_CTX *mem_ctx,
+                                const struct hive_key *key, int idx,
+                                const char **name,
+                                uint32_t *type, DATA_BLOB *data)
 {
        const struct dir_key *dk = talloc_get_type(key, struct dir_key);
        DIR *d;
@@ -280,19 +283,22 @@ static WERROR reg_dir_enum_value (TALLOC_CTX *mem_ctx,
 
        d = opendir(dk->path);
        if (d == NULL) {
-               DEBUG(3,("Unable to open '%s': %s\n", dk->path, strerror(errno)));
+               DEBUG(3,("Unable to open '%s': %s\n", dk->path,
+                       strerror(errno)));
                return WERR_BADFILE;
        }
 
        i = 0;
        while((e = readdir(d))) {
-               if (ISDOT(e->d_name) || ISDOTDOT(e->d_name)) 
+               if (ISDOT(e->d_name) || ISDOTDOT(e->d_name))
                        continue;
 
                if (i == idx) {
                        if (name != NULL)
                                *name = talloc_strdup(mem_ctx, e->d_name);
-                       W_ERROR_NOT_OK_RETURN(reg_dir_get_value(mem_ctx, key, *name, type, data));
+                       W_ERROR_NOT_OK_RETURN(reg_dir_get_value(mem_ctx, key,
+                                                               *name, type,
+                                                               data));
                        return WERR_OK;
                }
 
@@ -315,7 +321,7 @@ static WERROR reg_dir_del_value (struct hive_key *key, const char *name)
                return WERR_GENERAL_FAILURE;
        }
        talloc_free(path);
-               
+
        return WERR_OK;
 }
 
index 97ce883e66349164e556ad2495f533d3ab6129a5..16534aac9c5718bea51b2283f92c782d2ed27171 100644 (file)
@@ -1,19 +1,19 @@
 
-/* 
+/*
    Unix SMB/CIFS implementation.
    Registry hive interface
-   Copyright (C) Jelmer Vernooij                                         2003-2007.
-   
+   Copyright (C) Jelmer Vernooij                                 2003-2007.
+
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.
-   
+
    This program 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 General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 #include "system/filesys.h"
 
 /** Open a registry file/host/etc */
-_PUBLIC_ WERROR reg_open_hive(TALLOC_CTX *parent_ctx, const char *location, 
-                                                         struct auth_session_info *session_info, 
-                                                         struct cli_credentials *credentials, 
-                                                         struct hive_key **root)
+_PUBLIC_ WERROR reg_open_hive(TALLOC_CTX *parent_ctx, const char *location,
+                             struct auth_session_info *session_info,
+                             struct cli_credentials *credentials,
+                             struct hive_key **root)
 {
        int fd, num;
        char peek[20];
@@ -54,28 +54,33 @@ _PUBLIC_ WERROR reg_open_hive(TALLOC_CTX *parent_ctx, const char *location,
                return reg_open_regf_file(parent_ctx, location, root);
        } else if (!strncmp(peek, "TDB file", 8)) {
                close(fd);
-               return reg_open_ldb_file(parent_ctx, location, session_info, credentials, root);
+               return reg_open_ldb_file(parent_ctx, location, session_info,
+                                        credentials, root);
        }
 
        return WERR_BADFILE;
 }
 
-_PUBLIC_ WERROR hive_key_get_info(TALLOC_CTX *mem_ctx, const struct hive_key *key,
-                                                const char **classname, uint32_t *num_subkeys, 
-                                                uint32_t *num_values,
-                                                NTTIME *last_change_time)
+_PUBLIC_ WERROR hive_key_get_info(TALLOC_CTX *mem_ctx,
+                                 const struct hive_key *key,
+                                 const char **classname, uint32_t *num_subkeys,
+                                 uint32_t *num_values,
+                                 NTTIME *last_change_time)
 {
-       return key->ops->get_key_info(mem_ctx, key, classname, num_subkeys, 
-                                                                       num_values, last_change_time);
+       return key->ops->get_key_info(mem_ctx, key, classname, num_subkeys,
+                                     num_values, last_change_time);
 }
 
-_PUBLIC_ WERROR hive_key_add_name(TALLOC_CTX *ctx, const struct hive_key *parent_key,
-                                                const char *name, const char *classname, struct security_descriptor *desc,
-                                                struct hive_key **key)
+_PUBLIC_ WERROR hive_key_add_name(TALLOC_CTX *ctx,
+                                 const struct hive_key *parent_key,
+                                 const char *name, const char *classname,
+                                 struct security_descriptor *desc,
+                                 struct hive_key **key)
 {
        SMB_ASSERT(strchr(name, '\\') == NULL);
 
-       return parent_key->ops->add_key(ctx, parent_key, name, classname, desc, key);
+       return parent_key->ops->add_key(ctx, parent_key, name, classname,
+                                       desc, key);
 }
 
 _PUBLIC_ WERROR hive_key_del(const struct hive_key *key, const char *name)
@@ -84,20 +89,21 @@ _PUBLIC_ WERROR hive_key_del(const struct hive_key *key, const char *name)
 }
 
 _PUBLIC_ WERROR hive_get_key_by_name(TALLOC_CTX *mem_ctx,
-                                                          const struct hive_key *key, const char *name, 
-                                                          struct hive_key **subkey)
+                                    const struct hive_key *key,
+                                    const char *name,
+                                    struct hive_key **subkey)
 {
        return key->ops->get_key_by_name(mem_ctx, key, name, subkey);
 }
 
 WERROR hive_enum_key(TALLOC_CTX *mem_ctx,
-                                       const struct hive_key *key, uint32_t idx, 
-                                       const char **name,
-                                       const char **classname,
-                                       NTTIME *last_mod_time)
+                    const struct hive_key *key, uint32_t idx,
+                    const char **name,
+                    const char **classname,
+                    NTTIME *last_mod_time)
 {
-       return key->ops->enum_key(mem_ctx, key, idx, name, classname, 
-                                                         last_mod_time);
+       return key->ops->enum_key(mem_ctx, key, idx, name, classname,
+                                 last_mod_time);
 }
 
 WERROR hive_set_value(struct hive_key *key, const char *name, uint32_t type,
@@ -109,9 +115,9 @@ WERROR hive_set_value(struct hive_key *key, const char *name, uint32_t type,
        return key->ops->set_value(key, name, type, data);
 }
 
-WERROR hive_get_value (TALLOC_CTX *mem_ctx, 
-                                          struct hive_key *key, const char *name, 
-                                          uint32_t *type, DATA_BLOB *data)
+WERROR hive_get_value(TALLOC_CTX *mem_ctx,
+                     struct hive_key *key, const char *name,
+                     uint32_t *type, DATA_BLOB *data)
 {
        if (key->ops->get_value_by_name == NULL)
                return WERR_NOT_SUPPORTED;
@@ -119,9 +125,10 @@ WERROR hive_get_value (TALLOC_CTX *mem_ctx,
        return key->ops->get_value_by_name(mem_ctx, key, name, type, data);
 }
 
-WERROR hive_get_value_by_index (TALLOC_CTX *mem_ctx, 
-                                          struct hive_key *key, uint32_t idx, const char **name, 
-                                          uint32_t *type, DATA_BLOB *data)
+WERROR hive_get_value_by_index(TALLOC_CTX *mem_ctx,
+                              struct hive_key *key, uint32_t idx,
+                              const char **name,
+                              uint32_t *type, DATA_BLOB *data)
 {
        if (key->ops->enum_value == NULL)
                return WERR_NOT_SUPPORTED;
@@ -130,7 +137,7 @@ WERROR hive_get_value_by_index (TALLOC_CTX *mem_ctx,
 }
 
 
-WERROR hive_del_value (struct hive_key *key, const char *name)
+WERROR hive_del_value(struct hive_key *key, const char *name)
 {
        if (key->ops->delete_value == NULL)
                return WERR_NOT_SUPPORTED;
index 36491f149b8c1339113b9822aa9b5877961a2319..2f783dd15d4886275757029022c0ae849c265fcb 100644 (file)
@@ -1,18 +1,18 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
    Registry hive interface
    Copyright (C) Jelmer Vernooij                                         2003-2007.
-   
+
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.
-   
+
    This program 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 General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
 #include <talloc.h>
 #include "librpc/gen_ndr/security.h"
+#include "libcli/util/ntstatus.h"
 
 /**
- * This file contains the hive API. This API is generally used for 
- * reading a specific file that contains just one hive. 
+ * This file contains the hive API. This API is generally used for
+ * reading a specific file that contains just one hive.
  *
  * Good examples are .DAT (NTUSER.DAT) files.
  *
- * This API does not have any notification support (that 
- * should be provided by the registry implementation), nor 
+ * This API does not have any notification support (that
+ * should be provided by the registry implementation), nor
  * does it understand what predefined keys are.
  */
 
@@ -40,31 +41,32 @@ struct hive_key {
 };
 
 struct hive_operations {
-       const char *name;       
+       const char *name;
 
        /**
         * Open a specific subkey
         */
        WERROR (*enum_key) (TALLOC_CTX *mem_ctx,
-                                               const struct hive_key *key, uint32_t idx, 
-                                               const char **name,
-                                               const char **classname,
-                                               NTTIME *last_mod_time);
+                           const struct hive_key *key, uint32_t idx,
+                           const char **name,
+                           const char **classname,
+                           NTTIME *last_mod_time);
 
        /**
         * Open a subkey by name
         */
        WERROR (*get_key_by_name) (TALLOC_CTX *mem_ctx,
-                                                          const struct hive_key *key, const char *name, 
-                                                          struct hive_key **subkey);
-       
+                                  const struct hive_key *key, const char *name,
+                                  struct hive_key **subkey);
+
        /**
         * Add a new key.
         */
        WERROR (*add_key) (TALLOC_CTX *ctx,
-                                          const struct hive_key *parent_key, const char *name, 
-                                          const char *classname, struct security_descriptor *desc, 
-                                          struct hive_key **key);
+                          const struct hive_key *parent_key, const char *name,
+                          const char *classname,
+                          struct security_descriptor *desc,
+                          struct hive_key **key);
        /**
         * Remove an existing key.
         */
@@ -79,22 +81,22 @@ struct hive_operations {
         * Retrieve a registry value with a specific index.
         */
        WERROR (*enum_value) (TALLOC_CTX *mem_ctx,
-                                                 const struct hive_key *key, int idx, 
-                                                 const char **name, uint32_t *type, 
-                                                 DATA_BLOB *data);
+                             const struct hive_key *key, int idx,
+                             const char **name, uint32_t *type,
+                             DATA_BLOB *data);
 
        /**
         * Retrieve a registry value with the specified name
         */
-       WERROR (*get_value_by_name) (TALLOC_CTX *mem_ctx, 
-                                                                struct hive_key *key, const char *name, 
-                                                                uint32_t *type, DATA_BLOB *data);
-       
+       WERROR (*get_value_by_name) (TALLOC_CTX *mem_ctx,
+                                    struct hive_key *key, const char *name,
+                                    uint32_t *type, DATA_BLOB *data);
+
        /**
         * Set a value on the specified registry key.
         */
-       WERROR (*set_value) (struct hive_key *key, const char *name, 
-                                                uint32_t type, const DATA_BLOB data);
+       WERROR (*set_value) (struct hive_key *key, const char *name,
+                            uint32_t type, const DATA_BLOB data);
 
        /**
         * Remove a value.
@@ -106,91 +108,93 @@ struct hive_operations {
        /**
         * Change the security descriptor on a registry key.
         *
-        * This should return WERR_NOT_SUPPORTED if the underlying 
-        * format does not have a mechanism for storing 
+        * This should return WERR_NOT_SUPPORTED if the underlying
+        * format does not have a mechanism for storing
         * security descriptors.
         */
-       WERROR (*set_sec_desc) (struct hive_key *key, 
-                                                       const struct security_descriptor *desc);
+       WERROR (*set_sec_desc) (struct hive_key *key,
+                               const struct security_descriptor *desc);
 
        /**
         * Retrieve the security descriptor on a registry key.
         *
-        * This should return WERR_NOT_SUPPORTED if the underlying 
-        * format does not have a mechanism for storing 
+        * This should return WERR_NOT_SUPPORTED if the underlying
+        * format does not have a mechanism for storing
         * security descriptors.
         */
        WERROR (*get_sec_desc) (TALLOC_CTX *ctx,
-                                                       const struct hive_key *key, 
-                                                       struct security_descriptor **desc);
-       
+                               const struct hive_key *key,
+                               struct security_descriptor **desc);
+
        /**
         * Retrieve general information about a key.
         */
        WERROR (*get_key_info) (TALLOC_CTX *mem_ctx,
-                                                       const struct hive_key *key,
-                                                       const char **classname,
-                                                       uint32_t *num_subkeys,
-                                                       uint32_t *num_values,
-                                                       NTTIME *last_change_time);
+                               const struct hive_key *key,
+                               const char **classname,
+                               uint32_t *num_subkeys,
+                               uint32_t *num_values,
+                               NTTIME *last_change_time);
 };
 
 struct cli_credentials;
 struct auth_session_info;
 
-WERROR reg_open_hive(TALLOC_CTX *parent_ctx, const char *location, 
-                                                         struct auth_session_info *session_info, 
-                                                         struct cli_credentials *credentials, 
-                                                         struct hive_key **root);
+WERROR reg_open_hive(TALLOC_CTX *parent_ctx, const char *location,
+                    struct auth_session_info *session_info,
+                    struct cli_credentials *credentials,
+                    struct hive_key **root);
 WERROR hive_key_get_info(TALLOC_CTX *mem_ctx, const struct hive_key *key,
-                                                const char **classname, uint32_t *num_subkeys, 
-                                                uint32_t *num_values,
-                                                NTTIME *last_change_time);
+                        const char **classname, uint32_t *num_subkeys,
+                        uint32_t *num_values,
+                        NTTIME *last_change_time);
 WERROR hive_key_add_name(TALLOC_CTX *ctx, const struct hive_key *parent_key,
-                                                const char *name, const char *classname, struct security_descriptor *desc,
-                                                struct hive_key **key);
+                        const char *name, const char *classname,
+                        struct security_descriptor *desc,
+                        struct hive_key **key);
 WERROR hive_key_del(const struct hive_key *key, const char *name);
 WERROR hive_get_key_by_name(TALLOC_CTX *mem_ctx,
-                                                          const struct hive_key *key, const char *name, 
-                                                          struct hive_key **subkey);
+                           const struct hive_key *key, const char *name,
+                           struct hive_key **subkey);
 WERROR hive_enum_key(TALLOC_CTX *mem_ctx,
-                                       const struct hive_key *key, uint32_t idx, 
-                                       const char **name,
-                                       const char **classname,
-                                       NTTIME *last_mod_time);
+                    const struct hive_key *key, uint32_t idx,
+                    const char **name,
+                    const char **classname,
+                    NTTIME *last_mod_time);
 
-WERROR hive_set_value (struct hive_key *key, const char *name, 
-                                          uint32_t type, const DATA_BLOB data);
+WERROR hive_set_value(struct hive_key *key, const char *name,
+                     uint32_t type, const DATA_BLOB data);
 
-WERROR hive_get_value (TALLOC_CTX *mem_ctx, 
-                                          struct hive_key *key, const char *name, 
-                                          uint32_t *type, DATA_BLOB *data);
-WERROR hive_get_value_by_index (TALLOC_CTX *mem_ctx, 
-                                          struct hive_key *key, uint32_t idx, const char **name, 
-                                          uint32_t *type, DATA_BLOB *data);
+WERROR hive_get_value(TALLOC_CTX *mem_ctx,
+                     struct hive_key *key, const char *name,
+                     uint32_t *type, DATA_BLOB *data);
+WERROR hive_get_value_by_index(TALLOC_CTX *mem_ctx,
+                              struct hive_key *key, uint32_t idx,
+                              const char **name,
+                              uint32_t *type, DATA_BLOB *data);
 
-WERROR hive_del_value (struct hive_key *key, const char *name);
+WERROR hive_del_value(struct hive_key *key, const char *name);
 
 WERROR hive_key_flush(struct hive_key *key);
 
 
 /* Individual backends */
-WERROR reg_open_directory(TALLOC_CTX *parent_ctx, 
-                       const char *location, struct hive_key **key);
-WERROR reg_open_regf_file(TALLOC_CTX *parent_ctx, 
-                                                 const char *location, struct hive_key **key);
-WERROR reg_open_ldb_file(TALLOC_CTX *parent_ctx, const char *location, 
-                                                               struct auth_session_info *session_info,
-                                                               struct cli_credentials *credentials,
-                                                               struct hive_key **k);
-
-
-WERROR reg_create_directory(TALLOC_CTX *parent_ctx, 
-                       const char *location, struct hive_key **key);
-WERROR reg_create_regf_file(TALLOC_CTX *parent_ctx, 
-                                                        const char *location, 
-                                                        int major_version, 
-                                                        struct hive_key **key);
+WERROR reg_open_directory(TALLOC_CTX *parent_ctx,
+                         const char *location, struct hive_key **key);
+WERROR reg_open_regf_file(TALLOC_CTX *parent_ctx,
+                         const char *location, struct hive_key **key);
+WERROR reg_open_ldb_file(TALLOC_CTX *parent_ctx, const char *location,
+                        struct auth_session_info *session_info,
+                        struct cli_credentials *credentials,
+                        struct hive_key **k);
+
+
+WERROR reg_create_directory(TALLOC_CTX *parent_ctx,
+                           const char *location, struct hive_key **key);
+WERROR reg_create_regf_file(TALLOC_CTX *parent_ctx,
+                           const char *location,
+                           int major_version,
+                           struct hive_key **key);
 
 
 #endif /* __REGISTRY_HIVE_H__ */
index 4950e1dacda7f05520d499094544b341f0f5818a..8f60a55ae9bdc745214f297e7c256f915cab422b 100644 (file)
@@ -1,4 +1,4 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
    Transparent registry backend handling
    Copyright (C) Jelmer Vernooij                       2003-2007.
@@ -47,7 +47,7 @@ _PUBLIC_ const char *reg_get_predef_name(uint32_t hkey)
 {
        int i;
        for (i = 0; reg_predefined_keys[i].name; i++) {
-               if (reg_predefined_keys[i].handle == hkey) 
+               if (reg_predefined_keys[i].handle == hkey)
                        return reg_predefined_keys[i].name;
        }
 
@@ -55,40 +55,42 @@ _PUBLIC_ const char *reg_get_predef_name(uint32_t hkey)
 }
 
 /** Get predefined key by name. */
-_PUBLIC_ WERROR reg_get_predefined_key_by_name(struct registry_context *ctx, 
-                                                                                          const char *name, 
-                                                                                          struct registry_key **key)
+_PUBLIC_ WERROR reg_get_predefined_key_by_name(struct registry_context *ctx,
+                                              const char *name,
+                                              struct registry_key **key)
 {
        int i;
-       
+
        for (i = 0; reg_predefined_keys[i].name; i++) {
-               if (!strcasecmp(reg_predefined_keys[i].name, name)) 
-                       return reg_get_predefined_key(ctx, reg_predefined_keys[i].handle, 
-                                                                                 key);
+               if (!strcasecmp(reg_predefined_keys[i].name, name))
+                       return reg_get_predefined_key(ctx,
+                                                     reg_predefined_keys[i].handle,
+                                                     key);
        }
 
        DEBUG(1, ("No predefined key with name '%s'\n", name));
-       
+
        return WERR_BADFILE;
 }
 
 /** Get predefined key by id. */
-_PUBLIC_ WERROR reg_get_predefined_key(const struct registry_context *ctx, 
-                                                                          uint32_t hkey, struct registry_key **key)
+_PUBLIC_ WERROR reg_get_predefined_key(const struct registry_context *ctx,
+                                      uint32_t hkey, struct registry_key **key)
 {
        return ctx->ops->get_predefined_key(ctx, hkey, key);
 }
 
 /**
- * Open a key 
+ * Open a key
  * First tries to use the open_key function from the backend
- * then falls back to get_subkey_by_name and later get_subkey_by_index 
+ * then falls back to get_subkey_by_name and later get_subkey_by_index
  */
-_PUBLIC_ WERROR reg_open_key(TALLOC_CTX *mem_ctx, struct registry_key *parent, 
-                                                        const char *name, struct registry_key **result)
+_PUBLIC_ WERROR reg_open_key(TALLOC_CTX *mem_ctx, struct registry_key *parent,
+                            const char *name, struct registry_key **result)
 {
        if (parent == NULL) {
-               DEBUG(0, ("Invalid parent key specified for open of '%s'\n", name));
+               DEBUG(0, ("Invalid parent key specified for open of '%s'\n",
+                       name));
                return WERR_INVALID_PARAM;
        }
 
@@ -103,71 +105,71 @@ _PUBLIC_ WERROR reg_open_key(TALLOC_CTX *mem_ctx, struct registry_key *parent,
 /**
  * Get value by index
  */
-_PUBLIC_ WERROR reg_key_get_value_by_index(TALLOC_CTX *mem_ctx, 
-                                                                                  const struct registry_key *key, 
-                                                                                  uint32_t idx,
-                                                                                  const char **name,
-                                                                                  uint32_t *type,
-                                                                                  DATA_BLOB *data)
+_PUBLIC_ WERROR reg_key_get_value_by_index(TALLOC_CTX *mem_ctx,
+                                          const struct registry_key *key,
+                                          uint32_t idx, const char **name,
+                                          uint32_t *type, DATA_BLOB *data)
 {
-       if (key == NULL) 
+       if (key == NULL)
                return WERR_INVALID_PARAM;
 
        if (key->context->ops->enum_value == NULL)
                return WERR_NOT_SUPPORTED;
 
-       return key->context->ops->enum_value(mem_ctx, key, idx, name, type, 
-                                                                                                       data);
+       return key->context->ops->enum_value(mem_ctx, key, idx, name,
+                                            type, data);
 }
 
-/** 
+/**
  * Get the number of subkeys.
  */
-_PUBLIC_ WERROR reg_key_get_info(TALLOC_CTX *mem_ctx, 
-                                                                const struct registry_key *key, 
-                                                                const char **classname,
-                                                                uint32_t *num_subkeys,
-                                                                uint32_t *num_values,
-                                                                NTTIME *last_change_time)
+_PUBLIC_ WERROR reg_key_get_info(TALLOC_CTX *mem_ctx,
+                                const struct registry_key *key,
+                                const char **classname,
+                                uint32_t *num_subkeys,
+                                uint32_t *num_values,
+                                NTTIME *last_change_time)
 {
-       if (key == NULL) 
+       if (key == NULL)
                return WERR_INVALID_PARAM;
-       
+
        if (key->context->ops->get_key_info == NULL)
                return WERR_NOT_SUPPORTED;
 
        return key->context->ops->get_key_info(mem_ctx,
-                                                                                  key, classname, num_subkeys, 
-                                                                                  num_values, last_change_time);
+                                              key, classname, num_subkeys,
+                                              num_values, last_change_time);
 }
 
 /**
  * Get subkey by index.
  */
-_PUBLIC_ WERROR reg_key_get_subkey_by_index(TALLOC_CTX *mem_ctx, 
-               const struct registry_key *key, int idx, const char **name,
-               const char **keyclass, NTTIME *last_changed_time)
+_PUBLIC_ WERROR reg_key_get_subkey_by_index(TALLOC_CTX *mem_ctx,
+                                           const struct registry_key *key,
+                                           int idx, const char **name,
+                                           const char **keyclass,
+                                           NTTIME *last_changed_time)
 {
-       if (key == NULL) 
+       if (key == NULL)
                return WERR_INVALID_PARAM;
 
        if (key->context->ops->enum_key == NULL)
                return WERR_NOT_SUPPORTED;
 
        return key->context->ops->enum_key(mem_ctx, key, idx, name,
-                                                                                 keyclass, last_changed_time);
+                                          keyclass, last_changed_time);
 }
 
 /**
  * Get value by name.
  */
-_PUBLIC_ WERROR reg_key_get_value_by_name(TALLOC_CTX *mem_ctx, 
-                                                                                 const struct registry_key *key, 
-                                                                                 const char *name, 
-                                                                                 uint32_t *type,
-                                                                                 DATA_BLOB *data)
+_PUBLIC_ WERROR reg_key_get_value_by_name(TALLOC_CTX *mem_ctx,
+                                         const struct registry_key *key,
+                                         const char *name,
+                                         uint32_t *type,
+                                         DATA_BLOB *data)
 {
-       if (key == NULL) 
+       if (key == NULL)
                return WERR_INVALID_PARAM;
 
        if (key->context->ops->get_value == NULL)
@@ -181,49 +183,49 @@ _PUBLIC_ WERROR reg_key_get_value_by_name(TALLOC_CTX *mem_ctx,
  */
 _PUBLIC_ WERROR reg_key_del(struct registry_key *parent, const char *name)
 {
-       if (parent == NULL) 
+       if (parent == NULL)
                return WERR_INVALID_PARAM;
-       
+
        if (parent->context->ops->delete_key == NULL)
                return WERR_NOT_SUPPORTED;
-       
+
        return parent->context->ops->delete_key(parent, name);
 }
 
 /**
  * Add a key.
  */
-_PUBLIC_ WERROR reg_key_add_name(TALLOC_CTX *mem_ctx, 
-                                                                struct registry_key *parent, 
-                                                                const char *name, const char *key_class, 
-                                                                struct security_descriptor *desc, 
-                                                                struct registry_key **newkey)
+_PUBLIC_ WERROR reg_key_add_name(TALLOC_CTX *mem_ctx,
+                                struct registry_key *parent,
+                                const char *name, const char *key_class,
+                                struct security_descriptor *desc,
+                                struct registry_key **newkey)
 {
-       if (parent == NULL) 
+       if (parent == NULL)
                return WERR_INVALID_PARAM;
-       
+
        if (parent->context->ops->create_key == NULL) {
-               DEBUG(1, ("Backend '%s' doesn't support method add_key\n", 
+               DEBUG(1, ("Backend '%s' doesn't support method add_key\n",
                                  parent->context->ops->name));
                return WERR_NOT_SUPPORTED;
        }
 
-       return parent->context->ops->create_key(mem_ctx, parent, name, 
-                                                                                       key_class, desc, newkey);
+       return parent->context->ops->create_key(mem_ctx, parent, name,
+                                               key_class, desc, newkey);
 }
 
 /**
  * Set a value.
  */
-_PUBLIC_ WERROR reg_val_set(struct registry_key *key, const char *value, 
-                                                       uint32_t type, const DATA_BLOB data)
+_PUBLIC_ WERROR reg_val_set(struct registry_key *key, const char *value,
+                           uint32_t type, const DATA_BLOB data)
 {
        if (key == NULL)
                return WERR_INVALID_PARAM;
 
        /* A 'real' set function has preference */
        if (key->context->ops->set_value == NULL) {
-               DEBUG(1, ("Backend '%s' doesn't support method set_value\n", 
+               DEBUG(1, ("Backend '%s' doesn't support method set_value\n",
                                  key->context->ops->name));
                return WERR_NOT_SUPPORTED;
        }
@@ -234,15 +236,15 @@ _PUBLIC_ WERROR reg_val_set(struct registry_key *key, const char *value,
 /**
  * Get the security descriptor on a key.
  */
-_PUBLIC_ WERROR reg_get_sec_desc(TALLOC_CTX *ctx, 
-                                                                const struct registry_key *key, 
-                                                                struct security_descriptor **secdesc)
+_PUBLIC_ WERROR reg_get_sec_desc(TALLOC_CTX *ctx,
+                                const struct registry_key *key,
+                                struct security_descriptor **secdesc)
 {
        if (key == NULL)
                return WERR_INVALID_PARAM;
 
        /* A 'real' set function has preference */
-       if (key->context->ops->get_security == NULL)  
+       if (key->context->ops->get_security == NULL)
                return WERR_NOT_SUPPORTED;
 
        return key->context->ops->get_security(ctx, key, secdesc);
@@ -269,32 +271,32 @@ _PUBLIC_ WERROR reg_key_flush(struct registry_key *key)
 {
        if (key == NULL)
                return WERR_INVALID_PARAM;
-       
+
        if (key->context->ops->flush_key == NULL)
                return WERR_NOT_SUPPORTED;
 
        return key->context->ops->flush_key(key);
 }
 
-_PUBLIC_ WERROR reg_get_security(TALLOC_CTX *mem_ctx, 
-                                                                const struct registry_key *key, 
-                                                                struct security_descriptor **security)
+_PUBLIC_ WERROR reg_get_security(TALLOC_CTX *mem_ctx,
+                                const struct registry_key *key,
+                                struct security_descriptor **security)
 {
        if (key == NULL)
                return WERR_INVALID_PARAM;
-       
+
        if (key->context->ops->get_security == NULL)
                return WERR_NOT_SUPPORTED;
 
        return key->context->ops->get_security(mem_ctx, key, security);
 }
 
-_PUBLIC_ WERROR reg_set_security(struct registry_key *key, 
-                                                                struct security_descriptor *security)
+_PUBLIC_ WERROR reg_set_security(struct registry_key *key,
+                                struct security_descriptor *security)
 {
        if (key == NULL)
                return WERR_INVALID_PARAM;
-       
+
        if (key->context->ops->set_security == NULL)
                return WERR_NOT_SUPPORTED;
 
index 8a34fa7a540f96b606a67aae09e496313fa0d2b7..4a6ef65bc4da988282ca1cab73d52f402ce5470b 100644 (file)
@@ -1,18 +1,18 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
    Registry interface
    Copyright (C) Jelmer Vernooij  2004-2007.
-   
+
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program 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 General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 #include "lib/ldb/include/ldb_errors.h"
 #include "db_wrap.h"
 #include "librpc/gen_ndr/winreg.h"
+#include "param/param.h"
 
 static struct hive_operations reg_backend_ldb;
 
-struct ldb_key_data 
+struct ldb_key_data
 {
        struct hive_key key;
        struct ldb_context *ldb;
@@ -35,12 +36,15 @@ struct ldb_key_data
        int subkey_count, value_count;
 };
 
-static void reg_ldb_unpack_value(TALLOC_CTX *mem_ctx, struct ldb_message *msg, const char **name, 
-                                                                uint32_t *type, DATA_BLOB *data)
+static void reg_ldb_unpack_value(TALLOC_CTX *mem_ctx, struct ldb_message *msg,
+                                const char **name, uint32_t *type,
+                                DATA_BLOB *data)
 {
        const struct ldb_val *val;
        if (name != NULL)
-               *name = talloc_strdup(mem_ctx, ldb_msg_find_attr_as_string(msg, "value", NULL));
+               *name = talloc_strdup(mem_ctx,
+                                     ldb_msg_find_attr_as_string(msg, "value",
+                                     NULL));
 
        if (type != NULL)
                *type = ldb_msg_find_attr_as_uint(msg, "type", 0);
@@ -50,8 +54,9 @@ static void reg_ldb_unpack_value(TALLOC_CTX *mem_ctx, struct ldb_message *msg, c
        {
        case REG_SZ:
        case REG_EXPAND_SZ:
-               data->length = convert_string_talloc(mem_ctx, CH_UTF8, CH_UTF16, 
-                                                                                        val->data, val->length, (void **)&data->data);
+               data->length = convert_string_talloc(mem_ctx, CH_UTF8, CH_UTF16,
+                                                    val->data, val->length,
+                                                    (void **)&data->data);
                break;
 
        case REG_DWORD: {
@@ -66,9 +71,10 @@ static void reg_ldb_unpack_value(TALLOC_CTX *mem_ctx, struct ldb_message *msg, c
        }
 }
 
-static struct ldb_message *reg_ldb_pack_value(struct ldb_context *ctx, 
-                                               TALLOC_CTX *mem_ctx, const char *name, 
-                                               uint32_t type, DATA_BLOB data)
+static struct ldb_message *reg_ldb_pack_value(struct ldb_context *ctx,
+                                             TALLOC_CTX *mem_ctx,
+                                             const char *name,
+                                             uint32_t type, DATA_BLOB data)
 {
        struct ldb_val val;
        struct ldb_message *msg = talloc_zero(mem_ctx, struct ldb_message);
@@ -79,13 +85,17 @@ static struct ldb_message *reg_ldb_pack_value(struct ldb_context *ctx,
        switch (type) {
        case REG_SZ:
        case REG_EXPAND_SZ:
-               val.length = convert_string_talloc(mem_ctx, CH_UTF16, CH_UTF8, 
-                                                                                  (void *)data.data, data.length, (void **)&val.data);
+               val.length = convert_string_talloc(mem_ctx, CH_UTF16, CH_UTF8,
+                                                  (void *)data.data,
+                                                  data.length,
+                                                  (void **)&val.data);
                ldb_msg_add_value(msg, "data", &val, NULL);
                break;
 
        case REG_DWORD:
-               ldb_msg_add_string(msg, "data", talloc_asprintf(mem_ctx, "0x%x", IVAL(data.data, 0)));
+               ldb_msg_add_string(msg, "data",
+                                  talloc_asprintf(mem_ctx, "0x%x",
+                                                  IVAL(data.data, 0)));
                break;
        default:
                ldb_msg_add_value(msg, "data", &data, NULL);
@@ -93,7 +103,7 @@ static struct ldb_message *reg_ldb_pack_value(struct ldb_context *ctx,
 
 
        type_s = talloc_asprintf(mem_ctx, "%u", type);
-       ldb_msg_add_string(msg, "type", type_s); 
+       ldb_msg_add_string(msg, "type", type_s);
 
        return msg;
 }
@@ -102,20 +112,20 @@ static struct ldb_message *reg_ldb_pack_value(struct ldb_context *ctx,
 static int reg_close_ldb_key(struct ldb_key_data *key)
 {
        if (key->subkeys != NULL) {
-               talloc_free(key->subkeys); 
+               talloc_free(key->subkeys);
                key->subkeys = NULL;
        }
 
        if (key->values != NULL) {
-               talloc_free(key->values); 
+               talloc_free(key->values);
                key->values = NULL;
        }
        return 0;
 }
 
-static struct ldb_dn *reg_path_to_ldb(TALLOC_CTX *mem_ctx, 
-                                                                         const struct hive_key *from, 
-                                                                         const char *path, const char *add)
+static struct ldb_dn *reg_path_to_ldb(TALLOC_CTX *mem_ctx,
+                                     const struct hive_key *from,
+                                     const char *path, const char *add)
 {
        TALLOC_CTX *local_ctx;
        struct ldb_dn *ret;
@@ -172,7 +182,8 @@ static WERROR cache_subkeys(struct ldb_key_data *kd)
        ret = ldb_search(c, kd->dn, LDB_SCOPE_ONELEVEL, "(key=*)", NULL, &res);
 
        if (ret != LDB_SUCCESS) {
-               DEBUG(0, ("Error getting subkeys for '%s': %s\n", ldb_dn_get_linearized(kd->dn), ldb_errstring(c)));
+               DEBUG(0, ("Error getting subkeys for '%s': %s\n",
+                       ldb_dn_get_linearized(kd->dn), ldb_errstring(c)));
                return WERR_FOOBAR;
        }
 
@@ -189,10 +200,12 @@ static WERROR cache_values(struct ldb_key_data *kd)
        struct ldb_result *res;
        int ret;
 
-       ret = ldb_search(c, kd->dn, LDB_SCOPE_ONELEVEL, "(value=*)", NULL, &res);
+       ret = ldb_search(c, kd->dn, LDB_SCOPE_ONELEVEL,
+                        "(value=*)", NULL, &res);
 
        if (ret != LDB_SUCCESS) {
-               DEBUG(0, ("Error getting values for '%s': %s\n", ldb_dn_get_linearized(kd->dn), ldb_errstring(c)));
+               DEBUG(0, ("Error getting values for '%s': %s\n",
+                       ldb_dn_get_linearized(kd->dn), ldb_errstring(c)));
                return WERR_FOOBAR;
        }
        kd->value_count = res->count;
@@ -202,11 +215,11 @@ static WERROR cache_values(struct ldb_key_data *kd)
 }
 
 
-static WERROR ldb_get_subkey_by_id(TALLOC_CTX *mem_ctx, 
-                                                  const struct hive_key *k, uint32_t idx, 
-                                                  const char **name,
-                                                  const char **classname,
-                                                  NTTIME *last_mod_time)
+static WERROR ldb_get_subkey_by_id(TALLOC_CTX *mem_ctx,
+                                  const struct hive_key *k, uint32_t idx,
+                                  const char **name,
+                                  const char **classname,
+                                  NTTIME *last_mod_time)
 {
        struct ldb_message_element *el;
        struct ldb_key_data *kd = talloc_get_type(k, struct ldb_key_data);
@@ -214,21 +227,21 @@ static WERROR ldb_get_subkey_by_id(TALLOC_CTX *mem_ctx,
        /* Do a search if necessary */
        if (kd->subkeys == NULL) {
                W_ERROR_NOT_OK_RETURN(cache_subkeys(kd));
-       } 
+       }
 
-       if (idx >= kd->subkey_count) 
+       if (idx >= kd->subkey_count)
                return WERR_NO_MORE_ITEMS;
 
        el = ldb_msg_find_element(kd->subkeys[idx], "key");
        SMB_ASSERT(el != NULL);
        SMB_ASSERT(el->num_values != 0);
-       
+
        if (name != NULL)
                *name = talloc_strdup(mem_ctx, (char *)el->values[0].data);
 
        if (classname != NULL)
                *classname = NULL; /* TODO: Store properly */
-       
+
        if (last_mod_time != NULL)
                *last_mod_time = 0; /* TODO: we need to add this to the
                                                ldb backend properly */
@@ -236,8 +249,9 @@ static WERROR ldb_get_subkey_by_id(TALLOC_CTX *mem_ctx,
        return WERR_OK;
 }
 
-static WERROR ldb_get_value_by_id(TALLOC_CTX *mem_ctx, const struct hive_key *k, int idx, 
-                                                                 const char **name, uint32_t *data_type, DATA_BLOB *data)
+static WERROR ldb_get_value_by_id(TALLOC_CTX *mem_ctx, const struct hive_key *k,
+                                 int idx, const char **name,
+                                 uint32_t *data_type, DATA_BLOB *data)
 {
        struct ldb_key_data *kd = talloc_get_type(k, struct ldb_key_data);
 
@@ -246,16 +260,18 @@ static WERROR ldb_get_value_by_id(TALLOC_CTX *mem_ctx, const struct hive_key *k,
                W_ERROR_NOT_OK_RETURN(cache_values(kd));
        }
 
-       if(idx >= kd->value_count) return WERR_NO_MORE_ITEMS;
+       if (idx >= kd->value_count)
+               return WERR_NO_MORE_ITEMS;
 
-       reg_ldb_unpack_value(mem_ctx, kd->values[idx], 
-                                                name, data_type, data);
+       reg_ldb_unpack_value(mem_ctx, kd->values[idx],
+                            name, data_type, data);
 
        return WERR_OK;
 }
 
-static WERROR ldb_get_value(TALLOC_CTX *mem_ctx, struct hive_key *k, 
-                                       const char *name, uint32_t *data_type, DATA_BLOB *data)
+static WERROR ldb_get_value(TALLOC_CTX *mem_ctx, struct hive_key *k,
+                           const char *name, uint32_t *data_type,
+                           DATA_BLOB *data)
 {
        struct ldb_key_data *kd = talloc_get_type(k, struct ldb_key_data);
        struct ldb_context *c = kd->ldb;
@@ -268,7 +284,8 @@ static WERROR ldb_get_value(TALLOC_CTX *mem_ctx, struct hive_key *k,
        talloc_free(query);
 
        if (ret != LDB_SUCCESS) {
-               DEBUG(0, ("Error getting values for '%s': %s\n", ldb_dn_get_linearized(kd->dn), ldb_errstring(c)));
+               DEBUG(0, ("Error getting values for '%s': %s\n",
+                       ldb_dn_get_linearized(kd->dn), ldb_errstring(c)));
                return WERR_FOOBAR;
        }
 
@@ -280,8 +297,8 @@ static WERROR ldb_get_value(TALLOC_CTX *mem_ctx, struct hive_key *k,
        return WERR_OK;
 }
 
-static WERROR ldb_open_key(TALLOC_CTX *mem_ctx, const struct hive_key *h, 
-                                                  const char *name, struct hive_key **key)
+static WERROR ldb_open_key(TALLOC_CTX *mem_ctx, const struct hive_key *h,
+                          const char *name, struct hive_key **key)
 {
        struct ldb_result *res;
        struct ldb_dn *ldap_path;
@@ -295,11 +312,12 @@ static WERROR ldb_open_key(TALLOC_CTX *mem_ctx, const struct hive_key *h,
        ret = ldb_search(c, ldap_path, LDB_SCOPE_BASE, "(key=*)", NULL, &res);
 
        if (ret != LDB_SUCCESS) {
-               DEBUG(3, ("Error opening key '%s': %s\n", 
-                                 ldb_dn_get_linearized(ldap_path), ldb_errstring(c)));
+               DEBUG(3, ("Error opening key '%s': %s\n",
+                       ldb_dn_get_linearized(ldap_path), ldb_errstring(c)));
                return WERR_FOOBAR;
        } else if (res->count == 0) {
-               DEBUG(3, ("Key '%s' not found\n", ldb_dn_get_linearized(ldap_path)));
+               DEBUG(3, ("Key '%s' not found\n",
+                       ldb_dn_get_linearized(ldap_path)));
                talloc_free(res);
                return WERR_NOT_FOUND;
        }
@@ -307,7 +325,7 @@ static WERROR ldb_open_key(TALLOC_CTX *mem_ctx, const struct hive_key *h,
        newkd = talloc_zero(mem_ctx, struct ldb_key_data);
        newkd->key.ops = &reg_backend_ldb;
        newkd->ldb = talloc_reference(newkd, kd->ldb);
-       newkd->dn = ldb_dn_copy(mem_ctx, res->msgs[0]->dn); 
+       newkd->dn = ldb_dn_copy(mem_ctx, res->msgs[0]->dn);
 
        *key = (struct hive_key *)newkd;
 
@@ -316,19 +334,19 @@ static WERROR ldb_open_key(TALLOC_CTX *mem_ctx, const struct hive_key *h,
        return WERR_OK;
 }
 
-WERROR reg_open_ldb_file(TALLOC_CTX *parent_ctx, const char *location, 
-                                                               struct auth_session_info *session_info,
-                                                               struct cli_credentials *credentials,
-                                                               struct hive_key **k)
+WERROR reg_open_ldb_file(TALLOC_CTX *parent_ctx, const char *location,
+                        struct auth_session_info *session_info,
+                        struct cli_credentials *credentials,
+                        struct hive_key **k)
 {
        struct ldb_key_data *kd;
        struct ldb_context *wrap;
 
-       if (location == NULL) 
+       if (location == NULL)
                return WERR_INVALID_PARAM;
 
-       wrap = ldb_wrap_connect(parent_ctx, location, session_info, 
-                                                       credentials, 0, NULL);
+       wrap = ldb_wrap_connect(parent_ctx, global_loadparm,
+                               location, session_info, credentials, 0, NULL);
 
        if (wrap == NULL) {
                DEBUG(1, (__FILE__": unable to connect\n"));
@@ -348,10 +366,10 @@ WERROR reg_open_ldb_file(TALLOC_CTX *parent_ctx, const char *location,
        return WERR_OK;
 }
 
-static WERROR ldb_add_key (TALLOC_CTX *mem_ctx, const struct hive_key *parent, 
-                                                  const char *name, const char *classname,
-                                                  struct security_descriptor *sd, 
-                                                  struct hive_key **newkey)
+static WERROR ldb_add_key(TALLOC_CTX *mem_ctx, const struct hive_key *parent,
+                         const char *name, const char *classname,
+                         struct security_descriptor *sd,
+                         struct hive_key **newkey)
 {
        const struct ldb_key_data *parentkd = (const struct ldb_key_data *)parent;
        struct ldb_message *msg;
@@ -364,13 +382,14 @@ static WERROR ldb_add_key (TALLOC_CTX *mem_ctx, const struct hive_key *parent,
 
        ldb_msg_add_string(msg, "key", talloc_strdup(mem_ctx, name));
        if (classname != NULL)
-               ldb_msg_add_string(msg, "classname", talloc_strdup(mem_ctx, classname));
+               ldb_msg_add_string(msg, "classname",
+                                  talloc_strdup(mem_ctx, classname));
 
        ret = ldb_add(parentkd->ldb, msg);
        if (ret < 0) {
                DEBUG(1, ("ldb_msg_add: %s\n", ldb_errstring(parentkd->ldb)));
                return WERR_FOOBAR;
-       } 
+       }
 
        DEBUG(2, ("key added: %s\n", ldb_dn_get_linearized(msg->dn)));
 
@@ -384,7 +403,7 @@ static WERROR ldb_add_key (TALLOC_CTX *mem_ctx, const struct hive_key *parent,
        return WERR_OK;
 }
 
-static WERROR ldb_del_key (const struct hive_key *key, const char *child)
+static WERROR ldb_del_key(const struct hive_key *key, const char *child)
 {
        int ret;
        struct ldb_key_data *parentkd = talloc_get_type(key, struct ldb_key_data);
@@ -430,9 +449,9 @@ static WERROR ldb_del_value (struct hive_key *key, const char *child)
        return WERR_OK;
 }
 
-static WERROR ldb_set_value(struct hive_key *parent, 
-                                                       const char *name, uint32_t type, 
-                                                       const DATA_BLOB data)
+static WERROR ldb_set_value(struct hive_key *parent,
+                           const char *name, uint32_t type,
+                           const DATA_BLOB data)
 {
        struct ldb_message *msg;
        struct ldb_key_data *kd = talloc_get_type(parent, struct ldb_key_data);
@@ -453,17 +472,17 @@ static WERROR ldb_set_value(struct hive_key *parent,
                        return WERR_FOOBAR;
                }
        }
-       
+
        talloc_free(mem_ctx);
        return WERR_OK;
 }
 
-static WERROR ldb_get_key_info(TALLOC_CTX *mem_ctx, 
-                                                          const struct hive_key *key,
-                                                          const char **classname, 
-                                                          uint32_t *num_subkeys,
-                                                          uint32_t *num_values,
-                                                          NTTIME *last_change_time)
+static WERROR ldb_get_key_info(TALLOC_CTX *mem_ctx,
+                              const struct hive_key *key,
+                              const char **classname,
+                              uint32_t *num_subkeys,
+                              uint32_t *num_values,
+                              NTTIME *last_change_time)
 {
        struct ldb_key_data *kd = talloc_get_type(key, struct ldb_key_data);
 
index aefb11bde20b70164003c69ee4f66bccd88331a8..b54f0cf30adae906ade88677aa305dc0165e77fe 100644 (file)
@@ -1,4 +1,4 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
    Transparent registry backend handling
    Copyright (C) Jelmer Vernooij                       2003-2007.
@@ -38,7 +38,7 @@ struct registry_local {
                struct mountpoint *prev, *next;
        } *mountpoints;
 
-       struct auth_session_info *session_info; 
+       struct auth_session_info *session_info;
        struct cli_credentials *credentials;
 };
 
@@ -50,9 +50,9 @@ struct local_key {
 
 
 struct registry_key *reg_import_hive_key(struct registry_context *ctx,
-                                                                            struct hive_key *hive, 
-                                                                                uint32_t predefined_key,
-                                                                                const char **elements)
+                                        struct hive_key *hive,
+                                        uint32_t predefined_key,
+                                        const char **elements)
 {
        struct local_key *local_key;
        struct reg_key_path parent_path;
@@ -70,25 +70,26 @@ struct registry_key *reg_import_hive_key(struct registry_context *ctx,
 
 
 static WERROR local_open_key(TALLOC_CTX *mem_ctx,
-                                                  struct registry_key *parent, 
-                                                  const char *path,
-                                                  struct registry_key **result)
+                            struct registry_key *parent,
+                            const char *path,
+                            struct registry_key **result)
 {
        char *orig = talloc_strdup(mem_ctx, path),
-                *curbegin = orig, 
+                *curbegin = orig,
                 *curend = strchr(orig, '\\');
-       struct local_key *local_parent = talloc_get_type(parent, struct local_key);
+       struct local_key *local_parent = talloc_get_type(parent,
+                                                        struct local_key);
        struct hive_key *curkey = local_parent->hive_key;
        WERROR error;
        const char **elements = NULL;
        int el;
 
        if (local_parent->path.elements != NULL) {
-               elements = talloc_array(mem_ctx, const char *, 
-                                                       str_list_length(local_parent->path.elements) + 1);
+               elements = talloc_array(mem_ctx, const char *,
+                                       str_list_length(local_parent->path.elements) + 1);
                for (el = 0; local_parent->path.elements[el] != NULL; el++) {
-                       elements[el] = talloc_reference(elements, 
-                                                                                       local_parent->path.elements[el]);
+                       elements[el] = talloc_reference(elements,
+                                                       local_parent->path.elements[el]);
                }
                elements[el] = NULL;
        } else {
@@ -103,94 +104,97 @@ static WERROR local_open_key(TALLOC_CTX *mem_ctx,
                elements[el] = talloc_strdup(elements, curbegin);
                el++;
                elements[el] = NULL;
-               error = hive_get_key_by_name(mem_ctx, curkey, curbegin, &curkey);
+               error = hive_get_key_by_name(mem_ctx, curkey,
+                                            curbegin, &curkey);
                if (!W_ERROR_IS_OK(error)) {
-                       DEBUG(2, ("Opening key %s failed: %s\n", curbegin, win_errstr(error)));
+                       DEBUG(2, ("Opening key %s failed: %s\n", curbegin,
+                               win_errstr(error)));
                        talloc_free(orig);
                        return error;
                }
-               if (curend == NULL) 
+               if (curend == NULL)
                        break;
                curbegin = curend + 1;
                curend = strchr(curbegin, '\\');
        }
        talloc_free(orig);
 
-       *result = reg_import_hive_key(local_parent->global.context, curkey, 
-                                                                 local_parent->path.predefined_key,
-                                                                 talloc_steal(curkey, elements));
-       
+       *result = reg_import_hive_key(local_parent->global.context, curkey,
+                                     local_parent->path.predefined_key,
+                                     talloc_steal(curkey, elements));
+
        return WERR_OK;
 }
 
-WERROR local_get_predefined_key (const struct registry_context *ctx, 
-         uint32_t key_id, struct registry_key **key) 
-{      
-       struct registry_local *rctx = talloc_get_type(ctx, struct registry_local);
+WERROR local_get_predefined_key(const struct registry_context *ctx,
+                               uint32_t key_id, struct registry_key **key)
+{
+       struct registry_local *rctx = talloc_get_type(ctx,
+                                                     struct registry_local);
        struct mountpoint *mp;
 
        for (mp = rctx->mountpoints; mp != NULL; mp = mp->next) {
-               if (mp->path.predefined_key == key_id && 
+               if (mp->path.predefined_key == key_id &&
                        mp->path.elements == NULL)
                        break;
        }
 
        if (mp == NULL)
                return WERR_NOT_FOUND;
-       
-       *key = reg_import_hive_key(ctx, mp->key, 
-                                                          mp->path.predefined_key, 
-                                                          mp->path.elements
-                                                          );
+
+       *key = reg_import_hive_key(ctx, mp->key,
+                                  mp->path.predefined_key,
+                                  mp->path.elements);
 
        return WERR_OK;
 }
 
-WERROR local_enum_key(TALLOC_CTX *mem_ctx,
-                                         const struct registry_key *key, uint32_t idx,
-                                         const char **name,
-                                         const char **keyclass,
-                                         NTTIME *last_changed_time)
+static WERROR local_enum_key(TALLOC_CTX *mem_ctx,
+                            const struct registry_key *key, uint32_t idx,
+                            const char **name,
+                            const char **keyclass,
+                            NTTIME *last_changed_time)
 {
        const struct local_key *local = (const struct local_key *)key;
 
-       return hive_enum_key(mem_ctx, local->hive_key, idx, name, keyclass, 
-                                                 last_changed_time);
+       return hive_enum_key(mem_ctx, local->hive_key, idx, name, keyclass,
+                            last_changed_time);
 }
 
-static WERROR local_create_key (TALLOC_CTX *mem_ctx, 
-                                                               struct registry_key *parent_key, 
-                                                               const char *name,
-                                                               const char *key_class,
-                                                               struct security_descriptor *security,
-                                                               struct registry_key **key)
+static WERROR local_create_key(TALLOC_CTX *mem_ctx,
+                              struct registry_key *parent_key,
+                              const char *name,
+                              const char *key_class,
+                              struct security_descriptor *security,
+                              struct registry_key **key)
 {
        const struct local_key *local_parent;
        struct hive_key *hivekey;
        const char **elements;
        int i;
-       char *last_part;
+       const char *last_part;
 
        last_part = strrchr(name, '\\');
        if (last_part == NULL) {
                last_part = name;
                local_parent = (const struct local_key *)parent_key;
        } else {
-               W_ERROR_NOT_OK_RETURN(reg_open_key(mem_ctx, parent_key, 
-                                                         talloc_strndup(mem_ctx, name, last_part-name),
-                                                         &local_parent));
+               W_ERROR_NOT_OK_RETURN(reg_open_key(mem_ctx, parent_key,
+                                                  talloc_strndup(mem_ctx, name, last_part-name),
+                                                  &local_parent));
                last_part++;
        }
 
-       W_ERROR_NOT_OK_RETURN(hive_key_add_name(mem_ctx, local_parent->hive_key, 
-                                                               last_part, key_class, security, &hivekey));
+       W_ERROR_NOT_OK_RETURN(hive_key_add_name(mem_ctx, local_parent->hive_key,
+                                               last_part, key_class, security,
+                                               &hivekey));
 
        if (local_parent->path.elements != NULL) {
-               elements = talloc_array(hivekey, const char *, 
-                                                               str_list_length(local_parent->path.elements)+2);
+               elements = talloc_array(hivekey, const char *,
+                                       str_list_length(local_parent->path.elements)+2);
                for (i = 0; local_parent->path.elements[i] != NULL; i++) {
-                       elements[i] = talloc_reference(elements, 
-                                                                                  local_parent->path.elements[i]);
+                       elements[i] = talloc_reference(elements,
+                                                      local_parent->path.elements[i]);
                }
        } else {
                elements = talloc_array(hivekey, const char *, 2);
@@ -200,75 +204,75 @@ static WERROR local_create_key (TALLOC_CTX *mem_ctx,
        elements[i] = talloc_strdup(elements, name);
        elements[i+1] = NULL;
 
-       *key = reg_import_hive_key(local_parent->global.context, hivekey, 
-                                                          local_parent->path.predefined_key,
-                                                          elements);
+       *key = reg_import_hive_key(local_parent->global.context, hivekey,
+                                  local_parent->path.predefined_key,
+                                  elements);
 
        return WERR_OK;
 }
 
-static WERROR local_set_value (struct registry_key *key, const char *name,
-                                               uint32_t type, const DATA_BLOB data)
+static WERROR local_set_value(struct registry_key *key, const char *name,
+                             uint32_t type, const DATA_BLOB data)
 {
        struct local_key *local = (struct local_key *)key;
 
        return hive_set_value(local->hive_key, name, type, data);
 }
 
-static WERROR local_get_value (TALLOC_CTX *mem_ctx,
-                                                const struct registry_key *key,
-                                                const char *name, uint32_t *type, DATA_BLOB *data)
+static WERROR local_get_value(TALLOC_CTX *mem_ctx,
+                             const struct registry_key *key,
+                             const char *name, uint32_t *type, DATA_BLOB *data)
 {
        const struct local_key *local = (const struct local_key *)key;
 
        return hive_get_value(mem_ctx, local->hive_key, name, type, data);
 }
 
-static WERROR local_enum_value (TALLOC_CTX *mem_ctx,
-                                                 const struct registry_key *key, uint32_t idx,
-                                                 const char **name,
-                                                 uint32_t *type,
-                                                 DATA_BLOB *data)
+static WERROR local_enum_value(TALLOC_CTX *mem_ctx,
+                              const struct registry_key *key, uint32_t idx,
+                              const char **name,
+                              uint32_t *type,
+                              DATA_BLOB *data)
 {
        const struct local_key *local = (const struct local_key *)key;
 
-       return hive_get_value_by_index(mem_ctx, local->hive_key, idx, 
-                                                                  name, type, data);
+       return hive_get_value_by_index(mem_ctx, local->hive_key, idx,
+                                      name, type, data);
 }
 
-static WERROR local_delete_key (struct registry_key *key, const char *name)
+static WERROR local_delete_key(struct registry_key *key, const char *name)
 {
        const struct local_key *local = (const struct local_key *)key;
 
        return hive_key_del(local->hive_key, name);
 }
 
-static WERROR local_delete_value (struct registry_key *key, const char *name)
+static WERROR local_delete_value(struct registry_key *key, const char *name)
 {
        const struct local_key *local = (const struct local_key *)key;
 
        return hive_del_value(local->hive_key, name);
 }
 
-static WERROR local_flush_key (struct registry_key *key)
+static WERROR local_flush_key(struct registry_key *key)
 {
        const struct local_key *local = (const struct local_key *)key;
 
        return hive_key_flush(local->hive_key);
 }
 
-static WERROR local_get_key_info (TALLOC_CTX *mem_ctx,
-                                               const struct registry_key *key,
-                                               const char **classname,
-                                               uint32_t *num_subkeys,
-                                               uint32_t *num_values,
-                                               NTTIME *last_change_time)
+static WERROR local_get_key_info(TALLOC_CTX *mem_ctx,
+                                const struct registry_key *key,
+                                const char **classname,
+                                uint32_t *num_subkeys,
+                                uint32_t *num_values,
+                                NTTIME *last_change_time)
 {
        const struct local_key *local = (const struct local_key *)key;
 
-       return hive_key_get_info(mem_ctx, local->hive_key, 
-                                                        classname, num_subkeys, num_values, 
-                                                        last_change_time);
+       return hive_key_get_info(mem_ctx, local->hive_key,
+                                classname, num_subkeys, num_values,
+                                last_change_time);
 }
 
 const static struct registry_operations local_ops = {
@@ -286,11 +290,12 @@ const static struct registry_operations local_ops = {
        .get_key_info = local_get_key_info,
 };
 
-WERROR reg_open_local(TALLOC_CTX *mem_ctx, struct registry_context **ctx, 
-                               struct auth_session_info *session_info, 
-                               struct cli_credentials *credentials)
+WERROR reg_open_local(TALLOC_CTX *mem_ctx, struct registry_context **ctx,
+                     struct auth_session_info *session_info,
+                     struct cli_credentials *credentials)
 {
-       struct registry_local *ret = talloc_zero(mem_ctx, struct registry_local);
+       struct registry_local *ret = talloc_zero(mem_ctx,
+                                                struct registry_local);
 
        W_ERROR_HAVE_NO_MEMORY(ret);
 
@@ -299,16 +304,17 @@ WERROR reg_open_local(TALLOC_CTX *mem_ctx, struct registry_context **ctx,
        ret->credentials = credentials;
 
        *ctx = (struct registry_context *)ret;
-       
+
        return WERR_OK;
 }
 
-WERROR reg_mount_hive(struct registry_context *rctx, 
-                                         struct hive_key *hive_key,
-                                         uint32_t key_id,
-                                         const char **elements) 
+WERROR reg_mount_hive(struct registry_context *rctx,
+                     struct hive_key *hive_key,
+                     uint32_t key_id,
+                     const char **elements)
 {
-       struct registry_local *reg_local = talloc_get_type(rctx, struct registry_local);
+       struct registry_local *reg_local = talloc_get_type(rctx,
+                                                          struct registry_local);
        struct mountpoint *mp = talloc(rctx, struct mountpoint);
        int i = 0;
 
@@ -316,11 +322,11 @@ WERROR reg_mount_hive(struct registry_context *rctx,
        mp->prev = mp->next = NULL;
        mp->key = hive_key;
        if (elements != NULL) {
-               mp->path.elements = talloc_array(mp, const char *, 
-                                                                                str_list_length(elements));
+               mp->path.elements = talloc_array(mp, const char *,
+                                                str_list_length(elements));
                for (i = 0; elements[i] != NULL; i++) {
-                       mp->path.elements[i] = talloc_reference(mp->path.elements, 
-                                                                                                       elements[i]);
+                       mp->path.elements[i] = talloc_reference(mp->path.elements,
+                                                               elements[i]);
                }
                mp->path.elements[i] = NULL;
        } else {
index 8df873d56bf6be27ab361de73ee4a2e6969dfbf2..e5d9a26618fc24b45ab85b2b8e4a8de69f3f45c6 100644 (file)
@@ -1,7 +1,7 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
    Reading registry patch files
-   
+
    Copyright (C) Jelmer Vernooij 2004-2007
    Copyright (C) Wilco Baan Hofman 2006
 
@@ -9,12 +9,12 @@
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program 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 General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 #include "system/filesys.h"
 
 
-_PUBLIC_ WERROR reg_preg_diff_load(int fd, const struct reg_diff_callbacks *callbacks, void *callback_data);
+_PUBLIC_ WERROR reg_preg_diff_load(int fd,
+                                  const struct reg_diff_callbacks *callbacks,
+                                  void *callback_data);
 
-_PUBLIC_ WERROR reg_dotreg_diff_load(int fd, const struct reg_diff_callbacks *callbacks, void *callback_data);
+_PUBLIC_ WERROR reg_dotreg_diff_load(int fd,
+                                    const struct reg_diff_callbacks *callbacks,
+                                    void *callback_data);
 
 /*
  * Generate difference between two keys
  */
-WERROR reg_generate_diff_key(struct registry_key *oldkey, 
-                                                        struct registry_key *newkey,
-                                                        const char *path,
-                                                        const struct reg_diff_callbacks *callbacks,
-                                                        void *callback_data)
+WERROR reg_generate_diff_key(struct registry_key *oldkey,
+                            struct registry_key *newkey,
+                            const char *path,
+                            const struct reg_diff_callbacks *callbacks,
+                            void *callback_data)
 {
        int i;
        struct registry_key *t1, *t2;
@@ -48,11 +52,12 @@ WERROR reg_generate_diff_key(struct registry_key *oldkey,
                         new_num_subkeys, new_num_values;
 
        if (oldkey != NULL) {
-               error = reg_key_get_info(mem_ctx, oldkey, NULL, &old_num_subkeys, &old_num_values,
-                                                                NULL);
+               error = reg_key_get_info(mem_ctx, oldkey, NULL,
+                                        &old_num_subkeys, &old_num_values,
+                                        NULL);
                if (!W_ERROR_IS_OK(error)) {
-                       DEBUG(0, ("Error occured while getting key info: %s\n", 
-                                         win_errstr(error)));
+                       DEBUG(0, ("Error occured while getting key info: %s\n",
+                               win_errstr(error)));
                        return error;
                }
        } else {
@@ -62,11 +67,12 @@ WERROR reg_generate_diff_key(struct registry_key *oldkey,
 
        /* Subkeys that were deleted */
        for (i = 0; i < old_num_subkeys; i++) {
-               error1 = reg_key_get_subkey_by_index(mem_ctx, oldkey, i, &keyname1,
-                                                                                        NULL, NULL);
+               error1 = reg_key_get_subkey_by_index(mem_ctx, oldkey, i,
+                                                    &keyname1,
+                                                    NULL, NULL);
                if (!W_ERROR_IS_OK(error1)) {
-                       DEBUG(0, ("Error occured while getting subkey by index: %s\n", 
-                                         win_errstr(error2)));
+                       DEBUG(0, ("Error occured while getting subkey by index: %s\n",
+                               win_errstr(error2)));
                        continue;
                }
 
@@ -81,8 +87,8 @@ WERROR reg_generate_diff_key(struct registry_key *oldkey,
                }
 
                if (!W_ERROR_EQUAL(error2, WERR_DEST_NOT_FOUND)) {
-                       DEBUG(0, ("Error occured while getting subkey by name: %s\n", 
-                                         win_errstr(error2)));
+                       DEBUG(0, ("Error occured while getting subkey by name: %s\n",
+                               win_errstr(error2)));
                        talloc_free(mem_ctx);
                        return error2;
                }
@@ -90,15 +96,16 @@ WERROR reg_generate_diff_key(struct registry_key *oldkey,
                /* newkey didn't have such a subkey, add del diff */
                tmppath = talloc_asprintf(mem_ctx, "%s\\%s", path, keyname1);
                callbacks->del_key(callback_data, tmppath);
-               talloc_free(tmppath);   
+               talloc_free(tmppath);
        }
 
        if (newkey != NULL) {
-               error = reg_key_get_info(mem_ctx, newkey, NULL, &new_num_subkeys, &new_num_values,
-                                                                NULL);
+               error = reg_key_get_info(mem_ctx, newkey, NULL,
+                                        &new_num_subkeys, &new_num_values,
+                                        NULL);
                if (!W_ERROR_IS_OK(error)) {
-                       DEBUG(0, ("Error occured while getting key info: %s\n", 
-                                         win_errstr(error)));
+                       DEBUG(0, ("Error occured while getting key info: %s\n",
+                               win_errstr(error)));
                        return error;
                }
        } else {
@@ -108,28 +115,29 @@ WERROR reg_generate_diff_key(struct registry_key *oldkey,
 
        /* Subkeys that were added */
        for(i = 0; i < new_num_subkeys; i++) {
-               error1 = reg_key_get_subkey_by_index(mem_ctx, newkey, i, &keyname1, 
-                                                                                        NULL, NULL);
+               error1 = reg_key_get_subkey_by_index(mem_ctx, newkey,
+                                                    i, &keyname1,
+                                                    NULL, NULL);
                if (!W_ERROR_IS_OK(error1)) {
-                       DEBUG(0, ("Error occured while getting subkey by index: %s\n", 
-                                         win_errstr(error1)));
+                       DEBUG(0, ("Error occured while getting subkey by index: %s\n",
+                               win_errstr(error1)));
                        talloc_free(mem_ctx);
                        return error1;
                }
 
                if (oldkey != NULL) {
                        error2 = reg_open_key(mem_ctx, oldkey, keyname1, &t1);
-                               
+
                        if (W_ERROR_IS_OK(error2))
                                continue;
                } else {
                        t1 = NULL;
                        error2 = WERR_DEST_NOT_FOUND;
                }
-                       
+
                if (!W_ERROR_EQUAL(error2, WERR_DEST_NOT_FOUND)) {
-                       DEBUG(0, ("Error occured while getting subkey by name: %s\n", 
-                                         win_errstr(error2)));
+                       DEBUG(0, ("Error occured while getting subkey by name: %s\n",
+                               win_errstr(error2)));
                        talloc_free(mem_ctx);
                        return error2;
                }
@@ -141,7 +149,8 @@ WERROR reg_generate_diff_key(struct registry_key *oldkey,
                W_ERROR_NOT_OK_RETURN(
                                reg_open_key(mem_ctx, newkey, keyname1, &t2));
 
-               reg_generate_diff_key(t1, t2, tmppath, callbacks, callback_data);
+               reg_generate_diff_key(t1, t2, tmppath,
+                                     callbacks, callback_data);
                talloc_free(tmppath);
        }
 
@@ -151,56 +160,59 @@ WERROR reg_generate_diff_key(struct registry_key *oldkey,
                uint32_t type1, type2;
                DATA_BLOB contents1, contents2;
 
-               error1 = reg_key_get_value_by_index(mem_ctx, newkey, i, 
-                                                                                       &name, &type1, &contents1);
+               error1 = reg_key_get_value_by_index(mem_ctx, newkey, i,
+                                                   &name, &type1, &contents1);
                if (!W_ERROR_IS_OK(error1)) {
-                       DEBUG(0, ("Unable to get key by index: %s\n", 
-                                         win_errstr(error1)));
+                       DEBUG(0, ("Unable to get key by index: %s\n",
+                               win_errstr(error1)));
                        talloc_free(mem_ctx);
                        return error1;
                }
 
                if (oldkey != NULL) {
-                       error2 = reg_key_get_value_by_name(mem_ctx, oldkey, name, 
-                                                                                  &type2, &contents2);
-               } else 
+                       error2 = reg_key_get_value_by_name(mem_ctx, oldkey,
+                                                          name, &type2,
+                                                          &contents2);
+               } else
                        error2 = WERR_DEST_NOT_FOUND;
-       
-               if(!W_ERROR_IS_OK(error2) && 
+
+               if(!W_ERROR_IS_OK(error2) &&
                   !W_ERROR_EQUAL(error2, WERR_DEST_NOT_FOUND)) {
-                       DEBUG(0, ("Error occured while getting value by name: %s\n", 
-                                         win_errstr(error2)));
+                       DEBUG(0, ("Error occured while getting value by name: %s\n",
+                               win_errstr(error2)));
                        talloc_free(mem_ctx);
                        return error2;
                }
 
-               if (W_ERROR_IS_OK(error2) && data_blob_cmp(&contents1, &contents2) == 0)
+               if (W_ERROR_IS_OK(error2) &&
+                   data_blob_cmp(&contents1, &contents2) == 0)
                        continue;
 
-               callbacks->set_value(callback_data, path, name, type1, contents1);
+               callbacks->set_value(callback_data, path, name,
+                                    type1, contents1);
        }
 
        /* Values that were deleted */
        for (i = 0; i < old_num_values; i++) {
                const char *name;
-               error1 = reg_key_get_value_by_index(mem_ctx, oldkey, i, &name, 
-                                                                                       NULL, NULL);
+               error1 = reg_key_get_value_by_index(mem_ctx, oldkey, i, &name,
+                                                   NULL, NULL);
                if (!W_ERROR_IS_OK(error1)) {
-                       DEBUG(0, ("Error ocurred getting value by index: %s\n", 
-                                         win_errstr(error1)));
+                       DEBUG(0, ("Error ocurred getting value by index: %s\n",
+                               win_errstr(error1)));
                        talloc_free(mem_ctx);
                        return error1;
                }
 
-               error2 = reg_key_get_value_by_name(mem_ctx, newkey, name, NULL, 
-                                                                                  NULL);
+               error2 = reg_key_get_value_by_name(mem_ctx, newkey, name, NULL,
+                                                  NULL);
 
                if (W_ERROR_IS_OK(error2))
                        continue;
 
                if (!W_ERROR_EQUAL(error2, WERR_DEST_NOT_FOUND)) {
-                       DEBUG(0, ("Error occured while getting value by name: %s\n", 
-                                         win_errstr(error2)));
+                       DEBUG(0, ("Error occured while getting value by name: %s\n",
+                               win_errstr(error2)));
                        return error2;
                }
 
@@ -212,10 +224,10 @@ WERROR reg_generate_diff_key(struct registry_key *oldkey,
 }
 
 /**
- * Generate diff between two registry contexts 
+ * Generate diff between two registry contexts
  */
-_PUBLIC_ WERROR reg_generate_diff(struct registry_context *ctx1, 
-                                 struct registry_context *ctx2, 
+_PUBLIC_ WERROR reg_generate_diff(struct registry_context *ctx1,
+                                 struct registry_context *ctx2,
                                  const struct reg_diff_callbacks *callbacks,
                                  void *callback_data)
 {
@@ -225,21 +237,27 @@ _PUBLIC_ WERROR reg_generate_diff(struct registry_context *ctx1,
        for(i = HKEY_FIRST; i <= HKEY_LAST; i++) {
                struct registry_key *r1 = NULL, *r2 = NULL;
                error = reg_get_predefined_key(ctx1, i, &r1);
-               if (!W_ERROR_IS_OK(error) && !W_ERROR_EQUAL(error, WERR_NOT_FOUND)) {
-                       DEBUG(0, ("Unable to open hive %s for backend 1\n", reg_get_predef_name(i)));
+               if (!W_ERROR_IS_OK(error) &&
+                   !W_ERROR_EQUAL(error, WERR_NOT_FOUND)) {
+                       DEBUG(0, ("Unable to open hive %s for backend 1\n",
+                               reg_get_predef_name(i)));
                }
-               
+
                error = reg_get_predefined_key(ctx2, i, &r2);
-               if (!W_ERROR_IS_OK(error) && !W_ERROR_EQUAL(error, WERR_NOT_FOUND)) {
-                       DEBUG(0, ("Unable to open hive %s for backend 2\n", reg_get_predef_name(i)));
+               if (!W_ERROR_IS_OK(error) &&
+                   !W_ERROR_EQUAL(error, WERR_NOT_FOUND)) {
+                       DEBUG(0, ("Unable to open hive %s for backend 2\n",
+                               reg_get_predef_name(i)));
                }
 
                if (r1 == NULL && r2 == NULL)
                        continue;
 
-               error = reg_generate_diff_key(r1, r2, reg_get_predef_name(i), callbacks, callback_data);
+               error = reg_generate_diff_key(r1, r2, reg_get_predef_name(i),
+                                             callbacks, callback_data);
                if (!W_ERROR_IS_OK(error)) {
-                       DEBUG(0, ("Unable to determine diff: %s\n", win_errstr(error)));
+                       DEBUG(0, ("Unable to determine diff: %s\n",
+                               win_errstr(error)));
                        return error;
                }
        }
@@ -252,21 +270,23 @@ _PUBLIC_ WERROR reg_generate_diff(struct registry_context *ctx1,
 /**
  * Load diff file
  */
-_PUBLIC_ WERROR reg_diff_load(const char *filename, 
-                                                         const struct reg_diff_callbacks *callbacks, 
-                                                         void *callback_data)
+_PUBLIC_ WERROR reg_diff_load(const char *filename,
+                             const struct reg_diff_callbacks *callbacks,
+                             void *callback_data)
 {
        int fd;
        char hdr[4];
-       
+
        fd = open(filename, O_RDONLY, 0);
        if (fd == -1) {
-               DEBUG(0, ("Error opening registry patch file `%s'\n", filename));
+               DEBUG(0, ("Error opening registry patch file `%s'\n",
+                       filename));
                return WERR_GENERAL_FAILURE;
        }
 
        if (read(fd, &hdr, 4) != 4) {
-               DEBUG(0, ("Error reading registry patch file `%s'\n", filename));
+               DEBUG(0, ("Error reading registry patch file `%s'\n",
+                       filename));
                return WERR_GENERAL_FAILURE;
        }
 
@@ -279,8 +299,8 @@ _PUBLIC_ WERROR reg_diff_load(const char *filename,
        } else if (strncmp(hdr, "regf", 4) == 0) {
                /* Must be a REGF NTConfig.pol file */
                return reg_regf_diff_load(diff, fd);
-       } else 
-#endif 
+       } else
+#endif
        if (strncmp(hdr, "PReg", 4) == 0) {
                /* Must be a GPO Registry.pol file */
                return reg_preg_diff_load(fd, callbacks, callback_data);
@@ -293,24 +313,26 @@ _PUBLIC_ WERROR reg_diff_load(const char *filename,
 /**
  * The reg_diff_apply functions
  */
-static WERROR reg_diff_apply_add_key(void *_ctx, const char *key_name) 
+static WERROR reg_diff_apply_add_key(void *_ctx, const char *key_name)
 {
-       struct registry_context *ctx = _ctx;
+       struct registry_context *ctx = (struct registry_context *)_ctx;
        struct registry_key *tmp;
        WERROR error;
 
        error = reg_key_add_abs(ctx, ctx, key_name, 0, NULL, &tmp);
 
-       if (!W_ERROR_EQUAL(error, WERR_ALREADY_EXISTS) && !W_ERROR_IS_OK(error)) {
-               DEBUG(0, ("Error adding new key '%s': %s\n", key_name, win_errstr(error)));
+       if (!W_ERROR_EQUAL(error, WERR_ALREADY_EXISTS) &&
+           !W_ERROR_IS_OK(error)) {
+               DEBUG(0, ("Error adding new key '%s': %s\n",
+                       key_name, win_errstr(error)));
                return error;
        }
        return WERR_OK;
 }
 
-static WERROR reg_diff_apply_del_key(void *_ctx, const char *key_name) 
+static WERROR reg_diff_apply_del_key(void *_ctx, const char *key_name)
 {
-       struct registry_context *ctx = _ctx;
+       struct registry_context *ctx = (struct registry_context *)_ctx;
        WERROR error;
 
        error = reg_key_del_abs(ctx, key_name);
@@ -319,16 +341,18 @@ static WERROR reg_diff_apply_del_key(void *_ctx, const char *key_name)
                DEBUG(0, ("Unable to delete key '%s'\n", key_name));
                return error;
        }
-       
+
        return WERR_OK;
 }
 
-static WERROR reg_diff_apply_set_value(void *_ctx, const char *path, const char *value_name, uint32_t value_type, DATA_BLOB value)
+static WERROR reg_diff_apply_set_value(void *_ctx, const char *path,
+                                      const char *value_name,
+                                      uint32_t value_type, DATA_BLOB value)
 {
-       struct registry_context *ctx = _ctx;
+       struct registry_context *ctx = (struct registry_context *)_ctx;
        struct registry_key *tmp;
        WERROR error;
-       
+
        /* Open key */
        error = reg_open_key_abs(ctx, ctx, path, &tmp);
 
@@ -338,22 +362,23 @@ static WERROR reg_diff_apply_set_value(void *_ctx, const char *path, const char
        }
 
        /* Set value */
-       error = reg_val_set(tmp, value_name, 
+       error = reg_val_set(tmp, value_name,
                                 value_type, value);
        if (!W_ERROR_IS_OK(error)) {
                DEBUG(0, ("Error setting value '%s'\n", value_name));
                return error;
-       }       
-       
+       }
+
        return WERR_OK;
 }
 
-static WERROR reg_diff_apply_del_value (void *_ctx, const char *key_name, const char *value_name)
+static WERROR reg_diff_apply_del_value(void *_ctx, const char *key_name,
+                                      const char *value_name)
 {
-       struct registry_context *ctx = _ctx;
+       struct registry_context *ctx = (struct registry_context *)_ctx;
        struct registry_key *tmp;
        WERROR error;
-       
+
        /* Open key */
        error = reg_open_key_abs(ctx, ctx, key_name, &tmp);
 
@@ -367,14 +392,14 @@ static WERROR reg_diff_apply_del_value (void *_ctx, const char *key_name, const
                DEBUG(0, ("Error deleting value '%s'\n", value_name));
                return error;
        }
-       
+
 
        return WERR_OK;
 }
 
 static WERROR reg_diff_apply_del_all_values(void *_ctx, const char *key_name)
 {
-       struct registry_context *ctx = _ctx;
+       struct registry_context *ctx = (struct registry_context *)_ctx;
        struct registry_key *key;
        WERROR error;
        int i;
@@ -387,26 +412,28 @@ static WERROR reg_diff_apply_del_all_values(void *_ctx, const char *key_name)
                return error;
        }
 
-       W_ERROR_NOT_OK_RETURN(reg_key_get_info(ctx, key, 
-                                                                                  NULL, 
-                                                                                  NULL,
-                                                                                  &num_values, 
-                                                                                  NULL));
+       W_ERROR_NOT_OK_RETURN(reg_key_get_info(ctx, key,
+                                              NULL,
+                                              NULL,
+                                              &num_values,
+                                              NULL));
 
        for (i = 0; i < num_values; i++) {
                const char *name;
-               W_ERROR_NOT_OK_RETURN(reg_key_get_value_by_index(ctx, key, i, &name, 
-                                                                                                                NULL, NULL));
+               W_ERROR_NOT_OK_RETURN(reg_key_get_value_by_index(ctx, key, i,
+                                                                &name,
+                                                                NULL, NULL));
                W_ERROR_NOT_OK_RETURN(reg_del_value(key, name));
        }
 
        return WERR_OK;
 }
 
-/** 
- * Apply diff to a registry context 
+/**
+ * Apply diff to a registry context
  */
-_PUBLIC_ WERROR reg_diff_apply (const char *filename, struct registry_context *ctx)
+_PUBLIC_ WERROR reg_diff_apply(const char *filename,
+                              struct registry_context *ctx)
 {
        struct reg_diff_callbacks callbacks;
 
index 1c0b195a8c91b8fe6369229df6c6f5a6172fdb5c..4c0599b2f3bd8c712289d5177d5eb990e22fb409 100644 (file)
@@ -1,52 +1,55 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
    Patchfile interface
    Copyright (C) Jelmer Vernooij 2006
    Copyright (C) Wilco Baan Hofman 2006
-   
+
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.
-   
+
    This program 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 General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
 #ifndef _PATCHFILE_H
-#define _PATCHFILE_H 
+#define _PATCHFILE_H
 
 #include "lib/registry/registry.h"
 
 struct reg_diff_callbacks {
        WERROR (*add_key) (void *callback_data, const char *key_name);
-       WERROR (*set_value) (void *callback_data, const char *key_name, 
-                                                const char *value_name, uint32_t value_type, DATA_BLOB value);
-       WERROR (*del_value) (void *callback_data, const char *key_name, const char *value_name);
+       WERROR (*set_value) (void *callback_data, const char *key_name,
+                            const char *value_name, uint32_t value_type,
+                            DATA_BLOB value);
+       WERROR (*del_value) (void *callback_data, const char *key_name,
+                            const char *value_name);
        WERROR (*del_key) (void *callback_data, const char *key_name);
        WERROR (*del_all_values) (void *callback_data, const char *key_name);
        WERROR (*done) (void *callback_data);
 };
 
-WERROR reg_diff_apply (const char *filename, 
-                                                               struct registry_context *ctx);
-
-WERROR reg_generate_diff(struct registry_context *ctx1, 
-                                 struct registry_context *ctx2, 
-                                 const struct reg_diff_callbacks *callbacks,
-                                 void *callback_data);
-WERROR reg_dotreg_diff_save(TALLOC_CTX *ctx, const char *filename, 
-                               struct reg_diff_callbacks **callbacks, void **callback_data);
-WERROR reg_generate_diff_key(struct registry_key *oldkey, 
-                                   struct registry_key *newkey,
-                                   const char *path,
-                                   const struct reg_diff_callbacks *callbacks,
-                                   void *callback_data);
+WERROR reg_diff_apply (const char *filename,
+                      struct registry_context *ctx);
+
+WERROR reg_generate_diff(struct registry_context *ctx1,
+                        struct registry_context *ctx2,
+                        const struct reg_diff_callbacks *callbacks,
+                        void *callback_data);
+WERROR reg_dotreg_diff_save(TALLOC_CTX *ctx, const char *filename,
+                           struct reg_diff_callbacks **callbacks,
+                           void **callback_data);
+WERROR reg_generate_diff_key(struct registry_key *oldkey,
+                            struct registry_key *newkey,
+                            const char *path,
+                            const struct reg_diff_callbacks *callbacks,
+                            void *callback_data);
 
 #endif /* _PATCHFILE_H */
index 1b4bffe8197769b8f6275edc01c863c59c425b47..ebcafc92af4b9f1f2a0fb379644a687d08f41132 100644 (file)
@@ -1,7 +1,7 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
    Reading .REG files
-   
+
    Copyright (C) Jelmer Vernooij 2004-2007
    Copyright (C) Wilco Baan Hofman 2006
 
@@ -9,12 +9,12 @@
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.
-   
+
    This program 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 General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
@@ -40,37 +40,39 @@ struct dotreg_data {
 
 static WERROR reg_dotreg_diff_add_key(void *_data, const char *key_name)
 {
-       struct dotreg_data *data = _data;
+       struct dotreg_data *data = (struct dotreg_data *)_data;
 
        fdprintf(data->fd, "\n[%s]\n", key_name);
-       
+
        return WERR_OK;
 }
 
 static WERROR reg_dotreg_diff_del_key(void *_data, const char *key_name)
 {
-       struct dotreg_data *data = _data;
+       struct dotreg_data *data = (struct dotreg_data *)_data;
 
        fdprintf(data->fd, "\n[-%s]\n", key_name);
-       
+
        return WERR_OK;
 }
 
-static WERROR reg_dotreg_diff_set_value(void *_data, const char *path, 
-                                                                               const char *value_name, uint32_t value_type, DATA_BLOB value)
+static WERROR reg_dotreg_diff_set_value(void *_data, const char *path,
+                                       const char *value_name,
+                                       uint32_t value_type, DATA_BLOB value)
 {
-       struct dotreg_data *data = _data;
+       struct dotreg_data *data = (struct dotreg_data *)_data;
 
        fdprintf(data->fd, "\"%s\"=%s:%s\n",
-                       value_name, str_regtype(value_type), 
+                       value_name, str_regtype(value_type),
                        reg_val_data_string(NULL, value_type, value));
-               
+
        return WERR_OK;
 }
 
-static WERROR reg_dotreg_diff_del_value(void *_data, const char *path, const char *value_name)
+static WERROR reg_dotreg_diff_del_value(void *_data, const char *path,
+                                       const char *value_name)
 {
-       struct dotreg_data *data = _data;
+       struct dotreg_data *data = (struct dotreg_data *)_data;
 
        fdprintf(data->fd, "\"%s\"=-\n", value_name);
 
@@ -79,7 +81,7 @@ static WERROR reg_dotreg_diff_del_value(void *_data, const char *path, const cha
 
 static WERROR reg_dotreg_diff_done(void *_data)
 {
-       struct dotreg_data *data = _data;
+       struct dotreg_data *data = (struct dotreg_data *)_data;
 
        close(data->fd);
        talloc_free(data);
@@ -87,7 +89,8 @@ static WERROR reg_dotreg_diff_done(void *_data)
        return WERR_OK;
 }
 
-static WERROR reg_dotreg_diff_del_all_values (void *callback_data, const char *key_name)
+static WERROR reg_dotreg_diff_del_all_values(void *callback_data,
+                                            const char *key_name)
 {
        return WERR_NOT_SUPPORTED;
 }
@@ -95,8 +98,9 @@ static WERROR reg_dotreg_diff_del_all_values (void *callback_data, const char *k
 /**
  * Save registry diff
  */
-_PUBLIC_ WERROR reg_dotreg_diff_save(TALLOC_CTX *ctx, const char *filename, 
-                                                                        struct reg_diff_callbacks **callbacks, void **callback_data)
+_PUBLIC_ WERROR reg_dotreg_diff_save(TALLOC_CTX *ctx, const char *filename,
+                                    struct reg_diff_callbacks **callbacks,
+                                    void **callback_data)
 {
        struct dotreg_data *data;
 
@@ -125,12 +129,14 @@ _PUBLIC_ WERROR reg_dotreg_diff_save(TALLOC_CTX *ctx, const char *filename,
        (*callbacks)->done = reg_dotreg_diff_done;
 
        return WERR_OK;
-}      
+}
 
 /**
  * Load diff file
  */
-_PUBLIC_ WERROR reg_dotreg_diff_load(int fd, const struct reg_diff_callbacks *callbacks, void *callback_data)
+_PUBLIC_ WERROR reg_dotreg_diff_load(int fd,
+                                    const struct reg_diff_callbacks *callbacks,
+                                    void *callback_data)
 {
        char *line, *p, *q;
        char *curkey = NULL;
@@ -151,8 +157,8 @@ _PUBLIC_ WERROR reg_dotreg_diff_load(int fd, const struct reg_diff_callbacks *ca
                /* Ignore comments and empty lines */
                if (strlen(line) == 0 || line[0] == ';') {
                        talloc_free(line);
-                       
-                       if (curkey) {   
+
+                       if (curkey) {
                                talloc_free(curkey);
                        }
                        curkey = NULL;
@@ -170,9 +176,11 @@ _PUBLIC_ WERROR reg_dotreg_diff_load(int fd, const struct reg_diff_callbacks *ca
                        if (line[1] == '-') {
                                curkey = talloc_strndup(line, line+2, strlen(line)-3);
 
-                               error = callbacks->del_key(callback_data, curkey);
+                               error = callbacks->del_key(callback_data,
+                                                          curkey);
                                if (!W_ERROR_IS_OK(error)) {
-                                       DEBUG(0,("Error deleting key %s\n", curkey));
+                                       DEBUG(0,("Error deleting key %s\n",
+                                               curkey));
                                        talloc_free(mem_ctx);
                                        return error;
                                }
@@ -212,9 +220,11 @@ _PUBLIC_ WERROR reg_dotreg_diff_load(int fd, const struct reg_diff_callbacks *ca
 
                /* Delete value */
                if (strcmp(p, "-") == 0) {
-                       error = callbacks->del_value(callback_data, curkey, line);
+                       error = callbacks->del_value(callback_data,
+                                                    curkey, line);
                        if (!W_ERROR_IS_OK(error)) {
-                               DEBUG(0, ("Error deleting value %s in key %s\n", line, curkey));
+                               DEBUG(0, ("Error deleting value %s in key %s\n",
+                                       line, curkey));
                                talloc_free(mem_ctx);
                                return error;
                        }
@@ -222,18 +232,21 @@ _PUBLIC_ WERROR reg_dotreg_diff_load(int fd, const struct reg_diff_callbacks *ca
                        talloc_free(line);
                        continue;
                }
-               
+
                q = strchr_m(p, ':');
                if (q) {
-                       *q = '\0'; 
+                       *q = '\0';
                        q++;
                }
 
-               reg_string_to_val(line, q?p:"REG_SZ", q?q:p, &value_type, &value);
-               
-               error = callbacks->set_value(callback_data, curkey, line, value_type, value); 
+               reg_string_to_val(line, q?p:"REG_SZ", q?q:p,
+                                 &value_type, &value);
+
+               error = callbacks->set_value(callback_data, curkey, line,
+                                            value_type, value);
                if (!W_ERROR_IS_OK(error)) {
-                       DEBUG(0, ("Error setting value for %s in %s\n", line, curkey));
+                       DEBUG(0, ("Error setting value for %s in %s\n",
+                               line, curkey));
                        talloc_free(mem_ctx);
                        return error;
                }
index 1c8d76538a0a14c7405c47ddfae79603d11d8bdb..90a4f2529a0c38c06f486d3b64f2aecaaba5308a 100644 (file)
@@ -1,19 +1,19 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
    Reading Registry.pol PReg registry files
-   
+
    Copyright (C) Wilco Baan Hofman 2006
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.
-   
+
    This program 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 General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
@@ -21,6 +21,7 @@
 
 #include "includes.h"
 #include "lib/registry/registry.h"
+#include "lib/registry/patchfile.h"
 #include "system/filesys.h"
 #include "pstring.h"
 
@@ -42,37 +43,40 @@ static WERROR preg_read_utf16(int fd, char *c)
 /* FIXME These functions need to be implemented */
 static WERROR reg_preg_diff_add_key(void *_data, const char *key_name)
 {
-       struct preg_data *data = _data;
+       struct preg_data *data = (struct preg_data *)_data;
        return WERR_OK;
 }
 
 static WERROR reg_preg_diff_del_key(void *_data, const char *key_name)
 {
-       struct preg_data *data = _data;
+       struct preg_data *data = (struct preg_data *)_data;
        return WERR_OK;
 }
 
-static WERROR reg_preg_diff_set_value(void *_data, const char *key_name, const char *value_name, uint32_t value_type, DATA_BLOB value_data)
+static WERROR reg_preg_diff_set_value(void *_data, const char *key_name,
+                                     const char *value_name,
+                                     uint32_t value_type, DATA_BLOB value_data)
 {
-       struct preg_data *data = _data;
+       struct preg_data *data = (struct preg_data *)_data;
        return WERR_OK;
 }
 
-static WERROR reg_preg_diff_del_value(void *_data, const char *key_name, const char *value_name)
+static WERROR reg_preg_diff_del_value(void *_data, const char *key_name,
+                                     const char *value_name)
 {
-       struct preg_data *data = _data;
+       struct preg_data *data = (struct preg_data *)_data;
        return WERR_OK;
 }
 
 static WERROR reg_preg_diff_del_all_values(void *_data, const char *key_name)
 {
-       struct preg_data *data = _data;
+       struct preg_data *data = (struct preg_data *)_data;
        return WERR_OK;
 }
 
 static WERROR reg_preg_diff_done(void *_data)
 {
-       struct preg_data *data = _data;
+       struct preg_data *data = (struct preg_data *)_data;
 
        close(data->fd);
        talloc_free(data);
@@ -82,14 +86,16 @@ static WERROR reg_preg_diff_done(void *_data)
 /**
  * Save registry diff
  */
-_PUBLIC_ WERROR reg_preg_diff_save(TALLOC_CTX *ctx, const char *filename, struct reg_diff_callbacks **callbacks, void **callback_data)
+_PUBLIC_ WERROR reg_preg_diff_save(TALLOC_CTX *ctx, const char *filename,
+                                  struct reg_diff_callbacks **callbacks,
+                                  void **callback_data)
 {
        struct preg_data *data;
        struct {
                char hdr[4];
                uint32_t version;
        } preg_header;
-               
+
 
        data = talloc_zero(ctx, struct preg_data);
        *callback_data = data;
@@ -105,23 +111,25 @@ _PUBLIC_ WERROR reg_preg_diff_save(TALLOC_CTX *ctx, const char *filename, struct
        }
        snprintf(preg_header.hdr, 4, "PReg");
        SIVAL(&preg_header, 4, 1);
-       write(data->fd, (uint8_t *)&preg_header,8); 
+       write(data->fd, (uint8_t *)&preg_header,8);
 
        *callbacks = talloc(ctx, struct reg_diff_callbacks);
-       
+
        (*callbacks)->add_key = reg_preg_diff_add_key;
        (*callbacks)->del_key = reg_preg_diff_del_key;
        (*callbacks)->set_value = reg_preg_diff_set_value;
        (*callbacks)->del_value = reg_preg_diff_del_value;
        (*callbacks)->del_all_values = reg_preg_diff_del_all_values;
        (*callbacks)->done = reg_preg_diff_done;
-       
+
        return WERR_OK;
 }
 /**
  * Load diff file
  */
-_PUBLIC_ WERROR reg_preg_diff_load(int fd, const struct reg_diff_callbacks *callbacks, void *callback_data)
+_PUBLIC_ WERROR reg_preg_diff_load(int fd,
+                                  const struct reg_diff_callbacks *callbacks,
+                                  void *callback_data)
 {
        struct {
                char hdr[4];
@@ -131,7 +139,7 @@ _PUBLIC_ WERROR reg_preg_diff_load(int fd, const struct reg_diff_callbacks *call
        char *buf_ptr = buf;
        TALLOC_CTX *mem_ctx = talloc_init("reg_preg_diff_load");
 
-       
+
        /* Read first 8 bytes (the header) */
        if (read(fd, &preg_header, 8) != 8) {
                DEBUG(0, ("Could not read PReg file: %s\n",
@@ -146,14 +154,14 @@ _PUBLIC_ WERROR reg_preg_diff_load(int fd, const struct reg_diff_callbacks *call
        }
        if (preg_header.version > 1) {
                DEBUG(0, ("Warning: file format version is higher than expected.\n"));
-       }               
+       }
 
        /* Read the entries */
        while(1) {
                char *key, *value_name;
                uint32_t value_type, length;
                DATA_BLOB data;
-               
+
                if (!W_ERROR_IS_OK(preg_read_utf16(fd, buf_ptr))) {
                        break;
                }
@@ -162,17 +170,19 @@ _PUBLIC_ WERROR reg_preg_diff_load(int fd, const struct reg_diff_callbacks *call
                        close(fd);
                        return WERR_GENERAL_FAILURE;
                }
-       
+
                /* Get the path */
                buf_ptr = buf;
-               while (W_ERROR_IS_OK(preg_read_utf16(fd, buf_ptr)) && *buf_ptr != ';' && buf_ptr-buf < sizeof(buf)) { 
+               while (W_ERROR_IS_OK(preg_read_utf16(fd, buf_ptr)) &&
+                      *buf_ptr != ';' && buf_ptr-buf < sizeof(buf)) {
                        buf_ptr++;
                }
                key = talloc_asprintf(mem_ctx, "\\%s", buf);
-       
+
                /* Get the name */
                buf_ptr = buf;
-               while (W_ERROR_IS_OK(preg_read_utf16(fd, buf_ptr)) && *buf_ptr != ';' && buf_ptr-buf < sizeof(buf)) { 
+               while (W_ERROR_IS_OK(preg_read_utf16(fd, buf_ptr)) &&
+                      *buf_ptr != ';' && buf_ptr-buf < sizeof(buf)) {
                        buf_ptr++;
                }
                value_name = talloc_strdup(mem_ctx, buf);
@@ -185,7 +195,8 @@ _PUBLIC_ WERROR reg_preg_diff_load(int fd, const struct reg_diff_callbacks *call
                }
                /* Read past delimiter */
                buf_ptr = buf;
-               if (!(W_ERROR_IS_OK(preg_read_utf16(fd, buf_ptr)) && *buf_ptr == ';') && buf_ptr-buf < sizeof(buf)) {
+               if (!(W_ERROR_IS_OK(preg_read_utf16(fd, buf_ptr)) &&
+                   *buf_ptr == ';') && buf_ptr-buf < sizeof(buf)) {
                        DEBUG(0, ("Error in PReg file.\n"));
                        close(fd);
                        return WERR_GENERAL_FAILURE;
@@ -198,40 +209,43 @@ _PUBLIC_ WERROR reg_preg_diff_load(int fd, const struct reg_diff_callbacks *call
                }
                /* Read past delimiter */
                buf_ptr = buf;
-               if (!(W_ERROR_IS_OK(preg_read_utf16(fd, buf_ptr)) && *buf_ptr == ';') && buf_ptr-buf < sizeof(buf)) {
+               if (!(W_ERROR_IS_OK(preg_read_utf16(fd, buf_ptr)) &&
+                   *buf_ptr == ';') && buf_ptr-buf < sizeof(buf)) {
                        DEBUG(0, ("Error in PReg file.\n"));
                        close(fd);
                        return WERR_GENERAL_FAILURE;
-               }       
+               }
                /* Get the data */
                buf_ptr = buf;
-               if (length < sizeof(buf) && read(fd, buf_ptr, length) != length) {
+               if (length < sizeof(buf) &&
+                   read(fd, buf_ptr, length) != length) {
                        DEBUG(0, ("Error while reading PReg\n"));
                        close(fd);
                        return WERR_GENERAL_FAILURE;
                }
-               data.length = length;
-               data.data = talloc_memdup(mem_ctx, buf, length);
-               
+               data = data_blob_talloc(mem_ctx, buf, length);
+
                /* Check if delimiter is in place (whine if it isn't) */
                buf_ptr = buf;
-               if (!(W_ERROR_IS_OK(preg_read_utf16(fd, buf_ptr)) && *buf_ptr == ']') && buf_ptr-buf < sizeof(buf)) {
-                       DEBUG(0, ("Warning: Missing ']' in PReg file, expected ']', got '%c' 0x%x.\n",*buf_ptr, *buf_ptr));
+               if (!(W_ERROR_IS_OK(preg_read_utf16(fd, buf_ptr)) &&
+                   *buf_ptr == ']') && buf_ptr-buf < sizeof(buf)) {
+                       DEBUG(0, ("Warning: Missing ']' in PReg file, expected ']', got '%c' 0x%x.\n",
+                               *buf_ptr, *buf_ptr));
                }
 
                if (strcasecmp(value_name, "**DelVals") == 0) {
                        callbacks->del_all_values(callback_data, key);
                } else if (strncasecmp(value_name, "**Del.",6) == 0) {
                        char *p = value_name+6;
-                       
+
                        callbacks->del_value(callback_data, key, p);
                } else  if (strcasecmp(value_name, "**DeleteValues") == 0) {
                        char *p, *q;
 
                        p = (char *) data.data;
-                       
+
                        while ((q = strchr_m(p, ';'))) {
-                               *q = '\0'; 
+                               *q = '\0';
                                q++;
 
                                callbacks->del_value(callback_data, key, p);
@@ -243,28 +257,30 @@ _PUBLIC_ WERROR reg_preg_diff_load(int fd, const struct reg_diff_callbacks *call
                        char *p, *q, *full_key;
 
                        p = (char *) data.data;
-                       
+
                        while ((q = strchr_m(p, ';'))) {
                                *q = '\0';
                                q++;
-       
-                               full_key = talloc_asprintf(mem_ctx, "%s\\%s", key, p);
+
+                               full_key = talloc_asprintf(mem_ctx, "%s\\%s",
+                                                          key, p);
                                callbacks->del_key(callback_data, full_key);
                                talloc_free(full_key);
 
-                               p = q; 
+                               p = q;
                        }
                        full_key = talloc_asprintf(mem_ctx, "%s\\%s", key, p);
                        callbacks->del_key(callback_data, full_key);
                        talloc_free(full_key);
                } else {
                        callbacks->add_key(callback_data, key);
-                       callbacks->set_value(callback_data, key, value_name, value_type, data);
+                       callbacks->set_value(callback_data, key, value_name,
+                                            value_type, data);
                }
                talloc_free(key);
                talloc_free(value_name);
                talloc_free(data.data);
        }
-       close(fd);      
+       close(fd);
        return WERR_OK;
 }
index d74ffd2b4baaf7956c0643757d0d978afc1ac416..2dd27ca33dc4c706d5f93965e75fd8e832760715 100644 (file)
@@ -8,15 +8,15 @@
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program 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 General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
 #include "includes.h"
 #include "lib/registry/hive.h"
 #include "system/filesys.h"
@@ -28,7 +28,7 @@
 static struct hive_operations reg_backend_regf;
 
 /**
- * There are several places on the web where the REGF format is explained; 
+ * There are several places on the web where the REGF format is explained;
  *
  * TODO: Links
  */
@@ -53,18 +53,18 @@ static WERROR regf_save_hbin(struct regf_data *data);
 
 struct regf_key_data {
        struct hive_key key;
-       struct regf_data *hive; 
+       struct regf_data *hive;
        uint32_t offset;
        struct nk_block *nk;
 };
 
-static struct hbin_block *hbin_by_offset(const struct regf_data *data, 
-                                                                                uint32_t offset, uint32_t *rel_offset)
+static struct hbin_block *hbin_by_offset(const struct regf_data *data,
+                                        uint32_t offset, uint32_t *rel_offset)
 {
        int i;
 
        for (i = 0; data->hbins[i]; i++) {
-               if (offset >= data->hbins[i]->offset_from_first && 
+               if (offset >= data->hbins[i]->offset_from_first &&
                        offset < data->hbins[i]->offset_from_first+
                                         data->hbins[i]->offset_to_next) {
                        if (rel_offset != NULL)
@@ -84,7 +84,7 @@ static uint32_t regf_hdr_checksum(const uint8_t *buffer)
 {
        uint32_t checksum = 0, x;
        int i;
-       
+
        for (i = 0; i < 0x01FB; i+= 4) {
                x = IVAL(buffer, i);
                checksum ^= x;
@@ -122,14 +122,14 @@ static DATA_BLOB hbin_get(const struct regf_data *data, uint32_t offset)
        ret.length = (ret.length ^ 0xffffffff) + 1;
 
        ret.length -= 4; /* 4 bytes for the length... */
-       ret.data = hbin->data + 
+       ret.data = hbin->data +
                (offset - hbin->offset_from_first - 0x20) + 4;
-       
+
        return ret;
 }
 
-static bool hbin_get_tdr (struct regf_data *regf, uint32_t offset, 
-                                                 TALLOC_CTX *ctx, tdr_pull_fn_t pull_fn, void *p)
+static bool hbin_get_tdr(struct regf_data *regf, uint32_t offset,
+                        TALLOC_CTX *ctx, tdr_pull_fn_t pull_fn, void *p)
 {
        struct tdr_pull pull;
 
@@ -140,9 +140,10 @@ static bool hbin_get_tdr (struct regf_data *regf, uint32_t offset,
                DEBUG(1, ("Unable to get data at 0x%04x\n", offset));
                return false;
        }
-       
+
        if (NT_STATUS_IS_ERR(pull_fn(&pull, ctx, p))) {
-               DEBUG(1, ("Error parsing record at 0x%04x using tdr\n", offset));
+               DEBUG(1, ("Error parsing record at 0x%04x using tdr\n",
+                       offset));
                return false;
        }
 
@@ -150,8 +151,8 @@ static bool hbin_get_tdr (struct regf_data *regf, uint32_t offset,
 }
 
 /* Allocate some new data */
-static DATA_BLOB hbin_alloc(struct regf_data *data, uint32_t size, 
-                                                       uint32_t *offset)
+static DATA_BLOB hbin_alloc(struct regf_data *data, uint32_t size,
+                           uint32_t *offset)
 {
        DATA_BLOB ret;
        uint32_t rel_offset = -1; /* Relative offset ! */
@@ -190,13 +191,15 @@ static DATA_BLOB hbin_alloc(struct regf_data *data, uint32_t size,
                                my_size = -my_size;
                        } else if (my_size == size) { /* exact match */
                                rel_offset = j;
-                               DEBUG(4, ("Found free block of exact size %d in middle of HBIN\n", size));
+                               DEBUG(4, ("Found free block of exact size %d in middle of HBIN\n",
+                                       size));
                                break;
                        } else if (my_size > size) { /* data will remain */
                                rel_offset = j;
                                /* Split this block and mark the next block as free */
-                               SIVAL(hbin->data, rel_offset+size, my_size-size); 
-                               DEBUG(4, ("Found free block of size %d (needing %d) in middle of HBIN\n", my_size, size));
+                               SIVAL(hbin->data, rel_offset+size, my_size-size);
+                               DEBUG(4, ("Found free block of size %d (needing %d) in middle of HBIN\n",
+                                       my_size, size));
                                break;
                        }
                }
@@ -204,12 +207,14 @@ static DATA_BLOB hbin_alloc(struct regf_data *data, uint32_t size,
                if (rel_offset != -1)
                        break;
        }
-       
-       /* No space available in previous hbins, 
+
+       /* No space available in previous hbins,
         * allocate new one */
-       if (data->hbins[i] == NULL) { 
-               DEBUG(4, ("No space available in other HBINs for block of size %d, allocating new HBIN\n", size));
-               data->hbins = talloc_realloc(data, data->hbins, struct hbin_block *, i+2);
+       if (data->hbins[i] == NULL) {
+               DEBUG(4, ("No space available in other HBINs for block of size %d, allocating new HBIN\n",
+                       size));
+               data->hbins = talloc_realloc(data, data->hbins,
+                                            struct hbin_block *, i+2);
                hbin = talloc(data->hbins, struct hbin_block);
                SMB_ASSERT(hbin != NULL);
 
@@ -255,11 +260,12 @@ static uint32_t hbin_store (struct regf_data *data, DATA_BLOB blob)
        return ret;
 }
 
-static uint32_t hbin_store_tdr (struct regf_data *data, tdr_push_fn_t push_fn, void *p)
+static uint32_t hbin_store_tdr(struct regf_data *data,
+                              tdr_push_fn_t push_fn, void *p)
 {
        struct tdr_push *push = talloc_zero(data, struct tdr_push);
        uint32_t ret;
-       
+
        if (NT_STATUS_IS_ERR(push_fn(push, p))) {
                DEBUG(0, ("Error during push\n"));
                return -1;
@@ -278,26 +284,27 @@ static void hbin_free (struct regf_data *data, uint32_t offset)
 {
        int32_t size;
        uint32_t rel_offset;
-       int32_t next_size; 
+       int32_t next_size;
        struct hbin_block *hbin;
 
        SMB_ASSERT (offset > 0);
-       
+
        hbin = hbin_by_offset(data, offset, &rel_offset);
 
        if (hbin == NULL)
                return;
-       
+
        /* Get original size */
        size = IVALS(hbin->data, rel_offset);
 
        if (size > 0) {
-               DEBUG(1, ("Trying to free already freed block at 0x%04x\n", offset));
+               DEBUG(1, ("Trying to free already freed block at 0x%04x\n",
+                       offset));
                return;
        }
        /* Mark as unused */
        size = -size;
-       
+
        /* If the next block is free, merge into big free block */
        if (rel_offset + size < hbin->offset_to_next) {
                next_size = IVALS(hbin->data, rel_offset+size);
@@ -312,13 +319,14 @@ static void hbin_free (struct regf_data *data, uint32_t offset)
 
 /**
  * Store a data blob data was already stored, but has changed in size
- * Will try to save it at the current location if possible, otherwise 
+ * Will try to save it at the current location if possible, otherwise
  * does a free + store */
-static uint32_t hbin_store_resize(struct regf_data *data, 
-                                                                 uint32_t orig_offset, DATA_BLOB blob)
+static uint32_t hbin_store_resize(struct regf_data *data,
+                                 uint32_t orig_offset, DATA_BLOB blob)
 {
        uint32_t rel_offset;
-       struct hbin_block *hbin = hbin_by_offset(data, orig_offset, &rel_offset);
+       struct hbin_block *hbin = hbin_by_offset(data, orig_offset,
+                                                &rel_offset);
        int32_t my_size;
        int32_t orig_size;
        int32_t needed_size;
@@ -343,7 +351,8 @@ static uint32_t hbin_store_resize(struct regf_data *data,
                 * and free/merge it */
                if (orig_size - needed_size > 0x4) {
                        SIVALS(hbin->data, rel_offset, -needed_size);
-                       SIVALS(hbin->data, rel_offset + needed_size, needed_size-orig_size);
+                       SIVALS(hbin->data, rel_offset + needed_size,
+                              needed_size-orig_size);
                        hbin_free(data, orig_offset + needed_size);
                }
                return orig_offset;
@@ -357,7 +366,7 @@ static uint32_t hbin_store_resize(struct regf_data *data,
                        break;
 
                my_size = IVALS(hbin->data, i);
-               
+
                if (my_size == 0x0) {
                        DEBUG(0, ("Invalid zero-length block! File is corrupt.\n"));
                        break;
@@ -367,7 +376,8 @@ static uint32_t hbin_store_resize(struct regf_data *data,
 
                if (possible_size >= blob.length) {
                        SIVAL(hbin->data, rel_offset, -possible_size);
-                       memcpy(hbin->data + rel_offset + 0x4, blob.data, blob.length);
+                       memcpy(hbin->data + rel_offset + 0x4,
+                              blob.data, blob.length);
                        return orig_offset;
                }
        }
@@ -376,12 +386,13 @@ static uint32_t hbin_store_resize(struct regf_data *data,
        return hbin_store(data, blob);
 }
 
-static uint32_t hbin_store_tdr_resize (struct regf_data *regf, tdr_push_fn_t push_fn, 
-                                                                          uint32_t orig_offset, void *p)
+static uint32_t hbin_store_tdr_resize(struct regf_data *regf,
+                                     tdr_push_fn_t push_fn,
+                                     uint32_t orig_offset, void *p)
 {
        struct tdr_push *push = talloc_zero(regf, struct tdr_push);
        uint32_t ret;
-       
+
        if (NT_STATUS_IS_ERR(push_fn(push, p))) {
                DEBUG(0, ("Error during push\n"));
                return -1;
@@ -394,13 +405,13 @@ static uint32_t hbin_store_tdr_resize (struct regf_data *regf, tdr_push_fn_t pus
        return ret;
 }
 
-static uint32_t regf_create_lh_hash(const char *name) 
+static uint32_t regf_create_lh_hash(const char *name)
 {
        char *hash_name;
        uint32_t ret = 0;
        uint16_t i;
 
-       hash_name = strupper_talloc(NULL, name);                
+       hash_name = strupper_talloc(NULL, name);
        for (i = 0; *(hash_name + i) != 0; i++) {
                ret *= 37;
                ret += *(hash_name + i);
@@ -409,14 +420,14 @@ static uint32_t regf_create_lh_hash(const char *name)
        return ret;
 }
 
-static WERROR regf_get_info (TALLOC_CTX *mem_ctx,
-                                                        const struct hive_key *key, 
-                                                        const char **classname,
-                                                        uint32_t *num_subkeys,
-                                                        uint32_t *num_values,
-                                                        NTTIME *last_mod_time)
+static WERROR regf_get_info(TALLOC_CTX *mem_ctx,
+                           const struct hive_key *key,
+                           const char **classname,
+                           uint32_t *num_subkeys,
+                           uint32_t *num_values,
+                           NTTIME *last_mod_time)
 {
-       const struct regf_key_data *private_data = 
+       const struct regf_key_data *private_data =
                (const struct regf_key_data *)key;
 
        if (num_subkeys != NULL)
@@ -427,22 +438,23 @@ static WERROR regf_get_info (TALLOC_CTX *mem_ctx,
 
        if (classname != NULL) {
                if (private_data->nk->clsname_offset != -1) {
-                       DATA_BLOB data = hbin_get(private_data->hive, 
-                                                                         private_data->nk->clsname_offset);
-                       *classname = talloc_strndup(mem_ctx, 
-                                                        (char*)data.data, private_data->nk->clsname_length);
-               } else 
+                       DATA_BLOB data = hbin_get(private_data->hive,
+                                                 private_data->nk->clsname_offset);
+                       *classname = talloc_strndup(mem_ctx,
+                                                   (char*)data.data,
+                                                   private_data->nk->clsname_length);
+               } else
                        *classname = NULL;
        }
 
        /* TODO: Last mod time */
-       
+
        return WERR_OK;
 }
 
-static struct regf_key_data *regf_get_key(TALLOC_CTX *ctx, 
-                                                                                 struct regf_data *regf, 
-                                                                                 uint32_t offset)
+static struct regf_key_data *regf_get_key(TALLOC_CTX *ctx,
+                                         struct regf_data *regf,
+                                         uint32_t offset)
 {
        struct nk_block *nk;
        struct regf_key_data *ret;
@@ -457,7 +469,8 @@ static struct regf_key_data *regf_get_key(TALLOC_CTX *ctx,
 
        ret->nk = nk;
 
-       if (!hbin_get_tdr(regf, offset, nk, (tdr_pull_fn_t)tdr_pull_nk_block, nk)) {
+       if (!hbin_get_tdr(regf, offset, nk,
+                         (tdr_pull_fn_t)tdr_pull_nk_block, nk)) {
                DEBUG(0, ("Unable to find HBIN data for offset %d\n", offset));
                return NULL;
        }
@@ -472,11 +485,11 @@ static struct regf_key_data *regf_get_key(TALLOC_CTX *ctx,
 }
 
 
-static WERROR regf_get_value(TALLOC_CTX *ctx, const struct hive_key *key, 
-                                                         int idx, const char **name, 
-                                                         uint32_t *data_type, DATA_BLOB *data)
+static WERROR regf_get_value(TALLOC_CTX *ctx, const struct hive_key *key,
+                            int idx, const char **name,
+                            uint32_t *data_type, DATA_BLOB *data)
 {
-       const struct regf_key_data *private_data = 
+       const struct regf_key_data *private_data =
                        (const struct regf_key_data *)key;
        struct vk_block *vk;
        struct regf_data *regf = private_data->hive;
@@ -500,8 +513,9 @@ static WERROR regf_get_value(TALLOC_CTX *ctx, const struct hive_key *key,
 
        vk = talloc(NULL, struct vk_block);
        W_ERROR_HAVE_NO_MEMORY(vk);
-       
-       if (!hbin_get_tdr(regf, vk_offset, vk, (tdr_pull_fn_t)tdr_pull_vk_block, vk)) {
+
+       if (!hbin_get_tdr(regf, vk_offset, vk,
+                         (tdr_pull_fn_t)tdr_pull_vk_block, vk)) {
                DEBUG(0, ("Unable to get VK block at %d\n", vk_offset));
                talloc_free(vk);
                return WERR_GENERAL_FAILURE;
@@ -514,7 +528,7 @@ static WERROR regf_get_value(TALLOC_CTX *ctx, const struct hive_key *key,
        if (data_type != NULL)
                *data_type = vk->data_type;
 
-       if (vk->data_length & 0x80000000) { 
+       if (vk->data_length & 0x80000000) {
                vk->data_length &=~0x80000000;
                data->data = (uint8_t *)&vk->data_offset;
                data->length = vk->data_length;
@@ -527,13 +541,13 @@ static WERROR regf_get_value(TALLOC_CTX *ctx, const struct hive_key *key,
        }
 
        talloc_free(vk);
-       
+
        return WERR_OK;
 }
 
-static WERROR regf_get_value_by_name (TALLOC_CTX *mem_ctx, 
-                                                                struct hive_key *key, const char *name, 
-                                                                uint32_t *type, DATA_BLOB *data)
+static WERROR regf_get_value_by_name(TALLOC_CTX *mem_ctx,
+                                    struct hive_key *key, const char *name,
+                                    uint32_t *type, DATA_BLOB *data)
 {
        int i;
        const char *vname;
@@ -541,24 +555,25 @@ static WERROR regf_get_value_by_name (TALLOC_CTX *mem_ctx,
 
        /* FIXME: Do binary search? Is this list sorted at all? */
 
-       for (i = 0; W_ERROR_IS_OK(error = regf_get_value(mem_ctx, key, i, 
-                                                                                        &vname, type, data)); i++) {
+       for (i = 0; W_ERROR_IS_OK(error = regf_get_value(mem_ctx, key, i,
+                                                        &vname, type, data));
+                                                        i++) {
                if (!strcmp(vname, name))
                        return WERR_OK;
-    }
+       }
 
        if (W_ERROR_EQUAL(error, WERR_NO_MORE_ITEMS))
                return WERR_NOT_FOUND;
 
        return error;
 }
-       
 
-static WERROR regf_get_subkey_by_index (TALLOC_CTX *ctx, 
-                                                                               const struct hive_key *key, 
-                                                                               uint32_t idx, const char **name,
-                                                                               const char **classname,
-                                                                               NTTIME *last_mod_time)
+
+static WERROR regf_get_subkey_by_index(TALLOC_CTX *ctx,
+                                      const struct hive_key *key,
+                                      uint32_t idx, const char **name,
+                                      const char **classname,
+                                      NTTIME *last_mod_time)
 {
        DATA_BLOB data;
        struct regf_key_data *ret;
@@ -594,7 +609,7 @@ static WERROR regf_get_subkey_by_index (TALLOC_CTX *ctx,
                        return WERR_GENERAL_FAILURE;
                }
                key_off = li.nk_offset[idx];
-       
+
        } else if (!strncmp((char *)data.data, "lf", 2)) {
                struct lf_block lf;
                struct tdr_pull pull;
@@ -618,17 +633,17 @@ static WERROR regf_get_subkey_by_index (TALLOC_CTX *ctx,
        } else if (!strncmp((char *)data.data, "lh", 2)) {
                struct lh_block lh;
                struct tdr_pull pull;
-               
+
                DEBUG(10, ("Subkeys in LH list\n"));
                ZERO_STRUCT(pull);
                pull.data = data;
-               
+
                if (NT_STATUS_IS_ERR(tdr_pull_lh_block(&pull, nk, &lh))) {
                        DEBUG(0, ("Error parsing LH list\n"));
                        return WERR_GENERAL_FAILURE;
                }
                SMB_ASSERT(!strncmp(lh.header, "lh", 2));
-               
+
                if (lh.key_count != nk->num_subkeys) {
                        DEBUG(0, ("Subkey counts don't match\n"));
                        return WERR_GENERAL_FAILURE;
@@ -639,41 +654,43 @@ static WERROR regf_get_subkey_by_index (TALLOC_CTX *ctx,
                struct tdr_pull pull;
                uint16_t i;
                uint16_t sublist_count = 0;
-               
+
                DEBUG(10, ("Subkeys in RI list\n"));
                ZERO_STRUCT(pull);
                pull.data = data;
-               
+
                if (NT_STATUS_IS_ERR(tdr_pull_ri_block(&pull, nk, &ri))) {
                        DEBUG(0, ("Error parsing RI list\n"));
                        return WERR_GENERAL_FAILURE;
                }
                SMB_ASSERT(!strncmp(ri.header, "ri", 2));
-               
+
                for (i = 0; i < ri.key_count; i++) {
                        DATA_BLOB list_data;
-                       
+
                        /* Get sublist data blob */
                        list_data = hbin_get(private_data->hive, ri.offset[i]);
                        if (!list_data.data) {
                                DEBUG(0, ("Error getting RI list."));
                                return WERR_GENERAL_FAILURE;
                        }
-                       
+
                        ZERO_STRUCT(pull);
                        pull.data = list_data;
-                       
+
                        if (!strncmp((char *)list_data.data, "li", 2)) {
                                struct li_block li;
 
                                DEBUG(10, ("Subkeys in RI->LI list\n"));
 
-                               if (NT_STATUS_IS_ERR(tdr_pull_li_block(&pull, nk, &li))) {
+                               if (NT_STATUS_IS_ERR(tdr_pull_li_block(&pull,
+                                                                      nk,
+                                                                      &li))) {
                                        DEBUG(0, ("Error parsing LI list from RI\n"));
                                        return WERR_GENERAL_FAILURE;
                                }
                                SMB_ASSERT(!strncmp(li.header, "li", 2));
-                               
+
                                /* Advance to next sublist if necessary */
                                if (idx >= sublist_count + li.key_count) {
                                        sublist_count += li.key_count;
@@ -684,10 +701,12 @@ static WERROR regf_get_subkey_by_index (TALLOC_CTX *ctx,
                                break;
                        } else if (!strncmp((char *)list_data.data, "lh", 2)) {
                                struct lh_block lh;
-                               
+
                                DEBUG(10, ("Subkeys in RI->LH list\n"));
 
-                               if (NT_STATUS_IS_ERR(tdr_pull_lh_block(&pull, nk, &lh))) {
+                               if (NT_STATUS_IS_ERR(tdr_pull_lh_block(&pull,
+                                                                      nk,
+                                                                      &lh))) {
                                        DEBUG(0, ("Error parsing LH list from RI\n"));
                                        return WERR_GENERAL_FAILURE;
                                }
@@ -706,15 +725,15 @@ static WERROR regf_get_subkey_by_index (TALLOC_CTX *ctx,
 
                                return WERR_GENERAL_FAILURE;
                        }
-                       
+
                }
-       
+
                if (idx > sublist_count) {
                        return WERR_NO_MORE_ITEMS;
                }
 
        } else {
-               DEBUG(0, ("Unknown type for subkey list (0x%04x): %c%c\n", 
+               DEBUG(0, ("Unknown type for subkey list (0x%04x): %c%c\n",
                                  nk->subkeys_offset, data.data[0], data.data[1]));
                return WERR_GENERAL_FAILURE;
        }
@@ -723,11 +742,12 @@ static WERROR regf_get_subkey_by_index (TALLOC_CTX *ctx,
 
        if (classname != NULL) {
                if (ret->nk->clsname_offset != -1) {
-                       DATA_BLOB db = hbin_get(ret->hive, 
-                                                                         ret->nk->clsname_offset);
-                       *classname = talloc_strndup(ctx, 
-                                                        (char*)db.data, ret->nk->clsname_length);
-               } else 
+                       DATA_BLOB db = hbin_get(ret->hive,
+                                               ret->nk->clsname_offset);
+                       *classname = talloc_strndup(ctx,
+                                                   (char*)db.data,
+                                                   ret->nk->clsname_length);
+               } else
                        *classname = NULL;
        }
 
@@ -742,16 +762,17 @@ static WERROR regf_get_subkey_by_index (TALLOC_CTX *ctx,
        return WERR_OK;
 }
 
-static WERROR regf_match_subkey_by_name(TALLOC_CTX *ctx, 
-                                               const struct hive_key *key, uint32_t offset, 
-                                               const char *name, uint32_t *ret) 
+static WERROR regf_match_subkey_by_name(TALLOC_CTX *ctx,
+                                       const struct hive_key *key,
+                                       uint32_t offset,
+                                       const char *name, uint32_t *ret)
 {
        DATA_BLOB subkey_data;
        struct nk_block subkey;
        struct tdr_pull pull;
-       const struct regf_key_data *private_data = 
+       const struct regf_key_data *private_data =
                (const struct regf_key_data *)key;
-       
+
        subkey_data = hbin_get(private_data->hive, offset);
        if (!subkey_data.data) {
                DEBUG(0, ("Unable to retrieve subkey HBIN\n"));
@@ -760,7 +781,7 @@ static WERROR regf_match_subkey_by_name(TALLOC_CTX *ctx,
 
        ZERO_STRUCT(pull);
        pull.data = subkey_data;
-       
+
        if (NT_STATUS_IS_ERR(tdr_pull_nk_block(&pull, ctx, &subkey))) {
                DEBUG(0, ("Error parsing NK structure.\n"));
                return WERR_GENERAL_FAILURE;
@@ -778,14 +799,14 @@ static WERROR regf_match_subkey_by_name(TALLOC_CTX *ctx,
        }
        return WERR_OK;
 }
-       
-static WERROR regf_get_subkey_by_name(TALLOC_CTX *ctx, 
-                                                                         const struct hive_key *key, 
-                                                                         const char *name, 
-                                                                         struct hive_key **ret)
+
+static WERROR regf_get_subkey_by_name(TALLOC_CTX *ctx,
+                                     const struct hive_key *key,
+                                     const char *name,
+                                     struct hive_key **ret)
 {
        DATA_BLOB data;
-       const struct regf_key_data *private_data = 
+       const struct regf_key_data *private_data =
                (const struct regf_key_data *)key;
        struct nk_block *nk = private_data->nk;
        uint32_t key_off = 0;
@@ -804,7 +825,7 @@ static WERROR regf_get_subkey_by_name(TALLOC_CTX *ctx,
                DEBUG(10, ("Subkeys in LI list\n"));
                ZERO_STRUCT(pull);
                pull.data = data;
-               
+
                if (NT_STATUS_IS_ERR(tdr_pull_li_block(&pull, nk, &li))) {
                        DEBUG(0, ("Error parsing LI list\n"));
                        return WERR_GENERAL_FAILURE;
@@ -815,9 +836,12 @@ static WERROR regf_get_subkey_by_name(TALLOC_CTX *ctx,
                        DEBUG(0, ("Subkey counts don't match\n"));
                        return WERR_GENERAL_FAILURE;
                }
-               
+
                for (i = 0; i < li.key_count; i++) {
-                       W_ERROR_NOT_OK_RETURN(regf_match_subkey_by_name(nk, key, li.nk_offset[i], name, &key_off));
+                       W_ERROR_NOT_OK_RETURN(regf_match_subkey_by_name(nk, key,
+                                                                       li.nk_offset[i],
+                                                                       name,
+                                                                       &key_off));
                        if (key_off != 0)
                                break;
                }
@@ -831,7 +855,7 @@ static WERROR regf_get_subkey_by_name(TALLOC_CTX *ctx,
                DEBUG(10, ("Subkeys in LF list\n"));
                ZERO_STRUCT(pull);
                pull.data = data;
-               
+
                if (NT_STATUS_IS_ERR(tdr_pull_lf_block(&pull, nk, &lf))) {
                        DEBUG(0, ("Error parsing LF list\n"));
                        return WERR_GENERAL_FAILURE;
@@ -842,12 +866,16 @@ static WERROR regf_get_subkey_by_name(TALLOC_CTX *ctx,
                        DEBUG(0, ("Subkey counts don't match\n"));
                        return WERR_GENERAL_FAILURE;
                }
-               
+
                for (i = 0; i < lf.key_count; i++) {
                        if (strncmp(lf.hr[i].hash, name, 4)) {
                                continue;
                        }
-                       W_ERROR_NOT_OK_RETURN(regf_match_subkey_by_name(nk, key, lf.hr[i].nk_offset, name, &key_off));
+                       W_ERROR_NOT_OK_RETURN(regf_match_subkey_by_name(nk,
+                                                                       key,
+                                                                       lf.hr[i].nk_offset,
+                                                                       name,
+                                                                       &key_off));
                        if (key_off != 0)
                                break;
                }
@@ -862,7 +890,7 @@ static WERROR regf_get_subkey_by_name(TALLOC_CTX *ctx,
                DEBUG(10, ("Subkeys in LH list\n"));
                ZERO_STRUCT(pull);
                pull.data = data;
-               
+
                if (NT_STATUS_IS_ERR(tdr_pull_lh_block(&pull, nk, &lh))) {
                        DEBUG(0, ("Error parsing LH list\n"));
                        return WERR_GENERAL_FAILURE;
@@ -873,16 +901,20 @@ static WERROR regf_get_subkey_by_name(TALLOC_CTX *ctx,
                        DEBUG(0, ("Subkey counts don't match\n"));
                        return WERR_GENERAL_FAILURE;
                }
-               
+
                hash = regf_create_lh_hash(name);
                for (i = 0; i < lh.key_count; i++) {
                        if (lh.hr[i].base37 != hash) {
                                continue;
                        }
-                       W_ERROR_NOT_OK_RETURN(regf_match_subkey_by_name(nk, key, lh.hr[i].nk_offset, name, &key_off));
+                       W_ERROR_NOT_OK_RETURN(regf_match_subkey_by_name(nk,
+                                                                       key,
+                                                                       lh.hr[i].nk_offset,
+                                                                       name,
+                                                                       &key_off));
                        if (key_off != 0)
                                break;
-               }       
+               }
                if (key_off == 0)
                        return WERR_NOT_FOUND;
        } else if (!strncmp((char *)data.data, "ri", 2)) {
@@ -893,46 +925,52 @@ static WERROR regf_get_subkey_by_name(TALLOC_CTX *ctx,
                DEBUG(10, ("Subkeys in RI list\n"));
                ZERO_STRUCT(pull);
                pull.data = data;
-               
+
                if (NT_STATUS_IS_ERR(tdr_pull_ri_block(&pull, nk, &ri))) {
                        DEBUG(0, ("Error parsing RI list\n"));
                        return WERR_GENERAL_FAILURE;
                }
                SMB_ASSERT(!strncmp(ri.header, "ri", 2));
-                       
+
                for (i = 0; i < ri.key_count; i++) {
                        DATA_BLOB list_data;
-                       
+
                        /* Get sublist data blob */
                        list_data = hbin_get(private_data->hive, ri.offset[i]);
                        if (list_data.data == NULL) {
                                DEBUG(0, ("Error getting RI list."));
                                return WERR_GENERAL_FAILURE;
                        }
-                               
+
                        ZERO_STRUCT(pull);
                        pull.data = list_data;
-                       
+
                        if (!strncmp((char *)list_data.data, "li", 2)) {
                                struct li_block li;
-       
-                               if (NT_STATUS_IS_ERR(tdr_pull_li_block(&pull, nk, &li))) {
+
+                               if (NT_STATUS_IS_ERR(tdr_pull_li_block(&pull,
+                                                                      nk,
+                                                                      &li))) {
                                        DEBUG(0, ("Error parsing LI list from RI\n"));
                                        return WERR_GENERAL_FAILURE;
                                }
                                SMB_ASSERT(!strncmp(li.header, "li", 2));
-                               
+
                                for (j = 0; j < li.key_count; j++) {
-                                       W_ERROR_NOT_OK_RETURN(regf_match_subkey_by_name(nk, key, 
-                                                               li.nk_offset[j], name, &key_off));
+                                       W_ERROR_NOT_OK_RETURN(regf_match_subkey_by_name(nk, key,
+                                                                                       li.nk_offset[j],
+                                                                                       name,
+                                                                                       &key_off));
                                        if (key_off)
                                                break;
                                }
                        } else if (!strncmp((char *)list_data.data, "lh", 2)) {
                                struct lh_block lh;
                                uint32_t hash;
-                               
-                               if (NT_STATUS_IS_ERR(tdr_pull_lh_block(&pull, nk, &lh))) {
+
+                               if (NT_STATUS_IS_ERR(tdr_pull_lh_block(&pull,
+                                                                      nk,
+                                                                      &lh))) {
                                        DEBUG(0, ("Error parsing LH list from RI\n"));
                                        return WERR_GENERAL_FAILURE;
                                }
@@ -943,8 +981,10 @@ static WERROR regf_get_subkey_by_name(TALLOC_CTX *ctx,
                                        if (lh.hr[j].base37 != hash) {
                                                continue;
                                        }
-                                       W_ERROR_NOT_OK_RETURN(regf_match_subkey_by_name(nk, key, 
-                                                               lh.hr[j].nk_offset, name, &key_off));
+                                       W_ERROR_NOT_OK_RETURN(regf_match_subkey_by_name(nk, key,
+                                                                                       lh.hr[j].nk_offset,
+                                                                                       name,
+                                                                                       &key_off));
                                        if (key_off)
                                                break;
                                }
@@ -959,14 +999,15 @@ static WERROR regf_get_subkey_by_name(TALLOC_CTX *ctx,
                return WERR_GENERAL_FAILURE;
        }
 
-       *ret = (struct hive_key *)regf_get_key (ctx, private_data->hive, key_off);
+       *ret = (struct hive_key *)regf_get_key(ctx, private_data->hive,
+                                              key_off);
        return WERR_OK;
 }
 
-static WERROR regf_set_sec_desc (struct hive_key *key, 
-                                                                const struct security_descriptor *sec_desc)
+static WERROR regf_set_sec_desc(struct hive_key *key,
+                               const struct security_descriptor *sec_desc)
 {
-       const struct regf_key_data *private_data = 
+       const struct regf_key_data *private_data =
                (const struct regf_key_data *)key;
        struct sk_block cur_sk, sk, new_sk;
        struct regf_data *regf = private_data->hive;
@@ -976,47 +1017,51 @@ static WERROR regf_set_sec_desc (struct hive_key *key,
        bool update_cur_sk = false;
 
        /* Get the root nk */
-       hbin_get_tdr(regf, regf->header->data_offset, regf, 
-                                (tdr_pull_fn_t) tdr_pull_nk_block, &root);
+       hbin_get_tdr(regf, regf->header->data_offset, regf,
+                    (tdr_pull_fn_t) tdr_pull_nk_block, &root);
 
        /* Push the security descriptor to a blob */
-       if (NT_STATUS_IS_ERR(ndr_push_struct_blob(&data, regf, sec_desc, 
-                                       (ndr_push_flags_fn_t)ndr_push_security_descriptor))) {
+       if (NT_STATUS_IS_ERR(ndr_push_struct_blob(&data, regf, sec_desc,
+                            (ndr_push_flags_fn_t)ndr_push_security_descriptor))) {
                DEBUG(0, ("Unable to push security descriptor\n"));
                return WERR_GENERAL_FAILURE;
        }
 
-       /* Get the current security descriptor for the key */   
-       if (!hbin_get_tdr(regf, private_data->nk->sk_offset, regf, 
-                                         (tdr_pull_fn_t) tdr_pull_sk_block, &cur_sk)) {
+       /* Get the current security descriptor for the key */
+       if (!hbin_get_tdr(regf, private_data->nk->sk_offset, regf,
+                         (tdr_pull_fn_t) tdr_pull_sk_block, &cur_sk)) {
                DEBUG(0, ("Unable to find security descriptor for current key\n"));
                return WERR_BADFILE;
        }
        /* If there's no change, change nothing. */
-       if (memcmp(data.data, cur_sk.sec_desc, MIN(data.length, cur_sk.rec_size)) == 0) {
+       if (memcmp(data.data, cur_sk.sec_desc,
+                  MIN(data.length, cur_sk.rec_size)) == 0) {
                return WERR_OK;
        }
 
-       /* Delete the current sk if only this key is using it */        
+       /* Delete the current sk if only this key is using it */
        if (cur_sk.ref_cnt == 1) {
-               /* Get the previous security descriptor for the key */  
-               if (!hbin_get_tdr(regf, cur_sk.prev_offset, regf, 
-                                                 (tdr_pull_fn_t) tdr_pull_sk_block, &sk)) {
+               /* Get the previous security descriptor for the key */
+               if (!hbin_get_tdr(regf, cur_sk.prev_offset, regf,
+                                 (tdr_pull_fn_t) tdr_pull_sk_block, &sk)) {
                        DEBUG(0, ("Unable to find prev security descriptor for current key\n"));
                        return WERR_BADFILE;
                }
                /* Change and store the previous security descriptor */
                sk.next_offset = cur_sk.next_offset;
-               hbin_store_tdr_resize(regf, (tdr_push_fn_t) tdr_push_sk_block, cur_sk.prev_offset, &sk);
-               
-               /* Get the next security descriptor for the key */      
-               if (!hbin_get_tdr(regf, cur_sk.next_offset, regf, (tdr_pull_fn_t) tdr_pull_sk_block, &sk)) {
+               hbin_store_tdr_resize(regf, (tdr_push_fn_t) tdr_push_sk_block,
+                                     cur_sk.prev_offset, &sk);
+
+               /* Get the next security descriptor for the key */
+               if (!hbin_get_tdr(regf, cur_sk.next_offset, regf,
+                                 (tdr_pull_fn_t) tdr_pull_sk_block, &sk)) {
                        DEBUG(0, ("Unable to find next security descriptor for current key\n"));
                        return WERR_BADFILE;
                }
                /* Change and store the next security descriptor */
                sk.prev_offset = cur_sk.prev_offset;
-               hbin_store_tdr_resize(regf, (tdr_push_fn_t) tdr_push_sk_block, cur_sk.next_offset, &sk);
+               hbin_store_tdr_resize(regf, (tdr_push_fn_t) tdr_push_sk_block,
+                                     cur_sk.next_offset, &sk);
 
                hbin_free(regf, private_data->nk->sk_offset);
        } else {
@@ -1029,20 +1074,26 @@ static WERROR regf_set_sec_desc (struct hive_key *key,
 
        do {
                cur_sk_offset = sk_offset;
-               if (!hbin_get_tdr(regf, sk_offset, regf, (tdr_pull_fn_t) tdr_pull_sk_block, &sk)) {
+               if (!hbin_get_tdr(regf, sk_offset, regf,
+                                 (tdr_pull_fn_t) tdr_pull_sk_block, &sk)) {
                        DEBUG(0, ("Unable to find security descriptor\n"));
                        return WERR_BADFILE;
                }
                if (memcmp(data.data, sk.sec_desc, MIN(data.length, sk.rec_size)) == 0) {
                        private_data->nk->sk_offset = sk_offset;
                        sk.ref_cnt++;
-                       hbin_store_tdr_resize(regf, (tdr_push_fn_t) tdr_push_sk_block, sk_offset, &sk);
-                       hbin_store_tdr_resize(regf, (tdr_push_fn_t) tdr_push_nk_block, private_data->offset, private_data->nk);
+                       hbin_store_tdr_resize(regf,
+                                             (tdr_push_fn_t) tdr_push_sk_block,
+                                             sk_offset, &sk);
+                       hbin_store_tdr_resize(regf,
+                                             (tdr_push_fn_t) tdr_push_nk_block,
+                                             private_data->offset,
+                                             private_data->nk);
                        return WERR_OK;
                }
                sk_offset = sk.next_offset;
        } while (sk_offset != root.sk_offset);
-       
+
        ZERO_STRUCT(new_sk);
        new_sk.header = "sk";
        new_sk.prev_offset = cur_sk_offset;
@@ -1050,8 +1101,10 @@ static WERROR regf_set_sec_desc (struct hive_key *key,
        new_sk.ref_cnt = 1;
        new_sk.rec_size = data.length;
        new_sk.sec_desc = data.data;
-       
-       sk_offset = hbin_store_tdr(regf, (tdr_push_fn_t) tdr_push_sk_block, &new_sk);
+
+       sk_offset = hbin_store_tdr(regf,
+                                  (tdr_push_fn_t) tdr_push_sk_block,
+                                  &new_sk);
        if (sk_offset == -1) {
                DEBUG(0, ("Error storing sk block\n"));
                return WERR_GENERAL_FAILURE;
@@ -1059,47 +1112,58 @@ static WERROR regf_set_sec_desc (struct hive_key *key,
        private_data->nk->sk_offset = sk_offset;
 
        if (update_cur_sk) {
-               hbin_store_tdr_resize(regf, (tdr_push_fn_t) tdr_push_sk_block, private_data->nk->sk_offset, &cur_sk);
+               hbin_store_tdr_resize(regf,
+                                     (tdr_push_fn_t) tdr_push_sk_block,
+                                     private_data->nk->sk_offset, &cur_sk);
        }
 
-       /* Get the previous security descriptor for the key */  
-       if (!hbin_get_tdr(regf, new_sk.prev_offset, regf, (tdr_pull_fn_t) tdr_pull_sk_block, &sk)) {
+       /* Get the previous security descriptor for the key */
+       if (!hbin_get_tdr(regf, new_sk.prev_offset, regf,
+                         (tdr_pull_fn_t) tdr_pull_sk_block, &sk)) {
                DEBUG(0, ("Unable to find security descriptor for previous key\n"));
                return WERR_BADFILE;
        }
        /* Change and store the previous security descriptor */
        sk.next_offset = sk_offset;
-       hbin_store_tdr_resize(regf, (tdr_push_fn_t) tdr_push_sk_block, cur_sk.prev_offset, &sk);
-       
-       /* Get the next security descriptor for the key (always root, as we append) */  
-       if (!hbin_get_tdr(regf, new_sk.next_offset, regf, (tdr_pull_fn_t) tdr_pull_sk_block, &sk)) {
+       hbin_store_tdr_resize(regf,
+                             (tdr_push_fn_t) tdr_push_sk_block,
+                             cur_sk.prev_offset, &sk);
+
+       /* Get the next security descriptor for the key (always root, as we append) */
+       if (!hbin_get_tdr(regf, new_sk.next_offset, regf,
+                         (tdr_pull_fn_t) tdr_pull_sk_block, &sk)) {
                DEBUG(0, ("Unable to find security descriptor for current key\n"));
                return WERR_BADFILE;
        }
        /* Change and store the next security descriptor (always root, as we append) */
        sk.prev_offset = sk_offset;
-       hbin_store_tdr_resize(regf, (tdr_push_fn_t) tdr_push_sk_block, root.sk_offset, &sk);
+       hbin_store_tdr_resize(regf,
+                             (tdr_push_fn_t) tdr_push_sk_block,
+                             root.sk_offset, &sk);
 
 
        /* Store the nk. */
-       hbin_store_tdr_resize(regf, (tdr_push_fn_t) tdr_push_sk_block, private_data->offset, private_data->nk);
+       hbin_store_tdr_resize(regf,
+                             (tdr_push_fn_t) tdr_push_sk_block,
+                             private_data->offset, private_data->nk);
        return WERR_OK;
 }
 
-static WERROR regf_get_sec_desc(TALLOC_CTX *ctx, const struct hive_key *key, 
-                                                               struct security_descriptor **sd)
+static WERROR regf_get_sec_desc(TALLOC_CTX *ctx, const struct hive_key *key,
+                               struct security_descriptor **sd)
 {
-       const struct regf_key_data *private_data = 
+       const struct regf_key_data *private_data =
                (const struct regf_key_data *)key;
        struct sk_block sk;
        struct regf_data *regf = private_data->hive;
        DATA_BLOB data;
 
-       if (!hbin_get_tdr(regf, private_data->nk->sk_offset, ctx, (tdr_pull_fn_t) tdr_pull_sk_block, &sk)) {
+       if (!hbin_get_tdr(regf, private_data->nk->sk_offset, ctx,
+                         (tdr_pull_fn_t) tdr_pull_sk_block, &sk)) {
                DEBUG(0, ("Unable to find security descriptor\n"));
                return WERR_GENERAL_FAILURE;
        }
-               
+
        if (strcmp(sk.header, "sk") != 0) {
                DEBUG(0, ("Expected 'sk', got '%s'\n", sk.header));
                return WERR_GENERAL_FAILURE;
@@ -1110,7 +1174,8 @@ static WERROR regf_get_sec_desc(TALLOC_CTX *ctx, const struct hive_key *key,
 
        data.data = sk.sec_desc;
        data.length = sk.rec_size;
-       if (NT_STATUS_IS_ERR(ndr_pull_struct_blob(&data, ctx, *sd, (ndr_pull_flags_fn_t)ndr_pull_security_descriptor))) {
+       if (NT_STATUS_IS_ERR(ndr_pull_struct_blob(&data, ctx, *sd,
+                                                 (ndr_pull_flags_fn_t)ndr_pull_security_descriptor))) {
                DEBUG(0, ("Error parsing security descriptor\n"));
                return WERR_GENERAL_FAILURE;
        }
@@ -1118,45 +1183,51 @@ static WERROR regf_get_sec_desc(TALLOC_CTX *ctx, const struct hive_key *key,
        return WERR_OK;
 }
 
-static WERROR regf_sl_add_entry(struct regf_data *regf, uint32_t list_offset, 
-                                       const char *name, uint32_t key_offset, uint32_t *ret)
+static WERROR regf_sl_add_entry(struct regf_data *regf, uint32_t list_offset,
+                               const char *name,
+                               uint32_t key_offset, uint32_t *ret)
 {
        DATA_BLOB data;
 
        /* Create a new key if necessary */
-       if (list_offset == -1) { 
+       if (list_offset == -1) {
                if (regf->header->version.major != 1) {
                        DEBUG(0, ("Can't store keys in unknown registry format\n"));
                        return WERR_NOT_SUPPORTED;
                }
-               if (regf->header->version.minor < 3) { 
+               if (regf->header->version.minor < 3) {
                        /* Store LI */
                        struct li_block li;
                        ZERO_STRUCT(li);
                        li.header = "li";
-                       li.key_count = 1; 
+                       li.key_count = 1;
 
                        li.nk_offset = talloc_array(regf, uint32_t, 1);
                        W_ERROR_HAVE_NO_MEMORY(li.nk_offset);
                        li.nk_offset[0] = key_offset;
 
-                       *ret = hbin_store_tdr(regf, (tdr_push_fn_t) tdr_push_li_block, &li);
+                       *ret = hbin_store_tdr(regf,
+                                             (tdr_push_fn_t) tdr_push_li_block,
+                                             &li);
 
                        talloc_free(li.nk_offset);
-               } else if (regf->header->version.minor == 3 || regf->header->version.minor == 4) {
+               } else if (regf->header->version.minor == 3 ||
+                          regf->header->version.minor == 4) {
                        /* Store LF */
                        struct lf_block lf;
                        ZERO_STRUCT(lf);
                        lf.header = "lf";
                        lf.key_count = 1;
-                       
+
                        lf.hr = talloc_array(regf, struct hash_record, 1);
                        W_ERROR_HAVE_NO_MEMORY(lf.hr);
                        lf.hr[0].nk_offset = key_offset;
                        lf.hr[0].hash = talloc_strndup(lf.hr, name, 4);
                        W_ERROR_HAVE_NO_MEMORY(lf.hr[0].hash);
 
-                       *ret = hbin_store_tdr(regf, (tdr_push_fn_t) tdr_push_lf_block, &lf);
+                       *ret = hbin_store_tdr(regf,
+                                             (tdr_push_fn_t) tdr_push_lf_block,
+                                             &lf);
 
                        talloc_free(lf.hr);
                } else if (regf->header->version.minor == 5) {
@@ -1165,19 +1236,21 @@ static WERROR regf_sl_add_entry(struct regf_data *regf, uint32_t list_offset,
                        ZERO_STRUCT(lh);
                        lh.header = "lh";
                        lh.key_count = 1;
-                       
+
                        lh.hr = talloc_array(regf, struct lh_hash, 1);
                        W_ERROR_HAVE_NO_MEMORY(lh.hr);
                        lh.hr[0].nk_offset = key_offset;
                        lh.hr[0].base37 = regf_create_lh_hash(name);
 
-                       *ret = hbin_store_tdr(regf, (tdr_push_fn_t) tdr_push_lh_block, &lh);
+                       *ret = hbin_store_tdr(regf,
+                                             (tdr_push_fn_t) tdr_push_lh_block,
+                                             &lh);
 
                        talloc_free(lh.hr);
                }
                return WERR_OK;
-       } 
-       
+       }
+
        data = hbin_get(regf, list_offset);
        if (!data.data) {
                DEBUG(0, ("Unable to find subkey list\n"));
@@ -1187,7 +1260,7 @@ static WERROR regf_sl_add_entry(struct regf_data *regf, uint32_t list_offset,
        if (!strncmp((char *)data.data, "li", 2)) {
                struct tdr_pull pull;
                struct li_block li;
-       
+
                ZERO_STRUCT(pull);
                pull.data = data;
 
@@ -1201,13 +1274,16 @@ static WERROR regf_sl_add_entry(struct regf_data *regf, uint32_t list_offset,
                        DEBUG(0, ("LI header corrupt\n"));
                        return WERR_BADFILE;
                }
-               
-               li.nk_offset = talloc_realloc(regf, li.nk_offset, uint32_t, li.key_count+1);
+
+               li.nk_offset = talloc_realloc(regf, li.nk_offset,
+                                             uint32_t, li.key_count+1);
                W_ERROR_HAVE_NO_MEMORY(li.nk_offset);
                li.nk_offset[li.key_count] = key_offset;
                li.key_count++;
-               *ret = hbin_store_tdr_resize(regf, (tdr_push_fn_t)tdr_push_li_block, list_offset, &li);
-               
+               *ret = hbin_store_tdr_resize(regf,
+                                            (tdr_push_fn_t)tdr_push_li_block,
+                                            list_offset, &li);
+
                talloc_free(li.nk_offset);
        } else if (!strncmp((char *)data.data, "lf", 2)) {
                struct tdr_pull pull;
@@ -1221,14 +1297,17 @@ static WERROR regf_sl_add_entry(struct regf_data *regf, uint32_t list_offset,
                        return WERR_BADFILE;
                }
                SMB_ASSERT(!strncmp(lf.header, "lf", 2));
-               
-               lf.hr = talloc_realloc(regf, lf.hr, struct hash_record, lf.key_count+1);
+
+               lf.hr = talloc_realloc(regf, lf.hr, struct hash_record,
+                                      lf.key_count+1);
                W_ERROR_HAVE_NO_MEMORY(lf.hr);
                lf.hr[lf.key_count].nk_offset = key_offset;
                lf.hr[lf.key_count].hash = talloc_strndup(lf.hr, name, 4);
                W_ERROR_HAVE_NO_MEMORY(lf.hr[lf.key_count].hash);
                lf.key_count++;
-               *ret = hbin_store_tdr_resize(regf, (tdr_push_fn_t)tdr_push_lf_block, list_offset, &lf);
+               *ret = hbin_store_tdr_resize(regf,
+                                            (tdr_push_fn_t)tdr_push_lf_block,
+                                            list_offset, &lf);
 
                talloc_free(lf.hr);
        } else if (!strncmp((char *)data.data, "lh", 2)) {
@@ -1243,13 +1322,16 @@ static WERROR regf_sl_add_entry(struct regf_data *regf, uint32_t list_offset,
                        return WERR_BADFILE;
                }
                SMB_ASSERT(!strncmp(lh.header, "lh", 2));
-               
-               lh.hr = talloc_realloc(regf, lh.hr, struct lh_hash, lh.key_count+1);
+
+               lh.hr = talloc_realloc(regf, lh.hr, struct lh_hash,
+                                      lh.key_count+1);
                W_ERROR_HAVE_NO_MEMORY(lh.hr);
                lh.hr[lh.key_count].nk_offset = key_offset;
                lh.hr[lh.key_count].base37 = regf_create_lh_hash(name);
                lh.key_count++;
-               *ret = hbin_store_tdr_resize(regf, (tdr_push_fn_t)tdr_push_lh_block, list_offset, &lh);
+               *ret = hbin_store_tdr_resize(regf,
+                                            (tdr_push_fn_t)tdr_push_lh_block,
+                                            list_offset, &lh);
 
                talloc_free(lh.hr);
        } else if (!strncmp((char *)data.data, "ri", 2)) {
@@ -1260,12 +1342,12 @@ static WERROR regf_sl_add_entry(struct regf_data *regf, uint32_t list_offset,
                DEBUG(0, ("Cannot add to unknown subkey list\n"));
                return WERR_BADFILE;
        }
-       
+
        return WERR_OK;
 }
 
-static WERROR regf_sl_del_entry(struct regf_data *regf, uint32_t list_offset, 
-                                                               uint32_t key_offset, uint32_t *ret) 
+static WERROR regf_sl_del_entry(struct regf_data *regf, uint32_t list_offset,
+                               uint32_t key_offset, uint32_t *ret)
 {
        DATA_BLOB data;
 
@@ -1280,17 +1362,17 @@ static WERROR regf_sl_del_entry(struct regf_data *regf, uint32_t list_offset,
                struct tdr_pull pull;
                uint16_t i;
                bool found_offset = false;
-       
+
                DEBUG(10, ("Subkeys in LI list\n"));
-               
+
                ZERO_STRUCT(pull);
-               pull.data = data;       
-               
+               pull.data = data;
+
                if (NT_STATUS_IS_ERR(tdr_pull_li_block(&pull, regf, &li))) {
                        DEBUG(0, ("Error parsing LI list\n"));
                        return WERR_BADFILE;
                }
-               
+
                SMB_ASSERT(!strncmp(li.header, "li", 2));
 
                for (i = 0; i < li.key_count; i++) {
@@ -1315,23 +1397,25 @@ static WERROR regf_sl_del_entry(struct regf_data *regf, uint32_t list_offset,
                }
 
                /* Store li block */
-               *ret = hbin_store_tdr_resize(regf, (tdr_push_fn_t) tdr_push_li_block, list_offset, &li);
+               *ret = hbin_store_tdr_resize(regf,
+                                            (tdr_push_fn_t) tdr_push_li_block,
+                                            list_offset, &li);
        } else if (strncmp((char *)data.data, "lf", 2) == 0) {
                struct lf_block lf;
                struct tdr_pull pull;
                uint16_t i;
                bool found_offset = false;
-               
+
                DEBUG(10, ("Subkeys in LF list\n"));
-               
+
                ZERO_STRUCT(pull);
-               pull.data = data;       
-               
+               pull.data = data;
+
                if (NT_STATUS_IS_ERR(tdr_pull_lf_block(&pull, regf, &lf))) {
                        DEBUG(0, ("Error parsing LF list\n"));
                        return WERR_BADFILE;
                }
-               
+
                SMB_ASSERT(!strncmp(lf.header, "lf", 2));
 
                for (i = 0; i < lf.key_count; i++) {
@@ -1349,7 +1433,7 @@ static WERROR regf_sl_del_entry(struct regf_data *regf, uint32_t list_offset,
                        return WERR_NOT_FOUND;
                }
                lf.key_count--;
-               
+
                /* If the there are no entries left, free the subkey list */
                if (lf.key_count == 0) {
                        hbin_free(regf, list_offset);
@@ -1358,23 +1442,25 @@ static WERROR regf_sl_del_entry(struct regf_data *regf, uint32_t list_offset,
                }
 
                /* Store lf block */
-               *ret = hbin_store_tdr_resize(regf, (tdr_push_fn_t) tdr_push_lf_block, list_offset, &lf);
+               *ret = hbin_store_tdr_resize(regf,
+                                            (tdr_push_fn_t) tdr_push_lf_block,
+                                            list_offset, &lf);
        } else if (strncmp((char *)data.data, "lh", 2) == 0) {
                struct lh_block lh;
                struct tdr_pull pull;
                uint16_t i;
                bool found_offset = false;
-               
+
                DEBUG(10, ("Subkeys in LH list\n"));
-               
+
                ZERO_STRUCT(pull);
-               pull.data = data;       
-               
+               pull.data = data;
+
                if (NT_STATUS_IS_ERR(tdr_pull_lh_block(&pull, regf, &lh))) {
                        DEBUG(0, ("Error parsing LF list\n"));
                        return WERR_BADFILE;
                }
-               
+
                SMB_ASSERT(!strncmp(lh.header, "lh", 2));
 
                for (i = 0; i < lh.key_count; i++) {
@@ -1392,7 +1478,7 @@ static WERROR regf_sl_del_entry(struct regf_data *regf, uint32_t list_offset,
                        return WERR_NOT_FOUND;
                }
                lh.key_count--;
-               
+
                /* If the there are no entries left, free the subkey list */
                if (lh.key_count == 0) {
                        hbin_free(regf, list_offset);
@@ -1401,7 +1487,9 @@ static WERROR regf_sl_del_entry(struct regf_data *regf, uint32_t list_offset,
                }
 
                /* Store lh block */
-               *ret = hbin_store_tdr_resize(regf, (tdr_push_fn_t) tdr_push_lh_block, list_offset, &lh);
+               *ret = hbin_store_tdr_resize(regf,
+                                            (tdr_push_fn_t) tdr_push_lh_block,
+                                            list_offset, &lh);
        } else if (strncmp((char *)data.data, "ri", 2) == 0) {
                /* FIXME */
                DEBUG(0, ("Sorry, deletion from ri block is not supported yet.\n"));
@@ -1415,7 +1503,7 @@ static WERROR regf_sl_del_entry(struct regf_data *regf, uint32_t list_offset,
 
 static WERROR regf_del_value (struct hive_key *key, const char *name)
 {
-       const struct regf_key_data *private_data = 
+       const struct regf_key_data *private_data =
                (const struct regf_key_data *)key;
        struct regf_data *regf = private_data->hive;
        struct nk_block *nk = private_data->nk;
@@ -1436,11 +1524,13 @@ static WERROR regf_del_value (struct hive_key *key, const char *name)
                        ((uint32_t *)values.data)[i-1] = ((uint32_t *) values.data)[i];
                } else {
                        vk_offset = IVAL(values.data, i * 4);
-                       if (!hbin_get_tdr(regf, vk_offset, private_data, 
-                                                         (tdr_pull_fn_t)tdr_pull_vk_block, &vk)) {
-                               DEBUG(0, ("Unable to get VK block at %d\n", vk_offset));
+                       if (!hbin_get_tdr(regf, vk_offset, private_data,
+                                         (tdr_pull_fn_t)tdr_pull_vk_block,
+                                         &vk)) {
+                               DEBUG(0, ("Unable to get VK block at %d\n",
+                                       vk_offset));
                                return WERR_BADFILE;
-                       } 
+                       }
                        if (strcmp(vk.data_name, name) == 0) {
                                hbin_free(regf, vk_offset);
                                found_offset = true;
@@ -1458,10 +1548,13 @@ static WERROR regf_del_value (struct hive_key *key, const char *name)
        if (nk->num_values == 0) {
                hbin_free(regf, nk->values_offset);
                nk->values_offset = -1;
-       } else {        
-               nk->values_offset = hbin_store_resize(regf, nk->values_offset, values);
+       } else {
+               nk->values_offset = hbin_store_resize(regf,
+                                                     nk->values_offset,
+                                                     values);
        }
-       hbin_store_tdr_resize(regf, (tdr_push_fn_t) tdr_push_nk_block, private_data->offset, nk);
+       hbin_store_tdr_resize(regf, (tdr_push_fn_t) tdr_push_nk_block,
+                             private_data->offset, nk);
 
        return regf_save_hbin(private_data->hive);
 }
@@ -1469,14 +1562,14 @@ static WERROR regf_del_value (struct hive_key *key, const char *name)
 
 static WERROR regf_del_key(const struct hive_key *parent, const char *name)
 {
-       const struct regf_key_data *private_data = 
+       const struct regf_key_data *private_data =
                (const struct regf_key_data *)parent;
        struct regf_key_data *key;
        struct nk_block *parent_nk;
        WERROR error;
 
        SMB_ASSERT(private_data);
-       
+
        parent_nk = private_data->nk;
 
        if (parent_nk->subkeys_offset == -1) {
@@ -1485,21 +1578,21 @@ static WERROR regf_del_key(const struct hive_key *parent, const char *name)
        }
 
        /* Find the key */
-       if (!W_ERROR_IS_OK(regf_get_subkey_by_name(parent_nk, parent, name, 
-                                                                          (struct hive_key **)&key))) {
+       if (!W_ERROR_IS_OK(regf_get_subkey_by_name(parent_nk, parent, name,
+                                                  (struct hive_key **)&key))) {
                DEBUG(2, ("Key '%s' not found\n", name));
                return WERR_NOT_FOUND;
        }
-       
-       if (key->nk->subkeys_offset != -1 || 
+
+       if (key->nk->subkeys_offset != -1 ||
                key->nk->values_offset != -1) {
                DEBUG(0, ("Key '%s' is not empty.\n", name));
                return WERR_FILE_EXISTS;
        }
-       
+
        /* Delete it from the subkey list. */
-       error = regf_sl_del_entry(private_data->hive, parent_nk->subkeys_offset, 
-                                                         key->offset, &parent_nk->subkeys_offset);
+       error = regf_sl_del_entry(private_data->hive, parent_nk->subkeys_offset,
+                                 key->offset, &parent_nk->subkeys_offset);
        if (!W_ERROR_IS_OK(error)) {
                DEBUG(0, ("Can't store new subkey list for parent key. Won't delete.\n"));
                return error;
@@ -1507,9 +1600,9 @@ static WERROR regf_del_key(const struct hive_key *parent, const char *name)
 
        /* Re-store parent key */
        parent_nk->num_subkeys--;
-       hbin_store_tdr_resize(private_data->hive, 
-                                                 (tdr_push_fn_t) tdr_push_nk_block, 
-                                                 private_data->offset, parent_nk);
+       hbin_store_tdr_resize(private_data->hive,
+                             (tdr_push_fn_t) tdr_push_nk_block,
+                             private_data->offset, parent_nk);
 
        if (key->nk->clsname_offset != -1) {
                hbin_free(private_data->hive, key->nk->clsname_offset);
@@ -1519,12 +1612,12 @@ static WERROR regf_del_key(const struct hive_key *parent, const char *name)
        return regf_save_hbin(private_data->hive);
 }
 
-static WERROR regf_add_key(TALLOC_CTX *ctx, const struct hive_key *parent, 
-                                                  const char *name, const char *classname,
-                                                  struct security_descriptor *sec_desc, 
-                                                  struct hive_key **ret)
+static WERROR regf_add_key(TALLOC_CTX *ctx, const struct hive_key *parent,
+                          const char *name, const char *classname,
+                          struct security_descriptor *sec_desc,
+                          struct hive_key **ret)
 {
-       const struct regf_key_data *private_data = 
+       const struct regf_key_data *private_data =
                (const struct regf_key_data *)parent;
        struct nk_block *parent_nk = private_data->nk, nk;
        struct nk_block *root;
@@ -1547,32 +1640,33 @@ static WERROR regf_add_key(TALLOC_CTX *ctx, const struct hive_key *parent,
        nk.clsname_offset = -1; /* FIXME: fill in */
        nk.clsname_length = 0;
        nk.key_name = name;
-       
+
        /* Get the security descriptor of the root key */
        root = talloc_zero(ctx, struct nk_block);
        W_ERROR_HAVE_NO_MEMORY(root);
 
-       if (!hbin_get_tdr(regf, regf->header->data_offset, root, 
-                                         (tdr_pull_fn_t)tdr_pull_nk_block, root)) {
+       if (!hbin_get_tdr(regf, regf->header->data_offset, root,
+                         (tdr_pull_fn_t)tdr_pull_nk_block, root)) {
                DEBUG(0, ("Unable to find HBIN data for offset %d\n", offset));
                return WERR_GENERAL_FAILURE;
        }
        nk.sk_offset = root->sk_offset;
        talloc_free(root);
-       
+
        /* Store the new nk key */
        offset = hbin_store_tdr(regf, (tdr_push_fn_t) tdr_push_nk_block, &nk);
-       
-       error = regf_sl_add_entry(regf, parent_nk->subkeys_offset, name, offset, &parent_nk->subkeys_offset);
+
+       error = regf_sl_add_entry(regf, parent_nk->subkeys_offset, name, offset,
+                                 &parent_nk->subkeys_offset);
        if (!W_ERROR_IS_OK(error)) {
                hbin_free(regf, offset);
                return error;
        }
-       
+
        parent_nk->num_subkeys++;
 
        /* Since the subkey offset of the parent can change, store it again */
-       hbin_store_tdr_resize(regf, (tdr_push_fn_t) tdr_push_nk_block, 
+       hbin_store_tdr_resize(regf, (tdr_push_fn_t) tdr_push_nk_block,
                                                  nk.parent_offset, parent_nk);
 
        *ret = (struct hive_key *)regf_get_key(ctx, regf, offset);
@@ -1580,10 +1674,10 @@ static WERROR regf_add_key(TALLOC_CTX *ctx, const struct hive_key *parent,
        return regf_save_hbin(private_data->hive);
 }
 
-static WERROR regf_set_value(struct hive_key *key, const char *name, 
-                                                        uint32_t type, const DATA_BLOB data)
+static WERROR regf_set_value(struct hive_key *key, const char *name,
+                            uint32_t type, const DATA_BLOB data)
 {
-       const struct regf_key_data *private_data = 
+       const struct regf_key_data *private_data =
                (const struct regf_key_data *)key;
        struct regf_data *regf = private_data->hive;
        struct nk_block *nk = private_data->nk;
@@ -1600,9 +1694,11 @@ static WERROR regf_set_value(struct hive_key *key, const char *name,
 
                for (i = 0; i < nk->num_values; i++) {
                        tmp_vk_offset = IVAL(values.data, i * 4);
-                       if (!hbin_get_tdr(regf, tmp_vk_offset, private_data, 
-                                                         (tdr_pull_fn_t)tdr_pull_vk_block, &vk)) {
-                               DEBUG(0, ("Unable to get VK block at %d\n", tmp_vk_offset));
+                       if (!hbin_get_tdr(regf, tmp_vk_offset, private_data,
+                                         (tdr_pull_fn_t)tdr_pull_vk_block,
+                                         &vk)) {
+                               DEBUG(0, ("Unable to get VK block at %d\n",
+                                       tmp_vk_offset));
                                return WERR_GENERAL_FAILURE;
                        }
                        if (strcmp(vk.data_name, name) == 0) {
@@ -1612,7 +1708,7 @@ static WERROR regf_set_value(struct hive_key *key, const char *name,
                }
                /* Free data, if any */
                if (!(vk.data_length & 0x80000000)) {
-                       hbin_free(regf, vk.data_offset);        
+                       hbin_free(regf, vk.data_offset);
                }
        }
        if (old_vk_offset == -1) {
@@ -1638,15 +1734,21 @@ static WERROR regf_set_value(struct hive_key *key, const char *name,
        }
        if (old_vk_offset == -1) {
                /* Store new vk */
-               vk_offset = hbin_store_tdr(regf, (tdr_push_fn_t) tdr_push_vk_block, &vk);
+               vk_offset = hbin_store_tdr(regf,
+                                          (tdr_push_fn_t) tdr_push_vk_block,
+                                          &vk);
        } else {
                /* Store vk at offset */
-               vk_offset = hbin_store_tdr_resize(regf, (tdr_push_fn_t) tdr_push_vk_block, old_vk_offset ,&vk);
+               vk_offset = hbin_store_tdr_resize(regf,
+                                                 (tdr_push_fn_t) tdr_push_vk_block,
+                                                 old_vk_offset ,&vk);
        }
 
        /* Re-allocate the value list */
        if (nk->values_offset == -1) {
-               nk->values_offset = hbin_store_tdr(regf, (tdr_push_fn_t) tdr_push_uint32, &vk_offset);
+               nk->values_offset = hbin_store_tdr(regf,
+                                                  (tdr_push_fn_t) tdr_push_uint32,
+                                                  &vk_offset);
                nk->num_values = 1;
        } else {
 
@@ -1664,17 +1766,23 @@ static WERROR regf_set_value(struct hive_key *key, const char *name,
                        DATA_BLOB value_list;
 
                        value_list.length = (nk->num_values+1)*4;
-                       value_list.data = (void *)talloc_array(private_data, uint32_t, nk->num_values+1);
+                       value_list.data = (uint8_t *)talloc_array(private_data,
+                                                                 uint32_t,
+                                                                 nk->num_values+1);
                        W_ERROR_HAVE_NO_MEMORY(value_list.data);
                        memcpy(value_list.data, values.data, nk->num_values * 4);
 
                        SIVAL(value_list.data, nk->num_values * 4, vk_offset);
                        nk->num_values++;
-                       nk->values_offset = hbin_store_resize(regf, nk->values_offset, value_list);
+                       nk->values_offset = hbin_store_resize(regf,
+                                                             nk->values_offset,
+                                                             value_list);
                }
-               
+
        }
-       hbin_store_tdr_resize(regf, (tdr_push_fn_t) tdr_push_nk_block, private_data->offset, nk);
+       hbin_store_tdr_resize(regf,
+                             (tdr_push_fn_t) tdr_push_nk_block,
+                             private_data->offset, nk);
        return regf_save_hbin(private_data->hive);
 }
 
@@ -1698,8 +1806,9 @@ static WERROR regf_save_hbin(struct regf_data *regf)
        regf->header->chksum = regf_hdr_checksum(push->data.data);
        talloc_free(push);
 
-       if (NT_STATUS_IS_ERR(tdr_push_to_fd(regf->fd, 
-                                               (tdr_push_fn_t)tdr_push_regf_hdr, regf->header))) {
+       if (NT_STATUS_IS_ERR(tdr_push_to_fd(regf->fd,
+                                           (tdr_push_fn_t)tdr_push_regf_hdr,
+                                           regf->header))) {
                DEBUG(0, ("Error writing registry file header\n"));
                return WERR_GENERAL_FAILURE;
        }
@@ -1707,13 +1816,13 @@ static WERROR regf_save_hbin(struct regf_data *regf)
        if (lseek(regf->fd, 0x1000, SEEK_SET) == -1) {
                DEBUG(0, ("Error lseeking to 0x1000 in regf file\n"));
                return WERR_GENERAL_FAILURE;
-       }       
+       }
 
        for (i = 0; regf->hbins[i]; i++) {
-               if (NT_STATUS_IS_ERR(tdr_push_to_fd(regf->fd, 
-                                                                                       (tdr_push_fn_t)tdr_push_hbin_block, 
-                                                                                       regf->hbins[i]))) {
-                       DEBUG(0, ("Error writing HBIN block\n"));       
+               if (NT_STATUS_IS_ERR(tdr_push_to_fd(regf->fd,
+                                                   (tdr_push_fn_t)tdr_push_hbin_block,
+                                                   regf->hbins[i]))) {
+                       DEBUG(0, ("Error writing HBIN block\n"));
                        return WERR_GENERAL_FAILURE;
                }
        }
@@ -1721,8 +1830,8 @@ static WERROR regf_save_hbin(struct regf_data *regf)
        return WERR_OK;
 }
 
-WERROR reg_create_regf_file(TALLOC_CTX *parent_ctx, const char *location, 
-                                                        int minor_version, struct hive_key **key)
+WERROR reg_create_regf_file(TALLOC_CTX *parent_ctx, const char *location,
+                           int minor_version, struct hive_key **key)
 {
        struct regf_data *regf;
        struct regf_hdr *regf_hdr;
@@ -1754,7 +1863,8 @@ WERROR reg_create_regf_file(TALLOC_CTX *parent_ctx, const char *location,
        regf_hdr->version.major = 1;
        regf_hdr->version.minor = minor_version;
        regf_hdr->last_block = 0x1000; /* Block size */
-       regf_hdr->description = talloc_strdup(regf_hdr, "registry created by Samba 4");
+       regf_hdr->description = talloc_strdup(regf_hdr,
+                                             "registry created by Samba 4");
        W_ERROR_HAVE_NO_MEMORY(regf_hdr->description);
        regf_hdr->chksum = 0;
 
@@ -1785,14 +1895,16 @@ WERROR reg_create_regf_file(TALLOC_CTX *parent_ctx, const char *location,
        nk.clsname_offset = -1; /* FIXME: fill in */
        nk.clsname_length = 0;
        nk.key_name = "";
-       
+
        nk.sk_offset = -1; /* FIXME: fill in */
-       
+
        /* Store the new nk key */
-       regf->header->data_offset = hbin_store_tdr(regf, 
-                                                                       (tdr_push_fn_t)tdr_push_nk_block, &nk);
-       
-       *key = (struct hive_key *)regf_get_key(parent_ctx, regf, regf->header->data_offset);
+       regf->header->data_offset = hbin_store_tdr(regf,
+                                                  (tdr_push_fn_t)tdr_push_nk_block,
+                                                  &nk);
+
+       *key = (struct hive_key *)regf_get_key(parent_ctx, regf,
+                                              regf->header->data_offset);
 
        /* We can drop our own reference now that *key will have created one */
        talloc_free(regf);
@@ -1805,8 +1917,8 @@ WERROR reg_create_regf_file(TALLOC_CTX *parent_ctx, const char *location,
        return WERR_OK;
 }
 
-WERROR reg_open_regf_file(TALLOC_CTX *parent_ctx, 
-                                                 const char *location, struct hive_key **key)
+WERROR reg_open_regf_file(TALLOC_CTX *parent_ctx,
+                         const char *location, struct hive_key **key)
 {
        struct regf_data *regf;
        struct regf_hdr *regf_hdr;
@@ -1850,7 +1962,7 @@ WERROR reg_open_regf_file(TALLOC_CTX *parent_ctx,
 
        if (strcmp(regf_hdr->REGF_ID, "regf") != 0) {
                DEBUG(0, ("Unrecognized NT registry header id: %s, %s\n",
-                                 regf_hdr->REGF_ID, location));
+                       regf_hdr->REGF_ID, location));
                talloc_free(regf);
                return WERR_GENERAL_FAILURE;
        }
@@ -1858,8 +1970,8 @@ WERROR reg_open_regf_file(TALLOC_CTX *parent_ctx,
        /* Validate the header ... */
        if (regf_hdr_checksum(pull.data.data) != regf_hdr->chksum) {
                DEBUG(0, ("Registry file checksum error: %s: %d,%d\n",
-                                 location, regf_hdr->chksum, 
-                                 regf_hdr_checksum(pull.data.data)));
+                       location, regf_hdr->chksum,
+                       regf_hdr_checksum(pull.data.data)));
                talloc_free(regf);
                return WERR_GENERAL_FAILURE;
        }
@@ -1873,8 +1985,10 @@ WERROR reg_open_regf_file(TALLOC_CTX *parent_ctx,
 
        regf->hbins[0] = NULL;
 
-       while (pull.offset < pull.data.length && pull.offset <= regf->header->last_block) {
-               struct hbin_block *hbin = talloc(regf->hbins, struct hbin_block);
+       while (pull.offset < pull.data.length &&
+              pull.offset <= regf->header->last_block) {
+               struct hbin_block *hbin = talloc(regf->hbins,
+                                                struct hbin_block);
 
                W_ERROR_HAVE_NO_MEMORY(hbin);
 
@@ -1885,21 +1999,23 @@ WERROR reg_open_regf_file(TALLOC_CTX *parent_ctx,
                }
 
                if (strcmp(hbin->HBIN_ID, "hbin") != 0) {
-                       DEBUG(0, ("[%d] Expected 'hbin', got '%s'\n", i, hbin->HBIN_ID));
+                       DEBUG(0, ("[%d] Expected 'hbin', got '%s'\n",
+                               i, hbin->HBIN_ID));
                        talloc_free(regf);
                        return WERR_FOOBAR;
                }
 
                regf->hbins[i] = hbin;
                i++;
-               regf->hbins = talloc_realloc(regf, regf->hbins, struct hbin_block *, i+2);
+               regf->hbins = talloc_realloc(regf, regf->hbins,
+                                            struct hbin_block *, i+2);
                regf->hbins[i] = NULL;
-       } 
+       }
 
        DEBUG(1, ("%d HBIN blocks read\n", i));
 
-       *key = (struct hive_key *)regf_get_key(parent_ctx, regf, 
-                                                                                               regf->header->data_offset);
+       *key = (struct hive_key *)regf_get_key(parent_ctx, regf,
+                                              regf->header->data_offset);
 
        /* We can drop our own reference now that *key will have created one */
        talloc_free(regf);
index 1d92a9edab3ad631e8f5a99db65db392b7df6ca2..c1159dde2e26c094a0946469759b8e9075e25fda 100644 (file)
@@ -1,42 +1,43 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
    Registry interface
    Copyright (C) Gerald Carter                        2002.
    Copyright (C) Jelmer Vernooij                                         2003-2007.
-   
+
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program 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 General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #ifndef _REGISTRY_H /* _REGISTRY_H */
-#define _REGISTRY_H 
+#define _REGISTRY_H
 
 struct registry_context;
 
 #include <talloc.h>
 #include "librpc/gen_ndr/security.h"
 #include "lib/registry/hive.h"
+#include "libcli/util/ntstatus.h"
 
 /* Handles for the predefined keys */
-#define HKEY_CLASSES_ROOT               0x80000000
-#define HKEY_CURRENT_USER               0x80000001
-#define HKEY_LOCAL_MACHINE              0x80000002
-#define HKEY_USERS                              0x80000003
-#define HKEY_PERFORMANCE_DATA   0x80000004
-#define HKEY_CURRENT_CONFIG             0x80000005
-#define HKEY_DYN_DATA                   0x80000006
-#define HKEY_PERFORMANCE_TEXT   0x80000050
-#define HKEY_PERFORMANCE_NLSTEXT 0x80000060
+#define HKEY_CLASSES_ROOT              0x80000000
+#define HKEY_CURRENT_USER              0x80000001
+#define HKEY_LOCAL_MACHINE             0x80000002
+#define HKEY_USERS                     0x80000003
+#define HKEY_PERFORMANCE_DATA          0x80000004
+#define HKEY_CURRENT_CONFIG            0x80000005
+#define HKEY_DYN_DATA                  0x80000006
+#define HKEY_PERFORMANCE_TEXT          0x80000050
+#define HKEY_PERFORMANCE_NLSTEXT       0x80000060
 
 #define HKEY_FIRST             HKEY_CLASSES_ROOT
 #define HKEY_LAST              HKEY_PERFORMANCE_NLSTEXT
@@ -60,18 +61,18 @@ extern const struct reg_predefined_key reg_predefined_keys[];
 struct reg_key_operations;
 
 /* structure to store the registry handles */
-struct registry_key 
+struct registry_key
 {
        struct registry_context *context;
 };
 
 #include "lib/registry/patchfile.h"
 
-struct registry_value 
+struct registry_value
 {
-  const char *name;
-  unsigned int data_type;
-  DATA_BLOB data;
+       const char *name;
+       unsigned int data_type;
+       DATA_BLOB data;
 };
 
 /* FIXME */
@@ -85,77 +86,77 @@ struct registry_operations {
        const char *name;
 
        WERROR (*get_key_info) (TALLOC_CTX *mem_ctx,
-                                                       const struct registry_key *key,
-                                                       const char **classname,
-                                                       uint32_t *numsubkeys,
-                                                       uint32_t *numvalues,
-                                                       NTTIME *last_change_time);
+                               const struct registry_key *key,
+                               const char **classname,
+                               uint32_t *numsubkeys,
+                               uint32_t *numvalues,
+                               NTTIME *last_change_time);
 
        WERROR (*flush_key) (struct registry_key *key);
 
-       WERROR (*get_predefined_key) (const struct registry_context *ctx, 
-                                                         uint32_t key_id,
-                                                         struct registry_key **key);
+       WERROR (*get_predefined_key) (const struct registry_context *ctx,
+                                     uint32_t key_id,
+                                     struct registry_key **key);
 
        WERROR (*open_key) (TALLOC_CTX *mem_ctx,
-                                               struct registry_key *parent,
-                                               const char *path,
-                                               struct registry_key **key);
+                           struct registry_key *parent,
+                           const char *path,
+                           struct registry_key **key);
 
-       WERROR (*create_key) (TALLOC_CTX *mem_ctx, 
-                                                 struct registry_key *parent,
-                                                 const char *name,
-                                                 const char *key_class,
-                                                 struct security_descriptor *security,
-                                                 struct registry_key **key);
+       WERROR (*create_key) (TALLOC_CTX *mem_ctx,
+                             struct registry_key *parent,
+                             const char *name,
+                             const char *key_class,
+                             struct security_descriptor *security,
+                             struct registry_key **key);
 
        WERROR (*delete_key) (struct registry_key *key, const char *name);
 
        WERROR (*delete_value) (struct registry_key *key, const char *name);
 
        WERROR (*enum_key) (TALLOC_CTX *mem_ctx,
-                                               const struct registry_key *key, uint32_t idx,
-                                               const char **name,
-                                               const char **keyclass,
-                                               NTTIME *last_changed_time);
+                           const struct registry_key *key, uint32_t idx,
+                           const char **name,
+                           const char **keyclass,
+                           NTTIME *last_changed_time);
 
        WERROR (*enum_value) (TALLOC_CTX *mem_ctx,
-                                                 const struct registry_key *key, uint32_t idx,
-                                                 const char **name,
-                                                 uint32_t *type,
-                                                 DATA_BLOB *data);
+                             const struct registry_key *key, uint32_t idx,
+                             const char **name,
+                             uint32_t *type,
+                             DATA_BLOB *data);
 
        WERROR (*get_security) (TALLOC_CTX *mem_ctx,
-                                                       const struct registry_key *key, 
-                                                       struct security_descriptor **security);
+                               const struct registry_key *key,
+                               struct security_descriptor **security);
 
        WERROR (*set_security) (struct registry_key *key,
-                                                       const struct security_descriptor *security);
+                               const struct security_descriptor *security);
 
        WERROR (*load_key) (struct registry_key *key,
-                                               const char *key_name,
-                                               const char *path);
+                           const char *key_name,
+                           const char *path);
 
        WERROR (*unload_key) (struct registry_key *key, const char *name);
 
        WERROR (*notify_value_change) (struct registry_key *key,
-                                                                       reg_value_notification_function fn);
+                                      reg_value_notification_function fn);
 
        WERROR (*get_value) (TALLOC_CTX *mem_ctx,
-                                                const struct registry_key *key,
-                                                const char *name,
-                                                uint32_t *type,
-                                                DATA_BLOB *data);
+                            const struct registry_key *key,
+                            const char *name,
+                            uint32_t *type,
+                            DATA_BLOB *data);
 
        WERROR (*set_value) (struct registry_key *key,
-                                                const char *name,
-                                                uint32_t type,
-                                                const DATA_BLOB data);
-}; 
+                            const char *name,
+                            uint32_t type,
+                            const DATA_BLOB data);
+};
 
 /**
  * Handle to a full registry
- * contains zero or more hives 
+ * contains zero or more hives
  */
 struct registry_context {
        const struct registry_operations *ops;
@@ -167,113 +168,118 @@ struct event_context;
 /**
  * Open the locally defined registry.
  */
-WERROR reg_open_local (TALLOC_CTX *mem_ctx, 
-                               struct registry_context **ctx, 
-                               struct auth_session_info *session_info, 
-                               struct cli_credentials *credentials);
+WERROR reg_open_local(TALLOC_CTX *mem_ctx,
+                     struct registry_context **ctx,
+                     struct auth_session_info *session_info,
+                     struct cli_credentials *credentials);
 
-WERROR reg_open_samba (TALLOC_CTX *mem_ctx,
-                                                               struct registry_context **ctx,
-                                                               struct auth_session_info *session_info,
-                                                               struct cli_credentials *credentials);
+WERROR reg_open_samba(TALLOC_CTX *mem_ctx,
+                     struct registry_context **ctx,
+                     struct auth_session_info *session_info,
+                     struct cli_credentials *credentials);
 
 /**
  * Open the registry on a remote machine.
  */
-WERROR reg_open_remote(struct registry_context **ctx, 
-                                                               struct auth_session_info *session_info, 
-                                                               struct cli_credentials *credentials, 
-                                                               const char *location, struct event_context *ev);
+WERROR reg_open_remote(struct registry_context **ctx,
+                      struct auth_session_info *session_info,
+                      struct cli_credentials *credentials,
+                      const char *location, struct event_context *ev);
 
 WERROR reg_open_wine(struct registry_context **ctx, const char *path);
 
 const char *reg_get_predef_name(uint32_t hkey);
-WERROR reg_get_predefined_key_by_name(struct registry_context *ctx, 
-                                                                                          const char *name, 
-                                                                                          struct registry_key **key);
-WERROR reg_get_predefined_key(const struct registry_context *ctx, 
-                                                                          uint32_t hkey, 
-                                                                          struct registry_key **key);
-
-WERROR reg_open_key(TALLOC_CTX *mem_ctx, struct registry_key *parent, 
-                                                        const char *name, struct registry_key **result);
-
-WERROR reg_key_get_value_by_index(TALLOC_CTX *mem_ctx, 
-                                  const struct registry_key *key, uint32_t idx, 
-                                  const char **name,
-                                  uint32_t *type,
-                                  DATA_BLOB *data);
+WERROR reg_get_predefined_key_by_name(struct registry_context *ctx,
+                                     const char *name,
+                                     struct registry_key **key);
+WERROR reg_get_predefined_key(const struct registry_context *ctx,
+                             uint32_t hkey,
+                             struct registry_key **key);
+
+WERROR reg_open_key(TALLOC_CTX *mem_ctx, struct registry_key *parent,
+                   const char *name, struct registry_key **result);
+
+WERROR reg_key_get_value_by_index(TALLOC_CTX *mem_ctx,
+                                 const struct registry_key *key, uint32_t idx,
+                                 const char **name,
+                                 uint32_t *type,
+                                 DATA_BLOB *data);
 WERROR reg_key_get_info(TALLOC_CTX *mem_ctx,
-                                                                const struct registry_key *key, 
-                                                                       const char **class_name,
-                                                                       uint32_t *num_subkeys,
-                                                                       uint32_t *num_values,
-                                                                       NTTIME *last_change_time);
-WERROR reg_key_get_subkey_by_index(TALLOC_CTX *mem_ctx, 
-                                                                                       const struct registry_key *key, 
-                                                                                       int idx, 
-                                                                                       const char **name,
-                                                                                       const char **classname,
-                                                                                       NTTIME *last_mod_time);
-WERROR reg_key_get_subkey_by_name(TALLOC_CTX *mem_ctx, 
-                                                                 const struct registry_key *key, 
-                                                                 const char *name, 
-                                                                 struct registry_key **subkey);
-WERROR reg_key_get_value_by_name(TALLOC_CTX *mem_ctx, 
-                                                                                 const struct registry_key *key, 
-                                                                                 const char *name, 
-                                                                                 uint32_t *type,
-                                                                                 DATA_BLOB *data);
+                       const struct registry_key *key,
+                       const char **class_name,
+                       uint32_t *num_subkeys,
+                       uint32_t *num_values,
+                       NTTIME *last_change_time);
+WERROR reg_key_get_subkey_by_index(TALLOC_CTX *mem_ctx,
+                                  const struct registry_key *key,
+                                  int idx,
+                                  const char **name,
+                                  const char **classname,
+                                  NTTIME *last_mod_time);
+WERROR reg_key_get_subkey_by_name(TALLOC_CTX *mem_ctx,
+                                 const struct registry_key *key,
+                                 const char *name,
+                                 struct registry_key **subkey);
+WERROR reg_key_get_value_by_name(TALLOC_CTX *mem_ctx,
+                                const struct registry_key *key,
+                                const char *name,
+                                uint32_t *type,
+                                DATA_BLOB *data);
 WERROR reg_key_del(struct registry_key *parent, const char *name);
-WERROR reg_key_add_name(TALLOC_CTX *mem_ctx, 
-                                                                struct registry_key *parent, const char *name, 
-                                                                const char *classname, 
-                                                                struct security_descriptor *desc, 
-                                                                struct registry_key **newkey);
-WERROR reg_val_set(struct registry_key *key, const char *value, 
-                                                       uint32_t type, DATA_BLOB data);
-WERROR reg_get_sec_desc(TALLOC_CTX *ctx, const struct registry_key *key, struct security_descriptor **secdesc);
+WERROR reg_key_add_name(TALLOC_CTX *mem_ctx,
+                       struct registry_key *parent, const char *name,
+                       const char *classname,
+                       struct security_descriptor *desc,
+                       struct registry_key **newkey);
+WERROR reg_val_set(struct registry_key *key, const char *value,
+                  uint32_t type, DATA_BLOB data);
+WERROR reg_get_sec_desc(TALLOC_CTX *ctx, const struct registry_key *key,
+                       struct security_descriptor **secdesc);
 WERROR reg_del_value(struct registry_key *key, const char *valname);
 WERROR reg_key_flush(struct registry_key *key);
-WERROR reg_create_key (TALLOC_CTX *mem_ctx, 
-                                               struct registry_key *parent,
-
-                                                 const char *name,
-                                                 const char *key_class,
-                                                 struct security_descriptor *security,
-                                                 struct registry_key **key);
+WERROR reg_create_key(TALLOC_CTX *mem_ctx,
+                     struct registry_key *parent,
+                     const char *name,
+                     const char *key_class,
+                     struct security_descriptor *security,
+                     struct registry_key **key);
 
 
 
 
 /* Utility functions */
 const char *str_regtype(int type);
-char *reg_val_data_string(TALLOC_CTX *mem_ctx, uint32_t type, 
-                                                                  const DATA_BLOB data);
+char *reg_val_data_string(TALLOC_CTX *mem_ctx, uint32_t type,
+                         const DATA_BLOB data);
 char *reg_val_description(TALLOC_CTX *mem_ctx, const char *name,
-                                                                  uint32_t type, const DATA_BLOB data);
-bool reg_string_to_val(TALLOC_CTX *mem_ctx, const char *type_str, const char *data_str, uint32_t *type, DATA_BLOB *data);
-WERROR reg_open_key_abs(TALLOC_CTX *mem_ctx, struct registry_context *handle, const char *name, struct registry_key **result);
+                         uint32_t type, const DATA_BLOB data);
+bool reg_string_to_val(TALLOC_CTX *mem_ctx, const char *type_str,
+                      const char *data_str, uint32_t *type, DATA_BLOB *data);
+WERROR reg_open_key_abs(TALLOC_CTX *mem_ctx, struct registry_context *handle,
+                       const char *name, struct registry_key **result);
 WERROR reg_key_del_abs(struct registry_context *ctx, const char *path);
-WERROR reg_key_add_abs(TALLOC_CTX *mem_ctx, struct registry_context *ctx, const char *path, uint32_t access_mask, struct security_descriptor *sec_desc, struct registry_key **result);
-WERROR reg_load_key(struct registry_context *ctx, struct registry_key *key, 
-                                       const char *name, const char *filename);
-
-WERROR reg_mount_hive(struct registry_context *rctx, 
-                                         struct hive_key *hive_key,
-                                         uint32_t key_id,
-                                         const char **elements);
+WERROR reg_key_add_abs(TALLOC_CTX *mem_ctx, struct registry_context *ctx,
+                      const char *path, uint32_t access_mask,
+                      struct security_descriptor *sec_desc,
+                      struct registry_key **result);
+WERROR reg_load_key(struct registry_context *ctx, struct registry_key *key,
+                   const char *name, const char *filename);
+
+WERROR reg_mount_hive(struct registry_context *rctx,
+                     struct hive_key *hive_key,
+                     uint32_t key_id,
+                     const char **elements);
 
 struct registry_key *reg_import_hive_key(struct registry_context *ctx,
-                                                                            struct hive_key *hive, 
-                                                                            uint32_t predef_key,
-                                                                                const char **elements);
-WERROR reg_get_security(TALLOC_CTX *mem_ctx, 
-                                                                const struct registry_key *key, 
-                                                                struct security_descriptor **security);
-
-WERROR reg_set_security(struct registry_key *key, 
-                                                                struct security_descriptor *security);
+                                        struct hive_key *hive,
+                                        uint32_t predef_key,
+                                        const char **elements);
+WERROR reg_get_security(TALLOC_CTX *mem_ctx,
+                       const struct registry_key *key,
+                       struct security_descriptor **security);
+
+WERROR reg_set_security(struct registry_key *key,
+                       struct security_descriptor *security);
 
 
 #endif /* _REGISTRY_H */
index e4157fe42457f7274b9a96bb42bf7822e3c9f96a..c694223909c02c900f33afc5e732d707ae090c80 100644 (file)
@@ -7,15 +7,15 @@
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program 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 General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+
 #include "includes.h"
 #include "registry.h"
 #include "librpc/gen_ndr/ndr_winreg_c.h"
@@ -76,7 +76,8 @@ openhive(HKCC)
 
 static struct {
        uint32_t hkey;
-       WERROR (*open) (struct dcerpc_pipe *p, TALLOC_CTX *, struct policy_handle *h);
+       WERROR (*open) (struct dcerpc_pipe *p, TALLOC_CTX *,
+                       struct policy_handle *h);
 } known_hives[] = {
        { HKEY_LOCAL_MACHINE, open_HKLM },
        { HKEY_CURRENT_USER, open_HKCU },
@@ -90,20 +91,20 @@ static struct {
 
 static WERROR rpc_query_key(const struct registry_key *k);
 
-static WERROR rpc_get_predefined_key(const struct registry_context *ctx, 
-                                                                        uint32_t hkey_type, 
-                                                                        struct registry_key **k)
+static WERROR rpc_get_predefined_key(const struct registry_context *ctx,
+                                    uint32_t hkey_type,
+                                    struct registry_key **k)
 {
        int n;
-       struct rpc_registry_context *rctx = talloc_get_type(ctx, 
-                                                                                               struct rpc_registry_context);
+       struct rpc_registry_context *rctx = talloc_get_type(ctx,
+                                                           struct rpc_registry_context);
        struct rpc_key *mykeydata;
 
        for(n = 0; known_hives[n].hkey; n++) {
-               if(known_hives[n].hkey == hkey_type) 
+               if(known_hives[n].hkey == hkey_type)
                        break;
        }
-       
+
        if (known_hives[n].open == NULL)  {
                DEBUG(1, ("No such hive %d\n", hkey_type));
                return WERR_NO_MORE_ITEMS;
@@ -119,7 +120,7 @@ static WERROR rpc_get_predefined_key(const struct registry_context *ctx,
 #if 0
 static WERROR rpc_key_put_rpc_data(TALLOC_CTX *mem_ctx, struct registry_key *k)
 {
-    struct winreg_OpenKey r;
+       struct winreg_OpenKey r;
        struct rpc_key_data *mykeydata;
 
        k->backend_data = mykeydata = talloc(mem_ctx, struct rpc_key_data);
@@ -129,46 +130,47 @@ static WERROR rpc_key_put_rpc_data(TALLOC_CTX *mem_ctx, struct registry_key *k)
        /* Then, open the handle using the hive */
 
        memset(&r, 0, sizeof(struct winreg_OpenKey));
-    r.in.handle = &(((struct rpc_key_data *)k->hive->root->backend_data)->pol);
-    init_winreg_String(&r.in.keyname, k->path);
-    r.in.unknown = 0x00000000;
-    r.in.access_mask = 0x02000000;
-    r.out.handle = &mykeydata->pol;
+       r.in.handle = &(((struct rpc_key_data *)k->hive->root->backend_data)->pol);
+       init_winreg_String(&r.in.keyname, k->path);
+       r.in.unknown = 0x00000000;
+       r.in.access_mask = 0x02000000;
+       r.out.handle = &mykeydata->pol;
 
-    dcerpc_winreg_OpenKey((struct dcerpc_pipe *)k->hive->backend_data, mem_ctx, &r);
+       dcerpc_winreg_OpenKey((struct dcerpc_pipe *)k->hive->backend_data,
+                             mem_ctx, &r);
 
        return r.out.result;
 }
 #endif
 
-static WERROR rpc_open_key(TALLOC_CTX *mem_ctx, struct registry_key *h, 
-                                                  const char *name, struct registry_key **key)
+static WERROR rpc_open_key(TALLOC_CTX *mem_ctx, struct registry_key *h,
+                          const char *name, struct registry_key **key)
 {
        struct rpc_key *mykeydata = talloc_get_type(h, struct rpc_key),
-                                  *newkeydata;
-    struct winreg_OpenKey r;
+                                                   *newkeydata;
+       struct winreg_OpenKey r;
 
        mykeydata = talloc(mem_ctx, struct rpc_key);
 
        /* Then, open the handle using the hive */
        memset(&r, 0, sizeof(struct winreg_OpenKey));
-    r.in.parent_handle = &mykeydata->pol;
-    init_winreg_String(&r.in.keyname, name);
-    r.in.unknown = 0x00000000;
-    r.in.access_mask = 0x02000000;
-    r.out.handle = &newkeydata->pol;
+       r.in.parent_handle = &mykeydata->pol;
+       init_winreg_String(&r.in.keyname, name);
+       r.in.unknown = 0x00000000;
+       r.in.access_mask = 0x02000000;
+       r.out.handle = &newkeydata->pol;
 
-    dcerpc_winreg_OpenKey(mykeydata->pipe, mem_ctx, &r);
+       dcerpc_winreg_OpenKey(mykeydata->pipe, mem_ctx, &r);
 
        return r.out.result;
 }
 
-static WERROR rpc_get_value_by_index(TALLOC_CTX *mem_ctx, 
-                                                                        const struct registry_key *parent, 
-                                                                        uint32_t n, 
-                                                                        const char **value_name,
-                                                                        uint32_t *type,
-                                                                        DATA_BLOB *data)
+static WERROR rpc_get_value_by_index(TALLOC_CTX *mem_ctx,
+                                    const struct registry_key *parent,
+                                    uint32_t n,
+                                    const char **value_name,
+                                    uint32_t *type,
+                                    DATA_BLOB *data)
 {
        struct rpc_key *mykeydata = talloc_get_type(parent, struct rpc_key);
        WERROR error;
@@ -177,14 +179,14 @@ static WERROR rpc_get_value_by_index(TALLOC_CTX *mem_ctx,
        NTSTATUS status;
        struct winreg_StringBuf name;
        uint8_t u8;
-       
+
        if (mykeydata->num_values == -1) {
                error = rpc_query_key(parent);
                if(!W_ERROR_IS_OK(error)) return error;
        }
 
        len1 = mykeydata->max_valdatalen;
-       
+
        name.length = 0;
        name.size   = mykeydata->max_valnamelen * 2;
        name.name   = "";
@@ -197,29 +199,29 @@ static WERROR rpc_get_value_by_index(TALLOC_CTX *mem_ctx,
        r.in.length = &zero;
        r.in.size = &len1;
        r.out.name = &name;
-       
+
        status = dcerpc_winreg_EnumValue(mykeydata->pipe, mem_ctx, &r);
        if(NT_STATUS_IS_ERR(status)) {
                DEBUG(0, ("Error in EnumValue: %s\n", nt_errstr(status)));
                return WERR_GENERAL_FAILURE;
        }
-       
-       if(NT_STATUS_IS_OK(status) && 
+
+       if(NT_STATUS_IS_OK(status) &&
           W_ERROR_IS_OK(r.out.result) && r.out.length) {
                *value_name = talloc_strdup(mem_ctx, r.out.name->name);
                *data = data_blob_talloc(mem_ctx, r.out.value, *r.out.length);
                return WERR_OK;
        }
-       
+
        return r.out.result;
 }
 
-static WERROR rpc_get_subkey_by_index(TALLOC_CTX *mem_ctx, 
-                                                                         const struct registry_key *parent, 
-                                                                         uint32_t n, 
-                                                                         const char **name,
-                                                                         const char **keyclass,
-                                                                         NTTIME *last_changed_time)
+static WERROR rpc_get_subkey_by_index(TALLOC_CTX *mem_ctx,
+                                     const struct registry_key *parent,
+                                     uint32_t n,
+                                     const char **name,
+                                     const char **keyclass,
+                                     NTTIME *last_changed_time)
 {
        struct winreg_EnumKey r;
        struct rpc_key *mykeydata = talloc_get_type(parent, struct rpc_key);
@@ -242,7 +244,7 @@ static WERROR rpc_get_subkey_by_index(TALLOC_CTX *mem_ctx,
        r.out.name = &namebuf;
 
        status = dcerpc_winreg_EnumKey(mykeydata->pipe, mem_ctx, &r);
-       if(NT_STATUS_IS_OK(status) && W_ERROR_IS_OK(r.out.result)) {
+       if (NT_STATUS_IS_OK(status) && W_ERROR_IS_OK(r.out.result)) {
                *name = talloc_strdup(mem_ctx, r.out.name->name);
                *keyclass = talloc_strdup(mem_ctx, r.out.keyclass->name);
                *last_changed_time = *r.out.last_changed_time;
@@ -251,11 +253,11 @@ static WERROR rpc_get_subkey_by_index(TALLOC_CTX *mem_ctx,
        return r.out.result;
 }
 
-static WERROR rpc_add_key(TALLOC_CTX *mem_ctx, 
-                                                 struct registry_key *parent, const char *name, 
-                                                 const char *key_class,
-                                                 struct security_descriptor *sec, 
-                                                 struct registry_key **key)
+static WERROR rpc_add_key(TALLOC_CTX *mem_ctx,
+                         struct registry_key *parent, const char *name,
+                         const char *key_class,
+                         struct security_descriptor *sec,
+                         struct registry_key **key)
 {
        NTSTATUS status;
        struct winreg_CreateKey r;
@@ -273,11 +275,11 @@ static WERROR rpc_add_key(TALLOC_CTX *mem_ctx,
 
        status = dcerpc_winreg_CreateKey(parentkd->pipe, mem_ctx, &r);
 
-    if (!NT_STATUS_IS_OK(status)) {
+       if (!NT_STATUS_IS_OK(status)) {
                talloc_free(rpck);
-        DEBUG(1, ("CreateKey failed - %s\n", nt_errstr(status)));
-        return ntstatus_to_werror(status);
-    }
+               DEBUG(1, ("CreateKey failed - %s\n", nt_errstr(status)));
+               return ntstatus_to_werror(status);
+       }
 
        if (W_ERROR_IS_OK(r.out.result)) {
                rpck->pipe = talloc_reference(rpck, parentkd->pipe);
@@ -289,29 +291,29 @@ static WERROR rpc_add_key(TALLOC_CTX *mem_ctx,
 
 static WERROR rpc_query_key(const struct registry_key *k)
 {
-    NTSTATUS status;
-    struct winreg_QueryInfoKey r;
-    struct rpc_key *mykeydata = talloc_get_type(k, struct rpc_key);
+       NTSTATUS status;
+       struct winreg_QueryInfoKey r;
+       struct rpc_key *mykeydata = talloc_get_type(k, struct rpc_key);
        TALLOC_CTX *mem_ctx = talloc_init("query_key");
 
        r.in.classname = talloc(mem_ctx, struct winreg_String);
-    init_winreg_String(r.in.classname, NULL);
-    r.in.handle = &mykeydata->pol;
-       
-    status = dcerpc_winreg_QueryInfoKey(mykeydata->pipe, mem_ctx, &r);
+       init_winreg_String(r.in.classname, NULL);
+       r.in.handle = &mykeydata->pol;
+
+       status = dcerpc_winreg_QueryInfoKey(mykeydata->pipe, mem_ctx, &r);
        talloc_free(mem_ctx);
 
-    if (!NT_STATUS_IS_OK(status)) {
-        DEBUG(1, ("QueryInfoKey failed - %s\n", nt_errstr(status)));
-        return ntstatus_to_werror(status);
-    }
-                                                                                                       
-    if (W_ERROR_IS_OK(r.out.result)) {
+       if (!NT_STATUS_IS_OK(status)) {
+               DEBUG(1, ("QueryInfoKey failed - %s\n", nt_errstr(status)));
+               return ntstatus_to_werror(status);
+       }
+
+       if (W_ERROR_IS_OK(r.out.result)) {
                mykeydata->num_subkeys = *r.out.num_subkeys;
                mykeydata->num_values = *r.out.num_values;
                mykeydata->max_valnamelen = *r.out.max_valnamelen;
                mykeydata->max_valdatalen = *r.out.max_valbufsize;
-       } 
+       }
 
        return r.out.result;
 }
@@ -322,11 +324,11 @@ static WERROR rpc_del_key(struct registry_key *parent, const char *name)
        struct rpc_key *mykeydata = talloc_get_type(parent, struct rpc_key);
        struct winreg_DeleteKey r;
        TALLOC_CTX *mem_ctx = talloc_init("del_key");
-       
-    r.in.handle = &mykeydata->pol;
-    init_winreg_String(&r.in.key, name);
-    status = dcerpc_winreg_DeleteKey(mykeydata->pipe, mem_ctx, &r);
+
+       r.in.handle = &mykeydata->pol;
+       init_winreg_String(&r.in.key, name);
+
+       status = dcerpc_winreg_DeleteKey(mykeydata->pipe, mem_ctx, &r);
 
        talloc_free(mem_ctx);
 
@@ -334,19 +336,19 @@ static WERROR rpc_del_key(struct registry_key *parent, const char *name)
 }
 
 static WERROR rpc_get_info(TALLOC_CTX *mem_ctx, const struct registry_key *key,
-                                                  const char **classname, 
+                                                  const char **classname,
                                                   uint32_t *numsubkeys,
                                                   uint32_t *numvalue,
                                                   NTTIME *last_changed_time)
 {
        struct rpc_key *mykeydata = talloc_get_type(key, struct rpc_key);
        WERROR error;
-               
-       if(mykeydata->num_values == -1) {
+
+       if (mykeydata->num_values == -1) {
                error = rpc_query_key(key);
                if(!W_ERROR_IS_OK(error)) return error;
        }
-                       
+
        /* FIXME: *classname = talloc_strdup(mem_ctx, mykeydata->classname); */
        /* FIXME: *last_changed_time = mykeydata->last_changed_time */
 
@@ -370,10 +372,10 @@ static struct registry_operations reg_backend_rpc = {
        .get_predefined_key = rpc_get_predefined_key,
 };
 
-_PUBLIC_ WERROR reg_open_remote(struct registry_context **ctx, 
-                                                               struct auth_session_info *session_info, 
-                                                               struct cli_credentials *credentials, 
-                                                               const char *location, struct event_context *ev)
+_PUBLIC_ WERROR reg_open_remote(struct registry_context **ctx,
+                               struct auth_session_info *session_info,
+                               struct cli_credentials *credentials,
+                               const char *location, struct event_context *ev)
 {
        NTSTATUS status;
        struct dcerpc_pipe *p;
@@ -388,14 +390,15 @@ _PUBLIC_ WERROR reg_open_remote(struct registry_context **ctx,
                location = talloc_strdup(ctx, "ncalrpc:");
        }
 
-       status = dcerpc_pipe_connect(*ctx /* TALLOC_CTX */, 
-                                    &p, location, 
+       status = dcerpc_pipe_connect(*ctx /* TALLOC_CTX */,
+                                    &p, location,
                                         &ndr_table_winreg,
                                     credentials, ev);
        rctx->pipe = p;
 
        if(NT_STATUS_IS_ERR(status)) {
-               DEBUG(1, ("Unable to open '%s': %s\n", location, nt_errstr(status)));
+               DEBUG(1, ("Unable to open '%s': %s\n", location,
+                       nt_errstr(status)));
                talloc_free(*ctx);
                *ctx = NULL;
                return ntstatus_to_werror(status);
index 6aaaa118d03ceecf44d430248c833ea5761951a4..2397432f0bc1e043f0640a688bc91f633cff786f 100644 (file)
@@ -1,4 +1,4 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
    Copyright (C) Jelmer Vernooij                       2004-2007.
 
 
 #include "includes.h"
 #include "registry.h"
+#include "param/param.h"
 
 /**
  * @file
  * @brief Samba-specific registry functions
  */
 
-WERROR mount_samba_hive(struct registry_context *ctx,
-                                               struct auth_session_info *auth_info,
-                                               struct cli_credentials *creds,
-                                               const char *name, 
-                                               uint32_t hive_id)
+static WERROR mount_samba_hive(struct registry_context *ctx,
+                              struct auth_session_info *auth_info,
+                              struct cli_credentials *creds,
+                              const char *name,
+                              uint32_t hive_id)
 {
        WERROR error;
        struct hive_key *hive;
        const char *location;
 
-       location = talloc_asprintf(ctx, "%s/%s.ldb", lp_private_dir(), name);
-
+       location = talloc_asprintf(ctx, "%s/%s.ldb",
+                                  lp_private_dir(global_loadparm),
+                                  name);
 
        error = reg_open_hive(ctx, location, auth_info, creds, &hive);
 
        if (W_ERROR_EQUAL(error, WERR_NOT_FOUND))
-               error = reg_open_ldb_file(ctx, location, auth_info, creds, &hive);
+               error = reg_open_ldb_file(ctx, location, auth_info,
+                                         creds, &hive);
 
        if (!W_ERROR_IS_OK(error))
                return error;
@@ -49,10 +52,10 @@ WERROR mount_samba_hive(struct registry_context *ctx,
 }
 
 
-_PUBLIC_ WERROR reg_open_samba (TALLOC_CTX *mem_ctx, 
-                               struct registry_context **ctx, 
-                               struct auth_session_info *session_info, 
-                               struct cli_credentials *credentials)
+_PUBLIC_ WERROR reg_open_samba(TALLOC_CTX *mem_ctx,
+                              struct registry_context **ctx,
+                              struct auth_session_info *session_info,
+                              struct cli_credentials *credentials)
 {
        WERROR result;
 
@@ -61,19 +64,19 @@ _PUBLIC_ WERROR reg_open_samba (TALLOC_CTX *mem_ctx,
                return result;
        }
 
-       mount_samba_hive(*ctx, session_info, credentials, 
-                                        "hklm", HKEY_LOCAL_MACHINE);
+       mount_samba_hive(*ctx, session_info, credentials,
+                        "hklm", HKEY_LOCAL_MACHINE);
 
-       mount_samba_hive(*ctx, session_info, credentials, 
-                                        "hkcr", HKEY_CLASSES_ROOT);
+       mount_samba_hive(*ctx, session_info, credentials,
+                        "hkcr", HKEY_CLASSES_ROOT);
 
-       /* FIXME: Should be mounted from NTUSER.DAT in the home directory of the 
+       /* FIXME: Should be mounted from NTUSER.DAT in the home directory of the
         * current user */
-       mount_samba_hive(*ctx, session_info, credentials, 
-                                        "hkcu", HKEY_CURRENT_USER);
+       mount_samba_hive(*ctx, session_info, credentials,
+                        "hkcu", HKEY_CURRENT_USER);
 
-       mount_samba_hive(*ctx, session_info, credentials, 
-                                        "hku", HKEY_USERS);
+       mount_samba_hive(*ctx, session_info, credentials,
+                        "hku", HKEY_USERS);
 
        /* FIXME: Different hive backend for HKEY_CLASSES_ROOT: merged view of HKEY_LOCAL_MACHINE\Software\Classes
         * and HKEY_CURRENT_USER\Software\Classes */
@@ -85,6 +88,6 @@ _PUBLIC_ WERROR reg_open_samba (TALLOC_CTX *mem_ctx,
        /* FIXME: HKEY_LOCAL_MACHINE\Hardware is autogenerated */
 
        /* FIXME: HKEY_LOCAL_MACHINE\Security\SAM is an alias for HKEY_LOCAL_MACHINE\SAM */
-       
+
        return WERR_OK;
 }
index a04bc1168e25ba9ac88126f44570554cc11a539e..dff6d1e8298aed84c073dab50299168ff343d526 100644 (file)
 #include "librpc/gen_ndr/winreg.h"
 #include "system/filesys.h"
 
-NTSTATUS torture_temp_dir(struct torture_context *tctx, const char *prefix, 
-                                                                  const char **tempdir);
-
 static bool test_del_nonexistant_key(struct torture_context *tctx,
-                                                                        const void *test_data)
+                                    const void *test_data)
 {
-       const struct hive_key *root = test_data;
+       const struct hive_key *root = (const struct hive_key *)test_data;
        WERROR error = hive_key_del(root, "bla");
        torture_assert_werr_equal(tctx, error, WERR_NOT_FOUND, 
                                                          "invalid return code");
@@ -45,7 +42,7 @@ static bool test_keyinfo_root(struct torture_context *tctx,
                                                 const void *test_data)
 {
        uint32_t num_subkeys, num_values;
-       const struct hive_key *root = test_data;
+       const struct hive_key *root = (const struct hive_key *)test_data;
        WERROR error;
 
        /* This is a new backend. There should be no subkeys and no 
@@ -67,7 +64,7 @@ static bool test_keyinfo_nums(struct torture_context *tctx,
                                                 const void *test_data)
 {
        uint32_t num_subkeys, num_values;
-       const struct hive_key *root = test_data;
+       const struct hive_key *root = (const struct hive_key *)test_data;
        WERROR error;
        struct hive_key *subkey;
        uint32_t data = 42;
@@ -100,7 +97,7 @@ static bool test_add_subkey(struct torture_context *tctx,
 {
        WERROR error;
        struct hive_key *subkey;
-       const struct hive_key *root = test_data;
+       const struct hive_key *root = (const struct hive_key *)test_data;
        TALLOC_CTX *mem_ctx = tctx;
 
        error = hive_key_add_name(mem_ctx, root, "Nested Key", NULL, 
@@ -114,9 +111,9 @@ static bool test_add_subkey(struct torture_context *tctx,
 }
 
 static bool test_flush_key(struct torture_context *tctx,
-                                         const void *test_data)
+                          const void *test_data)
 {
-       const struct hive_key *root = test_data;
+       const struct hive_key *root = (const struct hive_key *)test_data;
 
        torture_assert_werr_ok(tctx, hive_key_flush(root), "flush key");
 
@@ -127,7 +124,7 @@ static bool test_del_key(struct torture_context *tctx, const void *test_data)
 {
        WERROR error;
        struct hive_key *subkey;
-       const struct hive_key *root = test_data;
+       const struct hive_key *root = (const struct hive_key *)test_data;
        TALLOC_CTX *mem_ctx = tctx;
 
        error = hive_key_add_name(mem_ctx, root, "Nested Key", NULL, 
@@ -148,7 +145,7 @@ static bool test_set_value(struct torture_context *tctx,
 {
        WERROR error;
        struct hive_key *subkey;
-       const struct hive_key *root = test_data;
+       const struct hive_key *root = (const struct hive_key *)test_data;
        TALLOC_CTX *mem_ctx = tctx;
        uint32_t data = 42;
 
@@ -167,7 +164,7 @@ static bool test_get_value(struct torture_context *tctx, const void *test_data)
 {
        WERROR error;
        struct hive_key *subkey;
-       const struct hive_key *root = test_data;
+       const struct hive_key *root = (const struct hive_key *)test_data;
        TALLOC_CTX *mem_ctx = tctx;
        uint32_t data = 42;
        uint32_t type;
@@ -200,7 +197,7 @@ static bool test_del_value(struct torture_context *tctx, const void *test_data)
 {
        WERROR error;
        struct hive_key *subkey;
-       const struct hive_key *root = test_data;
+       const struct hive_key *root = (const struct hive_key *)test_data;
        TALLOC_CTX *mem_ctx = tctx;
        uint32_t data = 42;
        uint32_t type;
@@ -231,7 +228,7 @@ static bool test_list_values(struct torture_context *tctx,
 {
        WERROR error;
        struct hive_key *subkey;
-       const struct hive_key *root = test_data;
+       const struct hive_key *root = (const struct hive_key *)test_data;
        TALLOC_CTX *mem_ctx = tctx;
        uint32_t data = 42;
        uint32_t type;
index fd2e98eac89b23fb15e823fb813ccfcca4e116d1..962c7fd2b5137d362b0babe07c868366a390d254 100644 (file)
 #include "libcli/security/security.h"
 #include "system/filesys.h"
 
-NTSTATUS torture_temp_dir(struct torture_context *tctx, const char *prefix, 
-                                                                  const char **tempdir);
-
 /**
  * Test obtaining a predefined key.
  */
 static bool test_get_predefined(struct torture_context *tctx,
                                                                const void *_data)
 {
-       const struct registry_context *rctx = _data;
+       const struct registry_context *rctx = 
+               (const struct registry_context *)_data;
        struct registry_key *root;
        WERROR error;
 
@@ -66,7 +64,8 @@ static bool test_get_predefined_unknown(struct torture_context *tctx,
 static bool test_predef_key_by_name(struct torture_context *tctx,
                                                                const void *_data)
 {
-       const struct registry_context *rctx = _data;
+       const struct registry_context *rctx = 
+               (const struct registry_context *)_data;
        struct registry_key *root;
        WERROR error;
 
@@ -84,7 +83,8 @@ static bool test_predef_key_by_name(struct torture_context *tctx,
 static bool test_predef_key_by_name_invalid(struct torture_context *tctx,
                                                                const void *_data)
 {
-       const struct registry_context *rctx = _data;
+       const struct registry_context *rctx = 
+               (const struct registry_context *)_data;
        struct registry_key *root;
        WERROR error;
 
@@ -100,7 +100,8 @@ static bool test_predef_key_by_name_invalid(struct torture_context *tctx,
 static bool test_create_subkey(struct torture_context *tctx,
                                                      const void *_data)
 {
-       const struct registry_context *rctx = _data;
+       const struct registry_context *rctx = 
+               (const struct registry_context *)_data;
        struct registry_key *root, *newkey;
        WERROR error;
 
@@ -121,7 +122,8 @@ static bool test_create_subkey(struct torture_context *tctx,
 static bool test_create_nested_subkey(struct torture_context *tctx,
                                                      const void *_data)
 {
-       const struct registry_context *rctx = _data;
+       const struct registry_context *rctx = 
+               (const struct registry_context *)_data;
        struct registry_key *root, *newkey1, *newkey2;
        WERROR error;
 
@@ -132,7 +134,7 @@ static bool test_create_nested_subkey(struct torture_context *tctx,
        error = reg_key_add_name(rctx, root, "Hamburg", NULL, NULL, 
                                                         &newkey1);
        torture_assert_werr_ok(tctx, error, "Creating key return code");
-       torture_assert(tctx, newkey2 != NULL, "Creating new key");
+       torture_assert(tctx, newkey1 != NULL, "Creating new key");
 
        error = reg_key_add_name(rctx, root, "Hamburg\\Hamburg", NULL, NULL, 
                                                         &newkey2);
@@ -148,7 +150,8 @@ static bool test_create_nested_subkey(struct torture_context *tctx,
 static bool test_key_add_abs_top(struct torture_context *tctx,
                                                         const void *_data)
 {
-       const struct registry_context *rctx = _data;
+       const struct registry_context *rctx = 
+               (const struct registry_context *)_data;
        struct registry_key *root;
        WERROR error;
 
@@ -165,7 +168,8 @@ static bool test_key_add_abs(struct torture_context *tctx,
                                                         const void *_data)
 {
        WERROR error;
-       const struct registry_context *rctx = _data;
+       const struct registry_context *rctx = 
+               (const struct registry_context *)_data;
        struct registry_key *root, *result1, *result2;
 
        error = reg_key_add_abs(tctx, rctx,  "HKEY_CLASSES_ROOT\\bloe", 0, NULL, &result1);
@@ -190,7 +194,8 @@ static bool test_key_add_abs(struct torture_context *tctx,
 
 static bool test_del_key(struct torture_context *tctx, const void *_data)
 {
-       const struct registry_context *rctx = _data;
+       const struct registry_context *rctx = 
+               (const struct registry_context *)_data;
        struct registry_key *root, *newkey;
        WERROR error;
 
@@ -238,7 +243,8 @@ static bool create_test_key(struct torture_context *tctx,
 
 static bool test_flush_key(struct torture_context *tctx, const void *_data)
 {
-       const struct registry_context *rctx = _data;
+       const struct registry_context *rctx = 
+               (const struct registry_context *)_data;
        struct registry_key *root, *subkey;
        WERROR error;
 
@@ -256,7 +262,8 @@ static bool test_flush_key(struct torture_context *tctx, const void *_data)
 
 static bool test_query_key(struct torture_context *tctx, const void *_data)
 {
-       const struct registry_context *rctx = _data;
+       const struct registry_context *rctx = 
+               (const struct registry_context *)_data;
        struct registry_key *root, *subkey;
        WERROR error;
        NTTIME last_changed_time;
@@ -280,7 +287,8 @@ static bool test_query_key(struct torture_context *tctx, const void *_data)
 
 static bool test_query_key_nums(struct torture_context *tctx, const void *_data)
 {
-       const struct registry_context *rctx = _data;
+       const struct registry_context *rctx = 
+               (const struct registry_context *)_data;
        struct registry_key *root, *subkey1, *subkey2;
        WERROR error;
        uint32_t num_subkeys, num_values;
@@ -313,7 +321,8 @@ static bool test_query_key_nums(struct torture_context *tctx, const void *_data)
  */
 static bool test_list_subkeys(struct torture_context *tctx, const void *_data)
 {
-       const struct registry_context *rctx = _data;
+       const struct registry_context *rctx = 
+               (const struct registry_context *)_data;
        struct registry_key *subkey = NULL, *root;
        WERROR error;
        NTTIME last_mod_time;
@@ -351,7 +360,8 @@ static bool test_list_subkeys(struct torture_context *tctx, const void *_data)
  */
 static bool test_set_value(struct torture_context *tctx, const void *_data)
 {
-       const struct registry_context *rctx = _data;
+       const struct registry_context *rctx = 
+               (const struct registry_context *)_data;
        struct registry_key *subkey = NULL, *root;
        WERROR error;
        uint32_t data = 42;
@@ -371,10 +381,10 @@ static bool test_set_value(struct torture_context *tctx, const void *_data)
  */
 static bool test_security(struct torture_context *tctx, const void *_data)
 {
-       const struct registry_context *rctx = _data;
+       const struct registry_context *rctx = 
+               (const struct registry_context *)_data;
        struct registry_key *subkey = NULL, *root;
        WERROR error;
-       uint32_t data = 42;
        struct security_descriptor *osd, *nsd;
 
        if (!create_test_key(tctx, rctx, "Düsseldorf", &root, &subkey))
@@ -405,7 +415,8 @@ static bool test_security(struct torture_context *tctx, const void *_data)
  */
 static bool test_get_value(struct torture_context *tctx, const void *_data)
 {
-       const struct registry_context *rctx = _data;
+       const struct registry_context *rctx = 
+               (const struct registry_context *)_data;
        struct registry_key *subkey = NULL, *root;
        WERROR error;
        DATA_BLOB data;
@@ -440,7 +451,8 @@ static bool test_get_value(struct torture_context *tctx, const void *_data)
  */
 static bool test_del_value(struct torture_context *tctx, const void *_data)
 {
-       const struct registry_context *rctx = _data;
+       const struct registry_context *rctx = 
+               (const struct registry_context *)_data;
        struct registry_key *subkey = NULL, *root;
        WERROR error;
        DATA_BLOB data;
@@ -474,7 +486,8 @@ static bool test_del_value(struct torture_context *tctx, const void *_data)
  */
 static bool test_list_values(struct torture_context *tctx, const void *_data)
 {
-       const struct registry_context *rctx = _data;
+       const struct registry_context *rctx = 
+               (const struct registry_context *)_data;
        struct registry_key *subkey = NULL, *root;
        WERROR error;
        DATA_BLOB data;
@@ -511,26 +524,20 @@ static bool setup_local_registry(struct torture_context *tctx, void **data)
        const char *tempdir;
        NTSTATUS status;
        struct hive_key *hive_key;
+       const char *filename;
 
        error = reg_open_local(tctx, &rctx, NULL, NULL);
-       if (!W_ERROR_IS_OK(error))
-               return false;
+       torture_assert_werr_ok(tctx, error, "Opening local registry failed");
 
        status = torture_temp_dir(tctx, "registry-local", &tempdir);
-       if (!NT_STATUS_IS_OK(status))
-               return false;
+       torture_assert_ntstatus_ok(tctx, status, "Creating temp dir failed");
 
-       error = reg_open_ldb_file(tctx, 
-                                         talloc_asprintf(tctx, "%s/classes_root.ldb", tempdir),
-                                         NULL,
-                                         NULL,
-                                         &hive_key);
-       if (!W_ERROR_IS_OK(error))
-               return false;
+       filename = talloc_asprintf(tctx, "%s/classes_root.ldb", tempdir);
+       error = reg_open_ldb_file(tctx, filename, NULL, NULL, &hive_key);
+       torture_assert_werr_ok(tctx, error, "Opening classes_root file failed");
 
        error = reg_mount_hive(rctx, hive_key, HKEY_CLASSES_ROOT, NULL);
-       if (!W_ERROR_IS_OK(error))
-               return false;
+       torture_assert_werr_ok(tctx, error, "Mounting hive failed");
 
        *data = rctx;
 
@@ -540,13 +547,10 @@ static bool setup_local_registry(struct torture_context *tctx, void **data)
 static void tcase_add_tests(struct torture_tcase *tcase)
 {
        torture_tcase_add_simple_test(tcase, "list_subkeys", test_list_subkeys);
-       torture_tcase_add_simple_test(tcase, "get_predefined_key",
-                                                                       test_get_predefined);
-       torture_tcase_add_simple_test(tcase, "get_predefined_key",
-                                                                       test_get_predefined_unknown);
+       torture_tcase_add_simple_test(tcase, "get_predefined_key", test_get_predefined);
+       torture_tcase_add_simple_test(tcase, "get_predefined_key", test_get_predefined_unknown);
        torture_tcase_add_simple_test(tcase, "create_key", test_create_subkey);
-       torture_tcase_add_simple_test(tcase, "create_key", 
-                                                                 test_create_nested_subkey);
+       torture_tcase_add_simple_test(tcase, "create_key", test_create_nested_subkey);
        torture_tcase_add_simple_test(tcase, "key_add_abs", test_key_add_abs);
        torture_tcase_add_simple_test(tcase, "key_add_abs_top", test_key_add_abs_top);
        torture_tcase_add_simple_test(tcase, "set_value", test_set_value);
@@ -558,18 +562,16 @@ static void tcase_add_tests(struct torture_tcase *tcase)
        torture_tcase_add_simple_test(tcase, "query_key", test_query_key);
        torture_tcase_add_simple_test(tcase, "query_key_nums", test_query_key_nums);
        torture_tcase_add_simple_test(tcase, "test_predef_key_by_name", 
-                                                                 test_predef_key_by_name);
-       torture_tcase_add_simple_test(tcase, "security", 
-                                                                 test_security);
+                                     test_predef_key_by_name);
+       torture_tcase_add_simple_test(tcase, "security", test_security);
        torture_tcase_add_simple_test(tcase, "test_predef_key_by_name_invalid", 
-                                                                 test_predef_key_by_name_invalid);
+                                     test_predef_key_by_name_invalid);
 }
 
 struct torture_suite *torture_registry_registry(TALLOC_CTX *mem_ctx) 
 {
        struct torture_tcase *tcase;
-       struct torture_suite *suite = torture_suite_create(mem_ctx, 
-                                                                                                          "REGISTRY");
+       struct torture_suite *suite = torture_suite_create(mem_ctx, "REGISTRY");
        
        tcase = torture_suite_add_tcase(suite, "local");
        torture_tcase_set_fixture(tcase, setup_local_registry, NULL);
index c8b0945c2cb0baaf5478c6bb3b8ec52ac7f89042..aa11eccbee8e3da673dcc6e344a540a0000d6190 100644 (file)
@@ -21,6 +21,7 @@
 #include "includes.h"
 #include "auth/credentials/credentials.h"
 #include "lib/registry/registry.h"
+#include "lib/registry/tools/common.h"
 
 struct registry_context *reg_common_open_remote(const char *remote, struct cli_credentials *creds)
 {
index 131d76fff5ccf2bd74f0d0482bb4854d1a3b4c6e..cdf688b39eb85f9c8eadc0bfb850489b097d238c 100644 (file)
@@ -262,8 +262,7 @@ static WERROR cmd_rmval(struct regshell_context *ctx, int argc, char **argv)
        return WERR_OK; 
 }
 
-static WERROR cmd_exit(struct regshell_context *ctx,
-                                                                        int argc, char **argv)
+_NORETURN_ static WERROR cmd_exit(struct regshell_context *ctx, int argc, char **argv)
 {
        exit(0);
        return WERR_OK;
@@ -275,8 +274,7 @@ static struct {
        const char *name;
        const char *alias;
        const char *help;
-       WERROR (*handle)(struct regshell_context *ctx,
-                                                                  int argc, char **argv);
+       WERROR (*handle)(struct regshell_context *ctx, int argc, char **argv);
 } regshell_cmds[] = {
        {"ck", "cd", "Change current key", cmd_ck },
        {"info", "i", "Show detailed information of a key", cmd_info },
index 6afd1bc44cc53b504301659934c780ded976cc82..ca3e3dd619dd44d83f512aa23a9e291dce79eb63 100644 (file)
@@ -1,4 +1,4 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
    Transparent registry backend handling
    Copyright (C) Jelmer Vernooij                       2003-2007.
@@ -43,60 +43,59 @@ _PUBLIC_ const char *str_regtype(int type)
 {
        int i;
        for (i = 0; reg_value_types[i].name; i++) {
-               if (reg_value_types[i].id == type) 
+               if (reg_value_types[i].id == type)
                        return reg_value_types[i].name;
        }
 
        return "Unknown";
 }
 
-_PUBLIC_ char *reg_val_data_string(TALLOC_CTX *mem_ctx, uint32_t type, 
-                                                                  const DATA_BLOB data)
-{ 
-  char *ret = NULL;
-
-  if (data.length == 0) 
-         return talloc_strdup(mem_ctx, "");
-
-  switch (type) {
-  case REG_EXPAND_SZ:
-  case REG_SZ:
-      convert_string_talloc(mem_ctx, CH_UTF16, CH_UNIX, data.data, data.length, 
-                                                       (void **)&ret);
-         return ret;
-
-  case REG_BINARY:
-         ret = data_blob_hex_string(mem_ctx, &data);
-         return ret;
-
-  case REG_DWORD:
-         if (*(int *)data.data == 0)
-                 return talloc_strdup(mem_ctx, "0");
-
-         return talloc_asprintf(mem_ctx, "0x%x", *(int *)data.data);
+_PUBLIC_ char *reg_val_data_string(TALLOC_CTX *mem_ctx, uint32_t type,
+                                  const DATA_BLOB data)
+{
+       char *ret = NULL;
 
-  case REG_MULTI_SZ:
-       /* FIXME */
-    break;
+       if (data.length == 0)
+               return talloc_strdup(mem_ctx, "");
 
-  default:
-    break;
-  } 
+       switch (type) {
+               case REG_EXPAND_SZ:
+               case REG_SZ:
+                       convert_string_talloc(mem_ctx, CH_UTF16, CH_UNIX,
+                                             data.data, data.length,
+                                             (void **)&ret);
+                       return ret;
+               case REG_BINARY:
+                       ret = data_blob_hex_string(mem_ctx, &data);
+                       return ret;
+               case REG_DWORD:
+                       if (*(int *)data.data == 0)
+                               return talloc_strdup(mem_ctx, "0");
+                       return talloc_asprintf(mem_ctx, "0x%x",
+                                              *(int *)data.data);
+               case REG_MULTI_SZ:
+                       /* FIXME */
+                       break;
+               default:
+                       break;
+       }
 
-  return ret;
+       return ret;
 }
 
 /** Generate a string that describes a registry value */
-_PUBLIC_ char *reg_val_description(TALLOC_CTX *mem_ctx, const char *name, 
-                                                                  uint32_t data_type,
-                                                                  const DATA_BLOB data)
+_PUBLIC_ char *reg_val_description(TALLOC_CTX *mem_ctx, const char *name,
+                                  uint32_t data_type,
+                                  const DATA_BLOB data)
 {
-       return talloc_asprintf(mem_ctx, "%s = %s : %s", name?name:"<No Name>", 
-                                                  str_regtype(data_type), 
-                                       reg_val_data_string(mem_ctx, data_type, data));
+       return talloc_asprintf(mem_ctx, "%s = %s : %s", name?name:"<No Name>",
+                              str_regtype(data_type),
+                              reg_val_data_string(mem_ctx, data_type, data));
 }
 
-_PUBLIC_ bool reg_string_to_val(TALLOC_CTX *mem_ctx, const char *type_str, const char *data_str, uint32_t *type, DATA_BLOB *data)
+_PUBLIC_ bool reg_string_to_val(TALLOC_CTX *mem_ctx, const char *type_str,
+                               const char *data_str, uint32_t *type,
+                               DATA_BLOB *data)
 {
        int i;
        *type = -1;
@@ -109,16 +108,18 @@ _PUBLIC_ bool reg_string_to_val(TALLOC_CTX *mem_ctx, const char *type_str, const
                }
        }
 
-       if (*type == -1) 
+       if (*type == -1)
                return false;
 
        /* Convert data appropriately */
 
-       switch (*type) 
+       switch (*type)
        {
                case REG_SZ:
                case REG_EXPAND_SZ:
-               data->length = convert_string_talloc(mem_ctx, CH_UNIX, CH_UTF16, data_str, strlen(data_str), (void **)&data->data);
+               data->length = convert_string_talloc(mem_ctx, CH_UNIX, CH_UTF16,
+                                                    data_str, strlen(data_str),
+                                                    (void **)&data->data);
                        break;
 
                case REG_DWORD: {
@@ -130,12 +131,12 @@ _PUBLIC_ bool reg_string_to_val(TALLOC_CTX *mem_ctx, const char *type_str, const
                case REG_NONE:
                        ZERO_STRUCTP(data);
                        break;
-       
-               case REG_BINARY: 
+
+               case REG_BINARY:
                        *data = strhex_to_data_blob(data_str);
                        talloc_steal(mem_ctx, data->data);
                        break;
-                       
+
                default:
                        /* FIXME */
                        return false;
@@ -144,16 +145,17 @@ _PUBLIC_ bool reg_string_to_val(TALLOC_CTX *mem_ctx, const char *type_str, const
 }
 
 /** Open a key by name (including the predefined key name!) */
-WERROR reg_open_key_abs(TALLOC_CTX *mem_ctx, struct registry_context *handle, const char *name, struct registry_key **result)
+WERROR reg_open_key_abs(TALLOC_CTX *mem_ctx, struct registry_context *handle,
+                       const char *name, struct registry_key **result)
 {
        struct registry_key *predef;
        WERROR error;
        int predeflength;
        char *predefname;
 
-       if (strchr(name, '\\') != NULL) 
+       if (strchr(name, '\\') != NULL)
                predeflength = strchr(name, '\\')-name;
-       else 
+       else
                predeflength = strlen(name);
 
        predefname = talloc_strndup(mem_ctx, name, predeflength);
@@ -165,31 +167,32 @@ WERROR reg_open_key_abs(TALLOC_CTX *mem_ctx, struct registry_context *handle, co
        }
 
        if (strchr(name, '\\')) {
-               return reg_open_key(mem_ctx, predef, strchr(name, '\\')+1, result);
+               return reg_open_key(mem_ctx, predef, strchr(name, '\\')+1,
+                                   result);
        } else {
                *result = predef;
                return WERR_OK;
        }
 }
 
-static WERROR get_abs_parent(TALLOC_CTX *mem_ctx, struct registry_context *ctx, 
-                                                        const char *path, struct registry_key **parent, 
-                                                        const char **name)
+static WERROR get_abs_parent(TALLOC_CTX *mem_ctx, struct registry_context *ctx,
+                            const char *path, struct registry_key **parent,
+                            const char **name)
 {
        char *parent_name;
        WERROR error;
-       
+
        if (strchr(path, '\\') == NULL) {
                return WERR_FOOBAR;
        }
-       
+
        parent_name = talloc_strndup(mem_ctx, path, strrchr(path, '\\')-path);
 
        error = reg_open_key_abs(mem_ctx, ctx, parent_name, parent);
        if (!W_ERROR_IS_OK(error)) {
                return error;
        }
-       
+
        *name = talloc_strdup(mem_ctx, strrchr(path, '\\')+1);
 
        return WERR_OK;
@@ -201,11 +204,11 @@ WERROR reg_key_del_abs(struct registry_context *ctx, const char *path)
        const char *n;
        TALLOC_CTX *mem_ctx = talloc_init("reg_key_del_abs");
        WERROR error;
-       
+
        if (!strchr(path, '\\')) {
                return WERR_FOOBAR;
        }
-       
+
        error = get_abs_parent(mem_ctx, ctx, path, &parent, &n);
        if (W_ERROR_IS_OK(error)) {
                error = reg_key_del(parent, n);
@@ -216,22 +219,22 @@ WERROR reg_key_del_abs(struct registry_context *ctx, const char *path)
        return error;
 }
 
-WERROR reg_key_add_abs(TALLOC_CTX *mem_ctx, struct registry_context *ctx, 
-                                          const char *path, uint32_t access_mask, 
-                                          struct security_descriptor *sec_desc, 
-                                          struct registry_key **result)
+WERROR reg_key_add_abs(TALLOC_CTX *mem_ctx, struct registry_context *ctx,
+                      const char *path, uint32_t access_mask,
+                      struct security_descriptor *sec_desc,
+                      struct registry_key **result)
 {
        struct registry_key *parent;
        const char *n;
        WERROR error;
-       
+
        if (!strchr(path, '\\')) {
                return WERR_ALREADY_EXISTS;
        }
-       
+
        error = get_abs_parent(mem_ctx, ctx, path, &parent, &n);
        if (!W_ERROR_IS_OK(error)) {
-               DEBUG(2, ("Opening parent of %s failed with %s\n", path, 
+               DEBUG(2, ("Opening parent of %s failed with %s\n", path,
                                  win_errstr(error)));
                return error;
        }
index 2cb0b9955ebeee54a124fae14c2ba7bd477a18d6..77d2ce66e90d40ef4c4d931ae2997b8d4e9679cb 100644 (file)
@@ -1,18 +1,18 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
    Registry interface
    Copyright (C) Jelmer Vernooij                                         2007.
-   
+
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program 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 General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
@@ -29,7 +29,7 @@ static WERROR wine_open_reg (struct registry_hive *h, struct registry_key **key)
 static REG_OPS reg_backend_wine = {
        .name = "wine",
        .open_hive = wine_open_reg,
-       
+
 };
 
 NTSTATUS registry_wine_init(void)
index 77558b2ca96718f95c3e58a950b0697f1c685e70..c61f78a9513a7878600e16a084f4f4cc7dac29fd 100644 (file)
@@ -50,10 +50,16 @@ pwrite
 getpass
 readline (the library)
 inet_ntoa
+inet_ntop
+inet_pton
 strtoll
 strtoull
 socketpair
 strptime
+getaddrinfo
+freeaddrinfo
+getnameinfo
+gai_strerror
 
 Types:
 bool
index 48fb7ce25948dd63f38e744baac6637615e4bd25..beeb77e15204a6d7bb7f0b22bfe3003d2218a06b 100644 (file)
@@ -19,4 +19,6 @@ if test "$ac_cv_prog_gcc" = yes; then
    CFLAGS="$CFLAGS -Wno-format-y2k"
 fi
 
+AC_SUBST(LDFLAGS)
+
 AC_OUTPUT(Makefile)
index a1b57d10ec473d17298a32c00191a5f3a9ef09b0..c5b7597d7a3c41bbf47d1f550e8386cb45ef813d 100644 (file)
@@ -12,7 +12,7 @@ AC_VERIFY_C_PROTOTYPE([void *dlopen(const char* filename, unsigned int flags)],
        [
        return 0;
        ],[
-       AC_DEFINE(DLOPEN_TAKES_UNSIGNED_FLAGS, 1, [Whether dlopen takes unsinged int flags])
+       AC_DEFINE(DLOPEN_TAKES_UNSIGNED_FLAGS, 1, [Whether dlopen takes unsigned int flags])
        ],[],[
        #include <dlfcn.h>
        ])
diff --git a/source/lib/replace/getaddrinfo.c b/source/lib/replace/getaddrinfo.c
new file mode 100644 (file)
index 0000000..519c300
--- /dev/null
@@ -0,0 +1,502 @@
+/*
+PostgreSQL Database Management System
+(formerly known as Postgres, then as Postgres95)
+
+Portions Copyright (c) 1996-2005, The PostgreSQL Global Development Group
+
+Portions Copyright (c) 1994, The Regents of the University of California
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose, without fee, and without a written agreement
+is hereby granted, provided that the above copyright notice and this paragraph
+and the following two paragraphs appear in all copies.
+
+IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING
+LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION,
+EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS
+TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+
+*/
+
+/*-------------------------------------------------------------------------
+ *
+ * getaddrinfo.c
+ *       Support getaddrinfo() on platforms that don't have it.
+ *
+ * We also supply getnameinfo() here, assuming that the platform will have
+ * it if and only if it has getaddrinfo().     If this proves false on some
+ * platform, we'll need to split this file and provide a separate configure
+ * test for getnameinfo().
+ *
+ * Copyright (c) 2003-2007, PostgreSQL Global Development Group
+ *
+ * Copyright (C) 2007 Jeremy Allison.
+ * Modified to return multiple IPv4 addresses for Samba.
+ *
+ *-------------------------------------------------------------------------
+ */
+
+#include "replace.h"
+#include "system/network.h"
+
+#ifndef SMB_MALLOC
+#define SMB_MALLOC(s) malloc(s)
+#endif
+
+#ifndef SMB_STRDUP
+#define SMB_STRDUP(s) strdup(s)
+#endif
+
+static int check_hostent_err(struct hostent *hp)
+{
+       if (!hp) {
+               switch (h_errno) {
+                       case HOST_NOT_FOUND:
+                       case NO_DATA:
+                               return EAI_NONAME;
+                       case TRY_AGAIN:
+                               return EAI_AGAIN;
+                       case NO_RECOVERY:
+                       default:
+                               return EAI_FAIL;
+               }
+       }
+       if (!hp->h_name || hp->h_addrtype != AF_INET) {
+               return EAI_FAIL;
+       }
+       return 0;
+}
+
+static char *canon_name_from_hostent(struct hostent *hp,
+                               int *perr)
+{
+       char *ret = NULL;
+
+       *perr = check_hostent_err(hp);
+       if (*perr) {
+               return NULL;
+       }
+       ret = SMB_STRDUP(hp->h_name);
+       if (!ret) {
+               *perr = EAI_MEMORY;
+       }
+       return ret;
+}
+
+static char *get_my_canon_name(int *perr)
+{
+       char name[HOST_NAME_MAX+1];
+
+       if (gethostname(name, HOST_NAME_MAX) == -1) {
+               *perr = EAI_FAIL;
+               return NULL;
+       }
+       /* Ensure null termination. */
+       name[HOST_NAME_MAX] = '\0';
+       return canon_name_from_hostent(gethostbyname(name), perr);
+}
+
+static char *get_canon_name_from_addr(struct in_addr ip,
+                               int *perr)
+{
+       return canon_name_from_hostent(
+                       gethostbyaddr(&ip, sizeof(ip), AF_INET),
+                       perr);
+}
+
+static struct addrinfo *alloc_entry(const struct addrinfo *hints,
+                               struct in_addr ip,
+                               unsigned short port)
+{
+       struct sockaddr_in *psin = NULL;
+       struct addrinfo *ai = SMB_MALLOC(sizeof(*ai));
+
+       if (!ai) {
+               return NULL;
+       }
+       memset(ai, '\0', sizeof(*ai));
+
+       psin = SMB_MALLOC(sizeof(*psin));
+       if (!psin) {
+               free(ai);
+               return NULL;
+       }
+
+       memset(psin, '\0', sizeof(*psin));
+
+       psin->sin_family = AF_INET;
+       psin->sin_port = htons(port);
+       psin->sin_addr = ip;
+
+       ai->ai_flags = 0;
+       ai->ai_family = AF_INET;
+       ai->ai_socktype = hints->ai_socktype;
+       ai->ai_protocol = hints->ai_protocol;
+       ai->ai_addrlen = sizeof(*psin);
+       ai->ai_addr = (struct sockaddr *) psin;
+       ai->ai_canonname = NULL;
+       ai->ai_next = NULL;
+
+       return ai;
+}
+
+/*
+ * get address info for a single ipv4 address.
+ *
+ *     Bugs:   - servname can only be a number, not text.
+ */
+
+static int getaddr_info_single_addr(const char *service,
+                               uint32_t addr,
+                               const struct addrinfo *hints,
+                               struct addrinfo **res)
+{
+
+       struct addrinfo *ai = NULL;
+       struct in_addr ip;
+       unsigned short port = 0;
+
+       if (service) {
+               port = (unsigned short)atoi(service);
+       }
+       ip.s_addr = htonl(addr);
+
+       ai = alloc_entry(hints, ip, port);
+       if (!ai) {
+               return EAI_MEMORY;
+       }
+
+       /* If we're asked for the canonical name,
+        * make sure it returns correctly. */
+       if (!(hints->ai_flags & AI_NUMERICSERV) &&
+                       hints->ai_flags & AI_CANONNAME) {
+               int err;
+               if (addr == INADDR_LOOPBACK || addr == INADDR_ANY) {
+                       ai->ai_canonname = get_my_canon_name(&err);
+               } else {
+                       ai->ai_canonname =
+                       get_canon_name_from_addr(ip,&err);
+               }
+               if (ai->ai_canonname == NULL) {
+                       freeaddrinfo(ai);
+                       return err;
+               }
+       }
+
+       *res = ai;
+       return 0;
+}
+
+/*
+ * get address info for multiple ipv4 addresses.
+ *
+ *     Bugs:   - servname can only be a number, not text.
+ */
+
+static int getaddr_info_name(const char *node,
+                               const char *service,
+                               const struct addrinfo *hints,
+                               struct addrinfo **res)
+{
+       struct addrinfo *listp = NULL, *prevp = NULL;
+       char **pptr = NULL;
+       int err;
+       struct hostent *hp = NULL;
+       unsigned short port = 0;
+
+       if (service) {
+               port = (unsigned short)atoi(service);
+       }
+
+       hp = gethostbyname(node);
+       err = check_hostent_err(hp);
+       if (err) {
+               return err;
+       }
+
+       for(pptr = hp->h_addr_list; *pptr; pptr++) {
+               struct in_addr ip = *(struct in_addr *)pptr;
+               struct addrinfo *ai = alloc_entry(hints, ip, port);
+
+               if (!ai) {
+                       freeaddrinfo(listp);
+                       return EAI_MEMORY;
+               }
+
+               if (!listp) {
+                       listp = ai;
+                       prevp = ai;
+                       ai->ai_canonname = SMB_STRDUP(hp->h_name);
+                       if (!ai->ai_canonname) {
+                               freeaddrinfo(listp);
+                               return EAI_MEMORY;
+                       }
+               } else {
+                       prevp->ai_next = ai;
+                       prevp = ai;
+               }
+       }
+       *res = listp;
+       return 0;
+}
+
+/*
+ * get address info for ipv4 sockets.
+ *
+ *     Bugs:   - servname can only be a number, not text.
+ */
+
+int getaddrinfo(const char *node,
+               const char *service,
+               const struct addrinfo * hintp,
+               struct addrinfo ** res)
+{
+       struct addrinfo hints;
+
+       /* Setup the hints struct. */
+       if (hintp == NULL) {
+               memset(&hints, 0, sizeof(hints));
+               hints.ai_family = AF_INET;
+               hints.ai_socktype = SOCK_STREAM;
+       } else {
+               memcpy(&hints, hintp, sizeof(hints));
+       }
+
+       if (hints.ai_family != AF_INET && hints.ai_family != AF_UNSPEC) {
+               return EAI_FAMILY;
+       }
+
+       if (hints.ai_socktype == 0) {
+               hints.ai_socktype = SOCK_STREAM;
+       }
+
+       if (!node && !service) {
+               return EAI_NONAME;
+       }
+
+       if (node) {
+               if (node[0] == '\0') {
+                       return getaddr_info_single_addr(service,
+                                       INADDR_ANY,
+                                       &hints,
+                                       res);
+               } else if (hints.ai_flags & AI_NUMERICHOST) {
+                       struct in_addr ip;
+                       if (!inet_aton(node, &ip)) {
+                               return EAI_FAIL;
+                       }
+                       return getaddr_info_single_addr(service,
+                                       ntohl(ip.s_addr),
+                                       &hints,
+                                       res);
+               } else {
+                       return getaddr_info_name(node,
+                                               service,
+                                               &hints,
+                                               res);
+               }
+       } else if (hints.ai_flags & AI_PASSIVE) {
+               return getaddr_info_single_addr(service,
+                                       INADDR_ANY,
+                                       &hints,
+                                       res);
+       }
+       return getaddr_info_single_addr(service,
+                                       INADDR_LOOPBACK,
+                                       &hints,
+                                       res);
+}
+
+
+void freeaddrinfo(struct addrinfo *res)
+{
+       struct addrinfo *next = NULL;
+
+       for (;res; res = next) {
+               next = res->ai_next;
+               if (res->ai_canonname) {
+                       free(res->ai_canonname);
+               }
+               if (res->ai_addr) {
+                       free(res->ai_addr);
+               }
+               free(res);
+       }
+}
+
+
+const char *gai_strerror(int errcode)
+{
+#ifdef HAVE_HSTRERROR
+       int                     hcode;
+
+       switch (errcode)
+       {
+               case EAI_NONAME:
+                       hcode = HOST_NOT_FOUND;
+                       break;
+               case EAI_AGAIN:
+                       hcode = TRY_AGAIN;
+                       break;
+               case EAI_FAIL:
+               default:
+                       hcode = NO_RECOVERY;
+                       break;
+       }
+
+       return hstrerror(hcode);
+#else                                                  /* !HAVE_HSTRERROR */
+
+       switch (errcode)
+       {
+               case EAI_NONAME:
+                       return "Unknown host";
+               case EAI_AGAIN:
+                       return "Host name lookup failure";
+#ifdef EAI_BADFLAGS
+               case EAI_BADFLAGS:
+                       return "Invalid argument";
+#endif
+#ifdef EAI_FAMILY
+               case EAI_FAMILY:
+                       return "Address family not supported";
+#endif
+#ifdef EAI_MEMORY
+               case EAI_MEMORY:
+                       return "Not enough memory";
+#endif
+#ifdef EAI_NODATA
+               case EAI_NODATA:
+                       return "No host data of that type was found";
+#endif
+#ifdef EAI_SERVICE
+               case EAI_SERVICE:
+                       return "Class type not found";
+#endif
+#ifdef EAI_SOCKTYPE
+               case EAI_SOCKTYPE:
+                       return "Socket type not supported";
+#endif
+               default:
+                       return "Unknown server error";
+       }
+#endif   /* HAVE_HSTRERROR */
+}
+
+static int gethostnameinfo(const struct sockaddr *sa,
+                       char *node,
+                       size_t nodelen,
+                       int flags)
+{
+       int ret = -1;
+       char *p = NULL;
+
+       if (!(flags & NI_NUMERICHOST)) {
+               struct hostent *hp = gethostbyaddr(
+                               &((struct sockaddr_in *)sa)->sin_addr,
+                               sizeof(struct in_addr),
+                               sa->sa_family);
+               ret = check_hostent_err(hp);
+               if (ret == 0) {
+                       /* Name looked up successfully. */
+                       ret = snprintf(node, nodelen, "%s", hp->h_name);
+                       if (ret == -1 || ret > nodelen) {
+                               return EAI_MEMORY;
+                       }
+                       if (flags & NI_NOFQDN) {
+                               p = strchr(node,'.');
+                               if (p) {
+                                       *p = '\0';
+                               }
+                       }
+                       return 0;
+               }
+
+               if (flags & NI_NAMEREQD) {
+                       /* If we require a name and didn't get one,
+                        * automatically fail. */
+                       return ret;
+               }
+               /* Otherwise just fall into the numeric host code... */
+       }
+       p = inet_ntoa(((struct sockaddr_in *)sa)->sin_addr);
+       ret = snprintf(node, nodelen, "%s", p);
+       if (ret == -1 || ret > nodelen) {
+               return EAI_MEMORY;
+       }
+       return 0;
+}
+
+static int getservicenameinfo(const struct sockaddr *sa,
+                       char *service,
+                       size_t servicelen,
+                       int flags)
+{
+       int ret = -1;
+       int port = ntohs(((struct sockaddr_in *)sa)->sin_port);
+
+       if (!(flags & NI_NUMERICSERV)) {
+               struct servent *se = getservbyport(
+                               port,
+                               (flags & NI_DGRAM) ? "udp" : "tcp");
+               if (se && se->s_name) {
+                       /* Service name looked up successfully. */
+                       ret = snprintf(service, servicelen, "%s", se->s_name);
+                       if (ret == -1 || ret > servicelen) {
+                               return EAI_MEMORY;
+                       }
+                       return 0;
+               }
+               /* Otherwise just fall into the numeric service code... */
+       }
+       ret = snprintf(service, servicelen, "%d", port);
+       if (ret == -1 || ret > servicelen) {
+               return EAI_MEMORY;
+       }
+       return 0;
+}
+
+/*
+ * Convert an ipv4 address to a hostname.
+ *
+ * Bugs:       - No IPv6 support.
+ */
+int getnameinfo(const struct sockaddr *sa, socklen_t salen,
+                       char *node, size_t nodelen,
+                       char *service, size_t servicelen, int flags)
+{
+
+       /* Invalid arguments. */
+       if (sa == NULL || (node == NULL && service == NULL)) {
+               return EAI_FAIL;
+       }
+
+       if (sa->sa_family != AF_INET) {
+               return EAI_FAIL;
+       }
+
+       if (salen < sizeof(struct sockaddr_in)) {
+               return EAI_FAIL;
+       }
+
+       /* We don't support those. */
+       if ((node && !(flags & NI_NUMERICHOST))
+               || (service && !(flags & NI_NUMERICSERV)))
+               return EAI_FAIL;
+
+       if (node) {
+               return gethostnameinfo(sa, node, nodelen, flags);
+       }
+
+       if (service) {
+               return getservicenameinfo(sa, service, servicelen, flags);
+       }
+       return 0;
+}
diff --git a/source/lib/replace/getaddrinfo.h b/source/lib/replace/getaddrinfo.h
new file mode 100644 (file)
index 0000000..ed678bd
--- /dev/null
@@ -0,0 +1,158 @@
+/*
+PostgreSQL Database Management System
+(formerly known as Postgres, then as Postgres95)
+
+Portions Copyright (c) 1996-2005, The PostgreSQL Global Development Group
+
+Portions Copyright (c) 1994, The Regents of the University of California
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose, without fee, and without a written agreement
+is hereby granted, provided that the above copyright notice and this paragraph
+and the following two paragraphs appear in all copies.
+
+IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
+DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING
+LOST PROFITS, ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION,
+EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
+ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATIONS
+TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
+
+*/
+
+/*-------------------------------------------------------------------------
+ *
+ * getaddrinfo.h
+ *       Support getaddrinfo() on platforms that don't have it.
+ *
+ * Note: we use our own routines on platforms that don't HAVE_STRUCT_ADDRINFO,
+ * whether or not the library routine getaddrinfo() can be found.  This
+ * policy is needed because on some platforms a manually installed libbind.a
+ * may provide getaddrinfo(), yet the system headers may not provide the
+ * struct definitions needed to call it.  To avoid conflict with the libbind
+ * definition in such cases, we rename our routines to pg_xxx() via macros.
+ *
+ * This code will also work on platforms where struct addrinfo is defined
+ * in the system headers but no getaddrinfo() can be located.
+ *
+ * Copyright (c) 2003-2007, PostgreSQL Global Development Group
+ *
+ *-------------------------------------------------------------------------
+ */
+#ifndef GETADDRINFO_H
+#define GETADDRINFO_H
+
+
+/* Various macros that ought to be in <netdb.h>, but might not be */
+
+#ifndef EAI_FAIL
+#define EAI_BADFLAGS   (-1)
+#define EAI_NONAME             (-2)
+#define EAI_AGAIN              (-3)
+#define EAI_FAIL               (-4)
+#define EAI_FAMILY             (-6)
+#define EAI_SOCKTYPE   (-7)
+#define EAI_SERVICE            (-8)
+#define EAI_MEMORY             (-10)
+#define EAI_SYSTEM             (-11)
+#endif   /* !EAI_FAIL */
+
+#ifndef AI_PASSIVE
+#define AI_PASSIVE             0x0001
+#endif
+
+#ifndef AI_NUMERICHOST
+/*
+ * some platforms don't support AI_NUMERICHOST; define as zero if using
+ * the system version of getaddrinfo...
+ */
+#if defined(HAVE_STRUCT_ADDRINFO) && defined(HAVE_GETADDRINFO)
+#define AI_NUMERICHOST 0
+#else
+#define AI_NUMERICHOST 0x0004
+#endif
+#endif
+
+#ifndef NI_NUMERICHOST
+#define NI_NUMERICHOST 1
+#endif
+
+#ifndef NI_NUMERICSERV
+#define NI_NUMERICSERV 2
+#endif
+
+#ifndef NI_NOFQDN
+#define NI_NOFQDN      4
+#endif
+
+#ifndef NI_NAMEREQD
+#define NI_NAMEREQD    8
+#endif
+
+#ifndef NI_DGRAM
+#define NI_DGRAM       16
+#endif
+
+
+#ifndef NI_MAXHOST
+#define NI_MAXHOST     1025
+#endif
+
+#ifndef NI_MAXSERV
+#define NI_MAXSERV     32
+#endif
+
+#ifndef HAVE_STRUCT_ADDRINFO
+
+struct addrinfo
+{
+       int                     ai_flags;
+       int                     ai_family;
+       int                     ai_socktype;
+       int                     ai_protocol;
+       size_t          ai_addrlen;
+       struct sockaddr *ai_addr;
+       char       *ai_canonname;
+       struct addrinfo *ai_next;
+};
+#endif   /* HAVE_STRUCT_ADDRINFO */
+
+
+#ifndef HAVE_GETADDRINFO
+
+/* Rename private copies per comments above */
+#ifdef getaddrinfo
+#undef getaddrinfo
+#endif
+#define getaddrinfo pg_getaddrinfo
+
+#ifdef freeaddrinfo
+#undef freeaddrinfo
+#endif
+#define freeaddrinfo pg_freeaddrinfo
+
+#ifdef gai_strerror
+#undef gai_strerror
+#endif
+#define gai_strerror pg_gai_strerror
+
+#ifdef getnameinfo
+#undef getnameinfo
+#endif
+#define getnameinfo pg_getnameinfo
+
+extern int getaddrinfo(const char *node, const char *service,
+                       const struct addrinfo * hints, struct addrinfo ** res);
+extern void freeaddrinfo(struct addrinfo * res);
+extern const char *gai_strerror(int errcode);
+extern int getnameinfo(const struct sockaddr * sa, socklen_t salen,
+                       char *node, size_t nodelen,
+                       char *service, size_t servicelen, int flags);
+#endif   /* HAVE_GETADDRINFO */
+
+#endif   /* GETADDRINFO_H */
diff --git a/source/lib/replace/inet_ntop.c b/source/lib/replace/inet_ntop.c
new file mode 100644 (file)
index 0000000..fb3d8e9
--- /dev/null
@@ -0,0 +1,191 @@
+/*
+ * Copyright (C) 1996-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+
+#include "replace.h"
+#include "system/network.h"
+
+#define NS_INT16SZ      2
+#define NS_IN6ADDRSZ   16
+
+/*
+ * WARNING: Don't even consider trying to compile this on a system where
+ * sizeof(int) < 4.  sizeof(int) > 4 is fine; all the world's not a VAX.
+ */
+
+static const char *inet_ntop4(const unsigned char *src, char *dst,
+                             socklen_t size);
+
+#ifdef AF_INET6
+static const char *inet_ntop6(const unsigned char *src, char *dst,
+                             socklen_t size);
+#endif
+
+/* char *
+ * isc_net_ntop(af, src, dst, size)
+ *     convert a network format address to presentation format.
+ * return:
+ *     pointer to presentation format address (`dst'), or NULL (see errno).
+ * author:
+ *     Paul Vixie, 1996.
+ */
+const char *
+rep_inet_ntop(int af, const void *src, char *dst, socklen_t size)
+{
+       switch (af) {
+       case AF_INET:
+               return (inet_ntop4(src, dst, size));
+#ifdef AF_INET6
+       case AF_INET6:
+               return (inet_ntop6(src, dst, size));
+#endif
+       default:
+               errno = EAFNOSUPPORT;
+               return (NULL);
+       }
+       /* NOTREACHED */
+}
+
+/* const char *
+ * inet_ntop4(src, dst, size)
+ *     format an IPv4 address
+ * return:
+ *     `dst' (as a const)
+ * notes:
+ *     (1) uses no statics
+ *     (2) takes a unsigned char* not an in_addr as input
+ * author:
+ *     Paul Vixie, 1996.
+ */
+static const char *
+inet_ntop4(const unsigned char *src, char *dst, socklen_t size)
+{
+       static const char *fmt = "%u.%u.%u.%u";
+       char tmp[sizeof "255.255.255.255"];
+       size_t len;
+
+       len = snprintf(tmp, sizeof tmp, fmt, src[0], src[1], src[2], src[3]);
+       if (len >= size) {
+               errno = ENOSPC;
+               return (NULL);
+       }
+       memcpy(dst, tmp, len + 1);
+
+       return (dst);
+}
+
+/* const char *
+ * isc_inet_ntop6(src, dst, size)
+ *     convert IPv6 binary address into presentation (printable) format
+ * author:
+ *     Paul Vixie, 1996.
+ */
+#ifdef AF_INET6
+static const char *
+inet_ntop6(const unsigned char *src, char *dst, socklen_t size)
+{
+       /*
+        * Note that int32_t and int16_t need only be "at least" large enough
+        * to contain a value of the specified size.  On some systems, like
+        * Crays, there is no such thing as an integer variable with 16 bits.
+        * Keep this in mind if you think this function should have been coded
+        * to use pointer overlays.  All the world's not a VAX.
+        */
+       char tmp[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"], *tp;
+       struct { int base, len; } best, cur;
+       unsigned int words[NS_IN6ADDRSZ / NS_INT16SZ];
+       int i, inc;
+
+       /*
+        * Preprocess:
+        *      Copy the input (bytewise) array into a wordwise array.
+        *      Find the longest run of 0x00's in src[] for :: shorthanding.
+        */
+       memset(words, '\0', sizeof words);
+       for (i = 0; i < NS_IN6ADDRSZ; i++)
+               words[i / 2] |= (src[i] << ((1 - (i % 2)) << 3));
+       best.base = -1;
+       best.len = 0;
+       cur.base = -1;
+       cur.len = 0;
+       for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) {
+               if (words[i] == 0) {
+                       if (cur.base == -1)
+                               cur.base = i, cur.len = 1;
+                       else
+                               cur.len++;
+               } else {
+                       if (cur.base != -1) {
+                               if (best.base == -1 || cur.len > best.len)
+                                       best = cur;
+                               cur.base = -1;
+                       }
+               }
+       }
+       if (cur.base != -1) {
+               if (best.base == -1 || cur.len > best.len)
+                       best = cur;
+       }
+       if (best.base != -1 && best.len < 2)
+               best.base = -1;
+
+       /*
+        * Format the result.
+        */
+       tp = tmp;
+       for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) {
+               /* Are we inside the best run of 0x00's? */
+               if (best.base != -1 && i >= best.base &&
+                   i < (best.base + best.len)) {
+                       if (i == best.base)
+                               *tp++ = ':';
+                       continue;
+               }
+               /* Are we following an initial run of 0x00s or any real hex? */
+               if (i != 0)
+                       *tp++ = ':';
+               /* Is this address an encapsulated IPv4? */
+               if (i == 6 && best.base == 0 &&
+                   (best.len == 6 || (best.len == 5 && words[5] == 0xffff))) {
+                       if (!inet_ntop4(src+12, tp, sizeof tmp - (tp - tmp)))
+                               return (NULL);
+                       tp += strlen(tp);
+                       break;
+               }
+               inc = snprintf(tp, 5, "%x", words[i]);
+               if (inc >= 5) {
+                       abort();
+               }
+               tp += inc;
+       }
+       /* Was it a trailing run of 0x00's? */
+       if (best.base != -1 && (best.base + best.len) ==
+           (NS_IN6ADDRSZ / NS_INT16SZ))
+               *tp++ = ':';
+       *tp++ = '\0';
+
+       /*
+        * Check for overflow, copy, and we're done.
+        */
+       if ((size_t)(tp - tmp) > size) {
+               errno = ENOSPC;
+               return (NULL);
+       }
+       memcpy(dst, tmp, tp - tmp);
+       return (dst);
+}
+#endif /* AF_INET6 */
diff --git a/source/lib/replace/inet_ntop.m4 b/source/lib/replace/inet_ntop.m4
new file mode 100644 (file)
index 0000000..6f39056
--- /dev/null
@@ -0,0 +1 @@
+AC_CHECK_FUNCS(inet_ntop,[],[LIBREPLACEOBJ="${LIBREPLACEOBJ} inet_ntop.o"])
diff --git a/source/lib/replace/inet_pton.c b/source/lib/replace/inet_pton.c
new file mode 100644 (file)
index 0000000..80e4865
--- /dev/null
@@ -0,0 +1,213 @@
+/*
+ * Copyright (C) 1996-2001  Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include "replace.h"
+#include "system/network.h"
+
+#define NS_INT16SZ      2
+#define NS_INADDRSZ     4
+#define NS_IN6ADDRSZ   16
+
+/*
+ * WARNING: Don't even consider trying to compile this on a system where
+ * sizeof(int) < 4.  sizeof(int) > 4 is fine; all the world's not a VAX.
+ */
+
+static int inet_pton4(const char *src, unsigned char *dst);
+#ifdef AF_INET6
+static int inet_pton6(const char *src, unsigned char *dst);
+#endif
+
+/* int
+ * inet_pton(af, src, dst)
+ *     convert from presentation format (which usually means ASCII printable)
+ *     to network format (which is usually some kind of binary format).
+ * return:
+ *     1 if the address was valid for the specified address family
+ *     0 if the address wasn't valid (`dst' is untouched in this case)
+ *     -1 if some other error occurred (`dst' is untouched in this case, too)
+ * author:
+ *     Paul Vixie, 1996.
+ */
+int
+rep_inet_pton(int af,
+         const char *src,
+         void *dst)
+{
+       switch (af) {
+       case AF_INET:
+               return (inet_pton4(src, dst));
+#ifdef AF_INET6
+       case AF_INET6:
+               return (inet_pton6(src, dst));
+#endif
+       default:
+               errno = EAFNOSUPPORT;
+               return (-1);
+       }
+       /* NOTREACHED */
+}
+
+/* int
+ * inet_pton4(src, dst)
+ *     like inet_aton() but without all the hexadecimal and shorthand.
+ * return:
+ *     1 if `src' is a valid dotted quad, else 0.
+ * notice:
+ *     does not touch `dst' unless it's returning 1.
+ * author:
+ *     Paul Vixie, 1996.
+ */
+static int
+inet_pton4(src, dst)
+       const char *src;
+       unsigned char *dst;
+{
+       static const char digits[] = "0123456789";
+       int saw_digit, octets, ch;
+       unsigned char tmp[NS_INADDRSZ], *tp;
+
+       saw_digit = 0;
+       octets = 0;
+       *(tp = tmp) = 0;
+       while ((ch = *src++) != '\0') {
+               const char *pch;
+
+               if ((pch = strchr(digits, ch)) != NULL) {
+                       unsigned int new = *tp * 10 + (pch - digits);
+
+                       if (new > 255)
+                               return (0);
+                       *tp = new;
+                       if (! saw_digit) {
+                               if (++octets > 4)
+                                       return (0);
+                               saw_digit = 1;
+                       }
+               } else if (ch == '.' && saw_digit) {
+                       if (octets == 4)
+                               return (0);
+                       *++tp = 0;
+                       saw_digit = 0;
+               } else
+                       return (0);
+       }
+       if (octets < 4)
+               return (0);
+       memcpy(dst, tmp, NS_INADDRSZ);
+       return (1);
+}
+
+/* int
+ * inet_pton6(src, dst)
+ *     convert presentation level address to network order binary form.
+ * return:
+ *     1 if `src' is a valid [RFC1884 2.2] address, else 0.
+ * notice:
+ *     (1) does not touch `dst' unless it's returning 1.
+ *     (2) :: in a full address is silently ignored.
+ * credit:
+ *     inspired by Mark Andrews.
+ * author:
+ *     Paul Vixie, 1996.
+ */
+#ifdef AF_INET6
+static int
+inet_pton6(src, dst)
+       const char *src;
+       unsigned char *dst;
+{
+       static const char xdigits_l[] = "0123456789abcdef",
+                         xdigits_u[] = "0123456789ABCDEF";
+       unsigned char tmp[NS_IN6ADDRSZ], *tp, *endp, *colonp;
+       const char *xdigits, *curtok;
+       int ch, saw_xdigit;
+       unsigned int val;
+
+       memset((tp = tmp), '\0', NS_IN6ADDRSZ);
+       endp = tp + NS_IN6ADDRSZ;
+       colonp = NULL;
+       /* Leading :: requires some special handling. */
+       if (*src == ':')
+               if (*++src != ':')
+                       return (0);
+       curtok = src;
+       saw_xdigit = 0;
+       val = 0;
+       while ((ch = *src++) != '\0') {
+               const char *pch;
+
+               if ((pch = strchr((xdigits = xdigits_l), ch)) == NULL)
+                       pch = strchr((xdigits = xdigits_u), ch);
+               if (pch != NULL) {
+                       val <<= 4;
+                       val |= (pch - xdigits);
+                       if (val > 0xffff)
+                               return (0);
+                       saw_xdigit = 1;
+                       continue;
+               }
+               if (ch == ':') {
+                       curtok = src;
+                       if (!saw_xdigit) {
+                               if (colonp)
+                                       return (0);
+                               colonp = tp;
+                               continue;
+                       }
+                       if (tp + NS_INT16SZ > endp)
+                               return (0);
+                       *tp++ = (unsigned char) (val >> 8) & 0xff;
+                       *tp++ = (unsigned char) val & 0xff;
+                       saw_xdigit = 0;
+                       val = 0;
+                       continue;
+               }
+               if (ch == '.' && ((tp + NS_INADDRSZ) <= endp) &&
+                   inet_pton4(curtok, tp) > 0) {
+                       tp += NS_INADDRSZ;
+                       saw_xdigit = 0;
+                       break;  /* '\0' was seen by inet_pton4(). */
+               }
+               return (0);
+       }
+       if (saw_xdigit) {
+               if (tp + NS_INT16SZ > endp)
+                       return (0);
+               *tp++ = (unsigned char) (val >> 8) & 0xff;
+               *tp++ = (unsigned char) val & 0xff;
+       }
+       if (colonp != NULL) {
+               /*
+                * Since some memmove()'s erroneously fail to handle
+                * overlapping regions, we'll do the shift by hand.
+                */
+               const int n = tp - colonp;
+               int i;
+
+               for (i = 1; i <= n; i++) {
+                       endp[- i] = colonp[n - i];
+                       colonp[n - i] = 0;
+               }
+               tp = endp;
+       }
+       if (tp != endp)
+               return (0);
+       memcpy(dst, tmp, NS_IN6ADDRSZ);
+       return (1);
+}
+#endif
diff --git a/source/lib/replace/inet_pton.m4 b/source/lib/replace/inet_pton.m4
new file mode 100644 (file)
index 0000000..51de927
--- /dev/null
@@ -0,0 +1 @@
+AC_CHECK_FUNCS(inet_pton,[],[LIBREPLACEOBJ="${LIBREPLACEOBJ} inet_pton.o"])
index f06d7f83dc3564cc30135818fce7dc6ee3103be6..4bdbf3a5046515bcaac2a2a0ed82b23c1b104e41 100644 (file)
@@ -137,6 +137,55 @@ if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
     AC_DEFINE(REPLACE_INET_NTOA,1,[Whether inet_ntoa should be replaced])
 fi
 
+dnl test for struct addrinfo
+AC_CACHE_CHECK([for struct addrinfo],samba_cv_HAVE_STRUCT_ADDRINFO,[
+AC_TRY_COMPILE([
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+#include <sys/socket.h>
+#include <netdb.h>],
+[
+struct addrinfo ai;
+],
+samba_cv_HAVE_STRUCT_ADDRINFO=yes,samba_cv_HAVE_STRUCT_ADDRINFO=no)])
+if test x"$samba_cv_HAVE_STRUCT_ADDRINFO" = x"yes"; then
+    AC_DEFINE(HAVE_STRUCT_ADDRINFO,1,[Whether the system has struct addrinfo])
+fi
+
+dnl test for getaddrinfo/getnameinfo
+AC_CACHE_CHECK([for getaddrinfo],samba_cv_HAVE_GETADDRINFO,[
+AC_TRY_COMPILE([
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+#include <sys/socket.h>
+#include <netdb.h>],
+[
+struct sockaddr sa;
+struct addrinfo *ai = NULL;
+int ret = getaddrinfo(NULL, NULL, NULL, &ai);
+if (ret != 0) {
+       const char *es = gai_strerror(ret);
+}
+freeaddrinfo(ai);
+ret = getnameinfo(&sa, sizeof(sa),
+               NULL, 0,
+               NULL, 0, 0);
+
+],
+samba_cv_HAVE_GETADDRINFO=yes,samba_cv_HAVE_GETADDRINFO=no)])
+if test x"$samba_cv_HAVE_GETADDRINFO" = x"yes"; then
+    AC_DEFINE(HAVE_GETADDRINFO,1,[Whether the system has getaddrinfo and getnameinfo])
+    AC_DEFINE(HAVE_FREEADDRINFO,1,[Whether the system has freeaddrinfo])
+    AC_DEFINE(HAVE_GAI_STRERROR,1,[Whether the system has gai_strerror])
+fi
+
+
 dnl Provided by replace.c:
 AC_TRY_COMPILE([
 #include <sys/types.h>
@@ -152,6 +201,7 @@ AC_CHECK_FUNCS(seteuid setresuid setegid setresgid chroot bzero strerror)
 AC_CHECK_FUNCS(vsyslog setlinebuf mktime ftruncate chsize rename)
 AC_CHECK_FUNCS(waitpid strlcpy strlcat initgroups memmove strdup)
 AC_CHECK_FUNCS(pread pwrite strndup strcasestr strtok_r mkdtemp socketpair)
+AC_CHECK_FUNCS(isatty)
 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
 AC_HAVE_DECL(errno, [#include <errno.h>])
@@ -303,18 +353,7 @@ AC_TRY_COMPILE([
 samba_cv_HAVE_OPEN_O_DIRECT=yes,samba_cv_HAVE_OPEN_O_DIRECT=no)])
 if test x"$samba_cv_HAVE_OPEN_O_DIRECT" = x"yes"; then
     AC_DEFINE(HAVE_OPEN_O_DIRECT,1,[Whether the open(2) accepts O_DIRECT])
-fi 
-
-
-AC_CACHE_CHECK([that the C compiler can precompile header files],samba_cv_precompiled_headers, [
-       dnl Check whether the compiler can generate precompiled headers
-       touch conftest.h
-       if ${CC-cc} conftest.h 2> /dev/null && test -f conftest.h.gch; then
-               precompiled_headers=yes
-       else
-               precompiled_headers=no
-       fi])
-AC_SUBST(precompiled_headers)
+fi
 
 
 dnl Check if the C compiler understands volatile (it should, being ANSI).
@@ -332,6 +371,8 @@ m4_include(getpass.m4)
 m4_include(strptime.m4)
 m4_include(win32.m4)
 m4_include(timegm.m4)
+m4_include(inet_ntop.m4)
+m4_include(inet_pton.m4)
 m4_include(repdir.m4)
 
 AC_CHECK_FUNCS([syslog memset memcpy],,[AC_MSG_ERROR([Required function not found])])
index 06173bd84b963e68fd9b980ff2bd7bd88c7987f1..26e39ac603dc6974212158a93361724581ebbf61 100644 (file)
@@ -1,15 +1,16 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
 
    macros to go along with the lib/replace/ portability layer code
 
    Copyright (C) Andrew Tridgell 2005
    Copyright (C) Jelmer Vernooij 2006
+   Copyright (C) Jeremy Allison 2007.
 
      ** NOTE! The following LGPL license applies to the replace
      ** library. This does NOT imply that all of Samba is released
      ** under the LGPL
-   
+
    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
 #include "win32_replace.h"
 #endif
 
-#ifdef __COMPAR_FN_T
-#define QSORT_CAST (__compar_fn_t)
-#endif
-
-#ifndef QSORT_CAST
-#define QSORT_CAST (int (*)(const void *, const void *))
-#endif
 
 #ifdef HAVE_STDINT_H
 #include <stdint.h>
 #include <stddef.h>
 #endif
 
-/**
-  this is a warning hack. The idea is to use this everywhere that we
-  get the "discarding const" warning from gcc. That doesn't actually
-  fix the problem of course, but it means that when we do get to
-  cleaning them up we can do it by searching the code for
-  discard_const.
-
-  It also means that other error types aren't as swamped by the noise
-  of hundreds of const warnings, so we are more likely to notice when
-  we get new errors.
-
-  Please only add more uses of this macro when you find it
-  _really_ hard to fix const warnings. Our aim is to eventually use
-  this function in only a very few places.
-
-  Also, please call this via the discard_const_p() macro interface, as that
-  makes the return type safe.
-*/
-#define discard_const(ptr) ((void *)((intptr_t)(ptr)))
-
-/** Type-safe version of discard_const */
-#define discard_const_p(type, ptr) ((type *)discard_const(ptr))
-
 #ifndef HAVE_STRERROR
 extern char *sys_errlist[];
 #define strerror(i) sys_errlist[i]
@@ -168,7 +139,7 @@ int setenv(const char *name, const char *value, int overwrite);
 
 #ifndef HAVE_UNSETENV
 #define unsetenv rep_unsetenv
-int rep_unsetenv(const char *name); 
+int rep_unsetenv(const char *name);
 #endif
 
 #ifndef HAVE_SETEUID
@@ -192,7 +163,7 @@ char *rep_strcasestr(const char *haystack, const char *needle);
 #endif
 
 #ifndef HAVE_STRTOK_R
-#define strtok_r rep_strtok_r 
+#define strtok_r rep_strtok_r
 char *rep_strtok_r(char *s, const char *delim, char **save_ptr);
 #endif
 
@@ -359,10 +330,25 @@ ssize_t rep_pread(int __fd, void *__buf, size_t __nbytes, off_t __offset);
 ssize_t rep_pwrite(int __fd, const void *__buf, size_t __nbytes, off_t __offset);
 #endif
 
+#ifndef HAVE_INET_PTON
+int rep_inet_pton(int af, const char *src, void *dst);
+#define inet_pton rep_inet_pton
+#endif
+
+#ifndef HAVE_INET_NTOP
+#include "system/network.h"
+const char *rep_inet_ntop(int af, const void *src, char *dst, socklen_t size);
+#define inet_ntop rep_inet_ntop
+#endif
+
 #ifdef HAVE_LIMITS_H
 #include <limits.h>
 #endif
 
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+
 /* The extra casts work around common compiler bugs.  */
 #define _TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
 /* The outer cast is needed to work around a bug in Cray C 5.0.3.0.
@@ -375,6 +361,14 @@ ssize_t rep_pwrite(int __fd, const void *__buf, size_t __nbytes, off_t __offset)
 #define HOST_NAME_MAX 64
 #endif
 
+/*
+ * Some older systems seem not to have MAXHOSTNAMELEN
+ * defined.
+ */
+#ifndef MAXHOSTNAMELEN
+#define MAXHOSTNAMELEN HOST_NAME_MAX
+#endif
+
 #ifndef UINT16_MAX
 #define UINT16_MAX 65535
 #endif
@@ -450,9 +444,6 @@ typedef int bool;
 #endif
 #endif
 
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
 
 #ifndef MIN
 #define MIN(a,b) ((a)<(b)?(a):(b))
@@ -462,11 +453,34 @@ typedef int bool;
 #define MAX(a,b) ((a)>(b)?(a):(b))
 #endif
 
+/**
+  this is a warning hack. The idea is to use this everywhere that we
+  get the "discarding const" warning from gcc. That doesn't actually
+  fix the problem of course, but it means that when we do get to
+  cleaning them up we can do it by searching the code for
+  discard_const.
+
+  It also means that other error types aren't as swamped by the noise
+  of hundreds of const warnings, so we are more likely to notice when
+  we get new errors.
+
+  Please only add more uses of this macro when you find it
+  _really_ hard to fix const warnings. Our aim is to eventually use
+  this function in only a very few places.
+
+  Also, please call this via the discard_const_p() macro interface, as that
+  makes the return type safe.
+*/
+#define discard_const(ptr) ((void *)((intptr_t)(ptr)))
+
+/** Type-safe version of discard_const */
+#define discard_const_p(type, ptr) ((type *)discard_const(ptr))
+
 #ifndef __STRING
 #define __STRING(x)    #x
 #endif
 
-#ifndef _STRINGSTRING
+#ifndef __STRINGSTRING
 #define __STRINGSTRING(x) __STRING(x)
 #endif
 
@@ -511,4 +525,12 @@ typedef int bool;
 #undef HAVE_MMAP
 #endif
 
+#ifdef __COMPAR_FN_T
+#define QSORT_CAST (__compar_fn_t)
+#endif
+
+#ifndef QSORT_CAST
+#define QSORT_CAST (int (*)(const void *, const void *))
+#endif
+
 #endif /* _LIBREPLACE_REPLACE_H */
index 13d95a8ba7b0609e238559c1df11e01a0b5dfdc2..02942f9a4435bf574b1b4a249f12a32823123b64 100644 (file)
 #include <netinet/tcp.h>
 #endif
 
+#if !defined(HAVE_GETADDRINFO)
+#include "getaddrinfo.h"
+#endif
+
 /*
  * The next three defines are needed to access the IPTOS_* options
  * on some systems.
@@ -98,14 +102,6 @@ char *rep_inet_ntoa(struct in_addr ip);
 #define MSG_WAITALL 0
 #endif
 
-/*
- * Some older systems seem not to have MAXHOSTNAMELEN
- * defined.
- */
-#ifndef MAXHOSTNAMELEN
-#define MAXHOSTNAMELEN 254
-#endif
-
 #ifndef INADDR_LOOPBACK
 #define INADDR_LOOPBACK 0x7f000001
 #endif
@@ -114,4 +110,8 @@ char *rep_inet_ntoa(struct in_addr ip);
 #define INADDR_NONE 0xffffffff
 #endif
 
+#ifndef INET_ADDRSTRLEN
+#define INET_ADDRSTRLEN 16
+#endif
+
 #endif
index b6441c4dcd1fadc62254388f53785406c5e05c5b..aefb077cf50f50fc1f97661ac42a42fe4073d7aa 100644 (file)
@@ -18,7 +18,6 @@ PRIVATE_DEPENDENCIES = LIBSAMBA-UTIL LIBTDB NDR_SECURITY \
 # Start SUBSYSTEM LIBSAMBA3
 [SUBSYSTEM::SMBPASSWD]
 PRIVATE_PROTO_HEADER = samba3_smbpasswd_proto.h
-PUBLIC_HEADERS = samba3.h
 OBJ_FILES = smbpasswd.o
 # End SUBSYSTEM LIBSAMBA3
 ################################################
index ae9fc4a3b7a67d43766410c50b52aec905e0553d..2a72750efb8114fb57ac137bc94c7b381b6dfc40 100644 (file)
@@ -23,6 +23,7 @@
 #include "system/filesys.h"
 #include "system/select.h"
 #include "system/readline.h"
+#include "lib/smbreadline/smbreadline.h"
 
 /*******************************************************************
  Similar to sys_select() but catch EINTR and continue.
index 2d228c74749585a33161024c019bed7c5e16eba3..42c42db365e38390b780f1505de57c81a982453a 100644 (file)
@@ -39,7 +39,7 @@
 #define ALLONES  ((uint32_t)0xFFFFFFFF)
 
 /* masked_match - match address against netnumber/netmask */
-static BOOL masked_match(TALLOC_CTX *mem_ctx, const char *tok, const char *slash, const char *s)
+static bool masked_match(TALLOC_CTX *mem_ctx, const char *tok, const char *slash, const char *s)
 {
        uint32_t net;
        uint32_t mask;
@@ -47,7 +47,7 @@ static BOOL masked_match(TALLOC_CTX *mem_ctx, const char *tok, const char *slash
        char *tok_cpy;
 
        if ((addr = interpret_addr(s)) == INADDR_NONE)
-               return False;
+               return false;
 
        tok_cpy = talloc_strdup(mem_ctx, tok);
        tok_cpy[PTR_DIFF(slash,tok)] = '\0';
@@ -64,14 +64,14 @@ static BOOL masked_match(TALLOC_CTX *mem_ctx, const char *tok, const char *slash
 
        if (net == INADDR_NONE || mask == INADDR_NONE) {
                DEBUG(0,("access: bad net/mask access control: %s\n", tok));
-               return False;
+               return false;
        }
        
        return (addr & mask) == (net & mask);
 }
 
 /* string_match - match string against token */
-static BOOL string_match(TALLOC_CTX *mem_ctx, const char *tok,const char *s, char *invalid_char)
+static bool string_match(TALLOC_CTX *mem_ctx, const char *tok,const char *s, char *invalid_char)
 {
        size_t     tok_len;
        size_t     str_len;
@@ -79,50 +79,50 @@ static BOOL string_match(TALLOC_CTX *mem_ctx, const char *tok,const char *s, cha
 
        *invalid_char = '\0';
 
-       /* Return True if a token has the magic value "ALL". Return
+       /* Return true if a token has the magic value "ALL". Return
         * FAIL if the token is "FAIL". If the token starts with a "."
-        * (domain name), return True if it matches the last fields of
+        * (domain name), return true if it matches the last fields of
         * the string. If the token has the magic value "LOCAL",
-        * return True if the string does not contain a "."
+        * return true if the string does not contain a "."
         * character. If the token ends on a "." (network number),
-        * return True if it matches the first fields of the
+        * return true if it matches the first fields of the
         * string. If the token begins with a "@" (netgroup name),
-        * return True if the string is a (host) member of the
-        * netgroup. Return True if the token fully matches the
+        * return true if the string is a (host) member of the
+        * netgroup. Return true if the token fully matches the
         * string. If the token is a netnumber/netmask pair, return
-        * True if the address is a member of the specified subnet.  
+        * true if the address is a member of the specified subnet.  
         */
 
        if (tok[0] == '.') {                    /* domain: match last fields */
                if ((str_len = strlen(s)) > (tok_len = strlen(tok))
                    && strcasecmp(tok, s + str_len - tok_len)==0) {
-                       return True;
+                       return true;
                }
        } else if (tok[0] == '@') { /* netgroup: look it up */
                DEBUG(0,("access: netgroup support is not available\n"));
-               return False;
+               return false;
        } else if (strcmp(tok, "ALL")==0) {     /* all: match any */
-               return True;
+               return true;
        } else if (strcmp(tok, "FAIL")==0) {    /* fail: match any */
                return FAIL;
        } else if (strcmp(tok, "LOCAL")==0) {   /* local: no dots */
                if (strchr(s, '.') == 0 && strcasecmp(s, "unknown") != 0) {
-                       return True;
+                       return true;
                }
        } else if (strcasecmp(tok, s)==0) {   /* match host name or address */
-               return True;
+               return true;
        } else if (tok[(tok_len = strlen(tok)) - 1] == '.') {   /* network */
                if (strncmp(tok, s, tok_len) == 0)
-                       return True;
+                       return true;
        } else if ((cut = strchr(tok, '/')) != 0) {     /* netnumber/netmask */
                if (isdigit((int)s[0]) && masked_match(mem_ctx, tok, cut, s))
-                       return True;
+                       return true;
        } else if (strchr(tok, '*') != 0) {
                *invalid_char = '*';
        } else if (strchr(tok, '?') != 0) {
                *invalid_char = '?';
        }
-       return False;
+       return false;
 }
 
 struct client_addr {
@@ -131,9 +131,9 @@ struct client_addr {
 };
 
 /* client_match - match host name and address against token */
-static BOOL client_match(TALLOC_CTX *mem_ctx, const char *tok, struct client_addr *client)
+static bool client_match(TALLOC_CTX *mem_ctx, const char *tok, struct client_addr *client)
 {
-       BOOL match;
+       bool match;
        char invalid_char = '\0';
 
        /*
@@ -158,12 +158,12 @@ token '%s' in an allow/deny hosts line.\n", invalid_char, tok ));
 }
 
 /* list_match - match an item against a list of tokens with exceptions */
-static BOOL list_match(TALLOC_CTX *mem_ctx, const char **list, struct client_addr *client)
+static bool list_match(TALLOC_CTX *mem_ctx, const char **list, struct client_addr *client)
 {
-       BOOL match = False;
+       bool match = false;
 
        if (!list)
-               return False;
+               return false;
 
        /*
         * Process tokens one at a time. We have exhausted all possible matches
@@ -175,18 +175,18 @@ static BOOL list_match(TALLOC_CTX *mem_ctx, const char **list, struct client_add
        for (; *list ; list++) {
                if (strcmp(*list, "EXCEPT")==0) /* EXCEPT: give up */
                        break;
-               if ((match = client_match(mem_ctx, *list, client)))     /* True or FAIL */
+               if ((match = client_match(mem_ctx, *list, client)))     /* true or FAIL */
                        break;
        }
 
-       /* Process exceptions to True or FAIL matches. */
-       if (match != False) {
+       /* Process exceptions to true or FAIL matches. */
+       if (match != false) {
                while (*list  && strcmp(*list, "EXCEPT")!=0)
                        list++;
 
                for (; *list; list++) {
                        if (client_match(mem_ctx, *list, client)) /* Exception Found */
-                               return False;
+                               return false;
                }
        }
 
@@ -194,7 +194,7 @@ static BOOL list_match(TALLOC_CTX *mem_ctx, const char **list, struct client_add
 }
 
 /* return true if access should be allowed */
-static BOOL allow_access_internal(TALLOC_CTX *mem_ctx,
+static bool allow_access_internal(TALLOC_CTX *mem_ctx,
                                  const char **deny_list,const char **allow_list,
                                  const char *cname, const char *caddr)
 {
@@ -213,15 +213,15 @@ static BOOL allow_access_internal(TALLOC_CTX *mem_ctx,
                        list_match(mem_ctx, deny_list, &client) &&
                                (!allow_list ||
                                !list_match(mem_ctx, allow_list, &client))) {
-                       return False;
+                       return false;
                }
-               return True;
+               return true;
        }
 
        /* if theres no deny list and no allow list then allow access */
        if ((!deny_list || *deny_list == 0) && 
            (!allow_list || *allow_list == 0)) {
-               return True;  
+               return true;  
        }
 
        /* if there is an allow list but no deny list then allow only hosts
@@ -237,27 +237,27 @@ static BOOL allow_access_internal(TALLOC_CTX *mem_ctx,
        /* if there are both types of list then allow all hosts on the
            allow list */
        if (list_match(mem_ctx, allow_list, &client))
-               return True;
+               return true;
 
        /* if there are both types of list and it's not on the allow then
           allow it if its not on the deny */
        if (list_match(mem_ctx, deny_list, &client))
-               return False;
+               return false;
        
-       return True;
+       return true;
 }
 
 /* return true if access should be allowed */
-BOOL allow_access(TALLOC_CTX *mem_ctx,
+bool allow_access(TALLOC_CTX *mem_ctx,
                  const char **deny_list, const char **allow_list,
                  const char *cname, const char *caddr)
 {
-       BOOL ret;
+       bool ret;
        char *nc_cname = talloc_strdup(mem_ctx, cname);
        char *nc_caddr = talloc_strdup(mem_ctx, caddr);
 
        if (!nc_cname || !nc_caddr) {
-               return False;
+               return false;
        }
        
        ret = allow_access_internal(mem_ctx, deny_list, allow_list, nc_cname, nc_caddr);
@@ -271,12 +271,12 @@ BOOL allow_access(TALLOC_CTX *mem_ctx,
 /* return true if the char* contains ip addrs only.  Used to avoid 
 gethostbyaddr() calls */
 
-static BOOL only_ipaddrs_in_list(const char** list)
+static bool only_ipaddrs_in_list(const char** list)
 {
-       BOOL only_ip = True;
+       bool only_ip = true;
        
        if (!list)
-               return True;
+               return true;
                        
        for (; *list ; list++) {
                /* factor out the special strings */
@@ -293,7 +293,7 @@ static BOOL only_ipaddrs_in_list(const char** list)
                         * have a '/' in them
                         */
                        if ((strchr(*list, '/')) == NULL) {
-                               only_ip = False;
+                               only_ip = false;
                                DEBUG(3,("only_ipaddrs_in_list: list has non-ip address (%s)\n", *list));
                                break;
                        }
@@ -304,30 +304,30 @@ static BOOL only_ipaddrs_in_list(const char** list)
 }
 
 /* return true if access should be allowed to a service for a socket */
-BOOL socket_check_access(struct socket_context *sock, 
+bool socket_check_access(struct socket_context *sock, 
                         const char *service_name,
                         const char **allow_list, const char **deny_list)
 {
-       BOOL ret;
+       bool ret;
        const char *name="";
        struct socket_address *addr;
        TALLOC_CTX *mem_ctx;
 
        if ((!deny_list  || *deny_list==0) && 
            (!allow_list || *allow_list==0)) {
-               return True;
+               return true;
        }
 
        mem_ctx = talloc_init("socket_check_access");
        if (!mem_ctx) {
-               return False;
+               return false;
        }
 
        addr = socket_get_peer_addr(sock, mem_ctx);
        if (!addr) {
                DEBUG(0,("socket_check_access: Denied connection from unknown host: could not get peer address from kernel\n"));
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        /* bypass gethostbyaddr() calls if the lists only contain IP addrs */
@@ -342,7 +342,7 @@ BOOL socket_check_access(struct socket_context *sock,
        if (!addr) {
                DEBUG(0,("socket_check_access: Denied connection from unknown host\n"));
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        ret = allow_access(mem_ctx, deny_list, allow_list, name, addr->addr);
index e9c194ddc4ed50d12fde68b2cd493e6119a9f432..3296730c8256e0f6018abd2638e61d9134897eba 100644 (file)
@@ -41,7 +41,7 @@ SMB_EXT_LIB(EXT_SOCKET,[${SOCKET_LIBS}],[${SOCKET_CFLAGS}],[${SOCKET_CPPFLAGS}],
 AC_CHECK_FUNCS(gethostbyname)
 if test x"$ac_cv_func_gethostbyname" = x"no"; then
     AC_CHECK_LIB_EXT(nsl_s, NSL_LIBS, gethostbyname)
-    AC_CHECK_LIB_EXT(nsl, NSl_LIBS, gethostbyname)
+    AC_CHECK_LIB_EXT(nsl, NSL_LIBS, gethostbyname)
     AC_CHECK_LIB_EXT(socket, NSL_LIBS, gethostbyname)
     SMB_ENABLE(EXT_NSL,YES)
     dnl We can't just call AC_CHECK_FUNCS(gethostbyname) here, because the value
@@ -102,8 +102,10 @@ dnl the configure uses --with-static-modules=socket_ipv6
 #
 # This tests need LIBS="$NSL_LIBS $SOCKET_LIBS"
 #
+old_CFLAGS=$CFLAGS
 old_LIBS=$LIBS
 LIBS="$NSL_LIBS $SOCKET_LIBS"
+CFLAGS="$CFLAGS -Ilib/replace"
 iface=no;
 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
 AC_TRY_RUN([
@@ -140,4 +142,5 @@ if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
 fi
 fi
 
+CFLAGS=$old_CFLAGS
 LIBS=$old_LIBS
index 22037cd1367a2a1b9f93ceef461b27643785e6ce..d1e0bcfef5430fa5e78fd13196882d02ba2e3a6c 100644 (file)
@@ -10,25 +10,14 @@ PRIVATE_DEPENDENCIES = LIBSAMBA-UTIL EXT_SOCKET EXT_NSL
 ##############################
 
 ################################################
-# Start MODULE socket_ipv4
-[MODULE::socket_ipv4]
+# Start MODULE socket_ip
+[MODULE::socket_ip]
 SUBSYSTEM = samba-socket
 OUTPUT_TYPE = INTEGRATED
 OBJ_FILES = \
-               socket_ipv4.o
+               socket_ip.o
 PRIVATE_DEPENDENCIES = EXT_SOCKET EXT_NSL LIBSAMBA-ERRORS 
-# End MODULE socket_ipv4
-################################################
-
-################################################
-# Start MODULE socket_ipv6
-[MODULE::socket_ipv6]
-SUBSYSTEM = samba-socket
-OUTPUT_TYPE = INTEGRATED
-OBJ_FILES = \
-               socket_ipv6.o
-PRIVATE_DEPENDENCIES = EXT_SOCKET EXT_NSL
-# End MODULE socket_ipv6
+# End MODULE socket_ip
 ################################################
 
 ################################################
index dd2440b0a81b1b3cdc73149b65325ef418477693..4a30fa3b92c7b433dea4af603df95f0a7df65bb2 100644 (file)
@@ -26,6 +26,7 @@
 #include "lib/events/events.h"
 #include "libcli/composite/composite.h"
 #include "libcli/resolve/resolve.h"
+#include "param/param.h"
 
 
 struct connect_state {
@@ -119,14 +120,14 @@ struct composite_context *socket_connect_send(struct socket_context *sock,
 
        state->flags = flags;
 
-       set_blocking(socket_get_fd(sock), False);
+       set_blocking(socket_get_fd(sock), false);
 
        if (server_address->addr && strcmp(sock->backend_name, "ipv4") == 0) {
                struct nbt_name name;
                struct composite_context *creq;
                make_nbt_name_client(&name, server_address->addr);
                creq = resolve_name_send(&name, result->event_ctx,
-                                        lp_name_resolve_order());
+                                        lp_name_resolve_order(global_loadparm));
                if (composite_nomem(creq, result)) return result;
                composite_continue(result, creq, continue_resolve_name, result);
                return result;
index 76e5034a58c787578e648b29937a4f12f0b212b0..6d301414590e0391b7c709c46d3b43af6b2c7d62 100644 (file)
@@ -26,6 +26,7 @@
 #include "lib/events/events.h"
 #include "libcli/composite/composite.h"
 #include "libcli/resolve/resolve.h"
+#include "param/param.h"
 
 #define MULTI_PORT_DELAY 2000 /* microseconds */
 
@@ -62,7 +63,8 @@ static void continue_one(struct composite_context *creq);
 /*
   setup an async socket_connect, with multiple ports
 */
-_PUBLIC_ struct composite_context *socket_connect_multi_send(TALLOC_CTX *mem_ctx,
+_PUBLIC_ struct composite_context *socket_connect_multi_send(
+                                                   TALLOC_CTX *mem_ctx,
                                                    const char *server_address,
                                                    int num_server_ports,
                                                    uint16_t *server_ports,
@@ -102,7 +104,7 @@ _PUBLIC_ struct composite_context *socket_connect_multi_send(TALLOC_CTX *mem_ctx
                struct composite_context *creq;
                make_nbt_name_client(&name, server_address);
                creq = resolve_name_send(&name, result->event_ctx,
-                                        lp_name_resolve_order());
+                                        lp_name_resolve_order(global_loadparm));
                if (composite_nomem(creq, result)) goto failed;
                composite_continue(result, creq, continue_resolve_name, result);
                return result;
index 58d00ba614874820064db9f744cfba1a2a1548a6..9ca44505814ec08024bc62a63cf25094acc17dad 100644 (file)
@@ -23,6 +23,7 @@
 #include "system/network.h"
 #include "lib/socket/netif.h"
 #include "lib/util/dlinklist.h"
+#include "param/param.h"
 
 /** used for network interfaces */
 struct interface {
@@ -53,7 +54,7 @@ static struct ipv4_addr tov4(struct in_addr in)
 /****************************************************************************
 Try and find an interface that matches an ip. If we cannot, return NULL
   **************************************************************************/
-static struct interface *iface_find(struct in_addr ip, BOOL CheckMask)
+static struct interface *iface_find(struct in_addr ip, bool CheckMask)
 {
        struct interface *i;
        if (is_zero_ip(tov4(ip))) return local_interfaces;
@@ -74,12 +75,13 @@ static void add_interface(struct in_addr ip, struct in_addr nmask)
 {
        struct interface *iface;
        struct ipv4_addr bcast;
-       if (iface_find(ip, False)) {
+
+       if (iface_find(ip, false)) {
                DEBUG(3,("not adding duplicate interface %s\n",inet_ntoa(ip)));
                return;
        }
 
-       iface = talloc(local_interfaces, struct interface);
+       iface = talloc(local_interfaces == NULL ? talloc_autofree_context() : local_interfaces, struct interface);
        if (!iface) return;
        
        ZERO_STRUCTPN(iface);
@@ -198,7 +200,7 @@ static void load_interfaces(void)
                return;
        }
 
-       ptr = lp_interfaces();
+       ptr = lp_interfaces(global_loadparm);
        loopback_ip = interpret_addr2("127.0.0.1");
 
        /* probe the kernel for interfaces */
@@ -319,7 +321,7 @@ const char *iface_best_ip(const char *dest)
        load_interfaces();
 
        ip.s_addr = interpret_addr(dest);
-       iface = iface_find(ip, True);
+       iface = iface_find(ip, true);
        if (iface) {
                return iface->ip_s;
        }
@@ -327,25 +329,25 @@ const char *iface_best_ip(const char *dest)
 }
 
 /**
-  return True if an IP is one one of our local networks
+  return true if an IP is one one of our local networks
 */
-BOOL iface_is_local(const char *dest)
+bool iface_is_local(const char *dest)
 {
        struct in_addr ip;
 
        load_interfaces();
 
        ip.s_addr = interpret_addr(dest);
-       if (iface_find(ip, True)) {
-               return True;
+       if (iface_find(ip, true)) {
+               return true;
        }
-       return False;
+       return false;
 }
 
 /**
-  return True if a IP matches a IP/netmask pair
+  return true if a IP matches a IP/netmask pair
 */
-BOOL iface_same_net(const char *ip1, const char *ip2, const char *netmask)
+bool iface_same_net(const char *ip1, const char *ip2, const char *netmask)
 {
        return same_net(interpret_addr2(ip1),
                        interpret_addr2(ip2),
index dea74761934bf95d2925dcdc7d45a8fd6dd8b8cc..4855f4bd73b667b190e24b644d95580a0c2ddebf 100644 (file)
@@ -19,6 +19,8 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
+#include "system/network.h"
+
 struct iface_struct {
        char name[16];
        struct in_addr ip;
index a60171ccd1c16415817cfcb21fece2a09905b91c..92f0a4400546cc6a9a7b43ef325d817ca490327b 100644 (file)
@@ -23,6 +23,7 @@
 #include "lib/socket/socket.h"
 #include "system/filesys.h"
 #include "system/network.h"
+#include "param/param.h"
 
 /*
   auto-close sockets on free
@@ -69,14 +70,14 @@ _PUBLIC_ NTSTATUS socket_create_with_ops(TALLOC_CTX *mem_ctx, const struct socke
 
        if (!(flags & SOCKET_FLAG_BLOCK) &&
            type == SOCKET_TYPE_STREAM &&
-           lp_parm_bool(-1, "socket", "testnonblock", False)) {
+           lp_parm_bool(global_loadparm, NULL, "socket", "testnonblock", false)) {
                (*new_sock)->flags |= SOCKET_FLAG_TESTNONBLOCK;
        }
 
        /* we don't do a connect() on dgram sockets, so need to set
           non-blocking at socket create time */
        if (!(flags & SOCKET_FLAG_BLOCK) && type == SOCKET_TYPE_DGRAM) {
-               set_blocking(socket_get_fd(*new_sock), False);
+               set_blocking(socket_get_fd(*new_sock), false);
        }
 
        talloc_set_destructor(*new_sock, socket_destructor);
@@ -407,7 +408,7 @@ _PUBLIC_ struct socket_address *socket_address_from_sockaddr(TALLOC_CTX *mem_ctx
        addr->family = NULL; 
        addr->addr = NULL;
        addr->port = 0;
-       addr->sockaddr = talloc_memdup(addr, sockaddr, sockaddrlen);
+       addr->sockaddr = (struct sockaddr *)talloc_memdup(addr, sockaddr, sockaddrlen);
        if (!addr->sockaddr) {
                talloc_free(addr);
                return NULL;
@@ -429,10 +430,6 @@ _PUBLIC_ const struct socket_ops *socket_getops_byname(const char *family, enum
 
 #if HAVE_IPV6
        if (strcmp("ipv6", family) == 0) {
-               if (lp_parm_bool(-1, "socket", "noipv6", False)) {
-                       DEBUG(3, ("IPv6 support was disabled in smb.conf"));
-                       return NULL;
-               }
                return socket_ipv6_ops(type);
        }
 #endif
@@ -505,12 +502,12 @@ _PUBLIC_ void set_socket_options(int fd, const char *options)
                int ret=0,i;
                int value = 1;
                char *p;
-               BOOL got_value = False;
+               bool got_value = false;
 
                if ((p = strchr(tok,'='))) {
                        *p = 0;
                        value = atoi(p+1);
-                       got_value = True;
+                       got_value = true;
                }
 
                for (i=0;socket_options[i].name;i++)
index 0c4fc0bb95181a341aacd91ec7d3981148930e79..7679db08a1ceed8137b95892f8532822f732bcbc 100644 (file)
@@ -121,6 +121,9 @@ struct socket_context {
        void *private_data;
        const struct socket_ops *ops;
        const char *backend_name;
+
+       /* specific to the ip backend */
+       int family;
 };
 
 
diff --git a/source/lib/socket/socket_ip.c b/source/lib/socket/socket_ip.c
new file mode 100644 (file)
index 0000000..499dc93
--- /dev/null
@@ -0,0 +1,981 @@
+/* 
+   Unix SMB/CIFS implementation.
+
+   Socket IPv4/IPv6 functions
+
+   Copyright (C) Stefan Metzmacher 2004
+   Copyright (C) Andrew Tridgell 2004-2005
+   Copyright (C) Jelmer Vernooij 2004
+   
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+   
+   This program 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 General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include "system/filesys.h"
+#include "lib/socket/socket.h"
+#include "system/network.h"
+
+static NTSTATUS ipv4_init(struct socket_context *sock)
+{
+       int type;
+
+       switch (sock->type) {
+       case SOCKET_TYPE_STREAM:
+               type = SOCK_STREAM;
+               break;
+       case SOCKET_TYPE_DGRAM:
+               type = SOCK_DGRAM;
+               break;
+       default:
+               return NT_STATUS_INVALID_PARAMETER;
+       }
+
+       sock->fd = socket(PF_INET, type, 0);
+       if (sock->fd == -1) {
+               return map_nt_error_from_unix(errno);
+       }
+
+       sock->backend_name = "ipv4";
+       sock->family = AF_INET;
+
+       return NT_STATUS_OK;
+}
+
+static void ip_close(struct socket_context *sock)
+{
+       close(sock->fd);
+}
+
+static NTSTATUS ip_connect_complete(struct socket_context *sock, uint32_t flags)
+{
+       int error=0, ret;
+       socklen_t len = sizeof(error);
+
+       /* check for any errors that may have occurred - this is needed
+          for non-blocking connect */
+       ret = getsockopt(sock->fd, SOL_SOCKET, SO_ERROR, &error, &len);
+       if (ret == -1) {
+               return map_nt_error_from_unix(errno);
+       }
+       if (error != 0) {
+               return map_nt_error_from_unix(error);
+       }
+
+       if (!(flags & SOCKET_FLAG_BLOCK)) {
+               ret = set_blocking(sock->fd, false);
+               if (ret == -1) {
+                       return map_nt_error_from_unix(errno);
+               }
+       }
+
+       sock->state = SOCKET_STATE_CLIENT_CONNECTED;
+
+       return NT_STATUS_OK;
+}
+
+
+static NTSTATUS ipv4_connect(struct socket_context *sock,
+                            const struct socket_address *my_address, 
+                            const struct socket_address *srv_address,
+                            uint32_t flags)
+{
+       struct sockaddr_in srv_addr;
+       struct ipv4_addr my_ip;
+       struct ipv4_addr srv_ip;
+       int ret;
+
+       if (my_address && my_address->sockaddr) {
+               ret = bind(sock->fd, my_address->sockaddr, my_address->sockaddrlen);
+               if (ret == -1) {
+                       return map_nt_error_from_unix(errno);
+               }
+       } else if (my_address) {
+               my_ip = interpret_addr2(my_address->addr);
+               
+               if (my_ip.addr != 0 || my_address->port != 0) {
+                       struct sockaddr_in my_addr;
+                       ZERO_STRUCT(my_addr);
+#ifdef HAVE_SOCK_SIN_LEN
+                       my_addr.sin_len         = sizeof(my_addr);
+#endif
+                       my_addr.sin_addr.s_addr = my_ip.addr;
+                       my_addr.sin_port        = htons(my_address->port);
+                       my_addr.sin_family      = PF_INET;
+                       
+                       ret = bind(sock->fd, (struct sockaddr *)&my_addr, sizeof(my_addr));
+                       if (ret == -1) {
+                               return map_nt_error_from_unix(errno);
+                       }
+               }
+       }
+
+       if (srv_address->sockaddr) {
+               ret = connect(sock->fd, srv_address->sockaddr, srv_address->sockaddrlen);
+               if (ret == -1) {
+                       return map_nt_error_from_unix(errno);
+               }
+       } else {
+               srv_ip = interpret_addr2(srv_address->addr);
+               if (!srv_ip.addr) {
+                       return NT_STATUS_BAD_NETWORK_NAME;
+               }
+               
+               ZERO_STRUCT(srv_addr);
+#ifdef HAVE_SOCK_SIN_LEN
+               srv_addr.sin_len        = sizeof(srv_addr);
+#endif
+               srv_addr.sin_addr.s_addr= srv_ip.addr;
+               srv_addr.sin_port       = htons(srv_address->port);
+               srv_addr.sin_family     = PF_INET;
+
+               ret = connect(sock->fd, (const struct sockaddr *)&srv_addr, sizeof(srv_addr));
+               if (ret == -1) {
+                       return map_nt_error_from_unix(errno);
+               }
+       }
+
+       return ip_connect_complete(sock, flags);
+}
+
+
+/*
+  note that for simplicity of the API, socket_listen() is also
+  use for DGRAM sockets, but in reality only a bind() is done
+*/
+static NTSTATUS ipv4_listen(struct socket_context *sock,
+                           const struct socket_address *my_address, 
+                           int queue_size, uint32_t flags)
+{
+       struct sockaddr_in my_addr;
+       struct ipv4_addr ip_addr;
+       int ret;
+
+       socket_set_option(sock, "SO_REUSEADDR=1", NULL);
+
+       if (my_address->sockaddr) {
+               ret = bind(sock->fd, my_address->sockaddr, my_address->sockaddrlen);
+       } else {
+               ip_addr = interpret_addr2(my_address->addr);
+               
+               ZERO_STRUCT(my_addr);
+#ifdef HAVE_SOCK_SIN_LEN
+               my_addr.sin_len         = sizeof(my_addr);
+#endif
+               my_addr.sin_addr.s_addr = ip_addr.addr;
+               my_addr.sin_port        = htons(my_address->port);
+               my_addr.sin_family      = PF_INET;
+               
+               ret = bind(sock->fd, (struct sockaddr *)&my_addr, sizeof(my_addr));
+       }
+
+       if (ret == -1) {
+               return map_nt_error_from_unix(errno);
+       }
+
+       if (sock->type == SOCKET_TYPE_STREAM) {
+               ret = listen(sock->fd, queue_size);
+               if (ret == -1) {
+                       return map_nt_error_from_unix(errno);
+               }
+       }
+
+       if (!(flags & SOCKET_FLAG_BLOCK)) {
+               ret = set_blocking(sock->fd, false);
+               if (ret == -1) {
+                       return map_nt_error_from_unix(errno);
+               }
+       }
+
+       sock->state= SOCKET_STATE_SERVER_LISTEN;
+
+       return NT_STATUS_OK;
+}
+
+static NTSTATUS ipv4_accept(struct socket_context *sock, struct socket_context **new_sock)
+{
+       struct sockaddr_in cli_addr;
+       socklen_t cli_addr_len = sizeof(cli_addr);
+       int new_fd;
+
+       if (sock->type != SOCKET_TYPE_STREAM) {
+               return NT_STATUS_INVALID_PARAMETER;
+       }
+
+       new_fd = accept(sock->fd, (struct sockaddr *)&cli_addr, &cli_addr_len);
+       if (new_fd == -1) {
+               return map_nt_error_from_unix(errno);
+       }
+
+       if (!(sock->flags & SOCKET_FLAG_BLOCK)) {
+               int ret = set_blocking(new_fd, false);
+               if (ret == -1) {
+                       close(new_fd);
+                       return map_nt_error_from_unix(errno);
+               }
+       }
+
+       /* TODO: we could add a 'accept_check' hook here
+        *       which get the black/white lists via socket_set_accept_filter()
+        *       or something like that
+        *       --metze
+        */
+
+       (*new_sock) = talloc(NULL, struct socket_context);
+       if (!(*new_sock)) {
+               close(new_fd);
+               return NT_STATUS_NO_MEMORY;
+       }
+
+       /* copy the socket_context */
+       (*new_sock)->type               = sock->type;
+       (*new_sock)->state              = SOCKET_STATE_SERVER_CONNECTED;
+       (*new_sock)->flags              = sock->flags;
+
+       (*new_sock)->fd                 = new_fd;
+
+       (*new_sock)->private_data       = NULL;
+       (*new_sock)->ops                = sock->ops;
+       (*new_sock)->backend_name       = sock->backend_name;
+
+       return NT_STATUS_OK;
+}
+
+static NTSTATUS ip_recv(struct socket_context *sock, void *buf, 
+                             size_t wantlen, size_t *nread)
+{
+       ssize_t gotlen;
+
+       *nread = 0;
+
+       gotlen = recv(sock->fd, buf, wantlen, 0);
+       if (gotlen == 0) {
+               return NT_STATUS_END_OF_FILE;
+       } else if (gotlen == -1) {
+               return map_nt_error_from_unix(errno);
+       }
+
+       *nread = gotlen;
+
+       return NT_STATUS_OK;
+}
+
+
+static NTSTATUS ipv4_recvfrom(struct socket_context *sock, void *buf, 
+                             size_t wantlen, size_t *nread, 
+                             TALLOC_CTX *addr_ctx, struct socket_address **_src)
+{
+       ssize_t gotlen;
+       struct sockaddr_in *from_addr;
+       socklen_t from_len = sizeof(*from_addr);
+       struct socket_address *src;
+       char addrstring[INET_ADDRSTRLEN];
+       
+       src = talloc(addr_ctx, struct socket_address);
+       if (!src) {
+               return NT_STATUS_NO_MEMORY;
+       }
+       
+       src->family = sock->backend_name;
+
+       from_addr = talloc(src, struct sockaddr_in);
+       if (!from_addr) {
+               talloc_free(src);
+               return NT_STATUS_NO_MEMORY;
+       }
+
+       src->sockaddr = (struct sockaddr *)from_addr;
+
+       *nread = 0;
+
+       gotlen = recvfrom(sock->fd, buf, wantlen, 0, 
+                         src->sockaddr, &from_len);
+       if (gotlen == 0) {
+               talloc_free(src);
+               return NT_STATUS_END_OF_FILE;
+       } else if (gotlen == -1) {
+               talloc_free(src);
+               return map_nt_error_from_unix(errno);
+       }
+
+       src->sockaddrlen = from_len;
+
+       if (inet_ntop(AF_INET, &from_addr->sin_addr, addrstring, 
+                        sizeof(addrstring)) == NULL) {
+               talloc_free(src);
+               return NT_STATUS_INTERNAL_ERROR;
+       }
+       src->addr = talloc_strdup(src, addrstring);
+       if (src->addr == NULL) {
+               talloc_free(src);
+               return NT_STATUS_NO_MEMORY;
+       }
+       src->port = ntohs(from_addr->sin_port);
+
+       *nread  = gotlen;
+       *_src   = src;
+       return NT_STATUS_OK;
+}
+
+static NTSTATUS ip_send(struct socket_context *sock, 
+                             const DATA_BLOB *blob, size_t *sendlen)
+{
+       ssize_t len;
+
+       *sendlen = 0;
+
+       len = send(sock->fd, blob->data, blob->length, 0);
+       if (len == -1) {
+               return map_nt_error_from_unix(errno);
+       }       
+
+       *sendlen = len;
+
+       return NT_STATUS_OK;
+}
+
+static NTSTATUS ipv4_sendto(struct socket_context *sock, 
+                           const DATA_BLOB *blob, size_t *sendlen, 
+                           const struct socket_address *dest_addr)
+{
+       ssize_t len;
+
+       if (dest_addr->sockaddr) {
+               len = sendto(sock->fd, blob->data, blob->length, 0, 
+                            dest_addr->sockaddr, dest_addr->sockaddrlen);
+       } else {
+               struct sockaddr_in srv_addr;
+               struct ipv4_addr addr;
+               
+               ZERO_STRUCT(srv_addr);
+#ifdef HAVE_SOCK_SIN_LEN
+               srv_addr.sin_len         = sizeof(srv_addr);
+#endif
+               addr                     = interpret_addr2(dest_addr->addr);
+               if (addr.addr == 0) {
+                       return NT_STATUS_HOST_UNREACHABLE;
+               }
+               srv_addr.sin_addr.s_addr = addr.addr;
+               srv_addr.sin_port        = htons(dest_addr->port);
+               srv_addr.sin_family      = PF_INET;
+               
+               *sendlen = 0;
+               
+               len = sendto(sock->fd, blob->data, blob->length, 0, 
+                            (struct sockaddr *)&srv_addr, sizeof(srv_addr));
+       }
+       if (len == -1) {
+               return map_nt_error_from_unix(errno);
+       }       
+
+       *sendlen = len;
+
+       return NT_STATUS_OK;
+}
+
+static NTSTATUS ipv4_set_option(struct socket_context *sock, const char *option, const char *val)
+{
+       set_socket_options(sock->fd, option);
+       return NT_STATUS_OK;
+}
+
+static char *ipv4_get_peer_name(struct socket_context *sock, TALLOC_CTX *mem_ctx)
+{
+       struct sockaddr_in peer_addr;
+       socklen_t len = sizeof(peer_addr);
+       struct hostent *he;
+       int ret;
+
+       ret = getpeername(sock->fd, (struct sockaddr *)&peer_addr, &len);
+       if (ret == -1) {
+               return NULL;
+       }
+
+       he = gethostbyaddr((char *)&peer_addr.sin_addr, sizeof(peer_addr.sin_addr), AF_INET);
+       if (he == NULL) {
+               return NULL;
+       }
+
+       return talloc_strdup(mem_ctx, he->h_name);
+}
+
+static struct socket_address *ipv4_get_peer_addr(struct socket_context *sock, TALLOC_CTX *mem_ctx)
+{
+       struct sockaddr_in *peer_addr;
+       socklen_t len = sizeof(*peer_addr);
+       struct socket_address *peer;
+       char addrstring[INET_ADDRSTRLEN];
+       int ret;
+       
+       peer = talloc(mem_ctx, struct socket_address);
+       if (!peer) {
+               return NULL;
+       }
+       
+       peer->family = sock->backend_name;
+       peer_addr = talloc(peer, struct sockaddr_in);
+       if (!peer_addr) {
+               talloc_free(peer);
+               return NULL;
+       }
+
+       peer->sockaddr = (struct sockaddr *)peer_addr;
+
+       ret = getpeername(sock->fd, peer->sockaddr, &len);
+       if (ret == -1) {
+               talloc_free(peer);
+               return NULL;
+       }
+
+       peer->sockaddrlen = len;
+
+       if (inet_ntop(AF_INET, &peer_addr->sin_addr, addrstring,
+                        sizeof(addrstring)) == NULL) {
+               talloc_free(peer);
+               return NULL;
+       }
+       peer->addr = talloc_strdup(peer, addrstring);
+       if (!peer->addr) {
+               talloc_free(peer);
+               return NULL;
+       }
+       peer->port = ntohs(peer_addr->sin_port);
+
+       return peer;
+}
+
+static struct socket_address *ipv4_get_my_addr(struct socket_context *sock, TALLOC_CTX *mem_ctx)
+{
+       struct sockaddr_in *local_addr;
+       socklen_t len = sizeof(*local_addr);
+       struct socket_address *local;
+       char addrstring[INET_ADDRSTRLEN];
+       int ret;
+       
+       local = talloc(mem_ctx, struct socket_address);
+       if (!local) {
+               return NULL;
+       }
+       
+       local->family = sock->backend_name;
+       local_addr = talloc(local, struct sockaddr_in);
+       if (!local_addr) {
+               talloc_free(local);
+               return NULL;
+       }
+
+       local->sockaddr = (struct sockaddr *)local_addr;
+
+       ret = getsockname(sock->fd, local->sockaddr, &len);
+       if (ret == -1) {
+               talloc_free(local);
+               return NULL;
+       }
+
+       local->sockaddrlen = len;
+
+       if (inet_ntop(AF_INET, &local_addr->sin_addr, addrstring, 
+                        sizeof(addrstring)) == NULL) {
+               talloc_free(local);
+               return NULL;
+       }
+       local->addr = talloc_strdup(local, addrstring);
+       if (!local->addr) {
+               talloc_free(local);
+               return NULL;
+       }
+       local->port = ntohs(local_addr->sin_port);
+
+       return local;
+}
+static int ip_get_fd(struct socket_context *sock)
+{
+       return sock->fd;
+}
+
+static NTSTATUS ip_pending(struct socket_context *sock, size_t *npending)
+{
+       int value = 0;
+       if (ioctl(sock->fd, FIONREAD, &value) == 0) {
+               *npending = value;
+               return NT_STATUS_OK;
+       }
+       return map_nt_error_from_unix(errno);
+}
+
+static const struct socket_ops ipv4_ops = {
+       .name                   = "ipv4",
+       .fn_init                = ipv4_init,
+       .fn_connect             = ipv4_connect,
+       .fn_connect_complete    = ip_connect_complete,
+       .fn_listen              = ipv4_listen,
+       .fn_accept              = ipv4_accept,
+       .fn_recv                = ip_recv,
+       .fn_recvfrom            = ipv4_recvfrom,
+       .fn_send                = ip_send,
+       .fn_sendto              = ipv4_sendto,
+       .fn_pending             = ip_pending,
+       .fn_close               = ip_close,
+
+       .fn_set_option          = ipv4_set_option,
+
+       .fn_get_peer_name       = ipv4_get_peer_name,
+       .fn_get_peer_addr       = ipv4_get_peer_addr,
+       .fn_get_my_addr         = ipv4_get_my_addr,
+
+       .fn_get_fd              = ip_get_fd
+};
+
+const struct socket_ops *socket_ipv4_ops(enum socket_type type)
+{
+       return &ipv4_ops;
+}
+
+#if HAVE_IPV6
+
+static struct in6_addr interpret_addr6(const char *name)
+{
+       struct hostent *he;
+       
+       if (name == NULL) return in6addr_any;
+
+       if (strcasecmp(name, "localhost") == 0) {
+               name = "::1";
+       }
+
+       he = gethostbyname2(name, PF_INET6);
+
+       if (he == NULL) return in6addr_any;
+
+       return *((struct in6_addr *)he->h_addr);
+}
+
+static NTSTATUS ipv6_init(struct socket_context *sock)
+{
+       int type;
+
+       switch (sock->type) {
+       case SOCKET_TYPE_STREAM:
+               type = SOCK_STREAM;
+               break;
+       case SOCKET_TYPE_DGRAM:
+               type = SOCK_DGRAM;
+               break;
+       default:
+               return NT_STATUS_INVALID_PARAMETER;
+       }
+
+       sock->fd = socket(PF_INET6, type, 0);
+       if (sock->fd == -1) {
+               return map_nt_error_from_unix(errno);
+       }
+
+       sock->backend_name = "ipv6";
+       sock->family = AF_INET6;
+
+       return NT_STATUS_OK;
+}
+
+static NTSTATUS ipv6_tcp_connect(struct socket_context *sock,
+                                const struct socket_address *my_address,
+                                const struct socket_address *srv_address,
+                                uint32_t flags)
+{
+       int ret;
+
+       if (my_address && my_address->sockaddr) {
+               ret = bind(sock->fd, my_address->sockaddr, my_address->sockaddrlen);
+               if (ret == -1) {
+                       return map_nt_error_from_unix(errno);
+               }
+       } else if (my_address) {
+               struct in6_addr my_ip;
+               my_ip = interpret_addr6(my_address->addr);
+
+               if (memcmp(&my_ip, &in6addr_any, sizeof(my_ip)) || my_address->port != 0) {
+                       struct sockaddr_in6 my_addr;
+                       ZERO_STRUCT(my_addr);
+                       my_addr.sin6_addr       = my_ip;
+                       my_addr.sin6_port       = htons(my_address->port);
+                       my_addr.sin6_family     = PF_INET6;
+                       
+                       ret = bind(sock->fd, (struct sockaddr *)&my_addr, sizeof(my_addr));
+                       if (ret == -1) {
+                               return map_nt_error_from_unix(errno);
+                       }
+               }
+       }
+
+       if (srv_address->sockaddr) {
+               ret = connect(sock->fd, srv_address->sockaddr, srv_address->sockaddrlen);
+       } else {
+               struct in6_addr srv_ip;
+               struct sockaddr_in6 srv_addr;
+               srv_ip = interpret_addr6(srv_address->addr);
+               if (memcmp(&srv_ip, &in6addr_any, sizeof(srv_ip)) == 0) {
+                       return NT_STATUS_BAD_NETWORK_NAME;
+               }
+               
+               ZERO_STRUCT(srv_addr);
+               srv_addr.sin6_addr      = srv_ip;
+               srv_addr.sin6_port      = htons(srv_address->port);
+               srv_addr.sin6_family    = PF_INET6;
+               
+               ret = connect(sock->fd, (const struct sockaddr *)&srv_addr, sizeof(srv_addr));
+       }
+       if (ret == -1) {
+               return map_nt_error_from_unix(errno);
+       }
+
+       return ip_connect_complete(sock, flags);
+}
+
+static NTSTATUS ipv6_listen(struct socket_context *sock,
+                               const struct socket_address *my_address,
+                               int queue_size, uint32_t flags)
+{
+       struct sockaddr_in6 my_addr;
+       struct in6_addr ip_addr;
+       int ret;
+
+       socket_set_option(sock, "SO_REUSEADDR=1", NULL);
+
+       if (my_address->sockaddr) {
+               ret = bind(sock->fd, my_address->sockaddr, my_address->sockaddrlen);
+       } else {
+               ip_addr = interpret_addr6(my_address->addr);
+               
+               ZERO_STRUCT(my_addr);
+               my_addr.sin6_addr       = ip_addr;
+               my_addr.sin6_port       = htons(my_address->port);
+               my_addr.sin6_family     = PF_INET6;
+               
+               ret = bind(sock->fd, (struct sockaddr *)&my_addr, sizeof(my_addr));
+       }
+
+       if (ret == -1) {
+               return map_nt_error_from_unix(errno);
+       }
+
+       if (sock->type == SOCKET_TYPE_STREAM) {
+               ret = listen(sock->fd, queue_size);
+               if (ret == -1) {
+                       return map_nt_error_from_unix(errno);
+               }
+       }
+
+       if (!(flags & SOCKET_FLAG_BLOCK)) {
+               ret = set_blocking(sock->fd, false);
+               if (ret == -1) {
+                       return map_nt_error_from_unix(errno);
+               }
+       }
+
+       sock->state= SOCKET_STATE_SERVER_LISTEN;
+
+       return NT_STATUS_OK;
+}
+
+static NTSTATUS ipv6_tcp_accept(struct socket_context *sock, struct socket_context **new_sock)
+{
+       struct sockaddr_in cli_addr;
+       socklen_t cli_addr_len = sizeof(cli_addr);
+       int new_fd;
+       
+       if (sock->type != SOCKET_TYPE_STREAM) {
+               return NT_STATUS_INVALID_PARAMETER;
+       }
+
+       new_fd = accept(sock->fd, (struct sockaddr *)&cli_addr, &cli_addr_len);
+       if (new_fd == -1) {
+               return map_nt_error_from_unix(errno);
+       }
+
+       if (!(sock->flags & SOCKET_FLAG_BLOCK)) {
+               int ret = set_blocking(new_fd, false);
+               if (ret == -1) {
+                       close(new_fd);
+                       return map_nt_error_from_unix(errno);
+               }
+       }
+
+       /* TODO: we could add a 'accept_check' hook here
+        *       which get the black/white lists via socket_set_accept_filter()
+        *       or something like that
+        *       --metze
+        */
+
+       (*new_sock) = talloc(NULL, struct socket_context);
+       if (!(*new_sock)) {
+               close(new_fd);
+               return NT_STATUS_NO_MEMORY;
+       }
+
+       /* copy the socket_context */
+       (*new_sock)->type               = sock->type;
+       (*new_sock)->state              = SOCKET_STATE_SERVER_CONNECTED;
+       (*new_sock)->flags              = sock->flags;
+
+       (*new_sock)->fd                 = new_fd;
+
+       (*new_sock)->private_data       = NULL;
+       (*new_sock)->ops                = sock->ops;
+       (*new_sock)->backend_name       = sock->backend_name;
+
+       return NT_STATUS_OK;
+}
+
+static NTSTATUS ipv6_recvfrom(struct socket_context *sock, void *buf, 
+                             size_t wantlen, size_t *nread, 
+                             TALLOC_CTX *addr_ctx, struct socket_address **_src)
+{
+       ssize_t gotlen;
+       struct sockaddr_in6 *from_addr;
+       socklen_t from_len = sizeof(*from_addr);
+       struct socket_address *src;
+       char addrstring[INET6_ADDRSTRLEN];
+       
+       src = talloc(addr_ctx, struct socket_address);
+       if (!src) {
+               return NT_STATUS_NO_MEMORY;
+       }
+       
+       src->family = sock->backend_name;
+
+       from_addr = talloc(src, struct sockaddr_in6);
+       if (!from_addr) {
+               talloc_free(src);
+               return NT_STATUS_NO_MEMORY;
+       }
+
+       src->sockaddr = (struct sockaddr *)from_addr;
+
+       *nread = 0;
+
+       gotlen = recvfrom(sock->fd, buf, wantlen, 0, 
+                         src->sockaddr, &from_len);
+       if (gotlen == 0) {
+               talloc_free(src);
+               return NT_STATUS_END_OF_FILE;
+       } else if (gotlen == -1) {
+               talloc_free(src);
+               return map_nt_error_from_unix(errno);
+       }
+
+       src->sockaddrlen = from_len;
+
+       if (inet_ntop(AF_INET6, &from_addr->sin6_addr, addrstring, sizeof(addrstring)) == NULL) {
+               DEBUG(0, ("Unable to convert address to string: %s\n", strerror(errno)));
+               talloc_free(src);
+               return NT_STATUS_INTERNAL_ERROR;
+       }
+
+       src->addr = talloc_strdup(src, addrstring);
+       if (src->addr == NULL) {
+               talloc_free(src);
+               return NT_STATUS_NO_MEMORY;
+       }
+       src->port = ntohs(from_addr->sin6_port);
+
+       *nread  = gotlen;
+       *_src   = src;
+       return NT_STATUS_OK;
+}
+
+static NTSTATUS ipv6_sendto(struct socket_context *sock, 
+                           const DATA_BLOB *blob, size_t *sendlen, 
+                           const struct socket_address *dest_addr)
+{
+       ssize_t len;
+
+       if (dest_addr->sockaddr) {
+               len = sendto(sock->fd, blob->data, blob->length, 0, 
+                            dest_addr->sockaddr, dest_addr->sockaddrlen);
+       } else {
+               struct sockaddr_in6 srv_addr;
+               struct in6_addr addr;
+               
+               ZERO_STRUCT(srv_addr);
+               addr                     = interpret_addr6(dest_addr->addr);
+               if (addr.s6_addr == 0) {
+                       return NT_STATUS_HOST_UNREACHABLE;
+               }
+               srv_addr.sin6_addr = addr;
+               srv_addr.sin6_port        = htons(dest_addr->port);
+               srv_addr.sin6_family      = PF_INET6;
+               
+               *sendlen = 0;
+               
+               len = sendto(sock->fd, blob->data, blob->length, 0, 
+                            (struct sockaddr *)&srv_addr, sizeof(srv_addr));
+       }
+       if (len == -1) {
+               return map_nt_error_from_unix(errno);
+       }       
+
+       *sendlen = len;
+
+       return NT_STATUS_OK;
+}
+
+static NTSTATUS ipv6_set_option(struct socket_context *sock, const char *option, const char *val)
+{
+       set_socket_options(sock->fd, option);
+       return NT_STATUS_OK;
+}
+
+static char *ipv6_tcp_get_peer_name(struct socket_context *sock, TALLOC_CTX *mem_ctx)
+{
+       struct sockaddr_in6 peer_addr;
+       socklen_t len = sizeof(peer_addr);
+       struct hostent *he;
+       int ret;
+
+       ret = getpeername(sock->fd, (struct sockaddr *)&peer_addr, &len);
+       if (ret == -1) {
+               return NULL;
+       }
+
+       he = gethostbyaddr((char *)&peer_addr.sin6_addr, sizeof(peer_addr.sin6_addr), AF_INET6);
+       if (he == NULL) {
+               return NULL;
+       }
+
+       return talloc_strdup(mem_ctx, he->h_name);
+}
+
+static struct socket_address *ipv6_tcp_get_peer_addr(struct socket_context *sock, TALLOC_CTX *mem_ctx)
+{
+       struct sockaddr_in6 *peer_addr;
+       socklen_t len = sizeof(*peer_addr);
+       struct socket_address *peer;
+       int ret;
+       char addr[128];
+       const char *addr_ret;
+       
+       peer = talloc(mem_ctx, struct socket_address);
+       if (!peer) {
+               return NULL;
+       }
+       
+       peer->family = sock->backend_name;
+       peer_addr = talloc(peer, struct sockaddr_in6);
+       if (!peer_addr) {
+               talloc_free(peer);
+               return NULL;
+       }
+
+       peer->sockaddr = (struct sockaddr *)peer_addr;
+
+       ret = getpeername(sock->fd, peer->sockaddr, &len);
+       if (ret == -1) {
+               talloc_free(peer);
+               return NULL;
+       }
+
+       peer->sockaddrlen = len;
+
+       addr_ret = inet_ntop(AF_INET6, &peer_addr->sin6_addr, addr, sizeof(addr));
+       if (addr_ret == NULL) {
+               talloc_free(peer);
+               return NULL;
+       }
+
+       peer->addr = talloc_strdup(peer, addr_ret);
+       if (peer->addr == NULL) {
+               talloc_free(peer);
+               return NULL;
+       }
+
+       peer->port = ntohs(peer_addr->sin6_port);
+
+       return peer;
+}
+
+static struct socket_address *ipv6_tcp_get_my_addr(struct socket_context *sock, TALLOC_CTX *mem_ctx)
+{
+       struct sockaddr_in6 *local_addr;
+       socklen_t len = sizeof(*local_addr);
+       struct socket_address *local;
+       int ret;
+       char addrstring[INET6_ADDRSTRLEN];
+       
+       local = talloc(mem_ctx, struct socket_address);
+       if (!local) {
+               return NULL;
+       }
+       
+       local->family = sock->backend_name;
+       local_addr = talloc(local, struct sockaddr_in6);
+       if (!local_addr) {
+               talloc_free(local);
+               return NULL;
+       }
+
+       local->sockaddr = (struct sockaddr *)local_addr;
+
+       ret = getsockname(sock->fd, local->sockaddr, &len);
+       if (ret == -1) {
+               talloc_free(local);
+               return NULL;
+       }
+
+       local->sockaddrlen = len;
+
+       if (inet_ntop(AF_INET6, &local_addr->sin6_addr, addrstring, 
+                      sizeof(addrstring)) == NULL) {
+               DEBUG(0, ("Unable to convert address to string: %s\n", 
+                         strerror(errno)));
+               talloc_free(local);
+               return NULL;
+       }
+       
+       local->addr = talloc_strdup(mem_ctx, addrstring);
+       if (!local->addr) {
+               talloc_free(local);
+               return NULL;
+       }
+       local->port = ntohs(local_addr->sin6_port);
+
+       return local;
+}
+
+static const struct socket_ops ipv6_tcp_ops = {
+       .name                   = "ipv6",
+       .fn_init                = ipv6_init,
+       .fn_connect             = ipv6_tcp_connect,
+       .fn_connect_complete    = ip_connect_complete,
+       .fn_listen              = ipv6_listen,
+       .fn_accept              = ipv6_tcp_accept,
+       .fn_recv                = ip_recv,
+       .fn_recvfrom            = ipv6_recvfrom,
+       .fn_send                = ip_send,
+       .fn_sendto              = ipv6_sendto,
+       .fn_pending             = ip_pending,
+       .fn_close               = ip_close,
+
+       .fn_set_option          = ipv6_set_option,
+
+       .fn_get_peer_name       = ipv6_tcp_get_peer_name,
+       .fn_get_peer_addr       = ipv6_tcp_get_peer_addr,
+       .fn_get_my_addr         = ipv6_tcp_get_my_addr,
+
+       .fn_get_fd              = ip_get_fd
+};
+
+const struct socket_ops *socket_ipv6_ops(enum socket_type type)
+{
+       return &ipv6_tcp_ops;
+}
+
+#endif
diff --git a/source/lib/socket/socket_ipv4.c b/source/lib/socket/socket_ipv4.c
deleted file mode 100644 (file)
index d9a4ff0..0000000
+++ /dev/null
@@ -1,539 +0,0 @@
-/* 
-   Unix SMB/CIFS implementation.
-
-   Socket IPv4 functions
-
-   Copyright (C) Stefan Metzmacher 2004
-   Copyright (C) Andrew Tridgell 2004-2005
-   
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-   
-   This program 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 General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "includes.h"
-#include "system/filesys.h"
-#include "lib/socket/socket.h"
-#include "system/network.h"
-
-static NTSTATUS ipv4_init(struct socket_context *sock)
-{
-       int type;
-
-       switch (sock->type) {
-       case SOCKET_TYPE_STREAM:
-               type = SOCK_STREAM;
-               break;
-       case SOCKET_TYPE_DGRAM:
-               type = SOCK_DGRAM;
-               break;
-       default:
-               return NT_STATUS_INVALID_PARAMETER;
-       }
-
-       sock->fd = socket(PF_INET, type, 0);
-       if (sock->fd == -1) {
-               return map_nt_error_from_unix(errno);
-       }
-
-       sock->backend_name = "ipv4";
-
-       return NT_STATUS_OK;
-}
-
-static void ipv4_close(struct socket_context *sock)
-{
-       close(sock->fd);
-}
-
-static NTSTATUS ipv4_connect_complete(struct socket_context *sock, uint32_t flags)
-{
-       int error=0, ret;
-       socklen_t len = sizeof(error);
-
-       /* check for any errors that may have occurred - this is needed
-          for non-blocking connect */
-       ret = getsockopt(sock->fd, SOL_SOCKET, SO_ERROR, &error, &len);
-       if (ret == -1) {
-               return map_nt_error_from_unix(errno);
-       }
-       if (error != 0) {
-               return map_nt_error_from_unix(error);
-       }
-
-       if (!(flags & SOCKET_FLAG_BLOCK)) {
-               ret = set_blocking(sock->fd, False);
-               if (ret == -1) {
-                       return map_nt_error_from_unix(errno);
-               }
-       }
-
-       sock->state = SOCKET_STATE_CLIENT_CONNECTED;
-
-       return NT_STATUS_OK;
-}
-
-
-static NTSTATUS ipv4_connect(struct socket_context *sock,
-                            const struct socket_address *my_address, 
-                            const struct socket_address *srv_address,
-                            uint32_t flags)
-{
-       struct sockaddr_in srv_addr;
-       struct ipv4_addr my_ip;
-       struct ipv4_addr srv_ip;
-       int ret;
-
-       if (my_address && my_address->sockaddr) {
-               ret = bind(sock->fd, my_address->sockaddr, my_address->sockaddrlen);
-               if (ret == -1) {
-                       return map_nt_error_from_unix(errno);
-               }
-       } else if (my_address) {
-               my_ip = interpret_addr2(my_address->addr);
-               
-               if (my_ip.addr != 0 || my_address->port != 0) {
-                       struct sockaddr_in my_addr;
-                       ZERO_STRUCT(my_addr);
-#ifdef HAVE_SOCK_SIN_LEN
-                       my_addr.sin_len         = sizeof(my_addr);
-#endif
-                       my_addr.sin_addr.s_addr = my_ip.addr;
-                       my_addr.sin_port        = htons(my_address->port);
-                       my_addr.sin_family      = PF_INET;
-                       
-                       ret = bind(sock->fd, (struct sockaddr *)&my_addr, sizeof(my_addr));
-                       if (ret == -1) {
-                               return map_nt_error_from_unix(errno);
-                       }
-               }
-       }
-
-       if (srv_address->sockaddr) {
-               ret = connect(sock->fd, srv_address->sockaddr, srv_address->sockaddrlen);
-               if (ret == -1) {
-                       return map_nt_error_from_unix(errno);
-               }
-       } else {
-               srv_ip = interpret_addr2(srv_address->addr);
-               if (!srv_ip.addr) {
-                       return NT_STATUS_BAD_NETWORK_NAME;
-               }
-               
-               ZERO_STRUCT(srv_addr);
-#ifdef HAVE_SOCK_SIN_LEN
-               srv_addr.sin_len        = sizeof(srv_addr);
-#endif
-               srv_addr.sin_addr.s_addr= srv_ip.addr;
-               srv_addr.sin_port       = htons(srv_address->port);
-               srv_addr.sin_family     = PF_INET;
-
-               ret = connect(sock->fd, (const struct sockaddr *)&srv_addr, sizeof(srv_addr));
-               if (ret == -1) {
-                       return map_nt_error_from_unix(errno);
-               }
-       }
-
-       return ipv4_connect_complete(sock, flags);
-}
-
-
-/*
-  note that for simplicity of the API, socket_listen() is also
-  use for DGRAM sockets, but in reality only a bind() is done
-*/
-static NTSTATUS ipv4_listen(struct socket_context *sock,
-                           const struct socket_address *my_address, 
-                           int queue_size, uint32_t flags)
-{
-       struct sockaddr_in my_addr;
-       struct ipv4_addr ip_addr;
-       int ret;
-
-       socket_set_option(sock, "SO_REUSEADDR=1", NULL);
-
-       if (my_address->sockaddr) {
-               ret = bind(sock->fd, my_address->sockaddr, my_address->sockaddrlen);
-       } else {
-               ip_addr = interpret_addr2(my_address->addr);
-               
-               ZERO_STRUCT(my_addr);
-#ifdef HAVE_SOCK_SIN_LEN
-               my_addr.sin_len         = sizeof(my_addr);
-#endif
-               my_addr.sin_addr.s_addr = ip_addr.addr;
-               my_addr.sin_port        = htons(my_address->port);
-               my_addr.sin_family      = PF_INET;
-               
-               ret = bind(sock->fd, (struct sockaddr *)&my_addr, sizeof(my_addr));
-       }
-
-       if (ret == -1) {
-               return map_nt_error_from_unix(errno);
-       }
-
-       if (sock->type == SOCKET_TYPE_STREAM) {
-               ret = listen(sock->fd, queue_size);
-               if (ret == -1) {
-                       return map_nt_error_from_unix(errno);
-               }
-       }
-
-       if (!(flags & SOCKET_FLAG_BLOCK)) {
-               ret = set_blocking(sock->fd, False);
-               if (ret == -1) {
-                       return map_nt_error_from_unix(errno);
-               }
-       }
-
-       sock->state= SOCKET_STATE_SERVER_LISTEN;
-
-       return NT_STATUS_OK;
-}
-
-static NTSTATUS ipv4_accept(struct socket_context *sock, struct socket_context **new_sock)
-{
-       struct sockaddr_in cli_addr;
-       socklen_t cli_addr_len = sizeof(cli_addr);
-       int new_fd;
-
-       if (sock->type != SOCKET_TYPE_STREAM) {
-               return NT_STATUS_INVALID_PARAMETER;
-       }
-
-       new_fd = accept(sock->fd, (struct sockaddr *)&cli_addr, &cli_addr_len);
-       if (new_fd == -1) {
-               return map_nt_error_from_unix(errno);
-       }
-
-       if (!(sock->flags & SOCKET_FLAG_BLOCK)) {
-               int ret = set_blocking(new_fd, False);
-               if (ret == -1) {
-                       close(new_fd);
-                       return map_nt_error_from_unix(errno);
-               }
-       }
-
-       /* TODO: we could add a 'accept_check' hook here
-        *       which get the black/white lists via socket_set_accept_filter()
-        *       or something like that
-        *       --metze
-        */
-
-       (*new_sock) = talloc(NULL, struct socket_context);
-       if (!(*new_sock)) {
-               close(new_fd);
-               return NT_STATUS_NO_MEMORY;
-       }
-
-       /* copy the socket_context */
-       (*new_sock)->type               = sock->type;
-       (*new_sock)->state              = SOCKET_STATE_SERVER_CONNECTED;
-       (*new_sock)->flags              = sock->flags;
-
-       (*new_sock)->fd                 = new_fd;
-
-       (*new_sock)->private_data       = NULL;
-       (*new_sock)->ops                = sock->ops;
-       (*new_sock)->backend_name       = sock->backend_name;
-
-       return NT_STATUS_OK;
-}
-
-static NTSTATUS ipv4_recv(struct socket_context *sock, void *buf, 
-                             size_t wantlen, size_t *nread)
-{
-       ssize_t gotlen;
-
-       *nread = 0;
-
-       gotlen = recv(sock->fd, buf, wantlen, 0);
-       if (gotlen == 0) {
-               return NT_STATUS_END_OF_FILE;
-       } else if (gotlen == -1) {
-               return map_nt_error_from_unix(errno);
-       }
-
-       *nread = gotlen;
-
-       return NT_STATUS_OK;
-}
-
-
-static NTSTATUS ipv4_recvfrom(struct socket_context *sock, void *buf, 
-                             size_t wantlen, size_t *nread, 
-                             TALLOC_CTX *addr_ctx, struct socket_address **_src)
-{
-       ssize_t gotlen;
-       struct sockaddr_in *from_addr;
-       socklen_t from_len = sizeof(*from_addr);
-       struct socket_address *src;
-       const char *addr;
-       
-       src = talloc(addr_ctx, struct socket_address);
-       if (!src) {
-               return NT_STATUS_NO_MEMORY;
-       }
-       
-       src->family = sock->backend_name;
-
-       from_addr = talloc(src, struct sockaddr_in);
-       if (!from_addr) {
-               talloc_free(src);
-               return NT_STATUS_NO_MEMORY;
-       }
-
-       src->sockaddr = (struct sockaddr *)from_addr;
-
-       *nread = 0;
-
-       gotlen = recvfrom(sock->fd, buf, wantlen, 0, 
-                         src->sockaddr, &from_len);
-       if (gotlen == 0) {
-               talloc_free(src);
-               return NT_STATUS_END_OF_FILE;
-       } else if (gotlen == -1) {
-               talloc_free(src);
-               return map_nt_error_from_unix(errno);
-       }
-
-       src->sockaddrlen = from_len;
-
-       addr = inet_ntoa(from_addr->sin_addr);
-       if (addr == NULL) {
-               talloc_free(src);
-               return NT_STATUS_INTERNAL_ERROR;
-       }
-       src->addr = talloc_strdup(src, addr);
-       if (src->addr == NULL) {
-               talloc_free(src);
-               return NT_STATUS_NO_MEMORY;
-       }
-       src->port = ntohs(from_addr->sin_port);
-
-       *nread  = gotlen;
-       *_src   = src;
-       return NT_STATUS_OK;
-}
-
-static NTSTATUS ipv4_send(struct socket_context *sock, 
-                             const DATA_BLOB *blob, size_t *sendlen)
-{
-       ssize_t len;
-
-       *sendlen = 0;
-
-       len = send(sock->fd, blob->data, blob->length, 0);
-       if (len == -1) {
-               return map_nt_error_from_unix(errno);
-       }       
-
-       *sendlen = len;
-
-       return NT_STATUS_OK;
-}
-
-static NTSTATUS ipv4_sendto(struct socket_context *sock, 
-                           const DATA_BLOB *blob, size_t *sendlen, 
-                           const struct socket_address *dest_addr)
-{
-       ssize_t len;
-
-       if (dest_addr->sockaddr) {
-               len = sendto(sock->fd, blob->data, blob->length, 0, 
-                            dest_addr->sockaddr, dest_addr->sockaddrlen);
-       } else {
-               struct sockaddr_in srv_addr;
-               struct ipv4_addr addr;
-               
-               ZERO_STRUCT(srv_addr);
-#ifdef HAVE_SOCK_SIN_LEN
-               srv_addr.sin_len         = sizeof(srv_addr);
-#endif
-               addr                     = interpret_addr2(dest_addr->addr);
-               if (addr.addr == 0) {
-                       return NT_STATUS_HOST_UNREACHABLE;
-               }
-               srv_addr.sin_addr.s_addr = addr.addr;
-               srv_addr.sin_port        = htons(dest_addr->port);
-               srv_addr.sin_family      = PF_INET;
-               
-               *sendlen = 0;
-               
-               len = sendto(sock->fd, blob->data, blob->length, 0, 
-                            (struct sockaddr *)&srv_addr, sizeof(srv_addr));
-       }
-       if (len == -1) {
-               return map_nt_error_from_unix(errno);
-       }       
-
-       *sendlen = len;
-
-       return NT_STATUS_OK;
-}
-
-static NTSTATUS ipv4_set_option(struct socket_context *sock, const char *option, const char *val)
-{
-       set_socket_options(sock->fd, option);
-       return NT_STATUS_OK;
-}
-
-static char *ipv4_get_peer_name(struct socket_context *sock, TALLOC_CTX *mem_ctx)
-{
-       struct sockaddr_in peer_addr;
-       socklen_t len = sizeof(peer_addr);
-       struct hostent *he;
-       int ret;
-
-       ret = getpeername(sock->fd, (struct sockaddr *)&peer_addr, &len);
-       if (ret == -1) {
-               return NULL;
-       }
-
-       he = gethostbyaddr((char *)&peer_addr.sin_addr, sizeof(peer_addr.sin_addr), AF_INET);
-       if (he == NULL) {
-               return NULL;
-       }
-
-       return talloc_strdup(mem_ctx, he->h_name);
-}
-
-static struct socket_address *ipv4_get_peer_addr(struct socket_context *sock, TALLOC_CTX *mem_ctx)
-{
-       struct sockaddr_in *peer_addr;
-       socklen_t len = sizeof(*peer_addr);
-       const char *addr;
-       struct socket_address *peer;
-       int ret;
-       
-       peer = talloc(mem_ctx, struct socket_address);
-       if (!peer) {
-               return NULL;
-       }
-       
-       peer->family = sock->backend_name;
-       peer_addr = talloc(peer, struct sockaddr_in);
-       if (!peer_addr) {
-               talloc_free(peer);
-               return NULL;
-       }
-
-       peer->sockaddr = (struct sockaddr *)peer_addr;
-
-       ret = getpeername(sock->fd, peer->sockaddr, &len);
-       if (ret == -1) {
-               talloc_free(peer);
-               return NULL;
-       }
-
-       peer->sockaddrlen = len;
-
-       addr = inet_ntoa(peer_addr->sin_addr);
-       if (addr == NULL) {
-               talloc_free(peer);
-               return NULL;
-       }
-       peer->addr = talloc_strdup(peer, addr);
-       if (!peer->addr) {
-               talloc_free(peer);
-               return NULL;
-       }
-       peer->port = ntohs(peer_addr->sin_port);
-
-       return peer;
-}
-
-static struct socket_address *ipv4_get_my_addr(struct socket_context *sock, TALLOC_CTX *mem_ctx)
-{
-       struct sockaddr_in *local_addr;
-       socklen_t len = sizeof(*local_addr);
-       const char *addr;
-       struct socket_address *local;
-       int ret;
-       
-       local = talloc(mem_ctx, struct socket_address);
-       if (!local) {
-               return NULL;
-       }
-       
-       local->family = sock->backend_name;
-       local_addr = talloc(local, struct sockaddr_in);
-       if (!local_addr) {
-               talloc_free(local);
-               return NULL;
-       }
-
-       local->sockaddr = (struct sockaddr *)local_addr;
-
-       ret = getsockname(sock->fd, local->sockaddr, &len);
-       if (ret == -1) {
-               talloc_free(local);
-               return NULL;
-       }
-
-       local->sockaddrlen = len;
-
-       addr = inet_ntoa(local_addr->sin_addr);
-       if (addr == NULL) {
-               talloc_free(local);
-               return NULL;
-       }
-       local->addr = talloc_strdup(local, addr);
-       if (!local->addr) {
-               talloc_free(local);
-               return NULL;
-       }
-       local->port = ntohs(local_addr->sin_port);
-
-       return local;
-}
-static int ipv4_get_fd(struct socket_context *sock)
-{
-       return sock->fd;
-}
-
-static NTSTATUS ipv4_pending(struct socket_context *sock, size_t *npending)
-{
-       int value = 0;
-       if (ioctl(sock->fd, FIONREAD, &value) == 0) {
-               *npending = value;
-               return NT_STATUS_OK;
-       }
-       return map_nt_error_from_unix(errno);
-}
-
-static const struct socket_ops ipv4_ops = {
-       .name                   = "ipv4",
-       .fn_init                = ipv4_init,
-       .fn_connect             = ipv4_connect,
-       .fn_connect_complete    = ipv4_connect_complete,
-       .fn_listen              = ipv4_listen,
-       .fn_accept              = ipv4_accept,
-       .fn_recv                = ipv4_recv,
-       .fn_recvfrom            = ipv4_recvfrom,
-       .fn_send                = ipv4_send,
-       .fn_sendto              = ipv4_sendto,
-       .fn_pending             = ipv4_pending,
-       .fn_close               = ipv4_close,
-
-       .fn_set_option          = ipv4_set_option,
-
-       .fn_get_peer_name       = ipv4_get_peer_name,
-       .fn_get_peer_addr       = ipv4_get_peer_addr,
-       .fn_get_my_addr         = ipv4_get_my_addr,
-       .fn_get_fd              = ipv4_get_fd
-};
-
-const struct socket_ops *socket_ipv4_ops(enum socket_type type)
-{
-       return &ipv4_ops;
-}
diff --git a/source/lib/socket/socket_ipv6.c b/source/lib/socket/socket_ipv6.c
deleted file mode 100644 (file)
index 8b86958..0000000
+++ /dev/null
@@ -1,527 +0,0 @@
-/* 
-   Unix SMB/CIFS implementation.
-   Socket IPv6 functions
-   Copyright (C) Stefan Metzmacher 2004
-   Copyright (C) Jelmer Vernooij 2004
-   
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-   
-   This program 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 General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "includes.h"
-#include "lib/socket/socket.h"
-#include "system/filesys.h" /* needed for close() */
-#include "system/network.h"
-
-static struct in6_addr interpret_addr6(const char *name)
-{
-       struct hostent *he;
-       
-       if (name == NULL) return in6addr_any;
-
-       if (strcasecmp(name, "localhost") == 0) {
-               name = "::1";
-       }
-
-       he = gethostbyname2(name, PF_INET6);
-
-       if (he == NULL) return in6addr_any;
-
-       return *((struct in6_addr *)he->h_addr);
-}
-
-static NTSTATUS ipv6_tcp_init(struct socket_context *sock)
-{
-       sock->fd = socket(PF_INET6, SOCK_STREAM, 0);
-       if (sock->fd == -1) {
-               return map_nt_error_from_unix(errno);
-       }
-
-       sock->backend_name = "ipv6";
-
-       return NT_STATUS_OK;
-}
-
-static void ipv6_tcp_close(struct socket_context *sock)
-{
-       close(sock->fd);
-}
-
-static NTSTATUS ipv6_tcp_connect_complete(struct socket_context *sock, uint32_t flags)
-{
-       int error=0, ret;
-       socklen_t len = sizeof(error);
-
-       /* check for any errors that may have occurred - this is needed
-          for non-blocking connect */
-       ret = getsockopt(sock->fd, SOL_SOCKET, SO_ERROR, &error, &len);
-       if (ret == -1) {
-               return map_nt_error_from_unix(errno);
-       }
-       if (error != 0) {
-               return map_nt_error_from_unix(error);
-       }
-
-       if (!(flags & SOCKET_FLAG_BLOCK)) {
-               ret = set_blocking(sock->fd, False);
-               if (ret == -1) {
-                       return map_nt_error_from_unix(errno);
-               }
-       }
-
-       sock->state = SOCKET_STATE_CLIENT_CONNECTED;
-
-       return NT_STATUS_OK;
-}
-
-static NTSTATUS ipv6_tcp_connect(struct socket_context *sock,
-                                const struct socket_address *my_address,
-                                const struct socket_address *srv_address,
-                                uint32_t flags)
-{
-       int ret;
-
-       if (my_address && my_address->sockaddr) {
-               ret = bind(sock->fd, my_address->sockaddr, my_address->sockaddrlen);
-               if (ret == -1) {
-                       return map_nt_error_from_unix(errno);
-               }
-       } else if (my_address) {
-               struct in6_addr my_ip;
-               my_ip = interpret_addr6(my_address->addr);
-
-               if (memcmp(&my_ip, &in6addr_any, sizeof(my_ip)) || my_address->port != 0) {
-                       struct sockaddr_in6 my_addr;
-                       ZERO_STRUCT(my_addr);
-                       my_addr.sin6_addr       = my_ip;
-                       my_addr.sin6_port       = htons(my_address->port);
-                       my_addr.sin6_family     = PF_INET6;
-                       
-                       ret = bind(sock->fd, (struct sockaddr *)&my_addr, sizeof(my_addr));
-                       if (ret == -1) {
-                               return map_nt_error_from_unix(errno);
-                       }
-               }
-       }
-
-       if (srv_address->sockaddr) {
-               ret = connect(sock->fd, srv_address->sockaddr, srv_address->sockaddrlen);
-       } else {
-               struct in6_addr srv_ip;
-               struct sockaddr_in6 srv_addr;
-               srv_ip = interpret_addr6(srv_address->addr);
-               if (memcmp(&srv_ip, &in6addr_any, sizeof(srv_ip)) == 0) {
-                       return NT_STATUS_BAD_NETWORK_NAME;
-               }
-               
-               ZERO_STRUCT(srv_addr);
-               srv_addr.sin6_addr      = srv_ip;
-               srv_addr.sin6_port      = htons(srv_address->port);
-               srv_addr.sin6_family    = PF_INET6;
-               
-               ret = connect(sock->fd, (const struct sockaddr *)&srv_addr, sizeof(srv_addr));
-       }
-       if (ret == -1) {
-               return map_nt_error_from_unix(errno);
-       }
-
-       return ipv6_tcp_connect_complete(sock, flags);
-}
-
-static NTSTATUS ipv6_tcp_listen(struct socket_context *sock,
-                               const struct socket_address *my_address,
-                               int queue_size, uint32_t flags)
-{
-       struct sockaddr_in6 my_addr;
-       struct in6_addr ip_addr;
-       int ret;
-
-       socket_set_option(sock, "SO_REUSEADDR=1", NULL);
-
-       if (my_address->sockaddr) {
-               ret = bind(sock->fd, my_address->sockaddr, my_address->sockaddrlen);
-       } else {
-               ip_addr = interpret_addr6(my_address->addr);
-               
-               ZERO_STRUCT(my_addr);
-               my_addr.sin6_addr       = ip_addr;
-               my_addr.sin6_port       = htons(my_address->port);
-               my_addr.sin6_family     = PF_INET6;
-               
-               ret = bind(sock->fd, (struct sockaddr *)&my_addr, sizeof(my_addr));
-       }
-
-       if (ret == -1) {
-               return map_nt_error_from_unix(errno);
-       }
-
-       if (sock->type == SOCKET_TYPE_STREAM) {
-               ret = listen(sock->fd, queue_size);
-               if (ret == -1) {
-                       return map_nt_error_from_unix(errno);
-               }
-       }
-
-       if (!(flags & SOCKET_FLAG_BLOCK)) {
-               ret = set_blocking(sock->fd, False);
-               if (ret == -1) {
-                       return map_nt_error_from_unix(errno);
-               }
-       }
-
-       sock->state= SOCKET_STATE_SERVER_LISTEN;
-
-       return NT_STATUS_OK;
-}
-
-static NTSTATUS ipv6_tcp_accept(struct socket_context *sock, struct socket_context **new_sock)
-{
-       struct sockaddr_in cli_addr;
-       socklen_t cli_addr_len = sizeof(cli_addr);
-       int new_fd;
-       
-       if (sock->type != SOCKET_TYPE_STREAM) {
-               return NT_STATUS_INVALID_PARAMETER;
-       }
-
-
-       new_fd = accept(sock->fd, (struct sockaddr *)&cli_addr, &cli_addr_len);
-       if (new_fd == -1) {
-               return map_nt_error_from_unix(errno);
-       }
-
-       if (!(sock->flags & SOCKET_FLAG_BLOCK)) {
-               int ret = set_blocking(new_fd, False);
-               if (ret == -1) {
-                       close(new_fd);
-                       return map_nt_error_from_unix(errno);
-               }
-       }
-
-       /* TODO: we could add a 'accept_check' hook here
-        *       which get the black/white lists via socket_set_accept_filter()
-        *       or something like that
-        *       --metze
-        */
-
-       (*new_sock) = talloc(NULL, struct socket_context);
-       if (!(*new_sock)) {
-               close(new_fd);
-               return NT_STATUS_NO_MEMORY;
-       }
-
-       /* copy the socket_context */
-       (*new_sock)->type               = sock->type;
-       (*new_sock)->state              = SOCKET_STATE_SERVER_CONNECTED;
-       (*new_sock)->flags              = sock->flags;
-
-       (*new_sock)->fd                 = new_fd;
-
-       (*new_sock)->private_data       = NULL;
-       (*new_sock)->ops                = sock->ops;
-       (*new_sock)->backend_name       = sock->backend_name;
-
-       return NT_STATUS_OK;
-}
-
-static NTSTATUS ipv6_tcp_recv(struct socket_context *sock, void *buf, 
-                             size_t wantlen, size_t *nread)
-{
-       ssize_t gotlen;
-
-       *nread = 0;
-
-       gotlen = recv(sock->fd, buf, wantlen, 0);
-       if (gotlen == 0) {
-               return NT_STATUS_END_OF_FILE;
-       } else if (gotlen == -1) {
-               return map_nt_error_from_unix(errno);
-       }
-
-       *nread = gotlen;
-
-       return NT_STATUS_OK;
-}
-
-static NTSTATUS ipv6_recvfrom(struct socket_context *sock, void *buf, 
-                             size_t wantlen, size_t *nread, 
-                             TALLOC_CTX *addr_ctx, struct socket_address **_src)
-{
-       ssize_t gotlen;
-       struct sockaddr_in6 *from_addr;
-       socklen_t from_len = sizeof(*from_addr);
-       struct socket_address *src;
-       struct hostent *he;
-       
-       src = talloc(addr_ctx, struct socket_address);
-       if (!src) {
-               return NT_STATUS_NO_MEMORY;
-       }
-       
-       src->family = sock->backend_name;
-
-       from_addr = talloc(src, struct sockaddr_in6);
-       if (!from_addr) {
-               talloc_free(src);
-               return NT_STATUS_NO_MEMORY;
-       }
-
-       src->sockaddr = (struct sockaddr *)from_addr;
-
-       *nread = 0;
-
-       gotlen = recvfrom(sock->fd, buf, wantlen, 0, 
-                         src->sockaddr, &from_len);
-       if (gotlen == 0) {
-               talloc_free(src);
-               return NT_STATUS_END_OF_FILE;
-       } else if (gotlen == -1) {
-               talloc_free(src);
-               return map_nt_error_from_unix(errno);
-       }
-
-       src->sockaddrlen = from_len;
-
-       he = gethostbyaddr((void *)&from_addr->sin6_addr, sizeof(from_addr->sin6_addr), AF_INET6);
-       if (he == NULL) {
-               talloc_free(src);
-               return NT_STATUS_INTERNAL_ERROR;
-       }
-       src->addr = talloc_strdup(src, he->h_name);
-       if (src->addr == NULL) {
-               talloc_free(src);
-               return NT_STATUS_NO_MEMORY;
-       }
-       src->port = ntohs(from_addr->sin6_port);
-
-       *nread  = gotlen;
-       *_src   = src;
-       return NT_STATUS_OK;
-}
-
-static NTSTATUS ipv6_tcp_send(struct socket_context *sock, 
-                             const DATA_BLOB *blob, size_t *sendlen)
-{
-       ssize_t len;
-
-       *sendlen = 0;
-
-       len = send(sock->fd, blob->data, blob->length, 0);
-       if (len == -1) {
-               return map_nt_error_from_unix(errno);
-       }       
-
-       *sendlen = len;
-
-       return NT_STATUS_OK;
-}
-
-static NTSTATUS ipv6_sendto(struct socket_context *sock, 
-                           const DATA_BLOB *blob, size_t *sendlen, 
-                           const struct socket_address *dest_addr)
-{
-       ssize_t len;
-
-       if (dest_addr->sockaddr) {
-               len = sendto(sock->fd, blob->data, blob->length, 0, 
-                            dest_addr->sockaddr, dest_addr->sockaddrlen);
-       } else {
-               struct sockaddr_in6 srv_addr;
-               struct in6_addr addr;
-               
-               ZERO_STRUCT(srv_addr);
-               addr                     = interpret_addr6(dest_addr->addr);
-               if (addr.s6_addr == 0) {
-                       return NT_STATUS_HOST_UNREACHABLE;
-               }
-               srv_addr.sin6_addr = addr;
-               srv_addr.sin6_port        = htons(dest_addr->port);
-               srv_addr.sin6_family      = PF_INET6;
-               
-               *sendlen = 0;
-               
-               len = sendto(sock->fd, blob->data, blob->length, 0, 
-                            (struct sockaddr *)&srv_addr, sizeof(srv_addr));
-       }
-       if (len == -1) {
-               return map_nt_error_from_unix(errno);
-       }       
-
-       *sendlen = len;
-
-       return NT_STATUS_OK;
-}
-
-static NTSTATUS ipv6_tcp_set_option(struct socket_context *sock, const char *option, const char *val)
-{
-       set_socket_options(sock->fd, option);
-       return NT_STATUS_OK;
-}
-
-static char *ipv6_tcp_get_peer_name(struct socket_context *sock, TALLOC_CTX *mem_ctx)
-{
-       struct sockaddr_in6 peer_addr;
-       socklen_t len = sizeof(peer_addr);
-       struct hostent *he;
-       int ret;
-
-       ret = getpeername(sock->fd, (struct sockaddr *)&peer_addr, &len);
-       if (ret == -1) {
-               return NULL;
-       }
-
-       he = gethostbyaddr((char *)&peer_addr.sin6_addr, sizeof(peer_addr.sin6_addr), AF_INET6);
-       if (he == NULL) {
-               return NULL;
-       }
-
-       return talloc_strdup(mem_ctx, he->h_name);
-}
-
-static struct socket_address *ipv6_tcp_get_peer_addr(struct socket_context *sock, TALLOC_CTX *mem_ctx)
-{
-       struct sockaddr_in6 *peer_addr;
-       socklen_t len = sizeof(*peer_addr);
-       struct socket_address *peer;
-       int ret;
-       char addr[128];
-       const char *addr_ret;
-       
-       peer = talloc(mem_ctx, struct socket_address);
-       if (!peer) {
-               return NULL;
-       }
-       
-       peer->family = sock->backend_name;
-       peer_addr = talloc(peer, struct sockaddr_in6);
-       if (!peer_addr) {
-               talloc_free(peer);
-               return NULL;
-       }
-
-       peer->sockaddr = (struct sockaddr *)peer_addr;
-
-       ret = getpeername(sock->fd, peer->sockaddr, &len);
-       if (ret == -1) {
-               talloc_free(peer);
-               return NULL;
-       }
-
-       peer->sockaddrlen = len;
-
-       addr_ret = inet_ntop(AF_INET6, &peer_addr->sin6_addr, addr, sizeof(addr));
-       if (addr_ret == NULL) {
-               talloc_free(peer);
-               return NULL;
-       }
-
-       peer->addr = talloc_strdup(peer, addr_ret);
-       if (peer->addr == NULL) {
-               talloc_free(peer);
-               return NULL;
-       }
-
-       peer->port = ntohs(peer_addr->sin6_port);
-
-       return peer;
-}
-
-static struct socket_address *ipv6_tcp_get_my_addr(struct socket_context *sock, TALLOC_CTX *mem_ctx)
-{
-       struct sockaddr_in6 *local_addr;
-       socklen_t len = sizeof(*local_addr);
-       struct socket_address *local;
-       int ret;
-       struct hostent *he;
-       
-       local = talloc(mem_ctx, struct socket_address);
-       if (!local) {
-               return NULL;
-       }
-       
-       local->family = sock->backend_name;
-       local_addr = talloc(local, struct sockaddr_in6);
-       if (!local_addr) {
-               talloc_free(local);
-               return NULL;
-       }
-
-       local->sockaddr = (struct sockaddr *)local_addr;
-
-       ret = getsockname(sock->fd, local->sockaddr, &len);
-       if (ret == -1) {
-               talloc_free(local);
-               return NULL;
-       }
-
-       local->sockaddrlen = len;
-
-       he = gethostbyaddr((char *)&local_addr->sin6_addr, len, AF_INET6);
-
-       if (!he || !he->h_name) {
-               talloc_free(local);
-               return NULL;
-       }
-       
-       local->addr = talloc_strdup(mem_ctx, he->h_name);
-       if (!local->addr) {
-               talloc_free(local);
-               return NULL;
-       }
-       local->port = ntohs(local_addr->sin6_port);
-
-       return local;
-}
-
-static int ipv6_tcp_get_fd(struct socket_context *sock)
-{
-       return sock->fd;
-}
-
-static NTSTATUS ipv6_pending(struct socket_context *sock, size_t *npending)
-{
-       int value = 0;
-       if (ioctl(sock->fd, FIONREAD, &value) == 0) {
-               *npending = value;
-               return NT_STATUS_OK;
-       }
-       return map_nt_error_from_unix(errno);
-}
-
-static const struct socket_ops ipv6_tcp_ops = {
-       .name                   = "ipv6",
-       .fn_init                = ipv6_tcp_init,
-       .fn_connect             = ipv6_tcp_connect,
-       .fn_connect_complete    = ipv6_tcp_connect_complete,
-       .fn_listen              = ipv6_tcp_listen,
-       .fn_accept              = ipv6_tcp_accept,
-       .fn_recv                = ipv6_tcp_recv,
-       .fn_recvfrom    = ipv6_recvfrom,
-       .fn_sendto              = ipv6_sendto,
-       .fn_send                = ipv6_tcp_send,
-       .fn_close               = ipv6_tcp_close,
-       .fn_pending             = ipv6_pending,
-
-       .fn_set_option          = ipv6_tcp_set_option,
-
-       .fn_get_peer_name       = ipv6_tcp_get_peer_name,
-       .fn_get_peer_addr       = ipv6_tcp_get_peer_addr,
-       .fn_get_my_addr         = ipv6_tcp_get_my_addr,
-
-       .fn_get_fd              = ipv6_tcp_get_fd
-};
-
-const struct socket_ops *socket_ipv6_ops(enum socket_type type)
-{
-       return &ipv6_tcp_ops;
-}
index 7686fea1d81947745ee2c7675ab2ae838265c3ad..cac4b8e913663c1e183b7db996ced7d0dba00907 100644 (file)
@@ -82,7 +82,7 @@ static NTSTATUS unixdom_connect_complete(struct socket_context *sock, uint32_t f
        }
 
        if (!(flags & SOCKET_FLAG_BLOCK)) {
-               ret = set_blocking(sock->fd, False);
+               ret = set_blocking(sock->fd, false);
                if (ret == -1) {
                        return map_nt_error_from_unix(errno);
                }
@@ -161,7 +161,7 @@ static NTSTATUS unixdom_listen(struct socket_context *sock,
        }
 
        if (!(flags & SOCKET_FLAG_BLOCK)) {
-               ret = set_blocking(sock->fd, False);
+               ret = set_blocking(sock->fd, false);
                if (ret == -1) {
                        return unixdom_error(errno);
                }
@@ -190,7 +190,7 @@ static NTSTATUS unixdom_accept(struct socket_context *sock,
        }
 
        if (!(sock->flags & SOCKET_FLAG_BLOCK)) {
-               int ret = set_blocking(new_fd, False);
+               int ret = set_blocking(new_fd, false);
                if (ret == -1) {
                        close(new_fd);
                        return map_nt_error_from_unix(errno);
index ec074ecaeb08e9113e2016c4146f76145542f177..c13cb6a3b08ef05b54987cb2b71ed89b5af1edf1 100644 (file)
@@ -1288,7 +1288,7 @@ _PUBLIC_ int swrap_accept(int s, struct sockaddr *addr, socklen_t *addrlen)
                return -1;
        }
 
-       my_addr = malloc(my_addrlen);
+       my_addr = (struct sockaddr *)malloc(my_addrlen);
        if (my_addr == NULL) {
                return -1;
        }
index fd1e48610b7937dd5b1898958fa05797cfce5bcb..cc8b93760864d69db27ec7f02f2303283b721c94 100644 (file)
@@ -37,6 +37,7 @@
 #define __SOCKET_WRAPPER_H__
 
 const char *socket_wrapper_dir(void);
+unsigned int socket_wrapper_default_iface(void);
 int swrap_socket(int family, int type, int protocol);
 int swrap_accept(int s, struct sockaddr *addr, socklen_t *addrlen);
 int swrap_connect(int s, const struct sockaddr *serv_addr, socklen_t addrlen);
@@ -131,4 +132,5 @@ int swrap_close(int);
 #define close(s)                       swrap_close(s)
 #endif
 
+
 #endif /* __SOCKET_WRAPPER_H__ */
index e6cfae7bd69d0358fda46a4c94963255153f7718..51021c1fc619da4d906b6ae85b6907cc5ebce104 100644 (file)
@@ -39,13 +39,13 @@ struct packet_context {
        size_t packet_size;
        void *private;
        struct fd_event *fde;
-       BOOL serialise;
+       bool serialise;
        int processing;
-       BOOL recv_disable;
-       BOOL nofree;
+       bool recv_disable;
+       bool nofree;
 
-       BOOL busy;
-       BOOL destructor_called;
+       bool busy;
+       bool destructor_called;
 
        struct send_element {
                struct send_element *next, *prev;
@@ -63,7 +63,7 @@ struct packet_context {
 static int packet_destructor(struct packet_context *pc)
 {
        if (pc->busy) {
-               pc->destructor_called = True;
+               pc->destructor_called = true;
                /* now we refuse the talloc_free() request. The free will
                   happen again in the packet_recv() code */
                return -1;
@@ -156,7 +156,7 @@ _PUBLIC_ void packet_set_fde(struct packet_context *pc, struct fd_event *fde)
 */
 _PUBLIC_ void packet_set_serialise(struct packet_context *pc)
 {
-       pc->serialise = True;
+       pc->serialise = true;
 }
 
 /*
@@ -173,7 +173,7 @@ _PUBLIC_ void packet_set_initial_read(struct packet_context *pc, uint32_t initia
 */
 _PUBLIC_ void packet_set_nofree(struct packet_context *pc)
 {
-       pc->nofree = True;
+       pc->nofree = true;
 }
 
 
@@ -373,11 +373,11 @@ next_partial:
                pc->processing = 1;
        }
 
-       pc->busy = True;
+       pc->busy = true;
 
        status = pc->callback(pc->private, blob);
 
-       pc->busy = False;
+       pc->busy = false;
 
        if (pc->destructor_called) {
                talloc_free(pc);
@@ -429,7 +429,7 @@ next_partial:
 _PUBLIC_ void packet_recv_disable(struct packet_context *pc)
 {
        EVENT_FD_NOT_READABLE(pc->fde);
-       pc->recv_disable = True;
+       pc->recv_disable = true;
 }
 
 /*
@@ -438,7 +438,7 @@ _PUBLIC_ void packet_recv_disable(struct packet_context *pc)
 _PUBLIC_ void packet_recv_enable(struct packet_context *pc)
 {
        EVENT_FD_READABLE(pc->fde);
-       pc->recv_disable = False;
+       pc->recv_disable = false;
        if (pc->num_read != 0 && pc->packet_size >= pc->num_read) {
                event_add_timed(pc->ev, pc, timeval_zero(), packet_next_event, pc);
        }
index 0f138aafcda73a2fd1963b2c2c23abd3b26d7b55..714ad72d1cdbee8e985c3d1f3f6d4ecddf980a60 100644 (file)
@@ -5,7 +5,7 @@ VERSION = 0.0.1
 SO_VERSION = 0
 OBJ_FILES = talloc.o
 MANPAGE = talloc.3
-CFLAGS = -I$(srcdir)/lib/talloc
+CFLAGS = -Ilib/talloc
 PUBLIC_HEADERS = talloc.h
 DESCRIPTION = A hierarchical pool based memory system with destructors
 #
index e1e84b25c3c65f5ec3730453dc6951eefc3b5cac..afc2a944f018ee5e83d8a22cf33b94ae6d2ee0ae 100644 (file)
@@ -1,5 +1,5 @@
 AC_PREREQ(2.50)
-AC_INIT(talloc, 1.0.1)
+AC_INIT(talloc, 1.1.0)
 AC_CONFIG_SRCDIR([talloc.c])
 AC_SUBST(datarootdir)
 AC_CONFIG_HEADER(config.h)
index c073a8c77432d72c931cb04f1acdbc7e9c397718..4d72c0e871a2d190d37a5021aaa40e3e629250bd 100644 (file)
@@ -1109,64 +1109,132 @@ void *_talloc_memdup(const void *t, const void *p, size_t size, const char *name
        return newp;
 }
 
+static inline char *__talloc_strlendup(const void *t, const char *p, size_t len)
+{
+       char *ret;
+
+       ret = (char *)__talloc(t, len + 1);
+       if (unlikely(!ret)) return NULL;
+
+       memcpy(ret, p, len);
+       ret[len] = 0;
+
+       _talloc_set_name_const(ret, ret);
+       return ret;
+}
+
 /*
-  strdup with a talloc 
+  strdup with a talloc
 */
 char *talloc_strdup(const void *t, const char *p)
+{
+       if (unlikely(!p)) return NULL;
+       return __talloc_strlendup(t, p, strlen(p));
+}
+
+/*
+  strndup with a talloc
+*/
+char *talloc_strndup(const void *t, const char *p, size_t n)
+{
+       if (unlikely(!p)) return NULL;
+       return __talloc_strlendup(t, p, strnlen(p, n));
+}
+
+static inline char *__talloc_strlendup_append(char *s, size_t slen,
+                                             const char *a, size_t alen)
 {
        char *ret;
-       if (!p) {
-               return NULL;
+
+       ret = talloc_realloc(NULL, s, char, slen + alen + 1);
+       if (unlikely(!ret)) return NULL;
+
+       /* append the string and the trailing \0 */
+       memcpy(&ret[slen], a, alen);
+       ret[slen+alen] = 0;
+
+       _talloc_set_name_const(ret, ret);
+       return ret;
+}
+
+/*
+ * Appends at the end of the string.
+ */
+char *talloc_strdup_append(char *s, const char *a)
+{
+       if (unlikely(!s)) {
+               return talloc_strdup(NULL, a);
        }
-       ret = (char *)talloc_memdup(t, p, strlen(p) + 1);
-       if (likely(ret)) {
-               _talloc_set_name_const(ret, ret);
+
+       if (unlikely(!a)) {
+               return s;
        }
-       return ret;
+
+       return __talloc_strlendup_append(s, strlen(s), a, strlen(a));
 }
 
 /*
- append to a talloced string 
-*/
-char *talloc_append_string(const void *t, char *orig, const char *append)
+ * Appends at the end of the talloc'ed buffer,
+ * not the end of the string.
+ */
+char *talloc_strdup_append_buffer(char *s, const char *a)
 {
-       char *ret;
-       size_t olen = strlen(orig);
-       size_t alenz;
+       size_t slen;
 
-       if (!append)
-               return orig;
+       if (unlikely(!s)) {
+               return talloc_strdup(NULL, a);
+       }
 
-       alenz = strlen(append) + 1;
+       if (unlikely(!a)) {
+               return s;
+       }
 
-       ret = talloc_realloc(t, orig, char, olen + alenz);
-       if (!ret)
-               return NULL;
+       slen = talloc_get_size(s);
+       if (likely(slen > 0)) {
+               slen--;
+       }
 
-       /* append the string with the trailing \0 */
-       memcpy(&ret[olen], append, alenz);
+       return __talloc_strlendup_append(s, slen, a, strlen(a));
+}
 
-       _talloc_set_name_const(ret, ret);
+/*
+ * Appends at the end of the string.
+ */
+char *talloc_strndup_append(char *s, const char *a, size_t n)
+{
+       if (unlikely(!s)) {
+               return talloc_strdup(NULL, a);
+       }
 
-       return ret;
+       if (unlikely(!a)) {
+               return s;
+       }
+
+       return __talloc_strlendup_append(s, strlen(s), a, strnlen(a, n));
 }
 
 /*
-  strndup with a talloc 
-*/
-char *talloc_strndup(const void *t, const char *p, size_t n)
+ * Appends at the end of the talloc'ed buffer,
+ * not the end of the string.
+ */
+char *talloc_strndup_append_buffer(char *s, const char *a, size_t n)
 {
-       size_t len;
-       char *ret;
+       size_t slen;
 
-       for (len=0; len<n && p[len]; len++) ;
+       if (unlikely(!s)) {
+               return talloc_strdup(NULL, a);
+       }
 
-       ret = (char *)__talloc(t, len + 1);
-       if (!ret) { return NULL; }
-       memcpy(ret, p, len);
-       ret[len] = 0;
-       _talloc_set_name_const(ret, ret);
-       return ret;
+       if (unlikely(!a)) {
+               return s;
+       }
+
+       slen = talloc_get_size(s);
+       if (likely(slen > 0)) {
+               slen--;
+       }
+
+       return __talloc_strlendup_append(s, slen, a, strnlen(a, n));
 }
 
 #ifndef HAVE_VA_COPY
@@ -1188,18 +1256,18 @@ char *talloc_vasprintf(const void *t, const char *fmt, va_list ap)
        va_copy(ap2, ap);
        len = vsnprintf(&c, 1, fmt, ap2);
        va_end(ap2);
-       if (len < 0) {
+       if (unlikely(len < 0)) {
                return NULL;
        }
 
        ret = (char *)__talloc(t, len+1);
-       if (ret) {
-               va_copy(ap2, ap);
-               vsnprintf(ret, len+1, fmt, ap2);
-               va_end(ap2);
-               _talloc_set_name_const(ret, ret);
-       }
+       if (unlikely(!ret)) return NULL;
+
+       va_copy(ap2, ap);
+       vsnprintf(ret, len+1, fmt, ap2);
+       va_end(ap2);
 
+       _talloc_set_name_const(ret, ret);
        return ret;
 }
 
@@ -1219,52 +1287,78 @@ char *talloc_asprintf(const void *t, const char *fmt, ...)
        return ret;
 }
 
+static inline char *__talloc_vaslenprintf_append(char *s, size_t slen,
+                                                const char *fmt, va_list ap)
+                                                PRINTF_ATTRIBUTE(3,0);
 
-/**
- * Realloc @p s to append the formatted result of @p fmt and @p ap,
- * and return @p s, which may have moved.  Good for gradually
- * accumulating output into a string buffer.
- **/
-char *talloc_vasprintf_append(char *s, const char *fmt, va_list ap)
-{      
-       struct talloc_chunk *tc;
-       int len, s_len;
+static inline char *__talloc_vaslenprintf_append(char *s, size_t slen,
+                                                const char *fmt, va_list ap)
+{
+       ssize_t alen;
        va_list ap2;
        char c;
 
-       if (s == NULL) {
-               return talloc_vasprintf(NULL, fmt, ap);
-       }
-
-       tc = talloc_chunk_from_ptr(s);
-
-       s_len = tc->size - 1;
-
        va_copy(ap2, ap);
-       len = vsnprintf(&c, 1, fmt, ap2);
+       alen = vsnprintf(&c, 1, fmt, ap2);
        va_end(ap2);
 
-       if (len <= 0) {
+       if (alen <= 0) {
                /* Either the vsnprintf failed or the format resulted in
                 * no characters being formatted. In the former case, we
                 * ought to return NULL, in the latter we ought to return
-                * the original string. Most current callers of this 
+                * the original string. Most current callers of this
                 * function expect it to never return NULL.
                 */
                return s;
        }
 
-       s = talloc_realloc(NULL, s, char, s_len + len+1);
+       s = talloc_realloc(NULL, s, char, slen + alen + 1);
        if (!s) return NULL;
 
        va_copy(ap2, ap);
-       vsnprintf(s+s_len, len+1, fmt, ap2);
+       vsnprintf(s + slen, alen + 1, fmt, ap2);
        va_end(ap2);
-       _talloc_set_name_const(s, s);
 
+       _talloc_set_name_const(s, s);
        return s;
 }
 
+/**
+ * Realloc @p s to append the formatted result of @p fmt and @p ap,
+ * and return @p s, which may have moved.  Good for gradually
+ * accumulating output into a string buffer. Appends at the end
+ * of the string.
+ **/
+char *talloc_vasprintf_append(char *s, const char *fmt, va_list ap)
+{
+       if (unlikely(!s)) {
+               return talloc_vasprintf(NULL, fmt, ap);
+       }
+
+       return __talloc_vaslenprintf_append(s, strlen(s), fmt, ap);
+}
+
+/**
+ * Realloc @p s to append the formatted result of @p fmt and @p ap,
+ * and return @p s, which may have moved. Always appends at the
+ * end of the talloc'ed buffer, not the end of the string.
+ **/
+char *talloc_vasprintf_append_buffer(char *s, const char *fmt, va_list ap)
+{
+       size_t slen;
+
+       if (unlikely(!s)) {
+               return talloc_vasprintf(NULL, fmt, ap);
+       }
+
+       slen = talloc_get_size(s);
+       if (likely(slen > 0)) {
+               slen--;
+       }
+
+       return __talloc_vaslenprintf_append(s, slen, fmt, ap);
+}
+
 /*
   Realloc @p s to append the formatted result of @p fmt and return @p
   s, which may have moved.  Good for gradually accumulating output
@@ -1280,6 +1374,21 @@ char *talloc_asprintf_append(char *s, const char *fmt, ...)
        return s;
 }
 
+/*
+  Realloc @p s to append the formatted result of @p fmt and return @p
+  s, which may have moved.  Good for gradually accumulating output
+  into a buffer.
+ */
+char *talloc_asprintf_append_buffer(char *s, const char *fmt, ...)
+{
+       va_list ap;
+
+       va_start(ap, fmt);
+       s = talloc_vasprintf_append_buffer(s, fmt, ap);
+       va_end(ap);
+       return s;
+}
+
 /*
   alloc an array, checking for integer overflow in the array size
 */
index 15130d0d9824743ad28fbe7c55c0fdbdfda2eb2b..e1033916817d86b913393824a8a711e30acc6968 100644 (file)
@@ -111,6 +111,7 @@ typedef void TALLOC_CTX;
 #define talloc_array_p(ctx, type, count) talloc_array(ctx, type, count)
 #define talloc_realloc_p(ctx, p, type, count) talloc_realloc(ctx, p, type, count)
 #define talloc_destroy(ctx) talloc_free(ctx)
+#define talloc_append_string(c, s, a) (s?talloc_strdup_append(s,a):talloc_strdup(c, a))
 #endif
 
 /* The following definitions come from talloc.c  */
@@ -152,13 +153,6 @@ void talloc_enable_leak_report(void);
 void talloc_enable_leak_report_full(void);
 void *_talloc_zero(const void *ctx, size_t size, const char *name);
 void *_talloc_memdup(const void *t, const void *p, size_t size, const char *name);
-char *talloc_strdup(const void *t, const char *p);
-char *talloc_strndup(const void *t, const char *p, size_t n);
-char *talloc_append_string(const void *t, char *orig, const char *append);
-char *talloc_vasprintf(const void *t, const char *fmt, va_list ap) PRINTF_ATTRIBUTE(2,0);
-char *talloc_vasprintf_append(char *s, const char *fmt, va_list ap) PRINTF_ATTRIBUTE(2,0);
-char *talloc_asprintf(const void *t, const char *fmt, ...) PRINTF_ATTRIBUTE(2,3);
-char *talloc_asprintf_append(char *s, const char *fmt, ...) PRINTF_ATTRIBUTE(2,3);
 void *_talloc_array(const void *ctx, size_t el_size, unsigned count, const char *name);
 void *_talloc_zero_array(const void *ctx, size_t el_size, unsigned count, const char *name);
 void *_talloc_realloc_array(const void *ctx, void *ptr, size_t el_size, unsigned count, const char *name);
@@ -169,4 +163,20 @@ void *talloc_find_parent_byname(const void *ctx, const char *name);
 void talloc_show_parents(const void *context, FILE *file);
 int talloc_is_parent(const void *context, const void *ptr);
 
+char *talloc_strdup(const void *t, const char *p);
+char *talloc_strdup_append(char *s, const char *a);
+char *talloc_strdup_append_buffer(char *s, const char *a);
+
+char *talloc_strndup(const void *t, const char *p, size_t n);
+char *talloc_strndup_append(char *s, const char *a, size_t n);
+char *talloc_strndup_append_buffer(char *s, const char *a, size_t n);
+
+char *talloc_vasprintf(const void *t, const char *fmt, va_list ap) PRINTF_ATTRIBUTE(2,0);
+char *talloc_vasprintf_append(char *s, const char *fmt, va_list ap) PRINTF_ATTRIBUTE(2,0);
+char *talloc_vasprintf_append_buffer(char *s, const char *fmt, va_list ap) PRINTF_ATTRIBUTE(2,0);
+
+char *talloc_asprintf(const void *t, const char *fmt, ...) PRINTF_ATTRIBUTE(2,3);
+char *talloc_asprintf_append(char *s, const char *fmt, ...) PRINTF_ATTRIBUTE(2,3);
+char *talloc_asprintf_append_buffer(char *s, const char *fmt, ...) PRINTF_ATTRIBUTE(2,3);
+
 #endif
index c4634ae19a9192533d85d54c342d00668f4b6a8f..18663b370d9dc4d8b9aaeae28ef40655cd4d97c4 100644 (file)
@@ -568,8 +568,23 @@ string. This is equivalent to:
 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 char *talloc_asprintf_append(char *s, const char *fmt, ...);
 
+The talloc_asprintf_append() function appends the given formatted
+string to the given string.
+Use this varient when the string in the current talloc buffer may
+have been truncated in length.
+
+This functions sets the name of the new pointer to the new
+string. This is equivalent to:
+   talloc_set_name_const(ptr, ptr)
+
+
+=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+char *talloc_asprintf_append_buffer(char *s, const char *fmt, ...);
+
 The talloc_asprintf_append() function appends the given formatted 
-string to the given string. 
+string to the end of the currently allocated talloc buffer.
+Use this varient when the string in the current talloc buffer has
+not been changed.
 
 This functions sets the name of the new pointer to the new
 string. This is equivalent to:
@@ -577,7 +592,7 @@ string. This is equivalent to:
 
 
 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-(type *)talloc_array(const void *ctx, type, uint_t count);
+((type *)talloc_array(const void *ctx, type, uint_t count);
 
 The talloc_array() macro is equivalent to:
 
index ddf6865b1a5621a61e580c3df00d916bbe2c157a..e16c91f8b9c27cb0b3f308ff42a2d13ae5413eb4 100644 (file)
@@ -419,15 +419,15 @@ static bool test_misc(void)
        p2 = talloc_strndup(p1, "foo", 2);
        torture_assert("misc", strcmp("fo", p2) == 0, 
                                   "strndup doesn't work\n");
-       p2 = talloc_asprintf_append(p2, "o%c", 'd');
+       p2 = talloc_asprintf_append_buffer(p2, "o%c", 'd');
        torture_assert("misc", strcmp("food", p2) == 0, 
-                                  "talloc_asprintf_append doesn't work\n");
+                                  "talloc_asprintf_append_buffer doesn't work\n");
        CHECK_BLOCKS("misc", p2, 1);
        CHECK_BLOCKS("misc", p1, 3);
 
-       p2 = talloc_asprintf_append(NULL, "hello %s", "world");
+       p2 = talloc_asprintf_append_buffer(NULL, "hello %s", "world");
        torture_assert("misc", strcmp("hello world", p2) == 0,
-               "talloc_asprintf_append doesn't work\n");
+               "talloc_asprintf_append_buffer doesn't work\n");
        CHECK_BLOCKS("misc", p2, 1);
        CHECK_BLOCKS("misc", p1, 3);
        talloc_free(p2);
index 529d0753d11a5dd6429da7db12e430bc3fa38148..d1a506e69c0460a18b5911c475c9019a382c3b6f 100644 (file)
@@ -69,7 +69,7 @@ class Tdb:
         tdb_delete(self.tdb, key)
 
     def has_key(self, key):
-        return tdb_exists(self.tdb, key)
+        return tdb_exists(self.tdb, key) != 0
 
     # Tdb iterator
 
@@ -113,3 +113,7 @@ class Tdb:
     def clear(self):
         for k in iter(self):
             del(self[k])
+
+    # TODO: iterkeys, itervalues, iteritems
+
+    # TODO: any other missing methods for container types
index fbb0f29dec15a6c965c9a8b56eb9aa215c9ec81a..1ff21f53b51321c59b463f396b4dd837f70e429d 100644 (file)
@@ -102,7 +102,21 @@ typedef int mode_t;
 #define TDB_CONVERT 16 /* convert endian (internal use) */
 #define TDB_BIGENDIAN 32 /* header is big-endian (internal use) */
 
-/* Throw an IOError exception if tdb_open() or tdb_open_ex() returns NULL */
+enum TDB_ERROR {
+     TDB_SUCCESS=0, 
+     TDB_ERR_CORRUPT, 
+     TDB_ERR_IO, 
+     TDB_ERR_LOCK, 
+     TDB_ERR_OOM, 
+     TDB_ERR_EXISTS, 
+     TDB_ERR_NOLOCK, 
+     TDB_ERR_LOCK_TIMEOUT,
+     TDB_ERR_NOEXIST, 
+     TDB_ERR_EINVAL, 
+     TDB_ERR_RDONLY
+};
+
+/* Throw an IOError exception from errno if tdb_open() returns NULL */
 
 %exception {
        $action
@@ -115,19 +129,8 @@ typedef int mode_t;
 TDB_CONTEXT *tdb_open(const char *name, int hash_size, int tdb_flags,
                      int open_flags, mode_t mode);
 
-TDB_CONTEXT *tdb_open_ex(const char *name, int hash_size, int tdb_flags,
-                        int open_flags, mode_t mode,
-                        tdb_log_func log_fn,
-                        tdb_hash_func hash_fn);
-
 %exception;
 
-int tdb_reopen(TDB_CONTEXT *tdb);
-
-int tdb_reopen_all(int parent_longlived);
-
-void tdb_logging_function(TDB_CONTEXT *tdb, tdb_log_func);
-
 enum TDB_ERROR tdb_error(TDB_CONTEXT *tdb);
 
 const char *tdb_errorstr(TDB_CONTEXT *tdb);
@@ -146,22 +149,4 @@ TDB_DATA tdb_firstkey(TDB_CONTEXT *tdb);
 
 TDB_DATA tdb_nextkey(TDB_CONTEXT *tdb, TDB_DATA key);
 
-int tdb_traverse(TDB_CONTEXT *tdb, tdb_traverse_func fn, void *state);
-
 int tdb_exists(TDB_CONTEXT *tdb, TDB_DATA key);
-
-int tdb_lockall(TDB_CONTEXT *tdb);
-
-void tdb_unlockall(TDB_CONTEXT *tdb);
-
-/* Low level locking functions: use with care */
-
-int tdb_chainlock(TDB_CONTEXT *tdb, TDB_DATA key);
-
-int tdb_chainunlock(TDB_CONTEXT *tdb, TDB_DATA key);
-
-/* Debug functions. Not used in production. */
-
-void tdb_dump_all(TDB_CONTEXT *tdb);
-
-int tdb_printfreelist(TDB_CONTEXT *tdb);
index 14a2b48cdc78d4bf5e4d215b1f2cd354e08312cc..ca71c736ad425a8cebe2264b35826a14443d679f 100644 (file)
@@ -238,7 +238,7 @@ static void usage(void)
 
        unlink("torture.tdb");
 
-       pids = calloc(sizeof(pid_t), num_procs);
+       pids = (pid_t *)calloc(sizeof(pid_t), num_procs);
        pids[0] = getpid();
 
        for (i=0;i<num_procs-1;i++) {
index bfe144a0115e70d13fd06d74e3fdc3d5511d4a77..4a8357d93ba0b15b10446b2aeff548ebcb77524a 100644 (file)
@@ -24,6 +24,8 @@
 #include "includes.h"
 #include "lib/events/events.h"
 #include "lib/socket/socket.h"
+#include "lib/tls/tls.h"
+#include "param/param.h"
 
 #if ENABLE_GNUTLS
 #include "gnutls/gnutls.h"
@@ -38,7 +40,7 @@ typedef gnutls_datum gnutls_datum_t;
 struct tls_params {
        gnutls_certificate_credentials x509_cred;
        gnutls_dh_params dh_params;
-       BOOL tls_enabled;
+       bool tls_enabled;
 };
 #endif
 
@@ -46,32 +48,32 @@ struct tls_params {
 struct tls_context {
        struct socket_context *socket;
        struct fd_event *fde;
-       BOOL tls_enabled;
+       bool tls_enabled;
 #if ENABLE_GNUTLS
        gnutls_session session;
-       BOOL done_handshake;
-       BOOL have_first_byte;
+       bool done_handshake;
+       bool have_first_byte;
        uint8_t first_byte;
-       BOOL tls_detect;
+       bool tls_detect;
        const char *plain_chars;
-       BOOL output_pending;
+       bool output_pending;
        gnutls_certificate_credentials xcred;
-       BOOL interrupted;
+       bool interrupted;
 #endif
 };
 
-BOOL tls_enabled(struct socket_context *sock)
+bool tls_enabled(struct socket_context *sock)
 {
        struct tls_context *tls;
        if (!sock) {
-               return False;
+               return false;
        }
        if (strcmp(sock->backend_name, "tls") != 0) {
-               return False;
+               return false;
        }
        tls = talloc_get_type(sock->private_data, struct tls_context);
        if (!tls) {
-               return False;
+               return false;
        }
        return tls->tls_enabled;
 }
@@ -115,7 +117,7 @@ static ssize_t tls_pull(gnutls_transport_ptr ptr, void *buf, size_t size)
        
        if (tls->have_first_byte) {
                *(uint8_t *)buf = tls->first_byte;
-               tls->have_first_byte = False;
+               tls->have_first_byte = false;
                return 1;
        }
 
@@ -211,7 +213,7 @@ static NTSTATUS tls_handshake(struct tls_context *tls)
                DEBUG(0,("TLS gnutls_handshake failed - %s\n", gnutls_strerror(ret)));
                return NT_STATUS_UNEXPECTED_NETWORK_ERROR;
        }
-       tls->done_handshake = True;
+       tls->done_handshake = true;
        return NT_STATUS_OK;
 }
 
@@ -233,7 +235,7 @@ static NTSTATUS tls_interrupted(struct tls_context *tls)
        if (ret == GNUTLS_E_INTERRUPTED || ret == GNUTLS_E_AGAIN) {
                return STATUS_MORE_ENTRIES;
        }
-       tls->interrupted = False;
+       tls->interrupted = false;
        return NT_STATUS_OK;
 }
 
@@ -272,15 +274,15 @@ static NTSTATUS tls_socket_recv(struct socket_context *sock, void *buf,
                status = socket_recv(tls->socket, &tls->first_byte, 1, nread);
                NT_STATUS_NOT_OK_RETURN(status);
                if (*nread == 0) return NT_STATUS_OK;
-               tls->tls_detect = False;
+               tls->tls_detect = false;
                /* look for the first byte of a valid HTTP operation */
                if (strchr(tls->plain_chars, tls->first_byte)) {
                        /* not a tls link */
-                       tls->tls_enabled = False;
+                       tls->tls_enabled = false;
                        *(uint8_t *)buf = tls->first_byte;
                        return NT_STATUS_OK;
                }
-               tls->have_first_byte = True;
+               tls->have_first_byte = true;
        }
 
        if (!tls->tls_enabled) {
@@ -298,7 +300,7 @@ static NTSTATUS tls_socket_recv(struct socket_context *sock, void *buf,
                if (gnutls_record_get_direction(tls->session) == 1) {
                        EVENT_FD_WRITEABLE(tls->fde);
                }
-               tls->interrupted = True;
+               tls->interrupted = true;
                return STATUS_MORE_ENTRIES;
        }
        if (ret < 0) {
@@ -334,7 +336,7 @@ static NTSTATUS tls_socket_send(struct socket_context *sock,
                if (gnutls_record_get_direction(tls->session) == 1) {
                        EVENT_FD_WRITEABLE(tls->fde);
                }
-               tls->interrupted = True;
+               tls->interrupted = true;
                return STATUS_MORE_ENTRIES;
        }
        if (ret < 0) {
@@ -355,11 +357,11 @@ struct tls_params *tls_initialise(TALLOC_CTX *mem_ctx)
        struct tls_params *params;
        int ret;
        TALLOC_CTX *tmp_ctx = talloc_new(mem_ctx);
-       const char *keyfile = private_path(tmp_ctx, lp_tls_keyfile());
-       const char *certfile = private_path(tmp_ctx, lp_tls_certfile());
-       const char *cafile = private_path(tmp_ctx, lp_tls_cafile());
-       const char *crlfile = private_path(tmp_ctx, lp_tls_crlfile());
-       const char *dhpfile = private_path(tmp_ctx, lp_tls_dhpfile());
+       const char *keyfile = private_path(tmp_ctx, global_loadparm, lp_tls_keyfile(global_loadparm));
+       const char *certfile = private_path(tmp_ctx, global_loadparm, lp_tls_certfile(global_loadparm));
+       const char *cafile = private_path(tmp_ctx, global_loadparm, lp_tls_cafile(global_loadparm));
+       const char *crlfile = private_path(tmp_ctx, global_loadparm, lp_tls_crlfile(global_loadparm));
+       const char *dhpfile = private_path(tmp_ctx, global_loadparm, lp_tls_dhpfile(global_loadparm));
        void tls_cert_generate(TALLOC_CTX *, const char *, const char *, const char *);
 
        params = talloc(mem_ctx, struct tls_params);
@@ -368,8 +370,8 @@ struct tls_params *tls_initialise(TALLOC_CTX *mem_ctx)
                return NULL;
        }
 
-       if (!lp_tls_enabled() || keyfile == NULL || *keyfile == 0) {
-               params->tls_enabled = False;
+       if (!lp_tls_enabled(global_loadparm) || keyfile == NULL || *keyfile == 0) {
+               params->tls_enabled = false;
                talloc_free(tmp_ctx);
                return params;
        }
@@ -436,14 +438,14 @@ struct tls_params *tls_initialise(TALLOC_CTX *mem_ctx)
                
        gnutls_certificate_set_dh_params(params->x509_cred, params->dh_params);
 
-       params->tls_enabled = True;
+       params->tls_enabled = true;
 
        talloc_free(tmp_ctx);
        return params;
 
 init_failed:
        DEBUG(0,("GNUTLS failed to initialise - %s\n", gnutls_strerror(ret)));
-       params->tls_enabled = False;
+       params->tls_enabled = false;
        talloc_free(tmp_ctx);
        return params;
 }
@@ -508,16 +510,16 @@ struct socket_context *tls_init_server(struct tls_params *params,
 
        tls->plain_chars = plain_chars;
        if (plain_chars) {
-               tls->tls_detect = True;
+               tls->tls_detect = true;
        } else {
-               tls->tls_detect = False;
+               tls->tls_detect = false;
        }
 
-       tls->output_pending  = False;
-       tls->done_handshake  = False;
-       tls->have_first_byte = False;
-       tls->tls_enabled     = True;
-       tls->interrupted     = False;
+       tls->output_pending  = false;
+       tls->done_handshake  = false;
+       tls->have_first_byte = false;
+       tls->tls_enabled     = true;
+       tls->interrupted     = false;
        
        new_sock->state = SOCKET_STATE_SERVER_CONNECTED;
 
@@ -563,7 +565,7 @@ struct socket_context *tls_init_client(struct socket_context *socket,
        }
        new_sock->private_data    = tls;
 
-       cafile = private_path(tls, lp_tls_cafile());
+       cafile = private_path(tls, global_loadparm, lp_tls_cafile(global_loadparm));
        if (!cafile || !*cafile) {
                goto failed;
        }
@@ -584,13 +586,13 @@ struct socket_context *tls_init_client(struct socket_context *socket,
        gnutls_transport_set_pull_function(tls->session, (gnutls_pull_func)tls_pull);
        gnutls_transport_set_push_function(tls->session, (gnutls_push_func)tls_push);
        gnutls_transport_set_lowat(tls->session, 0);
-       tls->tls_detect = False;
+       tls->tls_detect = false;
 
-       tls->output_pending  = False;
-       tls->done_handshake  = False;
-       tls->have_first_byte = False;
-       tls->tls_enabled     = True;
-       tls->interrupted     = False;
+       tls->output_pending  = false;
+       tls->done_handshake  = false;
+       tls->have_first_byte = false;
+       tls->tls_enabled     = true;
+       tls->interrupted     = false;
        
        new_sock->state = SOCKET_STATE_CLIENT_CONNECTED;
 
@@ -598,7 +600,7 @@ struct socket_context *tls_init_client(struct socket_context *socket,
 
 failed:
        DEBUG(0,("TLS init connection failed - %s\n", gnutls_strerror(ret)));
-       tls->tls_enabled = False;
+       tls->tls_enabled = false;
        return new_sock;
 }
 
@@ -647,7 +649,7 @@ static const struct socket_ops tls_socket_ops = {
        .fn_get_fd              = tls_socket_get_fd
 };
 
-BOOL tls_support(struct tls_params *params)
+bool tls_support(struct tls_params *params)
 {
        return params->tls_enabled;
 }
@@ -683,9 +685,9 @@ struct socket_context *tls_init_client(struct socket_context *socket,
        return NULL;
 }
 
-BOOL tls_support(struct tls_params *params)
+bool tls_support(struct tls_params *params)
 {
-       return False;
+       return false;
 }
 
 #endif
index ad65df0e6c001f9bf69cf9746b898d24409a7e00..240ae056c13a70b1b908c38e101f999dbe548293 100644 (file)
@@ -153,5 +153,5 @@ failed:
 }
 
 #else
- void tls_cert_dummy(void) {}
+void tls_cert_dummy(void) {}
 #endif
diff --git a/source/lib/util/attr.h b/source/lib/util/attr.h
new file mode 100644 (file)
index 0000000..8f6c4f5
--- /dev/null
@@ -0,0 +1,92 @@
+/* 
+   Unix SMB/CIFS implementation.
+   Samba utility functions
+   Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007
+   
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+   
+   This program 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 General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef __UTIL_ATTR_H__
+#define __UTIL_ATTR_H__
+
+#ifdef __GNUC__
+/** gcc attribute used on function parameters so that it does not emit
+ * warnings about them being unused. **/
+#  define UNUSED(param) param __attribute__ ((unused))
+#else
+#  define UNUSED(param) param
+/** Feel free to add definitions for other compilers here. */
+#endif
+
+#ifndef _PUBLIC_
+#ifdef HAVE_VISIBILITY_ATTR
+#  define _PUBLIC_ __attribute__((visibility("default")))
+#else
+#  define _PUBLIC_
+#endif
+#endif
+
+#ifndef _DEPRECATED_
+#if (__GNUC__ >= 3) && (__GNUC_MINOR__ >= 1 )
+#define _DEPRECATED_ __attribute__ ((deprecated))
+#else
+#define _DEPRECATED_
+#endif
+#endif
+
+#ifndef _WARN_UNUSED_RESULT_
+#if (__GNUC__ >= 3) && (__GNUC_MINOR__ >= 1 )
+#define _WARN_UNUSED_RESULT_ __attribute__ ((warn_unused_result))
+#else
+#define _WARN_UNUSED_RESULT_
+#endif
+#endif
+
+#ifndef _NORETURN_
+#if (__GNUC__ >= 3) && (__GNUC_MINOR__ >= 1 )
+#define _NORETURN_ __attribute__ ((noreturn))
+#else
+#define _NORETURN_
+#endif
+#endif
+
+#ifndef _PURE_
+#if (__GNUC__ >= 3) && (__GNUC_MINOR__ >= 1)
+#define _PURE_ __attribute__((pure))
+#else
+#define _PURE_
+#endif
+#endif
+
+#ifndef NONNULL
+#if (__GNUC__ >= 3) && (__GNUC_MINOR__ >= 1)
+#define NONNULL(param) param __attribute__((nonnull))
+#else
+#define NONNULL(param) param
+#endif
+#endif
+
+#ifndef PRINTF_ATTRIBUTE
+#if __GNUC__ >= 3
+/** Use gcc attribute to check printf fns.  a1 is the 1-based index of
+ * the parameter containing the format, and a2 the index of the first
+ * argument. Note that some gcc 2.x versions don't handle this
+ * properly **/
+#define PRINTF_ATTRIBUTE(a1, a2) __attribute__ ((format (__printf__, a1, a2)))
+#else
+#define PRINTF_ATTRIBUTE(a1, a2)
+#endif
+#endif
+
+#endif /* __UTIL_ATTR_H__ */
index 702e3df5aacc24f321814d816adcf1ef4e908845..0691bd7889df6aaca8175501c64609fd5c592618 100644 (file)
@@ -3,6 +3,7 @@
 #SO_VERSION = 0
 #DESCRIPTION = Generic utility functions
 PUBLIC_HEADERS = util.h \
+                                attr.h \
                                 byteorder.h \
                                 data_blob.h \
                                 debug.h \
@@ -31,7 +32,7 @@ OBJ_FILES = xfile.o \
 PUBLIC_DEPENDENCIES = \
                LIBTALLOC LIBCRYPTO \
                SOCKET_WRAPPER EXT_NSL \
-               CHARSET
+               CHARSET EXECINFO
 
 [SUBSYSTEM::UNIX_PRIVS]
 PRIVATE_PROTO_HEADER = unix_privs.h
index 117043f95c2fd0e50480a44c1f81ce3ab13e395c..b258e47bbaf1646b5d09d7c36ea33baa9eab5fa8 100644 (file)
@@ -39,9 +39,9 @@ _PUBLIC_ DATA_BLOB data_blob_named(const void *p, size_t length, const char *nam
        }
 
        if (p) {
-               ret.data = talloc_memdup(NULL, p, length);
+               ret.data = (uint8_t *)talloc_memdup(NULL, p, length);
        } else {
-               ret.data = talloc_size(NULL, length);
+               ret.data = talloc_array(NULL, uint8_t, length);
        }
        if (ret.data == NULL) {
                ret.length = 0;
@@ -175,7 +175,7 @@ _PUBLIC_ char *data_blob_hex_string(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob)
 _PUBLIC_ DATA_BLOB data_blob_string_const(const char *str)
 {
        DATA_BLOB blob;
-       blob.data = discard_const(str);
+       blob.data = discard_const_p(uint8_t, str);
        blob.length = strlen(str);
        return blob;
 }
@@ -187,7 +187,7 @@ _PUBLIC_ DATA_BLOB data_blob_string_const(const char *str)
 _PUBLIC_ DATA_BLOB data_blob_const(const void *p, size_t length)
 {
        DATA_BLOB blob;
-       blob.data = discard_const(p);
+       blob.data = discard_const_p(uint8_t, p);
        blob.length = length;
        return blob;
 }
@@ -198,7 +198,7 @@ _PUBLIC_ DATA_BLOB data_blob_const(const void *p, size_t length)
 **/
 _PUBLIC_ bool data_blob_realloc(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, size_t length)
 {
-       blob->data = talloc_realloc_size(mem_ctx, blob->data, length);
+       blob->data = talloc_realloc(mem_ctx, blob->data, uint8_t, length);
        if (blob->data == NULL)
                return false;
        blob->length = length;
index e39b2eaf45acb2f16fa2d074fecccbfc5291ae98..1442438dd7a5575b6bac81a35d50f32d8b61ac35 100644 (file)
@@ -24,6 +24,7 @@
 #endif
 
 #include <talloc.h>
+#include <stdint.h>
 
 /* used to hold an arbitrary blob of data */
 typedef struct datablob {
index a7770f364d606a0134dc05617a6f69744415a752..91665e7bddf5004ad4059f9fc9c973bd0e95615e 100644 (file)
@@ -48,7 +48,7 @@ _PUBLIC_ int d_vfprintf(FILE *f, const char *format, va_list ap) _PRINTF_ATTRIBU
           charset, but beware of it growing */
        maxlen = ret*2;
 again:
-       p2 = malloc(maxlen);
+       p2 = (char *)malloc(maxlen);
        if (!p2) {
                SAFE_FREE(p);
                return -1;
index 5cc944540730f13d4b2a722f3e39eb07950febaa..e9cd040ee6eb7ff5e3ef946c8a7d5696df2ab547 100644 (file)
@@ -153,7 +153,7 @@ _PUBLIC_ _NORETURN_ void smb_panic(const char *why)
 /**
 report a fault
 **/
-static void fault_report(int sig)
+_NORETURN_ static void fault_report(int sig)
 {
        static int counter;
        
@@ -172,7 +172,7 @@ static void fault_report(int sig)
 /**
 catch serious errors
 **/
-static void sig_fault(int sig)
+_NORETURN_ static void sig_fault(int sig)
 {
        if (fault_handlers.fault_handler) {
                /* we have a fault handler, call it. It may not return. */
index 6d2c4f2a6aba53917499d43d501454a32759114c..b24e63641cd19cc3662d328fc0371e454b84e8c2 100644 (file)
@@ -1,2 +1,5 @@
-AC_CHECK_HEADER(execinfo.h)
-AC_CHECK_FUNCS(backtrace)
+AC_CHECK_HEADERS(execinfo.h)
+AC_SEARCH_LIBS_EXT(backtrace, [execinfo], EXECINFO_LIBS)
+AC_CHECK_FUNC_EXT(backtrace, $EXECINFO_LIBS)
+SMB_EXT_LIB(EXECINFO,[${EXECINFO_LIBS}])
+SMB_ENABLE(EXECINFO)
index 8e216b0226b13c6ba9c2200a19951cda3b3f5fa0..73fb0e09668dc90e9e6236c36c702c66222d3305 100644 (file)
@@ -201,11 +201,10 @@ int ms_fnmatch(const char *pattern, const char *string, enum protocol_types prot
                if (pattern[i] == '*' || pattern[i] == '<') count++;
        }
 
-       max_n = talloc_array(NULL, struct max_n, count);
-       if (!max_n) {
+       max_n = talloc_zero_array(NULL, struct max_n, count);
+       if (max_n == NULL) {
                return -1;
        }
-       memset(max_n, 0, sizeof(struct max_n) * count);
 
        ret = ms_fnmatch_core(pattern, string, max_n, strrchr(string, '.'));
 
index 0fe117a300e32631083eb5ac78f0a8a2b7e22b0f..fe87293671ec82613e646e4257e42a37da580e5a 100644 (file)
@@ -88,10 +88,10 @@ struct torture_suite *torture_local_util_file(TALLOC_CTX *mem_ctx)
        struct torture_suite *suite = torture_suite_create(mem_ctx, "FILE");
 
        torture_suite_add_simple_test(suite, "file_load_save", 
-                                                                  test_file_load_save);
+                                     test_file_load_save);
 
        torture_suite_add_simple_test(suite, "afdgets", 
-                                                                  test_afdgets);
+                                     test_afdgets);
 
        return suite;
 }
diff --git a/source/lib/util/tests/str.c b/source/lib/util/tests/str.c
new file mode 100644 (file)
index 0000000..a219ef0
--- /dev/null
@@ -0,0 +1,121 @@
+/* 
+   Unix SMB/CIFS implementation.
+
+   util_str testing
+
+   Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007
+   
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+   
+   This program 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 General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include "torture/ui.h"
+
+static bool test_string_sub_simple(struct torture_context *tctx)
+{
+       char tmp[100];
+       safe_strcpy(tmp, "foobar", sizeof(tmp));
+       string_sub(tmp, "foo", "bar", sizeof(tmp));
+       torture_assert_str_equal(tctx, tmp, "barbar", "invalid sub");
+       return true;
+}
+
+static bool test_string_sub_multiple(struct torture_context *tctx)
+{
+       char tmp[100];
+       safe_strcpy(tmp, "fooblafoo", sizeof(tmp));
+       string_sub(tmp, "foo", "bar", sizeof(tmp));
+       torture_assert_str_equal(tctx, tmp, "barblabar", "invalid sub");
+       return true;
+}
+
+static bool test_string_sub_longer(struct torture_context *tctx)
+{
+       char tmp[100];
+       safe_strcpy(tmp, "foobla", sizeof(tmp));
+       string_sub(tmp, "foo", "blie", sizeof(tmp));
+       torture_assert_str_equal(tctx, tmp, "bliebla", "invalid sub");
+       return true;
+}
+
+static bool test_string_sub_shorter(struct torture_context *tctx)
+{
+       char tmp[100];
+       safe_strcpy(tmp, "foobla", sizeof(tmp));
+       string_sub(tmp, "foo", "bl", sizeof(tmp));
+       torture_assert_str_equal(tctx, tmp, "blbla", "invalid sub");
+       return true;
+}
+
+static bool test_string_sub_special_char(struct torture_context *tctx)
+{
+       char tmp[100];
+       safe_strcpy(tmp, "foobla", sizeof(tmp));
+       string_sub(tmp, "foo", "%b;l", sizeof(tmp));
+       torture_assert_str_equal(tctx, tmp, "_b_lbla", "invalid sub");
+       return true;
+}
+
+static bool test_string_sub_talloc_simple(struct torture_context *tctx)
+{
+       char *t;
+       
+       t = string_sub_talloc(tctx, "foobla", "foo", "bl");
+
+       torture_assert_str_equal(tctx, t, "blbla", "invalid sub");
+
+       return true;
+}
+
+static bool test_string_sub_talloc_multiple(struct torture_context *tctx)
+{
+       char *t;
+       
+       t = string_sub_talloc(tctx, "fooblafoo", "foo", "aapnootmies");
+
+       torture_assert_str_equal(tctx, t, "aapnootmiesblaaapnootmies", 
+                                "invalid sub");
+
+       return true;
+}
+
+
+
+struct torture_suite *torture_local_util_str(TALLOC_CTX *mem_ctx)
+{
+       struct torture_suite *suite = torture_suite_create(mem_ctx, "STR");
+
+       torture_suite_add_simple_test(suite, "string_sub_simple", 
+                                     test_string_sub_simple);
+
+       torture_suite_add_simple_test(suite, "string_sub_multiple", 
+                                     test_string_sub_multiple);
+
+       torture_suite_add_simple_test(suite, "string_sub_shorter", 
+                                     test_string_sub_shorter);
+
+       torture_suite_add_simple_test(suite, "string_sub_longer", 
+                                     test_string_sub_longer);
+
+       torture_suite_add_simple_test(suite, "string_sub_special_chars", 
+                                     test_string_sub_special_char);
+
+       torture_suite_add_simple_test(suite, "string_sub_talloc_simple", 
+                                     test_string_sub_talloc_simple);
+
+       torture_suite_add_simple_test(suite, "string_sub_talloc_multiple", 
+                                     test_string_sub_talloc_multiple);
+
+       return suite;
+}
index 41accd4bd2aa9e761fce121c18acc71a5b316675..437d9d741a892ed6009d252424b7e8d99a2ff6d4 100644 (file)
@@ -35,7 +35,7 @@ static const char *test_lists_shell_strings[] = {
 static bool test_lists_shell(struct torture_context *tctx,
                                                         const void *test_data)
 {
-       const char *data = test_data;
+       const char *data = (const char *)test_data;
        const char **ret1, **ret2, *tmp;
        bool match = true;
        TALLOC_CTX *mem_ctx = tctx;
index c800fffea0c19831bb8882efc9309f1f9ee9ed5e..fc514980098a7877154c02000dbce1d60f1ff608 100644 (file)
@@ -269,7 +269,7 @@ _PUBLIC_ time_t pull_dos_date2(const uint8_t *date_ptr, int zone_offset)
        x2 = ((x&0xFFFF)<<16) | ((x&0xFFFF0000)>>16);
        SIVAL(&x,0,x2);
 
-       return pull_dos_date((void *)&x, zone_offset);
+       return pull_dos_date((const uint8_t *)&x, zone_offset);
 }
 
 /**
@@ -373,14 +373,6 @@ _PUBLIC_ NTTIME pull_nttime(uint8_t *base, uint16_t offset)
        return ret;
 }
 
-/**
-  parse a nttime as a large integer in a string and return a NTTIME
-*/
-_PUBLIC_ NTTIME nttime_from_string(const char *s)
-{
-       return strtoull(s, NULL, 0);
-}
-
 /**
   return (tv1 - tv2) in microseconds
 */
index a1b3facf24491081ddab3fd5c72a411e55522353..557c5d4eabb5594dd83a53b155fe3fb02d607988 100644 (file)
 #ifndef _SAMBA_TIME_H_
 #define _SAMBA_TIME_H_
 
+#ifndef _PUBLIC_
+#define _PUBLIC_
+#endif
+
 /* 64 bit time (100 nanosec) 1601 - cifs6.txt, section 3.5, page 30, 4 byte aligned */
 typedef uint64_t NTTIME;
 
index aa7a571585ddc7faf05c3ae8daf852acad45c626..624315f99e4106571363ab0063a76d86f3ac18d6 100644 (file)
@@ -190,28 +190,27 @@ _PUBLIC_ void msleep(unsigned int t)
  Get my own name, return in malloc'ed storage.
 **/
 
-_PUBLIC_ charget_myname(void)
+_PUBLIC_ char *get_myname(void)
 {
        char *hostname;
-       const int host_name_max = 255;
        char *p;
 
-       hostname = malloc(host_name_max+1);
+       hostname = (char *)malloc(MAXHOSTNAMELEN+1);
        *hostname = 0;
 
        /* get my host name */
-       if (gethostname(hostname, host_name_max+1) == -1) {
+       if (gethostname(hostname, MAXHOSTNAMELEN+1) == -1) {
                DEBUG(0,("gethostname failed\n"));
                return NULL;
        } 
 
        /* Ensure null termination. */
-       hostname[host_name_max] = '\0';
+       hostname[MAXHOSTNAMELEN] = '\0';
 
        /* split off any parts after an initial . */
-       p = strchr(hostname,'.');
+       p = strchr(hostname, '.');
 
-       if (p)
+       if (p != NULL)
                *p = 0;
        
        return hostname;
index 8259e0851279c37aed8c0e0ed328ee4b49990dc7..1960aa6196a18c80182d6ef97d0b21bbd8ba4ebd 100644 (file)
  * @brief Helpful macros
  */
 
-struct substitute_context;
 struct smbsrv_tcon;
 
 extern const char *logfile;
 extern const char *panic_action;
 
+#include "util/attr.h"
 #include "util/time.h"
 #include "util/data_blob.h"
 #include "util/xfile.h"
@@ -73,7 +73,7 @@ extern const char *panic_action;
  */
 #define SMB_ASSERT(b) do { if (!(b)) { \
        DEBUG(0,("PANIC: assert failed at %s(%d)\n", __FILE__, __LINE__)); \
-       smb_panic("assert failed"); abort(); }} while (0)
+       smb_panic("assert failed"); }} while (0)
 
 #ifndef SAFE_FREE /* Oh no this is also defined in tdb.h */
 /**
@@ -165,7 +165,7 @@ _PUBLIC_ void do_debug_header(int level, const char *location, const char *func)
   @note You should never have to call this function directly. Call the DEBUG()
   macro instead.
 */
-_PUBLIC_ void do_debug(const char *format, ...) _PRINTF_ATTRIBUTE(1,2);
+_PUBLIC_ void do_debug(const char *format, ...) PRINTF_ATTRIBUTE(1,2);
 
 /**
   reopen the log file (usually called because the log file name might have changed)
@@ -313,9 +313,9 @@ _PUBLIC_ char *generate_random_str(TALLOC_CTX *mem_ctx, size_t len);
 
 /* The following definitions come from lib/util/dprintf.c  */
 
-_PUBLIC_ int d_vfprintf(FILE *f, const char *format, va_list ap) _PRINTF_ATTRIBUTE(2,0);
-_PUBLIC_ int d_fprintf(FILE *f, const char *format, ...) _PRINTF_ATTRIBUTE(2,3);
-_PUBLIC_ int d_printf(const char *format, ...) _PRINTF_ATTRIBUTE(1,2);
+_PUBLIC_ int d_vfprintf(FILE *f, const char *format, va_list ap) PRINTF_ATTRIBUTE(2,0);
+_PUBLIC_ int d_fprintf(FILE *f, const char *format, ...) PRINTF_ATTRIBUTE(2,3);
+_PUBLIC_ int d_printf(const char *format, ...) PRINTF_ATTRIBUTE(1,2);
 _PUBLIC_ void display_set_stderr(void);
 
 /* The following definitions come from lib/util/util_str.c  */
@@ -370,17 +370,6 @@ _PUBLIC_ void hex_encode(const unsigned char *buff_in, size_t len, char **out_he
  */
 _PUBLIC_ char *hex_encode_talloc(TALLOC_CTX *mem_ctx, const unsigned char *buff_in, size_t len);
 
-/**
- Free a string value.
-**/
-_PUBLIC_ void string_free(char **s);
-
-/**
- Set a string value, deallocating any existing space, and allocing the space
- for the string
-**/
-_PUBLIC_ bool string_set(char **dest, const char *src);
-
 /**
  Substitute a string for a pattern in another string. Make sure there is 
  enough room!
@@ -394,6 +383,10 @@ _PUBLIC_ bool string_set(char **dest, const char *src);
 **/
 _PUBLIC_ void string_sub(char *s,const char *pattern, const char *insert, size_t len);
 
+
+_PUBLIC_ char *string_sub_talloc(TALLOC_CTX *mem_ctx, const char *s, 
+                               const char *pattern, const char *insert);
+
 /**
  Similar to string_sub() but allows for any character to be substituted. 
  Use with caution!
@@ -562,11 +555,6 @@ _PUBLIC_ bool str_list_check(const char **list, const char *s);
 */
 _PUBLIC_ bool str_list_check_ci(const char **list, const char *s);
 
-/**
- Check if a string is part of a list.
-**/
-_PUBLIC_ bool in_list(const char *s, const char *list, bool casesensitive);
-
 /* The following definitions come from lib/util/util_file.c  */
 
 
@@ -620,8 +608,8 @@ _PUBLIC_ void file_lines_slashcont(char **lines);
   save a lump of data into a file. Mostly used for debugging 
 */
 _PUBLIC_ bool file_save(const char *fname, const void *packet, size_t length);
-_PUBLIC_ int vfdprintf(int fd, const char *format, va_list ap) _PRINTF_ATTRIBUTE(2,0);
-_PUBLIC_ int fdprintf(int fd, const char *format, ...) _PRINTF_ATTRIBUTE(2,3);
+_PUBLIC_ int vfdprintf(int fd, const char *format, va_list ap) PRINTF_ATTRIBUTE(2,0);
+_PUBLIC_ int fdprintf(int fd, const char *format, ...) PRINTF_ATTRIBUTE(2,3);
 _PUBLIC_ bool large_file_support(const char *path);
 
 /* The following definitions come from lib/util/util.c  */
@@ -790,8 +778,6 @@ enum protocol_types {
        PROTOCOL_SMB2
 };
 
-
-
 int ms_fnmatch(const char *pattern, const char *string, enum protocol_types protocol);
 
 /** a generic fnmatch function - uses for non-CIFS pattern matching */
@@ -848,6 +834,6 @@ _PUBLIC_ int idr_remove(struct idr_context *idp, int id);
 /**
  Become a daemon, discarding the controlling terminal.
 **/
-_PUBLIC_ void become_daemon(bool Fork);
+_PUBLIC_ void become_daemon(bool fork);
 
 #endif /* _SAMBA_UTIL_H_ */
index 0e0675571ebe79bdff6c5c43a491c56a3dc122a6..11e46ec4e3a48843d3c347781e1606a21a305e08 100644 (file)
 
 #include "includes.h"
 
-static struct passwd *alloc_copy_passwd(const struct passwd *from) 
+static struct passwd *alloc_copy_passwd(TALLOC_CTX *mem_ctx, 
+                                       const struct passwd *from) 
 {
-       struct passwd *ret = smb_xmalloc_p(struct passwd);
-       ZERO_STRUCTP(ret);
-       ret->pw_name = smb_xstrdup(from->pw_name);
-       ret->pw_passwd = smb_xstrdup(from->pw_passwd);
-       ret->pw_uid = from->pw_uid;
-       ret->pw_gid = from->pw_gid;
-       ret->pw_gecos = smb_xstrdup(from->pw_gecos);
-       ret->pw_dir = smb_xstrdup(from->pw_dir);
-       ret->pw_shell = smb_xstrdup(from->pw_shell);
-       return ret;
-}
+       struct passwd *ret = talloc_zero(mem_ctx, struct passwd);
 
-void passwd_free (struct passwd **buf)
-{
-       if (!*buf) {
-               DEBUG(0, ("attempted double-free of allocated passwd\n"));
-               return;
-       }
+       if (ret == NULL)
+               return NULL;
 
-       SAFE_FREE((*buf)->pw_name);
-       SAFE_FREE((*buf)->pw_passwd);
-       SAFE_FREE((*buf)->pw_gecos);
-       SAFE_FREE((*buf)->pw_dir);
-       SAFE_FREE((*buf)->pw_shell);
+       ret->pw_name = talloc_strdup(ret, from->pw_name);
+       ret->pw_passwd = talloc_strdup(ret, from->pw_passwd);
+       ret->pw_uid = from->pw_uid;
+       ret->pw_gid = from->pw_gid;
+       ret->pw_gecos = talloc_strdup(ret, from->pw_gecos);
+       ret->pw_dir = talloc_strdup(ret, from->pw_dir);
+       ret->pw_shell = talloc_strdup(ret, from->pw_shell);
 
-       SAFE_FREE(*buf);
+       return ret;
 }
 
-struct passwd *getpwnam_alloc(const char *name) 
+struct passwd *getpwnam_alloc(TALLOC_CTX *mem_ctx, const char *name) 
 {
        struct passwd *temp;
 
@@ -66,10 +55,10 @@ struct passwd *getpwnam_alloc(const char *name)
                return NULL;
        }
 
-       return alloc_copy_passwd(temp);
+       return alloc_copy_passwd(mem_ctx, temp);
 }
 
-struct passwd *getpwuid_alloc(uid_t uid) 
+struct passwd *getpwuid_alloc(TALLOC_CTX *mem_ctx, uid_t uid) 
 {
        struct passwd *temp;
 
@@ -84,5 +73,5 @@ struct passwd *getpwuid_alloc(uid_t uid)
                return NULL;
        }
 
-       return alloc_copy_passwd(temp);
+       return alloc_copy_passwd(mem_ctx, temp);
 }
index 67e59474fd88365d4f65064a774137f9f25295d6..9ea6403c52da1790b794c1d516ca86f73700b461 100644 (file)
@@ -23,7 +23,6 @@
 
 #include "includes.h"
 #include "libcli/raw/smb.h"
-#include "pstring.h"
 #include "system/locale.h"
 
 /**
@@ -237,7 +236,7 @@ _PUBLIC_ void hex_encode(const unsigned char *buff_in, size_t len, char **out_he
        int i;
        char *hex_buffer;
 
-       *out_hex_buffer = smb_xmalloc((len*2)+1);
+       *out_hex_buffer = malloc_array_p(char, (len*2)+1);
        hex_buffer = *out_hex_buffer;
 
        for (i = 0; i < len; i++)
@@ -260,39 +259,6 @@ _PUBLIC_ char *hex_encode_talloc(TALLOC_CTX *mem_ctx, const unsigned char *buff_
        return hex_buffer;
 }
 
-/**
- Set a string value, allocing the space for the string
-**/
-static bool string_init(char **dest,const char *src)
-{
-       if (!src) src = "";
-
-       (*dest) = strdup(src);
-       if ((*dest) == NULL) {
-               DEBUG(0,("Out of memory in string_init\n"));
-               return false;
-       }
-       return true;
-}
-
-/**
- Free a string value.
-**/
-_PUBLIC_ void string_free(char **s)
-{
-       if (s) SAFE_FREE(*s);
-}
-
-/**
- Set a string value, deallocating any existing space, and allocing the space
- for the string
-**/
-_PUBLIC_ bool string_set(char **dest, const char *src)
-{
-       string_free(dest);
-       return string_init(dest,src);
-}
-
 /**
  Substitute a string for a pattern in another string. Make sure there is 
  enough room!
@@ -305,10 +271,10 @@ _PUBLIC_ bool string_set(char **dest, const char *src)
  use of len==0 which was for no length checks to be done.
 **/
 
-_PUBLIC_ void string_sub(char *s,const char *pattern, const char *insert, size_t len)
+_PUBLIC_ void string_sub(char *s, const char *pattern, const char *insert, size_t len)
 {
        char *p;
-       ssize_t ls,lp,li, i;
+       ssize_t ls, lp, li, i;
 
        if (!insert || !pattern || !*pattern || !s)
                return;
@@ -320,7 +286,7 @@ _PUBLIC_ void string_sub(char *s,const char *pattern, const char *insert, size_t
        if (len == 0)
                len = ls + 1; /* len is number of *bytes* */
 
-       while (lp <= ls && (p = strstr(s,pattern))) {
+       while (lp <= ls && (p = strstr(s, pattern))) {
                if (ls + (li-lp) >= len) {
                        DEBUG(0,("ERROR: string overflow by %d in string_sub(%.50s, %d)\n", 
                                 (int)(ls + (li-lp) - len),
@@ -351,6 +317,42 @@ _PUBLIC_ void string_sub(char *s,const char *pattern, const char *insert, size_t
        }
 }
 
+/**
+ * Talloc'ed version of string_sub
+ */
+_PUBLIC_ char *string_sub_talloc(TALLOC_CTX *mem_ctx, const char *s, 
+                               const char *pattern, const char *insert)
+{
+       const char *p;
+       char *ret;
+       size_t len, alloc_len;
+
+       if (insert == NULL || pattern == NULL || !*pattern || s == NULL)
+               return NULL;
+
+       /* determine length needed */
+       len = strlen(s);
+       
+       for (p = strstr(s, pattern); p != NULL; 
+            p = strstr(p+strlen(pattern), pattern)) {
+               len += strlen(insert) - strlen(pattern);
+       }
+
+       alloc_len = MAX(len, strlen(s))+1;
+       ret = talloc_array(mem_ctx, char, alloc_len);
+       if (ret == NULL)
+               return NULL;
+       strncpy(ret, s, alloc_len);
+       string_sub(ret, pattern, insert, alloc_len);
+
+       ret = talloc_realloc(mem_ctx, ret, char, len+1);
+       if (ret == NULL)
+               return NULL;
+
+       SMB_ASSERT(ret[len] == '\0');
+
+       return ret;
+}
 
 /**
  Similar to string_sub() but allows for any character to be substituted. 
@@ -457,7 +459,7 @@ _PUBLIC_ const char *str_format_nbt_domain(TALLOC_CTX *mem_ctx, const char *s)
        if (!s || !*s) {
                return talloc_strdup(mem_ctx, "");
        }
-       ret = talloc_size(mem_ctx, strlen(s)+2);
+       ret = talloc_array(mem_ctx, char, strlen(s)+2);
        if (!ret) {
                return ret;
        }
@@ -566,7 +568,7 @@ _PUBLIC_ char *attrib_string(TALLOC_CTX *mem_ctx, uint32_t attrib)
        };
        char *ret;
 
-       ret = talloc_size(mem_ctx, ARRAY_SIZE(attr_strs)+1);
+       ret = talloc_array(mem_ctx, char, ARRAY_SIZE(attr_strs)+1);
        if (!ret) {
                return NULL;
        }
index ab73fb2d15f239bc1c7c524792e0961a7b85dd95..1f1cc17d00b27e0e49359fab8366c81d5b38fef8 100644 (file)
@@ -19,7 +19,6 @@
 */
 
 #include "includes.h"
-#include "pstring.h"
 #include "system/locale.h"
 
 /**
@@ -152,7 +151,7 @@ _PUBLIC_ char *str_list_join(TALLOC_CTX *mem_ctx, const char **list, char sepera
        ret = talloc_strdup(mem_ctx, list[0]);
 
        for (i = 1; list[i]; i++) {
-               ret = talloc_asprintf_append(ret, "%c%s", seperator, list[i]);
+               ret = talloc_asprintf_append_buffer(ret, "%c%s", seperator, list[i]);
        }
 
        return ret;
@@ -175,9 +174,9 @@ _PUBLIC_ char *str_list_join_shell(TALLOC_CTX *mem_ctx, const char **list, char
 
        for (i = 1; list[i]; i++) {
                if (strchr(list[i], ' ') || strlen(list[i]) == 0) 
-                       ret = talloc_asprintf_append(ret, "%c\"%s\"", sep, list[i]);
+                       ret = talloc_asprintf_append_buffer(ret, "%c\"%s\"", sep, list[i]);
                else 
-                       ret = talloc_asprintf_append(ret, "%c%s", sep, list[i]);
+                       ret = talloc_asprintf_append_buffer(ret, "%c%s", sep, list[i]);
        }
 
        return ret;
@@ -300,25 +299,4 @@ _PUBLIC_ bool str_list_check_ci(const char **list, const char *s)
        return false;
 }
 
-/**
- Check if a string is part of a list.
-**/
-_PUBLIC_ bool in_list(const char *s, const char *list, bool casesensitive)
-{
-       pstring tok;
-       const char *p=list;
 
-       if (!list)
-               return false;
-
-       while (next_token(&p,tok,LIST_SEP,sizeof(tok))) {
-               if (casesensitive) {
-                       if (strcmp(tok,s) == 0)
-                               return true;
-               } else {
-                       if (strcasecmp_m(tok,s) == 0)
-                               return true;
-               }
-       }
-       return false;
-}
index 1112f1587c52133a4ad6cdda72fd377032fb9672..d7bddbde0193ff76d8c75a2a8b1846ae4228a966 100644 (file)
@@ -22,6 +22,7 @@
 #include "includes.h"
 #include "lib/tdb/include/tdb.h"
 #include "pstring.h"
+#include "lib/util/util_tdb.h"
 
 /* these are little tdb utility functions that are meant to make
    dealing with a tdb database a little less cumbersome in Samba */
@@ -127,7 +128,7 @@ int tdb_store_int32_byblob(struct tdb_context *tdb, const char *keystr, size_t l
        int32_t v_store;
 
        SIVAL(&v_store,0,v);
-       data.dptr = (void *)&v_store;
+       data.dptr = (unsigned char *)&v_store;
        data.dsize = sizeof(int32_t);
 
        return tdb_store(tdb, key, data, TDB_REPLACE);
@@ -187,7 +188,7 @@ bool tdb_store_uint32_byblob(struct tdb_context *tdb, const char *keystr, size_t
        bool ret = true;
 
        SIVAL(&v_store, 0, value);
-       data.dptr = (void *)&v_store;
+       data.dptr = (unsigned char *)&v_store;
        data.dsize = sizeof(uint32_t);
 
        if (tdb_store(tdb, key, data, TDB_REPLACE) == -1)
index 8b90e30868134eb5082258248610a6a795553522..a016031a77dd2007bcfd3324797f52774ccddc4b 100644 (file)
@@ -85,7 +85,7 @@ static int x_allocate_buffer(XFILE *f)
 {
        if (f->buf) return 1;
        if (f->bufsize == 0) return 0;
-       f->buf = malloc(f->bufsize);
+       f->buf = (char *)malloc(f->bufsize);
        if (!f->buf) return 0;
        f->next = f->buf;
        return 1;
index feb8c92a0bb9fb4e26bbe35b824c4e03ffc16d03..a6cb17c12ea57b293832fcd4c6d43504769324c4 100644 (file)
@@ -235,15 +235,15 @@ void creds_client_authenticator(struct creds_CredentialState *creds,
 /*
   check that a credentials reply from a server is correct
 */
-BOOL creds_client_check(struct creds_CredentialState *creds,
+bool creds_client_check(struct creds_CredentialState *creds,
                        const struct netr_Credential *received_credentials)
 {
        if (!received_credentials || 
            memcmp(received_credentials->data, creds->server.data, 8) != 0) {
                DEBUG(2,("credentials check failed\n"));
-               return False;
+               return false;
        }
-       return True;
+       return true;
 }
 
 
@@ -278,16 +278,16 @@ void creds_server_init(struct creds_CredentialState *creds,
 /*
   check that a credentials reply from a server is correct
 */
-BOOL creds_server_check(const struct creds_CredentialState *creds,
+bool creds_server_check(const struct creds_CredentialState *creds,
                        const struct netr_Credential *received_credentials)
 {
        if (memcmp(received_credentials->data, creds->client.data, 8) != 0) {
                DEBUG(2,("credentials check failed\n"));
                dump_data_pw("client creds", creds->client.data, 8);
                dump_data_pw("calc   creds", received_credentials->data, 8);
-               return False;
+               return false;
        }
-       return True;
+       return true;
 }
 
 NTSTATUS creds_server_step_check(struct creds_CredentialState *creds,
index 7f44b6b5a9111bc7a9639eeb953c5bfceea51f24..29af7fafe848edb2bba6570154c9262e177c2a3a 100644 (file)
@@ -30,7 +30,7 @@
   as the in blob
 */
 static void sess_crypt_blob(DATA_BLOB *out, const DATA_BLOB *in, const DATA_BLOB *session_key,
-                    BOOL forward)
+                    bool forward)
 {
        int i, k;
 
@@ -84,7 +84,7 @@ DATA_BLOB sess_encrypt_string(const char *str, const DATA_BLOB *session_key)
        memset(src.data+8, 0,   dlen);
        memcpy(src.data+8, str, slen);
 
-       sess_crypt_blob(&ret, &src, session_key, True);
+       sess_crypt_blob(&ret, &src, session_key, true);
        
        data_blob_free(&src);
 
@@ -112,7 +112,7 @@ char *sess_decrypt_string(TALLOC_CTX *mem_ctx,
                return NULL;
        }
 
-       sess_crypt_blob(&out, blob, session_key, False);
+       sess_crypt_blob(&out, blob, session_key, false);
 
        if (IVAL(out.data, 4) != 1) {
                DEBUG(0,("Unexpected revision number %d in session crypted string\n",
@@ -166,7 +166,7 @@ DATA_BLOB sess_encrypt_blob(TALLOC_CTX *mem_ctx, DATA_BLOB *blob_in, const DATA_
        memset(src.data+8, 0, dlen);
        memcpy(src.data+8, blob_in->data, blob_in->length);
 
-       sess_crypt_blob(&ret, &src, session_key, True);
+       sess_crypt_blob(&ret, &src, session_key, true);
        
        data_blob_free(&src);
 
@@ -193,7 +193,7 @@ NTSTATUS sess_decrypt_blob(TALLOC_CTX *mem_ctx, const DATA_BLOB *blob, const DAT
                return NT_STATUS_NO_MEMORY;
        }
 
-       sess_crypt_blob(&out, blob, session_key, False);
+       sess_crypt_blob(&out, blob, session_key, false);
 
        if (IVAL(out.data, 4) != 1) {
                DEBUG(2,("Unexpected revision number %d in session crypted secret (BLOB)\n",
index 1f940fb79d1453be518b4415dbb2e21be8c72a98..bfac395ef9ed5121b2c21fba303fa2a8d230fa31 100644 (file)
    It takes a password ('unix' string), a 8 byte "crypt key" 
    and puts 24 bytes of encrypted password into p24 
 
-   Returns False if password must have been truncated to create LM hash
+   Returns false if password must have been truncated to create LM hash
 */
-BOOL SMBencrypt(const char *passwd, const uint8_t *c8, uint8_t p24[24])
+bool SMBencrypt(const char *passwd, const uint8_t *c8, uint8_t p24[24])
 {
-       BOOL ret;
+       bool ret;
        uint8_t p21[21];
 
        memset(p21,'\0',21);
@@ -62,7 +62,7 @@ BOOL SMBencrypt(const char *passwd, const uint8_t *c8, uint8_t p24[24])
  * @param p16 return password hashed with md4, caller allocated 16 byte buffer
  */
  
-_PUBLIC_ BOOL E_md4hash(const char *passwd, uint8_t p16[16])
+_PUBLIC_ bool E_md4hash(const char *passwd, uint8_t p16[16])
 {
        int len;
        void *wpwd;
@@ -72,27 +72,27 @@ _PUBLIC_ BOOL E_md4hash(const char *passwd, uint8_t p16[16])
                /* We don't want to return fixed data, as most callers
                 * don't check */
                mdfour(p16, (const uint8_t *)passwd, strlen(passwd));
-               return False;
+               return false;
        }
        
        len -= 2;
        mdfour(p16, wpwd, len);
 
        talloc_free(wpwd);
-       return True;
+       return true;
 }
 
 /**
  * Creates the DES forward-only Hash of the users password in DOS ASCII charset
  * @param passwd password in 'unix' charset.
  * @param p16 return password hashed with DES, caller allocated 16 byte buffer
- * @return False if password was > 14 characters, and therefore may be incorrect, otherwise True
+ * @return false if password was > 14 characters, and therefore may be incorrect, otherwise true
  * @note p16 is filled in regardless
  */
  
-_PUBLIC_ BOOL E_deshash(const char *passwd, uint8_t p16[16])
+_PUBLIC_ bool E_deshash(const char *passwd, uint8_t p16[16])
 {
-       BOOL ret = True;
+       bool ret = true;
        fstring dospwd; 
        ZERO_STRUCT(dospwd);
 
@@ -103,7 +103,7 @@ _PUBLIC_ BOOL E_deshash(const char *passwd, uint8_t p16[16])
        E_P16((const uint8_t *)dospwd, p16);
 
        if (strlen(dospwd) > 14) {
-               ret = False;
+               ret = false;
        }
 
        ZERO_STRUCT(dospwd);    
@@ -112,9 +112,9 @@ _PUBLIC_ BOOL E_deshash(const char *passwd, uint8_t p16[16])
 }
 
 /* Does both the NTLMv2 owfs of a user's password */
-BOOL ntv2_owf_gen(const uint8_t owf[16],
+bool ntv2_owf_gen(const uint8_t owf[16],
                  const char *user_in, const char *domain_in,
-                 BOOL upper_case_domain, /* Transform the domain into UPPER case */
+                 bool upper_case_domain, /* Transform the domain into UPPER case */
                  uint8_t kr_buf[16])
 {
        void *user;
@@ -125,7 +125,7 @@ BOOL ntv2_owf_gen(const uint8_t owf[16],
        HMACMD5Context ctx;
        TALLOC_CTX *mem_ctx = talloc_init("ntv2_owf_gen for %s\\%s", domain_in, user_in); 
        if (!mem_ctx) {
-               return False;
+               return false;
        }
 
        if (!user_in) {
@@ -139,14 +139,14 @@ BOOL ntv2_owf_gen(const uint8_t owf[16],
        user_in = strupper_talloc(mem_ctx, user_in);
        if (user_in == NULL) {
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        if (upper_case_domain) {
                domain_in = strupper_talloc(mem_ctx, domain_in);
                if (domain_in == NULL) {
                        talloc_free(mem_ctx);
-                       return False;
+                       return false;
                }
        }
 
@@ -154,14 +154,14 @@ BOOL ntv2_owf_gen(const uint8_t owf[16],
        if (user_byte_len == (ssize_t)-1) {
                DEBUG(0, ("push_uss2_talloc() for user returned -1 (probably talloc() failure)\n"));
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        domain_byte_len = push_ucs2_talloc(mem_ctx, &domain, domain_in);
        if (domain_byte_len == (ssize_t)-1) {
                DEBUG(0, ("push_ucs2_talloc() for domain returned -1 (probably talloc() failure)\n"));
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        SMB_ASSERT(user_byte_len >= 2);
@@ -185,7 +185,7 @@ BOOL ntv2_owf_gen(const uint8_t owf[16],
 #endif
 
        talloc_free(mem_ctx);
-       return True;
+       return true;
 }
 
 /* Does the des encryption from the NT or LM MD4 hash. */
@@ -393,7 +393,7 @@ static DATA_BLOB LMv2_generate_response(TALLOC_CTX *mem_ctx,
        return final_response;
 }
 
-BOOL SMBNTLMv2encrypt_hash(TALLOC_CTX *mem_ctx, 
+bool SMBNTLMv2encrypt_hash(TALLOC_CTX *mem_ctx, 
                           const char *user, const char *domain, const uint8_t nt_hash[16],
                           const DATA_BLOB *server_chal, 
                           const DATA_BLOB *names_blob,
@@ -406,8 +406,8 @@ BOOL SMBNTLMv2encrypt_hash(TALLOC_CTX *mem_ctx,
           the username and domain.
           This prevents username swapping during the auth exchange
        */
-       if (!ntv2_owf_gen(nt_hash, user, domain, True, ntlm_v2_hash)) {
-               return False;
+       if (!ntv2_owf_gen(nt_hash, user, domain, true, ntlm_v2_hash)) {
+               return false;
        }
        
        if (nt_response) {
@@ -437,10 +437,10 @@ BOOL SMBNTLMv2encrypt_hash(TALLOC_CTX *mem_ctx,
                }
        }
        
-       return True;
+       return true;
 }
 
-BOOL SMBNTLMv2encrypt(TALLOC_CTX *mem_ctx, 
+bool SMBNTLMv2encrypt(TALLOC_CTX *mem_ctx, 
                      const char *user, const char *domain, 
                      const char *password, 
                      const DATA_BLOB *server_chal, 
@@ -460,7 +460,7 @@ BOOL SMBNTLMv2encrypt(TALLOC_CTX *mem_ctx,
  encode a password buffer with a unicode password.  The buffer
  is filled with random data to make it harder to attack.
 ************************************************************/
-BOOL encode_pw_buffer(uint8_t buffer[516], const char *password, int string_flags)
+bool encode_pw_buffer(uint8_t buffer[516], const char *password, int string_flags)
 {
        uint8_t new_pw[512];
        size_t new_pw_len;
@@ -482,7 +482,7 @@ BOOL encode_pw_buffer(uint8_t buffer[516], const char *password, int string_flag
         */
        SIVAL(buffer, 512, new_pw_len);
        ZERO_STRUCT(new_pw);
-       return True;
+       return true;
 }
 
 
@@ -491,7 +491,7 @@ BOOL encode_pw_buffer(uint8_t buffer[516], const char *password, int string_flag
  *new_pw_len is the length in bytes of the possibly mulitbyte
  returned password including termination.
 ************************************************************/
-BOOL decode_pw_buffer(uint8_t in_buffer[516], char *new_pwrd,
+bool decode_pw_buffer(uint8_t in_buffer[516], char *new_pwrd,
                      int new_pwrd_size, uint32_t *new_pw_len,
                      int string_flags)
 {
@@ -517,7 +517,7 @@ BOOL decode_pw_buffer(uint8_t in_buffer[516], char *new_pwrd,
 
        /* Password cannot be longer than the size of the password buffer */
        if ( (byte_len < 0) || (byte_len > 512)) {
-               return False;
+               return false;
        }
 
        /* decode into the return buffer.  Buffer length supplied */
@@ -531,5 +531,5 @@ BOOL decode_pw_buffer(uint8_t in_buffer[516], char *new_pwrd,
        DEBUG(100,("original char len:%d\n", byte_len/2));
 #endif
        
-       return True;
+       return true;
 }
index 33d6e88a3063c971dd03bb8b83bbc745a49c8749..f2f661acaae8f67eefaa6c7ff185da098f275897 100644 (file)
@@ -39,6 +39,7 @@
 #include "lib/socket/socket.h"
 #include "libcli/security/security.h"
 #include "librpc/gen_ndr/ndr_nbt.h"
+#include "param/param.h"
 
 /*
   destroy a pending request
@@ -308,14 +309,15 @@ struct cldap_request *cldap_search_send(struct cldap_socket *cldap,
        req->state       = CLDAP_REQUEST_SEND;
        req->timeout     = io->in.timeout;
        req->num_retries = io->in.retries;
-       req->is_reply    = False;
+       req->is_reply    = false;
        req->asn1        = asn1_init(req);
        if (!req->asn1) {
                goto failed;
        }
 
        req->dest = socket_address_from_strings(req, cldap->sock->backend_name,
-                                               io->in.dest_address, lp_cldap_port());
+                                               io->in.dest_address, 
+                                               lp_cldap_port(global_loadparm));
        if (!req->dest) goto failed;
 
        req->message_id = idr_get_new_random(cldap->idr, req, UINT16_MAX);
@@ -335,7 +337,7 @@ struct cldap_request *cldap_search_send(struct cldap_socket *cldap,
        search->deref          = LDAP_DEREFERENCE_NEVER;
        search->timelimit      = 0;
        search->sizelimit      = 0;
-       search->attributesonly = False;
+       search->attributesonly = false;
        search->num_attributes = str_list_length(io->in.attributes);
        search->attributes     = io->in.attributes;
        search->tree           = ldb_parse_tree(req, io->in.filter);
@@ -376,7 +378,7 @@ NTSTATUS cldap_reply_send(struct cldap_socket *cldap, struct cldap_reply *io)
 
        req->cldap       = cldap;
        req->state       = CLDAP_REQUEST_SEND;
-       req->is_reply    = True;
+       req->is_reply    = true;
        req->asn1        = asn1_init(req);
        if (!req->asn1) {
                goto failed;
@@ -534,26 +536,26 @@ struct cldap_request *cldap_netlogon_send(struct cldap_socket *cldap,
                                 ldap_encode_ndr_uint32(tmp_ctx, io->in.version));
        if (filter == NULL) goto failed;
        if (io->in.user) {
-               filter = talloc_asprintf_append(filter, "(User=%s)", io->in.user);
+               filter = talloc_asprintf_append_buffer(filter, "(User=%s)", io->in.user);
                if (filter == NULL) goto failed;
        }
        if (io->in.host) {
-               filter = talloc_asprintf_append(filter, "(Host=%s)", io->in.host);
+               filter = talloc_asprintf_append_buffer(filter, "(Host=%s)", io->in.host);
                if (filter == NULL) goto failed;
        }
        if (io->in.realm) {
-               filter = talloc_asprintf_append(filter, "(DnsDomain=%s)", io->in.realm);
+               filter = talloc_asprintf_append_buffer(filter, "(DnsDomain=%s)", io->in.realm);
                if (filter == NULL) goto failed;
        }
        if (io->in.acct_control != -1) {
-               filter = talloc_asprintf_append(filter, "(AAC=%s)", 
+               filter = talloc_asprintf_append_buffer(filter, "(AAC=%s)", 
                                                ldap_encode_ndr_uint32(tmp_ctx, io->in.acct_control));
                if (filter == NULL) goto failed;
        }
        if (io->in.domain_sid) {
                struct dom_sid *sid = dom_sid_parse_talloc(tmp_ctx, io->in.domain_sid);
                if (sid == NULL) goto failed;
-               filter = talloc_asprintf_append(filter, "(domainSid=%s)",
+               filter = talloc_asprintf_append_buffer(filter, "(domainSid=%s)",
                                                ldap_encode_ndr_dom_sid(tmp_ctx, sid));
                if (filter == NULL) goto failed;
        }
@@ -562,11 +564,11 @@ struct cldap_request *cldap_netlogon_send(struct cldap_socket *cldap,
                NTSTATUS status;
                status = GUID_from_string(io->in.domain_guid, &guid);
                if (!NT_STATUS_IS_OK(status)) goto failed;
-               filter = talloc_asprintf_append(filter, "(DomainGuid=%s)",
+               filter = talloc_asprintf_append_buffer(filter, "(DomainGuid=%s)",
                                                ldap_encode_ndr_GUID(tmp_ctx, &guid));
                if (filter == NULL) goto failed;
        }
-       filter = talloc_asprintf_append(filter, ")");
+       filter = talloc_asprintf_append_buffer(filter, ")");
        if (filter == NULL) goto failed;
 
        search.in.dest_address = io->in.dest_address;
index e0f3c598b4b6c48ad4b9b383f0b7ac086f5c611e..a56100fc80c50294d11dec09624f8126fb353306 100644 (file)
 #include "libcli/raw/libcliraw.h"
 #include "libcli/auth/libcli_auth.h"
 #include "libcli/smb_composite/smb_composite.h"
+#include "param/param.h"
 
 /*
   wrapper around smbcli_sock_connect()
 */
-BOOL smbcli_socket_connect(struct smbcli_state *cli, const char *server)
+bool smbcli_socket_connect(struct smbcli_state *cli, const char *server)
 {
        struct smbcli_socket *sock;
 
        sock = smbcli_sock_connect_byname(server, 0, NULL, NULL);
 
-       if (sock == NULL) return False;
+       if (sock == NULL) return false;
        
-       cli->transport = smbcli_transport_init(sock, cli, True);
+       cli->transport = smbcli_transport_init(sock, cli, true);
        if (!cli->transport) {
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 /* wrapper around smbcli_transport_connect() */
-BOOL smbcli_transport_establish(struct smbcli_state *cli, 
+bool smbcli_transport_establish(struct smbcli_state *cli, 
                                struct nbt_name *calling,
                                struct nbt_name *called)
 {
@@ -56,7 +57,8 @@ BOOL smbcli_transport_establish(struct smbcli_state *cli,
 /* wrapper around smb_raw_negotiate() */
 NTSTATUS smbcli_negprot(struct smbcli_state *cli)
 {
-       return smb_raw_negotiate(cli->transport, lp_cli_maxprotocol());
+       return smb_raw_negotiate(cli->transport, 
+                                lp_cli_maxprotocol(global_loadparm));
 }
 
 /* wrapper around smb_raw_sesssetup() */
@@ -66,13 +68,13 @@ NTSTATUS smbcli_session_setup(struct smbcli_state *cli,
        struct smb_composite_sesssetup setup;
        NTSTATUS status;
 
-       cli->session = smbcli_session_init(cli->transport, cli, True);
+       cli->session = smbcli_session_init(cli->transport, cli, true);
        if (!cli->session) return NT_STATUS_UNSUCCESSFUL;
 
        setup.in.sesskey = cli->transport->negotiate.sesskey;
        setup.in.capabilities = cli->transport->negotiate.capabilities;
        setup.in.credentials = credentials;
-       setup.in.workgroup = lp_workgroup();
+       setup.in.workgroup = lp_workgroup(global_loadparm);
 
        status = smb_composite_sesssetup(cli->session, &setup);
 
@@ -89,7 +91,7 @@ NTSTATUS smbcli_tconX(struct smbcli_state *cli, const char *sharename,
        TALLOC_CTX *mem_ctx;
        NTSTATUS status;
 
-       cli->tree = smbcli_tree_init(cli->session, cli, True);
+       cli->tree = smbcli_tree_init(cli->session, cli, true);
        if (!cli->tree) return NT_STATUS_UNSUCCESSFUL;
 
        mem_ctx = talloc_init("tcon");
@@ -205,7 +207,7 @@ terminate_path_at_separator(char * path)
 /*
   parse a //server/share type UNC name
 */
-BOOL smbcli_parse_unc(const char *unc_name, TALLOC_CTX *mem_ctx,
+bool smbcli_parse_unc(const char *unc_name, TALLOC_CTX *mem_ctx,
                      char **hostname, char **sharename)
 {
        char *p;
@@ -214,28 +216,25 @@ BOOL smbcli_parse_unc(const char *unc_name, TALLOC_CTX *mem_ctx,
 
        if (strncmp(unc_name, "\\\\", 2) &&
            strncmp(unc_name, "//", 2)) {
-               return False;
+               return false;
        }
 
        *hostname = talloc_strdup(mem_ctx, &unc_name[2]);
        p = terminate_path_at_separator(*hostname);
 
-       if (p && *p) {
+       if (p != NULL && *p) {
                *sharename = talloc_strdup(mem_ctx, p);
                terminate_path_at_separator(*sharename);
-       } else {
-               *sharename = talloc_strdup(mem_ctx, 
-                                          lp_parm_string(-1, "torture", "share"));
        }
 
        if (*hostname && *sharename) {
-               return True;
+               return true;
        }
 
        talloc_free(*hostname);
        talloc_free(*sharename);
        *hostname = *sharename = NULL;
-       return False;
+       return false;
 }
 
 
index 33c39ea0937d9d55eb05cbe8dbf735d535c29238..2c306e501e23f8cba90f071f5cd6e57236066dcd 100644 (file)
@@ -25,7 +25,7 @@
 struct delete_state {
        struct smbcli_tree *tree;
        int total_deleted;
-       BOOL failed;
+       bool failed;
 };
 
 /* 
@@ -33,7 +33,7 @@ struct delete_state {
 */
 static void delete_fn(struct clilist_file_info *finfo, const char *name, void *state)
 {
-       struct delete_state *dstate = state;
+       struct delete_state *dstate = (struct delete_state *)state;
        char *s, *n;
        if (ISDOT(finfo->name) || ISDOTDOT(finfo->name)) {
                return;
@@ -61,14 +61,14 @@ static void delete_fn(struct clilist_file_info *finfo, const char *name, void *s
                if (NT_STATUS_IS_ERR(smbcli_rmdir(dstate->tree, s))) {
                        DEBUG(2,("Failed to delete %s - %s\n", 
                                 s, smbcli_errstr(dstate->tree)));
-                       dstate->failed = True;
+                       dstate->failed = true;
                }
                dstate->total_deleted++;
        } else {
                if (NT_STATUS_IS_ERR(smbcli_unlink(dstate->tree, s))) {
                        DEBUG(2,("Failed to delete %s - %s\n", 
                                 s, smbcli_errstr(dstate->tree)));
-                       dstate->failed = True;
+                       dstate->failed = true;
                }
                dstate->total_deleted++;
        }
@@ -87,7 +87,7 @@ int smbcli_deltree(struct smbcli_tree *tree, const char *dname)
 
        dstate.tree = tree;
        dstate.total_deleted = 0;
-       dstate.failed = False;
+       dstate.failed = false;
 
        /* it might be a file */
        if (NT_STATUS_IS_OK(smbcli_unlink(tree, dname))) {
index b30b82bd799c326a212f5d558d8760bb19dac5f7..e59b7f9af3efbb6e1be5bb720443f07cd4606a38 100644 (file)
@@ -30,7 +30,7 @@
 
 static NTSTATUS smbcli_link_internal(struct smbcli_tree *tree, 
                                  const char *fname_src, 
-                                 const char *fname_dst, BOOL hard_link)
+                                 const char *fname_dst, bool hard_link)
 {
        union smb_setfileinfo parms;
        NTSTATUS status;
@@ -84,7 +84,7 @@ uint32_t unix_perms_to_wire(mode_t perms)
 NTSTATUS smbcli_unix_symlink(struct smbcli_tree *tree, const char *fname_src, 
                          const char *fname_dst)
 {
-       return smbcli_link_internal(tree, fname_src, fname_dst, False);
+       return smbcli_link_internal(tree, fname_src, fname_dst, false);
 }
 
 /****************************************************************************
@@ -93,7 +93,7 @@ NTSTATUS smbcli_unix_symlink(struct smbcli_tree *tree, const char *fname_src,
 NTSTATUS smbcli_unix_hardlink(struct smbcli_tree *tree, const char *fname_src, 
                           const char *fname_dst)
 {
-       return smbcli_link_internal(tree, fname_src, fname_dst, True);
+       return smbcli_link_internal(tree, fname_src, fname_dst, true);
 }
 
 
@@ -206,7 +206,8 @@ NTSTATUS smbcli_rmdir(struct smbcli_tree *tree, const char *dname)
 /****************************************************************************
  Set or clear the delete on close flag.
 ****************************************************************************/
-NTSTATUS smbcli_nt_delete_on_close(struct smbcli_tree *tree, int fnum, BOOL flag)
+NTSTATUS smbcli_nt_delete_on_close(struct smbcli_tree *tree, int fnum, 
+                                  bool flag)
 {
        union smb_setfileinfo parms;
        NTSTATUS status;
index ba85ec397a632a3ae5fb2b5b7fec3267d236a4ec..07393a34919a9f45942d7f20121680c684275a82 100644 (file)
@@ -37,7 +37,7 @@ struct search_private {
 /****************************************************************************
  Interpret a long filename structure.
 ****************************************************************************/
-static BOOL interpret_long_filename(enum smb_search_data_level level,
+static bool interpret_long_filename(enum smb_search_data_level level,
                                    const union smb_search_data *info,
                                    struct clilist_file_info *finfo)
 {
@@ -65,14 +65,14 @@ static BOOL interpret_long_filename(enum smb_search_data_level level,
 
        default:
                DEBUG(0,("Unhandled level %d in interpret_long_filename\n", (int)level));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 /* callback function used for trans2 search */
-static BOOL smbcli_list_new_callback(void *private, const union smb_search_data *file)
+static bool smbcli_list_new_callback(void *private, const union smb_search_data *file)
 {
        struct search_private *state = (struct search_private*) private;
        struct clilist_file_info *tdl;
@@ -83,7 +83,7 @@ static BOOL smbcli_list_new_callback(void *private, const union smb_search_data
                             struct clilist_file_info,
                             state->dirlist_len + 1);
        if (!tdl) {
-               return False;
+               return false;
        }
        state->dirlist = tdl;
        state->dirlist_len++;
@@ -94,7 +94,7 @@ static BOOL smbcli_list_new_callback(void *private, const union smb_search_data
        state->total_received++;
        state->ff_searchcount++;
        
-       return True;
+       return true;
 }
 
 int smbcli_list_new(struct smbcli_tree *tree, const char *Mask, uint16_t attribute, 
@@ -106,7 +106,7 @@ int smbcli_list_new(struct smbcli_tree *tree, const char *Mask, uint16_t attribu
        union smb_search_next next_parms;
        struct search_private state;  /* for callbacks */
        int received = 0;
-       BOOL first = True;
+       bool first = true;
        int num_received = 0;
        int max_matches = 512;
        char *mask;
@@ -118,7 +118,8 @@ int smbcli_list_new(struct smbcli_tree *tree, const char *Mask, uint16_t attribu
        state.dirlist_len = 0;
        state.total_received = 0;
        
-       state.dirlist = talloc_new(state.mem_ctx);
+       state.dirlist = talloc_array(state.mem_ctx, 
+                                    struct clilist_file_info, 0);
        mask = talloc_strdup(state.mem_ctx, Mask);
 
        if (level == RAW_SEARCH_DATA_GENERIC) {
@@ -158,7 +159,7 @@ int smbcli_list_new(struct smbcli_tree *tree, const char *Mask, uint16_t attribu
                        received = first_parms.t2ffirst.out.count;
                        if (received <= 0) break;
                        if (ff_eos) break;
-                       first = False;
+                       first = false;
                } else {
                        NTSTATUS status;
 
@@ -202,7 +203,7 @@ int smbcli_list_new(struct smbcli_tree *tree, const char *Mask, uint16_t attribu
  Interpret a short filename structure.
  The length of the structure is returned.
 ****************************************************************************/
-static BOOL interpret_short_filename(enum smb_search_data_level level,
+static bool interpret_short_filename(enum smb_search_data_level level,
                                     const union smb_search_data *info,
                                     struct clilist_file_info *finfo)
 {
@@ -222,14 +223,14 @@ static BOOL interpret_short_filename(enum smb_search_data_level level,
 
        default:
                DEBUG(0,("Unhandled level %d in interpret_short_filename\n", (int)level));
-               return False;
+               return false;
        }
        
-       return True;
+       return true;
 }
 
 /* callback function used for smb_search */
-static BOOL smbcli_list_old_callback(void *private, const union smb_search_data *file)
+static bool smbcli_list_old_callback(void *private, const union smb_search_data *file)
 {
        struct search_private *state = (struct search_private*) private;
        struct clilist_file_info *tdl;
@@ -241,7 +242,7 @@ static BOOL smbcli_list_old_callback(void *private, const union smb_search_data
                             state->dirlist_len + 1);
 
        if (!tdl) {
-               return False;
+               return false;
        }
        state->dirlist = tdl;
        state->dirlist_len++;
@@ -252,7 +253,7 @@ static BOOL smbcli_list_old_callback(void *private, const union smb_search_data
        state->ff_searchcount++;
        state->id = file->search.id; /* return resume info */
        
-       return True;
+       return true;
 }
 
 int smbcli_list_old(struct smbcli_tree *tree, const char *Mask, uint16_t attribute, 
@@ -264,7 +265,7 @@ int smbcli_list_old(struct smbcli_tree *tree, const char *Mask, uint16_t attribu
        struct search_private state;  /* for callbacks */
        const int num_asked = 500;
        int received = 0;
-       BOOL first = True;
+       bool first = true;
        int num_received = 0;
        char *mask;
        int i;
@@ -275,7 +276,8 @@ int smbcli_list_old(struct smbcli_tree *tree, const char *Mask, uint16_t attribu
        state.total_received = 0;
        state.data_level = RAW_SEARCH_DATA_SEARCH;
 
-       state.dirlist = talloc_new(state.mem_ctx);
+       state.dirlist = talloc_array(state.mem_ctx, struct clilist_file_info,
+                                    0);
        mask = talloc_strdup(state.mem_ctx, Mask);
   
        while (1) {
@@ -301,7 +303,7 @@ int smbcli_list_old(struct smbcli_tree *tree, const char *Mask, uint16_t attribu
                
                        received = first_parms.search_first.out.count;
                        if (received <= 0) break;
-                       first = False;
+                       first = false;
                } else {
                        NTSTATUS status;
 
index 3d4d9da96cf63c5f32fb5233214c47fe1a7e8636..6002ccfc5923f88d22609d2fa3c55ea75ecc8e11 100644 (file)
 
 #include "includes.h"
 #include "libcli/raw/libcliraw.h"
+#include "libcli/libcli.h"
 
 
 /****************************************************************************
 start a message sequence
 ****************************************************************************/
-BOOL smbcli_message_start(struct smbcli_tree *tree, const char *host, const char *username, 
+bool smbcli_message_start(struct smbcli_tree *tree, const char *host, const char *username, 
                       int *grp)
 {
        struct smbcli_request *req; 
@@ -37,20 +38,20 @@ BOOL smbcli_message_start(struct smbcli_tree *tree, const char *host, const char
            !smbcli_request_receive(req) ||
            smbcli_is_error(tree)) {
                smbcli_request_destroy(req);
-               return False;
+               return false;
        }
 
        *grp = SVAL(req->in.vwv, VWV(0));
        smbcli_request_destroy(req);
 
-       return True;
+       return true;
 }
 
 
 /****************************************************************************
 send a message 
 ****************************************************************************/
-BOOL smbcli_message_text(struct smbcli_tree *tree, char *msg, int len, int grp)
+bool smbcli_message_text(struct smbcli_tree *tree, char *msg, int len, int grp)
 {
        struct smbcli_request *req; 
        
@@ -63,17 +64,17 @@ BOOL smbcli_message_text(struct smbcli_tree *tree, char *msg, int len, int grp)
            !smbcli_request_receive(req) ||
            smbcli_is_error(tree)) {
                smbcli_request_destroy(req);
-               return False;
+               return false;
        }
 
        smbcli_request_destroy(req);
-       return True;
+       return true;
 }      
 
 /****************************************************************************
 end a message 
 ****************************************************************************/
-BOOL smbcli_message_end(struct smbcli_tree *tree, int grp)
+bool smbcli_message_end(struct smbcli_tree *tree, int grp)
 {
        struct smbcli_request *req; 
        
@@ -84,10 +85,10 @@ BOOL smbcli_message_end(struct smbcli_tree *tree, int grp)
            !smbcli_request_receive(req) ||
            smbcli_is_error(tree)) {
                smbcli_request_destroy(req);
-               return False;
+               return false;
        }
 
        smbcli_request_destroy(req);
-       return True;
+       return true;
 }      
 
index 10a1c7530828b85c043dd947e62dffabe4bfd393..f5ba799bbca0a2764c98c3cd9472fca3286e4371 100644 (file)
@@ -20,6 +20,7 @@
 
 #include "includes.h"
 #include "libcli/raw/libcliraw.h"
+#include "libcli/libcli.h"
 
 /****************************************************************************
   Read size bytes at offset offset using SMBreadX.
@@ -27,7 +28,7 @@
 ssize_t smbcli_read(struct smbcli_tree *tree, int fnum, void *_buf, off_t offset, 
                 size_t size)
 {
-       uint8_t *buf = _buf;
+       uint8_t *buf = (uint8_t *)_buf;
        union smb_read parms;
        int readsize;
        ssize_t total = 0;
@@ -55,7 +56,7 @@ ssize_t smbcli_read(struct smbcli_tree *tree, int fnum, void *_buf, off_t offset
                parms.readx.in.mincnt    = readsize;
                parms.readx.in.maxcnt    = readsize;
                parms.readx.in.remaining = size - total;
-               parms.readx.in.read_for_execute = False;
+               parms.readx.in.read_for_execute = false;
                parms.readx.out.data     = buf + total;
                
                status = smb_raw_read(tree, &parms);
@@ -87,7 +88,7 @@ ssize_t smbcli_write(struct smbcli_tree *tree,
                     int fnum, uint16_t write_mode,
                     const void *_buf, off_t offset, size_t size)
 {
-       const uint8_t *buf = _buf;
+       const uint8_t *buf = (const uint8_t *)_buf;
        union smb_write parms;
        int block = (tree->session->transport->negotiate.max_xmit - (MIN_SMB_SIZE+32));
        ssize_t total = 0;
@@ -133,7 +134,7 @@ ssize_t smbcli_write(struct smbcli_tree *tree,
 ssize_t smbcli_smbwrite(struct smbcli_tree *tree,
                     int fnum, const void *_buf, off_t offset, size_t size1)
 {
-       const uint8_t *buf = _buf;
+       const uint8_t *buf = (const uint8_t *)_buf;
        union smb_write parms;
        ssize_t total = 0;
 
index 03deea2e824aefc131658725930345372593151c..5c5ba6585f6eb1e287678ca544b222ba3ec40134 100644 (file)
@@ -19,6 +19,7 @@
 
 #include "includes.h"
 #include "libcli/raw/libcliraw.h"
+#include "libcli/libcli.h"
 
 /****************************************************************************
 send a qpathinfo call
index 3e21c3823cc7aa37818d288f40954f7e5af05fc4..67d5885497938497246e83a7bbfc478466948679 100644 (file)
@@ -53,7 +53,7 @@ _PUBLIC_ NTSTATUS composite_wait(struct composite_context *c)
 {
        if (c == NULL) return NT_STATUS_NO_MEMORY;
 
-       c->used_wait = True;
+       c->used_wait = true;
 
        while (c->state < COMPOSITE_STATE_DONE) {
                if (event_loop_once(c->event_ctx) != 0) {
@@ -69,16 +69,16 @@ _PUBLIC_ NTSTATUS composite_wait(struct composite_context *c)
  * Some composite helpers that are handy if you write larger composite
  * functions.
  */
-_PUBLIC_ BOOL composite_is_ok(struct composite_context *ctx)
+_PUBLIC_ bool composite_is_ok(struct composite_context *ctx)
 {
        if (NT_STATUS_IS_OK(ctx->status)) {
-               return True;
+               return true;
        }
        ctx->state = COMPOSITE_STATE_ERROR;
        if (ctx->async.fn != NULL) {
                ctx->async.fn(ctx);
        }
-       return False;
+       return false;
 }
 
 /* 
@@ -113,13 +113,13 @@ _PUBLIC_ void composite_error(struct composite_context *ctx, NTSTATUS status)
        SMB_ASSERT(!composite_is_ok(ctx));
 }
 
-_PUBLIC_ BOOL composite_nomem(const void *p, struct composite_context *ctx)
+_PUBLIC_ bool composite_nomem(const void *p, struct composite_context *ctx)
 {
        if (p != NULL) {
-               return False;
+               return false;
        }
        composite_error(ctx, NT_STATUS_NO_MEMORY);
-       return True;
+       return true;
 }
 
 _PUBLIC_ void composite_done(struct composite_context *ctx)
index d49fc90ec4a6e17d2486c5ae07d6b6526a86e782..d7aaac04479e5334d5f4f3b030b700efb2d15dc5 100644 (file)
@@ -3,12 +3,10 @@ include ldap/config.mk
 include security/config.mk
 
 [SUBSYSTEM::LIBSAMBA-ERRORS]
-PUBLIC_PROTO_HEADER = util/proto.h
-PUBLIC_HEADERS = util/error.h util/nterr.h util/doserr.h util/nt_status.h
+PUBLIC_HEADERS = util/error.h util/ntstatus.h util/doserr.h util/werror.h
 OBJ_FILES = util/doserr.o \
-               util/errormap.o \
-               util/clierror.o \
-               util/nterr.o \
+                   util/errormap.o \
+                   util/nterr.o \
 
 [SUBSYSTEM::ASN1_UTIL]
 PUBLIC_PROTO_HEADER = util/asn1_proto.h
@@ -60,6 +58,13 @@ PUBLIC_DEPENDENCIES = LIBNDR NDR_NBT LIBCLI_COMPOSITE LIBEVENTS \
 LIBRARY_REALNAME = swig/_libcli_nbt.$(SHLIBEXT)
 OBJ_FILES = swig/libcli_nbt_wrap.o
 PUBLIC_DEPENDENCIES = LIBCLI_NBT DYNCONFIG LIBSAMBA-CONFIG
+ENABLE = NO
+
+[LIBRARY::swig_libcli_smb]
+LIBRARY_REALNAME = swig/_libcli_smb.$(SHLIBEXT)
+OBJ_FILES = swig/libcli_smb_wrap.o
+PUBLIC_DEPENDENCIES = LIBCLI_SMB DYNCONFIG LIBSAMBA-CONFIG
+ENABLE = NO
 
 [SUBSYSTEM::LIBCLI_DGRAM]
 OBJ_FILES = \
@@ -133,6 +138,7 @@ OBJ_FILES = raw/rawfile.o \
                raw/clitransport.o \
                raw/clisession.o \
                raw/clitree.o \
+               raw/clierror.o \
                raw/rawrequest.o \
                raw/rawreadwrite.o \
                raw/rawsearch.o \
index 84a2a7e534e215efa6ef5b83fcdb714cc4a3c88b..fc1162e6446cadaff5852f38b71c3038a0fb503b 100644 (file)
@@ -25,6 +25,7 @@
 #include "lib/socket/socket.h"
 #include "libcli/resolve/resolve.h"
 #include "librpc/gen_ndr/ndr_nbt.h"
+#include "param/param.h"
 
 NTSTATUS dgram_mailslot_browse_send(struct nbt_dgram_socket *dgmsock,
                                    struct nbt_name *dest_name,
@@ -69,7 +70,7 @@ NTSTATUS dgram_mailslot_browse_reply(struct nbt_dgram_socket *dgmsock,
                return status;
        }
 
-       make_nbt_name_client(&myname, lp_netbios_name());
+       make_nbt_name_client(&myname, lp_netbios_name(global_loadparm));
 
        dest = socket_address_from_strings(tmp_ctx, dgmsock->sock->backend_name, 
                                           request->src_addr, request->src_port);
index 14eb7b931b84567b64104096b78508bce2be6738..4e94e5ee5bcfababd7cbc6e218ae320182d79811 100644 (file)
@@ -36,6 +36,7 @@
 #include "lib/util/dlinklist.h"
 #include "libcli/dgram/libdgram.h"
 #include "lib/socket/socket.h"
+#include "param/param.h"
 
 /*
   destroy a mailslot handler
@@ -164,7 +165,7 @@ NTSTATUS dgram_mailslot_send(struct nbt_dgram_socket *dgmsock,
 
        if (_dest->port == 0) {
                dest = socket_address_from_strings(tmp_ctx, _dest->family, 
-                                                  _dest->addr, lp_dgram_port());
+                                                  _dest->addr, lp_dgram_port(global_loadparm));
        } else {
                dest = _dest;
        }
index df47a34a0e9d0026eed99fa309b7294f6156c4d2..46f6e50e7ba017bcdf9949b3eecfb4184a92fce0 100644 (file)
@@ -24,6 +24,7 @@
 #include "lib/socket/socket.h"
 #include "libcli/resolve/resolve.h"
 #include "librpc/gen_ndr/ndr_nbt.h"
+#include "param/param.h"
 
 /* 
    send a netlogon mailslot request 
@@ -76,7 +77,7 @@ NTSTATUS dgram_mailslot_netlogon_reply(struct nbt_dgram_socket *dgmsock,
                return status;
        }
 
-       make_nbt_name_client(&myname, lp_netbios_name());
+       make_nbt_name_client(&myname, lp_netbios_name(global_loadparm));
 
        dest = socket_address_from_strings(tmp_ctx, dgmsock->sock->backend_name, 
                                           request->src_addr, request->src_port);
index 5881dcf7021ae05df5343a74c7ea0411cb99f7ad..25f767688a70e2b04e738b9d02312bd800abc19d 100644 (file)
@@ -24,6 +24,7 @@
 #include "lib/socket/socket.h"
 #include "libcli/resolve/resolve.h"
 #include "librpc/gen_ndr/ndr_nbt.h"
+#include "param/param.h"
 
 /* 
    send a ntlogon mailslot request 
@@ -77,7 +78,7 @@ NTSTATUS dgram_mailslot_ntlogon_reply(struct nbt_dgram_socket *dgmsock,
                return status;
        }
 
-       make_nbt_name_client(&myname, lp_netbios_name());
+       make_nbt_name_client(&myname, lp_netbios_name(global_loadparm));
 
        dest = socket_address_from_strings(tmp_ctx, 
                                           dgmsock->sock->backend_name, 
index a159ab6dfcc0ed390c82364ddae7bf4b15ca11f7..e00697fe17ae21cae1e66a07248e85490ddff00e 100644 (file)
@@ -27,6 +27,8 @@
 #include "libcli/composite/composite.h"
 #include "libcli/libcli.h"
 #include "libcli/resolve/resolve.h"
+#include "libcli/finddcs.h"
+#include "param/param.h"
 
 struct finddcs_state {
        struct composite_context *ctx;
@@ -143,9 +145,9 @@ static void finddcs_name_resolved(struct composite_context *ctx)
 
        state->r.in.domainname = state->domain_name;
        state->r.in.ip_address = state->dcs[0].address;
-       state->r.in.my_computername = lp_netbios_name();
+       state->r.in.my_computername = lp_netbios_name(global_loadparm);
        state->r.in.my_accountname = talloc_asprintf(state, "%s$",
-                                                    lp_netbios_name());
+                                       lp_netbios_name(global_loadparm));
        if (composite_nomem(state->r.in.my_accountname, state->ctx)) return;
        state->r.in.account_control = ACB_WSTRUST;
        state->r.in.domain_sid = state->domain_sid;
index 64f6f90d31f419ece4a23db6b1e45826b1046b25..11689fbd7999901151571c022319e6b1d15bf939 100644 (file)
@@ -27,7 +27,7 @@
 #include "libcli/ldap/ldap.h"
 
 
-static BOOL ldap_push_filter(struct asn1_data *data, struct ldb_parse_tree *tree)
+static bool ldap_push_filter(struct asn1_data *data, struct ldb_parse_tree *tree)
 {
        int i;
 
@@ -37,7 +37,7 @@ static BOOL ldap_push_filter(struct asn1_data *data, struct ldb_parse_tree *tree
                asn1_push_tag(data, ASN1_CONTEXT(tree->operation==LDB_OP_AND?0:1));
                for (i=0; i<tree->u.list.num_elements; i++) {
                        if (!ldap_push_filter(data, tree->u.list.elements[i])) {
-                               return False;
+                               return false;
                        }
                }
                asn1_pop_tag(data);
@@ -46,7 +46,7 @@ static BOOL ldap_push_filter(struct asn1_data *data, struct ldb_parse_tree *tree
        case LDB_OP_NOT:
                asn1_push_tag(data, ASN1_CONTEXT(2));
                if (!ldap_push_filter(data, tree->u.isnot.child)) {
-                       return False;
+                       return false;
                }
                asn1_pop_tag(data);
                break;
@@ -166,7 +166,7 @@ static BOOL ldap_push_filter(struct asn1_data *data, struct ldb_parse_tree *tree
                break;
 
        default:
-               return False;
+               return false;
        }
        return !data->has_error;
 }
@@ -187,12 +187,12 @@ static void ldap_encode_response(struct asn1_data *data, struct ldap_Result *res
        }
 }
 
-BOOL ldap_encode(struct ldap_message *msg, DATA_BLOB *result, TALLOC_CTX *mem_ctx)
+bool ldap_encode(struct ldap_message *msg, DATA_BLOB *result, TALLOC_CTX *mem_ctx)
 {
        struct asn1_data *data = asn1_init(mem_ctx);
        int i, j;
 
-       if (!data) return False;
+       if (!data) return false;
 
        asn1_push_tag(data, ASN1_SEQUENCE(0));
        asn1_write_Integer(data, msg->messageid);
@@ -225,7 +225,7 @@ BOOL ldap_encode(struct ldap_message *msg, DATA_BLOB *result, TALLOC_CTX *mem_ct
                        asn1_pop_tag(data);
                        break;
                default:
-                       return False;
+                       return false;
                }
 
                asn1_pop_tag(data);
@@ -256,7 +256,7 @@ BOOL ldap_encode(struct ldap_message *msg, DATA_BLOB *result, TALLOC_CTX *mem_ct
                asn1_write_BOOLEAN(data, r->attributesonly);
 
                if (!ldap_push_filter(data, r->tree)) {
-                       return False;
+                       return false;
                }
 
                asn1_push_tag(data, ASN1_SEQUENCE(0));
@@ -467,7 +467,7 @@ BOOL ldap_encode(struct ldap_message *msg, DATA_BLOB *result, TALLOC_CTX *mem_ct
                break;
        }
        default:
-               return False;
+               return false;
        }
 
        if (msg->controls != NULL) {
@@ -475,7 +475,7 @@ BOOL ldap_encode(struct ldap_message *msg, DATA_BLOB *result, TALLOC_CTX *mem_ct
                
                for (i = 0; msg->controls[i] != NULL; i++) {
                        if (!ldap_encode_control(mem_ctx, data, msg->controls[i])) {
-                               return False;
+                               return false;
                        }
                }
 
@@ -486,33 +486,33 @@ BOOL ldap_encode(struct ldap_message *msg, DATA_BLOB *result, TALLOC_CTX *mem_ct
 
        if (data->has_error) {
                asn1_free(data);
-               return False;
+               return false;
        }
 
        *result = data_blob_talloc(mem_ctx, data->data, data->length);
        asn1_free(data);
-       return True;
+       return true;
 }
 
 static const char *blob2string_talloc(TALLOC_CTX *mem_ctx,
                                      DATA_BLOB blob)
 {
-       char *result = talloc_size(mem_ctx, blob.length+1);
+       char *result = talloc_array(mem_ctx, char, blob.length+1);
        memcpy(result, blob.data, blob.length);
        result[blob.length] = '\0';
        return result;
 }
 
-static BOOL asn1_read_OctetString_talloc(TALLOC_CTX *mem_ctx,
+static bool asn1_read_OctetString_talloc(TALLOC_CTX *mem_ctx,
                                         struct asn1_data *data,
                                         const char **result)
 {
        DATA_BLOB string;
        if (!asn1_read_OctetString(data, mem_ctx, &string))
-               return False;
+               return false;
        *result = blob2string_talloc(mem_ctx, string);
        data_blob_free(&string);
-       return True;
+       return true;
 }
 
 static void ldap_decode_response(TALLOC_CTX *mem_ctx,
@@ -955,7 +955,7 @@ NTSTATUS ldap_decode(struct asn1_data *data, struct ldap_message *msg)
                                return NT_STATUS_LDAP(LDAP_PROTOCOL_ERROR);
                        }
                        if (pwlen != 0) {
-                               char *pw = talloc_size(msg, pwlen+1);
+                               char *pw = talloc_array(msg, char, pwlen+1);
                                if (!pw) {
                                        return NT_STATUS_LDAP(LDAP_OPERATIONS_ERROR);
                                }
@@ -1162,7 +1162,7 @@ NTSTATUS ldap_decode(struct asn1_data *data, struct ldap_message *msg)
                if (len == -1) {
                        return NT_STATUS_LDAP(LDAP_PROTOCOL_ERROR);
                }
-               dn = talloc_size(msg, len+1);
+               dn = talloc_array(msg, char, len+1);
                if (dn == NULL)
                        break;
                asn1_read(data, dn, len);
@@ -1198,7 +1198,7 @@ NTSTATUS ldap_decode(struct asn1_data *data, struct ldap_message *msg)
                        if (len == -1) {
                                return NT_STATUS_LDAP(LDAP_PROTOCOL_ERROR);
                        }
-                       newsup = talloc_size(msg, len+1);
+                       newsup = talloc_array(msg, char, len+1);
                        if (newsup == NULL) {
                                return NT_STATUS_LDAP(LDAP_OPERATIONS_ERROR);
                        }
index 022c70e36aee81320bd1f4919d888e6c2e4041cc..e89322213aa891a4a43a556cd1bb2e580f0506cb 100644 (file)
@@ -22,6 +22,7 @@
 #define _SMB_LDAP_H
 
 #include "lib/ldb/include/ldb.h"
+#include "librpc/gen_ndr/misc.h"
 
 enum ldap_request_tag {
        LDAP_TAG_BindRequest = 0,
index cbe8772414317e5797490ee52a4ab73c4557bd19..d285735d4e0318c17439343807555604826491de 100644 (file)
@@ -258,7 +258,7 @@ NTSTATUS ldap_bind_sasl(struct ldap_connection *conn, struct cli_credentials *cr
        }
 
        status = ildap_search(conn, "", LDAP_SEARCH_SCOPE_BASE, "", supported_sasl_mech_attrs, 
-                             False, NULL, NULL, &sasl_mechs_msgs);
+                             false, NULL, NULL, &sasl_mechs_msgs);
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(1, ("Failed to inquire of target's available sasl mechs in rootdse search: %s\n", 
                          nt_errstr(status)));
index 8476a4977b0a0da0e26eae8dfaff910d70ed1bf8..aea95de161b0ce6c9ffb8b686cd2c4ba89fbe115 100644 (file)
@@ -226,7 +226,7 @@ static void ldap_io_handler(struct event_context *ev, struct fd_event *fde,
   parse a ldap URL
 */
 static NTSTATUS ldap_parse_basic_url(TALLOC_CTX *mem_ctx, const char *url,
-                                    char **host, uint16_t *port, BOOL *ldaps)
+                                    char **host, uint16_t *port, bool *ldaps)
 {
        int tmp_port = 0;
        char protocol[11];
@@ -243,10 +243,10 @@ static NTSTATUS ldap_parse_basic_url(TALLOC_CTX *mem_ctx, const char *url,
 
        if (strequal(protocol, "ldap")) {
                *port = 389;
-               *ldaps = False;
+               *ldaps = false;
        } else if (strequal(protocol, "ldaps")) {
                *port = 636;
-               *ldaps = True;
+               *ldaps = true;
        } else {
                DEBUG(0, ("unrecognised ldap protocol (%s)!\n", protocol));
                return NT_STATUS_PROTOCOL_UNREACHABLE;
index 3a5d14c0c939df8e4f94154a4dec6be5ffa24ec4..b7fd1ce17823a0244362efcf7784c6b5a698cabd 100644 (file)
 
 struct control_handler {
        const char *oid;
-       BOOL (*decode)(void *mem_ctx, DATA_BLOB in, void **out);
-       BOOL (*encode)(void *mem_ctx, void *in, DATA_BLOB *out);
+       bool (*decode)(void *mem_ctx, DATA_BLOB in, void **out);
+       bool (*encode)(void *mem_ctx, void *in, DATA_BLOB *out);
 };
 
-static BOOL decode_server_sort_response(void *mem_ctx, DATA_BLOB in, void **out)
+static bool decode_server_sort_response(void *mem_ctx, DATA_BLOB in, void **out)
 {
        DATA_BLOB attr;
        struct asn1_data *data = asn1_init(mem_ctx);
        struct ldb_sort_resp_control *lsrc;
 
-       if (!data) return False;
+       if (!data) return false;
 
        if (!asn1_load(data, in)) {
-               return False;
+               return false;
        }
 
        lsrc = talloc(mem_ctx, struct ldb_sort_resp_control);
        if (!lsrc) {
-               return False;
+               return false;
        }
 
        if (!asn1_start_tag(data, ASN1_SEQUENCE(0))) {
-               return False;
+               return false;
        }
 
        if (!asn1_read_enumerated(data, &(lsrc->result))) {
-               return False;
+               return false;
        }
 
        lsrc->attr_desc = NULL;
        if (asn1_peek_tag(data, ASN1_OCTET_STRING)) {
                if (!asn1_read_OctetString(data, mem_ctx, &attr)) {
-                       return False;
+                       return false;
                }
                lsrc->attr_desc = talloc_strndup(lsrc, (const char *)attr.data, attr.length);
                if (!lsrc->attr_desc) {
-                       return False;
+                       return false;
                }
        }
 
        if (!asn1_end_tag(data)) {
-               return False;
+               return false;
        }
 
        *out = lsrc;
 
-       return True;
+       return true;
 }
 
-static BOOL decode_server_sort_request(void *mem_ctx, DATA_BLOB in, void **out)
+static bool decode_server_sort_request(void *mem_ctx, DATA_BLOB in, void **out)
 {
        DATA_BLOB attr;
        DATA_BLOB rule;
@@ -83,14 +83,14 @@ static BOOL decode_server_sort_request(void *mem_ctx, DATA_BLOB in, void **out)
        struct ldb_server_sort_control **lssc;
        int num;
 
-       if (!data) return False;
+       if (!data) return false;
 
        if (!asn1_load(data, in)) {
-               return False;
+               return false;
        }
 
        if (!asn1_start_tag(data, ASN1_SEQUENCE(0))) {
-               return False;
+               return false;
        }
 
        lssc = NULL;
@@ -98,46 +98,46 @@ static BOOL decode_server_sort_request(void *mem_ctx, DATA_BLOB in, void **out)
        for (num = 0; asn1_peek_tag(data, ASN1_SEQUENCE(0)); num++) {
                lssc = talloc_realloc(mem_ctx, lssc, struct ldb_server_sort_control *, num + 2);
                if (!lssc) {
-                       return False;
+                       return false;
                }
                lssc[num] = talloc_zero(lssc, struct ldb_server_sort_control);
                if (!lssc[num]) {
-                       return False;
+                       return false;
                }
 
                if (!asn1_start_tag(data, ASN1_SEQUENCE(0))) {
-                       return False;
+                       return false;
                }
 
                if (!asn1_read_OctetString(data, mem_ctx, &attr)) {
-                       return False;
+                       return false;
                }
 
                lssc[num]->attributeName = talloc_strndup(lssc[num], (const char *)attr.data, attr.length);
                if (!lssc [num]->attributeName) {
-                       return False;
+                       return false;
                }
        
                if (asn1_peek_tag(data, ASN1_OCTET_STRING)) {
                        if (!asn1_read_OctetString(data, mem_ctx, &rule)) {
-                               return False;
+                               return false;
                        }
                        lssc[num]->orderingRule = talloc_strndup(lssc[num], (const char *)rule.data, rule.length);
                        if (!lssc[num]->orderingRule) {
-                               return False;
+                               return false;
                        }
                }
 
                if (asn1_peek_tag(data, ASN1_BOOLEAN)) {
-                       BOOL reverse;
+                       bool reverse;
                        if (!asn1_read_BOOLEAN(data, &reverse)) {
-                       return False;
+                       return false;
                        }
                        lssc[num]->reverse = reverse;
                }
        
                if (!asn1_end_tag(data)) {
-                       return False;
+                       return false;
                }
        }
 
@@ -146,248 +146,248 @@ static BOOL decode_server_sort_request(void *mem_ctx, DATA_BLOB in, void **out)
        }
 
        if (!asn1_end_tag(data)) {
-               return False;
+               return false;
        }
 
        *out = lssc;
 
-       return True;
+       return true;
 }
 
-static BOOL decode_extended_dn_request(void *mem_ctx, DATA_BLOB in, void **out)
+static bool decode_extended_dn_request(void *mem_ctx, DATA_BLOB in, void **out)
 {
        struct asn1_data *data = asn1_init(mem_ctx);
        struct ldb_extended_dn_control *ledc;
 
-       if (!data) return False;
+       if (!data) return false;
 
        if (!asn1_load(data, in)) {
-               return False;
+               return false;
        }
 
        ledc = talloc(mem_ctx, struct ldb_extended_dn_control);
        if (!ledc) {
-               return False;
+               return false;
        }
 
        if (!asn1_start_tag(data, ASN1_SEQUENCE(0))) {
-               return False;
+               return false;
        }
 
        if (!asn1_read_Integer(data, &(ledc->type))) {
-               return False;
+               return false;
        }
        
        if (!asn1_end_tag(data)) {
-               return False;
+               return false;
        }
 
        *out = ledc;
 
-       return True;
+       return true;
 }
 
-static BOOL decode_sd_flags_request(void *mem_ctx, DATA_BLOB in, void **out)
+static bool decode_sd_flags_request(void *mem_ctx, DATA_BLOB in, void **out)
 {
        struct asn1_data *data = asn1_init(mem_ctx);
        struct ldb_sd_flags_control *lsdfc;
 
-       if (!data) return False;
+       if (!data) return false;
 
        if (!asn1_load(data, in)) {
-               return False;
+               return false;
        }
 
        lsdfc = talloc(mem_ctx, struct ldb_sd_flags_control);
        if (!lsdfc) {
-               return False;
+               return false;
        }
 
        if (!asn1_start_tag(data, ASN1_SEQUENCE(0))) {
-               return False;
+               return false;
        }
 
        if (!asn1_read_Integer(data, &(lsdfc->secinfo_flags))) {
-               return False;
+               return false;
        }
 
        if (!asn1_end_tag(data)) {
-               return False;
+               return false;
        }
 
        *out = lsdfc;
 
-       return True;
+       return true;
 }
 
-static BOOL decode_search_options_request(void *mem_ctx, DATA_BLOB in, void **out)
+static bool decode_search_options_request(void *mem_ctx, DATA_BLOB in, void **out)
 {
        struct asn1_data *data = asn1_init(mem_ctx);
        struct ldb_search_options_control *lsoc;
 
-       if (!data) return False;
+       if (!data) return false;
 
        if (!asn1_load(data, in)) {
-               return False;
+               return false;
        }
 
        lsoc = talloc(mem_ctx, struct ldb_search_options_control);
        if (!lsoc) {
-               return False;
+               return false;
        }
 
        if (!asn1_start_tag(data, ASN1_SEQUENCE(0))) {
-               return False;
+               return false;
        }
 
        if (!asn1_read_Integer(data, &(lsoc->search_options))) {
-               return False;
+               return false;
        }
 
        if (!asn1_end_tag(data)) {
-               return False;
+               return false;
        }
 
        *out = lsoc;
 
-       return True;
+       return true;
 }
 
-static BOOL decode_paged_results_request(void *mem_ctx, DATA_BLOB in, void **out)
+static bool decode_paged_results_request(void *mem_ctx, DATA_BLOB in, void **out)
 {
        DATA_BLOB cookie;
        struct asn1_data *data = asn1_init(mem_ctx);
        struct ldb_paged_control *lprc;
 
-       if (!data) return False;
+       if (!data) return false;
 
        if (!asn1_load(data, in)) {
-               return False;
+               return false;
        }
 
        lprc = talloc(mem_ctx, struct ldb_paged_control);
        if (!lprc) {
-               return False;
+               return false;
        }
 
        if (!asn1_start_tag(data, ASN1_SEQUENCE(0))) {
-               return False;
+               return false;
        }
 
        if (!asn1_read_Integer(data, &(lprc->size))) {
-               return False;
+               return false;
        }
        
        if (!asn1_read_OctetString(data, mem_ctx, &cookie)) {
-               return False;
+               return false;
        }
        lprc->cookie_len = cookie.length;
        if (lprc->cookie_len) {
                lprc->cookie = talloc_memdup(lprc, cookie.data, cookie.length);
 
                if (!(lprc->cookie)) {
-                       return False;
+                       return false;
                }
        } else {
                lprc->cookie = NULL;
        }
 
        if (!asn1_end_tag(data)) {
-               return False;
+               return false;
        }
 
        *out = lprc;
 
-       return True;
+       return true;
 }
 
-static BOOL decode_dirsync_request(void *mem_ctx, DATA_BLOB in, void **out)
+static bool decode_dirsync_request(void *mem_ctx, DATA_BLOB in, void **out)
 {
        DATA_BLOB cookie;
        struct asn1_data *data = asn1_init(mem_ctx);
        struct ldb_dirsync_control *ldc;
 
-       if (!data) return False;
+       if (!data) return false;
 
        if (!asn1_load(data, in)) {
-               return False;
+               return false;
        }
 
        ldc = talloc(mem_ctx, struct ldb_dirsync_control);
        if (!ldc) {
-               return False;
+               return false;
        }
 
        if (!asn1_start_tag(data, ASN1_SEQUENCE(0))) {
-               return False;
+               return false;
        }
 
        if (!asn1_read_Integer(data, &(ldc->flags))) {
-               return False;
+               return false;
        }
        
        if (!asn1_read_Integer(data, &(ldc->max_attributes))) {
-               return False;
+               return false;
        }
        
        if (!asn1_read_OctetString(data, mem_ctx, &cookie)) {
-               return False;
+               return false;
        }
        ldc->cookie_len = cookie.length;
        if (ldc->cookie_len) {
                ldc->cookie = talloc_memdup(ldc, cookie.data, cookie.length);
 
                if (!(ldc->cookie)) {
-                       return False;
+                       return false;
                }
        } else {
                ldc->cookie = NULL;
        }
 
        if (!asn1_end_tag(data)) {
-               return False;
+               return false;
        }
 
        *out = ldc;
 
-       return True;
+       return true;
 }
 
 /* seem that this controls has 2 forms one in case it is used with
  * a Search Request and another when used ina Search Response
  */
-static BOOL decode_asq_control(void *mem_ctx, DATA_BLOB in, void **out)
+static bool decode_asq_control(void *mem_ctx, DATA_BLOB in, void **out)
 {
        DATA_BLOB source_attribute;
        struct asn1_data *data = asn1_init(mem_ctx);
        struct ldb_asq_control *lac;
 
-       if (!data) return False;
+       if (!data) return false;
 
        if (!asn1_load(data, in)) {
-               return False;
+               return false;
        }
 
        lac = talloc(mem_ctx, struct ldb_asq_control);
        if (!lac) {
-               return False;
+               return false;
        }
 
        if (!asn1_start_tag(data, ASN1_SEQUENCE(0))) {
-               return False;
+               return false;
        }
 
        if (asn1_peek_tag(data, ASN1_OCTET_STRING)) {
 
                if (!asn1_read_OctetString(data, mem_ctx, &source_attribute)) {
-                       return False;
+                       return false;
                }
                lac->src_attr_len = source_attribute.length;
                if (lac->src_attr_len) {
                        lac->source_attribute = talloc_strndup(lac, (const char *)source_attribute.data, source_attribute.length);
 
                        if (!(lac->source_attribute)) {
-                               return False;
+                               return false;
                        }
                } else {
                        lac->source_attribute = NULL;
@@ -398,96 +398,96 @@ static BOOL decode_asq_control(void *mem_ctx, DATA_BLOB in, void **out)
        } else if (asn1_peek_tag(data, ASN1_ENUMERATED)) {
 
                if (!asn1_read_enumerated(data, &(lac->result))) {
-                       return False;
+                       return false;
                }
 
                lac->request = 0;
 
        } else {
-               return False;
+               return false;
        }
 
        if (!asn1_end_tag(data)) {
-               return False;
+               return false;
        }
 
        *out = lac;
 
-       return True;
+       return true;
 }
 
-static BOOL decode_domain_scope_request(void *mem_ctx, DATA_BLOB in, void **out)
+static bool decode_domain_scope_request(void *mem_ctx, DATA_BLOB in, void **out)
 {
        if (in.length != 0) {
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL decode_notification_request(void *mem_ctx, DATA_BLOB in, void **out)
+static bool decode_notification_request(void *mem_ctx, DATA_BLOB in, void **out)
 {
        if (in.length != 0) {
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL decode_show_deleted_request(void *mem_ctx, DATA_BLOB in, void **out)
+static bool decode_show_deleted_request(void *mem_ctx, DATA_BLOB in, void **out)
 {
        if (in.length != 0) {
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL decode_permissive_modify_request(void *mem_ctx, DATA_BLOB in, void **out)
+static bool decode_permissive_modify_request(void *mem_ctx, DATA_BLOB in, void **out)
 {
        if (in.length != 0) {
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL decode_manageDSAIT_request(void *mem_ctx, DATA_BLOB in, void **out)
+static bool decode_manageDSAIT_request(void *mem_ctx, DATA_BLOB in, void **out)
 {
        if (in.length != 0) {
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL decode_vlv_request(void *mem_ctx, DATA_BLOB in, void **out)
+static bool decode_vlv_request(void *mem_ctx, DATA_BLOB in, void **out)
 {
        DATA_BLOB assertion_value, context_id;
        struct asn1_data *data = asn1_init(mem_ctx);
        struct ldb_vlv_req_control *lvrc;
 
-       if (!data) return False;
+       if (!data) return false;
 
        if (!asn1_load(data, in)) {
-               return False;
+               return false;
        }
 
        lvrc = talloc(mem_ctx, struct ldb_vlv_req_control);
        if (!lvrc) {
-               return False;
+               return false;
        }
 
        if (!asn1_start_tag(data, ASN1_SEQUENCE(0))) {
-               return False;
+               return false;
        }
 
        if (!asn1_read_Integer(data, &(lvrc->beforeCount))) {
-               return False;
+               return false;
        }
        
        if (!asn1_read_Integer(data, &(lvrc->afterCount))) {
-               return False;
+               return false;
        }
 
        if (asn1_peek_tag(data, ASN1_CONTEXT(0))) {
@@ -495,27 +495,27 @@ static BOOL decode_vlv_request(void *mem_ctx, DATA_BLOB in, void **out)
                lvrc->type = 0;
                
                if (!asn1_start_tag(data, ASN1_CONTEXT(0))) {
-                       return False;
+                       return false;
                }
 
                if (!asn1_start_tag(data, ASN1_SEQUENCE(0))) {
-                       return False;
+                       return false;
                }
 
                if (!asn1_read_Integer(data, &(lvrc->match.byOffset.offset))) {
-                       return False;
+                       return false;
                }
 
                if (!asn1_read_Integer(data, &(lvrc->match.byOffset.contentCount))) {
-                       return False;
+                       return false;
                }
 
                if (!asn1_end_tag(data)) { /*SEQUENCE*/
-                       return False;
+                       return false;
                }
 
                if (!asn1_end_tag(data)) { /*CONTEXT*/
-                       return False;
+                       return false;
                }
 
        } else {
@@ -523,38 +523,38 @@ static BOOL decode_vlv_request(void *mem_ctx, DATA_BLOB in, void **out)
                lvrc->type = 1;
 
                if (!asn1_start_tag(data, ASN1_CONTEXT(1))) {
-                       return False;
+                       return false;
                }
 
                if (!asn1_read_OctetString(data, mem_ctx, &assertion_value)) {
-                       return False;
+                       return false;
                }
                lvrc->match.gtOrEq.value_len = assertion_value.length;
                if (lvrc->match.gtOrEq.value_len) {
                        lvrc->match.gtOrEq.value = talloc_memdup(lvrc, assertion_value.data, assertion_value.length);
 
                        if (!(lvrc->match.gtOrEq.value)) {
-                               return False;
+                               return false;
                        }
                } else {
                        lvrc->match.gtOrEq.value = NULL;
                }
 
                if (!asn1_end_tag(data)) { /*CONTEXT*/
-                       return False;
+                       return false;
                }
        }
 
        if (asn1_peek_tag(data, ASN1_OCTET_STRING)) {
                if (!asn1_read_OctetString(data, mem_ctx, &context_id)) {
-                       return False;
+                       return false;
                }
                lvrc->ctxid_len = context_id.length;
                if (lvrc->ctxid_len) {
                        lvrc->contextId = talloc_memdup(lvrc, context_id.data, context_id.length);
 
                        if (!(lvrc->contextId)) {
-                               return False;
+                               return false;
                        }
                } else {
                        lvrc->contextId = NULL;
@@ -565,54 +565,54 @@ static BOOL decode_vlv_request(void *mem_ctx, DATA_BLOB in, void **out)
        }
 
        if (!asn1_end_tag(data)) {
-               return False;
+               return false;
        }
 
        *out = lvrc;
 
-       return True;
+       return true;
 }
 
-static BOOL decode_vlv_response(void *mem_ctx, DATA_BLOB in, void **out)
+static bool decode_vlv_response(void *mem_ctx, DATA_BLOB in, void **out)
 {
        DATA_BLOB context_id;
        struct asn1_data *data = asn1_init(mem_ctx);
        struct ldb_vlv_resp_control *lvrc;
 
-       if (!data) return False;
+       if (!data) return false;
 
        if (!asn1_load(data, in)) {
-               return False;
+               return false;
        }
 
        lvrc = talloc(mem_ctx, struct ldb_vlv_resp_control);
        if (!lvrc) {
-               return False;
+               return false;
        }
 
        if (!asn1_start_tag(data, ASN1_SEQUENCE(0))) {
-               return False;
+               return false;
        }
 
        if (!asn1_read_Integer(data, &(lvrc->targetPosition))) {
-               return False;
+               return false;
        }
        
        if (!asn1_read_Integer(data, &(lvrc->contentCount))) {
-               return False;
+               return false;
        }
        
        if (!asn1_read_enumerated(data, &(lvrc->vlv_result))) {
-               return False;
+               return false;
        }
 
        if (asn1_peek_tag(data, ASN1_OCTET_STRING)) {
                if (!asn1_read_OctetString(data, mem_ctx, &context_id)) {
-                       return False;
+                       return false;
                }
                lvrc->contextId = talloc_strndup(lvrc, (const char *)context_id.data, context_id.length);
                if (!lvrc->contextId) {
-                       return False;
+                       return false;
                }
                lvrc->ctxid_len = context_id.length;
        } else {
@@ -621,455 +621,455 @@ static BOOL decode_vlv_response(void *mem_ctx, DATA_BLOB in, void **out)
        }
 
        if (!asn1_end_tag(data)) {
-               return False;
+               return false;
        }
 
        *out = lvrc;
 
-       return True;
+       return true;
 }
 
-static BOOL encode_server_sort_response(void *mem_ctx, void *in, DATA_BLOB *out)
+static bool encode_server_sort_response(void *mem_ctx, void *in, DATA_BLOB *out)
 {
        struct ldb_sort_resp_control *lsrc = talloc_get_type(in, struct ldb_sort_resp_control);
        struct asn1_data *data = asn1_init(mem_ctx);
 
-       if (!data) return False;
+       if (!data) return false;
 
        if (!asn1_push_tag(data, ASN1_SEQUENCE(0))) {
-               return False;
+               return false;
        }
 
        if (!asn1_write_enumerated(data, lsrc->result)) {
-               return False;
+               return false;
        }
 
        if (lsrc->attr_desc) {
                if (!asn1_write_OctetString(data, lsrc->attr_desc, strlen(lsrc->attr_desc))) {
-                       return False;
+                       return false;
                }
        }
 
        if (!asn1_pop_tag(data)) {
-               return False;
+               return false;
        }
 
        *out = data_blob_talloc(mem_ctx, data->data, data->length);
        if (out->data == NULL) {
-               return False;
+               return false;
        }
        talloc_free(data);
 
-       return True;
+       return true;
 }
 
-static BOOL encode_server_sort_request(void *mem_ctx, void *in, DATA_BLOB *out)
+static bool encode_server_sort_request(void *mem_ctx, void *in, DATA_BLOB *out)
 {
        struct ldb_server_sort_control **lssc = talloc_get_type(in, struct ldb_server_sort_control *);
        struct asn1_data *data = asn1_init(mem_ctx);
        int num;
 
-       if (!data) return False;
+       if (!data) return false;
 
        if (!asn1_push_tag(data, ASN1_SEQUENCE(0))) {
-               return False;
+               return false;
        }
 
        for (num = 0; lssc[num]; num++) {
                if (!asn1_push_tag(data, ASN1_SEQUENCE(0))) {
-                       return False;
+                       return false;
                }
                
                if (!asn1_write_OctetString(data, lssc[num]->attributeName, strlen(lssc[num]->attributeName))) {
-                       return False;
+                       return false;
                }
 
                if (lssc[num]->orderingRule) {
                        if (!asn1_write_OctetString(data, lssc[num]->orderingRule, strlen(lssc[num]->orderingRule))) {
-                               return False;
+                               return false;
                        }
                }
 
                if (lssc[num]->reverse) {
                        if (!asn1_write_BOOLEAN(data, lssc[num]->reverse)) {
-                               return False;
+                               return false;
                        }
                }
 
                if (!asn1_pop_tag(data)) {
-                       return False;
+                       return false;
                }
        }
 
        if (!asn1_pop_tag(data)) {
-               return False;
+               return false;
        }
 
        *out = data_blob_talloc(mem_ctx, data->data, data->length);
        if (out->data == NULL) {
-               return False;
+               return false;
        }
        talloc_free(data);
 
-       return True;
+       return true;
 }
 
-static BOOL encode_extended_dn_request(void *mem_ctx, void *in, DATA_BLOB *out)
+static bool encode_extended_dn_request(void *mem_ctx, void *in, DATA_BLOB *out)
 {
        struct ldb_extended_dn_control *ledc = talloc_get_type(in, struct ldb_extended_dn_control);
        struct asn1_data *data = asn1_init(mem_ctx);
 
-       if (!data) return False;
+       if (!data) return false;
 
        if (!asn1_push_tag(data, ASN1_SEQUENCE(0))) {
-               return False;
+               return false;
        }
 
        if (!asn1_write_Integer(data, ledc->type)) {
-               return False;
+               return false;
        }
 
        if (!asn1_pop_tag(data)) {
-               return False;
+               return false;
        }
 
        *out = data_blob_talloc(mem_ctx, data->data, data->length);
        if (out->data == NULL) {
-               return False;
+               return false;
        }
        talloc_free(data);
 
-       return True;
+       return true;
 }
 
-static BOOL encode_sd_flags_request(void *mem_ctx, void *in, DATA_BLOB *out)
+static bool encode_sd_flags_request(void *mem_ctx, void *in, DATA_BLOB *out)
 {
        struct ldb_sd_flags_control *lsdfc = talloc_get_type(in, struct ldb_sd_flags_control);
        struct asn1_data *data = asn1_init(mem_ctx);
 
-       if (!data) return False;
+       if (!data) return false;
 
        if (!asn1_push_tag(data, ASN1_SEQUENCE(0))) {
-               return False;
+               return false;
        }
 
        if (!asn1_write_Integer(data, lsdfc->secinfo_flags)) {
-               return False;
+               return false;
        }
 
        if (!asn1_pop_tag(data)) {
-               return False;
+               return false;
        }
 
        *out = data_blob_talloc(mem_ctx, data->data, data->length);
        if (out->data == NULL) {
-               return False;
+               return false;
        }
        talloc_free(data);
 
-       return True;
+       return true;
 }
 
-static BOOL encode_search_options_request(void *mem_ctx, void *in, DATA_BLOB *out)
+static bool encode_search_options_request(void *mem_ctx, void *in, DATA_BLOB *out)
 {
        struct ldb_search_options_control *lsoc = talloc_get_type(in, struct ldb_search_options_control);
        struct asn1_data *data = asn1_init(mem_ctx);
 
-       if (!data) return False;
+       if (!data) return false;
 
        if (!asn1_push_tag(data, ASN1_SEQUENCE(0))) {
-               return False;
+               return false;
        }
 
        if (!asn1_write_Integer(data, lsoc->search_options)) {
-               return False;
+               return false;
        }
 
        if (!asn1_pop_tag(data)) {
-               return False;
+               return false;
        }
 
        *out = data_blob_talloc(mem_ctx, data->data, data->length);
        if (out->data == NULL) {
-               return False;
+               return false;
        }
        talloc_free(data);
 
-       return True;
+       return true;
 }
 
-static BOOL encode_paged_results_request(void *mem_ctx, void *in, DATA_BLOB *out)
+static bool encode_paged_results_request(void *mem_ctx, void *in, DATA_BLOB *out)
 {
        struct ldb_paged_control *lprc = talloc_get_type(in, struct ldb_paged_control);
        struct asn1_data *data = asn1_init(mem_ctx);
 
-       if (!data) return False;
+       if (!data) return false;
 
        if (!asn1_push_tag(data, ASN1_SEQUENCE(0))) {
-               return False;
+               return false;
        }
 
        if (!asn1_write_Integer(data, lprc->size)) {
-               return False;
+               return false;
        }
 
        if (!asn1_write_OctetString(data, lprc->cookie, lprc->cookie_len)) {
-               return False;
+               return false;
        }       
 
        if (!asn1_pop_tag(data)) {
-               return False;
+               return false;
        }
 
        *out = data_blob_talloc(mem_ctx, data->data, data->length);
        if (out->data == NULL) {
-               return False;
+               return false;
        }
        talloc_free(data);
 
-       return True;
+       return true;
 }
 
 /* seem that this controls has 2 forms one in case it is used with
  * a Search Request and another when used ina Search Response
  */
-static BOOL encode_asq_control(void *mem_ctx, void *in, DATA_BLOB *out)
+static bool encode_asq_control(void *mem_ctx, void *in, DATA_BLOB *out)
 {
        struct ldb_asq_control *lac = talloc_get_type(in, struct ldb_asq_control);
        struct asn1_data *data = asn1_init(mem_ctx);
 
-       if (!data) return False;
+       if (!data) return false;
 
        if (!asn1_push_tag(data, ASN1_SEQUENCE(0))) {
-               return False;
+               return false;
        }
 
        if (lac->request) {
 
                if (!asn1_write_OctetString(data, lac->source_attribute, lac->src_attr_len)) {
-                       return False;
+                       return false;
                }
        } else {
                if (!asn1_write_enumerated(data, lac->result)) {
-                       return False;
+                       return false;
                }
        }
 
        if (!asn1_pop_tag(data)) {
-               return False;
+               return false;
        }
 
        *out = data_blob_talloc(mem_ctx, data->data, data->length);
        if (out->data == NULL) {
-               return False;
+               return false;
        }
        talloc_free(data);
 
-       return True;
+       return true;
 }
 
-static BOOL encode_dirsync_request(void *mem_ctx, void *in, DATA_BLOB *out)
+static bool encode_dirsync_request(void *mem_ctx, void *in, DATA_BLOB *out)
 {
        struct ldb_dirsync_control *ldc = talloc_get_type(in, struct ldb_dirsync_control);
        struct asn1_data *data = asn1_init(mem_ctx);
 
-       if (!data) return False;
+       if (!data) return false;
 
        if (!asn1_push_tag(data, ASN1_SEQUENCE(0))) {
-               return False;
+               return false;
        }
 
        if (!asn1_write_Integer(data, ldc->flags)) {
-               return False;
+               return false;
        }
 
        if (!asn1_write_Integer(data, ldc->max_attributes)) {
-               return False;
+               return false;
        }
 
        if (!asn1_write_OctetString(data, ldc->cookie, ldc->cookie_len)) {
-               return False;
+               return false;
        }       
 
        if (!asn1_pop_tag(data)) {
-               return False;
+               return false;
        }
 
        *out = data_blob_talloc(mem_ctx, data->data, data->length);
        if (out->data == NULL) {
-               return False;
+               return false;
        }
        talloc_free(data);
 
-       return True;
+       return true;
 }
 
-static BOOL encode_domain_scope_request(void *mem_ctx, void *in, DATA_BLOB *out)
+static bool encode_domain_scope_request(void *mem_ctx, void *in, DATA_BLOB *out)
 {
        if (in) {
-               return False;
+               return false;
        }
 
        *out = data_blob(NULL, 0);
-       return True;
+       return true;
 }
 
-static BOOL encode_notification_request(void *mem_ctx, void *in, DATA_BLOB *out)
+static bool encode_notification_request(void *mem_ctx, void *in, DATA_BLOB *out)
 {
        if (in) {
-               return False;
+               return false;
        }
 
        *out = data_blob(NULL, 0);
-       return True;
+       return true;
 }
 
-static BOOL encode_show_deleted_request(void *mem_ctx, void *in, DATA_BLOB *out)
+static bool encode_show_deleted_request(void *mem_ctx, void *in, DATA_BLOB *out)
 {
        if (in) {
-               return False;
+               return false;
        }
 
        *out = data_blob(NULL, 0);
-       return True;
+       return true;
 }
 
-static BOOL encode_permissive_modify_request(void *mem_ctx, void *in, DATA_BLOB *out)
+static bool encode_permissive_modify_request(void *mem_ctx, void *in, DATA_BLOB *out)
 {
        if (in) {
-               return False;
+               return false;
        }
 
        *out = data_blob(NULL, 0);
-       return True;
+       return true;
 }
 
-static BOOL encode_manageDSAIT_request(void *mem_ctx, void *in, DATA_BLOB *out)
+static bool encode_manageDSAIT_request(void *mem_ctx, void *in, DATA_BLOB *out)
 {
        if (in) {
-               return False;
+               return false;
        }
 
        *out = data_blob(NULL, 0);
-       return True;
+       return true;
 }
 
-static BOOL encode_vlv_request(void *mem_ctx, void *in, DATA_BLOB *out)
+static bool encode_vlv_request(void *mem_ctx, void *in, DATA_BLOB *out)
 {
        struct ldb_vlv_req_control *lvrc = talloc_get_type(in, struct ldb_vlv_req_control);
        struct asn1_data *data = asn1_init(mem_ctx);
 
-       if (!data) return False;
+       if (!data) return false;
 
        if (!asn1_push_tag(data, ASN1_SEQUENCE(0))) {
-               return False;
+               return false;
        }
 
        if (!asn1_write_Integer(data, lvrc->beforeCount)) {
-               return False;
+               return false;
        }
 
        if (!asn1_write_Integer(data, lvrc->afterCount)) {
-               return False;
+               return false;
        }
 
        if (lvrc->type == 0) {
                if (!asn1_push_tag(data, ASN1_CONTEXT(0))) {
-                       return False;
+                       return false;
                }
                
                if (!asn1_push_tag(data, ASN1_SEQUENCE(0))) {
-                       return False;
+                       return false;
                }
                
                if (!asn1_write_Integer(data, lvrc->match.byOffset.offset)) {
-                       return False;
+                       return false;
                }
 
                if (!asn1_write_Integer(data, lvrc->match.byOffset.contentCount)) {
-                       return False;
+                       return false;
                }
 
                if (!asn1_pop_tag(data)) { /*SEQUENCE*/
-                       return False;
+                       return false;
                }
 
                if (!asn1_pop_tag(data)) { /*CONTEXT*/
-                       return False;
+                       return false;
                }
        } else {
                if (!asn1_push_tag(data, ASN1_CONTEXT(1))) {
-                       return False;
+                       return false;
                }
                
                if (!asn1_write_OctetString(data, lvrc->match.gtOrEq.value, lvrc->match.gtOrEq.value_len)) {
-                       return False;
+                       return false;
                }
 
                if (!asn1_pop_tag(data)) { /*CONTEXT*/
-                       return False;
+                       return false;
                }
        }
 
        if (lvrc->ctxid_len) {
                if (!asn1_write_OctetString(data, lvrc->contextId, lvrc->ctxid_len)) {
-                       return False;
+                       return false;
                }
        }
 
        if (!asn1_pop_tag(data)) {
-               return False;
+               return false;
        }
 
        *out = data_blob_talloc(mem_ctx, data->data, data->length);
        if (out->data == NULL) {
-               return False;
+               return false;
        }
        talloc_free(data);
 
-       return True;
+       return true;
 }
 
-static BOOL encode_vlv_response(void *mem_ctx, void *in, DATA_BLOB *out)
+static bool encode_vlv_response(void *mem_ctx, void *in, DATA_BLOB *out)
 {
        struct ldb_vlv_resp_control *lvrc = talloc_get_type(in, struct ldb_vlv_resp_control);
        struct asn1_data *data = asn1_init(mem_ctx);
 
-       if (!data) return False;
+       if (!data) return false;
 
        if (!asn1_push_tag(data, ASN1_SEQUENCE(0))) {
-               return False;
+               return false;
        }
 
        if (!asn1_write_Integer(data, lvrc->targetPosition)) {
-               return False;
+               return false;
        }
 
        if (!asn1_write_Integer(data, lvrc->contentCount)) {
-               return False;
+               return false;
        }
 
        if (!asn1_write_enumerated(data, lvrc->vlv_result)) {
-               return False;
+               return false;
        }
 
        if (lvrc->ctxid_len) {
                if (!asn1_write_OctetString(data, lvrc->contextId, lvrc->ctxid_len)) {
-                       return False;
+                       return false;
                }
        }
 
        if (!asn1_pop_tag(data)) {
-               return False;
+               return false;
        }
 
        *out = data_blob_talloc(mem_ctx, data->data, data->length);
        if (out->data == NULL) {
-               return False;
+               return false;
        }
        talloc_free(data);
 
-       return True;
+       return true;
 }
 
 struct control_handler ldap_known_controls[] = {
@@ -1095,49 +1095,49 @@ struct control_handler ldap_known_controls[] = {
        { NULL, NULL, NULL }
 };
 
-BOOL ldap_decode_control_value(void *mem_ctx, DATA_BLOB value, struct ldb_control *ctrl)
+bool ldap_decode_control_value(void *mem_ctx, DATA_BLOB value, struct ldb_control *ctrl)
 {
        int i;
 
        for (i = 0; ldap_known_controls[i].oid != NULL; i++) {
                if (strcmp(ldap_known_controls[i].oid, ctrl->oid) == 0) {
                        if (!ldap_known_controls[i].decode || !ldap_known_controls[i].decode(mem_ctx, value, &ctrl->data)) {
-                               return False;
+                               return false;
                        }
                        break;
                }
        }
        if (ldap_known_controls[i].oid == NULL) {
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-BOOL ldap_decode_control_wrapper(void *mem_ctx, struct asn1_data *data, struct ldb_control *ctrl, DATA_BLOB *value)
+bool ldap_decode_control_wrapper(void *mem_ctx, struct asn1_data *data, struct ldb_control *ctrl, DATA_BLOB *value)
 {
        DATA_BLOB oid;
 
        if (!asn1_start_tag(data, ASN1_SEQUENCE(0))) {
-               return False;
+               return false;
        }
 
        if (!asn1_read_OctetString(data, mem_ctx, &oid)) {
-               return False;
+               return false;
        }
        ctrl->oid = talloc_strndup(mem_ctx, (char *)oid.data, oid.length);
        if (!ctrl->oid) {
-               return False;
+               return false;
        }
 
        if (asn1_peek_tag(data, ASN1_BOOLEAN)) {
-               BOOL critical;
+               bool critical;
                if (!asn1_read_BOOLEAN(data, &critical)) {
-                       return False;
+                       return false;
                }
                ctrl->critical = critical;
        } else {
-               ctrl->critical = False;
+               ctrl->critical = false;
        }
 
        ctrl->data = NULL;
@@ -1148,18 +1148,18 @@ BOOL ldap_decode_control_wrapper(void *mem_ctx, struct asn1_data *data, struct l
        }
 
        if (!asn1_read_OctetString(data, mem_ctx, value)) {
-               return False;
+               return false;
        }
 
 end_tag:
        if (!asn1_end_tag(data)) {
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-BOOL ldap_encode_control(void *mem_ctx, struct asn1_data *data, struct ldb_control *ctrl)
+bool ldap_encode_control(void *mem_ctx, struct asn1_data *data, struct ldb_control *ctrl)
 {
        DATA_BLOB value;
        int i;
@@ -1168,33 +1168,33 @@ BOOL ldap_encode_control(void *mem_ctx, struct asn1_data *data, struct ldb_contr
                if (strcmp(ldap_known_controls[i].oid, ctrl->oid) == 0) {
                        if (!ldap_known_controls[i].encode) {
                                if (ctrl->critical) {
-                                       return False;
+                                       return false;
                                } else {
                                        /* not encoding this control */
-                                       return True;
+                                       return true;
                                }
                        }
                        if (!ldap_known_controls[i].encode(mem_ctx, ctrl->data, &value)) {
-                               return False;
+                               return false;
                        }
                        break;
                }
        }
        if (ldap_known_controls[i].oid == NULL) {
-               return False;
+               return false;
        }
 
        if (!asn1_push_tag(data, ASN1_SEQUENCE(0))) {
-               return False;
+               return false;
        }
 
        if (!asn1_write_OctetString(data, ctrl->oid, strlen(ctrl->oid))) {
-               return False;
+               return false;
        }
 
        if (ctrl->critical) {
                if (!asn1_write_BOOLEAN(data, ctrl->critical)) {
-                       return False;
+                       return false;
                }
        }
 
@@ -1203,13 +1203,13 @@ BOOL ldap_encode_control(void *mem_ctx, struct asn1_data *data, struct ldb_contr
        }
 
        if (!asn1_write_OctetString(data, value.data, value.length)) {
-               return False;
+               return false;
        }
 
 pop_tag:
        if (!asn1_pop_tag(data)) {
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
index 62019b8cc1e0c804223210cd406b0aa18f861624..7b592c65ae9758666d14ec12274de10ad6a19975 100644 (file)
@@ -41,7 +41,7 @@ int ildap_count_entries(struct ldap_connection *conn, struct ldap_message **res)
 */
 NTSTATUS ildap_search_bytree(struct ldap_connection *conn, const char *basedn, 
                             int scope, struct ldb_parse_tree *tree,
-                            const char * const *attrs, BOOL attributesonly, 
+                            const char * const *attrs, bool attributesonly, 
                             struct ldb_control **control_req,
                             struct ldb_control ***control_res,
                             struct ldap_message ***results)
@@ -75,7 +75,7 @@ NTSTATUS ildap_search_bytree(struct ldap_connection *conn, const char *basedn,
        req = ldap_request_send(conn, msg);
        talloc_steal(msg, req);
        
-       for (i=n=0;True;i++) {
+       for (i=n=0;true;i++) {
                struct ldap_message *res;
                status = ldap_result_n(req, i, &res);
                if (!NT_STATUS_IS_OK(status)) break;
@@ -114,7 +114,7 @@ NTSTATUS ildap_search_bytree(struct ldap_connection *conn, const char *basedn,
 */
 NTSTATUS ildap_search(struct ldap_connection *conn, const char *basedn, 
                      int scope, const char *expression, 
-                     const char * const *attrs, BOOL attributesonly, 
+                     const char * const *attrs, bool attributesonly, 
                      struct ldb_control **control_req,
                      struct ldb_control ***control_res,
                      struct ldap_message ***results)
index c9643dafda0d4375ac1d77208d24a1889f935978..12832b8ec431b01d9c9f6e4fa34fefd1ae981ed6 100644 (file)
@@ -32,7 +32,7 @@ struct ldap_message *new_ldap_message(TALLOC_CTX *mem_ctx)
 }
 
 
-BOOL add_value_to_attrib(TALLOC_CTX *mem_ctx, struct ldb_val *value,
+bool add_value_to_attrib(TALLOC_CTX *mem_ctx, struct ldb_val *value,
                         struct ldb_message_element *attrib)
 {
        attrib->values = talloc_realloc(mem_ctx, 
@@ -40,16 +40,16 @@ BOOL add_value_to_attrib(TALLOC_CTX *mem_ctx, struct ldb_val *value,
                                          DATA_BLOB,
                                          attrib->num_values+1);
        if (attrib->values == NULL)
-               return False;
+               return false;
 
        attrib->values[attrib->num_values].data = talloc_steal(attrib->values, 
                                                               value->data);
        attrib->values[attrib->num_values].length = value->length;
        attrib->num_values += 1;
-       return True;
+       return true;
 }
 
-BOOL add_attrib_to_array_talloc(TALLOC_CTX *mem_ctx,
+bool add_attrib_to_array_talloc(TALLOC_CTX *mem_ctx,
                                       const struct ldb_message_element *attrib,
                                       struct ldb_message_element **attribs,
                                       int *num_attribs)
@@ -60,16 +60,16 @@ BOOL add_attrib_to_array_talloc(TALLOC_CTX *mem_ctx,
                                    *num_attribs+1);
 
        if (*attribs == NULL)
-               return False;
+               return false;
 
        (*attribs)[*num_attribs] = *attrib;
        talloc_steal(*attribs, attrib->values);
        talloc_steal(*attribs, attrib->name);
        *num_attribs += 1;
-       return True;
+       return true;
 }
 
-BOOL add_mod_to_array_talloc(TALLOC_CTX *mem_ctx,
+bool add_mod_to_array_talloc(TALLOC_CTX *mem_ctx,
                                    struct ldap_mod *mod,
                                    struct ldap_mod **mods,
                                    int *num_mods)
@@ -77,10 +77,10 @@ BOOL add_mod_to_array_talloc(TALLOC_CTX *mem_ctx,
        *mods = talloc_realloc(mem_ctx, *mods, struct ldap_mod, (*num_mods)+1);
 
        if (*mods == NULL)
-               return False;
+               return false;
 
        (*mods)[*num_mods] = *mod;
        *num_mods += 1;
-       return True;
+       return true;
 }
 
index 1d573cadded225dfde62de0ce4fd277bce49f411..163852d90ac96abf682c190a6a135168a6e31f48 100644 (file)
@@ -23,6 +23,8 @@
 
 #include "librpc/gen_ndr/nbt.h"
 
+struct substitute_context;
+
 /* 
    smbcli_state: internal state used in libcli library for single-threaded callers, 
    i.e. a single session on a single socket. 
index 32de9723b9ec040eb719e1cff4ef0a6499432024..755e06e88091b9eb6d95b297332ce978da6ddbf9 100644 (file)
@@ -22,6 +22,7 @@
 #include "includes.h"
 #include "libcli/nbt/libnbt.h"
 #include "lib/socket/socket.h"
+#include "param/param.h"
 
 /**
   send a nbt name query
@@ -53,10 +54,10 @@ _PUBLIC_ struct nbt_name_request *nbt_name_query_send(struct nbt_name_socket *nb
        packet->questions[0].question_class = NBT_QCLASS_IP;
 
        dest = socket_address_from_strings(packet, nbtsock->sock->backend_name,
-                                          io->in.dest_addr, lp_nbt_port());
+                                          io->in.dest_addr, lp_nbt_port(global_loadparm));
        if (dest == NULL) goto failed;
        req = nbt_name_request_send(nbtsock, dest, packet,
-                                   io->in.timeout, io->in.retries, False);
+                                   io->in.timeout, io->in.retries, false);
        if (req == NULL) goto failed;
 
        talloc_free(packet);
@@ -157,10 +158,10 @@ _PUBLIC_ struct nbt_name_request *nbt_name_status_send(struct nbt_name_socket *n
        packet->questions[0].question_class = NBT_QCLASS_IP;
 
        dest = socket_address_from_strings(packet, nbtsock->sock->backend_name,
-                                          io->in.dest_addr, lp_nbt_port());
+                                          io->in.dest_addr, lp_nbt_port(global_loadparm));
        if (dest == NULL) goto failed;
        req = nbt_name_request_send(nbtsock, dest, packet,
-                                   io->in.timeout, io->in.retries, False);
+                                   io->in.timeout, io->in.retries, false);
        if (req == NULL) goto failed;
 
        talloc_free(packet);
index a60e54ed6aa472d266b43d2dd7d11dd386fe795d..d723eed9f52b09cbe5adf8519c55ae7203a7b133 100644 (file)
@@ -23,6 +23,7 @@
 #include "libcli/nbt/libnbt.h"
 #include "libcli/composite/composite.h"
 #include "lib/socket/socket.h"
+#include "param/param.h"
 
 /*
   send a nbt name refresh request
@@ -66,11 +67,12 @@ struct nbt_name_request *nbt_name_refresh_send(struct nbt_name_socket *nbtsock,
        packet->additional[0].rdata.netbios.addresses[0].ipaddr = 
                talloc_strdup(packet->additional, io->in.address);
 
-       dest = socket_address_from_strings(nbtsock, nbtsock->sock->backend_name, 
-                                          io->in.dest_addr, lp_nbt_port());
+       dest = socket_address_from_strings(nbtsock, 
+                                          nbtsock->sock->backend_name, 
+                                          io->in.dest_addr, lp_nbt_port(global_loadparm));
        if (dest == NULL) goto failed;
        req = nbt_name_request_send(nbtsock, dest, packet,
-                                   io->in.timeout, io->in.retries, False);
+                                   io->in.timeout, io->in.retries, false);
        if (req == NULL) goto failed;
 
        talloc_free(packet);
@@ -240,7 +242,7 @@ struct composite_context *nbt_name_refresh_wins_send(struct nbt_name_socket *nbt
        state->io->in.dest_addr       = state->wins_servers[0];
        state->io->in.address         = io->in.addresses[0];
        state->io->in.nb_flags        = io->in.nb_flags;
-       state->io->in.broadcast       = False;
+       state->io->in.broadcast       = false;
        state->io->in.ttl             = io->in.ttl;
        state->io->in.timeout         = 2;
        state->io->in.retries         = 2;
index 7b03667fec7fc55756e807a267c0d104b6889881..fd4a94dd44ec2e62537271165ec2dd3e217fd15b 100644 (file)
@@ -24,6 +24,7 @@
 #include "libcli/composite/composite.h"
 #include "lib/socket/socket.h"
 #include "librpc/gen_ndr/ndr_nbt.h"
+#include "param/param.h"
 
 /*
   send a nbt name registration request
@@ -76,10 +77,10 @@ struct nbt_name_request *nbt_name_register_send(struct nbt_name_socket *nbtsock,
        if (packet->additional[0].rdata.netbios.addresses[0].ipaddr == NULL) goto failed;
 
        dest = socket_address_from_strings(packet, nbtsock->sock->backend_name, 
-                                          io->in.dest_addr, lp_nbt_port());
+                                          io->in.dest_addr, lp_nbt_port(global_loadparm));
        if (dest == NULL) goto failed;
        req = nbt_name_request_send(nbtsock, dest, packet,
-                                   io->in.timeout, io->in.retries, False);
+                                   io->in.timeout, io->in.retries, false);
        if (req == NULL) goto failed;
 
        talloc_free(packet);
@@ -165,7 +166,7 @@ static void name_register_bcast_handler(struct nbt_name_request *req)
 
        status = nbt_name_register_recv(state->req, state, state->io);
        if (NT_STATUS_EQUAL(status, NT_STATUS_IO_TIMEOUT)) {
-               if (state->io->in.register_demand == True) {
+               if (state->io->in.register_demand == true) {
                        /* all done */
                        c->state = COMPOSITE_STATE_DONE;
                        c->status = NT_STATUS_OK;
@@ -173,7 +174,7 @@ static void name_register_bcast_handler(struct nbt_name_request *req)
                }
 
                /* the registration timed out - good, send the demand */
-               state->io->in.register_demand = True;
+               state->io->in.register_demand = true;
                state->io->in.retries         = 0;
                state->req = nbt_name_register_send(state->nbtsock, state->io);
                if (state->req == NULL) {
@@ -225,9 +226,9 @@ struct composite_context *nbt_name_register_bcast_send(struct nbt_name_socket *n
        state->io->in.dest_addr       = io->in.dest_addr;
        state->io->in.address         = io->in.address;
        state->io->in.nb_flags        = io->in.nb_flags;
-       state->io->in.register_demand = False;
-       state->io->in.broadcast       = True;
-       state->io->in.multi_homed     = False;
+       state->io->in.register_demand = false;
+       state->io->in.broadcast       = true;
+       state->io->in.multi_homed     = false;
        state->io->in.ttl             = io->in.ttl;
        state->io->in.timeout         = 1;
        state->io->in.retries         = 2;
@@ -378,9 +379,9 @@ struct composite_context *nbt_name_register_wins_send(struct nbt_name_socket *nb
        state->io->in.dest_addr       = state->wins_servers[0];
        state->io->in.address         = io->in.addresses[0];
        state->io->in.nb_flags        = io->in.nb_flags;
-       state->io->in.broadcast       = False;
-       state->io->in.register_demand = False;
-       state->io->in.multi_homed     = (io->in.nb_flags & NBT_NM_GROUP)?False:True;
+       state->io->in.broadcast       = false;
+       state->io->in.register_demand = false;
+       state->io->in.multi_homed     = (io->in.nb_flags & NBT_NM_GROUP)?false:true;
        state->io->in.ttl             = io->in.ttl;
        state->io->in.timeout         = 3;
        state->io->in.retries         = 2;
index fd3967d1e6d16fa2908d1b67f885523db46cbc79..1b3c9ae17e909f383ea0f05515bef4a5eaf92a71 100644 (file)
@@ -22,6 +22,7 @@
 #include "includes.h"
 #include "libcli/nbt/libnbt.h"
 #include "lib/socket/socket.h"
+#include "param/param.h"
 
 /*
   send a nbt name release request
@@ -66,10 +67,10 @@ struct nbt_name_request *nbt_name_release_send(struct nbt_name_socket *nbtsock,
                talloc_strdup(packet->additional, io->in.address);
 
        dest = socket_address_from_strings(packet, nbtsock->sock->backend_name, 
-                                          io->in.dest_addr, lp_nbt_port());
+                                          io->in.dest_addr, lp_nbt_port(global_loadparm));
        if (dest == NULL) goto failed;
        req = nbt_name_request_send(nbtsock, dest, packet,
-                                   io->in.timeout, io->in.retries, False);
+                                   io->in.timeout, io->in.retries, false);
        if (req == NULL) goto failed;
 
        talloc_free(packet);
index af3f62b987dfa2584d75f235c99fef9b976d7aff..37cdf64023532b05e7dd34fa662f67329e696393 100644 (file)
@@ -111,7 +111,7 @@ _PUBLIC_ NTSTATUS ndr_pull_nbt_string(struct ndr_pull *ndr, int ndr_flags, const
                NT_STATUS_NOT_OK_RETURN(status);
                if (component == NULL) break;
                if (name) {
-                       name = talloc_asprintf_append(name, ".%s", component);
+                       name = talloc_asprintf_append_buffer(name, ".%s", component);
                        NT_STATUS_HAVE_NO_MEMORY(name);
                } else {
                        name = (char *)component;
@@ -149,7 +149,7 @@ _PUBLIC_ NTSTATUS ndr_push_nbt_string(struct ndr_push *ndr, int ndr_flags, const
                /* see if we have pushed the remaing string allready,
                 * if so we use a label pointer to this string
                 */
-               status = ndr_token_retrieve_cmp_fn(&ndr->nbt_string_list, s, &offset, (comparison_fn_t)strcmp, False);
+               status = ndr_token_retrieve_cmp_fn(&ndr->nbt_string_list, s, &offset, (comparison_fn_t)strcmp, false);
                if (NT_STATUS_IS_OK(status)) {
                        uint8_t b[2];
                        
@@ -401,7 +401,7 @@ _PUBLIC_ void nbt_choose_called_name(TALLOC_CTX *mem_ctx,
        n->scope = NULL;
        n->type = type;
 
-       if (is_ipaddress(name)) {
+       if (is_ipaddress(name) || name == NULL) {
                n->name = "*SMBSERVER";
                return;
        }
index 597dc5a354b1e67178b2b98806ee893e44e9cc77..7d88c830440376536cb62a8a19a4fafd7c745064 100644 (file)
@@ -25,6 +25,7 @@
 #include "libcli/nbt/libnbt.h"
 #include "lib/socket/socket.h"
 #include "librpc/gen_ndr/ndr_nbt.h"
+#include "param/param.h"
 
 #define NBT_MAX_REPLIES 1000
 
@@ -214,7 +215,8 @@ static void nbt_name_socket_recv(struct nbt_name_socket *nbtsock)
        }
 
        /* find the matching request */
-       req = idr_find(nbtsock->idr, packet->name_trn_id);
+       req = (struct nbt_name_request *)idr_find(nbtsock->idr, 
+                                                 packet->name_trn_id);
        if (req == NULL) {
                if (nbtsock->unexpected.handler) {
                        nbtsock->unexpected.handler(nbtsock, packet, src);
@@ -239,10 +241,10 @@ static void nbt_name_socket_recv(struct nbt_name_socket *nbtsock)
                /* we know we won't need any more retries - the server
                   has received our request */
                req->num_retries   = 0;
-               req->received_wack = True;
+               req->received_wack = true;
                /* although there can be a timeout in the packet, w2k3 screws it up,
                   so better to set it ourselves */                
-               req->timeout = lp_parm_int(-1, "nbt", "wack_timeout", 30);
+               req->timeout = lp_parm_int(global_loadparm, NULL, "nbt", "wack_timeout", 30);
                req->te = event_add_timed(req->nbtsock->event_ctx, req, 
                                          timeval_current_ofs(req->timeout, 0),
                                          nbt_name_socket_timeout, req);
@@ -353,7 +355,7 @@ struct nbt_name_request *nbt_name_request_send(struct nbt_name_socket *nbtsock,
                                               struct socket_address *dest,
                                               struct nbt_name_packet *request,
                                               int timeout, int retries,
-                                              BOOL allow_multiple_replies)
+                                              bool allow_multiple_replies)
 {
        struct nbt_name_request *req;
        int id;
@@ -365,7 +367,7 @@ struct nbt_name_request *nbt_name_request_send(struct nbt_name_socket *nbtsock,
        req->nbtsock                = nbtsock;
        req->allow_multiple_replies = allow_multiple_replies;
        req->state                  = NBT_REQUEST_SEND;
-       req->is_reply               = False;
+       req->is_reply               = false;
        req->timeout                = timeout;
        req->num_retries            = retries;
        req->dest                   = dest;
@@ -429,7 +431,7 @@ NTSTATUS nbt_name_reply_send(struct nbt_name_socket *nbtsock,
        req->dest = dest;
        if (talloc_reference(req, dest) == NULL) goto failed;
        req->state     = NBT_REQUEST_SEND;
-       req->is_reply = True;
+       req->is_reply = true;
 
        talloc_set_destructor(req, nbt_name_request_destructor);        
 
similarity index 97%
rename from source/libcli/util/clierror.c
rename to source/libcli/raw/clierror.c
index 89bba21ed6a50342caf2f0f058c66c8da6ba368d..c515259ee78b4c5e22fb037a5809bc316f939a4a 100644 (file)
@@ -66,7 +66,7 @@ NTSTATUS smbcli_nt_error(struct smbcli_tree *tree)
 
 
 /* Return true if the last packet was an error */
-BOOL smbcli_is_error(struct smbcli_tree *tree)
+bool smbcli_is_error(struct smbcli_tree *tree)
 {
        return NT_STATUS_IS_ERR(smbcli_nt_error(tree));
 }
index 12b586aafa7ad647af8a880e968dea7da68fe5ab..ae4e58ae01b9392469d2649417f19186442bc34a 100644 (file)
@@ -23,9 +23,9 @@
 /****************************************************************************
 send an ack for an oplock break request
 ****************************************************************************/
-_PUBLIC_ BOOL smbcli_oplock_ack(struct smbcli_tree *tree, uint16_t fnum, uint16_t ack_level)
+_PUBLIC_ bool smbcli_oplock_ack(struct smbcli_tree *tree, uint16_t fnum, uint16_t ack_level)
 {
-       BOOL ret;
+       bool ret;
        struct smbcli_request *req;
 
        req = smbcli_request_setup(tree, SMBlockingX, 8, 0);
@@ -53,7 +53,7 @@ _PUBLIC_ BOOL smbcli_oplock_ack(struct smbcli_tree *tree, uint16_t fnum, uint16_
 set the oplock handler for a connection
 ****************************************************************************/
 _PUBLIC_ void smbcli_oplock_handler(struct smbcli_transport *transport, 
-                       BOOL (*handler)(struct smbcli_transport *, uint16_t, uint16_t, uint8_t, void *),
+                       bool (*handler)(struct smbcli_transport *, uint16_t, uint16_t, uint8_t, void *),
                        void *private)
 {
        transport->oplock.handler = handler;
index c6c575b818211e63125637b822896cb1fb9c27a7..617131c53c7a07163b3b71d103b2db6a834c320b 100644 (file)
@@ -33,7 +33,7 @@
  Initialize the session context
 ****************************************************************************/
 struct smbcli_session *smbcli_session_init(struct smbcli_transport *transport, 
-                                          TALLOC_CTX *parent_ctx, BOOL primary)
+                                          TALLOC_CTX *parent_ctx, bool primary)
 {
        struct smbcli_session *session;
        uint16_t flags2;
index 0aa6ec56169336048ac1173262d2d35383be3bf1..a748b40a322f5677a77722aa564330dba3cac245 100644 (file)
@@ -26,6 +26,7 @@
 #include "libcli/composite/composite.h"
 #include "lib/socket/socket.h"
 #include "libcli/resolve/resolve.h"
+#include "param/param.h"
 
 struct sock_connect_state {
        struct composite_context *ctx;
@@ -72,7 +73,7 @@ struct composite_context *smbcli_sock_connect_send(TALLOC_CTX *mem_ctx,
        if (state->host_name == NULL) goto failed;
 
        if (port == 0) {
-               const char **ports = lp_smb_ports();
+               const char **ports = lp_smb_ports(global_loadparm);
                int i;
 
                for (i=0;ports[i];i++) /* noop */ ;
@@ -119,7 +120,7 @@ static void smbcli_sock_connect_recv_conn(struct composite_context *ctx)
        if (!composite_is_ok(state->ctx)) return;
 
        state->ctx->status =
-               socket_set_option(sock, lp_socket_options(), NULL);
+               socket_set_option(sock, lp_socket_options(global_loadparm), NULL);
        if (!composite_is_ok(state->ctx)) return;
 
 
index 98f5042d9990790106407d3768400516bf676c2e..0bf805910e085f0a01f28672db3b57fb0ec5c025 100644 (file)
@@ -26,6 +26,7 @@
 #include "lib/events/events.h"
 #include "lib/stream/packet.h"
 #include "librpc/gen_ndr/ndr_nbt.h"
+#include "param/param.h"
 
 
 /*
@@ -71,7 +72,8 @@ static NTSTATUS smbcli_transport_finish_recv(void *private, DATA_BLOB blob);
   create a transport structure based on an established socket
 */
 struct smbcli_transport *smbcli_transport_init(struct smbcli_socket *sock,
-                                              TALLOC_CTX *parent_ctx, BOOL primary)
+                                              TALLOC_CTX *parent_ctx, 
+                                              bool primary)
 {
        struct smbcli_transport *transport;
 
@@ -84,9 +86,10 @@ struct smbcli_transport *smbcli_transport_init(struct smbcli_socket *sock,
                transport->socket = talloc_reference(transport, sock);
        }
        transport->negotiate.protocol = PROTOCOL_NT1;
-       transport->options.use_spnego = lp_use_spnego() && lp_nt_status_support();
-       transport->options.max_xmit = lp_max_xmit();
-       transport->options.max_mux = lp_maxmux();
+       transport->options.use_spnego = lp_use_spnego(global_loadparm) && 
+                                       lp_nt_status_support(global_loadparm);
+       transport->options.max_xmit = lp_max_xmit(global_loadparm);
+       transport->options.max_mux = lp_maxmux(global_loadparm);
        transport->options.request_timeout = SMB_REQUEST_TIMEOUT;
 
        transport->negotiate.max_xmit = transport->options.max_xmit;
@@ -259,7 +262,7 @@ NTSTATUS smbcli_transport_connect_recv(struct smbcli_request *req)
 /*
   send a session request (if needed)
 */
-BOOL smbcli_transport_connect(struct smbcli_transport *transport,
+bool smbcli_transport_connect(struct smbcli_transport *transport,
                              struct nbt_name *calling, 
                              struct nbt_name *called)
 {
@@ -267,7 +270,7 @@ BOOL smbcli_transport_connect(struct smbcli_transport *transport,
        NTSTATUS status;
 
        if (transport->socket->port == 445) {
-               return True;
+               return true;
        }
 
        req = smbcli_transport_connect_send(transport, 
@@ -498,16 +501,16 @@ error:
 
 /*
   process some read/write requests that are pending
-  return False if the socket is dead
+  return false if the socket is dead
 */
-BOOL smbcli_transport_process(struct smbcli_transport *transport)
+bool smbcli_transport_process(struct smbcli_transport *transport)
 {
        NTSTATUS status;
        size_t npending;
 
        packet_queue_run(transport->packet);
        if (transport->socket->sock == NULL) {
-               return False;
+               return false;
        }
 
        status = socket_pending(transport->socket->sock, &npending);
@@ -515,9 +518,9 @@ BOOL smbcli_transport_process(struct smbcli_transport *transport)
                packet_recv(transport->packet);
        }
        if (transport->socket->sock == NULL) {
-               return False;
+               return false;
        }
-       return True;
+       return true;
 }
 
 /*
@@ -635,7 +638,7 @@ NTSTATUS smb_raw_echo_recv(struct smbcli_request *req, TALLOC_CTX *mem_ctx,
        p->out.sequence_number = SVAL(req->in.vwv, VWV(0));
        p->out.size = req->in.data_size;
        talloc_free(p->out.data);
-       p->out.data = talloc_size(mem_ctx, p->out.size);
+       p->out.data = talloc_array(mem_ctx, uint8_t, p->out.size);
        NT_STATUS_HAVE_NO_MEMORY(p->out.data);
 
        if (!smbcli_raw_pull_data(req, req->in.data, p->out.size, p->out.data)) {
index a5217d74b2a1a6eb2c7d62372ad548f1387ab51d..54f8ac95a43a69feabcb61f9d966668f43d0f602 100644 (file)
@@ -23,6 +23,7 @@
 #include "includes.h"
 #include "libcli/raw/libcliraw.h"
 #include "libcli/smb_composite/smb_composite.h"
+#include "param/param.h"
 
 #define SETUP_REQUEST_TREE(cmd, wct, buflen) do { \
        req = smbcli_request_setup(tree, cmd, wct, buflen); \
@@ -33,7 +34,7 @@
  Initialize the tree context
 ****************************************************************************/
 struct smbcli_tree *smbcli_tree_init(struct smbcli_session *session,
-                                    TALLOC_CTX *parent_ctx, BOOL primary)
+                                    TALLOC_CTX *parent_ctx, bool primary)
 {
        struct smbcli_tree *tree;
 
@@ -188,8 +189,8 @@ NTSTATUS smbcli_tree_full_connection(TALLOC_CTX *parent_ctx,
        io.in.service = service;
        io.in.service_type = service_type;
        io.in.credentials = credentials;
-       io.in.fallback_to_anonymous = False;
-       io.in.workgroup = lp_workgroup();
+       io.in.fallback_to_anonymous = false;
+       io.in.workgroup = lp_workgroup(global_loadparm);
        
        status = smb_composite_connect(&io, parent_ctx, ev);
        if (NT_STATUS_IS_OK(status)) {
index 23de6c3838e6342eeb47cdd8eb8361e5aa64048f..00ab788184aa4970564dc02dc4b7d5065c3163bc 100644 (file)
@@ -23,6 +23,7 @@
 #define __LIBCLI_RAW_INTERFACES_H__
 
 #include "smb.h" 
+#include "librpc/gen_ndr/misc.h" /* for struct GUID */
 
 /* this structure is just a wrapper for a string, the only reason we
    bother with this is that it allows us to check the length provided
index f79de88fa67a1c33f7a58d3a3748f668be121048..8ea8e621c9fedcab98f0d3e9f621987e6a15fbb1 100644 (file)
@@ -19,6 +19,7 @@
 
 #include "includes.h"
 #include "smb.h"
+#include "libcli/raw/libcliraw.h"
 
 /*
   work out how many bytes on the wire a ea list will consume. 
@@ -332,7 +333,7 @@ NTSTATUS ea_pull_name_list(const DATA_BLOB *blob,
 /*
   put a ea_name list into a data blob
 */
-BOOL ea_push_name_list(TALLOC_CTX *mem_ctx,
+bool ea_push_name_list(TALLOC_CTX *mem_ctx,
                       DATA_BLOB *data, uint_t num_names, struct ea_name *eas)
 {
        int i;
@@ -343,7 +344,7 @@ BOOL ea_push_name_list(TALLOC_CTX *mem_ctx,
 
        *data = data_blob_talloc(mem_ctx, NULL, ea_size);
        if (data->data == NULL) {
-               return False;
+               return false;
        }
 
        SIVAL(data->data, 0, ea_size);
@@ -356,5 +357,5 @@ BOOL ea_push_name_list(TALLOC_CTX *mem_ctx,
                off += 1+nlen+1;
        }
 
-       return True;
+       return true;
 }
index 60a9bf26569e7d21eea2253c2d657e6193bffa95..83303cf470d211f6e33cd82dc28d0e71cd21391a 100644 (file)
@@ -426,7 +426,7 @@ struct smbcli_request *smb_raw_open_send(struct smbcli_tree *tree, union smb_ope
 {
        int len;
        struct smbcli_request *req = NULL; 
-       BOOL bigoffset = False;
+       bool bigoffset = false;
 
        switch (parms->generic.level) {
        case RAW_OPEN_T2OPEN:
@@ -527,7 +527,7 @@ struct smbcli_request *smb_raw_open_send(struct smbcli_tree *tree, union smb_ope
                smbcli_req_append_string(req, parms->openxreadx.in.fname, STR_TERMINATE);
 
                if (tree->session->transport->negotiate.capabilities & CAP_LARGE_FILES) {
-                       bigoffset = True;
+                       bigoffset = true;
                }
 
                smbcli_chained_request_setup(req, SMBreadX, bigoffset ? 12 : 10, 0);
index faae3a52b10fd568b8e62dc62ee60b15cc79b14b..8481995c1a06b4a18bd34d42dd3e478ee6c65f99 100644 (file)
@@ -66,7 +66,7 @@ NTSTATUS smbcli_parse_stream_info(DATA_BLOB blob, TALLOC_CTX *mem_ctx,
                if (size == -1) {
                        return NT_STATUS_ILLEGAL_CHARACTER;
                }
-               io->streams[n].stream_name.s = vstr;
+               io->streams[n].stream_name.s = (const char *)vstr;
                io->streams[n].stream_name.private_length = nlen;
                io->num_streams++;
                len = IVAL(blob.data, ofs);
index 03f7a82f1cf451379b8b2d105fbc464baedf72c5..46e0efaaf5c9c5bf5616909c35bab1e9f01f5684 100644 (file)
@@ -19,6 +19,7 @@
 
 #include "includes.h"
 #include "smb.h"
+#include "libcli/raw/libcliraw.h"
 
 /****************************************************************************
  lpq - async send
index c2dc39348169ccd97d5d28ecbff42312e3f15a41..82d6fe5236c23886d906a6dfd4cfa7ef9b8521ce 100644 (file)
@@ -23,6 +23,7 @@
 #include "includes.h"
 #include "libcli/raw/libcliraw.h"
 #include "system/time.h"
+#include "param/param.h"
 
 static const struct {
        enum protocol_types prot;
@@ -57,7 +58,7 @@ struct smbcli_request *smb_raw_negotiate_send(struct smbcli_transport *transport
        }
 
        flags2 |= FLAGS2_32_BIT_ERROR_CODES;
-       if (lp_unicode()) {
+       if (lp_unicode(global_loadparm)) {
                flags2 |= FLAGS2_UNICODE_STRINGS;
        }
        flags2 |= FLAGS2_EXTENDED_ATTRIBUTES;
@@ -143,8 +144,8 @@ NTSTATUS smb_raw_negotiate_recv(struct smbcli_request *req)
                }
 
                if (transport->negotiate.capabilities & CAP_RAW_MODE) {
-                       transport->negotiate.readbraw_supported = True;
-                       transport->negotiate.writebraw_supported = True;
+                       transport->negotiate.readbraw_supported = true;
+                       transport->negotiate.writebraw_supported = true;
                }
        } else if (transport->negotiate.protocol >= PROTOCOL_LANMAN1) {
                SMBCLI_CHECK_WCT(req, 13);
@@ -173,11 +174,11 @@ NTSTATUS smb_raw_negotiate_recv(struct smbcli_request *req)
        }
 
        /* a way to force ascii SMB */
-       if (!lp_unicode()) {
+       if (!lp_unicode(global_loadparm)) {
                transport->negotiate.capabilities &= ~CAP_UNICODE;
        }
 
-       if (!lp_nt_status_support()) {
+       if (!lp_nt_status_support(global_loadparm)) {
                transport->negotiate.capabilities &= ~CAP_STATUS32;
        }
 
index a288b7ec5421c8e783abebb5eb53293e6bf9416b..b0c49ddab77b9119963de6167d7f49eb776a8d9c 100644 (file)
 ****************************************************************************/
 struct smbcli_request *smb_raw_read_send(struct smbcli_tree *tree, union smb_read *parms)
 {
-       BOOL bigoffset = False;
+       bool bigoffset = false;
        struct smbcli_request *req = NULL; 
 
        switch (parms->generic.level) {
        case RAW_READ_READBRAW:
                if (tree->session->transport->negotiate.capabilities & CAP_LARGE_FILES) {
-                       bigoffset = True;
+                       bigoffset = true;
                }
                SETUP_REQUEST(SMBreadbraw, bigoffset? 10:8, 0);
                SSVAL(req->out.vwv, VWV(0), parms->readbraw.in.file.fnum);
@@ -69,7 +69,7 @@ struct smbcli_request *smb_raw_read_send(struct smbcli_tree *tree, union smb_rea
 
        case RAW_READ_READX:
                if (tree->session->transport->negotiate.capabilities & CAP_LARGE_FILES) {
-                       bigoffset = True;
+                       bigoffset = true;
                }
                SETUP_REQUEST(SMBreadX, bigoffset ? 12 : 10, 0);
                SSVAL(req->out.vwv, VWV(0), SMB_CHAIN_NONE);
@@ -206,7 +206,7 @@ NTSTATUS smb_raw_read(struct smbcli_tree *tree, union smb_read *parms)
 ****************************************************************************/
 struct smbcli_request *smb_raw_write_send(struct smbcli_tree *tree, union smb_write *parms)
 {
-       BOOL bigoffset = False;
+       bool bigoffset = false;
        struct smbcli_request *req = NULL; 
 
        switch (parms->generic.level) {
@@ -253,7 +253,7 @@ struct smbcli_request *smb_raw_write_send(struct smbcli_tree *tree, union smb_wr
 
        case RAW_WRITE_WRITEX:
                if (tree->session->transport->negotiate.capabilities & CAP_LARGE_FILES) {
-                       bigoffset = True;
+                       bigoffset = true;
                }
                SETUP_REQUEST(SMBwriteX, bigoffset ? 14 : 12, parms->writex.in.count);
                SSVAL(req->out.vwv, VWV(0), SMB_CHAIN_NONE);
index 6bf2bb58cc3888c438783fed13e33393cb0bc1b7..6a4f4320880007d872e9bdac7db79b8a3f9175d0 100644 (file)
@@ -83,7 +83,7 @@ struct smbcli_request *smbcli_request_setup_nonsmb(struct smbcli_transport *tran
        /* over allocate by a small amount */
        req->out.allocated = req->out.size + REQ_OVER_ALLOCATION; 
 
-       req->out.buffer = talloc_size(req, req->out.allocated);
+       req->out.buffer = talloc_array(req, uint8_t, req->out.allocated);
        if (!req->out.buffer) {
                return NULL;
        }
@@ -309,7 +309,7 @@ NTSTATUS smbcli_chained_advance(struct smbcli_request *req)
 /*
   send a message
 */
-BOOL smbcli_request_send(struct smbcli_request *req)
+bool smbcli_request_send(struct smbcli_request *req)
 {
        if (IVAL(req->out.buffer, 0) == 0) {
                _smb_setlen(req->out.buffer, req->out.size - NBT_HDR_SIZE);
@@ -319,23 +319,23 @@ BOOL smbcli_request_send(struct smbcli_request *req)
 
        smbcli_transport_send(req);
 
-       return True;
+       return true;
 }
 
 
 /*
   receive a response to a packet
 */
-BOOL smbcli_request_receive(struct smbcli_request *req)
+bool smbcli_request_receive(struct smbcli_request *req)
 {
        /* req can be NULL when a send has failed. This eliminates lots of NULL
           checks in each module */
-       if (!req) return False;
+       if (!req) return false;
 
        /* keep receiving packets until this one is replied to */
        while (req->state <= SMBCLI_REQUEST_RECV) {
                if (event_loop_once(req->transport->socket->event.ctx) != 0) {
-                       return False;
+                       return false;
                }
        }
 
@@ -347,7 +347,7 @@ BOOL smbcli_request_receive(struct smbcli_request *req)
   receive another reply to a request - this is used for requests that
   have multi-part replies (such as SMBtrans2)
 */
-BOOL smbcli_request_receive_more(struct smbcli_request *req)
+bool smbcli_request_receive_more(struct smbcli_request *req)
 {
        req->state = SMBCLI_REQUEST_RECV;
        DLIST_ADD(req->transport->pending_recv, req);
@@ -357,10 +357,10 @@ BOOL smbcli_request_receive_more(struct smbcli_request *req)
 
 
 /*
-  handle oplock break requests from the server - return True if the request was
+  handle oplock break requests from the server - return true if the request was
   an oplock break
 */
-BOOL smbcli_handle_oplock_break(struct smbcli_transport *transport, uint_t len, const uint8_t *hdr, const uint8_t *vwv)
+bool smbcli_handle_oplock_break(struct smbcli_transport *transport, uint_t len, const uint8_t *hdr, const uint8_t *vwv)
 {
        /* we must be very fussy about what we consider an oplock break to avoid
           matching readbraw replies */
@@ -370,7 +370,7 @@ BOOL smbcli_handle_oplock_break(struct smbcli_transport *transport, uint_t len,
            SVAL(hdr, HDR_MID) != 0xFFFF ||
            SVAL(vwv,VWV(6)) != 0 ||
            SVAL(vwv,VWV(7)) != 0) {
-               return False;
+               return false;
        }
 
        if (transport->oplock.handler) {
@@ -380,7 +380,7 @@ BOOL smbcli_handle_oplock_break(struct smbcli_transport *transport, uint_t len,
                transport->oplock.handler(transport, tid, fnum, level, transport->oplock.private);
        }
 
-       return True;
+       return true;
 }
 
 /*
@@ -395,7 +395,7 @@ NTSTATUS smbcli_request_simple_recv(struct smbcli_request *req)
 
 
 /* Return true if the last packet was in error */
-BOOL smbcli_request_is_error(struct smbcli_request *req)
+bool smbcli_request_is_error(struct smbcli_request *req)
 {
        return NT_STATUS_IS_ERR(req->status);
 }
@@ -676,33 +676,33 @@ DATA_BLOB smbcli_req_pull_blob(struct smbcli_request *req, TALLOC_CTX *mem_ctx,
 
 /* check that a lump of data in a request is within the bounds of the data section of
    the packet */
-static BOOL smbcli_req_data_oob(struct smbcli_request *req, const uint8_t *ptr, uint32_t count)
+static bool smbcli_req_data_oob(struct smbcli_request *req, const uint8_t *ptr, uint32_t count)
 {
        /* be careful with wraparound! */
        if (ptr < req->in.data ||
            ptr >= req->in.data + req->in.data_size ||
            count > req->in.data_size ||
            ptr + count > req->in.data + req->in.data_size) {
-               return True;
+               return true;
        }
-       return False;
+       return false;
 }
 
 /*
   pull a lump of data from a request packet
 
-  return False if any part is outside the data portion of the packet
+  return false if any part is outside the data portion of the packet
 */
-BOOL smbcli_raw_pull_data(struct smbcli_request *req, const uint8_t *src, int len, uint8_t *dest)
+bool smbcli_raw_pull_data(struct smbcli_request *req, const uint8_t *src, int len, uint8_t *dest)
 {
-       if (len == 0) return True;
+       if (len == 0) return true;
 
        if (smbcli_req_data_oob(req, src, len)) {
-               return False;
+               return false;
        }
 
        memcpy(dest, src, len);
-       return True;
+       return true;
 }
 
 
index 7738e849e8098327d4aa562316c78319cdbdcc39..5fa0c1f2da0f349d19602cf56de31400b5b48663 100644 (file)
@@ -27,7 +27,7 @@
 /*
   Handle setfileinfo/setpathinfo passthu constructions
 */
-BOOL smb_raw_setfileinfo_passthru(TALLOC_CTX *mem_ctx,
+bool smb_raw_setfileinfo_passthru(TALLOC_CTX *mem_ctx,
                                  enum smb_setfileinfo_level level,
                                  union smb_setfileinfo *parms, 
                                  DATA_BLOB *blob)
@@ -36,7 +36,7 @@ BOOL smb_raw_setfileinfo_passthru(TALLOC_CTX *mem_ctx,
 
 #define NEED_BLOB(n) do { \
          *blob = data_blob_talloc(mem_ctx, NULL, n); \
-         if (blob->data == NULL) return False; \
+         if (blob->data == NULL) return false; \
         } while (0)
 
        switch (level) {
@@ -48,22 +48,22 @@ BOOL smb_raw_setfileinfo_passthru(TALLOC_CTX *mem_ctx,
                smbcli_push_nttime(blob->data, 24, parms->basic_info.in.change_time);
                SIVAL(blob->data,           32, parms->basic_info.in.attrib);
                SIVAL(blob->data,           36, 0); /* padding */
-               return True;
+               return true;
 
        case RAW_SFILEINFO_DISPOSITION_INFORMATION:
                NEED_BLOB(4);
                SIVAL(blob->data, 0, parms->disposition_info.in.delete_on_close);
-               return True;
+               return true;
 
        case RAW_SFILEINFO_ALLOCATION_INFORMATION:
                NEED_BLOB(8);
                SBVAL(blob->data, 0, parms->allocation_info.in.alloc_size);
-               return True;
+               return true;
 
        case RAW_SFILEINFO_END_OF_FILE_INFORMATION:
                NEED_BLOB(8);
                SBVAL(blob->data, 0, parms->end_of_file_info.in.size);
-               return True;
+               return true;
 
        case RAW_SFILEINFO_RENAME_INFORMATION:
                NEED_BLOB(12);
@@ -73,17 +73,17 @@ BOOL smb_raw_setfileinfo_passthru(TALLOC_CTX *mem_ctx,
                                                parms->rename_information.in.new_name, 
                                                STR_UNICODE|STR_TERMINATE);
                SIVAL(blob->data, 8, len - 2);
-               return True;
+               return true;
 
        case RAW_SFILEINFO_POSITION_INFORMATION:
                NEED_BLOB(8);
                SBVAL(blob->data, 0, parms->position_information.in.position);
-               return True;
+               return true;
 
        case RAW_SFILEINFO_MODE_INFORMATION:
                NEED_BLOB(4);
                SIVAL(blob->data, 0, parms->mode_information.in.mode);
-               return True;
+               return true;
 
        case RAW_FILEINFO_SEC_DESC: {
                NTSTATUS status;
@@ -91,9 +91,9 @@ BOOL smb_raw_setfileinfo_passthru(TALLOC_CTX *mem_ctx,
                status = ndr_push_struct_blob(blob, mem_ctx,
                                              parms->set_secdesc.in.sd,
                                              (ndr_push_flags_fn_t)ndr_push_security_descriptor);
-               if (!NT_STATUS_IS_OK(status)) return False;
+               if (!NT_STATUS_IS_OK(status)) return false;
 
-               return True;
+               return true;
        }
 
                /* Unhandled levels */
@@ -107,16 +107,16 @@ BOOL smb_raw_setfileinfo_passthru(TALLOC_CTX *mem_ctx,
 
        default:
                DEBUG(0,("Unhandled setfileinfo passthru level %d\n", level));
-               return False;
+               return false;
        }
 
-       return False;
+       return false;
 }
 
 /*
   Handle setfileinfo/setpathinfo trans2 backend.
 */
-static BOOL smb_raw_setinfo_backend(struct smbcli_tree *tree,
+static bool smb_raw_setinfo_backend(struct smbcli_tree *tree,
                                    TALLOC_CTX *mem_ctx,
                                    union smb_setfileinfo *parms, 
                                    DATA_BLOB *blob)
@@ -127,7 +127,7 @@ static BOOL smb_raw_setinfo_backend(struct smbcli_tree *tree,
        case RAW_SFILEINFO_SETATTRE:
        case RAW_SFILEINFO_SEC_DESC:
                /* not handled here */
-               return False;
+               return false;
 
        case RAW_SFILEINFO_STANDARD:
                NEED_BLOB(12);
@@ -137,12 +137,12 @@ static BOOL smb_raw_setinfo_backend(struct smbcli_tree *tree,
                                  blob->data, 4, parms->standard.in.access_time);
                raw_push_dos_date2(tree->session->transport, 
                                  blob->data, 8, parms->standard.in.write_time);
-               return True;
+               return true;
 
        case RAW_SFILEINFO_EA_SET:
                NEED_BLOB(ea_list_size(parms->ea_set.in.num_eas, parms->ea_set.in.eas));
                ea_put_list(blob->data, parms->ea_set.in.num_eas, parms->ea_set.in.eas);
-               return True;
+               return true;
 
        case RAW_SFILEINFO_BASIC_INFO:
        case RAW_SFILEINFO_BASIC_INFORMATION:
@@ -164,7 +164,7 @@ static BOOL smb_raw_setinfo_backend(struct smbcli_tree *tree,
                SBVAL(blob->data, 76, parms->unix_basic.in.unique_id);
                SBVAL(blob->data, 84, parms->unix_basic.in.permissions);
                SBVAL(blob->data, 92, parms->unix_basic.in.nlink);
-               return True;
+               return true;
 
        case RAW_SFILEINFO_UNIX_INFO2:
                NEED_BLOB(116);
@@ -184,7 +184,7 @@ static BOOL smb_raw_setinfo_backend(struct smbcli_tree *tree,
                smbcli_push_nttime(blob->data, 100, parms->unix_info2.in.create_time);
                SIVAL(blob->data, 108, parms->unix_info2.in.file_flags);
                SIVAL(blob->data, 112, parms->unix_info2.in.flags_mask);
-               return True;
+               return true;
 
        case RAW_SFILEINFO_DISPOSITION_INFO:
        case RAW_SFILEINFO_DISPOSITION_INFORMATION:
@@ -230,7 +230,7 @@ static BOOL smb_raw_setinfo_backend(struct smbcli_tree *tree,
                break;
        }
 
-       return False;
+       return false;
 }
 
 /****************************************************************************
index 8fc81dab4c14f326383ecea20b9a260c5e81d5d0..4c58c91383534a3737f17bd0e6a669d33e8bd4f1 100644 (file)
@@ -39,7 +39,7 @@ _PUBLIC_ NTSTATUS smb_raw_shadow_data(struct smbcli_tree *tree,
        nt.ntioctl.level        = RAW_IOCTL_NTIOCTL;
        nt.ntioctl.in.function  = FSCTL_GET_SHADOW_COPY_DATA;
        nt.ntioctl.in.file.fnum = info->in.file.fnum;
-       nt.ntioctl.in.fsctl     = True;
+       nt.ntioctl.in.fsctl     = true;
        nt.ntioctl.in.filter    = 0;
        nt.ntioctl.in.max_data  = info->in.max_data;
        nt.ntioctl.in.blob      = data_blob(NULL, 0);
index fe26a713109fff745fda9550f4b78f60ca7ee7e8..53670d22a324a202ca18ee75e439be97b978e752 100644 (file)
 /*
   check out of bounds for incoming data
 */
-static BOOL raw_trans_oob(struct smbcli_request *req,
+static bool raw_trans_oob(struct smbcli_request *req,
                          uint_t offset, uint_t count)
 {
        uint8_t *ptr;
 
        if (count == 0) {
-               return False;
+               return false;
        }
 
        ptr = req->in.hdr + offset;
@@ -43,9 +43,9 @@ static BOOL raw_trans_oob(struct smbcli_request *req,
            ptr >= req->in.data + req->in.data_size ||
            count > req->in.data_size ||
            ptr + count > req->in.data + req->in.data_size) {
-               return True;
+               return true;
        }
-       return False;   
+       return false;   
 }
 
 /****************************************************************************
@@ -86,7 +86,7 @@ NTSTATUS smb_raw_trans2_recv(struct smbcli_request *req,
 
        /* allocate it */
        if (total_data != 0) {
-               tdata = talloc_size(mem_ctx, total_data);
+               tdata = talloc_array(mem_ctx, uint8_t, total_data);
                if (!tdata) {
                        DEBUG(0,("smb_raw_receive_trans: failed to enlarge data buffer to %d bytes\n", total_data));
                        req->status = NT_STATUS_NO_MEMORY;
@@ -96,7 +96,7 @@ NTSTATUS smb_raw_trans2_recv(struct smbcli_request *req,
        }
 
        if (total_param != 0) {
-               tparam = talloc_size(mem_ctx, total_param);
+               tparam = talloc_array(mem_ctx, uint8_t, total_param);
                if (!tparam) {
                        DEBUG(0,("smb_raw_receive_trans: failed to enlarge param buffer to %d bytes\n", total_param));
                        req->status = NT_STATUS_NO_MEMORY;
index 99044d23aec4fad126c860619133350ce6977687..e19e81af7ed42c1d55e9e68074c3c28f56579756 100644 (file)
 #include "smb.h"
 #include "libcli/raw/libcliraw.h"
 #include "lib/crypto/crypto.h"
+#include "param/param.h"
 
 /***********************************************************
  SMB signing - Common code before we set a new signing implementation
 ************************************************************/
-BOOL set_smb_signing_common(struct smb_signing_context *sign_info)
+bool set_smb_signing_common(struct smb_signing_context *sign_info)
 {
        if (sign_info->doing_signing) {
                DEBUG(5, ("SMB Signing already in progress, so we don't start it again\n"));
-               return False;
+               return false;
        }
 
        if (!sign_info->allow_smb_signing) {
                DEBUG(5, ("SMB Signing has been locally disabled\n"));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 /***********************************************************
  SMB signing - Common code before we set a new signing implementation
 ************************************************************/
-static BOOL smbcli_set_smb_signing_common(struct smbcli_transport *transport)
+static bool smbcli_set_smb_signing_common(struct smbcli_transport *transport)
 {
        if (!set_smb_signing_common(&transport->negotiate.sign_info)) {
-               return False;
+               return false;
        }
 
        if (!(transport->negotiate.sec_mode & 
              (NEGOTIATE_SECURITY_SIGNATURES_REQUIRED|NEGOTIATE_SECURITY_SIGNATURES_ENABLED))) {
                DEBUG(5, ("SMB Signing is not negotiated by the peer\n"));
-               return False;
+               return false;
        }
 
        /* These calls are INCOMPATIBLE with SMB signing */
-       transport->negotiate.readbraw_supported = False;
-       transport->negotiate.writebraw_supported = False;
+       transport->negotiate.readbraw_supported = false;
+       transport->negotiate.writebraw_supported = false;
 
-       return True;
+       return true;
 }
 
 void mark_packet_signed(struct request_buffer *out) 
@@ -72,17 +73,17 @@ void mark_packet_signed(struct request_buffer *out)
        SSVAL(out->hdr, HDR_FLG2, flags2);
 }
 
-BOOL signing_good(struct smb_signing_context *sign_info, 
-                        unsigned int seq, BOOL good) 
+bool signing_good(struct smb_signing_context *sign_info, 
+                        unsigned int seq, bool good) 
 {
        if (good) {
                if (!sign_info->doing_signing) {
                        DEBUG(5, ("Seen valid packet, so turning signing on\n"));
-                       sign_info->doing_signing = True;
+                       sign_info->doing_signing = true;
                }
                if (!sign_info->seen_valid) {
                        DEBUG(5, ("Seen valid packet, so marking signing as 'seen valid'\n"));
-                       sign_info->seen_valid = True;
+                       sign_info->seen_valid = true;
                }
        } else {
                if (!sign_info->seen_valid) {
@@ -90,14 +91,14 @@ BOOL signing_good(struct smb_signing_context *sign_info,
                        DEBUG(5, ("signing_good: signing negotiated but not required and peer\n"
                                  "isn't sending correct signatures. Turning off.\n"));
                        smbcli_set_signing_off(sign_info);
-                       return True;
+                       return true;
                } else {
                        /* bad packet after signing started - fail and disconnect. */
                        DEBUG(0, ("signing_good: BAD SIG: seq %u\n", seq));
-                       return False;
+                       return false;
                }
        }
-       return True;
+       return true;
 }
 
 void sign_outgoing_message(struct request_buffer *out, DATA_BLOB *mac_key, unsigned int seq_num) 
@@ -132,9 +133,9 @@ void sign_outgoing_message(struct request_buffer *out, DATA_BLOB *mac_key, unsig
        Uncomment this to test if the remote server actually verifies signitures...*/
 }
 
-BOOL check_signed_incoming_message(struct request_buffer *in, DATA_BLOB *mac_key, uint_t seq_num) 
+bool check_signed_incoming_message(struct request_buffer *in, DATA_BLOB *mac_key, uint_t seq_num) 
 {
-       BOOL good;
+       bool good;
        uint8_t calc_md5_mac[16];
        uint8_t *server_sent_mac;
        uint8_t sequence_buf[8];
@@ -145,12 +146,12 @@ BOOL check_signed_incoming_message(struct request_buffer *in, DATA_BLOB *mac_key
 
        /* room enough for the signature? */
        if (in->size < NBT_HDR_SIZE + HDR_SS_FIELD + 8) {
-               return False;
+               return false;
        }
 
        if (!mac_key->length) {
                /* NO key yet */
-               return False;
+               return false;
        }
 
        /* its quite bogus to be guessing sequence numbers, but very useful
@@ -257,24 +258,24 @@ void smbcli_request_calculate_sign_mac(struct smbcli_request *req)
  @note Used as an initialisation only - it will not correctly
        shut down a real signing mechanism
 */
-BOOL smbcli_set_signing_off(struct smb_signing_context *sign_info)
+bool smbcli_set_signing_off(struct smb_signing_context *sign_info)
 {
        DEBUG(5, ("Shutdown SMB signing\n"));
-       sign_info->doing_signing = False;
+       sign_info->doing_signing = false;
        sign_info->next_seq_num = 0;
        data_blob_free(&sign_info->mac_key);
        sign_info->signing_state = SMB_SIGNING_ENGINE_OFF;
-       return True;
+       return true;
 }
 
 /**
  SMB signing - TEMP implementation - setup the MAC key.
 
 */
-BOOL smbcli_temp_set_signing(struct smbcli_transport *transport)
+bool smbcli_temp_set_signing(struct smbcli_transport *transport)
 {
        if (!smbcli_set_smb_signing_common(transport)) {
-               return False;
+               return false;
        }
        DEBUG(5, ("BSRSPYL SMB signing enabled\n"));
        smbcli_set_signing_off(&transport->negotiate.sign_info);
@@ -282,7 +283,7 @@ BOOL smbcli_temp_set_signing(struct smbcli_transport *transport)
        transport->negotiate.sign_info.mac_key = data_blob(NULL, 0);
        transport->negotiate.sign_info.signing_state = SMB_SIGNING_ENGINE_BSRSPYL;
 
-       return True;
+       return true;
 }
 
 /***********************************************************
@@ -290,22 +291,22 @@ BOOL smbcli_temp_set_signing(struct smbcli_transport *transport)
 ************************************************************/
 /**
  * Check a packet supplied by the server.
- * @return False if we had an established signing connection
- *         which had a back checksum, True otherwise
+ * @return false if we had an established signing connection
+ *         which had a back checksum, true otherwise
  */
-BOOL smbcli_request_check_sign_mac(struct smbcli_request *req) 
+bool smbcli_request_check_sign_mac(struct smbcli_request *req) 
 {
-       BOOL good;
+       bool good;
 
        switch (req->transport->negotiate.sign_info.signing_state) 
        {
        case SMB_SIGNING_ENGINE_OFF:
-               return True;
+               return true;
        case SMB_SIGNING_ENGINE_BSRSPYL:
        case SMB_SIGNING_ENGINE_ON:
        {                       
                if (req->in.size < (HDR_SS_FIELD + 8)) {
-                       return False;
+                       return false;
                } else {
                        good = check_signed_incoming_message(&req->in, 
                                                             &req->transport->negotiate.sign_info.mac_key, 
@@ -316,14 +317,14 @@ BOOL smbcli_request_check_sign_mac(struct smbcli_request *req)
                }
        }
        }
-       return False;
+       return false;
 }
 
 
 /***********************************************************
  SMB signing - Simple implementation - setup the MAC key.
 ************************************************************/
-BOOL smbcli_simple_set_signing(TALLOC_CTX *mem_ctx,
+bool smbcli_simple_set_signing(TALLOC_CTX *mem_ctx,
                               struct smb_signing_context *sign_info,
                               const DATA_BLOB *user_session_key, 
                               const DATA_BLOB *response)
@@ -353,19 +354,19 @@ BOOL smbcli_simple_set_signing(TALLOC_CTX *mem_ctx,
 
        sign_info->signing_state = SMB_SIGNING_ENGINE_ON;
 
-       return True;
+       return true;
 }
 
 
 /***********************************************************
  SMB signing - Simple implementation - setup the MAC key.
 ************************************************************/
-BOOL smbcli_transport_simple_set_signing(struct smbcli_transport *transport,
+bool smbcli_transport_simple_set_signing(struct smbcli_transport *transport,
                                         const DATA_BLOB user_session_key, 
                                         const DATA_BLOB response)
 {
        if (!smbcli_set_smb_signing_common(transport)) {
-               return False;
+               return false;
        }
 
        return smbcli_simple_set_signing(transport,
@@ -375,25 +376,25 @@ BOOL smbcli_transport_simple_set_signing(struct smbcli_transport *transport,
 }
 
 
-BOOL smbcli_init_signing(struct smbcli_transport *transport) 
+bool smbcli_init_signing(struct smbcli_transport *transport) 
 {
        transport->negotiate.sign_info.mac_key = data_blob(NULL, 0);
        if (!smbcli_set_signing_off(&transport->negotiate.sign_info)) {
-               return False;
+               return false;
        }
        
-       switch (lp_client_signing()) {
+       switch (lp_client_signing(global_loadparm)) {
        case SMB_SIGNING_OFF:
-               transport->negotiate.sign_info.allow_smb_signing = False;
+               transport->negotiate.sign_info.allow_smb_signing = false;
                break;
        case SMB_SIGNING_SUPPORTED:
        case SMB_SIGNING_AUTO:
-               transport->negotiate.sign_info.allow_smb_signing = True;
+               transport->negotiate.sign_info.allow_smb_signing = true;
                break;
        case SMB_SIGNING_REQUIRED:
-               transport->negotiate.sign_info.allow_smb_signing = True;
-               transport->negotiate.sign_info.mandatory_signing = True;
+               transport->negotiate.sign_info.allow_smb_signing = true;
+               transport->negotiate.sign_info.mandatory_signing = true;
                break;
        }
-       return True;
+       return true;
 }
index f356dafdaa6d93b1baa301db43ec71cb0d1eca75..3193d70789a50a88c7c449aa4f8625d9447eca4a 100644 (file)
@@ -51,7 +51,7 @@ struct composite_context *resolve_name_bcast_send(TALLOC_CTX *mem_ctx,
        }
        address_list[count] = NULL;
 
-       c = resolve_name_nbtlist_send(mem_ctx, event_ctx, name, address_list, True, False);
+       c = resolve_name_nbtlist_send(mem_ctx, event_ctx, name, address_list, true, false);
        talloc_free(address_list);
 
        return c;       
index ad331c872d832eabe4b5bc4f70b869ddf1ef81e7..baf3874aa4fad1a8a76ea3e678339d9147af9f5b 100644 (file)
@@ -29,6 +29,7 @@
 #include "lib/socket/netif.h"
 #include "librpc/gen_ndr/ndr_nbt.h"
 #include "libcli/nbt/libnbt.h"
+#include "param/param.h"
 
 struct nbtlist_state {
        struct nbt_name name;
@@ -98,8 +99,8 @@ struct composite_context *resolve_name_nbtlist_send(TALLOC_CTX *mem_ctx,
                                                    struct event_context *event_ctx,
                                                    struct nbt_name *name, 
                                                    const char **address_list,
-                                                   BOOL broadcast,
-                                                   BOOL wins_lookup)
+                                                   bool broadcast,
+                                                   bool wins_lookup)
 {
        struct composite_context *c;
        struct nbtlist_state *state;
@@ -154,7 +155,7 @@ struct composite_context *resolve_name_nbtlist_send(TALLOC_CTX *mem_ctx,
 
                state->io_queries[i].in.broadcast   = broadcast;
                state->io_queries[i].in.wins_lookup = wins_lookup;
-               state->io_queries[i].in.timeout     = lp_parm_int(-1, "nbt", "timeout", 1);
+               state->io_queries[i].in.timeout     = lp_parm_int(global_loadparm, NULL, "nbt", "timeout", 1);
                state->io_queries[i].in.retries     = 2;
 
                state->queries[i] = nbt_name_query_send(state->nbtsock, &state->io_queries[i]);
@@ -192,7 +193,7 @@ NTSTATUS resolve_name_nbtlist_recv(struct composite_context *c,
 NTSTATUS resolve_name_nbtlist(struct nbt_name *name, 
                              TALLOC_CTX *mem_ctx,
                              const char **address_list,
-                             BOOL broadcast, BOOL wins_lookup,
+                             bool broadcast, bool wins_lookup,
                              const char **reply_addr)
 {
        struct composite_context *c = resolve_name_nbtlist_send(mem_ctx, NULL, name, address_list, 
index 4df4de020c16e35b10ea6d6b7ebf320c1b0878e4..02e1fbdc04bae9a460a88f5f379ec9ec4c7f8385 100644 (file)
@@ -24,6 +24,7 @@
 #include "libcli/composite/composite.h"
 #include "libcli/resolve/resolve.h"
 #include "librpc/gen_ndr/ndr_nbt.h"
+#include "param/param.h"
 
 struct resolve_state {
        struct nbt_name name;
@@ -67,7 +68,7 @@ static const struct resolve_method *find_method(const char *name)
 */
 static void resolve_handler(struct composite_context *creq)
 {
-       struct composite_context *c = creq->async.private_data;
+       struct composite_context *c = (struct composite_context *)creq->async.private_data;
        struct resolve_state *state = talloc_get_type(c->private_data, struct resolve_state);
        const struct resolve_method *method = find_method(state->methods[0]);
 
@@ -188,7 +189,8 @@ NTSTATUS resolve_name_recv(struct composite_context *c,
 NTSTATUS resolve_name(struct nbt_name *name, TALLOC_CTX *mem_ctx, const char **reply_addr, 
                      struct event_context *ev)
 {
-       struct composite_context *c = resolve_name_send(name, ev, lp_name_resolve_order());
+       struct composite_context *c = resolve_name_send(name, ev, 
+                                               lp_name_resolve_order(global_loadparm));
        return resolve_name_recv(c, mem_ctx, reply_addr);
 }
 
index 7af12075a195d9d6ffd9305b109cc76c7ad4a3ee..2cbcd5f4836dc50a98ca28e3c5d6fc935a70e306 100644 (file)
 #include "includes.h"
 #include "libcli/nbt/libnbt.h"
 #include "libcli/resolve/resolve.h"
+#include "param/param.h"
 
 /*
   wins name resolution method - async send
  */
-struct composite_context *resolve_name_wins_send(TALLOC_CTX *mem_ctx, 
-                                                struct event_context *event_ctx,
-                                                struct nbt_name *name)
+struct composite_context *resolve_name_wins_send(
+                               TALLOC_CTX *mem_ctx, 
+                               struct event_context *event_ctx,
+                               struct nbt_name *name)
 {
-       const char **address_list = lp_wins_server_list();
+       const char **address_list = lp_wins_server_list(global_loadparm);
        if (address_list == NULL) return NULL;
-       return resolve_name_nbtlist_send(mem_ctx, event_ctx, name, address_list, False, True);
+       return resolve_name_nbtlist_send(mem_ctx, event_ctx, name, address_list, false, true);
 }
 
 /*
index 64e418677a47871deeaabc273b89c37f5b486094..f5457e7e0e4bcf8d927f6fa27b5585e9eb136449 100644 (file)
@@ -22,6 +22,7 @@
 
 #include "includes.h"
 #include "librpc/gen_ndr/security.h"
+#include "libcli/security/security.h"
 
 /*****************************************************************
  Compare the auth portion of two sids.
@@ -78,7 +79,7 @@ static int dom_sid_compare(const struct dom_sid *sid1, const struct dom_sid *sid
  Compare two sids.
 *****************************************************************/  
 
-BOOL dom_sid_equal(const struct dom_sid *sid1, const struct dom_sid *sid2)
+bool dom_sid_equal(const struct dom_sid *sid1, const struct dom_sid *sid2)
 {
        return dom_sid_compare(sid1, sid2) == 0;
 }
@@ -240,24 +241,24 @@ NTSTATUS dom_sid_split_rid(TALLOC_CTX *mem_ctx, const struct dom_sid *sid,
 }
 
 /*
-  return True if the 2nd sid is in the domain given by the first sid
+  return true if the 2nd sid is in the domain given by the first sid
 */
-BOOL dom_sid_in_domain(const struct dom_sid *domain_sid, 
+bool dom_sid_in_domain(const struct dom_sid *domain_sid, 
                       const struct dom_sid *sid)
 {
        int i;
 
        if (!domain_sid || !sid) {
-               return False;
+               return false;
        }
 
        if (domain_sid->num_auths > sid->num_auths) {
-               return False;
+               return false;
        }
 
        for (i = domain_sid->num_auths-1; i >= 0; --i) {
                if (domain_sid->sub_auths[i] != sid->sub_auths[i]) {
-                       return False;
+                       return false;
                }
        }
 
@@ -278,7 +279,7 @@ char *dom_sid_string(TALLOC_CTX *mem_ctx, const struct dom_sid *sid)
        }
 
        maxlen = sid->num_auths * 11 + 25;
-       ret = talloc_size(mem_ctx, maxlen);
+       ret = talloc_array(mem_ctx, char, maxlen);
        if (!ret) return talloc_strdup(mem_ctx, "(SID ERR)");
 
        ia = (sid->id_auth[5]) +
index 635f470bf6a317e7e1132cb2d3853117fa32dc3d..2cbef135382f1d38c47b329cabb0bb869b70c430 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "includes.h"
 #include "librpc/gen_ndr/security.h" 
+#include "libcli/security/security.h" 
 
 
 static const struct {
@@ -191,21 +192,21 @@ static uint64_t sec_privilege_mask(enum sec_privilege privilege)
 
 
 /*
-  return True if a security_token has a particular privilege bit set
+  return true if a security_token has a particular privilege bit set
 */
-BOOL security_token_has_privilege(const struct security_token *token, enum sec_privilege privilege)
+bool security_token_has_privilege(const struct security_token *token, enum sec_privilege privilege)
 {
        uint64_t mask;
 
        if (privilege < 1 || privilege > 64) {
-               return False;
+               return false;
        }
 
        mask = sec_privilege_mask(privilege);
        if (token->privilege_mask & mask) {
-               return True;
+               return true;
        }
-       return False;
+       return false;
 }
 
 /*
index 4342a7b87a5f068a90c0137948ed986d57e1ab5c..09522f182a8b6f1d8746c5626eb176d24d851b0a 100644 (file)
@@ -32,7 +32,7 @@ struct flag_map {
 /*
   map a series of letter codes into a uint32_t
 */
-static BOOL sddl_map_flags(const struct flag_map *map, const char *str, 
+static bool sddl_map_flags(const struct flag_map *map, const char *str, 
                           uint32_t *flags, size_t *len)
 {
        const char *str0 = str;
@@ -51,10 +51,10 @@ static BOOL sddl_map_flags(const struct flag_map *map, const char *str,
                }
                if (map[i].name == NULL) {
                        DEBUG(1, ("Unknown flag - %s in %s\n", str, str0));
-                       return False;
+                       return false;
                }
        }
-       return True;
+       return true;
 }
 
 /*
@@ -176,10 +176,10 @@ static const struct flag_map ace_access_mask[] = {
 
 /*
   decode an ACE
-  return True on success, False on failure
+  return true on success, false on failure
   note that this routine modifies the string
 */
-static BOOL sddl_decode_ace(TALLOC_CTX *mem_ctx, struct security_ace *ace, char *str,
+static bool sddl_decode_ace(TALLOC_CTX *mem_ctx, struct security_ace *ace, char *str,
                            const struct dom_sid *domain_sid)
 {
        const char *tok[6];
@@ -194,7 +194,7 @@ static BOOL sddl_decode_ace(TALLOC_CTX *mem_ctx, struct security_ace *ace, char
        tok[0] = str;
        for (i=0;i<5;i++) {
                char *ptr = strchr(str, ';');
-               if (ptr == NULL) return False;
+               if (ptr == NULL) return false;
                *ptr = 0;
                str = ptr+1;
                tok[i+1] = str;
@@ -202,13 +202,13 @@ static BOOL sddl_decode_ace(TALLOC_CTX *mem_ctx, struct security_ace *ace, char
 
        /* parse ace type */
        if (!sddl_map_flags(ace_types, tok[0], &v, NULL)) {
-               return False;
+               return false;
        }
        ace->type = v;
 
        /* ace flags */
        if (!sddl_map_flags(ace_flags, tok[1], &v, NULL)) {
-               return False;
+               return false;
        }
        ace->flags = v;
        
@@ -217,7 +217,7 @@ static BOOL sddl_decode_ace(TALLOC_CTX *mem_ctx, struct security_ace *ace, char
                ace->access_mask = strtol(tok[2], NULL, 16);
        } else {
                if (!sddl_map_flags(ace_access_mask, tok[2], &v, NULL)) {
-                       return False;
+                       return false;
                }
                ace->access_mask = v;
        }
@@ -227,7 +227,7 @@ static BOOL sddl_decode_ace(TALLOC_CTX *mem_ctx, struct security_ace *ace, char
                NTSTATUS status = GUID_from_string(tok[3], 
                                                   &ace->object.object.type.type);
                if (!NT_STATUS_IS_OK(status)) {
-                       return False;
+                       return false;
                }
                ace->object.object.flags |= SEC_ACE_OBJECT_TYPE_PRESENT;
        }
@@ -237,7 +237,7 @@ static BOOL sddl_decode_ace(TALLOC_CTX *mem_ctx, struct security_ace *ace, char
                NTSTATUS status = GUID_from_string(tok[4], 
                                                   &ace->object.object.inherited_type.inherited_type);
                if (!NT_STATUS_IS_OK(status)) {
-                       return False;
+                       return false;
                }
                ace->object.object.flags |= SEC_ACE_INHERITED_OBJECT_TYPE_PRESENT;
        }
@@ -246,13 +246,13 @@ static BOOL sddl_decode_ace(TALLOC_CTX *mem_ctx, struct security_ace *ace, char
        s = tok[5];
        sid = sddl_decode_sid(mem_ctx, &s, domain_sid);
        if (sid == NULL) {
-               return False;
+               return false;
        }
        ace->trustee = *sid;
        talloc_steal(mem_ctx, sid->sub_auths);
        talloc_free(sid);
 
-       return True;
+       return true;
 }
 
 static const struct flag_map acl_flags[] = {
@@ -388,7 +388,7 @@ failed:
   turn a set of flags into a string
 */
 static char *sddl_flags_to_string(TALLOC_CTX *mem_ctx, const struct flag_map *map,
-                                 uint32_t flags, BOOL check_all)
+                                 uint32_t flags, bool check_all)
 {
        int i;
        char *s;
@@ -405,7 +405,7 @@ static char *sddl_flags_to_string(TALLOC_CTX *mem_ctx, const struct flag_map *ma
        /* now by bits */
        for (i=0;map[i].name;i++) {
                if ((flags & map[i].flag) != 0) {
-                       s = talloc_asprintf_append(s, "%s", map[i].name);
+                       s = talloc_asprintf_append_buffer(s, "%s", map[i].name);
                        if (s == NULL) goto failed;
                        flags &= ~map[i].flag;
                }
@@ -477,13 +477,13 @@ static char *sddl_encode_ace(TALLOC_CTX *mem_ctx, const struct security_ace *ace
                return NULL;
        }
 
-       s_type = sddl_flags_to_string(tmp_ctx, ace_types, ace->type, True);
+       s_type = sddl_flags_to_string(tmp_ctx, ace_types, ace->type, true);
        if (s_type == NULL) goto failed;
 
-       s_flags = sddl_flags_to_string(tmp_ctx, ace_flags, ace->flags, True);
+       s_flags = sddl_flags_to_string(tmp_ctx, ace_flags, ace->flags, true);
        if (s_flags == NULL) goto failed;
 
-       s_mask = sddl_flags_to_string(tmp_ctx, ace_access_mask, ace->access_mask, True);
+       s_mask = sddl_flags_to_string(tmp_ctx, ace_access_mask, ace->access_mask, true);
        if (s_mask == NULL) {
                s_mask = talloc_asprintf(tmp_ctx, "0x%08x", ace->access_mask);
                if (s_mask == NULL) goto failed;
@@ -525,14 +525,14 @@ static char *sddl_encode_acl(TALLOC_CTX *mem_ctx, const struct security_acl *acl
        int i;
 
        /* add any ACL flags */
-       sddl = sddl_flags_to_string(mem_ctx, acl_flags, flags, False);
+       sddl = sddl_flags_to_string(mem_ctx, acl_flags, flags, false);
        if (sddl == NULL) goto failed;
 
        /* now the ACEs, encoded in braces */
        for (i=0;i<acl->num_aces;i++) {
                char *ace = sddl_encode_ace(sddl, &acl->aces[i], domain_sid);
                if (ace == NULL) goto failed;
-               sddl = talloc_asprintf_append(sddl, "(%s)", ace);
+               sddl = talloc_asprintf_append_buffer(sddl, "(%s)", ace);
                if (sddl == NULL) goto failed;
                talloc_free(ace);
        }
@@ -563,28 +563,28 @@ char *sddl_encode(TALLOC_CTX *mem_ctx, const struct security_descriptor *sd,
        if (sd->owner_sid != NULL) {
                char *sid = sddl_encode_sid(tmp_ctx, sd->owner_sid, domain_sid);
                if (sid == NULL) goto failed;
-               sddl = talloc_asprintf_append(sddl, "O:%s", sid);
+               sddl = talloc_asprintf_append_buffer(sddl, "O:%s", sid);
                if (sddl == NULL) goto failed;
        }
 
        if (sd->group_sid != NULL) {
                char *sid = sddl_encode_sid(tmp_ctx, sd->group_sid, domain_sid);
                if (sid == NULL) goto failed;
-               sddl = talloc_asprintf_append(sddl, "G:%s", sid);
+               sddl = talloc_asprintf_append_buffer(sddl, "G:%s", sid);
                if (sddl == NULL) goto failed;
        }
 
        if ((sd->type & SEC_DESC_DACL_PRESENT) && sd->dacl != NULL) {
                char *acl = sddl_encode_acl(tmp_ctx, sd->dacl, sd->type, domain_sid);
                if (acl == NULL) goto failed;
-               sddl = talloc_asprintf_append(sddl, "D:%s", acl);
+               sddl = talloc_asprintf_append_buffer(sddl, "D:%s", acl);
                if (sddl == NULL) goto failed;
        }
 
        if ((sd->type & SEC_DESC_SACL_PRESENT) && sd->sacl != NULL) {
                char *acl = sddl_encode_acl(tmp_ctx, sd->sacl, sd->type>>1, domain_sid);
                if (acl == NULL) goto failed;
-               sddl = talloc_asprintf_append(sddl, "S:%s", acl);
+               sddl = talloc_asprintf_append_buffer(sddl, "S:%s", acl);
                if (sddl == NULL) goto failed;
        }
 
index 06c3c2eca76814827079e7815974d5f9fdb17c94..7ed619d0c4fa09c28070818a3ea1773fa726fb9a 100644 (file)
@@ -60,7 +60,7 @@ static struct security_acl *security_acl_dup(TALLOC_CTX *mem_ctx,
                return NULL;
        }
 
-       nacl->aces = talloc_memdup (nacl, oacl->aces, sizeof(struct security_ace) * oacl->num_aces);
+       nacl->aces = (struct security_ace *)talloc_memdup (nacl, oacl->aces, sizeof(struct security_ace) * oacl->num_aces);
        if ((nacl->aces == NULL) && (oacl->num_aces > 0)) {
                goto failed;
        }
@@ -69,7 +69,7 @@ static struct security_acl *security_acl_dup(TALLOC_CTX *mem_ctx,
 
        for (i = 0; i < oacl->num_aces; i++) {
                nacl->aces[i].trustee.sub_auths = 
-                       talloc_memdup(nacl->aces, nacl->aces[i].trustee.sub_auths,
+                       (uint32_t *)talloc_memdup(nacl->aces, nacl->aces[i].trustee.sub_auths,
                                      sizeof(uint32_t) * nacl->aces[i].trustee.num_auths);
 
                if ((nacl->aces[i].trustee.sub_auths == NULL) && (nacl->aces[i].trustee.num_auths > 0)) {
@@ -163,7 +163,7 @@ NTSTATUS security_descriptor_dacl_add(struct security_descriptor *sd,
 
        sd->dacl->aces[sd->dacl->num_aces] = *ace;
        sd->dacl->aces[sd->dacl->num_aces].trustee.sub_auths = 
-               talloc_memdup(sd->dacl->aces, 
+               (uint32_t *)talloc_memdup(sd->dacl->aces, 
                              sd->dacl->aces[sd->dacl->num_aces].trustee.sub_auths,
                              sizeof(uint32_t) * 
                              sd->dacl->aces[sd->dacl->num_aces].trustee.num_auths);
@@ -242,77 +242,77 @@ NTSTATUS security_descriptor_dacl_del(struct security_descriptor *sd,
 /*
   compare two security ace structures
 */
-BOOL security_ace_equal(const struct security_ace *ace1, 
+bool security_ace_equal(const struct security_ace *ace1, 
                        const struct security_ace *ace2)
 {
-       if (ace1 == ace2) return True;
-       if (!ace1 || !ace2) return False;
-       if (ace1->type != ace2->type) return False;
-       if (ace1->flags != ace2->flags) return False;
-       if (ace1->access_mask != ace2->access_mask) return False;
-       if (!dom_sid_equal(&ace1->trustee, &ace2->trustee)) return False;
-
-       return True;    
+       if (ace1 == ace2) return true;
+       if (!ace1 || !ace2) return false;
+       if (ace1->type != ace2->type) return false;
+       if (ace1->flags != ace2->flags) return false;
+       if (ace1->access_mask != ace2->access_mask) return false;
+       if (!dom_sid_equal(&ace1->trustee, &ace2->trustee)) return false;
+
+       return true;    
 }
 
 
 /*
   compare two security acl structures
 */
-BOOL security_acl_equal(const struct security_acl *acl1, 
+bool security_acl_equal(const struct security_acl *acl1, 
                        const struct security_acl *acl2)
 {
        int i;
 
-       if (acl1 == acl2) return True;
-       if (!acl1 || !acl2) return False;
-       if (acl1->revision != acl2->revision) return False;
-       if (acl1->num_aces != acl2->num_aces) return False;
+       if (acl1 == acl2) return true;
+       if (!acl1 || !acl2) return false;
+       if (acl1->revision != acl2->revision) return false;
+       if (acl1->num_aces != acl2->num_aces) return false;
 
        for (i=0;i<acl1->num_aces;i++) {
-               if (!security_ace_equal(&acl1->aces[i], &acl2->aces[i])) return False;
+               if (!security_ace_equal(&acl1->aces[i], &acl2->aces[i])) return false;
        }
-       return True;    
+       return true;    
 }
 
 /*
   compare two security descriptors.
 */
-BOOL security_descriptor_equal(const struct security_descriptor *sd1, 
+bool security_descriptor_equal(const struct security_descriptor *sd1, 
                               const struct security_descriptor *sd2)
 {
-       if (sd1 == sd2) return True;
-       if (!sd1 || !sd2) return False;
-       if (sd1->revision != sd2->revision) return False;
-       if (sd1->type != sd2->type) return False;
+       if (sd1 == sd2) return true;
+       if (!sd1 || !sd2) return false;
+       if (sd1->revision != sd2->revision) return false;
+       if (sd1->type != sd2->type) return false;
 
-       if (!dom_sid_equal(sd1->owner_sid, sd2->owner_sid)) return False;
-       if (!dom_sid_equal(sd1->group_sid, sd2->group_sid)) return False;
-       if (!security_acl_equal(sd1->sacl, sd2->sacl))      return False;
-       if (!security_acl_equal(sd1->dacl, sd2->dacl))      return False;
+       if (!dom_sid_equal(sd1->owner_sid, sd2->owner_sid)) return false;
+       if (!dom_sid_equal(sd1->group_sid, sd2->group_sid)) return false;
+       if (!security_acl_equal(sd1->sacl, sd2->sacl))      return false;
+       if (!security_acl_equal(sd1->dacl, sd2->dacl))      return false;
 
-       return True;    
+       return true;    
 }
 
 /*
   compare two security descriptors, but allow certain (missing) parts
   to be masked out of the comparison
 */
-BOOL security_descriptor_mask_equal(const struct security_descriptor *sd1, 
+bool security_descriptor_mask_equal(const struct security_descriptor *sd1, 
                                    const struct security_descriptor *sd2, 
                                    uint32_t mask)
 {
-       if (sd1 == sd2) return True;
-       if (!sd1 || !sd2) return False;
-       if (sd1->revision != sd2->revision) return False;
-       if ((sd1->type & mask) != (sd2->type & mask)) return False;
+       if (sd1 == sd2) return true;
+       if (!sd1 || !sd2) return false;
+       if (sd1->revision != sd2->revision) return false;
+       if ((sd1->type & mask) != (sd2->type & mask)) return false;
 
-       if (!dom_sid_equal(sd1->owner_sid, sd2->owner_sid)) return False;
-       if (!dom_sid_equal(sd1->group_sid, sd2->group_sid)) return False;
-       if ((mask & SEC_DESC_DACL_PRESENT) && !security_acl_equal(sd1->dacl, sd2->dacl))      return False;
-       if ((mask & SEC_DESC_SACL_PRESENT) && !security_acl_equal(sd1->sacl, sd2->sacl))      return False;
+       if (!dom_sid_equal(sd1->owner_sid, sd2->owner_sid)) return false;
+       if (!dom_sid_equal(sd1->group_sid, sd2->group_sid)) return false;
+       if ((mask & SEC_DESC_DACL_PRESENT) && !security_acl_equal(sd1->dacl, sd2->dacl))      return false;
+       if ((mask & SEC_DESC_SACL_PRESENT) && !security_acl_equal(sd1->sacl, sd2->sacl))      return false;
 
-       return True;    
+       return true;    
 }
 
 
index 684c3de7e62fc4a9267b04e7d3dee7944bffce30..e126340c4659f15d1cdb8defe5a20d3b01dc2b31 100644 (file)
@@ -79,19 +79,19 @@ void security_token_debug(int dbg_lev, const struct security_token *token)
 
 /* These really should be cheaper... */
 
-BOOL security_token_is_sid(const struct security_token *token, const struct dom_sid *sid)
+bool security_token_is_sid(const struct security_token *token, const struct dom_sid *sid)
 {
        if (dom_sid_equal(token->user_sid, sid)) {
-               return True;
+               return true;
        }
-       return False;
+       return false;
 }
 
-BOOL security_token_is_sid_string(const struct security_token *token, const char *sid_string)
+bool security_token_is_sid_string(const struct security_token *token, const char *sid_string)
 {
-       BOOL ret;
+       bool ret;
        struct dom_sid *sid = dom_sid_parse_talloc(NULL, sid_string);
-       if (!sid) return False;
+       if (!sid) return false;
 
        ret = security_token_is_sid(token, sid);
 
@@ -99,32 +99,32 @@ BOOL security_token_is_sid_string(const struct security_token *token, const char
        return ret;
 }
 
-BOOL security_token_is_system(const struct security_token *token) 
+bool security_token_is_system(const struct security_token *token) 
 {
        return security_token_is_sid_string(token, SID_NT_SYSTEM);
 }
 
-BOOL security_token_is_anonymous(const struct security_token *token) 
+bool security_token_is_anonymous(const struct security_token *token) 
 {
        return security_token_is_sid_string(token, SID_NT_ANONYMOUS);
 }
 
-BOOL security_token_has_sid(const struct security_token *token, const struct dom_sid *sid)
+bool security_token_has_sid(const struct security_token *token, const struct dom_sid *sid)
 {
        int i;
        for (i = 0; i < token->num_sids; i++) {
                if (dom_sid_equal(token->sids[i], sid)) {
-                       return True;
+                       return true;
                }
        }
-       return False;
+       return false;
 }
 
-BOOL security_token_has_sid_string(const struct security_token *token, const char *sid_string)
+bool security_token_has_sid_string(const struct security_token *token, const char *sid_string)
 {
-       BOOL ret;
+       bool ret;
        struct dom_sid *sid = dom_sid_parse_talloc(NULL, sid_string);
-       if (!sid) return False;
+       if (!sid) return false;
 
        ret = security_token_has_sid(token, sid);
 
@@ -132,12 +132,12 @@ BOOL security_token_has_sid_string(const struct security_token *token, const cha
        return ret;
 }
 
-BOOL security_token_has_builtin_administrators(const struct security_token *token)
+bool security_token_has_builtin_administrators(const struct security_token *token)
 {
        return security_token_has_sid_string(token, SID_BUILTIN_ADMINISTRATORS);
 }
 
-BOOL security_token_has_nt_authenticated_users(const struct security_token *token)
+bool security_token_has_nt_authenticated_users(const struct security_token *token)
 {
        return security_token_has_sid_string(token, SID_NT_AUTHENTICATED_USERS);
 }
index f0a0b01817c099fe17e30d7bd810b4fb5381adf1..096919f17751d5d7700e327da2d134d299a99376 100644 (file)
@@ -46,7 +46,7 @@ NTSTATUS smb2_cancel(struct smb2_request *r)
 
        /* we don't want a seqmun for a SMB2 Cancel */
        old_seqnum = r->transport->seqnum;
-       c = smb2_request_init(r->transport, SMB2_OP_CANCEL, 0x04, False, 0);
+       c = smb2_request_init(r->transport, SMB2_OP_CANCEL, 0x04, false, 0);
        r->transport->seqnum = old_seqnum;
        NT_STATUS_HAVE_NO_MEMORY(c);
        c->seqnum = 0;
index e83f81b63005fb2a111d482c86d1902e21b09bdb..04c0c85499280cfd416590607a2cad69c1a01691 100644 (file)
@@ -31,7 +31,7 @@ struct smb2_request *smb2_close_send(struct smb2_tree *tree, struct smb2_close *
 {
        struct smb2_request *req;
 
-       req = smb2_request_init_tree(tree, SMB2_OP_CLOSE, 0x18, False, 0);
+       req = smb2_request_init_tree(tree, SMB2_OP_CLOSE, 0x18, false, 0);
        if (req == NULL) return NULL;
 
        SSVAL(req->out.body, 0x02, io->in.flags);
@@ -54,7 +54,7 @@ NTSTATUS smb2_close_recv(struct smb2_request *req, struct smb2_close *io)
                return smb2_request_destroy(req);
        }
 
-       SMB2_CHECK_PACKET_RECV(req, 0x3C, False);
+       SMB2_CHECK_PACKET_RECV(req, 0x3C, false);
 
        io->out.flags       = SVAL(req->in.body, 0x02);
        io->out._pad        = IVAL(req->in.body, 0x04);
index a365f25d4957286ec34aa4a5e4b0f96eae4dc385..6f05d56cd4745aefc11d8f367bfa7e08cae995bd 100644 (file)
@@ -25,6 +25,7 @@
 #include "libcli/smb2/smb2_calls.h"
 #include "libcli/composite/composite.h"
 #include "libcli/resolve/resolve.h"
+#include "param/param.h"
 
 struct smb2_connect_state {
        struct cli_credentials *credentials;
@@ -68,7 +69,7 @@ static void continue_session(struct composite_context *creq)
        c->status = smb2_session_setup_spnego_recv(creq);
        if (!composite_is_ok(c)) return;
 
-       state->tree = smb2_tree_init(state->session, state, True);
+       state->tree = smb2_tree_init(state->session, state, true);
        if (composite_nomem(state->tree, c)) return;
 
        state->tcon.in.unknown1 = 0x09;
@@ -98,7 +99,7 @@ static void continue_negprot(struct smb2_request *req)
        c->status = smb2_negprot_recv(req, c, &state->negprot);
        if (!composite_is_ok(c)) return;
 
-       state->session = smb2_session_init(transport, state, True);
+       state->session = smb2_session_init(transport, state, true);
        if (composite_nomem(state->session, c)) return;
 
        creq = smb2_session_setup_spnego_send(state->session, state->credentials);
@@ -186,7 +187,8 @@ struct composite_context *smb2_connect_send(TALLOC_CTX *mem_ctx,
        ZERO_STRUCT(name);
        name.name = host;
 
-       creq = resolve_name_send(&name, c->event_ctx, lp_name_resolve_order());
+       creq = resolve_name_send(&name, c->event_ctx, 
+                                lp_name_resolve_order(global_loadparm));
        composite_continue(c, creq, continue_resolve, c);
        return c;
 }
index c8ac271f4496773430563ee533c7480240f1c673..ba11c22e87e8cab8f167eeac7fd0548a04999f6f 100644 (file)
@@ -32,7 +32,7 @@
 */
 NTSTATUS smb2_create_blob_add(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, 
                              uint32_t tag,
-                             DATA_BLOB add, BOOL last)
+                             DATA_BLOB add, bool last)
 {
        uint32_t ofs = blob->length;
        uint8_t pad = smb2_padding_size(add.length, 8);
@@ -65,7 +65,7 @@ struct smb2_request *smb2_create_send(struct smb2_tree *tree, struct smb2_create
        NTSTATUS status;
        DATA_BLOB blob = data_blob(NULL, 0);
 
-       req = smb2_request_init_tree(tree, SMB2_OP_CREATE, 0x38, True, 0);
+       req = smb2_request_init_tree(tree, SMB2_OP_CREATE, 0x38, true, 0);
        if (req == NULL) return NULL;
 
        SSVAL(req->out.body, 0x02, io->in.oplock_flags);
@@ -90,7 +90,7 @@ struct smb2_request *smb2_create_send(struct smb2_tree *tree, struct smb2_create
                DATA_BLOB b = data_blob_talloc(req, NULL, 
                                               ea_list_size_chained(io->in.eas.num_eas, io->in.eas.eas));
                ea_put_list_chained(b.data, io->in.eas.num_eas, io->in.eas.eas);
-               status = smb2_create_blob_add(req, &blob, CREATE_TAG_EXTA, b, False);
+               status = smb2_create_blob_add(req, &blob, CREATE_TAG_EXTA, b, false);
                if (!NT_STATUS_IS_OK(status)) {
                        talloc_free(req);
                        return NULL;
@@ -100,7 +100,7 @@ struct smb2_request *smb2_create_send(struct smb2_tree *tree, struct smb2_create
 
        /* an empty MxAc tag seems to be used to ask the server to
           return the maximum access mask allowed on the file */
-       status = smb2_create_blob_add(req, &blob, CREATE_TAG_MXAC, data_blob(NULL, 0), True);
+       status = smb2_create_blob_add(req, &blob, CREATE_TAG_MXAC, data_blob(NULL, 0), true);
 
        if (!NT_STATUS_IS_OK(status)) {
                talloc_free(req);
@@ -130,7 +130,7 @@ NTSTATUS smb2_create_recv(struct smb2_request *req, TALLOC_CTX *mem_ctx, struct
                return smb2_request_destroy(req);
        }
 
-       SMB2_CHECK_PACKET_RECV(req, 0x58, True);
+       SMB2_CHECK_PACKET_RECV(req, 0x58, true);
 
        io->out.oplock_flags   = SVAL(req->in.body, 0x02);
        io->out.create_action  = IVAL(req->in.body, 0x04);
index e8643f18684149d904879ea4d01a298b5239a2a5..6d0a9c80726ce2ab9713000f6674c9452063c24e 100644 (file)
@@ -32,7 +32,7 @@ struct smb2_request *smb2_find_send(struct smb2_tree *tree, struct smb2_find *io
        struct smb2_request *req;
        NTSTATUS status;
 
-       req = smb2_request_init_tree(tree, SMB2_OP_FIND, 0x20, True, 0);
+       req = smb2_request_init_tree(tree, SMB2_OP_FIND, 0x20, true, 0);
        if (req == NULL) return NULL;
 
        SCVAL(req->out.body, 0x02, io->in.level);
@@ -67,7 +67,7 @@ NTSTATUS smb2_find_recv(struct smb2_request *req, TALLOC_CTX *mem_ctx,
                return smb2_request_destroy(req);
        }
 
-       SMB2_CHECK_PACKET_RECV(req, 0x08, True);
+       SMB2_CHECK_PACKET_RECV(req, 0x08, true);
 
        status = smb2_pull_o16s32_blob(&req->in, mem_ctx, 
                                       req->in.body+0x02, &io->out.blob);
index 2f1b7bd7490f4925706122b260b33bb0b4f2acc3..116068ed6ebe96747475ed3b8cce8094f2fbc512 100644 (file)
@@ -30,7 +30,7 @@ struct smb2_request *smb2_flush_send(struct smb2_tree *tree, struct smb2_flush *
 {
        struct smb2_request *req;
 
-       req = smb2_request_init_tree(tree, SMB2_OP_FLUSH, 0x18, False, 0);
+       req = smb2_request_init_tree(tree, SMB2_OP_FLUSH, 0x18, false, 0);
        if (req == NULL) return NULL;
 
        SSVAL(req->out.body, 0x02, 0); /* pad? */
@@ -53,7 +53,7 @@ NTSTATUS smb2_flush_recv(struct smb2_request *req, struct smb2_flush *io)
                return smb2_request_destroy(req);
        }
 
-       SMB2_CHECK_PACKET_RECV(req, 0x04, False);
+       SMB2_CHECK_PACKET_RECV(req, 0x04, false);
 
        return smb2_request_destroy(req);
 }
index a9a681ea53edaea2cf524883777c8679c15e0210..0665dd441ce62f7774692d94e3bdd54d9ccb8135 100644 (file)
@@ -31,7 +31,7 @@ struct smb2_request *smb2_getinfo_send(struct smb2_tree *tree, struct smb2_getin
 {
        struct smb2_request *req;
 
-       req = smb2_request_init_tree(tree, SMB2_OP_GETINFO, 0x28, False, 0);
+       req = smb2_request_init_tree(tree, SMB2_OP_GETINFO, 0x28, false, 0);
        if (req == NULL) return NULL;
 
        /* this seems to be a bug, they use 0x29 but only send 0x28 bytes */
@@ -64,7 +64,7 @@ NTSTATUS smb2_getinfo_recv(struct smb2_request *req, TALLOC_CTX *mem_ctx,
                return smb2_request_destroy(req);
        }
 
-       SMB2_CHECK_PACKET_RECV(req, 0x08, True);
+       SMB2_CHECK_PACKET_RECV(req, 0x08, true);
 
        status = smb2_pull_o16s16_blob(&req->in, mem_ctx, req->in.body+0x02, &io->out.blob);
        if (!NT_STATUS_IS_OK(status)) {
index c13ec7943cfbee711be074c27155b671b5aba1c5..d81bca517f6165f14e2aad195e463787a476d120 100644 (file)
@@ -31,7 +31,7 @@ struct smb2_request *smb2_ioctl_send(struct smb2_tree *tree, struct smb2_ioctl *
        NTSTATUS status;
        struct smb2_request *req;
 
-       req = smb2_request_init_tree(tree, SMB2_OP_IOCTL, 0x38, True,
+       req = smb2_request_init_tree(tree, SMB2_OP_IOCTL, 0x38, true,
                                     io->in.in.length+io->in.out.length);
        if (req == NULL) return NULL;
 
@@ -75,7 +75,7 @@ NTSTATUS smb2_ioctl_recv(struct smb2_request *req,
                return smb2_request_destroy(req);
        }
 
-       SMB2_CHECK_PACKET_RECV(req, 0x30, True);
+       SMB2_CHECK_PACKET_RECV(req, 0x30, true);
 
        io->out._pad       = SVAL(req->in.body, 0x02);
        io->out.function   = IVAL(req->in.body, 0x04);
index e2b7c83b8a11209bed021d3816c11af4aaddd8c6..402b063e81befd6cf069c8a1582bfa425628e0b4 100644 (file)
@@ -30,7 +30,7 @@ struct smb2_request *smb2_keepalive_send(struct smb2_transport *transport)
 {
        struct smb2_request *req;
 
-       req = smb2_request_init(transport, SMB2_OP_KEEPALIVE, 0x04, False, 0);
+       req = smb2_request_init(transport, SMB2_OP_KEEPALIVE, 0x04, false, 0);
        if (req == NULL) return NULL;
 
        SSVAL(req->out.body, 0x02, 0);
@@ -51,7 +51,7 @@ NTSTATUS smb2_keepalive_recv(struct smb2_request *req)
                return smb2_request_destroy(req);
        }
 
-       SMB2_CHECK_PACKET_RECV(req, 0x04, False);
+       SMB2_CHECK_PACKET_RECV(req, 0x04, false);
        return smb2_request_destroy(req);
 }
 
index 470648a34c42cb16ef0d9f327520991dfc1836a6..d71a337d5621502d7b4046238a68f33848a3c15d 100644 (file)
@@ -30,7 +30,7 @@ struct smb2_request *smb2_lock_send(struct smb2_tree *tree, struct smb2_lock *io
 {
        struct smb2_request *req;
 
-       req = smb2_request_init_tree(tree, SMB2_OP_LOCK, 0x30, False, 0);
+       req = smb2_request_init_tree(tree, SMB2_OP_LOCK, 0x30, false, 0);
        if (req == NULL) return NULL;
 
        SSVAL(req->out.body, 0x02, io->in.unknown1);
@@ -57,7 +57,7 @@ NTSTATUS smb2_lock_recv(struct smb2_request *req, struct smb2_lock *io)
                return smb2_request_destroy(req);
        }
 
-       SMB2_CHECK_PACKET_RECV(req, 0x04, False);
+       SMB2_CHECK_PACKET_RECV(req, 0x04, false);
 
        io->out.unknown1 = SVAL(req->in.body, 0x02);
 
index 00d5e19e8291605596dda121ea9217d0b85c7911..321a4db1a66ed9a73c4a189fc293715feaa7782d 100644 (file)
@@ -30,7 +30,7 @@ struct smb2_request *smb2_logoff_send(struct smb2_session *session)
 {
        struct smb2_request *req;
 
-       req = smb2_request_init(session->transport, SMB2_OP_LOGOFF, 0x04, False, 0);
+       req = smb2_request_init(session->transport, SMB2_OP_LOGOFF, 0x04, false, 0);
        if (req == NULL) return NULL;
 
        SBVAL(req->out.hdr,  SMB2_HDR_UID, session->uid);
@@ -53,7 +53,7 @@ NTSTATUS smb2_logoff_recv(struct smb2_request *req)
                return smb2_request_destroy(req);
        }
 
-       SMB2_CHECK_PACKET_RECV(req, 0x04, False);
+       SMB2_CHECK_PACKET_RECV(req, 0x04, false);
        return smb2_request_destroy(req);
 }
 
index 07d06ca2ff51bb534562ab66d25139264afed4da..38fe0e7e5358e43a90e14da873af14e25d4ecf8f 100644 (file)
@@ -32,7 +32,7 @@ struct smb2_request *smb2_negprot_send(struct smb2_transport *transport,
 {
        struct smb2_request *req;
        
-       req = smb2_request_init(transport, SMB2_OP_NEGPROT, 0x26, False, 0);
+       req = smb2_request_init(transport, SMB2_OP_NEGPROT, 0x26, false, 0);
        if (req == NULL) return NULL;
 
        /* this seems to be a bug, they use 0x24 but the length is 0x26 */
@@ -60,7 +60,7 @@ NTSTATUS smb2_negprot_recv(struct smb2_request *req, TALLOC_CTX *mem_ctx,
                return smb2_request_destroy(req);
        }
 
-       SMB2_CHECK_PACKET_RECV(req, 0x40, True);
+       SMB2_CHECK_PACKET_RECV(req, 0x40, true);
 
        io->out._pad         = SVAL(req->in.body, 0x02);
        io->out.unknown2     = IVAL(req->in.body, 0x04);
index 58e2876745de161bad459e11a5577ea2ecffecd1..a3bea41eb09986cd902e68b193821659dfc9cb88 100644 (file)
@@ -32,7 +32,7 @@ struct smb2_request *smb2_notify_send(struct smb2_tree *tree, struct smb2_notify
        struct smb2_request *req;
        uint32_t old_timeout;
 
-       req = smb2_request_init_tree(tree, SMB2_OP_NOTIFY, 0x20, False, 0);
+       req = smb2_request_init_tree(tree, SMB2_OP_NOTIFY, 0x20, false, 0);
        if (req == NULL) return NULL;
 
        SSVAL(req->out.hdr,  SMB2_HDR_UNKNOWN1, 0x0030);
@@ -67,7 +67,7 @@ NTSTATUS smb2_notify_recv(struct smb2_request *req, TALLOC_CTX *mem_ctx,
                return smb2_request_destroy(req);
        }
 
-       SMB2_CHECK_PACKET_RECV(req, 0x08, True);
+       SMB2_CHECK_PACKET_RECV(req, 0x08, true);
 
        status = smb2_pull_o16s32_blob(&req->in, mem_ctx, req->in.body+0x02, &blob);
        if (!NT_STATUS_IS_OK(status)) {
index f78a1a8b0e58781aa5817ddf8a866deeff47be1f..b61f91848109f35482a3a0bdd50ac212be852f0d 100644 (file)
@@ -30,7 +30,7 @@ struct smb2_request *smb2_read_send(struct smb2_tree *tree, struct smb2_read *io
 {
        struct smb2_request *req;
 
-       req = smb2_request_init_tree(tree, SMB2_OP_READ, 0x30, True, 0);
+       req = smb2_request_init_tree(tree, SMB2_OP_READ, 0x30, true, 0);
        if (req == NULL) return NULL;
 
        SSVAL(req->out.body, 0x02, 0); /* pad */
@@ -59,7 +59,7 @@ NTSTATUS smb2_read_recv(struct smb2_request *req,
                return smb2_request_destroy(req);
        }
 
-       SMB2_CHECK_PACKET_RECV(req, 0x10, True);
+       SMB2_CHECK_PACKET_RECV(req, 0x10, true);
 
        status = smb2_pull_o16s32_blob(&req->in, mem_ctx, req->in.body+0x02, &io->out.data);
        if (!NT_STATUS_IS_OK(status)) {
index d857fc8c5ba36d57c7b46c8393da88d1d734be9b..576e2b6fcffdb698a71b004160ea15313346fd54 100644 (file)
 #include "libcli/smb2/smb2.h"
 #include "lib/util/dlinklist.h"
 #include "lib/events/events.h"
+#include "libcli/smb2/smb2_calls.h"
 
 /*
   initialise a smb2 request
 */
 struct smb2_request *smb2_request_init(struct smb2_transport *transport, uint16_t opcode,
-                                      uint16_t body_fixed_size, BOOL body_dynamic_present,
+                                      uint16_t body_fixed_size, bool body_dynamic_present,
                                       uint32_t body_dynamic_size)
 {
        struct smb2_request *req;
@@ -67,7 +68,7 @@ struct smb2_request *smb2_request_init(struct smb2_transport *transport, uint16_
        req->out.size      = SMB2_HDR_BODY+NBT_HDR_SIZE+body_fixed_size;
 
        req->out.allocated = req->out.size + body_dynamic_size;
-       req->out.buffer    = talloc_size(req, req->out.allocated);
+       req->out.buffer    = talloc_array(req, uint8_t, req->out.allocated);
        if (req->out.buffer == NULL) {
                talloc_free(req);
                return NULL;
@@ -112,7 +113,7 @@ struct smb2_request *smb2_request_init(struct smb2_transport *transport, uint16_
     initialise a smb2 request for tree operations
 */
 struct smb2_request *smb2_request_init_tree(struct smb2_tree *tree, uint16_t opcode,
-                                           uint16_t body_fixed_size, BOOL body_dynamic_present,
+                                           uint16_t body_fixed_size, bool body_dynamic_present,
                                            uint32_t body_dynamic_size)
 {
        struct smb2_request *req = smb2_request_init(tree->session->transport, opcode, 
@@ -156,16 +157,16 @@ NTSTATUS smb2_request_destroy(struct smb2_request *req)
 /*
   receive a response to a packet
 */
-BOOL smb2_request_receive(struct smb2_request *req)
+bool smb2_request_receive(struct smb2_request *req)
 {
        /* req can be NULL when a send has failed. This eliminates lots of NULL
           checks in each module */
-       if (!req) return False;
+       if (!req) return false;
 
        /* keep receiving packets until this one is replied to */
        while (req->state <= SMB2_REQUEST_RECV) {
                if (event_loop_once(req->transport->socket->event.ctx) != 0) {
-                       return False;
+                       return false;
                }
        }
 
@@ -173,13 +174,13 @@ BOOL smb2_request_receive(struct smb2_request *req)
 }
 
 /* Return true if the last packet was in error */
-BOOL smb2_request_is_error(struct smb2_request *req)
+bool smb2_request_is_error(struct smb2_request *req)
 {
        return NT_STATUS_IS_ERR(req->status);
 }
 
 /* Return true if the last packet was OK */
-BOOL smb2_request_is_ok(struct smb2_request *req)
+bool smb2_request_is_ok(struct smb2_request *req)
 {
        return NT_STATUS_IS_OK(req->status);
 }
@@ -187,16 +188,16 @@ BOOL smb2_request_is_ok(struct smb2_request *req)
 /*
   check if a range in the reply body is out of bounds
 */
-BOOL smb2_oob(struct smb2_request_buffer *buf, const uint8_t *ptr, size_t size)
+bool smb2_oob(struct smb2_request_buffer *buf, const uint8_t *ptr, size_t size)
 {
        /* be careful with wraparound! */
        if (ptr < buf->body ||
            ptr >= buf->body + buf->body_size ||
            size > buf->body_size ||
            ptr + size > buf->body + buf->body_size) {
-               return True;
+               return true;
        }
-       return False;
+       return false;
 }
 
 size_t smb2_padding_size(uint32_t offset, size_t n)
@@ -229,7 +230,7 @@ static NTSTATUS smb2_grow_buffer(struct smb2_request_buffer *buf, size_t increas
 
        dynamic_ofs = buf->dynamic - buf->buffer;
 
-       buffer_ptr = talloc_realloc_size(buf, buf->buffer, newsize);
+       buffer_ptr = talloc_realloc(buf, buf->buffer, uint8_t, newsize);
        NT_STATUS_HAVE_NO_MEMORY(buffer_ptr);
 
        buf->buffer     = buffer_ptr;
@@ -581,7 +582,7 @@ NTSTATUS smb2_pull_o16s16_string(struct smb2_request_buffer *buf, TALLOC_CTX *me
        size = convert_string_talloc(mem_ctx, CH_UTF16, CH_UNIX, 
                                     blob.data, blob.length, &vstr);
        data_blob_free(&blob);
-       (*str) = vstr;
+       (*str) = (char *)vstr;
        if (size == -1) {
                return NT_STATUS_ILLEGAL_CHARACTER;
        }
index 3f9b3ed55c199e65c8e07b2420a9f04974610a37..462f60d2c20124ff49897a0e8b015822232d66a9 100644 (file)
@@ -30,7 +30,7 @@
   initialise a smb2_session structure
  */
 struct smb2_session *smb2_session_init(struct smb2_transport *transport,
-                                      TALLOC_CTX *parent_ctx, BOOL primary)
+                                      TALLOC_CTX *parent_ctx, bool primary)
 {
        struct smb2_session *session;
        NTSTATUS status;
@@ -68,7 +68,7 @@ struct smb2_request *smb2_session_setup_send(struct smb2_session *session,
        NTSTATUS status;
        
        req = smb2_request_init(session->transport, SMB2_OP_SESSSETUP, 
-                               0x18, True, io->in.secblob.length);
+                               0x18, true, io->in.secblob.length);
        if (req == NULL) return NULL;
 
        SBVAL(req->out.hdr,  SMB2_HDR_UID, session->uid);
@@ -105,7 +105,7 @@ NTSTATUS smb2_session_setup_recv(struct smb2_request *req, TALLOC_CTX *mem_ctx,
                return smb2_request_destroy(req);
        }
 
-       SMB2_CHECK_PACKET_RECV(req, 0x08, True);
+       SMB2_CHECK_PACKET_RECV(req, 0x08, true);
 
        io->out._pad     = SVAL(req->in.body, 0x02);
        io->out.uid      = BVAL(req->in.hdr,  SMB2_HDR_UID);
index 67d433a48a368b28d0d802c0dfb067eb3d1ef525..d942568a2d365be477fe2d9f65236c8fc2b05505 100644 (file)
@@ -32,7 +32,7 @@ struct smb2_request *smb2_setinfo_send(struct smb2_tree *tree, struct smb2_setin
        NTSTATUS status;
        struct smb2_request *req;
 
-       req = smb2_request_init_tree(tree, SMB2_OP_SETINFO, 0x20, True, io->in.blob.length);
+       req = smb2_request_init_tree(tree, SMB2_OP_SETINFO, 0x20, true, io->in.blob.length);
        if (req == NULL) return NULL;
 
        SSVAL(req->out.body, 0x02, io->in.level);
@@ -62,7 +62,7 @@ NTSTATUS smb2_setinfo_recv(struct smb2_request *req)
                return smb2_request_destroy(req);
        }
 
-       SMB2_CHECK_PACKET_RECV(req, 0x02, False);
+       SMB2_CHECK_PACKET_RECV(req, 0x02, false);
 
        return smb2_request_destroy(req);
 }
index 4f341d12061d0e3b6fecb655c9776ef2c5c671e8..ad1ba4c92dcba530e6afd21b1841be7fc3fe85fc 100644 (file)
@@ -27,7 +27,7 @@
   initialise a smb2_session structure
  */
 struct smb2_tree *smb2_tree_init(struct smb2_session *session,
-                                TALLOC_CTX *parent_ctx, BOOL primary)
+                                TALLOC_CTX *parent_ctx, bool primary)
 {
        struct smb2_tree *tree;
 
@@ -53,7 +53,7 @@ struct smb2_request *smb2_tree_connect_send(struct smb2_tree *tree,
        NTSTATUS status;
 
        req = smb2_request_init(tree->session->transport, SMB2_OP_TCON, 
-                               0x08, True, 0);
+                               0x08, true, 0);
        if (req == NULL) return NULL;
 
        SBVAL(req->out.hdr,  SMB2_HDR_UID, tree->session->uid);
@@ -81,7 +81,7 @@ NTSTATUS smb2_tree_connect_recv(struct smb2_request *req, struct smb2_tree_conne
                return smb2_request_destroy(req);
        }
 
-       SMB2_CHECK_PACKET_RECV(req, 0x10, False);
+       SMB2_CHECK_PACKET_RECV(req, 0x10, false);
 
        io->out.tid      = IVAL(req->in.hdr,  SMB2_HDR_TID);
 
index 6ad3120740b59e8cb7f567d8c5bde152c886f228..5adad9dc6ede087b813d98a2fb1ab4467b12ed39 100644 (file)
@@ -30,7 +30,7 @@ struct smb2_request *smb2_tdis_send(struct smb2_tree *tree)
 {
        struct smb2_request *req;
 
-       req = smb2_request_init_tree(tree, SMB2_OP_TDIS, 0x04, False, 0);
+       req = smb2_request_init_tree(tree, SMB2_OP_TDIS, 0x04, false, 0);
        if (req == NULL) return NULL;
 
        SSVAL(req->out.body, 0x02, 0);
@@ -51,7 +51,7 @@ NTSTATUS smb2_tdis_recv(struct smb2_request *req)
                return smb2_request_destroy(req);
        }
 
-       SMB2_CHECK_PACKET_RECV(req, 0x04, False);
+       SMB2_CHECK_PACKET_RECV(req, 0x04, false);
        return smb2_request_destroy(req);
 }
 
index de08201c8b2a30e24104bf89956732b9a86af9e9..83e9436a58e06f74c04e9d5671fe536f5d8167d7 100644 (file)
@@ -193,7 +193,7 @@ static NTSTATUS smb2_transport_finish_recv(void *private, DATA_BLOB blob)
 
        if (NT_STATUS_EQUAL(req->status, STATUS_PENDING)) {
                if (flags & 0x00000002) {
-                       req->cancel.can_cancel = True;
+                       req->cancel.can_cancel = true;
                        req->cancel.pending_id = IVAL(hdr, SMB2_HDR_PID);
                        for (i=0; i< req->cancel.do_cancel; i++) {
                                smb2_cancel(req);
index 3d501dc9154e3a0a1a8777528bac876532042f3b..bc283370d75a9adf77aa4ca1ead65bf5843a2fa4 100644 (file)
@@ -31,7 +31,7 @@ struct smb2_request *smb2_write_send(struct smb2_tree *tree, struct smb2_write *
        NTSTATUS status;
        struct smb2_request *req;
 
-       req = smb2_request_init_tree(tree, SMB2_OP_WRITE, 0x30, True, io->in.data.length);
+       req = smb2_request_init_tree(tree, SMB2_OP_WRITE, 0x30, true, io->in.data.length);
        if (req == NULL) return NULL;
 
        status = smb2_push_o16s32_blob(&req->out, 0x02, io->in.data);
@@ -62,7 +62,7 @@ NTSTATUS smb2_write_recv(struct smb2_request *req, struct smb2_write *io)
                return smb2_request_destroy(req);
        }
 
-       SMB2_CHECK_PACKET_RECV(req, 0x10, True);
+       SMB2_CHECK_PACKET_RECV(req, 0x10, true);
 
        io->out._pad     = SVAL(req->in.body, 0x02);
        io->out.nwritten = IVAL(req->in.body, 0x04);
index f82714de5b4519ff28aa75330d14a91a0506df77..0fda8c4d653a3ff73336a00cd55190ac62537a30 100644 (file)
@@ -187,7 +187,7 @@ static NTSTATUS appendacl_close(struct composite_context *c,
 */
 static void appendacl_handler(struct smbcli_request *req)
 {
-       struct composite_context *c = req->async.private;
+       struct composite_context *c = (struct composite_context *)req->async.private;
        struct appendacl_state *state = talloc_get_type(c->private_data, struct appendacl_state);
 
        /* when this handler is called, the stage indicates what
index 026fe0b029f7fb65aaa75268646bc22e857a0e35..9f18c0d92430d805c6b0e5dd2ab5d8da015721bd 100644 (file)
@@ -28,6 +28,7 @@
 #include "libcli/resolve/resolve.h"
 #include "auth/credentials/credentials.h"
 #include "librpc/gen_ndr/ndr_nbt.h"
+#include "param/param.h"
 
 /* the stages of this call */
 enum connect_stage {CONNECT_RESOLVE, 
@@ -62,7 +63,8 @@ static NTSTATUS connect_send_negprot(struct composite_context *c,
 {
        struct connect_state *state = talloc_get_type(c->private_data, struct connect_state);
 
-       state->req = smb_raw_negotiate_send(state->transport, lp_cli_maxprotocol());
+       state->req = smb_raw_negotiate_send(state->transport, 
+                                           lp_cli_maxprotocol(global_loadparm));
        NT_STATUS_HAVE_NO_MEMORY(state->req);
 
        state->req->async.fn = request_handler;
@@ -114,12 +116,12 @@ static NTSTATUS connect_session_setup_anon(struct composite_context *c,
        status = smb_composite_sesssetup_recv(state->creq);
        NT_STATUS_NOT_OK_RETURN(status);
 
-       io->out.anonymous_fallback_done = True;
+       io->out.anonymous_fallback_done = true;
        
        state->session->vuid = state->io_setup->out.vuid;
        
        /* setup for a tconx */
-       io->out.tree = smbcli_tree_init(state->session, state, True);
+       io->out.tree = smbcli_tree_init(state->session, state, true);
        NT_STATUS_HAVE_NO_MEMORY(io->out.tree);
 
        state->io_tcon = talloc(c, union smb_tcon);
@@ -171,7 +173,8 @@ static NTSTATUS connect_session_setup(struct composite_context *c,
 
                state->io_setup->in.credentials = cli_credentials_init(state);
                NT_STATUS_HAVE_NO_MEMORY(state->io_setup->in.credentials);
-               cli_credentials_set_conf(state->io_setup->in.credentials);
+               cli_credentials_set_conf(state->io_setup->in.credentials, 
+                                        global_loadparm);
                cli_credentials_set_anonymous(state->io_setup->in.credentials);
 
                /* If the preceding attempt was with extended security, we
@@ -200,7 +203,7 @@ static NTSTATUS connect_session_setup(struct composite_context *c,
        state->session->vuid = state->io_setup->out.vuid;
        
        /* setup for a tconx */
-       io->out.tree = smbcli_tree_init(state->session, state, True);
+       io->out.tree = smbcli_tree_init(state->session, state, true);
        NT_STATUS_HAVE_NO_MEMORY(io->out.tree);
 
        state->io_tcon = talloc(c, union smb_tcon);
@@ -248,7 +251,7 @@ static NTSTATUS connect_negprot(struct composite_context *c,
        NT_STATUS_NOT_OK_RETURN(status);
 
        /* next step is a session setup */
-       state->session = smbcli_session_init(state->transport, state, True);
+       state->session = smbcli_session_init(state->transport, state, true);
        NT_STATUS_HAVE_NO_MEMORY(state->session);
 
        state->io_setup = talloc(c, struct smb_composite_sesssetup);
@@ -304,7 +307,7 @@ static NTSTATUS connect_socket(struct composite_context *c,
        NT_STATUS_NOT_OK_RETURN(status);
 
        /* the socket is up - we can initialise the smbcli transport layer */
-       state->transport = smbcli_transport_init(state->sock, state, True);
+       state->transport = smbcli_transport_init(state->sock, state, true);
        NT_STATUS_HAVE_NO_MEMORY(state->transport);
 
        if (is_ipaddress(state->sock->hostname) &&
@@ -458,7 +461,8 @@ struct composite_context *smb_composite_connect_send(struct smb_composite_connec
 
        state->stage = CONNECT_RESOLVE;
        make_nbt_name_server(&name, io->in.dest_host);
-       state->creq = resolve_name_send(&name, c->event_ctx, lp_name_resolve_order());
+       state->creq = resolve_name_send(&name, c->event_ctx, 
+                                       lp_name_resolve_order(global_loadparm));
 
        if (state->creq == NULL) goto failed;
        state->creq->async.private_data = c;
index 63a10a667dbf12ed94ca0e234e8f773117a08493..2dbaff5a662cca2863bf97836e66b93c63818042 100644 (file)
@@ -142,7 +142,7 @@ struct composite_context *smb_composite_fetchfile_send(struct smb_composite_fetc
        state->connect->in.service      = io->in.service;
        state->connect->in.service_type = io->in.service_type;
        state->connect->in.credentials  = io->in.credentials;
-       state->connect->in.fallback_to_anonymous = False;
+       state->connect->in.fallback_to_anonymous = false;
        state->connect->in.workgroup    = io->in.workgroup;
 
        state->creq = smb_composite_connect_send(state->connect, state, event_ctx);
index e81e3a20858314f147f87d4fafcc71215fea33f5..faf372353912939f5cfe1c0327ef7c151729ffc9 100644 (file)
@@ -148,7 +148,7 @@ struct composite_context *smb_composite_fsinfo_send(struct smbcli_tree *tree,
        state->connect->in.service      = io->in.service;
        state->connect->in.service_type = io->in.service_type;
        state->connect->in.credentials  = io->in.credentials;
-       state->connect->in.fallback_to_anonymous = False;
+       state->connect->in.fallback_to_anonymous = false;
        state->connect->in.workgroup    = io->in.workgroup;
 
        c->state = COMPOSITE_STATE_IN_PROGRESS;
index 9b65d04ef3888c88686e465fecc05eea37ebfccb..952f24b811ee72d1c58d737c22ad6f8dc6d01578 100644 (file)
@@ -105,7 +105,7 @@ static NTSTATUS loadfile_open(struct composite_context *c,
        state->io_read->readx.in.mincnt    = MIN(32768, io->out.size);
        state->io_read->readx.in.maxcnt    = state->io_read->readx.in.mincnt;
        state->io_read->readx.in.remaining = 0;
-       state->io_read->readx.in.read_for_execute = False;
+       state->io_read->readx.in.read_for_execute = false;
        state->io_read->readx.out.data     = io->out.data;
 
        state->req = smb_raw_read_send(tree, state->io_read);
@@ -180,7 +180,7 @@ static NTSTATUS loadfile_close(struct composite_context *c,
 */
 static void loadfile_handler(struct smbcli_request *req)
 {
-       struct composite_context *c = req->async.private;
+       struct composite_context *c = (struct composite_context *)req->async.private;
        struct loadfile_state *state = talloc_get_type(c->private_data, struct loadfile_state);
 
        /* when this handler is called, the stage indicates what
index 32fcdbcd87b702696a9b743265aefe6d9b7805aa..b94be9e9b17fee2aeb3b635f42bab3ab114883c0 100644 (file)
@@ -180,7 +180,7 @@ static NTSTATUS savefile_close(struct composite_context *c,
 */
 static void savefile_handler(struct smbcli_request *req)
 {
-       struct composite_context *c = req->async.private;
+       struct composite_context *c = (struct composite_context *)req->async.private;
        struct savefile_state *state = talloc_get_type(c->private_data, struct savefile_state);
 
        /* when this handler is called, the stage indicates what
index 25cf8b3f12667ec98027994e32761465c8790e8c..622367e746e3241693eb78ed431668d6f73b1747 100644 (file)
@@ -29,6 +29,7 @@
 #include "auth/gensec/gensec.h"
 #include "auth/credentials/credentials.h"
 #include "version.h"
+#include "param/param.h"
 
 struct sesssetup_state {
        union smb_sesssetup setup;
@@ -76,7 +77,7 @@ static void set_user_session_key(struct smbcli_session *session,
 */
 static void request_handler(struct smbcli_request *req)
 {
-       struct composite_context *c = req->async.private;
+       struct composite_context *c = (struct composite_context *)req->async.private;
        struct sesssetup_state *state = talloc_get_type(c->private_data, struct sesssetup_state);
        struct smbcli_session *session = req->session;
        DATA_BLOB session_key = data_blob(NULL, 0);
@@ -222,14 +223,14 @@ static NTSTATUS session_setup_nt1(struct composite_context *c,
        NTSTATUS nt_status;
        struct sesssetup_state *state = talloc_get_type(c->private_data, struct sesssetup_state);
        const char *password = cli_credentials_get_password(io->in.credentials);
-       DATA_BLOB names_blob = NTLMv2_generate_names_blob(state, session->transport->socket->hostname, lp_workgroup());
+       DATA_BLOB names_blob = NTLMv2_generate_names_blob(state, session->transport->socket->hostname, lp_workgroup(global_loadparm));
        DATA_BLOB session_key;
        int flags = CLI_CRED_NTLM_AUTH;
-       if (lp_client_lanman_auth()) {
+       if (lp_client_lanman_auth(global_loadparm)) {
                flags |= CLI_CRED_LANMAN_AUTH;
        }
 
-       if (lp_client_ntlmv2_auth()) {
+       if (lp_client_ntlmv2_auth(global_loadparm)) {
                flags |= CLI_CRED_NTLMv2_AUTH;
        }
 
@@ -262,7 +263,7 @@ static NTSTATUS session_setup_nt1(struct composite_context *c,
                set_user_session_key(session, &session_key);
                
                data_blob_free(&session_key);
-       } else if (lp_client_plaintext_auth()) {
+       } else if (lp_client_plaintext_auth(global_loadparm)) {
                state->setup.nt1.in.password1 = data_blob_talloc(state, password, strlen(password));
                state->setup.nt1.in.password2 = data_blob(NULL, 0);
        } else {
@@ -289,14 +290,14 @@ static NTSTATUS session_setup_old(struct composite_context *c,
        NTSTATUS nt_status;
        struct sesssetup_state *state = talloc_get_type(c->private_data, struct sesssetup_state);
        const char *password = cli_credentials_get_password(io->in.credentials);
-       DATA_BLOB names_blob = NTLMv2_generate_names_blob(state, session->transport->socket->hostname, lp_workgroup());
+       DATA_BLOB names_blob = NTLMv2_generate_names_blob(state, session->transport->socket->hostname, lp_workgroup(global_loadparm));
        DATA_BLOB session_key;
        int flags = 0;
-       if (lp_client_lanman_auth()) {
+       if (lp_client_lanman_auth(global_loadparm)) {
                flags |= CLI_CRED_LANMAN_AUTH;
        }
 
-       if (lp_client_ntlmv2_auth()) {
+       if (lp_client_ntlmv2_auth(global_loadparm)) {
                flags |= CLI_CRED_NTLMv2_AUTH;
        }
 
@@ -323,7 +324,7 @@ static NTSTATUS session_setup_old(struct composite_context *c,
                set_user_session_key(session, &session_key);
                
                data_blob_free(&session_key);
-       } else if (lp_client_plaintext_auth()) {
+       } else if (lp_client_plaintext_auth(global_loadparm)) {
                state->setup.old.in.password = data_blob_talloc(state, password, strlen(password));
        } else {
                /* could match windows client and return 'cannot logon from this workstation', but it just confuses everybody */
@@ -417,7 +418,7 @@ static NTSTATUS session_setup_spnego(struct composite_context *c,
                }
        }
 
-       if (chosen_oid == GENSEC_OID_SPNEGO) {
+       if ((const void *)chosen_oid == (const void *)GENSEC_OID_SPNEGO) {
                status = gensec_update(session->gensec, state,
                                       session->transport->negotiate.secblob,
                                       &state->setup.spnego.in.secblob);
index b887e7df97426123e0195a54a58e64fd6fbedba3..ec7632ccf4c491ea6a157762b7ebedd746fc48fc 100644 (file)
@@ -31,6 +31,7 @@
 #include "lib/talloc/talloc.h"
 #include "lib/events/events.h"
 #include "libcli/nbt/libnbt.h"
+#include "param/param.h"
 
 /* Undo strcpy safety macro as it's used by swig )-: */
 
@@ -38,7 +39,7 @@
 
 %}
 
-%apply bool { BOOL };
+%apply bool { bool };
 %apply int { uint8_t };
 %apply int { int8_t };
 %apply unsigned int { uint16_t };
@@ -111,8 +112,8 @@ struct nbt_name_query {
        struct {
                struct nbt_name name;
                const char *dest_addr;
-               BOOL broadcast;
-               BOOL wins_lookup;
+               bool broadcast;
+               bool wins_lookup;
                int timeout; /* in seconds */
                int retries;
        } in;
@@ -127,9 +128,17 @@ struct nbt_name_query {
 %include "carrays.i"
 %array_functions(char *, char_ptr_array);
 
-%rename(do_nbt_name_query) nbt_name_query;
+NTSTATUS do_nbt_name_query(struct nbt_name_socket *nbtsock, 
+                          TALLOC_CTX *mem_ctx, struct nbt_name_query *io);
 
-NTSTATUS nbt_name_query(struct nbt_name_socket *nbtsock, 
-                       TALLOC_CTX *mem_ctx, struct nbt_name_query *io);
+%{
+NTSTATUS do_nbt_name_query(struct nbt_name_socket *nbtsock, 
+                          TALLOC_CTX *mem_ctx, struct nbt_name_query *io)
+{
+       return nbt_name_query(nbtsock, mem_ctx, io);
+}
+%}
 
-void lp_load(void);
+%init %{
+      lp_load();
+%}
diff --git a/source/libcli/swig/libcli_smb.i b/source/libcli/swig/libcli_smb.i
new file mode 100644 (file)
index 0000000..8eb055c
--- /dev/null
@@ -0,0 +1,18 @@
+%module libcli_smb
+
+%{
+#include "includes.h"
+#include "lib/talloc/talloc.h"
+#include "lib/events/events.h"
+#include "libcli/raw/libcliraw.h"
+%}
+
+TALLOC_CTX *talloc_init(char *name);
+int talloc_free(TALLOC_CTX *ptr);
+struct event_context *event_context_init(TALLOC_CTX *mem_ctx);
+
+struct smbcli_socket *smbcli_sock_connect_byname(const char *host, int port,
+                                                TALLOC_CTX *mem_ctx,
+                                                struct event_context *event_ctx);
+
+void smbcli_sock_dead(struct smbcli_socket *sock);
index e7a2e163aaa967fe5df64c524099dcb207e76166..58cb5f07beed369d228b003ad09f47acdc2a3bf5 100644 (file)
@@ -37,41 +37,41 @@ void asn1_free(struct asn1_data *data)
 }
 
 /* write to the ASN1 buffer, advancing the buffer pointer */
-BOOL asn1_write(struct asn1_data *data, const void *p, int len)
+bool asn1_write(struct asn1_data *data, const void *p, int len)
 {
-       if (data->has_error) return False;
+       if (data->has_error) return false;
        if (data->length < data->ofs+len) {
                uint8_t *newp;
                newp = talloc_realloc(data, data->data, uint8_t, data->ofs+len);
                if (!newp) {
                        asn1_free(data);
-                       data->has_error = True;
-                       return False;
+                       data->has_error = true;
+                       return false;
                }
                data->data = newp;
                data->length = data->ofs+len;
        }
        memcpy(data->data + data->ofs, p, len);
        data->ofs += len;
-       return True;
+       return true;
 }
 
 /* useful fn for writing a uint8_t */
-BOOL asn1_write_uint8(struct asn1_data *data, uint8_t v)
+bool asn1_write_uint8(struct asn1_data *data, uint8_t v)
 {
        return asn1_write(data, &v, 1);
 }
 
 /* push a tag onto the asn1 data buffer. Used for nested structures */
-BOOL asn1_push_tag(struct asn1_data *data, uint8_t tag)
+bool asn1_push_tag(struct asn1_data *data, uint8_t tag)
 {
        struct nesting *nesting;
 
        asn1_write_uint8(data, tag);
        nesting = talloc(data, struct nesting);
        if (!nesting) {
-               data->has_error = True;
-               return False;
+               data->has_error = true;
+               return false;
        }
 
        nesting->start = data->ofs;
@@ -81,7 +81,7 @@ BOOL asn1_push_tag(struct asn1_data *data, uint8_t tag)
 }
 
 /* pop a tag */
-BOOL asn1_pop_tag(struct asn1_data *data)
+bool asn1_pop_tag(struct asn1_data *data)
 {
        struct nesting *nesting;
        size_t len;
@@ -89,8 +89,8 @@ BOOL asn1_pop_tag(struct asn1_data *data)
        nesting = data->nesting;
 
        if (!nesting) {
-               data->has_error = True;
-               return False;
+               data->has_error = true;
+               return false;
        }
        len = data->ofs - (nesting->start+1);
        /* yes, this is ugly. We don't know in advance how many bytes the length
@@ -98,10 +98,10 @@ BOOL asn1_pop_tag(struct asn1_data *data)
           need to correct our mistake */
        if (len > 0xFFFFFF) {
                data->data[nesting->start] = 0x84;
-               if (!asn1_write_uint8(data, 0)) return False;
-               if (!asn1_write_uint8(data, 0)) return False;
-               if (!asn1_write_uint8(data, 0)) return False;
-               if (!asn1_write_uint8(data, 0)) return False;
+               if (!asn1_write_uint8(data, 0)) return false;
+               if (!asn1_write_uint8(data, 0)) return false;
+               if (!asn1_write_uint8(data, 0)) return false;
+               if (!asn1_write_uint8(data, 0)) return false;
                memmove(data->data+nesting->start+5, data->data+nesting->start+1, len);
                data->data[nesting->start+1] = (len>>24) & 0xFF;
                data->data[nesting->start+2] = (len>>16) & 0xFF;
@@ -109,23 +109,23 @@ BOOL asn1_pop_tag(struct asn1_data *data)
                data->data[nesting->start+4] = len&0xff;
        } else if (len > 0xFFFF) {
                data->data[nesting->start] = 0x83;
-               if (!asn1_write_uint8(data, 0)) return False;
-               if (!asn1_write_uint8(data, 0)) return False;
-               if (!asn1_write_uint8(data, 0)) return False;
+               if (!asn1_write_uint8(data, 0)) return false;
+               if (!asn1_write_uint8(data, 0)) return false;
+               if (!asn1_write_uint8(data, 0)) return false;
                memmove(data->data+nesting->start+4, data->data+nesting->start+1, len);
                data->data[nesting->start+1] = (len>>16) & 0xFF;
                data->data[nesting->start+2] = (len>>8) & 0xFF;
                data->data[nesting->start+3] = len&0xff;
        } else if (len > 255) {
                data->data[nesting->start] = 0x82;
-               if (!asn1_write_uint8(data, 0)) return False;
-               if (!asn1_write_uint8(data, 0)) return False;
+               if (!asn1_write_uint8(data, 0)) return false;
+               if (!asn1_write_uint8(data, 0)) return false;
                memmove(data->data+nesting->start+3, data->data+nesting->start+1, len);
                data->data[nesting->start+1] = len>>8;
                data->data[nesting->start+2] = len&0xff;
        } else if (len > 127) {
                data->data[nesting->start] = 0x81;
-               if (!asn1_write_uint8(data, 0)) return False;
+               if (!asn1_write_uint8(data, 0)) return false;
                memmove(data->data+nesting->start+2, data->data+nesting->start+1, len);
                data->data[nesting->start+1] = len;
        } else {
@@ -134,20 +134,20 @@ BOOL asn1_pop_tag(struct asn1_data *data)
 
        data->nesting = nesting->next;
        talloc_free(nesting);
-       return True;
+       return true;
 }
 
 /* "i" is the one's complement representation, as is the normal result of an
  * implicit signed->unsigned conversion */
 
-static BOOL push_int_bigendian(struct asn1_data *data, unsigned int i, BOOL negative)
+static bool push_int_bigendian(struct asn1_data *data, unsigned int i, bool negative)
 {
        uint8_t lowest = i & 0xFF;
 
        i = i >> 8;
        if (i != 0)
                if (!push_int_bigendian(data, i, negative))
-                       return False;
+                       return false;
 
        if (data->nesting->start+1 == data->ofs) {
 
@@ -157,14 +157,14 @@ static BOOL push_int_bigendian(struct asn1_data *data, unsigned int i, BOOL nega
                if (negative) {
                        /* Don't write leading 0xff's */
                        if (lowest == 0xFF)
-                               return True;
+                               return true;
 
                        if ((lowest & 0x80) == 0) {
                                /* The only exception for a leading 0xff is if
                                 * the highest bit is 0, which would indicate
                                 * a positive value */
                                if (!asn1_write_uint8(data, 0xff))
-                                       return False;
+                                       return false;
                        }
                } else {
                        if (lowest & 0x80) {
@@ -172,7 +172,7 @@ static BOOL push_int_bigendian(struct asn1_data *data, unsigned int i, BOOL nega
                                 * this would indicate a negative number. Push
                                 * a 0 to indicate a positive one */
                                if (!asn1_write_uint8(data, 0))
-                                       return False;
+                                       return false;
                        }
                }
        }
@@ -183,7 +183,7 @@ static BOOL push_int_bigendian(struct asn1_data *data, unsigned int i, BOOL nega
 /* write an Integer without the tag framing. Needed for example for the LDAP
  * Abandon Operation */
 
-BOOL asn1_write_implicit_Integer(struct asn1_data *data, int i)
+bool asn1_write_implicit_Integer(struct asn1_data *data, int i)
 {
        if (i == -1) {
                /* -1 is special as it consists of all-0xff bytes. In
@@ -198,14 +198,14 @@ BOOL asn1_write_implicit_Integer(struct asn1_data *data, int i)
 
 
 /* write an integer */
-BOOL asn1_write_Integer(struct asn1_data *data, int i)
+bool asn1_write_Integer(struct asn1_data *data, int i)
 {
-       if (!asn1_push_tag(data, ASN1_INTEGER)) return False;
-       if (!asn1_write_implicit_Integer(data, i)) return False;
+       if (!asn1_push_tag(data, ASN1_INTEGER)) return false;
+       if (!asn1_write_implicit_Integer(data, i)) return false;
        return asn1_pop_tag(data);
 }
 
-BOOL ber_write_OID_String(DATA_BLOB *blob, const char *OID)
+bool ber_write_OID_String(DATA_BLOB *blob, const char *OID)
 {
        uint_t v, v2;
        const char *p = (const char *)OID;
@@ -213,16 +213,16 @@ BOOL ber_write_OID_String(DATA_BLOB *blob, const char *OID)
        int i;
 
        v = strtoul(p, &newp, 10);
-       if (newp[0] != '.') return False;
+       if (newp[0] != '.') return false;
        p = newp + 1;
 
        v2 = strtoul(p, &newp, 10);
-       if (newp[0] != '.') return False;
+       if (newp[0] != '.') return false;
        p = newp + 1;
 
        /*the ber representation can't use more space then the string one */
        *blob = data_blob(NULL, strlen(OID));
-       if (!blob->data) return False;
+       if (!blob->data) return false;
 
        blob->data[0] = 40*v + v2;
 
@@ -235,7 +235,7 @@ BOOL ber_write_OID_String(DATA_BLOB *blob, const char *OID)
                        p = newp;
                } else {
                        data_blob_free(blob);
-                       return False;
+                       return false;
                }
                if (v >= (1<<28)) blob->data[i++] = (0x80 | ((v>>28)&0x7f));
                if (v >= (1<<21)) blob->data[i++] = (0x80 | ((v>>21)&0x7f));
@@ -246,31 +246,31 @@ BOOL ber_write_OID_String(DATA_BLOB *blob, const char *OID)
 
        blob->length = i;
 
-       return True;
+       return true;
 }
 
 /* write an object ID to a ASN1 buffer */
-BOOL asn1_write_OID(struct asn1_data *data, const char *OID)
+bool asn1_write_OID(struct asn1_data *data, const char *OID)
 {
        DATA_BLOB blob;
 
-       if (!asn1_push_tag(data, ASN1_OID)) return False;
+       if (!asn1_push_tag(data, ASN1_OID)) return false;
 
        if (!ber_write_OID_String(&blob, OID)) {
-               data->has_error = True;
-               return False;
+               data->has_error = true;
+               return false;
        }
 
        if (!asn1_write(data, blob.data, blob.length)) {
-               data->has_error = True;
-               return False;
+               data->has_error = true;
+               return false;
        }
        data_blob_free(&blob);
        return asn1_pop_tag(data);
 }
 
 /* write an octet string */
-BOOL asn1_write_OctetString(struct asn1_data *data, const void *p, size_t length)
+bool asn1_write_OctetString(struct asn1_data *data, const void *p, size_t length)
 {
        asn1_push_tag(data, ASN1_OCTET_STRING);
        asn1_write(data, p, length);
@@ -279,14 +279,14 @@ BOOL asn1_write_OctetString(struct asn1_data *data, const void *p, size_t length
 }
 
 /* write a LDAP string */
-BOOL asn1_write_LDAPString(struct asn1_data *data, const char *s)
+bool asn1_write_LDAPString(struct asn1_data *data, const char *s)
 {
        asn1_write(data, s, strlen(s));
        return !data->has_error;
 }
 
 /* write a general string */
-BOOL asn1_write_GeneralString(struct asn1_data *data, const char *s)
+bool asn1_write_GeneralString(struct asn1_data *data, const char *s)
 {
        asn1_push_tag(data, ASN1_GENERAL_STRING);
        asn1_write_LDAPString(data, s);
@@ -294,7 +294,7 @@ BOOL asn1_write_GeneralString(struct asn1_data *data, const char *s)
        return !data->has_error;
 }
 
-BOOL asn1_write_ContextSimple(struct asn1_data *data, uint8_t num, DATA_BLOB *blob)
+bool asn1_write_ContextSimple(struct asn1_data *data, uint8_t num, DATA_BLOB *blob)
 {
        asn1_push_tag(data, ASN1_CONTEXT_SIMPLE(num));
        asn1_write(data, blob->data, blob->length);
@@ -303,7 +303,7 @@ BOOL asn1_write_ContextSimple(struct asn1_data *data, uint8_t num, DATA_BLOB *bl
 }
 
 /* write a BOOLEAN */
-BOOL asn1_write_BOOLEAN(struct asn1_data *data, BOOL v)
+bool asn1_write_BOOLEAN(struct asn1_data *data, bool v)
 {
        asn1_push_tag(data, ASN1_BOOLEAN);
        asn1_write_uint8(data, v ? 0xFF : 0);
@@ -311,137 +311,140 @@ BOOL asn1_write_BOOLEAN(struct asn1_data *data, BOOL v)
        return !data->has_error;
 }
 
-BOOL asn1_read_BOOLEAN(struct asn1_data *data, BOOL *v)
+bool asn1_read_BOOLEAN(struct asn1_data *data, bool *v)
 {
        uint8_t tmp = 0;
        asn1_start_tag(data, ASN1_BOOLEAN);
        asn1_read_uint8(data, &tmp);
        if (tmp == 0xFF) {
-               *v = True;
+               *v = true;
        } else {
-               *v = False;
+               *v = false;
        }
        asn1_end_tag(data);
        return !data->has_error;
 }
 
 /* check a BOOLEAN */
-BOOL asn1_check_BOOLEAN(struct asn1_data *data, BOOL v)
+bool asn1_check_BOOLEAN(struct asn1_data *data, bool v)
 {
        uint8_t b = 0;
 
        asn1_read_uint8(data, &b);
        if (b != ASN1_BOOLEAN) {
-               data->has_error = True;
-               return False;
+               data->has_error = true;
+               return false;
        }
        asn1_read_uint8(data, &b);
        if (b != v) {
-               data->has_error = True;
-               return False;
+               data->has_error = true;
+               return false;
        }
        return !data->has_error;
 }
 
 
 /* load a struct asn1_data structure with a lump of data, ready to be parsed */
-BOOL asn1_load(struct asn1_data *data, DATA_BLOB blob)
+bool asn1_load(struct asn1_data *data, DATA_BLOB blob)
 {
        ZERO_STRUCTP(data);
        data->data = talloc_memdup(data, blob.data, blob.length);
        if (!data->data) {
-               data->has_error = True;
-               return False;
+               data->has_error = true;
+               return false;
        }
        data->length = blob.length;
-       return True;
+       return true;
 }
 
 /* Peek into an ASN1 buffer, not advancing the pointer */
-BOOL asn1_peek(struct asn1_data *data, void *p, int len)
+bool asn1_peek(struct asn1_data *data, void *p, int len)
 {
+       if (data->has_error)
+               return false;
+
        if (len < 0 || data->ofs + len < data->ofs || data->ofs + len < len)
-               return False;
+               return false;
 
        if (data->ofs + len > data->length) {
                /* we need to mark the buffer as consumed, so the caller knows
                   this was an out of data error, and not a decode error */
                data->ofs = data->length;
-               return False;
+               return false;
        }
 
        memcpy(p, data->data + data->ofs, len);
-       return True;
+       return true;
 }
 
 /* read from a ASN1 buffer, advancing the buffer pointer */
-BOOL asn1_read(struct asn1_data *data, void *p, int len)
+bool asn1_read(struct asn1_data *data, void *p, int len)
 {
        if (!asn1_peek(data, p, len)) {
-               data->has_error = True;
-               return False;
+               data->has_error = true;
+               return false;
        }
 
        data->ofs += len;
-       return True;
+       return true;
 }
 
 /* read a uint8_t from a ASN1 buffer */
-BOOL asn1_read_uint8(struct asn1_data *data, uint8_t *v)
+bool asn1_read_uint8(struct asn1_data *data, uint8_t *v)
 {
        return asn1_read(data, v, 1);
 }
 
-BOOL asn1_peek_uint8(struct asn1_data *data, uint8_t *v)
+bool asn1_peek_uint8(struct asn1_data *data, uint8_t *v)
 {
        return asn1_peek(data, v, 1);
 }
 
-BOOL asn1_peek_tag(struct asn1_data *data, uint8_t tag)
+bool asn1_peek_tag(struct asn1_data *data, uint8_t tag)
 {
        uint8_t b;
 
        if (asn1_tag_remaining(data) <= 0) {
-               return False;
+               return false;
        }
 
-       if (!asn1_peek(data, &b, sizeof(b)))
-               return False;
+       if (!asn1_peek_uint8(data, &b))
+               return false;
 
        return (b == tag);
 }
 
 /* start reading a nested asn1 structure */
-BOOL asn1_start_tag(struct asn1_data *data, uint8_t tag)
+bool asn1_start_tag(struct asn1_data *data, uint8_t tag)
 {
        uint8_t b;
        struct nesting *nesting;
        
        if (!asn1_read_uint8(data, &b))
-               return False;
+               return false;
 
        if (b != tag) {
-               data->has_error = True;
-               return False;
+               data->has_error = true;
+               return false;
        }
        nesting = talloc(data, struct nesting);
        if (!nesting) {
-               data->has_error = True;
-               return False;
+               data->has_error = true;
+               return false;
        }
 
        if (!asn1_read_uint8(data, &b)) {
-               return False;
+               return false;
        }
 
        if (b & 0x80) {
                int n = b & 0x7f;
                if (!asn1_read_uint8(data, &b))
-                       return False;
+                       return false;
                nesting->taglen = b;
                while (n > 1) {
                        if (!asn1_read_uint8(data, &b)) 
-                               return False;
+                               return false;
                        nesting->taglen = (nesting->taglen << 8) | b;
                        n--;
                }
@@ -452,32 +455,32 @@ BOOL asn1_start_tag(struct asn1_data *data, uint8_t tag)
        nesting->next = data->nesting;
        data->nesting = nesting;
        if (asn1_tag_remaining(data) == -1) {
-               return False;
+               return false;
        }
        return !data->has_error;
 }
 
 /* stop reading a tag */
-BOOL asn1_end_tag(struct asn1_data *data)
+bool asn1_end_tag(struct asn1_data *data)
 {
        struct nesting *nesting;
 
        /* make sure we read it all */
        if (asn1_tag_remaining(data) != 0) {
-               data->has_error = True;
-               return False;
+               data->has_error = true;
+               return false;
        }
 
        nesting = data->nesting;
 
        if (!nesting) {
-               data->has_error = True;
-               return False;
+               data->has_error = true;
+               return false;
        }
 
        data->nesting = nesting->next;
        talloc_free(nesting);
-       return True;
+       return true;
 }
 
 /* work out how many bytes are left in this nested tag */
@@ -489,38 +492,38 @@ int asn1_tag_remaining(struct asn1_data *data)
        }
 
        if (!data->nesting) {
-               data->has_error = True;
+               data->has_error = true;
                return -1;
        }
        remaining = data->nesting->taglen - (data->ofs - data->nesting->start);
        if (remaining > (data->length - data->ofs)) {
-               data->has_error = True;
+               data->has_error = true;
                return -1;
        }
        return remaining;
 }
 
 /* read an object ID from a data blob */
-BOOL ber_read_OID_String(TALLOC_CTX *mem_ctx, DATA_BLOB blob, const char **OID)
+bool ber_read_OID_String(TALLOC_CTX *mem_ctx, DATA_BLOB blob, const char **OID)
 {
        int i;
        uint8_t *b;
        uint_t v;
        char *tmp_oid = NULL;
 
-       if (blob.length < 2) return False;
+       if (blob.length < 2) return false;
 
        b = blob.data;
 
        tmp_oid = talloc_asprintf(mem_ctx, "%u",  b[0]/40);
        if (!tmp_oid) goto nomem;
-       tmp_oid = talloc_asprintf_append(tmp_oid, ".%u",  b[0]%40);
+       tmp_oid = talloc_asprintf_append_buffer(tmp_oid, ".%u",  b[0]%40);
        if (!tmp_oid) goto nomem;
 
        for(i = 1, v = 0; i < blob.length; i++) {
                v = (v<<7) | (b[i]&0x7f);
                if ( ! (b[i] & 0x80)) {
-                       tmp_oid = talloc_asprintf_append(tmp_oid, ".%u",  v);
+                       tmp_oid = talloc_asprintf_append_buffer(tmp_oid, ".%u",  v);
                        v = 0;
                }
                if (!tmp_oid) goto nomem;
@@ -528,82 +531,82 @@ BOOL ber_read_OID_String(TALLOC_CTX *mem_ctx, DATA_BLOB blob, const char **OID)
 
        if (v != 0) {
                talloc_free(tmp_oid);
-               return False;
+               return false;
        }
 
        *OID = tmp_oid;
-       return True;
+       return true;
 
 nomem: 
-       return False;
+       return false;
 }
 
 /* read an object ID from a ASN1 buffer */
-BOOL asn1_read_OID(struct asn1_data *data, TALLOC_CTX *mem_ctx, const char **OID)
+bool asn1_read_OID(struct asn1_data *data, TALLOC_CTX *mem_ctx, const char **OID)
 {
        DATA_BLOB blob;
        int len;
 
-       if (!asn1_start_tag(data, ASN1_OID)) return False;
+       if (!asn1_start_tag(data, ASN1_OID)) return false;
 
        len = asn1_tag_remaining(data);
        if (len < 0) {
-               data->has_error = True;
-               return False;
+               data->has_error = true;
+               return false;
        }
 
        blob = data_blob(NULL, len);
        if (!blob.data) {
-               data->has_error = True;
-               return False;
+               data->has_error = true;
+               return false;
        }
 
        asn1_read(data, blob.data, len);
        asn1_end_tag(data);
        if (data->has_error) {
                data_blob_free(&blob);
-               return False;
+               return false;
        }
 
        if (!ber_read_OID_String(mem_ctx, blob, OID)) {
-               data->has_error = True;
+               data->has_error = true;
                data_blob_free(&blob);
-               return False;
+               return false;
        }
 
        data_blob_free(&blob);
-       return True;
+       return true;
 }
 
 /* check that the next object ID is correct */
-BOOL asn1_check_OID(struct asn1_data *data, const char *OID)
+bool asn1_check_OID(struct asn1_data *data, const char *OID)
 {
        const char *id;
 
-       if (!asn1_read_OID(data, data, &id)) return False;
+       if (!asn1_read_OID(data, data, &id)) return false;
 
        if (strcmp(id, OID) != 0) {
                talloc_free(discard_const(id));
-               data->has_error = True;
-               return False;
+               data->has_error = true;
+               return false;
        }
        talloc_free(discard_const(id));
-       return True;
+       return true;
 }
 
 /* read a LDAPString from a ASN1 buffer */
-BOOL asn1_read_LDAPString(struct asn1_data *data, TALLOC_CTX *mem_ctx, char **s)
+bool asn1_read_LDAPString(struct asn1_data *data, TALLOC_CTX *mem_ctx, char **s)
 {
        int len;
        len = asn1_tag_remaining(data);
        if (len < 0) {
-               data->has_error = True;
-               return False;
+               data->has_error = true;
+               return false;
        }
-       *s = talloc_size(mem_ctx, len+1);
+       *s = talloc_array(mem_ctx, char, len+1);
        if (! *s) {
-               data->has_error = True;
-               return False;
+               data->has_error = true;
+               return false;
        }
        asn1_read(data, *s, len);
        (*s)[len] = 0;
@@ -612,29 +615,29 @@ BOOL asn1_read_LDAPString(struct asn1_data *data, TALLOC_CTX *mem_ctx, char **s)
 
 
 /* read a GeneralString from a ASN1 buffer */
-BOOL asn1_read_GeneralString(struct asn1_data *data, TALLOC_CTX *mem_ctx, char **s)
+bool asn1_read_GeneralString(struct asn1_data *data, TALLOC_CTX *mem_ctx, char **s)
 {
-       if (!asn1_start_tag(data, ASN1_GENERAL_STRING)) return False;
-       if (!asn1_read_LDAPString(data, mem_ctx, s)) return False;
+       if (!asn1_start_tag(data, ASN1_GENERAL_STRING)) return false;
+       if (!asn1_read_LDAPString(data, mem_ctx, s)) return false;
        return asn1_end_tag(data);
 }
 
 
 /* read a octet string blob */
-BOOL asn1_read_OctetString(struct asn1_data *data, TALLOC_CTX *mem_ctx, DATA_BLOB *blob)
+bool asn1_read_OctetString(struct asn1_data *data, TALLOC_CTX *mem_ctx, DATA_BLOB *blob)
 {
        int len;
        ZERO_STRUCTP(blob);
-       if (!asn1_start_tag(data, ASN1_OCTET_STRING)) return False;
+       if (!asn1_start_tag(data, ASN1_OCTET_STRING)) return false;
        len = asn1_tag_remaining(data);
        if (len < 0) {
-               data->has_error = True;
-               return False;
+               data->has_error = true;
+               return false;
        }
        *blob = data_blob_talloc(mem_ctx, NULL, len+1);
        if (!blob->data) {
-               data->has_error = True;
-               return False;
+               data->has_error = true;
+               return false;
        }
        asn1_read(data, blob->data, len);
        asn1_end_tag(data);
@@ -644,25 +647,25 @@ BOOL asn1_read_OctetString(struct asn1_data *data, TALLOC_CTX *mem_ctx, DATA_BLO
        if (data->has_error) {
                data_blob_free(blob);
                *blob = data_blob(NULL, 0);
-               return False;
+               return false;
        }
-       return True;
+       return true;
 }
 
-BOOL asn1_read_ContextSimple(struct asn1_data *data, uint8_t num, DATA_BLOB *blob)
+bool asn1_read_ContextSimple(struct asn1_data *data, uint8_t num, DATA_BLOB *blob)
 {
        int len;
        ZERO_STRUCTP(blob);
-       if (!asn1_start_tag(data, ASN1_CONTEXT_SIMPLE(num))) return False;
+       if (!asn1_start_tag(data, ASN1_CONTEXT_SIMPLE(num))) return false;
        len = asn1_tag_remaining(data);
        if (len < 0) {
-               data->has_error = True;
-               return False;
+               data->has_error = true;
+               return false;
        }
        *blob = data_blob(NULL, len);
        if ((len != 0) && (!blob->data)) {
-               data->has_error = True;
-               return False;
+               data->has_error = true;
+               return false;
        }
        asn1_read(data, blob->data, len);
        asn1_end_tag(data);
@@ -670,13 +673,13 @@ BOOL asn1_read_ContextSimple(struct asn1_data *data, uint8_t num, DATA_BLOB *blo
 }
 
 /* read an interger without tag*/
-BOOL asn1_read_implicit_Integer(struct asn1_data *data, int *i)
+bool asn1_read_implicit_Integer(struct asn1_data *data, int *i)
 {
        uint8_t b;
        *i = 0;
 
        while (!data->has_error && asn1_tag_remaining(data)>0) {
-               if (!asn1_read_uint8(data, &b)) return False;
+               if (!asn1_read_uint8(data, &b)) return false;
                *i = (*i << 8) + b;
        }
        return !data->has_error;        
@@ -684,21 +687,21 @@ BOOL asn1_read_implicit_Integer(struct asn1_data *data, int *i)
 }
 
 /* read an interger */
-BOOL asn1_read_Integer(struct asn1_data *data, int *i)
+bool asn1_read_Integer(struct asn1_data *data, int *i)
 {
        *i = 0;
 
-       if (!asn1_start_tag(data, ASN1_INTEGER)) return False;
-       if (!asn1_read_implicit_Integer(data, i)) return False;
+       if (!asn1_start_tag(data, ASN1_INTEGER)) return false;
+       if (!asn1_read_implicit_Integer(data, i)) return false;
        return asn1_end_tag(data);      
 }
 
 /* read an interger */
-BOOL asn1_read_enumerated(struct asn1_data *data, int *v)
+bool asn1_read_enumerated(struct asn1_data *data, int *v)
 {
        *v = 0;
        
-       if (!asn1_start_tag(data, ASN1_ENUMERATED)) return False;
+       if (!asn1_start_tag(data, ASN1_ENUMERATED)) return false;
        while (!data->has_error && asn1_tag_remaining(data)>0) {
                uint8_t b;
                asn1_read_uint8(data, &b);
@@ -708,23 +711,23 @@ BOOL asn1_read_enumerated(struct asn1_data *data, int *v)
 }
 
 /* check a enumarted value is correct */
-BOOL asn1_check_enumerated(struct asn1_data *data, int v)
+bool asn1_check_enumerated(struct asn1_data *data, int v)
 {
        uint8_t b;
-       if (!asn1_start_tag(data, ASN1_ENUMERATED)) return False;
+       if (!asn1_start_tag(data, ASN1_ENUMERATED)) return false;
        asn1_read_uint8(data, &b);
        asn1_end_tag(data);
 
        if (v != b)
-               data->has_error = False;
+               data->has_error = false;
 
        return !data->has_error;
 }
 
 /* write an enumarted value to the stream */
-BOOL asn1_write_enumerated(struct asn1_data *data, uint8_t v)
+bool asn1_write_enumerated(struct asn1_data *data, uint8_t v)
 {
-       if (!asn1_push_tag(data, ASN1_ENUMERATED)) return False;
+       if (!asn1_push_tag(data, ASN1_ENUMERATED)) return false;
        asn1_write_uint8(data, v);
        asn1_pop_tag(data);
        return !data->has_error;
index 6fd84bbe740149a537cf113b42188fb58948f93b..7c3229464879c238433e119f2c372364ffa1e8e6 100644 (file)
@@ -31,6 +31,7 @@
 #include "libcli/security/security.h"
 #include "librpc/gen_ndr/ndr_lsa.h"
 #include "librpc/gen_ndr/ndr_lsa_c.h"
+#include "libcli/util/clilsa.h"
 
 struct smblsa_state {
        struct dcerpc_pipe *pipe;
@@ -60,7 +61,7 @@ static NTSTATUS smblsa_connect(struct smbcli_state *cli)
                return NT_STATUS_NO_MEMORY;
        }
 
-       lsa->ipc_tree = smbcli_tree_init(cli->session, lsa, False);
+       lsa->ipc_tree = smbcli_tree_init(cli->session, lsa, false);
        if (lsa->ipc_tree == NULL) {
                return NT_STATUS_NO_MEMORY;
        }
index d62a31c1fab30c0d2148c8d5ebd6695ff6c85c09..49818e573a4668e512b727d289beb9de2fe56b1b 100644 (file)
@@ -20,7 +20,6 @@
 /* DOS error codes.  please read doserr.h */
 
 #include "includes.h"
-#include "pstring.h"
 
 struct werror_code_struct {
        const char *dos_errstr;
@@ -133,7 +132,7 @@ static const struct werror_code_struct dos_errs[] =
  *****************************************************************************/
 const char *win_errstr(WERROR werror)
 {
-        static pstring msg;
+        static char msg[40];
         int idx = 0;
 
        while (dos_errs[idx].dos_errstr != NULL) {
index 0478eff9473d570762b384f4af1d145435d6d37e..bec268a565557ae02fc5b9b75fcd36e3912febfe 100644 (file)
 #define ERRsharebufexc 36 /* share buffer exceeded */
 #define ERRdiskfull 39
 
-
-/* these are win32 error codes. There are only a few places where
-   these matter for Samba, primarily in the NT printing code */
-#define WERR_OK W_ERROR(0)
-#define WERR_BADFUNC W_ERROR(1)
-#define WERR_BADFILE W_ERROR(2)
-#define WERR_ACCESS_DENIED W_ERROR(5)
-#define WERR_BADFID W_ERROR(6)
-#define WERR_NOMEM W_ERROR(8)
-#define WERR_GENERAL_FAILURE W_ERROR(31)
-#define WERR_NOT_SUPPORTED W_ERROR(50)
-#define WERR_BAD_NETPATH W_ERROR(53)
-#define WERR_BAD_NET_RESP W_ERROR(58)
-#define WERR_UNEXP_NET_ERR W_ERROR(59)
-#define WERR_PRINTQ_FULL W_ERROR(61)
-#define WERR_NO_SPOOL_SPACE W_ERROR(62)
-#define WERR_NO_SUCH_SHARE W_ERROR(67)
-#define WERR_FILE_EXISTS W_ERROR(80)
-#define WERR_BAD_PASSWORD W_ERROR(86)
-#define WERR_INVALID_PARAM W_ERROR(87)
-#define WERR_INSUFFICIENT_BUFFER W_ERROR(122)
-#define WERR_INVALID_NAME W_ERROR(123)
-#define WERR_UNKNOWN_LEVEL W_ERROR(124)
-#define WERR_OBJECT_PATH_INVALID W_ERROR(161)
-#define WERR_ALREADY_EXISTS W_ERROR(183)
-#define WERR_NO_MORE_ITEMS W_ERROR(259)
-#define WERR_MORE_DATA W_ERROR(234)
-#define WERR_CAN_NOT_COMPLETE W_ERROR(1003)
-#define WERR_NOT_FOUND W_ERROR(1168)
-#define WERR_INVALID_COMPUTERNAME W_ERROR(1210)
-#define WERR_INVALID_DOMAINNAME W_ERROR(1212)
-#define WERR_UNKNOWN_REVISION W_ERROR(1305)
-#define WERR_REVISION_MISMATCH W_ERROR(1306)
-#define WERR_INVALID_OWNER W_ERROR(1307)
-#define WERR_NO_LOGON_SERVERS W_ERROR(1311)
-#define WERR_NO_SUCH_PRIVILEGE W_ERROR(1313)
-#define WERR_PRIVILEGE_NOT_HELD W_ERROR(1314)
-#define WERR_NO_SUCH_USER W_ERROR(1317)
-#define WERR_LOGON_FAILURE W_ERROR(1326)
-#define WERR_INVALID_SECURITY_DESCRIPTOR W_ERROR(1338)
-#define WERR_INVALID_DOMAIN_ROLE W_ERROR(1354)
-#define WERR_NO_SUCH_DOMAIN W_ERROR(1355)
-#define WERR_NO_SYSTEM_RESOURCES W_ERROR(1450)
-#define WERR_SERVER_UNAVAILABLE W_ERROR(1722)
-#define WERR_INVALID_FORM_NAME W_ERROR(1902)
-#define WERR_INVALID_FORM_SIZE W_ERROR(1903)
-#define WERR_ALREADY_SHARED W_ERROR(2118)
-#define WERR_BUF_TOO_SMALL W_ERROR(2123)
-#define WERR_JOB_NOT_FOUND W_ERROR(2151)
-#define WERR_DEST_NOT_FOUND W_ERROR(2152)
-#define WERR_SESSION_NOT_FOUND W_ERROR(2312)
-#define WERR_FID_NOT_FOUND W_ERROR(2314)
-#define WERR_NOT_LOCAL_DOMAIN W_ERROR(2320)
-#define WERR_DOMAIN_CONTROLLER_NOT_FOUND W_ERROR(2453)
-#define WERR_DEVICE_NOT_AVAILABLE W_ERROR(4319)
-#define WERR_STATUS_MORE_ENTRIES   W_ERROR(0x0105)
-
-#define WERR_PRINTER_DRIVER_ALREADY_INSTALLED W_ERROR(ERRdriveralreadyinstalled)
-#define WERR_UNKNOWN_PORT W_ERROR(ERRunknownprinterport)
-#define WERR_UNKNOWN_PRINTER_DRIVER W_ERROR(ERRunknownprinterdriver)
-#define WERR_UNKNOWN_PRINTPROCESSOR W_ERROR(ERRunknownprintprocessor)
-#define WERR_INVALID_SEPARATOR_FILE W_ERROR(ERRinvalidseparatorfile)
-#define WERR_INVALID_PRIORITY W_ERROR(ERRinvalidjobpriority)
-#define WERR_INVALID_PRINTER_NAME W_ERROR(ERRinvalidprintername)
-#define WERR_PRINTER_ALREADY_EXISTS W_ERROR(ERRprinteralreadyexists)
-#define WERR_INVALID_PRINTER_COMMAND W_ERROR(ERRinvalidprintercommand)
-#define WERR_INVALID_DATATYPE W_ERROR(ERRinvaliddatatype)
-#define WERR_INVALID_ENVIRONMENT W_ERROR(ERRinvalidenvironment)
-
-#define WERR_UNKNOWN_PRINT_MONITOR W_ERROR(ERRunknownprintmonitor)
-#define WERR_PRINTER_DRIVER_IN_USE W_ERROR(ERRprinterdriverinuse)
-#define WERR_SPOOL_FILE_NOT_FOUND W_ERROR(ERRspoolfilenotfound)
-#define WERR_SPL_NO_STARTDOC W_ERROR(ERRnostartdoc)
-#define WERR_SPL_NO_ADDJOB W_ERROR(ERRnoaddjob)
-#define WERR_PRINT_PROCESSOR_ALREADY_INSTALLED W_ERROR(ERRprintprocessoralreadyinstalled)
-#define WERR_PRINT_MONITOR_ALREADY_INSTALLED W_ERROR(ERRprintmonitoralreadyinstalled)
-#define WERR_INVALID_PRINT_MONITOR W_ERROR(ERRinvalidprintmonitor)
-#define WERR_PRINT_MONITOR_IN_USE W_ERROR(ERRprintmonitorinuse)
-#define WERR_PRINTER_HAS_JOBS_QUEUED W_ERROR(ERRprinterhasjobsqueued)
-
-#define WERR_CLASS_NOT_REGISTERED W_ERROR(0x40154)
-#define WERR_NO_SHUTDOWN_IN_PROGRESS W_ERROR(0x45c)
-#define WERR_SHUTDOWN_ALREADY_IN_PROGRESS W_ERROR(0x45b)
-
-
 #ifndef NERR_BASE
 #define NERR_BASE (2100)
 #endif
 
-#define WERR_NET_NAME_NOT_FOUND                W_ERROR(NERR_BASE+210)
-#define WERR_DEVICE_NOT_SHARED         W_ERROR(NERR_BASE+211)
-
-/* DFS errors */
-#define WERR_DFS_NO_SUCH_VOL            W_ERROR(NERR_BASE+562)
-#define WERR_DFS_NO_SUCH_SHARE          W_ERROR(NERR_BASE+565)
-#define WERR_DFS_NO_SUCH_SERVER         W_ERROR(NERR_BASE+573)
-#define WERR_DFS_INTERNAL_ERROR         W_ERROR(NERR_BASE+590)
-#define WERR_DFS_CANT_CREATE_JUNCT      W_ERROR(NERR_BASE+569)
-
-/* DS errors */
-#define WERR_DS_SERVICE_BUSY W_ERROR(0x0000200e)
-#define WERR_DS_SERVICE_UNAVAILABLE W_ERROR(0x0000200f)
-#define WERR_DS_NO_SUCH_OBJECT W_ERROR(0x00002030)
-#define WERR_DS_OBJ_NOT_FOUND W_ERROR(0x0000208d)
-#define WERR_DS_SCHEMA_NOT_LOADED W_ERROR(0x20de)
-#define WERR_DS_SCHEMA_ALLOC_FAILED W_ERROR(0x20df)
-#define WERR_DS_ATT_SCHEMA_REQ_SYNTAX W_ERROR(0x000020e0)
-#define WERR_DS_DRA_SCHEMA_MISMATCH W_ERROR(0x000020e2)
-#define WERR_DS_DRA_INVALID_PARAMETER W_ERROR(0x000020f5)
-#define WERR_DS_DRA_BAD_DN W_ERROR(0x000020f7)
-#define WERR_DS_DRA_BAD_NC W_ERROR(0x000020f8)
-#define WERR_DS_DRA_INTERNAL_ERROR W_ERROR(0x000020fa)
-#define WERR_DS_DRA_OUT_OF_MEM W_ERROR(0x000020fe)
-#define WERR_DS_SINGLE_VALUE_CONSTRAINT W_ERROR(0x00002081)
-#define WERR_DS_DRA_DB_ERROR W_ERROR(0x00002103)
-#define WERR_DS_DRA_NO_REPLICA W_ERROR(0x00002104)
-#define WERR_DS_DRA_ACCESS_DENIED W_ERROR(0x00002105)
-#define WERR_DS_DNS_LOOKUP_FAILURE W_ERROR(0x0000214c)
-#define WERR_DS_WRONG_LINKED_ATTRIBUTE_SYNTAX W_ERROR(0x00002150)
-#define WERR_DS_NO_MSDS_INTID W_ERROR(0x00002194)
-#define WERR_DS_DUP_MSDS_INTID W_ERROR(0x00002195)
-
-/* SEC errors */
-#define WERR_SEC_E_ENCRYPT_FAILURE     W_ERROR(0x80090329)
-#define WERR_SEC_E_DECRYPT_FAILURE     W_ERROR(0x80090330)
-#define WERR_SEC_E_ALGORITHM_MISMATCH  W_ERROR(0x80090331)
-
-#define WERR_FOOBAR WERR_GENERAL_FAILURE
-
 #endif /* _DOSERR_H */
index 8a641c8eb99ad83a90ee12c39dce4063d5660b6d..dd2de3da756bdbfa9cfa8a56df0e916e1d3e8cfd 100644 (file)
 #ifndef _SAMBA_ERROR_H_
 #define _SAMBA_ERROR_H_
 
-#include "libcli/util/nterr.h"
+#include "libcli/util/werror.h"
 #include "libcli/util/doserr.h"
-#include "libcli/util/proto.h"
+#include "libcli/util/ntstatus.h"
+
+/** NT error on DOS connection! (NT_STATUS_OK) */
+bool ntstatus_dos_equal(NTSTATUS status1, NTSTATUS status2);
+
+/*****************************************************************************
+convert a NT status code to a dos class/code
+ *****************************************************************************/
+void ntstatus_to_dos(NTSTATUS ntstatus, uint8_t *eclass, uint32_t *ecode);
+
+/*****************************************************************************
+convert a WERROR to a NT status32 code
+ *****************************************************************************/
+NTSTATUS werror_to_ntstatus(WERROR error);
+
+/*****************************************************************************
+convert a NTSTATUS to a WERROR
+ *****************************************************************************/
+WERROR ntstatus_to_werror(NTSTATUS error);
+
+/*********************************************************************
+ Map an NT error code from a Unix error code.
+*********************************************************************/
+NTSTATUS map_nt_error_from_unix(int unix_error);
+
+
 
 #endif /* _SAMBA_ERROR_H */
index 711f02a626429782f4186c329ea40cb481b2de07..8d088e1e4bfe8b7a6be2e820adf13369726a5c77 100644 (file)
@@ -20,6 +20,7 @@
  */
 
 #include "includes.h"
+#include "param/param.h"
 
 /* This map was extracted by the ERRMAPEXTRACT smbtorture command. 
    The setup was a Samba HEAD (2002-01-03) PDC and an Win2k member 
@@ -1161,13 +1162,13 @@ static const struct {
 /*
   check if a DOS encoded NTSTATUS code maps to the given NTSTATUS code
 */
-BOOL ntstatus_dos_equal(NTSTATUS status1, NTSTATUS status2)
+bool ntstatus_dos_equal(NTSTATUS status1, NTSTATUS status2)
 {
        /* when we negotiate nt status support, we don't want to consider
           the mapping of dos codes, as we want to catch the cases where
           a forced dos code is needed
        */
-       if (lp_nt_status_support()) {
+       if (lp_nt_status_support(global_loadparm)) {
                return NT_STATUS_V(status1) == NT_STATUS_V(status2);
        }
 
diff --git a/source/libcli/util/nt_status.h b/source/libcli/util/nt_status.h
deleted file mode 100644 (file)
index 8d81aab..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-/* 
-   Unix SMB/CIFS implementation.
-   SMB parameters and setup, plus a whole lot more.
-   
-   Copyright (C) Andrew Tridgell              2001
-   
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-   
-   This program 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 General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef _NT_STATUS_H
-#define _NT_STATUS_H
-
-#include <stdint.h>
-
-/* the following rather strange looking definitions of NTSTATUS and WERROR
-   and there in order to catch common coding errors where different error types
-   are mixed up. This is especially important as we slowly convert Samba
-   from using BOOL for internal functions 
-*/
-
-#if defined(HAVE_IMMEDIATE_STRUCTURES)
-typedef struct {uint32_t v;} NTSTATUS;
-#define NT_STATUS(x) ((NTSTATUS) { x })
-#define NT_STATUS_V(x) ((x).v)
-#else
-typedef uint32_t NTSTATUS;
-#define NT_STATUS(x) (x)
-#define NT_STATUS_V(x) (x)
-#endif
-
-#if defined(HAVE_IMMEDIATE_STRUCTURES)
-typedef struct {uint32_t v;} WERROR;
-#define W_ERROR(x) ((WERROR) { x })
-#define W_ERROR_V(x) ((x).v)
-#else
-typedef uint32_t WERROR;
-#define W_ERROR(x) (x)
-#define W_ERROR_V(x) (x)
-#endif
-
-#define NT_STATUS_IS_OK(x) (NT_STATUS_V(x) == 0)
-#define NT_STATUS_IS_ERR(x) ((NT_STATUS_V(x) & 0xc0000000) == 0xc0000000)
-/* checking for DOS error mapping here is ugly, but unfortunately the
-   alternative is a very intrusive rewrite of the torture code */
-#define NT_STATUS_EQUAL(x,y) (NT_STATUS_IS_DOS(x)||NT_STATUS_IS_DOS(y)?ntstatus_dos_equal(x,y):NT_STATUS_V(x) == NT_STATUS_V(y))
-
-#define NT_STATUS_HAVE_NO_MEMORY(x) do { \
-       if (!(x)) {\
-               return NT_STATUS_NO_MEMORY;\
-       }\
-} while (0)
-
-#define NT_STATUS_IS_OK_RETURN(x) do { \
-       if (NT_STATUS_IS_OK(x)) {\
-               return x;\
-       }\
-} while (0)
-
-#define NT_STATUS_NOT_OK_RETURN(x) do { \
-       if (!NT_STATUS_IS_OK(x)) {\
-               return x;\
-       }\
-} while (0)
-
-#define NT_STATUS_IS_ERR_RETURN(x) do { \
-       if (NT_STATUS_IS_ERR(x)) {\
-               return x;\
-       }\
-} while (0)
-
-#define NT_STATUS_NOT_ERR_RETURN(x) do { \
-       if (!NT_STATUS_IS_ERR(x)) {\
-               return x;\
-       }\
-} while (0)
-
-#define W_ERROR_IS_OK(x) (W_ERROR_V(x) == 0)
-#define W_ERROR_EQUAL(x,y) (W_ERROR_V(x) == W_ERROR_V(y))
-
-#define W_ERROR_HAVE_NO_MEMORY(x) do { \
-       if (!(x)) {\
-               return WERR_NOMEM;\
-       }\
-} while (0)
-
-#define W_ERROR_IS_OK_RETURN(x) do { \
-       if (W_ERROR_IS_OK(x)) {\
-               return x;\
-       }\
-} while (0)
-
-#define W_ERROR_NOT_OK_RETURN(x) do { \
-       if (!W_ERROR_IS_OK(x)) {\
-               return x;\
-       }\
-} while (0)
-
-/* this defines special NTSTATUS codes to represent DOS errors.  I
-   have chosen this macro to produce status codes in the invalid
-   NTSTATUS range */
-#define NT_STATUS_DOS(class, code) NT_STATUS(0xF1000000 | ((class)<<16) | code)
-#define NT_STATUS_IS_DOS(status) ((NT_STATUS_V(status) & 0xFF000000) == 0xF1000000)
-#define NT_STATUS_DOS_CLASS(status) ((NT_STATUS_V(status) >> 16) & 0xFF)
-#define NT_STATUS_DOS_CODE(status) (NT_STATUS_V(status) & 0xFFFF)
-
-/* define ldap error codes as NTSTATUS codes */
-#define NT_STATUS_LDAP(code) NT_STATUS(0xF2000000 | code)
-#define NT_STATUS_IS_LDAP(status) ((NT_STATUS_V(status) & 0xFF000000) == 0xF2000000)
-#define NT_STATUS_LDAP_CODE(status) (NT_STATUS_V(status) & ~0xFF000000)
-
-#endif
index 3aea0b51bced33416530a681c46a6fbe92facb3b..b1f345016d012fd8456cbf1cddb415f306cb60e7 100644 (file)
@@ -20,7 +20,6 @@
 /* NT error codes.  please read nterr.h */
 
 #include "includes.h"
-#include "pstring.h"
 #include "libcli/ldap/ldap.h"
 
 typedef struct
@@ -862,7 +861,7 @@ const char *get_friendly_nt_error_msg(NTSTATUS nt_code)
  *****************************************************************************/
 const char *get_nt_error_c_code(NTSTATUS nt_code)
 {
-        static pstring out;
+        static char out[40];
         int idx = 0;
 
        while (nt_errs[idx].nt_errstr != NULL) {
diff --git a/source/libcli/util/nterr.h b/source/libcli/util/nterr.h
deleted file mode 100644 (file)
index 1ee867a..0000000
+++ /dev/null
@@ -1,588 +0,0 @@
-/* 
-   Unix SMB/CIFS implementation.
-   NT error code constants
-   Copyright (C) Andrew Tridgell              1992-2000
-   Copyright (C) John H Terpstra              1996-2000
-   Copyright (C) Luke Kenneth Casson Leighton 1996-2000
-   Copyright (C) Paul Ashton                  1998-2000
-   
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-   
-   This program 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 General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#ifndef _NTERR_H
-#define _NTERR_H
-
-/* Win32 Status codes. */
-
-#define STATUS_BUFFER_OVERFLOW            NT_STATUS(0x80000005)
-#define STATUS_NO_MORE_FILES              NT_STATUS(0x80000006)
-#define STATUS_NO_MORE_EAS                NT_STATUS(0x80000012)        
-#define STATUS_INVALID_EA_NAME            NT_STATUS(0x80000013)
-#define STATUS_EA_LIST_INCONSISTENT       NT_STATUS(0x80000014)
-#define STATUS_INVALID_EA_FLAG            NT_STATUS(0x80000015)
-#define NT_STATUS_NO_MORE_ENTRIES         NT_STATUS(0x8000001a)
-
-#define STATUS_PENDING                    NT_STATUS(0x0103)
-#define STATUS_MORE_ENTRIES               NT_STATUS(0x0105)
-#define STATUS_SOME_UNMAPPED              NT_STATUS(0x0107)
-#define STATUS_NOTIFY_CLEANUP             NT_STATUS(0x010b)
-#define STATUS_NOTIFY_ENUM_DIR            NT_STATUS(0x010c)
-#define ERROR_INVALID_PARAMETER                  NT_STATUS(0x0057)
-#define ERROR_INSUFFICIENT_BUFFER        NT_STATUS(0x007a)
-#define ERROR_INVALID_DATATYPE           NT_STATUS(0x070c)
-
-/* Win32 Error codes extracted using a loop in smbclient then printing a
-   netmon sniff to a file. */
-
-/*
-                       --------------
-                      /              \
-                     /      REST      \
-                    /        IN        \
-                   /       PEACE        \
-                  /                      \
-                  | NT_STATUS_NOPROBLEMO |
-                  |                      |
-                  |                      |
-                  |      4 September     |
-                  |                      |
-                  |         2001         |
-                 *|     *  *  *          | *
-        _________)/\\_//(\/(/\)/\//\/\///|_)_______
-*/
-
-#define NT_STATUS_OK NT_STATUS(0x0000)
-#define NT_STATUS_UNSUCCESSFUL NT_STATUS(0xC0000000 | 0x0001)
-#define NT_STATUS_NOT_IMPLEMENTED NT_STATUS(0xC0000000 | 0x0002)
-#define NT_STATUS_INVALID_INFO_CLASS NT_STATUS(0xC0000000 | 0x0003)
-#define NT_STATUS_INFO_LENGTH_MISMATCH NT_STATUS(0xC0000000 | 0x0004)
-#define NT_STATUS_ACCESS_VIOLATION NT_STATUS(0xC0000000 | 0x0005)
-#define NT_STATUS_IN_PAGE_ERROR NT_STATUS(0xC0000000 | 0x0006)
-#define NT_STATUS_PAGEFILE_QUOTA NT_STATUS(0xC0000000 | 0x0007)
-#define NT_STATUS_INVALID_HANDLE NT_STATUS(0xC0000000 | 0x0008)
-#define NT_STATUS_BAD_INITIAL_STACK NT_STATUS(0xC0000000 | 0x0009)
-#define NT_STATUS_BAD_INITIAL_PC NT_STATUS(0xC0000000 | 0x000a)
-#define NT_STATUS_INVALID_CID NT_STATUS(0xC0000000 | 0x000b)
-#define NT_STATUS_TIMER_NOT_CANCELED NT_STATUS(0xC0000000 | 0x000c)
-#define NT_STATUS_INVALID_PARAMETER NT_STATUS(0xC0000000 | 0x000d)
-#define NT_STATUS_NO_SUCH_DEVICE NT_STATUS(0xC0000000 | 0x000e)
-#define NT_STATUS_NO_SUCH_FILE NT_STATUS(0xC0000000 | 0x000f)
-#define NT_STATUS_INVALID_DEVICE_REQUEST NT_STATUS(0xC0000000 | 0x0010)
-#define NT_STATUS_END_OF_FILE NT_STATUS(0xC0000000 | 0x0011)
-#define NT_STATUS_WRONG_VOLUME NT_STATUS(0xC0000000 | 0x0012)
-#define NT_STATUS_NO_MEDIA_IN_DEVICE NT_STATUS(0xC0000000 | 0x0013)
-#define NT_STATUS_UNRECOGNIZED_MEDIA NT_STATUS(0xC0000000 | 0x0014)
-#define NT_STATUS_NONEXISTENT_SECTOR NT_STATUS(0xC0000000 | 0x0015)
-#define NT_STATUS_MORE_PROCESSING_REQUIRED NT_STATUS(0xC0000000 | 0x0016)
-#if 0
-/* this demonstrates a little trick when tracking down error codes */
-#define NT_STATUS_NO_MEMORY (printf("no memory at %s\n", __location__), NT_STATUS(0xC0000000 | 0x0017))
-#else
-#define NT_STATUS_NO_MEMORY NT_STATUS(0xC0000000 | 0x0017)
-#endif
-#define NT_STATUS_CONFLICTING_ADDRESSES NT_STATUS(0xC0000000 | 0x0018)
-#define NT_STATUS_NOT_MAPPED_VIEW NT_STATUS(0xC0000000 | 0x0019)
-#define NT_STATUS_UNABLE_TO_FREE_VM NT_STATUS(0xC0000000 | 0x001a)
-#define NT_STATUS_UNABLE_TO_DELETE_SECTION NT_STATUS(0xC0000000 | 0x001b)
-#define NT_STATUS_INVALID_SYSTEM_SERVICE NT_STATUS(0xC0000000 | 0x001c)
-#define NT_STATUS_ILLEGAL_INSTRUCTION NT_STATUS(0xC0000000 | 0x001d)
-#define NT_STATUS_INVALID_LOCK_SEQUENCE NT_STATUS(0xC0000000 | 0x001e)
-#define NT_STATUS_INVALID_VIEW_SIZE NT_STATUS(0xC0000000 | 0x001f)
-#define NT_STATUS_INVALID_FILE_FOR_SECTION NT_STATUS(0xC0000000 | 0x0020)
-#define NT_STATUS_ALREADY_COMMITTED NT_STATUS(0xC0000000 | 0x0021)
-#if 0
-/* this demonstrates a little trick when tracking down error codes */
-#define NT_STATUS_ACCESS_DENIED (printf("access denied at %s\n", __location__), NT_STATUS(0xC0000000 | 0x0022))
-#else
-#define NT_STATUS_ACCESS_DENIED NT_STATUS(0xC0000000 | 0x0022)
-#endif
-#define NT_STATUS_BUFFER_TOO_SMALL NT_STATUS(0xC0000000 | 0x0023)
-#define NT_STATUS_OBJECT_TYPE_MISMATCH NT_STATUS(0xC0000000 | 0x0024)
-#define NT_STATUS_NONCONTINUABLE_EXCEPTION NT_STATUS(0xC0000000 | 0x0025)
-#define NT_STATUS_INVALID_DISPOSITION NT_STATUS(0xC0000000 | 0x0026)
-#define NT_STATUS_UNWIND NT_STATUS(0xC0000000 | 0x0027)
-#define NT_STATUS_BAD_STACK NT_STATUS(0xC0000000 | 0x0028)
-#define NT_STATUS_INVALID_UNWIND_TARGET NT_STATUS(0xC0000000 | 0x0029)
-#define NT_STATUS_NOT_LOCKED NT_STATUS(0xC0000000 | 0x002a)
-#define NT_STATUS_PARITY_ERROR NT_STATUS(0xC0000000 | 0x002b)
-#define NT_STATUS_UNABLE_TO_DECOMMIT_VM NT_STATUS(0xC0000000 | 0x002c)
-#define NT_STATUS_NOT_COMMITTED NT_STATUS(0xC0000000 | 0x002d)
-#define NT_STATUS_INVALID_PORT_ATTRIBUTES NT_STATUS(0xC0000000 | 0x002e)
-#define NT_STATUS_PORT_MESSAGE_TOO_LONG NT_STATUS(0xC0000000 | 0x002f)
-#define NT_STATUS_INVALID_PARAMETER_MIX NT_STATUS(0xC0000000 | 0x0030)
-#define NT_STATUS_INVALID_QUOTA_LOWER NT_STATUS(0xC0000000 | 0x0031)
-#define NT_STATUS_DISK_CORRUPT_ERROR NT_STATUS(0xC0000000 | 0x0032)
-#define NT_STATUS_OBJECT_NAME_INVALID NT_STATUS(0xC0000000 | 0x0033)
-#define NT_STATUS_OBJECT_NAME_NOT_FOUND NT_STATUS(0xC0000000 | 0x0034)
-#define NT_STATUS_OBJECT_NAME_COLLISION NT_STATUS(0xC0000000 | 0x0035)
-#define NT_STATUS_HANDLE_NOT_WAITABLE NT_STATUS(0xC0000000 | 0x0036)
-#define NT_STATUS_PORT_DISCONNECTED NT_STATUS(0xC0000000 | 0x0037)
-#define NT_STATUS_DEVICE_ALREADY_ATTACHED NT_STATUS(0xC0000000 | 0x0038)
-#define NT_STATUS_OBJECT_PATH_INVALID NT_STATUS(0xC0000000 | 0x0039)
-#define NT_STATUS_OBJECT_PATH_NOT_FOUND NT_STATUS(0xC0000000 | 0x003a)
-#define NT_STATUS_OBJECT_PATH_SYNTAX_BAD NT_STATUS(0xC0000000 | 0x003b)
-#define NT_STATUS_DATA_OVERRUN NT_STATUS(0xC0000000 | 0x003c)
-#define NT_STATUS_DATA_LATE_ERROR NT_STATUS(0xC0000000 | 0x003d)
-#define NT_STATUS_DATA_ERROR NT_STATUS(0xC0000000 | 0x003e)
-#define NT_STATUS_CRC_ERROR NT_STATUS(0xC0000000 | 0x003f)
-#define NT_STATUS_SECTION_TOO_BIG NT_STATUS(0xC0000000 | 0x0040)
-#define NT_STATUS_PORT_CONNECTION_REFUSED NT_STATUS(0xC0000000 | 0x0041)
-#define NT_STATUS_INVALID_PORT_HANDLE NT_STATUS(0xC0000000 | 0x0042)
-#define NT_STATUS_SHARING_VIOLATION NT_STATUS(0xC0000000 | 0x0043)
-#define NT_STATUS_QUOTA_EXCEEDED NT_STATUS(0xC0000000 | 0x0044)
-#define NT_STATUS_INVALID_PAGE_PROTECTION NT_STATUS(0xC0000000 | 0x0045)
-#define NT_STATUS_MUTANT_NOT_OWNED NT_STATUS(0xC0000000 | 0x0046)
-#define NT_STATUS_SEMAPHORE_LIMIT_EXCEEDED NT_STATUS(0xC0000000 | 0x0047)
-#define NT_STATUS_PORT_ALREADY_SET NT_STATUS(0xC0000000 | 0x0048)
-#define NT_STATUS_SECTION_NOT_IMAGE NT_STATUS(0xC0000000 | 0x0049)
-#define NT_STATUS_SUSPEND_COUNT_EXCEEDED NT_STATUS(0xC0000000 | 0x004a)
-#define NT_STATUS_THREAD_IS_TERMINATING NT_STATUS(0xC0000000 | 0x004b)
-#define NT_STATUS_BAD_WORKING_SET_LIMIT NT_STATUS(0xC0000000 | 0x004c)
-#define NT_STATUS_INCOMPATIBLE_FILE_MAP NT_STATUS(0xC0000000 | 0x004d)
-#define NT_STATUS_SECTION_PROTECTION NT_STATUS(0xC0000000 | 0x004e)
-#define NT_STATUS_EAS_NOT_SUPPORTED NT_STATUS(0xC0000000 | 0x004f)
-#define NT_STATUS_EA_TOO_LARGE NT_STATUS(0xC0000000 | 0x0050)
-#define NT_STATUS_NONEXISTENT_EA_ENTRY NT_STATUS(0xC0000000 | 0x0051)
-#define NT_STATUS_NO_EAS_ON_FILE NT_STATUS(0xC0000000 | 0x0052)
-#define NT_STATUS_EA_CORRUPT_ERROR NT_STATUS(0xC0000000 | 0x0053)
-#define NT_STATUS_FILE_LOCK_CONFLICT NT_STATUS(0xC0000000 | 0x0054)
-#define NT_STATUS_LOCK_NOT_GRANTED NT_STATUS(0xC0000000 | 0x0055)
-#define NT_STATUS_DELETE_PENDING NT_STATUS(0xC0000000 | 0x0056)
-#define NT_STATUS_CTL_FILE_NOT_SUPPORTED NT_STATUS(0xC0000000 | 0x0057)
-#define NT_STATUS_UNKNOWN_REVISION NT_STATUS(0xC0000000 | 0x0058)
-#define NT_STATUS_REVISION_MISMATCH NT_STATUS(0xC0000000 | 0x0059)
-#define NT_STATUS_INVALID_OWNER NT_STATUS(0xC0000000 | 0x005a)
-#define NT_STATUS_INVALID_PRIMARY_GROUP NT_STATUS(0xC0000000 | 0x005b)
-#define NT_STATUS_NO_IMPERSONATION_TOKEN NT_STATUS(0xC0000000 | 0x005c)
-#define NT_STATUS_CANT_DISABLE_MANDATORY NT_STATUS(0xC0000000 | 0x005d)
-#define NT_STATUS_NO_LOGON_SERVERS NT_STATUS(0xC0000000 | 0x005e)
-#define NT_STATUS_NO_SUCH_LOGON_SESSION NT_STATUS(0xC0000000 | 0x005f)
-#define NT_STATUS_NO_SUCH_PRIVILEGE NT_STATUS(0xC0000000 | 0x0060)
-#define NT_STATUS_PRIVILEGE_NOT_HELD NT_STATUS(0xC0000000 | 0x0061)
-#define NT_STATUS_INVALID_ACCOUNT_NAME NT_STATUS(0xC0000000 | 0x0062)
-#define NT_STATUS_USER_EXISTS NT_STATUS(0xC0000000 | 0x0063)
-#define NT_STATUS_NO_SUCH_USER NT_STATUS(0xC0000000 | 0x0064)
-#define NT_STATUS_GROUP_EXISTS NT_STATUS(0xC0000000 | 0x0065)
-#define NT_STATUS_NO_SUCH_GROUP NT_STATUS(0xC0000000 | 0x0066)
-#define NT_STATUS_MEMBER_IN_GROUP NT_STATUS(0xC0000000 | 0x0067)
-#define NT_STATUS_MEMBER_NOT_IN_GROUP NT_STATUS(0xC0000000 | 0x0068)
-#define NT_STATUS_LAST_ADMIN NT_STATUS(0xC0000000 | 0x0069)
-#define NT_STATUS_WRONG_PASSWORD NT_STATUS(0xC0000000 | 0x006a)
-#define NT_STATUS_ILL_FORMED_PASSWORD NT_STATUS(0xC0000000 | 0x006b)
-#define NT_STATUS_PASSWORD_RESTRICTION NT_STATUS(0xC0000000 | 0x006c)
-#define NT_STATUS_LOGON_FAILURE NT_STATUS(0xC0000000 | 0x006d)
-#define NT_STATUS_ACCOUNT_RESTRICTION NT_STATUS(0xC0000000 | 0x006e)
-#define NT_STATUS_INVALID_LOGON_HOURS NT_STATUS(0xC0000000 | 0x006f)
-#define NT_STATUS_INVALID_WORKSTATION NT_STATUS(0xC0000000 | 0x0070)
-#define NT_STATUS_PASSWORD_EXPIRED NT_STATUS(0xC0000000 | 0x0071)
-#define NT_STATUS_ACCOUNT_DISABLED NT_STATUS(0xC0000000 | 0x0072)
-#define NT_STATUS_NONE_MAPPED NT_STATUS(0xC0000000 | 0x0073)
-#define NT_STATUS_TOO_MANY_LUIDS_REQUESTED NT_STATUS(0xC0000000 | 0x0074)
-#define NT_STATUS_LUIDS_EXHAUSTED NT_STATUS(0xC0000000 | 0x0075)
-#define NT_STATUS_INVALID_SUB_AUTHORITY NT_STATUS(0xC0000000 | 0x0076)
-#define NT_STATUS_INVALID_ACL NT_STATUS(0xC0000000 | 0x0077)
-#define NT_STATUS_INVALID_SID NT_STATUS(0xC0000000 | 0x0078)
-#define NT_STATUS_INVALID_SECURITY_DESCR NT_STATUS(0xC0000000 | 0x0079)
-#define NT_STATUS_PROCEDURE_NOT_FOUND NT_STATUS(0xC0000000 | 0x007a)
-#define NT_STATUS_INVALID_IMAGE_FORMAT NT_STATUS(0xC0000000 | 0x007b)
-#define NT_STATUS_NO_TOKEN NT_STATUS(0xC0000000 | 0x007c)
-#define NT_STATUS_BAD_INHERITANCE_ACL NT_STATUS(0xC0000000 | 0x007d)
-#define NT_STATUS_RANGE_NOT_LOCKED NT_STATUS(0xC0000000 | 0x007e)
-#define NT_STATUS_DISK_FULL NT_STATUS(0xC0000000 | 0x007f)
-#define NT_STATUS_SERVER_DISABLED NT_STATUS(0xC0000000 | 0x0080)
-#define NT_STATUS_SERVER_NOT_DISABLED NT_STATUS(0xC0000000 | 0x0081)
-#define NT_STATUS_TOO_MANY_GUIDS_REQUESTED NT_STATUS(0xC0000000 | 0x0082)
-#define NT_STATUS_GUIDS_EXHAUSTED NT_STATUS(0xC0000000 | 0x0083)
-#define NT_STATUS_INVALID_ID_AUTHORITY NT_STATUS(0xC0000000 | 0x0084)
-#define NT_STATUS_AGENTS_EXHAUSTED NT_STATUS(0xC0000000 | 0x0085)
-#define NT_STATUS_INVALID_VOLUME_LABEL NT_STATUS(0xC0000000 | 0x0086)
-#define NT_STATUS_SECTION_NOT_EXTENDED NT_STATUS(0xC0000000 | 0x0087)
-#define NT_STATUS_NOT_MAPPED_DATA NT_STATUS(0xC0000000 | 0x0088)
-#define NT_STATUS_RESOURCE_DATA_NOT_FOUND NT_STATUS(0xC0000000 | 0x0089)
-#define NT_STATUS_RESOURCE_TYPE_NOT_FOUND NT_STATUS(0xC0000000 | 0x008a)
-#define NT_STATUS_RESOURCE_NAME_NOT_FOUND NT_STATUS(0xC0000000 | 0x008b)
-#define NT_STATUS_ARRAY_BOUNDS_EXCEEDED NT_STATUS(0xC0000000 | 0x008c)
-#define NT_STATUS_FLOAT_DENORMAL_OPERAND NT_STATUS(0xC0000000 | 0x008d)
-#define NT_STATUS_FLOAT_DIVIDE_BY_ZERO NT_STATUS(0xC0000000 | 0x008e)
-#define NT_STATUS_FLOAT_INEXACT_RESULT NT_STATUS(0xC0000000 | 0x008f)
-#define NT_STATUS_FLOAT_INVALID_OPERATION NT_STATUS(0xC0000000 | 0x0090)
-#define NT_STATUS_FLOAT_OVERFLOW NT_STATUS(0xC0000000 | 0x0091)
-#define NT_STATUS_FLOAT_STACK_CHECK NT_STATUS(0xC0000000 | 0x0092)
-#define NT_STATUS_FLOAT_UNDERFLOW NT_STATUS(0xC0000000 | 0x0093)
-#define NT_STATUS_INTEGER_DIVIDE_BY_ZERO NT_STATUS(0xC0000000 | 0x0094)
-#define NT_STATUS_INTEGER_OVERFLOW NT_STATUS(0xC0000000 | 0x0095)
-#define NT_STATUS_PRIVILEGED_INSTRUCTION NT_STATUS(0xC0000000 | 0x0096)
-#define NT_STATUS_TOO_MANY_PAGING_FILES NT_STATUS(0xC0000000 | 0x0097)
-#define NT_STATUS_FILE_INVALID NT_STATUS(0xC0000000 | 0x0098)
-#define NT_STATUS_ALLOTTED_SPACE_EXCEEDED NT_STATUS(0xC0000000 | 0x0099)
-#define NT_STATUS_INSUFFICIENT_RESOURCES NT_STATUS(0xC0000000 | 0x009a)
-#define NT_STATUS_DFS_EXIT_PATH_FOUND NT_STATUS(0xC0000000 | 0x009b)
-#define NT_STATUS_DEVICE_DATA_ERROR NT_STATUS(0xC0000000 | 0x009c)
-#define NT_STATUS_DEVICE_NOT_CONNECTED NT_STATUS(0xC0000000 | 0x009d)
-#define NT_STATUS_DEVICE_POWER_FAILURE NT_STATUS(0xC0000000 | 0x009e)
-#define NT_STATUS_FREE_VM_NOT_AT_BASE NT_STATUS(0xC0000000 | 0x009f)
-#define NT_STATUS_MEMORY_NOT_ALLOCATED NT_STATUS(0xC0000000 | 0x00a0)
-#define NT_STATUS_WORKING_SET_QUOTA NT_STATUS(0xC0000000 | 0x00a1)
-#define NT_STATUS_MEDIA_WRITE_PROTECTED NT_STATUS(0xC0000000 | 0x00a2)
-#define NT_STATUS_DEVICE_NOT_READY NT_STATUS(0xC0000000 | 0x00a3)
-#define NT_STATUS_INVALID_GROUP_ATTRIBUTES NT_STATUS(0xC0000000 | 0x00a4)
-#define NT_STATUS_BAD_IMPERSONATION_LEVEL NT_STATUS(0xC0000000 | 0x00a5)
-#define NT_STATUS_CANT_OPEN_ANONYMOUS NT_STATUS(0xC0000000 | 0x00a6)
-#define NT_STATUS_BAD_VALIDATION_CLASS NT_STATUS(0xC0000000 | 0x00a7)
-#define NT_STATUS_BAD_TOKEN_TYPE NT_STATUS(0xC0000000 | 0x00a8)
-#define NT_STATUS_BAD_MASTER_BOOT_RECORD NT_STATUS(0xC0000000 | 0x00a9)
-#define NT_STATUS_INSTRUCTION_MISALIGNMENT NT_STATUS(0xC0000000 | 0x00aa)
-#define NT_STATUS_INSTANCE_NOT_AVAILABLE NT_STATUS(0xC0000000 | 0x00ab)
-#define NT_STATUS_PIPE_NOT_AVAILABLE NT_STATUS(0xC0000000 | 0x00ac)
-#define NT_STATUS_INVALID_PIPE_STATE NT_STATUS(0xC0000000 | 0x00ad)
-#define NT_STATUS_PIPE_BUSY NT_STATUS(0xC0000000 | 0x00ae)
-#define NT_STATUS_ILLEGAL_FUNCTION NT_STATUS(0xC0000000 | 0x00af)
-#define NT_STATUS_PIPE_DISCONNECTED NT_STATUS(0xC0000000 | 0x00b0)
-#define NT_STATUS_PIPE_CLOSING NT_STATUS(0xC0000000 | 0x00b1)
-#define NT_STATUS_PIPE_CONNECTED NT_STATUS(0xC0000000 | 0x00b2)
-#define NT_STATUS_PIPE_LISTENING NT_STATUS(0xC0000000 | 0x00b3)
-#define NT_STATUS_INVALID_READ_MODE NT_STATUS(0xC0000000 | 0x00b4)
-#define NT_STATUS_IO_TIMEOUT NT_STATUS(0xC0000000 | 0x00b5)
-#define NT_STATUS_FILE_FORCED_CLOSED NT_STATUS(0xC0000000 | 0x00b6)
-#define NT_STATUS_PROFILING_NOT_STARTED NT_STATUS(0xC0000000 | 0x00b7)
-#define NT_STATUS_PROFILING_NOT_STOPPED NT_STATUS(0xC0000000 | 0x00b8)
-#define NT_STATUS_COULD_NOT_INTERPRET NT_STATUS(0xC0000000 | 0x00b9)
-#define NT_STATUS_FILE_IS_A_DIRECTORY NT_STATUS(0xC0000000 | 0x00ba)
-#define NT_STATUS_NOT_SUPPORTED NT_STATUS(0xC0000000 | 0x00bb)
-#define NT_STATUS_REMOTE_NOT_LISTENING NT_STATUS(0xC0000000 | 0x00bc)
-#define NT_STATUS_DUPLICATE_NAME NT_STATUS(0xC0000000 | 0x00bd)
-#define NT_STATUS_BAD_NETWORK_PATH NT_STATUS(0xC0000000 | 0x00be)
-#define NT_STATUS_NETWORK_BUSY NT_STATUS(0xC0000000 | 0x00bf)
-#define NT_STATUS_DEVICE_DOES_NOT_EXIST NT_STATUS(0xC0000000 | 0x00c0)
-#define NT_STATUS_TOO_MANY_COMMANDS NT_STATUS(0xC0000000 | 0x00c1)
-#define NT_STATUS_ADAPTER_HARDWARE_ERROR NT_STATUS(0xC0000000 | 0x00c2)
-#define NT_STATUS_INVALID_NETWORK_RESPONSE NT_STATUS(0xC0000000 | 0x00c3)
-#define NT_STATUS_UNEXPECTED_NETWORK_ERROR NT_STATUS(0xC0000000 | 0x00c4)
-#define NT_STATUS_BAD_REMOTE_ADAPTER NT_STATUS(0xC0000000 | 0x00c5)
-#define NT_STATUS_PRINT_QUEUE_FULL NT_STATUS(0xC0000000 | 0x00c6)
-#define NT_STATUS_NO_SPOOL_SPACE NT_STATUS(0xC0000000 | 0x00c7)
-#define NT_STATUS_PRINT_CANCELLED NT_STATUS(0xC0000000 | 0x00c8)
-#define NT_STATUS_NETWORK_NAME_DELETED NT_STATUS(0xC0000000 | 0x00c9)
-#define NT_STATUS_NETWORK_ACCESS_DENIED NT_STATUS(0xC0000000 | 0x00ca)
-#define NT_STATUS_BAD_DEVICE_TYPE NT_STATUS(0xC0000000 | 0x00cb)
-#define NT_STATUS_BAD_NETWORK_NAME NT_STATUS(0xC0000000 | 0x00cc)
-#define NT_STATUS_TOO_MANY_NAMES NT_STATUS(0xC0000000 | 0x00cd)
-#define NT_STATUS_TOO_MANY_SESSIONS NT_STATUS(0xC0000000 | 0x00ce)
-#define NT_STATUS_SHARING_PAUSED NT_STATUS(0xC0000000 | 0x00cf)
-#define NT_STATUS_REQUEST_NOT_ACCEPTED NT_STATUS(0xC0000000 | 0x00d0)
-#define NT_STATUS_REDIRECTOR_PAUSED NT_STATUS(0xC0000000 | 0x00d1)
-#define NT_STATUS_NET_WRITE_FAULT NT_STATUS(0xC0000000 | 0x00d2)
-#define NT_STATUS_PROFILING_AT_LIMIT NT_STATUS(0xC0000000 | 0x00d3)
-#define NT_STATUS_NOT_SAME_DEVICE NT_STATUS(0xC0000000 | 0x00d4)
-#define NT_STATUS_FILE_RENAMED NT_STATUS(0xC0000000 | 0x00d5)
-#define NT_STATUS_VIRTUAL_CIRCUIT_CLOSED NT_STATUS(0xC0000000 | 0x00d6)
-#define NT_STATUS_NO_SECURITY_ON_OBJECT NT_STATUS(0xC0000000 | 0x00d7)
-#define NT_STATUS_CANT_WAIT NT_STATUS(0xC0000000 | 0x00d8)
-#define NT_STATUS_PIPE_EMPTY NT_STATUS(0xC0000000 | 0x00d9)
-#define NT_STATUS_CANT_ACCESS_DOMAIN_INFO NT_STATUS(0xC0000000 | 0x00da)
-#define NT_STATUS_CANT_TERMINATE_SELF NT_STATUS(0xC0000000 | 0x00db)
-#define NT_STATUS_INVALID_SERVER_STATE NT_STATUS(0xC0000000 | 0x00dc)
-#define NT_STATUS_INVALID_DOMAIN_STATE NT_STATUS(0xC0000000 | 0x00dd)
-#define NT_STATUS_INVALID_DOMAIN_ROLE NT_STATUS(0xC0000000 | 0x00de)
-#define NT_STATUS_NO_SUCH_DOMAIN NT_STATUS(0xC0000000 | 0x00df)
-#define NT_STATUS_DOMAIN_EXISTS NT_STATUS(0xC0000000 | 0x00e0)
-#define NT_STATUS_DOMAIN_LIMIT_EXCEEDED NT_STATUS(0xC0000000 | 0x00e1)
-#define NT_STATUS_OPLOCK_NOT_GRANTED NT_STATUS(0xC0000000 | 0x00e2)
-#define NT_STATUS_INVALID_OPLOCK_PROTOCOL NT_STATUS(0xC0000000 | 0x00e3)
-#define NT_STATUS_INTERNAL_DB_CORRUPTION NT_STATUS(0xC0000000 | 0x00e4)
-#define NT_STATUS_INTERNAL_ERROR NT_STATUS(0xC0000000 | 0x00e5)
-#define NT_STATUS_GENERIC_NOT_MAPPED NT_STATUS(0xC0000000 | 0x00e6)
-#define NT_STATUS_BAD_DESCRIPTOR_FORMAT NT_STATUS(0xC0000000 | 0x00e7)
-#define NT_STATUS_INVALID_USER_BUFFER NT_STATUS(0xC0000000 | 0x00e8)
-#define NT_STATUS_UNEXPECTED_IO_ERROR NT_STATUS(0xC0000000 | 0x00e9)
-#define NT_STATUS_UNEXPECTED_MM_CREATE_ERR NT_STATUS(0xC0000000 | 0x00ea)
-#define NT_STATUS_UNEXPECTED_MM_MAP_ERROR NT_STATUS(0xC0000000 | 0x00eb)
-#define NT_STATUS_UNEXPECTED_MM_EXTEND_ERR NT_STATUS(0xC0000000 | 0x00ec)
-#define NT_STATUS_NOT_LOGON_PROCESS NT_STATUS(0xC0000000 | 0x00ed)
-#define NT_STATUS_LOGON_SESSION_EXISTS NT_STATUS(0xC0000000 | 0x00ee)
-#define NT_STATUS_INVALID_PARAMETER_1 NT_STATUS(0xC0000000 | 0x00ef)
-#define NT_STATUS_INVALID_PARAMETER_2 NT_STATUS(0xC0000000 | 0x00f0)
-#define NT_STATUS_INVALID_PARAMETER_3 NT_STATUS(0xC0000000 | 0x00f1)
-#define NT_STATUS_INVALID_PARAMETER_4 NT_STATUS(0xC0000000 | 0x00f2)
-#define NT_STATUS_INVALID_PARAMETER_5 NT_STATUS(0xC0000000 | 0x00f3)
-#define NT_STATUS_INVALID_PARAMETER_6 NT_STATUS(0xC0000000 | 0x00f4)
-#define NT_STATUS_INVALID_PARAMETER_7 NT_STATUS(0xC0000000 | 0x00f5)
-#define NT_STATUS_INVALID_PARAMETER_8 NT_STATUS(0xC0000000 | 0x00f6)
-#define NT_STATUS_INVALID_PARAMETER_9 NT_STATUS(0xC0000000 | 0x00f7)
-#define NT_STATUS_INVALID_PARAMETER_10 NT_STATUS(0xC0000000 | 0x00f8)
-#define NT_STATUS_INVALID_PARAMETER_11 NT_STATUS(0xC0000000 | 0x00f9)
-#define NT_STATUS_INVALID_PARAMETER_12 NT_STATUS(0xC0000000 | 0x00fa)
-#define NT_STATUS_REDIRECTOR_NOT_STARTED NT_STATUS(0xC0000000 | 0x00fb)
-#define NT_STATUS_REDIRECTOR_STARTED NT_STATUS(0xC0000000 | 0x00fc)
-#define NT_STATUS_STACK_OVERFLOW NT_STATUS(0xC0000000 | 0x00fd)
-#define NT_STATUS_NO_SUCH_PACKAGE NT_STATUS(0xC0000000 | 0x00fe)
-#define NT_STATUS_BAD_FUNCTION_TABLE NT_STATUS(0xC0000000 | 0x00ff)
-#define NT_STATUS_DIRECTORY_NOT_EMPTY NT_STATUS(0xC0000000 | 0x0101)
-#define NT_STATUS_FILE_CORRUPT_ERROR NT_STATUS(0xC0000000 | 0x0102)
-#define NT_STATUS_NOT_A_DIRECTORY NT_STATUS(0xC0000000 | 0x0103)
-#define NT_STATUS_BAD_LOGON_SESSION_STATE NT_STATUS(0xC0000000 | 0x0104)
-#define NT_STATUS_LOGON_SESSION_COLLISION NT_STATUS(0xC0000000 | 0x0105)
-#define NT_STATUS_NAME_TOO_LONG NT_STATUS(0xC0000000 | 0x0106)
-#define NT_STATUS_FILES_OPEN NT_STATUS(0xC0000000 | 0x0107)
-#define NT_STATUS_CONNECTION_IN_USE NT_STATUS(0xC0000000 | 0x0108)
-#define NT_STATUS_MESSAGE_NOT_FOUND NT_STATUS(0xC0000000 | 0x0109)
-#define NT_STATUS_PROCESS_IS_TERMINATING NT_STATUS(0xC0000000 | 0x010a)
-#define NT_STATUS_INVALID_LOGON_TYPE NT_STATUS(0xC0000000 | 0x010b)
-#define NT_STATUS_NO_GUID_TRANSLATION NT_STATUS(0xC0000000 | 0x010c)
-#define NT_STATUS_CANNOT_IMPERSONATE NT_STATUS(0xC0000000 | 0x010d)
-#define NT_STATUS_IMAGE_ALREADY_LOADED NT_STATUS(0xC0000000 | 0x010e)
-#define NT_STATUS_ABIOS_NOT_PRESENT NT_STATUS(0xC0000000 | 0x010f)
-#define NT_STATUS_ABIOS_LID_NOT_EXIST NT_STATUS(0xC0000000 | 0x0110)
-#define NT_STATUS_ABIOS_LID_ALREADY_OWNED NT_STATUS(0xC0000000 | 0x0111)
-#define NT_STATUS_ABIOS_NOT_LID_OWNER NT_STATUS(0xC0000000 | 0x0112)
-#define NT_STATUS_ABIOS_INVALID_COMMAND NT_STATUS(0xC0000000 | 0x0113)
-#define NT_STATUS_ABIOS_INVALID_LID NT_STATUS(0xC0000000 | 0x0114)
-#define NT_STATUS_ABIOS_SELECTOR_NOT_AVAILABLE NT_STATUS(0xC0000000 | 0x0115)
-#define NT_STATUS_ABIOS_INVALID_SELECTOR NT_STATUS(0xC0000000 | 0x0116)
-#define NT_STATUS_NO_LDT NT_STATUS(0xC0000000 | 0x0117)
-#define NT_STATUS_INVALID_LDT_SIZE NT_STATUS(0xC0000000 | 0x0118)
-#define NT_STATUS_INVALID_LDT_OFFSET NT_STATUS(0xC0000000 | 0x0119)
-#define NT_STATUS_INVALID_LDT_DESCRIPTOR NT_STATUS(0xC0000000 | 0x011a)
-#define NT_STATUS_INVALID_IMAGE_NE_FORMAT NT_STATUS(0xC0000000 | 0x011b)
-#define NT_STATUS_RXACT_INVALID_STATE NT_STATUS(0xC0000000 | 0x011c)
-#define NT_STATUS_RXACT_COMMIT_FAILURE NT_STATUS(0xC0000000 | 0x011d)
-#define NT_STATUS_MAPPED_FILE_SIZE_ZERO NT_STATUS(0xC0000000 | 0x011e)
-#define NT_STATUS_TOO_MANY_OPENED_FILES NT_STATUS(0xC0000000 | 0x011f)
-#define NT_STATUS_CANCELLED NT_STATUS(0xC0000000 | 0x0120)
-#define NT_STATUS_CANNOT_DELETE NT_STATUS(0xC0000000 | 0x0121)
-#define NT_STATUS_INVALID_COMPUTER_NAME NT_STATUS(0xC0000000 | 0x0122)
-#define NT_STATUS_FILE_DELETED NT_STATUS(0xC0000000 | 0x0123)
-#define NT_STATUS_SPECIAL_ACCOUNT NT_STATUS(0xC0000000 | 0x0124)
-#define NT_STATUS_SPECIAL_GROUP NT_STATUS(0xC0000000 | 0x0125)
-#define NT_STATUS_SPECIAL_USER NT_STATUS(0xC0000000 | 0x0126)
-#define NT_STATUS_MEMBERS_PRIMARY_GROUP NT_STATUS(0xC0000000 | 0x0127)
-#define NT_STATUS_FILE_CLOSED NT_STATUS(0xC0000000 | 0x0128)
-#define NT_STATUS_TOO_MANY_THREADS NT_STATUS(0xC0000000 | 0x0129)
-#define NT_STATUS_THREAD_NOT_IN_PROCESS NT_STATUS(0xC0000000 | 0x012a)
-#define NT_STATUS_TOKEN_ALREADY_IN_USE NT_STATUS(0xC0000000 | 0x012b)
-#define NT_STATUS_PAGEFILE_QUOTA_EXCEEDED NT_STATUS(0xC0000000 | 0x012c)
-#define NT_STATUS_COMMITMENT_LIMIT NT_STATUS(0xC0000000 | 0x012d)
-#define NT_STATUS_INVALID_IMAGE_LE_FORMAT NT_STATUS(0xC0000000 | 0x012e)
-#define NT_STATUS_INVALID_IMAGE_NOT_MZ NT_STATUS(0xC0000000 | 0x012f)
-#define NT_STATUS_INVALID_IMAGE_PROTECT NT_STATUS(0xC0000000 | 0x0130)
-#define NT_STATUS_INVALID_IMAGE_WIN_16 NT_STATUS(0xC0000000 | 0x0131)
-#define NT_STATUS_LOGON_SERVER_CONFLICT NT_STATUS(0xC0000000 | 0x0132)
-#define NT_STATUS_TIME_DIFFERENCE_AT_DC NT_STATUS(0xC0000000 | 0x0133)
-#define NT_STATUS_SYNCHRONIZATION_REQUIRED NT_STATUS(0xC0000000 | 0x0134)
-#define NT_STATUS_DLL_NOT_FOUND NT_STATUS(0xC0000000 | 0x0135)
-#define NT_STATUS_OPEN_FAILED NT_STATUS(0xC0000000 | 0x0136)
-#define NT_STATUS_IO_PRIVILEGE_FAILED NT_STATUS(0xC0000000 | 0x0137)
-#define NT_STATUS_ORDINAL_NOT_FOUND NT_STATUS(0xC0000000 | 0x0138)
-#define NT_STATUS_ENTRYPOINT_NOT_FOUND NT_STATUS(0xC0000000 | 0x0139)
-#define NT_STATUS_CONTROL_C_EXIT NT_STATUS(0xC0000000 | 0x013a)
-#define NT_STATUS_LOCAL_DISCONNECT NT_STATUS(0xC0000000 | 0x013b)
-#define NT_STATUS_REMOTE_DISCONNECT NT_STATUS(0xC0000000 | 0x013c)
-#define NT_STATUS_REMOTE_RESOURCES NT_STATUS(0xC0000000 | 0x013d)
-#define NT_STATUS_LINK_FAILED NT_STATUS(0xC0000000 | 0x013e)
-#define NT_STATUS_LINK_TIMEOUT NT_STATUS(0xC0000000 | 0x013f)
-#define NT_STATUS_INVALID_CONNECTION NT_STATUS(0xC0000000 | 0x0140)
-#define NT_STATUS_INVALID_ADDRESS NT_STATUS(0xC0000000 | 0x0141)
-#define NT_STATUS_DLL_INIT_FAILED NT_STATUS(0xC0000000 | 0x0142)
-#define NT_STATUS_MISSING_SYSTEMFILE NT_STATUS(0xC0000000 | 0x0143)
-#define NT_STATUS_UNHANDLED_EXCEPTION NT_STATUS(0xC0000000 | 0x0144)
-#define NT_STATUS_APP_INIT_FAILURE NT_STATUS(0xC0000000 | 0x0145)
-#define NT_STATUS_PAGEFILE_CREATE_FAILED NT_STATUS(0xC0000000 | 0x0146)
-#define NT_STATUS_NO_PAGEFILE NT_STATUS(0xC0000000 | 0x0147)
-#define NT_STATUS_INVALID_LEVEL NT_STATUS(0xC0000000 | 0x0148)
-#define NT_STATUS_WRONG_PASSWORD_CORE NT_STATUS(0xC0000000 | 0x0149)
-#define NT_STATUS_ILLEGAL_FLOAT_CONTEXT NT_STATUS(0xC0000000 | 0x014a)
-#define NT_STATUS_PIPE_BROKEN NT_STATUS(0xC0000000 | 0x014b)
-#define NT_STATUS_REGISTRY_CORRUPT NT_STATUS(0xC0000000 | 0x014c)
-#define NT_STATUS_REGISTRY_IO_FAILED NT_STATUS(0xC0000000 | 0x014d)
-#define NT_STATUS_NO_EVENT_PAIR NT_STATUS(0xC0000000 | 0x014e)
-#define NT_STATUS_UNRECOGNIZED_VOLUME NT_STATUS(0xC0000000 | 0x014f)
-#define NT_STATUS_SERIAL_NO_DEVICE_INITED NT_STATUS(0xC0000000 | 0x0150)
-#define NT_STATUS_NO_SUCH_ALIAS NT_STATUS(0xC0000000 | 0x0151)
-#define NT_STATUS_MEMBER_NOT_IN_ALIAS NT_STATUS(0xC0000000 | 0x0152)
-#define NT_STATUS_MEMBER_IN_ALIAS NT_STATUS(0xC0000000 | 0x0153)
-#define NT_STATUS_ALIAS_EXISTS NT_STATUS(0xC0000000 | 0x0154)
-#define NT_STATUS_LOGON_NOT_GRANTED NT_STATUS(0xC0000000 | 0x0155)
-#define NT_STATUS_TOO_MANY_SECRETS NT_STATUS(0xC0000000 | 0x0156)
-#define NT_STATUS_SECRET_TOO_LONG NT_STATUS(0xC0000000 | 0x0157)
-#define NT_STATUS_INTERNAL_DB_ERROR NT_STATUS(0xC0000000 | 0x0158)
-#define NT_STATUS_FULLSCREEN_MODE NT_STATUS(0xC0000000 | 0x0159)
-#define NT_STATUS_TOO_MANY_CONTEXT_IDS NT_STATUS(0xC0000000 | 0x015a)
-#define NT_STATUS_LOGON_TYPE_NOT_GRANTED NT_STATUS(0xC0000000 | 0x015b)
-#define NT_STATUS_NOT_REGISTRY_FILE NT_STATUS(0xC0000000 | 0x015c)
-#define NT_STATUS_NT_CROSS_ENCRYPTION_REQUIRED NT_STATUS(0xC0000000 | 0x015d)
-#define NT_STATUS_DOMAIN_CTRLR_CONFIG_ERROR NT_STATUS(0xC0000000 | 0x015e)
-#define NT_STATUS_FT_MISSING_MEMBER NT_STATUS(0xC0000000 | 0x015f)
-#define NT_STATUS_ILL_FORMED_SERVICE_ENTRY NT_STATUS(0xC0000000 | 0x0160)
-#define NT_STATUS_ILLEGAL_CHARACTER NT_STATUS(0xC0000000 | 0x0161)
-#define NT_STATUS_UNMAPPABLE_CHARACTER NT_STATUS(0xC0000000 | 0x0162)
-#define NT_STATUS_UNDEFINED_CHARACTER NT_STATUS(0xC0000000 | 0x0163)
-#define NT_STATUS_FLOPPY_VOLUME NT_STATUS(0xC0000000 | 0x0164)
-#define NT_STATUS_FLOPPY_ID_MARK_NOT_FOUND NT_STATUS(0xC0000000 | 0x0165)
-#define NT_STATUS_FLOPPY_WRONG_CYLINDER NT_STATUS(0xC0000000 | 0x0166)
-#define NT_STATUS_FLOPPY_UNKNOWN_ERROR NT_STATUS(0xC0000000 | 0x0167)
-#define NT_STATUS_FLOPPY_BAD_REGISTERS NT_STATUS(0xC0000000 | 0x0168)
-#define NT_STATUS_DISK_RECALIBRATE_FAILED NT_STATUS(0xC0000000 | 0x0169)
-#define NT_STATUS_DISK_OPERATION_FAILED NT_STATUS(0xC0000000 | 0x016a)
-#define NT_STATUS_DISK_RESET_FAILED NT_STATUS(0xC0000000 | 0x016b)
-#define NT_STATUS_SHARED_IRQ_BUSY NT_STATUS(0xC0000000 | 0x016c)
-#define NT_STATUS_FT_ORPHANING NT_STATUS(0xC0000000 | 0x016d)
-#define NT_STATUS_PARTITION_FAILURE NT_STATUS(0xC0000000 | 0x0172)
-#define NT_STATUS_INVALID_BLOCK_LENGTH NT_STATUS(0xC0000000 | 0x0173)
-#define NT_STATUS_DEVICE_NOT_PARTITIONED NT_STATUS(0xC0000000 | 0x0174)
-#define NT_STATUS_UNABLE_TO_LOCK_MEDIA NT_STATUS(0xC0000000 | 0x0175)
-#define NT_STATUS_UNABLE_TO_UNLOAD_MEDIA NT_STATUS(0xC0000000 | 0x0176)
-#define NT_STATUS_EOM_OVERFLOW NT_STATUS(0xC0000000 | 0x0177)
-#define NT_STATUS_NO_MEDIA NT_STATUS(0xC0000000 | 0x0178)
-#define NT_STATUS_NO_SUCH_MEMBER NT_STATUS(0xC0000000 | 0x017a)
-#define NT_STATUS_INVALID_MEMBER NT_STATUS(0xC0000000 | 0x017b)
-#define NT_STATUS_KEY_DELETED NT_STATUS(0xC0000000 | 0x017c)
-#define NT_STATUS_NO_LOG_SPACE NT_STATUS(0xC0000000 | 0x017d)
-#define NT_STATUS_TOO_MANY_SIDS NT_STATUS(0xC0000000 | 0x017e)
-#define NT_STATUS_LM_CROSS_ENCRYPTION_REQUIRED NT_STATUS(0xC0000000 | 0x017f)
-#define NT_STATUS_KEY_HAS_CHILDREN NT_STATUS(0xC0000000 | 0x0180)
-#define NT_STATUS_CHILD_MUST_BE_VOLATILE NT_STATUS(0xC0000000 | 0x0181)
-#define NT_STATUS_DEVICE_CONFIGURATION_ERROR NT_STATUS(0xC0000000 | 0x0182)
-#define NT_STATUS_DRIVER_INTERNAL_ERROR NT_STATUS(0xC0000000 | 0x0183)
-#define NT_STATUS_INVALID_DEVICE_STATE NT_STATUS(0xC0000000 | 0x0184)
-#define NT_STATUS_IO_DEVICE_ERROR NT_STATUS(0xC0000000 | 0x0185)
-#define NT_STATUS_DEVICE_PROTOCOL_ERROR NT_STATUS(0xC0000000 | 0x0186)
-#define NT_STATUS_BACKUP_CONTROLLER NT_STATUS(0xC0000000 | 0x0187)
-#define NT_STATUS_LOG_FILE_FULL NT_STATUS(0xC0000000 | 0x0188)
-#define NT_STATUS_TOO_LATE NT_STATUS(0xC0000000 | 0x0189)
-#define NT_STATUS_NO_TRUST_LSA_SECRET NT_STATUS(0xC0000000 | 0x018a)
-#define NT_STATUS_NO_TRUST_SAM_ACCOUNT NT_STATUS(0xC0000000 | 0x018b)
-#define NT_STATUS_TRUSTED_DOMAIN_FAILURE NT_STATUS(0xC0000000 | 0x018c)
-#define NT_STATUS_TRUSTED_RELATIONSHIP_FAILURE NT_STATUS(0xC0000000 | 0x018d)
-#define NT_STATUS_EVENTLOG_FILE_CORRUPT NT_STATUS(0xC0000000 | 0x018e)
-#define NT_STATUS_EVENTLOG_CANT_START NT_STATUS(0xC0000000 | 0x018f)
-#define NT_STATUS_TRUST_FAILURE NT_STATUS(0xC0000000 | 0x0190)
-#define NT_STATUS_MUTANT_LIMIT_EXCEEDED NT_STATUS(0xC0000000 | 0x0191)
-#define NT_STATUS_NETLOGON_NOT_STARTED NT_STATUS(0xC0000000 | 0x0192)
-#define NT_STATUS_ACCOUNT_EXPIRED NT_STATUS(0xC0000000 | 0x0193)
-#define NT_STATUS_POSSIBLE_DEADLOCK NT_STATUS(0xC0000000 | 0x0194)
-#define NT_STATUS_NETWORK_CREDENTIAL_CONFLICT NT_STATUS(0xC0000000 | 0x0195)
-#define NT_STATUS_REMOTE_SESSION_LIMIT NT_STATUS(0xC0000000 | 0x0196)
-#define NT_STATUS_EVENTLOG_FILE_CHANGED NT_STATUS(0xC0000000 | 0x0197)
-#define NT_STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT NT_STATUS(0xC0000000 | 0x0198)
-#define NT_STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT NT_STATUS(0xC0000000 | 0x0199)
-#define NT_STATUS_NOLOGON_SERVER_TRUST_ACCOUNT NT_STATUS(0xC0000000 | 0x019a)
-#define NT_STATUS_DOMAIN_TRUST_INCONSISTENT NT_STATUS(0xC0000000 | 0x019b)
-#define NT_STATUS_FS_DRIVER_REQUIRED NT_STATUS(0xC0000000 | 0x019c)
-#define NT_STATUS_NO_USER_SESSION_KEY NT_STATUS(0xC0000000 | 0x0202)
-#define NT_STATUS_USER_SESSION_DELETED NT_STATUS(0xC0000000 | 0x0203)
-#define NT_STATUS_RESOURCE_LANG_NOT_FOUND NT_STATUS(0xC0000000 | 0x0204)
-#define NT_STATUS_INSUFF_SERVER_RESOURCES NT_STATUS(0xC0000000 | 0x0205)
-#define NT_STATUS_INVALID_BUFFER_SIZE NT_STATUS(0xC0000000 | 0x0206)
-#define NT_STATUS_INVALID_ADDRESS_COMPONENT NT_STATUS(0xC0000000 | 0x0207)
-#define NT_STATUS_INVALID_ADDRESS_WILDCARD NT_STATUS(0xC0000000 | 0x0208)
-#define NT_STATUS_TOO_MANY_ADDRESSES NT_STATUS(0xC0000000 | 0x0209)
-#define NT_STATUS_ADDRESS_ALREADY_EXISTS NT_STATUS(0xC0000000 | 0x020a)
-#define NT_STATUS_ADDRESS_CLOSED NT_STATUS(0xC0000000 | 0x020b)
-#define NT_STATUS_CONNECTION_DISCONNECTED NT_STATUS(0xC0000000 | 0x020c)
-#define NT_STATUS_CONNECTION_RESET NT_STATUS(0xC0000000 | 0x020d)
-#define NT_STATUS_TOO_MANY_NODES NT_STATUS(0xC0000000 | 0x020e)
-#define NT_STATUS_TRANSACTION_ABORTED NT_STATUS(0xC0000000 | 0x020f)
-#define NT_STATUS_TRANSACTION_TIMED_OUT NT_STATUS(0xC0000000 | 0x0210)
-#define NT_STATUS_TRANSACTION_NO_RELEASE NT_STATUS(0xC0000000 | 0x0211)
-#define NT_STATUS_TRANSACTION_NO_MATCH NT_STATUS(0xC0000000 | 0x0212)
-#define NT_STATUS_TRANSACTION_RESPONDED NT_STATUS(0xC0000000 | 0x0213)
-#define NT_STATUS_TRANSACTION_INVALID_ID NT_STATUS(0xC0000000 | 0x0214)
-#define NT_STATUS_TRANSACTION_INVALID_TYPE NT_STATUS(0xC0000000 | 0x0215)
-#define NT_STATUS_NOT_SERVER_SESSION NT_STATUS(0xC0000000 | 0x0216)
-#define NT_STATUS_NOT_CLIENT_SESSION NT_STATUS(0xC0000000 | 0x0217)
-#define NT_STATUS_CANNOT_LOAD_REGISTRY_FILE NT_STATUS(0xC0000000 | 0x0218)
-#define NT_STATUS_DEBUG_ATTACH_FAILED NT_STATUS(0xC0000000 | 0x0219)
-#define NT_STATUS_SYSTEM_PROCESS_TERMINATED NT_STATUS(0xC0000000 | 0x021a)
-#define NT_STATUS_DATA_NOT_ACCEPTED NT_STATUS(0xC0000000 | 0x021b)
-#define NT_STATUS_NO_BROWSER_SERVERS_FOUND NT_STATUS(0xC0000000 | 0x021c)
-#define NT_STATUS_VDM_HARD_ERROR NT_STATUS(0xC0000000 | 0x021d)
-#define NT_STATUS_DRIVER_CANCEL_TIMEOUT NT_STATUS(0xC0000000 | 0x021e)
-#define NT_STATUS_REPLY_MESSAGE_MISMATCH NT_STATUS(0xC0000000 | 0x021f)
-#define NT_STATUS_MAPPED_ALIGNMENT NT_STATUS(0xC0000000 | 0x0220)
-#define NT_STATUS_IMAGE_CHECKSUM_MISMATCH NT_STATUS(0xC0000000 | 0x0221)
-#define NT_STATUS_LOST_WRITEBEHIND_DATA NT_STATUS(0xC0000000 | 0x0222)
-#define NT_STATUS_CLIENT_SERVER_PARAMETERS_INVALID NT_STATUS(0xC0000000 | 0x0223)
-#define NT_STATUS_PASSWORD_MUST_CHANGE NT_STATUS(0xC0000000 | 0x0224)
-#define NT_STATUS_NOT_FOUND NT_STATUS(0xC0000000 | 0x0225)
-#define NT_STATUS_NOT_TINY_STREAM NT_STATUS(0xC0000000 | 0x0226)
-#define NT_STATUS_RECOVERY_FAILURE NT_STATUS(0xC0000000 | 0x0227)
-#define NT_STATUS_STACK_OVERFLOW_READ NT_STATUS(0xC0000000 | 0x0228)
-#define NT_STATUS_FAIL_CHECK NT_STATUS(0xC0000000 | 0x0229)
-#define NT_STATUS_DUPLICATE_OBJECTID NT_STATUS(0xC0000000 | 0x022a)
-#define NT_STATUS_OBJECTID_EXISTS NT_STATUS(0xC0000000 | 0x022b)
-#define NT_STATUS_CONVERT_TO_LARGE NT_STATUS(0xC0000000 | 0x022c)
-#define NT_STATUS_RETRY NT_STATUS(0xC0000000 | 0x022d)
-#define NT_STATUS_FOUND_OUT_OF_SCOPE NT_STATUS(0xC0000000 | 0x022e)
-#define NT_STATUS_ALLOCATE_BUCKET NT_STATUS(0xC0000000 | 0x022f)
-#define NT_STATUS_PROPSET_NOT_FOUND NT_STATUS(0xC0000000 | 0x0230)
-#define NT_STATUS_MARSHALL_OVERFLOW NT_STATUS(0xC0000000 | 0x0231)
-#define NT_STATUS_INVALID_VARIANT NT_STATUS(0xC0000000 | 0x0232)
-#define NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND NT_STATUS(0xC0000000 | 0x0233)
-#define NT_STATUS_ACCOUNT_LOCKED_OUT NT_STATUS(0xC0000000 | 0x0234)
-#define NT_STATUS_HANDLE_NOT_CLOSABLE NT_STATUS(0xC0000000 | 0x0235)
-#define NT_STATUS_CONNECTION_REFUSED NT_STATUS(0xC0000000 | 0x0236)
-#define NT_STATUS_GRACEFUL_DISCONNECT NT_STATUS(0xC0000000 | 0x0237)
-#define NT_STATUS_ADDRESS_ALREADY_ASSOCIATED NT_STATUS(0xC0000000 | 0x0238)
-#define NT_STATUS_ADDRESS_NOT_ASSOCIATED NT_STATUS(0xC0000000 | 0x0239)
-#define NT_STATUS_CONNECTION_INVALID NT_STATUS(0xC0000000 | 0x023a)
-#define NT_STATUS_CONNECTION_ACTIVE NT_STATUS(0xC0000000 | 0x023b)
-#define NT_STATUS_NETWORK_UNREACHABLE NT_STATUS(0xC0000000 | 0x023c)
-#define NT_STATUS_HOST_UNREACHABLE NT_STATUS(0xC0000000 | 0x023d)
-#define NT_STATUS_PROTOCOL_UNREACHABLE NT_STATUS(0xC0000000 | 0x023e)
-#define NT_STATUS_PORT_UNREACHABLE NT_STATUS(0xC0000000 | 0x023f)
-#define NT_STATUS_REQUEST_ABORTED NT_STATUS(0xC0000000 | 0x0240)
-#define NT_STATUS_CONNECTION_ABORTED NT_STATUS(0xC0000000 | 0x0241)
-#define NT_STATUS_BAD_COMPRESSION_BUFFER NT_STATUS(0xC0000000 | 0x0242)
-#define NT_STATUS_USER_MAPPED_FILE NT_STATUS(0xC0000000 | 0x0243)
-#define NT_STATUS_AUDIT_FAILED NT_STATUS(0xC0000000 | 0x0244)
-#define NT_STATUS_TIMER_RESOLUTION_NOT_SET NT_STATUS(0xC0000000 | 0x0245)
-#define NT_STATUS_CONNECTION_COUNT_LIMIT NT_STATUS(0xC0000000 | 0x0246)
-#define NT_STATUS_LOGIN_TIME_RESTRICTION NT_STATUS(0xC0000000 | 0x0247)
-#define NT_STATUS_LOGIN_WKSTA_RESTRICTION NT_STATUS(0xC0000000 | 0x0248)
-#define NT_STATUS_IMAGE_MP_UP_MISMATCH NT_STATUS(0xC0000000 | 0x0249)
-#define NT_STATUS_INSUFFICIENT_LOGON_INFO NT_STATUS(0xC0000000 | 0x0250)
-#define NT_STATUS_BAD_DLL_ENTRYPOINT NT_STATUS(0xC0000000 | 0x0251)
-#define NT_STATUS_BAD_SERVICE_ENTRYPOINT NT_STATUS(0xC0000000 | 0x0252)
-#define NT_STATUS_LPC_REPLY_LOST NT_STATUS(0xC0000000 | 0x0253)
-#define NT_STATUS_IP_ADDRESS_CONFLICT1 NT_STATUS(0xC0000000 | 0x0254)
-#define NT_STATUS_IP_ADDRESS_CONFLICT2 NT_STATUS(0xC0000000 | 0x0255)
-#define NT_STATUS_REGISTRY_QUOTA_LIMIT NT_STATUS(0xC0000000 | 0x0256)
-#define NT_STATUS_PATH_NOT_COVERED NT_STATUS(0xC0000000 | 0x0257)
-#define NT_STATUS_NO_CALLBACK_ACTIVE NT_STATUS(0xC0000000 | 0x0258)
-#define NT_STATUS_LICENSE_QUOTA_EXCEEDED NT_STATUS(0xC0000000 | 0x0259)
-#define NT_STATUS_PWD_TOO_SHORT NT_STATUS(0xC0000000 | 0x025a)
-#define NT_STATUS_PWD_TOO_RECENT NT_STATUS(0xC0000000 | 0x025b)
-#define NT_STATUS_PWD_HISTORY_CONFLICT NT_STATUS(0xC0000000 | 0x025c)
-#define NT_STATUS_PLUGPLAY_NO_DEVICE NT_STATUS(0xC0000000 | 0x025e)
-#define NT_STATUS_UNSUPPORTED_COMPRESSION NT_STATUS(0xC0000000 | 0x025f)
-#define NT_STATUS_INVALID_HW_PROFILE NT_STATUS(0xC0000000 | 0x0260)
-#define NT_STATUS_INVALID_PLUGPLAY_DEVICE_PATH NT_STATUS(0xC0000000 | 0x0261)
-#define NT_STATUS_DRIVER_ORDINAL_NOT_FOUND NT_STATUS(0xC0000000 | 0x0262)
-#define NT_STATUS_DRIVER_ENTRYPOINT_NOT_FOUND NT_STATUS(0xC0000000 | 0x0263)
-#define NT_STATUS_RESOURCE_NOT_OWNED NT_STATUS(0xC0000000 | 0x0264)
-#define NT_STATUS_TOO_MANY_LINKS NT_STATUS(0xC0000000 | 0x0265)
-#define NT_STATUS_QUOTA_LIST_INCONSISTENT NT_STATUS(0xC0000000 | 0x0266)
-#define NT_STATUS_FILE_IS_OFFLINE NT_STATUS(0xC0000000 | 0x0267)
-#define NT_STATUS_NOT_A_REPARSE_POINT NT_STATUS(0xC0000000 | 0x0275)
-#define NT_STATUS_OBJECTID_NOT_FOUND NT_STATUS(0xC0000000 | 0x02F0)
-#define NT_STATUS_NO_SUCH_JOB NT_STATUS(0xC0000000 | 0xEDE) /* scheduler */
-#define NT_STATUS_RPC_PROTSEQ_NOT_SUPPORTED NT_STATUS(0xC0000000 | 0x20004)
-#define NT_STATUS_RPC_UNSUPPORTED_NAME_SYNTAX NT_STATUS(0xC0000000 | 0x20026)
-
-
-/* I use NT_STATUS_FOOBAR when I have no idea what error code to use -
- * this means we need a torture test */
-#define NT_STATUS_FOOBAR NT_STATUS_UNSUCCESSFUL
-
-#endif /* _NTERR_H */
diff --git a/source/libcli/util/ntstatus.h b/source/libcli/util/ntstatus.h
new file mode 100644 (file)
index 0000000..026b516
--- /dev/null
@@ -0,0 +1,675 @@
+/* 
+   Unix SMB/CIFS implementation.
+   NT error code constants
+   Copyright (C) Andrew Tridgell              1992-2000
+   Copyright (C) John H Terpstra              1996-2000
+   Copyright (C) Luke Kenneth Casson Leighton 1996-2000
+   Copyright (C) Paul Ashton                  1998-2000
+   
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+   
+   This program 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 General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef _NTSTATUS_H
+#define _NTSTATUS_H
+
+/* the following rather strange looking definitions of NTSTATUS 
+   are there in order to catch common coding errors where different error types
+   are mixed up. This is especially important as we slowly convert Samba
+   from using bool for internal functions 
+*/
+
+#if defined(HAVE_IMMEDIATE_STRUCTURES)
+typedef struct {uint32_t v;} NTSTATUS;
+#define NT_STATUS(x) ((NTSTATUS) { x })
+#define NT_STATUS_V(x) ((x).v)
+#else
+typedef uint32_t NTSTATUS;
+#define NT_STATUS(x) (x)
+#define NT_STATUS_V(x) (x)
+#endif
+
+/* Win32 Status codes. */
+
+#define STATUS_BUFFER_OVERFLOW            NT_STATUS(0x80000005)
+#define STATUS_NO_MORE_FILES              NT_STATUS(0x80000006)
+#define STATUS_NO_MORE_EAS                NT_STATUS(0x80000012)        
+#define STATUS_INVALID_EA_NAME            NT_STATUS(0x80000013)
+#define STATUS_EA_LIST_INCONSISTENT       NT_STATUS(0x80000014)
+#define STATUS_INVALID_EA_FLAG            NT_STATUS(0x80000015)
+#define NT_STATUS_NO_MORE_ENTRIES         NT_STATUS(0x8000001a)
+
+#define STATUS_PENDING                    NT_STATUS(0x0103)
+#define STATUS_MORE_ENTRIES               NT_STATUS(0x0105)
+#define STATUS_SOME_UNMAPPED              NT_STATUS(0x0107)
+#define STATUS_NOTIFY_CLEANUP             NT_STATUS(0x010b)
+#define STATUS_NOTIFY_ENUM_DIR            NT_STATUS(0x010c)
+#define ERROR_INVALID_PARAMETER                  NT_STATUS(0x0057)
+#define ERROR_INSUFFICIENT_BUFFER        NT_STATUS(0x007a)
+#define ERROR_INVALID_DATATYPE           NT_STATUS(0x070c)
+
+/* Win32 Error codes extracted using a loop in smbclient then printing a
+   netmon sniff to a file. */
+
+/*
+                       --------------
+                      /              \
+                     /      REST      \
+                    /        IN        \
+                   /       PEACE        \
+                  /                      \
+                  | NT_STATUS_NOPROBLEMO |
+                  |                      |
+                  |                      |
+                  |      4 September     |
+                  |                      |
+                  |         2001         |
+                 *|     *  *  *          | *
+        _________)/\\_//(\/(/\)/\//\/\///|_)_______
+*/
+
+#define NT_STATUS_OK NT_STATUS(0x0000)
+#define NT_STATUS_UNSUCCESSFUL NT_STATUS(0xC0000000 | 0x0001)
+#define NT_STATUS_NOT_IMPLEMENTED NT_STATUS(0xC0000000 | 0x0002)
+#define NT_STATUS_INVALID_INFO_CLASS NT_STATUS(0xC0000000 | 0x0003)
+#define NT_STATUS_INFO_LENGTH_MISMATCH NT_STATUS(0xC0000000 | 0x0004)
+#define NT_STATUS_ACCESS_VIOLATION NT_STATUS(0xC0000000 | 0x0005)
+#define NT_STATUS_IN_PAGE_ERROR NT_STATUS(0xC0000000 | 0x0006)
+#define NT_STATUS_PAGEFILE_QUOTA NT_STATUS(0xC0000000 | 0x0007)
+#define NT_STATUS_INVALID_HANDLE NT_STATUS(0xC0000000 | 0x0008)
+#define NT_STATUS_BAD_INITIAL_STACK NT_STATUS(0xC0000000 | 0x0009)
+#define NT_STATUS_BAD_INITIAL_PC NT_STATUS(0xC0000000 | 0x000a)
+#define NT_STATUS_INVALID_CID NT_STATUS(0xC0000000 | 0x000b)
+#define NT_STATUS_TIMER_NOT_CANCELED NT_STATUS(0xC0000000 | 0x000c)
+#define NT_STATUS_INVALID_PARAMETER NT_STATUS(0xC0000000 | 0x000d)
+#define NT_STATUS_NO_SUCH_DEVICE NT_STATUS(0xC0000000 | 0x000e)
+#define NT_STATUS_NO_SUCH_FILE NT_STATUS(0xC0000000 | 0x000f)
+#define NT_STATUS_INVALID_DEVICE_REQUEST NT_STATUS(0xC0000000 | 0x0010)
+#define NT_STATUS_END_OF_FILE NT_STATUS(0xC0000000 | 0x0011)
+#define NT_STATUS_WRONG_VOLUME NT_STATUS(0xC0000000 | 0x0012)
+#define NT_STATUS_NO_MEDIA_IN_DEVICE NT_STATUS(0xC0000000 | 0x0013)
+#define NT_STATUS_UNRECOGNIZED_MEDIA NT_STATUS(0xC0000000 | 0x0014)
+#define NT_STATUS_NONEXISTENT_SECTOR NT_STATUS(0xC0000000 | 0x0015)
+#define NT_STATUS_MORE_PROCESSING_REQUIRED NT_STATUS(0xC0000000 | 0x0016)
+#if 0
+/* this demonstrates a little trick when tracking down error codes */
+#define NT_STATUS_NO_MEMORY (printf("no memory at %s\n", __location__), NT_STATUS(0xC0000000 | 0x0017))
+#else
+#define NT_STATUS_NO_MEMORY NT_STATUS(0xC0000000 | 0x0017)
+#endif
+#define NT_STATUS_CONFLICTING_ADDRESSES NT_STATUS(0xC0000000 | 0x0018)
+#define NT_STATUS_NOT_MAPPED_VIEW NT_STATUS(0xC0000000 | 0x0019)
+#define NT_STATUS_UNABLE_TO_FREE_VM NT_STATUS(0xC0000000 | 0x001a)
+#define NT_STATUS_UNABLE_TO_DELETE_SECTION NT_STATUS(0xC0000000 | 0x001b)
+#define NT_STATUS_INVALID_SYSTEM_SERVICE NT_STATUS(0xC0000000 | 0x001c)
+#define NT_STATUS_ILLEGAL_INSTRUCTION NT_STATUS(0xC0000000 | 0x001d)
+#define NT_STATUS_INVALID_LOCK_SEQUENCE NT_STATUS(0xC0000000 | 0x001e)
+#define NT_STATUS_INVALID_VIEW_SIZE NT_STATUS(0xC0000000 | 0x001f)
+#define NT_STATUS_INVALID_FILE_FOR_SECTION NT_STATUS(0xC0000000 | 0x0020)
+#define NT_STATUS_ALREADY_COMMITTED NT_STATUS(0xC0000000 | 0x0021)
+#if 0
+/* this demonstrates a little trick when tracking down error codes */
+#define NT_STATUS_ACCESS_DENIED (printf("access denied at %s\n", __location__), NT_STATUS(0xC0000000 | 0x0022))
+#else
+#define NT_STATUS_ACCESS_DENIED NT_STATUS(0xC0000000 | 0x0022)
+#endif
+#define NT_STATUS_BUFFER_TOO_SMALL NT_STATUS(0xC0000000 | 0x0023)
+#define NT_STATUS_OBJECT_TYPE_MISMATCH NT_STATUS(0xC0000000 | 0x0024)
+#define NT_STATUS_NONCONTINUABLE_EXCEPTION NT_STATUS(0xC0000000 | 0x0025)
+#define NT_STATUS_INVALID_DISPOSITION NT_STATUS(0xC0000000 | 0x0026)
+#define NT_STATUS_UNWIND NT_STATUS(0xC0000000 | 0x0027)
+#define NT_STATUS_BAD_STACK NT_STATUS(0xC0000000 | 0x0028)
+#define NT_STATUS_INVALID_UNWIND_TARGET NT_STATUS(0xC0000000 | 0x0029)
+#define NT_STATUS_NOT_LOCKED NT_STATUS(0xC0000000 | 0x002a)
+#define NT_STATUS_PARITY_ERROR NT_STATUS(0xC0000000 | 0x002b)
+#define NT_STATUS_UNABLE_TO_DECOMMIT_VM NT_STATUS(0xC0000000 | 0x002c)
+#define NT_STATUS_NOT_COMMITTED NT_STATUS(0xC0000000 | 0x002d)
+#define NT_STATUS_INVALID_PORT_ATTRIBUTES NT_STATUS(0xC0000000 | 0x002e)
+#define NT_STATUS_PORT_MESSAGE_TOO_LONG NT_STATUS(0xC0000000 | 0x002f)
+#define NT_STATUS_INVALID_PARAMETER_MIX NT_STATUS(0xC0000000 | 0x0030)
+#define NT_STATUS_INVALID_QUOTA_LOWER NT_STATUS(0xC0000000 | 0x0031)
+#define NT_STATUS_DISK_CORRUPT_ERROR NT_STATUS(0xC0000000 | 0x0032)
+#define NT_STATUS_OBJECT_NAME_INVALID NT_STATUS(0xC0000000 | 0x0033)
+#define NT_STATUS_OBJECT_NAME_NOT_FOUND NT_STATUS(0xC0000000 | 0x0034)
+#define NT_STATUS_OBJECT_NAME_COLLISION NT_STATUS(0xC0000000 | 0x0035)
+#define NT_STATUS_HANDLE_NOT_WAITABLE NT_STATUS(0xC0000000 | 0x0036)
+#define NT_STATUS_PORT_DISCONNECTED NT_STATUS(0xC0000000 | 0x0037)
+#define NT_STATUS_DEVICE_ALREADY_ATTACHED NT_STATUS(0xC0000000 | 0x0038)
+#define NT_STATUS_OBJECT_PATH_INVALID NT_STATUS(0xC0000000 | 0x0039)
+#define NT_STATUS_OBJECT_PATH_NOT_FOUND NT_STATUS(0xC0000000 | 0x003a)
+#define NT_STATUS_OBJECT_PATH_SYNTAX_BAD NT_STATUS(0xC0000000 | 0x003b)
+#define NT_STATUS_DATA_OVERRUN NT_STATUS(0xC0000000 | 0x003c)
+#define NT_STATUS_DATA_LATE_ERROR NT_STATUS(0xC0000000 | 0x003d)
+#define NT_STATUS_DATA_ERROR NT_STATUS(0xC0000000 | 0x003e)
+#define NT_STATUS_CRC_ERROR NT_STATUS(0xC0000000 | 0x003f)
+#define NT_STATUS_SECTION_TOO_BIG NT_STATUS(0xC0000000 | 0x0040)
+#define NT_STATUS_PORT_CONNECTION_REFUSED NT_STATUS(0xC0000000 | 0x0041)
+#define NT_STATUS_INVALID_PORT_HANDLE NT_STATUS(0xC0000000 | 0x0042)
+#define NT_STATUS_SHARING_VIOLATION NT_STATUS(0xC0000000 | 0x0043)
+#define NT_STATUS_QUOTA_EXCEEDED NT_STATUS(0xC0000000 | 0x0044)
+#define NT_STATUS_INVALID_PAGE_PROTECTION NT_STATUS(0xC0000000 | 0x0045)
+#define NT_STATUS_MUTANT_NOT_OWNED NT_STATUS(0xC0000000 | 0x0046)
+#define NT_STATUS_SEMAPHORE_LIMIT_EXCEEDED NT_STATUS(0xC0000000 | 0x0047)
+#define NT_STATUS_PORT_ALREADY_SET NT_STATUS(0xC0000000 | 0x0048)
+#define NT_STATUS_SECTION_NOT_IMAGE NT_STATUS(0xC0000000 | 0x0049)
+#define NT_STATUS_SUSPEND_COUNT_EXCEEDED NT_STATUS(0xC0000000 | 0x004a)
+#define NT_STATUS_THREAD_IS_TERMINATING NT_STATUS(0xC0000000 | 0x004b)
+#define NT_STATUS_BAD_WORKING_SET_LIMIT NT_STATUS(0xC0000000 | 0x004c)
+#define NT_STATUS_INCOMPATIBLE_FILE_MAP NT_STATUS(0xC0000000 | 0x004d)
+#define NT_STATUS_SECTION_PROTECTION NT_STATUS(0xC0000000 | 0x004e)
+#define NT_STATUS_EAS_NOT_SUPPORTED NT_STATUS(0xC0000000 | 0x004f)
+#define NT_STATUS_EA_TOO_LARGE NT_STATUS(0xC0000000 | 0x0050)
+#define NT_STATUS_NONEXISTENT_EA_ENTRY NT_STATUS(0xC0000000 | 0x0051)
+#define NT_STATUS_NO_EAS_ON_FILE NT_STATUS(0xC0000000 | 0x0052)
+#define NT_STATUS_EA_CORRUPT_ERROR NT_STATUS(0xC0000000 | 0x0053)
+#define NT_STATUS_FILE_LOCK_CONFLICT NT_STATUS(0xC0000000 | 0x0054)
+#define NT_STATUS_LOCK_NOT_GRANTED NT_STATUS(0xC0000000 | 0x0055)
+#define NT_STATUS_DELETE_PENDING NT_STATUS(0xC0000000 | 0x0056)
+#define NT_STATUS_CTL_FILE_NOT_SUPPORTED NT_STATUS(0xC0000000 | 0x0057)
+#define NT_STATUS_UNKNOWN_REVISION NT_STATUS(0xC0000000 | 0x0058)
+#define NT_STATUS_REVISION_MISMATCH NT_STATUS(0xC0000000 | 0x0059)
+#define NT_STATUS_INVALID_OWNER NT_STATUS(0xC0000000 | 0x005a)
+#define NT_STATUS_INVALID_PRIMARY_GROUP NT_STATUS(0xC0000000 | 0x005b)
+#define NT_STATUS_NO_IMPERSONATION_TOKEN NT_STATUS(0xC0000000 | 0x005c)
+#define NT_STATUS_CANT_DISABLE_MANDATORY NT_STATUS(0xC0000000 | 0x005d)
+#define NT_STATUS_NO_LOGON_SERVERS NT_STATUS(0xC0000000 | 0x005e)
+#define NT_STATUS_NO_SUCH_LOGON_SESSION NT_STATUS(0xC0000000 | 0x005f)
+#define NT_STATUS_NO_SUCH_PRIVILEGE NT_STATUS(0xC0000000 | 0x0060)
+#define NT_STATUS_PRIVILEGE_NOT_HELD NT_STATUS(0xC0000000 | 0x0061)
+#define NT_STATUS_INVALID_ACCOUNT_NAME NT_STATUS(0xC0000000 | 0x0062)
+#define NT_STATUS_USER_EXISTS NT_STATUS(0xC0000000 | 0x0063)
+#define NT_STATUS_NO_SUCH_USER NT_STATUS(0xC0000000 | 0x0064)
+#define NT_STATUS_GROUP_EXISTS NT_STATUS(0xC0000000 | 0x0065)
+#define NT_STATUS_NO_SUCH_GROUP NT_STATUS(0xC0000000 | 0x0066)
+#define NT_STATUS_MEMBER_IN_GROUP NT_STATUS(0xC0000000 | 0x0067)
+#define NT_STATUS_MEMBER_NOT_IN_GROUP NT_STATUS(0xC0000000 | 0x0068)
+#define NT_STATUS_LAST_ADMIN NT_STATUS(0xC0000000 | 0x0069)
+#define NT_STATUS_WRONG_PASSWORD NT_STATUS(0xC0000000 | 0x006a)
+#define NT_STATUS_ILL_FORMED_PASSWORD NT_STATUS(0xC0000000 | 0x006b)
+#define NT_STATUS_PASSWORD_RESTRICTION NT_STATUS(0xC0000000 | 0x006c)
+#define NT_STATUS_LOGON_FAILURE NT_STATUS(0xC0000000 | 0x006d)
+#define NT_STATUS_ACCOUNT_RESTRICTION NT_STATUS(0xC0000000 | 0x006e)
+#define NT_STATUS_INVALID_LOGON_HOURS NT_STATUS(0xC0000000 | 0x006f)
+#define NT_STATUS_INVALID_WORKSTATION NT_STATUS(0xC0000000 | 0x0070)
+#define NT_STATUS_PASSWORD_EXPIRED NT_STATUS(0xC0000000 | 0x0071)
+#define NT_STATUS_ACCOUNT_DISABLED NT_STATUS(0xC0000000 | 0x0072)
+#define NT_STATUS_NONE_MAPPED NT_STATUS(0xC0000000 | 0x0073)
+#define NT_STATUS_TOO_MANY_LUIDS_REQUESTED NT_STATUS(0xC0000000 | 0x0074)
+#define NT_STATUS_LUIDS_EXHAUSTED NT_STATUS(0xC0000000 | 0x0075)
+#define NT_STATUS_INVALID_SUB_AUTHORITY NT_STATUS(0xC0000000 | 0x0076)
+#define NT_STATUS_INVALID_ACL NT_STATUS(0xC0000000 | 0x0077)
+#define NT_STATUS_INVALID_SID NT_STATUS(0xC0000000 | 0x0078)
+#define NT_STATUS_INVALID_SECURITY_DESCR NT_STATUS(0xC0000000 | 0x0079)
+#define NT_STATUS_PROCEDURE_NOT_FOUND NT_STATUS(0xC0000000 | 0x007a)
+#define NT_STATUS_INVALID_IMAGE_FORMAT NT_STATUS(0xC0000000 | 0x007b)
+#define NT_STATUS_NO_TOKEN NT_STATUS(0xC0000000 | 0x007c)
+#define NT_STATUS_BAD_INHERITANCE_ACL NT_STATUS(0xC0000000 | 0x007d)
+#define NT_STATUS_RANGE_NOT_LOCKED NT_STATUS(0xC0000000 | 0x007e)
+#define NT_STATUS_DISK_FULL NT_STATUS(0xC0000000 | 0x007f)
+#define NT_STATUS_SERVER_DISABLED NT_STATUS(0xC0000000 | 0x0080)
+#define NT_STATUS_SERVER_NOT_DISABLED NT_STATUS(0xC0000000 | 0x0081)
+#define NT_STATUS_TOO_MANY_GUIDS_REQUESTED NT_STATUS(0xC0000000 | 0x0082)
+#define NT_STATUS_GUIDS_EXHAUSTED NT_STATUS(0xC0000000 | 0x0083)
+#define NT_STATUS_INVALID_ID_AUTHORITY NT_STATUS(0xC0000000 | 0x0084)
+#define NT_STATUS_AGENTS_EXHAUSTED NT_STATUS(0xC0000000 | 0x0085)
+#define NT_STATUS_INVALID_VOLUME_LABEL NT_STATUS(0xC0000000 | 0x0086)
+#define NT_STATUS_SECTION_NOT_EXTENDED NT_STATUS(0xC0000000 | 0x0087)
+#define NT_STATUS_NOT_MAPPED_DATA NT_STATUS(0xC0000000 | 0x0088)
+#define NT_STATUS_RESOURCE_DATA_NOT_FOUND NT_STATUS(0xC0000000 | 0x0089)
+#define NT_STATUS_RESOURCE_TYPE_NOT_FOUND NT_STATUS(0xC0000000 | 0x008a)
+#define NT_STATUS_RESOURCE_NAME_NOT_FOUND NT_STATUS(0xC0000000 | 0x008b)
+#define NT_STATUS_ARRAY_BOUNDS_EXCEEDED NT_STATUS(0xC0000000 | 0x008c)
+#define NT_STATUS_FLOAT_DENORMAL_OPERAND NT_STATUS(0xC0000000 | 0x008d)
+#define NT_STATUS_FLOAT_DIVIDE_BY_ZERO NT_STATUS(0xC0000000 | 0x008e)
+#define NT_STATUS_FLOAT_INEXACT_RESULT NT_STATUS(0xC0000000 | 0x008f)
+#define NT_STATUS_FLOAT_INVALID_OPERATION NT_STATUS(0xC0000000 | 0x0090)
+#define NT_STATUS_FLOAT_OVERFLOW NT_STATUS(0xC0000000 | 0x0091)
+#define NT_STATUS_FLOAT_STACK_CHECK NT_STATUS(0xC0000000 | 0x0092)
+#define NT_STATUS_FLOAT_UNDERFLOW NT_STATUS(0xC0000000 | 0x0093)
+#define NT_STATUS_INTEGER_DIVIDE_BY_ZERO NT_STATUS(0xC0000000 | 0x0094)
+#define NT_STATUS_INTEGER_OVERFLOW NT_STATUS(0xC0000000 | 0x0095)
+#define NT_STATUS_PRIVILEGED_INSTRUCTION NT_STATUS(0xC0000000 | 0x0096)
+#define NT_STATUS_TOO_MANY_PAGING_FILES NT_STATUS(0xC0000000 | 0x0097)
+#define NT_STATUS_FILE_INVALID NT_STATUS(0xC0000000 | 0x0098)
+#define NT_STATUS_ALLOTTED_SPACE_EXCEEDED NT_STATUS(0xC0000000 | 0x0099)
+#define NT_STATUS_INSUFFICIENT_RESOURCES NT_STATUS(0xC0000000 | 0x009a)
+#define NT_STATUS_DFS_EXIT_PATH_FOUND NT_STATUS(0xC0000000 | 0x009b)
+#define NT_STATUS_DEVICE_DATA_ERROR NT_STATUS(0xC0000000 | 0x009c)
+#define NT_STATUS_DEVICE_NOT_CONNECTED NT_STATUS(0xC0000000 | 0x009d)
+#define NT_STATUS_DEVICE_POWER_FAILURE NT_STATUS(0xC0000000 | 0x009e)
+#define NT_STATUS_FREE_VM_NOT_AT_BASE NT_STATUS(0xC0000000 | 0x009f)
+#define NT_STATUS_MEMORY_NOT_ALLOCATED NT_STATUS(0xC0000000 | 0x00a0)
+#define NT_STATUS_WORKING_SET_QUOTA NT_STATUS(0xC0000000 | 0x00a1)
+#define NT_STATUS_MEDIA_WRITE_PROTECTED NT_STATUS(0xC0000000 | 0x00a2)
+#define NT_STATUS_DEVICE_NOT_READY NT_STATUS(0xC0000000 | 0x00a3)
+#define NT_STATUS_INVALID_GROUP_ATTRIBUTES NT_STATUS(0xC0000000 | 0x00a4)
+#define NT_STATUS_BAD_IMPERSONATION_LEVEL NT_STATUS(0xC0000000 | 0x00a5)
+#define NT_STATUS_CANT_OPEN_ANONYMOUS NT_STATUS(0xC0000000 | 0x00a6)
+#define NT_STATUS_BAD_VALIDATION_CLASS NT_STATUS(0xC0000000 | 0x00a7)
+#define NT_STATUS_BAD_TOKEN_TYPE NT_STATUS(0xC0000000 | 0x00a8)
+#define NT_STATUS_BAD_MASTER_BOOT_RECORD NT_STATUS(0xC0000000 | 0x00a9)
+#define NT_STATUS_INSTRUCTION_MISALIGNMENT NT_STATUS(0xC0000000 | 0x00aa)
+#define NT_STATUS_INSTANCE_NOT_AVAILABLE NT_STATUS(0xC0000000 | 0x00ab)
+#define NT_STATUS_PIPE_NOT_AVAILABLE NT_STATUS(0xC0000000 | 0x00ac)
+#define NT_STATUS_INVALID_PIPE_STATE NT_STATUS(0xC0000000 | 0x00ad)
+#define NT_STATUS_PIPE_BUSY NT_STATUS(0xC0000000 | 0x00ae)
+#define NT_STATUS_ILLEGAL_FUNCTION NT_STATUS(0xC0000000 | 0x00af)
+#define NT_STATUS_PIPE_DISCONNECTED NT_STATUS(0xC0000000 | 0x00b0)
+#define NT_STATUS_PIPE_CLOSING NT_STATUS(0xC0000000 | 0x00b1)
+#define NT_STATUS_PIPE_CONNECTED NT_STATUS(0xC0000000 | 0x00b2)
+#define NT_STATUS_PIPE_LISTENING NT_STATUS(0xC0000000 | 0x00b3)
+#define NT_STATUS_INVALID_READ_MODE NT_STATUS(0xC0000000 | 0x00b4)
+#define NT_STATUS_IO_TIMEOUT NT_STATUS(0xC0000000 | 0x00b5)
+#define NT_STATUS_FILE_FORCED_CLOSED NT_STATUS(0xC0000000 | 0x00b6)
+#define NT_STATUS_PROFILING_NOT_STARTED NT_STATUS(0xC0000000 | 0x00b7)
+#define NT_STATUS_PROFILING_NOT_STOPPED NT_STATUS(0xC0000000 | 0x00b8)
+#define NT_STATUS_COULD_NOT_INTERPRET NT_STATUS(0xC0000000 | 0x00b9)
+#define NT_STATUS_FILE_IS_A_DIRECTORY NT_STATUS(0xC0000000 | 0x00ba)
+#define NT_STATUS_NOT_SUPPORTED NT_STATUS(0xC0000000 | 0x00bb)
+#define NT_STATUS_REMOTE_NOT_LISTENING NT_STATUS(0xC0000000 | 0x00bc)
+#define NT_STATUS_DUPLICATE_NAME NT_STATUS(0xC0000000 | 0x00bd)
+#define NT_STATUS_BAD_NETWORK_PATH NT_STATUS(0xC0000000 | 0x00be)
+#define NT_STATUS_NETWORK_BUSY NT_STATUS(0xC0000000 | 0x00bf)
+#define NT_STATUS_DEVICE_DOES_NOT_EXIST NT_STATUS(0xC0000000 | 0x00c0)
+#define NT_STATUS_TOO_MANY_COMMANDS NT_STATUS(0xC0000000 | 0x00c1)
+#define NT_STATUS_ADAPTER_HARDWARE_ERROR NT_STATUS(0xC0000000 | 0x00c2)
+#define NT_STATUS_INVALID_NETWORK_RESPONSE NT_STATUS(0xC0000000 | 0x00c3)
+#define NT_STATUS_UNEXPECTED_NETWORK_ERROR NT_STATUS(0xC0000000 | 0x00c4)
+#define NT_STATUS_BAD_REMOTE_ADAPTER NT_STATUS(0xC0000000 | 0x00c5)
+#define NT_STATUS_PRINT_QUEUE_FULL NT_STATUS(0xC0000000 | 0x00c6)
+#define NT_STATUS_NO_SPOOL_SPACE NT_STATUS(0xC0000000 | 0x00c7)
+#define NT_STATUS_PRINT_CANCELLED NT_STATUS(0xC0000000 | 0x00c8)
+#define NT_STATUS_NETWORK_NAME_DELETED NT_STATUS(0xC0000000 | 0x00c9)
+#define NT_STATUS_NETWORK_ACCESS_DENIED NT_STATUS(0xC0000000 | 0x00ca)
+#define NT_STATUS_BAD_DEVICE_TYPE NT_STATUS(0xC0000000 | 0x00cb)
+#define NT_STATUS_BAD_NETWORK_NAME NT_STATUS(0xC0000000 | 0x00cc)
+#define NT_STATUS_TOO_MANY_NAMES NT_STATUS(0xC0000000 | 0x00cd)
+#define NT_STATUS_TOO_MANY_SESSIONS NT_STATUS(0xC0000000 | 0x00ce)
+#define NT_STATUS_SHARING_PAUSED NT_STATUS(0xC0000000 | 0x00cf)
+#define NT_STATUS_REQUEST_NOT_ACCEPTED NT_STATUS(0xC0000000 | 0x00d0)
+#define NT_STATUS_REDIRECTOR_PAUSED NT_STATUS(0xC0000000 | 0x00d1)
+#define NT_STATUS_NET_WRITE_FAULT NT_STATUS(0xC0000000 | 0x00d2)
+#define NT_STATUS_PROFILING_AT_LIMIT NT_STATUS(0xC0000000 | 0x00d3)
+#define NT_STATUS_NOT_SAME_DEVICE NT_STATUS(0xC0000000 | 0x00d4)
+#define NT_STATUS_FILE_RENAMED NT_STATUS(0xC0000000 | 0x00d5)
+#define NT_STATUS_VIRTUAL_CIRCUIT_CLOSED NT_STATUS(0xC0000000 | 0x00d6)
+#define NT_STATUS_NO_SECURITY_ON_OBJECT NT_STATUS(0xC0000000 | 0x00d7)
+#define NT_STATUS_CANT_WAIT NT_STATUS(0xC0000000 | 0x00d8)
+#define NT_STATUS_PIPE_EMPTY NT_STATUS(0xC0000000 | 0x00d9)
+#define NT_STATUS_CANT_ACCESS_DOMAIN_INFO NT_STATUS(0xC0000000 | 0x00da)
+#define NT_STATUS_CANT_TERMINATE_SELF NT_STATUS(0xC0000000 | 0x00db)
+#define NT_STATUS_INVALID_SERVER_STATE NT_STATUS(0xC0000000 | 0x00dc)
+#define NT_STATUS_INVALID_DOMAIN_STATE NT_STATUS(0xC0000000 | 0x00dd)
+#define NT_STATUS_INVALID_DOMAIN_ROLE NT_STATUS(0xC0000000 | 0x00de)
+#define NT_STATUS_NO_SUCH_DOMAIN NT_STATUS(0xC0000000 | 0x00df)
+#define NT_STATUS_DOMAIN_EXISTS NT_STATUS(0xC0000000 | 0x00e0)
+#define NT_STATUS_DOMAIN_LIMIT_EXCEEDED NT_STATUS(0xC0000000 | 0x00e1)
+#define NT_STATUS_OPLOCK_NOT_GRANTED NT_STATUS(0xC0000000 | 0x00e2)
+#define NT_STATUS_INVALID_OPLOCK_PROTOCOL NT_STATUS(0xC0000000 | 0x00e3)
+#define NT_STATUS_INTERNAL_DB_CORRUPTION NT_STATUS(0xC0000000 | 0x00e4)
+#define NT_STATUS_INTERNAL_ERROR NT_STATUS(0xC0000000 | 0x00e5)
+#define NT_STATUS_GENERIC_NOT_MAPPED NT_STATUS(0xC0000000 | 0x00e6)
+#define NT_STATUS_BAD_DESCRIPTOR_FORMAT NT_STATUS(0xC0000000 | 0x00e7)
+#define NT_STATUS_INVALID_USER_BUFFER NT_STATUS(0xC0000000 | 0x00e8)
+#define NT_STATUS_UNEXPECTED_IO_ERROR NT_STATUS(0xC0000000 | 0x00e9)
+#define NT_STATUS_UNEXPECTED_MM_CREATE_ERR NT_STATUS(0xC0000000 | 0x00ea)
+#define NT_STATUS_UNEXPECTED_MM_MAP_ERROR NT_STATUS(0xC0000000 | 0x00eb)
+#define NT_STATUS_UNEXPECTED_MM_EXTEND_ERR NT_STATUS(0xC0000000 | 0x00ec)
+#define NT_STATUS_NOT_LOGON_PROCESS NT_STATUS(0xC0000000 | 0x00ed)
+#define NT_STATUS_LOGON_SESSION_EXISTS NT_STATUS(0xC0000000 | 0x00ee)
+#define NT_STATUS_INVALID_PARAMETER_1 NT_STATUS(0xC0000000 | 0x00ef)
+#define NT_STATUS_INVALID_PARAMETER_2 NT_STATUS(0xC0000000 | 0x00f0)
+#define NT_STATUS_INVALID_PARAMETER_3 NT_STATUS(0xC0000000 | 0x00f1)
+#define NT_STATUS_INVALID_PARAMETER_4 NT_STATUS(0xC0000000 | 0x00f2)
+#define NT_STATUS_INVALID_PARAMETER_5 NT_STATUS(0xC0000000 | 0x00f3)
+#define NT_STATUS_INVALID_PARAMETER_6 NT_STATUS(0xC0000000 | 0x00f4)
+#define NT_STATUS_INVALID_PARAMETER_7 NT_STATUS(0xC0000000 | 0x00f5)
+#define NT_STATUS_INVALID_PARAMETER_8 NT_STATUS(0xC0000000 | 0x00f6)
+#define NT_STATUS_INVALID_PARAMETER_9 NT_STATUS(0xC0000000 | 0x00f7)
+#define NT_STATUS_INVALID_PARAMETER_10 NT_STATUS(0xC0000000 | 0x00f8)
+#define NT_STATUS_INVALID_PARAMETER_11 NT_STATUS(0xC0000000 | 0x00f9)
+#define NT_STATUS_INVALID_PARAMETER_12 NT_STATUS(0xC0000000 | 0x00fa)
+#define NT_STATUS_REDIRECTOR_NOT_STARTED NT_STATUS(0xC0000000 | 0x00fb)
+#define NT_STATUS_REDIRECTOR_STARTED NT_STATUS(0xC0000000 | 0x00fc)
+#define NT_STATUS_STACK_OVERFLOW NT_STATUS(0xC0000000 | 0x00fd)
+#define NT_STATUS_NO_SUCH_PACKAGE NT_STATUS(0xC0000000 | 0x00fe)
+#define NT_STATUS_BAD_FUNCTION_TABLE NT_STATUS(0xC0000000 | 0x00ff)
+#define NT_STATUS_DIRECTORY_NOT_EMPTY NT_STATUS(0xC0000000 | 0x0101)
+#define NT_STATUS_FILE_CORRUPT_ERROR NT_STATUS(0xC0000000 | 0x0102)
+#define NT_STATUS_NOT_A_DIRECTORY NT_STATUS(0xC0000000 | 0x0103)
+#define NT_STATUS_BAD_LOGON_SESSION_STATE NT_STATUS(0xC0000000 | 0x0104)
+#define NT_STATUS_LOGON_SESSION_COLLISION NT_STATUS(0xC0000000 | 0x0105)
+#define NT_STATUS_NAME_TOO_LONG NT_STATUS(0xC0000000 | 0x0106)
+#define NT_STATUS_FILES_OPEN NT_STATUS(0xC0000000 | 0x0107)
+#define NT_STATUS_CONNECTION_IN_USE NT_STATUS(0xC0000000 | 0x0108)
+#define NT_STATUS_MESSAGE_NOT_FOUND NT_STATUS(0xC0000000 | 0x0109)
+#define NT_STATUS_PROCESS_IS_TERMINATING NT_STATUS(0xC0000000 | 0x010a)
+#define NT_STATUS_INVALID_LOGON_TYPE NT_STATUS(0xC0000000 | 0x010b)
+#define NT_STATUS_NO_GUID_TRANSLATION NT_STATUS(0xC0000000 | 0x010c)
+#define NT_STATUS_CANNOT_IMPERSONATE NT_STATUS(0xC0000000 | 0x010d)
+#define NT_STATUS_IMAGE_ALREADY_LOADED NT_STATUS(0xC0000000 | 0x010e)
+#define NT_STATUS_ABIOS_NOT_PRESENT NT_STATUS(0xC0000000 | 0x010f)
+#define NT_STATUS_ABIOS_LID_NOT_EXIST NT_STATUS(0xC0000000 | 0x0110)
+#define NT_STATUS_ABIOS_LID_ALREADY_OWNED NT_STATUS(0xC0000000 | 0x0111)
+#define NT_STATUS_ABIOS_NOT_LID_OWNER NT_STATUS(0xC0000000 | 0x0112)
+#define NT_STATUS_ABIOS_INVALID_COMMAND NT_STATUS(0xC0000000 | 0x0113)
+#define NT_STATUS_ABIOS_INVALID_LID NT_STATUS(0xC0000000 | 0x0114)
+#define NT_STATUS_ABIOS_SELECTOR_NOT_AVAILABLE NT_STATUS(0xC0000000 | 0x0115)
+#define NT_STATUS_ABIOS_INVALID_SELECTOR NT_STATUS(0xC0000000 | 0x0116)
+#define NT_STATUS_NO_LDT NT_STATUS(0xC0000000 | 0x0117)
+#define NT_STATUS_INVALID_LDT_SIZE NT_STATUS(0xC0000000 | 0x0118)
+#define NT_STATUS_INVALID_LDT_OFFSET NT_STATUS(0xC0000000 | 0x0119)
+#define NT_STATUS_INVALID_LDT_DESCRIPTOR NT_STATUS(0xC0000000 | 0x011a)
+#define NT_STATUS_INVALID_IMAGE_NE_FORMAT NT_STATUS(0xC0000000 | 0x011b)
+#define NT_STATUS_RXACT_INVALID_STATE NT_STATUS(0xC0000000 | 0x011c)
+#define NT_STATUS_RXACT_COMMIT_FAILURE NT_STATUS(0xC0000000 | 0x011d)
+#define NT_STATUS_MAPPED_FILE_SIZE_ZERO NT_STATUS(0xC0000000 | 0x011e)
+#define NT_STATUS_TOO_MANY_OPENED_FILES NT_STATUS(0xC0000000 | 0x011f)
+#define NT_STATUS_CANCELLED NT_STATUS(0xC0000000 | 0x0120)
+#define NT_STATUS_CANNOT_DELETE NT_STATUS(0xC0000000 | 0x0121)
+#define NT_STATUS_INVALID_COMPUTER_NAME NT_STATUS(0xC0000000 | 0x0122)
+#define NT_STATUS_FILE_DELETED NT_STATUS(0xC0000000 | 0x0123)
+#define NT_STATUS_SPECIAL_ACCOUNT NT_STATUS(0xC0000000 | 0x0124)
+#define NT_STATUS_SPECIAL_GROUP NT_STATUS(0xC0000000 | 0x0125)
+#define NT_STATUS_SPECIAL_USER NT_STATUS(0xC0000000 | 0x0126)
+#define NT_STATUS_MEMBERS_PRIMARY_GROUP NT_STATUS(0xC0000000 | 0x0127)
+#define NT_STATUS_FILE_CLOSED NT_STATUS(0xC0000000 | 0x0128)
+#define NT_STATUS_TOO_MANY_THREADS NT_STATUS(0xC0000000 | 0x0129)
+#define NT_STATUS_THREAD_NOT_IN_PROCESS NT_STATUS(0xC0000000 | 0x012a)
+#define NT_STATUS_TOKEN_ALREADY_IN_USE NT_STATUS(0xC0000000 | 0x012b)
+#define NT_STATUS_PAGEFILE_QUOTA_EXCEEDED NT_STATUS(0xC0000000 | 0x012c)
+#define NT_STATUS_COMMITMENT_LIMIT NT_STATUS(0xC0000000 | 0x012d)
+#define NT_STATUS_INVALID_IMAGE_LE_FORMAT NT_STATUS(0xC0000000 | 0x012e)
+#define NT_STATUS_INVALID_IMAGE_NOT_MZ NT_STATUS(0xC0000000 | 0x012f)
+#define NT_STATUS_INVALID_IMAGE_PROTECT NT_STATUS(0xC0000000 | 0x0130)
+#define NT_STATUS_INVALID_IMAGE_WIN_16 NT_STATUS(0xC0000000 | 0x0131)
+#define NT_STATUS_LOGON_SERVER_CONFLICT NT_STATUS(0xC0000000 | 0x0132)
+#define NT_STATUS_TIME_DIFFERENCE_AT_DC NT_STATUS(0xC0000000 | 0x0133)
+#define NT_STATUS_SYNCHRONIZATION_REQUIRED NT_STATUS(0xC0000000 | 0x0134)
+#define NT_STATUS_DLL_NOT_FOUND NT_STATUS(0xC0000000 | 0x0135)
+#define NT_STATUS_OPEN_FAILED NT_STATUS(0xC0000000 | 0x0136)
+#define NT_STATUS_IO_PRIVILEGE_FAILED NT_STATUS(0xC0000000 | 0x0137)
+#define NT_STATUS_ORDINAL_NOT_FOUND NT_STATUS(0xC0000000 | 0x0138)
+#define NT_STATUS_ENTRYPOINT_NOT_FOUND NT_STATUS(0xC0000000 | 0x0139)
+#define NT_STATUS_CONTROL_C_EXIT NT_STATUS(0xC0000000 | 0x013a)
+#define NT_STATUS_LOCAL_DISCONNECT NT_STATUS(0xC0000000 | 0x013b)
+#define NT_STATUS_REMOTE_DISCONNECT NT_STATUS(0xC0000000 | 0x013c)
+#define NT_STATUS_REMOTE_RESOURCES NT_STATUS(0xC0000000 | 0x013d)
+#define NT_STATUS_LINK_FAILED NT_STATUS(0xC0000000 | 0x013e)
+#define NT_STATUS_LINK_TIMEOUT NT_STATUS(0xC0000000 | 0x013f)
+#define NT_STATUS_INVALID_CONNECTION NT_STATUS(0xC0000000 | 0x0140)
+#define NT_STATUS_INVALID_ADDRESS NT_STATUS(0xC0000000 | 0x0141)
+#define NT_STATUS_DLL_INIT_FAILED NT_STATUS(0xC0000000 | 0x0142)
+#define NT_STATUS_MISSING_SYSTEMFILE NT_STATUS(0xC0000000 | 0x0143)
+#define NT_STATUS_UNHANDLED_EXCEPTION NT_STATUS(0xC0000000 | 0x0144)
+#define NT_STATUS_APP_INIT_FAILURE NT_STATUS(0xC0000000 | 0x0145)
+#define NT_STATUS_PAGEFILE_CREATE_FAILED NT_STATUS(0xC0000000 | 0x0146)
+#define NT_STATUS_NO_PAGEFILE NT_STATUS(0xC0000000 | 0x0147)
+#define NT_STATUS_INVALID_LEVEL NT_STATUS(0xC0000000 | 0x0148)
+#define NT_STATUS_WRONG_PASSWORD_CORE NT_STATUS(0xC0000000 | 0x0149)
+#define NT_STATUS_ILLEGAL_FLOAT_CONTEXT NT_STATUS(0xC0000000 | 0x014a)
+#define NT_STATUS_PIPE_BROKEN NT_STATUS(0xC0000000 | 0x014b)
+#define NT_STATUS_REGISTRY_CORRUPT NT_STATUS(0xC0000000 | 0x014c)
+#define NT_STATUS_REGISTRY_IO_FAILED NT_STATUS(0xC0000000 | 0x014d)
+#define NT_STATUS_NO_EVENT_PAIR NT_STATUS(0xC0000000 | 0x014e)
+#define NT_STATUS_UNRECOGNIZED_VOLUME NT_STATUS(0xC0000000 | 0x014f)
+#define NT_STATUS_SERIAL_NO_DEVICE_INITED NT_STATUS(0xC0000000 | 0x0150)
+#define NT_STATUS_NO_SUCH_ALIAS NT_STATUS(0xC0000000 | 0x0151)
+#define NT_STATUS_MEMBER_NOT_IN_ALIAS NT_STATUS(0xC0000000 | 0x0152)
+#define NT_STATUS_MEMBER_IN_ALIAS NT_STATUS(0xC0000000 | 0x0153)
+#define NT_STATUS_ALIAS_EXISTS NT_STATUS(0xC0000000 | 0x0154)
+#define NT_STATUS_LOGON_NOT_GRANTED NT_STATUS(0xC0000000 | 0x0155)
+#define NT_STATUS_TOO_MANY_SECRETS NT_STATUS(0xC0000000 | 0x0156)
+#define NT_STATUS_SECRET_TOO_LONG NT_STATUS(0xC0000000 | 0x0157)
+#define NT_STATUS_INTERNAL_DB_ERROR NT_STATUS(0xC0000000 | 0x0158)
+#define NT_STATUS_FULLSCREEN_MODE NT_STATUS(0xC0000000 | 0x0159)
+#define NT_STATUS_TOO_MANY_CONTEXT_IDS NT_STATUS(0xC0000000 | 0x015a)
+#define NT_STATUS_LOGON_TYPE_NOT_GRANTED NT_STATUS(0xC0000000 | 0x015b)
+#define NT_STATUS_NOT_REGISTRY_FILE NT_STATUS(0xC0000000 | 0x015c)
+#define NT_STATUS_NT_CROSS_ENCRYPTION_REQUIRED NT_STATUS(0xC0000000 | 0x015d)
+#define NT_STATUS_DOMAIN_CTRLR_CONFIG_ERROR NT_STATUS(0xC0000000 | 0x015e)
+#define NT_STATUS_FT_MISSING_MEMBER NT_STATUS(0xC0000000 | 0x015f)
+#define NT_STATUS_ILL_FORMED_SERVICE_ENTRY NT_STATUS(0xC0000000 | 0x0160)
+#define NT_STATUS_ILLEGAL_CHARACTER NT_STATUS(0xC0000000 | 0x0161)
+#define NT_STATUS_UNMAPPABLE_CHARACTER NT_STATUS(0xC0000000 | 0x0162)
+#define NT_STATUS_UNDEFINED_CHARACTER NT_STATUS(0xC0000000 | 0x0163)
+#define NT_STATUS_FLOPPY_VOLUME NT_STATUS(0xC0000000 | 0x0164)
+#define NT_STATUS_FLOPPY_ID_MARK_NOT_FOUND NT_STATUS(0xC0000000 | 0x0165)
+#define NT_STATUS_FLOPPY_WRONG_CYLINDER NT_STATUS(0xC0000000 | 0x0166)
+#define NT_STATUS_FLOPPY_UNKNOWN_ERROR NT_STATUS(0xC0000000 | 0x0167)
+#define NT_STATUS_FLOPPY_BAD_REGISTERS NT_STATUS(0xC0000000 | 0x0168)
+#define NT_STATUS_DISK_RECALIBRATE_FAILED NT_STATUS(0xC0000000 | 0x0169)
+#define NT_STATUS_DISK_OPERATION_FAILED NT_STATUS(0xC0000000 | 0x016a)
+#define NT_STATUS_DISK_RESET_FAILED NT_STATUS(0xC0000000 | 0x016b)
+#define NT_STATUS_SHARED_IRQ_BUSY NT_STATUS(0xC0000000 | 0x016c)
+#define NT_STATUS_FT_ORPHANING NT_STATUS(0xC0000000 | 0x016d)
+#define NT_STATUS_PARTITION_FAILURE NT_STATUS(0xC0000000 | 0x0172)
+#define NT_STATUS_INVALID_BLOCK_LENGTH NT_STATUS(0xC0000000 | 0x0173)
+#define NT_STATUS_DEVICE_NOT_PARTITIONED NT_STATUS(0xC0000000 | 0x0174)
+#define NT_STATUS_UNABLE_TO_LOCK_MEDIA NT_STATUS(0xC0000000 | 0x0175)
+#define NT_STATUS_UNABLE_TO_UNLOAD_MEDIA NT_STATUS(0xC0000000 | 0x0176)
+#define NT_STATUS_EOM_OVERFLOW NT_STATUS(0xC0000000 | 0x0177)
+#define NT_STATUS_NO_MEDIA NT_STATUS(0xC0000000 | 0x0178)
+#define NT_STATUS_NO_SUCH_MEMBER NT_STATUS(0xC0000000 | 0x017a)
+#define NT_STATUS_INVALID_MEMBER NT_STATUS(0xC0000000 | 0x017b)
+#define NT_STATUS_KEY_DELETED NT_STATUS(0xC0000000 | 0x017c)
+#define NT_STATUS_NO_LOG_SPACE NT_STATUS(0xC0000000 | 0x017d)
+#define NT_STATUS_TOO_MANY_SIDS NT_STATUS(0xC0000000 | 0x017e)
+#define NT_STATUS_LM_CROSS_ENCRYPTION_REQUIRED NT_STATUS(0xC0000000 | 0x017f)
+#define NT_STATUS_KEY_HAS_CHILDREN NT_STATUS(0xC0000000 | 0x0180)
+#define NT_STATUS_CHILD_MUST_BE_VOLATILE NT_STATUS(0xC0000000 | 0x0181)
+#define NT_STATUS_DEVICE_CONFIGURATION_ERROR NT_STATUS(0xC0000000 | 0x0182)
+#define NT_STATUS_DRIVER_INTERNAL_ERROR NT_STATUS(0xC0000000 | 0x0183)
+#define NT_STATUS_INVALID_DEVICE_STATE NT_STATUS(0xC0000000 | 0x0184)
+#define NT_STATUS_IO_DEVICE_ERROR NT_STATUS(0xC0000000 | 0x0185)
+#define NT_STATUS_DEVICE_PROTOCOL_ERROR NT_STATUS(0xC0000000 | 0x0186)
+#define NT_STATUS_BACKUP_CONTROLLER NT_STATUS(0xC0000000 | 0x0187)
+#define NT_STATUS_LOG_FILE_FULL NT_STATUS(0xC0000000 | 0x0188)
+#define NT_STATUS_TOO_LATE NT_STATUS(0xC0000000 | 0x0189)
+#define NT_STATUS_NO_TRUST_LSA_SECRET NT_STATUS(0xC0000000 | 0x018a)
+#define NT_STATUS_NO_TRUST_SAM_ACCOUNT NT_STATUS(0xC0000000 | 0x018b)
+#define NT_STATUS_TRUSTED_DOMAIN_FAILURE NT_STATUS(0xC0000000 | 0x018c)
+#define NT_STATUS_TRUSTED_RELATIONSHIP_FAILURE NT_STATUS(0xC0000000 | 0x018d)
+#define NT_STATUS_EVENTLOG_FILE_CORRUPT NT_STATUS(0xC0000000 | 0x018e)
+#define NT_STATUS_EVENTLOG_CANT_START NT_STATUS(0xC0000000 | 0x018f)
+#define NT_STATUS_TRUST_FAILURE NT_STATUS(0xC0000000 | 0x0190)
+#define NT_STATUS_MUTANT_LIMIT_EXCEEDED NT_STATUS(0xC0000000 | 0x0191)
+#define NT_STATUS_NETLOGON_NOT_STARTED NT_STATUS(0xC0000000 | 0x0192)
+#define NT_STATUS_ACCOUNT_EXPIRED NT_STATUS(0xC0000000 | 0x0193)
+#define NT_STATUS_POSSIBLE_DEADLOCK NT_STATUS(0xC0000000 | 0x0194)
+#define NT_STATUS_NETWORK_CREDENTIAL_CONFLICT NT_STATUS(0xC0000000 | 0x0195)
+#define NT_STATUS_REMOTE_SESSION_LIMIT NT_STATUS(0xC0000000 | 0x0196)
+#define NT_STATUS_EVENTLOG_FILE_CHANGED NT_STATUS(0xC0000000 | 0x0197)
+#define NT_STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT NT_STATUS(0xC0000000 | 0x0198)
+#define NT_STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT NT_STATUS(0xC0000000 | 0x0199)
+#define NT_STATUS_NOLOGON_SERVER_TRUST_ACCOUNT NT_STATUS(0xC0000000 | 0x019a)
+#define NT_STATUS_DOMAIN_TRUST_INCONSISTENT NT_STATUS(0xC0000000 | 0x019b)
+#define NT_STATUS_FS_DRIVER_REQUIRED NT_STATUS(0xC0000000 | 0x019c)
+#define NT_STATUS_NO_USER_SESSION_KEY NT_STATUS(0xC0000000 | 0x0202)
+#define NT_STATUS_USER_SESSION_DELETED NT_STATUS(0xC0000000 | 0x0203)
+#define NT_STATUS_RESOURCE_LANG_NOT_FOUND NT_STATUS(0xC0000000 | 0x0204)
+#define NT_STATUS_INSUFF_SERVER_RESOURCES NT_STATUS(0xC0000000 | 0x0205)
+#define NT_STATUS_INVALID_BUFFER_SIZE NT_STATUS(0xC0000000 | 0x0206)
+#define NT_STATUS_INVALID_ADDRESS_COMPONENT NT_STATUS(0xC0000000 | 0x0207)
+#define NT_STATUS_INVALID_ADDRESS_WILDCARD NT_STATUS(0xC0000000 | 0x0208)
+#define NT_STATUS_TOO_MANY_ADDRESSES NT_STATUS(0xC0000000 | 0x0209)
+#define NT_STATUS_ADDRESS_ALREADY_EXISTS NT_STATUS(0xC0000000 | 0x020a)
+#define NT_STATUS_ADDRESS_CLOSED NT_STATUS(0xC0000000 | 0x020b)
+#define NT_STATUS_CONNECTION_DISCONNECTED NT_STATUS(0xC0000000 | 0x020c)
+#define NT_STATUS_CONNECTION_RESET NT_STATUS(0xC0000000 | 0x020d)
+#define NT_STATUS_TOO_MANY_NODES NT_STATUS(0xC0000000 | 0x020e)
+#define NT_STATUS_TRANSACTION_ABORTED NT_STATUS(0xC0000000 | 0x020f)
+#define NT_STATUS_TRANSACTION_TIMED_OUT NT_STATUS(0xC0000000 | 0x0210)
+#define NT_STATUS_TRANSACTION_NO_RELEASE NT_STATUS(0xC0000000 | 0x0211)
+#define NT_STATUS_TRANSACTION_NO_MATCH NT_STATUS(0xC0000000 | 0x0212)
+#define NT_STATUS_TRANSACTION_RESPONDED NT_STATUS(0xC0000000 | 0x0213)
+#define NT_STATUS_TRANSACTION_INVALID_ID NT_STATUS(0xC0000000 | 0x0214)
+#define NT_STATUS_TRANSACTION_INVALID_TYPE NT_STATUS(0xC0000000 | 0x0215)
+#define NT_STATUS_NOT_SERVER_SESSION NT_STATUS(0xC0000000 | 0x0216)
+#define NT_STATUS_NOT_CLIENT_SESSION NT_STATUS(0xC0000000 | 0x0217)
+#define NT_STATUS_CANNOT_LOAD_REGISTRY_FILE NT_STATUS(0xC0000000 | 0x0218)
+#define NT_STATUS_DEBUG_ATTACH_FAILED NT_STATUS(0xC0000000 | 0x0219)
+#define NT_STATUS_SYSTEM_PROCESS_TERMINATED NT_STATUS(0xC0000000 | 0x021a)
+#define NT_STATUS_DATA_NOT_ACCEPTED NT_STATUS(0xC0000000 | 0x021b)
+#define NT_STATUS_NO_BROWSER_SERVERS_FOUND NT_STATUS(0xC0000000 | 0x021c)
+#define NT_STATUS_VDM_HARD_ERROR NT_STATUS(0xC0000000 | 0x021d)
+#define NT_STATUS_DRIVER_CANCEL_TIMEOUT NT_STATUS(0xC0000000 | 0x021e)
+#define NT_STATUS_REPLY_MESSAGE_MISMATCH NT_STATUS(0xC0000000 | 0x021f)
+#define NT_STATUS_MAPPED_ALIGNMENT NT_STATUS(0xC0000000 | 0x0220)
+#define NT_STATUS_IMAGE_CHECKSUM_MISMATCH NT_STATUS(0xC0000000 | 0x0221)
+#define NT_STATUS_LOST_WRITEBEHIND_DATA NT_STATUS(0xC0000000 | 0x0222)
+#define NT_STATUS_CLIENT_SERVER_PARAMETERS_INVALID NT_STATUS(0xC0000000 | 0x0223)
+#define NT_STATUS_PASSWORD_MUST_CHANGE NT_STATUS(0xC0000000 | 0x0224)
+#define NT_STATUS_NOT_FOUND NT_STATUS(0xC0000000 | 0x0225)
+#define NT_STATUS_NOT_TINY_STREAM NT_STATUS(0xC0000000 | 0x0226)
+#define NT_STATUS_RECOVERY_FAILURE NT_STATUS(0xC0000000 | 0x0227)
+#define NT_STATUS_STACK_OVERFLOW_READ NT_STATUS(0xC0000000 | 0x0228)
+#define NT_STATUS_FAIL_CHECK NT_STATUS(0xC0000000 | 0x0229)
+#define NT_STATUS_DUPLICATE_OBJECTID NT_STATUS(0xC0000000 | 0x022a)
+#define NT_STATUS_OBJECTID_EXISTS NT_STATUS(0xC0000000 | 0x022b)
+#define NT_STATUS_CONVERT_TO_LARGE NT_STATUS(0xC0000000 | 0x022c)
+#define NT_STATUS_RETRY NT_STATUS(0xC0000000 | 0x022d)
+#define NT_STATUS_FOUND_OUT_OF_SCOPE NT_STATUS(0xC0000000 | 0x022e)
+#define NT_STATUS_ALLOCATE_BUCKET NT_STATUS(0xC0000000 | 0x022f)
+#define NT_STATUS_PROPSET_NOT_FOUND NT_STATUS(0xC0000000 | 0x0230)
+#define NT_STATUS_MARSHALL_OVERFLOW NT_STATUS(0xC0000000 | 0x0231)
+#define NT_STATUS_INVALID_VARIANT NT_STATUS(0xC0000000 | 0x0232)
+#define NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND NT_STATUS(0xC0000000 | 0x0233)
+#define NT_STATUS_ACCOUNT_LOCKED_OUT NT_STATUS(0xC0000000 | 0x0234)
+#define NT_STATUS_HANDLE_NOT_CLOSABLE NT_STATUS(0xC0000000 | 0x0235)
+#define NT_STATUS_CONNECTION_REFUSED NT_STATUS(0xC0000000 | 0x0236)
+#define NT_STATUS_GRACEFUL_DISCONNECT NT_STATUS(0xC0000000 | 0x0237)
+#define NT_STATUS_ADDRESS_ALREADY_ASSOCIATED NT_STATUS(0xC0000000 | 0x0238)
+#define NT_STATUS_ADDRESS_NOT_ASSOCIATED NT_STATUS(0xC0000000 | 0x0239)
+#define NT_STATUS_CONNECTION_INVALID NT_STATUS(0xC0000000 | 0x023a)
+#define NT_STATUS_CONNECTION_ACTIVE NT_STATUS(0xC0000000 | 0x023b)
+#define NT_STATUS_NETWORK_UNREACHABLE NT_STATUS(0xC0000000 | 0x023c)
+#define NT_STATUS_HOST_UNREACHABLE NT_STATUS(0xC0000000 | 0x023d)
+#define NT_STATUS_PROTOCOL_UNREACHABLE NT_STATUS(0xC0000000 | 0x023e)
+#define NT_STATUS_PORT_UNREACHABLE NT_STATUS(0xC0000000 | 0x023f)
+#define NT_STATUS_REQUEST_ABORTED NT_STATUS(0xC0000000 | 0x0240)
+#define NT_STATUS_CONNECTION_ABORTED NT_STATUS(0xC0000000 | 0x0241)
+#define NT_STATUS_BAD_COMPRESSION_BUFFER NT_STATUS(0xC0000000 | 0x0242)
+#define NT_STATUS_USER_MAPPED_FILE NT_STATUS(0xC0000000 | 0x0243)
+#define NT_STATUS_AUDIT_FAILED NT_STATUS(0xC0000000 | 0x0244)
+#define NT_STATUS_TIMER_RESOLUTION_NOT_SET NT_STATUS(0xC0000000 | 0x0245)
+#define NT_STATUS_CONNECTION_COUNT_LIMIT NT_STATUS(0xC0000000 | 0x0246)
+#define NT_STATUS_LOGIN_TIME_RESTRICTION NT_STATUS(0xC0000000 | 0x0247)
+#define NT_STATUS_LOGIN_WKSTA_RESTRICTION NT_STATUS(0xC0000000 | 0x0248)
+#define NT_STATUS_IMAGE_MP_UP_MISMATCH NT_STATUS(0xC0000000 | 0x0249)
+#define NT_STATUS_INSUFFICIENT_LOGON_INFO NT_STATUS(0xC0000000 | 0x0250)
+#define NT_STATUS_BAD_DLL_ENTRYPOINT NT_STATUS(0xC0000000 | 0x0251)
+#define NT_STATUS_BAD_SERVICE_ENTRYPOINT NT_STATUS(0xC0000000 | 0x0252)
+#define NT_STATUS_LPC_REPLY_LOST NT_STATUS(0xC0000000 | 0x0253)
+#define NT_STATUS_IP_ADDRESS_CONFLICT1 NT_STATUS(0xC0000000 | 0x0254)
+#define NT_STATUS_IP_ADDRESS_CONFLICT2 NT_STATUS(0xC0000000 | 0x0255)
+#define NT_STATUS_REGISTRY_QUOTA_LIMIT NT_STATUS(0xC0000000 | 0x0256)
+#define NT_STATUS_PATH_NOT_COVERED NT_STATUS(0xC0000000 | 0x0257)
+#define NT_STATUS_NO_CALLBACK_ACTIVE NT_STATUS(0xC0000000 | 0x0258)
+#define NT_STATUS_LICENSE_QUOTA_EXCEEDED NT_STATUS(0xC0000000 | 0x0259)
+#define NT_STATUS_PWD_TOO_SHORT NT_STATUS(0xC0000000 | 0x025a)
+#define NT_STATUS_PWD_TOO_RECENT NT_STATUS(0xC0000000 | 0x025b)
+#define NT_STATUS_PWD_HISTORY_CONFLICT NT_STATUS(0xC0000000 | 0x025c)
+#define NT_STATUS_PLUGPLAY_NO_DEVICE NT_STATUS(0xC0000000 | 0x025e)
+#define NT_STATUS_UNSUPPORTED_COMPRESSION NT_STATUS(0xC0000000 | 0x025f)
+#define NT_STATUS_INVALID_HW_PROFILE NT_STATUS(0xC0000000 | 0x0260)
+#define NT_STATUS_INVALID_PLUGPLAY_DEVICE_PATH NT_STATUS(0xC0000000 | 0x0261)
+#define NT_STATUS_DRIVER_ORDINAL_NOT_FOUND NT_STATUS(0xC0000000 | 0x0262)
+#define NT_STATUS_DRIVER_ENTRYPOINT_NOT_FOUND NT_STATUS(0xC0000000 | 0x0263)
+#define NT_STATUS_RESOURCE_NOT_OWNED NT_STATUS(0xC0000000 | 0x0264)
+#define NT_STATUS_TOO_MANY_LINKS NT_STATUS(0xC0000000 | 0x0265)
+#define NT_STATUS_QUOTA_LIST_INCONSISTENT NT_STATUS(0xC0000000 | 0x0266)
+#define NT_STATUS_FILE_IS_OFFLINE NT_STATUS(0xC0000000 | 0x0267)
+#define NT_STATUS_NOT_A_REPARSE_POINT NT_STATUS(0xC0000000 | 0x0275)
+#define NT_STATUS_OBJECTID_NOT_FOUND NT_STATUS(0xC0000000 | 0x02F0)
+#define NT_STATUS_NO_SUCH_JOB NT_STATUS(0xC0000000 | 0xEDE) /* scheduler */
+#define NT_STATUS_RPC_PROTSEQ_NOT_SUPPORTED NT_STATUS(0xC0000000 | 0x20004)
+#define NT_STATUS_RPC_UNSUPPORTED_NAME_SYNTAX NT_STATUS(0xC0000000 | 0x20026)
+
+
+/* I use NT_STATUS_FOOBAR when I have no idea what error code to use -
+ * this means we need a torture test */
+#define NT_STATUS_FOOBAR NT_STATUS_UNSUCCESSFUL
+
+/*****************************************************************************
+ returns an NT error message.  not amazingly helpful, but better than a number.
+ *****************************************************************************/
+const char *nt_errstr(NTSTATUS nt_code);
+
+/************************************************************************
+ Print friendler version fo NT error code
+ ***********************************************************************/
+const char *get_friendly_nt_error_msg(NTSTATUS nt_code);
+
+/*****************************************************************************
+ returns an NT_STATUS constant as a string for inclusion in autogen C code
+ *****************************************************************************/
+const char *get_nt_error_c_code(NTSTATUS nt_code);
+
+/*****************************************************************************
+ returns the NT_STATUS constant matching the string supplied (as an NTSTATUS)
+ *****************************************************************************/
+NTSTATUS nt_status_string_to_code(const char *nt_status_str);
+
+#define NT_STATUS_IS_OK(x) (NT_STATUS_V(x) == 0)
+#define NT_STATUS_IS_ERR(x) ((NT_STATUS_V(x) & 0xc0000000) == 0xc0000000)
+/* checking for DOS error mapping here is ugly, but unfortunately the
+   alternative is a very intrusive rewrite of the torture code */
+#define NT_STATUS_EQUAL(x,y) (NT_STATUS_IS_DOS(x)||NT_STATUS_IS_DOS(y)?ntstatus_dos_equal(x,y):NT_STATUS_V(x) == NT_STATUS_V(y))
+
+#define NT_STATUS_HAVE_NO_MEMORY(x) do { \
+       if (!(x)) {\
+               return NT_STATUS_NO_MEMORY;\
+       }\
+} while (0)
+
+#define NT_STATUS_IS_OK_RETURN(x) do { \
+       if (NT_STATUS_IS_OK(x)) {\
+               return x;\
+       }\
+} while (0)
+
+#define NT_STATUS_NOT_OK_RETURN(x) do { \
+       if (!NT_STATUS_IS_OK(x)) {\
+               return x;\
+       }\
+} while (0)
+
+#define NT_STATUS_IS_ERR_RETURN(x) do { \
+       if (NT_STATUS_IS_ERR(x)) {\
+               return x;\
+       }\
+} while (0)
+
+#define NT_STATUS_NOT_ERR_RETURN(x) do { \
+       if (!NT_STATUS_IS_ERR(x)) {\
+               return x;\
+       }\
+} while (0)
+
+/* this defines special NTSTATUS codes to represent DOS errors.  I
+   have chosen this macro to produce status codes in the invalid
+   NTSTATUS range */
+#define NT_STATUS_DOS(class, code) NT_STATUS(0xF1000000 | ((class)<<16) | code)
+#define NT_STATUS_IS_DOS(status) ((NT_STATUS_V(status) & 0xFF000000) == 0xF1000000)
+#define NT_STATUS_DOS_CLASS(status) ((NT_STATUS_V(status) >> 16) & 0xFF)
+#define NT_STATUS_DOS_CODE(status) (NT_STATUS_V(status) & 0xFFFF)
+
+/* define ldap error codes as NTSTATUS codes */
+#define NT_STATUS_LDAP(code) NT_STATUS(0xF2000000 | code)
+#define NT_STATUS_IS_LDAP(status) ((NT_STATUS_V(status) & 0xFF000000) == 0xF2000000)
+#define NT_STATUS_LDAP_CODE(status) (NT_STATUS_V(status) & ~0xFF000000)
+
+
+
+#endif /* _NTSTATUS_H */
diff --git a/source/libcli/util/werror.h b/source/libcli/util/werror.h
new file mode 100644 (file)
index 0000000..55a4faa
--- /dev/null
@@ -0,0 +1,193 @@
+/* 
+   Unix SMB/CIFS implementation.
+   SMB parameters and setup, plus a whole lot more.
+   
+   Copyright (C) Andrew Tridgell              2001
+   
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+   
+   This program 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 General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef _WERROR_H_
+#define _WERROR_H_
+
+#include <stdint.h>
+
+/* the following rather strange looking definitions of NTSTATUS and WERROR
+   and there in order to catch common coding errors where different error types
+   are mixed up. This is especially important as we slowly convert Samba
+   from using bool for internal functions 
+*/
+
+#if defined(HAVE_IMMEDIATE_STRUCTURES)
+typedef struct {uint32_t v;} WERROR;
+#define W_ERROR(x) ((WERROR) { x })
+#define W_ERROR_V(x) ((x).v)
+#else
+typedef uint32_t WERROR;
+#define W_ERROR(x) (x)
+#define W_ERROR_V(x) (x)
+#endif
+
+#define W_ERROR_IS_OK(x) (W_ERROR_V(x) == 0)
+#define W_ERROR_EQUAL(x,y) (W_ERROR_V(x) == W_ERROR_V(y))
+
+#define W_ERROR_HAVE_NO_MEMORY(x) do { \
+       if (!(x)) {\
+               return WERR_NOMEM;\
+       }\
+} while (0)
+
+#define W_ERROR_IS_OK_RETURN(x) do { \
+       if (W_ERROR_IS_OK(x)) {\
+               return x;\
+       }\
+} while (0)
+
+#define W_ERROR_NOT_OK_RETURN(x) do { \
+       if (!W_ERROR_IS_OK(x)) {\
+               return x;\
+       }\
+} while (0)
+
+/* these are win32 error codes. There are only a few places where
+   these matter for Samba, primarily in the NT printing code */
+#define WERR_OK W_ERROR(0)
+#define WERR_BADFUNC W_ERROR(1)
+#define WERR_BADFILE W_ERROR(2)
+#define WERR_ACCESS_DENIED W_ERROR(5)
+#define WERR_BADFID W_ERROR(6)
+#define WERR_NOMEM W_ERROR(8)
+#define WERR_GENERAL_FAILURE W_ERROR(31)
+#define WERR_NOT_SUPPORTED W_ERROR(50)
+#define WERR_BAD_NETPATH W_ERROR(53)
+#define WERR_BAD_NET_RESP W_ERROR(58)
+#define WERR_UNEXP_NET_ERR W_ERROR(59)
+#define WERR_PRINTQ_FULL W_ERROR(61)
+#define WERR_NO_SPOOL_SPACE W_ERROR(62)
+#define WERR_NO_SUCH_SHARE W_ERROR(67)
+#define WERR_FILE_EXISTS W_ERROR(80)
+#define WERR_BAD_PASSWORD W_ERROR(86)
+#define WERR_INVALID_PARAM W_ERROR(87)
+#define WERR_INSUFFICIENT_BUFFER W_ERROR(122)
+#define WERR_INVALID_NAME W_ERROR(123)
+#define WERR_UNKNOWN_LEVEL W_ERROR(124)
+#define WERR_OBJECT_PATH_INVALID W_ERROR(161)
+#define WERR_ALREADY_EXISTS W_ERROR(183)
+#define WERR_NO_MORE_ITEMS W_ERROR(259)
+#define WERR_MORE_DATA W_ERROR(234)
+#define WERR_CAN_NOT_COMPLETE W_ERROR(1003)
+#define WERR_NOT_FOUND W_ERROR(1168)
+#define WERR_INVALID_COMPUTERNAME W_ERROR(1210)
+#define WERR_INVALID_DOMAINNAME W_ERROR(1212)
+#define WERR_UNKNOWN_REVISION W_ERROR(1305)
+#define WERR_REVISION_MISMATCH W_ERROR(1306)
+#define WERR_INVALID_OWNER W_ERROR(1307)
+#define WERR_NO_LOGON_SERVERS W_ERROR(1311)
+#define WERR_NO_SUCH_PRIVILEGE W_ERROR(1313)
+#define WERR_PRIVILEGE_NOT_HELD W_ERROR(1314)
+#define WERR_NO_SUCH_USER W_ERROR(1317)
+#define WERR_LOGON_FAILURE W_ERROR(1326)
+#define WERR_INVALID_SECURITY_DESCRIPTOR W_ERROR(1338)
+#define WERR_INVALID_DOMAIN_ROLE W_ERROR(1354)
+#define WERR_NO_SUCH_DOMAIN W_ERROR(1355)
+#define WERR_NO_SYSTEM_RESOURCES W_ERROR(1450)
+#define WERR_SERVER_UNAVAILABLE W_ERROR(1722)
+#define WERR_INVALID_FORM_NAME W_ERROR(1902)
+#define WERR_INVALID_FORM_SIZE W_ERROR(1903)
+#define WERR_ALREADY_SHARED W_ERROR(2118)
+#define WERR_BUF_TOO_SMALL W_ERROR(2123)
+#define WERR_JOB_NOT_FOUND W_ERROR(2151)
+#define WERR_DEST_NOT_FOUND W_ERROR(2152)
+#define WERR_SESSION_NOT_FOUND W_ERROR(2312)
+#define WERR_FID_NOT_FOUND W_ERROR(2314)
+#define WERR_NOT_LOCAL_DOMAIN W_ERROR(2320)
+#define WERR_DOMAIN_CONTROLLER_NOT_FOUND W_ERROR(2453)
+#define WERR_DEVICE_NOT_AVAILABLE W_ERROR(4319)
+#define WERR_STATUS_MORE_ENTRIES   W_ERROR(0x0105)
+
+#define WERR_PRINTER_DRIVER_ALREADY_INSTALLED W_ERROR(ERRdriveralreadyinstalled)
+#define WERR_UNKNOWN_PORT W_ERROR(ERRunknownprinterport)
+#define WERR_UNKNOWN_PRINTER_DRIVER W_ERROR(ERRunknownprinterdriver)
+#define WERR_UNKNOWN_PRINTPROCESSOR W_ERROR(ERRunknownprintprocessor)
+#define WERR_INVALID_SEPARATOR_FILE W_ERROR(ERRinvalidseparatorfile)
+#define WERR_INVALID_PRIORITY W_ERROR(ERRinvalidjobpriority)
+#define WERR_INVALID_PRINTER_NAME W_ERROR(ERRinvalidprintername)
+#define WERR_PRINTER_ALREADY_EXISTS W_ERROR(ERRprinteralreadyexists)
+#define WERR_INVALID_PRINTER_COMMAND W_ERROR(ERRinvalidprintercommand)
+#define WERR_INVALID_DATATYPE W_ERROR(ERRinvaliddatatype)
+#define WERR_INVALID_ENVIRONMENT W_ERROR(ERRinvalidenvironment)
+
+#define WERR_UNKNOWN_PRINT_MONITOR W_ERROR(ERRunknownprintmonitor)
+#define WERR_PRINTER_DRIVER_IN_USE W_ERROR(ERRprinterdriverinuse)
+#define WERR_SPOOL_FILE_NOT_FOUND W_ERROR(ERRspoolfilenotfound)
+#define WERR_SPL_NO_STARTDOC W_ERROR(ERRnostartdoc)
+#define WERR_SPL_NO_ADDJOB W_ERROR(ERRnoaddjob)
+#define WERR_PRINT_PROCESSOR_ALREADY_INSTALLED W_ERROR(ERRprintprocessoralreadyinstalled)
+#define WERR_PRINT_MONITOR_ALREADY_INSTALLED W_ERROR(ERRprintmonitoralreadyinstalled)
+#define WERR_INVALID_PRINT_MONITOR W_ERROR(ERRinvalidprintmonitor)
+#define WERR_PRINT_MONITOR_IN_USE W_ERROR(ERRprintmonitorinuse)
+#define WERR_PRINTER_HAS_JOBS_QUEUED W_ERROR(ERRprinterhasjobsqueued)
+
+#define WERR_CLASS_NOT_REGISTERED W_ERROR(0x40154)
+#define WERR_NO_SHUTDOWN_IN_PROGRESS W_ERROR(0x45c)
+#define WERR_SHUTDOWN_ALREADY_IN_PROGRESS W_ERROR(0x45b)
+
+#define WERR_NET_NAME_NOT_FOUND                W_ERROR(NERR_BASE+210)
+#define WERR_DEVICE_NOT_SHARED         W_ERROR(NERR_BASE+211)
+
+/* DFS errors */
+#define WERR_DFS_NO_SUCH_VOL            W_ERROR(NERR_BASE+562)
+#define WERR_DFS_NO_SUCH_SHARE          W_ERROR(NERR_BASE+565)
+#define WERR_DFS_NO_SUCH_SERVER         W_ERROR(NERR_BASE+573)
+#define WERR_DFS_INTERNAL_ERROR         W_ERROR(NERR_BASE+590)
+#define WERR_DFS_CANT_CREATE_JUNCT      W_ERROR(NERR_BASE+569)
+
+/* DS errors */
+#define WERR_DS_SERVICE_BUSY W_ERROR(0x0000200e)
+#define WERR_DS_SERVICE_UNAVAILABLE W_ERROR(0x0000200f)
+#define WERR_DS_NO_SUCH_OBJECT W_ERROR(0x00002030)
+#define WERR_DS_OBJ_NOT_FOUND W_ERROR(0x0000208d)
+#define WERR_DS_SCHEMA_NOT_LOADED W_ERROR(0x20de)
+#define WERR_DS_SCHEMA_ALLOC_FAILED W_ERROR(0x20df)
+#define WERR_DS_ATT_SCHEMA_REQ_SYNTAX W_ERROR(0x000020e0)
+#define WERR_DS_DRA_SCHEMA_MISMATCH W_ERROR(0x000020e2)
+#define WERR_DS_DRA_INVALID_PARAMETER W_ERROR(0x000020f5)
+#define WERR_DS_DRA_BAD_DN W_ERROR(0x000020f7)
+#define WERR_DS_DRA_BAD_NC W_ERROR(0x000020f8)
+#define WERR_DS_DRA_INTERNAL_ERROR W_ERROR(0x000020fa)
+#define WERR_DS_DRA_OUT_OF_MEM W_ERROR(0x000020fe)
+#define WERR_DS_SINGLE_VALUE_CONSTRAINT W_ERROR(0x00002081)
+#define WERR_DS_DRA_DB_ERROR W_ERROR(0x00002103)
+#define WERR_DS_DRA_NO_REPLICA W_ERROR(0x00002104)
+#define WERR_DS_DRA_ACCESS_DENIED W_ERROR(0x00002105)
+#define WERR_DS_DNS_LOOKUP_FAILURE W_ERROR(0x0000214c)
+#define WERR_DS_WRONG_LINKED_ATTRIBUTE_SYNTAX W_ERROR(0x00002150)
+#define WERR_DS_NO_MSDS_INTID W_ERROR(0x00002194)
+#define WERR_DS_DUP_MSDS_INTID W_ERROR(0x00002195)
+
+/* SEC errors */
+#define WERR_SEC_E_ENCRYPT_FAILURE     W_ERROR(0x80090329)
+#define WERR_SEC_E_DECRYPT_FAILURE     W_ERROR(0x80090330)
+#define WERR_SEC_E_ALGORITHM_MISMATCH  W_ERROR(0x80090331)
+
+#define WERR_FOOBAR WERR_GENERAL_FAILURE
+
+/*****************************************************************************
+ returns a windows error message.  not amazingly helpful, but better than a number.
+ *****************************************************************************/
+const char *win_errstr(WERROR werror);
+
+
+
+#endif
index 5b2a9e1e4af443c3824f3190caf6a48cf7645ebe..90714f774b40bcbce9cd12b81b209c98703d29a1 100644 (file)
@@ -37,7 +37,7 @@ static struct wrepl_request *wrepl_request_finished(struct wrepl_request *req, N
 */
 static void wrepl_socket_dead(struct wrepl_socket *wrepl_socket, NTSTATUS status)
 {
-       wrepl_socket->dead = True;
+       wrepl_socket->dead = true;
 
        if (wrepl_socket->packet) {
                packet_recv_disable(wrepl_socket->packet);
@@ -148,7 +148,7 @@ static void wrepl_error(void *private, NTSTATUS status)
 static int wrepl_socket_destructor(struct wrepl_socket *sock)
 {
        if (sock->dead) {
-               sock->free_skipped = True;
+               sock->free_skipped = true;
                return -1;
        }
        wrepl_socket_dead(sock, NT_STATUS_LOCAL_DISCONNECT);
@@ -387,7 +387,7 @@ static void wrepl_request_trigger_handler(struct event_context *ev, struct timed
 /*
   trigger an immediate event on a wrepl_request
   the return value should only be used in wrepl_request_send()
-  this is the only place where req->trigger is True
+  this is the only place where req->trigger is true
 */
 static struct wrepl_request *wrepl_request_finished(struct wrepl_request *req, NTSTATUS status)
 {
@@ -406,7 +406,7 @@ static struct wrepl_request *wrepl_request_finished(struct wrepl_request *req, N
        req->status     = status;
 
        if (req->trigger) {
-               req->trigger = False;
+               req->trigger = false;
                /* a zero timeout means immediate */
                te = event_add_timed(req->wrepl_socket->event.ctx,
                                     req, timeval_zero(),
@@ -448,7 +448,7 @@ static int wrepl_send_ctrl_destructor(struct wrepl_send_ctrl_state *s)
        /* here, we need to make sure the async request handler is called
         * later in the next event_loop and now now
         */
-       req->trigger = True;
+       req->trigger = true;
        wrepl_request_finished(req, NT_STATUS_OK);
 
        if (s->ctrl.disconnect_after_send) {
@@ -473,7 +473,7 @@ struct wrepl_request *wrepl_request_send(struct wrepl_socket *wrepl_socket,
        if (!req) return NULL;
        req->wrepl_socket = wrepl_socket;
        req->state        = WREPL_REQUEST_RECV;
-       req->trigger      = True;
+       req->trigger      = true;
 
        DLIST_ADD_END(wrepl_socket->recv_queue, req, struct wrepl_request *);
        talloc_set_destructor(req, wrepl_request_destructor);
@@ -516,7 +516,7 @@ struct wrepl_request *wrepl_request_send(struct wrepl_socket *wrepl_socket,
                return wrepl_request_finished(req, req->status);
        }
 
-       req->trigger = False;
+       req->trigger = false;
        return req;
 }
 
@@ -638,8 +638,8 @@ struct wrepl_request *wrepl_associate_stop_send(struct wrepl_socket *wrepl_socke
 
        ZERO_STRUCT(ctrl);
        if (io->in.reason == 0) {
-               ctrl.send_only                  = True;
-               ctrl.disconnect_after_send      = True;
+               ctrl.send_only                  = true;
+               ctrl.disconnect_after_send      = true;
        }
 
        req = wrepl_request_send(wrepl_socket, packet, &ctrl);
index 3265024407c91ebc2ed85f6978792f6bf8ef0c37..8ce8b418a2c16d1397fafb933f27ace61d89f926 100644 (file)
@@ -120,7 +120,7 @@ struct wrepl_pull_table {
 #define WREPL_NAME_TYPE(flags) (flags & WREPL_FLAGS_RECORD_TYPE)
 #define WREPL_NAME_STATE(flags) ((flags & WREPL_FLAGS_RECORD_STATE)>>2)
 #define WREPL_NAME_NODE(flags) ((flags & WREPL_FLAGS_NODE_TYPE)>>5)
-#define WREPL_NAME_IS_STATIC(flags) ((flags & WREPL_FLAGS_IS_STATIC)?True:False)
+#define WREPL_NAME_IS_STATIC(flags) ((flags & WREPL_FLAGS_IS_STATIC)?true:false)
 
 #define WREPL_NAME_FLAGS(type, state, node, is_static) \
        (type | (state << 2) | (node << 5) | \
index a4cbedb51583c2a53679dee4e078fc03e7dd5e25..ef0c7ff6ca4f78cfcb23a33883d66b91840b01a2 100644 (file)
@@ -28,6 +28,7 @@ OBJ_FILES = \
                userinfo.o \
                groupinfo.o \
                userman.o \
+               groupman.o \
                prereq_domain.o
 PUBLIC_DEPENDENCIES = CREDENTIALS dcerpc dcerpc_samr RPC_NDR_LSA RPC_NDR_SRVSVC RPC_NDR_DRSUAPI LIBCLI_COMPOSITE LIBCLI_RESOLVE LIBCLI_FINDDCS LIBSAMBA3 LIBCLI_CLDAP LIBCLI_FINDDCS gensec_schannel
 PRIVATE_DEPENDENCIES = CREDENTIALS_KRB5
diff --git a/source/libnet/groupman.c b/source/libnet/groupman.c
new file mode 100644 (file)
index 0000000..de0ae0a
--- /dev/null
@@ -0,0 +1,138 @@
+/* 
+   Unix SMB/CIFS implementation.
+
+   Copyright (C) Rafal Szczesniak 2007
+   
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+   
+   This program 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 General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/*
+  a composite function for manipulating (add/edit/del) groups via samr pipe
+*/
+
+#include "includes.h"
+#include "libcli/composite/composite.h"
+#include "libnet/composite.h"
+#include "libnet/groupman.h"
+#include "librpc/gen_ndr/ndr_samr_c.h"
+
+
+struct groupadd_state {
+       struct dcerpc_pipe *pipe;
+       struct policy_handle domain_handle;
+       struct samr_CreateDomainGroup creategroup;
+       struct policy_handle group_handle;
+       uint32_t group_rid;
+       
+       void (*monitor_fn)(struct monitor_msg*);
+};
+
+
+static void continue_groupadd_created(struct rpc_request *req);
+
+
+struct composite_context* libnet_rpc_groupadd_send(struct dcerpc_pipe *p,
+                                                  struct libnet_rpc_groupadd *io,
+                                                  void (*monitor)(struct monitor_msg*))
+{
+       struct composite_context *c;
+       struct groupadd_state *s;
+       struct rpc_request *create_req;
+
+       if (!p || !io) return NULL;
+
+       c = composite_create(p, dcerpc_event_context(p));
+       if (c == NULL) return NULL;
+
+       s = talloc_zero(c, struct groupadd_state);
+       if (composite_nomem(s, c)) return c;
+
+       c->private_data = s;
+
+       s->domain_handle = io->in.domain_handle;
+       s->pipe          = p;
+       s->monitor_fn    = monitor;
+
+       s->creategroup.in.domain_handle  = &s->domain_handle;
+
+       s->creategroup.in.name           = talloc_zero(c, struct lsa_String);
+       if (composite_nomem(s->creategroup.in.name, c)) return c;
+
+       s->creategroup.in.name->string   = talloc_strdup(c, io->in.groupname);
+       if (composite_nomem(s->creategroup.in.name->string, c)) return c;
+       
+       s->creategroup.in.access_mask    = 0;
+       
+       s->creategroup.out.group_handle  = &s->group_handle;
+       s->creategroup.out.rid           = &s->group_rid;
+       
+       create_req = dcerpc_samr_CreateDomainGroup_send(s->pipe, c, &s->creategroup);
+       if (composite_nomem(create_req, c)) return c;
+
+       composite_continue_rpc(c, create_req, continue_groupadd_created, c);
+       return c;
+}
+
+
+NTSTATUS libnet_rpc_groupadd_recv(struct composite_context *c, TALLOC_CTX *mem_ctx,
+                                 struct libnet_rpc_groupadd *io)
+{
+       NTSTATUS status;
+       struct groupadd_state *s;
+       
+       status = composite_wait(c);
+       if (NT_STATUS_IS_OK(status)) {
+               s = talloc_get_type(c, struct groupadd_state);
+       }
+
+       return status;
+}
+
+
+static void continue_groupadd_created(struct rpc_request *req)
+{
+       struct composite_context *c;
+       struct groupadd_state *s;
+
+       c = talloc_get_type(req->async.private_data, struct composite_context);
+       s = talloc_get_type(c->private_data, struct groupadd_state);
+
+       c->status = dcerpc_ndr_request_recv(req);
+       if (!composite_is_ok(c)) return;
+
+       c->status = s->creategroup.out.result;
+       if (!composite_is_ok(c)) return;
+       
+       if (s->monitor_fn) {
+               struct monitor_msg msg;
+               
+               msg.type      = mon_SamrCreateUser;
+               msg.data      = NULL;
+               msg.data_size = 0;
+               
+               s->monitor_fn(&msg);
+       }
+
+       composite_done(c);
+}
+
+
+NTSTATUS libnet_rpc_groupadd(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+                            struct libnet_rpc_groupadd *io)
+{
+       struct composite_context *c;
+
+       c = libnet_rpc_groupadd_send(p, io, NULL);
+       return libnet_rpc_groupadd_recv(c, mem_ctx, io);
+}
diff --git a/source/libnet/groupman.h b/source/libnet/groupman.h
new file mode 100644 (file)
index 0000000..0acb02d
--- /dev/null
@@ -0,0 +1,35 @@
+/* 
+   Unix SMB/CIFS implementation.
+
+   Copyright (C) Rafal Szczesniak 2007
+   
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+   
+   This program 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 General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "librpc/gen_ndr/misc.h"
+
+
+/*
+ * IO structures for groupman.c functions
+ */
+
+struct libnet_rpc_groupadd {
+       struct {
+               struct policy_handle domain_handle;
+               const char *groupname;
+       } in;
+       struct {
+               struct policy_handle group_handle;
+       } out;
+};
index a628a07a99de8c833a1e7cee77516e819543a555..86804df1ea40b938d9eca8f5ae4ec95f3194eb90 100644 (file)
@@ -20,6 +20,7 @@
 #include "includes.h"
 #include "libnet/libnet.h"
 #include "lib/events/events.h"
+#include "param/param.h"
 
 struct libnet_context *libnet_context_init(struct event_context *ev)
 {
@@ -42,7 +43,7 @@ struct libnet_context *libnet_context_init(struct event_context *ev)
        ctx->event_ctx = ev;
 
        /* name resolution methods */
-       ctx->name_res_methods = str_list_copy(ctx, lp_name_resolve_order());
+       ctx->name_res_methods = str_list_copy(ctx, lp_name_resolve_order(global_loadparm));
 
        /* connected services' params */
        ZERO_STRUCT(ctx->samr);
index a51fa613a822395e15bac23e3c09165f29ea4e65..56a7d0ba2019f83115e722829894c88f81bdddfa 100644 (file)
@@ -18,6 +18,8 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
+#include "librpc/gen_ndr/misc.h"
+
 struct libnet_context {
        /* here we need:
         * a client env context
@@ -56,6 +58,7 @@ struct libnet_context {
 #include "libnet/userman.h"
 #include "libnet/userinfo.h"
 #include "libnet/groupinfo.h"
+#include "libnet/groupman.h"
 #include "libnet/libnet_passwd.h"
 #include "libnet/libnet_time.h"
 #include "libnet/libnet_rpc.h"
index e2f4f03c606804d9e737bf3be029729d4bac6463..cd782066dbe3e420893acfaf3f867b2dce80b2da 100644 (file)
@@ -32,6 +32,7 @@
 #include "librpc/gen_ndr/ndr_security.h"
 #include "librpc/gen_ndr/ndr_drsuapi.h"
 #include "auth/gensec/gensec.h"
+#include "param/param.h"
 
 /*****************************************************************************
  * Windows 2003 (w2k3) does the following steps when changing the server role
@@ -789,7 +790,7 @@ static NTSTATUS becomeDC_ldap_connect(struct libnet_BecomeDC_state *s, struct be
        url = talloc_asprintf(s, "ldap://%s/", s->source_dsa.dns_name);
        NT_STATUS_HAVE_NO_MEMORY(url);
 
-       ldap->ldb = ldb_wrap_connect(s, url,
+       ldap->ldb = ldb_wrap_connect(s, global_loadparm, url,
                                     NULL,
                                     s->libnet->cred,
                                     0, NULL);
@@ -1510,7 +1511,7 @@ static void becomeDC_drsuapi_connect_send(struct libnet_BecomeDC_state *s,
        drsuapi->s = s;
 
        if (!drsuapi->binding) {
-               if (lp_parm_bool(-1, "become_dc", "print", False)) {
+               if (lp_parm_bool(global_loadparm, NULL, "become_dc", "print", false)) {
                        binding_str = talloc_asprintf(s, "ncacn_ip_tcp:%s[krb5,print,seal]", s->source_dsa.dns_name);
                        if (composite_nomem(binding_str, c)) return;
                } else {
@@ -2909,7 +2910,7 @@ struct composite_context *libnet_BecomeDC_send(struct libnet_context *ctx, TALLO
        /* Destination DSA dns_name construction */
        tmp_name        = strlower_talloc(s, s->dest_dsa.netbios_name);
        if (composite_nomem(tmp_name, c)) return c;
-       tmp_name        = talloc_asprintf_append(tmp_name, ".%s",s->domain.dns_name);
+       tmp_name        = talloc_asprintf_append_buffer(tmp_name, ".%s",s->domain.dns_name);
        if (composite_nomem(tmp_name, c)) return c;
        s->dest_dsa.dns_name    = tmp_name;
 
index 50615f3946e12831d71ec25989c50c92feaa05ac..39e5e7a4f9888697f6edca930b713ecca6fefe84 100644 (file)
@@ -57,7 +57,7 @@ struct composite_context* libnet_GroupInfo_send(struct libnet_context *ctx,
 {
        struct composite_context *c;
        struct group_info_state *s;
-       BOOL prereq_met = False;
+       bool prereq_met = false;
        struct composite_context *lookup_req;
 
        /* composite context allocation and setup */
index 40debc63dc6be32f838c56264ef84304537ff295..4abd2954f88e64d98ed71494355ed1a61d9dd504 100644 (file)
@@ -31,6 +31,7 @@
 #include "auth/credentials/credentials.h"
 #include "auth/credentials/credentials_krb5.h"
 #include "librpc/gen_ndr/ndr_samr_c.h"
+#include "param/param.h"
 
 /*
  * complete a domain join, when joining to a AD domain:
@@ -227,7 +228,8 @@ static NTSTATUS libnet_JoinADSDomain(struct libnet_context *ctx, struct libnet_J
                return NT_STATUS_NO_MEMORY;
        }
 
-       remote_ldb = ldb_wrap_connect(tmp_ctx, remote_ldb_url, 
+       remote_ldb = ldb_wrap_connect(tmp_ctx, global_loadparm, 
+                                     remote_ldb_url, 
                                      NULL, ctx->cred, 0, NULL);
        if (!remote_ldb) {
                r->out.error_string = NULL;
@@ -534,8 +536,8 @@ NTSTATUS libnet_JoinDomain(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, stru
                        connect_with_info->out.domain_name = talloc_strdup(tmp_ctx, r->in.domain_name);
                } else {
                        /* Bugger, we just lost our way to automaticly find the domain name */
-                       connect_with_info->out.domain_name = talloc_strdup(tmp_ctx, lp_workgroup());
-                       connect_with_info->out.realm = talloc_strdup(tmp_ctx, lp_realm());
+                       connect_with_info->out.domain_name = talloc_strdup(tmp_ctx, lp_workgroup(global_loadparm));
+                       connect_with_info->out.realm = talloc_strdup(tmp_ctx, lp_realm(global_loadparm));
                }
        }
 
@@ -887,7 +889,7 @@ static NTSTATUS libnet_Join_primary_domain(struct libnet_context *ctx,
        if (r->in.netbios_name != NULL) {
                netbios_name = r->in.netbios_name;
        } else {
-               netbios_name = talloc_reference(tmp_mem, lp_netbios_name());
+               netbios_name = talloc_reference(tmp_mem, lp_netbios_name(global_loadparm));
                if (!netbios_name) {
                        r->out.error_string = NULL;
                        talloc_free(tmp_mem);
@@ -924,7 +926,7 @@ static NTSTATUS libnet_Join_primary_domain(struct libnet_context *ctx,
        r2->in.netbios_name     = netbios_name;
        r2->in.level            = LIBNET_JOINDOMAIN_AUTOMATIC;
        r2->in.acct_type        = acct_type;
-       r2->in.recreate_account = False;
+       r2->in.recreate_account = false;
        status = libnet_JoinDomain(ctx, r2, r2);
        if (!NT_STATUS_IS_OK(status)) {
                r->out.error_string = talloc_steal(mem_ctx, r2->out.error_string);
index 6856156734e002fafc5173ed7102b15117310e80..459e5b1985afac5c2380efb4728278f8505a79c2 100644 (file)
@@ -34,6 +34,8 @@
 #include "librpc/gen_ndr/lsa.h"
 #include "librpc/gen_ndr/ndr_lsa_c.h"
 
+#include "param/param.h"
+
 struct lookup_state {
        struct nbt_name hostname;
        const char *address;
@@ -189,7 +191,8 @@ struct composite_context* libnet_LookupDCs_send(struct libnet_context *ctx,
                                                struct libnet_LookupDCs *io)
 {
        struct composite_context *c;
-       struct messaging_context *msg_ctx = messaging_client_init(mem_ctx, ctx->event_ctx);
+       struct messaging_context *msg_ctx = 
+               messaging_client_init(mem_ctx, lp_messaging_path(mem_ctx, global_loadparm), ctx->event_ctx);
 
        c = finddcs_send(mem_ctx, io->in.domain_name, io->in.name_type,
                         NULL, ctx->name_res_methods, ctx->event_ctx, msg_ctx);
@@ -257,7 +260,7 @@ struct composite_context* libnet_LookupName_send(struct libnet_context *ctx,
        struct composite_context *c;
        struct lookup_name_state *s;
        struct rpc_request *lookup_req;
-       BOOL prereq_met = False;
+       bool prereq_met = false;
 
        c = composite_create(mem_ctx, ctx->event_ctx);
        if (c == NULL) return NULL;
index fb4267748a141194b6eeee3755b15598f767a1a6..5c7266d7a862c0c429bcefbdc7eff0980070797b 100644 (file)
@@ -110,7 +110,7 @@ static NTSTATUS libnet_samdump_fn(TALLOC_CTX *mem_ctx,
                                  char **error_string)
 {
        NTSTATUS nt_status = NT_STATUS_OK;
-       struct samdump_state *samdump_state = private;
+       struct samdump_state *samdump_state = (struct samdump_state *)private;
 
        *error_string = NULL;
        switch (delta->delta_type) {
@@ -144,7 +144,8 @@ static NTSTATUS libnet_samdump_fn(TALLOC_CTX *mem_ctx,
        return nt_status;
 }
 
-NTSTATUS libnet_SamDump(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, struct libnet_SamDump *r)
+NTSTATUS libnet_SamDump(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, 
+                       struct libnet_SamDump *r)
 {
        NTSTATUS nt_status;
        struct libnet_SamSync r2;
@@ -162,7 +163,7 @@ NTSTATUS libnet_SamDump(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, struct
 
        r2.out.error_string            = NULL;
        r2.in.binding_string           = r->in.binding_string;
-       r2.in.rid_crypt                = lp_parm_bool(-1, "vampire", "rid decrypt", True);
+       r2.in.rid_crypt                = lp_parm_bool(global_loadparm, NULL, "vampire", "rid decrypt", true);
        r2.in.init_fn                  = NULL;
        r2.in.delta_fn                 = libnet_samdump_fn;
        r2.in.fn_ctx                   = samdump_state;
index 0eae9de039cad9c1b6879e89822cacbb90149c53..c235df6d2511d319d1d718e34a5f01f786a79e8c 100644 (file)
@@ -25,6 +25,7 @@
 #include "system/kerberos.h"
 #include "auth/credentials/credentials.h"
 #include "auth/credentials/credentials_krb5.h"
+#include "param/param.h"
 
 static NTSTATUS samdump_keytab_handle_user(TALLOC_CTX *mem_ctx,
                                            const char *keytab_name,
@@ -44,7 +45,7 @@ static NTSTATUS samdump_keytab_handle_user(TALLOC_CTX *mem_ctx,
        if (!credentials) {
                return NT_STATUS_NO_MEMORY;
        }
-       cli_credentials_set_conf(credentials);
+       cli_credentials_set_conf(credentials, global_loadparm);
        cli_credentials_set_username(credentials, username, CRED_SPECIFIED);
 
        /* We really should consult ldap in the main SamSync code, and
index 338b15d6d72495ea45f29de469f857f44d6808bc..bdc3341aa68ee67c3abaca904e6e8984146bef41 100644 (file)
@@ -31,6 +31,7 @@
 #include "db_wrap.h"
 #include "libcli/security/security.h"
 #include "librpc/rpc/dcerpc.h"
+#include "param/param.h"
 
 struct samsync_ldb_secret {
        struct samsync_ldb_secret *prev, *next;
@@ -246,7 +247,7 @@ static NTSTATUS samsync_ldb_handle_user(TALLOC_CTX *mem_ctx,
        struct ldb_message **remote_msgs = NULL;
        int ret, i;
        uint32_t acb;
-       BOOL add = False;
+       bool add = false;
        const char *attrs[] = { NULL };
        /* we may change this to a global search, then fill in only the things not in ldap later */
        const char *remote_attrs[] = { "userPrincipalName", "servicePrincipalName", 
@@ -274,7 +275,7 @@ static NTSTATUS samsync_ldb_handle_user(TALLOC_CTX *mem_ctx,
                                                ldb_errstring(state->sam_ldb));
                return NT_STATUS_INTERNAL_DB_CORRUPTION;
        } else if (ret == 0) {
-               add = True;
+               add = true;
        } else if (ret > 1) {
                *error_string = talloc_asprintf(mem_ctx, "More than one user with SID: %s in local LDB", 
                                                dom_sid_string(mem_ctx, user_sid));
@@ -431,14 +432,21 @@ static NTSTATUS samsync_ldb_handle_user(TALLOC_CTX *mem_ctx,
                if (ret != 0) {
                        struct ldb_dn *first_try_dn = msg->dn;
                        /* Try again with the default DN */
-                       msg->dn = talloc_steal(msg, msgs[0]->dn);
-                       ret = samdb_add(state->sam_ldb, mem_ctx, msg);
-                       if (ret != 0) {
-                               *error_string = talloc_asprintf(mem_ctx, "Failed to create user record.  Tried both %s and %s: %s",
+                       if (!remote_msgs) {
+                               *error_string = talloc_asprintf(mem_ctx, "Failed to create user record.  Tried %s: %s",
                                                                ldb_dn_get_linearized(first_try_dn),
-                                                               ldb_dn_get_linearized(msg->dn),
                                                                ldb_errstring(state->sam_ldb));
                                return NT_STATUS_INTERNAL_DB_CORRUPTION;
+                       } else {
+                               msg->dn = talloc_steal(msg, remote_msgs[0]->dn);
+                               ret = samdb_add(state->sam_ldb, mem_ctx, msg);
+                               if (ret != 0) {
+                                       *error_string = talloc_asprintf(mem_ctx, "Failed to create user record.  Tried both %s and %s: %s",
+                                                                       ldb_dn_get_linearized(first_try_dn),
+                                                                       ldb_dn_get_linearized(msg->dn),
+                                                                       ldb_errstring(state->sam_ldb));
+                                       return NT_STATUS_INTERNAL_DB_CORRUPTION;
+                               }
                        }
                }
        } else {
@@ -509,7 +517,7 @@ static NTSTATUS samsync_ldb_handle_group(TALLOC_CTX *mem_ctx,
        struct ldb_message *msg;
        struct ldb_message **msgs;
        int ret;
-       BOOL add = False;
+       bool add = false;
        const char *attrs[] = { NULL };
 
        msg = ldb_msg_new(mem_ctx);
@@ -526,7 +534,7 @@ static NTSTATUS samsync_ldb_handle_group(TALLOC_CTX *mem_ctx,
                *error_string = talloc_asprintf(mem_ctx, "gendb_search failed: %s", ldb_errstring(state->sam_ldb));
                return NT_STATUS_INTERNAL_DB_CORRUPTION;
        } else if (ret == 0) {
-               add = True;
+               add = true;
        } else if (ret > 1) {
                *error_string = talloc_asprintf(mem_ctx, "More than one group/alias with SID: %s", 
                                                dom_sid_string(mem_ctx, 
@@ -721,7 +729,7 @@ static NTSTATUS samsync_ldb_handle_alias(TALLOC_CTX *mem_ctx,
        struct ldb_message *msg;
        struct ldb_message **msgs;
        int ret;
-       BOOL add = False;
+       bool add = false;
        const char *attrs[] = { NULL };
 
        msg = ldb_msg_new(mem_ctx);
@@ -738,7 +746,7 @@ static NTSTATUS samsync_ldb_handle_alias(TALLOC_CTX *mem_ctx,
                *error_string = talloc_asprintf(mem_ctx, "gendb_search failed: %s", ldb_errstring(state->sam_ldb));
                return NT_STATUS_INTERNAL_DB_CORRUPTION;
        } else if (ret == 0) {
-               add = True;
+               add = true;
        } else if (ret > 1) {
                *error_string = talloc_asprintf(mem_ctx, "More than one group/alias with SID: %s", 
                                                dom_sid_string(mem_ctx, 
@@ -1183,7 +1191,9 @@ static NTSTATUS libnet_samsync_ldb_init(TALLOC_CTX *mem_ctx,
                }
                ldap_url = talloc_asprintf(state, "ldap://%s", server);
                
-               state->remote_ldb = ldb_wrap_connect(mem_ctx, ldap_url, 
+               state->remote_ldb = ldb_wrap_connect(mem_ctx, 
+                                                    global_loadparm, 
+                                                    ldap_url, 
                                                     NULL, state->samsync_state->machine_net_ctx->cred,
                                                     0, NULL);
                if (!state->remote_ldb) {
@@ -1209,7 +1219,10 @@ NTSTATUS libnet_samsync_ldb(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, str
        state->secrets         = NULL;
        state->trusted_domains = NULL;
 
-       state->sam_ldb         = ldb_wrap_connect(mem_ctx, lp_sam_url(), r->in.session_info,
+       state->sam_ldb         = ldb_wrap_connect(mem_ctx, 
+                                                 global_loadparm, 
+                                                 lp_sam_url(global_loadparm), 
+                                                 r->in.session_info,
                                                  ctx->cred, 0, NULL);
 
        r2.out.error_string    = NULL;
index 6b63ebc8393c5b7bc531fadbc214952205d65af1..40b1aab2152e0bac7eca0c471b1bcaeb8cbf8b6d 100644 (file)
@@ -27,6 +27,7 @@
 #include "dsdb/samdb/samdb.h"
 #include "dsdb/common/flags.h"
 #include "librpc/gen_ndr/ndr_drsuapi_c.h"
+#include "param/param.h"
 
 /*****************************************************************************
  * Windows 2003 (w2k3) does the following steps when changing the server role
@@ -307,7 +308,7 @@ static NTSTATUS unbecomeDC_ldap_connect(struct libnet_UnbecomeDC_state *s)
        url = talloc_asprintf(s, "ldap://%s/", s->source_dsa.dns_name);
        NT_STATUS_HAVE_NO_MEMORY(url);
 
-       s->ldap.ldb = ldb_wrap_connect(s, url,
+       s->ldap.ldb = ldb_wrap_connect(s, global_loadparm, url,
                                       NULL,
                                       s->libnet->cred,
                                       0, NULL);
@@ -698,7 +699,7 @@ struct composite_context *libnet_UnbecomeDC_send(struct libnet_context *ctx, TAL
        /* Destination DSA dns_name construction */
        tmp_name                = strlower_talloc(s, s->dest_dsa.netbios_name);
        if (composite_nomem(tmp_name, c)) return c;
-       s->dest_dsa.dns_name    = talloc_asprintf_append(tmp_name, ".%s",
+       s->dest_dsa.dns_name    = talloc_asprintf_append_buffer(tmp_name, ".%s",
                                                         s->domain.dns_name);
        if (composite_nomem(s->dest_dsa.dns_name, c)) return c;
 
index fe303620fe16098cadbac252d097e52134ce8c0e..75fd8f2000a85b6aaa0c668e96525eb33087511a 100644 (file)
@@ -1,7 +1,7 @@
 /* 
    Unix SMB/CIFS implementation.
    
-   Copyright (C) Rafal Szczesniak <mimir@samba.org> 2005
+   Copyright (C) Rafal Szczesniak  2005
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -62,7 +62,7 @@ struct composite_context* libnet_CreateUser_send(struct libnet_context *ctx,
        struct composite_context *c;
        struct create_user_state *s;
        struct composite_context *create_req;
-       BOOL prereq_met = False;
+       bool prereq_met = false;
 
        /* composite context allocation and setup */
        c = composite_create(mem_ctx, ctx->event_ctx);
@@ -231,7 +231,7 @@ struct composite_context *libnet_DeleteUser_send(struct libnet_context *ctx,
        struct composite_context *c;
        struct delete_user_state *s;
        struct composite_context *delete_req;
-       BOOL prereq_met = False;
+       bool prereq_met = false;
 
        /* composite context allocation and setup */
        c = composite_create(mem_ctx, ctx->event_ctx);
@@ -402,7 +402,7 @@ struct composite_context *libnet_ModifyUser_send(struct libnet_context *ctx,
        struct composite_context *c;
        struct modify_user_state *s;
        struct composite_context *userinfo_req;
-       BOOL prereq_met = False;
+       bool prereq_met = false;
 
        c = composite_create(mem_ctx, ctx->event_ctx);
        if (c == NULL) return NULL;
@@ -533,6 +533,9 @@ static NTSTATUS set_user_changes(TALLOC_CTX *mem_ctx, struct usermod_change *mod
        /* account expiry change */
        SET_FIELD_NTTIME(r->in, user, mod, acct_expiry, USERMOD_FIELD_ACCT_EXPIRY);
 
+       /* account flags change */
+       SET_FIELD_UINT32(r->in, user, mod, acct_flags, USERMOD_FIELD_ACCT_FLAGS);
+
        return NT_STATUS_OK;
 }
 
@@ -626,7 +629,7 @@ struct composite_context* libnet_UserInfo_send(struct libnet_context *ctx,
        struct composite_context *c;
        struct user_info_state *s;
        struct composite_context *lookup_req;
-       BOOL prereq_met = False;
+       bool prereq_met = false;
 
        /* composite context allocation and setup */
        c = composite_create(mem_ctx, ctx->event_ctx);
@@ -875,7 +878,7 @@ struct composite_context* libnet_UserList_send(struct libnet_context *ctx,
        struct composite_context *c;
        struct userlist_state *s;
        struct rpc_request *query_req;
-       BOOL prereq_met = False;
+       bool prereq_met = false;
 
        /* composite context allocation and setup */
        c = composite_create(mem_ctx, ctx->event_ctx);
@@ -949,7 +952,7 @@ static void continue_domain_queried(struct rpc_request *req)
        struct composite_context *c;
        struct userlist_state *s;
        struct rpc_request *enum_req;
-       BOOL prereq_met = False;
+       bool prereq_met = false;
        
        c = talloc_get_type(req->async.private_data, struct composite_context);
        s = talloc_get_type(c->private_data, struct userlist_state);
index 3bbe1cc65e804f12eb8fbb53f8647c4abdbd925c..ece06f08fc0b6261b68655fdc413f6a31745771d 100644 (file)
@@ -85,6 +85,12 @@ struct libnet_ModifyUser {
                } \
        }
 
+#define SET_FIELD_UINT32(new, current, mod, field, flag) \
+       if (current->field != new.field) { \
+               mod->field = new.field; \
+               mod->fields |= flag; \
+       }
+
 
 struct libnet_UserInfo {
        struct {
index e21976cb024dd1a5efc4d377985c91956051ed00..dff915df71d865fa0c1f8c4dca8b7b0e7ec71399 100644 (file)
@@ -28,6 +28,7 @@
 #include "auth/gensec/schannel_proto.h"
 #include "librpc/gen_ndr/ndr_netlogon.h"
 #include "librpc/gen_ndr/ndr_netlogon_c.h"
+#include "param/param.h"
 
 
 /**
@@ -80,7 +81,7 @@ static NTSTATUS fix_user(TALLOC_CTX *mem_ctx,
                                } else {
                                        user->lmpassword = keys.keys.keys2.lmpassword.pwd;
                                }
-                               user->lm_password_present = True;
+                               user->lm_password_present = true;
                        }
                        if (keys.keys.keys2.ntpassword.length == 16) {
                                if (rid_crypt) {
@@ -89,7 +90,7 @@ static NTSTATUS fix_user(TALLOC_CTX *mem_ctx,
                                } else {
                                        user->ntpassword = keys.keys.keys2.ntpassword.pwd;
                                }
-                               user->nt_password_present = True;
+                               user->nt_password_present = true;
                        }
                        /* TODO: rid decrypt history fields */
                } else {
@@ -184,7 +185,7 @@ NTSTATUS libnet_SamSync_netlogon(struct libnet_context *ctx, TALLOC_CTX *mem_ctx
                        talloc_free(samsync_ctx);
                        return NT_STATUS_NO_MEMORY;
                }
-               cli_credentials_set_conf(machine_account);
+               cli_credentials_set_conf(machine_account, global_loadparm);
                nt_status = cli_credentials_set_machine_account(machine_account);
                if (!NT_STATUS_IS_OK(nt_status)) {
                        r->out.error_string = talloc_strdup(mem_ctx, "Could not obtain machine account password - are we joined to the domain?");
index 52f8dcf112b1e2b7142e6bf189aade4eed093ca8..e10e550585c36e34a83a2152a53931d786bb3c8f 100644 (file)
@@ -29,7 +29,7 @@
 #include "librpc/gen_ndr/ndr_lsa.h"
 
 
-BOOL samr_domain_opened(struct libnet_context *ctx, const char *domain_name,
+bool samr_domain_opened(struct libnet_context *ctx, const char *domain_name,
                        struct composite_context **parent_ctx,
                        struct libnet_DomainOpen *domain_open,
                        void (*continue_fn)(struct composite_context*),
@@ -37,7 +37,7 @@ BOOL samr_domain_opened(struct libnet_context *ctx, const char *domain_name,
 {
        struct composite_context *domopen_req;
 
-       if (parent_ctx == NULL || *parent_ctx == NULL) return False;
+       if (parent_ctx == NULL || *parent_ctx == NULL) return false;
 
        if (domain_name == NULL) {
                /*
@@ -52,7 +52,7 @@ BOOL samr_domain_opened(struct libnet_context *ctx, const char *domain_name,
 
                } else {
                        composite_error(*parent_ctx, NT_STATUS_INVALID_PARAMETER);
-                       return True;
+                       return true;
                }
 
        } else {
@@ -71,20 +71,20 @@ BOOL samr_domain_opened(struct libnet_context *ctx, const char *domain_name,
                } else {
                        /* domain has already been opened and it's the same domain
                           as requested */
-                       return True;
+                       return true;
                }
        }
 
        /* send request to open the domain */
        domopen_req = libnet_DomainOpen_send(ctx, domain_open, monitor);
-       if (composite_nomem(domopen_req, *parent_ctx)) return False;
+       if (composite_nomem(domopen_req, *parent_ctx)) return false;
        
        composite_continue(*parent_ctx, domopen_req, continue_fn, *parent_ctx);
-       return False;
+       return false;
 }
 
 
-BOOL lsa_domain_opened(struct libnet_context *ctx, const char *domain_name,
+bool lsa_domain_opened(struct libnet_context *ctx, const char *domain_name,
                       struct composite_context **parent_ctx,
                       struct libnet_DomainOpen *domain_open,
                       void (*continue_fn)(struct composite_context*),
@@ -92,7 +92,7 @@ BOOL lsa_domain_opened(struct libnet_context *ctx, const char *domain_name,
 {
        struct composite_context *domopen_req;
        
-       if (parent_ctx == NULL || *parent_ctx == NULL) return False;
+       if (parent_ctx == NULL || *parent_ctx == NULL) return false;
 
        if (domain_name == NULL) {
                /*
@@ -109,7 +109,7 @@ BOOL lsa_domain_opened(struct libnet_context *ctx, const char *domain_name,
                        composite_error(*parent_ctx, NT_STATUS_INVALID_PARAMETER);
                        /* this ensures the calling function exits and composite function error
                           gets noticed quickly */
-                       return True;
+                       return true;
                }
 
        } else {
@@ -128,15 +128,15 @@ BOOL lsa_domain_opened(struct libnet_context *ctx, const char *domain_name,
                } else {
                        /* domain has already been opened and it's the same domain
                           as requested */
-                       return True;
+                       return true;
                }
        }
 
        /* send request to open the domain */
        domopen_req = libnet_DomainOpen_send(ctx, domain_open, monitor);
        /* see the comment above to find out why true is returned here */
-       if (composite_nomem(domopen_req, *parent_ctx)) return True;
+       if (composite_nomem(domopen_req, *parent_ctx)) return true;
        
        composite_continue(*parent_ctx, domopen_req, continue_fn, *parent_ctx);
-       return False;
+       return false;
 }
index 2efb8921552bf0020c0365299a1d50c69240f521..25ed4775cb3ba60ee1a5058f7a72e67d79cca231 100644 (file)
  * Composite USER ADD functionality
  */
 
-static void useradd_handler(struct rpc_request*);
-
-enum useradd_stage { USERADD_CREATE };
-
 struct useradd_state {
-       enum useradd_stage       stage;
        struct dcerpc_pipe       *pipe;
        struct rpc_request       *req;
        struct policy_handle     domain_handle;
@@ -50,64 +45,46 @@ struct useradd_state {
 };
 
 
+static void continue_useradd_create(struct rpc_request *req);
+
+
 /**
  * Stage 1 (and the only one for now): Create user account.
  */
-static NTSTATUS useradd_create(struct composite_context *c,
-                              struct useradd_state *s)
+static void continue_useradd_create(struct rpc_request *req)
 {
+       struct composite_context *c;
+       struct useradd_state *s;
+
+       c = talloc_get_type(req->async.private_data, struct composite_context);
+       s = talloc_get_type(c->private_data, struct useradd_state);
+
+       /* check rpc layer status code */
        c->status = dcerpc_ndr_request_recv(s->req);
-       NT_STATUS_NOT_OK_RETURN(c->status);
+       if (!composite_is_ok(c)) return;
 
-       /* return the actual function call status */
+       /* check create user call status code */
        c->status = s->createuser.out.result;
-       
-       c->state = COMPOSITE_STATE_DONE;
-       return c->status;
-}
 
+       /* get created user account data */
+       s->user_handle = *s->createuser.out.user_handle;
+       s->user_rid    = *s->createuser.out.rid;
 
-/**
- * Event handler for asynchronous request. Handles transition through
- * intermediate stages of the call.
- *
- * @param req rpc call context
- */
-static void useradd_handler(struct rpc_request *req)
-{
-       struct composite_context *c = req->async.private_data;
-       struct useradd_state *s = talloc_get_type(c->private_data, struct useradd_state);
-       struct monitor_msg msg;
-       struct msg_rpc_create_user *rpc_create;
-       
-       switch (s->stage) {
-       case USERADD_CREATE:
-               c->status = useradd_create(c, s);
-               
-               /* prepare a message to pass to monitor function */
-               msg.type = mon_SamrCreateUser;
-               rpc_create = talloc(s, struct msg_rpc_create_user);
-               rpc_create->rid = *s->createuser.out.rid;
-               msg.data = (void*)rpc_create;
-               msg.data_size = sizeof(*rpc_create);
-               break;
-       }
+       /* issue a monitor message */
+       if (s->monitor_fn) {
+               struct monitor_msg msg;
+               struct msg_rpc_create_user rpc_create;
 
-       /* are we ok so far ? */
-       if (!NT_STATUS_IS_OK(c->status)) {
-               c->state = COMPOSITE_STATE_ERROR;
-       }
+               rpc_create.rid = *s->createuser.out.rid;
 
-       /* call monitor function provided the pointer has been passed */
-       if (s->monitor_fn) {
+               msg.type      = mon_SamrCreateUser;
+               msg.data      = (void*)&rpc_create;
+               msg.data_size = sizeof(rpc_create);
+               
                s->monitor_fn(&msg);
        }
-
-       /* are we done yet ? */
-       if (c->state >= COMPOSITE_STATE_DONE &&
-           c->async.fn) {
-               c->async.fn(c);
-       }
+       
+       composite_done(c);
 }
 
 
@@ -158,11 +135,7 @@ struct composite_context *libnet_rpc_useradd_send(struct dcerpc_pipe *p,
        s->req = dcerpc_samr_CreateUser_send(p, c, &s->createuser);
        if (composite_nomem(s->req, c)) return c;
 
-       /* callback handler for continuation */
-       s->req->async.callback = useradd_handler;
-       s->req->async.private_data  = c;
-       s->stage = USERADD_CREATE;
-
+       composite_continue_rpc(c, s->req, continue_useradd_create, c);
        return c;
 }
 
@@ -218,14 +191,9 @@ NTSTATUS libnet_rpc_useradd(struct dcerpc_pipe *p,
  * Composite USER DELETE functionality
  */
 
-static void userdel_handler(struct rpc_request*);
-
-enum userdel_stage { USERDEL_LOOKUP, USERDEL_OPEN, USERDEL_DELETE };
 
 struct userdel_state {
-       enum userdel_stage        stage;
        struct dcerpc_pipe        *pipe;
-       struct rpc_request        *req;
        struct policy_handle      domain_handle;
        struct policy_handle      user_handle;
        struct samr_LookupNames   lookupname;
@@ -237,166 +205,155 @@ struct userdel_state {
 };
 
 
+static void continue_userdel_name_found(struct rpc_request *req);
+static void continue_userdel_user_opened(struct rpc_request* req);
+static void continue_userdel_deleted(struct rpc_request *req);
+
+
 /**
  * Stage 1: Lookup the user name and resolve it to rid
  */
-static NTSTATUS userdel_lookup(struct composite_context *c,
-                              struct userdel_state *s)
+static void continue_userdel_name_found(struct rpc_request *req)
 {
-       /* receive samr_LookupNames result */
-       c->status = dcerpc_ndr_request_recv(s->req);
+       struct composite_context *c;
+       struct userdel_state *s;
+       struct rpc_request *openuser_req;
+       struct monitor_msg msg;
 
-       /* check rpc layer status */
-       NT_STATUS_NOT_OK_RETURN(c->status);
+       c = talloc_get_type(req->async.private_data, struct composite_context);
+       s = talloc_get_type(c->private_data, struct userdel_state);
 
-       /* check the call itself status */
-       NT_STATUS_NOT_OK_RETURN(s->lookupname.out.result);
+       /* receive samr_LookupNames result */
+       c->status = dcerpc_ndr_request_recv(req);
+       if (!composite_is_ok(c)) return;
+
+       c->status = s->lookupname.out.result;
+       if (!NT_STATUS_IS_OK(c->status)) {
+               composite_error(c, c->status);
+               return;
+       }
 
        /* what to do when there's no user account to delete
           and what if there's more than one rid resolved */
        if (!s->lookupname.out.rids.count) {
                c->status = NT_STATUS_NO_SUCH_USER;
                composite_error(c, c->status);
+               return;
 
        } else if (!s->lookupname.out.rids.count > 1) {
                c->status = NT_STATUS_INVALID_ACCOUNT_NAME;
                composite_error(c, c->status);
+               return;
        }
 
-       /* prepare the next rpc call arguments */
+       /* issue a monitor message */
+       if (s->monitor_fn) {
+               struct msg_rpc_lookup_name msg_lookup;
+
+               msg_lookup.rid   = s->lookupname.out.rids.ids;
+               msg_lookup.count = s->lookupname.out.rids.count;
+
+               msg.type      = mon_SamrLookupName;
+               msg.data      = (void*)&msg_lookup;
+               msg.data_size = sizeof(msg_lookup);
+               s->monitor_fn(&msg);
+       }
+
+       /* prepare the arguments for rpc call */
        s->openuser.in.domain_handle = &s->domain_handle;
        s->openuser.in.rid           = s->lookupname.out.rids.ids[0];
        s->openuser.in.access_mask   = SEC_FLAG_MAXIMUM_ALLOWED;
        s->openuser.out.user_handle  = &s->user_handle;
 
        /* send rpc request */
-       s->req = dcerpc_samr_OpenUser_send(s->pipe, c, &s->openuser);
-       if (s->req == NULL) return NT_STATUS_NO_MEMORY;
+       openuser_req = dcerpc_samr_OpenUser_send(s->pipe, c, &s->openuser);
+       if (composite_nomem(openuser_req, c)) return;
 
-       /* callback handler setup */
-       s->req->async.callback = userdel_handler;
-       s->req->async.private_data  = c;
-       s->stage = USERDEL_OPEN;
-       
-       return NT_STATUS_OK;
+       composite_continue_rpc(c, openuser_req, continue_userdel_user_opened, c);
 }
 
 
 /**
  * Stage 2: Open user account.
  */
-static NTSTATUS userdel_open(struct composite_context *c,
-                            struct userdel_state *s)
+static void continue_userdel_user_opened(struct rpc_request* req)
 {
+       struct composite_context *c;
+       struct userdel_state *s;
+       struct rpc_request *deluser_req;
+       struct monitor_msg msg;
+
+       c = talloc_get_type(req->async.private_data, struct composite_context);
+       s = talloc_get_type(c->private_data, struct userdel_state);
+
        /* receive samr_OpenUser result */
-       c->status = dcerpc_ndr_request_recv(s->req);
-       NT_STATUS_NOT_OK_RETURN(c->status);
+       c->status = dcerpc_ndr_request_recv(req);
+       if (!composite_is_ok(c)) return;
+
+       c->status = s->openuser.out.result;
+       if (!NT_STATUS_IS_OK(c->status)) {
+               composite_error(c, c->status);
+               return;
+       }
+       
+       /* issue a monitor message */
+       if (s->monitor_fn) {
+               struct msg_rpc_open_user msg_open;
+
+               msg_open.rid         = s->openuser.in.rid;
+               msg_open.access_mask = s->openuser.in.access_mask;
+
+               msg.type      = mon_SamrOpenUser;
+               msg.data      = (void*)&msg_open;
+               msg.data_size = sizeof(msg_open);
+               s->monitor_fn(&msg);
+       }
 
        /* prepare the final rpc call arguments */
        s->deleteuser.in.user_handle   = &s->user_handle;
        s->deleteuser.out.user_handle  = &s->user_handle;
        
        /* send rpc request */
-       s->req = dcerpc_samr_DeleteUser_send(s->pipe, c, &s->deleteuser);
-       if (s->req == NULL) return NT_STATUS_NO_MEMORY;
+       deluser_req = dcerpc_samr_DeleteUser_send(s->pipe, c, &s->deleteuser);
+       if (composite_nomem(deluser_req, c)) return;
 
        /* callback handler setup */
-       s->req->async.callback = userdel_handler;
-       s->req->async.private_data  = c;
-       s->stage = USERDEL_DELETE;
-       
-       return NT_STATUS_OK;
+       composite_continue_rpc(c, deluser_req, continue_userdel_deleted, c);
 }
 
 
 /**
  * Stage 3: Delete user account
  */
-static NTSTATUS userdel_delete(struct composite_context *c,
-                              struct userdel_state *s)
-{
-       /* receive samr_DeleteUser result */
-       c->status = dcerpc_ndr_request_recv(s->req);
-       NT_STATUS_NOT_OK_RETURN(c->status);
-       
-       /* return the actual function call status */
-       c->status = s->deleteuser.out.result;
-
-       c->state = COMPOSITE_STATE_DONE;
-
-       return c->status;
-}
-
-
-/**
- * Event handler for asynchronous request. Handles transition through
- * intermediate stages of the call.
- *
- * @param req rpc call context
- */
-static void userdel_handler(struct rpc_request *req)
+static void continue_userdel_deleted(struct rpc_request *req)
 {
        struct composite_context *c;
        struct userdel_state *s;
        struct monitor_msg msg;
-       struct msg_rpc_lookup_name *msg_lookup;
-       struct msg_rpc_open_user *msg_open;
 
        c = talloc_get_type(req->async.private_data, struct composite_context);
        s = talloc_get_type(c->private_data, struct userdel_state);
-       
-       switch (s->stage) {
-       case USERDEL_LOOKUP:
-               c->status = userdel_lookup(c, s);
-
-               /* monitor message */
-               msg.type = mon_SamrLookupName;
-               msg_lookup = talloc(s, struct msg_rpc_lookup_name);
-
-               msg_lookup->rid   = s->lookupname.out.rids.ids;
-               msg_lookup->count = s->lookupname.out.rids.count;
-               msg.data = (void*)msg_lookup;
-               msg.data_size = sizeof(*msg_lookup);
-               break;
-
-       case USERDEL_OPEN:
-               c->status = userdel_open(c, s);
-
-               /* monitor message */
-               msg.type = mon_SamrOpenUser;
-               msg_open = talloc(s, struct msg_rpc_open_user);
-
-               msg_open->rid         = s->openuser.in.rid;
-               msg_open->access_mask = s->openuser.in.rid;
-               msg.data = (void*)msg_open;
-               msg.data_size = sizeof(*msg_open);
-               break;
-
-       case USERDEL_DELETE:
-               c->status = userdel_delete(c, s);
-               
-               /* monitor message */
-               msg.type = mon_SamrDeleteUser;
-               msg.data = NULL;
-               msg.data_size = 0;
-               break;
-       }
 
-       /* are we ok, so far ? */
+       /* receive samr_DeleteUser result */
+       c->status = dcerpc_ndr_request_recv(req);
+       if (!composite_is_ok(c)) return;
+
+       /* return the actual function call status */
+       c->status = s->deleteuser.out.result;
        if (!NT_STATUS_IS_OK(c->status)) {
-               c->state = COMPOSITE_STATE_ERROR;
+               composite_error(c, c->status);
+               return;
        }
-
-       /* call monitor function provided the pointer has been passed */
+       
+       /* issue a monitor message */
        if (s->monitor_fn) {
+               msg.type      = mon_SamrDeleteUser;
+               msg.data      = NULL;
+               msg.data_size = 0;
                s->monitor_fn(&msg);
        }
 
-       /* are we done yet */
-       if (c->state >= COMPOSITE_STATE_DONE &&
-           c->async.fn) {
-               c->async.fn(c);
-       }
+       composite_done(c);
 }
 
 
@@ -414,17 +371,16 @@ struct composite_context *libnet_rpc_userdel_send(struct dcerpc_pipe *p,
 {
        struct composite_context *c;
        struct userdel_state *s;
+       struct rpc_request *lookup_req;
 
        /* composite context allocation and setup */
-       c = talloc_zero(p, struct composite_context);
+       c = composite_create(p, dcerpc_event_context(p));
        if (c == NULL) return NULL;
 
        s = talloc_zero(c, struct userdel_state);
        if (composite_nomem(s, c)) return c;
 
-       c->state         = COMPOSITE_STATE_IN_PROGRESS;
        c->private_data  = s;
-       c->event_ctx     = dcerpc_event_context(p);
 
        /* store function parameters in the state structure */
        s->pipe          = p;
@@ -438,13 +394,11 @@ struct composite_context *libnet_rpc_userdel_send(struct dcerpc_pipe *p,
        s->lookupname.in.names->string = io->in.username;
 
        /* send the request */
-       s->req = dcerpc_samr_LookupNames_send(p, c, &s->lookupname);
-
-       /* callback handler setup */
-       s->req->async.callback = userdel_handler;
-       s->req->async.private_data  = c;
-       s->stage = USERDEL_LOOKUP;
+       lookup_req = dcerpc_samr_LookupNames_send(p, c, &s->lookupname);
+       if (composite_nomem(lookup_req, c)) return c;
 
+       /* set the next stage */
+       composite_continue_rpc(c, lookup_req, continue_userdel_name_found, c);
        return c;
 }
 
@@ -498,14 +452,14 @@ NTSTATUS libnet_rpc_userdel(struct dcerpc_pipe *p,
  * USER MODIFY functionality
  */
 
-static void usermod_handler(struct rpc_request*);
+static void continue_usermod_name_found(struct rpc_request *req);
+static void continue_usermod_user_opened(struct rpc_request *req);
+static void continue_usermod_user_queried(struct rpc_request *req);
+static void continue_usermod_user_changed(struct rpc_request *req);
 
-enum usermod_stage { USERMOD_LOOKUP, USERMOD_OPEN, USERMOD_QUERY, USERMOD_MODIFY };
 
 struct usermod_state {
-       enum usermod_stage         stage;
        struct dcerpc_pipe         *pipe;
-       struct rpc_request         *req;
        struct policy_handle       domain_handle;
        struct policy_handle       user_handle;
        struct usermod_change      change;
@@ -523,24 +477,50 @@ struct usermod_state {
 /**
  * Step 1: Lookup user name
  */
-static NTSTATUS usermod_lookup(struct composite_context *c,
-                              struct usermod_state *s)
+static void continue_usermod_name_found(struct rpc_request *req)
 {
+       struct composite_context *c;
+       struct usermod_state *s;
+       struct rpc_request *openuser_req;
+       struct monitor_msg msg;
+
+       c = talloc_get_type(req->async.private_data, struct composite_context);
+       s = talloc_get_type(c->private_data, struct usermod_state);
+
        /* receive samr_LookupNames result */
-       c->status = dcerpc_ndr_request_recv(s->req);
-       NT_STATUS_NOT_OK_RETURN(c->status);
+       c->status = dcerpc_ndr_request_recv(req);
+       if (!composite_is_ok(c)) return;
+
+       c->status = s->lookupname.out.result;
+       if (!NT_STATUS_IS_OK(c->status)) {
+               composite_error(c, c->status);
+               return;
+       }
 
        /* what to do when there's no user account to delete
           and what if there's more than one rid resolved */
        if (!s->lookupname.out.rids.count) {
                c->status = NT_STATUS_NO_SUCH_USER;
-               c->state  = COMPOSITE_STATE_ERROR;
-               return c->status;
+               composite_error(c, c->status);
+               return;
 
        } else if (!s->lookupname.out.rids.count > 1) {
                c->status = NT_STATUS_INVALID_ACCOUNT_NAME;
-               c->state  = COMPOSITE_STATE_ERROR;
-               return c->status;
+               composite_error(c, c->status);
+               return;
+       }
+
+       /* issue a monitor message */
+       if (s->monitor_fn) {
+               struct msg_rpc_lookup_name msg_lookup;
+
+               msg_lookup.rid   = s->lookupname.out.rids.ids;
+               msg_lookup.count = s->lookupname.out.rids.count;
+
+               msg.type      = mon_SamrLookupName;
+               msg.data      = (void*)&msg_lookup;
+               msg.data_size = sizeof(msg_lookup);
+               s->monitor_fn(&msg);
        }
 
        /* prepare the next rpc call */
@@ -550,14 +530,10 @@ static NTSTATUS usermod_lookup(struct composite_context *c,
        s->openuser.out.user_handle  = &s->user_handle;
 
        /* send the rpc request */
-       s->req = dcerpc_samr_OpenUser_send(s->pipe, c, &s->openuser);
+       openuser_req = dcerpc_samr_OpenUser_send(s->pipe, c, &s->openuser);
+       if (composite_nomem(openuser_req, c)) return;
 
-       /* callback handler setup */
-       s->req->async.callback = usermod_handler;
-       s->req->async.private_data  = c;
-       s->stage = USERMOD_OPEN;
-       
-       return NT_STATUS_OK;
+       composite_continue_rpc(c, openuser_req, continue_usermod_user_opened, c);
 }
 
 
@@ -567,8 +543,8 @@ static NTSTATUS usermod_lookup(struct composite_context *c,
  * function are made until there's no flags set meaning that all of the
  * changes have been made.
  */
-static uint32_t usermod_setfields(struct usermod_state *s, uint16_t *level,
-                                 union samr_UserInfo *i)
+static bool usermod_setfields(struct usermod_state *s, uint16_t *level,
+                             union samr_UserInfo *i, bool queried)
 {
        if (s->change.fields == 0) return s->change.fields;
 
@@ -602,15 +578,14 @@ static uint32_t usermod_setfields(struct usermod_state *s, uint16_t *level,
            (*level == 0 || *level == 2)) {
                *level = 2;
                
-               if (s->stage == USERMOD_QUERY) {
+               if (queried) {
                        /* the user info is obtained, so now set the required field */
                        i->info2.comment.string = s->change.comment;
                        s->change.fields ^= USERMOD_FIELD_COMMENT;
                        
                } else {
                        /* we need to query the user info before setting one field in it */
-                       s->stage = USERMOD_QUERY;
-                       return s->change.fields;
+                       return false;
                }
        }
 
@@ -634,12 +609,11 @@ static uint32_t usermod_setfields(struct usermod_state *s, uint16_t *level,
            (*level == 0 || *level == 10)) {
                *level = 10;
                
-               if (s->stage == USERMOD_QUERY) {
+               if (queried) {
                        i->info10.home_directory.string = s->change.home_directory;
                        s->change.fields ^= USERMOD_FIELD_HOME_DIRECTORY;
                } else {
-                       s->stage = USERMOD_QUERY;
-                       return s->change.fields;
+                       return false;
                }
        }
 
@@ -647,12 +621,11 @@ static uint32_t usermod_setfields(struct usermod_state *s, uint16_t *level,
            (*level == 0 || *level == 10)) {
                *level = 10;
                
-               if (s->stage == USERMOD_QUERY) {
+               if (queried) {
                        i->info10.home_drive.string = s->change.home_drive;
                        s->change.fields ^= USERMOD_FIELD_HOME_DRIVE;
                } else {
-                       s->stage = USERMOD_QUERY;
-                       return s->change.fields;
+                       return false;
                }
        }
        
@@ -673,19 +646,15 @@ static uint32_t usermod_setfields(struct usermod_state *s, uint16_t *level,
        }
 
        /* We're going to be here back again soon unless all fields have been set */
-       if (s->change.fields) {
-               s->stage = USERMOD_OPEN;
-       } else {
-               s->stage = USERMOD_MODIFY;
-       }
-
-       return s->change.fields;
+       return true;
 }
 
 
 static NTSTATUS usermod_change(struct composite_context *c,
                               struct usermod_state *s)
 {
+       struct rpc_request *query_req, *setuser_req;
+       bool do_set;
        union samr_UserInfo *i = &s->info;
 
        /* set the level to invalid value, so that unless setfields routine 
@@ -693,12 +662,11 @@ static NTSTATUS usermod_change(struct composite_context *c,
        uint16_t level = 27;
 
        /* prepare UserInfo level and data based on bitmask field */
-       s->change.fields = usermod_setfields(s, &level, i);
+       do_set = usermod_setfields(s, &level, i, false);
 
        if (level < 1 || level > 26) {
                /* apparently there's a field that the setfields routine
                   does not know how to set */
-               c->state = COMPOSITE_STATE_ERROR;
                return NT_STATUS_INVALID_PARAMETER;
        }
 
@@ -707,13 +675,14 @@ static NTSTATUS usermod_change(struct composite_context *c,
           first, right before changing the data. Otherwise we could set required
           fields and accidentally reset the others.
        */
-       if (s->stage == USERMOD_QUERY) {
+       if (!do_set) {
                s->queryuser.in.user_handle = &s->user_handle;
                s->queryuser.in.level       = level;
 
                /* send query user info request to retrieve complete data of
                   a particular info level */
-               s->req = dcerpc_samr_QueryUserInfo_send(s->pipe, c, &s->queryuser);
+               query_req = dcerpc_samr_QueryUserInfo_send(s->pipe, c, &s->queryuser);
+               composite_continue_rpc(c, query_req, continue_usermod_user_queried, c);
 
        } else {
                s->setuser.in.user_handle  = &s->user_handle;
@@ -721,13 +690,10 @@ static NTSTATUS usermod_change(struct composite_context *c,
                s->setuser.in.info         = i;
 
                /* send set user info request after making required change */
-               s->req = dcerpc_samr_SetUserInfo_send(s->pipe, c, &s->setuser);
+               setuser_req = dcerpc_samr_SetUserInfo_send(s->pipe, c, &s->setuser);
+               composite_continue_rpc(c, setuser_req, continue_usermod_user_changed, c);
        }
-
-       /* callback handler setup */
-       s->req->async.callback = usermod_handler;
-       s->req->async.private_data  = c;
-
+       
        return NT_STATUS_OK;
 }
 
@@ -735,34 +701,58 @@ static NTSTATUS usermod_change(struct composite_context *c,
 /**
  * Stage 2: Open user account
  */
-static NTSTATUS usermod_open(struct composite_context *c,
-                            struct usermod_state *s)
+static void continue_usermod_user_opened(struct rpc_request *req)
 {
-       c->status = dcerpc_ndr_request_recv(s->req);
-       NT_STATUS_NOT_OK_RETURN(c->status);
-       
-       return usermod_change(c, s);
+       struct composite_context *c;
+       struct usermod_state *s;
+
+       c = talloc_get_type(req->async.private_data, struct composite_context);
+       s = talloc_get_type(c->private_data, struct usermod_state);
+
+       c->status = dcerpc_ndr_request_recv(req);
+       if (!composite_is_ok(c)) return;
+
+       c->status = s->openuser.out.result;
+       if (!NT_STATUS_IS_OK(c->status)) {
+               composite_error(c, c->status);
+               return;
+       }
+
+       c->status = usermod_change(c, s);
 }
 
 
 /**
  * Stage 2a (optional): Query the user information
  */
-static NTSTATUS usermod_query(struct composite_context *c,
-                             struct usermod_state *s)
+static void continue_usermod_user_queried(struct rpc_request *req)
 {
-       union samr_UserInfo *i = &s->info;
+       struct composite_context *c;
+       struct usermod_state *s;
+       union samr_UserInfo *i;
        uint16_t level;
+       struct rpc_request *setuser_req;
+       
+       c = talloc_get_type(req->async.private_data, struct composite_context);
+       s = talloc_get_type(c->private_data, struct usermod_state);
+
+       i = &s->info;
 
        /* receive samr_QueryUserInfo result */
-       c->status = dcerpc_ndr_request_recv(s->req);
-       NT_STATUS_NOT_OK_RETURN(c->status);
+       c->status = dcerpc_ndr_request_recv(req);
+       if (!composite_is_ok(c)) return;
+
+       c->status = s->queryuser.out.result;
+       if (!NT_STATUS_IS_OK(c->status)) {
+               composite_error(c, c->status);
+               return;
+       }
 
        /* get returned user data and make a change (potentially one
           of many) */
        s->info = *s->queryuser.out.info;
 
-       s->change.fields = usermod_setfields(s, &level, i);
+       usermod_setfields(s, &level, i, true);
 
        /* prepare rpc call arguments */
        s->setuser.in.user_handle  = &s->user_handle;
@@ -770,127 +760,40 @@ static NTSTATUS usermod_query(struct composite_context *c,
        s->setuser.in.info         = i;
 
        /* send the rpc request */
-       s->req = dcerpc_samr_SetUserInfo_send(s->pipe, c, &s->setuser);
-
-       /* callback handler setup */
-       s->req->async.callback = usermod_handler;
-       s->req->async.private_data  = c;
-
-       return NT_STATUS_OK;
+       setuser_req = dcerpc_samr_SetUserInfo_send(s->pipe, c, &s->setuser);
+       composite_continue_rpc(c, setuser_req, continue_usermod_user_changed, c);
 }
 
 
 /**
  * Stage 3: Set new user account data
  */
-static NTSTATUS usermod_modify(struct composite_context *c,
-                              struct usermod_state *s)
-{
-       /* receive samr_SetUserInfo result */
-       c->status = dcerpc_ndr_request_recv(s->req);
-       NT_STATUS_NOT_OK_RETURN(c->status);
-
-       /* return the actual function call status */
-       c->status = s->setuser.out.result;
-
-       if (s->change.fields == 0) {
-               /* all fields have been set - we're done */
-               c->state = COMPOSITE_STATE_DONE;
-       } else {
-               /* something's still not changed - repeat the procedure */
-               return usermod_change(c, s);
-       }
-
-       return c->status;
-}
-
-
-/**
- * Event handler for asynchronous request. Handles transition through
- * intermediate stages of the call.
- *
- * @param req rpc call context
- */
-
-static void usermod_handler(struct rpc_request *req)
+static void continue_usermod_user_changed(struct rpc_request *req)
 {
        struct composite_context *c;
        struct usermod_state *s;
-       struct monitor_msg msg;
-       struct msg_rpc_lookup_name *msg_lookup;
-       struct msg_rpc_open_user *msg_open;
-
+       
        c = talloc_get_type(req->async.private_data, struct composite_context);
        s = talloc_get_type(c->private_data, struct usermod_state);
 
-       switch (s->stage) {
-       case USERMOD_LOOKUP:
-               c->status = usermod_lookup(c, s);
-               
-               if (NT_STATUS_IS_OK(c->status)) {
-                       /* monitor message */
-                       msg.type = mon_SamrLookupName;
-                       msg_lookup = talloc(s, struct msg_rpc_lookup_name);
-                       
-                       msg_lookup->rid   = s->lookupname.out.rids.ids;
-                       msg_lookup->count = s->lookupname.out.rids.count;
-                       msg.data = (void*)msg_lookup;
-                       msg.data_size = sizeof(*msg_lookup);
-               }
-               break;
-
-       case USERMOD_OPEN:
-               c->status = usermod_open(c, s);
-
-               if (NT_STATUS_IS_OK(c->status)) {
-                       /* monitor message */
-                       msg.type = mon_SamrOpenUser;
-                       msg_open = talloc(s, struct msg_rpc_open_user);
-                       
-                       msg_open->rid         = s->openuser.in.rid;
-                       msg_open->access_mask = s->openuser.in.rid;
-                       msg.data = (void*)msg_open;
-                       msg.data_size = sizeof(*msg_open);
-               }
-               break;
-
-       case USERMOD_QUERY:
-               c->status = usermod_query(c, s);
-
-               if (NT_STATUS_IS_OK(c->status)) {
-                       /* monitor message */
-                       msg.type = mon_SamrQueryUser;
-                       msg.data = NULL;
-                       msg.data_size = 0;
-               }
-               break;
-
-       case USERMOD_MODIFY:
-               c->status = usermod_modify(c, s);
-               
-               if (NT_STATUS_IS_OK(c->status)) {
-                       /* monitor message */
-                       msg.type = mon_SamrSetUser;
-                       msg.data = NULL;
-                       msg.data_size = 0;
-               }
-               break;
-       }
+       /* receive samr_SetUserInfo result */
+       c->status = dcerpc_ndr_request_recv(req);
+       if (!composite_is_ok(c)) return;
 
-       /* are we ok, so far ? */
+       /* return the actual function call status */
+       c->status = s->setuser.out.result;
        if (!NT_STATUS_IS_OK(c->status)) {
-               c->state = COMPOSITE_STATE_ERROR;
+               composite_error(c, c->status);
+               return;
        }
 
-       /* call monitor function provided the pointer has been passed */
-       if (s->monitor_fn) {
-               s->monitor_fn(&msg);
-       }
+       if (s->change.fields == 0) {
+               /* all fields have been set - we're done */
+               composite_done(c);
 
-       /* are we done yet ? */
-       if (c->state >= COMPOSITE_STATE_DONE &&
-           c->async.fn) {
-               c->async.fn(c);
+       } else {
+               /* something's still not changed - repeat the procedure */
+               c->status = usermod_change(c, s);
        }
 }
 
@@ -909,17 +812,15 @@ struct composite_context *libnet_rpc_usermod_send(struct dcerpc_pipe *p,
 {
        struct composite_context *c;
        struct usermod_state *s;
+       struct rpc_request *lookup_req;
 
        /* composite context allocation and setup */
-       c = talloc_zero(p, struct composite_context);
+       c = composite_create(p, dcerpc_event_context(p));
        if (c == NULL) return NULL;
-
        s = talloc_zero(c, struct usermod_state);
        if (composite_nomem(s, c)) return c;
 
-       c->state        = COMPOSITE_STATE_IN_PROGRESS;
        c->private_data = s;
-       c->event_ctx    = dcerpc_event_context(p);
 
        /* store parameters in the call structure */
        s->pipe          = p;
@@ -934,13 +835,11 @@ struct composite_context *libnet_rpc_usermod_send(struct dcerpc_pipe *p,
        s->lookupname.in.names->string = io->in.username;
 
        /* send the rpc request */
-       s->req = dcerpc_samr_LookupNames_send(p, c, &s->lookupname);
+       lookup_req = dcerpc_samr_LookupNames_send(p, c, &s->lookupname);
+       if (composite_nomem(lookup_req, c)) return c;
        
        /* callback handler setup */
-       s->req->async.callback = usermod_handler;
-       s->req->async.private_data  = c;
-       s->stage = USERMOD_LOOKUP;
-
+       composite_continue_rpc(c, lookup_req, continue_usermod_name_found, c);
        return c;
 }
 
index b6302fe4ad0ac2c78274801b5e8394903c857bec..b681c25a16ccfd7cfa2e3ace349da58d88400654 100644 (file)
@@ -17,6 +17,8 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
+#include "librpc/gen_ndr/misc.h"
+
 
 /*
  * IO structures for userman.c functions
index c864bd4b397c53d9b670bdb0d08e0c4c3abec679..fcb0be4639488995833650529b40189d4f3319e1 100644 (file)
@@ -118,26 +118,34 @@ interface dcerpc
        } dcerpc_fault;
 
        /* the auth types we know about */
-       const uint8 DCERPC_AUTH_TYPE_NONE     = 0;
-       /* this seems to be not krb5! */
-       const uint8 DCERPC_AUTH_TYPE_KRB5_1   = 1;
-       const uint8 DCERPC_AUTH_TYPE_SPNEGO   = 9;
-       const uint8 DCERPC_AUTH_TYPE_NTLMSSP  = 10;
-       const uint8 DCERPC_AUTH_TYPE_KRB5     = 16;
-       const uint8 DCERPC_AUTH_TYPE_SCHANNEL = 68;
-       const uint8 DCERPC_AUTH_TYPE_MSMQ     = 100;
+       typedef [enum8bit] enum {
+               DCERPC_AUTH_TYPE_NONE     = 0,
+               /* this seems to be not krb5! */
+               DCERPC_AUTH_TYPE_KRB5_1   = 1,
+               DCERPC_AUTH_TYPE_SPNEGO   = 9,
+               DCERPC_AUTH_TYPE_NTLMSSP  = 10,
+               DCERPC_AUTH_TYPE_KRB5     = 16,
+               DCERPC_AUTH_TYPE_DPA      = 17,
+               DCERPC_AUTH_TYPE_MSN      = 18,
+               DCERPC_AUTH_TYPE_DIGEST   = 21,
+               DCERPC_AUTH_TYPE_SCHANNEL = 68,
+               DCERPC_AUTH_TYPE_MSMQ     = 100
+       } dcerpc_AuthType;
+
+       typedef [enum8bit] enum {
+               DCERPC_AUTH_LEVEL_NONE      = 1,
+               DCERPC_AUTH_LEVEL_CONNECT   = 2,
+               DCERPC_AUTH_LEVEL_CALL      = 3,
+               DCERPC_AUTH_LEVEL_PACKET    = 4,
+               DCERPC_AUTH_LEVEL_INTEGRITY = 5,
+               DCERPC_AUTH_LEVEL_PRIVACY   = 6
+       } dcerpc_AuthLevel;
 
        const uint8 DCERPC_AUTH_LEVEL_DEFAULT   = DCERPC_AUTH_LEVEL_CONNECT;
-       const uint8 DCERPC_AUTH_LEVEL_NONE      = 1;
-       const uint8 DCERPC_AUTH_LEVEL_CONNECT   = 2;
-       const uint8 DCERPC_AUTH_LEVEL_CALL      = 3;
-       const uint8 DCERPC_AUTH_LEVEL_PACKET    = 4;
-       const uint8 DCERPC_AUTH_LEVEL_INTEGRITY = 5;
-       const uint8 DCERPC_AUTH_LEVEL_PRIVACY   = 6;
 
        typedef [public] struct {
-               uint8  auth_type; 
-               uint8  auth_level;
+               dcerpc_AuthType auth_type; 
+               dcerpc_AuthLevel auth_level;
                uint8  auth_pad_length;
                uint8  auth_reserved;
                uint32 auth_context_id;
index 30da410a4603846772027da66000c4135f527015..50c8a826df0aac18c64a41408e3b6d2eb83f07b9 100644 (file)
@@ -2,6 +2,8 @@
   dfs interface definition
 */
 
+import "misc.idl";
+
 [ uuid("4fc742e0-4a10-11cf-8273-00aa004ae673"),
   version(3.0),
   pointer_default(unique),
index 9c490aebe3d4db20fcfd4c55f97debe1a0c9df10..af6350cc438c9d19585951a6200c5555d235deb1 100644 (file)
@@ -2,6 +2,8 @@
   dssetup interface definition
 */
 
+import "misc.idl";
+
 [
        uuid("3919286a-b10c-11d0-9ba8-00c04fd92ef5"),
        version(0.0),
index 5611c3de1835a3167e785cdb721e85c996bcfdb5..baf9f238778875b893b8e93cbf29a01ff2179d91 100644 (file)
@@ -8,6 +8,8 @@ http://www.opengroup.org/onlinepubs/9629399/chap6.htm#tagcjh_11_02_03_01: bindin
 
 */
 
+import "misc.idl";
+
 [
  uuid("e1af8308-5d1f-11c9-91a4-08002b14a0fa"), 
  version(3.0), 
index c4e633c254fe2890555ea96ca71c3e34d5c527b6..6f9ad25f092e3e838768ec528c97057fbe84927a 100644 (file)
@@ -7,6 +7,8 @@
    the change notify buffers
 */
 
+import "misc.idl";
+
 [
   pointer_default(unique)
 ]
index c1faefd3b1777c5c5bf0b0e0e4d5f9504e312858..d023865035d514894d061edd18157548e099702a 100644 (file)
@@ -5,6 +5,8 @@
   http://www.ietf.org/internet-drafts/draft-brown-dcom-v1-spec-04.txt
  */
 
+import "misc.idl";
+
 [
        pointer_default(unique)
 ]
index f05148aecc2fac311b8f82990747fc7fdd32ba17..753fad85cf96ee009877fcab00ddcc71d2f38aa9 100644 (file)
@@ -138,6 +138,8 @@ interface security
        const string SID_NULL = "S-1-0-0";
 
        /* the world domain */
+       const string NAME_WORLD       = "WORLD";
+
        const string SID_WORLD_DOMAIN = "S-1-1";
        const string SID_WORLD        = "S-1-1-0";
 
@@ -147,6 +149,8 @@ interface security
        const string SID_CREATOR_GROUP        = "S-1-3-1";
 
        /* SECURITY_NT_AUTHORITY */
+       const string NAME_NT_AUTHORITY            = "NT AUTHORITY";
+
        const string SID_NT_AUTHORITY             = "S-1-5";
        const string SID_NT_DIALUP                = "S-1-5-1";
        const string SID_NT_NETWORK               = "S-1-5-2";
@@ -167,6 +171,8 @@ interface security
        const string SID_NT_NETWORK_SERVICE       = "S-1-5-20";
 
        /* SECURITY_BUILTIN_DOMAIN_RID */
+       const string NAME_BUILTIN                  = "BUILTIN";
+
        const string SID_BUILTIN                   = "S-1-5-32";
        const string SID_BUILTIN_ADMINISTRATORS    = "S-1-5-32-544";
        const string SID_BUILTIN_USERS             = "S-1-5-32-545";
@@ -368,6 +374,10 @@ interface security
                SECINFO_OWNER                = 0x00000001,
                SECINFO_GROUP                = 0x00000002,
                SECINFO_DACL                 = 0x00000004,
-               SECINFO_SACL                 = 0x00000008
+               SECINFO_SACL                 = 0x00000008,
+               SECINFO_UNPROTECTED_SACL     = 0x10000000,
+               SECINFO_UNPROTECTED_DACL     = 0x20000000,
+               SECINFO_PROTECTED_SACL       = 0x40000000,
+               SECINFO_PROTECTED_DACL       = 0x80000000
        } security_secinfo;
 }
index 09a2680190f6fb9249c72a28de1d71b6a55c1698..d110a25aeb706d8752f759936e19296f5ba09971 100644 (file)
@@ -23,7 +23,7 @@
 #include <talloc.h>
 #include "lib/util/util.h" /* for discard_const */
 #include "lib/charset/charset.h"
-#include "libcli/util/nt_status.h"
+#include "libcli/util/ntstatus.h"
 
 /*
   this provides definitions for the libcli/rpc/ MSRPC library
@@ -269,7 +269,7 @@ enum ndr_compression_alg {
 
 
 #define NDR_PUSH_ALLOC_SIZE(ndr, s, size) do { \
-       (s) = talloc_size(ndr, size); \
+       (s) = talloc_array(ndr, uint8_t, size); \
        if (!(s)) return ndr_push_error(ndr, NDR_ERR_ALLOC, "push alloc %u failed: %s\n", (unsigned)size, __location__); \
 } while (0)
 
@@ -285,6 +285,7 @@ typedef void (*ndr_print_fn_t)(struct ndr_print *, const char *, const void *);
 typedef void (*ndr_print_function_t)(struct ndr_print *, const char *, int, const void *);
 
 #include "librpc/gen_ndr/misc.h"
+#include "libcli/util/werror.h"
 #include "librpc/ndr/libndr_proto.h"
 
 extern const struct ndr_syntax_id ndr_transfer_syntax;
@@ -328,5 +329,7 @@ NTSTATUS ndr_push_dom_sid28(struct ndr_push *ndr, int ndr_flags, const struct do
 NTSTATUS ndr_pull_dom_sid28(struct ndr_pull *ndr, int ndr_flags, struct dom_sid *sid);
 void ndr_print_dom_sid28(struct ndr_print *ndr, const char *name, const struct dom_sid *sid);
 size_t ndr_size_dom_sid28(const struct dom_sid *sid, int flags);
+void ndr_print_ipv4_addr(struct ndr_print *ndr, const char *name, const struct ipv4_addr *_ip);
+void ndr_print_GUID(struct ndr_print *ndr, const char *name, const struct GUID *guid);
 
 #endif /* __LIBNDR_H__ */
index 9fb39beff3244c3aa1533eebe547e828d5a0a91b..1ee8d05975876e0d2e8da0f6775ba20854c44bb1 100644 (file)
@@ -200,13 +200,16 @@ _PUBLIC_ void ndr_print_string_helper(struct ndr_print *ndr, const char *format,
        int i;
 
        for (i=0;i<ndr->depth;i++) {
-               ndr->private_data = talloc_asprintf_append(ndr->private_data, "    ");
+               ndr->private_data = talloc_asprintf_append_buffer(
+                                       (char *)ndr->private_data, "    ");
        }
 
        va_start(ap, format);
-       ndr->private_data = talloc_vasprintf_append(ndr->private_data, format, ap);
+       ndr->private_data = talloc_vasprintf_append_buffer((char *)ndr->private_data, 
+                                                   format, ap);
        va_end(ap);
-       ndr->private_data = talloc_asprintf_append(ndr->private_data, "\n");
+       ndr->private_data = talloc_asprintf_append_buffer((char *)ndr->private_data, 
+                                                  "\n");
 }
 
 /*
@@ -276,7 +279,7 @@ _PUBLIC_ char *ndr_print_struct_string(TALLOC_CTX *mem_ctx, ndr_print_fn_t fn, c
        ndr->depth = 1;
        ndr->flags = 0;
        fn(ndr, name, ptr);
-       ret = talloc_steal(mem_ctx, ndr->private_data);
+       ret = talloc_steal(mem_ctx, (char *)ndr->private_data);
 failed:
        talloc_free(ndr);
        return ret;
@@ -301,7 +304,7 @@ _PUBLIC_ char *ndr_print_union_string(TALLOC_CTX *mem_ctx, ndr_print_fn_t fn, co
        ndr->flags = 0;
        ndr_print_set_switch_value(ndr, ptr, level);
        fn(ndr, name, ptr);
-       ret = talloc_steal(mem_ctx, ndr->private_data);
+       ret = talloc_steal(mem_ctx, (char *)ndr->private_data);
 failed:
        talloc_free(ndr);
        return ret;
@@ -327,7 +330,7 @@ _PUBLIC_ char *ndr_print_function_string(TALLOC_CTX *mem_ctx,
        ndr->depth = 1;
        ndr->flags = 0;
        fn(ndr, name, flags, ptr);
-       ret = talloc_steal(mem_ctx, ndr->private_data);
+       ret = talloc_steal(mem_ctx, (char *)ndr->private_data);
 failed:
        talloc_free(ndr);
        return ret;
@@ -569,7 +572,7 @@ _PUBLIC_ NTSTATUS ndr_token_store(TALLOC_CTX *mem_ctx,
   retrieve a token from a ndr context, using cmp_fn to match the tokens
 */
 _PUBLIC_ NTSTATUS ndr_token_retrieve_cmp_fn(struct ndr_token_list **list, const void *key, uint32_t *v,
-                                  comparison_fn_t _cmp_fn, BOOL _remove_tok)
+                                  comparison_fn_t _cmp_fn, bool _remove_tok)
 {
        struct ndr_token_list *tok;
        for (tok=*list;tok;tok=tok->next) {
@@ -591,7 +594,7 @@ found:
 */
 _PUBLIC_ NTSTATUS ndr_token_retrieve(struct ndr_token_list **list, const void *key, uint32_t *v)
 {
-       return ndr_token_retrieve_cmp_fn(list, key, v, NULL, True);
+       return ndr_token_retrieve_cmp_fn(list, key, v, NULL, true);
 }
 
 /*
@@ -601,7 +604,7 @@ _PUBLIC_ uint32_t ndr_token_peek(struct ndr_token_list **list, const void *key)
 {
        NTSTATUS status;
        uint32_t v;
-       status = ndr_token_retrieve_cmp_fn(list, key, &v, NULL, False);
+       status = ndr_token_retrieve_cmp_fn(list, key, &v, NULL, false);
        if (NT_STATUS_IS_OK(status)) return v;
        return 0;
 }
index 6b3b44109b3ae2ca9c9c3f7bee4f9b2460187b99..1d8cfec649682d6b0db912edcc64495dcaea5e69 100644 (file)
@@ -22,6 +22,7 @@
 #include "includes.h"
 #include "lib/compression/mszip.h"
 #include "librpc/ndr/libndr.h"
+#include "librpc/ndr/ndr_compression.h"
 
 static NTSTATUS ndr_pull_compression_mszip_chunk(struct ndr_pull *ndrpull,
                                                 struct ndr_push *ndrpush,
index 6bd7d73cb8a753b4dacd4eaace45722563cb1254..689439c3832b2db6ff85de35506cd0bffbe449d6 100644 (file)
@@ -64,17 +64,17 @@ void ndr_print_drsuapi_DsReplicaObjectListItemEx(struct ndr_print *ndr, const ch
 }
 
 #define _OID_PUSH_CHECK(call) do { \
-       BOOL _status; \
+       bool _status; \
        _status = call; \
-       if (_status != True) { \
+       if (_status != true) { \
                return ndr_push_error(ndr, NDR_ERR_SUBCONTEXT, "OID Conversion Error: %s\n", __location__); \
        } \
 } while (0)
 
 #define _OID_PULL_CHECK(call) do { \
-       BOOL _status; \
+       bool _status; \
        _status = call; \
-       if (_status != True) { \
+       if (_status != true) { \
                return ndr_pull_error(ndr, NDR_ERR_SUBCONTEXT, "OID Conversion Error: %s\n", __location__); \
        } \
 } while (0)
index fca864a5ebf1eb56e76aca750a1feffee6668e01..b611f87a41a4c59fb2611ddaba4adad4ac3ad83c 100644 (file)
@@ -640,7 +640,7 @@ _PUBLIC_ uint32_t ndr_string_length(const void *_var, uint32_t element_size)
 {
        uint32_t i;
        uint8_t zero[4] = {0,0,0,0};
-       const char *var = _var;
+       const char *var = (const char *)_var;
 
        for (i = 0; memcmp(var+i*element_size,zero,element_size) != 0; i++);
 
@@ -731,5 +731,5 @@ _PUBLIC_ uint32_t ndr_charset_length(const void *var, charset_t chset)
 {
        /* FIXME: Treat special chars special here, taking chset into account */
        /* Also include 0 byte */
-       return strlen(var)+1;
+       return strlen((const char *)var)+1;
 }
index 9b43f8836d1b50e85d85a233d1d4351075cc6e48..d73e82bb71344a7bceb1d1d60f296721d86f9238 100644 (file)
@@ -123,10 +123,10 @@ NTSTATUS ndr_table_register_builtin_tables(void);
 
 NTSTATUS ndr_table_init(void)
 {
-       static BOOL initialized = False;
+       static bool initialized = false;
 
        if (initialized) return NT_STATUS_OK;
-       initialized = True;
+       initialized = true;
 
        ndr_table_register_builtin_tables();
 
index 8cf6ab544609ec332c74da79c3dd15dbafa6ab29..e92df224947b121d7c898b0564151900efcd1c11 100644 (file)
@@ -22,6 +22,7 @@
 */
 
 #include "includes.h"
+#include "librpc/ndr/libndr.h"
 
 /**
   build a GUID from a string
@@ -132,7 +133,7 @@ _PUBLIC_ struct GUID GUID_zero(void)
        return guid;
 }
 
-_PUBLIC_ BOOL GUID_all_zero(const struct GUID *u)
+_PUBLIC_ bool GUID_all_zero(const struct GUID *u)
 {
        if (u->time_low != 0 ||
            u->time_mid != 0 ||
@@ -140,12 +141,12 @@ _PUBLIC_ BOOL GUID_all_zero(const struct GUID *u)
            u->clock_seq[0] != 0 ||
            u->clock_seq[1] != 0 ||
            !all_zero(u->node, 6)) {
-               return False;
+               return false;
        }
-       return True;
+       return true;
 }
 
-_PUBLIC_ BOOL GUID_equal(const struct GUID *u1, const struct GUID *u2)
+_PUBLIC_ bool GUID_equal(const struct GUID *u1, const struct GUID *u2)
 {
        if (u1->time_low != u2->time_low ||
            u1->time_mid != u2->time_mid ||
@@ -153,9 +154,9 @@ _PUBLIC_ BOOL GUID_equal(const struct GUID *u1, const struct GUID *u2)
            u1->clock_seq[0] != u2->clock_seq[0] ||
            u1->clock_seq[1] != u2->clock_seq[1] ||
            memcmp(u1->node, u2->node, 6) != 0) {
-               return False;
+               return false;
        }
-       return True;
+       return true;
 }
 
 _PUBLIC_ int GUID_compare(const struct GUID *u1, const struct GUID *u2)
@@ -220,7 +221,7 @@ _PUBLIC_ char *NS_GUID_string(TALLOC_CTX *mem_ctx, const struct GUID *guid)
                               guid->node[4], guid->node[5]);
 }
 
-_PUBLIC_ BOOL policy_handle_empty(struct policy_handle *h) 
+_PUBLIC_ bool policy_handle_empty(struct policy_handle *h) 
 {
        return (h->handle_type == 0 && GUID_all_zero(&h->uuid));
 }
index 984cc20fbc7dd80f4c4be34540854732959856d2..1f0cc3699a38f62570a815da13d746aab5c8b7a1 100644 (file)
@@ -43,7 +43,7 @@ static void dcerpc_ship_next_request(struct dcerpc_connection *c);
 static int dcerpc_connection_destructor(struct dcerpc_connection *conn)
 {
        if (conn->dead) {
-               conn->free_skipped = True;
+               conn->free_skipped = true;
                return -1;
        }
        dcerpc_connection_dead(conn, NT_STATUS_LOCAL_DISCONNECT);
@@ -752,7 +752,7 @@ struct composite_context *dcerpc_bind_send(struct dcerpc_pipe *p,
        talloc_set_destructor(req, dcerpc_req_dequeue);
 
        c->status = p->conn->transport.send_request(p->conn, &blob,
-                                                   True);
+                                                   true);
        if (!composite_is_ok(c)) return c;
 
        event_add_timed(c->event_ctx, req,
@@ -798,7 +798,7 @@ NTSTATUS dcerpc_auth3(struct dcerpc_connection *c,
        }
 
        /* send it on its way */
-       status = c->transport.send_request(c, &blob, False);
+       status = c->transport.send_request(c, &blob, false);
        if (!NT_STATUS_IS_OK(status)) {
                return status;
        }
@@ -933,7 +933,7 @@ req_done:
 static struct rpc_request *dcerpc_request_send(struct dcerpc_pipe *p, 
                                               const struct GUID *object,
                                               uint16_t opnum,
-                                              BOOL async,
+                                              bool async,
                                               DATA_BLOB *stub_data)
 {
        struct rpc_request *req;
@@ -953,13 +953,13 @@ static struct rpc_request *dcerpc_request_send(struct dcerpc_pipe *p,
        req->flags = 0;
        req->fault_code = 0;
        req->async_call = async;
-       req->ignore_timeout = False;
+       req->ignore_timeout = false;
        req->async.callback = NULL;
        req->async.private_data = NULL;
        req->recv_handler = NULL;
 
        if (object != NULL) {
-               req->object = talloc_memdup(req, object, sizeof(*object));
+               req->object = (struct GUID *)talloc_memdup(req, (const void *)object, sizeof(*object));
                if (req->object == NULL) {
                        talloc_free(req);
                        return NULL;
@@ -1001,7 +1001,7 @@ static void dcerpc_ship_next_request(struct dcerpc_connection *c)
        struct ncacn_packet pkt;
        DATA_BLOB blob;
        uint32_t remaining, chunk_size;
-       BOOL first_packet = True;
+       bool first_packet = true;
 
        req = c->request_queue;
        if (req == NULL) {
@@ -1044,9 +1044,9 @@ static void dcerpc_ship_next_request(struct dcerpc_connection *c)
        /* we send a series of pdus without waiting for a reply */
        while (remaining > 0 || first_packet) {
                uint32_t chunk = MIN(chunk_size, remaining);
-               BOOL last_frag = False;
+               bool last_frag = false;
 
-               first_packet = False;
+               first_packet = false;
                pkt.pfc_flags &= ~(DCERPC_PFC_FLAG_FIRST |DCERPC_PFC_FLAG_LAST);
 
                if (remaining == stub_data->length) {
@@ -1054,7 +1054,7 @@ static void dcerpc_ship_next_request(struct dcerpc_connection *c)
                }
                if (chunk == remaining) {
                        pkt.pfc_flags |= DCERPC_PFC_FLAG_LAST;
-                       last_frag = True;
+                       last_frag = true;
                }
 
                pkt.u.request.stub_and_verifier.data = stub_data->data + 
@@ -1123,7 +1123,7 @@ NTSTATUS dcerpc_request_recv(struct rpc_request *req,
 NTSTATUS dcerpc_request(struct dcerpc_pipe *p, 
                        struct GUID *object,
                        uint16_t opnum,
-                       BOOL async,
+                       bool async,
                        TALLOC_CTX *mem_ctx,
                        DATA_BLOB *stub_data_in,
                        DATA_BLOB *stub_data_out)
@@ -1622,7 +1622,7 @@ struct composite_context *dcerpc_alter_context_send(struct dcerpc_pipe *p,
        DLIST_ADD_END(p->conn->pending, req, struct rpc_request *);
        talloc_set_destructor(req, dcerpc_req_dequeue);
 
-       c->status = p->conn->transport.send_request(p->conn, &blob, True);
+       c->status = p->conn->transport.send_request(p->conn, &blob, true);
        if (!composite_is_ok(c)) return c;
 
        event_add_timed(c->event_ctx, req,
index 756cb58e3a6881e87b3f4f76c019abcc28df5d96..7db6c1b7cdbedaf18358409b9e60ea9517f74009 100644 (file)
@@ -98,7 +98,7 @@ NTSTATUS dcerpc_bind_auth_none(struct dcerpc_pipe *p,
 struct bind_auth_state {
        struct dcerpc_pipe *pipe;
        DATA_BLOB credentials;
-       BOOL more_processing;   /* Is there anything more to do after the
+       bool more_processing;   /* Is there anything more to do after the
                                 * first bind itself received? */
 };
 
@@ -109,7 +109,7 @@ static void bind_auth_next_step(struct composite_context *c)
        struct bind_auth_state *state;
        struct dcerpc_security *sec;
        struct composite_context *creq;
-       BOOL more_processing = False;
+       bool more_processing = false;
 
        state = talloc_get_type(c->private_data, struct bind_auth_state);
        sec = &state->pipe->conn->security_state;
@@ -129,7 +129,7 @@ static void bind_auth_next_step(struct composite_context *c)
                                  &state->credentials);
 
        if (NT_STATUS_EQUAL(c->status, NT_STATUS_MORE_PROCESSING_REQUIRED)) {
-               more_processing = True;
+               more_processing = true;
                c->status = NT_STATUS_OK;
        }
 
index be95f2159415f3eae41effbfa82d64e741934e17..2d6237634da78d6cae39d2b5d3b9a9dd29c6c982 100644 (file)
@@ -31,6 +31,7 @@
 #include "libcli/smb2/smb2_calls.h"
 #include "librpc/rpc/dcerpc.h"
 #include "auth/credentials/credentials.h"
+#include "param/param.h"
 
 
 struct pipe_np_smb_state {
@@ -110,10 +111,13 @@ static struct composite_context *dcerpc_pipe_connect_ncacn_np_smb_send(TALLOC_CT
           remote rpc server */
        conn->in.dest_host              = s->io.binding->host;
        conn->in.port                   = 0;
-       conn->in.called_name            = s->io.binding->target_hostname;
+       if (s->io.binding->target_hostname == NULL)
+               conn->in.called_name = "*SMBSERVER"; /* FIXME: This is invalid */
+       else
+               conn->in.called_name            = s->io.binding->target_hostname;
        conn->in.service                = "IPC$";
        conn->in.service_type           = NULL;
-       conn->in.workgroup              = lp_workgroup();
+       conn->in.workgroup              = lp_workgroup(global_loadparm);
 
        /*
         * provide proper credentials - user supplied, but allow a
@@ -123,9 +127,9 @@ static struct composite_context *dcerpc_pipe_connect_ncacn_np_smb_send(TALLOC_CT
         */
        s->conn.in.credentials = s->io.creds;
        if (s->io.binding->flags & DCERPC_SCHANNEL) {
-               conn->in.fallback_to_anonymous  = True;
+               conn->in.fallback_to_anonymous  = true;
        } else {
-               conn->in.fallback_to_anonymous  = False;
+               conn->in.fallback_to_anonymous  = false;
        }
 
        /* send smb connect request */
index 6b43de3358ace0020b7c7bfd0ceec5398bcaa338..718ce694c5ba4abec749dddc5b4905ed0fd31155 100644 (file)
@@ -39,7 +39,7 @@ struct smb_private {
 */
 static void pipe_dead(struct dcerpc_connection *c, NTSTATUS status)
 {
-       struct smb_private *smb = c->transport.private_data;
+       struct smb_private *smb = (struct smb_private *)c->transport.private_data;
 
        if (smb->dead) {
                return;
@@ -141,7 +141,7 @@ static void smb_read_callback(struct smbcli_request *req)
 */
 static NTSTATUS send_read_request_continue(struct dcerpc_connection *c, DATA_BLOB *blob)
 {
-       struct smb_private *smb = c->transport.private_data;
+       struct smb_private *smb = (struct smb_private *)c->transport.private_data;
        union smb_read *io;
        struct smb_read_state *state;
        struct smbcli_request *req;
@@ -176,7 +176,7 @@ static NTSTATUS send_read_request_continue(struct dcerpc_connection *c, DATA_BLO
        io->readx.in.maxcnt = io->readx.in.mincnt;
        io->readx.in.offset = 0;
        io->readx.in.remaining = 0;
-       io->readx.in.read_for_execute = False;
+       io->readx.in.read_for_execute = false;
        io->readx.out.data = state->data.data + state->received;
        req = smb_raw_read_send(smb->tree, io);
        if (req == NULL) {
@@ -197,7 +197,7 @@ static NTSTATUS send_read_request_continue(struct dcerpc_connection *c, DATA_BLO
 */
 static NTSTATUS send_read_request(struct dcerpc_connection *c)
 {
-       struct smb_private *smb = c->transport.private_data;
+       struct smb_private *smb = (struct smb_private *)c->transport.private_data;
 
        if (smb->dead) {
                return NT_STATUS_CONNECTION_DISCONNECTED;
@@ -220,7 +220,7 @@ struct smb_trans_state {
 */
 static void smb_trans_callback(struct smbcli_request *req)
 {
-       struct smb_trans_state *state = req->async.private;
+       struct smb_trans_state *state = (struct smb_trans_state *)req->async.private;
        struct dcerpc_connection *c = state->c;
        NTSTATUS status;
 
@@ -249,7 +249,7 @@ static void smb_trans_callback(struct smbcli_request *req)
 */
 static NTSTATUS smb_send_trans_request(struct dcerpc_connection *c, DATA_BLOB *blob)
 {
-        struct smb_private *smb = c->transport.private_data;
+        struct smb_private *smb = (struct smb_private *)c->transport.private_data;
         struct smb_trans2 *trans;
         uint16_t setup[2];
        struct smb_trans_state *state;
@@ -297,7 +297,7 @@ static NTSTATUS smb_send_trans_request(struct dcerpc_connection *c, DATA_BLOB *b
 */
 static void smb_write_callback(struct smbcli_request *req)
 {
-       struct dcerpc_connection *c = req->async.private;
+       struct dcerpc_connection *c = (struct dcerpc_connection *)req->async.private;
 
        if (!NT_STATUS_IS_OK(req->status)) {
                DEBUG(0,("dcerpc_smb: write callback error\n"));
@@ -310,9 +310,10 @@ static void smb_write_callback(struct smbcli_request *req)
 /* 
    send a packet to the server
 */
-static NTSTATUS smb_send_request(struct dcerpc_connection *c, DATA_BLOB *blob, BOOL trigger_read)
+static NTSTATUS smb_send_request(struct dcerpc_connection *c, DATA_BLOB *blob, 
+                                bool trigger_read)
 {
-       struct smb_private *smb = c->transport.private_data;
+       struct smb_private *smb = (struct smb_private *)c->transport.private_data;
        union smb_write io;
        struct smbcli_request *req;
 
@@ -356,7 +357,7 @@ static NTSTATUS smb_send_request(struct dcerpc_connection *c, DATA_BLOB *blob, B
 */
 static NTSTATUS smb_shutdown_pipe(struct dcerpc_connection *c, NTSTATUS status)
 {
-       struct smb_private *smb = c->transport.private_data;
+       struct smb_private *smb = (struct smb_private *)c->transport.private_data;
        union smb_close io;
        struct smbcli_request *req;
 
@@ -382,7 +383,7 @@ static NTSTATUS smb_shutdown_pipe(struct dcerpc_connection *c, NTSTATUS status)
 */
 static const char *smb_peer_name(struct dcerpc_connection *c)
 {
-       struct smb_private *smb = c->transport.private_data;
+       struct smb_private *smb = (struct smb_private *)c->transport.private_data;
        return smb->server_name;
 }
 
@@ -400,7 +401,7 @@ static const char *smb_target_hostname(struct dcerpc_connection *c)
 */
 static NTSTATUS smb_session_key(struct dcerpc_connection *c, DATA_BLOB *session_key)
 {
-       struct smb_private *smb = c->transport.private_data;
+       struct smb_private *smb = (struct smb_private *)c->transport.private_data;
 
        if (smb->tree->session->user_session_key.data) {
                *session_key = smb->tree->session->user_session_key;
@@ -430,7 +431,9 @@ struct composite_context *dcerpc_pipe_open_smb_send(struct dcerpc_pipe *p,
        /* if we don't have a binding on this pipe yet, then create one */
        if (p->binding == NULL) {
                NTSTATUS status;
-               char *s = talloc_asprintf(p, "ncacn_np:%s", tree->session->transport->socket->hostname);
+               char *s;
+               SMB_ASSERT(tree->session->transport->socket->hostname != NULL);
+               s = talloc_asprintf(p, "ncacn_np:%s", tree->session->transport->socket->hostname);
                if (s == NULL) return NULL;
                status = dcerpc_parse_binding(p, s, &p->binding);
                talloc_free(s);
index dcfee1f2235e66c03091e39ef57fceb9fe10192d..b06964d331db123686c120f4a251e8f6b5b4dd58 100644 (file)
@@ -41,7 +41,7 @@ struct smb2_private {
 */
 static void pipe_dead(struct dcerpc_connection *c, NTSTATUS status)
 {
-       struct smb2_private *smb = c->transport.private_data;
+       struct smb2_private *smb = (struct smb2_private *)c->transport.private_data;
 
        if (smb->dead) {
                return;
@@ -145,7 +145,7 @@ static void smb2_read_callback(struct smb2_request *req)
 */
 static NTSTATUS send_read_request_continue(struct dcerpc_connection *c, DATA_BLOB *blob)
 {
-       struct smb2_private *smb = c->transport.private_data;
+       struct smb2_private *smb = (struct smb2_private *)c->transport.private_data;
        struct smb2_read io;
        struct smb2_read_state *state;
        struct smb2_request *req;
@@ -190,7 +190,7 @@ static NTSTATUS send_read_request_continue(struct dcerpc_connection *c, DATA_BLO
 */
 static NTSTATUS send_read_request(struct dcerpc_connection *c)
 {
-       struct smb2_private *smb = c->transport.private_data;
+       struct smb2_private *smb = (struct smb2_private *)c->transport.private_data;
 
        if (smb->dead) {
                return NT_STATUS_CONNECTION_DISCONNECTED;
@@ -280,7 +280,7 @@ static NTSTATUS smb2_send_trans_request(struct dcerpc_connection *c, DATA_BLOB *
 */
 static void smb2_write_callback(struct smb2_request *req)
 {
-       struct dcerpc_connection *c = req->async.private;
+       struct dcerpc_connection *c = (struct dcerpc_connection *)req->async.private;
 
        if (!NT_STATUS_IS_OK(req->status)) {
                DEBUG(0,("dcerpc_smb2: write callback error\n"));
@@ -294,9 +294,9 @@ static void smb2_write_callback(struct smb2_request *req)
    send a packet to the server
 */
 static NTSTATUS smb2_send_request(struct dcerpc_connection *c, DATA_BLOB *blob, 
-                                 BOOL trigger_read)
+                                 bool trigger_read)
 {
-       struct smb2_private *smb = c->transport.private_data;
+       struct smb2_private *smb = (struct smb2_private *)c->transport.private_data;
        struct smb2_write io;
        struct smb2_request *req;
 
@@ -328,7 +328,7 @@ static NTSTATUS smb2_send_request(struct dcerpc_connection *c, DATA_BLOB *blob,
 */
 static NTSTATUS smb2_shutdown_pipe(struct dcerpc_connection *c, NTSTATUS status)
 {
-       struct smb2_private *smb = c->transport.private_data;
+       struct smb2_private *smb = (struct smb2_private *)c->transport.private_data;
        struct smb2_close io;
        struct smb2_request *req;
 
index a5abf9b4be3449d981c39b4c2b1c9bc45078e8cc..f7ae377e7b324998c0abe0a5731e4c266e8d74a5 100644 (file)
@@ -28,6 +28,7 @@
 #include "libcli/composite/composite.h"
 #include "librpc/rpc/dcerpc.h"
 #include "libcli/resolve/resolve.h"
+#include "param/param.h"
 
 /* transport private information used by general socket pipe transports */
 struct sock_private {
@@ -45,7 +46,7 @@ struct sock_private {
 */
 static void sock_dead(struct dcerpc_connection *p, NTSTATUS status)
 {
-       struct sock_private *sock = p->transport.private_data;
+       struct sock_private *sock = (struct sock_private *)p->transport.private_data;
 
        if (!sock) return;
 
@@ -111,7 +112,7 @@ static NTSTATUS sock_process_recv(void *private, DATA_BLOB blob)
 {
        struct dcerpc_connection *p = talloc_get_type(private, 
                                                      struct dcerpc_connection);
-       struct sock_private *sock = p->transport.private_data;
+       struct sock_private *sock = (struct sock_private *)p->transport.private_data;
        sock->pending_reads--;
        if (sock->pending_reads == 0) {
                packet_recv_disable(sock->packet);
@@ -128,7 +129,7 @@ static void sock_io_handler(struct event_context *ev, struct fd_event *fde,
 {
        struct dcerpc_connection *p = talloc_get_type(private, 
                                                      struct dcerpc_connection);
-       struct sock_private *sock = p->transport.private_data;
+       struct sock_private *sock = (struct sock_private *)p->transport.private_data;
 
        if (flags & EVENT_FD_WRITE) {
                packet_queue_run(sock->packet);
@@ -149,7 +150,7 @@ static void sock_io_handler(struct event_context *ev, struct fd_event *fde,
 */
 static NTSTATUS sock_send_read(struct dcerpc_connection *p)
 {
-       struct sock_private *sock = p->transport.private_data;
+       struct sock_private *sock = (struct sock_private *)p->transport.private_data;
        sock->pending_reads++;
        if (sock->pending_reads == 1) {
                packet_recv_enable(sock->packet);
@@ -161,9 +162,9 @@ static NTSTATUS sock_send_read(struct dcerpc_connection *p)
    send an initial pdu in a multi-pdu sequence
 */
 static NTSTATUS sock_send_request(struct dcerpc_connection *p, DATA_BLOB *data, 
-                                 BOOL trigger_read)
+                                 bool trigger_read)
 {
-       struct sock_private *sock = p->transport.private_data;
+       struct sock_private *sock = (struct sock_private *)p->transport.private_data;
        DATA_BLOB blob;
        NTSTATUS status;
 
@@ -193,7 +194,7 @@ static NTSTATUS sock_send_request(struct dcerpc_connection *p, DATA_BLOB *data,
 */
 static NTSTATUS sock_shutdown_pipe(struct dcerpc_connection *p, NTSTATUS status)
 {
-       struct sock_private *sock = p->transport.private_data;
+       struct sock_private *sock = (struct sock_private *)p->transport.private_data;
 
        if (sock && sock->sock) {
                sock_dead(p, status);
@@ -294,7 +295,7 @@ static void continue_socket_connect(struct composite_context *ctx)
        packet_set_initial_read(sock->packet, 16);
 
        /* ensure we don't get SIGPIPE */
-       BlockSignals(True,SIGPIPE);
+       BlockSignals(true, SIGPIPE);
 
        composite_done(c);
 }
@@ -477,7 +478,8 @@ struct composite_context* dcerpc_pipe_open_tcp_send(struct dcerpc_connection *co
        s->conn            = conn;
 
        make_nbt_name_server(&name, server);
-       resolve_req = resolve_name_send(&name, c->event_ctx, lp_name_resolve_order());
+       resolve_req = resolve_name_send(&name, c->event_ctx, 
+                                       lp_name_resolve_order(global_loadparm));
        composite_continue(c, resolve_req, continue_ip_resolve_name, c);
        return c;
 }
@@ -617,7 +619,7 @@ struct composite_context* dcerpc_pipe_open_pipe_send(struct dcerpc_connection *c
        s->conn = conn;
 
        string_replace(canon, '/', '\\');
-       s->full_path = talloc_asprintf(canon, "%s/%s", lp_ncalrpc_dir(), canon);
+       s->full_path = talloc_asprintf(canon, "%s/%s", lp_ncalrpc_dir(global_loadparm), canon);
        if (composite_nomem(s->full_path, c)) return c;
 
        /* prepare server address using path and transport name */
index 11f5451891ec161b3cfbae204f21bdde6d7a6a69..408860c9edb5436c5e400f8d775788bf078df61f 100644 (file)
@@ -29,6 +29,7 @@
 #include "librpc/gen_ndr/ndr_dcerpc.h"
 #include "librpc/gen_ndr/ndr_misc.h"
 #include "auth/credentials/credentials.h"
+#include "param/param.h"
 
 /*
   find a dcerpc call on an interface by name
@@ -254,43 +255,42 @@ char *dcerpc_binding_string(TALLOC_CTX *mem_ctx, const struct dcerpc_binding *b)
        }
 
        if (t_name != NULL) {
-               s = talloc_asprintf_append(s, "%s:", t_name);
-               if (s == NULL) 
+               s = talloc_asprintf_append_buffer(s, "%s:", t_name);
+               if (s == NULL) {
                        return NULL;
-       } else {
-               s = NULL;
+               }
        }
 
        if (b->host) {
-               s = talloc_asprintf_append(s, "%s", b->host);
+               s = talloc_asprintf_append_buffer(s, "%s", b->host);
        }
 
        if (!b->endpoint && !b->options && !b->flags) {
                return s;
        }
 
-       s = talloc_asprintf_append(s, "[");
+       s = talloc_asprintf_append_buffer(s, "[");
 
        if (b->endpoint) {
-               s = talloc_asprintf_append(s, "%s", b->endpoint);
+               s = talloc_asprintf_append_buffer(s, "%s", b->endpoint);
        }
 
        /* this is a *really* inefficent way of dealing with strings,
           but this is rarely called and the strings are always short,
           so I don't care */
        for (i=0;b->options && b->options[i];i++) {
-               s = talloc_asprintf_append(s, ",%s", b->options[i]);
+               s = talloc_asprintf_append_buffer(s, ",%s", b->options[i]);
                if (!s) return NULL;
        }
 
        for (i=0;i<ARRAY_SIZE(ncacn_options);i++) {
                if (b->flags & ncacn_options[i].flag) {
-                       s = talloc_asprintf_append(s, ",%s", ncacn_options[i].name);
+                       s = talloc_asprintf_append_buffer(s, ",%s", ncacn_options[i].name);
                        if (!s) return NULL;
                }
        }
 
-       s = talloc_asprintf_append(s, "]");
+       s = talloc_asprintf_append_buffer(s, "]");
 
        return s;
 }
@@ -930,7 +930,7 @@ struct composite_context *dcerpc_epm_map_binding_send(TALLOC_CTX *mem_ctx,
        /* anonymous credentials for rpc connection used to get endpoint mapping */
        anon_creds = cli_credentials_init(mem_ctx);
        cli_credentials_set_event_context(anon_creds, ev);
-       cli_credentials_set_conf(anon_creds);
+       cli_credentials_set_conf(anon_creds, global_loadparm);
        cli_credentials_set_anonymous(anon_creds);
 
        /*
@@ -1363,7 +1363,7 @@ void dcerpc_log_packet(const struct ndr_interface_table *ndr,
        for (i=0;i<num_examples;i++) {
                char *name=NULL;
                asprintf(&name, "%s/rpclog/%s-%u.%d.%s", 
-                        lp_lockdir(), ndr->name, opnum, i,
+                        lp_lockdir(global_loadparm), ndr->name, opnum, i,
                         (flags&NDR_IN)?"in":"out");
                if (name == NULL) {
                        return;
index 18cf4dfb46292e80b3431ea395349aecafefa045..362848049b08e81bfbcbc3ab7422e69b30f87620 100644 (file)
@@ -95,6 +95,41 @@ static const char *test_strings[] = {
        "ncacn_unix_stream:[/tmp/epmapper,sign]",
 };
 
+static bool test_parse_check_results(struct torture_context *tctx)
+{
+       struct dcerpc_binding *b;
+       struct GUID uuid;
+
+       torture_assert_ntstatus_ok(tctx, 
+                                  GUID_from_string("308FB580-1EB2-11CA-923B-08002B1075A7", &uuid),
+                                  "parsing uuid");
+
+       torture_assert_ntstatus_ok(tctx, dcerpc_parse_binding(tctx, "ncacn_np:$SERVER", &b), "parse");
+       torture_assert(tctx, b->transport == NCACN_NP, "ncacn_np expected");
+       torture_assert_ntstatus_ok(tctx, dcerpc_parse_binding(tctx, "ncacn_ip_tcp:$SERVER", &b), "parse");
+       torture_assert(tctx, b->transport == NCACN_IP_TCP, "ncacn_ip_tcp expected");
+       torture_assert_ntstatus_ok(tctx, dcerpc_parse_binding(tctx, "ncacn_np:$SERVER[rpcecho]", &b), "parse");
+       torture_assert_str_equal(tctx, b->endpoint, "rpcecho", "endpoint");
+       torture_assert_ntstatus_ok(tctx, dcerpc_parse_binding(tctx, "ncacn_np:$SERVER[/pipe/rpcecho]", &b), "parse");
+       torture_assert_ntstatus_ok(tctx, dcerpc_parse_binding(tctx, "ncacn_np:$SERVER[/pipe/rpcecho,sign,seal]", &b), "parse");
+       torture_assert(tctx, b->flags == DCERPC_SIGN+DCERPC_SEAL, "sign+seal flags");
+       torture_assert_str_equal(tctx, b->endpoint, "/pipe/rpcecho", "endpoint");
+       torture_assert_ntstatus_ok(tctx, dcerpc_parse_binding(tctx, "ncacn_np:$SERVER[,sign]", &b), "parse");
+       torture_assert_ntstatus_ok(tctx, dcerpc_parse_binding(tctx, "ncacn_ip_tcp:$SERVER[,sign]", &b), "parse");
+       torture_assert(tctx, b->endpoint == NULL, "endpoint");
+       torture_assert(tctx, b->flags == DCERPC_SIGN, "sign flag");
+       torture_assert_ntstatus_ok(tctx, dcerpc_parse_binding(tctx, "ncalrpc:", &b), "parse");
+       torture_assert(tctx, b->transport == NCALRPC, "ncalrpc expected");
+       torture_assert_ntstatus_ok(tctx, dcerpc_parse_binding(tctx, 
+               "308FB580-1EB2-11CA-923B-08002B1075A7@ncacn_np:$SERVER", &b), "parse");
+       torture_assert(tctx, GUID_equal(&b->object.uuid, &uuid), "object uuid");
+       torture_assert_int_equal(tctx, b->object.if_version, 0, "object version");
+       torture_assert_ntstatus_ok(tctx, dcerpc_parse_binding(tctx, 
+               "308FB580-1EB2-11CA-923B-08002B1075A7@ncacn_ip_tcp:$SERVER", &b), "parse");
+
+       return true;
+}
+
 static bool test_no_transport(struct torture_context *tctx)
 {
        const char *binding = "somehost";
@@ -129,5 +164,7 @@ struct torture_suite *torture_local_binding_string(TALLOC_CTX *mem_ctx)
 
        torture_suite_add_simple_test(suite, "no transport", test_no_transport);
 
+       torture_suite_add_simple_test(suite, "parsing results", test_parse_check_results);
+
        return suite;
 }
index 8a5e55f91eeac84912c25edaad76f5c93c2aceed..5a3e63ed93f74325e00c2a62176c5f6fcef97f32 100644 (file)
@@ -50,7 +50,7 @@ static const struct ndr_interface_call *find_function(
 
 #if (_SAMBA_BUILD_ >= 4)
 
-static void show_pipes(void)
+_NORETURN_ static void show_pipes(void)
 {
        const struct ndr_interface_list *l;
        printf("\nYou must specify a pipe\n");
@@ -67,7 +67,7 @@ static void show_pipes(void)
 
 #endif
 
-static void show_functions(const struct ndr_interface_table *p)
+_NORETURN_ static void show_functions(const struct ndr_interface_table *p)
 {
        int i;
        printf("\nYou must specify a function\n");
@@ -87,10 +87,10 @@ static char *stdin_load(TALLOC_CTX *mem_ctx, size_t *size)
        while((num_read = read(STDIN_FILENO, buf, 255)) > 0) {
 
                if (result) {
-                       result = (char *) talloc_realloc(
-                               mem_ctx, result, char *, total_len + num_read);
+                       result = talloc_realloc(
+                               mem_ctx, result, char, total_len + num_read);
                } else {
-                       result = talloc_size(mem_ctx, num_read);
+                       result = talloc_array(mem_ctx, char, num_read);
                }
 
                memcpy(result + total_len, buf, num_read);
@@ -104,7 +104,7 @@ static char *stdin_load(TALLOC_CTX *mem_ctx, size_t *size)
        return result;
 }
 
-const struct ndr_interface_table *load_iface_from_plugin(const char *plugin, const char *pipe_name)
+static const struct ndr_interface_table *load_iface_from_plugin(const char *plugin, const char *pipe_name)
 {
        const struct ndr_interface_table *p;
        void *handle;
@@ -117,7 +117,7 @@ const struct ndr_interface_table *load_iface_from_plugin(const char *plugin, con
        }
 
        symbol = talloc_asprintf(NULL, "ndr_table_%s", pipe_name);
-       p = dlsym(handle, symbol);
+       p = (const struct ndr_interface_table *)dlsym(handle, symbol);
 
        if (!p) {
                printf("%s: Unable to find DCE/RPC interface table for '%s': %s\n", plugin, pipe_name, dlerror());
index a0fafec3a31269940ec13290c5b621463a9e5371..1a6524cbf420c5cf48e2bbdf9d2102be3653a826 100644 (file)
@@ -43,6 +43,12 @@ manpages: $(MANPAGES)
 all: showflags $(ALL_PREDEP) bin/asn1_compile bin/compile_et binaries modules
 everything: all libraries headers
 
+# 'make testsuite' creates all binaries which are
+# needed by samba3's 'make test' and the build-farm
+# scripts use that it as fallback in case
+# 'make everything' fails
+testsuite: bin/smbclient bin/cifsdd bin/smbtorture bin/nmblookup
+
 showlayout: 
        @echo 'Samba will be installed into:'
        @echo '  basedir:     $(BASEDIR)'
@@ -58,8 +64,7 @@ showlayout:
        @echo '  logfilebase: $(LOGFILEBASE)'
        @echo '  setupdir:    $(SETUPDIR)'
        @echo '  jsdir:       $(JSDIR)'
-       @echo '  webappsdir:  $(WEBAPPSDIR)'
-       @echo '  servicesdir: $(SERVICESDIR)'
+       @echo '  swatdir:     $(SWATDIR)'
        @echo '  mandir:      $(MANDIR)'
        @echo '  torturedir:  $(TORTUREDIR)'
        @echo '  datadir:     $(DATADIR)'
@@ -86,7 +91,7 @@ showflags:
 # The permissions to give the executables
 INSTALLPERMS = 0755
 
-install: showlayout everything installbin installdat installwebapps installmisc installlib \
+install: showlayout everything installbin installdat installswat installmisc installlib \
        installheader installpc installplugins
 
 # DESTDIR is used here to prevent packagers wasting their time
@@ -147,9 +152,8 @@ installheader: headers installdirs
 installdat: installdirs
        @$(SHELL) $(srcdir)/script/installdat.sh $(DESTDIR)$(DATADIR) $(srcdir)
 
-installwebapps: installdirs
-       @$(SHELL) $(srcdir)/script/installwebapps.sh $(DESTDIR)$(WEBAPPSDIR) $(srcdir)
-       @$(SHELL) $(srcdir)/script/installjsonrpc.sh $(DESTDIR)$(SERVICESDIR) $(srcdir)
+installswat: installdirs
+       @$(SHELL) $(srcdir)/script/installswat.sh $(DESTDIR)$(SWATDIR) $(srcdir)
 
 installman: manpages installdirs
        @$(SHELL) $(srcdir)/script/installman.sh $(DESTDIR)$(MANDIR) $(MANPAGES)
@@ -268,7 +272,6 @@ distclean: clean
        -rm -f config.status
        -rm -f config.log config.cache
        -rm -f config.pm config.mk
-       -rm -rf ../webapps/qooxdoo-*-sdk/frontend/framework/.cache
        -rm -f $(PC_FILES)
 
 removebackup:
@@ -315,7 +318,7 @@ quicktestone: all
 testenv: everything
        $(SELFTEST) --socket-wrapper --testenv
 
-valgrindtest: valgrindtest-quick
+valgrindtest: valgrindtest-all
 
 valgrindtest-quick: all
        SMBD_VALGRIND="xterm -n smbd -e valgrind -q --db-attach=yes --num-callers=30" \
@@ -332,7 +335,7 @@ valgrindtest-env: everything
        VALGRIND="valgrind -q --num-callers=30 --log-file=${selftest_prefix}/valgrind.log" \
        $(SELFTEST) --socket-wrapper --testenv
 
-gdbtest: gdbtest-quick
+gdbtest: gdbtest-all
 
 gdbtest-quick: all
        SMBD_VALGRIND="xterm -n smbd -e $(srcdir)/script/gdb_run " \
index 5e8cfa61dae9d92e5d7d854bcc70bb0bc9d23aea..c498101c22a0db1e9242c598515e9e2b52243011 100644 (file)
@@ -54,11 +54,8 @@ PRIVATE_DEPENDENCIES = \
 
 #######################
 # Start SUBSYSTEM NBTD
-[MODULE::NBTD]
-INIT_FUNCTION = server_service_nbtd_init
-SUBSYSTEM = service
+[SUBSYSTEM::NBT_SERVER]
 OBJ_FILES = \
-               nbt_server.o \
                interfaces.o \
                register.o \
                query.o \
@@ -68,6 +65,13 @@ OBJ_FILES = \
                irpc.o
 PRIVATE_PROTO_HEADER = nbt_server_proto.h
 PRIVATE_DEPENDENCIES = \
-               LIBCLI_NBT NBTD_WINS NBTD_DGRAM process_model
+               LIBCLI_NBT NBTD_WINS NBTD_DGRAM 
 # End SUBSYSTEM NBTD
 #######################
+
+[MODULE::service_nbtd]
+INIT_FUNCTION = server_service_nbtd_init
+SUBSYSTEM = service
+OBJ_FILES = \
+               nbt_server.o
+PRIVATE_DEPENDENCIES = NBT_SERVER process_model
index c255238913defc31d04bf1a73d633c8ed39225d3..2f96970a65eee17bed67892222c4349bca69bd4c 100644 (file)
@@ -27,6 +27,7 @@
 #include "auth/auth.h"
 #include "db_wrap.h"
 #include "librpc/gen_ndr/ndr_nbt.h"
+#include "param/param.h"
 
 /*
   reply to a GETDC request
@@ -38,7 +39,7 @@ static void nbtd_netlogon_getdc(struct dgram_mailslot_handler *dgmslot,
                                struct nbt_netlogon_packet *netlogon)
 {
        struct nbt_name *name = &packet->data.msg.dest_name;
-       struct nbtd_interface *reply_iface = nbtd_find_reply_iface(iface, src->addr, False);
+       struct nbtd_interface *reply_iface = nbtd_find_reply_iface(iface, src->addr, false);
        struct nbt_netlogon_packet reply;
        struct nbt_netlogon_response_from_pdc *pdc;
        const char *ref_attrs[] = {"nETBIOSName", NULL};
@@ -74,7 +75,7 @@ static void nbtd_netlogon_getdc(struct dgram_mailslot_handler *dgmslot,
        reply.command = NETLOGON_RESPONSE_FROM_PDC;
        pdc = &reply.req.response;
 
-       pdc->pdc_name         = lp_netbios_name();
+       pdc->pdc_name         = lp_netbios_name(global_loadparm);
        pdc->unicode_pdc_name = pdc->pdc_name;
        pdc->domain_name      = samdb_result_string(ref_res[0], "nETBIOSName", name->name);;
        pdc->nt_version       = 1;
@@ -101,7 +102,7 @@ static void nbtd_netlogon_getdc2(struct dgram_mailslot_handler *dgmslot,
                                 struct nbt_netlogon_packet *netlogon)
 {
        struct nbt_name *name = &packet->data.msg.dest_name;
-       struct nbtd_interface *reply_iface = nbtd_find_reply_iface(iface, src->addr, False);
+       struct nbtd_interface *reply_iface = nbtd_find_reply_iface(iface, src->addr, false);
        struct nbt_netlogon_packet reply;
        struct nbt_netlogon_response_from_pdc2 *pdc;
        struct ldb_context *samctx;
@@ -109,7 +110,7 @@ static void nbtd_netlogon_getdc2(struct dgram_mailslot_handler *dgmslot,
        const char *dom_attrs[] = {"objectGUID", NULL};
        struct ldb_message **ref_res, **dom_res;
        int ret;
-       const char **services = lp_server_services();
+       const char **services = lp_server_services(global_loadparm);
        const char *my_ip = reply_iface->ip_address; 
        struct ldb_dn *partitions_basedn;
        if (!my_ip) {
@@ -182,15 +183,18 @@ static void nbtd_netlogon_getdc2(struct dgram_mailslot_handler *dgmslot,
        }
 
        pdc->domain_uuid      = samdb_result_guid(dom_res[0], "objectGUID");
-       pdc->forest           = samdb_result_string(ref_res[0], "dnsRoot", lp_realm());
-       pdc->dns_domain       = samdb_result_string(ref_res[0], "dnsRoot", lp_realm());
+       pdc->forest           = samdb_result_string(ref_res[0], "dnsRoot", 
+                                                   lp_realm(global_loadparm));
+       pdc->dns_domain       = samdb_result_string(ref_res[0], "dnsRoot", 
+                                                   lp_realm(global_loadparm));
 
        /* TODO: get our full DNS name from somewhere else */
        pdc->pdc_dns_name     = talloc_asprintf(packet, "%s.%s", 
-                                               strlower_talloc(packet, lp_netbios_name()), 
+                                               strlower_talloc(packet, 
+                                                               lp_netbios_name(global_loadparm)), 
                                                pdc->dns_domain);
        pdc->domain           = samdb_result_string(ref_res[0], "nETBIOSName", name->name);;
-       pdc->pdc_name         = lp_netbios_name();
+       pdc->pdc_name         = lp_netbios_name(global_loadparm);
        pdc->user_name        = netlogon->req.pdc2.user_name;
        /* TODO: we need to make sure these are in our DNS zone */
        pdc->server_site      = "Default-First-Site-Name";
index 51888ceab42e2734b3139a87cea1f59f9e96c666..ce1f725038ef3e53c85ac090217c3a6dbfd2b91c 100644 (file)
@@ -23,6 +23,7 @@
 #include "nbt_server/nbt_server.h"
 #include "lib/socket/socket.h"
 #include "librpc/gen_ndr/ndr_nbt.h"
+#include "param/param.h"
 
 /*
   reply to a SAM LOGON request
@@ -34,7 +35,7 @@ static void nbtd_ntlogon_sam_logon(struct dgram_mailslot_handler *dgmslot,
                                   struct nbt_ntlogon_packet *ntlogon)
 {
        struct nbt_name *name = &packet->data.msg.dest_name;
-       struct nbtd_interface *reply_iface = nbtd_find_reply_iface(iface, src->addr, False);
+       struct nbtd_interface *reply_iface = nbtd_find_reply_iface(iface, src->addr, false);
        struct nbt_ntlogon_packet reply;
        struct nbt_ntlogon_sam_logon_reply *logon;
 
@@ -48,9 +49,10 @@ static void nbtd_ntlogon_sam_logon(struct dgram_mailslot_handler *dgmslot,
        reply.command = NTLOGON_SAM_LOGON_REPLY;
        logon = &reply.req.reply;
 
-       logon->server           = talloc_asprintf(packet, "\\\\%s", lp_netbios_name());
+       logon->server           = talloc_asprintf(packet, "\\\\%s", 
+                                                 lp_netbios_name(global_loadparm));
        logon->user_name        = ntlogon->req.logon.user_name;
-       logon->domain           = lp_workgroup();
+       logon->domain           = lp_workgroup(global_loadparm);
        logon->nt_version       = 1;
        logon->lmnt_token       = 0xFFFF;
        logon->lm20_token       = 0xFFFF;
index bea1e84213897b276e8a71fab6ae1f858fbe5c07..48d6e4cb3ab2586b2e265d66b215160ea6c560c4 100644 (file)
@@ -26,6 +26,7 @@
 #include "libcli/resolve/resolve.h"
 #include "nbt_server/dgram/proto.h"
 #include "librpc/gen_ndr/ndr_nbt.h"
+#include "param/param.h"
 
 /*
   a list of mailslots that we have static handlers for
@@ -79,7 +80,8 @@ NTSTATUS nbtd_dgram_setup(struct nbtd_interface *iface, const char *bind_address
                }
        
                bcast_addr = socket_address_from_strings(tmp_ctx, bcast_dgmsock->sock->backend_name, 
-                                                        iface->bcast_address, lp_dgram_port());
+                                                        iface->bcast_address, 
+                                                        lp_dgram_port(global_loadparm));
                if (!bcast_addr) {
                        talloc_free(tmp_ctx);
                        return NT_STATUS_NO_MEMORY;
@@ -89,7 +91,8 @@ NTSTATUS nbtd_dgram_setup(struct nbtd_interface *iface, const char *bind_address
                if (!NT_STATUS_IS_OK(status)) {
                        talloc_free(tmp_ctx);
                        DEBUG(0,("Failed to bind to %s:%d - %s\n", 
-                                iface->bcast_address, lp_dgram_port(), nt_errstr(status)));
+                                iface->bcast_address, lp_dgram_port(global_loadparm), 
+                                nt_errstr(status)));
                        return status;
                }
        
@@ -104,7 +107,7 @@ NTSTATUS nbtd_dgram_setup(struct nbtd_interface *iface, const char *bind_address
        }
 
        bind_addr = socket_address_from_strings(tmp_ctx, iface->dgmsock->sock->backend_name, 
-                                               bind_address, lp_dgram_port());
+                                               bind_address, lp_dgram_port(global_loadparm));
        if (!bind_addr) {
                talloc_free(tmp_ctx);
                return NT_STATUS_NO_MEMORY;
@@ -114,7 +117,7 @@ NTSTATUS nbtd_dgram_setup(struct nbtd_interface *iface, const char *bind_address
        if (!NT_STATUS_IS_OK(status)) {
                talloc_free(tmp_ctx);
                DEBUG(0,("Failed to bind to %s:%d - %s\n", 
-                        bind_address, lp_dgram_port(), nt_errstr(status)));
+                        bind_address, lp_dgram_port(global_loadparm), nt_errstr(status)));
                return status;
        }
 
index b0bc55c05b089511a63b6fc52d3e46d6aa7a934d..f2a875142a8ae5fc2f8214c8ac4a839d429dbb9d 100644 (file)
@@ -28,6 +28,7 @@
 #include "nbt_server/dgram/proto.h"
 #include "system/network.h"
 #include "lib/socket/netif.h"
+#include "param/param.h"
 
 
 /*
@@ -135,7 +136,7 @@ static NTSTATUS nbtd_add_socket(struct nbtd_server *nbtsrv,
                }
 
                bcast_address = socket_address_from_strings(bcast_nbtsock, bcast_nbtsock->sock->backend_name, 
-                                                           bcast, lp_nbt_port());
+                                                           bcast, lp_nbt_port(global_loadparm));
                if (!bcast_address) {
                        talloc_free(iface);
                        return NT_STATUS_NO_MEMORY;
@@ -144,7 +145,7 @@ static NTSTATUS nbtd_add_socket(struct nbtd_server *nbtsrv,
                status = socket_listen(bcast_nbtsock->sock, bcast_address, 0, 0);
                if (!NT_STATUS_IS_OK(status)) {
                        DEBUG(0,("Failed to bind to %s:%d - %s\n", 
-                                bcast, lp_nbt_port(), nt_errstr(status)));
+                                bcast, lp_nbt_port(global_loadparm), nt_errstr(status)));
                        talloc_free(iface);
                        return status;
                }
@@ -160,13 +161,14 @@ static NTSTATUS nbtd_add_socket(struct nbtd_server *nbtsrv,
                return NT_STATUS_NO_MEMORY;
        }
 
-       unicast_address = socket_address_from_strings(iface->nbtsock, iface->nbtsock->sock->backend_name, 
-                                                     bind_address, lp_nbt_port());
+       unicast_address = socket_address_from_strings(iface->nbtsock, 
+                                                     iface->nbtsock->sock->backend_name, 
+                                                     bind_address, lp_nbt_port(global_loadparm));
 
        status = socket_listen(iface->nbtsock->sock, unicast_address, 0, 0);
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0,("Failed to bind to %s:%d - %s\n", 
-                        bind_address, lp_nbt_port(), nt_errstr(status)));
+                        bind_address, lp_nbt_port(global_loadparm), nt_errstr(status)));
                talloc_free(iface);
                return status;
        }
@@ -222,7 +224,7 @@ NTSTATUS nbtd_startup_interfaces(struct nbtd_server *nbtsrv)
 
        /* if we are allowing incoming packets from any address, then
           we also need to bind to the wildcard address */
-       if (!lp_bind_interfaces_only()) {
+       if (!lp_bind_interfaces_only(global_loadparm)) {
                const char *primary_address;
 
                /* the primary address is the address we will return
@@ -232,7 +234,7 @@ NTSTATUS nbtd_startup_interfaces(struct nbtd_server *nbtsrv)
                        primary_address = iface_n_ip(0);
                } else {
                        primary_address = sys_inet_ntoa(interpret_addr2(
-                                                               lp_netbios_name()));
+                                                       lp_netbios_name(global_loadparm)));
                }
                primary_address = talloc_strdup(tmp_ctx, primary_address);
                NT_STATUS_HAVE_NO_MEMORY(primary_address);
@@ -260,7 +262,7 @@ NTSTATUS nbtd_startup_interfaces(struct nbtd_server *nbtsrv)
                NT_STATUS_NOT_OK_RETURN(status);
        }
 
-       if (lp_wins_server_list()) {
+       if (lp_wins_server_list(global_loadparm)) {
                status = nbtd_add_wins_socket(nbtsrv);
                NT_STATUS_NOT_OK_RETURN(status);
        }
@@ -280,7 +282,7 @@ const char **nbtd_address_list(struct nbtd_interface *iface, TALLOC_CTX *mem_ctx
        struct nbtd_server *nbtsrv = iface->nbtsrv;
        const char **ret = NULL;
        struct nbtd_interface *iface2;
-       BOOL is_loopback = False;
+       bool is_loopback = false;
 
        if (iface->ip_address) {
                is_loopback = iface_same_net(iface->ip_address, "127.0.0.1", "255.0.0.0");
@@ -311,7 +313,7 @@ const char **nbtd_address_list(struct nbtd_interface *iface, TALLOC_CTX *mem_ctx
   find the interface to use for sending a outgoing request
 */
 struct nbtd_interface *nbtd_find_request_iface(struct nbtd_server *nbtd_server,
-                                              const char *address, BOOL allow_bcast_iface)
+                                              const char *address, bool allow_bcast_iface)
 {
        struct nbtd_interface *cur;
 
@@ -335,7 +337,7 @@ struct nbtd_interface *nbtd_find_request_iface(struct nbtd_server *nbtd_server,
  * find the interface to use for sending a outgoing reply
  */
 struct nbtd_interface *nbtd_find_reply_iface(struct nbtd_interface *iface,
-                                            const char *address, BOOL allow_bcast_iface)
+                                            const char *address, bool allow_bcast_iface)
 {
        struct nbtd_server *nbtd_server = iface->nbtsrv;
 
index 6200c6bba55e4f1fa76f509d15f682a22af92c62..8f2f7fc2c2e98de414f8cf4cc331501748113213 100644 (file)
@@ -119,7 +119,7 @@ static NTSTATUS nbtd_getdcname(struct irpc_message *msg,
 {
        struct nbtd_server *server =
                talloc_get_type(msg->private, struct nbtd_server);
-       struct nbtd_interface *iface = nbtd_find_request_iface(server, req->in.ip_address, True);
+       struct nbtd_interface *iface = nbtd_find_request_iface(server, req->in.ip_address, true);
        struct getdc_state *s;
        struct nbt_ntlogon_packet p;
        struct nbt_ntlogon_sam_logon *r;
@@ -169,7 +169,7 @@ static NTSTATUS nbtd_getdcname(struct irpc_message *msg,
                return status;
        }
 
-       msg->defer_reply = True;
+       msg->defer_reply = true;
        return NT_STATUS_OK;
 }
 
index 09b2549956e2ae3951faf54c6163fb4c37d3b7a3..6b8e266f6de0fce1b224be3589adcc872e78b418 100644 (file)
@@ -23,6 +23,7 @@
 #include "nbt_server/nbt_server.h"
 #include "lib/socket/socket.h"
 #include "librpc/gen_ndr/ndr_nbt.h"
+#include "param/param.h"
 
 /*
   we received a badly formed packet - log it
@@ -41,7 +42,7 @@ void nbtd_bad_packet(struct nbt_name_packet *packet,
   see if an incoming packet is a broadcast packet from one of our own
   interfaces
 */
-BOOL nbtd_self_packet_and_bcast(struct nbt_name_socket *nbtsock, 
+bool nbtd_self_packet_and_bcast(struct nbt_name_socket *nbtsock, 
                                struct nbt_name_packet *packet, 
                                const struct socket_address *src)
 {
@@ -50,7 +51,7 @@ BOOL nbtd_self_packet_and_bcast(struct nbt_name_socket *nbtsock,
 
        /* if its not a broadcast then its not considered a self packet */
        if (!(packet->operation & NBT_FLAG_BROADCAST)) {
-               return False;
+               return false;
        }
 
        /* 
@@ -62,13 +63,13 @@ BOOL nbtd_self_packet_and_bcast(struct nbt_name_socket *nbtsock,
         */
        if (iface->nbtsock == nbtsock &&
            iface != iface->nbtsrv->bcast_interface) {
-               return False;
+               return false;
        }
 
        return nbtd_self_packet(nbtsock, packet, src);
 }
 
-BOOL nbtd_self_packet(struct nbt_name_socket *nbtsock, 
+bool nbtd_self_packet(struct nbt_name_socket *nbtsock, 
                      struct nbt_name_packet *packet, 
                      const struct socket_address *src)
 {
@@ -77,19 +78,19 @@ BOOL nbtd_self_packet(struct nbt_name_socket *nbtsock,
        struct nbtd_server *nbtsrv = iface->nbtsrv;
        
        /* if its not from the nbt port, then it wasn't a broadcast from us */
-       if (src->port != lp_nbt_port()) {
-               return False;
+       if (src->port != lp_nbt_port(global_loadparm)) {
+               return false;
        }
 
        /* we have to loop over our interface list, seeing if its from
           one of our own interfaces */
        for (iface=nbtsrv->interfaces;iface;iface=iface->next) {
                if (strcmp(src->addr, iface->ip_address) == 0) {
-                       return True;
+                       return true;
                }
        }
 
-       return False;
+       return false;
 }
 
 
@@ -326,7 +327,7 @@ void nbtd_wack_reply(struct nbt_name_socket *nbtsock,
        packet->answers[0].rr_class          = NBT_QCLASS_IP;
        packet->answers[0].ttl               = ttl;
        packet->answers[0].rdata.data.length = 2;
-       packet->answers[0].rdata.data.data   = talloc_size(packet, 2);
+       packet->answers[0].rdata.data.data   = talloc_array(packet, uint8_t, 2);
        if (packet->answers[0].rdata.data.data == NULL) goto failed;
        RSSVAL(packet->answers[0].rdata.data.data, 0, request_packet->operation);
 
index 4f42ec517d528f6bfd1caee677658f67fb983524..f57cb7bf76b6a7dc2283f17abd07ae7431f23750 100644 (file)
@@ -26,6 +26,7 @@
 #include "nbt_server/wins/winsserver.h"
 #include "librpc/gen_ndr/ndr_nbt.h"
 #include "lib/socket/socket.h"
+#include "param/param.h"
 
 /*
   answer a name query
@@ -80,7 +81,7 @@ void nbtd_request_query(struct nbt_name_socket *nbtsock,
        if (!(packet->operation & NBT_FLAG_BROADCAST) &&
           (packet->operation & NBT_FLAG_RECURSION_DESIRED) &&
           (iname->nb_flags & NBT_NM_GROUP) &&
-          lp_wins_support()) {
+          lp_wins_support(global_loadparm)) {
                nbtd_winsserver_request(nbtsock, packet, src);
                return;
        }
index 6b592624c36229c9484b2f126d02f7c60929a268..4ec70e319b7fcefada3ee12b7806508de6d8c55f 100644 (file)
@@ -29,7 +29,7 @@
 #include "nbt_server/wins/winsserver.h"
 #include "librpc/gen_ndr/ndr_nbt.h"
 #include "dsdb/samdb/samdb.h"
-
+#include "param/param.h"
 
 static void nbtd_start_refresh_timer(struct nbtd_iface_name *iname);
 
@@ -96,9 +96,9 @@ static void name_refresh_handler(struct event_context *ev, struct timed_event *t
        io.in.address         = iface->ip_address;
        io.in.nb_flags        = iname->nb_flags;
        io.in.ttl             = iname->ttl;
-       io.in.register_demand = False;
-       io.in.broadcast       = True;
-       io.in.multi_homed     = False;
+       io.in.register_demand = false;
+       io.in.broadcast       = true;
+       io.in.multi_homed     = false;
        io.in.timeout         = 3;
        io.in.retries         = 0;
 
@@ -117,7 +117,7 @@ static void name_refresh_handler(struct event_context *ev, struct timed_event *t
 static void nbtd_start_refresh_timer(struct nbtd_iface_name *iname)
 {
        uint32_t refresh_time;
-       uint32_t max_refresh_time = lp_parm_int(-1, "nbtd", "max_refresh_time", 7200);
+       uint32_t max_refresh_time = lp_parm_int(global_loadparm, NULL, "nbtd", "max_refresh_time", 7200);
 
        refresh_time = MIN(max_refresh_time, iname->ttl/2);
        
@@ -170,7 +170,7 @@ static void nbtd_register_name_iface(struct nbtd_interface *iface,
                                     uint16_t nb_flags)
 {
        struct nbtd_iface_name *iname;
-       const char *scope = lp_netbios_scope();
+       const char *scope = lp_netbios_scope(global_loadparm);
        struct nbt_name_register_bcast io;
        struct composite_context *creq;
        struct nbtd_server *nbtsrv = iface->nbtsrv;
@@ -187,7 +187,7 @@ static void nbtd_register_name_iface(struct nbtd_interface *iface,
                iname->name.scope = NULL;
        }
        iname->nb_flags          = nb_flags;
-       iname->ttl               = lp_parm_int(-1, "nbtd", "bcast_ttl", 300000);
+       iname->ttl               = lp_parm_int(global_loadparm, NULL, "nbtd", "bcast_ttl", 300000);
        iname->registration_time = timeval_zero();
        iname->wins_server       = NULL;
 
@@ -226,9 +226,9 @@ static void nbtd_register_name_iface(struct nbtd_interface *iface,
 /*
   register one name on all our interfaces
 */
-static void nbtd_register_name(struct nbtd_server *nbtsrv, 
-                              const char *name, enum nbt_name_type type,
-                              uint16_t nb_flags)
+void nbtd_register_name(struct nbtd_server *nbtsrv, 
+                       const char *name, enum nbt_name_type type,
+                       uint16_t nb_flags)
 {
        struct nbtd_interface *iface;
        
@@ -260,29 +260,29 @@ void nbtd_register_names(struct nbtd_server *nbtsrv)
 
        /* note that we don't initially mark the names "ACTIVE". They are 
           marked active once registration is successful */
-       nbtd_register_name(nbtsrv, lp_netbios_name(), NBT_NAME_CLIENT, nb_flags);
-       nbtd_register_name(nbtsrv, lp_netbios_name(), NBT_NAME_USER,   nb_flags);
-       nbtd_register_name(nbtsrv, lp_netbios_name(), NBT_NAME_SERVER, nb_flags);
+       nbtd_register_name(nbtsrv, lp_netbios_name(global_loadparm), NBT_NAME_CLIENT, nb_flags);
+       nbtd_register_name(nbtsrv, lp_netbios_name(global_loadparm), NBT_NAME_USER,   nb_flags);
+       nbtd_register_name(nbtsrv, lp_netbios_name(global_loadparm), NBT_NAME_SERVER, nb_flags);
 
-       aliases = lp_netbios_aliases();
+       aliases = lp_netbios_aliases(global_loadparm);
        while (aliases && aliases[0]) {
                nbtd_register_name(nbtsrv, aliases[0], NBT_NAME_CLIENT, nb_flags);
                nbtd_register_name(nbtsrv, aliases[0], NBT_NAME_SERVER, nb_flags);
                aliases++;
        }
 
-       if (lp_server_role() == ROLE_DOMAIN_CONTROLLER) {
-               BOOL is_pdc = samdb_is_pdc(nbtsrv->sam_ctx);
+       if (lp_server_role(global_loadparm) == ROLE_DOMAIN_CONTROLLER)  {
+               bool is_pdc = samdb_is_pdc(nbtsrv->sam_ctx);
                if (is_pdc) {
-                       nbtd_register_name(nbtsrv, lp_workgroup(),
+                       nbtd_register_name(nbtsrv, lp_workgroup(global_loadparm),
                                           NBT_NAME_PDC, nb_flags);
                }
-               nbtd_register_name(nbtsrv, lp_workgroup(),
+               nbtd_register_name(nbtsrv, lp_workgroup(global_loadparm),
                                   NBT_NAME_LOGON, nb_flags | NBT_NM_GROUP);
        }
 
        nb_flags |= NBT_NM_GROUP;
-       nbtd_register_name(nbtsrv, lp_workgroup(),    NBT_NAME_CLIENT, nb_flags);
+       nbtd_register_name(nbtsrv, lp_workgroup(global_loadparm), NBT_NAME_CLIENT, nb_flags);
 
        nb_flags |= NBT_NM_PERMANENT;
        nbtd_register_name(nbtsrv, "__SAMBA__",       NBT_NAME_CLIENT, nb_flags);
index 15c00881922541e00141feb87742fcc6008ed119..768f9477f6a19bffbc90d113d24ff02eac0807ac 100644 (file)
@@ -24,6 +24,7 @@
 #include "nbt_server/nbt_server.h"
 #include "nbt_server/wins/winsdb.h"
 #include "system/filesys.h"
+#include "param/param.h"
 
 static const char *wins_hook_action_string(enum wins_hook_action action)
 {
@@ -36,9 +37,10 @@ static const char *wins_hook_action_string(enum wins_hook_action action)
        return "unknown";
 }
 
-void wins_hook(struct winsdb_handle *h, const struct winsdb_record *rec, enum wins_hook_action action)
+void wins_hook(struct winsdb_handle *h, const struct winsdb_record *rec, 
+              enum wins_hook_action action)
 {
-       const char *script = lp_wins_hook();
+       const char *script = lp_wins_hook(global_loadparm);
        uint32_t i, length;
        int child;
        char *cmd = NULL;
@@ -65,7 +67,7 @@ void wins_hook(struct winsdb_handle *h, const struct winsdb_record *rec, enum wi
        if (!cmd) goto failed;
 
        for (i=0; rec->addresses[i]; i++) {
-               cmd = talloc_asprintf_append(cmd, " %s", rec->addresses[i]->address);
+               cmd = talloc_asprintf_append_buffer(cmd, " %s", rec->addresses[i]->address);
                if (!cmd) goto failed;
        }
 
index 0b8856fd3b41479e37bfc7967b2d0ca27cc66fad..3d22b5fe1b41f7e658336008dc0f47c455d824ec 100644 (file)
@@ -35,6 +35,7 @@
 #include "lib/ldb/include/ldb_private.h"
 #include "system/network.h"
 #include "lib/socket/netif.h"
+#include "param/param.h"
 
 static int wins_ldb_verify(struct ldb_module *module, struct ldb_request *req)
 {
@@ -86,7 +87,7 @@ static int wins_ldb_init(struct ldb_module *ctx)
 
        ctx->private_data = NULL;
 
-       owner = lp_parm_string(-1, "winsdb", "local_owner");
+       owner = lp_parm_string(global_loadparm, NULL, "winsdb", "local_owner");
        if (!owner) {
                owner = iface_n_ip(0);
                if (!owner) {
index 3c599022d416e08c4a65cfd39b3b47e749792d1f..d1342c3766489510a7988cfe48f62e0a83d34ce4 100644 (file)
@@ -26,6 +26,7 @@
 #include "lib/events/events.h"
 #include "librpc/gen_ndr/ndr_nbt.h"
 #include "smbd/service_task.h"
+#include "param/param.h"
 
 static void nbtd_wins_refresh_handler(struct composite_context *c);
 
@@ -57,7 +58,7 @@ static void nbtd_wins_register_retry(struct event_context *ev, struct timed_even
 static void nbtd_wins_start_refresh_timer(struct nbtd_iface_name *iname)
 {
        uint32_t refresh_time;
-       uint32_t max_refresh_time = lp_parm_int(-1, "nbtd", "max_refresh_time", 7200);
+       uint32_t max_refresh_time = lp_parm_int(global_loadparm, NULL, "nbtd", "max_refresh_time", 7200);
 
        refresh_time = MIN(max_refresh_time, iname->ttl/2);
        
@@ -178,7 +179,7 @@ static void nbtd_wins_register_handler(struct composite_context *c)
        if (NT_STATUS_EQUAL(status, NT_STATUS_IO_TIMEOUT)) {
                /* none of the WINS servers responded - try again 
                   periodically */
-               int wins_retry_time = lp_parm_int(-1, "nbtd", "wins_retry", 300);
+               int wins_retry_time = lp_parm_int(global_loadparm, NULL, "nbtd", "wins_retry", 300);
                event_add_timed(iname->iface->nbtsrv->task->event_ctx, 
                                iname,
                                timeval_current_ofs(wins_retry_time, 0),
@@ -235,7 +236,7 @@ void nbtd_winsclient_register(struct nbtd_iface_name *iname)
 
        /* setup a wins name register request */
        io.in.name            = iname->name;
-       io.in.wins_servers    = lp_wins_server_list();
+       io.in.wins_servers    = lp_wins_server_list(global_loadparm);
        io.in.addresses       = nbtd_address_list(iface, iname);
        io.in.nb_flags        = iname->nb_flags;
        io.in.ttl             = iname->ttl;
index 7b281ff831bafc08e5b7eeefade27dff257a56b1..91996b24d38cf1366be5ff2877a356df0c6bc37c 100644 (file)
@@ -30,6 +30,7 @@
 #include "db_wrap.h"
 #include "system/network.h"
 #include "lib/socket/netif.h"
+#include "param/param.h"
 
 uint64_t winsdb_get_maxVersion(struct winsdb_handle *h)
 {
@@ -365,8 +366,8 @@ static int winsdb_addr_sort_list (struct winsdb_addr **p1, struct winsdb_addr **
        struct winsdb_addr *a1 = talloc_get_type(*p1, struct winsdb_addr);
        struct winsdb_addr *a2 = talloc_get_type(*p2, struct winsdb_addr);
        struct winsdb_handle *h= talloc_get_type(opaque, struct winsdb_handle);
-       BOOL a1_owned = False;
-       BOOL a2_owned = False;
+       bool a1_owned = false;
+       bool a2_owned = false;
 
        /*
         * first the owned addresses with the newest to the oldest address
@@ -377,11 +378,11 @@ static int winsdb_addr_sort_list (struct winsdb_addr **p1, struct winsdb_addr **
        }
 
        if (strcmp(a2->wins_owner, h->local_owner) == 0) {
-               a2_owned = True;
+               a2_owned = true;
        }
 
        if (strcmp(a1->wins_owner, h->local_owner) == 0) {
-               a1_owned = True;
+               a1_owned = true;
        }
 
        return a2_owned - a1_owned;
@@ -390,12 +391,12 @@ static int winsdb_addr_sort_list (struct winsdb_addr **p1, struct winsdb_addr **
 struct winsdb_addr **winsdb_addr_list_add(struct winsdb_handle *h, const struct winsdb_record *rec,
                                          struct winsdb_addr **addresses, const char *address,
                                          const char *wins_owner, time_t expire_time,
-                                         BOOL is_name_registration)
+                                         bool is_name_registration)
 {
        struct winsdb_addr *old_addr = NULL;
        size_t len = 0;
        size_t i;
-       BOOL found_old_replica = False;
+       bool found_old_replica = false;
 
        /*
         * count the addresses and maybe
@@ -443,10 +444,10 @@ struct winsdb_addr **winsdb_addr_list_add(struct winsdb_handle *h, const struct
         * record at all, find the oldest owned address
         */
        for (i=0; addresses[i]; i++) {
-               BOOL cur_is_replica = False;
+               bool cur_is_replica = false;
                /* find out if the current address is a replica */
                if (strcmp(addresses[i]->wins_owner, h->local_owner) != 0) {
-                       cur_is_replica = True;
+                       cur_is_replica = true;
                }
 
                /*
@@ -460,7 +461,7 @@ struct winsdb_addr **winsdb_addr_list_add(struct winsdb_handle *h, const struct
                 * that would be replaced
                 */
                if (!found_old_replica && cur_is_replica) {
-                       found_old_replica = True;
+                       found_old_replica = true;
                        old_addr = addresses[i];
                        continue;
                }
@@ -620,7 +621,7 @@ NTSTATUS winsdb_record(struct winsdb_handle *h, struct ldb_message *msg, TALLOC_
        struct ldb_message_element *el;
        struct nbt_name *name;
        uint32_t i, j, num_values;
-       BOOL we_are_owner = False;
+       bool we_are_owner = false;
 
        rec = talloc(mem_ctx, struct winsdb_record);
        if (rec == NULL) {
@@ -682,7 +683,7 @@ NTSTATUS winsdb_record(struct winsdb_handle *h, struct ldb_message *msg, TALLOC_
        }
 
        if (strcmp(rec->wins_owner, h->local_owner) == 0) {
-               we_are_owner = True;
+               we_are_owner = true;
        }
 
        /* 
@@ -944,7 +945,7 @@ failed:
        return NBT_RCODE_SVR;
 }
 
-static BOOL winsdb_check_or_add_module_list(struct winsdb_handle *h)
+static bool winsdb_check_or_add_module_list(struct winsdb_handle *h)
 {
        int trans;
        int ret;
@@ -987,26 +988,26 @@ static BOOL winsdb_check_or_add_module_list(struct winsdb_handle *h)
        talloc_free(h->ldb);
        h->ldb = NULL;
 
-       if (lp_parm_bool(-1,"winsdb", "nosync", False)) {
+       if (lp_parm_bool(global_loadparm, NULL,"winsdb", "nosync", false)) {
                flags |= LDB_FLG_NOSYNC;
        }
 
-       h->ldb = ldb_wrap_connect(h, lock_path(h, lp_wins_url()),
+       h->ldb = ldb_wrap_connect(h, global_loadparm, lock_path(h, global_loadparm, lp_wins_url(global_loadparm)),
                                  NULL, NULL, flags, NULL);
        if (!h->ldb) goto failed;
 
        talloc_free(tmp_ctx);
-       return True;
+       return true;
 
 skip:
        if (trans == LDB_SUCCESS) ldb_transaction_cancel(h->ldb);
        talloc_free(tmp_ctx);
-       return True;
+       return true;
 
 failed:
        if (trans == LDB_SUCCESS) ldb_transaction_cancel(h->ldb);
        talloc_free(tmp_ctx);
-       return False;
+       return false;
 }
 
 struct winsdb_handle *winsdb_connect(TALLOC_CTX *mem_ctx, enum winsdb_handle_caller caller)
@@ -1014,23 +1015,23 @@ struct winsdb_handle *winsdb_connect(TALLOC_CTX *mem_ctx, enum winsdb_handle_cal
        struct winsdb_handle *h = NULL;
        const char *owner;
        unsigned int flags = 0;
-       BOOL ret;
+       bool ret;
        int ldb_err;
 
        h = talloc(mem_ctx, struct winsdb_handle);
        if (!h) return NULL;
 
-       if (lp_parm_bool(-1,"winsdb", "nosync", False)) {
+       if (lp_parm_bool(global_loadparm, NULL,"winsdb", "nosync", false)) {
                flags |= LDB_FLG_NOSYNC;
        }
 
-       h->ldb = ldb_wrap_connect(h, lock_path(h, lp_wins_url()),
+       h->ldb = ldb_wrap_connect(h, global_loadparm, lock_path(h, global_loadparm, lp_wins_url(global_loadparm)),
                                  NULL, NULL, flags, NULL);
        if (!h->ldb) goto failed;       
 
        h->caller = caller;
 
-       owner = lp_parm_string(-1, "winsdb", "local_owner");
+       owner = lp_parm_string(global_loadparm, NULL, "winsdb", "local_owner");
        if (!owner) {
                owner = iface_n_ip(0);
        }
index f75250ee41326712d69cebd1abc2329f2e6368cc..2ff5e3f69b5b13eb4d276583186552f96e3cad5a 100644 (file)
@@ -32,6 +32,7 @@
 #include "lib/socket/socket.h"
 #include "lib/socket/netif.h"
 #include "lib/ldb/include/ldb.h"
+#include "param/param.h"
 
 /*
   work out the ttl we will use given a client requested ttl
@@ -43,7 +44,7 @@ uint32_t wins_server_ttl(struct wins_server *winssrv, uint32_t ttl)
        return ttl;
 }
 
-static enum wrepl_name_type wrepl_type(uint16_t nb_flags, struct nbt_name *name, BOOL mhomed)
+static enum wrepl_name_type wrepl_type(uint16_t nb_flags, struct nbt_name *name, bool mhomed)
 {
        /* this copes with the nasty hack that is the type 0x1c name */
        if (name->type == NBT_NAME_LOGON) {
@@ -85,7 +86,7 @@ static uint8_t wins_register_new(struct nbt_name_socket *nbtsock,
        rec.type                = type;
        rec.state               = WREPL_STATE_ACTIVE;
        rec.node                = node;
-       rec.is_static           = False;
+       rec.is_static           = false;
        rec.expire_time         = time(NULL) + ttl;
        rec.version             = 0; /* will be allocated later */
        rec.wins_owner          = NULL; /* will be set later */
@@ -98,7 +99,7 @@ static uint8_t wins_register_new(struct nbt_name_socket *nbtsock,
                                                 address,
                                                 winssrv->wins_db->local_owner,
                                                 rec.expire_time,
-                                                True);
+                                                true);
        if (rec.addresses == NULL) return NBT_RCODE_SVR;
 
        DEBUG(4,("WINS: accepted registration of %s with address %s\n",
@@ -133,7 +134,7 @@ static uint8_t wins_update_ttl(struct nbt_name_socket *nbtsock,
                                                      winsdb_addr->address,
                                                      winssrv->wins_db->local_owner,
                                                      rec->expire_time,
-                                                     True);
+                                                     true);
                if (rec->addresses == NULL) return NBT_RCODE_SVR;
        }
 
@@ -169,7 +170,7 @@ static uint8_t wins_sgroup_merge(struct nbt_name_socket *nbtsock,
                                                  address,
                                                  winssrv->wins_db->local_owner,
                                                  rec->expire_time,
-                                                 True);
+                                                 true);
        if (rec->addresses == NULL) return NBT_RCODE_SVR;
 
        DEBUG(5,("WINS: sgroup merge of %s at %s\n",
@@ -248,11 +249,11 @@ static void wins_wack_allow(struct wack_state *s)
         * and update the time stamp and owner for the ownes that are still there
         */
        for (i=0; rec->addresses[i]; i++) {
-               BOOL found = False;
+               bool found = false;
                for (j=0; j < s->io.out.num_addresses; j++) {
                        if (strcmp(rec->addresses[i]->address, s->io.out.addresses[j]) != 0) continue;
 
-                       found = True;
+                       found = true;
                        break;
                }
                if (found) {
@@ -261,7 +262,7 @@ static void wins_wack_allow(struct wack_state *s)
                                                              s->reg_address,
                                                              s->winssrv->wins_db->local_owner,
                                                              rec->expire_time,
-                                                             True);
+                                                             true);
                        if (rec->addresses == NULL) goto failed;
                        continue;
                }
@@ -274,7 +275,7 @@ static void wins_wack_allow(struct wack_state *s)
                                              s->reg_address,
                                              s->winssrv->wins_db->local_owner,
                                              rec->expire_time,
-                                             True);
+                                             true);
        if (rec->addresses == NULL) goto failed;
 
        /* if we have more than one address, this becomes implicit a MHOMED record */
@@ -301,7 +302,7 @@ static void wack_wins_challenge_handler(struct composite_context *c_req)
 {
        struct wack_state *s = talloc_get_type(c_req->async.private_data,
                                               struct wack_state);
-       BOOL found;
+       bool found;
        uint32_t i;
 
        s->status = wins_challenge_recv(c_req, s, &s->io);
@@ -327,11 +328,11 @@ static void wack_wins_challenge_handler(struct composite_context *c_req)
         * with the address trying to be registered, then deny
         * the registration
         */
-       found = False;
+       found = false;
        for (i=0; i < s->io.out.num_addresses; i++) {
                if (strcmp(s->reg_address, s->io.out.addresses[i]) != 0) continue;
 
-               found = True;
+               found = true;
                break;
        }
        if (!found) {
@@ -420,7 +421,7 @@ static void nbtd_winsserver_register(struct nbt_name_socket *nbtsock,
        uint8_t rcode = NBT_RCODE_OK;
        uint16_t nb_flags = packet->additional[0].rdata.netbios.addresses[0].nb_flags;
        const char *address = packet->additional[0].rdata.netbios.addresses[0].ipaddr;
-       BOOL mhomed = ((packet->operation & NBT_OPCODE) == NBT_OPCODE_MULTI_HOME_REG);
+       bool mhomed = ((packet->operation & NBT_OPCODE) == NBT_OPCODE_MULTI_HOME_REG);
        enum wrepl_name_type new_type = wrepl_type(nb_flags, name, mhomed);
        struct winsdb_addr *winsdb_addr = NULL;
 
@@ -614,7 +615,7 @@ static void nbtd_wins_randomize1Clist(const char **addresses, struct socket_addr
        ldb_qsort(addresses, num_addrs , sizeof(addresses[0]),
                  src, (ldb_qsort_cmp_fn_t)nbtd_wins_randomize1Clist_sort);
 
-       mask = lp_parm_string(-1, "nbtd", "wins_randomize1Clist_mask");
+       mask = lp_parm_string(global_loadparm, NULL, "nbtd", "wins_randomize1Clist_mask");
        if (!mask) {
                mask = "255.255.255.0";
        }
@@ -627,7 +628,7 @@ static void nbtd_wins_randomize1Clist(const char **addresses, struct socket_addr
        idx = sidx = r % num_addrs;
 
        while (1) {
-               BOOL same;
+               bool same;
 
                /* if the current one is in the same subnet, use it */
                same = iface_same_net(addresses[idx], src->addr, mask);
@@ -690,7 +691,8 @@ static void nbtd_winsserver_query(struct nbt_name_socket *nbtsock,
         * Typ: Daten REG_DWORD
         * Value: 0 = deactivated, 1 = activated
         */
-       if (name->type == NBT_NAME_LOGON && lp_parm_bool(-1, "nbtd", "wins_prepend1Bto1Cqueries", True)) {
+       if (name->type == NBT_NAME_LOGON && 
+           lp_parm_bool(global_loadparm, NULL, "nbtd", "wins_prepend1Bto1Cqueries", true)) {
                struct nbt_name name_1b;
 
                name_1b = *name;
@@ -704,7 +706,7 @@ static void nbtd_winsserver_query(struct nbt_name_socket *nbtsock,
 
        status = winsdb_lookup(winssrv->wins_db, name, packet, &rec);
        if (!NT_STATUS_IS_OK(status)) {
-               if (!lp_wins_dns_proxy()) {
+               if (!lp_wins_dns_proxy(global_loadparm)) {
                        goto notfound;
                }
 
@@ -785,7 +787,8 @@ static void nbtd_winsserver_query(struct nbt_name_socket *nbtsock,
         * Typ: Daten REG_DWORD
         * Value: 0 = deactivated, 1 = activated
         */
-       if (name->type == NBT_NAME_LOGON && lp_parm_bool(-1, "nbtd", "wins_randomize1Clist", False)) {
+       if (name->type == NBT_NAME_LOGON && 
+           lp_parm_bool(global_loadparm, NULL, "nbtd", "wins_randomize1Clist", false)) {
                nbtd_wins_randomize1Clist(addresses, src);
        }
 
@@ -954,7 +957,7 @@ NTSTATUS nbtd_winsserver_init(struct nbtd_server *nbtsrv)
 {
        uint32_t tmp;
 
-       if (!lp_wins_support()) {
+       if (!lp_wins_support(global_loadparm)) {
                nbtsrv->winssrv = NULL;
                return NT_STATUS_OK;
        }
@@ -962,11 +965,11 @@ NTSTATUS nbtd_winsserver_init(struct nbtd_server *nbtsrv)
        nbtsrv->winssrv = talloc_zero(nbtsrv, struct wins_server);
        NT_STATUS_HAVE_NO_MEMORY(nbtsrv->winssrv);
 
-       nbtsrv->winssrv->config.max_renew_interval = lp_max_wins_ttl();
-       nbtsrv->winssrv->config.min_renew_interval = lp_min_wins_ttl();
-       tmp = lp_parm_int(-1,"wreplsrv","tombstone_interval", 6*24*60*60);
+       nbtsrv->winssrv->config.max_renew_interval = lp_max_wins_ttl(global_loadparm);
+       nbtsrv->winssrv->config.min_renew_interval = lp_min_wins_ttl(global_loadparm);
+       tmp = lp_parm_int(global_loadparm, NULL, "wreplsrv", "tombstone_interval", 6*24*60*60);
        nbtsrv->winssrv->config.tombstone_interval = tmp;
-       tmp = lp_parm_int(-1,"wreplsrv","tombstone_timeout", 1*24*60*60);
+       tmp = lp_parm_int(global_loadparm, NULL, "wreplsrv"," tombstone_timeout", 1*24*60*60);
        nbtsrv->winssrv->config.tombstone_timeout = tmp;
 
        nbtsrv->winssrv->wins_db     = winsdb_connect(nbtsrv->winssrv, WINSDB_HANDLE_CALLER_NBTD);
index a2b479673a47011c99ea4a561f57bd97951f05fe..304edcf8de5c8dee9cb4c079172abcddda6f947d 100644 (file)
@@ -48,7 +48,7 @@ static void wins_challenge_handler(struct nbt_name_request *req)
 
                        state->query.in.dest_addr = state->io->in.addresses[state->current_address];
                        
-                       iface = nbtd_find_request_iface(state->io->in.nbtd_server, state->query.in.dest_addr, True);
+                       iface = nbtd_find_request_iface(state->io->in.nbtd_server, state->query.in.dest_addr, true);
                        if (!iface) {
                                composite_error(ctx, NT_STATUS_INTERNAL_ERROR);
                                return;
@@ -104,13 +104,13 @@ struct composite_context *wins_challenge_send(TALLOC_CTX *mem_ctx, struct wins_c
        /* setup a name query to the first address */
        state->query.in.name        = *state->io->in.name;
        state->query.in.dest_addr   = state->io->in.addresses[state->current_address];
-       state->query.in.broadcast   = False;
-       state->query.in.wins_lookup = True;
+       state->query.in.broadcast   = false;
+       state->query.in.wins_lookup = true;
        state->query.in.timeout     = 1;
        state->query.in.retries     = 2;
        ZERO_STRUCT(state->query.out);
 
-       iface = nbtd_find_request_iface(state->io->in.nbtd_server, state->query.in.dest_addr, True);
+       iface = nbtd_find_request_iface(state->io->in.nbtd_server, state->query.in.dest_addr, true);
        if (!iface) {
                goto failed;
        }
@@ -164,7 +164,7 @@ static void wins_release_demand_handler(struct nbt_name_request *req)
                        state->release.in.timeout   = (state->addresses_left > 1 ? 2 : 1);
                        state->release.in.retries   = (state->addresses_left > 1 ? 0 : 2);
 
-                       iface = nbtd_find_request_iface(state->io->in.nbtd_server, state->release.in.dest_addr, True);
+                       iface = nbtd_find_request_iface(state->io->in.nbtd_server, state->release.in.dest_addr, true);
                        if (!iface) {
                                composite_error(ctx, NT_STATUS_INTERNAL_ERROR);
                                return;
@@ -220,12 +220,12 @@ static struct composite_context *wins_release_demand_send(TALLOC_CTX *mem_ctx, s
        state->release.in.name        = *state->io->in.name;
        state->release.in.dest_addr   = state->io->in.addresses[state->current_address];
        state->release.in.address     = state->release.in.dest_addr;
-       state->release.in.broadcast   = False;
+       state->release.in.broadcast   = false;
        state->release.in.timeout     = (state->addresses_left > 1 ? 2 : 1);
        state->release.in.retries     = (state->addresses_left > 1 ? 0 : 2);
        ZERO_STRUCT(state->release.out);
 
-       iface = nbtd_find_request_iface(state->io->in.nbtd_server, state->release.in.dest_addr, True);
+       iface = nbtd_find_request_iface(state->io->in.nbtd_server, state->release.in.dest_addr, true);
        if (!iface) {
                goto failed;
        }
@@ -316,7 +316,7 @@ NTSTATUS nbtd_proxy_wins_challenge(struct irpc_message *msg,
        s->c_req->async.fn              = proxy_wins_challenge_handler;
        s->c_req->async.private_data    = s;
 
-       msg->defer_reply = True;
+       msg->defer_reply = true;
        return NT_STATUS_OK;
 }
 
@@ -375,6 +375,6 @@ NTSTATUS nbtd_proxy_wins_release_demand(struct irpc_message *msg,
        s->c_req->async.fn              = proxy_wins_release_demand_handler;
        s->c_req->async.private_data    = s;
 
-       msg->defer_reply = True;
+       msg->defer_reply = true;
        return NT_STATUS_OK;
 }
index 6c21576c2de0764764f87015a5fa0d67e82f374b..df7f33f8e019b6bcaf217e481803b6f2c669186f 100644 (file)
@@ -145,13 +145,13 @@ static struct group *nss_getgrent(void)
        static int buflen = 1024;
        NSS_STATUS status;
 
-       if (!buf) buf = malloc(buflen);
+       if (!buf) buf = malloc_array_p(char, buflen);
 
 again: 
        status = _nss_getgrent_r(&grp, buf, buflen, &nss_errno);
        if (status == NSS_STATUS_TRYAGAIN) {
                buflen *= 2;
-               buf = realloc(buf, buflen);
+               buf = realloc_p(buf, char, buflen);
                goto again;
        }
        if (status == NSS_STATUS_NOTFOUND) {
@@ -173,12 +173,12 @@ static struct group *nss_getgrnam(const char *name)
        static int buflen = 1000;
        NSS_STATUS status;
 
-       if (!buf) buf = malloc(buflen);
+       if (!buf) buf = malloc_array_p(char, buflen);
 again: 
        status = _nss_getgrnam_r(name, &grp, buf, buflen, &nss_errno);
        if (status == NSS_STATUS_TRYAGAIN) {
                buflen *= 2;
-               buf = realloc(buf, buflen);
+               buf = realloc_p(buf, char, buflen);
                goto again;
        }
        if (status == NSS_STATUS_NOTFOUND) {
@@ -200,12 +200,12 @@ static struct group *nss_getgrgid(gid_t gid)
        static int buflen = 1000;
        NSS_STATUS status;
        
-       if (!buf) buf = malloc(buflen);
+       if (!buf) buf = malloc_array_p(char, buflen);
 again: 
        status = _nss_getgrgid_r(gid, &grp, buf, buflen, &nss_errno);
        if (status == NSS_STATUS_TRYAGAIN) {
                buflen *= 2;
-               buf = realloc(buf, buflen);
+               buf = realloc_p(buf, char, buflen);
                goto again;
        }
        if (status == NSS_STATUS_NOTFOUND) {
index e8ea31db0fc9d2b3c46106ff94c985ae71dc131f..2ae85dcb1ebb68ebdb0c6434645b101ac6c2e40c 100644 (file)
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#include "includes.h"
-#include "nsswitch/winbind_client.h"
+#include "winbind_client.h"
 
 /* Global variables.  These are effectively the client state information */
 
 int winbindd_fd = -1;           /* fd for winbindd socket */
+static int is_privileged = 0;
 
 /* Free a response structure */
 
-void free_response(struct winbindd_response *response)
+void winbindd_free_response(struct winbindd_response *response)
 {
        /* Free any allocated extra_data */
 
@@ -41,7 +41,7 @@ void free_response(struct winbindd_response *response)
 
 /* Initialise a request structure */
 
-void init_request(struct winbindd_request *request, int request_type)
+void winbindd_init_request(struct winbindd_request *request, int request_type)
 {
        request->length = sizeof(struct winbindd_request);
 
@@ -52,7 +52,7 @@ void init_request(struct winbindd_request *request, int request_type)
 
 /* Initialise a response structure */
 
-void init_response(struct winbindd_response *response)
+static void init_response(struct winbindd_response *response)
 {
        /* Initialise return value */
 
@@ -61,7 +61,7 @@ void init_response(struct winbindd_response *response)
 
 /* Close established socket */
 
-void close_sock(void)
+void winbind_close_sock(void)
 {
        if (winbindd_fd != -1) {
                close(winbindd_fd);
@@ -70,10 +70,6 @@ void close_sock(void)
 }
 
 #define CONNECT_TIMEOUT 30
-#if 0 /* unused */
-#define WRITE_TIMEOUT CONNECT_TIMEOUT
-#define READ_TIMEOUT CONNECT_TIMEOUT
-#endif
 
 /* Make sure socket handle isn't stdin, stdout or stderr */
 #define RECURSION_LIMIT 3
@@ -172,7 +168,7 @@ static int winbind_named_pipe_sock(const char *dir)
 {
        struct sockaddr_un sunaddr;
        struct stat st;
-       char *path;
+       pstring path;
        int fd;
        int wait_time;
        int slept;
@@ -189,8 +185,16 @@ static int winbind_named_pipe_sock(const char *dir)
        }
        
        /* Connect to socket */
-
-       asprintf(&path, "%s%s", dir, "/" WINBINDD_SOCKET_NAME);
+       
+       strncpy(path, dir, sizeof(path) - 1);
+       path[sizeof(path) - 1] = '\0';
+       
+       strncat(path, "/", sizeof(path) - 1 - strlen(path));
+       path[sizeof(path) - 1] = '\0';
+       
+       strncat(path, WINBINDD_SOCKET_NAME, sizeof(path) - 1 - strlen(path));
+       path[sizeof(path) - 1] = '\0';
+       
        ZERO_STRUCT(sunaddr);
        sunaddr.sun_family = AF_UNIX;
        strncpy(sunaddr.sun_path, path, sizeof(sunaddr.sun_path) - 1);
@@ -200,11 +204,8 @@ static int winbind_named_pipe_sock(const char *dir)
           the winbindd daemon is not running. */
 
        if (lstat(path, &st) == -1) {
-               SAFE_FREE(path);
                return -1;
        }
-
-       SAFE_FREE(path);
        
        /* Check permissions on unix socket file */
        
@@ -277,72 +278,80 @@ static int winbind_named_pipe_sock(const char *dir)
 
        close(fd);
        return -1;
+}
 
-       if (connect(fd, (struct sockaddr *)&sunaddr, 
-                   sizeof(sunaddr)) == -1) {
-               close(fd);
-               return -1;
+static const char *winbindd_socket_dir(void)
+{
+#ifdef SOCKET_WRAPPER
+       const char *env_dir;
+
+       env_dir = getenv(WINBINDD_SOCKET_DIR_ENVVAR);
+       if (env_dir) {
+               return env_dir;
        }
-        
-       return fd;
+#endif
+
+       return WINBINDD_SOCKET_DIR;
 }
 
 /* Connect to winbindd socket */
 
-int winbind_open_pipe_sock(void)
+static int winbind_open_pipe_sock(int recursing, int need_priv)
 {
 #ifdef HAVE_UNIXSOCKET
        static pid_t our_pid;
        struct winbindd_request request;
        struct winbindd_response response;
-       const char *winbindd_socket_dir_env;
        ZERO_STRUCT(request);
        ZERO_STRUCT(response);
 
        if (our_pid != getpid()) {
-               close_sock();
+               winbind_close_sock();
                our_pid = getpid();
        }
+
+       if ((need_priv != 0) && (is_privileged == 0)) {
+               winbind_close_sock();
+       }
        
        if (winbindd_fd != -1) {
                return winbindd_fd;
        }
 
-#ifdef SOCKET_WRAPPER
-       winbindd_socket_dir_env = getenv(WINBINDD_SOCKET_DIR_ENV);
-
-       if (!winbindd_socket_dir_env)
-       {
-               winbindd_socket_dir_env = WINBINDD_SOCKET_DIR;
+       if (recursing) {
+               return -1;
        }
-#else
-       winbindd_socket_dir_env = WINBINDD_SOCKET_DIR;
-#endif
-
-       winbindd_fd = winbind_named_pipe_sock(winbindd_socket_dir_env);
 
-       if (winbindd_fd == -1)
-       {
+       if ((winbindd_fd = winbind_named_pipe_sock(winbindd_socket_dir())) == -1) {
                return -1;
        }
 
+       is_privileged = 0;
+
        /* version-check the socket */
 
-       if ((winbindd_request(WINBINDD_INTERFACE_VERSION, &request, &response) != NSS_STATUS_SUCCESS) || (response.data.interface_version != WINBIND_INTERFACE_VERSION)) {
-               close_sock();
+       request.wb_flags = WBFLAG_RECURSE;
+       if ((winbindd_request_response(WINBINDD_INTERFACE_VERSION, &request, &response) != NSS_STATUS_SUCCESS) || (response.data.interface_version != WINBIND_INTERFACE_VERSION)) {
+               winbind_close_sock();
                return -1;
        }
 
        /* try and get priv pipe */
 
-       if (winbindd_request(WINBINDD_PRIV_PIPE_DIR, &request, &response) == NSS_STATUS_SUCCESS) {
+       request.wb_flags = WBFLAG_RECURSE;
+       if (winbindd_request_response(WINBINDD_PRIV_PIPE_DIR, &request, &response) == NSS_STATUS_SUCCESS) {
                int fd;
-               if ((fd = winbind_named_pipe_sock(response.extra_data.data)) != -1) {
+               if ((fd = winbind_named_pipe_sock((char *)response.extra_data.data)) != -1) {
                        close(winbindd_fd);
                        winbindd_fd = fd;
+                       is_privileged = 1;
                }
        }
 
+       if ((need_priv != 0) && (is_privileged == 0)) {
+               return -1;
+       }
+
        SAFE_FREE(response.extra_data.data);
 
        return winbindd_fd;
@@ -353,7 +362,7 @@ int winbind_open_pipe_sock(void)
 
 /* Write data to winbindd socket */
 
-int write_sock(void *buffer, int count)
+int winbind_write_sock(void *buffer, int count, int recursing, int need_priv)
 {
        int result, nwritten;
        
@@ -361,7 +370,7 @@ int write_sock(void *buffer, int count)
        
  restart:
        
-       if (winbind_open_pipe_sock() == -1) {
+       if (winbind_open_pipe_sock(recursing, need_priv) == -1) {
                return -1;
        }
        
@@ -381,7 +390,7 @@ int write_sock(void *buffer, int count)
                ZERO_STRUCT(tv);
                
                if (select(winbindd_fd + 1, &r_fds, NULL, NULL, &tv) == -1) {
-                       close_sock();
+                       winbind_close_sock();
                        return -1;                   /* Select error */
                }
                
@@ -399,7 +408,7 @@ int write_sock(void *buffer, int count)
                                
                                /* Write failed */
                                
-                               close_sock();
+                               winbind_close_sock();
                                return -1;
                        }
                        
@@ -409,7 +418,7 @@ int write_sock(void *buffer, int count)
                        
                        /* Pipe has closed on remote end */
                        
-                       close_sock();
+                       winbind_close_sock();
                        goto restart;
                }
        }
@@ -419,11 +428,15 @@ int write_sock(void *buffer, int count)
 
 /* Read data from winbindd socket */
 
-static int read_sock(void *buffer, int count)
+int winbind_read_sock(void *buffer, int count)
 {
        int nread = 0;
        int total_time = 0, selret;
 
+       if (winbindd_fd == -1) {
+               return -1;
+       }
+
        /* Read data from socket */
        while(nread < count) {
                struct timeval tv;
@@ -439,7 +452,7 @@ static int read_sock(void *buffer, int count)
                tv.tv_sec = 5;
 
                if ((selret = select(winbindd_fd + 1, &r_fds, NULL, NULL, &tv)) == -1) {
-                       close_sock();
+                       winbind_close_sock();
                        return -1;                   /* Select error */
                }
                
@@ -447,7 +460,7 @@ static int read_sock(void *buffer, int count)
                        /* Not ready for read yet... */
                        if (total_time >= 30) {
                                /* Timeout */
-                               close_sock();
+                               winbind_close_sock();
                                return -1;
                        }
                        total_time += 5;
@@ -467,7 +480,7 @@ static int read_sock(void *buffer, int count)
                                   can do here is just return -1 and fail since the
                                   transaction has failed half way through. */
                        
-                               close_sock();
+                               winbind_close_sock();
                                return -1;
                        }
                        
@@ -481,7 +494,7 @@ static int read_sock(void *buffer, int count)
 
 /* Read reply */
 
-int read_reply(struct winbindd_response *response)
+int winbindd_read_reply(struct winbindd_response *response)
 {
        int result1, result2 = 0;
 
@@ -491,9 +504,9 @@ int read_reply(struct winbindd_response *response)
        
        /* Read fixed length response */
        
-       if ((result1 = read_sock(response, sizeof(struct winbindd_response)))
-           == -1) {
-               
+       result1 = winbind_read_sock(response,
+                                   sizeof(struct winbindd_response));
+       if (result1 == -1) {
                return -1;
        }
        
@@ -515,9 +528,10 @@ int read_reply(struct winbindd_response *response)
                        return -1;
                }
                
-               if ((result2 = read_sock(response->extra_data.data, extra_data_len))
-                   == -1) {
-                       free_response(response);
+               result2 = winbind_read_sock(response->extra_data.data,
+                                           extra_data_len);
+               if (result2 == -1) {
+                       winbindd_free_response(response);
                        return -1;
                }
        }
@@ -527,22 +541,31 @@ int read_reply(struct winbindd_response *response)
        return result1 + result2;
 }
 
+bool winbind_env_set(void)
+{
+       char *env;
+       
+       if ((env=getenv(WINBINDD_DONT_ENV)) != NULL) {
+               if(strcmp(env, "1") == 0) {
+                       return true;
+               }
+       }
+       return false;
+}
+
 /* 
  * send simple types of requests 
  */
 
-NSS_STATUS winbindd_send_request(int req_type, struct winbindd_request *request)
+NSS_STATUS winbindd_send_request(int req_type, int need_priv,
+                                struct winbindd_request *request)
 {
        struct winbindd_request lrequest;
-       char *env;
-       int  value;
-       
+
        /* Check for our tricky environment variable */
 
-       if ( (env = getenv(WINBINDD_DONT_ENV)) != NULL ) {
-               value = atoi(env);
-               if ( value == 1 )
-                       return NSS_STATUS_NOTFOUND;
+       if (winbind_env_set()) {
+               return NSS_STATUS_NOTFOUND;
        }
 
        if (!request) {
@@ -552,9 +575,19 @@ NSS_STATUS winbindd_send_request(int req_type, struct winbindd_request *request)
        
        /* Fill in request and send down pipe */
 
-       init_request(request, req_type);
+       winbindd_init_request(request, req_type);
        
-       if (write_sock(request, sizeof(*request)) == -1) {
+       if (winbind_write_sock(request, sizeof(*request),
+                              request->wb_flags & WBFLAG_RECURSE,
+                              need_priv) == -1) {
+               return NSS_STATUS_UNAVAIL;
+       }
+
+       if ((request->extra_len != 0) &&
+           (winbind_write_sock(request->extra_data.data,
+                               request->extra_len,
+                               request->wb_flags & WBFLAG_RECURSE,
+                               need_priv) == -1)) {
                return NSS_STATUS_UNAVAIL;
        }
        
@@ -577,13 +610,13 @@ NSS_STATUS winbindd_get_response(struct winbindd_response *response)
        init_response(response);
 
        /* Wait for reply */
-       if (read_reply(response) == -1) {
+       if (winbindd_read_reply(response) == -1) {
                return NSS_STATUS_UNAVAIL;
        }
 
        /* Throw away extra data if client didn't request it */
        if (response == &lresponse) {
-               free_response(response);
+               winbindd_free_response(response);
        }
 
        /* Copy reply data from socket */
@@ -596,16 +629,40 @@ NSS_STATUS winbindd_get_response(struct winbindd_response *response)
 
 /* Handle simple types of requests */
 
-NSS_STATUS winbindd_request(int req_type, 
+NSS_STATUS winbindd_request_response(int req_type, 
                            struct winbindd_request *request,
                            struct winbindd_response *response)
 {
-       NSS_STATUS status;
+       NSS_STATUS status = NSS_STATUS_UNAVAIL;
+       int count = 0;
 
-       status = winbindd_send_request(req_type, request);
-       if (status != NSS_STATUS_SUCCESS) 
-               return(status);
-       return winbindd_get_response(response);
+       while ((status == NSS_STATUS_UNAVAIL) && (count < 10)) {
+               status = winbindd_send_request(req_type, 0, request);
+               if (status != NSS_STATUS_SUCCESS) 
+                       return(status);
+               status = winbindd_get_response(response);
+               count += 1;
+       }
+
+       return status;
+}
+
+NSS_STATUS winbindd_priv_request_response(int req_type, 
+                                         struct winbindd_request *request,
+                                         struct winbindd_response *response)
+{
+       NSS_STATUS status = NSS_STATUS_UNAVAIL;
+       int count = 0;
+
+       while ((status == NSS_STATUS_UNAVAIL) && (count < 10)) {
+               status = winbindd_send_request(req_type, 1, request);
+               if (status != NSS_STATUS_SUCCESS) 
+                       return(status);
+               status = winbindd_get_response(response);
+               count += 1;
+       }
+
+       return status;
 }
 
 /*************************************************************************
@@ -613,14 +670,35 @@ NSS_STATUS winbindd_request(int req_type,
  enable them
  ************************************************************************/
  
-BOOL winbind_off( void )
+bool winbind_off(void)
 {
-       setenv(WINBINDD_DONT_ENV, "1", 1);
-       return True;
+       return setenv(WINBINDD_DONT_ENV, "1", 1) != -1;
 }
 
-BOOL winbind_on( void )
+bool winbind_on(void)
 {
-       setenv(WINBINDD_DONT_ENV, "0", 1);
-       return True;
+       return setenv(WINBINDD_DONT_ENV, "0", 1) != -1;
+}
+
+/*************************************************************************
+ ************************************************************************/
+
+const char *nss_err_str(NSS_STATUS ret)
+{
+       switch (ret) {
+               case NSS_STATUS_TRYAGAIN:
+                       return "NSS_STATUS_TRYAGAIN";
+               case NSS_STATUS_SUCCESS:
+                       return "NSS_STATUS_SUCCESS";
+               case NSS_STATUS_NOTFOUND:
+                       return "NSS_STATUS_NOTFOUND";
+               case NSS_STATUS_UNAVAIL:
+                       return "NSS_STATUS_UNAVAIL";
+#ifdef NSS_STATUS_RETURN
+               case NSS_STATUS_RETURN:
+                       return "NSS_STATUS_RETURN";
+#endif
+               default:
+                       return "UNKNOWN RETURN CODE!!!!!!!";
+       }
 }
index 7e674fde1f72b91d6eb50a011164da09482f1cba..4538911f97ba37d4a9ee65ef3c1155158e9051ed 100644 (file)
 
 #include "includes.h"
 #include "pstring.h"
-#include "winbind_nss_config.h"
-#include "winbindd_nss.h"
 #include "winbind_client.h"
 #include "librpc/gen_ndr/ndr_netlogon.h"
 #include "libcli/auth/libcli_auth.h"
 #include "libcli/security/security.h"
 #include "lib/cmdline/popt_common.h"
 #include "dynconfig.h"
+#include "param/param.h"
 
 extern int winbindd_fd;
 
-static char winbind_separator_int(BOOL strict)
+static char winbind_separator_int(bool strict)
 {
        struct winbindd_response response;
-       static BOOL got_sep;
+       static bool got_sep;
        static char sep;
 
        if (got_sep)
@@ -46,18 +45,18 @@ static char winbind_separator_int(BOOL strict)
 
        /* Send off request */
 
-       if (winbindd_request(WINBINDD_INFO, NULL, &response) !=
+       if (winbindd_request_response(WINBINDD_INFO, NULL, &response) !=
            NSS_STATUS_SUCCESS) {
                d_fprintf(stderr, "could not obtain winbind separator!\n");
                if (strict) {
                        return 0;
                }
                /* HACK: (this module should not call lp_ funtions) */
-               return *lp_winbind_separator();
+               return *lp_winbind_separator(global_loadparm);
        }
 
        sep = response.data.info.winbind_separator;
-       got_sep = True;
+       got_sep = true;
 
        if (!sep) {
                d_fprintf(stderr, "winbind separator was NULL!\n");
@@ -65,7 +64,7 @@ static char winbind_separator_int(BOOL strict)
                        return 0;
                }
                /* HACK: (this module should not call lp_ funtions) */
-               sep = *lp_winbind_separator();
+               sep = *lp_winbind_separator(global_loadparm);
        }
        
        return sep;
@@ -73,7 +72,7 @@ static char winbind_separator_int(BOOL strict)
 
 static char winbind_separator(void)
 {
-       return winbind_separator_int(False);
+       return winbind_separator_int(false);
 }
 
 static const char *get_winbind_domain(void)
@@ -85,12 +84,12 @@ static const char *get_winbind_domain(void)
 
        /* Send off request */
 
-       if (winbindd_request(WINBINDD_DOMAIN_NAME, NULL, &response) !=
+       if (winbindd_request_response(WINBINDD_DOMAIN_NAME, NULL, &response) !=
            NSS_STATUS_SUCCESS) {
                d_fprintf(stderr, "could not obtain winbind domain name!\n");
                
                /* HACK: (this module should not call lp_ funtions) */
-               return lp_workgroup();
+               return lp_workgroup(global_loadparm);
        }
 
        fstrcpy(winbind_domain, response.data.domain_name);
@@ -102,7 +101,7 @@ static const char *get_winbind_domain(void)
 /* Copy of parse_domain_user from winbindd_util.c.  Parse a string of the
    form DOMAIN/user into a domain and a user */
 
-static BOOL parse_wbinfo_domain_user(const char *domuser, fstring domain, 
+static bool parse_wbinfo_domain_user(const char *domuser, fstring domain, 
                                     fstring user)
 {
 
@@ -111,7 +110,7 @@ static BOOL parse_wbinfo_domain_user(const char *domuser, fstring domain,
        if (!p) {
                fstrcpy(user, domuser);
                fstrcpy(domain, get_winbind_domain());
-               return True;
+               return true;
        }
         
        fstrcpy(user, p+1);
@@ -119,12 +118,12 @@ static BOOL parse_wbinfo_domain_user(const char *domuser, fstring domain,
        domain[PTR_DIFF(p, domuser)] = 0;
        strupper_m(domain);
 
-       return True;
+       return true;
 }
 
 /* pull pwent info for a given user */
 
-static BOOL wbinfo_get_userinfo(char *user)
+static bool wbinfo_get_userinfo(char *user)
 {
        struct winbindd_request request;
        struct winbindd_response response;
@@ -137,10 +136,10 @@ static BOOL wbinfo_get_userinfo(char *user)
        
        fstrcpy(request.data.username, user);
 
-       result = winbindd_request(WINBINDD_GETPWNAM, &request, &response);
+       result = winbindd_request_response(WINBINDD_GETPWNAM, &request, &response);
        
        if (result != NSS_STATUS_SUCCESS)
-               return False;
+               return false;
        
        d_printf( "%s:%s:%d:%d:%s:%s:%s\n",
                          response.data.pw.pw_name,
@@ -151,11 +150,11 @@ static BOOL wbinfo_get_userinfo(char *user)
                          response.data.pw.pw_dir,
                          response.data.pw.pw_shell );
        
-       return True;
+       return true;
 }
 
 /* pull pwent info for a given uid */
-static BOOL wbinfo_get_uidinfo(int uid)
+static bool wbinfo_get_uidinfo(int uid)
 {
        struct winbindd_request request;
        struct winbindd_response response;
@@ -166,10 +165,10 @@ static BOOL wbinfo_get_uidinfo(int uid)
 
        request.data.uid = uid;
 
-       result = winbindd_request(WINBINDD_GETPWUID, &request, &response);
+       result = winbindd_request_response(WINBINDD_GETPWUID, &request, &response);
 
        if (result != NSS_STATUS_SUCCESS)
-               return False;
+               return false;
 
        d_printf( "%s:%s:%d:%d:%s:%s:%s\n",
                response.data.pw.pw_name,
@@ -180,11 +179,11 @@ static BOOL wbinfo_get_uidinfo(int uid)
                response.data.pw.pw_dir,
                response.data.pw.pw_shell );
 
-       return True;
+       return true;
 }
 
 /* pull grent for a given group */
-static BOOL wbinfo_get_groupinfo(char *group)
+static bool wbinfo_get_groupinfo(char *group)
 {
        struct winbindd_request request;
        struct winbindd_response response;
@@ -197,23 +196,23 @@ static BOOL wbinfo_get_groupinfo(char *group)
 
        fstrcpy(request.data.groupname, group);
 
-       result = winbindd_request(WINBINDD_GETGRNAM, &request,
+       result = winbindd_request_response(WINBINDD_GETGRNAM, &request,
                                  &response);
 
        if ( result != NSS_STATUS_SUCCESS)
-               return False;
+               return false;
 
        d_printf( "%s:%s:%d\n",
                  response.data.gr.gr_name,
                  response.data.gr.gr_passwd,
                  response.data.gr.gr_gid );
        
-       return True;
+       return true;
 }
 
 /* List groups a user is a member of */
 
-static BOOL wbinfo_get_usergroups(char *user)
+static bool wbinfo_get_usergroups(char *user)
 {
        struct winbindd_request request;
        struct winbindd_response response;
@@ -227,22 +226,22 @@ static BOOL wbinfo_get_usergroups(char *user)
 
        fstrcpy(request.data.username, user);
 
-       result = winbindd_request(WINBINDD_GETGROUPS, &request, &response);
+       result = winbindd_request_response(WINBINDD_GETGROUPS, &request, &response);
 
        if (result != NSS_STATUS_SUCCESS)
-               return False;
+               return false;
 
        for (i = 0; i < response.data.num_entries; i++)
                d_printf("%d\n", (int)((gid_t *)response.extra_data.data)[i]);
 
        SAFE_FREE(response.extra_data.data);
 
-       return True;
+       return true;
 }
 
 
 /* List group SIDs a user SID is a member of */
-static BOOL wbinfo_get_usersids(char *user_sid)
+static bool wbinfo_get_usersids(char *user_sid)
 {
        struct winbindd_request request;
        struct winbindd_response response;
@@ -256,10 +255,10 @@ static BOOL wbinfo_get_usersids(char *user_sid)
        /* Send request */
        fstrcpy(request.data.sid, user_sid);
 
-       result = winbindd_request(WINBINDD_GETUSERSIDS, &request, &response);
+       result = winbindd_request_response(WINBINDD_GETUSERSIDS, &request, &response);
 
        if (result != NSS_STATUS_SUCCESS)
-               return False;
+               return false;
 
        s = (const char *)response.extra_data.data;
        for (i = 0; i < response.data.num_entries; i++) {
@@ -269,10 +268,10 @@ static BOOL wbinfo_get_usersids(char *user_sid)
 
        SAFE_FREE(response.extra_data.data);
 
-       return True;
+       return true;
 }
 
-static BOOL wbinfo_get_userdomgroups(const char *user_sid)
+static bool wbinfo_get_userdomgroups(const char *user_sid)
 {
        struct winbindd_request request;
        struct winbindd_response response;
@@ -284,23 +283,23 @@ static BOOL wbinfo_get_userdomgroups(const char *user_sid)
        /* Send request */
        fstrcpy(request.data.sid, user_sid);
 
-       result = winbindd_request(WINBINDD_GETUSERDOMGROUPS, &request,
+       result = winbindd_request_response(WINBINDD_GETUSERDOMGROUPS, &request,
                                  &response);
 
        if (result != NSS_STATUS_SUCCESS)
-               return False;
+               return false;
 
        if (response.data.num_entries != 0)
                printf("%s", (char *)response.extra_data.data);
        
        SAFE_FREE(response.extra_data.data);
 
-       return True;
+       return true;
 }
 
 /* Convert NetBIOS name to IP */
 
-static BOOL wbinfo_wins_byname(char *name)
+static bool wbinfo_wins_byname(char *name)
 {
        struct winbindd_request request;
        struct winbindd_response response;
@@ -312,21 +311,21 @@ static BOOL wbinfo_wins_byname(char *name)
 
        fstrcpy(request.data.winsreq, name);
 
-       if (winbindd_request(WINBINDD_WINS_BYNAME, &request, &response) !=
+       if (winbindd_request_response(WINBINDD_WINS_BYNAME, &request, &response) !=
            NSS_STATUS_SUCCESS) {
-               return False;
+               return false;
        }
 
        /* Display response */
 
        d_printf("%s\n", response.data.winsresp);
 
-       return True;
+       return true;
 }
 
 /* Convert IP to NetBIOS name */
 
-static BOOL wbinfo_wins_byip(char *ip)
+static bool wbinfo_wins_byip(char *ip)
 {
        struct winbindd_request request;
        struct winbindd_response response;
@@ -338,21 +337,21 @@ static BOOL wbinfo_wins_byip(char *ip)
 
        fstrcpy(request.data.winsreq, ip);
 
-       if (winbindd_request(WINBINDD_WINS_BYIP, &request, &response) !=
+       if (winbindd_request_response(WINBINDD_WINS_BYIP, &request, &response) !=
            NSS_STATUS_SUCCESS) {
-               return False;
+               return false;
        }
 
        /* Display response */
 
        d_printf("%s\n", response.data.winsresp);
 
-       return True;
+       return true;
 }
 
 /* List trusted domains */
 
-static BOOL wbinfo_list_domains(BOOL list_all_domains)
+static bool wbinfo_list_domains(bool list_all_domains)
 {
        struct winbindd_request request;
        struct winbindd_response response;
@@ -364,9 +363,9 @@ static BOOL wbinfo_list_domains(BOOL list_all_domains)
 
        request.data.list_all_domains = list_all_domains;
 
-       if (winbindd_request(WINBINDD_LIST_TRUSTDOM, &request, &response) !=
+       if (winbindd_request_response(WINBINDD_LIST_TRUSTDOM, &request, &response) !=
            NSS_STATUS_SUCCESS)
-               return False;
+               return false;
 
        /* Display response */
 
@@ -380,7 +379,7 @@ static BOOL wbinfo_list_domains(BOOL list_all_domains)
                        if (p == 0) {
                                d_fprintf(stderr, "Got invalid response: %s\n",
                                         extra_data);
-                               return False;
+                               return false;
                        }
                        *p = 0;
                        d_printf("%s\n", name);
@@ -389,20 +388,20 @@ static BOOL wbinfo_list_domains(BOOL list_all_domains)
                SAFE_FREE(response.extra_data.data);
        }
 
-       return True;
+       return true;
 }
 
 /* List own domain */
 
-static BOOL wbinfo_list_own_domain(void)
+static bool wbinfo_list_own_domain(void)
 {
        d_printf("%s\n", get_winbind_domain());
 
-       return True;
+       return true;
 }
 
 /* show sequence numbers */
-static BOOL wbinfo_show_sequence(const char *domain)
+static bool wbinfo_show_sequence(const char *domain)
 {
        struct winbindd_request  request;
        struct winbindd_response response;
@@ -415,9 +414,9 @@ static BOOL wbinfo_show_sequence(const char *domain)
 
        /* Send request */
 
-       if (winbindd_request(WINBINDD_SHOW_SEQUENCE, &request, &response) !=
+       if (winbindd_request_response(WINBINDD_SHOW_SEQUENCE, &request, &response) !=
            NSS_STATUS_SUCCESS)
-               return False;
+               return false;
 
        /* Display response */
 
@@ -427,12 +426,12 @@ static BOOL wbinfo_show_sequence(const char *domain)
                SAFE_FREE(response.extra_data.data);
        }
 
-       return True;
+       return true;
 }
 
 /* Show domain info */
 
-static BOOL wbinfo_domain_info(const char *domain_name)
+static bool wbinfo_domain_info(const char *domain_name)
 {
        struct winbindd_request request;
        struct winbindd_response response;
@@ -447,9 +446,9 @@ static BOOL wbinfo_domain_info(const char *domain_name)
 
        /* Send request */
 
-       if (winbindd_request(WINBINDD_DOMAIN_INFO, &request, &response) !=
+       if (winbindd_request_response(WINBINDD_DOMAIN_INFO, &request, &response) !=
            NSS_STATUS_SUCCESS)
-               return False;
+               return false;
 
        /* Display response */
 
@@ -466,13 +465,11 @@ static BOOL wbinfo_domain_info(const char *domain_name)
        d_printf("Primary           : %s\n",
                 response.data.domain_info.primary ? "Yes" : "No");
 
-       d_printf("Sequence          : %d\n", response.data.domain_info.sequence_number);
-
-       return True;
+       return true;
 }
 
 /* Get a foreign DC's name */
-static BOOL wbinfo_getdcname(const char *domain_name)
+static bool wbinfo_getdcname(const char *domain_name)
 {
        struct winbindd_request request;
        struct winbindd_response response;
@@ -484,29 +481,29 @@ static BOOL wbinfo_getdcname(const char *domain_name)
 
        /* Send request */
 
-       if (winbindd_request(WINBINDD_GETDCNAME, &request, &response) !=
+       if (winbindd_request_response(WINBINDD_GETDCNAME, &request, &response) !=
            NSS_STATUS_SUCCESS) {
                d_fprintf(stderr, "Could not get dc name for %s\n", domain_name);
-               return False;
+               return false;
        }
 
        /* Display response */
 
        d_printf("%s\n", response.data.dc_name);
 
-       return True;
+       return true;
 }
 
 /* Check trust account password */
 
-static BOOL wbinfo_check_secret(void)
+static bool wbinfo_check_secret(void)
 {
         struct winbindd_response response;
         NSS_STATUS result;
 
         ZERO_STRUCT(response);
 
-        result = winbindd_request(WINBINDD_CHECK_MACHACC, NULL, &response);
+        result = winbindd_request_response(WINBINDD_CHECK_MACHACC, NULL, &response);
                
        d_printf("checking the trust secret via RPC calls %s\n", 
                 (result == NSS_STATUS_SUCCESS) ? "succeeded" : "failed");
@@ -521,7 +518,7 @@ static BOOL wbinfo_check_secret(void)
 
 /* Convert uid to sid */
 
-static BOOL wbinfo_uid_to_sid(uid_t uid)
+static bool wbinfo_uid_to_sid(uid_t uid)
 {
        struct winbindd_request request;
        struct winbindd_response response;
@@ -533,20 +530,20 @@ static BOOL wbinfo_uid_to_sid(uid_t uid)
 
        request.data.uid = uid;
 
-       if (winbindd_request(WINBINDD_UID_TO_SID, &request, &response) !=
+       if (winbindd_request_response(WINBINDD_UID_TO_SID, &request, &response) !=
            NSS_STATUS_SUCCESS)
-               return False;
+               return false;
 
        /* Display response */
 
        d_printf("%s\n", response.data.sid.sid);
 
-       return True;
+       return true;
 }
 
 /* Convert gid to sid */
 
-static BOOL wbinfo_gid_to_sid(gid_t gid)
+static bool wbinfo_gid_to_sid(gid_t gid)
 {
        struct winbindd_request request;
        struct winbindd_response response;
@@ -558,20 +555,20 @@ static BOOL wbinfo_gid_to_sid(gid_t gid)
 
        request.data.gid = gid;
 
-       if (winbindd_request(WINBINDD_GID_TO_SID, &request, &response) !=
+       if (winbindd_request_response(WINBINDD_GID_TO_SID, &request, &response) !=
            NSS_STATUS_SUCCESS)
-               return False;
+               return false;
 
        /* Display response */
 
        d_printf("%s\n", response.data.sid.sid);
 
-       return True;
+       return true;
 }
 
 /* Convert sid to uid */
 
-static BOOL wbinfo_sid_to_uid(char *sid)
+static bool wbinfo_sid_to_uid(char *sid)
 {
        struct winbindd_request request;
        struct winbindd_response response;
@@ -583,18 +580,18 @@ static BOOL wbinfo_sid_to_uid(char *sid)
 
        fstrcpy(request.data.sid, sid);
 
-       if (winbindd_request(WINBINDD_SID_TO_UID, &request, &response) !=
+       if (winbindd_request_response(WINBINDD_SID_TO_UID, &request, &response) !=
            NSS_STATUS_SUCCESS)
-               return False;
+               return false;
 
        /* Display response */
 
        d_printf("%d\n", (int)response.data.uid);
 
-       return True;
+       return true;
 }
 
-static BOOL wbinfo_sid_to_gid(char *sid)
+static bool wbinfo_sid_to_gid(char *sid)
 {
        struct winbindd_request request;
        struct winbindd_response response;
@@ -606,20 +603,20 @@ static BOOL wbinfo_sid_to_gid(char *sid)
 
        fstrcpy(request.data.sid, sid);
 
-       if (winbindd_request(WINBINDD_SID_TO_GID, &request, &response) !=
+       if (winbindd_request_response(WINBINDD_SID_TO_GID, &request, &response) !=
            NSS_STATUS_SUCCESS)
-               return False;
+               return false;
 
        /* Display response */
 
        d_printf("%d\n", (int)response.data.gid);
 
-       return True;
+       return true;
 }
 
 /* Convert sid to string */
 
-static BOOL wbinfo_lookupsid(char *sid)
+static bool wbinfo_lookupsid(char *sid)
 {
        struct winbindd_request request;
        struct winbindd_response response;
@@ -631,9 +628,9 @@ static BOOL wbinfo_lookupsid(char *sid)
 
        fstrcpy(request.data.sid, sid);
 
-       if (winbindd_request(WINBINDD_LOOKUPSID, &request, &response) !=
+       if (winbindd_request_response(WINBINDD_LOOKUPSID, &request, &response) !=
            NSS_STATUS_SUCCESS)
-               return False;
+               return false;
 
        /* Display response */
 
@@ -641,7 +638,7 @@ static BOOL wbinfo_lookupsid(char *sid)
                 winbind_separator(), response.data.name.name, 
                 response.data.name.type);
 
-       return True;
+       return true;
 }
 
 static const char *sid_type_lookup(enum lsa_SidType r)
@@ -662,7 +659,7 @@ static const char *sid_type_lookup(enum lsa_SidType r)
 
 /* Convert string to sid */
 
-static BOOL wbinfo_lookupname(char *name)
+static bool wbinfo_lookupname(char *name)
 {
        struct winbindd_request request;
        struct winbindd_response response;
@@ -675,20 +672,20 @@ static BOOL wbinfo_lookupname(char *name)
        parse_wbinfo_domain_user(name, request.data.name.dom_name, 
                                 request.data.name.name);
 
-       if (winbindd_request(WINBINDD_LOOKUPNAME, &request, &response) !=
+       if (winbindd_request_response(WINBINDD_LOOKUPNAME, &request, &response) !=
            NSS_STATUS_SUCCESS)
-               return False;
+               return false;
 
        /* Display response */
 
        d_printf("%s %s (%d)\n", response.data.sid.sid, sid_type_lookup(response.data.sid.type), response.data.sid.type);
 
-       return True;
+       return true;
 }
 
 /* Authenticate a user with a plaintext password */
 
-static BOOL wbinfo_auth_krb5(char *username, const char *cctype, uint32 flags)
+static bool wbinfo_auth_krb5(char *username, const char *cctype, uint32_t flags)
 {
        struct winbindd_request request;
        struct winbindd_response response;
@@ -716,7 +713,7 @@ static BOOL wbinfo_auth_krb5(char *username, const char *cctype, uint32 flags)
 
        request.data.auth.uid = geteuid();
 
-       result = winbindd_request(WINBINDD_PAM_AUTH, &request, &response);
+       result = winbindd_request_response(WINBINDD_PAM_AUTH, &request, &response);
 
        /* Display response */
 
@@ -749,7 +746,7 @@ static BOOL wbinfo_auth_krb5(char *username, const char *cctype, uint32 flags)
 
 /* Authenticate a user with a plaintext password */
 
-static BOOL wbinfo_auth(char *username)
+static bool wbinfo_auth(char *username)
 {
        struct winbindd_request request;
        struct winbindd_response response;
@@ -771,7 +768,7 @@ static BOOL wbinfo_auth(char *username)
         } else
                 fstrcpy(request.data.auth.user, username);
 
-       result = winbindd_request(WINBINDD_PAM_AUTH, &request, &response);
+       result = winbindd_request_response(WINBINDD_PAM_AUTH, &request, &response);
 
        /* Display response */
 
@@ -789,7 +786,7 @@ static BOOL wbinfo_auth(char *username)
 
 /* Authenticate a user with a challenge/response */
 
-static BOOL wbinfo_auth_crap(char *username)
+static bool wbinfo_auth_crap(char *username)
 {
        struct winbindd_request request;
        struct winbindd_response response;
@@ -822,7 +819,7 @@ static BOOL wbinfo_auth_crap(char *username)
 
        generate_random_buffer(request.data.auth_crap.chal, 8);
         
-       if (lp_client_ntlmv2_auth()) {
+       if (lp_client_ntlmv2_auth(global_loadparm)) {
                DATA_BLOB server_chal;
                DATA_BLOB names_blob;   
 
@@ -833,20 +830,20 @@ static BOOL wbinfo_auth_crap(char *username)
                mem_ctx = talloc_new(NULL);
                if (mem_ctx == NULL) {
                        d_printf("talloc_new failed\n");
-                       return False;
+                       return false;
                }
 
                server_chal = data_blob(request.data.auth_crap.chal, 8); 
                
                /* Pretend this is a login to 'us', for blob purposes */
-               names_blob = NTLMv2_generate_names_blob(mem_ctx, lp_netbios_name(), lp_workgroup());
+               names_blob = NTLMv2_generate_names_blob(mem_ctx, lp_netbios_name(global_loadparm), lp_workgroup(global_loadparm));
                
                if (!SMBNTLMv2encrypt(mem_ctx, name_user, name_domain, pass, &server_chal, 
                                      &names_blob,
                                      &lm_response, &nt_response, NULL, NULL)) {
                        data_blob_free(&names_blob);
                        data_blob_free(&server_chal);
-                       return False;
+                       return false;
                }
                data_blob_free(&names_blob);
                data_blob_free(&server_chal);
@@ -865,7 +862,7 @@ static BOOL wbinfo_auth_crap(char *username)
                data_blob_free(&lm_response);
 
        } else {
-               if (lp_client_lanman_auth() 
+               if (lp_client_lanman_auth(global_loadparm
                    && SMBencrypt(pass, request.data.auth_crap.chal, 
                               (unsigned char *)request.data.auth_crap.lm_resp)) {
                        request.data.auth_crap.lm_resp_len = 24;
@@ -878,7 +875,7 @@ static BOOL wbinfo_auth_crap(char *username)
                request.data.auth_crap.nt_resp_len = 24;
        }
 
-       result = winbindd_request(WINBINDD_PAM_AUTH_CRAP, &request, &response);
+       result = winbindd_request_response(WINBINDD_PAM_AUTH_CRAP, &request, &response);
 
        /* Display response */
 
@@ -896,7 +893,7 @@ static BOOL wbinfo_auth_crap(char *username)
 
 /* Print domain users */
 
-static BOOL print_domain_users(const char *domain)
+static bool print_domain_users(const char *domain)
 {
        struct winbindd_request request;
        struct winbindd_response response;
@@ -916,14 +913,14 @@ static BOOL print_domain_users(const char *domain)
                        fstrcpy( request.domain_name, domain );
        }
 
-       if (winbindd_request(WINBINDD_LIST_USERS, &request, &response) !=
+       if (winbindd_request_response(WINBINDD_LIST_USERS, &request, &response) !=
            NSS_STATUS_SUCCESS)
-               return False;
+               return false;
 
        /* Look through extra data */
 
        if (!response.extra_data.data)
-               return False;
+               return false;
 
        extra_data = (const char *)response.extra_data.data;
 
@@ -932,12 +929,12 @@ static BOOL print_domain_users(const char *domain)
        
        SAFE_FREE(response.extra_data.data);
 
-       return True;
+       return true;
 }
 
 /* Print domain groups */
 
-static BOOL print_domain_groups(const char *domain)
+static bool print_domain_groups(const char *domain)
 {
        struct winbindd_request  request;
        struct winbindd_response response;
@@ -954,14 +951,14 @@ static BOOL print_domain_groups(const char *domain)
                        fstrcpy( request.domain_name, domain );
        }
 
-       if (winbindd_request(WINBINDD_LIST_GROUPS, &request, &response) !=
+       if (winbindd_request_response(WINBINDD_LIST_GROUPS, &request, &response) !=
            NSS_STATUS_SUCCESS)
-               return False;
+               return false;
 
        /* Look through extra data */
 
        if (!response.extra_data.data)
-               return False;
+               return false;
 
        extra_data = (const char *)response.extra_data.data;
 
@@ -970,14 +967,14 @@ static BOOL print_domain_groups(const char *domain)
 
        SAFE_FREE(response.extra_data.data);
        
-       return True;
+       return true;
 }
 
-static BOOL wbinfo_ping(void)
+static bool wbinfo_ping(void)
 {
         NSS_STATUS result;
 
-       result = winbindd_request(WINBINDD_PING, NULL, NULL);
+       result = winbindd_request_response(WINBINDD_PING, NULL, NULL);
 
        /* Display response */
 
@@ -1153,7 +1150,7 @@ int main(int argc, char **argv, char **envp)
                        }
                        break;
                case 'm':
-                       if (!wbinfo_list_domains(False)) {
+                       if (!wbinfo_list_domains(false)) {
                                d_fprintf(stderr, "Could not list trusted domains\n");
                                goto done;
                        }
@@ -1213,18 +1210,18 @@ int main(int argc, char **argv, char **envp)
                        }
                        break;
                case 'a': {
-                               BOOL got_error = False;
+                               bool got_error = false;
 
                                if (!wbinfo_auth(string_arg)) {
                                        d_fprintf(stderr, "Could not authenticate user %s with "
                                                "plaintext password\n", string_arg);
-                                       got_error = True;
+                                       got_error = true;
                                }
 
                                if (!wbinfo_auth_crap(string_arg)) {
                                        d_fprintf(stderr, "Could not authenticate user %s with "
                                                "challenge/response\n", string_arg);
-                                       got_error = True;
+                                       got_error = true;
                                }
 
                                if (got_error)
@@ -1232,7 +1229,7 @@ int main(int argc, char **argv, char **envp)
                                break;
                        }
                case 'K': {
-                               uint32 flags =  WBFLAG_PAM_KRB5 |
+                               uint32_t flags =  WBFLAG_PAM_KRB5 |
                                                WBFLAG_PAM_CACHED_LOGIN |
                                                WBFLAG_PAM_FALLBACK_AFTER_KRB5 |
                                                WBFLAG_PAM_INFO3_TEXT;
@@ -1256,7 +1253,7 @@ int main(int argc, char **argv, char **envp)
                        }
                        break;
                case OPT_SEPARATOR: {
-                       const char sep = winbind_separator_int(True);
+                       const char sep = winbind_separator_int(true);
                        if ( !sep ) {
                                goto done;
                        }
@@ -1264,7 +1261,7 @@ int main(int argc, char **argv, char **envp)
                        break;
                }
                case OPT_LIST_ALL_DOMAINS:
-                       if (!wbinfo_list_domains(True)) {
+                       if (!wbinfo_list_domains(true)) {
                                goto done;
                        }
                        break;
index 373d56804a901192523bb4872a61a9b242b6a244..2a3956e1fd410af0c12a7038612e3cd1d36c526e 100644 (file)
@@ -1,16 +1,25 @@
-#include "nsswitch/winbind_nss_config.h"
-#include "nsswitch/winbindd_nss.h"
+#include "winbind_nss_config.h"
+#include "winbind_struct_protocol.h"
 
-void init_request(struct winbindd_request *req,int rq_type);
-NSS_STATUS winbindd_send_request(int req_type,
+void winbindd_init_request(struct winbindd_request *req,int rq_type);
+void winbindd_free_response(struct winbindd_response *response);
+NSS_STATUS winbindd_send_request(int req_type, int need_priv,
                                 struct winbindd_request *request);
 NSS_STATUS winbindd_get_response(struct winbindd_response *response);
-NSS_STATUS winbindd_request(int req_type, 
+NSS_STATUS winbindd_request_response(int req_type, 
                            struct winbindd_request *request,
                            struct winbindd_response *response);
-int winbind_open_pipe_sock(void);
-int write_sock(void *buffer, int count);
-int read_reply(struct winbindd_response *response);
-void close_sock(void);
-void free_response(struct winbindd_response *response);
+NSS_STATUS winbindd_priv_request_response(int req_type, 
+                                         struct winbindd_request *request,
+                                         struct winbindd_response *response);
+int winbindd_read_reply(struct winbindd_response *response);
 
+bool winbind_env_set(void);
+bool winbind_off(void);
+bool winbind_on(void);
+
+int winbind_write_sock(void *buffer, int count, int recursing, int need_priv);
+int winbind_read_sock(void *buffer, int count);
+void winbind_close_sock(void);
+
+const char *nss_err_str(NSS_STATUS ret);
index c4b2951643ff4ea6c41415bc233b0f808fb66fe5..0a3bc7cefac88172d2bb7d70bed6eff18e23a781 100644 (file)
 
 #include "nsswitch/winbind_nss_hpux.h"
 
-#else /* Nothing's defined. Neither gnu nor sun nor hp */
+#elif defined(__NetBSD__) && defined(HAVE_GETPWENT_R)
+
+/*
+ * NetBSD 3 and newer
+ */
+
+#include "nsswitch/winbind_nss_netbsd.h"
+
+#else /* Nothing's defined. Neither gnu nor netbsd nor sun nor hp */
 
 typedef enum
 {
index 9ab3f8ab0cb64f6fdc2e61316c754f665bc3b542..e0828dc9052a550932984855b86cf085f8a116b3 100644 (file)
@@ -51,48 +51,6 @@ typedef char pstring[PSTRING_LEN];
 typedef char fstring[FSTRING_LEN];
 #endif
 
-#if !defined(uint32)
-#if (SIZEOF_INT == 4)
-#define uint32 unsigned int
-#elif (SIZEOF_LONG == 4)
-#define uint32 unsigned long
-#elif (SIZEOF_SHORT == 4)
-#define uint32 unsigned short
-#endif
-#endif
-
-#if !defined(uint16)
-#if (SIZEOF_SHORT == 4)
-#define uint16 __ERROR___CANNOT_DETERMINE_TYPE_FOR_INT16;
-#else /* SIZEOF_SHORT != 4 */
-#define uint16 unsigned short
-#endif /* SIZEOF_SHORT != 4 */
-#endif
-
-#ifndef uint8
-#define uint8 unsigned char
-#endif
-
-/*
- * check for 8 byte long long
- */
-
-#if !defined(uint64)
-#if (SIZEOF_LONG == 8)
-#define uint64 unsigned long
-#elif (SIZEOF_LONG_LONG == 8)
-#define uint64 unsigned long long
-#endif  /* don't lie.  If we don't have it, then don't use it */
-#endif
-
-#if !defined(int64)
-#if (SIZEOF_LONG == 8)
-#define int64 long
-#elif (SIZEOF_LONG_LONG == 8)
-#define int64 long long
-#endif  /* don't lie.  If we don't have it, then don't use it */
-#endif
-
 /* Some systems (SCO) treat UNIX domain sockets as FIFOs */
 
 #ifndef S_IFSOCK
@@ -103,9 +61,4 @@ typedef char fstring[FSTRING_LEN];
 #define S_ISSOCK(mode)  ((mode & S_IFSOCK) == S_IFSOCK)
 #endif
 
-#ifndef HAVE_SOCKLEN_T
-#define HAVE_SOCKLEN_T
-typedef int socklen_t;
-#endif
-
 #endif
index 9752267c0e80dba78f9ebe30ee1b8777cbad6d25..b40b14b0b034c894e6362ab28deac024936182b8 100644 (file)
@@ -39,8 +39,4 @@ typedef enum
   NSS_STATUS_TRYAGAIN=NS_TRYAGAIN
 } NSS_STATUS;
 
-#define NSD_MEM_STATIC 0
-#define NSD_MEM_VOLATILE 1
-#define NSD_MEM_DYNAMIC 2
-
 #endif /* _WINBIND_NSS_IRIX_H */
index 52254b984d67b296c55408bfab08f54380f67944..ac53979cedd5d612448b266738cfa76702c6ea94 100644 (file)
@@ -19,7 +19,6 @@
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#include "includes.h"
 #include "winbind_client.h"
 
 /* Maximum number of users to pass back over the unix domain socket
 #define MAX_GETPWENT_USERS 250
 #define MAX_GETGRENT_USERS 250
 
-_PUBLIC_ NSS_STATUS _nss_winbind_setpwent(void);
-_PUBLIC_ NSS_STATUS _nss_winbind_endpwent(void);
-_PUBLIC_ NSS_STATUS _nss_winbind_getpwent_r(struct passwd *result, char *buffer, 
+NSS_STATUS _nss_winbind_setpwent(void);
+NSS_STATUS _nss_winbind_endpwent(void);
+NSS_STATUS _nss_winbind_getpwent_r(struct passwd *result, char *buffer, 
                                   size_t buflen, int *errnop);
-_PUBLIC_ NSS_STATUS _nss_winbind_getpwuid_r(uid_t uid, struct passwd *result, 
+NSS_STATUS _nss_winbind_getpwuid_r(uid_t uid, struct passwd *result, 
                                   char *buffer, size_t buflen, int *errnop);
-_PUBLIC_ NSS_STATUS _nss_winbind_getpwnam_r(const char *name, struct passwd *result, 
+NSS_STATUS _nss_winbind_getpwnam_r(const char *name, struct passwd *result, 
                                   char *buffer, size_t buflen, int *errnop);
-_PUBLIC_ NSS_STATUS _nss_winbind_setgrent(void);
-_PUBLIC_ NSS_STATUS _nss_winbind_endgrent(void);
-_PUBLIC_ NSS_STATUS _nss_winbind_getgrent_r(struct group *result, char *buffer, 
+NSS_STATUS _nss_winbind_setgrent(void);
+NSS_STATUS _nss_winbind_endgrent(void);
+NSS_STATUS _nss_winbind_getgrent_r(struct group *result, char *buffer, 
                                   size_t buflen, int *errnop);
-_PUBLIC_ NSS_STATUS _nss_winbind_getgrlst_r(struct group *result, char *buffer, 
+NSS_STATUS _nss_winbind_getgrlst_r(struct group *result, char *buffer, 
                                   size_t buflen, int *errnop);
-_PUBLIC_ NSS_STATUS _nss_winbind_getgrnam_r(const char *name, struct group *result, 
+NSS_STATUS _nss_winbind_getgrnam_r(const char *name, struct group *result, 
                                   char *buffer, size_t buflen, int *errnop);
-_PUBLIC_ NSS_STATUS _nss_winbind_getgrgid_r(gid_t gid, struct group *result, char *buffer, 
+NSS_STATUS _nss_winbind_getgrgid_r(gid_t gid, struct group *result, char *buffer, 
                                   size_t buflen, int *errnop);
-_PUBLIC_ NSS_STATUS _nss_winbind_initgroups_dyn(char *user, gid_t group, long int *start, 
+NSS_STATUS _nss_winbind_initgroups_dyn(char *user, gid_t group, long int *start, 
                                       long int *size, gid_t **groups, 
                                       long int limit, int *errnop);
-_PUBLIC_ NSS_STATUS _nss_winbind_getusersids(const char *user_sid, char **group_sids, 
+NSS_STATUS _nss_winbind_getusersids(const char *user_sid, char **group_sids, 
                                    int *num_groups, char *buffer, size_t buf_size, 
                                    int *errnop);
-_PUBLIC_ NSS_STATUS _nss_winbind_nametosid(const char *name, char **sid, char *buffer,
+NSS_STATUS _nss_winbind_nametosid(const char *name, char **sid, char *buffer,
                                  size_t buflen, int *errnop);
-_PUBLIC_ NSS_STATUS _nss_winbind_sidtoname(const char *sid, char **name, char *buffer, 
+NSS_STATUS _nss_winbind_sidtoname(const char *sid, char **name, char *buffer, 
                                  size_t buflen, int *errnop);
-_PUBLIC_ NSS_STATUS _nss_winbind_sidtouid(const char *sid, uid_t *uid, int *errnop);
-_PUBLIC_ NSS_STATUS _nss_winbind_sidtogid(const char *sid, gid_t *gid, int *errnop);
-_PUBLIC_ NSS_STATUS _nss_winbind_uidtosid(uid_t uid, char **sid, char *buffer, 
+NSS_STATUS _nss_winbind_sidtouid(const char *sid, uid_t *uid, int *errnop);
+NSS_STATUS _nss_winbind_sidtogid(const char *sid, gid_t *gid, int *errnop);
+NSS_STATUS _nss_winbind_uidtosid(uid_t uid, char **sid, char *buffer, 
                                 size_t buflen, int *errnop);
-_PUBLIC_ NSS_STATUS _nss_winbind_gidtosid(gid_t gid, char **sid, char *buffer, 
+NSS_STATUS _nss_winbind_gidtosid(gid_t gid, char **sid, char *buffer, 
                                 size_t buflen, int *errnop);
 
 /* Prototypes from wb_common.c */
 
 extern int winbindd_fd;
 
-#ifdef DEBUG_NSS
-static const char *nss_err_str(NSS_STATUS ret) {
-       switch (ret) {
-               case NSS_STATUS_TRYAGAIN:
-                       return "NSS_STATUS_TRYAGAIN";
-               case NSS_STATUS_SUCCESS:
-                       return "NSS_STATUS_SUCCESS";
-               case NSS_STATUS_NOTFOUND:
-                       return "NSS_STATUS_NOTFOUND";
-               case NSS_STATUS_UNAVAIL:
-                       return "NSS_STATUS_UNAVAIL";
-               case NSS_STATUS_RETURN:
-                       return "NSS_STATUS_RETURN";
-               default:
-                       return "UNKNOWN RETURN CODE!!!!!!!";
-       }
-}
-#endif
-
 /* Allocate some space from the nss static buffer.  The buffer and buflen
    are the pointers passed in by the C library to the _nss_ntdom_*
    functions. */
@@ -115,13 +95,13 @@ static char *get_static(char **buffer, size_t *buflen, size_t len)
    lib/util_str.c as I really don't want to have to link in any other
    objects if I can possibly avoid it. */
 
-static BOOL next_tok(char **ptr,char *buff,const char *sep, size_t bufsize)
+static bool next_token(char **ptr,char *buff,const char *sep, size_t bufsize)
 {
        char *s;
-       BOOL quoted;
+       bool quoted;
        size_t len=1;
 
-       if (!ptr) return(False);
+       if (!ptr) return false;
 
        s = *ptr;
 
@@ -132,10 +112,10 @@ static BOOL next_tok(char **ptr,char *buff,const char *sep, size_t bufsize)
        while (*s && strchr(sep,*s)) s++;
        
        /* nothing left? */
-       if (! *s) return(False);
+       if (! *s) return false;
        
        /* copy over the token */
-       for (quoted = False; len < bufsize && *s && (quoted || !strchr(sep,*s)); s++) {
+       for (quoted = false; len < bufsize && *s && (quoted || !strchr(sep,*s)); s++) {
                if (*s == '\"') {
                        quoted = !quoted;
                } else {
@@ -147,7 +127,7 @@ static BOOL next_tok(char **ptr,char *buff,const char *sep, size_t bufsize)
        *ptr = (*s) ? s+1 : s;  
        *buff = 0;
        
-       return(True);
+       return true;
 }
 
 
@@ -169,7 +149,7 @@ static NSS_STATUS fill_pwent(struct passwd *result,
                return NSS_STATUS_TRYAGAIN;
        }
 
-       strlcpy(result->pw_name, pw->pw_name, strlen(pw->pw_name) + 1);
+       strcpy(result->pw_name, pw->pw_name);
 
        /* Password */
 
@@ -181,7 +161,7 @@ static NSS_STATUS fill_pwent(struct passwd *result,
                return NSS_STATUS_TRYAGAIN;
        }
 
-       strlcpy(result->pw_passwd, pw->pw_passwd, strlen(pw->pw_passwd) + 1);
+       strcpy(result->pw_passwd, pw->pw_passwd);
         
        /* [ug]id */
 
@@ -198,7 +178,7 @@ static NSS_STATUS fill_pwent(struct passwd *result,
                return NSS_STATUS_TRYAGAIN;
        }
 
-       strlcpy(result->pw_gecos, pw->pw_gecos, strlen(pw->pw_gecos) + 1);
+       strcpy(result->pw_gecos, pw->pw_gecos);
        
        /* Home directory */
        
@@ -210,7 +190,7 @@ static NSS_STATUS fill_pwent(struct passwd *result,
                return NSS_STATUS_TRYAGAIN;
        }
 
-       strlcpy(result->pw_dir, pw->pw_dir, strlen(pw->pw_dir) + 1);
+       strcpy(result->pw_dir, pw->pw_dir);
 
        /* Logon shell */
        
@@ -222,7 +202,7 @@ static NSS_STATUS fill_pwent(struct passwd *result,
                return NSS_STATUS_TRYAGAIN;
        }
 
-       strlcpy(result->pw_shell, pw->pw_shell, strlen(pw->pw_shell) + 1);
+       strcpy(result->pw_shell, pw->pw_shell);
 
        /* The struct passwd for Solaris has some extra fields which must
           be initialised or nscd crashes. */
@@ -259,7 +239,7 @@ static NSS_STATUS fill_grent(struct group *result, struct winbindd_gr *gr,
                return NSS_STATUS_TRYAGAIN;
        }
 
-       strlcpy(result->gr_name, gr->gr_name, strlen(gr->gr_name) + 1);
+       strcpy(result->gr_name, gr->gr_name);
 
        /* Password */
 
@@ -271,7 +251,7 @@ static NSS_STATUS fill_grent(struct group *result, struct winbindd_gr *gr,
                return NSS_STATUS_TRYAGAIN;
        }
 
-       strlcpy(result->gr_passwd, gr->gr_passwd, strlen(gr->gr_passwd) + 1);
+       strcpy(result->gr_passwd, gr->gr_passwd);
 
        /* gid */
 
@@ -310,7 +290,7 @@ static NSS_STATUS fill_grent(struct group *result, struct winbindd_gr *gr,
 
        i = 0;
 
-       while(next_tok((char **)&gr_mem, name, ",", sizeof(fstring))) {
+       while(next_token((char **)&gr_mem, name, ",", sizeof(fstring))) {
         
                /* Allocate space for member */
         
@@ -322,7 +302,7 @@ static NSS_STATUS fill_grent(struct group *result, struct winbindd_gr *gr,
                        return NSS_STATUS_TRYAGAIN;
                }        
         
-               strlcpy((result->gr_mem)[i], name, strlen(name) + 1);
+               strcpy((result->gr_mem)[i], name);
                i++;
        }
 
@@ -344,7 +324,8 @@ static int num_pw_cache;                 /* Current size of pwd cache */
 
 /* Rewind "file pointer" to start of ntdom password database */
 
-_PUBLIC_ NSS_STATUS _nss_winbind_setpwent(void)
+NSS_STATUS
+_nss_winbind_setpwent(void)
 {
        NSS_STATUS ret;
 #ifdef DEBUG_NSS
@@ -353,10 +334,10 @@ _PUBLIC_ NSS_STATUS _nss_winbind_setpwent(void)
 
        if (num_pw_cache > 0) {
                ndx_pw_cache = num_pw_cache = 0;
-               free_response(&getpwent_response);
+               winbindd_free_response(&getpwent_response);
        }
 
-       ret = winbindd_request(WINBINDD_SETPWENT, NULL, NULL);
+       ret = winbindd_request_response(WINBINDD_SETPWENT, NULL, NULL);
 #ifdef DEBUG_NSS
        fprintf(stderr, "[%5d]: setpwent returns %s (%d)\n", getpid(),
                nss_err_str(ret), ret);
@@ -366,7 +347,8 @@ _PUBLIC_ NSS_STATUS _nss_winbind_setpwent(void)
 
 /* Close ntdom password database "file pointer" */
 
-_PUBLIC_ NSS_STATUS _nss_winbind_endpwent(void)
+NSS_STATUS
+_nss_winbind_endpwent(void)
 {
        NSS_STATUS ret;
 #ifdef DEBUG_NSS
@@ -375,10 +357,10 @@ _PUBLIC_ NSS_STATUS _nss_winbind_endpwent(void)
 
        if (num_pw_cache > 0) {
                ndx_pw_cache = num_pw_cache = 0;
-               free_response(&getpwent_response);
+               winbindd_free_response(&getpwent_response);
        }
 
-       ret = winbindd_request(WINBINDD_ENDPWENT, NULL, NULL);
+       ret = winbindd_request_response(WINBINDD_ENDPWENT, NULL, NULL);
 #ifdef DEBUG_NSS
        fprintf(stderr, "[%5d]: endpwent returns %s (%d)\n", getpid(),
                nss_err_str(ret), ret);
@@ -388,8 +370,9 @@ _PUBLIC_ NSS_STATUS _nss_winbind_endpwent(void)
 
 /* Fetch the next password entry from ntdom password database */
 
-_PUBLIC_ NSS_STATUS _nss_winbind_getpwent_r(struct passwd *result,
-               char *buffer, size_t buflen, int *errnop)
+NSS_STATUS
+_nss_winbind_getpwent_r(struct passwd *result, char *buffer, 
+                       size_t buflen, int *errnop)
 {
        NSS_STATUS ret;
        struct winbindd_request request;
@@ -409,7 +392,7 @@ _PUBLIC_ NSS_STATUS _nss_winbind_getpwent_r(struct passwd *result,
        /* Else call winbindd to get a bunch of entries */
        
        if (num_pw_cache > 0) {
-               free_response(&getpwent_response);
+               winbindd_free_response(&getpwent_response);
        }
 
        ZERO_STRUCT(request);
@@ -417,7 +400,7 @@ _PUBLIC_ NSS_STATUS _nss_winbind_getpwent_r(struct passwd *result,
 
        request.data.num_entries = MAX_GETPWENT_USERS;
 
-       ret = winbindd_request(WINBINDD_GETPWENT, &request, 
+       ret = winbindd_request_response(WINBINDD_GETPWENT, &request, 
                               &getpwent_response);
 
        if (ret == NSS_STATUS_SUCCESS) {
@@ -448,20 +431,20 @@ _PUBLIC_ NSS_STATUS _nss_winbind_getpwent_r(struct passwd *result,
                /* Out of memory - try again */
 
                if (ret == NSS_STATUS_TRYAGAIN) {
-                       called_again = True;
+                       called_again = true;
                        *errnop = errno = ERANGE;
                        goto done;
                }
 
                *errnop = errno = 0;
-               called_again = False;
+               called_again = false;
                ndx_pw_cache++;
 
                /* If we've finished with this lot of results free cache */
 
                if (ndx_pw_cache == num_pw_cache) {
                        ndx_pw_cache = num_pw_cache = 0;
-                       free_response(&getpwent_response);
+                       winbindd_free_response(&getpwent_response);
                }
        }
        done:
@@ -474,8 +457,9 @@ _PUBLIC_ NSS_STATUS _nss_winbind_getpwent_r(struct passwd *result,
 
 /* Return passwd struct from uid */
 
-_PUBLIC_ NSS_STATUS _nss_winbind_getpwuid_r(uid_t uid, struct passwd *result,
-               char *buffer, size_t buflen, int *errnop)
+NSS_STATUS
+_nss_winbind_getpwuid_r(uid_t uid, struct passwd *result, char *buffer,
+                       size_t buflen, int *errnop)
 {
        NSS_STATUS ret;
        static struct winbindd_response response;
@@ -496,14 +480,14 @@ _PUBLIC_ NSS_STATUS _nss_winbind_getpwuid_r(uid_t uid, struct passwd *result,
 
                request.data.uid = uid;
 
-               ret = winbindd_request(WINBINDD_GETPWUID, &request, &response);
+               ret = winbindd_request_response(WINBINDD_GETPWUID, &request, &response);
 
                if (ret == NSS_STATUS_SUCCESS) {
                        ret = fill_pwent(result, &response.data.pw, 
                                         &buffer, &buflen);
 
                        if (ret == NSS_STATUS_TRYAGAIN) {
-                               keep_response = True;
+                               keep_response = true;
                                *errnop = errno = ERANGE;
                                goto done;
                        }
@@ -516,16 +500,16 @@ _PUBLIC_ NSS_STATUS _nss_winbind_getpwuid_r(uid_t uid, struct passwd *result,
                ret = fill_pwent(result, &response.data.pw, &buffer, &buflen);
 
                if (ret == NSS_STATUS_TRYAGAIN) {
-                       keep_response = True;
+                       keep_response = true;
                        *errnop = errno = ERANGE;
                        goto done;
                }
 
-               keep_response = False;
+               keep_response = false;
                *errnop = errno = 0;
        }
 
-       free_response(&response);
+       winbindd_free_response(&response);
        done:
 
 #ifdef DEBUG_NSS
@@ -536,8 +520,9 @@ _PUBLIC_ NSS_STATUS _nss_winbind_getpwuid_r(uid_t uid, struct passwd *result,
 }
 
 /* Return passwd struct from username */
-_PUBLIC_ NSS_STATUS _nss_winbind_getpwnam_r(const char *name,
-           struct passwd *result, char *buffer, size_t buflen, int *errnop)
+NSS_STATUS
+_nss_winbind_getpwnam_r(const char *name, struct passwd *result, char *buffer,
+                       size_t buflen, int *errnop)
 {
        NSS_STATUS ret;
        static struct winbindd_response response;
@@ -562,14 +547,14 @@ _PUBLIC_ NSS_STATUS _nss_winbind_getpwnam_r(const char *name,
                request.data.username
                        [sizeof(request.data.username) - 1] = '\0';
 
-               ret = winbindd_request(WINBINDD_GETPWNAM, &request, &response);
+               ret = winbindd_request_response(WINBINDD_GETPWNAM, &request, &response);
 
                if (ret == NSS_STATUS_SUCCESS) {
                        ret = fill_pwent(result, &response.data.pw, &buffer,
                                         &buflen);
 
                        if (ret == NSS_STATUS_TRYAGAIN) {
-                               keep_response = True;
+                               keep_response = true;
                                *errnop = errno = ERANGE;
                                goto done;
                        }
@@ -582,16 +567,16 @@ _PUBLIC_ NSS_STATUS _nss_winbind_getpwnam_r(const char *name,
                ret = fill_pwent(result, &response.data.pw, &buffer, &buflen);
 
                if (ret == NSS_STATUS_TRYAGAIN) {
-                       keep_response = True;
+                       keep_response = true;
                        *errnop = errno = ERANGE;
                        goto done;
                }
 
-               keep_response = False;
+               keep_response = false;
                *errnop = errno = 0;
        }
 
-       free_response(&response);
+       winbindd_free_response(&response);
        done:
 #ifdef DEBUG_NSS
        fprintf(stderr, "[%5d]: getpwnam %s returns %s (%d)\n", getpid(),
@@ -611,7 +596,8 @@ static int num_gr_cache;                 /* Current size of grp cache */
 
 /* Rewind "file pointer" to start of ntdom group database */
 
-_PUBLIC_ NSS_STATUS _nss_winbind_setgrent(void)
+NSS_STATUS
+_nss_winbind_setgrent(void)
 {
        NSS_STATUS ret;
 #ifdef DEBUG_NSS
@@ -620,10 +606,10 @@ _PUBLIC_ NSS_STATUS _nss_winbind_setgrent(void)
 
        if (num_gr_cache > 0) {
                ndx_gr_cache = num_gr_cache = 0;
-               free_response(&getgrent_response);
+               winbindd_free_response(&getgrent_response);
        }
 
-       ret = winbindd_request(WINBINDD_SETGRENT, NULL, NULL);
+       ret = winbindd_request_response(WINBINDD_SETGRENT, NULL, NULL);
 #ifdef DEBUG_NSS
        fprintf(stderr, "[%5d]: setgrent returns %s (%d)\n", getpid(),
                nss_err_str(ret), ret);
@@ -633,7 +619,8 @@ _PUBLIC_ NSS_STATUS _nss_winbind_setgrent(void)
 
 /* Close "file pointer" for ntdom group database */
 
-_PUBLIC_ NSS_STATUS _nss_winbind_endgrent(void)
+NSS_STATUS
+_nss_winbind_endgrent(void)
 {
        NSS_STATUS ret;
 #ifdef DEBUG_NSS
@@ -642,10 +629,10 @@ _PUBLIC_ NSS_STATUS _nss_winbind_endgrent(void)
 
        if (num_gr_cache > 0) {
                ndx_gr_cache = num_gr_cache = 0;
-               free_response(&getgrent_response);
+               winbindd_free_response(&getgrent_response);
        }
 
-       ret = winbindd_request(WINBINDD_ENDGRENT, NULL, NULL);
+       ret = winbindd_request_response(WINBINDD_ENDGRENT, NULL, NULL);
 #ifdef DEBUG_NSS
        fprintf(stderr, "[%5d]: endgrent returns %s (%d)\n", getpid(),
                nss_err_str(ret), ret);
@@ -679,7 +666,7 @@ winbind_getgrent(enum winbindd_cmd cmd,
        /* Else call winbindd to get a bunch of entries */
        
        if (num_gr_cache > 0) {
-               free_response(&getgrent_response);
+               winbindd_free_response(&getgrent_response);
        }
 
        ZERO_STRUCT(request);
@@ -687,7 +674,7 @@ winbind_getgrent(enum winbindd_cmd cmd,
 
        request.data.num_entries = MAX_GETGRENT_USERS;
 
-       ret = winbindd_request(cmd, &request, 
+       ret = winbindd_request_response(cmd, &request, 
                               &getgrent_response);
 
        if (ret == NSS_STATUS_SUCCESS) {
@@ -727,20 +714,20 @@ winbind_getgrent(enum winbindd_cmd cmd,
                /* Out of memory - try again */
 
                if (ret == NSS_STATUS_TRYAGAIN) {
-                       called_again = True;
+                       called_again = true;
                        *errnop = errno = ERANGE;
                        goto done;
                }
 
                *errnop = 0;
-               called_again = False;
+               called_again = false;
                ndx_gr_cache++;
 
                /* If we've finished with this lot of results free cache */
 
                if (ndx_gr_cache == num_gr_cache) {
                        ndx_gr_cache = num_gr_cache = 0;
-                       free_response(&getgrent_response);
+                       winbindd_free_response(&getgrent_response);
                }
        }
        done:
@@ -752,13 +739,15 @@ winbind_getgrent(enum winbindd_cmd cmd,
 }
 
 
-_PUBLIC_ NSS_STATUS _nss_winbind_getgrent_r(struct group *result,
+NSS_STATUS
+_nss_winbind_getgrent_r(struct group *result,
                        char *buffer, size_t buflen, int *errnop)
 {
        return winbind_getgrent(WINBINDD_GETGRENT, result, buffer, buflen, errnop);
 }
 
-_PUBLIC_ NSS_STATUS _nss_winbind_getgrlst_r(struct group *result,
+NSS_STATUS
+_nss_winbind_getgrlst_r(struct group *result,
                        char *buffer, size_t buflen, int *errnop)
 {
        return winbind_getgrent(WINBINDD_GETGRLST, result, buffer, buflen, errnop);
@@ -766,7 +755,8 @@ _PUBLIC_ NSS_STATUS _nss_winbind_getgrlst_r(struct group *result,
 
 /* Return group struct from group name */
 
-_PUBLIC_ NSS_STATUS _nss_winbind_getgrnam_r(const char *name,
+NSS_STATUS
+_nss_winbind_getgrnam_r(const char *name,
                        struct group *result, char *buffer,
                        size_t buflen, int *errnop)
 {
@@ -793,7 +783,7 @@ _PUBLIC_ NSS_STATUS _nss_winbind_getgrnam_r(const char *name,
                request.data.groupname
                        [sizeof(request.data.groupname) - 1] = '\0';
 
-               ret = winbindd_request(WINBINDD_GETGRNAM, &request, &response);
+               ret = winbindd_request_response(WINBINDD_GETGRNAM, &request, &response);
 
                if (ret == NSS_STATUS_SUCCESS) {
                        ret = fill_grent(result, &response.data.gr, 
@@ -801,7 +791,7 @@ _PUBLIC_ NSS_STATUS _nss_winbind_getgrnam_r(const char *name,
                                         &buffer, &buflen);
 
                        if (ret == NSS_STATUS_TRYAGAIN) {
-                               keep_response = True;
+                               keep_response = true;
                                *errnop = errno = ERANGE;
                                goto done;
                        }
@@ -816,16 +806,16 @@ _PUBLIC_ NSS_STATUS _nss_winbind_getgrnam_r(const char *name,
                                 &buflen);
                
                if (ret == NSS_STATUS_TRYAGAIN) {
-                       keep_response = True;
+                       keep_response = true;
                        *errnop = errno = ERANGE;
                        goto done;
                }
 
-               keep_response = False;
+               keep_response = false;
                *errnop = 0;
        }
 
-       free_response(&response);
+       winbindd_free_response(&response);
        done:
 #ifdef DEBUG_NSS
        fprintf(stderr, "[%5d]: getgrnam %s returns %s (%d)\n", getpid(),
@@ -836,7 +826,8 @@ _PUBLIC_ NSS_STATUS _nss_winbind_getgrnam_r(const char *name,
 
 /* Return group struct from gid */
 
-_PUBLIC_ NSS_STATUS _nss_winbind_getgrgid_r(gid_t gid,
+NSS_STATUS
+_nss_winbind_getgrgid_r(gid_t gid,
                        struct group *result, char *buffer,
                        size_t buflen, int *errnop)
 {
@@ -860,7 +851,7 @@ _PUBLIC_ NSS_STATUS _nss_winbind_getgrgid_r(gid_t gid,
 
                request.data.gid = gid;
 
-               ret = winbindd_request(WINBINDD_GETGRGID, &request, &response);
+               ret = winbindd_request_response(WINBINDD_GETGRGID, &request, &response);
 
                if (ret == NSS_STATUS_SUCCESS) {
 
@@ -869,7 +860,7 @@ _PUBLIC_ NSS_STATUS _nss_winbind_getgrgid_r(gid_t gid,
                                         &buffer, &buflen);
 
                        if (ret == NSS_STATUS_TRYAGAIN) {
-                               keep_response = True;
+                               keep_response = true;
                                *errnop = errno = ERANGE;
                                goto done;
                        }
@@ -884,16 +875,16 @@ _PUBLIC_ NSS_STATUS _nss_winbind_getgrgid_r(gid_t gid,
                                 &buflen);
 
                if (ret == NSS_STATUS_TRYAGAIN) {
-                       keep_response = True;
+                       keep_response = true;
                        *errnop = errno = ERANGE;
                        goto done;
                }
 
-               keep_response = False;
+               keep_response = false;
                *errnop = 0;
        }
 
-       free_response(&response);
+       winbindd_free_response(&response);
        done:
 #ifdef DEBUG_NSS
        fprintf(stderr, "[%5d]: getgrgid %d returns %s (%d)\n", getpid(),
@@ -904,9 +895,10 @@ _PUBLIC_ NSS_STATUS _nss_winbind_getgrgid_r(gid_t gid,
 
 /* Initialise supplementary groups */
 
-_PUBLIC_ NSS_STATUS _nss_winbind_initgroups_dyn(char *user, gid_t group,
-                       long int *start, long int *size, gid_t **groups,
-                       long int limit, int *errnop)
+NSS_STATUS
+_nss_winbind_initgroups_dyn(char *user, gid_t group, long int *start,
+                           long int *size, gid_t **groups, long int limit,
+                           int *errnop)
 {
        NSS_STATUS ret;
        struct winbindd_request request;
@@ -924,7 +916,7 @@ _PUBLIC_ NSS_STATUS _nss_winbind_initgroups_dyn(char *user, gid_t group,
        strncpy(request.data.username, user,
                sizeof(request.data.username) - 1);
 
-       ret = winbindd_request(WINBINDD_GETGROUPS, &request, &response);
+       ret = winbindd_request_response(WINBINDD_GETGROUPS, &request, &response);
 
        if (ret == NSS_STATUS_SUCCESS) {
                int num_gids = response.data.num_entries;
@@ -1003,9 +995,10 @@ _PUBLIC_ NSS_STATUS _nss_winbind_initgroups_dyn(char *user, gid_t group,
 
 
 /* return a list of group SIDs for a user SID */
-_PUBLIC_ NSS_STATUS _nss_winbind_getusersids(const char *user_sid,
-                       char **group_sids, int *num_groups,
-                       char *buffer, size_t buf_size, int *errnop)
+NSS_STATUS
+_nss_winbind_getusersids(const char *user_sid, char **group_sids,
+                        int *num_groups,
+                        char *buffer, size_t buf_size, int *errnop)
 {
        NSS_STATUS ret;
        struct winbindd_request request;
@@ -1021,7 +1014,7 @@ _PUBLIC_ NSS_STATUS _nss_winbind_getusersids(const char *user_sid,
        strncpy(request.data.sid, user_sid,sizeof(request.data.sid) - 1);
        request.data.sid[sizeof(request.data.sid) - 1] = '\0';
 
-       ret = winbindd_request(WINBINDD_GETUSERSIDS, &request, &response);
+       ret = winbindd_request_response(WINBINDD_GETUSERSIDS, &request, &response);
 
        if (ret != NSS_STATUS_SUCCESS) {
                goto done;
@@ -1039,14 +1032,15 @@ _PUBLIC_ NSS_STATUS _nss_winbind_getusersids(const char *user_sid,
        errno = *errnop = 0;
        
  done:
-       free_response(&response);
+       winbindd_free_response(&response);
        return ret;
 }
 
 
 /* map a user or group name to a SID string */
-_PUBLIC_ NSS_STATUS _nss_winbind_nametosid(const char *name, char **sid,
-                       char *buffer, size_t buflen, int *errnop)
+NSS_STATUS
+_nss_winbind_nametosid(const char *name, char **sid, char *buffer,
+                      size_t buflen, int *errnop)
 {
        NSS_STATUS ret;
        struct winbindd_response response;
@@ -1063,7 +1057,7 @@ _PUBLIC_ NSS_STATUS _nss_winbind_nametosid(const char *name, char **sid,
                sizeof(request.data.name.name) - 1);
        request.data.name.name[sizeof(request.data.name.name) - 1] = '\0';
 
-       ret = winbindd_request(WINBINDD_LOOKUPNAME, &request, &response);
+       ret = winbindd_request_response(WINBINDD_LOOKUPNAME, &request, &response);
        if (ret != NSS_STATUS_SUCCESS) {
                *errnop = errno = EINVAL;
                goto failed;
@@ -1077,16 +1071,17 @@ _PUBLIC_ NSS_STATUS _nss_winbind_nametosid(const char *name, char **sid,
 
        *errnop = errno = 0;
        *sid = buffer;
-       strlcpy(*sid, response.data.sid.sid, strlen(response.data.sid.sid) + 1);
+       strcpy(*sid, response.data.sid.sid);
 
 failed:
-       free_response(&response);
+       winbindd_free_response(&response);
        return ret;
 }
 
 /* map a sid string to a user or group name */
-_PUBLIC_ NSS_STATUS _nss_winbind_sidtoname(const char *sid, char **name,
-                       char *buffer, size_t buflen, int *errnop)
+NSS_STATUS
+_nss_winbind_sidtoname(const char *sid, char **name, char *buffer,
+                      size_t buflen, int *errnop)
 {
        NSS_STATUS ret;
        struct winbindd_response response;
@@ -1103,14 +1098,14 @@ _PUBLIC_ NSS_STATUS _nss_winbind_sidtoname(const char *sid, char **name,
 
        /* we need to fetch the separator first time through */
        if (!sep_char) {
-               ret = winbindd_request(WINBINDD_INFO, &request, &response);
+               ret = winbindd_request_response(WINBINDD_INFO, &request, &response);
                if (ret != NSS_STATUS_SUCCESS) {
                        *errnop = errno = EINVAL;
                        goto failed;
                }
 
                sep_char = response.data.info.winbind_separator;
-               free_response(&response);
+               winbindd_free_response(&response);
        }
 
 
@@ -1118,7 +1113,7 @@ _PUBLIC_ NSS_STATUS _nss_winbind_sidtoname(const char *sid, char **name,
                sizeof(request.data.sid) - 1);
        request.data.sid[sizeof(request.data.sid) - 1] = '\0';
 
-       ret = winbindd_request(WINBINDD_LOOKUPSID, &request, &response);
+       ret = winbindd_request_response(WINBINDD_LOOKUPSID, &request, &response);
        if (ret != NSS_STATUS_SUCCESS) {
                *errnop = errno = EINVAL;
                goto failed;
@@ -1143,13 +1138,13 @@ _PUBLIC_ NSS_STATUS _nss_winbind_sidtoname(const char *sid, char **name,
        *errnop = errno = 0;
 
 failed:
-       free_response(&response);
+       winbindd_free_response(&response);
        return ret;
 }
 
 /* map a sid to a uid */
-_PUBLIC_ NSS_STATUS _nss_winbind_sidtouid(const char *sid, uid_t *uid,
-                               int *errnop)
+NSS_STATUS
+_nss_winbind_sidtouid(const char *sid, uid_t *uid, int *errnop)
 {
        NSS_STATUS ret;
        struct winbindd_response response;
@@ -1165,7 +1160,7 @@ _PUBLIC_ NSS_STATUS _nss_winbind_sidtouid(const char *sid, uid_t *uid,
        strncpy(request.data.sid, sid, sizeof(request.data.sid) - 1);
        request.data.sid[sizeof(request.data.sid) - 1] = '\0';
 
-       ret = winbindd_request(WINBINDD_SID_TO_UID, &request, &response);
+       ret = winbindd_request_response(WINBINDD_SID_TO_UID, &request, &response);
        if (ret != NSS_STATUS_SUCCESS) {
                *errnop = errno = EINVAL;
                goto failed;
@@ -1178,8 +1173,8 @@ failed:
 }
 
 /* map a sid to a gid */
-_PUBLIC_ NSS_STATUS _nss_winbind_sidtogid(const char *sid, gid_t *gid,
-                               int *errnop)
+NSS_STATUS
+_nss_winbind_sidtogid(const char *sid, gid_t *gid, int *errnop)
 {
        NSS_STATUS ret;
        struct winbindd_response response;
@@ -1195,7 +1190,7 @@ _PUBLIC_ NSS_STATUS _nss_winbind_sidtogid(const char *sid, gid_t *gid,
        strncpy(request.data.sid, sid, sizeof(request.data.sid) - 1);
        request.data.sid[sizeof(request.data.sid) - 1] = '\0';
 
-       ret = winbindd_request(WINBINDD_SID_TO_GID, &request, &response);
+       ret = winbindd_request_response(WINBINDD_SID_TO_GID, &request, &response);
        if (ret != NSS_STATUS_SUCCESS) {
                *errnop = errno = EINVAL;
                goto failed;
@@ -1208,7 +1203,8 @@ failed:
 }
 
 /* map a uid to a SID string */
-_PUBLIC_ NSS_STATUS _nss_winbind_uidtosid(uid_t uid, char **sid, char *buffer,
+NSS_STATUS
+_nss_winbind_uidtosid(uid_t uid, char **sid, char *buffer,
                      size_t buflen, int *errnop)
 {
        NSS_STATUS ret;
@@ -1224,7 +1220,7 @@ _PUBLIC_ NSS_STATUS _nss_winbind_uidtosid(uid_t uid, char **sid, char *buffer,
 
        request.data.uid = uid;
 
-       ret = winbindd_request(WINBINDD_UID_TO_SID, &request, &response);
+       ret = winbindd_request_response(WINBINDD_UID_TO_SID, &request, &response);
        if (ret != NSS_STATUS_SUCCESS) {
                *errnop = errno = EINVAL;
                goto failed;
@@ -1238,15 +1234,16 @@ _PUBLIC_ NSS_STATUS _nss_winbind_uidtosid(uid_t uid, char **sid, char *buffer,
 
        *errnop = errno = 0;
        *sid = buffer;
-       strlcpy(*sid, response.data.sid.sid, strlen(response.data.sid.sid) + 1);
+       strcpy(*sid, response.data.sid.sid);
 
 failed:
-       free_response(&response);
+       winbindd_free_response(&response);
        return ret;
 }
 
 /* map a gid to a SID string */
-_PUBLIC_ NSS_STATUS _nss_winbind_gidtosid(gid_t gid, char **sid, char *buffer,
+NSS_STATUS
+_nss_winbind_gidtosid(gid_t gid, char **sid, char *buffer,
                      size_t buflen, int *errnop)
 {
        NSS_STATUS ret;
@@ -1262,7 +1259,7 @@ _PUBLIC_ NSS_STATUS _nss_winbind_gidtosid(gid_t gid, char **sid, char *buffer,
 
        request.data.gid = gid;
 
-       ret = winbindd_request(WINBINDD_GID_TO_SID, &request, &response);
+       ret = winbindd_request_response(WINBINDD_GID_TO_SID, &request, &response);
        if (ret != NSS_STATUS_SUCCESS) {
                *errnop = errno = EINVAL;
                goto failed;
@@ -1276,9 +1273,9 @@ _PUBLIC_ NSS_STATUS _nss_winbind_gidtosid(gid_t gid, char **sid, char *buffer,
 
        *errnop = errno = 0;
        *sid = buffer;
-       strlcpy(*sid, response.data.sid.sid, strlen(response.data.sid.sid) + 1);
+       strcpy(*sid, response.data.sid.sid);
 
 failed:
-       free_response(&response);
+       winbindd_free_response(&response);
        return ret;
 }
index 1c694394d351cdf4753c43aff8c1d1e130d307a7..941b3e66dfc0cad156db5fbf79052200ad30ad40 100644 (file)
 #ifndef _WINBIND_NSS_SOLARIS_H
 #define _WINBIND_NSS_SOLARIS_H
 
+/* Solaris has a broken nss_common header file containing C++ reserved names. */
+#ifndef __cplusplus
+#undef class
+#undef private
+#undef public
+#undef protected
+#undef template
+#undef this
+#undef new
+#undef delete
+#undef friend
+#endif
+
 #include <nss_common.h>
+
+/*
+TODO: we need to cleanup samba4's headers..
+
+#ifndef __cplusplus
+#define class #error DONT_USE_CPLUSPLUS_RESERVED_NAMES
+#define private #error DONT_USE_CPLUSPLUS_RESERVED_NAMES
+#define public #error DONT_USE_CPLUSPLUS_RESERVED_NAMES
+#define protected #error DONT_USE_CPLUSPLUS_RESERVED_NAMES
+#define template #error DONT_USE_CPLUSPLUS_RESERVED_NAMES
+#define this #error DONT_USE_CPLUSPLUS_RESERVED_NAMES
+#define new #error DONT_USE_CPLUSPLUS_RESERVED_NAMES
+#define delete #error DONT_USE_CPLUSPLUS_RESERVED_NAMES
+#define friend #error DONT_USE_CPLUSPLUS_RESERVED_NAMES
+#endif
+*/
+
 #include <nss_dbdefs.h>
 #include <nsswitch.h>
 
diff --git a/source/nsswitch/winbind_struct_protocol.h b/source/nsswitch/winbind_struct_protocol.h
new file mode 100644 (file)
index 0000000..d8e5c2f
--- /dev/null
@@ -0,0 +1,500 @@
+/* 
+   Unix SMB/CIFS implementation.
+
+   Winbind daemon for ntdom nss module
+
+   Copyright (C) Tim Potter 2000
+   Copyright (C) Gerald Carter 2006
+   
+   You are free to use this interface definition in any way you see
+   fit, including without restriction, using this header in your own
+   products. You do not need to give any attribution.  
+*/
+
+#ifndef SAFE_FREE
+#define SAFE_FREE(x) do { if(x) {free(x); x=NULL;} } while(0)
+#endif
+
+#ifndef _WINBINDD_NTDOM_H
+#define _WINBINDD_NTDOM_H
+
+#define WINBINDD_SOCKET_NAME "pipe"            /* Name of PF_UNIX socket */
+
+/* Let the build environment override the public winbindd socket location. This
+ * is needed for launchd support -- jpeach.
+ */
+#ifndef WINBINDD_SOCKET_DIR
+#define WINBINDD_SOCKET_DIR  "/tmp/.winbindd"  /* Name of PF_UNIX dir */
+#endif
+
+/*
+ * when compiled with socket_wrapper support
+ * the location of the WINBINDD_SOCKET_DIR
+ * can be overwritten via an environment variable
+ */
+#define WINBINDD_SOCKET_DIR_ENVVAR "WINBINDD_SOCKET_DIR"
+
+#define WINBINDD_PRIV_SOCKET_SUBDIR "winbindd_privileged" /* name of subdirectory of lp_lockdir() to hold the 'privileged' pipe */
+#define WINBINDD_DOMAIN_ENV  "WINBINDD_DOMAIN" /* Environment variables */
+#define WINBINDD_DONT_ENV    "_NO_WINBINDD"
+#define WINBINDD_LOCATOR_KDC_ADDRESS "WINBINDD_LOCATOR_KDC_ADDRESS"
+
+/* Update this when you change the interface.  */
+
+#define WINBIND_INTERFACE_VERSION 19
+
+/* Have to deal with time_t being 4 or 8 bytes due to structure alignment.
+   On a 64bit Linux box, we have to support a constant structure size
+   between /lib/libnss_winbind.so.2 and /li64/libnss_winbind.so.2.
+   The easiest way to do this is to always use 8byte values for time_t. */
+
+#define SMB_TIME_T int64_t
+
+/* Socket commands */
+
+enum winbindd_cmd {
+
+       WINBINDD_INTERFACE_VERSION,    /* Always a well known value */
+
+       /* Get users and groups */
+
+       WINBINDD_GETPWNAM,
+       WINBINDD_GETPWUID,
+       WINBINDD_GETGRNAM,
+       WINBINDD_GETGRGID,
+       WINBINDD_GETGROUPS,
+
+       /* Enumerate users and groups */
+
+       WINBINDD_SETPWENT,
+       WINBINDD_ENDPWENT,
+       WINBINDD_GETPWENT,
+       WINBINDD_SETGRENT,
+       WINBINDD_ENDGRENT,
+       WINBINDD_GETGRENT,
+
+       /* PAM authenticate and password change */
+
+       WINBINDD_PAM_AUTH,
+       WINBINDD_PAM_AUTH_CRAP,
+       WINBINDD_PAM_CHAUTHTOK,
+       WINBINDD_PAM_LOGOFF,
+       WINBINDD_PAM_CHNG_PSWD_AUTH_CRAP,
+
+       /* List various things */
+
+       WINBINDD_LIST_USERS,         /* List w/o rid->id mapping */
+       WINBINDD_LIST_GROUPS,        /* Ditto */
+       WINBINDD_LIST_TRUSTDOM,
+
+       /* SID conversion */
+
+       WINBINDD_LOOKUPSID,
+       WINBINDD_LOOKUPNAME,
+       WINBINDD_LOOKUPRIDS,
+
+       /* Lookup functions */
+
+       WINBINDD_SID_TO_UID,       
+       WINBINDD_SID_TO_GID,
+       WINBINDD_SIDS_TO_XIDS,
+       WINBINDD_UID_TO_SID,
+       WINBINDD_GID_TO_SID,
+
+       WINBINDD_ALLOCATE_UID,
+       WINBINDD_ALLOCATE_GID,
+       WINBINDD_SET_MAPPING,
+       WINBINDD_SET_HWM,
+
+       /* Miscellaneous other stuff */
+
+       WINBINDD_DUMP_MAPS,
+
+       WINBINDD_CHECK_MACHACC,     /* Check machine account pw works */
+       WINBINDD_PING,              /* Just tell me winbind is running */
+       WINBINDD_INFO,              /* Various bit of info.  Currently just tidbits */
+       WINBINDD_DOMAIN_NAME,       /* The domain this winbind server is a member of (lp_workgroup()) */
+
+       WINBINDD_DOMAIN_INFO,   /* Most of what we know from
+                                  struct winbindd_domain */
+       WINBINDD_GETDCNAME,     /* Issue a GetDCName Request */
+       WINBINDD_DSGETDCNAME,   /* Issue a DsGetDCName Request */
+
+       WINBINDD_SHOW_SEQUENCE, /* display sequence numbers of domains */
+
+       /* WINS commands */
+
+       WINBINDD_WINS_BYIP,
+       WINBINDD_WINS_BYNAME,
+
+       /* this is like GETGRENT but gives an empty group list */
+       WINBINDD_GETGRLST,
+
+       WINBINDD_NETBIOS_NAME,       /* The netbios name of the server */
+
+       /* find the location of our privileged pipe */
+       WINBINDD_PRIV_PIPE_DIR,
+
+       /* return a list of group sids for a user sid */
+       WINBINDD_GETUSERSIDS,
+
+       /* Various group queries */
+       WINBINDD_GETUSERDOMGROUPS,
+
+       /* Initialize connection in a child */
+       WINBINDD_INIT_CONNECTION,
+
+       /* Blocking calls that are not allowed on the main winbind pipe, only
+        * between parent and children */
+       WINBINDD_DUAL_SID2UID,
+       WINBINDD_DUAL_SID2GID,
+       WINBINDD_DUAL_SIDS2XIDS,
+       WINBINDD_DUAL_UID2SID,
+       WINBINDD_DUAL_GID2SID,
+       WINBINDD_DUAL_SET_MAPPING,
+       WINBINDD_DUAL_SET_HWM,
+       WINBINDD_DUAL_DUMP_MAPS,
+
+       /* Wrapper around possibly blocking unix nss calls */
+       WINBINDD_DUAL_UID2NAME,
+       WINBINDD_DUAL_NAME2UID,
+       WINBINDD_DUAL_GID2NAME,
+       WINBINDD_DUAL_NAME2GID,
+
+       WINBINDD_DUAL_USERINFO,
+       WINBINDD_DUAL_GETSIDALIASES,
+
+       /* Complete the challenge phase of the NTLM authentication
+          protocol using cached password. */
+       WINBINDD_CCACHE_NTLMAUTH,
+
+       WINBINDD_NUM_CMDS
+};
+
+typedef struct winbindd_pw {
+       fstring pw_name;
+       fstring pw_passwd;
+       uid_t pw_uid;
+       gid_t pw_gid;
+       fstring pw_gecos;
+       fstring pw_dir;
+       fstring pw_shell;
+} WINBINDD_PW;
+
+
+typedef struct winbindd_gr {
+       fstring gr_name;
+       fstring gr_passwd;
+       gid_t gr_gid;
+       uint32_t num_gr_mem;
+       uint32_t gr_mem_ofs;   /* offset to group membership */
+} WINBINDD_GR;
+
+/* PAM specific request flags */
+#define WBFLAG_PAM_INFO3_NDR           0x00000001
+#define WBFLAG_PAM_INFO3_TEXT          0x00000002
+#define WBFLAG_PAM_USER_SESSION_KEY    0x00000004
+#define WBFLAG_PAM_LMKEY               0x00000008
+#define WBFLAG_PAM_CONTACT_TRUSTDOM    0x00000010
+#define WBFLAG_PAM_UNIX_NAME           0x00000080
+#define WBFLAG_PAM_AFS_TOKEN           0x00000100
+#define WBFLAG_PAM_NT_STATUS_SQUASH    0x00000200
+#define WBFLAG_PAM_KRB5                        0x00001000
+#define WBFLAG_PAM_FALLBACK_AFTER_KRB5 0x00002000
+#define WBFLAG_PAM_CACHED_LOGIN                0x00004000
+#define WBFLAG_PAM_GET_PWD_POLICY      0x00008000      /* not used */
+
+/* generic request flags */
+#define WBFLAG_QUERY_ONLY              0x00000020      /* not used */
+/* This is a flag that can only be sent from parent to child */
+#define WBFLAG_IS_PRIVILEGED           0x00000400      /* not used */
+/* Flag to say this is a winbindd internal send - don't recurse. */
+#define WBFLAG_RECURSE                 0x00000800
+
+
+#define WINBINDD_MAX_EXTRA_DATA (128*1024)
+
+/* Winbind request structure */
+
+/*******************************************************************************
+ * This structure MUST be the same size in the 32bit and 64bit builds
+ * for compatibility between /lib64/libnss_winbind.so and /lib/libnss_winbind.so
+ * 
+ * DO NOT CHANGE THIS STRUCTURE WITHOUT TESTING THE 32BIT NSS LIB AGAINST
+ * A 64BIT WINBINDD    --jerry
+ ******************************************************************************/
+
+struct winbindd_request {
+       uint32_t length;
+       enum winbindd_cmd cmd;   /* Winbindd command to execute */
+       enum winbindd_cmd original_cmd;   /* Original Winbindd command
+                                            issued to parent process */
+       pid_t pid;               /* pid of calling process */
+       uint32_t wb_flags;       /* generic flags */
+       uint32_t flags;          /* flags relevant *only* to a given request */
+       fstring domain_name;    /* name of domain for which the request applies */
+
+       union {
+               fstring winsreq;     /* WINS request */
+               fstring username;    /* getpwnam */
+               fstring groupname;   /* getgrnam */
+               uid_t uid;           /* getpwuid, uid_to_sid */
+               gid_t gid;           /* getgrgid, gid_to_sid */
+               struct {
+                       /* We deliberatedly don't split into domain/user to
+                           avoid having the client know what the separator
+                           character is. */    
+                       fstring user;
+                       fstring pass;
+                       pstring require_membership_of_sid;
+                       fstring krb5_cc_type;
+                       uid_t uid;
+               } auth;              /* pam_winbind auth module */
+                struct {
+                        uint8_t chal[8];
+                       uint32_t logon_parameters;
+                        fstring user;
+                        fstring domain;
+                        fstring lm_resp;
+                        uint32_t lm_resp_len;
+                        fstring nt_resp;
+                        uint32_t nt_resp_len;
+                       fstring workstation;
+                       fstring require_membership_of_sid;
+                } auth_crap;
+                struct {
+                    fstring user;
+                    fstring oldpass;
+                    fstring newpass;
+                } chauthtok;         /* pam_winbind passwd module */
+               struct {
+                       fstring user;
+                       fstring domain;
+                       uint8_t new_nt_pswd[516];
+                       uint16_t new_nt_pswd_len;
+                       uint8_t old_nt_hash_enc[16];
+                       uint16_t old_nt_hash_enc_len;
+                       uint8_t new_lm_pswd[516];
+                       uint16_t new_lm_pswd_len;
+                       uint8_t old_lm_hash_enc[16];
+                       uint16_t old_lm_hash_enc_len;
+               } chng_pswd_auth_crap;/* pam_winbind passwd module */
+               struct {
+                       fstring user;
+                       fstring krb5ccname;
+                       uid_t uid;
+               } logoff;              /* pam_winbind session module */
+               fstring sid;         /* lookupsid, sid_to_[ug]id */
+               struct {
+                       fstring dom_name;       /* lookupname */
+                       fstring name;       
+               } name;
+               uint32_t num_entries;  /* getpwent, getgrent */
+               struct {
+                       fstring username;
+                       fstring groupname;
+               } acct_mgt;
+               struct {
+                       bool is_primary;
+                       fstring dcname;
+               } init_conn;
+               struct {
+                       fstring sid;
+                       fstring name;
+               } dual_sid2id;
+               struct {
+                       fstring sid;
+                       uint32_t type;
+                       uint32_t id;
+               } dual_idmapset;
+               bool list_all_domains;
+
+               struct {
+                       uid_t uid;
+                       fstring user;
+                       /* the effective uid of the client, must be the uid for 'user'.
+                          This is checked by the main daemon, trusted by children. */
+                       /* if the blobs are length zero, then this doesn't
+                          produce an actual challenge response. It merely
+                          succeeds if there are cached credentials available
+                          that could be used. */
+                       uint32_t initial_blob_len; /* blobs in extra_data */
+                       uint32_t challenge_blob_len;
+               } ccache_ntlm_auth;
+
+               /* padding -- needed to fix alignment between 32bit and 64bit libs.
+                  The size is the sizeof the union without the padding aligned on 
+                  an 8 byte boundary.   --jerry */
+
+               char padding[1560];
+       } data;
+       union {
+               SMB_TIME_T padding;
+               char *data;
+       } extra_data;
+       uint32_t extra_len;
+       char null_term;
+};
+
+/* Response values */
+
+enum winbindd_result {
+       WINBINDD_ERROR,
+       WINBINDD_PENDING,
+       WINBINDD_OK
+};
+
+/* Winbind response structure */
+
+/*******************************************************************************
+ * This structure MUST be the same size in the 32bit and 64bit builds
+ * for compatibility between /lib64/libnss_winbind.so and /lib/libnss_winbind.so
+ * 
+ * DO NOT CHANGE THIS STRUCTURE WITHOUT TESTING THE 32BIT NSS LIB AGAINST
+ * A 64BIT WINBINDD    --jerry
+ ******************************************************************************/
+
+struct winbindd_response {
+    
+       /* Header information */
+
+       uint32_t length;                      /* Length of response */
+       enum winbindd_result result;          /* Result code */
+
+       /* Fixed length return data */
+       
+       union {
+               int interface_version;  /* Try to ensure this is always in the same spot... */
+               
+               fstring winsresp;               /* WINS response */
+
+               /* getpwnam, getpwuid */
+               
+               struct winbindd_pw pw;
+
+               /* getgrnam, getgrgid */
+
+               struct winbindd_gr gr;
+
+               uint32_t num_entries; /* getpwent, getgrent */
+               struct winbindd_sid {
+                       fstring sid;        /* lookupname, [ug]id_to_sid */
+                       int type;
+               } sid;
+               struct winbindd_name {
+                       fstring dom_name;       /* lookupsid */
+                       fstring name;       
+                       int type;
+               } name;
+               uid_t uid;          /* sid_to_uid */
+               gid_t gid;          /* sid_to_gid */
+               struct winbindd_info {
+                       char winbind_separator;
+                       fstring samba_version;
+               } info;
+               fstring domain_name;
+               fstring netbios_name;
+               fstring dc_name;
+
+               struct auth_reply {
+                       uint32_t nt_status;
+                       fstring nt_status_string;
+                       fstring error_string;
+                       int pam_error;
+                       char user_session_key[16];
+                       char first_8_lm_hash[8];
+                       fstring krb5ccname;
+                       uint32_t reject_reason;
+                       uint32_t padding;
+                       struct policy_settings {
+                               uint32_t min_length_password;
+                               uint32_t password_history;
+                               uint32_t password_properties;
+                               uint32_t padding;
+                               SMB_TIME_T expire;
+                               SMB_TIME_T min_passwordage;
+                       } policy;
+                       struct info3_text {
+                               SMB_TIME_T logon_time;
+                               SMB_TIME_T logoff_time;
+                               SMB_TIME_T kickoff_time;
+                               SMB_TIME_T pass_last_set_time;
+                               SMB_TIME_T pass_can_change_time;
+                               SMB_TIME_T pass_must_change_time;
+                               uint32_t logon_count;
+                               uint32_t bad_pw_count;
+                               uint32_t user_rid;
+                               uint32_t group_rid;
+                               uint32_t num_groups;
+                               uint32_t user_flgs;
+                               uint32_t acct_flags;
+                               uint32_t num_other_sids;
+                               fstring dom_sid;
+                               fstring user_name;
+                               fstring full_name;
+                               fstring logon_script;
+                               fstring profile_path;
+                               fstring home_dir;
+                               fstring dir_drive;
+                               fstring logon_srv;
+                               fstring logon_dom;
+                       } info3;
+               } auth;
+               struct {
+                       fstring name;
+                       fstring alt_name;
+                       fstring sid;
+                       bool native_mode;
+                       bool active_directory;
+                       bool primary;
+               } domain_info;
+               uint32_t sequence_number;
+               struct {
+                       fstring acct_name;
+                       fstring full_name;
+                       fstring homedir;
+                       fstring shell;
+                       uint32_t primary_gid;
+                       uint32_t group_rid;
+               } user_info;
+               struct {
+                       uint32_t auth_blob_len; /* blob in extra_data */
+               } ccache_ntlm_auth;
+       } data;
+
+       /* Variable length return data */
+
+       union {
+               SMB_TIME_T padding;
+               void *data;
+       } extra_data;
+};
+
+struct WINBINDD_MEMORY_CREDS {
+       struct WINBINDD_MEMORY_CREDS *next, *prev;
+       const char *username; /* lookup key. */
+       uid_t uid;
+       int ref_count;
+       size_t len;
+       uint8_t *nt_hash; /* Base pointer for the following 2 */
+       uint8_t *lm_hash;
+       char *pass;
+};
+
+struct WINBINDD_CCACHE_ENTRY {
+       struct WINBINDD_CCACHE_ENTRY *next, *prev;
+       const char *principal_name;
+       const char *ccname;
+       const char *service;
+       const char *username;
+       const char *realm;
+       struct WINBINDD_MEMORY_CREDS *cred_ptr;
+       int ref_count;
+       uid_t uid;
+       time_t create_time;
+       time_t renew_until;
+       time_t refresh_time;
+       struct timed_event *event;
+};
+
+#endif
diff --git a/source/nsswitch/winbindd_nss.h b/source/nsswitch/winbindd_nss.h
deleted file mode 100644 (file)
index 724b830..0000000
+++ /dev/null
@@ -1,506 +0,0 @@
-/* 
-   Unix SMB/CIFS implementation.
-
-   Winbind daemon for ntdom nss module
-
-   Copyright (C) Tim Potter 2000
-   Copyright (C) Gerald Carter 2006
-   
-   You are free to use this interface definition in any way you see
-   fit, including without restriction, using this header in your own
-   products. You do not need to give any attribution.  
-*/
-
-
-#ifndef CONST_DISCARD
-#define CONST_DISCARD(type, ptr)      ((type) ((void *) (ptr)))
-#endif
-
-#ifndef CONST_ADD
-#define CONST_ADD(type, ptr)          ((type) ((const void *) (ptr)))
-#endif
-
-#ifndef SAFE_FREE
-#define SAFE_FREE(x) do { if(x) {free(x); x=NULL;} } while(0)
-#endif
-
-#ifndef _WINBINDD_NTDOM_H
-#define _WINBINDD_NTDOM_H
-
-#define WINBINDD_SOCKET_NAME "pipe"            /* Name of PF_UNIX socket */
-
-/* Let the build environment override the public winbindd socket location. This
- * is needed for launchd support -- jpeach.
- */
-#ifndef WINBINDD_SOCKET_DIR
-#define WINBINDD_SOCKET_DIR  "/tmp/.winbindd"  /* Name of PF_UNIX dir */
-#endif
-
-#define WINBINDD_PRIV_SOCKET_SUBDIR "winbindd_privileged" /* name of subdirectory of lp_lockdir() to hold the 'privileged' pipe */
-#define WINBINDD_DOMAIN_ENV  "WINBINDD_DOMAIN" /* Environment variables */
-#define WINBINDD_DONT_ENV    "_NO_WINBINDD"
-
-#ifdef SOCKET_WRAPPER
-#define WINBINDD_SOCKET_DIR_ENV "WINBINDD_SOCKET_DIR"
-#endif
-
-/* Update this when you change the interface.  */
-
-#define WINBIND_INTERFACE_VERSION 18
-
-/* Have to deal with time_t being 4 or 8 bytes due to structure alignment.
-   On a 64bit Linux box, we have to support a constant structure size
-   between /lib/libnss_winbind.so.2 and /li64/libnss_winbind.so.2.
-   The easiest way to do this is to always use 8byte values for time_t. */
-
-#if defined(int64)
-#  define SMB_TIME_T int64
-#else
-#  define SMB_TIME_T time_t
-#endif
-
-/* Socket commands */
-
-enum winbindd_cmd {
-
-       WINBINDD_INTERFACE_VERSION,    /* Always a well known value */
-
-       /* Get users and groups */
-
-       WINBINDD_GETPWNAM,
-       WINBINDD_GETPWUID,
-       WINBINDD_GETGRNAM,
-       WINBINDD_GETGRGID,
-       WINBINDD_GETGROUPS,
-
-       /* Enumerate users and groups */
-
-       WINBINDD_SETPWENT,
-       WINBINDD_ENDPWENT,
-       WINBINDD_GETPWENT,
-       WINBINDD_SETGRENT,
-       WINBINDD_ENDGRENT,
-       WINBINDD_GETGRENT,
-
-       /* PAM authenticate and password change */
-
-       WINBINDD_PAM_AUTH,
-       WINBINDD_PAM_AUTH_CRAP,
-       WINBINDD_PAM_CHAUTHTOK,
-       WINBINDD_PAM_LOGOFF,
-       WINBINDD_PAM_CHNG_PSWD_AUTH_CRAP,
-
-       /* List various things */
-
-       WINBINDD_LIST_USERS,         /* List w/o rid->id mapping */
-       WINBINDD_LIST_GROUPS,        /* Ditto */
-       WINBINDD_LIST_TRUSTDOM,
-
-       /* SID conversion */
-
-       WINBINDD_LOOKUPSID,
-       WINBINDD_LOOKUPNAME,
-       WINBINDD_LOOKUPRIDS,
-
-       /* Lookup functions */
-
-       WINBINDD_SID_TO_UID,
-       WINBINDD_SID_TO_GID,
-       WINBINDD_SIDS_TO_XIDS,
-       WINBINDD_UID_TO_SID,
-       WINBINDD_GID_TO_SID,
-
-       WINBINDD_ALLOCATE_UID,
-       WINBINDD_ALLOCATE_GID,
-       WINBINDD_SET_MAPPING,
-       WINBINDD_SET_HWM,
-
-       /* Miscellaneous other stuff */
-
-       WINBINDD_DUMP_MAPS,
-
-       WINBINDD_CHECK_MACHACC,     /* Check machine account pw works */
-       WINBINDD_PING,              /* Just tell me winbind is running */
-       WINBINDD_INFO,              /* Various bit of info.  Currently just tidbits */
-       WINBINDD_DOMAIN_NAME,       /* The domain this winbind server is a member of (lp_workgroup()) */
-
-       WINBINDD_DOMAIN_INFO,   /* Most of what we know from
-                                  struct winbindd_domain */
-       WINBINDD_GETDCNAME,     /* Issue a GetDCName Request */
-
-       WINBINDD_SHOW_SEQUENCE, /* display sequence numbers of domains */
-
-       /* WINS commands */
-
-       WINBINDD_WINS_BYIP,
-       WINBINDD_WINS_BYNAME,
-
-       /* this is like GETGRENT but gives an empty group list */
-       WINBINDD_GETGRLST,
-
-       WINBINDD_NETBIOS_NAME,       /* The netbios name of the server */
-
-       /* find the location of our privileged pipe */
-       WINBINDD_PRIV_PIPE_DIR,
-
-       /* return a list of group sids for a user sid */
-       WINBINDD_GETUSERSIDS,
-
-       /* Various group queries */
-       WINBINDD_GETUSERDOMGROUPS,
-
-       /* Initialize connection in a child */
-       WINBINDD_INIT_CONNECTION,
-
-       /* Blocking calls that are not allowed on the main winbind pipe, only
-        * between parent and children */
-       WINBINDD_DUAL_SID2UID,
-       WINBINDD_DUAL_SID2GID,
-       WINBINDD_DUAL_SIDS2XIDS,
-       WINBINDD_DUAL_UID2SID,
-       WINBINDD_DUAL_GID2SID,
-       WINBINDD_DUAL_SET_MAPPING,
-       WINBINDD_DUAL_SET_HWM,
-       WINBINDD_DUAL_DUMP_MAPS,
-
-       /* Wrapper around possibly blocking unix nss calls */
-       WINBINDD_DUAL_UID2NAME,
-       WINBINDD_DUAL_NAME2UID,
-       WINBINDD_DUAL_GID2NAME,
-       WINBINDD_DUAL_NAME2GID,
-
-       WINBINDD_DUAL_USERINFO,
-       WINBINDD_DUAL_GETSIDALIASES,
-
-       /* Complete the challenge phase of the NTLM authentication
-          protocol using cached password. */
-       WINBINDD_CCACHE_NTLMAUTH,
-
-       WINBINDD_NUM_CMDS
-};
-
-typedef struct winbindd_pw {
-       fstring pw_name;
-       fstring pw_passwd;
-       uid_t pw_uid;
-       gid_t pw_gid;
-       fstring pw_gecos;
-       fstring pw_dir;
-       fstring pw_shell;
-} WINBINDD_PW;
-
-
-typedef struct winbindd_gr {
-       fstring gr_name;
-       fstring gr_passwd;
-       gid_t gr_gid;
-       uint32 num_gr_mem;
-       uint32 gr_mem_ofs;   /* offset to group membership */
-} WINBINDD_GR;
-
-
-#define WBFLAG_PAM_INFO3_NDR           0x0001
-#define WBFLAG_PAM_INFO3_TEXT          0x0002
-#define WBFLAG_PAM_USER_SESSION_KEY     0x0004
-#define WBFLAG_PAM_LMKEY               0x0008
-#define WBFLAG_PAM_CONTACT_TRUSTDOM    0x0010
-#define WBFLAG_QUERY_ONLY              0x0020
-#define WBFLAG_PAM_UNIX_NAME            0x0080
-#define WBFLAG_PAM_AFS_TOKEN            0x0100
-#define WBFLAG_PAM_NT_STATUS_SQUASH     0x0200
-
-/* This is a flag that can only be sent from parent to child */
-#define WBFLAG_IS_PRIVILEGED            0x0400
-/* Flag to say this is a winbindd internal send - don't recurse. */
-#define WBFLAG_RECURSE                 0x0800
-
-#define WBFLAG_PAM_KRB5                        0x1000
-#define WBFLAG_PAM_FALLBACK_AFTER_KRB5 0x2000
-#define WBFLAG_PAM_CACHED_LOGIN                0x4000
-#define WBFLAG_PAM_GET_PWD_POLICY      0x8000  /* not used */
-
-#define WINBINDD_MAX_EXTRA_DATA (128*1024)
-
-/* Winbind request structure */
-
-/*******************************************************************************
- * This structure MUST be the same size in the 32bit and 64bit builds
- * for compatibility between /lib64/libnss_winbind.so and /lib/libnss_winbind.so
- * 
- * DO NOT CHANGE THIS STRUCTURE WITHOUT TESTING THE 32BIT NSS LIB AGAINST
- * A 64BIT WINBINDD    --jerry
- ******************************************************************************/
-
-struct winbindd_request {
-       uint32 length;
-       enum winbindd_cmd cmd;   /* Winbindd command to execute */
-       enum winbindd_cmd original_cmd;   /* Original Winbindd command
-                                            issued to parent process */
-       pid_t pid;               /* pid of calling process */
-       uint32 flags;            /* flags relavant to a given request */
-       fstring domain_name;    /* name of domain for which the request applies */
-
-       union {
-               fstring winsreq;     /* WINS request */
-               fstring username;    /* getpwnam */
-               fstring groupname;   /* getgrnam */
-               uid_t uid;           /* getpwuid, uid_to_sid */
-               gid_t gid;           /* getgrgid, gid_to_sid */
-               struct {
-                       /* We deliberatedly don't split into domain/user to
-                           avoid having the client know what the separator
-                           character is. */    
-                       fstring user;
-                       fstring pass;
-                       pstring require_membership_of_sid;
-                       fstring krb5_cc_type;
-                       uid_t uid;
-               } auth;              /* pam_winbind auth module */
-                struct {
-                        unsigned char chal[8];
-                       uint32 logon_parameters;
-                        fstring user;
-                        fstring domain;
-                        fstring lm_resp;
-                        uint32 lm_resp_len;
-                        fstring nt_resp;
-                        uint32 nt_resp_len;
-                       fstring workstation;
-                       fstring require_membership_of_sid;
-                } auth_crap;
-                struct {
-                    fstring user;
-                    fstring oldpass;
-                    fstring newpass;
-                } chauthtok;         /* pam_winbind passwd module */
-               struct {
-                       fstring user;
-                       fstring domain;
-                       unsigned char new_nt_pswd[516];
-                       uint16  new_nt_pswd_len;
-                       unsigned char old_nt_hash_enc[16];
-                       uint16  old_nt_hash_enc_len;
-                       unsigned char new_lm_pswd[516];
-                       uint16  new_lm_pswd_len;
-                       unsigned char old_lm_hash_enc[16];
-                       uint16  old_lm_hash_enc_len;
-               } chng_pswd_auth_crap;/* pam_winbind passwd module */
-               struct {
-                       fstring user;
-                       fstring krb5ccname;
-                       uid_t uid;
-               } logoff;              /* pam_winbind session module */
-               fstring sid;         /* lookupsid, sid_to_[ug]id */
-               struct {
-                       fstring dom_name;       /* lookupname */
-                       fstring name;       
-               } name;
-               uint32 num_entries;  /* getpwent, getgrent */
-               struct {
-                       fstring username;
-                       fstring groupname;
-               } acct_mgt;
-               struct {
-                       bool is_primary;
-                       fstring dcname;
-               } init_conn;
-               struct {
-                       fstring sid;
-                       fstring name;
-               } dual_sid2id;
-               struct {
-                       fstring sid;
-                       uint32 type;
-                       uint32 id;
-               } dual_idmapset;
-               bool list_all_domains;
-
-               struct {
-                       uid_t uid;
-                       fstring user;
-                       /* the effective uid of the client, must be the uid for 'user'.
-                          This is checked by the main daemon, trusted by children. */
-                       /* if the blobs are length zero, then this doesn't
-                          produce an actual challenge response. It merely
-                          succeeds if there are cached credentials available
-                          that could be used. */
-                       uint32 initial_blob_len; /* blobs in extra_data */
-                       uint32 challenge_blob_len;
-               } ccache_ntlm_auth;
-
-               /* padding -- needed to fix alignment between 32bit and 64bit libs.
-                  The size is the sizeof the union without the padding aligned on 
-                  an 8 byte boundary.   --jerry */
-
-               char padding[1560];
-       } data;
-       union {
-               SMB_TIME_T padding;
-               char *data;
-       } extra_data;
-       uint32 extra_len;
-       char null_term;
-};
-
-/* Response values */
-
-enum winbindd_result {
-       WINBINDD_ERROR,
-       WINBINDD_PENDING,
-       WINBINDD_OK
-};
-
-/* Winbind response structure */
-
-/*******************************************************************************
- * This structure MUST be the same size in the 32bit and 64bit builds
- * for compatibility between /lib64/libnss_winbind.so and /lib/libnss_winbind.so
- * 
- * DO NOT CHANGE THIS STRUCTURE WITHOUT TESTING THE 32BIT NSS LIB AGAINST
- * A 64BIT WINBINDD    --jerry
- ******************************************************************************/
-
-struct winbindd_response {
-    
-       /* Header information */
-
-       uint32 length;                        /* Length of response */
-       enum winbindd_result result;          /* Result code */
-
-       /* Fixed length return data */
-       
-       union {
-               int interface_version;  /* Try to ensure this is always in the same spot... */
-               
-               fstring winsresp;               /* WINS response */
-
-               /* getpwnam, getpwuid */
-               
-               struct winbindd_pw pw;
-
-               /* getgrnam, getgrgid */
-
-               struct winbindd_gr gr;
-
-               uint32 num_entries; /* getpwent, getgrent */
-               struct winbindd_sid {
-                       fstring sid;        /* lookupname, [ug]id_to_sid */
-                       int type;
-               } sid;
-               struct winbindd_name {
-                       fstring dom_name;       /* lookupsid */
-                       fstring name;
-                       int type;
-               } name;
-               uid_t uid;          /* sid_to_uid */
-               gid_t gid;          /* sid_to_gid */
-               struct winbindd_info {
-                       char winbind_separator;
-                       fstring samba_version;
-               } info;
-               fstring domain_name;
-               fstring netbios_name;
-               fstring dc_name;
-
-               struct auth_reply {
-                       uint32 nt_status;
-                       fstring nt_status_string;
-                       fstring error_string;
-                       int pam_error;
-                       char user_session_key[16];
-                       char first_8_lm_hash[8];
-                       fstring krb5ccname;
-                       uint32 reject_reason;
-                       uint32 padding;
-                       struct policy_settings {
-                               uint32 min_length_password;
-                               uint32 password_history;
-                               uint32 password_properties;
-                               uint32 padding;
-                               SMB_TIME_T expire;
-                               SMB_TIME_T min_passwordage;
-                       } policy;
-                       struct info3_text {
-                               SMB_TIME_T logon_time;
-                               SMB_TIME_T logoff_time;
-                               SMB_TIME_T kickoff_time;
-                               SMB_TIME_T pass_last_set_time;
-                               SMB_TIME_T pass_can_change_time;
-                               SMB_TIME_T pass_must_change_time;
-                               uint32 logon_count;
-                               uint32 bad_pw_count;
-                               uint32 user_rid;
-                               uint32 group_rid;
-                               uint32 num_groups;
-                               uint32 user_flgs;
-                               uint32 acct_flags;
-                               uint32 num_other_sids;
-                               fstring dom_sid;
-                               fstring user_name;
-                               fstring full_name;
-                               fstring logon_script;
-                               fstring profile_path;
-                               fstring home_dir;
-                               fstring dir_drive;
-                               fstring logon_srv;
-                               fstring logon_dom;
-                       } info3;
-               } auth;
-               struct {
-                       fstring name;
-                       fstring alt_name;
-                       fstring sid;
-                       bool native_mode;
-                       bool active_directory;
-                       bool primary;
-                       uint32 sequence_number;
-               } domain_info;
-               struct {
-                       fstring acct_name;
-                       fstring full_name;
-                       fstring homedir;
-                       fstring shell;
-                       uint32 primary_gid;                     
-                       uint32 group_rid;
-               } user_info;
-               struct {
-                       uint32 auth_blob_len; /* blob in extra_data */
-               } ccache_ntlm_auth;
-       } data;
-
-       /* Variable length return data */
-
-       union {
-               SMB_TIME_T padding;
-               void *data;
-       } extra_data;
-};
-
-struct WINBINDD_MEMORY_CREDS {
-       struct WINBINDD_MEMORY_CREDS *next, *prev;
-       const char *username; /* lookup key. */
-       uid_t uid;
-       int ref_count;
-       size_t len;
-       unsigned char *nt_hash; /* Base pointer for the following 2 */
-       unsigned char *lm_hash;
-       char *pass;
-};
-
-struct WINBINDD_CCACHE_ENTRY {
-       struct WINBINDD_CCACHE_ENTRY *next, *prev;
-       const char *principal_name;
-       const char *ccname;
-       const char *service;
-       const char *username;
-       const char *realm;
-       struct WINBINDD_MEMORY_CREDS *cred_ptr;
-       int ref_count;
-       uid_t uid;
-       time_t create_time;
-       time_t renew_until;
-       time_t refresh_time;
-       struct timed_event *event;
-};
-
-#endif
index d63bdb1546306aff96e61d969592a9551d79f2a4..379c4e54134a44021a870d21ec875fe486f59fb1 100644 (file)
@@ -25,6 +25,7 @@
 #include "includes.h"
 #include "ntptr/ntptr.h"
 #include "build.h"
+#include "param/param.h"
 
 /* the list of currently registered NTPTR backends */
 static struct ntptr_backend {
@@ -71,7 +72,7 @@ NTSTATUS ntptr_register(const void *_ops)
 NTSTATUS ntptr_init(void)
 {
        init_module_fn static_init[] = STATIC_ntptr_MODULES;
-       init_module_fn *shared_init = load_samba_modules(NULL, "ntptr");
+       init_module_fn *shared_init = load_samba_modules(NULL, global_loadparm, "ntptr");
 
        run_init_functions(static_init);
        run_init_functions(shared_init);
index dcdaa5e94e086c17f870eb9d296fe5436fb54d79..4046c1bdbd6d24f99806d58cfea6b648dd8173e9 100644 (file)
@@ -35,6 +35,7 @@
 #include "dsdb/samdb/samdb.h"
 #include "db_wrap.h"
 #include "rpc_server/common/common.h"
+#include "param/param.h"
 
 /*
   connect to the SPOOLSS database
@@ -42,7 +43,7 @@
  */
 static struct ldb_context *sptr_db_connect(TALLOC_CTX *mem_ctx)
 {
-       return ldb_wrap_connect(mem_ctx, lp_spoolss_url(), system_session(mem_ctx), 
+       return ldb_wrap_connect(mem_ctx, global_loadparm, lp_spoolss_url(global_loadparm), system_session(mem_ctx), 
                                NULL, 0, NULL);
 }
 
@@ -202,12 +203,12 @@ static WERROR sptr_GetPrintServerData(struct ntptr_GenericHandle *server, TALLOC
                r->out.data.binary      = blob;
                return WERR_OK;
        } else if (strcmp("DNSMachineName", r->in.value_name) == 0) {
-               if (!lp_realm()) return WERR_INVALID_PARAM;
+               if (!lp_realm(global_loadparm)) return WERR_INVALID_PARAM;
 
                r->out.type             = SPOOLSS_PRINTER_DATA_TYPE_STRING;
                r->out.data.string      = talloc_asprintf(mem_ctx, "%s.%s",
-                                                                  lp_netbios_name(),
-                                                                  lp_realm());
+                                                                  lp_netbios_name(global_loadparm),
+                                                                  lp_realm(global_loadparm));
                W_ERROR_HAVE_NO_MEMORY(r->out.data.string);
                return WERR_OK;
        }
index 4c079b36fc394c59a340fe3502bf5b84e2daeace..cd4e36390663f605d663ea687ad7c5fb81267066 100644 (file)
@@ -31,6 +31,7 @@
 #include "auth/credentials/credentials.h"
 #include "ntvfs/ntvfs.h"
 #include "lib/util/dlinklist.h"
+#include "param/param.h"
 
 struct cvfs_file {
        struct cvfs_file *prev, *next;
@@ -45,8 +46,8 @@ struct cvfs_private {
        struct ntvfs_module_context *ntvfs;
        struct async_info *pending;
        struct cvfs_file *files;
-       BOOL map_generic;
-       BOOL map_trans2;
+       bool map_generic;
+       bool map_trans2;
 };
 
 
@@ -83,15 +84,15 @@ struct async_info {
 #define CIFS_MAP_GENERIC       "cifs:map-generic"
 #define CIFS_MAP_TRANS2                "cifs:map-trans2"
 
-#define CIFS_USE_MACHINE_ACCT_DEFAULT  False
-#define CIFS_MAP_GENERIC_DEFAULT       False
-#define CIFS_MAP_TRANS2_DEFAULT                True
+#define CIFS_USE_MACHINE_ACCT_DEFAULT  false
+#define CIFS_MAP_GENERIC_DEFAULT       false
+#define CIFS_MAP_TRANS2_DEFAULT                true
 
 /*
   a handler for oplock break events from the server - these need to be passed
   along to the client
  */
-static BOOL oplock_handler(struct smbcli_transport *transport, uint16_t tid, uint16_t fnum, uint8_t level, void *p_private)
+static bool oplock_handler(struct smbcli_transport *transport, uint16_t tid, uint16_t fnum, uint8_t level, void *p_private)
 {
        struct cvfs_private *private = p_private;
        NTSTATUS status;
@@ -106,13 +107,13 @@ static BOOL oplock_handler(struct smbcli_transport *transport, uint16_t tid, uin
 
        if (!h) {
                DEBUG(5,("vfs_cifs: ignoring oplock break level %d for fnum %d\n", level, fnum));
-               return True;
+               return true;
        }
 
        DEBUG(5,("vfs_cifs: sending oplock break level %d for fnum %d\n", level, fnum));
        status = ntvfs_send_oplock_break(private->ntvfs, h, level);
-       if (!NT_STATUS_IS_OK(status)) return False;
-       return True;
+       if (!NT_STATUS_IS_OK(status)) return false;
+       return true;
 }
 
 /*
@@ -129,7 +130,7 @@ static NTSTATUS cvfs_connect(struct ntvfs_module_context *ntvfs,
        struct share_config *scfg = ntvfs->ctx->config;
 
        struct cli_credentials *credentials;
-       BOOL machine_account;
+       bool machine_account;
 
        /* Here we need to determine which server to connect to.
         * For now we use parametric options, type cifs.
@@ -165,7 +166,7 @@ static NTSTATUS cvfs_connect(struct ntvfs_module_context *ntvfs,
                        return NT_STATUS_NO_MEMORY;
                }
                cli_credentials_set_event_context(credentials, ntvfs->ctx->event_ctx);
-               cli_credentials_set_conf(credentials);
+               cli_credentials_set_conf(credentials, global_loadparm);
                cli_credentials_set_username(credentials, user, CRED_SPECIFIED);
                if (domain) {
                        cli_credentials_set_domain(credentials, domain, CRED_SPECIFIED);
@@ -175,7 +176,7 @@ static NTSTATUS cvfs_connect(struct ntvfs_module_context *ntvfs,
                DEBUG(5, ("CIFS backend: Using machine account\n"));
                credentials = cli_credentials_init(private);
                cli_credentials_set_event_context(credentials, ntvfs->ctx->event_ctx);
-               cli_credentials_set_conf(credentials);
+               cli_credentials_set_conf(credentials, global_loadparm);
                if (domain) {
                        cli_credentials_set_domain(credentials, domain, CRED_SPECIFIED);
                }
@@ -196,8 +197,8 @@ static NTSTATUS cvfs_connect(struct ntvfs_module_context *ntvfs,
        io.in.port = 0;
        io.in.called_name = host;
        io.in.credentials = credentials;
-       io.in.fallback_to_anonymous = False;
-       io.in.workgroup = lp_workgroup();
+       io.in.fallback_to_anonymous = false;
+       io.in.workgroup = lp_workgroup(global_loadparm);
        io.in.service = remote_share;
        io.in.service_type = "?????";
        
@@ -921,7 +922,7 @@ static NTSTATUS cvfs_lpq(struct ntvfs_module_context *ntvfs,
 static NTSTATUS cvfs_search_first(struct ntvfs_module_context *ntvfs, 
                                  struct ntvfs_request *req, union smb_search_first *io, 
                                  void *search_private, 
-                                 BOOL (*callback)(void *, const union smb_search_data *))
+                                 bool (*callback)(void *, const union smb_search_data *))
 {
        struct cvfs_private *private = ntvfs->private_data;
 
@@ -934,7 +935,7 @@ static NTSTATUS cvfs_search_first(struct ntvfs_module_context *ntvfs,
 static NTSTATUS cvfs_search_next(struct ntvfs_module_context *ntvfs, 
                                 struct ntvfs_request *req, union smb_search_next *io, 
                                 void *search_private, 
-                                BOOL (*callback)(void *, const union smb_search_data *))
+                                bool (*callback)(void *, const union smb_search_data *))
 {
        struct cvfs_private *private = ntvfs->private_data;
 
index 088d1644d3b04427b59a4261935f025ab880ea03..a61ac16669bd0a8f3615bc932d97d0fa25739b11 100644 (file)
@@ -39,7 +39,7 @@
 #define O_DIRECTORY 0
 #endif
 
-#define CHECK_READ_ONLY(req) do { if (share_bool_option(ntvfs->ctx->config, SHARE_READONLY, True)) return NT_STATUS_ACCESS_DENIED; } while (0)
+#define CHECK_READ_ONLY(req) do { if (share_bool_option(ntvfs->ctx->config, SHARE_READONLY, true)) return NT_STATUS_ACCESS_DENIED; } while (0)
 
 /*
   connect to a share - used when a tree_connect operation comes
@@ -311,7 +311,7 @@ static NTSTATUS cifspsx_open(struct ntvfs_module_context *ntvfs,
        int fd, flags;
        struct cifspsx_file *f;
        int create_flags, rdwr_flags;
-       BOOL readonly;
+       bool readonly;
        NTSTATUS status;
        struct ntvfs_handle *handle;
        
@@ -829,7 +829,7 @@ static NTSTATUS cifspsx_lpq(struct ntvfs_module_context *ntvfs,
 static NTSTATUS cifspsx_search_first(struct ntvfs_module_context *ntvfs,
                                  struct ntvfs_request *req, union smb_search_first *io, 
                                  void *search_private, 
-                                 BOOL (*callback)(void *, const union smb_search_data *))
+                                 bool (*callback)(void *, const union smb_search_data *))
 {
        struct cifspsx_dir *dir;
        int i;
@@ -903,7 +903,7 @@ static NTSTATUS cifspsx_search_first(struct ntvfs_module_context *ntvfs,
 static NTSTATUS cifspsx_search_next(struct ntvfs_module_context *ntvfs,
                                 struct ntvfs_request *req, union smb_search_next *io, 
                                 void *search_private, 
-                                BOOL (*callback)(void *, const union smb_search_data *))
+                                bool (*callback)(void *, const union smb_search_data *))
 {
        struct cifspsx_dir *dir;
        int i;
index 0bca9d2590a8cd83e8e718418e1130ea950deaee..2b81521a2c836b92a0f779233a31a439b9ce17a9 100644 (file)
@@ -126,7 +126,7 @@ static struct brl_handle *brl_tdb_create_handle(TALLOC_CTX *mem_ctx, struct ntvf
 /*
   see if two locking contexts are equal
 */
-static BOOL brl_tdb_same_context(struct lock_context *ctx1, struct lock_context *ctx2)
+static bool brl_tdb_same_context(struct lock_context *ctx1, struct lock_context *ctx2)
 {
        return (cluster_id_equal(&ctx1->server, &ctx2->server) &&
                ctx1->smbpid == ctx2->smbpid &&
@@ -139,7 +139,7 @@ static BOOL brl_tdb_same_context(struct lock_context *ctx1, struct lock_context
   lck1 is the existing lock. lck2 is the new lock we are 
   looking at adding
 */
-static BOOL brl_tdb_overlap(struct lock_struct *lck1, 
+static bool brl_tdb_overlap(struct lock_struct *lck1, 
                            struct lock_struct *lck2)
 {
        /* this extra check is not redundent - it copes with locks
@@ -147,12 +147,12 @@ static BOOL brl_tdb_overlap(struct lock_struct *lck1,
        if (lck1->size != 0 &&
            lck1->start == lck2->start &&
            lck1->size == lck2->size) {
-               return True;
+               return true;
        }
            
        if (lck1->start >= (lck2->start+lck2->size) ||
            lck2->start >= (lck1->start+lck1->size)) {
-               return False;
+               return false;
        }
 
        /* we have a conflict. Now check to see if lck1 really still
@@ -163,28 +163,28 @@ static BOOL brl_tdb_overlap(struct lock_struct *lck1,
         * hasn't been written yet. When clustered this will need to
         * call into ctdb */
 
-       return True;
+       return true;
 } 
 
 /*
  See if lock2 can be added when lock1 is in place.
 */
-static BOOL brl_tdb_conflict(struct lock_struct *lck1, 
+static bool brl_tdb_conflict(struct lock_struct *lck1, 
                         struct lock_struct *lck2)
 {
        /* pending locks don't conflict with anything */
        if (lck1->lock_type >= PENDING_READ_LOCK ||
            lck2->lock_type >= PENDING_READ_LOCK) {
-               return False;
+               return false;
        }
 
        if (lck1->lock_type == READ_LOCK && lck2->lock_type == READ_LOCK) {
-               return False;
+               return false;
        }
 
        if (brl_tdb_same_context(&lck1->context, &lck2->context) &&
            lck2->lock_type == READ_LOCK && lck1->ntvfs == lck2->ntvfs) {
-               return False;
+               return false;
        }
 
        return brl_tdb_overlap(lck1, lck2);
@@ -195,16 +195,16 @@ static BOOL brl_tdb_conflict(struct lock_struct *lck1,
  Check to see if this lock conflicts, but ignore our own locks on the
  same fnum only.
 */
-static BOOL brl_tdb_conflict_other(struct lock_struct *lck1, struct lock_struct *lck2)
+static bool brl_tdb_conflict_other(struct lock_struct *lck1, struct lock_struct *lck2)
 {
        /* pending locks don't conflict with anything */
        if (lck1->lock_type >= PENDING_READ_LOCK ||
            lck2->lock_type >= PENDING_READ_LOCK) {
-               return False;
+               return false;
        }
 
        if (lck1->lock_type == READ_LOCK && lck2->lock_type == READ_LOCK) 
-               return False;
+               return false;
 
        /*
         * note that incoming write calls conflict with existing READ
@@ -214,7 +214,7 @@ static BOOL brl_tdb_conflict_other(struct lock_struct *lck1, struct lock_struct
        if (brl_tdb_same_context(&lck1->context, &lck2->context) &&
            lck1->ntvfs == lck2->ntvfs &&
            (lck2->lock_type == READ_LOCK || lck1->lock_type == WRITE_LOCK)) {
-               return False;
+               return false;
        }
 
        return brl_tdb_overlap(lck1, lck2);
index 0d36a20a60c56c7477af6a29428e50e77ad7d270..0214c39b2d753f844a6e97ec0fc7f9773e07621d 100644 (file)
@@ -58,7 +58,7 @@ struct notify_list {
 #define NOTIFY_KEY "notify array"
 
 #define NOTIFY_ENABLE          "notify:enable"
-#define NOTIFY_ENABLE_DEFAULT  True
+#define NOTIFY_ENABLE_DEFAULT  true
 
 static NTSTATUS notify_remove_all(struct notify_context *notify);
 static void notify_handler(struct messaging_context *msg_ctx, void *private_data, 
@@ -86,7 +86,7 @@ struct notify_context *notify_init(TALLOC_CTX *mem_ctx, struct server_id server,
 {
        struct notify_context *notify;
 
-       if (share_bool_option(scfg, NOTIFY_ENABLE, NOTIFY_ENABLE_DEFAULT) != True) {
+       if (share_bool_option(scfg, NOTIFY_ENABLE, NOTIFY_ENABLE_DEFAULT) != true) {
                return NULL;
        }
 
index 69282dd12e7046f6920078cc2a659afaa23cecff..59990d2fc143f3699b7125a4bfacdd34501d7d5e 100644 (file)
@@ -41,6 +41,7 @@
 #include "ntvfs/ntvfs.h"
 #include "ntvfs/common/ntvfs_common.h"
 #include "cluster/cluster.h"
+#include "param/param.h"
 
 static const struct opendb_ops *ops;
 
@@ -61,7 +62,7 @@ _PUBLIC_ struct odb_context *odb_init(TALLOC_CTX *mem_ctx,
                                      struct ntvfs_context *ntvfs_ctx)
 {
        if (ops == NULL) {
-               if (lp_parm_bool(-1, "ctdb", "opendb", False)) {
+               if (lp_parm_bool(global_loadparm, NULL, "ctdb", "opendb", false)) {
                        odb_ctdb_init_ops();
                } else {
                        odb_tdb_init_ops();
@@ -90,7 +91,7 @@ _PUBLIC_ struct odb_lock *odb_lock(TALLOC_CTX *mem_ctx,
 */
 _PUBLIC_ NTSTATUS odb_open_file(struct odb_lock *lck, void *file_handle,
                                uint32_t stream_id, uint32_t share_access, 
-                               uint32_t access_mask, BOOL delete_on_close,
+                               uint32_t access_mask, bool delete_on_close,
                                const char *path, 
                                uint32_t oplock_level, uint32_t *oplock_granted)
 {
@@ -138,7 +139,7 @@ _PUBLIC_ NTSTATUS odb_rename(struct odb_lock *lck, const char *path)
 /*
   update delete on close flag on an open file
 */
-_PUBLIC_ NTSTATUS odb_set_delete_on_close(struct odb_lock *lck, BOOL del_on_close)
+_PUBLIC_ NTSTATUS odb_set_delete_on_close(struct odb_lock *lck, bool del_on_close)
 {
        return ops->odb_set_delete_on_close(lck, del_on_close);
 }
@@ -148,7 +149,7 @@ _PUBLIC_ NTSTATUS odb_set_delete_on_close(struct odb_lock *lck, BOOL del_on_clos
   people still have the file open
 */
 _PUBLIC_ NTSTATUS odb_get_delete_on_close(struct odb_context *odb, 
-                                         DATA_BLOB *key, BOOL *del_on_close, 
+                                         DATA_BLOB *key, bool *del_on_close, 
                                          int *open_count, char **path)
 {
        return ops->odb_get_delete_on_close(odb, key, del_on_close, open_count, path);
index 0bfe6e4eb354d849ea67751bf5d4888f0fe00819..a037e7e47eaf53ea9d6f05789b2f2ebd3ae8dd6b 100644 (file)
 #include "ntvfs/ntvfs.h"
 #include "ntvfs/common/ntvfs_common.h"
 #include "cluster/cluster.h"
+#include "param/param.h"
 
 struct odb_context {
        struct tdb_wrap *w;
        struct ntvfs_context *ntvfs_ctx;
-       BOOL oplocks;
+       bool oplocks;
 };
 
 /*
@@ -87,7 +88,7 @@ static struct odb_context *odb_tdb_init(TALLOC_CTX *mem_ctx,
        odb->ntvfs_ctx = ntvfs_ctx;
 
        /* leave oplocks disabled by default until the code is working */
-       odb->oplocks = lp_parm_bool(-1, "opendb", "oplocks", False);
+       odb->oplocks = lp_parm_bool(global_loadparm, NULL, "opendb", "oplocks", false);
 
        return odb;
 }
@@ -265,7 +266,7 @@ static NTSTATUS odb_oplock_break_send(struct odb_context *odb, struct opendb_ent
 */
 static NTSTATUS odb_tdb_open_file(struct odb_lock *lck, void *file_handle,
                                  uint32_t stream_id, uint32_t share_access, 
-                                 uint32_t access_mask, BOOL delete_on_close,
+                                 uint32_t access_mask, bool delete_on_close,
                                  const char *path, 
                                  uint32_t oplock_level, uint32_t *oplock_granted)
 {
@@ -275,7 +276,7 @@ static NTSTATUS odb_tdb_open_file(struct odb_lock *lck, void *file_handle,
        struct opendb_file file;
        NTSTATUS status;
 
-       if (odb->oplocks == False) {
+       if (odb->oplocks == false) {
                oplock_level = OPLOCK_NONE;
        }
 
@@ -406,7 +407,7 @@ static NTSTATUS odb_tdb_close_file(struct odb_lock *lck, void *file_handle)
                if (file_handle == file.entries[i].file_handle &&
                    cluster_id_equal(&odb->ntvfs_ctx->server_id, &file.entries[i].server)) {
                        if (file.entries[i].delete_on_close) {
-                               file.delete_on_close = True;
+                               file.delete_on_close = true;
                        }
                        if (i < file.num_entries-1) {
                                memmove(file.entries+i, file.entries+i+1, 
@@ -493,7 +494,7 @@ static NTSTATUS odb_tdb_rename(struct odb_lock *lck, const char *path)
 /*
   update delete on close flag on an open file
 */
-static NTSTATUS odb_tdb_set_delete_on_close(struct odb_lock *lck, BOOL del_on_close)
+static NTSTATUS odb_tdb_set_delete_on_close(struct odb_lock *lck, bool del_on_close)
 {
        NTSTATUS status;
        struct opendb_file file;
@@ -511,7 +512,7 @@ static NTSTATUS odb_tdb_set_delete_on_close(struct odb_lock *lck, BOOL del_on_cl
   people still have the file open
 */
 static NTSTATUS odb_tdb_get_delete_on_close(struct odb_context *odb, 
-                                           DATA_BLOB *key, BOOL *del_on_close, 
+                                           DATA_BLOB *key, bool *del_on_close, 
                                            int *open_count, char **path)
 {
        NTSTATUS status;
@@ -524,7 +525,7 @@ static NTSTATUS odb_tdb_get_delete_on_close(struct odb_context *odb,
        status = odb_pull_record(lck, &file);
        if (NT_STATUS_EQUAL(NT_STATUS_OBJECT_NAME_NOT_FOUND, status)) {
                talloc_free(lck);
-               (*del_on_close) = False;
+               (*del_on_close) = false;
                return NT_STATUS_OK;
        }
        if (!NT_STATUS_IS_OK(status)) {
@@ -540,7 +541,7 @@ static NTSTATUS odb_tdb_get_delete_on_close(struct odb_context *odb,
                *path = talloc_strdup(odb, file.path);
                NT_STATUS_HAVE_NO_MEMORY(*path);
                if (file.num_entries == 1 && file.entries[0].delete_on_close) {
-                       (*del_on_close) = True;
+                       (*del_on_close) = true;
                }
        }
 
index fbac82a305777ffd958dc7c38c38ab95f5bf1405..fc3c74ca6c7fca912395c1177e708f090945932b 100644 (file)
@@ -669,7 +669,7 @@ static NTSTATUS ipc_lpq(struct ntvfs_module_context *ntvfs,
 static NTSTATUS ipc_search_first(struct ntvfs_module_context *ntvfs,
                          struct ntvfs_request *req, union smb_search_first *io,
                          void *search_private, 
-                         BOOL (*callback)(void *, const union smb_search_data *))
+                         bool (*callback)(void *, const union smb_search_data *))
 {
        return NT_STATUS_ACCESS_DENIED;
 }
@@ -680,7 +680,7 @@ static NTSTATUS ipc_search_first(struct ntvfs_module_context *ntvfs,
 static NTSTATUS ipc_search_next(struct ntvfs_module_context *ntvfs,
                         struct ntvfs_request *req, union smb_search_next *io,
                         void *search_private, 
-                        BOOL (*callback)(void *, const union smb_search_data *))
+                        bool (*callback)(void *, const union smb_search_data *))
 {
        return NT_STATUS_ACCESS_DENIED;
 }
index 9379419c50d86a93fe9e7be4f6b5e4d1c1b8e7e9..987227a0b7d2347671f29aeb3bdbfb9bbe79bc2d 100644 (file)
@@ -841,7 +841,7 @@ static void nbench_search_first_send(struct ntvfs_request *req)
 static NTSTATUS nbench_search_first(struct ntvfs_module_context *ntvfs,
                                    struct ntvfs_request *req, union smb_search_first *io, 
                                    void *search_private, 
-                                   BOOL (*callback)(void *, const union smb_search_data *))
+                                   bool (*callback)(void *, const union smb_search_data *))
 {
        NTSTATUS status;
 
@@ -863,7 +863,7 @@ static void nbench_search_next_send(struct ntvfs_request *req)
 static NTSTATUS nbench_search_next(struct ntvfs_module_context *ntvfs,
                                   struct ntvfs_request *req, union smb_search_next *io, 
                                   void *search_private, 
-                                  BOOL (*callback)(void *, const union smb_search_data *))
+                                  bool (*callback)(void *, const union smb_search_data *))
 {
        NTSTATUS status;
 
index 03c5aff01c7cb9310063ec08f0989d9e4430b716..20197a4ba9f612f319ce7623d598cb6b0cf961c9 100644 (file)
@@ -26,6 +26,7 @@
 #include "lib/util/dlinklist.h"
 #include "build.h"
 #include "ntvfs/ntvfs.h"
+#include "param/param.h"
 
 /* the list of currently registered NTVFS backends, note that there
  * can be more than one backend with the same name, as long as they
@@ -112,7 +113,7 @@ _PUBLIC_ const struct ntvfs_critical_sizes *ntvfs_interface_version(void)
        return &critical_sizes;
 }
 
-_PUBLIC_ BOOL ntvfs_interface_differs(const struct ntvfs_critical_sizes *const iface)
+_PUBLIC_ bool ntvfs_interface_differs(const struct ntvfs_critical_sizes *const iface)
 {
        /* The comparison would be easier with memcmp, but compiler-interset
         * alignment padding is not guaranteed to be zeroed.
@@ -121,28 +122,28 @@ _PUBLIC_ BOOL ntvfs_interface_differs(const struct ntvfs_critical_sizes *const i
 #define FIELD_DIFFERS(field) (iface->field != critical_sizes.field)
 
        if (FIELD_DIFFERS(interface_version))
-               return True;
+               return true;
 
        if (FIELD_DIFFERS(sizeof_ntvfs_critical_sizes))
-               return True;
+               return true;
 
        if (FIELD_DIFFERS(sizeof_ntvfs_context))
-               return True;
+               return true;
 
        if (FIELD_DIFFERS(sizeof_ntvfs_module_context))
-               return True;
+               return true;
 
        if (FIELD_DIFFERS(sizeof_ntvfs_ops))
-               return True;
+               return true;
 
        if (FIELD_DIFFERS(sizeof_ntvfs_async_state))
-               return True;
+               return true;
 
        if (FIELD_DIFFERS(sizeof_ntvfs_request))
-               return True;
+               return true;
 
        /* Versions match. */
-       return False;
+       return false;
 
 #undef FIELD_DIFFERS
 }
@@ -199,7 +200,7 @@ NTSTATUS ntvfs_init_connection(TALLOC_CTX *mem_ctx, struct share_config *scfg, e
 NTSTATUS ntvfs_init(void)
 {
        init_module_fn static_init[] = STATIC_ntvfs_MODULES;
-       init_module_fn *shared_init = load_samba_modules(NULL, "ntvfs");
+       init_module_fn *shared_init = load_samba_modules(NULL, global_loadparm, "ntvfs");
 
        run_init_functions(static_init);
        run_init_functions(shared_init);
index 8ed99ce3f1876b77dca4dac551283d41d9ce7a30..7708f4fc807e0e026c4824cb6247079f3d0ca747 100644 (file)
@@ -116,21 +116,21 @@ static NTSTATUS ntvfs_map_async_finish(struct ntvfs_request *req, NTSTATUS statu
   see if a filename ends in EXE COM DLL or SYM. This is needed for the
   DENY_DOS mapping for OpenX
 */
-BOOL is_exe_filename(const char *fname)
+bool is_exe_filename(const char *fname)
 {
        char *p;
        p = strrchr(fname, '.');
        if (!p) {
-               return False;
+               return false;
        }
        p++;
        if (strcasecmp(p, "EXE") == 0 ||
            strcasecmp(p, "COM") == 0 ||
            strcasecmp(p, "DLL") == 0 ||
            strcasecmp(p, "SYM") == 0) {
-               return True;
+               return true;
        }
-       return False;
+       return false;
 }
 
 
@@ -1247,7 +1247,7 @@ _PUBLIC_ NTSTATUS ntvfs_map_read(struct ntvfs_module_context *ntvfs,
        }
 
        rd2->readx.level = RAW_READ_READX;
-       rd2->readx.in.read_for_execute = False;
+       rd2->readx.in.read_for_execute = false;
 
        switch (rd->generic.level) {
        case RAW_READ_READX:
index 74fb815359d89edbdd2c88fa3c3456fcaf7f7372..3bd2859388e0da1cdb42b523957c63311e6eaba2 100644 (file)
@@ -149,7 +149,7 @@ _PUBLIC_ NTSTATUS ntvfs_copy(struct ntvfs_request *req, struct smb_copy *cp)
 
 /* directory search */
 _PUBLIC_ NTSTATUS ntvfs_search_first(struct ntvfs_request *req, union smb_search_first *io, void *private,
-                                    BOOL ntvfs_callback(void *private, const union smb_search_data *file))
+                                    bool ntvfs_callback(void *private, const union smb_search_data *file))
 {
        struct ntvfs_module_context *ntvfs = req->ctx->modules;
        if (!ntvfs->ops->search_first) {
@@ -159,7 +159,7 @@ _PUBLIC_ NTSTATUS ntvfs_search_first(struct ntvfs_request *req, union smb_search
 }
 
 _PUBLIC_ NTSTATUS ntvfs_search_next(struct ntvfs_request *req, union smb_search_next *io, void *private,
-                                   BOOL ntvfs_callback(void *private, const union smb_search_data *file))
+                                   bool ntvfs_callback(void *private, const union smb_search_data *file))
 {
        struct ntvfs_module_context *ntvfs = req->ctx->modules;
        if (!ntvfs->ops->search_next) {
@@ -469,7 +469,7 @@ _PUBLIC_ NTSTATUS ntvfs_next_open(struct ntvfs_module_context *ntvfs,
 _PUBLIC_ NTSTATUS ntvfs_next_search_first(struct ntvfs_module_context *ntvfs, 
                                          struct ntvfs_request *req,
                                          union smb_search_first *io, void *private,
-                                         BOOL (*callback)(void *private, const union smb_search_data *file))
+                                         bool (*callback)(void *private, const union smb_search_data *file))
 {
        if (!ntvfs->next || !ntvfs->next->ops->search_first) {
                return NT_STATUS_NOT_IMPLEMENTED;
@@ -480,7 +480,7 @@ _PUBLIC_ NTSTATUS ntvfs_next_search_first(struct ntvfs_module_context *ntvfs,
 _PUBLIC_ NTSTATUS ntvfs_next_search_next(struct ntvfs_module_context *ntvfs, 
                                         struct ntvfs_request *req,
                                         union smb_search_next *io, void *private,
-                                        BOOL (*callback)(void *private, const union smb_search_data *file))
+                                        bool (*callback)(void *private, const union smb_search_data *file))
 {
        if (!ntvfs->next || !ntvfs->next->ops->search_next) {
                return NT_STATUS_NOT_IMPLEMENTED;
index 3158bdf1fd21a2deae51a781f5b400a71e049fbf..7432ac2c13dbacd2be2061f10397b9e88c734705 100644 (file)
@@ -112,7 +112,7 @@ _PUBLIC_ NTSTATUS ntvfs_handle_set_backend_data(struct ntvfs_handle *h,
                                                TALLOC_CTX *private_data)
 {
        struct ntvfs_handle_data *d;
-       BOOL first_time = h->backend_data?False:True;
+       bool first_time = h->backend_data?false:true;
 
        for (d=h->backend_data; d; d = d->next) {
                if (d->owner != ntvfs) continue;
index 4302b7f890fbd24852f6763a6df4d72f8b9650ce..f19dc1f41fa332a6b735fa3f6264e32bc5abaf2d 100644 (file)
@@ -365,7 +365,7 @@ NTSTATUS pvfs_acl_query(struct pvfs_state *pvfs,
 /*
   check the read only bit against any of the write access bits
 */
-static BOOL pvfs_read_only(struct pvfs_state *pvfs, uint32_t access_mask)
+static bool pvfs_read_only(struct pvfs_state *pvfs, uint32_t access_mask)
 {
        if ((pvfs->flags & PVFS_FLAG_READONLY) &&
            (access_mask & (SEC_FILE_WRITE_DATA |
@@ -376,9 +376,9 @@ static BOOL pvfs_read_only(struct pvfs_state *pvfs, uint32_t access_mask)
                            SEC_STD_WRITE_DAC | 
                            SEC_STD_WRITE_OWNER | 
                            SEC_DIR_DELETE_CHILD))) {
-               return True;
+               return true;
        }
-       return False;
+       return false;
 }
 
 /*
@@ -548,24 +548,24 @@ NTSTATUS pvfs_access_check_parent(struct pvfs_state *pvfs,
 /*
   determine if an ACE is inheritable
 */
-static BOOL pvfs_inheritable_ace(struct pvfs_state *pvfs,
+static bool pvfs_inheritable_ace(struct pvfs_state *pvfs,
                                 const struct security_ace *ace,
-                                BOOL container)
+                                bool container)
 {
        if (!container) {
                return (ace->flags & SEC_ACE_FLAG_OBJECT_INHERIT) != 0;
        }
 
        if (ace->flags & SEC_ACE_FLAG_CONTAINER_INHERIT) {
-               return True;
+               return true;
        }
 
        if ((ace->flags & SEC_ACE_FLAG_OBJECT_INHERIT) &&
            !(ace->flags & SEC_ACE_FLAG_NO_PROPAGATE_INHERIT)) {
-               return True;
+               return true;
        }
 
-       return False;
+       return false;
 }
 
 /*
@@ -576,7 +576,7 @@ static BOOL pvfs_inheritable_ace(struct pvfs_state *pvfs,
 static NTSTATUS pvfs_acl_inherit_aces(struct pvfs_state *pvfs, 
                                      struct security_descriptor *parent_sd,
                                      struct security_descriptor *sd,
-                                     BOOL container)
+                                     bool container)
 {
        int i;
        
@@ -663,7 +663,7 @@ NTSTATUS pvfs_acl_inherit(struct pvfs_state *pvfs,
        NTSTATUS status;
        struct pvfs_filename *parent;
        struct security_descriptor *parent_sd, *sd;
-       BOOL container;
+       bool container;
 
        /* form the parents path */
        status = pvfs_resolve_parent(pvfs, req, name, &parent);
@@ -716,7 +716,7 @@ NTSTATUS pvfs_acl_inherit(struct pvfs_state *pvfs,
 
        sd->type |= SEC_DESC_DACL_PRESENT;
 
-       container = (name->dos.attrib & FILE_ATTRIBUTE_DIRECTORY) ? True:False;
+       container = (name->dos.attrib & FILE_ATTRIBUTE_DIRECTORY) ? true:false;
 
        /* fill in the aces from the parent */
        status = pvfs_acl_inherit_aces(pvfs, parent_sd, sd, container);
index e54cb847f5201dfb90f017848117be97ebb4c41e..77f19c358503809f56c085bca9020aefcb2defd1 100644 (file)
@@ -33,13 +33,13 @@ struct name_cache_entry {
 
 struct pvfs_dir {
        struct pvfs_state *pvfs;
-       BOOL no_wildcard;
+       bool no_wildcard;
        char *single_name;
        const char *pattern;
        off_t offset;
        DIR *dir;
        const char *unix_path;
-       BOOL end_of_search;
+       bool end_of_search;
        struct name_cache_entry *name_cache;
        uint32_t name_cache_index;
 };
@@ -69,8 +69,8 @@ static NTSTATUS pvfs_list_no_wildcard(struct pvfs_state *pvfs, struct pvfs_filen
        }
 
        dir->pvfs = pvfs;
-       dir->no_wildcard = True;
-       dir->end_of_search = False;
+       dir->no_wildcard = true;
+       dir->end_of_search = false;
        dir->unix_path = talloc_strdup(dir, name->full_name);
        if (!dir->unix_path) {
                return NT_STATUS_NO_MEMORY;
@@ -145,8 +145,8 @@ NTSTATUS pvfs_list_start(struct pvfs_state *pvfs, struct pvfs_filename *name,
        }
 
        dir->pvfs = pvfs;
-       dir->no_wildcard = False;
-       dir->end_of_search = False;
+       dir->no_wildcard = false;
+       dir->end_of_search = false;
        dir->offset = DIR_OFFSET_DOT;
        dir->name_cache = talloc_zero_array(dir, 
                                            struct name_cache_entry, 
@@ -187,7 +187,7 @@ const char *pvfs_list_next(struct pvfs_dir *dir, off_t *ofs)
 
        /* non-wildcard searches are easy */
        if (dir->no_wildcard) {
-               dir->end_of_search = True;
+               dir->end_of_search = true;
                if (*ofs != 0) return NULL;
                (*ofs)++;
                return dir->single_name;
@@ -246,7 +246,7 @@ const char *pvfs_list_next(struct pvfs_dir *dir, off_t *ofs)
                return dname;
        }
 
-       dir->end_of_search = True;
+       dir->end_of_search = true;
        return NULL;
 }
 
@@ -259,9 +259,9 @@ const char *pvfs_list_unix_path(struct pvfs_dir *dir)
 }
 
 /*
-  return True if end of search has been reached
+  return true if end of search has been reached
 */
-BOOL pvfs_list_eos(struct pvfs_dir *dir, off_t ofs)
+bool pvfs_list_eos(struct pvfs_dir *dir, off_t ofs)
 {
        return dir->end_of_search;
 }
@@ -274,7 +274,7 @@ NTSTATUS pvfs_list_seek(struct pvfs_dir *dir, const char *name, off_t *ofs)
        struct dirent *de;
        int i;
 
-       dir->end_of_search = False;
+       dir->end_of_search = false;
 
        if (ISDOT(name)) {
                dir->offset = DIR_OFFSET_DOTDOT;
@@ -313,7 +313,7 @@ NTSTATUS pvfs_list_seek(struct pvfs_dir *dir, const char *name, off_t *ofs)
                }
        }
 
-       dir->end_of_search = True;
+       dir->end_of_search = true;
 
        return NT_STATUS_OBJECT_NAME_NOT_FOUND;
 }
@@ -326,7 +326,7 @@ NTSTATUS pvfs_list_seek_ofs(struct pvfs_dir *dir, uint32_t resume_key, off_t *of
        struct dirent *de;
        int i;
 
-       dir->end_of_search = False;
+       dir->end_of_search = false;
 
        if (resume_key == DIR_OFFSET_DOT) {
                *ofs = DIR_OFFSET_DOTDOT;
@@ -341,7 +341,7 @@ NTSTATUS pvfs_list_seek_ofs(struct pvfs_dir *dir, uint32_t resume_key, off_t *of
        if (resume_key == DIR_OFFSET_BASE) {
                rewinddir(dir->dir);
                if ((de=readdir(dir->dir)) == NULL) {
-                       dir->end_of_search = True;
+                       dir->end_of_search = true;
                        return NT_STATUS_OBJECT_NAME_NOT_FOUND;
                }
                *ofs = telldir(dir->dir) + DIR_OFFSET_BASE;
@@ -374,7 +374,7 @@ NTSTATUS pvfs_list_seek_ofs(struct pvfs_dir *dir, uint32_t resume_key, off_t *of
                }
        }
 
-       dir->end_of_search = True;
+       dir->end_of_search = true;
 
        return NT_STATUS_OBJECT_NAME_NOT_FOUND;
 }
@@ -383,21 +383,21 @@ NTSTATUS pvfs_list_seek_ofs(struct pvfs_dir *dir, uint32_t resume_key, off_t *of
 /*
   see if a directory is empty
 */
-BOOL pvfs_directory_empty(struct pvfs_state *pvfs, struct pvfs_filename *name)
+bool pvfs_directory_empty(struct pvfs_state *pvfs, struct pvfs_filename *name)
 {
        struct dirent *de;
        DIR *dir = opendir(name->full_name);
        if (dir == NULL) {
-               return True;
+               return true;
        }
 
        while ((de = readdir(dir))) {
                if (!ISDOT(de->d_name) && !ISDOTDOT(de->d_name)) {
                        closedir(dir);
-                       return False;
+                       return false;
                }
        }
 
        closedir(dir);
-       return True;
+       return true;
 }
index 989e3c56a4fafcdd97791a60d5df618ccedd65c5..b9bb58c71dee8c7019132c987529252f71a69ecd 100644 (file)
@@ -104,7 +104,7 @@ static void pvfs_pending_lock_continue(void *private, enum pvfs_wait_notice reas
        enum brl_type rw;
        NTSTATUS status;
        int i;
-       BOOL timed_out;
+       bool timed_out;
 
        timed_out = (reason != PVFS_WAIT_EVENT);
 
@@ -136,7 +136,7 @@ static void pvfs_pending_lock_continue(void *private, enum pvfs_wait_notice reas
        }
        if (NT_STATUS_IS_OK(status)) {
                f->lock_count++;
-               timed_out = False;
+               timed_out = false;
        }
 
        /* if we have failed and timed out, or succeeded, then we
index 3e289a09485f764bfdf20236fb53322e68eb3b1c..210f94939569ee97a1ab4ac6697e91af596b5228 100644 (file)
@@ -58,7 +58,7 @@ static void pvfs_notify_send_next(struct event_context *ev, struct timed_event *
   send a reply to a pending notify request
 */
 static void pvfs_notify_send(struct pvfs_notify_buffer *notify_buffer, 
-                            NTSTATUS status, BOOL immediate)
+                            NTSTATUS status, bool immediate)
 {
        struct notify_pending *pending = notify_buffer->pending;
        struct ntvfs_request *req;
@@ -118,7 +118,7 @@ static int pvfs_notify_destructor(struct pvfs_notify_buffer *n)
 {
        notify_remove(n->f->pvfs->notify_context, n);
        n->f->notify_buffer = NULL;
-       pvfs_notify_send(n, NT_STATUS_OK, True);
+       pvfs_notify_send(n, NT_STATUS_OK, true);
        return 0;
 }
 
@@ -161,7 +161,7 @@ static void pvfs_notify_callback(void *private, const struct notify_event *ev)
 
        /* send what we have, unless its the first part of a rename */
        if (ev->action != NOTIFY_ACTION_OLD_NAME) {
-               pvfs_notify_send(n, NT_STATUS_OK, True);
+               pvfs_notify_send(n, NT_STATUS_OK, true);
        }
 }
 
@@ -169,7 +169,7 @@ static void pvfs_notify_callback(void *private, const struct notify_event *ev)
   setup a notify buffer on a directory handle
 */
 static NTSTATUS pvfs_notify_setup(struct pvfs_state *pvfs, struct pvfs_file *f, 
-                                 uint32_t buffer_size, uint32_t filter, BOOL recursive)
+                                 uint32_t buffer_size, uint32_t filter, bool recursive)
 {
        NTSTATUS status;
        struct notify_entry e;
@@ -206,9 +206,9 @@ static void pvfs_notify_end(void *private, enum pvfs_wait_notice reason)
        struct pvfs_notify_buffer *notify_buffer = talloc_get_type(private, 
                                                                   struct pvfs_notify_buffer);
        if (reason == PVFS_WAIT_CANCEL) {
-               pvfs_notify_send(notify_buffer, NT_STATUS_CANCELLED, False);
+               pvfs_notify_send(notify_buffer, NT_STATUS_CANCELLED, false);
        } else {
-               pvfs_notify_send(notify_buffer, NT_STATUS_OK, True);
+               pvfs_notify_send(notify_buffer, NT_STATUS_OK, true);
        }
 }
 
@@ -277,7 +277,7 @@ NTSTATUS pvfs_notify(struct ntvfs_module_context *ntvfs,
        }
 
        req->async_states->state |= NTVFS_ASYNC_STATE_ASYNC;
-       pvfs_notify_send(f->notify_buffer, NT_STATUS_OK, False);
+       pvfs_notify_send(f->notify_buffer, NT_STATUS_OK, false);
 
        return NT_STATUS_OK;
 }
index 269df13069da5315c9ca81c943a620f20f28d392..8558f0476a9991632c8d3a8964b79a976e36c802 100644 (file)
@@ -186,7 +186,7 @@ static NTSTATUS pvfs_open_directory(struct pvfs_state *pvfs,
        uint32_t create_action;
        uint32_t access_mask = io->generic.in.access_mask;
        struct odb_lock *lck;
-       BOOL del_on_close;
+       bool del_on_close;
        uint32_t create_options;
        uint32_t share_access;
 
@@ -268,14 +268,14 @@ static NTSTATUS pvfs_open_directory(struct pvfs_state *pvfs,
        f->handle->seek_offset       = 0;
        f->handle->position          = 0;
        f->handle->mode              = 0;
-       f->handle->sticky_write_time = False;
-       f->handle->open_completed    = False;
+       f->handle->sticky_write_time = false;
+       f->handle->open_completed    = false;
 
        if ((create_options & NTCREATEX_OPTIONS_DELETE_ON_CLOSE) &&
            pvfs_directory_empty(pvfs, f->handle->name)) {
-               del_on_close = True;
+               del_on_close = true;
        } else {
-               del_on_close = False;
+               del_on_close = false;
        }
 
        if (name->exists) {
@@ -305,7 +305,7 @@ static NTSTATUS pvfs_open_directory(struct pvfs_state *pvfs,
                        return status;
                }
 
-               f->handle->have_opendb_entry = True;
+               f->handle->have_opendb_entry = true;
        }
 
        DLIST_ADD(pvfs->files.list, f);
@@ -357,7 +357,7 @@ static NTSTATUS pvfs_open_directory(struct pvfs_state *pvfs,
                        goto cleanup_delete;
                }
 
-               f->handle->have_opendb_entry = True;
+               f->handle->have_opendb_entry = true;
 
                create_action = NTCREATEX_ACTION_CREATED;
 
@@ -379,7 +379,7 @@ static NTSTATUS pvfs_open_directory(struct pvfs_state *pvfs,
                goto cleanup_delete;
        }
 
-       f->handle->open_completed = True;
+       f->handle->open_completed = true;
 
        io->generic.out.oplock_level  = OPLOCK_NONE;
        io->generic.out.file.ntvfs    = h;
@@ -552,7 +552,7 @@ static NTSTATUS pvfs_create_file(struct pvfs_state *pvfs,
        uint32_t access_mask = io->generic.in.access_mask;
        mode_t mode;
        uint32_t attrib;
-       BOOL del_on_close;
+       bool del_on_close;
        struct pvfs_filename *parent;
        uint32_t oplock_level = OPLOCK_NONE, oplock_granted;
 
@@ -656,9 +656,9 @@ static NTSTATUS pvfs_create_file(struct pvfs_state *pvfs,
        }
 
        if (create_options & NTCREATEX_OPTIONS_DELETE_ON_CLOSE) {
-               del_on_close = True;
+               del_on_close = true;
        } else {
-               del_on_close = False;
+               del_on_close = false;
        }
 
        if (pvfs->flags & PVFS_FLAG_FAKE_OPLOCKS) {
@@ -702,9 +702,9 @@ static NTSTATUS pvfs_create_file(struct pvfs_state *pvfs,
        f->handle->seek_offset       = 0;
        f->handle->position          = 0;
        f->handle->mode              = 0;
-       f->handle->have_opendb_entry = True;
-       f->handle->sticky_write_time = False;
-       f->handle->open_completed    = False;
+       f->handle->have_opendb_entry = true;
+       f->handle->sticky_write_time = false;
+       f->handle->open_completed    = false;
 
        DLIST_ADD(pvfs->files.list, f);
 
@@ -733,7 +733,7 @@ static NTSTATUS pvfs_create_file(struct pvfs_state *pvfs,
                goto cleanup_delete;
        }
 
-       f->handle->open_completed = True;
+       f->handle->open_completed = true;
 
        notify_trigger(pvfs->notify_context, 
                       NOTIFY_ACTION_ADDED, 
@@ -989,8 +989,8 @@ NTSTATUS pvfs_open(struct ntvfs_module_context *ntvfs,
        uint32_t create_options;
        uint32_t share_access;
        uint32_t access_mask;
-       BOOL del_on_close;
-       BOOL stream_existed, stream_truncate=False;
+       bool del_on_close;
+       bool stream_existed, stream_truncate=false;
        uint32_t oplock_level = OPLOCK_NONE, oplock_granted;
 
        /* use the generic mapping code to avoid implementing all the
@@ -1035,7 +1035,7 @@ NTSTATUS pvfs_open(struct ntvfs_module_context *ntvfs,
                if (name->stream_name == NULL) {
                        flags = O_TRUNC;
                } else {
-                       stream_truncate = True;
+                       stream_truncate = true;
                }
                break;
 
@@ -1053,7 +1053,7 @@ NTSTATUS pvfs_open(struct ntvfs_module_context *ntvfs,
                if (name->stream_name == NULL) {
                        flags = O_TRUNC;
                } else {
-                       stream_truncate = True;
+                       stream_truncate = true;
                }
                break;
 
@@ -1133,9 +1133,9 @@ NTSTATUS pvfs_open(struct ntvfs_module_context *ntvfs,
        f->handle->seek_offset       = 0;
        f->handle->position          = 0;
        f->handle->mode              = 0;
-       f->handle->have_opendb_entry = False;
-       f->handle->sticky_write_time = False;
-       f->handle->open_completed    = False;
+       f->handle->have_opendb_entry = false;
+       f->handle->sticky_write_time = false;
+       f->handle->open_completed    = false;
 
        /* form the lock context used for byte range locking and
           opendb locking */
@@ -1172,9 +1172,9 @@ NTSTATUS pvfs_open(struct ntvfs_module_context *ntvfs,
         */
        if (create_options & NTCREATEX_OPTIONS_DELETE_ON_CLOSE &&
            req->ctx->protocol == PROTOCOL_SMB2) {
-               del_on_close = True;
+               del_on_close = true;
        } else {
-               del_on_close = False;
+               del_on_close = false;
        }
 
        if (pvfs->flags & PVFS_FLAG_FAKE_OPLOCKS) {
@@ -1206,7 +1206,7 @@ NTSTATUS pvfs_open(struct ntvfs_module_context *ntvfs,
                oplock_granted = OPLOCK_BATCH;
        }
 
-       f->handle->have_opendb_entry = True;
+       f->handle->have_opendb_entry = true;
 
        if (access_mask & (SEC_FILE_WRITE_DATA | SEC_FILE_APPEND_DATA)) {
                flags |= O_RDWR;
@@ -1273,7 +1273,7 @@ NTSTATUS pvfs_open(struct ntvfs_module_context *ntvfs,
 
        /* mark the open as having completed fully, so delete on close
           can now be used */
-       f->handle->open_completed     = True;
+       f->handle->open_completed     = true;
 
        io->generic.out.oplock_level  = oplock_granted;
        io->generic.out.file.ntvfs    = h;
@@ -1379,7 +1379,7 @@ NTSTATUS pvfs_exit(struct ntvfs_module_context *ntvfs,
 */
 NTSTATUS pvfs_set_delete_on_close(struct pvfs_state *pvfs,
                                  struct ntvfs_request *req, 
-                                 struct pvfs_file *f, BOOL del_on_close)
+                                 struct pvfs_file *f, bool del_on_close)
 {
        struct odb_lock *lck;
        NTSTATUS status;
@@ -1532,17 +1532,17 @@ NTSTATUS pvfs_can_stat(struct pvfs_state *pvfs,
 /*
   determine if delete on close is set on 
 */
-BOOL pvfs_delete_on_close_set(struct pvfs_state *pvfs, struct pvfs_file_handle *h, 
+bool pvfs_delete_on_close_set(struct pvfs_state *pvfs, struct pvfs_file_handle *h, 
                              int *open_count, char **path)
 {
        NTSTATUS status;
-       BOOL del_on_close;
+       bool del_on_close;
 
        status = odb_get_delete_on_close(pvfs->odb_context, &h->odb_locking_key, 
                                         &del_on_close, open_count, path);
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(1,("WARNING: unable to determine delete on close status for open file\n"));
-               return False;
+               return false;
        }
 
        return del_on_close;
index fae5ec432c2bb608626882494dc7268964370041..8a7aa13351140ae9716baca71c4eed500bc9e364 100644 (file)
@@ -121,7 +121,7 @@ static NTSTATUS pvfs_case_search(struct pvfs_state *pvfs, struct pvfs_filename *
                        talloc_free(partial_name);
                        partial_name = test_name;
                        if (i == num_components - 1) {
-                               name->exists = True;
+                               name->exists = true;
                        }
                        continue;
                }
@@ -166,7 +166,7 @@ static NTSTATUS pvfs_case_search(struct pvfs_state *pvfs, struct pvfs_filename *
 
        if (!name->exists) {
                if (stat(partial_name, &name->st) == 0) {
-                       name->exists = True;
+                       name->exists = true;
                }
        }
 
@@ -229,7 +229,7 @@ static NTSTATUS pvfs_unix_path(struct pvfs_state *pvfs, const char *cifs_name,
        name->original_name = talloc_strdup(name, cifs_name);
        name->stream_name = NULL;
        name->stream_id = 0;
-       name->has_wildcard = False;
+       name->has_wildcard = false;
 
        while (*cifs_name == '\\') {
                cifs_name++;
@@ -291,7 +291,7 @@ static NTSTATUS pvfs_unix_path(struct pvfs_state *pvfs, const char *cifs_name,
                        if (!(flags & PVFS_RESOLVE_WILDCARD)) {
                                return NT_STATUS_OBJECT_NAME_INVALID;
                        }
-                       name->has_wildcard = True;
+                       name->has_wildcard = true;
                        break;
                case '/':
                case '|':
@@ -456,8 +456,8 @@ NTSTATUS pvfs_resolve_name(struct pvfs_state *pvfs, TALLOC_CTX *mem_ctx,
                return NT_STATUS_NO_MEMORY;
        }
 
-       (*name)->exists = False;
-       (*name)->stream_exists = False;
+       (*name)->exists = false;
+       (*name)->stream_exists = false;
 
        if (!(pvfs->fs_attribs & FS_ATTR_NAMED_STREAMS)) {
                flags &= ~PVFS_RESOLVE_STREAMS;
@@ -519,7 +519,7 @@ NTSTATUS pvfs_resolve_name(struct pvfs_state *pvfs, TALLOC_CTX *mem_ctx,
 
        /* if we can stat() the full name now then we are done */
        if (stat((*name)->full_name, &(*name)->st) == 0) {
-               (*name)->exists = True;
+               (*name)->exists = true;
                return pvfs_fill_dos_info(pvfs, *name, -1);
        }
 
@@ -558,9 +558,9 @@ NTSTATUS pvfs_resolve_partial(struct pvfs_state *pvfs, TALLOC_CTX *mem_ctx,
                return NT_STATUS_OBJECT_NAME_NOT_FOUND;
        }
 
-       (*name)->exists = True;
-       (*name)->stream_exists = True;
-       (*name)->has_wildcard = False;
+       (*name)->exists = true;
+       (*name)->stream_exists = true;
+       (*name)->has_wildcard = false;
        (*name)->original_name = talloc_strdup(*name, fname);
        (*name)->stream_name = NULL;
        (*name)->stream_id = 0;
@@ -608,7 +608,7 @@ NTSTATUS pvfs_resolve_name_fd(struct pvfs_state *pvfs, int fd,
                return NT_STATUS_UNEXPECTED_IO_ERROR;
        }
 
-       name->exists = True;
+       name->exists = true;
        
        return pvfs_fill_dos_info(pvfs, name, fd);
 }
@@ -650,9 +650,9 @@ NTSTATUS pvfs_resolve_parent(struct pvfs_state *pvfs, TALLOC_CTX *mem_ctx,
                return NT_STATUS_OBJECT_NAME_NOT_FOUND;
        }
 
-       (*name)->exists = True;
-       (*name)->stream_exists = True;
-       (*name)->has_wildcard = False;
+       (*name)->exists = true;
+       (*name)->stream_exists = true;
+       (*name)->has_wildcard = false;
        /* we can't get the correct 'original_name', but for the purposes
           of this call this is close enough */
        (*name)->original_name = talloc_reference(*name, child->original_name);
index cefcee6155bb051e9284a0eee9f17aafb83b6590..e47406dc09e46a116fe4e809075eee4f93af5882 100644 (file)
@@ -237,7 +237,7 @@ static NTSTATUS pvfs_search_fill(struct pvfs_state *pvfs, TALLOC_CTX *mem_ctx,
                                 enum smb_search_data_level level,
                                 uint_t *reply_count,
                                 void *search_private, 
-                                BOOL (*callback)(void *, const union smb_search_data *))
+                                bool (*callback)(void *, const union smb_search_data *))
 {
        struct pvfs_dir *dir = search->dir;
        NTSTATUS status;
@@ -313,7 +313,7 @@ static void pvfs_search_cleanup(struct pvfs_state *pvfs)
 static NTSTATUS pvfs_search_first_old(struct ntvfs_module_context *ntvfs,
                                      struct ntvfs_request *req, union smb_search_first *io, 
                                      void *search_private, 
-                                     BOOL (*callback)(void *, const union smb_search_data *))
+                                     bool (*callback)(void *, const union smb_search_data *))
 {
        struct pvfs_dir *dir;
        struct pvfs_state *pvfs = ntvfs->private_data;
@@ -403,7 +403,7 @@ static NTSTATUS pvfs_search_first_old(struct ntvfs_module_context *ntvfs,
 static NTSTATUS pvfs_search_next_old(struct ntvfs_module_context *ntvfs,
                                     struct ntvfs_request *req, union smb_search_next *io, 
                                     void *search_private, 
-                                    BOOL (*callback)(void *, const union smb_search_data *))
+                                    bool (*callback)(void *, const union smb_search_data *))
 {
        struct pvfs_state *pvfs = ntvfs->private_data;
        struct pvfs_search_state *search;
@@ -452,7 +452,7 @@ static NTSTATUS pvfs_search_next_old(struct ntvfs_module_context *ntvfs,
 static NTSTATUS pvfs_search_first_trans2(struct ntvfs_module_context *ntvfs,
                                         struct ntvfs_request *req, union smb_search_first *io, 
                                         void *search_private, 
-                                        BOOL (*callback)(void *, const union smb_search_data *))
+                                        bool (*callback)(void *, const union smb_search_data *))
 {
        struct pvfs_dir *dir;
        struct pvfs_state *pvfs = ntvfs->private_data;
@@ -548,7 +548,7 @@ static NTSTATUS pvfs_search_first_trans2(struct ntvfs_module_context *ntvfs,
 static NTSTATUS pvfs_search_next_trans2(struct ntvfs_module_context *ntvfs,
                                        struct ntvfs_request *req, union smb_search_next *io, 
                                        void *search_private, 
-                                       BOOL (*callback)(void *, const union smb_search_data *))
+                                       bool (*callback)(void *, const union smb_search_data *))
 {
        struct pvfs_state *pvfs = ntvfs->private_data;
        struct pvfs_search_state *search;
@@ -609,7 +609,7 @@ static NTSTATUS pvfs_search_next_trans2(struct ntvfs_module_context *ntvfs,
 static NTSTATUS pvfs_search_first_smb2(struct ntvfs_module_context *ntvfs,
                                       struct ntvfs_request *req, const struct smb2_find *io, 
                                       void *search_private, 
-                                      BOOL (*callback)(void *, const union smb_search_data *))
+                                      bool (*callback)(void *, const union smb_search_data *))
 {
        struct pvfs_dir *dir;
        struct pvfs_state *pvfs = ntvfs->private_data;
@@ -712,7 +712,7 @@ static NTSTATUS pvfs_search_first_smb2(struct ntvfs_module_context *ntvfs,
 static NTSTATUS pvfs_search_next_smb2(struct ntvfs_module_context *ntvfs,
                                      struct ntvfs_request *req, const struct smb2_find *io, 
                                      void *search_private, 
-                                     BOOL (*callback)(void *, const union smb_search_data *))
+                                     bool (*callback)(void *, const union smb_search_data *))
 {
        struct pvfs_state *pvfs = ntvfs->private_data;
        struct pvfs_search_state *search;
@@ -765,7 +765,7 @@ static NTSTATUS pvfs_search_next_smb2(struct ntvfs_module_context *ntvfs,
 NTSTATUS pvfs_search_first(struct ntvfs_module_context *ntvfs,
                           struct ntvfs_request *req, union smb_search_first *io, 
                           void *search_private, 
-                          BOOL (*callback)(void *, const union smb_search_data *))
+                          bool (*callback)(void *, const union smb_search_data *))
 {
        switch (io->generic.level) {
        case RAW_SEARCH_SEARCH:
@@ -787,7 +787,7 @@ NTSTATUS pvfs_search_first(struct ntvfs_module_context *ntvfs,
 NTSTATUS pvfs_search_next(struct ntvfs_module_context *ntvfs,
                          struct ntvfs_request *req, union smb_search_next *io, 
                          void *search_private, 
-                         BOOL (*callback)(void *, const union smb_search_data *))
+                         bool (*callback)(void *, const union smb_search_data *))
 {
        switch (io->generic.level) {
        case RAW_SEARCH_SEARCH:
index f20270c743fc427fe8a4989092858ceec8f16119..340913cd4dd0a578c099e1b7de27bfa28f9d7a2f 100644 (file)
@@ -323,7 +323,7 @@ NTSTATUS pvfs_setfileinfo(struct ntvfs_module_context *ntvfs,
                if (!null_nttime(info->basic_info.in.write_time)) {
                        newstats.dos.write_time = info->basic_info.in.write_time;
                        newstats.dos.flags |= XATTR_ATTRIB_FLAG_STICKY_WRITE_TIME;
-                       h->sticky_write_time = True;
+                       h->sticky_write_time = true;
                }
                if (!null_nttime(info->basic_info.in.change_time)) {
                        newstats.dos.change_time = info->basic_info.in.change_time;
index 5df4a57f9cbad0ec3db073c582edce6903420e36..1cbe287a4bd036913b2ab02bfb1fbb5df9a9e6e1 100644 (file)
@@ -22,6 +22,7 @@
 #include "includes.h"
 #include "system/locale.h"
 #include "vfs_posix.h"
+#include "param/param.h"
 
 /*
   this mangling scheme uses the following format
@@ -158,7 +159,7 @@ static const char *cache_lookup(struct pvfs_mangle_context *ctx, uint32_t hash)
    In this algorithm, mangled names use only pure ascii characters (no
    multi-byte) so we can avoid doing a UCS2 conversion 
  */
-static BOOL is_mangled_component(struct pvfs_mangle_context *ctx,
+static bool is_mangled_component(struct pvfs_mangle_context *ctx,
                                 const char *name, size_t len)
 {
        unsigned int i;
@@ -167,19 +168,19 @@ static BOOL is_mangled_component(struct pvfs_mangle_context *ctx,
 
        /* check the length */
        if (len > 12 || len < 8)
-               return False;
+               return false;
 
        /* the best distinguishing characteristic is the ~ */
        if (name[6] != '~')
-               return False;
+               return false;
 
        /* check extension */
        if (len > 8) {
                if (name[8] != '.')
-                       return False;
+                       return false;
                for (i=9; name[i] && i < len; i++) {
                        if (! FLAG_CHECK(name[i], FLAG_ASCII)) {
-                               return False;
+                               return false;
                        }
                }
        }
@@ -187,23 +188,23 @@ static BOOL is_mangled_component(struct pvfs_mangle_context *ctx,
        /* check lead characters */
        for (i=0;i<ctx->mangle_prefix;i++) {
                if (! FLAG_CHECK(name[i], FLAG_ASCII)) {
-                       return False;
+                       return false;
                }
        }
        
        /* check rest of hash */
        if (! FLAG_CHECK(name[7], FLAG_BASECHAR)) {
-               return False;
+               return false;
        }
        for (i=ctx->mangle_prefix;i<6;i++) {
                if (! FLAG_CHECK(name[i], FLAG_BASECHAR)) {
-                       return False;
+                       return false;
                }
        }
 
        M_DEBUG(10,("is_mangled_component %s (len %u) -> yes\n", name, (unsigned int)len));
 
-       return True;
+       return true;
 }
 
 
@@ -219,7 +220,7 @@ static BOOL is_mangled_component(struct pvfs_mangle_context *ctx,
    directory separators. It should return true if any component is
    mangled
  */
-static BOOL is_mangled(struct pvfs_mangle_context *ctx, const char *name)
+static bool is_mangled(struct pvfs_mangle_context *ctx, const char *name)
 {
        const char *p;
        const char *s;
@@ -228,7 +229,7 @@ static BOOL is_mangled(struct pvfs_mangle_context *ctx, const char *name)
 
        for (s=name; (p=strchr(s, '/')); s=p+1) {
                if (is_mangled_component(ctx, s, PTR_DIFF(p, s))) {
-                       return True;
+                       return true;
                }
        }
        
@@ -244,8 +245,8 @@ static BOOL is_mangled(struct pvfs_mangle_context *ctx, const char *name)
    simplifies things greatly (it means that we know the string won't
    get larger when converted from UNIX to DOS formats)
 */
-static BOOL is_8_3(struct pvfs_mangle_context *ctx,
-                  const char *name, BOOL check_case, BOOL allow_wildcards)
+static bool is_8_3(struct pvfs_mangle_context *ctx,
+                  const char *name, bool check_case, bool allow_wildcards)
 {
        int len, i;
        char *dot_p;
@@ -253,7 +254,7 @@ static BOOL is_8_3(struct pvfs_mangle_context *ctx,
        /* as a special case, the names '.' and '..' are allowable 8.3 names */
        if (name[0] == '.') {
                if (!name[1] || (name[1] == '.' && !name[2])) {
-                       return True;
+                       return true;
                }
        }
 
@@ -264,7 +265,7 @@ static BOOL is_8_3(struct pvfs_mangle_context *ctx,
         only be slower, it would be incorrect */
        len = strlen(name);
        if (len > 12)
-               return False;
+               return false;
 
        /* find the '.'. Note that once again we use the non-multibyte
            function */
@@ -274,7 +275,7 @@ static BOOL is_8_3(struct pvfs_mangle_context *ctx,
                /* if the name doesn't contain a '.' then its length
                    must be less than 8 */
                if (len > 8) {
-                       return False;
+                       return false;
                }
        } else {
                int prefix_len, suffix_len;
@@ -285,12 +286,12 @@ static BOOL is_8_3(struct pvfs_mangle_context *ctx,
                suffix_len = len - (prefix_len+1);
 
                if (prefix_len > 8 || suffix_len > 3 || suffix_len == 0) {
-                       return False;
+                       return false;
                }
 
                /* a 8.3 name cannot contain more than 1 '.' */
                if (strchr(dot_p+1, '.')) {
-                       return False;
+                       return false;
                }
        }
 
@@ -299,12 +300,12 @@ static BOOL is_8_3(struct pvfs_mangle_context *ctx,
                /* note that we may allow wildcard petterns! */
                if (!FLAG_CHECK(name[i], FLAG_ASCII|(allow_wildcards ? FLAG_WILDCARD : 0)) && 
                    name[i] != '.') {
-                       return False;
+                       return false;
                }
        }
 
        /* it is a good 8.3 name */
-       return True;
+       return true;
 }
 
 
@@ -360,7 +361,7 @@ static char *check_cache(struct pvfs_mangle_context *ctx,
 /*
   look for a DOS reserved name
 */
-static BOOL is_reserved_name(struct pvfs_mangle_context *ctx, const char *name)
+static bool is_reserved_name(struct pvfs_mangle_context *ctx, const char *name)
 {
        if (FLAG_CHECK(name[0], FLAG_POSSIBLE1) &&
            FLAG_CHECK(name[1], FLAG_POSSIBLE2) &&
@@ -370,12 +371,12 @@ static BOOL is_reserved_name(struct pvfs_mangle_context *ctx, const char *name)
                int i;
                for (i=0; reserved_names[i]; i++) {
                        if (strcasecmp(name, reserved_names[i]) == 0) {
-                               return True;
+                               return true;
                        }
                }
        }
 
-       return False;
+       return false;
 }
 
 
@@ -383,13 +384,13 @@ static BOOL is_reserved_name(struct pvfs_mangle_context *ctx, const char *name)
  See if a filename is a legal long filename.
  A filename ending in a '.' is not legal unless it's "." or "..". JRA.
 */
-static BOOL is_legal_name(struct pvfs_mangle_context *ctx, const char *name)
+static bool is_legal_name(struct pvfs_mangle_context *ctx, const char *name)
 {
        while (*name) {
                size_t c_size;
                codepoint_t c = next_codepoint(name, &c_size);
                if (c == INVALID_CODEPOINT) {
-                       return False;
+                       return false;
                }
                /* all high chars are OK */
                if (c >= 128) {
@@ -397,12 +398,12 @@ static BOOL is_legal_name(struct pvfs_mangle_context *ctx, const char *name)
                        continue;
                }
                if (FLAG_CHECK(c, FLAG_ILLEGAL)) {
-                       return False;
+                       return false;
                }
                name += c_size;
        }
 
-       return True;
+       return true;
 }
 
 /*
@@ -417,7 +418,7 @@ static BOOL is_legal_name(struct pvfs_mangle_context *ctx, const char *name)
   return NULL if we don't need to do any conversion
 */
 static char *name_map(struct pvfs_mangle_context *ctx,
-                     const char *name, BOOL need83, BOOL cache83)
+                     const char *name, bool need83, bool cache83)
 {
        char *dot_p;
        char lead_chars[7];
@@ -432,7 +433,7 @@ static char *name_map(struct pvfs_mangle_context *ctx,
        if (!is_reserved_name(ctx, name)) {
                /* if the name is already a valid 8.3 name then we don't need to 
                   do anything */
-               if (is_8_3(ctx, name, False, False)) {
+               if (is_8_3(ctx, name, false, false)) {
                        return NULL;
                }
 
@@ -613,7 +614,7 @@ NTSTATUS pvfs_mangle_init(struct pvfs_state *pvfs)
        }
 
        /* by default have a max of 512 entries in the cache. */
-       ctx->cache_size = lp_parm_int(-1, "mangle", "cachesize", 512);
+       ctx->cache_size = lp_parm_int(global_loadparm, NULL, "mangle", "cachesize", 512);
 
        ctx->prefix_cache = talloc_array(ctx, char *, ctx->cache_size);
        if (ctx->prefix_cache == NULL) {
@@ -627,7 +628,7 @@ NTSTATUS pvfs_mangle_init(struct pvfs_state *pvfs)
        memset(ctx->prefix_cache, 0, sizeof(char *) * ctx->cache_size);
        memset(ctx->prefix_cache_hashes, 0, sizeof(uint32_t) * ctx->cache_size);
 
-       ctx->mangle_prefix = lp_parm_int(-1, "mangle", "prefix", -1);
+       ctx->mangle_prefix = lp_parm_int(global_loadparm, NULL, "mangle", "prefix", -1);
        if (ctx->mangle_prefix < 0 || ctx->mangle_prefix > 6) {
                ctx->mangle_prefix = DEFAULT_MANGLE_PREFIX;
        }
@@ -645,7 +646,7 @@ NTSTATUS pvfs_mangle_init(struct pvfs_state *pvfs)
 */
 char *pvfs_short_name_component(struct pvfs_state *pvfs, const char *name)
 {
-       return name_map(pvfs->mangle_ctx, name, True, True);
+       return name_map(pvfs->mangle_ctx, name, true, true);
 }
 
 
@@ -678,7 +679,7 @@ char *pvfs_mangled_lookup(struct pvfs_state *pvfs, TALLOC_CTX *mem_ctx,
 /*
   look for a DOS reserved name
 */
-BOOL pvfs_is_reserved_name(struct pvfs_state *pvfs, const char *name)
+bool pvfs_is_reserved_name(struct pvfs_state *pvfs, const char *name)
 {
        return is_reserved_name(pvfs->mangle_ctx, name);
 }
@@ -688,7 +689,7 @@ BOOL pvfs_is_reserved_name(struct pvfs_state *pvfs, const char *name)
   see if a component of a filename could be a mangled name from our
   mangling code
 */
-BOOL pvfs_is_mangled_component(struct pvfs_state *pvfs, const char *name)
+bool pvfs_is_mangled_component(struct pvfs_state *pvfs, const char *name)
 {
        return is_mangled_component(pvfs->mangle_ctx, name, strlen(name));
 }
index a3b98feead45da512cff0d8d1878d66e9ab87f80..7e6173ef2faf0c033ed7cfc38d90c74892fa2812 100644 (file)
@@ -79,7 +79,7 @@ NTSTATUS pvfs_stream_info(struct pvfs_state *pvfs, struct pvfs_filename *name, i
 
        /* the NULL stream always exists */
        if (name->stream_name == NULL) {
-               name->stream_exists = True;
+               name->stream_exists = true;
                return NT_STATUS_OK;
        }
 
@@ -99,7 +99,7 @@ NTSTATUS pvfs_stream_info(struct pvfs_state *pvfs, struct pvfs_filename *name, i
                if (strcasecmp_m(s->name, name->stream_name) == 0) {
                        name->dos.alloc_size = pvfs_round_alloc_size(pvfs, s->alloc_size);
                        name->st.st_size     = s->size;
-                       name->stream_exists = True;
+                       name->stream_exists = true;
                        talloc_free(streams);
                        return NT_STATUS_OK;
                }
@@ -109,7 +109,7 @@ NTSTATUS pvfs_stream_info(struct pvfs_state *pvfs, struct pvfs_filename *name, i
 
        name->dos.alloc_size = 0;
        name->st.st_size     = 0;
-       name->stream_exists = False;
+       name->stream_exists = false;
 
        return NT_STATUS_OK;
 }
index 895fcd96851a03cbf4756fb3f07408f438823de2..fd9724f7e2bc10e10e7aeb3e3ad9483028ec65e5 100644 (file)
 #include "vfs_posix.h"
 
 /*
-  return True if a string contains one of the CIFS wildcard characters
+  return true if a string contains one of the CIFS wildcard characters
 */
-BOOL pvfs_has_wildcard(const char *str)
+bool pvfs_has_wildcard(const char *str)
 {
        if (strpbrk(str, "*?<>\"")) {
-               return True;
+               return true;
        }
-       return False;
+       return false;
 }
 
 /*
index 61a95ec8240fd8262057c86a4fc1764c690b5280..ead3585e0d8390b3d76390865e03a153500e5a6a 100644 (file)
@@ -158,9 +158,9 @@ NTSTATUS pvfs_dosattrib_load(struct pvfs_state *pvfs, struct pvfs_filename *name
        struct xattr_DosInfo2 *info2;
 
        if (name->stream_name != NULL) {
-               name->stream_exists = False;
+               name->stream_exists = false;
        } else {
-               name->stream_exists = True;
+               name->stream_exists = true;
        }
 
        if (!(pvfs->flags & PVFS_FLAG_XATTR_ENABLE)) {
index 2c414065cb2634bb9527b051c72b8021c6fbf6f5..208c9e62b70e9117727c6b71ebcd6786f54c8880 100644 (file)
@@ -56,7 +56,7 @@ static void pvfs_setup_options(struct pvfs_state *pvfs)
                pvfs->flags |= PVFS_FLAG_CI_FILESYSTEM;
        if (share_bool_option(scfg, PVFS_FAKE_OPLOCKS, PVFS_FAKE_OPLOCKS_DEFAULT))
                pvfs->flags |= PVFS_FLAG_FAKE_OPLOCKS;
-       if (share_bool_option(scfg, PVFS_AIO, False))
+       if (share_bool_option(scfg, PVFS_AIO, false))
                pvfs->flags |= PVFS_FLAG_LINUX_AIO;
 
        /* file perm options */
@@ -234,7 +234,7 @@ static NTSTATUS pvfs_connect(struct ntvfs_module_context *ntvfs,
 #ifdef SIGXFSZ
        /* who had the stupid idea to generate a signal on a large
           file write instead of just failing it!? */
-       BlockSignals(True, SIGXFSZ);
+       BlockSignals(true, SIGXFSZ);
 #endif
 
        return NT_STATUS_OK;
index dcf082fd883cf98c342ef7169131acf930053601..a660da329a98ec2401dffc047fc802ca2d438959 100644 (file)
@@ -237,8 +237,8 @@ enum pvfs_wait_notice {PVFS_WAIT_EVENT, PVFS_WAIT_TIMEOUT, PVFS_WAIT_CANCEL};
 #define PVFS_ACL                       "posix:acl"
 #define PVFS_AIO                       "posix:aio"
 
-#define PVFS_XATTR_DEFAULT                     True
-#define PVFS_FAKE_OPLOCKS_DEFAULT              False
+#define PVFS_XATTR_DEFAULT                     true
+#define PVFS_FAKE_OPLOCKS_DEFAULT              false
 #define PVFS_SHARE_DELAY_DEFAULT               1000000
 #define PVFS_ALLOCATION_ROUNDING_DEFAULT       512
 #define PVFS_SEARCH_INACTIVITY_DEFAULT         300
index 30bb530ee908705fb0becaa1c4d61168a1eeef79..f9d3235116e146a2fe14feab01ac698822874b17 100644 (file)
@@ -24,6 +24,7 @@
 #include "includes.h"
 #include "libcli/raw/ioctl.h"
 #include "ntvfs/ntvfs.h"
+#include "param/param.h"
 
 /*
   connect to a share - used when a tree_connect operation comes
@@ -82,7 +83,7 @@ static NTSTATUS print_ioctl(struct ntvfs_module_context *ntvfs,
 
                p = (char *)io->ioctl.out.blob.data;
                SSVAL(p,0, 1 /* REWRITE: fsp->rap_print_jobid */);
-               push_string(p+2, lp_netbios_name(), 15, STR_TERMINATE|STR_ASCII);
+               push_string(p+2, lp_netbios_name(global_loadparm), 15, STR_TERMINATE|STR_ASCII);
                push_string(p+18, ntvfs->ctx->config->name, 13, STR_TERMINATE|STR_ASCII);
                return NT_STATUS_OK;
        }
index 95ea6d86476fbb8c8781e06ff73614c152d23de2..dfc07f348329efcc9ffc8cdfd81ac59bac4e38b0 100644 (file)
@@ -38,7 +38,7 @@
 #define O_DIRECTORY 0
 #endif
 
-#define CHECK_READ_ONLY(req) do { if (share_bool_option(ntvfs->ctx->config, SHARE_READONLY, True)) return NT_STATUS_ACCESS_DENIED; } while (0)
+#define CHECK_READ_ONLY(req) do { if (share_bool_option(ntvfs->ctx->config, SHARE_READONLY, true)) return NT_STATUS_ACCESS_DENIED; } while (0)
 
 /*
   connect to a share - used when a tree_connect operation comes
@@ -308,7 +308,7 @@ static NTSTATUS svfs_open(struct ntvfs_module_context *ntvfs,
        int fd, flags;
        struct svfs_file *f;
        int create_flags, rdwr_flags;
-       BOOL readonly;
+       bool readonly;
        NTSTATUS status;
        struct ntvfs_handle *handle;
        
@@ -826,7 +826,7 @@ static NTSTATUS svfs_lpq(struct ntvfs_module_context *ntvfs,
 static NTSTATUS svfs_search_first(struct ntvfs_module_context *ntvfs,
                                  struct ntvfs_request *req, union smb_search_first *io, 
                                  void *search_private, 
-                                 BOOL (*callback)(void *, const union smb_search_data *))
+                                 bool (*callback)(void *, const union smb_search_data *))
 {
        struct svfs_dir *dir;
        int i;
@@ -900,7 +900,7 @@ static NTSTATUS svfs_search_first(struct ntvfs_module_context *ntvfs,
 static NTSTATUS svfs_search_next(struct ntvfs_module_context *ntvfs,
                                 struct ntvfs_request *req, union smb_search_next *io, 
                                 void *search_private, 
-                                BOOL (*callback)(void *, const union smb_search_data *))
+                                bool (*callback)(void *, const union smb_search_data *))
 {
        struct svfs_dir *dir;
        int i;
index afeb319b353286b7dbc7ca0c3ca23a97b0676f11..3fa710415b822c9829b848e9d9b523f69b345cf6 100644 (file)
@@ -27,6 +27,7 @@
 #include "lib/events/events.h"
 #include "lib/util/dlinklist.h"
 #include "libcli/raw/smb.h"
+#include "param/param.h"
 
 #include <linux/inotify.h>
 #include <asm/unistd.h>
@@ -82,19 +83,19 @@ struct inotify_watch_context {
   see if a particular event from inotify really does match a requested
   notify event in SMB
 */
-static BOOL filter_match(struct inotify_watch_context *w,
+static bool filter_match(struct inotify_watch_context *w,
                         struct inotify_event *e)
 {
        if ((e->mask & w->mask) == 0) {
                /* this happens because inotify_add_watch() coalesces watches on the same
                   path, oring their masks together */
-               return False;
+               return false;
        }
 
        /* SMB separates the filters for files and directories */
        if (e->mask & IN_ISDIR) {
                if ((w->filter & FILE_NOTIFY_CHANGE_DIR_NAME) == 0) {
-                       return False;
+                       return false;
                }
        } else {
                if ((e->mask & IN_ATTRIB) &&
@@ -103,18 +104,18 @@ static BOOL filter_match(struct inotify_watch_context *w,
                                  FILE_NOTIFY_CHANGE_LAST_ACCESS|
                                  FILE_NOTIFY_CHANGE_EA|
                                  FILE_NOTIFY_CHANGE_SECURITY))) {
-                       return True;
+                       return true;
                }
                if ((e->mask & IN_MODIFY) && 
                    (w->filter & FILE_NOTIFY_CHANGE_ATTRIBUTES)) {
-                       return True;
+                       return true;
                }
                if ((w->filter & FILE_NOTIFY_CHANGE_FILE_NAME) == 0) {
-                       return False;
+                       return false;
                }
        }
 
-       return True;
+       return true;
 }
        
 
@@ -244,7 +245,7 @@ static NTSTATUS inotify_setup(struct sys_notify_context *ctx)
 {
        struct inotify_private *in;
 
-       if (!lp_parm_bool(-1, "notify", "inotify", True)) {
+       if (!lp_parm_bool(global_loadparm, NULL, "notify", "inotify", true)) {
                return NT_STATUS_INVALID_SYSTEM_SERVICE;
        }
 
index 8d2aed7fa0c8219b31aec6165bcf03b9f1bd7ff2..1664461d3324713d02f8c170b08dbcf3b092126c 100644 (file)
@@ -27,6 +27,7 @@
 #include "ntvfs/sysdep/sys_notify.h"
 #include "lib/events/events.h"
 #include "lib/util/dlinklist.h"
+#include "param/param.h"
 #include "build.h"
 
 /* list of registered backends */
@@ -122,15 +123,15 @@ _PUBLIC_ NTSTATUS sys_notify_register(struct sys_notify_backend *backend)
 
 _PUBLIC_ NTSTATUS sys_notify_init(void)
 {
-       static BOOL initialized = False;
+       static bool initialized = false;
 
        init_module_fn static_init[] = STATIC_sys_notify_MODULES;
        init_module_fn *shared_init;
 
        if (initialized) return NT_STATUS_OK;
-       initialized = True;
+       initialized = true;
 
-       shared_init = load_samba_modules(NULL, "sys_notify");
+       shared_init = load_samba_modules(NULL, global_loadparm, "sys_notify");
 
        run_init_functions(static_init);
        run_init_functions(shared_init);
index 74bc6309c18380be137e598004ffbb61e2dd5b08..0ad8a8501b6afdfca25f042c4c48cda5ec2fe587 100644 (file)
@@ -591,7 +591,7 @@ static NTSTATUS unixuid_lpq(struct ntvfs_module_context *ntvfs,
 static NTSTATUS unixuid_search_first(struct ntvfs_module_context *ntvfs,
                                    struct ntvfs_request *req, union smb_search_first *io, 
                                    void *search_private, 
-                                   BOOL (*callback)(void *, const union smb_search_data *))
+                                   bool (*callback)(void *, const union smb_search_data *))
 {
        NTSTATUS status;
 
@@ -604,7 +604,7 @@ static NTSTATUS unixuid_search_first(struct ntvfs_module_context *ntvfs,
 static NTSTATUS unixuid_search_next(struct ntvfs_module_context *ntvfs,
                                   struct ntvfs_request *req, union smb_search_next *io, 
                                   void *search_private, 
-                                  BOOL (*callback)(void *, const union smb_search_data *))
+                                  bool (*callback)(void *, const union smb_search_data *))
 {
        NTSTATUS status;
 
index cac95a63ddb8461fc9f1cd2625cd3a00f282c297..5ed10972960ed63e12b19ac7dc54ba67ebb43205 100644 (file)
@@ -46,6 +46,5 @@ PRIVATE_DEPENDENCIES = LIBLDB
 ################################################
 
 [SUBSYSTEM::SECRETS]
-PRIVATE_PROTO_HEADER = secrets_proto.h
 OBJ_FILES = secrets.o
 PRIVATE_DEPENDENCIES = DB_WRAP UTIL_TDB
index ca5293495049fd850e8076b18e59e7439ea986dc..d65502c02d22321d5ded892e604f683232c19b80 100644 (file)
@@ -36,19 +36,20 @@ struct param_section *param_get_section(struct param_context *ctx, const char *n
        return NULL;
 }
 
-struct param *param_section_get (struct param_section *section, const char *name)
+struct param_opt *param_section_get(struct param_section *section, 
+                                   const char *name)
 {
-       struct param *p;
+       struct param_opt *p;
 
        for (p = section->parameters; p; p = p->next) {
-               if (strcasecmp_m(p->name, name) == 0) 
+               if (strcasecmp_m(p->key, name) == 0) 
                        return p;
        }
 
        return NULL;
 }
 
-struct param *param_get (struct param_context *ctx, const char *section_name, const char *name)
+struct param_opt *param_get (struct param_context *ctx, const char *section_name, const char *name)
 {
        struct param_section *section = param_get_section(ctx, section_name);
        if (section == NULL)
@@ -58,10 +59,10 @@ struct param *param_get (struct param_context *ctx, const char *section_name, co
 }
 
 /* Look up parameter. If it is not found, add it */
-static struct param *param_get_add(struct param_context *ctx, const char *section_name, const char *name)
+static struct param_opt *param_get_add(struct param_context *ctx, const char *section_name, const char *name)
 {
        struct param_section *section;
-       struct param *p;
+       struct param_opt *p;
 
        section = param_get_section(ctx, section_name);
 
@@ -76,11 +77,11 @@ static struct param *param_get_add(struct param_context *ctx, const char *sectio
 
        p = param_section_get(section, name);
        if (p == NULL) {
-               p = talloc_zero(section, struct param);
+               p = talloc_zero(section, struct param_opt);
                if (p == NULL)
                        return NULL;
 
-               p->name = talloc_strdup(p, name);
+               p->key = talloc_strdup(p, name);
                DLIST_ADD(section->parameters, p);
        }
        
@@ -89,7 +90,7 @@ static struct param *param_get_add(struct param_context *ctx, const char *sectio
 
 const char *param_get_string(struct param_context *ctx, const char *section, const char *param)
 {
-       struct param *p = param_get(ctx, section, param);
+       struct param_opt *p = param_get(ctx, section, param);
 
        if (p == NULL)
                return NULL;
@@ -99,7 +100,7 @@ const char *param_get_string(struct param_context *ctx, const char *section, con
 
 int param_set_string(struct param_context *ctx, const char *section, const char *param, const char *value)
 {
-       struct param *p = param_get_add(ctx, section, param);
+       struct param_opt *p = param_get_add(ctx, section, param);
 
        if (p == NULL)
                return -1;
@@ -112,7 +113,7 @@ int param_set_string(struct param_context *ctx, const char *section, const char
 const char **param_get_string_list(struct param_context *ctx, const char *section, const char *param,
                                 const char *separator)
 {
-       struct param *p = param_get(ctx, section, param);
+       struct param_opt *p = param_get(ctx, section, param);
        
        if (p == NULL)
                return NULL;
@@ -120,19 +121,14 @@ const char **param_get_string_list(struct param_context *ctx, const char *sectio
        if (separator == NULL)
                separator = LIST_SEP;
        
-       if (p->list_value == NULL) {
-               p->list_value = str_list_make(ctx, p->value, separator);
-       }
-
-       return p->list_value;
+       return str_list_make(ctx, p->value, separator);
 }
 
 int param_set_string_list(struct param_context *ctx, const char *section, const char *param, const char **list)
 {
-       struct param *p = param_get_add(ctx, section, param);   
+       struct param_opt *p = param_get_add(ctx, section, param);       
 
        p->value = str_list_join(p, list, ' ');
-       p->list_value = str_list_copy(p, list);
 
        return 0;
 }
@@ -149,7 +145,7 @@ int param_get_int(struct param_context *ctx, const char *section, const char *pa
 
 void param_set_int(struct param_context *ctx, const char *section, const char *param, int value)
 {
-       struct param *p = param_get_add(ctx, section, param);
+       struct param_opt *p = param_get_add(ctx, section, param);
 
        if (!p) 
                return;
@@ -169,7 +165,7 @@ unsigned long param_get_ulong(struct param_context *ctx, const char *section, co
 
 void param_set_ulong(struct param_context *ctx, const char *section, const char *name, unsigned long value)
 {
-       struct param *p = param_get_add(ctx, section, name);
+       struct param_opt *p = param_get_add(ctx, section, name);
 
        if (!p)
                return;
@@ -177,15 +173,15 @@ void param_set_ulong(struct param_context *ctx, const char *section, const char
        p->value = talloc_asprintf(p, "%lu", value);
 }
 
-static BOOL param_sfunc (const char *name, void *_ctx)
+static bool param_sfunc (const char *name, void *_ctx)
 {
-       struct param_context *ctx = _ctx;
+       struct param_context *ctx = (struct param_context *)_ctx;
        struct param_section *section = param_get_section(ctx, name);
 
        if (section == NULL) {
                section = talloc_zero(ctx, struct param_section);
                if (section == NULL)
-                       return False;
+                       return false;
 
                section->name = talloc_strdup(section, name);
 
@@ -195,20 +191,20 @@ static BOOL param_sfunc (const char *name, void *_ctx)
        /* Make sure this section is on top of the list for param_pfunc */
        DLIST_PROMOTE(ctx->sections, section);
 
-       return True;
+       return true;
 }
 
-static BOOL param_pfunc (const char *name, const char *value, void *_ctx)
+static bool param_pfunc (const char *name, const char *value, void *_ctx)
 {
-       struct param_context *ctx = _ctx;
-       struct param *p = param_section_get(ctx->sections, name);
+       struct param_context *ctx = (struct param_context *)_ctx;
+       struct param_opt *p = param_section_get(ctx->sections, name);
 
        if (!p) {
-               p = talloc_zero(ctx->sections, struct param);
+               p = talloc_zero(ctx->sections, struct param_opt);
                if (p == NULL)
-                       return False;
+                       return false;
 
-               p->name = talloc_strdup(p, name);
+               p->key = talloc_strdup(p, name);
                p->value = talloc_strdup(p, value);
                DLIST_ADD(ctx->sections->parameters, p);
        } else { /* Replace current value */
@@ -216,7 +212,7 @@ static BOOL param_pfunc (const char *name, const char *value, void *_ctx)
                p->value = talloc_strdup(p, value);
        }
 
-       return True;
+       return true;
 }
 
 struct param_context *param_init(TALLOC_CTX *mem_ctx)
@@ -253,11 +249,11 @@ int param_write(struct param_context *ctx, const char *fn)
                return -1;
        
        for (section = ctx->sections; section; section = section->next) {
-               struct param *param;
+               struct param_opt *param;
                
                fdprintf(file, "[%s]\n", section->name);
                for (param = section->parameters; param; param = param->next) {
-                       fdprintf(file, "\t%s = %s\n", param->name, param->value);
+                       fdprintf(file, "\t%s = %s\n", param->key, param->value);
                }
                fdprintf(file, "\n");
        }
index 483aa1f10bee40abdb81f643ccecb0591992d612..c54932aa47306d5c73b17a37576d683f3daab95c 100644 (file)
@@ -10,6 +10,7 @@
    Copyright (C) Stefan (metze) Metzmacher 2002
    Copyright (C) Jim McDonough (jmcd@us.ibm.com)  2003.
    Copyright (C) James Myers 2003 <myersjj@samba.org>
+   Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 #include "includes.h"
 #include "version.h"
 #include "dynconfig.h"
-#include "pstring.h"
 #include "system/time.h"
 #include "system/locale.h"
 #include "system/network.h" /* needed for TCP_NODELAY */
 #include "smb_server/smb_server.h"
 #include "libcli/raw/signing.h"
 #include "lib/util/dlinklist.h"
+#include "param/param.h"
 #include "param/loadparm.h"
 
-static BOOL bLoaded = False;
+static bool bLoaded = false;
 
-#define standard_sub_basic(str,len)
+#define standard_sub_basic talloc_strdup
 
-/* some helpful bits */
-#define LP_SNUM_OK(i) (((i) >= 0) && ((i) < iNumServices) && ServicePtrs[(i)]->valid)
-#define VALID(i) ServicePtrs[i]->valid
-
-static BOOL do_parameter(const char *, const char *, void *);
-static BOOL do_parameter_var(const char *pszParmName, const char *fmt, ...);
-
-static BOOL defaults_saved = False;
-
-struct param_opt {
-       struct param_opt *prev, *next;
-       char *key;
-       char *value;
-       int flags;
-};
+static bool do_parameter(const char *, const char *, void *);
+static bool defaults_saved = false;
 
 /* 
  * This structure describes global (ie., server-wide) parameters.
  */
-typedef struct
+struct loadparm_global
 {
-       int server_role;
+       enum server_role server_role;
 
-       char **smb_ports;
+       const char **smb_ports;
        char *ncalrpc_dir;
+       char *dos_charset;
+       char *unix_charset;
+       char *display_charset;
        char *szLockDir;
        char *szModulesDir;
        char *szPidDir;
@@ -99,7 +90,7 @@ typedef struct
        char *szServerString;
        char *szAutoServices;
        char *szPasswdChat;
-       char *szConfigFile;
+       const char *szConfigFile;
        char *szShareBackend;
        char *szSAM_URL;
        char *szSECRETS_URL;
@@ -107,30 +98,30 @@ typedef struct
        char *szWINS_CONFIG_URL;
        char *szWINS_URL;
        char *szPrivateDir;
-       char **jsInclude;
+       const char **jsInclude;
        char *jsonrpcServicesDir;
-       char **szPasswordServers;
+       const char **szPasswordServers;
        char *szSocketOptions;
        char *szRealm;
-       char **szWINSservers;
-       char **szInterfaces;
+       const char **szWINSservers;
+       const char **szInterfaces;
        char *szSocketAddress;
        char *szAnnounceVersion;        /* This is initialised in init_globals */
        char *szWorkgroup;
        char *szNetbiosName;
-       char **szNetbiosAliases;
+       const char **szNetbiosAliases;
        char *szNetbiosScope;
        char *szDomainOtherSIDs;
-       char **szNameResolveOrder;
-       char **dcerpc_ep_servers;
-       char **server_services;
+       const char **szNameResolveOrder;
+       const char **dcerpc_ep_servers;
+       const char **server_services;
        char *ntptr_providor;
        char *szWinbindSeparator;
        char *szWinbinddSocketDirectory;
        char *szTemplateShell;
        char *szTemplateHomedir;
        int bWinbindSealedPipes;
-       char *webapps_directory;
+       char *swat_directory;
        int tls_enabled;
        char *tls_keyfile;
        char *tls_certfile;
@@ -186,17 +177,14 @@ typedef struct
        int bDisableNetbios;
        int bRpcBigEndian;
        struct param_opt *param_opt;
-}
-global;
+};
 
-static global Globals;
 
 /* 
  * This structure describes a single service. 
  */
-typedef struct
+struct loadparm_service
 {
-       int valid;
        char *szService;
        char *szPath;
        char *szCopy;
@@ -230,59 +218,67 @@ typedef struct
        struct param_opt *param_opt;
 
        char dummy[3];          /* for alignment */
-}
-service;
+};
 
 
 /* This is a default service used to prime a services structure */
-static service sDefault = {
-       True,                   /* valid */
-       NULL,                   /* szService */
-       NULL,                   /* szPath */
-       NULL,                   /* szCopy */
-       NULL,                   /* szInclude */
-       NULL,                   /* szPrintername */
-       NULL,                   /* szHostsallow */
-       NULL,                   /* szHostsdeny */
-       NULL,                   /* comment */
-       NULL,                   /* volume */
-       NULL,                   /* fstype */
-       NULL,                   /* ntvfs_handler */
-       1000,                   /* iMaxPrintJobs */
-       0,                      /* iMaxConnections */
-       0,                      /* iCSCPolicy */
-       True,                   /* bAvailable */
-       True,                   /* bBrowseable */
-       True,                   /* bRead_only */
-       False,                  /* bPrint_ok */
-       False,                  /* bMap_system */
-       False,                  /* bMap_hidden */
-       True,                   /* bMap_archive */
-       True,                   /* bStrictLocking */
-       0744,                   /* iCreate_mask */
-       0000,                   /* iCreate_force_mode */
-       0755,                   /* iDir_mask */
-       0000,                   /* iDir_force_mode */   
-       NULL,                   /* copymap */
-       False,                  /* bMSDfsRoot */
-       False,                  /* bStrictSync */
-       False,                  /* bCIFileSystem */
-       NULL,                   /* Parametric options */
-
-       ""                      /* dummy */
+static struct loadparm_service sDefault = {
+       .szService = NULL,
+       .szPath = NULL,
+       .szCopy = NULL,
+       .szInclude = NULL,
+       .szPrintername = NULL,                  
+       .szHostsallow = NULL,                   
+       .szHostsdeny = NULL,                    
+       .comment = NULL,                        
+       .volume = NULL,                 
+       .fstype = NULL,                 
+       .ntvfs_handler = NULL,                   
+       .iMaxPrintJobs = 1000,                  
+       .iMaxConnections = 0,                   
+       .iCSCPolicy = 0,                        
+       .bAvailable = true,                     
+       .bBrowseable = true,                    
+       .bRead_only = true,                     
+       .bPrint_ok = false,                     
+       .bMap_system = false,                   
+       .bMap_hidden = false,                   
+       .bMap_archive = true,                   
+       .bStrictLocking = true,                 
+       .iCreate_mask = 0744,                   
+       .iCreate_force_mode = 0000,
+       .iDir_mask = 0755,                      
+       .iDir_force_mode = 0000,                        
+       .copymap = NULL,
+       .bMSDfsRoot = false,
+       .bStrictSync = false,
+       .bCIFileSystem = false,
 };
 
 /* local variables */
-static service **ServicePtrs = NULL;
-static int iNumServices = 0;
-static int iServiceIndex = 0;
-static BOOL bInGlobalSection = True;
+static struct loadparm_context {
+       struct loadparm_global Globals;
+       struct loadparm_service **ServicePtrs;
+       int iNumServices;
+       struct loadparm_service *currentService;
+       bool bInGlobalSection;
+       struct file_lists {
+               struct file_lists *next;
+               char *name;
+               char *subfname;
+               time_t modtime;
+       } *file_lists;
+} loadparm;
+
+struct loadparm_context *global_loadparm = &loadparm;
 
 #define NUMPARAMETERS (sizeof(parm_table) / sizeof(struct parm_struct))
 
 /* prototypes for the special type handlers */
-static BOOL handle_include(const char *pszParmValue, char **ptr);
-static BOOL handle_copy(const char *pszParmValue, char **ptr);
+static bool handle_include(struct loadparm_context *lp_ctx, 
+                          const char *pszParmValue, char **ptr);
+static bool handle_copy(struct loadparm_context *lp_ctx, 
+                       const char *pszParmValue, char **ptr);
 
 static const struct enum_list enum_protocol[] = {
        {PROTOCOL_SMB2, "SMB2"},
@@ -311,21 +307,23 @@ static const struct enum_list enum_announce_as[] = {
 };
 
 static const struct enum_list enum_bool_auto[] = {
-       {False, "No"},
-       {False, "False"},
-       {False, "0"},
-       {True, "Yes"},
-       {True, "True"},
-       {True, "1"},
+       {false, "No"},
+       {false, "False"},
+       {false, "0"},
+       {true, "Yes"},
+       {true, "True"},
+       {true, "1"},
        {Auto, "Auto"},
        {-1, NULL}
 };
 
 /* Client-side offline caching policy types */
-#define CSC_POLICY_MANUAL 0
-#define CSC_POLICY_DOCUMENTS 1
-#define CSC_POLICY_PROGRAMS 2
-#define CSC_POLICY_DISABLE 3
+enum csc_policy { 
+       CSC_POLICY_MANUAL=0, 
+       CSC_POLICY_DOCUMENTS=1, 
+       CSC_POLICY_PROGRAMS=2,
+       CSC_POLICY_DISABLE=3
+};
 
 static const struct enum_list enum_csc_policy[] = {
        {CSC_POLICY_MANUAL, "manual"},
@@ -370,199 +368,174 @@ static const struct enum_list enum_server_role[] = {
  * is implied in current control logic. This may change at some later time. A
  * flag value of 0 means - show as development option only.
  *
- * The FLAG_HIDE is explicit. Paramters set this way do NOT appear in any edit
+ * The FLAG_HIDE is explicit. Parameters set this way do NOT appear in any edit
  * screen in SWAT. This is used to exclude parameters as well as to squash all
  * parameters that have been duplicated by pseudonyms.
  */
+
+#define GLOBAL_VAR(name) &loadparm.Globals.name
+#define LOCAL_VAR(name) &sDefault.name
+
 static struct parm_struct parm_table[] = {
-       {"Base Options", P_SEP, P_SEPARATOR},
-
-       {"server role", P_ENUM, P_GLOBAL, &Globals.server_role, NULL, enum_server_role, FLAG_BASIC},
-
-       {"dos charset", P_STRING, P_GLOBAL, &dos_charset, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"unix charset", P_STRING, P_GLOBAL, &unix_charset, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"ncalrpc dir", P_STRING, P_GLOBAL, &Globals.ncalrpc_dir, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"display charset", P_STRING, P_GLOBAL, &display_charset, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"comment", P_STRING, P_LOCAL, &sDefault.comment, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT | FLAG_DEVELOPER},
-       {"path", P_STRING, P_LOCAL, &sDefault.szPath, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT | FLAG_DEVELOPER},
-       {"directory", P_STRING, P_LOCAL, &sDefault.szPath, NULL, NULL, FLAG_HIDE},
-       {"workgroup", P_USTRING, P_GLOBAL, &Globals.szWorkgroup, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
-       {"realm", P_STRING, P_GLOBAL, &Globals.szRealm, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
-       {"netbios name", P_USTRING, P_GLOBAL, &Globals.szNetbiosName, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
-       {"netbios aliases", P_LIST, P_GLOBAL, &Globals.szNetbiosAliases, NULL, NULL, FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
-       {"netbios scope", P_USTRING, P_GLOBAL, &Globals.szNetbiosScope, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"server string", P_STRING, P_GLOBAL, &Globals.szServerString, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED  | FLAG_DEVELOPER},
-       {"interfaces", P_LIST, P_GLOBAL, &Globals.szInterfaces, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
-       {"bind interfaces only", P_BOOL, P_GLOBAL, &Globals.bBindInterfacesOnly, NULL, NULL, FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
-       {"ntvfs handler", P_LIST, P_LOCAL, &sDefault.ntvfs_handler, NULL, NULL, FLAG_ADVANCED},
-       {"ntptr providor", P_STRING, P_GLOBAL, &Globals.ntptr_providor, NULL, NULL, FLAG_ADVANCED},
-       {"dcerpc endpoint servers", P_LIST, P_GLOBAL, &Globals.dcerpc_ep_servers, NULL, NULL, FLAG_ADVANCED},
-       {"server services", P_LIST, P_GLOBAL, &Globals.server_services, NULL, NULL, FLAG_ADVANCED},
-
-       {"Security Options", P_SEP, P_SEPARATOR},
+       {"config file", P_STRING, P_GLOBAL, GLOBAL_VAR(szConfigFile), NULL, NULL, FLAG_HIDE},
+
+       {"server role", P_ENUM, P_GLOBAL, GLOBAL_VAR(server_role), NULL, enum_server_role, FLAG_BASIC},
+
+       {"dos charset", P_STRING, P_GLOBAL, GLOBAL_VAR(dos_charset), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"unix charset", P_STRING, P_GLOBAL, GLOBAL_VAR(unix_charset), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"ncalrpc dir", P_STRING, P_GLOBAL, GLOBAL_VAR(ncalrpc_dir), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"display charset", P_STRING, P_GLOBAL, GLOBAL_VAR(display_charset), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"comment", P_STRING, P_LOCAL, LOCAL_VAR(comment), NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT | FLAG_DEVELOPER},
+       {"path", P_STRING, P_LOCAL, LOCAL_VAR(szPath), NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT | FLAG_DEVELOPER},
+       {"directory", P_STRING, P_LOCAL, LOCAL_VAR(szPath), NULL, NULL, FLAG_HIDE},
+       {"workgroup", P_USTRING, P_GLOBAL, GLOBAL_VAR(szWorkgroup), NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
+       {"realm", P_STRING, P_GLOBAL, GLOBAL_VAR(szRealm), NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
+       {"netbios name", P_USTRING, P_GLOBAL, GLOBAL_VAR(szNetbiosName), NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
+       {"netbios aliases", P_LIST, P_GLOBAL, GLOBAL_VAR(szNetbiosAliases), NULL, NULL, FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
+       {"netbios scope", P_USTRING, P_GLOBAL, GLOBAL_VAR(szNetbiosScope), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"server string", P_STRING, P_GLOBAL, GLOBAL_VAR(szServerString), NULL, NULL, FLAG_BASIC | FLAG_ADVANCED  | FLAG_DEVELOPER},
+       {"interfaces", P_LIST, P_GLOBAL, GLOBAL_VAR(szInterfaces), NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
+       {"bind interfaces only", P_BOOL, P_GLOBAL, GLOBAL_VAR(bBindInterfacesOnly), NULL, NULL, FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
+       {"ntvfs handler", P_LIST, P_LOCAL, LOCAL_VAR(ntvfs_handler), NULL, NULL, FLAG_ADVANCED},
+       {"ntptr providor", P_STRING, P_GLOBAL, GLOBAL_VAR(ntptr_providor), NULL, NULL, FLAG_ADVANCED},
+       {"dcerpc endpoint servers", P_LIST, P_GLOBAL, GLOBAL_VAR()dcerpc_ep_servers, NULL, NULL, FLAG_ADVANCED},
+       {"server services", P_LIST, P_GLOBAL, GLOBAL_VAR(server_services), NULL, NULL, FLAG_ADVANCED},
+
+       {"security", P_ENUM, P_GLOBAL, GLOBAL_VAR(security), NULL, enum_security, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
+       {"encrypt passwords", P_BOOL, P_GLOBAL, GLOBAL_VAR(bEncryptPasswords), NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
+       {"null passwords", P_BOOL, P_GLOBAL, GLOBAL_VAR(bNullPasswords), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"obey pam restrictions", P_BOOL, P_GLOBAL, GLOBAL_VAR(bObeyPamRestrictions), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"password server", P_LIST, P_GLOBAL, GLOBAL_VAR(szPasswordServers), NULL, NULL, FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
+       {"sam database", P_STRING, P_GLOBAL, GLOBAL_VAR(szSAM_URL), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"secrets database", P_STRING, P_GLOBAL, GLOBAL_VAR(szSECRETS_URL), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"spoolss database", P_STRING, P_GLOBAL, GLOBAL_VAR(szSPOOLSS_URL), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"wins config database", P_STRING, P_GLOBAL, GLOBAL_VAR(szWINS_CONFIG_URL), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"wins database", P_STRING, P_GLOBAL, GLOBAL_VAR(szWINS_URL), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"private dir", P_STRING, P_GLOBAL, GLOBAL_VAR(szPrivateDir), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"passwd chat", P_STRING, P_GLOBAL, GLOBAL_VAR(szPasswdChat), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"password level", P_INTEGER, P_GLOBAL, GLOBAL_VAR(pwordlevel), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"lanman auth", P_BOOL, P_GLOBAL, GLOBAL_VAR(bLanmanAuth), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"ntlm auth", P_BOOL, P_GLOBAL, GLOBAL_VAR(bNTLMAuth), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"client NTLMv2 auth", P_BOOL, P_GLOBAL, GLOBAL_VAR(bClientNTLMv2Auth), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"client lanman auth", P_BOOL, P_GLOBAL, GLOBAL_VAR(bClientLanManAuth), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"client plaintext auth", P_BOOL, P_GLOBAL, GLOBAL_VAR(bClientPlaintextAuth), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"client use spnego principal", P_BOOL, P_GLOBAL, GLOBAL_VAR(client_use_spnego_principal), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
        
-       {"security", P_ENUM, P_GLOBAL, &Globals.security, NULL, enum_security, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
-       {"encrypt passwords", P_BOOL, P_GLOBAL, &Globals.bEncryptPasswords, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
-       {"null passwords", P_BOOL, P_GLOBAL, &Globals.bNullPasswords, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"obey pam restrictions", P_BOOL, P_GLOBAL, &Globals.bObeyPamRestrictions, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"password server", P_LIST, P_GLOBAL, &Globals.szPasswordServers, NULL, NULL, FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
-       {"sam database", P_STRING, P_GLOBAL, &Globals.szSAM_URL, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"secrets database", P_STRING, P_GLOBAL, &Globals.szSECRETS_URL, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"spoolss database", P_STRING, P_GLOBAL, &Globals.szSPOOLSS_URL, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"wins config database", P_STRING, P_GLOBAL, &Globals.szWINS_CONFIG_URL, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"wins database", P_STRING, P_GLOBAL, &Globals.szWINS_URL, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"private dir", P_STRING, P_GLOBAL, &Globals.szPrivateDir, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"passwd chat", P_STRING, P_GLOBAL, &Globals.szPasswdChat, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"password level", P_INTEGER, P_GLOBAL, &Globals.pwordlevel, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"lanman auth", P_BOOL, P_GLOBAL, &Globals.bLanmanAuth, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"ntlm auth", P_BOOL, P_GLOBAL, &Globals.bNTLMAuth, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"client NTLMv2 auth", P_BOOL, P_GLOBAL, &Globals.bClientNTLMv2Auth, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"client lanman auth", P_BOOL, P_GLOBAL, &Globals.bClientLanManAuth, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"client plaintext auth", P_BOOL, P_GLOBAL, &Globals.bClientPlaintextAuth, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"client use spnego principal", P_BOOL, P_GLOBAL, &Globals.client_use_spnego_principal, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       
-       {"read only", P_BOOL, P_LOCAL, &sDefault.bRead_only, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE},
-
-       {"create mask", P_OCTAL, P_LOCAL, &sDefault.iCreate_mask, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, 
-       {"force create mode", P_OCTAL, P_LOCAL, &sDefault.iCreate_force_mode, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, 
-       {"directory mask", P_OCTAL, P_LOCAL, &sDefault.iDir_mask, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, 
-       {"force directory mode", P_OCTAL, P_LOCAL, &sDefault.iDir_force_mode, NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, 
+       {"read only", P_BOOL, P_LOCAL, LOCAL_VAR(bRead_only), NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE},
 
-       {"hosts allow", P_LIST, P_LOCAL, &sDefault.szHostsallow, NULL, NULL, FLAG_GLOBAL | FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT | FLAG_DEVELOPER},
-       {"hosts deny", P_LIST, P_LOCAL, &sDefault.szHostsdeny, NULL, NULL, FLAG_GLOBAL | FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT | FLAG_DEVELOPER},
+       {"create mask", P_OCTAL, P_LOCAL, LOCAL_VAR(iCreate_mask), NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, 
+       {"force create mode", P_OCTAL, P_LOCAL, LOCAL_VAR(iCreate_force_mode), NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, 
+       {"directory mask", P_OCTAL, P_LOCAL, LOCAL_VAR(iDir_mask), NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, 
+       {"force directory mode", P_OCTAL, P_LOCAL, LOCAL_VAR(iDir_force_mode), NULL, NULL, FLAG_ADVANCED | FLAG_GLOBAL | FLAG_SHARE}, 
 
-       {"Logging Options", P_SEP, P_SEPARATOR},
+       {"hosts allow", P_LIST, P_LOCAL, LOCAL_VAR(szHostsallow), NULL, NULL, FLAG_GLOBAL | FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT | FLAG_DEVELOPER},
+       {"hosts deny", P_LIST, P_LOCAL, LOCAL_VAR(szHostsdeny), NULL, NULL, FLAG_GLOBAL | FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT | FLAG_DEVELOPER},
 
        {"log level", P_INTEGER, P_GLOBAL, &DEBUGLEVEL, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
        {"debuglevel", P_INTEGER, P_GLOBAL, &DEBUGLEVEL, NULL, NULL, FLAG_HIDE},
        {"log file", P_STRING, P_GLOBAL, &logfile, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
        
-       {"Protocol Options", P_SEP, P_SEPARATOR},
-       
-       {"smb ports", P_LIST, P_GLOBAL, &Globals.smb_ports, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"nbt port", P_INTEGER, P_GLOBAL, &Globals.nbt_port, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"dgram port", P_INTEGER, P_GLOBAL, &Globals.dgram_port, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"cldap port", P_INTEGER, P_GLOBAL, &Globals.cldap_port, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"krb5 port", P_INTEGER, P_GLOBAL, &Globals.krb5_port, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"kpasswd port", P_INTEGER, P_GLOBAL, &Globals.kpasswd_port, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"web port", P_INTEGER, P_GLOBAL, &Globals.web_port, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"tls enabled", P_BOOL, P_GLOBAL, &Globals.tls_enabled, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"tls keyfile", P_STRING, P_GLOBAL, &Globals.tls_keyfile, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"tls certfile", P_STRING, P_GLOBAL, &Globals.tls_certfile, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"tls cafile", P_STRING, P_GLOBAL, &Globals.tls_cafile, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"tls crlfile", P_STRING, P_GLOBAL, &Globals.tls_crlfile, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"tls dh params file", P_STRING, P_GLOBAL, &Globals.tls_dhpfile, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"web application directory", P_STRING, P_GLOBAL, &Globals.webapps_directory, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"large readwrite", P_BOOL, P_GLOBAL, &Globals.bLargeReadwrite, NULL, NULL, FLAG_DEVELOPER},
-       {"server max protocol", P_ENUM, P_GLOBAL, &Globals.srv_maxprotocol, NULL, enum_protocol, FLAG_DEVELOPER},
-       {"server min protocol", P_ENUM, P_GLOBAL, &Globals.srv_minprotocol, NULL, enum_protocol, FLAG_DEVELOPER},
-       {"client max protocol", P_ENUM, P_GLOBAL, &Globals.cli_maxprotocol, NULL, enum_protocol, FLAG_DEVELOPER},
-       {"client min protocol", P_ENUM, P_GLOBAL, &Globals.cli_minprotocol, NULL, enum_protocol, FLAG_DEVELOPER},
-       {"unicode", P_BOOL, P_GLOBAL, &Globals.bUnicode, NULL, NULL, FLAG_DEVELOPER},
-       {"read raw", P_BOOL, P_GLOBAL, &Globals.bReadRaw, NULL, NULL, FLAG_DEVELOPER},
-       {"write raw", P_BOOL, P_GLOBAL, &Globals.bWriteRaw, NULL, NULL, FLAG_DEVELOPER},
-       {"disable netbios", P_BOOL, P_GLOBAL, &Globals.bDisableNetbios, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       
-       {"nt status support", P_BOOL, P_GLOBAL, &Globals.bNTStatusSupport, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-
-       {"announce version", P_STRING, P_GLOBAL, &Globals.szAnnounceVersion, NULL, NULL, FLAG_DEVELOPER},
-       {"announce as", P_ENUM, P_GLOBAL, &Globals.announce_as, NULL, enum_announce_as, FLAG_DEVELOPER},
-       {"max mux", P_INTEGER, P_GLOBAL, &Globals.max_mux, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"max xmit", P_BYTES, P_GLOBAL, &Globals.max_xmit, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-
-       {"name resolve order", P_LIST, P_GLOBAL, &Globals.szNameResolveOrder, NULL, NULL, FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
-       {"max wins ttl", P_INTEGER, P_GLOBAL, &Globals.max_wins_ttl, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"min wins ttl", P_INTEGER, P_GLOBAL, &Globals.min_wins_ttl, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"time server", P_BOOL, P_GLOBAL, &Globals.bTimeServer, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"unix extensions", P_BOOL, P_GLOBAL, &Globals.bUnixExtensions, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"use spnego", P_BOOL, P_GLOBAL, &Globals.bUseSpnego, NULL, NULL, FLAG_DEVELOPER},
-       {"server signing", P_ENUM, P_GLOBAL, &Globals.server_signing, NULL, enum_smb_signing_vals, FLAG_ADVANCED}, 
-       {"client signing", P_ENUM, P_GLOBAL, &Globals.client_signing, NULL, enum_smb_signing_vals, FLAG_ADVANCED}, 
-       {"rpc big endian", P_BOOL, P_GLOBAL, &Globals.bRpcBigEndian, NULL, NULL, FLAG_DEVELOPER},
-
-       {"Tuning Options", P_SEP, P_SEPARATOR},
-               
-       {"max connections", P_INTEGER, P_LOCAL, &sDefault.iMaxConnections, NULL, NULL, FLAG_SHARE},
-       {"paranoid server security", P_BOOL, P_GLOBAL, &Globals.paranoid_server_security, NULL, NULL, FLAG_DEVELOPER},
-       {"socket options", P_STRING, P_GLOBAL, &Globals.socket_options, NULL, NULL, FLAG_DEVELOPER},
-
-       {"strict sync", P_BOOL, P_LOCAL, &sDefault.bStrictSync, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, 
-       {"case insensitive filesystem", P_BOOL, P_LOCAL, &sDefault.bCIFileSystem, NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, 
-
-       {"Printing Options", P_SEP, P_SEPARATOR},
-       
-       {"max print jobs", P_INTEGER, P_LOCAL, &sDefault.iMaxPrintJobs, NULL, NULL, FLAG_PRINT},
-       {"printable", P_BOOL, P_LOCAL, &sDefault.bPrint_ok, NULL, NULL, FLAG_PRINT},
-       {"print ok", P_BOOL, P_LOCAL, &sDefault.bPrint_ok, NULL, NULL, FLAG_HIDE},
-       
-       {"printer name", P_STRING, P_LOCAL, &sDefault.szPrintername, NULL, NULL, FLAG_PRINT},
-       {"printer", P_STRING, P_LOCAL, &sDefault.szPrintername, NULL, NULL, FLAG_HIDE},
-
-       {"Filename Handling", P_SEP, P_SEPARATOR},
+       {"smb ports", P_LIST, P_GLOBAL, GLOBAL_VAR(smb_ports), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"nbt port", P_INTEGER, P_GLOBAL, GLOBAL_VAR(nbt_port), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"dgram port", P_INTEGER, P_GLOBAL, GLOBAL_VAR(dgram_port), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"cldap port", P_INTEGER, P_GLOBAL, GLOBAL_VAR(cldap_port), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"krb5 port", P_INTEGER, P_GLOBAL, GLOBAL_VAR(krb5_port), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"kpasswd port", P_INTEGER, P_GLOBAL, GLOBAL_VAR(kpasswd_port), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"web port", P_INTEGER, P_GLOBAL, GLOBAL_VAR(web_port), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"tls enabled", P_BOOL, P_GLOBAL, GLOBAL_VAR(tls_enabled), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"tls keyfile", P_STRING, P_GLOBAL, GLOBAL_VAR(tls_keyfile), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"tls certfile", P_STRING, P_GLOBAL, GLOBAL_VAR(tls_certfile), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"tls cafile", P_STRING, P_GLOBAL, GLOBAL_VAR(tls_cafile), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"tls crlfile", P_STRING, P_GLOBAL, GLOBAL_VAR(tls_crlfile), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"tls dh params file", P_STRING, P_GLOBAL, GLOBAL_VAR(tls_dhpfile), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"swat directory", P_STRING, P_GLOBAL, GLOBAL_VAR(swat_directory), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"large readwrite", P_BOOL, P_GLOBAL, GLOBAL_VAR(bLargeReadwrite), NULL, NULL, FLAG_DEVELOPER},
+       {"server max protocol", P_ENUM, P_GLOBAL, GLOBAL_VAR(srv_maxprotocol), NULL, enum_protocol, FLAG_DEVELOPER},
+       {"server min protocol", P_ENUM, P_GLOBAL, GLOBAL_VAR(srv_minprotocol), NULL, enum_protocol, FLAG_DEVELOPER},
+       {"client max protocol", P_ENUM, P_GLOBAL, GLOBAL_VAR(cli_maxprotocol), NULL, enum_protocol, FLAG_DEVELOPER},
+       {"client min protocol", P_ENUM, P_GLOBAL, GLOBAL_VAR(cli_minprotocol), NULL, enum_protocol, FLAG_DEVELOPER},
+       {"unicode", P_BOOL, P_GLOBAL, GLOBAL_VAR(bUnicode), NULL, NULL, FLAG_DEVELOPER},
+       {"read raw", P_BOOL, P_GLOBAL, GLOBAL_VAR(bReadRaw), NULL, NULL, FLAG_DEVELOPER},
+       {"write raw", P_BOOL, P_GLOBAL, GLOBAL_VAR(bWriteRaw), NULL, NULL, FLAG_DEVELOPER},
+       {"disable netbios", P_BOOL, P_GLOBAL, GLOBAL_VAR(bDisableNetbios), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
        
-       {"map system", P_BOOL, P_LOCAL, &sDefault.bMap_system, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
-       {"map hidden", P_BOOL, P_LOCAL, &sDefault.bMap_hidden, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
-       {"map archive", P_BOOL, P_LOCAL, &sDefault.bMap_archive, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
-
-       {"Domain Options", P_SEP, P_SEPARATOR},
+       {"nt status support", P_BOOL, P_GLOBAL, GLOBAL_VAR(bNTStatusSupport), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+
+       {"announce version", P_STRING, P_GLOBAL, GLOBAL_VAR(szAnnounceVersion), NULL, NULL, FLAG_DEVELOPER},
+       {"announce as", P_ENUM, P_GLOBAL, GLOBAL_VAR(announce_as), NULL, enum_announce_as, FLAG_DEVELOPER},
+       {"max mux", P_INTEGER, P_GLOBAL, GLOBAL_VAR(max_mux), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"max xmit", P_BYTES, P_GLOBAL, GLOBAL_VAR(max_xmit), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+
+       {"name resolve order", P_LIST, P_GLOBAL, GLOBAL_VAR(szNameResolveOrder), NULL, NULL, FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
+       {"max wins ttl", P_INTEGER, P_GLOBAL, GLOBAL_VAR(max_wins_ttl), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"min wins ttl", P_INTEGER, P_GLOBAL, GLOBAL_VAR(min_wins_ttl), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"time server", P_BOOL, P_GLOBAL, GLOBAL_VAR(bTimeServer), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"unix extensions", P_BOOL, P_GLOBAL, GLOBAL_VAR(bUnixExtensions), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"use spnego", P_BOOL, P_GLOBAL, GLOBAL_VAR(bUseSpnego), NULL, NULL, FLAG_DEVELOPER},
+       {"server signing", P_ENUM, P_GLOBAL, GLOBAL_VAR(server_signing), NULL, enum_smb_signing_vals, FLAG_ADVANCED}, 
+       {"client signing", P_ENUM, P_GLOBAL, GLOBAL_VAR(client_signing), NULL, enum_smb_signing_vals, FLAG_ADVANCED}, 
+       {"rpc big endian", P_BOOL, P_GLOBAL, GLOBAL_VAR(bRpcBigEndian), NULL, NULL, FLAG_DEVELOPER},
+
+       {"max connections", P_INTEGER, P_LOCAL, LOCAL_VAR(iMaxConnections), NULL, NULL, FLAG_SHARE},
+       {"paranoid server security", P_BOOL, P_GLOBAL, GLOBAL_VAR(paranoid_server_security), NULL, NULL, FLAG_DEVELOPER},
+       {"socket options", P_STRING, P_GLOBAL, GLOBAL_VAR(socket_options), NULL, NULL, FLAG_DEVELOPER},
+
+       {"strict sync", P_BOOL, P_LOCAL, LOCAL_VAR(bStrictSync), NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, 
+       {"case insensitive filesystem", P_BOOL, P_LOCAL, LOCAL_VAR(bCIFileSystem), NULL, NULL, FLAG_ADVANCED | FLAG_SHARE}, 
+
+       {"max print jobs", P_INTEGER, P_LOCAL, LOCAL_VAR(iMaxPrintJobs), NULL, NULL, FLAG_PRINT},
+       {"printable", P_BOOL, P_LOCAL, LOCAL_VAR(bPrint_ok), NULL, NULL, FLAG_PRINT},
+       {"print ok", P_BOOL, P_LOCAL, LOCAL_VAR(bPrint_ok), NULL, NULL, FLAG_HIDE},
        
-       {"Logon Options", P_SEP, P_SEPARATOR},
-
+       {"printer name", P_STRING, P_LOCAL, LOCAL_VAR(szPrintername), NULL, NULL, FLAG_PRINT},
+       {"printer", P_STRING, P_LOCAL, LOCAL_VAR(szPrintername), NULL, NULL, FLAG_HIDE},
 
-       {"Browse Options", P_SEP, P_SEPARATOR},
-       
-       {"preferred master", P_ENUM, P_GLOBAL, &Globals.bPreferredMaster, NULL, enum_bool_auto, FLAG_BASIC | FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"prefered master", P_ENUM, P_GLOBAL, &Globals.bPreferredMaster, NULL, enum_bool_auto, FLAG_HIDE},
-       {"local master", P_BOOL, P_GLOBAL, &Globals.bLocalMaster, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"browseable", P_BOOL, P_LOCAL, &sDefault.bBrowseable, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT | FLAG_DEVELOPER},
-       {"browsable", P_BOOL, P_LOCAL, &sDefault.bBrowseable, NULL, NULL, FLAG_HIDE},
+       {"map system", P_BOOL, P_LOCAL, LOCAL_VAR(bMap_system), NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+       {"map hidden", P_BOOL, P_LOCAL, LOCAL_VAR(bMap_hidden), NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+       {"map archive", P_BOOL, P_LOCAL, LOCAL_VAR(bMap_archive), NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
 
-       {"WINS Options", P_SEP, P_SEPARATOR},
-       
-       {"wins server", P_LIST, P_GLOBAL, &Globals.szWINSservers, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
-       {"wins support", P_BOOL, P_GLOBAL, &Globals.bWINSsupport, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
-       {"dns proxy", P_BOOL, P_GLOBAL, &Globals.bWINSdnsProxy, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
-       {"wins hook", P_STRING, P_GLOBAL, &Globals.szWINSHook, NULL, NULL, FLAG_ADVANCED}, 
+       {"preferred master", P_ENUM, P_GLOBAL, GLOBAL_VAR(bPreferredMaster), NULL, enum_bool_auto, FLAG_BASIC | FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"prefered master", P_ENUM, P_GLOBAL, GLOBAL_VAR(bPreferredMaster), NULL, enum_bool_auto, FLAG_HIDE},
+       {"local master", P_BOOL, P_GLOBAL, GLOBAL_VAR(bLocalMaster), NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"browseable", P_BOOL, P_LOCAL, LOCAL_VAR(bBrowseable), NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT | FLAG_DEVELOPER},
+       {"browsable", P_BOOL, P_LOCAL, LOCAL_VAR(bBrowseable), NULL, NULL, FLAG_HIDE},
 
-       {"Locking Options", P_SEP, P_SEPARATOR},
-       
-       {"csc policy", P_ENUM, P_LOCAL, &sDefault.iCSCPolicy, NULL, enum_csc_policy, FLAG_SHARE | FLAG_GLOBAL},
-       
-       {"strict locking", P_BOOL, P_LOCAL, &sDefault.bStrictLocking, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+       {"wins server", P_LIST, P_GLOBAL, GLOBAL_VAR(szWINSservers), NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
+       {"wins support", P_BOOL, P_GLOBAL, GLOBAL_VAR(bWINSsupport), NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
+       {"dns proxy", P_BOOL, P_GLOBAL, GLOBAL_VAR(bWINSdnsProxy), NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_WIZARD | FLAG_DEVELOPER},
+       {"wins hook", P_STRING, P_GLOBAL, GLOBAL_VAR(szWINSHook), NULL, NULL, FLAG_ADVANCED}, 
 
-       {"Miscellaneous Options", P_SEP, P_SEPARATOR},
+       {"csc policy", P_ENUM, P_LOCAL, LOCAL_VAR(iCSCPolicy), NULL, enum_csc_policy, FLAG_SHARE | FLAG_GLOBAL},
        
-       {"config file", P_STRING, P_GLOBAL, &Globals.szConfigFile, NULL, NULL, FLAG_HIDE},
-       {"share backend", P_STRING, P_GLOBAL, &Globals.szShareBackend, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"preload", P_STRING, P_GLOBAL, &Globals.szAutoServices, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"auto services", P_STRING, P_GLOBAL, &Globals.szAutoServices, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"lock dir", P_STRING, P_GLOBAL, &Globals.szLockDir, NULL, NULL, FLAG_HIDE}, 
-       {"lock directory", P_STRING, P_GLOBAL, &Globals.szLockDir, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"modules dir", P_STRING, P_GLOBAL, &Globals.szModulesDir, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"pid directory", P_STRING, P_GLOBAL, &Globals.szPidDir, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER}, 
-       {"js include", P_LIST, P_GLOBAL, &Globals.jsInclude, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"jsonrpc services directory", P_STRING, P_GLOBAL, &Globals.jsonrpcServicesDir, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"setup directory", P_STRING, P_GLOBAL, &Globals.szSetupDir, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"strict locking", P_BOOL, P_LOCAL, LOCAL_VAR(bStrictLocking), NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
+
+       {"share backend", P_STRING, P_GLOBAL, GLOBAL_VAR(szShareBackend), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"preload", P_STRING, P_GLOBAL, GLOBAL_VAR(szAutoServices), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"auto services", P_STRING, P_GLOBAL, GLOBAL_VAR(szAutoServices), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"lock dir", P_STRING, P_GLOBAL, GLOBAL_VAR(szLockDir), NULL, NULL, FLAG_HIDE}, 
+       {"lock directory", P_STRING, P_GLOBAL, GLOBAL_VAR(szLockDir), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"modules dir", P_STRING, P_GLOBAL, GLOBAL_VAR(szModulesDir), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"pid directory", P_STRING, P_GLOBAL, GLOBAL_VAR(szPidDir), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER}, 
+       {"js include", P_LIST, P_GLOBAL, GLOBAL_VAR(jsInclude), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"setup directory", P_STRING, P_GLOBAL, GLOBAL_VAR(szSetupDir), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
        
-       {"socket address", P_STRING, P_GLOBAL, &Globals.szSocketAddress, NULL, NULL, FLAG_DEVELOPER},
-       {"-valid", P_BOOL, P_LOCAL, &sDefault.valid, NULL, NULL, FLAG_HIDE},
+       {"socket address", P_STRING, P_GLOBAL, GLOBAL_VAR(szSocketAddress), NULL, NULL, FLAG_DEVELOPER},
+       {"copy", P_STRING, P_LOCAL, LOCAL_VAR(szCopy), handle_copy, NULL, FLAG_HIDE},
+       {"include", P_STRING, P_LOCAL, LOCAL_VAR(szInclude), handle_include, NULL, FLAG_HIDE},
        
-       {"copy", P_STRING, P_LOCAL, &sDefault.szCopy, handle_copy, NULL, FLAG_HIDE},
-       {"include", P_STRING, P_LOCAL, &sDefault.szInclude, handle_include, NULL, FLAG_HIDE},
-       
-       {"available", P_BOOL, P_LOCAL, &sDefault.bAvailable, NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT},
-       {"volume", P_STRING, P_LOCAL, &sDefault.volume, NULL, NULL, FLAG_SHARE },
-       {"fstype", P_STRING, P_LOCAL, &sDefault.fstype, NULL, NULL, FLAG_SHARE},
+       {"available", P_BOOL, P_LOCAL, LOCAL_VAR(bAvailable), NULL, NULL, FLAG_BASIC | FLAG_ADVANCED | FLAG_SHARE | FLAG_PRINT},
+       {"volume", P_STRING, P_LOCAL, LOCAL_VAR(volume), NULL, NULL, FLAG_SHARE },
+       {"fstype", P_STRING, P_LOCAL, LOCAL_VAR(fstype), NULL, NULL, FLAG_SHARE},
 
        {"panic action", P_STRING, P_GLOBAL, &panic_action, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
 
-       {"msdfs root", P_BOOL, P_LOCAL, &sDefault.bMSDfsRoot, NULL, NULL, FLAG_SHARE},
-       {"host msdfs", P_BOOL, P_GLOBAL, &Globals.bHostMSDfs, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
-       {"winbind separator", P_STRING, P_GLOBAL, &Globals.szWinbindSeparator, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER },
-       {"winbindd socket directory", P_STRING, P_GLOBAL, &Globals.szWinbinddSocketDirectory, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER },
-       {"winbind sealed pipes", P_BOOL, P_GLOBAL, &Globals.bWinbindSealedPipes, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER },
-       {"template shell", P_STRING, P_GLOBAL, &Globals.szTemplateShell, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER },
-       {"template homedir", P_STRING, P_GLOBAL, &Globals.szTemplateHomedir, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER },
+       {"msdfs root", P_BOOL, P_LOCAL, LOCAL_VAR(bMSDfsRoot), NULL, NULL, FLAG_SHARE},
+       {"host msdfs", P_BOOL, P_GLOBAL, GLOBAL_VAR(bHostMSDfs), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+       {"winbind separator", P_STRING, P_GLOBAL, GLOBAL_VAR(szWinbindSeparator), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER },
+       {"winbindd socket directory", P_STRING, P_GLOBAL, GLOBAL_VAR(szWinbinddSocketDirectory), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER },
+       {"winbind sealed pipes", P_BOOL, P_GLOBAL, GLOBAL_VAR(bWinbindSealedPipes), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER },
+       {"template shell", P_STRING, P_GLOBAL, GLOBAL_VAR(szTemplateShell), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER },
+       {"template homedir", P_STRING, P_GLOBAL, GLOBAL_VAR(szTemplateHomedir), NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER },
 
        {NULL, P_BOOL, P_NONE, NULL, NULL, NULL, 0}
 };
@@ -576,163 +549,6 @@ struct parm_struct *lp_parm_table(void)
        return parm_table;
 }
 
-/***************************************************************************
- Initialise the global parameter structure.
-***************************************************************************/
-static void init_globals(void)
-{
-       int i;
-       char *myname;
-
-       DEBUG(3, ("Initialising global parameters\n"));
-
-       for (i = 0; parm_table[i].label; i++) {
-               if ((parm_table[i].type == P_STRING ||
-                    parm_table[i].type == P_USTRING) &&
-                   parm_table[i].ptr &&
-                   !(parm_table[i].flags & FLAG_CMDLINE)) {
-                       string_set(parm_table[i].ptr, "");
-               }
-       }
-
-       do_parameter("config file", dyn_CONFIGFILE, NULL);
-
-       do_parameter("share backend", "classic", NULL);
-       
-       do_parameter("server role", "standalone", NULL);
-
-       /* options that can be set on the command line must be initialised via
-          the slower do_parameter() to ensure that FLAG_CMDLINE is obeyed */
-#ifdef TCP_NODELAY
-       do_parameter("socket options", "TCP_NODELAY", NULL);
-#endif
-       do_parameter("workgroup", DEFAULT_WORKGROUP, NULL);
-       myname = get_myname();
-       do_parameter("netbios name", myname, NULL);
-       SAFE_FREE(myname);
-       do_parameter("name resolve order", "lmhosts wins host bcast", NULL);
-
-       do_parameter("fstype", FSTYPE_STRING, NULL);
-       do_parameter("ntvfs handler", "unixuid default", NULL);
-       do_parameter("max connections", "-1", NULL);
-
-       do_parameter("dcerpc endpoint servers", "epmapper srvsvc wkssvc rpcecho samr netlogon lsarpc spoolss drsuapi winreg dssetup unixinfo", NULL);
-       do_parameter("server services", "smb rpc nbt wrepl ldap cldap web kdc drepl winbind", NULL);
-       do_parameter("ntptr providor", "simple_ldb", NULL);
-       do_parameter("auth methods:domain controller", "anonymous sam_ignoredomain", NULL);
-       do_parameter("auth methods:member server", "anonymous sam winbind", NULL);
-       do_parameter("auth methods:standalone", "anonymous sam_ignoredomain", NULL);
-       do_parameter("private dir", dyn_PRIVATE_DIR, NULL);
-       do_parameter("sam database", "sam.ldb", NULL);
-       do_parameter("secrets database", "secrets.ldb", NULL);
-       do_parameter("spoolss database", "spoolss.ldb", NULL);
-       do_parameter("wins config database", "wins_config.ldb", NULL);
-       do_parameter("wins database", "wins.ldb", NULL);
-       do_parameter("registry:HKEY_LOCAL_MACHINE", "hklm.ldb", NULL);
-
-       /* This hive should be dynamically generated by Samba using
-          data from the sam, but for the moment leave it in a tdb to
-          keep regedt32 from popping up an annoying dialog. */
-       do_parameter("registry:HKEY_USERS", "hku.ldb", NULL);
-       
-       /* using UTF8 by default allows us to support all chars */
-       do_parameter("unix charset", "UTF8", NULL);
-
-       /* Use codepage 850 as a default for the dos character set */
-       do_parameter("dos charset", "CP850", NULL);
-
-       /*
-        * Allow the default PASSWD_CHAT to be overridden in local.h.
-        */
-       do_parameter("passwd chat", DEFAULT_PASSWD_CHAT, NULL);
-
-       do_parameter("pid directory", dyn_PIDDIR, NULL);
-       do_parameter("lock dir", dyn_LOCKDIR, NULL);
-       do_parameter("modules dir", dyn_MODULESDIR, NULL);
-       do_parameter("ncalrpc dir", dyn_NCALRPCDIR, NULL);
-
-       do_parameter("socket address", "0.0.0.0", NULL);
-       do_parameter_var("server string", "Samba %s", SAMBA_VERSION_STRING);
-
-       do_parameter_var("announce version", "%d.%d", 
-                        DEFAULT_MAJOR_VERSION,
-                        DEFAULT_MINOR_VERSION);
-
-       do_parameter("password server", "*", NULL);
-
-       do_parameter("max mux", "50", NULL);
-       do_parameter("max xmit", "12288", NULL);
-       do_parameter("password level", "0", NULL);
-       do_parameter("LargeReadwrite", "True", NULL);
-       do_parameter("server min protocol", "CORE", NULL);
-       do_parameter("server max protocol", "NT1", NULL);
-       do_parameter("client min protocol", "CORE", NULL);
-       do_parameter("client max protocol", "NT1", NULL);
-       do_parameter("security", "USER", NULL);
-       do_parameter("paranoid server security", "True", NULL);
-       do_parameter("EncryptPasswords", "True", NULL);
-       do_parameter("ReadRaw", "True", NULL);
-       do_parameter("WriteRaw", "True", NULL);
-       do_parameter("NullPasswords", "False", NULL);
-       do_parameter("ObeyPamRestrictions", "False", NULL);
-       do_parameter("announce as", "NT SERVER", NULL);
-
-       do_parameter("TimeServer", "False", NULL);
-       do_parameter("BindInterfacesOnly", "False", NULL);
-       do_parameter("Unicode", "True", NULL);
-       do_parameter("ClientLanManAuth", "True", NULL);
-       do_parameter("LanmanAuth", "True", NULL);
-       do_parameter("NTLMAuth", "True", NULL);
-       do_parameter("client use spnego principal", "False", NULL);
-       
-       do_parameter("UnixExtensions", "False", NULL);
-
-       do_parameter("PreferredMaster", "Auto", NULL);
-       do_parameter("LocalMaster", "True", NULL);
-
-       do_parameter("wins support", "False", NULL);
-       do_parameter("dns proxy", "True", NULL);
-
-       do_parameter("winbind separator", "\\", NULL);
-       do_parameter("winbind sealed pipes", "True", NULL);
-       do_parameter("winbindd socket directory", dyn_WINBINDD_SOCKET_DIR, NULL);
-       do_parameter("template shell", "/bin/false", NULL);
-       do_parameter("template homedir", "/home/%WORKGROUP%/%ACCOUNTNAME%", NULL);
-
-       do_parameter("client signing", "Yes", NULL);
-       do_parameter("server signing", "auto", NULL);
-
-       do_parameter("use spnego", "True", NULL);
-
-       do_parameter("smb ports", "445 139", NULL);
-       do_parameter("nbt port", "137", NULL);
-       do_parameter("dgram port", "138", NULL);
-       do_parameter("cldap port", "389", NULL);
-       do_parameter("krb5 port", "88", NULL);
-       do_parameter("kpasswd port", "464", NULL);
-       do_parameter("web port", "901", NULL);
-       do_parameter("web application directory", dyn_WEBAPPSDIR, NULL);
-       do_parameter("jsonrpc services directory", dyn_SERVICESDIR, NULL);
-
-       do_parameter("nt status support", "True", NULL);
-
-       do_parameter("max wins ttl", "518400", NULL); /* 6 days */
-       do_parameter("min wins ttl", "10", NULL);
-
-       do_parameter("tls enabled", "True", NULL);
-       do_parameter("tls keyfile", "tls/key.pem", NULL);
-       do_parameter("tls certfile", "tls/cert.pem", NULL);
-       do_parameter("tls cafile", "tls/ca.pem", NULL);
-       do_parameter_var("js include", "%s", dyn_JSDIR);
-       do_parameter_var("setup directory", "%s", dyn_SETUPDIR);
-
-       for (i = 0; parm_table[i].label; i++) {
-               if (!(parm_table[i].flags & FLAG_CMDLINE)) {
-                       parm_table[i].flags |= FLAG_DEFAULT;
-               }
-       }
-}
-
 static TALLOC_CTX *lp_talloc;
 
 /******************************************************************* a
@@ -799,131 +615,124 @@ static const char *lp_string(const char *s)
    parameters from the rest of the program are defined 
 */
 
-#define FN_GLOBAL_STRING(fn_name,ptr) \
- const char *fn_name(void) {return(lp_string(*(char **)(ptr) ? *(char **)(ptr) : ""));}
-#define FN_GLOBAL_CONST_STRING(fn_name,ptr) \
- const char *fn_name(void) {return(*(const char **)(ptr) ? *(const char **)(ptr) : "");}
-#define FN_GLOBAL_LIST(fn_name,ptr) \
- const char **fn_name(void) {return(*(const char ***)(ptr));}
-#define FN_GLOBAL_BOOL(fn_name,ptr) \
BOOL fn_name(void) {return((BOOL)*(int *)(ptr));}
+#define FN_GLOBAL_STRING(fn_name,var_name) \
+ const char *fn_name(struct loadparm_context *lp_ctx) {if (lp_ctx == NULL) return NULL; return lp_ctx->Globals.var_name ? lp_string(lp_ctx->Globals.var_name) : "";}
+#define FN_GLOBAL_CONST_STRING(fn_name,var_name) \
+ const char *fn_name(struct loadparm_context *lp_ctx) {if (lp_ctx == NULL) return NULL; return lp_ctx->Globals.var_name ? lp_ctx->Globals.var_name : "";}
+#define FN_GLOBAL_LIST(fn_name,var_name) \
+ const char **fn_name(struct loadparm_context *lp_ctx) {if (lp_ctx == NULL) return NULL; return lp_ctx->Globals.var_name;}
+#define FN_GLOBAL_BOOL(fn_name,var_name) \
bool fn_name(struct loadparm_context *lp_ctx) {if (lp_ctx == NULL) return false; return lp_ctx->Globals.var_name;}
 #if 0 /* unused */
 #define FN_GLOBAL_CHAR(fn_name,ptr) \
  char fn_name(void) {return(*(char *)(ptr));}
 #endif
-#define FN_GLOBAL_INTEGER(fn_name,ptr) \
- int fn_name(void) {return(*(int *)(ptr));}
+#define FN_GLOBAL_INTEGER(fn_name,var_name) \
+ int fn_name(struct loadparm_context *lp_ctx) {if (lp_ctx == NULL) return 0; return lp_ctx->Globals.var_name;}
 
 #define FN_LOCAL_STRING(fn_name,val) \
- const char *fn_name(int i) {return(lp_string((LP_SNUM_OK(i) && ServicePtrs[(i)]->val) ? ServicePtrs[(i)]->val : sDefault.val));}
+ const char *fn_name(struct loadparm_service *service) {return(lp_string((const char *)((service != NULL && service->val != NULL) ? service->val : sDefault.val)));}
 #define FN_LOCAL_CONST_STRING(fn_name,val) \
- const char *fn_name(int i) {return (const char *)((LP_SNUM_OK(i) && ServicePtrs[(i)]->val) ? ServicePtrs[(i)]->val : sDefault.val);}
+ const char *fn_name(struct loadparm_service *service) {return (const char *)(service != NULL && service->val != NULL) ? service->val : sDefault.val;}
 #define FN_LOCAL_LIST(fn_name,val) \
- const char **fn_name(int i) {return(const char **)(LP_SNUM_OK(i)? ServicePtrs[(i)]->val : sDefault.val);}
+ const char **fn_name(struct loadparm_service *service) {return(const char **)(service != NULL && service->val != NULL? service->val : sDefault.val);}
 #define FN_LOCAL_BOOL(fn_name,val) \
- BOOL fn_name(int i) {return(LP_SNUM_OK(i)? ServicePtrs[(i)]->val : sDefault.val);}
-#if 0 /* unused */
-#define FN_LOCAL_CHAR(fn_name,val) \
- char fn_name(int i) {return(LP_SNUM_OK(i)? ServicePtrs[(i)]->val : sDefault.val);}
-#endif
+ bool fn_name(struct loadparm_service *service) {return((service != NULL)? service->val : sDefault.val);}
 #define FN_LOCAL_INTEGER(fn_name,val) \
- int fn_name(int i) {return(LP_SNUM_OK(i)? ServicePtrs[(i)]->val : sDefault.val);}
-
-_PUBLIC_ FN_GLOBAL_INTEGER(lp_server_role, &Globals.server_role)
-_PUBLIC_ FN_GLOBAL_LIST(lp_smb_ports, &Globals.smb_ports)
-_PUBLIC_ FN_GLOBAL_INTEGER(lp_nbt_port, &Globals.nbt_port)
-_PUBLIC_ FN_GLOBAL_INTEGER(lp_dgram_port, &Globals.dgram_port)
-_PUBLIC_ FN_GLOBAL_INTEGER(lp_cldap_port, &Globals.cldap_port)
-_PUBLIC_ FN_GLOBAL_INTEGER(lp_krb5_port, &Globals.krb5_port)
-_PUBLIC_ FN_GLOBAL_INTEGER(lp_kpasswd_port, &Globals.kpasswd_port)
-_PUBLIC_ FN_GLOBAL_INTEGER(lp_web_port, &Globals.web_port)
-_PUBLIC_ FN_GLOBAL_STRING(lp_dos_charset, &dos_charset)
-_PUBLIC_ FN_GLOBAL_STRING(lp_webapps_directory, &Globals.webapps_directory)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_tls_enabled, &Globals.tls_enabled)
-_PUBLIC_ FN_GLOBAL_STRING(lp_tls_keyfile, &Globals.tls_keyfile)
-_PUBLIC_ FN_GLOBAL_STRING(lp_tls_certfile, &Globals.tls_certfile)
-_PUBLIC_ FN_GLOBAL_STRING(lp_tls_cafile, &Globals.tls_cafile)
-_PUBLIC_ FN_GLOBAL_STRING(lp_tls_crlfile, &Globals.tls_crlfile)
-_PUBLIC_ FN_GLOBAL_STRING(lp_tls_dhpfile, &Globals.tls_dhpfile)
-_PUBLIC_ FN_GLOBAL_STRING(lp_unix_charset, &unix_charset)
-_PUBLIC_ FN_GLOBAL_STRING(lp_display_charset, &display_charset)
-_PUBLIC_ FN_GLOBAL_STRING(lp_configfile, &Globals.szConfigFile)
-_PUBLIC_ FN_GLOBAL_STRING(lp_share_backend, &Globals.szShareBackend)
-_PUBLIC_ FN_GLOBAL_STRING(lp_sam_url, &Globals.szSAM_URL)
-_PUBLIC_ FN_GLOBAL_STRING(lp_secrets_url, &Globals.szSECRETS_URL)
-_PUBLIC_ FN_GLOBAL_STRING(lp_spoolss_url, &Globals.szSPOOLSS_URL)
-_PUBLIC_ FN_GLOBAL_STRING(lp_wins_config_url, &Globals.szWINS_CONFIG_URL)
-_PUBLIC_ FN_GLOBAL_STRING(lp_wins_url, &Globals.szWINS_URL)
-_PUBLIC_ FN_GLOBAL_CONST_STRING(lp_winbind_separator, &Globals.szWinbindSeparator)
-_PUBLIC_ FN_GLOBAL_CONST_STRING(lp_winbindd_socket_directory, &Globals.szWinbinddSocketDirectory)
-_PUBLIC_ FN_GLOBAL_CONST_STRING(lp_template_shell, &Globals.szTemplateShell)
-_PUBLIC_ FN_GLOBAL_CONST_STRING(lp_template_homedir, &Globals.szTemplateHomedir)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_winbind_sealed_pipes, &Globals.bWinbindSealedPipes)
-_PUBLIC_ FN_GLOBAL_STRING(lp_private_dir, &Globals.szPrivateDir)
-_PUBLIC_ FN_GLOBAL_STRING(lp_serverstring, &Globals.szServerString)
-_PUBLIC_ FN_GLOBAL_STRING(lp_lockdir, &Globals.szLockDir)
-_PUBLIC_ FN_GLOBAL_STRING(lp_modulesdir, &Globals.szModulesDir)
-_PUBLIC_ FN_GLOBAL_STRING(lp_setupdir, &Globals.szSetupDir)
-_PUBLIC_ FN_GLOBAL_STRING(lp_ncalrpc_dir, &Globals.ncalrpc_dir)
-_PUBLIC_ FN_GLOBAL_STRING(lp_piddir, &Globals.szPidDir)
-_PUBLIC_ FN_GLOBAL_LIST(lp_dcerpc_endpoint_servers, &Globals.dcerpc_ep_servers)
-_PUBLIC_ FN_GLOBAL_LIST(lp_server_services, &Globals.server_services)
-_PUBLIC_ FN_GLOBAL_STRING(lp_ntptr_providor, &Globals.ntptr_providor)
-_PUBLIC_ FN_GLOBAL_STRING(lp_auto_services, &Globals.szAutoServices)
-_PUBLIC_ FN_GLOBAL_STRING(lp_passwd_chat, &Globals.szPasswdChat)
-_PUBLIC_ FN_GLOBAL_LIST(lp_passwordserver, &Globals.szPasswordServers)
-_PUBLIC_ FN_GLOBAL_LIST(lp_name_resolve_order, &Globals.szNameResolveOrder)
-_PUBLIC_ FN_GLOBAL_STRING(lp_realm, &Globals.szRealm)
-_PUBLIC_ FN_GLOBAL_STRING(lp_socket_options, &Globals.socket_options)
-_PUBLIC_ FN_GLOBAL_STRING(lp_workgroup, &Globals.szWorkgroup)
-_PUBLIC_ FN_GLOBAL_STRING(lp_netbios_name, &Globals.szNetbiosName)
-_PUBLIC_ FN_GLOBAL_STRING(lp_netbios_scope, &Globals.szNetbiosScope)
-_PUBLIC_ FN_GLOBAL_LIST(lp_wins_server_list, &Globals.szWINSservers)
-_PUBLIC_ FN_GLOBAL_LIST(lp_interfaces, &Globals.szInterfaces)
-_PUBLIC_ FN_GLOBAL_STRING(lp_socket_address, &Globals.szSocketAddress)
-_PUBLIC_ FN_GLOBAL_LIST(lp_netbios_aliases, &Globals.szNetbiosAliases)
-
-_PUBLIC_ FN_GLOBAL_BOOL(lp_disable_netbios, &Globals.bDisableNetbios)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_wins_support, &Globals.bWINSsupport)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_wins_dns_proxy, &Globals.bWINSdnsProxy)
-_PUBLIC_ FN_GLOBAL_STRING(lp_wins_hook, &Globals.szWINSHook)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_local_master, &Globals.bLocalMaster)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_readraw, &Globals.bReadRaw)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_large_readwrite, &Globals.bLargeReadwrite)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_writeraw, &Globals.bWriteRaw)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_null_passwords, &Globals.bNullPasswords)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_obey_pam_restrictions, &Globals.bObeyPamRestrictions)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_encrypted_passwords, &Globals.bEncryptPasswords)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_time_server, &Globals.bTimeServer)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_bind_interfaces_only, &Globals.bBindInterfacesOnly)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_unicode, &Globals.bUnicode)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_nt_status_support, &Globals.bNTStatusSupport)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_lanman_auth, &Globals.bLanmanAuth)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_ntlm_auth, &Globals.bNTLMAuth)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_client_plaintext_auth, &Globals.bClientPlaintextAuth)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_client_lanman_auth, &Globals.bClientLanManAuth)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_client_ntlmv2_auth, &Globals.bClientNTLMv2Auth)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_client_use_spnego_principal, &Globals.client_use_spnego_principal)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_host_msdfs, &Globals.bHostMSDfs)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_unix_extensions, &Globals.bUnixExtensions)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_use_spnego, &Globals.bUseSpnego)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_rpc_big_endian, &Globals.bRpcBigEndian)
-_PUBLIC_ FN_GLOBAL_INTEGER(lp_max_wins_ttl, &Globals.max_wins_ttl)
-_PUBLIC_ FN_GLOBAL_INTEGER(lp_min_wins_ttl, &Globals.min_wins_ttl)
-_PUBLIC_ FN_GLOBAL_INTEGER(lp_maxmux, &Globals.max_mux)
-_PUBLIC_ FN_GLOBAL_INTEGER(lp_max_xmit, &Globals.max_xmit)
-_PUBLIC_ FN_GLOBAL_INTEGER(lp_passwordlevel, &Globals.pwordlevel)
-_PUBLIC_ FN_GLOBAL_INTEGER(lp_srv_maxprotocol, &Globals.srv_maxprotocol)
-_PUBLIC_ FN_GLOBAL_INTEGER(lp_srv_minprotocol, &Globals.srv_minprotocol)
-_PUBLIC_ FN_GLOBAL_INTEGER(lp_cli_maxprotocol, &Globals.cli_maxprotocol)
-_PUBLIC_ FN_GLOBAL_INTEGER(lp_cli_minprotocol, &Globals.cli_minprotocol)
-_PUBLIC_ FN_GLOBAL_INTEGER(lp_security, &Globals.security)
-_PUBLIC_ FN_GLOBAL_BOOL(lp_paranoid_server_security, &Globals.paranoid_server_security)
-_PUBLIC_ FN_GLOBAL_INTEGER(lp_announce_as, &Globals.announce_as)
-_PUBLIC_ FN_GLOBAL_LIST(lp_js_include, &Globals.jsInclude)
-_PUBLIC_ FN_GLOBAL_STRING(lp_jsonrpc_services_dir, &Globals.jsonrpcServicesDir)
-_PUBLIC_ 
-_PUBLIC_ 
+ int fn_name(struct loadparm_service *service) {return((service != NULL)? service->val : sDefault.val);}
+
+_PUBLIC_ FN_GLOBAL_INTEGER(lp_server_role, server_role)
+_PUBLIC_ FN_GLOBAL_LIST(lp_smb_ports, smb_ports)
+_PUBLIC_ FN_GLOBAL_INTEGER(lp_nbt_port, nbt_port)
+_PUBLIC_ FN_GLOBAL_INTEGER(lp_dgram_port, dgram_port)
+_PUBLIC_ FN_GLOBAL_INTEGER(lp_cldap_port, cldap_port)
+_PUBLIC_ FN_GLOBAL_INTEGER(lp_krb5_port, krb5_port)
+_PUBLIC_ FN_GLOBAL_INTEGER(lp_kpasswd_port, kpasswd_port)
+_PUBLIC_ FN_GLOBAL_INTEGER(lp_web_port, web_port)
+_PUBLIC_ FN_GLOBAL_STRING(lp_swat_directory, swat_directory)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_tls_enabled, tls_enabled)
+_PUBLIC_ FN_GLOBAL_STRING(lp_tls_keyfile, tls_keyfile)
+_PUBLIC_ FN_GLOBAL_STRING(lp_tls_certfile, tls_certfile)
+_PUBLIC_ FN_GLOBAL_STRING(lp_tls_cafile, tls_cafile)
+_PUBLIC_ FN_GLOBAL_STRING(lp_tls_crlfile, tls_crlfile)
+_PUBLIC_ FN_GLOBAL_STRING(lp_tls_dhpfile, tls_dhpfile)
+_PUBLIC_ FN_GLOBAL_STRING(lp_share_backend, szShareBackend)
+_PUBLIC_ FN_GLOBAL_STRING(lp_sam_url, szSAM_URL)
+_PUBLIC_ FN_GLOBAL_STRING(lp_secrets_url, szSECRETS_URL)
+_PUBLIC_ FN_GLOBAL_STRING(lp_spoolss_url, szSPOOLSS_URL)
+_PUBLIC_ FN_GLOBAL_STRING(lp_wins_config_url, szWINS_CONFIG_URL)
+_PUBLIC_ FN_GLOBAL_STRING(lp_wins_url, szWINS_URL)
+_PUBLIC_ FN_GLOBAL_CONST_STRING(lp_winbind_separator, szWinbindSeparator)
+_PUBLIC_ FN_GLOBAL_CONST_STRING(lp_winbindd_socket_directory, szWinbinddSocketDirectory)
+_PUBLIC_ FN_GLOBAL_CONST_STRING(lp_template_shell, szTemplateShell)
+_PUBLIC_ FN_GLOBAL_CONST_STRING(lp_template_homedir, szTemplateHomedir)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_winbind_sealed_pipes, bWinbindSealedPipes)
+_PUBLIC_ FN_GLOBAL_STRING(lp_private_dir, szPrivateDir)
+_PUBLIC_ FN_GLOBAL_STRING(lp_serverstring, szServerString)
+_PUBLIC_ FN_GLOBAL_STRING(lp_lockdir, szLockDir)
+_PUBLIC_ FN_GLOBAL_STRING(lp_modulesdir, szModulesDir)
+_PUBLIC_ FN_GLOBAL_STRING(lp_setupdir, szSetupDir)
+_PUBLIC_ FN_GLOBAL_STRING(lp_ncalrpc_dir, ncalrpc_dir)
+_PUBLIC_ FN_GLOBAL_STRING(lp_dos_charset, dos_charset)
+_PUBLIC_ FN_GLOBAL_STRING(lp_unix_charset, unix_charset)
+_PUBLIC_ FN_GLOBAL_STRING(lp_display_charset, display_charset)
+_PUBLIC_ FN_GLOBAL_STRING(lp_piddir, szPidDir)
+_PUBLIC_ FN_GLOBAL_LIST(lp_dcerpc_endpoint_servers, dcerpc_ep_servers)
+_PUBLIC_ FN_GLOBAL_LIST(lp_server_services, server_services)
+_PUBLIC_ FN_GLOBAL_STRING(lp_ntptr_providor, ntptr_providor)
+_PUBLIC_ FN_GLOBAL_STRING(lp_auto_services, szAutoServices)
+_PUBLIC_ FN_GLOBAL_STRING(lp_passwd_chat, szPasswdChat)
+_PUBLIC_ FN_GLOBAL_LIST(lp_passwordserver, szPasswordServers)
+_PUBLIC_ FN_GLOBAL_LIST(lp_name_resolve_order, szNameResolveOrder)
+_PUBLIC_ FN_GLOBAL_STRING(lp_realm, szRealm)
+_PUBLIC_ FN_GLOBAL_STRING(lp_socket_options, socket_options)
+_PUBLIC_ FN_GLOBAL_STRING(lp_workgroup, szWorkgroup)
+_PUBLIC_ FN_GLOBAL_STRING(lp_netbios_name, szNetbiosName)
+_PUBLIC_ FN_GLOBAL_STRING(lp_netbios_scope, szNetbiosScope)
+_PUBLIC_ FN_GLOBAL_LIST(lp_wins_server_list, szWINSservers)
+_PUBLIC_ FN_GLOBAL_LIST(lp_interfaces, szInterfaces)
+_PUBLIC_ FN_GLOBAL_STRING(lp_socket_address, szSocketAddress)
+_PUBLIC_ FN_GLOBAL_LIST(lp_netbios_aliases, szNetbiosAliases)
+
+_PUBLIC_ FN_GLOBAL_BOOL(lp_disable_netbios, bDisableNetbios)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_wins_support, bWINSsupport)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_wins_dns_proxy, bWINSdnsProxy)
+_PUBLIC_ FN_GLOBAL_STRING(lp_wins_hook, szWINSHook)
+_PUBLIC_ FN_GLOBAL_STRING(lp_configfile, szConfigFile)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_local_master, bLocalMaster)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_readraw, bReadRaw)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_large_readwrite, bLargeReadwrite)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_writeraw, bWriteRaw)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_null_passwords, bNullPasswords)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_obey_pam_restrictions, bObeyPamRestrictions)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_encrypted_passwords, bEncryptPasswords)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_time_server, bTimeServer)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_bind_interfaces_only, bBindInterfacesOnly)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_unicode, bUnicode)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_nt_status_support, bNTStatusSupport)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_lanman_auth, bLanmanAuth)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_ntlm_auth, bNTLMAuth)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_client_plaintext_auth, bClientPlaintextAuth)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_client_lanman_auth, bClientLanManAuth)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_client_ntlmv2_auth, bClientNTLMv2Auth)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_client_use_spnego_principal, client_use_spnego_principal)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_host_msdfs, bHostMSDfs)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_unix_extensions, bUnixExtensions)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_use_spnego, bUseSpnego)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_rpc_big_endian, bRpcBigEndian)
+_PUBLIC_ FN_GLOBAL_INTEGER(lp_max_wins_ttl, max_wins_ttl)
+_PUBLIC_ FN_GLOBAL_INTEGER(lp_min_wins_ttl, min_wins_ttl)
+_PUBLIC_ FN_GLOBAL_INTEGER(lp_maxmux, max_mux)
+_PUBLIC_ FN_GLOBAL_INTEGER(lp_max_xmit, max_xmit)
+_PUBLIC_ FN_GLOBAL_INTEGER(lp_passwordlevel, pwordlevel)
+_PUBLIC_ FN_GLOBAL_INTEGER(lp_srv_maxprotocol, srv_maxprotocol)
+_PUBLIC_ FN_GLOBAL_INTEGER(lp_srv_minprotocol, srv_minprotocol)
+_PUBLIC_ FN_GLOBAL_INTEGER(lp_cli_maxprotocol, cli_maxprotocol)
+_PUBLIC_ FN_GLOBAL_INTEGER(lp_cli_minprotocol, cli_minprotocol)
+_PUBLIC_ FN_GLOBAL_INTEGER(lp_security, security)
+_PUBLIC_ FN_GLOBAL_BOOL(lp_paranoid_server_security, paranoid_server_security)
+_PUBLIC_ FN_GLOBAL_INTEGER(lp_announce_as, announce_as)
+_PUBLIC_ FN_GLOBAL_LIST(lp_js_include, jsInclude)
 _PUBLIC_ FN_LOCAL_STRING(lp_servicename, szService)
 _PUBLIC_ FN_LOCAL_CONST_STRING(lp_const_servicename, szService)
 _PUBLIC_ FN_LOCAL_STRING(lp_pathname, szPath)
@@ -950,32 +759,31 @@ _PUBLIC_ FN_LOCAL_INTEGER(lp_create_mask, iCreate_mask)
 _PUBLIC_ FN_LOCAL_INTEGER(lp_force_create_mode, iCreate_force_mode)
 _PUBLIC_ FN_LOCAL_INTEGER(lp_dir_mask, iDir_mask)
 _PUBLIC_ FN_LOCAL_INTEGER(lp_force_dir_mode, iDir_force_mode)
-_PUBLIC_ FN_GLOBAL_INTEGER(lp_server_signing, &Globals.server_signing)
-_PUBLIC_ FN_GLOBAL_INTEGER(lp_client_signing, &Globals.client_signing)
+_PUBLIC_ FN_GLOBAL_INTEGER(lp_server_signing, server_signing)
+_PUBLIC_ FN_GLOBAL_INTEGER(lp_client_signing, client_signing)
 
 /* local prototypes */
-
 static int map_parameter(const char *pszParmName);
-static int getservicebyname(const char *pszServiceName,
-                           service * pserviceDest);
-static void copy_service(service * pserviceDest,
-                        service * pserviceSource, int *pcopymapDest);
-static BOOL service_ok(int iService);
-static BOOL do_section(const char *pszSectionName, void *);
-static void init_copymap(service * pservice);
+static struct loadparm_service *getservicebyname(struct loadparm_context *lp_ctx, 
+                                       const char *pszServiceName);
+static void copy_service(struct loadparm_service *pserviceDest,
+                        struct loadparm_service *pserviceSource, 
+                        int *pcopymapDest);
+static bool service_ok(struct loadparm_service *service);
+static bool do_section(const char *pszSectionName, void *);
+static void init_copymap(struct loadparm_service *pservice);
 
 /* This is a helper function for parametrical options support. */
 /* It returns a pointer to parametrical option value if it exists or NULL otherwise */
 /* Actual parametrical functions are quite simple */
-const char *lp_get_parametric(int lookup_service, const char *type, const char *option)
+const char *lp_get_parametric(struct loadparm_context *lp_ctx, 
+                             struct loadparm_service *service, 
+                             const char *type, const char *option)
 {
        char *vfskey;
         struct param_opt *data;
        
-       if (lookup_service >= iNumServices) return NULL;
-       
-       data = (lookup_service < 0) ? 
-               Globals.param_opt : ServicePtrs[lookup_service]->param_opt;
+       data = (service == NULL ? lp_ctx->Globals.param_opt : service->param_opt);
     
        asprintf(&vfskey, "%s:%s", type, option);
        strlower(vfskey);
@@ -988,16 +796,15 @@ const char *lp_get_parametric(int lookup_service, const char *type, const char *
                data = data->next;
        }
 
-       if (lookup_service >= 0) {
+       if (service != NULL) {
                /* Try to fetch the same option but from globals */
                /* but only if we are not already working with Globals */
-               data = Globals.param_opt;
-               while (data) {
+               for (data = lp_ctx->Globals.param_opt; data; 
+                    data = data->next) {
                        if (strcmp(data->key, vfskey) == 0) {
                                free(vfskey);
                                return data->value;
                        }
-                       data = data->next;
                }
        }
 
@@ -1015,7 +822,7 @@ static int lp_int(const char *s)
 
        if (!s) {
                DEBUG(0,("lp_int(%s): is called with NULL!\n",s));
-               return (-1);
+               return -1;
        }
 
        return strtol(s, NULL, 0); 
@@ -1029,7 +836,7 @@ static int lp_ulong(const char *s)
 
        if (!s) {
                DEBUG(0,("lp_int(%s): is called with NULL!\n",s));
-               return (-1);
+               return -1;
        }
 
        return strtoul(s, NULL, 0);
@@ -1043,7 +850,7 @@ static double lp_double(const char *s)
 
        if (!s) {
                DEBUG(0,("lp_double(%s): is called with NULL!\n",s));
-               return (-1);
+               return -1;
        }
 
        return strtod(s, NULL);
@@ -1052,18 +859,18 @@ static double lp_double(const char *s)
 /*******************************************************************
 convenience routine to return boolean parameters.
 ********************************************************************/
-static BOOL lp_bool(const char *s)
+static bool lp_bool(const char *s)
 {
-       BOOL ret = False;
+       bool ret = false;
 
        if (!s) {
                DEBUG(0,("lp_bool(%s): is called with NULL!\n",s));
-               return False;
+               return false;
        }
        
        if (!set_boolean(s, &ret)) {
                DEBUG(0,("lp_bool(%s): value is not boolean!\n",s));
-               return False;
+               return false;
        }
 
        return ret;
@@ -1074,9 +881,11 @@ static BOOL lp_bool(const char *s)
 /* Parametric option has following syntax: 'Type: option = value' */
 /* Returned value is allocated in 'lp_talloc' context */
 
-const char *lp_parm_string(int lookup_service, const char *type, const char *option)
+const char *lp_parm_string(struct loadparm_context *lp_ctx, 
+                          struct loadparm_service *service, const char *type, 
+                          const char *option)
 {
-       const char *value = lp_get_parametric(lookup_service, type, option);
+       const char *value = lp_get_parametric(lp_ctx, service, type, option);
 
        if (value)
                return lp_string(value);
@@ -1088,13 +897,16 @@ const char *lp_parm_string(int lookup_service, const char *type, const char *opt
 /* Parametric option has following syntax: 'Type: option = value' */
 /* Returned value is allocated in 'lp_talloc' context */
 
-const char **lp_parm_string_list(int lookup_service, const char *type, const char *option,
-                                const char *separator)
+const char **lp_parm_string_list(struct loadparm_context *lp_ctx, 
+                                struct loadparm_service *service, 
+                                const char *type, 
+                                const char *option, const char *separator)
 {
-       const char *value = lp_get_parametric(lookup_service, type, option);
+       const char *value = lp_get_parametric(lp_ctx, service, type, option);
        
        if (value)
-               return str_list_make(talloc_autofree_context(), value, separator);
+               return str_list_make(talloc_autofree_context(), value, 
+                                    separator);
 
        return NULL;
 }
@@ -1102,9 +914,11 @@ const char **lp_parm_string_list(int lookup_service, const char *type, const cha
 /* Return parametric option from a given service. Type is a part of option before ':' */
 /* Parametric option has following syntax: 'Type: option = value' */
 
-int lp_parm_int(int lookup_service, const char *type, const char *option, int default_v)
+int lp_parm_int(struct loadparm_context *lp_ctx, 
+               struct loadparm_service *service, const char *type, 
+               const char *option, int default_v)
 {
-       const char *value = lp_get_parametric(lookup_service, type, option);
+       const char *value = lp_get_parametric(lp_ctx, service, type, option);
        
        if (value)
                return lp_int(value);
@@ -1117,11 +931,13 @@ int lp_parm_int(int lookup_service, const char *type, const char *option, int de
  * Parametric option has following syntax: 'Type: option = value'.
  */
 
-int lp_parm_bytes(int lookup_service, const char *type, const char *option, int default_v)
+int lp_parm_bytes(struct loadparm_context *lp_ctx, 
+                 struct loadparm_service *service, const char *type, 
+                 const char *option, int default_v)
 {
        uint64_t bval;
 
-       const char *value = lp_get_parametric(lookup_service, type, option);
+       const char *value = lp_get_parametric(lp_ctx, service, type, option);
 
        if (value && conv_str_size(value, &bval)) {
                if (bval <= INT_MAX) {
@@ -1135,9 +951,11 @@ int lp_parm_bytes(int lookup_service, const char *type, const char *option, int
 /* Return parametric option from a given service. Type is a part of option before ':' */
 /* Parametric option has following syntax: 'Type: option = value' */
 
-unsigned long lp_parm_ulong(int lookup_service, const char *type, const char *option, unsigned long default_v)
+unsigned long lp_parm_ulong(struct loadparm_context *lp_ctx, 
+                           struct loadparm_service *service, const char *type, 
+                           const char *option, unsigned long default_v)
 {
-       const char *value = lp_get_parametric(lookup_service, type, option);
+       const char *value = lp_get_parametric(lp_ctx, service, type, option);
        
        if (value)
                return lp_ulong(value);
@@ -1146,9 +964,11 @@ unsigned long lp_parm_ulong(int lookup_service, const char *type, const char *op
 }
 
 
-double lp_parm_double(int lookup_service, const char *type, const char *option, double default_v)
+double lp_parm_double(struct loadparm_context *lp_ctx, 
+                     struct loadparm_service *service, const char *type, 
+                     const char *option, double default_v)
 {
-       const char *value = lp_get_parametric(lookup_service, type, option);
+       const char *value = lp_get_parametric(lp_ctx, service, type, option);
        
        if (value)
                return lp_double(value);
@@ -1159,9 +979,11 @@ double lp_parm_double(int lookup_service, const char *type, const char *option,
 /* Return parametric option from a given service. Type is a part of option before ':' */
 /* Parametric option has following syntax: 'Type: option = value' */
 
-BOOL lp_parm_bool(int lookup_service, const char *type, const char *option, BOOL default_v)
+bool lp_parm_bool(struct loadparm_context *lp_ctx, 
+                 struct loadparm_service *service, const char *type, 
+                 const char *option, bool default_v)
 {
-       const char *value = lp_get_parametric(lookup_service, type, option);
+       const char *value = lp_get_parametric(lp_ctx, service, type, option);
        
        if (value)
                return lp_bool(value);
@@ -1174,128 +996,103 @@ BOOL lp_parm_bool(int lookup_service, const char *type, const char *option, BOOL
  Initialise a service to the defaults.
 ***************************************************************************/
 
-static void init_service(service * pservice)
+static struct loadparm_service *init_service(TALLOC_CTX *mem_ctx)
 {
-       memset((char *)pservice, '\0', sizeof(service));
+       struct loadparm_service *pservice = 
+               talloc_zero(mem_ctx, struct loadparm_service);
        copy_service(pservice, &sDefault, NULL);
+       return pservice;
 }
 
-/***************************************************************************
- Free the dynamically allocated parts of a service struct.
-***************************************************************************/
-
-static void free_service(service *pservice)
+/**
+ Set a string value, deallocating any existing space, and allocing the space
+ for the string
+**/
+static bool string_set(TALLOC_CTX *mem_ctx, char **dest, const char *src)
 {
-       int i;
-        struct param_opt *data, *pdata;
-       if (!pservice)
-               return;
+       talloc_free(*dest);
 
-       if (pservice->szService)
-               DEBUG(5, ("free_service: Freeing service %s\n",
-                      pservice->szService));
+       if (src == NULL) 
+               src = "";
 
-       string_free(&pservice->szService);
-       SAFE_FREE(pservice->copymap);
-
-       for (i = 0; parm_table[i].label; i++) {
-               if ((parm_table[i].type == P_STRING ||
-                    parm_table[i].type == P_USTRING) &&
-                   parm_table[i].class == P_LOCAL) {
-                       string_free((char **)
-                                   (((char *)pservice) +
-                                    PTR_DIFF(parm_table[i].ptr, &sDefault)));
-               } else if (parm_table[i].type == P_LIST &&
-                          parm_table[i].class == P_LOCAL) {
-                       char ***listp = (char ***)(((char *)pservice) + 
-                                                  PTR_DIFF(parm_table[i].ptr, &sDefault));
-                       talloc_free(*listp);
-                       *listp = NULL;
-               }
-       }
-                               
-       DEBUG(5,("Freeing parametrics:\n"));
-       data = pservice->param_opt;
-       while (data) {
-               DEBUG(5,("[%s = %s]\n", data->key, data->value));
-               string_free(&data->key);
-               string_free(&data->value);
-               pdata = data->next;
-               SAFE_FREE(data);
-               data = pdata;
+       *dest = talloc_strdup(mem_ctx, src);
+       if ((*dest) == NULL) {
+               DEBUG(0,("Out of memory in string_init\n"));
+               return false;
        }
 
-       ZERO_STRUCTP(pservice);
+       return true;
 }
 
+
+
 /***************************************************************************
  Add a new service to the services array initialising it with the given 
  service. 
 ***************************************************************************/
 
-static int add_a_service(const service *pservice, const char *name)
+static struct loadparm_service *add_a_service(struct loadparm_context *lp_ctx, 
+                                    const struct loadparm_service *pservice, 
+                                    const char *name)
 {
        int i;
-       service tservice;
-       int num_to_alloc = iNumServices + 1;
+       struct loadparm_service tservice;
+       int num_to_alloc = lp_ctx->iNumServices + 1;
        struct param_opt *data, *pdata;
 
        tservice = *pservice;
 
        /* it might already exist */
        if (name) {
-               i = getservicebyname(name, NULL);
-               if (i >= 0) {
+               struct loadparm_service *service = getservicebyname(lp_ctx, 
+                                                                   name);
+               if (service != NULL) {
                        /* Clean all parametric options for service */
                        /* They will be added during parsing again */
-                       data = ServicePtrs[i]->param_opt;
+                       data = service->param_opt;
                        while (data) {
-                               string_free(&data->key);
-                               string_free(&data->value);
                                pdata = data->next;
-                               SAFE_FREE(data);
+                               talloc_free(data);
                                data = pdata;
                        }
-                       ServicePtrs[i]->param_opt = NULL;
-                       return (i);
+                       service->param_opt = NULL;
+                       return service;
                }
        }
 
        /* find an invalid one */
-       for (i = 0; i < iNumServices; i++)
-               if (!ServicePtrs[i]->valid)
+       for (i = 0; i < lp_ctx->iNumServices; i++)
+               if (lp_ctx->ServicePtrs[i] == NULL)
                        break;
 
        /* if not, then create one */
-       if (i == iNumServices) {
-               service **tsp;
+       if (i == lp_ctx->iNumServices) {
+               struct loadparm_service **tsp;
                
-               tsp = realloc_p(ServicePtrs, service *, num_to_alloc);
+               tsp = realloc_p(lp_ctx->ServicePtrs, struct loadparm_service *, 
+                               num_to_alloc);
                                           
                if (!tsp) {
                        DEBUG(0,("add_a_service: failed to enlarge ServicePtrs!\n"));
-                       return (-1);
+                       return NULL;
                }
                else {
-                       ServicePtrs = tsp;
-                       ServicePtrs[iNumServices] = malloc_p(service);
+                       lp_ctx->ServicePtrs = tsp;
+                       lp_ctx->ServicePtrs[lp_ctx->iNumServices] = NULL;
                }
-               if (!ServicePtrs[iNumServices]) {
-                       DEBUG(0,("add_a_service: out of memory!\n"));
-                       return (-1);
-               }
-
-               iNumServices++;
-       } else
-               free_service(ServicePtrs[i]);
 
-       ServicePtrs[i]->valid = True;
+               lp_ctx->iNumServices++;
+       } 
 
-       init_service(ServicePtrs[i]);
-       copy_service(ServicePtrs[i], &tservice, NULL);
-       if (name)
-               string_set(&ServicePtrs[i]->szService, name);
-       return (i);
+       lp_ctx->ServicePtrs[i] = init_service(talloc_autofree_context());
+       if (lp_ctx->ServicePtrs[i] == NULL) {
+               DEBUG(0,("add_a_service: out of memory!\n"));
+               return NULL;
+       }
+       copy_service(lp_ctx->ServicePtrs[i], &tservice, NULL);
+       if (name != NULL)
+               string_set(lp_ctx->ServicePtrs[i], &lp_ctx->ServicePtrs[i]->szService, name);
+       return lp_ctx->ServicePtrs[i];
 }
 
 /***************************************************************************
@@ -1303,95 +1100,95 @@ static int add_a_service(const service *pservice, const char *name)
  from service ifrom.
 ***************************************************************************/
 
-BOOL lp_add_home(const char *pszHomename, int iDefaultService, 
+bool lp_add_home(struct loadparm_context *lp_ctx, 
+                const char *pszHomename, 
+                struct loadparm_service *default_service,
                 const char *user, const char *pszHomedir)
 {
-       int i;
-       pstring newHomedir;
+       struct loadparm_service *service;
 
-       i = add_a_service(ServicePtrs[iDefaultService], pszHomename);
+       service = add_a_service(lp_ctx, default_service, pszHomename);
 
-       if (i < 0)
-               return (False);
+       if (service == NULL)
+               return false;
 
-       if (!(*(ServicePtrs[iDefaultService]->szPath))
-           || strequal(ServicePtrs[iDefaultService]->szPath, lp_pathname(-1))) {
-               pstrcpy(newHomedir, pszHomedir);
+       if (!(*(default_service->szPath))
+           || strequal(default_service->szPath, sDefault.szPath)) {
+               service->szPath = talloc_strdup(service, pszHomedir);
        } else {
-               pstrcpy(newHomedir, lp_pathname(iDefaultService));
-               string_sub(newHomedir,"%H", pszHomedir, sizeof(newHomedir)); 
+               service->szPath = string_sub_talloc(service, lp_pathname(default_service),"%H", pszHomedir); 
        }
 
-       string_set(&ServicePtrs[i]->szPath, newHomedir);
-
-       if (!(*(ServicePtrs[i]->comment))) {
-               pstring comment;
-               slprintf(comment, sizeof(comment) - 1,
-                        "Home directory of %s", user);
-               string_set(&ServicePtrs[i]->comment, comment);
+       if (!(*(service->comment))) {
+               service->comment = talloc_asprintf(service, "Home directory of %s", user);
        }
-       ServicePtrs[i]->bAvailable = sDefault.bAvailable;
-       ServicePtrs[i]->bBrowseable = sDefault.bBrowseable;
+       service->bAvailable = default_service->bAvailable;
+       service->bBrowseable = default_service->bBrowseable;
 
-       DEBUG(3, ("adding home's share [%s] for user '%s' at '%s'\n", pszHomename, 
-              user, newHomedir));
+       DEBUG(3, ("adding home's share [%s] for user '%s' at '%s'\n", 
+                 pszHomename, user, service->szPath));
        
-       return (True);
+       return true;
 }
 
 /***************************************************************************
  Add a new service, based on an old one.
 ***************************************************************************/
 
-int lp_add_service(const char *pszService, int iDefaultService)
+struct loadparm_service *lp_add_service(struct loadparm_context *lp_ctx, 
+                              const char *pszService, 
+                              struct loadparm_service *default_service)
 {
-       return (add_a_service(ServicePtrs[iDefaultService], pszService));
+       return add_a_service(lp_ctx, default_service, pszService);
 }
 
 /***************************************************************************
  Add the IPC service.
 ***************************************************************************/
 
-static BOOL lp_add_hidden(const char *name, const char *fstype)
+static bool lp_add_hidden(struct loadparm_context *lp_ctx, const char *name, 
+                         const char *fstype)
 {
-       pstring comment;
-       int i = add_a_service(&sDefault, name);
+       struct loadparm_service *service = add_a_service(lp_ctx, &sDefault, name);
 
-       if (i < 0)
-               return (False);
+       if (service == NULL)
+               return false;
 
-       slprintf(comment, sizeof(comment) - 1,
-                "%s Service (%s)", fstype, Globals.szServerString);
+       string_set(service, &service->szPath, tmpdir());
 
-       string_set(&ServicePtrs[i]->szPath, tmpdir());
-       string_set(&ServicePtrs[i]->comment, comment);
-       string_set(&ServicePtrs[i]->fstype, fstype);
-       ServicePtrs[i]->iMaxConnections = -1;
-       ServicePtrs[i]->bAvailable = True;
-       ServicePtrs[i]->bRead_only = True;
-       ServicePtrs[i]->bPrint_ok = False;
-       ServicePtrs[i]->bBrowseable = False;
+       service->comment = talloc_asprintf(service, "%s Service (%s)", 
+                               fstype, lp_ctx->Globals.szServerString);
+       string_set(service, &service->fstype, fstype);
+       service->iMaxConnections = -1;
+       service->bAvailable = true;
+       service->bRead_only = true;
+       service->bPrint_ok = false;
+       service->bBrowseable = false;
 
        if (strcasecmp(fstype, "IPC") == 0) {
-               lp_do_parameter(i, "ntvfs handler", "default");
+               lp_do_service_parameter(lp_ctx, service, "ntvfs handler", 
+                                       "default");
        }
 
        DEBUG(3, ("adding hidden service %s\n", name));
 
-       return (True);
+       return true;
 }
 
 /***************************************************************************
  Add a new printer service, with defaults coming from service iFrom.
 ***************************************************************************/
 
-BOOL lp_add_printer(const char *pszPrintername, int iDefaultService)
+bool lp_add_printer(struct loadparm_context *lp_ctx,
+                   const char *pszPrintername, 
+                   struct loadparm_service *default_service)
 {
        const char *comment = "From Printcap";
-       int i = add_a_service(ServicePtrs[iDefaultService], pszPrintername);
+       struct loadparm_service *service;
+       service = add_a_service(lp_ctx, default_service, pszPrintername);
 
-       if (i < 0)
-               return (False);
+       if (service == NULL)
+               return false;
 
        /* note that we do NOT default the availability flag to True - */
        /* we take it from the default service passed. This allows all */
@@ -1399,17 +1196,17 @@ BOOL lp_add_printer(const char *pszPrintername, int iDefaultService)
        /* entry (if/when the 'available' keyword is implemented!).    */
 
        /* the printer name is set to the service name. */
-       string_set(&ServicePtrs[i]->szPrintername, pszPrintername);
-       string_set(&ServicePtrs[i]->comment, comment);
-       ServicePtrs[i]->bBrowseable = sDefault.bBrowseable;
+       string_set(service, &service->szPrintername, pszPrintername);
+       string_set(service, &service->comment, comment);
+       service->bBrowseable = sDefault.bBrowseable;
        /* Printers cannot be read_only. */
-       ServicePtrs[i]->bRead_only = False;
+       service->bRead_only = false;
        /* Printer services must be printable. */
-       ServicePtrs[i]->bPrint_ok = True;
+       service->bPrint_ok = true;
 
        DEBUG(3, ("adding printer service %s\n", pszPrintername));
 
-       return (True);
+       return true;
 }
 
 /***************************************************************************
@@ -1422,11 +1219,11 @@ static int map_parameter(const char *pszParmName)
        int iIndex;
 
        if (*pszParmName == '-')
-               return (-1);
+               return -1;
 
        for (iIndex = 0; parm_table[iIndex].label; iIndex++)
                if (strwicmp(parm_table[iIndex].label, pszParmName) == 0)
-                       return (iIndex);
+                       return iIndex;
 
        /* Warn only if it isn't parametric option */
        if (strchr(pszParmName, ':') == NULL)
@@ -1434,7 +1231,7 @@ static int map_parameter(const char *pszParmName)
        /* We do return 'fail' for parametric options as well because they are
           stored in different storage
         */
-       return (-1);
+       return -1;
 }
 
 
@@ -1451,31 +1248,30 @@ struct parm_struct *lp_parm_struct(const char *name)
 /*
   return the parameter pointer for a parameter
 */
-void *lp_parm_ptr(int snum, struct parm_struct *parm)
+void *lp_parm_ptr(struct loadparm_service *service, struct parm_struct *parm)
 {
-       if (snum == -1) {
+       if (service == NULL)
                return parm->ptr;
-       }
-       return ((char *)ServicePtrs[snum]) + PTR_DIFF(parm->ptr, &sDefault);
+
+       return ((char *)service) + PTR_DIFF(parm->ptr, &sDefault);
 }
 
 /***************************************************************************
 Find a service by name. Otherwise works like get_service.
 ***************************************************************************/
 
-static int getservicebyname(const char *pszServiceName, service * pserviceDest)
+static struct loadparm_service *getservicebyname(struct loadparm_context *lp_ctx, 
+                                       const char *pszServiceName)
 {
        int iService;
 
-       for (iService = iNumServices - 1; iService >= 0; iService--)
-               if (VALID(iService) &&
-                   strwicmp(ServicePtrs[iService]->szService, pszServiceName) == 0) {
-                       if (pserviceDest != NULL)
-                               copy_service(pserviceDest, ServicePtrs[iService], NULL);
-                       break;
+       for (iService = lp_ctx->iNumServices - 1; iService >= 0; iService--)
+               if (lp_ctx->ServicePtrs[iService] != NULL &&
+                   strwicmp(lp_ctx->ServicePtrs[iService]->szService, pszServiceName) == 0) {
+                       return lp_ctx->ServicePtrs[iService];
                }
 
-       return (iService);
+       return NULL;
 }
 
 /***************************************************************************
@@ -1483,12 +1279,14 @@ static int getservicebyname(const char *pszServiceName, service * pserviceDest)
  If pcopymapDest is NULL then copy all fields
 ***************************************************************************/
 
-static void copy_service(service * pserviceDest, service * pserviceSource, int *pcopymapDest)
+static void copy_service(struct loadparm_service *pserviceDest, 
+                        struct loadparm_service *pserviceSource, 
+                        int *pcopymapDest)
 {
        int i;
-       BOOL bcopyall = (pcopymapDest == NULL);
+       bool bcopyall = (pcopymapDest == NULL);
        struct param_opt *data, *pdata, *paramo;
-       BOOL not_added;
+       bool not_added;
 
        for (i = 0; parm_table[i].label; i++)
                if (parm_table[i].ptr && parm_table[i].class == P_LOCAL &&
@@ -1513,12 +1311,14 @@ static void copy_service(service * pserviceDest, service * pserviceSource, int *
                                        break;
 
                                case P_STRING:
-                                       string_set(dest_ptr,
+                                       string_set(pserviceDest, 
+                                                  (char **)dest_ptr,
                                                   *(char **)src_ptr);
                                        break;
 
                                case P_USTRING:
-                                       string_set(dest_ptr,
+                                       string_set(pserviceDest, 
+                                                  (char **)dest_ptr,
                                                   *(char **)src_ptr);
                                        strupper(*(char **)dest_ptr);
                                        break;
@@ -1541,25 +1341,26 @@ static void copy_service(service * pserviceDest, service * pserviceSource, int *
        
        data = pserviceSource->param_opt;
        while (data) {
-               not_added = True;
+               not_added = true;
                pdata = pserviceDest->param_opt;
                /* Traverse destination */
                while (pdata) {
                        /* If we already have same option, override it */
                        if (strcmp(pdata->key, data->key) == 0) {
-                               string_free(&pdata->value);
-                               pdata->value = strdup(data->value);
-                               not_added = False;
+                               talloc_free(pdata->value);
+                               pdata->value = talloc_reference(pdata, 
+                                                            data->value);
+                               not_added = false;
                                break;
                        }
                        pdata = pdata->next;
                }
                if (not_added) {
-                       paramo = malloc_p(struct param_opt);
-                       if (!paramo)
+                       paramo = talloc(pserviceDest, struct param_opt);
+                       if (paramo == NULL)
                                smb_panic("OOM");
-                       paramo->key = strdup(data->key);
-                       paramo->value = strdup(data->value);
+                       paramo->key = talloc_reference(paramo, data->key);
+                       paramo->value = talloc_reference(paramo, data->value);
                        DLIST_ADD(pserviceDest->param_opt, paramo);
                }
                data = data->next;
@@ -1571,53 +1372,48 @@ Check a service for consistency. Return False if the service is in any way
 incomplete or faulty, else True.
 ***************************************************************************/
 
-static BOOL service_ok(int iService)
+static bool service_ok(struct loadparm_service *service)
 {
-       BOOL bRetval;
+       bool bRetval;
 
-       bRetval = True;
-       if (ServicePtrs[iService]->szService[0] == '\0') {
+       bRetval = true;
+       if (service->szService[0] == '\0') {
                DEBUG(0, ("The following message indicates an internal error:\n"));
                DEBUG(0, ("No service name in service entry.\n"));
-               bRetval = False;
+               bRetval = false;
        }
 
        /* The [printers] entry MUST be printable. I'm all for flexibility, but */
        /* I can't see why you'd want a non-printable printer service...        */
-       if (strwicmp(ServicePtrs[iService]->szService, PRINTERS_NAME) == 0) {
-               if (!ServicePtrs[iService]->bPrint_ok) {
+       if (strwicmp(service->szService, PRINTERS_NAME) == 0) {
+               if (!service->bPrint_ok) {
                        DEBUG(0, ("WARNING: [%s] service MUST be printable!\n",
-                              ServicePtrs[iService]->szService));
-                       ServicePtrs[iService]->bPrint_ok = True;
+                              service->szService));
+                       service->bPrint_ok = true;
                }
                /* [printers] service must also be non-browsable. */
-               if (ServicePtrs[iService]->bBrowseable)
-                       ServicePtrs[iService]->bBrowseable = False;
+               if (service->bBrowseable)
+                       service->bBrowseable = false;
        }
 
        /* If a service is flagged unavailable, log the fact at level 0. */
-       if (!ServicePtrs[iService]->bAvailable)
+       if (!service->bAvailable)
                DEBUG(1, ("NOTE: Service %s is flagged unavailable.\n",
-                         ServicePtrs[iService]->szService));
+                         service->szService));
 
-       return (bRetval);
+       return bRetval;
 }
 
-static struct file_lists {
-       struct file_lists *next;
-       char *name;
-       char *subfname;
-       time_t modtime;
-} *file_lists = NULL;
 
 /*******************************************************************
  Keep a linked list of all config files so we know when one has changed 
  it's date and needs to be reloaded.
 ********************************************************************/
 
-static void add_to_file_list(const char *fname, const char *subfname)
+static void add_to_file_list(struct loadparm_context *lp_ctx, 
+                            const char *fname, const char *subfname)
 {
-       struct file_lists *f = file_lists;
+       struct file_lists *f = lp_ctx->file_lists;
 
        while (f) {
                if (f->name && !strcmp(f->name, fname))
@@ -1626,21 +1422,21 @@ static void add_to_file_list(const char *fname, const char *subfname)
        }
 
        if (!f) {
-               f = malloc_p(struct file_lists);
+               f = talloc(talloc_autofree_context(), struct file_lists);
                if (!f)
                        return;
-               f->next = file_lists;
-               f->name = strdup(fname);
+               f->next = lp_ctx->file_lists;
+               f->name = talloc_strdup(f, fname);
                if (!f->name) {
-                       SAFE_FREE(f);
+                       talloc_free(f);
                        return;
                }
-               f->subfname = strdup(subfname);
+               f->subfname = talloc_strdup(f, subfname);
                if (!f->subfname) {
-                       SAFE_FREE(f);
+                       talloc_free(f);
                        return;
                }
-               file_lists = f;
+               lp_ctx->file_lists = f;
                f->modtime = file_modtime(subfname);
        } else {
                time_t t = file_modtime(subfname);
@@ -1653,17 +1449,16 @@ static void add_to_file_list(const char *fname, const char *subfname)
  Check if a config file has changed date.
 ********************************************************************/
 
-BOOL lp_file_list_changed(void)
+bool lp_file_list_changed(struct loadparm_context *lp_ctx)
 {
-       struct file_lists *f = file_lists;
+       struct file_lists *f;
        DEBUG(6, ("lp_file_list_changed()\n"));
 
-       while (f) {
-               pstring n2;
+       for (f = lp_ctx->file_lists; f != NULL; f = f->next) {
+               char *n2;
                time_t mod_time;
 
-               pstrcpy(n2, f->name);
-               standard_sub_basic(n2,sizeof(n2));
+               n2 = standard_sub_basic(talloc_autofree_context(), f->name);
 
                DEBUGADD(6, ("file %s -> %s  last mod_time: %s\n",
                             f->name, n2, ctime(&f->modtime)));
@@ -1671,129 +1466,119 @@ BOOL lp_file_list_changed(void)
                mod_time = file_modtime(n2);
 
                if (mod_time && ((f->modtime != mod_time) || (f->subfname == NULL) || (strcmp(n2, f->subfname) != 0))) {
-                       DEBUGADD(6,
-                                ("file %s modified: %s\n", n2,
+                       DEBUGADD(6, ("file %s modified: %s\n", n2,
                                  ctime(&mod_time)));
                        f->modtime = mod_time;
-                       SAFE_FREE(f->subfname);
-                       f->subfname = strdup(n2);
-                       return (True);
+                       talloc_free(f->subfname);
+                       f->subfname = talloc_strdup(f, n2);
+                       return true;
                }
-               f = f->next;
        }
-       return (False);
+       return false;
 }
 
 /***************************************************************************
  Handle the include operation.
 ***************************************************************************/
 
-static BOOL handle_include(const char *pszParmValue, char **ptr)
+static bool handle_include(struct loadparm_context *lp_ctx, 
+                          const char *pszParmValue, char **ptr)
 {
-       pstring fname;
-       pstrcpy(fname, pszParmValue);
-
-       standard_sub_basic(fname,sizeof(fname));
+       char *fname = standard_sub_basic(talloc_autofree_context(), 
+                                        pszParmValue);
 
-       add_to_file_list(pszParmValue, fname);
+       add_to_file_list(lp_ctx, pszParmValue, fname);
 
-       string_set(ptr, fname);
+       string_set(talloc_autofree_context(), ptr, fname);
 
        if (file_exist(fname))
-               return (pm_process(fname, do_section, do_parameter, NULL));
+               return pm_process(fname, do_section, do_parameter, lp_ctx);
 
        DEBUG(2, ("Can't find include file %s\n", fname));
 
-       return (False);
+       return false;
 }
 
 /***************************************************************************
  Handle the interpretation of the copy parameter.
 ***************************************************************************/
 
-static BOOL handle_copy(const char *pszParmValue, char **ptr)
+static bool handle_copy(struct loadparm_context *lp_ctx, 
+                       const char *pszParmValue, char **ptr)
 {
-       BOOL bRetval;
-       int iTemp;
-       service serviceTemp;
-
-       string_set(ptr, pszParmValue);
+       bool bRetval;
+       struct loadparm_service *serviceTemp;
 
-       init_service(&serviceTemp);
+       string_set(talloc_autofree_context(), ptr, pszParmValue);
 
-       bRetval = False;
+       bRetval = false;
 
        DEBUG(3, ("Copying service from service %s\n", pszParmValue));
 
-       if ((iTemp = getservicebyname(pszParmValue, &serviceTemp)) >= 0) {
-               if (iTemp == iServiceIndex) {
+       if ((serviceTemp = getservicebyname(lp_ctx, pszParmValue)) != NULL) {
+               if (serviceTemp == lp_ctx->currentService) {
                        DEBUG(0, ("Can't copy service %s - unable to copy self!\n", pszParmValue));
                } else {
-                       copy_service(ServicePtrs[iServiceIndex],
-                                    &serviceTemp,
-                                    ServicePtrs[iServiceIndex]->copymap);
-                       bRetval = True;
+                       copy_service(lp_ctx->currentService,
+                                    serviceTemp,
+                                    lp_ctx->currentService->copymap);
+                       bRetval = true;
                }
        } else {
-               DEBUG(0, ("Unable to copy service - source not found: %s\n", pszParmValue));
-               bRetval = False;
+               DEBUG(0, ("Unable to copy service - source not found: %s\n", 
+                         pszParmValue));
+               bRetval = false;
        }
 
-       free_service(&serviceTemp);
-       return (bRetval);
+       return bRetval;
 }
 
 /***************************************************************************
  Initialise a copymap.
 ***************************************************************************/
 
-static void init_copymap(service * pservice)
+static void init_copymap(struct loadparm_service *pservice)
 {
        int i;
-       SAFE_FREE(pservice->copymap);
-       pservice->copymap = malloc_array_p(int, NUMPARAMETERS);
-       if (!pservice->copymap)
+       talloc_free(pservice->copymap);
+       pservice->copymap = talloc_array(pservice, int, NUMPARAMETERS);
+       if (pservice->copymap == NULL) {
                DEBUG(0,
                      ("Couldn't allocate copymap!! (size %d)\n",
                       (int)NUMPARAMETERS));
-       else
-               for (i = 0; i < NUMPARAMETERS; i++)
-                       pservice->copymap[i] = True;
-}
-
-#if 0 /* not used anywhere */
-/***************************************************************************
- Return the local pointer to a parameter given the service number and the 
- pointer into the default structure.
-***************************************************************************/
-
-void *lp_local_ptr(int snum, void *ptr)
-{
-       return (void *)(((char *)ServicePtrs[snum]) + PTR_DIFF(ptr, &sDefault));
+               return;
+       }
+       for (i = 0; i < NUMPARAMETERS; i++)
+               pservice->copymap[i] = true;
 }
-#endif
 
 /***************************************************************************
  Process a parametric option
 ***************************************************************************/
-static BOOL lp_do_parameter_parametric(int snum, const char *pszParmName, const char *pszParmValue, int flags)
+static bool lp_do_parameter_parametric(struct loadparm_context *lp_ctx, 
+                                      struct loadparm_service *service, 
+                                      const char *pszParmName, 
+                                      const char *pszParmValue, int flags)
 {
        struct param_opt *paramo, *data;
        char *name;
+       TALLOC_CTX *mem_ctx;
 
        while (isspace((unsigned char)*pszParmName)) {
                pszParmName++;
        }
 
        name = strdup(pszParmName);
-       if (!name) return False;
+       if (!name) return false;
 
        strlower(name);
 
-       if (snum < 0) {
-               data = Globals.param_opt;
+       if (service == NULL) {
+               data = lp_ctx->Globals.param_opt;
+               mem_ctx = talloc_autofree_context();
        } else {
-               data = ServicePtrs[snum]->param_opt;
+               data = service->param_opt;
+               mem_ctx = service;
        }
 
        /* Traverse destination */
@@ -1803,107 +1588,54 @@ static BOOL lp_do_parameter_parametric(int snum, const char *pszParmName, const
                if (strcmp(paramo->key, name) == 0) {
                        if ((paramo->flags & FLAG_CMDLINE) &&
                            !(flags & FLAG_CMDLINE)) {
-                               return True;
+                               return true;
                        }
 
-                       free(paramo->value);
-                       paramo->value = strdup(pszParmValue);
+                       talloc_free(paramo->value);
+                       paramo->value = talloc_strdup(paramo, pszParmValue);
                        paramo->flags = flags;
                        free(name);
-                       return True;
+                       return true;
                }
        }
 
-       paramo = malloc_p(struct param_opt);
+       paramo = talloc(mem_ctx, struct param_opt);
        if (!paramo)
                smb_panic("OOM");
-       paramo->key = strdup(name);
-       paramo->value = strdup(pszParmValue);
+       paramo->key = talloc_strdup(paramo, name);
+       paramo->value = talloc_strdup(paramo, pszParmValue);
        paramo->flags = flags;
-       if (snum < 0) {
-               DLIST_ADD(Globals.param_opt, paramo);
+       if (service == NULL) {
+               DLIST_ADD(lp_ctx->Globals.param_opt, paramo);
        } else {
-               DLIST_ADD(ServicePtrs[snum]->param_opt, paramo);
+               DLIST_ADD(service->param_opt, paramo);
        }
 
        free(name);
        
-       return True;
+       return true;
 }
 
-/***************************************************************************
- Process a parameter for a particular service number. If snum < 0
- then assume we are in the globals.
-***************************************************************************/
-BOOL lp_do_parameter(int snum, const char *pszParmName, const char *pszParmValue)
+static bool set_variable(TALLOC_CTX *mem_ctx, int parmnum, void *parm_ptr, 
+                        const char *pszParmName, const char *pszParmValue,
+                        struct loadparm_context *lp_ctx)
 {
-       int parmnum, i;
-       void *parm_ptr = NULL;  /* where we are going to store the result */
-       void *def_ptr = NULL;
-
-       parmnum = map_parameter(pszParmName);
-
-       if (parmnum < 0) {
-               if (strchr(pszParmName, ':')) {
-                       return lp_do_parameter_parametric(snum, pszParmName, pszParmValue, 0);
-               }
-               DEBUG(0, ("Ignoring unknown parameter \"%s\"\n", pszParmName));
-               return (True);
-       }
-
-       if (parm_table[parmnum].flags & FLAG_DEPRECATED) {
-               DEBUG(1, ("WARNING: The \"%s\" option is deprecated\n",
-                         pszParmName));
-       }
-
-       /* if the flag has been set on the command line, then don't allow override,
-          but don't report an error */
-       if (parm_table[parmnum].flags & FLAG_CMDLINE) {
-               return True;
-       }
-
-       def_ptr = parm_table[parmnum].ptr;
-
-       /* we might point at a service, the default service or a global */
-       if (snum < 0) {
-               parm_ptr = def_ptr;
-       } else {
-               if (parm_table[parmnum].class == P_GLOBAL) {
-                       DEBUG(0,
-                             ("Global parameter %s found in service section!\n",
-                              pszParmName));
-                       return (True);
-               }
-               parm_ptr =
-                       ((char *)ServicePtrs[snum]) + PTR_DIFF(def_ptr,
-                                                           &sDefault);
-       }
-
-       if (snum >= 0) {
-               if (!ServicePtrs[snum]->copymap)
-                       init_copymap(ServicePtrs[snum]);
-
-               /* this handles the aliases - set the copymap for other entries with
-                  the same data pointer */
-               for (i = 0; parm_table[i].label; i++)
-                       if (parm_table[i].ptr == parm_table[parmnum].ptr)
-                               ServicePtrs[snum]->copymap[i] = False;
-       }
-
+       int i;
        /* if it is a special case then go ahead */
        if (parm_table[parmnum].special) {
-               parm_table[parmnum].special(pszParmValue, (char **)parm_ptr);
-               return (True);
+               parm_table[parmnum].special(lp_ctx, pszParmValue, 
+                                           (char **)parm_ptr);
+               return true;
        }
 
        /* now switch on the type of variable it is */
        switch (parm_table[parmnum].type)
        {
                case P_BOOL: {
-                       BOOL b;
+                       bool b;
                        if (!set_boolean(pszParmValue, &b)) {
                                DEBUG(0,("lp_do_parameter(%s): value is not boolean!\n", pszParmValue));
-                               return False;
+                               return false;
                        }
                        *(int *)parm_ptr = b;
                        }
@@ -1929,20 +1661,20 @@ BOOL lp_do_parameter(int snum, const char *pszParmName, const char *pszParmValue
 
                        DEBUG(0,("lp_do_parameter(%s): value is not "
                            "a valid size specifier!\n", pszParmValue));
-                       return False;
+                       return false;
                }
 
                case P_LIST:
-                       *(const char ***)parm_ptr = str_list_make(talloc_autofree_context()
+                       *(const char ***)parm_ptr = str_list_make(mem_ctx
                                                                  pszParmValue, NULL);
                        break;
 
                case P_STRING:
-                       string_set(parm_ptr, pszParmValue);
+                       string_set(mem_ctx, (char **)parm_ptr, pszParmValue);
                        break;
 
                case P_USTRING:
-                       string_set(parm_ptr, pszParmValue);
+                       string_set(mem_ctx, (char **)parm_ptr, pszParmValue);
                        strupper(*(char **)parm_ptr);
                        break;
 
@@ -1960,11 +1692,9 @@ BOOL lp_do_parameter(int snum, const char *pszParmName, const char *pszParmValue
                        if (!parm_table[parmnum].enum_list[i].name) {
                                DEBUG(0,("Unknown enumerated value '%s' for '%s'\n", 
                                         pszParmValue, pszParmName));
-                               return False;
+                               return false;
                        }
                        break;
-               case P_SEP:
-                       break;
        }
 
        if (parm_table[parmnum].flags & FLAG_DEFAULT) {
@@ -1977,35 +1707,124 @@ BOOL lp_do_parameter(int snum, const char *pszParmName, const char *pszParmValue
                        parm_table[i].flags &= ~FLAG_DEFAULT;
                }
        }
+       return true;
+}
 
-       return (True);
+
+bool lp_do_global_parameter(struct loadparm_context *lp_ctx, 
+                           const char *pszParmName, const char *pszParmValue)
+{
+       int parmnum = map_parameter(pszParmName);
+       void *parm_ptr;
+
+       if (parmnum < 0) {
+               if (strchr(pszParmName, ':')) {
+                       return lp_do_parameter_parametric(lp_ctx, NULL, pszParmName, pszParmValue, 0);
+               }
+               DEBUG(0, ("Ignoring unknown parameter \"%s\"\n", pszParmName));
+               return true;
+       }
+
+       if (parm_table[parmnum].flags & FLAG_DEPRECATED) {
+               DEBUG(1, ("WARNING: The \"%s\" option is deprecated\n",
+                         pszParmName));
+       }
+
+       /* if the flag has been set on the command line, then don't allow override,
+          but don't report an error */
+       if (parm_table[parmnum].flags & FLAG_CMDLINE) {
+               return true;
+       }
+
+       parm_ptr = parm_table[parmnum].ptr;
+
+       return set_variable(talloc_autofree_context(), parmnum, parm_ptr, 
+                           pszParmName, pszParmValue, lp_ctx);
+}
+
+bool lp_do_service_parameter(struct loadparm_context *lp_ctx, 
+                            struct loadparm_service *service, 
+                            const char *pszParmName, const char *pszParmValue)
+{
+       void *def_ptr = NULL;
+       void *parm_ptr;
+       int i;
+       int parmnum = map_parameter(pszParmName);
+
+       if (parmnum < 0) {
+               if (strchr(pszParmName, ':')) {
+                       return lp_do_parameter_parametric(lp_ctx, service, pszParmName, pszParmValue, 0);
+               }
+               DEBUG(0, ("Ignoring unknown parameter \"%s\"\n", pszParmName));
+               return true;
+       }
+
+       if (parm_table[parmnum].flags & FLAG_DEPRECATED) {
+               DEBUG(1, ("WARNING: The \"%s\" option is deprecated\n",
+                         pszParmName));
+       }
+
+       /* if the flag has been set on the command line, then don't allow override,
+          but don't report an error */
+       if (parm_table[parmnum].flags & FLAG_CMDLINE) {
+               return true;
+       }
+
+       def_ptr = parm_table[parmnum].ptr;
+
+       if (parm_table[parmnum].class == P_GLOBAL) {
+               DEBUG(0,
+                     ("Global parameter %s found in service section!\n",
+                      pszParmName));
+               return true;
+       }
+       parm_ptr = ((char *)service) + PTR_DIFF(def_ptr, &sDefault);
+
+       if (!service->copymap)
+               init_copymap(service);
+
+       /* this handles the aliases - set the copymap for other 
+        * entries with the same data pointer */
+       for (i = 0; parm_table[i].label; i++)
+               if (parm_table[i].ptr == parm_table[parmnum].ptr)
+                       service->copymap[i] = false;
+
+       return set_variable(service, parmnum, parm_ptr, pszParmName, 
+                           pszParmValue, lp_ctx);
 }
 
 /***************************************************************************
  Process a parameter.
 ***************************************************************************/
 
-static BOOL do_parameter(const char *pszParmName, const char *pszParmValue, void *userdata)
+static bool do_parameter(const char *pszParmName, const char *pszParmValue, 
+                        void *userdata)
 {
-       return (lp_do_parameter(bInGlobalSection ? -2 : iServiceIndex,
-                               pszParmName, pszParmValue));
+       struct loadparm_context *lp_ctx = (struct loadparm_context *)userdata;
+
+       if (lp_ctx->bInGlobalSection) 
+               return lp_do_global_parameter(lp_ctx, pszParmName, 
+                                             pszParmValue);
+       else 
+               return lp_do_service_parameter(lp_ctx, lp_ctx->currentService,
+                                              pszParmName, pszParmValue);
 }
 
 /*
   variable argument do parameter
 */
-static BOOL do_parameter_var(const char *pszParmName, const char *fmt, ...) PRINTF_ATTRIBUTE(2, 3);
-
-static BOOL do_parameter_var(const char *pszParmName, const char *fmt, ...)
+bool lp_do_global_parameter_var(struct loadparm_context *lp_ctx, const char *pszParmName, const char *fmt, ...) PRINTF_ATTRIBUTE(3, 4);
+bool lp_do_global_parameter_var(struct loadparm_context *lp_ctx, 
+                               const char *pszParmName, const char *fmt, ...) 
 {
        char *s;
-       BOOL ret;
+       bool ret;
        va_list ap;
 
        va_start(ap, fmt);      
        s = talloc_vasprintf(NULL, fmt, ap);
        va_end(ap);
-       ret = do_parameter(pszParmName, s, NULL);
+       ret = lp_do_global_parameter(lp_ctx, pszParmName, s);
        talloc_free(s);
        return ret;
 }
@@ -2016,7 +1835,8 @@ static BOOL do_parameter_var(const char *pszParmName, const char *fmt, ...)
   parsing code. It sets the parameter then marks the parameter as unable to be modified
   by smb.conf processing
 */
-BOOL lp_set_cmdline(const char *pszParmName, const char *pszParmValue)
+bool lp_set_cmdline(struct loadparm_context *lp_ctx, const char *pszParmName, 
+                   const char *pszParmValue)
 {
        int parmnum = map_parameter(pszParmName);
        int i;
@@ -2026,19 +1846,20 @@ BOOL lp_set_cmdline(const char *pszParmName, const char *pszParmValue)
 
        if (parmnum < 0 && strchr(pszParmName, ':')) {
                /* set a parametric option */
-               return lp_do_parameter_parametric(-1, pszParmName, pszParmValue, FLAG_CMDLINE);
+               return lp_do_parameter_parametric(lp_ctx, NULL, pszParmName, 
+                                                 pszParmValue, FLAG_CMDLINE);
        }
 
        if (parmnum < 0) {
                DEBUG(0,("Unknown option '%s'\n", pszParmName));
-               return False;
+               return false;
        }
 
        /* reset the CMDLINE flag in case this has been called before */
        parm_table[parmnum].flags &= ~FLAG_CMDLINE;
 
-       if (!lp_do_parameter(-2, pszParmName, pszParmValue)) {
-               return False;
+       if (!lp_do_global_parameter(lp_ctx, pszParmName, pszParmValue)) {
+               return false;
        }
 
        parm_table[parmnum].flags |= FLAG_CMDLINE;
@@ -2051,31 +1872,31 @@ BOOL lp_set_cmdline(const char *pszParmName, const char *pszParmValue)
                parm_table[i].flags |= FLAG_CMDLINE;
        }
 
-       return True;
+       return true;
 }
 
 /*
   set a option from the commandline in 'a=b' format. Use to support --option
 */
-BOOL lp_set_option(const char *option)
+bool lp_set_option(struct loadparm_context *lp_ctx, const char *option)
 {
        char *p, *s;
-       BOOL ret;
+       bool ret;
 
        s = strdup(option);
        if (!s) {
-               return False;
+               return false;
        }
 
        p = strchr(s, '=');
        if (!p) {
                free(s);
-               return False;
+               return false;
        }
 
        *p = 0;
 
-       ret = lp_set_cmdline(s, p+1);
+       ret = lp_set_cmdline(lp_ctx, s, p+1);
        free(s);
        return ret;
 }
@@ -2103,7 +1924,7 @@ static void print_parameter(struct parm_struct *p, void *ptr, FILE * f)
                        break;
 
                case P_BOOL:
-                       fprintf(f, "%s", BOOLSTR((BOOL)*(int *)ptr));
+                       fprintf(f, "%s", BOOLSTR((bool)*(int *)ptr));
                        break;
 
                case P_INTEGER:
@@ -2131,8 +1952,6 @@ static void print_parameter(struct parm_struct *p, void *ptr, FILE * f)
                                fprintf(f, "%s", *(char **)ptr);
                        }
                        break;
-               case P_SEP:
-                       break;
        }
 }
 
@@ -2140,7 +1959,7 @@ static void print_parameter(struct parm_struct *p, void *ptr, FILE * f)
  Check if two parameters are equal.
 ***************************************************************************/
 
-static BOOL equal_parameter(parm_type type, void *ptr1, void *ptr2)
+static bool equal_parameter(parm_type type, void *ptr1, void *ptr2)
 {
        switch (type) {
                case P_BOOL:
@@ -2166,10 +1985,8 @@ static BOOL equal_parameter(parm_type type, void *ptr1, void *ptr2)
                                p2 = NULL;
                        return (p1 == p2 || strequal(p1, p2));
                }
-               case P_SEP:
-                       break;
        }
-       return (False);
+       return false;
 }
 
 /***************************************************************************
@@ -2178,27 +1995,28 @@ static BOOL equal_parameter(parm_type type, void *ptr1, void *ptr2)
  Returns True on success, False on failure. 
 ***************************************************************************/
 
-static BOOL do_section(const char *pszSectionName, void *userdata)
+static bool do_section(const char *pszSectionName, void *userdata)
 {
-       BOOL bRetval;
-       BOOL isglobal = ((strwicmp(pszSectionName, GLOBAL_NAME) == 0) ||
+       struct loadparm_context *lp_ctx = (struct loadparm_context *)userdata;
+       bool bRetval;
+       bool isglobal = ((strwicmp(pszSectionName, GLOBAL_NAME) == 0) ||
                         (strwicmp(pszSectionName, GLOBAL_NAME2) == 0));
-       bRetval = False;
+       bRetval = false;
 
        /* if we've just struck a global section, note the fact. */
-       bInGlobalSection = isglobal;
+       lp_ctx->bInGlobalSection = isglobal;
 
        /* check for multiple global sections */
-       if (bInGlobalSection) {
+       if (lp_ctx->bInGlobalSection) {
                DEBUG(3, ("Processing section \"[%s]\"\n", pszSectionName));
-               return (True);
+               return true;
        }
 
        /* if we have a current service, tidy it up before moving on */
-       bRetval = True;
+       bRetval = true;
 
-       if (iServiceIndex >= 0)
-               bRetval = service_ok(iServiceIndex);
+       if (lp_ctx->currentService != NULL)
+               bRetval = service_ok(lp_ctx->currentService);
 
        /* if all is still well, move to the next record in the services array */
        if (bRetval) {
@@ -2206,14 +2024,15 @@ static BOOL do_section(const char *pszSectionName, void *userdata)
                /* issued by the post-processing of a previous section. */
                DEBUG(2, ("Processing section \"[%s]\"\n", pszSectionName));
 
-               if ((iServiceIndex = add_a_service(&sDefault, pszSectionName))
-                   < 0) {
+               if ((lp_ctx->currentService = add_a_service(lp_ctx, &sDefault, 
+                                                            pszSectionName))
+                   == NULL) {
                        DEBUG(0, ("Failed to add a new service\n"));
-                       return (False);
+                       return false;
                }
        }
 
-       return (bRetval);
+       return bRetval;
 }
 
 
@@ -2221,10 +2040,10 @@ static BOOL do_section(const char *pszSectionName, void *userdata)
  Determine if a partcular base parameter is currentl set to the default value.
 ***************************************************************************/
 
-static BOOL is_default(int i)
+static bool is_default(int i)
 {
        if (!defaults_saved)
-               return False;
+               return false;
        switch (parm_table[i].type) {
                case P_LIST:
                        return str_list_equal((const char **)parm_table[i].def.lvalue, 
@@ -2242,17 +2061,15 @@ static BOOL is_default(int i)
                case P_ENUM:
                        return parm_table[i].def.ivalue ==
                                *(int *)parm_table[i].ptr;
-               case P_SEP:
-                       break;
        }
-       return False;
+       return false;
 }
 
 /***************************************************************************
 Display the contents of the global structure.
 ***************************************************************************/
 
-static void dump_globals(FILE *f, BOOL show_defaults)
+static void dump_globals(struct loadparm_context *lp_ctx, FILE *f, bool show_defaults)
 {
        int i;
        struct param_opt *data;
@@ -2269,11 +2086,10 @@ static void dump_globals(FILE *f, BOOL show_defaults)
                        print_parameter(&parm_table[i], parm_table[i].ptr, f);
                        fprintf(f, "\n");
        }
-       if (Globals.param_opt != NULL) {
-               data = Globals.param_opt;
-               while(data) {
+       if (lp_ctx->Globals.param_opt != NULL) {
+               for (data = lp_ctx->Globals.param_opt; data; 
+                    data = data->next) {
                        fprintf(f, "\t%s = %s\n", data->key, data->value);
-                       data = data->next;
                }
         }
 
@@ -2283,7 +2099,7 @@ static void dump_globals(FILE *f, BOOL show_defaults)
  Display the contents of a single services record.
 ***************************************************************************/
 
-static void dump_a_service(service * pService, FILE * f)
+static void dump_a_service(struct loadparm_service * pService, FILE * f)
 {
        int i;
        struct param_opt *data;
@@ -2316,23 +2132,22 @@ static void dump_a_service(service * pService, FILE * f)
                        fprintf(f, "\n");
        }
        if (pService->param_opt != NULL) {
-               data = pService->param_opt;
-               while(data) {
+               for (data = pService->param_opt; data; data = data->next) {
                        fprintf(f, "\t%s = %s\n", data->key, data->value);
-                       data = data->next;
                }
         }
 }
 
-BOOL lp_dump_a_parameter(int snum, char *parm_name, FILE * f, BOOL isGlobal)
+bool lp_dump_a_parameter(struct loadparm_context *lp_ctx, int snum, char *parm_name, FILE * f, 
+                        bool isGlobal)
 {
-       service * pService = ServicePtrs[snum];
+       struct loadparm_service * pService = lp_ctx->ServicePtrs[snum];
        struct parm_struct *parm;
        void *ptr;
        
        parm = lp_parm_struct(parm_name);
        if (!parm) {
-               return False;
+               return false;
        }
        
        if (isGlobal)
@@ -2344,7 +2159,7 @@ BOOL lp_dump_a_parameter(int snum, char *parm_name, FILE * f, BOOL isGlobal)
        print_parameter(parm,
                        ptr, f);
        fprintf(f, "\n");
-       return True;
+       return true;
 }
 
 /***************************************************************************
@@ -2352,14 +2167,12 @@ BOOL lp_dump_a_parameter(int snum, char *parm_name, FILE * f, BOOL isGlobal)
  Return NULL when out of parameters.
 ***************************************************************************/
 
-struct parm_struct *lp_next_parameter(int snum, int *i, int allparameters)
+struct parm_struct *lp_next_parameter(struct loadparm_context *lp_ctx, int snum, int *i, 
+                                     int allparameters)
 {
        if (snum == -1) {
                /* do the globals */
                for (; parm_table[*i].label; (*i)++) {
-                       if (parm_table[*i].class == P_SEPARATOR)
-                               return &parm_table[(*i)++];
-
                        if (!parm_table[*i].ptr
                            || (*parm_table[*i].label == '-'))
                                continue;
@@ -2372,12 +2185,9 @@ struct parm_struct *lp_next_parameter(int snum, int *i, int allparameters)
                        return &parm_table[(*i)++];
                }
        } else {
-               service *pService = ServicePtrs[snum];
+               struct loadparm_service *pService = lp_ctx->ServicePtrs[snum];
 
                for (; parm_table[*i].label; (*i)++) {
-                       if (parm_table[*i].class == P_SEPARATOR)
-                               return &parm_table[(*i)++];
-
                        if (parm_table[*i].class == P_LOCAL &&
                            parm_table[*i].ptr &&
                            (*parm_table[*i].label != '-') &&
@@ -2406,20 +2216,12 @@ struct parm_struct *lp_next_parameter(int snum, int *i, int allparameters)
 }
 
 
-/***************************************************************************
- Return TRUE if the passed service number is within range.
-***************************************************************************/
-
-BOOL lp_snum_ok(int iService)
-{
-       return (LP_SNUM_OK(iService) && ServicePtrs[iService]->bAvailable);
-}
-
 /***************************************************************************
  Auto-load some home services.
 ***************************************************************************/
 
-static void lp_add_auto_services(const char *str)
+static void lp_add_auto_services(struct loadparm_context *lp_ctx, 
+                                const char *str)
 {
        return;
 }
@@ -2428,39 +2230,195 @@ static void lp_add_auto_services(const char *str)
  Have we loaded a services file yet?
 ***************************************************************************/
 
-BOOL lp_loaded(void)
+bool lp_loaded(void)
 {
-       return (bLoaded);
+       return bLoaded;
 }
 
 /***************************************************************************
  Unload unused services.
 ***************************************************************************/
 
-void lp_killunused(struct smbsrv_connection *smb, BOOL (*snumused) (struct smbsrv_connection *, int))
+void lp_killunused(struct loadparm_context *lp_ctx, 
+                  struct smbsrv_connection *smb, 
+                  bool (*snumused) (struct smbsrv_connection *, int))
 {
        int i;
-       for (i = 0; i < iNumServices; i++) {
-               if (!VALID(i))
+       for (i = 0; i < lp_ctx->iNumServices; i++) {
+               if (lp_ctx->ServicePtrs[i] == NULL)
                        continue;
 
                if (!snumused || !snumused(smb, i)) {
-                       ServicePtrs[i]->valid = False;
-                       free_service(ServicePtrs[i]);
+                       talloc_free(lp_ctx->ServicePtrs[i]);
+                       lp_ctx->ServicePtrs[i] = NULL;
                }
        }
 }
 
 /***************************************************************************
Unload a service.
Initialise the global parameter structure.
 ***************************************************************************/
-
-void lp_killservice(int iServiceIn)
+bool loadparm_init(struct loadparm_context *lp_ctx)
 {
-       if (VALID(iServiceIn)) {
-               ServicePtrs[iServiceIn]->valid = False;
-               free_service(ServicePtrs[iServiceIn]);
+       int i;
+       char *myname;
+
+       lp_ctx->bInGlobalSection = true;
+
+       DEBUG(3, ("Initialising global parameters\n"));
+
+       for (i = 0; parm_table[i].label; i++) {
+               if ((parm_table[i].type == P_STRING ||
+                    parm_table[i].type == P_USTRING) &&
+                   parm_table[i].ptr &&
+                   !(parm_table[i].flags & FLAG_CMDLINE)) {
+                       string_set(talloc_autofree_context(), 
+                                  (char **)parm_table[i].ptr, "");
+               }
+       }
+
+       lp_do_global_parameter(lp_ctx, "share backend", "classic");
+       
+       lp_do_global_parameter(lp_ctx, "server role", "standalone");
+
+       /* options that can be set on the command line must be initialised via
+          the slower lp_do_global_parameter() to ensure that FLAG_CMDLINE is obeyed */
+#ifdef TCP_NODELAY
+       lp_do_global_parameter(lp_ctx, "socket options", "TCP_NODELAY");
+#endif
+       lp_do_global_parameter(lp_ctx, "workgroup", DEFAULT_WORKGROUP);
+       myname = get_myname();
+       lp_do_global_parameter(lp_ctx, "netbios name", myname);
+       SAFE_FREE(myname);
+       lp_do_global_parameter(lp_ctx, "name resolve order", "lmhosts wins host bcast");
+
+       lp_do_global_parameter(lp_ctx, "fstype", FSTYPE_STRING);
+       lp_do_global_parameter(lp_ctx, "ntvfs handler", "unixuid default");
+       lp_do_global_parameter(lp_ctx, "max connections", "-1");
+
+       lp_do_global_parameter(lp_ctx, "dcerpc endpoint servers", "epmapper srvsvc wkssvc rpcecho samr netlogon lsarpc spoolss drsuapi winreg dssetup unixinfo");
+       lp_do_global_parameter(lp_ctx, "server services", "smb rpc nbt wrepl ldap cldap web kdc drepl winbind");
+       lp_do_global_parameter(lp_ctx, "ntptr providor", "simple_ldb");
+       lp_do_global_parameter(lp_ctx, "auth methods:domain controller", "anonymous sam_ignoredomain");
+       lp_do_global_parameter(lp_ctx, "auth methods:member server", "anonymous sam winbind");
+       lp_do_global_parameter(lp_ctx, "auth methods:standalone", "anonymous sam_ignoredomain");
+       lp_do_global_parameter(lp_ctx, "private dir", dyn_PRIVATE_DIR);
+       lp_do_global_parameter(lp_ctx, "sam database", "sam.ldb");
+       lp_do_global_parameter(lp_ctx, "secrets database", "secrets.ldb");
+       lp_do_global_parameter(lp_ctx, "spoolss database", "spoolss.ldb");
+       lp_do_global_parameter(lp_ctx, "wins config database", "wins_config.ldb");
+       lp_do_global_parameter(lp_ctx, "wins database", "wins.ldb");
+       lp_do_global_parameter(lp_ctx, "registry:HKEY_LOCAL_MACHINE", "hklm.ldb");
+
+       /* This hive should be dynamically generated by Samba using
+          data from the sam, but for the moment leave it in a tdb to
+          keep regedt32 from popping up an annoying dialog. */
+       lp_do_global_parameter(lp_ctx, "registry:HKEY_USERS", "hku.ldb");
+       
+       /* using UTF8 by default allows us to support all chars */
+       lp_do_global_parameter(lp_ctx, "unix charset", "UTF8");
+
+       /* Use codepage 850 as a default for the dos character set */
+       lp_do_global_parameter(lp_ctx, "dos charset", "CP850");
+
+       /*
+        * Allow the default PASSWD_CHAT to be overridden in local.h.
+        */
+       lp_do_global_parameter(lp_ctx, "passwd chat", DEFAULT_PASSWD_CHAT);
+
+       lp_do_global_parameter(lp_ctx, "pid directory", dyn_PIDDIR);
+       lp_do_global_parameter(lp_ctx, "lock dir", dyn_LOCKDIR);
+       lp_do_global_parameter(lp_ctx, "modules dir", dyn_MODULESDIR);
+       lp_do_global_parameter(lp_ctx, "ncalrpc dir", dyn_NCALRPCDIR);
+
+       lp_do_global_parameter(lp_ctx, "socket address", "0.0.0.0");
+       lp_do_global_parameter_var(lp_ctx, "server string", 
+                                  "Samba %s", SAMBA_VERSION_STRING);
+
+       lp_do_global_parameter_var(lp_ctx, "announce version", "%d.%d", 
+                        DEFAULT_MAJOR_VERSION,
+                        DEFAULT_MINOR_VERSION);
+
+       lp_do_global_parameter(lp_ctx, "password server", "*");
+
+       lp_do_global_parameter(lp_ctx, "max mux", "50");
+       lp_do_global_parameter(lp_ctx, "max xmit", "12288");
+       lp_do_global_parameter(lp_ctx, "password level", "0");
+       lp_do_global_parameter(lp_ctx, "LargeReadwrite", "True");
+       lp_do_global_parameter(lp_ctx, "server min protocol", "CORE");
+       lp_do_global_parameter(lp_ctx, "server max protocol", "NT1");
+       lp_do_global_parameter(lp_ctx, "client min protocol", "CORE");
+       lp_do_global_parameter(lp_ctx, "client max protocol", "NT1");
+       lp_do_global_parameter(lp_ctx, "security", "USER");
+       lp_do_global_parameter(lp_ctx, "paranoid server security", "True");
+       lp_do_global_parameter(lp_ctx, "EncryptPasswords", "True");
+       lp_do_global_parameter(lp_ctx, "ReadRaw", "True");
+       lp_do_global_parameter(lp_ctx, "WriteRaw", "True");
+       lp_do_global_parameter(lp_ctx, "NullPasswords", "False");
+       lp_do_global_parameter(lp_ctx, "ObeyPamRestrictions", "False");
+       lp_do_global_parameter(lp_ctx, "announce as", "NT SERVER");
+
+       lp_do_global_parameter(lp_ctx, "TimeServer", "False");
+       lp_do_global_parameter(lp_ctx, "BindInterfacesOnly", "False");
+       lp_do_global_parameter(lp_ctx, "Unicode", "True");
+       lp_do_global_parameter(lp_ctx, "ClientLanManAuth", "True");
+       lp_do_global_parameter(lp_ctx, "LanmanAuth", "True");
+       lp_do_global_parameter(lp_ctx, "NTLMAuth", "True");
+       lp_do_global_parameter(lp_ctx, "client use spnego principal", "False");
+       
+       lp_do_global_parameter(lp_ctx, "UnixExtensions", "False");
+
+       lp_do_global_parameter(lp_ctx, "PreferredMaster", "Auto");
+       lp_do_global_parameter(lp_ctx, "LocalMaster", "True");
+
+       lp_do_global_parameter(lp_ctx, "wins support", "False");
+       lp_do_global_parameter(lp_ctx, "dns proxy", "True");
+
+       lp_do_global_parameter(lp_ctx, "winbind separator", "\\");
+       lp_do_global_parameter(lp_ctx, "winbind sealed pipes", "True");
+       lp_do_global_parameter(lp_ctx, "winbindd socket directory", dyn_WINBINDD_SOCKET_DIR);
+       lp_do_global_parameter(lp_ctx, "template shell", "/bin/false");
+       lp_do_global_parameter(lp_ctx, "template homedir", "/home/%WORKGROUP%/%ACCOUNTNAME%");
+
+       lp_do_global_parameter(lp_ctx, "client signing", "Yes");
+       lp_do_global_parameter(lp_ctx, "server signing", "auto");
+
+       lp_do_global_parameter(lp_ctx, "use spnego", "True");
+
+       lp_do_global_parameter(lp_ctx, "smb ports", "445 139");
+       lp_do_global_parameter(lp_ctx, "nbt port", "137");
+       lp_do_global_parameter(lp_ctx, "dgram port", "138");
+       lp_do_global_parameter(lp_ctx, "cldap port", "389");
+       lp_do_global_parameter(lp_ctx, "krb5 port", "88");
+       lp_do_global_parameter(lp_ctx, "kpasswd port", "464");
+       lp_do_global_parameter(lp_ctx, "web port", "901");
+       lp_do_global_parameter(lp_ctx, "swat directory", dyn_SWATDIR);
+
+       lp_do_global_parameter(lp_ctx, "nt status support", "True");
+
+       lp_do_global_parameter(lp_ctx, "max wins ttl", "518400"); /* 6 days */
+       lp_do_global_parameter(lp_ctx, "min wins ttl", "10");
+
+       lp_do_global_parameter(lp_ctx, "tls enabled", "True");
+       lp_do_global_parameter(lp_ctx, "tls keyfile", "tls/key.pem");
+       lp_do_global_parameter(lp_ctx, "tls certfile", "tls/cert.pem");
+       lp_do_global_parameter(lp_ctx, "tls cafile", "tls/ca.pem");
+       lp_do_global_parameter_var(lp_ctx, "js include", "%s", dyn_JSDIR);
+       lp_do_global_parameter_var(lp_ctx, "setup directory", "%s", 
+                                  dyn_SETUPDIR);
+
+       for (i = 0; parm_table[i].label; i++) {
+               if (!(parm_table[i].flags & FLAG_CMDLINE)) {
+                       parm_table[i].flags |= FLAG_DEFAULT;
+               }
        }
+
+       return true;
+}
+
+_PUBLIC_ _DEPRECATED_ bool lp_load_default(void)
+{
+       return lp_load(dyn_CONFIGFILE);
 }
 
 /***************************************************************************
@@ -2468,171 +2426,147 @@ void lp_killservice(int iServiceIn)
  False on failure.
 ***************************************************************************/
 
-BOOL lp_load(void)
+bool lp_load(const char *filename)
 {
-       pstring n2;
-       BOOL bRetval;
+       char *n2;
+       bool bRetval;
        struct param_opt *data;
+       struct loadparm_context *lp_ctx = &loadparm;
 
-       bRetval = False;
+       filename = talloc_strdup(talloc_autofree_context(), filename);
 
-       bInGlobalSection = True;
+       global_loadparm = lp_ctx;
 
-       if (Globals.param_opt != NULL) {
+       if (lp_ctx->Globals.param_opt != NULL) {
                struct param_opt *next;
-               for (data=Globals.param_opt; data; data=next) {
+               for (data = lp_ctx->Globals.param_opt; data; data=next) {
                        next = data->next;
                        if (data->flags & FLAG_CMDLINE) continue;
-                       free(data->key);
-                       free(data->value);
-                       DLIST_REMOVE(Globals.param_opt, data);
-                       free(data);
+                       DLIST_REMOVE(lp_ctx->Globals.param_opt, data);
+                       talloc_free(data);
                }
        }
-       
-       init_globals();
 
-       pstrcpy(n2, lp_configfile());
-       standard_sub_basic(n2,sizeof(n2));
+       if (!loadparm_init(lp_ctx))
+               return false;
+
+       lp_ctx->Globals.szConfigFile = filename;
+       
+       lp_ctx->bInGlobalSection = true;
+       n2 = standard_sub_basic(talloc_autofree_context(), lp_ctx->Globals.szConfigFile);
        DEBUG(2, ("lp_load: refreshing parameters from %s\n", n2));
        
-       add_to_file_list(lp_configfile(), n2);
+       add_to_file_list(lp_ctx, lp_ctx->Globals.szConfigFile, n2);
 
        /* We get sections first, so have to start 'behind' to make up */
-       iServiceIndex = -1;
-       bRetval = pm_process(n2, do_section, do_parameter, NULL);
+       lp_ctx->currentService = NULL;
+       bRetval = pm_process(n2, do_section, do_parameter, lp_ctx);
 
        /* finish up the last section */
        DEBUG(4, ("pm_process() returned %s\n", BOOLSTR(bRetval)));
        if (bRetval)
-               if (iServiceIndex >= 0)
-                       bRetval = service_ok(iServiceIndex);
+               if (lp_ctx->currentService != NULL)
+                       bRetval = service_ok(lp_ctx->currentService);
 
-       lp_add_auto_services(lp_auto_services());
+       lp_add_auto_services(lp_ctx, lp_auto_services(lp_ctx));
 
-       lp_add_hidden("IPC$", "IPC");
-       lp_add_hidden("ADMIN$", "DISK");
+       lp_add_hidden(lp_ctx, "IPC$", "IPC");
+       lp_add_hidden(lp_ctx, "ADMIN$", "DISK");
 
-       bLoaded = True;
+       bLoaded = true;
 
-       if (!Globals.szWINSservers && Globals.bWINSsupport) {
-               lp_do_parameter(-1, "wins server", "127.0.0.1");
+       if (!lp_ctx->Globals.szWINSservers && lp_ctx->Globals.bWINSsupport) {
+               lp_do_global_parameter(lp_ctx, "wins server", "127.0.0.1");
        }
 
        init_iconv();
 
-       return (bRetval);
-}
-
-/***************************************************************************
- Reset the max number of services.
-***************************************************************************/
-
-void lp_resetnumservices(void)
-{
-       iNumServices = 0;
+       return bRetval;
 }
 
 /***************************************************************************
  Return the max number of services.
 ***************************************************************************/
 
-int lp_numservices(void)
+int lp_numservices(struct loadparm_context *lp_ctx)
 {
-       return (iNumServices);
+       return lp_ctx->iNumServices;
 }
 
 /***************************************************************************
 Display the contents of the services array in human-readable form.
 ***************************************************************************/
 
-void lp_dump(FILE *f, BOOL show_defaults, int maxtoprint)
+void lp_dump(struct loadparm_context *lp_ctx, FILE *f, bool show_defaults, 
+            int maxtoprint)
 {
        int iService;
 
        if (show_defaults)
-               defaults_saved = False;
+               defaults_saved = false;
 
-       dump_globals(f, show_defaults);
+       dump_globals(lp_ctx, f, show_defaults);
 
        dump_a_service(&sDefault, f);
 
        for (iService = 0; iService < maxtoprint; iService++)
-               lp_dump_one(f, show_defaults, iService);
+               lp_dump_one(f, show_defaults, lp_ctx->ServicePtrs[iService]);
 }
 
 /***************************************************************************
 Display the contents of one service in human-readable form.
 ***************************************************************************/
 
-void lp_dump_one(FILE * f, BOOL show_defaults, int snum)
+void lp_dump_one(FILE *f, bool show_defaults, struct loadparm_service *service)
 {
-       if (VALID(snum)) {
-               if (ServicePtrs[snum]->szService[0] == '\0')
+       if (service != NULL) {
+               if (service->szService[0] == '\0')
                        return;
-               dump_a_service(ServicePtrs[snum], f);
+               dump_a_service(service, f);
        }
 }
 
-/***************************************************************************
-Return the number of the service with the given name, or -1 if it doesn't
-exist. Note that this is a DIFFERENT ANIMAL from the internal function
-getservicebyname()! This works ONLY if all services have been loaded, and
-does not copy the found service.
-***************************************************************************/
+struct loadparm_service *lp_servicebynum(struct loadparm_context *lp_ctx,
+                                        int snum)
+{
+       return lp_ctx->ServicePtrs[snum];
+}
 
-int lp_servicenumber(const char *pszServiceName)
+struct loadparm_service *lp_service(struct loadparm_context *lp_ctx, 
+                                   const char *service_name)
 {
        int iService;
-        fstring serviceName;
+        char *serviceName;
  
-       for (iService = iNumServices - 1; iService >= 0; iService--) {
-               if (VALID(iService) && ServicePtrs[iService]->szService) {
+       for (iService = lp_ctx->iNumServices - 1; iService >= 0; iService--) {
+               if (lp_ctx->ServicePtrs[iService] && 
+                   lp_ctx->ServicePtrs[iService]->szService) {
                        /*
                         * The substitution here is used to support %U is
                         * service names
                         */
-                       fstrcpy(serviceName, ServicePtrs[iService]->szService);
-                       standard_sub_basic(serviceName,sizeof(serviceName));
-                       if (strequal(serviceName, pszServiceName))
-                               break;
+                       serviceName = standard_sub_basic(
+                                       lp_ctx->ServicePtrs[iService],
+                                       lp_ctx->ServicePtrs[iService]->szService);
+                       if (strequal(serviceName, service_name))
+                               return lp_ctx->ServicePtrs[iService];
                }
        }
 
-       if (iService < 0)
-               DEBUG(7,("lp_servicenumber: couldn't find %s\n", pszServiceName));
-
-       return (iService);
+       DEBUG(7,("lp_servicenumber: couldn't find %s\n", service_name));
+       return NULL;
 }
 
-int lp_find_valid_service(const char *pszServiceName)
-{
-       int iService;
-
-       iService = lp_servicenumber(pszServiceName);
-
-       if (iService >= 0 && !lp_snum_ok(iService)) {
-               DEBUG(0,("lp_find_valid_service: Invalid snum %d for '%s'\n",iService, pszServiceName));
-               iService = -1;
-       }
-
-       if (iService == -1) {
-               DEBUG(3,("lp_find_valid_service: failed to find service '%s'\n", pszServiceName));
-       }
-
-       return iService;
-}
 
 /*******************************************************************
  A useful volume label function. 
 ********************************************************************/
-const char *volume_label(int snum)
+const char *volume_label(struct loadparm_service *service)
 {
-       const char *ret = lp_volume(snum);
+       const char *ret = lp_volume(service);
        if (!*ret)
-               return lp_servicename(snum);
-       return (ret);
+               return lp_servicename(service);
+       return ret;
 }
 
 
@@ -2640,40 +2574,16 @@ const char *volume_label(int snum)
  If we are PDC then prefer us as DMB
 ************************************************************/
 
-BOOL lp_domain_logons(void)
-{
-       return (lp_server_role() == ROLE_DOMAIN_CONTROLLER);
-}
-
-/*******************************************************************
- Remove a service.
-********************************************************************/
-
-void lp_remove_service(int snum)
-{
-       ServicePtrs[snum]->valid = False;
-}
-
-/*******************************************************************
- Copy a service.
-********************************************************************/
-
-void lp_copy_service(int snum, const char *new_name)
+bool lp_domain_logons(struct loadparm_context *lp_ctx)
 {
-       const char *oldname = lp_servicename(snum);
-       do_section(new_name, NULL);
-       if (snum >= 0) {
-               snum = lp_servicenumber(new_name);
-               if (snum >= 0)
-                       lp_do_parameter(snum, "copy", oldname);
-       }
+       return (lp_server_role(lp_ctx) == ROLE_DOMAIN_CONTROLLER);
 }
 
-const char *lp_printername(int snum)
+const char *lp_printername(struct loadparm_service *service)
 {
-       const char *ret = _lp_printername(snum);
+       const char *ret = _lp_printername(service);
        if (ret == NULL || (ret != NULL && *ret == '\0'))
-               ret = lp_const_servicename(snum);
+               ret = lp_const_servicename(service);
 
        return ret;
 }
@@ -2683,9 +2593,9 @@ const char *lp_printername(int snum)
  Return the max print jobs per queue.
 ********************************************************************/
 
-int lp_maxprintjobs(int snum)
+int lp_maxprintjobs(struct loadparm_service *service)
 {
-       int maxjobs = LP_SNUM_OK(snum) ? ServicePtrs[snum]->iMaxPrintJobs : sDefault.iMaxPrintJobs;
+       int maxjobs = (service != NULL) ? service->iMaxPrintJobs : sDefault.iMaxPrintJobs;
        if (maxjobs <= 0 || maxjobs >= PRINT_MAX_JOBID)
                maxjobs = PRINT_MAX_JOBID - 1;
 
index 6b98ebe018278804044eba063ca77c8e009b6698..f834bce8f5dd09aed4838733db992dc241219b2f 100644 (file)
 
 /* the following are used by loadparm for option lists */
 typedef enum {
-       P_BOOL,P_INTEGER,P_OCTAL,P_BYTES,P_LIST,P_STRING,P_USTRING,P_ENUM,P_SEP
+       P_BOOL,P_INTEGER,P_OCTAL,P_BYTES,P_LIST,P_STRING,P_USTRING,P_ENUM
 } parm_type;
 
 typedef enum {
-       P_LOCAL,P_GLOBAL,P_SEPARATOR,P_NONE
+       P_LOCAL,P_GLOBAL,P_NONE
 } parm_class;
 
 struct enum_list {
@@ -41,12 +41,14 @@ struct enum_list {
        const char *name;
 };
 
+struct loadparm_context;
+
 struct parm_struct {
        const char *label;
        parm_type type;
        parm_class class;
        void *ptr;
-       bool (*special)(const char *, char **);
+       bool (*special)(struct loadparm_context *, const char *, char **);
        const struct enum_list *enum_list;
        unsigned int flags;
        union {
@@ -78,4 +80,3 @@ struct parm_struct {
 #define HOMES_NAME "homes"
 #endif
 
-
index 5f5da58388fb54b9745011ca90edca2a1a6572d7..1dd5950e31210dc707058ab106b766eeb0d267ff 100644 (file)
 #ifndef _PARAM_H /* _PARAM_H */
 #define _PARAM_H 
 
-struct param_context {
-       struct param_section *sections;
+struct param_opt {
+       struct param_opt *prev, *next;
+       char *key;
+       char *value;
+       int flags;
 };
 
-struct param {
-       const char *name;
-       char *value;
-       const char **list_value;
-       struct param *prev, *next;
+struct param_context {
+       struct param_section *sections;
 };
 
 struct param_section {
        const char *name;
        struct param_section *prev, *next;
-       struct param *parameters;
+       struct param_opt *parameters;
 };
 
 struct param_context;
@@ -57,8 +57,11 @@ enum announce_as {/* Types of machine we can announce as. */
        ANNOUNCE_AS_NT_WORKSTATION=4
 };
 
-
+struct loadparm_context;
+struct loadparm_service;
 
 #include "param/proto.h"
 
+extern struct loadparm_context *global_loadparm;
+
 #endif /* _PARAM_H */
index 5ee6dbea70018a296a865fbb7b6908382e00f812..3a9e2b95051123fd7315072999b9e234a5cfeb5c 100644 (file)
@@ -188,7 +188,7 @@ static int Continuation(char *line, int pos )
 }
 
 
-static BOOL Section( myFILE *InFile, BOOL (*sfunc)(const char *, void *), void *userdata )
+static bool Section( myFILE *InFile, bool (*sfunc)(const char *, void *), void *userdata )
   /* ------------------------------------------------------------------------ **
    * Scan a section name, and pass the name to function sfunc().
    *
@@ -196,8 +196,8 @@ static BOOL Section( myFILE *InFile, BOOL (*sfunc)(const char *, void *), void *
    *          sfunc   - Pointer to the function to be called if the section
    *                    name is successfully read.
    *
-   *  Output: True if the section name was read and True was returned from
-   *          <sfunc>.  False if <sfunc> failed or if a lexical error was
+   *  Output: true if the section name was read and true was returned from
+   *          <sfunc>.  false if <sfunc> failed or if a lexical error was
    *          encountered.
    *
    * ------------------------------------------------------------------------ **
@@ -229,7 +229,7 @@ static BOOL Section( myFILE *InFile, BOOL (*sfunc)(const char *, void *), void *
       if( NULL == tb )
         {
         DEBUG(0, ("%s Memory re-allocation failure.", func) );
-        return( False );
+        return( false );
         }
       InFile->bufr = tb;
       InFile->bSize += BUFR_INC;
@@ -243,12 +243,12 @@ static BOOL Section( myFILE *InFile, BOOL (*sfunc)(const char *, void *), void *
         if( 0 == end )                  /* Don't allow an empty name.       */
           {
           DEBUG(0, ("%s Empty section name in configuration file.\n", func ));
-          return( False );
+          return( false );
           }
         if( !sfunc(InFile->bufr,userdata) )            /* Got a valid name.  Deal with it. */
-          return( False );
+          return( false );
         (void)EatComment( InFile );     /* Finish off the line.             */
-        return( True );
+        return( true );
 
       case '\n':                      /* Got newline before closing ']'.    */
         i = Continuation( InFile->bufr, i );    /* Check for line continuation.     */
@@ -257,7 +257,7 @@ static BOOL Section( myFILE *InFile, BOOL (*sfunc)(const char *, void *), void *
           InFile->bufr[end] = '\0';
           DEBUG(0, ("%s Badly formed line in configuration file: %s\n",
                    func, InFile->bufr ));
-          return( False );
+          return( false );
           }
         end = ( (i > 0) && (' ' == InFile->bufr[i - 1]) ) ? (i - 1) : (i);
         c = mygetc( InFile );             /* Continue with next line.         */
@@ -281,10 +281,10 @@ static BOOL Section( myFILE *InFile, BOOL (*sfunc)(const char *, void *), void *
 
   /* We arrive here if we've met the EOF before the closing bracket. */
   DEBUG(0, ("%s Unexpected EOF in the configuration file\n", func));
-  return( False );
+  return( false );
   } /* Section */
 
-static BOOL Parameter( myFILE *InFile, BOOL (*pfunc)(const char *, const char *, void *), int c, void *userdata )
+static bool Parameter( myFILE *InFile, bool (*pfunc)(const char *, const char *, void *), int c, void *userdata )
   /* ------------------------------------------------------------------------ **
    * Scan a parameter name and value, and pass these two fields to pfunc().
    *
@@ -296,8 +296,8 @@ static BOOL Parameter( myFILE *InFile, BOOL (*pfunc)(const char *, const char *,
    *                    line or a section header, there is no lead-in
    *                    character that can be discarded.
    *
-   *  Output: True if the parameter name and value were scanned and processed
-   *          successfully, else False.
+   *  Output: true if the parameter name and value were scanned and processed
+   *          successfully, else false.
    *
    *  Notes:  This function is in two parts.  The first loop scans the
    *          parameter name.  Internal whitespace is compressed, and an
@@ -326,7 +326,7 @@ static BOOL Parameter( myFILE *InFile, BOOL (*pfunc)(const char *, const char *,
       if( NULL == tb )
         {
         DEBUG(0, ("%s Memory re-allocation failure.", func) );
-        return( False );
+        return( false );
         }
       InFile->bufr = tb;
       InFile->bSize += BUFR_INC;
@@ -338,7 +338,7 @@ static BOOL Parameter( myFILE *InFile, BOOL (*pfunc)(const char *, const char *,
         if( 0 == end )              /* Don't allow an empty name.      */
           {
           DEBUG(0, ("%s Invalid parameter name in config. file.\n", func ));
-          return( False );
+          return( false );
           }
         InFile->bufr[end++] = '\0';         /* Mark end of string & advance.   */
         i       = end;              /* New string starts here.         */
@@ -353,7 +353,7 @@ static BOOL Parameter( myFILE *InFile, BOOL (*pfunc)(const char *, const char *,
           InFile->bufr[end] = '\0';
           DEBUG(1,("%s Ignoring badly formed line in configuration file: %s\n",
                    func, InFile->bufr ));
-          return( True );
+          return( true );
           }
         end = ( (i > 0) && (' ' == InFile->bufr[i - 1]) ) ? (i - 1) : (i);
         c = mygetc( InFile );       /* Read past eoln.                   */
@@ -363,7 +363,7 @@ static BOOL Parameter( myFILE *InFile, BOOL (*pfunc)(const char *, const char *,
       case EOF:
         InFile->bufr[i] = '\0';
         DEBUG(1,("%s Unexpected end-of-file at: %s\n", func, InFile->bufr ));
-        return( True );
+        return( true );
 
       default:
         if( isspace( c ) )     /* One ' ' per whitespace region.       */
@@ -394,7 +394,7 @@ static BOOL Parameter( myFILE *InFile, BOOL (*pfunc)(const char *, const char *,
       if( NULL == tb )
         {
         DEBUG(0, ("%s Memory re-allocation failure.", func) );
-        return( False );
+        return( false );
         }
       InFile->bufr = tb;
       InFile->bSize += BUFR_INC;
@@ -431,9 +431,9 @@ static BOOL Parameter( myFILE *InFile, BOOL (*pfunc)(const char *, const char *,
   return( pfunc( InFile->bufr, &InFile->bufr[vstart], userdata ) );   /* Pass name & value to pfunc().  */
   } /* Parameter */
 
-static BOOL Parse( myFILE *InFile,
-                   BOOL (*sfunc)(const char *, void *),
-                   BOOL (*pfunc)(const char *, const char *, void *),
+static bool Parse( myFILE *InFile,
+                   bool (*sfunc)(const char *, void *),
+                   bool (*pfunc)(const char *, const char *, void *),
                                   void *userdata )
   /* ------------------------------------------------------------------------ **
    * Scan & parse the input.
@@ -444,7 +444,7 @@ static BOOL Parse( myFILE *InFile,
    *          pfunc   - Function to be called when a parameter is scanned.
    *                    See Parameter().
    *
-   *  Output: True if the file was successfully scanned, else False.
+   *  Output: true if the file was successfully scanned, else false.
    *
    *  Notes:  The input can be viewed in terms of 'lines'.  There are four
    *          types of lines:
@@ -475,7 +475,7 @@ static BOOL Parse( myFILE *InFile,
 
       case '[':                         /* Section Header. */
         if( !Section( InFile, sfunc, userdata ) )
-          return( False );
+          return( false );
         c = EatWhitespace( InFile );
         break;
 
@@ -485,12 +485,12 @@ static BOOL Parse( myFILE *InFile,
 
       default:                          /* Parameter line. */
         if( !Parameter( InFile, pfunc, c, userdata ) )
-          return( False );
+          return( false );
         c = EatWhitespace( InFile );
         break;
       }
     }
-  return( True );
+  return( true );
   } /* Parse */
 
 static myFILE *OpenConfFile( const char *FileName )
@@ -526,9 +526,9 @@ static myFILE *OpenConfFile( const char *FileName )
   return( ret );
   } /* OpenConfFile */
 
-BOOL pm_process( const char *FileName,
-                 BOOL (*sfunc)(const char *, void *),
-                 BOOL (*pfunc)(const char *, const char *, void *),
+bool pm_process( const char *FileName,
+                 bool (*sfunc)(const char *, void *),
+                 bool (*pfunc)(const char *, const char *, void *),
                                 void *userdata)
   /* ------------------------------------------------------------------------ **
    * Process the named parameter file.
@@ -550,7 +550,7 @@ BOOL pm_process( const char *FileName,
 
   InFile = OpenConfFile( FileName );          /* Open the config file. */
   if( NULL == InFile )
-    return( False );
+    return( false );
 
   DEBUG( 3, ("%s Processing configuration file \"%s\"\n", func, FileName) );
 
@@ -566,7 +566,7 @@ BOOL pm_process( const char *FileName,
       {
       DEBUG(0,("%s memory allocation failure.\n", func));
       myfile_close(InFile);
-      return( False );
+      return( false );
       }
     result = Parse( InFile, sfunc, pfunc, userdata );
     InFile->bufr  = NULL;
@@ -578,10 +578,10 @@ BOOL pm_process( const char *FileName,
   if( !result )                               /* Generic failure. */
     {
     DEBUG(0,("%s Failed.  Error returned from params.c:parse().\n", func));
-    return( False );
+    return( false );
     }
 
-  return( True );                             /* Generic success. */
+  return( true );                             /* Generic success. */
   } /* pm_process */
 
 /* -------------------------------------------------------------------------- */
index 657d2f7998a1cafc5e9fc8d8f1c6c81a302e10d3..6640fd473d9156382aa9ca44413b81ceb7c2ed95 100644 (file)
@@ -56,22 +56,22 @@ void secrets_shutdown(void)
 }
 
 /* open up the secrets database */
-BOOL secrets_init(void)
+bool secrets_init(void)
 {
        char *fname;
        uint8_t dummy;
 
        if (tdb)
-               return True;
+               return true;
 
-       asprintf(&fname, "%s/secrets.tdb", lp_private_dir());
+       asprintf(&fname, "%s/secrets.tdb", lp_private_dir(global_loadparm));
 
        tdb = tdb_wrap_open(talloc_autofree_context(), fname, 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
 
        if (!tdb) {
                DEBUG(0,("Failed to open %s\n", fname));
                SAFE_FREE(fname);
-               return False;
+               return false;
        }
        SAFE_FREE(fname);
 
@@ -86,7 +86,7 @@ BOOL secrets_init(void)
        /* Ensure that the reseed is done now, while we are root, etc */
        generate_random_buffer(&dummy, sizeof(dummy));
 
-       return True;
+       return true;
 }
 
 /*
@@ -97,18 +97,18 @@ struct ldb_context *secrets_db_connect(TALLOC_CTX *mem_ctx)
        char *path;
        const char *url;
        struct ldb_context *ldb;
-       BOOL existed;
+       bool existed;
        const char *init_ldif = 
                "dn: @ATTRIBUTES\n" \
                "computerName: CASE_INSENSITIVE\n" \
                "flatname: CASE_INSENSITIVE\n";
 
-       url = lp_secrets_url();
+       url = lp_secrets_url(global_loadparm);
        if (!url || !url[0]) {
                return NULL;
        }
 
-       path = private_path(mem_ctx, url);
+       path = private_path(mem_ctx, global_loadparm, url);
        if (!path) {
                return NULL;
        }
@@ -117,7 +117,7 @@ struct ldb_context *secrets_db_connect(TALLOC_CTX *mem_ctx)
 
        /* Secrets.ldb *must* always be local.  If we call for a
         * system_session() we will recurse */
-       ldb = ldb_wrap_connect(mem_ctx, path, NULL, NULL, 0, NULL);
+       ldb = ldb_wrap_connect(mem_ctx, global_loadparm, path, NULL, NULL, 0, NULL);
        talloc_free(path);
        if (!ldb) {
                return NULL;
index 44ffdbd8a68d2c86c16323d091352470e03522d3..5aabb849c5c1482549387671fb7f587ec804c2db 100644 (file)
@@ -34,6 +34,19 @@ struct machine_acct_pass {
 #define SECRETS_KRBTGT_SEARCH "(&((|(realm=%s)(flatname=%s))(samAccountName=krbtgt)))"
 #define SECRETS_PRINCIPAL_SEARCH "(&(|(realm=%s)(flatname=%s))(servicePrincipalName=%s))"
 
-#include "param/secrets_proto.h"
+/**
+ * Use a TDB to store an incrementing random seed.
+ *
+ * Initialised to the current pid, the very first time Samba starts,
+ * and incremented by one each time it is needed.  
+ * 
+ * @note Not called by systems with a working /dev/urandom.
+ */
+void secrets_shutdown(void);
+bool secrets_init(void);
+struct ldb_context *secrets_db_connect(TALLOC_CTX *mem_ctx);
+struct dom_sid *secrets_get_domain_sid(TALLOC_CTX *mem_ctx,
+                                      const char *domain);
+
 
 #endif /* _SECRETS_H */
index 26173fb8767dec5893c4d9c3404f5c040beed239..489049f39f7bffbcb51fda3959b0f65fa11f2129 100644 (file)
@@ -22,6 +22,7 @@
 #include "includes.h"
 #include "param/share.h"
 #include "build.h"
+#include "param/param.h"
 
 const char *share_string_option(struct share_config *scfg, const char *opt_name, const char *defval)
 {
@@ -33,7 +34,7 @@ int share_int_option(struct share_config *scfg, const char *opt_name, int defval
        return scfg->ctx->ops->int_option(scfg, opt_name, defval);
 }
 
-BOOL share_bool_option(struct share_config *scfg, const char *opt_name, BOOL defval)
+bool share_bool_option(struct share_config *scfg, const char *opt_name, bool defval)
 {
        return scfg->ctx->ops->bool_option(scfg, opt_name, defval);
 }
@@ -115,12 +116,7 @@ NTSTATUS share_register(const struct share_ops *ops)
                smb_panic("out of memory in share_register");
        }
 
-       backends[i] = malloc(sizeof(struct share_ops));
-       if (!backends[i]) {
-               smb_panic("out of memory in share_register");
-       }
-
-       backends[i] = smb_xmemdup(ops, sizeof(*ops));
+       backends[i] = (struct share_ops *)smb_xmemdup(ops, sizeof(*ops));
        backends[i]->name = smb_xstrdup(ops->name);
 
        backends[i + 1] = NULL;
@@ -138,7 +134,7 @@ NTSTATUS share_get_context_by_name(TALLOC_CTX *mem_ctx,
 
        ops = share_backend_by_name(backend_name);
        if (!ops) {
-               DEBUG(0, ("share_init_connection: share backend [%s] not found!\n", lp_share_backend()));
+               DEBUG(0, ("share_init_connection: share backend [%s] not found!\n", lp_share_backend(global_loadparm)));
                return NT_STATUS_INTERNAL_ERROR;
        }
 
@@ -147,7 +143,7 @@ NTSTATUS share_get_context_by_name(TALLOC_CTX *mem_ctx,
 
 NTSTATUS share_get_context(TALLOC_CTX *mem_ctx, struct share_context **ctx)
 {
-       return share_get_context_by_name(mem_ctx, lp_share_backend(), ctx);
+       return share_get_context_by_name(mem_ctx, lp_share_backend(global_loadparm), ctx);
 }
 
 /*
@@ -156,7 +152,7 @@ NTSTATUS share_get_context(TALLOC_CTX *mem_ctx, struct share_context **ctx)
 NTSTATUS share_init(void)
 {
        init_module_fn static_init[] = STATIC_share_MODULES;
-       init_module_fn *shared_init = load_samba_modules(NULL, "share");
+       init_module_fn *shared_init = load_samba_modules(NULL, global_loadparm, "share");
 
        run_init_functions(static_init);
        run_init_functions(shared_init);
index 4e16f03715757b84b3dfeba9ff08c8d0e92f25d0..c93d0d985722dab9bbb312b7d338b0339e5f81c0 100644 (file)
@@ -103,8 +103,8 @@ struct share_ops {
 #define SHARE_VOLUME_DEFAULT           NULL
 #define SHARE_TYPE_DEFAULT             "DISK"  
 #define SHARE_CSC_POLICY_DEFAULT       0
-#define SHARE_AVAILABLE_DEFAULT                True
-#define SHARE_BROWSEABLE_DEFAULT       True
+#define SHARE_AVAILABLE_DEFAULT                true
+#define SHARE_BROWSEABLE_DEFAULT       true
 #define SHARE_MAX_CONNECTIONS_DEFAULT  0
 
 #define SHARE_DIR_MASK_DEFAULT                   0755
@@ -116,14 +116,14 @@ struct share_ops {
 
 /* I'd like to see the following options go away
  * and always use EAs and SECDESCs */
-#define SHARE_READONLY_DEFAULT         True
-#define SHARE_MAP_SYSTEM_DEFAULT       False
-#define SHARE_MAP_HIDDEN_DEFAULT       False
-#define SHARE_MAP_ARCHIVE_DEFAULT      True
-
-#define SHARE_STRICT_LOCKING_DEFAULT   True
-#define SHARE_STRICT_SYNC_DEFAULT      False
-#define SHARE_MSDFS_ROOT_DEFAULT       False
-#define SHARE_CI_FILESYSTEM_DEFAULT    False
+#define SHARE_READONLY_DEFAULT         true
+#define SHARE_MAP_SYSTEM_DEFAULT       false
+#define SHARE_MAP_HIDDEN_DEFAULT       false
+#define SHARE_MAP_ARCHIVE_DEFAULT      true
+
+#define SHARE_STRICT_LOCKING_DEFAULT   true
+#define SHARE_STRICT_SYNC_DEFAULT      false
+#define SHARE_MSDFS_ROOT_DEFAULT       false
+#define SHARE_CI_FILESYSTEM_DEFAULT    false
 
 #endif /* _SHARE_H */
index 234a6321441cebd633c2b5319c689cd05d28ca7c..cf140f0d32b26aae7cd8d3bb73a63c237b141c1e 100644 (file)
 
 #include "includes.h"
 #include "param/share.h"
-
-struct sclassic_snum {
-       int snum;
-};
+#include "param/param.h"
 
 static NTSTATUS sclassic_init(TALLOC_CTX *mem_ctx, const struct share_ops *ops, struct share_context **ctx)
 {
@@ -42,7 +39,8 @@ static NTSTATUS sclassic_init(TALLOC_CTX *mem_ctx, const struct share_ops *ops,
 
 static const char *sclassic_string_option(struct share_config *scfg, const char *opt_name, const char *defval)
 {
-       struct sclassic_snum *s = talloc_get_type(scfg->opaque, struct sclassic_snum);
+       struct loadparm_service *s = talloc_get_type(scfg->opaque, 
+                                                    struct loadparm_service);
        char *parm, *val;
        const char *ret;
 
@@ -55,7 +53,7 @@ static const char *sclassic_string_option(struct share_config *scfg, const char
                *val = '\0';
                val++;
 
-               ret = lp_parm_string(s->snum, parm, val);
+               ret = lp_parm_string(global_loadparm, s, parm, val);
                if (!ret) {
                        ret = defval;
                }
@@ -68,25 +66,29 @@ static const char *sclassic_string_option(struct share_config *scfg, const char
        }
 
        if (strcmp(opt_name, SHARE_PATH) == 0) {
-               return lp_pathname(s->snum);
+               return lp_pathname(s);
        }
 
        if (strcmp(opt_name, SHARE_COMMENT) == 0) {
-               return lp_comment(s->snum);
+               return lp_comment(s);
        }
 
        if (strcmp(opt_name, SHARE_VOLUME) == 0) {
-               return volume_label(s->snum);
+               return volume_label(s);
        }
 
        if (strcmp(opt_name, SHARE_TYPE) == 0) {
-               if (lp_print_ok(s->snum)) {
+               if (lp_print_ok(s)) {
                        return "PRINTER";
                }
-               if (strcmp("NTFS", lp_fstype(s->snum)) == 0) {
+               if (strcmp("NTFS", lp_fstype(s)) == 0) {
                        return "DISK";
                }
-               return lp_fstype(s->snum);
+               return lp_fstype(s);
+       }
+
+       if (strcmp(opt_name, SHARE_PASSWORD) == 0) {
+               return defval;
        }
 
        DEBUG(0,("request for unknown share string option '%s'\n",
@@ -95,9 +97,10 @@ static const char *sclassic_string_option(struct share_config *scfg, const char
        return defval;
 }
 
-int sclassic_int_option(struct share_config *scfg, const char *opt_name, int defval)
+static int sclassic_int_option(struct share_config *scfg, const char *opt_name, int defval)
 {
-       struct sclassic_snum *s = talloc_get_type(scfg->opaque, struct sclassic_snum);
+       struct loadparm_service *s = talloc_get_type(scfg->opaque, 
+                                                    struct loadparm_service);
        char *parm, *val;
        int ret;
 
@@ -110,7 +113,7 @@ int sclassic_int_option(struct share_config *scfg, const char *opt_name, int def
                *val = '\0';
                val++;
 
-               ret = lp_parm_int(s->snum, parm, val, defval);
+               ret = lp_parm_int(global_loadparm, s, parm, val, defval);
                if (!ret) {
                        ret = defval;
                }
@@ -119,27 +122,27 @@ int sclassic_int_option(struct share_config *scfg, const char *opt_name, int def
        }
 
        if (strcmp(opt_name, SHARE_CSC_POLICY) == 0) {
-               return lp_csc_policy(s->snum);
+               return lp_csc_policy(s);
        }
 
        if (strcmp(opt_name, SHARE_MAX_CONNECTIONS) == 0) {
-               return lp_max_connections(s->snum);
+               return lp_max_connections(s);
        }
 
        if (strcmp(opt_name, SHARE_CREATE_MASK) == 0) {
-               return lp_create_mask(s->snum);
+               return lp_create_mask(s);
        }
 
        if (strcmp(opt_name, SHARE_DIR_MASK) == 0) {
-               return lp_dir_mask(s->snum);
+               return lp_dir_mask(s);
        }
 
        if (strcmp(opt_name, SHARE_FORCE_DIR_MODE) == 0) {
-               return lp_force_dir_mode(s->snum);
+               return lp_force_dir_mode(s);
        }
 
        if (strcmp(opt_name, SHARE_FORCE_CREATE_MODE) == 0) {
-               return lp_force_create_mode(s->snum);
+               return lp_force_create_mode(s);
        }
 
 
@@ -149,64 +152,66 @@ int sclassic_int_option(struct share_config *scfg, const char *opt_name, int def
        return defval;
 }
 
-BOOL sclassic_bool_option(struct share_config *scfg, const char *opt_name, BOOL defval)
+static bool sclassic_bool_option(struct share_config *scfg, const char *opt_name, 
+                         bool defval)
 {
-       struct sclassic_snum *s = talloc_get_type(scfg->opaque, struct sclassic_snum);
+       struct loadparm_service *s = talloc_get_type(scfg->opaque, 
+                                                    struct loadparm_service);
        char *parm, *val;
-       BOOL ret;
+       bool ret;
 
        if (strchr(opt_name, ':')) {
                parm = talloc_strdup(scfg, opt_name);
                if(!parm) {
-                       return False;
+                       return false;
                }
                val = strchr(parm, ':');
                *val = '\0';
                val++;
 
-               ret = lp_parm_bool(s->snum, parm, val, defval);
+               ret = lp_parm_bool(global_loadparm, s, parm, val, defval);
                talloc_free(parm);
                return ret;
        }
 
        if (strcmp(opt_name, SHARE_AVAILABLE) == 0) {
-               return lp_snum_ok(s->snum);
+               return s != NULL;
        }
 
        if (strcmp(opt_name, SHARE_BROWSEABLE) == 0) {
-               return lp_browseable(s->snum);
+               return lp_browseable(s);
        }
 
        if (strcmp(opt_name, SHARE_READONLY) == 0) {
-               return lp_readonly(s->snum);
+               return lp_readonly(s);
        }
 
        if (strcmp(opt_name, SHARE_MAP_SYSTEM) == 0) {
-               return lp_map_system(s->snum);
+               return lp_map_system(s);
        }
 
        if (strcmp(opt_name, SHARE_MAP_HIDDEN) == 0) {
-               return lp_map_hidden(s->snum);
+               return lp_map_hidden(s);
        }
 
        if (strcmp(opt_name, SHARE_MAP_ARCHIVE) == 0) {
-               return lp_map_archive(s->snum);
+               return lp_map_archive(s);
        }
 
        if (strcmp(opt_name, SHARE_STRICT_LOCKING) == 0) {
-               return lp_strict_locking(s->snum);
+               return lp_strict_locking(s);
        }
 
        if (strcmp(opt_name, SHARE_STRICT_SYNC) == 0) {
-               return lp_strict_sync(s->snum);
+               return lp_strict_sync(s);
        }
 
        if (strcmp(opt_name, SHARE_MSDFS_ROOT) == 0) {
-               return lp_msdfs_root(s->snum);
+               return lp_msdfs_root(s);
        }
 
        if (strcmp(opt_name, SHARE_CI_FILESYSTEM) == 0) {
-               return lp_ci_filesystem(s->snum);
+               return lp_ci_filesystem(s);
        }
 
        DEBUG(0,("request for unknown share bool option '%s'\n",
@@ -215,9 +220,10 @@ BOOL sclassic_bool_option(struct share_config *scfg, const char *opt_name, BOOL
        return defval;
 }
 
-const char **sclassic_string_list_option(TALLOC_CTX *mem_ctx, struct share_config *scfg, const char *opt_name)
+static const char **sclassic_string_list_option(TALLOC_CTX *mem_ctx, struct share_config *scfg, const char *opt_name)
 {
-       struct sclassic_snum *s = talloc_get_type(scfg->opaque, struct sclassic_snum);
+       struct loadparm_service *s = talloc_get_type(scfg->opaque, 
+                                                    struct loadparm_service);
        char *parm, *val;
        const char **ret;
 
@@ -230,21 +236,21 @@ const char **sclassic_string_list_option(TALLOC_CTX *mem_ctx, struct share_confi
                *val = '\0';
                val++;
 
-               ret = lp_parm_string_list(s->snum, parm, val, ",;");
+               ret = lp_parm_string_list(global_loadparm, s, parm, val, ",;");
                talloc_free(parm);
                return ret;
        }
 
        if (strcmp(opt_name, SHARE_HOSTS_ALLOW) == 0) {
-               return lp_hostsallow(s->snum);
+               return lp_hostsallow(s);
        }
 
        if (strcmp(opt_name, SHARE_HOSTS_DENY) == 0) {
-               return lp_hostsdeny(s->snum);
+               return lp_hostsdeny(s);
        }
 
        if (strcmp(opt_name, SHARE_NTVFS_HANDLER) == 0) {
-               return lp_ntvfs_handler(s->snum);
+               return lp_ntvfs_handler(s);
        }
 
        DEBUG(0,("request for unknown share list option '%s'\n",
@@ -253,16 +259,16 @@ const char **sclassic_string_list_option(TALLOC_CTX *mem_ctx, struct share_confi
        return NULL;
 }
 
-NTSTATUS sclassic_list_all(TALLOC_CTX *mem_ctx,
-                                    struct share_context *ctx,
-                                    int *count,
-                                    const char ***names)
+static NTSTATUS sclassic_list_all(TALLOC_CTX *mem_ctx,
+                                 struct share_context *ctx,
+                                 int *count,
+                                 const char ***names)
 {
        int i;
        int num_services;
        const char **n;
        
-       num_services = lp_numservices();
+       num_services = lp_numservices(global_loadparm);
 
        n = talloc_array(mem_ctx, const char *, num_services);
        if (!n) {
@@ -271,7 +277,7 @@ NTSTATUS sclassic_list_all(TALLOC_CTX *mem_ctx,
        }
 
        for (i = 0; i < num_services; i++) {
-               n[i] = talloc_strdup(n, lp_servicename(i));
+               n[i] = talloc_strdup(n, lp_servicename(lp_servicebynum(global_loadparm, i)));
                if (!n[i]) {
                        DEBUG(0,("ERROR: Out of memory!\n"));
                        talloc_free(n);
@@ -285,24 +291,17 @@ NTSTATUS sclassic_list_all(TALLOC_CTX *mem_ctx,
        return NT_STATUS_OK;
 }
 
-NTSTATUS sclassic_get_config(TALLOC_CTX *mem_ctx,
-                            struct share_context *ctx,
-                            const char *name,
-                            struct share_config **scfg)
+static NTSTATUS sclassic_get_config(TALLOC_CTX *mem_ctx,
+                                   struct share_context *ctx,
+                                   const char *name,
+                                   struct share_config **scfg)
 {
-       int i, snum;
        struct share_config *s;
-       struct sclassic_snum *scnum;
+       struct loadparm_service *service;
 
-       snum = -1;
-       for (i = 0; i < lp_numservices(); i++) {
-               if (strcasecmp_m(name, lp_servicename(i)) == 0) {
-                       snum = i;
-                       break;
-               }
-       }
+       service = lp_service(global_loadparm, name);
 
-       if (snum < 0) {
+       if (service == NULL) {
                return NT_STATUS_OBJECT_NAME_NOT_FOUND;
        }
 
@@ -312,22 +311,14 @@ NTSTATUS sclassic_get_config(TALLOC_CTX *mem_ctx,
                return NT_STATUS_NO_MEMORY;
        }
 
-       s->name = talloc_strdup(s, lp_servicename(snum));
+       s->name = talloc_strdup(s, lp_servicename(service));
        if (!s->name) {
                DEBUG(0,("ERROR: Out of memory!\n"));
                talloc_free(s);
                return NT_STATUS_NO_MEMORY;
        }
 
-       scnum = talloc(s, struct sclassic_snum);
-       if (!scnum) {
-               DEBUG(0,("ERROR: Out of memory!\n"));
-               talloc_free(s);
-               return NT_STATUS_NO_MEMORY;
-       }
-       scnum->snum = snum;
-
-       s->opaque = (void *)scnum;
+       s->opaque = (void *)service;
        s->ctx = ctx;
        
        *scfg = s;
@@ -335,19 +326,19 @@ NTSTATUS sclassic_get_config(TALLOC_CTX *mem_ctx,
        return NT_STATUS_OK;
 }
 
+static const struct share_ops ops = {
+       .name = "classic",
+       .init = sclassic_init,
+       .string_option = sclassic_string_option,
+       .int_option = sclassic_int_option,
+       .bool_option = sclassic_bool_option,
+       .string_list_option = sclassic_string_list_option,
+       .list_all = sclassic_list_all,
+       .get_config = sclassic_get_config
+};
+
 NTSTATUS share_classic_init(void)
 {
-       static struct share_ops ops = {
-               .name = "classic",
-               .init = sclassic_init,
-               .string_option = sclassic_string_option,
-               .int_option = sclassic_int_option,
-               .bool_option = sclassic_bool_option,
-               .string_list_option = sclassic_string_list_option,
-               .list_all = sclassic_list_all,
-               .get_config = sclassic_get_config
-       };
-
        return share_register(&ops);
 }
 
index fe65cb7a580362d936ec22ed6fa199152b90ab2a..019b1616391ae185861a36c3fd6069829797ed29 100644 (file)
@@ -25,6 +25,7 @@
 #include "auth/auth.h"
 #include "db_wrap.h"
 #include "param/share.h"
+#include "param/param.h"
 
 static NTSTATUS sldb_init(TALLOC_CTX *mem_ctx, const struct share_ops *ops, struct share_context **ctx)
 {
@@ -36,10 +37,10 @@ static NTSTATUS sldb_init(TALLOC_CTX *mem_ctx, const struct share_ops *ops, stru
                return NT_STATUS_NO_MEMORY;
        }
        
-       sdb = ldb_wrap_connect( *ctx,
-                               private_path(*ctx, "share.ldb"),
-                               system_session(*ctx),
-                               NULL, 0, NULL);
+       sdb = ldb_wrap_connect(*ctx, global_loadparm, 
+                              private_path(*ctx, global_loadparm, "share.ldb"),
+                              system_session(*ctx),
+                              NULL, 0, NULL);
 
        if (!sdb) {
                talloc_free(*ctx);
@@ -98,16 +99,16 @@ static int sldb_int_option(struct share_config *scfg, const char *opt_name, int
        return ret;
 }
 
-static BOOL sldb_bool_option(struct share_config *scfg, const char *opt_name, BOOL defval)
+static bool sldb_bool_option(struct share_config *scfg, const char *opt_name, bool defval)
 {
        const char *val;
 
                val = sldb_string_option(scfg, opt_name, NULL);
        if (val == NULL) return defval;
 
-       if (strcasecmp(val, "true") == 0) return True;
+       if (strcasecmp(val, "true") == 0) return true;
 
-       return False;
+       return false;
 }
 
 static const char **sldb_string_list_option(TALLOC_CTX *mem_ctx, struct share_config *scfg, const char *opt_name)
@@ -354,9 +355,9 @@ NTSTATUS sldb_create(struct share_context *ctx, const char *name, struct share_i
 
        /* TODO: Security Descriptor */
 
-       SHARE_ADD_STRING(SHARE_AVAILABLE, "True");
-       SHARE_ADD_STRING(SHARE_BROWSEABLE, "True");
-       SHARE_ADD_STRING(SHARE_READONLY, "False");
+       SHARE_ADD_STRING(SHARE_AVAILABLE, "true");
+       SHARE_ADD_STRING(SHARE_BROWSEABLE, "true");
+       SHARE_ADD_STRING(SHARE_READONLY, "false");
        SHARE_ADD_STRING(SHARE_NTVFS_HANDLER, "unixuid");
        SHARE_ADD_STRING(SHARE_NTVFS_HANDLER, "posix");
 
@@ -428,7 +429,7 @@ NTSTATUS sldb_set(struct share_context *ctx, const char *name, struct share_info
        struct ldb_message *msg;
        TALLOC_CTX *tmp_ctx;
        NTSTATUS ret;
-       bool do_rename = False;
+       bool do_rename = false;
        char *newname;
        int err, i;
 
@@ -462,7 +463,7 @@ NTSTATUS sldb_set(struct share_context *ctx, const char *name, struct share_info
        for (i = 0; i < count; i++) {
                if (strcasecmp(info[i].name, SHARE_NAME) == 0) {
                        if (strcasecmp(name, (char *)info[i].value) != 0) {
-                               do_rename = True;
+                               do_rename = true;
                                newname = (char *)info[i].value;
                                SHARE_MOD_STRING("cn", (char *)info[i].value);
                        }
@@ -568,22 +569,21 @@ done:
        return ret;
 }
 
+static const struct share_ops ops = {
+       .name = "ldb",
+       .init = sldb_init,
+       .string_option = sldb_string_option,
+       .int_option = sldb_int_option,
+       .bool_option = sldb_bool_option,
+       .string_list_option = sldb_string_list_option,
+       .list_all = sldb_list_all,
+       .get_config = sldb_get_config,
+       .create = sldb_create,
+       .set = sldb_set,
+       .remove = sldb_remove
+};
+
 NTSTATUS share_ldb_init(void)
 {
-       static struct share_ops ops = {
-               .name = "ldb",
-               .init = sldb_init,
-               .string_option = sldb_string_option,
-               .int_option = sldb_int_option,
-               .bool_option = sldb_bool_option,
-               .string_list_option = sldb_string_list_option,
-               .list_all = sldb_list_all,
-               .get_config = sldb_get_config,
-               .create = sldb_create,
-               .set = sldb_set,
-               .remove = sldb_remove
-       };
-
        return share_register(&ops);
 }
-
index 6e6e12596bd932df940b43062816531b17d10da8..8d59861f400bbfb0713f8a9ea214a78e41f83472 100644 (file)
@@ -27,6 +27,7 @@
 #include "system/network.h"
 #include "system/filesys.h"
 #include "system/dir.h"
+#include "param/param.h"
 
 /**
  * @file
  */
 
 
+_PUBLIC_ bool lp_is_mydomain(struct loadparm_context *lp_ctx, 
+                            const char *domain)
+{
+       return strequal(lp_workgroup(lp_ctx), domain);
+}
+
 /**
   see if a string matches either our primary or one of our secondary 
   netbios aliases. do a case insensitive match
 */
-_PUBLIC_ BOOL is_myname(const char *name)
+_PUBLIC_ bool lp_is_myname(struct loadparm_context *lp_ctx, const char *name)
 {
        const char **aliases;
        int i;
 
-       if (strcasecmp(name, lp_netbios_name()) == 0) {
-               return True;
+       if (strcasecmp(name, lp_netbios_name(lp_ctx)) == 0) {
+               return true;
        }
 
-       aliases = lp_netbios_aliases();
+       aliases = lp_netbios_aliases(lp_ctx);
        for (i=0; aliases && aliases[i]; i++) {
                if (strcasecmp(name, aliases[i]) == 0) {
-                       return True;
+                       return true;
                }
        }
 
-       return False;
+       return false;
 }
 
 
 /**
  A useful function for returning a path in the Samba lock directory.
 **/
-_PUBLIC_ char *lock_path(TALLOC_CTX* mem_ctx, const char *name)
+_PUBLIC_ char *lock_path(TALLOC_CTX* mem_ctx, struct loadparm_context *lp_ctx,
+                        const char *name)
 {
        char *fname, *dname;
        if (name == NULL) {
@@ -71,7 +79,7 @@ _PUBLIC_ char *lock_path(TALLOC_CTX* mem_ctx, const char *name)
                return talloc_strdup(mem_ctx, name);
        }
 
-       dname = talloc_strdup(mem_ctx, lp_lockdir());
+       dname = talloc_strdup(mem_ctx, lp_lockdir(lp_ctx));
        trim_string(dname,"","/");
        
        if (!directory_exist(dname)) {
@@ -85,44 +93,6 @@ _PUBLIC_ char *lock_path(TALLOC_CTX* mem_ctx, const char *name)
        return fname;
 }
 
-
-/**
- A useful function for returning a path in the Samba piddir directory.
-**/
-static char *pid_path(TALLOC_CTX* mem_ctx, const char *name)
-{
-       char *fname, *dname;
-
-       dname = talloc_strdup(mem_ctx, lp_piddir());
-       trim_string(dname,"","/");
-       
-       if (!directory_exist(dname)) {
-               mkdir(dname,0755);
-       }
-       
-       fname = talloc_asprintf(mem_ctx, "%s/%s", dname, name);
-
-       talloc_free(dname);
-
-       return fname;
-}
-
-
-/**
- * @brief Returns an absolute path to a file in the Samba lib directory.
- *
- * @param name File to find, relative to DATADIR.
- *
- * @retval Pointer to a talloc'ed string containing the full path.
- **/
-
-_PUBLIC_ char *data_path(TALLOC_CTX* mem_ctx, const char *name)
-{
-       char *fname;
-       fname = talloc_asprintf(mem_ctx, "%s/%s", dyn_DATADIR, name);
-       return fname;
-}
-
 /**
  * @brief Returns an absolute path to a file in the directory containing the current config file
  *
@@ -131,10 +101,11 @@ _PUBLIC_ char *data_path(TALLOC_CTX* mem_ctx, const char *name)
  * @retval Pointer to a talloc'ed string containing the full path.
  **/
 
-_PUBLIC_ char *config_path(TALLOC_CTX* mem_ctx, const char *name)
+_PUBLIC_ char *config_path(TALLOC_CTX* mem_ctx, struct loadparm_context *lp_ctx,
+                          const char *name)
 {
        char *fname, *config_dir, *p;
-       config_dir = talloc_strdup(mem_ctx, lp_configfile());
+       config_dir = talloc_strdup(mem_ctx, lp_configfile(lp_ctx));
        p = strrchr(config_dir, '/');
        if (!p) {
                return NULL;
@@ -153,7 +124,9 @@ _PUBLIC_ char *config_path(TALLOC_CTX* mem_ctx, const char *name)
  *
  * @retval Pointer to a talloc'ed string containing the full path.
  **/
-_PUBLIC_ char *private_path(TALLOC_CTX* mem_ctx, const char *name)
+_PUBLIC_ char *private_path(TALLOC_CTX* mem_ctx, 
+                           struct loadparm_context *lp_ctx,
+                           const char *name)
 {
        char *fname;
        if (name == NULL) {
@@ -162,7 +135,7 @@ _PUBLIC_ char *private_path(TALLOC_CTX* mem_ctx, const char *name)
        if (name[0] == 0 || name[0] == '/' || strstr(name, ":/")) {
                return talloc_strdup(mem_ctx, name);
        }
-       fname = talloc_asprintf(mem_ctx, "%s/%s", lp_private_dir(), name);
+       fname = talloc_asprintf(mem_ctx, "%s/%s", lp_private_dir(lp_ctx), name);
        return fname;
 }
 
@@ -171,11 +144,13 @@ _PUBLIC_ char *private_path(TALLOC_CTX* mem_ctx, const char *name)
   for smbd go. If NULL is passed for name then return the directory 
   path itself
 */
-_PUBLIC_ char *smbd_tmp_path(TALLOC_CTX *mem_ctx, const char *name)
+_PUBLIC_ char *smbd_tmp_path(TALLOC_CTX *mem_ctx, 
+                            struct loadparm_context *lp_ctx, 
+                            const char *name)
 {
        char *fname, *dname;
 
-       dname = pid_path(mem_ctx, "smbd.tmp");
+       dname = private_path(mem_ctx, lp_ctx, "smbd.tmp");
        if (!directory_exist(dname)) {
                mkdir(dname,0755);
        }
@@ -275,12 +250,13 @@ _PUBLIC_ bool run_init_functions(init_module_fn *fns)
        return ret;
 }
 
-static char *modules_path(TALLOC_CTX* mem_ctx, const char *name)
+static char *modules_path(TALLOC_CTX* mem_ctx, struct loadparm_context *lp_ctx,
+                         const char *name)
 {
        const char *env_moduledir = getenv("LD_SAMBA_MODULE_PATH");
        return talloc_asprintf(mem_ctx, "%s/%s", 
-                                                  env_moduledir?env_moduledir:lp_modulesdir(), 
-                                                  name);
+                              env_moduledir?env_moduledir:lp_modulesdir(lp_ctx), 
+                              name);
 }
 
 /**
@@ -289,9 +265,9 @@ static char *modules_path(TALLOC_CTX* mem_ctx, const char *name)
  * Will return an array of function pointers to initialization functions
  */
 
-_PUBLIC_ init_module_fn *load_samba_modules(TALLOC_CTX *mem_ctx, const char *subsystem)
+_PUBLIC_ init_module_fn *load_samba_modules(TALLOC_CTX *mem_ctx, struct loadparm_context *lp_ctx, const char *subsystem)
 {
-       char *path = modules_path(mem_ctx, subsystem);
+       char *path = modules_path(mem_ctx, lp_ctx, subsystem);
        init_module_fn *ret;
 
        ret = load_modules(mem_ctx, path);
@@ -301,4 +277,9 @@ _PUBLIC_ init_module_fn *load_samba_modules(TALLOC_CTX *mem_ctx, const char *sub
        return ret;
 }
 
+_PUBLIC_ const char *lp_messaging_path(TALLOC_CTX *mem_ctx, 
+                                      struct loadparm_context *lp_ctx)
+{
+       return smbd_tmp_path(mem_ctx, lp_ctx, "messaging");
+}
 
index 11fdbb2390128c42b1acd678445e2aa9605eb98d..f624d2bdc03ea3791bb865ad164edf18de372e1c 100644 (file)
@@ -35,7 +35,7 @@ use vars qw($VERSION);
 $VERSION = '0.01';
 @ISA = qw(Exporter);
 @EXPORT = qw(GetPrevLevel GetNextLevel ContainsDeferred ContainsString);
-@EXPORT_OK = qw(GetElementLevelTable ParseElement ValidElement align_type mapToScalar ParseType);
+@EXPORT_OK = qw(GetElementLevelTable ParseElement ValidElement align_type mapToScalar ParseType can_contain_deferred);
 
 use strict;
 use Parse::Pidl qw(warning fatal);
@@ -264,7 +264,7 @@ sub GetElementLevelTable($)
                TYPE => "DATA",
                DATA_TYPE => $e->{TYPE},
                IS_DEFERRED => $is_deferred,
-               CONTAINS_DEFERRED => can_contain_deferred($e),
+               CONTAINS_DEFERRED => can_contain_deferred($e->{TYPE}),
                IS_SURROUNDING => 0 #FIXME
        });
 
@@ -279,18 +279,23 @@ sub GetElementLevelTable($)
 sub can_contain_deferred($)
 {
        sub can_contain_deferred($);
-       my $e = shift;
+       my ($type) = @_;
+
+       return 1 unless (hasType($type)); # assume the worst
 
-       return 0 if (Parse::Pidl::Typelist::is_scalar($e->{TYPE}));
-       return 1 unless (hasType($e->{TYPE})); # assume the worst
+       $type = getType($type);
 
-       my $type = getType($e->{TYPE});
+       return 0 if (Parse::Pidl::Typelist::is_scalar($type));
 
        return 1 if ($type->{TYPE} eq "DECLARE"); # assume the worst
 
-       foreach my $x (@{$type->{DATA}->{ELEMENTS}}) {
-               return 1 if ($x->{POINTERS});
-               return 1 if (can_contain_deferred ($x));
+       return can_contain_deferred($type->{DATA}) if ($type->{TYPE} eq "TYPEDEF");
+
+       return 0 unless defined($type->{ELEMENTS});
+
+       foreach (@{$type->{ELEMENTS}}) {
+               return 1 if ($_->{POINTERS});
+               return 1 if (can_contain_deferred ($_->{TYPE}));
        }
        
        return 0;
index 75d4c235cb4203d8ce1a6acd8af543264f921524..7a6ffa46d600643fefb2b4c592042055cc0d29f7 100644 (file)
@@ -10,7 +10,7 @@ use strict;
 use Parse::Pidl qw(fatal);
 use Parse::Pidl::Typelist qw(mapTypeName scalar_is_reference);
 use Parse::Pidl::Util qw(has_property is_constant unmake_str);
-use Parse::Pidl::Samba4 qw(is_intree ElementStars ArrayBrackets);
+use Parse::Pidl::Samba4 qw(is_intree ElementStars ArrayBrackets choose_header);
 
 use vars qw($VERSION);
 $VERSION = '0.01';
@@ -326,7 +326,7 @@ sub HeaderImport
        foreach (@imports) {
                s/\.idl\"$//;
                s/^\"//;
-               pidl "#include \"librpc/gen_ndr/$_\.h\"\n";
+               pidl choose_header("librpc/gen_ndr/$_\.h", "gen_ndr/$_.h") . "\n";
        }
 }
 
index cf14b645a97b72ea8c18a9755847b2f3012681c8..e9c158e93323b93152e7df011f91ad98a7a2cd78 100644 (file)
@@ -109,7 +109,7 @@ sub Parse($$$$)
                $res .= "#include <stdlib.h>\n";
                $res .= "#include <stdint.h>\n";
                $res .= "#include <stdarg.h>\n";
-               $res .= "#include <core/nterr.h>\n";
+               $res .= "#include <core/ntstatus.h>\n";
        }
        $res .= "#include \"$ndr_header\"\n";
        $res .= "#include \"$client_header\"\n";
index 9a29b72c1d89b570db572a210bf6d4004eb9ea32..cd3981bb282e9b6d17d4e971fde6421776d0e1bd 100644 (file)
@@ -2597,7 +2597,7 @@ sub GenerateIncludes($)
 
        # Samba3 has everything in include/includes.h
        if (is_intree() != 3) {
-               $self->pidl(choose_header("libcli/util/nterr.h", "core/nterr.h"));
+               $self->pidl(choose_header("libcli/util/ntstatus.h", "core/ntstatus.h"));
                $self->pidl(choose_header("librpc/gen_ndr/ndr_misc.h", "gen_ndr/ndr_misc.h"));
        }
 }
index b6980acc0f7b8e9a7d725b8954effb079779ab44..ed17fcc0da1ab5af2b6337101b57e049303aaae1 100644 (file)
@@ -111,7 +111,10 @@ static NTSTATUS $name\__op_ndr_pull(struct dcesrv_call_state *dce_call, TALLOC_C
                return NT_STATUS_NET_WRITE_FAULT;
        }
 
-       *r = talloc_size(mem_ctx, ndr_table_$name.calls[opnum].struct_size);
+       *r = talloc_named(mem_ctx,
+                         ndr_table_$name.calls[opnum].struct_size,
+                         \"struct %s\",
+                         ndr_table_$name.calls[opnum].name);
        NT_STATUS_HAVE_NO_MEMORY(*r);
 
         /* unravel the NDR for the packet */
index 832a2c5463e64e0a009ab355661b4c5e29516c62..568dff5adf541a54b05b29270b12f1e32ea2db91 100644 (file)
@@ -265,7 +265,7 @@ sub Parser($$$$)
                $self->pidl("#include <stdint.h>");
                $self->pidl("#include <stdarg.h>");
                $self->pidl("#include <string.h>");
-               $self->pidl("#include <core/nterr.h>");
+               $self->pidl("#include <core/ntstatus.h>");
        }
        $self->pidl("#include \"$hdrname\"");
        $self->pidl("");
index 043d2b9905caa9597248c050985d263725a1f31f..1512f19d525d981bd8b188a36f2c3234770da206 100755 (executable)
@@ -4,12 +4,12 @@
 use strict;
 use warnings;
 
-use Test::More tests => 27;
+use Test::More tests => 34;
 use FindBin qw($RealBin);
 use lib "$RealBin";
 use Util;
 use Parse::Pidl::Util qw(MyDumper);
-use Parse::Pidl::NDR qw(GetElementLevelTable ParseElement align_type mapToScalar ParseType);
+use Parse::Pidl::NDR qw(GetElementLevelTable ParseElement align_type mapToScalar ParseType can_contain_deferred);
 
 # Case 1
 
@@ -253,3 +253,18 @@ $t = {
        }
 };
 is_deeply(ParseType($t->{ORIGINAL}, "ref"), $t); 
+
+ok(not can_contain_deferred("uint32"));
+ok(can_contain_deferred("some_unknown_type"));
+ok(can_contain_deferred({ TYPE => "STRUCT", 
+               ELEMENTS => [ { TYPE => "uint32", POINTERS => 40 } ]}));
+ok(can_contain_deferred({ TYPE => "TYPEDEF", 
+                       DATA => { TYPE => "STRUCT", 
+               ELEMENTS => [ { TYPE => "uint32", POINTERS => 40 } ]}}));
+ok(not can_contain_deferred({ TYPE => "STRUCT", 
+               ELEMENTS => [ { TYPE => "uint32" } ]}));
+ok(not can_contain_deferred({ TYPE => "TYPEDEF",
+                       DATA => { TYPE => "STRUCT", 
+               ELEMENTS => [ { TYPE => "uint32" } ]}}));
+ok(can_contain_deferred({ TYPE => "STRUCT", 
+               ELEMENTS => [ { TYPE => "someunknowntype" } ]}));
index 52cd06f8170f4a12e810d4749d20af7e109a95a7..84feeeb9ff2ad55141000b055fe31ebf005f00c6 100755 (executable)
@@ -25,7 +25,7 @@ test_samba4_ndr('represent_as-simple',
                return 2;
 ',
 '
-#include <libcli/util/nterr.h>
+#include <libcli/util/ntstatus.h>
 
 NTSTATUS ndr_uint8_to_uint32(uint8_t from, uint32_t *to)
 {
@@ -58,7 +58,7 @@ test_samba4_ndr('transmit_as-simple',
                return 2;
 ',
 '
-#include <libcli/util/nterr.h>
+#include <libcli/util/ntstatus.h>
 
 NTSTATUS ndr_uint8_to_uint32(uint8_t from, uint32_t *to)
 {
index ccd2bdbad42c0ef79ac8c1356d635f407c75d39d..c6f93f076a696b9338057837b4df655c1160b585 100644 (file)
@@ -25,6 +25,7 @@
 #include "rpc_server/dcerpc_server.h"
 #include "dsdb/samdb/samdb.h"
 #include "auth/auth.h"
+#include "param/param.h"
 
 /* 
     Here are common server info functions used by some dcerpc server interfaces
@@ -35,7 +36,7 @@ _PUBLIC_ enum srvsvc_PlatformId dcesrv_common_get_platform_id(TALLOC_CTX *mem_ct
 {
        enum srvsvc_PlatformId id;
 
-       id = lp_parm_int(-1, "server_info", "platform_id", PLATFORM_ID_NT);
+       id = lp_parm_int(global_loadparm, NULL, "server_info", "platform_id", PLATFORM_ID_NT);
 
        return id;
 }
@@ -46,7 +47,7 @@ _PUBLIC_ const char *dcesrv_common_get_server_name(TALLOC_CTX *mem_ctx, struct d
 
        /* if there's no string return our NETBIOS name */
        if (!p) {
-               return talloc_strdup(mem_ctx, lp_netbios_name());
+               return talloc_strdup(mem_ctx, lp_netbios_name(global_loadparm));
        }
 
        /* if there're '\\\\' in front remove them otherwise just pass the string */
@@ -59,25 +60,25 @@ _PUBLIC_ const char *dcesrv_common_get_server_name(TALLOC_CTX *mem_ctx, struct d
 
 const char *dcesrv_common_get_domain_name(TALLOC_CTX *mem_ctx, struct dcesrv_context *dce_ctx)
 {
-       return talloc_strdup(mem_ctx, lp_workgroup());
+       return talloc_strdup(mem_ctx, lp_workgroup(global_loadparm));
 }
 
 /* This hardcoded value should go into a ldb database! */
 _PUBLIC_ uint32_t dcesrv_common_get_version_major(TALLOC_CTX *mem_ctx, struct dcesrv_context *dce_ctx)
 {
-       return lp_parm_int(-1, "server_info", "version_major", 5);
+       return lp_parm_int(global_loadparm, NULL, "server_info", "version_major", 5);
 }
 
 /* This hardcoded value should go into a ldb database! */
 _PUBLIC_ uint32_t dcesrv_common_get_version_minor(TALLOC_CTX *mem_ctx, struct dcesrv_context *dce_ctx)
 {
-       return lp_parm_int(-1, "server_info", "version_minor", 2);
+       return lp_parm_int(global_loadparm, NULL, "server_info", "version_minor", 2);
 }
 
 /* This hardcoded value should go into a ldb database! */
 _PUBLIC_ uint32_t dcesrv_common_get_version_build(TALLOC_CTX *mem_ctx, struct dcesrv_context *dce_ctx)
 {
-       return lp_parm_int(-1, "server_info", "version_build", 3790);
+       return lp_parm_int(global_loadparm, NULL, "server_info", "version_build", 3790);
 }
 
 /* This hardcoded value should go into a ldb database! */
@@ -88,7 +89,7 @@ _PUBLIC_ uint32_t dcesrv_common_get_server_type(TALLOC_CTX *mem_ctx, struct dces
        default_server_announce |= SV_TYPE_SERVER;
        default_server_announce |= SV_TYPE_SERVER_UNIX;
 
-       switch (lp_announce_as()) {
+       switch (lp_announce_as(global_loadparm)) {
                case ANNOUNCE_AS_NT_SERVER:
                        default_server_announce |= SV_TYPE_SERVER_NT;
                        /* fall through... */
@@ -105,7 +106,7 @@ _PUBLIC_ uint32_t dcesrv_common_get_server_type(TALLOC_CTX *mem_ctx, struct dces
                        break;
        }
 
-       switch (lp_server_role()) {
+       switch (lp_server_role(global_loadparm)) {
                case ROLE_DOMAIN_MEMBER:
                        default_server_announce |= SV_TYPE_DOMAIN_MEMBER;
                        break;
@@ -122,7 +123,7 @@ _PUBLIC_ uint32_t dcesrv_common_get_server_type(TALLOC_CTX *mem_ctx, struct dces
                                DEBUG(2,("Unable to open samdb in determining server announce flags\n"));
                        } else {
                                /* Determine if we are the pdc */
-                               BOOL is_pdc = samdb_is_pdc(samctx);
+                               bool is_pdc = samdb_is_pdc(samctx);
                                if (is_pdc) {
                                        default_server_announce |= SV_TYPE_DOMAIN_CTRL;
                                } else {
@@ -137,17 +138,17 @@ _PUBLIC_ uint32_t dcesrv_common_get_server_type(TALLOC_CTX *mem_ctx, struct dces
                default:
                        break;
        }
-       if (lp_time_server())
+       if (lp_time_server(global_loadparm))
                default_server_announce |= SV_TYPE_TIME_SOURCE;
 
-       if (lp_host_msdfs())
+       if (lp_host_msdfs(global_loadparm))
                default_server_announce |= SV_TYPE_DFS_SERVER;
 
 
 #if 0
        { 
                /* TODO: announce us as print server when we are a print server */
-               BOOL is_print_server = False;
+               bool is_print_server = false;
                if (is_print_server) {
                        default_server_announce |= SV_TYPE_PRINTQ_SERVER;
                }
@@ -209,8 +210,8 @@ _PUBLIC_ const char *dcesrv_common_get_userpath(TALLOC_CTX *mem_ctx, struct dces
 _PUBLIC_ bool dcesrv_common_validate_share_name(TALLOC_CTX *mem_ctx, const char *share_name)
 {
        if (strpbrk(share_name, INVALID_SHARE_NAME_CHARS)) {
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
index 0de09b572e47efb6e336810ab14e171996ac704f..1269dcc707498a77c7ab97f6433adcbc48e3b34b 100644 (file)
@@ -135,8 +135,11 @@ PRIVATE_DEPENDENCIES = \
 [MODULE::dcerpc_lsarpc]
 INIT_FUNCTION = dcerpc_server_lsa_init
 SUBSYSTEM = dcerpc_server
+PRIVATE_PROTO_HEADER= lsa/proto.h
 OBJ_FILES = \
-               lsa/dcesrv_lsa.o
+               lsa/dcesrv_lsa.o \
+               lsa/lsa_init.o \
+               lsa/lsa_lookup.o
 PRIVATE_DEPENDENCIES = \
                SAMDB \
                DCERPC_COMMON \
@@ -157,7 +160,8 @@ OBJ_FILES = \
 PRIVATE_DEPENDENCIES = \
                DCERPC_COMMON \
                NDR_SPOOLSS \
-               ntptr
+               ntptr \
+               RPC_NDR_SPOOLSS
 # End MODULE dcerpc_spoolss
 ################################################
 
@@ -182,7 +186,6 @@ PUBLIC_HEADERS = dcerpc_server.h
 PUBLIC_PROTO_HEADER = dcerpc_server_proto.h
 OBJ_FILES = \
                dcerpc_server.o \
-               dcerpc_sock.o \
                dcesrv_auth.o \
                dcesrv_mgmt.o \
                handles.o
@@ -196,5 +199,6 @@ PRIVATE_DEPENDENCIES = \
 
 [MODULE::DCESRV]
 INIT_FUNCTION = server_service_rpc_init
+OBJ_FILES = service_rpc.o
 SUBSYSTEM = service
 PRIVATE_DEPENDENCIES = dcerpc_server
index 35b37b3af6c070372b19e513d091c0cbe34162be..4388c86f22ad71c76948648620017dfc2663f3ad 100644 (file)
 #include "system/filesys.h"
 #include "libcli/security/security.h"
 #include "build.h"
+#include "param/param.h"
 
 extern const struct dcesrv_interface dcesrv_mgmt_interface;
 
 /*
   see if two endpoints match
 */
-static BOOL endpoints_match(const struct dcerpc_binding *ep1,
+static bool endpoints_match(const struct dcerpc_binding *ep1,
                            const struct dcerpc_binding *ep2)
 {
        if (ep1->transport != ep2->transport) {
-               return False;
+               return false;
        }
 
        if (!ep1->endpoint || !ep2->endpoint) {
@@ -51,9 +52,9 @@ static BOOL endpoints_match(const struct dcerpc_binding *ep1,
        }
 
        if (strcasecmp(ep1->endpoint, ep2->endpoint) != 0) 
-               return False;
+               return false;
 
-       return True;
+       return true;
 }
 
 /*
@@ -87,7 +88,7 @@ static struct dcesrv_connection_context *dcesrv_find_context(struct dcesrv_conne
 /*
   see if a uuid and if_version match to an interface
 */
-static BOOL interface_match(const struct dcesrv_interface *if1,
+static bool interface_match(const struct dcesrv_interface *if1,
                                                        const struct dcesrv_interface *if2)
 {
        return (if1->syntax_id.if_version == if2->syntax_id.if_version && 
@@ -112,7 +113,7 @@ static const struct dcesrv_interface *find_interface(const struct dcesrv_endpoin
 /*
   see if a uuid and if_version match to an interface
 */
-static BOOL interface_match_by_uuid(const struct dcesrv_interface *iface,
+static bool interface_match_by_uuid(const struct dcesrv_interface *iface,
                                    const struct GUID *uuid, uint32_t if_version)
 {
        return (iface->syntax_id.if_version == if_version && 
@@ -159,7 +160,7 @@ _PUBLIC_ NTSTATUS dcesrv_interface_register(struct dcesrv_context *dce_ctx,
        struct dcesrv_endpoint *ep;
        struct dcesrv_if_list *ifl;
        struct dcerpc_binding *binding;
-       BOOL add_ep = False;
+       bool add_ep = false;
        NTSTATUS status;
        
        status = dcerpc_parse_binding(dce_ctx, ep_name, &binding);
@@ -178,7 +179,7 @@ _PUBLIC_ NTSTATUS dcesrv_interface_register(struct dcesrv_context *dce_ctx,
                }
                ZERO_STRUCTP(ep);
                ep->ep_description = talloc_reference(ep, binding);
-               add_ep = True;
+               add_ep = true;
 
                /* add mgmt interface */
                ifl = talloc(dce_ctx, struct dcesrv_if_list);
@@ -337,7 +338,7 @@ NTSTATUS dcesrv_endpoint_connect(struct dcesrv_context *dce_ctx,
        p->event_ctx = event_ctx;
        p->msg_ctx = msg_ctx;
        p->server_id = server_id;
-       p->processing = False;
+       p->processing = false;
        p->state_flags = state_flags;
        ZERO_STRUCT(p->transport);
 
@@ -389,7 +390,7 @@ static void dcesrv_init_hdr(struct ncacn_packet *pkt)
 {
        pkt->rpc_vers = 5;
        pkt->rpc_vers_minor = 0;
-       if (lp_rpc_big_endian()) {
+       if (lp_rpc_big_endian(global_loadparm)) {
                pkt->drep[0] = 0;
        } else {
                pkt->drep[0] = DCERPC_DREP_LE;
@@ -891,7 +892,7 @@ _PUBLIC_ NTSTATUS dcesrv_reply(struct dcesrv_call_state *call)
           pointers */
        push->ptr_count = call->ndr_pull->ptr_count;
 
-       if (lp_rpc_big_endian()) {
+       if (lp_rpc_big_endian(global_loadparm)) {
                push->flags |= LIBNDR_FLAG_BIGENDIAN;
        }
 
@@ -982,15 +983,15 @@ _PUBLIC_ struct socket_address *dcesrv_connection_get_peer_addr(struct dcesrv_co
 /*
   work out if we have a full packet yet
 */
-static BOOL dce_full_packet(const DATA_BLOB *data)
+static bool dce_full_packet(const DATA_BLOB *data)
 {
        if (data->length < DCERPC_FRAG_LEN_OFFSET+2) {
-               return False;
+               return false;
        }
        if (dcerpc_get_frag_length(data) > data->length) {
-               return False;
+               return false;
        }
-       return True;
+       return true;
 }
 
 /*
@@ -1246,7 +1247,7 @@ _PUBLIC_ NTSTATUS dcesrv_output(struct dcesrv_connection *dce_conn,
        return status;
 }
 
-static NTSTATUS dcesrv_init_context(TALLOC_CTX *mem_ctx, const char **endpoint_servers, struct dcesrv_context **_dce_ctx)
+_PUBLIC_ NTSTATUS dcesrv_init_context(TALLOC_CTX *mem_ctx, const char **endpoint_servers, struct dcesrv_context **_dce_ctx)
 {
        NTSTATUS status;
        struct dcesrv_context *dce_ctx;
@@ -1282,21 +1283,6 @@ static NTSTATUS dcesrv_init_context(TALLOC_CTX *mem_ctx, const char **endpoint_s
        return NT_STATUS_OK;
 }
 
-/*
-  initialise the dcerpc server context for ncacn_np based services
-*/
-_PUBLIC_ NTSTATUS dcesrv_init_ipc_context(TALLOC_CTX *mem_ctx, struct dcesrv_context **_dce_ctx)
-{
-       NTSTATUS status;
-       struct dcesrv_context *dce_ctx;
-
-       status = dcesrv_init_context(mem_ctx, lp_dcerpc_endpoint_servers(), &dce_ctx);
-       NT_STATUS_NOT_OK_RETURN(status);
-
-       *_dce_ctx = dce_ctx;
-       return NT_STATUS_OK;
-}
-
 /* the list of currently registered DCERPC endpoint servers.
  */
 static struct ep_server {
@@ -1379,78 +1365,18 @@ const struct dcesrv_critical_sizes *dcerpc_module_version(void)
 }
 
 /*
-  open the dcerpc server sockets
+  initialise the dcerpc server context for ncacn_np based services
 */
-static void dcesrv_task_init(struct task_server *task)
+_PUBLIC_ NTSTATUS dcesrv_init_ipc_context(TALLOC_CTX *mem_ctx, struct dcesrv_context **_dce_ctx)
 {
        NTSTATUS status;
        struct dcesrv_context *dce_ctx;
-       struct dcesrv_endpoint *e;
-
-       task_server_set_title(task, "task[dcesrv]");
 
-       status = dcesrv_init_context(task->event_ctx,
-                                    lp_dcerpc_endpoint_servers(),
-                                    &dce_ctx);
-       if (!NT_STATUS_IS_OK(status)) goto failed;
-
-       /* Make sure the directory for NCALRPC exists */
-       if (!directory_exist(lp_ncalrpc_dir())) {
-               mkdir(lp_ncalrpc_dir(), 0755);
-       }
-
-       for (e=dce_ctx->endpoint_list;e;e=e->next) {
-               switch (e->ep_description->transport) {
-               case NCACN_UNIX_STREAM:
-                       status = dcesrv_add_ep_unix(dce_ctx, e, task->event_ctx, task->model_ops);
-                       if (!NT_STATUS_IS_OK(status)) goto failed;
-                       break;
-               
-               case NCALRPC:
-                       status = dcesrv_add_ep_ncalrpc(dce_ctx, e, task->event_ctx, task->model_ops);
-                       if (!NT_STATUS_IS_OK(status)) goto failed;
-                       break;
-
-               case NCACN_IP_TCP:
-                       status = dcesrv_add_ep_tcp(dce_ctx, e, task->event_ctx, task->model_ops);
-                       if (!NT_STATUS_IS_OK(status)) goto failed;
-                       break;
-                       
-               case NCACN_NP:
-                       status = dcesrv_add_ep_np(dce_ctx, e, task->event_ctx, task->model_ops);
-                       if (!NT_STATUS_IS_OK(status)) goto failed;
-                       break;
-
-               default:
-                       status = NT_STATUS_NOT_SUPPORTED;
-                       if (!NT_STATUS_IS_OK(status)) goto failed;
-               }
-       }
-
-       return;
-failed:
-       task_server_terminate(task, "Failed to startup dcerpc server task");    
-}
+       status = dcesrv_init_context(mem_ctx, lp_dcerpc_endpoint_servers(global_loadparm), &dce_ctx);
+       NT_STATUS_NOT_OK_RETURN(status);
 
-/*
-  called on startup of the smb server service It's job is to start
-  listening on all configured sockets
-*/
-static NTSTATUS dcesrv_init(struct event_context *event_context, 
-                           const struct model_ops *model_ops)
-{      
-       return task_server_startup(event_context, model_ops, dcesrv_task_init);
+       *_dce_ctx = dce_ctx;
+       return NT_STATUS_OK;
 }
 
-NTSTATUS server_service_rpc_init(void)
-{
-       init_module_fn static_init[] = STATIC_dcerpc_server_MODULES;
-       init_module_fn *shared_init = load_samba_modules(NULL, "dcerpc_server");
-
-       run_init_functions(static_init);
-       run_init_functions(shared_init);
 
-       talloc_free(shared_init);
-       
-       return register_server_service("rpc", dcesrv_init);
-}
diff --git a/source/rpc_server/dcerpc_sock.c b/source/rpc_server/dcerpc_sock.c
deleted file mode 100644 (file)
index 8347583..0000000
+++ /dev/null
@@ -1,371 +0,0 @@
-/* 
-   Unix SMB/CIFS implementation.
-
-   server side dcerpc using various kinds of sockets (tcp, unix domain)
-
-   Copyright (C) Andrew Tridgell 2003
-   Copyright (C) Stefan (metze) Metzmacher 2004-2005  
-   Copyright (C) Jelmer Vernooij 2004
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3 of the License, or
-   (at your option) any later version.
-   
-   This program 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 General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program.  If not, see <http://www.gnu.org/licenses/>.
-*/
-
-#include "includes.h"
-#include "lib/socket/socket.h"
-#include "lib/events/events.h"
-#include "rpc_server/dcerpc_server.h"
-#include "smbd/service_stream.h"
-#include "smbd/service.h"
-#include "lib/messaging/irpc.h"
-#include "system/network.h"
-#include "lib/socket/netif.h"
-#include "auth/auth.h"
-
-struct dcesrv_socket_context {
-       const struct dcesrv_endpoint *endpoint;
-       struct dcesrv_context *dcesrv_ctx;
-};
-
-/*
-  write_fn callback for dcesrv_output()
-*/
-static NTSTATUS dcerpc_write_fn(void *private_data, DATA_BLOB *out, size_t *nwritten)
-{
-       NTSTATUS status;
-       struct socket_context *sock = talloc_get_type(private_data, struct socket_context);
-       size_t sendlen;
-
-       status = socket_send(sock, out, &sendlen);
-       NT_STATUS_IS_ERR_RETURN(status);
-
-       *nwritten = sendlen;
-       return status;
-}
-
-static void dcesrv_terminate_connection(struct dcesrv_connection *dce_conn, const char *reason)
-{
-       struct stream_connection *srv_conn;
-       srv_conn = talloc_get_type(dce_conn->transport.private_data,
-                                  struct stream_connection);
-
-       stream_terminate_connection(srv_conn, reason);
-}
-
-static void dcesrv_sock_report_output_data(struct dcesrv_connection *dcesrv_conn)
-{
-       struct stream_connection *srv_conn;
-       srv_conn = talloc_get_type(dcesrv_conn->transport.private_data,
-                                  struct stream_connection);
-
-       if (srv_conn && srv_conn->event.fde) {
-               EVENT_FD_WRITEABLE(srv_conn->event.fde);
-       }
-}
-
-static struct socket_address *dcesrv_sock_get_my_addr(struct dcesrv_connection *dcesrv_conn, TALLOC_CTX *mem_ctx)
-{
-       struct stream_connection *srv_conn;
-       srv_conn = talloc_get_type(dcesrv_conn->transport.private_data,
-                                  struct stream_connection);
-
-       return socket_get_my_addr(srv_conn->socket, mem_ctx);
-}
-
-static struct socket_address *dcesrv_sock_get_peer_addr(struct dcesrv_connection *dcesrv_conn, TALLOC_CTX *mem_ctx)
-{
-       struct stream_connection *srv_conn;
-       srv_conn = talloc_get_type(dcesrv_conn->transport.private_data,
-                                  struct stream_connection);
-
-       return socket_get_peer_addr(srv_conn->socket, mem_ctx);
-}
-
-static void dcesrv_sock_accept(struct stream_connection *srv_conn)
-{
-       NTSTATUS status;
-       struct dcesrv_socket_context *dcesrv_sock = 
-               talloc_get_type(srv_conn->private, struct dcesrv_socket_context);
-       struct dcesrv_connection *dcesrv_conn = NULL;
-       struct auth_session_info *session_info = NULL;
-
-       status = auth_anonymous_session_info(srv_conn, &session_info);
-       if (!NT_STATUS_IS_OK(status)) {
-               DEBUG(0,("dcesrv_sock_accept: auth_anonymous_session_info failed: %s\n", 
-                       nt_errstr(status)));
-               stream_terminate_connection(srv_conn, nt_errstr(status));
-               return;
-       }
-
-       status = dcesrv_endpoint_connect(dcesrv_sock->dcesrv_ctx,
-                                        srv_conn,
-                                        dcesrv_sock->endpoint,
-                                        session_info,
-                                        srv_conn->event.ctx,
-                                        srv_conn->msg_ctx,
-                                        srv_conn->server_id,
-                                        DCESRV_CALL_STATE_FLAG_MAY_ASYNC,
-                                        &dcesrv_conn);
-       if (!NT_STATUS_IS_OK(status)) {
-               DEBUG(0,("dcesrv_sock_accept: dcesrv_endpoint_connect failed: %s\n", 
-                       nt_errstr(status)));
-               stream_terminate_connection(srv_conn, nt_errstr(status));
-               return;
-       }
-
-       dcesrv_conn->transport.private_data             = srv_conn;
-       dcesrv_conn->transport.report_output_data       = dcesrv_sock_report_output_data;
-       dcesrv_conn->transport.get_my_addr              = dcesrv_sock_get_my_addr;
-       dcesrv_conn->transport.get_peer_addr            = dcesrv_sock_get_peer_addr;
-
-       srv_conn->private = dcesrv_conn;
-
-       irpc_add_name(srv_conn->msg_ctx, "rpc_server");
-
-       return; 
-}
-
-static void dcesrv_sock_recv(struct stream_connection *conn, uint16_t flags)
-{
-       NTSTATUS status;
-       struct dcesrv_connection *dce_conn = talloc_get_type(conn->private, struct dcesrv_connection);
-       DATA_BLOB tmp_blob;
-       size_t nread;
-
-       if (dce_conn->processing) {
-               EVENT_FD_NOT_READABLE(conn->event.fde);
-               return;
-       }
-
-       tmp_blob = data_blob_talloc(conn->socket, NULL, 0x1000);
-       if (tmp_blob.data == NULL) {
-               dcesrv_terminate_connection(dce_conn, "out of memory");
-               return;
-       }
-
-       status = socket_recv(conn->socket, tmp_blob.data, tmp_blob.length, &nread);
-       if (NT_STATUS_IS_ERR(status)) {
-               dcesrv_terminate_connection(dce_conn, nt_errstr(status));
-               return;
-       }
-       if (nread == 0) {
-               talloc_free(tmp_blob.data);
-               return;
-       }
-
-       tmp_blob.length = nread;
-
-       dce_conn->processing = True;
-       status = dcesrv_input(dce_conn, &tmp_blob);
-       dce_conn->processing = False;
-       talloc_free(tmp_blob.data);
-
-       EVENT_FD_READABLE(conn->event.fde);
-
-       if (!NT_STATUS_IS_OK(status)) {
-               dcesrv_terminate_connection(dce_conn, nt_errstr(status));
-               return;
-       }
-
-       if (dce_conn->call_list && dce_conn->call_list->replies) {
-               EVENT_FD_WRITEABLE(conn->event.fde);
-       }
-}
-
-static void dcesrv_sock_send(struct stream_connection *conn, uint16_t flags)
-{
-       struct dcesrv_connection *dce_conn = talloc_get_type(conn->private, struct dcesrv_connection);
-       NTSTATUS status;
-
-       status = dcesrv_output(dce_conn, conn->socket, dcerpc_write_fn);
-       if (NT_STATUS_IS_ERR(status)) {
-               dcesrv_terminate_connection(dce_conn, "eof on socket");
-               return;
-       }
-
-       if (!dce_conn->call_list || !dce_conn->call_list->replies) {
-               EVENT_FD_NOT_WRITEABLE(conn->event.fde);
-       }
-}
-
-
-static const struct stream_server_ops dcesrv_stream_ops = {
-       .name                   = "rpc",
-       .accept_connection      = dcesrv_sock_accept,
-       .recv_handler           = dcesrv_sock_recv,
-       .send_handler           = dcesrv_sock_send,
-};
-
-
-
-NTSTATUS dcesrv_add_ep_unix(struct dcesrv_context *dce_ctx, struct dcesrv_endpoint *e,
-                                   struct event_context *event_ctx, const struct model_ops *model_ops)
-{
-       struct dcesrv_socket_context *dcesrv_sock;
-       uint16_t port = 1;
-       NTSTATUS status;
-
-       dcesrv_sock = talloc(event_ctx, struct dcesrv_socket_context);
-       NT_STATUS_HAVE_NO_MEMORY(dcesrv_sock);
-
-       /* remember the endpoint of this socket */
-       dcesrv_sock->endpoint           = e;
-       dcesrv_sock->dcesrv_ctx         = talloc_reference(dcesrv_sock, dce_ctx);
-
-       status = stream_setup_socket(event_ctx, model_ops, &dcesrv_stream_ops, 
-                                    "unix", e->ep_description->endpoint, &port, 
-                                    dcesrv_sock);
-       if (!NT_STATUS_IS_OK(status)) {
-               DEBUG(0,("service_setup_stream_socket(path=%s) failed - %s\n",
-                        e->ep_description->endpoint, nt_errstr(status)));
-       }
-
-       return status;
-}
-
-NTSTATUS dcesrv_add_ep_ncalrpc(struct dcesrv_context *dce_ctx, struct dcesrv_endpoint *e,
-                                      struct event_context *event_ctx, const struct model_ops *model_ops)
-{
-       struct dcesrv_socket_context *dcesrv_sock;
-       uint16_t port = 1;
-       char *full_path;
-       NTSTATUS status;
-
-       if (!e->ep_description->endpoint) {
-               /* No identifier specified: use DEFAULT. 
-                * DO NOT hardcode this value anywhere else. Rather, specify 
-                * no endpoint and let the epmapper worry about it. */
-               e->ep_description->endpoint = talloc_strdup(dce_ctx, "DEFAULT");
-       }
-
-       full_path = talloc_asprintf(dce_ctx, "%s/%s", lp_ncalrpc_dir(), e->ep_description->endpoint);
-
-       dcesrv_sock = talloc(event_ctx, struct dcesrv_socket_context);
-       NT_STATUS_HAVE_NO_MEMORY(dcesrv_sock);
-
-       /* remember the endpoint of this socket */
-       dcesrv_sock->endpoint           = e;
-       dcesrv_sock->dcesrv_ctx         = talloc_reference(dcesrv_sock, dce_ctx);
-
-       status = stream_setup_socket(event_ctx, model_ops, &dcesrv_stream_ops, 
-                                    "unix", full_path, &port, dcesrv_sock);
-       if (!NT_STATUS_IS_OK(status)) {
-               DEBUG(0,("service_setup_stream_socket(identifier=%s,path=%s) failed - %s\n",
-                        e->ep_description->endpoint, full_path, nt_errstr(status)));
-       }
-       return status;
-}
-
-
-/*
-  add a socket address to the list of events, one event per dcerpc endpoint
-*/
-static NTSTATUS add_socket_rpc_pipe_iface(struct dcesrv_context *dce_ctx, struct dcesrv_endpoint *e,
-                                        struct event_context *event_ctx, const struct model_ops *model_ops)
-{
-       struct dcesrv_socket_context *dcesrv_sock;
-       NTSTATUS status;
-                       
-       if (e->ep_description->endpoint == NULL) {
-               DEBUG(0, ("Endpoint mandatory for named pipes\n"));
-               return NT_STATUS_INVALID_PARAMETER;
-       }
-
-       dcesrv_sock = talloc(event_ctx, struct dcesrv_socket_context);
-       NT_STATUS_HAVE_NO_MEMORY(dcesrv_sock);
-
-       /* remember the endpoint of this socket */
-       dcesrv_sock->endpoint           = e;
-       dcesrv_sock->dcesrv_ctx         = talloc_reference(dcesrv_sock, dce_ctx);
-
-       status = NT_STATUS_OK;
-#if 0
-
-       status = stream_setup_smb_pipe(event_ctx, model_ops, &dcesrv_stream_ops, 
-                                    e->ep_description->endpoint, dcesrv_sock);
-       if (!NT_STATUS_IS_OK(status)) {
-               DEBUG(0,("service_setup_stream_socket(path=%s) failed - %s\n", 
-                        e->ep_description->endpoint, nt_errstr(status)));
-       }
-#endif
-       return status;
-}
-
-NTSTATUS dcesrv_add_ep_np(struct dcesrv_context *dce_ctx, struct dcesrv_endpoint *e,
-                                  struct event_context *event_ctx, const struct model_ops *model_ops)
-{
-       NTSTATUS status;
-
-       status = add_socket_rpc_pipe_iface(dce_ctx, e, event_ctx, model_ops);
-       NT_STATUS_NOT_OK_RETURN(status);
-
-       return status;
-}
-
-/*
-  add a socket address to the list of events, one event per dcerpc endpoint
-*/
-static NTSTATUS add_socket_rpc_tcp_iface(struct dcesrv_context *dce_ctx, struct dcesrv_endpoint *e,
-                                        struct event_context *event_ctx, const struct model_ops *model_ops,
-                                        const char *address)
-{
-       struct dcesrv_socket_context *dcesrv_sock;
-       uint16_t port = 0;
-       NTSTATUS status;
-                       
-       if (e->ep_description->endpoint) {
-               port = atoi(e->ep_description->endpoint);
-       }
-
-       dcesrv_sock = talloc(event_ctx, struct dcesrv_socket_context);
-       NT_STATUS_HAVE_NO_MEMORY(dcesrv_sock);
-
-       /* remember the endpoint of this socket */
-       dcesrv_sock->endpoint           = e;
-       dcesrv_sock->dcesrv_ctx         = talloc_reference(dcesrv_sock, dce_ctx);
-
-       status = stream_setup_socket(event_ctx, model_ops, &dcesrv_stream_ops, 
-                                    "ipv4", address, &port, dcesrv_sock);
-       if (!NT_STATUS_IS_OK(status)) {
-               DEBUG(0,("service_setup_stream_socket(address=%s,port=%u) failed - %s\n", 
-                        address, port, nt_errstr(status)));
-       }
-
-       if (e->ep_description->endpoint == NULL) {
-               e->ep_description->endpoint = talloc_asprintf(dce_ctx, "%d", port);
-       }
-
-       return status;
-}
-
-NTSTATUS dcesrv_add_ep_tcp(struct dcesrv_context *dce_ctx, struct dcesrv_endpoint *e,
-                                  struct event_context *event_ctx, const struct model_ops *model_ops)
-{
-       NTSTATUS status;
-
-       /* Add TCP/IP sockets */
-       if (lp_interfaces() && lp_bind_interfaces_only()) {
-               int num_interfaces = iface_count();
-               int i;
-               for(i = 0; i < num_interfaces; i++) {
-                       const char *address = iface_n_ip(i);
-                       status = add_socket_rpc_tcp_iface(dce_ctx, e, event_ctx, model_ops, address);
-                       NT_STATUS_NOT_OK_RETURN(status);
-               }
-       } else {
-               status = add_socket_rpc_tcp_iface(dce_ctx, e, event_ctx, model_ops, lp_socket_address());
-               NT_STATUS_NOT_OK_RETURN(status);
-       }
-
-       return NT_STATUS_OK;
-}
index 49a4c3de13e381b20b2cc0274ce52d9ee8e00323..911cfe47999a057461d6af528b0f772bea4707b5 100644 (file)
 #include "librpc/gen_ndr/ndr_dcerpc.h"
 #include "auth/credentials/credentials.h"
 #include "auth/gensec/gensec.h"
+#include "param/param.h"
 
 /*
   parse any auth information from a dcerpc bind request
-  return False if we can't handle the auth request for some 
+  return false if we can't handle the auth request for some 
   reason (in which case we send a bind_nak)
 */
-BOOL dcesrv_auth_bind(struct dcesrv_call_state *call)
+bool dcesrv_auth_bind(struct dcesrv_call_state *call)
 {
        struct cli_credentials *server_credentials;
        struct ncacn_packet *pkt = &call->pkt;
@@ -41,12 +42,12 @@ BOOL dcesrv_auth_bind(struct dcesrv_call_state *call)
 
        if (pkt->u.bind.auth_info.length == 0) {
                dce_conn->auth_state.auth_info = NULL;
-               return True;
+               return true;
        }
 
        dce_conn->auth_state.auth_info = talloc(dce_conn, struct dcerpc_auth);
        if (!dce_conn->auth_state.auth_info) {
-               return False;
+               return false;
        }
 
        status = ndr_pull_struct_blob(&pkt->u.bind.auth_info,
@@ -54,23 +55,23 @@ BOOL dcesrv_auth_bind(struct dcesrv_call_state *call)
                                      dce_conn->auth_state.auth_info,
                                      (ndr_pull_flags_fn_t)ndr_pull_dcerpc_auth);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
        status = gensec_server_start(dce_conn, call->event_ctx, call->msg_ctx, &auth->gensec_security);
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(1, ("Failed to start GENSEC for DCERPC server: %s\n", nt_errstr(status)));
-               return False;
+               return false;
        }
 
        server_credentials 
                = cli_credentials_init(call);
        if (!server_credentials) {
                DEBUG(1, ("Failed to init server credentials\n"));
-               return False;
+               return false;
        }
        
-       cli_credentials_set_conf(server_credentials);
+       cli_credentials_set_conf(server_credentials, global_loadparm);
        status = cli_credentials_set_machine_account(server_credentials);
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(10, ("Failed to obtain server credentials, perhaps a standalone server?: %s\n", nt_errstr(status)));
@@ -88,10 +89,10 @@ BOOL dcesrv_auth_bind(struct dcesrv_call_state *call)
                          (int)auth->auth_info->auth_type,
                          (int)auth->auth_info->auth_level,
                          nt_errstr(status)));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 /*
@@ -137,7 +138,7 @@ NTSTATUS dcesrv_auth_bind_ack(struct dcesrv_call_state *call, struct ncacn_packe
 /*
   process the final stage of a auth request
 */
-BOOL dcesrv_auth_auth3(struct dcesrv_call_state *call)
+bool dcesrv_auth_auth3(struct dcesrv_call_state *call)
 {
        struct ncacn_packet *pkt = &call->pkt;
        struct dcesrv_connection *dce_conn = call->conn;
@@ -147,7 +148,7 @@ BOOL dcesrv_auth_auth3(struct dcesrv_call_state *call)
        if (!dce_conn->auth_state.auth_info ||
            !dce_conn->auth_state.gensec_security ||
            pkt->u.auth3.auth_info.length == 0) {
-               return False;
+               return false;
        }
 
        status = ndr_pull_struct_blob(&pkt->u.auth3.auth_info,
@@ -155,7 +156,7 @@ BOOL dcesrv_auth_auth3(struct dcesrv_call_state *call)
                                      dce_conn->auth_state.auth_info,
                                      (ndr_pull_flags_fn_t)ndr_pull_dcerpc_auth);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
        /* Pass the extra data we got from the client down to gensec for processing */
@@ -168,26 +169,26 @@ BOOL dcesrv_auth_auth3(struct dcesrv_call_state *call)
                                             &dce_conn->auth_state.session_info);
                if (!NT_STATUS_IS_OK(status)) {
                        DEBUG(1, ("Failed to establish session_info: %s\n", nt_errstr(status)));
-                       return False;
+                       return false;
                }
                /* Now that we are authenticated, go back to the generic session key... */
                dce_conn->auth_state.session_key = dcesrv_generic_session_key;
-               return True;
+               return true;
        } else {
                DEBUG(4, ("dcesrv_auth_auth3: failed to authenticate: %s\n", 
                          nt_errstr(status)));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 /*
   parse any auth information from a dcerpc alter request
-  return False if we can't handle the auth request for some 
+  return false if we can't handle the auth request for some 
   reason (in which case we send a bind_nak (is this true for here?))
 */
-BOOL dcesrv_auth_alter(struct dcesrv_call_state *call)
+bool dcesrv_auth_alter(struct dcesrv_call_state *call)
 {
        struct ncacn_packet *pkt = &call->pkt;
        struct dcesrv_connection *dce_conn = call->conn;
@@ -195,17 +196,17 @@ BOOL dcesrv_auth_alter(struct dcesrv_call_state *call)
 
        /* on a pure interface change there is no auth blob */
        if (pkt->u.alter.auth_info.length == 0) {
-               return True;
+               return true;
        }
 
        /* We can't work without an existing gensec state */
        if (!dce_conn->auth_state.gensec_security) {
-               return False;
+               return false;
        }
 
        dce_conn->auth_state.auth_info = talloc(dce_conn, struct dcerpc_auth);
        if (!dce_conn->auth_state.auth_info) {
-               return False;
+               return false;
        }
 
        status = ndr_pull_struct_blob(&pkt->u.alter.auth_info,
@@ -213,10 +214,10 @@ BOOL dcesrv_auth_alter(struct dcesrv_call_state *call)
                                      dce_conn->auth_state.auth_info,
                                      (ndr_pull_flags_fn_t)ndr_pull_dcerpc_auth);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 /*
@@ -295,7 +296,7 @@ static NTSTATUS dcesrv_check_connect_verifier(DATA_BLOB *blob)
 /*
   check credentials on a request
 */
-BOOL dcesrv_auth_request(struct dcesrv_call_state *call, DATA_BLOB *full_packet)
+bool dcesrv_auth_request(struct dcesrv_call_state *call, DATA_BLOB *full_packet)
 {
        struct ncacn_packet *pkt = &call->pkt;
        struct dcesrv_connection *dce_conn = call->conn;
@@ -306,14 +307,14 @@ BOOL dcesrv_auth_request(struct dcesrv_call_state *call, DATA_BLOB *full_packet)
 
        if (!dce_conn->auth_state.auth_info ||
            !dce_conn->auth_state.gensec_security) {
-               return True;
+               return true;
        }
 
        auth_blob.length = 8 + pkt->auth_length;
 
        /* check for a valid length */
        if (pkt->u.request.stub_and_verifier.length < auth_blob.length) {
-               return False;
+               return false;
        }
 
        auth_blob.data = 
@@ -324,7 +325,7 @@ BOOL dcesrv_auth_request(struct dcesrv_call_state *call, DATA_BLOB *full_packet)
        /* pull the auth structure */
        ndr = ndr_pull_init_blob(&auth_blob, call);
        if (!ndr) {
-               return False;
+               return false;
        }
 
        if (!(pkt->drep[0] & DCERPC_DREP_LE)) {
@@ -334,7 +335,7 @@ BOOL dcesrv_auth_request(struct dcesrv_call_state *call, DATA_BLOB *full_packet)
        status = ndr_pull_dcerpc_auth(ndr, NDR_SCALARS|NDR_BUFFERS, &auth);
        if (!NT_STATUS_IS_OK(status)) {
                talloc_free(ndr);
-               return False;
+               return false;
        }
 
        /* check signature or unseal the packet */
@@ -374,7 +375,7 @@ BOOL dcesrv_auth_request(struct dcesrv_call_state *call, DATA_BLOB *full_packet)
        /* remove the indicated amount of padding */
        if (pkt->u.request.stub_and_verifier.length < auth.auth_pad_length) {
                talloc_free(ndr);
-               return False;
+               return false;
        }
        pkt->u.request.stub_and_verifier.length -= auth.auth_pad_length;
        talloc_free(ndr);
@@ -386,7 +387,7 @@ BOOL dcesrv_auth_request(struct dcesrv_call_state *call, DATA_BLOB *full_packet)
 /* 
    push a signed or sealed dcerpc request packet into a blob
 */
-BOOL dcesrv_auth_response(struct dcesrv_call_state *call,
+bool dcesrv_auth_response(struct dcesrv_call_state *call,
                          DATA_BLOB *blob, struct ncacn_packet *pkt)
 {
        struct dcesrv_connection *dce_conn = call->conn;
@@ -403,7 +404,7 @@ BOOL dcesrv_auth_response(struct dcesrv_call_state *call,
 
        ndr = ndr_push_init_ctx(call);
        if (!ndr) {
-               return False;
+               return false;
        }
 
        if (!(pkt->drep[0] & DCERPC_DREP_LE)) {
@@ -412,7 +413,7 @@ BOOL dcesrv_auth_response(struct dcesrv_call_state *call,
 
        status = ndr_push_ncacn_packet(ndr, NDR_SCALARS|NDR_BUFFERS, pkt);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
        /* pad to 16 byte multiple, match win2k3 */
@@ -425,7 +426,7 @@ BOOL dcesrv_auth_response(struct dcesrv_call_state *call,
                status = dcesrv_connect_verifier(call,
                                                 &dce_conn->auth_state.auth_info->credentials);
                if (!NT_STATUS_IS_OK(status)) {
-                       return False;
+                       return false;
                }
        } else {
 
@@ -443,7 +444,7 @@ BOOL dcesrv_auth_response(struct dcesrv_call_state *call,
        status = ndr_push_dcerpc_auth(ndr, NDR_SCALARS|NDR_BUFFERS, 
                                      dce_conn->auth_state.auth_info);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
        /* extract the whole packet as a blob */
@@ -518,8 +519,8 @@ BOOL dcesrv_auth_response(struct dcesrv_call_state *call,
        data_blob_free(&dce_conn->auth_state.auth_info->credentials);
 
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }       
 
-       return True;
+       return true;
 }
index 0c22e856f24eebd56bcd57f8eb61746378c25e07..d8b361ca2793175468fa76768a7bd1e2744c3c43 100644 (file)
@@ -589,7 +589,7 @@ static WERROR dcesrv_drsuapi_DsGetDomainControllerInfo_1(struct drsuapi_bind_sta
                                                return WERR_GENERAL_FAILURE;
                                        }
                                        if (res_domain->count == 1) {
-                                               ctr1->array[i].is_pdc = True;
+                                               ctr1->array[i].is_pdc = true;
                                        }
                                }
                        }
@@ -603,7 +603,7 @@ static WERROR dcesrv_drsuapi_DsGetDomainControllerInfo_1(struct drsuapi_bind_sta
                        ctr1->array[i].server_dn = ldb_dn_get_linearized(res->msgs[i]->dn);
 
 
-                       ctr1->array[i].is_enabled = True;
+                       ctr1->array[i].is_enabled = true;
 
                }
                break;
@@ -681,7 +681,7 @@ static WERROR dcesrv_drsuapi_DsGetDomainControllerInfo_1(struct drsuapi_bind_sta
                                                                 LDB_SCOPE_BASE, attrs_none, "fSMORoleOwner=%s",
                                                                 ldb_dn_get_linearized(ntds_dn));
                                        if (ret == LDB_SUCCESS && res_domain->count == 1) {
-                                               ctr2->array[i].is_pdc = True;
+                                               ctr2->array[i].is_pdc = true;
                                        }
                                        if ((ret != LDB_SUCCESS) && (ret != LDB_ERR_NO_SUCH_OBJECT)) {
                                                DEBUG(5, ("warning: searching for domain DN %s failed: %s\n", 
@@ -700,7 +700,7 @@ static WERROR dcesrv_drsuapi_DsGetDomainControllerInfo_1(struct drsuapi_bind_sta
                        ctr2->array[i].server_guid 
                                = samdb_result_guid(res->msgs[i], "objectGUID");
 
-                       ctr2->array[i].is_enabled = True;
+                       ctr2->array[i].is_enabled = true;
 
                }
                break;
index 531cfc49e57563aa05f989b75e9d23b7571837ac..25d6f8c8f71128774bf9a3965f96907925b4c6e1 100644 (file)
@@ -4,7 +4,7 @@
    endpoint server for the lsarpc pipe
 
    Copyright (C) Andrew Tridgell 2004
-   Copyright (C) Andrew Bartlett <abartlet@samba.org> 2004-2005
+   Copyright (C) Andrew Bartlett <abartlet@samba.org> 2004-2007
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#include "includes.h"
-#include "rpc_server/dcerpc_server.h"
-#include "rpc_server/common/common.h"
-#include "auth/auth.h"
-#include "dsdb/samdb/samdb.h"
-#include "libcli/ldap/ldap.h"
-#include "lib/ldb/include/ldb_errors.h"
-#include "libcli/security/security.h"
-#include "libcli/auth/libcli_auth.h"
-#include "param/secrets.h"
-#include "db_wrap.h"
-#include "librpc/gen_ndr/ndr_dssetup.h"
+#include "rpc_server/lsa/lsa.h"
 
 /*
   this type allows us to distinguish handle types
 */
-enum lsa_handle {
-       LSA_HANDLE_POLICY,
-       LSA_HANDLE_ACCOUNT,
-       LSA_HANDLE_SECRET,
-       LSA_HANDLE_TRUSTED_DOMAIN
-};
-
-/*
-  state associated with a lsa_OpenPolicy() operation
-*/
-struct lsa_policy_state {
-       struct dcesrv_handle *handle;
-       struct ldb_context *sam_ldb;
-       struct sidmap_context *sidmap;
-       uint32_t access_mask;
-       struct ldb_dn *domain_dn;
-       struct ldb_dn *forest_dn;
-       struct ldb_dn *builtin_dn;
-       struct ldb_dn *system_dn;
-       const char *domain_name;
-       const char *domain_dns;
-       const char *forest_dns;
-       struct dom_sid *domain_sid;
-       struct GUID domain_guid;
-       struct dom_sid *builtin_sid;
-       int mixed_domain;
-};
-
 
 /*
   state associated with a lsa_OpenAccount() operation
@@ -83,7 +44,7 @@ struct lsa_secret_state {
        uint32_t access_mask;
        struct ldb_dn *secret_dn;
        struct ldb_context *sam_ldb;
-       BOOL global;
+       bool global;
 };
 
 /*
@@ -268,162 +229,6 @@ static NTSTATUS dcesrv_lsa_ChangePassword(struct dcesrv_call_state *dce_call, TA
        DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
 }
 
-static NTSTATUS dcesrv_lsa_get_policy_state(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
-                                    struct lsa_policy_state **_state)
-{
-       struct lsa_policy_state *state;
-       struct ldb_dn *partitions_basedn;
-       struct ldb_result *dom_res;
-       const char *dom_attrs[] = {
-               "objectSid", 
-               "objectGUID", 
-               "nTMixedDomain",
-               "fSMORoleOwner",
-               NULL
-       };
-       struct ldb_result *ref_res;
-       struct ldb_result *forest_ref_res;
-       const char *ref_attrs[] = {
-               "nETBIOSName",
-               "dnsRoot",
-               NULL
-       };
-       int ret;
-
-       state = talloc(mem_ctx, struct lsa_policy_state);
-       if (!state) {
-               return NT_STATUS_NO_MEMORY;
-       }
-
-       /* make sure the sam database is accessible */
-       state->sam_ldb = samdb_connect(state, dce_call->conn->auth_state.session_info); 
-       if (state->sam_ldb == NULL) {
-               return NT_STATUS_INVALID_SYSTEM_SERVICE;
-       }
-
-       partitions_basedn = samdb_partitions_dn(state->sam_ldb, mem_ctx);
-
-       state->sidmap = sidmap_open(state);
-       if (state->sidmap == NULL) {
-               return NT_STATUS_INVALID_SYSTEM_SERVICE;
-       }
-
-       /* work out the domain_dn - useful for so many calls its worth
-          fetching here */
-       state->domain_dn = samdb_base_dn(state->sam_ldb);
-       if (!state->domain_dn) {
-               return NT_STATUS_NO_MEMORY;             
-       }
-
-       /* work out the forest root_dn - useful for so many calls its worth
-          fetching here */
-       state->forest_dn = samdb_root_dn(state->sam_ldb);
-       if (!state->forest_dn) {
-               return NT_STATUS_NO_MEMORY;             
-       }
-
-       ret = ldb_search(state->sam_ldb, state->domain_dn, LDB_SCOPE_BASE, NULL, dom_attrs, &dom_res);
-       
-       if (ret != LDB_SUCCESS) {
-               return NT_STATUS_INVALID_SYSTEM_SERVICE;
-       }
-       talloc_steal(mem_ctx, dom_res);
-       if (dom_res->count != 1) {
-               return NT_STATUS_NO_SUCH_DOMAIN;                
-       }
-
-       state->domain_sid = samdb_result_dom_sid(state, dom_res->msgs[0], "objectSid");
-       if (!state->domain_sid) {
-               return NT_STATUS_NO_SUCH_DOMAIN;                
-       }
-
-       state->domain_guid = samdb_result_guid(dom_res->msgs[0], "objectGUID");
-       if (!state->domain_sid) {
-               return NT_STATUS_NO_SUCH_DOMAIN;                
-       }
-
-       state->mixed_domain = ldb_msg_find_attr_as_uint(dom_res->msgs[0], "nTMixedDomain", 0);
-       
-       talloc_free(dom_res);
-
-       ret = ldb_search_exp_fmt(state->sam_ldb, state, &ref_res,
-                                partitions_basedn, LDB_SCOPE_SUBTREE, ref_attrs,
-                                "(&(objectclass=crossRef)(ncName=%s))",
-                                ldb_dn_get_linearized(state->domain_dn));
-       
-       if (ret != LDB_SUCCESS) {
-               talloc_free(ref_res);
-               return NT_STATUS_INVALID_SYSTEM_SERVICE;
-       }
-       if (ref_res->count != 1) {
-               talloc_free(ref_res);
-               return NT_STATUS_NO_SUCH_DOMAIN;                
-       }
-
-       state->domain_name = ldb_msg_find_attr_as_string(ref_res->msgs[0], "nETBIOSName", NULL);
-       if (!state->domain_name) {
-               talloc_free(ref_res);
-               return NT_STATUS_NO_SUCH_DOMAIN;                
-       }
-       talloc_steal(state, state->domain_name);
-
-       state->domain_dns = ldb_msg_find_attr_as_string(ref_res->msgs[0], "dnsRoot", NULL);
-       if (!state->domain_dns) {
-               talloc_free(ref_res);
-               return NT_STATUS_NO_SUCH_DOMAIN;                
-       }
-       talloc_steal(state, state->domain_dns);
-
-       talloc_free(ref_res);
-
-       ret = ldb_search_exp_fmt(state->sam_ldb, state, &forest_ref_res,
-                                partitions_basedn, LDB_SCOPE_SUBTREE, ref_attrs,
-                                "(&(objectclass=crossRef)(ncName=%s))",
-                                ldb_dn_get_linearized(state->forest_dn));
-       
-       if (ret != LDB_SUCCESS) {
-               talloc_free(forest_ref_res);
-               return NT_STATUS_INVALID_SYSTEM_SERVICE;
-       }
-       if (forest_ref_res->count != 1) {
-               talloc_free(forest_ref_res);
-               return NT_STATUS_NO_SUCH_DOMAIN;                
-       }
-
-       state->forest_dns = ldb_msg_find_attr_as_string(forest_ref_res->msgs[0], "dnsRoot", NULL);
-       if (!state->forest_dns) {
-               talloc_free(forest_ref_res);
-               return NT_STATUS_NO_SUCH_DOMAIN;                
-       }
-       talloc_steal(state, state->forest_dns);
-
-       talloc_free(forest_ref_res);
-
-       /* work out the builtin_dn - useful for so many calls its worth
-          fetching here */
-       state->builtin_dn = samdb_search_dn(state->sam_ldb, state, state->domain_dn, "(objectClass=builtinDomain)");
-       if (!state->builtin_dn) {
-               return NT_STATUS_NO_SUCH_DOMAIN;                
-       }
-
-       /* work out the system_dn - useful for so many calls its worth
-          fetching here */
-       state->system_dn = samdb_search_dn(state->sam_ldb, state,
-                                          state->domain_dn, "(&(objectClass=container)(cn=System))");
-       if (!state->system_dn) {
-               return NT_STATUS_NO_SUCH_DOMAIN;                
-       }
-
-       state->builtin_sid = dom_sid_parse_talloc(state, SID_BUILTIN);
-       if (!state->builtin_sid) {
-               return NT_STATUS_NO_SUCH_DOMAIN;                
-       }
-
-       *_state = state;
-
-       return NT_STATUS_OK;
-}
-
 /* 
   dssetup_DsRoleGetPrimaryDomainInformation 
 
@@ -457,7 +262,7 @@ static WERROR dcesrv_dssetup_DsRoleGetPrimaryDomainInformation(struct dcesrv_cal
 
                ZERO_STRUCT(domain_guid);
 
-               switch (lp_server_role()) {
+               switch (lp_server_role(global_loadparm)) {
                case ROLE_STANDALONE:
                        role            = DS_ROLE_STANDALONE_SERVER;
                        break;
@@ -473,13 +278,13 @@ static WERROR dcesrv_dssetup_DsRoleGetPrimaryDomainInformation(struct dcesrv_cal
                        break;
                }
 
-               switch (lp_server_role()) {
+               switch (lp_server_role(global_loadparm)) {
                case ROLE_STANDALONE:
-                       domain          = talloc_strdup(mem_ctx, lp_workgroup());
+                       domain          = talloc_strdup(mem_ctx, lp_workgroup(global_loadparm));
                        W_ERROR_HAVE_NO_MEMORY(domain);
                        break;
                case ROLE_DOMAIN_MEMBER:
-                       domain          = talloc_strdup(mem_ctx, lp_workgroup());
+                       domain          = talloc_strdup(mem_ctx, lp_workgroup(global_loadparm));
                        W_ERROR_HAVE_NO_MEMORY(domain);
                        /* TODO: what is with dns_domain and forest and guid? */
                        break;
@@ -531,60 +336,6 @@ static WERROR dcesrv_dssetup_DsRoleGetPrimaryDomainInformation(struct dcesrv_cal
        return WERR_INVALID_PARAM;
 }
 
-/* 
-  lsa_OpenPolicy2
-*/
-static NTSTATUS dcesrv_lsa_OpenPolicy2(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
-                              struct lsa_OpenPolicy2 *r)
-{
-       NTSTATUS status;
-       struct lsa_policy_state *state;
-       struct dcesrv_handle *handle;
-
-       ZERO_STRUCTP(r->out.handle);
-
-       status = dcesrv_lsa_get_policy_state(dce_call, mem_ctx, &state);
-       if (!NT_STATUS_IS_OK(status)) {
-               return status;
-       }
-
-       handle = dcesrv_handle_new(dce_call->context, LSA_HANDLE_POLICY);
-       if (!handle) {
-               return NT_STATUS_NO_MEMORY;
-       }
-
-       handle->data = talloc_steal(handle, state);
-
-       state->access_mask = r->in.access_mask;
-       state->handle = handle;
-       *r->out.handle = handle->wire_handle;
-
-       /* note that we have completely ignored the attr element of
-          the OpenPolicy. As far as I can tell, this is what w2k3
-          does */
-
-       return NT_STATUS_OK;
-}
-
-/* 
-  lsa_OpenPolicy
-  a wrapper around lsa_OpenPolicy2
-*/
-static NTSTATUS dcesrv_lsa_OpenPolicy(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
-                               struct lsa_OpenPolicy *r)
-{
-       struct lsa_OpenPolicy2 r2;
-
-       r2.in.system_name = NULL;
-       r2.in.attr = r->in.attr;
-       r2.in.access_mask = r->in.access_mask;
-       r2.out.handle = r->out.handle;
-
-       return dcesrv_lsa_OpenPolicy2(dce_call, mem_ctx, &r2);
-}
-
-
-
 
 /*
   fill in the AccountDomain info
@@ -642,6 +393,10 @@ static NTSTATUS dcesrv_lsa_QueryInfoPolicy2(struct dcesrv_call_state *dce_call,
 
        case LSA_POLICY_INFO_DNS:
                return dcesrv_lsa_info_DNS(state, mem_ctx, &r->out.info->dns);
+       case LSA_POLICY_INFO_DB:
+       case LSA_POLICY_INFO_AUDIT_FULL_SET:
+       case LSA_POLICY_INFO_AUDIT_FULL_QUERY:
+               return NT_STATUS_INVALID_PARAMETER;
        }
 
        return NT_STATUS_INVALID_INFO_CLASS;
@@ -1472,311 +1227,6 @@ static NTSTATUS dcesrv_lsa_EnumTrustedDomainsEx(struct dcesrv_call_state *dce_ca
 }
 
 
-/*
-  return the authority name and authority sid, given a sid
-*/
-static NTSTATUS dcesrv_lsa_authority_name(struct lsa_policy_state *state,
-                                  TALLOC_CTX *mem_ctx, struct dom_sid *sid,
-                                  const char **authority_name,
-                                  struct dom_sid **authority_sid)
-{
-       if (dom_sid_in_domain(state->domain_sid, sid)) {
-               *authority_name = state->domain_name;
-               *authority_sid = state->domain_sid;
-               return NT_STATUS_OK;
-       }
-
-       if (dom_sid_in_domain(state->builtin_sid, sid)) {
-               *authority_name = "BUILTIN";
-               *authority_sid = state->builtin_sid;
-               return NT_STATUS_OK;
-       }
-
-       *authority_sid = dom_sid_dup(mem_ctx, sid);
-       if (*authority_sid == NULL) {
-               return NT_STATUS_NO_MEMORY;
-       }
-       (*authority_sid)->num_auths = 0;
-       *authority_name = dom_sid_string(mem_ctx, *authority_sid);
-       if (*authority_name == NULL) {
-               return NT_STATUS_NO_MEMORY;
-       }
-
-       return NT_STATUS_OK;
-}
-
-/*
-  add to the lsa_RefDomainList for LookupSids and LookupNames
-*/
-static NTSTATUS dcesrv_lsa_authority_list(struct lsa_policy_state *state, TALLOC_CTX *mem_ctx, 
-                                  struct dom_sid *sid, 
-                                  struct lsa_RefDomainList *domains,
-                                  uint32_t *sid_index)
-{
-       NTSTATUS status;
-       const char *authority_name;
-       struct dom_sid *authority_sid;
-       int i;
-
-       /* work out the authority name */
-       status = dcesrv_lsa_authority_name(state, mem_ctx, sid, 
-                                   &authority_name, &authority_sid);
-       if (!NT_STATUS_IS_OK(status)) {
-               return status;
-       }
-       
-       /* see if we've already done this authority name */
-       for (i=0;i<domains->count;i++) {
-               if (strcmp(authority_name, domains->domains[i].name.string) == 0) {
-                       *sid_index = i;
-                       return NT_STATUS_OK;
-               }
-       }
-
-       domains->domains = talloc_realloc(domains, 
-                                         domains->domains,
-                                         struct lsa_DomainInfo,
-                                         domains->count+1);
-       if (domains->domains == NULL) {
-               return NT_STATUS_NO_MEMORY;
-       }
-       domains->domains[i].name.string = authority_name;
-       domains->domains[i].sid         = authority_sid;
-       domains->count++;
-       domains->max_size = LSA_REF_DOMAIN_LIST_MULTIPLIER * domains->count;
-       *sid_index = i;
-       
-       return NT_STATUS_OK;
-}
-
-/*
-  lookup a name for 1 SID
-*/
-static NTSTATUS dcesrv_lsa_lookup_sid(struct lsa_policy_state *state, TALLOC_CTX *mem_ctx,
-                              struct dom_sid *sid, const char *sid_str,
-                              const char **name, uint32_t *atype)
-{
-       int ret;
-       struct ldb_message **res;
-       const char * const attrs[] = { "sAMAccountName", "sAMAccountType", "name", NULL};
-       NTSTATUS status;
-
-       ret = gendb_search(state->sam_ldb, mem_ctx, NULL, &res, attrs, 
-                          "objectSid=%s", ldap_encode_ndr_dom_sid(mem_ctx, sid));
-       if (ret == 1) {
-               *name = ldb_msg_find_attr_as_string(res[0], "sAMAccountName", NULL);
-               if (!*name) {
-                       *name = ldb_msg_find_attr_as_string(res[0], "name", NULL);
-                       if (!*name) {
-                               *name = talloc_strdup(mem_ctx, sid_str);
-                               NT_STATUS_HAVE_NO_MEMORY(*name);
-                       }
-               }
-
-               *atype = samdb_result_uint(res[0], "sAMAccountType", 0);
-
-               return NT_STATUS_OK;
-       }
-
-       status = sidmap_allocated_sid_lookup(state->sidmap, mem_ctx, sid, name, atype);
-
-       return status;
-}
-
-
-/*
-  lsa_LookupSids2
-*/
-static NTSTATUS dcesrv_lsa_LookupSids2(struct dcesrv_call_state *dce_call,
-                               TALLOC_CTX *mem_ctx,
-                               struct lsa_LookupSids2 *r)
-{
-       struct lsa_policy_state *state;
-       int i;
-       NTSTATUS status = NT_STATUS_OK;
-
-       r->out.domains = NULL;
-
-       status = dcesrv_lsa_get_policy_state(dce_call, mem_ctx, &state);
-       if (!NT_STATUS_IS_OK(status)) {
-               return status;
-       }
-
-       r->out.domains = talloc_zero(mem_ctx,  struct lsa_RefDomainList);
-       if (r->out.domains == NULL) {
-               return NT_STATUS_NO_MEMORY;
-       }
-
-       r->out.names = talloc_zero(mem_ctx,  struct lsa_TransNameArray2);
-       if (r->out.names == NULL) {
-               return NT_STATUS_NO_MEMORY;
-       }
-
-       *r->out.count = 0;
-
-       r->out.names->names = talloc_array(r->out.names, struct lsa_TranslatedName2, 
-                                            r->in.sids->num_sids);
-       if (r->out.names->names == NULL) {
-               return NT_STATUS_NO_MEMORY;
-       }
-
-       for (i=0;i<r->in.sids->num_sids;i++) {
-               struct dom_sid *sid = r->in.sids->sids[i].sid;
-               char *sid_str = dom_sid_string(mem_ctx, sid);
-               const char *name;
-               uint32_t atype, rtype, sid_index;
-               NTSTATUS status2;
-
-               r->out.names->count++;
-               (*r->out.count)++;
-
-               r->out.names->names[i].sid_type    = SID_NAME_UNKNOWN;
-               r->out.names->names[i].name.string = sid_str;
-               r->out.names->names[i].sid_index   = 0xFFFFFFFF;
-               r->out.names->names[i].unknown     = 0;
-
-               if (sid_str == NULL) {
-                       r->out.names->names[i].name.string = "(SIDERROR)";
-                       status = STATUS_SOME_UNMAPPED;
-                       continue;
-               }
-
-               /* work out the authority name */
-               status2 = dcesrv_lsa_authority_list(state, mem_ctx, sid, r->out.domains, &sid_index);
-               if (!NT_STATUS_IS_OK(status2)) {
-                       return status2;
-               }
-
-               status2 = dcesrv_lsa_lookup_sid(state, mem_ctx, sid, sid_str, 
-                                        &name, &atype);
-               if (!NT_STATUS_IS_OK(status2)) {
-                       status = STATUS_SOME_UNMAPPED;
-                       continue;
-               }
-
-               rtype = samdb_atype_map(atype);
-               if (rtype == SID_NAME_UNKNOWN) {
-                       status = STATUS_SOME_UNMAPPED;
-                       continue;
-               }
-
-               r->out.names->names[i].sid_type    = rtype;
-               r->out.names->names[i].name.string = name;
-               r->out.names->names[i].sid_index   = sid_index;
-               r->out.names->names[i].unknown     = 0;
-       }
-       
-       return status;
-}
-
-
-/*
-  lsa_LookupSids3
-
-  Identical to LookupSids2, but doesn't take a policy handle
-  
-*/
-static NTSTATUS dcesrv_lsa_LookupSids3(struct dcesrv_call_state *dce_call,
-                               TALLOC_CTX *mem_ctx,
-                               struct lsa_LookupSids3 *r)
-{
-       struct lsa_LookupSids2 r2;
-       struct lsa_OpenPolicy2 pol;
-       NTSTATUS status;
-       struct dcesrv_handle *h;
-
-       /* No policy handle on the wire, so make one up here */
-       r2.in.handle = talloc(mem_ctx, struct policy_handle);
-       if (!r2.in.handle) {
-               return NT_STATUS_NO_MEMORY;
-       }
-
-       pol.out.handle = r2.in.handle;
-       pol.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
-       pol.in.attr = NULL;
-       pol.in.system_name = NULL;
-       status = dcesrv_lsa_OpenPolicy2(dce_call, mem_ctx, &pol);
-       if (!NT_STATUS_IS_OK(status)) {
-               return status;
-       }
-
-       /* ensure this handle goes away at the end of this call */
-       DCESRV_PULL_HANDLE(h, r2.in.handle, LSA_HANDLE_POLICY);
-       talloc_steal(mem_ctx, h);
-
-       r2.in.sids     = r->in.sids;
-       r2.in.names    = r->in.names;
-       r2.in.level    = r->in.level;
-       r2.in.count    = r->in.count;
-       r2.in.unknown1 = r->in.unknown1;
-       r2.in.unknown2 = r->in.unknown2;
-       r2.out.count   = r->out.count;
-       r2.out.names   = r->out.names;
-
-       status = dcesrv_lsa_LookupSids2(dce_call, mem_ctx, &r2);
-       if (dce_call->fault_code != 0) {
-               return status;
-       }
-
-       r->out.domains = r2.out.domains;
-       r->out.names   = r2.out.names;
-       r->out.count   = r2.out.count;
-
-       return status;
-}
-
-
-/* 
-  lsa_LookupSids 
-*/
-static NTSTATUS dcesrv_lsa_LookupSids(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
-                              struct lsa_LookupSids *r)
-{
-       struct lsa_LookupSids2 r2;
-       NTSTATUS status;
-       int i;
-
-       r2.in.handle   = r->in.handle;
-       r2.in.sids     = r->in.sids;
-       r2.in.names    = NULL;
-       r2.in.level    = r->in.level;
-       r2.in.count    = r->in.count;
-       r2.in.unknown1 = 0;
-       r2.in.unknown2 = 0;
-       r2.out.count   = r->out.count;
-       r2.out.names   = NULL;
-
-       status = dcesrv_lsa_LookupSids2(dce_call, mem_ctx, &r2);
-       if (dce_call->fault_code != 0) {
-               return status;
-       }
-
-       r->out.domains = r2.out.domains;
-       if (!r2.out.names) {
-               r->out.names = NULL;
-               return status;
-       }
-
-       r->out.names = talloc(mem_ctx, struct lsa_TransNameArray);
-       if (r->out.names == NULL) {
-               return NT_STATUS_NO_MEMORY;
-       }
-       r->out.names->count = r2.out.names->count;
-       r->out.names->names = talloc_array(r->out.names, struct lsa_TranslatedName, 
-                                            r->out.names->count);
-       if (r->out.names->names == NULL) {
-               return NT_STATUS_NO_MEMORY;
-       }
-       for (i=0;i<r->out.names->count;i++) {
-               r->out.names->names[i].sid_type    = r2.out.names->names[i].sid_type;
-               r->out.names->names[i].name.string = r2.out.names->names[i].name.string;
-               r->out.names->names[i].sid_index   = r2.out.names->names[i].sid_index;
-       }
-
-       return status;
-}
-
-
 /* 
   lsa_OpenAccount 
 */
@@ -2224,7 +1674,7 @@ static NTSTATUS dcesrv_lsa_CreateSecret(struct dcesrv_call_state *dce_call, TALL
                const char *name2;
                name = &r->in.name.string[2];
                secret_state->sam_ldb = talloc_reference(secret_state, policy_state->sam_ldb);
-               secret_state->global = True;
+               secret_state->global = true;
 
                if (strlen(name) < 1) {
                        return NT_STATUS_INVALID_PARAMETER;
@@ -2254,7 +1704,7 @@ static NTSTATUS dcesrv_lsa_CreateSecret(struct dcesrv_call_state *dce_call, TALL
                samdb_msg_add_string(secret_state->sam_ldb, mem_ctx, msg, "cn", name2);
        
        } else {
-               secret_state->global = False;
+               secret_state->global = false;
 
                name = r->in.name.string;
                if (strlen(name) < 1) {
@@ -2301,7 +1751,7 @@ static NTSTATUS dcesrv_lsa_CreateSecret(struct dcesrv_call_state *dce_call, TALL
                DEBUG(0,("Failed to create secret record %s: %s\n",
                         ldb_dn_get_linearized(msg->dn), 
                         ldb_errstring(secret_state->sam_ldb)));
-               return NT_STATUS_INTERNAL_DB_CORRUPTION;
+               return NT_STATUS_ACCESS_DENIED;
        }
 
        handle = dcesrv_handle_new(dce_call->context, LSA_HANDLE_SECRET);
@@ -2357,7 +1807,7 @@ static NTSTATUS dcesrv_lsa_OpenSecret(struct dcesrv_call_state *dce_call, TALLOC
        if (strncmp("G$", r->in.name.string, 2) == 0) {
                name = &r->in.name.string[2];
                secret_state->sam_ldb = talloc_reference(secret_state, policy_state->sam_ldb);
-               secret_state->global = True;
+               secret_state->global = true;
 
                if (strlen(name) < 1) {
                        return NT_STATUS_INVALID_PARAMETER;
@@ -2381,7 +1831,7 @@ static NTSTATUS dcesrv_lsa_OpenSecret(struct dcesrv_call_state *dce_call, TALLOC
        } else {
                secret_state->sam_ldb = talloc_reference(secret_state, secrets_db_connect(mem_ctx));
 
-               secret_state->global = False;
+               secret_state->global = false;
                name = r->in.name.string;
                if (strlen(name) < 1) {
                        return NT_STATUS_INVALID_PARAMETER;
@@ -2398,8 +1848,8 @@ static NTSTATUS dcesrv_lsa_OpenSecret(struct dcesrv_call_state *dce_call, TALLOC
                }
                
                if (ret != 1) {
-                       DEBUG(0,("Found %d records matching DN %s\n", ret,
-                                ldb_dn_get_linearized(policy_state->system_dn)));
+                       DEBUG(0,("Found %d records matching CN=%s\n", 
+                                ret, ldb_binary_encode_string(mem_ctx, name)));
                        return NT_STATUS_INTERNAL_DB_CORRUPTION;
                }
        } 
@@ -3006,293 +2456,6 @@ static NTSTATUS dcesrv_lsa_TestCall(struct dcesrv_call_state *dce_call,
        DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
 }
 
-/*
-  lookup a SID for 1 name
-*/
-static NTSTATUS dcesrv_lsa_lookup_name(struct lsa_policy_state *state, TALLOC_CTX *mem_ctx,
-                               const char *name, struct dom_sid **sid, uint32_t *atype)
-{
-       int ret;
-       struct ldb_message **res;
-       const char * const attrs[] = { "objectSid", "sAMAccountType", NULL};
-       const char *p;
-
-       p = strchr_m(name, '\\');
-       if (p != NULL) {
-               /* TODO: properly parse the domain prefix here, and use it to 
-                  limit the search */
-               name = p + 1;
-       }
-
-       ret = gendb_search(state->sam_ldb, mem_ctx, NULL, &res, attrs, "sAMAccountName=%s", ldb_binary_encode_string(mem_ctx, name));
-       if (ret == 1) {
-               *sid = samdb_result_dom_sid(mem_ctx, res[0], "objectSid");
-               if (*sid == NULL) {
-                       return NT_STATUS_INVALID_SID;
-               }
-
-               *atype = samdb_result_uint(res[0], "sAMAccountType", 0);
-
-               return NT_STATUS_OK;
-       }
-
-       /* need to add a call into sidmap to check for a allocated sid */
-
-       return NT_STATUS_INVALID_SID;
-}
-
-
-/*
-  lsa_LookupNames3
-*/
-static NTSTATUS dcesrv_lsa_LookupNames3(struct dcesrv_call_state *dce_call,
-                                TALLOC_CTX *mem_ctx,
-                                struct lsa_LookupNames3 *r)
-{
-       struct lsa_policy_state *policy_state;
-       struct dcesrv_handle *policy_handle;
-       int i;
-       NTSTATUS status = NT_STATUS_OK;
-
-       DCESRV_PULL_HANDLE(policy_handle, r->in.handle, LSA_HANDLE_POLICY);
-
-       policy_state = policy_handle->data;
-
-       r->out.domains = NULL;
-
-       r->out.domains = talloc_zero(mem_ctx,  struct lsa_RefDomainList);
-       if (r->out.domains == NULL) {
-               return NT_STATUS_NO_MEMORY;
-       }
-
-       r->out.sids = talloc_zero(mem_ctx,  struct lsa_TransSidArray3);
-       if (r->out.sids == NULL) {
-               return NT_STATUS_NO_MEMORY;
-       }
-
-       *r->out.count = 0;
-
-       r->out.sids->sids = talloc_array(r->out.sids, struct lsa_TranslatedSid3, 
-                                          r->in.num_names);
-       if (r->out.sids->sids == NULL) {
-               return NT_STATUS_NO_MEMORY;
-       }
-
-       for (i=0;i<r->in.num_names;i++) {
-               const char *name = r->in.names[i].string;
-               struct dom_sid *sid;
-               uint32_t atype, rtype, sid_index;
-               NTSTATUS status2;
-
-               r->out.sids->count++;
-               (*r->out.count)++;
-
-               r->out.sids->sids[i].sid_type    = SID_NAME_UNKNOWN;
-               r->out.sids->sids[i].sid         = NULL;
-               r->out.sids->sids[i].sid_index   = 0xFFFFFFFF;
-               r->out.sids->sids[i].unknown     = 0;
-
-               status2 = dcesrv_lsa_lookup_name(policy_state, mem_ctx, name, &sid, &atype);
-               if (!NT_STATUS_IS_OK(status2) || sid->num_auths == 0) {
-                       status = STATUS_SOME_UNMAPPED;
-                       continue;
-               }
-
-               rtype = samdb_atype_map(atype);
-               if (rtype == SID_NAME_UNKNOWN) {
-                       status = STATUS_SOME_UNMAPPED;
-                       continue;
-               }
-
-               status2 = dcesrv_lsa_authority_list(policy_state, mem_ctx, sid, r->out.domains, &sid_index);
-               if (!NT_STATUS_IS_OK(status2)) {
-                       return status2;
-               }
-
-               r->out.sids->sids[i].sid_type    = rtype;
-               r->out.sids->sids[i].sid         = sid;
-               r->out.sids->sids[i].sid_index   = sid_index;
-               r->out.sids->sids[i].unknown     = 0;
-       }
-       
-       return status;
-}
-
-/* 
-  lsa_LookupNames4
-
-  Identical to LookupNames3, but doesn't take a policy handle
-  
-*/
-static NTSTATUS dcesrv_lsa_LookupNames4(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
-                                struct lsa_LookupNames4 *r)
-{
-       struct lsa_LookupNames3 r2;
-       struct lsa_OpenPolicy2 pol;
-       NTSTATUS status;
-       struct dcesrv_handle *h;
-
-       /* No policy handle on the wire, so make one up here */
-       r2.in.handle = talloc(mem_ctx, struct policy_handle);
-       if (!r2.in.handle) {
-               return NT_STATUS_NO_MEMORY;
-       }
-
-       pol.out.handle = r2.in.handle;
-       pol.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
-       pol.in.attr = NULL;
-       pol.in.system_name = NULL;
-       status = dcesrv_lsa_OpenPolicy2(dce_call, mem_ctx, &pol);
-       if (!NT_STATUS_IS_OK(status)) {
-               return status;
-       }
-
-       /* ensure this handle goes away at the end of this call */
-       DCESRV_PULL_HANDLE(h, r2.in.handle, LSA_HANDLE_POLICY);
-       talloc_steal(mem_ctx, h);
-
-       r2.in.num_names = r->in.num_names;
-       r2.in.names = r->in.names;
-       r2.in.sids = r->in.sids;
-       r2.in.count = r->in.count;
-       r2.in.unknown1 = r->in.unknown1;
-       r2.in.unknown2 = r->in.unknown2;
-       r2.out.domains = r->out.domains;
-       r2.out.sids = r->out.sids;
-       r2.out.count = r->out.count;
-       
-       status = dcesrv_lsa_LookupNames3(dce_call, mem_ctx, &r2);
-       if (dce_call->fault_code != 0) {
-               return status;
-       }
-       
-       r->out.domains = r2.out.domains;
-       r->out.sids = r2.out.sids;
-       r->out.count = r2.out.count;
-       return status;
-}
-
-/*
-  lsa_LookupNames2
-*/
-static NTSTATUS dcesrv_lsa_LookupNames2(struct dcesrv_call_state *dce_call,
-                                TALLOC_CTX *mem_ctx,
-                                struct lsa_LookupNames2 *r)
-{
-       struct lsa_policy_state *state;
-       struct dcesrv_handle *h;
-       int i;
-       NTSTATUS status = NT_STATUS_OK;
-
-       r->out.domains = NULL;
-
-       DCESRV_PULL_HANDLE(h, r->in.handle, LSA_HANDLE_POLICY);
-
-       state = h->data;
-
-       r->out.domains = talloc_zero(mem_ctx,  struct lsa_RefDomainList);
-       if (r->out.domains == NULL) {
-               return NT_STATUS_NO_MEMORY;
-       }
-
-       r->out.sids = talloc_zero(mem_ctx,  struct lsa_TransSidArray2);
-       if (r->out.sids == NULL) {
-               return NT_STATUS_NO_MEMORY;
-       }
-
-       *r->out.count = 0;
-
-       r->out.sids->sids = talloc_array(r->out.sids, struct lsa_TranslatedSid2, 
-                                          r->in.num_names);
-       if (r->out.sids->sids == NULL) {
-               return NT_STATUS_NO_MEMORY;
-       }
-
-       for (i=0;i<r->in.num_names;i++) {
-               const char *name = r->in.names[i].string;
-               struct dom_sid *sid;
-               uint32_t atype, rtype, sid_index;
-               NTSTATUS status2;
-
-               r->out.sids->count++;
-               (*r->out.count)++;
-
-               r->out.sids->sids[i].sid_type    = SID_NAME_UNKNOWN;
-               r->out.sids->sids[i].rid         = 0xFFFFFFFF;
-               r->out.sids->sids[i].sid_index   = 0xFFFFFFFF;
-               r->out.sids->sids[i].unknown     = 0;
-
-               status2 = dcesrv_lsa_lookup_name(state, mem_ctx, name, &sid, &atype);
-               if (!NT_STATUS_IS_OK(status2) || sid->num_auths == 0) {
-                       status = STATUS_SOME_UNMAPPED;
-                       continue;
-               }
-
-               rtype = samdb_atype_map(atype);
-               if (rtype == SID_NAME_UNKNOWN) {
-                       status = STATUS_SOME_UNMAPPED;
-                       continue;
-               }
-
-               status2 = dcesrv_lsa_authority_list(state, mem_ctx, sid, r->out.domains, &sid_index);
-               if (!NT_STATUS_IS_OK(status2)) {
-                       return status2;
-               }
-
-               r->out.sids->sids[i].sid_type    = rtype;
-               r->out.sids->sids[i].rid         = sid->sub_auths[sid->num_auths-1];
-               r->out.sids->sids[i].sid_index   = sid_index;
-               r->out.sids->sids[i].unknown     = 0;
-       }
-       
-       return status;
-}
-
-/* 
-  lsa_LookupNames 
-*/
-static NTSTATUS dcesrv_lsa_LookupNames(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
-                      struct lsa_LookupNames *r)
-{
-       struct lsa_LookupNames2 r2;
-       NTSTATUS status;
-       int i;
-
-       r2.in.handle    = r->in.handle;
-       r2.in.num_names = r->in.num_names;
-       r2.in.names     = r->in.names;
-       r2.in.sids      = NULL;
-       r2.in.level     = r->in.level;
-       r2.in.count     = r->in.count;
-       r2.in.unknown1  = 0;
-       r2.in.unknown2  = 0;
-       r2.out.count    = r->out.count;
-
-       status = dcesrv_lsa_LookupNames2(dce_call, mem_ctx, &r2);
-       if (dce_call->fault_code != 0) {
-               return status;
-       }
-
-       r->out.domains = r2.out.domains;
-       r->out.sids = talloc(mem_ctx, struct lsa_TransSidArray);
-       if (r->out.sids == NULL) {
-               return NT_STATUS_NO_MEMORY;
-       }
-       r->out.sids->count = r2.out.sids->count;
-       r->out.sids->sids = talloc_array(r->out.sids, struct lsa_TranslatedSid, 
-                                          r->out.sids->count);
-       if (r->out.sids->sids == NULL) {
-               return NT_STATUS_NO_MEMORY;
-       }
-       for (i=0;i<r->out.sids->count;i++) {
-               r->out.sids->sids[i].sid_type    = r2.out.sids->sids[i].sid_type;
-               r->out.sids->sids[i].rid         = r2.out.sids->sids[i].rid;
-               r->out.sids->sids[i].sid_index   = r2.out.sids->sids[i].sid_index;
-       }
-
-       return status;
-}
-
 /* 
   lsa_CREDRWRITE 
 */
diff --git a/source/rpc_server/lsa/lsa.h b/source/rpc_server/lsa/lsa.h
new file mode 100644 (file)
index 0000000..6ecda0f
--- /dev/null
@@ -0,0 +1,69 @@
+/* 
+   Unix SMB/CIFS implementation.
+
+   endpoint server for the lsarpc pipe
+
+   Copyright (C) Andrew Tridgell 2004
+   Copyright (C) Andrew Bartlett <abartlet@samba.org> 2004-2005
+   
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+   
+   This program 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 General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include "rpc_server/dcerpc_server.h"
+#include "rpc_server/common/common.h"
+#include "auth/auth.h"
+#include "dsdb/samdb/samdb.h"
+#include "libcli/ldap/ldap.h"
+#include "lib/ldb/include/ldb_errors.h"
+#include "libcli/security/security.h"
+#include "libcli/auth/libcli_auth.h"
+#include "param/secrets.h"
+#include "db_wrap.h"
+#include "librpc/gen_ndr/ndr_dssetup.h"
+#include "param/param.h"
+
+/*
+  state associated with a lsa_OpenPolicy() operation
+*/
+struct lsa_policy_state {
+       struct dcesrv_handle *handle;
+       struct ldb_context *sam_ldb;
+       struct sidmap_context *sidmap;
+       uint32_t access_mask;
+       struct ldb_dn *domain_dn;
+       struct ldb_dn *forest_dn;
+       struct ldb_dn *builtin_dn;
+       struct ldb_dn *system_dn;
+       const char *domain_name;
+       const char *domain_dns;
+       const char *forest_dns;
+       struct dom_sid *domain_sid;
+       struct GUID domain_guid;
+       struct dom_sid *builtin_sid;
+       struct dom_sid *nt_authority_sid;
+       struct dom_sid *creator_owner_domain_sid;
+       struct dom_sid *world_domain_sid;
+       int mixed_domain;
+};
+
+enum lsa_handle {
+       LSA_HANDLE_POLICY,
+       LSA_HANDLE_ACCOUNT,
+       LSA_HANDLE_SECRET,
+       LSA_HANDLE_TRUSTED_DOMAIN
+};
+
+#include "rpc_server/lsa/proto.h"
+
diff --git a/source/rpc_server/lsa/lsa_init.c b/source/rpc_server/lsa/lsa_init.c
new file mode 100644 (file)
index 0000000..6cf062a
--- /dev/null
@@ -0,0 +1,248 @@
+/* 
+   Unix SMB/CIFS implementation.
+
+   endpoint server for the lsarpc pipe
+
+   Copyright (C) Andrew Tridgell 2004
+   Copyright (C) Andrew Bartlett <abartlet@samba.org> 2004-2007
+   
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+   
+   This program 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 General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "rpc_server/lsa/lsa.h"
+
+NTSTATUS dcesrv_lsa_get_policy_state(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+                                    struct lsa_policy_state **_state)
+{
+       struct lsa_policy_state *state;
+       struct ldb_dn *partitions_basedn;
+       struct ldb_result *dom_res;
+       const char *dom_attrs[] = {
+               "objectSid", 
+               "objectGUID", 
+               "nTMixedDomain",
+               "fSMORoleOwner",
+               NULL
+       };
+       struct ldb_result *ref_res;
+       struct ldb_result *forest_ref_res;
+       const char *ref_attrs[] = {
+               "nETBIOSName",
+               "dnsRoot",
+               NULL
+       };
+       int ret;
+
+       state = talloc(mem_ctx, struct lsa_policy_state);
+       if (!state) {
+               return NT_STATUS_NO_MEMORY;
+       }
+
+       /* make sure the sam database is accessible */
+       state->sam_ldb = samdb_connect(state, dce_call->conn->auth_state.session_info); 
+       if (state->sam_ldb == NULL) {
+               return NT_STATUS_INVALID_SYSTEM_SERVICE;
+       }
+
+       partitions_basedn = samdb_partitions_dn(state->sam_ldb, mem_ctx);
+
+       state->sidmap = sidmap_open(state);
+       if (state->sidmap == NULL) {
+               return NT_STATUS_INVALID_SYSTEM_SERVICE;
+       }
+
+       /* work out the domain_dn - useful for so many calls its worth
+          fetching here */
+       state->domain_dn = samdb_base_dn(state->sam_ldb);
+       if (!state->domain_dn) {
+               return NT_STATUS_NO_MEMORY;             
+       }
+
+       /* work out the forest root_dn - useful for so many calls its worth
+          fetching here */
+       state->forest_dn = samdb_root_dn(state->sam_ldb);
+       if (!state->forest_dn) {
+               return NT_STATUS_NO_MEMORY;             
+       }
+
+       ret = ldb_search(state->sam_ldb, state->domain_dn, LDB_SCOPE_BASE, NULL, dom_attrs, &dom_res);
+       
+       if (ret != LDB_SUCCESS) {
+               return NT_STATUS_INVALID_SYSTEM_SERVICE;
+       }
+       talloc_steal(mem_ctx, dom_res);
+       if (dom_res->count != 1) {
+               return NT_STATUS_NO_SUCH_DOMAIN;                
+       }
+
+       state->domain_sid = samdb_result_dom_sid(state, dom_res->msgs[0], "objectSid");
+       if (!state->domain_sid) {
+               return NT_STATUS_NO_SUCH_DOMAIN;                
+       }
+
+       state->domain_guid = samdb_result_guid(dom_res->msgs[0], "objectGUID");
+       if (!state->domain_sid) {
+               return NT_STATUS_NO_SUCH_DOMAIN;                
+       }
+
+       state->mixed_domain = ldb_msg_find_attr_as_uint(dom_res->msgs[0], "nTMixedDomain", 0);
+       
+       talloc_free(dom_res);
+
+       ret = ldb_search_exp_fmt(state->sam_ldb, state, &ref_res,
+                                partitions_basedn, LDB_SCOPE_SUBTREE, ref_attrs,
+                                "(&(objectclass=crossRef)(ncName=%s))",
+                                ldb_dn_get_linearized(state->domain_dn));
+       
+       if (ret != LDB_SUCCESS) {
+               talloc_free(ref_res);
+               return NT_STATUS_INVALID_SYSTEM_SERVICE;
+       }
+       if (ref_res->count != 1) {
+               talloc_free(ref_res);
+               return NT_STATUS_NO_SUCH_DOMAIN;                
+       }
+
+       state->domain_name = ldb_msg_find_attr_as_string(ref_res->msgs[0], "nETBIOSName", NULL);
+       if (!state->domain_name) {
+               talloc_free(ref_res);
+               return NT_STATUS_NO_SUCH_DOMAIN;                
+       }
+       talloc_steal(state, state->domain_name);
+
+       state->domain_dns = ldb_msg_find_attr_as_string(ref_res->msgs[0], "dnsRoot", NULL);
+       if (!state->domain_dns) {
+               talloc_free(ref_res);
+               return NT_STATUS_NO_SUCH_DOMAIN;                
+       }
+       talloc_steal(state, state->domain_dns);
+
+       talloc_free(ref_res);
+
+       ret = ldb_search_exp_fmt(state->sam_ldb, state, &forest_ref_res,
+                                partitions_basedn, LDB_SCOPE_SUBTREE, ref_attrs,
+                                "(&(objectclass=crossRef)(ncName=%s))",
+                                ldb_dn_get_linearized(state->forest_dn));
+       
+       if (ret != LDB_SUCCESS) {
+               talloc_free(forest_ref_res);
+               return NT_STATUS_INVALID_SYSTEM_SERVICE;
+       }
+       if (forest_ref_res->count != 1) {
+               talloc_free(forest_ref_res);
+               return NT_STATUS_NO_SUCH_DOMAIN;                
+       }
+
+       state->forest_dns = ldb_msg_find_attr_as_string(forest_ref_res->msgs[0], "dnsRoot", NULL);
+       if (!state->forest_dns) {
+               talloc_free(forest_ref_res);
+               return NT_STATUS_NO_SUCH_DOMAIN;                
+       }
+       talloc_steal(state, state->forest_dns);
+
+       talloc_free(forest_ref_res);
+
+       /* work out the builtin_dn - useful for so many calls its worth
+          fetching here */
+       state->builtin_dn = samdb_search_dn(state->sam_ldb, state, state->domain_dn, "(objectClass=builtinDomain)");
+       if (!state->builtin_dn) {
+               return NT_STATUS_NO_SUCH_DOMAIN;                
+       }
+
+       /* work out the system_dn - useful for so many calls its worth
+          fetching here */
+       state->system_dn = samdb_search_dn(state->sam_ldb, state,
+                                          state->domain_dn, "(&(objectClass=container)(cn=System))");
+       if (!state->system_dn) {
+               return NT_STATUS_NO_SUCH_DOMAIN;                
+       }
+
+       state->builtin_sid = dom_sid_parse_talloc(state, SID_BUILTIN);
+       if (!state->builtin_sid) {
+               return NT_STATUS_NO_SUCH_DOMAIN;                
+       }
+
+       state->nt_authority_sid = dom_sid_parse_talloc(state, SID_NT_AUTHORITY);
+       if (!state->nt_authority_sid) {
+               return NT_STATUS_NO_SUCH_DOMAIN;                
+       }
+
+       state->creator_owner_domain_sid = dom_sid_parse_talloc(state, SID_CREATOR_OWNER_DOMAIN);
+       if (!state->creator_owner_domain_sid) {
+               return NT_STATUS_NO_SUCH_DOMAIN;                
+       }
+
+       state->world_domain_sid = dom_sid_parse_talloc(state, SID_WORLD_DOMAIN);
+       if (!state->world_domain_sid) {
+               return NT_STATUS_NO_SUCH_DOMAIN;                
+       }
+
+       *_state = state;
+
+       return NT_STATUS_OK;
+}
+
+/* 
+  lsa_OpenPolicy2
+*/
+NTSTATUS dcesrv_lsa_OpenPolicy2(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+                               struct lsa_OpenPolicy2 *r)
+{
+       NTSTATUS status;
+       struct lsa_policy_state *state;
+       struct dcesrv_handle *handle;
+
+       ZERO_STRUCTP(r->out.handle);
+
+       status = dcesrv_lsa_get_policy_state(dce_call, mem_ctx, &state);
+       if (!NT_STATUS_IS_OK(status)) {
+               return status;
+       }
+
+       handle = dcesrv_handle_new(dce_call->context, LSA_HANDLE_POLICY);
+       if (!handle) {
+               return NT_STATUS_NO_MEMORY;
+       }
+
+       handle->data = talloc_steal(handle, state);
+
+       state->access_mask = r->in.access_mask;
+       state->handle = handle;
+       *r->out.handle = handle->wire_handle;
+
+       /* note that we have completely ignored the attr element of
+          the OpenPolicy. As far as I can tell, this is what w2k3
+          does */
+
+       return NT_STATUS_OK;
+}
+
+/* 
+  lsa_OpenPolicy
+  a wrapper around lsa_OpenPolicy2
+*/
+NTSTATUS dcesrv_lsa_OpenPolicy(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+                               struct lsa_OpenPolicy *r)
+{
+       struct lsa_OpenPolicy2 r2;
+
+       r2.in.system_name = NULL;
+       r2.in.attr = r->in.attr;
+       r2.in.access_mask = r->in.access_mask;
+       r2.out.handle = r->out.handle;
+
+       return dcesrv_lsa_OpenPolicy2(dce_call, mem_ctx, &r2);
+}
+
+
diff --git a/source/rpc_server/lsa/lsa_lookup.c b/source/rpc_server/lsa/lsa_lookup.c
new file mode 100644 (file)
index 0000000..2275e76
--- /dev/null
@@ -0,0 +1,928 @@
+/* 
+   Unix SMB/CIFS implementation.
+
+   endpoint server for the lsarpc pipe
+
+   Copyright (C) Andrew Tridgell 2004
+   Copyright (C) Andrew Bartlett <abartlet@samba.org> 2004-2007
+   
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+   
+   This program 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 General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "rpc_server/lsa/lsa.h"
+
+static const struct {
+       const char *domain;
+       const char *name;
+       const char *sid;
+       int rtype;
+} well_known[] = {
+       {
+               .name = "EVERYONE",
+               .sid = SID_WORLD,
+               .rtype = SID_NAME_WKN_GRP,
+       },
+       {
+               .name = "CREATOR OWNER",
+               .sid = SID_CREATOR_OWNER,
+               .rtype = SID_NAME_WKN_GRP,
+       },
+       {
+               .name = "CREATOR GROUP",
+               .sid = SID_CREATOR_GROUP,
+               .rtype = SID_NAME_WKN_GRP,
+       },
+       {
+               .domain = "NT AUTHORITY",
+               .name = "Dialup",
+               .sid = SID_NT_DIALUP,
+               .rtype = SID_NAME_WKN_GRP,
+       },
+       {
+               .domain = "NT AUTHORITY",
+               .name = "Network",
+               .sid = SID_NT_NETWORK,
+               .rtype = SID_NAME_WKN_GRP,
+       },
+       {
+               .domain = "NT AUTHORITY",
+               .name = "Batch",
+               .sid = SID_NT_BATCH,
+               .rtype = SID_NAME_WKN_GRP,
+       },
+       {
+               .domain = "NT AUTHORITY",
+               .name = "Interactive",
+               .sid = SID_NT_INTERACTIVE,
+               .rtype = SID_NAME_WKN_GRP,
+       },
+       {
+               .domain = "NT AUTHORITY",
+               .name = "Service",
+               .sid = SID_NT_SERVICE,
+               .rtype = SID_NAME_WKN_GRP,
+       },
+       {
+               .domain = "NT AUTHORITY",
+               .name = "ANONYMOUS LOGON",
+               .sid = SID_NT_ANONYMOUS,
+               .rtype = SID_NAME_WKN_GRP,
+       },
+       {
+               .domain = "NT AUTHORITY",
+               .name = "Proxy",
+               .sid = SID_NT_PROXY,
+               .rtype = SID_NAME_WKN_GRP,
+       },
+       {
+               .domain = "NT AUTHORITY",
+               .name = "ServerLogon",
+               .sid = SID_NT_ENTERPRISE_DCS,
+               .rtype = SID_NAME_WKN_GRP,
+       },
+       {
+               .domain = "NT AUTHORITY",
+               .name = "Self",
+               .sid = SID_NT_SELF,
+               .rtype = SID_NAME_WKN_GRP,
+       },
+       {
+               .domain = "NT AUTHORITY",
+               .name = "Authenticated Users",
+               .sid = SID_NT_AUTHENTICATED_USERS,
+               .rtype = SID_NAME_WKN_GRP,
+       },
+       {
+               .domain = "NT AUTHORITY",
+               .name = "Restricted",
+               .sid = SID_NT_RESTRICTED,
+               .rtype = SID_NAME_WKN_GRP,
+       },
+       {
+               .domain = "NT AUTHORITY",
+               .name = "Termainal Server User",
+               .sid = SID_NT_TERMINAL_SERVER_USERS,
+               .rtype = SID_NAME_WKN_GRP,
+       },
+       {
+               .domain = "NT AUTHORITY",
+               .name = "Remote Interactive Logon",
+               .sid = SID_NT_REMOTE_INTERACTIVE,
+               .rtype = SID_NAME_WKN_GRP,
+       },
+       {
+               .domain = "NT AUTHORITY",
+               .name = "This Organization",
+               .sid = SID_NT_THIS_ORGANISATION,
+               .rtype = SID_NAME_WKN_GRP,
+       },
+       {
+               .domain = "NT AUTHORITY",
+               .name = "SYSTEM",
+               .sid = SID_NT_SYSTEM,
+               .rtype = SID_NAME_WKN_GRP,
+       },
+       {
+               .domain = "NT AUTHORITY",
+               .name = "Local Service",
+               .sid = SID_NT_LOCAL_SERVICE,
+               .rtype = SID_NAME_WKN_GRP,
+       },
+       {
+               .domain = "NT AUTHORITY",
+               .name = "Network Service",
+               .sid = SID_NT_NETWORK_SERVICE,
+               .rtype = SID_NAME_WKN_GRP,
+       },
+       {
+               .sid = NULL,
+       }
+};
+
+static NTSTATUS lookup_well_known_names(TALLOC_CTX *mem_ctx, const char *domain,
+                                       const char *name, const char **authority_name, 
+                                       struct dom_sid **sid, uint32_t *rtype) 
+{
+       int i;
+       for (i=0; well_known[i].sid; i++) {
+               if (domain) {
+                       if (strcasecmp_m(domain, well_known[i].domain) == 0
+                           && strcasecmp_m(name, well_known[i].name) == 0) {
+                               *authority_name = well_known[i].domain;
+                               *sid = dom_sid_parse_talloc(mem_ctx, well_known[i].sid);
+                               *rtype = well_known[i].rtype;
+                               return NT_STATUS_OK;
+                       }
+               } else {
+                       if (strcasecmp_m(name, well_known[i].name) == 0) {
+                               *authority_name = well_known[i].domain;
+                               *sid = dom_sid_parse_talloc(mem_ctx, well_known[i].sid);
+                               *rtype = well_known[i].rtype;
+                               return NT_STATUS_OK;
+                       }
+               }
+       }
+       return NT_STATUS_NOT_FOUND;     
+}
+
+static NTSTATUS lookup_well_known_sids(TALLOC_CTX *mem_ctx, 
+                                      const char *sid_str, const char **authority_name, 
+                                      const char **name, uint32_t *rtype) 
+{
+       int i;
+       for (i=0; well_known[i].sid; i++) {
+               if (strcasecmp_m(sid_str, well_known[i].sid) == 0) {
+                       *authority_name = well_known[i].domain;
+                       *name = well_known[i].name;
+                       *rtype = well_known[i].rtype;
+                       return NT_STATUS_OK;
+               }
+       }
+       return NT_STATUS_NOT_FOUND;     
+}
+
+/*
+  lookup a SID for 1 name
+*/
+static NTSTATUS dcesrv_lsa_lookup_name(struct lsa_policy_state *state, TALLOC_CTX *mem_ctx,
+                               const char *name, const char **authority_name, 
+                               struct dom_sid **sid, enum lsa_SidType *rtype)
+{
+       int ret, atype, i;
+       struct ldb_message **res;
+       const char * const attrs[] = { "objectSid", "sAMAccountType", NULL};
+       const char *p;
+       const char *domain;
+       const char *username;
+       struct ldb_dn *domain_dn;
+       struct dom_sid *domain_sid;
+       NTSTATUS status;
+
+       p = strchr_m(name, '\\');
+       if (p != NULL) {
+               domain = talloc_strndup(mem_ctx, name, p-name);
+               if (!domain) {
+                       return NT_STATUS_NO_MEMORY;
+               }
+               username = p + 1;
+       } else if (strchr_m(name, '@')) {
+               status = crack_name_to_nt4_name(mem_ctx, DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL, name, &domain, &username);
+               if (!NT_STATUS_IS_OK(status)) {
+                       return status;
+               }
+       } else {
+               domain = NULL;
+               username = name;
+       }
+       
+       if (!domain) {
+               /* Look up table of well known names */
+               status = lookup_well_known_names(mem_ctx, NULL, username, authority_name, sid, rtype);
+               if (NT_STATUS_IS_OK(status)) {
+                       return NT_STATUS_OK;
+               }
+
+               if (strcasecmp_m(username, NAME_NT_AUTHORITY) == 0) { 
+                       *authority_name = NAME_NT_AUTHORITY;
+                       *sid =  dom_sid_parse_talloc(mem_ctx, SID_NT_AUTHORITY);
+                       *rtype = SID_NAME_DOMAIN;
+                       return NT_STATUS_OK;
+               }
+               if (strcasecmp_m(username, NAME_BUILTIN) == 0) { 
+                       *authority_name = NAME_BUILTIN;
+                       *sid = dom_sid_parse_talloc(mem_ctx, SID_BUILTIN);
+                       *rtype = SID_NAME_DOMAIN;
+                       return NT_STATUS_OK;
+               }
+               if (strcasecmp_m(username, state->domain_dns) == 0) { 
+                       *authority_name = state->domain_name;
+                       *sid =  state->domain_sid;
+                       *rtype = SID_NAME_DOMAIN;
+                       return NT_STATUS_OK;
+               }
+               if (strcasecmp_m(username, state->domain_name) == 0) { 
+                       *authority_name = state->domain_name;
+                       *sid =  state->domain_sid;
+                       *rtype = SID_NAME_DOMAIN;
+                       return NT_STATUS_OK;
+               }
+               
+               /* Perhaps this is a well known user? */
+               name = talloc_asprintf(mem_ctx, "%s\\%s", NAME_NT_AUTHORITY, username);
+               if (!name) {
+                       return NT_STATUS_NO_MEMORY;
+               }
+               status = dcesrv_lsa_lookup_name(state, mem_ctx, name, authority_name, sid, rtype);
+               if (NT_STATUS_IS_OK(status)) {
+                       return status;
+               }
+
+               /* Perhaps this is a BUILTIN user? */
+               name = talloc_asprintf(mem_ctx, "%s\\%s", NAME_BUILTIN, username);
+               if (!name) {
+                       return NT_STATUS_NO_MEMORY;
+               }
+               status = dcesrv_lsa_lookup_name(state, mem_ctx, name, authority_name, sid, rtype);
+               if (NT_STATUS_IS_OK(status)) {
+                       return status;
+               }
+
+               /* OK, I give up - perhaps we need to assume the user is in our domain? */
+               name = talloc_asprintf(mem_ctx, "%s\\%s", state->domain_name, username);
+               if (!name) {
+                       return NT_STATUS_NO_MEMORY;
+               }
+               status = dcesrv_lsa_lookup_name(state, mem_ctx, name, authority_name, sid, rtype);
+               if (NT_STATUS_IS_OK(status)) {
+                       return status;
+               }
+
+               return STATUS_SOME_UNMAPPED;
+       } else if (strcasecmp_m(domain, NAME_NT_AUTHORITY) == 0) {
+               if (!*username) {
+                       *authority_name = NAME_NT_AUTHORITY;
+                       *sid = dom_sid_parse_talloc(mem_ctx, SID_NT_AUTHORITY);
+                       *rtype = SID_NAME_DOMAIN;
+                       return NT_STATUS_OK;
+               }
+
+               /* Look up table of well known names */
+               return lookup_well_known_names(mem_ctx, domain, username, authority_name, 
+                                              sid, rtype);
+       } else if (strcasecmp_m(domain, NAME_BUILTIN) == 0) {
+               *authority_name = NAME_BUILTIN;
+               domain_dn = state->builtin_dn;
+       } else if (strcasecmp_m(domain, state->domain_dns) == 0) { 
+               *authority_name = state->domain_name;
+               domain_dn = state->domain_dn;
+       } else if (strcasecmp_m(domain, state->domain_name) == 0) { 
+               *authority_name = state->domain_name;
+               domain_dn = state->domain_dn;
+       } else {
+               /* Not local, need to ask winbind in future */
+               return STATUS_SOME_UNMAPPED;
+       }
+
+       ret = gendb_search_dn(state->sam_ldb, mem_ctx, domain_dn, &res, attrs);
+       if (ret == 1) {
+               domain_sid = samdb_result_dom_sid(mem_ctx, res[0], "objectSid");
+               if (domain_sid == NULL) {
+                       return NT_STATUS_INVALID_SID;
+               }
+       } else {
+               return NT_STATUS_INVALID_SID;
+       }
+
+       if (!*username) {
+               *sid = domain_sid;
+               *rtype = SID_NAME_DOMAIN;
+               return NT_STATUS_OK;
+       }
+       
+       ret = gendb_search(state->sam_ldb, mem_ctx, domain_dn, &res, attrs, 
+                          "(&(sAMAccountName=%s)(objectSid=*))", 
+                          ldb_binary_encode_string(mem_ctx, username));
+       if (ret == -1) {
+               return NT_STATUS_INVALID_SID;
+       }
+
+       for (i=0; i < ret; i++) {
+               *sid = samdb_result_dom_sid(mem_ctx, res[i], "objectSid");
+               if (*sid == NULL) {
+                       return NT_STATUS_INVALID_SID;
+               }
+
+               /* Check that this is in the domain */
+               if (!dom_sid_in_domain(domain_sid, *sid)) {
+                       continue;
+               }
+
+               atype = samdb_result_uint(res[i], "sAMAccountType", 0);
+                       
+               *rtype = samdb_atype_map(atype);
+               if (*rtype == SID_NAME_UNKNOWN) {
+                       return STATUS_SOME_UNMAPPED;
+               }
+
+               return NT_STATUS_OK;
+       }
+
+       /* need to add a call into sidmap to check for a allocated sid */
+
+       return NT_STATUS_INVALID_SID;
+}
+
+
+/*
+  add to the lsa_RefDomainList for LookupSids and LookupNames
+*/
+static NTSTATUS dcesrv_lsa_authority_list(struct lsa_policy_state *state, TALLOC_CTX *mem_ctx, 
+                                         enum lsa_SidType rtype,
+                                         const char *authority_name,
+                                         struct dom_sid *sid, 
+                                         struct lsa_RefDomainList *domains,
+                                         uint32_t *sid_index)
+{
+       struct dom_sid *authority_sid;
+       int i;
+
+       if (rtype != SID_NAME_DOMAIN) {
+               authority_sid = dom_sid_dup(mem_ctx, sid);
+               if (authority_sid == NULL) {
+                       return NT_STATUS_NO_MEMORY;
+               }
+               authority_sid->num_auths--;
+       } else {
+               authority_sid = sid;
+       }
+
+       /* see if we've already done this authority name */
+       for (i=0;i<domains->count;i++) {
+               if (strcasecmp_m(authority_name, domains->domains[i].name.string) == 0) {
+                       *sid_index = i;
+                       return NT_STATUS_OK;
+               }
+       }
+
+       domains->domains = talloc_realloc(domains, 
+                                         domains->domains,
+                                         struct lsa_DomainInfo,
+                                         domains->count+1);
+       if (domains->domains == NULL) {
+               return NT_STATUS_NO_MEMORY;
+       }
+       domains->domains[i].name.string = authority_name;
+       domains->domains[i].sid         = authority_sid;
+       domains->count++;
+       domains->max_size = LSA_REF_DOMAIN_LIST_MULTIPLIER * domains->count;
+       *sid_index = i;
+       
+       return NT_STATUS_OK;
+}
+
+/*
+  lookup a name for 1 SID
+*/
+static NTSTATUS dcesrv_lsa_lookup_sid(struct lsa_policy_state *state, TALLOC_CTX *mem_ctx,
+                                     struct dom_sid *sid, const char *sid_str,
+                                     const char **authority_name, 
+                                     const char **name, enum lsa_SidType *rtype)
+{
+       NTSTATUS status;
+       int ret;
+       uint32_t atype;
+       struct ldb_message **res;
+       struct ldb_dn *domain_dn;
+       const char * const attrs[] = { "sAMAccountName", "sAMAccountType", "cn", NULL};
+
+       status = lookup_well_known_sids(mem_ctx, sid_str, authority_name, name, rtype);
+       if (NT_STATUS_IS_OK(status)) {
+               return status;
+       }
+
+       if (dom_sid_in_domain(state->domain_sid, sid)) {
+               *authority_name = state->domain_name;
+               domain_dn = state->domain_dn;
+       } else if (dom_sid_in_domain(state->builtin_sid, sid)) {
+               *authority_name = NAME_BUILTIN;
+               domain_dn = state->builtin_dn;
+       } else {
+               /* Not well known, our domain or built in */
+
+               /* In future, we must look at SID histories, and at trusted domains via winbind */
+
+               return NT_STATUS_NOT_FOUND;
+       }
+
+       ret = gendb_search(state->sam_ldb, mem_ctx, domain_dn, &res, attrs, 
+                          "objectSid=%s", ldap_encode_ndr_dom_sid(mem_ctx, sid));
+       if (ret == 1) {
+               *name = ldb_msg_find_attr_as_string(res[0], "sAMAccountName", NULL);
+               if (!*name) {
+                       *name = ldb_msg_find_attr_as_string(res[0], "cn", NULL);
+                       if (!*name) {
+                               *name = talloc_strdup(mem_ctx, sid_str);
+                               NT_STATUS_HAVE_NO_MEMORY(*name);
+                       }
+               }
+
+               atype = samdb_result_uint(res[0], "sAMAccountType", 0);
+
+               *rtype = samdb_atype_map(atype);
+
+               return NT_STATUS_OK;
+       }
+
+       /* need to re-add a call into sidmap to check for a allocated sid */
+       /* status = sidmap_allocated_sid_lookup(state->sidmap, mem_ctx, sid, name, rtype); */
+
+       return NT_STATUS_NOT_FOUND;
+}
+
+
+/*
+  lsa_LookupSids2
+*/
+NTSTATUS dcesrv_lsa_LookupSids2(struct dcesrv_call_state *dce_call,
+                               TALLOC_CTX *mem_ctx,
+                               struct lsa_LookupSids2 *r)
+{
+       struct lsa_policy_state *state;
+       int i;
+       NTSTATUS status = NT_STATUS_OK;
+
+       r->out.domains = NULL;
+
+       status = dcesrv_lsa_get_policy_state(dce_call, mem_ctx, &state);
+       if (!NT_STATUS_IS_OK(status)) {
+               return status;
+       }
+
+       r->out.domains = talloc_zero(mem_ctx,  struct lsa_RefDomainList);
+       if (r->out.domains == NULL) {
+               return NT_STATUS_NO_MEMORY;
+       }
+
+       r->out.names = talloc_zero(mem_ctx,  struct lsa_TransNameArray2);
+       if (r->out.names == NULL) {
+               return NT_STATUS_NO_MEMORY;
+       }
+
+       *r->out.count = 0;
+
+       r->out.names->names = talloc_array(r->out.names, struct lsa_TranslatedName2, 
+                                            r->in.sids->num_sids);
+       if (r->out.names->names == NULL) {
+               return NT_STATUS_NO_MEMORY;
+       }
+
+       for (i=0;i<r->in.sids->num_sids;i++) {
+               struct dom_sid *sid = r->in.sids->sids[i].sid;
+               char *sid_str = dom_sid_string(mem_ctx, sid);
+               const char *name, *authority_name;
+               enum lsa_SidType rtype;
+               uint32_t sid_index;
+               NTSTATUS status2;
+
+               r->out.names->count++;
+
+               r->out.names->names[i].sid_type    = SID_NAME_UNKNOWN;
+               r->out.names->names[i].name.string = sid_str;
+               r->out.names->names[i].sid_index   = 0xFFFFFFFF;
+               r->out.names->names[i].unknown     = 0;
+
+               if (sid_str == NULL) {
+                       r->out.names->names[i].name.string = "(SIDERROR)";
+                       status = STATUS_SOME_UNMAPPED;
+                       continue;
+               }
+
+               status2 = dcesrv_lsa_lookup_sid(state, mem_ctx, sid, sid_str, 
+                                               &authority_name, &name, &rtype);
+               if (!NT_STATUS_IS_OK(status2)) {
+                       status = STATUS_SOME_UNMAPPED;
+                       continue;
+               }
+
+               /* set up the authority table */
+               status2 = dcesrv_lsa_authority_list(state, mem_ctx, rtype, 
+                                                   authority_name, sid, 
+                                                   r->out.domains, &sid_index);
+               if (!NT_STATUS_IS_OK(status2)) {
+                       return status2;
+               }
+
+               r->out.names->names[i].sid_type    = rtype;
+               r->out.names->names[i].name.string = name;
+               r->out.names->names[i].sid_index   = sid_index;
+               r->out.names->names[i].unknown     = 0;
+
+               (*r->out.count)++;
+       }
+       
+       if (*r->out.count == 0) {
+               return NT_STATUS_NONE_MAPPED;
+       }
+       if (*r->out.count != r->in.sids->num_sids) {
+               return STATUS_SOME_UNMAPPED;
+       }
+
+       return NT_STATUS_OK;
+}
+
+
+/*
+  lsa_LookupSids3
+
+  Identical to LookupSids2, but doesn't take a policy handle
+  
+*/
+NTSTATUS dcesrv_lsa_LookupSids3(struct dcesrv_call_state *dce_call,
+                               TALLOC_CTX *mem_ctx,
+                               struct lsa_LookupSids3 *r)
+{
+       struct lsa_LookupSids2 r2;
+       struct lsa_OpenPolicy2 pol;
+       NTSTATUS status;
+       struct dcesrv_handle *h;
+
+       /* No policy handle on the wire, so make one up here */
+       r2.in.handle = talloc(mem_ctx, struct policy_handle);
+       if (!r2.in.handle) {
+               return NT_STATUS_NO_MEMORY;
+       }
+
+       pol.out.handle = r2.in.handle;
+       pol.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
+       pol.in.attr = NULL;
+       pol.in.system_name = NULL;
+       status = dcesrv_lsa_OpenPolicy2(dce_call, mem_ctx, &pol);
+       if (!NT_STATUS_IS_OK(status)) {
+               return status;
+       }
+
+       /* ensure this handle goes away at the end of this call */
+       DCESRV_PULL_HANDLE(h, r2.in.handle, LSA_HANDLE_POLICY);
+       talloc_steal(mem_ctx, h);
+
+       r2.in.sids     = r->in.sids;
+       r2.in.names    = r->in.names;
+       r2.in.level    = r->in.level;
+       r2.in.count    = r->in.count;
+       r2.in.unknown1 = r->in.unknown1;
+       r2.in.unknown2 = r->in.unknown2;
+       r2.out.count   = r->out.count;
+       r2.out.names   = r->out.names;
+
+       status = dcesrv_lsa_LookupSids2(dce_call, mem_ctx, &r2);
+       if (dce_call->fault_code != 0) {
+               return status;
+       }
+
+       r->out.domains = r2.out.domains;
+       r->out.names   = r2.out.names;
+       r->out.count   = r2.out.count;
+
+       return status;
+}
+
+
+/* 
+  lsa_LookupSids 
+*/
+NTSTATUS dcesrv_lsa_LookupSids(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+                              struct lsa_LookupSids *r)
+{
+       struct lsa_LookupSids2 r2;
+       NTSTATUS status;
+       int i;
+
+       r2.in.handle   = r->in.handle;
+       r2.in.sids     = r->in.sids;
+       r2.in.names    = NULL;
+       r2.in.level    = r->in.level;
+       r2.in.count    = r->in.count;
+       r2.in.unknown1 = 0;
+       r2.in.unknown2 = 0;
+       r2.out.count   = r->out.count;
+       r2.out.names   = NULL;
+
+       status = dcesrv_lsa_LookupSids2(dce_call, mem_ctx, &r2);
+       if (dce_call->fault_code != 0) {
+               return status;
+       }
+
+       r->out.domains = r2.out.domains;
+       if (!r2.out.names) {
+               r->out.names = NULL;
+               return status;
+       }
+
+       r->out.names = talloc(mem_ctx, struct lsa_TransNameArray);
+       if (r->out.names == NULL) {
+               return NT_STATUS_NO_MEMORY;
+       }
+       r->out.names->count = r2.out.names->count;
+       r->out.names->names = talloc_array(r->out.names, struct lsa_TranslatedName, 
+                                            r->out.names->count);
+       if (r->out.names->names == NULL) {
+               return NT_STATUS_NO_MEMORY;
+       }
+       for (i=0;i<r->out.names->count;i++) {
+               r->out.names->names[i].sid_type    = r2.out.names->names[i].sid_type;
+               r->out.names->names[i].name.string = r2.out.names->names[i].name.string;
+               r->out.names->names[i].sid_index   = r2.out.names->names[i].sid_index;
+       }
+
+       return status;
+}
+
+
+/*
+  lsa_LookupNames3
+*/
+NTSTATUS dcesrv_lsa_LookupNames3(struct dcesrv_call_state *dce_call,
+                                TALLOC_CTX *mem_ctx,
+                                struct lsa_LookupNames3 *r)
+{
+       struct lsa_policy_state *policy_state;
+       struct dcesrv_handle *policy_handle;
+       int i;
+
+       DCESRV_PULL_HANDLE(policy_handle, r->in.handle, LSA_HANDLE_POLICY);
+
+       policy_state = policy_handle->data;
+
+       r->out.domains = NULL;
+
+       r->out.domains = talloc_zero(mem_ctx,  struct lsa_RefDomainList);
+       if (r->out.domains == NULL) {
+               return NT_STATUS_NO_MEMORY;
+       }
+
+       r->out.sids = talloc_zero(mem_ctx,  struct lsa_TransSidArray3);
+       if (r->out.sids == NULL) {
+               return NT_STATUS_NO_MEMORY;
+       }
+
+       *r->out.count = 0;
+
+       r->out.sids->sids = talloc_array(r->out.sids, struct lsa_TranslatedSid3, 
+                                          r->in.num_names);
+       if (r->out.sids->sids == NULL) {
+               return NT_STATUS_NO_MEMORY;
+       }
+
+       for (i=0;i<r->in.num_names;i++) {
+               const char *name = r->in.names[i].string;
+               const char *authority_name;
+               struct dom_sid *sid;
+               uint32_t sid_index;
+               enum lsa_SidType rtype;
+               NTSTATUS status2;
+
+               r->out.sids->count++;
+
+               r->out.sids->sids[i].sid_type    = SID_NAME_UNKNOWN;
+               r->out.sids->sids[i].sid         = NULL;
+               r->out.sids->sids[i].sid_index   = 0xFFFFFFFF;
+               r->out.sids->sids[i].unknown     = 0;
+
+               status2 = dcesrv_lsa_lookup_name(policy_state, mem_ctx, name, &authority_name, &sid, &rtype);
+               if (!NT_STATUS_IS_OK(status2) || sid->num_auths == 0) {
+                       continue;
+               }
+
+               status2 = dcesrv_lsa_authority_list(policy_state, mem_ctx, rtype, authority_name, 
+                                                   sid, r->out.domains, &sid_index);
+               if (!NT_STATUS_IS_OK(status2)) {
+                       return status2;
+               }
+
+               r->out.sids->sids[i].sid_type    = rtype;
+               r->out.sids->sids[i].sid         = sid;
+               r->out.sids->sids[i].sid_index   = sid_index;
+               r->out.sids->sids[i].unknown     = 0;
+
+               (*r->out.count)++;
+       }
+       
+       if (*r->out.count == 0) {
+               return NT_STATUS_NONE_MAPPED;
+       }
+       if (*r->out.count != r->in.num_names) {
+               return STATUS_SOME_UNMAPPED;
+       }
+
+       return NT_STATUS_OK;
+}
+
+/* 
+  lsa_LookupNames4
+
+  Identical to LookupNames3, but doesn't take a policy handle
+  
+*/
+NTSTATUS dcesrv_lsa_LookupNames4(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+                                struct lsa_LookupNames4 *r)
+{
+       struct lsa_LookupNames3 r2;
+       struct lsa_OpenPolicy2 pol;
+       NTSTATUS status;
+       struct dcesrv_handle *h;
+
+       /* No policy handle on the wire, so make one up here */
+       r2.in.handle = talloc(mem_ctx, struct policy_handle);
+       if (!r2.in.handle) {
+               return NT_STATUS_NO_MEMORY;
+       }
+
+       pol.out.handle = r2.in.handle;
+       pol.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
+       pol.in.attr = NULL;
+       pol.in.system_name = NULL;
+       status = dcesrv_lsa_OpenPolicy2(dce_call, mem_ctx, &pol);
+       if (!NT_STATUS_IS_OK(status)) {
+               return status;
+       }
+
+       /* ensure this handle goes away at the end of this call */
+       DCESRV_PULL_HANDLE(h, r2.in.handle, LSA_HANDLE_POLICY);
+       talloc_steal(mem_ctx, h);
+
+       r2.in.num_names = r->in.num_names;
+       r2.in.names = r->in.names;
+       r2.in.sids = r->in.sids;
+       r2.in.count = r->in.count;
+       r2.in.unknown1 = r->in.unknown1;
+       r2.in.unknown2 = r->in.unknown2;
+       r2.out.domains = r->out.domains;
+       r2.out.sids = r->out.sids;
+       r2.out.count = r->out.count;
+       
+       status = dcesrv_lsa_LookupNames3(dce_call, mem_ctx, &r2);
+       if (dce_call->fault_code != 0) {
+               return status;
+       }
+       
+       r->out.domains = r2.out.domains;
+       r->out.sids = r2.out.sids;
+       r->out.count = r2.out.count;
+       return status;
+}
+
+/*
+  lsa_LookupNames2
+*/
+NTSTATUS dcesrv_lsa_LookupNames2(struct dcesrv_call_state *dce_call,
+                                TALLOC_CTX *mem_ctx,
+                                struct lsa_LookupNames2 *r)
+{
+       struct lsa_policy_state *state;
+       struct dcesrv_handle *h;
+       int i;
+
+       r->out.domains = NULL;
+
+       DCESRV_PULL_HANDLE(h, r->in.handle, LSA_HANDLE_POLICY);
+
+       state = h->data;
+
+       r->out.domains = talloc_zero(mem_ctx,  struct lsa_RefDomainList);
+       if (r->out.domains == NULL) {
+               return NT_STATUS_NO_MEMORY;
+       }
+
+       r->out.sids = talloc_zero(mem_ctx,  struct lsa_TransSidArray2);
+       if (r->out.sids == NULL) {
+               return NT_STATUS_NO_MEMORY;
+       }
+
+       *r->out.count = 0;
+
+       r->out.sids->sids = talloc_array(r->out.sids, struct lsa_TranslatedSid2, 
+                                          r->in.num_names);
+       if (r->out.sids->sids == NULL) {
+               return NT_STATUS_NO_MEMORY;
+       }
+
+       for (i=0;i<r->in.num_names;i++) {
+               const char *name = r->in.names[i].string;
+               const char *authority_name;
+               struct dom_sid *sid;
+               uint32_t rtype, sid_index;
+               NTSTATUS status2;
+
+               r->out.sids->count++;
+
+               r->out.sids->sids[i].sid_type    = SID_NAME_UNKNOWN;
+               r->out.sids->sids[i].rid         = 0xFFFFFFFF;
+               r->out.sids->sids[i].sid_index   = 0xFFFFFFFF;
+               r->out.sids->sids[i].unknown     = 0;
+
+               status2 = dcesrv_lsa_lookup_name(state, mem_ctx, name, 
+                                                &authority_name, &sid, &rtype);
+               if (!NT_STATUS_IS_OK(status2)) {
+                       continue;
+               }
+
+               status2 = dcesrv_lsa_authority_list(state, mem_ctx, rtype, authority_name, 
+                                                   sid, r->out.domains, &sid_index);
+               if (!NT_STATUS_IS_OK(status2)) {
+                       return status2;
+               }
+
+               r->out.sids->sids[i].sid_type    = rtype;
+               r->out.sids->sids[i].rid         = sid->sub_auths[sid->num_auths-1];
+               r->out.sids->sids[i].sid_index   = sid_index;
+               r->out.sids->sids[i].unknown     = 0;
+
+               (*r->out.count)++;
+       }
+       
+       if (*r->out.count == 0) {
+               return NT_STATUS_NONE_MAPPED;
+       }
+       if (*r->out.count != r->in.num_names) {
+               return STATUS_SOME_UNMAPPED;
+       }
+
+       return NT_STATUS_OK;
+}
+
+/* 
+  lsa_LookupNames 
+*/
+NTSTATUS dcesrv_lsa_LookupNames(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
+                      struct lsa_LookupNames *r)
+{
+       struct lsa_LookupNames2 r2;
+       NTSTATUS status;
+       int i;
+
+       r2.in.handle    = r->in.handle;
+       r2.in.num_names = r->in.num_names;
+       r2.in.names     = r->in.names;
+       r2.in.sids      = NULL;
+       r2.in.level     = r->in.level;
+       r2.in.count     = r->in.count;
+       r2.in.unknown1  = 0;
+       r2.in.unknown2  = 0;
+       r2.out.count    = r->out.count;
+
+       status = dcesrv_lsa_LookupNames2(dce_call, mem_ctx, &r2);
+       if (dce_call->fault_code != 0) {
+               return status;
+       }
+
+       r->out.domains = r2.out.domains;
+       r->out.sids = talloc(mem_ctx, struct lsa_TransSidArray);
+       if (r->out.sids == NULL) {
+               return NT_STATUS_NO_MEMORY;
+       }
+       r->out.sids->count = r2.out.sids->count;
+       r->out.sids->sids = talloc_array(r->out.sids, struct lsa_TranslatedSid, 
+                                          r->out.sids->count);
+       if (r->out.sids->sids == NULL) {
+               return NT_STATUS_NO_MEMORY;
+       }
+       for (i=0;i<r->out.sids->count;i++) {
+               r->out.sids->sids[i].sid_type    = r2.out.sids->sids[i].sid_type;
+               r->out.sids->sids[i].rid         = r2.out.sids->sids[i].rid;
+               r->out.sids->sids[i].sid_index   = r2.out.sids->sids[i].sid_index;
+       }
+
+       return status;
+}
+
index 2198dc5ebc303d34cd87c09350d5e88d68420687..45277dc3ed7bf89c9ef3e6c763c409b8f56183c7 100644 (file)
@@ -32,6 +32,7 @@
 #include "libcli/auth/libcli_auth.h"
 #include "auth/gensec/schannel_state.h"
 #include "libcli/security/security.h"
+#include "param/param.h"
 
 struct server_pipe_state {
        struct netr_Credential client_challenge;
@@ -164,7 +165,7 @@ static NTSTATUS dcesrv_netr_ServerAuthenticate3(struct dcesrv_call_state *dce_ca
        creds->account_name = talloc_steal(creds, r->in.account_name);
        
        creds->computer_name = talloc_steal(creds, r->in.computer_name);
-       creds->domain = talloc_strdup(creds, lp_workgroup());
+       creds->domain = talloc_strdup(creds, lp_workgroup(global_loadparm));
 
        creds->secure_channel_type = r->in.secure_channel_type;
 
@@ -258,7 +259,8 @@ static NTSTATUS dcesrv_netr_creds_server_step_check(const char *computer_name,
         * disconnects) we must update the database every time we
         * update the structure */ 
        
-       nt_status = schannel_fetch_session_key_ldb(ldb, ldb, computer_name, lp_workgroup(),
+       nt_status = schannel_fetch_session_key_ldb(ldb, ldb, computer_name, 
+                                                  lp_workgroup(global_loadparm),
                                                   &creds);
        if (NT_STATUS_IS_OK(nt_status)) {
                nt_status = creds_server_step_check(creds, 
@@ -311,7 +313,7 @@ static NTSTATUS dcesrv_netr_ServerPasswordSet(struct dcesrv_call_state *dce_call
                                           creds->sid,
                                           NULL, /* Don't have plaintext */
                                           NULL, &r->in.new_password,
-                                          False, /* This is not considered a password change */
+                                          false, /* This is not considered a password change */
                                           NULL, NULL);
        return nt_status;
 }
@@ -328,7 +330,7 @@ static NTSTATUS dcesrv_netr_ServerPasswordSet2(struct dcesrv_call_state *dce_cal
        NTSTATUS nt_status;
        char new_pass[512];
        uint32_t new_pass_len;
-       BOOL ret;
+       bool ret;
 
        struct samr_CryptPassword password_buf;
 
@@ -358,7 +360,7 @@ static NTSTATUS dcesrv_netr_ServerPasswordSet2(struct dcesrv_call_state *dce_cal
                                           creds->sid,
                                           new_pass, /* we have plaintext */
                                           NULL, NULL,
-                                          False, /* This is not considered a password change */
+                                          false, /* This is not considered a password change */
                                           NULL, NULL);
        return nt_status;
 }
@@ -408,7 +410,7 @@ static NTSTATUS dcesrv_netr_LogonSamLogon_base(struct dcesrv_call_state *dce_cal
        NT_STATUS_HAVE_NO_MEMORY(user_info);
 
        user_info->flags = 0;
-       user_info->mapped_state = False;
+       user_info->mapped_state = false;
        user_info->remote_host = NULL;
 
        switch (r->in.logon_level) {
@@ -527,7 +529,7 @@ static NTSTATUS dcesrv_netr_LogonSamLogon_base(struct dcesrv_call_state *dce_cal
                sam6 = talloc_zero(mem_ctx, struct netr_SamInfo6);
                NT_STATUS_HAVE_NO_MEMORY(sam6);
                sam6->base = *sam;
-               sam6->forest.string = lp_realm();
+               sam6->forest.string = lp_realm(global_loadparm);
                sam6->principle.string = talloc_asprintf(mem_ctx, "%s@%s", 
                                                         sam->account_name.string, sam6->forest.string);
                NT_STATUS_HAVE_NO_MEMORY(sam6->principle.string);
@@ -551,7 +553,7 @@ static NTSTATUS dcesrv_netr_LogonSamLogonEx(struct dcesrv_call_state *dce_call,
 {
        NTSTATUS nt_status;
        struct creds_CredentialState *creds;
-       nt_status = schannel_fetch_session_key(mem_ctx, r->in.computer_name, lp_workgroup(), &creds);
+       nt_status = schannel_fetch_session_key(mem_ctx, r->in.computer_name, lp_workgroup(global_loadparm), &creds);
        if (!NT_STATUS_IS_OK(nt_status)) {
                return nt_status;
        }
@@ -834,7 +836,7 @@ static NTSTATUS fill_domain_trust_info(TALLOC_CTX *mem_ctx,
                                       struct ldb_message *res,
                                       struct ldb_message *ref_res,
                                       struct netr_DomainTrustInfo *info, 
-                                      BOOL is_local)
+                                      bool is_local)
 {
        ZERO_STRUCTP(info);
 
@@ -924,15 +926,15 @@ static NTSTATUS dcesrv_netr_LogonGetDomainInfo(struct dcesrv_call_state *dce_cal
                                       info1->num_trusts);
        NT_STATUS_HAVE_NO_MEMORY(info1->trusts);
 
-       status = fill_domain_trust_info(mem_ctx, res1[0], ref_res[0], &info1->domaininfo, True);
+       status = fill_domain_trust_info(mem_ctx, res1[0], ref_res[0], &info1->domaininfo, true);
        NT_STATUS_NOT_OK_RETURN(status);
 
        for (i=0;i<ret2;i++) {
-               status = fill_domain_trust_info(mem_ctx, res2[i], NULL, &info1->trusts[i], False);
+               status = fill_domain_trust_info(mem_ctx, res2[i], NULL, &info1->trusts[i], false);
                NT_STATUS_NOT_OK_RETURN(status);
        }
 
-       status = fill_domain_trust_info(mem_ctx, res1[0], ref_res[0], &info1->trusts[i], True);
+       status = fill_domain_trust_info(mem_ctx, res1[0], ref_res[0], &info1->trusts[i], true);
        NT_STATUS_NOT_OK_RETURN(status);
 
        r->out.info.info1 = info1;
@@ -1003,7 +1005,9 @@ static WERROR dcesrv_netr_DsRGetDCNameEx2(struct dcesrv_call_state *dce_call, TA
        /* TODO: - return real IP address
         *       - check all r->in.* parameters (server_unc is ignored by w2k3!)
         */
-       r->out.info->dc_unc             = talloc_asprintf(mem_ctx, "\\\\%s.%s", lp_netbios_name(),lp_realm());
+       r->out.info->dc_unc             = talloc_asprintf(mem_ctx, "\\\\%s.%s", 
+                                                         lp_netbios_name(global_loadparm), 
+                                                         lp_realm(global_loadparm));
        W_ERROR_HAVE_NO_MEMORY(r->out.info->dc_unc);
        r->out.info->dc_address         = talloc_strdup(mem_ctx, "\\\\0.0.0.0");
        W_ERROR_HAVE_NO_MEMORY(r->out.info->dc_address);
index 6ddffa1d6cae0d6c70b1f0b2bfc5008c636deb01..f009323ae2e1f7852a4d0b685706032ebf9e297f 100644 (file)
@@ -23,6 +23,7 @@
 #include "auth/auth.h"
 #include "auth/credentials/credentials.h"
 #include "librpc/ndr/ndr_table.h"
+#include "param/param.h"
 
 
 struct dcesrv_remote_private {
@@ -39,12 +40,12 @@ static NTSTATUS remote_op_bind(struct dcesrv_call_state *dce_call, const struct
         NTSTATUS status;
        const struct ndr_interface_table *table;
         struct dcesrv_remote_private *private;
-       const char *binding = lp_parm_string(-1, "dcerpc_remote", "binding");
+       const char *binding = lp_parm_string(global_loadparm, NULL, "dcerpc_remote", "binding");
        const char *user, *pass, *domain;
        struct cli_credentials *credentials;
-       BOOL machine_account;
+       bool machine_account;
 
-       machine_account = lp_parm_bool(-1, "dcerpc_remote", "use_machine_account", False);
+       machine_account = lp_parm_bool(global_loadparm, NULL, "dcerpc_remote", "use_machine_account", false);
 
        private = talloc(dce_call->conn, struct dcesrv_remote_private);
        if (!private) {
@@ -59,9 +60,9 @@ static NTSTATUS remote_op_bind(struct dcesrv_call_state *dce_call, const struct
                return NT_STATUS_INVALID_PARAMETER;
        }
 
-       user = lp_parm_string(-1, "dcerpc_remote", "user");
-       pass = lp_parm_string(-1, "dcerpc_remote", "password");
-       domain = lp_parm_string(-1, "dceprc_remote", "domain");
+       user = lp_parm_string(global_loadparm, NULL, "dcerpc_remote", "user");
+       pass = lp_parm_string(global_loadparm, NULL, "dcerpc_remote", "password");
+       domain = lp_parm_string(global_loadparm, NULL, "dceprc_remote", "domain");
 
        table = ndr_table_by_uuid(&iface->syntax_id.uuid); /* FIXME: What about if_version ? */
        if (!table) {
@@ -75,7 +76,7 @@ static NTSTATUS remote_op_bind(struct dcesrv_call_state *dce_call, const struct
                if (!credentials) {
                        return NT_STATUS_NO_MEMORY;
                }
-               cli_credentials_set_conf(credentials);
+               cli_credentials_set_conf(credentials, global_loadparm);
                cli_credentials_set_username(credentials, user, CRED_SPECIFIED);
                if (domain) {
                        cli_credentials_set_domain(credentials, domain, CRED_SPECIFIED);
@@ -84,7 +85,7 @@ static NTSTATUS remote_op_bind(struct dcesrv_call_state *dce_call, const struct
        } else if (machine_account) {
                DEBUG(5, ("dcerpc_remote: RPC Proxy: Using machine account\n"));
                credentials = cli_credentials_init(private);
-               cli_credentials_set_conf(credentials);
+               cli_credentials_set_conf(credentials, global_loadparm);
                if (domain) {
                        cli_credentials_set_domain(credentials, domain, CRED_SPECIFIED);
                }
@@ -114,7 +115,7 @@ static NTSTATUS remote_op_bind(struct dcesrv_call_state *dce_call, const struct
 
 static void remote_op_unbind(struct dcesrv_connection_context *context, const struct dcesrv_interface *iface)
 {
-       struct dcesrv_remote_private *private = context->private;
+       struct dcesrv_remote_private *private = (struct dcesrv_remote_private *)context->private;
 
        talloc_free(private->c_pipe);
 
@@ -124,7 +125,7 @@ static void remote_op_unbind(struct dcesrv_connection_context *context, const st
 static NTSTATUS remote_op_ndr_pull(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct ndr_pull *pull, void **r)
 {
        NTSTATUS status;
-       const struct ndr_interface_table *table = dce_call->context->iface->private;
+       const struct ndr_interface_table *table = (const struct ndr_interface_table *)dce_call->context->iface->private;
        uint16_t opnum = dce_call->pkt.u.request.opnum;
 
        dce_call->fault_code = 0;
@@ -223,7 +224,7 @@ static NTSTATUS remote_register_one_iface(struct dcesrv_context *dce_ctx, const
 static NTSTATUS remote_op_init_server(struct dcesrv_context *dce_ctx, const struct dcesrv_endpoint_server *ep_server)
 {
        int i;
-       const char **ifaces = str_list_make(dce_ctx, lp_parm_string(-1,"dcerpc_remote","interfaces"),NULL);
+       const char **ifaces = str_list_make(dce_ctx, lp_parm_string(global_loadparm, NULL, "dcerpc_remote", "interfaces"),NULL);
 
        if (!ifaces) {
                DEBUG(3,("remote_op_init_server: no interfaces configured\n"));
@@ -252,7 +253,7 @@ static NTSTATUS remote_op_init_server(struct dcesrv_context *dce_ctx, const stru
        return NT_STATUS_OK;
 }
 
-static BOOL remote_fill_interface(struct dcesrv_interface *iface, const struct ndr_interface_table *if_tabl)
+static bool remote_fill_interface(struct dcesrv_interface *iface, const struct ndr_interface_table *if_tabl)
 {
        iface->name = if_tabl->name;
        iface->syntax_id = if_tabl->syntax_id;
@@ -267,10 +268,10 @@ static BOOL remote_fill_interface(struct dcesrv_interface *iface, const struct n
 
        iface->private = if_tabl;
 
-       return True;
+       return true;
 }
 
-static BOOL remote_op_interface_by_uuid(struct dcesrv_interface *iface, const struct GUID *uuid, uint32_t if_version)
+static bool remote_op_interface_by_uuid(struct dcesrv_interface *iface, const struct GUID *uuid, uint32_t if_version)
 {
        const struct ndr_interface_list *l;
 
@@ -281,17 +282,17 @@ static BOOL remote_op_interface_by_uuid(struct dcesrv_interface *iface, const st
                }
        }
 
-       return False;   
+       return false;   
 }
 
-static BOOL remote_op_interface_by_name(struct dcesrv_interface *iface, const char *name)
+static bool remote_op_interface_by_name(struct dcesrv_interface *iface, const char *name)
 {
        const struct ndr_interface_table *tbl = ndr_table_by_name(name);
 
        if (tbl)
                return remote_fill_interface(iface, tbl);
 
-       return False;   
+       return false;   
 }
 
 NTSTATUS dcerpc_server_remote_init(void)
index fcc52afc0314970c78121bd62ba56c9c837d3aa6..0ec979b81f3f5364de17bb8e23ba995d3703f5d3 100644 (file)
@@ -35,6 +35,7 @@
 #include "libcli/security/security.h"
 #include "rpc_server/samr/proto.h"
 #include "db_wrap.h"
+#include "param/param.h"
 
 /* these query macros make samr_Query[User|Group]Info a bit easier to read */
 
@@ -44,8 +45,8 @@
        r->out.info->field = samdb_result_uint(msg, attr, 0);
 #define QUERY_RID(msg, field, attr) \
        r->out.info->field = samdb_result_rid_from_sid(mem_ctx, msg, attr, 0);
-#define QUERY_NTTIME(msg, field, attr) \
-       r->out.info->field = samdb_result_nttime(msg, attr, 0);
+#define QUERY_UINT64(msg, field, attr) \
+       r->out.info->field = samdb_result_uint64(msg, attr, 0);
 #define QUERY_APASSC(msg, field, attr) \
        r->out.info->field = samdb_result_allow_password_change(sam_ctx, mem_ctx, \
                                                           a_state->domain_state->domain_dn, msg, attr);
@@ -497,7 +498,7 @@ static NTSTATUS dcesrv_samr_info_DomInfo2(struct samr_domain_state *state, TALLO
                                    struct ldb_message **dom_msgs,
                                   struct samr_DomInfo2 *info)
 {
-       enum server_role role = lp_server_role();
+       enum server_role role = lp_server_role(global_loadparm);
 
        /* This pulls the NetBIOS name from the 
           cn=NTDS Settings,cn=<NETBIOS name of PDC>,....
@@ -610,7 +611,7 @@ static NTSTATUS dcesrv_samr_info_DomInfo7(struct samr_domain_state *state,
                                   struct samr_DomInfo7 *info)
 {
 
-       enum server_role role = lp_server_role();
+       enum server_role role = lp_server_role(global_loadparm);
 
        switch (role) {
        case ROLE_DOMAIN_CONTROLLER:
@@ -3151,9 +3152,9 @@ static NTSTATUS dcesrv_samr_QueryUserInfo(struct dcesrv_call_state *dce_call, TA
                QUERY_STRING(msg, info3.logon_script,          "scriptPath");
                QUERY_STRING(msg, info3.profile_path,          "profilePath");
                QUERY_STRING(msg, info3.workstations,          "userWorkstations");
-               QUERY_NTTIME(msg, info3.last_logon,            "lastLogon");
-               QUERY_NTTIME(msg, info3.last_logoff,           "lastLogoff");
-               QUERY_NTTIME(msg, info3.last_password_change,  "pwdLastSet");
+               QUERY_UINT64(msg, info3.last_logon,            "lastLogon");
+               QUERY_UINT64(msg, info3.last_logoff,           "lastLogoff");
+               QUERY_UINT64(msg, info3.last_password_change,  "pwdLastSet");
                QUERY_APASSC(msg, info3.allow_password_change, "pwdLastSet");
                QUERY_FPASSC(msg, info3.force_password_change, "pwdLastSet");
                QUERY_LHOURS(msg, info3.logon_hours,           "logonHours");
@@ -3177,13 +3178,13 @@ static NTSTATUS dcesrv_samr_QueryUserInfo(struct dcesrv_call_state *dce_call, TA
                QUERY_STRING(msg, info5.profile_path,          "profilePath");
                QUERY_STRING(msg, info5.description,           "description");
                QUERY_STRING(msg, info5.workstations,          "userWorkstations");
-               QUERY_NTTIME(msg, info5.last_logon,            "lastLogon");
-               QUERY_NTTIME(msg, info5.last_logoff,           "lastLogoff");
+               QUERY_UINT64(msg, info5.last_logon,            "lastLogon");
+               QUERY_UINT64(msg, info5.last_logoff,           "lastLogoff");
                QUERY_LHOURS(msg, info5.logon_hours,           "logonHours");
                QUERY_UINT  (msg, info5.bad_password_count,    "badPwdCount");
                QUERY_UINT  (msg, info5.logon_count,           "logonCount");
-               QUERY_NTTIME(msg, info5.last_password_change,  "pwdLastSet");
-               QUERY_NTTIME(msg, info5.acct_expiry,           "accountExpires");
+               QUERY_UINT64(msg, info5.last_password_change,  "pwdLastSet");
+               QUERY_UINT64(msg, info5.acct_expiry,           "accountExpires");
                QUERY_AFLAGS(msg, info5.acct_flags,            "userAccountControl");
                break;
 
@@ -3230,17 +3231,18 @@ static NTSTATUS dcesrv_samr_QueryUserInfo(struct dcesrv_call_state *dce_call, TA
                break;
 
        case 17:
-               QUERY_NTTIME(msg, info17.acct_expiry,   "accountExpires");
+               QUERY_UINT64(msg, info17.acct_expiry,   "accountExpires");
+               break;
 
        case 20:
                QUERY_STRING(msg, info20.parameters,    "userParameters");
                break;
 
        case 21:
-               QUERY_NTTIME(msg, info21.last_logon,           "lastLogon");
-               QUERY_NTTIME(msg, info21.last_logoff,          "lastLogoff");
-               QUERY_NTTIME(msg, info21.last_password_change, "pwdLastSet");
-               QUERY_NTTIME(msg, info21.acct_expiry,          "accountExpires");
+               QUERY_UINT64(msg, info21.last_logon,           "lastLogon");
+               QUERY_UINT64(msg, info21.last_logoff,          "lastLogoff");
+               QUERY_UINT64(msg, info21.last_password_change, "pwdLastSet");
+               QUERY_UINT64(msg, info21.acct_expiry,          "accountExpires");
                QUERY_APASSC(msg, info21.allow_password_change,"pwdLastSet");
                QUERY_FPASSC(msg, info21.force_password_change,"pwdLastSet");
                QUERY_STRING(msg, info21.account_name,         "sAMAccountName");
index e3cb70ad175d4354327f0796fb4e9e9713e520c5..28816c03f8e4659922b85035cfe317498327c119 100644 (file)
@@ -143,7 +143,7 @@ NTSTATUS dcesrv_samr_ChangePasswordUser(struct dcesrv_call_state *dce_call, TALL
        status = samdb_set_password(sam_ctx, mem_ctx,
                                    a_state->account_dn, a_state->domain_state->domain_dn,
                                    msg, NULL, &new_lmPwdHash, &new_ntPwdHash, 
-                                   True, /* this is a user password change */
+                                   true, /* this is a user password change */
                                    NULL,
                                    NULL);
        if (!NT_STATUS_IS_OK(status)) {
@@ -278,7 +278,7 @@ NTSTATUS dcesrv_samr_OemChangePasswordUser2(struct dcesrv_call_state *dce_call,
                                    user_dn, NULL, 
                                    mod, new_pass, 
                                    NULL, NULL,
-                                   True, /* this is a user password change */
+                                   true, /* this is a user password change */
                                    NULL, 
                                    NULL);
        if (!NT_STATUS_IS_OK(status)) {
@@ -431,7 +431,7 @@ NTSTATUS dcesrv_samr_ChangePasswordUser3(struct dcesrv_call_state *dce_call,
                                    user_dn, NULL, 
                                    mod, new_pass, 
                                    NULL, NULL,
-                                   True, /* this is a user password change */
+                                   true, /* this is a user password change */
                                    &reason, 
                                    &dominfo);
        if (!NT_STATUS_IS_OK(status)) {
@@ -539,7 +539,7 @@ NTSTATUS samr_set_password(struct dcesrv_call_state *dce_call,
                                  account_dn, domain_dn, 
                                  msg, new_pass, 
                                  NULL, NULL,
-                                 False, /* This is a password set, not change */
+                                 false, /* This is a password set, not change */
                                  NULL, NULL);
 }
 
@@ -592,7 +592,7 @@ NTSTATUS samr_set_password_ex(struct dcesrv_call_state *dce_call,
                                  account_dn, domain_dn, 
                                  msg, new_pass, 
                                  NULL, NULL,
-                                 False, /* This is a password set, not change */
+                                 false, /* This is a password set, not change */
                                  NULL, NULL);
 }
 
diff --git a/source/rpc_server/service_rpc.c b/source/rpc_server/service_rpc.c
new file mode 100644 (file)
index 0000000..04dd5a8
--- /dev/null
@@ -0,0 +1,459 @@
+/* 
+   Unix SMB/CIFS implementation.
+
+   smbd-specific dcerpc server code
+
+   Copyright (C) Andrew Tridgell 2003-2005
+   Copyright (C) Stefan (metze) Metzmacher 2004-2005
+   Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2004,2007
+   
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+   
+   This program 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 General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include "librpc/gen_ndr/ndr_dcerpc.h"
+#include "auth/auth.h"
+#include "auth/gensec/gensec.h"
+#include "lib/util/dlinklist.h"
+#include "rpc_server/dcerpc_server.h"
+#include "lib/events/events.h"
+#include "smbd/service_task.h"
+#include "smbd/service_stream.h"
+#include "smbd/service.h"
+#include "system/filesys.h"
+#include "libcli/security/security.h"
+#include "lib/socket/socket.h"
+#include "lib/messaging/irpc.h"
+#include "system/network.h"
+#include "lib/socket/netif.h"
+#include "build.h"
+#include "param/param.h"
+
+struct dcesrv_socket_context {
+       const struct dcesrv_endpoint *endpoint;
+       struct dcesrv_context *dcesrv_ctx;
+};
+
+/*
+  write_fn callback for dcesrv_output()
+*/
+static NTSTATUS dcerpc_write_fn(void *private_data, DATA_BLOB *out, size_t *nwritten)
+{
+       NTSTATUS status;
+       struct socket_context *sock = talloc_get_type(private_data, struct socket_context);
+       size_t sendlen;
+
+       status = socket_send(sock, out, &sendlen);
+       NT_STATUS_IS_ERR_RETURN(status);
+
+       *nwritten = sendlen;
+       return status;
+}
+
+static void dcesrv_terminate_connection(struct dcesrv_connection *dce_conn, const char *reason)
+{
+       struct stream_connection *srv_conn;
+       srv_conn = talloc_get_type(dce_conn->transport.private_data,
+                                  struct stream_connection);
+
+       stream_terminate_connection(srv_conn, reason);
+}
+
+static void dcesrv_sock_report_output_data(struct dcesrv_connection *dcesrv_conn)
+{
+       struct stream_connection *srv_conn;
+       srv_conn = talloc_get_type(dcesrv_conn->transport.private_data,
+                                  struct stream_connection);
+
+       if (srv_conn && srv_conn->event.fde) {
+               EVENT_FD_WRITEABLE(srv_conn->event.fde);
+       }
+}
+
+static struct socket_address *dcesrv_sock_get_my_addr(struct dcesrv_connection *dcesrv_conn, TALLOC_CTX *mem_ctx)
+{
+       struct stream_connection *srv_conn;
+       srv_conn = talloc_get_type(dcesrv_conn->transport.private_data,
+                                  struct stream_connection);
+
+       return socket_get_my_addr(srv_conn->socket, mem_ctx);
+}
+
+static struct socket_address *dcesrv_sock_get_peer_addr(struct dcesrv_connection *dcesrv_conn, TALLOC_CTX *mem_ctx)
+{
+       struct stream_connection *srv_conn;
+       srv_conn = talloc_get_type(dcesrv_conn->transport.private_data,
+                                  struct stream_connection);
+
+       return socket_get_peer_addr(srv_conn->socket, mem_ctx);
+}
+
+static void dcesrv_sock_accept(struct stream_connection *srv_conn)
+{
+       NTSTATUS status;
+       struct dcesrv_socket_context *dcesrv_sock = 
+               talloc_get_type(srv_conn->private, struct dcesrv_socket_context);
+       struct dcesrv_connection *dcesrv_conn = NULL;
+       struct auth_session_info *session_info = NULL;
+
+       status = auth_anonymous_session_info(srv_conn, &session_info);
+       if (!NT_STATUS_IS_OK(status)) {
+               DEBUG(0,("dcesrv_sock_accept: auth_anonymous_session_info failed: %s\n", 
+                       nt_errstr(status)));
+               stream_terminate_connection(srv_conn, nt_errstr(status));
+               return;
+       }
+
+       status = dcesrv_endpoint_connect(dcesrv_sock->dcesrv_ctx,
+                                        srv_conn,
+                                        dcesrv_sock->endpoint,
+                                        session_info,
+                                        srv_conn->event.ctx,
+                                        srv_conn->msg_ctx,
+                                        srv_conn->server_id,
+                                        DCESRV_CALL_STATE_FLAG_MAY_ASYNC,
+                                        &dcesrv_conn);
+       if (!NT_STATUS_IS_OK(status)) {
+               DEBUG(0,("dcesrv_sock_accept: dcesrv_endpoint_connect failed: %s\n", 
+                       nt_errstr(status)));
+               stream_terminate_connection(srv_conn, nt_errstr(status));
+               return;
+       }
+
+       dcesrv_conn->transport.private_data             = srv_conn;
+       dcesrv_conn->transport.report_output_data       = dcesrv_sock_report_output_data;
+       dcesrv_conn->transport.get_my_addr              = dcesrv_sock_get_my_addr;
+       dcesrv_conn->transport.get_peer_addr            = dcesrv_sock_get_peer_addr;
+
+       srv_conn->private = dcesrv_conn;
+
+       irpc_add_name(srv_conn->msg_ctx, "rpc_server");
+
+       return; 
+}
+
+static void dcesrv_sock_recv(struct stream_connection *conn, uint16_t flags)
+{
+       NTSTATUS status;
+       struct dcesrv_connection *dce_conn = talloc_get_type(conn->private, struct dcesrv_connection);
+       DATA_BLOB tmp_blob;
+       size_t nread;
+
+       if (dce_conn->processing) {
+               EVENT_FD_NOT_READABLE(conn->event.fde);
+               return;
+       }
+
+       tmp_blob = data_blob_talloc(conn->socket, NULL, 0x1000);
+       if (tmp_blob.data == NULL) {
+               dcesrv_terminate_connection(dce_conn, "out of memory");
+               return;
+       }
+
+       status = socket_recv(conn->socket, tmp_blob.data, tmp_blob.length, &nread);
+       if (NT_STATUS_IS_ERR(status)) {
+               dcesrv_terminate_connection(dce_conn, nt_errstr(status));
+               return;
+       }
+       if (nread == 0) {
+               talloc_free(tmp_blob.data);
+               return;
+       }
+
+       tmp_blob.length = nread;
+
+       dce_conn->processing = true;
+       status = dcesrv_input(dce_conn, &tmp_blob);
+       dce_conn->processing = false;
+       talloc_free(tmp_blob.data);
+
+       EVENT_FD_READABLE(conn->event.fde);
+
+       if (!NT_STATUS_IS_OK(status)) {
+               dcesrv_terminate_connection(dce_conn, nt_errstr(status));
+               return;
+       }
+
+       if (dce_conn->call_list && dce_conn->call_list->replies) {
+               EVENT_FD_WRITEABLE(conn->event.fde);
+       }
+}
+
+static void dcesrv_sock_send(struct stream_connection *conn, uint16_t flags)
+{
+       struct dcesrv_connection *dce_conn = talloc_get_type(conn->private, struct dcesrv_connection);
+       NTSTATUS status;
+
+       status = dcesrv_output(dce_conn, conn->socket, dcerpc_write_fn);
+       if (NT_STATUS_IS_ERR(status)) {
+               dcesrv_terminate_connection(dce_conn, "eof on socket");
+               return;
+       }
+
+       if (!dce_conn->call_list || !dce_conn->call_list->replies) {
+               EVENT_FD_NOT_WRITEABLE(conn->event.fde);
+       }
+}
+
+
+static const struct stream_server_ops dcesrv_stream_ops = {
+       .name                   = "rpc",
+       .accept_connection      = dcesrv_sock_accept,
+       .recv_handler           = dcesrv_sock_recv,
+       .send_handler           = dcesrv_sock_send,
+};
+
+
+
+static NTSTATUS dcesrv_add_ep_unix(struct dcesrv_context *dce_ctx, struct dcesrv_endpoint *e,
+                           struct event_context *event_ctx, const struct model_ops *model_ops)
+{
+       struct dcesrv_socket_context *dcesrv_sock;
+       uint16_t port = 1;
+       NTSTATUS status;
+
+       dcesrv_sock = talloc(event_ctx, struct dcesrv_socket_context);
+       NT_STATUS_HAVE_NO_MEMORY(dcesrv_sock);
+
+       /* remember the endpoint of this socket */
+       dcesrv_sock->endpoint           = e;
+       dcesrv_sock->dcesrv_ctx         = talloc_reference(dcesrv_sock, dce_ctx);
+
+       status = stream_setup_socket(event_ctx, model_ops, &dcesrv_stream_ops, 
+                                    "unix", e->ep_description->endpoint, &port, 
+                                    dcesrv_sock);
+       if (!NT_STATUS_IS_OK(status)) {
+               DEBUG(0,("service_setup_stream_socket(path=%s) failed - %s\n",
+                        e->ep_description->endpoint, nt_errstr(status)));
+       }
+
+       return status;
+}
+
+static NTSTATUS dcesrv_add_ep_ncalrpc(struct dcesrv_context *dce_ctx, struct dcesrv_endpoint *e,
+                              struct event_context *event_ctx, const struct model_ops *model_ops)
+{
+       struct dcesrv_socket_context *dcesrv_sock;
+       uint16_t port = 1;
+       char *full_path;
+       NTSTATUS status;
+
+       if (!e->ep_description->endpoint) {
+               /* No identifier specified: use DEFAULT. 
+                * DO NOT hardcode this value anywhere else. Rather, specify 
+                * no endpoint and let the epmapper worry about it. */
+               e->ep_description->endpoint = talloc_strdup(dce_ctx, "DEFAULT");
+       }
+
+       full_path = talloc_asprintf(dce_ctx, "%s/%s", lp_ncalrpc_dir(global_loadparm), 
+                                   e->ep_description->endpoint);
+
+       dcesrv_sock = talloc(event_ctx, struct dcesrv_socket_context);
+       NT_STATUS_HAVE_NO_MEMORY(dcesrv_sock);
+
+       /* remember the endpoint of this socket */
+       dcesrv_sock->endpoint           = e;
+       dcesrv_sock->dcesrv_ctx         = talloc_reference(dcesrv_sock, dce_ctx);
+
+       status = stream_setup_socket(event_ctx, model_ops, &dcesrv_stream_ops, 
+                                    "unix", full_path, &port, dcesrv_sock);
+       if (!NT_STATUS_IS_OK(status)) {
+               DEBUG(0,("service_setup_stream_socket(identifier=%s,path=%s) failed - %s\n",
+                        e->ep_description->endpoint, full_path, nt_errstr(status)));
+       }
+       return status;
+}
+
+
+/*
+  add a socket address to the list of events, one event per dcerpc endpoint
+*/
+static NTSTATUS add_socket_rpc_pipe_iface(struct dcesrv_context *dce_ctx, struct dcesrv_endpoint *e,
+                                        struct event_context *event_ctx, const struct model_ops *model_ops)
+{
+       struct dcesrv_socket_context *dcesrv_sock;
+       NTSTATUS status;
+                       
+       if (e->ep_description->endpoint == NULL) {
+               DEBUG(0, ("Endpoint mandatory for named pipes\n"));
+               return NT_STATUS_INVALID_PARAMETER;
+       }
+
+       dcesrv_sock = talloc(event_ctx, struct dcesrv_socket_context);
+       NT_STATUS_HAVE_NO_MEMORY(dcesrv_sock);
+
+       /* remember the endpoint of this socket */
+       dcesrv_sock->endpoint           = e;
+       dcesrv_sock->dcesrv_ctx         = talloc_reference(dcesrv_sock, dce_ctx);
+
+       status = NT_STATUS_OK;
+#if 0
+
+       status = stream_setup_smb_pipe(event_ctx, model_ops, &dcesrv_stream_ops, 
+                                    e->ep_description->endpoint, dcesrv_sock);
+       if (!NT_STATUS_IS_OK(status)) {
+               DEBUG(0,("service_setup_stream_socket(path=%s) failed - %s\n", 
+                        e->ep_description->endpoint, nt_errstr(status)));
+       }
+#endif
+       return status;
+}
+
+static NTSTATUS dcesrv_add_ep_np(struct dcesrv_context *dce_ctx, struct dcesrv_endpoint *e,
+                                  struct event_context *event_ctx, const struct model_ops *model_ops)
+{
+       NTSTATUS status;
+
+       status = add_socket_rpc_pipe_iface(dce_ctx, e, event_ctx, model_ops);
+       NT_STATUS_NOT_OK_RETURN(status);
+
+       return status;
+}
+
+/*
+  add a socket address to the list of events, one event per dcerpc endpoint
+*/
+static NTSTATUS add_socket_rpc_tcp_iface(struct dcesrv_context *dce_ctx, struct dcesrv_endpoint *e,
+                                        struct event_context *event_ctx, const struct model_ops *model_ops,
+                                        const char *address)
+{
+       struct dcesrv_socket_context *dcesrv_sock;
+       uint16_t port = 0;
+       NTSTATUS status;
+                       
+       if (e->ep_description->endpoint) {
+               port = atoi(e->ep_description->endpoint);
+       }
+
+       dcesrv_sock = talloc(event_ctx, struct dcesrv_socket_context);
+       NT_STATUS_HAVE_NO_MEMORY(dcesrv_sock);
+
+       /* remember the endpoint of this socket */
+       dcesrv_sock->endpoint           = e;
+       dcesrv_sock->dcesrv_ctx         = talloc_reference(dcesrv_sock, dce_ctx);
+
+       status = stream_setup_socket(event_ctx, model_ops, &dcesrv_stream_ops, 
+                                    "ipv4", address, &port, dcesrv_sock);
+       if (!NT_STATUS_IS_OK(status)) {
+               DEBUG(0,("service_setup_stream_socket(address=%s,port=%u) failed - %s\n", 
+                        address, port, nt_errstr(status)));
+       }
+
+       if (e->ep_description->endpoint == NULL) {
+               e->ep_description->endpoint = talloc_asprintf(dce_ctx, "%d", port);
+       }
+
+       return status;
+}
+
+static NTSTATUS dcesrv_add_ep_tcp(struct dcesrv_context *dce_ctx, struct dcesrv_endpoint *e,
+                                  struct event_context *event_ctx, const struct model_ops *model_ops)
+{
+       NTSTATUS status;
+
+       /* Add TCP/IP sockets */
+       if (lp_interfaces(global_loadparm) && lp_bind_interfaces_only(global_loadparm)) {
+               int num_interfaces = iface_count();
+               int i;
+               for(i = 0; i < num_interfaces; i++) {
+                       const char *address = iface_n_ip(i);
+                       status = add_socket_rpc_tcp_iface(dce_ctx, e, event_ctx, model_ops, address);
+                       NT_STATUS_NOT_OK_RETURN(status);
+               }
+       } else {
+               status = add_socket_rpc_tcp_iface(dce_ctx, e, event_ctx, model_ops, 
+                                                 lp_socket_address(global_loadparm));
+               NT_STATUS_NOT_OK_RETURN(status);
+       }
+
+       return NT_STATUS_OK;
+}
+
+
+static NTSTATUS dcesrv_add_ep(struct dcesrv_context *dce_ctx, struct dcesrv_endpoint *e,
+                         struct event_context *event_ctx, const struct model_ops *model_ops)
+{
+       switch (e->ep_description->transport) {
+       case NCACN_UNIX_STREAM:
+               return dcesrv_add_ep_unix(dce_ctx, e, event_ctx, model_ops);
+
+       case NCALRPC:
+               return dcesrv_add_ep_ncalrpc(dce_ctx, e, event_ctx, model_ops);
+
+       case NCACN_IP_TCP:
+               return dcesrv_add_ep_tcp(dce_ctx, e, event_ctx, model_ops);
+
+       case NCACN_NP:
+               return dcesrv_add_ep_np(dce_ctx, e, event_ctx, model_ops);
+
+       default:
+               return NT_STATUS_NOT_SUPPORTED;
+       }
+}
+
+/*
+  open the dcerpc server sockets
+*/
+static void dcesrv_task_init(struct task_server *task)
+{
+       NTSTATUS status;
+       struct dcesrv_context *dce_ctx;
+       struct dcesrv_endpoint *e;
+
+       task_server_set_title(task, "task[dcesrv]");
+
+       status = dcesrv_init_context(task->event_ctx,
+                                    lp_dcerpc_endpoint_servers(global_loadparm),
+                                    &dce_ctx);
+       if (!NT_STATUS_IS_OK(status)) goto failed;
+
+       /* Make sure the directory for NCALRPC exists */
+       if (!directory_exist(lp_ncalrpc_dir(global_loadparm))) {
+               mkdir(lp_ncalrpc_dir(global_loadparm), 0755);
+       }
+
+       for (e=dce_ctx->endpoint_list;e;e=e->next) {
+               status = dcesrv_add_ep(dce_ctx, e, task->event_ctx, task->model_ops);
+               if (!NT_STATUS_IS_OK(status)) goto failed;
+       }
+
+       return;
+failed:
+       task_server_terminate(task, "Failed to startup dcerpc server task");    
+}
+
+/*
+  called on startup of the smb server service It's job is to start
+  listening on all configured sockets
+*/
+static NTSTATUS dcesrv_init(struct event_context *event_context, 
+                           const struct model_ops *model_ops)
+{      
+       return task_server_startup(event_context, model_ops, dcesrv_task_init);
+}
+
+NTSTATUS server_service_rpc_init(void)
+{
+       init_module_fn static_init[] = STATIC_dcerpc_server_MODULES;
+       init_module_fn *shared_init = load_samba_modules(NULL, global_loadparm, "dcerpc_server");
+
+       run_init_functions(static_init);
+       run_init_functions(shared_init);
+
+       talloc_free(shared_init);
+       
+       return register_server_service("rpc", dcesrv_init);
+}
+
+
index 2dca1782455c57fa58e4633fc29e8cad4aea3238..09409b15149984187a8e1ecf72998e9cfee65142 100644 (file)
 #include "ntptr/ntptr.h"
 #include "lib/socket/socket.h"
 #include "smbd/service_stream.h"
+#include "librpc/gen_ndr/ndr_spoolss_c.h"
+#include "auth/credentials/credentials.h"
+#include "param/param.h"
+
+enum spoolss_handle {
+       SPOOLSS_NOTIFY
+};
 
 #define SPOOLSS_BUFFER_UNION(fn,info,level) \
        ((info)?ndr_size_##fn(info, level, 0):0)
@@ -142,7 +149,7 @@ static WERROR dcesrv_spoolss_check_server_name(struct dcesrv_call_state *dce_cal
                                        TALLOC_CTX *mem_ctx,
                                        const char *server_name)
 {
-       BOOL ret;
+       bool ret;
        struct socket_address *myaddr;
        const char **aliases;
        int i;
@@ -167,10 +174,10 @@ static WERROR dcesrv_spoolss_check_server_name(struct dcesrv_call_state *dce_cal
        server_name += 2;
 
        /* NETBIOS NAME is ok */
-       ret = strequal(lp_netbios_name(), server_name);
+       ret = strequal(lp_netbios_name(global_loadparm), server_name);
        if (ret) return WERR_OK;
 
-       aliases = lp_netbios_aliases();
+       aliases = lp_netbios_aliases(global_loadparm);
 
        for (i=0; aliases && aliases[i]; i++) {
                if (strequal(aliases[i], server_name)) {
@@ -181,12 +188,12 @@ static WERROR dcesrv_spoolss_check_server_name(struct dcesrv_call_state *dce_cal
        /* DNS NAME is ok
         * TODO: we need to check if aliases are also ok
         */
-       if (lp_realm()) {
+       if (lp_realm(global_loadparm)) {
                char *str;
 
                str = talloc_asprintf(mem_ctx, "%s.%s",
-                                               lp_netbios_name(),
-                                               lp_realm());
+                                               lp_netbios_name(global_loadparm),
+                                               lp_realm(global_loadparm));
                W_ERROR_HAVE_NO_MEMORY(str);
 
                ret = strequal(str, server_name);
@@ -209,7 +216,7 @@ static NTSTATUS dcerpc_spoolss_bind(struct dcesrv_call_state *dce_call, const st
        NTSTATUS status;
        struct ntptr_context *ntptr;
 
-       status = ntptr_init_context(dce_call->context, lp_ntptr_providor(), &ntptr);
+       status = ntptr_init_context(dce_call->context, lp_ntptr_providor(global_loadparm), &ntptr);
        NT_STATUS_NOT_OK_RETURN(status);
 
        dce_call->context->private = ntptr;
@@ -1036,7 +1043,16 @@ static WERROR dcesrv_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct
 static WERROR dcesrv_spoolss_ReplyOpenPrinter(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
                       struct spoolss_ReplyOpenPrinter *r)
 {
-       DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
+       struct dcesrv_handle *handle;
+
+       handle = dcesrv_handle_new(dce_call->context, SPOOLSS_NOTIFY);
+       W_ERROR_HAVE_NO_MEMORY(handle);
+
+       /* For now, just return a handle */
+
+       *r->out.handle = handle->wire_handle;
+
+       return WERR_OK;
 }
 
 
@@ -1056,9 +1072,16 @@ static WERROR dcesrv_spoolss_RouterReplyPrinter(struct dcesrv_call_state *dce_ca
 static WERROR dcesrv_spoolss_ReplyClosePrinter(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
                       struct spoolss_ReplyClosePrinter *r)
 {
-       DCESRV_FAULT(DCERPC_FAULT_OP_RNG_ERROR);
-}
+       struct dcesrv_handle *handle;
+       
+       DCESRV_PULL_HANDLE_WERR(handle, r->in.handle, SPOOLSS_NOTIFY);
 
+       talloc_free(handle);
+
+       ZERO_STRUCTP(r->out.handle);
+
+       return WERR_OK;
+}
 
 /* 
   spoolss_AddPortEx 
@@ -1106,11 +1129,56 @@ static WERROR dcesrv_spoolss_ResetPrinterEx(struct dcesrv_call_state *dce_call,
 static WERROR dcesrv_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
                       struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
 {
+       struct dcerpc_pipe *p;
+       struct dcerpc_binding *binding;
+       NTSTATUS status;
+       struct spoolss_ReplyOpenPrinter rop;
+       struct cli_credentials *creds;
+       struct policy_handle notify_handle;
+
+       DEBUG(2, ("Received RFFPCNex from %s\n", r->in.str));
+
        /*
-        * TODO: for now just return ok,
+        * TODO: for now just open a connection to the client and drop it again
         *       to keep the w2k3 PrintServer 
         *       happy to allow to open the Add Printer GUI
+        *       and the torture suite passing
         */
+
+       binding = talloc_zero(mem_ctx, struct dcerpc_binding);
+
+       binding->transport = NCACN_NP; 
+       if (strncmp(r->in.str, "\\\\", 2))
+               return WERR_INVALID_COMPUTERNAME;
+       binding->host = r->in.str+2;
+
+       creds = cli_credentials_init_anon(mem_ctx); /* FIXME: Use machine credentials instead ? */
+
+       status = dcerpc_pipe_connect_b(mem_ctx, &p, binding, &ndr_table_spoolss, 
+                                 creds, NULL);
+
+       if (NT_STATUS_IS_ERR(status)) {
+               DEBUG(0, ("unable to call back to %s\n", r->in.str));
+               return WERR_SERVER_UNAVAILABLE;
+       }
+
+       ZERO_STRUCT(rop);
+       rop.in.server_name = lp_netbios_name(global_loadparm);
+       W_ERROR_HAVE_NO_MEMORY(rop.in.server_name);
+       rop.in.printer_local = 0;
+       rop.in.type = REG_NONE;
+       rop.in.unknown1 = 0;
+       rop.in.unknown2 = 0;
+       rop.out.handle = &notify_handle;
+
+       status = dcerpc_spoolss_ReplyOpenPrinter(p, mem_ctx, &rop);
+       if (NT_STATUS_IS_ERR(status)) {
+               DEBUG(0, ("unable to open remote printer %s\n", r->in.str));
+               return WERR_SERVER_UNAVAILABLE;
+       }
+
+       talloc_free(p);
+
        return WERR_OK;
 }
 
index c0e1a0d2b4924744ff26ea54875f9b0aeb6e0abe..aee88d915ccf927d9b46465587468945d3aa5b19 100644 (file)
@@ -28,6 +28,7 @@
 #include "libcli/security/security.h"
 #include "system/time.h"
 #include "rpc_server/srvsvc/proto.h"
+#include "param/param.h"
 
 #define SRVSVC_CHECK_ADMIN_ACCESS do { \
        struct security_token *t = dce_call->conn->auth_state.session_info->security_token; \
@@ -1498,7 +1499,7 @@ static WERROR dcesrv_srvsvc_NetSrvGetInfo(struct dcesrv_call_state *dce_call, TA
                info101->version_major  = dcesrv_common_get_version_major(mem_ctx, dce_ctx);
                info101->version_minor  = dcesrv_common_get_version_minor(mem_ctx, dce_ctx);
                info101->server_type    = dcesrv_common_get_server_type(mem_ctx, dce_ctx);
-               info101->comment        = talloc_strdup(mem_ctx, lp_serverstring());
+               info101->comment        = talloc_strdup(mem_ctx, lp_serverstring(global_loadparm));
                W_ERROR_HAVE_NO_MEMORY(info101->comment);
 
                r->out.info.info101 = info101;
@@ -1518,7 +1519,7 @@ static WERROR dcesrv_srvsvc_NetSrvGetInfo(struct dcesrv_call_state *dce_call, TA
                info102->version_major  = dcesrv_common_get_version_major(mem_ctx, dce_ctx);
                info102->version_minor  = dcesrv_common_get_version_minor(mem_ctx, dce_ctx);
                info102->server_type    = dcesrv_common_get_server_type(mem_ctx, dce_ctx);
-               info102->comment        = talloc_strdup(mem_ctx, lp_serverstring());
+               info102->comment        = talloc_strdup(mem_ctx, lp_serverstring(global_loadparm));
                W_ERROR_HAVE_NO_MEMORY(info102->comment);
 
                info102->users          = dcesrv_common_get_users(mem_ctx, dce_ctx);
index d3d9977c124b55455b20cceb1880a20b22021c75..3aea8e62c11e71ecb7a92679cee414d4424a83b4 100644 (file)
@@ -1,20 +1,20 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
 
    endpoint server for the winreg pipe
 
    Copyright (C) Jelmer Vernooij 2004
-   
+
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program 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 General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 enum handle_types { HTYPE_REGVAL, HTYPE_REGKEY };
 
-static NTSTATUS dcerpc_winreg_bind(struct dcesrv_call_state *dce_call, 
-                                                                  const struct dcesrv_interface *iface)
+static NTSTATUS dcerpc_winreg_bind(struct dcesrv_call_state *dce_call,
+                                  const struct dcesrv_interface *iface)
 {
        struct registry_context *ctx;
        WERROR err;
 
        err = reg_open_samba(dce_call->context,
-                            &ctx, dce_call->conn->auth_state.session_info, NULL);
+                            &ctx, dce_call->conn->auth_state.session_info,
+                            NULL);
 
        if (!W_ERROR_IS_OK(err)) {
                DEBUG(0, ("Error opening registry: %s\n", win_errstr(err)));
@@ -49,24 +50,25 @@ static NTSTATUS dcerpc_winreg_bind(struct dcesrv_call_state *dce_call,
 
 #define DCESRV_INTERFACE_WINREG_BIND dcerpc_winreg_bind
 
-static WERROR dcesrv_winreg_openhive(struct dcesrv_call_state *dce_call, 
-                                                                        TALLOC_CTX *mem_ctx, uint32_t hkey, 
-                                                                        struct policy_handle **outh)
+static WERROR dcesrv_winreg_openhive(struct dcesrv_call_state *dce_call,
+                                    TALLOC_CTX *mem_ctx, uint32_t hkey,
+                                    struct policy_handle **outh)
 {
        struct registry_context *ctx = dce_call->context->private;
-       struct dcesrv_handle *h; 
+       struct dcesrv_handle *h;
        WERROR error;
 
-       h = dcesrv_handle_new(dce_call->context, HTYPE_REGKEY); 
+       h = dcesrv_handle_new(dce_call->context, HTYPE_REGKEY);
 
-       error = reg_get_predefined_key(ctx, hkey, (struct registry_key **)&h->data);
+       error = reg_get_predefined_key(ctx, hkey,
+                                      (struct registry_key **)&h->data);
        if (!W_ERROR_IS_OK(error)) {
                return error;
        }
-       
-       *outh = &h->wire_handle; 
 
-       return error; 
+       *outh = &h->wire_handle;
+
+       return error;
 }
 
 #define func_winreg_OpenHive(k,n) static WERROR dcesrv_winreg_Open ## k (struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct winreg_Open ## k *r) \
@@ -84,14 +86,14 @@ func_winreg_OpenHive(HKDD,HKEY_DYN_DATA)
 func_winreg_OpenHive(HKPT,HKEY_PERFORMANCE_TEXT)
 func_winreg_OpenHive(HKPN,HKEY_PERFORMANCE_NLSTEXT)
 
-/* 
-  winreg_CloseKey 
+/*
+  winreg_CloseKey
 */
-static WERROR dcesrv_winreg_CloseKey(struct dcesrv_call_state *dce_call, 
-                                                                        TALLOC_CTX *mem_ctx,
-                                                                        struct winreg_CloseKey *r)
+static WERROR dcesrv_winreg_CloseKey(struct dcesrv_call_state *dce_call,
+                                    TALLOC_CTX *mem_ctx,
+                                    struct winreg_CloseKey *r)
 {
-       struct dcesrv_handle *h; 
+       struct dcesrv_handle *h;
 
        DCESRV_PULL_HANDLE_FAULT(h, r->in.handle, HTYPE_REGKEY);
 
@@ -102,19 +104,19 @@ static WERROR dcesrv_winreg_CloseKey(struct dcesrv_call_state *dce_call,
        return WERR_OK;
 }
 
-/* 
-  winreg_CreateKey 
+/*
+  winreg_CreateKey
 */
-static WERROR dcesrv_winreg_CreateKey(struct dcesrv_call_state *dce_call, 
-                                                                         TALLOC_CTX *mem_ctx, 
-                                                                         struct winreg_CreateKey *r)
+static WERROR dcesrv_winreg_CreateKey(struct dcesrv_call_state *dce_call,
+                                     TALLOC_CTX *mem_ctx,
+                                     struct winreg_CreateKey *r)
 {
        struct dcesrv_handle *h, *newh;
        WERROR error;
        struct security_descriptor sd;
 
        DCESRV_PULL_HANDLE_FAULT(h, r->in.handle, HTYPE_REGKEY);
-       
+
        newh = dcesrv_handle_new(dce_call->context, HTYPE_REGKEY);
 
        /* the security descriptor is optional */
@@ -126,16 +128,16 @@ static WERROR dcesrv_winreg_CreateKey(struct dcesrv_call_state *dce_call,
                if (sdblob.data == NULL) {
                        return WERR_INVALID_PARAM;
                }
-               status = ndr_pull_struct_blob_all(&sdblob, mem_ctx, &sd, 
+               status = ndr_pull_struct_blob_all(&sdblob, mem_ctx, &sd,
                                                  (ndr_pull_flags_fn_t)ndr_pull_security_descriptor);
                if (!NT_STATUS_IS_OK(status)) {
                        return WERR_INVALID_PARAM;
                }
        }
 
-       error = reg_key_add_name(newh, (struct registry_key *)h->data, 
-                                                        r->in.name.name, NULL, r->in.secdesc?&sd:NULL, 
-                                                        (struct registry_key **)&newh->data);
+       error = reg_key_add_name(newh, (struct registry_key *)h->data,
+                                r->in.name.name, NULL, r->in.secdesc?&sd:NULL,
+                                (struct registry_key **)&newh->data);
        if (W_ERROR_IS_OK(error)) {
                r->out.new_handle = &newh->wire_handle;
        } else {
@@ -146,27 +148,27 @@ static WERROR dcesrv_winreg_CreateKey(struct dcesrv_call_state *dce_call,
 }
 
 
-/* 
-  winreg_DeleteKey 
+/*
+  winreg_DeleteKey
 */
-static WERROR dcesrv_winreg_DeleteKey(struct dcesrv_call_state *dce_call, 
-                                                                         TALLOC_CTX *mem_ctx,
-                                                                         struct winreg_DeleteKey *r)
+static WERROR dcesrv_winreg_DeleteKey(struct dcesrv_call_state *dce_call,
+                                     TALLOC_CTX *mem_ctx,
+                                     struct winreg_DeleteKey *r)
 {
        struct dcesrv_handle *h;
 
        DCESRV_PULL_HANDLE_FAULT(h, r->in.handle, HTYPE_REGKEY);
-       
+
        return reg_key_del((struct registry_key *)h->data, r->in.key.name);
 }
 
 
-/* 
-  winreg_DeleteValue 
+/*
+  winreg_DeleteValue
 */
-static WERROR dcesrv_winreg_DeleteValue(struct dcesrv_call_state *dce_call, 
-                                                                               TALLOC_CTX *mem_ctx,
-                                                                               struct winreg_DeleteValue *r)
+static WERROR dcesrv_winreg_DeleteValue(struct dcesrv_call_state *dce_call,
+                                       TALLOC_CTX *mem_ctx,
+                                       struct winreg_DeleteValue *r)
 {
        struct dcesrv_handle *h;
        struct registry_key *key;
@@ -174,17 +176,17 @@ static WERROR dcesrv_winreg_DeleteValue(struct dcesrv_call_state *dce_call,
        DCESRV_PULL_HANDLE_FAULT(h, r->in.handle, HTYPE_REGKEY);
 
        key = h->data;
-       
+
        return reg_del_value(key, r->in.value.name);
 }
 
 
-/* 
-  winreg_EnumKey 
+/*
+  winreg_EnumKey
 */
-static WERROR dcesrv_winreg_EnumKey(struct dcesrv_call_state *dce_call, 
-                                                                       TALLOC_CTX *mem_ctx,
-                                                                       struct winreg_EnumKey *r)
+static WERROR dcesrv_winreg_EnumKey(struct dcesrv_call_state *dce_call,
+                                   TALLOC_CTX *mem_ctx,
+                                   struct winreg_EnumKey *r)
 {
        struct dcesrv_handle *h;
        const char *name;
@@ -192,9 +194,10 @@ static WERROR dcesrv_winreg_EnumKey(struct dcesrv_call_state *dce_call,
 
        DCESRV_PULL_HANDLE_FAULT(h, r->in.handle, HTYPE_REGKEY);
 
-       r->out.result = reg_key_get_subkey_by_index(mem_ctx, 
-                                               (struct registry_key *)h->data, r->in.enum_index, 
-                                               &name, NULL, &last_mod);
+       r->out.result = reg_key_get_subkey_by_index(mem_ctx,
+                                                   (struct registry_key *)h->data,
+                                                   r->in.enum_index,
+                                                   &name, NULL, &last_mod);
 
        if (W_ERROR_IS_OK(r->out.result)) {
                if (2*strlen_m_term(name) > r->in.name->size) {
@@ -207,17 +210,17 @@ static WERROR dcesrv_winreg_EnumKey(struct dcesrv_call_state *dce_call,
                        r->out.last_changed_time = &last_mod;
                }
        }
-       
+
        return r->out.result;
 }
 
 
-/* 
-  winreg_EnumValue 
+/*
+  winreg_EnumValue
 */
-static WERROR dcesrv_winreg_EnumValue(struct dcesrv_call_state *dce_call, 
-                                                                         TALLOC_CTX *mem_ctx,
-                                                                         struct winreg_EnumValue *r)
+static WERROR dcesrv_winreg_EnumValue(struct dcesrv_call_state *dce_call,
+                                     TALLOC_CTX *mem_ctx,
+                                     struct winreg_EnumValue *r)
 {
        struct dcesrv_handle *h;
        struct registry_key *key;
@@ -230,9 +233,9 @@ static WERROR dcesrv_winreg_EnumValue(struct dcesrv_call_state *dce_call,
 
        key = h->data;
 
-       result = reg_key_get_value_by_index(mem_ctx, key, r->in.enum_index, 
-                                                                               &data_name,
-                                                                               &data_type, &data);
+       result = reg_key_get_value_by_index(mem_ctx, key, r->in.enum_index,
+                                           &data_name,
+                                           &data_type, &data);
        if (!W_ERROR_IS_OK(result)) {
                return result;
        }
@@ -246,14 +249,14 @@ static WERROR dcesrv_winreg_EnumValue(struct dcesrv_call_state *dce_call,
 
        /* check the client has enough room for the value */
        if (r->in.value != NULL &&
-           r->in.size != NULL && 
+           r->in.size != NULL &&
            data.length > *r->in.size) {
                return WERR_MORE_DATA;
        }
-       
+
        /* and enough room for the name */
        if (r->in.name->size < 2*strlen_m_term(data_name)) {
-               return WERR_MORE_DATA;          
+               return WERR_MORE_DATA;
        }
 
        r->out.name->name = data_name;
@@ -269,17 +272,17 @@ static WERROR dcesrv_winreg_EnumValue(struct dcesrv_call_state *dce_call,
                *r->out.size = data.length;
                r->out.length = r->out.size;
        }
-       
+
        return WERR_OK;
 }
 
 
-/* 
-  winreg_FlushKey 
+/*
+  winreg_FlushKey
 */
-static WERROR dcesrv_winreg_FlushKey(struct dcesrv_call_state *dce_call, 
-                                                                        TALLOC_CTX *mem_ctx, 
-                                                                        struct winreg_FlushKey *r)
+static WERROR dcesrv_winreg_FlushKey(struct dcesrv_call_state *dce_call,
+                                    TALLOC_CTX *mem_ctx,
+                                    struct winreg_FlushKey *r)
 {
        struct dcesrv_handle *h;
 
@@ -289,12 +292,12 @@ static WERROR dcesrv_winreg_FlushKey(struct dcesrv_call_state *dce_call,
 }
 
 
-/* 
-  winreg_GetKeySecurity 
+/*
+  winreg_GetKeySecurity
 */
-static WERROR dcesrv_winreg_GetKeySecurity(struct dcesrv_call_state *dce_call, 
-                                                                                  TALLOC_CTX *mem_ctx, 
-                                                                                  struct winreg_GetKeySecurity *r)
+static WERROR dcesrv_winreg_GetKeySecurity(struct dcesrv_call_state *dce_call,
+                                          TALLOC_CTX *mem_ctx,
+                                          struct winreg_GetKeySecurity *r)
 {
        struct dcesrv_handle *h;
 
@@ -304,34 +307,34 @@ static WERROR dcesrv_winreg_GetKeySecurity(struct dcesrv_call_state *dce_call,
 }
 
 
-/* 
-  winreg_LoadKey 
+/*
+  winreg_LoadKey
 */
-static WERROR dcesrv_winreg_LoadKey(struct dcesrv_call_state *dce_call, 
-                                                                       TALLOC_CTX *mem_ctx, 
-                                                                       struct winreg_LoadKey *r)
+static WERROR dcesrv_winreg_LoadKey(struct dcesrv_call_state *dce_call,
+                                   TALLOC_CTX *mem_ctx,
+                                   struct winreg_LoadKey *r)
 {
        return WERR_NOT_SUPPORTED;
 }
 
 
-/* 
-  winreg_NotifyChangeKeyValue 
+/*
+  winreg_NotifyChangeKeyValue
 */
-static WERROR dcesrv_winreg_NotifyChangeKeyValue(
-                                       struct dcesrv_call_state *dce_call, 
-                                       TALLOC_CTX *mem_ctx, struct winreg_NotifyChangeKeyValue *r)
+static WERROR dcesrv_winreg_NotifyChangeKeyValue(struct dcesrv_call_state *dce_call,
+                                                TALLOC_CTX *mem_ctx,
+                                                struct winreg_NotifyChangeKeyValue *r)
 {
        return WERR_NOT_SUPPORTED;
 }
 
 
-/* 
-  winreg_OpenKey 
+/*
+  winreg_OpenKey
 */
-static WERROR dcesrv_winreg_OpenKey(struct dcesrv_call_state *dce_call, 
-                                                                       TALLOC_CTX *mem_ctx,
-                                                                       struct winreg_OpenKey *r)
+static WERROR dcesrv_winreg_OpenKey(struct dcesrv_call_state *dce_call,
+                                   TALLOC_CTX *mem_ctx,
+                                   struct winreg_OpenKey *r)
 {
        struct dcesrv_handle *h, *newh;
        WERROR result;
@@ -343,26 +346,27 @@ static WERROR dcesrv_winreg_OpenKey(struct dcesrv_call_state *dce_call,
                result = WERR_OK;
        } else {
                newh = dcesrv_handle_new(dce_call->context, HTYPE_REGKEY);
-               result = reg_open_key(newh, (struct registry_key *)h->data, 
-                                     r->in.keyname.name, (struct registry_key **)&newh->data);
+               result = reg_open_key(newh, (struct registry_key *)h->data,
+                                     r->in.keyname.name,
+                                     (struct registry_key **)&newh->data);
        }
-       
+
        if (W_ERROR_IS_OK(result)) {
-               r->out.handle = &newh->wire_handle; 
+               r->out.handle = &newh->wire_handle;
        } else {
                talloc_free(newh);
        }
-       
+
        return result;
 }
 
 
-/* 
-  winreg_QueryInfoKey 
+/*
+  winreg_QueryInfoKey
 */
-static WERROR dcesrv_winreg_QueryInfoKey(struct dcesrv_call_state *dce_call, 
-                                                                                TALLOC_CTX *mem_ctx,
-                                                                                struct winreg_QueryInfoKey *r)
+static WERROR dcesrv_winreg_QueryInfoKey(struct dcesrv_call_state *dce_call,
+                                        TALLOC_CTX *mem_ctx,
+                                        struct winreg_QueryInfoKey *r)
 {
        struct dcesrv_handle *h;
        struct registry_key *k;
@@ -373,8 +377,8 @@ static WERROR dcesrv_winreg_QueryInfoKey(struct dcesrv_call_state *dce_call,
 
        k = h->data;
 
-       ret = reg_key_get_info(mem_ctx, k, &classname, r->out.num_subkeys, 
-                                                  r->out.num_values, r->out.last_changed_time);
+       ret = reg_key_get_info(mem_ctx, k, &classname, r->out.num_subkeys,
+                              r->out.num_values, r->out.last_changed_time);
 
        if (r->out.classname != NULL)
                r->out.classname->name = classname;
@@ -383,12 +387,12 @@ static WERROR dcesrv_winreg_QueryInfoKey(struct dcesrv_call_state *dce_call,
 }
 
 
-/* 
-  winreg_QueryValue 
+/*
+  winreg_QueryValue
 */
-static WERROR dcesrv_winreg_QueryValue(struct dcesrv_call_state *dce_call, 
-                                                                          TALLOC_CTX *mem_ctx,
-                                                                          struct winreg_QueryValue *r)
+static WERROR dcesrv_winreg_QueryValue(struct dcesrv_call_state *dce_call,
+                                      TALLOC_CTX *mem_ctx,
+                                      struct winreg_QueryValue *r)
 {
        struct dcesrv_handle *h;
        struct registry_key *key;
@@ -399,11 +403,11 @@ static WERROR dcesrv_winreg_QueryValue(struct dcesrv_call_state *dce_call,
        DCESRV_PULL_HANDLE_FAULT(h, r->in.handle, HTYPE_REGKEY);
 
        key = h->data;
-       
-       result = reg_key_get_value_by_name(mem_ctx, key, r->in.value_name.name, 
-                                                                          &value_type, &value_data);
 
-       if (!W_ERROR_IS_OK(result)) { 
+       result = reg_key_get_value_by_name(mem_ctx, key, r->in.value_name.name,
+                                          &value_type, &value_data);
+
+       if (!W_ERROR_IS_OK(result)) {
                return result;
        }
 
@@ -430,56 +434,56 @@ static WERROR dcesrv_winreg_QueryValue(struct dcesrv_call_state *dce_call,
 }
 
 
-/* 
-  winreg_ReplaceKey 
+/*
+  winreg_ReplaceKey
 */
-static WERROR dcesrv_winreg_ReplaceKey(struct dcesrv_call_state *dce_call, 
-                                                                          TALLOC_CTX *mem_ctx,
-                                                                          struct winreg_ReplaceKey *r)
+static WERROR dcesrv_winreg_ReplaceKey(struct dcesrv_call_state *dce_call,
+                                      TALLOC_CTX *mem_ctx,
+                                      struct winreg_ReplaceKey *r)
 {
        return WERR_NOT_SUPPORTED;
 }
 
 
-/* 
-  winreg_RestoreKey 
+/*
+  winreg_RestoreKey
 */
-static WERROR dcesrv_winreg_RestoreKey(struct dcesrv_call_state *dce_call, 
-                                                                          TALLOC_CTX *mem_ctx, 
-                                                                          struct winreg_RestoreKey *r)
+static WERROR dcesrv_winreg_RestoreKey(struct dcesrv_call_state *dce_call,
+                                      TALLOC_CTX *mem_ctx,
+                                      struct winreg_RestoreKey *r)
 {
        return WERR_NOT_SUPPORTED;
 }
 
 
-/* 
-  winreg_SaveKey 
+/*
+  winreg_SaveKey
 */
-static WERROR dcesrv_winreg_SaveKey(struct dcesrv_call_state *dce_call, 
-                                                                       TALLOC_CTX *mem_ctx, 
-                                                                       struct winreg_SaveKey *r)
+static WERROR dcesrv_winreg_SaveKey(struct dcesrv_call_state *dce_call,
+                                   TALLOC_CTX *mem_ctx,
+                                   struct winreg_SaveKey *r)
 {
        return WERR_NOT_SUPPORTED;
 }
 
 
-/* 
-  winreg_SetKeySecurity 
+/*
+  winreg_SetKeySecurity
 */
-static WERROR dcesrv_winreg_SetKeySecurity(struct dcesrv_call_state *dce_call, 
-                                                                                  TALLOC_CTX *mem_ctx, 
-                                                                                  struct winreg_SetKeySecurity *r)
+static WERROR dcesrv_winreg_SetKeySecurity(struct dcesrv_call_state *dce_call,
+                                          TALLOC_CTX *mem_ctx,
+                                          struct winreg_SetKeySecurity *r)
 {
        return WERR_NOT_SUPPORTED;
 }
 
 
-/* 
-  winreg_SetValue 
+/*
+  winreg_SetValue
 */
-static WERROR dcesrv_winreg_SetValue(struct dcesrv_call_state *dce_call, 
-                                                                        TALLOC_CTX *mem_ctx, 
-                                                                        struct winreg_SetValue *r)
+static WERROR dcesrv_winreg_SetValue(struct dcesrv_call_state *dce_call,
+                                    TALLOC_CTX *mem_ctx,
+                                    struct winreg_SetValue *r)
 {
        struct dcesrv_handle *h;
        struct registry_key *key;
@@ -489,7 +493,7 @@ static WERROR dcesrv_winreg_SetValue(struct dcesrv_call_state *dce_call,
        DCESRV_PULL_HANDLE_FAULT(h, r->in.handle, HTYPE_REGKEY);
 
        key = h->data;
-       
+
        data.data = r->in.data;
        data.length = r->in.size;
        result = reg_val_set(key, r->in.name.name, r->in.type, data);
@@ -498,45 +502,45 @@ static WERROR dcesrv_winreg_SetValue(struct dcesrv_call_state *dce_call,
 }
 
 
-/* 
-  winreg_UnLoadKey 
+/*
+  winreg_UnLoadKey
 */
-static WERROR dcesrv_winreg_UnLoadKey(struct dcesrv_call_state *dce_call, 
-                                                                         TALLOC_CTX *mem_ctx, 
-                                                                         struct winreg_UnLoadKey *r)
+static WERROR dcesrv_winreg_UnLoadKey(struct dcesrv_call_state *dce_call,
+                                     TALLOC_CTX *mem_ctx,
+                                     struct winreg_UnLoadKey *r)
 {
        return WERR_NOT_SUPPORTED;
 }
 
 
-/* 
-  winreg_InitiateSystemShutdown 
+/*
+  winreg_InitiateSystemShutdown
 */
-static WERROR dcesrv_winreg_InitiateSystemShutdown(
-                                               struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
-                                               struct winreg_InitiateSystemShutdown *r)
+static WERROR dcesrv_winreg_InitiateSystemShutdown(struct dcesrv_call_state *dce_call,
+                                                  TALLOC_CTX *mem_ctx,
+                                                  struct winreg_InitiateSystemShutdown *r)
 {
        return WERR_NOT_SUPPORTED;
 }
 
 
-/* 
-  winreg_AbortSystemShutdown 
+/*
+  winreg_AbortSystemShutdown
 */
-static WERROR dcesrv_winreg_AbortSystemShutdown(
-               struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
-               struct winreg_AbortSystemShutdown *r)
+static WERROR dcesrv_winreg_AbortSystemShutdown(struct dcesrv_call_state *dce_call,
+                                               TALLOC_CTX *mem_ctx,
+                                               struct winreg_AbortSystemShutdown *r)
 {
        return WERR_NOT_SUPPORTED;
 }
 
 
-/* 
-  winreg_GetVersion 
+/*
+  winreg_GetVersion
 */
-static WERROR dcesrv_winreg_GetVersion(struct dcesrv_call_state *dce_call, 
-                                                                          TALLOC_CTX *mem_ctx, 
-                                                                          struct winreg_GetVersion *r)
+static WERROR dcesrv_winreg_GetVersion(struct dcesrv_call_state *dce_call,
+                                      TALLOC_CTX *mem_ctx,
+                                      struct winreg_GetVersion *r)
 {
        struct dcesrv_handle *h;
 
@@ -551,45 +555,45 @@ static WERROR dcesrv_winreg_GetVersion(struct dcesrv_call_state *dce_call,
 }
 
 
-/* 
-  winreg_QueryMultipleValues 
+/*
+  winreg_QueryMultipleValues
 */
-static WERROR dcesrv_winreg_QueryMultipleValues(
-       struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
-       struct winreg_QueryMultipleValues *r)
+static WERROR dcesrv_winreg_QueryMultipleValues(struct dcesrv_call_state *dce_call,
+                                               TALLOC_CTX *mem_ctx,
+                                               struct winreg_QueryMultipleValues *r)
 {
        return WERR_NOT_SUPPORTED;
 }
 
 
-/* 
-  winreg_InitiateSystemShutdownEx 
+/*
+  winreg_InitiateSystemShutdownEx
 */
-static WERROR dcesrv_winreg_InitiateSystemShutdownEx(
-               struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
-               struct winreg_InitiateSystemShutdownEx *r)
+static WERROR dcesrv_winreg_InitiateSystemShutdownEx(struct dcesrv_call_state *dce_call,
+                                                    TALLOC_CTX *mem_ctx,
+                                                    struct winreg_InitiateSystemShutdownEx *r)
 {
        return WERR_NOT_SUPPORTED;
 }
 
 
-/* 
-  winreg_SaveKeyEx 
+/*
+  winreg_SaveKeyEx
 */
-static WERROR dcesrv_winreg_SaveKeyEx(struct dcesrv_call_state *dce_call, 
-                                                                         TALLOC_CTX *mem_ctx,
-                                                                         struct winreg_SaveKeyEx *r)
+static WERROR dcesrv_winreg_SaveKeyEx(struct dcesrv_call_state *dce_call,
+                                     TALLOC_CTX *mem_ctx,
+                                     struct winreg_SaveKeyEx *r)
 {
        return WERR_NOT_SUPPORTED;
 }
 
 
-/* 
-  winreg_QueryMultipleValues2 
+/*
+  winreg_QueryMultipleValues2
 */
-static WERROR dcesrv_winreg_QueryMultipleValues2(
-               struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx,
-               struct winreg_QueryMultipleValues2 *r)
+static WERROR dcesrv_winreg_QueryMultipleValues2(struct dcesrv_call_state *dce_call,
+                                                TALLOC_CTX *mem_ctx,
+                                                struct winreg_QueryMultipleValues2 *r)
 {
        return WERR_NOT_SUPPORTED;
 }
index 02d024726eae9a2c3e97053bedd4b300555bce19..d2a227a1dccab093f99580ace01178402c46ce26 100644 (file)
@@ -13,3 +13,18 @@ RPC-HANDLES.*/mixed-shared
 RPC-EPMAPPER.*/Insert
 RPC-EPMAPPER.*/InqObject
 RPC-DFS.*
+RPC-DRSUAPI.*
+RPC-LSALOOKUP
+RPC-CRACKNAMES
+RPC-NETLOGON.*/LogonUasLogon
+RPC-NETLOGON.*/LogonUasLogoff
+RPC-NETLOGON.*/DatabaseSync
+RPC-NETLOGON.*/DatabaseSync2
+RPC-NETLOGON.*/GetDcName
+RPC-NETLOGON.*/LogonControl
+RPC-NETLOGON.*/LogonControl2
+RPC-NETLOGON.*/GetAnyDCName
+RPC-NETLOGON.*/DsrEnumerateDomainTrusts
+RPC-NETLOGON.*/DsrGetDcSiteCoverageW
+BASE-CHARSET.*/Testing partial surrogate
+.*NET-API-DELSHARE.*                           # DelShare isn't implemented yet
index 4a09985406f12b3d7abfba53d3d33232106e13f2..f273c4c51c99c15ae9874e78f634f3013c1a5d60 100644 (file)
@@ -1,21 +1,16 @@
-BASE-CHARSET
 BASE-DEFER_OPEN
 BASE-DELAYWRITE
 RAW-COMPOSITE
 RAW-OPLOCK
 BASE-IOMETER
-BASE-SAMBA3ERROR
 BASE-CASETABLE
 BASE-NTTRANS
-BASE-BENCH-HOLDCON
+.*BASE-BENCH-HOLDCON.*                         # Very slow
 BASE-SCAN-MAXFID
 RAW-BENCH-OPLOCK
 RAW-HOLD-OPLOCK
 RAW-PING-PONG
-RAW-SAMBA3HIDE
-RAW-SAMBA3CLOSEERR
-RAW-SAMBA3CHECKFSP
-RAW-SAMBA3BADPATH
+RPC-SAMR_ACCESSMASK
 RAW-SCAN-EAMAX
 RAW-QFILEINFO-IPC
 BASE-UTABLE
@@ -26,10 +21,8 @@ ntvfs/cifs BASE-CHARSET
 ntvfs/cifs BASE-DEFER_OPEN
 ntvfs/cifs BASE-DELAYWRITE
 ntvfs/cifs BASE-IOMETER
-ntvfs/cifs BASE-SAMBA3ERROR
 ntvfs/cifs BASE-CASETABLE
 ntvfs/cifs BASE-NTTRANS
-ntvfs/cifs BASE-BENCH-HOLDCON
 ntvfs/cifs BASE-SCAN-MAXFID
 ntvfs/cifs BASE-UTABLE
 ntvfs/cifs BASE-SMB
@@ -37,14 +30,20 @@ ntvfs/cifs RAW-COMPOSITE
 ntvfs/cifs RAW-OPLOCK
 ntvfs/cifs RAW-NOTIFY
 ntvfs/cifs RAW-BENCH-OPLOCK
-ntvfs/cifs RAW-SAMBA3HIDE
-ntvfs/cifs RAW-SAMBA3CLOSEERR
-ntvfs/cifs RAW-SAMBA3CHECKFSP
-ntvfs/cifs RAW-SAMBA3BADPATH
 ntvfs/cifs RAW-SCAN-EAMAX
 ntvfs/cifs RAW-CONTEXT
 ntvfs/cifs RAW-QFILEINFO-IPC
 RPC-DSSYNC
 RPC-SAMSYNC
-LDAP-UPTODATEVECTOR
-RAW-SAMBA3POSIXTIMEDLOCK
+LDAP-UPTODATEVECTOR                                    # Segfaults
+RPC-SCANNER                                                    # Very slow
+RPC-REMACT                                                     # Not provided by Samba 4
+RPC-OXIDRESOLVE                                                # Not provided by Samba 4
+RPC-EVENTLOG                                           # Not provided by Samba 4
+RPC-INITSHUTDOWN                                       # Not provided by Samba 4
+RPC-SVCCTL                                                     # Not provided by Samba 4
+RPC-ATSVC                                                      # Not provided by Samba 4
+.*SAMBA3.*                                                     # Samba3-specific test
+^NET-DOMOPEN$                                          # Hangs for some reason
+^NET-API-BECOME-DC$                                    # Fails
+WINBIND                                                        # FIXME: This should not be skipped
index bfefce1ac998a414ff0c3906435a3b8146e77480..146259d7050b145a82086b0905d1c4f0c2396f33 100755 (executable)
@@ -8,7 +8,6 @@ TMPFILE=$TMPDIR/gdb_run.$$
 cat << EOF  > $TMPFILE
 run
 bt
-quit
 EOF
 
 trap "/bin/rm -f $TMPFILE" EXIT
old mode 100644 (file)
new mode 100755 (executable)
diff --git a/source/script/installjsonrpc.sh b/source/script/installjsonrpc.sh
deleted file mode 100755 (executable)
index b91f6bf..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-
-SERVICESDIR=$1
-SRCDIR=$2
-
-echo Installing JSON-RPC services in $SERVICESDIR
-
-cd $SRCDIR/../services || exit 1
-
-mkdir -p $SERVICESDIR || exit 1
-
-installdir() {
-    for f in $*; do
-       dname=`dirname $f`
-       echo "Installing $f in $dname"
-       test -d $SERVICESDIR/$dname || mkdir -p $SERVICESDIR/$dname || exit 1
-       cp $f $SERVICESDIR/$dname/ || exit 1
-       chmod 0644 $SERVICESDIR/$f || exit 1
-    done
-}
-
-installdir `find . -name '*.esp'`
-
-cat << EOF
-======================================================================
-The JSON-RPC services have been installed. 
-======================================================================
-EOF
-
-
-exit 0
-
old mode 100644 (file)
new mode 100755 (executable)
index 1555fa21d2e79b03a6aa95ddb412608f36bb18f9..55297c43d9eb74a50bcce10d418e720a3b673a5c 100755 (executable)
@@ -16,11 +16,18 @@ echo "Installing setup templates"
 mkdir -p $SETUPDIR || exit 1
 cp setup/schema-map-* $SETUPDIR || exit 1
 cp setup/DB_CONFIG $SETUPDIR || exit 1
+cp setup/upgrade $SETUPDIR || exit 1
+cp setup/provision-backend $SETUPDIR || exit 1
+cp setup/provision $SETUPDIR || exit 1
+cp setup/newuser $SETUPDIR || exit 1
 cp setup/*.inf $SETUPDIR || exit 1
 cp setup/*.ldif $SETUPDIR || exit 1
 cp setup/*.reg $SETUPDIR || exit 1
 cp setup/*.zone $SETUPDIR || exit 1
 cp setup/*.conf $SETUPDIR || exit 1
+cp setup/provision.smb.conf.dc $SETUPDIR || exit 1
+cp setup/provision.smb.conf.member $SETUPDIR || exit 1
+cp setup/provision.smb.conf.standalone $SETUPDIR || exit 1
 
 echo "Installing script tools"
 mkdir -p "$BINDIR"
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
diff --git a/source/script/installswat.sh b/source/script/installswat.sh
new file mode 100755 (executable)
index 0000000..4304e3e
--- /dev/null
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+SWATDIR=$1
+SRCDIR=$2
+
+echo Installing swat files in $SWATDIR
+
+cd $SRCDIR/../swat || exit 1
+
+mkdir -p $SWATDIR || exit 1
+
+installdir() {
+    for f in $*; do
+       dname=`dirname $f`
+       echo "Installing $f in $dname"
+       test -d $SWATDIR/$dname || mkdir -p $SWATDIR/$dname || exit 1
+       cp $f $SWATDIR/$dname/ || exit 1
+       chmod 0644 $SWATDIR/$f || exit 1
+    done
+}
+
+installdir `find . -name '*.js'`
+installdir `find . -name '*.esp'`
+installdir `find . -name '*.css'`
+installdir `find . -name '*.png'`
+installdir `find . -name '*.ico'`
+installdir `find . -name '*.gif'`
+installdir `find . -name '*.ejs'`
+
+cat << EOF
+======================================================================
+The swat files have been installed. 
+======================================================================
+EOF
+
+exit 0
+
diff --git a/source/script/installwebapps.sh b/source/script/installwebapps.sh
deleted file mode 100755 (executable)
index 25a43db..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/sh
-
-WEBAPPSDIR=$1
-SRCDIR=$2
-
-echo Installing web application files in $WEBAPPSDIR
-
-cd $SRCDIR/../webapps/swat || exit 1
-
-# building the web application framework is now done by autogen.sh
-#make build || exit 1
-
-mkdir -p $WEBAPPSDIR || exit 1
-
-installdir() {
-    for f in $*; do
-       dname=`dirname $f`
-       echo "Installing $f in $dname"
-       test -d $WEBAPPSDIR/$dname || mkdir -p $WEBAPPSDIR/$dname || exit 1
-       cp $f $WEBAPPSDIR/$dname/ || exit 1
-       chmod 0644 $WEBAPPSDIR/$f || exit 1
-    done
-}
-
-# install our web application
-cd build || exit 1
-installdir `find . -type f -print`
-
-# install files from the 'scripting', 'style' and 'images' directories
-cd ../.. || exit 1
-installdir `find scripting -name '*.js'`
-installdir `find scripting -name '*.esp'`
-installdir `find style -name '*.css'`
-installdir `find images -name '*.png'`
-installdir `find images -name '*.gif'`
-installdir `find images -name '*.ico'`
-
-# install the old installation scripts, since there's no replacement yet
-installdir `find install -name '*.esp'`
-
-# install top-level scripts
-installdir index.esp login.esp logout.esp menu.js
-
-cat << EOF
-======================================================================
-The web application files have been installed. 
-======================================================================
-EOF
-
-exit 0
-
index f655f81f2d5bc4235a237a29fe7c7ea5e0b6ae37..9bba7257b191238255b6b6d8f86e6a3b13f12780 100755 (executable)
@@ -35,8 +35,14 @@ if cd $dir && $LEX $ARGS $file; then
        if [ -r $base.yy.c ];then
                # we must guarantee that config.h comes first
                echo "#include \"config.h\"" > $base.c
-               sed '/^#/ s|$base.yy\.c|$DEST|' $base.yy.c >> $base.c
+               sed -e "s|$base\.yy\.c|$DEST|" $base.yy.c >> $base.c
                rm -f $base.yy.c
+       elif [ -r $base.c ];then
+               # we must guarantee that config.h comes first
+               mv $base.c $base.c.tmp
+               echo "#include \"config.h\"" > $base.c
+               sed -e "s|$base\.yy\.c|$DEST|" $base.c.tmp >> $base.c
+               rm -f $base.c.tmp
        elif [ ! -r base.c ]; then
                echo "$base.c nor $base.yy.c generated."
                exit 1
index 51888c704f589ac3010d1e4220a132e1a65253e0..f1c2cf9d0e8294bdcfce8415b20f00554464acda 100755 (executable)
@@ -68,20 +68,24 @@ GetOptions(
        'help' => \&usage
 ) or exit(1);
 
-if (not defined($public_define) and defined($public_file)) {
-       $public_define = ".." . uc($public_file) . "__";
-       $public_define =~ tr{./}{__};
-} elsif (not defined($public_define)) {
-       $public_define = '_PROTO_H_';
-}
+sub normalize_define($$)
+{
+       my ($define, $file) = @_;
+
+       if (not defined($define) and defined($file)) {
+               $define = "__" . uc($file) . "__";
+               $define =~ tr{./}{__};
+               $define =~ tr{\-}{_};
+       } elsif (not defined($define)) {
+               $define = '_PROTO_H_';
+       }
 
-if (not defined($private_define) and defined($private_file)) {
-       $private_define = "__" . uc($private_file) . "__";
-       $private_define =~ tr{./}{__};
-} elsif (not defined($public_define)) {
-       $public_define = '_PROTO_H_';
+       return $define;
 }
 
+$public_define = normalize_define($public_define, $public_file);
+$private_define = normalize_define($private_define, $private_file);
+
 if ((defined($private_file) and defined($public_file) and ($private_file eq $public_file)) or 
        (not defined($private_file) and not defined($public_file))) {
        $private_data = $public_data;
@@ -129,7 +133,6 @@ sub handle_loadparm($$)
 
                my %tmap = (
                            "BOOL" => "bool ",
-                               "bool" => "bool ",
                            "CONST_STRING" => "const char *",
                            "STRING" => "const char *",
                            "INTEGER" => "int ",
@@ -138,8 +141,8 @@ sub handle_loadparm($$)
                            );
 
                my %smap = (
-                           "GLOBAL" => "void",
-                           "LOCAL" => "int "
+                           "GLOBAL" => "struct loadparm_context *",
+                           "LOCAL" => "struct loadparm_service *"
                            );
 
                $file->("$tmap{$type}$name($smap{$scope});\n");
@@ -194,8 +197,8 @@ sub process_file($$$)
                }
 
                next unless ( $is_public || $line =~ /
-                             (_DEPRECATED_ |_NORETURN_ |_WARN_UNUSED_RESULT_ |_PURE_ )*^(
-                                 void|BOOL|bool|int|struct|char|const|\w+_[tT]\s|uint|unsigned|long|NTSTATUS|
+                             ^(_DEPRECATED_ |_NORETURN_ |_WARN_UNUSED_RESULT_ |_PURE_ )*(
+                                 void|bool|int|struct|char|const|\w+_[tT]\s|uint|unsigned|long|NTSTATUS|
                                  ADS_STATUS|enum\s.*\(|DATA_BLOB|WERROR|XFILE|FILE|DIR|
                              double|TDB_CONTEXT|TDB_DATA|TALLOC_CTX|NTTIME|FN_|init_module|
                              GtkWidget|GType|smb_ucs2_t|krb5_error_code)
@@ -205,7 +208,6 @@ sub process_file($$$)
 
                $target->("\n$comment") if (defined($comment)); $comment = undef;
 
-               $line =~ s/BOOL /bool /g;
                if ( $line =~ /\(.*\)\s*$/o ) {
                        chomp $line;
                        $target->("$line;\n");
@@ -215,7 +217,6 @@ sub process_file($$$)
                $target->($line);
 
                while ($line = <FH>) {
-                       $line =~ s/BOOL /bool /g;
                        if ($line =~ /\)\s*$/o) {
                                chomp $line;
                                $target->("$line;\n");
index 91c7894cdbcc0517cc5d4dc0a671e6334432b887..828f67d71bff0ac650b7bc5d981d1dc470d9b0fa 100755 (executable)
@@ -111,7 +111,7 @@ if test x"${SAMBA_VERSION_IS_SVN_SNAPSHOT}" = x"yes";then
     if test x"${HAVEVER}" != x"yes" -a -d "${SOURCE_DIR}../.git";then
        HAVEGIT=no
         GIT_INFO=`git show --abbrev-commit HEAD 2>/dev/null`
-       TMP_REVISION=`echo -e "${GIT_INFO}" | grep 'commit ' | sed 1q |sed -e 's/commit \([0-9a-f]*\).*/\1/'`
+       TMP_REVISION=`echo -e "${GIT_INFO}" | sed 1q | grep 'commit ' | sed -e 's/commit \([0-9a-f]*\).*/\1/'`
        if test -n "$TMP_REVISION";then
            HAVEGIT=yes
             HAVEVER=yes
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
index 411c98cc723c47aa62e73fa42861f6b446292075..97a05ab88f63a147b104612a7793ccedbcbf3e9b 100644 (file)
@@ -68,7 +68,7 @@ static int ejs_net_context(MprVarHandle eid, int argc, struct MprVar **argv)
                        talloc_free(ctx);
                        return -1;
                }
-               cli_credentials_set_conf(creds);
+               cli_credentials_set_conf(creds, global_loadparm);
                cli_credentials_set_anonymous(creds);
 
                mprCreds = mprCredentials(creds);
@@ -78,7 +78,7 @@ static int ejs_net_context(MprVarHandle eid, int argc, struct MprVar **argv)
                  get credential values from credentials object
                */
                mprCreds = *(argv[0]);
-               creds = mprGetPtr(&mprCreds, "creds");
+               creds = (struct cli_credentials *)mprGetPtr(&mprCreds, "creds");
                if (creds == NULL) {
                        ejsSetErrorMsg(eid, "invalid credentials parameter");
                        talloc_free(ctx);
@@ -122,7 +122,7 @@ static int ejs_net_join_domain(MprVarHandle eid, int argc, struct MprVar **argv)
        struct libnet_context *ctx;
        struct libnet_Join *join;
        NTSTATUS status;
-       ctx = mprGetThisPtr(eid, "ctx");
+       ctx = (struct libnet_context *)mprGetThisPtr(eid, "ctx");
        mem_ctx = talloc_new(mprMemCtx());
 
        join = talloc(mem_ctx, struct libnet_Join);
@@ -166,9 +166,9 @@ static int ejs_net_join_domain(MprVarHandle eid, int argc, struct MprVar **argv)
                MprVar error_string = mprString(join->out.error_string);
                
                mprSetPropertyValue(argv[0], "error_string", error_string);
-               mpr_Return(eid, mprCreateBoolVar(False));
+               mpr_Return(eid, mprCreateBoolVar(false));
        } else {
-               mpr_Return(eid, mprCreateBoolVar(True));
+               mpr_Return(eid, mprCreateBoolVar(true));
        }
        talloc_free(mem_ctx);
        return 0;
@@ -181,7 +181,7 @@ static int ejs_net_samsync_ldb(MprVarHandle eid, int argc, struct MprVar **argv)
        struct libnet_context *ctx;
        struct libnet_samsync_ldb *samsync;
        NTSTATUS status;
-       ctx = mprGetThisPtr(eid, "ctx");
+       ctx = (struct libnet_context *)mprGetThisPtr(eid, "ctx");
        mem_ctx = talloc_new(mprMemCtx());
 
        samsync = talloc(mem_ctx, struct libnet_samsync_ldb);
@@ -214,9 +214,9 @@ static int ejs_net_samsync_ldb(MprVarHandle eid, int argc, struct MprVar **argv)
                MprVar error_string = mprString(samsync->out.error_string);
                
                mprSetPropertyValue(argv[0], "error_string", error_string);
-               mpr_Return(eid, mprCreateBoolVar(False));
+               mpr_Return(eid, mprCreateBoolVar(false));
        } else {
-               mpr_Return(eid, mprCreateBoolVar(True));
+               mpr_Return(eid, mprCreateBoolVar(true));
        }
        talloc_free(mem_ctx);
        return 0;
index 8c9ab9f0ebd9205e619457cbb76e28051207389c..34524cc0faba39a6670043892858a32b803cae85 100644 (file)
@@ -45,7 +45,7 @@ int ejs_net_userman(MprVarHandle eid, int argc, struct MprVar **argv)
        struct MprVar obj;
 
        /* libnet context */
-       ctx = mprGetThisPtr(eid, "ctx");
+       ctx = (struct libnet_context *)mprGetThisPtr(eid, "ctx");
        if (ctx == NULL) {
                ejsSetErrorMsg(eid, "ctx property returns null pointer");
                return 0;
@@ -128,14 +128,14 @@ static int ejs_net_createuser(MprVarHandle eid, int argc, char **argv)
        }
        
        /* libnet context */
-       ctx = mprGetThisPtr(eid, "ctx");
+       ctx = (struct libnet_context *)mprGetThisPtr(eid, "ctx");
        if (ctx == NULL) {
                ejsSetErrorMsg(eid, "ctx property returns null pointer");
                goto done;
        }
 
        /* domain where the account is to be created */
-       userman_domain = mprGetThisPtr(eid, "domain");
+       userman_domain = (const char *)mprGetThisPtr(eid, "domain");
        if (userman_domain == NULL) {
                ejsSetErrorMsg(eid, "domain property returns null pointer");
                goto done;
@@ -197,7 +197,7 @@ static int ejs_net_deleteuser(MprVarHandle eid, int argc, char **argv)
        }
        
        /* domain where the account is to be deleted */
-       userman_domain = mprGetThisPtr(eid, "domain");
+       userman_domain = (struct libnet_context *)mprGetThisPtr(eid, "domain");
        if (!userman_domain) {
                ejsSetErrorMsg(eid, "domain property returns null pointer");
                goto done;
@@ -253,14 +253,14 @@ static int ejs_net_userinfo(MprVarHandle eid, int argc, char **argv)
        }
 
        /* libnet context */
-       ctx = mprGetThisPtr(eid, "ctx");
+       ctx = (struct libnet_context *)mprGetThisPtr(eid, "ctx");
        if (ctx == NULL) {
                ejsSetErrorMsg(eid, "ctx property returns null pointer");
                goto done;
        }
        
        /* domain where the user account is to be queried */
-       userman_domain = mprGetThisPtr(eid, "domain");
+       userman_domain = (struct libnet_context *)mprGetThisPtr(eid, "domain");
        if (userman_domain == NULL) {
                ejsSetErrorMsg(eid, "domain property returns null pointer");
                return -1;
@@ -331,7 +331,7 @@ static int ejs_net_userlist(MprVarHandle eid, int argc, struct MprVar **argv)
        }
 
        /* libnet context */
-       ctx = mprGetThisPtr(eid, "ctx");
+       ctx = (struct libnet_context *)mprGetThisPtr(eid, "ctx");
        if (ctx == NULL) {
                ejsSetErrorMsg(eid, "ctx property returns null pointer");
                goto done;
index 966c803a307b92b071f7ec0234f46ce5421b39bc..3769607949e848bd9b406122423943e7184eb9d8 100644 (file)
@@ -311,16 +311,16 @@ NTSTATUS ejs_push_null(struct ejs_rpc *ejs, struct MprVar *v, const char *name)
        return mprSetVar(v, name, mprCreatePtrVar(NULL));
 }
 
-BOOL ejs_pull_null(struct ejs_rpc *ejs, struct MprVar *v, const char *name)
+bool ejs_pull_null(struct ejs_rpc *ejs, struct MprVar *v, const char *name)
 {
        NTSTATUS status = mprGetVar(&v, name);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
        if (v->type == MPR_TYPE_PTR && v->ptr == NULL) {
-               return True;
+               return true;
        }
-       return False;
+       return false;
 }
 
 /*
@@ -372,16 +372,16 @@ NTSTATUS ejs_push_DATA_BLOB(struct ejs_rpc *ejs,
        return NT_STATUS_NOT_IMPLEMENTED;
 }
 
-NTSTATUS ejs_pull_BOOL(struct ejs_rpc *ejs, 
-                      struct MprVar *v, const char *name, BOOL *r)
+NTSTATUS ejs_pull_bool(struct ejs_rpc *ejs, 
+                      struct MprVar *v, const char *name, bool *r)
 {
        NDR_CHECK(mprGetVar(&v, name));
        *r = mprVarToBool(v);
        return NT_STATUS_OK;
 }
 
-NTSTATUS ejs_push_BOOL(struct ejs_rpc *ejs, 
-                      struct MprVar *v, const char *name, const BOOL *r)
+NTSTATUS ejs_push_bool(struct ejs_rpc *ejs, 
+                      struct MprVar *v, const char *name, const bool *r)
 {
        return mprSetVar(v, name, mprCreateBoolVar(*r));
 }
@@ -417,7 +417,7 @@ NTSTATUS ejs_push_array_uint8(struct ejs_rpc *ejs,
                              const uint8_t *r, uint32_t length)
 {
        DATA_BLOB blob;
-       blob.data = discard_const(r);
+       blob.data = (uint8_t *)discard_const(r);
        blob.length = length;
        mprSetVar(v, name, mprDataBlob(blob));
        return NT_STATUS_OK;
index ef920b816aca6e46b70a3ed996b5291c8e853c73..6723fb41070e95b19149b7f2bf3f4d71446be7b2 100644 (file)
@@ -113,9 +113,9 @@ NTSTATUS ejs_pull_DATA_BLOB(struct ejs_rpc *ejs,
                            struct MprVar *v, const char *name, DATA_BLOB *r);
 NTSTATUS ejs_push_DATA_BLOB(struct ejs_rpc *ejs, 
                            struct MprVar *v, const char *name, const DATA_BLOB *r);
-NTSTATUS ejs_pull_BOOL(struct ejs_rpc *ejs, 
+NTSTATUS ejs_pull_bool(struct ejs_rpc *ejs, 
                       struct MprVar *v, const char *name, bool *r);
-NTSTATUS ejs_push_BOOL(struct ejs_rpc *ejs, 
+NTSTATUS ejs_push_bool(struct ejs_rpc *ejs, 
                       struct MprVar *v, const char *name, const bool *r);
 
 NTSTATUS ejs_pull_array_uint8(struct ejs_rpc *ejs, 
index d50e5afdb916e97281c7f36d00cf0ebe39115faf..8307c211d3e6a3de354950259c187f67b51f3953 100644 (file)
@@ -132,27 +132,11 @@ static void *append_string(void *ctx,
                            char *append,
                            int size)
 {
-    char c;
-    char *end_p = append + size;
-    void *ret;
+       if (!orig) {
+               return talloc_strndup(ctx, append, size);
+       }
 
-    /*
-     * We need to null terminate the string to be copied.  Save character at
-     * the size limit of the source string.
-     */
-    c = *end_p;
-
-    /* Temporarily null-terminate it */
-    *end_p = '\0';
-
-    /* Append the requested data */
-    ret = talloc_append_string(ctx, orig, append);
-    
-    /* Restore the original character in place of our temporary null byte */
-    *end_p = c;
-
-    /* Give 'em what they came for */
-    return ret;
+       return talloc_strndup_append(orig, append, size);
 }
 
 
index b8271d97c5767e6ac3f06435e96ac2939dfa7dd2..9143947fb846deec53baf13476f4a206db549456 100644 (file)
@@ -134,7 +134,7 @@ struct MprVar mprString(const char *s)
        if (s == NULL) {
                return mprCreatePtrVar(NULL);
        }
-       return mprCreateStringVar(s, True);
+       return mprCreateStringVar(s, true);
 }
 
 /*
index bc7994a0074dc6055591a3552c844448f2030977..8a3ce245d2ad1f36208f92864554593696341955 100644 (file)
@@ -21,6 +21,7 @@
 */
 
 #include "includes.h"
+#include "param/param.h"
 #include "scripting/ejs/smbcalls.h"
 #include "build.h"
 #include "version.h"
@@ -110,7 +111,7 @@ static int ejs_typeof_native(MprVarHandle eid, int argc, struct MprVar **argv)
 static int ejs_libinclude(int eid, int argc, char **argv)
 {
        int i, j;
-       const char **js_include = lp_js_include();
+       const char **js_include = lp_js_include(global_loadparm);
 
        if (js_include == NULL || js_include[0] == NULL) {
                ejsSetErrorMsg(eid, "js include path not set");
@@ -160,51 +161,6 @@ static int ejs_version(MprVarHandle eid, int argc, struct MprVar **argv)
 }
 
 
-/*
- * jsonrpc_include() allows you to include jsonrpc files from a path based at
- * "jsonrpc services directory =" in smb.conf.
- */
-static int jsonrpc_include(int eid, int argc, char **argv)
-{
-        int ret = -1;
-        char *path;
-        char *emsg;
-       const char *jsonrpc_services_dir = lp_jsonrpc_services_dir();
-        struct MprVar result;
-
-
-       if (jsonrpc_services_dir == NULL || jsonrpc_services_dir == NULL) {
-               ejsSetErrorMsg(eid, "'jsonrpc services directory' not set");
-               return -1;
-       }
-
-        if (argc != 1) {
-                mpr_Return(eid, mprCreateIntegerVar(-1));
-               return 0;
-        }
-
-        path = talloc_asprintf(mprMemCtx(), "%s/%s",
-                               jsonrpc_services_dir,
-                               argv[0]);
-        if (path == NULL) {
-                mpr_Return(eid, mprCreateIntegerVar(-1));
-                return 0;
-        }
-
-        if (file_exist(path)) {
-                ret = ejsEvalFile(eid, path, &result, &emsg);
-                if (ret < 0) {
-                        ejsSetErrorMsg(eid, "Could not eval file");
-                        printf("file found; ret=%d (%s)\n", ret, emsg);
-                }
-        }
-        
-        mpr_Return(eid, mprCreateIntegerVar(ret));
-        talloc_free(path);
-       return 0;
-}
-
-
 static void (*ejs_exception_handler) (const char *) = NULL;
 
 _PUBLIC_ void ejs_exception(const char *reason)
@@ -228,7 +184,7 @@ void smb_setup_ejs_functions(void (*exception_handler)(const char *))
        smb_setup_ejs_param();
         smb_setup_ejs_literal();
        
-       shared_init = load_samba_modules(NULL, "smbcalls");
+       shared_init = load_samba_modules(NULL, global_loadparm, "smbcalls");
        
        run_init_functions(static_init);
        run_init_functions(shared_init);
@@ -239,6 +195,5 @@ void smb_setup_ejs_functions(void (*exception_handler)(const char *))
        ejsDefineCFunction(-1, "nativeTypeOf", ejs_typeof_native, NULL, MPR_VAR_SCRIPT_HANDLE);
        ejsDefineStringCFunction(-1, "libinclude", ejs_libinclude, NULL, MPR_VAR_SCRIPT_HANDLE);
        ejsDefineCFunction(-1, "version", ejs_version, NULL, MPR_VAR_SCRIPT_HANDLE);
-       ejsDefineStringCFunction(-1, "jsonrpc_include", jsonrpc_include, NULL, MPR_VAR_SCRIPT_HANDLE);
 }
 
index 77d9dd33810296ae3e498180aaa5c51829e3462f..3aaf324b6e8e38a3f50037868c38558b8a036869 100644 (file)
@@ -38,4 +38,5 @@ struct ldb_context;
 struct ldb_message;
 struct cli_credentials;
 
+#include "param/param.h"
 #include "scripting/ejs/proto.h"
index 2624084f02d05719cd29c16e8f329a656ee200a9..b4848d4323fcaa3aab7b9ffa724a8b255b4fe6d3 100644 (file)
 #include "libcli/security/security.h"
 
 static int ejs_doauth(MprVarHandle eid,
-                     TALLOC_CTX *tmp_ctx, struct MprVar *auth, const char *username, 
-                     const char *password, const char *domain, const char *workstation,
-                     struct socket_address *remote_host, const char **auth_types)
+                     TALLOC_CTX *tmp_ctx, struct MprVar *auth, 
+                     const char *username, const char *password, 
+                     const char *domain, const char *workstation,
+                     struct socket_address *remote_host, 
+                     const char **auth_types)
 {
        struct auth_usersupplied_info *user_info = NULL;
        struct auth_serversupplied_info *server_info = NULL;
@@ -54,7 +56,7 @@ static int ejs_doauth(MprVarHandle eid,
        } else {
                /* Hope we can find the event context somewhere up there... */
                ev = event_context_find(tmp_ctx);
-               msg = messaging_client_init(tmp_ctx, ev);
+               msg = messaging_client_init(tmp_ctx, lp_messaging_path(tmp_ctx, global_loadparm), ev);
        }
 
        if (auth_types) {
@@ -63,19 +65,19 @@ static int ejs_doauth(MprVarHandle eid,
                nt_status = auth_context_create(tmp_ctx, ev, msg, &auth_context);
        }
        if (!NT_STATUS_IS_OK(nt_status)) {
-               mprSetPropertyValue(auth, "result", mprCreateBoolVar(False));
+               mprSetPropertyValue(auth, "result", mprCreateBoolVar(false));
                mprSetPropertyValue(auth, "report", mprString("Auth System Failure"));
                goto done;
        }
 
        user_info = talloc(tmp_ctx, struct auth_usersupplied_info);
        if (!user_info) {
-               mprSetPropertyValue(auth, "result", mprCreateBoolVar(False));
+               mprSetPropertyValue(auth, "result", mprCreateBoolVar(false));
                mprSetPropertyValue(auth, "report", mprString("talloc failed"));
                goto done;
        }
 
-       user_info->mapped_state = True;
+       user_info->mapped_state = true;
        user_info->client.account_name = username;
        user_info->mapped.account_name = username;
        user_info->client.domain_name = domain;
@@ -102,14 +104,14 @@ static int ejs_doauth(MprVarHandle eid,
        if (!NT_STATUS_IS_OK(nt_status)) {
                mprSetPropertyValue(auth, "report", 
                                    mprString(talloc_strdup(mprMemCtx(), get_friendly_nt_error_msg(nt_status))));
-               mprSetPropertyValue(auth, "result", mprCreateBoolVar(False));
+               mprSetPropertyValue(auth, "result", mprCreateBoolVar(false));
                goto done;
        }
 
        nt_status = auth_generate_session_info(tmp_ctx, server_info, &session_info);
        if (!NT_STATUS_IS_OK(nt_status)) {
                mprSetPropertyValue(auth, "report", mprString("Session Info generation failed"));
-               mprSetPropertyValue(auth, "result", mprCreateBoolVar(False));
+               mprSetPropertyValue(auth, "result", mprCreateBoolVar(false));
                goto done;
        }
 
@@ -130,13 +132,13 @@ static int ejs_doauth(MprVarHandle eid,
 
        if (security_token_is_anonymous(session_info->security_token)) {
                mprSetPropertyValue(auth, "report", mprString("Anonymous login not permitted"));
-               mprSetPropertyValue(auth, "result", mprCreateBoolVar(False));
+               mprSetPropertyValue(auth, "result", mprCreateBoolVar(false));
                goto done;
        }
 
        if (!set) {
                mprSetPropertyValue(auth, "report", mprString("Session Info generation failed"));
-               mprSetPropertyValue(auth, "result", mprCreateBoolVar(False));
+               mprSetPropertyValue(auth, "result", mprCreateBoolVar(false));
        }
        
        session_info_obj = mprInitObject(eid, "session_info", 0, NULL);
@@ -181,7 +183,7 @@ static int ejs_userAuth(MprVarHandle eid, int argc, struct MprVar **argv)
                return -1;
        }
 
-       remote_host = mprGetPtr(argv[1], "socket_address");
+       remote_host = (struct socket_address *)mprGetPtr(argv[1], "socket_address");
        if (remote_host == NULL) {
                ejsSetErrorMsg(eid, "userAuth requires a socket address second parameter");
                return -1;
index e94207bf36f02bc7a461bcd421d1f759e3375154..e08a09883383034ac72a2791cc64248879aa972e 100644 (file)
@@ -27,6 +27,7 @@
 #include "libcli/smb_composite/smb_composite.h"
 #include "libcli/libcli.h"
 #include "auth/credentials/credentials.h"
+#include "param/param.h"
 
 #if 0
 
@@ -60,7 +61,7 @@ static int ejs_cli_connect(MprVarHandle eid, int argc, char **argv)
                return -1;
        }
 
-       transport = smbcli_transport_init(sock, sock, False);
+       transport = smbcli_transport_init(sock, sock, false);
 
        if (!transport) {
                ejsSetErrorMsg(eid, "transport init failed");
@@ -191,7 +192,7 @@ static int ejs_cli_ssetup(MprVarHandle eid, int argc, MprVar **argv)
 
        /* Do session setup */
 
-       session = smbcli_session_init(transport, transport, False);
+       session = smbcli_session_init(transport, transport, false);
 
        if (!session) {
                ejsSetErrorMsg(eid, "session init failed");
@@ -251,7 +252,7 @@ static int ejs_cli_tree_connect(MprVarHandle eid, int argc, MprVar **argv)
        }
 
        session = argv[0]->ptr;
-       tree = smbcli_tree_init(session, session, False);
+       tree = smbcli_tree_init(session, session, false);
 
        if (!tree) {
                ejsSetErrorMsg(eid, "tree init failed");
@@ -430,7 +431,7 @@ static int ejs_tree_connect(MprVarHandle eid, int argc, char **argv)
        /* Set up credentials */
 
        creds = cli_credentials_init(NULL);
-       cli_credentials_set_conf(creds);
+       cli_credentials_set_conf(creds, global_loadparm);
        cli_credentials_parse_string(creds, argv[1], CRED_SPECIFIED);
 
        /* Do connect */
@@ -441,8 +442,8 @@ static int ejs_tree_connect(MprVarHandle eid, int argc, char **argv)
        io.in.service                = sharename;
        io.in.service_type           = "?????";
        io.in.credentials            = creds;
-       io.in.fallback_to_anonymous  = False;
-       io.in.workgroup              = lp_workgroup();
+       io.in.fallback_to_anonymous  = false;
+       io.in.workgroup              = lp_workgroup(global_loadparm);
 
        result = smb_composite_connect(&io, mem_ctx, NULL);
        tree = io.out.tree;
@@ -483,7 +484,7 @@ static int ejs_tree_disconnect(MprVarHandle eid, int argc, MprVar **argv)
                return -1;
        }
 
-       tree = talloc_check_name(argv[0]->ptr, "struct smbcli_tree");
+       tree = talloc_get_type(argv[0]->ptr, struct smbcli_tree);
 
        result = smb_tree_disconnect(tree);
 
@@ -512,7 +513,7 @@ static int ejs_mkdir(MprVarHandle eid, int argc, MprVar **argv)
                return -1;
        }
 
-       tree = argv[0]->ptr;
+       tree = (struct smbcli_tree *)argv[0]->ptr;
 
        if (!mprVarIsString(argv[1]->type)) {
                ejsSetErrorMsg(eid, "arg 2 must be a string");
@@ -546,7 +547,7 @@ static int ejs_rmdir(MprVarHandle eid, int argc, MprVar **argv)
                return -1;
        }
 
-       tree = argv[0]->ptr;
+       tree = (struct smbcli_tree *)argv[0]->ptr;
 
        if (!mprVarIsString(argv[1]->type)) {
                ejsSetErrorMsg(eid, "arg 2 must be a string");
@@ -580,7 +581,7 @@ static int ejs_rename(MprVarHandle eid, int argc, MprVar **argv)
                return -1;
        }
 
-       tree = argv[0]->ptr;
+       tree = (struct smbcli_tree *)argv[0]->ptr;
 
        if (!mprVarIsString(argv[1]->type)) {
                ejsSetErrorMsg(eid, "arg 2 must be a string");
@@ -619,7 +620,7 @@ static int ejs_unlink(MprVarHandle eid, int argc, MprVar **argv)
                return -1;
        }
 
-       tree = argv[0]->ptr;
+       tree = (struct smbcli_tree *)argv[0]->ptr;
 
        if (!mprVarIsString(argv[1]->type)) {
                ejsSetErrorMsg(eid, "arg 2 must be a string");
@@ -666,7 +667,7 @@ static int ejs_list(MprVarHandle eid, int argc, MprVar **argv)
                return -1;
        }
 
-       tree = argv[0]->ptr;
+       tree = (struct smbcli_tree *)argv[0]->ptr;
 
        if (!mprVarIsString(argv[1]->type)) {
                ejsSetErrorMsg(eid, "arg 2 must be a string");
index 6f15ee5a4a7488cbfe9bfc43556c0b0da7ece338..1c76757659b7c248963047a7023db82c7a7fa5e2 100644 (file)
@@ -25,6 +25,7 @@
 #include "param/loadparm.h"
 #include "system/network.h"
 #include "lib/socket/netif.h"
+#include "param/param.h"
 
 /*
   return a list of defined services
@@ -35,8 +36,8 @@ static int ejs_lpServices(MprVarHandle eid, int argc, char **argv)
        const char **list = NULL;
        if (argc != 0) return -1;
        
-       for (i=0;i<lp_numservices();i++) {
-               list = str_list_add(list, lp_servicename(i));
+       for (i=0;i<lp_numservices(global_loadparm);i++) {
+               list = str_list_add(list, lp_servicename(lp_servicebynum(global_loadparm, i)));
        }
        talloc_steal(mprMemCtx(), list);
        mpr_Return(eid, mprList("services", list));
@@ -44,27 +45,6 @@ static int ejs_lpServices(MprVarHandle eid, int argc, char **argv)
 }
 
 
-/*
-  return a list of parameter categories
-*/
-static int ejs_lpCategories(MprVarHandle eid, int argc, char **argv)
-{
-       struct parm_struct *parm_table = lp_parm_table();
-       int i;
-       const char **list = NULL;
-       if (argc != 0) return -1;
-       
-       for (i=0;parm_table[i].label;i++) {
-               if (parm_table[i].class == P_SEPARATOR) {
-                       list = str_list_add(list, parm_table[i].label);
-               }
-       }
-       talloc_steal(mprMemCtx(), list);
-       mpr_Return(eid, mprList("categories", list));
-       return 0;
-}
-
-
 /*
   allow access to loadparm variables from inside ejs scripts in web apps
   
@@ -86,9 +66,10 @@ static int ejs_lpGet(MprVarHandle eid, int argc, char **argv)
        if (argc < 1) return -1;
 
        if (argc == 2) {
+               struct loadparm_service *service;
                /* its a share parameter */
-               int snum = lp_servicenumber(argv[0]);
-               if (snum == -1) {
+               service = lp_service(global_loadparm, argv[0]);
+               if (service == NULL) {
                        mpr_Return(eid, mprCreateUndefinedVar());
                        return 0;
                }
@@ -103,7 +84,7 @@ static int ejs_lpGet(MprVarHandle eid, int argc, char **argv)
                                mpr_Return(eid, mprCreateUndefinedVar());
                                return 0;
                        }
-                       value = lp_get_parametric(snum, type, option);
+                       value = lp_get_parametric(global_loadparm, service, type, option);
                        if (value == NULL) {
                                mpr_Return(eid, mprCreateUndefinedVar());
                                return 0;
@@ -117,7 +98,7 @@ static int ejs_lpGet(MprVarHandle eid, int argc, char **argv)
                        mpr_Return(eid, mprCreateUndefinedVar());
                        return 0;
                }
-               parm_ptr = lp_parm_ptr(snum, parm);
+               parm_ptr = lp_parm_ptr(service, parm);
        } else if (strchr(argv[0], ':')) {
                /* its a global parametric option */
                const char *type = talloc_strndup(mprMemCtx(), 
@@ -128,7 +109,7 @@ static int ejs_lpGet(MprVarHandle eid, int argc, char **argv)
                        mpr_Return(eid, mprCreateUndefinedVar());
                        return 0;
                }
-               value = lp_get_parametric(-1, type, option);
+               value = lp_get_parametric(global_loadparm, NULL, type, option);
                if (value == NULL) {
                        mpr_Return(eid, mprCreateUndefinedVar());
                        return 0;
@@ -142,7 +123,7 @@ static int ejs_lpGet(MprVarHandle eid, int argc, char **argv)
                        mpr_Return(eid, mprCreateUndefinedVar());
                        return 0;
                }
-               parm_ptr = lp_parm_ptr(-1, parm);
+               parm_ptr = lp_parm_ptr(NULL, parm);
        }
 
        if (parm == NULL || parm_ptr == NULL) {
@@ -157,7 +138,7 @@ static int ejs_lpGet(MprVarHandle eid, int argc, char **argv)
                mpr_ReturnString(eid, *(char **)parm_ptr);
                break;
        case P_BOOL:
-               mpr_Return(eid, mprCreateBoolVar(*(BOOL *)parm_ptr));
+               mpr_Return(eid, mprCreateBoolVar(*(bool *)parm_ptr));
                break;
        case P_INTEGER:
        case P_OCTAL:
@@ -176,9 +157,6 @@ static int ejs_lpGet(MprVarHandle eid, int argc, char **argv)
        case P_LIST: 
                mpr_Return(eid, mprList(parm->label, *(const char ***)parm_ptr));
                break;
-       case P_SEP:
-               mpr_Return(eid, mprCreateUndefinedVar());
-               return 0;
        }
        return 0;
 }
@@ -198,7 +176,7 @@ static int ejs_lpSet(MprVarHandle eid, int argc, char **argv)
                return -1;
        }
 
-       mpr_Return(eid, mprCreateBoolVar(lp_set_cmdline(argv[0], argv[1])));
+       mpr_Return(eid, mprCreateBoolVar(lp_set_cmdline(global_loadparm, argv[0], argv[1])));
        return 0;
 }
 
@@ -209,7 +187,7 @@ static int ejs_lpSet(MprVarHandle eid, int argc, char **argv)
 */
 static int ejs_lpReload(MprVarHandle eid, int argc, char **argv)
 {
-       BOOL ret = lp_load();
+       bool ret = lp_load(lp_configfile(global_loadparm));
        if (ret) {
                unload_interfaces();
        }
@@ -228,7 +206,6 @@ static int ejs_loadparm_init(MprVarHandle eid, int argc, struct MprVar **argv)
        mprSetStringCFunction(obj, "set", ejs_lpSet);
        mprSetStringCFunction(obj, "reload", ejs_lpReload);
        mprSetStringCFunction(obj, "services", ejs_lpServices);
-       mprSetStringCFunction(obj, "categories", ejs_lpCategories);
        return 0;
 }
 
index 0feead201e5f4e16225ce6d4daee67f1990672d2..781843371a2ba9cb2b09ebee5f5daa46db209586 100644 (file)
@@ -30,7 +30,7 @@
 */
 static struct cli_credentials *ejs_creds_get_credentials(int eid)
 {
-       struct cli_credentials *creds = mprGetThisPtr(eid, "creds");
+       struct cli_credentials *creds = (struct cli_credentials *)mprGetThisPtr(eid, "creds");
        if (creds == NULL) {
                ejsSetErrorMsg(eid, "NULL ejs credentials");
        }
@@ -61,7 +61,7 @@ static int ejs_creds_set_domain(MprVarHandle eid, int argc, char **argv)
        }
 
        cli_credentials_set_domain(creds, argv[0], CRED_SPECIFIED);
-       mpr_Return(eid, mprCreateBoolVar(True));
+       mpr_Return(eid, mprCreateBoolVar(true));
        return 0;
 }
 
@@ -90,7 +90,7 @@ static int ejs_creds_set_username(MprVarHandle eid, int argc, char **argv)
        }
 
        cli_credentials_set_username(creds, argv[0], CRED_SPECIFIED);
-       mpr_Return(eid, mprCreateBoolVar(True));
+       mpr_Return(eid, mprCreateBoolVar(true));
        return 0;
 }
 
@@ -119,7 +119,7 @@ static int ejs_creds_set_password(MprVarHandle eid, int argc, char **argv)
        }
 
        cli_credentials_set_password(creds, argv[0], CRED_SPECIFIED);
-       mpr_Return(eid, mprCreateBoolVar(True));
+       mpr_Return(eid, mprCreateBoolVar(true));
        return 0;
 }
 
@@ -136,7 +136,7 @@ static int ejs_creds_set_realm(MprVarHandle eid, int argc, char **argv)
        }
 
        cli_credentials_set_realm(creds, argv[0], CRED_SPECIFIED);
-       mpr_Return(eid, mprCreateBoolVar(True));
+       mpr_Return(eid, mprCreateBoolVar(true));
        return 0;
 }
 
@@ -165,7 +165,7 @@ static int ejs_creds_set_workstation(MprVarHandle eid, int argc, char **argv)
        }
        
        cli_credentials_set_workstation(creds, argv[0], CRED_SPECIFIED);
-       mpr_Return(eid, mprCreateBoolVar(True));
+       mpr_Return(eid, mprCreateBoolVar(true));
        return 0;
 }
 
@@ -193,9 +193,9 @@ static int ejs_creds_set_machine_account(MprVarHandle eid, int argc, struct MprV
        }
        
        if (NT_STATUS_IS_OK(cli_credentials_set_machine_account(creds))) {
-               mpr_Return(eid, mprCreateBoolVar(True));
+               mpr_Return(eid, mprCreateBoolVar(true));
        } else {
-               mpr_Return(eid, mprCreateBoolVar(False));
+               mpr_Return(eid, mprCreateBoolVar(false));
        }
        return 0;
 }
@@ -248,7 +248,7 @@ static int ejs_credentials_init(MprVarHandle eid, int argc, struct MprVar **argv
                return -1;
        }
 
-       cli_credentials_set_conf(creds);
+       cli_credentials_set_conf(creds, global_loadparm);
 
        return ejs_credentials_obj(obj, creds);
 }
index 60dadc51658c1c963e6da0c4594d4b6284603524..a98266c3da0d7e7fee0e6d0b8b515fdbf70f8470 100644 (file)
@@ -107,7 +107,7 @@ failed:
 static int ejs_blobCompare(MprVarHandle eid, int argc, struct MprVar **argv)
 {
        DATA_BLOB *blob1, *blob2;
-       BOOL ret = False;
+       bool ret = false;
 
        if (argc != 2) {
                ejsSetErrorMsg(eid, "blobCompare invalid arguments");
@@ -118,24 +118,24 @@ static int ejs_blobCompare(MprVarHandle eid, int argc, struct MprVar **argv)
        blob2 = mprToDataBlob(argv[1]);
 
        if (blob1 == blob2) {
-               ret = True;
+               ret = true;
                goto done;
        }
        if (blob1 == NULL || blob2 == NULL) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
        if (blob1->length != blob2->length) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
        if (memcmp(blob1->data, blob2->data, blob1->length) != 0) {
-               ret = False;
+               ret = false;
                goto done;
        }
-       ret = True;
+       ret = true;
 
 done:
        mpr_Return(eid, mprCreateBoolVar(ret));
index 7b143ae4d93c41db8e583419b9ea8c8b7d7fec13..04162830b4dbcbb740205fa1f6e755b65d67b01e 100644 (file)
@@ -34,7 +34,7 @@
  */
 static struct ldb_context *ejs_get_ldb_context(int eid)
 {
-       struct ldb_context *ldb = mprGetThisPtr(eid, "db");
+       struct ldb_context *ldb = (struct ldb_context *)mprGetThisPtr(eid, "db");
        if (ldb == NULL) {
                ejsSetErrorMsg(eid, "invalid ldb connection");
        }
@@ -452,7 +452,7 @@ static int ejs_ldbConnect(MprVarHandle eid, int argc, char **argv)
 
        dbfile = argv[0];
 
-       ldb = ldb_wrap_connect(mprMemCtx(), dbfile, 
+       ldb = ldb_wrap_connect(mprMemCtx(), global_loadparm, dbfile, 
                               session_info, creds,
                               0, (const char **)(argv+1));
        if (ldb == NULL) {
@@ -483,7 +483,7 @@ static int ejs_ldbClose(MprVarHandle eid, int argc, struct MprVar **argv)
        }
 
        mprSetThisPtr(eid, "db", NULL);
-       mpr_Return(eid, mprCreateBoolVar(True));
+       mpr_Return(eid, mprCreateBoolVar(true));
        return 0;
 }
 
index afdee28a659c7f0a659ff1f41ba5586d3443db8b..830c45d97836f66bf843218060d903de09a442e0 100644 (file)
@@ -20,9 +20,9 @@
 */
 
 #include "includes.h"
+#include "param/param.h"
 #include "scripting/ejs/smbcalls.h"
 #include "lib/appweb/ejs/ejs.h"
-#include "param/param.h"
 
 /*
   get parameter
@@ -39,7 +39,7 @@ static int ejs_param_get(MprVarHandle eid, int argc, char **argv)
                return -1;
        }
 
-       ctx = mprGetThisPtr(eid, "param");
+       ctx = (struct param_context *)mprGetThisPtr(eid, "param");
        mprAssert(ctx);
        
        if (argc == 2) {
@@ -72,7 +72,7 @@ static int ejs_param_get_list(MprVarHandle eid, int argc, char **argv)
                return -1;
        }
 
-       ctx = mprGetThisPtr(eid, "param");
+       ctx = (struct param_context *)mprGetThisPtr(eid, "param");
        mprAssert(ctx);
        
        if (argc == 2) {
@@ -107,7 +107,7 @@ static int ejs_param_set(MprVarHandle eid, int argc, struct MprVar **argv)
                return -1;
        }
 
-       ctx = mprGetThisPtr(eid, "param");
+       ctx = (struct param_context *)mprGetThisPtr(eid, "param");
        mprAssert(ctx);
 
        
@@ -148,17 +148,17 @@ static int ejs_param_data(MprVarHandle eid, int argc, char **argv)
                return -1;
        }
 
-       ctx = mprGetThisPtr(eid, "param");
+       ctx = (struct param_context *)mprGetThisPtr(eid, "param");
        mprAssert(ctx);
 
        ret = mprObject("array");
 
        for (sec = ctx->sections; sec; sec = sec->next) {
                struct MprVar ps = mprObject("array");
-               struct param *p;
+               struct param_opt *p;
 
                for (p = sec->parameters; p; p = p->next) {
-                       mprSetVar(&ps, p->name, mprString(p->value));
+                       mprSetVar(&ps, p->key, mprString(p->value));
                }
                
                mprSetVar(&ret, sec->name, ps);
@@ -184,7 +184,7 @@ static int ejs_param_load(MprVarHandle eid, int argc, char **argv)
                return -1;
        }
 
-       ctx = mprGetThisPtr(eid, "param");
+       ctx = (struct param_context *)mprGetThisPtr(eid, "param");
        mprAssert(ctx);
 
        ret = param_read(ctx, argv[0]);
@@ -209,7 +209,7 @@ static int ejs_param_save(MprVarHandle eid, int argc, char **argv)
                return -1;
        }
 
-       ctx = mprGetThisPtr(eid, "param");
+       ctx = (struct param_context *)mprGetThisPtr(eid, "param");
        mprAssert(ctx);
 
        ret = param_write(ctx, argv[0]);
index 4d84587fa4cf79c935b6ffe77e250e72b902d78e..d4b13cc2ca50775268efeb0b40eaab6c9b2a3a36 100644 (file)
@@ -32,7 +32,7 @@
  */
 static struct registry_context *ejs_get_reg_context(int eid)
 {
-       struct registry_context *rctx = mprGetThisPtr(eid, "registry");
+       struct registry_context *rctx = (struct registry_context *)mprGetThisPtr(eid, "registry");
        if (rctx == NULL) {
                ejsSetErrorMsg(eid, "unable to find registry");
        }
index 4addd473dab2bda37482e5a0de4e75c7518d4afb..5d7c6742089de69c744be9cbdbc505f52e0eb5f5 100644 (file)
@@ -78,7 +78,9 @@ static int ejs_irpc_connect(MprVarHandle eid, int argc, char **argv)
        /* create a messaging context, looping as we have no way to
           allocate temporary server ids automatically */
        for (i=0;i<10000;i++) {
-               p->msg_ctx = messaging_init(p, cluster_id(EJS_ID_BASE + i), ev);
+               p->msg_ctx = messaging_init(p, 
+                                           lp_messaging_path(p, global_loadparm),
+                                           cluster_id(EJS_ID_BASE + i), ev);
                if (p->msg_ctx) break;
        }
        if (p->msg_ctx == NULL) {
@@ -144,7 +146,8 @@ static int ejs_rpc_connect(MprVarHandle eid, int argc, char **argv)
 
        credentials = mprGetProperty(this, "credentials", NULL);
        if (credentials) {
-               creds = mprGetPtr(credentials, "creds");
+               creds = (struct cli_credentials *)
+                               mprGetPtr(credentials, "creds");
        } else {
                creds = cmdline_credentials;
        }
@@ -188,7 +191,7 @@ static int ejs_irpc_call(int eid, struct MprVar *io,
        int i, count;
        struct MprVar *results;
 
-       p = mprGetThisPtr(eid, "irpc");
+       p = (struct ejs_irpc_connection *)mprGetThisPtr(eid, "irpc");
 
        ejs = talloc(mprMemCtx(), struct ejs_rpc);
        if (ejs == NULL) {
index 3c550e57cd9378a3162f9f49ab5d0e7a282c8f78..7c9ef50cf5e7a434717490842fb5712ad894e9f0 100644 (file)
@@ -433,7 +433,7 @@ static int ejs_find_domainsecrets(MprVarHandle eid, int argc, struct MprVar **ar
                return -1;
        }
 
-       samba3 = mprGetThisPtr(eid, "samba3");
+       samba3 = (struct samba3 *)mprGetThisPtr(eid, "samba3");
        mprAssert(samba3);
        sec = samba3_find_domainsecrets(samba3, mprToString(argv[0]));
 
index b83178dbba8e561618d99cd473c9661507f48689..541303ff2d0ecf3d9b920b9f4f1eb68c1d4abe8c 100644 (file)
@@ -238,7 +238,7 @@ static int ejs_join(MprVarHandle eid, int argc, struct MprVar **argv)
                goto failed;
        }
        for (i=1;list[i];i++) {
-               ret = talloc_asprintf_append(ret, "%s%s", separator, list[i]);
+               ret = talloc_asprintf_append_buffer(ret, "%s%s", separator, list[i]);
                if (ret == NULL) {
                        goto failed;
                }
@@ -275,7 +275,7 @@ static int ejs_sprintf(MprVarHandle eid, int argc, struct MprVar **argv)
        ret = talloc_strdup(tmp_ctx, "");
 
        /* avoid all the format string warnings */
-       _asprintf_append = (_asprintf_append_t)talloc_asprintf_append;
+       _asprintf_append = (_asprintf_append_t)talloc_asprintf_append_buffer;
 
        /*
          hackity hack ...
@@ -284,7 +284,7 @@ static int ejs_sprintf(MprVarHandle eid, int argc, struct MprVar **argv)
                char *fmt2;
                int len, len_count=0;
                char *tstr;
-               ret = talloc_asprintf_append(ret, "%*.*s", 
+               ret = talloc_asprintf_append_buffer(ret, "%*.*s", 
                                             (int)(p-format), (int)(p-format), 
                                             format);
                if (ret == NULL) goto failed;
@@ -299,7 +299,7 @@ static int ejs_sprintf(MprVarHandle eid, int argc, struct MprVar **argv)
                        tstr--;
                }
                if (strcmp(tstr, "%") == 0) {
-                       ret = talloc_asprintf_append(ret, "%%");
+                       ret = talloc_asprintf_append_buffer(ret, "%%");
                        if (ret == NULL) {
                                goto failed;
                        }
@@ -372,7 +372,7 @@ static int ejs_sprintf(MprVarHandle eid, int argc, struct MprVar **argv)
                format += len+1;
        }
 
-       ret = talloc_asprintf_append(ret, "%s", format);
+       ret = talloc_asprintf_append_buffer(ret, "%s", format);
        mpr_Return(eid, mprString(ret));
        talloc_free(tmp_ctx);
        return 0;          
@@ -437,7 +437,7 @@ static int ejs_encodeURIComponent(MprVarHandle eid, int argc, char **argv)
                if (!isalnum(s[i])) count++;
        }
        
-       ret = talloc_size(mprMemCtx(), i + count*2 + 1);
+       ret = talloc_array(mprMemCtx(), char, i + count*2 + 1);
        if (ret == NULL) {
                return -1;
        }
@@ -470,7 +470,7 @@ static int ejs_decodeURIComponent(MprVarHandle eid, int argc, char **argv)
        
        s = argv[0];
 
-       ret = talloc_size(mprMemCtx(), strlen(s) + 1);
+       ret = talloc_array(mprMemCtx(), char, strlen(s) + 1);
        if (ret == NULL) {
                return -1;
        }
index 96e665ab3a97fe2948e74d374c13c5f241bb2bc4..10de8e162e86b4e678fb6bd85be48398920cb019 100644 (file)
@@ -294,7 +294,7 @@ static int ejs_sys_file_load(MprVarHandle eid, int argc, char **argv)
 */
 static int ejs_sys_file_save(MprVarHandle eid, int argc, char **argv)
 {
-       BOOL ret;
+       bool ret;
        if (argc != 2) {
                ejsSetErrorMsg(eid, "sys_file_save invalid arguments");
                return -1;
@@ -311,7 +311,7 @@ static int ejs_sys_file_save(MprVarHandle eid, int argc, char **argv)
 */
 static int ejs_sys_mkdir(MprVarHandle eid, int argc, struct MprVar **argv)
 {
-       BOOL ret;
+       bool ret;
        char *name;
        if (argc != 2) {
                ejsSetErrorMsg(eid, "sys_mkdir invalid arguments, need mkdir(dirname, mode)");
index c97bc1ff8df2973c37c3060a45f288d0252f61ad..29ce763f96667931cd72a97e1613cfcfeb142674 100644 (file)
 #include "scripting/ejs/smbcalls.h"
 #include "auth/gensec/gensec.h"
 #include "ldb/include/ldb.h"
+#include "dynconfig.h"
 
 static EjsId eid;
 
-static void smbscript_ejs_exception(const char *reason)
+_NORETURN_ static void smbscript_ejs_exception(const char *reason)
 {
        Ejs *ep = ejsPtr(eid);
        ejsSetErrorMsg(eid, "%s", reason);
@@ -52,7 +53,9 @@ int main(int argc, const char **argv)
        fault_setup(argv[0]);
 
        if (getenv("SMB_CONF_PATH")) {
-               lp_set_cmdline("config file", getenv("SMB_CONF_PATH"));
+               lp_load(getenv("SMB_CONF_PATH"));
+       } else {
+               lp_load(dyn_CONFIGFILE);
        }
 
        ldb_global_init();
@@ -60,7 +63,6 @@ int main(int argc, const char **argv)
        gensec_init();
        mprSetCtx(mem_ctx);
 
-       lp_load();
 
        if (argc < 2) {
                fprintf(stderr, "You must supply a script name\n");
index fd6de2695f3f055955e472009c5b51ea3ed2e29e..870e33f84a6877219c05e3bca7010b82f1fa42ef 100644 (file)
@@ -162,7 +162,6 @@ function ldb_erase(info, ldb)
        /* delete the specials */
        ldb.del("@INDEXLIST");
        ldb.del("@ATTRIBUTES");
-       ldb.del("@SUBCLASSES");
        ldb.del("@MODULES");
        ldb.del("@PARTITION");
        ldb.del("@KLUDGEACL");
@@ -356,6 +355,11 @@ function setup_file(template, message, fname, subobj)
        var f = fname;
        var src = lp.get("setup directory") + "/" + template;
 
+       if (! sys.stat(src)) {
+               message("Template file not found: %s\n",src);
+               assert(0);
+       }
+
        sys.unlink(f);
 
        var data = sys.file_load(src);
@@ -490,6 +494,17 @@ function provision_fix_subobj(subobj, paths)
        subobj.NETLOGONPATH = paths.netlogon;
        subobj.SYSVOLPATH = paths.sysvol;
 
+       if (subobj.DOMAIN_CONF == undefined) {
+               subobj.DOMAIN_CONF = subobj.DOMAIN;
+       }
+       if (subobj.REALM_CONF == undefined) {
+               subobj.REALM_CONF = subobj.REALM;
+       }
+       if (subobj.SERVERROLE != "domain controller") {
+               subobj.REALM = subobj.HOSTNAME;
+               subobj.DOMAIN = subobj.HOSTNAME;
+       }
+
        return true;
 }
 
@@ -537,6 +552,8 @@ function provision_become_dc(subobj, message, erase, paths, session_info)
 
        setup_ldb("secrets.ldif", info, paths.secrets, false);
 
+       setup_ldb("secrets_dc.ldif", info, paths.secrets, false);
+
        return true;
 }
 
@@ -572,8 +589,16 @@ function provision(subobj, message, blank, paths, session_info, credentials, lda
        /* only install a new smb.conf if there isn't one there already */
        var st = sys.stat(paths.smbconf);
        if (st == undefined) {
+               var smbconfsuffix;
+               if (subobj.SERVERROLE == "domain controller") {
+                       smbconfsuffix = "dc";
+               } else if (subobj.SERVERROLE == "member server") {
+                       smbconfsuffix = "member";
+               } else {
+                       smbconfsuffix = subobj.SERVERROLE;
+               }
                message("Setting up " + paths.smbconf +"\n");
-               setup_file("provision.smb.conf", info.message, paths.smbconf, subobj);
+               setup_file("provision.smb.conf." + smbconfsuffix, info.message, paths.smbconf, subobj);
                lp.reload();
        }
        /* only install a new shares config db if there is none */
@@ -725,7 +750,7 @@ function provision(subobj, message, blank, paths, session_info, credentials, lda
        message("Setting up sam.ldb users and groups\n");
        setup_add_ldif("provision_users.ldif", info, samdb, false);
 
-       if (lp.get("server role") == "domain controller") {
+       if (subobj.SERVERROLE == "domain controller") {
                message("Setting up self join\n");
                setup_add_ldif("provision_self_join.ldif", info, samdb, false);
                setup_add_ldif("provision_group_policy.ldif", info, samdb, false);
@@ -738,6 +763,9 @@ function provision(subobj, message, blank, paths, session_info, credentials, lda
                sys.mkdir(paths.sysvol + "/"+ subobj.DNSDOMAIN + "/Policies/{" + subobj.POLICYGUID + "}/User", 0755);
 
                sys.mkdir(paths.netlogon, 0755);
+
+               setup_ldb("secrets_dc.ldif", info, paths.secrets, false);
+
        }
 
        if (setup_name_mappings(info, samdb) == false) {
@@ -810,8 +838,8 @@ function provision_schema(subobj, message, tmp_schema_path, paths)
 function provision_dns(subobj, message, paths, session_info, credentials)
 {
        var lp = loadparm_init();
-       if (lp.get("server role") != "domain controller") {
-               message("No DNS zone required for role %s\n", lp.get("server role"));
+       if (subobj.SERVERROLE != "domain controller") {
+               message("No DNS zone required for role %s\n", subobj.SERVERROLE);
                return;
        }
        message("Setting up DNS zone: " + subobj.DNSDOMAIN + " \n");
@@ -887,6 +915,7 @@ function provision_guess()
        var rdn_list;
        random_init(local);
 
+       subobj.SERVERROLE   = strlower(lp.get("server role"));
        subobj.REALM        = strupper(lp.get("realm"));
        subobj.DOMAIN       = lp.get("workgroup");
        subobj.HOSTNAME     = hostname();
@@ -1101,15 +1130,21 @@ function provision_validate(subobj, message)
        }
 
 
-       if (strupper(lp.get("workgroup")) != strupper(subobj.DOMAIN)) {
+       if (strupper(lp.get("workgroup")) != strupper(subobj.DOMAIN_CONF)) {
                message("workgroup '%s' in smb.conf must match chosen domain '%s'\n",
-                       lp.get("workgroup"), subobj.DOMAIN);
+                       lp.get("workgroup"), subobj.DOMAIN_CONF);
                return false;
        }
 
-       if (strupper(lp.get("realm")) != strupper(subobj.REALM)) {
+       if (strupper(lp.get("realm")) != strupper(subobj.REALM_CONF)) {
                message("realm '%s' in smb.conf must match chosen realm '%s'\n",
-                       lp.get("realm"), subobj.REALM);
+                       lp.get("realm"), subobj.REALM_CONF);
+               return false;
+       }
+
+       if (strupper(lp.get("server role")) != strupper(subobj.SERVERROLE)) {
+               message("server role '%s' in smb.conf must match chosen role '%s'\n",
+                       lp.get("server role"), subobj.SERVERROLE);
                return false;
        }
 
index 61e808126868e1834c6bdc1026575b3b12be57c1..bf9a481e4ee6bdf11ea113b3fed08362508c5e7c 100644 (file)
@@ -9,7 +9,7 @@ OBJ_FILES = dcerpc_wrap.o
 
 # Swig extensions
 swig: lib/tdb/swig/_tdb.$(SHLIBEXT) lib/ldb/swig/_ldb.$(SHLIBEXT) \
-       libcli/swig/_libcli_nbt.$(SHLIBEXT)
+       libcli/swig/_libcli_nbt.$(SHLIBEXT) libcli/swig/_libcli_smb.$(SHLIBEXT)
 
 .SUFFIXES: _wrap.c .i
 
index 1d67a6d85d2a9f39c3e1be4c680bb5032233014c..a0afda3d1966744d8aeee48bedcf9334a23750c6 100644 (file)
@@ -3,18 +3,22 @@ bunch of tests all at once.
 
 The following environments are currently available:
 
- - none: No server set up
+ - none: No server set up, no variables set.
  - dc: Domain controller set up. The following environment variables will 
    be set:
-     * USERNAME
-        * PASSWORD
-        * DOMAIN
-        * REALM
-        * SERVER
+     * USERNAME: Administrator user name
+        * PASSWORD: Administrator password
+        * DOMAIN: Domain name
+        * REALM: Realm name
+        * SERVER: DC host name 
+        * SERVER_IP: DC IPv4 address
+        * NETBIOSNAME: DC NetBIOS name
+        * NETIOSALIAS: DC NetBIOS alias
+
  - member: Domain controller and member server that is joined to it set up. The
    following environment variables will be set:
-     * USERNAME
-        * PASSWORD
-        * DOMAIN
-        * REALM
-        * SERVER (contains the name of the member server)
+     * USERNAME: Domain administrator user name
+        * PASSWORD: Domain administrator password
+        * DOMAIN: Domain name
+        * REALM: Realm name
+        * SERVER: Name of the member server
index 1be412c356f6ccfb365ba72db10e21a2da971c20..2ecafb42d0834ed715067ff7a666c24bb1cba529 100644 (file)
@@ -9,7 +9,10 @@ use strict;
 sub parse_results($$$$$)
 {
        my ($msg_ops, $msg_state, $statistics, $fh, $expecting_failure) = @_;
-       my $expected_ret = 1;
+       my $unexpected_ok = 0;
+       my $expected_fail = 0;
+       my $unexpected_fail = 0;
+       my $unexpected_err = 0;
        my $open_tests = {};
 
        while(<$fh>) {
@@ -34,6 +37,7 @@ sub parse_results($$$$$)
                                if ($expecting_failure->("$msg_state->{NAME}/$2")) {
                                        $statistics->{TESTS_UNEXPECTED_OK}++;
                                        $msg_ops->end_test($msg_state, $2, $1, 1, $reason);
+                                       $unexpected_ok++;
                                } else {
                                        $statistics->{TESTS_EXPECTED_OK}++;
                                        $msg_ops->end_test($msg_state, $2, $1, 0, $reason);
@@ -43,10 +47,11 @@ sub parse_results($$$$$)
                                if ($expecting_failure->("$msg_state->{NAME}/$2")) {
                                        $statistics->{TESTS_EXPECTED_FAIL}++;
                                        $msg_ops->end_test($msg_state, $2, $1, 0, $reason);
-                                       $expected_ret = 0;
+                                       $expected_fail++;
                                } else {
                                        $statistics->{TESTS_UNEXPECTED_FAIL}++;
                                        $msg_ops->end_test($msg_state, $2, $1, 1, $reason);
+                                       $unexpected_fail++;
                                }
                        } elsif ($1 eq "skip") {
                                $statistics->{TESTS_SKIP}++;
@@ -56,6 +61,7 @@ sub parse_results($$$$$)
                                $statistics->{TESTS_ERROR}++;
                                delete $open_tests->{$2};
                                $msg_ops->end_test($msg_state, $2, $1, 1, $reason);
+                               $unexpected_err++;
                        }
                } else {
                        $msg_ops->output_msg($msg_state, $_);
@@ -63,12 +69,18 @@ sub parse_results($$$$$)
        }
 
        foreach (keys %$open_tests) {
-               $msg_ops->end_test($msg_state, $_, "error", 1, 
-                                                  "was started but never finished!");
+               $msg_ops->end_test($msg_state, $_, "error", 1,
+                                  "was started but never finished!");
                $statistics->{TESTS_ERROR}++;
+               $unexpected_err++;
        }
 
-       return $expected_ret;
+       return 1 if $unexpected_err > 0;
+       return 1 if $unexpected_fail > 0;
+       return 1 if $unexpected_ok > 0 and $expected_fail > 0;
+       return 0 if $unexpected_ok > 0 and $expected_fail == 0;
+       return 0 if $expected_fail > 0;
+       return 1;
 }
 
 1;
index 42f90188ed82808da3f7e1a47912da680ba84382..67776ffc766f7bbe5ca4162f97db7215d2edaa94 100644 (file)
@@ -1,3 +1,2 @@
 - warn about unexpected successes
 - better way to detect that smbd has finished initialization
-- move ldap-specific code into mktestdc.sh
index b12208bd9f72f754b79b8df8a077141e7f36fc1e..951fbee4ec0eb672723fd649353b42466311eb96 100644 (file)
@@ -8,6 +8,7 @@ package Samba3;
 use strict;
 use Cwd qw(abs_path);
 use FindBin qw($RealBin);
+use POSIX;
 
 sub binpath($$)
 {
@@ -33,18 +34,51 @@ sub teardown_env($$)
 {
        my ($self, $envvars) = @_;
 
-       $self->samba3_stop_sig_term($envvars->{PIDDIR});
-       $self->samba3_stop_sig_kill($envvars->{PIDDIR});
+       my $smbdpid = read_pid($envvars, "smbd");
+       my $nmbdpid = read_pid($envvars, "nmbd");
+#      my $winbinddpid = read_pid($envvars, "winbindd");
+
+       $self->stop_sig_term($smbdpid);
+       $self->stop_sig_term($nmbdpid);
+#      $self->stop_sig_term($winbinddpid);
+       $self->stop_sig_kill($smbdpid);
+       $self->stop_sig_kill($nmbdpid);
+#      $self->stop_sig_kill($winbinddpid);
 
        return 0;
 }
 
+sub getlog_env_app($$$)
+{
+       my ($self, $envvars, $name) = @_;
+
+       my $title = "$name LOG of: $envvars->{NETBIOSNAME}\n";
+       my $out = $title;
+
+       open(LOG, "<".$envvars->{$name."_TEST_LOG"});
+
+       seek(LOG, $envvars->{$name."_TEST_LOG_POS"}, SEEK_SET);
+       while (<LOG>) {
+               $out .= $_;
+       }
+       $envvars->{$name."_TEST_LOG_POS"} = tell(LOG);
+       close(LOG);
+
+       return "" if $out eq $title;
+       return $out;
+}
+
 sub getlog_env($$)
 {
        my ($self, $envvars) = @_;
+       my $ret = "";
 
-       # TODO...
-       return "";
+       $ret .= $self->getlog_env_app($envvars, "SMBD");
+       $ret .= $self->getlog_env_app($envvars, "NMBD");
+#      $ret .= $self->getlog_env_app($envvars, "WINBINDD");
+
+       return $ret;
 }
 
 sub check_env($$)
@@ -62,7 +96,7 @@ sub setup_env($$$)
        if ($envname eq "dc") {
                return $self->setup_dc("$path/dc");
        } else {
-               die("Samba4 can't provide environment '$envname'");
+               return undef;
        }
 }
 
@@ -70,9 +104,12 @@ sub setup_dc($$)
 {
        my ($self, $path) = @_;
 
-       my $vars = $self->provision($path);
+       my $vars = $self->provision($path, "dc");
 
-       $self->check_or_start($vars, ($ENV{NMBD_MAXTIME} or 2700), ($ENV{SMBD_MAXTIME} or 2700));
+       $self->check_or_start($vars,
+                             ($ENV{NMBD_MAXTIME} or 2700),
+                             ($ENV{WINBINDD_MAXTIME} or 2700),
+                             ($ENV{SMBD_MAXTIME} or 2700));
 
        $self->wait_for_start($vars);
 
@@ -84,27 +121,37 @@ sub stop($)
        my ($self) = @_;
 }
 
-sub samba3_stop_sig_term($$) {
-       my ($self, $piddir) = @_;
-       my $ret = 0;
-       kill("USR1", `cat $piddir/timelimit.nmbd.pid`) or \
-               kill("ALRM", `cat $piddir/timelimit.nmbd.pid`) or $ret++;
+sub stop_sig_term($$) {
+       my ($self, $pid) = @_;
+       kill("USR1", $pid) or kill("ALRM", $pid) or warn("Unable to kill $pid: $!");
+}
 
-       kill("USR1", `cat $piddir/timelimit.smbd.pid`) or \
-               kill("ALRM", `cat $piddir/timelimit.smbd.pid`) or $ret++;
+sub stop_sig_kill($$) {
+       my ($self, $pid) = @_;
+       kill("ALRM", $pid) or warn("Unable to kill $pid: $!");
+}
 
-       return $ret;
+sub write_pid($$$)
+{
+       my ($env_vars, $app, $pid) = @_;
+
+       open(PID, ">$env_vars->{PIDDIR}/timelimit.$app.pid");
+       print PID $pid;
+       close(PID);
 }
 
-sub samba3_stop_sig_kill($$) {
-       my ($self, $piddir) = @_;
-       kill("ALRM", `cat $piddir/timelimit.nmbd.pid`); 
-       kill("ALRM", `cat $piddir/timelimit.smbd.pid`);
-       return 0;
+sub read_pid($$)
+{
+       my ($env_vars, $app) = @_;
+
+       open(PID, "<$env_vars->{PIDDIR}/timelimit.$app.pid");
+       my $pid = <PID>;
+       close(PID);
+       return $pid;
 }
 
 sub check_or_start($$$$) {
-       my ($self, $env_vars, $nmbd_maxtime, $smbd_maxtime) = @_;
+       my ($self, $env_vars, $nmbd_maxtime, $winbindd_maxtime, $smbd_maxtime) = @_;
 
        unlink($env_vars->{NMBD_TEST_LOG});
        print "STARTING NMBD...";
@@ -112,28 +159,58 @@ sub check_or_start($$$$) {
        if ($pid == 0) {
                open STDOUT, ">$env_vars->{NMBD_TEST_LOG}";
                open STDERR, '>&STDOUT';
-       
+
+               $ENV{WINBINDD_SOCKET_DIR} = $env_vars->{WINBINDD_SOCKET_DIR};
+
+               my @optargs = ("-d0");
+               if (defined($ENV{NMBD_OPTIONS})) {
+                       @optargs = split(/ /, $ENV{NMBD_OPTIONS});
+               }
+
                $ENV{MAKE_TEST_BINARY} = $self->binpath("nmbd");
-               exec($self->binpath("timelimit"), $nmbd_maxtime, $self->binpath("nmbd"), "-F", "-S", "--no-process-group", "-d0" ,"-s", $env_vars->{SERVERCONFFILE}) or die("Unable to start nmbd: $!");
+               exec($self->binpath("timelimit"), $nmbd_maxtime, $self->binpath("nmbd"), "-F", "-S", "--no-process-group", "-s", $env_vars->{SERVERCONFFILE}, @optargs) or die("Unable to start nmbd: $!");
        }
-       open(PID, ">$env_vars->{PIDDIR}/timelimit.nmbd.pid");
-       print PID $pid;
-       close(PID);
+       write_pid($env_vars, "nmbd", $pid);
        print "DONE\n";
 
+# disable winbindd until the build-farm faked_users work with it
+#      unlink($env_vars->{WINBINDD_TEST_LOG});
+#      print "STARTING WINBINDD...";
+#      $pid = fork();
+#      if ($pid == 0) {
+#              open STDOUT, ">$env_vars->{WINBINDD_TEST_LOG}";
+#              open STDERR, '>&STDOUT';
+#
+#              $ENV{WINBINDD_SOCKET_DIR} = $env_vars->{WINBINDD_SOCKET_DIR};
+#
+#              my @optargs = ("-d0");
+#              if (defined($ENV{WINBINDD_OPTIONS})) {
+#                      @optargs = split(/ /, $ENV{WINBINDD_OPTIONS});
+#              }
+#
+#              $ENV{MAKE_TEST_BINARY} = $self->binpath("winbindd");
+#              exec($self->binpath("timelimit"), $winbindd_maxtime, $self->binpath("winbindd"), "-F", "-S", "--no-process-group", "-s", $env_vars->{SERVERCONFFILE}, @optargs) or die("Unable to start winbindd: $!");
+#      }
+#      write_pid($env_vars, "winbindd", $pid);
+#      print "DONE\n";
+
        unlink($env_vars->{SMBD_TEST_LOG});
        print "STARTING SMBD...";
        $pid = fork();
        if ($pid == 0) {
                open STDOUT, ">$env_vars->{SMBD_TEST_LOG}";
                open STDERR, '>&STDOUT';
-       
+
+               $ENV{WINBINDD_SOCKET_DIR} = $env_vars->{WINBINDD_SOCKET_DIR};
+
                $ENV{MAKE_TEST_BINARY} = $self->binpath("smbd");
-               exec($self->binpath("timelimit"), $nmbd_maxtime, $self->binpath("smbd"), "-F", "-S", "--no-process-group", "-d0" ,"-s", $env_vars->{SERVERCONFFILE}) or die("Unable to start smbd: $!");
+               my @optargs = ("-d0");
+               if (defined($ENV{SMBD_OPTIONS})) {
+                       @optargs = split(/ /, $ENV{SMBD_OPTIONS});
+               }
+               exec($self->binpath("timelimit"), $smbd_maxtime, $self->binpath("smbd"), "-F", "-S", "--no-process-group", "-s", $env_vars->{SERVERCONFFILE}, @optargs) or die("Unable to start smbd: $!");
        }
-       open(PID, ">$env_vars->{PIDDIR}/timelimit.smbd.pid");
-       print PID $pid;
-       close(PID);
+       write_pid($env_vars, "smbd", $pid);
        print "DONE\n";
 
        return 0;
@@ -173,31 +250,50 @@ sub create_clientconf($$$)
        close(CONF);
 }
 
-sub provision($$)
+sub provision($$$)
 {
-       my ($self, $prefix) = @_;
+       my ($self, $prefix, $role) = @_;
 
        ##
        ## setup the various environment variables we need
        ##
 
        my %ret = ();
-       my $server = "localhost2";
+       my $server = "LOCALHOST2";
        my $server_ip = "127.0.0.2";
+       my $domain = "SAMBA-TEST";
+
        my $username = `PATH=/usr/ucb:$ENV{PATH} whoami`;
+       chomp $username;
        my $password = "test";
 
        my $srcdir="$RealBin/..";
        my $scriptdir="$srcdir/selftest";
        my $prefix_abs = abs_path($prefix);
-       my $shrdir="$prefix_abs/tmp";
+
+       my @dirs = ();
+
+       my $shrdir="$prefix_abs/share";
+       push(@dirs,$shrdir);
+
        my $libdir="$prefix_abs/lib";
+       push(@dirs,$libdir);
+
        my $piddir="$prefix_abs/pid";
-       my $conffile="$libdir/server.conf";
+       push(@dirs,$piddir);
+
        my $privatedir="$prefix_abs/private";
+       push(@dirs,$privatedir);
+
        my $lockdir="$prefix_abs/lockdir";
+       push(@dirs,$lockdir);
+
        my $logdir="$prefix_abs/logs";
-       my $domain = "SAMBA-TEST";
+       push(@dirs,$logdir);
+
+       # this gets autocreated by winbindd
+       my $wbsockdir="$prefix_abs/winbindd";
+       my $wbsockprivdir="$lockdir/winbindd_privileged";
 
        ## 
        ## create the test directory layout
@@ -205,10 +301,9 @@ sub provision($$)
        mkdir($prefix_abs, 0777);
        print "CREATE TEST ENVIRONMENT IN '$prefix'...";
        system("rm -rf $prefix_abs/*");
-       mkdir($_, 0777) foreach($privatedir,$libdir,$piddir,$lockdir,$logdir);
-       my $tmpdir = "$prefix_abs/tmp";
-       mkdir($tmpdir, 0777);
-       chmod 0777, $tmpdir;
+       mkdir($_, 0777) foreach(@dirs);
+
+       my $conffile="$libdir/server.conf";
 
        open(CONF, ">$conffile") or die("Unable to open $conffile");
        print CONF "
@@ -241,8 +336,19 @@ sub provision($$)
        printing = bsd
        printcap name = /dev/null
 
+";
+
+       if ($role eq "dc") {
+               print CONF "\tdomain logons = yes\n";
+               print CONF "\tdomain master = yes\n";
+       }
+
+print CONF "
+
+       winbindd:socket dir = $wbsockdir
+
 [tmp]
-       path = $tmpdir
+       path = $shrdir
        read only = no
        smbd:sharedelay = 100000
        map hidden = yes
@@ -279,6 +385,7 @@ sub provision($$)
 
        $ret{SERVER_IP} = $server_ip;
        $ret{NMBD_TEST_LOG} = "$prefix/nmbd_test.log";
+       $ret{WINBINDD_TEST_LOG} = "$prefix/winbindd_test.log";
        $ret{SMBD_TEST_LOG} = "$prefix/smbd_test.log";
        $ret{SERVERCONFFILE} = $conffile;
        $ret{CONFIGURATION} ="-s $conffile";
@@ -288,6 +395,8 @@ sub provision($$)
        $ret{NETBIOSNAME} = $server;
        $ret{PASSWORD} = $password;
        $ret{PIDDIR} = $piddir;
+       $ret{WINBINDD_SOCKET_DIR} = $wbsockdir;
+       $ret{WINBINDD_PRIV_PIPE_DIR} = $wbsockprivdir;
        return \%ret;
 }
 
index 11afc0e6f31c1dbcc083b076ac293f15882f2411..944ed83d589d0437e92da13ba0dd0028cc302a79 100644 (file)
@@ -104,6 +104,9 @@ sub check_or_start($$$)
                if (defined($max_time)) {
                        $optarg = "--maximum-runtime=$max_time ";
                }
+               if (defined($ENV{SMBD_OPTIONS})) {
+                       $optarg.= " $ENV{SMBD_OPTIONS}";
+               }
                my $ret = system("$valgrind $self->{bindir}/smbd $optarg $env_vars->{CONFIGURATION} -M single -i --leak-report-full");
                if ($? == -1) {
                        print "Unable to start smbd: $ret: $!\n";
@@ -216,17 +219,27 @@ sub mk_openldap($$$)
        system("$self->{bindir}/ad2oLschema $configuration --option=convert:target=openldap -H $ldapdir/schema-tmp.ldb -I $self->{setupdir}/schema-map-openldap-2.3 -O $ldapdir/backend-schema.schema >&2") == 0 or die("schema conversion for OpenLDAP failed");
 
        my $oldpath = $ENV{PATH};
-       $ENV{PATH} = "/usr/local/sbin:/usr/sbin:/sbin:$ENV{PATH}";
+       $ENV{PATH} = "$ENV{OPENLDAP_PATH}/usr/local/sbin:/usr/sbin:/sbin:$ENV{PATH}";
 
        unlink($modconf);
        open(CONF, ">$modconf"); close(CONF);
 
+       if (system("slaptest -u -f $slapd_conf >&2") != 0) {
+               open(CONF, ">$modconf"); 
+               # enable slapd modules
+               print CONF "
+moduleload     back_hdb
+moduleload     syncprov
+";
+               close(CONF);
+       }
+
        if (system("slaptest -u -f $slapd_conf >&2") != 0) {
                open(CONF, ">$modconf"); 
                # enable slapd modules
                print CONF "
 modulepath     /usr/lib/ldap
-moduleload     back_bdb
+moduleload     back_hdb
 moduleload     syncprov
 ";
                close(CONF);
@@ -283,6 +296,7 @@ sub provision($$$$$$)
        my $ncalrpcdir = "$prefix_abs/ncalrpc";
        my $lockdir = "$prefix_abs/lockdir";
        my $winbindd_socket_dir = "$prefix_abs/winbind_socket";
+       my $winbindd_priv_pipe_dir = "$piddir/smbd.tmp/winbind_pipe";
 
        my $configuration = "--configfile=$conffile";
        my $ldapdir = "$privatedir/ldap";
@@ -297,10 +311,6 @@ sub provision($$$$$$)
                $tmpdir);
 
 
-       my $localdomain = $domain;
-       $localdomain = $netbiosname if $server_role eq "member server";
-       my $localrealm = $realm;
-       $localrealm = $netbiosname if $server_role eq "member server";
        my $localbasedn = $basedn;
        $localbasedn = "DC=$netbiosname" if $server_role eq "member server";
 
@@ -417,8 +427,8 @@ my @provision_options = ("$self->{bindir}/smbscript", "$self->{setupdir}/provisi
        push (@provision_options, "--host-name=$netbiosname");
        push (@provision_options, "--host-ip=$ifaceipv4");
        push (@provision_options, "--quiet");
-       push (@provision_options, "--domain=$localdomain");
-       push (@provision_options, "--realm=$localrealm");
+       push (@provision_options, "--domain=$domain");
+       push (@provision_options, "--realm=$realm");
        push (@provision_options, "--adminpass=$password");
        push (@provision_options, "--krbtgtpass=krbtgt$password");
        push (@provision_options, "--machinepass=machine$password");
@@ -426,6 +436,7 @@ my @provision_options = ("$self->{bindir}/smbscript", "$self->{setupdir}/provisi
        push (@provision_options, "--simple-bind-dn=cn=Manager,$localbasedn");
        push (@provision_options, "--password=$password");
        push (@provision_options, "--root=$root");
+       push (@provision_options, "--server-role=$server_role");
 
        my $ldap_uri= "$ldapdir/ldapi";
        $ldap_uri =~ s|/|%2F|g;
@@ -445,7 +456,9 @@ my @provision_options = ("$self->{bindir}/smbscript", "$self->{setupdir}/provisi
                PASSWORD => $password,
                LDAPDIR => $ldapdir,
                WINBINDD_SOCKET_DIR => $winbindd_socket_dir,
+               WINBINDD_PRIV_PIPE_DIR => $winbindd_priv_pipe_dir,
                NCALRPCDIR => $ncalrpcdir,
+               LOCKDIR => $lockdir,
                CONFIGURATION => $configuration,
                SOCKET_WRAPPER_DEFAULT_IFACE => $swiface
        };
@@ -453,7 +466,7 @@ my @provision_options = ("$self->{bindir}/smbscript", "$self->{setupdir}/provisi
        if (defined($self->{ldap})) {
 
                 push (@provision_options, "--ldap-backend=$ldap_uri");
-               system("$self->{bindir}/smbscript $self->{setupdir}/provision-backend $configuration --ldap-manager-pass=$password --root=$root --realm=$localrealm --host-name=$netbiosname --ldap-backend-type=$self->{ldap}>&2") == 0 or die("backend provision failed");
+               system("$self->{bindir}/smbscript $self->{setupdir}/provision-backend $configuration --ldap-manager-pass=$password --root=$root --realm=$realm --host-name=$netbiosname --ldap-backend-type=$self->{ldap}>&2") == 0 or die("backend provision failed");
 
                if ($self->{ldap} eq "openldap") {
                       ($ret->{SLAPD_CONF}, $ret->{OPENLDAP_PIDFILE}) = $self->mk_openldap($ldapdir, $configuration) or die("Unable to create openldap directories");
index 7d6c3a987aed03c62587403af73d3a50d909b3b8..efb1e3ef5b4b18791e6cb2ae89bf551fcbd6e1c8 100644 (file)
@@ -7,10 +7,10 @@ use Exporter;
 
 use strict;
 
-sub new($$) {
-       my ($class) = @_;
-       my $self = { 
-               start => time(),
+sub new($$$$) {
+       my ($class, $statistics) = @_;
+       my $self = {
+               statistics => $statistics,
                test_output => {}
        };
        bless($self, $class);
@@ -21,11 +21,12 @@ sub start_testsuite($$)
        my ($self, $state) = @_;
        my $out = "";
 
+       my $duration = $state->{START_TIME} - $self->{statistics}->{START_TIME};
        $out .= "--==--==--==--==--==--==--==--==--==--==--\n";
        $out .= "Running test $state->{NAME} (level 0 stdout)\n";
        $out .= "--==--==--==--==--==--==--==--==--==--==--\n";
        $out .= scalar(localtime())."\n";
-       $out .= "SELFTEST RUNTIME: " . ($state->{START_TIME} - $self->{START_TIME}) . "s\n";
+       $out .= "SELFTEST RUNTIME: " . $duration . "s\n";
        $out .= "NAME: $state->{NAME}\n";
        $out .= "CMD: $state->{CMD}\n";
 
@@ -58,7 +59,7 @@ sub end_testsuite($$$$$)
        if ($ret == $expected_ret) {
                $out .= "ALL OK\n";
        } else {
-               $out .= "ERROR: $ret";
+               $out .= "ERROR: $ret\n";
                $out .= $self->{test_output}->{$state->{NAME}};
        }
 
@@ -84,7 +85,11 @@ sub start_test($$$)
 
 sub end_test($$$$$$)
 {
-       my ($self, $state, $testname, $result, $expected, $reason) = @_;
+       my ($self, $state, $testname, $result, $unexpected, $reason) = @_;
+
+       return unless ($unexpected);
+
+       $self->{test_output}->{$state->{NAME}} .= "UNEXPECTED($result): $testname\n";
 }
 
 sub summary($)
@@ -99,11 +104,11 @@ sub missing_env($$$)
        print "FAIL: $name (ENV[$envname] not available!)\n";
 }
 
-sub skip_testsuite($$)
+sub skip_testsuite($$$$)
 {
-       my ($self, $name) = @_;
+       my ($self, $envname, $name, $reason) = @_;
 
-       print "SKIPPED: $name\n";
+       # Ignore skipped tests
 }
 
 1;
index 156b5b98c7e212749883694b3f8d649de75dd6ea..22488576b41fd4434bdc2768a0ea5ba1827edc26 100644 (file)
@@ -7,6 +7,8 @@ use Exporter;
 use strict;
 use warnings;
 
+use FindBin qw($RealBin);
+
 sub new($$$$) {
        my ($class, $dirname, $statistics) = @_;
        my $self = { 
@@ -21,11 +23,12 @@ sub new($$$$) {
                        unexpected_success => [],
                        expected_failure => [],
                        unexpected_failure => [],
+                       skip_testsuites => [],
                        error => []
                }
        };
 
-       link("selftest/output/testresults.css", "$dirname/testresults.css");
+       link("$RealBin/output/testresults.css", "$dirname/testresults.css");
 
        open(INDEX, ">$dirname/index.html");
 
@@ -89,6 +92,29 @@ sub start_testsuite($$)
 
        $self->print_html_header("Test Results for $state->{NAME}",
                                     *TEST);
+
+       if ($state->{ENVNAME} ne "none") {
+               print TEST "<h2>Environment settings</h2>\n";
+
+               print TEST "  <table>\n";
+               print TEST "    <tr><td><b>Variable name</b></td><td><b>Variable value</b></td></tr>\n";
+               foreach (keys %{$state->{ENVVARS}}) {
+                       print TEST "    <tr><td>$_</td><td>";
+                       my $val = $state->{ENVVARS}->{$_};
+                       if ($val =~ /^\.\// and -r $val) { 
+                               print TEST "<a href=\"../$val\">$val</a>"; 
+                       } elsif (-r $val) {
+                               print TEST "<a href=\"$val\">$val</a>"; 
+                       } else { 
+                               print TEST $val; 
+                       }
+                       print TEST "</td></tr>\n";
+               }
+               print TEST "  </table>\n";
+       }
+
+       print TEST "<h2>Tests</h2>\n";
+
        print TEST "  <table>\n";
 }
 
@@ -116,6 +142,7 @@ sub end_testsuite($$$$$)
 
        print TEST "</table>\n";
 
+       print TEST "<div class=\"command\">$state->{CMD}</div>\n";
        print TEST "<div class=\"duration\">Duration: " . (time() - $state->{START_TIME}) . "s</div>\n";
 
        $self->print_html_footer(*TEST);
@@ -261,6 +288,7 @@ sub summary($)
        print INDEX "</tr>\n";
 
        print INDEX "</table>\n";
+       print INDEX "<a href=\"summary.html\">Summary</a>\n";
        print INDEX "</center>\n";
        $self->print_html_footer(*INDEX);
        close(INDEX);
@@ -298,6 +326,27 @@ sub summary($)
        print_table("Unexpected failures", $summ->{unexpected_failure});
        print_table("Skipped tests", $summ->{skip});
        print_table("Expected failures", $summ->{expected_failure});
+
+       print SUMMARY "<h3>Skipped testsuites</h3>\n";
+       print SUMMARY "<table>\n";
+       print SUMMARY "<tr>\n";
+       print SUMMARY "  <td class=\"tableHead\">Testsuite</td>\n";
+       print SUMMARY "  <td class=\"tableHead\">Reason</td>\n";
+       print SUMMARY "</tr>\n";
+
+       foreach (@{$summ->{skip_testsuites}}) {
+               print SUMMARY "<tr>\n";
+               print SUMMARY "  <td>$$_[1]</td>\n";
+               if (defined($$_[2])) {
+                       print SUMMARY "  <td>$$_[2]</td>\n";
+               } else {
+                       print SUMMARY "  <td></td>\n";
+               }
+               print SUMMARY "</tr>\n";
+       }
+
+       print SUMMARY "</table>";
+
        $self->print_html_footer(*SUMMARY);
        close(SUMMARY);
 }
@@ -306,20 +355,15 @@ sub missing_env($$$)
 {
        my ($self, $name, $envname) = @_;
 
-       print INDEX "<tr>\n";
-       print INDEX "  <td class=\"testSuite\">$name</td>\n";
-       print INDEX "  <td class=\"resultSkipped\" colspan=\"2\">SKIPPED - environment `$envname` not available!</td>\n";
-       print INDEX "</tr>\n";
+       $self->skip_testsuite($envname, $name, "environment `$envname` not available!");
 }
 
-sub skip_testsuite($$)
+sub skip_testsuite($$$$)
 {
-       my ($self, $name) = @_;
+       my ($self, $envname, $name, $reason) = @_;
 
-       print INDEX "<tr>\n";
-       print INDEX "  <td class=\"testSuite\">$name</td>\n";
-       print INDEX "  <td class=\"resultSkipped\" colspan=\"2\">SKIPPED</td>\n";
-       print INDEX "</tr>\n";
+       push (@{$self->{error_summary}->{skip_testsuites}}, 
+                 [$envname, $name, $reason]);
 }
 
 1;
index 10d6eee215745f6b7706e78275384367c0fd24e0..e4abb2d05aadbc2f61bb20a52580c31c2ac2b15d 100644 (file)
@@ -13,8 +13,7 @@ sub new($$$$) {
                immediate => $immediate, 
                statistics => $statistics,
                test_output => {},
-               suitesfailed => [],
-               start => time()
+               suitesfailed => []
        };
        bless($self, $class);
 }
@@ -61,6 +60,8 @@ sub end_testsuite($$$$$)
        my ($self, $state, $expected_ret, $ret, $envlog) = @_;
        my $out = "";
 
+       $self->output_msg($state, "ENVLOG: $envlog\n") if ($envlog ne "");
+
        if ($ret != $expected_ret) {
                $self->output_msg($state, "ERROR: $ret\n");
        }
@@ -77,9 +78,24 @@ sub start_test($$)
        my ($state, $testname) = @_;
 }
 
-sub end_test($$$$$)
+sub end_test($$$$$$)
 {
-       my ($state, $testname, $result, $unexpected, $reason) = @_;
+       my ($self, $state, $testname, $result, $unexpected, $reason) = @_;
+       my $append = "";
+
+       unless ($unexpected) {
+               $self->{test_output}->{$state->{NAME}} = "";
+               return;
+       }
+
+       $append = "UNEXPECTED($result): $testname\n";
+
+       $self->{test_output}->{$state->{NAME}} .= $append;
+
+       if ($self->{immediate} and not $self->{verbose}) {
+               print $self->{test_output}->{$state->{NAME}};
+               $self->{test_output}->{$state->{NAME}} = "";
+       }
 }
 
 sub summary($)
@@ -111,11 +127,15 @@ sub missing_env($$$)
        print "FAIL: $name (ENV[$envname] not available!)\n";
 }
 
-sub skip_testsuite($$)
+sub skip_testsuite($$$)
 {
-       my ($self, $name) = @_;
+       my ($self, $envname, $name, $reason) = @_;
 
-       print "SKIPPED: $name\n";
+       if ($reason) {
+               print "SKIPPED: $name [$reason]\n";
+       } else {
+               print "SKIPPED: $name\n";
+       }
 }
 
 1;
index 56c4b0ead4260ce650f458ad495952f4c64ca220..66d1d6b2ad2721725ed7cf65c95ebc150a63b48b 100644 (file)
@@ -122,3 +122,8 @@ div.duration
        text-align: right;
        font-weight: bold;
 }
+
+div.command
+{
+       background-color: gray;
+}
index 3f8a74f7bcfd7e0e900e19a7c4852f866993af9f..3ab87f8dcc66a5c6365f559e8e185b9840b254ff 100755 (executable)
@@ -13,7 +13,7 @@ selftest - Samba test runner
 
 selftest --help
 
-selftest [--srcdir=DIR] [--builddir=DIR] [--target=samba4|samba3|win] [--socket-wrapper] [--quick] [--one] [--prefix=prefix] [--immediate] [TESTS]
+selftest [--srcdir=DIR] [--builddir=DIR] [--target=samba4|samba3|win] [--socket-wrapper] [--quick] [--one] [--prefix=prefix] [--immediate] [--testlist=FILE] [TESTS]
 
 =head1 DESCRIPTION
 
@@ -69,15 +69,23 @@ The format for the file is, one entry per line:
 
 TESTSUITE-NAME/TEST-NAME
 
+The reason for a test can also be specified, by adding a hash sign (#) and the reason 
+after the test name.
+
 =item I<--skip>
 
 Specify a file containing a list of tests that should be skipped. Possible candidates are
-tests that segfault the server, flip or don't end.
+tests that segfault the server, flip or don't end. The format of this file is the same as 
+for the --expected-failures flag.
 
 =item I<--one>
 
 Abort as soon as one test fails.
 
+=item I<--testlist>
+
+Load a list of tests from the specified location.
+
 =back
 
 =head1 ENVIRONMENT
@@ -129,7 +137,7 @@ my $opt_socket_wrapper_keep_pcap = undef;
 my $opt_one = 0;
 my $opt_immediate = 0;
 my $opt_expected_failures = undef;
-my $opt_skip = undef;
+my @opt_skip = ();
 my $opt_verbose = 0;
 my $opt_testenv = 0;
 my $ldap = undef;
@@ -138,6 +146,7 @@ my $opt_resetup_env = undef;
 my $opt_bindir = undef;
 my $opt_no_lazy_setup = undef;
 my $opt_format = "plain";
+my @opt_testlists = ();
 
 my $srcdir = ".";
 my $builddir = ".";
@@ -161,26 +170,30 @@ my $statistics = {
        TESTS_SKIP => 0,
 };
 
-sub expecting_failure($)
+sub find_in_list($$)
 {
-       my $fullname = shift;
+       my ($list, $fullname) = @_;
 
-       foreach (@expected_failures) {
-               return 1 if ($fullname =~ /$_/);
+       foreach (@$list) {
+               if ($fullname =~ /$$_[0]/) {
+                        return ($$_[1]) if ($$_[1]);
+                        return "NO REASON SPECIFIED";
+               }
        }
 
-       return 0;
+       return undef;
 }
 
-sub skip($)
+sub expecting_failure($)
 {
-       my $fullname = shift;
-
-       foreach (@skips) {
-               return 1 if ($fullname =~ /$_/);
-       }
+       my ($name) = @_;
+       return find_in_list(\@expected_failures, $name);
+}
 
-       return 0;
+sub skip($)
+{
+       my ($name) = @_;
+       return find_in_list(\@skips, $name);
 }
 
 sub getlog_env($);
@@ -213,11 +226,12 @@ sub cleanup_pcap($$$)
        $state->{PCAP_FILE} = undef;
 }
 
-sub run_testsuite($$$$$$)
+sub run_testsuite($$$$$$$)
 {
-       my ($envname, $name, $cmd, $i, $totalsuites, $msg_ops) = @_;
+       my ($envname, $envvars, $name, $cmd, $i, $totalsuites, $msg_ops) = @_;
        my $msg_state = {
                ENVNAME => $envname,
+               ENVVARS => $envvars,
                NAME    => $name,
                CMD     => $cmd,
                INDEX   => $i,
@@ -234,6 +248,7 @@ sub run_testsuite($$$$$$)
                $msg_ops, $msg_state, $statistics, *RESULT, \&expecting_failure);
 
        my $ret = close(RESULT);
+       $ret = 0 unless $ret == 1;
 
        cleanup_pcap($msg_state, $expected_ret, $ret);
 
@@ -266,6 +281,7 @@ Usage: $Script [OPTIONS] PREFIX
 Generic options:
  --help                     this help page
  --target=samba4|samba3|win Samba version to target
+ --testlist=FILE                       file to read available tests from
 
 Paths:
  --prefix=DIR               prefix to run tests in [st]
@@ -273,7 +289,7 @@ Paths:
  --builddir=DIR             output directory [.]
 
 Target Specific:
- --socket-wrapper-pcap=DIR     save traffic to pcap directories
+ --socket-wrapper-pcap         save traffic to pcap directories
  --socket-wrapper-keep-pcap keep all pcap files, not just those for tests that 
                             failed
  --socket-wrapper           enable socket wrapper
@@ -306,7 +322,7 @@ my $result = GetOptions (
                'one' => \$opt_one,
                'immediate' => \$opt_immediate,
                'expected-failures=s' => \$opt_expected_failures,
-               'skip=s' => \$opt_skip,
+               'skip=s' => \@opt_skip,
                'srcdir=s' => \$srcdir,
                'builddir=s' => \$builddir,
                'verbose' => \$opt_verbose,
@@ -317,6 +333,7 @@ my $result = GetOptions (
                'resetup-environment' => \$opt_resetup_env,
                'bindir:s' => \$opt_bindir,
                'format=s' => \$opt_format,
+               'testlist=s' => \@opt_testlists
            );
 
 exit(1) if (not $result);
@@ -368,12 +385,12 @@ $ENV{PREFIX_ABS} = $prefix_abs;
 $ENV{SRCDIR} = $srcdir;
 $ENV{SRCDIR_ABS} = $srcdir_abs;
 
-my $tls_enabled = not $opt_quick;
 if (defined($ENV{RUN_FROM_BUILD_FARM}) and 
        ($ENV{RUN_FROM_BUILD_FARM} eq "yes")) {
        $opt_format = "buildfarm";
 }
 
+my $tls_enabled = not $opt_quick;
 $ENV{TLS_ENABLED} = ($tls_enabled?"yes":"no");
 $ENV{LD_LDB_MODULE_PATH} = "$old_pwd/bin/modules/ldb";
 $ENV{LD_SAMBA_MODULE_PATH} = "$old_pwd/bin/modules";
@@ -387,7 +404,8 @@ if (defined($ENV{PKG_CONFIG_PATH})) {
 } else { 
        $ENV{PKG_CONFIG_PATH} = "$old_pwd/bin/pkgconfig";
 }
-$ENV{PATH} = "$old_pwd/bin:$ENV{PATH}";
+# Required for smbscript:
+$ENV{PATH} = "$old_pwd/bin:$old_pwd:$ENV{PATH}";
 
 
 if ($opt_socket_wrapper_pcap) {
@@ -404,37 +422,48 @@ if ($opt_socket_wrapper) {
 }
 
 my $target;
+my $testenv_default = "none";
 
 if ($opt_target eq "samba4") {
-       $target = new Samba4("$srcdir/bin", $ldap, "$srcdir/setup");
+       $testenv_default = "member";
+       $target = new Samba4($opt_bindir or "$srcdir/bin", $ldap, "$srcdir/setup");
 } elsif ($opt_target eq "samba3") {
-       if ($opt_socket_wrapper and `smbd -b | grep SOCKET_WRAPPER` eq "") {
+       if ($opt_socket_wrapper and `$opt_bindir/smbd -b | grep SOCKET_WRAPPER` eq "") {
                die("You must include --enable-socket-wrapper when compiling Samba in order to execute 'make test'.  Exiting....");
        }
-
+       $testenv_default = "dc";
        $target = new Samba3($opt_bindir);
 } elsif ($opt_target eq "win") {
        die("Windows tests will not run with socket wrapper enabled.") 
                if ($opt_socket_wrapper);
+       $testenv_default = "dc";
        $target = new Windows();
 }
 
-if (defined($opt_expected_failures)) {
-       open(KNOWN, "<$opt_expected_failures") or die("unable to read known failures file: $!");
-       while (<KNOWN>) { 
+sub read_test_regexes($)
+{
+       my ($name) = @_;
+       my @ret = ();
+       open(LF, "<$name") or die("unable to read $name: $!");
+       while (<LF>) { 
                chomp; 
-               s/([ \t]+)\#(.*)$//;
-               push (@expected_failures, $_); }
-       close(KNOWN);
+               if (/^(.*?)([ \t]+)\#(.*)$/) {
+                       push (@ret, [$1, $3]);
+               } else {
+                       s/^(.*?)([ \t]+)\#(.*)$//;
+                       push (@ret, [$_, undef]); 
+               }
+       }
+       close(LF);
+       return @ret;
 }
 
-if (defined($opt_skip)) {
-       open(SKIP, "<$opt_skip") or die("unable to read skip file: $!");
-       while (<SKIP>) { 
-               chomp; 
-               s/([ \t]+)\#(.*)$//;
-               push (@skips, $_); }
-       close(SKIP);
+if (defined($opt_expected_failures)) {
+       @expected_failures = read_test_regexes($opt_expected_failures);
+}
+
+foreach (@opt_skip) {
+       push (@skips, read_test_regexes($_));
 }
 
 my $interfaces = join(',', ("127.0.0.6/8", 
@@ -504,7 +533,7 @@ push (@torture_options, "--configfile=$conffile");
 # ensure any one smbtorture call doesn't run too long
 push (@torture_options, "--maximum-runtime=$torture_maxtime");
 push (@torture_options, "--target=$opt_target");
-push (@torture_options, "--basedir=$prefix");
+push (@torture_options, "--basedir=$prefix_abs");
 push (@torture_options, "--option=torture:progress=no") if ($opt_format eq "buildfarm");
 push (@torture_options, "--format=subunit");
 push (@torture_options, "--option=torture:quick=yes") if ($opt_quick);
@@ -520,28 +549,47 @@ $ENV{CONFIGURATION} = "--configfile=$conffile";
 
 my %required_envs = ();
 
-if ($opt_quick) {
-       open(IN, "$testsdir/tests_quick.sh|");
-} else {
-       open(IN, "$testsdir/tests_all.sh|");
-}
-while (<IN>) {
-       if ($_ eq "-- TEST --\n") {
-               my $name = <IN>;
-               $name =~ s/\n//g;
-               my $env = <IN>;
-               $env =~ s/\n//g;
-               my $cmdline = <IN>;
-               $cmdline =~ s/\n//g;
-               if (not defined($tests) or $name =~ /$tests/) {
-                       $required_envs{$env} = 1;
-                       push (@todo, [$name, $env, $cmdline]);
+sub read_testlist($)
+{
+       my ($filename) = @_;
+
+       my @ret = ();
+       open(IN, $filename) or die("Unable to open $filename: $!");
+
+       while (<IN>) {
+               if ($_ eq "-- TEST --\n") {
+                       my $name = <IN>;
+                       $name =~ s/\n//g;
+                       my $env = <IN>;
+                       $env =~ s/\n//g;
+                       my $cmdline = <IN>;
+                       $cmdline =~ s/\n//g;
+                       if (not defined($tests) or $name =~ /$tests/) {
+                               $required_envs{$env} = 1;
+                               push (@ret, [$name, $env, $cmdline]);
+                       }
+               } else {
+                       print;
                }
-       } else {
-               print;
        }
+       close(IN) or die("Error creating recipe");
+       return @ret;
+}
+
+if ($opt_quick) {
+       @todo = read_testlist("$testsdir/tests_quick.sh|");
+} else {
+       @todo = read_testlist("$testsdir/tests_all.sh|");
 }
-close(IN) or die("Error creating recipe");
+
+foreach (@opt_testlists) {
+       push(@todo, read_testlist($_));
+}
+
+if ($#todo == -1) {
+       print STDERR "No tests to run\n";
+       exit(1);
+       }
 
 my $suitestotal = $#todo + 1;
 my $i = 0;
@@ -574,9 +622,16 @@ my @exported_envvars = (
 
        # misc stuff
        "KRB5_CONFIG",
-       "WINBINDD_SOCKET_DIR"
+       "WINBINDD_SOCKET_DIR",
+       "WINBINDD_PRIV_PIPE_DIR"
 );
 
+$SIG{INT} = $SIG{QUIT} = $SIG{TERM} = sub { 
+       my $signame = shift;
+       teardown_env($_) foreach(keys %running_envs);
+       die("Received signal $signame");
+};
+
 sub setup_env($)
 {
        my ($envname) = @_;
@@ -595,6 +650,8 @@ sub setup_env($)
 
        return undef unless defined($testenv_vars);
 
+       $running_envs{$envname} = $testenv_vars;
+
        SocketWrapper::set_default_iface(6);
        write_clientconf($conffile, $testenv_vars);
 
@@ -606,7 +663,6 @@ sub setup_env($)
                }
        }
 
-       $running_envs{$envname} = $testenv_vars;
        return $testenv_vars;
 }
 
@@ -648,7 +704,7 @@ sub teardown_env($)
 my $msg_ops;
 if ($opt_format eq "buildfarm") {
        require output::buildfarm;
-       $msg_ops = new output::buildfarm();
+       $msg_ops = new output::buildfarm($statistics);
 } elsif ($opt_format eq "plain") {
        require output::plain;
        $msg_ops = new output::plain($opt_verbose, $opt_immediate, $statistics);
@@ -666,7 +722,7 @@ if ($opt_no_lazy_setup) {
 
 if ($opt_testenv) {
        my $testenv_name = $ENV{SELFTEST_TESTENV};
-       $testenv_name = "dc" unless defined($testenv_name);
+       $testenv_name = $testenv_default unless defined($testenv_name);
 
        my $testenv_vars = setup_env($testenv_name);
 
@@ -696,21 +752,22 @@ $envvarstr
                my $name = $$_[0];
                my $envname = $$_[1];
                
-               if (skip($name)) {
-                       $msg_ops->skip_testsuite($name);
+               my $skipreason = skip($name);
+               if ($skipreason) {
+                       $msg_ops->skip_testsuite($envname, $name, $skipreason);
                        $statistics->{SUITES_SKIPPED}++;
                        next;
                }
 
                my $envvars = setup_env($envname);
                if (not defined($envvars)) {
-                       $statistics->{SUITES_FAIL}++;
-                       $statistics->{TESTS_ERROR}++;
+                       $statistics->{SUITES_SKIPPED}++;
                        $msg_ops->missing_env($name, $envname);
                        next;
                }
 
-               run_testsuite($envname, $name, $cmd, $i, $suitestotal, $msg_ops);
+               run_testsuite($envname, $envvars, $name, $cmd, $i, $suitestotal, 
+                             $msg_ops);
 
                if (defined($opt_analyse_cmd)) {
                        system("$opt_analyse_cmd \"$name\"");
diff --git a/source/selftest/test_binding_string.sh b/source/selftest/test_binding_string.sh
deleted file mode 100755 (executable)
index a8afc07..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/sh
-
-incdir=`dirname $0`
-. $incdir/test_functions.sh
-
-for I in "ncacn_np:\$SERVER" \
-                "ncacn_ip_tcp:\$SERVER" \
-                "ncacn_np:\$SERVER[rpcecho]"  \
-                "ncacn_np:\$SERVER[/pipe/rpcecho]" \
-                "ncacn_np:\$SERVER[/pipe/rpcecho,sign,seal]" \
-                "ncacn_np:\$SERVER[,sign]" \
-                "ncacn_ip_tcp:\$SERVER[,sign]" \
-                "ncalrpc:" \
-                "308FB580-1EB2-11CA-923B-08002B1075A7@ncacn_np:\$SERVER" \
-                "308FB580-1EB2-11CA-923B-08002B1075A7@ncacn_ip_tcp:\$SERVER" 
-do
-       plantest "$I" dc bin/smbtorture $TORTURE_OPTIONS "$I" -U"\$USERNAME"%"\$PASSWORD" -W "\$DOMAIN" --option=torture:quick=yes RPC-ECHO "$*"
-done
index 76bb4c65e7914543d4e474d66613f262512016c7..f24f8d7398998e723a6e24070edafe3f8635d255 100755 (executable)
@@ -8,10 +8,10 @@ ADDARGS="$*"
 incdir=`dirname $0`
 . $incdir/test_functions.sh
 
-raw=`bin/smbtorture --list | grep "^RAW-" | xargs`
-base=`bin/smbtorture --list | grep "^BASE-" | xargs`
+raw=`$samba4bindir/smbtorture --list | grep "^RAW-" | xargs`
+base=`$samba4bindir/smbtorture --list | grep "^BASE-" | xargs`
 tests="$base $raw"
 
 for t in $tests; do
-    plantest "ntvfs/cifs $t" dc $VALGRIND bin/smbtorture $TORTURE_OPTIONS $ADDARGS //\$NETBIOSNAME/cifs -U"\$USERNAME"%"\$PASSWORD" $t
+    plantest "ntvfs/cifs $t" dc $VALGRIND $samba4bindir/smbtorture $TORTURE_OPTIONS $ADDARGS //\$NETBIOSNAME/cifs -U"\$USERNAME"%"\$PASSWORD" $t
 done
index f09aeca4e59bb32595fac9b6f4e5d827e8632080..38bbec4f4e4e38b82908503d6e30b10ce5629d81 100755 (executable)
@@ -10,7 +10,7 @@ for transport in $transports; do
   for ntlmoptions in \
         "--option=socket:testnonblock=True --option=torture:quick=yes"; do
    name="RPC-ECHO on $transport with $bindoptions and $ntlmoptions"
-   plantest "$name" dc bin/smbtorture $TORTURE_OPTIONS $transport:"\$SERVER[$bindoptions]" $ntlmoptions -U"\$USERNAME"%"\$PASSWORD" -W "\$DOMAIN" RPC-ECHO "$*"
+   plantest "$name" dc $samba4bindir/smbtorture $TORTURE_OPTIONS $transport:"\$SERVER[$bindoptions]" $ntlmoptions -U"\$USERNAME"%"\$PASSWORD" -W "\$DOMAIN" RPC-ECHO "$*"
   done
  done
 done
@@ -29,10 +29,10 @@ for transport in $transports; do
         "--option=clientntlmv2auth=yes  --option=ntlmssp_client:128bit=no --option=ntlmssp_client:keyexchange=no  --option=torture:quick=yes" \
     ; do
    name="RPC-ECHO on $transport with $bindoptions and $ntlmoptions"
-   plantest "$name" dc bin/smbtorture $TORTURE_OPTIONS $transport:"\$SERVER[$bindoptions]" $ntlmoptions -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN RPC-ECHO "$*"
+   plantest "$name" dc $samba4bindir/smbtorture $TORTURE_OPTIONS $transport:"\$SERVER[$bindoptions]" $ntlmoptions -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN RPC-ECHO "$*"
   done
  done
 done
 
 name="RPC-ECHO on ncacn_np over smb2"
-plantest "$name" dc bin/smbtorture $TORTURE_OPTIONS ncacn_np:"\$SERVER[smb2]" -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN RPC-ECHO "$*"
+plantest "$name" dc $samba4bindir/smbtorture $TORTURE_OPTIONS ncacn_np:"\$SERVER[smb2]" -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN RPC-ECHO "$*"
index c81a2afefbec04693968242f6372f0899ab069ea..86ea6cd8c90a4dcf9fbf863dfc28ca1d3b12e36b 100755 (executable)
@@ -6,11 +6,8 @@ CONFIGURATION="$*"
 incdir=`dirname $0`
 . $incdir/test_functions.sh
 
-SCRIPTDIR=../testprogs/ejs
-DATADIR=../testdata
-
-PATH=bin:$PATH
-export PATH
+SCRIPTDIR=$samba4srcdir/../testprogs/ejs
+DATADIR=$samba4srcdir/../testdata
 
 plantest "base.js" dc "$SCRIPTDIR/base.js" $CONFIGURATION
 plantest "samr.js" dc "$SCRIPTDIR/samr.js" $CONFIGURATION ncalrpc: -U\$USERNAME%\$PASSWORD
@@ -18,4 +15,4 @@ plantest "echo.js" dc "$SCRIPTDIR/echo.js" $CONFIGURATION ncalrpc: -U\$USERNAME%
 #plantest "ejsnet.js" dc "$SCRIPTDIR/ejsnet.js" $CONFIGURATION -U\$USERNAME%\$PASSWORD \$DOMAIN ejstestuser
 plantest "ldb.js" none "$SCRIPTDIR/ldb.js" `pwd` $CONFIGURATION
 plantest "samba3sam.js" none $SCRIPTDIR/samba3sam.js $CONFIGURATION `pwd` $DATADIR/samba3/
-plantest "winreg" dc scripting/bin/winreg $CONFIGURATION ncalrpc: 'HKLM' -U\$USERNAME%\$PASSWORD
+plantest "winreg" dc $samba4srcdir/scripting/bin/winreg $CONFIGURATION ncalrpc: 'HKLM' -U\$USERNAME%\$PASSWORD
index 6a7f8aba9883df45772cc156a8d59722a0079dc2..1983760c6480b6fb581de800916110ad39c35ded 100755 (executable)
@@ -10,3 +10,6 @@ plantest() {
        echo $env
        echo $cmdline
 }
+
+samba4srcdir=$incdir/..
+samba4bindir=$samba4srcdir/bin
index 627eb905fb175f3d002eaa9c894828e36892fc97..85c3f959159aadf6bb1ac1e4c982cc3491a48782 100755 (executable)
@@ -4,30 +4,28 @@
 incdir=`dirname $0`
 . $incdir/test_functions.sh
 
-p=ldap
 for options in "" "--option=socket:testnonblock=true" "-U\$USERNAME%\$PASSWORD --option=socket:testnonblock=true" "-U\$USERNAME%\$PASSWORD"; do
-    plantest "TESTING PROTOCOL $p with options $options" dc ../testprogs/blackbox/test_ldb.sh $p \$SERVER_IP $options
+    plantest "TESTING PROTOCOL ldap with options $options" dc $samba4srcdir/../testprogs/blackbox/test_ldb.sh ldap \$SERVER_IP $options
 done
 # see if we support ldaps
 if grep ENABLE_GNUTLS.1 include/config.h > /dev/null; then
-    p=ldaps
     for options in "" "-U\$USERNAME%\$PASSWORD"; do
-       plantest "TESTING PROTOCOL $p with options $options" dc ../testprogs/blackbox/test_ldb.sh $p \$SERVER_IP $options
+       plantest "TESTING PROTOCOL ldaps with options $options" dc $samba4srcdir/../testprogs/blackbox/test_ldb.sh ldaps \$SERVER_IP $options
     done
 fi
 for t in LDAP-CLDAP LDAP-BASIC LDAP-SCHEMA LDAP-UPTODATEVECTOR
 do
-       plantest "$t" dc bin/smbtorture $TORTURE_OPTIONS "-U\$USERNAME%\$PASSWORD" //\$SERVER_IP/_none_ $t
+       plantest "$t" dc $samba4bindir/smbtorture $TORTURE_OPTIONS "-U\$USERNAME%\$PASSWORD" //\$SERVER_IP/_none_ $t
 done
 
 # only do the ldb tests when not in quick mode - they are quite slow, and ldb
 # is now pretty well tested by the rest of the quick tests anyway
 test "$TORTURE_QUICK" = "yes" || {
-   LDBDIR=lib/ldb
+   LDBDIR=$samba4srcdir/lib/ldb
    export LDBDIR
    plantest "ldb" none $LDBDIR/tests/test-tdb.sh
 }
 
-SCRIPTDIR=../testprogs/ejs
+SCRIPTDIR=$samba4srcdir/../testprogs/ejs
 
 plantest "ejs ldap" dc $SCRIPTDIR/ldap.js $CONFIGURATION \$SERVER -U\$USERNAME%\$PASSWORD
index b3b8387f007e05ddca95ebf8adabd0c4ead62bf3..5f53b4efeda027be20a2d82a34585ddc384f4f4e 100755 (executable)
@@ -1,12 +1,10 @@
 #!/bin/sh
 
-local_tests=`bin/smbtorture --list | grep "^LOCAL-" | xargs`
-
 incdir=`dirname $0`
 . $incdir/test_functions.sh
 
-for t in $local_tests; do
-       plantest "$t" none $VALGRIND bin/smbtorture $TORTURE_OPTIONS ncalrpc: $t "$*"
+for t in `$samba4bindir/smbtorture --list | grep "^LOCAL-" | xargs`; do
+       plantest "$t" none $VALGRIND $samba4bindir/smbtorture $TORTURE_OPTIONS ncalrpc: $t "$*"
 done
 
-plantest "tdb stress" none $VALGRIND bin/tdbtorture
+plantest "tdb stress" none $VALGRIND $samba4bindir/tdbtorture
index 88b382fbebc365f572c9d7d4a9573a76e5d39d94..0fdc957d53daf55c74bb347ebecdfbff2c463815 100755 (executable)
@@ -3,6 +3,9 @@
 incdir=`dirname $0`
 . $incdir/test_functions.sh
 
-plantest "RPC-ECHO against member server with local creds" member $VALGRIND bin/smbtorture $TORTURE_OPTIONS ncacn_np:"\$NETBIOSNAME" -U"\$NETBIOSNAME/\$USERNAME"%"\$PASSWORD" RPC-ECHO "$*"
-plantest "RPC-ECHO against member server with domain creds" member $VALGRIND bin/smbtorture $TORTURE_OPTIONS ncacn_np:"\$NETBIOSNAME" -U"\$DOMAIN/\$DC_USERNAME"%"\$DC_PASSWORD" RPC-ECHO "$*"
-plantest "wbinfo -a against member server with domain creds" member $VALGRIND bin/wbinfo -a "\$DOMAIN/\$DC_USERNAME"%"\$DC_PASSWORD"
+plantest "RPC-ECHO against member server with local creds" member $VALGRIND $samba4bindir/smbtorture $TORTURE_OPTIONS ncacn_np:"\$NETBIOSNAME" -U"\$NETBIOSNAME/\$USERNAME"%"\$PASSWORD" RPC-ECHO "$*"
+plantest "RPC-ECHO against member server with domain creds" member $VALGRIND $samba4bindir/smbtorture $TORTURE_OPTIONS ncacn_np:"\$NETBIOSNAME" -U"\$DOMAIN/\$DC_USERNAME"%"\$DC_PASSWORD" RPC-ECHO "$*"
+plantest "RPC-SAMR against member server with local creds" member $VALGRIND $samba4bindir/smbtorture $TORTURE_OPTIONS ncacn_np:"\$NETBIOSNAME" -U"\$NETBIOSNAME/\$USERNAME"%"\$PASSWORD" "RPC-SAMR" "$*"
+plantest "RPC-SAMR-USERS against member server with local creds" member $VALGRIND $samba4bindir/smbtorture $TORTURE_OPTIONS ncacn_np:"\$NETBIOSNAME" -U"\$NETBIOSNAME/\$USERNAME"%"\$PASSWORD" "RPC-SAMR-USERS" "$*"
+plantest "RPC-SAMR-PASSWORDS against member server with local creds" member $VALGRIND $samba4bindir/smbtorture $TORTURE_OPTIONS ncacn_np:"\$NETBIOSNAME" -U"\$NETBIOSNAME/\$USERNAME"%"\$PASSWORD" "RPC-SAMR-PASSWORDS" "$*"
+plantest "wbinfo -a against member server with domain creds" member $VALGRIND $samba4bindir/wbinfo -a "\$DOMAIN/\$DC_USERNAME"%"\$DC_PASSWORD"
index 1ff5ee641d64a111a5d7127cd3c652fc139f736e..22062d5d44711ba300a9d0e4ff9032e202f399a9 100755 (executable)
@@ -4,18 +4,15 @@
 incdir=`dirname $0`
 . $incdir/test_functions.sh
 
-PATH=bin:$PATH
-export PATH
-
 TEST_NBT_ENVNAME=$1
 if test x"$TEST_NBT_ENVNAME" = x"";then
        TEST_NBT_ENVNAME="dc"
 fi
 
-NBT_TESTS=`bin/smbtorture --list | grep "^NBT-" | xargs`
+NBT_TESTS=`$samba4bindir/smbtorture --list | grep "^NBT-" | xargs`
 
 if test x"$TEST_NBT_ENVNAME" = x"dc";then
     for f in $NBT_TESTS; do
-        plantest "$f:$TEST_NBT_ENVNAME" $TEST_NBT_ENVNAME bin/smbtorture $TORTURE_OPTIONS //\$SERVER/_none_ $f -U\$USERNAME%\$PASSWORD 
+        plantest "$f:$TEST_NBT_ENVNAME" $TEST_NBT_ENVNAME $samba4bindir/smbtorture $TORTURE_OPTIONS //\$SERVER/_none_ $f -U\$USERNAME%\$PASSWORD 
     done
 fi
index c99fee4f46fb85219d68373740963a1fa5dd0834..1721c31b0261a4fd9f0fd0175b846f540442d7ab 100755 (executable)
@@ -2,23 +2,11 @@
 
 # add tests to this list as they start passing, so we test
 # that they stay passing
-ncacn_np_tests="NET-API-LOOKUP NET-API-LOOKUPHOST NET-API-LOOKUPPDC NET-API-RPCCONN-BIND NET-API-RPCCONN-SRV NET-API-RPCCONN-PDC NET-API-RPCCONN-DC NET-API-RPCCONN-DCINFO NET-API-LISTSHARES NET-API-CREATEUSER NET-API-DELETEUSER NET-API-DOMLIST"
-ncalrpc_tests="NET-API-RPCCONN-SRV NET-API-RPCCONN-DC NET-API-RPCCONN-DCINFO NET-API-LISTSHARES NET-API-CREATEUSER NET-API-DELETEUSER NET-USERINFO NET-USERADD NET-USERDEL NET-USERMOD NET-API-LOOKUPNAME NET-API-USERINFO NET-API-USERLIST NET-API-DOMOPENLSA NET-API-DOMCLOSELSA NET-API-DOMOPENSAMR NET-API-DOMCLOSESAMR NET-API-DOMLIST"
-ncacn_ip_tcp_tests="NET-API-LOOKUP NET-API-LOOKUPHOST NET-API-LOOKUPPDC NET-API-RPCCONN-SRV NET-API-RPCCONN-DC NET-API-RPCCONN-DCINFO NET-API-LISTSHARES NET-API-CREATEUSER NET-API-DELETEUSER NET-API-MODIFYUSER NET-API-DOMLIST"
-
 incdir=`dirname $0`
 . $incdir/test_functions.sh
 
-for bindoptions in seal,padcheck $VALIDATE bigendian; do
- for transport in ncalrpc ncacn_np ncacn_ip_tcp; do
-     case $transport in
-        ncalrpc) tests=$ncalrpc_tests ;;
-        ncacn_np) tests=$ncacn_np_tests ;;
-        ncacn_ip_tcp) tests=$ncacn_ip_tcp_tests ;;
-     esac
-   for t in $tests; do
-    name="$t on $transport with $bindoptions"
-    plantest "$name" dc $VALGRIND bin/smbtorture $TORTURE_OPTIONS $transport:"\$SERVER[$bindoptions]" -U"\$USERNAME"%"\$PASSWORD" -W "\$DOMAIN" $t "$*"
-   done
- done
+tests=`$samba4bindir/smbtorture --list | grep ^NET-`
+
+for t in $tests; do
+    plantest "$t" dc $VALGRIND $samba4bindir/smbtorture $TORTURE_OPTIONS "\$SERVER[$VALIDATE]" -U"\$USERNAME"%"\$PASSWORD" -W "\$DOMAIN" $t "$*"
 done
index f493cbe208f8e357e2a15dadd3b65bd8f06ec3ee..689d1038f1a1ac06c46627f5ff3fa170a9c59f5a 100755 (executable)
@@ -3,9 +3,9 @@
 incdir=`dirname $0`
 . $incdir/test_functions.sh
 
-if [ ! -f bin/nsstest ]; then
+if [ ! -f $samba4bindir/nsstest ]; then
        exit 0
 fi
 
-plantest "NSS-TEST using winbind" member $VALGRIND bin/nsstest bin/shared/libnss_winbind.so
+plantest "NSS-TEST using winbind" member $VALGRIND $samba4bindir/nsstest $samba4bindir/shared/libnss_winbind.so
 
index 6a20cd9fc8f64778092fb4c9bc9a030f873eabd2..1c68acf053f526410ed6eeebc55f868faf823a91 100755 (executable)
@@ -10,8 +10,8 @@ incdir=`dirname $0`
 if test x"${PIDL_TESTS_SKIP}" = x"yes"; then
    echo "Skipping pidl tests - PIDL_TESTS_SKIP=yes"
 elif $PERL -e 'eval require Test::More;' > /dev/null 2>&1; then
-  for f in pidl/tests/*.pl; do
-     plantest "$f" none $PERL $f "|" ./script/harness2subunit.pl
+  for f in $samba4srcdir/pidl/tests/*.pl; do
+     plantest "pidl/`basename $f`" none $PERL $f "|" $samba4srcdir/script/harness2subunit.pl
   done
 else 
    echo "Skipping pidl tests - Test::More not installed"
index 8a547b906ee21ce2f60f18b5a189a4258b4ec054..383766cdf390fdeff798b5a285f1acd4f3e894e6 100755 (executable)
@@ -8,11 +8,11 @@ ADDARGS="$*"
 incdir=`dirname $0`
 . $incdir/test_functions.sh
 
-smb2=`bin/smbtorture --list | grep "^SMB2-" | xargs`
-raw=`bin/smbtorture --list | grep "^RAW-" | xargs`
-base=`bin/smbtorture --list | grep "^BASE-" | xargs`
+smb2=`$samba4bindir/smbtorture --list | grep "^SMB2-" | xargs`
+raw=`$samba4bindir/smbtorture --list | grep "^RAW-" | xargs`
+base=`$samba4bindir/smbtorture --list | grep "^BASE-" | xargs`
 tests="$base $raw $smb2"
 
 for t in $tests; do
-    plantest "$t" dc $VALGRIND bin/smbtorture $TORTURE_OPTIONS $ADDARGS //\$SERVER/tmp -U"\$USERNAME"%"\$PASSWORD" $t
+    plantest "$t" dc $VALGRIND $samba4bindir/smbtorture $TORTURE_OPTIONS $ADDARGS //\$SERVER/tmp -U"\$USERNAME"%"\$PASSWORD" $t
 done
diff --git a/source/selftest/test_quick.sh b/source/selftest/test_quick.sh
deleted file mode 100755 (executable)
index 438c04e..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/bin/sh
-# run a quick set of filesystem tests
-
-ADDARGS="$*"
-
-incdir=`dirname $0`
-. $incdir/test_functions.sh
-
-tests="BASE-UNLINK BASE-ATTR BASE-DELETE"
-tests="$tests BASE-TCON BASE-OPEN"
-tests="$tests BASE-CHKPATH RAW-QFSINFO RAW-QFILEINFO RAW-SFILEINFO"
-tests="$tests RAW-MKDIR RAW-SEEK RAW-OPEN RAW-WRITE"
-tests="$tests RAW-UNLINK RAW-READ RAW-CLOSE RAW-IOCTL RAW-RENAME"
-tests="$tests RAW-EAS RAW-STREAMS"
-
-for t in $tests; do
-    plantest "$t" dc $VALGRIND bin/smbtorture $TORTURE_OPTIONS $ADDARGS //\$SERVER/tmp -U"\$USERNAME"%"\$PASSWORD" $t
-done
-
-name=BASE-OPEN
-plantest "ntvfs/cifs $name" dc $VALGRIND bin/smbtorture $TORTURE_OPTIONS $ADDARGS //\$NETBIOSNAME/cifs -U"\$USERNAME"%"\$PASSWORD" $name
index adcab0af39319de89dcf748d7e9348a618381980..3ac4e3de66434b9e517c00286bcde4b33be8b007 100755 (executable)
@@ -2,16 +2,28 @@
 
 # add tests to this list as they start passing, so we test
 # that they stay passing
-ncacn_np_tests="RPC-SPOOLSS RPC-SRVSVC RPC-UNIXINFO RPC-SCHANNEL RPC-JOIN RPC-LSA RPC-ECHO RPC-DSSETUP RPC-ALTERCONTEXT RPC-MULTIBIND RPC-NETLOGON RPC-MGMT RPC-HANDLES RPC-WINREG RPC-WKSSVC RPC-SVCCTL RPC-EPMAPPER RPC-INITSHUTDOWN RPC-EVENTLOG RPC-ATSVC RPC-SAMSYNC RPC-OXIDRESOLVE RPC-DFS"
-ncalrpc_tests="RPC-MGMT RPC-UNIXINFO RPC-SCHANNEL RPC-JOIN RPC-LSA RPC-ECHO RPC-DSSETUP RPC-ALTERCONTEXT RPC-MULTIBIND RPC-NETLOGON RPC-WINREG RPC-WKSSVC RPC-SVCCTL RPC-EPMAPPER RPC-EVENTLOG RPC-ATSVC RPC-INITSHUTDOWN RPC-OXIDRESOLVE RPC-DFS"
-ncacn_ip_tcp_tests="RPC-UNIXINFO RPC-SCHANNEL RPC-JOIN RPC-LSA RPC-ECHO RPC-DSSETUP RPC-ALTERCONTEXT RPC-MULTIBIND RPC-NETLOGON RPC-MGMT RPC-HANDLES RPC-WINREG RPC-WKSSVC RPC-SVCCTL RPC-EPMAPPER RPC-ATSVC RPC-EVENTLOG RPC-DSSYNC RPC-OXIDRESOLVE RPC-DFS"
-slow_ncacn_np_tests="RPC-SAMLOGON RPC-SAMR RPC-SAMR-USERS RPC-SAMR-PASSWORDS RPC-COUNTCALLS"
-slow_ncalrpc_tests="RPC-SAMR RPC-SAMR-PASSWORDS RPC-COUNTCALLS RPC-CRACKNAMES"
-slow_ncacn_ip_tcp_tests="RPC-SAMR RPC-SAMR-PASSWORDS RPC-COUNTCALLS RPC-CRACKNAMES"
+ncacn_np_tests="RPC-SCHANNEL RPC-JOIN RPC-LSA RPC-DSSETUP RPC-ALTERCONTEXT RPC-MULTIBIND RPC-NETLOGON RPC-HANDLES RPC-SAMSYNC RPC-SAMBA3SESSIONKEY RPC-SAMBA3-GETUSERNAME RPC-SAMBA3-LSA RPC-BINDSAMBA3 RPC-NETLOGSAMBA3 RPC-ASYNCBIND RPC-LSALOOKUP RPC-LSA-GETUSER RPC-SCHANNEL2 RPC-AUTHCONTEXT"
+ncalrpc_tests="RPC-SCHANNEL RPC-JOIN RPC-LSA RPC-DSSETUP RPC-ALTERCONTEXT RPC-MULTIBIND RPC-NETLOGON RPC-DRSUAPI RPC-ASYNCBIND RPC-LSALOOKUP RPC-LSA-GETUSER RPC-SCHANNEL2 RPC-AUTHCONTEXT"
+ncacn_ip_tcp_tests="RPC-SCHANNEL RPC-JOIN RPC-LSA RPC-DSSETUP RPC-ALTERCONTEXT RPC-MULTIBIND RPC-NETLOGON RPC-HANDLES RPC-DSSYNC RPC-ASYNCBIND RPC-LSALOOKUP RPC-LSA-GETUSER RPC-SCHANNEL2 RPC-AUTHCONTEXT"
+slow_ncacn_np_tests="RPC-SAMLOGON RPC-SAMR RPC-SAMR-USERS RPC-SAMR-PASSWORDS"
+slow_ncalrpc_tests="RPC-SAMR RPC-SAMR-PASSWORDS"
+slow_ncacn_ip_tcp_tests="RPC-SAMR RPC-SAMR-PASSWORDS RPC-CRACKNAMES"
 
 incdir=`dirname $0`
 . $incdir/test_functions.sh
 
+all_tests="$ncalrpc_tests $ncacn_np_tests $ncacn_ip_tcp_tests $slow_ncalrpc_tests $slow_ncacn_np_tests $slow_ncacn_ip_tcp_tests RPC-SECRETS RPC-SAMBA3-SHARESEC"
+
+# Make sure all tests get run
+for t in `$samba4bindir/smbtorture --list | grep "^RPC-"`
+do
+       echo $all_tests | grep $t  > /dev/null
+       if [ $? -ne 0 ]
+       then
+               auto_rpc_tests="$auto_rpc_tests $t"
+       fi
+done
+
 for bindoptions in seal,padcheck $VALIDATE bigendian; do
  for transport in ncalrpc ncacn_np ncacn_ip_tcp; do
      case $transport in
@@ -21,8 +33,15 @@ for bindoptions in seal,padcheck $VALIDATE bigendian; do
      esac
    for t in $tests; do
     name="$t on $transport with $bindoptions"
-    plantest "$name" dc $VALGRIND bin/smbtorture $TORTURE_OPTIONS $transport:"\$SERVER[$bindoptions]" -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN $t "$*"
+    plantest "$name" dc $VALGRIND $samba4bindir/smbtorture $TORTURE_OPTIONS $transport:"\$SERVER[$bindoptions]" -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN $t "$*"
    done
+   plantest "RPC-SAMBA3-SHARESEC on $transport with $bindoptions" dc $VALGRIND $samba4bindir/smbtorture $TORTURE_OPTIONS $transport:"\$SERVER[$bindoptions]" -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN --option=torture:share=tmp $t "$*"
+ done
+done
+
+for bindoptions in "" $VALIDATE bigendian; do
+ for t in $auto_rpc_tests; do
+  plantest "$t with $bindoptions" dc $VALGRIND $samba4bindir/smbtorture $TORTURE_OPTIONS "\$SERVER[$bindoptions]" -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN $t "$*"
  done
 done
 
@@ -35,7 +54,8 @@ for bindoptions in connect $VALIDATE ; do
      esac
    for t in $tests; do
     name="$t on $transport with $bindoptions"
-    plantest "$name" dc $VALGRIND bin/smbtorture $TORTURE_OPTIONS $transport:"\$SERVER[$bindoptions]" -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN $t "$*"
+    plantest "$name" dc $VALGRIND $samba4bindir/smbtorture $TORTURE_OPTIONS $transport:"\$SERVER[$bindoptions]" -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN $t "$*"
    done
  done
 done
+
diff --git a/source/selftest/test_rpc_quick.sh b/source/selftest/test_rpc_quick.sh
deleted file mode 100755 (executable)
index 8793e0b..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh
-
-# add tests to this list as they start passing, so we test
-# that they stay passing
-ncacn_np_tests="RPC-ALTERCONTEXT RPC-JOIN RPC-ECHO RPC-SCHANNEL RPC-NETLOGON RPC-UNIXINFO RPC-HANDLES"
-ncacn_ip_tcp_tests="RPC-ALTERCONTEXT RPC-JOIN RPC-ECHO RPC-HANDLES"
-ncalrpc_tests="RPC-ECHO"
-
-incdir=`dirname $0`
-. $incdir/test_functions.sh
-
-for bindoptions in seal,padcheck $VALIDATE bigendian; do
- for transport in ncalrpc ncacn_np ncacn_ip_tcp; do
-   case $transport in
-        ncalrpc) tests=$ncalrpc_tests ;;
-        ncacn_np) tests=$ncacn_np_tests ;;
-        ncacn_ip_tcp) tests=$ncacn_ip_tcp_tests ;;
-   esac
-   for t in $tests; do
-    name="$t on $transport with $bindoptions"
-    plantest "$name" dc $VALGRIND bin/smbtorture $TORTURE_OPTIONS $transport:"\$SERVER[$bindoptions]" -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN $t "$*"
-   done
- done
-done
index 1ed43cb8ebee365cfbc92b674803b069ae4bc4ba..692199acda8811efd4ae1eef06ba343fa10267bb 100755 (executable)
@@ -7,16 +7,14 @@ then
        exit 1
 fi
 
-SCRIPTDIR=../testprogs/ejs
-DATADIR=../testdata
-
-PATH=bin:$PATH
-export PATH
-
 mkdir -p $PREFIX
 rm -f $PREFIX/*
 
-. selftest/test_functions.sh
+incdir=`dirname $0`
+. $incdir/test_functions.sh
+
+SCRIPTDIR=$samba4srcdir/../testprogs/ejs
+DATADIR=$samba4srcdir/../testdata
 
-plantest "parse samba3" none bin/smbscript ../testdata/samba3/verify $CONFIGURATION ../testdata/samba3
-#plantest "upgrade" none bin/smbscript setup/upgrade $CONFIGURATION --verify --targetdir=$PREFIX ../testdata/samba3 ../testdata/samba3/smb.conf
+plantest "parse samba3" none $samba4bindir/smbscript $DATADIR/samba3/verify $CONFIGURATION $DATADIR/samba3
+#plantest "upgrade" none $samba4bindir/smbscript setup/upgrade $CONFIGURATION --verify --targetdir=$PREFIX ../testdata/samba3 ../testdata/samba3/smb.conf
index 30d03431badbf1dcd7754c831783ba3323117849..93be4f99f285fe86c3bba8728056b4edc6b0f91f 100755 (executable)
@@ -4,11 +4,7 @@ incdir=`dirname $0`
 . $incdir/test_functions.sh
 
 transport="ncacn_np"
-for bindoptions in bigendian seal; do
- for keyexchange in "yes" "no"; do
- for ntlm2 in "yes" "no"; do
- for lm_key in "yes" "no"; do
-  for ntlmoptions in \
+for ntlmoptions in \
         "-k no --option=usespnego=yes" \
         "-k no --option=usespnego=yes --option=ntlmssp_client:128bit=no" \
         "-k no --option=usespnego=yes --option=ntlmssp_client:56bit=yes" \
@@ -21,18 +17,14 @@ for bindoptions in bigendian seal; do
         "-k no --option=usespnego=no --option=clientntlmv2auth=yes" \
         "-k no --option=gensec:spnego=no --option=clientntlmv2auth=yes" \
         "-k no --option=usespnego=no"; do
-   name="RPC-SECRETS on $transport with $bindoptions with NTLM2:$ntlm2 KEYEX:$keyexchange LM_KEY:$lm_key $ntlmoptions"
-   plantest "$name" dc bin/smbtorture $TORTURE_OPTIONS $transport:"\$SERVER[$bindoptions]" --option=ntlmssp_client:keyexchange=$keyexchange --option=ntlmssp_client:ntlm2=$ntlm2 --option=ntlmssp_client:lm_key=$lm_key $ntlmoptions -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN --option=gensec:target_hostname=\$NETBIOSNAME RPC-SECRETS "$*"
-  done
- done
- done
- done
- name="RPC-SECRETS on $transport with $bindoptions with Kerberos"
- plantest "$name" dc bin/smbtorture $TORTURE_OPTIONS $transport:"\$SERVER[$bindoptions]" -k yes -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN "--option=gensec:target_hostname=\$NETBIOSNAME" RPC-SECRETS "$*"
- name="RPC-SECRETS on $transport with $bindoptions with Kerberos - use target principal"
- plantest "$name" dc bin/smbtorture $TORTURE_OPTIONS $transport:"\$SERVER[$bindoptions]" -k yes -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN "--option=clientusespnegoprincipal=yes" "--option=gensec:target_hostname=\$NETBIOSNAME" RPC-SECRETS "$*"
+   name="RPC-SECRETS on $transport with $bindoptions with $ntlmoptions"
+   plantest "$name" dc $samba4bindir/smbtorture $TORTURE_OPTIONS $transport:"\$SERVER[$bindoptions]"  $ntlmoptions -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN --option=gensec:target_hostname=\$NETBIOSNAME RPC-SECRETS "$*"
 done
+name="RPC-SECRETS on $transport with $bindoptions with Kerberos"
+plantest "$name" dc $samba4bindir/smbtorture $TORTURE_OPTIONS $transport:"\$SERVER[$bindoptions]" -k yes -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN "--option=gensec:target_hostname=\$NETBIOSNAME" RPC-SECRETS "$*"
+name="RPC-SECRETS on $transport with $bindoptions with Kerberos - use target principal"
+plantest "$name" dc $samba4bindir/smbtorture $TORTURE_OPTIONS $transport:"\$SERVER[$bindoptions]" -k yes -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN "--option=clientusespnegoprincipal=yes" "--option=gensec:target_hostname=\$NETBIOSNAME" RPC-SECRETS "$*"
 name="RPC-SECRETS on $transport with Kerberos - use Samba3 style login"
- plantest "$name" dc bin/smbtorture $TORTURE_OPTIONS $transport:"\$SERVER" -k yes -U"\$USERNAME"%"\$PASSWORD" -W "\$DOMAIN" "--option=gensec:fake_gssapi_krb5=yes" "--option=gensec:gssapi_krb5=no" "--option=gensec:target_hostname=\$NETBIOSNAME" RPC-SECRETS "$*"
+ plantest "$name" dc $samba4bindir/smbtorture $TORTURE_OPTIONS $transport:"\$SERVER" -k yes -U"\$USERNAME"%"\$PASSWORD" -W "\$DOMAIN" "--option=gensec:fake_gssapi_krb5=yes" "--option=gensec:gssapi_krb5=no" "--option=gensec:target_hostname=\$NETBIOSNAME" "RPC-SECRETS-none*" "$*"
 name="RPC-SECRETS on $transport with Kerberos - use Samba3 style login, use target principal"
- plantest "$name" dc bin/smbtorture $TORTURE_OPTIONS $transport:"\$SERVER" -k yes -U"\$USERNAME"%"\$PASSWORD" -W "\$DOMAIN" "--option=clientusespnegoprincipal=yes" "--option=gensec:fake_gssapi_krb5=yes" "--option=gensec:gssapi_krb5=no" "--option=gensec:target_hostname=\$NETBIOSNAME" RPC-SECRETS "$*"
+ plantest "$name" dc $samba4bindir/smbtorture $TORTURE_OPTIONS $transport:"\$SERVER" -k yes -U"\$USERNAME"%"\$PASSWORD" -W "\$DOMAIN" "--option=clientusespnegoprincipal=yes" "--option=gensec:fake_gssapi_krb5=yes" "--option=gensec:gssapi_krb5=no" "--option=gensec:target_hostname=\$NETBIOSNAME" "RPC-SECRETS-none*" "$*"
index 00cfb34a9f79bf5f8fb29fbfbc7a2c81005ce56f..3532cba18043a72ca35a9890ca49b8aa42172a8b 100755 (executable)
@@ -9,5 +9,5 @@ incdir=`dirname $0`
 tests="BASE-RW1"
 
 for t in $tests; do
-    plantest "$t" dc $VALGRIND bin/smbtorture $TORTURE_OPTIONS $ADDARGS //\$SERVER/simple -U"\$USERNAME"%"\$PASSWORD" $t
+    plantest "ntvfs/simple $t" dc $VALGRIND $samba4bindir/smbtorture $TORTURE_OPTIONS $ADDARGS //\$SERVER/simple -U"\$USERNAME"%"\$PASSWORD" $t
 done
diff --git a/source/selftest/test_winbind.sh b/source/selftest/test_winbind.sh
new file mode 100755 (executable)
index 0000000..832d12c
--- /dev/null
@@ -0,0 +1,28 @@
+#!/bin/sh
+#
+
+incdir=`dirname $0`
+. $incdir/test_functions.sh
+
+ENVNAME=$1
+if test x"$ENVNAME" = x"";then
+       ENVNAME="dc"
+fi
+
+WB_OPTS="${TORTURE_OPTIONS}"
+WB_OPTS="${WB_OPTS} --option=\"torture:strict mode=yes\""
+WB_OPTS="${WB_OPTS} --option=\"torture:timelimit=1\""
+WB_OPTS="${WB_OPTS} --option=\"torture:winbindd separator=\\\\\""
+WB_OPTS="${WB_OPTS} --option=\"torture:winbindd private pipe dir=\$WINBINDD_PRIV_PIPE_DIR\""
+WB_OPTS="${WB_OPTS} --option=\"torture:winbindd netbios name=\$SERVER\""
+WB_OPTS="${WB_OPTS} --option=\"torture:winbindd netbios domain=\$DOMAIN\""
+
+STRUCT_TESTS=`$samba4bindir/smbtorture --list | grep "^WINBIND-STRUCT" | xargs`
+for t in $STRUCT_TESTS; do
+       plantest "$ENVNAME:$t" $ENVNAME $samba4bindir/smbtorture $WB_OPTS //_none_/_none_ $t
+done
+
+NDR_TESTS=`$samba4bindir/smbtorture --list | grep "^WINBIND-NDR" | xargs`
+for t in $NDR_TESTS; do
+       plantest "$ENVNAME:$t" $ENVNAME $samba4bindir/smbtorture $WB_OPTS //_none_/_none_ $t
+done
index 7a1167e9ac345653b7535ffaaf466d07385953a0..0db85048480697bb3c3d5439d6c7b800d4c10237 100755 (executable)
@@ -1,18 +1,21 @@
 #!/bin/sh
- $SRCDIR/selftest/test_ejs.sh $CONFIGURATION
- $SRCDIR/selftest/test_ldap.sh 
- $SRCDIR/selftest/test_nbt.sh "dc"
- $SRCDIR/selftest/test_rpc.sh
- $SRCDIR/selftest/test_net.sh
- $SRCDIR/selftest/test_session_key.sh
- $SRCDIR/selftest/test_binding_string.sh
- $SRCDIR/selftest/test_echo.sh
- $SRCDIR/selftest/test_posix.sh
- $SRCDIR/selftest/test_cifs.sh
- $SRCDIR/selftest/test_local.sh
- $SRCDIR/selftest/test_pidl.sh
- $SRCDIR/selftest/test_blackbox.sh $PREFIX
- $SRCDIR/selftest/test_simple.sh
- $SRCDIR/selftest/test_s3upgrade.sh $PREFIX/upgrade
- $SRCDIR/selftest/test_member.sh
- $SRCDIR/selftest/test_nbt.sh "member"
+includedir=`dirname $0`
+$includedir/../bin/smbtorture -V
+$SRCDIR/selftest/test_ejs.sh $CONFIGURATION
+$SRCDIR/selftest/test_ldap.sh 
+$SRCDIR/selftest/test_nbt.sh "dc"
+$SRCDIR/selftest/test_winbind.sh "dc"
+$SRCDIR/selftest/test_rpc.sh
+$SRCDIR/selftest/test_net.sh
+$SRCDIR/selftest/test_session_key.sh
+$SRCDIR/selftest/test_echo.sh
+$SRCDIR/selftest/test_posix.sh
+$SRCDIR/selftest/test_cifs.sh
+$SRCDIR/selftest/test_local.sh
+$SRCDIR/selftest/test_pidl.sh
+$SRCDIR/selftest/test_blackbox.sh $PREFIX
+$SRCDIR/selftest/test_simple.sh
+$SRCDIR/selftest/test_s3upgrade.sh $PREFIX/upgrade
+$SRCDIR/selftest/test_member.sh
+$SRCDIR/selftest/test_nbt.sh "member"
+$SRCDIR/selftest/test_winbind.sh "member"
index bb3065b0a38fd7d175477cd44c641de7f4957ecc..c05185afad64c84557a03e6a584879cb5c003ca3 100755 (executable)
@@ -1,9 +1,47 @@
 #!/bin/sh
+ADDARGS="$*"
+
+incdir=`dirname $0`
+. $incdir/test_functions.sh
+
+$incdir/../bin/smbtorture -V
+
 TORTURE_QUICK="yes"
 export TORTURE_QUICK
 
 $SRCDIR/selftest/test_ejs.sh $CONFIGURATION
 $SRCDIR/selftest/test_ldap.sh
 $SRCDIR/selftest/test_nbt.sh
-$SRCDIR/selftest/test_quick.sh
-$SRCDIR/selftest/test_rpc_quick.sh
+
+tests="BASE-UNLINK BASE-ATTR BASE-DELETE"
+tests="$tests BASE-TCON BASE-OPEN"
+tests="$tests BASE-CHKPATH RAW-QFSINFO RAW-QFILEINFO RAW-SFILEINFO"
+tests="$tests RAW-MKDIR RAW-SEEK RAW-OPEN RAW-WRITE"
+tests="$tests RAW-UNLINK RAW-READ RAW-CLOSE RAW-IOCTL RAW-RENAME"
+tests="$tests RAW-EAS RAW-STREAMS"
+
+for t in $tests; do
+    plantest "$t" dc $VALGRIND $samba4bindir/smbtorture $TORTURE_OPTIONS $ADDARGS //\$SERVER/tmp -U"\$USERNAME"%"\$PASSWORD" $t
+done
+
+plantest "ntvfs/cifs BASE-OPEN" dc $VALGRIND $samba4bindir/smbtorture $TORTURE_OPTIONS $ADDARGS //\$NETBIOSNAME/cifs -U"\$USERNAME"%"\$PASSWORD" BASE-OPEN 
+
+# add tests to this list as they start passing, so we test
+# that they stay passing
+ncacn_np_tests="RPC-ALTERCONTEXT RPC-JOIN RPC-ECHO RPC-SCHANNEL RPC-NETLOGON RPC-UNIXINFO RPC-HANDLES"
+ncacn_ip_tcp_tests="RPC-ALTERCONTEXT RPC-JOIN RPC-ECHO RPC-HANDLES"
+ncalrpc_tests="RPC-ECHO"
+
+for bindoptions in seal,padcheck $VALIDATE bigendian; do
+ for transport in ncalrpc ncacn_np ncacn_ip_tcp; do
+   case $transport in
+        ncalrpc) tests=$ncalrpc_tests ;;
+        ncacn_np) tests=$ncacn_np_tests ;;
+        ncacn_ip_tcp) tests=$ncacn_ip_tcp_tests ;;
+   esac
+   for t in $tests; do
+    name="$t on $transport with $bindoptions"
+    plantest "$name" dc $VALGRIND $samba4bindir/smbtorture $TORTURE_OPTIONS $transport:"\$SERVER[$bindoptions]" -U"\$USERNAME"%"\$PASSWORD" -W \$DOMAIN $t "$*"
+   done
+ done
+done
index 17beb7a2d7b1058fb04bb7506b5cf09054102af5..025788093ef6cf5b6d342a121310ab522a1fb3b3 100644 (file)
@@ -3,11 +3,12 @@
 # the BIND nameserver.
 #
 
-#insert this into options {}
+# If you have a very recent BIND, supporting GSS-TSIG, 
+# insert this into options {}  (otherwise omit, it is not required if we don't accept updates)
 tkey-gssapi-credential "DNS/${DNSDOMAIN}";
 tkey-domain "${REALM}";
 
-#the zone file
+# You should always include the actual zone configuration reference:
 zone "${DNSDOMAIN}." IN {
         type master;
         file "${DNSDOMAIN}.zone";
@@ -29,7 +30,7 @@ zone "${DNSDOMAIN}." IN {
 # the user "named" once the daemon relinquishes its rights.  Therefore,
 # the file "${DNS_KEYTAB}" must be readable by the user that BIND run as.
 # If BIND is running as a non-root user, the "${DNS_KEYTAB}" file must have its
-# permissions altered to allow thge daemon to read it.  In the FC6
+# permissions altered to allow the daemon to read it.  In the FC6
 # example, execute the commands:
 # 
 # chgrp named ${DNS_KEYTAB_ABS}
index f6b9cde188b60d7ec429f91b691f18e7bd3f0551..bf03026987abc09e65f50e648cb501f81fcee3e0 100755 (executable)
@@ -14,7 +14,6 @@ options = GetOptions(ARGV,
                'realm=s',
                'domain=s',
                'domain-guid=s',
-               'domain-guid=s',
                'domain-sid=s',
                'policy-guid=s',
                'host-name=s',
@@ -32,6 +31,7 @@ options = GetOptions(ARGV,
                'users=s',
                'quiet',
                'blank',
+               'server-role=s',
                'partitions-only',
                'ldap-base',
                'ldap-backend=s',
@@ -84,11 +84,12 @@ provision [options]
  --users       GROUPNAME       choose 'users' group
  --quiet                       Be quiet
  --blank                       do not add users or groups, just the structure
+ --server-role  ROLE            Set server role to provision for (default standalone)
  --partitions-only              Configure Samba's partitions, but do not modify them (ie, join a BDC)
  --ldap-base                   output only an LDIF file, suitable for creating an LDAP baseDN
  --ldap-backend LDAPSERVER      LDAP server to use for this provision
- --ldap-module= MODULE          LDB mapping module to use for the LDAP backend
- --aci=         ACI             An arbitary LDIF fragment, particularly useful to loading a backend ACI value into a target LDAP server
+ --ldap-module  MODULE          LDB mapping module to use for the LDAP backend
+ --aci          ACI             An arbitary LDIF fragment, particularly useful to loading a backend ACI value into a target LDAP server
 You must provide at least a realm and domain
 
 ");
@@ -112,6 +113,7 @@ if (options["realm"] == undefined ||
 var lp = loadparm_init();
 lp.set("realm", options.realm);
 lp.set("workgroup", options.domain);
+lp.set("server role", options["server-role"]);
 lp.reload();
 
 var subobj = provision_guess();
@@ -166,6 +168,30 @@ if (ldapbase) {
 } else {
        provision(subobj, message, blank, paths, system_session, creds, ldapbackend);
        provision_dns(subobj, message, paths, system_session, creds);
+       message("To reproduce this provision, run with:\n");
+/*     There has to be a better way than this... */
+       message("--realm='%s' --domain='%s' \\\n", subobj.REALM_CONF, subobj.DOMAIN_CONF);
+       if (subobj.DOMAINGUID != undefined) {
+                message("--domain-guid='%s' \\\n", subobj.DOMAINGUID);
+       }
+       if (subobj.HOSTGUID != undefined) {
+                message("--host-guid='%s' \\\n", subobj.HOSTGUID);
+       }
+       message("--policy-guid='%s' --host-name='%s' --host-ip='%s' \\\n", subobj.POLICYGUID, subobj.HOSTNAME, subobj.HOSTIP);
+       message("--invocationid='%s' \\\n", subobj.INVOCATIONID);
+       message("--adminpass='%s' --krbtgtpass='%s' \\\n", subobj.ADMINPASS, subobj.KRBTGTPASS);
+       message("--machinepass='%s' --dnspass='%s' \\\n", subobj.MACHINEPASS, subobj.DNSPASS);
+       message("--root='%s' --nobody='%s' --nogroup-'%s' \\\n", subobj.ROOT, subobj.NOBODY, subobj.NOGROUP);
+       message("--wheel='%s' --users='%s' --server-role='%s' \\\n", subobj.WHEEL, subobj.USERS, subobj.SERVERROLE);
+       if (ldapbackend) {
+               message("--ldap-backend='%s' \\\n", subobj.LDAPBACKEND);
+       }
+       if (ldapmodule) {
+               message("--ldap-mdoule='%s' \\\n", + subobj.LDAPMODULE);
+       }
+       message("--aci='" + subobj.ACI + "' \\\n")
 }
+
+
 message("All OK\n");
 return 0;
diff --git a/source/setup/provision.smb.conf b/source/setup/provision.smb.conf
deleted file mode 100644 (file)
index fe08d7e..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-[globals]
-       netbios name    = ${HOSTNAME}
-       workgroup       = ${DOMAIN}
-       realm           = ${REALM}
-       server role     = domain controller
-
-[netlogon]
-       path = ${NETLOGONPATH}
-       read only = no
-
-[sysvol]
-       path = ${SYSVOLPATH}
-       read only = no
diff --git a/source/setup/provision.smb.conf.dc b/source/setup/provision.smb.conf.dc
new file mode 100644 (file)
index 0000000..5b8e141
--- /dev/null
@@ -0,0 +1,13 @@
+[globals]
+       netbios name    = ${HOSTNAME}
+       workgroup       = ${DOMAIN_CONF}
+       realm           = ${REALM_CONF}
+       server role     = ${SERVERROLE}
+
+[netlogon]
+       path = ${NETLOGONPATH}
+       read only = no
+
+[sysvol]
+       path = ${SYSVOLPATH}
+       read only = no
diff --git a/source/setup/provision.smb.conf.member b/source/setup/provision.smb.conf.member
new file mode 100644 (file)
index 0000000..bc37d4f
--- /dev/null
@@ -0,0 +1,5 @@
+[globals]
+       netbios name    = ${HOSTNAME}
+       workgroup       = ${DOMAIN_CONF}
+       realm           = ${REALM_CONF}
+       server role     = ${SERVERROLE}
diff --git a/source/setup/provision.smb.conf.standalone b/source/setup/provision.smb.conf.standalone
new file mode 100644 (file)
index 0000000..bc37d4f
--- /dev/null
@@ -0,0 +1,5 @@
+[globals]
+       netbios name    = ${HOSTNAME}
+       workgroup       = ${DOMAIN_CONF}
+       realm           = ${REALM_CONF}
+       server role     = ${SERVERROLE}
index 0e6ee4d84576bcfe18c518e14fa14d3c79fcb4e8..050f110d9a4adad188c9b0af71bac031a6a5a8ce 100644 (file)
@@ -66,29 +66,6 @@ instanceType: 4
 showInAdvancedViewOnly: TRUE
 systemFlags: 2181038080
 
-dn: CN=${NETBIOSNAME},CN=Servers,CN=${DEFAULTSITE},CN=Sites,${CONFIGDN}
-objectClass: top
-objectClass: server
-cn: ${NETBIOSNAME}
-instanceType: 4
-showInAdvancedViewOnly: TRUE
-systemFlags: 1375731712
-dNSHostName: ${DNSNAME}
-serverReference: CN=${NETBIOSNAME},OU=Domain Controllers,${DOMAINDN}
-
-dn: CN=NTDS Settings,CN=${NETBIOSNAME},CN=Servers,CN=${DEFAULTSITE},CN=Sites,${CONFIGDN}
-objectClass: top
-objectClass: applicationSettings
-objectClass: nTDSDSA
-cn: NTDS Settings
-options: 1
-instanceType: 4
-showInAdvancedViewOnly: TRUE
-systemFlags: 33554432
-dMDLocation: ${SCHEMADN}
-invocationId: ${INVOCATIONID}
-msDS-Behavior-Version: 2
-
 dn: CN=Services,${CONFIGDN}
 objectClass: top
 objectClass: container
index 12d71f908082272f73276581710041be2450b732..a69399c3e679374c0a66304bd0ebfda4ee652e18 100644 (file)
@@ -23,17 +23,6 @@ sAMAccountType: INTEGER
 systemFlags: INTEGER
 userAccountControl: INTEGER
 
-dn: @SUBCLASSES
-top: domain
-top: person
-top: group
-domain: domainDNS
-person: organizationalPerson
-organizationalPerson: user
-user: computer
-template: userTemplate
-template: groupTemplate
-
 dn: @KLUDGEACL
 passwordAttribute: sambaPassword
 passwordAttribute: ntPwdHash
index c6107c6502e2e45436d2360bbd4bf1ebdcb4a81e..f07ec680e0328cd81fa814be0f3b52318fc8e40d 100644 (file)
@@ -2,7 +2,6 @@ dn: @PARTITION
 partition: ${SCHEMADN}:${SCHEMADN_LDB}
 partition: ${CONFIGDN}:${CONFIGDN_LDB}
 partition: ${DOMAINDN}:${DOMAINDN_LDB}
-replicateEntries: @SUBCLASSES
 replicateEntries: @ATTRIBUTES
 replicateEntries: @INDEXLIST
 modules:${SCHEMADN}:${SCHEMADN_MOD}${SCHEMADN_MOD2}
index ff44a35f6d6e75120d78b0e89dda2e9872e65900..8c6959dbaa3f5f009acf16006b63f4caab24587c 100644 (file)
@@ -21,3 +21,44 @@ servicePrincipalName: HOST/${NETBIOSNAME}/${REALM}
 servicePrincipalName: HOST/${DNSNAME}/${DOMAIN}
 servicePrincipalName: HOST/${NETBIOSNAME}/${DOMAIN}
 ${HOSTGUID_ADD}
+
+#Provide a account for DNS keytab export
+dn: CN=dns,CN=Users,${DOMAINDN}
+objectClass: top
+objectClass: person
+objectClass: organizationalPerson
+objectClass: user
+cn: dns
+description: DNS Service Account
+showInAdvancedViewOnly: TRUE
+userAccountControl: 514
+accountExpires: 9223372036854775807
+sAMAccountName: dns
+sAMAccountType: 805306368
+servicePrincipalName: DNS/${DNSDOMAIN}
+isCriticalSystemObject: TRUE
+sambaPassword:: ${DNSPASS_B64}
+
+dn: CN=${NETBIOSNAME},CN=Servers,CN=${DEFAULTSITE},CN=Sites,${CONFIGDN}
+objectClass: top
+objectClass: server
+cn: ${NETBIOSNAME}
+instanceType: 4
+showInAdvancedViewOnly: TRUE
+systemFlags: 1375731712
+dNSHostName: ${DNSNAME}
+serverReference: CN=${NETBIOSNAME},OU=Domain Controllers,${DOMAINDN}
+
+dn: CN=NTDS Settings,CN=${NETBIOSNAME},CN=Servers,CN=${DEFAULTSITE},CN=Sites,${CONFIGDN}
+objectClass: top
+objectClass: applicationSettings
+objectClass: nTDSDSA
+cn: NTDS Settings
+options: 1
+instanceType: 4
+showInAdvancedViewOnly: TRUE
+systemFlags: 33554432
+dMDLocation: ${SCHEMADN}
+invocationId: ${INVOCATIONID}
+msDS-Behavior-Version: 2
+
index f6fbb0bd528843ad189797116132832f8cb54437..030fe5d7425ad2a0bd6b7a72cf5d455e8e64eba1 100644 (file)
@@ -205,22 +205,6 @@ servicePrincipalName: kadmin/changepw
 isCriticalSystemObject: TRUE
 sambaPassword:: ${KRBTGTPASS_B64}
 
-dn: CN=dns,CN=Users,${DOMAINDN}
-objectClass: top
-objectClass: person
-objectClass: organizationalPerson
-objectClass: user
-cn: dns
-description: DNS Service Account
-showInAdvancedViewOnly: TRUE
-userAccountControl: 514
-accountExpires: 9223372036854775807
-sAMAccountName: dns
-sAMAccountType: 805306368
-servicePrincipalName: DNS/${DNSDOMAIN}
-isCriticalSystemObject: TRUE
-sambaPassword:: ${DNSPASS_B64}
-
 dn: CN=Domain Computers,CN=Users,${DOMAINDN}
 objectClass: top
 objectClass: group
index 80015b4b411bdaa2fdaf4e983711f0d4b9847c82..95cbe20e5f59b78e1c7db0c5ef1c1b1eadad3317 100644 (file)
@@ -8,47 +8,3 @@ objectClass: top
 objectClass: container
 cn: Primary Domains
 
-dn: flatname=${DOMAIN},CN=Primary Domains
-objectClass: top
-objectClass: primaryDomain
-objectClass: kerberosSecret
-flatname: ${DOMAIN}
-realm: ${REALM}
-secret:: ${MACHINEPASS_B64}
-secureChannelType: 6
-sAMAccountName: ${NETBIOSNAME}$
-whenCreated: ${LDAPTIME}
-whenChanged: ${LDAPTIME}
-msDS-KeyVersionNumber: 1
-objectSid: ${DOMAINSID}
-privateKeytab: ${SECRETS_KEYTAB}
-
-# A hook from our credentials system into HDB, as we must be on a KDC,
-# we can look directly into the database.
-dn: samAccountName=krbtgt,flatname=${DOMAIN},CN=Principals
-objectClass: top
-objectClass: secret
-objectClass: kerberosSecret
-flatname: ${DOMAIN}
-realm: ${REALM}
-sAMAccountName: krbtgt
-whenCreated: ${LDAPTIME}
-whenChanged: ${LDAPTIME}
-objectSid: ${DOMAINSID}
-servicePrincipalName: kadmin/changepw
-krb5Keytab: HDB:ldb:${SAM_LDB}:
-#The trailing : here is a HACK, but it matches the Heimdal format. 
-
-# A hook from our credentials system into HDB, as we must be on a KDC,
-# we can look directly into the database.
-dn: servicePrincipalName=DNS/${DNSDOMAIN},CN=Principals
-objectClass: top
-objectClass: secret
-objectClass: kerberosSecret
-realm: ${REALM}
-whenCreated: ${LDAPTIME}
-whenChanged: ${LDAPTIME}
-servicePrincipalName: DNS/${DNSDOMAIN}
-privateKeytab: ${DNS_KEYTAB}
-secret:: ${DNSPASS_B64}
-
diff --git a/source/setup/secrets_dc.ldif b/source/setup/secrets_dc.ldif
new file mode 100644 (file)
index 0000000..6446935
--- /dev/null
@@ -0,0 +1,44 @@
+dn: flatname=${DOMAIN},CN=Primary Domains
+objectClass: top
+objectClass: primaryDomain
+objectClass: kerberosSecret
+flatname: ${DOMAIN}
+realm: ${REALM}
+secret:: ${MACHINEPASS_B64}
+secureChannelType: 6
+sAMAccountName: ${NETBIOSNAME}$
+whenCreated: ${LDAPTIME}
+whenChanged: ${LDAPTIME}
+msDS-KeyVersionNumber: 1
+objectSid: ${DOMAINSID}
+privateKeytab: ${SECRETS_KEYTAB}
+
+# A hook from our credentials system into HDB, as we must be on a KDC,
+# we can look directly into the database.
+dn: samAccountName=krbtgt,flatname=${DOMAIN},CN=Principals
+objectClass: top
+objectClass: secret
+objectClass: kerberosSecret
+flatname: ${DOMAIN}
+realm: ${REALM}
+sAMAccountName: krbtgt
+whenCreated: ${LDAPTIME}
+whenChanged: ${LDAPTIME}
+objectSid: ${DOMAINSID}
+servicePrincipalName: kadmin/changepw
+krb5Keytab: HDB:ldb:${SAM_LDB}:
+#The trailing : here is a HACK, but it matches the Heimdal format. 
+
+# A hook from our credentials system into HDB, as we must be on a KDC,
+# we can look directly into the database.
+dn: servicePrincipalName=DNS/${DNSDOMAIN},CN=Principals
+objectClass: top
+objectClass: secret
+objectClass: kerberosSecret
+realm: ${REALM}
+whenCreated: ${LDAPTIME}
+whenChanged: ${LDAPTIME}
+servicePrincipalName: DNS/${DNSDOMAIN}
+privateKeytab: ${DNS_KEYTAB}
+secret:: ${DNSPASS_B64}
+
index 34896d04b93b56bc3d772c0d8ec81f0d877c8a40..15e3610e3ae7690e5292ec5e0455edc4e67499c7 100644 (file)
@@ -21,7 +21,7 @@ include ${LDAPDIR}/modules.conf
 
 defaultsearchbase ${DOMAINDN}
 
-backend                bdb
+backend                hdb
 database        bdb
 suffix         ${SCHEMADN}
 directory      ${LDAPDIR}/db/schema
@@ -32,7 +32,7 @@ index objectCategory eq
 index lDAPDisplayName eq
 index subClassOf eq
 
-database        bdb
+database        hdb
 suffix         ${CONFIGDN}
 directory      ${LDAPDIR}/db/config
 index           objectClass eq
@@ -45,7 +45,7 @@ index subClassOf eq
 index dnsRoot eq
 index nETBIOSName eq pres
 
-database        bdb
+database        hdb
 suffix         ${DOMAINDN}
 rootdn          ${LDAPMANAGERDN}
 rootpw          ${LDAPMANAGERPASS}
index 95411943a12456fac1ee8b8aa43c4dba2c3e55e1..de70dfe5f61b3e15e15be89c20acbe7926ffb78b 100644 (file)
@@ -27,6 +27,7 @@
 #include "smb_server/service_smb_proto.h"
 #include "smbd/service_stream.h"
 #include "lib/stream/packet.h"
+#include "param/param.h"
 
 
 /* initialise the auth_context for this server and return the cryptkey */
@@ -90,7 +91,7 @@ this any more it probably doesn't matter
 ****************************************************************************/
 static void reply_coreplus(struct smbsrv_request *req, uint16_t choice)
 {
-       uint16_t raw = (lp_readraw()?1:0) | (lp_writeraw()?2:0);
+       uint16_t raw = (lp_readraw(global_loadparm)?1:0) | (lp_writeraw(global_loadparm)?2:0);
 
        smbsrv_setup_reply(req, 13, 0);
 
@@ -121,13 +122,13 @@ static void reply_coreplus(struct smbsrv_request *req, uint16_t choice)
 ****************************************************************************/
 static void reply_lanman1(struct smbsrv_request *req, uint16_t choice)
 {
-       int raw = (lp_readraw()?1:0) | (lp_writeraw()?2:0);
+       int raw = (lp_readraw(global_loadparm)?1:0) | (lp_writeraw(global_loadparm)?2:0);
        int secword=0;
        time_t t = req->request_time.tv_sec;
 
-       req->smb_conn->negotiate.encrypted_passwords = lp_encrypted_passwords();
+       req->smb_conn->negotiate.encrypted_passwords = lp_encrypted_passwords(global_loadparm);
 
-       if (lp_security() != SEC_SHARE)
+       if (lp_security(global_loadparm) != SEC_SHARE)
                secword |= NEGOTIATE_SECURITY_USER_LEVEL;
 
        if (req->smb_conn->negotiate.encrypted_passwords)
@@ -144,7 +145,7 @@ static void reply_lanman1(struct smbsrv_request *req, uint16_t choice)
        SSVAL(req->out.vwv, VWV(0), choice);
        SSVAL(req->out.vwv, VWV(1), secword); 
        SSVAL(req->out.vwv, VWV(2), req->smb_conn->negotiate.max_recv);
-       SSVAL(req->out.vwv, VWV(3), lp_maxmux());
+       SSVAL(req->out.vwv, VWV(3), lp_maxmux(global_loadparm));
        SSVAL(req->out.vwv, VWV(4), 1);
        SSVAL(req->out.vwv, VWV(5), raw); 
        SIVAL(req->out.vwv, VWV(6), req->smb_conn->connection->server_id.id);
@@ -179,13 +180,13 @@ static void reply_lanman1(struct smbsrv_request *req, uint16_t choice)
 ****************************************************************************/
 static void reply_lanman2(struct smbsrv_request *req, uint16_t choice)
 {
-       int raw = (lp_readraw()?1:0) | (lp_writeraw()?2:0);
+       int raw = (lp_readraw(global_loadparm)?1:0) | (lp_writeraw(global_loadparm)?2:0);
        int secword=0;
        time_t t = req->request_time.tv_sec;
 
-       req->smb_conn->negotiate.encrypted_passwords = lp_encrypted_passwords();
+       req->smb_conn->negotiate.encrypted_passwords = lp_encrypted_passwords(global_loadparm);
   
-       if (lp_security() != SEC_SHARE)
+       if (lp_security(global_loadparm) != SEC_SHARE)
                secword |= NEGOTIATE_SECURITY_USER_LEVEL;
 
        if (req->smb_conn->negotiate.encrypted_passwords)
@@ -198,7 +199,7 @@ static void reply_lanman2(struct smbsrv_request *req, uint16_t choice)
        SSVAL(req->out.vwv, VWV(0), choice);
        SSVAL(req->out.vwv, VWV(1), secword); 
        SSVAL(req->out.vwv, VWV(2), req->smb_conn->negotiate.max_recv);
-       SSVAL(req->out.vwv, VWV(3), lp_maxmux());
+       SSVAL(req->out.vwv, VWV(3), lp_maxmux(global_loadparm));
        SSVAL(req->out.vwv, VWV(4), 1);
        SSVAL(req->out.vwv, VWV(5), raw); 
        SIVAL(req->out.vwv, VWV(6), req->smb_conn->connection->server_id.id);
@@ -213,7 +214,7 @@ static void reply_lanman2(struct smbsrv_request *req, uint16_t choice)
                get_challenge(req->smb_conn, req->out.data);
        }
 
-       req_push_str(req, NULL, lp_workgroup(), -1, STR_TERMINATE);
+       req_push_str(req, NULL, lp_workgroup(global_loadparm), -1, STR_TERMINATE);
 
        if (req->smb_conn->signing.mandatory_signing) {
                smbsrv_terminate_connection(req->smb_conn, 
@@ -235,8 +236,8 @@ static void reply_nt1_orig(struct smbsrv_request *req)
                req->out.ptr += 8;
                SCVAL(req->out.vwv+1, VWV(16), 8);
        }
-       req_push_str(req, NULL, lp_workgroup(), -1, STR_UNICODE|STR_TERMINATE|STR_NOALIGN);
-       req_push_str(req, NULL, lp_netbios_name(), -1, STR_UNICODE|STR_TERMINATE|STR_NOALIGN);
+       req_push_str(req, NULL, lp_workgroup(global_loadparm), -1, STR_UNICODE|STR_TERMINATE|STR_NOALIGN);
+       req_push_str(req, NULL, lp_netbios_name(global_loadparm), -1, STR_UNICODE|STR_TERMINATE|STR_NOALIGN);
        DEBUG(3,("not using extended security (SPNEGO or NTLMSSP)\n"));
 }
 
@@ -250,7 +251,7 @@ static void reply_nt1(struct smbsrv_request *req, uint16_t choice)
        int secword=0;
        time_t t = req->request_time.tv_sec;
        NTTIME nttime;
-       BOOL negotiate_spnego = False;
+       bool negotiate_spnego = false;
        char *large_test_path;
 
        unix_to_nt_time(&nttime, t);
@@ -259,50 +260,50 @@ static void reply_nt1(struct smbsrv_request *req, uint16_t choice)
                CAP_NT_FIND | CAP_LOCK_AND_READ | 
                CAP_LEVEL_II_OPLOCKS | CAP_NT_SMBS | CAP_RPC_REMOTE_APIS;
 
-       req->smb_conn->negotiate.encrypted_passwords = lp_encrypted_passwords();
+       req->smb_conn->negotiate.encrypted_passwords = lp_encrypted_passwords(global_loadparm);
 
        /* do spnego in user level security if the client
           supports it and we can do encrypted passwords */
        
        if (req->smb_conn->negotiate.encrypted_passwords && 
-           (lp_security() != SEC_SHARE) &&
-           lp_use_spnego() &&
+           (lp_security(global_loadparm) != SEC_SHARE) &&
+           lp_use_spnego(global_loadparm) &&
            (req->flags2 & FLAGS2_EXTENDED_SECURITY)) {
-               negotiate_spnego = True; 
+               negotiate_spnego = true; 
                capabilities |= CAP_EXTENDED_SECURITY;
        }
        
-       if (lp_unix_extensions()) {
+       if (lp_unix_extensions(global_loadparm)) {
                capabilities |= CAP_UNIX;
        }
        
-       if (lp_large_readwrite()) {
+       if (lp_large_readwrite(global_loadparm)) {
                capabilities |= CAP_LARGE_READX | CAP_LARGE_WRITEX | CAP_W2K_SMBS;
        }
 
-       large_test_path = lock_path(req, "large_test.dat");
+       large_test_path = lock_path(req, global_loadparm, "large_test.dat");
        if (large_file_support(large_test_path)) {
                capabilities |= CAP_LARGE_FILES;
        }
 
-       if (lp_readraw() && lp_writeraw()) {
+       if (lp_readraw(global_loadparm) && lp_writeraw(global_loadparm)) {
                capabilities |= CAP_RAW_MODE;
        }
        
        /* allow for disabling unicode */
-       if (lp_unicode()) {
+       if (lp_unicode(global_loadparm)) {
                capabilities |= CAP_UNICODE;
        }
 
-       if (lp_nt_status_support()) {
+       if (lp_nt_status_support(global_loadparm)) {
                capabilities |= CAP_STATUS32;
        }
        
-       if (lp_host_msdfs()) {
+       if (lp_host_msdfs(global_loadparm)) {
                capabilities |= CAP_DFS;
        }
        
-       if (lp_security() != SEC_SHARE) {
+       if (lp_security(global_loadparm) != SEC_SHARE) {
                secword |= NEGOTIATE_SECURITY_USER_LEVEL;
        }
 
@@ -329,7 +330,7 @@ static void reply_nt1(struct smbsrv_request *req, uint16_t choice)
           this is the one and only SMB packet that is malformed in
           the specification - all the command words after the secword
           are offset by 1 byte */
-       SSVAL(req->out.vwv+1, VWV(1), lp_maxmux());
+       SSVAL(req->out.vwv+1, VWV(1), lp_maxmux(global_loadparm));
        SSVAL(req->out.vwv+1, VWV(2), 1); /* num vcs */
        SIVAL(req->out.vwv+1, VWV(3), req->smb_conn->negotiate.max_recv);
        SIVAL(req->out.vwv+1, VWV(5), 0x10000); /* raw size. full 64k */
@@ -370,7 +371,7 @@ static void reply_nt1(struct smbsrv_request *req, uint16_t choice)
                        return;
                }
                
-               cli_credentials_set_conf(server_credentials);
+               cli_credentials_set_conf(server_credentials, global_loadparm);
                nt_status = cli_credentials_set_machine_account(server_credentials);
                if (!NT_STATUS_IS_OK(nt_status)) {
                        DEBUG(10, ("Failed to obtain server credentials, perhaps a standalone server?: %s\n", nt_errstr(nt_status)));
@@ -492,10 +493,10 @@ void smbsrv_reply_negprot(struct smbsrv_request *req)
                smbsrv_terminate_connection(req->smb_conn, "multiple negprot's are not permitted");
                return;
        }
-       req->smb_conn->negotiate.done_negprot = True;
+       req->smb_conn->negotiate.done_negprot = true;
 
        p = req->in.data;
-       while (True) {
+       while (true) {
                size_t len;
 
                protos = talloc_realloc(req, protos, char *, protos_count + 1);
@@ -516,8 +517,10 @@ void smbsrv_reply_negprot(struct smbsrv_request *req)
        for (protocol = 0; supported_protocols[protocol].proto_name; protocol++) {
                int i;
 
-               if (supported_protocols[protocol].protocol_level > lp_srv_maxprotocol()) continue;
-               if (supported_protocols[protocol].protocol_level < lp_srv_minprotocol()) continue;
+               if (supported_protocols[protocol].protocol_level > lp_srv_maxprotocol(global_loadparm)) 
+                       continue;
+               if (supported_protocols[protocol].protocol_level < lp_srv_minprotocol(global_loadparm)) 
+                       continue;
 
                for (i = 0; i < protos_count; i++) {
                        if (strcmp(supported_protocols[protocol].proto_name, protos[i]) != 0) continue;
index caa977c4f270fbc8178baab7623a0064d0ac67ff..973b6b993ebb3cf7e9294bdc0bd58ac635884e7c 100644 (file)
@@ -26,6 +26,7 @@
 #include "smb_server/service_smb_proto.h"
 #include "ntvfs/ntvfs.h"
 #include "system/filesys.h"
+#include "param/param.h"
 
 
 /*
@@ -651,12 +652,12 @@ NTSTATUS smbsrv_init_smb_connection(struct smbsrv_connection *smb_conn)
 
        /* this is the size that w2k uses, and it appears to be important for
           good performance */
-       smb_conn->negotiate.max_recv = lp_max_xmit();
+       smb_conn->negotiate.max_recv = lp_max_xmit(global_loadparm);
 
        smb_conn->negotiate.zone_offset = get_time_zone(time(NULL));
 
-       smb_conn->config.security = lp_security();
-       smb_conn->config.nt_status_support = lp_nt_status_support();
+       smb_conn->config.security = lp_security(global_loadparm);
+       smb_conn->config.nt_status_support = lp_nt_status_support(global_loadparm);
 
        status = smbsrv_init_sessions(smb_conn, UINT16_MAX);
        NT_STATUS_NOT_OK_RETURN(status);
index 47963a205f662b05228fb8b1b92349e0eefdfa73..aff0587bc627b91b882776323ad05666b03fb86c 100644 (file)
@@ -824,9 +824,9 @@ void smbsrv_reply_read_and_X(struct smbsrv_request *req)
        io->readx.in.mincnt        = SVAL(req->in.vwv, VWV(6));
        io->readx.in.remaining     = SVAL(req->in.vwv, VWV(9));
        if (req->flags2 & FLAGS2_READ_PERMIT_EXECUTE) {
-               io->readx.in.read_for_execute = True;
+               io->readx.in.read_for_execute = true;
        } else {
-               io->readx.in.read_for_execute = False;
+               io->readx.in.read_for_execute = false;
        }
 
        if (req->smb_conn->negotiate.client_caps & CAP_LARGE_READX) {
@@ -2272,7 +2272,7 @@ static NTSTATUS parse_session_request(struct smbsrv_request *req)
                                    req->smb_conn->negotiate.calling_name);
        NT_STATUS_NOT_OK_RETURN(status);
 
-       req->smb_conn->negotiate.done_nbt_session = True;
+       req->smb_conn->negotiate.done_nbt_session = true;
 
        return NT_STATUS_OK;
 }      
index b882e8d5c8d0487b2e4610ceb0ecf46358515f0d..da8d1e2d05c285217569ecbf354c28e7b81e1551 100644 (file)
@@ -614,25 +614,25 @@ size_t req_pull_ascii4(struct smbsrv_request *req, const char **dest, const uint
 /*
   pull a DATA_BLOB from a request packet, returning a talloced blob
 
-  return False if any part is outside the data portion of the packet
+  return false if any part is outside the data portion of the packet
 */
-BOOL req_pull_blob(struct smbsrv_request *req, const uint8_t *src, int len, DATA_BLOB *blob)
+bool req_pull_blob(struct smbsrv_request *req, const uint8_t *src, int len, DATA_BLOB *blob)
 {
        if (len != 0 && req_data_oob(req, src, len)) {
-               return False;
+               return false;
        }
 
        (*blob) = data_blob_talloc(req, src, len);
 
-       return True;
+       return true;
 }
 
 /* check that a lump of data in a request is within the bounds of the data section of
    the packet */
-BOOL req_data_oob(struct smbsrv_request *req, const uint8_t *ptr, uint32_t count)
+bool req_data_oob(struct smbsrv_request *req, const uint8_t *ptr, uint32_t count)
 {
        if (count == 0) {
-               return False;
+               return false;
        }
        
        /* be careful with wraparound! */
@@ -640,9 +640,9 @@ BOOL req_data_oob(struct smbsrv_request *req, const uint8_t *ptr, uint32_t count
            ptr >= req->in.data + req->in.data_size ||
            count > req->in.data_size ||
            ptr + count > req->in.data + req->in.data_size) {
-               return True;
+               return true;
        }
-       return False;
+       return false;
 }
 
 
index 000f21ee24143cf11d6d782e000cb7ee09793f6a..ccf2ff73655620e5f4ff49dc58dc061f7dbfd881 100644 (file)
@@ -37,13 +37,13 @@ struct search_state {
 /*
   fill a single entry in a search find reply 
 */
-static BOOL find_fill_info(struct smbsrv_request *req,
+static bool find_fill_info(struct smbsrv_request *req,
                           const union smb_search_data *file)
 {
        uint8_t *p;
 
        if (req->out.data_size + 43 > req_max_data(req)) {
-               return False;
+               return false;
        }
        
        req_grow_data(req, req->out.data_size + 43);
@@ -61,11 +61,11 @@ static BOOL find_fill_info(struct smbsrv_request *req,
        memcpy(p+30, file->search.name, MIN(strlen(file->search.name)+1, 12));
        SCVAL(p,42,0);
 
-       return True;
+       return true;
 }
 
 /* callback function for search first/next */
-static BOOL find_callback(void *private, const union smb_search_data *file)
+static bool find_callback(void *private, const union smb_search_data *file)
 {
        struct search_state *state = (struct search_state *)private;
 
index c159eb3b883bc3b717b1aea7478105c4a2dbd8c2..558f30307b4ebea73d40a367323c9d82467a891b 100644 (file)
@@ -21,6 +21,8 @@
 #include "smb_server/smb_server.h"
 #include "smbd/service_stream.h"
 #include "ntvfs/ntvfs.h"
+#include "param/share.h"
+#include "param/param.h"
 
 /****************************************************************************
   Make a connection, given the snum to connect to, and the vuser of the
@@ -199,7 +201,7 @@ NTSTATUS smbsrv_tcon_backend(struct smbsrv_request *req, union smb_tcon *con)
        con->tconx.out.dev_type = talloc_strdup(req, req->tcon->ntvfs->dev_type);
        con->tconx.out.fs_type = talloc_strdup(req, req->tcon->ntvfs->fs_type);
        con->tconx.out.options = SMB_SUPPORT_SEARCH_BITS | (share_int_option(req->tcon->ntvfs->config, SHARE_CSC_POLICY, SHARE_CSC_POLICY_DEFAULT) << 2);
-       if (share_bool_option(req->tcon->ntvfs->config, SHARE_MSDFS_ROOT, SHARE_MSDFS_ROOT_DEFAULT) && lp_host_msdfs()) {
+       if (share_bool_option(req->tcon->ntvfs->config, SHARE_MSDFS_ROOT, SHARE_MSDFS_ROOT_DEFAULT) && lp_host_msdfs(global_loadparm)) {
                con->tconx.out.options |= SMB_SHARE_IN_DFS;
        }
 
index 647006028665312fa0396a664c6dafcaff5b9fe5..57e2f28b8afa4e671c60bc1ca5b3dc764526dcd6 100644 (file)
@@ -30,6 +30,7 @@
 #include "smb_server/smb_server.h"
 #include "smbd/service_stream.h"
 #include "librpc/gen_ndr/nbt.h"
+#include "param/param.h"
 
 /*
   setup the OS, Lanman and domain portions of a session setup reply
@@ -39,7 +40,7 @@ static void sesssetup_common_strings(struct smbsrv_request *req,
 {
        (*os) = talloc_asprintf(req, "Unix");
        (*lanman) = talloc_asprintf(req, "Samba %s", SAMBA_VERSION_STRING);
-       (*domain) = talloc_asprintf(req, "%s", lp_workgroup());
+       (*domain) = talloc_asprintf(req, "%s", lp_workgroup(global_loadparm));
 }
 
 static void smbsrv_sesssetup_backend_send(struct smbsrv_request *req,
@@ -47,7 +48,7 @@ static void smbsrv_sesssetup_backend_send(struct smbsrv_request *req,
                                          NTSTATUS status)
 {
        if (NT_STATUS_IS_OK(status)) {
-               req->smb_conn->negotiate.done_sesssetup = True;
+               req->smb_conn->negotiate.done_sesssetup = true;
                /* we need to keep the session long term */
                req->session = talloc_steal(req->smb_conn, req->session);
        }
@@ -128,7 +129,7 @@ static void sesssetup_old(struct smbsrv_request *req, union smb_sesssetup *sess)
        user_info = talloc(req, struct auth_usersupplied_info);
        if (!user_info) goto nomem;
        
-       user_info->mapped_state = False;
+       user_info->mapped_state = false;
        user_info->logon_parameters = 0;
        user_info->flags = 0;
        user_info->client.account_name = sess->old.in.user;
@@ -265,7 +266,7 @@ static void sesssetup_nt1(struct smbsrv_request *req, union smb_sesssetup *sess)
        user_info = talloc(req, struct auth_usersupplied_info);
        if (!user_info) goto nomem;
 
-       user_info->mapped_state = False;
+       user_info->mapped_state = false;
        user_info->logon_parameters = 0;
        user_info->flags = 0;
        user_info->client.account_name = sess->nt1.in.user;
index 7b7f03f8d36ad04d00544921b78e739d2534268e..b91a65ab849ae67b223222109645a6ececbae100 100644 (file)
@@ -20,6 +20,7 @@
 #include "includes.h"
 #include "smb_server/smb_server.h"
 #include "libcli/raw/libcliraw.h"
+#include "param/param.h"
 
 
 /*
@@ -62,12 +63,12 @@ void smbsrv_sign_packet(struct smbsrv_request *req)
   setup the signing key for a connection. Called after authentication succeeds
   in a session setup
 */
-BOOL smbsrv_setup_signing(struct smbsrv_connection *smb_conn,
+bool smbsrv_setup_signing(struct smbsrv_connection *smb_conn,
                          DATA_BLOB *session_key,
                          DATA_BLOB *response)
 {
        if (!set_smb_signing_common(&smb_conn->signing)) {
-               return False;
+               return false;
        }
        return smbcli_simple_set_signing(smb_conn,
                                         &smb_conn->signing, session_key, response);
@@ -89,38 +90,38 @@ void smbsrv_signing_restart(struct smbsrv_connection *smb_conn,
                         * pretend we have seen a
                         * valid packet, so we don't
                         * turn it off */
-                       smb_conn->signing.seen_valid = True;
+                       smb_conn->signing.seen_valid = true;
                }
        }
 }
 
-BOOL smbsrv_init_signing(struct smbsrv_connection *smb_conn)
+bool smbsrv_init_signing(struct smbsrv_connection *smb_conn)
 {
        smb_conn->signing.mac_key = data_blob(NULL, 0);
        if (!smbcli_set_signing_off(&smb_conn->signing)) {
-               return False;
+               return false;
        }
        
-       switch (lp_server_signing()) {
+       switch (lp_server_signing(global_loadparm)) {
        case SMB_SIGNING_OFF:
-               smb_conn->signing.allow_smb_signing = False;
+               smb_conn->signing.allow_smb_signing = false;
                break;
        case SMB_SIGNING_SUPPORTED:
-               smb_conn->signing.allow_smb_signing = True;
+               smb_conn->signing.allow_smb_signing = true;
                break;
        case SMB_SIGNING_REQUIRED:
-               smb_conn->signing.allow_smb_signing = True;
-               smb_conn->signing.mandatory_signing = True;
+               smb_conn->signing.allow_smb_signing = true;
+               smb_conn->signing.mandatory_signing = true;
                break;
        case SMB_SIGNING_AUTO:
-               if (lp_domain_logons()) {
-                       smb_conn->signing.allow_smb_signing = True;
+               if (lp_domain_logons(global_loadparm)) {
+                       smb_conn->signing.allow_smb_signing = true;
                } else {
-                       smb_conn->signing.allow_smb_signing = False;
+                       smb_conn->signing.allow_smb_signing = false;
                }
                break;
        }
-       return True;
+       return true;
 }
 
 /*
@@ -150,24 +151,24 @@ void smbsrv_signing_no_reply(struct smbsrv_request *req)
 ************************************************************/
 /**
  * Check a packet supplied by the server.
- * @return False if we had an established signing connection
- *         which had a back checksum, True otherwise
+ * @return false if we had an established signing connection
+ *         which had a back checksum, true otherwise
  */
-BOOL smbsrv_signing_check_incoming(struct smbsrv_request *req)
+bool smbsrv_signing_check_incoming(struct smbsrv_request *req)
 {
-       BOOL good;
+       bool good;
 
        req_signing_alloc_seq_num(req);
 
        switch (req->smb_conn->signing.signing_state) 
        {
        case SMB_SIGNING_ENGINE_OFF:
-               return True;
+               return true;
        case SMB_SIGNING_ENGINE_BSRSPYL:
        case SMB_SIGNING_ENGINE_ON:
        {                       
                if (req->in.size < (HDR_SS_FIELD + 8)) {
-                       return False;
+                       return false;
                } else {
                        good = check_signed_incoming_message(&req->in, 
                                                             &req->smb_conn->signing.mac_key, 
@@ -178,5 +179,5 @@ BOOL smbsrv_signing_check_incoming(struct smbsrv_request *req)
                }
        }
        }
-       return False;
+       return false;
 }
index 75a03fbe7967109d95c77e2118a98228743f05f0..45ea234d09094af1e1e2a8d79a8d5b042060d647 100644 (file)
@@ -790,7 +790,7 @@ static NTSTATUS find_fill_info(struct find_state *state,
 }
 
 /* callback function for trans2 findfirst/findnext */
-static BOOL find_callback(void *private, const union smb_search_data *file)
+static bool find_callback(void *private, const union smb_search_data *file)
 {
        struct find_state *state = talloc_get_type(private, struct find_state);
        struct smb_trans2 *trans = state->op->trans;
@@ -802,11 +802,11 @@ static BOOL find_callback(void *private, const union smb_search_data *file)
            trans->out.data.length > trans->in.max_data) {
                /* restore the old length and tell the backend to stop */
                smbsrv_blob_grow_data(trans, &trans->out.data, old_length);
-               return False;
+               return false;
        }
 
        state->last_entry_offset = old_length;  
-       return True;
+       return true;
 }
 
 /*
index 4f4b7907020097362726a810b8640a5a4741b35c..41b31f586f92d970a1e55bdf64c8e599dda9bbaa 100644 (file)
@@ -53,7 +53,7 @@ static void smb2srv_getinfo_send(struct ntvfs_request *ntvfs)
                SMB2SRV_CHECK(op->send_fn(op));
        }
 
-       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x08, True, op->info->out.blob.length));
+       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x08, true, op->info->out.blob.length));
 
        /* TODO: this is maybe a o16s32_blob */
        SMB2SRV_CHECK(smb2_push_o16s16_blob(&req->out, 0x02, op->info->out.blob));
@@ -205,7 +205,7 @@ void smb2srv_getinfo_recv(struct smb2srv_request *req)
        struct smb2_getinfo *info;
        struct smb2srv_getinfo_op *op;
 
-       SMB2SRV_CHECK_BODY_SIZE(req, 0x28, True);
+       SMB2SRV_CHECK_BODY_SIZE(req, 0x28, true);
        SMB2SRV_TALLOC_IO_PTR(info, struct smb2_getinfo);
        /* this overwrites req->io_ptr !*/
        SMB2SRV_TALLOC_IO_PTR(op, struct smb2srv_getinfo_op);
@@ -247,7 +247,7 @@ static void smb2srv_setinfo_send(struct ntvfs_request *ntvfs)
 
        SMB2SRV_CHECK_ASYNC_STATUS(op, struct smb2srv_setinfo_op);
 
-       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x02, False, 0));
+       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x02, false, 0));
 
        smb2srv_send_reply(req);
 }
@@ -349,7 +349,7 @@ void smb2srv_setinfo_recv(struct smb2srv_request *req)
        struct smb2_setinfo *info;
        struct smb2srv_setinfo_op *op;
 
-       SMB2SRV_CHECK_BODY_SIZE(req, 0x20, True);
+       SMB2SRV_CHECK_BODY_SIZE(req, 0x20, true);
        SMB2SRV_TALLOC_IO_PTR(info, struct smb2_setinfo);
        /* this overwrites req->io_ptr !*/
        SMB2SRV_TALLOC_IO_PTR(op, struct smb2srv_setinfo_op);
index 3e4d7ffcebf1e72266d10e49f44c47c37f56a0ad..47b5dbe60cbddf68c1f217b5d8349b3c101fbc23 100644 (file)
@@ -31,7 +31,7 @@ static void smb2srv_create_send(struct ntvfs_request *ntvfs)
        union smb_open *io;
 
        SMB2SRV_CHECK_ASYNC_STATUS(io, union smb_open);
-       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x58, True, io->smb2.out.blob.length));
+       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x58, true, io->smb2.out.blob.length));
 
        SSVAL(req->out.body,    0x02,   io->smb2.out.oplock_flags);
        SIVAL(req->out.body,    0x04,   io->smb2.out.create_action);
@@ -58,7 +58,7 @@ void smb2srv_create_recv(struct smb2srv_request *req)
        union smb_open *io;
        DATA_BLOB blob;
 
-       SMB2SRV_CHECK_BODY_SIZE(req, 0x38, True);
+       SMB2SRV_CHECK_BODY_SIZE(req, 0x38, true);
        SMB2SRV_TALLOC_IO_PTR(io, union smb_open);
        SMB2SRV_SETUP_NTVFS_REQUEST(smb2srv_create_send, NTVFS_ASYNC_STATE_MAY_ASYNC);
 
@@ -88,7 +88,7 @@ static void smb2srv_close_send(struct ntvfs_request *ntvfs)
        union smb_close *io;
 
        SMB2SRV_CHECK_ASYNC_STATUS(io, union smb_close);
-       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x3C, False, 0));
+       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x3C, false, 0));
 
        SSVAL(req->out.body,    0x02,   io->smb2.out.flags);
        SIVAL(req->out.body,    0x04,   io->smb2.out._pad);
@@ -107,7 +107,7 @@ void smb2srv_close_recv(struct smb2srv_request *req)
 {
        union smb_close *io;
 
-       SMB2SRV_CHECK_BODY_SIZE(req, 0x18, False);
+       SMB2SRV_CHECK_BODY_SIZE(req, 0x18, false);
        SMB2SRV_TALLOC_IO_PTR(io, union smb_close);
        SMB2SRV_SETUP_NTVFS_REQUEST(smb2srv_close_send, NTVFS_ASYNC_STATE_MAY_ASYNC);
 
@@ -126,7 +126,7 @@ static void smb2srv_flush_send(struct ntvfs_request *ntvfs)
        union smb_flush *io;
 
        SMB2SRV_CHECK_ASYNC_STATUS(io, union smb_flush);
-       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x04, False, 0));
+       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x04, false, 0));
 
        SSVAL(req->out.body,    0x02,   0);
 
@@ -138,7 +138,7 @@ void smb2srv_flush_recv(struct smb2srv_request *req)
        union smb_flush *io;
        uint16_t _pad;
 
-       SMB2SRV_CHECK_BODY_SIZE(req, 0x18, False);
+       SMB2SRV_CHECK_BODY_SIZE(req, 0x18, false);
        SMB2SRV_TALLOC_IO_PTR(io, union smb_flush);
        SMB2SRV_SETUP_NTVFS_REQUEST(smb2srv_flush_send, NTVFS_ASYNC_STATE_MAY_ASYNC);
 
@@ -157,7 +157,7 @@ static void smb2srv_read_send(struct ntvfs_request *ntvfs)
        union smb_read *io;
 
        SMB2SRV_CHECK_ASYNC_STATUS(io, union smb_read);
-       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x10, True, io->smb2.out.data.length));
+       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x10, true, io->smb2.out.data.length));
 
        /* TODO: avoid the memcpy */
        SMB2SRV_CHECK(smb2_push_o16s32_blob(&req->out, 0x02, io->smb2.out.data));
@@ -170,7 +170,7 @@ void smb2srv_read_recv(struct smb2srv_request *req)
 {
        union smb_read *io;
 
-       SMB2SRV_CHECK_BODY_SIZE(req, 0x30, True);
+       SMB2SRV_CHECK_BODY_SIZE(req, 0x30, true);
        SMB2SRV_TALLOC_IO_PTR(io, union smb_read);
        SMB2SRV_SETUP_NTVFS_REQUEST(smb2srv_read_send, NTVFS_ASYNC_STATE_MAY_ASYNC);
 
@@ -199,7 +199,7 @@ static void smb2srv_write_send(struct ntvfs_request *ntvfs)
        union smb_write *io;
 
        SMB2SRV_CHECK_ASYNC_STATUS(io, union smb_write);
-       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x10, True, 0));
+       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x10, true, 0));
 
        SSVAL(req->out.body,    0x02,   io->smb2.out._pad);
        SIVAL(req->out.body,    0x04,   io->smb2.out.nwritten);
@@ -212,7 +212,7 @@ void smb2srv_write_recv(struct smb2srv_request *req)
 {
        union smb_write *io;
 
-       SMB2SRV_CHECK_BODY_SIZE(req, 0x30, True);
+       SMB2SRV_CHECK_BODY_SIZE(req, 0x30, true);
        SMB2SRV_TALLOC_IO_PTR(io, union smb_write);
        SMB2SRV_SETUP_NTVFS_REQUEST(smb2srv_write_send, NTVFS_ASYNC_STATE_MAY_ASYNC);
 
@@ -234,7 +234,7 @@ static void smb2srv_lock_send(struct ntvfs_request *ntvfs)
        union smb_lock *io;
 
        SMB2SRV_CHECK_ASYNC_STATUS_ERR(io, union smb_lock);
-       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x04, False, 0));
+       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x04, false, 0));
 
        SSVAL(req->out.body,    0x02,   io->smb2.out.unknown1);
 
@@ -245,7 +245,7 @@ void smb2srv_lock_recv(struct smb2srv_request *req)
 {
        union smb_lock *io;
 
-       SMB2SRV_CHECK_BODY_SIZE(req, 0x30, False);
+       SMB2SRV_CHECK_BODY_SIZE(req, 0x30, false);
        SMB2SRV_TALLOC_IO_PTR(io, union smb_lock);
        SMB2SRV_SETUP_NTVFS_REQUEST(smb2srv_lock_send, NTVFS_ASYNC_STATE_MAY_ASYNC);
 
@@ -269,7 +269,7 @@ static void smb2srv_ioctl_send(struct ntvfs_request *ntvfs)
        union smb_ioctl *io;
 
        SMB2SRV_CHECK_ASYNC_STATUS_ERR(io, union smb_ioctl);
-       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x30, True, 0));
+       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x30, true, 0));
 
        SSVAL(req->out.body,    0x02,   io->smb2.out._pad);
        SIVAL(req->out.body,    0x04,   io->smb2.out.function);
@@ -294,7 +294,7 @@ void smb2srv_ioctl_recv(struct smb2srv_request *req)
        union smb_ioctl *io;
        struct smb2_handle h;
 
-       SMB2SRV_CHECK_BODY_SIZE(req, 0x38, True);
+       SMB2SRV_CHECK_BODY_SIZE(req, 0x38, true);
        SMB2SRV_TALLOC_IO_PTR(io, union smb_ioctl);
        SMB2SRV_SETUP_NTVFS_REQUEST(smb2srv_ioctl_send, NTVFS_ASYNC_STATE_MAY_ASYNC);
 
@@ -330,7 +330,7 @@ static void smb2srv_notify_send(struct ntvfs_request *ntvfs)
        DATA_BLOB blob = data_blob(NULL, 0);
 
        SMB2SRV_CHECK_ASYNC_STATUS(io, union smb_notify);
-       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x08, True, 0));
+       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x08, true, 0));
 
 #define MAX_BYTES_PER_CHAR 3
        
@@ -384,7 +384,7 @@ void smb2srv_notify_recv(struct smb2srv_request *req)
 {
        union smb_notify *io;
 
-       SMB2SRV_CHECK_BODY_SIZE(req, 0x20, False);
+       SMB2SRV_CHECK_BODY_SIZE(req, 0x20, false);
        SMB2SRV_TALLOC_IO_PTR(io, union smb_notify);
        SMB2SRV_SETUP_NTVFS_REQUEST(smb2srv_notify_send, NTVFS_ASYNC_STATE_MAY_ASYNC);
 
index 9ab62c35f57bcd3108e6a97742a11a81d01735fb..c594adf7a0f6934e778e956efe651e6b8ab0e116 100644 (file)
@@ -40,7 +40,7 @@ struct smb2srv_find_state {
 };
 
 /* callback function for SMB2 Find */
-static BOOL smb2srv_find_callback(void *private, const union smb_search_data *file)
+static bool smb2srv_find_callback(void *private, const union smb_search_data *file)
 {
        struct smb2srv_find_state *state = talloc_get_type(private, struct smb2srv_find_state);
        struct smb2_find *info = state->info;
@@ -54,12 +54,12 @@ static BOOL smb2srv_find_callback(void *private, const union smb_search_data *fi
            info->out.blob.length > info->in.max_response_size) {
                /* restore the old length and tell the backend to stop */
                smbsrv_blob_grow_data(state, &info->out.blob, old_length);
-               return False;
+               return false;
        }
 
        state->last_entry_offset = old_length;
 
-       return True;
+       return true;
 }
 
 static void smb2srv_find_send(struct ntvfs_request *ntvfs)
@@ -68,7 +68,7 @@ static void smb2srv_find_send(struct ntvfs_request *ntvfs)
        struct smb2srv_find_state *state;
 
        SMB2SRV_CHECK_ASYNC_STATUS(state, struct smb2srv_find_state);
-       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x08, True, state->info->out.blob.length));
+       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x08, true, state->info->out.blob.length));
 
        if (state->info->out.blob.length > 0) {
                SIVAL(state->info->out.blob.data + state->last_entry_offset, 0, 0);
@@ -141,7 +141,7 @@ void smb2srv_find_recv(struct smb2srv_request *req)
        struct smb2srv_find_state *state;
        struct smb2_find *info;
 
-       SMB2SRV_CHECK_BODY_SIZE(req, 0x20, True);
+       SMB2SRV_CHECK_BODY_SIZE(req, 0x20, true);
        SMB2SRV_TALLOC_IO_PTR(info, struct smb2_find);
        /* this overwrites req->io_ptr !*/
        SMB2SRV_TALLOC_IO_PTR(state, struct smb2srv_find_state);
index ed4903ec29f487ea7a4c3742a3a84163b78a16b5..f40bcc485c594e2f87c31b584870efe5047b69d9 100644 (file)
@@ -38,7 +38,7 @@ static void smb2srv_keepalive_send(struct smb2srv_request *req)
                return;
        }
 
-       status = smb2srv_setup_reply(req, 0x04, False, 0);
+       status = smb2srv_setup_reply(req, 0x04, false, 0);
        if (!NT_STATUS_IS_OK(status)) {
                smbsrv_terminate_connection(req->smb_conn, nt_errstr(status));
                talloc_free(req);
index 2aca91adf86839ff91ac8545d7eaae8892b52be2..78c17aa03e064f9f0b38aaf5faab53ed9327e4d4 100644 (file)
@@ -27,6 +27,7 @@
 #include "smb_server/service_smb_proto.h"
 #include "smb_server/smb2/smb2_server.h"
 #include "smbd/service_stream.h"
+#include "param/param.h"
 
 static NTSTATUS smb2srv_negprot_secblob(struct smb2srv_request *req, DATA_BLOB *_blob)
 {
@@ -52,7 +53,7 @@ static NTSTATUS smb2srv_negprot_secblob(struct smb2srv_request *req, DATA_BLOB *
                return NT_STATUS_NO_MEMORY;
        }
 
-       cli_credentials_set_conf(server_credentials);
+       cli_credentials_set_conf(server_credentials, global_loadparm);
        nt_status = cli_credentials_set_machine_account(server_credentials);
        if (!NT_STATUS_IS_OK(nt_status)) {
                DEBUG(10, ("Failed to obtain server credentials, perhaps a standalone server?: %s\n", nt_errstr(nt_status)));
@@ -121,7 +122,7 @@ static void smb2srv_negprot_send(struct smb2srv_request *req, struct smb2_negpro
                return;
        }
 
-       status = smb2srv_setup_reply(req, 0x40, True, io->out.secblob.length);
+       status = smb2srv_setup_reply(req, 0x40, true, io->out.secblob.length);
        if (!NT_STATUS_IS_OK(status)) {
                smbsrv_terminate_connection(req->smb_conn, nt_errstr(status));
                talloc_free(req);
@@ -196,7 +197,7 @@ void smb2srv_reply_smb_negprot(struct smbsrv_request *smb_req)
 
        req->in.size      = NBT_HDR_SIZE+SMB2_HDR_BODY+body_fixed_size;
        req->in.allocated = req->in.size;
-       req->in.buffer    = talloc_size(req, req->in.allocated);
+       req->in.buffer    = talloc_array(req, uint8_t, req->in.allocated);
        if (!req->in.buffer) goto nomem;
        req->in.hdr       = req->in.buffer + NBT_HDR_SIZE;
        req->in.body      = req->in.hdr + SMB2_HDR_BODY;
index a8c0e6f7862bc5061406d3a3b0bb8739b13d0178..a440c33dc0a02006f065c41677ee0e5547659b7d 100644 (file)
@@ -28,6 +28,7 @@
 #include "smbd/service_stream.h"
 #include "lib/stream/packet.h"
 #include "ntvfs/ntvfs.h"
+#include "param/param.h"
 
 static int smb2srv_request_destructor(struct smb2srv_request *req)
 {
@@ -58,7 +59,7 @@ struct smb2srv_request *smb2srv_init_request(struct smbsrv_connection *smb_conn)
 }
 
 NTSTATUS smb2srv_setup_reply(struct smb2srv_request *req, uint16_t body_fixed_size,
-                            BOOL body_dynamic_present, uint32_t body_dynamic_size)
+                            bool body_dynamic_present, uint32_t body_dynamic_size)
 {
        uint32_t flags = 0x00000001;
        uint32_t pid = IVAL(req->in.hdr, SMB2_HDR_PID);
@@ -81,7 +82,8 @@ NTSTATUS smb2srv_setup_reply(struct smb2srv_request *req, uint16_t body_fixed_si
        req->out.size           = SMB2_HDR_BODY+NBT_HDR_SIZE+body_fixed_size;
 
        req->out.allocated      = req->out.size + body_dynamic_size;
-       req->out.buffer         = talloc_size(req, req->out.allocated);
+       req->out.buffer         = talloc_array(req, uint8_t, 
+                                              req->out.allocated);
        NT_STATUS_HAVE_NO_MEMORY(req->out.buffer);
 
        req->out.hdr            = req->out.buffer       + NBT_HDR_SIZE;
@@ -235,7 +237,7 @@ void smb2srv_send_error(struct smb2srv_request *req, NTSTATUS error)
                return;
        }
 
-       status = smb2srv_setup_reply(req, 8, True, 0);
+       status = smb2srv_setup_reply(req, 8, true, 0);
        if (!NT_STATUS_IS_OK(status)) {
                smbsrv_terminate_connection(req->smb_conn, nt_errstr(status));
                talloc_free(req);
@@ -514,12 +516,12 @@ NTSTATUS smbsrv_init_smb2_connection(struct smbsrv_connection *smb_conn)
 
        /* this is the size that w2k uses, and it appears to be important for
           good performance */
-       smb_conn->negotiate.max_recv = lp_max_xmit();
+       smb_conn->negotiate.max_recv = lp_max_xmit(global_loadparm);
 
        smb_conn->negotiate.zone_offset = get_time_zone(time(NULL));
 
        smb_conn->config.security = SEC_USER;
-       smb_conn->config.nt_status_support = True;
+       smb_conn->config.nt_status_support = true;
 
        status = smbsrv_init_sessions(smb_conn, UINT64_MAX);
        NT_STATUS_NOT_OK_RETURN(status);
index 76f89d43d2d95ded1301f0f16eaf690ed8f39e54..7d72193e6eacb12c8055b101423ba9ce4fdb550b 100644 (file)
@@ -42,7 +42,7 @@ static void smb2srv_sesssetup_send(struct smb2srv_request *req, union smb_sessse
                return;
        }
 
-       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x08, True, io->smb2.out.secblob.length));
+       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x08, true, io->smb2.out.secblob.length));
 
        SSVAL(req->out.hdr, SMB2_HDR_UNKNOWN1,  unknown1);
        SBVAL(req->out.hdr, SMB2_HDR_UID,       io->smb2.out.uid);
@@ -187,7 +187,7 @@ void smb2srv_sesssetup_recv(struct smb2srv_request *req)
 {
        union smb_sesssetup *io;
 
-       SMB2SRV_CHECK_BODY_SIZE(req, 0x18, True);
+       SMB2SRV_CHECK_BODY_SIZE(req, 0x18, true);
        SMB2SRV_TALLOC_IO_PTR(io, union smb_sesssetup);
 
        io->smb2.level          = RAW_SESSSETUP_SMB2;
@@ -215,7 +215,7 @@ static void smb2srv_logoff_send(struct smb2srv_request *req)
                return;
        }
 
-       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x04, False, 0));
+       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x04, false, 0));
 
        SSVAL(req->out.body, 0x02, 0);
 
@@ -226,7 +226,7 @@ void smb2srv_logoff_recv(struct smb2srv_request *req)
 {
        uint16_t _pad;
 
-       SMB2SRV_CHECK_BODY_SIZE(req, 0x04, False);
+       SMB2SRV_CHECK_BODY_SIZE(req, 0x04, false);
 
        _pad    = SVAL(req->in.body, 0x02);
 
index b476e97168b58bd34baf707a37041957b73edc6a..572d3b5bf599147f198c9aa76d25a12083060eb5 100644 (file)
@@ -41,7 +41,8 @@ static NTSTATUS smb2srv_send_oplock_break(void *p, struct ntvfs_handle *h, uint8
        req = smb2srv_init_request(handle->tcon->smb_conn);
        NT_STATUS_HAVE_NO_MEMORY(req);
 
-       req->in.buffer          = talloc_size(req, NBT_HDR_SIZE + SMB2_MIN_SIZE);
+       req->in.buffer          = talloc_array(req, uint8_t, 
+                                              NBT_HDR_SIZE + SMB2_MIN_SIZE);
        NT_STATUS_HAVE_NO_MEMORY(req->in.buffer);
        req->in.size            = NBT_HDR_SIZE + SMB2_MIN_SIZE;
        req->in.allocated       = req->in.size;
@@ -69,7 +70,7 @@ static NTSTATUS smb2srv_send_oplock_break(void *p, struct ntvfs_handle *h, uint8
 
        SSVAL(req->in.body, 0, 2);
 
-       status = smb2srv_setup_reply(req, 0x18, False, 0);
+       status = smb2srv_setup_reply(req, 0x18, false, 0);
        NT_STATUS_NOT_OK_RETURN(status);
 
        SSVAL(req->out.hdr, SMB2_HDR_UNKNOWN1,  0x0000);
@@ -371,7 +372,7 @@ static void smb2srv_tcon_send(struct smb2srv_request *req, union smb_tcon *io)
                unknown1 = 0x0001;
        }
 
-       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x10, False, 0));
+       SMB2SRV_CHECK(smb2srv_setup_reply(req, 0x10, false, 0));
 
        SIVAL(req->out.hdr,     SMB2_HDR_TID,   io->smb2.out.tid);
        SSVAL(req->out.hdr,     SMB2_HDR_UNKNOWN1,unknown1);
@@ -388,7 +389,7 @@ void smb2srv_tcon_recv(struct smb2srv_request *req)
 {
        union smb_tcon *io;
 
-       SMB2SRV_CHECK_BODY_SIZE(req, 0x08, True);
+       SMB2SRV_CHECK_BODY_SIZE(req, 0x08, true);
        SMB2SRV_TALLOC_IO_PTR(io, union smb_tcon);
 
        io->smb2.level          = RAW_TCON_SMB2;
@@ -421,7 +422,7 @@ static void smb2srv_tdis_send(struct smb2srv_request *req)
                return;
        }
 
-       status = smb2srv_setup_reply(req, 0x04, False, 0);
+       status = smb2srv_setup_reply(req, 0x04, false, 0);
        if (!NT_STATUS_IS_OK(status)) {
                smbsrv_terminate_connection(req->smb_conn, nt_errstr(status));
                talloc_free(req);
@@ -437,7 +438,7 @@ void smb2srv_tdis_recv(struct smb2srv_request *req)
 {
        uint16_t _pad;
 
-       SMB2SRV_CHECK_BODY_SIZE(req, 0x04, False);
+       SMB2SRV_CHECK_BODY_SIZE(req, 0x04, false);
 
        _pad    = SVAL(req->in.body, 0x02);
 
index 30c78eb3a77c860a6fe666515ef20317d833577b..691934f71c10544921cb614a426326e0bdb1ceaa 100644 (file)
@@ -32,6 +32,7 @@
 #include "lib/socket/netif.h"
 #include "param/share.h"
 #include "dsdb/samdb/samdb.h"
+#include "param/param.h"
 
 static NTSTATUS smbsrv_recv_generic_request(void *private, DATA_BLOB blob)
 {
@@ -62,7 +63,7 @@ static NTSTATUS smbsrv_recv_generic_request(void *private, DATA_BLOB blob)
                packet_set_callback(smb_conn->packet, smbsrv_recv_smb_request);
                return smbsrv_recv_smb_request(smb_conn, blob);
        case SMB2_MAGIC:
-               if (lp_srv_maxprotocol() < PROTOCOL_SMB2) break;
+               if (lp_srv_maxprotocol(global_loadparm) < PROTOCOL_SMB2) break;
                status = smbsrv_init_smb2_connection(smb_conn);
                NT_STATUS_NOT_OK_RETURN(status);
                packet_set_callback(smb_conn->packet, smbsrv_recv_smb2_request);
@@ -173,11 +174,11 @@ static const struct stream_server_ops smb_stream_ops = {
 /*
   setup a listening socket on all the SMB ports for a particular address
 */
-static NTSTATUS smb_add_socket(struct event_context *event_context,
+_PUBLIC_ NTSTATUS smbsrv_add_socket(struct event_context *event_context,
                               const struct model_ops *model_ops,
                               const char *address)
 {
-       const char **ports = lp_smb_ports();
+       const char **ports = lp_smb_ports(global_loadparm);
        int i;
        NTSTATUS status;
 
@@ -214,7 +215,7 @@ static void smbsrv_task_init(struct task_server *task)
 
        task_server_set_title(task, "task[smbsrv]");
 
-       if (lp_interfaces() && lp_bind_interfaces_only()) {
+       if (lp_interfaces(global_loadparm) && lp_bind_interfaces_only(global_loadparm)) {
                int num_interfaces = iface_count();
                int i;
 
@@ -224,12 +225,13 @@ static void smbsrv_task_init(struct task_server *task)
                */
                for(i = 0; i < num_interfaces; i++) {
                        const char *address = iface_n_ip(i);
-                       status = smb_add_socket(task->event_ctx, task->model_ops, address);
+                       status = smbsrv_add_socket(task->event_ctx, task->model_ops, address);
                        if (!NT_STATUS_IS_OK(status)) goto failed;
                }
        } else {
                /* Just bind to lp_socket_address() (usually 0.0.0.0) */
-               status = smb_add_socket(task->event_ctx, task->model_ops, lp_socket_address());
+               status = smbsrv_add_socket(task->event_ctx, task->model_ops, 
+                                          lp_socket_address(global_loadparm));
                if (!NT_STATUS_IS_OK(status)) goto failed;
        }
 
index 10bafcd2086f2b734ec364993c9584a5d9f4867b..8ebd3e683fbe5a830f7814934037a18c09e2b8d4 100644 (file)
@@ -376,6 +376,12 @@ struct smbsrv_connection {
        struct share_context *share_context;
 };
 
+struct model_ops;
+
+NTSTATUS smbsrv_add_socket(struct event_context *event_context,
+                              const struct model_ops *model_ops,
+                              const char *address);
+
 #include "smb_server/smb_server_proto.h"
 #include "smb_server/smb/smb_proto.h"
 
index fdb502d41d65c86872058280b53e1de5cfe2266e..4847ddd7b5253d1329cd1316dfa41efa9d0455f7 100644 (file)
@@ -21,6 +21,8 @@
 
 #include "includes.h"
 #include "system/filesys.h"
+#include "param/param.h"
+#include "smbd/pidfile.h"
 
 /**
  * @file
@@ -38,7 +40,7 @@ pid_t pidfile_pid(const char *name)
        pid_t ret;
        char *pidFile;
 
-       asprintf(&pidFile, "%s/%s.pid", lp_piddir(), name);
+       asprintf(&pidFile, "%s/%s.pid", lp_piddir(global_loadparm), name);
 
        fd = open(pidFile, O_NONBLOCK | O_RDONLY, 0644);
 
@@ -85,7 +87,7 @@ void pidfile_create(const char *name)
        char *pidFile;
        pid_t pid;
 
-       asprintf(&pidFile, "%s/%s.pid", lp_piddir(), name);
+       asprintf(&pidFile, "%s/%s.pid", lp_piddir(global_loadparm), name);
 
        pid = pidfile_pid(name);
        if (pid != 0) {
@@ -101,7 +103,7 @@ void pidfile_create(const char *name)
                exit(1);
        }
 
-       if (fcntl_lock(fd,F_SETLK,0,1,F_WRLCK)==False) {
+       if (fcntl_lock(fd,F_SETLK,0,1,F_WRLCK)==false) {
                DEBUG(0,("ERROR: %s : fcntl lock of file %s failed. Error was %s\n",  
               name, pidFile, strerror(errno)));
                exit(1);
index f83c7b784bcbee8d5da60de0db66acad2744542b..bb4d3a53bbfc1fb635ed7982bef75582e99d8c9e 100644 (file)
@@ -21,6 +21,7 @@
 #include "includes.h"
 #include "smbd/process_model.h"
 #include "build.h"
+#include "param/param.h"
 
 /*
   setup the events for the chosen process model
@@ -82,7 +83,7 @@ _PUBLIC_ NTSTATUS register_process_model(const void *_ops)
 NTSTATUS process_model_init(void)
 {
        init_module_fn static_init[] = STATIC_process_model_MODULES;
-       init_module_fn *shared_init = load_samba_modules(NULL, "process_model");
+       init_module_fn *shared_init = load_samba_modules(NULL, global_loadparm, "process_model");
 
        run_init_functions(static_init);
        run_init_functions(shared_init);
index 513e90378108dd38ed2f20327d26bcbd8147f99a..19212606c1c1bb47427197b9db9c102c095b14c2 100644 (file)
@@ -67,6 +67,8 @@ struct process_model_critical_sizes {
        int sizeof_model_ops;
 };
 
+extern const struct model_ops single_ops;
+
 #include "smbd/process_model_proto.h"
 
 #endif /* __PROCESS_MODEL_H__ */
index 65f5a7e3755ae6efbe8dc3e6e50a3341b904b673..5ba2c8df887239b40d17b0651fe442688a6b9f11 100644 (file)
@@ -87,7 +87,7 @@ static void single_set_title(struct event_context *ev, const char *title)
 {
 }
 
-static const struct model_ops single_ops = {
+const struct model_ops single_ops = {
        .name                   = "single",
        .model_init             = single_model_init,
        .new_task               = single_new_task,
index b9a245d140f6bbcaff811e879034805cda9fac3b..07fdccdb36a655fe9f171b39730e532ed550b9f9 100644 (file)
@@ -191,7 +191,7 @@ static void standard_new_task(struct event_context *ev,
 
 
 /* called when a task goes down */
-static void standard_terminate(struct event_context *ev, const char *reason) 
+_NORETURN_ static void standard_terminate(struct event_context *ev, const char *reason) 
 {
        DEBUG(2,("standard_terminate: reason[%s]\n",reason));
 
index 1a90592fcd5860c9ffea03a28b1522707d5238a6..8f5c3b66ecd8311d094a6eb801511d23a259076f 100644 (file)
@@ -39,6 +39,7 @@
 #include "param/secrets.h"
 #include "smbd/pidfile.h"
 #include "cluster/ctdb/ctdb_cluster.h"
+#include "param/param.h"
 
 /*
   recursively delete a directory tree
@@ -92,7 +93,7 @@ static void cleanup_tmp_files(void)
        char *path;
        TALLOC_CTX *mem_ctx = talloc_new(NULL);
 
-       path = smbd_tmp_path(mem_ctx, NULL);
+       path = smbd_tmp_path(mem_ctx, global_loadparm, NULL);
 
        recursive_delete(path);
        talloc_free(mem_ctx);
@@ -122,25 +123,25 @@ static void sig_term(int sig)
 static void setup_signals(void)
 {
        /* we are never interested in SIGPIPE */
-       BlockSignals(True,SIGPIPE);
+       BlockSignals(true,SIGPIPE);
 
 #if defined(SIGFPE)
        /* we are never interested in SIGFPE */
-       BlockSignals(True,SIGFPE);
+       BlockSignals(true,SIGFPE);
 #endif
 
        /* We are no longer interested in USR1 */
-       BlockSignals(True, SIGUSR1);
+       BlockSignals(true, SIGUSR1);
 
 #if defined(SIGUSR2)
        /* We are no longer interested in USR2 */
-       BlockSignals(True,SIGUSR2);
+       BlockSignals(true,SIGUSR2);
 #endif
 
        /* POSIX demands that signals are inherited. If the invoking process has
         * these signals masked, we will have problems, as we won't recieve them. */
-       BlockSignals(False, SIGHUP);
-       BlockSignals(False, SIGTERM);
+       BlockSignals(false, SIGHUP);
+       BlockSignals(false, SIGTERM);
 
        CatchSignal(SIGHUP, sig_hup);
        CatchSignal(SIGTERM, sig_term);
@@ -152,7 +153,7 @@ static void setup_signals(void)
 static void server_stdin_handler(struct event_context *event_ctx, struct fd_event *fde, 
                                 uint16_t flags, void *private)
 {
-       const char *binary_name = private;
+       const char *binary_name = (const char *)private;
        uint8_t c;
        if (read(0, &c, 1) == 0) {
                DEBUG(0,("%s: EOF on stdin - terminating\n", binary_name));
@@ -168,10 +169,11 @@ static void server_stdin_handler(struct event_context *event_ctx, struct fd_even
 /*
   die if the user selected maximum runtime is exceeded
 */
-static void max_runtime_handler(struct event_context *ev, struct timed_event *te, 
-                               struct timeval t, void *private)
+_NORETURN_ static void max_runtime_handler(struct event_context *ev, 
+                                          struct timed_event *te, 
+                                          struct timeval t, void *private)
 {
-       const char *binary_name = private;
+       const char *binary_name = (const char *)private;
        DEBUG(0,("%s: maximum runtime exceeded - terminating\n", binary_name));
        exit(0);
 }
@@ -267,8 +269,8 @@ static int binary_smbd_main(const char *binary_name, int argc, const char *argv[
 
        cleanup_tmp_files();
 
-       if (!directory_exist(lp_lockdir())) {
-               mkdir(lp_lockdir(), 0755);
+       if (!directory_exist(lp_lockdir(global_loadparm))) {
+               mkdir(lp_lockdir(global_loadparm), 0755);
        }
 
        pidfile_create(binary_name);
@@ -294,7 +296,7 @@ static int binary_smbd_main(const char *binary_name, int argc, const char *argv[
 
        process_model_init(); 
 
-       shared_init = load_samba_modules(NULL, "service");
+       shared_init = load_samba_modules(NULL, global_loadparm, "service");
 
        run_init_functions(static_init);
        run_init_functions(shared_init);
@@ -305,6 +307,11 @@ static int binary_smbd_main(const char *binary_name, int argc, const char *argv[
           should hang off that */
        event_ctx = event_context_init(talloc_autofree_context());
 
+       if (event_ctx == NULL) {
+               DEBUG(0,("Initializing event context failed\n"));
+               return 1;
+       }
+
        /* initialise clustering if needed */
        cluster_ctdb_init(event_ctx, model);
 
@@ -327,7 +334,7 @@ static int binary_smbd_main(const char *binary_name, int argc, const char *argv[
        }
 
        DEBUG(0,("%s: using '%s' process model\n", binary_name, model));
-       status = server_service_startup(event_ctx, model, lp_server_services());
+       status = server_service_startup(event_ctx, model, lp_server_services(global_loadparm));
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0,("Starting Services failed - %s\n", nt_errstr(status)));
                return 1;
index 08c323fc0ade7bcf322968b5a1ad850ad4b512d5..ad72f907bb366752e27cc36bb65d02af1b8bddbf 100644 (file)
@@ -28,6 +28,7 @@
 #include "smbd/service_stream.h"
 #include "lib/messaging/irpc.h"
 #include "cluster/cluster.h"
+#include "param/param.h"
 
 /* the range of ports to try for dcerpc over tcp endpoints */
 #define SERVER_TCP_LOW_PORT  1024
@@ -83,13 +84,13 @@ void stream_terminate_connection(struct stream_connection *srv_conn, const char
 */
 static void stream_io_handler(struct stream_connection *conn, uint16_t flags)
 {
-       conn->processing = True;
+       conn->processing = true;
        if (flags & EVENT_FD_WRITE) {
                conn->ops->send_handler(conn, flags);
        } else if (flags & EVENT_FD_READ) {
                conn->ops->recv_handler(conn, flags);
        }
-       conn->processing = False;
+       conn->processing = false;
 
        if (conn->terminate) {
                stream_terminate_connection(conn, conn->terminate);
@@ -174,13 +175,15 @@ static void stream_new_connection(struct event_context *ev,
        srv_conn->event.fde     = event_add_fd(ev, srv_conn, socket_get_fd(sock),
                                               0, stream_io_handler_fde, srv_conn);
 
-       if (!socket_check_access(sock, "smbd", lp_hostsallow(-1), lp_hostsdeny(-1))) {
+       if (!socket_check_access(sock, "smbd", lp_hostsallow(NULL), lp_hostsdeny(NULL))) {
                stream_terminate_connection(srv_conn, "denied by access rules");
                return;
        }
 
        /* setup to receive internal messages on this connection */
-       srv_conn->msg_ctx = messaging_init(srv_conn, srv_conn->server_id, ev);
+       srv_conn->msg_ctx = messaging_init(srv_conn, 
+                                          lp_messaging_path(srv_conn, global_loadparm),
+                                          srv_conn->server_id, ev);
        if (!srv_conn->msg_ctx) {
                stream_terminate_connection(srv_conn, "messaging_init() failed");
                return;
@@ -224,11 +227,13 @@ static void stream_accept_handler(struct event_context *ev, struct fd_event *fde
                                                    stream_new_connection, stream_socket);
 }
 
-
-
 /*
   setup a listen stream socket
   if you pass *port == 0, then a port > 1024 is used
+
+  FIXME: This function is TCP/IP specific - uses an int rather than 
+        a string for the port. Should leave allocating a port nr 
+         to the socket implementation - JRV20070903
  */
 NTSTATUS stream_setup_socket(struct event_context *event_context,
                             const struct model_ops *model_ops,
@@ -255,7 +260,8 @@ NTSTATUS stream_setup_socket(struct event_context *event_context,
        status = socket_set_option(stream_socket->sock, "SO_KEEPALIVE", NULL);
        NT_STATUS_NOT_OK_RETURN(status);
 
-       status = socket_set_option(stream_socket->sock, lp_socket_options(), NULL);
+       status = socket_set_option(stream_socket->sock, lp_socket_options(global_loadparm), 
+                                  NULL);
        NT_STATUS_NOT_OK_RETURN(status);
 
        /* TODO: set socket ACL's here when they're implemented */
index 49869d8eed35d31a8203b42f0b32ec345596dbed..6eb26a42825605f06b44571cbf1fe0825808adcc 100644 (file)
@@ -23,6 +23,8 @@
 #ifndef __SERVICE_STREAM_H__
 #define __SERVICE_STREAM_H__
 
+#include "librpc/gen_ndr/misc.h"
+
 /* modules can use the following to determine if the interface has changed
  * please increment the version number after each interface change
  * with a comment and maybe update struct stream_connection_critical_sizes.
index cab5c7e11288d7c99de26e89862f99fed4f8766d..c77cae4185e0cbf968fe05328793df15e070a992 100644 (file)
@@ -25,6 +25,7 @@
 #include "smbd/service.h"
 #include "smbd/service_task.h"
 #include "lib/messaging/irpc.h"
+#include "param/param.h"
 
 /*
   terminate a task service
@@ -64,7 +65,9 @@ static void task_server_callback(struct event_context *event_ctx,
        task->model_ops = state->model_ops;
        task->server_id = server_id;
 
-       task->msg_ctx = messaging_init(task, task->server_id, task->event_ctx);
+       task->msg_ctx = messaging_init(task, 
+                                      lp_messaging_path(task, global_loadparm),
+                                      task->server_id, task->event_ctx);
        if (!task->msg_ctx) {
                task_server_terminate(task, "messaging_init() failed");
                return;
index 54e6d0fa6c7981f2b5f0cb3518919430213fba99..e5bf9ea41460cdac056e56abfc1e73050025fca1 100644 (file)
@@ -22,6 +22,8 @@
 #ifndef __SERVICE_TASK_H__
 #define __SERVICE_TASK_H__ 
 
+#include "librpc/gen_ndr/misc.h"
+
 struct task_server {
        struct event_context *event_ctx;
        const struct model_ops *model_ops;
index a09ba74e88c8eeb36a10e97cf381366fb275b8f4..1f86372aa37908b97d215dea4d2e34e336eb8add 100644 (file)
@@ -12,7 +12,6 @@ include/includes.h: \
                include/config.h \
                lib/charset/charset.h \
                param/proto.h \
-               libcli/util/proto.h \
                librpc/gen_ndr/misc.h
 
 heimdal_basics: \
index e97338d3a6409b73334b70cc6a3af7c8e29d4fa7..23269a0160b9fe55fa04dc9af9f0df8e88146fda 100644 (file)
@@ -44,7 +44,7 @@ static bool torture_ntlmssp_self_check(struct torture_context *tctx)
                        gensec_start_mech_by_oid(gensec_security, GENSEC_OID_NTLMSSP),
                        "Failed to start GENSEC for NTLMSSP");
 
-       gensec_ntlmssp_state = gensec_security->private_data;
+       gensec_ntlmssp_state = (struct gensec_ntlmssp_state *)gensec_security->private_data;
 
        gensec_ntlmssp_state->session_key = strhex_to_data_blob("0102030405060708090a0b0c0d0e0f00");
        dump_data_pw("NTLMSSP session key: \n", 
@@ -98,7 +98,7 @@ static bool torture_ntlmssp_self_check(struct torture_context *tctx)
                gensec_start_mech_by_oid(gensec_security, GENSEC_OID_NTLMSSP),
                "GENSEC start mech by oid");
 
-       gensec_ntlmssp_state = gensec_security->private_data;
+       gensec_ntlmssp_state = (struct gensec_ntlmssp_state *)gensec_security->private_data;
 
        gensec_ntlmssp_state->session_key = strhex_to_data_blob("0102030405e538b0");
        dump_data_pw("NTLMSSP session key: \n", 
index 0b5f1fb88a99f1808d412837722353f94fa0403c..660009704b9f44515a885847e8cd80f7f443422a 100644 (file)
@@ -381,9 +381,9 @@ static bool setpathinfo_aliases(struct torture_context *tctx,
 
 
 /* look for aliased info levels in trans2 calls */
-struct torture_suite *torture_trans2_aliases(void)
+struct torture_suite *torture_trans2_aliases(TALLOC_CTX *mem_ctx)
 {
-       struct torture_suite *suite = torture_suite_create(talloc_autofree_context(), "ALIASES");
+       struct torture_suite *suite = torture_suite_create(mem_ctx, "ALIASES");
 
        torture_suite_add_1smb_test(suite, "QFILEINFO aliases", qfsinfo_aliases);
        torture_suite_add_1smb_test(suite, "QFSINFO aliases", qfileinfo_aliases);
index 4c6a7a3ab6c8bb7e022cc694599e880d0527c714..07071bb68a01439c72eff6caade47283c0b428db 100644 (file)
@@ -86,8 +86,8 @@ static const struct trunc_open_results attr_results[] = {
 };
 
 
-BOOL torture_openattrtest(struct torture_context *tctx, 
-                                                 struct smbcli_state *cli1)
+bool torture_openattrtest(struct torture_context *tctx, 
+                         struct smbcli_state *cli1)
 {
        const char *fname = "\\openattr.file";
        int fnum1;
index bfe1e082f119b765e74cd37ac97b4f0f5a8c4c17..1415b4195f725d7e2231e10e78f24508d984f1d6 100644 (file)
@@ -29,6 +29,7 @@
 #include "librpc/gen_ndr/ndr_nbt.h"
 #include "lib/events/events.h"
 #include "lib/cmdline/popt_common.h"
+#include "param/param.h"
 
 
 #define CHECK_MAX_FAILURES(label) do { if (++failures >= torture_failures) goto label; } while (0)
@@ -40,7 +41,7 @@ static struct smbcli_state *open_nbt_connection(struct torture_context *tctx)
        struct smbcli_state *cli;
        const char *host = torture_setting_string(tctx, "host", NULL);
 
-       make_nbt_name_client(&calling, lp_netbios_name());
+       make_nbt_name_client(&calling, lp_netbios_name(global_loadparm));
 
        nbt_choose_called_name(NULL, &called, host, NBT_NAME_SERVER);
 
@@ -67,12 +68,12 @@ failed:
        return NULL;
 }
 
-static BOOL tcon_devtest(struct torture_context *tctx, 
+static bool tcon_devtest(struct torture_context *tctx, 
                                                 struct smbcli_state *cli,
                                                 const char *myshare, const char *devtype,
                                                 NTSTATUS expected_error)
 {
-       BOOL status;
+       bool status;
        const char *password = torture_setting_string(tctx, "password", NULL);
 
        status = NT_STATUS_IS_OK(smbcli_tconX(cli, myshare, devtype, 
@@ -157,13 +158,13 @@ static bool run_fdpasstest(struct torture_context *tctx,
 /**
   This checks how the getatr calls works
 */
-static BOOL run_attrtest(struct torture_context *tctx, 
+static bool run_attrtest(struct torture_context *tctx, 
                                                 struct smbcli_state *cli)
 {
        int fnum;
        time_t t, t2;
        const char *fname = "\\attrib123456789.tst";
-       BOOL correct = True;
+       bool correct = true;
 
        smbcli_unlink(cli->tree, fname);
        fnum = smbcli_open(cli->tree, fname, 
@@ -172,7 +173,7 @@ static BOOL run_attrtest(struct torture_context *tctx,
 
        if (NT_STATUS_IS_ERR(smbcli_getatr(cli->tree, fname, NULL, NULL, &t))) {
                torture_comment(tctx, "getatr failed (%s)\n", smbcli_errstr(cli->tree));
-               correct = False;
+               correct = false;
        }
 
        torture_comment(tctx, "New file time is %s", ctime(&t));
@@ -181,7 +182,7 @@ static BOOL run_attrtest(struct torture_context *tctx,
                torture_comment(tctx, "ERROR: SMBgetatr bug. time is %s",
                       ctime(&t));
                t = time(NULL);
-               correct = False;
+               correct = false;
        }
 
        t2 = t-60*60*24; /* 1 day ago */
@@ -190,12 +191,12 @@ static BOOL run_attrtest(struct torture_context *tctx,
 
        if (NT_STATUS_IS_ERR(smbcli_setatr(cli->tree, fname, 0, t2))) {
                torture_comment(tctx, "setatr failed (%s)\n", smbcli_errstr(cli->tree));
-               correct = True;
+               correct = true;
        }
 
        if (NT_STATUS_IS_ERR(smbcli_getatr(cli->tree, fname, NULL, NULL, &t))) {
                torture_comment(tctx, "getatr failed (%s)\n", smbcli_errstr(cli->tree));
-               correct = True;
+               correct = true;
        }
 
        torture_comment(tctx, "Retrieved file time as %s", ctime(&t));
@@ -204,7 +205,7 @@ static BOOL run_attrtest(struct torture_context *tctx,
                torture_comment(tctx, "ERROR: getatr/setatr bug. times are\n%s",
                       ctime(&t));
                torture_comment(tctx, "%s", ctime(&t2));
-               correct = True;
+               correct = true;
        }
 
        smbcli_unlink(cli->tree, fname);
@@ -215,7 +216,7 @@ static BOOL run_attrtest(struct torture_context *tctx,
 /**
   This checks a couple of trans2 calls
 */
-static BOOL run_trans2test(struct torture_context *tctx, 
+static bool run_trans2test(struct torture_context *tctx, 
                                                   struct smbcli_state *cli)
 {
        int fnum;
@@ -225,7 +226,7 @@ static BOOL run_trans2test(struct torture_context *tctx,
        const char *dname = "\\trans2";
        const char *fname2 = "\\trans2\\trans2.tst";
        const char *pname;
-       BOOL correct = True;
+       bool correct = true;
 
        smbcli_unlink(cli->tree, fname);
 
@@ -236,20 +237,20 @@ static BOOL run_trans2test(struct torture_context *tctx,
        if (NT_STATUS_IS_ERR(smbcli_qfileinfo(cli->tree, fnum, NULL, &size, &c_time, &a_time, &m_time,
                           NULL, NULL))) {
                torture_comment(tctx, "ERROR: qfileinfo failed (%s)\n", smbcli_errstr(cli->tree));
-               correct = False;
+               correct = false;
        }
 
        torture_comment(tctx, "Testing NAME_INFO\n");
 
        if (NT_STATUS_IS_ERR(smbcli_qfilename(cli->tree, fnum, &pname))) {
                torture_comment(tctx, "ERROR: qfilename failed (%s)\n", smbcli_errstr(cli->tree));
-               correct = False;
+               correct = false;
        }
 
        if (!pname || strcmp(pname, fname)) {
                torture_comment(tctx, "qfilename gave different name? [%s] [%s]\n",
                       fname, pname);
-               correct = False;
+               correct = false;
        }
 
        smbcli_close(cli->tree, fnum);
@@ -259,7 +260,7 @@ static BOOL run_trans2test(struct torture_context *tctx,
                        O_RDWR | O_CREAT | O_TRUNC, DENY_NONE);
        if (fnum == -1) {
                torture_comment(tctx, "open of %s failed (%s)\n", fname, smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
        smbcli_close(cli->tree, fnum);
 
@@ -267,7 +268,7 @@ static BOOL run_trans2test(struct torture_context *tctx,
 
        if (NT_STATUS_IS_ERR(smbcli_qpathinfo(cli->tree, fname, &c_time, &a_time, &m_time, &size, NULL))) {
                torture_comment(tctx, "ERROR: qpathinfo failed (%s)\n", smbcli_errstr(cli->tree));
-               correct = False;
+               correct = false;
        } else {
                if (c_time != m_time) {
                        torture_comment(tctx, "create time=%s", ctime(&c_time));
@@ -277,12 +278,12 @@ static BOOL run_trans2test(struct torture_context *tctx,
                if (a_time % (60*60) == 0) {
                        torture_comment(tctx, "access time=%s", ctime(&a_time));
                        torture_comment(tctx, "This system appears to set a midnight access time\n");
-                       correct = False;
+                       correct = false;
                }
 
                if (abs(m_time - time(NULL)) > 60*60*24*7) {
                        torture_comment(tctx, "ERROR: totally incorrect times - maybe word reversed? mtime=%s", ctime(&m_time));
-                       correct = False;
+                       correct = false;
                }
        }
 
@@ -293,12 +294,12 @@ static BOOL run_trans2test(struct torture_context *tctx,
        smbcli_close(cli->tree, fnum);
        if (NT_STATUS_IS_ERR(smbcli_qpathinfo2(cli->tree, fname, &c_time, &a_time, &m_time, &w_time, &size, NULL, NULL))) {
                torture_comment(tctx, "ERROR: qpathinfo2 failed (%s)\n", smbcli_errstr(cli->tree));
-               correct = False;
+               correct = false;
        } else {
                if (w_time < 60*60*24*2) {
                        torture_comment(tctx, "write time=%s", ctime(&w_time));
                        torture_comment(tctx, "This system appears to set a initial 0 write time\n");
-                       correct = False;
+                       correct = false;
                }
        }
 
@@ -309,12 +310,12 @@ static BOOL run_trans2test(struct torture_context *tctx,
            when creating a new file */
        if (NT_STATUS_IS_ERR(smbcli_mkdir(cli->tree, dname))) {
                torture_comment(tctx, "ERROR: mkdir failed (%s)\n", smbcli_errstr(cli->tree));
-               correct = False;
+               correct = false;
        }
        sleep(3);
        if (NT_STATUS_IS_ERR(smbcli_qpathinfo2(cli->tree, "\\trans2\\", &c_time, &a_time, &m_time, &w_time, &size, NULL, NULL))) {
                torture_comment(tctx, "ERROR: qpathinfo2 failed (%s)\n", smbcli_errstr(cli->tree));
-               correct = False;
+               correct = false;
        }
 
        fnum = smbcli_open(cli->tree, fname2, 
@@ -323,11 +324,11 @@ static BOOL run_trans2test(struct torture_context *tctx,
        smbcli_close(cli->tree, fnum);
        if (NT_STATUS_IS_ERR(smbcli_qpathinfo2(cli->tree, "\\trans2\\", &c_time, &a_time, &m_time2, &w_time, &size, NULL, NULL))) {
                torture_comment(tctx, "ERROR: qpathinfo2 failed (%s)\n", smbcli_errstr(cli->tree));
-               correct = False;
+               correct = false;
        } else {
                if (m_time2 == m_time) {
                        torture_comment(tctx, "This system does not update directory modification times\n");
-                       correct = False;
+                       correct = false;
                }
        }
        smbcli_unlink(cli->tree, fname2);
@@ -337,17 +338,17 @@ static BOOL run_trans2test(struct torture_context *tctx,
 }
 
 /* send smb negprot commands, not reading the response */
-static BOOL run_negprot_nowait(struct torture_context *tctx)
+static bool run_negprot_nowait(struct torture_context *tctx)
 {
        int i;
        struct smbcli_state *cli, *cli2;
-       BOOL correct = True;
+       bool correct = true;
 
        torture_comment(tctx, "starting negprot nowait test\n");
 
        cli = open_nbt_connection(tctx);
        if (!cli) {
-               return False;
+               return false;
        }
 
        torture_comment(tctx, "Filling send buffer\n");
@@ -363,7 +364,7 @@ static BOOL run_negprot_nowait(struct torture_context *tctx)
                        } else {
                                torture_comment(tctx, "Failed to fill pipe - %s \n", nt_errstr(req->status));
                                torture_close_connection(cli);
-                               return False;
+                               return false;
                        }
                }
        }
@@ -371,12 +372,12 @@ static BOOL run_negprot_nowait(struct torture_context *tctx)
        torture_comment(tctx, "Opening secondary connection\n");
        if (!torture_open_connection(&cli2, 1)) {
                torture_comment(tctx, "Failed to open secondary connection\n");
-               correct = False;
+               correct = false;
        }
 
        if (!torture_close_connection(cli2)) {
                torture_comment(tctx, "Failed to close secondary connection\n");
-               correct = False;
+               correct = false;
        }
 
        torture_close_connection(cli);
@@ -388,14 +389,14 @@ static BOOL run_negprot_nowait(struct torture_context *tctx)
   this checks to see if a secondary tconx can use open files from an
   earlier tconx
  */
-static BOOL run_tcon_test(struct torture_context *tctx, struct smbcli_state *cli)
+static bool run_tcon_test(struct torture_context *tctx, struct smbcli_state *cli)
 {
        const char *fname = "\\tcontest.tmp";
        int fnum1;
        uint16_t cnum1, cnum2, cnum3;
        uint16_t vuid1, vuid2;
        uint8_t buf[4];
-       BOOL ret = True;
+       bool ret = true;
        struct smbcli_tree *tree1;
        const char *host = torture_setting_string(tctx, "host", NULL);
        const char *share = torture_setting_string(tctx, "share", NULL);
@@ -408,16 +409,16 @@ static BOOL run_tcon_test(struct torture_context *tctx, struct smbcli_state *cli
        fnum1 = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT|O_EXCL, DENY_NONE);
        if (fnum1 == -1) {
                torture_comment(tctx, "open of %s failed (%s)\n", fname, smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
 
        cnum1 = cli->tree->tid;
        vuid1 = cli->session->vuid;
 
-       memset(&buf, 0, 4); /* init buf so valgrind won't complain */
+       memset(buf, 0, 4); /* init buf so valgrind won't complain */
        if (smbcli_write(cli->tree, fnum1, 0, buf, 130, 4) != 4) {
                torture_comment(tctx, "initial write failed (%s)\n", smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
 
        tree1 = cli->tree;      /* save old tree connection */
@@ -425,7 +426,7 @@ static BOOL run_tcon_test(struct torture_context *tctx, struct smbcli_state *cli
                torture_comment(tctx, "%s refused 2nd tree connect (%s)\n", host,
                           smbcli_errstr(cli->tree));
                talloc_free(cli);
-               return False;
+               return false;
        }
 
        cnum2 = cli->tree->tid;
@@ -437,7 +438,7 @@ static BOOL run_tcon_test(struct torture_context *tctx, struct smbcli_state *cli
 
        if (smbcli_write(cli->tree, fnum1, 0, buf, 130, 4) == 4) {
                torture_comment(tctx, "* server allows write with wrong TID\n");
-               ret = False;
+               ret = false;
        } else {
                torture_comment(tctx, "server fails write with wrong TID : %s\n", smbcli_errstr(cli->tree));
        }
@@ -448,7 +449,7 @@ static BOOL run_tcon_test(struct torture_context *tctx, struct smbcli_state *cli
 
        if (smbcli_write(cli->tree, fnum1, 0, buf, 130, 4) == 4) {
                torture_comment(tctx, "* server allows write with invalid TID\n");
-               ret = False;
+               ret = false;
        } else {
                torture_comment(tctx, "server fails write with invalid TID : %s\n", smbcli_errstr(cli->tree));
        }
@@ -459,7 +460,7 @@ static BOOL run_tcon_test(struct torture_context *tctx, struct smbcli_state *cli
 
        if (smbcli_write(cli->tree, fnum1, 0, buf, 130, 4) == 4) {
                torture_comment(tctx, "* server allows write with invalid VUID\n");
-               ret = False;
+               ret = false;
        } else {
                torture_comment(tctx, "server fails write with invalid VUID : %s\n", smbcli_errstr(cli->tree));
        }
@@ -469,14 +470,14 @@ static BOOL run_tcon_test(struct torture_context *tctx, struct smbcli_state *cli
 
        if (NT_STATUS_IS_ERR(smbcli_close(cli->tree, fnum1))) {
                torture_comment(tctx, "close failed (%s)\n", smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
 
        cli->tree->tid = cnum2;
 
        if (NT_STATUS_IS_ERR(smbcli_tdis(cli))) {
                torture_comment(tctx, "secondary tdis failed (%s)\n", smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
 
        cli->tree = tree1;  /* restore initial tree */
@@ -490,7 +491,7 @@ static BOOL run_tcon_test(struct torture_context *tctx, struct smbcli_state *cli
 /**
  checks for correct tconX support
  */
-static BOOL run_tcon_devtype_test(struct torture_context *tctx, 
+static bool run_tcon_devtype_test(struct torture_context *tctx, 
                                                                  struct smbcli_state *cli1)
 {
        const char *share = torture_setting_string(tctx, "share", NULL);
@@ -528,7 +529,7 @@ static BOOL run_tcon_devtype_test(struct torture_context *tctx,
        return true;
 }
 
-static BOOL rw_torture2(struct torture_context *tctx,
+static bool rw_torture2(struct torture_context *tctx,
                                                struct smbcli_state *c1, struct smbcli_state *c2)
 {
        const char *lockfname = "\\torture2.lck";
@@ -537,7 +538,7 @@ static BOOL rw_torture2(struct torture_context *tctx,
        int i;
        uint8_t buf[131072];
        uint8_t buf_rd[131072];
-       BOOL correct = True;
+       bool correct = true;
        ssize_t bytes_read, bytes_written;
 
        torture_assert(tctx, smbcli_deltree(c1->tree, lockfname) != -1,
@@ -574,14 +575,14 @@ static BOOL rw_torture2(struct torture_context *tctx,
                if ((bytes_written = smbcli_write(c1->tree, fnum1, 0, buf, 0, buf_size)) != buf_size) {
                        torture_comment(tctx, "write failed (%s)\n", smbcli_errstr(c1->tree));
                        torture_comment(tctx, "wrote %d, expected %d\n", (int)bytes_written, (int)buf_size); 
-                       correct = False;
+                       correct = false;
                        break;
                }
 
                if ((bytes_read = smbcli_read(c2->tree, fnum2, buf_rd, 0, buf_size)) != buf_size) {
                        torture_comment(tctx, "read failed (%s)\n", smbcli_errstr(c2->tree));
                        torture_comment(tctx, "read %d, expected %d\n", (int)bytes_read, (int)buf_size); 
-                       correct = False;
+                       correct = false;
                        break;
                }
 
@@ -623,16 +624,16 @@ static bool run_readwritetest(struct torture_context *tctx,
 /*
 test the timing of deferred open requests
 */
-static BOOL run_deferopen(struct torture_context *tctx, struct smbcli_state *cli, int dummy)
+static bool run_deferopen(struct torture_context *tctx, struct smbcli_state *cli, int dummy)
 {
        const char *fname = "\\defer_open_test.dat";
        int retries=4;
        int i = 0;
-       BOOL correct = True;
+       bool correct = true;
 
        if (retries <= 0) {
                torture_comment(tctx, "failed to connect\n");
-               return False;
+               return false;
        }
 
        torture_comment(tctx, "Testing deferred open requests.\n");
@@ -662,7 +663,7 @@ static BOOL run_deferopen(struct torture_context *tctx, struct smbcli_state *cli
 
                if (fnum == -1) {
                        torture_comment(tctx,"Failed to open %s, error=%s\n", fname, smbcli_errstr(cli->tree));
-                       return False;
+                       return false;
                }
 
                torture_comment(tctx, "pid %u open %d\n", (unsigned)getpid(), i);
@@ -671,7 +672,7 @@ static BOOL run_deferopen(struct torture_context *tctx, struct smbcli_state *cli
                i++;
                if (NT_STATUS_IS_ERR(smbcli_close(cli->tree, fnum))) {
                        torture_comment(tctx,"Failed to close %s, error=%s\n", fname, smbcli_errstr(cli->tree));
-                       return False;
+                       return false;
                }
                sleep(2);
        }
@@ -680,7 +681,7 @@ static BOOL run_deferopen(struct torture_context *tctx, struct smbcli_state *cli
                /* All until the last unlink will fail with sharing violation. */
                if (!NT_STATUS_EQUAL(smbcli_nt_error(cli->tree),NT_STATUS_SHARING_VIOLATION)) {
                        torture_comment(tctx, "unlink of %s failed (%s)\n", fname, smbcli_errstr(cli->tree));
-                       correct = False;
+                       correct = false;
                }
        }
 
@@ -692,7 +693,7 @@ static BOOL run_deferopen(struct torture_context *tctx, struct smbcli_state *cli
   Try with a wrong vuid and check error message.
  */
 
-static BOOL run_vuidtest(struct torture_context *tctx, 
+static bool run_vuidtest(struct torture_context *tctx, 
                                                 struct smbcli_state *cli)
 {
        const char *fname = "\\vuid.tst";
@@ -743,7 +744,7 @@ static BOOL run_vuidtest(struct torture_context *tctx,
 /*
   Test open mode returns on read-only files.
  */
- static BOOL run_opentest(struct torture_context *tctx, struct smbcli_state *cli1, 
+ static bool run_opentest(struct torture_context *tctx, struct smbcli_state *cli1, 
                                                  struct smbcli_state *cli2)
 {
        const char *fname = "\\readonly.file";
@@ -751,7 +752,7 @@ static BOOL run_vuidtest(struct torture_context *tctx,
        int fnum1, fnum2;
        uint8_t buf[20];
        size_t fsize;
-       BOOL correct = True;
+       bool correct = true;
        char *tmp_path;
        int failures = 0;
        int i;
@@ -786,25 +787,25 @@ static BOOL run_vuidtest(struct torture_context *tctx,
        fnum1 = smbcli_open(cli1->tree, fname, O_RDWR|O_CREAT|O_EXCL, DENY_NONE);
        if (fnum1 == -1) {
                torture_comment(tctx, "open of %s failed (%s)\n", fname, smbcli_errstr(cli1->tree));
-               return False;
+               return false;
        }
 
        if (NT_STATUS_IS_ERR(smbcli_close(cli1->tree, fnum1))) {
                torture_comment(tctx, "close2 failed (%s)\n", smbcli_errstr(cli1->tree));
-               return False;
+               return false;
        }
        
        if (NT_STATUS_IS_ERR(smbcli_setatr(cli1->tree, fname, FILE_ATTRIBUTE_READONLY, 0))) {
                torture_comment(tctx, "smbcli_setatr failed (%s)\n", smbcli_errstr(cli1->tree));
                CHECK_MAX_FAILURES(error_test1);
-               return False;
+               return false;
        }
        
        fnum1 = smbcli_open(cli1->tree, fname, O_RDONLY, DENY_WRITE);
        if (fnum1 == -1) {
                torture_comment(tctx, "open of %s failed (%s)\n", fname, smbcli_errstr(cli1->tree));
                CHECK_MAX_FAILURES(error_test1);
-               return False;
+               return false;
        }
        
        /* This will fail - but the error should be ERRnoaccess, not ERRbadshare. */
@@ -826,7 +827,7 @@ error_test1:
        fnum1 = smbcli_open(cli1->tree, fname, O_RDONLY, DENY_WRITE);
        if (fnum1 == -1) {
                torture_comment(tctx, "open of %s failed (%s)\n", fname, smbcli_errstr(cli1->tree));
-               return False;
+               return false;
        }
        
        /* This will fail - but the error should be ERRshare. */
@@ -839,7 +840,7 @@ error_test1:
        
        if (NT_STATUS_IS_ERR(smbcli_close(cli1->tree, fnum1))) {
                torture_comment(tctx, "close2 failed (%s)\n", smbcli_errstr(cli1->tree));
-               return False;
+               return false;
        }
        
        smbcli_unlink(cli1->tree, fname);
@@ -851,7 +852,7 @@ error_test1:
        fnum1 = smbcli_open(cli1->tree, fname, O_RDWR|O_CREAT|O_EXCL, DENY_NONE);
        if (fnum1 == -1) {
                torture_comment(tctx, "(3) open (1) of %s failed (%s)\n", fname, smbcli_errstr(cli1->tree));
-               return False;
+               return false;
        }
        
        /* write 20 bytes. */
@@ -860,25 +861,25 @@ error_test1:
 
        if (smbcli_write(cli1->tree, fnum1, 0, buf, 0, 20) != 20) {
                torture_comment(tctx, "write failed (%s)\n", smbcli_errstr(cli1->tree));
-               correct = False;
+               correct = false;
        }
 
        if (NT_STATUS_IS_ERR(smbcli_close(cli1->tree, fnum1))) {
                torture_comment(tctx, "(3) close1 failed (%s)\n", smbcli_errstr(cli1->tree));
-               return False;
+               return false;
        }
        
        /* Ensure size == 20. */
        if (NT_STATUS_IS_ERR(smbcli_getatr(cli1->tree, fname, NULL, &fsize, NULL))) {
                torture_comment(tctx, "(3) getatr failed (%s)\n", smbcli_errstr(cli1->tree));
                CHECK_MAX_FAILURES(error_test3);
-               return False;
+               return false;
        }
        
        if (fsize != 20) {
                torture_comment(tctx, "(3) file size != 20\n");
                CHECK_MAX_FAILURES(error_test3);
-               return False;
+               return false;
        }
 
        /* Now test if we can truncate a file opened for readonly. */
@@ -887,25 +888,25 @@ error_test1:
        if (fnum1 == -1) {
                torture_comment(tctx, "(3) open (2) of %s failed (%s)\n", fname, smbcli_errstr(cli1->tree));
                CHECK_MAX_FAILURES(error_test3);
-               return False;
+               return false;
        }
        
        if (NT_STATUS_IS_ERR(smbcli_close(cli1->tree, fnum1))) {
                torture_comment(tctx, "close2 failed (%s)\n", smbcli_errstr(cli1->tree));
-               return False;
+               return false;
        }
 
        /* Ensure size == 0. */
        if (NT_STATUS_IS_ERR(smbcli_getatr(cli1->tree, fname, NULL, &fsize, NULL))) {
                torture_comment(tctx, "(3) getatr failed (%s)\n", smbcli_errstr(cli1->tree));
                CHECK_MAX_FAILURES(error_test3);
-               return False;
+               return false;
        }
 
        if (fsize != 0) {
                torture_comment(tctx, "(3) file size != 0\n");
                CHECK_MAX_FAILURES(error_test3);
-               return False;
+               return false;
        }
        torture_comment(tctx, "finished open test 3\n");
 error_test3:   
@@ -917,7 +918,7 @@ error_test3:
        if (fnum1 == -1) {
                torture_comment(tctx, "ctemp failed (%s)\n", smbcli_errstr(cli1->tree));
                CHECK_MAX_FAILURES(error_test4);
-               return False;
+               return false;
        }
        torture_comment(tctx, "ctemp gave path %s\n", tmp_path);
        if (NT_STATUS_IS_ERR(smbcli_close(cli1->tree, fnum1))) {
@@ -940,7 +941,7 @@ error_test4:
        if (fnum1 == -1) {
                torture_comment(tctx, "test 1 open 1 of %s failed (%s)\n", fname, smbcli_errstr(cli1->tree));
                CHECK_MAX_FAILURES(error_test10);
-               return False;
+               return false;
        }
 
        fnum2 = smbcli_nt_create_full(cli2->tree, fname, 0, SEC_FILE_READ_ATTRIBUTE, FILE_ATTRIBUTE_NORMAL,
@@ -948,16 +949,16 @@ error_test4:
        if (fnum2 == -1) {
                torture_comment(tctx, "test 1 open 2 of %s failed (%s)\n", fname, smbcli_errstr(cli2->tree));
                CHECK_MAX_FAILURES(error_test10);
-               return False;
+               return false;
        }
 
        if (NT_STATUS_IS_ERR(smbcli_close(cli1->tree, fnum1))) {
                torture_comment(tctx, "test 1 close 1 of %s failed (%s)\n", fname, smbcli_errstr(cli1->tree));
-               return False;
+               return false;
        }
        if (NT_STATUS_IS_ERR(smbcli_close(cli2->tree, fnum2))) {
                torture_comment(tctx, "test 1 close 2 of %s failed (%s)\n", fname, smbcli_errstr(cli2->tree));
-               return False;
+               return false;
        }
 
        torture_comment(tctx, "non-io open test #1 passed.\n");
@@ -972,7 +973,7 @@ error_test10:
        if (fnum1 == -1) {
                torture_comment(tctx, "test 2 open 1 of %s failed (%s)\n", fname, smbcli_errstr(cli1->tree));
                CHECK_MAX_FAILURES(error_test20);
-               return False;
+               return false;
        }
 
        fnum2 = smbcli_nt_create_full(cli2->tree, fname, 0, SEC_FILE_READ_ATTRIBUTE, FILE_ATTRIBUTE_NORMAL,
@@ -981,16 +982,16 @@ error_test10:
        if (fnum2 == -1) {
                torture_comment(tctx, "test 2 open 2 of %s failed (%s)\n", fname, smbcli_errstr(cli2->tree));
                CHECK_MAX_FAILURES(error_test20);
-               return False;
+               return false;
        }
 
        if (NT_STATUS_IS_ERR(smbcli_close(cli1->tree, fnum1))) {
                torture_comment(tctx, "test 1 close 1 of %s failed (%s)\n", fname, smbcli_errstr(cli1->tree));
-               return False;
+               return false;
        }
        if (NT_STATUS_IS_ERR(smbcli_close(cli2->tree, fnum2))) {
                torture_comment(tctx, "test 1 close 2 of %s failed (%s)\n", fname, smbcli_errstr(cli1->tree));
-               return False;
+               return false;
        }
 
        torture_comment(tctx, "non-io open test #2 passed.\n");
@@ -1005,7 +1006,7 @@ error_test20:
        if (fnum1 == -1) {
                torture_comment(tctx, "test 3 open 1 of %s failed (%s)\n", fname, smbcli_errstr(cli1->tree));
                CHECK_MAX_FAILURES(error_test30);
-               return False;
+               return false;
        }
 
        fnum2 = smbcli_nt_create_full(cli2->tree, fname, 0, SEC_STD_DELETE|SEC_FILE_READ_ATTRIBUTE, FILE_ATTRIBUTE_NORMAL,
@@ -1014,16 +1015,16 @@ error_test20:
        if (fnum2 == -1) {
                torture_comment(tctx, "test 3 open 2 of %s failed (%s)\n", fname, smbcli_errstr(cli2->tree));
                CHECK_MAX_FAILURES(error_test30);
-               return False;
+               return false;
        }
 
        if (NT_STATUS_IS_ERR(smbcli_close(cli1->tree, fnum1))) {
                torture_comment(tctx, "test 3 close 1 of %s failed (%s)\n", fname, smbcli_errstr(cli1->tree));
-               return False;
+               return false;
        }
        if (NT_STATUS_IS_ERR(smbcli_close(cli2->tree, fnum2))) {
                torture_comment(tctx, "test 3 close 2 of %s failed (%s)\n", fname, smbcli_errstr(cli2->tree));
-               return False;
+               return false;
        }
 
        torture_comment(tctx, "non-io open test #3 passed.\n");
@@ -1038,7 +1039,7 @@ error_test30:
        if (fnum1 == -1) {
                torture_comment(tctx, "test 4 open 1 of %s failed (%s)\n", fname, smbcli_errstr(cli1->tree));
                CHECK_MAX_FAILURES(error_test40);
-               return False;
+               return false;
        }
 
        fnum2 = smbcli_nt_create_full(cli2->tree, fname, 0, SEC_STD_DELETE|SEC_FILE_READ_ATTRIBUTE, FILE_ATTRIBUTE_NORMAL,
@@ -1047,14 +1048,14 @@ error_test30:
        if (fnum2 != -1) {
                torture_comment(tctx, "test 4 open 2 of %s SUCCEEDED - should have failed (%s)\n", fname, smbcli_errstr(cli2->tree));
                CHECK_MAX_FAILURES(error_test40);
-               return False;
+               return false;
        }
 
        torture_comment(tctx, "test 4 open 2 of %s gave %s (correct error should be %s)\n", fname, smbcli_errstr(cli2->tree), "sharing violation");
 
        if (NT_STATUS_IS_ERR(smbcli_close(cli1->tree, fnum1))) {
                torture_comment(tctx, "test 4 close 1 of %s failed (%s)\n", fname, smbcli_errstr(cli1->tree));
-               return False;
+               return false;
        }
 
        torture_comment(tctx, "non-io open test #4 passed.\n");
@@ -1069,7 +1070,7 @@ error_test40:
        if (fnum1 == -1) {
                torture_comment(tctx, "test 5 open 1 of %s failed (%s)\n", fname, smbcli_errstr(cli1->tree));
                CHECK_MAX_FAILURES(error_test50);
-               return False;
+               return false;
        }
 
        fnum2 = smbcli_nt_create_full(cli2->tree, fname, 0, SEC_STD_DELETE|SEC_FILE_READ_ATTRIBUTE, FILE_ATTRIBUTE_NORMAL,
@@ -1078,17 +1079,17 @@ error_test40:
        if (fnum2 == -1) {
                torture_comment(tctx, "test 5 open 2 of %s failed (%s)\n", fname, smbcli_errstr(cli2->tree));
                CHECK_MAX_FAILURES(error_test50);
-               return False;
+               return false;
        }
 
        if (NT_STATUS_IS_ERR(smbcli_close(cli1->tree, fnum1))) {
                torture_comment(tctx, "test 5 close 1 of %s failed (%s)\n", fname, smbcli_errstr(cli1->tree));
-               return False;
+               return false;
        }
 
        if (NT_STATUS_IS_ERR(smbcli_close(cli2->tree, fnum2))) {
                torture_comment(tctx, "test 5 close 2 of %s failed (%s)\n", fname, smbcli_errstr(cli2->tree));
-               return False;
+               return false;
        }
 
        torture_comment(tctx, "non-io open test #5 passed.\n");
@@ -1103,7 +1104,7 @@ error_test50:
        if (fnum1 == -1) {
                torture_comment(tctx, "test 6 open 1 of %s failed (%s)\n", fname, smbcli_errstr(cli1->tree));
                CHECK_MAX_FAILURES(error_test60);
-               return False;
+               return false;
        }
 
        fnum2 = smbcli_nt_create_full(cli2->tree, fname, 0, SEC_FILE_READ_ATTRIBUTE, FILE_ATTRIBUTE_NORMAL,
@@ -1112,17 +1113,17 @@ error_test50:
        if (fnum2 == -1) {
                torture_comment(tctx, "test 6 open 2 of %s failed (%s)\n", fname, smbcli_errstr(cli2->tree));
                CHECK_MAX_FAILURES(error_test60);
-               return False;
+               return false;
        }
 
        if (NT_STATUS_IS_ERR(smbcli_close(cli1->tree, fnum1))) {
                torture_comment(tctx, "test 6 close 1 of %s failed (%s)\n", fname, smbcli_errstr(cli1->tree));
-               return False;
+               return false;
        }
 
        if (NT_STATUS_IS_ERR(smbcli_close(cli2->tree, fnum2))) {
                torture_comment(tctx, "test 6 close 2 of %s failed (%s)\n", fname, smbcli_errstr(cli2->tree));
-               return False;
+               return false;
        }
 
        torture_comment(tctx, "non-io open test #6 passed.\n");
@@ -1137,7 +1138,7 @@ error_test60:
        if (fnum1 == -1) {
                torture_comment(tctx, "test 7 open 1 of %s failed (%s)\n", fname, smbcli_errstr(cli1->tree));
                CHECK_MAX_FAILURES(error_test70);
-               return False;
+               return false;
        }
 
        fnum2 = smbcli_nt_create_full(cli2->tree, fname, 0, SEC_STD_DELETE|SEC_FILE_READ_ATTRIBUTE, FILE_ATTRIBUTE_NORMAL,
@@ -1146,14 +1147,14 @@ error_test60:
        if (fnum2 != -1) {
                torture_comment(tctx, "test 7 open 2 of %s SUCCEEDED - should have failed (%s)\n", fname, smbcli_errstr(cli2->tree));
                CHECK_MAX_FAILURES(error_test70);
-               return False;
+               return false;
        }
 
        torture_comment(tctx, "test 7 open 2 of %s gave %s (correct error should be %s)\n", fname, smbcli_errstr(cli2->tree), "sharing violation");
 
        if (NT_STATUS_IS_ERR(smbcli_close(cli1->tree, fnum1))) {
                torture_comment(tctx, "test 7 close 1 of %s failed (%s)\n", fname, smbcli_errstr(cli1->tree));
-               return False;
+               return false;
        }
 
        torture_comment(tctx, "non-io open test #7 passed.\n");
@@ -1167,7 +1168,7 @@ error_test70:
        fnum1 = smbcli_open(cli1->tree, fname, O_RDWR|O_CREAT, DENY_NONE);
        if (fnum1 == -1) {
                torture_comment(tctx, "(8) open (1) of %s failed (%s)\n", fname, smbcli_errstr(cli1->tree));
-               return False;
+               return false;
        }
        
        /* write 20 bytes. */
@@ -1176,56 +1177,56 @@ error_test70:
 
        if (smbcli_write(cli1->tree, fnum1, 0, buf, 0, 20) != 20) {
                torture_comment(tctx, "(8) write failed (%s)\n", smbcli_errstr(cli1->tree));
-               correct = False;
+               correct = false;
        }
 
        /* Ensure size == 20. */
        if (NT_STATUS_IS_ERR(smbcli_getatr(cli1->tree, fname, NULL, &fsize, NULL))) {
                torture_comment(tctx, "(8) getatr (1) failed (%s)\n", smbcli_errstr(cli1->tree));
                CHECK_MAX_FAILURES(error_test80);
-               return False;
+               return false;
        }
        
        if (fsize != 20) {
                torture_comment(tctx, "(8) file size != 20\n");
                CHECK_MAX_FAILURES(error_test80);
-               return False;
+               return false;
        }
 
        /* Get an exclusive lock on the open file. */
        if (NT_STATUS_IS_ERR(smbcli_lock(cli1->tree, fnum1, 0, 4, 0, WRITE_LOCK))) {
                torture_comment(tctx, "(8) lock1 failed (%s)\n", smbcli_errstr(cli1->tree));
                CHECK_MAX_FAILURES(error_test80);
-               return False;
+               return false;
        }
 
        fnum2 = smbcli_open(cli1->tree, fname, O_RDWR|O_TRUNC, DENY_NONE);
        if (fnum1 == -1) {
                torture_comment(tctx, "(8) open (2) of %s with truncate failed (%s)\n", fname, smbcli_errstr(cli1->tree));
-               return False;
+               return false;
        }
 
        /* Ensure size == 0. */
        if (NT_STATUS_IS_ERR(smbcli_getatr(cli1->tree, fname, NULL, &fsize, NULL))) {
                torture_comment(tctx, "(8) getatr (2) failed (%s)\n", smbcli_errstr(cli1->tree));
                CHECK_MAX_FAILURES(error_test80);
-               return False;
+               return false;
        }
        
        if (fsize != 0) {
                torture_comment(tctx, "(8) file size != 0\n");
                CHECK_MAX_FAILURES(error_test80);
-               return False;
+               return false;
        }
 
        if (NT_STATUS_IS_ERR(smbcli_close(cli1->tree, fnum1))) {
                torture_comment(tctx, "(8) close1 failed (%s)\n", smbcli_errstr(cli1->tree));
-               return False;
+               return false;
        }
        
        if (NT_STATUS_IS_ERR(smbcli_close(cli1->tree, fnum2))) {
                torture_comment(tctx, "(8) close1 failed (%s)\n", smbcli_errstr(cli1->tree));
-               return False;
+               return false;
        }
        
 error_test80:
@@ -1314,7 +1315,7 @@ static bool run_iometer(struct torture_context *tctx,
 
        ops = 0;
 
-       while (True) {
+       while (true) {
                int i, num_reads, num_writes;
 
                num_reads = random() % 10;
@@ -1350,11 +1351,11 @@ static bool run_iometer(struct torture_context *tctx,
 /**
   tries variants of chkpath
  */
-static BOOL torture_chkpath_test(struct torture_context *tctx, 
+static bool torture_chkpath_test(struct torture_context *tctx, 
                                                                 struct smbcli_state *cli)
 {
        int fnum;
-       BOOL ret;
+       bool ret;
 
        torture_comment(tctx, "Testing valid and invalid paths\n");
 
@@ -1365,29 +1366,29 @@ static BOOL torture_chkpath_test(struct torture_context *tctx,
 
        if (NT_STATUS_IS_ERR(smbcli_mkdir(cli->tree, "\\chkpath.dir"))) {
                torture_comment(tctx, "mkdir1 failed : %s\n", smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
 
        if (NT_STATUS_IS_ERR(smbcli_mkdir(cli->tree, "\\chkpath.dir\\dir2"))) {
                torture_comment(tctx, "mkdir2 failed : %s\n", smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
 
        fnum = smbcli_open(cli->tree, "\\chkpath.dir\\foo.txt", O_RDWR|O_CREAT|O_EXCL, DENY_NONE);
        if (fnum == -1) {
                torture_comment(tctx, "open1 failed (%s)\n", smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
        smbcli_close(cli->tree, fnum);
 
        if (NT_STATUS_IS_ERR(smbcli_chkpath(cli->tree, "\\chkpath.dir"))) {
                torture_comment(tctx, "chkpath1 failed: %s\n", smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
        }
 
        if (NT_STATUS_IS_ERR(smbcli_chkpath(cli->tree, "\\chkpath.dir\\dir2"))) {
                torture_comment(tctx, "chkpath2 failed: %s\n", smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
        }
 
        if (NT_STATUS_IS_ERR(smbcli_chkpath(cli->tree, "\\chkpath.dir\\foo.txt"))) {
@@ -1395,7 +1396,7 @@ static BOOL torture_chkpath_test(struct torture_context *tctx,
                                  NT_STATUS_NOT_A_DIRECTORY);
        } else {
                torture_comment(tctx, "* chkpath on a file should fail\n");
-               ret = False;
+               ret = false;
        }
 
        if (NT_STATUS_IS_ERR(smbcli_chkpath(cli->tree, "\\chkpath.dir\\bar.txt"))) {
@@ -1403,7 +1404,7 @@ static BOOL torture_chkpath_test(struct torture_context *tctx,
                                  NT_STATUS_OBJECT_NAME_NOT_FOUND);
        } else {
                torture_comment(tctx, "* chkpath on a non existent file should fail\n");
-               ret = False;
+               ret = false;
        }
 
        if (NT_STATUS_IS_ERR(smbcli_chkpath(cli->tree, "\\chkpath.dir\\dirxx\\bar.txt"))) {
@@ -1411,7 +1412,7 @@ static BOOL torture_chkpath_test(struct torture_context *tctx,
                                  NT_STATUS_OBJECT_PATH_NOT_FOUND);
        } else {
                torture_comment(tctx, "* chkpath on a non existent component should fail\n");
-               ret = False;
+               ret = false;
        }
 
        smbcli_rmdir(cli->tree, "\\chkpath.dir\\dir2");
@@ -1425,11 +1426,11 @@ static BOOL torture_chkpath_test(struct torture_context *tctx,
  * This is a test to excercise some weird Samba3 error paths.
  */
 
-static BOOL torture_samba3_errorpaths(struct torture_context *tctx)
+static bool torture_samba3_errorpaths(struct torture_context *tctx)
 {
-       BOOL nt_status_support;
+       bool nt_status_support;
        struct smbcli_state *cli_nt = NULL, *cli_dos = NULL;
-       BOOL result = False;
+       bool result = false;
        int fnum;
        const char *os2_fname = ".+,;=[].";
        const char *dname = "samba3_errordir";
@@ -1439,12 +1440,12 @@ static BOOL torture_samba3_errorpaths(struct torture_context *tctx)
 
        if (mem_ctx == NULL) {
                torture_comment(tctx, "talloc_init failed\n");
-               return False;
+               return false;
        }
 
-       nt_status_support = lp_nt_status_support();
+       nt_status_support = lp_nt_status_support(global_loadparm);
 
-       if (!lp_set_cmdline("nt status support", "yes")) {
+       if (!lp_set_cmdline(global_loadparm, "nt status support", "yes")) {
                torture_comment(tctx, "Could not set 'nt status support = yes'\n");
                goto fail;
        }
@@ -1453,7 +1454,7 @@ static BOOL torture_samba3_errorpaths(struct torture_context *tctx)
                goto fail;
        }
 
-       if (!lp_set_cmdline("nt status support", "no")) {
+       if (!lp_set_cmdline(global_loadparm, "nt status support", "no")) {
                torture_comment(tctx, "Could not set 'nt status support = yes'\n");
                goto fail;
        }
@@ -1462,7 +1463,7 @@ static BOOL torture_samba3_errorpaths(struct torture_context *tctx)
                goto fail;
        }
 
-       if (!lp_set_cmdline("nt status support",
+       if (!lp_set_cmdline(global_loadparm, "nt status support",
                            nt_status_support ? "yes":"no")) {
                torture_comment(tctx, "Could not reset 'nt status support = yes'");
                goto fail;
@@ -1633,7 +1634,7 @@ static BOOL torture_samba3_errorpaths(struct torture_context *tctx)
                        torture_comment(tctx, "ntcreate as dir gave %s, "
                                        "expected NT_STATUS_NOT_A_DIRECTORY\n",
                                        nt_errstr(status));
-                       result = False;
+                       result = false;
                }
 
                if (NT_STATUS_IS_OK(status)) {
@@ -1646,7 +1647,7 @@ static BOOL torture_samba3_errorpaths(struct torture_context *tctx)
                        torture_comment(tctx, "ntcreate as dir gave %s, "
                                        "expected NT_STATUS_NOT_A_DIRECTORY\n",
                                        nt_errstr(status));
-                       result = False;
+                       result = false;
                }
 
                if (NT_STATUS_IS_OK(status)) {
@@ -1657,7 +1658,7 @@ static BOOL torture_samba3_errorpaths(struct torture_context *tctx)
                smbcli_unlink(cli_nt->tree, fname);
        }
 
-       if (!torture_setting_bool(tctx, "samba3", False)) {
+       if (!torture_setting_bool(tctx, "samba3", false)) {
                goto done;
        }
 
@@ -1696,7 +1697,7 @@ static BOOL torture_samba3_errorpaths(struct torture_context *tctx)
        }
 
  done:
-       result = True;
+       result = true;
 
  fail:
        if (cli_dos != NULL) {
@@ -1712,11 +1713,10 @@ static BOOL torture_samba3_errorpaths(struct torture_context *tctx)
 
 NTSTATUS torture_base_init(void)
 {
-       struct torture_suite *suite = torture_suite_create(
-                                                                       talloc_autofree_context(), "BASE");
+       struct torture_suite *suite = torture_suite_create(talloc_autofree_context(), "BASE");
 
        torture_suite_add_2smb_test(suite, "FDPASS", run_fdpasstest);
-       torture_suite_add_suite(suite, torture_base_locktest());
+       torture_suite_add_suite(suite, torture_base_locktest(suite));
        torture_suite_add_1smb_test(suite, "UNLINK", torture_unlinktest);
        torture_suite_add_1smb_test(suite, "ATTR",   run_attrtest);
        torture_suite_add_1smb_test(suite, "TRANS2", run_trans2test);
@@ -1742,17 +1742,16 @@ NTSTATUS torture_base_init(void)
        torture_suite_add_1smb_test(suite, "PROPERTIES", torture_test_properties);
        torture_suite_add_1smb_test(suite, "MANGLE", torture_mangle);
        torture_suite_add_1smb_test(suite, "OPENATTR", torture_openattrtest);
-       torture_suite_add_1smb_test(suite, "CHARSET", torture_charset);
+       torture_suite_add_suite(suite, torture_charset(suite));
        torture_suite_add_1smb_test(suite, "CHKPATH",  torture_chkpath_test);
        torture_suite_add_1smb_test(suite, "SECLEAK",  torture_sec_leak);
        torture_suite_add_simple_test(suite, "DISCONNECT",  torture_disconnect);
        torture_suite_add_suite(suite, torture_delay_write());
-       torture_suite_add_simple_test(suite, "SAMBA3ERROR", 
-                                                                 torture_samba3_errorpaths);
+       torture_suite_add_simple_test(suite, "SAMBA3ERROR", torture_samba3_errorpaths);
        torture_suite_add_1smb_test(suite, "CASETABLE", torture_casetable);
        torture_suite_add_1smb_test(suite, "UTABLE", torture_utable);
        torture_suite_add_simple_test(suite, "SMB", torture_smb_scan);
-       torture_suite_add_suite(suite, torture_trans2_aliases());
+       torture_suite_add_suite(suite, torture_trans2_aliases(suite));
        torture_suite_add_1smb_test(suite, "TRANS2-SCAN", torture_trans2_scan);
        torture_suite_add_1smb_test(suite, "NTTRANS", torture_nttrans_scan);
 
index 3fa094e05cbe3eef79e68c9b06e5f227e963ae37..b1e3b96c2bff04bd96167dc888aa68183532bc9e 100644 (file)
@@ -33,7 +33,7 @@
    the prefix BASEDIR is added before the name
 */
 static NTSTATUS unicode_open(struct torture_context *tctx,
-                                                        struct smbcli_tree *tree,
+                            struct smbcli_tree *tree,
                             TALLOC_CTX *mem_ctx,
                             uint32_t open_disposition, 
                             const uint32_t *u_name, 
@@ -82,7 +82,7 @@ static NTSTATUS unicode_open(struct torture_context *tctx,
        io.ntcreatex.in.fname = fname2;
        io.ntcreatex.in.open_disposition = open_disposition;
 
-       status = smb_raw_open(tree, mem_ctx, &io);
+       status = smb_raw_open(tree, tctx, &io);
 
        talloc_free(ucs_name);
 
@@ -93,172 +93,118 @@ static NTSTATUS unicode_open(struct torture_context *tctx,
 /*
   see if the server recognises composed characters
 */
-static BOOL test_composed(struct torture_context *tctx, 
-                                                 struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_composed(struct torture_context *tctx, 
+                         struct smbcli_state *cli)
 {
        const uint32_t name1[] = {0x61, 0x308};
        const uint32_t name2[] = {0xe4};
        NTSTATUS status1, status2;
 
-       printf("Testing composite character (a umlaut)\n");
-       
-       status1 = unicode_open(tctx, cli->tree, mem_ctx, NTCREATEX_DISP_CREATE, name1, 2);
-       if (!NT_STATUS_IS_OK(status1)) {
-               printf("Failed to create composed name - %s\n",
-                      nt_errstr(status1));
-               return False;
-       }
+       torture_assert(tctx, torture_setup_dir(cli, BASEDIR), 
+                      "setting up basedir");
 
-       status2 = unicode_open(tctx, cli->tree, mem_ctx, NTCREATEX_DISP_CREATE, name2, 1);
+       status1 = unicode_open(tctx, cli->tree, tctx, NTCREATEX_DISP_CREATE, name1, 2);
+       torture_assert_ntstatus_ok(tctx, status1, "Failed to create composed name");
 
-       if (!NT_STATUS_IS_OK(status2)) {
-               printf("Failed to create accented character - %s\n",
-                      nt_errstr(status2));
-               return False;
-       }
+       status2 = unicode_open(tctx, cli->tree, tctx, NTCREATEX_DISP_CREATE, name2, 1);
+
+       torture_assert_ntstatus_ok(tctx, status2, "Failed to create accented character");
 
-       return True;
+       return true;
 }
 
 /*
   see if the server recognises a naked diacritical
 */
-static BOOL test_diacritical(struct torture_context *tctx, 
-                                                        struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_diacritical(struct torture_context *tctx, 
+                            struct smbcli_state *cli)
 {
        const uint32_t name1[] = {0x308};
        const uint32_t name2[] = {0x308, 0x308};
        NTSTATUS status1, status2;
 
-       printf("Testing naked diacritical (umlaut)\n");
-       
-       status1 = unicode_open(tctx, cli->tree, mem_ctx, NTCREATEX_DISP_CREATE, name1, 1);
+       torture_assert(tctx, torture_setup_dir(cli, BASEDIR), 
+                      "setting up basedir");
 
-       if (!NT_STATUS_IS_OK(status1)) {
-               printf("Failed to create naked diacritical - %s\n",
-                      nt_errstr(status1));
-               return False;
-       }
+       status1 = unicode_open(tctx, cli->tree, tctx, NTCREATEX_DISP_CREATE, name1, 1);
+
+       torture_assert_ntstatus_ok(tctx, status1, "Failed to create naked diacritical");
 
        /* try a double diacritical */
-       status2 = unicode_open(tctx, cli->tree, mem_ctx, NTCREATEX_DISP_CREATE, name2, 2);
+       status2 = unicode_open(tctx, cli->tree, tctx, NTCREATEX_DISP_CREATE, name2, 2);
 
-       if (!NT_STATUS_IS_OK(status2)) {
-               printf("Failed to create double naked diacritical - %s\n",
-                      nt_errstr(status2));
-               return False;
-       }
+       torture_assert_ntstatus_ok(tctx, status2, "Failed to create double naked diacritical");
 
-       return True;
+       return true;
 }
 
 /*
   see if the server recognises a partial surrogate pair
 */
-static BOOL test_surrogate(struct torture_context *tctx, 
-                                                  struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_surrogate(struct torture_context *tctx, 
+                          struct smbcli_state *cli)
 {
        const uint32_t name1[] = {0xd800};
        const uint32_t name2[] = {0xdc00};
        const uint32_t name3[] = {0xd800, 0xdc00};
        NTSTATUS status;
 
-       printf("Testing partial surrogate\n");
+       torture_assert(tctx, torture_setup_dir(cli, BASEDIR), 
+                      "setting up basedir");
 
-       status = unicode_open(tctx, cli->tree, mem_ctx, NTCREATEX_DISP_CREATE, name1, 1);
+       status = unicode_open(tctx, cli->tree, tctx, NTCREATEX_DISP_CREATE, name1, 1);
 
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("Failed to create partial surrogate 1 - %s\n",
-                      nt_errstr(status));
-               return False;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "Failed to create partial surrogate 1");
 
-       status = unicode_open(tctx, cli->tree, mem_ctx, NTCREATEX_DISP_CREATE, name2, 1);
+       status = unicode_open(tctx, cli->tree, tctx, NTCREATEX_DISP_CREATE, name2, 1);
 
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("Failed to create partial surrogate 2 - %s\n",
-                      nt_errstr(status));
-               return False;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "Failed to create partial surrogate 2");
 
-       status = unicode_open(tctx, cli->tree, mem_ctx, NTCREATEX_DISP_CREATE, name3, 2);
+       status = unicode_open(tctx, cli->tree, tctx, NTCREATEX_DISP_CREATE, name3, 2);
 
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("Failed to create full surrogate - %s\n",
-                      nt_errstr(status));
-               return False;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "Failed to create full surrogate");
 
-       return True;
+       return true;
 }
 
 /*
   see if the server recognises wide-a characters
 */
-static BOOL test_widea(struct torture_context *tctx, 
-                                          struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_widea(struct torture_context *tctx, 
+                      struct smbcli_state *cli)
 {
        const uint32_t name1[] = {'a'};
        const uint32_t name2[] = {0xff41};
        const uint32_t name3[] = {0xff21};
        NTSTATUS status;
 
-       printf("Testing wide-a\n");
-       
-       status = unicode_open(tctx, cli->tree, mem_ctx, NTCREATEX_DISP_CREATE, name1, 1);
+       torture_assert(tctx, torture_setup_dir(cli, BASEDIR), 
+                      "setting up basedir");
 
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("Failed to create 'a' - %s\n",
-                      nt_errstr(status));
-               return False;
-       }
+       status = unicode_open(tctx, cli->tree, tctx, NTCREATEX_DISP_CREATE, name1, 1);
 
-       status = unicode_open(tctx, cli->tree, mem_ctx, NTCREATEX_DISP_CREATE, name2, 1);
+       torture_assert_ntstatus_ok(tctx, status, "Failed to create 'a'");
 
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("Failed to create wide-a - %s\n",
-                      nt_errstr(status));
-               return False;
-       }
+       status = unicode_open(tctx, cli->tree, tctx, NTCREATEX_DISP_CREATE, name2, 1);
 
-       status = unicode_open(tctx, cli->tree, mem_ctx, NTCREATEX_DISP_CREATE, name3, 1);
+       torture_assert_ntstatus_ok(tctx, status, "Failed to create wide-a");
 
-       if (!NT_STATUS_EQUAL(status, NT_STATUS_OBJECT_NAME_COLLISION)) {
-               printf("Expected %s creating wide-A - %s\n",
-                      nt_errstr(NT_STATUS_OBJECT_NAME_COLLISION),
-                      nt_errstr(status));
-               return False;
-       }
+       status = unicode_open(tctx, cli->tree, tctx, NTCREATEX_DISP_CREATE, name3, 1);
 
-       return True;
+       torture_assert_ntstatus_equal(tctx, status, NT_STATUS_OBJECT_NAME_COLLISION, 
+               "Failed to create wide-A");
+
+       return true;
 }
 
-BOOL torture_charset(struct torture_context *tctx, struct smbcli_state *cli)
+struct torture_suite *torture_charset(TALLOC_CTX *mem_ctx)
 {
-       BOOL ret = True;
-       TALLOC_CTX *mem_ctx;
-
-       mem_ctx = talloc_init("torture_charset");
-
-       if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
-       }
-
-       if (!test_composed(tctx, cli, mem_ctx)) {
-               ret = False;
-       }
+       struct torture_suite *suite = torture_suite_create(mem_ctx, "CHARSET");
 
-       if (!test_diacritical(tctx, cli, mem_ctx)) {
-               ret = False;
-       }
-
-       if (!test_surrogate(tctx, cli, mem_ctx)) {
-               ret = False;
-       }
-
-       if (!test_widea(tctx, cli, mem_ctx)) {
-               ret = False;
-       }
+       torture_suite_add_1smb_test(suite, "Testing composite character (a umlaut)", test_composed); 
+       torture_suite_add_1smb_test(suite, "Testing naked diacritical (umlaut)", test_diacritical);
+       torture_suite_add_1smb_test(suite, "Testing partial surrogate", test_surrogate);
+       torture_suite_add_1smb_test(suite, "Testing wide-a", test_widea);
 
-       return ret;
+       return suite;
 }
index 289e08ae59b8f5ed37b150e918648f917c607449..8928754e1a224d8d0303dab17547613298838856 100644 (file)
 
 #define BASEDIR "\\delaywrite"
 
-static BOOL test_delayed_write_update(struct torture_context *tctx, struct smbcli_state *cli)
+static bool test_delayed_write_update(struct torture_context *tctx, struct smbcli_state *cli)
 {
        union smb_fileinfo finfo1, finfo2;
        const char *fname = BASEDIR "\\torture_file.txt";
        NTSTATUS status;
        int fnum1 = -1;
-       BOOL ret = True;
+       bool ret = true;
        ssize_t written;
        time_t t;
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        fnum1 = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE);
        if (fnum1 == -1) {
                torture_comment(tctx, "Failed to open %s\n", fname);
-               return False;
+               return false;
        }
 
        finfo1.basic_info.level = RAW_FILEINFO_BASIC_INFO;
@@ -59,7 +59,7 @@ static BOOL test_delayed_write_update(struct torture_context *tctx, struct smbcl
 
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0, ("fileinfo failed: %s\n", nt_errstr(status)));
-               return False;
+               return false;
        }
        
        torture_comment(tctx, "Initial write time %s\n", 
@@ -74,7 +74,7 @@ static BOOL test_delayed_write_update(struct torture_context *tctx, struct smbcl
        if (written != 1) {
                torture_comment(tctx, "write failed - wrote %d bytes (%s)\n", 
                       (int)written, __location__);
-               return False;
+               return false;
        }
 
        t = time(NULL);
@@ -84,7 +84,7 @@ static BOOL test_delayed_write_update(struct torture_context *tctx, struct smbcl
 
                if (!NT_STATUS_IS_OK(status)) {
                        DEBUG(0, ("fileinfo failed: %s\n", nt_errstr(status)));
-                       ret = False;
+                       ret = false;
                        break;
                }
                torture_comment(tctx, "write time %s\n", 
@@ -100,7 +100,7 @@ static BOOL test_delayed_write_update(struct torture_context *tctx, struct smbcl
        
        if (finfo1.basic_info.out.write_time == finfo2.basic_info.out.write_time) {
                torture_comment(tctx, "Server did not update write time?!\n");
-               ret = False;
+               ret = false;
        }
 
 
@@ -116,7 +116,7 @@ static BOOL test_delayed_write_update(struct torture_context *tctx, struct smbcl
  * Do as above, but using 2 connections.
  */
 
-static BOOL test_delayed_write_update2(struct torture_context *tctx, struct smbcli_state *cli, 
+static bool test_delayed_write_update2(struct torture_context *tctx, struct smbcli_state *cli, 
                                                                           struct smbcli_state *cli2)
 {
        union smb_fileinfo finfo1, finfo2;
@@ -124,19 +124,19 @@ static BOOL test_delayed_write_update2(struct torture_context *tctx, struct smbc
        NTSTATUS status;
        int fnum1 = -1;
        int fnum2 = -1;
-       BOOL ret = True;
+       bool ret = true;
        ssize_t written;
        time_t t;
        union smb_flush flsh;
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        fnum1 = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE);
        if (fnum1 == -1) {
                torture_comment(tctx, "Failed to open %s\n", fname);
-               return False;
+               return false;
        }
 
        finfo1.basic_info.level = RAW_FILEINFO_BASIC_INFO;
@@ -147,7 +147,7 @@ static BOOL test_delayed_write_update2(struct torture_context *tctx, struct smbc
 
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0, ("fileinfo failed: %s\n", nt_errstr(status)));
-               return False;
+               return false;
        }
        
        torture_comment(tctx, "Initial write time %s\n", 
@@ -180,7 +180,7 @@ static BOOL test_delayed_write_update2(struct torture_context *tctx, struct smbc
 
                if (!NT_STATUS_IS_OK(status)) {
                        DEBUG(0, ("sfileinfo failed: %s\n", nt_errstr(status)));
-                       return False;
+                       return false;
                }
        }
 
@@ -193,7 +193,7 @@ static BOOL test_delayed_write_update2(struct torture_context *tctx, struct smbc
 
                if (!NT_STATUS_IS_OK(status)) {
                        DEBUG(0, ("fileinfo failed: %s\n", nt_errstr(status)));
-                       ret = False;
+                       ret = false;
                        break;
                }
                torture_comment(tctx, "write time %s\n", 
@@ -209,7 +209,7 @@ static BOOL test_delayed_write_update2(struct torture_context *tctx, struct smbc
        
        if (finfo1.basic_info.out.write_time == finfo2.basic_info.out.write_time) {
                torture_comment(tctx, "Server did not update write time?!\n");
-               ret = False;
+               ret = false;
        }
 
        /* Now try a write to see if the write time gets reset. */
@@ -222,7 +222,7 @@ static BOOL test_delayed_write_update2(struct torture_context *tctx, struct smbc
 
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0, ("fileinfo failed: %s\n", nt_errstr(status)));
-               return False;
+               return false;
        }
        
        torture_comment(tctx, "Modified write time %s\n", 
@@ -236,7 +236,7 @@ static BOOL test_delayed_write_update2(struct torture_context *tctx, struct smbc
        if (written != 10) {
                torture_comment(tctx, "write failed - wrote %d bytes (%s)\n", 
                       (int)written, __location__);
-               return False;
+               return false;
        }
 
        /* Just to prove to tridge that the an smbflush has no effect on
@@ -249,7 +249,7 @@ static BOOL test_delayed_write_update2(struct torture_context *tctx, struct smbc
        status = smb_raw_flush(cli->tree, &flsh);
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0, ("smbflush failed: %s\n", nt_errstr(status)));
-               return False;
+               return false;
        }
 
        t = time(NULL);
@@ -262,7 +262,7 @@ static BOOL test_delayed_write_update2(struct torture_context *tctx, struct smbc
 
                if (!NT_STATUS_IS_OK(status)) {
                        DEBUG(0, ("fileinfo failed: %s\n", nt_errstr(status)));
-                       ret = False;
+                       ret = false;
                        break;
                }
                torture_comment(tctx, "write time %s\n", 
@@ -283,7 +283,7 @@ static BOOL test_delayed_write_update2(struct torture_context *tctx, struct smbc
        fnum2 = smbcli_open(cli->tree, fname, O_RDWR, DENY_NONE);
        if (fnum2 == -1) {
                torture_comment(tctx, "Failed to open %s\n", fname);
-               return False;
+               return false;
        }
        
        torture_comment(tctx, "Doing a 10 byte write to extend the file via second fd and see if this changes the last write time.\n");
@@ -293,14 +293,14 @@ static BOOL test_delayed_write_update2(struct torture_context *tctx, struct smbc
        if (written != 10) {
                torture_comment(tctx, "write failed - wrote %d bytes (%s)\n", 
                       (int)written, __location__);
-               return False;
+               return false;
        }
 
        status = smb_raw_fileinfo(cli->tree, tctx, &finfo2);
 
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0, ("fileinfo failed: %s\n", nt_errstr(status)));
-               return False;
+               return false;
        }
        torture_comment(tctx, "write time %s\n", 
               nt_time_string(tctx, finfo2.basic_info.out.write_time));
@@ -319,7 +319,7 @@ static BOOL test_delayed_write_update2(struct torture_context *tctx, struct smbc
        if (written != 10) {
                torture_comment(tctx, "write failed - wrote %d bytes (%s)\n", 
                       (int)written, __location__);
-               return False;
+               return false;
        }
 
        finfo1.basic_info.level = RAW_FILEINFO_BASIC_INFO;
@@ -329,7 +329,7 @@ static BOOL test_delayed_write_update2(struct torture_context *tctx, struct smbc
 
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0, ("fileinfo failed: %s\n", nt_errstr(status)));
-               return False;
+               return false;
        }
        torture_comment(tctx, "write time %s\n", 
               nt_time_string(tctx, finfo2.basic_info.out.write_time));
@@ -347,7 +347,7 @@ static BOOL test_delayed_write_update2(struct torture_context *tctx, struct smbc
 
                if (!NT_STATUS_IS_OK(status)) {
                        DEBUG(0, ("fileinfo failed: %s\n", nt_errstr(status)));
-                       ret = False;
+                       ret = false;
                        break;
                }
                torture_comment(tctx, "write time %s\n", 
@@ -373,7 +373,7 @@ static BOOL test_delayed_write_update2(struct torture_context *tctx, struct smbc
        fnum1 = smbcli_open(cli->tree, fname, O_RDWR, DENY_NONE);
        if (fnum1 == -1) {
                torture_comment(tctx, "Failed to open %s\n", fname);
-               return False;
+               return false;
        }
 
        finfo1.basic_info.level = RAW_FILEINFO_BASIC_INFO;
@@ -384,7 +384,7 @@ static BOOL test_delayed_write_update2(struct torture_context *tctx, struct smbc
 
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0, ("fileinfo failed: %s\n", nt_errstr(status)));
-               return False;
+               return false;
        }
        
        torture_comment(tctx, "Second open initial write time %s\n", 
@@ -398,7 +398,7 @@ static BOOL test_delayed_write_update2(struct torture_context *tctx, struct smbc
        if (written != 10) {
                torture_comment(tctx, "write failed - wrote %d bytes (%s)\n", 
                       (int)written, __location__);
-               return False;
+               return false;
        }
 
        finfo1.basic_info.level = RAW_FILEINFO_BASIC_INFO;
@@ -408,7 +408,7 @@ static BOOL test_delayed_write_update2(struct torture_context *tctx, struct smbc
 
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0, ("fileinfo failed: %s\n", nt_errstr(status)));
-               return False;
+               return false;
        }
        torture_comment(tctx, "write time %s\n", 
               nt_time_string(tctx, finfo2.basic_info.out.write_time));
@@ -426,7 +426,7 @@ static BOOL test_delayed_write_update2(struct torture_context *tctx, struct smbc
 
                if (!NT_STATUS_IS_OK(status)) {
                        DEBUG(0, ("fileinfo failed: %s\n", nt_errstr(status)));
-                       ret = False;
+                       ret = false;
                        break;
                }
                torture_comment(tctx, "write time %s\n", 
@@ -468,7 +468,7 @@ static BOOL test_delayed_write_update2(struct torture_context *tctx, struct smbc
  * nasty....
  */
 
-static BOOL test_finfo_after_write(struct torture_context *tctx, struct smbcli_state *cli, 
+static bool test_finfo_after_write(struct torture_context *tctx, struct smbcli_state *cli, 
                                                                   struct smbcli_state *cli2)
 {
        union smb_fileinfo finfo1, finfo2;
@@ -476,16 +476,16 @@ static BOOL test_finfo_after_write(struct torture_context *tctx, struct smbcli_s
        NTSTATUS status;
        int fnum1 = -1;
        int fnum2;
-       BOOL ret = True;
+       bool ret = true;
        ssize_t written;
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        fnum1 = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE);
        if (fnum1 == -1) {
-               ret = False;
+               ret = false;
                torture_result(tctx, TORTURE_FAIL, __location__": unable to open %s", fname);
                goto done;
        }
@@ -496,7 +496,7 @@ static BOOL test_finfo_after_write(struct torture_context *tctx, struct smbcli_s
        status = smb_raw_fileinfo(cli->tree, tctx, &finfo1);
 
        if (!NT_STATUS_IS_OK(status)) {
-               ret = False;
+               ret = false;
                torture_result(tctx, TORTURE_FAIL, __location__": fileinfo failed: %s", nt_errstr(status));
                goto done;
        }
@@ -507,7 +507,7 @@ static BOOL test_finfo_after_write(struct torture_context *tctx, struct smbcli_s
 
        if (written != 1) {
                torture_result(tctx, TORTURE_FAIL, __location__": written gave %d - should have been 1", (int)written);
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -515,7 +515,7 @@ static BOOL test_finfo_after_write(struct torture_context *tctx, struct smbcli_s
        if (fnum2 == -1) {
                torture_result(tctx, TORTURE_FAIL, __location__": failed to open 2nd time - %s", 
                       smbcli_errstr(cli2->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
        
@@ -524,7 +524,7 @@ static BOOL test_finfo_after_write(struct torture_context *tctx, struct smbcli_s
        if (written != 1) {
                torture_result(tctx, TORTURE_FAIL, __location__": written gave %d - should have been 1", 
                       (int)written);
-               ret = False;
+               ret = false;
                goto done;
        }
        
@@ -536,21 +536,21 @@ static BOOL test_finfo_after_write(struct torture_context *tctx, struct smbcli_s
        if (!NT_STATUS_IS_OK(status)) {
                torture_result(tctx, TORTURE_FAIL, __location__": fileinfo failed: %s", 
                          nt_errstr(status));
-               ret = False;
+               ret = false;
                goto done;
        }
        
        if (finfo1.basic_info.out.create_time !=
            finfo2.basic_info.out.create_time) {
                torture_result(tctx, TORTURE_FAIL, __location__": create_time changed");
-               ret = False;
+               ret = false;
                goto done;
        }
        
        if (finfo1.basic_info.out.access_time !=
            finfo2.basic_info.out.access_time) {
                torture_result(tctx, TORTURE_FAIL, __location__": access_time changed");
-               ret = False;
+               ret = false;
                goto done;
        }
        
@@ -560,14 +560,14 @@ static BOOL test_finfo_after_write(struct torture_context *tctx, struct smbcli_s
                                           "write time conn 1 = %s, conn 2 = %s", 
                       nt_time_string(tctx, finfo1.basic_info.out.write_time),
                       nt_time_string(tctx, finfo2.basic_info.out.write_time));
-               ret = False;
+               ret = false;
                goto done;
        }
        
        if (finfo1.basic_info.out.change_time !=
            finfo2.basic_info.out.change_time) {
                torture_result(tctx, TORTURE_FAIL, __location__": change_time changed");
-               ret = False;
+               ret = false;
                goto done;
        }
        
@@ -587,7 +587,7 @@ static BOOL test_finfo_after_write(struct torture_context *tctx, struct smbcli_s
 
        if (!NT_STATUS_IS_OK(status)) {
                torture_result(tctx, TORTURE_FAIL, __location__": fileinfo failed: %s", nt_errstr(status));
-               ret = False;
+               ret = false;
                goto done;
        }
 
index 93b282272fb75aa7bcf0b3cdb0a5b3390d6547ae..38528cd8456111aabd057f5c7f03a7768b6c43b3 100644 (file)
@@ -144,7 +144,7 @@ static bool deltest1(struct torture_context *tctx, struct smbcli_state *cli1, st
        torture_assert(tctx, fnum1 == -1, talloc_asprintf(tctx, "open of %s succeeded (should fail)", 
                       fname));
 
-       return True;
+       return true;
 }
 
 /* Test 2 - this should delete the file on close. */
@@ -163,7 +163,7 @@ static bool deltest2(struct torture_context *tctx, struct smbcli_state *cli1, st
                talloc_asprintf(tctx, "open of %s failed (%s)", 
                       fname, smbcli_errstr(cli1->tree)));
        
-       torture_assert_ntstatus_ok(tctx, smbcli_nt_delete_on_close(cli1->tree, fnum1, True), 
+       torture_assert_ntstatus_ok(tctx, smbcli_nt_delete_on_close(cli1->tree, fnum1, true), 
                talloc_asprintf(tctx, "setting delete_on_close failed (%s)", 
                       smbcli_errstr(cli1->tree)));
        
@@ -178,7 +178,7 @@ static bool deltest2(struct torture_context *tctx, struct smbcli_state *cli1, st
                if (NT_STATUS_IS_ERR(smbcli_close(cli1->tree, fnum1))) {
                        printf("(%s) close failed (%s)\n", 
                               __location__, smbcli_errstr(cli1->tree));
-                       return False;
+                       return false;
                }
                smbcli_unlink(cli1->tree, fname);
        }
@@ -227,7 +227,7 @@ static bool deltest3(struct torture_context *tctx, struct smbcli_state *cli1, st
                       fname, smbcli_errstr(cli1->tree)));
 
        torture_assert_ntstatus_ok(tctx, 
-                                                          smbcli_nt_delete_on_close(cli1->tree, fnum1, True),
+                                                          smbcli_nt_delete_on_close(cli1->tree, fnum1, true),
                                                           talloc_asprintf(tctx, "setting delete_on_close failed (%s)", 
                                                   smbcli_errstr(cli1->tree)));
        
@@ -250,9 +250,9 @@ static bool deltest3(struct torture_context *tctx, struct smbcli_state *cli1, st
                               __location__, smbcli_errstr(cli1->tree));
                }
                smbcli_unlink(cli1->tree, fname);
-               return False;
+               return false;
        }
-       return True;
+       return true;
 }
 
 /* Test 4 ... */
@@ -260,7 +260,7 @@ static bool deltest4(struct torture_context *tctx, struct smbcli_state *cli1, st
 {
        int fnum1 = -1;
        int fnum2 = -1;
-       bool correct = True;
+       bool correct = true;
 
        del_clean_area(cli1, cli2);
 
@@ -292,7 +292,7 @@ static bool deltest4(struct torture_context *tctx, struct smbcli_state *cli1, st
                                        smbcli_errstr(cli1->tree)));
        
        torture_assert_ntstatus_ok(tctx, 
-                               smbcli_nt_delete_on_close(cli1->tree, fnum1, True), 
+                               smbcli_nt_delete_on_close(cli1->tree, fnum1, true), 
                                talloc_asprintf(tctx, "setting delete_on_close failed (%s)", 
                        smbcli_errstr(cli1->tree)));
 
@@ -328,13 +328,13 @@ static bool deltest5(struct torture_context *tctx, struct smbcli_state *cli1, st
        
        /* This should fail - only allowed on NT opens with DELETE access. */
 
-       torture_assert(tctx, !NT_STATUS_IS_OK(smbcli_nt_delete_on_close(cli1->tree, fnum1, True)),
+       torture_assert(tctx, !NT_STATUS_IS_OK(smbcli_nt_delete_on_close(cli1->tree, fnum1, true)),
                 "setting delete_on_close on OpenX file succeeded - should fail !");
 
        torture_assert_ntstatus_ok(tctx, smbcli_close(cli1->tree, fnum1),
                talloc_asprintf(tctx, "close - 2 failed (%s)", smbcli_errstr(cli1->tree)));
 
-       return True;
+       return true;
 }
 
 /* Test 6 ... */
@@ -358,7 +358,7 @@ static bool deltest6(struct torture_context *tctx, struct smbcli_state *cli1, st
        /* This should fail - only allowed on NT opens with DELETE access. */
        
        torture_assert(tctx, 
-               !NT_STATUS_IS_OK(smbcli_nt_delete_on_close(cli1->tree, fnum1, True)),
+               !NT_STATUS_IS_OK(smbcli_nt_delete_on_close(cli1->tree, fnum1, true)),
                "setting delete_on_close on file with no delete access succeeded - should fail !");
 
        torture_assert_ntstatus_ok(tctx, 
@@ -366,14 +366,14 @@ static bool deltest6(struct torture_context *tctx, struct smbcli_state *cli1, st
                talloc_asprintf(tctx, "close - 2 failed (%s)", 
                       smbcli_errstr(cli1->tree)));
 
-       return True;
+       return true;
 }
 
 /* Test 7 ... */
 static bool deltest7(struct torture_context *tctx, struct smbcli_state *cli1, struct smbcli_state *cli2)
 {
        int fnum1 = -1;
-       bool correct = True;
+       bool correct = true;
 
        del_clean_area(cli1, cli2);
 
@@ -387,16 +387,16 @@ static bool deltest7(struct torture_context *tctx, struct smbcli_state *cli1, st
        torture_assert(tctx, fnum1 != -1, talloc_asprintf(tctx, "open of %s failed (%s)", 
                       fname, smbcli_errstr(cli1->tree)));
 
-       torture_assert_ntstatus_ok(tctx, smbcli_nt_delete_on_close(cli1->tree, fnum1, True),
+       torture_assert_ntstatus_ok(tctx, smbcli_nt_delete_on_close(cli1->tree, fnum1, true),
                        "setting delete_on_close on file failed !");
 
-       correct &= check_delete_on_close(tctx, cli1, fnum1, fname, True, __location__);
+       correct &= check_delete_on_close(tctx, cli1, fnum1, fname, true, __location__);
        
        torture_assert_ntstatus_ok(tctx, 
-                                       smbcli_nt_delete_on_close(cli1->tree, fnum1, False), 
+                                       smbcli_nt_delete_on_close(cli1->tree, fnum1, false), 
                                        "unsetting delete_on_close on file failed !");
 
-       correct &= check_delete_on_close(tctx, cli1, fnum1, fname, False, __location__);
+       correct &= check_delete_on_close(tctx, cli1, fnum1, fname, false, __location__);
        
        torture_assert_ntstatus_ok(tctx, smbcli_close(cli1->tree, fnum1), 
                talloc_asprintf(tctx, "close - 2 failed (%s)", smbcli_errstr(cli1->tree)));
@@ -419,7 +419,7 @@ static bool deltest8(struct torture_context *tctx, struct smbcli_state *cli1, st
 {
        int fnum1 = -1;
        int fnum2 = -1;
-       bool correct = True;
+       bool correct = true;
 
        del_clean_area(cli1, cli2);
 
@@ -447,18 +447,18 @@ static bool deltest8(struct torture_context *tctx, struct smbcli_state *cli1, st
                       fname, smbcli_errstr(cli1->tree)));
 
        torture_assert_ntstatus_ok(tctx, 
-                                       smbcli_nt_delete_on_close(cli1->tree, fnum1, True),
+                                       smbcli_nt_delete_on_close(cli1->tree, fnum1, true),
                "setting delete_on_close on file failed !");
 
-       correct &= check_delete_on_close(tctx, cli1, fnum1, fname, True, __location__);
-       correct &= check_delete_on_close(tctx, cli2, fnum2, fname, True, __location__);
+       correct &= check_delete_on_close(tctx, cli1, fnum1, fname, true, __location__);
+       correct &= check_delete_on_close(tctx, cli2, fnum2, fname, true, __location__);
 
        torture_assert_ntstatus_ok(tctx, smbcli_close(cli1->tree, fnum1),
                talloc_asprintf(tctx, "close - 1 failed (%s)", 
                       smbcli_errstr(cli1->tree)));
 
-       correct &= check_delete_on_close(tctx, cli1, -1, fname, True, __location__);
-       correct &= check_delete_on_close(tctx, cli2, fnum2, fname, True, __location__);
+       correct &= check_delete_on_close(tctx, cli1, -1, fname, true, __location__);
+       correct &= check_delete_on_close(tctx, cli2, fnum2, fname, true, __location__);
        
        torture_assert_ntstatus_ok(tctx, smbcli_close(cli2->tree, fnum2),
                talloc_asprintf(tctx, "close - 2 failed (%s)", smbcli_errstr(cli2->tree)));
@@ -490,7 +490,7 @@ static bool deltest9(struct torture_context *tctx, struct smbcli_state *cli1, st
                                   talloc_asprintf(tctx, "open of %s succeeded should have failed!", 
                       fname));
 
-       return True;
+       return true;
 }
 
 /* Test 10 ... */
@@ -544,7 +544,7 @@ static bool deltest11(struct torture_context *tctx, struct smbcli_state *cli1, s
        torture_assert(tctx, fnum1 != -1, talloc_asprintf(tctx, "open of %s failed (%s)", 
                       fname, smbcli_errstr(cli1->tree)));
 
-       status = smbcli_nt_delete_on_close(cli1->tree, fnum1, True);
+       status = smbcli_nt_delete_on_close(cli1->tree, fnum1, true);
 
        torture_assert_ntstatus_equal(tctx, status, NT_STATUS_CANNOT_DELETE, 
                talloc_asprintf(tctx, "setting delete_on_close should fail with NT_STATUS_CANNOT_DELETE. Got %s instead)", smbcli_errstr(cli1->tree)));
@@ -553,7 +553,7 @@ static bool deltest11(struct torture_context *tctx, struct smbcli_state *cli1, s
                talloc_asprintf(tctx, "close failed (%s)", 
                       smbcli_errstr(cli1->tree)));
 
-       return True;
+       return true;
 }
 
 /* Test 12 ... */
@@ -593,7 +593,7 @@ static bool deltest13(struct torture_context *tctx, struct smbcli_state *cli1, s
 {
        int fnum1 = -1;
        int fnum2 = -1;
-       bool correct = True;
+       bool correct = true;
 
        del_clean_area(cli1, cli2);
 
@@ -631,18 +631,18 @@ static bool deltest13(struct torture_context *tctx, struct smbcli_state *cli1, s
 
        torture_assert_ntstatus_ok(tctx, 
                                                smbcli_nt_delete_on_close(cli1->tree, fnum1,
-                                                      True), 
+                                                      true), 
                 "setting delete_on_close on file failed !");
 
-       correct &= check_delete_on_close(tctx, cli1, fnum1, fname, True, __location__);
-       correct &= check_delete_on_close(tctx, cli2, fnum2, fname, True, __location__);
+       correct &= check_delete_on_close(tctx, cli1, fnum1, fname, true, __location__);
+       correct &= check_delete_on_close(tctx, cli2, fnum2, fname, true, __location__);
 
        torture_assert_ntstatus_ok(tctx, smbcli_nt_delete_on_close(cli2->tree, fnum2,
-                                                      False), 
+                                                      false), 
                 "setting delete_on_close on file failed !");
 
-       correct &= check_delete_on_close(tctx, cli1, fnum1, fname, False, __location__);
-       correct &= check_delete_on_close(tctx, cli2, fnum2, fname, False, __location__);
+       correct &= check_delete_on_close(tctx, cli1, fnum1, fname, false, __location__);
+       correct &= check_delete_on_close(tctx, cli2, fnum2, fname, false, __location__);
        
        torture_assert_ntstatus_ok(tctx, smbcli_close(cli1->tree, fnum1), 
                talloc_asprintf(tctx, "close - 1 failed (%s)", 
@@ -684,10 +684,10 @@ static bool deltest14(struct torture_context *tctx, struct smbcli_state *cli1, s
        torture_assert(tctx, dnum1 != -1, talloc_asprintf(tctx, "open of %s failed: %s!", 
                       dname, smbcli_errstr(cli1->tree)));
 
-       correct &= check_delete_on_close(tctx, cli1, dnum1, dname, False, __location__);
-       torture_assert_ntstatus_ok(tctx, smbcli_nt_delete_on_close(cli1->tree, dnum1, True),
+       correct &= check_delete_on_close(tctx, cli1, dnum1, dname, false, __location__);
+       torture_assert_ntstatus_ok(tctx, smbcli_nt_delete_on_close(cli1->tree, dnum1, true),
                        "setting delete_on_close on file failed !");
-       correct &= check_delete_on_close(tctx, cli1, dnum1, dname, True, __location__);
+       correct &= check_delete_on_close(tctx, cli1, dnum1, dname, true, __location__);
        smbcli_close(cli1->tree, dnum1);
 
        /* Now it should be gone... */
@@ -751,7 +751,7 @@ static bool deltest15(struct torture_context *tctx, struct smbcli_state *cli1, s
                talloc_asprintf(tctx, "open - 1 of %s failed (%s)", 
                       fname_new, smbcli_errstr(cli1->tree)));
 
-       status = smbcli_nt_delete_on_close(cli2->tree, fnum2, True);
+       status = smbcli_nt_delete_on_close(cli2->tree, fnum2, true);
 
        torture_assert_ntstatus_ok(tctx, status, 
                "setting delete_on_close on file failed !");
@@ -761,7 +761,7 @@ static bool deltest15(struct torture_context *tctx, struct smbcli_state *cli1, s
        /* The file should be around under the new name, there's a second
         * handle open */
 
-       correct &= check_delete_on_close(tctx, cli1, fnum1, fname_new, True, __location__);
+       correct &= check_delete_on_close(tctx, cli1, fnum1, fname_new, true, __location__);
 
        fnum2 = smbcli_nt_create_full(cli2->tree, fname, 0, 
                                      SEC_GENERIC_ALL,
@@ -775,7 +775,7 @@ static bool deltest15(struct torture_context *tctx, struct smbcli_state *cli1, s
        torture_assert(tctx, fnum2 != -1, talloc_asprintf(tctx, "open - 1 of %s failed (%s)", 
                       fname, smbcli_errstr(cli1->tree)));
 
-       correct &= check_delete_on_close(tctx, cli2, fnum2, fname, False, __location__);
+       correct &= check_delete_on_close(tctx, cli2, fnum2, fname, false, __location__);
 
        smbcli_close(cli2->tree, fnum2);
        smbcli_close(cli1->tree, fnum1);
@@ -840,11 +840,11 @@ static bool deltest16(struct torture_context *tctx, struct smbcli_state *cli1, s
        torture_assert (tctx, fnum1 != -1, talloc_asprintf(tctx, "open - 1 of %s failed (%s)", fname, smbcli_errstr(cli1->tree)));
 
        /* The delete on close bit is *not* reported as being set. */
-       correct &= check_delete_on_close(tctx, cli1, fnum1, fname, False, __location__);
+       correct &= check_delete_on_close(tctx, cli1, fnum1, fname, false, __location__);
 
        /* The delete on close bit is *not* reported as being set. */
-       correct &= check_delete_on_close(tctx, cli1, -1, fname, False, __location__);
-       correct &= check_delete_on_close(tctx, cli2, -1, fname, False, __location__);
+       correct &= check_delete_on_close(tctx, cli1, -1, fname, false, __location__);
+       correct &= check_delete_on_close(tctx, cli2, -1, fname, false, __location__);
 
        /* Now try opening again for read-only. */
        fnum2 = smbcli_nt_create_full(cli2->tree, fname, 0, 
@@ -860,15 +860,15 @@ static bool deltest16(struct torture_context *tctx, struct smbcli_state *cli1, s
        torture_assert(tctx, fnum2 != -1, talloc_asprintf(tctx, "open - 1 of %s failed (%s)", 
                      fname, smbcli_errstr(cli1->tree)));
 
-       correct &= check_delete_on_close(tctx, cli1, fnum1, fname, False, __location__);
-       correct &= check_delete_on_close(tctx, cli1, -1, fname, False, __location__);
-       correct &= check_delete_on_close(tctx, cli2, fnum2, fname, False, __location__);
-       correct &= check_delete_on_close(tctx, cli2, -1, fname, False, __location__);
+       correct &= check_delete_on_close(tctx, cli1, fnum1, fname, false, __location__);
+       correct &= check_delete_on_close(tctx, cli1, -1, fname, false, __location__);
+       correct &= check_delete_on_close(tctx, cli2, fnum2, fname, false, __location__);
+       correct &= check_delete_on_close(tctx, cli2, -1, fname, false, __location__);
 
        smbcli_close(cli1->tree, fnum1);
 
-       correct &= check_delete_on_close(tctx, cli2, fnum2, fname, True, __location__);
-       correct &= check_delete_on_close(tctx, cli2, -1, fname, True, __location__);
+       correct &= check_delete_on_close(tctx, cli2, fnum2, fname, true, __location__);
+       correct &= check_delete_on_close(tctx, cli2, -1, fname, true, __location__);
 
        smbcli_close(cli2->tree, fnum2);
 
@@ -885,7 +885,7 @@ static bool deltest17(struct torture_context *tctx, struct smbcli_state *cli1, s
 {
        int fnum1 = -1;
        int fnum2 = -1;
-       bool correct = True;
+       bool correct = true;
 
        del_clean_area(cli1, cli2);
 
@@ -926,7 +926,7 @@ static bool deltest17(struct torture_context *tctx, struct smbcli_state *cli1, s
                       fname, smbcli_errstr(cli1->tree)));
 
        /* The delete on close bit is *not* reported as being set. */
-       correct &= check_delete_on_close(tctx, cli1, fnum1, fname, False, __location__);
+       correct &= check_delete_on_close(tctx, cli1, fnum1, fname, false, __location__);
 
        /* Now try opening again for read-only. */
        fnum2 = smbcli_nt_create_full(cli1->tree, fname, 0, 
@@ -944,12 +944,12 @@ static bool deltest17(struct torture_context *tctx, struct smbcli_state *cli1, s
                       fname, smbcli_errstr(cli1->tree)));
 
        /* still not reported as being set on either */
-       correct &= check_delete_on_close(tctx, cli1, fnum1, fname, False, __location__);
-       correct &= check_delete_on_close(tctx, cli1, fnum2, fname, False, __location__);
+       correct &= check_delete_on_close(tctx, cli1, fnum1, fname, false, __location__);
+       correct &= check_delete_on_close(tctx, cli1, fnum2, fname, false, __location__);
 
        smbcli_close(cli1->tree, fnum1);
 
-       correct &= check_delete_on_close(tctx, cli1, fnum2, fname, False, __location__);
+       correct &= check_delete_on_close(tctx, cli1, fnum2, fname, false, __location__);
 
        smbcli_close(cli1->tree, fnum2);
 
@@ -966,7 +966,7 @@ static bool deltest18(struct torture_context *tctx, struct smbcli_state *cli1, s
 {
        int fnum1 = -1;
        int fnum2 = -1;
-       bool correct = True;
+       bool correct = true;
 
        del_clean_area(cli1, cli2);
 
@@ -994,7 +994,7 @@ static bool deltest18(struct torture_context *tctx, struct smbcli_state *cli1, s
                       dname, smbcli_errstr(cli1->tree)));
 
        /* The delete on close bit is *not* reported as being set. */
-       correct &= check_delete_on_close(tctx, cli1, fnum1, dname, False, __location__);
+       correct &= check_delete_on_close(tctx, cli1, fnum1, dname, false, __location__);
 
        /* Now try opening again for read-only. */
        fnum2 = smbcli_nt_create_full(cli1->tree, dname, 0, 
@@ -1011,12 +1011,12 @@ static bool deltest18(struct torture_context *tctx, struct smbcli_state *cli1, s
        torture_assert(tctx, fnum2 != -1, talloc_asprintf(tctx, "open - 1 of %s failed (%s)", 
                       dname, smbcli_errstr(cli1->tree)));
 
-       correct &= check_delete_on_close(tctx, cli1, fnum1, dname, False, __location__);
-       correct &= check_delete_on_close(tctx, cli1, fnum2, dname, False, __location__);
+       correct &= check_delete_on_close(tctx, cli1, fnum1, dname, false, __location__);
+       correct &= check_delete_on_close(tctx, cli1, fnum2, dname, false, __location__);
 
        smbcli_close(cli1->tree, fnum1);
 
-       correct &= check_delete_on_close(tctx, cli1, fnum2, dname, True, __location__);
+       correct &= check_delete_on_close(tctx, cli1, fnum2, dname, true, __location__);
 
        smbcli_close(cli1->tree, fnum2);
 
@@ -1040,7 +1040,7 @@ static bool deltest19(struct torture_context *tctx, struct smbcli_state *cli1, s
 {
        int fnum1 = -1;
        int fnum2 = -1;
-       bool correct = True;
+       bool correct = true;
 
        del_clean_area(cli1, cli2);
 
@@ -1082,7 +1082,7 @@ static bool deltest19(struct torture_context *tctx, struct smbcli_state *cli1, s
                talloc_asprintf(tctx, "open - 1 of %s failed (%s)", fname, smbcli_errstr(cli1->tree)));
 
        /* The delete on close bit is *not* reported as being set. */
-       correct &= check_delete_on_close(tctx, cli1, fnum1, dname, False, __location__);
+       correct &= check_delete_on_close(tctx, cli1, fnum1, dname, false, __location__);
 
        /* Now try opening again for read-only. */
        fnum2 = smbcli_nt_create_full(cli1->tree, dname, 0, 
@@ -1100,7 +1100,7 @@ static bool deltest19(struct torture_context *tctx, struct smbcli_state *cli1, s
 
        smbcli_close(cli1->tree, fnum1);
 
-       correct &= check_delete_on_close(tctx, cli1, fnum2, dname, True, __location__);
+       correct &= check_delete_on_close(tctx, cli1, fnum2, dname, true, __location__);
 
        smbcli_close(cli1->tree, fnum2);
 
@@ -1127,15 +1127,15 @@ static bool deltest20(struct torture_context *tctx, struct smbcli_state *cli1, s
 {
        int fnum1 = -1;
        int dnum1 = -1;
-       bool correct = True;
+       bool correct = true;
        NTSTATUS status;
 
        del_clean_area(cli1, cli2);
 
        /* Test 20 -- non-empty directory hardest to get right... */
 
-       if (torture_setting_bool(tctx, "samba3", False)) {
-               return True;
+       if (torture_setting_bool(tctx, "samba3", false)) {
+               return true;
        }
 
        smbcli_deltree(cli1->tree, dname);
@@ -1153,8 +1153,8 @@ static bool deltest20(struct torture_context *tctx, struct smbcli_state *cli1, s
        torture_assert(tctx, dnum1 != -1, talloc_asprintf(tctx, "open of %s failed: %s!", 
                       dname, smbcli_errstr(cli1->tree)));
 
-       correct &= check_delete_on_close(tctx, cli1, dnum1, dname, False, __location__);
-       status = smbcli_nt_delete_on_close(cli1->tree, dnum1, True);
+       correct &= check_delete_on_close(tctx, cli1, dnum1, dname, false, __location__);
+       status = smbcli_nt_delete_on_close(cli1->tree, dnum1, true);
 
        {
                char *fullname;
@@ -1172,7 +1172,7 @@ static bool deltest20(struct torture_context *tctx, struct smbcli_state *cli1, s
                                        "smbcli_open failed");
        }
 
-       status = smbcli_nt_delete_on_close(cli1->tree, dnum1, False);
+       status = smbcli_nt_delete_on_close(cli1->tree, dnum1, false);
        torture_assert_ntstatus_ok(tctx, status, 
                                        "setting delete_on_close on file failed !");
                
@@ -1187,7 +1187,7 @@ static bool deltest20(struct torture_context *tctx, struct smbcli_state *cli1, s
                smbcli_close(cli1->tree, fnum1);
        }
 
-       status = smbcli_nt_delete_on_close(cli1->tree, dnum1, True);
+       status = smbcli_nt_delete_on_close(cli1->tree, dnum1, true);
 
        torture_assert_ntstatus_equal(tctx, status, NT_STATUS_DIRECTORY_NOT_EMPTY,
                 "setting delete_on_close failed");
@@ -1201,7 +1201,7 @@ static bool deltest20a(struct torture_context *tctx, struct smbcli_state *cli1,
 {
        int fnum1 = -1;
        int fnum2 = -1;
-       bool correct = True;
+       bool correct = true;
 
        del_clean_area(cli1, cli2);
 
@@ -1239,12 +1239,12 @@ static bool deltest20a(struct torture_context *tctx, struct smbcli_state *cli1,
                       fname, smbcli_errstr(cli2->tree)));
 
        /* The delete on close bit is *not* reported as being set. */
-       correct &= check_delete_on_close(tctx, cli1, fnum1, fname, False, __location__);
-       correct &= check_delete_on_close(tctx, cli2, fnum2, fname, False, __location__);
+       correct &= check_delete_on_close(tctx, cli1, fnum1, fname, false, __location__);
+       correct &= check_delete_on_close(tctx, cli2, fnum2, fname, false, __location__);
 
        smbcli_close(cli1->tree, fnum1);
 
-       correct &= check_delete_on_close(tctx, cli2, fnum2, fname, False, __location__);
+       correct &= check_delete_on_close(tctx, cli2, fnum2, fname, false, __location__);
 
        smbcli_close(cli2->tree, fnum2);
 
@@ -1267,7 +1267,7 @@ static bool deltest20b(struct torture_context *tctx, struct smbcli_state *cli1,
 {
        int fnum1 = -1;
        int fnum2 = -1;
-       bool correct = True;
+       bool correct = true;
 
        del_clean_area(cli1, cli2);
 
@@ -1322,12 +1322,12 @@ static bool deltest20b(struct torture_context *tctx, struct smbcli_state *cli1,
                       fname, smbcli_errstr(cli2->tree)));
 
        /* The delete on close bit is *not* reported as being set. */
-       correct &= check_delete_on_close(tctx, cli1, fnum1, fname, False, __location__);
-       correct &= check_delete_on_close(tctx, cli2, fnum2, fname, False, __location__);
+       correct &= check_delete_on_close(tctx, cli1, fnum1, fname, false, __location__);
+       correct &= check_delete_on_close(tctx, cli2, fnum2, fname, false, __location__);
 
        smbcli_close(cli1->tree, fnum1);
 
-       correct &= check_delete_on_close(tctx, cli2, fnum2, fname, False, __location__);
+       correct &= check_delete_on_close(tctx, cli2, fnum2, fname, false, __location__);
 
        /* Rename the file by handle. */
 
@@ -1349,7 +1349,7 @@ static bool deltest20b(struct torture_context *tctx, struct smbcli_state *cli1,
                        fname, fname_new, smbcli_errstr(cli2->tree)));
        }
 
-       correct &= check_delete_on_close(tctx, cli2, fnum2, fname_new, False, __location__);
+       correct &= check_delete_on_close(tctx, cli2, fnum2, fname_new, false, __location__);
 
        smbcli_close(cli2->tree, fnum2);
 
@@ -1371,13 +1371,13 @@ static bool deltest21(struct torture_context *tctx)
        int fnum1 = -1;
        struct smbcli_state *cli1;
        struct smbcli_state *cli2;
-       bool correct = True;
+       bool correct = true;
 
        if (!torture_open_connection(&cli1, 0))
-               return False;
+               return false;
 
        if (!torture_open_connection(&cli2, 1))
-               return False;
+               return false;
 
        del_clean_area(cli1, cli2);
 
@@ -1392,12 +1392,12 @@ static bool deltest21(struct torture_context *tctx)
                       fname, smbcli_errstr(cli1->tree)));
        
        torture_assert_ntstatus_ok(tctx, 
-                               smbcli_nt_delete_on_close(cli1->tree, fnum1, True),
+                               smbcli_nt_delete_on_close(cli1->tree, fnum1, true),
                                talloc_asprintf(tctx, "setting delete_on_close failed (%s)", 
                       smbcli_errstr(cli1->tree)));
        
        /* Ensure delete on close is set. */
-       correct &= check_delete_on_close(tctx, cli1, fnum1, fname, True, __location__);
+       correct &= check_delete_on_close(tctx, cli1, fnum1, fname, true, __location__);
 
        /* Now yank the rug from under cli1. */
        smbcli_transport_dead(cli1->transport, NT_STATUS_LOCAL_DISCONNECT);
@@ -1405,7 +1405,7 @@ static bool deltest21(struct torture_context *tctx)
        fnum1 = -1;
 
        if (!torture_open_connection(&cli1, 0)) {
-               return False;
+               return false;
        }
 
        /* On slow build farm machines it might happen that they are not fast
@@ -1438,10 +1438,10 @@ static bool deltest22(struct torture_context *tctx)
        int dnum1 = -1;
        int dnum2 = -1;
        struct smbcli_state *cli1;
-       bool correct = True;
+       bool correct = true;
 
        if (!torture_open_connection(&cli1, 0))
-               return False;
+               return false;
 
        smbcli_deltree(cli1->tree, dname);
 
@@ -1480,7 +1480,7 @@ static bool deltest22(struct torture_context *tctx)
                                       dname, smbcli_errstr(cli1->tree)));
 
        torture_assert_ntstatus_ok(
-               tctx, smbcli_nt_delete_on_close(cli1->tree, dnum1, True), 
+               tctx, smbcli_nt_delete_on_close(cli1->tree, dnum1, true), 
                talloc_asprintf(tctx, "setting delete_on_close failed (%s)", 
                                smbcli_errstr(cli1->tree)));
 
index 98f4323ce63b9f9c81802053e86470d89c271017..bc64d4b2ffce7235430866ccb3ddb635612d796b 100644 (file)
@@ -1410,12 +1410,12 @@ static void progress_bar(struct torture_context *tctx, uint_t i, uint_t total)
 /*
   this produces a matrix of deny mode behaviour for 1 connection
  */
-BOOL torture_denytest1(struct torture_context *tctx, 
-                                          struct smbcli_state *cli1)
+bool torture_denytest1(struct torture_context *tctx, 
+                      struct smbcli_state *cli1)
 {
        int fnum1, fnum2;
        int i;
-       BOOL correct = True;
+       bool correct = true;
        struct timeval tv, tv_start;
        const char *fnames[2] = {"\\denytest1.dat", "\\denytest1.exe"};
        int failures=0;
@@ -1461,7 +1461,7 @@ BOOL torture_denytest1(struct torture_context *tctx,
                        }
                }
 
-               if (torture_setting_bool(tctx, "showall", False) || 
+               if (torture_setting_bool(tctx, "showall", false) || 
                        res != denytable1[i].result) {
                        int64_t tdif;
                        GetTimeOfDay(&tv);
@@ -1479,7 +1479,7 @@ BOOL torture_denytest1(struct torture_context *tctx,
                }
 
                if (res != denytable1[i].result) {
-                       correct = False;
+                       correct = false;
                        CHECK_MAX_FAILURES(failed);
                }
 
@@ -1500,13 +1500,13 @@ failed:
 /*
   this produces a matrix of deny mode behaviour with 2 connections
  */
-BOOL torture_denytest2(struct torture_context *tctx, 
-                                          struct smbcli_state *cli1, 
-                                          struct smbcli_state *cli2)
+bool torture_denytest2(struct torture_context *tctx, 
+                      struct smbcli_state *cli1, 
+                      struct smbcli_state *cli2)
 {
        int fnum1, fnum2;
        int i;
-       BOOL correct = True;
+       bool correct = true;
        const char *fnames[2] = {"\\denytest2.dat", "\\denytest2.exe"};
        struct timeval tv, tv_start;
        int failures=0;
@@ -1548,7 +1548,7 @@ BOOL torture_denytest2(struct torture_context *tctx,
                        }
                }
 
-               if (torture_setting_bool(tctx, "showall", False) || 
+               if (torture_setting_bool(tctx, "showall", false) || 
                        res != denytable2[i].result) {
                        int64_t tdif;
                        GetTimeOfDay(&tv);
@@ -1566,7 +1566,7 @@ BOOL torture_denytest2(struct torture_context *tctx,
                }
 
                if (res != denytable2[i].result) {
-                       correct = False;
+                       correct = false;
                        CHECK_MAX_FAILURES(failed);
                }
 
@@ -1588,9 +1588,9 @@ failed:
 /*
    simple test harness for playing with deny modes
  */
-BOOL torture_denytest3(struct torture_context *tctx, 
-                                          struct smbcli_state *cli1,
-                                          struct smbcli_state *cli2)
+bool torture_denytest3(struct torture_context *tctx, 
+                      struct smbcli_state *cli1,
+                      struct smbcli_state *cli2)
 {
        int fnum1, fnum2;
        const char *fname;
@@ -1616,7 +1616,7 @@ BOOL torture_denytest3(struct torture_context *tctx,
        smbcli_unlink(cli1->tree, fname);
        torture_comment(tctx, "fnum1=%d fnum2=%d\n", fnum1, fnum2);
 
-       return True;
+       return true;
 }
 
 struct bit_value {
@@ -1645,7 +1645,7 @@ static const char *bit_string(TALLOC_CTX *mem_ctx, const struct bit_value *bv, i
                        if (ret == NULL) {
                                ret = talloc_asprintf(mem_ctx, "%s", bv[i].name);
                        } else {
-                               ret = talloc_asprintf_append(ret, " | %s", bv[i].name);
+                               ret = talloc_asprintf_append_buffer(ret, " | %s", bv[i].name);
                        }
                }
        }
@@ -1658,7 +1658,7 @@ static const char *bit_string(TALLOC_CTX *mem_ctx, const struct bit_value *bv, i
   determine if two opens conflict
 */
 static NTSTATUS predict_share_conflict(uint32_t sa1, uint32_t am1, uint32_t sa2, uint32_t am2,
-                                      BOOL read_for_execute, enum deny_result *res)
+                                      bool read_for_execute, enum deny_result *res)
 {
 #define CHECK_MASK(am, sa, right, share) do { \
        if (((am) & (right)) && !((sa) & (share))) { \
@@ -1721,7 +1721,7 @@ static NTSTATUS predict_share_conflict(uint32_t sa1, uint32_t am1, uint32_t sa2,
 /*
   a denytest for ntcreatex
  */
-static BOOL torture_ntdenytest(struct torture_context *tctx, 
+static bool torture_ntdenytest(struct torture_context *tctx, 
                                                           struct smbcli_state *cli1, struct smbcli_state *cli2, int client)
 {
        const struct bit_value share_access_bits[] = {
@@ -1741,7 +1741,7 @@ static BOOL torture_ntdenytest(struct torture_context *tctx,
        };
        int fnum1;
        int i;
-       BOOL correct = True;
+       bool correct = true;
        struct timeval tv, tv_start;
        const char *fname;
        int nbits1 = ARRAY_SIZE(share_access_bits);
@@ -1787,7 +1787,7 @@ static BOOL torture_ntdenytest(struct torture_context *tctx,
                int b_am1 = random() & ((1<<nbits2)-1);
                int b_sa2 = random() & ((1<<nbits1)-1);
                int b_am2 = random() & ((1<<nbits2)-1);
-               BOOL read_for_execute;
+               bool read_for_execute;
 
                progress_bar(tctx, i, torture_numops);
                
@@ -1801,9 +1801,9 @@ static BOOL torture_ntdenytest(struct torture_context *tctx,
                status2 = smb_raw_open(cli2->tree, mem_ctx, &io2);
 
                if (random() % 2 == 0) {
-                       read_for_execute = True;
+                       read_for_execute = true;
                } else {
-                       read_for_execute = False;
+                       read_for_execute = false;
                }
                
                if (!NT_STATUS_IS_OK(status1)) {
@@ -1853,7 +1853,7 @@ static BOOL torture_ntdenytest(struct torture_context *tctx,
                GetTimeOfDay(&tv);
                tdif = usec_time_diff(&tv, &tv_start);
                tdif /= 1000;
-               if (torture_setting_bool(tctx, "showall", False) || 
+               if (torture_setting_bool(tctx, "showall", false) || 
                    !NT_STATUS_EQUAL(status2, status2_p) ||
                    res != res2) {
                        torture_comment(tctx, "\n%-20s %-70s\n%-20s %-70s %4s %4s  %s/%s\n",
@@ -1871,7 +1871,7 @@ static BOOL torture_ntdenytest(struct torture_context *tctx,
                if (res != res2 ||
                    !NT_STATUS_EQUAL(status2, status2_p)) {
                        CHECK_MAX_FAILURES(failed);
-                       correct = False;
+                       correct = false;
                }
                
                talloc_free(mem_ctx);
@@ -1889,7 +1889,8 @@ failed:
 /*
   a denytest for ntcreatex
  */
-BOOL torture_ntdenytest1(struct torture_context *tctx, struct smbcli_state *cli, int client)
+bool torture_ntdenytest1(struct torture_context *tctx, 
+                        struct smbcli_state *cli, int client)
 {
        extern int torture_seed;
 
@@ -1903,9 +1904,9 @@ BOOL torture_ntdenytest1(struct torture_context *tctx, struct smbcli_state *cli,
 /*
   a denytest for ntcreatex
  */
-BOOL torture_ntdenytest2(struct torture_context *torture, 
-                                                struct smbcli_state *cli1,
-                                                struct smbcli_state *cli2)
+bool torture_ntdenytest2(struct torture_context *torture, 
+                        struct smbcli_state *cli1,
+                        struct smbcli_state *cli2)
 {
        return torture_ntdenytest(torture, cli1, cli2, 0);
 }
@@ -1915,7 +1916,7 @@ BOOL torture_ntdenytest2(struct torture_context *torture,
        if (!NT_STATUS_EQUAL(status, correct)) { \
                torture_comment(tctx, "(%s) Incorrect status %s - should be %s\n", \
                       __location__, nt_errstr(status), nt_errstr(correct)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
@@ -1923,21 +1924,21 @@ BOOL torture_ntdenytest2(struct torture_context *torture,
        if ((v) != (correct)) { \
                torture_comment(tctx, "(%s) wrong value for %s  0x%x - should be 0x%x\n", \
                       __location__, #v, (int)(v), (int)correct); \
-               ret = False; \
+               ret = false; \
        }} while (0)
 
 /*
   test sharing of handles with DENY_DOS on a single connection
 */
-BOOL torture_denydos_sharing(struct torture_context *tctx, 
-                                                        struct smbcli_state *cli)
+bool torture_denydos_sharing(struct torture_context *tctx, 
+                            struct smbcli_state *cli)
 {
        union smb_open io;
        union smb_fileinfo finfo;
        const char *fname = "\\torture_denydos.txt";
        NTSTATUS status;
        int fnum1 = -1, fnum2 = -1;
-       BOOL ret = True;
+       bool ret = true;
        union smb_setfileinfo sfinfo;
        TALLOC_CTX *mem_ctx;
 
index 8b371882998a3bb527fe9e2b1b22e542d6299a37..9a1ae2f744f7e8303f83456c923e60583009f43d 100644 (file)
@@ -33,12 +33,12 @@ static void list_fn(struct clilist_file_info *finfo, const char *name, void *sta
 /*
   test directory listing speed
  */
-BOOL torture_dirtest1(struct torture_context *tctx, 
-                                         struct smbcli_state *cli)
+bool torture_dirtest1(struct torture_context *tctx, 
+                     struct smbcli_state *cli)
 {
        int i;
        int fnum;
-       BOOL correct = True;
+       bool correct = true;
        extern int torture_numops;
        struct timeval tv;
 
@@ -53,7 +53,7 @@ BOOL torture_dirtest1(struct torture_context *tctx,
                if (fnum == -1) {
                        fprintf(stderr,"(%s) Failed to open %s\n", 
                                __location__, fname);
-                       return False;
+                       return false;
                }
                smbcli_close(cli->tree, fnum);
                free(fname);
@@ -76,16 +76,16 @@ BOOL torture_dirtest1(struct torture_context *tctx,
        return correct;
 }
 
-BOOL torture_dirtest2(struct torture_context *tctx, 
-                                         struct smbcli_state *cli)
+bool torture_dirtest2(struct torture_context *tctx, 
+                     struct smbcli_state *cli)
 {
        int i;
        int fnum, num_seen;
-       BOOL correct = True;
+       bool correct = true;
        extern int torture_entries;
 
        if (!torture_setup_dir(cli, "\\LISTDIR")) {
-               return False;
+               return false;
        }
 
        torture_comment(tctx, "Creating %d files\n", torture_entries);
@@ -102,7 +102,7 @@ BOOL torture_dirtest2(struct torture_context *tctx,
                if (fnum == -1) {
                        fprintf(stderr,"(%s) Failed to open %s, error=%s\n", 
                                __location__, fname, smbcli_errstr(cli->tree));
-                       return False;
+                       return false;
                }
                free(fname);
                smbcli_close(cli->tree, fnum);
@@ -113,7 +113,7 @@ BOOL torture_dirtest2(struct torture_context *tctx,
                if (NT_STATUS_IS_ERR(smbcli_mkdir(cli->tree, fname))) {
                        fprintf(stderr,"(%s) Failed to open %s, error=%s\n", 
                                __location__, fname, smbcli_errstr(cli->tree));
-                       return False;
+                       return false;
                }
                free(fname);
        }
@@ -123,7 +123,7 @@ BOOL torture_dirtest2(struct torture_context *tctx,
        torture_comment(tctx, "num_seen = %d\n", num_seen );
        /* We should see (torture_entries) each of files & directories + . and .. */
        if (num_seen != (2*torture_entries)+2) {
-               correct = False;
+               correct = false;
                fprintf(stderr,"(%s) entry count mismatch, should be %d, was %d\n",
                        __location__, (2*torture_entries)+2, num_seen);
        }
@@ -135,7 +135,7 @@ BOOL torture_dirtest2(struct torture_context *tctx,
        num_seen = smbcli_list_old(cli->tree, "\\LISTDIR\\*", (FILE_ATTRIBUTE_DIRECTORY<<8)|FILE_ATTRIBUTE_DIRECTORY, list_fn, NULL);
        torture_comment(tctx, "num_seen = %d\n", num_seen );
        if (num_seen != torture_entries+2) {
-               correct = False;
+               correct = false;
                fprintf(stderr,"(%s) entry count mismatch, should be %d, was %d\n",
                        __location__, torture_entries+2, num_seen);
        }
@@ -143,7 +143,7 @@ BOOL torture_dirtest2(struct torture_context *tctx,
        num_seen = smbcli_list_old(cli->tree, "\\LISTDIR\\*", (FILE_ATTRIBUTE_ARCHIVE<<8)|FILE_ATTRIBUTE_DIRECTORY, list_fn, NULL);
        torture_comment(tctx, "num_seen = %d\n", num_seen );
        if (num_seen != torture_entries) {
-               correct = False;
+               correct = false;
                fprintf(stderr,"(%s) entry count mismatch, should be %d, was %d\n",
                        __location__, torture_entries, num_seen);
        }
@@ -152,7 +152,7 @@ BOOL torture_dirtest2(struct torture_context *tctx,
        if (smbcli_deltree(cli->tree, "\\LISTDIR") == -1) {
                fprintf(stderr,"(%s) Failed to deltree %s, error=%s\n", "\\LISTDIR", 
                        __location__, smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
 
 #if 0
index e05e3ef0828351b2f7e401fe8b7abcb24f34c0b9..cb77bfe984d74f81e05d5951b35236774d5026d4 100644 (file)
                printf("(%s) Incorrect status %s - should be %s\n", \
                       __location__, nt_errstr(status), nt_errstr(correct)); \
                talloc_free(cli); \
-               return False; \
+               return false; \
        }} while (0)
 
 /*
   test disconnect after async open
 */
-static BOOL test_disconnect_open(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_disconnect_open(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        union smb_open io;
        NTSTATUS status;
@@ -71,14 +71,14 @@ static BOOL test_disconnect_open(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        
        talloc_free(cli);
 
-       return True;
+       return true;
 }
 
 
 /*
   test disconnect with timed lock
 */
-static BOOL test_disconnect_lock(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_disconnect_lock(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        union smb_lock io;
        NTSTATUS status;
@@ -92,7 +92,7 @@ static BOOL test_disconnect_lock(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
                           O_RDWR | O_CREAT, DENY_NONE);
        if (fnum == -1) {
                printf("open failed in mux_write - %s\n", smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
 
        io.lockx.level = RAW_LOCK_LOCKX;
@@ -118,7 +118,7 @@ static BOOL test_disconnect_lock(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 
        talloc_free(cli);
 
-       return True;
+       return true;
 }
 
 
@@ -126,9 +126,9 @@ static BOOL test_disconnect_lock(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 /* 
    basic testing of disconnects
 */
-BOOL torture_disconnect(struct torture_context *torture)
+bool torture_disconnect(struct torture_context *torture)
 {
-       BOOL ret = True;
+       bool ret = true;
        TALLOC_CTX *mem_ctx;
        int i;
        extern int torture_numops;
@@ -137,25 +137,25 @@ BOOL torture_disconnect(struct torture_context *torture)
        mem_ctx = talloc_init("torture_raw_mux");
 
        if (!torture_open_connection(&cli, 0)) {
-               return False;
+               return false;
        }
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        for (i=0;i<torture_numops;i++) {
                ret &= test_disconnect_lock(cli, mem_ctx);
                if (!torture_open_connection(&cli, 0)) {
-                       return False;
+                       return false;
                }
 
                ret &= test_disconnect_open(cli, mem_ctx);
                if (!torture_open_connection(&cli, 0)) {
-                       return False;
+                       return false;
                }
 
-               if (torture_setting_bool(torture, "samba3", False)) {
+               if (torture_setting_bool(torture, "samba3", false)) {
                        /*
                         * In Samba3 it might happen that the old smbd from
                         * test_disconnect_lock is not scheduled before the
index aa3168fb086d3ed73632b4ec992dfc79cc978b46..2e2585b9766d55533ebed7e5d20c2302fe2f468f 100644 (file)
@@ -48,7 +48,7 @@ static bool torture_locktest1(struct torture_context *tctx,
        uint_t lock_timeout;
 
        if (!torture_setup_dir(cli1, BASEDIR)) {
-               return False;
+               return false;
        }
 
        fnum1 = smbcli_open(cli1->tree, fname, O_RDWR|O_CREAT|O_EXCL, DENY_NONE);
@@ -71,14 +71,14 @@ static bool torture_locktest1(struct torture_context *tctx,
                "lock2 succeeded! This is a locking bug\n");
 
        if (!check_error(__location__, cli2, ERRDOS, ERRlock, 
-                        NT_STATUS_LOCK_NOT_GRANTED)) return False;
+                        NT_STATUS_LOCK_NOT_GRANTED)) return false;
 
        torture_assert(tctx,
                !NT_STATUS_IS_OK(smbcli_lock(cli2->tree, fnum3, 0, 4, 0, WRITE_LOCK)),
                "lock2 succeeded! This is a locking bug\n");
 
        if (!check_error(__location__, cli2, ERRDOS, ERRlock, 
-                                NT_STATUS_FILE_LOCK_CONFLICT)) return False;
+                                NT_STATUS_FILE_LOCK_CONFLICT)) return false;
 
        torture_assert_ntstatus_ok(tctx, 
                smbcli_lock(cli1->tree, fnum1, 5, 9, 0, WRITE_LOCK),
@@ -90,21 +90,21 @@ static bool torture_locktest1(struct torture_context *tctx,
                "lock2 succeeded! This is a locking bug");
        
        if (!check_error(__location__, cli2, ERRDOS, ERRlock, 
-                                NT_STATUS_LOCK_NOT_GRANTED)) return False;
+                                NT_STATUS_LOCK_NOT_GRANTED)) return false;
 
        torture_assert(tctx, 
                !NT_STATUS_IS_OK(smbcli_lock(cli2->tree, fnum3, 0, 4, 0, WRITE_LOCK)),
                "lock2 succeeded! This is a locking bug");
        
        if (!check_error(__location__, cli2, ERRDOS, ERRlock, 
-                                NT_STATUS_LOCK_NOT_GRANTED)) return False;
+                                NT_STATUS_LOCK_NOT_GRANTED)) return false;
 
        torture_assert(tctx, 
                !NT_STATUS_IS_OK(smbcli_lock(cli2->tree, fnum3, 0, 4, 0, WRITE_LOCK)),
                "lock2 succeeded! This is a locking bug");
 
        if (!check_error(__location__, cli2, ERRDOS, ERRlock, 
-                        NT_STATUS_FILE_LOCK_CONFLICT)) return False;
+                        NT_STATUS_FILE_LOCK_CONFLICT)) return false;
 
        lock_timeout = (6 + (random() % 20));
        torture_comment(tctx, "Testing lock timeout with timeout=%u\n", 
@@ -115,7 +115,7 @@ static bool torture_locktest1(struct torture_context *tctx,
                "lock3 succeeded! This is a locking bug\n");
 
        if (!check_error(__location__, cli2, ERRDOS, ERRlock, 
-                                NT_STATUS_FILE_LOCK_CONFLICT)) return False;
+                                NT_STATUS_FILE_LOCK_CONFLICT)) return false;
        t2 = time(NULL);
 
        if (t2 - t1 < 5) {
@@ -133,7 +133,7 @@ static bool torture_locktest1(struct torture_context *tctx,
                "lock4 succeeded! This is a locking bug");
                
        if (!check_error(__location__, cli2, ERRDOS, ERRlock, 
-                        NT_STATUS_FILE_LOCK_CONFLICT)) return False;
+                        NT_STATUS_FILE_LOCK_CONFLICT)) return false;
 
        torture_assert_ntstatus_ok(tctx, smbcli_close(cli1->tree, fnum1),
                talloc_asprintf(tctx, "close2 failed (%s)", smbcli_errstr(cli1->tree)));
@@ -166,7 +166,7 @@ static bool torture_locktest2(struct torture_context *tctx,
        int fnum1, fnum2, fnum3;
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        torture_comment(tctx, "Testing pid context\n");
@@ -202,21 +202,21 @@ static bool torture_locktest2(struct torture_context *tctx,
                "WRITE lock1 succeeded! This is a locking bug");
                
        if (!check_error(__location__, cli, ERRDOS, ERRlock, 
-                        NT_STATUS_LOCK_NOT_GRANTED)) return False;
+                        NT_STATUS_LOCK_NOT_GRANTED)) return false;
 
        torture_assert(tctx, 
                !NT_STATUS_IS_OK(smbcli_lock(cli->tree, fnum2, 0, 4, 0, WRITE_LOCK)),
                "WRITE lock2 succeeded! This is a locking bug");
 
        if (!check_error(__location__, cli, ERRDOS, ERRlock, 
-                        NT_STATUS_LOCK_NOT_GRANTED)) return False;
+                        NT_STATUS_LOCK_NOT_GRANTED)) return false;
 
        torture_assert(tctx, 
                !NT_STATUS_IS_OK(smbcli_lock(cli->tree, fnum2, 0, 4, 0, READ_LOCK)),
                "READ lock2 succeeded! This is a locking bug");
 
        if (!check_error(__location__, cli, ERRDOS, ERRlock, 
-                        NT_STATUS_FILE_LOCK_CONFLICT)) return False;
+                        NT_STATUS_FILE_LOCK_CONFLICT)) return false;
 
        torture_assert_ntstatus_ok(tctx, 
                smbcli_lock(cli->tree, fnum1, 100, 4, 0, WRITE_LOCK),
@@ -235,7 +235,7 @@ static bool torture_locktest2(struct torture_context *tctx,
 
        if (!check_error(__location__, cli, 
                                 ERRDOS, ERRnotlocked, 
-                                NT_STATUS_RANGE_NOT_LOCKED)) return False;
+                                NT_STATUS_RANGE_NOT_LOCKED)) return false;
 
        torture_assert(tctx, 
                !NT_STATUS_IS_OK(smbcli_unlock(cli->tree, fnum1, 0, 8)),
@@ -243,13 +243,13 @@ static bool torture_locktest2(struct torture_context *tctx,
 
        if (!check_error(__location__, cli, 
                         ERRDOS, ERRnotlocked, 
-                        NT_STATUS_RANGE_NOT_LOCKED)) return False;
+                        NT_STATUS_RANGE_NOT_LOCKED)) return false;
 
        torture_assert(tctx, 
                !NT_STATUS_IS_OK(smbcli_lock(cli->tree, fnum3, 0, 4, 0, WRITE_LOCK)),
                "lock3 succeeded! This is a locking bug");
 
-       if (!check_error(__location__, cli, ERRDOS, ERRlock, NT_STATUS_LOCK_NOT_GRANTED)) return False;
+       if (!check_error(__location__, cli, ERRDOS, ERRlock, NT_STATUS_LOCK_NOT_GRANTED)) return false;
 
        cli->session->pid = 1;
 
@@ -285,7 +285,7 @@ static bool torture_locktest3(struct torture_context *tctx,
        torture_comment(tctx, "Testing 32 bit offset ranges");
 
        if (!torture_setup_dir(cli1, BASEDIR)) {
-               return False;
+               return false;
        }
 
        fnum1 = smbcli_open(cli1->tree, fname, O_RDWR|O_CREAT|O_EXCL, DENY_NONE);
@@ -362,7 +362,7 @@ static bool torture_locktest3(struct torture_context *tctx,
 }
 
 #define EXPECTED(ret, v) if ((ret) != (v)) { \
-        torture_comment(tctx, "** "); correct = False; \
+        torture_comment(tctx, "** "); correct = false; \
         }
 
 /*
@@ -374,12 +374,12 @@ static bool torture_locktest4(struct torture_context *tctx,
 {
        const char *fname = BASEDIR "\\lockt4.lck";
        int fnum1, fnum2, f;
-       BOOL ret;
+       bool ret;
        uint8_t buf[1000];
-       BOOL correct = True;
+       bool correct = true;
 
        if (!torture_setup_dir(cli1, BASEDIR)) {
-               return False;
+               return false;
        }
 
        fnum1 = smbcli_open(cli1->tree, fname, O_RDWR|O_CREAT|O_EXCL, DENY_NONE);
@@ -389,80 +389,80 @@ static bool torture_locktest4(struct torture_context *tctx,
 
        if (smbcli_write(cli1->tree, fnum1, 0, buf, 0, sizeof(buf)) != sizeof(buf)) {
                torture_comment(tctx, "Failed to create file\n");
-               correct = False;
+               correct = false;
                goto fail;
        }
 
        ret = NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 0, 4, 0, WRITE_LOCK)) &&
              NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 2, 4, 0, WRITE_LOCK));
-       EXPECTED(ret, False);
+       EXPECTED(ret, false);
        torture_comment(tctx, "the same process %s set overlapping write locks\n", ret?"can":"cannot");
            
        ret = NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 10, 4, 0, READ_LOCK)) &&
              NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 12, 4, 0, READ_LOCK));
-       EXPECTED(ret, True);
+       EXPECTED(ret, true);
        torture_comment(tctx, "the same process %s set overlapping read locks\n", ret?"can":"cannot");
 
        ret = NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 20, 4, 0, WRITE_LOCK)) &&
              NT_STATUS_IS_OK(smbcli_lock(cli2->tree, fnum2, 22, 4, 0, WRITE_LOCK));
-       EXPECTED(ret, False);
+       EXPECTED(ret, false);
        torture_comment(tctx, "a different connection %s set overlapping write locks\n", ret?"can":"cannot");
            
        ret = NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 30, 4, 0, READ_LOCK)) &&
                NT_STATUS_IS_OK(smbcli_lock(cli2->tree, fnum2, 32, 4, 0, READ_LOCK));
-       EXPECTED(ret, True);
+       EXPECTED(ret, true);
        torture_comment(tctx, "a different connection %s set overlapping read locks\n", ret?"can":"cannot");
        
        ret = NT_STATUS_IS_OK((cli1->session->pid = 1, smbcli_lock(cli1->tree, fnum1, 40, 4, 0, WRITE_LOCK))) &&
              NT_STATUS_IS_OK((cli1->session->pid = 2, smbcli_lock(cli1->tree, fnum1, 42, 4, 0, WRITE_LOCK)));
-       EXPECTED(ret, False);
+       EXPECTED(ret, false);
        torture_comment(tctx, "a different pid %s set overlapping write locks\n", ret?"can":"cannot");
            
        ret = NT_STATUS_IS_OK((cli1->session->pid = 1, smbcli_lock(cli1->tree, fnum1, 50, 4, 0, READ_LOCK))) &&
              NT_STATUS_IS_OK((cli1->session->pid = 2, smbcli_lock(cli1->tree, fnum1, 52, 4, 0, READ_LOCK)));
-       EXPECTED(ret, True);
+       EXPECTED(ret, true);
        torture_comment(tctx, "a different pid %s set overlapping read locks\n", ret?"can":"cannot");
 
        ret = NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 60, 4, 0, READ_LOCK)) &&
              NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 60, 4, 0, READ_LOCK));
-       EXPECTED(ret, True);
+       EXPECTED(ret, true);
        torture_comment(tctx, "the same process %s set the same read lock twice\n", ret?"can":"cannot");
 
        ret = NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 70, 4, 0, WRITE_LOCK)) &&
              NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 70, 4, 0, WRITE_LOCK));
-       EXPECTED(ret, False);
+       EXPECTED(ret, false);
        torture_comment(tctx, "the same process %s set the same write lock twice\n", ret?"can":"cannot");
 
        ret = NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 80, 4, 0, READ_LOCK)) &&
              NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 80, 4, 0, WRITE_LOCK));
-       EXPECTED(ret, False);
+       EXPECTED(ret, false);
        torture_comment(tctx, "the same process %s overlay a read lock with a write lock\n", ret?"can":"cannot");
 
        ret = NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 90, 4, 0, WRITE_LOCK)) &&
              NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 90, 4, 0, READ_LOCK));
-       EXPECTED(ret, True);
+       EXPECTED(ret, true);
        torture_comment(tctx, "the same process %s overlay a write lock with a read lock\n", ret?"can":"cannot");
 
        ret = NT_STATUS_IS_OK((cli1->session->pid = 1, smbcli_lock(cli1->tree, fnum1, 100, 4, 0, WRITE_LOCK))) &&
              NT_STATUS_IS_OK((cli1->session->pid = 2, smbcli_lock(cli1->tree, fnum1, 100, 4, 0, READ_LOCK)));
-       EXPECTED(ret, False);
+       EXPECTED(ret, false);
        torture_comment(tctx, "a different pid %s overlay a write lock with a read lock\n", ret?"can":"cannot");
 
        ret = NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 110, 4, 0, READ_LOCK)) &&
              NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 112, 4, 0, READ_LOCK)) &&
              NT_STATUS_IS_OK(smbcli_unlock(cli1->tree, fnum1, 110, 6));
-       EXPECTED(ret, False);
+       EXPECTED(ret, false);
        torture_comment(tctx, "the same process %s coalesce read locks\n", ret?"can":"cannot");
 
 
        ret = NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 120, 4, 0, WRITE_LOCK)) &&
              (smbcli_read(cli2->tree, fnum2, buf, 120, 4) == 4);
-       EXPECTED(ret, False);
+       EXPECTED(ret, false);
        torture_comment(tctx, "this server %s strict write locking\n", ret?"doesn't do":"does");
 
        ret = NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 130, 4, 0, READ_LOCK)) &&
              (smbcli_write(cli2->tree, fnum2, 0, buf, 130, 4) == 4);
-       EXPECTED(ret, False);
+       EXPECTED(ret, false);
        torture_comment(tctx, "this server %s strict read locking\n", ret?"doesn't do":"does");
 
 
@@ -470,7 +470,7 @@ static bool torture_locktest4(struct torture_context *tctx,
              NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 140, 4, 0, READ_LOCK)) &&
              NT_STATUS_IS_OK(smbcli_unlock(cli1->tree, fnum1, 140, 4)) &&
              NT_STATUS_IS_OK(smbcli_unlock(cli1->tree, fnum1, 140, 4));
-       EXPECTED(ret, True);
+       EXPECTED(ret, true);
        torture_comment(tctx, "this server %s do recursive read locking\n", ret?"does":"doesn't");
 
 
@@ -480,21 +480,21 @@ static bool torture_locktest4(struct torture_context *tctx,
              (smbcli_read(cli2->tree, fnum2, buf, 150, 4) == 4) &&
              !(smbcli_write(cli2->tree, fnum2, 0, buf, 150, 4) == 4) &&
              NT_STATUS_IS_OK(smbcli_unlock(cli1->tree, fnum1, 150, 4));
-       EXPECTED(ret, True);
+       EXPECTED(ret, true);
        torture_comment(tctx, "this server %s do recursive lock overlays\n", ret?"does":"doesn't");
 
        ret = NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 160, 4, 0, READ_LOCK)) &&
              NT_STATUS_IS_OK(smbcli_unlock(cli1->tree, fnum1, 160, 4)) &&
              (smbcli_write(cli2->tree, fnum2, 0, buf, 160, 4) == 4) &&         
              (smbcli_read(cli2->tree, fnum2, buf, 160, 4) == 4);               
-       EXPECTED(ret, True);
+       EXPECTED(ret, true);
        torture_comment(tctx, "the same process %s remove a read lock using write locking\n", ret?"can":"cannot");
 
        ret = NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 170, 4, 0, WRITE_LOCK)) &&
              NT_STATUS_IS_OK(smbcli_unlock(cli1->tree, fnum1, 170, 4)) &&
              (smbcli_write(cli2->tree, fnum2, 0, buf, 170, 4) == 4) &&         
              (smbcli_read(cli2->tree, fnum2, buf, 170, 4) == 4);               
-       EXPECTED(ret, True);
+       EXPECTED(ret, true);
        torture_comment(tctx, "the same process %s remove a write lock using read locking\n", ret?"can":"cannot");
 
        ret = NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 190, 4, 0, WRITE_LOCK)) &&
@@ -502,7 +502,7 @@ static bool torture_locktest4(struct torture_context *tctx,
              NT_STATUS_IS_OK(smbcli_unlock(cli1->tree, fnum1, 190, 4)) &&
              !(smbcli_write(cli2->tree, fnum2, 0, buf, 190, 4) == 4) &&                
              (smbcli_read(cli2->tree, fnum2, buf, 190, 4) == 4);               
-       EXPECTED(ret, True);
+       EXPECTED(ret, true);
        torture_comment(tctx, "the same process %s remove the first lock first\n", ret?"does":"doesn't");
 
        smbcli_close(cli1->tree, fnum1);
@@ -516,7 +516,7 @@ static bool torture_locktest4(struct torture_context *tctx,
              NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 7, 1, 0, WRITE_LOCK));
         smbcli_close(cli1->tree, f);
        smbcli_close(cli1->tree, fnum1);
-       EXPECTED(ret, True);
+       EXPECTED(ret, true);
        torture_comment(tctx, "the server %s have the NT byte range lock bug\n", !ret?"does":"doesn't");
 
  fail:
@@ -535,12 +535,12 @@ static bool torture_locktest5(struct torture_context *tctx, struct smbcli_state
 {
        const char *fname = BASEDIR "\\lockt5.lck";
        int fnum1, fnum2, fnum3;
-       BOOL ret;
+       bool ret;
        uint8_t buf[1000];
-       BOOL correct = True;
+       bool correct = true;
 
        if (!torture_setup_dir(cli1, BASEDIR)) {
-               return False;
+               return false;
        }
 
        fnum1 = smbcli_open(cli1->tree, fname, O_RDWR|O_CREAT|O_EXCL, DENY_NONE);
@@ -558,7 +558,7 @@ static bool torture_locktest5(struct torture_context *tctx, struct smbcli_state
        smbcli_close(cli1->tree, fnum1);
        fnum1 = smbcli_open(cli1->tree, fname, O_RDWR, DENY_NONE);
        ret = NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 7, 1, 0, WRITE_LOCK));
-       EXPECTED(ret, True);
+       EXPECTED(ret, true);
        torture_comment(tctx, "this server %s the NT locking bug\n", ret ? "doesn't have" : "has");
        smbcli_close(cli1->tree, fnum1);
        fnum1 = smbcli_open(cli1->tree, fname, O_RDWR, DENY_NONE);
@@ -566,11 +566,11 @@ static bool torture_locktest5(struct torture_context *tctx, struct smbcli_state
 
        ret = NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 0, 4, 0, WRITE_LOCK)) &&
              NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 1, 1, 0, READ_LOCK));
-       EXPECTED(ret, True);
+       EXPECTED(ret, true);
        torture_comment(tctx, "the same process %s overlay a write with a read lock\n", ret?"can":"cannot");
 
        ret = NT_STATUS_IS_OK(smbcli_lock(cli2->tree, fnum2, 0, 4, 0, READ_LOCK));
-       EXPECTED(ret, False);
+       EXPECTED(ret, false);
 
        torture_comment(tctx, "a different processs %s get a read lock on the first process lock stack\n", ret?"can":"cannot");
 
@@ -578,7 +578,7 @@ static bool torture_locktest5(struct torture_context *tctx, struct smbcli_state
        smbcli_unlock(cli2->tree, fnum2, 0, 4);
 
        ret = NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum3, 0, 4, 0, READ_LOCK));
-       EXPECTED(ret, False);
+       EXPECTED(ret, false);
 
        torture_comment(tctx, "the same processs on a different fnum %s get a read lock\n", ret?"can":"cannot");
 
@@ -589,7 +589,7 @@ static bool torture_locktest5(struct torture_context *tctx, struct smbcli_state
        ret = NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 0, 4, 0, READ_LOCK)) &&
                  NT_STATUS_IS_OK(smbcli_lock(cli1->tree, fnum1, 0, 4, 0, READ_LOCK));
 
-       EXPECTED(ret, True);
+       EXPECTED(ret, true);
        torture_comment(tctx, "the same process %s stack read locks\n", ret?"can":"cannot");
 
        /* Unlock the first process lock, then check this was the WRITE lock that was
@@ -598,7 +598,7 @@ static bool torture_locktest5(struct torture_context *tctx, struct smbcli_state
 ret = NT_STATUS_IS_OK(smbcli_unlock(cli1->tree, fnum1, 0, 4)) &&
        NT_STATUS_IS_OK(smbcli_lock(cli2->tree, fnum2, 0, 4, 0, READ_LOCK));
 
-       EXPECTED(ret, True);
+       EXPECTED(ret, true);
        torture_comment(tctx, "the first unlock removes the %s lock\n", ret?"WRITE":"READ");
 
        /* Unlock the process 2 lock. */
@@ -610,17 +610,17 @@ ret = NT_STATUS_IS_OK(smbcli_unlock(cli1->tree, fnum1, 0, 4)) &&
                  NT_STATUS_IS_OK(smbcli_unlock(cli1->tree, fnum1, 0, 4)) &&
                  NT_STATUS_IS_OK(smbcli_unlock(cli1->tree, fnum1, 0, 4));
 
-       EXPECTED(ret, True);
+       EXPECTED(ret, true);
        torture_comment(tctx, "the same process %s unlock the stack of 4 locks\n", ret?"can":"cannot"); 
 
        /* Ensure the next unlock fails. */
        ret = NT_STATUS_IS_OK(smbcli_unlock(cli1->tree, fnum1, 0, 4));
-       EXPECTED(ret, False);
+       EXPECTED(ret, false);
        torture_comment(tctx, "the same process %s count the lock stack\n", !ret?"can":"cannot"); 
 
        /* Ensure connection 2 can get a write lock. */
        ret = NT_STATUS_IS_OK(smbcli_lock(cli2->tree, fnum2, 0, 4, 0, WRITE_LOCK));
-       EXPECTED(ret, True);
+       EXPECTED(ret, true);
 
        torture_comment(tctx, "a different processs %s get a write lock on the unlocked stack\n", ret?"can":"cannot");
 
@@ -644,7 +644,7 @@ static bool torture_locktest6(struct torture_context *tctx,
        NTSTATUS status;
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        for (i=0;i<1;i++) {
@@ -665,7 +665,7 @@ static bool torture_locktest6(struct torture_context *tctx,
                smbcli_unlink(cli->tree, fname[i]);
        }
 
-       return True;
+       return true;
 }
 
 static bool torture_locktest7(struct torture_context *tctx, 
@@ -676,7 +676,7 @@ static bool torture_locktest7(struct torture_context *tctx,
        int fnum2 = -1;
        size_t size;
        uint8_t buf[200];
-       BOOL correct = False;
+       bool correct = false;
 
        torture_assert(tctx, torture_setup_dir(cli1, BASEDIR),
                                   talloc_asprintf(tctx, "Unable to set up %s", BASEDIR));
@@ -785,7 +785,7 @@ static bool torture_locktest7(struct torture_context *tctx,
        cli1->session->pid = 1;
 
        smbcli_unlock(cli1->tree, fnum1, 130, 4);
-       correct = True;
+       correct = true;
 
 fail:
        smbcli_close(cli1->tree, fnum1);
@@ -795,10 +795,9 @@ fail:
        return correct;
 }
 
-struct torture_suite *torture_base_locktest(void)
+struct torture_suite *torture_base_locktest(TALLOC_CTX *mem_ctx)
 {
-       struct torture_suite *suite = torture_suite_create(talloc_autofree_context(), 
-                                                                                                          "LOCK");
+       struct torture_suite *suite = torture_suite_create(mem_ctx, "LOCK");
        torture_suite_add_2smb_test(suite, "LOCK1", torture_locktest1);
        torture_suite_add_1smb_test(suite, "LOCK2", torture_locktest2);
        torture_suite_add_2smb_test(suite, "LOCK3", torture_locktest3);
index 665360fc64344cfc2e3101540095907e5393b048..58d7098972de4be08b1618cfcc521a2f6ce2691e 100644 (file)
@@ -25,7 +25,6 @@
 #include "lib/util/util_tdb.h"
 #include "libcli/libcli.h"
 #include "torture/util.h"
-#include "pstring.h"
 
 static TDB_CONTEXT *tdb;
 
@@ -33,11 +32,12 @@ static TDB_CONTEXT *tdb;
 
 static uint_t total, collisions, failures;
 
-static BOOL test_one(struct smbcli_state *cli, const char *name)
+static bool test_one(struct torture_context *tctx ,struct smbcli_state *cli, 
+                    const char *name)
 {
        int fnum;
        const char *shortname;
-       fstring name2;
+       const char *name2;
        NTSTATUS status;
        TDB_DATA data;
 
@@ -46,37 +46,37 @@ static BOOL test_one(struct smbcli_state *cli, const char *name)
        fnum = smbcli_open(cli->tree, name, O_RDWR|O_CREAT|O_EXCL, DENY_NONE);
        if (fnum == -1) {
                printf("open of %s failed (%s)\n", name, smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
 
        if (NT_STATUS_IS_ERR(smbcli_close(cli->tree, fnum))) {
                printf("close of %s failed (%s)\n", name, smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
 
        /* get the short name */
        status = smbcli_qpathinfo_alt_name(cli->tree, name, &shortname);
        if (!NT_STATUS_IS_OK(status)) {
                printf("query altname of %s failed (%s)\n", name, smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
 
-       snprintf(name2, sizeof(name2), "\\mangle_test\\%s", shortname);
+       name2 = talloc_asprintf(tctx, "\\mangle_test\\%s", shortname);
        if (NT_STATUS_IS_ERR(smbcli_unlink(cli->tree, name2))) {
                printf("unlink of %s  (%s) failed (%s)\n", 
                       name2, name, smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
 
        /* recreate by short name */
        fnum = smbcli_open(cli->tree, name2, O_RDWR|O_CREAT|O_EXCL, DENY_NONE);
        if (fnum == -1) {
                printf("open2 of %s failed (%s)\n", name2, smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
        if (NT_STATUS_IS_ERR(smbcli_close(cli->tree, fnum))) {
                printf("close of %s failed (%s)\n", name, smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
 
        /* and unlink by long name */
@@ -85,7 +85,7 @@ static BOOL test_one(struct smbcli_state *cli, const char *name)
                       name, name2, smbcli_errstr(cli->tree));
                failures++;
                smbcli_unlink(cli->tree, name2);
-               return True;
+               return true;
        }
 
        /* see if the short name is already in the tdb */
@@ -108,22 +108,25 @@ static BOOL test_one(struct smbcli_state *cli, const char *name)
                tdb_store_bystring(tdb, shortname, namedata, TDB_REPLACE);
        }
 
-       return True;
+       return true;
 }
 
 
-static void gen_name(char *name)
+static char *gen_name(TALLOC_CTX *mem_ctx)
 {
        const char *chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz._-$~...";
        uint_t max_idx = strlen(chars);
        uint_t len;
        int i;
        char *p;
+       char *name;
 
-       fstrcpy(name, "\\mangle_test\\");
-       p = name + strlen(name);
+       name = talloc_strdup(mem_ctx, "\\mangle_test\\");
 
        len = 1 + random() % NAME_LENGTH;
+
+       name = talloc_realloc(mem_ctx, name, char, strlen(name) + len + 6);
+       p = name + strlen(name);
        
        for (i=0;i<len;i++) {
                p[i] = chars[random() % max_idx];
@@ -141,7 +144,7 @@ static void gen_name(char *name)
        }
 
        /* and a medium probability of a common lead string */
-       if (random() % 10 == 0) {
+       if ((len > 5) && (random() % 10 == 0)) {
                strncpy(p, "ABCDE", 5);
        }
 
@@ -152,11 +155,13 @@ static void gen_name(char *name)
                        s[4] = 0;
                }
        }
+
+       return name;
 }
 
 
-BOOL torture_mangle(struct torture_context *torture, 
-                                       struct smbcli_state *cli)
+bool torture_mangle(struct torture_context *torture, 
+                   struct smbcli_state *cli)
 {
        extern int torture_numops;
        int i;
@@ -165,21 +170,19 @@ BOOL torture_mangle(struct torture_context *torture,
        tdb = tdb_open(NULL, 100000, TDB_INTERNAL, 0, 0);
        if (!tdb) {
                printf("ERROR: Failed to open tdb\n");
-               return False;
+               return false;
        }
 
        if (!torture_setup_dir(cli, "\\mangle_test")) {
-               return False;
+               return false;
        }
 
        for (i=0;i<torture_numops;i++) {
-               fstring name;
-
-               ZERO_STRUCT(name);
+               char *name;
 
-               gen_name(name);
+               name = gen_name(torture);
 
-               if (!test_one(cli, name)) {
+               if (!test_one(torture, cli, name)) {
                        break;
                }
                if (total && total % 100 == 0) {
@@ -193,7 +196,7 @@ BOOL torture_mangle(struct torture_context *torture,
        smbcli_unlink(cli->tree, "\\mangle_test\\*");
        if (NT_STATUS_IS_ERR(smbcli_rmdir(cli->tree, "\\mangle_test"))) {
                printf("ERROR: Failed to remove directory\n");
-               return False;
+               return false;
        }
 
        printf("\nTotal collisions %u/%u  - %.2f%%   (%u failures)\n",
index d72e3ca1cd7329886709abfc4662fed57f202cff..f0d5ef553689e15d0fc0ad20a1cdfc8403874ee8 100644 (file)
 #include "torture/util.h"
 #include "libcli/smb_composite/smb_composite.h"
 #include "libcli/composite/composite.h"
+#include "param/param.h"
 
 extern struct cli_credentials *cmdline_credentials;
        
-static BOOL wait_lock(struct smbcli_state *c, int fnum, uint32_t offset, uint32_t len)
+static bool wait_lock(struct smbcli_state *c, int fnum, uint32_t offset, uint32_t len)
 {
        while (NT_STATUS_IS_ERR(smbcli_lock(c->tree, fnum, offset, len, -1, WRITE_LOCK))) {
-               if (!check_error(__location__, c, ERRDOS, ERRlock, NT_STATUS_LOCK_NOT_GRANTED)) return False;
+               if (!check_error(__location__, c, ERRDOS, ERRlock, NT_STATUS_LOCK_NOT_GRANTED)) return false;
        }
-       return True;
+       return true;
 }
 
 
-static BOOL rw_torture(struct torture_context *tctx, struct smbcli_state *c)
+static bool rw_torture(struct torture_context *tctx, struct smbcli_state *c)
 {
        const char *lockfname = "\\torture.lck";
        char *fname;
@@ -54,7 +55,7 @@ static BOOL rw_torture(struct torture_context *tctx, struct smbcli_state *c)
        pid_t pid2, pid = getpid();
        int i, j;
        uint8_t buf[1024];
-       BOOL correct = True;
+       bool correct = true;
 
        fnum2 = smbcli_open(c->tree, lockfname, O_RDWR | O_CREAT | O_EXCL, 
                         DENY_NONE);
@@ -62,7 +63,7 @@ static BOOL rw_torture(struct torture_context *tctx, struct smbcli_state *c)
                fnum2 = smbcli_open(c->tree, lockfname, O_RDWR, DENY_NONE);
        if (fnum2 == -1) {
                torture_comment(tctx, "open of %s failed (%s)\n", lockfname, smbcli_errstr(c->tree));
-               return False;
+               return false;
        }
 
        generate_random_buffer(buf, sizeof(buf));
@@ -78,19 +79,19 @@ static BOOL rw_torture(struct torture_context *tctx, struct smbcli_state *c)
                asprintf(&fname, "\\torture.%u", n);
 
                if (!wait_lock(c, fnum2, n*sizeof(int), sizeof(int))) {
-                       return False;
+                       return false;
                }
 
                fnum = smbcli_open(c->tree, fname, O_RDWR | O_CREAT | O_TRUNC, DENY_ALL);
                if (fnum == -1) {
                        torture_comment(tctx, "open failed (%s)\n", smbcli_errstr(c->tree));
-                       correct = False;
+                       correct = false;
                        break;
                }
 
                if (smbcli_write(c->tree, fnum, 0, &pid, 0, sizeof(pid)) != sizeof(pid)) {
                        torture_comment(tctx, "write failed (%s)\n", smbcli_errstr(c->tree));
-                       correct = False;
+                       correct = false;
                }
 
                for (j=0;j<50;j++) {
@@ -98,7 +99,7 @@ static BOOL rw_torture(struct torture_context *tctx, struct smbcli_state *c)
                                      sizeof(pid)+(j*sizeof(buf)), 
                                      sizeof(buf)) != sizeof(buf)) {
                                torture_comment(tctx, "write failed (%s)\n", smbcli_errstr(c->tree));
-                               correct = False;
+                               correct = false;
                        }
                }
 
@@ -106,27 +107,27 @@ static BOOL rw_torture(struct torture_context *tctx, struct smbcli_state *c)
 
                if (smbcli_read(c->tree, fnum, &pid2, 0, sizeof(pid)) != sizeof(pid)) {
                        torture_comment(tctx, "read failed (%s)\n", smbcli_errstr(c->tree));
-                       correct = False;
+                       correct = false;
                }
 
                if (pid2 != pid) {
                        torture_comment(tctx, "data corruption!\n");
-                       correct = False;
+                       correct = false;
                }
 
                if (NT_STATUS_IS_ERR(smbcli_close(c->tree, fnum))) {
                        torture_comment(tctx, "close failed (%s)\n", smbcli_errstr(c->tree));
-                       correct = False;
+                       correct = false;
                }
 
                if (NT_STATUS_IS_ERR(smbcli_unlink(c->tree, fname))) {
                        torture_comment(tctx, "unlink failed (%s)\n", smbcli_errstr(c->tree));
-                       correct = False;
+                       correct = false;
                }
 
                if (NT_STATUS_IS_ERR(smbcli_unlock(c->tree, fnum2, n*sizeof(int), sizeof(int)))) {
                        torture_comment(tctx, "unlock failed (%s)\n", smbcli_errstr(c->tree));
-                       correct = False;
+                       correct = false;
                }
                free(fname);
        }
@@ -139,7 +140,7 @@ static BOOL rw_torture(struct torture_context *tctx, struct smbcli_state *c)
        return correct;
 }
 
-BOOL run_torture(struct torture_context *tctx, struct smbcli_state *cli, int dummy)
+bool run_torture(struct torture_context *tctx, struct smbcli_state *cli, int dummy)
 {
        return rw_torture(tctx, cli);
 }
@@ -148,7 +149,7 @@ BOOL run_torture(struct torture_context *tctx, struct smbcli_state *cli, int dum
 /*
   see how many RPC pipes we can open at once
 */
-BOOL run_pipe_number(struct torture_context *tctx, 
+bool run_pipe_number(struct torture_context *tctx, 
                                         struct smbcli_state *cli1)
 {
        const char *pipe_name = "\\WKSSVC";
@@ -171,7 +172,7 @@ BOOL run_pipe_number(struct torture_context *tctx,
        }
 
        torture_comment(tctx, "pipe_number test - we can open %d %s pipes.\n", num_pipes, pipe_name );
-       return True;
+       return true;
 }
 
 
@@ -182,7 +183,7 @@ BOOL run_pipe_number(struct torture_context *tctx,
   used for testing performance when there are N idle users
   already connected
  */
-BOOL torture_holdcon(struct torture_context *tctx)
+bool torture_holdcon(struct torture_context *tctx)
 {
        int i;
        struct smbcli_state **cli;
@@ -194,7 +195,7 @@ BOOL torture_holdcon(struct torture_context *tctx)
 
        for (i=0;i<torture_numops;i++) {
                if (!torture_open_connection(&cli[i], i)) {
-                       return False;
+                       return false;
                }
                if (torture_setting_bool(tctx, "progress", true)) {
                        torture_comment(tctx, "opened %d connections\r", i);
@@ -227,34 +228,34 @@ BOOL torture_holdcon(struct torture_context *tctx)
                fflush(stdout);
        }
 
-       return True;
+       return true;
 }
 
 /*
 test how many open files this server supports on the one socket
 */
-BOOL run_maxfidtest(struct torture_context *tctx, struct smbcli_state *cli, int dummy)
+bool run_maxfidtest(struct torture_context *tctx, struct smbcli_state *cli, int dummy)
 {
 #define MAXFID_TEMPLATE "\\maxfid\\fid%d\\maxfid.%d.%d"
        char *fname;
        int fnums[0x11000], i;
        int retries=4, maxfid;
-       BOOL correct = True;
+       bool correct = true;
 
        if (retries <= 0) {
                torture_comment(tctx, "failed to connect\n");
-               return False;
+               return false;
        }
 
        if (smbcli_deltree(cli->tree, "\\maxfid") == -1) {
                torture_comment(tctx, "Failed to deltree \\maxfid - %s\n",
                       smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
        if (NT_STATUS_IS_ERR(smbcli_mkdir(cli->tree, "\\maxfid"))) {
                torture_comment(tctx, "Failed to mkdir \\maxfid, error=%s\n", 
                       smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
 
        torture_comment(tctx, "Testing maximum number of open files\n");
@@ -265,7 +266,7 @@ BOOL run_maxfidtest(struct torture_context *tctx, struct smbcli_state *cli, int
                        if (NT_STATUS_IS_ERR(smbcli_mkdir(cli->tree, fname))) {
                                torture_comment(tctx, "Failed to mkdir %s, error=%s\n", 
                                       fname, smbcli_errstr(cli->tree));
-                               return False;
+                               return false;
                        }
                        free(fname);
                }
@@ -298,7 +299,7 @@ BOOL run_maxfidtest(struct torture_context *tctx, struct smbcli_state *cli, int
                if (NT_STATUS_IS_ERR(smbcli_unlink(cli->tree, fname))) {
                        torture_comment(tctx, "unlink of %s failed (%s)\n", 
                               fname, smbcli_errstr(cli->tree));
-                       correct = False;
+                       correct = false;
                }
                free(fname);
 
@@ -309,7 +310,7 @@ BOOL run_maxfidtest(struct torture_context *tctx, struct smbcli_state *cli, int
                if (NT_STATUS_IS_ERR(smbcli_unlink(cli->tree, fname))) {
                        torture_comment(tctx, "unlink of %s failed (%s)\n", 
                               fname, smbcli_errstr(cli->tree));
-                       correct = False;
+                       correct = false;
                }
                free(fname);
 
@@ -323,12 +324,12 @@ BOOL run_maxfidtest(struct torture_context *tctx, struct smbcli_state *cli, int
        if (smbcli_deltree(cli->tree, "\\maxfid") == -1) {
                torture_comment(tctx, "Failed to deltree \\maxfid - %s\n",
                       smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
 
        torture_comment(tctx, "maxfid test finished\n");
        if (!torture_close_connection(cli)) {
-               correct = False;
+               correct = false;
        }
        return correct;
 #undef MAXFID_TEMPLATE
@@ -339,7 +340,7 @@ BOOL run_maxfidtest(struct torture_context *tctx, struct smbcli_state *cli, int
 /*
   sees what IOCTLs are supported
  */
-BOOL torture_ioctl_test(struct torture_context *tctx, 
+bool torture_ioctl_test(struct torture_context *tctx, 
                                                struct smbcli_state *cli)
 {
        uint16_t device, function;
@@ -356,7 +357,7 @@ BOOL torture_ioctl_test(struct torture_context *tctx,
        fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT|O_EXCL, DENY_NONE);
        if (fnum == -1) {
                torture_comment(tctx, "open of %s failed (%s)\n", fname, smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
 
        parms.ioctl.level = RAW_IOCTL_IOCTL;
@@ -378,7 +379,7 @@ BOOL torture_ioctl_test(struct torture_context *tctx,
                }
        }
 
-       return True;
+       return true;
 }
 
 static void benchrw_callback(struct smbcli_request *req);
@@ -441,7 +442,7 @@ static int init_benchrw_params(struct torture_context *tctx,
        lpar->writeratio = torture_setting_int(tctx, "writeratio",5);
        lpar->num_parallel_requests = torture_setting_int(
                tctx, "parallel_requests", 5);
-       lpar->workgroup = lp_workgroup();
+       lpar->workgroup = lp_workgroup(global_loadparm);
        
        p = torture_setting_string(tctx, "unclist", NULL);
        if (p) {
@@ -581,7 +582,7 @@ static NTSTATUS benchrw_readwrite(struct torture_context *tctx,
                rd.readx.in.maxcnt      = rd.readx.in.mincnt;
                rd.readx.in.remaining   = 0     ;
                rd.readx.out.data       = state->buffer;
-               rd.readx.in.read_for_execute = False;
+               rd.readx.in.read_for_execute = false;
                if(state->readcnt < state->lp_params->writeblocks){
                        state->readcnt++;       
                }else{
@@ -818,13 +819,13 @@ static struct composite_context *torture_connect_async(
        smb->in.called_name = strupper_talloc(mem_ctx, host);
        smb->in.service_type=NULL;
        smb->in.credentials=cmdline_credentials;
-       smb->in.fallback_to_anonymous=False;
+       smb->in.fallback_to_anonymous=false;
        smb->in.workgroup=workgroup;
        
        return smb_composite_connect_send(smb,mem_ctx,ev);
 }
 
-BOOL run_benchrw(struct torture_context *tctx)
+bool run_benchrw(struct torture_context *tctx)
 {
        struct smb_composite_connect *smb_con;
        const char *fname = "\\rwtest.dat";
@@ -836,7 +837,7 @@ BOOL run_benchrw(struct torture_context *tctx)
        struct params lpparams;
        union smb_mkdir parms;
        int finished = 0;
-       BOOL success=True;
+       bool success=true;
        int torture_nprocs = torture_setting_int(tctx, "nprocs", 4);
        
        torture_comment(tctx, "Start BENCH-READWRITE num_ops=%d "
@@ -910,7 +911,7 @@ BOOL run_benchrw(struct torture_context *tctx)
                        /* error occured , finish */
                        case ERROR:
                                finished++;
-                               success=False;
+                               success=false;
                                break;
                        /* cleanup , close connection */
                        case CLEANUP:
index 6a8e84cc2f414fd2f6155a5683532c5fd74a0810..1825dff993bc3c6cd3cf1bf40dd19c4ce8c2f5d1 100644 (file)
@@ -88,10 +88,10 @@ static void show_bits(const struct bitmapping *bm, uint32_t value)
 /*
   print out server properties
  */
-BOOL torture_test_properties(struct torture_context *torture, 
-                                                        struct smbcli_state *cli)
+bool torture_test_properties(struct torture_context *torture, 
+                            struct smbcli_state *cli)
 {
-       BOOL correct = True;
+       bool correct = true;
        union smb_fsinfo fs;
        NTSTATUS status;
        
@@ -103,7 +103,7 @@ BOOL torture_test_properties(struct torture_context *torture,
        status = smb_raw_fsinfo(cli->tree, cli, &fs);
        if (!NT_STATUS_IS_OK(status)) {
                d_printf("qfsinfo failed - %s\n", nt_errstr(status));
-               correct = False;
+               correct = false;
        } else {
                d_printf("Filesystem attributes: 0x%08x\n", 
                         fs.attribute_info.out.fs_attr);
index 572048e0ea6086499c54e9131abd408c12dc0013..12fd5e1c99e770092f1128fe33cf33aade6e4854 100644 (file)
@@ -27,8 +27,8 @@
 /*
   Test rename on files open with share delete and no share delete.
  */
-BOOL torture_test_rename(struct torture_context *tctx,
-                                                struct smbcli_state *cli1)
+bool torture_test_rename(struct torture_context *tctx, 
+                        struct smbcli_state *cli1)
 {
        const char *fname = "\\test.txt";
        const char *fname1 = "\\test1.txt";
index 0a1cfc2e01b0e3d693cadfa33920f23253257c61..dd596c9ee36177deff99a3a17c3e6cbc8a766b99 100644 (file)
@@ -122,7 +122,7 @@ static NTSTATUS try_trans2_len(struct smbcli_state *cli,
 /****************************************************************************
 check whether a trans2 opnum exists at all
 ****************************************************************************/
-static BOOL trans2_op_exists(struct smbcli_state *cli, int op)
+static bool trans2_op_exists(struct smbcli_state *cli, int op)
 {
        int data_len = 0;
        int param_len = 0;
@@ -146,17 +146,17 @@ static BOOL trans2_op_exists(struct smbcli_state *cli, int op)
        status2 = try_trans2(cli, op, param, data, param_len, data_len, 
                             &rparam_len, &rdata_len);
 
-       if (NT_STATUS_EQUAL(status1, status2)) return False;
+       if (NT_STATUS_EQUAL(status1, status2)) return false;
 
        printf("Found op %d (status=%s)\n", op, nt_errstr(status2));
 
-       return True;
+       return true;
 }
 
 /****************************************************************************
 check for existance of a trans2 call
 ****************************************************************************/
-static BOOL scan_trans2(struct smbcli_state *cli, int op, int level, 
+static bool scan_trans2(struct smbcli_state *cli, int op, int level, 
                        int fnum, int dnum, int qfnum, const char *fname)
 {
        int data_len = 0;
@@ -173,7 +173,7 @@ static BOOL scan_trans2(struct smbcli_state *cli, int op, int level,
        SSVAL(param, 0, level);
        status = try_trans2_len(cli, "void", op, level, param, data, param_len, &data_len, 
                            &rparam_len, &rdata_len);
-       if (NT_STATUS_IS_OK(status)) return True;
+       if (NT_STATUS_IS_OK(status)) return true;
 
        /* try with a file descriptor */
        param_len = 6;
@@ -182,7 +182,7 @@ static BOOL scan_trans2(struct smbcli_state *cli, int op, int level,
        SSVAL(param, 4, 0);
        status = try_trans2_len(cli, "fnum", op, level, param, data, param_len, &data_len, 
                                &rparam_len, &rdata_len);
-       if (NT_STATUS_IS_OK(status)) return True;
+       if (NT_STATUS_IS_OK(status)) return true;
 
        /* try with a quota file descriptor */
        param_len = 6;
@@ -191,7 +191,7 @@ static BOOL scan_trans2(struct smbcli_state *cli, int op, int level,
        SSVAL(param, 4, 0);
        status = try_trans2_len(cli, "qfnum", op, level, param, data, param_len, &data_len, 
                                &rparam_len, &rdata_len);
-       if (NT_STATUS_IS_OK(status)) return True;
+       if (NT_STATUS_IS_OK(status)) return true;
 
        /* try with a notify style */
        param_len = 6;
@@ -200,7 +200,7 @@ static BOOL scan_trans2(struct smbcli_state *cli, int op, int level,
        SSVAL(param, 4, level);
        status = try_trans2_len(cli, "notify", op, level, param, data, param_len, &data_len, 
                                &rparam_len, &rdata_len);
-       if (NT_STATUS_IS_OK(status)) return True;
+       if (NT_STATUS_IS_OK(status)) return true;
 
        /* try with a file name */
        param_len = 6;
@@ -211,7 +211,7 @@ static BOOL scan_trans2(struct smbcli_state *cli, int op, int level,
 
        status = try_trans2_len(cli, "fname", op, level, param, data, param_len, &data_len, 
                                &rparam_len, &rdata_len);
-       if (NT_STATUS_IS_OK(status)) return True;
+       if (NT_STATUS_IS_OK(status)) return true;
 
        /* try with a new file name */
        param_len = 6;
@@ -224,7 +224,7 @@ static BOOL scan_trans2(struct smbcli_state *cli, int op, int level,
                                &rparam_len, &rdata_len);
        smbcli_unlink(cli->tree, "\\newfile.dat");
        smbcli_rmdir(cli->tree, "\\newfile.dat");
-       if (NT_STATUS_IS_OK(status)) return True;
+       if (NT_STATUS_IS_OK(status)) return true;
 
        /* try dfs style  */
        smbcli_mkdir(cli->tree, "\\testdir");
@@ -235,13 +235,13 @@ static BOOL scan_trans2(struct smbcli_state *cli, int op, int level,
        status = try_trans2_len(cli, "dfs", op, level, param, data, param_len, &data_len, 
                                &rparam_len, &rdata_len);
        smbcli_rmdir(cli->tree, "\\testdir");
-       if (NT_STATUS_IS_OK(status)) return True;
+       if (NT_STATUS_IS_OK(status)) return true;
 
-       return False;
+       return false;
 }
 
 
-BOOL torture_trans2_scan(struct torture_context *torture, 
+bool torture_trans2_scan(struct torture_context *torture, 
                                                 struct smbcli_state *cli)
 {
        int op, level;
@@ -292,7 +292,7 @@ BOOL torture_trans2_scan(struct torture_context *torture,
                }
        }
 
-       return True;
+       return true;
 }
 
 
@@ -396,7 +396,7 @@ static NTSTATUS try_nttrans_len(struct smbcli_state *cli,
 /****************************************************************************
 check for existance of a nttrans call
 ****************************************************************************/
-static BOOL scan_nttrans(struct smbcli_state *cli, int op, int level, 
+static bool scan_nttrans(struct smbcli_state *cli, int op, int level, 
                        int fnum, int dnum, const char *fname)
 {
        int data_len = 0;
@@ -413,7 +413,7 @@ static BOOL scan_nttrans(struct smbcli_state *cli, int op, int level,
        SSVAL(param, 0, level);
        status = try_nttrans_len(cli, "void", op, level, param, data, param_len, &data_len, 
                            &rparam_len, &rdata_len);
-       if (NT_STATUS_IS_OK(status)) return True;
+       if (NT_STATUS_IS_OK(status)) return true;
 
        /* try with a file descriptor */
        param_len = 6;
@@ -422,7 +422,7 @@ static BOOL scan_nttrans(struct smbcli_state *cli, int op, int level,
        SSVAL(param, 4, 0);
        status = try_nttrans_len(cli, "fnum", op, level, param, data, param_len, &data_len, 
                                &rparam_len, &rdata_len);
-       if (NT_STATUS_IS_OK(status)) return True;
+       if (NT_STATUS_IS_OK(status)) return true;
 
 
        /* try with a notify style */
@@ -432,7 +432,7 @@ static BOOL scan_nttrans(struct smbcli_state *cli, int op, int level,
        SSVAL(param, 4, level);
        status = try_nttrans_len(cli, "notify", op, level, param, data, param_len, &data_len, 
                                &rparam_len, &rdata_len);
-       if (NT_STATUS_IS_OK(status)) return True;
+       if (NT_STATUS_IS_OK(status)) return true;
 
        /* try with a file name */
        param_len = 6;
@@ -443,7 +443,7 @@ static BOOL scan_nttrans(struct smbcli_state *cli, int op, int level,
 
        status = try_nttrans_len(cli, "fname", op, level, param, data, param_len, &data_len, 
                                &rparam_len, &rdata_len);
-       if (NT_STATUS_IS_OK(status)) return True;
+       if (NT_STATUS_IS_OK(status)) return true;
 
        /* try with a new file name */
        param_len = 6;
@@ -456,7 +456,7 @@ static BOOL scan_nttrans(struct smbcli_state *cli, int op, int level,
                                &rparam_len, &rdata_len);
        smbcli_unlink(cli->tree, "\\newfile.dat");
        smbcli_rmdir(cli->tree, "\\newfile.dat");
-       if (NT_STATUS_IS_OK(status)) return True;
+       if (NT_STATUS_IS_OK(status)) return true;
 
        /* try dfs style  */
        smbcli_mkdir(cli->tree, "\\testdir");
@@ -467,14 +467,14 @@ static BOOL scan_nttrans(struct smbcli_state *cli, int op, int level,
        status = try_nttrans_len(cli, "dfs", op, level, param, data, param_len, &data_len, 
                                &rparam_len, &rdata_len);
        smbcli_rmdir(cli->tree, "\\testdir");
-       if (NT_STATUS_IS_OK(status)) return True;
+       if (NT_STATUS_IS_OK(status)) return true;
 
-       return False;
+       return false;
 }
 
 
-BOOL torture_nttrans_scan(struct torture_context *torture, 
-                                                 struct smbcli_state *cli)
+bool torture_nttrans_scan(struct torture_context *torture, 
+                         struct smbcli_state *cli)
 {
        int op, level;
        const char *fname = "\\scanner.dat";
@@ -499,15 +499,13 @@ BOOL torture_nttrans_scan(struct torture_context *torture,
                }
        }
 
-       torture_close_connection(cli);
-
        printf("nttrans scan finished\n");
-       return True;
+       return true;
 }
 
 
 /* scan for valid base SMB requests */
-BOOL torture_smb_scan(struct torture_context *torture)
+bool torture_smb_scan(struct torture_context *torture)
 {
        static struct smbcli_state *cli;
        int op;
@@ -518,7 +516,7 @@ BOOL torture_smb_scan(struct torture_context *torture)
                if (op == SMBreadbraw) continue;
 
                if (!torture_open_connection(&cli, 0)) {
-                       return False;
+                       return false;
                }
 
                req = smbcli_request_setup(cli->tree, op, 0, 0);
@@ -553,5 +551,5 @@ BOOL torture_smb_scan(struct torture_context *torture)
 
 
        printf("smb scan finished\n");
-       return True;
+       return true;
 }
index cb6cc84152c78f23b743f76b3cf6b47ced5f0cda..3d4aeea956e70aa9b1c4d0161ee20709bdbc8010 100644 (file)
 #include "system/time.h"
 #include "libcli/smb_composite/smb_composite.h"
 #include "auth/credentials/credentials.h"
+#include "param/param.h"
 
-static BOOL try_failed_login(struct smbcli_state *cli)
+static bool try_failed_login(struct smbcli_state *cli)
 {
        NTSTATUS status;
        struct smb_composite_sesssetup setup;
        struct smbcli_session *session;
 
-       session = smbcli_session_init(cli->transport, cli, False);
+       session = smbcli_session_init(cli->transport, cli, false);
        setup.in.sesskey = cli->transport->negotiate.sesskey;
        setup.in.capabilities = cli->transport->negotiate.capabilities;
-       setup.in.workgroup = lp_workgroup();
+       setup.in.workgroup = lp_workgroup(global_loadparm);
 
        setup.in.credentials = cli_credentials_init(session);
-       cli_credentials_set_conf(setup.in.credentials);
+       cli_credentials_set_conf(setup.in.credentials, global_loadparm);
        cli_credentials_set_domain(setup.in.credentials, "INVALID-DOMAIN", CRED_SPECIFIED);
        cli_credentials_set_username(setup.in.credentials, "INVALID-USERNAME", CRED_SPECIFIED);
        cli_credentials_set_password(setup.in.credentials, "INVALID-PASSWORD", CRED_SPECIFIED);
@@ -49,23 +50,23 @@ static BOOL try_failed_login(struct smbcli_state *cli)
        talloc_free(session);
        if (NT_STATUS_IS_OK(status)) {
                printf("Allowed session setup with invalid credentials?!\n");
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-BOOL torture_sec_leak(struct torture_context *tctx, struct smbcli_state *cli)
+bool torture_sec_leak(struct torture_context *tctx, struct smbcli_state *cli)
 {
        time_t t1 = time(NULL);
        int timelimit = torture_setting_int(tctx, "timelimit", 20);
 
        while (time(NULL) < t1+timelimit) {
                if (!try_failed_login(cli)) {
-                       return False;
+                       return false;
                }
                talloc_report(NULL, stdout);
        }
 
-       return True;
+       return true;
 }
index 60d5a1554d2a846d1a4f4c0e9c32a7196ed866d7..9e13021d2056a374c7a4145d32e7269552ea3cd5 100644 (file)
 
   1) the server does not allow an unlink on a file that is open
 */
-BOOL torture_unlinktest(struct torture_context *tctx, struct smbcli_state *cli)
+bool torture_unlinktest(struct torture_context *tctx, struct smbcli_state *cli)
 {
        const char *fname = BASEDIR "\\unlink.tst";
        int fnum;
-       BOOL correct = True;
+       bool correct = true;
        union smb_open io;
        NTSTATUS status;
 
index 52babe4d5397df757dbfb3259aae05a3ba7d5df4..82511aa8f97b1bae7857c29f4053f24e0e0028da 100644 (file)
@@ -166,7 +166,7 @@ bool torture_casetable(struct torture_context *tctx,
                                torture_comment(tctx, "too many chars match?? size=%d c=0x%04x\n",
                                       (int)size, c);
                                smbcli_close(cli->tree, fnum);
-                               return False;
+                               return false;
                        }
 
                        smbcli_read(cli->tree, fnum, c2, 0, size);
index fc85cc160aed50726d81a4fbcaefb7c23bd1a7db..02188d856062d2461269011bf5f2b98d509bec5b 100644 (file)
@@ -96,6 +96,7 @@ PRIVATE_DEPENDENCIES = \
 #################################
 
 include smb2/config.mk
+include winbind/config.mk
 
 [SUBSYSTEM::TORTURE_NDR]
 PRIVATE_PROTO_HEADER = ndr/proto.h
@@ -128,8 +129,10 @@ OBJ_FILES = \
                rpc/drsuapi_cracknames.o \
                rpc/dssync.o \
                rpc/spoolss.o \
+               rpc/spoolss_notify.o \
                rpc/unixinfo.o \
                rpc/samr.o \
+               rpc/samr_accessmask.o \
                rpc/wkssvc.o \
                rpc/srvsvc.o \
                rpc/svcctl.o \
@@ -164,7 +167,8 @@ PRIVATE_DEPENDENCIES = \
                RPC_NDR_LSA RPC_NDR_EPMAPPER RPC_NDR_DFS RPC_NDR_SPOOLSS \
                RPC_NDR_SRVSVC RPC_NDR_WKSSVC RPC_NDR_ROT RPC_NDR_DSSETUP \
                RPC_NDR_REMACT RPC_NDR_OXIDRESOLVER WB_HELPER LIBSAMBA-NET \
-               LIBCLI_AUTH POPT_CREDENTIALS TORTURE_LDAP TORTURE_UTIL TORTURE_RAP
+               LIBCLI_AUTH POPT_CREDENTIALS TORTURE_LDAP TORTURE_UTIL TORTURE_RAP \
+               dcerpc_server service process_model
 
 #################################
 # Start SUBSYSTEM TORTURE_RAP
@@ -273,9 +277,11 @@ PRIVATE_PROTO_HEADER = \
                libnet/proto.h
 OBJ_FILES = \
                libnet/libnet.o \
+               libnet/utils.o \
                libnet/userinfo.o \
                libnet/userman.o \
                libnet/groupinfo.o \
+               libnet/groupman.o \
                libnet/domain.o \
                libnet/libnet_lookup.o \
                libnet/libnet_user.o \
index d232f490169c39ddd2472c95127d8faebff6a70c..79eb7eb0e900b1c44c75117ab9b31a9b268c407e 100644 (file)
 #include "librpc/gen_ndr/security.h"
 #include "auth/credentials/credentials.h"
 #include "auth/gensec/gensec.h"
+#include "param/param.h"
+#include "dynconfig.h"
 
 #define NSERVERS 2
 #define NINSTANCES 2
 
 /* global options */
 static struct gentest_options {
-       BOOL showall;
-       BOOL analyze;
-       BOOL analyze_always;
-       BOOL analyze_continuous;
+       bool showall;
+       bool analyze;
+       bool analyze_always;
+       bool analyze_continuous;
        uint_t max_open_handles;
        uint_t seed;
        uint_t numops;
-       BOOL use_oplocks;
+       bool use_oplocks;
        char **ignore_patterns;
        const char *seeds_file;
-       BOOL use_preset_seeds;
-       BOOL fast_reconnect;
+       bool use_preset_seeds;
+       bool fast_reconnect;
 } options;
 
 /* mapping between open handles on the server and local handles */
 static struct {
-       BOOL active;
+       bool active;
        uint_t instance;
        uint_t server_fnum[NSERVERS];
        const char *name;
@@ -67,17 +69,17 @@ static struct {
 /* the seeds and flags for each operation */
 static struct {
        uint_t seed;
-       BOOL disabled;
+       bool disabled;
 } *op_parms;
 
 
 /* oplock break info */
 static struct {
-       BOOL got_break;
+       bool got_break;
        uint16_t fnum;
        uint16_t handle;
        uint8_t level;
-       BOOL do_close;
+       bool do_close;
 } oplocks[NSERVERS][NINSTANCES];
 
 /* change notify reply info */
@@ -100,32 +102,32 @@ static struct {
 
 #define BAD_HANDLE 0xFFFE
 
-static BOOL oplock_handler(struct smbcli_transport *transport, uint16_t tid, uint16_t fnum, uint8_t level, void *private);
+static bool oplock_handler(struct smbcli_transport *transport, uint16_t tid, uint16_t fnum, uint8_t level, void *private);
 static void idle_func(struct smbcli_transport *transport, void *private);
 
 /*
   check if a string should be ignored. This is used as the basis
   for all error ignore settings
 */
-static BOOL ignore_pattern(const char *str)
+static bool ignore_pattern(const char *str)
 {
        int i;
-       if (!options.ignore_patterns) return False;
+       if (!options.ignore_patterns) return false;
 
        for (i=0;options.ignore_patterns[i];i++) {
                if (strcmp(options.ignore_patterns[i], str) == 0 ||
                    gen_fnmatch(options.ignore_patterns[i], str) == 0) {
                        DEBUG(2,("Ignoring '%s'\n", str));
-                       return True;
+                       return true;
                }
        }
-       return False;
+       return false;
 }
 
 /***************************************************** 
 connect to the servers
 *******************************************************/
-static BOOL connect_servers_fast(void)
+static bool connect_servers_fast(void)
 {
        int h, i;
 
@@ -135,13 +137,13 @@ static BOOL connect_servers_fast(void)
                for (i=0;i<NSERVERS;i++) {
                        if (NT_STATUS_IS_ERR((smbcli_close(servers[i].cli[open_handles[h].instance]->tree,
                                       open_handles[h].server_fnum[i])))) {
-                               return False;
+                               return false;
                        }
-                       open_handles[h].active = False;
+                       open_handles[h].active = false;
                }
        }
 
-       return True;
+       return true;
 }
 
 
@@ -150,13 +152,13 @@ static BOOL connect_servers_fast(void)
 /***************************************************** 
 connect to the servers
 *******************************************************/
-static BOOL connect_servers(void)
+static bool connect_servers(void)
 {
        int i, j;
 
        if (options.fast_reconnect && servers[0].cli[0]) {
                if (connect_servers_fast()) {
-                       return True;
+                       return true;
                }
        }
 
@@ -189,7 +191,7 @@ static BOOL connect_servers(void)
                                printf("Failed to connect to \\\\%s\\%s - %s\n",
                                       servers[i].server_name, servers[i].share_name,
                                       nt_errstr(status));
-                               return False;
+                               return false;
                        }
 
                        smbcli_oplock_handler(servers[i].cli[j]->transport, oplock_handler, NULL);
@@ -197,7 +199,7 @@ static BOOL connect_servers(void)
                }
        }
 
-       return True;
+       return true;
 }
 
 /*
@@ -254,7 +256,7 @@ static void gen_add_handle(int instance, const char *name, uint16_t fnums[NSERVE
        for (i=0;i<NSERVERS;i++) {
                open_handles[h].server_fnum[i] = fnums[i];
                open_handles[h].instance = instance;
-               open_handles[h].active = True;
+               open_handles[h].active = true;
                open_handles[h].name = name;
        }
        num_open_handles++;
@@ -274,7 +276,7 @@ static void gen_remove_handle(int instance, uint16_t fnums[NSERVERS])
        for (h=0;h<options.max_open_handles;h++) {
                if (instance == open_handles[h].instance &&
                    open_handles[h].server_fnum[0] == fnums[0]) {
-                       open_handles[h].active = False;                 
+                       open_handles[h].active = false;                 
                        num_open_handles--;
                        printf("CLOSE num_open_handles=%d h=%d s1=0x%x s2=0x%x (%s)\n", 
                               num_open_handles, h, 
@@ -288,9 +290,9 @@ static void gen_remove_handle(int instance, uint16_t fnums[NSERVERS])
 }
 
 /*
-  return True with 'chance' probability as a percentage
+  return true with 'chance' probability as a percentage
 */
-static BOOL gen_chance(uint_t chance)
+static bool gen_chance(uint_t chance)
 {
        return ((random() % 100) <= chance);
 }
@@ -472,7 +474,7 @@ static uint32_t gen_bits_mask2(uint32_t mask1, uint32_t mask2)
 /*
   generate a boolean
 */
-static BOOL gen_bool(void)
+static bool gen_bool(void)
 {
        return gen_bits_mask2(0x1, 0xFF);
 }
@@ -725,11 +727,11 @@ static void oplock_handler_close_recv(struct smbcli_request *req)
 /*
   the oplock handler will either ack the break or close the file
 */
-static BOOL oplock_handler(struct smbcli_transport *transport, uint16_t tid, uint16_t fnum, uint8_t level, void *private)
+static bool oplock_handler(struct smbcli_transport *transport, uint16_t tid, uint16_t fnum, uint8_t level, void *private)
 {
        union smb_close io;
        int i, j;
-       BOOL do_close;
+       bool do_close;
        struct smbcli_tree *tree = NULL;
        struct smbcli_request *req;
 
@@ -740,7 +742,7 @@ static BOOL oplock_handler(struct smbcli_transport *transport, uint16_t tid, uin
                for (j=0;j<NINSTANCES;j++) {
                        if (transport == servers[i].cli[j]->transport &&
                            tid == servers[i].cli[j]->tree->tid) {
-                               oplocks[i][j].got_break = True;
+                               oplocks[i][j].got_break = true;
                                oplocks[i][j].fnum = fnum;
                                oplocks[i][j].handle = fnum_to_handle(i, j, fnum);
                                oplocks[i][j].level = level;
@@ -752,7 +754,7 @@ static BOOL oplock_handler(struct smbcli_transport *transport, uint16_t tid, uin
 
        if (!tree) {
                printf("Oplock break not for one of our trees!?\n");
-               return False;
+               return false;
        }
 
        if (!do_close) {
@@ -769,13 +771,13 @@ static BOOL oplock_handler(struct smbcli_transport *transport, uint16_t tid, uin
 
        if (req == NULL) {
                printf("WARNING: close failed in oplock_handler_close\n");
-               return False;
+               return false;
        }
 
        req->async.fn = oplock_handler_close_recv;
        req->async.private = NULL;
 
-       return True;
+       return true;
 }
 
 
@@ -802,19 +804,19 @@ static void idle_func(struct smbcli_transport *transport, void *private)
 /*
   compare NTSTATUS, using checking ignored patterns
 */
-static BOOL compare_status(NTSTATUS status1, NTSTATUS status2)
+static bool compare_status(NTSTATUS status1, NTSTATUS status2)
 {
-       if (NT_STATUS_EQUAL(status1, status2)) return True;
+       if (NT_STATUS_EQUAL(status1, status2)) return true;
 
        /* one code being an error and the other OK is always an error */
-       if (NT_STATUS_IS_OK(status1) || NT_STATUS_IS_OK(status2)) return False;
+       if (NT_STATUS_IS_OK(status1) || NT_STATUS_IS_OK(status2)) return false;
 
        /* if we are ignoring one of the status codes then consider this a match */
        if (ignore_pattern(nt_errstr(status1)) ||
            ignore_pattern(nt_errstr(status2))) {
-               return True;
+               return true;
        }
-       return False;
+       return false;
 }
 
 
@@ -837,7 +839,7 @@ static void check_pending(void)
 /*
   check that the same oplock breaks have been received by all instances
 */
-static BOOL check_oplocks(const char *call)
+static bool check_oplocks(const char *call)
 {
        int i, j;
        int tries = 0;
@@ -858,7 +860,7 @@ again:
                                       oplocks[i][j].got_break, 
                                       oplocks[i][j].handle, 
                                       oplocks[i][j].level);
-                               return False;
+                               return false;
                        }
                }
        }
@@ -875,14 +877,14 @@ again:
                        break;
                }
        }       
-       return True;
+       return true;
 }
 
 
 /*
   check that the same change notify info has been received by all instances
 */
-static BOOL check_notifies(const char *call)
+static bool check_notifies(const char *call)
 {
        int i, j;
        int tries = 0;
@@ -900,7 +902,7 @@ again:
                                printf("Notify count inconsistent %d %d\n",
                                       notifies[0][j].notify_count,
                                       notifies[i][j].notify_count);
-                               return False;
+                               return false;
                        }
 
                        if (notifies[0][j].notify_count == 0) continue;
@@ -910,7 +912,7 @@ again:
                                printf("Notify status mismatch - %s - %s\n",
                                       nt_errstr(notifies[0][j].status),
                                       nt_errstr(notifies[i][j].status));
-                               return False;
+                               return false;
                        }
 
                        if (!NT_STATUS_IS_OK(notifies[0][j].status)) {
@@ -926,21 +928,21 @@ again:
                                        printf("Notify action %d inconsistent %d %d\n", n,
                                               not1.nttrans.out.changes[n].action,
                                               not2.nttrans.out.changes[n].action);
-                                       return False;
+                                       return false;
                                }
                                if (strcmp(not1.nttrans.out.changes[n].name.s,
                                           not2.nttrans.out.changes[n].name.s)) {
                                        printf("Notify name %d inconsistent %s %s\n", n,
                                               not1.nttrans.out.changes[n].name.s,
                                               not2.nttrans.out.changes[n].name.s);
-                                       return False;
+                                       return false;
                                }
                                if (not1.nttrans.out.changes[n].name.private_length !=
                                    not2.nttrans.out.changes[n].name.private_length) {
                                        printf("Notify name length %d inconsistent %d %d\n", n,
                                               not1.nttrans.out.changes[n].name.private_length,
                                               not2.nttrans.out.changes[n].name.private_length);
-                                       return False;
+                                       return false;
                                }
                        }
                }
@@ -948,7 +950,7 @@ again:
 
        ZERO_STRUCT(notifies);
 
-       return True;
+       return true;
 }
 
 
@@ -972,13 +974,13 @@ again:
                if (!compare_status(status[i], status[0])) { \
                        printf("status different in %s - %s %s\n", #call, \
                               nt_errstr(status[0]), nt_errstr(status[i])); \
-                       return False; \
+                       return false; \
                } \
        } \
-       if (!check_oplocks(#call)) return False; \
-       if (!check_notifies(#call)) return False; \
+       if (!check_oplocks(#call)) return false; \
+       if (!check_notifies(#call)) return false; \
        if (!NT_STATUS_IS_OK(status[0])) { \
-               return True; \
+               return true; \
        } \
 } while(0)
 
@@ -1011,19 +1013,19 @@ again:
        if (parm[0].field != parm[1].field && !ignore_pattern(#field)) { \
                printf("Mismatch in %s - 0x%x 0x%x\n", #field, \
                       (int)parm[0].field, (int)parm[1].field); \
-               return False; \
+               return false; \
        } \
 } while(0)
 
 #define CHECK_WSTR_EQUAL(field) do { \
        if ((!parm[0].field.s && parm[1].field.s) || (parm[0].field.s && !parm[1].field.s)) { \
                printf("%s is NULL!\n", #field); \
-               return False; \
+               return false; \
        } \
        if (parm[0].field.s && strcmp(parm[0].field.s, parm[1].field.s) != 0 && !ignore_pattern(#field)) { \
                printf("Mismatch in %s - %s %s\n", #field, \
                       parm[0].field.s, parm[1].field.s); \
-               return False; \
+               return false; \
        } \
        CHECK_EQUAL(field.private_length); \
 } while(0)
@@ -1031,7 +1033,7 @@ again:
 #define CHECK_BLOB_EQUAL(field) do { \
        if (memcmp(parm[0].field.data, parm[1].field.data, parm[0].field.length) != 0 && !ignore_pattern(#field)) { \
                printf("Mismatch in %s\n", #field); \
-               return False; \
+               return false; \
        } \
        CHECK_EQUAL(field.length); \
 } while(0)
@@ -1041,7 +1043,7 @@ again:
            !ignore_pattern(#field)) { \
                printf("Mismatch in %s - 0x%x 0x%x\n", #field, \
                       (int)parm[0].field, (int)parm[1].field); \
-               return False; \
+               return false; \
        } \
 } while(0)
 
@@ -1052,14 +1054,14 @@ again:
                printf("Mismatch in %s - 0x%x 0x%x\n", #field, \
                       (int)nt_time_to_unix(parm[0].field), \
                       (int)nt_time_to_unix(parm[1].field)); \
-               return False; \
+               return false; \
        } \
 } while(0)
 
 /*
   generate openx operations
 */
-static BOOL handler_openx(int instance)
+static bool handler_openx(int instance)
 {
        union smb_open parm[NSERVERS];
        NTSTATUS status[NSERVERS];
@@ -1097,14 +1099,14 @@ static BOOL handler_openx(int instance)
        /* open creates a new file handle */
        ADD_HANDLE(parm[0].openx.in.fname, openx.out.file.fnum);
 
-       return True;
+       return true;
 }
 
 
 /*
   generate open operations
 */
-static BOOL handler_open(int instance)
+static bool handler_open(int instance)
 {
        union smb_open parm[NSERVERS];
        NTSTATUS status[NSERVERS];
@@ -1131,14 +1133,14 @@ static BOOL handler_open(int instance)
        /* open creates a new file handle */
        ADD_HANDLE(parm[0].openold.in.fname, openold.out.file.fnum);
 
-       return True;
+       return true;
 }
 
 
 /*
   generate ntcreatex operations
 */
-static BOOL handler_ntcreatex(int instance)
+static bool handler_ntcreatex(int instance)
 {
        union smb_open parm[NSERVERS];
        NTSTATUS status[NSERVERS];
@@ -1184,13 +1186,13 @@ static BOOL handler_ntcreatex(int instance)
        /* ntcreatex creates a new file handle */
        ADD_HANDLE(parm[0].ntcreatex.in.fname, ntcreatex.out.file.fnum);
 
-       return True;
+       return true;
 }
 
 /*
   generate close operations
 */
-static BOOL handler_close(int instance)
+static bool handler_close(int instance)
 {
        union smb_close parm[NSERVERS];
        NTSTATUS status[NSERVERS];
@@ -1205,13 +1207,13 @@ static BOOL handler_close(int instance)
 
        REMOVE_HANDLE(close.in.file.fnum);
 
-       return True;
+       return true;
 }
 
 /*
   generate unlink operations
 */
-static BOOL handler_unlink(int instance)
+static bool handler_unlink(int instance)
 {
        union smb_unlink parm[NSERVERS];
        NTSTATUS status[NSERVERS];
@@ -1222,13 +1224,13 @@ static BOOL handler_unlink(int instance)
        GEN_COPY_PARM;
        GEN_CALL(smb_raw_unlink(tree, &parm[i]));
 
-       return True;
+       return true;
 }
 
 /*
   generate chkpath operations
 */
-static BOOL handler_chkpath(int instance)
+static bool handler_chkpath(int instance)
 {
        union smb_chkpath parm[NSERVERS];
        NTSTATUS status[NSERVERS];
@@ -1238,13 +1240,13 @@ static BOOL handler_chkpath(int instance)
        GEN_COPY_PARM;
        GEN_CALL(smb_raw_chkpath(tree, &parm[i]));
 
-       return True;
+       return true;
 }
 
 /*
   generate mkdir operations
 */
-static BOOL handler_mkdir(int instance)
+static bool handler_mkdir(int instance)
 {
        union smb_mkdir parm[NSERVERS];
        NTSTATUS status[NSERVERS];
@@ -1255,13 +1257,13 @@ static BOOL handler_mkdir(int instance)
        GEN_COPY_PARM;
        GEN_CALL(smb_raw_mkdir(tree, &parm[i]));
 
-       return True;
+       return true;
 }
 
 /*
   generate rmdir operations
 */
-static BOOL handler_rmdir(int instance)
+static bool handler_rmdir(int instance)
 {
        struct smb_rmdir parm[NSERVERS];
        NTSTATUS status[NSERVERS];
@@ -1271,13 +1273,13 @@ static BOOL handler_rmdir(int instance)
        GEN_COPY_PARM;
        GEN_CALL(smb_raw_rmdir(tree, &parm[i]));
 
-       return True;
+       return true;
 }
 
 /*
   generate rename operations
 */
-static BOOL handler_rename(int instance)
+static bool handler_rename(int instance)
 {
        union smb_rename parm[NSERVERS];
        NTSTATUS status[NSERVERS];
@@ -1290,13 +1292,13 @@ static BOOL handler_rename(int instance)
        GEN_COPY_PARM;
        GEN_CALL(smb_raw_rename(tree, &parm[i]));
 
-       return True;
+       return true;
 }
 
 /*
   generate ntrename operations
 */
-static BOOL handler_ntrename(int instance)
+static bool handler_ntrename(int instance)
 {
        union smb_rename parm[NSERVERS];
        NTSTATUS status[NSERVERS];
@@ -1311,14 +1313,14 @@ static BOOL handler_ntrename(int instance)
        GEN_COPY_PARM;
        GEN_CALL(smb_raw_rename(tree, &parm[i]));
 
-       return True;
+       return true;
 }
 
 
 /*
   generate seek operations
 */
-static BOOL handler_seek(int instance)
+static bool handler_seek(int instance)
 {
        union smb_seek parm[NSERVERS];
        NTSTATUS status[NSERVERS];
@@ -1333,14 +1335,14 @@ static BOOL handler_seek(int instance)
 
        CHECK_EQUAL(lseek.out.offset);
 
-       return True;
+       return true;
 }
 
 
 /*
   generate readx operations
 */
-static BOOL handler_readx(int instance)
+static bool handler_readx(int instance)
 {
        union smb_read parm[NSERVERS];
        NTSTATUS status[NSERVERS];
@@ -1352,7 +1354,7 @@ static BOOL handler_readx(int instance)
        parm[0].readx.in.maxcnt = gen_io_count();
        parm[0].readx.in.remaining = gen_io_count();
        parm[0].readx.in.read_for_execute = gen_bool();
-       parm[0].readx.out.data = talloc_size(current_op.mem_ctx,
+       parm[0].readx.out.data = talloc_array(current_op.mem_ctx, uint8_t,
                                             MAX(parm[0].readx.in.mincnt, parm[0].readx.in.maxcnt));
 
        GEN_COPY_PARM;
@@ -1363,13 +1365,13 @@ static BOOL handler_readx(int instance)
        CHECK_EQUAL(readx.out.compaction_mode);
        CHECK_EQUAL(readx.out.nread);
 
-       return True;
+       return true;
 }
 
 /*
   generate writex operations
 */
-static BOOL handler_writex(int instance)
+static bool handler_writex(int instance)
 {
        union smb_write parm[NSERVERS];
        NTSTATUS status[NSERVERS];
@@ -1380,7 +1382,7 @@ static BOOL handler_writex(int instance)
        parm[0].writex.in.wmode = gen_bits_mask(0xFFFF);
        parm[0].writex.in.remaining = gen_io_count();
        parm[0].writex.in.count = gen_io_count();
-       parm[0].writex.in.data = talloc_zero_size(current_op.mem_ctx, parm[0].writex.in.count);
+       parm[0].writex.in.data = talloc_zero_array(current_op.mem_ctx, uint8_t, parm[0].writex.in.count);
 
        GEN_COPY_PARM;
        GEN_SET_FNUM(writex.in.file.fnum);
@@ -1389,13 +1391,13 @@ static BOOL handler_writex(int instance)
        CHECK_EQUAL(writex.out.nwritten);
        CHECK_EQUAL(writex.out.remaining);
 
-       return True;
+       return true;
 }
 
 /*
   generate lockingx operations
 */
-static BOOL handler_lockingx(int instance)
+static bool handler_lockingx(int instance)
 {
        union smb_lock parm[NSERVERS];
        NTSTATUS status[NSERVERS];
@@ -1428,7 +1430,7 @@ static BOOL handler_lockingx(int instance)
        GEN_SET_FNUM(lockx.in.file.fnum);
        GEN_CALL(smb_raw_lock(tree, &parm[i]));
 
-       return True;
+       return true;
 }
 
 /*
@@ -1463,7 +1465,7 @@ static void gen_fileinfo(int instance, union smb_fileinfo *info)
 /*
   compare returned fileinfo structures
 */
-static BOOL cmp_fileinfo(int instance, 
+static bool cmp_fileinfo(int instance, 
                         union smb_fileinfo parm[NSERVERS],
                         NTSTATUS status[NSERVERS])
 {
@@ -1471,7 +1473,7 @@ static BOOL cmp_fileinfo(int instance,
 
        switch (parm[0].generic.level) {
        case RAW_FILEINFO_GENERIC:
-               return False;
+               return false;
 
        case RAW_FILEINFO_GETATTR:
                CHECK_EQUAL(getattr.out.attrib);
@@ -1633,13 +1635,13 @@ static BOOL cmp_fileinfo(int instance,
                break;
        }
 
-       return True;
+       return true;
 }
 
 /*
   generate qpathinfo operations
 */
-static BOOL handler_qpathinfo(int instance)
+static bool handler_qpathinfo(int instance)
 {
        union smb_fileinfo parm[NSERVERS];
        NTSTATUS status[NSERVERS];
@@ -1657,7 +1659,7 @@ static BOOL handler_qpathinfo(int instance)
 /*
   generate qfileinfo operations
 */
-static BOOL handler_qfileinfo(int instance)
+static bool handler_qfileinfo(int instance)
 {
        union smb_fileinfo parm[NSERVERS];
        NTSTATUS status[NSERVERS];
@@ -1775,7 +1777,7 @@ static void gen_setfileinfo(int instance, union smb_setfileinfo *info)
 /*
   generate setpathinfo operations
 */
-static BOOL handler_spathinfo(int instance)
+static bool handler_spathinfo(int instance)
 {
        union smb_setfileinfo parm[NSERVERS];
        NTSTATUS status[NSERVERS];
@@ -1794,14 +1796,14 @@ static BOOL handler_spathinfo(int instance)
 
        GEN_CALL(smb_raw_setpathinfo(tree, &parm[i]));
 
-       return True;
+       return true;
 }
 
 
 /*
   generate setfileinfo operations
 */
-static BOOL handler_sfileinfo(int instance)
+static bool handler_sfileinfo(int instance)
 {
        union smb_setfileinfo parm[NSERVERS];
        NTSTATUS status[NSERVERS];
@@ -1814,14 +1816,14 @@ static BOOL handler_sfileinfo(int instance)
        GEN_SET_FNUM(generic.in.file.fnum);
        GEN_CALL(smb_raw_setfileinfo(tree, &parm[i]));
 
-       return True;
+       return true;
 }
 
 
 /*
   generate change notify operations
 */
-static BOOL handler_notify(int instance)
+static bool handler_notify(int instance)
 {
        union smb_notify parm[NSERVERS];
        int n;
@@ -1842,7 +1844,7 @@ static BOOL handler_notify(int instance)
                req->async.fn = async_notify;
        }
 
-       return True;
+       return true;
 }
 
 /*
@@ -1896,7 +1898,7 @@ static void dump_seeds(void)
 */
 static struct {
        const char *name;
-       BOOL (*handler)(int instance);
+       bool (*handler)(int instance);
        int count, success_count;
 } gen_ops[] = {
        {"OPEN",       handler_open},
@@ -1950,7 +1952,7 @@ static int run_test(void)
 
        for (op=0; op<options.numops; op++) {
                int instance, which_op;
-               BOOL ret;
+               bool ret;
 
                if (op_parms[op].disabled) continue;
 
@@ -2023,14 +2025,14 @@ static void backtrack_analyze(void)
                        /* mark this range as disabled */
                        max = MIN(options.numops, base+chunk);
                        for (i=base;i<max; i++) {
-                               op_parms[i].disabled = True;
+                               op_parms[i].disabled = true;
                        }
                        printf("Testing %d ops with %d-%d disabled\n", 
                               options.numops, base, max-1);
                        ret = run_test();
                        printf("Completed %d of %d ops\n", ret, options.numops);
                        for (i=base;i<max; i++) {
-                               op_parms[i].disabled = False;
+                               op_parms[i].disabled = false;
                        }
                        if (ret == options.numops) {
                                /* this chunk is needed */
@@ -2068,7 +2070,7 @@ static void backtrack_analyze(void)
 /* 
    start the main gentest process
 */
-static BOOL start_gentest(void)
+static bool start_gentest(void)
 {
        int op;
        int ret;
@@ -2143,21 +2145,21 @@ static void usage(void)
 /**
   split a UNC name into server and share names
 */
-static BOOL split_unc_name(const char *unc, char **server, char **share)
+static bool split_unc_name(const char *unc, char **server, char **share)
 {
        char *p = strdup(unc);
-       if (!p) return False;
+       if (!p) return false;
        all_string_sub(p, "\\", "/", 0);
-       if (strncmp(p, "//", 2) != 0) return False;
+       if (strncmp(p, "//", 2) != 0) return false;
 
        (*server) = p+2;
        p = strchr(*server, '/');
-       if (!p) return False;
+       if (!p) return false;
 
        *p = 0;
        (*share) = p+1;
        
-       return True;
+       return true;
 }
 
 
@@ -2169,7 +2171,7 @@ static BOOL split_unc_name(const char *unc, char **server, char **share)
 {
        int opt;
        int i, username_count=0;
-       BOOL ret;
+       bool ret;
 
        setlinebuf(stdout);
 
@@ -2194,7 +2196,7 @@ static BOOL split_unc_name(const char *unc, char **server, char **share)
        argc -= NSERVERS;
        argv += NSERVERS;
 
-       lp_load();
+       lp_load(dyn_CONFIGFILE);
 
        servers[0].credentials = cli_credentials_init(talloc_autofree_context());
        servers[1].credentials = cli_credentials_init(talloc_autofree_context());
@@ -2228,28 +2230,28 @@ static BOOL split_unc_name(const char *unc, char **server, char **share)
                        options.seeds_file = optarg;
                        break;
                case 'L':
-                       options.use_preset_seeds = True;
+                       options.use_preset_seeds = true;
                        break;
                case 'F':
-                       options.fast_reconnect = True;
+                       options.fast_reconnect = true;
                        break;
                case 'o':
                        options.numops = atoi(optarg);
                        break;
                case 'O':
-                       options.use_oplocks = True;
+                       options.use_oplocks = true;
                        break;
                case 'a':
-                       options.showall = True;
+                       options.showall = true;
                        break;
                case 'A':
-                       options.analyze = True;
+                       options.analyze = true;
                        break;
                case 'X':
-                       options.analyze_always = True;
+                       options.analyze_always = true;
                        break;
                case 'C':
-                       options.analyze_continuous = True;
+                       options.analyze_continuous = true;
                        break;
                case 'i':
                        options.ignore_patterns = file_lines_load(optarg, NULL, NULL);
index e7d1365c24da01394ed6b0b5f5564709f5256034..3f030c97bacbac52b4d5e620e0775fc38b4fdca3 100644 (file)
 #include "torture/torture.h"
 #include "torture/ldap/proto.h"
 
-static BOOL test_bind_simple(struct ldap_connection *conn, const char *userdn, const char *password)
+static bool test_bind_simple(struct ldap_connection *conn, const char *userdn, const char *password)
 {
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
 
        status = torture_ldap_bind(conn, userdn, password);
        if (!NT_STATUS_IS_OK(status)) {
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
-static BOOL test_bind_sasl(struct ldap_connection *conn, struct cli_credentials *creds)
+static bool test_bind_sasl(struct ldap_connection *conn, struct cli_credentials *creds)
 {
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
 
        printf("Testing sasl bind as user\n");
 
        status = torture_ldap_bind_sasl(conn, creds);
        if (!NT_STATUS_IS_OK(status)) {
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
-static BOOL test_multibind(struct ldap_connection *conn, const char *userdn, const char *password)
+static bool test_multibind(struct ldap_connection *conn, const char *userdn, const char *password)
 {
-       BOOL ret = True;
+       bool ret = true;
 
        printf("Testing multiple binds on a single connnection as anonymous and user\n");
 
@@ -75,9 +75,9 @@ static BOOL test_multibind(struct ldap_connection *conn, const char *userdn, con
        return ret;
 }
 
-static BOOL test_search_rootDSE(struct ldap_connection *conn, char **basedn)
+static bool test_search_rootDSE(struct ldap_connection *conn, char **basedn)
 {
-       BOOL ret = True;
+       bool ret = true;
        struct ldap_message *msg, *result;
        struct ldap_request *req;
        int i;
@@ -90,7 +90,7 @@ static BOOL test_search_rootDSE(struct ldap_connection *conn, char **basedn)
 
        msg = new_ldap_message(conn);
        if (!msg) {
-               return False;
+               return false;
        }
 
        msg->type = LDAP_TAG_SearchRequest;
@@ -99,7 +99,7 @@ static BOOL test_search_rootDSE(struct ldap_connection *conn, char **basedn)
        msg->r.SearchRequest.deref = LDAP_DEREFERENCE_NEVER;
        msg->r.SearchRequest.timelimit = 0;
        msg->r.SearchRequest.sizelimit = 0;
-       msg->r.SearchRequest.attributesonly = False;
+       msg->r.SearchRequest.attributesonly = false;
        msg->r.SearchRequest.tree = ldb_parse_tree(msg, "(objectclass=*)");
        msg->r.SearchRequest.num_attributes = 0;
        msg->r.SearchRequest.attributes = NULL;
@@ -107,13 +107,13 @@ static BOOL test_search_rootDSE(struct ldap_connection *conn, char **basedn)
        req = ldap_request_send(conn, msg);
        if (req == NULL) {
                printf("Could not setup ldap search\n");
-               return False;
+               return false;
        }
 
        status = ldap_result_one(req, &result, LDAP_TAG_SearchResultEntry);
        if (!NT_STATUS_IS_OK(status)) {
                printf("search failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        printf("received %d replies\n", req->num_replies);
@@ -142,7 +142,7 @@ static BOOL test_search_rootDSE(struct ldap_connection *conn, char **basedn)
        return ret;
 }
 
-static BOOL test_compare_sasl(struct ldap_connection *conn, const char *basedn)
+static bool test_compare_sasl(struct ldap_connection *conn, const char *basedn)
 {
        struct ldap_message *msg, *rep;
        struct ldap_request *req;
@@ -152,12 +152,12 @@ static BOOL test_compare_sasl(struct ldap_connection *conn, const char *basedn)
        printf("Testing SASL Compare: %s\n", basedn);
 
        if (!basedn) {
-               return False;
+               return false;
        }
 
        msg = new_ldap_message(conn);
        if (!msg) {
-               return False;
+               return false;
        }
 
        msg->type = LDAP_TAG_CompareRequest;
@@ -168,13 +168,13 @@ static BOOL test_compare_sasl(struct ldap_connection *conn, const char *basedn)
 
        req = ldap_request_send(conn, msg);
        if (!req) {
-               return False;
+               return false;
        }
 
        status = ldap_result_one(req, &rep, LDAP_TAG_CompareResponse);
        if (!NT_STATUS_IS_OK(status)) {
                printf("error in ldap compare request - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        DEBUG(5,("Code: %d DN: [%s] ERROR:[%s] REFERRAL:[%s]\n",
@@ -183,16 +183,16 @@ static BOOL test_compare_sasl(struct ldap_connection *conn, const char *basedn)
                rep->r.CompareResponse.errormessage,
                rep->r.CompareResponse.referral));
 
-       return True;
+       return true;
 }
 
 
-BOOL torture_ldap_basic(struct torture_context *torture)
+bool torture_ldap_basic(struct torture_context *torture)
 {
         NTSTATUS status;
         struct ldap_connection *conn;
        TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
+       bool ret = true;
        const char *host = torture_setting_string(torture, "host", NULL);
        const char *userdn = torture_setting_string(torture, "ldap_userdn", NULL);
        const char *secret = torture_setting_string(torture, "ldap_secret", NULL);
@@ -205,25 +205,25 @@ BOOL torture_ldap_basic(struct torture_context *torture)
 
        status = torture_ldap_connection(mem_ctx, &conn, url);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
        if (!test_search_rootDSE(conn, &basedn)) {
-               ret = False;
+               ret = false;
        }
 
        /* other basic tests here */
 
        if (!test_multibind(conn, userdn, secret)) {
-               ret = False;
+               ret = false;
        }
 
        if (!test_bind_sasl(conn, cmdline_credentials)) {
-               ret = False;
+               ret = false;
        }
 
        if (!test_compare_sasl(conn, basedn)) {
-               ret = False;
+               ret = false;
        }
 
        /* no more test we are closing */
index 8b7fa20b74edbb91f5d86e5210744d83a8ad2f57..f258a1c32f67092e68a74b17d6287ffb9c210593 100644 (file)
@@ -31,7 +31,7 @@
        if (!NT_STATUS_EQUAL(status, correct)) { \
                printf("(%s) Incorrect status %s - should be %s\n", \
                       __location__, nt_errstr(status), nt_errstr(correct)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        } \
 } while (0)
@@ -39,7 +39,7 @@
 /*
   test netlogon operations
 */
-static BOOL test_cldap_netlogon(TALLOC_CTX *mem_ctx, const char *dest)
+static bool test_cldap_netlogon(TALLOC_CTX *mem_ctx, const char *dest)
 {
        struct cldap_socket *cldap = cldap_socket_init(mem_ctx, NULL);
        NTSTATUS status;
@@ -47,7 +47,7 @@ static BOOL test_cldap_netlogon(TALLOC_CTX *mem_ctx, const char *dest)
        union nbt_cldap_netlogon n1;
        struct GUID guid;
        int i;
-       BOOL ret = True;
+       bool ret = true;
 
        ZERO_STRUCT(search);
        search.in.dest_address = dest;
@@ -203,12 +203,12 @@ static void cldap_dump_results(struct cldap_search *search)
 /*
   test generic cldap operations
 */
-static BOOL test_cldap_generic(TALLOC_CTX *mem_ctx, const char *dest)
+static bool test_cldap_generic(TALLOC_CTX *mem_ctx, const char *dest)
 {
        struct cldap_socket *cldap = cldap_socket_init(mem_ctx, NULL);
        NTSTATUS status;
        struct cldap_search search;
-       BOOL ret = True;
+       bool ret = true;
        const char *attrs1[] = { "currentTime", "highestCommittedUSN", NULL };
        const char *attrs2[] = { "currentTime", "highestCommittedUSN", "netlogon", NULL };
        const char *attrs3[] = { "netlogon", NULL };
@@ -270,10 +270,10 @@ done:
        return ret;     
 }
 
-BOOL torture_cldap(struct torture_context *torture)
+bool torture_cldap(struct torture_context *torture)
 {
        TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
+       bool ret = true;
        const char *host = torture_setting_string(torture, "host", NULL);
 
        mem_ctx = talloc_init("torture_cldap");
index 52d86899274b26d654bb7622cf8a418538ffa05f..9f860f98d91d42395f41398c3cb95a2a88a556ee 100644 (file)
@@ -53,7 +53,7 @@ static bool bench_cldap(struct torture_context *tctx, const char *address)
        struct cldap_socket *cldap = cldap_socket_init(tctx, NULL);
        int num_sent=0;
        struct timeval tv = timeval_current();
-       BOOL ret = True;
+       bool ret = true;
        int timelimit = torture_setting_int(tctx, "timelimit", 10);
        struct cldap_netlogon search;
        struct bench_state *state;
index f754880d0bda42afc418c3d3086e2b3ac8cdc956..30fd9877e63310e3e714c4d01bac37df16fa4167 100644 (file)
@@ -31,6 +31,8 @@
 #include "torture/torture.h"
 #include "torture/ldap/proto.h"
 
+#include "param/param.h"
+
 struct test_rootDSE {
        const char *defaultdn;
        const char *rootdn;
@@ -41,13 +43,13 @@ struct test_rootDSE {
 struct test_schema_ctx {
        struct ldb_paged_control *ctrl;
        uint32_t count;
-       BOOL pending;
+       bool pending;
 
        int (*callback)(void *, struct ldb_context *ldb, struct ldb_message *);
        void *private_data;
 };
 
-static BOOL test_search_rootDSE(struct ldb_context *ldb, struct test_rootDSE *root)
+static bool test_search_rootDSE(struct ldb_context *ldb, struct test_rootDSE *root)
 {
        int ret;
        struct ldb_message *msg;
@@ -58,10 +60,10 @@ static BOOL test_search_rootDSE(struct ldb_context *ldb, struct test_rootDSE *ro
        ret = ldb_search(ldb, ldb_dn_new(ldb, ldb, NULL), LDB_SCOPE_BASE, 
                         NULL, NULL, &r);
        if (ret != LDB_SUCCESS) {
-               return False;
+               return false;
        } else if (r->count != 1) {
                talloc_free(r);
-               return False;
+               return false;
        }
 
        msg = r->msgs[0];
@@ -77,7 +79,7 @@ static BOOL test_search_rootDSE(struct ldb_context *ldb, struct test_rootDSE *ro
 
        talloc_free(r);
 
-       return True;
+       return true;
 }
 
 static int test_schema_search_callback(struct ldb_context *ldb, void *context, struct ldb_reply *ares)
@@ -113,7 +115,7 @@ static int test_schema_search_callback(struct ldb_context *ldb, void *context, s
                        actx->ctrl->cookie_len = ctrl->cookie_len;
 
                        if (actx->ctrl->cookie_len > 0) {
-                               actx->pending = True;
+                               actx->pending = true;
                        }
                }
                break;
@@ -136,7 +138,7 @@ static int test_schema_search_callback(struct ldb_context *ldb, void *context, s
        return LDB_SUCCESS;
 }
 
-static BOOL test_create_schema_type(struct ldb_context *ldb, struct test_rootDSE *root,
+static bool test_create_schema_type(struct ldb_context *ldb, struct test_rootDSE *root,
                                    const char *filter,
                                    int (*callback)(void *, struct ldb_context *ldb, struct ldb_message *),
                                    void *private_data)
@@ -153,7 +155,7 @@ static BOOL test_create_schema_type(struct ldb_context *ldb, struct test_rootDSE
        ctrl = talloc_array(req, struct ldb_control *, 2);
        ctrl[0] = talloc(ctrl, struct ldb_control);
        ctrl[0]->oid = LDB_CONTROL_PAGED_RESULTS_OID;
-       ctrl[0]->critical = True;
+       ctrl[0]->critical = true;
        control = talloc(ctrl[0], struct ldb_paged_control);
        control->size = 1000;
        control->cookie = NULL;
@@ -177,25 +179,25 @@ static BOOL test_create_schema_type(struct ldb_context *ldb, struct test_rootDSE
        actx->callback          = callback;
        actx->private_data      = private_data;
 again:
-       actx->pending           = False;
+       actx->pending           = false;
 
        ret = ldb_request(ldb, req);
        if (ret != LDB_SUCCESS) {
                d_printf("search failed - %s\n", ldb_errstring(ldb));
-               return False;
+               return false;
        }
 
        ret = ldb_wait(req->handle, LDB_WAIT_ALL);
                if (ret != LDB_SUCCESS) {
                d_printf("search error - %s\n", ldb_errstring(ldb));
-               return False;
+               return false;
        }
 
        if (actx->pending)
                goto again;
 
        d_printf("filter[%s] count[%u]\n", filter, actx->count);
-       return True;
+       return true;
 }
 
 static int test_add_attribute(void *ptr, struct ldb_context *ldb, struct ldb_message *msg)
@@ -243,9 +245,9 @@ failed:
        return LDB_ERR_OTHER;
 }
 
-static BOOL test_create_schema(struct ldb_context *ldb, struct test_rootDSE *root, struct dsdb_schema **_schema)
+static bool test_create_schema(struct ldb_context *ldb, struct test_rootDSE *root, struct dsdb_schema **_schema)
 {
-       BOOL ret = True;
+       bool ret = true;
        struct dsdb_schema *schema;
 
        schema = talloc_zero(ldb, struct dsdb_schema);
@@ -257,13 +259,13 @@ static BOOL test_create_schema(struct ldb_context *ldb, struct test_rootDSE *roo
        ret &= test_create_schema_type(ldb, root, "(objectClass=classSchema)",
                                       test_add_class, schema);
 
-       if (ret == True) {
+       if (ret == true) {
                *_schema = schema;
        }
        return ret;
 }
 
-static BOOL test_dump_not_replicated(struct ldb_context *ldb, struct test_rootDSE *root, struct dsdb_schema *schema)
+static bool test_dump_not_replicated(struct ldb_context *ldb, struct test_rootDSE *root, struct dsdb_schema *schema)
 {
        struct dsdb_attribute *a;
        uint32_t a_i = 1;
@@ -276,10 +278,10 @@ static BOOL test_dump_not_replicated(struct ldb_context *ldb, struct test_rootDS
                         a->lDAPDisplayName);
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_dump_partial(struct ldb_context *ldb, struct test_rootDSE *root, struct dsdb_schema *schema)
+static bool test_dump_partial(struct ldb_context *ldb, struct test_rootDSE *root, struct dsdb_schema *schema)
 {
        struct dsdb_attribute *a;
        uint32_t a_i = 1;
@@ -293,10 +295,10 @@ static BOOL test_dump_partial(struct ldb_context *ldb, struct test_rootDSE *root
                         a->lDAPDisplayName);
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_dump_contructed(struct ldb_context *ldb, struct test_rootDSE *root, struct dsdb_schema *schema)
+static bool test_dump_contructed(struct ldb_context *ldb, struct test_rootDSE *root, struct dsdb_schema *schema)
 {
        struct dsdb_attribute *a;
        uint32_t a_i = 1;
@@ -309,10 +311,10 @@ static BOOL test_dump_contructed(struct ldb_context *ldb, struct test_rootDSE *r
                         a->lDAPDisplayName);
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_dump_sorted_syntax(struct ldb_context *ldb, struct test_rootDSE *root, struct dsdb_schema *schema)
+static bool test_dump_sorted_syntax(struct ldb_context *ldb, struct test_rootDSE *root, struct dsdb_schema *schema)
 {
        struct dsdb_attribute *a;
        uint32_t a_i = 1;
@@ -348,7 +350,7 @@ static BOOL test_dump_sorted_syntax(struct ldb_context *ldb, struct test_rootDSE
 
                        om_hex = data_blob_hex_string(ldb, &a->oMObjectClass);
                        if (!om_hex) {
-                               return False;
+                               return false;
                        }
 
                        d_printf("attr[%4u]: %s %u '%s' '%s'\n", a_i++,
@@ -358,13 +360,13 @@ static BOOL test_dump_sorted_syntax(struct ldb_context *ldb, struct test_rootDSE
                }
        }
 
-       return True;
+       return true;
 }
 
-BOOL torture_ldap_schema(struct torture_context *torture)
+bool torture_ldap_schema(struct torture_context *torture)
 {
        struct ldb_context *ldb;
-       BOOL ret = True;
+       bool ret = true;
        const char *host = torture_setting_string(torture, "host", NULL);
        char *url;
        struct test_rootDSE rootDSE;
@@ -374,7 +376,7 @@ BOOL torture_ldap_schema(struct torture_context *torture)
 
        url = talloc_asprintf(torture, "ldap://%s/", host);
 
-       ldb = ldb_wrap_connect(torture, url,
+       ldb = ldb_wrap_connect(torture, global_loadparm, url,
                               NULL,
                               cmdline_credentials,
                               0, NULL);
index 0ff9948cad58bd2c96030e575116f8187177dac3..b3c6e8d555937e67910eb33c95cb2bf123a83360 100644 (file)
@@ -34,6 +34,8 @@
 #include "librpc/ndr/libndr.h"
 #include "librpc/gen_ndr/ndr_drsblobs.h"
 
+#include "param/param.h"
+
 static bool test_check_uptodatevector(struct torture_context *torture,
                                      struct ldb_context *ldb,
                                      struct ldb_dn *partition_dn)
@@ -148,17 +150,17 @@ static bool test_check_uptodatevector(struct torture_context *torture,
        return ok;
 }
 
-BOOL torture_ldap_uptodatevector(struct torture_context *torture)
+bool torture_ldap_uptodatevector(struct torture_context *torture)
 {
        struct ldb_context *ldb;
-       BOOL ret = True;
+       bool ret = true;
        const char *host = torture_setting_string(torture, "host", NULL);
        char *url;
 
        url = talloc_asprintf(torture, "ldap://%s/", host);
        if (!url) goto failed;
 
-       ldb = ldb_wrap_connect(torture, url,
+       ldb = ldb_wrap_connect(torture, global_loadparm, url,
                               NULL,
                               cmdline_credentials,
                               0, NULL);
@@ -170,5 +172,5 @@ BOOL torture_ldap_uptodatevector(struct torture_context *torture)
 
        return ret;
 failed:
-       return False;
+       return false;
 }
index 17b8a94f42978d2fc78a944f95cfafc74e1e1185..daf9012e0c716d4483b3f8daeabd24ecfd07165e 100644 (file)
@@ -23,8 +23,9 @@
 #include "lib/events/events.h"
 #include "libnet/libnet.h"
 #include "librpc/gen_ndr/ndr_samr_c.h"
+#include "param/param.h"
 
-static BOOL test_domainopen(struct libnet_context *net_ctx, TALLOC_CTX *mem_ctx,
+static bool test_domainopen(struct libnet_context *net_ctx, TALLOC_CTX *mem_ctx,
                            struct lsa_String *domname,
                            struct policy_handle *domain_handle)
 {
@@ -39,15 +40,15 @@ static BOOL test_domainopen(struct libnet_context *net_ctx, TALLOC_CTX *mem_ctx,
        status = libnet_DomainOpen(net_ctx, mem_ctx, &io);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Composite domain open failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        *domain_handle = io.out.domain_handle;
-       return True;
+       return true;
 }
 
 
-static BOOL test_cleanup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_cleanup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                         struct policy_handle *domain_handle)
 {
        NTSTATUS status;
@@ -62,20 +63,20 @@ static BOOL test_cleanup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_Close(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Close failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
        
-       return True;
+       return true;
 }
 
 
-BOOL torture_domainopen(struct torture_context *torture)
+bool torture_domainopen(struct torture_context *torture)
 {
        NTSTATUS status;
        struct libnet_context *net_ctx;
        struct event_context *evt_ctx;
        TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
+       bool ret = true;
        struct policy_handle h;
        struct lsa_String name;
 
@@ -89,21 +90,21 @@ BOOL torture_domainopen(struct torture_context *torture)
                                        &ndr_table_samr);
        
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
-       name.string = lp_workgroup();
+       name.string = lp_workgroup(global_loadparm);
 
        /*
         * Testing synchronous version
         */
        if (!test_domainopen(net_ctx, mem_ctx, &name, &h)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
        if (!test_cleanup(net_ctx->samr.pipe, mem_ctx, &h)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
index 0dca1519ded24c59c2d1b6d71ed5cf992bb8d6c0..bff2f405cddfd6378577211ba68c31ee258d6715 100644 (file)
 #include "libnet/libnet.h"
 #include "libcli/security/security.h"
 #include "librpc/gen_ndr/ndr_samr_c.h"
+#include "param/param.h"
+#include "torture/libnet/utils.h"
 
 #define TEST_GROUPNAME  "libnetgroupinfotest"
 
 
-static BOOL test_opendomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
-                           struct policy_handle *handle, struct lsa_String *domname,
-                           struct dom_sid2 *sid)
-{
-       NTSTATUS status;
-       struct policy_handle h, domain_handle;
-       struct samr_Connect r1;
-       struct samr_LookupDomain r2;
-       struct samr_OpenDomain r3;
-       
-       printf("connecting\n");
-       
-       r1.in.system_name = 0;
-       r1.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
-       r1.out.connect_handle = &h;
-       
-       status = dcerpc_samr_Connect(p, mem_ctx, &r1);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("Connect failed - %s\n", nt_errstr(status));
-               return False;
-       }
-       
-       r2.in.connect_handle = &h;
-       r2.in.domain_name = domname;
-
-       printf("domain lookup on %s\n", domname->string);
-
-       status = dcerpc_samr_LookupDomain(p, mem_ctx, &r2);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("LookupDomain failed - %s\n", nt_errstr(status));
-               return False;
-       }
-
-       r3.in.connect_handle = &h;
-       r3.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
-       r3.in.sid = r2.out.sid;
-       r3.out.domain_handle = &domain_handle;
-
-       printf("opening domain\n");
-
-       status = dcerpc_samr_OpenDomain(p, mem_ctx, &r3);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("OpenDomain failed - %s\n", nt_errstr(status));
-               return False;
-       } else {
-               *handle = domain_handle;
-       }
-
-       *sid = *r2.out.sid;
-       return True;
-}
-
-
-static BOOL test_cleanup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
-                        struct policy_handle *domain_handle, const char *groupname)
-{
-       NTSTATUS status;
-       struct samr_LookupNames r1;
-       struct samr_OpenGroup r2;
-       struct samr_DeleteDomainGroup r3;
-       struct lsa_String names[2];
-       uint32_t rid;
-       struct policy_handle group_handle;
-
-       names[0].string = groupname;
-
-       r1.in.domain_handle  = domain_handle;
-       r1.in.num_names      = 1;
-       r1.in.names          = names;
-       
-       printf("group account lookup '%s'\n", groupname);
-
-       status = dcerpc_samr_LookupNames(p, mem_ctx, &r1);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("LookupNames failed - %s\n", nt_errstr(status));
-               return False;
-       }
-
-       rid = r1.out.rids.ids[0];
-       
-       r2.in.domain_handle  = domain_handle;
-       r2.in.access_mask    = SEC_FLAG_MAXIMUM_ALLOWED;
-       r2.in.rid            = rid;
-       r2.out.group_handle  = &group_handle;
-
-       printf("opening group account\n");
-
-       status = dcerpc_samr_OpenGroup(p, mem_ctx, &r2);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("OpenUser failed - %s\n", nt_errstr(status));
-               return False;
-       }
-
-       r3.in.group_handle  = &group_handle;
-       r3.out.group_handle = &group_handle;
-
-       printf("deleting group account\n");
-       
-       status = dcerpc_samr_DeleteDomainGroup(p, mem_ctx, &r3);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("DeleteGroup failed - %s\n", nt_errstr(status));
-               return False;
-       }
-       
-       return True;
-}
-
-
-static BOOL test_create(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
-                       struct policy_handle *handle, const char *name, uint32_t *rid)
-{
-       NTSTATUS status;
-       struct lsa_String groupname;
-       struct samr_CreateDomainGroup r;
-       struct policy_handle group_handle;
-       
-       groupname.string = name;
-       
-       r.in.domain_handle  = handle;
-       r.in.name           = &groupname;
-       r.in.access_mask    = SEC_FLAG_MAXIMUM_ALLOWED;
-       r.out.group_handle  = &group_handle;
-       r.out.rid           = rid;
-
-       printf("creating group account %s\n", name);
-
-       status = dcerpc_samr_CreateDomainGroup(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("CreateGroup failed - %s\n", nt_errstr(status));
-
-               if (NT_STATUS_EQUAL(status, NT_STATUS_USER_EXISTS)) {
-                       printf("Group (%s) already exists - attempting to delete and recreate account again\n", name);
-                       if (!test_cleanup(p, mem_ctx, handle, TEST_GROUPNAME)) {
-                               return False;
-                       }
-
-                       printf("creating group account\n");
-                       
-                       status = dcerpc_samr_CreateDomainGroup(p, mem_ctx, &r);
-                       if (!NT_STATUS_IS_OK(status)) {
-                               printf("CreateGroup failed - %s\n", nt_errstr(status));
-                               return False;
-                       }
-                       return True;
-               }
-               return False;
-       }
-
-       return True;
-}
-
-
-static BOOL test_groupinfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_groupinfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                           struct policy_handle *domain_handle,
                           struct dom_sid2 *domain_sid, const char* group_name,
                           uint32_t *rid)
@@ -199,7 +49,7 @@ static BOOL test_groupinfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = libnet_rpc_groupinfo(p, mem_ctx, &group);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Failed to call sync libnet_rpc_userinfo - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        ZERO_STRUCT(group);
@@ -213,19 +63,19 @@ static BOOL test_groupinfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = libnet_rpc_groupinfo(p, mem_ctx, &group);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Failed to call sync libnet_rpc_groupinfo - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 
-BOOL torture_groupinfo(struct torture_context *torture)
+bool torture_groupinfo(struct torture_context *torture)
 {
        NTSTATUS status;
        struct dcerpc_pipe *p;
        TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
+       bool ret = true;
        struct policy_handle h;
        struct lsa_String name;
        struct dom_sid2 sid;
@@ -238,31 +88,31 @@ BOOL torture_groupinfo(struct torture_context *torture)
                                        &ndr_table_samr);
        
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
-       name.string = lp_workgroup();
+       name.string = lp_workgroup(global_loadparm);
 
        /*
         * Testing synchronous version
         */
        if (!test_opendomain(p, mem_ctx, &h, &name, &sid)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
-       if (!test_create(p, mem_ctx, &h, TEST_GROUPNAME, &rid)) {
-               ret = False;
+       if (!test_group_create(p, mem_ctx, &h, TEST_GROUPNAME, &rid)) {
+               ret = false;
                goto done;
        }
 
        if (!test_groupinfo(p, mem_ctx, &h, &sid, TEST_GROUPNAME, &rid)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
-       if (!test_cleanup(p, mem_ctx, &h, TEST_GROUPNAME)) {
-               ret = False;
+       if (!test_group_cleanup(p, mem_ctx, &h, TEST_GROUPNAME)) {
+               ret = false;
                goto done;
        }
 
diff --git a/source/torture/libnet/groupman.c b/source/torture/libnet/groupman.c
new file mode 100644 (file)
index 0000000..552e02c
--- /dev/null
@@ -0,0 +1,93 @@
+/* 
+   Unix SMB/CIFS implementation.
+   Test suite for libnet calls.
+
+   Copyright (C) Rafal Szczesniak 2007
+   
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+   
+   This program 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 General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include "torture/rpc/rpc.h"
+#include "torture/libnet/grouptest.h"
+#include "libnet/libnet.h"
+#include "librpc/gen_ndr/ndr_samr_c.h"
+#include "param/param.h"
+#include "torture/libnet/utils.h"
+
+
+static bool test_groupadd(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+                         struct policy_handle *domain_handle,
+                         const char *name)
+{
+       NTSTATUS status;
+       bool ret = true;
+       struct libnet_rpc_groupadd group;
+
+       group.in.domain_handle = *domain_handle;
+       group.in.groupname     = name;
+       
+       printf("Testing libnet_rpc_groupadd\n");
+
+       status = libnet_rpc_groupadd(p, mem_ctx, &group);
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("Failed to call sync libnet_rpc_groupadd - %s\n", nt_errstr(status));
+               return false;
+       }
+       
+       return ret;
+}
+
+
+bool torture_groupadd(struct torture_context *torture)
+{
+       NTSTATUS status;
+       struct dcerpc_pipe *p;
+       struct policy_handle h;
+       struct lsa_String domain_name;
+       struct dom_sid2 sid;
+       const char *name = TEST_GROUPNAME;
+       TALLOC_CTX *mem_ctx;
+       bool ret = true;
+
+       mem_ctx = talloc_init("test_groupadd");
+
+       status = torture_rpc_connection(torture, 
+                                       &p,
+                                       &ndr_table_samr);
+       
+       if (!NT_STATUS_IS_OK(status)) {
+               return false;
+       }
+
+       domain_name.string = lp_workgroup(global_loadparm);
+       if (!test_opendomain(p, mem_ctx, &h, &domain_name, &sid)) {
+               ret = false;
+               goto done;
+       }
+
+       if (!test_groupadd(p, mem_ctx, &h, name)) {
+               ret = false;
+               goto done;
+       }
+
+       if (!test_group_cleanup(p, mem_ctx, &h, name)) {
+               ret = false;
+               goto done;
+       }
+       
+done:
+       talloc_free(mem_ctx);
+       return ret;
+}
diff --git a/source/torture/libnet/grouptest.h b/source/torture/libnet/grouptest.h
new file mode 100644 (file)
index 0000000..9d030ac
--- /dev/null
@@ -0,0 +1,20 @@
+/* 
+   Unix SMB/CIFS implementation.
+
+   Copyright (C) Rafal Szczesniak 2007
+   
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+   
+   This program 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 General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#define TEST_GROUPNAME  "libnetgrptest"
index dc0e35e102547849223004c71f7629005fd1ed11..0e5c9301f8a42c4678013a893129f2c126d0fc53 100644 (file)
@@ -31,6 +31,7 @@ NTSTATUS torture_net_init(void)
        torture_suite_add_simple_test(suite, "USERMOD", torture_usermod);
        torture_suite_add_simple_test(suite, "DOMOPEN", torture_domainopen);
        torture_suite_add_simple_test(suite, "GROUPINFO", torture_groupinfo);
+       torture_suite_add_simple_test(suite, "GROUPADD", torture_groupadd);
        torture_suite_add_simple_test(suite, "API-LOOKUP", torture_lookup);
        torture_suite_add_simple_test(suite, "API-LOOKUPHOST", torture_lookup_host);
        torture_suite_add_simple_test(suite, "API-LOOKUPPDC", torture_lookup_pdc);
index 9d67e093b10df510c65ac7e6f4a8666f82616a74..edcf92b8ec53c86ef71b80778ca306b233b24eac 100644 (file)
@@ -163,7 +163,7 @@ static NTSTATUS test_become_dc_prepare_db(void *private_data,
 
        DEBUG(0,("Pathes under PRIVATEDIR[%s]\n"
                 "SAMDB[%s] SECRETS[%s] KEYTAB[%s]\n",
-               lp_private_dir(),
+               lp_private_dir(global_loadparm),
                s->path.samdb_ldb,
                s->path.secrets_ldb,
                s->path.secrets_keytab));
@@ -256,7 +256,7 @@ static NTSTATUS test_become_dc_prepare_db(void *private_data,
 
        DEBUG(0,("Open the SAM LDB with system credentials: %s\n", s->path.samdb_ldb));
 
-       s->ldb = ldb_wrap_connect(s, s->path.samdb_ldb,
+       s->ldb = ldb_wrap_connect(s, global_loadparm, s->path.samdb_ldb,
                                  system_session(s),
                                  NULL, 0, NULL);
        if (!s->ldb) {
@@ -345,7 +345,7 @@ static NTSTATUS test_apply_schema(struct test_become_dc_state *s,
 
        tmp_dns_name    = GUID_string(s_dsa->other_info, &s_dsa->source_dsa_obj_guid);
        NT_STATUS_HAVE_NO_MEMORY(tmp_dns_name);
-       tmp_dns_name    = talloc_asprintf_append(tmp_dns_name, "._msdcs.%s", c->forest->dns_name);
+       tmp_dns_name    = talloc_asprintf_append_buffer(tmp_dns_name, "._msdcs.%s", c->forest->dns_name);
        NT_STATUS_HAVE_NO_MEMORY(tmp_dns_name);
        s_dsa->other_info->dns_name = tmp_dns_name;
 
@@ -442,7 +442,7 @@ static NTSTATUS test_apply_schema(struct test_become_dc_state *s,
                return werror_to_ntstatus(status);
        }
 
-       if (lp_parm_bool(-1, "become dc", "dump objects", False)) {
+       if (lp_parm_bool(global_loadparm, NULL, "become dc", "dump objects", false)) {
                for (i=0; i < objs->num_objects; i++) {
                        struct ldb_ldif ldif;
                        fprintf(stdout, "#\n");
@@ -484,7 +484,7 @@ static NTSTATUS test_apply_schema(struct test_become_dc_state *s,
        s->schema = NULL;
 
        DEBUG(0,("Reopen the SAM LDB with system credentials and a already stored schema: %s\n", s->path.samdb_ldb));
-       s->ldb = ldb_wrap_connect(s, s->path.samdb_ldb,
+       s->ldb = ldb_wrap_connect(s, global_loadparm, s->path.samdb_ldb,
                                  system_session(s),
                                  NULL, 0, NULL);
        if (!s->ldb) {
@@ -642,7 +642,7 @@ static NTSTATUS test_become_dc_store_chunk(void *private_data,
 
        tmp_dns_name    = GUID_string(s_dsa->other_info, &s_dsa->source_dsa_obj_guid);
        NT_STATUS_HAVE_NO_MEMORY(tmp_dns_name);
-       tmp_dns_name    = talloc_asprintf_append(tmp_dns_name, "._msdcs.%s", c->forest->dns_name);
+       tmp_dns_name    = talloc_asprintf_append_buffer(tmp_dns_name, "._msdcs.%s", c->forest->dns_name);
        NT_STATUS_HAVE_NO_MEMORY(tmp_dns_name);
        s_dsa->other_info->dns_name = tmp_dns_name;
 
@@ -670,7 +670,7 @@ static NTSTATUS test_become_dc_store_chunk(void *private_data,
                return werror_to_ntstatus(status);
        }
 
-       if (lp_parm_bool(-1, "become dc", "dump objects", False)) {
+       if (lp_parm_bool(global_loadparm, NULL, "become dc", "dump objects", false)) {
                for (i=0; i < objs->num_objects; i++) {
                        struct ldb_ldif ldif;
                        fprintf(stdout, "#\n");
@@ -700,7 +700,7 @@ static NTSTATUS test_become_dc_store_chunk(void *private_data,
                        return NT_STATUS_FOOBAR;
                }
 
-               if (lp_parm_bool(-1, "become dc", "dump objects", False)) {
+               if (lp_parm_bool(global_loadparm, NULL, "become dc", "dump objects", false)) {
                        DEBUG(0,("# %s\n", sa->lDAPDisplayName));
                        NDR_PRINT_DEBUG(drsuapi_DsReplicaLinkedAttribute, &linked_attributes[i]);
                        dump_data(0,
@@ -712,9 +712,9 @@ static NTSTATUS test_become_dc_store_chunk(void *private_data,
        return NT_STATUS_OK;
 }
 
-BOOL torture_net_become_dc(struct torture_context *torture)
+bool torture_net_become_dc(struct torture_context *torture)
 {
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        struct libnet_BecomeDC b;
        struct libnet_UnbecomeDC u;
@@ -724,9 +724,9 @@ BOOL torture_net_become_dc(struct torture_context *torture)
        uint32_t i;
 
        s = talloc_zero(torture, struct test_become_dc_state);
-       if (!s) return False;
+       if (!s) return false;
 
-       s->netbios_name = lp_parm_string(-1, "become dc", "smbtorture dc");
+       s->netbios_name = lp_parm_string(global_loadparm, NULL, "become dc", "smbtorture dc");
        if (!s->netbios_name || !s->netbios_name[0]) {
                s->netbios_name = "smbtorturedc";
        }
@@ -751,7 +751,7 @@ BOOL torture_net_become_dc(struct torture_context *torture)
        if (!s->tj) {
                DEBUG(0, ("%s failed to join domain as workstation\n",
                          s->netbios_name));
-               return False;
+               return false;
        }
 
        s->ctx = libnet_context_init(torture->ev);
@@ -776,27 +776,27 @@ BOOL torture_net_become_dc(struct torture_context *torture)
        status = libnet_BecomeDC(s->ctx, s, &b);
        if (!NT_STATUS_IS_OK(status)) {
                printf("libnet_BecomeDC() failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
                goto cleanup;
        }
 
        msg = ldb_msg_new(s);
        if (!msg) {
                printf("ldb_msg_new() failed\n");
-               ret = False;
+               ret = false;
                goto cleanup;
        }
        msg->dn = ldb_dn_new(msg, s->ldb, "cn=ROOTDSE");
        if (!msg->dn) {
                printf("ldb_msg_new(cn=ROOTDSE) failed\n");
-               ret = False;
+               ret = false;
                goto cleanup;
        }
 
        ldb_ret = ldb_msg_add_string(msg, "isSynchronized", "TRUE");
        if (ldb_ret != LDB_SUCCESS) {
                printf("ldb_msg_add_string(msg, isSynchronized, TRUE) failed: %d\n", ldb_ret);
-               ret = False;
+               ret = false;
                goto cleanup;
        }
 
@@ -808,7 +808,7 @@ BOOL torture_net_become_dc(struct torture_context *torture)
        ldb_ret = ldb_modify(s->ldb, msg);
        if (ldb_ret != LDB_SUCCESS) {
                printf("ldb_modify() failed: %d\n", ldb_ret);
-               ret = False;
+               ret = false;
                goto cleanup;
        }
        
@@ -817,24 +817,24 @@ BOOL torture_net_become_dc(struct torture_context *torture)
        s->schema = NULL;
 
        DEBUG(0,("Reopen the SAM LDB with system credentials and all replicated data: %s\n", s->path.samdb_ldb));
-       s->ldb = ldb_wrap_connect(s, s->path.samdb_ldb,
+       s->ldb = ldb_wrap_connect(s, global_loadparm, s->path.samdb_ldb,
                                  system_session(s),
                                  NULL, 0, NULL);
        if (!s->ldb) {
                DEBUG(0,("Failed to open '%s'\n",
                        s->path.samdb_ldb));
-               ret = False;
+               ret = false;
                goto cleanup;
        }
 
        s->schema = dsdb_get_schema(s->ldb);
        if (!s->schema) {
                DEBUG(0,("Failed to get loaded dsdb_schema\n"));
-               ret = False;
+               ret = false;
                goto cleanup;
        }
 
-       if (lp_parm_bool(-1, "become dc", "do not unjoin", false)) {
+       if (lp_parm_bool(global_loadparm, NULL, "become dc", "do not unjoin", false)) {
                talloc_free(s);
                return ret;
        }
@@ -849,7 +849,7 @@ cleanup:
        status = libnet_UnbecomeDC(s->ctx, s, &u);
        if (!NT_STATUS_IS_OK(status)) {
                printf("libnet_UnbecomeDC() failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        /* Leave domain. */                          
index 675ab9f0996fe97b3e028bd81304bf5778fdc1ef..379cca19bec571f913996b7ed1e89164fd480158 100644 (file)
 #include "librpc/rpc/dcerpc.h"
 #include "torture/torture.h"
 #include "torture/rpc/rpc.h"
+#include "param/param.h"
 
 
-static BOOL test_opendomain_samr(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_opendomain_samr(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                 struct policy_handle *handle, struct lsa_String *domname,
                                 uint32_t *access_mask, struct dom_sid **sid)
 {
@@ -53,7 +54,7 @@ static BOOL test_opendomain_samr(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_Connect(p, mem_ctx, &r1);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Connect failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
        
        r2.in.connect_handle = &h;
@@ -64,7 +65,7 @@ static BOOL test_opendomain_samr(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_LookupDomain(p, mem_ctx, &r2);
        if (!NT_STATUS_IS_OK(status)) {
                printf("LookupDomain failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        r3.in.connect_handle = &h;
@@ -77,16 +78,16 @@ static BOOL test_opendomain_samr(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_OpenDomain(p, mem_ctx, &r3);
        if (!NT_STATUS_IS_OK(status)) {
                printf("OpenDomain failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        } else {
                *handle = domain_handle;
        }
 
-       return True;
+       return true;
 }
 
 
-static BOOL test_opendomain_lsa(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_opendomain_lsa(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                struct policy_handle *handle, struct lsa_String *domname,
                                uint32_t *access_mask)
 {
@@ -114,16 +115,16 @@ static BOOL test_opendomain_lsa(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        
        status = dcerpc_lsa_OpenPolicy2(p, mem_ctx, &open);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 bool torture_domain_open_lsa(struct torture_context *torture)
 {
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        struct libnet_context *ctx;
        struct libnet_DomainOpen r;
        struct lsa_Close lsa_close;
@@ -133,12 +134,12 @@ bool torture_domain_open_lsa(struct torture_context *torture)
        /* we're accessing domain controller so the domain name should be
           passed (it's going to be resolved to dc name and address) instead
           of specific server name. */
-       domain_name = lp_workgroup();
+       domain_name = lp_workgroup(global_loadparm);
 
        ctx = libnet_context_init(NULL);
        if (ctx == NULL) {
                d_printf("failed to create libnet context\n");
-               return False;
+               return false;
        }
 
        ctx->cred = cmdline_credentials;
@@ -151,7 +152,7 @@ bool torture_domain_open_lsa(struct torture_context *torture)
        status = libnet_DomainOpen(ctx, torture, &r);
        if (!NT_STATUS_IS_OK(status)) {
                d_printf("failed to open domain on lsa service: %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -162,7 +163,7 @@ bool torture_domain_open_lsa(struct torture_context *torture)
        status = dcerpc_lsa_Close(ctx->lsa.pipe, ctx, &lsa_close);
        if (!NT_STATUS_IS_OK(status)) {
                d_printf("failed to close domain on lsa service: %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
 done:
@@ -171,9 +172,9 @@ done:
 }
 
 
-BOOL torture_domain_close_lsa(struct torture_context *torture)
+bool torture_domain_close_lsa(struct torture_context *torture)
 {
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        TALLOC_CTX *mem_ctx=NULL;
        struct libnet_context *ctx;
@@ -192,7 +193,7 @@ BOOL torture_domain_close_lsa(struct torture_context *torture)
        ctx = libnet_context_init(NULL);
        if (ctx == NULL) {
                d_printf("failed to create libnet context\n");
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -203,15 +204,15 @@ BOOL torture_domain_close_lsa(struct torture_context *torture)
                                     cmdline_credentials, NULL);
        if (!NT_STATUS_IS_OK(status)) {
                d_printf("failed to connect to server: %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
                goto done;
        }
 
-       domain_name.string = lp_workgroup();
+       domain_name.string = lp_workgroup(global_loadparm);
        
        if (!test_opendomain_lsa(p, torture, &h, &domain_name, &access_mask)) {
                d_printf("failed to open domain on lsa service\n");
-               ret = False;
+               ret = false;
                goto done;
        }
        
@@ -229,7 +230,7 @@ BOOL torture_domain_close_lsa(struct torture_context *torture)
        
        status = libnet_DomainClose(ctx, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -240,7 +241,7 @@ done:
 }
 
 
-BOOL torture_domain_open_samr(struct torture_context *torture)
+bool torture_domain_open_samr(struct torture_context *torture)
 {
        NTSTATUS status;
        struct libnet_context *ctx;
@@ -250,7 +251,7 @@ BOOL torture_domain_open_samr(struct torture_context *torture)
        struct libnet_DomainOpen io;
        struct samr_Close r;
        const char *domain_name;
-       BOOL ret = True;
+       bool ret = true;
 
        mem_ctx = talloc_init("test_domainopen_lsa");
 
@@ -260,7 +261,7 @@ BOOL torture_domain_open_samr(struct torture_context *torture)
        /* we're accessing domain controller so the domain name should be
           passed (it's going to be resolved to dc name and address) instead
           of specific server name. */
-       domain_name = lp_workgroup();
+       domain_name = lp_workgroup(global_loadparm);
 
        /*
         * Testing synchronous version
@@ -274,7 +275,7 @@ BOOL torture_domain_open_samr(struct torture_context *torture)
        status = libnet_DomainOpen(ctx, mem_ctx, &io);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Composite domain open failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -288,7 +289,7 @@ BOOL torture_domain_open_samr(struct torture_context *torture)
        status = dcerpc_samr_Close(ctx->samr.pipe, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Close failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -300,9 +301,9 @@ done:
 }
 
 
-BOOL torture_domain_close_samr(struct torture_context *torture)
+bool torture_domain_close_samr(struct torture_context *torture)
 {
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        TALLOC_CTX *mem_ctx = NULL;
        struct libnet_context *ctx;
@@ -322,7 +323,7 @@ BOOL torture_domain_close_samr(struct torture_context *torture)
        ctx = libnet_context_init(NULL);
        if (ctx == NULL) {
                d_printf("failed to create libnet context\n");
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -333,15 +334,15 @@ BOOL torture_domain_close_samr(struct torture_context *torture)
                                     ctx->cred, NULL);
        if (!NT_STATUS_IS_OK(status)) {
                d_printf("failed to connect to server: %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
                goto done;
        }
 
-       domain_name.string = talloc_strdup(mem_ctx, lp_workgroup());
+       domain_name.string = talloc_strdup(mem_ctx, lp_workgroup(global_loadparm));
        
        if (!test_opendomain_samr(p, torture, &h, &domain_name, &access_mask, &sid)) {
                d_printf("failed to open domain on samr service\n");
-               ret = False;
+               ret = false;
                goto done;
        }
        
@@ -361,7 +362,7 @@ BOOL torture_domain_close_samr(struct torture_context *torture)
        
        status = libnet_DomainClose(ctx, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -372,9 +373,9 @@ done:
 }
 
 
-BOOL torture_domain_list(struct torture_context *torture)
+bool torture_domain_list(struct torture_context *torture)
 {
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        TALLOC_CTX *mem_ctx = NULL;
        struct dcerpc_binding *binding;
@@ -390,7 +391,7 @@ BOOL torture_domain_list(struct torture_context *torture)
        ctx = libnet_context_init(NULL);
        if (ctx == NULL) {
                d_printf("failed to create libnet context\n");
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -407,7 +408,7 @@ BOOL torture_domain_list(struct torture_context *torture)
 
        status = libnet_DomainList(ctx, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -428,7 +429,7 @@ BOOL torture_domain_list(struct torture_context *torture)
 
        status = libnet_DomainList(ctx, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
index 1f4725d6dd1dc6d2fafd36b69782df5938cefa60..a4489d376d153cc419c359afd7322d4aad0deb47 100644 (file)
 #include "librpc/gen_ndr/ndr_lsa_c.h"
 #include "torture/torture.h"
 #include "torture/rpc/rpc.h"
+#include "param/param.h"
 
 
 #define TEST_GROUPNAME  "libnetgrouptest"
 
 
-static BOOL test_cleanup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_cleanup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                         struct policy_handle *domain_handle, const char *groupname)
 {
        NTSTATUS status;
@@ -53,7 +54,7 @@ static BOOL test_cleanup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_LookupNames(p, mem_ctx, &r1);
        if (!NT_STATUS_IS_OK(status)) {
                printf("LookupNames failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        rid = r1.out.rids.ids[0];
@@ -68,7 +69,7 @@ static BOOL test_cleanup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_OpenGroup(p, mem_ctx, &r2);
        if (!NT_STATUS_IS_OK(status)) {
                printf("OpenGroup failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        r3.in.group_handle  = &group_handle;
@@ -79,14 +80,14 @@ static BOOL test_cleanup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_DeleteDomainGroup(p, mem_ctx, &r3);
        if (!NT_STATUS_IS_OK(status)) {
                printf("DeleteGroup failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 
-static BOOL test_creategroup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_creategroup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                             struct policy_handle *handle, const char *name)
 {
        NTSTATUS status;
@@ -112,7 +113,7 @@ static BOOL test_creategroup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                if (NT_STATUS_EQUAL(status, NT_STATUS_GROUP_EXISTS)) {
                        printf("Group (%s) already exists - attempting to delete and recreate group again\n", name);
                        if (!test_cleanup(p, mem_ctx, handle, TEST_GROUPNAME)) {
-                               return False;
+                               return false;
                        }
 
                        printf("creating group account\n");
@@ -120,18 +121,18 @@ static BOOL test_creategroup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        status = dcerpc_samr_CreateDomainGroup(p, mem_ctx, &r);
                        if (!NT_STATUS_IS_OK(status)) {
                                printf("CreateGroup failed - %s\n", nt_errstr(status));
-                               return False;
+                               return false;
                        }
-                       return True;
+                       return true;
                }
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 
-static BOOL test_opendomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_opendomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                            struct policy_handle *handle, struct lsa_String *domname)
 {
        NTSTATUS status;
@@ -149,7 +150,7 @@ static BOOL test_opendomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_Connect(p, mem_ctx, &r1);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Connect failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
        
        r2.in.connect_handle = &h;
@@ -160,7 +161,7 @@ static BOOL test_opendomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_LookupDomain(p, mem_ctx, &r2);
        if (!NT_STATUS_IS_OK(status)) {
                printf("LookupDomain failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        r3.in.connect_handle = &h;
@@ -173,16 +174,16 @@ static BOOL test_opendomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_OpenDomain(p, mem_ctx, &r3);
        if (!NT_STATUS_IS_OK(status)) {
                printf("OpenDomain failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        } else {
                *handle = domain_handle;
        }
 
-       return True;
+       return true;
 }
 
 
-static BOOL test_samr_close(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_samr_close(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                            struct policy_handle *domain_handle)
 {
        NTSTATUS status;
@@ -194,17 +195,17 @@ static BOOL test_samr_close(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_Close(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Close samr domain failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
        
-       return True;
+       return true;
 }
 
 
-BOOL torture_groupinfo_api(struct torture_context *torture)
+bool torture_groupinfo_api(struct torture_context *torture)
 {
        const char *name = TEST_GROUPNAME;
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        TALLOC_CTX *mem_ctx = NULL, *prep_mem_ctx;
        struct libnet_context *ctx;
@@ -222,17 +223,17 @@ BOOL torture_groupinfo_api(struct torture_context *torture)
                                        &p,
                                        &ndr_table_samr);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
-       domain_name.string = lp_workgroup();
+       domain_name.string = lp_workgroup(global_loadparm);
        if (!test_opendomain(p, prep_mem_ctx, &h, &domain_name)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
        if (!test_creategroup(p, prep_mem_ctx, &h, name)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -246,20 +247,20 @@ BOOL torture_groupinfo_api(struct torture_context *torture)
        status = libnet_GroupInfo(ctx, mem_ctx, &req);
        if (!NT_STATUS_IS_OK(status)) {
                printf("libnet_GroupInfo call failed: %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
                talloc_free(mem_ctx);
                goto done;
        }
 
        if (!test_cleanup(ctx->samr.pipe, mem_ctx, &ctx->samr.handle, TEST_GROUPNAME)) {
                printf("cleanup failed\n");
-               ret = False;
+               ret = false;
                goto done;
        }
 
        if (!test_samr_close(ctx->samr.pipe, mem_ctx, &ctx->samr.handle)) {
                printf("domain close failed\n");
-               ret = False;
+               ret = false;
        }
 
        talloc_free(ctx);
index b48f7e7bac3f3879a190a20e369bf113d3edcb05..4734ec50884866d300ef1eb9e7521dde4b1d407b 100644 (file)
 #include "libcli/libcli.h"
 #include "torture/rpc/rpc.h"
 #include "torture/torture.h"
+#include "param/param.h"
 
 
-BOOL torture_lookup(struct torture_context *torture)
+bool torture_lookup(struct torture_context *torture)
 {
-       BOOL ret;
+       bool ret;
        NTSTATUS status;
        TALLOC_CTX *mem_ctx;
        struct libnet_context *ctx;
@@ -58,13 +59,13 @@ BOOL torture_lookup(struct torture_context *torture)
 
        if (!NT_STATUS_IS_OK(status)) {
                printf("Couldn't lookup name %s: %s\n", lookup.in.hostname, nt_errstr(status));
-               ret = False;
+               ret = false;
                goto done;
        }
 
-       ret = True;
+       ret = true;
 
-       printf("Name [%s] found at adrress: %s.\n", lookup.in.hostname, *lookup.out.address);
+       printf("Name [%s] found at address: %s.\n", lookup.in.hostname, *lookup.out.address);
 
 done:
        talloc_free(mem_ctx);
@@ -72,9 +73,9 @@ done:
 }
 
 
-BOOL torture_lookup_host(struct torture_context *torture)
+bool torture_lookup_host(struct torture_context *torture)
 {
-       BOOL ret;
+       bool ret;
        NTSTATUS status;
        TALLOC_CTX *mem_ctx;
        struct libnet_context *ctx;
@@ -101,13 +102,13 @@ BOOL torture_lookup_host(struct torture_context *torture)
 
        if (!NT_STATUS_IS_OK(status)) {
                printf("Couldn't lookup host %s: %s\n", lookup.in.hostname, nt_errstr(status));
-               ret = False;
+               ret = false;
                goto done;
        }
 
-       ret = True;
+       ret = true;
 
-       printf("Host [%s] found at adrress: %s.\n", lookup.in.hostname, *lookup.out.address);
+       printf("Host [%s] found at address: %s.\n", lookup.in.hostname, *lookup.out.address);
 
 done:
        talloc_free(mem_ctx);
@@ -115,9 +116,9 @@ done:
 }
 
 
-BOOL torture_lookup_pdc(struct torture_context *torture)
+bool torture_lookup_pdc(struct torture_context *torture)
 {
-       BOOL ret;
+       bool ret;
        NTSTATUS status;
        TALLOC_CTX *mem_ctx;
        struct libnet_context *ctx;
@@ -133,11 +134,11 @@ BOOL torture_lookup_pdc(struct torture_context *torture)
 
        lookup = talloc(mem_ctx, struct libnet_LookupDCs);
        if (!lookup) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
-       lookup->in.domain_name = lp_workgroup();
+       lookup->in.domain_name = lp_workgroup(global_loadparm);
        lookup->in.name_type   = NBT_NAME_PDC;
 
        status = libnet_LookupDCs(ctx, mem_ctx, lookup);
@@ -145,11 +146,11 @@ BOOL torture_lookup_pdc(struct torture_context *torture)
        if (!NT_STATUS_IS_OK(status)) {
                printf("Couldn't lookup pdc %s: %s\n", lookup->in.domain_name,
                       nt_errstr(status));
-               ret = False;
+               ret = false;
                goto done;
        }
 
-       ret = True;
+       ret = true;
 
        printf("DCs of domain [%s] found.\n", lookup->in.domain_name);
        for (i = 0; i < lookup->out.num_dcs; i++) {
@@ -163,7 +164,7 @@ done:
 }
 
 
-BOOL torture_lookup_sam_name(struct torture_context *torture)
+bool torture_lookup_sam_name(struct torture_context *torture)
 {
        NTSTATUS status;
        TALLOC_CTX *mem_ctx;
@@ -174,15 +175,15 @@ BOOL torture_lookup_sam_name(struct torture_context *torture)
        ctx->cred = cmdline_credentials;
 
        mem_ctx = talloc_init("torture lookup sam name");
-       if (mem_ctx == NULL) return False;
+       if (mem_ctx == NULL) return false;
 
        r.in.name = "Administrator";
-       r.in.domain_name = lp_workgroup();
+       r.in.domain_name = lp_workgroup(global_loadparm);
 
        status = libnet_LookupName(ctx, mem_ctx, &r);
 
        talloc_free(mem_ctx);
        talloc_free(ctx);
 
-       return True;
+       return true;
 }
index 07c586ebf370c4bb44e0465bda258bbb61e17ecf..5ca927a1e38c221bfe191d7f45103635eec129d4 100644 (file)
 #include "librpc/rpc/dcerpc.h"
 #include "torture/rpc/rpc.h"
 #include "torture/torture.h"
+#include "param/param.h"
 
 
-static BOOL test_connect_service(struct libnet_context *ctx,
+static bool test_connect_service(struct libnet_context *ctx,
                                 const struct ndr_interface_table *iface,
                                 const char *binding_string,
                                 const char *hostname,
                                 const enum libnet_RpcConnect_level level,
-                                BOOL badcreds, NTSTATUS expected_status)
+                                bool badcreds, NTSTATUS expected_status)
 {
        NTSTATUS status;
        struct libnet_RpcConnect connect;
@@ -61,7 +62,7 @@ static BOOL test_connect_service(struct libnet_context *ctx,
                       connect.in.dcerpc_iface->name, connect.in.binding, nt_errstr(expected_status),
                       nt_errstr(status));
 
-               return False;
+               return false;
        }
 
        d_printf("PASSED. Expected: %s, received: %s\n", nt_errstr(expected_status),
@@ -78,11 +79,11 @@ static BOOL test_connect_service(struct libnet_context *ctx,
                d_printf("Error string: %s\n", connect.out.error_string);
        }
 
-       return True;
+       return true;
 }
 
 
-static BOOL torture_rpc_connect(struct torture_context *torture,
+static bool torture_rpc_connect(struct torture_context *torture,
                                const enum libnet_RpcConnect_level level,
                                const char *bindstr, const char *hostname)
 {
@@ -93,46 +94,46 @@ static BOOL torture_rpc_connect(struct torture_context *torture,
        
        d_printf("Testing connection to LSA interface\n");
        if (!test_connect_service(ctx, &ndr_table_lsarpc, bindstr,
-                                 hostname, level, False, NT_STATUS_OK)) {
+                                 hostname, level, false, NT_STATUS_OK)) {
                d_printf("failed to connect LSA interface\n");
-               return False;
+               return false;
        }
 
        d_printf("Testing connection to SAMR interface\n");
        if (!test_connect_service(ctx, &ndr_table_samr, bindstr,
-                                 hostname, level, False, NT_STATUS_OK)) {
+                                 hostname, level, false, NT_STATUS_OK)) {
                d_printf("failed to connect SAMR interface\n");
-               return False;
+               return false;
        }
 
        d_printf("Testing connection to SRVSVC interface\n");
        if (!test_connect_service(ctx, &ndr_table_srvsvc, bindstr,
-                                 hostname, level, False, NT_STATUS_OK)) {
+                                 hostname, level, false, NT_STATUS_OK)) {
                d_printf("failed to connect SRVSVC interface\n");
-               return False;
+               return false;
        }
 
        d_printf("Testing connection to LSA interface with wrong credentials\n");
        if (!test_connect_service(ctx, &ndr_table_lsarpc, bindstr,
-                                 hostname, level, True, NT_STATUS_LOGON_FAILURE)) {
+                                 hostname, level, true, NT_STATUS_LOGON_FAILURE)) {
                d_printf("failed to test wrong credentials on LSA interface\n");
-               return False;
+               return false;
        }
 
        d_printf("Testing connection to SAMR interface with wrong credentials\n");
        if (!test_connect_service(ctx, &ndr_table_samr, bindstr,
-                                 hostname, level, True, NT_STATUS_LOGON_FAILURE)) {
+                                 hostname, level, true, NT_STATUS_LOGON_FAILURE)) {
                d_printf("failed to test wrong credentials on SAMR interface\n");
-               return False;
+               return false;
        }
 
        talloc_free(ctx);
 
-       return True;
+       return true;
 }
 
 
-BOOL torture_rpc_connect_srv(struct torture_context *torture)
+bool torture_rpc_connect_srv(struct torture_context *torture)
 {
        const enum libnet_RpcConnect_level level = LIBNET_RPC_CONNECT_SERVER;
        NTSTATUS status;
@@ -140,14 +141,14 @@ BOOL torture_rpc_connect_srv(struct torture_context *torture)
 
        status = torture_rpc_binding(torture, &binding);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
        return torture_rpc_connect(torture, level, NULL, binding->host);
 }
 
 
-BOOL torture_rpc_connect_pdc(struct torture_context *torture)
+bool torture_rpc_connect_pdc(struct torture_context *torture)
 {
        const enum libnet_RpcConnect_level level = LIBNET_RPC_CONNECT_PDC;
        NTSTATUS status;
@@ -156,18 +157,18 @@ BOOL torture_rpc_connect_pdc(struct torture_context *torture)
        
        status = torture_rpc_binding(torture, &binding);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
        /* we're accessing domain controller so the domain name should be
           passed (it's going to be resolved to dc name and address) instead
           of specific server name. */
-       domain_name = lp_workgroup();
+       domain_name = lp_workgroup(global_loadparm);
        return torture_rpc_connect(torture, level, NULL, domain_name);
 }
 
 
-BOOL torture_rpc_connect_dc(struct torture_context *torture)
+bool torture_rpc_connect_dc(struct torture_context *torture)
 {
        const enum libnet_RpcConnect_level level = LIBNET_RPC_CONNECT_DC;
        NTSTATUS status;
@@ -176,18 +177,18 @@ BOOL torture_rpc_connect_dc(struct torture_context *torture)
        
        status = torture_rpc_binding(torture, &binding);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
        /* we're accessing domain controller so the domain name should be
           passed (it's going to be resolved to dc name and address) instead
           of specific server name. */
-       domain_name = lp_workgroup();
+       domain_name = lp_workgroup(global_loadparm);
        return torture_rpc_connect(torture, level, NULL, domain_name);
 }
 
 
-BOOL torture_rpc_connect_dc_info(struct torture_context *torture)
+bool torture_rpc_connect_dc_info(struct torture_context *torture)
 {
        const enum libnet_RpcConnect_level level = LIBNET_RPC_CONNECT_DC_INFO;
        NTSTATUS status;
@@ -196,18 +197,18 @@ BOOL torture_rpc_connect_dc_info(struct torture_context *torture)
        
        status = torture_rpc_binding(torture, &binding);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
        /* we're accessing domain controller so the domain name should be
           passed (it's going to be resolved to dc name and address) instead
           of specific server name. */
-       domain_name = lp_workgroup();
+       domain_name = lp_workgroup(global_loadparm);
        return torture_rpc_connect(torture, level, NULL, domain_name);
 }
 
 
-BOOL torture_rpc_connect_binding(struct torture_context *torture)
+bool torture_rpc_connect_binding(struct torture_context *torture)
 {
        const enum libnet_RpcConnect_level level = LIBNET_RPC_CONNECT_BINDING;
        NTSTATUS status;
@@ -216,7 +217,7 @@ BOOL torture_rpc_connect_binding(struct torture_context *torture)
        
        status = torture_rpc_binding(torture, &binding);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
        bindstr = dcerpc_binding_string(torture, binding);
index b6b0b37d016fc443f774f81398b58843e4c5973f..d18e6ea9db93dfde530a6bfe1dd38cb0ca4855b1 100644 (file)
@@ -113,13 +113,13 @@ static void test_displayshares(struct libnet_ListShares s)
 }
 
 
-BOOL torture_listshares(struct torture_context *torture)
+bool torture_listshares(struct torture_context *torture)
 {
        struct libnet_ListShares share;
        NTSTATUS  status;
        uint32_t levels[] = { 0, 1, 2, 501, 502 };
        int i;
-       BOOL ret = True;
+       bool ret = true;
        struct libnet_context* libnetctx;
        struct dcerpc_binding *bind;
        TALLOC_CTX *mem_ctx;
@@ -127,14 +127,14 @@ BOOL torture_listshares(struct torture_context *torture)
        mem_ctx = talloc_init("test_listshares");
        status = torture_rpc_binding(torture, &bind);
        if (!NT_STATUS_IS_OK(status)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
        libnetctx = libnet_context_init(NULL);
        if (!libnetctx) {
                printf("Couldn't allocate libnet context\n");
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -151,7 +151,7 @@ BOOL torture_listshares(struct torture_context *torture)
                status = libnet_ListShares(libnetctx, mem_ctx, &share);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("libnet_ListShare level %u failed - %s\n", share.in.level, share.out.error_string);
-                       ret = False;
+                       ret = false;
                        goto done;
                }
 
@@ -165,7 +165,7 @@ done:
 }
 
 
-static BOOL test_addshare(struct dcerpc_pipe *svc_pipe, TALLOC_CTX *mem_ctx, const char *host,
+static bool test_addshare(struct dcerpc_pipe *svc_pipe, TALLOC_CTX *mem_ctx, const char *host,
                          const char* share)
 {
        NTSTATUS status;
@@ -187,32 +187,27 @@ static BOOL test_addshare(struct dcerpc_pipe *svc_pipe, TALLOC_CTX *mem_ctx, con
        status = dcerpc_srvsvc_NetShareAdd(svc_pipe, mem_ctx, &add);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Failed to add a new share\n");
-               return False;
+               return false;
        }
 
        printf("share added\n");
-       return True;
+       return true;
 }
 
 
-BOOL torture_delshare(struct torture_context *torture)
+bool torture_delshare(struct torture_context *torture)
 {
        struct dcerpc_pipe *p;
        struct dcerpc_binding *bind;
        struct libnet_context* libnetctx;
        const char *host;
-       TALLOC_CTX *mem_ctx;
        NTSTATUS  status;
-       BOOL ret = True;
+       bool ret = true;
        struct libnet_DelShare share;
        
-       mem_ctx = talloc_init("test_listshares");
        host = torture_setting_string(torture, "host", NULL);
        status = torture_rpc_binding(torture, &bind);
-       if (!NT_STATUS_IS_OK(status)) {
-               ret = False;
-               goto done;
-       }
+       torture_assert_ntstatus_ok(torture, status, "Failed to get binding");
 
        libnetctx = libnet_context_init(NULL);
        libnetctx->cred = cmdline_credentials;
@@ -221,22 +216,15 @@ BOOL torture_delshare(struct torture_context *torture)
                                        &p,
                                        &ndr_table_srvsvc);
 
-       if (!test_addshare(p, mem_ctx, host, TEST_SHARENAME)) {
-               ret = False;
-               goto done;
+       if (!test_addshare(p, torture, host, TEST_SHARENAME)) {
+               return false;
        }
 
        share.in.server_name    = bind->host;
        share.in.share_name     = TEST_SHARENAME;
 
-       status = libnet_DelShare(libnetctx, mem_ctx, &share);
-       if (!NT_STATUS_IS_OK(status)) {
-               ret = False;
-               goto done;
-       }
+       status = libnet_DelShare(libnetctx, torture, &share);
+       torture_assert_ntstatus_ok(torture, status, "Failed to delete share");
 
-
-done:
-       talloc_free(mem_ctx);
        return ret;
 }
index 7a3b9f19c150e3ae54ddd0a120df2436eb4315cf..b3aadc776ebe4305ac71fbd125308468f9b0218d 100644 (file)
 #include "torture/torture.h"
 #include "torture/rpc/rpc.h"
 #include "torture/libnet/usertest.h"
+#include "param/param.h"
 
 
-static BOOL test_cleanup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_cleanup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                         struct policy_handle *domain_handle, const char *username)
 {
        NTSTATUS status;
@@ -51,7 +52,7 @@ static BOOL test_cleanup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_LookupNames(p, mem_ctx, &r1);
        if (!NT_STATUS_IS_OK(status)) {
                printf("LookupNames failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        rid = r1.out.rids.ids[0];
@@ -66,7 +67,7 @@ static BOOL test_cleanup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_OpenUser(p, mem_ctx, &r2);
        if (!NT_STATUS_IS_OK(status)) {
                printf("OpenUser failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        r3.in.user_handle  = &user_handle;
@@ -77,14 +78,14 @@ static BOOL test_cleanup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_DeleteUser(p, mem_ctx, &r3);
        if (!NT_STATUS_IS_OK(status)) {
                printf("DeleteUser failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 
-static BOOL test_opendomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_opendomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                            struct policy_handle *handle, struct lsa_String *domname)
 {
        NTSTATUS status;
@@ -102,7 +103,7 @@ static BOOL test_opendomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_Connect(p, mem_ctx, &r1);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Connect failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
        
        r2.in.connect_handle = &h;
@@ -113,7 +114,7 @@ static BOOL test_opendomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_LookupDomain(p, mem_ctx, &r2);
        if (!NT_STATUS_IS_OK(status)) {
                printf("LookupDomain failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        r3.in.connect_handle = &h;
@@ -126,16 +127,16 @@ static BOOL test_opendomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_OpenDomain(p, mem_ctx, &r3);
        if (!NT_STATUS_IS_OK(status)) {
                printf("OpenDomain failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        } else {
                *handle = domain_handle;
        }
 
-       return True;
+       return true;
 }
 
 
-static BOOL test_samr_close(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_samr_close(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                            struct policy_handle *domain_handle)
 {
        NTSTATUS status;
@@ -147,14 +148,14 @@ static BOOL test_samr_close(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_Close(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Close samr domain failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
        
-       return True;
+       return true;
 }
 
 
-static BOOL test_lsa_close(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_lsa_close(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                           struct policy_handle *domain_handle)
 {
        NTSTATUS status;
@@ -166,14 +167,14 @@ static BOOL test_lsa_close(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_lsa_Close(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Close lsa domain failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 
-static BOOL test_createuser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_createuser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                            struct policy_handle *handle, const char* user)
 {
        NTSTATUS status;
@@ -200,7 +201,7 @@ static BOOL test_createuser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                if (NT_STATUS_EQUAL(status, NT_STATUS_USER_EXISTS)) {
                        printf("User (%s) already exists - attempting to delete and recreate account again\n", user);
                        if (!test_cleanup(p, mem_ctx, handle, TEST_USERNAME)) {
-                               return False;
+                               return false;
                        }
 
                        printf("creating user account\n");
@@ -208,11 +209,11 @@ static BOOL test_createuser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        status = dcerpc_samr_CreateUser(p, mem_ctx, &r1);
                        if (!NT_STATUS_IS_OK(status)) {
                                printf("CreateUser failed - %s\n", nt_errstr(status));
-                               return False;
+                               return false;
                        }
-                       return True;
+                       return true;
                }               
-               return False;
+               return false;
        }
 
        r2.in.handle = &user_handle;
@@ -223,20 +224,20 @@ static BOOL test_createuser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_Close(p, mem_ctx, &r2);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Close failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 
-BOOL torture_createuser(struct torture_context *torture)
+bool torture_createuser(struct torture_context *torture)
 {
        NTSTATUS status;
        TALLOC_CTX *mem_ctx;
        struct libnet_context *ctx;
        struct libnet_CreateUser req;
-       BOOL ret = True;
+       bool ret = true;
 
        mem_ctx = talloc_init("test_createuser");
 
@@ -244,25 +245,25 @@ BOOL torture_createuser(struct torture_context *torture)
        ctx->cred = cmdline_credentials;
 
        req.in.user_name = TEST_USERNAME;
-       req.in.domain_name = lp_workgroup();
+       req.in.domain_name = lp_workgroup(global_loadparm);
        req.out.error_string = NULL;
 
        status = libnet_CreateUser(ctx, mem_ctx, &req);
        if (!NT_STATUS_IS_OK(status)) {
                printf("libnet_CreateUser call failed: %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
                goto done;
        }
 
        if (!test_cleanup(ctx->samr.pipe, mem_ctx, &ctx->samr.handle, TEST_USERNAME)) {
                printf("cleanup failed\n");
-               ret = False;
+               ret = false;
                goto done;
        }
 
        if (!test_samr_close(ctx->samr.pipe, mem_ctx, &ctx->samr.handle)) {
                printf("domain close failed\n");
-               ret = False;
+               ret = false;
        }
 
 done:
@@ -272,7 +273,7 @@ done:
 }
 
 
-BOOL torture_deleteuser(struct torture_context *torture)
+bool torture_deleteuser(struct torture_context *torture)
 {
        NTSTATUS status;
        struct dcerpc_pipe *p;
@@ -282,7 +283,7 @@ BOOL torture_deleteuser(struct torture_context *torture)
        const char *name = TEST_USERNAME;
        struct libnet_context *ctx;
        struct libnet_DeleteUser req;
-       BOOL ret = True;
+       bool ret = true;
 
        prep_mem_ctx = talloc_init("prepare test_deleteuser");
 
@@ -290,24 +291,24 @@ BOOL torture_deleteuser(struct torture_context *torture)
        ctx->cred = cmdline_credentials;
 
        req.in.user_name = TEST_USERNAME;
-       req.in.domain_name = lp_workgroup();
+       req.in.domain_name = lp_workgroup(global_loadparm);
 
        status = torture_rpc_connection(torture,
                                        &p,
                                        &ndr_table_samr);
        if (!NT_STATUS_IS_OK(status)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
-       domain_name.string = lp_workgroup();
+       domain_name.string = lp_workgroup(global_loadparm);
        if (!test_opendomain(p, prep_mem_ctx, &h, &domain_name)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
        if (!test_createuser(p, prep_mem_ctx, &h, name)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -316,7 +317,7 @@ BOOL torture_deleteuser(struct torture_context *torture)
        status = libnet_DeleteUser(ctx, mem_ctx, &req);
        if (!NT_STATUS_IS_OK(status)) {
                printf("libnet_DeleteUser call failed: %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        talloc_free(mem_ctx);
@@ -417,7 +418,7 @@ static void set_test_changes(TALLOC_CTX *mem_ctx, struct libnet_ModifyUser *r,
                case acct_expiry:
                        continue_if_field_set(r->in.acct_expiry);
                        now = timeval_add(&now, (random() % (31*24*60*60)), 0);
-                       r->in.acct_expiry = talloc_memdup(mem_ctx, &now, sizeof(now));
+                       r->in.acct_expiry = (struct timeval *)talloc_memdup(mem_ctx, &now, sizeof(now));
                        fldname = "acct_expiry";
                        break;
 
@@ -438,26 +439,26 @@ static void set_test_changes(TALLOC_CTX *mem_ctx, struct libnet_ModifyUser *r,
 #define TEST_STR_FLD(fld) \
        if (!strequal(req.in.fld, user_req.out.fld)) { \
                printf("failed to change '%s'\n", #fld); \
-               ret = False; \
+               ret = false; \
                goto cleanup; \
        }
 
 #define TEST_TIME_FLD(fld) \
        if (timeval_compare(req.in.fld, user_req.out.fld)) { \
                printf("failed to change '%s'\n", #fld); \
-               ret = False; \
+               ret = false; \
                goto cleanup; \
        }
 
 #define TEST_NUM_FLD(fld) \
        if (req.in.fld != user_req.out.fld) { \
                printf("failed to change '%s'\n", #fld); \
-               ret = False; \
+               ret = false; \
                goto cleanup; \
        }
 
 
-BOOL torture_modifyuser(struct torture_context *torture)
+bool torture_modifyuser(struct torture_context *torture)
 {
        NTSTATUS status;
        struct dcerpc_binding *bind;
@@ -470,7 +471,7 @@ BOOL torture_modifyuser(struct torture_context *torture)
        struct libnet_ModifyUser req;
        struct libnet_UserInfo user_req;
        int fld;
-       BOOL ret = True;
+       bool ret = true;
 
        prep_mem_ctx = talloc_init("prepare test_deleteuser");
 
@@ -481,20 +482,20 @@ BOOL torture_modifyuser(struct torture_context *torture)
                                        &p,
                                        &ndr_table_samr);
        if (!NT_STATUS_IS_OK(status)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
        name = talloc_strdup(prep_mem_ctx, TEST_USERNAME);
 
-       domain_name.string = lp_workgroup();
+       domain_name.string = lp_workgroup(global_loadparm);
        if (!test_opendomain(p, prep_mem_ctx, &h, &domain_name)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
        if (!test_createuser(p, prep_mem_ctx, &h, name)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -502,7 +503,7 @@ BOOL torture_modifyuser(struct torture_context *torture)
 
        status = torture_rpc_binding(mem_ctx, &bind);
        if (!NT_STATUS_IS_OK(status)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -510,7 +511,7 @@ BOOL torture_modifyuser(struct torture_context *torture)
 
        for (fld = 1; fld < FIELDS_NUM - 1; fld++) {
                ZERO_STRUCT(req);
-               req.in.domain_name = lp_workgroup();
+               req.in.domain_name = lp_workgroup(global_loadparm);
                req.in.user_name = name;
 
                set_test_changes(mem_ctx, &req, 1, &name, fld);
@@ -518,18 +519,18 @@ BOOL torture_modifyuser(struct torture_context *torture)
                status = libnet_ModifyUser(ctx, mem_ctx, &req);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("libnet_ModifyUser call failed: %s\n", nt_errstr(status));
-                       ret = False;
+                       ret = false;
                        continue;
                }
 
                ZERO_STRUCT(user_req);
-               user_req.in.domain_name = lp_workgroup();
+               user_req.in.domain_name = lp_workgroup(global_loadparm);
                user_req.in.user_name = name;
 
                status = libnet_UserInfo(ctx, mem_ctx, &user_req);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("libnet_UserInfo call failed: %s\n", nt_errstr(status));
-                       ret = False;
+                       ret = false;
                        continue;
                }
 
@@ -562,7 +563,7 @@ BOOL torture_modifyuser(struct torture_context *torture)
                        /* restore original testing username - it's useful when test fails
                           because it prevents from problems with recreating account */
                        ZERO_STRUCT(req);
-                       req.in.domain_name = lp_workgroup();
+                       req.in.domain_name = lp_workgroup(global_loadparm);
                        req.in.user_name = name;
                        req.in.account_name = TEST_USERNAME;
                        
@@ -570,7 +571,7 @@ BOOL torture_modifyuser(struct torture_context *torture)
                        if (!NT_STATUS_IS_OK(status)) {
                                printf("libnet_ModifyUser call failed: %s\n", nt_errstr(status));
                                talloc_free(mem_ctx);
-                               ret = False;
+                               ret = false;
                                goto done;
                        }
                        
@@ -581,13 +582,13 @@ BOOL torture_modifyuser(struct torture_context *torture)
 cleanup:
        if (!test_cleanup(ctx->samr.pipe, mem_ctx, &ctx->samr.handle, name)) {
                printf("cleanup failed\n");
-               ret = False;
+               ret = false;
                goto done;
        }
 
        if (!test_samr_close(ctx->samr.pipe, mem_ctx, &ctx->samr.handle)) {
                printf("domain close failed\n");
-               ret = False;
+               ret = false;
        }
 
        talloc_free(mem_ctx);
@@ -599,10 +600,10 @@ done:
 }
 
 
-BOOL torture_userinfo_api(struct torture_context *torture)
+bool torture_userinfo_api(struct torture_context *torture)
 {
        const char *name = TEST_USERNAME;
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        TALLOC_CTX *mem_ctx = NULL, *prep_mem_ctx;
        struct libnet_context *ctx;
@@ -620,17 +621,17 @@ BOOL torture_userinfo_api(struct torture_context *torture)
                                        &p,
                                        &ndr_table_samr);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
-       domain_name.string = lp_workgroup();
+       domain_name.string = lp_workgroup(global_loadparm);
        if (!test_opendomain(p, prep_mem_ctx, &h, &domain_name)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
        if (!test_createuser(p, prep_mem_ctx, &h, name)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -644,20 +645,20 @@ BOOL torture_userinfo_api(struct torture_context *torture)
        status = libnet_UserInfo(ctx, mem_ctx, &req);
        if (!NT_STATUS_IS_OK(status)) {
                printf("libnet_UserInfo call failed: %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
                talloc_free(mem_ctx);
                goto done;
        }
 
        if (!test_cleanup(ctx->samr.pipe, mem_ctx, &ctx->samr.handle, TEST_USERNAME)) {
                printf("cleanup failed\n");
-               ret = False;
+               ret = false;
                goto done;
        }
 
        if (!test_samr_close(ctx->samr.pipe, mem_ctx, &ctx->samr.handle)) {
                printf("domain close failed\n");
-               ret = False;
+               ret = false;
        }
 
        talloc_free(ctx);
@@ -668,9 +669,9 @@ done:
 }
 
 
-BOOL torture_userlist(struct torture_context *torture)
+bool torture_userlist(struct torture_context *torture)
 {
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        TALLOC_CTX *mem_ctx = NULL;
        struct libnet_context *ctx;
@@ -681,7 +682,7 @@ BOOL torture_userlist(struct torture_context *torture)
        ctx = libnet_context_init(NULL);
        ctx->cred = cmdline_credentials;
 
-       domain_name.string = lp_workgroup();
+       domain_name.string = lp_workgroup(global_loadparm);
        mem_ctx = talloc_init("torture user list");
 
        ZERO_STRUCT(req);
@@ -706,19 +707,19 @@ BOOL torture_userlist(struct torture_context *torture)
        if (!(NT_STATUS_IS_OK(status) ||
              NT_STATUS_EQUAL(status, NT_STATUS_NO_MORE_ENTRIES))) {
                printf("libnet_UserList call failed: %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
                goto done;
        }
 
        if (!test_samr_close(ctx->samr.pipe, mem_ctx, &ctx->samr.handle)) {
                printf("samr domain close failed\n");
-               ret = False;
+               ret = false;
                goto done;
        }
 
        if (!test_lsa_close(ctx->lsa.pipe, mem_ctx, &ctx->lsa.handle)) {
                printf("lsa domain close failed\n");
-               ret = False;
+               ret = false;
        }
 
        talloc_free(ctx);
index ad35e8486145fdaf20ec86ac8ccfc8be98279b4b..46a9a6a015584987665c3084a171a1d0e13a2f40 100644 (file)
 #include "libnet/libnet.h"
 #include "libcli/security/security.h"
 #include "librpc/gen_ndr/ndr_samr_c.h"
+#include "param/param.h"
+#include "torture/libnet/utils.h"
 
-#define TEST_USERNAME  "libnetuserinfotest"
-
-static BOOL test_opendomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
-                           struct policy_handle *handle, struct lsa_String *domname,
-                           struct dom_sid2 *sid)
-{
-       NTSTATUS status;
-       struct policy_handle h, domain_handle;
-       struct samr_Connect r1;
-       struct samr_LookupDomain r2;
-       struct samr_OpenDomain r3;
-       
-       printf("connecting\n");
-       
-       r1.in.system_name = 0;
-       r1.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
-       r1.out.connect_handle = &h;
-       
-       status = dcerpc_samr_Connect(p, mem_ctx, &r1);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("Connect failed - %s\n", nt_errstr(status));
-               return False;
-       }
-       
-       r2.in.connect_handle = &h;
-       r2.in.domain_name = domname;
-
-       printf("domain lookup on %s\n", domname->string);
-
-       status = dcerpc_samr_LookupDomain(p, mem_ctx, &r2);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("LookupDomain failed - %s\n", nt_errstr(status));
-               return False;
-       }
-
-       r3.in.connect_handle = &h;
-       r3.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
-       r3.in.sid = r2.out.sid;
-       r3.out.domain_handle = &domain_handle;
-
-       printf("opening domain\n");
-
-       status = dcerpc_samr_OpenDomain(p, mem_ctx, &r3);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("OpenDomain failed - %s\n", nt_errstr(status));
-               return False;
-       } else {
-               *handle = domain_handle;
-       }
-
-       *sid = *r2.out.sid;
-       return True;
-}
-
-
-static BOOL test_cleanup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
-                        struct policy_handle *domain_handle, const char *username)
-{
-       NTSTATUS status;
-       struct samr_LookupNames r1;
-       struct samr_OpenUser r2;
-       struct samr_DeleteUser r3;
-       struct lsa_String names[2];
-       uint32_t rid;
-       struct policy_handle user_handle;
-
-       names[0].string = username;
-
-       r1.in.domain_handle  = domain_handle;
-       r1.in.num_names      = 1;
-       r1.in.names          = names;
-       
-       printf("user account lookup '%s'\n", username);
-
-       status = dcerpc_samr_LookupNames(p, mem_ctx, &r1);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("LookupNames failed - %s\n", nt_errstr(status));
-               return False;
-       }
-
-       rid = r1.out.rids.ids[0];
-       
-       r2.in.domain_handle  = domain_handle;
-       r2.in.access_mask    = SEC_FLAG_MAXIMUM_ALLOWED;
-       r2.in.rid            = rid;
-       r2.out.user_handle   = &user_handle;
-
-       printf("opening user account\n");
-
-       status = dcerpc_samr_OpenUser(p, mem_ctx, &r2);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("OpenUser failed - %s\n", nt_errstr(status));
-               return False;
-       }
-
-       r3.in.user_handle  = &user_handle;
-       r3.out.user_handle = &user_handle;
-
-       printf("deleting user account\n");
-       
-       status = dcerpc_samr_DeleteUser(p, mem_ctx, &r3);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("DeleteUser failed - %s\n", nt_errstr(status));
-               return False;
-       }
-       
-       return True;
-}
-
-
-static BOOL test_create(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
-                       struct policy_handle *handle, const char *name, uint32_t *rid)
-{
-       NTSTATUS status;
-       struct lsa_String username;
-       struct samr_CreateUser r;
-       struct policy_handle user_handle;
-       
-       username.string = name;
-       
-       r.in.domain_handle = handle;
-       r.in.account_name  = &username;
-       r.in.access_mask   = SEC_FLAG_MAXIMUM_ALLOWED;
-       r.out.user_handle  = &user_handle;
-       r.out.rid          = rid;
-
-       printf("creating user account %s\n", name);
-
-       status = dcerpc_samr_CreateUser(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("CreateUser failed - %s\n", nt_errstr(status));
-
-               if (NT_STATUS_EQUAL(status, NT_STATUS_USER_EXISTS)) {
-                       printf("User (%s) already exists - attempting to delete and recreate account again\n", name);
-                       if (!test_cleanup(p, mem_ctx, handle, TEST_USERNAME)) {
-                               return False;
-                       }
-
-                       printf("creating user account\n");
-                       
-                       status = dcerpc_samr_CreateUser(p, mem_ctx, &r);
-                       if (!NT_STATUS_IS_OK(status)) {
-                               printf("CreateUser failed - %s\n", nt_errstr(status));
-                               return False;
-                       }
-                       return True;
-               }
-               return False;
-       }
-
-       return True;
-}
 
+#define TEST_USERNAME  "libnetuserinfotest"
 
-static BOOL test_userinfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_userinfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                          struct policy_handle *domain_handle,
                          struct dom_sid2 *domain_sid, const char* user_name,
                          uint32_t *rid)
@@ -198,7 +49,7 @@ static BOOL test_userinfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = libnet_rpc_userinfo(p, mem_ctx, &user);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Failed to call sync libnet_rpc_userinfo - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        ZERO_STRUCT(user);
@@ -212,38 +63,14 @@ static BOOL test_userinfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = libnet_rpc_userinfo(p, mem_ctx, &user);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Failed to call sync libnet_rpc_userinfo - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
-}
-
-
-static void msg_handler(struct monitor_msg *m)
-{
-       struct msg_rpc_open_user *msg_open;
-       struct msg_rpc_query_user *msg_query;
-       struct msg_rpc_close_user *msg_close;
-
-       switch (m->type) {
-       case mon_SamrOpenUser:
-               msg_open = (struct msg_rpc_open_user*)m->data;
-               printf("monitor_msg: user opened (rid=%d, access_mask=0x%08x)\n",
-                      msg_open->rid, msg_open->access_mask);
-               break;
-       case mon_SamrQueryUser:
-               msg_query = (struct msg_rpc_query_user*)m->data;
-               printf("monitor_msg: user queried (level=%d)\n", msg_query->level);
-               break;
-       case mon_SamrCloseUser:
-               msg_close = (struct msg_rpc_close_user*)m->data;
-               printf("monitor_msg: user closed (rid=%d)\n", msg_close->rid);
-               break;
-       }
+       return true;
 }
 
 
-static BOOL test_userinfo_async(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_userinfo_async(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                struct policy_handle *domain_handle,
                                struct dom_sid2 *domain_sid, const char* user_name,
                                uint32_t *rid)
@@ -265,13 +92,13 @@ static BOOL test_userinfo_async(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        c = libnet_rpc_userinfo_send(p, &user, msg_handler);
        if (!c) {
                printf("Failed to call sync libnet_rpc_userinfo_send\n");
-               return False;
+               return false;
        }
 
        status = libnet_rpc_userinfo_recv(c, mem_ctx, &user);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Calling async libnet_rpc_userinfo failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        ZERO_STRUCT(user);
@@ -286,25 +113,25 @@ static BOOL test_userinfo_async(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        c = libnet_rpc_userinfo_send(p, &user, msg_handler);
        if (!c) {
                printf("Failed to call sync libnet_rpc_userinfo_send\n");
-               return False;
+               return false;
        }
 
        status = libnet_rpc_userinfo_recv(c, mem_ctx, &user);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Calling async libnet_rpc_userinfo failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 
-BOOL torture_userinfo(struct torture_context *torture)
+bool torture_userinfo(struct torture_context *torture)
 {
        NTSTATUS status;
        struct dcerpc_pipe *p;
        TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
+       bool ret = true;
        struct policy_handle h;
        struct lsa_String name;
        struct dom_sid2 sid;
@@ -317,31 +144,31 @@ BOOL torture_userinfo(struct torture_context *torture)
                                        &ndr_table_samr);
        
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
-       name.string = lp_workgroup();
+       name.string = lp_workgroup(global_loadparm);
 
        /*
         * Testing synchronous version
         */
        if (!test_opendomain(p, mem_ctx, &h, &name, &sid)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
-       if (!test_create(p, mem_ctx, &h, TEST_USERNAME, &rid)) {
-               ret = False;
+       if (!test_user_create(p, mem_ctx, &h, TEST_USERNAME, &rid)) {
+               ret = false;
                goto done;
        }
 
        if (!test_userinfo(p, mem_ctx, &h, &sid, TEST_USERNAME, &rid)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
-       if (!test_cleanup(p, mem_ctx, &h, TEST_USERNAME)) {
-               ret = False;
+       if (!test_user_cleanup(p, mem_ctx, &h, TEST_USERNAME)) {
+               ret = false;
                goto done;
        }
 
@@ -349,22 +176,22 @@ BOOL torture_userinfo(struct torture_context *torture)
         * Testing asynchronous version and monitor messages
         */
        if (!test_opendomain(p, mem_ctx, &h, &name, &sid)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
-       if (!test_create(p, mem_ctx, &h, TEST_USERNAME, &rid)) {
-               ret = False;
+       if (!test_user_create(p, mem_ctx, &h, TEST_USERNAME, &rid)) {
+               ret = false;
                goto done;
        }
 
        if (!test_userinfo_async(p, mem_ctx, &h, &sid, TEST_USERNAME, &rid)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
-       if (!test_cleanup(p, mem_ctx, &h, TEST_USERNAME)) {
-               ret = False;
+       if (!test_user_cleanup(p, mem_ctx, &h, TEST_USERNAME)) {
+               ret = false;
                goto done;
        }
 
index 90b3f41959fe4adde8ad82e292b78bfd6ec377ed..e834938bc57f5489c0fbf36b9840aeb4ce0243ba 100644 (file)
 #include "torture/libnet/usertest.h"
 #include "libnet/libnet.h"
 #include "librpc/gen_ndr/ndr_samr_c.h"
+#include "param/param.h"
 
+#include "torture/libnet/utils.h"
 
-static BOOL test_opendomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
-                           struct policy_handle *handle, struct lsa_String *domname)
-{
-       NTSTATUS status;
-       struct policy_handle h, domain_handle;
-       struct samr_Connect r1;
-       struct samr_LookupDomain r2;
-       struct samr_OpenDomain r3;
-       
-       printf("connecting\n");
-       
-       r1.in.system_name = 0;
-       r1.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
-       r1.out.connect_handle = &h;
-       
-       status = dcerpc_samr_Connect(p, mem_ctx, &r1);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("Connect failed - %s\n", nt_errstr(status));
-               return False;
-       }
-       
-       r2.in.connect_handle = &h;
-       r2.in.domain_name = domname;
-
-       printf("domain lookup on %s\n", domname->string);
-
-       status = dcerpc_samr_LookupDomain(p, mem_ctx, &r2);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("LookupDomain failed - %s\n", nt_errstr(status));
-               return False;
-       }
-
-       r3.in.connect_handle = &h;
-       r3.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
-       r3.in.sid = r2.out.sid;
-       r3.out.domain_handle = &domain_handle;
-
-       printf("opening domain\n");
-
-       status = dcerpc_samr_OpenDomain(p, mem_ctx, &r3);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("OpenDomain failed - %s\n", nt_errstr(status));
-               return False;
-       } else {
-               *handle = domain_handle;
-       }
-
-       return True;
-}
 
-
-static BOOL test_useradd(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_useradd(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                         struct policy_handle *domain_handle,
                         const char *name)
 {
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        struct libnet_rpc_useradd user;
        
        user.in.domain_handle = *domain_handle;
@@ -91,28 +43,15 @@ static BOOL test_useradd(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
        status = libnet_rpc_useradd(p, mem_ctx, &user);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("Failed to call sync rpc_composite_userinfo - %s\n", nt_errstr(status));
-               return False;
+               printf("Failed to call libnet_rpc_useradd - %s\n", nt_errstr(status));
+               return false;
        }
        
        return ret;
 }
 
 
-static void msg_handler(struct monitor_msg *m)
-{
-       struct msg_rpc_create_user *msg_create;
-
-       switch (m->type) {
-       case mon_SamrCreateUser:
-               msg_create = (struct msg_rpc_create_user*)m->data;
-               printf("monitor_msg: user created (rid=%d)\n", msg_create->rid);
-               break;
-       }
-}
-
-
-static BOOL test_useradd_async(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_useradd_async(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                               struct policy_handle *handle, const char* username)
 {
        NTSTATUS status;
@@ -127,133 +66,20 @@ static BOOL test_useradd_async(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        c = libnet_rpc_useradd_send(p, &user, msg_handler);
        if (!c) {
                printf("Failed to call async libnet_rpc_useradd\n");
-               return False;
+               return false;
        }
 
        status = libnet_rpc_useradd_recv(c, mem_ctx, &user);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Calling async libnet_rpc_useradd failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 
 }
 
-
-static BOOL test_cleanup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
-                        struct policy_handle *domain_handle, const char *username)
-{
-       NTSTATUS status;
-       struct samr_LookupNames r1;
-       struct samr_OpenUser r2;
-       struct samr_DeleteUser r3;
-       struct lsa_String names[2];
-       uint32_t rid;
-       struct policy_handle user_handle;
-
-       names[0].string = username;
-
-       r1.in.domain_handle  = domain_handle;
-       r1.in.num_names      = 1;
-       r1.in.names          = names;
-       
-       printf("user account lookup '%s'\n", username);
-
-       status = dcerpc_samr_LookupNames(p, mem_ctx, &r1);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("LookupNames failed - %s\n", nt_errstr(status));
-               return False;
-       }
-
-       rid = r1.out.rids.ids[0];
-       
-       r2.in.domain_handle  = domain_handle;
-       r2.in.access_mask    = SEC_FLAG_MAXIMUM_ALLOWED;
-       r2.in.rid            = rid;
-       r2.out.user_handle   = &user_handle;
-
-       printf("opening user account\n");
-
-       status = dcerpc_samr_OpenUser(p, mem_ctx, &r2);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("OpenUser failed - %s\n", nt_errstr(status));
-               return False;
-       }
-
-       r3.in.user_handle  = &user_handle;
-       r3.out.user_handle = &user_handle;
-
-       printf("deleting user account\n");
-       
-       status = dcerpc_samr_DeleteUser(p, mem_ctx, &r3);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("DeleteUser failed - %s\n", nt_errstr(status));
-               return False;
-       }
-       
-       return True;
-}
-
-
-static BOOL test_createuser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
-                           struct policy_handle *handle, const char* user)
-{
-       NTSTATUS status;
-       struct policy_handle user_handle;
-       struct lsa_String username;
-       struct samr_CreateUser r1;
-       struct samr_Close r2;
-       uint32_t user_rid;
-
-       username.string = user;
-       
-       r1.in.domain_handle = handle;
-       r1.in.account_name = &username;
-       r1.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
-       r1.out.user_handle = &user_handle;
-       r1.out.rid = &user_rid;
-
-       printf("creating user '%s'\n", username.string);
-       
-       status = dcerpc_samr_CreateUser(p, mem_ctx, &r1);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("CreateUser failed - %s\n", nt_errstr(status));
-
-               if (NT_STATUS_EQUAL(status, NT_STATUS_USER_EXISTS)) {
-                       printf("User (%s) already exists - attempting to delete and recreate account again\n", user);
-                       if (!test_cleanup(p, mem_ctx, handle, TEST_USERNAME)) {
-                               return False;
-                       }
-
-                       printf("creating user account\n");
-                       
-                       status = dcerpc_samr_CreateUser(p, mem_ctx, &r1);
-                       if (!NT_STATUS_IS_OK(status)) {
-                               printf("CreateUser failed - %s\n", nt_errstr(status));
-                               return False;
-                       }
-                       return True;
-               }               
-               return False;
-       }
-
-       r2.in.handle = &user_handle;
-       r2.out.handle = &user_handle;
-       
-       printf("closing user '%s'\n", username.string);
-
-       status = dcerpc_samr_Close(p, mem_ctx, &r2);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("Close failed - %s\n", nt_errstr(status));
-               return False;
-       }
-
-       return True;
-}
-
-
-static BOOL test_usermod(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_usermod(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                         struct policy_handle *handle, int num_changes,
                         struct libnet_rpc_usermod *mod, char **username)
 {
@@ -356,7 +182,7 @@ static BOOL test_usermod(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                case acct_expiry:
                        continue_if_field_set(mod->in.change.acct_expiry);
                        now = timeval_add(&now, (random() % (31*24*60*60)), 0);
-                       mod->in.change.acct_expiry = talloc_memdup(mem_ctx, &now, sizeof(now));
+                       mod->in.change.acct_expiry = (struct timeval *)talloc_memdup(mem_ctx, &now, sizeof(now));
                        mod->in.change.fields |= USERMOD_FIELD_ACCT_EXPIRY;
                        fldname = "acct_expiry";
                        break;
@@ -380,14 +206,14 @@ static BOOL test_usermod(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = libnet_rpc_usermod(p, mem_ctx, mod);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Failed to call sync libnet_rpc_usermod - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 
-static BOOL test_userdel(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_userdel(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                         struct policy_handle *handle, const char *username)
 {
        NTSTATUS status;
@@ -399,10 +225,10 @@ static BOOL test_userdel(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = libnet_rpc_userdel(p, mem_ctx, &user);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Failed to call sync libnet_rpc_userdel - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 
@@ -412,7 +238,7 @@ static BOOL test_userdel(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                printf("'%s' field does not match\n", #fld); \
                printf("received: '%s'\n", i->fld.string); \
                printf("expected: '%s'\n", mod->in.change.fld); \
-               return False; \
+               return false; \
        }
 
 
@@ -421,9 +247,12 @@ static BOOL test_userdel(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                nttime_to_timeval(&t, i->fld); \
                if (timeval_compare(&t, mod->in.change.fld)) { \
                        printf("'%s' field does not match\n", #fld); \
-                       printf("received: '%s (+%ld us)'\n", timestring(mem_ctx, t.tv_sec), t.tv_usec); \
-                       printf("expected: '%s (+%ld us)'\n", timestring(mem_ctx, mod->in.change.fld->tv_sec), mod->in.change.fld->tv_usec); \
-                       return False; \
+                       printf("received: '%s (+%ld us)'\n", \
+                              timestring(mem_ctx, t.tv_sec), t.tv_usec); \
+                       printf("expected: '%s (+%ld us)'\n", \
+                              timestring(mem_ctx, mod->in.change.fld->tv_sec), \
+                              mod->in.change.fld->tv_usec); \
+                       return false; \
                } \
        }
 
@@ -433,11 +262,11 @@ static BOOL test_userdel(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                printf("'%s' field does not match\n", #fld); \
                printf("received: '%04x'\n", i->fld); \
                printf("expected: '%04x'\n", mod->in.change.fld); \
-               return False; \
+               return false; \
        }
 
 
-static BOOL test_compare(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_compare(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                         struct policy_handle *handle, struct libnet_rpc_usermod *mod,
                         const char *username)
 {
@@ -455,7 +284,7 @@ static BOOL test_compare(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = libnet_rpc_userinfo(p, mem_ctx, &info);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Failed to call sync libnet_rpc_userinfo - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        i = &info.out.info.info21;
@@ -471,19 +300,20 @@ static BOOL test_compare(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        CMP_TIME_FLD(acct_expiry, USERMOD_FIELD_ACCT_EXPIRY);
        CMP_NUM_FLD(acct_flags, USERMOD_FIELD_ACCT_FLAGS)
 
-       return True;
+       return true;
 }
 
 
-BOOL torture_useradd(struct torture_context *torture)
+bool torture_useradd(struct torture_context *torture)
 {
        NTSTATUS status;
        struct dcerpc_pipe *p;
        struct policy_handle h;
        struct lsa_String domain_name;
+       struct dom_sid2 sid;
        const char *name = TEST_USERNAME;
        TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
+       bool ret = true;
 
        mem_ctx = talloc_init("test_useradd");
 
@@ -492,37 +322,37 @@ BOOL torture_useradd(struct torture_context *torture)
                                        &ndr_table_samr);
        
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
-       domain_name.string = lp_workgroup();
-       if (!test_opendomain(p, mem_ctx, &h, &domain_name)) {
-               ret = False;
+       domain_name.string = lp_workgroup(global_loadparm);
+       if (!test_opendomain(p, mem_ctx, &h, &domain_name, &sid)) {
+               ret = false;
                goto done;
        }
 
        if (!test_useradd(p, mem_ctx, &h, name)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
-       if (!test_cleanup(p, mem_ctx, &h, name)) {
-               ret = False;
+       if (!test_user_cleanup(p, mem_ctx, &h, name)) {
+               ret = false;
                goto done;
        }
 
-       if (!test_opendomain(p, mem_ctx, &h, &domain_name)) {
-               ret = False;
+       if (!test_opendomain(p, mem_ctx, &h, &domain_name, &sid)) {
+               ret = false;
                goto done;
        }
 
        if (!test_useradd_async(p, mem_ctx, &h, name)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
-       if (!test_cleanup(p, mem_ctx, &h, name)) {
-               ret = False;
+       if (!test_user_cleanup(p, mem_ctx, &h, name)) {
+               ret = false;
                goto done;
        }
 
@@ -532,15 +362,17 @@ done:
 }
 
 
-BOOL torture_userdel(struct torture_context *torture)
+bool torture_userdel(struct torture_context *torture)
 {
        NTSTATUS status;
        struct dcerpc_pipe *p;
        struct policy_handle h;
        struct lsa_String domain_name;
+       struct dom_sid2 sid;
+       uint32_t rid;
        const char *name = TEST_USERNAME;
        TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
+       bool ret = true;
 
        mem_ctx = talloc_init("test_userdel");
 
@@ -549,22 +381,22 @@ BOOL torture_userdel(struct torture_context *torture)
                                        &ndr_table_samr);
        
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
-       domain_name.string = lp_workgroup();
-       if (!test_opendomain(p, mem_ctx, &h, &domain_name)) {
-               ret = False;
+       domain_name.string = lp_workgroup(global_loadparm);
+       if (!test_opendomain(p, mem_ctx, &h, &domain_name, &sid)) {
+               ret = false;
                goto done;
        }
 
-       if (!test_createuser(p, mem_ctx, &h, name)) {
-               ret = False;
+       if (!test_user_create(p, mem_ctx, &h, name, &rid)) {
+               ret = false;
                goto done;
        }
        
                if (!test_userdel(p, mem_ctx, &h, name)) {
-               ret = False;
+               ret = false;
                goto done;
        }
        
@@ -574,16 +406,18 @@ done:
 }
 
 
-BOOL torture_usermod(struct torture_context *torture)
+bool torture_usermod(struct torture_context *torture)
 {
        NTSTATUS status;
        struct dcerpc_pipe *p;
        struct policy_handle h;
        struct lsa_String domain_name;
+       struct dom_sid2 sid;
+       uint32_t rid;
        int i;
        char *name;
        TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
+       bool ret = true;
 
        mem_ctx = talloc_init("test_userdel");
 
@@ -592,20 +426,20 @@ BOOL torture_usermod(struct torture_context *torture)
                                        &ndr_table_samr);
        
        if (!NT_STATUS_IS_OK(status)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
-       domain_name.string = lp_workgroup();
+       domain_name.string = lp_workgroup(global_loadparm);
        name = talloc_strdup(mem_ctx, TEST_USERNAME);
 
-       if (!test_opendomain(p, mem_ctx, &h, &domain_name)) {
-               ret = False;
+       if (!test_opendomain(p, mem_ctx, &h, &domain_name, &sid)) {
+               ret = false;
                goto done;
        }
 
-       if (!test_createuser(p, mem_ctx, &h, name)) {
-               ret = False;
+       if (!test_user_create(p, mem_ctx, &h, name, &rid)) {
+               ret = false;
                goto done;
        }
        
@@ -613,19 +447,19 @@ BOOL torture_usermod(struct torture_context *torture)
                struct libnet_rpc_usermod m;
 
                if (!test_usermod(p, mem_ctx, &h, i, &m, &name)) {
-                       ret = False;
+                       ret = false;
                        goto cleanup;
                }
 
                if (!test_compare(p, mem_ctx, &h, &m, name)) {
-                       ret = False;
+                       ret = false;
                        goto cleanup;
                }
        }
        
 cleanup:       
-       if (!test_cleanup(p, mem_ctx, &h, name)) {
-               ret = False;
+       if (!test_user_cleanup(p, mem_ctx, &h, name)) {
+               ret = false;
                goto done;
        }
 
diff --git a/source/torture/libnet/utils.c b/source/torture/libnet/utils.c
new file mode 100644 (file)
index 0000000..47bb931
--- /dev/null
@@ -0,0 +1,313 @@
+/* 
+   Unix SMB/CIFS implementation.
+   Test suite for libnet calls.
+
+   Copyright (C) Rafal Szczesniak 2007
+   
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+   
+   This program 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 General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+/*
+ * These are more general use functions shared among the tests.
+ */
+
+#include "includes.h"
+#include "torture/rpc/rpc.h"
+#include "libnet/libnet.h"
+#include "librpc/gen_ndr/ndr_samr_c.h"
+#include "param/param.h"
+
+
+bool test_opendomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+                    struct policy_handle *handle, struct lsa_String *domname,
+                    struct dom_sid2 *sid)
+{
+       NTSTATUS status;
+       struct policy_handle h, domain_handle;
+       struct samr_Connect r1;
+       struct samr_LookupDomain r2;
+       struct samr_OpenDomain r3;
+       
+       printf("connecting\n");
+       
+       r1.in.system_name = 0;
+       r1.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
+       r1.out.connect_handle = &h;
+       
+       status = dcerpc_samr_Connect(p, mem_ctx, &r1);
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("Connect failed - %s\n", nt_errstr(status));
+               return false;
+       }
+       
+       r2.in.connect_handle = &h;
+       r2.in.domain_name = domname;
+
+       printf("domain lookup on %s\n", domname->string);
+
+       status = dcerpc_samr_LookupDomain(p, mem_ctx, &r2);
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("LookupDomain failed - %s\n", nt_errstr(status));
+               return false;
+       }
+
+       r3.in.connect_handle = &h;
+       r3.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
+       r3.in.sid = r2.out.sid;
+       r3.out.domain_handle = &domain_handle;
+
+       printf("opening domain\n");
+
+       status = dcerpc_samr_OpenDomain(p, mem_ctx, &r3);
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("OpenDomain failed - %s\n", nt_errstr(status));
+               return false;
+       } else {
+               *handle = domain_handle;
+       }
+
+       *sid = *r2.out.sid;
+       return true;
+}
+
+
+bool test_user_cleanup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+                      struct policy_handle *domain_handle,
+                      const char *name)
+{
+       NTSTATUS status;
+       struct samr_LookupNames r1;
+       struct samr_OpenUser r2;
+       struct samr_DeleteUser r3;
+       struct lsa_String names[2];
+       uint32_t rid;
+       struct policy_handle user_handle;
+
+       names[0].string = name;
+
+       r1.in.domain_handle  = domain_handle;
+       r1.in.num_names      = 1;
+       r1.in.names          = names;
+       
+       printf("user account lookup '%s'\n", name);
+
+       status = dcerpc_samr_LookupNames(p, mem_ctx, &r1);
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("LookupNames failed - %s\n", nt_errstr(status));
+               return false;
+       }
+
+       rid = r1.out.rids.ids[0];
+       
+       r2.in.domain_handle  = domain_handle;
+       r2.in.access_mask    = SEC_FLAG_MAXIMUM_ALLOWED;
+       r2.in.rid            = rid;
+       r2.out.user_handle   = &user_handle;
+
+       printf("opening user account\n");
+
+       status = dcerpc_samr_OpenUser(p, mem_ctx, &r2);
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("OpenUser failed - %s\n", nt_errstr(status));
+               return false;
+       }
+
+       r3.in.user_handle  = &user_handle;
+       r3.out.user_handle = &user_handle;
+
+       printf("deleting user account\n");
+       
+       status = dcerpc_samr_DeleteUser(p, mem_ctx, &r3);
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("DeleteUser failed - %s\n", nt_errstr(status));
+               return false;
+       }
+       
+       return true;
+}
+
+
+bool test_user_create(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+                     struct policy_handle *handle, const char *name,
+                     uint32_t *rid)
+{
+       NTSTATUS status;
+       struct lsa_String username;
+       struct samr_CreateUser r;
+       struct policy_handle user_handle;
+       
+       username.string = name;
+       
+       r.in.domain_handle = handle;
+       r.in.account_name  = &username;
+       r.in.access_mask   = SEC_FLAG_MAXIMUM_ALLOWED;
+       r.out.user_handle  = &user_handle;
+       r.out.rid          = rid;
+
+       printf("creating user account %s\n", name);
+
+       status = dcerpc_samr_CreateUser(p, mem_ctx, &r);
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("CreateUser failed - %s\n", nt_errstr(status));
+
+               if (NT_STATUS_EQUAL(status, NT_STATUS_USER_EXISTS)) {
+                       printf("User (%s) already exists - attempting to delete and recreate account again\n", name);
+                       if (!test_user_cleanup(p, mem_ctx, handle, name)) {
+                               return false;
+                       }
+
+                       printf("creating user account\n");
+                       
+                       status = dcerpc_samr_CreateUser(p, mem_ctx, &r);
+                       if (!NT_STATUS_IS_OK(status)) {
+                               printf("CreateUser failed - %s\n", nt_errstr(status));
+                               return false;
+                       }
+                       return true;
+               }
+               return false;
+       }
+
+       return true;
+}
+
+
+bool test_group_cleanup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+                       struct policy_handle *domain_handle,
+                       const char *name)
+{
+       NTSTATUS status;
+       struct samr_LookupNames r1;
+       struct samr_OpenGroup r2;
+       struct samr_DeleteDomainGroup r3;
+       struct lsa_String names[2];
+       uint32_t rid;
+       struct policy_handle group_handle;
+
+       names[0].string = name;
+
+       r1.in.domain_handle  = domain_handle;
+       r1.in.num_names      = 1;
+       r1.in.names          = names;
+       
+       printf("group account lookup '%s'\n", name);
+
+       status = dcerpc_samr_LookupNames(p, mem_ctx, &r1);
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("LookupNames failed - %s\n", nt_errstr(status));
+               return false;
+       }
+
+       rid = r1.out.rids.ids[0];
+       
+       r2.in.domain_handle  = domain_handle;
+       r2.in.access_mask    = SEC_FLAG_MAXIMUM_ALLOWED;
+       r2.in.rid            = rid;
+       r2.out.group_handle  = &group_handle;
+
+       printf("opening group account\n");
+
+       status = dcerpc_samr_OpenGroup(p, mem_ctx, &r2);
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("OpenGroup failed - %s\n", nt_errstr(status));
+               return false;
+       }
+
+       r3.in.group_handle  = &group_handle;
+       r3.out.group_handle = &group_handle;
+
+       printf("deleting group account\n");
+       
+       status = dcerpc_samr_DeleteDomainGroup(p, mem_ctx, &r3);
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("DeleteGroup failed - %s\n", nt_errstr(status));
+               return false;
+       }
+       
+       return true;
+}
+
+
+bool test_group_create(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+                      struct policy_handle *handle, const char *name,
+                      uint32_t *rid)
+{
+       NTSTATUS status;
+       struct lsa_String groupname;
+       struct samr_CreateDomainGroup r;
+       struct policy_handle group_handle;
+       
+       groupname.string = name;
+       
+       r.in.domain_handle  = handle;
+       r.in.name           = &groupname;
+       r.in.access_mask    = SEC_FLAG_MAXIMUM_ALLOWED;
+       r.out.group_handle  = &group_handle;
+       r.out.rid           = rid;
+
+       printf("creating group account %s\n", name);
+
+       status = dcerpc_samr_CreateDomainGroup(p, mem_ctx, &r);
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("CreateGroup failed - %s\n", nt_errstr(status));
+
+               if (NT_STATUS_EQUAL(status, NT_STATUS_USER_EXISTS)) {
+                       printf("Group (%s) already exists - attempting to delete and recreate account again\n", name);
+                       if (!test_group_cleanup(p, mem_ctx, handle, name)) {
+                               return false;
+                       }
+
+                       printf("creating group account\n");
+                       
+                       status = dcerpc_samr_CreateDomainGroup(p, mem_ctx, &r);
+                       if (!NT_STATUS_IS_OK(status)) {
+                               printf("CreateGroup failed - %s\n", nt_errstr(status));
+                               return false;
+                       }
+                       return true;
+               }
+               return false;
+       }
+
+       return true;
+}
+
+
+void msg_handler(struct monitor_msg *m)
+{
+       struct msg_rpc_open_user *msg_open;
+       struct msg_rpc_query_user *msg_query;
+       struct msg_rpc_close_user *msg_close;
+       struct msg_rpc_create_user *msg_create;
+
+       switch (m->type) {
+       case mon_SamrOpenUser:
+               msg_open = (struct msg_rpc_open_user*)m->data;
+               printf("monitor_msg: user opened (rid=%d, access_mask=0x%08x)\n",
+                      msg_open->rid, msg_open->access_mask);
+               break;
+       case mon_SamrQueryUser:
+               msg_query = (struct msg_rpc_query_user*)m->data;
+               printf("monitor_msg: user queried (level=%d)\n", msg_query->level);
+               break;
+       case mon_SamrCloseUser:
+               msg_close = (struct msg_rpc_close_user*)m->data;
+               printf("monitor_msg: user closed (rid=%d)\n", msg_close->rid);
+               break;
+       case mon_SamrCreateUser:
+               msg_create = (struct msg_rpc_create_user*)m->data;
+               printf("monitor_msg: user created (rid=%d)\n", msg_create->rid);
+               break;
+       }
+}
diff --git a/source/torture/libnet/utils.h b/source/torture/libnet/utils.h
new file mode 100644 (file)
index 0000000..ff94ec4
--- /dev/null
@@ -0,0 +1,42 @@
+/* 
+   Unix SMB/CIFS implementation.
+   Test suite for libnet calls.
+
+   Copyright (C) Rafal Szczesniak 2007
+   
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+   
+   This program 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 General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+
+bool test_opendomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+                    struct policy_handle *handle, struct lsa_String *domname,
+                    struct dom_sid2 *sid);
+
+bool test_user_create(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+                     struct policy_handle *handle, const char *name,
+                     uint32_t *rid);
+
+bool test_user_cleanup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+                      struct policy_handle *domain_handle,
+                      const char *name);
+
+bool test_group_create(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+                      struct policy_handle *handle, const char *name,
+                      uint32_t *rid);
+
+bool test_group_cleanup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+                       struct policy_handle *domain_handle,
+                       const char *name);
+
+void msg_handler(struct monitor_msg *m);
index 1364028ab7e1c7f124282cefb66a71eed606d52d..e3ea9e44ef44bd85b3f615079ec008596bee9131 100644 (file)
@@ -28,6 +28,7 @@ OBJ_FILES = \
                ../../lib/registry/tests/registry.o \
                resolve.o \
                ../../lib/util/tests/strlist.o \
+               ../../lib/util/tests/str.o \
                ../../lib/util/tests/file.o \
                ../../lib/util/tests/genrand.o \
                ../../lib/compression/testsuite.o \
index 2a9eb49d010a288f79a7b79e64fde98fac03ced4..34458123650a10b6160364a33c2eceb3a76117b7 100644 (file)
 #include "lib/ldb/include/ldb_errors.h"
 #include "lib/db_wrap.h"
 #include "torture/torture.h"
+#include "param/param.h"
 
 float tdb_speed;
 
-static BOOL tdb_add_record(struct tdb_wrap *tdbw, const char *fmt1, const char *fmt2, int i)
+static bool tdb_add_record(struct tdb_wrap *tdbw, const char *fmt1, 
+                          const char *fmt2, int i)
 {
        TDB_DATA key, data;
        int ret;
@@ -48,7 +50,7 @@ static BOOL tdb_add_record(struct tdb_wrap *tdbw, const char *fmt1, const char *
 /*
   test tdb speed
 */
-static BOOL test_tdb_speed(struct torture_context *torture, const void *_data)
+static bool test_tdb_speed(struct torture_context *torture, const void *_data)
 {
        struct timeval tv;
        struct tdb_wrap *tdbw;
@@ -118,32 +120,32 @@ static BOOL test_tdb_speed(struct torture_context *torture, const void *_data)
 
        unlink("test.tdb");
        talloc_free(tmp_ctx);
-       return True;
+       return true;
 
 failed:
        unlink("test.tdb");
        talloc_free(tmp_ctx);
-       return False;
+       return false;
 }
 
 
-static BOOL ldb_add_record(struct ldb_context *ldb, unsigned rid)
+static bool ldb_add_record(struct ldb_context *ldb, unsigned rid)
 {
        struct ldb_message *msg;        
        int ret;
 
        msg = ldb_msg_new(ldb);
        if (msg == NULL) {
-               return False;
+               return false;
        }
 
        msg->dn = ldb_dn_new_fmt(msg, ldb, "SID=S-1-5-21-53173311-3623041448-2049097239-%u", rid);
        if (msg->dn == NULL) {
-               return False;
+               return false;
        }
 
        if (ldb_msg_add_fmt(msg, "UID", "%u", rid) != 0) {
-               return False;
+               return false;
        }
 
        ret = ldb_add(ldb, msg);
@@ -157,7 +159,7 @@ static BOOL ldb_add_record(struct ldb_context *ldb, unsigned rid)
 /*
   test ldb speed
 */
-static BOOL test_ldb_speed(struct torture_context *torture, const void *_data)
+static bool test_ldb_speed(struct torture_context *torture, const void *_data)
 {
        struct timeval tv;
        struct ldb_context *ldb;
@@ -173,7 +175,7 @@ static BOOL test_ldb_speed(struct torture_context *torture, const void *_data)
 
        torture_comment(torture, "Testing ldb speed for sidmap\n");
 
-       ldb = ldb_wrap_connect(tmp_ctx, "tdb://test.ldb", 
+       ldb = ldb_wrap_connect(tmp_ctx, global_loadparm, "tdb://test.ldb", 
                                NULL, NULL, LDB_FLG_NOSYNC, NULL);
        if (!ldb) {
                unlink("./test.ldb");
@@ -239,12 +241,12 @@ static BOOL test_ldb_speed(struct torture_context *torture, const void *_data)
 
        unlink("./test.ldb");
        talloc_free(tmp_ctx);
-       return True;
+       return true;
 
 failed:
        unlink("./test.ldb");
        talloc_free(tmp_ctx);
-       return False;
+       return false;
 }
 
 struct torture_suite *torture_local_dbspeed(TALLOC_CTX *mem_ctx)
index e2c7de1c723252a60d89289980aa1cb56d113e12..46acf5938e527d0bfe464c11fb8ebaebd36f27c7 100644 (file)
@@ -29,7 +29,7 @@ static int fde_count;
 static void fde_handler(struct event_context *ev_ctx, struct fd_event *f, 
                        uint16_t flags, void *private)
 {
-       int *fd = private;
+       int *fd = (int *)private;
        char c;
 #ifdef SA_SIGINFO
        kill(getpid(), SIGUSR1);
@@ -43,14 +43,14 @@ static void fde_handler(struct event_context *ev_ctx, struct fd_event *f,
 static void finished_handler(struct event_context *ev_ctx, struct timed_event *te,
                             struct timeval tval, void *private)
 {
-       int *finished = private;
+       int *finished = (int *)private;
        (*finished) = 1;
 }
 
 static void count_handler(struct event_context *ev_ctx, struct signal_event *te,
                          int signum, int count, void *info, void *private)
 {
-       int *countp = private;
+       int *countp = (int *)private;
        (*countp) += count;
 }
 
index c543aa7c8fe93ab348722d853f5b50bc76182466..259769d60f286b96bae5f941952cb69b8c76c962 100644 (file)
@@ -25,6 +25,7 @@
 #include "system/iconv.h"
 #include "system/time.h"
 #include "libcli/raw/libcliraw.h"
+#include "param/param.h"
 #include "torture/util.h"
 
 #if HAVE_NATIVE_ICONV
@@ -33,7 +34,7 @@ static bool iconv_untestable(struct torture_context *tctx)
 {
        iconv_t cd;
 
-       if (!lp_parm_bool(-1, "iconv", "native", true))
+       if (!lp_parm_bool(global_loadparm, NULL, "iconv", "native", true))
                torture_skip(tctx, "system iconv disabled - skipping test");
 
        cd = iconv_open("UTF-16LE", "UCS-4LE");
@@ -313,10 +314,10 @@ static bool test_codepoint(struct torture_context *tctx, unsigned int codepoint)
 
 static bool test_next_codepoint(struct torture_context *tctx)
 {
+       unsigned int codepoint;
        if (iconv_untestable(tctx))
                return true;
 
-       unsigned int codepoint;
        for (codepoint=0;codepoint<(1<<20);codepoint++) {
                if (!test_codepoint(tctx, codepoint))
                        return false;
@@ -339,7 +340,7 @@ static bool test_first_1m(struct torture_context *tctx)
                }
 
                if (codepoint % 1000 == 0) {
-                       if (torture_setting_bool(tctx, "progress", True)) {
+                       if (torture_setting_bool(tctx, "progress", true)) {
                                torture_comment(tctx, "codepoint=%u   \r", codepoint);
                                fflush(stdout);
                        }
@@ -402,13 +403,13 @@ struct torture_suite *torture_local_iconv(TALLOC_CTX *mem_ctx)
        struct torture_suite *suite = torture_suite_create(mem_ctx, "ICONV");
 
        torture_suite_add_simple_test(suite, "next_codepoint()",
-                                                                  test_next_codepoint);
+                                     test_next_codepoint);
 
        torture_suite_add_simple_test(suite, "first 1M codepoints",
-                                                                  test_first_1m);
+                                     test_first_1m);
 
        torture_suite_add_simple_test(suite, "5M random UTF-16LE sequences",
-                                                                  test_random_5m);
+                                     test_random_5m);
        return suite;
 }
 
index fa6e3e7ade2c563811e2318eb44d85be1977e63e..aae6b4882ee54ccf52c29b5ed784596444021176 100644 (file)
 #include "librpc/gen_ndr/ndr_echo.h"
 #include "torture/torture.h"
 #include "cluster/cluster.h"
+#include "param/param.h"
 
 const uint32_t MSG_ID1 = 1, MSG_ID2 = 2;
 
-static BOOL test_debug;
+static bool test_debug;
 
 struct irpc_test_data
 {
@@ -71,7 +72,7 @@ static void deferred_echodata(struct event_context *ev, struct timed_event *te,
 */
 static NTSTATUS irpc_EchoData(struct irpc_message *irpc, struct echo_EchoData *r)
 {
-       irpc->defer_reply = True;
+       irpc->defer_reply = true;
        event_add_timed(irpc->ev, irpc, timeval_zero(), deferred_echodata, irpc);
        return NT_STATUS_OK;
 }
@@ -85,16 +86,16 @@ static bool test_addone(struct torture_context *test, const void *_data,
 {
        struct echo_AddOne r;
        NTSTATUS status;
-       const struct irpc_test_data *data = _data;
+       const struct irpc_test_data *data = (const struct irpc_test_data *)_data;
        uint32_t value = (uint32_t)_value;
 
        /* make the call */
        r.in.in_data = value;
 
-       test_debug = True;
+       test_debug = true;
        status = IRPC_CALL(data->msg_ctx1, cluster_id(MSG_ID2), 
                           rpcecho, ECHO_ADDONE, &r, test);
-       test_debug = False;
+       test_debug = false;
        torture_assert_ntstatus_ok(test, status, "AddOne failed");
 
        /* check the answer */
@@ -114,7 +115,7 @@ static bool test_echodata(struct torture_context *tctx,
 {
        struct echo_EchoData r;
        NTSTATUS status;
-       const struct irpc_test_data *data = tcase_data;
+       const struct irpc_test_data *data = (const struct irpc_test_data *)tcase_data;
        TALLOC_CTX *mem_ctx = tctx;
 
        /* make the call */
@@ -143,7 +144,7 @@ static bool test_echodata(struct torture_context *tctx,
 
 static void irpc_callback(struct irpc_request *irpc)
 {
-       struct echo_AddOne *r = irpc->r;
+       struct echo_AddOne *r = (struct echo_AddOne *)irpc->r;
        int *pong_count = (int *)irpc->async.private;
        NTSTATUS status = irpc_call_recv(irpc);
        if (!NT_STATUS_IS_OK(status)) {
@@ -165,7 +166,7 @@ static bool test_speed(struct torture_context *tctx,
 {
        int ping_count = 0;
        int pong_count = 0;
-       const struct irpc_test_data *data = tcase_data;
+       const struct irpc_test_data *data = (const struct irpc_test_data *)tcase_data;
        struct timeval tv;
        struct echo_AddOne r;
        TALLOC_CTX *mem_ctx = tctx;
@@ -208,22 +209,24 @@ static bool test_speed(struct torture_context *tctx,
 }
 
 
-static BOOL irpc_setup(struct torture_context *tctx, void **_data)
+static bool irpc_setup(struct torture_context *tctx, void **_data)
 {
        struct irpc_test_data *data;
 
        *_data = data = talloc(tctx, struct irpc_test_data);
 
-       lp_set_cmdline("lock dir", "lockdir.tmp");
+       lp_set_cmdline(global_loadparm, "pid directory", "piddir.tmp");
 
        data->ev = tctx->ev;
        torture_assert(tctx, data->msg_ctx1 = 
                       messaging_init(tctx, 
+                                     lp_messaging_path(tctx, global_loadparm), 
                                      cluster_id(MSG_ID1), data->ev),
                       "Failed to init first messaging context");
 
        torture_assert(tctx, data->msg_ctx2 = 
                       messaging_init(tctx, 
+                                     lp_messaging_path(tctx, global_loadparm),
                                      cluster_id(MSG_ID2), data->ev),
                       "Failed to init second messaging context");
 
@@ -234,7 +237,7 @@ static BOOL irpc_setup(struct torture_context *tctx, void **_data)
        IRPC_REGISTER(data->msg_ctx1, rpcecho, ECHO_ECHODATA, irpc_EchoData, NULL);
        IRPC_REGISTER(data->msg_ctx2, rpcecho, ECHO_ECHODATA, irpc_EchoData, NULL);
 
-       return True;
+       return true;
 }
 
 struct torture_suite *torture_local_irpc(TALLOC_CTX *mem_ctx)
index 90c3c0d3d9ee88fdca365d32bb3b0d09f16a4ec5..a52f5d2f7d5d2ab8a74a36ea968ec35af1f8dc05 100644 (file)
@@ -33,6 +33,7 @@
        torture_local_irpc, 
        torture_local_util_strlist, 
        torture_local_util_file, 
+       torture_local_util_str, 
        torture_local_idtree, 
        torture_local_genrand, 
        torture_local_iconv,
index 724e2a54c7d2649dd39310e4fe9c33d6aa18847a..bf2b83a0e439e0d7f914812415aa246238781034 100644 (file)
@@ -24,6 +24,7 @@
 #include "lib/messaging/irpc.h"
 #include "torture/torture.h"
 #include "cluster/cluster.h"
+#include "param/param.h"
 
 
 static uint32_t msg_pong;
@@ -67,20 +68,25 @@ static bool test_ping_speed(struct torture_context *tctx)
        uint32_t msg_ping, msg_exit;
        TALLOC_CTX *mem_ctx = tctx;
 
-       lp_set_cmdline("pid directory", "piddir.tmp");
+       lp_set_cmdline(global_loadparm, "pid directory", "piddir.tmp");
 
        ev = tctx->ev;
 
-       msg_server_ctx = messaging_init(mem_ctx, cluster_id(1), ev);
+       msg_server_ctx = messaging_init(mem_ctx, 
+                                       lp_messaging_path(tctx, global_loadparm), 
+                                       cluster_id(1), ev);
        
        torture_assert(tctx, msg_server_ctx != NULL, "Failed to init ping messaging context");
                
        messaging_register_tmp(msg_server_ctx, NULL, ping_message, &msg_ping);
        messaging_register_tmp(msg_server_ctx, mem_ctx, exit_message, &msg_exit);
 
-       msg_client_ctx = messaging_init(mem_ctx, cluster_id(2), ev);
+       msg_client_ctx = messaging_init(mem_ctx, 
+                                       lp_messaging_path(mem_ctx, global_loadparm), 
+                                       cluster_id(2), ev);
 
-       torture_assert(tctx, msg_client_ctx != NULL, "msg_client_ctx messaging_init() failed");
+       torture_assert(tctx, msg_client_ctx != NULL, 
+                      "msg_client_ctx messaging_init() failed");
 
        messaging_register_tmp(msg_client_ctx, &pong_count, pong_message, &msg_pong);
 
index ac10627783dae50f46b0af952070b63e7b8d5da3..3e6382309e2ea27e0d0fb6e32f848ea3f8f8182a 100644 (file)
@@ -33,7 +33,7 @@ static bool test_sddl(struct torture_context *tctx,
 {
        struct security_descriptor *sd, *sd2;
        struct dom_sid *domain;
-       const char *sddl = test_data;
+       const char *sddl = (const char *)test_data;
        const char *sddl2;
        TALLOC_CTX *mem_ctx = tctx;
 
index 528f34f8617426a7f13fe276195db77312addb58..de93e3c591a39c9fd866273cc8a88444d38ccbd7 100644 (file)
@@ -27,7 +27,7 @@ static bool test_list_empty(struct torture_context *tctx,
                            const void *tcase_data, 
                            const void *test_data)
 {
-       struct share_context *ctx = discard_const(tcase_data);
+       struct share_context *ctx = (struct share_context *)discard_const(tcase_data);
        int count;
        const char **names;
 
@@ -41,7 +41,7 @@ static bool test_create(struct torture_context *tctx,
                        const void *tcase_data, 
                        const void *test_data)
 {
-       struct share_context *ctx = discard_const(tcase_data);
+       struct share_context *ctx = (struct share_context *)discard_const(tcase_data);
        int count;
        const char **names;
        int i;
@@ -79,7 +79,7 @@ static bool test_create_invalid(struct torture_context *tctx,
                                const void *tcase_data, 
                                const void *test_data)
 {
-       struct share_context *ctx = discard_const(tcase_data);
+       struct share_context *ctx = (struct share_context *)discard_const(tcase_data);
        NTSTATUS status;
 
        status = share_create(ctx, "bla", NULL, 0);
@@ -102,7 +102,7 @@ static bool test_share_remove_invalid(struct torture_context *tctx,
                                      const void *tcase_data, 
                                      const void *test_data)
 {
-       struct share_context *ctx = discard_const(tcase_data);
+       struct share_context *ctx = (struct share_context *)discard_const(tcase_data);
        NTSTATUS status;
 
        status = share_remove(ctx, "nonexistant");
@@ -121,7 +121,7 @@ static bool test_share_remove(struct torture_context *tctx,
                              const void *tcase_data, 
                              const void *test_data)
 {
-       struct share_context *ctx = discard_const(tcase_data);
+       struct share_context *ctx = (struct share_context *)discard_const(tcase_data);
        struct share_info inf[] = { 
                { SHARE_INFO_STRING, SHARE_TYPE, discard_const_p(void *, "IPC$") },
                { SHARE_INFO_STRING, SHARE_PATH, discard_const_p(void *, "/tmp/bla") }
@@ -144,7 +144,7 @@ static bool test_double_create(struct torture_context *tctx,
                               const void *tcase_data, 
                               const void *test_data)
 {
-       struct share_context *ctx = discard_const(tcase_data);
+       struct share_context *ctx = (struct share_context *)discard_const(tcase_data);
        struct share_info inf[] = { 
                { SHARE_INFO_STRING, SHARE_TYPE, discard_const_p(void *, "IPC$") },
                { SHARE_INFO_STRING, SHARE_PATH, discard_const_p(void *, "/tmp/bla") }
@@ -175,17 +175,17 @@ static void tcase_add_share_tests(struct torture_tcase *tcase)
        torture_tcase_add_test(tcase, "share_double_create", test_double_create, NULL);
 }
 
-static BOOL setup_ldb(struct torture_context *tctx, void **data)
+static bool setup_ldb(struct torture_context *tctx, void **data)
 {
        return NT_STATUS_IS_OK(share_get_context_by_name(tctx, "ldb", (struct share_context **)data));
 }
 
-static BOOL setup_classic(struct torture_context *tctx, void **data)
+static bool setup_classic(struct torture_context *tctx, void **data)
 {
        return NT_STATUS_IS_OK(share_get_context_by_name(tctx, "classic", (struct share_context **)data));
 }
 
-static BOOL teardown(struct torture_context *tctx, void *data)
+static bool teardown(struct torture_context *tctx, void *data)
 {
        talloc_free(data);
        return true;
index ba0ba344d9b3b3264a7423da0a08fa2c800d5493..24b960696104c7a4407a0803cc662dd5dec65606 100644 (file)
 #include "auth/credentials/credentials.h"
 #include "auth/gensec/gensec.h"
 #include "libcli/libcli.h"
+#include "param/param.h"
+#include "dynconfig.h"
 
 static int numops = 1000;
-static BOOL showall;
-static BOOL analyze;
-static BOOL hide_unlock_fails;
-static BOOL use_oplocks;
+static bool showall;
+static bool analyze;
+static bool hide_unlock_fails;
+static bool use_oplocks;
 static uint_t lock_range = 100;
 static uint_t lock_base = 0;
 static uint_t min_length = 0;
-static BOOL exact_error_codes;
-static BOOL zero_zero;
+static bool exact_error_codes;
+static bool zero_zero;
 
 #define FILENAME "\\locktest.dat"
 
@@ -122,7 +124,7 @@ static struct smbcli_state *connect_one(char *share, int snum, int conn)
                char **unc_list = NULL;
                int num_unc_names;
                const char *p;
-               p = lp_parm_string(-1, "torture", "unclist");
+               p = lp_parm_string(global_loadparm, NULL, "torture", "unclist");
                if (p) {
                        char *h, *s;
                        unc_list = file_lines_load(p, &num_unc_names, NULL);
@@ -201,7 +203,7 @@ static bool test_one(struct smbcli_state *cli[NSERVERS][NCONNECTIONS],
        uint64_t len = rec->len;
        enum brl_type op = rec->lock_type;
        int server;
-       BOOL ret[NSERVERS];
+       bool ret[NSERVERS];
        NTSTATUS status[NSERVERS];
 
        switch (rec->lock_op) {
@@ -251,7 +253,7 @@ static bool test_one(struct smbcli_state *cli[NSERVERS][NCONNECTIONS],
                               op==READ_LOCK?"READ_LOCK":"WRITE_LOCK",
                               nt_errstr(status[0]), nt_errstr(status[1]));
                }
-               if (!NT_STATUS_EQUAL(status[0],status[1])) return False;
+               if (!NT_STATUS_EQUAL(status[0],status[1])) return false;
                break;
                
        case OP_UNLOCK:
@@ -293,7 +295,7 @@ static bool test_one(struct smbcli_state *cli[NSERVERS][NCONNECTIONS],
                               nt_errstr(status[0]), nt_errstr(status[1]));
                }
                if (!hide_unlock_fails && !NT_STATUS_EQUAL(status[0],status[1])) 
-                       return False;
+                       return false;
                break;
 
        case OP_REOPEN:
@@ -308,7 +310,7 @@ static bool test_one(struct smbcli_state *cli[NSERVERS][NCONNECTIONS],
                                                         DENY_NONE);
                        if (fnum[server][conn][f] == -1) {
                                printf("failed to reopen on share%d\n", server);
-                               return False;
+                               return false;
                        }
                }
                if (showall) {
@@ -318,7 +320,7 @@ static bool test_one(struct smbcli_state *cli[NSERVERS][NCONNECTIONS],
                break;
        }
 
-       return True;
+       return true;
 }
 
 static void close_files(struct smbcli_state *cli[NSERVERS][NCONNECTIONS], 
@@ -425,7 +427,7 @@ static void test_locks(char *share[NSERVERS])
                        } else {
                                recorded[n].lock_op = OP_REOPEN;
                        }
-                       recorded[n].needed = True;
+                       recorded[n].needed = true;
                        if (!zero_zero && recorded[n].start==0 && recorded[n].len==0) {
                                recorded[n].len = 1;
                        }
@@ -454,7 +456,7 @@ static void test_locks(char *share[NSERVERS])
                        int m, j;
                        printf("excluding %d-%d\n", i, i+skip-1);
                        for (j=i;j<i+skip;j++) {
-                               recorded[j].needed = False;
+                               recorded[j].needed = false;
                        }
 
                        close_files(cli, fnum);
@@ -463,7 +465,7 @@ static void test_locks(char *share[NSERVERS])
                        m = retest(cli, fnum, n);
                        if (m == n) {
                                for (j=i;j<i+skip;j++) {
-                                       recorded[j].needed = True;
+                                       recorded[j].needed = true;
                                }
                        } else {
                                if (i+(skip-1) < m) {
@@ -487,7 +489,7 @@ static void test_locks(char *share[NSERVERS])
        close_files(cli, fnum);
        reconnect(cli, fnum, share);
        open_files(cli, fnum);
-       showall = True;
+       showall = true;
        n1 = retest(cli, fnum, n);
        if (n1 != n-1) {
                printf("ERROR - inconsistent result (%u %u)\n", n1, n);
@@ -559,7 +561,7 @@ static void usage(void)
        argc -= NSERVERS;
        argv += NSERVERS;
 
-       lp_load();
+       lp_load(dyn_CONFIGFILE);
 
        servers[0] = cli_credentials_init(talloc_autofree_context());
        servers[1] = cli_credentials_init(talloc_autofree_context());
@@ -592,31 +594,31 @@ static void usage(void)
                        seed = atoi(optarg);
                        break;
                case 'u':
-                       hide_unlock_fails = True;
+                       hide_unlock_fails = true;
                        break;
                case 'o':
                        numops = atoi(optarg);
                        break;
                case 'O':
-                       use_oplocks = True;
+                       use_oplocks = true;
                        break;
                case 'a':
-                       showall = True;
+                       showall = true;
                        break;
                case 'A':
-                       analyze = True;
+                       analyze = true;
                        break;
                case 'Z':
-                       zero_zero = True;
+                       zero_zero = true;
                        break;
                case 'E':
-                       exact_error_codes = True;
+                       exact_error_codes = true;
                        break;
                case 'l':
-                       lp_set_cmdline("torture:unclist", optarg);
+                       lp_set_cmdline(global_loadparm, "torture:unclist", optarg);
                        break;
                case 'W':
-                       lp_set_cmdline("workgroup", optarg);
+                       lp_set_cmdline(global_loadparm, "workgroup", optarg);
                        break;
                case 'h':
                        usage();
index 9d4f0260b17c50464a3ea5f9799ec2a589681d58..55edd4aa172a79977bb3761f3696b6d5595d71ea 100644 (file)
@@ -24,10 +24,10 @@ static fstring password;
 static fstring username;
 static int got_pass;
 static int numops = 1000;
-static BOOL showall;
-static BOOL analyze;
-static BOOL hide_unlock_fails;
-static BOOL use_oplocks;
+static bool showall;
+static bool analyze;
+static bool hide_unlock_fails;
+static bool use_oplocks;
 
 #define FILENAME "\\locktest.dat"
 #define LOCKRANGE 100
@@ -77,7 +77,7 @@ static int try_open(struct smbcli_state *c, char *nfs, int fstype, const char *f
        return -1;
 }
 
-static BOOL try_close(struct smbcli_state *c, int fstype, int fd)
+static bool try_close(struct smbcli_state *c, int fstype, int fd)
 {
        switch (fstype) {
        case FSTYPE_SMB:
@@ -87,10 +87,10 @@ static BOOL try_close(struct smbcli_state *c, int fstype, int fd)
                return close(fd) == 0;
        }
 
-       return False;
+       return false;
 }
 
-static BOOL try_lock(struct smbcli_state *c, int fstype, 
+static bool try_lock(struct smbcli_state *c, int fstype, 
                     int fd, uint_t start, uint_t len,
                     enum brl_type op)
 {
@@ -109,10 +109,10 @@ static BOOL try_lock(struct smbcli_state *c, int fstype,
                return fcntl(fd,F_SETLK,&lock) == 0;
        }
 
-       return False;
+       return false;
 }
 
-static BOOL try_unlock(struct smbcli_state *c, int fstype, 
+static bool try_unlock(struct smbcli_state *c, int fstype, 
                       int fd, uint_t start, uint_t len)
 {
        struct flock lock;
@@ -130,7 +130,7 @@ static BOOL try_unlock(struct smbcli_state *c, int fstype,
                return fcntl(fd,F_SETLK,&lock) == 0;
        }
 
-       return False;
+       return false;
 }      
 
 /***************************************************** 
@@ -207,7 +207,7 @@ static void reconnect(struct smbcli_state *cli[NSERVERS][NCONNECTIONS],
 
 
 
-static BOOL test_one(struct smbcli_state *cli[NSERVERS][NCONNECTIONS], 
+static bool test_one(struct smbcli_state *cli[NSERVERS][NCONNECTIONS], 
                     char *nfs[NSERVERS],
                     int fnum[NSERVERS][NUMFSTYPES][NCONNECTIONS][NFILES],
                     struct record *rec)
@@ -221,7 +221,7 @@ static BOOL test_one(struct smbcli_state *cli[NSERVERS][NCONNECTIONS],
        uint_t r2 = rec->r2;
        enum brl_type op;
        int server;
-       BOOL ret[NSERVERS];
+       bool ret[NSERVERS];
 
        if (r1 < READ_PCT) {
                op = READ_LOCK; 
@@ -243,7 +243,7 @@ static BOOL test_one(struct smbcli_state *cli[NSERVERS][NCONNECTIONS],
                               op==READ_LOCK?"READ_LOCK":"WRITE_LOCK",
                               ret[0], ret[1]);
                }
-               if (ret[0] != ret[1]) return False;
+               if (ret[0] != ret[1]) return false;
        } else if (r2 < LOCK_PCT+UNLOCK_PCT) {
                /* unset a lock */
                for (server=0;server<NSERVERS;server++) {
@@ -257,7 +257,7 @@ static BOOL test_one(struct smbcli_state *cli[NSERVERS][NCONNECTIONS],
                               start, start+len-1, len,
                               ret[0], ret[1]);
                }
-               if (!hide_unlock_fails && ret[0] != ret[1]) return False;
+               if (!hide_unlock_fails && ret[0] != ret[1]) return false;
        } else {
                /* reopen the file */
                for (server=0;server<NSERVERS;server++) {
@@ -266,7 +266,7 @@ static BOOL test_one(struct smbcli_state *cli[NSERVERS][NCONNECTIONS],
                                                                 O_RDWR|O_CREAT);
                        if (fnum[server][fstype][conn][f] == -1) {
                                printf("failed to reopen on share1\n");
-                               return False;
+                               return false;
                        }
                }
                if (showall) {
@@ -274,7 +274,7 @@ static BOOL test_one(struct smbcli_state *cli[NSERVERS][NCONNECTIONS],
                               conn, fstype, f);
                }
        }
-       return True;
+       return true;
 }
 
 static void close_files(struct smbcli_state *cli[NSERVERS][NCONNECTIONS], 
@@ -369,7 +369,7 @@ static void test_locks(char *share1, char *share2, char *nfspath1, char *nfspath
                recorded[n].len *= RANGE_MULTIPLE;
                recorded[n].r1 = random() % 100;
                recorded[n].r2 = random() % 100;
-               recorded[n].needed = True;
+               recorded[n].needed = true;
        }
 
        reconnect(cli, nfs, fnum, share1, share2);
@@ -388,14 +388,14 @@ static void test_locks(char *share1, char *share2, char *nfspath1, char *nfspath
 
                for (i=0;i<n-1;i++) {
                        int m;
-                       recorded[i].needed = False;
+                       recorded[i].needed = false;
 
                        close_files(cli, nfs, fnum);
                        open_files(cli, nfs, fnum);
 
                        m = retest(cli, nfs, fnum, n);
                        if (m == n) {
-                               recorded[i].needed = True;
+                               recorded[i].needed = true;
                        } else {
                                if (i < m) {
                                        memmove(&recorded[i], &recorded[i+1],
@@ -412,7 +412,7 @@ static void test_locks(char *share1, char *share2, char *nfspath1, char *nfspath
        close_files(cli, nfs, fnum);
        reconnect(cli, nfs, fnum, share1, share2);
        open_files(cli, nfs, fnum);
-       showall = True;
+       showall = true;
        n1 = retest(cli, nfs, fnum, n);
        if (n1 != n-1) {
                printf("ERROR - inconsistent result (%u %u)\n", n1, n);
@@ -483,7 +483,7 @@ static void usage(void)
        argc -= 4;
        argv += 4;
 
-       lp_load();
+       lp_load(dyn_CONFIGFILE);
 
        if (getenv("USER")) {
                fstrcpy(username,getenv("USER"));
@@ -506,19 +506,19 @@ static void usage(void)
                        seed = atoi(optarg);
                        break;
                case 'u':
-                       hide_unlock_fails = True;
+                       hide_unlock_fails = true;
                        break;
                case 'o':
                        numops = atoi(optarg);
                        break;
                case 'O':
-                       use_oplocks = True;
+                       use_oplocks = true;
                        break;
                case 'a':
-                       showall = True;
+                       showall = true;
                        break;
                case 'A':
-                       analyze = True;
+                       analyze = true;
                        break;
                case 'h':
                        usage();
index 3eac50cbca4f84e91b3e2a25c824daea57b431fb..fec7657afea1da7b7f9c309c673931546cdcd6db 100644 (file)
 #include "pstring.h"
 #include "auth/credentials/credentials.h"
 #include "auth/gensec/gensec.h"
+#include "param/param.h"
+#include "dynconfig.h"
 
 static struct cli_credentials *credentials;
-static BOOL showall = False;
-static BOOL old_list = False;
+static bool showall = false;
+static bool old_list = false;
 static const char *maskchars = "<>\"?*abc.";
 static const char *filechars = "abcdefghijklm.";
 static int verbose;
@@ -37,12 +39,12 @@ static int die_on_error;
 static int NumLoops = 0;
 static int max_length = 20;
 
-static BOOL reg_match_one(struct smbcli_state *cli, const char *pattern, const char *file)
+static bool reg_match_one(struct smbcli_state *cli, const char *pattern, const char *file)
 {
        /* oh what a weird world this is */
-       if (old_list && strcmp(pattern, "*.*") == 0) return True;
+       if (old_list && strcmp(pattern, "*.*") == 0) return true;
 
-       if (ISDOT(pattern)) return False;
+       if (ISDOT(pattern)) return false;
 
        if (ISDOTDOT(file)) file = ".";
 
@@ -98,7 +100,7 @@ static struct {
        pstring long_name;
        pstring short_name;
 } last_hit;
-static BOOL f_info_hit;
+static bool f_info_hit;
 
 static void listfn(struct clilist_file_info *f, const char *s, void *state)
 {
@@ -111,7 +113,7 @@ static void listfn(struct clilist_file_info *f, const char *s, void *state)
        }
        pstrcpy(last_hit.long_name, f->name);
        pstrcpy(last_hit.short_name, f->short_name);
-       f_info_hit = True;
+       f_info_hit = true;
 }
 
 static void get_real_name(struct smbcli_state *cli, 
@@ -124,7 +126,7 @@ static void get_real_name(struct smbcli_state *cli,
                mask = "\\masktest\\*";
        }
 
-       f_info_hit = False;
+       f_info_hit = false;
 
        smbcli_list_new(cli->tree, mask, 
                        FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_DIRECTORY, 
@@ -284,7 +286,7 @@ static void usage(void)
 
        setup_logging("masktest", DEBUG_STDOUT);
 
-       lp_set_cmdline("log level", "0");
+       lp_set_cmdline(global_loadparm, "log level", "0");
 
        if (argc < 2 || argv[1][0] == '-') {
                usage();
@@ -300,7 +302,7 @@ static void usage(void)
        argc -= 1;
        argv += 1;
 
-       lp_load();
+       lp_load(dyn_CONFIGFILE);
 
        credentials = cli_credentials_init(talloc_autofree_context());
        cli_credentials_guess(credentials);
@@ -324,7 +326,7 @@ static void usage(void)
                        verbose++;
                        break;
                case 'M':
-                       lp_set_cmdline("max protocol", optarg);
+                       lp_set_cmdline(global_loadparm, "max protocol", optarg);
                        break;
                case 'U':
                        cli_credentials_parse_string(credentials, optarg, CRED_SPECIFIED);
@@ -348,7 +350,7 @@ static void usage(void)
                        showall = 1;
                        break;
                case 'o':
-                       old_list = True;
+                       old_list = true;
                        break;
                default:
                        printf("Unknown option %c (%d)\n", (char)opt, opt);
index d01c5a7ecdfb1f6b7de3889664f59b5f7fd18e99..ddedd102f9fcd42d28508c7dc2f178f627bafcca 100644 (file)
@@ -56,14 +56,14 @@ static void do_reconnect(struct smbcli_state **cli, int client)
 }
 
 /* run a test that simulates an approximate netbench client load */
-static BOOL run_netbench(struct torture_context *tctx, struct smbcli_state *cli, int client)
+static bool run_netbench(struct torture_context *tctx, struct smbcli_state *cli, int client)
 {
        int torture_nprocs = torture_setting_int(tctx, "nprocs", 4);
        int i;
        pstring line;
        char *cname;
        FILE *f;
-       BOOL correct = True;
+       bool correct = true;
        double target_rate = torture_setting_double(tctx, "targetrate", 0);     
        int n;
 
@@ -85,7 +85,7 @@ static BOOL run_netbench(struct torture_context *tctx, struct smbcli_state *cli,
 
        if (!f) {
                perror(loadfile);
-               return False;
+               return false;
        }
 
 again:
@@ -212,7 +212,7 @@ done:
                smbcli_deltree(cli->tree, "\\clients");
        }
        if (!torture_close_connection(cli)) {
-               correct = False;
+               correct = false;
        }
        
        return correct;
@@ -220,14 +220,14 @@ done:
 
 
 /* run a test that simulates an approximate netbench client load */
-BOOL torture_nbench(struct torture_context *torture)
+bool torture_nbench(struct torture_context *torture)
 {
-       BOOL correct = True;
+       bool correct = true;
        int torture_nprocs = torture_setting_int(torture, "nprocs", 4);
        struct smbcli_state *cli;
        const char *p;
 
-       read_only = torture_setting_bool(torture, "readonly", False);
+       read_only = torture_setting_bool(torture, "readonly", false);
 
        nb_max_retries = torture_setting_int(torture, "nretries", 1);
 
@@ -245,11 +245,11 @@ BOOL torture_nbench(struct torture_context *torture)
 
        if (torture_nprocs > 1) {
                if (!torture_open_connection(&cli, 0)) {
-                       return False;
+                       return false;
                }
 
                if (!read_only && !torture_setup_dir(cli, "\\clients")) {
-                       return False;
+                       return false;
                }
        }
 
index 9624a7b14fbc0e48d14cb9f7806dcd89f1d062aa..5de903ff78903de0ab32e9ec1e900a99c13ce578 100644 (file)
@@ -36,7 +36,7 @@
 extern int nbench_line_count;
 static int nbio_id = -1;
 static int nprocs;
-static BOOL bypass_io;
+static bool bypass_io;
 static struct timeval tv_start, tv_end;
 static int warmup, timelimit;
 static int in_cleanup;
@@ -117,13 +117,13 @@ static bool nb_reestablish_locks(struct ftable *f)
                if (!nb_do_lockx(true, f->handle, linfo->offset, linfo->size, NT_STATUS_OK)) {
                        printf("nb_reestablish_locks: failed to get lock for file %s at %lu\n",
                               f->cp.fname, (unsigned long) linfo->offset);
-                       return False;
+                       return false;
                }
 
                linfo = linfo->next;
        }
 
-       return True;
+       return true;
 }
 
 static bool nb_reopen_all_files(void)
@@ -140,21 +140,21 @@ static bool nb_reopen_all_files(void)
                                   f->cp.create_disposition,
                                   f->cp.handle,
                                   NT_STATUS_OK,
-                                  True))
+                                  true))
                {
                        printf("-- nb_reopen_all_files: failed to open file %s\n", f->cp.fname);
-                       return False;
+                       return false;
                }
 
                if (!nb_reestablish_locks(f)) {
                        printf("--nb_reopen_all_files: failed to reestablish locks\n");
-                       return False;
+                       return false;
                }
 
                f = f->next;
        }
 
-       return True;
+       return true;
 }
 
 bool nb_reconnect(struct smbcli_state **cli, int client)
@@ -168,17 +168,17 @@ bool nb_reconnect(struct smbcli_state **cli, int client)
        if (!torture_open_connection(cli, client)) {
                printf("nb_reconnect: failed to connect\n");
                *cli = NULL;
-               return False;
+               return false;
        }
 
        nb_setup(*cli, client);
 
        if (!nb_reopen_all_files()) {
                printf("nb_reconnect: failed to reopen files in client %d\n", client);
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 void nbio_target_rate(double rate)
@@ -242,7 +242,7 @@ double nbio_latency(void)
        return max_latency;
 }
 
-BOOL nb_tick(void)
+bool nb_tick(void)
 {
        return children[nbio_id].done;
 }
@@ -383,10 +383,10 @@ static struct smbcli_state *c;
 /*
   a handler function for oplock break requests
 */
-static BOOL oplock_handler(struct smbcli_transport *transport, uint16_t tid, 
+static bool oplock_handler(struct smbcli_transport *transport, uint16_t tid, 
                           uint16_t fnum, uint8_t level, void *private)
 {
-       struct smbcli_tree *tree = private;
+       struct smbcli_tree *tree = (struct smbcli_tree *)private;
        return smbcli_oplock_ack(tree, fnum, OPLOCK_BREAK_TO_NONE);
 }
 
@@ -412,7 +412,7 @@ static bool check_status(const char *op, NTSTATUS status, NTSTATUS ret)
             NT_STATUS_EQUAL(ret, NT_STATUS_CONNECTION_RESET)) 
                && !NT_STATUS_EQUAL (status, ret))
        {
-               return False;
+               return false;
        }
 
        if (!NT_STATUS_IS_OK(status) && NT_STATUS_IS_OK(ret)) {
@@ -432,7 +432,7 @@ static bool check_status(const char *op, NTSTATUS status, NTSTATUS ret)
                       nbench_line_count, nt_errstr(ret), nt_errstr(status));
        }
 
-       return True;
+       return true;
 }
 
 
@@ -453,7 +453,7 @@ bool nb_unlink(const char *fname, int attr, NTSTATUS status, bool retry)
        if (!retry)
                return check_status("Unlink", status, ret);
 
-       return True;
+       return true;
 }
 
 static bool nb_do_createx(struct ftable *f,
@@ -515,10 +515,10 @@ static bool nb_do_createx(struct ftable *f,
        talloc_free(mem_ctx);
 
        if (!check_status("NTCreateX", status, ret))
-               return False;
+               return false;
 
        if (!NT_STATUS_IS_OK(ret))
-               return True;
+               return true;
 
        if (f == NULL) {
                f = talloc (NULL, struct ftable);
@@ -530,14 +530,14 @@ static bool nb_do_createx(struct ftable *f,
        f->handle = handle;
        f->fd = io.ntcreatex.out.file.fnum;
 
-       return True;
+       return true;
 }
 
 bool nb_createx(const char *fname, 
               uint_t create_options, uint_t create_disposition, int handle,
               NTSTATUS status)
 {
-       return nb_do_createx(NULL, fname, create_options, create_disposition, handle, status, False);
+       return nb_do_createx(NULL, fname, create_options, create_disposition, handle, status, false);
 }
 
 bool nb_writex(int handle, off_t offset, int size, int ret_size, NTSTATUS status)
@@ -550,7 +550,7 @@ bool nb_writex(int handle, off_t offset, int size, int ret_size, NTSTATUS status
        i = find_handle(handle, NULL);
 
        if (bypass_io)
-               return True;
+               return true;
 
        buf = malloc(size);
        memset(buf, 0xab, size);
@@ -568,7 +568,7 @@ bool nb_writex(int handle, off_t offset, int size, int ret_size, NTSTATUS status
        free(buf);
 
        if (!check_status("WriteX", status, ret))
-               return False;
+               return false;
 
        if (NT_STATUS_IS_OK(ret) && io.writex.out.nwritten != ret_size) {
                printf("[%d] Warning: WriteX got count %d expected %d\n", 
@@ -578,7 +578,7 @@ bool nb_writex(int handle, off_t offset, int size, int ret_size, NTSTATUS status
 
        children[nbio_id].bytes += ret_size;
 
-       return True;
+       return true;
 }
 
 bool nb_write(int handle, off_t offset, int size, int ret_size, NTSTATUS status)
@@ -591,7 +591,7 @@ bool nb_write(int handle, off_t offset, int size, int ret_size, NTSTATUS status)
        i = find_handle(handle, NULL);
 
        if (bypass_io)
-               return True;
+               return true;
 
        buf = malloc(size);
 
@@ -609,7 +609,7 @@ bool nb_write(int handle, off_t offset, int size, int ret_size, NTSTATUS status)
        free(buf);
 
        if (!check_status("Write", status, ret))
-               return False;
+               return false;
 
        if (NT_STATUS_IS_OK(ret) && io.write.out.nwritten != ret_size) {
                printf("[%d] Warning: Write got count %d expected %d\n", 
@@ -619,7 +619,7 @@ bool nb_write(int handle, off_t offset, int size, int ret_size, NTSTATUS status)
 
        children[nbio_id].bytes += ret_size;
 
-       return True;
+       return true;
 }
 
 static bool nb_do_lockx(bool relock, int handle, off_t offset, int size, NTSTATUS status)
@@ -647,7 +647,7 @@ static bool nb_do_lockx(bool relock, int handle, off_t offset, int size, NTSTATU
        ret = smb_raw_lock(c->tree, &io);
 
        if (!check_status("LockX", status, ret))
-               return False;
+               return false;
 
        if (f != NULL &&
            !relock)
@@ -659,7 +659,7 @@ static bool nb_do_lockx(bool relock, int handle, off_t offset, int size, NTSTATU
                DLIST_ADD_END(f->locks, linfo, struct lock_info *);
        }
 
-       return True;
+       return true;
 }
 
 bool nb_lockx(int handle, off_t offset, int size, NTSTATUS status)
@@ -692,7 +692,7 @@ bool nb_unlockx(int handle, uint_t offset, int size, NTSTATUS status)
        ret = smb_raw_lock(c->tree, &io);
 
        if (!check_status("UnlockX", status, ret))
-               return False;
+               return false;
 
        if (f != NULL) {
                struct lock_info *linfo;
@@ -703,7 +703,7 @@ bool nb_unlockx(int handle, uint_t offset, int size, NTSTATUS status)
                        printf("nb_unlockx: unknown lock (%d)\n", handle);
        }
 
-       return True;
+       return true;
 }
 
 bool nb_readx(int handle, off_t offset, int size, int ret_size, NTSTATUS status)
@@ -716,7 +716,7 @@ bool nb_readx(int handle, off_t offset, int size, int ret_size, NTSTATUS status)
        i = find_handle(handle, NULL);
 
        if (bypass_io)
-               return True;
+               return true;
 
        buf = malloc(size);
 
@@ -726,7 +726,7 @@ bool nb_readx(int handle, off_t offset, int size, int ret_size, NTSTATUS status)
        io.readx.in.mincnt    = size;
        io.readx.in.maxcnt    = size;
        io.readx.in.remaining = 0;
-       io.readx.in.read_for_execute = False;
+       io.readx.in.read_for_execute = false;
        io.readx.out.data     = buf;
 
        ret = smb_raw_read(c->tree, &io);
@@ -734,7 +734,7 @@ bool nb_readx(int handle, off_t offset, int size, int ret_size, NTSTATUS status)
        free(buf);
 
        if (!check_status("ReadX", status, ret))
-               return False;
+               return false;
 
        if (NT_STATUS_IS_OK(ret) && io.readx.out.nread != ret_size) {
                printf("[%d] ERROR: ReadX got count %d expected %d\n", 
@@ -745,7 +745,7 @@ bool nb_readx(int handle, off_t offset, int size, int ret_size, NTSTATUS status)
 
        children[nbio_id].bytes += ret_size;
 
-       return True;
+       return true;
 }
 
 bool nb_close(int handle, NTSTATUS status)
@@ -763,7 +763,7 @@ bool nb_close(int handle, NTSTATUS status)
        ret = smb_raw_close(c->tree, &io);
 
        if (!check_status("Close", status, ret))
-               return False;
+               return false;
 
        if (NT_STATUS_IS_OK(ret)) {
                struct ftable *f = find_ftable(handle);
@@ -771,7 +771,7 @@ bool nb_close(int handle, NTSTATUS status)
                talloc_free(f);
        }
 
-       return True;
+       return true;
 }
 
 bool nb_rmdir(const char *dname, NTSTATUS status, bool retry)
@@ -786,7 +786,7 @@ bool nb_rmdir(const char *dname, NTSTATUS status, bool retry)
        if (!retry)
                return check_status("Rmdir", status, ret);
 
-       return True;
+       return true;
 }
 
 bool nb_mkdir(const char *dname, NTSTATUS status, bool retry)
@@ -799,7 +799,7 @@ bool nb_mkdir(const char *dname, NTSTATUS status, bool retry)
        /* NOTE! no error checking. Used for base fileset creation */
        smb_raw_mkdir(c->tree, &io);
 
-       return True;
+       return true;
 }
 
 bool nb_rename(const char *old, const char *new, NTSTATUS status, bool retry)
@@ -817,7 +817,7 @@ bool nb_rename(const char *old, const char *new, NTSTATUS status, bool retry)
        if (!retry)
                return check_status("Rename", status, ret);
 
-       return True;
+       return true;
 }
 
 
@@ -869,7 +869,7 @@ bool nb_sfileinfo(int fnum, int level, NTSTATUS status)
 
        if (level != RAW_SFILEINFO_BASIC_INFORMATION) {
                printf("[%d] Warning: setfileinfo level %d not handled\n", nbench_line_count, level);
-               return True;
+               return true;
        }
 
        ZERO_STRUCT(io);
@@ -906,9 +906,9 @@ bool nb_qfsinfo(int level, NTSTATUS status)
 }
 
 /* callback function used for trans2 search */
-static BOOL findfirst_callback(void *private, const union smb_search_data *file)
+static bool findfirst_callback(void *private, const union smb_search_data *file)
 {
-       return True;
+       return true;
 }
 
 bool nb_findfirst(const char *mask, int level, int maxcnt, int count, NTSTATUS status)
@@ -932,7 +932,7 @@ bool nb_findfirst(const char *mask, int level, int maxcnt, int count, NTSTATUS s
        talloc_free(mem_ctx);
 
        if (!check_status("Search", status, ret))
-               return False;
+               return false;
 
        if (NT_STATUS_IS_OK(ret) && io.t2ffirst.out.count != count) {
                printf("[%d] Warning: got count %d expected %d\n", 
@@ -940,7 +940,7 @@ bool nb_findfirst(const char *mask, int level, int maxcnt, int count, NTSTATUS s
                       io.t2ffirst.out.count, count);
        }
 
-       return True;
+       return true;
 }
 
 bool nb_flush(int fnum, NTSTATUS status)
@@ -984,7 +984,7 @@ bool nb_deltree(const char *dname, bool retry)
 
        smbcli_rmdir(c->tree, dname);
 
-       return True;
+       return true;
 }
 
 
index a9aac79469256a4c2c7231145aa0ea4ca40ac4ae..e609e7205513d4208a352e79e134def20ddc8818 100644 (file)
@@ -33,7 +33,7 @@ bool torture_nbt_browse(struct torture_context *torture)
        struct nbt_name name;
        TALLOC_CTX *mem_ctx = talloc_new(NULL);
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        
        name.name = lp_workgroup();
        name.type = NBT_NAME_BROWSER;
@@ -45,7 +45,7 @@ bool torture_nbt_browse(struct torture_context *torture)
                printf("Failed to resolve %s - %s\n",
                       name.name, nt_errstr(status));
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        talloc_free(mem_ctx);
index 2effe25ab768ea2cb82f2b7d26910d88b0a8debe..e9cfda4b176b3757d807a5e9b99f0e4c4cf85311 100644 (file)
@@ -30,6 +30,7 @@
 #include "libcli/resolve/resolve.h"
 #include "system/network.h"
 #include "lib/socket/netif.h"
+#include "param/param.h"
 
 #define TEST_NAME "TORTURE_TEST"
 
@@ -42,7 +43,7 @@ static void netlogon_handler(struct dgram_mailslot_handler *dgmslot,
 {
        NTSTATUS status;
        struct nbt_netlogon_packet netlogon;
-       int *replies = dgmslot->private;
+       int *replies = (int *)dgmslot->private;
 
        printf("netlogon reply from %s:%d\n", src->addr, src->port);
 
@@ -77,7 +78,7 @@ static bool nbt_test_netlogon(struct torture_context *tctx)
        const char *address;
        struct nbt_name name;
        
-       name.name = lp_workgroup();
+       name.name = lp_workgroup(global_loadparm);
        name.type = NBT_NAME_LOGON;
        name.scope = NULL;
 
@@ -90,7 +91,7 @@ static bool nbt_test_netlogon(struct torture_context *tctx)
 
 
        socket_address = socket_address_from_strings(dgmsock, dgmsock->sock->backend_name,
-                                                    myaddress, lp_dgram_port());
+                                                    myaddress, lp_dgram_port(global_loadparm));
        torture_assert(tctx, socket_address != NULL, "Error getting address");
 
        /* try receiving replies on port 138 first, which will only
@@ -156,7 +157,7 @@ static bool nbt_test_netlogon2(struct torture_context *tctx)
        const char *address;
        struct nbt_name name;
        
-       name.name = lp_workgroup();
+       name.name = lp_workgroup(global_loadparm);
        name.type = NBT_NAME_LOGON;
        name.scope = NULL;
 
@@ -168,7 +169,7 @@ static bool nbt_test_netlogon2(struct torture_context *tctx)
        myaddress = talloc_strdup(dgmsock, iface_best_ip(address));
 
        socket_address = socket_address_from_strings(dgmsock, dgmsock->sock->backend_name,
-                                                    myaddress, lp_dgram_port());
+                                                    myaddress, lp_dgram_port(global_loadparm));
        torture_assert(tctx, socket_address != NULL, "Error getting address");
 
        /* try receiving replies on port 138 first, which will only
@@ -227,7 +228,7 @@ static void ntlogon_handler(struct dgram_mailslot_handler *dgmslot,
 {
        NTSTATUS status;
        struct nbt_ntlogon_packet ntlogon;
-       int *replies = dgmslot->private;
+       int *replies = (int *)dgmslot->private;
 
        printf("ntlogon reply from %s:%d\n", src->addr, src->port);
 
@@ -265,7 +266,7 @@ static bool nbt_test_ntlogon(struct torture_context *tctx)
        const char *address;
        struct nbt_name name;
        
-       name.name = lp_workgroup();
+       name.name = lp_workgroup(global_loadparm);
        name.type = NBT_NAME_LOGON;
        name.scope = NULL;
 
@@ -277,7 +278,7 @@ static bool nbt_test_ntlogon(struct torture_context *tctx)
        myaddress = talloc_strdup(dgmsock, iface_best_ip(address));
 
        socket_address = socket_address_from_strings(dgmsock, dgmsock->sock->backend_name,
-                                                    myaddress, lp_dgram_port());
+                                                    myaddress, lp_dgram_port(global_loadparm));
        torture_assert(tctx, socket_address != NULL, "Error getting address");
 
        /* try receiving replies on port 138 first, which will only
@@ -298,7 +299,7 @@ static bool nbt_test_ntlogon(struct torture_context *tctx)
                                       ACB_WSTRUST, &machine_credentials);
        torture_assert(tctx, join_ctx != NULL,
                       talloc_asprintf(tctx, "Failed to join domain %s as %s\n",
-                                      lp_workgroup(), TEST_NAME));
+                                      lp_workgroup(global_loadparm), TEST_NAME));
 
        dom_sid = torture_join_sid(join_ctx);
 
@@ -340,9 +341,9 @@ static bool nbt_test_ntlogon(struct torture_context *tctx)
 /*
   test nbt dgram operations
 */
-struct torture_suite *torture_nbt_dgram(void)
+struct torture_suite *torture_nbt_dgram(TALLOC_CTX *mem_ctx)
 {
-       struct torture_suite *suite = torture_suite_create(talloc_autofree_context(), "DGRAM");
+       struct torture_suite *suite = torture_suite_create(mem_ctx, "DGRAM");
 
        torture_suite_add_simple_test(suite, "netlogon", nbt_test_netlogon);
        torture_suite_add_simple_test(suite, "netlogon2", nbt_test_netlogon2);
index 5c941c60c9dc3d64039f5074f7c29d49c10c4f7c..2a3678ee75da34faa7b0ec1011d2b3b98d4fdd74 100644 (file)
@@ -29,7 +29,7 @@ bool torture_nbt_get_name(struct torture_context *tctx,
                          const char **address)
 {
        make_nbt_name_server(name, strupper_talloc(tctx, 
-                                                  torture_setting_string(tctx, "host", NULL)));
+                            torture_setting_string(tctx, "host", NULL)));
 
        /* do an initial name resolution to find its IP */
        torture_assert_ntstatus_ok(tctx, 
@@ -43,18 +43,17 @@ bool torture_nbt_get_name(struct torture_context *tctx,
 NTSTATUS torture_nbt_init(void)
 {
        struct torture_suite *suite = torture_suite_create(
-               talloc_autofree_context(),
-               "NBT");
+               talloc_autofree_context(), "NBT");
        /* nbt tests */
-       torture_suite_add_suite(suite, torture_nbt_register());
-       torture_suite_add_suite(suite, torture_nbt_wins());
-       torture_suite_add_suite(suite, torture_nbt_dgram());
-       torture_suite_add_suite(suite, torture_nbt_winsreplication());
-       torture_suite_add_suite(suite, torture_bench_nbt());
-       torture_suite_add_suite(suite, torture_bench_wins());
+       torture_suite_add_suite(suite, torture_nbt_register(suite));
+       torture_suite_add_suite(suite, torture_nbt_wins(suite));
+       torture_suite_add_suite(suite, torture_nbt_dgram(suite));
+       torture_suite_add_suite(suite, torture_nbt_winsreplication(suite));
+       torture_suite_add_suite(suite, torture_bench_nbt(suite));
+       torture_suite_add_suite(suite, torture_bench_wins(suite));
 
        suite->description = talloc_strdup(suite, 
-                                                       "NetBIOS over TCP/IP and WINS tests");
+                                        "NetBIOS over TCP/IP and WINS tests");
 
        torture_register_suite(suite);
 
index 5794d840ec3255e43d317fa59e7b196b58560858..1040335227c8d8d55f765622b86618f94458fb6f 100644 (file)
@@ -61,8 +61,8 @@ static bool bench_namequery(struct torture_context *tctx)
 
        io.in.name = name;
        io.in.dest_addr = address;
-       io.in.broadcast = False;
-       io.in.wins_lookup = False;
+       io.in.broadcast = false;
+       io.in.wins_lookup = false;
        io.in.timeout = 1;
 
        result = talloc_zero(tctx, struct result_struct);
@@ -104,10 +104,9 @@ static bool bench_namequery(struct torture_context *tctx)
 /*
   benchmark how fast a server can respond to name queries
 */
-struct torture_suite *torture_bench_nbt(void)
+struct torture_suite *torture_bench_nbt(TALLOC_CTX *mem_ctx)
 {
-       struct torture_suite *suite = torture_suite_create(talloc_autofree_context(), 
-                                                          "BENCH");
+       struct torture_suite *suite = torture_suite_create(mem_ctx, "BENCH");
        torture_suite_add_simple_test(suite, "namequery", bench_namequery);
 
        return suite;
index 03cc4e6ceefa008ac8c7cfcc613d858e27d5b414..9ff22c4bb9f6c53e3adf7e43b2a303007a7e1b62 100644 (file)
@@ -68,9 +68,9 @@ static bool nbt_register_own(struct torture_context *tctx)
        io.in.dest_addr = address;
        io.in.address = myaddress;
        io.in.nb_flags = NBT_NODE_B | NBT_NM_ACTIVE;
-       io.in.register_demand = False;
-       io.in.broadcast = True;
-       io.in.multi_homed = False;
+       io.in.register_demand = false;
+       io.in.broadcast = true;
+       io.in.multi_homed = false;
        io.in.ttl = 1234;
        io.in.timeout = 3;
        io.in.retries = 0;
@@ -86,7 +86,7 @@ static bool nbt_register_own(struct torture_context *tctx)
 
        /* check a register demand */
        io.in.address = myaddress;
-       io.in.register_demand = True;
+       io.in.register_demand = true;
 
        status = nbt_name_register(nbtsock, tctx, &io);
 
@@ -134,7 +134,7 @@ static bool nbt_refresh_own(struct torture_context *tctx)
        io.in.dest_addr = address;
        io.in.address = myaddress;
        io.in.nb_flags = NBT_NODE_B | NBT_NM_ACTIVE;
-       io.in.broadcast = False;
+       io.in.broadcast = false;
        io.in.ttl = 1234;
        io.in.timeout = 3;
        io.in.retries = 0;
@@ -155,11 +155,11 @@ static bool nbt_refresh_own(struct torture_context *tctx)
 /*
   test name registration to a server
 */
-struct torture_suite *torture_nbt_register(void)
+struct torture_suite *torture_nbt_register(TALLOC_CTX *mem_ctx)
 {
        struct torture_suite *suite;
 
-       suite = torture_suite_create(talloc_autofree_context(), "REGISTER");
+       suite = torture_suite_create(mem_ctx, "REGISTER");
        torture_suite_add_simple_test(suite, "register_own", nbt_register_own);
        torture_suite_add_simple_test(suite, "refresh_own", nbt_refresh_own);
 
index 7f3ed8e41514729139128a7ab02825dc6c6aa124..e25c3e78f093413b59ea2e0897eebc8d100933ae 100644 (file)
@@ -77,7 +77,7 @@ static bool nbt_test_wins_name(struct torture_context *tctx, const char *address
        release.in.dest_addr = address;
        release.in.address = myaddress;
        release.in.nb_flags = nb_flags;
-       release.in.broadcast = False;
+       release.in.broadcast = false;
        release.in.timeout = 3;
        release.in.retries = 0;
 
@@ -113,8 +113,8 @@ static bool nbt_test_wins_name(struct torture_context *tctx, const char *address
        torture_comment(tctx, "query the name to make sure its there\n");
        query.in.name = *name;
        query.in.dest_addr = address;
-       query.in.broadcast = False;
-       query.in.wins_lookup = True;
+       query.in.broadcast = false;
+       query.in.wins_lookup = true;
        query.in.timeout = 3;
        query.in.retries = 0;
 
@@ -174,7 +174,7 @@ static bool nbt_test_wins_name(struct torture_context *tctx, const char *address
        release.in.dest_addr = address;
        release.in.address = myaddress;
        release.in.nb_flags = nb_flags;
-       release.in.broadcast = False;
+       release.in.broadcast = false;
        release.in.timeout = 3;
        release.in.retries = 0;
 
@@ -284,10 +284,9 @@ static bool nbt_test_wins(struct torture_context *tctx)
 /*
   test WINS operations
 */
-struct torture_suite *torture_nbt_wins(void)
+struct torture_suite *torture_nbt_wins(TALLOC_CTX *mem_ctx)
 {
-       struct torture_suite *suite = torture_suite_create(talloc_autofree_context(), 
-                                                                                                          "WINS");
+       struct torture_suite *suite = torture_suite_create(mem_ctx, "WINS");
 
        torture_suite_add_simple_test(suite, "wins", nbt_test_wins);
 
index f06db648fc96c441057fca258c41543349899abf..27edd572068dfdafc3c02fbd26de52f14ce85116 100644 (file)
@@ -282,11 +282,10 @@ static bool bench_wins(struct torture_context *tctx)
   benchmark how fast a WINS server can respond to a mixture of
   registration/refresh/release and name query requests
 */
-struct torture_suite *torture_bench_wins(void)
+struct torture_suite *torture_bench_wins(TALLOC_CTX *mem_ctx)
 {
-       struct torture_suite *suite = torture_suite_create(
-                                                                               talloc_autofree_context(),
-                                                                               "BENCH-WINS");
+       struct torture_suite *suite = torture_suite_create(mem_ctx, 
+                                                          "BENCH-WINS");
 
        torture_suite_add_simple_test(suite, "wins", bench_wins);
 
index bc370c8b4eafb3fd1486a1688f6aa838e9dbe2a8..f0b17b9778359af15269ba51a2ad101f8dec8e42 100644 (file)
@@ -30,6 +30,7 @@
 #include "librpc/gen_ndr/ndr_nbt.h"
 #include "torture/torture.h"
 #include "torture/nbt/proto.h"
+#include "param/param.h"
 
 #define CHECK_STATUS(tctx, status, correct) \
        torture_assert_ntstatus_equal(tctx, status, correct, \
@@ -97,10 +98,6 @@ static bool test_assoc_ctx1(struct torture_context *tctx)
        struct nbt_name name;
        const char *address;
 
-       if (!torture_setting_bool(tctx, "dangerous", false)) {
-               torture_skip(tctx, "winsrepl: cross connection assoc_ctx usage disabled - enable dangerous tests to use");
-       }
-
        if (!torture_nbt_get_name(tctx, &name, &address))
                return false;
 
@@ -224,7 +221,7 @@ static bool test_assoc_ctx2(struct torture_context *tctx)
 /*
   display a replication entry
 */
-static void display_entry(TALLOC_CTX *tctx, struct wrepl_name *name)
+static void display_entry(struct torture_context *tctx, struct wrepl_name *name)
 {
        int i;
 
@@ -541,8 +538,8 @@ static const struct wrepl_ip addresses_X_3_4[] = {
        }
 };
 
-static struct test_wrepl_conflict_conn *test_create_conflict_ctx(TALLOC_CTX *tctx,
-                                                                const char *address)
+static struct test_wrepl_conflict_conn *test_create_conflict_ctx(
+               struct torture_context *tctx, const char *address)
 {
        struct test_wrepl_conflict_conn *ctx;
        struct wrepl_associate associate;
@@ -632,7 +629,7 @@ static struct test_wrepl_conflict_conn *test_create_conflict_ctx(TALLOC_CTX *tct
        if (!ctx->nbtsock_srv) return NULL;
 
        /* Make a port 137 version of ctx->myaddr */
-       nbt_srv_addr = socket_address_from_strings(tctx, ctx->nbtsock_srv->sock->backend_name, ctx->myaddr->addr, lp_nbt_port());
+       nbt_srv_addr = socket_address_from_strings(tctx, ctx->nbtsock_srv->sock->backend_name, ctx->myaddr->addr, lp_nbt_port(global_loadparm));
        if (!nbt_srv_addr) return NULL;
 
        /* And if possible, bind to it.  This won't work unless we are root or in sockewrapper */
@@ -657,7 +654,8 @@ static struct test_wrepl_conflict_conn *test_create_conflict_ctx(TALLOC_CTX *tct
                /* Make a port 137 version of ctx->myaddr2 */
                nbt_srv_addr = socket_address_from_strings(tctx, 
                                                           ctx->nbtsock_srv->sock->backend_name, 
-                                                          ctx->myaddr2->addr, lp_nbt_port());
+                                                          ctx->myaddr2->addr, 
+                                                          lp_nbt_port(global_loadparm));
                if (!nbt_srv_addr) return NULL;
 
                /* And if possible, bind to it.  This won't work unless we are root or in sockewrapper */
@@ -9158,7 +9156,7 @@ static bool test_conflict_owned_active_vs_replica(struct torture_context *tctx,
 
        if (!ctx->nbtsock_srv) {
                torture_comment(tctx, "SKIP: Test Replica records vs. owned active records: not bound to port[%d]\n",
-                       lp_nbt_port());
+                       lp_nbt_port(global_loadparm));
                return true;
        }
 
@@ -9454,7 +9452,8 @@ static void test_conflict_owned_active_vs_replica_handler_query(struct nbt_name_
 {
        struct nbt_name *name;
        struct nbt_name_packet *rep_packet;
-       struct test_conflict_owned_active_vs_replica_struct *rec = nbtsock->incoming.private;
+       struct test_conflict_owned_active_vs_replica_struct *rec = 
+               (struct test_conflict_owned_active_vs_replica_struct *)nbtsock->incoming.private;
 
        _NBT_ASSERT(req_packet->qdcount, 1);
        _NBT_ASSERT(req_packet->questions[0].question_type, NBT_QTYPE_NETBIOS);
@@ -9550,7 +9549,8 @@ static void test_conflict_owned_active_vs_replica_handler_release(
 {
        struct nbt_name *name;
        struct nbt_name_packet *rep_packet;
-       struct test_conflict_owned_active_vs_replica_struct *rec = nbtsock->incoming.private;
+       struct test_conflict_owned_active_vs_replica_struct *rec = 
+               (struct test_conflict_owned_active_vs_replica_struct *)nbtsock->incoming.private;
 
        _NBT_ASSERT(req_packet->qdcount, 1);
        _NBT_ASSERT(req_packet->questions[0].question_type, NBT_QTYPE_NETBIOS);
@@ -9601,7 +9601,8 @@ static void test_conflict_owned_active_vs_replica_handler(struct nbt_name_socket
                                                          struct nbt_name_packet *req_packet, 
                                                          struct socket_address *src)
 {
-       struct test_conflict_owned_active_vs_replica_struct *rec = nbtsock->incoming.private;
+       struct test_conflict_owned_active_vs_replica_struct *rec = 
+               (struct test_conflict_owned_active_vs_replica_struct *)nbtsock->incoming.private;
 
        rec->defend.ret = false;
 
@@ -9670,13 +9671,15 @@ static bool torture_nbt_winsreplication_owned(struct torture_context *tctx)
 /*
   test simple WINS replication operations
 */
-struct torture_suite *torture_nbt_winsreplication(void)
+struct torture_suite *torture_nbt_winsreplication(TALLOC_CTX *mem_ctx)
 {
        struct torture_suite *suite = torture_suite_create(
-               talloc_autofree_context(),
-               "WINSREPLICATION");
-       torture_suite_add_simple_test(suite, "assoc_ctx1", 
-                                     test_assoc_ctx1);
+               mem_ctx, "WINSREPLICATION");
+       struct torture_tcase *tcase;
+
+       tcase = torture_suite_add_simple_test(suite, "assoc_ctx1", 
+                                            test_assoc_ctx1);
+       tcase->tests->dangerous = true;
 
        torture_suite_add_simple_test(suite, "assoc_ctx2", 
                                      test_assoc_ctx2);
index 768c8db63ea209a18927a9572175925bf1a1e286..a72a03fa3858ed0e80cba95003257553a1bbf1fa 100644 (file)
@@ -1747,7 +1747,7 @@ static const uint8_t lsarlookupsids3_out_data[] = {
 };
 
 static bool lsarlookupsids3_out_check(struct torture_context *tctx, 
-                                                                        struct lsa_LookupSids3 *r)
+                                     struct lsa_LookupSids3 *r)
 {
        /* FIXME: Handle */
        torture_assert(tctx, r->out.names != NULL, "names ptr");
index 5c7dfc7c29a1afed2b1684dc1bdf2378e7e0e9f5..18ede54867e33a6b9f12e0feb03987097fa5025d 100644 (file)
@@ -36,7 +36,7 @@ static bool wrap_ndr_pull_test(struct torture_context *tctx,
                                                           struct torture_test *test)
 {
        bool (*check_fn) (struct torture_context *ctx, void *data) = test->fn;
-       const struct ndr_pull_test_data *data = test->data;
+       const struct ndr_pull_test_data *data = (const struct ndr_pull_test_data *)test->data;
        void *ds = talloc_zero_size(tctx, data->struct_size);
        struct ndr_pull *ndr = ndr_pull_init_blob(&(data->data), tctx);
 
index d7c956efd6fdc25f993f18ce14c2c99d2bf96ee2..ab256a7152bba302fa4169e0da4f24c182ec75e0 100644 (file)
@@ -240,7 +240,7 @@ static const uint8_t querymultiplevalues_in_data[] = {
 };
 
 static bool querymultiplevalues_in_check(struct torture_context *tctx, 
-                                                                                struct winreg_QueryMultipleValues *r)
+                                        struct winreg_QueryMultipleValues *r)
 {
        torture_assert_int_equal(tctx, r->in.num_values, 1, "num values");
        torture_assert_str_equal(tctx, r->in.values[0].name->name, "HOMEPATH", 
@@ -272,7 +272,7 @@ static const uint8_t querymultiplevalues_out_data[] = {
 };
 
 static bool querymultiplevalues_out_check(struct torture_context *tctx, 
-                                                                                struct winreg_QueryMultipleValues *r)
+                                         struct winreg_QueryMultipleValues *r)
 {
        torture_assert_str_equal(tctx, r->out.values[0].name->name, "HOMEPATH", 
                                                         "name");
@@ -458,7 +458,7 @@ static const uint8_t getkeysecurity_in_data[] = {
 };
 
 static bool getkeysecurity_in_check(struct torture_context *tctx, 
-                                                                       struct winreg_GetKeySecurity *r)
+                                   struct winreg_GetKeySecurity *r)
 {
        /* FIXME: Handle */
        torture_assert_int_equal(tctx, r->in.sec_info, 2, "sec info");
@@ -476,7 +476,7 @@ static const uint8_t getkeysecurity_out_data[] = {
 };
 
 static bool getkeysecurity_out_check(struct torture_context *tctx, 
-                                                                        struct winreg_GetKeySecurity *r)
+                                    struct winreg_GetKeySecurity *r)
 {
        torture_assert_int_equal(tctx, r->in.sd->size, 20, "sd size");
        torture_assert_int_equal(tctx, r->in.sd->len, 20, "sd len");
index bd05c0f38ffed8c8f8847b293b4da88510abd077..483b33dc1185b435d458530660dc76200f8930cc 100644 (file)
@@ -155,7 +155,7 @@ static NTSTATUS rap_pull_string(TALLOC_CTX *mem_ctx, struct ndr_pull *ndr,
        if ( string_offset + len + 1 >  ndr->data_size )
                return NT_STATUS_INVALID_PARAMETER;
 
-       *dest = talloc_zero_size(mem_ctx, len+1);
+       *dest = talloc_zero_array(mem_ctx, char, len+1);
        pull_string(*dest, p, len+1, len, STR_ASCII);
 
        return NT_STATUS_OK;
@@ -287,7 +287,7 @@ static NTSTATUS smbcli_rap_netshareenum(struct smbcli_tree *tree,
        return result;
 }
 
-static BOOL test_netshareenum(struct smbcli_tree *tree)
+static bool test_netshareenum(struct smbcli_tree *tree)
 {
        struct rap_NetShareEnum r;
        int i;
@@ -297,7 +297,7 @@ static BOOL test_netshareenum(struct smbcli_tree *tree)
        r.in.bufsize = 8192;
 
        if (!NT_STATUS_IS_OK(smbcli_rap_netshareenum(tree, tmp_ctx, &r)))
-               return False;
+               return false;
 
        for (i=0; i<r.out.count; i++) {
                printf("%s %d %s\n", r.out.info[i].info1.name,
@@ -307,7 +307,7 @@ static BOOL test_netshareenum(struct smbcli_tree *tree)
 
        talloc_free(tmp_ctx);
 
-       return True;
+       return true;
 }
 
 static NTSTATUS smbcli_rap_netserverenum2(struct smbcli_tree *tree,
@@ -385,7 +385,7 @@ static NTSTATUS smbcli_rap_netserverenum2(struct smbcli_tree *tree,
        return result;
 }
 
-static BOOL test_netserverenum(struct smbcli_tree *tree)
+static bool test_netserverenum(struct smbcli_tree *tree)
 {
        struct rap_NetServerEnum2 r;
        int i;
@@ -398,7 +398,7 @@ static BOOL test_netserverenum(struct smbcli_tree *tree)
        r.in.domain = NULL;
 
        if (!NT_STATUS_IS_OK(smbcli_rap_netserverenum2(tree, tmp_ctx, &r)))
-               return False;
+               return false;
 
        for (i=0; i<r.out.count; i++) {
                switch (r.in.level) {
@@ -415,7 +415,7 @@ static BOOL test_netserverenum(struct smbcli_tree *tree)
 
        talloc_free(tmp_ctx);
 
-       return True;
+       return true;
 }
 
 _PUBLIC_ NTSTATUS smbcli_rap_netservergetinfo(struct smbcli_tree *tree,
@@ -477,14 +477,14 @@ _PUBLIC_ NTSTATUS smbcli_rap_netservergetinfo(struct smbcli_tree *tree,
        return result;
 }
 
-static BOOL test_netservergetinfo(struct smbcli_tree *tree)
+static bool test_netservergetinfo(struct smbcli_tree *tree)
 {
        struct rap_WserverGetInfo r;
-       BOOL res = True;
+       bool res = true;
        TALLOC_CTX *mem_ctx;
 
        if (!(mem_ctx = talloc_new(tree))) {
-               return False;
+               return false;
        }
 
        r.in.bufsize = 0xffff;
@@ -498,9 +498,9 @@ static BOOL test_netservergetinfo(struct smbcli_tree *tree)
        return res;
 }
 
-static BOOL test_rap(struct smbcli_tree *tree)
+static bool test_rap(struct smbcli_tree *tree)
 {
-       BOOL res = True;
+       bool res = true;
 
        res &= test_netserverenum(tree);
        res &= test_netshareenum(tree);
@@ -509,20 +509,20 @@ static BOOL test_rap(struct smbcli_tree *tree)
        return res;
 }
 
-BOOL torture_rap_basic(struct torture_context *torture)
+bool torture_rap_basic(struct torture_context *torture)
 {
        struct smbcli_state *cli;
-       BOOL ret = True;
+       bool ret = true;
        TALLOC_CTX *mem_ctx;
 
        if (!torture_open_connection(&cli, 0)) {
-               return False;
+               return false;
        }
 
        mem_ctx = talloc_init("torture_rap_basic");
 
        if (!test_rap(cli->tree)) {
-               ret = False;
+               ret = false;
        }
 
        torture_close_connection(cli);
@@ -531,7 +531,7 @@ BOOL torture_rap_basic(struct torture_context *torture)
        return ret;
 }
 
-BOOL torture_rap_scan(struct torture_context *torture)
+bool torture_rap_scan(struct torture_context *torture)
 {
        TALLOC_CTX *mem_ctx;
        struct smbcli_state *cli;
@@ -540,7 +540,7 @@ BOOL torture_rap_scan(struct torture_context *torture)
        mem_ctx = talloc_init("torture_rap_scan");
 
        if (!torture_open_connection(&cli, 0)) {
-               return False;
+               return false;
        }
        
        for (callno = 0; callno < 0xffff; callno++) {
@@ -557,7 +557,7 @@ BOOL torture_rap_scan(struct torture_context *torture)
 
        torture_close_connection(cli);
 
-       return True;
+       return true;
 }
 
 NTSTATUS torture_rap_init(void)
index 026384cb8bba415a904c5640839c951a55545c49..2c3f4a52c61fcd3c1bef59e905f8c42feac5b80c 100644 (file)
@@ -35,7 +35,7 @@
        if (!NT_STATUS_EQUAL(status, correct)) { \
                printf("(%s) Incorrect status %s - should be %s\n", \
                       __location__, nt_errstr(status), nt_errstr(correct)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
@@ -46,7 +46,7 @@ static bool test_sd(struct torture_context *tctx,
        NTSTATUS status;
        union smb_open io;
        const char *fname = BASEDIR "\\sd.txt";
-       BOOL ret = True;
+       bool ret = true;
        int fnum = -1;
        union smb_fileinfo q;
        union smb_setfileinfo set;
@@ -113,7 +113,7 @@ static bool test_sd(struct torture_context *tctx,
                NDR_PRINT_DEBUG(security_descriptor, q.query_secdesc.out.sd);
                printf("expected:\n");
                NDR_PRINT_DEBUG(security_descriptor, sd);
-               ret = False;
+               ret = false;
        }
 
        printf("remove it again\n");
@@ -226,7 +226,7 @@ static bool test_nttrans_create(struct torture_context *tctx,
                NDR_PRINT_DEBUG(security_descriptor, q.query_secdesc.out.sd);
                printf("expected:\n");
                NDR_PRINT_DEBUG(security_descriptor, sd);
-               ret = False;
+               ret = false;
        }
 
 done:
@@ -243,7 +243,7 @@ done:
        if (_q.access_information.out.access_flags != (flags)) { \
                printf("(%s) Incorrect access_flags 0x%08x - should be 0x%08x\n", \
                       __location__, _q.access_information.out.access_flags, (flags)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        } \
 } while (0)
@@ -259,7 +259,7 @@ static bool test_creator_sid(struct torture_context *tctx,
        NTSTATUS status;
        union smb_open io;
        const char *fname = BASEDIR "\\creator.txt";
-       BOOL ret = True;
+       bool ret = true;
        int fnum = -1;
        union smb_fileinfo q;
        union smb_setfileinfo set;
@@ -358,7 +358,7 @@ static bool test_creator_sid(struct torture_context *tctx,
                NDR_PRINT_DEBUG(security_descriptor, q.query_secdesc.out.sd);
                printf("expected:\n");
                NDR_PRINT_DEBUG(security_descriptor, sd);
-               ret = False;
+               ret = false;
        }
 
        printf("try open for write\n");
@@ -418,7 +418,7 @@ static bool test_creator_sid(struct torture_context *tctx,
                NDR_PRINT_DEBUG(security_descriptor, q.query_secdesc.out.sd);
                printf("expected:\n");
                NDR_PRINT_DEBUG(security_descriptor, sd2);
-               ret = False;
+               ret = false;
        }
        
 
@@ -471,7 +471,7 @@ static bool test_generic_bits(struct torture_context *tctx,
        NTSTATUS status;
        union smb_open io;
        const char *fname = BASEDIR "\\generic.txt";
-       BOOL ret = True;
+       bool ret = true;
        int fnum = -1, i;
        union smb_fileinfo q;
        union smb_setfileinfo set;
@@ -499,8 +499,8 @@ static bool test_generic_bits(struct torture_context *tctx,
                { SEC_GENERIC_EXECUTE, SEC_RIGHTS_DIR_EXECUTE },
                { SEC_GENERIC_ALL,     SEC_RIGHTS_DIR_ALL }
        };
-       BOOL has_restore_privilege;
-       BOOL has_take_ownership_privilege;
+       bool has_restore_privilege;
+       bool has_take_ownership_privilege;
 
        printf("TESTING FILE GENERIC BITS\n");
 
@@ -599,7 +599,7 @@ static bool test_generic_bits(struct torture_context *tctx,
                        NDR_PRINT_DEBUG(security_descriptor, q.query_secdesc.out.sd);
                        printf("expected:\n");
                        NDR_PRINT_DEBUG(security_descriptor, sd2);
-                       ret = False;
+                       ret = false;
                }
 
                io.ntcreatex.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
@@ -647,7 +647,7 @@ static bool test_generic_bits(struct torture_context *tctx,
                        NDR_PRINT_DEBUG(security_descriptor, q.query_secdesc.out.sd);
                        printf("expected:\n");
                        NDR_PRINT_DEBUG(security_descriptor, sd2);
-                       ret = False;
+                       ret = false;
                }
 
                io.ntcreatex.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
@@ -764,7 +764,7 @@ static bool test_generic_bits(struct torture_context *tctx,
                        NDR_PRINT_DEBUG(security_descriptor, q.query_secdesc.out.sd);
                        printf("expected:\n");
                        NDR_PRINT_DEBUG(security_descriptor, sd2);
-                       ret = False;
+                       ret = false;
                }
 
                io.ntcreatex.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
@@ -812,7 +812,7 @@ static bool test_generic_bits(struct torture_context *tctx,
                        NDR_PRINT_DEBUG(security_descriptor, q.query_secdesc.out.sd);
                        printf("expected:\n");
                        NDR_PRINT_DEBUG(security_descriptor, sd2);
-                       ret = False;
+                       ret = false;
                }
 
                io.ntcreatex.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
@@ -846,14 +846,14 @@ static bool test_owner_bits(struct torture_context *tctx,
        NTSTATUS status;
        union smb_open io;
        const char *fname = BASEDIR "\\generic.txt";
-       BOOL ret = True;
+       bool ret = true;
        int fnum = -1, i;
        union smb_fileinfo q;
        union smb_setfileinfo set;
        struct security_descriptor *sd, *sd_orig;
        const char *owner_sid;
-       BOOL has_restore_privilege;
-       BOOL has_take_ownership_privilege;
+       bool has_restore_privilege;
+       bool has_take_ownership_privilege;
        uint32_t expected_bits;
 
        printf("TESTING FILE OWNER BITS\n");
@@ -966,7 +966,7 @@ static bool test_inheritance(struct torture_context *tctx,
        const char *dname = BASEDIR "\\inheritance";
        const char *fname1 = BASEDIR "\\inheritance\\testfile";
        const char *fname2 = BASEDIR "\\inheritance\\testdir";
-       BOOL ret = True;
+       bool ret = true;
        int fnum=0, fnum2, i;
        union smb_fileinfo q;
        union smb_setfileinfo set;
@@ -1175,7 +1175,7 @@ static bool test_inheritance(struct torture_context *tctx,
                                   sd_orig->owner_sid)) {
                        printf("Bad sd in child file at %d\n", i);
                        NDR_PRINT_DEBUG(security_descriptor, q.query_secdesc.out.sd);
-                       ret = False;
+                       ret = false;
                        goto check_dir;
                }
 
@@ -1186,7 +1186,7 @@ static bool test_inheritance(struct torture_context *tctx,
                               test_flags[i].file_flags,
                               test_flags[i].parent_flags,
                               i);
-                       ret = False;
+                       ret = false;
                }
 
        check_dir:
@@ -1224,7 +1224,7 @@ static bool test_inheritance(struct torture_context *tctx,
                                printf("Bad sd in child dir at %d (parent 0x%x)\n", 
                                       i, test_flags[i].parent_flags);
                                NDR_PRINT_DEBUG(security_descriptor, q.query_secdesc.out.sd);
-                               ret = False;
+                               ret = false;
                                continue;
                        }
                } else if (test_flags[i].parent_flags & SEC_ACE_FLAG_CONTAINER_INHERIT) {
@@ -1242,7 +1242,7 @@ static bool test_inheritance(struct torture_context *tctx,
                                printf("Bad sd in child dir at %d (parent 0x%x)\n", 
                                       i, test_flags[i].parent_flags);
                                NDR_PRINT_DEBUG(security_descriptor, q.query_secdesc.out.sd);
-                               ret = False;
+                               ret = false;
                                continue;
                        }
                } else {
@@ -1255,7 +1255,7 @@ static bool test_inheritance(struct torture_context *tctx,
                                printf("Bad sd in child dir at %d (parent 0x%x)\n", 
                                       i, test_flags[i].parent_flags);
                                NDR_PRINT_DEBUG(security_descriptor, q.query_secdesc.out.sd);
-                               ret = False;
+                               ret = false;
                                continue;
                        }
                }
@@ -1308,7 +1308,7 @@ static bool test_inheritance(struct torture_context *tctx,
                NDR_PRINT_DEBUG(security_descriptor, q.query_secdesc.out.sd);
                printf("expected:\n");
                NDR_PRINT_DEBUG(security_descriptor, sd2);
-               ret = False;
+               ret = false;
        }
 
        io.ntcreatex.in.open_disposition = NTCREATEX_DISP_OPEN;
@@ -1316,7 +1316,7 @@ static bool test_inheritance(struct torture_context *tctx,
        status = smb_raw_open(cli->tree, tctx, &io);
        if (NT_STATUS_IS_OK(status)) {
                printf("failed: w2k3 ACL bug (allowed open when ACL should deny)\n");
-               ret = False;
+               ret = false;
                fnum2 = io.ntcreatex.out.file.fnum;
                CHECK_ACCESS_FLAGS(fnum2, SEC_RIGHTS_FILE_ALL);
                smbcli_close(cli->tree, fnum2);
@@ -1382,14 +1382,14 @@ done:
 /*
   test dynamic acl inheritance
 */
-static BOOL test_inheritance_dynamic(struct torture_context *tctx, 
+static bool test_inheritance_dynamic(struct torture_context *tctx, 
                                                                         struct smbcli_state *cli)
 {
        NTSTATUS status;
        union smb_open io;
        const char *dname = BASEDIR "\\inheritance";
        const char *fname1 = BASEDIR "\\inheritance\\testfile";
-       BOOL ret = True;
+       bool ret = true;
        int fnum=0, fnum2;
        union smb_fileinfo q;
        union smb_setfileinfo set;
@@ -1399,7 +1399,7 @@ static BOOL test_inheritance_dynamic(struct torture_context *tctx,
        printf("TESTING DYNAMIC ACL INHERITANCE\n");
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        io.generic.level = RAW_OPEN_NTCREATEX;
@@ -1533,14 +1533,14 @@ done:
                if (!(granted & access)) {\
                        printf("(%s) %s but flags 0x%08X are not granted! granted[0x%08X] desired[0x%08X]\n", \
                               __location__, nt_errstr(status), access, granted, desired); \
-                       ret = False; \
+                       ret = false; \
                        goto done; \
                } \
        } else { \
                if (granted & access) {\
                        printf("(%s) %s but flags 0x%08X are granted! granted[0x%08X] desired[0x%08X]\n", \
                               __location__, nt_errstr(status), access, granted, desired); \
-                       ret = False; \
+                       ret = false; \
                        goto done; \
                } \
        } \
@@ -1552,7 +1552,7 @@ static bool test_sd_get_set(struct torture_context *tctx,
                                                        struct smbcli_state *cli)
 {
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        union smb_open io;
        union smb_fileinfo fi;
        union smb_setfileinfo si;
@@ -1736,7 +1736,7 @@ done:
 */
 bool torture_raw_acls(struct torture_context *tctx, struct smbcli_state *cli)
 {
-       BOOL ret = True;
+       bool ret = true;
 
        if (!torture_setup_dir(cli, BASEDIR)) {
                return false;
index a56afee54642e35ca428ee931d6c4480a1010500..42a3c3cebe427f9335e7f479b0bb6d59f6da0b9b 100644 (file)
@@ -29,7 +29,7 @@
        if (!NT_STATUS_EQUAL(status, correct) && !NT_STATUS_EQUAL(status, dos_correct)) { \
                printf("(%d) Incorrect status %s - should be %s\n", \
                       __LINE__, nt_errstr(status), nt_errstr(correct)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
@@ -54,7 +54,7 @@ static NTSTATUS single_search(struct smbcli_state *cli,
        return status;
 }
 
-static BOOL test_path(struct smbcli_state *cli, const char *path, NTSTATUS expected, NTSTATUS dos_expected)
+static bool test_path(struct smbcli_state *cli, const char *path, NTSTATUS expected, NTSTATUS dos_expected)
 {
        union smb_chkpath io;
        NTSTATUS status;
@@ -63,19 +63,19 @@ static BOOL test_path(struct smbcli_state *cli, const char *path, NTSTATUS expec
        if (!NT_STATUS_EQUAL(status, expected) && !NT_STATUS_EQUAL(status, dos_expected)) {
                printf("%-40s FAILED %s should be %s or %s\n", 
                       path, nt_errstr(status), nt_errstr(expected), nt_errstr(dos_expected));
-               return False;
+               return false;
        } else {
                printf("%-40s correct (%s)\n", path, nt_errstr(status));
 
        }
-       return True;
+       return true;
 }
 
-static BOOL test_chkpath(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_chkpath(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        union smb_chkpath io;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        int fnum = -1;
        int fnum1 = -1;
 
@@ -89,7 +89,7 @@ static BOOL test_chkpath(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        fnum = create_complex_file(cli, mem_ctx, BASEDIR "\\test.txt..");
        if (fnum == -1) {
                printf("failed to open test.txt - %s\n", smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -97,7 +97,7 @@ static BOOL test_chkpath(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        
        if (!torture_set_file_attribute(cli->tree, BASEDIR, FILE_ATTRIBUTE_HIDDEN)) {
                printf("failed to set basedir hidden\n");
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -215,34 +215,34 @@ done:
    basic testing of chkpath calls 
 */
 bool torture_raw_chkpath(struct torture_context *torture, 
-                                                struct smbcli_state *cli)
+                        struct smbcli_state *cli)
 {
        bool ret = true;
        int fnum;
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        if (NT_STATUS_IS_ERR(smbcli_mkdir(cli->tree, BASEDIR "\\nt"))) {
                printf("Failed to create " BASEDIR " - %s\n", smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
 
        if (NT_STATUS_IS_ERR(smbcli_mkdir(cli->tree, BASEDIR "\\nt\\V S"))) {
                printf("Failed to create " BASEDIR " - %s\n", smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
 
        if (NT_STATUS_IS_ERR(smbcli_mkdir(cli->tree, BASEDIR "\\nt\\V S\\VB98"))) {
                printf("Failed to create " BASEDIR " - %s\n", smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
 
        fnum = create_complex_file(cli, torture, BASEDIR "\\nt\\V S\\VB98\\vb6.exe");
        if (fnum == -1) {
                printf("failed to open \\nt\\V S\\VB98\\vb6.exe - %s\n", smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
index 34ac2f0db88440b21a3a85435704227980cf8e5b..6f139f8530df9187761561fbf80ebde460034bc2 100644 (file)
@@ -28,7 +28,7 @@
  * basic testing of all RAW_CLOSE_* calls 
 */
 bool torture_raw_close(struct torture_context *torture,
-                                          struct smbcli_state *cli)
+                      struct smbcli_state *cli)
 {
        bool ret = true;
        union smb_close io;
index 374ff3cb984b0086347ec657bbbd5b29c280a253..c6969574a86906509c119a3465f31bbb66772493 100644 (file)
@@ -30,6 +30,7 @@
 #include "librpc/gen_ndr/ndr_misc.h"
 #include "lib/cmdline/popt_common.h"
 #include "torture/util.h"
+#include "param/param.h"
 
 #define BASEDIR "\\composite"
 
@@ -42,7 +43,7 @@ static void loadfile_complete(struct composite_context *c)
 /*
   test a simple savefile/loadfile combination
 */
-static BOOL test_loadfile(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_loadfile(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        const char *fname = BASEDIR "\\test.txt";
        NTSTATUS status;
@@ -67,8 +68,8 @@ static BOOL test_loadfile(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 
        status = smb_composite_savefile(cli->tree, &io1);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("savefile failed: %s\n", nt_errstr(status));
-               return False;
+               printf("(%s) savefile failed: %s\n", __location__,nt_errstr(status));
+               return false;
        }
 
        io2.in.fname = fname;
@@ -86,8 +87,8 @@ static BOOL test_loadfile(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        printf("waiting for completion\n");
        while (*count != num_ops) {
                event_loop_once(cli->transport->socket->event.ctx);
-               if (lp_parm_bool(-1, "torture", "progress", true)) {
-                       printf("count=%d\r", *count);
+               if (lp_parm_bool(global_loadparm, NULL, "torture", "progress", true)) {
+                       printf("(%s) count=%d\r", __location__, *count);
                        fflush(stdout);
                }
        }
@@ -96,31 +97,31 @@ static BOOL test_loadfile(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        for (i=0;i<num_ops;i++) {
                status = smb_composite_loadfile_recv(c[i], mem_ctx);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("loadfile[%d] failed - %s\n", i, nt_errstr(status));
-                       return False;
+                       printf("(%s) loadfile[%d] failed - %s\n", __location__, i, nt_errstr(status));
+                       return false;
                }
 
                if (io2.out.size != len) {
-                       printf("wrong length in returned data - %d should be %d\n",
+                       printf("(%s) wrong length in returned data - %d should be %d\n",__location__,
                               io2.out.size, (int)len);
-                       return False;
+                       return false;
                }
                
                if (memcmp(io2.out.data, data, len) != 0) {
-                       printf("wrong data in loadfile!\n");
-                       return False;
+                       printf("(%s) wrong data in loadfile!\n",__location__);
+                       return false;
                }
        }
 
        talloc_free(data);
 
-       return True;
+       return true;
 }
 
 /*
   test a simple savefile/loadfile combination
 */
-static BOOL test_fetchfile(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_fetchfile(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        const char *fname = BASEDIR "\\test.txt";
        NTSTATUS status;
@@ -133,7 +134,7 @@ static BOOL test_fetchfile(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        extern int torture_numops;
        struct event_context *event_ctx;
        int *count = talloc_zero(mem_ctx, int);
-       BOOL ret = True;
+       bool ret = true;
 
        data = talloc_array(mem_ctx, uint8_t, len);
 
@@ -147,18 +148,18 @@ static BOOL test_fetchfile(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 
        status = smb_composite_savefile(cli->tree, &io1);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("savefile failed: %s\n", nt_errstr(status));
-               return False;
+               printf("(%s) savefile failed: %s\n",__location__, nt_errstr(status));
+               return false;
        }
 
-       io2.in.dest_host = lp_parm_string(-1, "torture", "host");
+       io2.in.dest_host = lp_parm_string(global_loadparm, NULL, "torture", "host");
        io2.in.port = 0;
-       io2.in.called_name = lp_parm_string(-1, "torture", "host");
-       io2.in.service = lp_parm_string(-1, "torture", "share");
+       io2.in.called_name = lp_parm_string(global_loadparm, NULL, "torture", "host");
+       io2.in.service = lp_parm_string(global_loadparm, NULL, "torture", "share");
        io2.in.service_type = "A:";
 
        io2.in.credentials = cmdline_credentials;
-       io2.in.workgroup  = lp_workgroup();
+       io2.in.workgroup  = lp_workgroup(global_loadparm);
        io2.in.filename = fname;
 
        printf("testing parallel fetchfile with %d ops\n", torture_numops);
@@ -176,8 +177,8 @@ static BOOL test_fetchfile(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 
        while (*count != torture_numops) {
                event_loop_once(event_ctx);
-               if (lp_parm_bool(-1, "torture", "progress", true)) {
-                       printf("count=%d\r", *count);
+               if (lp_parm_bool(global_loadparm, NULL, "torture", "progress", true)) {
+                       printf("(%s) count=%d\r", __location__, *count);
                        fflush(stdout);
                }
        }
@@ -186,23 +187,23 @@ static BOOL test_fetchfile(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        for (i=0;i<torture_numops;i++) {
                status = smb_composite_fetchfile_recv(c[i], mem_ctx);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("loadfile[%d] failed - %s\n", i,
+                       printf("(%s) loadfile[%d] failed - %s\n", __location__, i,
                               nt_errstr(status));
-                       ret = False;
+                       ret = false;
                        continue;
                }
 
                if (io2.out.size != len) {
-                       printf("wrong length in returned data - %d "
-                              "should be %d\n",
+                       printf("(%s) wrong length in returned data - %d "
+                              "should be %d\n", __location__,
                               io2.out.size, (int)len);
-                       ret = False;
+                       ret = false;
                        continue;
                }
                
                if (memcmp(io2.out.data, data, len) != 0) {
-                       printf("wrong data in loadfile!\n");
-                       ret = False;
+                       printf("(%s) wrong data in loadfile!\n", __location__);
+                       ret = false;
                        continue;
                }
        }
@@ -213,7 +214,7 @@ static BOOL test_fetchfile(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 /*
   test setfileacl
 */
-static BOOL test_appendacl(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_appendacl(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        struct smb_composite_appendacl **io;
        struct smb_composite_appendacl **io_orig;
@@ -242,8 +243,8 @@ static BOOL test_appendacl(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
          
                status = smb_composite_savefile(cli->tree, &io1);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("savefile failed: %s\n", nt_errstr(status));
-                       return False;
+                       printf("(%s) savefile failed: %s\n", __location__, nt_errstr(status));
+                       return false;
                }
 
                io_orig[i] = talloc (io_orig, struct smb_composite_appendacl);
@@ -251,8 +252,8 @@ static BOOL test_appendacl(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
                io_orig[i]->in.sd = security_descriptor_initialise(io_orig[i]);
                status = smb_composite_appendacl(cli->tree, io_orig[i], io_orig[i]);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("appendacl failed: %s\n", nt_errstr(status));
-                       return False;
+                       printf("(%s) appendacl failed: %s\n", __location__, nt_errstr(status));
+                       return false;
                }
        }
        
@@ -271,8 +272,8 @@ static BOOL test_appendacl(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 
        status = security_descriptor_dacl_add(test_sd, ace);
        if (!NT_STATUS_IS_OK(status)) {
-               printf("appendacl failed: %s\n", nt_errstr(status));
-               return False;
+               printf("(%s) appendacl failed: %s\n", __location__, nt_errstr(status));
+               return false;
        }
 
        /* set parameters for appendacl async call */
@@ -296,8 +297,8 @@ static BOOL test_appendacl(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        printf("waiting for completion\n");
        while (*count != num_ops) {
                event_loop_once(event_ctx);
-               if (lp_parm_bool(-1, "torture", "progress", true)) {
-                       printf("count=%d\r", *count);
+               if (lp_parm_bool(global_loadparm, NULL, "torture", "progress", true)) {
+                       printf("(%s) count=%d\r", __location__, *count);
                        fflush(stdout);
                }
        }
@@ -306,14 +307,14 @@ static BOOL test_appendacl(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        for (i=0; i < num_ops; i++) {
                status = smb_composite_appendacl_recv(c[i], io[i]);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("appendacl[%d] failed - %s\n", i, nt_errstr(status));
-                       return False;
+                       printf("(%s) appendacl[%d] failed - %s\n", __location__, i, nt_errstr(status));
+                       return false;
                }
                
                security_descriptor_dacl_add(io_orig[i]->out.sd, ace);
                if (!security_acl_equal(io_orig[i]->out.sd->dacl, io[i]->out.sd->dacl)) {
-                       printf("appendacl[%d] failed - needed acl isn't set\n", i);
-                       return False;
+                       printf("(%s) appendacl[%d] failed - needed acl isn't set\n", __location__, i);
+                       return false;
                }
        }
        
@@ -322,11 +323,11 @@ static BOOL test_appendacl(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        talloc_free (test_sid);
        talloc_free (test_sd);
                
-       return True;
+       return true;
 }
 
 /* test a query FS info by asking for share's GUID */
-static BOOL test_fsinfo(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_fsinfo(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        char *guid = NULL;
        NTSTATUS status;
@@ -337,15 +338,15 @@ static BOOL test_fsinfo(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        extern int torture_numops;
        struct event_context *event_ctx;
        int *count = talloc_zero(mem_ctx, int);
-       BOOL ret = True;
+       bool ret = true;
 
-       io1.in.dest_host = lp_parm_string(-1, "torture", "host");
+       io1.in.dest_host = lp_parm_string(global_loadparm, NULL, "torture", "host");
        io1.in.port = 0;
-       io1.in.called_name = lp_parm_string(-1, "torture", "host");
-       io1.in.service = lp_parm_string(-1, "torture", "share");
+       io1.in.called_name = lp_parm_string(global_loadparm, NULL, "torture", "host");
+       io1.in.service = lp_parm_string(global_loadparm, NULL, "torture", "share");
        io1.in.service_type = "A:";
        io1.in.credentials = cmdline_credentials;
-       io1.in.workgroup = lp_workgroup();
+       io1.in.workgroup = lp_workgroup(global_loadparm);
        io1.in.level = RAW_QFS_OBJECTID_INFORMATION;
 
        printf("testing parallel queryfsinfo [Object ID] with %d ops\n", torture_numops);
@@ -363,8 +364,8 @@ static BOOL test_fsinfo(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 
        while (*count < torture_numops) {
                event_loop_once(event_ctx);
-               if (lp_parm_bool(-1, "torture", "progress", true)) {
-                       printf("count=%d\r", *count);
+               if (lp_parm_bool(global_loadparm, NULL, "torture", "progress", true)) {
+                       printf("(%s) count=%d\r", __location__, *count);
                        fflush(stdout);
                }
        }
@@ -373,16 +374,16 @@ static BOOL test_fsinfo(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        for (i=0;i<torture_numops;i++) {
                status = smb_composite_fsinfo_recv(c[i], mem_ctx);
                if (!NT_STATUS_IS_OK(status)) {
-                       printf("fsinfo[%d] failed - %s\n", i, nt_errstr(status));
-                       ret = False;
+                       printf("(%s) fsinfo[%d] failed - %s\n", __location__, i, nt_errstr(status));
+                       ret = false;
                        continue;
                }
 
                if (io1.out.fsinfo->generic.level != RAW_QFS_OBJECTID_INFORMATION) {
-                       printf("wrong level in returned info - %d "
-                              "should be %d\n",
+                       printf("(%s) wrong level in returned info - %d "
+                              "should be %d\n", __location__,
                               io1.out.fsinfo->generic.level, RAW_QFS_OBJECTID_INFORMATION);
-                       ret = False;
+                       ret = false;
                        continue;
                }
 
@@ -400,12 +401,12 @@ static BOOL test_fsinfo(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
    basic testing of libcli composite calls
 */
 bool torture_raw_composite(struct torture_context *tctx, 
-                                                  struct smbcli_state *cli)
+                          struct smbcli_state *cli)
 {
        bool ret = true;
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        ret &= test_fetchfile(cli, tctx);
index df7f5f3851257e7fff33c08596d5a9e831741fad..11ad11ab3fe90e5f64fb146beedae87fbcaf1a2c 100644 (file)
@@ -27,6 +27,7 @@
 #include "libcli/libcli.h"
 #include "torture/util.h"
 #include "auth/credentials/credentials.h"
+#include "param/param.h"
 
 #define BASEDIR "\\rawcontext"
 
@@ -34,7 +35,7 @@
        if (!NT_STATUS_EQUAL(status, correct)) { \
                printf("(%s) Incorrect status %s - should be %s\n", \
                       __location__, nt_errstr(status), nt_errstr(correct)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
@@ -42,7 +43,7 @@
        if ((v) != (correct)) { \
                printf("(%s) Incorrect value %s=%d - should be %d\n", \
                       __location__, #v, v, correct); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
@@ -50,7 +51,7 @@
        if ((v) == (correct)) { \
                printf("(%s) Incorrect value %s=%d - should not be %d\n", \
                       __location__, #v, v, correct); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
 /*
   test session ops
 */
-static BOOL test_session(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_session(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        struct smbcli_session *session;
        struct smbcli_session *session2;
        struct smbcli_session *session3;
@@ -83,15 +84,15 @@ static BOOL test_session(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        printf("TESTING SESSION HANDLING\n");
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        printf("create a second security context on the same transport\n");
-       session = smbcli_session_init(cli->transport, mem_ctx, False);
+       session = smbcli_session_init(cli->transport, mem_ctx, false);
 
        setup.in.sesskey = cli->transport->negotiate.sesskey;
        setup.in.capabilities = cli->transport->negotiate.capabilities; /* ignored in secondary session setup, except by our libs, which care about the extended security bit */
-       setup.in.workgroup = lp_workgroup();
+       setup.in.workgroup = lp_workgroup(global_loadparm);
 
        setup.in.credentials = cmdline_credentials;
 
@@ -101,12 +102,12 @@ static BOOL test_session(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        session->vuid = setup.out.vuid;
 
        printf("create a third security context on the same transport, with vuid set\n");
-       session2 = smbcli_session_init(cli->transport, mem_ctx, False);
+       session2 = smbcli_session_init(cli->transport, mem_ctx, false);
 
        session2->vuid = session->vuid;
        setup.in.sesskey = cli->transport->negotiate.sesskey;
        setup.in.capabilities = cli->transport->negotiate.capabilities; /* ignored in secondary session setup, except by our libs, which care about the extended security bit */
-       setup.in.workgroup = lp_workgroup();
+       setup.in.workgroup = lp_workgroup(global_loadparm);
 
        setup.in.credentials = cmdline_credentials;
 
@@ -128,12 +129,12 @@ static BOOL test_session(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 
        if (cli->transport->negotiate.capabilities & CAP_EXTENDED_SECURITY) {
                printf("create a fourth security context on the same transport, without extended security\n");
-               session3 = smbcli_session_init(cli->transport, mem_ctx, False);
+               session3 = smbcli_session_init(cli->transport, mem_ctx, false);
 
                session3->vuid = session->vuid;
                setup.in.sesskey = cli->transport->negotiate.sesskey;
                setup.in.capabilities &= ~CAP_EXTENDED_SECURITY; /* force a non extended security login (should fail) */
-               setup.in.workgroup = lp_workgroup();
+               setup.in.workgroup = lp_workgroup(global_loadparm);
        
                setup.in.credentials = cmdline_credentials;
        
@@ -142,15 +143,15 @@ static BOOL test_session(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
                CHECK_STATUS(status, NT_STATUS_LOGON_FAILURE);
 
                printf("create a fouth anonymous security context on the same transport, without extended security\n");
-               session4 = smbcli_session_init(cli->transport, mem_ctx, False);
+               session4 = smbcli_session_init(cli->transport, mem_ctx, false);
 
                session4->vuid = session->vuid;
                setup.in.sesskey = cli->transport->negotiate.sesskey;
                setup.in.capabilities &= ~CAP_EXTENDED_SECURITY; /* force a non extended security login (should fail) */
-               setup.in.workgroup = lp_workgroup();
+               setup.in.workgroup = lp_workgroup(global_loadparm);
                
                anon_creds = cli_credentials_init(mem_ctx);
-               cli_credentials_set_conf(anon_creds);
+               cli_credentials_set_conf(anon_creds, global_loadparm);
                cli_credentials_set_anonymous(anon_creds);
 
                setup.in.credentials = anon_creds;
@@ -162,7 +163,7 @@ static BOOL test_session(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        }
                
        printf("use the same tree as the existing connection\n");
-       tree = smbcli_tree_init(session, mem_ctx, False);
+       tree = smbcli_tree_init(session, mem_ctx, false);
        tree->tid = cli->tree->tid;
 
        printf("create a file using the new vuid\n");
@@ -224,11 +225,11 @@ static BOOL test_session(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        for (i=0; i <ARRAY_SIZE(sessions); i++) {
                setups[i].in.sesskey = cli->transport->negotiate.sesskey;
                setups[i].in.capabilities = cli->transport->negotiate.capabilities; /* ignored in secondary session setup, except by our libs, which care about the extended security bit */
-               setups[i].in.workgroup = lp_workgroup();
+               setups[i].in.workgroup = lp_workgroup(global_loadparm);
                
                setups[i].in.credentials = cmdline_credentials;
 
-               sessions[i] = smbcli_session_init(cli->transport, mem_ctx, False);
+               sessions[i] = smbcli_session_init(cli->transport, mem_ctx, false);
                composite_contexts[i] = smb_composite_sesssetup_send(sessions[i], &setups[i]);
 
        }
@@ -256,10 +257,10 @@ done:
 /*
   test tree ops
 */
-static BOOL test_tree(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_tree(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        const char *share, *host;
        struct smbcli_tree *tree;
        union smb_tcon tcon;
@@ -273,14 +274,14 @@ static BOOL test_tree(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        printf("TESTING TREE HANDLING\n");
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
-       share = lp_parm_string(-1, "torture", "share");
-       host  = lp_parm_string(-1, "torture", "host");
+       share = lp_parm_string(global_loadparm, NULL, "torture", "share");
+       host  = lp_parm_string(global_loadparm, NULL, "torture", "host");
        
        printf("create a second tree context on the same session\n");
-       tree = smbcli_tree_init(cli->session, mem_ctx, False);
+       tree = smbcli_tree_init(cli->session, mem_ctx, false);
 
        tcon.generic.level = RAW_TCON_TCONX;
        tcon.tconx.in.flags = 0;
@@ -361,10 +362,10 @@ done:
   this demonstrates that a tcon isn't autoclosed by a ulogoff
   the tcon can be reused using any other valid session later
 */
-static BOOL test_tree_ulogoff(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_tree_ulogoff(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        const char *share, *host;
        struct smbcli_session *session1;
        struct smbcli_session *session2;
@@ -381,17 +382,17 @@ static BOOL test_tree_ulogoff(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        printf("TESTING TREE with ulogoff\n");
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
-       share = lp_parm_string(-1, "torture", "share");
-       host  = lp_parm_string(-1, "torture", "host");
+       share = lp_parm_string(global_loadparm, NULL, "torture", "share");
+       host  = lp_parm_string(global_loadparm, NULL, "torture", "host");
 
        printf("create the first new sessions\n");
-       session1 = smbcli_session_init(cli->transport, mem_ctx, False);
+       session1 = smbcli_session_init(cli->transport, mem_ctx, false);
        setup.in.sesskey = cli->transport->negotiate.sesskey;
        setup.in.capabilities = cli->transport->negotiate.capabilities;
-       setup.in.workgroup = lp_workgroup();
+       setup.in.workgroup = lp_workgroup(global_loadparm);
        setup.in.credentials = cmdline_credentials;
        status = smb_composite_sesssetup(session1, &setup);
        CHECK_STATUS(status, NT_STATUS_OK);
@@ -399,7 +400,7 @@ static BOOL test_tree_ulogoff(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        printf("vuid1=%d\n", session1->vuid);
 
        printf("create a tree context on the with vuid1\n");
-       tree = smbcli_tree_init(session1, mem_ctx, False);
+       tree = smbcli_tree_init(session1, mem_ctx, false);
        tcon.generic.level = RAW_TCON_TCONX;
        tcon.tconx.in.flags = 0;
        tcon.tconx.in.password = data_blob(NULL, 0);
@@ -444,10 +445,10 @@ static BOOL test_tree_ulogoff(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        CHECK_STATUS(status, NT_STATUS_OK);
 
        printf("create the second new sessions\n");
-       session2 = smbcli_session_init(cli->transport, mem_ctx, False);
+       session2 = smbcli_session_init(cli->transport, mem_ctx, false);
        setup.in.sesskey = cli->transport->negotiate.sesskey;
        setup.in.capabilities = cli->transport->negotiate.capabilities;
-       setup.in.workgroup = lp_workgroup();
+       setup.in.workgroup = lp_workgroup(global_loadparm);
        setup.in.credentials = cmdline_credentials;
        status = smb_composite_sesssetup(session2, &setup);
        CHECK_STATUS(status, NT_STATUS_OK);
@@ -511,10 +512,10 @@ done:
   this test demonstrates that exit() only sees the PID
   used for the open() calls
 */
-static BOOL test_pid_exit_only_sees_open(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_pid_exit_only_sees_open(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        union smb_open io;
        union smb_write wr;
        union smb_close cl;
@@ -526,7 +527,7 @@ static BOOL test_pid_exit_only_sees_open(struct smbcli_state *cli, TALLOC_CTX *m
        printf("TESTING PID HANDLING exit() only cares about open() PID\n");
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        pid1 = cli->session->pid;
@@ -619,10 +620,10 @@ done:
 /*
   test pid ops with 2 sessions
 */
-static BOOL test_pid_2sess(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_pid_2sess(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        struct smbcli_session *session;
        struct smb_composite_sesssetup setup;
        union smb_open io;
@@ -636,15 +637,15 @@ static BOOL test_pid_2sess(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        printf("TESTING PID HANDLING WITH 2 SESSIONS\n");
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        printf("create a second security context on the same transport\n");
-       session = smbcli_session_init(cli->transport, mem_ctx, False);
+       session = smbcli_session_init(cli->transport, mem_ctx, false);
 
        setup.in.sesskey = cli->transport->negotiate.sesskey;
        setup.in.capabilities = cli->transport->negotiate.capabilities; /* ignored in secondary session setup, except by our libs, which care about the extended security bit */
-       setup.in.workgroup = lp_workgroup();
+       setup.in.workgroup = lp_workgroup(global_loadparm);
 
        setup.in.credentials = cmdline_credentials;
 
@@ -723,10 +724,10 @@ done:
 /*
   test pid ops with 2 tcons
 */
-static BOOL test_pid_2tcon(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_pid_2tcon(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        const char *share, *host;
        struct smbcli_tree *tree;
        union smb_tcon tcon;
@@ -742,14 +743,14 @@ static BOOL test_pid_2tcon(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        printf("TESTING PID HANDLING WITH 2 TCONS\n");
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
-       share = lp_parm_string(-1, "torture", "share");
-       host  = lp_parm_string(-1, "torture", "host");
+       share = lp_parm_string(global_loadparm, NULL, "torture", "share");
+       host  = lp_parm_string(global_loadparm, NULL, "torture", "host");
        
        printf("create a second tree context on the same session\n");
-       tree = smbcli_tree_init(cli->session, mem_ctx, False);
+       tree = smbcli_tree_init(cli->session, mem_ctx, false);
 
        tcon.generic.level = RAW_TCON_TCONX;
        tcon.tconx.in.flags = 0;
@@ -868,7 +869,7 @@ done:
 static bool torture_raw_context_int(struct torture_context *tctx, 
                                                                        struct smbcli_state *cli)
 {
-       BOOL ret = True;
+       bool ret = true;
 
        ret &= test_session(cli, tctx);
        ret &= test_tree(cli, tctx);
@@ -886,12 +887,12 @@ static bool torture_raw_context_int(struct torture_context *tctx,
    basic testing of session/tree context calls
 */
 bool torture_raw_context(struct torture_context *torture, 
-                                                struct smbcli_state *cli)
+                        struct smbcli_state *cli)
 {
        bool ret = true;
-       if (lp_use_spnego()) {
+       if (lp_use_spnego(global_loadparm)) {
                ret &= torture_raw_context_int(torture, cli);
-               lp_set_cmdline("use spnego", "False");
+               lp_set_cmdline(global_loadparm, "use spnego", "False");
        }
 
        ret &= torture_raw_context_int(torture, cli);
index 7e9c742943f049494cf3c268e1bfa4213fb04e6a..b24b98796f15a4c96cfc9789680c5cda8a49892f 100644 (file)
@@ -25,6 +25,7 @@
 #include "libcli/raw/libcliraw.h"
 #include "libcli/libcli.h"
 #include "torture/util.h"
+#include "param/param.h"
 
 #define BASEDIR "\\testeas"
 
        if (!NT_STATUS_EQUAL(status, correct)) { \
                printf("(%s) Incorrect status %s - should be %s\n", \
                       __location__, nt_errstr(status), nt_errstr(correct)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
-static BOOL maxeadebug; /* need that here, to allow no file delete in debug case */
+static bool maxeadebug; /* need that here, to allow no file delete in debug case */
 
-static BOOL check_ea(struct smbcli_state *cli, 
+static bool check_ea(struct smbcli_state *cli, 
                     const char *fname, const char *eaname, const char *value)
 {
        NTSTATUS status = torture_check_ea(cli, fname, eaname, value);
        return NT_STATUS_IS_OK(status);
 }
 
-static BOOL test_eas(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_eas(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        NTSTATUS status;
        union smb_setfileinfo setfile;
        union smb_open io;
        const char *fname = BASEDIR "\\ea.txt";
-       BOOL ret = True;
+       bool ret = true;
        int fnum = -1;
 
        printf("TESTING SETFILEINFO EA_SET\n");
@@ -207,7 +208,7 @@ static int test_one_eamax(struct smbcli_state *cli, const int fnum,
                        }
                        i -= (high - low + 1) / 2;
                }
-       } while (True);
+       } while (true);
 
        return low;
 }
@@ -221,21 +222,21 @@ static int test_one_eamax(struct smbcli_state *cli, const int fnum,
  * maxeasize    65536   limit the max. size for a single EA name
  * maxeanames     101   limit of the number of tested names
  * maxeastart       1   this EA size is used to test for the 1st EA (atm)
- * maxeadebug       0   if set True, further debug output is done - in addition
+ * maxeadebug       0   if set true, further debug output is done - in addition
  *                      the testfile is not deleted for further inspection!
  *
  * Set some/all of these options on the cmdline with:
  * --option torture:maxeasize=1024 --option torture:maxeadebug=1 ...
  *
  */
-static BOOL test_max_eas(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_max_eas(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        NTSTATUS status;
        union smb_open io;
        const char *fname = BASEDIR "\\ea_max.txt";
        int fnum = -1;
-       BOOL ret = True;
-       BOOL err = False;
+       bool ret = true;
+       bool err = false;
 
        int       i, j, k, last, total;
        DATA_BLOB eablob;
@@ -246,27 +247,27 @@ static BOOL test_max_eas(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 
        printf("TESTING SETFILEINFO MAX. EA_SET\n");
 
-       maxeasize  = lp_parm_int(-1, "torture", "maxeasize", 65536);
-       maxeanames = lp_parm_int(-1, "torture", "maxeanames", 101);
-       maxeastart = lp_parm_int(-1, "torture", "maxeastart", 1);
-       maxeadebug = lp_parm_int(-1, "torture", "maxeadebug", 0);
+       maxeasize  = lp_parm_int(global_loadparm, NULL, "torture", "maxeasize", 65536);
+       maxeanames = lp_parm_int(global_loadparm, NULL, "torture", "maxeanames", 101);
+       maxeastart = lp_parm_int(global_loadparm, NULL, "torture", "maxeastart", 1);
+       maxeadebug = lp_parm_int(global_loadparm, NULL, "torture", "maxeadebug", 0);
 
        /* Do some sanity check on possibly passed parms */
        if (maxeasize <= 0) {
                printf("Invalid parameter 'maxeasize=%d'",maxeasize);
-               err = True;
+               err = true;
        }
        if (maxeanames <= 0) {
                printf("Invalid parameter 'maxeanames=%d'",maxeanames);
-               err = True;
+               err = true;
        }
        if (maxeastart <= 0) {
                printf("Invalid parameter 'maxeastart=%d'",maxeastart);
-               err = True;
+               err = true;
        }
        if (maxeadebug < 0) {
                printf("Invalid parameter 'maxeadebug=%d'",maxeadebug);
-               err = True;
+               err = true;
        }
        if (err) {
          printf("\n\n");
@@ -352,7 +353,7 @@ static BOOL test_max_eas(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
                printf ("NOTE: More EAs could be available!\n");
        } 
        if (total == 0) {
-               ret = False;
+               ret = false;
        }
 done:
        smbcli_close(cli->tree, fnum);
@@ -362,12 +363,12 @@ done:
 /*
   test using NTTRANS CREATE to create a file with an initial EA set
 */
-static BOOL test_nttrans_create(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_nttrans_create(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        NTSTATUS status;
        union smb_open io;
        const char *fname = BASEDIR "\\ea2.txt";
-       BOOL ret = True;
+       bool ret = true;
        int fnum = -1;
        struct ea_struct eas[3];
        struct smb_ea_list ea_list;
@@ -446,10 +447,10 @@ done:
 */
 bool torture_raw_eas(struct torture_context *torture, struct smbcli_state *cli)
 {
-       BOOL ret = True;
+       bool ret = true;
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        ret &= test_eas(cli, torture);
@@ -463,20 +464,20 @@ bool torture_raw_eas(struct torture_context *torture, struct smbcli_state *cli)
 /* 
    test max EA size
 */
-BOOL torture_max_eas(struct torture_context *torture)
+bool torture_max_eas(struct torture_context *torture)
 {
        struct smbcli_state *cli;
-       BOOL ret = True;
+       bool ret = true;
        TALLOC_CTX *mem_ctx;
 
        if (!torture_open_connection(&cli, 0)) {
-               return False;
+               return false;
        }
 
        mem_ctx = talloc_init("torture_raw_eas");
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        ret &= test_max_eas(cli, mem_ctx);
index 8e98822e112fee5b9de60f67ed1aba03d1125428..c4dd4c5bf2b96b667987685206f085fa5a7b0ca6 100644 (file)
        if (!NT_STATUS_EQUAL(status, correct)) { \
                printf("(%d) Incorrect status %s - should be %s\n", \
                       __LINE__, nt_errstr(status), nt_errstr(correct)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
 
 /* test some ioctls */
-static BOOL test_ioctl(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_ioctl(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        union smb_ioctl ctl;
        int fnum;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        const char *fname = BASEDIR "\\test.dat";
 
        printf("TESTING IOCTL FUNCTIONS\n");
@@ -50,7 +50,7 @@ static BOOL test_ioctl(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        fnum = create_complex_file(cli, mem_ctx, fname);
        if (fnum == -1) {
                printf("Failed to create test.dat - %s\n", smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -81,11 +81,11 @@ done:
 }
 
 /* test some filesystem control functions */
-static BOOL test_fsctl(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_fsctl(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        int fnum;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        const char *fname = BASEDIR "\\test.dat";
        union smb_ioctl nt;
 
@@ -94,7 +94,7 @@ static BOOL test_fsctl(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        fnum = create_complex_file(cli, mem_ctx, fname);
        if (fnum == -1) {
                printf("Failed to create test.dat - %s\n", smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -102,7 +102,7 @@ static BOOL test_fsctl(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        nt.ioctl.level = RAW_IOCTL_NTIOCTL;
        nt.ntioctl.in.function = FSCTL_SET_SPARSE;
        nt.ntioctl.in.file.fnum = fnum;
-       nt.ntioctl.in.fsctl = True;
+       nt.ntioctl.in.fsctl = true;
        nt.ntioctl.in.filter = 0;
        nt.ntioctl.in.max_data = 0;
        nt.ntioctl.in.blob = data_blob(NULL, 0);
@@ -114,7 +114,7 @@ static BOOL test_fsctl(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        nt.ioctl.level = RAW_IOCTL_NTIOCTL;
        nt.ntioctl.in.function = FSCTL_REQUEST_BATCH_OPLOCK;
        nt.ntioctl.in.file.fnum = fnum;
-       nt.ntioctl.in.fsctl = True;
+       nt.ntioctl.in.fsctl = true;
        nt.ntioctl.in.filter = 0;
        nt.ntioctl.in.max_data = 0;
        nt.ntioctl.in.blob = data_blob(NULL, 0);
@@ -152,12 +152,12 @@ done:
    basic testing of some ioctl calls 
 */
 bool torture_raw_ioctl(struct torture_context *torture, 
-                                          struct smbcli_state *cli)
+                      struct smbcli_state *cli)
 {
        bool ret = true;
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        ret &= test_ioctl(cli, torture);
index 533974c9a9825c7b11c9a4f9d5a118923f83e80f..c2d5a778fbdb7b59f3313a7aaea7e0e58b9df1e8 100644 (file)
 #include "libcli/composite/composite.h"
 #include "libcli/smb_composite/smb_composite.h"
 #include "lib/cmdline/popt_common.h"
+#include "param/param.h"
 
 #define CHECK_STATUS(status, correct) do { \
        if (!NT_STATUS_EQUAL(status, correct)) { \
                printf("(%s) Incorrect status %s - should be %s\n", \
                       __location__, nt_errstr(status), nt_errstr(correct)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
@@ -46,12 +47,12 @@ static bool test_lock(struct torture_context *tctx, struct smbcli_state *cli)
 {
        union smb_lock io;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        int fnum;
        const char *fname = BASEDIR "\\test.txt";
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        printf("Testing RAW_LOCK_LOCK\n");
@@ -60,7 +61,7 @@ static bool test_lock(struct torture_context *tctx, struct smbcli_state *cli)
        fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE);
        if (fnum == -1) {
                printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -182,12 +183,12 @@ static bool test_lockx(struct torture_context *tctx, struct smbcli_state *cli)
        union smb_lock io;
        struct smb_lock_entry lock[1];
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        int fnum;
        const char *fname = BASEDIR "\\test.txt";
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        printf("Testing RAW_LOCK_LOCKX\n");
@@ -196,7 +197,7 @@ static bool test_lockx(struct torture_context *tctx, struct smbcli_state *cli)
        fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE);
        if (fnum == -1) {
                printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -362,13 +363,13 @@ static bool test_pidhigh(struct torture_context *tctx,
        union smb_lock io;
        struct smb_lock_entry lock[1];
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        int fnum;
        const char *fname = BASEDIR "\\test.txt";
        uint8_t c = 1;
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        printf("Testing high pid\n");
@@ -379,13 +380,13 @@ static bool test_pidhigh(struct torture_context *tctx,
        fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE);
        if (fnum == -1) {
                printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
        if (smbcli_write(cli->tree, fnum, 0, &c, 0, 1) != 1) {
                printf("Failed to write 1 byte - %s\n", smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -404,7 +405,7 @@ static bool test_pidhigh(struct torture_context *tctx,
 
        if (smbcli_read(cli->tree, fnum, &c, 0, 1) != 1) {
                printf("Failed to read 1 byte - %s\n", smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -414,7 +415,7 @@ static bool test_pidhigh(struct torture_context *tctx,
 
        if (smbcli_read(cli->tree, fnum, &c, 0, 1) == 1) {
                printf("pid is incorrect handled for read with lock!\n");
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -422,7 +423,7 @@ static bool test_pidhigh(struct torture_context *tctx,
 
        if (smbcli_read(cli->tree, fnum, &c, 0, 1) != 1) {
                printf("High pid is used on this server!\n");
-               ret = False;
+               ret = false;
        } else {
                printf("High pid is not used on this server (correct)\n");
        }
@@ -449,14 +450,14 @@ static bool test_async(struct torture_context *tctx,
        union smb_lock io;
        struct smb_lock_entry lock[2];
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        int fnum;
        const char *fname = BASEDIR "\\test.txt";
        time_t t;
        struct smbcli_request *req;
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        printf("Testing LOCKING_ANDX_CANCEL_LOCK\n");
@@ -465,7 +466,7 @@ static bool test_async(struct torture_context *tctx,
        fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE);
        if (fnum == -1) {
                printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -491,7 +492,7 @@ static bool test_async(struct torture_context *tctx,
        req = smb_raw_lock_send(cli->tree, &io);
        if (req == NULL) {
                printf("Failed to setup timed lock (%s)\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -522,7 +523,7 @@ static bool test_async(struct torture_context *tctx,
 
        if (time(NULL) > t+2) {
                printf("lock cancel was not immediate (%s)\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -538,7 +539,7 @@ static bool test_async(struct torture_context *tctx,
        req = smb_raw_lock_send(cli->tree, &io);
        if (req == NULL) {
                printf("Failed to setup timed lock (%s)\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -554,7 +555,7 @@ static bool test_async(struct torture_context *tctx,
        if (time(NULL) > t+2) {
                printf("lock cancel by unlock was not immediate (%s) - took %d secs\n", 
                       __location__, (int)(time(NULL)-t));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -571,7 +572,7 @@ static bool test_async(struct torture_context *tctx,
        req = smb_raw_lock_send(cli->tree, &io);
        if (req == NULL) {
                printf("Failed to setup timed lock (%s)\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -583,24 +584,24 @@ static bool test_async(struct torture_context *tctx,
 
        if (time(NULL) > t+2) {
                printf("lock cancel by close was not immediate (%s)\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
 
        printf("create a new sessions\n");
-       session = smbcli_session_init(cli->transport, tctx, False);
+       session = smbcli_session_init(cli->transport, tctx, false);
        setup.in.sesskey = cli->transport->negotiate.sesskey;
        setup.in.capabilities = cli->transport->negotiate.capabilities;
-       setup.in.workgroup = lp_workgroup();
+       setup.in.workgroup = lp_workgroup(global_loadparm);
        setup.in.credentials = cmdline_credentials;
        status = smb_composite_sesssetup(session, &setup);
        CHECK_STATUS(status, NT_STATUS_OK);
        session->vuid = setup.out.vuid;
 
        printf("create new tree context\n");
-       share = lp_parm_string(-1, "torture", "share");
-       host  = lp_parm_string(-1, "torture", "host");
-       tree = smbcli_tree_init(session, tctx, False);
+       share = lp_parm_string(global_loadparm, NULL, "torture", "share");
+       host  = lp_parm_string(global_loadparm, NULL, "torture", "host");
+       tree = smbcli_tree_init(session, tctx, false);
        tcon.generic.level = RAW_TCON_TCONX;
        tcon.tconx.in.flags = 0;
        tcon.tconx.in.password = data_blob(NULL, 0);
@@ -615,7 +616,7 @@ static bool test_async(struct torture_context *tctx,
        fnum = smbcli_open(tree, fname, O_RDWR|O_CREAT, DENY_NONE);
        if (fnum == -1) {
                printf("Failed to reopen %s - %s\n", fname, smbcli_errstr(tree));
-               ret = False;
+               ret = false;
                goto done;
        }
        io.lockx.level = RAW_LOCK_LOCKX;
@@ -643,7 +644,7 @@ static bool test_async(struct torture_context *tctx,
        req = smb_raw_lock_send(tree, &io);
        if (req == NULL) {
                printf("Failed to setup timed lock (%s)\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -655,7 +656,7 @@ static bool test_async(struct torture_context *tctx,
 
        if (time(NULL) > t+2) {
                printf("lock cancel by exit was not immediate (%s)\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -664,7 +665,7 @@ static bool test_async(struct torture_context *tctx,
        fnum = smbcli_open(tree, fname, O_RDWR|O_CREAT, DENY_NONE);
        if (fnum == -1) {
                printf("Failed to reopen %s - %s\n", fname, smbcli_errstr(tree));
-               ret = False;
+               ret = false;
                goto done;
        }
        io.lockx.level = RAW_LOCK_LOCKX;
@@ -692,7 +693,7 @@ static bool test_async(struct torture_context *tctx,
        req = smb_raw_lock_send(tree, &io);
        if (req == NULL) {
                printf("Failed to setup timed lock (%s)\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -711,7 +712,7 @@ static bool test_async(struct torture_context *tctx,
 
        if (time(NULL) > t+2) {
                printf("lock cancel by ulogoff was not immediate (%s)\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -722,7 +723,7 @@ static bool test_async(struct torture_context *tctx,
        fnum = smbcli_open(tree, fname, O_RDWR|O_CREAT, DENY_NONE);
        if (fnum == -1) {
                printf("Failed to reopen %s - %s\n", fname, smbcli_errstr(tree));
-               ret = False;
+               ret = false;
                goto done;
        }
        io.lockx.level = RAW_LOCK_LOCKX;
@@ -746,7 +747,7 @@ static bool test_async(struct torture_context *tctx,
        req = smb_raw_lock_send(tree, &io);
        if (req == NULL) {
                printf("Failed to setup timed lock (%s)\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -758,7 +759,7 @@ static bool test_async(struct torture_context *tctx,
 
        if (time(NULL) > t+2) {
                printf("lock cancel by tdis was not immediate (%s)\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -778,7 +779,7 @@ static bool test_errorcode(struct torture_context *tctx,
        union smb_open op;
        struct smb_lock_entry lock[2];
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        int fnum, fnum2;
        const char *fname;
        struct smbcli_request *req;
@@ -786,7 +787,7 @@ static bool test_errorcode(struct torture_context *tctx,
        int t;
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        printf("Testing LOCK_NOT_GRANTED vs. FILE_LOCK_CONFLICT\n");
@@ -1104,7 +1105,7 @@ next_run:
        fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE);
        if (fnum == -1) {
                printf("Failed to reopen %s - %s\n", fname, smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
        io.lockx.level = RAW_LOCK_LOCKX;
@@ -1125,7 +1126,7 @@ next_run:
        req = smb_raw_lock_send(cli->tree, &io);
        if (req == NULL) {
                printf("Failed to setup timed lock (%s)\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -1143,7 +1144,7 @@ next_run:
 
        if (time(NULL) < start+1) {
                printf("lock comes back to early (%s)\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -1152,7 +1153,7 @@ next_run:
        fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE);
        if (fnum == -1) {
                printf("Failed to reopen %s - %s\n", fname, smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
        io.lockx.level = RAW_LOCK_LOCKX;
@@ -1173,7 +1174,7 @@ next_run:
        req = smb_raw_lock_send(cli->tree, &io);
        if (req == NULL) {
                printf("Failed to setup timed lock (%s)\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -1193,7 +1194,7 @@ next_run:
 
        if (time(NULL) < start+1) {
                printf("lock comes back to early (%s)\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -1202,7 +1203,7 @@ next_run:
        fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE);
        if (fnum == -1) {
                printf("Failed to reopen %s - %s\n", fname, smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
        io.lockx.level = RAW_LOCK_LOCKX;
@@ -1223,7 +1224,7 @@ next_run:
        req = smb_raw_lock_send(cli->tree, &io);
        if (req == NULL) {
                printf("Failed to setup timed lock (%s)\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -1239,7 +1240,7 @@ next_run:
 
        if (time(NULL) < start+1) {
                printf("lock comes back to early (%s)\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -1259,13 +1260,13 @@ static bool test_changetype(struct torture_context *tctx,
        union smb_lock io;
        struct smb_lock_entry lock[2];
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        int fnum;
        uint8_t c = 0;
        const char *fname = BASEDIR "\\test.txt";
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        printf("Testing LOCKING_ANDX_CHANGE_LOCKTYPE\n");
@@ -1274,7 +1275,7 @@ static bool test_changetype(struct torture_context *tctx,
        fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE);
        if (fnum == -1) {
                printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -1293,7 +1294,7 @@ static bool test_changetype(struct torture_context *tctx,
 
        if (smbcli_write(cli->tree, fnum, 0, &c, 100, 1) == 1) {
                printf("allowed write on read locked region (%s)\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -1304,7 +1305,7 @@ static bool test_changetype(struct torture_context *tctx,
 
        if (smbcli_write(cli->tree, fnum, 0, &c, 100, 1) == 1) {
                printf("allowed write after lock change (%s)\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
 
index 44b60b8695ec06a6438619e722ac7d56a6942577..855364b169738dca23d33b773302f25bcef0b0f3 100644 (file)
@@ -30,6 +30,7 @@
 #include "lib/cmdline/popt_common.h"
 #include "libcli/composite/composite.h"
 #include "libcli/smb_composite/smb_composite.h"
+#include "param/param.h"
 
 #define BASEDIR "\\benchlock"
 #define FNAME BASEDIR "\\lock.dat"
@@ -188,8 +189,8 @@ static void reopen_connection(struct event_context *ev, struct timed_event *te,
        io->in.service      = share;
        io->in.service_type = state->service_type;
        io->in.credentials  = cmdline_credentials;
-       io->in.fallback_to_anonymous = False;
-       io->in.workgroup    = lp_workgroup();
+       io->in.fallback_to_anonymous = false;
+       io->in.workgroup    = lp_workgroup(global_loadparm);
 
        /* kill off the remnants of the old connection */
        talloc_free(state->tree);
@@ -302,9 +303,9 @@ static void report_rate(struct event_context *ev, struct timed_event *te,
 /* 
    benchmark locking calls
 */
-BOOL torture_bench_lock(struct torture_context *torture)
+bool torture_bench_lock(struct torture_context *torture)
 {
-       BOOL ret = True;
+       bool ret = true;
        TALLOC_CTX *mem_ctx = talloc_new(torture);
        int i;
        int timelimit = torture_setting_int(torture, "timelimit", 10);
@@ -317,7 +318,7 @@ BOOL torture_bench_lock(struct torture_context *torture)
 
        progress = torture_setting_bool(torture, "progress", true);
 
-       nprocs = lp_parm_int(-1, "torture", "nprocs", 4);
+       nprocs = lp_parm_int(global_loadparm, NULL, "torture", "nprocs", 4);
 
        state = talloc_zero_array(mem_ctx, struct benchlock_state, nprocs);
 
@@ -327,7 +328,7 @@ BOOL torture_bench_lock(struct torture_context *torture)
                state[i].client_num = i;
                state[i].ev = ev;
                if (!torture_open_connection_ev(&cli, i, ev)) {
-                       return False;
+                       return false;
                }
                talloc_steal(mem_ctx, state);
                state[i].tree = cli->tree;
index 0e2fd1afe0932d03d3255a23926f544652d2870f..f502b10a693923856ace5692bd6ae95e981e3db7 100644 (file)
@@ -22,6 +22,7 @@
 #include "libcli/raw/libcliraw.h"
 #include "libcli/libcli.h"
 #include "torture/util.h"
+#include "param/param.h"
 
 #define BASEDIR "\\mkdirtest"
 
        if (!NT_STATUS_EQUAL(status, correct)) { \
                printf("(%s) Incorrect status %s - should be %s\n", \
                       __location__, nt_errstr(status), nt_errstr(correct)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
 /*
   test mkdir ops
 */
-static BOOL test_mkdir(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_mkdir(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        union smb_mkdir md;
        struct smb_rmdir rd;
        const char *path = BASEDIR "\\mkdir.dir";
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        /* 
@@ -129,7 +130,7 @@ static BOOL test_mkdir(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        md.t2mkdir.in.eas[2].value = data_blob_talloc(mem_ctx, "xx1", 3);
        status = smb_raw_mkdir(cli->tree, &md);
 
-       if (lp_parm_bool(-1, "torture", "samba3", False)
+       if (lp_parm_bool(global_loadparm, NULL, "torture", "samba3", false)
            && NT_STATUS_EQUAL(status, NT_STATUS_EAS_NOT_SUPPORTED)) {
                d_printf("EAS not supported -- not treating as fatal\n");
        }
@@ -160,8 +161,8 @@ done:
 /* 
    basic testing of all RAW_MKDIR_* calls 
 */
-BOOL torture_raw_mkdir(struct torture_context *torture, 
-                                          struct smbcli_state *cli)
+bool torture_raw_mkdir(struct torture_context *torture, 
+                      struct smbcli_state *cli)
 {
        bool ret = true;
 
index b67d756ed95c80fa7326edbfc10a03fdcf2a191a..846a9787cb455da0a445ec8b22ce199483593732 100644 (file)
@@ -30,7 +30,7 @@
        if (!NT_STATUS_EQUAL(status, correct)) { \
                printf("(%s) Incorrect status %s - should be %s\n", \
                       __location__, nt_errstr(status), nt_errstr(correct)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
 /*
   test the delayed reply to a open that leads to a sharing violation
 */
-static BOOL test_mux_open(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_mux_open(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        union smb_open io;
        NTSTATUS status;
        int fnum1, fnum2;
-       BOOL ret = True;
+       bool ret = true;
        struct smbcli_request *req1, *req2;
        struct timeval tv;
        double d;
@@ -104,7 +104,7 @@ static BOOL test_mux_open(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        d = timeval_elapsed(&tv);
        if (d > 0.25) {
                printf("bad timeout after cancel - %.2f should be <0.25\n", d);
-               ret = False;
+               ret = false;
        }
 
        printf("close the 2nd sync open\n");
@@ -117,7 +117,7 @@ static BOOL test_mux_open(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        d = timeval_elapsed(&tv);
        if (d > 0.25) {
                printf("bad timeout for async conflict - %.2f should be <0.25\n", d);
-               ret = False;
+               ret = false;
        } else {
                printf("async open delay %.2f\n", d);
        }
@@ -141,12 +141,12 @@ done:
 /*
   test a write that hits a byte range lock and send the close after the write
 */
-static BOOL test_mux_write(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_mux_write(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        union smb_write io;
        NTSTATUS status;
        int fnum;
-       BOOL ret = True;
+       bool ret = true;
        struct smbcli_request *req;
 
        printf("testing multiplexed lock/write/close\n");
@@ -154,7 +154,7 @@ static BOOL test_mux_write(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        fnum = smbcli_open(cli->tree, BASEDIR "\\write.dat", O_RDWR | O_CREAT, DENY_NONE);
        if (fnum == -1) {
                printf("open failed in mux_write - %s\n", smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -163,7 +163,7 @@ static BOOL test_mux_write(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        /* lock a range */
        if (NT_STATUS_IS_ERR(smbcli_lock(cli->tree, fnum, 0, 4, 0, WRITE_LOCK))) {
                printf("lock failed in mux_write - %s\n", smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -176,7 +176,7 @@ static BOOL test_mux_write(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        io.writex.in.wmode = 0;
        io.writex.in.remaining = 0;
        io.writex.in.count = 4;
-       io.writex.in.data = (void *)&fnum;      
+       io.writex.in.data = (const uint8_t *)&fnum;     
        req = smb_raw_write_send(cli->tree, &io);
 
        /* unlock the range */
@@ -197,12 +197,12 @@ done:
 /*
   test a lock that conflicts with an existing lock
 */
-static BOOL test_mux_lock(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_mux_lock(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        union smb_lock io;
        NTSTATUS status;
        int fnum;
-       BOOL ret = True;
+       bool ret = true;
        struct smbcli_request *req;
        struct smb_lock_entry lock[1];
        struct timeval t;
@@ -212,7 +212,7 @@ static BOOL test_mux_lock(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        fnum = smbcli_open(cli->tree, BASEDIR "\\write.dat", O_RDWR | O_CREAT, DENY_NONE);
        if (fnum == -1) {
                printf("open failed in mux_write - %s\n", smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -256,7 +256,7 @@ static BOOL test_mux_lock(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        printf("async lock took %.2f msec\n", timeval_elapsed(&t) * 1000);
        if (timeval_elapsed(&t) > 0.1) {
                printf("failed to trigger early lock retry\n");
-               return False;           
+               return false;           
        }
 
        printf("reopening with an exit\n");
@@ -330,7 +330,7 @@ static BOOL test_mux_lock(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        printf("async lock exit took %.2f msec\n", timeval_elapsed(&t) * 1000);
        if (timeval_elapsed(&t) > 0.1) {
                printf("failed to trigger early lock failure\n");
-               return False;           
+               return false;           
        }
 
 done:
index 1540a4a2dd2d27a3fbbe1436dc123e1b428401c6..96c7e4f9475553d16afb715aeb0ec1747f97aac4 100644 (file)
@@ -23,6 +23,7 @@
 #include "libcli/libcli.h"
 #include "system/filesys.h"
 #include "torture/util.h"
+#include "param/param.h"
 
 #define BASEDIR "\\test_notify"
 
@@ -30,7 +31,7 @@
        if (!NT_STATUS_EQUAL(status, correct)) { \
                printf("(%d) Incorrect status %s - should be %s\n", \
                       __LINE__, nt_errstr(status), nt_errstr(correct)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
        if ((v) != (correct)) { \
                printf("(%d) wrong value for %s  0x%x should be 0x%x\n", \
                       __LINE__, #v, (int)v, (int)correct); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
 #define CHECK_WSTR(field, value, flags) do { \
        if (!field.s || strcmp(field.s, value) || wire_bad_flags(&field, flags, cli->transport)) { \
                printf("(%d) %s [%s] != %s\n",  __LINE__, #field, field.s, value); \
-                       ret = False; \
+                       ret = false; \
                goto done; \
        }} while (0)
 
 /* 
    basic testing of change notify on directories
 */
-static BOOL test_notify_dir(struct smbcli_state *cli, struct smbcli_state *cli2, 
+static bool test_notify_dir(struct smbcli_state *cli, struct smbcli_state *cli2, 
                            TALLOC_CTX *mem_ctx)
 {
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        union smb_notify notify;
        union smb_open io;
@@ -98,7 +99,7 @@ static BOOL test_notify_dir(struct smbcli_state *cli, struct smbcli_state *cli2,
        notify.nttrans.in.buffer_size = 1000;
        notify.nttrans.in.completion_filter = FILE_NOTIFY_CHANGE_NAME;
        notify.nttrans.in.file.fnum = fnum;
-       notify.nttrans.in.recursive = True;
+       notify.nttrans.in.recursive = true;
 
        printf("testing notify cancel\n");
 
@@ -158,7 +159,7 @@ static BOOL test_notify_dir(struct smbcli_state *cli, struct smbcli_state *cli2,
                if (fnum3 == -1) {
                        printf("Failed to create %s - %s\n", 
                               fname, smbcli_errstr(cli->tree));
-                       ret = False;
+                       ret = false;
                        goto done;
                }
                talloc_free(fname);
@@ -266,7 +267,7 @@ done:
  * pair in any of the three following notify_changes.
  */
 
-static BOOL check_rename_reply(struct smbcli_state *cli,
+static bool check_rename_reply(struct smbcli_state *cli,
                               int line,
                               struct notify_changes *actions,
                               uint32_t action, const char *name)
@@ -281,22 +282,22 @@ static BOOL check_rename_reply(struct smbcli_state *cli,
                                               cli->transport))) {
                                printf("(%d) name [%s] != %s\n", line,
                                       actions[i].name.s, name);
-                               return False;
+                               return false;
                        }
-                       return True;
+                       return true;
                }
        }
 
        printf("(%d) expected action %d, not found\n", line, action);
-       return False;
+       return false;
 }
 
 /* 
    testing of recursive change notify
 */
-static BOOL test_notify_recursive(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_notify_recursive(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        union smb_notify notify;
        union smb_open io;
@@ -332,10 +333,10 @@ static BOOL test_notify_recursive(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        notify.nttrans.in.completion_filter = FILE_NOTIFY_CHANGE_NAME | FILE_NOTIFY_CHANGE_ATTRIBUTES | FILE_NOTIFY_CHANGE_CREATION;
        notify.nttrans.in.file.fnum = fnum;
 
-       notify.nttrans.in.recursive = True;
+       notify.nttrans.in.recursive = true;
        req1 = smb_raw_changenotify_send(cli->tree, &notify);
 
-       notify.nttrans.in.recursive = False;
+       notify.nttrans.in.recursive = false;
        req2 = smb_raw_changenotify_send(cli->tree, &notify);
 
        /* cancel initial requests so the buffer is setup */
@@ -356,7 +357,7 @@ static BOOL test_notify_recursive(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        smbcli_rename(cli->tree, BASEDIR "\\subname2-r", BASEDIR "\\subname3-r");
 
        notify.nttrans.in.completion_filter = 0;
-       notify.nttrans.in.recursive = True;
+       notify.nttrans.in.recursive = true;
        msleep(200);
        req1 = smb_raw_changenotify_send(cli->tree, &notify);
 
@@ -364,7 +365,7 @@ static BOOL test_notify_recursive(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        smbcli_rmdir(cli->tree, BASEDIR "\\subdir-name");
        smbcli_unlink(cli->tree, BASEDIR "\\subname3-r");
 
-       notify.nttrans.in.recursive = False;
+       notify.nttrans.in.recursive = false;
        req2 = smb_raw_changenotify_send(cli->tree, &notify);
 
        status = smb_raw_changenotify_recv(req1, mem_ctx, &notify);
@@ -425,15 +426,14 @@ done:
 /* 
    testing of change notify mask change
 */
-static BOOL test_notify_mask_change(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_notify_mask_change(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        union smb_notify notify;
        union smb_open io;
        int fnum;
        struct smbcli_request *req1, *req2;
-       union smb_setfileinfo sfinfo;
 
        printf("TESTING CHANGE NOTIFY WITH MASK CHANGE\n");
 
@@ -464,10 +464,10 @@ static BOOL test_notify_mask_change(struct smbcli_state *cli, TALLOC_CTX *mem_ct
        notify.nttrans.in.completion_filter = FILE_NOTIFY_CHANGE_ATTRIBUTES;
        notify.nttrans.in.file.fnum = fnum;
 
-       notify.nttrans.in.recursive = True;
+       notify.nttrans.in.recursive = true;
        req1 = smb_raw_changenotify_send(cli->tree, &notify);
 
-       notify.nttrans.in.recursive = False;
+       notify.nttrans.in.recursive = false;
        req2 = smb_raw_changenotify_send(cli->tree, &notify);
 
        /* cancel initial requests so the buffer is setup */
@@ -479,7 +479,7 @@ static BOOL test_notify_mask_change(struct smbcli_state *cli, TALLOC_CTX *mem_ct
        status = smb_raw_changenotify_recv(req2, mem_ctx, &notify);
        CHECK_STATUS(status, NT_STATUS_CANCELLED);
 
-       notify.nttrans.in.recursive = True;
+       notify.nttrans.in.recursive = true;
        req1 = smb_raw_changenotify_send(cli->tree, &notify);
 
        /* Set to hidden then back again. */
@@ -499,10 +499,10 @@ static BOOL test_notify_mask_change(struct smbcli_state *cli, TALLOC_CTX *mem_ct
         * fnum it seems to be fixed until the fnum is closed. */
 
        notify.nttrans.in.completion_filter = FILE_NOTIFY_CHANGE_NAME | FILE_NOTIFY_CHANGE_ATTRIBUTES | FILE_NOTIFY_CHANGE_CREATION;
-       notify.nttrans.in.recursive = True;
+       notify.nttrans.in.recursive = true;
        req1 = smb_raw_changenotify_send(cli->tree, &notify);
 
-       notify.nttrans.in.recursive = False;
+       notify.nttrans.in.recursive = false;
        req2 = smb_raw_changenotify_send(cli->tree, &notify);
 
        smbcli_mkdir(cli->tree, BASEDIR "\\subdir-name");
@@ -544,9 +544,9 @@ done:
 /* 
    testing of mask bits for change notify
 */
-static BOOL test_notify_mask(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_notify_mask(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        union smb_notify notify;
        union smb_open io;
@@ -580,7 +580,7 @@ static BOOL test_notify_mask(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 
        notify.nttrans.level = RAW_NOTIFY_NTTRANS;
        notify.nttrans.in.buffer_size = 1000;
-       notify.nttrans.in.recursive = True;
+       notify.nttrans.in.recursive = true;
 
 #define NOTIFY_MASK_TEST(setup, op, cleanup, Action, expected, nchanges) \
        do { for (mask=i=0;i<32;i++) { \
@@ -611,21 +611,21 @@ static BOOL test_notify_mask(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
                               nchanges, \
                               notify.nttrans.out.changes[0].action, \
                               notify.nttrans.in.completion_filter); \
-                       ret = False; \
+                       ret = false; \
                } else if (notify.nttrans.out.changes[0].action != Action) { \
                        printf("ERROR: nchanges=%d action=%d expectedAction=%d filter=0x%08x\n", \
                               notify.nttrans.out.num_changes, \
                               notify.nttrans.out.changes[0].action, \
                               Action, \
                               notify.nttrans.in.completion_filter); \
-                       ret = False; \
+                       ret = false; \
                } else if (strcmp(notify.nttrans.out.changes[0].name.s, "tname1") != 0) { \
                        printf("ERROR: nchanges=%d action=%d filter=0x%08x name=%s\n", \
                               notify.nttrans.out.num_changes, \
                               notify.nttrans.out.changes[0].action, \
                               notify.nttrans.in.completion_filter, \
                               notify.nttrans.out.changes[0].name.s);   \
-                       ret = False; \
+                       ret = false; \
                } \
                mask |= (1<<i); \
        } \
@@ -633,7 +633,7 @@ static BOOL test_notify_mask(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
                if (((expected) & ~mask) != 0) { \
                        printf("ERROR: trigger on too few bits. mask=0x%08x expected=0x%08x\n", \
                               mask, expected); \
-                       ret = False; \
+                       ret = false; \
                } else { \
                        printf("WARNING: trigger on too many bits. mask=0x%08x expected=0x%08x\n", \
                               mask, expected); \
@@ -711,7 +711,7 @@ static BOOL test_notify_mask(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
                NOTIFY_ACTION_MODIFIED,
                FILE_NOTIFY_CHANGE_ATTRIBUTES, 1);
 
-       if (lp_parm_bool(-1, "torture", "samba3", False)) {
+       if (lp_parm_bool(global_loadparm, NULL, "torture", "samba3", false)) {
                printf("Samba3 does not yet support create times "
                       "everywhere\n");
        }
@@ -776,10 +776,10 @@ done:
 /*
   basic testing of change notify on files
 */
-static BOOL test_notify_file(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_notify_file(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        union smb_open io;
        union smb_close cl;
        union smb_notify notify;
@@ -811,7 +811,7 @@ static BOOL test_notify_file(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        notify.nttrans.in.file.fnum = fnum;
        notify.nttrans.in.buffer_size = 1000;
        notify.nttrans.in.completion_filter = FILE_NOTIFY_CHANGE_STREAM_NAME;
-       notify.nttrans.in.recursive = False;
+       notify.nttrans.in.recursive = false;
 
        printf("testing if notifies on file handles are invalid (should be)\n");
 
@@ -836,9 +836,9 @@ done:
 /*
   basic testing of change notifies followed by a tdis
 */
-static BOOL test_notify_tdis(TALLOC_CTX *mem_ctx)
+static bool test_notify_tdis(TALLOC_CTX *mem_ctx)
 {
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        union smb_notify notify;
        union smb_open io;
@@ -849,7 +849,7 @@ static BOOL test_notify_tdis(TALLOC_CTX *mem_ctx)
        printf("TESTING CHANGE NOTIFY FOLLOWED BY TDIS\n");
 
        if (!torture_open_connection(&cli, 0)) {
-               return False;
+               return false;
        }
 
        /*
@@ -878,7 +878,7 @@ static BOOL test_notify_tdis(TALLOC_CTX *mem_ctx)
        notify.nttrans.in.buffer_size = 1000;
        notify.nttrans.in.completion_filter = FILE_NOTIFY_CHANGE_NAME;
        notify.nttrans.in.file.fnum = fnum;
-       notify.nttrans.in.recursive = True;
+       notify.nttrans.in.recursive = true;
 
        req = smb_raw_changenotify_send(cli->tree, &notify);
 
@@ -898,9 +898,9 @@ done:
 /*
   basic testing of change notifies followed by a exit
 */
-static BOOL test_notify_exit(TALLOC_CTX *mem_ctx)
+static bool test_notify_exit(TALLOC_CTX *mem_ctx)
 {
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        union smb_notify notify;
        union smb_open io;
@@ -911,7 +911,7 @@ static BOOL test_notify_exit(TALLOC_CTX *mem_ctx)
        printf("TESTING CHANGE NOTIFY FOLLOWED BY EXIT\n");
 
        if (!torture_open_connection(&cli, 0)) {
-               return False;
+               return false;
        }
 
        /*
@@ -940,7 +940,7 @@ static BOOL test_notify_exit(TALLOC_CTX *mem_ctx)
        notify.nttrans.in.buffer_size = 1000;
        notify.nttrans.in.completion_filter = FILE_NOTIFY_CHANGE_NAME;
        notify.nttrans.in.file.fnum = fnum;
-       notify.nttrans.in.recursive = True;
+       notify.nttrans.in.recursive = true;
 
        req = smb_raw_changenotify_send(cli->tree, &notify);
 
@@ -959,9 +959,9 @@ done:
 /*
   basic testing of change notifies followed by a ulogoff
 */
-static BOOL test_notify_ulogoff(TALLOC_CTX *mem_ctx)
+static bool test_notify_ulogoff(TALLOC_CTX *mem_ctx)
 {
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        union smb_notify notify;
        union smb_open io;
@@ -972,7 +972,7 @@ static BOOL test_notify_ulogoff(TALLOC_CTX *mem_ctx)
        printf("TESTING CHANGE NOTIFY FOLLOWED BY ULOGOFF\n");
 
        if (!torture_open_connection(&cli, 0)) {
-               return False;
+               return false;
        }
 
        /*
@@ -1001,7 +1001,7 @@ static BOOL test_notify_ulogoff(TALLOC_CTX *mem_ctx)
        notify.nttrans.in.buffer_size = 1000;
        notify.nttrans.in.completion_filter = FILE_NOTIFY_CHANGE_NAME;
        notify.nttrans.in.file.fnum = fnum;
-       notify.nttrans.in.recursive = True;
+       notify.nttrans.in.recursive = true;
 
        req = smb_raw_changenotify_send(cli->tree, &notify);
 
@@ -1019,7 +1019,7 @@ done:
 
 static void tcp_dis_handler(struct smbcli_transport *t, void *p)
 {
-       struct smbcli_state *cli = p;
+       struct smbcli_state *cli = (struct smbcli_state *)p;
        smbcli_transport_dead(cli->transport, NT_STATUS_LOCAL_DISCONNECT);
        cli->transport = NULL;
        cli->tree = NULL;
@@ -1027,9 +1027,9 @@ static void tcp_dis_handler(struct smbcli_transport *t, void *p)
 /*
   basic testing of change notifies followed by tcp disconnect
 */
-static BOOL test_notify_tcp_dis(TALLOC_CTX *mem_ctx)
+static bool test_notify_tcp_dis(TALLOC_CTX *mem_ctx)
 {
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        union smb_notify notify;
        union smb_open io;
@@ -1040,7 +1040,7 @@ static BOOL test_notify_tcp_dis(TALLOC_CTX *mem_ctx)
        printf("TESTING CHANGE NOTIFY FOLLOWED BY TCP DISCONNECT\n");
 
        if (!torture_open_connection(&cli, 0)) {
-               return False;
+               return false;
        }
 
        /*
@@ -1069,7 +1069,7 @@ static BOOL test_notify_tcp_dis(TALLOC_CTX *mem_ctx)
        notify.nttrans.in.buffer_size = 1000;
        notify.nttrans.in.completion_filter = FILE_NOTIFY_CHANGE_NAME;
        notify.nttrans.in.file.fnum = fnum;
-       notify.nttrans.in.recursive = True;
+       notify.nttrans.in.recursive = true;
 
        req = smb_raw_changenotify_send(cli->tree, &notify);
 
@@ -1086,9 +1086,9 @@ done:
 /* 
    test setting up two change notify requests on one handle
 */
-static BOOL test_notify_double(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_notify_double(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        union smb_notify notify;
        union smb_open io;
@@ -1123,7 +1123,7 @@ static BOOL test_notify_double(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        notify.nttrans.in.buffer_size = 1000;
        notify.nttrans.in.completion_filter = FILE_NOTIFY_CHANGE_NAME;
        notify.nttrans.in.file.fnum = fnum;
-       notify.nttrans.in.recursive = True;
+       notify.nttrans.in.recursive = true;
 
        req1 = smb_raw_changenotify_send(cli->tree, &notify);
        req2 = smb_raw_changenotify_send(cli->tree, &notify);
@@ -1151,45 +1151,45 @@ done:
 /* 
    test multiple change notifies at different depths and with/without recursion
 */
-static BOOL test_notify_tree(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_notify_tree(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
-       BOOL ret = True;
+       bool ret = true;
        union smb_notify notify;
        union smb_open io;
        struct smbcli_request *req;
        struct timeval tv;
        struct {
                const char *path;
-               BOOL recursive;
+               bool recursive;
                uint32_t filter;
                int expected;
                int fnum;
                int counted;
        } dirs[] = {
-               {BASEDIR "\\abc",               True, FILE_NOTIFY_CHANGE_NAME, 30 },
-               {BASEDIR "\\zqy",               True, FILE_NOTIFY_CHANGE_NAME, 8 },
-               {BASEDIR "\\atsy",              True, FILE_NOTIFY_CHANGE_NAME, 4 },
-               {BASEDIR "\\abc\\foo",          True,  FILE_NOTIFY_CHANGE_NAME, 2 },
-               {BASEDIR "\\abc\\blah",         True,  FILE_NOTIFY_CHANGE_NAME, 13 },
-               {BASEDIR "\\abc\\blah",         False, FILE_NOTIFY_CHANGE_NAME, 7 },
-               {BASEDIR "\\abc\\blah\\a",      True, FILE_NOTIFY_CHANGE_NAME, 2 },
-               {BASEDIR "\\abc\\blah\\b",      True, FILE_NOTIFY_CHANGE_NAME, 2 },
-               {BASEDIR "\\abc\\blah\\c",      True, FILE_NOTIFY_CHANGE_NAME, 2 },
-               {BASEDIR "\\abc\\fooblah",      True, FILE_NOTIFY_CHANGE_NAME, 2 },
-               {BASEDIR "\\zqy\\xx",           True, FILE_NOTIFY_CHANGE_NAME, 2 },
-               {BASEDIR "\\zqy\\yyy",          True, FILE_NOTIFY_CHANGE_NAME, 2 },
-               {BASEDIR "\\zqy\\..",           True, FILE_NOTIFY_CHANGE_NAME, 40 },
-               {BASEDIR,                       True, FILE_NOTIFY_CHANGE_NAME, 40 },
-               {BASEDIR,                       False,FILE_NOTIFY_CHANGE_NAME, 6 },
-               {BASEDIR "\\atsy",              False,FILE_NOTIFY_CHANGE_NAME, 4 },
-               {BASEDIR "\\abc",               True, FILE_NOTIFY_CHANGE_NAME, 24 },
-               {BASEDIR "\\abc",               False,FILE_NOTIFY_CHANGE_FILE_NAME, 0 },
-               {BASEDIR "\\abc",               True, FILE_NOTIFY_CHANGE_FILE_NAME, 0 },
-               {BASEDIR "\\abc",               True, FILE_NOTIFY_CHANGE_NAME, 24 },
+               {BASEDIR "\\abc",               true, FILE_NOTIFY_CHANGE_NAME, 30 },
+               {BASEDIR "\\zqy",               true, FILE_NOTIFY_CHANGE_NAME, 8 },
+               {BASEDIR "\\atsy",              true, FILE_NOTIFY_CHANGE_NAME, 4 },
+               {BASEDIR "\\abc\\foo",          true,  FILE_NOTIFY_CHANGE_NAME, 2 },
+               {BASEDIR "\\abc\\blah",         true,  FILE_NOTIFY_CHANGE_NAME, 13 },
+               {BASEDIR "\\abc\\blah",         false, FILE_NOTIFY_CHANGE_NAME, 7 },
+               {BASEDIR "\\abc\\blah\\a",      true, FILE_NOTIFY_CHANGE_NAME, 2 },
+               {BASEDIR "\\abc\\blah\\b",      true, FILE_NOTIFY_CHANGE_NAME, 2 },
+               {BASEDIR "\\abc\\blah\\c",      true, FILE_NOTIFY_CHANGE_NAME, 2 },
+               {BASEDIR "\\abc\\fooblah",      true, FILE_NOTIFY_CHANGE_NAME, 2 },
+               {BASEDIR "\\zqy\\xx",           true, FILE_NOTIFY_CHANGE_NAME, 2 },
+               {BASEDIR "\\zqy\\yyy",          true, FILE_NOTIFY_CHANGE_NAME, 2 },
+               {BASEDIR "\\zqy\\..",           true, FILE_NOTIFY_CHANGE_NAME, 40 },
+               {BASEDIR,                       true, FILE_NOTIFY_CHANGE_NAME, 40 },
+               {BASEDIR,                       false,FILE_NOTIFY_CHANGE_NAME, 6 },
+               {BASEDIR "\\atsy",              false,FILE_NOTIFY_CHANGE_NAME, 4 },
+               {BASEDIR "\\abc",               true, FILE_NOTIFY_CHANGE_NAME, 24 },
+               {BASEDIR "\\abc",               false,FILE_NOTIFY_CHANGE_FILE_NAME, 0 },
+               {BASEDIR "\\abc",               true, FILE_NOTIFY_CHANGE_FILE_NAME, 0 },
+               {BASEDIR "\\abc",               true, FILE_NOTIFY_CHANGE_NAME, 24 },
        };
        int i;
        NTSTATUS status;
-       BOOL all_done = False;
+       bool all_done = false;
 
        printf("TESTING CHANGE NOTIFY FOR DIFFERENT DEPTHS\n");
 
@@ -1248,11 +1248,11 @@ static BOOL test_notify_tree(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
                        dirs[i].counted += notify.nttrans.out.num_changes;
                }
                
-               all_done = True;
+               all_done = true;
 
                for (i=0;i<ARRAY_SIZE(dirs);i++) {
                        if (dirs[i].counted != dirs[i].expected) {
-                               all_done = False;
+                               all_done = false;
                        }
                }
        } while (!all_done && timeval_elapsed(&tv) < 20);
@@ -1263,7 +1263,7 @@ static BOOL test_notify_tree(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
                if (dirs[i].counted != dirs[i].expected) {
                        printf("ERROR: i=%d expected %d got %d for '%s'\n",
                               i, dirs[i].expected, dirs[i].counted, dirs[i].path);
-                       ret = False;
+                       ret = false;
                }
        }
 
@@ -1284,8 +1284,8 @@ done:
    basic testing of change notify
 */
 bool torture_raw_notify(struct torture_context *torture, 
-                                               struct smbcli_state *cli, 
-                                               struct smbcli_state *cli2)
+                       struct smbcli_state *cli, 
+                       struct smbcli_state *cli2)
 {
        bool ret = true;
                
index f8fa4ff8febb8290de07a58444703878ae32a9f4..c4ccc0eb175d43a92950b67610822bfbac52ca4f 100644 (file)
@@ -28,6 +28,7 @@
 #include "torture/util.h"
 #include "auth/credentials/credentials.h"
 #include "lib/cmdline/popt_common.h"
+#include "param/param.h"
 
 /* enum for whether reads/writes are possible on a file */
 enum rdwr_mode {RDWR_NONE, RDWR_RDONLY, RDWR_WRONLY, RDWR_RDWR};
@@ -40,8 +41,8 @@ enum rdwr_mode {RDWR_NONE, RDWR_RDONLY, RDWR_WRONLY, RDWR_RDWR};
 static enum rdwr_mode check_rdwr(struct smbcli_tree *tree, int fnum)
 {
        uint8_t c = 1;
-       BOOL can_read  = (smbcli_read(tree, fnum, &c, 0, 1) == 1);
-       BOOL can_write = (smbcli_write(tree, fnum, 0, &c, 0, 1) == 1);
+       bool can_read  = (smbcli_read(tree, fnum, &c, 0, 1) == 1);
+       bool can_write = (smbcli_write(tree, fnum, 0, &c, 0, 1) == 1);
        if ( can_read &&  can_write) return RDWR_RDWR;
        if ( can_read && !can_write) return RDWR_RDONLY;
        if (!can_read &&  can_write) return RDWR_WRONLY;
@@ -66,7 +67,7 @@ static const char *rdwr_string(enum rdwr_mode m)
        if (!NT_STATUS_EQUAL(status, correct)) { \
                printf("(%s) Incorrect status %s - should be %s\n", \
                       __location__, nt_errstr(status), nt_errstr(correct)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
@@ -74,7 +75,7 @@ static const char *rdwr_string(enum rdwr_mode m)
        fnum = create_complex_file(cli, mem_ctx, fname); \
        if (fnum == -1) { \
                printf("(%s) Failed to create %s - %s\n", __location__, fname, smbcli_errstr(cli->tree)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
@@ -83,7 +84,7 @@ static const char *rdwr_string(enum rdwr_mode m)
        if (m != correct) { \
                printf("(%s) Incorrect readwrite mode %s - expected %s\n", \
                       __location__, rdwr_string(m), rdwr_string(correct)); \
-               ret = False; \
+               ret = false; \
        }} while (0)
 
 #define CHECK_TIME(t, field) do { \
@@ -100,7 +101,7 @@ static const char *rdwr_string(enum rdwr_mode m)
                       timestring(mem_ctx, t1), \
                       timestring(mem_ctx, t2)); \
                dump_all_info(mem_ctx, &finfo); \
-               ret = False; \
+               ret = false; \
        }} while (0)
 
 #define CHECK_NTTIME(t, field) do { \
@@ -116,7 +117,7 @@ static const char *rdwr_string(enum rdwr_mode m)
                       nt_time_string(mem_ctx, t), \
                       nt_time_string(mem_ctx, t2)); \
                dump_all_info(mem_ctx, &finfo); \
-               ret = False; \
+               ret = false; \
        }} while (0)
 
 #define CHECK_ALL_INFO(v, field) do { \
@@ -128,14 +129,14 @@ static const char *rdwr_string(enum rdwr_mode m)
                printf("(%s) wrong value for field %s  0x%x - 0x%x\n", \
                       __location__, #field, (int)v, (int)(finfo.all_info.out.field)); \
                dump_all_info(mem_ctx, &finfo); \
-               ret = False; \
+               ret = false; \
        }} while (0)
 
 #define CHECK_VAL(v, correct) do { \
        if ((v) != (correct)) { \
                printf("(%s) wrong value for %s  0x%x - should be 0x%x\n", \
                       __location__, #v, (int)(v), (int)correct); \
-               ret = False; \
+               ret = false; \
        }} while (0)
 
 #define SET_ATTRIB(sattrib) do { \
@@ -153,14 +154,14 @@ static const char *rdwr_string(enum rdwr_mode m)
 /*
   test RAW_OPEN_OPEN
 */
-static BOOL test_open(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_open(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        union smb_open io;
        union smb_fileinfo finfo;
        const char *fname = BASEDIR "\\torture_open.txt";
        NTSTATUS status;
        int fnum = -1, fnum2;
-       BOOL ret = True;
+       bool ret = true;
 
        printf("Checking RAW_OPEN_OPEN\n");
 
@@ -264,7 +265,7 @@ done:
 /*
   test RAW_OPEN_OPENX
 */
-static BOOL test_openx(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_openx(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        union smb_open io;
        union smb_fileinfo finfo;
@@ -272,26 +273,26 @@ static BOOL test_openx(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        const char *fname_exe = BASEDIR "\\torture_openx.exe";
        NTSTATUS status;
        int fnum = -1, fnum2;
-       BOOL ret = True;
+       bool ret = true;
        int i;
        struct timeval tv;
        struct {
                uint16_t open_func;
-               BOOL with_file;
+               bool with_file;
                NTSTATUS correct_status;
        } open_funcs[] = {
-               { OPENX_OPEN_FUNC_OPEN,                           True,  NT_STATUS_OK },
-               { OPENX_OPEN_FUNC_OPEN,                           False, NT_STATUS_OBJECT_NAME_NOT_FOUND },
-               { OPENX_OPEN_FUNC_OPEN  | OPENX_OPEN_FUNC_CREATE, True,  NT_STATUS_OK },
-               { OPENX_OPEN_FUNC_OPEN  | OPENX_OPEN_FUNC_CREATE, False, NT_STATUS_OK },
-               { OPENX_OPEN_FUNC_FAIL,                           True,  NT_STATUS_DOS(ERRDOS, ERRbadaccess) },
-               { OPENX_OPEN_FUNC_FAIL,                           False, NT_STATUS_DOS(ERRDOS, ERRbadaccess) },
-               { OPENX_OPEN_FUNC_FAIL  | OPENX_OPEN_FUNC_CREATE, True,  NT_STATUS_OBJECT_NAME_COLLISION },
-               { OPENX_OPEN_FUNC_FAIL  | OPENX_OPEN_FUNC_CREATE, False, NT_STATUS_OK },
-               { OPENX_OPEN_FUNC_TRUNC,                          True,  NT_STATUS_OK },
-               { OPENX_OPEN_FUNC_TRUNC,                          False, NT_STATUS_OBJECT_NAME_NOT_FOUND },
-               { OPENX_OPEN_FUNC_TRUNC | OPENX_OPEN_FUNC_CREATE, True,  NT_STATUS_OK },
-               { OPENX_OPEN_FUNC_TRUNC | OPENX_OPEN_FUNC_CREATE, False, NT_STATUS_OK },
+               { OPENX_OPEN_FUNC_OPEN,                           true,  NT_STATUS_OK },
+               { OPENX_OPEN_FUNC_OPEN,                           false, NT_STATUS_OBJECT_NAME_NOT_FOUND },
+               { OPENX_OPEN_FUNC_OPEN  | OPENX_OPEN_FUNC_CREATE, true,  NT_STATUS_OK },
+               { OPENX_OPEN_FUNC_OPEN  | OPENX_OPEN_FUNC_CREATE, false, NT_STATUS_OK },
+               { OPENX_OPEN_FUNC_FAIL,                           true,  NT_STATUS_DOS(ERRDOS, ERRbadaccess) },
+               { OPENX_OPEN_FUNC_FAIL,                           false, NT_STATUS_DOS(ERRDOS, ERRbadaccess) },
+               { OPENX_OPEN_FUNC_FAIL  | OPENX_OPEN_FUNC_CREATE, true,  NT_STATUS_OBJECT_NAME_COLLISION },
+               { OPENX_OPEN_FUNC_FAIL  | OPENX_OPEN_FUNC_CREATE, false, NT_STATUS_OK },
+               { OPENX_OPEN_FUNC_TRUNC,                          true,  NT_STATUS_OK },
+               { OPENX_OPEN_FUNC_TRUNC,                          false, NT_STATUS_OBJECT_NAME_NOT_FOUND },
+               { OPENX_OPEN_FUNC_TRUNC | OPENX_OPEN_FUNC_CREATE, true,  NT_STATUS_OK },
+               { OPENX_OPEN_FUNC_TRUNC | OPENX_OPEN_FUNC_CREATE, false, NT_STATUS_OK },
        };
 
        printf("Checking RAW_OPEN_OPENX\n");
@@ -313,7 +314,7 @@ static BOOL test_openx(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
                        fnum = create_complex_file(cli, mem_ctx, fname);
                        if (fnum == -1) {
                                d_printf("Failed to create file %s - %s\n", fname, smbcli_errstr(cli->tree));
-                               ret = False;
+                               ret = false;
                                goto done;
                        }
                        smbcli_close(cli->tree, fnum);
@@ -324,7 +325,7 @@ static BOOL test_openx(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
                        printf("(%s) incorrect status %s should be %s (i=%d with_file=%d open_func=0x%x)\n", 
                               __location__, nt_errstr(status), nt_errstr(open_funcs[i].correct_status),
                               i, (int)open_funcs[i].with_file, (int)open_funcs[i].open_func);
-                       ret = False;
+                       ret = false;
                }
                if (NT_STATUS_IS_OK(status)) {
                        smbcli_close(cli->tree, io.openx.out.file.fnum);
@@ -357,7 +358,7 @@ static BOOL test_openx(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        /* check the fields when the file already existed */
        fnum2 = create_complex_file(cli, mem_ctx, fname);
        if (fnum2 == -1) {
-               ret = False;
+               ret = false;
                goto done;
        }
        smbcli_close(cli->tree, fnum2);
@@ -397,7 +398,7 @@ static BOOL test_openx(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        io.openx.in.file_attrs = FILE_ATTRIBUTE_SYSTEM;
        status = smb_raw_open(cli->tree, mem_ctx, &io);
        CHECK_STATUS(status, NT_STATUS_OK);
-       if (lp_parm_bool(-1, "torture", "samba3", False)) {
+       if (lp_parm_bool(global_loadparm, NULL, "torture", "samba3", false)) {
                CHECK_ALL_INFO(FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_ARCHIVE, 
                               attrib & ~(FILE_ATTRIBUTE_NONINDEXED|
                                          FILE_ATTRIBUTE_SPARSE));
@@ -425,7 +426,7 @@ static BOOL test_openx(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        if (timeval_elapsed(&tv) > 3.0) {
                printf("(%s) Incorrect timing in openx with timeout - waited %.2f seconds\n",
                       __location__, timeval_elapsed(&tv));
-               ret = False;
+               ret = false;
        }
        smbcli_close(cli->tree, fnum);
        smbcli_unlink(cli->tree, fname);
@@ -494,7 +495,7 @@ done:
 
   many thanks to kukks for a sniff showing how this works with os2->w2k
 */
-static BOOL test_t2open(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_t2open(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        union smb_open io;
        union smb_fileinfo finfo;
@@ -503,31 +504,31 @@ static BOOL test_t2open(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        const char *fname = BASEDIR "\\torture_t2open_3.txt";
        NTSTATUS status;
        int fnum;
-       BOOL ret = True;
+       bool ret = true;
        int i;
        struct {
                uint16_t open_func;
-               BOOL with_file;
+               bool with_file;
                NTSTATUS correct_status;
        } open_funcs[] = {
-               { OPENX_OPEN_FUNC_OPEN,                           True,  NT_STATUS_OK },
-               { OPENX_OPEN_FUNC_OPEN,                           False, NT_STATUS_OBJECT_NAME_NOT_FOUND },
-               { OPENX_OPEN_FUNC_OPEN  | OPENX_OPEN_FUNC_CREATE, True,  NT_STATUS_OK },
-               { OPENX_OPEN_FUNC_OPEN  | OPENX_OPEN_FUNC_CREATE, False, NT_STATUS_OK },
-               { OPENX_OPEN_FUNC_FAIL,                           True,  NT_STATUS_OBJECT_NAME_COLLISION },
-               { OPENX_OPEN_FUNC_FAIL,                           False, NT_STATUS_OBJECT_NAME_COLLISION },
-               { OPENX_OPEN_FUNC_FAIL  | OPENX_OPEN_FUNC_CREATE, True,  NT_STATUS_OBJECT_NAME_COLLISION },
-               { OPENX_OPEN_FUNC_FAIL  | OPENX_OPEN_FUNC_CREATE, False, NT_STATUS_OBJECT_NAME_COLLISION },
-               { OPENX_OPEN_FUNC_TRUNC,                          True,  NT_STATUS_OK },
-               { OPENX_OPEN_FUNC_TRUNC,                          False, NT_STATUS_OK },
-               { OPENX_OPEN_FUNC_TRUNC | OPENX_OPEN_FUNC_CREATE, True,  NT_STATUS_OK },
-               { OPENX_OPEN_FUNC_TRUNC | OPENX_OPEN_FUNC_CREATE, False, NT_STATUS_OK },
+               { OPENX_OPEN_FUNC_OPEN,                           true,  NT_STATUS_OK },
+               { OPENX_OPEN_FUNC_OPEN,                           false, NT_STATUS_OBJECT_NAME_NOT_FOUND },
+               { OPENX_OPEN_FUNC_OPEN  | OPENX_OPEN_FUNC_CREATE, true,  NT_STATUS_OK },
+               { OPENX_OPEN_FUNC_OPEN  | OPENX_OPEN_FUNC_CREATE, false, NT_STATUS_OK },
+               { OPENX_OPEN_FUNC_FAIL,                           true,  NT_STATUS_OBJECT_NAME_COLLISION },
+               { OPENX_OPEN_FUNC_FAIL,                           false, NT_STATUS_OBJECT_NAME_COLLISION },
+               { OPENX_OPEN_FUNC_FAIL  | OPENX_OPEN_FUNC_CREATE, true,  NT_STATUS_OBJECT_NAME_COLLISION },
+               { OPENX_OPEN_FUNC_FAIL  | OPENX_OPEN_FUNC_CREATE, false, NT_STATUS_OBJECT_NAME_COLLISION },
+               { OPENX_OPEN_FUNC_TRUNC,                          true,  NT_STATUS_OK },
+               { OPENX_OPEN_FUNC_TRUNC,                          false, NT_STATUS_OK },
+               { OPENX_OPEN_FUNC_TRUNC | OPENX_OPEN_FUNC_CREATE, true,  NT_STATUS_OK },
+               { OPENX_OPEN_FUNC_TRUNC | OPENX_OPEN_FUNC_CREATE, false, NT_STATUS_OK },
        };
 
        fnum = create_complex_file(cli, mem_ctx, fname1);
        if (fnum == -1) {
                d_printf("Failed to create file %s - %s\n", fname1, smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
        smbcli_close(cli->tree, fnum);
@@ -568,7 +569,7 @@ static BOOL test_t2open(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
                status = smb_raw_open(cli->tree, mem_ctx, &io);
                if ((io.t2open.in.num_eas != 0)
                    && NT_STATUS_EQUAL(status, NT_STATUS_EAS_NOT_SUPPORTED)
-                   && lp_parm_bool(-1, "torture", "samba3", False)) {
+                   && lp_parm_bool(global_loadparm, NULL, "torture", "samba3", false)) {
                        printf("(%s) EAs not supported, not treating as fatal "
                               "in Samba3 test\n", __location__);
                        io.t2open.in.num_eas = 0;
@@ -579,7 +580,7 @@ static BOOL test_t2open(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
                        printf("(%s) incorrect status %s should be %s (i=%d with_file=%d open_func=0x%x)\n", 
                               __location__, nt_errstr(status), nt_errstr(open_funcs[i].correct_status),
                               i, (int)open_funcs[i].with_file, (int)open_funcs[i].open_func);
-                       ret = False;
+                       ret = false;
                }
                if (NT_STATUS_IS_OK(status)) {
                        smbcli_close(cli->tree, io.t2open.out.file.fnum);
@@ -659,7 +660,7 @@ done:
 /*
   test RAW_OPEN_NTCREATEX
 */
-static BOOL test_ntcreatex(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_ntcreatex(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        union smb_open io;
        union smb_fileinfo finfo;
@@ -667,27 +668,27 @@ static BOOL test_ntcreatex(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        const char *dname = BASEDIR "\\torture_ntcreatex.dir";
        NTSTATUS status;
        int fnum = -1;
-       BOOL ret = True;
+       bool ret = true;
        int i;
        struct {
                uint32_t open_disp;
-               BOOL with_file;
+               bool with_file;
                NTSTATUS correct_status;
        } open_funcs[] = {
-               { NTCREATEX_DISP_SUPERSEDE,     True,  NT_STATUS_OK },
-               { NTCREATEX_DISP_SUPERSEDE,     False, NT_STATUS_OK },
-               { NTCREATEX_DISP_OPEN,          True,  NT_STATUS_OK },
-               { NTCREATEX_DISP_OPEN,          False, NT_STATUS_OBJECT_NAME_NOT_FOUND },
-               { NTCREATEX_DISP_CREATE,        True,  NT_STATUS_OBJECT_NAME_COLLISION },
-               { NTCREATEX_DISP_CREATE,        False, NT_STATUS_OK },
-               { NTCREATEX_DISP_OPEN_IF,       True,  NT_STATUS_OK },
-               { NTCREATEX_DISP_OPEN_IF,       False, NT_STATUS_OK },
-               { NTCREATEX_DISP_OVERWRITE,     True,  NT_STATUS_OK },
-               { NTCREATEX_DISP_OVERWRITE,     False, NT_STATUS_OBJECT_NAME_NOT_FOUND },
-               { NTCREATEX_DISP_OVERWRITE_IF,  True,  NT_STATUS_OK },
-               { NTCREATEX_DISP_OVERWRITE_IF,  False, NT_STATUS_OK },
-               { 6,                            True,  NT_STATUS_INVALID_PARAMETER },
-               { 6,                            False, NT_STATUS_INVALID_PARAMETER },
+               { NTCREATEX_DISP_SUPERSEDE,     true,  NT_STATUS_OK },
+               { NTCREATEX_DISP_SUPERSEDE,     false, NT_STATUS_OK },
+               { NTCREATEX_DISP_OPEN,          true,  NT_STATUS_OK },
+               { NTCREATEX_DISP_OPEN,          false, NT_STATUS_OBJECT_NAME_NOT_FOUND },
+               { NTCREATEX_DISP_CREATE,        true,  NT_STATUS_OBJECT_NAME_COLLISION },
+               { NTCREATEX_DISP_CREATE,        false, NT_STATUS_OK },
+               { NTCREATEX_DISP_OPEN_IF,       true,  NT_STATUS_OK },
+               { NTCREATEX_DISP_OPEN_IF,       false, NT_STATUS_OK },
+               { NTCREATEX_DISP_OVERWRITE,     true,  NT_STATUS_OK },
+               { NTCREATEX_DISP_OVERWRITE,     false, NT_STATUS_OBJECT_NAME_NOT_FOUND },
+               { NTCREATEX_DISP_OVERWRITE_IF,  true,  NT_STATUS_OK },
+               { NTCREATEX_DISP_OVERWRITE_IF,  false, NT_STATUS_OK },
+               { 6,                            true,  NT_STATUS_INVALID_PARAMETER },
+               { 6,                            false, NT_STATUS_INVALID_PARAMETER },
        };
 
        printf("Checking RAW_OPEN_NTCREATEX\n");
@@ -712,7 +713,7 @@ static BOOL test_ntcreatex(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
                        fnum = smbcli_open(cli->tree, fname, O_CREAT|O_RDWR|O_TRUNC, DENY_NONE);
                        if (fnum == -1) {
                                d_printf("Failed to create file %s - %s\n", fname, smbcli_errstr(cli->tree));
-                               ret = False;
+                               ret = false;
                                goto done;
                        }
                        smbcli_close(cli->tree, fnum);
@@ -723,7 +724,7 @@ static BOOL test_ntcreatex(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
                        printf("(%s) incorrect status %s should be %s (i=%d with_file=%d open_disp=%d)\n", 
                               __location__, nt_errstr(status), nt_errstr(open_funcs[i].correct_status),
                               i, (int)open_funcs[i].with_file, (int)open_funcs[i].open_disp);
-                       ret = False;
+                       ret = false;
                }
                if (NT_STATUS_IS_OK(status) || open_funcs[i].with_file) {
                        smbcli_close(cli->tree, io.ntcreatex.out.file.fnum);
@@ -755,7 +756,7 @@ static BOOL test_ntcreatex(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        smbcli_unlink(cli->tree, fname);
        fnum = create_complex_file(cli, mem_ctx, fname);
        if (fnum == -1) {
-               ret = False;
+               ret = false;
                goto done;
        }
        smbcli_close(cli->tree, fnum);
@@ -832,7 +833,7 @@ done:
 /*
   test RAW_OPEN_NTTRANS_CREATE
 */
-static BOOL test_nttrans_create(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_nttrans_create(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        union smb_open io;
        union smb_fileinfo finfo;
@@ -840,27 +841,27 @@ static BOOL test_nttrans_create(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        const char *dname = BASEDIR "\\torture_ntcreatex.dir";
        NTSTATUS status;
        int fnum = -1;
-       BOOL ret = True;
+       bool ret = true;
        int i;
        struct {
                uint32_t open_disp;
-               BOOL with_file;
+               bool with_file;
                NTSTATUS correct_status;
        } open_funcs[] = {
-               { NTCREATEX_DISP_SUPERSEDE,     True,  NT_STATUS_OK },
-               { NTCREATEX_DISP_SUPERSEDE,     False, NT_STATUS_OK },
-               { NTCREATEX_DISP_OPEN,          True,  NT_STATUS_OK },
-               { NTCREATEX_DISP_OPEN,          False, NT_STATUS_OBJECT_NAME_NOT_FOUND },
-               { NTCREATEX_DISP_CREATE,        True,  NT_STATUS_OBJECT_NAME_COLLISION },
-               { NTCREATEX_DISP_CREATE,        False, NT_STATUS_OK },
-               { NTCREATEX_DISP_OPEN_IF,       True,  NT_STATUS_OK },
-               { NTCREATEX_DISP_OPEN_IF,       False, NT_STATUS_OK },
-               { NTCREATEX_DISP_OVERWRITE,     True,  NT_STATUS_OK },
-               { NTCREATEX_DISP_OVERWRITE,     False, NT_STATUS_OBJECT_NAME_NOT_FOUND },
-               { NTCREATEX_DISP_OVERWRITE_IF,  True,  NT_STATUS_OK },
-               { NTCREATEX_DISP_OVERWRITE_IF,  False, NT_STATUS_OK },
-               { 6,                            True,  NT_STATUS_INVALID_PARAMETER },
-               { 6,                            False, NT_STATUS_INVALID_PARAMETER },
+               { NTCREATEX_DISP_SUPERSEDE,     true,  NT_STATUS_OK },
+               { NTCREATEX_DISP_SUPERSEDE,     false, NT_STATUS_OK },
+               { NTCREATEX_DISP_OPEN,          true,  NT_STATUS_OK },
+               { NTCREATEX_DISP_OPEN,          false, NT_STATUS_OBJECT_NAME_NOT_FOUND },
+               { NTCREATEX_DISP_CREATE,        true,  NT_STATUS_OBJECT_NAME_COLLISION },
+               { NTCREATEX_DISP_CREATE,        false, NT_STATUS_OK },
+               { NTCREATEX_DISP_OPEN_IF,       true,  NT_STATUS_OK },
+               { NTCREATEX_DISP_OPEN_IF,       false, NT_STATUS_OK },
+               { NTCREATEX_DISP_OVERWRITE,     true,  NT_STATUS_OK },
+               { NTCREATEX_DISP_OVERWRITE,     false, NT_STATUS_OBJECT_NAME_NOT_FOUND },
+               { NTCREATEX_DISP_OVERWRITE_IF,  true,  NT_STATUS_OK },
+               { NTCREATEX_DISP_OVERWRITE_IF,  false, NT_STATUS_OK },
+               { 6,                            true,  NT_STATUS_INVALID_PARAMETER },
+               { 6,                            false, NT_STATUS_INVALID_PARAMETER },
        };
 
        printf("Checking RAW_OPEN_NTTRANS_CREATE\n");
@@ -887,7 +888,7 @@ static BOOL test_nttrans_create(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
                        fnum = smbcli_open(cli->tree, fname, O_CREAT|O_RDWR|O_TRUNC, DENY_NONE);
                        if (fnum == -1) {
                                d_printf("Failed to create file %s - %s\n", fname, smbcli_errstr(cli->tree));
-                               ret = False;
+                               ret = false;
                                goto done;
                        }
                        smbcli_close(cli->tree, fnum);
@@ -898,7 +899,7 @@ static BOOL test_nttrans_create(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
                        printf("(%s) incorrect status %s should be %s (i=%d with_file=%d open_disp=%d)\n", 
                               __location__, nt_errstr(status), nt_errstr(open_funcs[i].correct_status),
                               i, (int)open_funcs[i].with_file, (int)open_funcs[i].open_disp);
-                       ret = False;
+                       ret = false;
                }
                if (NT_STATUS_IS_OK(status) || open_funcs[i].with_file) {
                        smbcli_close(cli->tree, io.ntcreatex.out.file.fnum);
@@ -930,7 +931,7 @@ static BOOL test_nttrans_create(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        smbcli_unlink(cli->tree, fname);
        fnum = create_complex_file(cli, mem_ctx, fname);
        if (fnum == -1) {
-               ret = False;
+               ret = false;
                goto done;
        }
        smbcli_close(cli->tree, fnum);
@@ -1011,14 +1012,14 @@ done:
   open_disposition==NTCREATEX_DISP_OVERWRITE_IF. Windows 2003 allows the
   second open.
 */
-static BOOL test_ntcreatex_brlocked(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_ntcreatex_brlocked(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        union smb_open io, io1;
        union smb_lock io2;
        struct smb_lock_entry lock[1];
        const char *fname = BASEDIR "\\torture_ntcreatex.txt";
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
 
        printf("Testing ntcreatex with a byte range locked file\n");
 
@@ -1081,13 +1082,13 @@ static BOOL test_ntcreatex_brlocked(struct smbcli_state *cli, TALLOC_CTX *mem_ct
 /*
   test RAW_OPEN_MKNEW
 */
-static BOOL test_mknew(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_mknew(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        union smb_open io;
        const char *fname = BASEDIR "\\torture_mknew.txt";
        NTSTATUS status;
        int fnum = -1;
-       BOOL ret = True;
+       bool ret = true;
        time_t basetime = (time(NULL) + 3600*24*3) & ~1;
        union smb_fileinfo finfo;
 
@@ -1136,13 +1137,13 @@ done:
 /*
   test RAW_OPEN_CREATE
 */
-static BOOL test_create(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_create(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        union smb_open io;
        const char *fname = BASEDIR "\\torture_create.txt";
        NTSTATUS status;
        int fnum = -1;
-       BOOL ret = True;
+       bool ret = true;
        time_t basetime = (time(NULL) + 3600*24*3) & ~1;
        union smb_fileinfo finfo;
 
@@ -1192,12 +1193,12 @@ done:
 /*
   test RAW_OPEN_CTEMP
 */
-static BOOL test_ctemp(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_ctemp(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        union smb_open io;
        NTSTATUS status;
        int fnum = -1;
-       BOOL ret = True;
+       bool ret = true;
        time_t basetime = (time(NULL) + 3600*24*3) & ~1;
        union smb_fileinfo finfo;
        const char *name, *fname = NULL;
@@ -1235,13 +1236,13 @@ done:
 /*
   test chained RAW_OPEN_OPENX_READX
 */
-static BOOL test_chained(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_chained(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        union smb_open io;
        const char *fname = BASEDIR "\\torture_chained.txt";
        NTSTATUS status;
        int fnum = -1;
-       BOOL ret = True;
+       bool ret = true;
        const char *buf = "test";
        char buf2[4];
 
@@ -1277,7 +1278,7 @@ static BOOL test_chained(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 
        if (memcmp(buf, buf2, sizeof(buf)) != 0) {
                d_printf("wrong data in reply buffer\n");
-               ret = False;
+               ret = false;
        }
 
 done:
@@ -1292,13 +1293,13 @@ done:
   NetApp filers are known to fail on this.
   
 */
-static BOOL test_no_leading_slash(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_no_leading_slash(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        union smb_open io;
        const char *fname = BASEDIR "\\torture_no_leading_slash.txt";
        NTSTATUS status;
        int fnum = -1;
-       BOOL ret = True;
+       bool ret = true;
        const char *buf = "test";
 
        printf("Checking RAW_OPEN_OPENX without leading slash on path\n");
@@ -1334,19 +1335,19 @@ done:
 
 /* A little torture test to expose a race condition in Samba 3.0.20 ... :-) */
 
-static BOOL test_raw_open_multi(void)
+static bool test_raw_open_multi(void)
 {
        struct smbcli_state *cli;
        TALLOC_CTX *mem_ctx = talloc_init("torture_test_oplock_multi");
        const char *fname = "\\test_oplock.dat";
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        union smb_open io;
        struct smbcli_state **clients;
        struct smbcli_request **requests;
        union smb_open *ios;
-       const char *host = lp_parm_string(-1, "torture", "host");
-       const char *share = lp_parm_string(-1, "torture", "share");
+       const char *host = lp_parm_string(global_loadparm, NULL, "torture", "host");
+       const char *share = lp_parm_string(global_loadparm, NULL, "torture", "share");
        int i, num_files = 3;
        struct event_context *ev;
        int num_ok = 0;
@@ -1359,11 +1360,11 @@ static BOOL test_raw_open_multi(void)
        if ((ev == NULL) || (clients == NULL) || (requests == NULL) ||
            (ios == NULL)) {
                DEBUG(0, ("talloc failed\n"));
-               return False;
+               return false;
        }
 
        if (!torture_open_connection_share(mem_ctx, &cli, host, share, ev)) {
-               return False;
+               return false;
        }
 
        cli->tree->session->transport->options.request_timeout = 60000;
@@ -1372,7 +1373,7 @@ static BOOL test_raw_open_multi(void)
                if (!torture_open_connection_share(mem_ctx, &(clients[i]),
                                                   host, share, ev)) {
                        DEBUG(0, ("Could not open %d'th connection\n", i));
-                       return False;
+                       return false;
                }
                clients[i]->tree->session->transport->
                        options.request_timeout = 60000;
@@ -1404,19 +1405,19 @@ static BOOL test_raw_open_multi(void)
                requests[i] = smb_raw_open_send(clients[i]->tree, &ios[i]);
                if (requests[i] == NULL) {
                        DEBUG(0, ("could not send %d'th request\n", i));
-                       return False;
+                       return false;
                }
        }
 
        DEBUG(10, ("waiting for replies\n"));
        while (1) {
-               BOOL unreplied = False;
+               bool unreplied = false;
                for (i=0; i<num_files; i++) {
                        if (requests[i] == NULL) {
                                continue;
                        }
                        if (requests[i]->state < SMBCLI_REQUEST_DONE) {
-                               unreplied = True;
+                               unreplied = true;
                                break;
                        }
                        status = smb_raw_open_recv(requests[i], mem_ctx,
@@ -1442,12 +1443,12 @@ static BOOL test_raw_open_multi(void)
 
                if (event_loop_once(ev) != 0) {
                        DEBUG(0, ("event_loop_once failed\n"));
-                       return False;
+                       return false;
                }
        }
 
        if ((num_ok != 1) || (num_ok + num_collision != num_files)) {
-               ret = False;
+               ret = false;
        }
 
        for (i=0; i<num_files; i++) {
index fffb572d50b4a77aa4f18a6e46fa8668ce86c8a6..a53efb3a8b4ed9e862590b4b0fab96c9cca01cb6 100644 (file)
@@ -30,6 +30,7 @@
 #include "lib/cmdline/popt_common.h"
 #include "libcli/composite/composite.h"
 #include "libcli/smb_composite/smb_composite.h"
+#include "param/param.h"
 
 #define BASEDIR "\\benchopen"
 
@@ -126,8 +127,8 @@ static void reopen_connection(struct event_context *ev, struct timed_event *te,
        io->in.service      = share;
        io->in.service_type = state->service_type;
        io->in.credentials  = cmdline_credentials;
-       io->in.fallback_to_anonymous = False;
-       io->in.workgroup    = lp_workgroup();
+       io->in.fallback_to_anonymous = false;
+       io->in.workgroup    = lp_workgroup(global_loadparm);
 
        /* kill off the remnants of the old connection */
        talloc_free(state->tree);
@@ -337,9 +338,9 @@ static void report_rate(struct event_context *ev, struct timed_event *te,
 /* 
    benchmark open calls
 */
-BOOL torture_bench_open(struct torture_context *torture)
+bool torture_bench_open(struct torture_context *torture)
 {
-       BOOL ret = True;
+       bool ret = true;
        TALLOC_CTX *mem_ctx = talloc_new(torture);
        int i;
        int timelimit = torture_setting_int(torture, "timelimit", 10);
@@ -347,7 +348,7 @@ BOOL torture_bench_open(struct torture_context *torture)
        struct event_context *ev = event_context_find(mem_ctx);
        struct benchopen_state *state;
        int total = 0, minops=0;
-       bool progress=False;
+       bool progress=false;
 
        progress = torture_setting_bool(torture, "progress", true);
        
@@ -361,7 +362,7 @@ BOOL torture_bench_open(struct torture_context *torture)
                state[i].client_num = i;
                state[i].ev = ev;
                if (!torture_open_connection_ev(&state[i].cli, i, ev)) {
-                       return False;
+                       return false;
                }
                talloc_steal(mem_ctx, state);
                state[i].tree = state[i].cli->tree;
@@ -437,5 +438,5 @@ BOOL torture_bench_open(struct torture_context *torture)
 
 failed:
        talloc_free(mem_ctx);
-       return False;
+       return false;
 }
index 7a921af422e1c301fb71ba7f187930d7b9ca5af4..1f44f96b44cbeeaf622fce1b4963cc30e3441c6f 100644 (file)
        if ((v) != (correct)) { \
                torture_comment(tctx, "(%s): wrong value for %s got 0x%x - should be 0x%x\n", \
                                __location__, #v, (int)v, (int)correct); \
-               ret = False; \
+               ret = false; \
        }} while (0)
 
 #define CHECK_STATUS(tctx, status, correct) do { \
        if (!NT_STATUS_EQUAL(status, correct)) { \
                torture_result(tctx, TORTURE_FAIL, __location__": Incorrect status %s - should be %s", \
                       nt_errstr(status), nt_errstr(correct)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
@@ -53,10 +53,11 @@ static struct {
 /*
   a handler function for oplock break requests. Ack it as a break to level II if possible
 */
-static BOOL oplock_handler_ack_to_levelII(struct smbcli_transport *transport, uint16_t tid, 
-                              uint16_t fnum, uint8_t level, void *private)
+static bool oplock_handler_ack_to_levelII(struct smbcli_transport *transport, 
+                                         uint16_t tid, uint16_t fnum, 
+                                         uint8_t level, void *private)
 {
-       struct smbcli_tree *tree = private;
+       struct smbcli_tree *tree = (struct smbcli_tree *)private;
        break_info.fnum = fnum;
        break_info.level = level;
        break_info.count++;
@@ -69,11 +70,11 @@ static BOOL oplock_handler_ack_to_levelII(struct smbcli_transport *transport, ui
 /*
   a handler function for oplock break requests. Ack it as a break to none
 */
-static BOOL oplock_handler_ack_to_none(struct smbcli_transport *transport, uint16_t tid
-                                   uint16_t fnum, uint8_t level
-                                   void *private)
+static bool oplock_handler_ack_to_none(struct smbcli_transport *transport
+                                      uint16_t tid, uint16_t fnum
+                                      uint8_t level, void *private)
 {
-       struct smbcli_tree *tree = private;
+       struct smbcli_tree *tree = (struct smbcli_tree *)private;
        break_info.fnum = fnum;
        break_info.level = level;
        break_info.count++;
@@ -96,11 +97,11 @@ static void oplock_handler_close_recv(struct smbcli_request *req)
 /*
   a handler function for oplock break requests - close the file
 */
-static BOOL oplock_handler_close(struct smbcli_transport *transport, uint16_t tid, 
+static bool oplock_handler_close(struct smbcli_transport *transport, uint16_t tid, 
                                 uint16_t fnum, uint8_t level, void *private)
 {
        union smb_close io;
-       struct smbcli_tree *tree = private;
+       struct smbcli_tree *tree = (struct smbcli_tree *)private;
        struct smbcli_request *req;
 
        break_info.fnum = fnum;
@@ -113,13 +114,13 @@ static BOOL oplock_handler_close(struct smbcli_transport *transport, uint16_t ti
        req = smb_raw_close_send(tree, &io);
        if (req == NULL) {
                printf("failed to send close in oplock_handler_close\n");
-               return False;
+               return false;
        }
 
        req->async.fn = oplock_handler_close_recv;
        req->async.private = NULL;
 
-       return True;
+       return true;
 }
 
 static bool test_raw_oplock_normal(struct torture_context *tctx, struct smbcli_state *cli1, struct smbcli_state *cli2)
@@ -1308,10 +1309,10 @@ struct torture_suite *torture_raw_oplock(TALLOC_CTX *mem_ctx)
 /* 
    stress testing of oplocks
 */
-BOOL torture_bench_oplock(struct torture_context *torture)
+bool torture_bench_oplock(struct torture_context *torture)
 {
        struct smbcli_state **cli;
-       BOOL ret = True;
+       bool ret = true;
        TALLOC_CTX *mem_ctx = talloc_new(torture);
        int torture_nprocs = torture_setting_int(torture, "nprocs", 4);
        int i, count=0;
@@ -1325,7 +1326,7 @@ BOOL torture_bench_oplock(struct torture_context *torture)
        torture_comment(torture, "Opening %d connections\n", torture_nprocs);
        for (i=0;i<torture_nprocs;i++) {
                if (!torture_open_connection_ev(&cli[i], i, ev)) {
-                       return False;
+                       return false;
                }
                talloc_steal(mem_ctx, cli[i]);
                smbcli_oplock_handler(cli[i]->transport, oplock_handler_close, 
@@ -1333,7 +1334,7 @@ BOOL torture_bench_oplock(struct torture_context *torture)
        }
 
        if (!torture_setup_dir(cli[0], BASEDIR)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -1396,20 +1397,21 @@ static struct hold_oplock_info {
        uint32_t share_access;
        uint16_t fnum;
 } hold_info[] = {
-       { BASEDIR "\\notshared_close", True,  
+       { BASEDIR "\\notshared_close", true,  
          NTCREATEX_SHARE_ACCESS_NONE, },
-       { BASEDIR "\\notshared_noclose", False, 
+       { BASEDIR "\\notshared_noclose", false, 
          NTCREATEX_SHARE_ACCESS_NONE, },
-       { BASEDIR "\\shared_close", True,  
+       { BASEDIR "\\shared_close", true,  
          NTCREATEX_SHARE_ACCESS_READ|NTCREATEX_SHARE_ACCESS_WRITE|NTCREATEX_SHARE_ACCESS_DELETE, },
-       { BASEDIR "\\shared_noclose", False,  
+       { BASEDIR "\\shared_noclose", false,  
          NTCREATEX_SHARE_ACCESS_READ|NTCREATEX_SHARE_ACCESS_WRITE|NTCREATEX_SHARE_ACCESS_DELETE, },
 };
 
-static BOOL oplock_handler_hold(struct smbcli_transport *transport, uint16_t tid, 
-                               uint16_t fnum, uint8_t level, void *private)
+static bool oplock_handler_hold(struct smbcli_transport *transport, 
+                               uint16_t tid, uint16_t fnum, uint8_t level, 
+                               void *private)
 {
-       struct smbcli_tree *tree = private;
+       struct smbcli_tree *tree = (struct smbcli_tree *)private;
        struct hold_oplock_info *info;
        int i;
 
@@ -1419,7 +1421,7 @@ static BOOL oplock_handler_hold(struct smbcli_transport *transport, uint16_t tid
 
        if (i == ARRAY_SIZE(hold_info)) {
                printf("oplock break for unknown fnum %u\n", fnum);
-               return False;
+               return false;
        }
 
        info = &hold_info[i];
@@ -1428,7 +1430,7 @@ static BOOL oplock_handler_hold(struct smbcli_transport *transport, uint16_t tid
                printf("oplock break on %s - closing\n",
                       info->fname);
                oplock_handler_close(transport, tid, fnum, level, private);
-               return True;
+               return true;
        }
 
        printf("oplock break on %s - acking break\n", info->fname);
@@ -1441,16 +1443,17 @@ static BOOL oplock_handler_hold(struct smbcli_transport *transport, uint16_t tid
    used for manual testing of oplocks - especially interaction with
    other filesystems (such as NFS and local access)
 */
-BOOL torture_hold_oplock(struct torture_context *torture, 
+bool torture_hold_oplock(struct torture_context *torture, 
                         struct smbcli_state *cli)
 {
-       struct event_context *ev = cli->transport->socket->event.ctx;
+       struct event_context *ev = 
+               (struct event_context *)cli->transport->socket->event.ctx;
        int i;
 
        printf("Setting up open files with oplocks in %s\n", BASEDIR);
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        smbcli_oplock_handler(cli->transport, oplock_handler_hold, cli->tree);
@@ -1480,14 +1483,14 @@ BOOL torture_hold_oplock(struct torture_context *torture,
                if (!NT_STATUS_IS_OK(status)) {
                        printf("Failed to open %s - %s\n", 
                               hold_info[i].fname, nt_errstr(status));
-                       return False;
+                       return false;
                }
 
                if (io.ntcreatex.out.oplock_level != BATCH_OPLOCK_RETURN) {
                        printf("Oplock not granted for %s - expected %d but got %d\n", 
                               hold_info[i].fname, BATCH_OPLOCK_RETURN, 
                                io.ntcreatex.out.oplock_level);
-                       return False;
+                       return false;
                }
                hold_info[i].fnum = io.ntcreatex.out.file.fnum;
        }
@@ -1495,5 +1498,5 @@ BOOL torture_hold_oplock(struct torture_context *torture,
        printf("Waiting for oplock events\n");
        event_loop_wait(ev);
 
-       return True;
+       return true;
 }
index 027034275a1c276f6573699cf40459a6d4f532ff..2e9de28d67efb0c34980943d1041c4edb4059374 100755 (executable)
        over and over until it completes.
 
    reading from the file can be enabled with
-        --option=torture:read=True
+        --option=torture:read=true
 
    writing to the file can be enabled with
-        --option=torture:write=True
+        --option=torture:write=true
 
 */
 #include "includes.h"
 #include "system/filesys.h"
 #include "libcli/libcli.h"
 #include "torture/util.h"
+#include "param/param.h"
 
-
-
-
-void lock_byte(struct smbcli_state *cli, int fd, int offset, int lock_timeout)
+static void lock_byte(struct smbcli_state *cli, int fd, int offset, int lock_timeout)
 {
        union smb_lock io;
        struct smb_lock_entry lock;
@@ -92,7 +90,7 @@ try_again:
        }
 }
 
-void unlock_byte(struct smbcli_state *cli, int fd, int offset)
+static void unlock_byte(struct smbcli_state *cli, int fd, int offset)
 {
        union smb_lock io;
        struct smb_lock_entry lock;
@@ -119,7 +117,7 @@ void unlock_byte(struct smbcli_state *cli, int fd, int offset)
        }
 }
 
-void write_byte(struct smbcli_state *cli, int fd, uint8_t c, int offset)
+static void write_byte(struct smbcli_state *cli, int fd, uint8_t c, int offset)
 {
        union smb_write io;
        NTSTATUS status;
@@ -139,7 +137,7 @@ void write_byte(struct smbcli_state *cli, int fd, uint8_t c, int offset)
        }
 }      
 
-void read_byte(struct smbcli_state *cli, int fd, uint8_t *c, int offset)
+static void read_byte(struct smbcli_state *cli, int fd, uint8_t *c, int offset)
 {
        union smb_read io;
        NTSTATUS status;
@@ -150,7 +148,7 @@ void read_byte(struct smbcli_state *cli, int fd, uint8_t *c, int offset)
        io.readx.in.maxcnt = 1;
        io.readx.in.offset = offset;
        io.readx.in.remaining = 0;
-       io.readx.in.read_for_execute = False;
+       io.readx.in.read_for_execute = false;
        io.readx.out.data = c;
 
        status = smb_raw_read(cli->tree, &io);
@@ -178,13 +176,13 @@ static double end_timer(void)
 /* 
    ping pong
 */
-BOOL torture_ping_pong(struct torture_context *torture)
+bool torture_ping_pong(struct torture_context *torture)
 {
        const char *fn;
        int num_locks;
        TALLOC_CTX *mem_ctx = talloc_new(torture);
-       static BOOL do_reads;
-       static BOOL do_writes;
+       static bool do_reads;
+       static bool do_writes;
        int lock_timeout;
        int fd;
        struct smbcli_state *cli;
@@ -193,21 +191,21 @@ BOOL torture_ping_pong(struct torture_context *torture)
        uint8_t *val;
        int count, loops;
 
-       fn = lp_parm_string(-1, "torture", "filename");
+       fn = lp_parm_string(global_loadparm, NULL, "torture", "filename");
        if (fn == NULL) {
                DEBUG(0,("You must specify the filename using --option=torture:filename=...\n"));
                return false;
        }
 
-       num_locks = lp_parm_int(-1, "torture", "num_locks", -1);
+       num_locks = lp_parm_int(global_loadparm, NULL, "torture", "num_locks", -1);
        if (num_locks == -1) {
                DEBUG(0,("You must specify num_locks using --option=torture:num_locks=...\n"));
                return false;
        }
 
-       do_reads     = lp_parm_bool(-1, "torture", "read", False);
-       do_writes    = lp_parm_bool(-1, "torture", "write", False);
-       lock_timeout =  lp_parm_int(-1, "torture", "lock_timeout", 100000);
+       do_reads     = lp_parm_bool(global_loadparm, NULL, "torture", "read", false);
+       do_writes    = lp_parm_bool(global_loadparm, NULL, "torture", "write", false);
+       lock_timeout =  lp_parm_int(global_loadparm, NULL, "torture", "lock_timeout", 100000);
 
        if (!torture_open_connection(&cli, 0)) {
                DEBUG(0,("Could not open connection\n"));
index 8cb80cecc12739340f30c57033d03b17e686a2ae..7dcd2000e9286a00de5408751314e8ccd7f52400 100644 (file)
@@ -25,6 +25,7 @@
 #include "torture/util.h"
 #include "librpc/rpc/dcerpc.h"
 #include "torture/rpc/rpc.h"
+#include "torture/raw/proto.h"
 
 static struct {
        const char *name;
@@ -185,7 +186,7 @@ static union smb_fileinfo *fname_find(bool is_ipc, const char *name)
                #n1, #v1, (uint_t)s1->n1.out.v1, \
                #n2, #v2, (uint_t)s2->n2.out.v2, \
               __FILE__, __LINE__); \
-        ret = False; \
+        ret = false; \
 }} while(0)
 
 #define STR_EQUAL(n1, v1, n2, v2) do {if (strcmp_safe(s1->n1.out.v1.s, s2->n2.out.v2.s) || \
@@ -194,7 +195,7 @@ static union smb_fileinfo *fname_find(bool is_ipc, const char *name)
                #n1, #v1, s1->n1.out.v1.s, s1->n1.out.v1.private_length, \
                #n2, #v2, s2->n2.out.v2.s, s2->n2.out.v2.private_length, \
               __FILE__, __LINE__); \
-        ret = False; \
+        ret = false; \
 }} while(0)
 
 #define STRUCT_EQUAL(n1, v1, n2, v2) do {if (memcmp(&s1->n1.out.v1,&s2->n2.out.v2,sizeof(s1->n1.out.v1))) { \
@@ -202,7 +203,7 @@ static union smb_fileinfo *fname_find(bool is_ipc, const char *name)
                #n1, #v1, \
                #n2, #v2, \
               __FILE__, __LINE__); \
-        ret = False; \
+        ret = false; \
 }} while(0)
 
 /* used to find hints on unknown values - and to make sure 
@@ -214,7 +215,7 @@ static union smb_fileinfo *fname_find(bool is_ipc, const char *name)
               (uint_t)s1->n1.out.v1, \
               (uint_t)s1->n1.out.v1, \
               __FILE__, __LINE__); \
-        ret = False; \
+        ret = false; \
 }} while(0)
 #endif
 
@@ -222,21 +223,21 @@ static union smb_fileinfo *fname_find(bool is_ipc, const char *name)
    for each call we test that it succeeds, and where possible test 
    for consistency between the calls. 
 */
-static BOOL torture_raw_qfileinfo_internals(struct torture_context *torture, 
+static bool torture_raw_qfileinfo_internals(struct torture_context *torture, 
                                            TALLOC_CTX *mem_ctx,        
                                            struct smbcli_tree *tree, 
                                            int fnum, const char *fname,
                                            bool is_ipc)
 {
        int i;
-       BOOL ret = True;
+       bool ret = true;
        int count;
        union smb_fileinfo *s1, *s2;    
        NTTIME correct_time;
        uint64_t correct_size;
        uint32_t correct_attrib;
        const char *correct_name;
-       BOOL skip_streams = False;
+       bool skip_streams = false;
 
        /* scan all the fileinfo and pathinfo levels */
        for (i=0; levels[i].name; i++) {
@@ -292,11 +293,10 @@ static BOOL torture_raw_qfileinfo_internals(struct torture_context *torture,
        }
 
        if (count != 0) {
-               ret = False;
+               ret = false;
                printf("%d levels failed\n", count);
                if (count > 35) {
-                       printf("too many level failures - giving up\n");
-                       goto done;
+                       torture_fail(torture, "too many level failures - giving up");
                }
        }
 
@@ -307,7 +307,7 @@ static BOOL torture_raw_qfileinfo_internals(struct torture_context *torture,
                        printf("STREAM_INFO broken (%d) - skipping streams checks\n",
                               s1 ? s1->stream_info.out.num_streams : -1);
                }
-               skip_streams = True;
+               skip_streams = true;
        }       
 
 
@@ -401,14 +401,14 @@ static BOOL torture_raw_qfileinfo_internals(struct torture_context *torture,
                printf("(%d) handle %s/%s incorrect - %s should be %s\n", __LINE__, #stype, #tfield,  \
                       nt_time_string(mem_ctx, s1->stype.out.tfield), \
                       nt_time_string(mem_ctx, correct_time)); \
-               ret = False; \
+               ret = false; \
        } \
        s1 = fname_find(is_ipc, sname); \
        if (s1 && memcmp(&s1->stype.out.tfield, &correct_time, sizeof(correct_time)) != 0) { \
                printf("(%d) path %s/%s incorrect - %s should be %s\n", __LINE__, #stype, #tfield,  \
                       nt_time_string(mem_ctx, s1->stype.out.tfield), \
                       nt_time_string(mem_ctx, correct_time)); \
-               ret = False; \
+               ret = false; \
        }} while (0)
 
 #define TIME_CHECK_DOS(sname, stype, tfield) do { \
@@ -417,14 +417,14 @@ static BOOL torture_raw_qfileinfo_internals(struct torture_context *torture,
                printf("(%d) handle %s/%s incorrect - %s should be %s\n", __LINE__, #stype, #tfield,  \
                       timestring(mem_ctx, s1->stype.out.tfield), \
                       nt_time_string(mem_ctx, correct_time)); \
-               ret = False; \
+               ret = false; \
        } \
        s1 = fname_find(is_ipc, sname); \
        if (s1 && dos_nt_time_cmp(s1->stype.out.tfield, correct_time) != 0) { \
                printf("(%d) path %s/%s incorrect - %s should be %s\n", __LINE__, #stype, #tfield,  \
                       timestring(mem_ctx, s1->stype.out.tfield), \
                       nt_time_string(mem_ctx, correct_time)); \
-               ret = False; \
+               ret = false; \
        }} while (0)
 
 #if 0 /* unused */
@@ -434,21 +434,21 @@ static BOOL torture_raw_qfileinfo_internals(struct torture_context *torture,
                printf("(%d) handle %s/%s incorrect - %s should be %s\n", __LINE__, #stype, #tfield,  \
                       timestring(mem_ctx, s1->stype.out.tfield), \
                       nt_time_string(mem_ctx, correct_time)); \
-               ret = False; \
+               ret = false; \
        } \
        s1 = fname_find(is_ipc, sname); \
        if (s1 && unx_nt_time_cmp(s1->stype.out.tfield, correct_time) != 0) { \
                printf("(%d) path %s/%s incorrect - %s should be %s\n", __LINE__, #stype, #tfield,  \
                       timestring(mem_ctx, s1->stype.out.tfield), \
                       nt_time_string(mem_ctx, correct_time)); \
-               ret = False; \
+               ret = false; \
        }} while (0)
 #endif
 
        /* now check that all the times that are supposed to be equal are correct */
        s1 = fnum_find("BASIC_INFO");
        correct_time = s1->basic_info.out.create_time;
-       printf("create_time: %s\n", nt_time_string(mem_ctx, correct_time));
+       torture_comment(torture, "create_time: %s\n", nt_time_string(mem_ctx, correct_time));
 
        TIME_CHECK_NT ("BASIC_INFO",               basic_info, create_time);
        TIME_CHECK_NT ("BASIC_INFORMATION",        basic_info, create_time);
@@ -460,7 +460,7 @@ static BOOL torture_raw_qfileinfo_internals(struct torture_context *torture,
 
        s1 = fnum_find("BASIC_INFO");
        correct_time = s1->basic_info.out.access_time;
-       printf("access_time: %s\n", nt_time_string(mem_ctx, correct_time));
+       torture_comment(torture, "access_time: %s\n", nt_time_string(mem_ctx, correct_time));
 
        TIME_CHECK_NT ("BASIC_INFO",               basic_info, access_time);
        TIME_CHECK_NT ("BASIC_INFORMATION",        basic_info, access_time);
@@ -472,7 +472,7 @@ static BOOL torture_raw_qfileinfo_internals(struct torture_context *torture,
 
        s1 = fnum_find("BASIC_INFO");
        correct_time = s1->basic_info.out.write_time;
-       printf("write_time : %s\n", nt_time_string(mem_ctx, correct_time));
+       torture_comment(torture, "write_time : %s\n", nt_time_string(mem_ctx, correct_time));
 
        TIME_CHECK_NT ("BASIC_INFO",               basic_info, write_time);
        TIME_CHECK_NT ("BASIC_INFORMATION",        basic_info, write_time);
@@ -485,7 +485,7 @@ static BOOL torture_raw_qfileinfo_internals(struct torture_context *torture,
 
        s1 = fnum_find("BASIC_INFO");
        correct_time = s1->basic_info.out.change_time;
-       printf("change_time: %s\n", nt_time_string(mem_ctx, correct_time));
+       torture_comment(torture, "change_time: %s\n", nt_time_string(mem_ctx, correct_time));
 
        TIME_CHECK_NT ("BASIC_INFO",               basic_info, change_time);
        TIME_CHECK_NT ("BASIC_INFORMATION",        basic_info, change_time);
@@ -499,19 +499,19 @@ static BOOL torture_raw_qfileinfo_internals(struct torture_context *torture,
                printf("(%d) handle %s/%s incorrect - %u should be %u\n", __LINE__, #stype, #tfield,  \
                       (uint_t)s1->stype.out.tfield, \
                       (uint_t)correct_size); \
-               ret = False; \
+               ret = false; \
        } \
        s1 = fname_find(is_ipc, sname); \
        if (s1 && s1->stype.out.tfield != correct_size) { \
                printf("(%d) path %s/%s incorrect - %u should be %u\n", __LINE__, #stype, #tfield,  \
                       (uint_t)s1->stype.out.tfield, \
                       (uint_t)correct_size); \
-               ret = False; \
+               ret = false; \
        }} while (0)
 
        s1 = fnum_find("STANDARD_INFO");
        correct_size = s1->standard_info.out.size;
-       printf("size: %u\n", (uint_t)correct_size);
+       torture_comment(torture, "size: %u\n", (uint_t)correct_size);
        
        SIZE_CHECK("GETATTR",                  getattr,                  size);
        SIZE_CHECK("GETATTRE",                 getattre,                 size);
@@ -532,7 +532,7 @@ static BOOL torture_raw_qfileinfo_internals(struct torture_context *torture,
 
        s1 = fnum_find("STANDARD_INFO");
        correct_size = s1->standard_info.out.alloc_size;
-       printf("alloc_size: %u\n", (uint_t)correct_size);
+       torture_comment(torture, "alloc_size: %u\n", (uint_t)correct_size);
        
        SIZE_CHECK("GETATTRE",                 getattre,                 alloc_size);
        SIZE_CHECK("STANDARD",                 standard,                 alloc_size);
@@ -553,19 +553,19 @@ static BOOL torture_raw_qfileinfo_internals(struct torture_context *torture,
                printf("(%d) handle %s/%s incorrect - 0x%x should be 0x%x\n", __LINE__, #stype, #tfield,  \
                       (uint_t)s1->stype.out.tfield, \
                       (uint_t)correct_attrib); \
-               ret = False; \
+               ret = false; \
        } \
        s1 = fname_find(is_ipc, sname); \
        if (s1 && s1->stype.out.tfield != correct_attrib) { \
                printf("(%d) path %s/%s incorrect - 0x%x should be 0x%x\n", __LINE__, #stype, #tfield,  \
                       (uint_t)s1->stype.out.tfield, \
                       (uint_t)correct_attrib); \
-               ret = False; \
+               ret = false; \
        }} while (0)
 
        s1 = fnum_find("BASIC_INFO");
        correct_attrib = s1->basic_info.out.attrib;
-       printf("attrib: 0x%x\n", (uint_t)correct_attrib);
+       torture_comment(torture, "attrib: 0x%x\n", (uint_t)correct_attrib);
        
        ATTRIB_CHECK("GETATTR",                   getattr,                   attrib);
        if (!is_ipc) {
@@ -581,7 +581,7 @@ static BOOL torture_raw_qfileinfo_internals(struct torture_context *torture,
        ATTRIB_CHECK("ATTRIBUTE_TAG_INFORMATION", attribute_tag_information, attrib);
 
        correct_name = fname;
-       printf("name: %s\n", correct_name);
+       torture_comment(torture, "name: %s\n", correct_name);
 
 #define NAME_CHECK(sname, stype, tfield, flags) do { \
        s1 = fnum_find(sname); \
@@ -589,14 +589,14 @@ static BOOL torture_raw_qfileinfo_internals(struct torture_context *torture,
                        wire_bad_flags(&s1->stype.out.tfield, flags, tree->session->transport))) { \
                printf("(%d) handle %s/%s incorrect - '%s/%d'\n", __LINE__, #stype, #tfield,  \
                       s1->stype.out.tfield.s, s1->stype.out.tfield.private_length); \
-               ret = False; \
+               ret = false; \
        } \
        s1 = fname_find(is_ipc, sname); \
        if (s1 && (strcmp_safe(s1->stype.out.tfield.s, correct_name) != 0 || \
                        wire_bad_flags(&s1->stype.out.tfield, flags, tree->session->transport))) { \
                printf("(%d) path %s/%s incorrect - '%s/%d'\n", __LINE__, #stype, #tfield,  \
                       s1->stype.out.tfield.s, s1->stype.out.tfield.private_length); \
-               ret = False; \
+               ret = false; \
        }} while (0)
 
        NAME_CHECK("NAME_INFO",        name_info, fname, STR_UNICODE);
@@ -605,32 +605,31 @@ static BOOL torture_raw_qfileinfo_internals(struct torture_context *torture,
        /* the ALL_INFO file name is the full path on the filesystem */
        s1 = fnum_find("ALL_INFO");
        if (s1 && !s1->all_info.out.fname.s) {
-               printf("ALL_INFO didn't give a filename\n");
-               ret = False;
+               torture_fail(torture, "ALL_INFO didn't give a filename");
        }
        if (s1 && s1->all_info.out.fname.s) {
                char *p = strrchr(s1->all_info.out.fname.s, '\\');
                if (!p) {
                        printf("Not a full path in all_info/fname? - '%s'\n", 
                               s1->all_info.out.fname.s);
-                       ret = False;
+                       ret = false;
                } else {
                        if (strcmp_safe(correct_name, p) != 0) {
                                printf("incorrect basename in all_info/fname - '%s'\n",
                                       s1->all_info.out.fname.s);
-                               ret = False;
+                               ret = false;
                        }
                }
                if (wire_bad_flags(&s1->all_info.out.fname, STR_UNICODE, tree->session->transport)) {
                        printf("Should not null terminate all_info/fname\n");
-                       ret = False;
+                       ret = false;
                }
        }
 
        s1 = fnum_find("ALT_NAME_INFO");
        if (s1) {
                correct_name = s1->alt_name_info.out.fname.s;
-               printf("alt_name: %s\n", correct_name);
+               torture_comment(torture, "alt_name: %s\n", correct_name);
                
                NAME_CHECK("ALT_NAME_INFO",        alt_name_info, fname, STR_UNICODE);
                NAME_CHECK("ALT_NAME_INFORMATION", alt_name_info, fname, STR_UNICODE);
@@ -647,12 +646,12 @@ static BOOL torture_raw_qfileinfo_internals(struct torture_context *torture,
                                             0, 0);
                if (fnum == -1) {
                        printf("Unable to open by alt_name - %s\n", smbcli_errstr(tree));
-                       ret = False;
+                       ret = false;
                }
                
                if (!skip_streams) {
                        correct_name = "::$DATA";
-                       printf("stream_name: %s\n", correct_name);
+                       torture_comment(torture, "stream_name: %s\n", correct_name);
                        
                        NAME_CHECK("STREAM_INFO",        stream_info, streams[0].stream_name, STR_UNICODE);
                        NAME_CHECK("STREAM_INFORMATION", stream_info, streams[0].stream_name, STR_UNICODE);
@@ -703,28 +702,28 @@ static BOOL torture_raw_qfileinfo_internals(struct torture_context *torture,
                printf("(%d) handle %s/%s != %s/%s - 0x%x vs 0x%x\n", __LINE__, \
                        #stype1, #tfield1, #stype2, #tfield2,  \
                       s1->stype1.out.tfield1, s2->stype2.out.tfield2); \
-               ret = False; \
+               ret = false; \
        } \
        s1 = fname_find(is_ipc, sname1); s2 = fname_find(is_ipc, sname2); \
        if (s1 && s2 && s1->stype1.out.tfield1 != s2->stype2.out.tfield2) { \
                printf("(%d) path %s/%s != %s/%s - 0x%x vs 0x%x\n", __LINE__, \
                        #stype1, #tfield1, #stype2, #tfield2,  \
                       s1->stype1.out.tfield1, s2->stype2.out.tfield2); \
-               ret = False; \
+               ret = false; \
        } \
        s1 = fnum_find(sname1); s2 = fname_find(is_ipc, sname2); \
        if (s1 && s2 && s1->stype1.out.tfield1 != s2->stype2.out.tfield2) { \
                printf("(%d) handle %s/%s != path %s/%s - 0x%x vs 0x%x\n", __LINE__, \
                        #stype1, #tfield1, #stype2, #tfield2,  \
                       s1->stype1.out.tfield1, s2->stype2.out.tfield2); \
-               ret = False; \
+               ret = false; \
        } \
        s1 = fname_find(is_ipc, sname1); s2 = fnum_find(sname2); \
        if (s1 && s2 && s1->stype1.out.tfield1 != s2->stype2.out.tfield2) { \
                printf("(%d) path %s/%s != handle %s/%s - 0x%x vs 0x%x\n", __LINE__, \
                        #stype1, #tfield1, #stype2, #tfield2,  \
                       s1->stype1.out.tfield1, s2->stype2.out.tfield2); \
-               ret = False; \
+               ret = false; \
        }} while (0)
 
        VAL_CHECK("STANDARD_INFO", standard_info, delete_pending, 
@@ -737,18 +736,18 @@ static BOOL torture_raw_qfileinfo_internals(struct torture_context *torture,
        if (s1 && is_ipc) {
                if (s1->basic_info.out.attrib != FILE_ATTRIBUTE_NORMAL) {
                        printf("(%d) attrib basic_info/nlink incorrect - %d should be %d\n", __LINE__, s1->basic_info.out.attrib, FILE_ATTRIBUTE_NORMAL);
-                       ret = False;
+                       ret = false;
                }
        }
        s1 = fnum_find("STANDARD_INFO");
        if (s1 && is_ipc) {
                if (s1->standard_info.out.nlink != 1) {
                        printf("(%d) nlinks standard_info/nlink incorrect - %d should be 1\n", __LINE__, s1->standard_info.out.nlink);
-                       ret = False;
+                       ret = false;
                }
                if (s1->standard_info.out.delete_pending != 1) {
                        printf("(%d) nlinks standard_info/delete_pending incorrect - %d should be 1\n", __LINE__, s1->standard_info.out.delete_pending);
-                       ret = False;
+                       ret = false;
                }
        }
        VAL_CHECK("EA_INFO",       ea_info,       ea_size, 
@@ -768,7 +767,7 @@ static BOOL torture_raw_qfileinfo_internals(struct torture_context *torture,
 
        s1 = fnum_find("INTERNAL_INFORMATION");
        if (s1) {
-               printf("file_id=%.0f\n", (double)s1->internal_information.out.file_id);
+               torture_comment(torture, "file_id=%.0f\n", (double)s1->internal_information.out.file_id);
        }
 
        NAME_PATH_CHECK("INTERNAL_INFORMATION", internal_information, file_id);
@@ -808,9 +807,6 @@ static BOOL torture_raw_qfileinfo_internals(struct torture_context *torture,
        /* when we set the delete disposition then the link count should drop
           to 0 and delete_pending should be 1 */
        
-
-done:
-
        return ret;
 }
 
@@ -831,7 +827,7 @@ bool torture_raw_qfileinfo(struct torture_context *torture,
                return false;
        }
 
-       ret = torture_raw_qfileinfo_internals(torture, torture, cli->tree, fnum, fname, False /* is_ipc */);
+       ret = torture_raw_qfileinfo_internals(torture, torture, cli->tree, fnum, fname, false /* is_ipc */);
        
        smbcli_close(cli->tree, fnum);
        smbcli_unlink(cli->tree, fname);
@@ -840,7 +836,7 @@ bool torture_raw_qfileinfo(struct torture_context *torture,
 }
 
 bool torture_raw_qfileinfo_pipe(struct torture_context *torture, 
-                                                               struct smbcli_state *cli)
+                               struct smbcli_state *cli)
 {
        bool ret = true;
        int fnum;
@@ -849,23 +845,17 @@ bool torture_raw_qfileinfo_pipe(struct torture_context *torture,
        struct smbcli_tree *ipc_tree;
        NTSTATUS status;
 
-       if (!(p = dcerpc_pipe_init(torture, 
-                                  cli->tree->session->transport->socket->event.ctx))) {
-               return False;
+       if (!(p = dcerpc_pipe_init(torture, cli->tree->session->transport->socket->event.ctx))) {
+               return false;
        }
 
        status = dcerpc_pipe_open_smb(p, cli->tree, fname);
-       if (!NT_STATUS_IS_OK(status)) {
-               d_printf("dcerpc_pipe_open_smb failed: %s\n",
-                        nt_errstr(status));
-               talloc_free(p);
-               return False;
-       }
+       torture_assert_ntstatus_ok(torture, status, "dcerpc_pipe_open_smb failed");
 
        ipc_tree = dcerpc_smb_tree(p->conn);
        fnum = dcerpc_smb_fnum(p->conn);
 
-       ret = torture_raw_qfileinfo_internals(torture, torture, ipc_tree, fnum, fname, True /* is_ipc */);
+       ret = torture_raw_qfileinfo_internals(torture, torture, ipc_tree, fnum, fname, true /* is_ipc */);
        
        talloc_free(p);
        return ret;
index dc09e55b63999e8feb3e0fc222f8e15df5d27b45..32075586249779c0247cfad1fb3d418797d0f675 100644 (file)
@@ -74,7 +74,7 @@ static union smb_fsinfo *find(const char *name)
                #n1, #v1, (uint_t)s1->n1.out.v1, \
                #n2, #v2, (uint_t)s2->n2.out.v2, \
               __FILE__, __LINE__); \
-        ret = False; \
+        ret = false; \
 }} while(0)
 
 #define VAL_APPROX_EQUAL(n1, v1, n2, v2) do {if (abs((int)(s1->n1.out.v1) - (int)(s2->n2.out.v2)) > 0.1*s1->n1.out.v1) { \
@@ -82,7 +82,7 @@ static union smb_fsinfo *find(const char *name)
                #n1, #v1, (uint_t)s1->n1.out.v1, \
                #n2, #v2, (uint_t)s2->n2.out.v2, \
               __FILE__, __LINE__); \
-        ret = False; \
+        ret = false; \
 }} while(0)
 
 #define STR_EQUAL(n1, v1, n2, v2) do { \
@@ -91,7 +91,7 @@ static union smb_fsinfo *find(const char *name)
                #n1, #v1, s1->n1.out.v1, \
                #n2, #v2, s2->n2.out.v2, \
               __FILE__, __LINE__); \
-        ret = False; \
+        ret = false; \
 }} while(0)
 
 #define STRUCT_EQUAL(n1, v1, n2, v2) do {if (memcmp(&s1->n1.out.v1,&s2->n2.out.v2,sizeof(s1->n1.out.v1))) { \
@@ -99,7 +99,7 @@ static union smb_fsinfo *find(const char *name)
                #n1, #v1, \
                #n2, #v2, \
               __FILE__, __LINE__); \
-        ret = False; \
+        ret = false; \
 }} while(0)
 
 /* used to find hints on unknown values - and to make sure 
@@ -110,7 +110,7 @@ static union smb_fsinfo *find(const char *name)
               (uint_t)s1->n1.out.v1, \
               (uint_t)s1->n1.out.v1, \
               __FILE__, __LINE__); \
-        ret = False; \
+        ret = false; \
 }} while(0)
 
 /* basic testing of all RAW_QFS_* calls 
@@ -121,10 +121,10 @@ static union smb_fsinfo *find(const char *name)
    quiescent, which is sometimes hard to achieve
 */
 bool torture_raw_qfsinfo(struct torture_context *torture, 
-                                                struct smbcli_state *cli)
+                        struct smbcli_state *cli)
 {
        int i;
-       BOOL ret = True;
+       bool ret = true;
        int count;
        union smb_fsinfo *s1, *s2;      
 
@@ -154,7 +154,7 @@ bool torture_raw_qfsinfo(struct torture_context *torture,
                printf("%d levels failed\n", count);
                if (count > 13) {
                        printf("too many level failures - giving up\n");
-                       return False;
+                       return false;
                }
        }
 
@@ -212,7 +212,7 @@ bool torture_raw_qfsinfo(struct torture_context *torture,
                if (abs(size1 - size2) > 1) {
                        printf("Inconsistent total size in DSKATTR and ALLOCATION - size1=%.0f size2=%.0f\n", 
                               size1, size2);
-                       ret = False;
+                       ret = false;
                }
                printf("total disk = %.0f MB\n", size1*scale/1.0e6);
        }
@@ -234,7 +234,7 @@ bool torture_raw_qfsinfo(struct torture_context *torture,
                if (abs(size1 - size2) > 1) {
                        printf("Inconsistent avail size in DSKATTR and ALLOCATION - size1=%.0f size2=%.0f\n", 
                               size1, size2);
-                       ret = False;
+                       ret = false;
                }
                printf("free disk = %.0f MB\n", size1*scale/1.0e6);
        }
@@ -283,7 +283,7 @@ bool torture_raw_qfsinfo(struct torture_context *torture,
                if (s1->stype.out.field.s && wire_bad_flags(&s1->stype.out.field, flags, cli->transport)) { \
                        printf("(%d) incorrect string termination in %s/%s\n", \
                               __LINE__, #stype, #field); \
-                       ret = False; \
+                       ret = false; \
                } \
        }} while (0)
 
index 0c4a28e0d6a41ec6951c300d48382690f958b8ea..112c34d2992b995a0f6200156d636deb9cff5fcf 100644 (file)
@@ -63,6 +63,8 @@ NTSTATUS torture_raw_init(void)
        torture_suite_add_1smb_test(suite, "COMPOSITE", torture_raw_composite);
        torture_suite_add_simple_test(suite, "SAMBA3HIDE", torture_samba3_hide);
        torture_suite_add_simple_test(suite, "SAMBA3CLOSEERR", torture_samba3_closeerr);
+       torture_suite_add_simple_test(suite, "SAMBA3ROOTDIRFID",
+                                     torture_samba3_rootdirfid);
        torture_suite_add_simple_test(suite, "SAMBA3CHECKFSP", torture_samba3_checkfsp);
        torture_suite_add_simple_test(suite, "SAMBA3BADPATH", torture_samba3_badpath);
        torture_suite_add_simple_test(suite, "SAMBA3CASEINSENSITIVE",
@@ -71,8 +73,7 @@ NTSTATUS torture_raw_init(void)
                                      torture_samba3_posixtimedlock);
        torture_suite_add_simple_test(suite, "SCAN-EAMAX", torture_max_eas);
 
-       suite->description = talloc_strdup(suite, 
-                                                       "Tests for the raw SMB interface");
+       suite->description = talloc_strdup(suite, "Tests for the raw SMB interface");
 
        torture_register_suite(suite);
 
index f1048f25ac0669953d67d1e64c1e27478df42337..90f6a3d4a8a56d83f98bf28312eda32619f3d6ba 100644 (file)
 #include "system/filesys.h"
 #include "libcli/libcli.h"
 #include "torture/util.h"
+#include "param/param.h"
 
 #define CHECK_STATUS(status, correct) do { \
        if (!NT_STATUS_EQUAL(status, correct)) { \
                printf("(%s) Incorrect status %s - should be %s\n", \
                       __location__, nt_errstr(status), nt_errstr(correct)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
        if ((v) != (correct)) { \
                printf("(%s) Incorrect value %s=%ld - should be %ld\n", \
                       __location__, #v, (long)v, (long)correct); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
 #define CHECK_BUFFER(buf, seed, len) do { \
        if (!check_buffer(buf, seed, len, __LINE__)) { \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
@@ -63,7 +64,7 @@ static void setup_buffer(uint8_t *buf, uint_t seed, int len)
 /*
   check a random buffer based on a seed
 */
-static BOOL check_buffer(uint8_t *buf, uint_t seed, int len, int line)
+static bool check_buffer(uint8_t *buf, uint_t seed, int len, int line)
 {
        int i;
        srandom(seed);
@@ -72,10 +73,10 @@ static BOOL check_buffer(uint8_t *buf, uint_t seed, int len, int line)
                if (buf[i] != v) {
                        printf("Buffer incorrect at line %d! ofs=%d v1=0x%x v2=0x%x\n", 
                               line, i, buf[i], v);
-                       return False;
+                       return false;
                }
        }
-       return True;
+       return true;
 }
 
 /*
@@ -85,7 +86,7 @@ static bool test_read(struct torture_context *tctx, struct smbcli_state *cli)
 {
        union smb_read io;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        int fnum;
        uint8_t *buf;
        const int maxsize = 90000;
@@ -93,10 +94,10 @@ static bool test_read(struct torture_context *tctx, struct smbcli_state *cli)
        const char *test_data = "TEST DATA";
        uint_t seed = time(NULL);
 
-       buf = talloc_zero_size(tctx, maxsize);
+       buf = talloc_zero_array(tctx, uint8_t, maxsize);
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        printf("Testing RAW_READ_READ\n");
@@ -105,7 +106,7 @@ static bool test_read(struct torture_context *tctx, struct smbcli_state *cli)
        fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE);
        if (fnum == -1) {
                printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -143,7 +144,7 @@ static bool test_read(struct torture_context *tctx, struct smbcli_state *cli)
        CHECK_STATUS(status, NT_STATUS_OK);
        CHECK_VALUE(io.read.out.nread, strlen(test_data));
        if (memcmp(buf, test_data, strlen(test_data)) != 0) {
-               ret = False;
+               ret = false;
                printf("incorrect data at %d!? (%s:%s)\n", __LINE__, test_data, buf);
                goto done;
        }
@@ -155,7 +156,7 @@ static bool test_read(struct torture_context *tctx, struct smbcli_state *cli)
        CHECK_STATUS(status, NT_STATUS_OK);
        CHECK_VALUE(io.read.out.nread, strlen(test_data)-1);
        if (memcmp(buf, test_data+1, strlen(test_data)-1) != 0) {
-               ret = False;
+               ret = false;
                printf("incorrect data at %d!? (%s:%s)\n", __LINE__, test_data+1, buf);
                goto done;
        }
@@ -185,7 +186,7 @@ static bool test_read(struct torture_context *tctx, struct smbcli_state *cli)
        cli->session->pid++;
        if (NT_STATUS_IS_ERR(smbcli_lock(cli->tree, fnum, 103, 1, 0, WRITE_LOCK))) {
                printf("Failed to lock file at %d\n", __LINE__);
-               ret = False;
+               ret = false;
                goto done;
        }
        cli->session->pid--;
@@ -212,7 +213,7 @@ static bool test_lockread(struct torture_context *tctx,
 {
        union smb_read io;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        int fnum;
        uint8_t *buf;
        const int maxsize = 90000;
@@ -220,10 +221,10 @@ static bool test_lockread(struct torture_context *tctx,
        const char *test_data = "TEST DATA";
        uint_t seed = time(NULL);
 
-       buf = talloc_zero_size(tctx, maxsize);
+       buf = talloc_zero_array(tctx, uint8_t, maxsize);
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        printf("Testing RAW_READ_LOCKREAD\n");
@@ -232,7 +233,7 @@ static bool test_lockread(struct torture_context *tctx,
        fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE);
        if (fnum == -1) {
                printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -282,7 +283,7 @@ static bool test_lockread(struct torture_context *tctx,
        CHECK_STATUS(status, NT_STATUS_OK);
        CHECK_VALUE(io.lockread.out.nread, strlen(test_data));
        if (memcmp(buf, test_data, strlen(test_data)) != 0) {
-               ret = False;
+               ret = false;
                printf("incorrect data at %d!? (%s:%s)\n", __LINE__, test_data, buf);
                goto done;
        }
@@ -298,7 +299,7 @@ static bool test_lockread(struct torture_context *tctx,
 
        CHECK_VALUE(io.lockread.out.nread, strlen(test_data)-1);
        if (memcmp(buf, test_data+1, strlen(test_data)-1) != 0) {
-               ret = False;
+               ret = false;
                printf("incorrect data at %d!? (%s:%s)\n", __LINE__, test_data+1, buf);
                goto done;
        }
@@ -332,7 +333,7 @@ static bool test_lockread(struct torture_context *tctx,
        cli->session->pid++;
        if (NT_STATUS_IS_ERR(smbcli_lock(cli->tree, fnum, 103, 1, 0, WRITE_LOCK))) {
                printf("Failed to lock file at %d\n", __LINE__);
-               ret = False;
+               ret = false;
                goto done;
        }
        cli->session->pid--;
@@ -357,7 +358,7 @@ static bool test_readx(struct torture_context *tctx, struct smbcli_state *cli)
 {
        union smb_read io;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        int fnum;
        uint8_t *buf;
        const int maxsize = 90000;
@@ -365,10 +366,10 @@ static bool test_readx(struct torture_context *tctx, struct smbcli_state *cli)
        const char *test_data = "TEST DATA";
        uint_t seed = time(NULL);
 
-       buf = talloc_zero_size(tctx, maxsize);
+       buf = talloc_zero_array(tctx, uint8_t, maxsize);
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        printf("Testing RAW_READ_READX\n");
@@ -376,7 +377,7 @@ static bool test_readx(struct torture_context *tctx, struct smbcli_state *cli)
        fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE);
        if (fnum == -1) {
                printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -387,7 +388,7 @@ static bool test_readx(struct torture_context *tctx, struct smbcli_state *cli)
        io.readx.in.maxcnt = 1;
        io.readx.in.offset = 0;
        io.readx.in.remaining = 0;
-       io.readx.in.read_for_execute = False;
+       io.readx.in.read_for_execute = false;
        io.readx.out.data = buf;
        status = smb_raw_read(cli->tree, &io);
 
@@ -417,7 +418,7 @@ static bool test_readx(struct torture_context *tctx, struct smbcli_state *cli)
        io.readx.in.file.fnum = fnum;
        io.readx.in.offset = 0;
        io.readx.in.remaining = 0;
-       io.readx.in.read_for_execute = False;
+       io.readx.in.read_for_execute = false;
        io.readx.in.mincnt = strlen(test_data);
        io.readx.in.maxcnt = strlen(test_data);
        status = smb_raw_read(cli->tree, &io);
@@ -426,7 +427,7 @@ static bool test_readx(struct torture_context *tctx, struct smbcli_state *cli)
        CHECK_VALUE(io.readx.out.remaining, 0xFFFF);
        CHECK_VALUE(io.readx.out.compaction_mode, 0);
        if (memcmp(buf, test_data, strlen(test_data)) != 0) {
-               ret = False;
+               ret = false;
                printf("incorrect data at %d!? (%s:%s)\n", __LINE__, test_data, buf);
                goto done;
        }
@@ -441,7 +442,7 @@ static bool test_readx(struct torture_context *tctx, struct smbcli_state *cli)
        CHECK_VALUE(io.readx.out.remaining, 0xFFFF);
        CHECK_VALUE(io.readx.out.compaction_mode, 0);
        if (memcmp(buf, test_data+1, strlen(test_data)-1) != 0) {
-               ret = False;
+               ret = false;
                printf("incorrect data at %d!? (%s:%s)\n", __LINE__, test_data+1, buf);
                goto done;
        }
@@ -481,7 +482,7 @@ static bool test_readx(struct torture_context *tctx, struct smbcli_state *cli)
        CHECK_STATUS(status, NT_STATUS_OK);
        CHECK_VALUE(io.readx.out.remaining, 0xFFFF);
        CHECK_VALUE(io.readx.out.compaction_mode, 0);
-       if (lp_parm_bool(-1, "torture", "samba3", False)) {
+       if (lp_parm_bool(global_loadparm, NULL, "torture", "samba3", false)) {
                printf("SAMBA3: large read extension\n");
                CHECK_VALUE(io.readx.out.nread, 80000);
        } else {
@@ -525,7 +526,7 @@ static bool test_readx(struct torture_context *tctx, struct smbcli_state *cli)
                io.readx.in.maxcnt = 0x10000;
                status = smb_raw_read(cli->tree, &io);
                CHECK_STATUS(status, NT_STATUS_OK);
-               if (lp_parm_bool(-1, "torture", "samba3", False)) {
+               if (lp_parm_bool(global_loadparm, NULL, "torture", "samba3", false)) {
                        printf("SAMBA3: large read extension\n");
                        CHECK_VALUE(io.readx.out.nread, 0x10000);
                } else {
@@ -535,7 +536,7 @@ static bool test_readx(struct torture_context *tctx, struct smbcli_state *cli)
                io.readx.in.maxcnt = 0x10001;
                status = smb_raw_read(cli->tree, &io);
                CHECK_STATUS(status, NT_STATUS_OK);
-               if (lp_parm_bool(-1, "torture", "samba3", False)) {
+               if (lp_parm_bool(global_loadparm, NULL, "torture", "samba3", false)) {
                        printf("SAMBA3: large read extension\n");
                        CHECK_VALUE(io.readx.out.nread, 0x10001);
                } else {
@@ -547,7 +548,7 @@ static bool test_readx(struct torture_context *tctx, struct smbcli_state *cli)
        cli->session->pid++;
        if (NT_STATUS_IS_ERR(smbcli_lock(cli->tree, fnum, 103, 1, 0, WRITE_LOCK))) {
                printf("Failed to lock file at %d\n", __LINE__);
-               ret = False;
+               ret = false;
                goto done;
        }
        cli->session->pid--;
@@ -573,7 +574,7 @@ static bool test_readx(struct torture_context *tctx, struct smbcli_state *cli)
 
        if (NT_STATUS_IS_ERR(smbcli_lock64(cli->tree, fnum, io.readx.in.offset, 1, 0, WRITE_LOCK))) {
                printf("Failed to lock file at %d\n", __LINE__);
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -596,7 +597,7 @@ static bool test_readbraw(struct torture_context *tctx,
 {
        union smb_read io;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        int fnum;
        uint8_t *buf;
        const int maxsize = 90000;
@@ -604,10 +605,10 @@ static bool test_readbraw(struct torture_context *tctx,
        const char *test_data = "TEST DATA";
        uint_t seed = time(NULL);
 
-       buf = talloc_zero_size(tctx, maxsize);
+       buf = talloc_zero_array(tctx, uint8_t, maxsize);
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        printf("Testing RAW_READ_READBRAW\n");
@@ -615,7 +616,7 @@ static bool test_readbraw(struct torture_context *tctx,
        fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE);
        if (fnum == -1) {
                printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -657,7 +658,7 @@ static bool test_readbraw(struct torture_context *tctx,
        CHECK_STATUS(status, NT_STATUS_OK);
        CHECK_VALUE(io.readbraw.out.nread, strlen(test_data));
        if (memcmp(buf, test_data, strlen(test_data)) != 0) {
-               ret = False;
+               ret = false;
                printf("incorrect data at %d!? (%s:%s)\n", __LINE__, test_data, buf);
                goto done;
        }
@@ -670,7 +671,7 @@ static bool test_readbraw(struct torture_context *tctx,
        CHECK_STATUS(status, NT_STATUS_OK);
        CHECK_VALUE(io.readbraw.out.nread, strlen(test_data)-1);
        if (memcmp(buf, test_data+1, strlen(test_data)-1) != 0) {
-               ret = False;
+               ret = false;
                printf("incorrect data at %d!? (%s:%s)\n", __LINE__, test_data+1, buf);
                goto done;
        }
@@ -722,7 +723,7 @@ static bool test_readbraw(struct torture_context *tctx,
        cli->session->pid++;
        if (NT_STATUS_IS_ERR(smbcli_lock(cli->tree, fnum, 103, 1, 0, WRITE_LOCK))) {
                printf("Failed to lock file at %d\n", __LINE__);
-               ret = False;
+               ret = false;
                goto done;
        }
        cli->session->pid--;
@@ -771,17 +772,17 @@ static bool test_read_for_execute(struct torture_context *tctx,
        union smb_write wr;
        union smb_read rd;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        int fnum=0;
        uint8_t *buf;
        const int maxsize = 900;
        const char *fname = BASEDIR "\\test.txt";
        const uint8_t data[] = "TEST DATA";
 
-       buf = talloc_zero_size(tctx, maxsize);
+       buf = talloc_zero_array(tctx, uint8_t, maxsize);
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        printf("Testing RAW_READ_READX with read_for_execute\n");
@@ -840,7 +841,7 @@ static bool test_read_for_execute(struct torture_context *tctx,
        rd.readx.in.maxcnt = maxsize;
        rd.readx.in.offset = 0;
        rd.readx.in.remaining = 0;
-       rd.readx.in.read_for_execute = True;
+       rd.readx.in.read_for_execute = true;
        rd.readx.out.data = buf;
        status = smb_raw_read(cli->tree, &rd);
        CHECK_STATUS(status, NT_STATUS_OK);
@@ -855,7 +856,7 @@ static bool test_read_for_execute(struct torture_context *tctx,
        rd.readx.in.maxcnt = maxsize;
        rd.readx.in.offset = 0;
        rd.readx.in.remaining = 0;
-       rd.readx.in.read_for_execute = False;
+       rd.readx.in.read_for_execute = false;
        rd.readx.out.data = buf;
        status = smb_raw_read(cli->tree, &rd);
        CHECK_STATUS(status, NT_STATUS_ACCESS_DENIED);
@@ -887,7 +888,7 @@ static bool test_read_for_execute(struct torture_context *tctx,
        rd.readx.in.maxcnt = maxsize;
        rd.readx.in.offset = 0;
        rd.readx.in.remaining = 0;
-       rd.readx.in.read_for_execute = True;
+       rd.readx.in.read_for_execute = true;
        rd.readx.out.data = buf;
        status = smb_raw_read(cli->tree, &rd);
        CHECK_STATUS(status, NT_STATUS_OK);
@@ -902,7 +903,7 @@ static bool test_read_for_execute(struct torture_context *tctx,
        rd.readx.in.maxcnt = maxsize;
        rd.readx.in.offset = 0;
        rd.readx.in.remaining = 0;
-       rd.readx.in.read_for_execute = False;
+       rd.readx.in.read_for_execute = false;
        rd.readx.out.data = buf;
        status = smb_raw_read(cli->tree, &rd);
        CHECK_STATUS(status, NT_STATUS_OK);
index 05a53208590aff647bb549291c9c02935ae6e1a2..4b0d9866595e21c330ec5a854fac3bb34cf6af5e 100644 (file)
@@ -27,7 +27,7 @@
        if (!NT_STATUS_EQUAL(status, correct)) { \
                printf("(%s) Incorrect status %s - should be %s\n", \
                       __location__, nt_errstr(status), nt_errstr(correct)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
@@ -35,7 +35,7 @@
        if ((v) != (correct)) { \
                printf("(%s) Incorrect %s %d - should be %d\n", \
                       __location__, #v, (int)v, (int)correct); \
-               ret = False; \
+               ret = false; \
        }} while (0)
 
 #define BASEDIR "\\testrename"
@@ -48,7 +48,7 @@ static bool test_mv(struct torture_context *tctx,
 {
        union smb_rename io;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        int fnum = -1;
        const char *fname1 = BASEDIR "\\test1.txt";
        const char *fname2 = BASEDIR "\\test2.txt";
@@ -59,7 +59,7 @@ static bool test_mv(struct torture_context *tctx,
        printf("Testing SMBmv\n");
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        printf("Trying simple rename\n");
@@ -197,7 +197,7 @@ static bool test_ntrename(struct torture_context *tctx,
 {
        union smb_rename io;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        int fnum, i;
        const char *fname1 = BASEDIR "\\test1.txt";
        const char *fname2 = BASEDIR "\\test2.txt";
@@ -206,7 +206,7 @@ static bool test_ntrename(struct torture_context *tctx,
        printf("Testing SMBntrename\n");
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        printf("Trying simple rename\n");
index 3fe151f0091c9c612cd370e79569113efbc27017..8fe3aa4d2d98f704b00c4d39cc82ea81bea8b48a 100644 (file)
@@ -57,7 +57,7 @@ static void init_unixinfo_nochange(union smb_setfileinfo *info)
 
 struct list_state {
        const char *fname;
-       BOOL visible;
+       bool visible;
 };
 
 static void set_visible(struct clilist_file_info *i, const char *mask,
@@ -66,43 +66,43 @@ static void set_visible(struct clilist_file_info *i, const char *mask,
        struct list_state *state = (struct list_state *)priv;
 
        if (strcasecmp_m(state->fname, i->name) == 0)
-               state->visible = True;
+               state->visible = true;
 }
 
-static BOOL is_visible(struct smbcli_tree *tree, const char *fname)
+static bool is_visible(struct smbcli_tree *tree, const char *fname)
 {
        struct list_state state;
 
-       state.visible = False;
+       state.visible = false;
        state.fname = fname;
 
        if (smbcli_list(tree, "*.*", 0, set_visible, &state) < 0) {
-               return False;
+               return false;
        }
        return state.visible;
 }
 
-static BOOL is_readable(struct smbcli_tree *tree, const char *fname)
+static bool is_readable(struct smbcli_tree *tree, const char *fname)
 {
        int fnum;
        fnum = smbcli_open(tree, fname, O_RDONLY, DENY_NONE);
        if (fnum < 0) {
-               return False;
+               return false;
        }
        smbcli_close(tree, fnum);
-       return True;
+       return true;
 }
 
-static BOOL is_writeable(TALLOC_CTX *mem_ctx, struct smbcli_tree *tree,
+static bool is_writeable(TALLOC_CTX *mem_ctx, struct smbcli_tree *tree,
                         const char *fname)
 {
        int fnum;
        fnum = smbcli_open(tree, fname, O_WRONLY, DENY_NONE);
        if (fnum < 0) {
-               return False;
+               return false;
        }
        smbcli_close(tree, fnum);
-       return True;
+       return true;
 }
 
 /*
@@ -110,7 +110,7 @@ static BOOL is_writeable(TALLOC_CTX *mem_ctx, struct smbcli_tree *tree,
  * might fail. But for our purposes it's sufficient.
  */
 
-static BOOL smbcli_file_exists(struct smbcli_tree *tree, const char *fname)
+static bool smbcli_file_exists(struct smbcli_tree *tree, const char *fname)
 {
        return NT_STATUS_IS_OK(smbcli_getatr(tree, fname, NULL, NULL, NULL));
 }
@@ -125,7 +125,7 @@ static NTSTATUS smbcli_chmod(struct smbcli_tree *tree, const char *fname,
        return smb_raw_setpathinfo(tree, &sfinfo);
 }
 
-BOOL torture_samba3_hide(struct torture_context *torture)
+bool torture_samba3_hide(struct torture_context *torture)
 {
        struct smbcli_state *cli;
        const char *fname = "test.txt";
@@ -138,7 +138,7 @@ BOOL torture_samba3_hide(struct torture_context *torture)
                    torture, &cli, torture_setting_string(torture, "host", NULL),
                    torture_setting_string(torture, "share", NULL), NULL)) {
                d_printf("torture_open_connection_share failed\n");
-               return False;
+               return false;
        }
 
        status = torture_second_tcon(torture, cli->session, "hideunread",
@@ -146,7 +146,7 @@ BOOL torture_samba3_hide(struct torture_context *torture)
        if (!NT_STATUS_IS_OK(status)) {
                d_printf("second_tcon(hideunread) failed: %s\n",
                         nt_errstr(status));
-               return False;
+               return false;
        }
 
        status = torture_second_tcon(torture, cli->session, "hideunwrite",
@@ -154,7 +154,7 @@ BOOL torture_samba3_hide(struct torture_context *torture)
        if (!NT_STATUS_IS_OK(status)) {
                d_printf("second_tcon(hideunwrite) failed: %s\n",
                         nt_errstr(status));
-               return False;
+               return false;
        }
 
        status = smbcli_unlink(cli->tree, fname);
@@ -167,14 +167,14 @@ BOOL torture_samba3_hide(struct torture_context *torture)
        if (fnum == -1) {
                d_printf("Failed to create %s - %s\n", fname,
                         smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
 
        smbcli_close(cli->tree, fnum);
 
        if (!smbcli_file_exists(cli->tree, fname)) {
                d_printf("%s does not exist\n", fname);
-               return False;
+               return false;
        }
 
        /* R/W file should be visible everywhere */
@@ -182,27 +182,27 @@ BOOL torture_samba3_hide(struct torture_context *torture)
        status = smbcli_chmod(cli->tree, fname, UNIX_R_USR|UNIX_W_USR);
        if (!NT_STATUS_IS_OK(status)) {
                d_printf("smbcli_chmod failed: %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
        if (!is_writeable(torture, cli->tree, fname)) {
                d_printf("File not writable\n");
-               return False;
+               return false;
        }
        if (!is_readable(cli->tree, fname)) {
                d_printf("File not readable\n");
-               return False;
+               return false;
        }
        if (!is_visible(cli->tree, fname)) {
                d_printf("r/w file not visible via normal share\n");
-               return False;
+               return false;
        }
        if (!is_visible(hideunread, fname)) {
                d_printf("r/w file not visible via hide unreadable\n");
-               return False;
+               return false;
        }
        if (!is_visible(hideunwrite, fname)) {
                d_printf("r/w file not visible via hide unwriteable\n");
-               return False;
+               return false;
        }
 
        /* R/O file should not be visible via hide unwriteable files */
@@ -211,27 +211,27 @@ BOOL torture_samba3_hide(struct torture_context *torture)
 
        if (!NT_STATUS_IS_OK(status)) {
                d_printf("smbcli_chmod failed: %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
        if (is_writeable(torture, cli->tree, fname)) {
                d_printf("r/o is writable\n");
-               return False;
+               return false;
        }
        if (!is_readable(cli->tree, fname)) {
                d_printf("r/o not readable\n");
-               return False;
+               return false;
        }
        if (!is_visible(cli->tree, fname)) {
                d_printf("r/o file not visible via normal share\n");
-               return False;
+               return false;
        }
        if (!is_visible(hideunread, fname)) {
                d_printf("r/o file not visible via hide unreadable\n");
-               return False;
+               return false;
        }
        if (is_visible(hideunwrite, fname)) {
                d_printf("r/o file visible via hide unwriteable\n");
-               return False;
+               return false;
        }
 
        /* inaccessible file should be only visible on normal share */
@@ -239,33 +239,33 @@ BOOL torture_samba3_hide(struct torture_context *torture)
        status = smbcli_chmod(cli->tree, fname, 0);
        if (!NT_STATUS_IS_OK(status)) {
                d_printf("smbcli_chmod failed: %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
        if (is_writeable(torture, cli->tree, fname)) {
                d_printf("inaccessible file is writable\n");
-               return False;
+               return false;
        }
        if (is_readable(cli->tree, fname)) {
                d_printf("inaccessible file is readable\n");
-               return False;
+               return false;
        }
        if (!is_visible(cli->tree, fname)) {
                d_printf("inaccessible file not visible via normal share\n");
-               return False;
+               return false;
        }
        if (is_visible(hideunread, fname)) {
                d_printf("inaccessible file visible via hide unreadable\n");
-               return False;
+               return false;
        }
        if (is_visible(hideunwrite, fname)) {
                d_printf("inaccessible file visible via hide unwriteable\n");
-               return False;
+               return false;
        }
 
        smbcli_chmod(cli->tree, fname, UNIX_R_USR|UNIX_W_USR);
        smbcli_unlink(cli->tree, fname);
        
-       return True;
+       return true;
 }
 
 /*
@@ -274,10 +274,10 @@ BOOL torture_samba3_hide(struct torture_context *torture)
  * close. smb_close should return NT_STATUS_ACCESS_DENIED.
  */
 
-BOOL torture_samba3_closeerr(struct torture_context *tctx)
+bool torture_samba3_closeerr(struct torture_context *tctx)
 {
        struct smbcli_state *cli = NULL;
-       BOOL result = False;
+       bool result = false;
        NTSTATUS status;
        const char *dname = "closeerr.dir";
        const char *fname = "closeerr.dir\\closerr.txt";
@@ -311,7 +311,7 @@ BOOL torture_samba3_closeerr(struct torture_context *tctx)
                       talloc_asprintf(tctx, "smbcli_open failed: %s\n",
                                       smbcli_errstr(cli->tree)));
 
-       status = smbcli_nt_delete_on_close(cli->tree, fnum, True);
+       status = smbcli_nt_delete_on_close(cli->tree, fnum, true);
 
        torture_assert_ntstatus_ok(tctx, status, 
                                   "setting delete_on_close on file failed !");
@@ -329,7 +329,7 @@ BOOL torture_samba3_closeerr(struct torture_context *tctx)
        torture_assert_ntstatus_equal(tctx, status, NT_STATUS_ACCESS_DENIED,
                                      "smbcli_close");
 
-       result = True;
+       result = true;
        
  fail:
        if (cli) {
index e1b1fcaf6d513f85d6f642d3cf252c65edfb9c5c..988405e8069b0f0ebcdcb79e1bc56e53fac50339 100644 (file)
 #include "libcli/libcli.h"
 #include "torture/util.h"
 #include "lib/events/events.h"
+#include "param/param.h"
 
 #define CHECK_STATUS(status, correct) do { \
        if (!NT_STATUS_EQUAL(status, correct)) { \
                printf("(%s) Incorrect status %s - should be %s\n", \
                       __location__, nt_errstr(status), nt_errstr(correct)); \
-               ret = False; \
+               ret = false; \
        } \
 } while (0)
 
-BOOL torture_samba3_checkfsp(struct torture_context *torture)
+bool torture_samba3_checkfsp(struct torture_context *torture)
 {
        struct smbcli_state *cli;
        const char *fname = "test.txt";
        const char *dirname = "testdir";
        int fnum;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        TALLOC_CTX *mem_ctx;
        ssize_t nread;
        char buf[16];
@@ -49,14 +50,14 @@ BOOL torture_samba3_checkfsp(struct torture_context *torture)
 
        if ((mem_ctx = talloc_init("torture_samba3_checkfsp")) == NULL) {
                d_printf("talloc_init failed\n");
-               return False;
+               return false;
        }
 
        if (!torture_open_connection_share(
                    torture, &cli, torture_setting_string(torture, "host", NULL),
                    torture_setting_string(torture, "share", NULL), NULL)) {
                d_printf("torture_open_connection_share failed\n");
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -79,7 +80,7 @@ BOOL torture_samba3_checkfsp(struct torture_context *torture)
        status = smbcli_mkdir(cli->tree, dirname);
        if (!NT_STATUS_IS_OK(status)) {
                d_printf("smbcli_mkdir failed: %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -102,7 +103,7 @@ BOOL torture_samba3_checkfsp(struct torture_context *torture)
                if (!NT_STATUS_IS_OK(status)) {
                        d_printf("smb_open on the directory failed: %s\n",
                                 nt_errstr(status));
-                       ret = False;
+                       ret = false;
                        goto done;
                }
                fnum = io.ntcreatex.out.file.fnum;
@@ -114,7 +115,7 @@ BOOL torture_samba3_checkfsp(struct torture_context *torture)
        if (nread >= 0) {
                d_printf("smbcli_read on a directory succeeded, expected "
                         "failure\n");
-               ret = False;
+               ret = false;
        }
 
        CHECK_STATUS(smbcli_nt_error(cli->tree),
@@ -126,7 +127,7 @@ BOOL torture_samba3_checkfsp(struct torture_context *torture)
        if (nread >= 0) {
                d_printf("smbcli_read on a directory succeeded, expected "
                         "failure\n");
-               ret = False;
+               ret = false;
        }
 
        CHECK_STATUS(smbcli_nt_error(tree2), NT_STATUS_INVALID_HANDLE);
@@ -139,7 +140,7 @@ BOOL torture_samba3_checkfsp(struct torture_context *torture)
        if (fnum == -1) {
                d_printf("Failed to create %s - %s\n", fname,
                         smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -323,7 +324,7 @@ static NTSTATUS raw_smbcli_ntcreate(struct smbcli_tree *tree, const char *fname,
 }
 
 
-BOOL torture_samba3_badpath(struct torture_context *torture)
+bool torture_samba3_badpath(struct torture_context *torture)
 {
        struct smbcli_state *cli_nt;
        struct smbcli_state *cli_dos;
@@ -334,18 +335,18 @@ BOOL torture_samba3_badpath(struct torture_context *torture)
        char *fpath1;
        int fnum;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        TALLOC_CTX *mem_ctx;
-       BOOL nt_status_support;
+       bool nt_status_support;
 
        if (!(mem_ctx = talloc_init("torture_samba3_badpath"))) {
                d_printf("talloc_init failed\n");
-               return False;
+               return false;
        }
 
-       nt_status_support = lp_nt_status_support();
+       nt_status_support = lp_nt_status_support(global_loadparm);
 
-       if (!lp_set_cmdline("nt status support", "yes")) {
+       if (!lp_set_cmdline(global_loadparm, "nt status support", "yes")) {
                printf("Could not set 'nt status support = yes'\n");
                goto fail;
        }
@@ -354,7 +355,7 @@ BOOL torture_samba3_badpath(struct torture_context *torture)
                goto fail;
        }
 
-       if (!lp_set_cmdline("nt status support", "no")) {
+       if (!lp_set_cmdline(global_loadparm, "nt status support", "no")) {
                printf("Could not set 'nt status support = yes'\n");
                goto fail;
        }
@@ -363,7 +364,7 @@ BOOL torture_samba3_badpath(struct torture_context *torture)
                goto fail;
        }
 
-       if (!lp_set_cmdline("nt status support",
+       if (!lp_set_cmdline(global_loadparm, "nt status support",
                            nt_status_support ? "yes":"no")) {
                printf("Could not reset 'nt status support = yes'");
                goto fail;
@@ -374,7 +375,7 @@ BOOL torture_samba3_badpath(struct torture_context *torture)
        status = smbcli_mkdir(cli_nt->tree, dirname);
        if (!NT_STATUS_IS_OK(status)) {
                d_printf("smbcli_mkdir failed: %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -585,7 +586,7 @@ BOOL torture_samba3_badpath(struct torture_context *torture)
        goto done;
 
  fail:
-       ret = False;
+       ret = false;
 
  done:
        if (cli_nt != NULL) {
@@ -607,7 +608,7 @@ static void count_fn(struct clilist_file_info *info, const char *name,
        *counter += 1;
 }
 
-BOOL torture_samba3_caseinsensitive(struct torture_context *torture)
+bool torture_samba3_caseinsensitive(struct torture_context *torture)
 {
        struct smbcli_state *cli;
        TALLOC_CTX *mem_ctx;
@@ -618,11 +619,11 @@ BOOL torture_samba3_caseinsensitive(struct torture_context *torture)
        char *fpath;
        int fnum;
        int counter = 0;
-       BOOL ret = True;
+       bool ret = true;
 
        if (!(mem_ctx = talloc_init("torture_samba3_caseinsensitive"))) {
                d_printf("talloc_init failed\n");
-               return False;
+               return false;
        }
 
        if (!torture_open_connection(&cli, 0)) {
@@ -655,11 +656,11 @@ BOOL torture_samba3_caseinsensitive(struct torture_context *torture)
                    count_fn, (void *)&counter);
 
        if (counter == 3) {
-               ret = True;
+               ret = true;
        }
        else {
                d_fprintf(stderr, "expected 3 entries, got %d\n", counter);
-               ret = False;
+               ret = false;
        }
 
  done:
@@ -672,11 +673,11 @@ BOOL torture_samba3_caseinsensitive(struct torture_context *torture)
  * on an underlying file
  */
 
-BOOL torture_samba3_posixtimedlock(struct torture_context *tctx)
+bool torture_samba3_posixtimedlock(struct torture_context *tctx)
 {
        struct smbcli_state *cli;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        const char *dirname = "posixlock";
        const char *fname = "locked";
        const char *fpath;
@@ -692,7 +693,7 @@ BOOL torture_samba3_posixtimedlock(struct torture_context *tctx)
        struct smbcli_request *req;
 
        if (!torture_open_connection(&cli, 0)) {
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -702,33 +703,33 @@ BOOL torture_samba3_posixtimedlock(struct torture_context *tctx)
        if (!NT_STATUS_IS_OK(status)) {
                torture_warning(tctx, "smbcli_mkdir failed: %s\n",
                                nt_errstr(status));
-               ret = False;
+               ret = false;
                goto done;
        }
 
        if (!(fpath = talloc_asprintf(tctx, "%s\\%s", dirname, fname))) {
                torture_warning(tctx, "talloc failed\n");
-               ret = False;
+               ret = false;
                goto done;
        }
        fnum = smbcli_open(cli->tree, fpath, O_RDWR | O_CREAT, DENY_NONE);
        if (fnum == -1) {
                torture_warning(tctx, "Could not create file %s: %s\n", fpath,
                                smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
        if (!(localdir = torture_setting_string(tctx, "localdir", NULL))) {
                torture_warning(tctx, "Need 'localdir' setting\n");
-               ret = False;
+               ret = false;
                goto done;
        }
 
        if (!(localname = talloc_asprintf(tctx, "%s/%s/%s", localdir, dirname,
                                          fname))) {
                torture_warning(tctx, "talloc failed\n");
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -750,7 +751,7 @@ BOOL torture_samba3_posixtimedlock(struct torture_context *tctx)
 
        if (fcntl(fd, F_SETLK, &posix_lock) == -1) {
                torture_warning(tctx, "fcntl failed: %s\n", strerror(errno));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -773,7 +774,7 @@ BOOL torture_samba3_posixtimedlock(struct torture_context *tctx)
 
        status = smb_raw_lock(cli->tree, &io);
 
-       ret = True;
+       ret = true;
        CHECK_STATUS(status, NT_STATUS_FILE_LOCK_CONFLICT);
 
        if (!ret) {
@@ -790,7 +791,7 @@ BOOL torture_samba3_posixtimedlock(struct torture_context *tctx)
        req = smb_raw_lock_send(cli->tree, &io);
        if (req == NULL) {
                torture_warning(tctx, "smb_raw_lock_send failed\n");
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -816,3 +817,73 @@ BOOL torture_samba3_posixtimedlock(struct torture_context *tctx)
        smbcli_deltree(cli->tree, dirname);
        return ret;
 }
+
+bool torture_samba3_rootdirfid(struct torture_context *tctx)
+{
+       struct smbcli_state *cli;
+       NTSTATUS status;
+       uint16_t dnum;
+       union smb_open io;
+       const char *fname = "testfile";
+       bool ret = false;
+
+       if (!torture_open_connection(&cli, 0)) {
+               ret = false;
+               goto done;
+       }
+
+       smbcli_unlink(cli->tree, fname);
+
+       io.generic.level = RAW_OPEN_NTCREATEX;
+       io.ntcreatex.in.flags = NTCREATEX_FLAGS_EXTENDED;
+       io.ntcreatex.in.root_fid = 0;
+       io.ntcreatex.in.security_flags = 0;
+       io.ntcreatex.in.access_mask =
+               SEC_STD_SYNCHRONIZE | SEC_FILE_EXECUTE;
+       io.ntcreatex.in.alloc_size = 0;
+       io.ntcreatex.in.file_attr = FILE_ATTRIBUTE_DIRECTORY;
+       io.ntcreatex.in.share_access =
+               NTCREATEX_SHARE_ACCESS_READ
+               | NTCREATEX_SHARE_ACCESS_READ;
+       io.ntcreatex.in.open_disposition = NTCREATEX_DISP_OPEN;
+       io.ntcreatex.in.create_options = 0;
+       io.ntcreatex.in.fname = "\\";
+       status = smb_raw_open(cli->tree, tctx, &io);
+       if (!NT_STATUS_IS_OK(status)) {
+               d_printf("smb_open on the directory failed: %s\n",
+                        nt_errstr(status));
+               ret = false;
+               goto done;
+       }
+       dnum = io.ntcreatex.out.file.fnum;
+
+       io.ntcreatex.in.flags =
+               NTCREATEX_FLAGS_REQUEST_OPLOCK
+               | NTCREATEX_FLAGS_REQUEST_BATCH_OPLOCK;
+       io.ntcreatex.in.root_fid = dnum;
+       io.ntcreatex.in.security_flags = 0;
+       io.ntcreatex.in.open_disposition = NTCREATEX_DISP_OVERWRITE_IF;
+       io.ntcreatex.in.access_mask = SEC_RIGHTS_FILE_ALL;
+       io.ntcreatex.in.alloc_size = 0;
+       io.ntcreatex.in.file_attr = FILE_ATTRIBUTE_NORMAL;
+       io.ntcreatex.in.share_access = NTCREATEX_SHARE_ACCESS_NONE;
+       io.ntcreatex.in.create_options = 0;
+       io.ntcreatex.in.fname = fname;
+
+       status = smb_raw_open(cli->tree, tctx, &io);
+       if (!NT_STATUS_IS_OK(status)) {
+               d_printf("smb_open on the file %s failed: %s\n",
+                        fname, nt_errstr(status));
+               ret = false;
+               goto done;
+       }
+
+       smbcli_close(cli->tree, io.ntcreatex.out.file.fnum);
+       smbcli_close(cli->tree, dnum);
+       smbcli_unlink(cli->tree, fname);
+
+       ret = true;
+ done:
+       return ret;
+}
+
index 986da474d0d1395829b6a99d0ca7b99ce43e56b0..0242b9c5450d65ae2c13a29b363d285ae547019b 100644 (file)
 /*
   callback function for single_search
 */
-static BOOL single_search_callback(void *private, const union smb_search_data *file)
+static bool single_search_callback(void *private, const union smb_search_data *file)
 {
-       union smb_search_data *data = private;
+       union smb_search_data *data = (union smb_search_data *)private;
 
        *data = *file;
 
-       return True;
+       return true;
 }
 
 /*
@@ -231,10 +231,10 @@ static union smb_search_data *find(const char *name)
 /* 
    basic testing of all RAW_SEARCH_* calls using a single file
 */
-static BOOL test_one_file(struct torture_context *tctx, 
-                                                 struct smbcli_state *cli)
+static bool test_one_file(struct torture_context *tctx, 
+                         struct smbcli_state *cli)
 {
-       BOOL ret = True;
+       bool ret = true;
        int fnum;
        const char *fname = "\\torture_search.txt";
        const char *fname2 = "\\torture_search-NOTEXIST.txt";
@@ -243,12 +243,10 @@ static BOOL test_one_file(struct torture_context *tctx,
        union smb_fileinfo all_info, alt_info, name_info, internal_info;
        union smb_search_data *s;
 
-       printf("Testing one file searches\n");
-
        fnum = create_complex_file(cli, tctx, fname);
        if (fnum == -1) {
                printf("ERROR: open of %s failed (%s)\n", fname, smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -257,7 +255,7 @@ static BOOL test_one_file(struct torture_context *tctx,
                NTSTATUS expected_status;
                uint32_t cap = cli->transport->negotiate.capabilities;
 
-               printf("testing %s\n", levels[i].name);
+               torture_comment(tctx, "testing %s\n", levels[i].name);
 
                levels[i].status = torture_single_search(cli, tctx, fname, 
                                                         levels[i].level,
@@ -276,7 +274,7 @@ static BOOL test_one_file(struct torture_context *tctx,
                        printf("search level %s(%d) failed - %s\n",
                               levels[i].name, (int)levels[i].level, 
                               nt_errstr(levels[i].status));
-                       ret = False;
+                       ret = false;
                        continue;
                }
 
@@ -297,7 +295,7 @@ static BOOL test_one_file(struct torture_context *tctx,
                               levels[i].name, (int)levels[i].level, 
                               nt_errstr(expected_status),
                               nt_errstr(status));
-                       ret = False;
+                       ret = false;
                }
        }
 
@@ -305,38 +303,22 @@ static BOOL test_one_file(struct torture_context *tctx,
        all_info.generic.level = RAW_FILEINFO_ALL_INFO;
        all_info.generic.in.file.path = fname;
        status = smb_raw_pathinfo(cli->tree, tctx, &all_info);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("RAW_FILEINFO_ALL_INFO failed - %s\n", nt_errstr(status));
-               ret = False;
-               goto done;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "RAW_FILEINFO_ALL_INFO failed");
 
        alt_info.generic.level = RAW_FILEINFO_ALT_NAME_INFO;
        alt_info.generic.in.file.path = fname;
        status = smb_raw_pathinfo(cli->tree, tctx, &alt_info);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("RAW_FILEINFO_ALT_NAME_INFO failed - %s\n", nt_errstr(status));
-               ret = False;
-               goto done;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "RAW_FILEINFO_ALT_NAME_INFO failed");
 
        internal_info.generic.level = RAW_FILEINFO_INTERNAL_INFORMATION;
        internal_info.generic.in.file.path = fname;
        status = smb_raw_pathinfo(cli->tree, tctx, &internal_info);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("RAW_FILEINFO_INTERNAL_INFORMATION failed - %s\n", nt_errstr(status));
-               ret = False;
-               goto done;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "RAW_FILEINFO_INTERNAL_INFORMATION failed");
 
        name_info.generic.level = RAW_FILEINFO_NAME_INFO;
        name_info.generic.in.file.path = fname;
        status = smb_raw_pathinfo(cli->tree, tctx, &name_info);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("RAW_FILEINFO_NAME_INFO failed - %s\n", nt_errstr(status));
-               ret = False;
-               goto done;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "RAW_FILEINFO_NAME_INFO failed");
 
 #define CHECK_VAL(name, sname1, field1, v, sname2, field2) do { \
        s = find(name); \
@@ -346,7 +328,7 @@ static BOOL test_one_file(struct torture_context *tctx,
                               __location__, \
                                #sname1, #field1, (int)s->sname1.field1, \
                                #sname2, #field2, (int)v.sname2.out.field2); \
-                       ret = False; \
+                       ret = false; \
                } \
        }} while (0)
 
@@ -358,7 +340,7 @@ static BOOL test_one_file(struct torture_context *tctx,
                               __location__, \
                                #sname1, #field1, timestring(tctx, s->sname1.field1), \
                                #sname2, #field2, nt_time_string(tctx, v.sname2.out.field2)); \
-                       ret = False; \
+                       ret = false; \
                } \
        }} while (0)
 
@@ -370,7 +352,7 @@ static BOOL test_one_file(struct torture_context *tctx,
                               __location__, \
                                #sname1, #field1, nt_time_string(tctx, s->sname1.field1), \
                                #sname2, #field2, nt_time_string(tctx, v.sname2.out.field2)); \
-                       ret = False; \
+                       ret = false; \
                } \
        }} while (0)
 
@@ -382,7 +364,7 @@ static BOOL test_one_file(struct torture_context *tctx,
                               __location__, \
                                #sname1, #field1, s->sname1.field1, \
                                #sname2, #field2, v.sname2.out.field2.s); \
-                       ret = False; \
+                       ret = false; \
                } \
        }} while (0)
 
@@ -396,7 +378,7 @@ static BOOL test_one_file(struct torture_context *tctx,
                               __location__, \
                                #sname1, #field1, s->sname1.field1.s, \
                                #sname2, #field2, v.sname2.out.field2.s); \
-                       ret = False; \
+                       ret = false; \
                } \
        }} while (0)
 
@@ -410,7 +392,7 @@ static BOOL test_one_file(struct torture_context *tctx,
                               __location__, \
                                #sname1, #field1, s->sname1.field1.s, \
                                fname); \
-                       ret = False; \
+                       ret = false; \
                } \
        }} while (0)
 
@@ -423,7 +405,7 @@ static BOOL test_one_file(struct torture_context *tctx,
                               __location__, \
                                #sname1, #field1, s->sname1.field1, \
                                fname); \
-                       ret = False; \
+                       ret = false; \
                } \
        }} while (0)
        
@@ -527,9 +509,9 @@ struct multiple_result {
 /*
   callback function for multiple_search
 */
-static BOOL multiple_search_callback(void *private, const union smb_search_data *file)
+static bool multiple_search_callback(void *private, const union smb_search_data *file)
 {
-       struct multiple_result *data = private;
+       struct multiple_result *data = (struct multiple_result *)private;
 
 
        data->count++;
@@ -540,7 +522,7 @@ static BOOL multiple_search_callback(void *private, const union smb_search_data
 
        data->list[data->count-1] = *file;
 
-       return True;
+       return true;
 }
 
 enum continue_type {CONT_FLAGS, CONT_NAME, CONT_RESUME_KEY};
@@ -559,7 +541,7 @@ static NTSTATUS multiple_search(struct smbcli_state *cli,
        union smb_search_next io2;
        NTSTATUS status;
        const int per_search = 100;
-       struct multiple_result *result = data;
+       struct multiple_result *result = (struct multiple_result *)data;
 
        if (data_level == RAW_SEARCH_DATA_SEARCH) {
                io.search_first.level = RAW_SEARCH_SEARCH;
@@ -640,28 +622,11 @@ static NTSTATUS multiple_search(struct smbcli_state *cli,
        return status;
 }
 
-#define CHECK_STATUS(status, correct) do { \
-       if (!NT_STATUS_EQUAL(status, correct)) { \
-               printf("(%s) Incorrect status %s - should be %s\n", \
-                      __location__, nt_errstr(status), nt_errstr(correct)); \
-               ret = False; \
-               goto done; \
-       }} while (0)
+#define CHECK_STATUS(status, correct) torture_assert_ntstatus_equal(tctx, status, correct, "incorrect status")
 
-#define CHECK_VALUE(v, correct) do { \
-       if ((v) != (correct)) { \
-               printf("(%s) Incorrect value %s=%ld - should be %ld\n", \
-                      __location__, #v, (long)v, (long)correct); \
-               ret = False; \
-               goto done; \
-       }} while (0)
+#define CHECK_VALUE(v, correct) torture_assert_int_equal(tctx, (v), (correct), "incorrect value");
 
-#define CHECK_STRING(v, correct) do { \
-       if (strcasecmp_m(v, correct) != 0) { \
-               printf("(%s) Incorrect value %s='%s' - should be '%s'\n", \
-                      __location__, #v, v, correct); \
-               ret = False; \
-       }} while (0)
+#define CHECK_STRING(v, correct) torture_assert_casestr_equal(tctx, v, correct, "incorrect value");
 
 
 static enum smb_search_data_level compare_data_level;
@@ -688,12 +653,12 @@ static int search_compare(union smb_search_data *d1, union smb_search_data *d2)
    basic testing of search calls using many files
 */
 static bool test_many_files(struct torture_context *tctx, 
-                                                       struct smbcli_state *cli)
+                           struct smbcli_state *cli)
 {
        const int num_files = 700;
        int i, fnum, t;
        char *fname;
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        struct multiple_result result;
        struct {
@@ -727,19 +692,15 @@ static bool test_many_files(struct torture_context *tctx,
        };
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
-       printf("Testing with %d files\n", num_files);
+       torture_comment(tctx, "Testing with %d files\n", num_files);
 
        for (i=0;i<num_files;i++) {
                fname = talloc_asprintf(cli, BASEDIR "\\t%03d-%d.txt", i, i);
                fnum = smbcli_open(cli->tree, fname, O_CREAT|O_RDWR, DENY_NONE);
-               if (fnum == -1) {
-                       printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree));
-                       ret = False;
-                       goto done;
-               }
+               torture_assert(tctx, fnum != -1, "Failed to create");
                talloc_free(fname);
                smbcli_close(cli->tree, fnum);
        }
@@ -749,20 +710,15 @@ static bool test_many_files(struct torture_context *tctx,
                ZERO_STRUCT(result);
                result.tctx = talloc_new(tctx);
        
-               printf("Continue %s via %s\n", search_types[t].name, search_types[t].cont_name);
+               torture_comment(tctx,
+                               "Continue %s via %s\n", search_types[t].name, search_types[t].cont_name);
 
                status = multiple_search(cli, tctx, BASEDIR "\\*.*", 
                                         search_types[t].data_level,
                                         search_types[t].cont_type,
                                         &result);
        
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("search type %s failed - %s\n", 
-                              search_types[t].name,
-                              nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
+               torture_assert_ntstatus_ok(tctx, status, "search failed");
                CHECK_VALUE(result.count, num_files);
 
                compare_data_level = search_types[t].data_level;
@@ -780,17 +736,12 @@ static bool test_many_files(struct torture_context *tctx,
                        }
                        s = extract_name(&result.list[i], level, compare_data_level);
                        fname = talloc_asprintf(cli, "t%03d-%d.txt", i, i);
-                       if (strcmp(fname, s)) {
-                               printf("Incorrect name %s at entry %d\n", s, i);
-                               ret = False;
-                               break;
-                       }
+                       torture_assert_str_equal(tctx, fname, s, "Incorrect name");
                        talloc_free(fname);
                }
                talloc_free(result.tctx);
        }
 
-done:
        smb_raw_exit(cli->session);
        smbcli_deltree(cli->tree, BASEDIR);
 
@@ -800,7 +751,7 @@ done:
 /*
   check a individual file result
 */
-static BOOL check_result(struct multiple_result *result, const char *name, BOOL exist, uint32_t attrib)
+static bool check_result(struct multiple_result *result, const char *name, bool exist, uint32_t attrib)
 {
        int i;
        for (i=0;i<result->count;i++) {
@@ -810,24 +761,24 @@ static BOOL check_result(struct multiple_result *result, const char *name, BOOL
                if (exist) {
                        printf("failed: '%s' should exist with attribute %s\n", 
                               name, attrib_string(result->list, attrib));
-                       return False;
+                       return false;
                }
-               return True;
+               return true;
        }
 
        if (!exist) {
                printf("failed: '%s' should NOT exist (has attribute %s)\n", 
                       name, attrib_string(result->list, result->list[i].both_directory_info.attrib));
-               return False;
+               return false;
        }
 
        if ((result->list[i].both_directory_info.attrib&0xFFF) != attrib) {
                printf("failed: '%s' should have attribute 0x%x (has 0x%x)\n",
                       name, 
                       attrib, result->list[i].both_directory_info.attrib);
-               return False;
+               return false;
        }
-       return True;
+       return true;
 }
 
 /* 
@@ -839,7 +790,7 @@ static bool test_modify_search(struct torture_context *tctx,
        const int num_files = 20;
        int i, fnum;
        char *fname;
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        struct multiple_result result;
        union smb_search_first io;
@@ -847,7 +798,7 @@ static bool test_modify_search(struct torture_context *tctx,
        union smb_setfileinfo sfinfo;
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        printf("Creating %d files\n", num_files);
@@ -857,7 +808,7 @@ static bool test_modify_search(struct torture_context *tctx,
                fnum = smbcli_open(cli->tree, fname, O_CREAT|O_RDWR, DENY_NONE);
                if (fnum == -1) {
                        printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree));
-                       ret = False;
+                       ret = false;
                        goto done;
                }
                talloc_free(fname);
@@ -925,16 +876,16 @@ static bool test_modify_search(struct torture_context *tctx,
        CHECK_STATUS(status, NT_STATUS_OK);
        CHECK_VALUE(result.count, 20);
 
-       ret &= check_result(&result, "t009-9.txt", True, FILE_ATTRIBUTE_ARCHIVE);
-       ret &= check_result(&result, "t014-14.txt", False, 0);
-       ret &= check_result(&result, "t015-15.txt", False, 0);
-       ret &= check_result(&result, "t016-16.txt", True, FILE_ATTRIBUTE_NORMAL);
-       ret &= check_result(&result, "t017-17.txt", False, 0);
-       ret &= check_result(&result, "t018-18.txt", True, FILE_ATTRIBUTE_ARCHIVE);
-       ret &= check_result(&result, "t019-19.txt", True, FILE_ATTRIBUTE_ARCHIVE);
-       ret &= check_result(&result, "T013-13.txt.2", True, FILE_ATTRIBUTE_ARCHIVE);
-       ret &= check_result(&result, "T003-3.txt.2", False, 0);
-       ret &= check_result(&result, "T013-13.txt.3", True, FILE_ATTRIBUTE_ARCHIVE);
+       ret &= check_result(&result, "t009-9.txt", true, FILE_ATTRIBUTE_ARCHIVE);
+       ret &= check_result(&result, "t014-14.txt", false, 0);
+       ret &= check_result(&result, "t015-15.txt", false, 0);
+       ret &= check_result(&result, "t016-16.txt", true, FILE_ATTRIBUTE_NORMAL);
+       ret &= check_result(&result, "t017-17.txt", false, 0);
+       ret &= check_result(&result, "t018-18.txt", true, FILE_ATTRIBUTE_ARCHIVE);
+       ret &= check_result(&result, "t019-19.txt", true, FILE_ATTRIBUTE_ARCHIVE);
+       ret &= check_result(&result, "T013-13.txt.2", true, FILE_ATTRIBUTE_ARCHIVE);
+       ret &= check_result(&result, "T003-3.txt.2", false, 0);
+       ret &= check_result(&result, "T013-13.txt.3", true, FILE_ATTRIBUTE_ARCHIVE);
 
        if (!ret) {
                for (i=0;i<result.count;i++) {
@@ -961,12 +912,12 @@ static bool test_sorted(struct torture_context *tctx, struct smbcli_state *cli)
        const int num_files = 700;
        int i, fnum;
        char *fname;
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        struct multiple_result result;
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        printf("Creating %d files\n", num_files);
@@ -976,7 +927,7 @@ static bool test_sorted(struct torture_context *tctx, struct smbcli_state *cli)
                fnum = smbcli_open(cli->tree, fname, O_CREAT|O_RDWR, DENY_NONE);
                if (fnum == -1) {
                        printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree));
-                       ret = False;
+                       ret = false;
                        goto done;
                }
                talloc_free(fname);
@@ -1025,12 +976,12 @@ static bool test_many_dirs(struct torture_context *tctx,
        const int num_dirs = 20;
        int i, fnum, n;
        char *fname, *dname;
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        union smb_search_data *file, *file2, *file3;
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        printf("Creating %d dirs\n", num_dirs);
@@ -1041,7 +992,7 @@ static bool test_many_dirs(struct torture_context *tctx,
                if (!NT_STATUS_IS_OK(status)) {
                        printf("(%s) Failed to create %s - %s\n", 
                               __location__, dname, nt_errstr(status));
-                       ret = False;
+                       ret = false;
                        goto done;
                }
 
@@ -1051,7 +1002,7 @@ static bool test_many_dirs(struct torture_context *tctx,
                        if (fnum == -1) {
                                printf("(%s) Failed to create %s - %s\n", 
                                       __location__, fname, smbcli_errstr(cli->tree));
-                               ret = False;
+                               ret = false;
                                goto done;
                        }
                        talloc_free(fname);
@@ -1083,14 +1034,14 @@ static bool test_many_dirs(struct torture_context *tctx,
                if (io.search_first.out.count != 1) {
                        printf("(%s) search first gave %d entries for dir %d - %s\n",
                               __location__, io.search_first.out.count, i, nt_errstr(status));
-                       ret = False;
+                       ret = false;
                        goto done;
                }
                CHECK_STATUS(status, NT_STATUS_OK);
                if (strncasecmp(file[i].search.name, fname, strlen(fname)) != 0) {
                        printf("(%s) incorrect name '%s' expected '%s'[12].txt\n", 
                               __location__, file[i].search.name, fname);
-                       ret = False;
+                       ret = false;
                        goto done;
                }
 
@@ -1116,14 +1067,14 @@ static bool test_many_dirs(struct torture_context *tctx,
                if (io2.search_next.out.count != 1) {
                        printf("(%s) search next gave %d entries for dir %d - %s\n",
                               __location__, io2.search_next.out.count, i, nt_errstr(status));
-                       ret = False;
+                       ret = false;
                        goto done;
                }
                CHECK_STATUS(status, NT_STATUS_OK);
                if (strncasecmp(file2[i].search.name, fname, strlen(fname)) != 0) {
                        printf("(%s) incorrect name '%s' expected '%s'[12].txt\n", 
                               __location__, file2[i].search.name, fname);
-                       ret = False;
+                       ret = false;
                        goto done;
                }
 
@@ -1149,7 +1100,7 @@ static bool test_many_dirs(struct torture_context *tctx,
                if (io2.search_next.out.count != 1) {
                        printf("(%s) search next gave %d entries for dir %d - %s\n",
                               __location__, io2.search_next.out.count, i, nt_errstr(status));
-                       ret = False;
+                       ret = false;
                        goto done;
                }
                CHECK_STATUS(status, NT_STATUS_OK);
@@ -1157,14 +1108,14 @@ static bool test_many_dirs(struct torture_context *tctx,
                if (strncasecmp(file3[i].search.name, file2[i].search.name, 3) != 0) {
                        printf("(%s) incorrect name '%s' on rewind at dir %d\n", 
                               __location__, file2[i].search.name, i);
-                       ret = False;
+                       ret = false;
                        goto done;
                }
 
                if (strcmp(file3[i].search.name, file2[i].search.name) != 0) {
                        printf("(%s) server did not rewind - got '%s' expected '%s'\n", 
                               __location__, file3[i].search.name, file2[i].search.name);
-                       ret = False;
+                       ret = false;
                        goto done;
                }
 
@@ -1191,14 +1142,14 @@ static bool test_os2_delete(struct torture_context *tctx,
        int total_deleted = 0;
        int i, fnum;
        char *fname;
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        union smb_search_first io;
        union smb_search_next io2;
        struct multiple_result result;
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        printf("Testing OS/2 style delete on %d files\n", num_files);
@@ -1208,7 +1159,7 @@ static bool test_os2_delete(struct torture_context *tctx,
                fnum = smbcli_open(cli->tree, fname, O_CREAT|O_RDWR, DENY_NONE);
                if (fnum == -1) {
                        printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree));
-                       ret = False;
+                       ret = false;
                        goto done;
                }
                talloc_free(fname);
@@ -1276,7 +1227,7 @@ static bool test_os2_delete(struct torture_context *tctx,
        if (total_deleted != num_files) {
                printf("error: deleted %d - expected to delete %d\n", 
                       total_deleted, num_files);
-               ret = False;
+               ret = false;
        }
 
 done:
@@ -1299,7 +1250,7 @@ static bool test_ea_list(struct torture_context *tctx,
                                                 struct smbcli_state *cli)
 {
        int  fnum;
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        union smb_search_first io;
        union smb_search_next nxt;
@@ -1307,7 +1258,7 @@ static bool test_ea_list(struct torture_context *tctx,
        union smb_setfileinfo setfile;
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        printf("Testing RAW_SEARCH_EA_LIST level\n");
@@ -1402,7 +1353,6 @@ static bool test_ea_list(struct torture_context *tctx,
        CHECK_STRING(result.list[2].ea_list.eas.eas[1].name.s, "THIRD EA");
        CHECK_VALUE(result.list[2].ea_list.eas.eas[1].value.length, 0);
 
-done:
        smb_raw_exit(cli->session);
        smbcli_deltree(cli->tree, BASEDIR);
 
@@ -1418,7 +1368,7 @@ struct torture_suite *torture_raw_search(TALLOC_CTX *mem_ctx)
 {
        struct torture_suite *suite = torture_suite_create(mem_ctx, "SEARCH");
 
-       torture_suite_add_1smb_test(suite, "one file", test_one_file);
+       torture_suite_add_1smb_test(suite, "one file search", test_one_file);
        torture_suite_add_1smb_test(suite, "many files", test_many_files);
        torture_suite_add_1smb_test(suite, "sorted", test_sorted);
        torture_suite_add_1smb_test(suite, "modify search", test_modify_search);
index f5413d8b1d83da1e339cfc1e46100104d5da2f00..3ba022feef9bd3d13bc7e1a23ba85b7ed0b01bf1 100644 (file)
@@ -28,7 +28,7 @@
        if (!NT_STATUS_EQUAL(status, correct)) { \
                printf("(%d) Incorrect status %s - should be %s\n", \
                       __LINE__, nt_errstr(status), nt_errstr(correct)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
@@ -36,7 +36,7 @@
        if ((v) != (correct)) { \
                printf("(%d) Incorrect value %s=%d - should be %d\n", \
                       __LINE__, #v, (int)v, (int)correct); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
 /*
   test seek ops
 */
-static BOOL test_seek(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_seek(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        union smb_seek io;
        union smb_fileinfo finfo;
        union smb_setfileinfo sfinfo;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        int fnum, fnum2;
        const char *fname = BASEDIR "\\test.txt";
        uint8_t c[2];
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT|O_TRUNC, DENY_NONE);
        if (fnum == -1) {
                printf("Failed to open test.txt - %s\n", smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -142,7 +142,7 @@ static BOOL test_seek(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        ZERO_STRUCT(c);
        if (smbcli_write(cli->tree, fnum, 0, c, 0, 2) != 2) {
                printf("Write failed - %s\n", smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;              
        }
 
@@ -162,7 +162,7 @@ static BOOL test_seek(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        
        if (smbcli_read(cli->tree, fnum, c, 0, 1) != 1) {
                printf("Read failed - %s\n", smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;              
        }
 
@@ -181,7 +181,7 @@ static BOOL test_seek(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
        fnum2 = smbcli_open(cli->tree, fname, O_RDWR, DENY_NONE);
        if (fnum2 == -1) {
                printf("2nd open failed - %s\n", smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
        sfinfo.generic.level = RAW_SFILEINFO_POSITION_INFORMATION;
index b06a04753fc78ec0ef9bd359ab9996ca4f97bdd0..e58b3fd7601ed53422ed55302a11a29c693c657d 100644 (file)
@@ -23,6 +23,7 @@
 #include "libcli/raw/libcliraw.h"
 #include "libcli/libcli.h"
 #include "torture/util.h"
+#include "torture/raw/proto.h"
 
 #define BASEDIR "\\testsfileinfo"
 
    for consistency between the calls. 
 */
 bool torture_raw_sfileinfo(struct torture_context *torture, 
-                                                  struct smbcli_state *cli)
+                          struct smbcli_state *cli)
 {
-       BOOL ret = True;
-       int fnum_saved, d_fnum, fnum2, fnum = -1;
+       bool ret = true;
+       int fnum = -1;
        char *fnum_fname;
        char *fnum_fname_new;
        char *path_fname;
@@ -44,7 +45,7 @@ bool torture_raw_sfileinfo(struct torture_context *torture,
        NTSTATUS status, status2;
        const char *call_name;
        time_t basetime = (time(NULL) - 86400) & ~1;
-       BOOL check_fnum;
+       bool check_fnum;
        int n = time(NULL) % 100;
        
        asprintf(&path_fname, BASEDIR "\\fname_test_%d.txt", n);
@@ -53,7 +54,7 @@ bool torture_raw_sfileinfo(struct torture_context *torture,
        asprintf(&fnum_fname_new, BASEDIR "\\fnum_test_new_%d.txt", n);
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
 #define RECREATE_FILE(fname) do { \
@@ -62,7 +63,7 @@ bool torture_raw_sfileinfo(struct torture_context *torture,
        if (fnum == -1) { \
                printf("(%s) ERROR: open of %s failed (%s)\n", \
                       __location__, fname, smbcli_errstr(cli->tree)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
@@ -75,7 +76,7 @@ bool torture_raw_sfileinfo(struct torture_context *torture,
        RECREATE_BOTH;
        
 #define CHECK_CALL_FNUM(call, rightstatus) do { \
-       check_fnum = True; \
+       check_fnum = true; \
        call_name = #call; \
        sfinfo.generic.level = RAW_SFILEINFO_ ## call; \
        sfinfo.generic.in.file.fnum = fnum; \
@@ -83,18 +84,18 @@ bool torture_raw_sfileinfo(struct torture_context *torture,
        if (!NT_STATUS_EQUAL(status, rightstatus)) { \
                printf("(%s) %s - %s (should be %s)\n", __location__, #call, \
                        nt_errstr(status), nt_errstr(rightstatus)); \
-               ret = False; \
+               ret = false; \
        } \
        finfo1.generic.level = RAW_FILEINFO_ALL_INFO; \
        finfo1.generic.in.file.fnum = fnum; \
        status2 = smb_raw_fileinfo(cli->tree, torture, &finfo1); \
        if (!NT_STATUS_IS_OK(status2)) { \
                printf("(%s) %s pathinfo - %s\n", __location__, #call, nt_errstr(status)); \
-               ret = False; \
+               ret = false; \
        }} while (0)
 
 #define CHECK_CALL_PATH(call, rightstatus) do { \
-       check_fnum = False; \
+       check_fnum = false; \
        call_name = #call; \
        sfinfo.generic.level = RAW_SFILEINFO_ ## call; \
        sfinfo.generic.in.file.path = path_fname; \
@@ -106,7 +107,7 @@ bool torture_raw_sfileinfo(struct torture_context *torture,
        if (!NT_STATUS_EQUAL(status, rightstatus)) { \
                printf("(%s) %s - %s (should be %s)\n", __location__, #call, \
                        nt_errstr(status), nt_errstr(rightstatus)); \
-               ret = False; \
+               ret = false; \
        } \
        finfo1.generic.level = RAW_FILEINFO_ALL_INFO; \
        finfo1.generic.in.file.path = path_fname; \
@@ -117,7 +118,7 @@ bool torture_raw_sfileinfo(struct torture_context *torture,
        } \
        if (!NT_STATUS_IS_OK(status2)) { \
                printf("(%s) %s pathinfo - %s\n", __location__, #call, nt_errstr(status2)); \
-               ret = False; \
+               ret = false; \
        }} while (0)
 
 #define CHECK1(call) \
@@ -136,7 +137,7 @@ bool torture_raw_sfileinfo(struct torture_context *torture,
                } \
                if (!NT_STATUS_IS_OK(status2)) { \
                        printf("%s - %s\n", #call, nt_errstr(status2)); \
-                       ret = False; \
+                       ret = false; \
                } \
        }} while (0)
 
@@ -147,7 +148,7 @@ bool torture_raw_sfileinfo(struct torture_context *torture,
                       call_name, #stype, #field, \
                       (uint_t)value, (uint_t)finfo2.stype.out.field); \
                dump_all_info(torture, &finfo1); \
-               ret = False; \
+               ret = false; \
        }} while (0)
 
 #define CHECK_TIME(call, stype, field, value) do { \
@@ -160,7 +161,7 @@ bool torture_raw_sfileinfo(struct torture_context *torture,
                printf("\t%s", timestring(torture, value)); \
                printf("\t%s\n", nt_time_string(torture, finfo2.stype.out.field)); \
                dump_all_info(torture, &finfo1); \
-               ret = False; \
+               ret = false; \
        }} while (0)
 
 #define CHECK_STR(call, stype, field, value) do { \
@@ -171,14 +172,14 @@ bool torture_raw_sfileinfo(struct torture_context *torture,
                        value, \
                        finfo2.stype.out.field); \
                dump_all_info(torture, &finfo1); \
-               ret = False; \
+               ret = false; \
        }} while (0)
 
 #define CHECK_STATUS(status, correct) do { \
        if (!NT_STATUS_EQUAL(status, correct)) { \
                printf("(%s) Incorrect status %s - should be %s\n", \
                       __location__, nt_errstr(status), nt_errstr(correct)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
@@ -446,7 +447,7 @@ done:
 bool torture_raw_sfileinfo_rename(struct torture_context *torture,
                                                                  struct smbcli_state *cli)
 {
-       BOOL ret = True;
+       bool ret = true;
        int fnum_saved, d_fnum, fnum2, fnum = -1;
        char *fnum_fname;
        char *fnum_fname_new;
@@ -456,7 +457,7 @@ bool torture_raw_sfileinfo_rename(struct torture_context *torture,
        union smb_setfileinfo sfinfo;
        NTSTATUS status, status2;
        const char *call_name;
-       BOOL check_fnum;
+       bool check_fnum;
        int n = time(NULL) % 100;
        
        asprintf(&path_fname, BASEDIR "\\fname_test_%d.txt", n);
@@ -465,7 +466,7 @@ bool torture_raw_sfileinfo_rename(struct torture_context *torture,
        asprintf(&fnum_fname_new, BASEDIR "\\fnum_test_new_%d.txt", n);
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        RECREATE_BOTH;
@@ -596,5 +597,5 @@ bool torture_raw_sfileinfo_bug(struct torture_context *torture,
 
        printf("now try and delete %s\n", fname);
 
-       return True;
+       return true;
 }
index 24428efcf7c7667bd81dcc15d889dbfd9e591293..14d674e482ff2c6fa7bd12645a9427de6b4de7b7 100644 (file)
@@ -32,7 +32,7 @@
        if (!NT_STATUS_EQUAL(status, correct)) { \
                printf("(%s) Incorrect status %s - should be %s\n", \
                       __location__, nt_errstr(status), nt_errstr(correct)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
        if ((v) != (correct)) { \
                printf("(%s) Incorrect value %s=%d - should be %d\n", \
                       __location__, #v, (int)v, (int)correct); \
-               ret = False; \
+               ret = false; \
        }} while (0)
 
 /*
   check that a stream has the right contents
 */
-static BOOL check_stream(struct smbcli_state *cli, TALLOC_CTX *mem_ctx,
+static bool check_stream(struct smbcli_state *cli, TALLOC_CTX *mem_ctx,
                         const char *fname, const char *sname, 
                         const char *value)
 {
@@ -62,45 +62,45 @@ static BOOL check_stream(struct smbcli_state *cli, TALLOC_CTX *mem_ctx,
        if (value == NULL) {
                if (fnum != -1) {
                        printf("should have failed stream open of %s\n", full_name);
-                       return False;
+                       return false;
                }
-               return True;
+               return true;
        }
            
        if (fnum == -1) {
                printf("Failed to open stream '%s' - %s\n", 
                       full_name, smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
 
-       buf = talloc_size(mem_ctx, strlen(value)+11);
+       buf = talloc_array(mem_ctx, uint8_t, strlen(value)+11);
        
        ret = smbcli_read(cli->tree, fnum, buf, 0, strlen(value)+11);
        if (ret != strlen(value)) {
                printf("Failed to read %lu bytes from stream '%s' - got %d\n",
                       (long)strlen(value), full_name, (int)ret);
-               return False;
+               return false;
        }
 
        if (memcmp(buf, value, strlen(value)) != 0) {
                printf("Bad data in stream\n");
-               return False;
+               return false;
        }
 
        smbcli_close(cli->tree, fnum);
-       return True;
+       return true;
 }
 
 /*
   test basic io on streams
 */
-static BOOL test_stream_io(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
+static bool test_stream_io(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
 {
        NTSTATUS status;
        union smb_open io;
        const char *fname = BASEDIR "\\stream.txt";
        const char *sname1, *sname2;
-       BOOL ret = True;
+       bool ret = true;
        int fnum = -1;
        ssize_t retsize;
 
@@ -214,12 +214,12 @@ done:
    basic testing of streams calls
 */
 bool torture_raw_streams(struct torture_context *torture, 
-                                                struct smbcli_state *cli)
+                        struct smbcli_state *cli)
 {
-       BOOL ret = True;
+       bool ret = true;
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        ret &= test_stream_io(cli, torture);
index c307b14e08452a556efcbfb0cecfb585f12343fa..b9043a589954f1d54696d90e95644502f9f1d232 100644 (file)
 #include "libcli/raw/libcliraw.h"
 #include "libcli/libcli.h"
 #include "torture/util.h"
+#include "param/param.h"
 
 #define CHECK_STATUS(status, correct) do { \
        if (!NT_STATUS_EQUAL(status, correct)) { \
                printf("(%s) Incorrect status %s - should be %s\n", \
                       __location__, nt_errstr(status), nt_errstr(correct)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
@@ -41,11 +42,11 @@ static bool test_unlink(struct torture_context *tctx, struct smbcli_state *cli)
 {
        union smb_unlink io;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        const char *fname = BASEDIR "\\test.txt";
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        printf("Trying non-existant file\n");
@@ -128,7 +129,7 @@ static bool test_unlink(struct torture_context *tctx, struct smbcli_state *cli)
        io.unlink.in.attrib = FILE_ATTRIBUTE_DIRECTORY;
        status = smb_raw_unlink(cli->tree, &io);
 
-       if (lp_parm_bool(-1, "torture", "samba3", False)) {
+       if (lp_parm_bool(global_loadparm, NULL, "torture", "samba3", false)) {
                /*
                 * In Samba3 we gave up upon getting the error codes in
                 * wildcard unlink correct. Trying gentest showed that this is
@@ -156,7 +157,7 @@ static bool test_unlink(struct torture_context *tctx, struct smbcli_state *cli)
        io.unlink.in.pattern = BASEDIR "\\t*";
        io.unlink.in.attrib = FILE_ATTRIBUTE_DIRECTORY;
        status = smb_raw_unlink(cli->tree, &io);
-       if (lp_parm_bool(-1, "torture", "samba3", False)) {
+       if (lp_parm_bool(global_loadparm, NULL, "torture", "samba3", false)) {
                CHECK_STATUS(status, NT_STATUS_OBJECT_NAME_INVALID);
        }
        else {
@@ -168,7 +169,7 @@ static bool test_unlink(struct torture_context *tctx, struct smbcli_state *cli)
        io.unlink.in.pattern = BASEDIR "\\*.dat";
        io.unlink.in.attrib = FILE_ATTRIBUTE_DIRECTORY;
        status = smb_raw_unlink(cli->tree, &io);
-       if (lp_parm_bool(-1, "torture", "samba3", False)) {
+       if (lp_parm_bool(global_loadparm, NULL, "torture", "samba3", false)) {
                CHECK_STATUS(status, NT_STATUS_OBJECT_NAME_INVALID);
        }
        else {
@@ -178,7 +179,7 @@ static bool test_unlink(struct torture_context *tctx, struct smbcli_state *cli)
        io.unlink.in.pattern = BASEDIR "\\*.tx?";
        io.unlink.in.attrib = 0;
        status = smb_raw_unlink(cli->tree, &io);
-       if (lp_parm_bool(-1, "torture", "samba3", False)) {
+       if (lp_parm_bool(global_loadparm, NULL, "torture", "samba3", false)) {
                CHECK_STATUS(status, NT_STATUS_NO_SUCH_FILE);
        }
        else {
@@ -206,7 +207,7 @@ static bool test_delete_on_close(struct torture_context *tctx,
        union smb_unlink io;
        struct smb_rmdir dio;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        int fnum, fnum2;
        const char *fname = BASEDIR "\\test.txt";
        const char *dname = BASEDIR "\\test.dir";
@@ -214,7 +215,7 @@ static bool test_delete_on_close(struct torture_context *tctx,
        union smb_setfileinfo sfinfo;
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        dio.in.path = dname;
@@ -281,7 +282,7 @@ static bool test_delete_on_close(struct torture_context *tctx,
        CHECK_STATUS(status, NT_STATUS_OBJECT_NAME_NOT_FOUND);
 
 
-       if (!lp_parm_bool(-1, "torture", "samba3", False)) {
+       if (!lp_parm_bool(global_loadparm, NULL, "torture", "samba3", false)) {
 
                /*
                 * Known deficiency, also skipped in base-delete.
@@ -439,8 +440,7 @@ done:
 */
 struct torture_suite *torture_raw_unlink(TALLOC_CTX *mem_ctx)
 {
-       struct torture_suite *suite = torture_suite_create(mem_ctx, 
-                                                                                                          "UNLINK");
+       struct torture_suite *suite = torture_suite_create(mem_ctx, "UNLINK");
 
        torture_suite_add_1smb_test(suite, "unlink", test_unlink);
        torture_suite_add_1smb_test(suite, "delete_on_close", test_delete_on_close);
index b704a19ed65c37b99672e25586611147478e6e8b..98a0dde8c7f9a43d40ac929ea2161b2cf55c21f3 100644 (file)
@@ -30,7 +30,7 @@
        if (!NT_STATUS_EQUAL(status, correct)) { \
                printf("(%s) Incorrect status %s - should be %s\n", \
                       __location__, nt_errstr(status), nt_errstr(correct)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
        if ((v) != (correct)) { \
                printf("(%s) Incorrect value %s=%d - should be %d\n", \
                       __location__, #v, v, correct); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
 #define CHECK_BUFFER(buf, seed, len) do { \
        if (!check_buffer(buf, seed, len, __location__)) { \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
@@ -57,7 +57,7 @@
                printf("(%s) wrong value for field %s  %.0f - %.0f\n", \
                       __location__, #field, (double)v, (double)finfo.all_info.out.field); \
                dump_all_info(tctx, &finfo); \
-               ret = False; \
+               ret = false; \
        }} while (0)
 
 
@@ -77,7 +77,7 @@ static void setup_buffer(uint8_t *buf, uint_t seed, int len)
 /*
   check a random buffer based on a seed
 */
-static BOOL check_buffer(uint8_t *buf, uint_t seed, int len, const char *location)
+static bool check_buffer(uint8_t *buf, uint_t seed, int len, const char *location)
 {
        int i;
        srandom(seed);
@@ -86,10 +86,10 @@ static BOOL check_buffer(uint8_t *buf, uint_t seed, int len, const char *locatio
                if (buf[i] != v) {
                        printf("Buffer incorrect at %s! ofs=%d buf=0x%x correct=0x%x\n", 
                               location, i, buf[i], v);
-                       return False;
+                       return false;
                }
        }
-       return True;
+       return true;
 }
 
 /*
@@ -100,7 +100,7 @@ static bool test_write(struct torture_context *tctx,
 {
        union smb_write io;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        int fnum;
        uint8_t *buf;
        const int maxsize = 90000;
@@ -108,10 +108,10 @@ static bool test_write(struct torture_context *tctx,
        uint_t seed = time(NULL);
        union smb_fileinfo finfo;
 
-       buf = talloc_zero_size(tctx, maxsize);
+       buf = talloc_zero_array(tctx, uint8_t, maxsize);
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        printf("Testing RAW_WRITE_WRITE\n");
@@ -120,7 +120,7 @@ static bool test_write(struct torture_context *tctx,
        fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE);
        if (fnum == -1) {
                printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -147,7 +147,7 @@ static bool test_write(struct torture_context *tctx,
        memset(buf, 0, maxsize);
        if (smbcli_read(cli->tree, fnum, buf, 0, 13) != 13) {
                printf("read failed at %s\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
        CHECK_BUFFER(buf+4, seed, 9);
@@ -166,7 +166,7 @@ static bool test_write(struct torture_context *tctx,
        memset(buf, 0, maxsize);
        if (smbcli_read(cli->tree, fnum, buf, 0, 4000) != 4000) {
                printf("read failed at %s\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
        CHECK_BUFFER(buf, seed, 4000);
@@ -207,7 +207,7 @@ static bool test_write(struct torture_context *tctx,
        memset(buf, 0, maxsize);
        if (smbcli_read(cli->tree, fnum, buf, io.write.in.offset, 4000) != 4000) {
                printf("read failed at %s\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
        CHECK_BUFFER(buf, seed, 4000);
@@ -228,7 +228,7 @@ static bool test_writex(struct torture_context *tctx,
 {
        union smb_write io;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        int fnum, i;
        uint8_t *buf;
        const int maxsize = 90000;
@@ -242,10 +242,10 @@ static bool test_writex(struct torture_context *tctx,
                torture_comment(tctx, "dangerous not set - limiting range of test to 2^%d\n", max_bits);
        }
 
-       buf = talloc_zero_size(tctx, maxsize);
+       buf = talloc_zero_array(tctx, uint8_t, maxsize);
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        printf("Testing RAW_WRITE_WRITEX\n");
@@ -254,7 +254,7 @@ static bool test_writex(struct torture_context *tctx,
        fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE);
        if (fnum == -1) {
                printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -282,7 +282,7 @@ static bool test_writex(struct torture_context *tctx,
        memset(buf, 0, maxsize);
        if (smbcli_read(cli->tree, fnum, buf, 0, 13) != 13) {
                printf("read failed at %s\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
        CHECK_BUFFER(buf+4, seed, 9);
@@ -301,7 +301,7 @@ static bool test_writex(struct torture_context *tctx,
        memset(buf, 0, maxsize);
        if (smbcli_read(cli->tree, fnum, buf, 0, 4000) != 4000) {
                printf("read failed at %s\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
        CHECK_BUFFER(buf, seed, 4000);
@@ -334,7 +334,7 @@ static bool test_writex(struct torture_context *tctx,
        cli->session->pid++;
        if (NT_STATUS_IS_ERR(smbcli_lock(cli->tree, fnum, 3, 1, 0, WRITE_LOCK))) {
                printf("Failed to lock file at %s\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
        cli->session->pid--;
@@ -367,7 +367,7 @@ static bool test_writex(struct torture_context *tctx,
        memset(buf, 0, maxsize);
        if (smbcli_read(cli->tree, fnum, buf, io.writex.in.offset, 4000) != 4000) {
                printf("read failed at %s\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
        CHECK_BUFFER(buf, seed, 4000);
@@ -391,7 +391,7 @@ static bool test_writex(struct torture_context *tctx,
                memset(buf, 0, maxsize);
                if (smbcli_read(cli->tree, fnum, buf, io.writex.in.offset, 4000) != 4000) {
                        printf("read failed at %s\n", __location__);
-                       ret = False;
+                       ret = false;
                        goto done;
                }
                CHECK_BUFFER(buf, seed+1, 4000);
@@ -416,7 +416,7 @@ static bool test_writeunlock(struct torture_context *tctx,
 {
        union smb_write io;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        int fnum;
        uint8_t *buf;
        const int maxsize = 90000;
@@ -424,10 +424,10 @@ static bool test_writeunlock(struct torture_context *tctx,
        uint_t seed = time(NULL);
        union smb_fileinfo finfo;
 
-       buf = talloc_zero_size(tctx, maxsize);
+       buf = talloc_zero_array(tctx, uint8_t, maxsize);
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        printf("Testing RAW_WRITE_WRITEUNLOCK\n");
@@ -436,7 +436,7 @@ static bool test_writeunlock(struct torture_context *tctx,
        fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE);
        if (fnum == -1) {
                printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -460,7 +460,7 @@ static bool test_writeunlock(struct torture_context *tctx,
        CHECK_STATUS(status, NT_STATUS_RANGE_NOT_LOCKED);
        if (smbcli_read(cli->tree, fnum, buf, 0, 13) != 13) {
                printf("read failed at %s\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
        CHECK_BUFFER(buf+4, seed, 9);
@@ -476,7 +476,7 @@ static bool test_writeunlock(struct torture_context *tctx,
        memset(buf, 0, maxsize);
        if (smbcli_read(cli->tree, fnum, buf, 0, 13) != 13) {
                printf("read failed at %s\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
        CHECK_BUFFER(buf+4, seed, 9);
@@ -500,7 +500,7 @@ static bool test_writeunlock(struct torture_context *tctx,
        memset(buf, 0, maxsize);
        if (smbcli_read(cli->tree, fnum, buf, 0, 4000) != 4000) {
                printf("read failed at %s\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
        CHECK_BUFFER(buf, seed, 4000);
@@ -538,7 +538,7 @@ static bool test_writeunlock(struct torture_context *tctx,
        memset(buf, 0, maxsize);
        if (smbcli_read(cli->tree, fnum, buf, io.writeunlock.in.offset, 4000) != 4000) {
                printf("read failed at %s\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
        CHECK_BUFFER(buf, seed, 4000);
@@ -559,7 +559,7 @@ static bool test_writeclose(struct torture_context *tctx,
 {
        union smb_write io;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        int fnum;
        uint8_t *buf;
        const int maxsize = 90000;
@@ -567,10 +567,10 @@ static bool test_writeclose(struct torture_context *tctx,
        uint_t seed = time(NULL);
        union smb_fileinfo finfo;
 
-       buf = talloc_zero_size(tctx, maxsize);
+       buf = talloc_zero_array(tctx, uint8_t, maxsize);
 
        if (!torture_setup_dir(cli, BASEDIR)) {
-               return False;
+               return false;
        }
 
        printf("Testing RAW_WRITE_WRITECLOSE\n");
@@ -579,7 +579,7 @@ static bool test_writeclose(struct torture_context *tctx,
        fnum = smbcli_open(cli->tree, fname, O_RDWR|O_CREAT, DENY_NONE);
        if (fnum == -1) {
                printf("Failed to create %s - %s\n", fname, smbcli_errstr(cli->tree));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -614,7 +614,7 @@ static bool test_writeclose(struct torture_context *tctx,
 
        if (smbcli_read(cli->tree, fnum, buf, 0, 13) != 13) {
                printf("read failed at %s\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
        CHECK_BUFFER(buf+4, seed, 9);
@@ -631,7 +631,7 @@ static bool test_writeclose(struct torture_context *tctx,
        memset(buf, 0, maxsize);
        if (smbcli_read(cli->tree, fnum, buf, 0, 13) != 13) {
                printf("read failed at %s\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
        CHECK_BUFFER(buf+4, seed, 9);
@@ -656,7 +656,7 @@ static bool test_writeclose(struct torture_context *tctx,
        memset(buf, 0, maxsize);
        if (smbcli_read(cli->tree, fnum, buf, 0, 4000) != 4000) {
                printf("read failed at %s\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
        CHECK_BUFFER(buf, seed, 4000);
@@ -695,7 +695,7 @@ static bool test_writeclose(struct torture_context *tctx,
        memset(buf, 0, maxsize);
        if (smbcli_read(cli->tree, fnum, buf, io.writeclose.in.offset, 4000) != 4000) {
                printf("read failed at %s\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
        CHECK_BUFFER(buf, seed, 4000);
index 6dd0b40d7bdb47e8ec7b31e9b8fcaba68d4af10a..78437130746708ca32620a089d294bfd3315bab1 100644 (file)
 
 bool torture_rpc_alter_context(struct torture_context *torture)
 {
-        NTSTATUS status;
-        struct dcerpc_pipe *p, *p2;
-       TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
+       NTSTATUS status;
+       struct dcerpc_pipe *p, *p2, *p3;
        struct policy_handle *handle;
        struct ndr_interface_table tmptbl;
        struct ndr_syntax_id syntax;
        struct ndr_syntax_id transfer_syntax;
-
-       mem_ctx = talloc_init("torture_rpc_alter_context");
+       bool ret = true;
 
        torture_comment(torture, "opening LSA connection\n");
        status = torture_rpc_connection(torture, &p, &ndr_table_lsarpc);
-       if (!NT_STATUS_IS_OK(status)) {
-               talloc_free(mem_ctx);
-               return False;
-       }
+       torture_assert_ntstatus_ok(torture, status, "connecting");
 
-       if (!test_lsa_OpenPolicy2(p, mem_ctx, &handle)) {
-               ret = False;
+       if (!test_lsa_OpenPolicy2(p, torture, &handle)) {
+               ret = false;
        }
 
        torture_comment(torture, "Opening secondary DSSETUP context\n");
        status = dcerpc_secondary_context(p, &p2, &ndr_table_dssetup);
-       if (!NT_STATUS_IS_OK(status)) {
-               talloc_free(mem_ctx);
-               torture_comment(torture, "dcerpc_alter_context failed - %s\n", nt_errstr(status));
-               return False;
-       }
+       torture_assert_ntstatus_ok(torture, status, "dcerpc_alter_context failed");
 
        tmptbl = ndr_table_dssetup;
        tmptbl.syntax_id.if_version += 100;
        torture_comment(torture, "Opening bad secondary connection\n");
-       status = dcerpc_secondary_context(p, &p2, &tmptbl);
-       if (NT_STATUS_IS_OK(status)) {
-               talloc_free(mem_ctx);
-               torture_comment(torture, "dcerpc_alter_context with wrong version should fail\n");
-               return False;
-       }
+       status = dcerpc_secondary_context(p, &p3, &tmptbl);
+       torture_assert_ntstatus_equal(torture, status, NT_STATUS_RPC_UNSUPPORTED_NAME_SYNTAX,
+                                     "dcerpc_alter_context with wrong version should fail");
 
        torture_comment(torture, "testing DSSETUP pipe operations\n");
-       ret &= test_DsRoleGetPrimaryDomainInformation(p2, mem_ctx);
+       ret &= test_DsRoleGetPrimaryDomainInformation(torture, p2);
 
        if (handle) {
-               if (!test_lsa_Close(p, mem_ctx, handle)) {
-                       ret = False;
-               }
+               ret &= test_lsa_Close(p, torture, handle);
        }
 
        syntax = p->syntax;
        transfer_syntax = p->transfer_syntax;
 
        torture_comment(torture, "Testing change of primary context\n");
-       status = dcerpc_alter_context(p, mem_ctx, &p2->syntax, &p2->transfer_syntax);
-       if (!NT_STATUS_IS_OK(status)) {
-               talloc_free(mem_ctx);
-               torture_comment(torture, "dcerpc_alter_context failed - %s\n", nt_errstr(status));
-               return False;
-       }
+       status = dcerpc_alter_context(p, torture, &p2->syntax, &p2->transfer_syntax);
+       torture_assert_ntstatus_ok(torture, status, "dcerpc_alter_context failed");
 
        torture_comment(torture, "testing DSSETUP pipe operations - should fault\n");
-       if (test_DsRoleGetPrimaryDomainInformation(p, mem_ctx)) {
-               ret = False;
-       }
+       ret &= test_DsRoleGetPrimaryDomainInformation_ext(torture, p, NT_STATUS_NET_WRITE_FAULT);
 
-       if (!test_lsa_OpenPolicy2(p, mem_ctx, &handle)) {
-               ret = False;
-       }
+       ret &= test_lsa_OpenPolicy2(p, torture, &handle);
 
        if (handle) {
-               if (!test_lsa_Close(p, mem_ctx, handle)) {
-                       ret = False;
-               }
+               ret &= test_lsa_Close(p, torture, handle);
        }
 
        torture_comment(torture, "testing DSSETUP pipe operations\n");
 
-       ret &= test_DsRoleGetPrimaryDomainInformation(p2, mem_ctx);
-
-       talloc_free(mem_ctx);
+       ret &= test_DsRoleGetPrimaryDomainInformation(torture, p2);
 
        return ret;
 }
index 155f3f8244f26308c8258195585dbcb1e093fc55..70743bd433992a61932b729d62122771cee035b7 100644 (file)
@@ -35,7 +35,7 @@
 */
 
 
-BOOL torture_async_bind(struct torture_context *torture)
+bool torture_async_bind(struct torture_context *torture)
 {
        NTSTATUS status;
        TALLOC_CTX *mem_ctx;
@@ -49,30 +49,30 @@ BOOL torture_async_bind(struct torture_context *torture)
        struct dcerpc_pipe **pipe;
        const struct ndr_interface_table **table;
 
-       if (!torture_setting_bool(torture, "async", False)) {
+       if (!torture_setting_bool(torture, "async", false)) {
                printf("async bind test disabled - enable async tests to use\n");
-               return True;
+               return true;
        }
        
        binding_string = torture_setting_string(torture, "binding", NULL);
 
        /* talloc context */
        mem_ctx = talloc_init("torture_async_bind");
-       if (mem_ctx == NULL) return False;
+       if (mem_ctx == NULL) return false;
 
        bind_req = talloc_array(torture, struct composite_context*, torture_numasync);
-       if (bind_req == NULL) return False;
+       if (bind_req == NULL) return false;
        pipe     = talloc_array(torture, struct dcerpc_pipe*, torture_numasync);
-       if (pipe == NULL) return False;
+       if (pipe == NULL) return false;
        table    = talloc_array(torture, const struct ndr_interface_table*, torture_numasync);
-       if (table == NULL) return False;
+       if (table == NULL) return false;
        
        /* credentials */
        creds = cmdline_credentials;
 
        /* event context */
        evt_ctx = cli_credentials_get_event_context(creds);
-       if (evt_ctx == NULL) return False;
+       if (evt_ctx == NULL) return false;
 
        /* send bind requests */
        for (i = 0; i < torture_numasync; i++) {
@@ -86,10 +86,10 @@ BOOL torture_async_bind(struct torture_context *torture)
                status = dcerpc_pipe_connect_recv(bind_req[i], mem_ctx, &pipe[i]);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("async rpc connection failed: %s\n", nt_errstr(status));
-                       return False;
+                       return false;
                }
        }
 
        talloc_free(mem_ctx);
-       return True;
+       return true;
 }
index f5295cc6cc4122c22540022c7bfd7245ababfab9..b0d1d1519d3f9cd43a575def6500fea1f0f5128f 100644 (file)
@@ -76,7 +76,7 @@ static bool test_JobEnum(struct torture_context *tctx, struct dcerpc_pipe *p)
 
        for (i = 0; i < r.out.ctr->entries_read; i++) {
                if (!test_JobGetInfo(p, tctx, r.out.ctr->first_entry[i].job_id)) {
-                       ret = False;
+                       ret = false;
                }
        }
 
@@ -118,15 +118,12 @@ static bool test_JobAdd(struct torture_context *tctx, struct dcerpc_pipe *p)
        return true;
 }
 
-struct torture_suite *torture_rpc_atsvc(void)
+struct torture_suite *torture_rpc_atsvc(TALLOC_CTX *mem_ctx)
 {
-       struct torture_suite *suite = torture_suite_create(
-                                                                               talloc_autofree_context(),
-                                                                               "ATSVC");
+       struct torture_suite *suite = torture_suite_create(mem_ctx, "ATSVC");
        struct torture_rpc_tcase *tcase;
        
-       tcase = torture_suite_add_rpc_iface_tcase(suite, "atsvc", 
-                                                                                         &ndr_table_atsvc);
+       tcase = torture_suite_add_rpc_iface_tcase(suite, "atsvc", &ndr_table_atsvc);
 
        torture_rpc_tcase_add_test(tcase, "JobEnum", test_JobEnum);
        torture_rpc_tcase_add_test(tcase, "JobAdd", test_JobAdd);
index 76d838517cd84bbe4ecf094df75e1e939da27234..934373441308f8b2a5da2a0519b99bf5dd388709 100644 (file)
@@ -31,7 +31,7 @@
 /*
   get a DRSUAPI policy handle
 */
-static BOOL get_policy_handle(struct dcerpc_pipe *p,
+static bool get_policy_handle(struct dcerpc_pipe *p,
                              TALLOC_CTX *mem_ctx, 
                              struct policy_handle *handle)
 {
@@ -44,16 +44,16 @@ static BOOL get_policy_handle(struct dcerpc_pipe *p,
        status = dcerpc_drsuapi_DsBind(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("drsuapi_DsBind failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 #else
 /*
   get a SAMR handle
 */
-static BOOL get_policy_handle(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool get_policy_handle(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                              struct policy_handle *handle)
 {
        NTSTATUS status;
@@ -66,10 +66,10 @@ static BOOL get_policy_handle(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_Connect(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("samr_Connect failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 #endif
 
@@ -95,8 +95,7 @@ static void reopen(TALLOC_CTX *mem_ctx,
 
        talloc_free(*p);
 
-       status = torture_rpc_connection(mem_ctx, 
-                                       p, iface);
+       status = torture_rpc_connection(mem_ctx, p, iface);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Failed to reopen '%s' - %s\n", iface->name, nt_errstr(status));
                exit(1);
@@ -131,7 +130,7 @@ static void try_expand(TALLOC_CTX *mem_ctx, const struct ndr_interface_table *if
                memcpy(stub_in.data, base_in->data, insert_ofs);
                memcpy(stub_in.data+insert_ofs+n, base_in->data+insert_ofs, base_in->length-insert_ofs);
 
-               status = dcerpc_request(p, NULL, opnum, False, mem_ctx, &stub_in, &stub_out);
+               status = dcerpc_request(p, NULL, opnum, false, mem_ctx, &stub_in, &stub_out);
 
                if (!NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
                        print_depth(depth);
@@ -172,7 +171,7 @@ static void test_ptr_scan(TALLOC_CTX *mem_ctx, const struct ndr_interface_table
        /* work out which elements are pointers */
        for (ofs=min_ofs;ofs<=max_ofs-4;ofs+=4) {
                SIVAL(stub_in.data, ofs, 1);
-               status = dcerpc_request(p, NULL, opnum, False, mem_ctx, &stub_in, &stub_out);
+               status = dcerpc_request(p, NULL, opnum, false, mem_ctx, &stub_in, &stub_out);
 
                if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
                        print_depth(depth);
@@ -214,7 +213,7 @@ static void test_scan_call(TALLOC_CTX *mem_ctx, const struct ndr_interface_table
                data_blob_clear(&stub_in);
 
 
-               status = dcerpc_request(p, NULL, opnum, False, mem_ctx, &stub_in, &stub_out);
+               status = dcerpc_request(p, NULL, opnum, false, mem_ctx, &stub_in, &stub_out);
 
                if (NT_STATUS_IS_OK(status)) {
                        printf("opnum %d   min_input %d - output %d\n", 
@@ -227,7 +226,7 @@ static void test_scan_call(TALLOC_CTX *mem_ctx, const struct ndr_interface_table
 
                fill_blob_handle(&stub_in, mem_ctx, &handle);
 
-               status = dcerpc_request(p, NULL, opnum, False, mem_ctx, &stub_in, &stub_out);
+               status = dcerpc_request(p, NULL, opnum, false, mem_ctx, &stub_in, &stub_out);
 
                if (NT_STATUS_IS_OK(status)) {
                        printf("opnum %d   min_input %d - output %d (with handle)\n", 
@@ -259,7 +258,7 @@ static void test_auto_scan(TALLOC_CTX *mem_ctx, const struct ndr_interface_table
        test_scan_call(mem_ctx, iface, 2);
 }
 
-BOOL torture_rpc_autoidl(struct torture_context *torture)
+bool torture_rpc_autoidl(struct torture_context *torture)
 {
        TALLOC_CTX *mem_ctx;
        const struct ndr_interface_table *iface;
@@ -267,7 +266,7 @@ BOOL torture_rpc_autoidl(struct torture_context *torture)
        iface = ndr_table_by_name("drsuapi");
        if (!iface) {
                printf("Unknown interface!\n");
-               return False;
+               return false;
        }
 
        mem_ctx = talloc_init("torture_rpc_autoidl");
@@ -277,5 +276,5 @@ BOOL torture_rpc_autoidl(struct torture_context *torture)
        test_auto_scan(mem_ctx, iface);
 
        talloc_free(mem_ctx);
-       return True;
+       return true;
 }
index 48fd0609f005a10796b89f5f26b23366585f9159..2619ac2d2547c71f00f45b4d7f18d5abf36af634 100644 (file)
 #include "torture/torture.h"
 #include "librpc/gen_ndr/ndr_srvsvc_c.h"
 #include "torture/rpc/rpc.h"
+#include "param/param.h"
 
 /**************************/
 /* srvsvc_NetShare        */
 /**************************/
-static BOOL test_NetShareEnumAll(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_NetShareEnumAll(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
 {
        NTSTATUS status;
        struct srvsvc_NetShareEnumAll r;
        struct srvsvc_NetShareCtr0 c0;
        uint32_t levels[] = {0, 1, 2, 501, 502};
        int i;
-       BOOL ret = True;
+       bool ret = true;
        uint32_t resume_handle;
 
        ZERO_STRUCT(c0);
@@ -52,7 +53,7 @@ static BOOL test_NetShareEnumAll(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
                status = dcerpc_srvsvc_NetShareEnumAll(p, mem_ctx, &r);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("NetShareEnumAll level %u failed - %s\n", r.in.level, nt_errstr(status));
-                       ret = False;
+                       ret = false;
                        continue;
                }
                if (!W_ERROR_IS_OK(r.out.result)) {
@@ -67,11 +68,11 @@ static BOOL test_NetShareEnumAll(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
 /*
   benchmark srvsvc netshareenumall queries
 */
-static BOOL bench_NetShareEnumAll(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool bench_NetShareEnumAll(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
 {
        struct timeval tv = timeval_current();
-       BOOL ret = True;
-       int timelimit = lp_parm_int(-1, "torture", "timelimit", 10);
+       bool ret = true;
+       int timelimit = lp_parm_int(global_loadparm, NULL, "torture", "timelimit", 10);
        int count=0;
 
        printf("Running for %d seconds\n", timelimit);
@@ -81,7 +82,7 @@ static BOOL bench_NetShareEnumAll(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
                talloc_free(tmp_ctx);
                count++;
                if (count % 50 == 0) {
-                       if (lp_parm_bool(-1, "torture", "progress", true)) {
+                       if (lp_parm_bool(global_loadparm, NULL, "torture", "progress", true)) {
                                printf("%.1f queries per second  \r", 
                                       count / timeval_elapsed(&tv));
                        }
@@ -94,12 +95,12 @@ static BOOL bench_NetShareEnumAll(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
 }
 
 
-BOOL torture_bench_rpc(struct torture_context *torture)
+bool torture_bench_rpc(struct torture_context *torture)
 {
         NTSTATUS status;
         struct dcerpc_pipe *p;
        TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
+       bool ret = true;
 
        mem_ctx = talloc_init("torture_rpc_srvsvc");
 
@@ -108,11 +109,11 @@ BOOL torture_bench_rpc(struct torture_context *torture)
                                        &ndr_table_srvsvc);
        if (!NT_STATUS_IS_OK(status)) {
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        if (!bench_NetShareEnumAll(p, mem_ctx)) {
-               ret = False;
+               ret = false;
        }
 
        talloc_free(mem_ctx);
index c7848f4a89774fae7415347a6186de09e3fc715a..180090187375457e01e6be0aa105fdd8b578259f 100644 (file)
 
 */
 
-BOOL torture_multi_bind(struct torture_context *torture) 
+bool torture_multi_bind(struct torture_context *torture) 
 {
        struct dcerpc_pipe *p;
        struct dcerpc_binding *binding;
        TALLOC_CTX *mem_ctx;
        NTSTATUS status;
-       BOOL ret;
+       bool ret;
 
        mem_ctx = talloc_init("torture_multi_bind");
 
        status = torture_rpc_binding(torture, &binding);
        if (!NT_STATUS_IS_OK(status)) {
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        status = torture_rpc_connection(torture, &p, &ndr_table_lsarpc);
        
        if (!NT_STATUS_IS_OK(status)) {
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        status = dcerpc_pipe_auth(mem_ctx, &p, binding, &ndr_table_lsarpc, cmdline_credentials);
@@ -69,10 +69,10 @@ BOOL torture_multi_bind(struct torture_context *torture)
        if (NT_STATUS_IS_OK(status)) {
                printf("(incorrectly) allowed re-bind to uuid %s - %s\n", 
                        GUID_string(mem_ctx, &ndr_table_lsarpc.syntax_id.uuid), nt_errstr(status));
-               ret = False;
+               ret = false;
        } else {
                printf("\n");
-               ret = True;
+               ret = true;
        }
 
        talloc_free(mem_ctx);
index e2e222d2ecb07a22c40d8645eb205b7ce2d0d1f1..f9a31feaaf995c24dbae74b43e386bc920dcff81 100644 (file)
 #include "librpc/ndr/libndr.h"
 #include "librpc/ndr/ndr_table.h"
 #include "torture/rpc/rpc.h"
+#include "param/param.h"
 
 
        
-BOOL count_calls(TALLOC_CTX *mem_ctx,
+bool count_calls(TALLOC_CTX *mem_ctx,
                 const struct ndr_interface_table *iface,
-       BOOL all) 
+       bool all) 
 {
        struct dcerpc_pipe *p;
        DATA_BLOB stub_in, stub_out;
@@ -42,14 +43,14 @@ BOOL count_calls(TALLOC_CTX *mem_ctx,
            || NT_STATUS_EQUAL(NT_STATUS_ACCESS_DENIED, status)) {
                if (all) {
                        /* Not fatal if looking for all pipes */
-                       return True;
+                       return true;
                } else {
                        printf("Failed to open '%s' to count calls - %s\n", iface->name, nt_errstr(status));
-                       return False;
+                       return false;
                }
        } else if (!NT_STATUS_IS_OK(status)) {
                printf("Failed to open '%s' to count calls - %s\n", iface->name, nt_errstr(status));
-               return False;
+               return false;
        }
 
        stub_in = data_blob_talloc(p, mem_ctx, 0);
@@ -57,7 +58,7 @@ BOOL count_calls(TALLOC_CTX *mem_ctx,
        printf("\nScanning pipe '%s'\n", iface->name);
 
        for (i=0;i<500;i++) {
-               status = dcerpc_request(p, NULL, i, False, p, &stub_in, &stub_out);
+               status = dcerpc_request(p, NULL, i, false, p, &stub_in, &stub_out);
                if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT) &&
                    p->last_fault_code == DCERPC_FAULT_OP_RNG_ERROR) {
                        i--;
@@ -89,41 +90,41 @@ BOOL count_calls(TALLOC_CTX *mem_ctx,
        if (i==500) {
                talloc_free(p);
                printf("no limit on calls: %s!?\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        printf("Found %d calls\n", i);
 
        talloc_free(p);
        
-       return True;
+       return true;
 
 }
 
-BOOL torture_rpc_countcalls(struct torture_context *torture)
+bool torture_rpc_countcalls(struct torture_context *torture)
 {
        const struct ndr_interface_table *iface;
        const char *iface_name;
-       BOOL ret = True;
+       bool ret = true;
        const struct ndr_interface_list *l;
        TALLOC_CTX *mem_ctx = talloc_named(torture, 0, "torture_rpc_countcalls context");
        if (!mem_ctx) {
-               return False;
+               return false;
        }
-       iface_name = lp_parm_string(-1, "countcalls", "interface");
+       iface_name = lp_parm_string(global_loadparm, NULL, "countcalls", "interface");
        if (iface_name != NULL) {
                iface = ndr_table_by_name(iface_name);
                if (!iface) {
                        printf("Unknown interface '%s'\n", iface_name);
-                       return False;
+                       return false;
                }
-               return count_calls(mem_ctx, iface, False);
+               return count_calls(mem_ctx, iface, false);
        }
 
        for (l=ndr_table_list();l;l=l->next) {          
                TALLOC_CTX *loop_ctx;
                loop_ctx = talloc_named(mem_ctx, 0, "torture_rpc_councalls loop context");
-               ret &= count_calls(loop_ctx, l->table, True);
+               ret &= count_calls(loop_ctx, l->table, true);
                talloc_free(loop_ctx);
        }
        return ret;
index 7dc600ae9377886a5bb3a1bf445fd41d0179b46b..afa647e71c3858133dbf54b367822a37f22b904b 100644 (file)
        if (x == DFS_MANAGER_VERSION_W2K3) {\
                if (!W_ERROR_EQUAL(y,WERR_NOT_SUPPORTED)) {\
                        printf("expected WERR_NOT_SUPPORTED\n");\
-                       return False;\
+                       return false;\
                }\
-               return True;\
+               return true;\
        }\
 
-static BOOL test_NetShareAdd(TALLOC_CTX *mem_ctx, const char *host, const char *sharename, const char *dir)
+static bool test_NetShareAdd(TALLOC_CTX *mem_ctx, const char *host, const char *sharename, const char *dir)
 {
        NTSTATUS status;
        struct srvsvc_NetShareInfo2 i;
@@ -53,7 +53,7 @@ static BOOL test_NetShareAdd(TALLOC_CTX *mem_ctx, const char *host, const char *
        printf("Creating share %s\n", sharename);
 
        if (!(libnetctx = libnet_context_init(NULL))) {
-               return False;
+               return false;
        }
 
        libnetctx->cred = cmdline_credentials;
@@ -75,13 +75,13 @@ static BOOL test_NetShareAdd(TALLOC_CTX *mem_ctx, const char *host, const char *
        if (!NT_STATUS_IS_OK(status)) {
                d_printf("Failed to add new share: %s (%s)\n", 
                        nt_errstr(status), r.out.error_string);
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_NetShareDel(TALLOC_CTX *mem_ctx, const char *host, const char *sharename)
+static bool test_NetShareDel(TALLOC_CTX *mem_ctx, const char *host, const char *sharename)
 {
        NTSTATUS status;
        struct libnet_context* libnetctx;
@@ -90,7 +90,7 @@ static BOOL test_NetShareDel(TALLOC_CTX *mem_ctx, const char *host, const char *
        printf("Deleting share %s\n", sharename);
 
        if (!(libnetctx = libnet_context_init(NULL))) {
-               return False;
+               return false;
        }
 
        libnetctx->cred = cmdline_credentials;
@@ -102,13 +102,13 @@ static BOOL test_NetShareDel(TALLOC_CTX *mem_ctx, const char *host, const char *
        if (!NT_STATUS_IS_OK(status)) {
                d_printf("Failed to delete share: %s (%s)\n", 
                        nt_errstr(status), r.out.error_string);
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_CreateDir(TALLOC_CTX *mem_ctx, 
+static bool test_CreateDir(TALLOC_CTX *mem_ctx, 
                           struct smbcli_state **cli, 
                           const char *host, 
                           const char *share, 
@@ -117,29 +117,29 @@ static BOOL test_CreateDir(TALLOC_CTX *mem_ctx,
        printf("Creating directory %s\n", dir);
 
        if (!torture_open_connection_share(mem_ctx, cli, host, share, NULL)) {
-               return False;
+               return false;
        }
 
        if (!torture_setup_dir(*cli, dir)) {
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_DeleteDir(struct smbcli_state *cli, const char *dir)
+static bool test_DeleteDir(struct smbcli_state *cli, const char *dir)
 {
        printf("Deleting directory %s\n", dir);
 
        if (smbcli_deltree(cli->tree, dir) == -1) {
                printf("Unable to delete dir %s - %s\n", dir, smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_GetManagerVersion(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, enum dfs_ManagerVersion *version)
+static bool test_GetManagerVersion(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, enum dfs_ManagerVersion *version)
 {
        NTSTATUS status;
        struct dfs_GetManagerVersion r;
@@ -149,13 +149,13 @@ static BOOL test_GetManagerVersion(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, e
        status = dcerpc_dfs_GetManagerVersion(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("GetManagerVersion failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_ManagerInitialize(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, const char *host)
+static bool test_ManagerInitialize(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, const char *host)
 {
        NTSTATUS status;
        enum dfs_ManagerVersion version;
@@ -164,7 +164,7 @@ static BOOL test_ManagerInitialize(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, c
        printf("Testing ManagerInitialize\n");
 
        if (!test_GetManagerVersion(p, mem_ctx, &version)) {
-               return False;
+               return false;
        }
 
        r.in.servername = host;
@@ -173,17 +173,17 @@ static BOOL test_ManagerInitialize(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, c
        status = dcerpc_dfs_ManagerInitialize(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("ManagerInitialize failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        } else if (!W_ERROR_IS_OK(r.out.result)) {
                printf("dfs_ManagerInitialize failed - %s\n", win_errstr(r.out.result));
                IS_DFS_VERSION_UNSUPPORTED_CALL_W2K3(version, r.out.result);
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_GetInfoLevel(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, uint16_t level,
+static bool test_GetInfoLevel(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, uint16_t level,
                              const char *root)
 {
        NTSTATUS status;
@@ -199,32 +199,32 @@ static BOOL test_GetInfoLevel(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, uint16
        status = dcerpc_dfs_GetInfo(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("GetInfo failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        } else if (!W_ERROR_IS_OK(r.out.result) && 
                   !W_ERROR_EQUAL(WERR_NO_MORE_ITEMS, r.out.result)) {
                printf("dfs_GetInfo failed - %s\n", win_errstr(r.out.result));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_GetInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, const char *root)
+static bool test_GetInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, const char *root)
 {
-       BOOL ret = True;
+       bool ret = true;
        /* 103, 104, 105, 106 is only available on Set */
        uint16_t levels[] = {1, 2, 3, 4, 5, 6, 7, 100, 101, 102, 103, 104, 105, 106};
        int i;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                if (!test_GetInfoLevel(p, mem_ctx, levels[i], root)) {
-                       ret = False;
+                       ret = false;
                }
        }
        return ret;
 }
 
-static BOOL test_EnumLevelEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, uint16_t level, const char *dfs_name)
+static bool test_EnumLevelEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, uint16_t level, const char *dfs_name)
 {
        NTSTATUS status;
        struct dfs_EnumEx rex;
@@ -232,7 +232,7 @@ static BOOL test_EnumLevelEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, uint16_
        struct dfs_EnumStruct e;
        struct dfs_Info1 s;
        struct dfs_EnumArray1 e1;
-       BOOL ret = True;
+       bool ret = true;
        
        rex.in.level = level;
        rex.in.bufsize = (uint32_t)-1;
@@ -251,7 +251,7 @@ static BOOL test_EnumLevelEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, uint16_
        status = dcerpc_dfs_EnumEx(p, mem_ctx, &rex);
        if (!NT_STATUS_IS_OK(status)) {
                printf("EnumEx failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        if (level == 1 && rex.out.total) {
@@ -259,7 +259,7 @@ static BOOL test_EnumLevelEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, uint16_
                for (i=0;i<*rex.out.total;i++) {
                        const char *root = talloc_strdup(mem_ctx, rex.out.info->e.info1->s[i].path);
                        if (!test_GetInfo(p, mem_ctx, root)) {
-                               ret = False;
+                               ret = false;
                        }
                }
        }
@@ -271,11 +271,11 @@ static BOOL test_EnumLevelEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, uint16_
                        const char *root = talloc_strdup(mem_ctx, rex.out.info->e.info300->s[i].dom_root);
                        for (k=0;k<ARRAY_SIZE(levels);k++) {
                                if (!test_EnumLevelEx(p, mem_ctx, levels[k], root)) {
-                                       ret = False;
+                                       ret = false;
                                }
                        }
                        if (!test_GetInfo(p, mem_ctx, root)) {
-                               ret = False;
+                               ret = false;
                        }
                }
        }
@@ -284,7 +284,7 @@ static BOOL test_EnumLevelEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, uint16_
 }
 
 
-static BOOL test_EnumLevel(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, uint16_t level)
+static bool test_EnumLevel(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, uint16_t level)
 {
        NTSTATUS status;
        struct dfs_Enum r;
@@ -292,7 +292,7 @@ static BOOL test_EnumLevel(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, uint16_t
        struct dfs_EnumStruct e;
        struct dfs_Info1 s;
        struct dfs_EnumArray1 e1;
-       BOOL ret = True;
+       bool ret = true;
        
        r.in.level = level;
        r.in.bufsize = (uint32_t)-1;
@@ -310,11 +310,11 @@ static BOOL test_EnumLevel(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, uint16_t
        status = dcerpc_dfs_Enum(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Enum failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        } else if (!W_ERROR_IS_OK(r.out.result) && 
                   !W_ERROR_EQUAL(WERR_NO_MORE_ITEMS, r.out.result)) {
                printf("dfs_Enum failed - %s\n", win_errstr(r.out.result));
-               return False;
+               return false;
        }
 
        if (level == 1 && r.out.total) {
@@ -322,7 +322,7 @@ static BOOL test_EnumLevel(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, uint16_t
                for (i=0;i<*r.out.total;i++) {
                        const char *root = r.out.info->e.info1->s[i].path;
                        if (!test_GetInfo(p, mem_ctx, root)) {
-                               ret = False;
+                               ret = false;
                        }
                }
                
@@ -332,37 +332,37 @@ static BOOL test_EnumLevel(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, uint16_t
 }
 
 
-static BOOL test_Enum(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_Enum(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
 {
-       BOOL ret = True;
+       bool ret = true;
        uint16_t levels[] = {1, 2, 3, 4, 200, 300};
        int i;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                if (!test_EnumLevel(p, mem_ctx, levels[i])) {
-                       ret = False;
+                       ret = false;
                }
        }
 
        return ret;
 }
 
-static BOOL test_EnumEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, const char *host)
+static bool test_EnumEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, const char *host)
 {
-       BOOL ret = True;
+       bool ret = true;
        uint16_t levels[] = {1, 2, 3, 4, 200, 300};
        int i;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                if (!test_EnumLevelEx(p, mem_ctx, levels[i], host)) {
-                       ret = False;
+                       ret = false;
                }
        }
 
        return ret;
 }
 
-static BOOL test_RemoveStdRoot(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, const char *host, const char *sharename)
+static bool test_RemoveStdRoot(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, const char *host, const char *sharename)
 {
        struct dfs_RemoveStdRoot r;
        NTSTATUS status;
@@ -376,16 +376,16 @@ static BOOL test_RemoveStdRoot(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, const
        status = dcerpc_dfs_RemoveStdRoot(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("RemoveStdRoot failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        } else if (!W_ERROR_IS_OK(r.out.result)) {
                printf("dfs_RemoveStdRoot failed - %s\n", win_errstr(r.out.result));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_AddStdRoot(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, const char *host, const char *sharename)
+static bool test_AddStdRoot(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, const char *host, const char *sharename)
 {
        NTSTATUS status;
        struct dfs_AddStdRoot r;
@@ -400,16 +400,16 @@ static BOOL test_AddStdRoot(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, const ch
        status = dcerpc_dfs_AddStdRoot(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("AddStdRoot failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        } else if (!W_ERROR_IS_OK(r.out.result)) {
                printf("dfs_AddStdRoot failed - %s\n", win_errstr(r.out.result));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_AddStdRootForced(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, const char *host, const char *sharename)
+static bool test_AddStdRootForced(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, const char *host, const char *sharename)
 {
        NTSTATUS status;
        struct dfs_AddStdRootForced r;
@@ -418,7 +418,7 @@ static BOOL test_AddStdRootForced(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, co
        printf("Testing AddStdRootForced\n");
 
        if (!test_GetManagerVersion(p, mem_ctx, &version)) {
-               return False;
+               return false;
        }
 
        r.in.servername = host;
@@ -429,11 +429,11 @@ static BOOL test_AddStdRootForced(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, co
        status = dcerpc_dfs_AddStdRootForced(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("AddStdRootForced failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        } else if (!W_ERROR_IS_OK(r.out.result)) {
                printf("dfs_AddStdRootForced failed - %s\n", win_errstr(r.out.result));
                IS_DFS_VERSION_UNSUPPORTED_CALL_W2K3(version, r.out.result);
-               return False;
+               return false;
        }
 
        return test_RemoveStdRoot(p, mem_ctx, host, sharename);
@@ -456,13 +456,13 @@ static void test_cleanup_stdroot(struct dcerpc_pipe *p,
        torture_close_connection(cli);
 }
 
-static BOOL test_StdRoot(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, const char *host)
+static bool test_StdRoot(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, const char *host)
 {
        const char *sharename = SMBTORTURE_DFS_SHARENAME;
        const char *dir = SMBTORTURE_DFS_DIRNAME;
        const char *path = SMBTORTURE_DFS_PATHNAME;
        struct smbcli_state *cli;
-       BOOL ret;
+       bool ret;
 
        printf("Testing StdRoot\n");
 
@@ -485,9 +485,9 @@ bool torture_rpc_dfs(struct torture_context *torture)
 {
        NTSTATUS status;
        struct dcerpc_pipe *p;
-       BOOL ret = True;
+       bool ret = true;
        enum dfs_ManagerVersion version;
-       const char *host = lp_parm_string(-1, "torture", "host");
+       const char *host = torture_setting_string(torture, "host", NULL);
 
        status = torture_rpc_connection(torture, &p, &ndr_table_netdfs);
        torture_assert_ntstatus_ok(torture, status, "Unable to connect");
index 606240993f030066f0bd392a5c17fa25bf7df1f9..3407e49565cdd08f1a179665143c7b3acabf1453 100644 (file)
 #include "torture/torture.h"
 #include "librpc/gen_ndr/ndr_drsuapi_c.h"
 #include "torture/rpc/rpc.h"
+#include "param/param.h"
 
 #define TEST_MACHINE_NAME "torturetest"
 
-BOOL test_DsBind(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+bool test_DsBind(struct dcerpc_pipe *p, struct torture_context *tctx,
                 struct DsPrivate *priv)
 {
        NTSTATUS status;
        struct drsuapi_DsBind r;
-       BOOL ret = True;
 
        GUID_from_string(DRSUAPI_DS_BIND_GUID, &priv->bind_guid);
 
@@ -41,31 +41,28 @@ BOOL test_DsBind(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        r.in.bind_info = NULL;
        r.out.bind_handle = &priv->bind_handle;
 
-       printf("testing DsBind\n");
+       torture_comment(tctx, "testing DsBind\n");
 
-       status = dcerpc_drsuapi_DsBind(p, mem_ctx, &r);
+       status = dcerpc_drsuapi_DsBind(p, tctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                const char *errstr = nt_errstr(status);
                if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
-                       errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
+                       errstr = dcerpc_errstr(tctx, p->last_fault_code);
                }
-               printf("dcerpc_drsuapi_DsBind failed - %s\n", errstr);
-               ret = False;
+               torture_fail(tctx, "dcerpc_drsuapi_DsBind failed");
        } else if (!W_ERROR_IS_OK(r.out.result)) {
-               printf("DsBind failed - %s\n", win_errstr(r.out.result));
-               ret = False;
+               torture_fail(tctx, "DsBind failed");
        }
 
-       return ret;
+       return true;
 }
 
-static BOOL test_DsGetDomainControllerInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx
+static bool test_DsGetDomainControllerInfo(struct dcerpc_pipe *p, struct torture_context *torture
                      struct DsPrivate *priv)
 {
        NTSTATUS status;
        struct drsuapi_DsGetDomainControllerInfo r;
-       BOOL ret = True;
-       BOOL found = False;
+       bool found = false;
        int i, j, k;
        
        struct {
@@ -101,45 +98,32 @@ static BOOL test_DsGetDomainControllerInfo(struct dcerpc_pipe *p, TALLOC_CTX *me
                        r.in.req.req1.domain_name = names[j].name;
                        r.in.req.req1.level = level;
                        
-                       printf("testing DsGetDomainControllerInfo level %d on domainname '%s'\n",
+                       torture_comment(torture,
+                                  "testing DsGetDomainControllerInfo level %d on domainname '%s'\n",
                               r.in.req.req1.level, r.in.req.req1.domain_name);
                
-                       status = dcerpc_drsuapi_DsGetDomainControllerInfo(p, mem_ctx, &r);
-                       if (!NT_STATUS_IS_OK(status)) {
-                               const char *errstr = nt_errstr(status);
-                               if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
-                                       errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
-                               }
-                               printf("dcerpc_drsuapi_DsGetDomainControllerInfo level %d\n"
-                                      "    with dns domain failed - %s\n",
-                                      r.in.req.req1.level, errstr);
-                               ret = False;
-                       } else if (!W_ERROR_EQUAL(r.out.result, names[j].expected)) {
-                               printf("DsGetDomainControllerInfo level %d\n"
-                                      "    with dns domain failed - %s, expected %s\n",
-                                      r.in.req.req1.level, win_errstr(r.out.result),
-                                      win_errstr(names[j].expected));
-                               ret = False;
-                       }
+                       status = dcerpc_drsuapi_DsGetDomainControllerInfo(p, torture, &r);
+                       torture_assert_ntstatus_ok(torture, status,
+                                  "dcerpc_drsuapi_DsGetDomainControllerInfo with dns domain failed");
+                       torture_assert_werr_equal(torture, 
+                                                                         r.out.result, names[j].expected, 
+                                          "DsGetDomainControllerInfo level with dns domain failed");
                
                        if (!W_ERROR_IS_OK(r.out.result)) {
                                /* If this was an error, we can't read the result structure */
                                continue;
                        }
 
-                       if (r.in.req.req1.level != r.out.level_out) {
-                               printf("dcerpc_drsuapi_DsGetDomainControllerInfo level in (%d) != out (%d)\n",
-                                      r.in.req.req1.level, r.out.level_out);
-                               ret = False;
-                               /* We can't safely read the result structure */
-                               continue;
-                       }
+                       torture_assert_int_equal(torture, 
+                                                                        r.in.req.req1.level, r.out.level_out, 
+                                                                        "dcerpc_drsuapi_DsGetDomainControllerInfo level"); 
+
                        switch (level) {
                        case 1:
                                for (k=0; k < r.out.ctr.ctr1.count; k++) {
                                        if (strcasecmp_m(r.out.ctr.ctr1.array[k].netbios_name, 
                                                         torture_join_netbios_name(priv->join)) == 0) {
-                                               found = True;
+                                               found = true;
                                                break;
                                        }
                                }
@@ -148,27 +132,18 @@ static BOOL test_DsGetDomainControllerInfo(struct dcerpc_pipe *p, TALLOC_CTX *me
                                for (k=0; k < r.out.ctr.ctr2.count; k++) {
                                        if (strcasecmp_m(r.out.ctr.ctr2.array[k].netbios_name, 
                                                         torture_join_netbios_name(priv->join)) == 0) {
-                                               found = True;
+                                               found = true;
                                                priv->dcinfo    = r.out.ctr.ctr2.array[k];
                                                break;
                                        }
                                }
                                break;
                        }
-                       if (!found) {
-                               printf("dcerpc_drsuapi_DsGetDomainControllerInfo level %d: Failed to find the domain controller (%s) we just created during the join\n",
-                                      r.in.req.req1.level,
-                                      torture_join_netbios_name(priv->join));
-                               ret = False;
-                       }
+                       torture_assert(torture, found,
+                                "dcerpc_drsuapi_DsGetDomainControllerInfo: Failed to find the domain controller we just created during the join");
                }
        }
 
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
-               printf("skipping DsGetDomainControllerInfo level -1 test against Samba4\n");
-               return ret;
-       }
-
        r.in.bind_handle = &priv->bind_handle;
        r.in.level = 1;
        
@@ -178,53 +153,39 @@ static BOOL test_DsGetDomainControllerInfo(struct dcerpc_pipe *p, TALLOC_CTX *me
        printf("testing DsGetDomainControllerInfo level %d on domainname '%s'\n",
               r.in.req.req1.level, r.in.req.req1.domain_name);
        
-       status = dcerpc_drsuapi_DsGetDomainControllerInfo(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               const char *errstr = nt_errstr(status);
-               if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
-                       errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
-               }
-               printf("dcerpc_drsuapi_DsGetDomainControllerInfo level %d\n"
-                      "    with dns domain failed - %s\n",
-                                      r.in.req.req1.level, errstr);
-               ret = False;
-       } else if (!W_ERROR_IS_OK(r.out.result)) {
-               printf("DsGetDomainControllerInfo level %d\n"
-                      "    with dns domain failed - %s\n",
-                      r.in.req.req1.level, win_errstr(r.out.result));
-               ret = False;
-       }
+       status = dcerpc_drsuapi_DsGetDomainControllerInfo(p, torture, &r);
+
+       torture_assert_ntstatus_ok(torture, status, 
+                       "dcerpc_drsuapi_DsGetDomainControllerInfo with dns domain failed");
+       torture_assert_werr_ok(torture, r.out.result, 
+                          "DsGetDomainControllerInfo with dns domain failed");
        
        {
-               const char *dc_account = talloc_asprintf(mem_ctx, "%s\\%s$",
+               const char *dc_account = talloc_asprintf(torture, "%s\\%s$",
                                                         torture_join_dom_netbios_name(priv->join), 
                                                         priv->dcinfo.netbios_name);
                for (k=0; k < r.out.ctr.ctr01.count; k++) {
                        if (strcasecmp_m(r.out.ctr.ctr01.array[k].client_account, 
                                         dc_account)) {
-                               found = True;
+                               found = true;
                                break;
                        }
                }
-               if (!found) {
-                       printf("dcerpc_drsuapi_DsGetDomainControllerInfo level %d: Failed to find the domain controller (%s) in last logon records\n",
-                              r.in.req.req1.level,
-                              dc_account);
-                       ret = False;
-               }
+               torture_assert(torture, found,
+                       "dcerpc_drsuapi_DsGetDomainControllerInfo level: Failed to find the domain controller in last logon records");
        }
 
 
-       return ret;
+       return true;
 }
 
-static BOOL test_DsWriteAccountSpn(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_DsWriteAccountSpn(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                   struct DsPrivate *priv)
 {
        NTSTATUS status;
        struct drsuapi_DsWriteAccountSpn r;
        struct drsuapi_DsNameString names[2];
-       BOOL ret = True;
+       bool ret = true;
 
        r.in.bind_handle                = &priv->bind_handle;
        r.in.level                      = 1;
@@ -246,10 +207,10 @@ static BOOL test_DsWriteAccountSpn(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
                }
                printf("dcerpc_drsuapi_DsWriteAccountSpn failed - %s\n", errstr);
-               ret = False;
+               ret = false;
        } else if (!W_ERROR_IS_OK(r.out.result)) {
                printf("DsWriteAccountSpn failed - %s\n", win_errstr(r.out.result));
-               ret = False;
+               ret = false;
        }
 
        r.in.req.req1.operation = DRSUAPI_DS_SPN_OPERATION_DELETE;
@@ -262,21 +223,21 @@ static BOOL test_DsWriteAccountSpn(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
                }
                printf("dcerpc_drsuapi_DsWriteAccountSpn failed - %s\n", errstr);
-               ret = False;
+               ret = false;
        } else if (!W_ERROR_IS_OK(r.out.result)) {
                printf("DsWriteAccountSpn failed - %s\n", win_errstr(r.out.result));
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
-static BOOL test_DsReplicaGetInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_DsReplicaGetInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                        struct DsPrivate *priv)
 {
        NTSTATUS status;
        struct drsuapi_DsReplicaGetInfo r;
-       BOOL ret = True;
+       bool ret = true;
        int i;
        struct {
                int32_t level;
@@ -346,9 +307,9 @@ static BOOL test_DsReplicaGetInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                }
        };
 
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
+       if (lp_parm_bool(global_loadparm, NULL, "torture", "samba4", false)) {
                printf("skipping DsReplicaGetInfo test against Samba4\n");
-               return True;
+               return true;
        }
 
        r.in.bind_handle        = &priv->bind_handle;
@@ -387,25 +348,25 @@ static BOOL test_DsReplicaGetInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        }
                        if (p->last_fault_code != DCERPC_FAULT_INVALID_TAG) {
                                printf("dcerpc_drsuapi_DsReplicaGetInfo failed - %s\n", errstr);
-                               ret = False;
+                               ret = false;
                        } else {
                                printf("DsReplicaGetInfo level %d and/or infotype %d not supported by server\n",
                                        array[i].level, array[i].infotype);
                        }
                } else if (!W_ERROR_IS_OK(r.out.result)) {
                        printf("DsReplicaGetInfo failed - %s\n", win_errstr(r.out.result));
-                       ret = False;
+                       ret = false;
                }
        }
 
        return ret;
 }
 
-static BOOL test_DsReplicaSync(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_DsReplicaSync(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                        struct DsPrivate *priv)
 {
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        int i;
        struct drsuapi_DsReplicaSync r;
        struct drsuapi_DsReplicaObjectIdentifier nc;
@@ -419,14 +380,14 @@ static BOOL test_DsReplicaSync(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                }
        };
 
-       if (!lp_parm_bool(-1, "torture", "dangerous", False)) {
+       if (!lp_parm_bool(global_loadparm, NULL, "torture", "dangerous", false)) {
                printf("DsReplicaSync disabled - enable dangerous tests to use\n");
-               return True;
+               return true;
        }
 
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
+       if (lp_parm_bool(global_loadparm, NULL, "torture", "samba4", false)) {
                printf("skipping DsReplicaSync test against Samba4\n");
-               return True;
+               return true;
        }
 
        ZERO_STRUCT(null_guid);
@@ -459,21 +420,21 @@ static BOOL test_DsReplicaSync(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
                        }
                        printf("dcerpc_drsuapi_DsReplicaSync failed - %s\n", errstr);
-                       ret = False;
+                       ret = false;
                } else if (!W_ERROR_IS_OK(r.out.result)) {
                        printf("DsReplicaSync failed - %s\n", win_errstr(r.out.result));
-                       ret = False;
+                       ret = false;
                }
        }
 
        return ret;
 }
 
-static BOOL test_DsReplicaUpdateRefs(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_DsReplicaUpdateRefs(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                        struct DsPrivate *priv)
 {
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        int i;
        struct drsuapi_DsReplicaUpdateRefs r;
        struct drsuapi_DsReplicaObjectIdentifier nc;
@@ -487,9 +448,9 @@ static BOOL test_DsReplicaUpdateRefs(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                }
        };
 
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
+       if (lp_parm_bool(global_loadparm, NULL, "torture", "samba4", false)) {
                printf("skipping DsReplicaUpdateRefs test against Samba4\n");
-               return True;
+               return true;
        }
 
        ZERO_STRUCT(null_guid);
@@ -523,21 +484,21 @@ static BOOL test_DsReplicaUpdateRefs(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
                        }
                        printf("dcerpc_drsuapi_DsReplicaUpdateRefs failed - %s\n", errstr);
-                       ret = False;
+                       ret = false;
                } else if (!W_ERROR_IS_OK(r.out.result)) {
                        printf("DsReplicaUpdateRefs failed - %s\n", win_errstr(r.out.result));
-                       ret = False;
+                       ret = false;
                }
        }
 
        return ret;
 }
 
-static BOOL test_DsGetNCChanges(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_DsGetNCChanges(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                        struct DsPrivate *priv)
 {
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        int i;
        struct drsuapi_DsGetNCChanges r;
        struct drsuapi_DsReplicaObjectIdentifier nc;
@@ -554,9 +515,9 @@ static BOOL test_DsGetNCChanges(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                }
        };
 
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
+       if (lp_parm_bool(global_loadparm, NULL, "torture", "samba4", false)) {
                printf("skipping DsGetNCChanges test against Samba4\n");
-               return True;
+               return true;
        }
 
        ZERO_STRUCT(null_guid);
@@ -583,7 +544,7 @@ static BOOL test_DsGetNCChanges(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        r.in.req.req5.highwatermark.highest_usn         = 0;
                        r.in.req.req5.uptodateness_vector               = NULL;
                        r.in.req.req5.replica_flags                     = 0;
-                       if (lp_parm_bool(-1, "drsuapi","compression", False)) {
+                       if (lp_parm_bool(global_loadparm, NULL, "drsuapi","compression", false)) {
                                r.in.req.req5.replica_flags             |= DRSUAPI_DS_REPLICA_NEIGHBOUR_COMPRESS_CHANGES;
                        }
                        r.in.req.req5.max_object_count                  = 0;
@@ -605,10 +566,10 @@ static BOOL test_DsGetNCChanges(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        r.in.req.req8.highwatermark.highest_usn         = 0;
                        r.in.req.req8.uptodateness_vector               = NULL;
                        r.in.req.req8.replica_flags                     = 0;
-                       if (lp_parm_bool(-1,"drsuapi","compression",False)) {
+                       if (lp_parm_bool(global_loadparm, NULL, "drsuapi", "compression", false)) {
                                r.in.req.req8.replica_flags             |= DRSUAPI_DS_REPLICA_NEIGHBOUR_COMPRESS_CHANGES;
                        }
-                       if (lp_parm_bool(-1,"drsuapi","neighbour_writeable",True)) {
+                       if (lp_parm_bool(global_loadparm, NULL, "drsuapi", "neighbour_writeable", true)) {
                                r.in.req.req8.replica_flags             |= DRSUAPI_DS_REPLICA_NEIGHBOUR_WRITEABLE;
                        }
                        r.in.req.req8.replica_flags                     |= DRSUAPI_DS_REPLICA_NEIGHBOUR_SYNC_ON_STARTUP
@@ -635,22 +596,22 @@ static BOOL test_DsGetNCChanges(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
                        }
                        printf("dcerpc_drsuapi_DsGetNCChanges failed - %s\n", errstr);
-                       ret = False;
+                       ret = false;
                } else if (!W_ERROR_IS_OK(r.out.result)) {
                        printf("DsGetNCChanges failed - %s\n", win_errstr(r.out.result));
-                       ret = False;
+                       ret = false;
                }
        }
 
        return ret;
 }
 
-BOOL test_QuerySitesByCost(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+bool test_QuerySitesByCost(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                           struct DsPrivate *priv)
 {
        NTSTATUS status;
        struct drsuapi_QuerySitesByCost r;
-       BOOL ret = True;
+       bool ret = true;
 
        const char *my_site = "Default-First-Site-Name";
        const char *remote_site1 = "smbtorture-nonexisting-site1";
@@ -672,10 +633,10 @@ BOOL test_QuerySitesByCost(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
                }
                printf("drsuapi_QuerySitesByCost - %s\n", errstr);
-               ret = False;
+               ret = false;
        } else if (!W_ERROR_IS_OK(r.out.result)) {
                printf("QuerySitesByCost failed - %s\n", win_errstr(r.out.result));
-               ret = False;
+               ret = false;
        }
 
        if (W_ERROR_IS_OK(r.out.result)) {
@@ -684,14 +645,14 @@ BOOL test_QuerySitesByCost(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                    !W_ERROR_EQUAL(r.out.ctr.ctr1.info[1].error_code, WERR_DS_OBJ_NOT_FOUND)) { 
                        printf("expected error_code WERR_DS_OBJ_NOT_FOUND, got %s\n", 
                                win_errstr(r.out.ctr.ctr1.info[0].error_code));
-                       ret = False;
+                       ret = false;
                }
 
                if ((r.out.ctr.ctr1.info[0].site_cost != (uint32_t) -1) ||
                    (r.out.ctr.ctr1.info[1].site_cost != (uint32_t) -1)) {
                        printf("expected site_cost %d, got %d\n", 
                                (uint32_t) -1, r.out.ctr.ctr1.info[0].site_cost);
-                       ret = False;
+                       ret = false;
                }
        }
 
@@ -700,12 +661,12 @@ BOOL test_QuerySitesByCost(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
 }
 
-BOOL test_DsUnbind(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+bool test_DsUnbind(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                   struct DsPrivate *priv)
 {
        NTSTATUS status;
        struct drsuapi_DsUnbind r;
-       BOOL ret = True;
+       bool ret = true;
 
        r.in.bind_handle = &priv->bind_handle;
        r.out.bind_handle = &priv->bind_handle;
@@ -719,34 +680,29 @@ BOOL test_DsUnbind(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
                }
                printf("dcerpc_drsuapi_DsUnbind failed - %s\n", errstr);
-               ret = False;
+               ret = false;
        } else if (!W_ERROR_IS_OK(r.out.result)) {
                printf("DsBind failed - %s\n", win_errstr(r.out.result));
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
-BOOL torture_rpc_drsuapi(struct torture_context *torture)
+bool torture_rpc_drsuapi(struct torture_context *torture)
 {
         NTSTATUS status;
         struct dcerpc_pipe *p;
-       TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
+       bool ret = true;
        struct DsPrivate priv;
        struct cli_credentials *machine_credentials;
 
-       mem_ctx = talloc_init("torture_rpc_drsuapi");
-
        ZERO_STRUCT(priv);
 
        priv.join = torture_join_domain(TEST_MACHINE_NAME, ACB_SVRTRUST, 
                                       &machine_credentials);
        if (!priv.join) {
-               talloc_free(mem_ctx);
-               printf("Failed to join as BDC\n");
-               return False;
+               torture_fail(torture, "Failed to join as BDC");
        }
 
        status = torture_rpc_connection(torture, 
@@ -754,31 +710,28 @@ BOOL torture_rpc_drsuapi(struct torture_context *torture)
                                        &ndr_table_drsuapi);
        if (!NT_STATUS_IS_OK(status)) {
                torture_leave_domain(priv.join);
-               talloc_free(mem_ctx);
-               return False;
+               torture_fail(torture, "Unable to connect to DRSUAPI pipe");
        }
 
-       ret &= test_DsBind(p, mem_ctx, &priv);
+       ret &= test_DsBind(p, torture, &priv);
 #if 0
-       ret &= test_QuerySitesByCost(p, mem_ctx, &priv);
+       ret &= test_QuerySitesByCost(p, torture, &priv);
 #endif
-       ret &= test_DsGetDomainControllerInfo(p, mem_ctx, &priv);
-
-       ret &= test_DsCrackNames(p, mem_ctx, &priv);
+       ret &= test_DsGetDomainControllerInfo(p, torture, &priv);
 
-       ret &= test_DsWriteAccountSpn(p, mem_ctx, &priv);
+       ret &= test_DsCrackNames(p, torture, &priv);
 
-       ret &= test_DsReplicaGetInfo(p, mem_ctx, &priv);
+       ret &= test_DsWriteAccountSpn(p, torture, &priv);
 
-       ret &= test_DsReplicaSync(p, mem_ctx, &priv);
+       ret &= test_DsReplicaGetInfo(p, torture, &priv);
 
-       ret &= test_DsReplicaUpdateRefs(p, mem_ctx, &priv);
+       ret &= test_DsReplicaSync(p, torture, &priv);
 
-       ret &= test_DsGetNCChanges(p, mem_ctx, &priv);
+       ret &= test_DsReplicaUpdateRefs(p, torture, &priv);
 
-       ret &= test_DsUnbind(p, mem_ctx, &priv);
+       ret &= test_DsGetNCChanges(p, torture, &priv);
 
-       talloc_free(mem_ctx);
+       ret &= test_DsUnbind(p, torture, &priv);
 
        torture_leave_domain(priv.join);
 
@@ -786,27 +739,22 @@ BOOL torture_rpc_drsuapi(struct torture_context *torture)
 }
 
 
-BOOL torture_rpc_drsuapi_cracknames(struct torture_context *torture)
+bool torture_rpc_drsuapi_cracknames(struct torture_context *torture)
 {
         NTSTATUS status;
         struct dcerpc_pipe *p;
-       TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
+       bool ret = true;
        struct DsPrivate priv;
        struct cli_credentials *machine_credentials;
 
-       mem_ctx = talloc_init("torture_rpc_drsuapi");
-
-       printf("Connected to DRAUAPI pipe\n");
+       torture_comment(torture, "Connected to DRSUAPI pipe\n");
 
        ZERO_STRUCT(priv);
 
        priv.join = torture_join_domain(TEST_MACHINE_NAME, ACB_SVRTRUST, 
                                       &machine_credentials);
        if (!priv.join) {
-               talloc_free(mem_ctx);
-               printf("Failed to join as BDC\n");
-               return False;
+               torture_fail(torture, "Failed to join as BDC\n");
        }
 
        status = torture_rpc_connection(torture, 
@@ -814,21 +762,19 @@ BOOL torture_rpc_drsuapi_cracknames(struct torture_context *torture)
                                        &ndr_table_drsuapi);
        if (!NT_STATUS_IS_OK(status)) {
                torture_leave_domain(priv.join);
-               talloc_free(mem_ctx);
-               return False;
+               torture_fail(torture, "Unable to connect to DRSUAPI pipe");
        }
 
-       ret &= test_DsBind(p, mem_ctx, &priv);
+       ret &= test_DsBind(p, torture, &priv);
 
        if (ret) {
                /* We don't care if this fails, we just need some info from it */
-               test_DsGetDomainControllerInfo(p, mem_ctx, &priv);
+               test_DsGetDomainControllerInfo(p, torture, &priv);
                
-               ret &= test_DsCrackNames(p, mem_ctx, &priv);
+               ret &= test_DsCrackNames(p, torture, &priv);
                
-               ret &= test_DsUnbind(p, mem_ctx, &priv);
+               ret &= test_DsUnbind(p, torture, &priv);
        }
-       talloc_free(mem_ctx);
 
        torture_leave_domain(priv.join);
 
index a29010f73bee7716aa486d93861af50face22e44..ac3eebfa68d113c016f85bc350b21b610d1484af 100644 (file)
 #include "torture/rpc/rpc.h"
 #include "ldb/include/ldb.h"
 #include "libcli/security/security.h"
+#include "param/param.h"
 
-static BOOL test_DsCrackNamesMatrix(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_DsCrackNamesMatrix(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                    struct DsPrivate *priv, const char *dn,
                                    const char *user_principal_name, const char *service_principal_name)
 {
        
 
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        struct drsuapi_DsCrackNames r;
        enum drsuapi_DsNameFormat formats[] = {
                DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
@@ -80,13 +81,13 @@ static BOOL test_DsCrackNamesMatrix(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                               names[0].str, r.in.req.req1.format_offered, r.in.req.req1.format_desired);
                
                        printf("dcerpc_drsuapi_DsCrackNames failed - %s\n", errstr);
-                       ret = False;
+                       ret = false;
                } else if (!W_ERROR_IS_OK(r.out.result)) {
                        printf("testing DsCrackNames (matrix prep) with name '%s' from format: %d desired format:%d ",
                               names[0].str, r.in.req.req1.format_offered, r.in.req.req1.format_desired);
                
                        printf("DsCrackNames failed - %s\n", win_errstr(r.out.result));
-                       ret = False;
+                       ret = false;
                }
                        
                if (!ret) {
@@ -97,7 +98,7 @@ static BOOL test_DsCrackNamesMatrix(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        if (r.out.ctr.ctr1->array[0].status != DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE) {
                                printf(__location__ ": Unexpected error (%d): This name lookup should fail\n", 
                                       r.out.ctr.ctr1->array[0].status);
-                               return False;
+                               return false;
                        }
                        printf ("(expected) error\n");
                        break;
@@ -105,7 +106,7 @@ static BOOL test_DsCrackNamesMatrix(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        if (r.out.ctr.ctr1->array[0].status != DRSUAPI_DS_NAME_STATUS_NO_MAPPING) {
                                printf(__location__ ": Unexpected error (%d): This name lookup should fail\n", 
                                       r.out.ctr.ctr1->array[0].status);
-                               return False;
+                               return false;
                        }
                        printf ("(expected) error\n");
                        break;
@@ -114,14 +115,14 @@ static BOOL test_DsCrackNamesMatrix(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        if (r.out.ctr.ctr1->array[0].status != DRSUAPI_DS_NAME_STATUS_RESOLVE_ERROR) {
                                printf(__location__ ": Unexpected error (%d): This name lookup should fail\n", 
                                       r.out.ctr.ctr1->array[0].status);
-                               return False;
+                               return false;
                        }
                        printf ("(expected) error\n");
                        break;
                default:
                        if (r.out.ctr.ctr1->array[0].status != DRSUAPI_DS_NAME_STATUS_OK) {
                                printf("Error: %d\n", r.out.ctr.ctr1->array[0].status);
-                               return False;
+                               return false;
                        }
                }
 
@@ -159,12 +160,12 @@ static BOOL test_DsCrackNamesMatrix(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                }
                                printf("testing DsCrackNames (matrix) with name '%s' from format: %d desired format:%d failed - %s",
                                       names[0].str, r.in.req.req1.format_offered, r.in.req.req1.format_desired, errstr);
-                               ret = False;
+                               ret = false;
                        } else if (!W_ERROR_IS_OK(r.out.result)) {
                                printf("testing DsCrackNames (matrix) with name '%s' from format: %d desired format:%d failed - %s",
                                       names[0].str, r.in.req.req1.format_offered, r.in.req.req1.format_desired, 
                                       win_errstr(r.out.result));
-                               ret = False;
+                               ret = false;
                        }
                        
                        if (!ret) {
@@ -190,26 +191,26 @@ static BOOL test_DsCrackNamesMatrix(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        } else if (n_matrix[i][j] == NULL && formats[j] == DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL) {
                        } else if (n_matrix[i][j] == NULL && n_from[j] != NULL) {
                                printf("dcerpc_drsuapi_DsCrackNames mismatch - from %d to %d: %s should be %s\n", formats[i], formats[j], n_matrix[i][j], n_from[j]);
-                               ret = False;
+                               ret = false;
                        } else if (n_matrix[i][j] != NULL && n_from[j] == NULL) {
                                printf("dcerpc_drsuapi_DsCrackNames mismatch - from %d to %d: %s should be %s\n", formats[i], formats[j], n_matrix[i][j], n_from[j]);
-                               ret = False;
+                               ret = false;
                        } else if (strcmp(n_matrix[i][j], n_from[j]) != 0) {
                                printf("dcerpc_drsuapi_DsCrackNames mismatch - from %d to %d: %s should be %s\n", formats[i], formats[j], n_matrix[i][j], n_from[j]);
-                               ret = False;
+                               ret = false;
                        }
                }
        }
        return ret;
 }
 
-BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+bool test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                              struct DsPrivate *priv)
 {
        NTSTATUS status;
        struct drsuapi_DsCrackNames r;
        struct drsuapi_DsNameString names[1];
-       BOOL ret = True;
+       bool ret = true;
        const char *dns_domain;
        const char *nt4_domain;
        const char *FQDN_1779_name;
@@ -253,13 +254,13 @@ BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
                }
                printf("dcerpc_drsuapi_DsCrackNames failed - %s\n", errstr);
-               ret = False;
+               ret = false;
        } else if (!W_ERROR_IS_OK(r.out.result)) {
                printf("DsCrackNames failed - %s\n", win_errstr(r.out.result));
-               ret = False;
+               ret = false;
        } else if (r.out.ctr.ctr1->array[0].status != DRSUAPI_DS_NAME_STATUS_OK) {
                printf("DsCrackNames failed on name - %d\n", r.out.ctr.ctr1->array[0].status);
-               ret = False;
+               ret = false;
        }
 
        if (!ret) {
@@ -281,13 +282,13 @@ BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
                }
                printf("dcerpc_drsuapi_DsCrackNames failed - %s\n", errstr);
-               ret = False;
+               ret = false;
        } else if (!W_ERROR_IS_OK(r.out.result)) {
                printf("DsCrackNames failed - %s\n", win_errstr(r.out.result));
-               ret = False;
+               ret = false;
        } else if (r.out.ctr.ctr1->array[0].status != DRSUAPI_DS_NAME_STATUS_OK) {
                printf("DsCrackNames failed on name - %d\n", r.out.ctr.ctr1->array[0].status);
-               ret = False;
+               ret = false;
        }
 
        if (!ret) {
@@ -310,13 +311,13 @@ BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
                }
                printf("dcerpc_drsuapi_DsCrackNames failed - %s\n", errstr);
-               ret = False;
+               ret = false;
        } else if (!W_ERROR_IS_OK(r.out.result)) {
                printf("DsCrackNames failed - %s\n", win_errstr(r.out.result));
-               ret = False;
+               ret = false;
        } else if (r.out.ctr.ctr1->array[0].status != DRSUAPI_DS_NAME_STATUS_OK) {
                printf("DsCrackNames failed on name - %d\n", r.out.ctr.ctr1->array[0].status);
-               ret = False;
+               ret = false;
        }
 
        if (!ret) {
@@ -334,7 +335,7 @@ BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                printf("local Round trip on canonical name failed: %s != %s!\n",
                       realm_canonical, 
                       talloc_asprintf(mem_ctx, "%s/", dns_domain));
-                   return False;
+                   return false;
        };
 
        realm_canonical_ex = ldb_dn_canonical_ex_string(mem_ctx, realm_dn);
@@ -344,7 +345,7 @@ BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                printf("local Round trip on canonical ex name failed: %s != %s!\n",
                       realm_canonical, 
                       talloc_asprintf(mem_ctx, "%s\n", dns_domain));
-                   return False;
+                   return false;
        };
 
        r.in.req.req1.format_offered    = DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT;
@@ -361,13 +362,13 @@ BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
                }
                printf("dcerpc_drsuapi_DsCrackNames failed - %s\n", errstr);
-               ret = False;
+               ret = false;
        } else if (!W_ERROR_IS_OK(r.out.result)) {
                printf("DsCrackNames failed - %s\n", win_errstr(r.out.result));
-               ret = False;
+               ret = false;
        } else if (r.out.ctr.ctr1->array[0].status != DRSUAPI_DS_NAME_STATUS_OK) {
                printf("DsCrackNames failed on name - %d\n", r.out.ctr.ctr1->array[0].status);
-               ret = False;
+               ret = false;
        }
 
        if (!ret) {
@@ -390,13 +391,13 @@ BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
                }
                printf("dcerpc_drsuapi_DsCrackNames failed - %s\n", errstr);
-               ret = False;
+               ret = false;
        } else if (!W_ERROR_IS_OK(r.out.result)) {
                printf("DsCrackNames failed - %s\n", win_errstr(r.out.result));
-               ret = False;
+               ret = false;
        } else if (r.out.ctr.ctr1->array[0].status != DRSUAPI_DS_NAME_STATUS_OK) {
                printf("DsCrackNames failed on name - %d\n", r.out.ctr.ctr1->array[0].status);
-               ret = False;
+               ret = false;
        }
 
        if (!ret) {
@@ -419,13 +420,13 @@ BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
                }
                printf("dcerpc_drsuapi_DsCrackNames failed - %s\n", errstr);
-               ret = False;
+               ret = false;
        } else if (!W_ERROR_IS_OK(r.out.result)) {
                printf("DsCrackNames failed - %s\n", win_errstr(r.out.result));
-               ret = False;
+               ret = false;
        } else if (r.out.ctr.ctr1->array[0].status != DRSUAPI_DS_NAME_STATUS_OK) {
                printf("DsCrackNames failed on name - %d\n", r.out.ctr.ctr1->array[0].status);
-               ret = False;
+               ret = false;
        }
 
        if (!ret) {
@@ -434,7 +435,7 @@ BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
        if (strcmp(priv->domain_dns_name, r.out.ctr.ctr1->array[0].dns_domain_name) != 0) {
                printf("DsCrackNames failed to return same DNS name - expected %s got %s\n", priv->domain_dns_name, r.out.ctr.ctr1->array[0].dns_domain_name);
-               return False;
+               return false;
        }
 
        FQDN_1779_dn = ldb_dn_new(mem_ctx, ldb, FQDN_1779_name);
@@ -462,7 +463,7 @@ BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        enum drsuapi_DsNameStatus status;
                        enum drsuapi_DsNameStatus alternate_status;
                        enum drsuapi_DsNameFlags flags;
-                       BOOL skip;
+                       bool skip;
                } crack[] = {
                        {
                                .format_offered = DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL,
@@ -588,7 +589,7 @@ BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                .comment = "display name for Microsoft Support Account",
                                .status = DRSUAPI_DS_NAME_STATUS_OK,
                                .alternate_status = DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE,
-                               .skip = lp_parm_bool(-1, "torture", "samba4", False)
+                               .skip = lp_parm_bool(global_loadparm, NULL, "torture", "samba4", false)
                        },
                        {
                                .format_offered = DRSUAPI_DS_NAME_FORMAT_GUID,
@@ -813,6 +814,27 @@ BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                .str = "BUILTIN\\",
                                .status = DRSUAPI_DS_NAME_STATUS_NOT_FOUND
                        }, 
+                       {
+                               .format_offered = DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT,
+                               .format_desired = DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
+                               .comment = "NT AUTHORITY\\ -> DN",
+                               .str = "NT AUTHORITY\\",
+                               .status = DRSUAPI_DS_NAME_STATUS_NOT_FOUND
+                       }, 
+                       {
+                               .format_offered = DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT,
+                               .format_desired = DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
+                               .comment = "NT AUTHORITY\\ANONYMOUS LOGON -> DN",
+                               .str = "NT AUTHORITY\\ANONYMOUS LOGON",
+                               .status = DRSUAPI_DS_NAME_STATUS_NOT_FOUND
+                       }, 
+                       {
+                               .format_offered = DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT,
+                               .format_desired = DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
+                               .comment = "NT AUTHORITY\\SYSTEM -> DN",
+                               .str = "NT AUTHORITY\\SYSTEM",
+                               .status = DRSUAPI_DS_NAME_STATUS_NOT_FOUND
+                       }, 
                        {
                                .format_offered = DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY,
                                .format_desired = DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT,
@@ -846,6 +868,20 @@ BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                .status = DRSUAPI_DS_NAME_STATUS_OK,
                                .alternate_status = DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE
                        },
+                       {
+                               .format_offered = DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY,
+                               .format_desired = DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT,
+                               .str = SID_NT_ANONYMOUS,
+                               .comment = "NT Anonymous SID -> NT4 Account",
+                               .status = DRSUAPI_DS_NAME_STATUS_NOT_FOUND
+                       },
+                       {
+                               .format_offered = DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY,
+                               .format_desired = DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT,
+                               .str = SID_NT_SYSTEM,
+                               .comment = "NT SYSTEM SID -> NT4 Account",
+                               .status = DRSUAPI_DS_NAME_STATUS_NOT_FOUND
+                       },
                        {
                                .format_offered = DRSUAPI_DS_NAME_FORMAT_SID_OR_SID_HISTORY,
                                .format_desired = DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
@@ -905,10 +941,10 @@ BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                        errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
                                }
                                printf("dcerpc_drsuapi_DsCrackNames failed on %s - %s\n", comment, errstr);
-                               ret = False;
+                               ret = false;
                        } else if (!W_ERROR_IS_OK(r.out.result)) {
                                printf("DsCrackNames failed - %s\n", win_errstr(r.out.result));
-                               ret = False;
+                               ret = false;
                        } else if (r.out.ctr.ctr1->array[0].status != crack[i].status) {
                                if (crack[i].alternate_status) {
                                        if (r.out.ctr.ctr1->array[0].status != crack[i].alternate_status) {
@@ -917,14 +953,14 @@ BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                                       crack[i].status,
                                                       crack[i].alternate_status,
                                                       comment);
-                                               ret = False;
+                                               ret = false;
                                        }
                                } else {
                                        printf("DsCrackNames unexpected status %d, wanted %d on: %s\n", 
                                               r.out.ctr.ctr1->array[0].status,
                                               crack[i].status,
                                               comment);
-                                       ret = False;
+                                       ret = false;
                                }
                        } else if (crack[i].expected_str
                                   && (strcmp(r.out.ctr.ctr1->array[0].result_name, 
@@ -934,7 +970,7 @@ BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                        printf("DsCrackNames failed - got %s, expected %s on %s\n", 
                                               r.out.ctr.ctr1->array[0].result_name, 
                                               crack[i].expected_str, comment);
-                                       ret = False;
+                                       ret = false;
                                } else {
                                        printf("(warning) DsCrackNames returned different case - got %s, expected %s on %s\n", 
                                               r.out.ctr.ctr1->array[0].result_name, 
@@ -946,14 +982,14 @@ BOOL test_DsCrackNames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                printf("DsCrackNames failed - got DNS name %s, expected %s on %s\n", 
                                       r.out.ctr.ctr1->array[0].result_name, 
                                       crack[i].expected_str, comment);
-                               ret = False;
+                               ret = false;
                        }
                }
        }
 
        if (!test_DsCrackNamesMatrix(p, mem_ctx, priv, FQDN_1779_name, 
                                     user_principal_name, service_principal_name)) {
-               ret = False;
+               ret = false;
        }
 
        return ret;
index c80e37eb7d612ce596cb909882118daab1ab0460..aa5f12eb92cd37e258f1a95567b21a59c6c09dbf 100644 (file)
 #include "torture/rpc/rpc.h"
 
 
-BOOL test_DsRoleGetPrimaryDomainInformation(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+bool test_DsRoleGetPrimaryDomainInformation_ext(struct torture_context *tctx, 
+                                               struct dcerpc_pipe *p,
+                                               NTSTATUS ext_status)
 {
        struct dssetup_DsRoleGetPrimaryDomainInformation r;
        NTSTATUS status;
-       BOOL ret = True;
        int i;
 
-       printf("\ntesting DsRoleGetPrimaryDomainInformation\n");
-
        for (i=DS_ROLE_BASIC_INFORMATION; i <= DS_ROLE_OP_STATUS; i++) {
                r.in.level = i;
+               torture_comment(tctx, "dcerpc_dssetup_DsRoleGetPrimaryDomainInformation level %d\n", i);
 
-               status = dcerpc_dssetup_DsRoleGetPrimaryDomainInformation(p, mem_ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       const char *errstr = nt_errstr(status);
-                       if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
-                               errstr = dcerpc_errstr(mem_ctx, p->last_fault_code);
-                       }
-                       printf("dcerpc_dssetup_DsRoleGetPrimaryDomainInformation level %d failed - %s\n",
-                               i, errstr);
-                       ret = False;
-               } else if (!W_ERROR_IS_OK(r.out.result)) {
-                       printf("DsRoleGetPrimaryDomainInformation level %d failed - %s\n",
-                               i, win_errstr(r.out.result));
-                       ret = False;
+               status = dcerpc_dssetup_DsRoleGetPrimaryDomainInformation(p, tctx, &r);
+               torture_assert_ntstatus_equal(tctx, ext_status, status, "DsRoleGetPrimaryDomainInformation failed");
+               if (NT_STATUS_IS_OK(ext_status)) {
+                       torture_assert_werr_ok(tctx, r.out.result, "DsRoleGetPrimaryDomainInformation failed");
                }
        }
 
-       return ret;
+       return true;
 }
 
-BOOL torture_rpc_dssetup(struct torture_context *torture)
+bool test_DsRoleGetPrimaryDomainInformation(struct torture_context *tctx, 
+                                           struct dcerpc_pipe *p)
 {
-        NTSTATUS status;
-        struct dcerpc_pipe *p;
-       TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
-
-       mem_ctx = talloc_init("torture_rpc_dssetup");
-
-       status = torture_rpc_connection(torture, &p, &ndr_table_dssetup);
-       if (!NT_STATUS_IS_OK(status)) {
-               talloc_free(mem_ctx);
-
-               return False;
-       }
+       return test_DsRoleGetPrimaryDomainInformation_ext(tctx, p, NT_STATUS_OK);
+}
 
-       ret &= test_DsRoleGetPrimaryDomainInformation(p, mem_ctx);
+struct torture_suite *torture_rpc_dssetup(TALLOC_CTX *mem_ctx)
+{
+       struct torture_suite *suite = torture_suite_create(mem_ctx, "DSSETUP");
+       struct torture_rpc_tcase *tcase = torture_suite_add_rpc_iface_tcase(suite, "dssetup", &ndr_table_dssetup);
 
-       talloc_free(mem_ctx);
+       torture_rpc_tcase_add_test(tcase, "DsRoleGetPrimaryDomainInformation", test_DsRoleGetPrimaryDomainInformation);
 
-       return ret;
+       return suite;
 }
index 6357fa9ee52ce7a4d6fefbdb481cdc6e8c540a56..15125ac365796f72349f09468126a3adbcb54606 100644 (file)
@@ -32,6 +32,7 @@
 #include "auth/credentials/credentials.h"
 #include "libcli/auth/libcli_auth.h"
 #include "auth/gensec/gensec.h"
+#include "param/param.h"
 
 struct DsSyncBindInfo {
        struct dcerpc_pipe *pipe;
@@ -83,7 +84,7 @@ static struct DsSyncTest *test_create_context(TALLOC_CTX *mem_ctx)
        struct DsSyncTest *ctx;
        struct drsuapi_DsBindInfo28 *our_bind_info28;
        struct drsuapi_DsBindInfoCtr *our_bind_info_ctr;
-       const char *binding = lp_parm_string(-1, "torture", "binding");
+       const char *binding = lp_parm_string(global_loadparm, NULL, "torture", "binding");
        ctx = talloc_zero(mem_ctx, struct DsSyncTest);
        if (!ctx) return NULL;
 
@@ -148,7 +149,7 @@ static struct DsSyncTest *test_create_context(TALLOC_CTX *mem_ctx)
        our_bind_info28->supported_extensions   |= DRSUAPI_SUPPORTED_EXTENSION_ADDENTRYREPLY_V3;
        our_bind_info28->supported_extensions   |= DRSUAPI_SUPPORTED_EXTENSION_GETCHGREPLY_V7;
        our_bind_info28->supported_extensions   |= DRSUAPI_SUPPORTED_EXTENSION_VERIFY_OBJECT;
-       if (lp_parm_bool(-1,"dssync","xpress",False)) {
+       if (lp_parm_bool(global_loadparm, NULL, "dssync", "xpress", false)) {
                our_bind_info28->supported_extensions   |= DRSUAPI_SUPPORTED_EXTENSION_XPRESS_COMPRESS;
        }
        our_bind_info28->site_guid              = GUID_zero();
@@ -172,10 +173,10 @@ static struct DsSyncTest *test_create_context(TALLOC_CTX *mem_ctx)
        return ctx;
 }
 
-static BOOL _test_DsBind(struct DsSyncTest *ctx, struct cli_credentials *credentials, struct DsSyncBindInfo *b)
+static bool _test_DsBind(struct DsSyncTest *ctx, struct cli_credentials *credentials, struct DsSyncBindInfo *b)
 {
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        struct event_context *event = NULL;
 
        status = dcerpc_pipe_connect_b(ctx,
@@ -185,7 +186,7 @@ static BOOL _test_DsBind(struct DsSyncTest *ctx, struct cli_credentials *credent
        
        if (!NT_STATUS_IS_OK(status)) {
                printf("Failed to connect to server as a BDC: %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        status = dcerpc_drsuapi_DsBind(b->pipe, ctx, &b->req);
@@ -195,10 +196,10 @@ static BOOL _test_DsBind(struct DsSyncTest *ctx, struct cli_credentials *credent
                        errstr = dcerpc_errstr(ctx, b->pipe->last_fault_code);
                }
                printf("dcerpc_drsuapi_DsBind failed - %s\n", errstr);
-               ret = False;
+               ret = false;
        } else if (!W_ERROR_IS_OK(b->req.out.result)) {
                printf("DsBind failed - %s\n", win_errstr(b->req.out.result));
-               ret = False;
+               ret = false;
        }
 
        ZERO_STRUCT(b->peer_bind_info28);
@@ -222,15 +223,15 @@ static BOOL _test_DsBind(struct DsSyncTest *ctx, struct cli_credentials *credent
        return ret;
 }
 
-static BOOL test_LDAPBind(struct DsSyncTest *ctx, struct cli_credentials *credentials, struct DsSyncLDAPInfo *l)
+static bool test_LDAPBind(struct DsSyncTest *ctx, struct cli_credentials *credentials, struct DsSyncLDAPInfo *l)
 {
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
 
        status = torture_ldap_connection(ctx, &l->conn, ctx->ldap_url);
        if (!NT_STATUS_IS_OK(status)) {
                printf("failed to connect to LDAP: %s\n", ctx->ldap_url);
-               return False;
+               return false;
        }
 
        printf("connected to LDAP: %s\n", ctx->ldap_url);
@@ -238,19 +239,19 @@ static BOOL test_LDAPBind(struct DsSyncTest *ctx, struct cli_credentials *creden
        status = torture_ldap_bind_sasl(l->conn, credentials);
        if (!NT_STATUS_IS_OK(status)) {
                printf("failed to bind to LDAP:\n");
-               return False;
+               return false;
        }
        printf("bound to LDAP.\n");
 
        return ret;
 }
 
-static BOOL test_GetInfo(struct DsSyncTest *ctx)
+static bool test_GetInfo(struct DsSyncTest *ctx)
 {
        NTSTATUS status;
        struct drsuapi_DsCrackNames r;
        struct drsuapi_DsNameString names[1];
-       BOOL ret = True;
+       bool ret = true;
 
        struct cldap_socket *cldap = cldap_socket_init(ctx, NULL);
        struct cldap_netlogon search;
@@ -264,7 +265,7 @@ static BOOL test_GetInfo(struct DsSyncTest *ctx)
        r.in.req.req1.format_flags      = DRSUAPI_DS_NAME_FLAG_NO_FLAGS;                
        r.in.req.req1.format_offered    = DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT;
        r.in.req.req1.format_desired    = DRSUAPI_DS_NAME_FORMAT_FQDN_1779;
-       names[0].str = talloc_asprintf(ctx, "%s\\", lp_workgroup());
+       names[0].str = talloc_asprintf(ctx, "%s\\", lp_workgroup(global_loadparm));
 
        status = dcerpc_drsuapi_DsCrackNames(ctx->admin.drsuapi.pipe, ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
@@ -273,10 +274,10 @@ static BOOL test_GetInfo(struct DsSyncTest *ctx)
                        errstr = dcerpc_errstr(ctx, ctx->admin.drsuapi.pipe->last_fault_code);
                }
                printf("dcerpc_drsuapi_DsCrackNames failed - %s\n", errstr);
-               return False;
+               return false;
        } else if (!W_ERROR_IS_OK(r.out.result)) {
                printf("DsCrackNames failed - %s\n", win_errstr(r.out.result));
-               return False;
+               return false;
        }
 
        ctx->domain_dn = r.out.ctr.ctr1->array[0].result_name;
@@ -419,17 +420,17 @@ static void test_analyse_objects(struct DsSyncTest *ctx,
        static uint32_t object_id;
        const char *save_values_dir;
 
-       if (!lp_parm_bool(-1,"dssync","print_pwd_blobs", false)) {
+       if (!lp_parm_bool(global_loadparm, NULL,"dssync","print_pwd_blobs", false)) {
                return; 
        }
 
-       save_values_dir = lp_parm_string(-1,"dssync","save_pwd_blobs_dir");
+       save_values_dir = lp_parm_string(global_loadparm, NULL, "dssync", "save_pwd_blobs_dir");
 
        for (; cur; cur = cur->next_object) {
                const char *dn;
                struct dom_sid *sid = NULL;
                uint32_t rid = 0;
-               BOOL dn_printed = False;
+               bool dn_printed = false;
                uint32_t i;
 
                if (!cur->object.identifier) continue;
@@ -503,7 +504,7 @@ static void test_analyse_objects(struct DsSyncTest *ctx,
                        if (!dn_printed) {
                                object_id++;
                                DEBUG(0,("DN[%u] %s\n", object_id, dn));
-                               dn_printed = True;
+                               dn_printed = true;
                        }
                        DEBUGADD(0,("ATTR: %s enc.length=%lu plain.length=%lu\n",
                                    name, (long)enc_data->length, (long)plain_data.length));
@@ -530,10 +531,10 @@ static void test_analyse_objects(struct DsSyncTest *ctx,
        }
 }
 
-static BOOL test_FetchData(struct DsSyncTest *ctx)
+static bool test_FetchData(struct DsSyncTest *ctx)
 {
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        int i, y = 0;
        uint64_t highest_usn = 0;
        const char *partition = NULL;
@@ -559,17 +560,17 @@ static BOOL test_FetchData(struct DsSyncTest *ctx)
        ZERO_STRUCT(null_guid);
        ZERO_STRUCT(null_sid);
 
-       partition = lp_parm_string(-1, "dssync", "partition");
+       partition = lp_parm_string(global_loadparm, NULL, "dssync", "partition");
        if (partition == NULL) {
                partition = ctx->domain_dn;
                printf("dssync:partition not specified, defaulting to %s.\n", ctx->domain_dn);
        }
 
-       highest_usn = lp_parm_int(-1, "dssync", "highest_usn", 0);
+       highest_usn = lp_parm_int(global_loadparm, NULL, "dssync", "highest_usn", 0);
 
-       array[0].level = lp_parm_int(-1, "dssync", "get_nc_changes_level", array[0].level);
+       array[0].level = lp_parm_int(global_loadparm, NULL, "dssync", "get_nc_changes_level", array[0].level);
 
-       if (lp_parm_bool(-1,"dssync","print_pwd_blobs",False)) {
+       if (lp_parm_bool(global_loadparm, NULL, "dssync", "print_pwd_blobs", false)) {
                const struct samr_Password *nthash;
                nthash = cli_credentials_get_nt_hash(ctx->new_dc.credentials, ctx);
                if (nthash) {
@@ -581,7 +582,7 @@ static BOOL test_FetchData(struct DsSyncTest *ctx)
                                    &gensec_skey);
        if (!NT_STATUS_IS_OK(status)) {
                printf("failed to get gensec session key: %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        for (i=0; i < ARRAY_SIZE(array); i++) {
@@ -605,10 +606,10 @@ static BOOL test_FetchData(struct DsSyncTest *ctx)
                        r.in.req.req5.highwatermark.highest_usn         = highest_usn;
                        r.in.req.req5.uptodateness_vector               = NULL;
                        r.in.req.req5.replica_flags                     = 0;
-                       if (lp_parm_bool(-1,"dssync","compression",False)) {
+                       if (lp_parm_bool(global_loadparm, NULL, "dssync", "compression", false)) {
                                r.in.req.req5.replica_flags             |= DRSUAPI_DS_REPLICA_NEIGHBOUR_COMPRESS_CHANGES;
                        }
-                       if (lp_parm_bool(-1,"dssync","neighbour_writeable",True)) {
+                       if (lp_parm_bool(global_loadparm, NULL, "dssync", "neighbour_writeable", true)) {
                                r.in.req.req5.replica_flags             |= DRSUAPI_DS_REPLICA_NEIGHBOUR_WRITEABLE;
                        }
                        r.in.req.req5.replica_flags                     |= DRSUAPI_DS_REPLICA_NEIGHBOUR_SYNC_ON_STARTUP
@@ -636,10 +637,10 @@ static BOOL test_FetchData(struct DsSyncTest *ctx)
                        r.in.req.req8.highwatermark.highest_usn         = highest_usn;
                        r.in.req.req8.uptodateness_vector               = NULL;
                        r.in.req.req8.replica_flags                     = 0;
-                       if (lp_parm_bool(-1,"dssync","compression",False)) {
+                       if (lp_parm_bool(global_loadparm, NULL, "dssync", "compression", false)) {
                                r.in.req.req8.replica_flags             |= DRSUAPI_DS_REPLICA_NEIGHBOUR_COMPRESS_CHANGES;
                        }
-                       if (lp_parm_bool(-1,"dssync","neighbour_writeable",True)) {
+                       if (lp_parm_bool(global_loadparm, NULL, "dssync", "neighbour_writeable", true)) {
                                r.in.req.req8.replica_flags             |= DRSUAPI_DS_REPLICA_NEIGHBOUR_WRITEABLE;
                        }
                        r.in.req.req8.replica_flags                     |= DRSUAPI_DS_REPLICA_NEIGHBOUR_SYNC_ON_STARTUP
@@ -685,16 +686,16 @@ static BOOL test_FetchData(struct DsSyncTest *ctx)
                                        errstr = dcerpc_errstr(ctx, ctx->new_dc.drsuapi.pipe->last_fault_code);
                                }
                                printf("dcerpc_drsuapi_DsGetNCChanges failed - %s\n", errstr);
-                               ret = False;
+                               ret = false;
                        } else if (!W_ERROR_IS_OK(r.out.result)) {
                                printf("DsGetNCChanges failed - %s\n", win_errstr(r.out.result));
-                               ret = False;
+                               ret = false;
                        }
 
-                       if (ret == True && *r.out.level == 1) {
+                       if (ret == true && *r.out.level == 1) {
                                out_level = 1;
                                ctr1 = &r.out.ctr.ctr1;
-                       } else if (ret == True && *r.out.level == 2) {
+                       } else if (ret == true && *r.out.level == 2) {
                                out_level = 1;
                                ctr1 = r.out.ctr.ctr2.ctr.mszip1.ctr1;
                        }
@@ -712,10 +713,10 @@ static BOOL test_FetchData(struct DsSyncTest *ctx)
                                }
                        }
 
-                       if (ret == True && *r.out.level == 6) {
+                       if (ret == true && *r.out.level == 6) {
                                out_level = 6;
                                ctr6 = &r.out.ctr.ctr6;
-                       } else if (ret == True && *r.out.level == 7
+                       } else if (ret == true && *r.out.level == 7
                                   && r.out.ctr.ctr7.level == 6
                                   && r.out.ctr.ctr7.type == DRSUAPI_COMPRESSION_TYPE_MSZIP) {
                                out_level = 6;
@@ -742,10 +743,10 @@ static BOOL test_FetchData(struct DsSyncTest *ctx)
        return ret;
 }
 
-static BOOL test_FetchNT4Data(struct DsSyncTest *ctx)
+static bool test_FetchNT4Data(struct DsSyncTest *ctx)
 {
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        struct drsuapi_DsGetNT4ChangeLog r;
        struct GUID null_guid;
        struct dom_sid null_sid;
@@ -759,8 +760,8 @@ static BOOL test_FetchNT4Data(struct DsSyncTest *ctx)
        r.in.bind_handle        = &ctx->new_dc.drsuapi.bind_handle;
        r.in.level              = 1;
 
-       r.in.req.req1.unknown1  = lp_parm_int(-1, "dssync", "nt4-1", 3);
-       r.in.req.req1.unknown2  = lp_parm_int(-1, "dssync", "nt4-2", 0x00004000);
+       r.in.req.req1.unknown1  = lp_parm_int(global_loadparm, NULL, "dssync", "nt4-1", 3);
+       r.in.req.req1.unknown2  = lp_parm_int(global_loadparm, NULL, "dssync", "nt4-2", 0x00004000);
 
        while (1) {
                r.in.req.req1.length    = cookie.length;
@@ -773,16 +774,16 @@ static BOOL test_FetchNT4Data(struct DsSyncTest *ctx)
                                errstr = dcerpc_errstr(ctx, ctx->new_dc.drsuapi.pipe->last_fault_code);
                        }
                        printf("dcerpc_drsuapi_DsGetNT4ChangeLog failed - %s\n", errstr);
-                       ret = False;
+                       ret = false;
                } else if (W_ERROR_EQUAL(r.out.result, WERR_INVALID_DOMAIN_ROLE)) {
                        printf("DsGetNT4ChangeLog not supported by target server\n");
                        break;
                } else if (!W_ERROR_IS_OK(r.out.result)) {
                        printf("DsGetNT4ChangeLog failed - %s\n", win_errstr(r.out.result));
-                       ret = False;
+                       ret = false;
                } else if (r.out.level != 1) {
                        printf("DsGetNT4ChangeLog unknown level - %u\n", r.out.level);
-                       ret = False;
+                       ret = false;
                } else if (NT_STATUS_IS_OK(r.out.info.info1.status)) {
                } else if (NT_STATUS_EQUAL(r.out.info.info1.status, STATUS_MORE_ENTRIES)) {
                        cookie.length   = r.out.info.info1.length1;
@@ -790,7 +791,7 @@ static BOOL test_FetchNT4Data(struct DsSyncTest *ctx)
                        continue;
                } else {
                        printf("DsGetNT4ChangeLog failed - %s\n", nt_errstr(r.out.info.info1.status));
-                       ret = False;
+                       ret = false;
                }
 
                break;
@@ -799,9 +800,9 @@ static BOOL test_FetchNT4Data(struct DsSyncTest *ctx)
        return ret;
 }
 
-BOOL torture_rpc_dssync(struct torture_context *torture)
+bool torture_rpc_dssync(struct torture_context *torture)
 {
-       BOOL ret = True;
+       bool ret = true;
        TALLOC_CTX *mem_ctx;
        struct DsSyncTest *ctx;
        
index edc35c0aa746a494d2fbf9fab5205a151143c32f..5c027d32990debd5cb5ba0b817973fd2ee091536 100644 (file)
@@ -78,8 +78,8 @@ static bool test_echodata(struct torture_context *tctx,
                len = 1 + (random() % 5000);
        }
 
-       data_in = talloc_size(tctx, len);
-       data_out = talloc_size(tctx, len);
+       data_in = talloc_array(tctx, uint8_t, len);
+       data_out = talloc_array(tctx, uint8_t, len);
        for (i=0;i<len;i++) {
                data_in[i] = i;
        }
@@ -159,7 +159,7 @@ static bool test_sinkdata(struct torture_context *tctx,
                len = 200000 + (random() % 5000);
        }
 
-       data_in = talloc_size(tctx, len);
+       data_in = talloc_array(tctx, uint8_t, len);
        for (i=0;i<len;i++) {
                data_in[i] = i+1;
        }
@@ -230,7 +230,7 @@ static bool test_sleep(struct torture_context *tctx,
 #define ASYNC_COUNT 3
        struct rpc_request *req[ASYNC_COUNT];
        struct echo_TestSleep r[ASYNC_COUNT];
-       BOOL done[ASYNC_COUNT];
+       bool done[ASYNC_COUNT];
        struct timeval snd[ASYNC_COUNT];
        struct timeval rcv[ASYNC_COUNT];
        struct timeval diff[ASYNC_COUNT];
@@ -240,10 +240,10 @@ static bool test_sleep(struct torture_context *tctx,
        if (torture_setting_bool(tctx, "quick", false)) {
                torture_skip(tctx, "TestSleep disabled - use \"torture:quick=no\" to enable\n");
        }
-       torture_comment(tctx, "Testing TestSleep - use \"torture:quick=no\" to disable\n");
+       torture_comment(tctx, "Testing TestSleep - use \"torture:quick=yes\" to disable\n");
 
        for (i=0;i<ASYNC_COUNT;i++) {
-               done[i]         = False;
+               done[i]         = false;
                snd[i]          = timeval_current();
                rcv[i]          = timeval_zero();
                r[i].in.seconds = ASYNC_COUNT-i;
@@ -256,15 +256,15 @@ static bool test_sleep(struct torture_context *tctx,
                torture_assert(tctx, event_loop_once(ctx) == 0, 
                                           "Event context loop failed");
                for (i=0;i<ASYNC_COUNT;i++) {
-                       if (done[i] == False && req[i]->state == RPC_REQUEST_DONE) {
+                       if (done[i] == false && req[i]->state == RPC_REQUEST_DONE) {
                                int rounded_tdiff;
                                total_done++;
-                               done[i] = True;
+                               done[i] = true;
                                rcv[i]  = timeval_current();
                                diff[i] = timeval_until(&snd[i], &rcv[i]);
                                rounded_tdiff = (int)(0.5 + diff[i].tv_sec + (1.0e-6*diff[i].tv_usec));
                                status  = dcerpc_ndr_request_recv(req[i]);
-                               printf("rounded_tdiff=%d\n", rounded_tdiff);
+                               torture_comment(tctx, "rounded_tdiff=%d\n", rounded_tdiff);
                                torture_assert_ntstatus_ok(tctx, status, 
                                                        talloc_asprintf(tctx, "TestSleep(%d) failed", i));
                                torture_assert(tctx, r[i].out.result == r[i].in.seconds,
@@ -287,7 +287,7 @@ static bool test_sleep(struct torture_context *tctx,
                        }
                }
        }
-       printf("\n");
+       torture_comment(tctx, "\n");
        return true;
 }
 
@@ -393,7 +393,7 @@ static bool test_timeout(struct torture_context *tctx,
                torture_comment(tctx, "Failed to send async sleep request\n");
                goto failed;
        }
-       req->ignore_timeout = True;
+       req->ignore_timeout = true;
 
        status  = dcerpc_ndr_request_recv(req);
        torture_assert_ntstatus_equal(tctx, status, NT_STATUS_IO_TIMEOUT, 
@@ -412,7 +412,7 @@ static bool test_timeout(struct torture_context *tctx,
                torture_comment(tctx, "Failed to send async sleep request\n");
                goto failed;
        }
-       req->ignore_timeout = True;
+       req->ignore_timeout = true;
        status  = dcerpc_ndr_request_recv(req);
        torture_assert_ntstatus_equal(tctx, status, NT_STATUS_IO_TIMEOUT, 
                "request should have timed out");
@@ -427,10 +427,10 @@ failed:
 }
 
 
-struct torture_suite *torture_rpc_echo(void)
+struct torture_suite *torture_rpc_echo(TALLOC_CTX *mem_ctx)
 {
        struct torture_suite *suite = torture_suite_create(
-               talloc_autofree_context(), "ECHO");
+               mem_ctx, "ECHO");
        struct torture_rpc_tcase *tcase;
 
        tcase = torture_suite_add_rpc_iface_tcase(suite, "echo", 
index f6f8e66369ff46f2ed43288bbc2c70e691f6cedd..830b77aed97855804a4c8a0ed10c9d1ba4651cfa 100644 (file)
@@ -39,7 +39,7 @@ static void display_tower(TALLOC_CTX *mem_ctx, struct epm_tower *twr)
 }
 
 
-static BOOL test_Map(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_Map(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                     struct epm_twr_t *twr)
 {
        NTSTATUS status;
@@ -131,7 +131,7 @@ static BOOL test_Map(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
        /* FIXME: Extend to do other protocols as well (ncacn_unix_stream, ncalrpc) */
        
-       return True;
+       return true;
 }
 
 static bool test_Lookup(struct torture_context *tctx, 
@@ -186,7 +186,7 @@ static bool test_Lookup(struct torture_context *tctx,
        return true;
 }
 
-static BOOL test_Delete(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct epm_entry_t *entries)
+static bool test_Delete(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct epm_entry_t *entries)
 {
        NTSTATUS status;
        struct epm_Delete r;
@@ -197,15 +197,15 @@ static BOOL test_Delete(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct epm_e
        status = dcerpc_epm_Delete(p, mem_ctx, &r);
        if (NT_STATUS_IS_ERR(status)) {
                printf("Delete failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        if (r.out.result != 0) {
                printf("Delete failed - %d\n", r.out.result);
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 static bool test_Insert(struct torture_context *tctx, 
index 1c72625f734b546e687ead6107fc3eb6993b0c45..c1d863454cd3f86f83c9804f925a1fb84ef62379 100644 (file)
@@ -125,7 +125,7 @@ static bool test_ReadEventLog(struct torture_context *tctx,
                /* Now read the actual record */
 
                r.in.number_of_bytes = *r.out.real_size;
-               r.out.data = talloc_size(tctx, r.in.number_of_bytes);
+               r.out.data = talloc_array(tctx, uint8_t, r.in.number_of_bytes);
 
                status = dcerpc_eventlog_ReadEventLogW(p, tctx, &r);
 
@@ -192,10 +192,6 @@ static bool test_ClearEventLog(struct torture_context *tctx,
        struct eventlog_CloseEventLog cr;
        struct policy_handle handle;
 
-       if (!torture_setting_bool(tctx, "dangerous", false)) {
-               torture_skip(tctx, "ClearEventLog test disabled - enable dangerous tests to use");
-       }
-
        if (!get_policy_handle(tctx, p, &handle))
                return false;
 
@@ -233,17 +229,20 @@ static bool test_OpenEventLog(struct torture_context *tctx,
        return true;
 }
 
-struct torture_suite *torture_rpc_eventlog(void)
+struct torture_suite *torture_rpc_eventlog(TALLOC_CTX *mem_ctx)
 {
        struct torture_suite *suite;
        struct torture_rpc_tcase *tcase;
+       struct torture_test *test;
 
-       suite = torture_suite_create(talloc_autofree_context(), "EVENTLOG");
+       suite = torture_suite_create(mem_ctx, "EVENTLOG");
        tcase = torture_suite_add_rpc_iface_tcase(suite, "eventlog", 
                                                  &ndr_table_eventlog);
 
        torture_rpc_tcase_add_test(tcase, "OpenEventLog", test_OpenEventLog);
-       torture_rpc_tcase_add_test(tcase, "ClearEventLog", test_ClearEventLog);
+       test = torture_rpc_tcase_add_test(tcase, "ClearEventLog", 
+                                         test_ClearEventLog);
+       test->dangerous = true;
        torture_rpc_tcase_add_test(tcase, "GetNumRecords", test_GetNumRecords);
        torture_rpc_tcase_add_test(tcase, "ReadEventLog", test_ReadEventLog);
        torture_rpc_tcase_add_test(tcase, "FlushEventLog", test_FlushEventLog);
index 77b86ea3a115edd442bcc0881acc040846e3e569..9f6f1735ee8aad7ae84f67ee7cb127f763bc0808 100644 (file)
@@ -51,16 +51,12 @@ static bool test_Abort(struct torture_context *tctx,
 }
 
 static bool test_Init(struct torture_context *tctx, 
-                                         struct dcerpc_pipe *p)
+                     struct dcerpc_pipe *p)
 {
        struct initshutdown_Init r;
        NTSTATUS status;
        uint16_t hostname = 0x0;
 
-       if (!torture_setting_bool(tctx, "dangerous", false))
-               torture_skip(tctx, 
-                       "initshutdown tests disabled - enable dangerous tests to use");
-       
        r.in.hostname = &hostname;
        r.in.message = talloc(tctx, struct initshutdown_String);
        init_initshutdown_String(tctx, r.in.message, "spottyfood");
@@ -83,10 +79,6 @@ static bool test_InitEx(struct torture_context *tctx,
        NTSTATUS status;
        uint16_t hostname = 0x0;
 
-       if (!torture_setting_bool(tctx, "dangerous", false))
-               torture_skip(tctx, 
-                       "initshutdown tests disabled - enable dangerous tests to use");
-       
        r.in.hostname = &hostname;
        r.in.message = talloc(tctx, struct initshutdown_String);
        init_initshutdown_String(tctx, r.in.message, "spottyfood");
@@ -109,12 +101,15 @@ struct torture_suite *torture_rpc_initshutdown(TALLOC_CTX *mem_ctx)
 {
        struct torture_suite *suite = torture_suite_create(mem_ctx, "INITSHUTDOWN");
        struct torture_rpc_tcase *tcase;
+       struct torture_test *test;
 
        tcase = torture_suite_add_rpc_iface_tcase(suite, "initshutdown", 
-                                                                                         &ndr_table_initshutdown);
+                                                 &ndr_table_initshutdown);
 
-       torture_rpc_tcase_add_test(tcase, "Init", test_Init);
-       torture_rpc_tcase_add_test(tcase, "InitEx", test_InitEx);
+       test = torture_rpc_tcase_add_test(tcase, "Init", test_Init);
+       test->dangerous = true;
+       test = torture_rpc_tcase_add_test(tcase, "InitEx", test_InitEx);
+       test->dangerous = true;
 
        return suite;
 }
index 23c43c525ed808ad723430a6b88ade40e4536139..d0ad97110a28576f2940851fb10b6664874df794 100644 (file)
@@ -8,7 +8,7 @@
 #define TORTURE_NETBIOS_NAME "smbtorturejoin"
 
 
-BOOL torture_rpc_join(struct torture_context *torture)
+bool torture_rpc_join(struct torture_context *torture)
 {
        NTSTATUS status;
        struct test_join *tj;
@@ -24,7 +24,7 @@ BOOL torture_rpc_join(struct torture_context *torture)
        if (!tj) {
                DEBUG(0, ("%s failed to join domain as workstation\n",
                          TORTURE_NETBIOS_NAME));
-               return False;
+               return false;
        }
 
        status = smbcli_full_connection(tj, &cli, host,
@@ -34,7 +34,7 @@ BOOL torture_rpc_join(struct torture_context *torture)
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0, ("%s failed to connect to IPC$ with workstation credentials\n",
                          TORTURE_NETBIOS_NAME));
-               return False;   
+               return false;   
        }
        smbcli_tdis(cli);
         
@@ -48,7 +48,7 @@ BOOL torture_rpc_join(struct torture_context *torture)
        if (!tj) {
                DEBUG(0, ("%s failed to join domain as domain controller\n",
                          TORTURE_NETBIOS_NAME));
-               return False;
+               return false;
        }
 
        status = smbcli_full_connection(tj, &cli, host,
@@ -58,7 +58,7 @@ BOOL torture_rpc_join(struct torture_context *torture)
        if (!NT_STATUS_IS_OK(status)) {
                DEBUG(0, ("%s failed to connect to IPC$ with workstation credentials\n",
                          TORTURE_NETBIOS_NAME));
-               return False;   
+               return false;   
        }
 
        smbcli_tdis(cli);
@@ -66,6 +66,6 @@ BOOL torture_rpc_join(struct torture_context *torture)
        /* Leave domain. */
        torture_leave_domain(tj);
 
-       return True;
+       return true;
 }
 
index cfdf483f8d613cf4e90b827cabd3dde5510e0de4..1250743955e75ea70c27e6d474b8337c87bd5741 100644 (file)
 #include "libcli/security/security.h"
 #include "libcli/auth/libcli_auth.h"
 #include "torture/rpc/rpc.h"
+#include "param/param.h"
 
 static void init_lsa_String(struct lsa_String *name, const char *s)
 {
        name->string = s;
 }
 
-static BOOL test_OpenPolicy(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_OpenPolicy(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
 {
        struct lsa_ObjectAttribute attr;
        struct policy_handle handle;
@@ -66,17 +67,17 @@ static BOOL test_OpenPolicy(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
                if (NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED) ||
                    NT_STATUS_EQUAL(status, NT_STATUS_RPC_PROTSEQ_NOT_SUPPORTED)) {
                        printf("not considering %s to be an error\n", nt_errstr(status));
-                       return True;
+                       return true;
                }
                printf("OpenPolicy failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 
-BOOL test_lsa_OpenPolicy2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+bool test_lsa_OpenPolicy2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                          struct policy_handle **handle)
 {
        struct lsa_ObjectAttribute attr;
@@ -88,7 +89,7 @@ BOOL test_lsa_OpenPolicy2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
        *handle = talloc(mem_ctx, struct policy_handle);
        if (!*handle) {
-               return False;
+               return false;
        }
 
        qos.len = 0;
@@ -115,19 +116,19 @@ BOOL test_lsa_OpenPolicy2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        printf("not considering %s to be an error\n", nt_errstr(status));
                        talloc_free(*handle);
                        *handle = NULL;
-                       return True;
+                       return true;
                }
                printf("OpenPolicy2 failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_LookupNames(struct dcerpc_pipe *p, 
+static bool test_LookupNames(struct dcerpc_pipe *p, 
                            TALLOC_CTX *mem_ctx, 
                            struct policy_handle *handle,
-                           struct lsa_TransNameArray *tnames)
+                            struct lsa_TransNameArray *tnames)
 {
        struct lsa_LookupNames r;
        struct lsa_TransSidArray sids;
@@ -156,17 +157,106 @@ static BOOL test_LookupNames(struct dcerpc_pipe *p,
        r.out.sids = &sids;
 
        status = dcerpc_lsa_LookupNames(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status) && !NT_STATUS_EQUAL(status, STATUS_SOME_UNMAPPED)) {
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("LookupNames failed - %s\n", nt_errstr(status));
+               return false;
+       }
+
+       printf("\n");
+
+       return true;
+}
+
+static bool test_LookupNames_bogus(struct dcerpc_pipe *p, 
+                           TALLOC_CTX *mem_ctx, 
+                           struct policy_handle *handle)
+{
+       struct lsa_LookupNames r;
+       struct lsa_TransSidArray sids;
+       struct lsa_String *names;
+       uint32_t count = 0;
+       NTSTATUS status;
+       int i;
+
+       struct lsa_TranslatedName name;
+       struct lsa_TransNameArray tnames;
+
+       tnames.names = &name;
+       tnames.count = 1;
+       name.name.string = "NT AUTHORITY\\BOGUS";
+
+       printf("\nTesting LookupNames with bogus names\n");
+
+       sids.count = 0;
+       sids.sids = NULL;
+
+       names = talloc_array(mem_ctx, struct lsa_String, tnames.count);
+       for (i=0;i<tnames.count;i++) {
+               init_lsa_String(&names[i], tnames.names[i].name.string);
+       }
+
+       r.in.handle = handle;
+       r.in.num_names = tnames.count;
+       r.in.names = names;
+       r.in.sids = &sids;
+       r.in.level = 1;
+       r.in.count = &count;
+       r.out.count = &count;
+       r.out.sids = &sids;
+
+       status = dcerpc_lsa_LookupNames(p, mem_ctx, &r);
+       if (!NT_STATUS_EQUAL(status, NT_STATUS_NONE_MAPPED)) {
                printf("LookupNames failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        printf("\n");
 
-       return True;
+       return true;
 }
 
-static BOOL test_LookupNames2(struct dcerpc_pipe *p, 
+static bool test_LookupNames_wellknown(struct dcerpc_pipe *p, 
+                                      TALLOC_CTX *mem_ctx, 
+                                      struct policy_handle *handle)
+{
+       struct lsa_TranslatedName name;
+       struct lsa_TransNameArray tnames;
+       bool ret = true;
+
+       printf("Testing LookupNames with well known names\n");
+
+       tnames.names = &name;
+       tnames.count = 1;
+       name.name.string = "NT AUTHORITY\\SYSTEM";
+       ret &= test_LookupNames(p, mem_ctx, handle, &tnames);
+
+       name.name.string = "NT AUTHORITY\\ANONYMOUS LOGON";
+       ret &= test_LookupNames(p, mem_ctx, handle, &tnames);
+
+       name.name.string = "NT AUTHORITY\\Authenticated Users";
+       ret &= test_LookupNames(p, mem_ctx, handle, &tnames);
+
+       name.name.string = "NT AUTHORITY";
+       ret &= test_LookupNames(p, mem_ctx, handle, &tnames);
+
+       name.name.string = "NT AUTHORITY\\";
+       ret &= test_LookupNames(p, mem_ctx, handle, &tnames);
+
+       name.name.string = "BUILTIN\\";
+       ret &= test_LookupNames(p, mem_ctx, handle, &tnames);
+
+       name.name.string = "BUILTIN\\Administrators";
+       ret &= test_LookupNames(p, mem_ctx, handle, &tnames);
+
+       name.name.string = "SYSTEM";
+       ret &= test_LookupNames(p, mem_ctx, handle, &tnames);
+
+       name.name.string = "Everyone";
+       ret &= test_LookupNames(p, mem_ctx, handle, &tnames);
+       return ret;
+}
+
+static bool test_LookupNames2(struct dcerpc_pipe *p, 
                              TALLOC_CTX *mem_ctx, 
                              struct policy_handle *handle,
                              struct lsa_TransNameArray2 *tnames)
@@ -200,18 +290,18 @@ static BOOL test_LookupNames2(struct dcerpc_pipe *p,
        r.out.sids = &sids;
 
        status = dcerpc_lsa_LookupNames2(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status) && !NT_STATUS_EQUAL(status, STATUS_SOME_UNMAPPED)) {
+       if (!NT_STATUS_IS_OK(status)) {
                printf("LookupNames2 failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        printf("\n");
 
-       return True;
+       return true;
 }
 
 
-static BOOL test_LookupNames3(struct dcerpc_pipe *p, 
+static bool test_LookupNames3(struct dcerpc_pipe *p, 
                              TALLOC_CTX *mem_ctx, 
                              struct policy_handle *handle,
                              struct lsa_TransNameArray2 *tnames)
@@ -245,17 +335,17 @@ static BOOL test_LookupNames3(struct dcerpc_pipe *p,
        r.out.sids = &sids;
 
        status = dcerpc_lsa_LookupNames3(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status) && !NT_STATUS_EQUAL(status, STATUS_SOME_UNMAPPED)) {
+       if (!NT_STATUS_IS_OK(status)) {
                printf("LookupNames3 failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        printf("\n");
 
-       return True;
+       return true;
 }
 
-static BOOL test_LookupNames4(struct dcerpc_pipe *p, 
+static bool test_LookupNames4(struct dcerpc_pipe *p, 
                              TALLOC_CTX *mem_ctx, 
                              struct lsa_TransNameArray2 *tnames)
 {
@@ -287,18 +377,18 @@ static BOOL test_LookupNames4(struct dcerpc_pipe *p,
        r.out.sids = &sids;
 
        status = dcerpc_lsa_LookupNames4(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status) && !NT_STATUS_EQUAL(status, STATUS_SOME_UNMAPPED)) {
+       if (!NT_STATUS_IS_OK(status)) {
                printf("LookupNames4 failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        printf("\n");
 
-       return True;
+       return true;
 }
 
 
-static BOOL test_LookupSids(struct dcerpc_pipe *p, 
+static bool test_LookupSids(struct dcerpc_pipe *p, 
                            TALLOC_CTX *mem_ctx, 
                            struct policy_handle *handle,
                            struct lsa_SidArray *sids)
@@ -322,22 +412,22 @@ static BOOL test_LookupSids(struct dcerpc_pipe *p,
        r.out.names = &names;
 
        status = dcerpc_lsa_LookupSids(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status) && !NT_STATUS_EQUAL(status, STATUS_SOME_UNMAPPED)) {
+       if (!NT_STATUS_IS_OK(status)) {
                printf("LookupSids failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        printf("\n");
 
        if (!test_LookupNames(p, mem_ctx, handle, &names)) {
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 
-static BOOL test_LookupSids2(struct dcerpc_pipe *p, 
+static bool test_LookupSids2(struct dcerpc_pipe *p, 
                            TALLOC_CTX *mem_ctx, 
                            struct policy_handle *handle,
                            struct lsa_SidArray *sids)
@@ -363,25 +453,25 @@ static BOOL test_LookupSids2(struct dcerpc_pipe *p,
        r.out.names = &names;
 
        status = dcerpc_lsa_LookupSids2(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status) && !NT_STATUS_EQUAL(status, STATUS_SOME_UNMAPPED)) {
+       if (!NT_STATUS_IS_OK(status)) {
                printf("LookupSids2 failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        printf("\n");
 
        if (!test_LookupNames2(p, mem_ctx, handle, &names)) {
-               return False;
+               return false;
        }
 
        if (!test_LookupNames3(p, mem_ctx, handle, &names)) {
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_LookupSids3(struct dcerpc_pipe *p, 
+static bool test_LookupSids3(struct dcerpc_pipe *p, 
                            TALLOC_CTX *mem_ctx, 
                            struct lsa_SidArray *sids)
 {
@@ -405,27 +495,27 @@ static BOOL test_LookupSids3(struct dcerpc_pipe *p,
        r.out.names = &names;
 
        status = dcerpc_lsa_LookupSids3(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status) && !NT_STATUS_EQUAL(status, STATUS_SOME_UNMAPPED)) {
+       if (!NT_STATUS_IS_OK(status)) {
                if (NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED) ||
                    NT_STATUS_EQUAL(status, NT_STATUS_RPC_PROTSEQ_NOT_SUPPORTED)) {
                        printf("not considering %s to be an error\n", nt_errstr(status));
-                       return True;
+                       return true;
                }
                printf("LookupSids3 failed - %s - not considered an error\n", 
                       nt_errstr(status));
-               return False;
+               return false;
        }
 
        printf("\n");
 
        if (!test_LookupNames4(p, mem_ctx, &names)) {
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-BOOL test_many_LookupSids(struct dcerpc_pipe *p, 
+bool test_many_LookupSids(struct dcerpc_pipe *p, 
                          TALLOC_CTX *mem_ctx, 
                          struct policy_handle *handle)
 {
@@ -462,16 +552,15 @@ BOOL test_many_LookupSids(struct dcerpc_pipe *p,
                r.out.names = &names;
                
                status = dcerpc_lsa_LookupSids(p, mem_ctx, &r);
-               if (!NT_STATUS_IS_OK(status) &&
-                   !NT_STATUS_EQUAL(status, STATUS_SOME_UNMAPPED)) {
+               if (!NT_STATUS_IS_OK(status)) {
                        printf("LookupSids failed - %s\n", nt_errstr(status));
-                       return False;
+                       return false;
                }
                
                printf("\n");
                
                if (!test_LookupNames(p, mem_ctx, handle, &names)) {
-                       return False;
+                       return false;
                }
        } else {
                struct lsa_LookupSids3 r;
@@ -492,18 +581,18 @@ BOOL test_many_LookupSids(struct dcerpc_pipe *p,
                r.out.names = &names;
                
                status = dcerpc_lsa_LookupSids3(p, mem_ctx, &r);
-               if (!NT_STATUS_IS_OK(status) && !NT_STATUS_EQUAL(status, STATUS_SOME_UNMAPPED)) {
+               if (!NT_STATUS_IS_OK(status)) {
                        if (NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED) ||
                            NT_STATUS_EQUAL(status, NT_STATUS_RPC_PROTSEQ_NOT_SUPPORTED)) {
                                printf("not considering %s to be an error\n", nt_errstr(status));
-                               return True;
+                               return true;
                        }
                        printf("LookupSids3 failed - %s\n", 
                               nt_errstr(status));
-                       return False;
+                       return false;
                }
                if (!test_LookupNames4(p, mem_ctx, &names)) {
-                       return False;
+                       return false;
                }
        }
 
@@ -511,7 +600,7 @@ BOOL test_many_LookupSids(struct dcerpc_pipe *p,
 
 
 
-       return True;
+       return true;
 }
 
 static void lookupsids_cb(struct rpc_request *req)
@@ -530,7 +619,7 @@ static void lookupsids_cb(struct rpc_request *req)
        }
 }
 
-static BOOL test_LookupSids_async(struct dcerpc_pipe *p, 
+static bool test_LookupSids_async(struct dcerpc_pipe *p, 
                                  TALLOC_CTX *mem_ctx, 
                                  struct policy_handle *handle)
 {
@@ -541,7 +630,7 @@ static BOOL test_LookupSids_async(struct dcerpc_pipe *p,
        struct lsa_LookupSids *r;
        struct rpc_request **req;
        int i, replies;
-       BOOL ret = True;
+       bool ret = true;
        const int num_async_requests = 50;
 
        count = talloc_array(mem_ctx, uint32_t, num_async_requests);
@@ -573,7 +662,7 @@ static BOOL test_LookupSids_async(struct dcerpc_pipe *p,
                
                req[i] = dcerpc_lsa_LookupSids_send(p, req, &r[i]);
                if (req[i] == NULL) {
-                       ret = False;
+                       ret = false;
                        break;
                }
 
@@ -588,13 +677,13 @@ static BOOL test_LookupSids_async(struct dcerpc_pipe *p,
        talloc_free(req);
 
        if (replies < 0) {
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
-static BOOL test_LookupPrivValue(struct dcerpc_pipe *p, 
+static bool test_LookupPrivValue(struct dcerpc_pipe *p, 
                                 TALLOC_CTX *mem_ctx, 
                                 struct policy_handle *handle,
                                 struct lsa_String *name)
@@ -610,13 +699,13 @@ static BOOL test_LookupPrivValue(struct dcerpc_pipe *p,
        status = dcerpc_lsa_LookupPrivValue(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("\nLookupPrivValue failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_LookupPrivName(struct dcerpc_pipe *p, 
+static bool test_LookupPrivName(struct dcerpc_pipe *p, 
                                TALLOC_CTX *mem_ctx, 
                                struct policy_handle *handle,
                                struct lsa_LUID *luid)
@@ -630,13 +719,13 @@ static BOOL test_LookupPrivName(struct dcerpc_pipe *p,
        status = dcerpc_lsa_LookupPrivName(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("\nLookupPrivName failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_RemovePrivilegesFromAccount(struct dcerpc_pipe *p, 
+static bool test_RemovePrivilegesFromAccount(struct dcerpc_pipe *p, 
                                             TALLOC_CTX *mem_ctx,                                 
                                             struct policy_handle *acct_handle,
                                             struct lsa_LUID *luid)
@@ -644,7 +733,7 @@ static BOOL test_RemovePrivilegesFromAccount(struct dcerpc_pipe *p,
        NTSTATUS status;
        struct lsa_RemovePrivilegesFromAccount r;
        struct lsa_PrivilegeSet privs;
-       BOOL ret = True;
+       bool ret = true;
 
        printf("Testing RemovePrivilegesFromAccount\n");
 
@@ -661,13 +750,13 @@ static BOOL test_RemovePrivilegesFromAccount(struct dcerpc_pipe *p,
        status = dcerpc_lsa_RemovePrivilegesFromAccount(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("RemovePrivilegesFromAccount failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        return ret;
 }
 
-static BOOL test_AddPrivilegesToAccount(struct dcerpc_pipe *p, 
+static bool test_AddPrivilegesToAccount(struct dcerpc_pipe *p, 
                                        TALLOC_CTX *mem_ctx,                              
                                        struct policy_handle *acct_handle,
                                        struct lsa_LUID *luid)
@@ -675,7 +764,7 @@ static BOOL test_AddPrivilegesToAccount(struct dcerpc_pipe *p,
        NTSTATUS status;
        struct lsa_AddPrivilegesToAccount r;
        struct lsa_PrivilegeSet privs;
-       BOOL ret = True;
+       bool ret = true;
 
        printf("Testing AddPrivilegesToAccount\n");
 
@@ -691,20 +780,20 @@ static BOOL test_AddPrivilegesToAccount(struct dcerpc_pipe *p,
        status = dcerpc_lsa_AddPrivilegesToAccount(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("AddPrivilegesToAccount failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        return ret;
 }
 
-static BOOL test_EnumPrivsAccount(struct dcerpc_pipe *p, 
+static bool test_EnumPrivsAccount(struct dcerpc_pipe *p, 
                                  TALLOC_CTX *mem_ctx,                            
                                  struct policy_handle *handle,
                                  struct policy_handle *acct_handle)
 {
        NTSTATUS status;
        struct lsa_EnumPrivsAccount r;
-       BOOL ret = True;
+       bool ret = true;
 
        printf("Testing EnumPrivsAccount\n");
 
@@ -713,7 +802,7 @@ static BOOL test_EnumPrivsAccount(struct dcerpc_pipe *p,
        status = dcerpc_lsa_EnumPrivsAccount(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("EnumPrivsAccount failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        if (r.out.privs && r.out.privs->count > 0) {
@@ -732,7 +821,7 @@ static BOOL test_EnumPrivsAccount(struct dcerpc_pipe *p,
        return ret;
 }
 
-static BOOL test_Delete(struct dcerpc_pipe *p, 
+static bool test_Delete(struct dcerpc_pipe *p, 
                       TALLOC_CTX *mem_ctx, 
                       struct policy_handle *handle)
 {
@@ -745,14 +834,14 @@ static BOOL test_Delete(struct dcerpc_pipe *p,
        status = dcerpc_lsa_Delete(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Delete failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 
-static BOOL test_CreateAccount(struct dcerpc_pipe *p, 
+static bool test_CreateAccount(struct dcerpc_pipe *p, 
                               TALLOC_CTX *mem_ctx, 
                               struct policy_handle *handle)
 {
@@ -773,17 +862,17 @@ static BOOL test_CreateAccount(struct dcerpc_pipe *p,
        status = dcerpc_lsa_CreateAccount(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("CreateAccount failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        if (!test_Delete(p, mem_ctx, &acct_handle)) {
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_DeleteTrustedDomain(struct dcerpc_pipe *p, 
+static bool test_DeleteTrustedDomain(struct dcerpc_pipe *p, 
                                     TALLOC_CTX *mem_ctx, 
                                     struct policy_handle *handle,
                                     struct lsa_StringLarge name)
@@ -800,17 +889,17 @@ static BOOL test_DeleteTrustedDomain(struct dcerpc_pipe *p,
        status = dcerpc_lsa_OpenTrustedDomainByName(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("lsa_OpenTrustedDomainByName failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        if (!test_Delete(p, mem_ctx, &trustdom_handle)) {
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_DeleteTrustedDomainBySid(struct dcerpc_pipe *p, 
+static bool test_DeleteTrustedDomainBySid(struct dcerpc_pipe *p, 
                                          TALLOC_CTX *mem_ctx, 
                                          struct policy_handle *handle,
                                          struct dom_sid *sid)
@@ -824,14 +913,14 @@ static BOOL test_DeleteTrustedDomainBySid(struct dcerpc_pipe *p,
        status = dcerpc_lsa_DeleteTrustedDomain(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("lsa_DeleteTrustedDomain failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 
-static BOOL test_CreateSecret(struct dcerpc_pipe *p, 
+static bool test_CreateSecret(struct dcerpc_pipe *p, 
                              TALLOC_CTX *mem_ctx, 
                              struct policy_handle *handle)
 {
@@ -850,7 +939,7 @@ static BOOL test_CreateSecret(struct dcerpc_pipe *p,
        struct lsa_DATA_BUF_PTR bufp1;
        struct lsa_DATA_BUF_PTR bufp2;
        DATA_BLOB enc_key;
-       BOOL ret = True;
+       bool ret = true;
        DATA_BLOB session_key;
        NTTIME old_mtime, new_mtime;
        DATA_BLOB blob1, blob2;
@@ -880,7 +969,7 @@ static BOOL test_CreateSecret(struct dcerpc_pipe *p,
                status = dcerpc_lsa_CreateSecret(p, mem_ctx, &r);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("CreateSecret failed - %s\n", nt_errstr(status));
-                       return False;
+                       return false;
                }
                
                r.in.handle = handle;
@@ -890,7 +979,7 @@ static BOOL test_CreateSecret(struct dcerpc_pipe *p,
                status = dcerpc_lsa_CreateSecret(p, mem_ctx, &r);
                if (!NT_STATUS_EQUAL(status, NT_STATUS_OBJECT_NAME_COLLISION)) {
                        printf("CreateSecret should have failed OBJECT_NAME_COLLISION - %s\n", nt_errstr(status));
-                       return False;
+                       return false;
                }
                
                r2.in.handle = handle;
@@ -903,13 +992,13 @@ static BOOL test_CreateSecret(struct dcerpc_pipe *p,
                status = dcerpc_lsa_OpenSecret(p, mem_ctx, &r2);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("OpenSecret failed - %s\n", nt_errstr(status));
-                       return False;
+                       return false;
                }
                
                status = dcerpc_fetch_session_key(p, &session_key);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("dcerpc_fetch_session_key failed - %s\n", nt_errstr(status));
-                       return False;
+                       return false;
                }
                
                enc_key = sess_encrypt_string(secret1, &session_key);
@@ -926,7 +1015,7 @@ static BOOL test_CreateSecret(struct dcerpc_pipe *p,
                status = dcerpc_lsa_SetSecret(p, mem_ctx, &r3);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("SetSecret failed - %s\n", nt_errstr(status));
-                       return False;
+                       return false;
                }
                
                r3.in.sec_handle = &sec_handle;
@@ -944,7 +1033,7 @@ static BOOL test_CreateSecret(struct dcerpc_pipe *p,
                status = dcerpc_lsa_SetSecret(p, mem_ctx, &r3);
                if (!NT_STATUS_EQUAL(status, NT_STATUS_UNKNOWN_REVISION)) {
                        printf("SetSecret should have failed UNKNOWN_REVISION - %s\n", nt_errstr(status));
-                       ret = False;
+                       ret = false;
                }
                
                data_blob_free(&enc_key);
@@ -965,11 +1054,11 @@ static BOOL test_CreateSecret(struct dcerpc_pipe *p,
                status = dcerpc_lsa_QuerySecret(p, mem_ctx, &r4);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("QuerySecret failed - %s\n", nt_errstr(status));
-                       ret = False;
+                       ret = false;
                } else {
                        if (r4.out.new_val == NULL || r4.out.new_val->buf == NULL) {
                                printf("No secret buffer returned\n");
-                               ret = False;
+                               ret = false;
                        } else {
                                blob1.data = r4.out.new_val->buf->data;
                                blob1.length = r4.out.new_val->buf->size;
@@ -982,7 +1071,7 @@ static BOOL test_CreateSecret(struct dcerpc_pipe *p,
                                if (strcmp(secret1, secret2) != 0) {
                                        printf("Returned secret '%s' doesn't match '%s'\n", 
                                               secret2, secret1);
-                                       ret = False;
+                                       ret = false;
                                }
                        }
                }
@@ -1001,7 +1090,7 @@ static BOOL test_CreateSecret(struct dcerpc_pipe *p,
                status = dcerpc_lsa_SetSecret(p, mem_ctx, &r5);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("SetSecret failed - %s\n", nt_errstr(status));
-                       ret = False;
+                       ret = false;
                }
                
                data_blob_free(&enc_key);
@@ -1022,14 +1111,14 @@ static BOOL test_CreateSecret(struct dcerpc_pipe *p,
                status = dcerpc_lsa_QuerySecret(p, mem_ctx, &r6);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("QuerySecret failed - %s\n", nt_errstr(status));
-                       ret = False;
+                       ret = false;
                        secret4 = NULL;
                } else {
 
                        if (r6.out.new_val->buf == NULL || r6.out.old_val->buf == NULL 
                                || r6.out.new_mtime == NULL || r6.out.old_mtime == NULL) {
                                printf("Both secret buffers and both times not returned\n");
-                               ret = False;
+                               ret = false;
                                secret4 = NULL;
                        } else {
                                blob1.data = r6.out.new_val->buf->data;
@@ -1042,7 +1131,7 @@ static BOOL test_CreateSecret(struct dcerpc_pipe *p,
                                
                                if (strcmp(secret3, secret4) != 0) {
                                        printf("Returned NEW secret %s doesn't match %s\n", secret4, secret3);
-                                       ret = False;
+                                       ret = false;
                                }
 
                                blob1.data = r6.out.old_val->buf->data;
@@ -1055,14 +1144,14 @@ static BOOL test_CreateSecret(struct dcerpc_pipe *p,
                                
                                if (strcmp(secret1, secret2) != 0) {
                                        printf("Returned OLD secret %s doesn't match %s\n", secret2, secret1);
-                                       ret = False;
+                                       ret = false;
                                }
                                
                                if (*r6.out.new_mtime == *r6.out.old_mtime) {
                                        printf("Returned secret %s had same mtime for both secrets: %s\n", 
                                               secname[i],
                                               nt_time_string(mem_ctx, *r6.out.new_mtime));
-                                       ret = False;
+                                       ret = false;
                                }
                        }
                }
@@ -1081,7 +1170,7 @@ static BOOL test_CreateSecret(struct dcerpc_pipe *p,
                status = dcerpc_lsa_SetSecret(p, mem_ctx, &r7);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("SetSecret failed - %s\n", nt_errstr(status));
-                       ret = False;
+                       ret = false;
                }
                
                data_blob_free(&enc_key);
@@ -1099,26 +1188,26 @@ static BOOL test_CreateSecret(struct dcerpc_pipe *p,
                status = dcerpc_lsa_QuerySecret(p, mem_ctx, &r8);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("QuerySecret failed - %s\n", nt_errstr(status));
-                       ret = False;
+                       ret = false;
                } else {
                        if (!r8.out.new_val || !r8.out.old_val) {
                                printf("in/out pointers not returned, despite being set on in for QuerySecret\n");
-                               ret = False;
+                               ret = false;
                        } else if (r8.out.new_val->buf == NULL) {
                                if (i != LOCAL) { 
                                        printf("NEW secret buffer not returned after GLOBAL OLD set\n");
-                                       ret = False;
+                                       ret = false;
                                }
                        } else if (r8.out.old_val->buf == NULL) {
                                printf("OLD secret buffer not returned after OLD set\n");
-                               ret = False;
+                               ret = false;
                        } else if (r8.out.new_mtime == NULL || r8.out.old_mtime == NULL) {
                                printf("Both times not returned after OLD set\n");
-                               ret = False;
+                               ret = false;
                        } else {
                                if (i == LOCAL) { 
                                        printf("NEW secret buffer should not be returned after LOCAL OLD set\n");
-                                       ret = False;
+                                       ret = false;
                                }
                                blob1.data = r8.out.new_val->buf->data;
                                blob1.length = r8.out.new_val->buf->length;
@@ -1130,7 +1219,7 @@ static BOOL test_CreateSecret(struct dcerpc_pipe *p,
                                
                                if (strcmp(secret3, secret4) != 0) {
                                        printf("Returned NEW secret '%s' doesn't match '%s'\n", secret4, secret3);
-                                       ret = False;
+                                       ret = false;
                                }
 
                                blob1.data = r8.out.old_val->buf->data;
@@ -1143,7 +1232,7 @@ static BOOL test_CreateSecret(struct dcerpc_pipe *p,
                                
                                if (strcmp(secret5, secret6) != 0) {
                                        printf("Returned OLD secret %s doesn't match %s\n", secret5, secret6);
-                                       ret = False;
+                                       ret = false;
                                }
                                
                                if (*r8.out.new_mtime == *r8.out.old_mtime) {
@@ -1151,27 +1240,27 @@ static BOOL test_CreateSecret(struct dcerpc_pipe *p,
                                                printf("Returned secret %s had same mtime for both secrets: %s\n", 
                                                       secname[i],
                                                       nt_time_string(mem_ctx, *r8.out.new_mtime));
-                                               ret = False;
+                                               ret = false;
                                        }
                                } else {
                                        printf("Returned secret %s should have had same mtime for both secrets: %s != %s\n", 
                                               secname[i],
                                               nt_time_string(mem_ctx, *r8.out.old_mtime),
                                               nt_time_string(mem_ctx, *r8.out.new_mtime));
-                                       ret = False;
+                                       ret = false;
                                }
                        }
                }
 
                if (!test_Delete(p, mem_ctx, &sec_handle)) {
-                       ret = False;
+                       ret = false;
                }
                
                d.in.handle = &sec_handle2;
                status = dcerpc_lsa_Delete(p, mem_ctx, &d);
                if (!NT_STATUS_EQUAL(status, NT_STATUS_INVALID_HANDLE)) {
                        printf("Second delete expected INVALID_HANDLE - %s\n", nt_errstr(status));
-                       ret = False;
+                       ret = false;
                } else {
 
                        printf("Testing OpenSecret of just-deleted secret\n");
@@ -1179,7 +1268,7 @@ static BOOL test_CreateSecret(struct dcerpc_pipe *p,
                        status = dcerpc_lsa_OpenSecret(p, mem_ctx, &r2);
                        if (!NT_STATUS_EQUAL(status, NT_STATUS_OBJECT_NAME_NOT_FOUND)) {
                                printf("OpenSecret expected OBJECT_NAME_NOT_FOUND - %s\n", nt_errstr(status));
-                               ret = False;
+                               ret = false;
                        }
                }
                
@@ -1189,7 +1278,7 @@ static BOOL test_CreateSecret(struct dcerpc_pipe *p,
 }
 
 
-static BOOL test_EnumAccountRights(struct dcerpc_pipe *p, 
+static bool test_EnumAccountRights(struct dcerpc_pipe *p, 
                                   TALLOC_CTX *mem_ctx, 
                                   struct policy_handle *acct_handle,
                                   struct dom_sid *sid)
@@ -1208,14 +1297,14 @@ static BOOL test_EnumAccountRights(struct dcerpc_pipe *p,
        if (!NT_STATUS_IS_OK(status)) {
                printf("EnumAccountRights of %s failed - %s\n", 
                       dom_sid_string(mem_ctx, sid), nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 
-static BOOL test_QuerySecurity(struct dcerpc_pipe *p, 
+static bool test_QuerySecurity(struct dcerpc_pipe *p, 
                             TALLOC_CTX *mem_ctx, 
                             struct policy_handle *handle,
                             struct policy_handle *acct_handle)
@@ -1223,9 +1312,9 @@ static BOOL test_QuerySecurity(struct dcerpc_pipe *p,
        NTSTATUS status;
        struct lsa_QuerySecurity r;
 
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
+       if (lp_parm_bool(global_loadparm, NULL, "torture", "samba4", false)) {
                printf("skipping QuerySecurity test against Samba4\n");
-               return True;
+               return true;
        }
 
        printf("Testing QuerySecurity\n");
@@ -1236,13 +1325,13 @@ static BOOL test_QuerySecurity(struct dcerpc_pipe *p,
        status = dcerpc_lsa_QuerySecurity(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("QuerySecurity failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_OpenAccount(struct dcerpc_pipe *p, 
+static bool test_OpenAccount(struct dcerpc_pipe *p, 
                             TALLOC_CTX *mem_ctx, 
                             struct policy_handle *handle,
                             struct dom_sid *sid)
@@ -1261,21 +1350,21 @@ static BOOL test_OpenAccount(struct dcerpc_pipe *p,
        status = dcerpc_lsa_OpenAccount(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("OpenAccount failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        if (!test_EnumPrivsAccount(p, mem_ctx, handle, &acct_handle)) {
-               return False;
+               return false;
        }
 
        if (!test_QuerySecurity(p, mem_ctx, handle, &acct_handle)) {
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_EnumAccounts(struct dcerpc_pipe *p, 
+static bool test_EnumAccounts(struct dcerpc_pipe *p, 
                          TALLOC_CTX *mem_ctx, 
                          struct policy_handle *handle)
 {
@@ -1284,7 +1373,7 @@ static BOOL test_EnumAccounts(struct dcerpc_pipe *p,
        struct lsa_SidArray sids1, sids2;
        uint32_t resume_handle = 0;
        int i;
-       BOOL ret = True;
+       bool ret = true;
 
        printf("\ntesting EnumAccounts\n");
 
@@ -1295,26 +1384,26 @@ static BOOL test_EnumAccounts(struct dcerpc_pipe *p,
        r.out.sids = &sids1;
 
        resume_handle = 0;
-       while (True) {
+       while (true) {
                status = dcerpc_lsa_EnumAccounts(p, mem_ctx, &r);
                if (NT_STATUS_EQUAL(status, NT_STATUS_NO_MORE_ENTRIES)) {
                        break;
                }
                if (!NT_STATUS_IS_OK(status)) {
                        printf("EnumAccounts failed - %s\n", nt_errstr(status));
-                       return False;
+                       return false;
                }
 
                if (!test_LookupSids(p, mem_ctx, handle, &sids1)) {
-                       return False;
+                       return false;
                }
 
                if (!test_LookupSids2(p, mem_ctx, handle, &sids1)) {
-                       return False;
+                       return false;
                }
 
                if (!test_LookupSids3(p, mem_ctx, &sids1)) {
-                       return False;
+                       return false;
                }
 
                printf("testing all accounts\n");
@@ -1337,18 +1426,18 @@ static BOOL test_EnumAccounts(struct dcerpc_pipe *p,
        status = dcerpc_lsa_EnumAccounts(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("EnumAccounts failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        if (sids2.num_sids != 1) {
                printf("Returned wrong number of entries (%d)\n", sids2.num_sids);
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_LookupPrivDisplayName(struct dcerpc_pipe *p,
+static bool test_LookupPrivDisplayName(struct dcerpc_pipe *p,
                                TALLOC_CTX *mem_ctx,
                                struct policy_handle *handle,
                                struct lsa_String *priv_name)
@@ -1370,16 +1459,16 @@ static BOOL test_LookupPrivDisplayName(struct dcerpc_pipe *p,
        status = dcerpc_lsa_LookupPrivDisplayName(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("LookupPrivDisplayName failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
        printf("%s -> \"%s\"  (language 0x%x/0x%x)\n", 
               priv_name->string, r.out.disp_name->string, 
               *r.in.language_id, *r.out.language_id);
 
-       return True;
+       return true;
 }
 
-static BOOL test_EnumAccountsWithUserRight(struct dcerpc_pipe *p, 
+static bool test_EnumAccountsWithUserRight(struct dcerpc_pipe *p, 
                                TALLOC_CTX *mem_ctx,
                                struct policy_handle *handle,
                                struct lsa_String *priv_name)
@@ -1400,19 +1489,19 @@ static BOOL test_EnumAccountsWithUserRight(struct dcerpc_pipe *p,
 
        /* NT_STATUS_NO_MORE_ENTRIES means noone has this privilege */
        if (NT_STATUS_EQUAL(status, NT_STATUS_NO_MORE_ENTRIES)) {
-               return True;
+               return true;
        }
 
        if (!NT_STATUS_IS_OK(status)) {
                printf("EnumAccountsWithUserRight failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
        
-       return True;
+       return true;
 }
 
 
-static BOOL test_EnumPrivs(struct dcerpc_pipe *p, 
+static bool test_EnumPrivs(struct dcerpc_pipe *p, 
                           TALLOC_CTX *mem_ctx, 
                           struct policy_handle *handle)
 {
@@ -1421,7 +1510,7 @@ static BOOL test_EnumPrivs(struct dcerpc_pipe *p,
        struct lsa_PrivArray privs1;
        uint32_t resume_handle = 0;
        int i;
-       BOOL ret = True;
+       bool ret = true;
 
        printf("\ntesting EnumPrivs\n");
 
@@ -1435,26 +1524,26 @@ static BOOL test_EnumPrivs(struct dcerpc_pipe *p,
        status = dcerpc_lsa_EnumPrivs(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("EnumPrivs failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        for (i = 0; i< privs1.count; i++) {
                test_LookupPrivDisplayName(p, mem_ctx, handle, (struct lsa_String *)&privs1.privs[i].name);
                test_LookupPrivValue(p, mem_ctx, handle, (struct lsa_String *)&privs1.privs[i].name);
                if (!test_EnumAccountsWithUserRight(p, mem_ctx, handle, (struct lsa_String *)&privs1.privs[i].name)) {
-                       ret = False;
+                       ret = false;
                }
        }
 
        return ret;
 }
 
-static BOOL test_QueryForestTrustInformation(struct dcerpc_pipe *p, 
+static bool test_QueryForestTrustInformation(struct dcerpc_pipe *p, 
                                             TALLOC_CTX *mem_ctx, 
                                             struct policy_handle *handle,
                                             const char *trusted_domain_name)
 {
-       BOOL ret = True;
+       bool ret = true;
        struct lsa_lsaRQueryForestTrustInformation r;
        NTSTATUS status;
        struct lsa_String string;
@@ -1462,9 +1551,9 @@ static BOOL test_QueryForestTrustInformation(struct dcerpc_pipe *p,
 
        printf("\nTesting lsaRQueryForestTrustInformation\n");
 
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
+       if (lp_parm_bool(global_loadparm, NULL, "torture", "samba4", false)) {
                printf("skipping QueryForestTrustInformation against Samba4\n");
-               return True;
+               return true;
        }
 
        ZERO_STRUCT(string);
@@ -1484,19 +1573,19 @@ static BOOL test_QueryForestTrustInformation(struct dcerpc_pipe *p,
 
        if (!NT_STATUS_IS_OK(status)) {
                printf("lsaRQueryForestTrustInformation failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
-static BOOL test_query_each_TrustDomEx(struct dcerpc_pipe *p, 
+static bool test_query_each_TrustDomEx(struct dcerpc_pipe *p, 
                                       TALLOC_CTX *mem_ctx, 
                                       struct policy_handle *handle, 
                                       struct lsa_DomainListEx *domains) 
 {
        int i;
-       BOOL ret = True;
+       bool ret = true;
 
        for (i=0; i< domains->count; i++) {
 
@@ -1509,14 +1598,14 @@ static BOOL test_query_each_TrustDomEx(struct dcerpc_pipe *p,
        return ret;
 }
 
-static BOOL test_query_each_TrustDom(struct dcerpc_pipe *p, 
+static bool test_query_each_TrustDom(struct dcerpc_pipe *p, 
                                     TALLOC_CTX *mem_ctx, 
                                     struct policy_handle *handle, 
                                     struct lsa_DomainList *domains) 
 {
        NTSTATUS status;
        int i,j;
-       BOOL ret = True;
+       bool ret = true;
                
        printf("\nTesting OpenTrustedDomain, OpenTrustedDomainByName and QueryInfoTrustedDomain\n");
        for (i=0; i< domains->count; i++) {
@@ -1539,7 +1628,7 @@ static BOOL test_query_each_TrustDom(struct dcerpc_pipe *p,
                        
                        if (!NT_STATUS_IS_OK(status)) {
                                printf("OpenTrustedDomain failed - %s\n", nt_errstr(status));
-                               return False;
+                               return false;
                        }
                        
                        c.in.handle = &trustdom_handle;
@@ -1558,18 +1647,18 @@ static BOOL test_query_each_TrustDom(struct dcerpc_pipe *p,
                                if (!NT_STATUS_IS_OK(status) && ok[j]) {
                                        printf("QueryTrustedDomainInfo level %d failed - %s\n", 
                                               levels[j], nt_errstr(status));
-                                       ret = False;
+                                       ret = false;
                                } else if (NT_STATUS_IS_OK(status) && !ok[j]) {
                                        printf("QueryTrustedDomainInfo level %d unexpectedly succeeded - %s\n", 
                                               levels[j], nt_errstr(status));
-                                       ret = False;
+                                       ret = false;
                                }
                        }
                        
                        status = dcerpc_lsa_CloseTrustedDomainEx(p, mem_ctx, &c_trust);
                        if (!NT_STATUS_EQUAL(status, NT_STATUS_NOT_IMPLEMENTED)) {
                                printf("Expected CloseTrustedDomainEx to return NT_STATUS_NOT_IMPLEMENTED, instead - %s\n", nt_errstr(status));
-                               return False;
+                               return false;
                        }
                        
                        c.in.handle = &trustdom_handle;
@@ -1578,7 +1667,7 @@ static BOOL test_query_each_TrustDom(struct dcerpc_pipe *p,
                        status = dcerpc_lsa_Close(p, mem_ctx, &c);
                        if (!NT_STATUS_IS_OK(status)) {
                                printf("Close of trusted domain failed - %s\n", nt_errstr(status));
-                               return False;
+                               return false;
                        }
 
                        for (j=0; j < ARRAY_SIZE(levels); j++) {
@@ -1597,11 +1686,11 @@ static BOOL test_query_each_TrustDom(struct dcerpc_pipe *p,
                                if (!NT_STATUS_IS_OK(status) && ok[j]) {
                                        printf("QueryTrustedDomainInfoBySid level %d failed - %s\n", 
                                               levels[j], nt_errstr(status));
-                                       ret = False;
+                                       ret = false;
                                } else if (NT_STATUS_IS_OK(status) && !ok[j]) {
                                        printf("QueryTrustedDomainInfoBySid level %d unexpectedly succeeded - %s\n", 
                                               levels[j], nt_errstr(status));
-                                       ret = False;
+                                       ret = false;
                                }
                        }
                }
@@ -1615,7 +1704,7 @@ static BOOL test_query_each_TrustDom(struct dcerpc_pipe *p,
                        
                if (!NT_STATUS_IS_OK(status)) {
                        printf("OpenTrustedDomainByName failed - %s\n", nt_errstr(status));
-                       return False;
+                       return false;
                }
 
                for (j=0; j < ARRAY_SIZE(levels); j++) {
@@ -1628,11 +1717,11 @@ static BOOL test_query_each_TrustDom(struct dcerpc_pipe *p,
                        if (!NT_STATUS_IS_OK(status) && ok[j]) {
                                printf("QueryTrustedDomainInfo level %d failed - %s\n", 
                                       levels[j], nt_errstr(status));
-                               ret = False;
+                               ret = false;
                        } else if (NT_STATUS_IS_OK(status) && !ok[j]) {
                                printf("QueryTrustedDomainInfo level %d unexpectedly succeeded - %s\n", 
                                       levels[j], nt_errstr(status));
-                               ret = False;
+                               ret = false;
                        }
                }
                
@@ -1642,7 +1731,7 @@ static BOOL test_query_each_TrustDom(struct dcerpc_pipe *p,
                status = dcerpc_lsa_Close(p, mem_ctx, &c);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("Close of trusted domain failed - %s\n", nt_errstr(status));
-                       return False;
+                       return false;
                }
 
                for (j=0; j < ARRAY_SIZE(levels); j++) {
@@ -1656,18 +1745,18 @@ static BOOL test_query_each_TrustDom(struct dcerpc_pipe *p,
                        if (!NT_STATUS_IS_OK(status) && ok[j]) {
                                printf("QueryTrustedDomainInfoByName level %d failed - %s\n", 
                                       levels[j], nt_errstr(status));
-                               ret = False;
+                               ret = false;
                        } else if (NT_STATUS_IS_OK(status) && !ok[j]) {
                                printf("QueryTrustedDomainInfoByName level %d unexpectedly succeeded - %s\n", 
                                       levels[j], nt_errstr(status));
-                               ret = False;
+                               ret = false;
                        }
                }
        }
        return ret;
 }
 
-static BOOL test_EnumTrustDom(struct dcerpc_pipe *p, 
+static bool test_EnumTrustDom(struct dcerpc_pipe *p, 
                              TALLOC_CTX *mem_ctx, 
                              struct policy_handle *handle)
 {
@@ -1677,7 +1766,7 @@ static BOOL test_EnumTrustDom(struct dcerpc_pipe *p,
        uint32_t resume_handle = 0;
        struct lsa_DomainList domains;
        struct lsa_DomainListEx domains_ex;
-       BOOL ret = True;
+       bool ret = true;
 
        printf("\nTesting EnumTrustDom\n");
 
@@ -1692,7 +1781,7 @@ static BOOL test_EnumTrustDom(struct dcerpc_pipe *p,
                
                /* NO_MORE_ENTRIES is allowed */
                if (NT_STATUS_EQUAL(enum_status, NT_STATUS_NO_MORE_ENTRIES)) {
-                       return True;
+                       return true;
                } else if (NT_STATUS_EQUAL(enum_status, STATUS_MORE_ENTRIES)) {
                        /* Windows 2003 gets this off by one on the first run */
                        if (r.out.domains->count < 3 || r.out.domains->count > 4) {
@@ -1700,11 +1789,11 @@ static BOOL test_EnumTrustDom(struct dcerpc_pipe *p,
                                       "asked it to (got %d, expected %d / %d == %d entries)\n",
                                       r.out.domains->count, LSA_ENUM_TRUST_DOMAIN_MULTIPLIER * 3, 
                                       LSA_ENUM_TRUST_DOMAIN_MULTIPLIER, r.in.max_size);
-                               ret = False;
+                               ret = false;
                        }
                } else if (!NT_STATUS_IS_OK(enum_status)) {
                        printf("EnumTrustDom failed - %s\n", nt_errstr(enum_status));
-                       return False;
+                       return false;
                }
                
                ret &= test_query_each_TrustDom(p, mem_ctx, handle, &domains);
@@ -1725,7 +1814,7 @@ static BOOL test_EnumTrustDom(struct dcerpc_pipe *p,
                
                /* NO_MORE_ENTRIES is allowed */
                if (NT_STATUS_EQUAL(enum_status, NT_STATUS_NO_MORE_ENTRIES)) {
-                       return True;
+                       return true;
                } else if (NT_STATUS_EQUAL(enum_status, STATUS_MORE_ENTRIES)) {
                        /* Windows 2003 gets this off by one on the first run */
                        if (r_ex.out.domains->count < 3 || r_ex.out.domains->count > 4) {
@@ -1735,12 +1824,12 @@ static BOOL test_EnumTrustDom(struct dcerpc_pipe *p,
                                       r_ex.in.max_size,
                                       LSA_ENUM_TRUST_DOMAIN_EX_MULTIPLIER, 
                                       r_ex.in.max_size / LSA_ENUM_TRUST_DOMAIN_EX_MULTIPLIER);
-                               ret = False;
+                               ret = false;
                                exit(1);
                        }
                } else if (!NT_STATUS_IS_OK(enum_status)) {
                        printf("EnumTrustedDomainEx failed - %s\n", nt_errstr(enum_status));
-                       return False;
+                       return false;
                }
 
                ret &= test_query_each_TrustDomEx(p, mem_ctx, handle, &domains_ex);
@@ -1750,12 +1839,12 @@ static BOOL test_EnumTrustDom(struct dcerpc_pipe *p,
        return ret;
 }
 
-static BOOL test_CreateTrustedDomain(struct dcerpc_pipe *p, 
+static bool test_CreateTrustedDomain(struct dcerpc_pipe *p, 
                                     TALLOC_CTX *mem_ctx, 
                                     struct policy_handle *handle)
 {
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        struct lsa_CreateTrustedDomain r;
        struct lsa_DomainInfo trustinfo;
        struct dom_sid *domsid[12];
@@ -1786,7 +1875,7 @@ static BOOL test_CreateTrustedDomain(struct dcerpc_pipe *p,
                }
                if (!NT_STATUS_IS_OK(status)) {
                        printf("CreateTrustedDomain failed - %s\n", nt_errstr(status));
-                       ret = False;
+                       ret = false;
                } else {
                
                        q.in.trustdom_handle = &trustdom_handle[i];
@@ -1794,14 +1883,14 @@ static BOOL test_CreateTrustedDomain(struct dcerpc_pipe *p,
                        status = dcerpc_lsa_QueryTrustedDomainInfo(p, mem_ctx, &q);
                        if (!NT_STATUS_IS_OK(status)) {
                                printf("QueryTrustedDomainInfo level 1 failed - %s\n", nt_errstr(status));
-                               ret = False;
+                               ret = false;
                        } else if (!q.out.info) {
-                               ret = False;
+                               ret = false;
                        } else {
                                if (strcmp(q.out.info->name.netbios_name.string, trustinfo.name.string) != 0) {
                                        printf("QueryTrustedDomainInfo returned inconsistant short name: %s != %s\n",
                                               q.out.info->name.netbios_name.string, trustinfo.name.string);
-                                       ret = False;
+                                       ret = false;
                                }
                        }
                }
@@ -1809,29 +1898,29 @@ static BOOL test_CreateTrustedDomain(struct dcerpc_pipe *p,
 
        /* now that we have some domains to look over, we can test the enum calls */
        if (!test_EnumTrustDom(p, mem_ctx, handle)) {
-               ret = False;
+               ret = false;
        }
        
        for (i=0; i<12; i++) {
                if (!test_DeleteTrustedDomainBySid(p, mem_ctx, handle, domsid[i])) {
-                       ret = False;
+                       ret = false;
                }
        }
 
        return ret;
 }
 
-static BOOL test_QueryDomainInfoPolicy(struct dcerpc_pipe *p, 
+static bool test_QueryDomainInfoPolicy(struct dcerpc_pipe *p, 
                                 TALLOC_CTX *mem_ctx, 
                                 struct policy_handle *handle)
 {
        struct lsa_QueryDomainInformationPolicy r;
        NTSTATUS status;
        int i;
-       BOOL ret = True;
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
+       bool ret = true;
+       if (lp_parm_bool(global_loadparm, NULL, "torture", "samba4", false)) {
                printf("skipping QueryDomainInformationPolicy test against Samba4\n");
-               return True;
+               return true;
        }
 
        printf("\nTesting QueryDomainInformationPolicy\n");
@@ -1846,7 +1935,7 @@ static BOOL test_QueryDomainInfoPolicy(struct dcerpc_pipe *p,
 
                if (!NT_STATUS_IS_OK(status)) {
                        printf("QueryDomainInformationPolicy failed - %s\n", nt_errstr(status));
-                       ret = False;
+                       ret = false;
                        continue;
                }
        }
@@ -1855,19 +1944,19 @@ static BOOL test_QueryDomainInfoPolicy(struct dcerpc_pipe *p,
 }
 
 
-static BOOL test_QueryInfoPolicy(struct dcerpc_pipe *p, 
+static bool test_QueryInfoPolicy(struct dcerpc_pipe *p, 
                                 TALLOC_CTX *mem_ctx, 
                                 struct policy_handle *handle)
 {
        struct lsa_QueryInfoPolicy r;
        NTSTATUS status;
        int i;
-       BOOL ret = True;
+       bool ret = true;
        printf("\nTesting QueryInfoPolicy\n");
 
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
+       if (lp_parm_bool(global_loadparm, NULL, "torture", "samba4", false)) {
                printf("skipping QueryInfoPolicy against Samba4\n");
-               return True;
+               return true;
        }
 
        for (i=1;i<13;i++) {
@@ -1878,36 +1967,69 @@ static BOOL test_QueryInfoPolicy(struct dcerpc_pipe *p,
 
                status = dcerpc_lsa_QueryInfoPolicy(p, mem_ctx, &r);
 
-               if ((i == 9 || i == 10 || i == 11) &&
-                   NT_STATUS_EQUAL(status, NT_STATUS_INVALID_PARAMETER)) {
-                       printf("server failed level %u (OK)\n", i);
-                       continue;
+               switch (i) {
+               case LSA_POLICY_INFO_DB:
+               case LSA_POLICY_INFO_AUDIT_FULL_SET:
+               case LSA_POLICY_INFO_AUDIT_FULL_QUERY:
+                       if (!NT_STATUS_EQUAL(status, NT_STATUS_INVALID_PARAMETER)) {
+                               printf("server should have failed level %u: %s\n", i, nt_errstr(status));
+                               ret = false;
+                       }
+                       break;
+               case LSA_POLICY_INFO_DOMAIN:
+               case LSA_POLICY_INFO_ACCOUNT_DOMAIN:
+               case LSA_POLICY_INFO_DNS:
+                       if (!NT_STATUS_IS_OK(status)) {
+                               printf("QueryInfoPolicy failed - %s\n", nt_errstr(status));
+                               ret = false;
+                       }
+                       break;
+               default:
+                       if (lp_parm_bool(global_loadparm, NULL, "torture", "samba4", false)) {
+                               /* Other levels not implemented yet */
+                               if (!NT_STATUS_EQUAL(status, NT_STATUS_INVALID_INFO_CLASS)) {
+                                       printf("QueryInfoPolicy failed - %s\n", nt_errstr(status));
+                                       ret = false;
+                               }
+                       } else if (!NT_STATUS_IS_OK(status)) {
+                               printf("QueryInfoPolicy failed - %s\n", nt_errstr(status));
+                               ret = false;
+                       }
+                       break;
                }
 
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("QueryInfoPolicy failed - %s\n", nt_errstr(status));
-                       ret = False;
-                       continue;
+               if (NT_STATUS_IS_OK(status) && i == LSA_POLICY_INFO_DNS) {
+                       /* Let's look up some of these names */
+
+                       struct lsa_TransNameArray tnames;
+                       tnames.count = 10;
+                       tnames.names = talloc_array(mem_ctx, struct lsa_TranslatedName, tnames.count);
+                       tnames.names[0].name.string = r.out.info->dns.name.string;
+                       tnames.names[1].name.string = r.out.info->dns.dns_domain.string;
+                       tnames.names[2].name.string = talloc_asprintf(mem_ctx, "%s\\", r.out.info->dns.name.string);
+                       tnames.names[3].name.string = talloc_asprintf(mem_ctx, "%s\\", r.out.info->dns.dns_domain.string);
+                       tnames.names[4].name.string = talloc_asprintf(mem_ctx, "%s\\guest", r.out.info->dns.name.string);
+                       tnames.names[5].name.string = talloc_asprintf(mem_ctx, "%s\\krbtgt", r.out.info->dns.name.string);
+                       tnames.names[6].name.string = talloc_asprintf(mem_ctx, "%s\\guest", r.out.info->dns.dns_domain.string);
+                       tnames.names[7].name.string = talloc_asprintf(mem_ctx, "%s\\krbtgt", r.out.info->dns.dns_domain.string);
+                       tnames.names[8].name.string = talloc_asprintf(mem_ctx, "krbtgt@%s", r.out.info->dns.name.string);
+                       tnames.names[9].name.string = talloc_asprintf(mem_ctx, "krbtgt@%s", r.out.info->dns.dns_domain.string);
+                       ret &= test_LookupNames(p, mem_ctx, handle, &tnames);
                }
        }
 
        return ret;
 }
 
-static BOOL test_QueryInfoPolicy2(struct dcerpc_pipe *p, 
+static bool test_QueryInfoPolicy2(struct dcerpc_pipe *p, 
                                  TALLOC_CTX *mem_ctx, 
                                  struct policy_handle *handle)
 {
        struct lsa_QueryInfoPolicy2 r;
        NTSTATUS status;
        int i;
-       BOOL ret = True;
+       bool ret = true;
        printf("\nTesting QueryInfoPolicy2\n");
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
-               printf("skipping QueryInfoPolicy2 against Samba4\n");
-               return True;
-       }
-
        for (i=1;i<13;i++) {
                r.in.handle = handle;
                r.in.level = i;
@@ -1915,28 +2037,47 @@ static BOOL test_QueryInfoPolicy2(struct dcerpc_pipe *p,
                printf("\ntrying QueryInfoPolicy2 level %d\n", i);
 
                status = dcerpc_lsa_QueryInfoPolicy2(p, mem_ctx, &r);
-
-               if ((i == 9 || i == 10 || i == 11) &&
-                   NT_STATUS_EQUAL(status, NT_STATUS_INVALID_PARAMETER)) {
-                       printf("server failed level %u (OK)\n", i);
-                       continue;
-               }
-
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("QueryInfoPolicy2 failed - %s\n", nt_errstr(status));
-                       ret = False;
-                       continue;
+               
+               switch (i) {
+               case LSA_POLICY_INFO_DB:
+               case LSA_POLICY_INFO_AUDIT_FULL_SET:
+               case LSA_POLICY_INFO_AUDIT_FULL_QUERY:
+                       if (!NT_STATUS_EQUAL(status, NT_STATUS_INVALID_PARAMETER)) {
+                               printf("server should have failed level %u: %s\n", i, nt_errstr(status));
+                               ret = false;
+                       }
+                       break;
+               case LSA_POLICY_INFO_DOMAIN:
+               case LSA_POLICY_INFO_ACCOUNT_DOMAIN:
+               case LSA_POLICY_INFO_DNS:
+                       if (!NT_STATUS_IS_OK(status)) {
+                               printf("QueryInfoPolicy2 failed - %s\n", nt_errstr(status));
+                               ret = false;
+                       }
+                       break;
+               default:
+                       if (lp_parm_bool(global_loadparm, NULL, "torture", "samba4", false)) {
+                               /* Other levels not implemented yet */
+                               if (!NT_STATUS_EQUAL(status, NT_STATUS_INVALID_INFO_CLASS)) {
+                                       printf("QueryInfoPolicy2 failed - %s\n", nt_errstr(status));
+                                       ret = false;
+                               }
+                       } else if (!NT_STATUS_IS_OK(status)) {
+                               printf("QueryInfoPolicy2 failed - %s\n", nt_errstr(status));
+                               ret = false;
+                       }
+                       break;
                }
        }
 
        return ret;
 }
 
-static BOOL test_GetUserName(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_GetUserName(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
 {
        struct lsa_GetUserName r;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        struct lsa_StringPointer authority_name_p;
 
        printf("\nTesting GetUserName\n");
@@ -1950,13 +2091,13 @@ static BOOL test_GetUserName(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
 
        if (!NT_STATUS_IS_OK(status)) {
                printf("GetUserName failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
-BOOL test_lsa_Close(struct dcerpc_pipe *p, 
+bool test_lsa_Close(struct dcerpc_pipe *p, 
                    TALLOC_CTX *mem_ctx, 
                    struct policy_handle *handle)
 {
@@ -1972,27 +2113,27 @@ BOOL test_lsa_Close(struct dcerpc_pipe *p,
        status = dcerpc_lsa_Close(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Close failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        status = dcerpc_lsa_Close(p, mem_ctx, &r);
        /* its really a fault - we need a status code for rpc fault */
        if (!NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
                printf("Close failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        printf("\n");
 
-       return True;
+       return true;
 }
 
-BOOL torture_rpc_lsa(struct torture_context *torture)
+bool torture_rpc_lsa(struct torture_context *torture)
 {
         NTSTATUS status;
         struct dcerpc_pipe *p;
        TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
+       bool ret = true;
        struct policy_handle *handle;
 
        mem_ctx = talloc_init("torture_rpc_lsa");
@@ -2000,75 +2141,83 @@ BOOL torture_rpc_lsa(struct torture_context *torture)
        status = torture_rpc_connection(torture, &p, &ndr_table_lsarpc);
        if (!NT_STATUS_IS_OK(status)) {
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        if (!test_OpenPolicy(p, mem_ctx)) {
-               ret = False;
+               ret = false;
        }
 
        if (!test_lsa_OpenPolicy2(p, mem_ctx, &handle)) {
-               ret = False;
+               ret = false;
        }
 
        if (handle) {
+               if (!test_LookupNames_wellknown(p, mem_ctx, handle)) {
+                       ret = false;
+               }               
+
+               if (!test_LookupNames_bogus(p, mem_ctx, handle)) {
+                       ret = false;
+               }               
+
                if (!test_LookupSids_async(p, mem_ctx, handle)) {
-                       ret = False;
+                       ret = false;
                }
 
                if (!test_QueryDomainInfoPolicy(p, mem_ctx, handle)) {
-                       ret = False;
+                       ret = false;
                }
                
                if (!test_CreateAccount(p, mem_ctx, handle)) {
-                       ret = False;
+                       ret = false;
                }
                
                if (!test_CreateSecret(p, mem_ctx, handle)) {
-                       ret = False;
+                       ret = false;
                }
                
                if (!test_CreateTrustedDomain(p, mem_ctx, handle)) {
-                       ret = False;
+                       ret = false;
                }
                
                if (!test_EnumAccounts(p, mem_ctx, handle)) {
-                       ret = False;
+                       ret = false;
                }
                
                if (!test_EnumPrivs(p, mem_ctx, handle)) {
-                       ret = False;
+                       ret = false;
                }
                
                if (!test_QueryInfoPolicy(p, mem_ctx, handle)) {
-                       ret = False;
+                       ret = false;
                }
                
                if (!test_QueryInfoPolicy2(p, mem_ctx, handle)) {
-                       ret = False;
+                       ret = false;
                }
                
 #if 0
                if (!test_Delete(p, mem_ctx, handle)) {
-                       ret = False;
+                       ret = false;
                }
 #endif
                
                if (!test_many_LookupSids(p, mem_ctx, handle)) {
-                       ret = False;
+                       ret = false;
                }
                
                if (!test_lsa_Close(p, mem_ctx, handle)) {
-                       ret = False;
+                       ret = false;
                }
        } else {
                if (!test_many_LookupSids(p, mem_ctx, handle)) {
-                       ret = False;
+                       ret = false;
                }
        }
 
        if (!test_GetUserName(p, mem_ctx)) {
-               ret = False;
+               ret = false;
        }
                
        talloc_free(mem_ctx);
@@ -2076,23 +2225,23 @@ BOOL torture_rpc_lsa(struct torture_context *torture)
        return ret;
 }
 
-BOOL torture_rpc_lsa_get_user(struct torture_context *torture)
+bool torture_rpc_lsa_get_user(struct torture_context *torture)
 {
         NTSTATUS status;
         struct dcerpc_pipe *p;
        TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
+       bool ret = true;
 
        mem_ctx = talloc_init("torture_rpc_lsa_get_user");
 
        status = torture_rpc_connection(torture, &p, &ndr_table_lsarpc);
        if (!NT_STATUS_IS_OK(status)) {
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        if (!test_GetUserName(p, mem_ctx)) {
-               ret = False;
+               ret = false;
        }
                
        talloc_free(mem_ctx);
index d90c3694a9adffea46cca9b16d05644abb552010..9c817a7061cf7691c8a4336a3554cdaa4e39297d 100644 (file)
@@ -26,7 +26,7 @@
 #include "librpc/gen_ndr/ndr_lsa_c.h"
 #include "libcli/security/security.h"
 
-static BOOL open_policy(TALLOC_CTX *mem_ctx, struct dcerpc_pipe *p,
+static bool open_policy(TALLOC_CTX *mem_ctx, struct dcerpc_pipe *p,
                        struct policy_handle **handle)
 {
        struct lsa_ObjectAttribute attr;
@@ -36,7 +36,7 @@ static BOOL open_policy(TALLOC_CTX *mem_ctx, struct dcerpc_pipe *p,
 
        *handle = talloc(mem_ctx, struct policy_handle);
        if (!*handle) {
-               return False;
+               return false;
        }
 
        qos.len = 0;
@@ -61,7 +61,7 @@ static BOOL open_policy(TALLOC_CTX *mem_ctx, struct dcerpc_pipe *p,
        return NT_STATUS_IS_OK(status);
 }
 
-static BOOL get_domainsid(TALLOC_CTX *mem_ctx, struct dcerpc_pipe *p,
+static bool get_domainsid(TALLOC_CTX *mem_ctx, struct dcerpc_pipe *p,
                          struct policy_handle *handle,
                          struct dom_sid **sid)
 {
@@ -72,10 +72,10 @@ static BOOL get_domainsid(TALLOC_CTX *mem_ctx, struct dcerpc_pipe *p,
        r.in.handle = handle;
 
        status = dcerpc_lsa_QueryInfoPolicy(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) return False;
+       if (!NT_STATUS_IS_OK(status)) return false;
 
        *sid = r.out.info->domain.sid;
-       return True;
+       return true;
 }
 
 static NTSTATUS lookup_sids(TALLOC_CTX *mem_ctx, uint16_t level,
@@ -122,11 +122,12 @@ static const char *sid_type_lookup(enum lsa_SidType r)
                case SID_NAME_DELETED: return "SID_NAME_DELETED"; break;
                case SID_NAME_INVALID: return "SID_NAME_INVALID"; break;
                case SID_NAME_UNKNOWN: return "SID_NAME_UNKNOWN"; break;
+               case SID_NAME_COMPUTER: return "SID_NAME_COMPUTER"; break;
        }
        return "Invalid sid type\n";
 }
 
-static BOOL test_lookupsids(TALLOC_CTX *mem_ctx, struct dcerpc_pipe *p,
+static bool test_lookupsids(TALLOC_CTX *mem_ctx, struct dcerpc_pipe *p,
                            struct policy_handle *handle,
                            struct dom_sid **sids, uint32_t num_sids,
                            int level, NTSTATUS expected_result, 
@@ -135,7 +136,7 @@ static BOOL test_lookupsids(TALLOC_CTX *mem_ctx, struct dcerpc_pipe *p,
        struct lsa_TransNameArray names;
        NTSTATUS status;
        uint32_t i;
-       BOOL ret = True;
+       bool ret = true;
 
        status = lookup_sids(mem_ctx, level, p, handle, sids, num_sids,
                             &names);
@@ -143,12 +144,12 @@ static BOOL test_lookupsids(TALLOC_CTX *mem_ctx, struct dcerpc_pipe *p,
                printf("For level %d expected %s, got %s\n",
                       level, nt_errstr(expected_result),
                       nt_errstr(status));
-               return False;
+               return false;
        }
 
        if (!NT_STATUS_EQUAL(status, NT_STATUS_OK) &&
            !NT_STATUS_EQUAL(status, STATUS_SOME_UNMAPPED)) {
-               return True;
+               return true;
        }
 
        for (i=0; i<num_sids; i++) {
@@ -158,13 +159,13 @@ static BOOL test_lookupsids(TALLOC_CTX *mem_ctx, struct dcerpc_pipe *p,
                               dom_sid_string(mem_ctx, sids[i]),
                               sid_type_lookup(types[i]),
                               sid_type_lookup(names.names[i].sid_type));
-                       ret = False;
+                       ret = false;
                }
        }
        return ret;
 }
 
-static BOOL get_downleveltrust(TALLOC_CTX *mem_ctx, struct dcerpc_pipe *p,
+static bool get_downleveltrust(struct torture_context *tctx, struct dcerpc_pipe *p,
                               struct policy_handle *handle,
                               struct dom_sid **sid)
 {
@@ -180,16 +181,13 @@ static BOOL get_downleveltrust(TALLOC_CTX *mem_ctx, struct dcerpc_pipe *p,
        r.out.domains = &domains;
        r.out.resume_handle = &resume_handle;
 
-       status = dcerpc_lsa_EnumTrustDom(p, mem_ctx, &r);
+       status = dcerpc_lsa_EnumTrustDom(p, tctx, &r);
 
-       if (NT_STATUS_EQUAL(status, NT_STATUS_NO_MORE_ENTRIES)) {
-               printf("no trusts\n");
-               return False;
-       }
+       if (NT_STATUS_EQUAL(status, NT_STATUS_NO_MORE_ENTRIES))
+               torture_fail(tctx, "no trusts");
 
        if (domains.count == 0) {
-               printf("no trusts\n");
-               return False;
+               torture_fail(tctx, "no trusts");
        }
 
        for (i=0; i<domains.count; i++) {
@@ -201,62 +199,58 @@ static BOOL get_downleveltrust(TALLOC_CTX *mem_ctx, struct dcerpc_pipe *p,
                q.in.handle = handle;
                q.in.dom_sid = domains.domains[i].sid;
                q.in.level = 6;
-               status = dcerpc_lsa_QueryTrustedDomainInfoBySid(p, mem_ctx, &q);
+               status = dcerpc_lsa_QueryTrustedDomainInfoBySid(p, tctx, &q);
                if (!NT_STATUS_IS_OK(status)) continue;
 
                if ((q.out.info->info_ex.trust_direction & 2) &&
                    (q.out.info->info_ex.trust_type == 1)) {
                        *sid = domains.domains[i].sid;
-                       return True;
+                       return true;
                }
        }
 
-       printf("I need a AD DC with an outgoing trust to NT4\n");
-       return False;
+       torture_fail(tctx, "I need a AD DC with an outgoing trust to NT4");
 }
 
 #define NUM_SIDS 8
 
-BOOL torture_rpc_lsa_lookup(struct torture_context *torture)
+bool torture_rpc_lsa_lookup(struct torture_context *torture)
 {
         NTSTATUS status;
         struct dcerpc_pipe *p;
-       TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
+       bool ret = true;
        struct policy_handle *handle;
        struct dom_sid *dom_sid;
        struct dom_sid *trusted_sid;
        struct dom_sid *sids[NUM_SIDS];
 
-       mem_ctx = talloc_init("torture_rpc_lsa");
-
        status = torture_rpc_connection(torture, &p, &ndr_table_lsarpc);
        if (!NT_STATUS_IS_OK(status)) {
-               ret = False;
-               goto done;
+               torture_fail(torture, "unable to connect to table");
        }
 
-       ret &= open_policy(mem_ctx, p, &handle);
-       if (!ret) goto done;
+       ret &= open_policy(torture, p, &handle);
+       if (!ret) return false;
 
-       ret &= get_domainsid(mem_ctx, p, handle, &dom_sid);
-       if (!ret) goto done;
+       ret &= get_domainsid(torture, p, handle, &dom_sid);
+       if (!ret) return false;
 
-       ret &= get_downleveltrust(mem_ctx, p, handle, &trusted_sid);
-       if (!ret) goto done;
+       ret &= get_downleveltrust(torture, p, handle, &trusted_sid);
+       if (!ret) return false;
 
-       printf("domain sid: %s\n", dom_sid_string(mem_ctx, dom_sid));
+       torture_comment(torture, "domain sid: %s\n", 
+                                       dom_sid_string(torture, dom_sid));
 
-       sids[0] = dom_sid_parse_talloc(mem_ctx, "S-1-1-0");
-       sids[1] = dom_sid_parse_talloc(mem_ctx, "S-1-5-4");
-       sids[2] = dom_sid_parse_talloc(mem_ctx, "S-1-5-32");
-       sids[3] = dom_sid_parse_talloc(mem_ctx, "S-1-5-32-545");
-       sids[4] = dom_sid_dup(mem_ctx, dom_sid);
-       sids[5] = dom_sid_add_rid(mem_ctx, dom_sid, 512);
-       sids[6] = dom_sid_dup(mem_ctx, trusted_sid);
-       sids[7] = dom_sid_add_rid(mem_ctx, trusted_sid, 512);
+       sids[0] = dom_sid_parse_talloc(torture, "S-1-1-0");
+       sids[1] = dom_sid_parse_talloc(torture, "S-1-5-4");
+       sids[2] = dom_sid_parse_talloc(torture, "S-1-5-32");
+       sids[3] = dom_sid_parse_talloc(torture, "S-1-5-32-545");
+       sids[4] = dom_sid_dup(torture, dom_sid);
+       sids[5] = dom_sid_add_rid(torture, dom_sid, 512);
+       sids[6] = dom_sid_dup(torture, trusted_sid);
+       sids[7] = dom_sid_add_rid(torture, trusted_sid, 512);
 
-       ret &= test_lookupsids(mem_ctx, p, handle, sids, NUM_SIDS, 0,
+       ret &= test_lookupsids(torture, p, handle, sids, NUM_SIDS, 0,
                               NT_STATUS_INVALID_PARAMETER, NULL);
 
        {
@@ -265,7 +259,7 @@ BOOL torture_rpc_lsa_lookup(struct torture_context *torture)
                          SID_NAME_ALIAS, SID_NAME_DOMAIN, SID_NAME_DOM_GRP,
                          SID_NAME_DOMAIN, SID_NAME_DOM_GRP };
 
-               ret &= test_lookupsids(mem_ctx, p, handle, sids, NUM_SIDS, 1,
+               ret &= test_lookupsids(torture, p, handle, sids, NUM_SIDS, 1,
                                       NT_STATUS_OK, types);
        }
 
@@ -275,7 +269,7 @@ BOOL torture_rpc_lsa_lookup(struct torture_context *torture)
                          SID_NAME_UNKNOWN, SID_NAME_UNKNOWN,
                          SID_NAME_DOMAIN, SID_NAME_DOM_GRP,
                          SID_NAME_DOMAIN, SID_NAME_DOM_GRP };
-               ret &= test_lookupsids(mem_ctx, p, handle, sids, NUM_SIDS, 2,
+               ret &= test_lookupsids(torture, p, handle, sids, NUM_SIDS, 2,
                                       STATUS_SOME_UNMAPPED, types);
        }
 
@@ -285,7 +279,7 @@ BOOL torture_rpc_lsa_lookup(struct torture_context *torture)
                          SID_NAME_UNKNOWN, SID_NAME_UNKNOWN,
                          SID_NAME_DOMAIN, SID_NAME_DOM_GRP,
                          SID_NAME_UNKNOWN, SID_NAME_UNKNOWN };
-               ret &= test_lookupsids(mem_ctx, p, handle, sids, NUM_SIDS, 3,
+               ret &= test_lookupsids(torture, p, handle, sids, NUM_SIDS, 3,
                                       STATUS_SOME_UNMAPPED, types);
        }
 
@@ -295,11 +289,11 @@ BOOL torture_rpc_lsa_lookup(struct torture_context *torture)
                          SID_NAME_UNKNOWN, SID_NAME_UNKNOWN,
                          SID_NAME_DOMAIN, SID_NAME_DOM_GRP,
                          SID_NAME_UNKNOWN, SID_NAME_UNKNOWN };
-               ret &= test_lookupsids(mem_ctx, p, handle, sids, NUM_SIDS, 4,
+               ret &= test_lookupsids(torture, p, handle, sids, NUM_SIDS, 4,
                                       STATUS_SOME_UNMAPPED, types);
        }
 
-       ret &= test_lookupsids(mem_ctx, p, handle, sids, NUM_SIDS, 5,
+       ret &= test_lookupsids(torture, p, handle, sids, NUM_SIDS, 5,
                               NT_STATUS_NONE_MAPPED, NULL);
 
        {
@@ -308,21 +302,18 @@ BOOL torture_rpc_lsa_lookup(struct torture_context *torture)
                          SID_NAME_UNKNOWN, SID_NAME_UNKNOWN,
                          SID_NAME_DOMAIN, SID_NAME_DOM_GRP,
                          SID_NAME_UNKNOWN, SID_NAME_UNKNOWN };
-               ret &= test_lookupsids(mem_ctx, p, handle, sids, NUM_SIDS, 6,
+               ret &= test_lookupsids(torture, p, handle, sids, NUM_SIDS, 6,
                                       STATUS_SOME_UNMAPPED, types);
        }
 
-       ret &= test_lookupsids(mem_ctx, p, handle, sids, NUM_SIDS, 7,
+       ret &= test_lookupsids(torture, p, handle, sids, NUM_SIDS, 7,
                               NT_STATUS_INVALID_PARAMETER, NULL);
-       ret &= test_lookupsids(mem_ctx, p, handle, sids, NUM_SIDS, 8,
+       ret &= test_lookupsids(torture, p, handle, sids, NUM_SIDS, 8,
                               NT_STATUS_INVALID_PARAMETER, NULL);
-       ret &= test_lookupsids(mem_ctx, p, handle, sids, NUM_SIDS, 9,
+       ret &= test_lookupsids(torture, p, handle, sids, NUM_SIDS, 9,
                               NT_STATUS_INVALID_PARAMETER, NULL);
-       ret &= test_lookupsids(mem_ctx, p, handle, sids, NUM_SIDS, 10,
+       ret &= test_lookupsids(torture, p, handle, sids, NUM_SIDS, 10,
                               NT_STATUS_INVALID_PARAMETER, NULL);
 
- done:
-       talloc_free(mem_ctx);
-
        return ret;
 }
index 6d0c3d56c90d37b7c06e64bbbc734638b2494b34..258450ada1bfac2ecdfe3fafa8788c726d2fd386 100644 (file)
 #include "auth/gensec/gensec.h"
 #include "librpc/ndr/ndr_table.h"
 #include "torture/rpc/rpc.h"
+#include "param/param.h"
 
 
 /*
   ask the server what interface IDs are available on this endpoint
 */
-BOOL test_inq_if_ids(struct torture_context *tctx, 
+bool test_inq_if_ids(struct torture_context *tctx, 
                     struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
-                    BOOL (*per_id_test)(struct torture_context *,
+                    bool (*per_id_test)(struct torture_context *,
                                         const struct ndr_interface_table *iface,
                                         TALLOC_CTX *mem_ctx,
                                         struct ndr_syntax_id *id),
@@ -48,17 +49,17 @@ BOOL test_inq_if_ids(struct torture_context *tctx,
        status = dcerpc_mgmt_inq_if_ids(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("inq_if_ids failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        if (!W_ERROR_IS_OK(r.out.result)) {
                printf("inq_if_ids gave error code %s\n", win_errstr(r.out.result));
-               return False;
+               return false;
        }
 
        if (!vector) {
                printf("inq_if_ids gave NULL if_id_vector\n");
-               return False;
+               return false;
        }
 
        for (i=0;i<vector->count;i++) {
@@ -75,10 +76,10 @@ BOOL test_inq_if_ids(struct torture_context *tctx,
                }
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_inq_stats(struct dcerpc_pipe *p, 
+static bool test_inq_stats(struct dcerpc_pipe *p, 
                           TALLOC_CTX *mem_ctx)
 {
        NTSTATUS status;
@@ -92,12 +93,12 @@ static BOOL test_inq_stats(struct dcerpc_pipe *p,
        status = dcerpc_mgmt_inq_stats(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("inq_stats failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        if (statistics.count != MGMT_STATS_ARRAY_MAX_SIZE) {
                printf("Unexpected array size %d\n", statistics.count);
-               return False;
+               return false;
        }
 
        printf("\tcalls_in %6d  calls_out %6d\n\tpkts_in  %6d  pkts_out  %6d\n",
@@ -106,16 +107,16 @@ static BOOL test_inq_stats(struct dcerpc_pipe *p,
               statistics.statistics[MGMT_STATS_PKTS_IN],
               statistics.statistics[MGMT_STATS_PKTS_OUT]);
 
-       return True;
+       return true;
 }
 
-static BOOL test_inq_princ_name(struct dcerpc_pipe *p, 
+static bool test_inq_princ_name(struct dcerpc_pipe *p, 
                                TALLOC_CTX *mem_ctx)
 {
        NTSTATUS status;
        struct mgmt_inq_princ_name r;
        int i;
-       BOOL ret = False;
+       bool ret = false;
 
        for (i=0;i<100;i++) {
                r.in.authn_proto = i;  /* DCERPC_AUTH_TYPE_* */
@@ -127,7 +128,7 @@ static BOOL test_inq_princ_name(struct dcerpc_pipe *p,
                }
                if (W_ERROR_IS_OK(r.out.result)) {
                        const char *name = gensec_get_name_by_authtype(i);
-                       ret = True;
+                       ret = true;
                        if (name) {
                                printf("\tprinciple name for proto %u (%s) is '%s'\n", 
                                       i, name, r.out.princ_name);
@@ -142,10 +143,10 @@ static BOOL test_inq_princ_name(struct dcerpc_pipe *p,
                printf("\tno principle names?\n");
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_is_server_listening(struct dcerpc_pipe *p, 
+static bool test_is_server_listening(struct dcerpc_pipe *p, 
                                     TALLOC_CTX *mem_ctx)
 {
        NTSTATUS status;
@@ -155,7 +156,7 @@ static BOOL test_is_server_listening(struct dcerpc_pipe *p,
        status = dcerpc_mgmt_is_server_listening(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("is_server_listening failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        if (*r.out.status != 0 || r.out.result == 0) {
@@ -164,10 +165,10 @@ static BOOL test_is_server_listening(struct dcerpc_pipe *p,
                printf("\tserver is listening\n");
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_stop_server_listening(struct dcerpc_pipe *p, 
+static bool test_stop_server_listening(struct dcerpc_pipe *p, 
                                       TALLOC_CTX *mem_ctx)
 {
        NTSTATUS status;
@@ -176,26 +177,26 @@ static BOOL test_stop_server_listening(struct dcerpc_pipe *p,
        status = dcerpc_mgmt_stop_server_listening(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("stop_server_listening failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        if (!W_ERROR_IS_OK(r.out.result)) {
                printf("\tserver refused to stop listening - %s\n", win_errstr(r.out.result));
        } else {
                printf("\tserver allowed a stop_server_listening request\n");
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 
-BOOL torture_rpc_mgmt(struct torture_context *torture)
+bool torture_rpc_mgmt(struct torture_context *torture)
 {
         NTSTATUS status;
         struct dcerpc_pipe *p;
        TALLOC_CTX *mem_ctx, *loop_ctx;
-       BOOL ret = True;
+       bool ret = true;
        const struct ndr_interface_list *l;
        struct dcerpc_binding *b;
 
@@ -204,7 +205,7 @@ BOOL torture_rpc_mgmt(struct torture_context *torture)
        status = torture_rpc_binding(torture, &b);
        if (!NT_STATUS_IS_OK(status)) {
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        for (l=ndr_table_list();l;l=l->next) {          
@@ -227,7 +228,7 @@ BOOL torture_rpc_mgmt(struct torture_context *torture)
                        continue;
                }
 
-               lp_set_cmdline("torture:binding", dcerpc_binding_string(loop_ctx, b));
+               lp_set_cmdline(global_loadparm, "torture:binding", dcerpc_binding_string(loop_ctx, b));
 
                status = torture_rpc_connection(torture, &p, &ndr_table_mgmt);
                if (NT_STATUS_EQUAL(status, NT_STATUS_OBJECT_NAME_NOT_FOUND)) {
@@ -238,28 +239,28 @@ BOOL torture_rpc_mgmt(struct torture_context *torture)
 
                if (!NT_STATUS_IS_OK(status)) {
                        talloc_free(loop_ctx);
-                       ret = False;
+                       ret = false;
                        continue;
                }
 
                if (!test_is_server_listening(p, loop_ctx)) {
-                       ret = False;
+                       ret = false;
                }
 
                if (!test_stop_server_listening(p, loop_ctx)) {
-                       ret = False;
+                       ret = false;
                }
 
                if (!test_inq_stats(p, loop_ctx)) {
-                       ret = False;
+                       ret = false;
                }
 
                if (!test_inq_princ_name(p, loop_ctx)) {
-                       ret = False;
+                       ret = false;
                }
 
                if (!test_inq_if_ids(torture, p, loop_ctx, NULL, NULL)) {
-                       ret = False;
+                       ret = false;
                }
 
        }
index df69a097b6edf29e16d4fae8b25e98517746684c..3ff0561f776832d2f86fb6c67e6f083073370989 100644 (file)
 #include "libcli/auth/libcli_auth.h"
 #include "librpc/gen_ndr/ndr_netlogon_c.h"
 #include "librpc/gen_ndr/ndr_lsa_c.h"
-
-static const char *machine_password;
+#include "param/param.h"
 
 #define TEST_MACHINE_NAME "torturetest"
 
-static BOOL test_LogonUasLogon(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_LogonUasLogon(struct torture_context *tctx, 
+                              struct dcerpc_pipe *p)
 {
        NTSTATUS status;
        struct netr_LogonUasLogon r;
 
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
-               printf("skipping LogonUasLogon test against Samba4\n");
-               return True;
-       }
-
        r.in.server_name = NULL;
        r.in.account_name = cli_credentials_get_username(cmdline_credentials);
        r.in.workstation = TEST_MACHINE_NAME;
 
-       printf("Testing LogonUasLogon\n");
-
-       status = dcerpc_netr_LogonUasLogon(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("LogonUasLogon - %s\n", nt_errstr(status));
-               return False;
-       }
+       status = dcerpc_netr_LogonUasLogon(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "LogonUasLogon");
 
-       return True;
-       
+       return true;
 }
 
-static BOOL test_LogonUasLogoff(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_LogonUasLogoff(struct torture_context *tctx,
+                               struct dcerpc_pipe *p)
 {
        NTSTATUS status;
        struct netr_LogonUasLogoff r;
 
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
-               printf("skipping LogonUasLogoff test against Samba4\n");
-               return True;
-       }
-
        r.in.server_name = NULL;
        r.in.account_name = cli_credentials_get_username(cmdline_credentials);
        r.in.workstation = TEST_MACHINE_NAME;
 
-       printf("Testing LogonUasLogoff\n");
+       status = dcerpc_netr_LogonUasLogoff(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "LogonUasLogoff");
 
-       status = dcerpc_netr_LogonUasLogoff(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("LogonUasLogoff - %s\n", nt_errstr(status));
-               return False;
-       }
-
-       return True;
-       
+       return true;
 }
 
-static BOOL test_SetupCredentials(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
-                          const char *machine_name,
-                          const char *plain_pass,
+static bool test_SetupCredentials(struct dcerpc_pipe *p, struct torture_context *tctx,
+                          struct cli_credentials *credentials,
                           struct creds_CredentialState **creds_out)
 {
        NTSTATUS status;
@@ -98,13 +76,16 @@ static BOOL test_SetupCredentials(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        struct netr_Credential credentials1, credentials2, credentials3;
        struct creds_CredentialState *creds;
        struct samr_Password mach_password;
+        const char *plain_pass;
+       const char *machine_name;
 
-       printf("Testing ServerReqChallenge\n");
+       plain_pass = cli_credentials_get_password(credentials);
+       machine_name = cli_credentials_get_workstation(credentials);
 
-       creds = talloc(mem_ctx, struct creds_CredentialState);
-       if (!creds) {
-               return False;
-       }
+       torture_comment(tctx, "Testing ServerReqChallenge\n");
+
+       creds = talloc(tctx, struct creds_CredentialState);
+       torture_assert(tctx, creds != NULL, "memory allocation");
 
        r.in.server_name = NULL;
        r.in.computer_name = machine_name;
@@ -113,16 +94,13 @@ static BOOL test_SetupCredentials(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
        generate_random_buffer(credentials1.data, sizeof(credentials1.data));
 
-       status = dcerpc_netr_ServerReqChallenge(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("ServerReqChallenge - %s\n", nt_errstr(status));
-               return False;
-       }
+       status = dcerpc_netr_ServerReqChallenge(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "ServerReqChallenge");
 
        E_md4hash(plain_pass, mach_password.hash);
 
        a.in.server_name = NULL;
-       a.in.account_name = talloc_asprintf(mem_ctx, "%s$", machine_name);
+       a.in.account_name = talloc_asprintf(tctx, "%s$", machine_name);
        a.in.secure_channel_type = SEC_CHAN_BDC;
        a.in.computer_name = machine_name;
        a.in.credentials = &credentials3;
@@ -132,27 +110,21 @@ static BOOL test_SetupCredentials(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                          &mach_password, &credentials3, 
                          0);
 
-       printf("Testing ServerAuthenticate\n");
+       torture_comment(tctx, "Testing ServerAuthenticate\n");
 
-       status = dcerpc_netr_ServerAuthenticate(p, mem_ctx, &a);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("ServerAuthenticate - %s\n", nt_errstr(status));
-               return False;
-       }
+       status = dcerpc_netr_ServerAuthenticate(p, tctx, &a);
+       torture_assert_ntstatus_ok(tctx, status, "ServerAuthenticate");
 
-       if (!creds_client_check(creds, &credentials3)) {
-               printf("Credential chaining failed\n");
-               return False;
-       }
+       torture_assert(tctx, creds_client_check(creds, &credentials3), 
+                      "Credential chaining failed");
 
        *creds_out = creds;
-       return True;
+       return true;
 }
 
-static BOOL test_SetupCredentials2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_SetupCredentials2(struct dcerpc_pipe *p, struct torture_context *tctx,
                            uint32_t negotiate_flags,
-                           const char *machine_name,
-                           const char *plain_pass,
+                           struct cli_credentials *machine_credentials,
                            int sec_chan_type,
                            struct creds_CredentialState **creds_out)
 {
@@ -162,13 +134,16 @@ static BOOL test_SetupCredentials2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        struct netr_Credential credentials1, credentials2, credentials3;
        struct creds_CredentialState *creds;
        struct samr_Password mach_password;
+       const char *machine_name;
+       const char *plain_pass;
 
-       printf("Testing ServerReqChallenge\n");
+       machine_name = cli_credentials_get_workstation(machine_credentials);
+       plain_pass = cli_credentials_get_password(machine_credentials);
 
-       creds = talloc(mem_ctx, struct creds_CredentialState);
-       if (!creds) {
-               return False;
-       }
+       torture_comment(tctx, "Testing ServerReqChallenge\n");
+
+       creds = talloc(tctx, struct creds_CredentialState);
+       torture_assert(tctx, creds != NULL, "memory allocation");
 
        r.in.server_name = NULL;
        r.in.computer_name = machine_name;
@@ -177,16 +152,13 @@ static BOOL test_SetupCredentials2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
        generate_random_buffer(credentials1.data, sizeof(credentials1.data));
 
-       status = dcerpc_netr_ServerReqChallenge(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("ServerReqChallenge - %s\n", nt_errstr(status));
-               return False;
-       }
+       status = dcerpc_netr_ServerReqChallenge(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "ServerReqChallenge");
 
        E_md4hash(plain_pass, mach_password.hash);
 
        a.in.server_name = NULL;
-       a.in.account_name = talloc_asprintf(mem_ctx, "%s$", machine_name);
+       a.in.account_name = talloc_asprintf(tctx, "%s$", machine_name);
        a.in.secure_channel_type = sec_chan_type;
        a.in.computer_name = machine_name;
        a.in.negotiate_flags = &negotiate_flags;
@@ -198,30 +170,24 @@ static BOOL test_SetupCredentials2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                          &mach_password, &credentials3, 
                          negotiate_flags);
 
-       printf("Testing ServerAuthenticate2\n");
+       torture_comment(tctx, "Testing ServerAuthenticate2\n");
 
-       status = dcerpc_netr_ServerAuthenticate2(p, mem_ctx, &a);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("ServerAuthenticate2 - %s\n", nt_errstr(status));
-               return False;
-       }
+       status = dcerpc_netr_ServerAuthenticate2(p, tctx, &a);
+       torture_assert_ntstatus_ok(tctx, status, "ServerAuthenticate2");
 
-       if (!creds_client_check(creds, &credentials3)) {
-               printf("Credential chaining failed\n");
-               return False;
-       }
+       torture_assert(tctx, creds_client_check(creds, &credentials3), 
+               "Credential chaining failed");
 
-       printf("negotiate_flags=0x%08x\n", negotiate_flags);
+       torture_comment(tctx, "negotiate_flags=0x%08x\n", negotiate_flags);
 
        *creds_out = creds;
-       return True;
+       return true;
 }
 
 
-static BOOL test_SetupCredentials3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_SetupCredentials3(struct dcerpc_pipe *p, struct torture_context *tctx,
                            uint32_t negotiate_flags,
-                           const char *machine_name,
-                           const char *plain_pass,
+                           struct cli_credentials *machine_credentials,
                            struct creds_CredentialState **creds_out)
 {
        NTSTATUS status;
@@ -231,13 +197,16 @@ static BOOL test_SetupCredentials3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        struct creds_CredentialState *creds;
        struct samr_Password mach_password;
        uint32_t rid;
+       const char *machine_name;
+       const char *plain_pass;
 
-       printf("Testing ServerReqChallenge\n");
+       machine_name = cli_credentials_get_workstation(machine_credentials);
+       plain_pass = cli_credentials_get_password(machine_credentials);
 
-       creds = talloc(mem_ctx, struct creds_CredentialState);
-       if (!creds) {
-               return False;
-       }
+       torture_comment(tctx, "Testing ServerReqChallenge\n");
+
+       creds = talloc(tctx, struct creds_CredentialState);
+       torture_assert(tctx, creds != NULL, "memory allocation");
 
        r.in.server_name = NULL;
        r.in.computer_name = machine_name;
@@ -246,16 +215,13 @@ static BOOL test_SetupCredentials3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
        generate_random_buffer(credentials1.data, sizeof(credentials1.data));
 
-       status = dcerpc_netr_ServerReqChallenge(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("ServerReqChallenge - %s\n", nt_errstr(status));
-               return False;
-       }
+       status = dcerpc_netr_ServerReqChallenge(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "ServerReqChallenge");
 
        E_md4hash(plain_pass, mach_password.hash);
 
        a.in.server_name = NULL;
-       a.in.account_name = talloc_asprintf(mem_ctx, "%s$", machine_name);
+       a.in.account_name = talloc_asprintf(tctx, "%s$", machine_name);
        a.in.secure_channel_type = SEC_CHAN_BDC;
        a.in.computer_name = machine_name;
        a.in.negotiate_flags = &negotiate_flags;
@@ -268,98 +234,90 @@ static BOOL test_SetupCredentials3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                          &mach_password, &credentials3,
                          negotiate_flags);
 
-       printf("Testing ServerAuthenticate3\n");
+       torture_comment(tctx, "Testing ServerAuthenticate3\n");
 
-       status = dcerpc_netr_ServerAuthenticate3(p, mem_ctx, &a);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("ServerAuthenticate3 - %s\n", nt_errstr(status));
-               return False;
-       }
-
-       if (!creds_client_check(creds, &credentials3)) {
-               printf("Credential chaining failed\n");
-               return False;
-       }
+       status = dcerpc_netr_ServerAuthenticate3(p, tctx, &a);
+       torture_assert_ntstatus_ok(tctx, status, "ServerAuthenticate3");
+       torture_assert(tctx, creds_client_check(creds, &credentials3), "Credential chaining failed");
 
-       printf("negotiate_flags=0x%08x\n", negotiate_flags);
+       torture_comment(tctx, "negotiate_flags=0x%08x\n", negotiate_flags);
 
        *creds_out = creds;
-       return True;
+       return true;
 }
 
 /*
   try a change password for our machine account
 */
-static BOOL test_SetPassword(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_SetPassword(struct torture_context *tctx, 
+                            struct dcerpc_pipe *p,
+                            struct cli_credentials *machine_credentials)
 {
        NTSTATUS status;
        struct netr_ServerPasswordSet r;
        const char *password;
        struct creds_CredentialState *creds;
 
-       if (!test_SetupCredentials(p, mem_ctx, TEST_MACHINE_NAME, 
-                                  machine_password, &creds)) {
-               return False;
+       if (!test_SetupCredentials(p, tctx, machine_credentials, &creds)) {
+               return false;
        }
 
-       r.in.server_name = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
-       r.in.account_name = talloc_asprintf(mem_ctx, "%s$", TEST_MACHINE_NAME);
+       r.in.server_name = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
+       r.in.account_name = talloc_asprintf(tctx, "%s$", TEST_MACHINE_NAME);
        r.in.secure_channel_type = SEC_CHAN_BDC;
        r.in.computer_name = TEST_MACHINE_NAME;
 
-       password = generate_random_str(mem_ctx, 8);
+       password = generate_random_str(tctx, 8);
        E_md4hash(password, r.in.new_password.hash);
 
        creds_des_encrypt(creds, &r.in.new_password);
 
-       printf("Testing ServerPasswordSet on machine account\n");
-       d_printf("Changing machine account password to '%s'\n", password);
+       torture_comment(tctx, "Testing ServerPasswordSet on machine account\n");
+       torture_comment(tctx, "Changing machine account password to '%s'\n", 
+                       password);
 
        creds_client_authenticator(creds, &r.in.credential);
 
-       status = dcerpc_netr_ServerPasswordSet(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("ServerPasswordSet - %s\n", nt_errstr(status));
-               return False;
-       }
+       status = dcerpc_netr_ServerPasswordSet(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "ServerPasswordSet");
 
        if (!creds_client_check(creds, &r.out.return_authenticator.cred)) {
-               printf("Credential chaining failed\n");
+               torture_comment(tctx, "Credential chaining failed\n");
        }
 
        /* by changing the machine password twice we test the
           credentials chaining fully, and we verify that the server
           allows the password to be set to the same value twice in a
           row (match win2k3) */
-       printf("Testing a second ServerPasswordSet on machine account\n");
-       d_printf("Changing machine account password to '%s' (same as previous run)\n", password);
+       torture_comment(tctx, 
+               "Testing a second ServerPasswordSet on machine account\n");
+       torture_comment(tctx, 
+               "Changing machine account password to '%s' (same as previous run)\n", password);
 
        creds_client_authenticator(creds, &r.in.credential);
 
-       status = dcerpc_netr_ServerPasswordSet(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("ServerPasswordSet (2) - %s\n", nt_errstr(status));
-               return False;
-       }
+       status = dcerpc_netr_ServerPasswordSet(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "ServerPasswordSet (2)");
 
        if (!creds_client_check(creds, &r.out.return_authenticator.cred)) {
-               printf("Credential chaining failed\n");
+               torture_comment(tctx, "Credential chaining failed\n");
        }
 
-       machine_password = password;
+       cli_credentials_set_password(machine_credentials, password, CRED_SPECIFIED);
 
-       if (!test_SetupCredentials(p, mem_ctx, TEST_MACHINE_NAME, machine_password, &creds)) {
-               printf("ServerPasswordSet failed to actually change the password\n");
-               return False;
-       }
+       torture_assert(tctx, 
+               test_SetupCredentials(p, tctx, machine_credentials, &creds), 
+               "ServerPasswordSet failed to actually change the password");
 
-       return True;
+       return true;
 }
 
 /*
   try a change password for our machine account
 */
-static BOOL test_SetPassword2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_SetPassword2(struct torture_context *tctx, 
+                             struct dcerpc_pipe *p, 
+                             struct cli_credentials *machine_credentials)
 {
        NTSTATUS status;
        struct netr_ServerPasswordSet2 r;
@@ -367,42 +325,39 @@ static BOOL test_SetPassword2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
        struct creds_CredentialState *creds;
        struct samr_CryptPassword password_buf;
 
-       if (!test_SetupCredentials(p, mem_ctx, TEST_MACHINE_NAME,
-                                  machine_password, &creds)) {
-               return False;
+       if (!test_SetupCredentials(p, tctx, machine_credentials, &creds)) {
+               return false;
        }
 
-       r.in.server_name = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
-       r.in.account_name = talloc_asprintf(mem_ctx, "%s$", TEST_MACHINE_NAME);
+       r.in.server_name = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
+       r.in.account_name = talloc_asprintf(tctx, "%s$", TEST_MACHINE_NAME);
        r.in.secure_channel_type = SEC_CHAN_BDC;
        r.in.computer_name = TEST_MACHINE_NAME;
 
-       password = generate_random_str(mem_ctx, 8);
+       password = generate_random_str(tctx, 8);
        encode_pw_buffer(password_buf.data, password, STR_UNICODE);
        creds_arcfour_crypt(creds, password_buf.data, 516);
 
        memcpy(r.in.new_password.data, password_buf.data, 512);
        r.in.new_password.length = IVAL(password_buf.data, 512);
 
-       printf("Testing ServerPasswordSet2 on machine account\n");
-       d_printf("Changing machine account password to '%s'\n", password);
+       torture_comment(tctx, "Testing ServerPasswordSet2 on machine account\n");
+       torture_comment(tctx, "Changing machine account password to '%s'\n", password);
 
        creds_client_authenticator(creds, &r.in.credential);
 
-       status = dcerpc_netr_ServerPasswordSet2(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("ServerPasswordSet2 - %s\n", nt_errstr(status));
-               return False;
-       }
+       status = dcerpc_netr_ServerPasswordSet2(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "ServerPasswordSet2");
 
        if (!creds_client_check(creds, &r.out.return_authenticator.cred)) {
-               printf("Credential chaining failed\n");
+               torture_comment(tctx, "Credential chaining failed\n");
        }
 
-       machine_password = password;
+       cli_credentials_set_password(machine_credentials, password, CRED_SPECIFIED);
 
-       if (!lp_parm_bool(-1, "torture", "dangerous", False)) {
-               printf("Not testing ability to set password to '', enable dangerous tests to perform this test\n");
+       if (!torture_setting_bool(tctx, "dangerous", false)) {
+               torture_comment(tctx, 
+                       "Not testing ability to set password to '', enable dangerous tests to perform this test\n");
        } else {
                /* by changing the machine password to ""
                 * we check if the server uses password restrictions
@@ -416,85 +371,77 @@ static BOOL test_SetPassword2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
                memcpy(r.in.new_password.data, password_buf.data, 512);
                r.in.new_password.length = IVAL(password_buf.data, 512);
                
-               printf("Testing ServerPasswordSet2 on machine account\n");
-               d_printf("Changing machine account password to '%s'\n", password);
+               torture_comment(tctx, 
+                       "Testing ServerPasswordSet2 on machine account\n");
+               torture_comment(tctx, 
+                       "Changing machine account password to '%s'\n", password);
                
                creds_client_authenticator(creds, &r.in.credential);
                
-               status = dcerpc_netr_ServerPasswordSet2(p, mem_ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("ServerPasswordSet2 - %s\n", nt_errstr(status));
-                       return False;
-               }
+               status = dcerpc_netr_ServerPasswordSet2(p, tctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "ServerPasswordSet2");
                
                if (!creds_client_check(creds, &r.out.return_authenticator.cred)) {
-                       printf("Credential chaining failed\n");
+                       torture_comment(tctx, "Credential chaining failed\n");
                }
                
-               machine_password = password;
+               cli_credentials_set_password(machine_credentials, password, CRED_SPECIFIED);
        }
 
-       if (!test_SetupCredentials(p, mem_ctx, TEST_MACHINE_NAME, machine_password, &creds)) {
-               printf("ServerPasswordSet failed to actually change the password\n");
-               return False;
-       }
+       torture_assert(tctx, test_SetupCredentials(p, tctx, machine_credentials, &creds), 
+               "ServerPasswordSet failed to actually change the password");
 
        /* now try a random password */
-       password = generate_random_str(mem_ctx, 8);
+       password = generate_random_str(tctx, 8);
        encode_pw_buffer(password_buf.data, password, STR_UNICODE);
        creds_arcfour_crypt(creds, password_buf.data, 516);
 
        memcpy(r.in.new_password.data, password_buf.data, 512);
        r.in.new_password.length = IVAL(password_buf.data, 512);
 
-       printf("Testing second ServerPasswordSet2 on machine account\n");
-       d_printf("Changing machine account password to '%s'\n", password);
+       torture_comment(tctx, "Testing second ServerPasswordSet2 on machine account\n");
+       torture_comment(tctx, "Changing machine account password to '%s'\n", password);
 
        creds_client_authenticator(creds, &r.in.credential);
 
-       status = dcerpc_netr_ServerPasswordSet2(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("ServerPasswordSet2 (2) - %s\n", nt_errstr(status));
-               return False;
-       }
+       status = dcerpc_netr_ServerPasswordSet2(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "ServerPasswordSet2 (2)");
 
        if (!creds_client_check(creds, &r.out.return_authenticator.cred)) {
-               printf("Credential chaining failed\n");
+               torture_comment(tctx, "Credential chaining failed\n");
        }
 
        /* by changing the machine password twice we test the
           credentials chaining fully, and we verify that the server
           allows the password to be set to the same value twice in a
           row (match win2k3) */
-       printf("Testing a second ServerPasswordSet2 on machine account\n");
-       d_printf("Changing machine account password to '%s' (same as previous run)\n", password);
+       torture_comment(tctx, 
+               "Testing a second ServerPasswordSet2 on machine account\n");
+       torture_comment(tctx, 
+               "Changing machine account password to '%s' (same as previous run)\n", password);
 
        creds_client_authenticator(creds, &r.in.credential);
 
-       status = dcerpc_netr_ServerPasswordSet2(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("ServerPasswordSet (3) - %s\n", nt_errstr(status));
-               return False;
-       }
+       status = dcerpc_netr_ServerPasswordSet2(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "ServerPasswordSet (3)");
 
        if (!creds_client_check(creds, &r.out.return_authenticator.cred)) {
-               printf("Credential chaining failed\n");
+               torture_comment(tctx, "Credential chaining failed\n");
        }
 
-       machine_password = password;
+       cli_credentials_set_password(machine_credentials, password, CRED_SPECIFIED);
 
-       if (!test_SetupCredentials(p, mem_ctx, TEST_MACHINE_NAME, machine_password, &creds)) {
-               printf("ServerPasswordSet failed to actually change the password\n");
-               return False;
-       }
+       torture_assert (tctx, 
+               test_SetupCredentials(p, tctx, machine_credentials, &creds), 
+               "ServerPasswordSet failed to actually change the password");
 
-       return True;
+       return true;
 }
 
 /*
   try a netlogon SamLogon
 */
-BOOL test_netlogon_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+bool test_netlogon_ops(struct dcerpc_pipe *p, struct torture_context *tctx,
                              struct cli_credentials *credentials, 
                              struct creds_CredentialState *creds)
 {
@@ -504,17 +451,16 @@ BOOL test_netlogon_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        struct netr_NetworkInfo ninfo;
        DATA_BLOB names_blob, chal, lm_resp, nt_resp;
        int i;
-       BOOL ret = True;
        int flags = CLI_CRED_NTLM_AUTH;
-       if (lp_client_lanman_auth()) {
+       if (lp_client_lanman_auth(global_loadparm)) {
                flags |= CLI_CRED_LANMAN_AUTH;
        }
 
-       if (lp_client_ntlmv2_auth()) {
+       if (lp_client_ntlmv2_auth(global_loadparm)) {
                flags |= CLI_CRED_NTLMv2_AUTH;
        }
 
-       cli_credentials_get_ntlm_username_domain(cmdline_credentials, mem_ctx, 
+       cli_credentials_get_ntlm_username_domain(cmdline_credentials, tctx, 
                                                 &ninfo.identity_info.account_name.string,
                                                 &ninfo.identity_info.domain_name.string);
        
@@ -523,20 +469,16 @@ BOOL test_netlogon_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        chal = data_blob_const(ninfo.challenge, 
                               sizeof(ninfo.challenge));
 
-       names_blob = NTLMv2_generate_names_blob(mem_ctx, cli_credentials_get_workstation(credentials), 
+       names_blob = NTLMv2_generate_names_blob(tctx, cli_credentials_get_workstation(credentials), 
                                                cli_credentials_get_domain(credentials));
 
-       status = cli_credentials_get_ntlm_response(cmdline_credentials, mem_ctx, 
+       status = cli_credentials_get_ntlm_response(cmdline_credentials, tctx, 
                                                   &flags, 
                                                   chal,
                                                   names_blob,
                                                   &lm_resp, &nt_resp,
                                                   NULL, NULL);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("cli_credentials_get_ntlm_response failed: %s\n", 
-                      nt_errstr(status));
-               return False;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "cli_credentials_get_ntlm_response failed");
 
        ninfo.lm.data = lm_resp.data;
        ninfo.lm.length = lm_resp.length;
@@ -549,7 +491,7 @@ BOOL test_netlogon_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        ninfo.identity_info.logon_id_high = 0;
        ninfo.identity_info.workstation.string = cli_credentials_get_workstation(credentials);
 
-       r.in.server_name = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
+       r.in.server_name = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
        r.in.computer_name = cli_credentials_get_workstation(credentials);
        r.in.credential = &auth;
        r.in.return_authenticator = &auth2;
@@ -564,17 +506,11 @@ BOOL test_netlogon_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                
                r.in.validation_level = i;
                
-               status = dcerpc_netr_LogonSamLogon(p, mem_ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("LogonSamLogon failed: %s\n", 
-                              nt_errstr(status));
-                       return False;
-               }
+               status = dcerpc_netr_LogonSamLogon(p, tctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "LogonSamLogon failed");
                
-               if (!creds_client_check(creds, &r.out.return_authenticator->cred)) {
-                       printf("Credential chaining failed\n");
-                       ret = False;
-               }
+               torture_assert(tctx, creds_client_check(creds, &r.out.return_authenticator->cred), 
+                       "Credential chaining failed");
        }
 
        r.in.credential = NULL;
@@ -583,33 +519,31 @@ BOOL test_netlogon_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
                r.in.validation_level = i;
 
-               printf("Testing SamLogon with validation level %d and a NULL credential\n", i);
+               torture_comment(tctx, "Testing SamLogon with validation level %d and a NULL credential\n", i);
 
-               status = dcerpc_netr_LogonSamLogon(p, mem_ctx, &r);
-               if (!NT_STATUS_EQUAL(status, NT_STATUS_INVALID_PARAMETER)) {
-                       printf("LogonSamLogon expected INVALID_PARAMETER, got: %s\n", nt_errstr(status));
-                       ret = False;
-               }
+               status = dcerpc_netr_LogonSamLogon(p, tctx, &r);
+               torture_assert_ntstatus_equal(tctx, status, NT_STATUS_INVALID_PARAMETER, 
+                       "LogonSamLogon expected INVALID_PARAMETER");
 
        }
 
-       return ret;
+       return true;
 }
 
 /*
   try a netlogon SamLogon
 */
-static BOOL test_SamLogon(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_SamLogon(struct torture_context *tctx, 
+                         struct dcerpc_pipe *p,
                          struct cli_credentials *credentials)
 {
        struct creds_CredentialState *creds;
 
-       if (!test_SetupCredentials(p, mem_ctx, cli_credentials_get_workstation(credentials), 
-                                  cli_credentials_get_password(credentials), &creds)) {
-               return False;
+       if (!test_SetupCredentials(p, tctx, credentials, &creds)) {
+               return false;
        }
 
-       return test_netlogon_ops(p, mem_ctx, credentials, creds);
+       return test_netlogon_ops(p, tctx, credentials, creds);
 }
 
 /* we remember the sequence numbers so we can easily do a DatabaseDelta */
@@ -618,25 +552,21 @@ static uint64_t sequence_nums[3];
 /*
   try a netlogon DatabaseSync
 */
-static BOOL test_DatabaseSync(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_DatabaseSync(struct torture_context *tctx, 
+                             struct dcerpc_pipe *p,
+                             struct cli_credentials *machine_credentials)
 {
        NTSTATUS status;
        struct netr_DatabaseSync r;
        struct creds_CredentialState *creds;
        const uint32_t database_ids[] = {SAM_DATABASE_DOMAIN, SAM_DATABASE_BUILTIN, SAM_DATABASE_PRIVS}; 
        int i;
-       BOOL ret = True;
 
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
-               printf("skipping DatabaseSync test against Samba4\n");
-               return True;
+       if (!test_SetupCredentials(p, tctx, machine_credentials, &creds)) {
+               return false;
        }
 
-       if (!test_SetupCredentials(p, mem_ctx, TEST_MACHINE_NAME, machine_password, &creds)) {
-               return False;
-       }
-
-       r.in.logon_server = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
+       r.in.logon_server = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
        r.in.computername = TEST_MACHINE_NAME;
        r.in.preferredmaximumlength = (uint32_t)-1;
        ZERO_STRUCT(r.in.return_authenticator);
@@ -645,21 +575,19 @@ static BOOL test_DatabaseSync(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
                r.in.sync_context = 0;
                r.in.database_id = database_ids[i];
 
-               printf("Testing DatabaseSync of id %d\n", r.in.database_id);
+               torture_comment(tctx, "Testing DatabaseSync of id %d\n", r.in.database_id);
 
                do {
                        creds_client_authenticator(creds, &r.in.credential);
 
-                       status = dcerpc_netr_DatabaseSync(p, mem_ctx, &r);
-                       if (!NT_STATUS_IS_OK(status) &&
-                           !NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES)) {
-                               printf("DatabaseSync - %s\n", nt_errstr(status));
-                               ret = False;
-                               break;
-                       }
+                       status = dcerpc_netr_DatabaseSync(p, tctx, &r);
+                       if (NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES))
+                           break;
+
+                       torture_assert_ntstatus_ok(tctx, status, "DatabaseSync");
 
                        if (!creds_client_check(creds, &r.out.return_authenticator.cred)) {
-                               printf("Credential chaining failed\n");
+                               torture_comment(tctx, "Credential chaining failed\n");
                        }
 
                        r.in.sync_context = r.out.sync_context;
@@ -670,39 +598,35 @@ static BOOL test_DatabaseSync(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
                            r.out.delta_enum_array->delta_enum[0].delta_union.domain) {
                                sequence_nums[r.in.database_id] = 
                                        r.out.delta_enum_array->delta_enum[0].delta_union.domain->sequence_num;
-                               printf("\tsequence_nums[%d]=%llu\n",
+                               torture_comment(tctx, "\tsequence_nums[%d]=%llu\n",
                                       r.in.database_id, 
                                       (unsigned long long)sequence_nums[r.in.database_id]);
                        }
                } while (NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES));
        }
 
-       return ret;
+       return true;
 }
 
 
 /*
   try a netlogon DatabaseDeltas
 */
-static BOOL test_DatabaseDeltas(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_DatabaseDeltas(struct torture_context *tctx, 
+                               struct dcerpc_pipe *p,
+                               struct cli_credentials *machine_credentials)
 {
        NTSTATUS status;
        struct netr_DatabaseDeltas r;
        struct creds_CredentialState *creds;
        const uint32_t database_ids[] = {0, 1, 2}; 
        int i;
-       BOOL ret = True;
 
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
-               printf("skipping DatabaseDeltas test against Samba4\n");
-               return True;
+       if (!test_SetupCredentials(p, tctx, machine_credentials, &creds)) {
+               return false;
        }
 
-       if (!test_SetupCredentials(p, mem_ctx, TEST_MACHINE_NAME, machine_password, &creds)) {
-               return False;
-       }
-
-       r.in.logon_server = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
+       r.in.logon_server = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
        r.in.computername = TEST_MACHINE_NAME;
        r.in.preferredmaximumlength = (uint32_t)-1;
        ZERO_STRUCT(r.in.return_authenticator);
@@ -715,54 +639,52 @@ static BOOL test_DatabaseDeltas(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
 
                r.in.sequence_num -= 1;
 
-
-               printf("Testing DatabaseDeltas of id %d at %llu\n", 
+               torture_comment(tctx, "Testing DatabaseDeltas of id %d at %llu\n", 
                       r.in.database_id, (unsigned long long)r.in.sequence_num);
 
                do {
                        creds_client_authenticator(creds, &r.in.credential);
 
-                       status = dcerpc_netr_DatabaseDeltas(p, mem_ctx, &r);
+                       status = dcerpc_netr_DatabaseDeltas(p, tctx, &r);
                        if (NT_STATUS_EQUAL(status, 
                                             NT_STATUS_SYNCHRONIZATION_REQUIRED)) {
-                               printf("no considering %s to be an error\n",
+                               torture_comment(tctx, "not considering %s to be an error\n",
                                       nt_errstr(status));
-                               return True;
-                       }
-                       if (!NT_STATUS_IS_OK(status) &&
-                           !NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES)) {
-                               printf("DatabaseDeltas - %s\n", nt_errstr(status));
-                               ret = False;
-                               break;
+                               return true;
                        }
+                       if (NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES)) 
+                           break;
+
+                       torture_assert_ntstatus_ok(tctx, status, "DatabaseDeltas");
 
                        if (!creds_client_check(creds, &r.out.return_authenticator.cred)) {
-                               printf("Credential chaining failed\n");
+                               torture_comment(tctx, "Credential chaining failed\n");
                        }
 
                        r.in.sequence_num++;
                } while (NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES));
        }
 
-       return ret;
+       return true;
 }
 
 
 /*
   try a netlogon AccountDeltas
 */
-static BOOL test_AccountDeltas(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_AccountDeltas(struct torture_context *tctx, 
+                              struct dcerpc_pipe *p,
+                              struct cli_credentials *machine_credentials)
 {
        NTSTATUS status;
        struct netr_AccountDeltas r;
        struct creds_CredentialState *creds;
-       BOOL ret = True;
 
-       if (!test_SetupCredentials(p, mem_ctx, TEST_MACHINE_NAME, machine_password, &creds)) {
-               return False;
+       if (!test_SetupCredentials(p, tctx, machine_credentials, &creds)) {
+               return false;
        }
 
-       r.in.logon_server = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
+       r.in.logon_server = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
        r.in.computername = TEST_MACHINE_NAME;
        ZERO_STRUCT(r.in.return_authenticator);
        creds_client_authenticator(creds, &r.in.credential);
@@ -771,33 +693,28 @@ static BOOL test_AccountDeltas(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
        r.in.level=0;
        r.in.buffersize=100;
 
-       printf("Testing AccountDeltas\n");
-
        /* w2k3 returns "NOT IMPLEMENTED" for this call */
-       status = dcerpc_netr_AccountDeltas(p, mem_ctx, &r);
-       if (!NT_STATUS_EQUAL(status, NT_STATUS_NOT_IMPLEMENTED)) {
-               printf("AccountDeltas - %s\n", nt_errstr(status));
-               ret = False;
-       }
+       status = dcerpc_netr_AccountDeltas(p, tctx, &r);
+       torture_assert_ntstatus_equal(tctx, status, NT_STATUS_NOT_IMPLEMENTED, "AccountDeltas");
 
-       return ret;
+       return true;
 }
 
 /*
   try a netlogon AccountSync
 */
-static BOOL test_AccountSync(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_AccountSync(struct torture_context *tctx, struct dcerpc_pipe *p, 
+                            struct cli_credentials *machine_credentials)
 {
        NTSTATUS status;
        struct netr_AccountSync r;
        struct creds_CredentialState *creds;
-       BOOL ret = True;
 
-       if (!test_SetupCredentials(p, mem_ctx, TEST_MACHINE_NAME, machine_password, &creds)) {
-               return False;
+       if (!test_SetupCredentials(p, tctx, machine_credentials, &creds)) {
+               return false;
        }
 
-       r.in.logon_server = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
+       r.in.logon_server = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
        r.in.computername = TEST_MACHINE_NAME;
        ZERO_STRUCT(r.in.return_authenticator);
        creds_client_authenticator(creds, &r.in.credential);
@@ -806,177 +723,132 @@ static BOOL test_AccountSync(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
        r.in.level=0;
        r.in.buffersize=100;
 
-       printf("Testing AccountSync\n");
-
        /* w2k3 returns "NOT IMPLEMENTED" for this call */
-       status = dcerpc_netr_AccountSync(p, mem_ctx, &r);
-       if (!NT_STATUS_EQUAL(status, NT_STATUS_NOT_IMPLEMENTED)) {
-               printf("AccountSync - %s\n", nt_errstr(status));
-               ret = False;
-       }
+       status = dcerpc_netr_AccountSync(p, tctx, &r);
+       torture_assert_ntstatus_equal(tctx, status, NT_STATUS_NOT_IMPLEMENTED, "AccountSync");
 
-       return ret;
+       return true;
 }
 
 /*
   try a netlogon GetDcName
 */
-static BOOL test_GetDcName(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_GetDcName(struct torture_context *tctx, 
+                          struct dcerpc_pipe *p)
 {
        NTSTATUS status;
        struct netr_GetDcName r;
 
+       r.in.logon_server = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
+       r.in.domainname = lp_workgroup(global_loadparm);
 
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
-               printf("skipping GetDCName test against Samba4\n");
-               return True;
-       }       
-
-       r.in.logon_server = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
-       r.in.domainname = lp_workgroup();
-
-       printf("Testing GetDcName\n");
-
-       status = dcerpc_netr_GetDcName(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
-               printf("GetDcName - %s/%s\n", nt_errstr(status), win_errstr(r.out.result));
-               return False;
-       }
+       status = dcerpc_netr_GetDcName(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "GetDcName");
+       torture_assert_werr_ok(tctx, r.out.result, "GetDcName");
 
-       d_printf("\tDC is at '%s'\n", r.out.dcname);
+       torture_comment(tctx, "\tDC is at '%s'\n", r.out.dcname);
 
-       return True;
+       return true;
 }
 
 /*
   try a netlogon LogonControl 
 */
-static BOOL test_LogonControl(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_LogonControl(struct torture_context *tctx, 
+                             struct dcerpc_pipe *p)
 {
        NTSTATUS status;
        struct netr_LogonControl r;
-       BOOL ret = True;
        int i;
 
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
-               printf("skipping LogonControl test against Samba4\n");
-               return True;
-       }
-
-       r.in.logon_server = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
+       r.in.logon_server = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
        r.in.function_code = 1;
 
        for (i=1;i<4;i++) {
                r.in.level = i;
 
-               printf("Testing LogonControl level %d\n", i);
+               torture_comment(tctx, "Testing LogonControl level %d\n", i);
 
-               status = dcerpc_netr_LogonControl(p, mem_ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("LogonControl - %s\n", nt_errstr(status));
-                       ret = False;
-               }
+               status = dcerpc_netr_LogonControl(p, tctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "LogonControl");
        }
 
-       return ret;
+       return true;
 }
 
 
 /*
   try a netlogon GetAnyDCName
 */
-static BOOL test_GetAnyDCName(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_GetAnyDCName(struct torture_context *tctx, 
+                             struct dcerpc_pipe *p)
 {
        NTSTATUS status;
        struct netr_GetAnyDCName r;
 
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
-               printf("skipping GetAnyDCName test against Samba4\n");
-               return True;
-       }
-
-       r.in.logon_server = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
-       r.in.domainname = lp_workgroup();
+       r.in.logon_server = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
+       r.in.domainname = lp_workgroup(global_loadparm);
 
-       printf("Testing GetAnyDCName\n");
-
-       status = dcerpc_netr_GetAnyDCName(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("GetAnyDCName - %s\n", nt_errstr(status));
-               return False;
-       }
+       status = dcerpc_netr_GetAnyDCName(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "GetAnyDCName");
 
        if (r.out.dcname) {
-               printf("\tDC is at '%s'\n", r.out.dcname);
+           torture_comment(tctx, "\tDC is at '%s'\n", r.out.dcname);
        }
 
-       return True;
+       return true;
 }
 
 
 /*
   try a netlogon LogonControl2
 */
-static BOOL test_LogonControl2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_LogonControl2(struct torture_context *tctx, 
+                              struct dcerpc_pipe *p)
 {
        NTSTATUS status;
        struct netr_LogonControl2 r;
-       BOOL ret = True;
        int i;
 
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
-               printf("skipping LogonControl2 test against Samba4\n");
-               return True;
-       }
-
-       r.in.logon_server = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
+       r.in.logon_server = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
 
        r.in.function_code = NETLOGON_CONTROL_REDISCOVER;
-       r.in.data.domain = lp_workgroup();
+       r.in.data.domain = lp_workgroup(global_loadparm);
 
        for (i=1;i<4;i++) {
                r.in.level = i;
 
-               printf("Testing LogonControl2 level %d function %d\n", 
+               torture_comment(tctx, "Testing LogonControl2 level %d function %d\n", 
                       i, r.in.function_code);
 
-               status = dcerpc_netr_LogonControl2(p, mem_ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("LogonControl - %s\n", nt_errstr(status));
-                       ret = False;
-               }
+               status = dcerpc_netr_LogonControl2(p, tctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "LogonControl");
        }
 
        r.in.function_code = NETLOGON_CONTROL_TC_QUERY;
-       r.in.data.domain = lp_workgroup();
+       r.in.data.domain = lp_workgroup(global_loadparm);
 
        for (i=1;i<4;i++) {
                r.in.level = i;
 
-               printf("Testing LogonControl2 level %d function %d\n", 
+               torture_comment(tctx, "Testing LogonControl2 level %d function %d\n", 
                       i, r.in.function_code);
 
-               status = dcerpc_netr_LogonControl2(p, mem_ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("LogonControl - %s\n", nt_errstr(status));
-                       ret = False;
-               }
+               status = dcerpc_netr_LogonControl2(p, tctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "LogonControl");
        }
 
        r.in.function_code = NETLOGON_CONTROL_TRANSPORT_NOTIFY;
-       r.in.data.domain = lp_workgroup();
+       r.in.data.domain = lp_workgroup(global_loadparm);
 
        for (i=1;i<4;i++) {
                r.in.level = i;
 
-               printf("Testing LogonControl2 level %d function %d\n", 
+               torture_comment(tctx, "Testing LogonControl2 level %d function %d\n", 
                       i, r.in.function_code);
 
-               status = dcerpc_netr_LogonControl2(p, mem_ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("LogonControl - %s\n", nt_errstr(status));
-                       ret = False;
-               }
+               status = dcerpc_netr_LogonControl2(p, tctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "LogonControl");
        }
 
        r.in.function_code = NETLOGON_CONTROL_SET_DBFLAG;
@@ -985,43 +857,36 @@ static BOOL test_LogonControl2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
        for (i=1;i<4;i++) {
                r.in.level = i;
 
-               printf("Testing LogonControl2 level %d function %d\n", 
+               torture_comment(tctx, "Testing LogonControl2 level %d function %d\n", 
                       i, r.in.function_code);
 
-               status = dcerpc_netr_LogonControl2(p, mem_ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("LogonControl - %s\n", nt_errstr(status));
-                       ret = False;
-               }
+               status = dcerpc_netr_LogonControl2(p, tctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "LogonControl");
        }
 
-       return ret;
+       return true;
 }
 
 /*
   try a netlogon DatabaseSync2
 */
-static BOOL test_DatabaseSync2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_DatabaseSync2(struct torture_context *tctx, 
+                              struct dcerpc_pipe *p,
+                              struct cli_credentials *machine_credentials)
 {
        NTSTATUS status;
        struct netr_DatabaseSync2 r;
        struct creds_CredentialState *creds;
        const uint32_t database_ids[] = {0, 1, 2}; 
        int i;
-       BOOL ret = True;
 
-       if (!test_SetupCredentials2(p, mem_ctx, NETLOGON_NEG_AUTH2_FLAGS, 
-                                   TEST_MACHINE_NAME, machine_password, 
+       if (!test_SetupCredentials2(p, tctx, NETLOGON_NEG_AUTH2_FLAGS, 
+                                   machine_credentials,
                                    SEC_CHAN_BDC, &creds)) {
-               return False;
-       }
-
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
-               printf("skipping DatabaseSync2 test against Samba4\n");
-               return True;
+               return false;
        }
 
-       r.in.logon_server = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
+       r.in.logon_server = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
        r.in.computername = TEST_MACHINE_NAME;
        r.in.preferredmaximumlength = (uint32_t)-1;
        ZERO_STRUCT(r.in.return_authenticator);
@@ -1031,94 +896,78 @@ static BOOL test_DatabaseSync2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
                r.in.database_id = database_ids[i];
                r.in.restart_state = 0;
 
-               printf("Testing DatabaseSync2 of id %d\n", r.in.database_id);
+               torture_comment(tctx, "Testing DatabaseSync2 of id %d\n", r.in.database_id);
 
                do {
                        creds_client_authenticator(creds, &r.in.credential);
 
-                       status = dcerpc_netr_DatabaseSync2(p, mem_ctx, &r);
-                       if (!NT_STATUS_IS_OK(status) &&
-                           !NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES)) {
-                               printf("DatabaseSync2 - %s\n", nt_errstr(status));
-                               ret = False;
-                               break;
-                       }
+                       status = dcerpc_netr_DatabaseSync2(p, tctx, &r);
+                       if (NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES))
+                           break;
+
+                       torture_assert_ntstatus_ok(tctx, status, "DatabaseSync2");
 
                        if (!creds_client_check(creds, &r.out.return_authenticator.cred)) {
-                               printf("Credential chaining failed\n");
+                               torture_comment(tctx, "Credential chaining failed\n");
                        }
 
                        r.in.sync_context = r.out.sync_context;
                } while (NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES));
        }
 
-       return ret;
+       return true;
 }
 
 
 /*
   try a netlogon LogonControl2Ex
 */
-static BOOL test_LogonControl2Ex(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_LogonControl2Ex(struct torture_context *tctx, 
+                                struct dcerpc_pipe *p)
 {
        NTSTATUS status;
        struct netr_LogonControl2Ex r;
-       BOOL ret = True;
        int i;
 
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
-               printf("skipping DatabaseSync2 test against Samba4\n");
-               return True;
-       }
-
-       r.in.logon_server = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
+       r.in.logon_server = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
 
        r.in.function_code = NETLOGON_CONTROL_REDISCOVER;
-       r.in.data.domain = lp_workgroup();
+       r.in.data.domain = lp_workgroup(global_loadparm);
 
        for (i=1;i<4;i++) {
                r.in.level = i;
 
-               printf("Testing LogonControl2Ex level %d function %d\n", 
+               torture_comment(tctx, "Testing LogonControl2Ex level %d function %d\n", 
                       i, r.in.function_code);
 
-               status = dcerpc_netr_LogonControl2Ex(p, mem_ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("LogonControl - %s\n", nt_errstr(status));
-                       ret = False;
-               }
+               status = dcerpc_netr_LogonControl2Ex(p, tctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "LogonControl");
        }
 
        r.in.function_code = NETLOGON_CONTROL_TC_QUERY;
-       r.in.data.domain = lp_workgroup();
+       r.in.data.domain = lp_workgroup(global_loadparm);
 
        for (i=1;i<4;i++) {
                r.in.level = i;
 
-               printf("Testing LogonControl2Ex level %d function %d\n", 
+               torture_comment(tctx, "Testing LogonControl2Ex level %d function %d\n", 
                       i, r.in.function_code);
 
-               status = dcerpc_netr_LogonControl2Ex(p, mem_ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("LogonControl - %s\n", nt_errstr(status));
-                       ret = False;
-               }
+               status = dcerpc_netr_LogonControl2Ex(p, tctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "LogonControl");
        }
 
        r.in.function_code = NETLOGON_CONTROL_TRANSPORT_NOTIFY;
-       r.in.data.domain = lp_workgroup();
+       r.in.data.domain = lp_workgroup(global_loadparm);
 
        for (i=1;i<4;i++) {
                r.in.level = i;
 
-               printf("Testing LogonControl2Ex level %d function %d\n", 
+               torture_comment(tctx, "Testing LogonControl2Ex level %d function %d\n", 
                       i, r.in.function_code);
 
-               status = dcerpc_netr_LogonControl2Ex(p, mem_ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("LogonControl - %s\n", nt_errstr(status));
-                       ret = False;
-               }
+               status = dcerpc_netr_LogonControl2Ex(p, tctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "LogonControl");
        }
 
        r.in.function_code = NETLOGON_CONTROL_SET_DBFLAG;
@@ -1127,77 +976,63 @@ static BOOL test_LogonControl2Ex(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
        for (i=1;i<4;i++) {
                r.in.level = i;
 
-               printf("Testing LogonControl2Ex level %d function %d\n", 
+               torture_comment(tctx, "Testing LogonControl2Ex level %d function %d\n", 
                       i, r.in.function_code);
 
-               status = dcerpc_netr_LogonControl2Ex(p, mem_ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("LogonControl - %s\n", nt_errstr(status));
-                       ret = False;
-               }
+               status = dcerpc_netr_LogonControl2Ex(p, tctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "LogonControl");
        }
 
-       return ret;
+       return true;
 }
 
-static BOOL test_netr_DsRGetForestTrustInformation(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, const char *trusted_domain_name) 
+static bool test_netr_DsRGetForestTrustInformation(struct torture_context *tctx, 
+                                                  struct dcerpc_pipe *p, const char *trusted_domain_name) 
 {
        NTSTATUS status;
        struct netr_DsRGetForestTrustInformation r;
-       BOOL ret = True;
        struct lsa_ForestTrustInformation info, *info_ptr;
 
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
-               printf("skipping DsRGetForestTrustInformation test against Samba4\n");
-               return True;
-       }
-
        info_ptr = &info;
 
-       r.in.server_name = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
+       r.in.server_name = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
        r.in.trusted_domain_name = trusted_domain_name;
        r.in.flags = 0;
        r.out.forest_trust_info = &info_ptr;
 
-       printf("Testing netr_DsRGetForestTrustInformation\n");
+       torture_comment(tctx ,"Testing netr_DsRGetForestTrustInformation\n");
 
-       status = dcerpc_netr_DsRGetForestTrustInformation(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
-               printf("netr_DsRGetForestTrustInformation - %s/%s\n", 
-                      nt_errstr(status), win_errstr(r.out.result));
-               ret = False;
-       }
-       return ret;
+       status = dcerpc_netr_DsRGetForestTrustInformation(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "DsRGetForestTrustInformation");
+       torture_assert_werr_ok(tctx, r.out.result, "DsRGetForestTrustInformation");
+
+       return true;
 }
 
 /*
   try a netlogon netr_DsrEnumerateDomainTrusts
 */
-static BOOL test_DsrEnumerateDomainTrusts(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_DsrEnumerateDomainTrusts(struct torture_context *tctx, 
+                                         struct dcerpc_pipe *p)
 {
        NTSTATUS status;
        struct netr_DsrEnumerateDomainTrusts r;
        int i;
 
-       r.in.server_name = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
+       r.in.server_name = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
        r.in.trust_flags = 0x3f;
 
-       printf("Testing netr_DsrEnumerateDomainTrusts\n");
-
-       status = dcerpc_netr_DsrEnumerateDomainTrusts(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
-               printf("netr_DsrEnumerateDomainTrusts - %s/%s\n", 
-                      nt_errstr(status), win_errstr(r.out.result));
-               return False;
-       }
+       status = dcerpc_netr_DsrEnumerateDomainTrusts(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "DsrEnumerateDomaintrusts");
+       torture_assert_werr_ok(tctx, r.out.result, "DsrEnumerateDomaintrusts");
 
        /* when trusted_domain_name is NULL, netr_DsRGetForestTrustInformation
         * will show non-forest trusts and all UPN suffixes of the own forest
         * as LSA_FOREST_TRUST_TOP_LEVEL_NAME types */
 
        if (r.out.count) {
-               if (!test_netr_DsRGetForestTrustInformation(p, mem_ctx, NULL)) {
-                       return False;
+               if (!test_netr_DsRGetForestTrustInformation(tctx, p, NULL)) {
+                       return false;
                }
        }
 
@@ -1206,194 +1041,145 @@ static BOOL test_DsrEnumerateDomainTrusts(struct dcerpc_pipe *p, TALLOC_CTX *mem
                /* get info for transitive forest trusts */
 
                if (r.out.trusts[i].trust_attributes & NETR_TRUST_ATTRIBUTE_FOREST_TRANSITIVE) {
-                       if (!test_netr_DsRGetForestTrustInformation(p, mem_ctx
+                       if (!test_netr_DsRGetForestTrustInformation(tctx, p
                                                                    r.out.trusts[i].dns_name)) {
-                               return False;
+                               return false;
                        }
                }
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_netr_DsRGetSiteName(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_netr_DsRGetSiteName(struct dcerpc_pipe *p, struct torture_context *tctx,
                                     const char *computer_name, 
                                     const char *expected_site) 
 {
        NTSTATUS status;
        struct netr_DsRGetSiteName r;
-       BOOL ret = True;
 
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
-               printf("skipping DsRGetSiteName test against Samba4\n");
-               return True;
-       }
+       if (torture_setting_bool(tctx, "samba4", false))
+               torture_skip(tctx, "skipping DsRGetSiteName test against Samba4");
 
        r.in.computer_name              = computer_name;
-       printf("Testing netr_DsRGetSiteName\n");
+       torture_comment(tctx, "Testing netr_DsRGetSiteName\n");
 
-       status = dcerpc_netr_DsRGetSiteName(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
-               printf("netr_DsRGetSiteName - %s/%s\n", 
-                      nt_errstr(status), win_errstr(r.out.result));
-               ret = False;
-       } else {
-               if (strcmp(expected_site, r.out.site) != 0) {
-                       d_printf("netr_DsRGetSiteName - unexpected result: %s, expected %s\n", 
-                              r.out.site, expected_site);
-                                       
-                       ret = False;
-               }
-       }
-       r.in.computer_name              = talloc_asprintf(mem_ctx, "\\\\%s", computer_name);
-       d_printf("Testing netr_DsRGetSiteName with broken computer name: %s\n", r.in.computer_name);
-
-       status = dcerpc_netr_DsRGetSiteName(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("netr_DsRGetSiteName - %s\n", 
-                      nt_errstr(status));
-               ret = False;
-       } else if (!W_ERROR_EQUAL(r.out.result, WERR_INVALID_COMPUTERNAME)) {
-               printf("netr_DsRGetSiteName - incorrect error return %s, expected %s\n", 
-                      win_errstr(r.out.result), win_errstr(WERR_INVALID_COMPUTERNAME));
-               ret = False;
-       }
-       return ret;
+       status = dcerpc_netr_DsRGetSiteName(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "DsRGetSiteName");
+       torture_assert_werr_ok(tctx, r.out.result, "DsRGetSiteName");
+       torture_assert_str_equal(tctx, expected_site, r.out.site, "netr_DsRGetSiteName");
+
+       r.in.computer_name              = talloc_asprintf(tctx, "\\\\%s", computer_name);
+       torture_comment(tctx, 
+                       "Testing netr_DsRGetSiteName with broken computer name: %s\n", r.in.computer_name);
+
+       status = dcerpc_netr_DsRGetSiteName(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "DsRGetSiteName");
+       torture_assert_werr_equal(tctx, r.out.result, WERR_INVALID_COMPUTERNAME, "netr_DsRGetSiteName");
+
+       return true;
 }
 
 /*
   try a netlogon netr_DsRGetDCName
 */
-static BOOL test_netr_DsRGetDCName(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_netr_DsRGetDCName(struct torture_context *tctx, 
+                                  struct dcerpc_pipe *p)
 {
        NTSTATUS status;
        struct netr_DsRGetDCName r;
-       BOOL ret = True;
 
-       r.in.server_unc         = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
-       r.in.domain_name        = talloc_asprintf(mem_ctx, "%s", lp_realm());
+       r.in.server_unc         = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
+       r.in.domain_name        = talloc_asprintf(tctx, "%s", lp_realm(global_loadparm));
        r.in.domain_guid        = NULL;
        r.in.site_guid          = NULL;
        r.in.flags              = DS_RETURN_DNS_NAME;
 
-       printf("Testing netr_DsRGetDCName\n");
-
-       status = dcerpc_netr_DsRGetDCName(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
-               printf("netr_DsRGetDCName - %s/%s\n", 
-                      nt_errstr(status), win_errstr(r.out.result));
-               ret = False;
-       } else {
-               ret = test_netr_DsRGetSiteName(p, mem_ctx, 
-                                              r.out.info->dc_unc, 
-                                              r.out.info->dc_site_name);
-       }
-
-       return ret;
+       status = dcerpc_netr_DsRGetDCName(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "DsRGetDCName");
+       torture_assert_werr_ok(tctx, r.out.result, "DsRGetDCName");
+       return test_netr_DsRGetSiteName(p, tctx, 
+                                      r.out.info->dc_unc, 
+                                      r.out.info->dc_site_name);
 }
 
 /*
   try a netlogon netr_DsRGetDCNameEx
 */
-static BOOL test_netr_DsRGetDCNameEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_netr_DsRGetDCNameEx(struct torture_context *tctx, 
+                                    struct dcerpc_pipe *p)
 {
        NTSTATUS status;
        struct netr_DsRGetDCNameEx r;
-       BOOL ret = True;
 
-       r.in.server_unc         = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
-       r.in.domain_name        = talloc_asprintf(mem_ctx, "%s", lp_realm());
+       r.in.server_unc         = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
+       r.in.domain_name        = talloc_asprintf(tctx, "%s", lp_realm(global_loadparm));
        r.in.domain_guid        = NULL;
        r.in.site_name          = NULL;
        r.in.flags              = DS_RETURN_DNS_NAME;
 
-       printf("Testing netr_DsRGetDCNameEx\n");
-
-       status = dcerpc_netr_DsRGetDCNameEx(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
-               printf("netr_DsRGetDCNameEx - %s/%s\n", 
-                      nt_errstr(status), win_errstr(r.out.result));
-               ret = False;
-       } else {
-               ret = test_netr_DsRGetSiteName(p, mem_ctx, 
-                                              r.out.info->dc_unc, 
-                                              r.out.info->dc_site_name);
-       }
+       status = dcerpc_netr_DsRGetDCNameEx(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "netr_DsRGetDCNameEx");
+       torture_assert_werr_ok(tctx, r.out.result, "netr_DsRGetDCNameEx");
 
-       return ret;
+       return test_netr_DsRGetSiteName(p, tctx, r.out.info->dc_unc, 
+                                      r.out.info->dc_site_name);
 }
 
 /*
   try a netlogon netr_DsRGetDCNameEx2
 */
-static BOOL test_netr_DsRGetDCNameEx2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_netr_DsRGetDCNameEx2(struct torture_context *tctx, 
+                                     struct dcerpc_pipe *p)
 {
        NTSTATUS status;
        struct netr_DsRGetDCNameEx2 r;
-       BOOL ret = True;
 
-       r.in.server_unc         = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
+       r.in.server_unc         = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
        r.in.client_account     = NULL;
        r.in.mask               = 0x00000000;
-       r.in.domain_name        = talloc_asprintf(mem_ctx, "%s", lp_realm());
+       r.in.domain_name        = talloc_asprintf(tctx, "%s", lp_realm(global_loadparm));
        r.in.domain_guid        = NULL;
        r.in.site_name          = NULL;
        r.in.flags              = DS_RETURN_DNS_NAME;
 
-       printf("Testing netr_DsRGetDCNameEx2 without client account\n");
+       torture_comment(tctx, "Testing netr_DsRGetDCNameEx2 without client account\n");
 
-       status = dcerpc_netr_DsRGetDCNameEx2(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
-               printf("netr_DsRGetDCNameEx2 - %s/%s\n", 
-                      nt_errstr(status), win_errstr(r.out.result));
-               ret = False;
-       }
+       status = dcerpc_netr_DsRGetDCNameEx2(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "netr_DsRGetDCNameEx2");
+       torture_assert_werr_ok(tctx, r.out.result, "netr_DsRGetDCNameEx2");
 
-       printf("Testing netr_DsRGetDCNameEx2 with client acount\n");
+       torture_comment(tctx, "Testing netr_DsRGetDCNameEx2 with client acount\n");
        r.in.client_account     = TEST_MACHINE_NAME"$";
        r.in.mask               = ACB_SVRTRUST;
        r.in.flags              = DS_RETURN_FLAT_NAME;
 
-       status = dcerpc_netr_DsRGetDCNameEx2(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
-               printf("netr_DsRGetDCNameEx2 - %s/%s\n", 
-                      nt_errstr(status), win_errstr(r.out.result));
-               ret = False;
-       } else {
-               ret = test_netr_DsRGetSiteName(p, mem_ctx, 
-                                              r.out.info->dc_unc, 
-                                              r.out.info->dc_site_name);
-       }
-
-       return ret;
+       status = dcerpc_netr_DsRGetDCNameEx2(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "netr_DsRGetDCNameEx2");
+       torture_assert_werr_ok(tctx, r.out.result, "netr_DsRGetDCNameEx2");
+       return test_netr_DsRGetSiteName(p, tctx, r.out.info->dc_unc, 
+                                       r.out.info->dc_site_name);
 }
 
-static BOOL test_netr_DsrGetDcSiteCoverageW(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx) 
+static bool test_netr_DsrGetDcSiteCoverageW(struct torture_context *tctx, 
+                                           struct dcerpc_pipe *p)
 {
        NTSTATUS status;
        struct netr_DsrGetDcSiteCoverageW r;
-       BOOL ret = True;
-
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
-               printf("skipping DsrGetDcSiteCoverageW test against Samba4\n");
-               return True;
-       }
 
-       r.in.server_name = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
+       r.in.server_name = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
 
-       printf("Testing netr_DsrGetDcSiteCoverageW\n");
+       status = dcerpc_netr_DsrGetDcSiteCoverageW(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "failed");
+       torture_assert_werr_ok(tctx, r.out.result, "failed");
 
-       status = dcerpc_netr_DsrGetDcSiteCoverageW(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
-               printf("netr_DsrGetDcSiteCoverageW - %s/%s\n", 
-                      nt_errstr(status), win_errstr(r.out.result));
-               ret = False;
-       }
-       return ret;
+       return true;
 }
 
 
-static BOOL test_GetDomainInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_GetDomainInfo(struct torture_context *tctx, 
+                              struct dcerpc_pipe *p,
+                              struct cli_credentials *machine_credentials)
 {
        NTSTATUS status;
        struct netr_LogonGetDomainInfo r;
@@ -1401,16 +1187,16 @@ static BOOL test_GetDomainInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
        struct netr_Authenticator a;
        struct creds_CredentialState *creds;
 
-       if (!test_SetupCredentials3(p, mem_ctx, NETLOGON_NEG_AUTH2_ADS_FLAGS, 
-                                   TEST_MACHINE_NAME, machine_password, &creds)) {
-               return False;
+       if (!test_SetupCredentials3(p, tctx, NETLOGON_NEG_AUTH2_ADS_FLAGS, 
+                                   machine_credentials, &creds)) {
+               return false;
        }
 
        ZERO_STRUCT(r);
 
        creds_client_authenticator(creds, &a);
 
-       r.in.server_name = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
+       r.in.server_name = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
        r.in.computer_name = TEST_MACHINE_NAME;
        r.in.level = 1;
        r.in.credential = &a;
@@ -1428,32 +1214,27 @@ static BOOL test_GetDomainInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
        q1.blob2.data = NULL;
        q1.product.string = "product string";
 
-       printf("Testing netr_LogonGetDomainInfo\n");
+       torture_comment(tctx, "Testing netr_uogonGetDomainInfo\n");
 
-       status = dcerpc_netr_LogonGetDomainInfo(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("netr_LogonGetDomainInfo - %s\n", nt_errstr(status));
-               return False;
-       }
-
-       if (!creds_client_check(creds, &a.cred)) {
-               printf("Credential chaining failed\n");
-               return False;
-       }
+       status = dcerpc_netr_LogonGetDomainInfo(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "netr_LogonGetDomainInfo");
+       torture_assert(tctx, creds_client_check(creds, &a.cred), "Credential chaining failed");
 
-       return True;
+       return true;
 }
 
 
 static void async_callback(struct rpc_request *req)
 {
-       int *counter = req->async.private_data;
+       int *counter = (int *)req->async.private_data;
        if (NT_STATUS_IS_OK(req->status)) {
                (*counter)++;
        }
 }
 
-static BOOL test_GetDomainInfo_async(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_GetDomainInfo_async(struct torture_context *tctx, 
+                                    struct dcerpc_pipe *p,
+                                    struct cli_credentials *machine_credentials)
 {
        NTSTATUS status;
        struct netr_LogonGetDomainInfo r;
@@ -1464,20 +1245,15 @@ static BOOL test_GetDomainInfo_async(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
        struct creds_CredentialState *creds_async[ASYNC_COUNT];
        struct rpc_request *req[ASYNC_COUNT];
        int i;
-       int *async_counter = talloc(mem_ctx, int);
-
-       if (!lp_parm_bool(-1, "torture", "dangerous", False)) {
-               printf("test_GetDomainInfo_async disabled - enable dangerous tests to use\n");
-               return True;
-       }
+       int *async_counter = talloc(tctx, int);
 
-       if (!test_SetupCredentials3(p, mem_ctx, NETLOGON_NEG_AUTH2_ADS_FLAGS, 
-                                   TEST_MACHINE_NAME, machine_password, &creds)) {
-               return False;
+       if (!test_SetupCredentials3(p, tctx, NETLOGON_NEG_AUTH2_ADS_FLAGS, 
+                                   machine_credentials, &creds)) {
+               return false;
        }
 
        ZERO_STRUCT(r);
-       r.in.server_name = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
+       r.in.server_name = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
        r.in.computer_name = TEST_MACHINE_NAME;
        r.in.level = 1;
        r.in.credential = &a;
@@ -1495,46 +1271,45 @@ static BOOL test_GetDomainInfo_async(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
        q1.blob2.data = NULL;
        q1.product.string = "product string";
 
-       printf("Testing netr_LogonGetDomainInfo - async count %d\n", ASYNC_COUNT);
+       torture_comment(tctx, "Testing netr_LogonGetDomainInfo - async count %d\n", ASYNC_COUNT);
 
        *async_counter = 0;
 
        for (i=0;i<ASYNC_COUNT;i++) {
                creds_client_authenticator(creds, &a);
 
-               creds_async[i] = talloc_memdup(creds, creds, sizeof(*creds));
-               req[i] = dcerpc_netr_LogonGetDomainInfo_send(p, mem_ctx, &r);
+               creds_async[i] = (struct creds_CredentialState *)talloc_memdup(creds, creds, sizeof(*creds));
+               req[i] = dcerpc_netr_LogonGetDomainInfo_send(p, tctx, &r);
 
                req[i]->async.callback = async_callback;
                req[i]->async.private_data = async_counter;
 
                /* even with this flush per request a w2k3 server seems to 
                   clag with multiple outstanding requests. bleergh. */
-               if (event_loop_once(dcerpc_event_context(p)) != 0) {
-                       return False;
-               }
+               torture_assert_int_equal(tctx, event_loop_once(dcerpc_event_context(p)), 0, 
+                                        "event_loop_once failed");
        }
 
        for (i=0;i<ASYNC_COUNT;i++) {
                status = dcerpc_ndr_request_recv(req[i]);
-               if (!NT_STATUS_IS_OK(status) || !NT_STATUS_IS_OK(r.out.result)) {
-                       printf("netr_LogonGetDomainInfo_async(%d) - %s/%s\n", 
-                              i, nt_errstr(status), nt_errstr(r.out.result));
-                       break;
-               }
 
-               if (!creds_client_check(creds_async[i], &a.cred)) {
-                       printf("Credential chaining failed at async %d\n", i);
-                       break;
-               }
+               torture_assert_ntstatus_ok(tctx, status, "netr_LogonGetDomainInfo_async");
+               torture_assert_ntstatus_ok(tctx, r.out.result, "netr_LogonGetDomainInfo_async"); 
+
+               torture_assert(tctx, creds_client_check(creds_async[i], &a.cred), 
+                       "Credential chaining failed at async");
        }
 
-       printf("Testing netr_LogonGetDomainInfo - async count %d OK\n", *async_counter);
+       torture_comment(tctx, 
+                       "Testing netr_LogonGetDomainInfo - async count %d OK\n", *async_counter);
+
+       torture_assert_int_equal(tctx, (*async_counter), ASYNC_COUNT, "int");
 
-       return (*async_counter) == ASYNC_COUNT;
+       return true;
 }
 
-static BOOL test_ManyGetDCName(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_ManyGetDCName(struct torture_context *tctx, 
+                              struct dcerpc_pipe *p)
 {
        NTSTATUS status;
        struct dcerpc_pipe *p2;
@@ -1549,25 +1324,18 @@ static BOOL test_ManyGetDCName(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
        struct netr_GetAnyDCName d;
 
        int i;
-       BOOL ret = True;
 
        if (p->conn->transport.transport != NCACN_NP) {
-               return True;
+               return true;
        }
 
-       printf("Torturing GetDCName\n");
+       torture_comment(tctx, "Torturing GetDCName\n");
 
        status = dcerpc_secondary_connection(p, &p2, p->binding);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("Failed to create secondary connection\n");
-               return False;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "Failed to create secondary connection");
 
        status = dcerpc_bind_auth_none(p2, &ndr_table_lsarpc);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("Failed to create bind on secondary connection\n");
-               return False;
-        }
+       torture_assert_ntstatus_ok(tctx, status, "Failed to create bind on secondary connection");
 
        qos.len = 0;
        qos.impersonation_level = 2;
@@ -1586,11 +1354,8 @@ static BOOL test_ManyGetDCName(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
        o.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
        o.out.handle = &lsa_handle;
 
-       status = dcerpc_lsa_OpenPolicy2(p2, mem_ctx, &o);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("OpenPolicy2 failed - %s\n", nt_errstr(status));
-               return False;
-       }
+       status = dcerpc_lsa_OpenPolicy2(p2, tctx, &o);
+       torture_assert_ntstatus_ok(tctx, status, "OpenPolicy2 failed");
 
        t.in.handle = &lsa_handle;
        t.in.resume_handle = &resume_handle;
@@ -1598,17 +1363,15 @@ static BOOL test_ManyGetDCName(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
        t.out.domains = &domains;
        t.out.resume_handle = &resume_handle;
 
-       status = dcerpc_lsa_EnumTrustDom(p2, mem_ctx, &t);
+       status = dcerpc_lsa_EnumTrustDom(p2, tctx, &t);
 
        if ((!NT_STATUS_IS_OK(status) &&
-            (!NT_STATUS_EQUAL(status, NT_STATUS_NO_MORE_ENTRIES)))) {
-               printf("Could not list domains\n");
-               return False;
-       }
+            (!NT_STATUS_EQUAL(status, NT_STATUS_NO_MORE_ENTRIES))))
+               torture_fail(tctx, "Could not list domains");
 
        talloc_free(p2);
 
-       d.in.logon_server = talloc_asprintf(mem_ctx, "\\\\%s",
+       d.in.logon_server = talloc_asprintf(tctx, "\\\\%s",
                                            dcerpc_server_name(p));
 
        for (i=0; i<domains.count * 4; i++) {
@@ -1617,74 +1380,49 @@ static BOOL test_ManyGetDCName(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
 
                d.in.domainname = info->name.string;
 
-               status = dcerpc_netr_GetAnyDCName(p, mem_ctx, &d);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("GetAnyDCName - %s\n", nt_errstr(status));
-                       continue;
-               }
+               status = dcerpc_netr_GetAnyDCName(p, tctx, &d);
+               torture_assert_ntstatus_ok(tctx, status, "GetAnyDCName");
 
-               printf("\tDC for domain %s is %s\n", info->name.string,
+               torture_comment(tctx, "\tDC for domain %s is %s\n", info->name.string,
                       d.out.dcname ? d.out.dcname : "unknown");
        }
 
-       return ret;
+       return true;
 }
 
-
-BOOL torture_rpc_netlogon(struct torture_context *torture)
+struct torture_suite *torture_rpc_netlogon(TALLOC_CTX *mem_ctx)
 {
-        NTSTATUS status;
-        struct dcerpc_pipe *p;
-       TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
-       struct test_join *join_ctx;
-       struct cli_credentials *machine_credentials;
-
-       mem_ctx = talloc_init("torture_rpc_netlogon");
-
-       join_ctx = torture_join_domain(TEST_MACHINE_NAME, ACB_SVRTRUST, 
-                                      &machine_credentials);
-       if (!join_ctx) {
-               talloc_free(mem_ctx);
-               printf("Failed to join as BDC\n");
-               return False;
-       }
-
-       machine_password = cli_credentials_get_password(machine_credentials);
-
-       status = torture_rpc_connection(torture, &p, &ndr_table_netlogon);
-       if (!NT_STATUS_IS_OK(status)) {
-               talloc_free(mem_ctx);
-               return False;
-       }
-
-       ret &= test_LogonUasLogon(p, mem_ctx);
-       ret &= test_LogonUasLogoff(p, mem_ctx);
-       ret &= test_SamLogon(p, mem_ctx, machine_credentials);
-       ret &= test_SetPassword(p, mem_ctx);
-       ret &= test_SetPassword2(p, mem_ctx);
-       ret &= test_GetDomainInfo(p, mem_ctx);
-       ret &= test_DatabaseSync(p, mem_ctx);
-       ret &= test_DatabaseDeltas(p, mem_ctx);
-       ret &= test_AccountDeltas(p, mem_ctx);
-       ret &= test_AccountSync(p, mem_ctx);
-       ret &= test_GetDcName(p, mem_ctx);
-       ret &= test_ManyGetDCName(p, mem_ctx);
-       ret &= test_LogonControl(p, mem_ctx);
-       ret &= test_GetAnyDCName(p, mem_ctx);
-       ret &= test_LogonControl2(p, mem_ctx);
-       ret &= test_DatabaseSync2(p, mem_ctx);
-       ret &= test_LogonControl2Ex(p, mem_ctx);
-       ret &= test_DsrEnumerateDomainTrusts(p, mem_ctx);
-       ret &= test_GetDomainInfo_async(p, mem_ctx);
-       ret &= test_netr_DsRGetDCName(p, mem_ctx);
-       ret &= test_netr_DsRGetDCNameEx(p, mem_ctx);
-       ret &= test_netr_DsRGetDCNameEx2(p, mem_ctx);
-       ret &= test_netr_DsrGetDcSiteCoverageW(p, mem_ctx);
-
-       talloc_free(mem_ctx);
-
-       torture_leave_domain(join_ctx);
-
-       return ret;
+       struct torture_suite *suite = torture_suite_create(mem_ctx, "NETLOGON");
+       struct torture_rpc_tcase *tcase;
+       struct torture_test *test;
+
+       tcase = torture_suite_add_machine_rpc_iface_tcase(suite, "netlogon", 
+                                                 &ndr_table_netlogon, TEST_MACHINE_NAME);
+
+       torture_rpc_tcase_add_test(tcase, "LogonUasLogon", test_LogonUasLogon);
+       torture_rpc_tcase_add_test(tcase, "LogonUasLogoff", test_LogonUasLogoff);
+       torture_rpc_tcase_add_test_creds(tcase, "SamLogon", test_SamLogon);
+       torture_rpc_tcase_add_test_creds(tcase, "SetPassword", test_SetPassword);
+       torture_rpc_tcase_add_test_creds(tcase, "SetPassword2", test_SetPassword2);
+       torture_rpc_tcase_add_test_creds(tcase, "GetDomainInfo", test_GetDomainInfo);
+       torture_rpc_tcase_add_test_creds(tcase, "DatabaseSync", test_DatabaseSync);
+       torture_rpc_tcase_add_test_creds(tcase, "DatabaseDeltas", test_DatabaseDeltas);
+       torture_rpc_tcase_add_test_creds(tcase, "AccountDeltas", test_AccountDeltas);
+       torture_rpc_tcase_add_test_creds(tcase, "AccountSync", test_AccountSync);
+       torture_rpc_tcase_add_test(tcase, "GetDcName", test_GetDcName);
+       torture_rpc_tcase_add_test(tcase, "ManyGetDCName", test_ManyGetDCName);
+       torture_rpc_tcase_add_test(tcase, "LogonControl", test_LogonControl);
+       torture_rpc_tcase_add_test(tcase, "GetAnyDCName", test_GetAnyDCName);
+       torture_rpc_tcase_add_test(tcase, "LogonControl2", test_LogonControl2);
+       torture_rpc_tcase_add_test_creds(tcase, "DatabaseSync2", test_DatabaseSync2);
+       torture_rpc_tcase_add_test(tcase, "LogonControl2Ex", test_LogonControl2Ex);
+       torture_rpc_tcase_add_test(tcase, "DsrEnumerateDomainTrusts", test_DsrEnumerateDomainTrusts);
+       test = torture_rpc_tcase_add_test_creds(tcase, "GetDomainInfo_async", test_GetDomainInfo_async);
+       test->dangerous = true;
+       torture_rpc_tcase_add_test(tcase, "DsRGetDCName", test_netr_DsRGetDCName);
+       torture_rpc_tcase_add_test(tcase, "DsRGetDCNameEx", test_netr_DsRGetDCNameEx);
+       torture_rpc_tcase_add_test(tcase, "DsRGetDCNameEx2", test_netr_DsRGetDCNameEx2);
+       torture_rpc_tcase_add_test(tcase, "DsrGetDcSiteCoverageW", test_netr_DsrGetDcSiteCoverageW);
+
+       return suite;
 }
index af7e05a9f0b1929017c6397b8b08222239e04a99..6891783a8241501968cda1f4bbcb6d49a173c15a 100644 (file)
 #include "librpc/ndr/ndr_table.h"
 #include "lib/util/dlinklist.h"
 
-struct torture_rpc_tcase {
-       struct torture_tcase tcase;
-       const struct ndr_interface_table *table;
-       struct dcerpc_pipe *pipe;
-};
+static bool torture_rpc_teardown (struct torture_context *tcase, 
+                                         void *data)
+{
+       struct torture_rpc_tcase_data *tcase_data = 
+               (struct torture_rpc_tcase_data *)data;
+       if (tcase_data->join_ctx != NULL)
+           torture_leave_domain(tcase_data->join_ctx);
+       talloc_free(tcase_data);
+       return true;
+}
 
+/**
+ * Obtain the DCE/RPC binding context associated with a torture context.
+ *
+ * @param tctx Torture context
+ * @param binding Pointer to store DCE/RPC binding
+ */
 NTSTATUS torture_rpc_binding(struct torture_context *tctx,
-                                                        struct dcerpc_binding **binding)
+                            struct dcerpc_binding **binding)
 {
        NTSTATUS status;
-       const char *binding_string = torture_setting_string(tctx, "binding", NULL);
+       const char *binding_string = torture_setting_string(tctx, "binding", 
+                                                           NULL);
 
        if (binding_string == NULL) {
-               torture_comment(tctx, "You must specify a ncacn binding string\n");
+               torture_comment(tctx, 
+                               "You must specify a DCE/RPC binding string\n");
                return NT_STATUS_INVALID_PARAMETER;
        }
 
        status = dcerpc_parse_binding(tctx, binding_string, binding);
        if (NT_STATUS_IS_ERR(status)) {
-               DEBUG(0,("Failed to parse dcerpc binding '%s'\n", binding_string));
+               DEBUG(0,("Failed to parse dcerpc binding '%s'\n", 
+                        binding_string));
                return status;
        }
 
        return NT_STATUS_OK;    
 }
 
-/* open a rpc connection to the chosen binding string */
+/**
+ * open a rpc connection to the chosen binding string
+ */
 _PUBLIC_ NTSTATUS torture_rpc_connection(struct torture_context *tctx,
                                struct dcerpc_pipe **p, 
                                const struct ndr_interface_table *table)
@@ -77,16 +93,17 @@ _PUBLIC_ NTSTATUS torture_rpc_connection(struct torture_context *tctx,
        return status;
 }
 
-/* open a rpc connection to a specific transport */
+/**
+ * open a rpc connection to a specific transport
+ */
 NTSTATUS torture_rpc_connection_transport(struct torture_context *tctx, 
                                          struct dcerpc_pipe **p, 
                                          const struct ndr_interface_table *table,
                                          enum dcerpc_transport_t transport,
                                          uint32_t assoc_group_id)
 {
-    NTSTATUS status;
+       NTSTATUS status;
        struct dcerpc_binding *binding;
-       TALLOC_CTX *mem_ctx = talloc_named(tctx, 0, "torture_rpc_connection_smb");
 
        status = torture_rpc_binding(tctx, &binding);
        if (NT_STATUS_IS_ERR(status))
@@ -95,38 +112,100 @@ NTSTATUS torture_rpc_connection_transport(struct torture_context *tctx,
        binding->transport = transport;
        binding->assoc_group_id = assoc_group_id;
 
-       status = dcerpc_pipe_connect_b(mem_ctx, p, binding, table,
+       status = dcerpc_pipe_connect_b(tctx, p, binding, table,
                                       cmdline_credentials, NULL);
                                           
-       if (NT_STATUS_IS_OK(status)) {
-               *p = talloc_reference(tctx, *p);
-       } else {
+       if (NT_STATUS_IS_ERR(status)) {
                *p = NULL;
        }
-       talloc_free(mem_ctx);
+
         return status;
 }
 
+static bool torture_rpc_setup_machine(struct torture_context *tctx,
+                                     void **data)
+{
+       NTSTATUS status;
+       struct dcerpc_binding *binding;
+       struct torture_rpc_tcase *tcase = talloc_get_type(tctx->active_tcase, 
+                                               struct torture_rpc_tcase);
+       struct torture_rpc_tcase_data *tcase_data;
+
+       status = torture_rpc_binding(tctx, &binding);
+       if (NT_STATUS_IS_ERR(status))
+               return false;
+
+       *data = tcase_data = talloc_zero(tctx, struct torture_rpc_tcase_data);
+       tcase_data->credentials = cmdline_credentials;
+       tcase_data->join_ctx = torture_join_domain(tcase->machine_name,
+                                                  ACB_SVRTRUST, 
+                                                  &tcase_data->credentials);
+       if (tcase_data->join_ctx == NULL)
+           torture_fail(tctx, "Failed to join as BDC");
+
+       status = dcerpc_pipe_connect_b(tctx, 
+                               &(tcase_data->pipe),
+                               binding,
+                               tcase->table,
+                               tcase_data->credentials, NULL);
+
+       torture_assert_ntstatus_ok(tctx, status, "Error connecting to server");
+
+       return true;
+}
+
+_PUBLIC_ struct torture_rpc_tcase *torture_suite_add_machine_rpc_iface_tcase(
+                               struct torture_suite *suite, 
+                               const char *name,
+                               const struct ndr_interface_table *table,
+                               const char *machine_name)
+{
+       struct torture_rpc_tcase *tcase = talloc(suite, 
+                                                struct torture_rpc_tcase);
+
+       torture_suite_init_rpc_tcase(suite, tcase, name, table);
+
+       tcase->machine_name = talloc_strdup(tcase, machine_name);
+       tcase->tcase.setup = torture_rpc_setup_machine;
+       tcase->tcase.teardown = torture_rpc_teardown;
+
+       return tcase;
+}
+
+_PUBLIC_ bool torture_suite_init_rpc_tcase(struct torture_suite *suite, 
+                                          struct torture_rpc_tcase *tcase, 
+                                          const char *name,
+                                          const struct ndr_interface_table *table)
+{
+       if (!torture_suite_init_tcase(suite, (struct torture_tcase *)tcase, name))
+               return false;
+
+       tcase->table = table;
+
+       return true;
+}
+
 static bool torture_rpc_setup_anonymous(struct torture_context *tctx, 
-                                                                               void **data)
+                                       void **data)
 {
-       struct cli_credentials *anon_credentials;
        NTSTATUS status;
        struct dcerpc_binding *binding;
-       struct torture_rpc_tcase *tcase = talloc_get_type(
-                                               tctx->active_tcase, struct torture_rpc_tcase);
+       struct torture_rpc_tcase_data *tcase_data;
+       struct torture_rpc_tcase *tcase = talloc_get_type(tctx->active_tcase, 
+                                                         struct torture_rpc_tcase);
 
        status = torture_rpc_binding(tctx, &binding);
        if (NT_STATUS_IS_ERR(status))
                return false;
 
-       anon_credentials = cli_credentials_init_anon(tctx);
+       *data = tcase_data = talloc_zero(tctx, struct torture_rpc_tcase_data);
+       tcase_data->credentials = cli_credentials_init_anon(tctx);
 
        status = dcerpc_pipe_connect_b(tctx, 
-                               (struct dcerpc_pipe **)data, 
+                               &(tcase_data->pipe),
                                binding,
                                tcase->table,
-                               anon_credentials, NULL);
+                               tcase_data->credentials, NULL);
 
        torture_assert_ntstatus_ok(tctx, status, "Error connecting to server");
 
@@ -138,21 +217,21 @@ static bool torture_rpc_setup (struct torture_context *tctx, void **data)
        NTSTATUS status;
        struct torture_rpc_tcase *tcase = talloc_get_type(
                                                tctx->active_tcase, struct torture_rpc_tcase);
+       struct torture_rpc_tcase_data *tcase_data;
+
+       *data = tcase_data = talloc_zero(tctx, struct torture_rpc_tcase_data);
+       tcase_data->credentials = cmdline_credentials;
        
        status = torture_rpc_connection(tctx, 
-                               (struct dcerpc_pipe **)data, 
-                               (const struct ndr_interface_table *)tcase->table);
+                               &(tcase_data->pipe),
+                               tcase->table);
 
        torture_assert_ntstatus_ok(tctx, status, "Error connecting to server");
 
        return true;
 }
 
-static bool torture_rpc_teardown (struct torture_context *tcase, void *data)
-{
-       talloc_free(data);
-       return true;
-}
+
 
 _PUBLIC_ struct torture_rpc_tcase *torture_suite_add_anon_rpc_iface_tcase(struct torture_suite *suite, 
                                                                const char *name,
@@ -160,11 +239,10 @@ _PUBLIC_ struct torture_rpc_tcase *torture_suite_add_anon_rpc_iface_tcase(struct
 {
        struct torture_rpc_tcase *tcase = talloc(suite, struct torture_rpc_tcase);
 
-       torture_suite_init_tcase(suite, (struct torture_tcase *)tcase, name);
+       torture_suite_init_rpc_tcase(suite, tcase, name, table);
 
        tcase->tcase.setup = torture_rpc_setup_anonymous;
        tcase->tcase.teardown = torture_rpc_teardown;
-       tcase->table = table;
 
        return tcase;
 }
@@ -176,11 +254,10 @@ _PUBLIC_ struct torture_rpc_tcase *torture_suite_add_rpc_iface_tcase(struct tort
 {
        struct torture_rpc_tcase *tcase = talloc(suite, struct torture_rpc_tcase);
 
-       torture_suite_init_tcase(suite, (struct torture_tcase *)tcase, name);
+       torture_suite_init_rpc_tcase(suite, tcase, name, table);
 
        tcase->tcase.setup = torture_rpc_setup;
        tcase->tcase.teardown = torture_rpc_teardown;
-       tcase->table = table;
 
        return tcase;
 }
@@ -190,10 +267,12 @@ static bool torture_rpc_wrap_test(struct torture_context *tctx,
                                                                  struct torture_test *test)
 {
        bool (*fn) (struct torture_context *, struct dcerpc_pipe *);
+       struct torture_rpc_tcase_data *tcase_data = 
+               (struct torture_rpc_tcase_data *)tcase->data;
 
        fn = test->fn;
 
-       return fn(tctx, (struct dcerpc_pipe *)tcase->data);
+       return fn(tctx, tcase_data->pipe);
 }
 
 static bool torture_rpc_wrap_test_ex(struct torture_context *tctx, 
@@ -201,10 +280,26 @@ static bool torture_rpc_wrap_test_ex(struct torture_context *tctx,
                                                                  struct torture_test *test)
 {
        bool (*fn) (struct torture_context *, struct dcerpc_pipe *, const void *);
+       struct torture_rpc_tcase_data *tcase_data = 
+               (struct torture_rpc_tcase_data *)tcase->data;
+
+       fn = test->fn;
+
+       return fn(tctx, tcase_data->pipe, test->data);
+}
+
+
+static bool torture_rpc_wrap_test_creds(struct torture_context *tctx, 
+                                                                 struct torture_tcase *tcase,
+                                                                 struct torture_test *test)
+{
+       bool (*fn) (struct torture_context *, struct dcerpc_pipe *, struct cli_credentials *);
+       struct torture_rpc_tcase_data *tcase_data = 
+               (struct torture_rpc_tcase_data *)tcase->data;
 
        fn = test->fn;
 
-       return fn(tctx, (struct dcerpc_pipe *)tcase->data, test->data);
+       return fn(tctx, tcase_data->pipe, tcase_data->credentials);
 }
 
 _PUBLIC_ struct torture_test *torture_rpc_tcase_add_test(
@@ -228,6 +323,27 @@ _PUBLIC_ struct torture_test *torture_rpc_tcase_add_test(
        return test;
 }
 
+_PUBLIC_ struct torture_test *torture_rpc_tcase_add_test_creds(
+                                       struct torture_rpc_tcase *tcase, 
+                                       const char *name, 
+                                       bool (*fn) (struct torture_context *, struct dcerpc_pipe *, struct cli_credentials *))
+{
+       struct torture_test *test;
+
+       test = talloc(tcase, struct torture_test);
+
+       test->name = talloc_strdup(test, name);
+       test->description = NULL;
+       test->run = torture_rpc_wrap_test_creds;
+       test->dangerous = false;
+       test->data = NULL;
+       test->fn = fn;
+
+       DLIST_ADD(tcase->tcase.tests, test);
+
+       return test;
+}
+
 _PUBLIC_ struct torture_test *torture_rpc_tcase_add_test_ex(
                                        struct torture_rpc_tcase *tcase, 
                                        const char *name, 
@@ -262,26 +378,28 @@ NTSTATUS torture_rpc_init(void)
        torture_suite_add_simple_test(suite, "LSA", torture_rpc_lsa);
        torture_suite_add_simple_test(suite, "LSALOOKUP", torture_rpc_lsa_lookup);
        torture_suite_add_simple_test(suite, "LSA-GETUSER", torture_rpc_lsa_get_user);
-       torture_suite_add_simple_test(suite, "SECRETS", torture_rpc_lsa_secrets);
-       torture_suite_add_suite(suite, torture_rpc_echo());
+       torture_suite_add_suite(suite, torture_rpc_lsa_secrets(suite));
+       torture_suite_add_suite(suite, torture_rpc_echo(suite));
        torture_suite_add_simple_test(suite, "DFS", torture_rpc_dfs);
-       torture_suite_add_suite(suite, torture_rpc_unixinfo());
-       torture_suite_add_suite(suite, torture_rpc_eventlog());
-       torture_suite_add_suite(suite, torture_rpc_atsvc());
+       torture_suite_add_suite(suite, torture_rpc_unixinfo(suite));
+       torture_suite_add_suite(suite, torture_rpc_eventlog(suite));
+       torture_suite_add_suite(suite, torture_rpc_atsvc(suite));
        torture_suite_add_suite(suite, torture_rpc_wkssvc(suite));
        torture_suite_add_suite(suite, torture_rpc_handles(suite));
        torture_suite_add_suite(suite, torture_rpc_winreg(suite));
        torture_suite_add_simple_test(suite, "SPOOLSS", torture_rpc_spoolss);
+       torture_suite_add_suite(suite, torture_rpc_spoolss_notify(suite));
        torture_suite_add_simple_test(suite, "SAMR", torture_rpc_samr);
        torture_suite_add_simple_test(suite, "SAMR-USERS", torture_rpc_samr_users);
        torture_suite_add_simple_test(suite, "SAMR-PASSWORDS", torture_rpc_samr_passwords);
-       torture_suite_add_simple_test(suite, "NETLOGON", torture_rpc_netlogon);
+       torture_suite_add_suite(suite, torture_rpc_netlogon(suite));
        torture_suite_add_simple_test(suite, "SAMLOGON", torture_rpc_samlogon);
        torture_suite_add_simple_test(suite, "SAMSYNC", torture_rpc_samsync);
        torture_suite_add_simple_test(suite, "SCHANNEL", torture_rpc_schannel);
        torture_suite_add_simple_test(suite, "SCHANNEL2", torture_rpc_schannel2);
        torture_suite_add_suite(suite, torture_rpc_srvsvc(suite));
        torture_suite_add_suite(suite, torture_rpc_svcctl(suite));
+       torture_suite_add_suite(suite, torture_rpc_samr_accessmask(suite));
        torture_suite_add_suite(suite, torture_rpc_epmapper(suite));
        torture_suite_add_suite(suite, torture_rpc_initshutdown(suite));
        torture_suite_add_suite(suite, torture_rpc_oxidresolve(suite));
@@ -303,10 +421,10 @@ NTSTATUS torture_rpc_init(void)
        torture_suite_add_simple_test(suite, "SAMBA3-LSA", torture_samba3_rpc_lsa);
        torture_suite_add_simple_test(suite, "SAMBA3-SPOOLSS", torture_samba3_rpc_spoolss);
        torture_suite_add_simple_test(suite, "SAMBA3-WKSSVC", torture_samba3_rpc_wkssvc);
-       torture_suite_add_simple_test(suite, "RPC-SAMBA3-WINREG", torture_samba3_rpc_winreg);
+       torture_suite_add_simple_test(suite, "SAMBA3-WINREG", torture_samba3_rpc_winreg);
        torture_suite_add_simple_test(suite, "DRSUAPI", torture_rpc_drsuapi);
        torture_suite_add_simple_test(suite, "CRACKNAMES", torture_rpc_drsuapi_cracknames);
-       torture_suite_add_simple_test(suite, "DSSETUP", torture_rpc_dssetup);
+       torture_suite_add_suite(suite, torture_rpc_dssetup(suite));
        torture_suite_add_simple_test(suite, "ALTERCONTEXT", torture_rpc_alter_context);
        torture_suite_add_simple_test(suite, "JOIN", torture_rpc_join);
        torture_suite_add_simple_test(suite, "DSSYNC", torture_rpc_dssync);
index 2f1ff323eb3fb7b6585f839a751d7a7ec92f67e2..385c734d9c2cafdd526a9e887d2a0b525dd2a208 100644 (file)
 #include "torture/rpc/proto.h"
 #include "torture/ui.h"
 
+struct torture_rpc_tcase {
+       struct torture_tcase tcase;
+       const struct ndr_interface_table *table;
+       const char *machine_name;
+};
+
+struct torture_rpc_tcase_data {
+       struct test_join *join_ctx;
+       struct dcerpc_pipe *pipe;
+       struct cli_credentials *credentials;
+};
+
+
+
 #endif /* __TORTURE_RPC_H__ */
index 72eba40344c25e8f841bdb82452c88e21b6f24e1..8c52199e665d8426495f9094456d0173845e9300 100644 (file)
@@ -48,6 +48,7 @@
 #include "libcli/auth/libcli_auth.h"
 #include "lib/crypto/crypto.h"
 #include "libcli/security/proto.h"
+#include "param/param.h"
 
 static struct cli_credentials *create_anon_creds(TALLOC_CTX *mem_ctx)
 {
@@ -57,7 +58,7 @@ static struct cli_credentials *create_anon_creds(TALLOC_CTX *mem_ctx)
                return NULL;
        }
 
-       cli_credentials_set_conf(result);
+       cli_credentials_set_conf(result, global_loadparm);
        cli_credentials_set_anonymous(result);
 
        return result;
@@ -67,11 +68,11 @@ static struct cli_credentials *create_anon_creds(TALLOC_CTX *mem_ctx)
  * This tests a RPC call using an invalid vuid
  */
 
-BOOL torture_bind_authcontext(struct torture_context *torture) 
+bool torture_bind_authcontext(struct torture_context *torture) 
 {
        TALLOC_CTX *mem_ctx;
        NTSTATUS status;
-       BOOL ret = False;
+       bool ret = false;
        struct lsa_ObjectAttribute objectattr;
        struct lsa_OpenPolicy2 openpolicy;
        struct policy_handle handle;
@@ -87,7 +88,7 @@ BOOL torture_bind_authcontext(struct torture_context *torture)
 
        if (mem_ctx == NULL) {
                d_printf("talloc_init failed\n");
-               return False;
+               return false;
        }
 
        status = smbcli_full_connection(mem_ctx, &cli,
@@ -145,7 +146,7 @@ BOOL torture_bind_authcontext(struct torture_context *torture)
                goto done;
        }
 
-       session2 = smbcli_session_init(cli->transport, mem_ctx, False);
+       session2 = smbcli_session_init(cli->transport, mem_ctx, false);
        if (session2 == NULL) {
                d_printf("smbcli_session_init failed\n");
                goto done;
@@ -185,7 +186,7 @@ BOOL torture_bind_authcontext(struct torture_context *torture)
                goto done;
        }
 
-       ret = True;
+       ret = true;
  done:
        talloc_free(mem_ctx);
        return ret;
@@ -195,12 +196,12 @@ BOOL torture_bind_authcontext(struct torture_context *torture)
  * Bind to lsa using a specific auth method
  */
 
-static BOOL bindtest(struct smbcli_state *cli,
+static bool bindtest(struct smbcli_state *cli,
                     struct cli_credentials *credentials,
                     uint8_t auth_type, uint8_t auth_level)
 {
        TALLOC_CTX *mem_ctx;
-       BOOL ret = False;
+       bool ret = false;
        NTSTATUS status;
 
        struct dcerpc_pipe *lsa_pipe;
@@ -212,7 +213,7 @@ static BOOL bindtest(struct smbcli_state *cli,
 
        if ((mem_ctx = talloc_init("bindtest")) == NULL) {
                d_printf("talloc_init failed\n");
-               return False;
+               return false;
        }
 
        lsa_pipe = dcerpc_pipe_init(mem_ctx,
@@ -272,7 +273,7 @@ static BOOL bindtest(struct smbcli_state *cli,
                goto done;
        }
 
-       ret = True;
+       ret = true;
  done:
        talloc_free(mem_ctx);
        return ret;
@@ -282,18 +283,18 @@ static BOOL bindtest(struct smbcli_state *cli,
  * test authenticated RPC binds with the variants Samba3 does support
  */
 
-BOOL torture_bind_samba3(struct torture_context *torture) 
+bool torture_bind_samba3(struct torture_context *torture) 
 {
        TALLOC_CTX *mem_ctx;
        NTSTATUS status;
-       BOOL ret = False;
+       bool ret = false;
        struct smbcli_state *cli;
 
        mem_ctx = talloc_init("torture_bind_authcontext");
 
        if (mem_ctx == NULL) {
                d_printf("talloc_init failed\n");
-               return False;
+               return false;
        }
 
        status = smbcli_full_connection(mem_ctx, &cli,
@@ -306,7 +307,7 @@ BOOL torture_bind_samba3(struct torture_context *torture)
                goto done;
        }
 
-       ret = True;
+       ret = true;
 
        ret &= bindtest(cli, cmdline_credentials, DCERPC_AUTH_TYPE_NTLMSSP,
                        DCERPC_AUTH_LEVEL_INTEGRITY);
@@ -501,7 +502,7 @@ static NTSTATUS get_usr_handle(struct smbcli_state *cli,
  * Create a test user
  */
 
-static BOOL create_user(TALLOC_CTX *mem_ctx, struct smbcli_state *cli,
+static bool create_user(TALLOC_CTX *mem_ctx, struct smbcli_state *cli,
                        struct cli_credentials *admin_creds,
                        const char *username, const char *password,
                        char **domain_name,
@@ -511,11 +512,11 @@ static BOOL create_user(TALLOC_CTX *mem_ctx, struct smbcli_state *cli,
        NTSTATUS status;
        struct dcerpc_pipe *samr_pipe;
        struct policy_handle *wks_handle;
-       BOOL ret = False;
+       bool ret = false;
 
        if (!(tmp_ctx = talloc_new(mem_ctx))) {
                d_printf("talloc_init failed\n");
-               return False;
+               return false;
        }
 
        status = get_usr_handle(cli, tmp_ctx, admin_creds,
@@ -603,7 +604,7 @@ static BOOL create_user(TALLOC_CTX *mem_ctx, struct smbcli_state *cli,
 
        *domain_name= talloc_steal(mem_ctx, *domain_name);
        *user_sid = talloc_steal(mem_ctx, *user_sid);
-       ret = True;
+       ret = true;
  done:
        talloc_free(tmp_ctx);
        return ret;
@@ -613,7 +614,7 @@ static BOOL create_user(TALLOC_CTX *mem_ctx, struct smbcli_state *cli,
  * Delete a test user
  */
 
-static BOOL delete_user(struct smbcli_state *cli,
+static bool delete_user(struct smbcli_state *cli,
                        struct cli_credentials *admin_creds,
                        const char *username)
 {
@@ -622,11 +623,11 @@ static BOOL delete_user(struct smbcli_state *cli,
        char *dom_name;
        struct dcerpc_pipe *samr_pipe;
        struct policy_handle *user_handle;
-       BOOL ret = False;
+       bool ret = false;
 
        if ((mem_ctx = talloc_init("leave")) == NULL) {
                d_printf("talloc_init failed\n");
-               return False;
+               return false;
        }
 
        status = get_usr_handle(cli, mem_ctx, admin_creds,
@@ -648,12 +649,12 @@ static BOOL delete_user(struct smbcli_state *cli,
 
                status = dcerpc_samr_DeleteUser(samr_pipe, mem_ctx, &d);
                if (!NT_STATUS_IS_OK(status)) {
-                       d_printf("samr_DeleteUser failed\n");
+                       d_printf("samr_DeleteUser failed %s\n", nt_errstr(status));
                        goto done;
                }
        }
 
-       ret = True;
+       ret = true;
 
  done:
        talloc_free(mem_ctx);
@@ -664,8 +665,8 @@ static BOOL delete_user(struct smbcli_state *cli,
  * Do a Samba3-style join
  */
 
-static BOOL join3(struct smbcli_state *cli,
-                 BOOL use_level25,
+static bool join3(struct smbcli_state *cli,
+                 bool use_level25,
                  struct cli_credentials *admin_creds,
                  struct cli_credentials *wks_creds)
 {
@@ -674,11 +675,11 @@ static BOOL join3(struct smbcli_state *cli,
        char *dom_name;
        struct dcerpc_pipe *samr_pipe;
        struct policy_handle *wks_handle;
-       BOOL ret = False;
+       bool ret = false;
 
        if ((mem_ctx = talloc_init("join3")) == NULL) {
                d_printf("talloc_init failed\n");
-               return False;
+               return false;
        }
 
        status = get_usr_handle(
@@ -787,7 +788,7 @@ static BOOL join3(struct smbcli_state *cli,
                }
        }
 
-       ret = True;
+       ret = true;
 
  done:
        talloc_free(mem_ctx);
@@ -798,12 +799,12 @@ static BOOL join3(struct smbcli_state *cli,
  * Do a ReqChallenge/Auth2 and get the wks creds
  */
 
-static BOOL auth2(struct smbcli_state *cli,
+static bool auth2(struct smbcli_state *cli,
                  struct cli_credentials *wks_cred)
 {
        TALLOC_CTX *mem_ctx;
        struct dcerpc_pipe *net_pipe;
-       BOOL result = False;
+       bool result = false;
        NTSTATUS status;
        struct netr_ServerReqChallenge r;
        struct netr_Credential netr_cli_creds;
@@ -817,7 +818,7 @@ static BOOL auth2(struct smbcli_state *cli,
        mem_ctx = talloc_new(NULL);
        if (mem_ctx == NULL) {
                d_printf("talloc_new failed\n");
-               return False;
+               return false;
        }
 
        net_pipe = dcerpc_pipe_init(mem_ctx,
@@ -893,7 +894,7 @@ static BOOL auth2(struct smbcli_state *cli,
 
        cli_credentials_set_netlogon_creds(wks_cred, creds_state);
 
-       result = True;
+       result = true;
 
  done:
        talloc_free(mem_ctx);
@@ -905,20 +906,20 @@ static BOOL auth2(struct smbcli_state *cli,
  * login, and change the wks password
  */
 
-static BOOL schan(struct smbcli_state *cli,
+static bool schan(struct smbcli_state *cli,
                  struct cli_credentials *wks_creds,
                  struct cli_credentials *user_creds)
 {
        TALLOC_CTX *mem_ctx;
        NTSTATUS status;
-       BOOL ret = False;
+       bool ret = false;
        struct dcerpc_pipe *net_pipe;
        int i;
        
        mem_ctx = talloc_new(NULL);
        if (mem_ctx == NULL) {
                d_printf("talloc_new failed\n");
-               return False;
+               return false;
        }
 
        net_pipe = dcerpc_pipe_init(mem_ctx,
@@ -1092,7 +1093,7 @@ static BOOL schan(struct smbcli_state *cli,
                                             CRED_SPECIFIED);
        }
 
-       ret = True;
+       ret = true;
  done:
        talloc_free(mem_ctx);
        return ret;
@@ -1102,13 +1103,13 @@ static BOOL schan(struct smbcli_state *cli,
  * Delete the wks account again
  */
 
-static BOOL leave(struct smbcli_state *cli,
+static bool leave(struct smbcli_state *cli,
                  struct cli_credentials *admin_creds,
                  struct cli_credentials *wks_creds)
 {
        char *wks_name = talloc_asprintf(
                NULL, "%s$", cli_credentials_get_workstation(wks_creds));
-       BOOL ret;
+       bool ret;
 
        ret = delete_user(cli, admin_creds, wks_name);
        talloc_free(wks_name);
@@ -1119,11 +1120,11 @@ static BOOL leave(struct smbcli_state *cli,
  * Test the Samba3 DC code a bit. Join, do some schan netlogon ops, leave
  */
 
-BOOL torture_netlogon_samba3(struct torture_context *torture)
+bool torture_netlogon_samba3(struct torture_context *torture)
 {
        TALLOC_CTX *mem_ctx;
        NTSTATUS status;
-       BOOL ret = False;
+       bool ret = false;
        struct smbcli_state *cli;
        struct cli_credentials *anon_creds;
        struct cli_credentials *wks_creds;
@@ -1139,7 +1140,7 @@ BOOL torture_netlogon_samba3(struct torture_context *torture)
 
        if (mem_ctx == NULL) {
                d_printf("talloc_init failed\n");
-               return False;
+               return false;
        }
 
        if (!(anon_creds = create_anon_creds(mem_ctx))) {
@@ -1162,7 +1163,7 @@ BOOL torture_netlogon_samba3(struct torture_context *torture)
                goto done;
        }
 
-       cli_credentials_set_conf(wks_creds);
+       cli_credentials_set_conf(wks_creds, global_loadparm);
        cli_credentials_set_secure_channel_type(wks_creds, SEC_CHAN_WKSTA);
        cli_credentials_set_username(wks_creds, wks_name, CRED_SPECIFIED);
        cli_credentials_set_workstation(wks_creds, wks_name, CRED_SPECIFIED);
@@ -1170,7 +1171,7 @@ BOOL torture_netlogon_samba3(struct torture_context *torture)
                                     generate_random_str(wks_creds, 8),
                                     CRED_SPECIFIED);
 
-       if (!join3(cli, False, cmdline_credentials, wks_creds)) {
+       if (!join3(cli, false, cmdline_credentials, wks_creds)) {
                d_printf("join failed\n");
                goto done;
        }
@@ -1205,7 +1206,7 @@ BOOL torture_netlogon_samba3(struct torture_context *torture)
                goto done;
        }
 
-       ret = True;
+       ret = true;
 
  done:
        talloc_free(mem_ctx);
@@ -1217,19 +1218,19 @@ BOOL torture_netlogon_samba3(struct torture_context *torture)
  * credentials
  */
 
-static BOOL test_join3(TALLOC_CTX *mem_ctx,
-                      BOOL use_level25,
+static bool test_join3(TALLOC_CTX *mem_ctx,
+                      bool use_level25,
                       struct cli_credentials *smb_creds,
                       struct cli_credentials *samr_creds,
                       const char *wks_name)
 {
        NTSTATUS status;
-       BOOL ret = False;
+       bool ret = false;
        struct smbcli_state *cli;
        struct cli_credentials *wks_creds;
 
        status = smbcli_full_connection(mem_ctx, &cli,
-                                       lp_parm_string(-1, "torture", "host"),
+                                       lp_parm_string(global_loadparm, NULL, "torture", "host"),
                                        "IPC$", NULL, smb_creds, NULL);
        if (!NT_STATUS_IS_OK(status)) {
                d_printf("smbcli_full_connection failed: %s\n",
@@ -1243,7 +1244,7 @@ static BOOL test_join3(TALLOC_CTX *mem_ctx,
                goto done;
        }
 
-       cli_credentials_set_conf(wks_creds);
+       cli_credentials_set_conf(wks_creds, global_loadparm);
        cli_credentials_set_secure_channel_type(wks_creds, SEC_CHAN_WKSTA);
        cli_credentials_set_username(wks_creds, wks_name, CRED_SPECIFIED);
        cli_credentials_set_workstation(wks_creds, wks_name, CRED_SPECIFIED);
@@ -1272,7 +1273,7 @@ static BOOL test_join3(TALLOC_CTX *mem_ctx,
 
        talloc_free(cli);
 
-       ret = True;
+       ret = true;
 
  done:
        return ret;
@@ -1283,10 +1284,10 @@ static BOOL test_join3(TALLOC_CTX *mem_ctx,
  * session key in the setpassword routine. Test the join by doing the auth2.
  */
 
-BOOL torture_samba3_sessionkey(struct torture_context *torture)
+bool torture_samba3_sessionkey(struct torture_context *torture)
 {
        TALLOC_CTX *mem_ctx;
-       BOOL ret = False;
+       bool ret = false;
        struct cli_credentials *anon_creds;
        const char *wks_name;
 
@@ -1296,7 +1297,7 @@ BOOL torture_samba3_sessionkey(struct torture_context *torture)
 
        if (mem_ctx == NULL) {
                d_printf("talloc_init failed\n");
-               return False;
+               return false;
        }
 
        if (!(anon_creds = create_anon_creds(mem_ctx))) {
@@ -1304,56 +1305,56 @@ BOOL torture_samba3_sessionkey(struct torture_context *torture)
                goto done;
        }
 
-       ret = True;
+       ret = true;
 
-       if (!torture_setting_bool(torture, "samba3", False)) {
+       if (!torture_setting_bool(torture, "samba3", false)) {
 
                /* Samba3 in the build farm right now does this happily. Need
                 * to fix :-) */
 
-               if (test_join3(mem_ctx, False, anon_creds, NULL, wks_name)) {
+               if (test_join3(mem_ctx, false, anon_creds, NULL, wks_name)) {
                        d_printf("join using anonymous bind on an anonymous smb "
                                 "connection succeeded -- HUH??\n");
-                       ret = False;
+                       ret = false;
                }
        }
 
-       if (!test_join3(mem_ctx, False, anon_creds, cmdline_credentials,
+       if (!test_join3(mem_ctx, false, anon_creds, cmdline_credentials,
                        wks_name)) {
                d_printf("join using ntlmssp bind on an anonymous smb "
                         "connection failed\n");
-               ret = False;
+               ret = false;
        }
 
-       if (!test_join3(mem_ctx, False, cmdline_credentials, NULL, wks_name)) {
+       if (!test_join3(mem_ctx, false, cmdline_credentials, NULL, wks_name)) {
                d_printf("join using anonymous bind on an authenticated smb "
                         "connection failed\n");
-               ret = False;
+               ret = false;
        }
 
-       if (!test_join3(mem_ctx, False, cmdline_credentials,
+       if (!test_join3(mem_ctx, false, cmdline_credentials,
                        cmdline_credentials,
                        wks_name)) {
                d_printf("join using ntlmssp bind on an authenticated smb "
                         "connection failed\n");
-               ret = False;
+               ret = false;
        }
 
        /*
         * The following two are tests for setuserinfolevel 25
         */
 
-       if (!test_join3(mem_ctx, True, anon_creds, cmdline_credentials,
+       if (!test_join3(mem_ctx, true, anon_creds, cmdline_credentials,
                        wks_name)) {
                d_printf("join using ntlmssp bind on an anonymous smb "
                         "connection failed\n");
-               ret = False;
+               ret = false;
        }
 
-       if (!test_join3(mem_ctx, True, cmdline_credentials, NULL, wks_name)) {
+       if (!test_join3(mem_ctx, true, cmdline_credentials, NULL, wks_name)) {
                d_printf("join using anonymous bind on an authenticated smb "
                         "connection failed\n");
-               ret = False;
+               ret = false;
        }
 
  done:
@@ -1546,7 +1547,7 @@ NTSTATUS secondary_tcon(TALLOC_CTX *mem_ctx,
                return NT_STATUS_NO_MEMORY;
        }
 
-       if (!(result = smbcli_tree_init(session, mem_ctx, False))) {
+       if (!(result = smbcli_tree_init(session, mem_ctx, false))) {
                talloc_free(tmp_ctx);
                return NT_STATUS_NO_MEMORY;
        }
@@ -1576,12 +1577,12 @@ NTSTATUS secondary_tcon(TALLOC_CTX *mem_ctx,
  * Test the getusername behaviour
  */
 
-BOOL torture_samba3_rpc_getusername(struct torture_context *torture)
+bool torture_samba3_rpc_getusername(struct torture_context *torture)
 {
        NTSTATUS status;
        struct smbcli_state *cli;
        TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
+       bool ret = true;
        struct dom_sid *user_sid;
        struct dom_sid *created_sid;
        struct cli_credentials *anon_creds;
@@ -1589,7 +1590,7 @@ BOOL torture_samba3_rpc_getusername(struct torture_context *torture)
        char *domain_name;
 
        if (!(mem_ctx = talloc_new(torture))) {
-               return False;
+               return false;
        }
 
        status = smbcli_full_connection(
@@ -1598,21 +1599,21 @@ BOOL torture_samba3_rpc_getusername(struct torture_context *torture)
        if (!NT_STATUS_IS_OK(status)) {
                d_printf("(%s) smbcli_full_connection failed: %s\n",
                         __location__, nt_errstr(status));
-               ret = False;
+               ret = false;
                goto done;
        }
 
        if (!(user_sid = whoami(mem_ctx, cli->tree))) {
                d_printf("(%s) whoami on auth'ed connection failed\n",
                         __location__);
-               ret = False;
+               ret = false;
        }
 
        talloc_free(cli);
 
        if (!(anon_creds = create_anon_creds(mem_ctx))) {
                d_printf("(%s) create_anon_creds failed\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -1622,14 +1623,14 @@ BOOL torture_samba3_rpc_getusername(struct torture_context *torture)
        if (!NT_STATUS_IS_OK(status)) {
                d_printf("(%s) anon smbcli_full_connection failed: %s\n",
                         __location__, nt_errstr(status));
-               ret = False;
+               ret = false;
                goto done;
        }
 
        if (!(user_sid = whoami(mem_ctx, cli->tree))) {
                d_printf("(%s) whoami on anon connection failed\n",
                         __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -1638,16 +1639,16 @@ BOOL torture_samba3_rpc_getusername(struct torture_context *torture)
                d_printf("(%s) Anon lsa_GetUserName returned %s, expected "
                         "S-1-5-7", __location__,
                         dom_sid_string(mem_ctx, user_sid));
-               ret = False;
+               ret = false;
        }
 
        if (!(user_creds = cli_credentials_init(mem_ctx))) {
                d_printf("(%s) cli_credentials_init failed\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
 
-       cli_credentials_set_conf(user_creds);
+       cli_credentials_set_conf(user_creds, global_loadparm);
        cli_credentials_set_username(user_creds, "torture_username",
                                     CRED_SPECIFIED);
        cli_credentials_set_password(user_creds,
@@ -1659,7 +1660,7 @@ BOOL torture_samba3_rpc_getusername(struct torture_context *torture)
                         cli_credentials_get_password(user_creds),
                         &domain_name, &created_sid)) {
                d_printf("(%s) create_user failed\n", __location__);
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -1671,7 +1672,7 @@ BOOL torture_samba3_rpc_getusername(struct torture_context *torture)
                struct smb_composite_sesssetup setup;
                struct smbcli_tree *tree;
 
-               session2 = smbcli_session_init(cli->transport, mem_ctx, False);
+               session2 = smbcli_session_init(cli->transport, mem_ctx, false);
                if (session2 == NULL) {
                        d_printf("(%s) smbcli_session_init failed\n",
                                 __location__);
@@ -1687,7 +1688,7 @@ BOOL torture_samba3_rpc_getusername(struct torture_context *torture)
                if (!NT_STATUS_IS_OK(status)) {
                        d_printf("(%s) session setup with new user failed: "
                                 "%s\n", __location__, nt_errstr(status));
-                       ret = False;
+                       ret = false;
                        goto done;
                }
                session2->vuid = setup.out.vuid;
@@ -1696,14 +1697,14 @@ BOOL torture_samba3_rpc_getusername(struct torture_context *torture)
                                                    "IPC$", &tree))) {
                        d_printf("(%s) secondary_tcon failed\n",
                                 __location__);
-                       ret = False;
+                       ret = false;
                        goto done;
                }
 
                if (!(user_sid = whoami(mem_ctx, tree))) {
                        d_printf("(%s) whoami on user connection failed\n",
                                 __location__);
-                       ret = False;
+                       ret = false;
                        goto delete;
                }
 
@@ -1715,14 +1716,14 @@ BOOL torture_samba3_rpc_getusername(struct torture_context *torture)
                 dom_sid_string(mem_ctx, user_sid));
 
        if (!dom_sid_equal(created_sid, user_sid)) {
-               ret = False;
+               ret = false;
        }
 
  delete:
        if (!delete_user(cli, cmdline_credentials,
                         cli_credentials_get_username(user_creds))) {
                d_printf("(%s) delete_user failed\n", __location__);
-               ret = False;
+               ret = false;
        }
 
  done:
@@ -1730,14 +1731,14 @@ BOOL torture_samba3_rpc_getusername(struct torture_context *torture)
        return ret;
 }
 
-static BOOL test_NetShareGetInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_NetShareGetInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                 const char *sharename)
 {
        NTSTATUS status;
        struct srvsvc_NetShareGetInfo r;
        uint32_t levels[] = { 0, 1, 2, 501, 502, 1004, 1005, 1006, 1007, 1501 };
        int i;
-       BOOL ret = True;
+       bool ret = true;
 
        r.in.server_unc = talloc_asprintf(mem_ctx, "\\\\%s",
                                          dcerpc_server_name(p));
@@ -1756,14 +1757,14 @@ static BOOL test_NetShareGetInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        printf("NetShareGetInfo level %u on share '%s' failed"
                               " - %s\n", r.in.level, r.in.share_name,
                               nt_errstr(status));
-                       ret = False;
+                       ret = false;
                        continue;
                }
                if (!W_ERROR_IS_OK(r.out.result)) {
                        printf("NetShareGetInfo level %u on share '%s' failed "
                               "- %s\n", r.in.level, r.in.share_name,
                               win_errstr(r.out.result));
-                       ret = False;
+                       ret = false;
                        continue;
                }
        }
@@ -1771,7 +1772,7 @@ static BOOL test_NetShareGetInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        return ret;
 }
 
-static BOOL test_NetShareEnum(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_NetShareEnum(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                              const char **one_sharename)
 {
        NTSTATUS status;
@@ -1779,7 +1780,7 @@ static BOOL test_NetShareEnum(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        struct srvsvc_NetShareCtr0 c0;
        uint32_t levels[] = { 0, 1, 2, 501, 502, 1004, 1005, 1006, 1007 };
        int i;
-       BOOL ret = True;
+       bool ret = true;
 
        r.in.server_unc = talloc_asprintf(mem_ctx,"\\\\%s",dcerpc_server_name(p));
        r.in.ctr.ctr0 = &c0;
@@ -1798,7 +1799,7 @@ static BOOL test_NetShareEnum(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                if (!NT_STATUS_IS_OK(status)) {
                        printf("NetShareEnum level %u failed - %s\n",
                               r.in.level, nt_errstr(status));
-                       ret = False;
+                       ret = false;
                        continue;
                }
                if (!W_ERROR_IS_OK(r.out.result)) {
@@ -1817,24 +1818,24 @@ static BOOL test_NetShareEnum(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        return ret;
 }
 
-BOOL torture_samba3_rpc_srvsvc(struct torture_context *torture)
+bool torture_samba3_rpc_srvsvc(struct torture_context *torture)
 {
        struct dcerpc_pipe *p;
        TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
+       bool ret = true;
        const char *sharename = NULL;
        struct smbcli_state *cli;
        NTSTATUS status;
 
        if (!(mem_ctx = talloc_new(torture))) {
-               return False;
+               return false;
        }
 
        if (!(torture_open_connection_share(
                      mem_ctx, &cli, torture_setting_string(torture, "host", NULL),
                      "IPC$", NULL))) {
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        status = pipe_bind_smb(mem_ctx, cli->tree, "\\pipe\\srvsvc",
@@ -1842,7 +1843,7 @@ BOOL torture_samba3_rpc_srvsvc(struct torture_context *torture)
        if (!NT_STATUS_IS_OK(status)) {
                d_printf("(%s) could not bind to srvsvc pipe: %s\n",
                         __location__, nt_errstr(status));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -1966,7 +1967,7 @@ static NTSTATUS set_sharesec(TALLOC_CTX *mem_ctx,
        return status;
 }
 
-BOOL try_tcon(TALLOC_CTX *mem_ctx,
+bool try_tcon(TALLOC_CTX *mem_ctx,
              struct security_descriptor *orig_sd,
              struct smbcli_session *session,
              const char *sharename, const struct dom_sid *user_sid,
@@ -1979,18 +1980,18 @@ BOOL try_tcon(TALLOC_CTX *mem_ctx,
        uint32_t rid;
        struct security_descriptor *sd;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
 
        if (!(tmp_ctx = talloc_new(mem_ctx))) {
                d_printf("talloc_new failed\n");
-               return False;
+               return false;
        }
 
        status = secondary_tcon(tmp_ctx, session, sharename, &rmdir_tree);
        if (!NT_STATUS_IS_OK(status)) {
                d_printf("first tcon to delete dir failed\n");
                talloc_free(tmp_ctx);
-               return False;
+               return false;
        }
 
        smbcli_rmdir(rmdir_tree, "sharesec_testdir");
@@ -1999,7 +2000,7 @@ BOOL try_tcon(TALLOC_CTX *mem_ctx,
                                               &domain_sid, &rid))) {
                d_printf("dom_sid_split_rid failed\n");
                talloc_free(tmp_ctx);
-               return False;
+               return false;
        }
 
        sd = security_descriptor_create(
@@ -2011,7 +2012,7 @@ BOOL try_tcon(TALLOC_CTX *mem_ctx,
        if (sd == NULL) {
                d_printf("security_descriptor_create failed\n");
                talloc_free(tmp_ctx);
-                return False;
+                return false;
         }
 
        status = set_sharesec(mem_ctx, session, sharename, sd);
@@ -2019,14 +2020,14 @@ BOOL try_tcon(TALLOC_CTX *mem_ctx,
                d_printf("custom set_sharesec failed: %s\n",
                         nt_errstr(status));
                talloc_free(tmp_ctx);
-                return False;
+                return false;
        }
 
        status = secondary_tcon(tmp_ctx, session, sharename, &tree);
        if (!NT_STATUS_EQUAL(status, expected_tcon)) {
                d_printf("Expected %s, got %s\n", nt_errstr(expected_tcon),
                         nt_errstr(status));
-               ret = False;
+               ret = false;
                goto done;
        }
 
@@ -2039,7 +2040,7 @@ BOOL try_tcon(TALLOC_CTX *mem_ctx,
        if (!NT_STATUS_EQUAL(status, expected_mkdir)) {
                d_printf("(%s) Expected %s, got %s\n", __location__,
                         nt_errstr(expected_mkdir), nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
  done:
@@ -2050,23 +2051,23 @@ BOOL try_tcon(TALLOC_CTX *mem_ctx,
                d_printf("custom set_sharesec failed: %s\n",
                         nt_errstr(status));
                talloc_free(tmp_ctx);
-                return False;
+                return false;
        }
 
        talloc_free(tmp_ctx);
        return ret;
 }
 
-BOOL torture_samba3_rpc_sharesec(struct torture_context *torture)
+bool torture_samba3_rpc_sharesec(struct torture_context *torture)
 {
        TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
+       bool ret = true;
        struct smbcli_state *cli;
        struct security_descriptor *sd;
        struct dom_sid *user_sid;
 
        if (!(mem_ctx = talloc_new(torture))) {
-               return False;
+               return false;
        }
 
        if (!(torture_open_connection_share(
@@ -2074,13 +2075,13 @@ BOOL torture_samba3_rpc_sharesec(struct torture_context *torture)
                      "IPC$", NULL))) {
                d_printf("IPC$ connection failed\n");
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        if (!(user_sid = whoami(mem_ctx, cli->tree))) {
                d_printf("whoami failed\n");
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        sd = get_sharesec(mem_ctx, cli->session, torture_setting_string(torture,
@@ -2103,10 +2104,10 @@ BOOL torture_samba3_rpc_sharesec(struct torture_context *torture)
        return ret;
 }
 
-BOOL torture_samba3_rpc_lsa(struct torture_context *torture)
+bool torture_samba3_rpc_lsa(struct torture_context *torture)
 {
        TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
+       bool ret = true;
        struct smbcli_state *cli;
        struct dcerpc_pipe *p;
        struct policy_handle lsa_handle;
@@ -2114,7 +2115,7 @@ BOOL torture_samba3_rpc_lsa(struct torture_context *torture)
        struct dom_sid *domain_sid;
 
        if (!(mem_ctx = talloc_new(torture))) {
-               return False;
+               return false;
        }
 
        if (!(torture_open_connection_share(
@@ -2122,7 +2123,7 @@ BOOL torture_samba3_rpc_lsa(struct torture_context *torture)
                      "IPC$", NULL))) {
                d_printf("IPC$ connection failed\n");
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        status = pipe_bind_smb(mem_ctx, cli->tree, "\\lsarpc",
@@ -2131,7 +2132,7 @@ BOOL torture_samba3_rpc_lsa(struct torture_context *torture)
                d_printf("(%s) pipe_bind_smb failed: %s\n", __location__,
                         nt_errstr(status));
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        {
@@ -2148,7 +2149,7 @@ BOOL torture_samba3_rpc_lsa(struct torture_context *torture)
                        d_printf("(%s) dcerpc_lsa_OpenPolicy2 failed: %s\n",
                                 __location__, nt_errstr(status));
                        talloc_free(mem_ctx);
-                       return False;
+                       return false;
                }
        }
 
@@ -2170,7 +2171,7 @@ BOOL torture_samba3_rpc_lsa(struct torture_context *torture)
                                         "failed: %s\n", __location__,
                                         levels[i], nt_errstr(status));
                                talloc_free(mem_ctx);
-                               return False;
+                               return false;
                        }
                        if (levels[i] == 5) {
                                domain_sid = r.out.info->account_domain.sid;
@@ -2265,7 +2266,7 @@ static NTSTATUS find_printers(TALLOC_CTX *ctx, struct smbcli_tree *tree,
        return NT_STATUS_OK;
 }
 
-static BOOL enumprinters(TALLOC_CTX *mem_ctx, struct dcerpc_pipe *pipe,
+static bool enumprinters(TALLOC_CTX *mem_ctx, struct dcerpc_pipe *pipe,
                         const char *servername, int level, int *num_printers)
 {
        struct spoolss_EnumPrinters r;
@@ -2282,20 +2283,20 @@ static BOOL enumprinters(TALLOC_CTX *mem_ctx, struct dcerpc_pipe *pipe,
        if (!NT_STATUS_IS_OK(status)) {
                d_printf("(%s) dcerpc_spoolss_EnumPrinters failed: %s\n",
                         __location__, nt_errstr(status));
-               return False;
+               return false;
        }
 
        if (!W_ERROR_EQUAL(r.out.result, WERR_INSUFFICIENT_BUFFER)) {
                d_printf("(%s) EnumPrinters unexpected return code %s, should "
                         "be WERR_INSUFFICIENT_BUFFER\n", __location__,
                         win_errstr(r.out.result));
-               return False;
+               return false;
        }
 
        blob = data_blob_talloc_zero(mem_ctx, r.out.needed);
        if (blob.data == NULL) {
                d_printf("(%s) data_blob_talloc failed\n", __location__);
-               return False;
+               return false;
        }
 
        r.in.buffer = &blob;
@@ -2306,12 +2307,12 @@ static BOOL enumprinters(TALLOC_CTX *mem_ctx, struct dcerpc_pipe *pipe,
                d_printf("(%s) dcerpc_spoolss_EnumPrinters failed: %s, "
                         "%s\n", __location__, nt_errstr(status),
                         win_errstr(r.out.result));
-               return False;
+               return false;
        }
 
        *num_printers = r.out.count;
 
-       return True;
+       return true;
 }
 
 static NTSTATUS getprinterinfo(TALLOC_CTX *ctx, struct dcerpc_pipe *pipe,
@@ -2378,10 +2379,10 @@ static NTSTATUS getprinterinfo(TALLOC_CTX *ctx, struct dcerpc_pipe *pipe,
        return NT_STATUS_OK;
 }
 
-BOOL torture_samba3_rpc_spoolss(struct torture_context *torture)
+bool torture_samba3_rpc_spoolss(struct torture_context *torture)
 {
        TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
+       bool ret = true;
        struct smbcli_state *cli;
        struct dcerpc_pipe *p;
        NTSTATUS status;
@@ -2392,7 +2393,7 @@ BOOL torture_samba3_rpc_spoolss(struct torture_context *torture)
        char *servername;
 
        if (!(mem_ctx = talloc_new(torture))) {
-               return False;
+               return false;
        }
 
        if (!(torture_open_connection_share(
@@ -2400,7 +2401,7 @@ BOOL torture_samba3_rpc_spoolss(struct torture_context *torture)
                      "IPC$", NULL))) {
                d_printf("IPC$ connection failed\n");
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        status = get_servername(mem_ctx, cli->tree, &servername);
@@ -2408,19 +2409,19 @@ BOOL torture_samba3_rpc_spoolss(struct torture_context *torture)
                d_fprintf(stderr, "(%s) get_servername returned %s\n",
                          __location__, nt_errstr(status));
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        if (!NT_STATUS_IS_OK(find_printers(mem_ctx, cli->tree,
                                           &printers, &num_printers))) {
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        if (num_printers == 0) {
                d_printf("Did not find printers\n");
                talloc_free(mem_ctx);
-               return True;
+               return true;
        }
 
        status = pipe_bind_smb(mem_ctx, cli->tree, "\\spoolss",
@@ -2429,12 +2430,12 @@ BOOL torture_samba3_rpc_spoolss(struct torture_context *torture)
                d_printf("(%s) pipe_bind_smb failed: %s\n", __location__,
                         nt_errstr(status));
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        ZERO_STRUCT(userlevel1);
        userlevel1.client = talloc_asprintf(
-               mem_ctx, "\\\\%s", lp_netbios_name());
+               mem_ctx, "\\\\%s", lp_netbios_name(global_loadparm));
        userlevel1.user = cli_credentials_get_username(cmdline_credentials);
        userlevel1.build = 2600;
        userlevel1.major = 3;
@@ -2459,7 +2460,7 @@ BOOL torture_samba3_rpc_spoolss(struct torture_context *torture)
                                 "%s, %s\n", __location__, nt_errstr(status),
                                 win_errstr(r.out.result));
                        talloc_free(mem_ctx);
-                       return False;
+                       return false;
                }
        }
 
@@ -2475,7 +2476,7 @@ BOOL torture_samba3_rpc_spoolss(struct torture_context *torture)
                                 "%s, %s\n", __location__, nt_errstr(status),
                                 win_errstr(r.out.result));
                        talloc_free(mem_ctx);
-                       return False;
+                       return false;
                }
        }
 
@@ -2497,7 +2498,7 @@ BOOL torture_samba3_rpc_spoolss(struct torture_context *torture)
                                 "%s, %s\n", __location__, nt_errstr(status),
                                 win_errstr(r.out.result));
                        talloc_free(mem_ctx);
-                       return False;
+                       return false;
                }
        }
 
@@ -2510,7 +2511,7 @@ BOOL torture_samba3_rpc_spoolss(struct torture_context *torture)
                        if (!NT_STATUS_IS_OK(status)) {
                                d_printf("(%s) getprinterinfo %d failed: %s\n",
                                         __location__, i, nt_errstr(status));
-                               ret = False;
+                               ret = false;
                        }
                }
        }
@@ -2526,7 +2527,7 @@ BOOL torture_samba3_rpc_spoolss(struct torture_context *torture)
                        d_printf("(%s) dcerpc_spoolss_ClosePrinter failed: "
                                 "%s\n", __location__, nt_errstr(status));
                        talloc_free(mem_ctx);
-                       return False;
+                       return false;
                }
        }
 
@@ -2536,14 +2537,14 @@ BOOL torture_samba3_rpc_spoolss(struct torture_context *torture)
                                  &num_enumerated)) {
                        d_printf("(%s) enumprinters failed\n", __location__);
                        talloc_free(mem_ctx);
-                       return False;
+                       return false;
                }
                if (num_printers != num_enumerated) {
                        d_printf("(%s) netshareenum gave %d printers, "
                                 "enumprinters lvl 1 gave %d\n", __location__,
                                 num_printers, num_enumerated);
                        talloc_free(mem_ctx);
-                       return False;
+                       return false;
                }
        }
 
@@ -2553,14 +2554,14 @@ BOOL torture_samba3_rpc_spoolss(struct torture_context *torture)
                                  &num_enumerated)) {
                        d_printf("(%s) enumprinters failed\n", __location__);
                        talloc_free(mem_ctx);
-                       return False;
+                       return false;
                }
                if (num_printers != num_enumerated) {
                        d_printf("(%s) netshareenum gave %d printers, "
                                 "enumprinters lvl 2 gave %d\n", __location__,
                                 num_printers, num_enumerated);
                        talloc_free(mem_ctx);
-                       return False;
+                       return false;
                }
        }
 
@@ -2569,7 +2570,7 @@ BOOL torture_samba3_rpc_spoolss(struct torture_context *torture)
        return ret;
 }
 
-BOOL torture_samba3_rpc_wkssvc(struct torture_context *torture)
+bool torture_samba3_rpc_wkssvc(struct torture_context *torture)
 {
        TALLOC_CTX *mem_ctx;
        struct smbcli_state *cli;
@@ -2578,7 +2579,7 @@ BOOL torture_samba3_rpc_wkssvc(struct torture_context *torture)
        char *servername;
 
        if (!(mem_ctx = talloc_new(torture))) {
-               return False;
+               return false;
        }
 
        if (!(torture_open_connection_share(
@@ -2586,7 +2587,7 @@ BOOL torture_samba3_rpc_wkssvc(struct torture_context *torture)
                      "IPC$", NULL))) {
                d_printf("IPC$ connection failed\n");
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        status = get_servername(mem_ctx, cli->tree, &servername);
@@ -2594,7 +2595,7 @@ BOOL torture_samba3_rpc_wkssvc(struct torture_context *torture)
                d_fprintf(stderr, "(%s) get_servername returned %s\n",
                          __location__, nt_errstr(status));
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        status = pipe_bind_smb(mem_ctx, cli->tree, "\\wkssvc",
@@ -2603,7 +2604,7 @@ BOOL torture_samba3_rpc_wkssvc(struct torture_context *torture)
                d_printf("(%s) pipe_bind_smb failed: %s\n", __location__,
                         nt_errstr(status));
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        {
@@ -2622,7 +2623,7 @@ BOOL torture_samba3_rpc_wkssvc(struct torture_context *torture)
                                 "%s, %s\n", __location__, nt_errstr(status),
                                 win_errstr(r.out.result));
                        talloc_free(mem_ctx);
-                       return False;
+                       return false;
                }
 
                if (strcmp(servername,
@@ -2632,12 +2633,12 @@ BOOL torture_samba3_rpc_wkssvc(struct torture_context *torture)
                                 __location__, servername,
                                 r.out.info->info100->server_name);
                        talloc_free(mem_ctx);
-                       return False;
+                       return false;
                }
        }
 
        talloc_free(mem_ctx);
-       return True;
+       return true;
 }
 
 static NTSTATUS winreg_close(struct dcerpc_pipe *p,
@@ -2766,14 +2767,14 @@ static NTSTATUS enumkeys(struct dcerpc_pipe *p, struct policy_handle *handle,
                talloc_free(tmp_ctx);
 
                r.in.enum_index += 1;
-       } while(True);
+       } while(true);
 
        return NT_STATUS_OK;
 }
 
 typedef NTSTATUS (*winreg_open_fn)(struct dcerpc_pipe *, TALLOC_CTX *, void *);
 
-static BOOL test_Open3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_Open3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                       const char *name, winreg_open_fn open_fn)
 {
        struct policy_handle handle;
@@ -2788,7 +2789,7 @@ static BOOL test_Open3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        if (!NT_STATUS_IS_OK(status) || !W_ERROR_IS_OK(r.out.result)) {
                d_printf("(%s) %s failed: %s, %s\n", __location__, name,
                         nt_errstr(status), win_errstr(r.out.result));
-               return False;
+               return false;
        }
 
        enumkeys(p, &handle, mem_ctx, 4);
@@ -2797,18 +2798,18 @@ static BOOL test_Open3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        if (!NT_STATUS_IS_OK(status)) {
                d_printf("(%s) dcerpc_CloseKey failed: %s\n",
                         __location__, nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-BOOL torture_samba3_rpc_winreg(struct torture_context *torture)
+bool torture_samba3_rpc_winreg(struct torture_context *torture)
 {
         NTSTATUS status;
        struct dcerpc_pipe *p;
        TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
+       bool ret = true;
        struct {
                const char *name;
                winreg_open_fn fn;
@@ -2828,7 +2829,7 @@ BOOL torture_samba3_rpc_winreg(struct torture_context *torture)
 
        if (!NT_STATUS_IS_OK(status)) {
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
 #if 1
@@ -2836,7 +2837,7 @@ BOOL torture_samba3_rpc_winreg(struct torture_context *torture)
 #else
        for (i = 0; i < ARRAY_SIZE(open_fns); i++) {
                if (!test_Open3(p, mem_ctx, open_fns[i].name, open_fns[i].fn))
-                       ret = False;
+                       ret = false;
        }
 #endif
 
index da74067336f989db83740b9becacec438b53fcec..aa0f6de78800dfceb19c992f261a6d5c9effc67e 100644 (file)
@@ -31,6 +31,7 @@
 #include "torture/rpc/rpc.h"
 #include "auth/gensec/schannel_proto.h"
 #include "libcli/auth/libcli_auth.h"
+#include "param/param.h"
 
 #define TEST_MACHINE_NAME "samlogontest"
 #define TEST_USER_NAME "samlogontestuser"
@@ -61,7 +62,7 @@ struct samlogon_state {
        struct netr_Authenticator auth, auth2;
        struct creds_CredentialState *creds;
        NTSTATUS expected_error;
-       BOOL old_password; /* Allow an old password to be accepted or rejected without error, as well as session key bugs */
+       bool old_password; /* Allow an old password to be accepted or rejected without error, as well as session key bugs */
        DATA_BLOB chall;
 };
 
@@ -262,10 +263,10 @@ static NTSTATUS check_samlogon(struct samlogon_state *samlogon_state,
  * Test the normal 'LM and NTLM' combination
  */
 
-static BOOL test_lm_ntlm_broken(struct samlogon_state *samlogon_state, enum ntlm_break break_which, char **error_string) 
+static bool test_lm_ntlm_broken(struct samlogon_state *samlogon_state, enum ntlm_break break_which, char **error_string) 
 {
-       BOOL pass = True;
-       BOOL lm_good;
+       bool pass = true;
+       bool lm_good;
        NTSTATUS nt_status;
        DATA_BLOB lm_response = data_blob_talloc(samlogon_state->mem_ctx, NULL, 24);
        DATA_BLOB nt_response = data_blob_talloc(samlogon_state->mem_ctx, NULL, 24);
@@ -306,11 +307,11 @@ static BOOL test_lm_ntlm_broken(struct samlogon_state *samlogon_state, enum ntlm
        if (NT_STATUS_EQUAL(NT_STATUS_WRONG_PASSWORD, nt_status)) {
                /* for 'long' passwords, the LM password is invalid */
                if (break_which == NO_NT && !lm_good) {
-                       return True;
+                       return true;
                }
                /* for 'old' passwords, we allow the server to be OK or wrong password */
                if (samlogon_state->old_password) {
-                       return True;
+                       return true;
                }
                return ((break_which == BREAK_NT) || (break_which == BREAK_BOTH));
        } else if (NT_STATUS_EQUAL(NT_STATUS_NOT_FOUND, nt_status) && strchr_m(samlogon_state->account_name, '@')) {
@@ -318,16 +319,16 @@ static BOOL test_lm_ntlm_broken(struct samlogon_state *samlogon_state, enum ntlm
        } else if (!NT_STATUS_EQUAL(samlogon_state->expected_error, nt_status)) {
                SAFE_FREE(*error_string);
                asprintf(error_string, "Expected error: %s, got %s", nt_errstr(samlogon_state->expected_error), nt_errstr(nt_status));
-               return False;
+               return false;
        } else if (NT_STATUS_EQUAL(samlogon_state->expected_error, nt_status) && !NT_STATUS_IS_OK(nt_status)) {
-               return True;
+               return true;
        } else if (!NT_STATUS_IS_OK(nt_status)) {
-               return False;
+               return false;
        }
 
        if (break_which == NO_NT && !lm_good) {
                *error_string = strdup("LM password is 'long' (> 14 chars and therefore invalid) but login did not fail!");
-               return False;
+               return false;
        }
 
        if (memcmp(lm_hash, lm_key, 
@@ -337,7 +338,7 @@ static BOOL test_lm_ntlm_broken(struct samlogon_state *samlogon_state, enum ntlm
                dump_data(1, lm_key, 8);
                d_printf("expected:\n");
                dump_data(1, lm_hash, 8);
-               pass = False;
+               pass = false;
        }
 
        switch (break_which) {
@@ -353,7 +354,7 @@ static BOOL test_lm_ntlm_broken(struct samlogon_state *samlogon_state, enum ntlm
                        dump_data(1, user_session_key, sizeof(user_session_key));
                        d_printf("expected:\n");
                        dump_data(1, lm_key_expected, sizeof(lm_key_expected));
-                       pass = False;
+                       pass = false;
                }
                break;
        }
@@ -365,7 +366,7 @@ static BOOL test_lm_ntlm_broken(struct samlogon_state *samlogon_state, enum ntlm
                        dump_data(1, user_session_key, 16);
                        d_printf("expected:\n");
                        dump_data(1, session_key.data, session_key.length);
-                       pass = False;
+                       pass = false;
                }
        }
         return pass;
@@ -375,7 +376,7 @@ static BOOL test_lm_ntlm_broken(struct samlogon_state *samlogon_state, enum ntlm
  * Test LM authentication, no NT response supplied
  */
 
-static BOOL test_lm(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_lm(struct samlogon_state *samlogon_state, char **error_string) 
 {
 
        return test_lm_ntlm_broken(samlogon_state, NO_NT, error_string);
@@ -385,7 +386,7 @@ static BOOL test_lm(struct samlogon_state *samlogon_state, char **error_string)
  * Test the NTLM response only, no LM.
  */
 
-static BOOL test_ntlm(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_ntlm(struct samlogon_state *samlogon_state, char **error_string) 
 {
        return test_lm_ntlm_broken(samlogon_state, NO_LM, error_string);
 }
@@ -394,10 +395,10 @@ static BOOL test_ntlm(struct samlogon_state *samlogon_state, char **error_string
  * Test the NTLM response only, but in the LM field.
  */
 
-static BOOL test_ntlm_in_lm(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_ntlm_in_lm(struct samlogon_state *samlogon_state, char **error_string) 
 {
-       BOOL lm_good;
-       BOOL pass = True;
+       bool lm_good;
+       bool pass = true;
        NTSTATUS nt_status;
        DATA_BLOB nt_response = data_blob_talloc(samlogon_state->mem_ctx, NULL, 24);
        DATA_BLOB session_key = data_blob_talloc(samlogon_state->mem_ctx, NULL, 16);
@@ -433,17 +434,17 @@ static BOOL test_ntlm_in_lm(struct samlogon_state *samlogon_state, char **error_
        if (NT_STATUS_EQUAL(NT_STATUS_WRONG_PASSWORD, nt_status)) {
                /* for 'old' passwords, we allow the server to be OK or wrong password */
                if (samlogon_state->old_password) {
-                       return True;
+                       return true;
                }
-               return False;
+               return false;
        } else if (!NT_STATUS_EQUAL(samlogon_state->expected_error, nt_status)) {
                SAFE_FREE(*error_string);
                asprintf(error_string, "Expected error: %s, got %s", nt_errstr(samlogon_state->expected_error), nt_errstr(nt_status));
-               return False;
+               return false;
        } else if (NT_STATUS_EQUAL(samlogon_state->expected_error, nt_status) && !NT_STATUS_IS_OK(nt_status)) {
-               return True;
+               return true;
        } else if (!NT_STATUS_IS_OK(nt_status)) {
-               return False;
+               return false;
        }
 
        if (lm_good) {
@@ -454,7 +455,7 @@ static BOOL test_ntlm_in_lm(struct samlogon_state *samlogon_state, char **error_
                        dump_data(1, lm_key, 8);
                        d_printf("expected:\n");
                        dump_data(1, lm_hash, 8);
-                       pass = False;
+                       pass = false;
                }
 #if 0
        } else {
@@ -465,7 +466,7 @@ static BOOL test_ntlm_in_lm(struct samlogon_state *samlogon_state, char **error_
                        dump_data(1, lm_key, 8);
                        d_printf("expected:\n");
                        dump_data(1, session_key.data, 8);
-                       pass = False;
+                       pass = false;
                }
 #endif
        }
@@ -480,7 +481,7 @@ static BOOL test_ntlm_in_lm(struct samlogon_state *samlogon_state, char **error_
                        dump_data(1, user_session_key, sizeof(user_session_key));
                        d_printf("expected:\n");
                        dump_data(1, lm_key_expected, sizeof(lm_key_expected));
-                       pass = False;
+                       pass = false;
                }
        }
         return pass;
@@ -490,10 +491,10 @@ static BOOL test_ntlm_in_lm(struct samlogon_state *samlogon_state, char **error_
  * Test the NTLM response only, but in the both the NT and LM fields.
  */
 
-static BOOL test_ntlm_in_both(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_ntlm_in_both(struct samlogon_state *samlogon_state, char **error_string) 
 {
-       BOOL pass = True;
-       BOOL lm_good;
+       bool pass = true;
+       bool lm_good;
        NTSTATUS nt_status;
        DATA_BLOB nt_response = data_blob_talloc(samlogon_state->mem_ctx, NULL, 24);
        DATA_BLOB session_key = data_blob_talloc(samlogon_state->mem_ctx, NULL, 16);
@@ -530,21 +531,21 @@ static BOOL test_ntlm_in_both(struct samlogon_state *samlogon_state, char **erro
        if (NT_STATUS_EQUAL(NT_STATUS_WRONG_PASSWORD, nt_status)) {
                /* for 'old' passwords, we allow the server to be OK or wrong password */
                if (samlogon_state->old_password) {
-                       return True;
+                       return true;
                }
-               return False;
+               return false;
        } else if (!NT_STATUS_EQUAL(samlogon_state->expected_error, nt_status)) {
                SAFE_FREE(*error_string);
                asprintf(error_string, "Expected error: %s, got %s", nt_errstr(samlogon_state->expected_error), nt_errstr(nt_status));
-               return False;
+               return false;
        } else if (NT_STATUS_EQUAL(samlogon_state->expected_error, nt_status) && !NT_STATUS_IS_OK(nt_status)) {
-               return True;
+               return true;
        } else if (!NT_STATUS_IS_OK(nt_status)) {
-               return False;
+               return false;
        }
 
        if (!NT_STATUS_IS_OK(nt_status)) {
-               return False;
+               return false;
        }
 
        if (memcmp(lm_hash, lm_key, 
@@ -554,7 +555,7 @@ static BOOL test_ntlm_in_both(struct samlogon_state *samlogon_state, char **erro
                dump_data(1, lm_key, 8);
                d_printf("expected:\n");
                dump_data(1, lm_hash, 8);
-               pass = False;
+               pass = false;
        }
        if (memcmp(session_key.data, user_session_key, 
                   sizeof(user_session_key)) != 0) {
@@ -563,7 +564,7 @@ static BOOL test_ntlm_in_both(struct samlogon_state *samlogon_state, char **erro
                dump_data(1, user_session_key, 16);
                d_printf("expected:\n");
                dump_data(1, session_key.data, session_key.length);
-               pass = False;
+               pass = false;
        }
 
 
@@ -579,18 +580,18 @@ enum ntlmv2_domain {
        NO_DOMAIN
 };
 
-static BOOL test_lmv2_ntlmv2_broken(struct samlogon_state *samlogon_state, 
+static bool test_lmv2_ntlmv2_broken(struct samlogon_state *samlogon_state, 
                                    enum ntlm_break break_which, 
                                    enum ntlmv2_domain ntlmv2_domain, 
                                    char **error_string) 
 {
-       BOOL pass = True;
+       bool pass = true;
        NTSTATUS nt_status;
        DATA_BLOB ntlmv2_response = data_blob(NULL, 0);
        DATA_BLOB lmv2_response = data_blob(NULL, 0);
        DATA_BLOB lmv2_session_key = data_blob(NULL, 0);
        DATA_BLOB ntlmv2_session_key = data_blob(NULL, 0);
-       DATA_BLOB names_blob = NTLMv2_generate_names_blob(samlogon_state->mem_ctx, TEST_MACHINE_NAME, lp_workgroup());
+       DATA_BLOB names_blob = NTLMv2_generate_names_blob(samlogon_state->mem_ctx, TEST_MACHINE_NAME, lp_workgroup(global_loadparm));
 
        uint8_t lm_session_key[8];
        uint8_t user_session_key[16];
@@ -607,7 +608,7 @@ static BOOL test_lmv2_ntlmv2_broken(struct samlogon_state *samlogon_state,
                                      &lmv2_response, &ntlmv2_response, 
                                      &lmv2_session_key, &ntlmv2_session_key)) {
                        data_blob_free(&names_blob);
-                       return False;
+                       return false;
                }
                break;
        case NO_DOMAIN:
@@ -618,7 +619,7 @@ static BOOL test_lmv2_ntlmv2_broken(struct samlogon_state *samlogon_state,
                                      &lmv2_response, &ntlmv2_response, 
                                      &lmv2_session_key, &ntlmv2_session_key)) {
                        data_blob_free(&names_blob);
-                       return False;
+                       return false;
                }
                break;
        }
@@ -641,7 +642,7 @@ static BOOL test_lmv2_ntlmv2_broken(struct samlogon_state *samlogon_state,
        if (NT_STATUS_EQUAL(NT_STATUS_WRONG_PASSWORD, nt_status)) {
                /* for 'old' passwords, we allow the server to be OK or wrong password */
                if (samlogon_state->old_password) {
-                       return True;
+                       return true;
                }
                return break_which == BREAK_BOTH;
        } else if (NT_STATUS_EQUAL(NT_STATUS_NOT_FOUND, nt_status) && strchr_m(samlogon_state->account_name, '@')) {
@@ -649,11 +650,11 @@ static BOOL test_lmv2_ntlmv2_broken(struct samlogon_state *samlogon_state,
        } else if (!NT_STATUS_EQUAL(samlogon_state->expected_error, nt_status)) {
                SAFE_FREE(*error_string);
                asprintf(error_string, "Expected error: %s, got %s", nt_errstr(samlogon_state->expected_error), nt_errstr(nt_status));
-               return False;
+               return false;
        } else if (NT_STATUS_EQUAL(samlogon_state->expected_error, nt_status) && !NT_STATUS_IS_OK(nt_status)) {
-               return True;
+               return true;
        } else if (!NT_STATUS_IS_OK(nt_status)) {
-               return False;
+               return false;
        }
 
 
@@ -666,7 +667,7 @@ static BOOL test_lmv2_ntlmv2_broken(struct samlogon_state *samlogon_state,
                        dump_data(1, user_session_key, 16);
                        d_printf("expected:\n");
                        dump_data(1, lmv2_session_key.data, ntlmv2_session_key.length);
-                       pass = False;
+                       pass = false;
                }
                if (memcmp(lmv2_session_key.data, lm_session_key, 
                                   sizeof(lm_session_key)) != 0) {
@@ -675,7 +676,7 @@ static BOOL test_lmv2_ntlmv2_broken(struct samlogon_state *samlogon_state,
                        dump_data(1, lm_session_key, 8);
                        d_printf("expected:\n");
                        dump_data(1, lmv2_session_key.data, 8);
-                       pass = False;
+                       pass = false;
                }
                break;
        default:
@@ -688,7 +689,7 @@ static BOOL test_lmv2_ntlmv2_broken(struct samlogon_state *samlogon_state,
                                dump_data(1, user_session_key, 16);
                                d_printf("expected:\n");
                                dump_data(1, ntlmv2_session_key.data, ntlmv2_session_key.length);
-                               pass = False;
+                               pass = false;
                                
                        } else {
                                d_printf("USER (NTLMv2) Session Key does not match expectations!\n");
@@ -696,7 +697,7 @@ static BOOL test_lmv2_ntlmv2_broken(struct samlogon_state *samlogon_state,
                                dump_data(1, user_session_key, 16);
                                d_printf("expected:\n");
                                dump_data(1, ntlmv2_session_key.data, ntlmv2_session_key.length);
-                               pass = False;
+                               pass = false;
                        }
                }
                if (memcmp(ntlmv2_session_key.data, lm_session_key, 
@@ -708,14 +709,14 @@ static BOOL test_lmv2_ntlmv2_broken(struct samlogon_state *samlogon_state,
                                dump_data(1, lm_session_key, 8);
                                d_printf("expected:\n");
                                dump_data(1, ntlmv2_session_key.data, 8);
-                               pass = False;
+                               pass = false;
                        } else {
                                d_printf("LM (NTLMv2) Session Key does not match expectations!\n");
                                d_printf("lm_session_key:\n");
                                dump_data(1, lm_session_key, 8);
                                d_printf("expected:\n");
                                dump_data(1, ntlmv2_session_key.data, 8);
-                               pass = False;
+                               pass = false;
                        }
                }
        }
@@ -727,23 +728,23 @@ static BOOL test_lmv2_ntlmv2_broken(struct samlogon_state *samlogon_state,
  * Test the NTLM and LMv2 responses
  */
 
-static BOOL test_lmv2_ntlm_broken(struct samlogon_state *samlogon_state, 
+static bool test_lmv2_ntlm_broken(struct samlogon_state *samlogon_state, 
                                  enum ntlm_break break_which, 
                                  enum ntlmv2_domain ntlmv2_domain, 
                                  char **error_string) 
 {
-       BOOL pass = True;
+       bool pass = true;
        NTSTATUS nt_status;
        DATA_BLOB ntlmv2_response = data_blob(NULL, 0);
        DATA_BLOB lmv2_response = data_blob(NULL, 0);
        DATA_BLOB lmv2_session_key = data_blob(NULL, 0);
        DATA_BLOB ntlmv2_session_key = data_blob(NULL, 0);
-       DATA_BLOB names_blob = NTLMv2_generate_names_blob(samlogon_state->mem_ctx, lp_netbios_name(), lp_workgroup());
+       DATA_BLOB names_blob = NTLMv2_generate_names_blob(samlogon_state->mem_ctx, lp_netbios_name(global_loadparm), lp_workgroup(global_loadparm));
 
        DATA_BLOB ntlm_response = data_blob_talloc(samlogon_state->mem_ctx, NULL, 24);
        DATA_BLOB ntlm_session_key = data_blob_talloc(samlogon_state->mem_ctx, NULL, 16);
 
-       BOOL lm_good;
+       bool lm_good;
        uint8_t lm_hash[16];
        uint8_t lm_session_key[8];
        uint8_t user_session_key[16];
@@ -773,7 +774,7 @@ static BOOL test_lmv2_ntlm_broken(struct samlogon_state *samlogon_state,
                                      &lmv2_response, &ntlmv2_response, 
                                      &lmv2_session_key, &ntlmv2_session_key)) {
                        data_blob_free(&names_blob);
-                       return False;
+                       return false;
                }
                break;
        case NO_DOMAIN:
@@ -785,7 +786,7 @@ static BOOL test_lmv2_ntlm_broken(struct samlogon_state *samlogon_state,
                                      &lmv2_response, &ntlmv2_response, 
                                      &lmv2_session_key, &ntlmv2_session_key)) {
                        data_blob_free(&names_blob);
-                       return False;
+                       return false;
                }
                break;
        }
@@ -809,7 +810,7 @@ static BOOL test_lmv2_ntlm_broken(struct samlogon_state *samlogon_state,
        if (NT_STATUS_EQUAL(NT_STATUS_WRONG_PASSWORD, nt_status)) {
                /* for 'old' passwords, we allow the server to be OK or wrong password */
                if (samlogon_state->old_password) {
-                       return True;
+                       return true;
                }
                return ((break_which == BREAK_NT) || (break_which == BREAK_BOTH));
        } else if (NT_STATUS_EQUAL(NT_STATUS_NOT_FOUND, nt_status) && strchr_m(samlogon_state->account_name, '@')) {
@@ -817,11 +818,11 @@ static BOOL test_lmv2_ntlm_broken(struct samlogon_state *samlogon_state,
        } else if (!NT_STATUS_EQUAL(samlogon_state->expected_error, nt_status)) {
                SAFE_FREE(*error_string);
                asprintf(error_string, "Expected error: %s, got %s", nt_errstr(samlogon_state->expected_error), nt_errstr(nt_status));
-               return False;
+               return false;
        } else if (NT_STATUS_EQUAL(samlogon_state->expected_error, nt_status) && !NT_STATUS_IS_OK(nt_status)) {
-               return True;
+               return true;
        } else if (!NT_STATUS_IS_OK(nt_status)) {
-               return False;
+               return false;
        }
 
        switch (break_which) {
@@ -833,7 +834,7 @@ static BOOL test_lmv2_ntlm_broken(struct samlogon_state *samlogon_state,
                        dump_data(1, user_session_key, 16);
                        d_printf("expected:\n");
                        dump_data(1, lmv2_session_key.data, ntlmv2_session_key.length);
-                       pass = False;
+                       pass = false;
                }
                if (memcmp(lmv2_session_key.data, lm_session_key, 
                           sizeof(lm_session_key)) != 0) {
@@ -842,7 +843,7 @@ static BOOL test_lmv2_ntlm_broken(struct samlogon_state *samlogon_state,
                        dump_data(1, lm_session_key, 8);
                        d_printf("expected:\n");
                        dump_data(1, lmv2_session_key.data, 8);
-                       pass = False;
+                       pass = false;
                }
                break;
        case BREAK_LM:
@@ -853,7 +854,7 @@ static BOOL test_lmv2_ntlm_broken(struct samlogon_state *samlogon_state,
                        dump_data(1, user_session_key, 16);
                        d_printf("expected:\n");
                        dump_data(1, ntlm_session_key.data, ntlm_session_key.length);
-                       pass = False;
+                       pass = false;
                }
                if (lm_good) {
                        if (memcmp(lm_hash, lm_session_key, 
@@ -863,7 +864,7 @@ static BOOL test_lmv2_ntlm_broken(struct samlogon_state *samlogon_state,
                                dump_data(1, lm_session_key, 8);
                                d_printf("expected:\n");
                                dump_data(1, lm_hash, 8);
-                               pass = False;
+                               pass = false;
                        }
                } else {
                        static const uint8_t zeros[8];
@@ -874,7 +875,7 @@ static BOOL test_lmv2_ntlm_broken(struct samlogon_state *samlogon_state,
                                dump_data(1, lm_session_key, 8);
                                d_printf("expected:\n");
                                dump_data(1, zeros, 8);
-                               pass = False;
+                               pass = false;
                        }
                }
                break;
@@ -886,7 +887,7 @@ static BOOL test_lmv2_ntlm_broken(struct samlogon_state *samlogon_state,
                        dump_data(1, user_session_key, 16);
                        d_printf("expected:\n");
                        dump_data(1, ntlm_session_key.data, ntlm_session_key.length);
-                       pass = False;
+                       pass = false;
                }
                if (memcmp(ntlm_session_key.data, lm_session_key, 
                           sizeof(lm_session_key)) != 0) {
@@ -895,7 +896,7 @@ static BOOL test_lmv2_ntlm_broken(struct samlogon_state *samlogon_state,
                        dump_data(1, lm_session_key, 8);
                        d_printf("expected:\n");
                        dump_data(1, ntlm_session_key.data, 8);
-                       pass = False;
+                       pass = false;
                }
        }
 
@@ -906,13 +907,13 @@ static BOOL test_lmv2_ntlm_broken(struct samlogon_state *samlogon_state,
  * Test the NTLMv2 and LMv2 responses
  */
 
-static BOOL test_lmv2_ntlmv2(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_lmv2_ntlmv2(struct samlogon_state *samlogon_state, char **error_string) 
 {
        return test_lmv2_ntlmv2_broken(samlogon_state, BREAK_NONE, UPPER_DOMAIN, error_string);
 }
 
 #if 0
-static BOOL test_lmv2_ntlmv2_no_dom(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_lmv2_ntlmv2_no_dom(struct samlogon_state *samlogon_state, char **error_string) 
 {
        return test_lmv2_ntlmv2_broken(samlogon_state, BREAK_NONE, NO_DOMAIN, error_string);
 }
@@ -922,12 +923,12 @@ static BOOL test_lmv2_ntlmv2_no_dom(struct samlogon_state *samlogon_state, char
  * Test the LMv2 response only
  */
 
-static BOOL test_lmv2(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_lmv2(struct samlogon_state *samlogon_state, char **error_string) 
 {
        return test_lmv2_ntlmv2_broken(samlogon_state, NO_NT, UPPER_DOMAIN, error_string);
 }
 
-static BOOL test_lmv2_no_dom(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_lmv2_no_dom(struct samlogon_state *samlogon_state, char **error_string) 
 {
        return test_lmv2_ntlmv2_broken(samlogon_state, NO_NT, NO_DOMAIN, error_string);
 }
@@ -936,93 +937,93 @@ static BOOL test_lmv2_no_dom(struct samlogon_state *samlogon_state, char **error
  * Test the NTLMv2 response only
  */
 
-static BOOL test_ntlmv2(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_ntlmv2(struct samlogon_state *samlogon_state, char **error_string) 
 {
        return test_lmv2_ntlmv2_broken(samlogon_state, NO_LM, UPPER_DOMAIN, error_string);
 }
 
-static BOOL test_ntlmv2_no_dom(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_ntlmv2_no_dom(struct samlogon_state *samlogon_state, char **error_string) 
 {
        return test_lmv2_ntlmv2_broken(samlogon_state, NO_LM, NO_DOMAIN, error_string);
 }
 
-static BOOL test_lm_ntlm(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_lm_ntlm(struct samlogon_state *samlogon_state, char **error_string) 
 {
        return test_lm_ntlm_broken(samlogon_state, BREAK_NONE, error_string);
 }
 
-static BOOL test_ntlm_lm_broken(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_ntlm_lm_broken(struct samlogon_state *samlogon_state, char **error_string) 
 {
        return test_lm_ntlm_broken(samlogon_state, BREAK_LM, error_string);
 }
 
-static BOOL test_ntlm_ntlm_broken(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_ntlm_ntlm_broken(struct samlogon_state *samlogon_state, char **error_string) 
 {
        return test_lm_ntlm_broken(samlogon_state, BREAK_NT, error_string);
 }
 
-static BOOL test_lm_ntlm_both_broken(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_lm_ntlm_both_broken(struct samlogon_state *samlogon_state, char **error_string) 
 {
        return test_lm_ntlm_broken(samlogon_state, BREAK_BOTH, error_string);
 }
-static BOOL test_ntlmv2_lmv2_broken(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_ntlmv2_lmv2_broken(struct samlogon_state *samlogon_state, char **error_string) 
 {
        return test_lmv2_ntlmv2_broken(samlogon_state, BREAK_LM, UPPER_DOMAIN, error_string);
 }
 
-static BOOL test_ntlmv2_lmv2_broken_no_dom(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_ntlmv2_lmv2_broken_no_dom(struct samlogon_state *samlogon_state, char **error_string) 
 {
        return test_lmv2_ntlmv2_broken(samlogon_state, BREAK_LM, NO_DOMAIN, error_string);
 }
 
-static BOOL test_ntlmv2_ntlmv2_broken(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_ntlmv2_ntlmv2_broken(struct samlogon_state *samlogon_state, char **error_string) 
 {
        return test_lmv2_ntlmv2_broken(samlogon_state, BREAK_NT, UPPER_DOMAIN, error_string);
 }
 
 #if 0
-static BOOL test_ntlmv2_ntlmv2_broken_no_dom(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_ntlmv2_ntlmv2_broken_no_dom(struct samlogon_state *samlogon_state, char **error_string) 
 {
        return test_lmv2_ntlmv2_broken(samlogon_state, BREAK_NT, NO_DOMAIN, error_string);
 }
 #endif
 
-static BOOL test_ntlmv2_both_broken(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_ntlmv2_both_broken(struct samlogon_state *samlogon_state, char **error_string) 
 {
        return test_lmv2_ntlmv2_broken(samlogon_state, BREAK_BOTH, UPPER_DOMAIN, error_string);
 }
 
-static BOOL test_ntlmv2_both_broken_no_dom(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_ntlmv2_both_broken_no_dom(struct samlogon_state *samlogon_state, char **error_string) 
 {
        return test_lmv2_ntlmv2_broken(samlogon_state, BREAK_BOTH, NO_DOMAIN, error_string);
 }
 
-static BOOL test_lmv2_ntlm_both_broken(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_lmv2_ntlm_both_broken(struct samlogon_state *samlogon_state, char **error_string) 
 {
        return test_lmv2_ntlm_broken(samlogon_state, BREAK_BOTH, UPPER_DOMAIN, error_string);
 }
 
-static BOOL test_lmv2_ntlm_both_broken_no_dom(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_lmv2_ntlm_both_broken_no_dom(struct samlogon_state *samlogon_state, char **error_string) 
 {
        return test_lmv2_ntlm_broken(samlogon_state, BREAK_BOTH, NO_DOMAIN, error_string);
 }
 
-static BOOL test_lmv2_ntlm_break_ntlm(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_lmv2_ntlm_break_ntlm(struct samlogon_state *samlogon_state, char **error_string) 
 {
        return test_lmv2_ntlm_broken(samlogon_state, BREAK_NT, UPPER_DOMAIN, error_string);
 }
 
-static BOOL test_lmv2_ntlm_break_ntlm_no_dom(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_lmv2_ntlm_break_ntlm_no_dom(struct samlogon_state *samlogon_state, char **error_string) 
 {
        return test_lmv2_ntlm_broken(samlogon_state, BREAK_NT, NO_DOMAIN, error_string);
 }
 
-static BOOL test_lmv2_ntlm_break_lm(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_lmv2_ntlm_break_lm(struct samlogon_state *samlogon_state, char **error_string) 
 {
        return test_lmv2_ntlm_broken(samlogon_state, BREAK_LM, UPPER_DOMAIN, error_string);
 }
 
-static BOOL test_lmv2_ntlm_break_lm_no_dom(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_lmv2_ntlm_break_lm_no_dom(struct samlogon_state *samlogon_state, char **error_string) 
 {
        return test_lmv2_ntlm_broken(samlogon_state, BREAK_LM, NO_DOMAIN, error_string);
 }
@@ -1035,14 +1036,14 @@ static BOOL test_lmv2_ntlm_break_lm_no_dom(struct samlogon_state *samlogon_state
  * (NETLOGON is the wrong place).
  */
 
-static BOOL test_ntlm2(struct samlogon_state *samlogon_state, char **error_string) 
+static bool test_ntlm2(struct samlogon_state *samlogon_state, char **error_string) 
 {
-       BOOL pass = True;
+       bool pass = true;
        NTSTATUS nt_status;
        DATA_BLOB lm_response = data_blob_talloc(samlogon_state->mem_ctx, NULL, 24);
        DATA_BLOB nt_response = data_blob_talloc(samlogon_state->mem_ctx, NULL, 24);
 
-       BOOL lm_good;
+       bool lm_good;
        uint8_t lm_key[8];
        uint8_t nt_hash[16];
        uint8_t lm_hash[16];
@@ -1092,17 +1093,17 @@ static BOOL test_ntlm2(struct samlogon_state *samlogon_state, char **error_strin
        if (NT_STATUS_EQUAL(NT_STATUS_WRONG_PASSWORD, nt_status)) {
                /* for 'old' passwords, we allow the server to be OK or wrong password */
                if (samlogon_state->old_password) {
-                       return True;
+                       return true;
                }
-               return False;
+               return false;
        } else if (!NT_STATUS_EQUAL(samlogon_state->expected_error, nt_status)) {
                SAFE_FREE(*error_string);
                asprintf(error_string, "Expected error: %s, got %s", nt_errstr(samlogon_state->expected_error), nt_errstr(nt_status));
-               return False;
+               return false;
        } else if (NT_STATUS_EQUAL(samlogon_state->expected_error, nt_status) && !NT_STATUS_IS_OK(nt_status)) {
-               return True;
+               return true;
        } else if (!NT_STATUS_IS_OK(nt_status)) {
-               return False;
+               return false;
        }
 
        if (lm_good) {
@@ -1113,7 +1114,7 @@ static BOOL test_ntlm2(struct samlogon_state *samlogon_state, char **error_strin
                        dump_data(1, lm_key, 8);
                        d_printf("expected:\n");
                        dump_data(1, lm_hash, 8);
-                       pass = False;
+                       pass = false;
                }
        } else {
                static const uint8_t zeros[8];
@@ -1124,7 +1125,7 @@ static BOOL test_ntlm2(struct samlogon_state *samlogon_state, char **error_strin
                        dump_data(1, lm_key, 8);
                        d_printf("expected:\n");
                        dump_data(1, zeros, 8);
-                       pass = False;
+                       pass = false;
                }
        }
        if (memcmp(nt_key, user_session_key, 16) != 0) {
@@ -1133,12 +1134,12 @@ static BOOL test_ntlm2(struct samlogon_state *samlogon_state, char **error_strin
                dump_data(1, user_session_key, sizeof(user_session_key));
                d_printf("expected:\n");
                dump_data(1, nt_key, sizeof(nt_key));
-               pass = False;
+               pass = false;
        }
         return pass;
 }
 
-static BOOL test_plaintext(struct samlogon_state *samlogon_state, enum ntlm_break break_which, char **error_string)
+static bool test_plaintext(struct samlogon_state *samlogon_state, enum ntlm_break break_which, char **error_string)
 {
        NTSTATUS nt_status;
        DATA_BLOB nt_response = data_blob(NULL, 0);
@@ -1152,7 +1153,7 @@ static BOOL test_plaintext(struct samlogon_state *samlogon_state, enum ntlm_brea
        uint8_t lm_hash[16];
        static const uint8_t zeros[8];
        DATA_BLOB chall = data_blob_talloc(samlogon_state->mem_ctx, zeros, sizeof(zeros));
-       BOOL lm_good = E_deshash(samlogon_state->password, lm_hash); 
+       bool lm_good = E_deshash(samlogon_state->password, lm_hash); 
 
        ZERO_STRUCT(user_session_key);
        
@@ -1189,11 +1190,11 @@ static BOOL test_plaintext(struct samlogon_state *samlogon_state, enum ntlm_brea
        if (NT_STATUS_EQUAL(NT_STATUS_WRONG_PASSWORD, nt_status)) {
                /* for 'old' passwords, we allow the server to be OK or wrong password */
                if (samlogon_state->old_password) {
-                       return True;
+                       return true;
                }
                /* for 'long' passwords, the LM password is invalid */
                if (break_which == NO_NT && !lm_good) {
-                       return True;
+                       return true;
                }
                return ((break_which == BREAK_NT) || (break_which == BREAK_BOTH));
        } else if (NT_STATUS_EQUAL(NT_STATUS_NOT_FOUND, nt_status) && strchr_m(samlogon_state->account_name, '@')) {
@@ -1201,42 +1202,42 @@ static BOOL test_plaintext(struct samlogon_state *samlogon_state, enum ntlm_brea
        } else if (!NT_STATUS_EQUAL(samlogon_state->expected_error, nt_status)) {
                SAFE_FREE(*error_string);
                asprintf(error_string, "Expected error: %s, got %s", nt_errstr(samlogon_state->expected_error), nt_errstr(nt_status));
-               return False;
+               return false;
        } else if (NT_STATUS_EQUAL(samlogon_state->expected_error, nt_status) && !NT_STATUS_IS_OK(nt_status)) {
-               return True;
+               return true;
        } else if (!NT_STATUS_IS_OK(nt_status)) {
-               return False;
+               return false;
        }
 
        if (break_which == NO_NT && !lm_good) {
                *error_string = strdup("LM password is 'long' (> 14 chars and therefore invalid) but login did not fail!");
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_plaintext_none_broken(struct samlogon_state *samlogon_state, 
+static bool test_plaintext_none_broken(struct samlogon_state *samlogon_state, 
                                       char **error_string) {
        return test_plaintext(samlogon_state, BREAK_NONE, error_string);
 }
 
-static BOOL test_plaintext_lm_broken(struct samlogon_state *samlogon_state, 
+static bool test_plaintext_lm_broken(struct samlogon_state *samlogon_state, 
                                     char **error_string) {
        return test_plaintext(samlogon_state, BREAK_LM, error_string);
 }
 
-static BOOL test_plaintext_nt_broken(struct samlogon_state *samlogon_state, 
+static bool test_plaintext_nt_broken(struct samlogon_state *samlogon_state, 
                                     char **error_string) {
        return test_plaintext(samlogon_state, BREAK_NT, error_string);
 }
 
-static BOOL test_plaintext_nt_only(struct samlogon_state *samlogon_state, 
+static bool test_plaintext_nt_only(struct samlogon_state *samlogon_state, 
                                   char **error_string) {
        return test_plaintext(samlogon_state, NO_LM, error_string);
 }
 
-static BOOL test_plaintext_lm_only(struct samlogon_state *samlogon_state, 
+static bool test_plaintext_lm_only(struct samlogon_state *samlogon_state, 
                                   char **error_string) {
        return test_plaintext(samlogon_state, NO_NT, error_string);
 }
@@ -1260,63 +1261,63 @@ static BOOL test_plaintext_lm_only(struct samlogon_state *samlogon_state,
 */
 
 static const struct ntlm_tests {
-       BOOL (*fn)(struct samlogon_state *, char **);
+       bool (*fn)(struct samlogon_state *, char **);
        const char *name;
-       BOOL expect_fail;
+       bool expect_fail;
 } test_table[] = {
-       {test_lmv2_ntlmv2, "NTLMv2 and LMv2", False},
+       {test_lmv2_ntlmv2, "NTLMv2 and LMv2", false},
 #if 0
-       {test_lmv2_ntlmv2_no_dom, "NTLMv2 and LMv2 (no domain)", False},
+       {test_lmv2_ntlmv2_no_dom, "NTLMv2 and LMv2 (no domain)", false},
 #endif
-       {test_lm, "LM", False},
-       {test_lm_ntlm, "LM and NTLM", False},
-       {test_lm_ntlm_both_broken, "LM and NTLM, both broken", False},
-       {test_ntlm, "NTLM", False},
-       {test_ntlm_in_lm, "NTLM in LM", False},
-       {test_ntlm_in_both, "NTLM in both", False},
-       {test_ntlmv2, "NTLMv2", False},
-       {test_ntlmv2_no_dom, "NTLMv2 (no domain)", False},
-       {test_lmv2, "LMv2", False},
-       {test_lmv2_no_dom, "LMv2 (no domain)", False},
-       {test_ntlmv2_lmv2_broken, "NTLMv2 and LMv2, LMv2 broken", False},
-       {test_ntlmv2_lmv2_broken_no_dom, "NTLMv2 and LMv2, LMv2 broken (no domain)", False},
-       {test_ntlmv2_ntlmv2_broken, "NTLMv2 and LMv2, NTLMv2 broken", False},
+       {test_lm, "LM", false},
+       {test_lm_ntlm, "LM and NTLM", false},
+       {test_lm_ntlm_both_broken, "LM and NTLM, both broken", false},
+       {test_ntlm, "NTLM", false},
+       {test_ntlm_in_lm, "NTLM in LM", false},
+       {test_ntlm_in_both, "NTLM in both", false},
+       {test_ntlmv2, "NTLMv2", false},
+       {test_ntlmv2_no_dom, "NTLMv2 (no domain)", false},
+       {test_lmv2, "LMv2", false},
+       {test_lmv2_no_dom, "LMv2 (no domain)", false},
+       {test_ntlmv2_lmv2_broken, "NTLMv2 and LMv2, LMv2 broken", false},
+       {test_ntlmv2_lmv2_broken_no_dom, "NTLMv2 and LMv2, LMv2 broken (no domain)", false},
+       {test_ntlmv2_ntlmv2_broken, "NTLMv2 and LMv2, NTLMv2 broken", false},
 #if 0
-       {test_ntlmv2_ntlmv2_broken_no_dom, "NTLMv2 and LMv2, NTLMv2 broken (no domain)", False},
+       {test_ntlmv2_ntlmv2_broken_no_dom, "NTLMv2 and LMv2, NTLMv2 broken (no domain)", false},
 #endif
-       {test_ntlmv2_both_broken, "NTLMv2 and LMv2, both broken", False},
-       {test_ntlmv2_both_broken_no_dom, "NTLMv2 and LMv2, both broken (no domain)", False},
-       {test_ntlm_lm_broken, "NTLM and LM, LM broken", False},
-       {test_ntlm_ntlm_broken, "NTLM and LM, NTLM broken", False},
-       {test_ntlm2, "NTLM2 (NTLMv2 session security)", False},
-       {test_lmv2_ntlm_both_broken, "LMv2 and NTLM, both broken", False},
-       {test_lmv2_ntlm_both_broken_no_dom, "LMv2 and NTLM, both broken (no domain)", False},
-       {test_lmv2_ntlm_break_ntlm, "LMv2 and NTLM, NTLM broken", False},
-       {test_lmv2_ntlm_break_ntlm_no_dom, "LMv2 and NTLM, NTLM broken (no domain)", False},
-       {test_lmv2_ntlm_break_lm, "LMv2 and NTLM, LMv2 broken", False},
-       {test_lmv2_ntlm_break_lm_no_dom, "LMv2 and NTLM, LMv2 broken (no domain)", False},
-       {test_plaintext_none_broken, "Plaintext", False},
-       {test_plaintext_lm_broken, "Plaintext LM broken", False},
-       {test_plaintext_nt_broken, "Plaintext NT broken", False},
-       {test_plaintext_nt_only, "Plaintext NT only", False},
-       {test_plaintext_lm_only, "Plaintext LM only", False},
+       {test_ntlmv2_both_broken, "NTLMv2 and LMv2, both broken", false},
+       {test_ntlmv2_both_broken_no_dom, "NTLMv2 and LMv2, both broken (no domain)", false},
+       {test_ntlm_lm_broken, "NTLM and LM, LM broken", false},
+       {test_ntlm_ntlm_broken, "NTLM and LM, NTLM broken", false},
+       {test_ntlm2, "NTLM2 (NTLMv2 session security)", false},
+       {test_lmv2_ntlm_both_broken, "LMv2 and NTLM, both broken", false},
+       {test_lmv2_ntlm_both_broken_no_dom, "LMv2 and NTLM, both broken (no domain)", false},
+       {test_lmv2_ntlm_break_ntlm, "LMv2 and NTLM, NTLM broken", false},
+       {test_lmv2_ntlm_break_ntlm_no_dom, "LMv2 and NTLM, NTLM broken (no domain)", false},
+       {test_lmv2_ntlm_break_lm, "LMv2 and NTLM, LMv2 broken", false},
+       {test_lmv2_ntlm_break_lm_no_dom, "LMv2 and NTLM, LMv2 broken (no domain)", false},
+       {test_plaintext_none_broken, "Plaintext", false},
+       {test_plaintext_lm_broken, "Plaintext LM broken", false},
+       {test_plaintext_nt_broken, "Plaintext NT broken", false},
+       {test_plaintext_nt_only, "Plaintext NT only", false},
+       {test_plaintext_lm_only, "Plaintext LM only", false},
        {NULL, NULL}
 };
 
 /*
   try a netlogon SamLogon
 */
-static BOOL test_SamLogon(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_SamLogon(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                          struct creds_CredentialState *creds, 
                          const char *comment,
                          const char *account_domain, const char *account_name, 
                          const char *plain_pass, uint32_t parameter_control,
-                         NTSTATUS expected_error, BOOL old_password,
+                         NTSTATUS expected_error, bool old_password,
                          int n_subtests)
 {
        TALLOC_CTX *fn_ctx = talloc_named(mem_ctx, 0, "test_SamLogon function-level context");
        int i, v, l, f;
-       BOOL ret = True;
+       bool ret = true;
        int validation_levels[] = {2,3,6};
        int logon_levels[] = { 2, 6 };
        int function_levels[] = { 
@@ -1383,7 +1384,7 @@ static BOOL test_SamLogon(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                                        d_printf(" failed (expected, test incomplete): %s\n", error_string);
                                                } else {
                                                        d_printf(" failed: %s\n", error_string);
-                                                       ret = False;
+                                                       ret = false;
                                                }
                                                SAFE_FREE(error_string);
                                        }
@@ -1399,7 +1400,7 @@ static BOOL test_SamLogon(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 /*
   test an ADS style interactive domain logon
 */
-BOOL test_InteractiveLogon(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+bool test_InteractiveLogon(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                           struct creds_CredentialState *creds, 
                           const char *comment,
                           const char *workstation_name,
@@ -1455,7 +1456,7 @@ BOOL test_InteractiveLogon(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
            || !creds_client_check(creds, &r.out.return_authenticator->cred)) {
                d_printf("Credential chaining failed\n");
                talloc_free(fn_ctx);
-               return False;
+               return false;
        }
 
        talloc_free(fn_ctx);
@@ -1463,22 +1464,22 @@ BOOL test_InteractiveLogon(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        if (!NT_STATUS_EQUAL(expected_error, status)) {
                d_printf("[%s]\\[%s] netr_LogonSamLogonWithFlags - expected %s got %s\n", 
                       account_domain, account_name, nt_errstr(expected_error), nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 
 
-BOOL torture_rpc_samlogon(struct torture_context *torture)
+bool torture_rpc_samlogon(struct torture_context *torture)
 {
         NTSTATUS status;
         struct dcerpc_pipe *p;
        struct dcerpc_binding *b;
        struct cli_credentials *machine_credentials;
        TALLOC_CTX *mem_ctx = talloc_init("torture_rpc_netlogon");
-       BOOL ret = True;
+       bool ret = true;
        struct test_join *join_ctx = NULL;
        struct test_join *user_ctx = NULL, *user_ctx_wrong_wks = NULL, *user_ctx_wrong_time = NULL;
        char *user_password, *user_password_wrong_wks, *user_password_wrong_time;
@@ -1508,10 +1509,10 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
                                       &machine_credentials);
        if (!join_ctx) {
                d_printf("Failed to join as Workstation\n");
-               return False;
+               return false;
        }
 
-       userdomain = torture_setting_string(torture, "userdomain", lp_workgroup());
+       userdomain = torture_setting_string(torture, "userdomain", lp_workgroup(global_loadparm));
 
        user_ctx = torture_create_testuser(torture,
                                           TEST_USER_NAME,
@@ -1520,14 +1521,14 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
                                           (const char **)&user_password);
        if (!user_ctx) {
                d_printf("Failed to create a test user\n");
-               return False;
+               return false;
        }
 
        old_user_password = user_password;
 
        test_ChangePasswordUser3(torture_join_samr_pipe(user_ctx), mem_ctx,
                                 TEST_USER_NAME, 16 /* > 14 */, &user_password, 
-                                NULL, 0, False);
+                                NULL, 0, false);
 
        user_ctx_wrong_wks = torture_create_testuser(torture,
                                                     TEST_USER_NAME_WRONG_WKS,
@@ -1536,7 +1537,7 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
                                           (const char **)&user_password_wrong_wks);
        if (!user_ctx_wrong_wks) {
                d_printf("Failed to create a test user (wrong workstation test)\n");
-               return False;
+               return false;
        }
 
        ZERO_STRUCT(u);
@@ -1550,7 +1551,7 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
        status = dcerpc_samr_SetUserInfo(torture_join_samr_pipe(user_ctx_wrong_wks), mem_ctx, &s);
        if (!NT_STATUS_IS_OK(status)) {
                printf("SetUserInfo (list of workstations) failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
                goto failed;
        }
 
@@ -1561,7 +1562,7 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
                                           (const char **)&user_password_wrong_time);
        if (!user_ctx_wrong_time) {
                d_printf("Failed to create a test user (wrong workstation test)\n");
-               return False;
+               return false;
        }
 
        ZERO_STRUCT(u);
@@ -1572,18 +1573,18 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
        u.info21.fields_present = SAMR_FIELD_WORKSTATIONS | SAMR_FIELD_LOGON_HOURS;
        u.info21.workstations.string = TEST_MACHINE_NAME;
        u.info21.logon_hours.units_per_week = 168;
-       u.info21.logon_hours.bits = talloc_zero_size(mem_ctx, 168);
+       u.info21.logon_hours.bits = talloc_zero_array(mem_ctx, uint8_t, 168);
 
        status = dcerpc_samr_SetUserInfo(torture_join_samr_pipe(user_ctx_wrong_time), mem_ctx, &s);
        if (!NT_STATUS_IS_OK(status)) {
                printf("SetUserInfo (logon times and list of workstations) failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
                goto failed;
        }
 
        status = torture_rpc_binding(torture, &b);
        if (!NT_STATUS_IS_OK(status)) {
-               ret = False;
+               ret = false;
                goto failed;
        }
 
@@ -1599,13 +1600,13 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
 
        if (!NT_STATUS_IS_OK(status)) {
                d_printf("RPC pipe connect as domain member failed: %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
                goto failed;
        }
 
        status = dcerpc_schannel_creds(p->conn->security_state.generic_state, mem_ctx, &creds);
        if (!NT_STATUS_IS_OK(status)) {
-               ret = False;
+               ret = false;
                goto failed;
        }
 
@@ -1616,18 +1617,18 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
                        const char *domain;
                        const char *username;
                        const char *password;
-                       BOOL network_login;
+                       bool network_login;
                        NTSTATUS expected_interactive_error;
                        NTSTATUS expected_network_error;
                        uint32_t parameter_control;
-                       BOOL old_password; /* Allow an old password to be accepted or rejected without error, as well as session key bugs */
+                       bool old_password; /* Allow an old password to be accepted or rejected without error, as well as session key bugs */
                } usercreds[] = {
                        {
                                .comment       = "domain\\user",
                                .domain        = cli_credentials_get_domain(cmdline_credentials),
                                .username      = cli_credentials_get_username(cmdline_credentials),
                                .password      = cli_credentials_get_password(cmdline_credentials),
-                               .network_login = True,
+                               .network_login = true,
                                .expected_interactive_error = NT_STATUS_OK,
                                .expected_network_error     = NT_STATUS_OK
                        },
@@ -1636,7 +1637,7 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
                                .domain        = cli_credentials_get_realm(cmdline_credentials),
                                .username      = cli_credentials_get_username(cmdline_credentials),
                                .password      = cli_credentials_get_password(cmdline_credentials),
-                               .network_login = True,
+                               .network_login = true,
                                .expected_interactive_error = NT_STATUS_OK,
                                .expected_network_error     = NT_STATUS_OK
                        },
@@ -1649,7 +1650,7 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
                                                cli_credentials_get_domain(cmdline_credentials)
                                        ),
                                .password      = cli_credentials_get_password(cmdline_credentials),
-                               .network_login = False, /* works for some things, but not NTLMv2.  Odd */
+                               .network_login = false, /* works for some things, but not NTLMv2.  Odd */
                                .expected_interactive_error = NT_STATUS_OK,
                                .expected_network_error     = NT_STATUS_OK
                        },
@@ -1662,7 +1663,7 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
                                                cli_credentials_get_realm(cmdline_credentials)
                                        ),
                                .password      = cli_credentials_get_password(cmdline_credentials),
-                               .network_login = True,
+                               .network_login = true,
                                .expected_interactive_error = NT_STATUS_OK,
                                .expected_network_error     = NT_STATUS_OK
                        },
@@ -1671,7 +1672,7 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
                                .domain       = cli_credentials_get_domain(machine_credentials),
                                .username     = cli_credentials_get_username(machine_credentials),
                                .password     = cli_credentials_get_password(machine_credentials),
-                               .network_login = True,
+                               .network_login = true,
                                .expected_interactive_error = NT_STATUS_NO_SUCH_USER,
                                .parameter_control = MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT
                        },
@@ -1680,7 +1681,7 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
                                .domain       = cli_credentials_get_domain(machine_credentials),
                                .username     = cli_credentials_get_username(machine_credentials),
                                .password     = cli_credentials_get_password(machine_credentials),
-                               .network_login = True,
+                               .network_login = true,
                                .expected_interactive_error = NT_STATUS_NO_SUCH_USER,
                                .expected_network_error = NT_STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT
                        },
@@ -1689,7 +1690,7 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
                                .domain        = cli_credentials_get_realm(machine_credentials),
                                .username      = cli_credentials_get_username(machine_credentials),
                                .password      = cli_credentials_get_password(machine_credentials),
-                               .network_login = True,
+                               .network_login = true,
                                .expected_interactive_error = NT_STATUS_NO_SUCH_USER,
                                .parameter_control = MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT
                        },
@@ -1702,7 +1703,7 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
                                                                cli_credentials_get_domain(machine_credentials)
                                        ), 
                                .password      = cli_credentials_get_password(machine_credentials),
-                               .network_login = False, /* works for some things, but not NTLMv2.  Odd */
+                               .network_login = false, /* works for some things, but not NTLMv2.  Odd */
                                .expected_interactive_error = NT_STATUS_NO_SUCH_USER,
                                .parameter_control = MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT
                        },
@@ -1715,7 +1716,7 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
                                                                cli_credentials_get_realm(machine_credentials)
                                        ),
                                .password      = cli_credentials_get_password(machine_credentials),
-                               .network_login = True,
+                               .network_login = true,
                                .expected_interactive_error = NT_STATUS_NO_SUCH_USER,
                                .parameter_control = MSV1_0_ALLOW_WORKSTATION_TRUST_ACCOUNT
                        },
@@ -1724,7 +1725,7 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
                                .domain        = userdomain,
                                .username      = TEST_USER_NAME,
                                .password      = user_password,
-                               .network_login = True,
+                               .network_login = true,
                                .expected_interactive_error = NT_STATUS_OK,
                                .expected_network_error     = NT_STATUS_OK
                        },
@@ -1734,9 +1735,9 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
                                .username      = talloc_asprintf(mem_ctx, 
                                                                 "%s@%s", 
                                                                 TEST_USER_NAME,
-                                                                lp_realm()),
+                                                                lp_realm(global_loadparm)),
                                .password      = user_password,
-                               .network_login = True,
+                               .network_login = true,
                                .expected_interactive_error = NT_STATUS_OK,
                                .expected_network_error     = NT_STATUS_OK
                        },
@@ -1748,7 +1749,7 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
                                                                 TEST_USER_NAME,
                                                                 userdomain),
                                .password      = user_password,
-                               .network_login = False, /* works for some things, but not NTLMv2.  Odd */
+                               .network_login = false, /* works for some things, but not NTLMv2.  Odd */
                                .expected_interactive_error = NT_STATUS_OK,
                                .expected_network_error     = NT_STATUS_OK
                        },
@@ -1758,17 +1759,17 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
                                .domain        = userdomain,
                                .username      = TEST_USER_NAME,
                                .password      = old_user_password,
-                               .network_login = True,
+                               .network_login = true,
                                .expected_interactive_error = NT_STATUS_WRONG_PASSWORD,
                                .expected_network_error     = NT_STATUS_OK,
-                               .old_password  = True
+                               .old_password  = true
                        },
                        {       
                                .comment       = "test user (wong workstation): domain\\user",
                                .domain        = userdomain,
                                .username      = TEST_USER_NAME_WRONG_WKS,
                                .password      = user_password_wrong_wks,
-                               .network_login = True,
+                               .network_login = true,
                                .expected_interactive_error = NT_STATUS_INVALID_WORKSTATION,
                                .expected_network_error     = NT_STATUS_INVALID_WORKSTATION
                        }
@@ -1785,7 +1786,7 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
                                                   usercreds[ci].password,
                                                   usercreds[ci].parameter_control,
                                                   usercreds[ci].expected_interactive_error)) {
-                               ret = False;
+                               ret = false;
                        }
                
                        if (usercreds[ci].network_login) {
@@ -1798,7 +1799,7 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
                                                   usercreds[ci].expected_network_error,
                                                   usercreds[ci].old_password,
                                                   0)) {
-                                       ret = False;
+                                       ret = false;
                                }
                        }
                }
@@ -1818,7 +1819,7 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
                                                   usercreds[0].password,
                                                   usercreds[0].parameter_control,
                                                   usercreds[0].expected_interactive_error)) {
-                               ret = False;
+                               ret = false;
                        }
                
                        if (usercreds[0].network_login) {
@@ -1831,7 +1832,7 @@ BOOL torture_rpc_samlogon(struct torture_context *torture)
                                                   usercreds[0].expected_network_error,
                                                   usercreds[0].old_password,
                                                   1)) {
-                                       ret = False;
+                                       ret = false;
                                }
                        }
                }
index 8d3164967a1f1a71e2e8d0d52bd418ae6087384c..ec70c91570e304615e6b14ccd312edefc594d275 100644 (file)
@@ -28,6 +28,7 @@
 #include "libcli/auth/libcli_auth.h"
 #include "libcli/security/security.h"
 #include "torture/rpc/rpc.h"
+#include "param/param.h"
 
 #define TEST_ACCOUNT_NAME "samrtorturetest"
 #define TEST_ALIASNAME "samrtorturetestalias"
@@ -41,16 +42,16 @@ enum torture_samr_choice {
        TORTURE_SAMR_OTHER
 };
 
-static BOOL test_QueryUserInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_QueryUserInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                               struct policy_handle *handle);
 
-static BOOL test_QueryUserInfo2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_QueryUserInfo2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                struct policy_handle *handle);
 
-static BOOL test_QueryAliasInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_QueryAliasInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                               struct policy_handle *handle);
 
-static BOOL test_ChangePassword(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_ChangePassword(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                const char *acct_name, 
                                struct policy_handle *domain_handle, char **password);
 
@@ -59,7 +60,7 @@ static void init_lsa_String(struct lsa_String *string, const char *s)
        string->string = s;
 }
 
-BOOL test_samr_handle_Close(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+bool test_samr_handle_Close(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                   struct policy_handle *handle)
 {
        NTSTATUS status;
@@ -71,21 +72,21 @@ BOOL test_samr_handle_Close(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_Close(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Close handle failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_Shutdown(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_Shutdown(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                       struct policy_handle *handle)
 {
        NTSTATUS status;
        struct samr_Shutdown r;
 
-       if (!lp_parm_bool(-1, "torture", "dangerous", False)) {
+       if (!lp_parm_bool(global_loadparm, NULL, "torture", "dangerous", false)) {
                printf("samr_Shutdown disabled - enable dangerous tests to use\n");
-               return True;
+               return true;
        }
 
        r.in.connect_handle = handle;
@@ -95,13 +96,13 @@ static BOOL test_Shutdown(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_Shutdown(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("samr_Shutdown failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_SetDsrmPassword(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_SetDsrmPassword(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                 struct policy_handle *handle)
 {
        NTSTATUS status;
@@ -109,9 +110,9 @@ static BOOL test_SetDsrmPassword(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        struct lsa_String string;
        struct samr_Password hash;
 
-       if (!lp_parm_bool(-1, "torture", "dangerous", False)) {
+       if (!lp_parm_bool(global_loadparm, NULL, "torture", "dangerous", false)) {
                printf("samr_SetDsrmPassword disabled - enable dangerous tests to use\n");
-               return True;
+               return true;
        }
 
        E_md4hash("TeSTDSRM123", hash.hash);
@@ -127,14 +128,14 @@ static BOOL test_SetDsrmPassword(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_SetDsrmPassword(p, mem_ctx, &r);
        if (!NT_STATUS_EQUAL(status, NT_STATUS_NOT_SUPPORTED)) {
                printf("samr_SetDsrmPassword failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 
-static BOOL test_QuerySecurity(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_QuerySecurity(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                               struct policy_handle *handle)
 {
        NTSTATUS status;
@@ -147,39 +148,39 @@ static BOOL test_QuerySecurity(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_QuerySecurity(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("QuerySecurity failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        if (r.out.sdbuf == NULL) {
-               return False;
+               return false;
        }
 
        s.in.handle = handle;
        s.in.sec_info = 7;
        s.in.sdbuf = r.out.sdbuf;
 
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
+       if (lp_parm_bool(global_loadparm, NULL, "torture", "samba4", false)) {
                printf("skipping SetSecurity test against Samba4\n");
-               return True;
+               return true;
        }
 
        status = dcerpc_samr_SetSecurity(p, mem_ctx, &s);
        if (!NT_STATUS_IS_OK(status)) {
                printf("SetSecurity failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        status = dcerpc_samr_QuerySecurity(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("QuerySecurity failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 
-static BOOL test_SetUserInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_SetUserInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                             struct policy_handle *handle, uint32_t base_acct_flags,
                             const char *base_account_name)
 {
@@ -189,7 +190,7 @@ static BOOL test_SetUserInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        struct samr_QueryUserInfo q;
        struct samr_QueryUserInfo q0;
        union samr_UserInfo u;
-       BOOL ret = True;
+       bool ret = true;
        const char *test_account_name;
 
        uint32_t user_extra_flags = 0;
@@ -213,7 +214,7 @@ static BOOL test_SetUserInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                if (!NT_STATUS_IS_OK(status)) { \
                        printf(#call " level %u failed - %s (%s)\n", \
                               r.in.level, nt_errstr(status), __location__); \
-                       ret = False; \
+                       ret = false; \
                        break; \
                }
 
@@ -221,15 +222,15 @@ static BOOL test_SetUserInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                if ((s1 && !s2) || (s2 && !s1) || strcmp(s1, s2)) { \
                        printf("Failed to set %s to '%s' (%s)\n", \
                               #field, s2, __location__); \
-                       ret = False; \
+                       ret = false; \
                        break; \
                }
 
 #define INT_EQUAL(i1, i2, field) \
                if (i1 != i2) { \
-                       printf("Failed to set %s to 0x%x - got 0x%x (%s)\n", \
-                              #field, i2, i1, __location__); \
-                       ret = False; \
+                       printf("Failed to set %s to 0x%llx - got 0x%llx (%s)\n", \
+                              #field, (unsigned long long)i2, (unsigned long long)i1, __location__); \
+                       ret = false; \
                        break; \
                }
 
@@ -373,23 +374,40 @@ static BOOL test_SetUserInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        TEST_USERINFO_STRING(14, workstations, 21, workstations, "14workstation21", 0);
        TEST_USERINFO_STRING(21, workstations, 21, workstations, "21workstation21", 
                           SAMR_FIELD_WORKSTATIONS);
+       TEST_USERINFO_STRING(21, workstations, 3, workstations, "21workstation3", 
+                          SAMR_FIELD_WORKSTATIONS);
+       TEST_USERINFO_STRING(21, workstations, 5, workstations, "21workstation5", 
+                          SAMR_FIELD_WORKSTATIONS);
+       TEST_USERINFO_STRING(21, workstations, 14, workstations, "21workstation14", 
+                          SAMR_FIELD_WORKSTATIONS);
 
        TEST_USERINFO_STRING(20, parameters, 21, parameters, "xx20-21 parameters", 0);
        TEST_USERINFO_STRING(21, parameters, 21, parameters, "xx21-21 parameters", 
                           SAMR_FIELD_PARAMETERS);
+       TEST_USERINFO_STRING(21, parameters, 20, parameters, "xx21-20 parameters", 
+                          SAMR_FIELD_PARAMETERS);
 
+       TEST_USERINFO_INT(2, country_code, 2, country_code, __LINE__, 0);
        TEST_USERINFO_INT(2, country_code, 21, country_code, __LINE__, 0);
        TEST_USERINFO_INT(21, country_code, 21, country_code, __LINE__, 
                          SAMR_FIELD_COUNTRY_CODE);
+       TEST_USERINFO_INT(21, country_code, 2, country_code, __LINE__, 
+                         SAMR_FIELD_COUNTRY_CODE);
 
        TEST_USERINFO_INT(2, code_page, 21, code_page, __LINE__, 0);
        TEST_USERINFO_INT(21, code_page, 21, code_page, __LINE__, 
                          SAMR_FIELD_CODE_PAGE);
+       TEST_USERINFO_INT(21, code_page, 2, code_page, __LINE__, 
+                         SAMR_FIELD_CODE_PAGE);
 
        TEST_USERINFO_INT(17, acct_expiry, 21, acct_expiry, __LINE__, 0);
        TEST_USERINFO_INT(17, acct_expiry, 5, acct_expiry, __LINE__, 0);
        TEST_USERINFO_INT(21, acct_expiry, 21, acct_expiry, __LINE__, 
                          SAMR_FIELD_ACCT_EXPIRY);
+       TEST_USERINFO_INT(21, acct_expiry, 5, acct_expiry, __LINE__, 
+                         SAMR_FIELD_ACCT_EXPIRY);
+       TEST_USERINFO_INT(21, acct_expiry, 17, acct_expiry, __LINE__, 
+                         SAMR_FIELD_ACCT_EXPIRY);
 
        TEST_USERINFO_INT(4, logon_hours.bits[3],  3, logon_hours.bits[3], 1, 0);
        TEST_USERINFO_INT(4, logon_hours.bits[3],  5, logon_hours.bits[3], 2, 0);
@@ -397,7 +415,7 @@ static BOOL test_SetUserInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        TEST_USERINFO_INT(21, logon_hours.bits[3], 21, logon_hours.bits[3], 4, 
                          SAMR_FIELD_LOGON_HOURS);
 
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
+       if (lp_parm_bool(global_loadparm, NULL, "torture", "samba4", false)) {
                printf("skipping Set Account Flag tests against Samba4\n");
                return ret;
        }
@@ -493,13 +511,13 @@ static char *samr_rand_pass_fixed_len(TALLOC_CTX *mem_ctx, int len)
        return s;
 }
 
-static BOOL test_SetUserPass(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_SetUserPass(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                             struct policy_handle *handle, char **password)
 {
        NTSTATUS status;
        struct samr_SetUserInfo s;
        union samr_UserInfo u;
-       BOOL ret = True;
+       bool ret = true;
        DATA_BLOB session_key;
        char *newpass;
        struct samr_GetUserPwInfo pwp;
@@ -524,7 +542,7 @@ static BOOL test_SetUserPass(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        if (!NT_STATUS_IS_OK(status)) {
                printf("SetUserInfo level %u - no session key - %s\n",
                       s.in.level, nt_errstr(status));
-               return False;
+               return false;
        }
 
        arcfour_crypt_blob(u.info24.password.data, 516, &session_key);
@@ -535,7 +553,7 @@ static BOOL test_SetUserPass(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        if (!NT_STATUS_IS_OK(status)) {
                printf("SetUserInfo level %u failed - %s\n",
                       s.in.level, nt_errstr(status));
-               ret = False;
+               ret = false;
        } else {
                *password = newpass;
        }
@@ -544,14 +562,14 @@ static BOOL test_SetUserPass(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 }
 
 
-static BOOL test_SetUserPass_23(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_SetUserPass_23(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                struct policy_handle *handle, uint32_t fields_present,
                                char **password)
 {
        NTSTATUS status;
        struct samr_SetUserInfo s;
        union samr_UserInfo u;
-       BOOL ret = True;
+       bool ret = true;
        DATA_BLOB session_key;
        char *newpass;
        struct samr_GetUserPwInfo pwp;
@@ -578,7 +596,7 @@ static BOOL test_SetUserPass_23(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        if (!NT_STATUS_IS_OK(status)) {
                printf("SetUserInfo level %u - no session key - %s\n",
                       s.in.level, nt_errstr(status));
-               return False;
+               return false;
        }
 
        arcfour_crypt_blob(u.info23.password.data, 516, &session_key);
@@ -589,7 +607,7 @@ static BOOL test_SetUserPass_23(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        if (!NT_STATUS_IS_OK(status)) {
                printf("SetUserInfo level %u failed - %s\n",
                       s.in.level, nt_errstr(status));
-               ret = False;
+               ret = false;
        } else {
                *password = newpass;
        }
@@ -600,7 +618,7 @@ static BOOL test_SetUserPass_23(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        if (!NT_STATUS_IS_OK(status)) {
                printf("SetUserInfo level %u - no session key - %s\n",
                       s.in.level, nt_errstr(status));
-               return False;
+               return false;
        }
 
        /* This should break the key nicely */
@@ -613,21 +631,21 @@ static BOOL test_SetUserPass_23(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        if (!NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD)) {
                printf("SetUserInfo level %u should have failed with WRONG_PASSWORD- %s\n",
                       s.in.level, nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
 
-static BOOL test_SetUserPassEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_SetUserPassEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                               struct policy_handle *handle, bool makeshort, 
                               char **password)
 {
        NTSTATUS status;
        struct samr_SetUserInfo s;
        union samr_UserInfo u;
-       BOOL ret = True;
+       bool ret = true;
        DATA_BLOB session_key;
        DATA_BLOB confounded_session_key = data_blob_talloc(mem_ctx, NULL, 16);
        uint8_t confounder[16];
@@ -658,7 +676,7 @@ static BOOL test_SetUserPassEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        if (!NT_STATUS_IS_OK(status)) {
                printf("SetUserInfo level %u - no session key - %s\n",
                       s.in.level, nt_errstr(status));
-               return False;
+               return false;
        }
 
        generate_random_buffer((uint8_t *)confounder, 16);
@@ -677,7 +695,7 @@ static BOOL test_SetUserPassEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        if (!NT_STATUS_IS_OK(status)) {
                printf("SetUserInfo level %u failed - %s\n",
                       s.in.level, nt_errstr(status));
-               ret = False;
+               ret = false;
        } else {
                *password = newpass;
        }
@@ -694,7 +712,7 @@ static BOOL test_SetUserPassEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        if (!NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD)) {
                printf("SetUserInfo level %u should have failed with WRONG_PASSWORD: %s\n",
                       s.in.level, nt_errstr(status));
-               ret = False;
+               ret = false;
        } else {
                *password = newpass;
        }
@@ -702,14 +720,14 @@ static BOOL test_SetUserPassEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        return ret;
 }
 
-static BOOL test_SetUserPass_25(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_SetUserPass_25(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                struct policy_handle *handle, uint32_t fields_present,
                                char **password)
 {
        NTSTATUS status;
        struct samr_SetUserInfo s;
        union samr_UserInfo u;
-       BOOL ret = True;
+       bool ret = true;
        DATA_BLOB session_key;
        DATA_BLOB confounded_session_key = data_blob_talloc(mem_ctx, NULL, 16);
        struct MD5Context ctx;
@@ -739,7 +757,7 @@ static BOOL test_SetUserPass_25(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        if (!NT_STATUS_IS_OK(status)) {
                printf("SetUserInfo level %u - no session key - %s\n",
                       s.in.level, nt_errstr(status));
-               return False;
+               return false;
        }
 
        generate_random_buffer((uint8_t *)confounder, 16);
@@ -758,7 +776,7 @@ static BOOL test_SetUserPass_25(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        if (!NT_STATUS_IS_OK(status)) {
                printf("SetUserInfo level %u failed - %s\n",
                       s.in.level, nt_errstr(status));
-               ret = False;
+               ret = false;
        } else {
                *password = newpass;
        }
@@ -775,13 +793,13 @@ static BOOL test_SetUserPass_25(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        if (!NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD)) {
                printf("SetUserInfo level %u should have failed with WRONG_PASSWORD- %s\n",
                       s.in.level, nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
-static BOOL test_SetAliasInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_SetAliasInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                               struct policy_handle *handle)
 {
        NTSTATUS status;
@@ -789,7 +807,7 @@ static BOOL test_SetAliasInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        struct samr_QueryAliasInfo q;
        uint16_t levels[] = {2, 3};
        int i;
-       BOOL ret = True;
+       bool ret = true;
 
        /* Ignoring switch level 1, as that includes the number of members for the alias
         * and setting this to a wrong value might have negative consequences
@@ -811,7 +829,7 @@ static BOOL test_SetAliasInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                if (!NT_STATUS_IS_OK(status)) {
                        printf("SetAliasInfo level %u failed - %s\n",
                               levels[i], nt_errstr(status));
-                       ret = False;
+                       ret = false;
                }
 
                q.in.alias_handle = handle;
@@ -821,19 +839,19 @@ static BOOL test_SetAliasInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                if (!NT_STATUS_IS_OK(status)) {
                        printf("QueryAliasInfo level %u failed - %s\n",
                               levels[i], nt_errstr(status));
-                       ret = False;
+                       ret = false;
                }
        }
 
        return ret;
 }
 
-static BOOL test_GetGroupsForUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_GetGroupsForUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                  struct policy_handle *user_handle)
 {
        struct samr_GetGroupsForUser r;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
 
        printf("testing GetGroupsForUser\n");
 
@@ -842,19 +860,19 @@ static BOOL test_GetGroupsForUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_GetGroupsForUser(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("GetGroupsForUser failed - %s\n",nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        return ret;
 
 }
 
-static BOOL test_GetDomPwInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_GetDomPwInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                              struct lsa_String *domain_name)
 {
        NTSTATUS status;
        struct samr_GetDomPwInfo r;
-       BOOL ret = True;
+       bool ret = true;
 
        r.in.domain_name = domain_name;
        printf("Testing GetDomPwInfo with name %s\n", r.in.domain_name->string);
@@ -862,7 +880,7 @@ static BOOL test_GetDomPwInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_GetDomPwInfo(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("GetDomPwInfo failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        r.in.domain_name->string = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
@@ -871,7 +889,7 @@ static BOOL test_GetDomPwInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_GetDomPwInfo(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("GetDomPwInfo failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        r.in.domain_name->string = "\\\\__NONAME__";
@@ -880,7 +898,7 @@ static BOOL test_GetDomPwInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_GetDomPwInfo(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("GetDomPwInfo failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        r.in.domain_name->string = "\\\\Builtin";
@@ -889,19 +907,19 @@ static BOOL test_GetDomPwInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_GetDomPwInfo(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("GetDomPwInfo failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
 
        return ret;
 }
 
-static BOOL test_GetUserPwInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_GetUserPwInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                               struct policy_handle *handle)
 {
        NTSTATUS status;
        struct samr_GetUserPwInfo r;
-       BOOL ret = True;
+       bool ret = true;
 
        printf("Testing GetUserPwInfo\n");
 
@@ -910,7 +928,7 @@ static BOOL test_GetUserPwInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_GetUserPwInfo(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("GetUserPwInfo failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        return ret;
@@ -1006,12 +1024,12 @@ static NTSTATUS test_OpenUser_byname(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 }
 
 #if 0
-static BOOL test_ChangePasswordNT3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_ChangePasswordNT3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                   struct policy_handle *handle)
 {
        NTSTATUS status;
        struct samr_ChangePasswordUser r;
-       BOOL ret = True;
+       bool ret = true;
        struct samr_Password hash1, hash2, hash3, hash4, hash5, hash6;
        struct policy_handle user_handle;
        char *oldpass = "test";
@@ -1021,7 +1039,7 @@ static BOOL test_ChangePasswordNT3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
        status = test_OpenUser_byname(p, mem_ctx, handle, "testuser", &user_handle);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
        printf("Testing ChangePasswordUser for user 'testuser'\n");
@@ -1056,30 +1074,30 @@ static BOOL test_ChangePasswordNT3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_ChangePasswordUser(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("ChangePasswordUser failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        if (!test_samr_handle_Close(p, mem_ctx, &user_handle)) {
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 #endif
 
-static BOOL test_ChangePasswordUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_ChangePasswordUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                    const char *acct_name, 
                                    struct policy_handle *handle, char **password)
 {
        NTSTATUS status;
        struct samr_ChangePasswordUser r;
-       BOOL ret = True;
+       bool ret = true;
        struct samr_Password hash1, hash2, hash3, hash4, hash5, hash6;
        struct policy_handle user_handle;
        char *oldpass;
        uint8_t old_nt_hash[16], new_nt_hash[16];
        uint8_t old_lm_hash[16], new_lm_hash[16];
-       BOOL changed = True;
+       bool changed = true;
 
        char *newpass;
        struct samr_GetUserPwInfo pwp;
@@ -1087,7 +1105,7 @@ static BOOL test_ChangePasswordUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
        status = test_OpenUser_byname(p, mem_ctx, handle, acct_name, &user_handle);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
        pwp.in.user_handle = &user_handle;
 
@@ -1101,7 +1119,7 @@ static BOOL test_ChangePasswordUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
        if (!*password) {
                printf("Failing ChangePasswordUser as old password was NULL.  Previous test failed?\n");
-               return False;
+               return false;
        }
 
        oldpass = *password;
@@ -1135,7 +1153,7 @@ static BOOL test_ChangePasswordUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_ChangePasswordUser(p, mem_ctx, &r);
        if (!NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD)) {
                printf("ChangePasswordUser failed: expected NT_STATUS_WRONG_PASSWORD because we broke the LM hash, got %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        /* Unbreak the LM hash */
@@ -1158,7 +1176,7 @@ static BOOL test_ChangePasswordUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_ChangePasswordUser(p, mem_ctx, &r);
        if (!NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD)) {
                printf("ChangePasswordUser failed: expected NT_STATUS_WRONG_PASSWORD because we broke the NT hash, got %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        /* Unbreak the NT hash */
@@ -1181,7 +1199,7 @@ static BOOL test_ChangePasswordUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_ChangePasswordUser(p, mem_ctx, &r);
        if (!NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD)) {
                printf("ChangePasswordUser failed: expected NT_STATUS_WRONG_PASSWORD because we broke the LM cross-hash, got %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        /* Unbreak the LM cross */
@@ -1204,7 +1222,7 @@ static BOOL test_ChangePasswordUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_ChangePasswordUser(p, mem_ctx, &r);
        if (!NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD)) {
                printf("ChangePasswordUser failed: expected NT_STATUS_WRONG_PASSWORD because we broke the NT cross-hash, got %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        /* Unbreak the NT cross */
@@ -1233,11 +1251,11 @@ static BOOL test_ChangePasswordUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
        status = dcerpc_samr_ChangePasswordUser(p, mem_ctx, &r);
        if (NT_STATUS_IS_OK(status)) {
-               changed = True;
+               changed = true;
                *password = newpass;
        } else if (!NT_STATUS_EQUAL(NT_STATUS_PASSWORD_RESTRICTION, status)) {
                printf("ChangePasswordUser failed: expected NT_STATUS_OK, or at least NT_STATUS_PASSWORD_RESTRICTION, got %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        oldpass = newpass;
@@ -1271,11 +1289,11 @@ static BOOL test_ChangePasswordUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
        status = dcerpc_samr_ChangePasswordUser(p, mem_ctx, &r);
        if (NT_STATUS_IS_OK(status)) {
-               changed = True;
+               changed = true;
                *password = newpass;
        } else if (!NT_STATUS_EQUAL(NT_STATUS_PASSWORD_RESTRICTION, status)) {
                printf("ChangePasswordUser failed: expected NT_STATUS_NT_CROSS_ENCRYPTION_REQUIRED, got %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        oldpass = newpass;
@@ -1312,9 +1330,9 @@ static BOOL test_ChangePasswordUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                printf("ChangePasswordUser returned: %s perhaps min password age? (not fatal)\n", nt_errstr(status));
        } else  if (!NT_STATUS_IS_OK(status)) {
                printf("ChangePasswordUser failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        } else {
-               changed = True;
+               changed = true;
                *password = newpass;
        }
 
@@ -1336,26 +1354,26 @@ static BOOL test_ChangePasswordUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        printf("ChangePasswordUser returned: %s perhaps min password age? (not fatal)\n", nt_errstr(status));
                } else if (!NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD)) {
                        printf("ChangePasswordUser failed: expected NT_STATUS_WRONG_PASSWORD because we already changed the password, got %s\n", nt_errstr(status));
-                       ret = False;
+                       ret = false;
                }
        }
 
        
        if (!test_samr_handle_Close(p, mem_ctx, &user_handle)) {
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
 
-static BOOL test_OemChangePasswordUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_OemChangePasswordUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                        const char *acct_name,
                                        struct policy_handle *handle, char **password)
 {
        NTSTATUS status;
        struct samr_OemChangePasswordUser2 r;
-       BOOL ret = True;
+       bool ret = true;
        struct samr_Password lm_verifier;
        struct samr_CryptPassword lm_pass;
        struct lsa_AsciiString server, account, account_bad;
@@ -1375,7 +1393,7 @@ static BOOL test_OemChangePasswordUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_c
 
        if (!*password) {
                printf("Failing OemChangePasswordUser2 as old password was NULL.  Previous test failed?\n");
-               return False;
+               return false;
        }
 
        oldpass = *password;
@@ -1411,7 +1429,7 @@ static BOOL test_OemChangePasswordUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_c
            && !NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD)) {
                printf("ChangePasswordUser3 failed, should have returned WRONG_PASSWORD (or at least 'PASSWORD_RESTRICTON') for invalid password verifier - %s\n",
                        nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        encode_pw_buffer(lm_pass.data, newpass, STR_ASCII);
@@ -1433,7 +1451,7 @@ static BOOL test_OemChangePasswordUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_c
            && !NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD)) {
                printf("ChangePasswordUser3 failed, should have returned WRONG_PASSWORD (or at least 'PASSWORD_RESTRICTON') for invalidly encrpted password - %s\n",
                        nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        encode_pw_buffer(lm_pass.data, newpass, STR_ASCII);
@@ -1450,7 +1468,7 @@ static BOOL test_OemChangePasswordUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_c
            && !NT_STATUS_EQUAL(status, NT_STATUS_INVALID_PARAMETER)) {
                printf("ChangePasswordUser3 failed, should have returned INVALID_PARAMETER (or at least 'PASSWORD_RESTRICTON') for no supplied validation hash - %s\n",
                        nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        /* This shouldn't be a valid name */
@@ -1462,7 +1480,7 @@ static BOOL test_OemChangePasswordUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_c
        if (!NT_STATUS_EQUAL(status, NT_STATUS_INVALID_PARAMETER)) {
                printf("ChangePasswordUser3 failed, should have returned INVALID_PARAMETER for no supplied validation hash and invalid user - %s\n",
                        nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        /* This shouldn't be a valid name */
@@ -1476,7 +1494,7 @@ static BOOL test_OemChangePasswordUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_c
        if (!NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD)) {
                printf("ChangePasswordUser3 failed, should have returned WRONG_PASSWORD for invalid user - %s\n",
                        nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        /* This shouldn't be a valid name */
@@ -1490,7 +1508,7 @@ static BOOL test_OemChangePasswordUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_c
        if (!NT_STATUS_EQUAL(status, NT_STATUS_INVALID_PARAMETER)) {
                printf("ChangePasswordUser3 failed, should have returned INVALID_PARAMETER for no supplied password and invalid user - %s\n",
                        nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        E_deshash(oldpass, old_lm_hash);
@@ -1510,7 +1528,7 @@ static BOOL test_OemChangePasswordUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_c
                printf("OemChangePasswordUser2 returned: %s perhaps min password age? (not fatal)\n", nt_errstr(status));
        } else if (!NT_STATUS_IS_OK(status)) {
                printf("OemChangePasswordUser2 failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        } else {
                *password = newpass;
        }
@@ -1519,14 +1537,14 @@ static BOOL test_OemChangePasswordUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_c
 }
 
 
-static BOOL test_ChangePasswordUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_ChangePasswordUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                     const char *acct_name,
                                     char **password,
                                     char *newpass, bool allow_password_restriction)
 {
        NTSTATUS status;
        struct samr_ChangePasswordUser2 r;
-       BOOL ret = True;
+       bool ret = true;
        struct lsa_String server, account;
        struct samr_CryptPassword nt_pass, lm_pass;
        struct samr_Password nt_verifier, lm_verifier;
@@ -1545,7 +1563,7 @@ static BOOL test_ChangePasswordUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
        if (!*password) {
                printf("Failing ChangePasswordUser3 as old password was NULL.  Previous test failed?\n");
-               return False;
+               return false;
        }
        oldpass = *password;
 
@@ -1589,7 +1607,7 @@ static BOOL test_ChangePasswordUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                printf("ChangePasswordUser2 returned: %s perhaps min password age? (not fatal)\n", nt_errstr(status));
        } else if (!NT_STATUS_IS_OK(status)) {
                printf("ChangePasswordUser2 failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        } else {
                *password = newpass;
        }
@@ -1598,17 +1616,17 @@ static BOOL test_ChangePasswordUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 }
 
 
-BOOL test_ChangePasswordUser3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+bool test_ChangePasswordUser3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                              const char *account_string,
                              int policy_min_pw_len,
                              char **password,
                              const char *newpass,
                              NTTIME last_password_change,
-                             BOOL handle_reject_reason)
+                             bool handle_reject_reason)
 {
        NTSTATUS status;
        struct samr_ChangePasswordUser3 r;
-       BOOL ret = True;
+       bool ret = true;
        struct lsa_String server, account, account_bad;
        struct samr_CryptPassword nt_pass, lm_pass;
        struct samr_Password nt_verifier, lm_verifier;
@@ -1626,14 +1644,14 @@ BOOL test_ChangePasswordUser3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        } else {
                                newpass = samr_rand_pass_fixed_len(mem_ctx, policy_min_pw_len);
                        }
-               } while (check_password_quality(newpass) == False);
+               } while (check_password_quality(newpass) == false);
        } else {
                printf("Using password '%s'\n", newpass);
        }
 
        if (!*password) {
                printf("Failing ChangePasswordUser3 as old password was NULL.  Previous test failed?\n");
-               return False;
+               return false;
        }
 
        oldpass = *password;
@@ -1671,7 +1689,7 @@ BOOL test_ChangePasswordUser3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
            (!NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD))) {
                printf("ChangePasswordUser3 failed, should have returned WRONG_PASSWORD (or at least 'PASSWORD_RESTRICTON') for invalid password verifier - %s\n",
                        nt_errstr(status));
-               ret = False;
+               ret = false;
        }
        
        encode_pw_buffer(lm_pass.data, newpass, STR_UNICODE);
@@ -1700,7 +1718,7 @@ BOOL test_ChangePasswordUser3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
            (!NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD))) {
                printf("ChangePasswordUser3 failed, should have returned WRONG_PASSWORD (or at least 'PASSWORD_RESTRICTON') for invalidly encrpted password - %s\n",
                        nt_errstr(status));
-               ret = False;
+               ret = false;
        }
        
        /* This shouldn't be a valid name */
@@ -1711,7 +1729,7 @@ BOOL test_ChangePasswordUser3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        if (!NT_STATUS_EQUAL(status, NT_STATUS_WRONG_PASSWORD)) {
                printf("ChangePasswordUser3 failed, should have returned WRONG_PASSWORD for invalid username - %s\n",
                        nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        E_md4hash(oldpass, old_nt_hash);
@@ -1751,7 +1769,7 @@ BOOL test_ChangePasswordUser3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        if (r.out.reject && (r.out.reject->reason != SAMR_REJECT_OTHER)) {
                                printf("expected SAMR_REJECT_OTHER (%d), got %d\n", 
                                        SAMR_REJECT_OTHER, r.out.reject->reason);
-                               return False;
+                               return false;
                        }
                }
 
@@ -1770,7 +1788,7 @@ BOOL test_ChangePasswordUser3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        if (r.out.reject->reason != SAMR_REJECT_OTHER) {
                                printf("expected SAMR_REJECT_OTHER (%d), got %d\n", 
                                        SAMR_REJECT_OTHER, r.out.reject->reason);
-                               return False;
+                               return false;
                        }
 
                } else if ((r.out.dominfo->min_password_length > 0) && 
@@ -1779,7 +1797,7 @@ BOOL test_ChangePasswordUser3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        if (r.out.reject->reason != SAMR_REJECT_TOO_SHORT) {
                                printf("expected SAMR_REJECT_TOO_SHORT (%d), got %d\n", 
                                        SAMR_REJECT_TOO_SHORT, r.out.reject->reason);
-                               return False;
+                               return false;
                        }
 
                } else if ((r.out.dominfo->password_history_length > 0) && 
@@ -1788,14 +1806,14 @@ BOOL test_ChangePasswordUser3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        if (r.out.reject->reason != SAMR_REJECT_IN_HISTORY) {
                                printf("expected SAMR_REJECT_IN_HISTORY (%d), got %d\n", 
                                        SAMR_REJECT_IN_HISTORY, r.out.reject->reason);
-                               return False;
+                               return false;
                        }
                } else if (r.out.dominfo->password_properties & DOMAIN_PASSWORD_COMPLEX) {
 
                        if (r.out.reject->reason != SAMR_REJECT_COMPLEXITY) {
                                printf("expected SAMR_REJECT_COMPLEXITY (%d), got %d\n", 
                                        SAMR_REJECT_COMPLEXITY, r.out.reject->reason);
-                               return False;
+                               return false;
                        }
 
                }
@@ -1804,7 +1822,7 @@ BOOL test_ChangePasswordUser3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        /* retry with adjusted size */
                        return test_ChangePasswordUser3(p, mem_ctx, account_string, 
                                                        r.out.dominfo->min_password_length, 
-                                                       password, NULL, 0, False); 
+                                                       password, NULL, 0, false); 
 
                }
 
@@ -1812,13 +1830,13 @@ BOOL test_ChangePasswordUser3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                if (r.out.reject && r.out.reject->reason != SAMR_REJECT_OTHER) {
                        printf("expected SAMR_REJECT_OTHER (%d), got %d\n", 
                               SAMR_REJECT_OTHER, r.out.reject->reason);
-                       return False;
+                       return false;
                }
                /* Perhaps the server has a 'min password age' set? */
 
        } else if (!NT_STATUS_IS_OK(status)) {
                printf("ChangePasswordUser3 failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        } else {
                *password = talloc_strdup(mem_ctx, newpass);
        }
@@ -1827,13 +1845,13 @@ BOOL test_ChangePasswordUser3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 }
 
 
-static BOOL test_GetMembersInAlias(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_GetMembersInAlias(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                  struct policy_handle *alias_handle)
 {
        struct samr_GetMembersInAlias r;
        struct lsa_SidArray sids;
        NTSTATUS status;
-       BOOL     ret = True;
+       bool     ret = true;
 
        printf("Testing GetMembersInAlias\n");
 
@@ -1844,20 +1862,20 @@ static BOOL test_GetMembersInAlias(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        if (!NT_STATUS_IS_OK(status)) {
                printf("GetMembersInAlias failed - %s\n",
                       nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
-static BOOL test_AddMemberToAlias(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_AddMemberToAlias(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                  struct policy_handle *alias_handle,
                                  const struct dom_sid *domain_sid)
 {
        struct samr_AddAliasMember r;
        struct samr_DeleteAliasMember d;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        struct dom_sid *sid;
 
        sid = dom_sid_add_rid(mem_ctx, domain_sid, 512);
@@ -1869,7 +1887,7 @@ static BOOL test_AddMemberToAlias(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_AddAliasMember(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("AddAliasMember failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        d.in.alias_handle = alias_handle;
@@ -1878,19 +1896,19 @@ static BOOL test_AddMemberToAlias(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_DeleteAliasMember(p, mem_ctx, &d);
        if (!NT_STATUS_IS_OK(status)) {
                printf("DelAliasMember failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
-static BOOL test_AddMultipleMembersToAlias(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_AddMultipleMembersToAlias(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                           struct policy_handle *alias_handle)
 {
        struct samr_AddMultipleMembersToAlias a;
        struct samr_RemoveMultipleMembersFromAlias r;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        struct lsa_SidArray sids;
 
        printf("testing AddMultipleMembersToAlias\n");
@@ -1907,7 +1925,7 @@ static BOOL test_AddMultipleMembersToAlias(struct dcerpc_pipe *p, TALLOC_CTX *me
        status = dcerpc_samr_AddMultipleMembersToAlias(p, mem_ctx, &a);
        if (!NT_STATUS_IS_OK(status)) {
                printf("AddMultipleMembersToAlias failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
 
@@ -1918,14 +1936,14 @@ static BOOL test_AddMultipleMembersToAlias(struct dcerpc_pipe *p, TALLOC_CTX *me
        status = dcerpc_samr_RemoveMultipleMembersFromAlias(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("RemoveMultipleMembersFromAlias failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        /* strange! removing twice doesn't give any error */
        status = dcerpc_samr_RemoveMultipleMembersFromAlias(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("RemoveMultipleMembersFromAlias failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        /* but removing an alias that isn't there does */
@@ -1934,18 +1952,18 @@ static BOOL test_AddMultipleMembersToAlias(struct dcerpc_pipe *p, TALLOC_CTX *me
        status = dcerpc_samr_RemoveMultipleMembersFromAlias(p, mem_ctx, &r);
        if (!NT_STATUS_EQUAL(NT_STATUS_OBJECT_NAME_NOT_FOUND, status)) {
                printf("RemoveMultipleMembersFromAlias failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
-static BOOL test_TestPrivateFunctionsUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_TestPrivateFunctionsUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                            struct policy_handle *user_handle)
 {
        struct samr_TestPrivateFunctionsUser r;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
 
        printf("Testing TestPrivateFunctionsUser\n");
 
@@ -1954,14 +1972,14 @@ static BOOL test_TestPrivateFunctionsUser(struct dcerpc_pipe *p, TALLOC_CTX *mem
        status = dcerpc_samr_TestPrivateFunctionsUser(p, mem_ctx, &r);
        if (!NT_STATUS_EQUAL(NT_STATUS_NOT_IMPLEMENTED, status)) {
                printf("TestPrivateFunctionsUser failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
 
-static BOOL test_user_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_user_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                          struct policy_handle *user_handle, 
                          struct policy_handle *domain_handle, 
                          uint32_t base_acct_flags, 
@@ -1970,7 +1988,7 @@ static BOOL test_user_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        TALLOC_CTX *user_ctx;
        char *password = NULL;
 
-       BOOL ret = True;
+       bool ret = true;
        int i;
        const uint32_t password_fields[] = {
                SAMR_FIELD_PASSWORD,
@@ -1983,32 +2001,32 @@ static BOOL test_user_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        switch (which_ops) {
        case TORTURE_SAMR_USER_ATTRIBUTES:
                if (!test_QuerySecurity(p, user_ctx, user_handle)) {
-                       ret = False;
+                       ret = false;
                }
 
                if (!test_QueryUserInfo(p, user_ctx, user_handle)) {
-                       ret = False;
+                       ret = false;
                }
 
                if (!test_QueryUserInfo2(p, user_ctx, user_handle)) {
-                       ret = False;
+                       ret = false;
                }
 
                if (!test_SetUserInfo(p, user_ctx, user_handle, base_acct_flags,
                                      base_acct_name)) {
-                       ret = False;
+                       ret = false;
                }       
 
                if (!test_GetUserPwInfo(p, user_ctx, user_handle)) {
-                       ret = False;
+                       ret = false;
                }
 
                if (!test_TestPrivateFunctionsUser(p, user_ctx, user_handle)) {
-                       ret = False;
+                       ret = false;
                }
 
                if (!test_SetUserPass(p, user_ctx, user_handle, &password)) {
-                       ret = False;
+                       ret = false;
                }
                break;
        case TORTURE_SAMR_PASSWORDS:
@@ -2023,53 +2041,53 @@ static BOOL test_user_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
                        /* Workstation trust accounts don't seem to need to honour password quality policy */
                        if (!test_SetUserPassEx(p, user_ctx, user_handle, true, &password)) {
-                               ret = False;
+                               ret = false;
                        }
 
-                       if (!test_ChangePasswordUser2(p, user_ctx, base_acct_name, &password, simple_pass, False)) {
-                               ret = False;
+                       if (!test_ChangePasswordUser2(p, user_ctx, base_acct_name, &password, simple_pass, false)) {
+                               ret = false;
                        }
 
                        /* reset again, to allow another 'user' password change */
                        if (!test_SetUserPassEx(p, user_ctx, user_handle, true, &password)) {
-                               ret = False;
+                               ret = false;
                        }
 
                        /* Try a 'short' password */
-                       if (!test_ChangePasswordUser2(p, user_ctx, base_acct_name, &password, samr_rand_pass(mem_ctx, 4), False)) {
-                               ret = False;
+                       if (!test_ChangePasswordUser2(p, user_ctx, base_acct_name, &password, samr_rand_pass(mem_ctx, 4), false)) {
+                               ret = false;
                        }
                        
                }
                
                for (i = 0; password_fields[i]; i++) {
                        if (!test_SetUserPass_23(p, user_ctx, user_handle, password_fields[i], &password)) {
-                               ret = False;
+                               ret = false;
                        }       
                
                        /* check it was set right */
-                       if (!test_ChangePasswordUser3(p, user_ctx, base_acct_name, 0, &password, NULL, 0, False)) {
-                               ret = False;
+                       if (!test_ChangePasswordUser3(p, user_ctx, base_acct_name, 0, &password, NULL, 0, false)) {
+                               ret = false;
                        }
                }               
 
                for (i = 0; password_fields[i]; i++) {
                        if (!test_SetUserPass_25(p, user_ctx, user_handle, password_fields[i], &password)) {
-                               ret = False;
+                               ret = false;
                        }       
                
                        /* check it was set right */
-                       if (!test_ChangePasswordUser3(p, user_ctx, base_acct_name, 0, &password, NULL, 0, False)) {
-                               ret = False;
+                       if (!test_ChangePasswordUser3(p, user_ctx, base_acct_name, 0, &password, NULL, 0, false)) {
+                               ret = false;
                        }
                }               
 
                if (!test_SetUserPassEx(p, user_ctx, user_handle, false, &password)) {
-                       ret = False;
+                       ret = false;
                }       
 
                if (!test_ChangePassword(p, user_ctx, base_acct_name, domain_handle, &password)) {
-                       ret = False;
+                       ret = false;
                }       
 
                break;
@@ -2081,47 +2099,47 @@ static BOOL test_user_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        return ret;
 }
 
-static BOOL test_alias_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_alias_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                           struct policy_handle *alias_handle,
                           const struct dom_sid *domain_sid)
 {
-       BOOL ret = True;
+       bool ret = true;
 
        if (!test_QuerySecurity(p, mem_ctx, alias_handle)) {
-               ret = False;
+               ret = false;
        }
 
        if (!test_QueryAliasInfo(p, mem_ctx, alias_handle)) {
-               ret = False;
+               ret = false;
        }
 
        if (!test_SetAliasInfo(p, mem_ctx, alias_handle)) {
-               ret = False;
+               ret = false;
        }
 
        if (!test_AddMemberToAlias(p, mem_ctx, alias_handle, domain_sid)) {
-               ret = False;
+               ret = false;
        }
 
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
+       if (lp_parm_bool(global_loadparm, NULL, "torture", "samba4", false)) {
                printf("skipping MultipleMembers Alias tests against Samba4\n");
                return ret;
        }
 
        if (!test_AddMultipleMembersToAlias(p, mem_ctx, alias_handle)) {
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
 
-static BOOL test_DeleteUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_DeleteUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                     struct policy_handle *user_handle)
 {
        struct samr_DeleteUser d;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        printf("Testing DeleteUser\n");
 
        d.in.user_handle = user_handle;
@@ -2130,13 +2148,13 @@ static BOOL test_DeleteUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_DeleteUser(p, mem_ctx, &d);
        if (!NT_STATUS_IS_OK(status)) {
                printf("DeleteUser failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
-BOOL test_DeleteUser_byname(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+bool test_DeleteUser_byname(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                            struct policy_handle *handle, const char *name)
 {
        NTSTATUS status;
@@ -2161,15 +2179,15 @@ BOOL test_DeleteUser_byname(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                goto failed;
        }
 
-       return True;
+       return true;
 
 failed:
        printf("DeleteUser_byname(%s) failed - %s\n", name, nt_errstr(status));
-       return False;
+       return false;
 }
 
 
-static BOOL test_DeleteGroup_byname(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_DeleteGroup_byname(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                    struct policy_handle *handle, const char *name)
 {
        NTSTATUS status;
@@ -2199,15 +2217,15 @@ static BOOL test_DeleteGroup_byname(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                goto failed;
        }
 
-       return True;
+       return true;
 
 failed:
        printf("DeleteGroup_byname(%s) failed - %s\n", name, nt_errstr(status));
-       return False;
+       return false;
 }
 
 
-static BOOL test_DeleteAlias_byname(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_DeleteAlias_byname(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                   struct policy_handle *domain_handle, const char *name)
 {
        NTSTATUS status;
@@ -2239,19 +2257,19 @@ static BOOL test_DeleteAlias_byname(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                goto failed;
        }
 
-       return True;
+       return true;
 
 failed:
        printf("DeleteAlias_byname(%s) failed - %s\n", name, nt_errstr(status));
-       return False;
+       return false;
 }
 
-static BOOL test_DeleteAlias(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_DeleteAlias(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                     struct policy_handle *alias_handle)
 {
        struct samr_DeleteDomAlias d;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        printf("Testing DeleteAlias\n");
 
        d.in.alias_handle = alias_handle;
@@ -2260,13 +2278,13 @@ static BOOL test_DeleteAlias(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_DeleteDomAlias(p, mem_ctx, &d);
        if (!NT_STATUS_IS_OK(status)) {
                printf("DeleteAlias failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
-static BOOL test_CreateAlias(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_CreateAlias(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                            struct policy_handle *domain_handle, 
                             struct policy_handle *alias_handle, 
                             const struct dom_sid *domain_sid)
@@ -2275,7 +2293,7 @@ static BOOL test_CreateAlias(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        struct samr_CreateDomAlias r;
        struct lsa_String name;
        uint32_t rid;
-       BOOL ret = True;
+       bool ret = true;
 
        init_lsa_String(&name, TEST_ALIASNAME);
        r.in.domain_handle = domain_handle;
@@ -2290,53 +2308,53 @@ static BOOL test_CreateAlias(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
        if (NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED)) {
                printf("Server refused create of '%s'\n", r.in.alias_name->string);
-               return True;
+               return true;
        }
 
        if (NT_STATUS_EQUAL(status, NT_STATUS_ALIAS_EXISTS)) {
                if (!test_DeleteAlias_byname(p, mem_ctx, domain_handle, r.in.alias_name->string)) {
-                       return False;
+                       return false;
                }
                status = dcerpc_samr_CreateDomAlias(p, mem_ctx, &r);
        }
 
        if (!NT_STATUS_IS_OK(status)) {
                printf("CreateAlias failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        if (!test_alias_ops(p, mem_ctx, alias_handle, domain_sid)) {
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
-static BOOL test_ChangePassword(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_ChangePassword(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                const char *acct_name,
                                struct policy_handle *domain_handle, char **password)
 {
-       BOOL ret = True;
+       bool ret = true;
 
        if (!*password) {
-               return False;
+               return false;
        }
 
        if (!test_ChangePasswordUser(p, mem_ctx, acct_name, domain_handle, password)) {
-               ret = False;
+               ret = false;
        }
 
-       if (!test_ChangePasswordUser2(p, mem_ctx, acct_name, password, 0, True)) {
-               ret = False;
+       if (!test_ChangePasswordUser2(p, mem_ctx, acct_name, password, 0, true)) {
+               ret = false;
        }
 
        if (!test_OemChangePasswordUser2(p, mem_ctx, acct_name, domain_handle, password)) {
-               ret = False;
+               ret = false;
        }
 
        /* test what happens when setting the old password again */
-       if (!test_ChangePasswordUser3(p, mem_ctx, acct_name, 0, password, *password, 0, True)) {
-               ret = False;
+       if (!test_ChangePasswordUser3(p, mem_ctx, acct_name, 0, password, *password, 0, true)) {
+               ret = false;
        }
 
        {
@@ -2347,8 +2365,8 @@ static BOOL test_ChangePassword(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                memset(simple_pass, *v, sizeof(simple_pass) - 1);
 
                /* test what happens when picking a simple password */
-               if (!test_ChangePasswordUser3(p, mem_ctx, acct_name, 0, password, simple_pass, 0, True)) {
-                       ret = False;
+               if (!test_ChangePasswordUser3(p, mem_ctx, acct_name, 0, password, simple_pass, 0, true)) {
+                       ret = false;
                }
        }
 
@@ -2369,7 +2387,7 @@ static BOOL test_ChangePassword(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                printf("testing samr_QueryDomainInfo level 1\n");
                status = dcerpc_samr_QueryDomainInfo(p, mem_ctx, &r);
                if (!NT_STATUS_IS_OK(status)) {
-                       return False;
+                       return false;
                }
 
                s.in.domain_handle = domain_handle;
@@ -2389,13 +2407,13 @@ static BOOL test_ChangePassword(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                printf("testing samr_SetDomainInfo level 1\n");
                status = dcerpc_samr_SetDomainInfo(p, mem_ctx, &s);
                if (!NT_STATUS_IS_OK(status)) {
-                       return False;
+                       return false;
                }
 
                printf("calling test_ChangePasswordUser3 with too short password\n");
 
-               if (!test_ChangePasswordUser3(p, mem_ctx, acct_name, len - 1, password, NULL, 0, True)) {
-                       ret = False;
+               if (!test_ChangePasswordUser3(p, mem_ctx, acct_name, len - 1, password, NULL, 0, true)) {
+                       ret = false;
                }
 
                s.in.info->info1.min_password_length = len_old;
@@ -2405,7 +2423,7 @@ static BOOL test_ChangePassword(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                printf("testing samr_SetDomainInfo level 1\n");
                status = dcerpc_samr_SetDomainInfo(p, mem_ctx, &s);
                if (!NT_STATUS_IS_OK(status)) {
-                       return False;
+                       return false;
                }
 
        }
@@ -2425,7 +2443,7 @@ static BOOL test_ChangePassword(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                status = dcerpc_samr_LookupNames(p, mem_ctx, &n);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("LookupNames failed - %s\n", nt_errstr(status));
-                       return False;
+                       return false;
                }
 
                r.in.domain_handle = domain_handle;
@@ -2436,7 +2454,7 @@ static BOOL test_ChangePassword(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                status = dcerpc_samr_OpenUser(p, mem_ctx, &r);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("OpenUser(%u) failed - %s\n", n.out.rids.ids[0], nt_errstr(status));
-                       return False;
+                       return false;
                }
 
                q.in.user_handle = &user_handle;
@@ -2445,31 +2463,31 @@ static BOOL test_ChangePassword(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                status = dcerpc_samr_QueryUserInfo(p, mem_ctx, &q);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("QueryUserInfo failed - %s\n", nt_errstr(status));
-                       return False;
+                       return false;
                }
 
                printf("calling test_ChangePasswordUser3 with too early password change\n");
 
                if (!test_ChangePasswordUser3(p, mem_ctx, acct_name, 0, password, NULL, 
-                                             q.out.info->info5.last_password_change, True)) {
-                       ret = False;
+                                             q.out.info->info5.last_password_change, true)) {
+                       ret = false;
                }
        }
 
        /* we change passwords twice - this has the effect of verifying
           they were changed correctly for the final call */
-       if (!test_ChangePasswordUser3(p, mem_ctx, acct_name, 0, password, NULL, 0, True)) {
-               ret = False;
+       if (!test_ChangePasswordUser3(p, mem_ctx, acct_name, 0, password, NULL, 0, true)) {
+               ret = false;
        }
 
-       if (!test_ChangePasswordUser3(p, mem_ctx, acct_name, 0, password, NULL, 0, True)) {
-               ret = False;
+       if (!test_ChangePasswordUser3(p, mem_ctx, acct_name, 0, password, NULL, 0, true)) {
+               ret = false;
        }
 
        return ret;
 }
 
-static BOOL test_CreateUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_CreateUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                            struct policy_handle *domain_handle, 
                            struct policy_handle *user_handle_out, 
                            enum torture_samr_choice which_ops)
@@ -2486,7 +2504,7 @@ static BOOL test_CreateUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        /* This call creates a 'normal' account - check that it really does */
        const uint32_t acct_flags = ACB_NORMAL;
        struct lsa_String name;
-       BOOL ret = True;
+       bool ret = true;
 
        struct policy_handle user_handle;
        user_ctx = talloc_named(mem_ctx, 0, "test_CreateUser2 per-user context");
@@ -2505,20 +2523,20 @@ static BOOL test_CreateUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        if (NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED)) {
                printf("Server refused create of '%s': %s\n", r.in.account_name->string, nt_errstr(status));
                talloc_free(user_ctx);
-               return True;
+               return true;
        }
 
        if (NT_STATUS_EQUAL(status, NT_STATUS_USER_EXISTS)) {
                if (!test_DeleteUser_byname(p, user_ctx, domain_handle, r.in.account_name->string)) {
                        talloc_free(user_ctx);
-                       return False;
+                       return false;
                }
                status = dcerpc_samr_CreateUser(p, user_ctx, &r);
        }
        if (!NT_STATUS_IS_OK(status)) {
                talloc_free(user_ctx);
                printf("CreateUser failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        } else {
                q.in.user_handle = &user_handle;
                q.in.level = 16;
@@ -2527,19 +2545,19 @@ static BOOL test_CreateUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                if (!NT_STATUS_IS_OK(status)) {
                        printf("QueryUserInfo level %u failed - %s\n", 
                               q.in.level, nt_errstr(status));
-                       ret = False;
+                       ret = false;
                } else {
                        if ((q.out.info->info16.acct_flags & acct_flags) != acct_flags) {
                                printf("QuerUserInfo level 16 failed, it returned 0x%08x when we expected flags of 0x%08x\n",
                                       q.out.info->info16.acct_flags, 
                                       acct_flags);
-                               ret = False;
+                               ret = false;
                        }
                }
                
                if (!test_user_ops(p, user_ctx, &user_handle, domain_handle, 
                                   acct_flags, name.string, which_ops)) {
-                       ret = False;
+                       ret = false;
                }
                
                if (user_handle_out) {
@@ -2553,7 +2571,7 @@ static BOOL test_CreateUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        status = dcerpc_samr_DeleteUser(p, user_ctx, &d);
                        if (!NT_STATUS_IS_OK(status)) {
                                printf("DeleteUser failed - %s\n", nt_errstr(status));
-                               ret = False;
+                               ret = false;
                        }
                }
                
@@ -2565,7 +2583,7 @@ static BOOL test_CreateUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 }
 
 
-static BOOL test_CreateUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_CreateUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                             struct policy_handle *domain_handle, enum torture_samr_choice which_ops)
 {
        NTSTATUS status;
@@ -2575,7 +2593,7 @@ static BOOL test_CreateUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        struct policy_handle user_handle;
        uint32_t rid;
        struct lsa_String name;
-       BOOL ret = True;
+       bool ret = true;
        int i;
 
        struct {
@@ -2627,7 +2645,7 @@ static BOOL test_CreateUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                } else if (NT_STATUS_EQUAL(status, NT_STATUS_USER_EXISTS)) {
                        if (!test_DeleteUser_byname(p, user_ctx, domain_handle, r.in.account_name->string)) {
                                talloc_free(user_ctx);
-                               ret = False;
+                               ret = false;
                                continue;
                        }
                        status = dcerpc_samr_CreateUser2(p, user_ctx, &r);
@@ -2636,7 +2654,7 @@ static BOOL test_CreateUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                if (!NT_STATUS_EQUAL(status, account_types[i].nt_status)) {
                        printf("CreateUser2 failed gave incorrect error return - %s (should be %s)\n", 
                               nt_errstr(status), nt_errstr(account_types[i].nt_status));
-                       ret = False;
+                       ret = false;
                }
                
                if (NT_STATUS_IS_OK(status)) {
@@ -2647,34 +2665,34 @@ static BOOL test_CreateUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        if (!NT_STATUS_IS_OK(status)) {
                                printf("QueryUserInfo level %u failed - %s\n", 
                                       q.in.level, nt_errstr(status));
-                               ret = False;
+                               ret = false;
                        } else {
                                if ((q.out.info->info5.acct_flags & acct_flags) != acct_flags) {
                                        printf("QuerUserInfo level 5 failed, it returned 0x%08x when we expected flags of 0x%08x\n",
                                               q.out.info->info5.acct_flags, 
                                               acct_flags);
-                                       ret = False;
+                                       ret = false;
                                } 
                                switch (acct_flags) {
                                case ACB_SVRTRUST:
                                        if (q.out.info->info5.primary_gid != DOMAIN_RID_DCS) {
                                                printf("QuerUserInfo level 5: DC should have had Primary Group %d, got %d\n", 
                                                       DOMAIN_RID_DCS, q.out.info->info5.primary_gid);
-                                               ret = False;
+                                               ret = false;
                                        }
                                        break;
                                case ACB_WSTRUST:
                                        if (q.out.info->info5.primary_gid != DOMAIN_RID_DOMAIN_MEMBERS) {
                                                printf("QuerUserInfo level 5: Domain Member should have had Primary Group %d, got %d\n", 
                                                       DOMAIN_RID_DOMAIN_MEMBERS, q.out.info->info5.primary_gid);
-                                               ret = False;
+                                               ret = false;
                                        }
                                        break;
                                case ACB_NORMAL:
                                        if (q.out.info->info5.primary_gid != DOMAIN_RID_USERS) {
                                                printf("QuerUserInfo level 5: Users should have had Primary Group %d, got %d\n", 
                                                       DOMAIN_RID_USERS, q.out.info->info5.primary_gid);
-                                               ret = False;
+                                               ret = false;
                                        }
                                        break;
                                }
@@ -2682,7 +2700,7 @@ static BOOL test_CreateUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                
                        if (!test_user_ops(p, user_ctx, &user_handle, domain_handle, 
                                           acct_flags, name.string, which_ops)) {
-                               ret = False;
+                               ret = false;
                        }
 
                        printf("Testing DeleteUser (createuser2 test)\n");
@@ -2693,7 +2711,7 @@ static BOOL test_CreateUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        status = dcerpc_samr_DeleteUser(p, user_ctx, &d);
                        if (!NT_STATUS_IS_OK(status)) {
                                printf("DeleteUser failed - %s\n", nt_errstr(status));
-                               ret = False;
+                               ret = false;
                        }
                }
                talloc_free(user_ctx);
@@ -2702,14 +2720,14 @@ static BOOL test_CreateUser2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        return ret;
 }
 
-static BOOL test_QueryAliasInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_QueryAliasInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                struct policy_handle *handle)
 {
        NTSTATUS status;
        struct samr_QueryAliasInfo r;
        uint16_t levels[] = {1, 2, 3};
        int i;
-       BOOL ret = True;
+       bool ret = true;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                printf("Testing QueryAliasInfo level %u\n", levels[i]);
@@ -2721,21 +2739,21 @@ static BOOL test_QueryAliasInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                if (!NT_STATUS_IS_OK(status)) {
                        printf("QueryAliasInfo level %u failed - %s\n", 
                               levels[i], nt_errstr(status));
-                       ret = False;
+                       ret = false;
                }
        }
 
        return ret;
 }
 
-static BOOL test_QueryGroupInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_QueryGroupInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                struct policy_handle *handle)
 {
        NTSTATUS status;
        struct samr_QueryGroupInfo r;
        uint16_t levels[] = {1, 2, 3, 4, 5};
        int i;
-       BOOL ret = True;
+       bool ret = true;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                printf("Testing QueryGroupInfo level %u\n", levels[i]);
@@ -2747,19 +2765,19 @@ static BOOL test_QueryGroupInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                if (!NT_STATUS_IS_OK(status)) {
                        printf("QueryGroupInfo level %u failed - %s\n", 
                               levels[i], nt_errstr(status));
-                       ret = False;
+                       ret = false;
                }
        }
 
        return ret;
 }
 
-static BOOL test_QueryGroupMember(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_QueryGroupMember(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                  struct policy_handle *handle)
 {
        NTSTATUS status;
        struct samr_QueryGroupMember r;
-       BOOL ret = True;
+       bool ret = true;
 
        printf("Testing QueryGroupMember\n");
 
@@ -2768,14 +2786,14 @@ static BOOL test_QueryGroupMember(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_QueryGroupMember(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("QueryGroupInfo failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
 
-static BOOL test_SetGroupInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_SetGroupInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                              struct policy_handle *handle)
 {
        NTSTATUS status;
@@ -2784,7 +2802,7 @@ static BOOL test_SetGroupInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        uint16_t levels[] = {1, 2, 3, 4};
        uint16_t set_ok[] = {0, 1, 1, 1};
        int i;
-       BOOL ret = True;
+       bool ret = true;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                printf("Testing QueryGroupInfo level %u\n", levels[i]);
@@ -2796,7 +2814,7 @@ static BOOL test_SetGroupInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                if (!NT_STATUS_IS_OK(status)) {
                        printf("QueryGroupInfo level %u failed - %s\n", 
                               levels[i], nt_errstr(status));
-                       ret = False;
+                       ret = false;
                }
 
                printf("Testing SetGroupInfo level %u\n", levels[i]);
@@ -2824,14 +2842,14 @@ static BOOL test_SetGroupInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        if (!NT_STATUS_IS_OK(status)) {
                                printf("SetGroupInfo level %u failed - %s\n", 
                                       r.in.level, nt_errstr(status));
-                               ret = False;
+                               ret = false;
                                continue;
                        }
                } else {
                        if (!NT_STATUS_EQUAL(NT_STATUS_INVALID_INFO_CLASS, status)) {
                                printf("SetGroupInfo level %u gave %s - should have been NT_STATUS_INVALID_INFO_CLASS\n", 
                                       r.in.level, nt_errstr(status));
-                               ret = False;
+                               ret = false;
                                continue;
                        }
                }
@@ -2840,7 +2858,7 @@ static BOOL test_SetGroupInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        return ret;
 }
 
-static BOOL test_QueryUserInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_QueryUserInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                               struct policy_handle *handle)
 {
        NTSTATUS status;
@@ -2848,7 +2866,7 @@ static BOOL test_QueryUserInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        uint16_t levels[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
                           11, 12, 13, 14, 16, 17, 20, 21};
        int i;
-       BOOL ret = True;
+       bool ret = true;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                printf("Testing QueryUserInfo level %u\n", levels[i]);
@@ -2860,14 +2878,14 @@ static BOOL test_QueryUserInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                if (!NT_STATUS_IS_OK(status)) {
                        printf("QueryUserInfo level %u failed - %s\n", 
                               levels[i], nt_errstr(status));
-                       ret = False;
+                       ret = false;
                }
        }
 
        return ret;
 }
 
-static BOOL test_QueryUserInfo2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_QueryUserInfo2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                struct policy_handle *handle)
 {
        NTSTATUS status;
@@ -2875,7 +2893,7 @@ static BOOL test_QueryUserInfo2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        uint16_t levels[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
                           11, 12, 13, 14, 16, 17, 20, 21};
        int i;
-       BOOL ret = True;
+       bool ret = true;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                printf("Testing QueryUserInfo2 level %u\n", levels[i]);
@@ -2887,20 +2905,20 @@ static BOOL test_QueryUserInfo2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                if (!NT_STATUS_IS_OK(status)) {
                        printf("QueryUserInfo2 level %u failed - %s\n", 
                               levels[i], nt_errstr(status));
-                       ret = False;
+                       ret = false;
                }
        }
 
        return ret;
 }
 
-static BOOL test_OpenUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_OpenUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                          struct policy_handle *handle, uint32_t rid)
 {
        NTSTATUS status;
        struct samr_OpenUser r;
        struct policy_handle user_handle;
-       BOOL ret = True;
+       bool ret = true;
 
        printf("Testing OpenUser(%u)\n", rid);
 
@@ -2912,43 +2930,43 @@ static BOOL test_OpenUser(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_OpenUser(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("OpenUser(%u) failed - %s\n", rid, nt_errstr(status));
-               return False;
+               return false;
        }
 
        if (!test_QuerySecurity(p, mem_ctx, &user_handle)) {
-               ret = False;
+               ret = false;
        }
 
        if (!test_QueryUserInfo(p, mem_ctx, &user_handle)) {
-               ret = False;
+               ret = false;
        }
 
        if (!test_QueryUserInfo2(p, mem_ctx, &user_handle)) {
-               ret = False;
+               ret = false;
        }
 
        if (!test_GetUserPwInfo(p, mem_ctx, &user_handle)) {
-               ret = False;
+               ret = false;
        }
 
        if (!test_GetGroupsForUser(p,mem_ctx, &user_handle)) {
-               ret = False;
+               ret = false;
        }
 
        if (!test_samr_handle_Close(p, mem_ctx, &user_handle)) {
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
-static BOOL test_OpenGroup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_OpenGroup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                           struct policy_handle *handle, uint32_t rid)
 {
        NTSTATUS status;
        struct samr_OpenGroup r;
        struct policy_handle group_handle;
-       BOOL ret = True;
+       bool ret = true;
 
        printf("Testing OpenGroup(%u)\n", rid);
 
@@ -2960,35 +2978,35 @@ static BOOL test_OpenGroup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_OpenGroup(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("OpenGroup(%u) failed - %s\n", rid, nt_errstr(status));
-               return False;
+               return false;
        }
 
        if (!test_QuerySecurity(p, mem_ctx, &group_handle)) {
-               ret = False;
+               ret = false;
        }
 
        if (!test_QueryGroupInfo(p, mem_ctx, &group_handle)) {
-               ret = False;
+               ret = false;
        }
 
        if (!test_QueryGroupMember(p, mem_ctx, &group_handle)) {
-               ret = False;
+               ret = false;
        }
 
        if (!test_samr_handle_Close(p, mem_ctx, &group_handle)) {
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
-static BOOL test_OpenAlias(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_OpenAlias(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                           struct policy_handle *handle, uint32_t rid)
 {
        NTSTATUS status;
        struct samr_OpenAlias r;
        struct policy_handle alias_handle;
-       BOOL ret = True;
+       bool ret = true;
 
        printf("Testing OpenAlias(%u)\n", rid);
 
@@ -3000,29 +3018,29 @@ static BOOL test_OpenAlias(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_OpenAlias(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("OpenAlias(%u) failed - %s\n", rid, nt_errstr(status));
-               return False;
+               return false;
        }
 
        if (!test_QuerySecurity(p, mem_ctx, &alias_handle)) {
-               ret = False;
+               ret = false;
        }
 
        if (!test_QueryAliasInfo(p, mem_ctx, &alias_handle)) {
-               ret = False;
+               ret = false;
        }
 
        if (!test_GetMembersInAlias(p, mem_ctx, &alias_handle)) {
-               ret = False;
+               ret = false;
        }
 
        if (!test_samr_handle_Close(p, mem_ctx, &alias_handle)) {
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
-static BOOL check_mask(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool check_mask(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                       struct policy_handle *handle, uint32_t rid, 
                       uint32_t acct_flag_mask)
 {
@@ -3030,7 +3048,7 @@ static BOOL check_mask(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        struct samr_OpenUser r;
        struct samr_QueryUserInfo q;
        struct policy_handle user_handle;
-       BOOL ret = True;
+       bool ret = true;
 
        printf("Testing OpenUser(%u)\n", rid);
 
@@ -3042,7 +3060,7 @@ static BOOL check_mask(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_OpenUser(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("OpenUser(%u) failed - %s\n", rid, nt_errstr(status));
-               return False;
+               return false;
        }
 
        q.in.user_handle = &user_handle;
@@ -3052,30 +3070,30 @@ static BOOL check_mask(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        if (!NT_STATUS_IS_OK(status)) {
                printf("QueryUserInfo level 16 failed - %s\n", 
                       nt_errstr(status));
-               ret = False;
+               ret = false;
        } else {
                if ((acct_flag_mask & q.out.info->info16.acct_flags) == 0) {
                        printf("Server failed to filter for 0x%x, allowed 0x%x (%d) on EnumDomainUsers\n",
                               acct_flag_mask, q.out.info->info16.acct_flags, rid);
-                       ret = False;
+                       ret = false;
                }
        }
        
        if (!test_samr_handle_Close(p, mem_ctx, &user_handle)) {
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
-static BOOL test_EnumDomainUsers(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_EnumDomainUsers(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                 struct policy_handle *handle)
 {
        NTSTATUS status = STATUS_MORE_ENTRIES;
        struct samr_EnumDomainUsers r;
        uint32_t mask, resume_handle=0;
        int i, mask_idx;
-       BOOL ret = True;
+       bool ret = true;
        struct samr_LookupNames n;
        struct samr_LookupRids  lr ;
        uint32_t masks[] = {ACB_NORMAL, ACB_DOMTRUST, ACB_WSTRUST, 
@@ -3096,12 +3114,12 @@ static BOOL test_EnumDomainUsers(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                if (!NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES) &&  
                    !NT_STATUS_IS_OK(status)) {
                        printf("EnumDomainUsers failed - %s\n", nt_errstr(status));
-                       return False;
+                       return false;
                }
        
                if (!r.out.sam) {
                        printf("EnumDomainUsers failed: r.out.sam unexpectedly NULL\n");
-                       return False;
+                       return false;
                }
 
                if (r.out.sam->count == 0) {
@@ -3111,10 +3129,10 @@ static BOOL test_EnumDomainUsers(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                for (i=0;i<r.out.sam->count;i++) {
                        if (mask) {
                                if (!check_mask(p, mem_ctx, handle, r.out.sam->entries[i].idx, mask)) {
-                                       ret = False;
+                                       ret = false;
                                }
                        } else if (!test_OpenUser(p, mem_ctx, handle, r.out.sam->entries[i].idx)) {
-                               ret = False;
+                               ret = false;
                        }
                }
        }
@@ -3129,7 +3147,7 @@ static BOOL test_EnumDomainUsers(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_LookupNames(p, mem_ctx, &n);
        if (!NT_STATUS_IS_OK(status)) {
                printf("LookupNames failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
 
@@ -3143,7 +3161,7 @@ static BOOL test_EnumDomainUsers(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_LookupRids(p, mem_ctx, &lr);
        if (!NT_STATUS_IS_OK(status)) {
                printf("LookupRids failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        return ret;     
@@ -3152,7 +3170,7 @@ static BOOL test_EnumDomainUsers(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 /*
   try blasting the server with a bunch of sync requests
 */
-static BOOL test_EnumDomainUsers_async(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_EnumDomainUsers_async(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                       struct policy_handle *handle)
 {
        NTSTATUS status;
@@ -3162,9 +3180,9 @@ static BOOL test_EnumDomainUsers_async(struct dcerpc_pipe *p, TALLOC_CTX *mem_ct
 #define ASYNC_COUNT 100
        struct rpc_request *req[ASYNC_COUNT];
 
-       if (!lp_parm_bool(-1, "torture", "dangerous", False)) {
+       if (!lp_parm_bool(global_loadparm, NULL, "torture", "dangerous", false)) {
                printf("samr async test disabled - enable dangerous tests to use\n");
-               return True;
+               return true;
        }
 
        printf("Testing EnumDomainUsers_async\n");
@@ -3184,23 +3202,23 @@ static BOOL test_EnumDomainUsers_async(struct dcerpc_pipe *p, TALLOC_CTX *mem_ct
                if (!NT_STATUS_IS_OK(status)) {
                        printf("EnumDomainUsers[%d] failed - %s\n", 
                               i, nt_errstr(status));
-                       return False;
+                       return false;
                }
        }
        
        printf("%d async requests OK\n", i);
 
-       return True;
+       return true;
 }
 
-static BOOL test_EnumDomainGroups(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_EnumDomainGroups(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                  struct policy_handle *handle)
 {
        NTSTATUS status;
        struct samr_EnumDomainGroups r;
        uint32_t resume_handle=0;
        int i;
-       BOOL ret = True;
+       bool ret = true;
 
        printf("Testing EnumDomainGroups\n");
 
@@ -3212,30 +3230,30 @@ static BOOL test_EnumDomainGroups(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_EnumDomainGroups(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("EnumDomainGroups failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
        
        if (!r.out.sam) {
-               return False;
+               return false;
        }
 
        for (i=0;i<r.out.sam->count;i++) {
                if (!test_OpenGroup(p, mem_ctx, handle, r.out.sam->entries[i].idx)) {
-                       ret = False;
+                       ret = false;
                }
        }
 
        return ret;
 }
 
-static BOOL test_EnumDomainAliases(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_EnumDomainAliases(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                   struct policy_handle *handle)
 {
        NTSTATUS status;
        struct samr_EnumDomainAliases r;
        uint32_t resume_handle=0;
        int i;
-       BOOL ret = True;
+       bool ret = true;
 
        printf("Testing EnumDomainAliases\n");
 
@@ -3247,28 +3265,28 @@ static BOOL test_EnumDomainAliases(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_EnumDomainAliases(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("EnumDomainAliases failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
        
        if (!r.out.sam) {
-               return False;
+               return false;
        }
 
        for (i=0;i<r.out.sam->count;i++) {
                if (!test_OpenAlias(p, mem_ctx, handle, r.out.sam->entries[i].idx)) {
-                       ret = False;
+                       ret = false;
                }
        }
 
        return ret;     
 }
 
-static BOOL test_GetDisplayEnumerationIndex(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_GetDisplayEnumerationIndex(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                            struct policy_handle *handle)
 {
        NTSTATUS status;
        struct samr_GetDisplayEnumerationIndex r;
-       BOOL ret = True;
+       bool ret = true;
        uint16_t levels[] = {1, 2, 3, 4, 5};
        uint16_t ok_lvl[] = {1, 1, 1, 0, 0};
        int i;
@@ -3287,7 +3305,7 @@ static BOOL test_GetDisplayEnumerationIndex(struct dcerpc_pipe *p, TALLOC_CTX *m
                    !NT_STATUS_EQUAL(NT_STATUS_NO_MORE_ENTRIES, status)) {
                        printf("GetDisplayEnumerationIndex level %u failed - %s\n", 
                               levels[i], nt_errstr(status));
-                       ret = False;
+                       ret = false;
                }
 
                init_lsa_String(&r.in.name, "zzzzzzzz");
@@ -3297,19 +3315,19 @@ static BOOL test_GetDisplayEnumerationIndex(struct dcerpc_pipe *p, TALLOC_CTX *m
                if (ok_lvl[i] && !NT_STATUS_EQUAL(NT_STATUS_NO_MORE_ENTRIES, status)) {
                        printf("GetDisplayEnumerationIndex level %u failed - %s\n", 
                               levels[i], nt_errstr(status));
-                       ret = False;
+                       ret = false;
                }
        }
        
        return ret;     
 }
 
-static BOOL test_GetDisplayEnumerationIndex2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_GetDisplayEnumerationIndex2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                             struct policy_handle *handle)
 {
        NTSTATUS status;
        struct samr_GetDisplayEnumerationIndex2 r;
-       BOOL ret = True;
+       bool ret = true;
        uint16_t levels[] = {1, 2, 3, 4, 5};
        uint16_t ok_lvl[] = {1, 1, 1, 0, 0};
        int i;
@@ -3327,7 +3345,7 @@ static BOOL test_GetDisplayEnumerationIndex2(struct dcerpc_pipe *p, TALLOC_CTX *
                    !NT_STATUS_EQUAL(NT_STATUS_NO_MORE_ENTRIES, status)) {
                        printf("GetDisplayEnumerationIndex2 level %u failed - %s\n", 
                               levels[i], nt_errstr(status));
-                       ret = False;
+                       ret = false;
                }
 
                init_lsa_String(&r.in.name, "zzzzzzzz");
@@ -3336,7 +3354,7 @@ static BOOL test_GetDisplayEnumerationIndex2(struct dcerpc_pipe *p, TALLOC_CTX *
                if (ok_lvl[i] && !NT_STATUS_EQUAL(NT_STATUS_NO_MORE_ENTRIES, status)) {
                        printf("GetDisplayEnumerationIndex2 level %u failed - %s\n", 
                               levels[i], nt_errstr(status));
-                       ret = False;
+                       ret = false;
                }
        }
        
@@ -3349,23 +3367,23 @@ static BOOL test_GetDisplayEnumerationIndex2(struct dcerpc_pipe *p, TALLOC_CTX *
        } else if ((s1.string && !s2.string) || (s2.string && !s1.string) || strcmp(s1.string, s2.string)) { \
                        printf("%s mismatch for %s: %s != %s (%s)\n", \
                               #s1, user.string,  s1.string, s2.string, __location__);   \
-                       ret = False; \
+                       ret = false; \
        }
 #define INT_EQUAL_QUERY(s1, s2, user)          \
                if (s1 != s2) { \
-                       printf("%s mismatch for %s: 0x%x != 0x%x (%s)\n", \
-                              #s1, user.string, (unsigned int)s1, (unsigned int)s2, __location__); \
-                       ret = False; \
+                       printf("%s mismatch for %s: 0x%llx != 0x%llx (%s)\n", \
+                              #s1, user.string, (unsigned long long)s1, (unsigned long long)s2, __location__); \
+                       ret = false; \
                }
 
-static BOOL test_each_DisplayInfo_user(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_each_DisplayInfo_user(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                       struct samr_QueryDisplayInfo *querydisplayinfo,
                                       bool *seen_testuser) 
 {
        struct samr_OpenUser r;
        struct samr_QueryUserInfo q;
        struct policy_handle user_handle;
-       int i, ret = True;
+       int i, ret = true;
        NTSTATUS status;
        r.in.domain_handle = querydisplayinfo->in.domain_handle;
        r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
@@ -3399,7 +3417,7 @@ static BOOL test_each_DisplayInfo_user(struct dcerpc_pipe *p, TALLOC_CTX *mem_ct
                        status = dcerpc_samr_OpenUser(p, mem_ctx, &r);
                        if (!NT_STATUS_IS_OK(status)) {
                                printf("OpenUser(%u) failed - %s\n", r.in.rid, nt_errstr(status));
-                               return False;
+                               return false;
                        }
                }
                
@@ -3408,7 +3426,7 @@ static BOOL test_each_DisplayInfo_user(struct dcerpc_pipe *p, TALLOC_CTX *mem_ct
                status = dcerpc_samr_QueryUserInfo(p, mem_ctx, &q);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("QueryUserInfo(%u) failed - %s\n", r.in.rid, nt_errstr(status));
-                       return False;
+                       return false;
                }
                
                switch (querydisplayinfo->in.level) {
@@ -3448,26 +3466,26 @@ static BOOL test_each_DisplayInfo_user(struct dcerpc_pipe *p, TALLOC_CTX *mem_ct
                                       q.out.info->info21.account_name.string,
                                       querydisplayinfo->out.info.info2.entries[i].acct_flags,
                                       q.out.info->info21.acct_flags);
-                               return False;
+                               return false;
                        }
                        
                        break;
                }
                
                if (!test_samr_handle_Close(p, mem_ctx, &user_handle)) {
-                       return False;
+                       return false;
                }
        }
        return ret;
 }
 
-static BOOL test_QueryDisplayInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_QueryDisplayInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                  struct policy_handle *handle)
 {
        NTSTATUS status;
        struct samr_QueryDisplayInfo r;
        struct samr_QueryDomainInfo dom_info;
-       BOOL ret = True;
+       bool ret = true;
        uint16_t levels[] = {1, 2, 3, 4, 5};
        int i;
        bool seen_testuser = false;
@@ -3487,18 +3505,18 @@ static BOOL test_QueryDisplayInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        if (!NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES) && !NT_STATUS_IS_OK(status)) {
                                printf("QueryDisplayInfo level %u failed - %s\n", 
                                       levels[i], nt_errstr(status));
-                               ret = False;
+                               ret = false;
                        }
                        switch (r.in.level) {
                        case 1:
                                if (!test_each_DisplayInfo_user(p, mem_ctx, &r, &seen_testuser)) {
-                                       ret = False;
+                                       ret = false;
                                }
                                r.in.start_idx += r.out.info.info1.count;
                                break;
                        case 2:
                                if (!test_each_DisplayInfo_user(p, mem_ctx, &r, NULL)) {
-                                       ret = False;
+                                       ret = false;
                                }
                                r.in.start_idx += r.out.info.info2.count;
                                break;
@@ -3520,7 +3538,7 @@ static BOOL test_QueryDisplayInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                if (!NT_STATUS_IS_OK(status)) {
                        printf("QueryDomainInfo level %u failed - %s\n", 
                               r.in.level, nt_errstr(status));
-                               ret = False;
+                               ret = false;
                                break;
                }
                switch (r.in.level) {
@@ -3530,14 +3548,14 @@ static BOOL test_QueryDisplayInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                printf("QueryDomainInfo indicates that QueryDisplayInfo returned more users (%d/%d) than the domain %s is said to contain!\n",
                                       r.in.start_idx, dom_info.out.info->info2.num_groups,
                                       dom_info.out.info->info2.domain_name.string);
-                               ret = False;
+                               ret = false;
                        }
                        if (!seen_testuser) {
                                struct policy_handle user_handle;
                                if (NT_STATUS_IS_OK(test_OpenUser_byname(p, mem_ctx, handle, TEST_ACCOUNT_NAME, &user_handle))) {
                                        printf("Didn't find test user " TEST_ACCOUNT_NAME " in enumeration of %s\n", 
                                               dom_info.out.info->info2.domain_name.string);
-                                       ret = False;
+                                       ret = false;
                                        test_samr_handle_Close(p, mem_ctx, &user_handle);
                                }
                        }
@@ -3548,7 +3566,7 @@ static BOOL test_QueryDisplayInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                printf("QueryDomainInfo indicates that QueryDisplayInfo didn't return all (%d/%d) the groups in %s\n",
                                       r.in.start_idx, dom_info.out.info->info2.num_groups,
                                       dom_info.out.info->info2.domain_name.string);
-                               ret = False;
+                               ret = false;
                        }
                        
                        break;
@@ -3559,12 +3577,12 @@ static BOOL test_QueryDisplayInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        return ret;     
 }
 
-static BOOL test_QueryDisplayInfo2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_QueryDisplayInfo2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                  struct policy_handle *handle)
 {
        NTSTATUS status;
        struct samr_QueryDisplayInfo2 r;
-       BOOL ret = True;
+       bool ret = true;
        uint16_t levels[] = {1, 2, 3, 4, 5};
        int i;
 
@@ -3581,19 +3599,19 @@ static BOOL test_QueryDisplayInfo2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                if (!NT_STATUS_IS_OK(status)) {
                        printf("QueryDisplayInfo2 level %u failed - %s\n", 
                               levels[i], nt_errstr(status));
-                       ret = False;
+                       ret = false;
                }
        }
        
        return ret;     
 }
 
-static BOOL test_QueryDisplayInfo3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_QueryDisplayInfo3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                  struct policy_handle *handle)
 {
        NTSTATUS status;
        struct samr_QueryDisplayInfo3 r;
-       BOOL ret = True;
+       bool ret = true;
        uint16_t levels[] = {1, 2, 3, 4, 5};
        int i;
 
@@ -3610,7 +3628,7 @@ static BOOL test_QueryDisplayInfo3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                if (!NT_STATUS_IS_OK(status)) {
                        printf("QueryDisplayInfo3 level %u failed - %s\n", 
                               levels[i], nt_errstr(status));
-                       ret = False;
+                       ret = false;
                }
        }
        
@@ -3618,12 +3636,12 @@ static BOOL test_QueryDisplayInfo3(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 }
 
 
-static BOOL test_QueryDisplayInfo_continue(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_QueryDisplayInfo_continue(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                           struct policy_handle *handle)
 {
        NTSTATUS status;
        struct samr_QueryDisplayInfo r;
-       BOOL ret = True;
+       bool ret = true;
 
        printf("Testing QueryDisplayInfo continuation\n");
 
@@ -3647,7 +3665,7 @@ static BOOL test_QueryDisplayInfo_continue(struct dcerpc_pipe *p, TALLOC_CTX *me
                    !NT_STATUS_IS_OK(status)) {
                        printf("QueryDisplayInfo level %u failed - %s\n", 
                               r.in.level, nt_errstr(status));
-                       ret = False;
+                       ret = false;
                        break;
                }
                r.in.start_idx++;
@@ -3658,7 +3676,7 @@ static BOOL test_QueryDisplayInfo_continue(struct dcerpc_pipe *p, TALLOC_CTX *me
        return ret;     
 }
 
-static BOOL test_QueryDomainInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_QueryDomainInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                 struct policy_handle *handle)
 {
        NTSTATUS status;
@@ -3667,7 +3685,7 @@ static BOOL test_QueryDomainInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        uint16_t levels[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13};
        uint16_t set_ok[] = {1, 0, 1, 1, 0, 1, 1, 0, 1,  0,  1,  0};
        int i;
-       BOOL ret = True;
+       bool ret = true;
        const char *domain_comment = talloc_asprintf(mem_ctx, 
                                  "Tortured by Samba4 RPC-SAMR: %s", 
                                  timestring(mem_ctx, time(NULL)));
@@ -3681,7 +3699,7 @@ static BOOL test_QueryDomainInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        if (!NT_STATUS_IS_OK(status)) {
                printf("SetDomainInfo level %u (set comment) failed - %s\n", 
                       r.in.level, nt_errstr(status));
-               return False;
+               return false;
        }
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
@@ -3694,7 +3712,7 @@ static BOOL test_QueryDomainInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                if (!NT_STATUS_IS_OK(status)) {
                        printf("QueryDomainInfo level %u failed - %s\n", 
                               r.in.level, nt_errstr(status));
-                       ret = False;
+                       ret = false;
                        continue;
                }
 
@@ -3703,12 +3721,12 @@ static BOOL test_QueryDomainInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        if (strcmp(r.out.info->info2.comment.string, domain_comment) != 0) {
                                printf("QueryDomainInfo level %u returned different comment (%s, expected %s)\n",
                                       levels[i], r.out.info->info2.comment.string, domain_comment);
-                               ret = False;
+                               ret = false;
                        }
                        if (!r.out.info->info2.primary.string) {
                                printf("QueryDomainInfo level %u returned no PDC name\n",
                                       levels[i]);
-                               ret = False;
+                               ret = false;
                        } else if (r.out.info->info2.role == SAMR_ROLE_DOMAIN_PDC) {
                                if (dcerpc_server_name(p) && strcasecmp_m(dcerpc_server_name(p), r.out.info->info2.primary.string) != 0) {
                                        printf("QueryDomainInfo level %u returned different PDC name (%s) compared to server name (%s), despite claiming to be the PDC\n",
@@ -3720,21 +3738,21 @@ static BOOL test_QueryDomainInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        if (strcmp(r.out.info->info4.comment.string, domain_comment) != 0) {
                                printf("QueryDomainInfo level %u returned different comment (%s, expected %s)\n",
                                       levels[i], r.out.info->info4.comment.string, domain_comment);
-                               ret = False;
+                               ret = false;
                        }
                        break;
                case 6:
                        if (!r.out.info->info6.primary.string) {
                                printf("QueryDomainInfo level %u returned no PDC name\n",
                                       levels[i]);
-                               ret = False;
+                               ret = false;
                        }
                        break;
                case 11:
                        if (strcmp(r.out.info->info11.info2.comment.string, domain_comment) != 0) {
                                printf("QueryDomainInfo level %u returned different comment (%s, expected %s)\n",
                                       levels[i], r.out.info->info11.info2.comment.string, domain_comment);
-                               ret = False;
+                               ret = false;
                        }
                        break;
                }
@@ -3750,14 +3768,14 @@ static BOOL test_QueryDomainInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        if (!NT_STATUS_IS_OK(status)) {
                                printf("SetDomainInfo level %u failed - %s\n", 
                                       r.in.level, nt_errstr(status));
-                               ret = False;
+                               ret = false;
                                continue;
                        }
                } else {
                        if (!NT_STATUS_EQUAL(NT_STATUS_INVALID_INFO_CLASS, status)) {
                                printf("SetDomainInfo level %u gave %s - should have been NT_STATUS_INVALID_INFO_CLASS\n", 
                                       r.in.level, nt_errstr(status));
-                               ret = False;
+                               ret = false;
                                continue;
                        }
                }
@@ -3766,7 +3784,7 @@ static BOOL test_QueryDomainInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                if (!NT_STATUS_IS_OK(status)) {
                        printf("QueryDomainInfo level %u failed - %s\n", 
                               r.in.level, nt_errstr(status));
-                       ret = False;
+                       ret = false;
                        continue;
                }
        }
@@ -3775,14 +3793,14 @@ static BOOL test_QueryDomainInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 }
 
 
-static BOOL test_QueryDomainInfo2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_QueryDomainInfo2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                  struct policy_handle *handle)
 {
        NTSTATUS status;
        struct samr_QueryDomainInfo2 r;
        uint16_t levels[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13};
        int i;
-       BOOL ret = True;
+       bool ret = true;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                printf("Testing QueryDomainInfo2 level %u\n", levels[i]);
@@ -3794,17 +3812,17 @@ static BOOL test_QueryDomainInfo2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                if (!NT_STATUS_IS_OK(status)) {
                        printf("QueryDomainInfo2 level %u failed - %s\n", 
                               r.in.level, nt_errstr(status));
-                       ret = False;
+                       ret = false;
                        continue;
                }
        }
 
-       return True;    
+       return true;    
 }
 
 /* Test whether querydispinfo level 5 and enumdomgroups return the same
    set of group names. */
-static BOOL test_GroupList(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_GroupList(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                           struct policy_handle *handle)
 {
        struct samr_EnumDomainGroups q1;
@@ -3812,7 +3830,7 @@ static BOOL test_GroupList(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        NTSTATUS status;
        uint32_t resume_handle=0;
        int i;
-       BOOL ret = True;
+       bool ret = true;
 
        int num_names = 0;
        const char **names = NULL;
@@ -3841,11 +3859,11 @@ static BOOL test_GroupList(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
        if (!NT_STATUS_IS_OK(status)) {
                printf("EnumDomainGroups failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
        
        if (!q1.out.sam) {
-               return False;
+               return false;
        }
 
        q2.in.domain_handle = handle;
@@ -3865,14 +3883,14 @@ static BOOL test_GroupList(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                for (i=0; i<q2.out.info.info5.count; i++) {
                        int j;
                        const char *name = q2.out.info.info5.entries[i].account_name.string;
-                       BOOL found = False;
+                       bool found = false;
                        for (j=0; j<num_names; j++) {
                                if (names[j] == NULL)
                                        continue;
                                /* Hmm. No strequal in samba4 */
                                if (strequal(names[j], name)) {
                                        names[j] = NULL;
-                                       found = True;
+                                       found = true;
                                        break;
                                }
                        }
@@ -3880,7 +3898,7 @@ static BOOL test_GroupList(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        if (!found) {
                                printf("QueryDisplayInfo gave name [%s] that EnumDomainGroups did not\n",
                                       name);
-                               ret = False;
+                               ret = false;
                        }
                }
                q2.in.start_idx += q2.out.info.info5.count;
@@ -3889,26 +3907,26 @@ static BOOL test_GroupList(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        if (!NT_STATUS_IS_OK(status)) {
                printf("QueryDisplayInfo level 5 failed - %s\n",
                       nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        for (i=0; i<num_names; i++) {
                if (names[i] != NULL) {
                        printf("EnumDomainGroups gave name [%s] that QueryDisplayInfo did not\n",
                               names[i]);
-                       ret = False;
+                       ret = false;
                }
        }
 
        return ret;
 }
 
-static BOOL test_DeleteDomainGroup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_DeleteDomainGroup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                   struct policy_handle *group_handle)
 {
        struct samr_DeleteDomainGroup d;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
 
        printf("Testing DeleteDomainGroup\n");
 
@@ -3918,18 +3936,18 @@ static BOOL test_DeleteDomainGroup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_DeleteDomainGroup(p, mem_ctx, &d);
        if (!NT_STATUS_IS_OK(status)) {
                printf("DeleteDomainGroup failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
-static BOOL test_TestPrivateFunctionsDomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_TestPrivateFunctionsDomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                            struct policy_handle *domain_handle)
 {
        struct samr_TestPrivateFunctionsDomain r;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
 
        printf("Testing TestPrivateFunctionsDomain\n");
 
@@ -3938,19 +3956,19 @@ static BOOL test_TestPrivateFunctionsDomain(struct dcerpc_pipe *p, TALLOC_CTX *m
        status = dcerpc_samr_TestPrivateFunctionsDomain(p, mem_ctx, &r);
        if (!NT_STATUS_EQUAL(NT_STATUS_NOT_IMPLEMENTED, status)) {
                printf("TestPrivateFunctionsDomain failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
-static BOOL test_RidToSid(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_RidToSid(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                          struct dom_sid *domain_sid,
                          struct policy_handle *domain_handle)
 {
        struct samr_RidToSid r;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        struct dom_sid *calc_sid;
        int rids[] = { 0, 42, 512, 10200 };
        int i;
@@ -3966,7 +3984,7 @@ static BOOL test_RidToSid(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                status = dcerpc_samr_RidToSid(p, mem_ctx, &r);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("RidToSid for %d failed - %s\n", rids[i], nt_errstr(status));
-                       ret = False;
+                       ret = false;
                } else {
                        calc_sid = dom_sid_add_rid(calc_sid, calc_sid, rids[i]);
 
@@ -3974,7 +3992,7 @@ static BOOL test_RidToSid(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                printf("RidToSid for %d failed - got %s, expected %s\n", rids[i], 
                                       dom_sid_string(mem_ctx, r.out.sid), 
                                       dom_sid_string(mem_ctx, calc_sid));
-                               ret = False;
+                               ret = false;
                        }
                }
        }
@@ -3982,12 +4000,12 @@ static BOOL test_RidToSid(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        return ret;
 }
 
-static BOOL test_GetBootKeyInformation(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_GetBootKeyInformation(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                       struct policy_handle *domain_handle)
 {
        struct samr_GetBootKeyInformation r;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
 
        printf("Testing GetBootKeyInformation\n");
 
@@ -4002,7 +4020,7 @@ static BOOL test_GetBootKeyInformation(struct dcerpc_pipe *p, TALLOC_CTX *mem_ct
        return ret;
 }
 
-static BOOL test_AddGroupMember(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_AddGroupMember(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                struct policy_handle *domain_handle,
                                struct policy_handle *group_handle)
 {
@@ -4011,13 +4029,13 @@ static BOOL test_AddGroupMember(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        struct samr_DeleteGroupMember d;
        struct samr_QueryGroupMember q;
        struct samr_SetMemberAttributesOfGroup s;
-       BOOL ret = True;
+       bool ret = true;
        uint32_t rid;
 
        status = test_LookupName(p, mem_ctx, domain_handle, TEST_ACCOUNT_NAME, &rid);
        if (!NT_STATUS_IS_OK(status)) {
                printf("test_AddGroupMember looking up name " TEST_ACCOUNT_NAME " failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        r.in.group_handle = group_handle;
@@ -4033,23 +4051,23 @@ static BOOL test_AddGroupMember(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        if (!NT_STATUS_EQUAL(NT_STATUS_MEMBER_NOT_IN_GROUP, status)) {
                printf("DeleteGroupMember gave %s - should be NT_STATUS_MEMBER_NOT_IN_GROUP\n", 
                       nt_errstr(status));
-               return False;
+               return false;
        }
 
        status = dcerpc_samr_AddGroupMember(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("AddGroupMember failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        status = dcerpc_samr_AddGroupMember(p, mem_ctx, &r);
        if (!NT_STATUS_EQUAL(NT_STATUS_MEMBER_IN_GROUP, status)) {
                printf("AddGroupMember gave %s - should be NT_STATUS_MEMBER_IN_GROUP\n", 
                       nt_errstr(status));
-               return False;
+               return false;
        }
 
-       if (lp_parm_bool(-1, "torture", "samba4", False)) {
+       if (lp_parm_bool(global_loadparm, NULL, "torture", "samba4", false)) {
                printf("skipping SetMemberAttributesOfGroup test against Samba4\n");
        } else {
                /* this one is quite strange. I am using random inputs in the
@@ -4062,7 +4080,7 @@ static BOOL test_AddGroupMember(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                status = dcerpc_samr_SetMemberAttributesOfGroup(p, mem_ctx, &s);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("SetMemberAttributesOfGroup failed - %s\n", nt_errstr(status));
-                       return False;
+                       return false;
                }
        }
 
@@ -4071,33 +4089,33 @@ static BOOL test_AddGroupMember(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_QueryGroupMember(p, mem_ctx, &q);
        if (!NT_STATUS_IS_OK(status)) {
                printf("QueryGroupMember failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        status = dcerpc_samr_DeleteGroupMember(p, mem_ctx, &d);
        if (!NT_STATUS_IS_OK(status)) {
                printf("DeleteGroupMember failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        status = dcerpc_samr_AddGroupMember(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("AddGroupMember failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        return ret;
 }
 
 
-static BOOL test_CreateDomainGroup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_CreateDomainGroup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                                   struct policy_handle *domain_handle, struct policy_handle *group_handle)
 {
        NTSTATUS status;
        struct samr_CreateDomainGroup r;
        uint32_t rid;
        struct lsa_String name;
-       BOOL ret = True;
+       bool ret = true;
 
        init_lsa_String(&name, TEST_GROUPNAME);
 
@@ -4114,7 +4132,7 @@ static BOOL test_CreateDomainGroup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        if (NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED)) {
                printf("Server refused create of '%s'\n", r.in.name->string);
                ZERO_STRUCTP(group_handle);
-               return True;
+               return true;
        }
 
        if (NT_STATUS_EQUAL(status, NT_STATUS_GROUP_EXISTS)) {
@@ -4122,7 +4140,7 @@ static BOOL test_CreateDomainGroup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        
                        printf("CreateDomainGroup failed: Could not delete domain group %s - %s\n", r.in.name->string, 
                               nt_errstr(status));
-                       return False;
+                       return false;
                }
                status = dcerpc_samr_CreateDomainGroup(p, mem_ctx, &r);
        }
@@ -4131,22 +4149,22 @@ static BOOL test_CreateDomainGroup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        
                        printf("CreateDomainGroup failed: Could not delete user %s - %s\n", r.in.name->string, 
                               nt_errstr(status));
-                       return False;
+                       return false;
                }
                status = dcerpc_samr_CreateDomainGroup(p, mem_ctx, &r);
        }
        if (!NT_STATUS_IS_OK(status)) {
                printf("CreateDomainGroup failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        if (!test_AddGroupMember(p, mem_ctx, domain_handle, group_handle)) {
                printf("CreateDomainGroup failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        if (!test_SetGroupInfo(p, mem_ctx, group_handle)) {
-               ret = False;
+               ret = false;
        }
 
        return ret;
@@ -4156,7 +4174,7 @@ static BOOL test_CreateDomainGroup(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 /*
   its not totally clear what this does. It seems to accept any sid you like.
 */
-static BOOL test_RemoveMemberFromForeignDomain(struct dcerpc_pipe *p, 
+static bool test_RemoveMemberFromForeignDomain(struct dcerpc_pipe *p, 
                                               TALLOC_CTX *mem_ctx, 
                                               struct policy_handle *domain_handle)
 {
@@ -4169,18 +4187,18 @@ static BOOL test_RemoveMemberFromForeignDomain(struct dcerpc_pipe *p,
        status = dcerpc_samr_RemoveMemberFromForeignDomain(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("RemoveMemberFromForeignDomain failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
 
 
-static BOOL test_Connect(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_Connect(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                         struct policy_handle *handle);
 
-static BOOL test_OpenDomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_OpenDomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                            struct policy_handle *handle, struct dom_sid *sid,
                            enum torture_samr_choice which_ops)
 {
@@ -4190,7 +4208,7 @@ static BOOL test_OpenDomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        struct policy_handle alias_handle;
        struct policy_handle user_handle;
        struct policy_handle group_handle;
-       BOOL ret = True;
+       bool ret = true;
 
        ZERO_STRUCT(alias_handle);
        ZERO_STRUCT(user_handle);
@@ -4207,7 +4225,7 @@ static BOOL test_OpenDomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_OpenDomain(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("OpenDomain failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        /* run the domain tests with the main handle closed - this tests
@@ -4238,7 +4256,7 @@ static BOOL test_OpenDomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                ret &= test_QueryDisplayInfo3(p, mem_ctx, &domain_handle);
                ret &= test_QueryDisplayInfo_continue(p, mem_ctx, &domain_handle);
                
-               if (lp_parm_bool(-1, "torture", "samba4", False)) {
+               if (lp_parm_bool(global_loadparm, NULL, "torture", "samba4", false)) {
                        printf("skipping GetDisplayEnumerationIndex test against Samba4\n");
                } else {
                        ret &= test_GetDisplayEnumerationIndex(p, mem_ctx, &domain_handle);
@@ -4253,17 +4271,17 @@ static BOOL test_OpenDomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
        if (!policy_handle_empty(&user_handle) &&
            !test_DeleteUser(p, mem_ctx, &user_handle)) {
-               ret = False;
+               ret = false;
        }
 
        if (!policy_handle_empty(&alias_handle) &&
            !test_DeleteAlias(p, mem_ctx, &alias_handle)) {
-               ret = False;
+               ret = false;
        }
 
        if (!policy_handle_empty(&group_handle) &&
            !test_DeleteDomainGroup(p, mem_ctx, &group_handle)) {
-               ret = False;
+               ret = false;
        }
 
        ret &= test_samr_handle_Close(p, mem_ctx, &domain_handle);
@@ -4278,7 +4296,7 @@ static BOOL test_OpenDomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        return ret;
 }
 
-static BOOL test_LookupDomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_LookupDomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                              struct policy_handle *handle, const char *domain,
                              enum torture_samr_choice which_ops)
 {
@@ -4286,7 +4304,7 @@ static BOOL test_LookupDomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        struct samr_LookupDomain r;
        struct lsa_String n1;
        struct lsa_String n2;
-       BOOL ret = True;
+       bool ret = true;
 
        printf("Testing LookupDomain(%s)\n", domain);
 
@@ -4298,7 +4316,7 @@ static BOOL test_LookupDomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_LookupDomain(p, mem_ctx, &r);
        if (!NT_STATUS_EQUAL(NT_STATUS_INVALID_PARAMETER, status)) {
                printf("failed: LookupDomain expected NT_STATUS_INVALID_PARAMETER - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        init_lsa_String(&n2, "xxNODOMAINxx");
@@ -4306,7 +4324,7 @@ static BOOL test_LookupDomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_LookupDomain(p, mem_ctx, &r);
        if (!NT_STATUS_EQUAL(NT_STATUS_NO_SUCH_DOMAIN, status)) {
                printf("failed: LookupDomain expected NT_STATUS_NO_SUCH_DOMAIN - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        r.in.connect_handle = handle;
@@ -4317,29 +4335,29 @@ static BOOL test_LookupDomain(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_LookupDomain(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("LookupDomain failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        if (!test_GetDomPwInfo(p, mem_ctx, &n1)) {
-               ret = False;
+               ret = false;
        }
 
        if (!test_OpenDomain(p, mem_ctx, handle, r.out.sid, which_ops)) {
-               ret = False;
+               ret = false;
        }
 
        return ret;
 }
 
 
-static BOOL test_EnumDomains(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_EnumDomains(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                             struct policy_handle *handle, enum torture_samr_choice which_ops)
 {
        NTSTATUS status;
        struct samr_EnumDomains r;
        uint32_t resume_handle = 0;
        int i;
-       BOOL ret = True;
+       bool ret = true;
 
        r.in.connect_handle = handle;
        r.in.resume_handle = &resume_handle;
@@ -4349,31 +4367,31 @@ static BOOL test_EnumDomains(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_EnumDomains(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("EnumDomains failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        if (!r.out.sam) {
-               return False;
+               return false;
        }
 
        for (i=0;i<r.out.sam->count;i++) {
                if (!test_LookupDomain(p, mem_ctx, handle, 
                                       r.out.sam->entries[i].name.string, which_ops)) {
-                       ret = False;
+                       ret = false;
                }
        }
 
        status = dcerpc_samr_EnumDomains(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("EnumDomains failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        return ret;
 }
 
 
-static BOOL test_Connect(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_Connect(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                         struct policy_handle *handle)
 {
        NTSTATUS status;
@@ -4384,7 +4402,7 @@ static BOOL test_Connect(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        struct samr_Connect5 r5;
        union samr_ConnectInfo info;
        struct policy_handle h;
-       BOOL ret = True, got_handle = False;
+       bool ret = true, got_handle = false;
 
        printf("testing samr_Connect\n");
 
@@ -4395,9 +4413,9 @@ static BOOL test_Connect(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_Connect(p, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Connect failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        } else {
-               got_handle = True;
+               got_handle = true;
                *handle = h;
        }
 
@@ -4410,12 +4428,12 @@ static BOOL test_Connect(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_Connect2(p, mem_ctx, &r2);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Connect2 failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        } else {
                if (got_handle) {
                        test_samr_handle_Close(p, mem_ctx, handle);
                }
-               got_handle = True;
+               got_handle = true;
                *handle = h;
        }
 
@@ -4429,12 +4447,12 @@ static BOOL test_Connect(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_Connect3(p, mem_ctx, &r3);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Connect3 failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        } else {
                if (got_handle) {
                        test_samr_handle_Close(p, mem_ctx, handle);
                }
-               got_handle = True;
+               got_handle = true;
                *handle = h;
        }
 
@@ -4448,12 +4466,12 @@ static BOOL test_Connect(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_Connect4(p, mem_ctx, &r4);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Connect4 failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        } else {
                if (got_handle) {
                        test_samr_handle_Close(p, mem_ctx, handle);
                }
-               got_handle = True;
+               got_handle = true;
                *handle = h;
        }
 
@@ -4472,12 +4490,12 @@ static BOOL test_Connect(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        status = dcerpc_samr_Connect5(p, mem_ctx, &r5);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Connect5 failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        } else {
                if (got_handle) {
                        test_samr_handle_Close(p, mem_ctx, handle);
                }
-               got_handle = True;
+               got_handle = true;
                *handle = h;
        }
 
@@ -4485,16 +4503,16 @@ static BOOL test_Connect(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 }
 
 
-BOOL torture_rpc_samr(struct torture_context *torture)
+bool torture_rpc_samr(struct torture_context *torture)
 {
        NTSTATUS status;
        struct dcerpc_pipe *p;
-       BOOL ret = True;
+       bool ret = true;
        struct policy_handle handle;
 
        status = torture_rpc_connection(torture, &p, &ndr_table_samr);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
        ret &= test_Connect(p, torture, &handle);
@@ -4513,16 +4531,16 @@ BOOL torture_rpc_samr(struct torture_context *torture)
 }
 
 
-BOOL torture_rpc_samr_users(struct torture_context *torture)
+bool torture_rpc_samr_users(struct torture_context *torture)
 {
        NTSTATUS status;
        struct dcerpc_pipe *p;
-       BOOL ret = True;
+       bool ret = true;
        struct policy_handle handle;
 
        status = torture_rpc_connection(torture, &p, &ndr_table_samr);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
        ret &= test_Connect(p, torture, &handle);
@@ -4541,16 +4559,16 @@ BOOL torture_rpc_samr_users(struct torture_context *torture)
 }
 
 
-BOOL torture_rpc_samr_passwords(struct torture_context *torture)
+bool torture_rpc_samr_passwords(struct torture_context *torture)
 {
        NTSTATUS status;
        struct dcerpc_pipe *p;
-       BOOL ret = True;
+       bool ret = true;
        struct policy_handle handle;
 
        status = torture_rpc_connection(torture, &p, &ndr_table_samr);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
        ret &= test_Connect(p, torture, &handle);
diff --git a/source/torture/rpc/samr_accessmask.c b/source/torture/rpc/samr_accessmask.c
new file mode 100644 (file)
index 0000000..c444187
--- /dev/null
@@ -0,0 +1,658 @@
+/* 
+   Unix SMB/CIFS implementation.
+   test suite for accessmasks on the SAMR pipe
+
+   Copyright (C) Ronnie Sahlberg 2007
+   
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+   
+   This program 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 General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include "torture/torture.h"
+#include "librpc/gen_ndr/ndr_samr_c.h"
+#include "torture/rpc/rpc.h"
+#include "param/param.h"
+#include "libcli/security/security.h"
+#include "librpc/gen_ndr/ndr_security.h"
+
+
+/* test user created to test the ACLs associated to SAMR objects */
+#define TEST_USER_NAME "samr_testuser"
+
+
+static NTSTATUS torture_samr_Close(struct torture_context *tctx,
+               struct dcerpc_pipe *p, 
+               struct policy_handle *h)
+{
+       NTSTATUS status;
+       struct samr_Close cl;
+
+       cl.in.handle  = h;
+       cl.out.handle = h;
+       status = dcerpc_samr_Close(p, tctx, &cl);
+
+       return status;
+}
+
+static NTSTATUS torture_samr_Connect5(struct torture_context *tctx,
+               struct dcerpc_pipe *p, 
+               uint32_t mask, struct policy_handle *h)
+{
+       NTSTATUS status;
+       struct samr_Connect5 r5;
+       union samr_ConnectInfo info;
+
+       info.info1.unknown1 = 0;
+       info.info1.unknown2 = 0;
+       r5.in.system_name = "";
+       r5.in.level = 1;
+       r5.in.info = &info;
+       r5.out.info = &info;
+       r5.out.connect_handle = h;
+       r5.in.access_mask = mask;
+
+       status = dcerpc_samr_Connect5(p, tctx, &r5);
+
+       return status;
+}
+
+/* check which bits in accessmask allows us to connect to the server */
+static bool test_samr_accessmask_Connect5(struct torture_context *tctx, 
+                                                  struct dcerpc_pipe *p)
+{
+       NTSTATUS status;
+       struct policy_handle h;
+       int i;
+       uint32_t mask;
+
+       printf("testing which bits in accessmask allows us to connect\n");
+       mask = 1;
+       for (i=0;i<33;i++) {    
+               printf("testing Connect5 with access mask 0x%08x", mask);
+               status = torture_samr_Connect5(tctx, p, mask, &h);
+               mask <<= 1;
+
+               switch (i) {
+               case 6:
+               case 7:
+               case 8:
+               case 9:
+               case 10:
+               case 11:
+               case 12:
+               case 13:
+               case 14:
+               case 15:
+               case 20:
+               case 21:
+               case 22:
+               case 23:
+               case 26:
+               case 27:
+                       printf(" expecting to fail");
+                       /* of only one of these bits are set we expect to
+                          fail by default
+                       */
+                       if(!NT_STATUS_EQUAL(NT_STATUS_ACCESS_DENIED, status)) {
+                               printf("Connect5 failed - %s\n", nt_errstr(status));
+                               return false;
+                       }
+                       break;
+               default:
+                       /* these bits set are expected to succeed by default */
+                       if (!NT_STATUS_IS_OK(status)) {
+                               printf("Connect5 failed - %s\n", nt_errstr(status));
+                               return false;
+                       }
+
+                       status = torture_samr_Close(tctx, p, &h);
+                       if (!NT_STATUS_IS_OK(status)) {
+                               printf("Close failed - %s\n", nt_errstr(status));
+                               return false;
+                       }
+                       break;
+               }
+               printf(" OK\n");
+       }
+
+       return true;
+}
+
+/* check which bits in accessmask allows us to EnumDomains()
+   by default we must specify at least one of :
+       SAMR/EnumDomains
+       Maximum
+       GenericAll
+       GenericRead
+   in the access mask to Connect5() in order to be allowed to perform
+   EnumDomains() on the policy handle returned from Connect5()
+*/
+static bool test_samr_accessmask_EnumDomains(struct torture_context *tctx, 
+                                                  struct dcerpc_pipe *p)
+{
+       NTSTATUS status;
+       struct samr_EnumDomains ed;
+       struct policy_handle ch;
+       int i;
+       uint32_t mask;
+       uint32_t resume_handle = 0;
+
+       printf("testing which bits in Connect5 accessmask allows us to EnumDomains\n");
+       mask = 1;
+       for (i=0;i<33;i++) {    
+               printf("testing Connect5/EnumDomains with access mask 0x%08x", mask);
+               status = torture_samr_Connect5(tctx, p, mask, &ch);
+               mask <<= 1;
+
+               switch (i) {
+               case 4:  /* SAMR/EnumDomains */
+               case 25: /* Maximum */
+               case 28: /* GenericAll */
+               case 31: /* GenericRead */
+                       /* these bits set are expected to succeed by default */
+                       if (!NT_STATUS_IS_OK(status)) {
+                               printf("Connect5 failed - %s\n", nt_errstr(status));
+                               return false;
+                       }
+
+                       ed.in.connect_handle = &ch;
+                       ed.in.resume_handle = &resume_handle;
+                       ed.in.buf_size = (uint32_t)-1;
+                       ed.out.resume_handle = &resume_handle;
+
+                       status = dcerpc_samr_EnumDomains(p, tctx, &ed);
+                       if (!NT_STATUS_IS_OK(status)) {
+                               printf("EnumDomains failed - %s\n", nt_errstr(status));
+                               return false;
+                       }
+
+                       status = torture_samr_Close(tctx, p, &ch);
+                       if (!NT_STATUS_IS_OK(status)) {
+                               printf("Close failed - %s\n", nt_errstr(status));
+                               return false;
+                       }
+                       break;
+               default:
+                       printf(" expecting to fail");
+
+                       if (!NT_STATUS_IS_OK(status)) {
+                               printf(" OK\n");
+                               continue;
+                       }
+
+                       ed.in.connect_handle = &ch;
+                       ed.in.resume_handle = &resume_handle;
+                       ed.in.buf_size = (uint32_t)-1;
+                       ed.out.resume_handle = &resume_handle;
+
+                       status = dcerpc_samr_EnumDomains(p, tctx, &ed);
+                       if(!NT_STATUS_EQUAL(NT_STATUS_ACCESS_DENIED, status)) {
+                               printf("EnumDomains failed - %s\n", nt_errstr(status));
+                               return false;
+                       }
+
+                       status = torture_samr_Close(tctx, p, &ch);
+                       if (!NT_STATUS_IS_OK(status)) {
+                               printf("Close failed - %s\n", nt_errstr(status));
+                               return false;
+                       }
+                       break;
+               }
+               printf(" OK\n");
+       }
+
+       return true;
+}
+
+
+/*
+ * test how ACLs affect how/if a user can connect to the SAMR service 
+ *
+ * samr_SetSecurity() returns SUCCESS when changing the ACL for
+ * a policy handle got from Connect5()   but the ACL is not changed on
+ * the server
+ */
+static bool test_samr_connect_user_acl(struct torture_context *tctx, 
+                                  struct dcerpc_pipe *p,
+                                  struct cli_credentials *test_credentials,
+                                  const struct dom_sid *test_sid)
+
+{
+       NTSTATUS status;
+       struct policy_handle ch;
+       struct policy_handle uch;
+       struct samr_QuerySecurity qs;
+       struct samr_SetSecurity ss;
+       struct security_ace ace;
+       struct security_descriptor *sd;
+       struct sec_desc_buf sdb;
+       bool ret = true;
+       int sd_size;
+       struct dcerpc_pipe *test_p;
+       const char *binding = torture_setting_string(tctx, "binding", NULL);
+
+       printf("testing ACLs to allow/prevent users to connect to SAMR");
+
+       /* connect to SAMR */
+       status = torture_samr_Connect5(tctx, p, SEC_FLAG_MAXIMUM_ALLOWED, &ch);
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("Connect5 failed - %s\n", nt_errstr(status));
+               return false;
+       }
+
+       
+       /* get the current ACL for the SAMR policy handle */
+       qs.in.handle = &ch;
+       qs.in.sec_info = SECINFO_DACL;
+       status = dcerpc_samr_QuerySecurity(p, tctx, &qs);
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("QuerySecurity failed - %s\n", nt_errstr(status));
+               ret = false;
+       }
+
+       /* how big is the security descriptor? */
+       sd_size = qs.out.sdbuf->sd_size;
+
+
+       /* add an ACE to the security descriptor to deny the user the
+        * 'connect to server' right
+        */
+       sd = qs.out.sdbuf->sd;
+       ace.type = SEC_ACE_TYPE_ACCESS_DENIED;
+       ace.flags = 0;
+       ace.access_mask = SAMR_ACCESS_CONNECT_TO_SERVER;
+       ace.trustee = *test_sid;
+       status = security_descriptor_dacl_add(sd, &ace);
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("Failed to add ACE to security descriptor\n");
+               ret = false;
+       }
+       ss.in.handle = &ch;
+       ss.in.sec_info = SECINFO_DACL;
+       ss.in.sdbuf = &sdb;
+       sdb.sd = sd;
+       status = dcerpc_samr_SetSecurity(p, tctx, &ss);
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("SetSecurity failed - %s\n", nt_errstr(status));
+               ret = false;
+       }
+
+
+       /* Try to connect as the test user */
+       status = dcerpc_pipe_connect(tctx, 
+                            &test_p, binding, &ndr_table_samr,
+                            test_credentials, NULL);
+       /* connect to SAMR as the user */
+       status = torture_samr_Connect5(tctx, test_p, SEC_FLAG_MAXIMUM_ALLOWED, &uch);
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("Connect5 failed - %s\n", nt_errstr(status));
+               return false;
+       }
+       /* disconnec the user */
+       talloc_free(test_p);
+       if (!NT_STATUS_IS_OK(status)) {
+               return false;
+       }
+
+
+       /* read the sequrity descriptor back. it should not have changed 
+        * eventhough samr_SetSecurity returned SUCCESS
+        */
+       status = dcerpc_samr_QuerySecurity(p, tctx, &qs);
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("QuerySecurity failed - %s\n", nt_errstr(status));
+               ret = false;
+       }
+       if (sd_size != qs.out.sdbuf->sd_size) {
+               printf("security descriptor changed\n");
+               ret = false;
+       }
+
+
+       status = torture_samr_Close(tctx, p, &ch);
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("Close failed - %s\n", nt_errstr(status));
+               ret = false;
+       }
+
+       if (ret == true) {
+               printf(" OK\n");
+       }
+       return ret;
+}
+
+/*
+ * test if the ACLs are enforced for users.
+ * a normal testuser only gets the rights provided in hte ACL for
+ * Everyone   which does not include the SAMR_ACCESS_SHUTDOWN_SERVER
+ * right.  If the ACLs are checked when a user connects   
+ * a testuser that requests the accessmask with only this bit set
+ * the connect should fail.
+ */
+static bool test_samr_connect_user_acl_enforced(struct torture_context *tctx, 
+                                  struct dcerpc_pipe *p,
+                                  struct cli_credentials *test_credentials,
+                                  const struct dom_sid *test_sid)
+
+{
+       NTSTATUS status;
+       struct policy_handle uch;
+       bool ret = true;
+       struct dcerpc_pipe *test_p;
+       const char *binding = torture_setting_string(tctx, "binding", NULL);
+
+       printf("testing if ACLs are enforced for non domain admin users when connecting to SAMR");
+
+
+       status = dcerpc_pipe_connect(tctx, 
+                            &test_p, binding, &ndr_table_samr,
+                            test_credentials, NULL);
+
+       /* connect to SAMR as the user */
+       status = torture_samr_Connect5(tctx, test_p, SAMR_ACCESS_SHUTDOWN_SERVER, &uch);
+       if (NT_STATUS_IS_OK(status)) {
+               printf("Connect5 failed - %s\n", nt_errstr(status));
+               return false;
+       }
+       printf(" OK\n");
+
+       /* disconnec the user */
+       talloc_free(test_p);
+
+       return ret;
+}
+
+/* check which bits in accessmask allows us to LookupDomain()
+   by default we must specify at least one of :
+   in the access mask to Connect5() in order to be allowed to perform
+               case 5:  samr/opendomain
+               case 25: Maximum 
+               case 28: GenericAll
+               case 29: GenericExecute
+   LookupDomain() on the policy handle returned from Connect5()
+*/
+static bool test_samr_accessmask_LookupDomain(struct torture_context *tctx, 
+                                                  struct dcerpc_pipe *p)
+{
+       NTSTATUS status;
+       struct samr_LookupDomain ld;
+       struct policy_handle ch;
+       struct lsa_String dn;
+       int i;
+       uint32_t mask;
+
+       printf("testing which bits in Connect5 accessmask allows us to LookupDomain\n");
+       mask = 1;
+       for (i=0;i<33;i++) {    
+               printf("testing Connect5/LookupDomain with access mask 0x%08x", mask);
+               status = torture_samr_Connect5(tctx, p, mask, &ch);
+               mask <<= 1;
+
+               switch (i) {
+               case 5:  
+               case 25: /* Maximum */
+               case 28: /* GenericAll */
+               case 29: /* GenericExecute */
+                       /* these bits set are expected to succeed by default */
+                       if (!NT_STATUS_IS_OK(status)) {
+                               printf("Connect5 failed - %s\n", nt_errstr(status));
+                               return false;
+                       }
+
+                       ld.in.connect_handle = &ch;
+                       ld.in.domain_name    = &dn;
+                       dn.string            = lp_workgroup(global_loadparm);
+
+                       status = dcerpc_samr_LookupDomain(p, tctx, &ld);
+                       if (!NT_STATUS_IS_OK(status)) {
+                               printf("LookupDomain failed - %s\n", nt_errstr(status));
+                               return false;
+                       }
+
+                       status = torture_samr_Close(tctx, p, &ch);
+                       if (!NT_STATUS_IS_OK(status)) {
+                               printf("Close failed - %s\n", nt_errstr(status));
+                               return false;
+                       }
+                       break;
+               default:
+                       printf(" expecting to fail");
+
+                       if (!NT_STATUS_IS_OK(status)) {
+                               printf(" OK\n");
+                               continue;
+                       }
+
+                       ld.in.connect_handle = &ch;
+                       ld.in.domain_name    = &dn;
+                       dn.string            = lp_workgroup(global_loadparm);
+
+                       status = dcerpc_samr_LookupDomain(p, tctx, &ld);
+                       if(!NT_STATUS_EQUAL(NT_STATUS_ACCESS_DENIED, status)) {
+                               printf("LookupDomain failed - %s\n", nt_errstr(status));
+                               return false;
+                       }
+
+                       status = torture_samr_Close(tctx, p, &ch);
+                       if (!NT_STATUS_IS_OK(status)) {
+                               printf("Close failed - %s\n", nt_errstr(status));
+                               return false;
+                       }
+                       break;
+               }
+               printf(" OK\n");
+       }
+
+       return true;
+}
+
+/* check which bits in accessmask allows us to OpenDomain()
+   by default we must specify at least one of :
+       samr/opendomain
+       Maximum 
+       GenericAll
+       GenericExecute
+   in the access mask to Connect5() in order to be allowed to perform
+   OpenDomain() on the policy handle returned from Connect5()
+*/
+static bool test_samr_accessmask_OpenDomain(struct torture_context *tctx, 
+                                                  struct dcerpc_pipe *p)
+{
+       NTSTATUS status;
+       struct samr_LookupDomain ld;
+       struct samr_OpenDomain od;
+       struct policy_handle ch;
+       struct policy_handle dh;
+       struct lsa_String dn;
+       int i;
+       uint32_t mask;
+
+
+       /* first we must grab the sid of the domain */
+       status = torture_samr_Connect5(tctx, p, SEC_FLAG_MAXIMUM_ALLOWED, &ch);
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("Connect5 failed - %s\n", nt_errstr(status));
+               return false;
+       }
+
+       ld.in.connect_handle = &ch;
+       ld.in.domain_name    = &dn;
+       dn.string            = lp_workgroup(global_loadparm);
+       status = dcerpc_samr_LookupDomain(p, tctx, &ld);
+       if (!NT_STATUS_IS_OK(status)) {
+               printf("LookupDomain failed - %s\n", nt_errstr(status));
+               return false;
+       }
+
+
+
+       printf("testing which bits in Connect5 accessmask allows us to OpenDomain\n");
+       mask = 1;
+       for (i=0;i<33;i++) {    
+               printf("testing Connect5/OpenDomain with access mask 0x%08x", mask);
+               status = torture_samr_Connect5(tctx, p, mask, &ch);
+               mask <<= 1;
+
+               switch (i) {
+               case 5:  
+               case 25: /* Maximum */
+               case 28: /* GenericAll */
+               case 29: /* GenericExecute */
+                       /* these bits set are expected to succeed by default */
+                       if (!NT_STATUS_IS_OK(status)) {
+                               printf("Connect5 failed - %s\n", nt_errstr(status));
+                               return false;
+                       }
+
+                       od.in.connect_handle = &ch;
+                       od.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
+                       od.in.sid = ld.out.sid;
+                       od.out.domain_handle = &dh;
+
+                       status = dcerpc_samr_OpenDomain(p, tctx, &od);
+                       if (!NT_STATUS_IS_OK(status)) {
+                               printf("OpenDomain failed - %s\n", nt_errstr(status));
+                               return false;
+                       }
+
+                       status = torture_samr_Close(tctx, p, &dh);
+                       if (!NT_STATUS_IS_OK(status)) {
+                               printf("Close failed - %s\n", nt_errstr(status));
+                               return false;
+                       }
+
+                       status = torture_samr_Close(tctx, p, &ch);
+                       if (!NT_STATUS_IS_OK(status)) {
+                               printf("Close failed - %s\n", nt_errstr(status));
+                               return false;
+                       }
+                       break;
+               default:
+                       printf(" expecting to fail");
+
+                       if (!NT_STATUS_IS_OK(status)) {
+                               printf(" OK\n");
+                               continue;
+                       }
+
+                       status = torture_samr_Close(tctx, p, &ch);
+                       if (!NT_STATUS_IS_OK(status)) {
+                               printf("Close failed - %s\n", nt_errstr(status));
+                               return false;
+                       }
+                       break;
+               }
+               printf(" OK\n");
+       }
+
+       return true;
+}
+
+static bool test_samr_connect(struct torture_context *tctx, 
+                                                  struct dcerpc_pipe *p)
+{
+       void *testuser;
+       const char *testuser_passwd;
+       struct cli_credentials *test_credentials;
+       bool ret = true;
+       const struct dom_sid *test_sid;
+
+       /* create a test user */
+       testuser = torture_create_testuser(tctx, TEST_USER_NAME, lp_workgroup(global_loadparm), 
+                                          ACB_NORMAL, &testuser_passwd);
+       if (!testuser) {
+               printf("Failed to create test user\n");
+               return false;
+       }
+       test_credentials = cli_credentials_init(tctx);
+       cli_credentials_set_workstation(test_credentials, "localhost", CRED_SPECIFIED);
+       cli_credentials_set_domain(test_credentials, lp_workgroup(global_loadparm), 
+                                  CRED_SPECIFIED);
+       cli_credentials_set_username(test_credentials, TEST_USER_NAME, CRED_SPECIFIED);
+       cli_credentials_set_password(test_credentials, testuser_passwd, CRED_SPECIFIED);
+       test_sid = torture_join_user_sid(testuser);
+
+
+       /* test which bits in the accessmask to Connect5 
+          will allow us to connect to the server 
+       */
+       if (!test_samr_accessmask_Connect5(tctx, p)) {
+               ret = false;
+       }
+
+
+       /* test which bits in the accessmask to Connect5 will allow
+        * us to call EnumDomains() 
+        */
+       if (!test_samr_accessmask_EnumDomains(tctx, p)) {
+               ret = false;
+       }
+
+       /* test which bits in the accessmask to Connect5 will allow
+        * us to call LookupDomain()
+        */
+       if (!test_samr_accessmask_LookupDomain(tctx, p)) {
+               ret = false;
+       }
+
+
+       /* test which bits in the accessmask to Connect5 will allow
+        * us to call OpenDomain()
+        */
+       if (!test_samr_accessmask_OpenDomain(tctx, p)) {
+               ret = false;
+       }
+
+
+       /* test if ACLs can be changed for the policy handle
+        * returned by Connect5
+        */
+       if (!test_samr_connect_user_acl(tctx, p, test_credentials, test_sid)) {
+               ret = false;
+       }
+
+       /* test if the ACLs that are reported from the Connect5 
+        * policy handle is enforced.
+        * i.e. an ordinary user only has the same rights as Everybody
+        *   ReadControl
+        *   Samr/OpenDomain
+        *   Samr/EnumDomains
+        *   Samr/ConnectToServer
+        * is granted and should therefore not be able to connect when
+        * requesting SAMR_ACCESS_SHUTDOWN_SERVER
+        */
+       if (!test_samr_connect_user_acl_enforced(tctx, p, test_credentials, test_sid)) {
+               ret = false;
+       }
+
+
+
+       /* remove the test user */
+       torture_leave_domain(testuser);
+
+       return ret;
+}
+
+struct torture_suite *torture_rpc_samr_accessmask(TALLOC_CTX *mem_ctx)
+{
+       struct torture_suite *suite = torture_suite_create(mem_ctx, "SAMR_ACCESSMASK");
+       struct torture_rpc_tcase *tcase;
+
+       tcase = torture_suite_add_rpc_iface_tcase(suite, "samr", 
+                                                                                         &ndr_table_samr);
+       
+       torture_rpc_tcase_add_test(tcase, "CONNECT", test_samr_connect);
+
+       return suite;
+}
index 358bf8791a6ce734c9c82045bce870b9946b7352..6f76e3b58b1b72d20c54a5d197681b73fa440870 100644 (file)
@@ -36,6 +36,7 @@
 #include "librpc/gen_ndr/ndr_lsa_c.h"
 #include "librpc/gen_ndr/ndr_samr_c.h"
 #include "librpc/gen_ndr/ndr_security.h"
+#include "param/param.h"
 
 #define TEST_MACHINE_NAME "samsynctest"
 #define TEST_WKSTA_MACHINE_NAME "samsynctest2"
@@ -67,7 +68,7 @@ static NTSTATUS test_SamLogon(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                               sizeof(ninfo.challenge));
        if (nt_hash) {
                ninfo.nt.length = 24;
-               ninfo.nt.data = talloc_size(mem_ctx, 24);
+               ninfo.nt.data = talloc_array(mem_ctx, uint8_t, 24);
                SMBOWFencrypt(nt_hash->hash, ninfo.challenge, ninfo.nt.data);
        } else {
                ninfo.nt.length = 0;
@@ -76,7 +77,7 @@ static NTSTATUS test_SamLogon(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        
        if (lm_hash) {
                ninfo.lm.length = 24;
-               ninfo.lm.data = talloc_size(mem_ctx, 24);
+               ninfo.lm.data = talloc_array(mem_ctx, uint8_t, 24);
                SMBOWFencrypt(lm_hash->hash, ninfo.challenge, ninfo.lm.data);
        } else {
                ninfo.lm.length = 0;
@@ -222,21 +223,21 @@ static struct sec_desc_buf *samsync_query_lsa_sec_desc(TALLOC_CTX *mem_ctx,
                     __location__, \
                     (long long)i1, (long long)i1, \
                     (long long)i2, (long long)i2);\
-             ret = False;\
+             ret = false;\
        } \
 } while (0)
 #define TEST_INT_EQUAL(i1, i2) do {\
        if (i1 != i2) {\
              printf("%s: integer mismatch: " #i1 ": 0x%08x (%d) != " #i2 ": 0x%08x (%d)\n", \
                     __location__, i1, i1, i2, i2);                     \
-             ret = False;\
+             ret = false;\
        } \
 } while (0)
 #define TEST_TIME_EQUAL(t1, t2) do {\
        if (t1 != t2) {\
              printf("%s: NTTIME mismatch: " #t1 ":%s != " #t2 ": %s\n", \
                     __location__, nt_time_string(mem_ctx, t1),  nt_time_string(mem_ctx, t2));\
-             ret = False;\
+             ret = false;\
        } \
 } while (0)
 
@@ -245,7 +246,7 @@ static struct sec_desc_buf *samsync_query_lsa_sec_desc(TALLOC_CTX *mem_ctx,
            && strcmp_safe(s1.string, s2.string) != 0) {\
              printf("%s: string mismatch: " #s1 ":%s != " #s2 ": %s\n", \
                     __location__, s1.string, s2.string);\
-             ret = False;\
+             ret = false;\
        } \
 } while (0)
 
@@ -253,7 +254,7 @@ static struct sec_desc_buf *samsync_query_lsa_sec_desc(TALLOC_CTX *mem_ctx,
        if (!dom_sid_equal(s1, s2)) {\
              printf("%s: dom_sid mismatch: " #s1 ":%s != " #s2 ": %s\n", \
                     __location__, dom_sid_string(mem_ctx, s1), dom_sid_string(mem_ctx, s2));\
-             ret = False;\
+             ret = false;\
        } \
 } while (0)
 
@@ -265,19 +266,19 @@ static struct sec_desc_buf *samsync_query_lsa_sec_desc(TALLOC_CTX *mem_ctx,
                                                            handle); \
        if (!sdbuf || !sdbuf->sd) { \
                 printf("Could not obtain security descriptor to match " #sd1 "\n");\
-               ret = False; \
+               ret = false; \
         } else {\
                if (!security_descriptor_mask_equal(sd1.sd, sdbuf->sd, \
                            ~SEC_DESC_SACL_PRESENT)) {\
                        printf("Security Descriptor Mismatch for %s:\n", #sd1);\
                        ndr_print_debug((ndr_print_fn_t)ndr_print_security_descriptor, "SamSync", sd1.sd);\
                        ndr_print_debug((ndr_print_fn_t)ndr_print_security_descriptor, "SamR", sdbuf->sd);\
-                       ret = False;\
+                       ret = false;\
                }\
        }\
 } while (0)
 
-static BOOL samsync_handle_domain(TALLOC_CTX *mem_ctx, struct samsync_state *samsync_state,
+static bool samsync_handle_domain(TALLOC_CTX *mem_ctx, struct samsync_state *samsync_state,
                           int database_id, struct netr_DELTA_ENUM *delta) 
 {
        struct netr_DELTA_DOMAIN *domain = delta->delta_union.domain;
@@ -286,7 +287,7 @@ static BOOL samsync_handle_domain(TALLOC_CTX *mem_ctx, struct samsync_state *sam
        uint16_t levels[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13};
        NTSTATUS nt_status;
        int i;
-       BOOL ret = True;
+       bool ret = true;
        
        samsync_state->seq_num[database_id] = 
                domain->sequence_num;
@@ -300,7 +301,7 @@ static BOOL samsync_handle_domain(TALLOC_CTX *mem_ctx, struct samsync_state *sam
                break;
        case SAM_DATABASE_PRIVS:
                printf("DOMAIN entry on privs DB!\n");
-               return False;
+               return false;
                break;
        }
        
@@ -311,7 +312,7 @@ static BOOL samsync_handle_domain(TALLOC_CTX *mem_ctx, struct samsync_state *sam
                if (strcasecmp_m(samsync_state->domain_name[database_id], domain->domain_name.string) != 0) {
                        printf("Domain has name varies!: %s != %s\n", samsync_state->domain_name[database_id], 
                               domain->domain_name.string);
-                       return False;
+                       return false;
                }
        }
 
@@ -338,7 +339,7 @@ static BOOL samsync_handle_domain(TALLOC_CTX *mem_ctx, struct samsync_state *sam
                if (!NT_STATUS_IS_OK(nt_status)) {
                        printf("QueryDomainInfo level %u failed - %s\n", 
                               q[levels[i]].in.level, nt_errstr(nt_status));
-                       return False;
+                       return false;
                }
        }
 
@@ -366,7 +367,7 @@ static BOOL samsync_handle_domain(TALLOC_CTX *mem_ctx, struct samsync_state *sam
        return ret;
 }
 
-static BOOL samsync_handle_policy(TALLOC_CTX *mem_ctx, struct samsync_state *samsync_state,
+static bool samsync_handle_policy(TALLOC_CTX *mem_ctx, struct samsync_state *samsync_state,
                           int database_id, struct netr_DELTA_ENUM *delta) 
 {
        struct netr_DELTA_POLICY *policy = delta->delta_union.policy;
@@ -381,23 +382,23 @@ static BOOL samsync_handle_policy(TALLOC_CTX *mem_ctx, struct samsync_state *sam
                if (strcasecmp_m(samsync_state->domain_name[SAM_DATABASE_DOMAIN], policy->primary_domain_name.string) != 0) {
                        printf("PRIMARY domain has name varies between DOMAIN and POLICY!: %s != %s\n", samsync_state->domain_name[SAM_DATABASE_DOMAIN], 
                               policy->primary_domain_name.string);
-                       return False;
+                       return false;
                }
        }
 
        if (!dom_sid_equal(samsync_state->sid[SAM_DATABASE_DOMAIN], policy->sid)) {
                printf("Domain SID from POLICY (%s) does not match domain sid from SAMR (%s)\n", 
                       dom_sid_string(mem_ctx, policy->sid), dom_sid_string(mem_ctx, samsync_state->sid[SAM_DATABASE_DOMAIN]));
-               return False;
+               return false;
        }
 
        printf("\tsequence_nums[%d/PRIVS]=%llu\n",
               database_id, 
               (long long)samsync_state->seq_num[database_id]);
-       return True;
+       return true;
 }
 
-static BOOL samsync_handle_user(TALLOC_CTX *mem_ctx, struct samsync_state *samsync_state,
+static bool samsync_handle_user(TALLOC_CTX *mem_ctx, struct samsync_state *samsync_state,
                                int database_id, struct netr_DELTA_ENUM *delta) 
 {
        uint32_t rid = delta->delta_id_union.rid;
@@ -410,7 +411,7 @@ static BOOL samsync_handle_user(TALLOC_CTX *mem_ctx, struct samsync_state *samsy
        const char *domain = samsync_state->domain_name[database_id];
        const char *username = user->account_name.string;
        NTSTATUS nt_status;
-       BOOL ret = True;
+       bool ret = true;
 
        struct samr_OpenUser r;
        struct samr_QueryUserInfo q;
@@ -419,7 +420,7 @@ static BOOL samsync_handle_user(TALLOC_CTX *mem_ctx, struct samsync_state *samsy
        struct samr_GetGroupsForUser getgroups;
        if (!samsync_state->domain_name || !samsync_state->domain_handle[database_id]) {
                printf("SamSync needs domain information before the users\n");
-               return False;
+               return false;
        }
 
        r.in.domain_handle = samsync_state->domain_handle[database_id];
@@ -430,7 +431,7 @@ static BOOL samsync_handle_user(TALLOC_CTX *mem_ctx, struct samsync_state *samsy
        nt_status = dcerpc_samr_OpenUser(samsync_state->p_samr, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(nt_status)) {
                printf("OpenUser(%u) failed - %s\n", rid, nt_errstr(nt_status));
-               return False;
+               return false;
        }
 
        q.in.user_handle = &user_handle;
@@ -442,7 +443,7 @@ static BOOL samsync_handle_user(TALLOC_CTX *mem_ctx, struct samsync_state *samsy
        if (!NT_STATUS_IS_OK(nt_status)) {
                printf("QueryUserInfo level %u failed - %s\n", 
                       q.in.level, nt_errstr(nt_status));
-               ret = False;
+               ret = false;
        }
 
        getgroups.in.user_handle = &user_handle;
@@ -451,22 +452,22 @@ static BOOL samsync_handle_user(TALLOC_CTX *mem_ctx, struct samsync_state *samsy
        if (!NT_STATUS_IS_OK(nt_status)) {
                printf("GetGroupsForUser failed - %s\n",
                       nt_errstr(nt_status));
-               ret = False;
+               ret = false;
        }
 
        if (!test_samr_handle_Close(samsync_state->p_samr, mem_ctx, &user_handle)) {
                printf("samr_handle_Close failed - %s\n", 
                       nt_errstr(nt_status));
-               ret = False;
+               ret = false;
        }
        if (!ret) {
-               return False;
+               return false;
        }
 
        if (!NT_STATUS_IS_OK(nt_status)) {
                printf("QueryUserInfo level %u failed - %s\n", 
                       q.in.level, nt_errstr(nt_status));
-               return False;
+               return false;
        }
 
        TEST_STRING_EQUAL(q.out.info->info21.account_name, user->account_name);
@@ -489,7 +490,7 @@ static BOOL samsync_handle_user(TALLOC_CTX *mem_ctx, struct samsync_state *samsy
                if (memcmp(q.out.info->info21.logon_hours.bits, user->logon_hours.bits, 
                           q.out.info->info21.logon_hours.units_per_week/8) != 0) {
                        printf("Logon hours mismatch\n");
-                       ret = False;
+                       ret = false;
                }
        }
 
@@ -507,7 +508,7 @@ static BOOL samsync_handle_user(TALLOC_CTX *mem_ctx, struct samsync_state *samsy
        if (user->acct_flags & ACB_PWNOEXP) {
                if (q.out.info->info21.acct_flags & ACB_PW_EXPIRED) {
                        printf("ACB flags mismatch: both expired and no expiry!\n");
-                       ret = False;
+                       ret = false;
                }
                if (q.out.info->info21.force_password_change != (NTTIME)0x7FFFFFFFFFFFFFFFULL) {
                        printf("ACB flags mismatch: no password expiry, but force password change 0x%016llx (%lld) != 0x%016llx (%lld)\n",
@@ -515,7 +516,7 @@ static BOOL samsync_handle_user(TALLOC_CTX *mem_ctx, struct samsync_state *samsy
                               (unsigned long long)q.out.info->info21.force_password_change,
                               (unsigned long long)0x7FFFFFFFFFFFFFFFULL, (unsigned long long)0x7FFFFFFFFFFFFFFFULL
                                );
-                       ret = False;
+                       ret = false;
                }
        }
 
@@ -561,7 +562,7 @@ static BOOL samsync_handle_user(TALLOC_CTX *mem_ctx, struct samsync_state *samsy
 #if 0
                        dump_data(0, data.data, data.length);
 #endif
-                       return False;
+                       return false;
                }
        }
 
@@ -584,39 +585,39 @@ static BOOL samsync_handle_user(TALLOC_CTX *mem_ctx, struct samsync_state *samsy
 
        if (NT_STATUS_EQUAL(nt_status, NT_STATUS_ACCOUNT_DISABLED)) {
                if (user->acct_flags & ACB_DISABLED) {
-                       return True;
+                       return true;
                }
        } else if (NT_STATUS_EQUAL(nt_status, NT_STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT)) {
                if (user->acct_flags & ACB_WSTRUST) {
-                       return True;
+                       return true;
                }
        } else if (NT_STATUS_EQUAL(nt_status, NT_STATUS_NOLOGON_SERVER_TRUST_ACCOUNT)) {
                if (user->acct_flags & ACB_SVRTRUST) {
-                       return True;
+                       return true;
                }
        } else if (NT_STATUS_EQUAL(nt_status, NT_STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT)) {
                if (user->acct_flags & ACB_DOMTRUST) {
-                       return True;
+                       return true;
                }
        } else if (NT_STATUS_EQUAL(nt_status, NT_STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT)) {
                if (user->acct_flags & ACB_DOMTRUST) {
-                       return True;
+                       return true;
                }
        } else if (NT_STATUS_EQUAL(nt_status, NT_STATUS_ACCOUNT_LOCKED_OUT)) {
                if (user->acct_flags & ACB_AUTOLOCK) {
-                       return True;
+                       return true;
                }
        } else if (NT_STATUS_EQUAL(nt_status, NT_STATUS_PASSWORD_EXPIRED)) {
                if (q.out.info->info21.acct_flags & ACB_PW_EXPIRED) {
-                       return True;
+                       return true;
                }
        } else if (NT_STATUS_EQUAL(nt_status, NT_STATUS_WRONG_PASSWORD)) {
                if (!lm_hash_p && !nt_hash_p) {
-                       return True;
+                       return true;
                }
        } else if (NT_STATUS_EQUAL(nt_status, NT_STATUS_PASSWORD_MUST_CHANGE)) {
                /* We would need to know the server's current time to test this properly */
-               return True;
+               return true;
        } else if (NT_STATUS_IS_OK(nt_status)) {
                TEST_INT_EQUAL(user->rid, info3->base.rid);
                TEST_INT_EQUAL(user->primary_gid, info3->base.primary_gid);
@@ -659,7 +660,7 @@ static BOOL samsync_handle_user(TALLOC_CTX *mem_ctx, struct samsync_state *samsy
                if (getgroups.out.rids->count == info3->base.groups.count) {
                        int i, j;
                        int count = getgroups.out.rids->count;
-                       BOOL *matched = talloc_zero_array(mem_ctx, BOOL, getgroups.out.rids->count);
+                       bool *matched = talloc_zero_array(mem_ctx, bool, getgroups.out.rids->count);
                                
                        for (i = 0; i < count; i++) {
                                for (j = 0; j < count; j++) {
@@ -667,14 +668,14 @@ static BOOL samsync_handle_user(TALLOC_CTX *mem_ctx, struct samsync_state *samsy
                                             info3->base.groups.rids[j].rid)
                                            && (getgroups.out.rids->rids[i].attributes == 
                                                info3->base.groups.rids[j].attributes)) {
-                                                       matched[i] = True;
+                                                       matched[i] = true;
                                                }
                                }
                        }
 
                        for (i = 0; i < getgroups.out.rids->count; i++) {
-                               if (matched[i] == False) {
-                                       ret = False;
+                               if (matched[i] == false) {
+                                       ret = false;
                                        printf("Could not find group RID %u found in getgroups in NETLOGON reply\n",
                                               getgroups.out.rids->rids[i].rid); 
                                }
@@ -684,18 +685,18 @@ static BOOL samsync_handle_user(TALLOC_CTX *mem_ctx, struct samsync_state *samsy
        } else {
                printf("Could not validate password for user %s\\%s: %s\n",
                       domain, username, nt_errstr(nt_status));
-               return False;
+               return false;
        } 
-       return False;
+       return false;
 }
 
-static BOOL samsync_handle_alias(TALLOC_CTX *mem_ctx, struct samsync_state *samsync_state,
+static bool samsync_handle_alias(TALLOC_CTX *mem_ctx, struct samsync_state *samsync_state,
                                 int database_id, struct netr_DELTA_ENUM *delta) 
 {
        uint32_t rid = delta->delta_id_union.rid;
        struct netr_DELTA_ALIAS *alias = delta->delta_union.alias;
        NTSTATUS nt_status;
-       BOOL ret = True;
+       bool ret = true;
 
        struct samr_OpenAlias r;
        struct samr_QueryAliasInfo q;
@@ -703,7 +704,7 @@ static BOOL samsync_handle_alias(TALLOC_CTX *mem_ctx, struct samsync_state *sams
 
        if (!samsync_state->domain_name || !samsync_state->domain_handle[database_id]) {
                printf("SamSync needs domain information before the users\n");
-               return False;
+               return false;
        }
 
        r.in.domain_handle = samsync_state->domain_handle[database_id];
@@ -714,7 +715,7 @@ static BOOL samsync_handle_alias(TALLOC_CTX *mem_ctx, struct samsync_state *sams
        nt_status = dcerpc_samr_OpenAlias(samsync_state->p_samr, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(nt_status)) {
                printf("OpenUser(%u) failed - %s\n", rid, nt_errstr(nt_status));
-               return False;
+               return false;
        }
 
        q.in.alias_handle = &alias_handle;
@@ -724,13 +725,13 @@ static BOOL samsync_handle_alias(TALLOC_CTX *mem_ctx, struct samsync_state *sams
 
        nt_status = dcerpc_samr_QueryAliasInfo(samsync_state->p_samr, mem_ctx, &q);
        if (!test_samr_handle_Close(samsync_state->p_samr, mem_ctx, &alias_handle)) {
-               return False;
+               return false;
        }
 
        if (!NT_STATUS_IS_OK(nt_status)) {
                printf("QueryAliasInfo level %u failed - %s\n", 
                       q.in.level, nt_errstr(nt_status));
-               return False;
+               return false;
        }
 
        TEST_STRING_EQUAL(q.out.info->all.name, alias->alias_name);
@@ -738,13 +739,13 @@ static BOOL samsync_handle_alias(TALLOC_CTX *mem_ctx, struct samsync_state *sams
        return ret;
 }
 
-static BOOL samsync_handle_group(TALLOC_CTX *mem_ctx, struct samsync_state *samsync_state,
+static bool samsync_handle_group(TALLOC_CTX *mem_ctx, struct samsync_state *samsync_state,
                                 int database_id, struct netr_DELTA_ENUM *delta) 
 {
        uint32_t rid = delta->delta_id_union.rid;
        struct netr_DELTA_GROUP *group = delta->delta_union.group;
        NTSTATUS nt_status;
-       BOOL ret = True;
+       bool ret = true;
 
        struct samr_OpenGroup r;
        struct samr_QueryGroupInfo q;
@@ -752,7 +753,7 @@ static BOOL samsync_handle_group(TALLOC_CTX *mem_ctx, struct samsync_state *sams
 
        if (!samsync_state->domain_name || !samsync_state->domain_handle[database_id]) {
                printf("SamSync needs domain information before the users\n");
-               return False;
+               return false;
        }
 
        r.in.domain_handle = samsync_state->domain_handle[database_id];
@@ -763,7 +764,7 @@ static BOOL samsync_handle_group(TALLOC_CTX *mem_ctx, struct samsync_state *sams
        nt_status = dcerpc_samr_OpenGroup(samsync_state->p_samr, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(nt_status)) {
                printf("OpenUser(%u) failed - %s\n", rid, nt_errstr(nt_status));
-               return False;
+               return false;
        }
 
        q.in.group_handle = &group_handle;
@@ -773,13 +774,13 @@ static BOOL samsync_handle_group(TALLOC_CTX *mem_ctx, struct samsync_state *sams
 
        nt_status = dcerpc_samr_QueryGroupInfo(samsync_state->p_samr, mem_ctx, &q);
        if (!test_samr_handle_Close(samsync_state->p_samr, mem_ctx, &group_handle)) {
-               return False;
+               return false;
        }
 
        if (!NT_STATUS_IS_OK(nt_status)) {
                printf("QueryGroupInfo level %u failed - %s\n", 
                       q.in.level, nt_errstr(nt_status));
-               return False;
+               return false;
        }
 
        TEST_STRING_EQUAL(q.out.info->all.name, group->group_name);
@@ -788,7 +789,7 @@ static BOOL samsync_handle_group(TALLOC_CTX *mem_ctx, struct samsync_state *sams
        return ret;
 }
 
-static BOOL samsync_handle_secret(TALLOC_CTX *mem_ctx, struct samsync_state *samsync_state,
+static bool samsync_handle_secret(TALLOC_CTX *mem_ctx, struct samsync_state *samsync_state,
                                  int database_id, struct netr_DELTA_ENUM *delta) 
 {
        struct netr_DELTA_SECRET *secret = delta->delta_union.secret;
@@ -802,7 +803,7 @@ static BOOL samsync_handle_secret(TALLOC_CTX *mem_ctx, struct samsync_state *sam
        struct lsa_DATA_BUF_PTR bufp2;
        NTTIME new_mtime;
        NTTIME old_mtime;
-       BOOL ret = True;
+       bool ret = true;
        DATA_BLOB lsa_blob1, lsa_blob_out, session_key;
        NTSTATUS status;
 
@@ -831,7 +832,7 @@ static BOOL samsync_handle_secret(TALLOC_CTX *mem_ctx, struct samsync_state *sam
        status = dcerpc_lsa_OpenSecret(samsync_state->p_lsa, mem_ctx, &o);
        if (!NT_STATUS_IS_OK(status)) {
                printf("OpenSecret failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
 /*
@@ -841,7 +842,7 @@ static BOOL samsync_handle_secret(TALLOC_CTX *mem_ctx, struct samsync_state *sam
        status = dcerpc_fetch_session_key(samsync_state->p_lsa, &session_key);
        if (!NT_STATUS_IS_OK(status)) {
                printf("dcerpc_fetch_session_key failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
 
@@ -861,10 +862,10 @@ static BOOL samsync_handle_secret(TALLOC_CTX *mem_ctx, struct samsync_state *sam
        status = dcerpc_lsa_QuerySecret(samsync_state->p_lsa, mem_ctx, &q);
        if (NT_STATUS_EQUAL(NT_STATUS_ACCESS_DENIED, status)) {
                /* some things are just off limits */
-               return True;
+               return true;
        } else if (!NT_STATUS_IS_OK(status)) {
                printf("QuerySecret failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        if (q.out.old_val->buf == NULL) {
@@ -876,24 +877,24 @@ static BOOL samsync_handle_secret(TALLOC_CTX *mem_ctx, struct samsync_state *sam
                status = sess_decrypt_blob(mem_ctx, &lsa_blob1, &session_key, &lsa_blob_out);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("Failed to decrypt secrets OLD blob: %s\n", nt_errstr(status));
-                       return False;
+                       return false;
                }
 
                if (!q.out.old_mtime) {
                        printf("OLD mtime not available on LSA for secret %s\n", old->name);
-                       ret = False;
+                       ret = false;
                }
                if (old->mtime != *q.out.old_mtime) {
                        printf("OLD mtime on secret %s does not match between SAMSYNC (%s) and LSA (%s)\n", 
                               old->name, nt_time_string(mem_ctx, old->mtime), 
                               nt_time_string(mem_ctx, *q.out.old_mtime)); 
-                       ret = False;
+                       ret = false;
                }
 
                if (old->secret.length != lsa_blob_out.length) {
                        printf("Returned secret %s doesn't match: %d != %d\n",
                               old->name, (int)old->secret.length, (int)lsa_blob_out.length);
-                       ret = False;
+                       ret = false;
                } else if (memcmp(lsa_blob_out.data, 
                           old->secret.data, old->secret.length) != 0) {
                        printf("Returned secret %s doesn't match: \n",
@@ -902,7 +903,7 @@ static BOOL samsync_handle_secret(TALLOC_CTX *mem_ctx, struct samsync_state *sam
                        dump_data(1, old->secret.data, old->secret.length);
                        DEBUG(1, ("LSA Secret:\n"));
                        dump_data(1, lsa_blob_out.data, lsa_blob_out.length);
-                       ret = False;
+                       ret = false;
                }
 
        }
@@ -916,24 +917,24 @@ static BOOL samsync_handle_secret(TALLOC_CTX *mem_ctx, struct samsync_state *sam
                status = sess_decrypt_blob(mem_ctx, &lsa_blob1, &session_key, &lsa_blob_out);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("Failed to decrypt secrets OLD blob\n");
-                       return False;
+                       return false;
                }
                
                if (!q.out.new_mtime) {
                        printf("NEW mtime not available on LSA for secret %s\n", new->name);
-                       ret = False;
+                       ret = false;
                }
                if (new->mtime != *q.out.new_mtime) {
                        printf("NEW mtime on secret %s does not match between SAMSYNC (%s) and LSA (%s)\n", 
                               new->name, nt_time_string(mem_ctx, new->mtime), 
                               nt_time_string(mem_ctx, *q.out.new_mtime)); 
-                       ret = False;
+                       ret = false;
                }
 
                if (new->secret.length != lsa_blob_out.length) {
                        printf("Returned secret %s doesn't match: %d != %d\n",
                               new->name, (int)new->secret.length, (int)lsa_blob_out.length);
-                       ret = False;
+                       ret = false;
                } else if (memcmp(lsa_blob_out.data, 
                           new->secret.data, new->secret.length) != 0) {
                        printf("Returned secret %s doesn't match: \n",
@@ -942,18 +943,18 @@ static BOOL samsync_handle_secret(TALLOC_CTX *mem_ctx, struct samsync_state *sam
                        dump_data(1, new->secret.data, new->secret.length);
                        DEBUG(1, ("LSA Secret:\n"));
                        dump_data(1, lsa_blob_out.data, lsa_blob_out.length);
-                       ret = False;
+                       ret = false;
                }
        }
 
        return ret;
 }
 
-static BOOL samsync_handle_trusted_domain(TALLOC_CTX *mem_ctx, struct samsync_state *samsync_state,
+static bool samsync_handle_trusted_domain(TALLOC_CTX *mem_ctx, struct samsync_state *samsync_state,
                                          int database_id, struct netr_DELTA_ENUM *delta) 
 {
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        struct netr_DELTA_TRUSTED_DOMAIN *trusted_domain = delta->delta_union.trusted_domain;
        struct dom_sid *dom_sid = delta->delta_id_union.sid;
 
@@ -976,7 +977,7 @@ static BOOL samsync_handle_trusted_domain(TALLOC_CTX *mem_ctx, struct samsync_st
        status = dcerpc_lsa_OpenTrustedDomain(samsync_state->p_lsa, mem_ctx, &t);
        if (!NT_STATUS_IS_OK(status)) {
                printf("OpenTrustedDomain failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
        
        for (i=0; i< ARRAY_SIZE(levels); i++) {
@@ -990,7 +991,7 @@ static BOOL samsync_handle_trusted_domain(TALLOC_CTX *mem_ctx, struct samsync_st
                        }
                        printf("QueryInfoTrustedDomain level %d failed - %s\n", 
                               levels[i], nt_errstr(status));
-                       return False;
+                       return false;
                }
                info[levels[i]]  = q.out.info;
        }
@@ -1011,11 +1012,11 @@ static BOOL samsync_handle_trusted_domain(TALLOC_CTX *mem_ctx, struct samsync_st
        return ret;
 }
 
-static BOOL samsync_handle_account(TALLOC_CTX *mem_ctx, struct samsync_state *samsync_state,
+static bool samsync_handle_account(TALLOC_CTX *mem_ctx, struct samsync_state *samsync_state,
                                          int database_id, struct netr_DELTA_ENUM *delta) 
 {
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        struct netr_DELTA_ACCOUNT *account = delta->delta_union.account;
        struct dom_sid *dom_sid = delta->delta_id_union.sid;
 
@@ -1026,7 +1027,7 @@ static BOOL samsync_handle_account(TALLOC_CTX *mem_ctx, struct samsync_state *sa
 
        int i, j;
 
-       BOOL *found_priv_in_lsa;
+       bool *found_priv_in_lsa;
 
        a.in.handle = samsync_state->lsa_handle;
        a.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
@@ -1036,31 +1037,31 @@ static BOOL samsync_handle_account(TALLOC_CTX *mem_ctx, struct samsync_state *sa
        status = dcerpc_lsa_OpenAccount(samsync_state->p_lsa, mem_ctx, &a);
        if (!NT_STATUS_IS_OK(status)) {
                printf("OpenTrustedDomain failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        TEST_SEC_DESC_EQUAL(account->sdbuf, lsa, &acct_handle);
 
-       found_priv_in_lsa = talloc_zero_array(mem_ctx, BOOL, account->privilege_entries);
+       found_priv_in_lsa = talloc_zero_array(mem_ctx, bool, account->privilege_entries);
 
        e.in.handle = &acct_handle;
 
        status = dcerpc_lsa_EnumPrivsAccount(samsync_state->p_lsa, mem_ctx, &e);
        if (!NT_STATUS_IS_OK(status)) {
                printf("EnumPrivsAccount failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        if ((account->privilege_entries && !e.out.privs)) {
                printf("Account %s has privileges in SamSync, but not LSA\n",
                       dom_sid_string(mem_ctx, dom_sid));
-               return False;
+               return false;
        }
 
        if (!account->privilege_entries && e.out.privs && e.out.privs->count) {
                printf("Account %s has privileges in LSA, but not SamSync\n",
                       dom_sid_string(mem_ctx, dom_sid));
-               return False;
+               return false;
        }
 
        TEST_INT_EQUAL(account->privilege_entries, e.out.privs->count);
@@ -1072,16 +1073,16 @@ static BOOL samsync_handle_account(TALLOC_CTX *mem_ctx, struct samsync_state *sa
                status = dcerpc_lsa_LookupPrivName(samsync_state->p_lsa, mem_ctx, &r);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("\nLookupPrivName failed - %s\n", nt_errstr(status));
-                       return False;
+                       return false;
                }
                
                if (!r.out.name) {
                        printf("\nLookupPrivName failed to return a name\n");
-                       return False;
+                       return false;
                }
                for (j=0;j<account->privilege_entries; j++) {
                        if (strcmp(r.out.name->string, account->privilege_name[j].string) == 0) {
-                               found_priv_in_lsa[j] = True;
+                               found_priv_in_lsa[j] = true;
                                break;
                        }
                }
@@ -1090,7 +1091,7 @@ static BOOL samsync_handle_account(TALLOC_CTX *mem_ctx, struct samsync_state *sa
                if (!found_priv_in_lsa[j]) {
                        printf("Privilage %s on account %s not found in LSA\n", account->privilege_name[j].string, 
                               dom_sid_string(mem_ctx, dom_sid));
-                       ret = False;
+                       ret = false;
                }
        }
        return ret;
@@ -1099,7 +1100,7 @@ static BOOL samsync_handle_account(TALLOC_CTX *mem_ctx, struct samsync_state *sa
 /*
   try a netlogon DatabaseSync
 */
-static BOOL test_DatabaseSync(struct samsync_state *samsync_state,
+static bool test_DatabaseSync(struct samsync_state *samsync_state,
                              TALLOC_CTX *mem_ctx)
 {
        NTSTATUS status;
@@ -1107,7 +1108,7 @@ static BOOL test_DatabaseSync(struct samsync_state *samsync_state,
        struct netr_DatabaseSync r;
        const enum netr_SamDatabaseID database_ids[] = {SAM_DATABASE_DOMAIN, SAM_DATABASE_BUILTIN, SAM_DATABASE_PRIVS}; 
        int i, d;
-       BOOL ret = True;
+       bool ret = true;
        struct samsync_trusted_domain *t;
        struct samsync_secret *s;
        
@@ -1132,7 +1133,7 @@ static BOOL test_DatabaseSync(struct samsync_state *samsync_state,
                        if (!NT_STATUS_IS_OK(status) &&
                            !NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES)) {
                                printf("DatabaseSync - %s\n", nt_errstr(status));
-                               ret = False;
+                               ret = false;
                                break;
                        }
 
@@ -1149,56 +1150,56 @@ static BOOL test_DatabaseSync(struct samsync_state *samsync_state,
                                        if (!samsync_handle_domain(delta_ctx, samsync_state, 
                                                                   r.in.database_id, &r.out.delta_enum_array->delta_enum[d])) {
                                                printf("Failed to handle DELTA_DOMAIN\n");
-                                               ret = False;
+                                               ret = false;
                                        }
                                        break;
                                case NETR_DELTA_GROUP:
                                        if (!samsync_handle_group(delta_ctx, samsync_state, 
                                                                  r.in.database_id, &r.out.delta_enum_array->delta_enum[d])) {
                                                printf("Failed to handle DELTA_USER\n");
-                                               ret = False;
+                                               ret = false;
                                        }
                                        break;
                                case NETR_DELTA_USER:
                                        if (!samsync_handle_user(delta_ctx, samsync_state, 
                                                                 r.in.database_id, &r.out.delta_enum_array->delta_enum[d])) {
                                                printf("Failed to handle DELTA_USER\n");
-                                               ret = False;
+                                               ret = false;
                                        }
                                        break;
                                case NETR_DELTA_ALIAS:
                                        if (!samsync_handle_alias(delta_ctx, samsync_state, 
                                                                  r.in.database_id, &r.out.delta_enum_array->delta_enum[d])) {
                                                printf("Failed to handle DELTA_ALIAS\n");
-                                               ret = False;
+                                               ret = false;
                                        }
                                        break;
                                case NETR_DELTA_POLICY:
                                        if (!samsync_handle_policy(delta_ctx, samsync_state, 
                                                                   r.in.database_id, &r.out.delta_enum_array->delta_enum[d])) {
                                                printf("Failed to handle DELTA_POLICY\n");
-                                               ret = False;
+                                               ret = false;
                                        }
                                        break;
                                case NETR_DELTA_TRUSTED_DOMAIN:
                                        if (!samsync_handle_trusted_domain(delta_ctx, samsync_state, 
                                                                           r.in.database_id, &r.out.delta_enum_array->delta_enum[d])) {
                                                printf("Failed to handle DELTA_TRUSTED_DOMAIN\n");
-                                               ret = False;
+                                               ret = false;
                                        }
                                        break;
                                case NETR_DELTA_ACCOUNT:
                                        if (!samsync_handle_account(delta_ctx, samsync_state, 
                                                                    r.in.database_id, &r.out.delta_enum_array->delta_enum[d])) {
                                                printf("Failed to handle DELTA_ACCOUNT\n");
-                                               ret = False;
+                                               ret = false;
                                        }
                                        break;
                                case NETR_DELTA_SECRET:
                                        if (!samsync_handle_secret(delta_ctx, samsync_state, 
                                                                   r.in.database_id, &r.out.delta_enum_array->delta_enum[d])) {
                                                printf("Failed to handle DELTA_SECRET\n");
-                                               ret = False;
+                                               ret = false;
                                        }
                                        break;
                                case NETR_DELTA_GROUP_MEMBER:
@@ -1219,7 +1220,7 @@ static BOOL test_DatabaseSync(struct samsync_state *samsync_state,
                                case NETR_DELTA_MODIFY_COUNT:
                                default:
                                        printf("Uxpected delta type %d\n", r.out.delta_enum_array->delta_enum[d].delta_type);
-                                       ret = False;
+                                       ret = false;
                                        break;
                                }
                                talloc_free(delta_ctx);
@@ -1232,7 +1233,7 @@ static BOOL test_DatabaseSync(struct samsync_state *samsync_state,
        domain = samsync_state->domain_name[SAM_DATABASE_DOMAIN];
        if (!domain) {
                printf("Never got a DOMAIN object in samsync!\n");
-               return False;
+               return false;
        }
 
        trustdom_ctx = talloc_named(mem_ctx, 0, "test_DatabaseSync Trusted domains context");
@@ -1263,7 +1264,7 @@ static BOOL test_DatabaseSync(struct samsync_state *samsync_state,
                                if (!NT_STATUS_EQUAL(nt_status, NT_STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT)) {
                                        printf("Verifiction of trust password to %s: should have failed (nologon interdomain trust account), instead: %s\n", 
                                               t->name, nt_errstr(nt_status));
-                                       ret = False;
+                                       ret = false;
                                }
                                
                                /* break it */
@@ -1279,7 +1280,7 @@ static BOOL test_DatabaseSync(struct samsync_state *samsync_state,
                                if (!NT_STATUS_EQUAL(nt_status, NT_STATUS_WRONG_PASSWORD)) {
                                        printf("Verifiction of trust password to %s: should have failed (wrong password), instead: %s\n", 
                                               t->name, nt_errstr(nt_status));
-                                       ret = False;
+                                       ret = false;
                                }
                                
                                break;
@@ -1294,14 +1295,14 @@ static BOOL test_DatabaseSync(struct samsync_state *samsync_state,
 /*
   try a netlogon DatabaseDeltas
 */
-static BOOL test_DatabaseDeltas(struct samsync_state *samsync_state, TALLOC_CTX *mem_ctx)
+static bool test_DatabaseDeltas(struct samsync_state *samsync_state, TALLOC_CTX *mem_ctx)
 {
        NTSTATUS status;
        TALLOC_CTX *loop_ctx;
        struct netr_DatabaseDeltas r;
        const uint32_t database_ids[] = {0, 1, 2}; 
        int i;
-       BOOL ret = True;
+       bool ret = true;
 
        r.in.logon_server = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(samsync_state->p));
        r.in.computername = TEST_MACHINE_NAME;
@@ -1333,7 +1334,7 @@ static BOOL test_DatabaseDeltas(struct samsync_state *samsync_state, TALLOC_CTX
                            !NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES) &&
                            !NT_STATUS_EQUAL(status, NT_STATUS_SYNCHRONIZATION_REQUIRED)) {
                                printf("DatabaseDeltas - %s\n", nt_errstr(status));
-                               ret = False;
+                               ret = false;
                        }
 
                        if (!creds_client_check(samsync_state->creds, &r.out.return_authenticator.cred)) {
@@ -1352,7 +1353,7 @@ static BOOL test_DatabaseDeltas(struct samsync_state *samsync_state, TALLOC_CTX
 /*
   try a netlogon DatabaseSync2
 */
-static BOOL test_DatabaseSync2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_DatabaseSync2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
                               struct creds_CredentialState *creds)
 {
        NTSTATUS status;
@@ -1360,7 +1361,7 @@ static BOOL test_DatabaseSync2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        struct netr_DatabaseSync2 r;
        const uint32_t database_ids[] = {0, 1, 2}; 
        int i;
-       BOOL ret = True;
+       bool ret = true;
 
        r.in.logon_server = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
        r.in.computername = TEST_MACHINE_NAME;
@@ -1382,7 +1383,7 @@ static BOOL test_DatabaseSync2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                        if (!NT_STATUS_IS_OK(status) &&
                            !NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES)) {
                                printf("DatabaseSync2 - %s\n", nt_errstr(status));
-                               ret = False;
+                               ret = false;
                        }
 
                        if (!creds_client_check(creds, &r.out.return_authenticator.cred)) {
@@ -1399,11 +1400,11 @@ static BOOL test_DatabaseSync2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
 
 
-BOOL torture_rpc_samsync(struct torture_context *torture)
+bool torture_rpc_samsync(struct torture_context *torture)
 {
         NTSTATUS status;
        TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
+       bool ret = true;
        struct test_join *join_ctx;
        struct test_join *join_ctx2;
        struct test_join *user_ctx;
@@ -1430,30 +1431,30 @@ BOOL torture_rpc_samsync(struct torture_context *torture)
        mem_ctx = talloc_init("torture_rpc_netlogon");
        
        test_machine_account = talloc_asprintf(mem_ctx, "%s$", TEST_MACHINE_NAME);
-       join_ctx = torture_create_testuser(torture, test_machine_account, lp_workgroup(), ACB_SVRTRUST, 
+       join_ctx = torture_create_testuser(torture, test_machine_account, 
+                                          lp_workgroup(global_loadparm), ACB_SVRTRUST, 
                                           &machine_password);
        if (!join_ctx) {
                talloc_free(mem_ctx);
                printf("Failed to join as BDC\n");
-               return False;
+               return false;
        }
        
        test_wksta_machine_account = talloc_asprintf(mem_ctx, "%s$", TEST_WKSTA_MACHINE_NAME);
-       join_ctx2 = torture_create_testuser(torture, test_wksta_machine_account, lp_workgroup(), ACB_WSTRUST, 
-                                           &wksta_machine_password);
+       join_ctx2 = torture_create_testuser(torture, test_wksta_machine_account, lp_workgroup(global_loadparm), ACB_WSTRUST, &wksta_machine_password);
        if (!join_ctx2) {
                talloc_free(mem_ctx);
                printf("Failed to join as member\n");
-               return False;
+               return false;
        }
        
        user_ctx = torture_create_testuser(torture, TEST_USER_NAME,
-                                          lp_workgroup(),
+                                          lp_workgroup(global_loadparm),
                                           ACB_NORMAL, NULL);
        if (!user_ctx) {
                talloc_free(mem_ctx);
                printf("Failed to create test account\n");
-               return False;
+               return false;
        }
 
        samsync_state = talloc_zero(mem_ctx, struct samsync_state);
@@ -1468,14 +1469,14 @@ BOOL torture_rpc_samsync(struct torture_context *torture)
        status = dcerpc_samr_Connect(samsync_state->p_samr, mem_ctx, &c);
        if (!NT_STATUS_IS_OK(status)) {
                printf("samr_Connect failed\n");
-               ret = False;
+               ret = false;
                goto failed;
        }
 
-       domain_policy = samsync_open_domain(mem_ctx, samsync_state, lp_workgroup(), NULL);
+       domain_policy = samsync_open_domain(mem_ctx, samsync_state, lp_workgroup(global_loadparm), NULL);
        if (!domain_policy) {
                printf("samrsync_open_domain failed\n");
-               ret = False;
+               ret = false;
                goto failed;
        }
        
@@ -1490,14 +1491,14 @@ BOOL torture_rpc_samsync(struct torture_context *torture)
        status = dcerpc_samr_SetDomainInfo(samsync_state->p_samr, mem_ctx, &s);
 
        if (!test_samr_handle_Close(samsync_state->p_samr, mem_ctx, domain_policy)) {
-               ret = False;
+               ret = false;
                goto failed;
        }
 
        if (!NT_STATUS_IS_OK(status)) {
                printf("SetDomainInfo level %u failed - %s\n", 
                       s.in.level, nt_errstr(status));
-               ret = False;
+               ret = false;
                goto failed;
        }
        
@@ -1507,7 +1508,7 @@ BOOL torture_rpc_samsync(struct torture_context *torture)
                                        &ndr_table_lsarpc);
 
        if (!NT_STATUS_IS_OK(status)) {
-               ret = False;
+               ret = false;
                goto failed;
        }
 
@@ -1531,13 +1532,13 @@ BOOL torture_rpc_samsync(struct torture_context *torture)
        status = dcerpc_lsa_OpenPolicy2(samsync_state->p_lsa, mem_ctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("OpenPolicy2 failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
                goto failed;
        }
 
        status = torture_rpc_binding(torture, &b);
        if (!NT_STATUS_IS_OK(status)) {
-               ret = False;
+               ret = false;
                goto failed;
        }
 
@@ -1547,7 +1548,7 @@ BOOL torture_rpc_samsync(struct torture_context *torture)
        credentials = cli_credentials_init(mem_ctx);
 
        cli_credentials_set_workstation(credentials, TEST_MACHINE_NAME, CRED_SPECIFIED);
-       cli_credentials_set_domain(credentials, lp_workgroup(), CRED_SPECIFIED);
+       cli_credentials_set_domain(credentials, lp_workgroup(global_loadparm), CRED_SPECIFIED);
        cli_credentials_set_username(credentials, test_machine_account, CRED_SPECIFIED);
        cli_credentials_set_password(credentials, machine_password, CRED_SPECIFIED);
        cli_credentials_set_secure_channel_type(credentials,
@@ -1560,21 +1561,21 @@ BOOL torture_rpc_samsync(struct torture_context *torture)
        
        if (!NT_STATUS_IS_OK(status)) {
                printf("Failed to connect to server as a BDC: %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
                goto failed;
        }
 
        status = dcerpc_schannel_creds(samsync_state->p->conn->security_state.generic_state, 
                                       samsync_state, &samsync_state->creds);
        if (!NT_STATUS_IS_OK(status)) {
-               ret = False;
+               ret = false;
        }
 
 
 
        status = torture_rpc_binding(torture, &b_netlogon_wksta);
        if (!NT_STATUS_IS_OK(status)) {
-               ret = False;
+               ret = false;
                goto failed;
        }
 
@@ -1584,7 +1585,7 @@ BOOL torture_rpc_samsync(struct torture_context *torture)
        credentials_wksta = cli_credentials_init(mem_ctx);
 
        cli_credentials_set_workstation(credentials_wksta, TEST_WKSTA_MACHINE_NAME, CRED_SPECIFIED);
-       cli_credentials_set_domain(credentials_wksta, lp_workgroup(), CRED_SPECIFIED);
+       cli_credentials_set_domain(credentials_wksta, lp_workgroup(global_loadparm), CRED_SPECIFIED);
        cli_credentials_set_username(credentials_wksta, test_wksta_machine_account, CRED_SPECIFIED);
        cli_credentials_set_password(credentials_wksta, wksta_machine_password, CRED_SPECIFIED);
        cli_credentials_set_secure_channel_type(credentials_wksta,
@@ -1598,7 +1599,7 @@ BOOL torture_rpc_samsync(struct torture_context *torture)
 
        if (!NT_STATUS_IS_OK(status)) {
                printf("Failed to connect to server as a Workstation: %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
                goto failed;
        }
 
@@ -1606,22 +1607,22 @@ BOOL torture_rpc_samsync(struct torture_context *torture)
                                       samsync_state, &samsync_state->creds_netlogon_wksta);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Failed to obtail schanel creds!\n");
-               ret = False;
+               ret = false;
        }
 
        if (!test_DatabaseSync(samsync_state, mem_ctx)) {
                printf("DatabaseSync failed\n");
-               ret = False;
+               ret = false;
        }
 
        if (!test_DatabaseDeltas(samsync_state, mem_ctx)) {
                printf("DatabaseDeltas failed\n");
-               ret = False;
+               ret = false;
        }
 
        if (!test_DatabaseSync2(samsync_state->p, mem_ctx, samsync_state->creds)) {
                printf("DatabaseSync2 failed\n");
-               ret = False;
+               ret = false;
        }
 failed:
 
index b2dd99fd662f777c013b61a88fe50866058d8302..630e9cf1e432a88b2005af75e0b153f77f5ee87e 100644 (file)
 #include "librpc/gen_ndr/ndr_mgmt_c.h"
 #include "librpc/ndr/ndr_table.h"
 #include "torture/rpc/rpc.h"
+#include "param/param.h"
 
 /*
   work out how many calls there are for an interface
  */
-static BOOL test_num_calls(struct torture_context *tctx, 
+static bool test_num_calls(struct torture_context *tctx, 
                           const struct ndr_interface_table *iface,
                           TALLOC_CTX *mem_ctx,
                           struct ndr_syntax_id *id)
@@ -51,7 +52,7 @@ static BOOL test_num_calls(struct torture_context *tctx,
                printf("Failed to connect to '%s' on '%s' - %s\n", 
                       uuid_str, iface->name, nt_errstr(status));
                talloc_free(uuid_str);
-               return True;
+               return true;
        }
 
        /* make null calls */
@@ -59,7 +60,7 @@ static BOOL test_num_calls(struct torture_context *tctx,
        memset(stub_in.data, 0xFF, stub_in.length);
 
        for (i=0;i<200;i++) {
-               status = dcerpc_request(p, NULL, i, False, mem_ctx, &stub_in, &stub_out);
+               status = dcerpc_request(p, NULL, i, false, mem_ctx, &stub_in, &stub_out);
                if (!NT_STATUS_IS_OK(status) &&
                    p->last_fault_code == DCERPC_FAULT_OP_RNG_ERROR) {
                        break;
@@ -88,30 +89,27 @@ static BOOL test_num_calls(struct torture_context *tctx,
 
 done:
        talloc_free(p);
-       return True;
+       return true;
 }
 
 
 
-BOOL torture_rpc_scanner(struct torture_context *torture)
+bool torture_rpc_scanner(struct torture_context *torture)
 {
         NTSTATUS status;
         struct dcerpc_pipe *p;
-       TALLOC_CTX *mem_ctx, *loop_ctx;
-       BOOL ret = True;
+       TALLOC_CTX *loop_ctx;
+       bool ret = true;
        const struct ndr_interface_list *l;
        struct dcerpc_binding *b;
 
-       mem_ctx = talloc_init("torture_rpc_scanner");
-
        status = torture_rpc_binding(torture, &b);
        if (!NT_STATUS_IS_OK(status)) {
-               talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        for (l=ndr_table_list();l;l=l->next) {          
-               loop_ctx = talloc_named(mem_ctx, 0, "torture_rpc_scanner loop context");
+               loop_ctx = talloc_named(torture, 0, "torture_rpc_scanner loop context");
                /* some interfaces are not mappable */
                if (l->table->num_calls == 0 ||
                    strcmp(l->table->name, "mgmt") == 0) {
@@ -122,7 +120,7 @@ BOOL torture_rpc_scanner(struct torture_context *torture)
                printf("\nTesting pipe '%s'\n", l->table->name);
 
                if (b->transport == NCACN_IP_TCP) {
-                       status = dcerpc_epm_map_binding(mem_ctx, b, l->table, NULL);
+                       status = dcerpc_epm_map_binding(torture, b, l->table, NULL);
                        if (!NT_STATUS_IS_OK(status)) {
                                printf("Failed to map port for uuid %s\n", 
                                           GUID_string(loop_ctx, &l->table->syntax_id.uuid));
@@ -133,17 +131,17 @@ BOOL torture_rpc_scanner(struct torture_context *torture)
                        b->endpoint = talloc_strdup(b, l->table->name);
                }
 
-               lp_set_cmdline("torture:binding", dcerpc_binding_string(mem_ctx, b));
+               lp_set_cmdline(global_loadparm, "torture:binding", dcerpc_binding_string(torture, b));
 
                status = torture_rpc_connection(torture, &p, &ndr_table_mgmt);
                if (!NT_STATUS_IS_OK(status)) {
                        talloc_free(loop_ctx);
-                       ret = False;
+                       ret = false;
                        continue;
                }
        
-               if (!test_inq_if_ids(torture, p, mem_ctx, test_num_calls, l->table)) {
-                       ret = False;
+               if (!test_inq_if_ids(torture, p, torture, test_num_calls, l->table)) {
+                       ret = false;
                }
        }
 
index e072e592d1d1d037a4c537218aa3d9f90dd7e613..a1a83c69d779e1ae2d08a4dcd16de1aab1f2242e 100644 (file)
 #include "libcli/auth/libcli_auth.h"
 #include "libcli/security/security.h"
 #include "system/filesys.h"
+#include "param/param.h"
 
 #define TEST_MACHINE_NAME "schannel"
 
 /*
   try a netlogon SamLogon
 */
-BOOL test_netlogon_ex_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+bool test_netlogon_ex_ops(struct dcerpc_pipe *p, struct torture_context *tctx, 
                          struct cli_credentials *credentials, 
                          struct creds_CredentialState *creds)
 {
@@ -45,17 +46,16 @@ BOOL test_netlogon_ex_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        struct netr_NetworkInfo ninfo;
        DATA_BLOB names_blob, chal, lm_resp, nt_resp;
        int i;
-       BOOL ret = True;
        int flags = CLI_CRED_NTLM_AUTH;
-       if (lp_client_lanman_auth()) {
+       if (lp_client_lanman_auth(global_loadparm)) {
                flags |= CLI_CRED_LANMAN_AUTH;
        }
 
-       if (lp_client_ntlmv2_auth()) {
+       if (lp_client_ntlmv2_auth(global_loadparm)) {
                flags |= CLI_CRED_NTLMv2_AUTH;
        }
 
-       cli_credentials_get_ntlm_username_domain(cmdline_credentials, mem_ctx, 
+       cli_credentials_get_ntlm_username_domain(cmdline_credentials, tctx, 
                                                 &ninfo.identity_info.account_name.string,
                                                 &ninfo.identity_info.domain_name.string);
        
@@ -64,20 +64,17 @@ BOOL test_netlogon_ex_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        chal = data_blob_const(ninfo.challenge, 
                               sizeof(ninfo.challenge));
 
-       names_blob = NTLMv2_generate_names_blob(mem_ctx, cli_credentials_get_workstation(credentials), 
+       names_blob = NTLMv2_generate_names_blob(tctx, cli_credentials_get_workstation(credentials), 
                                                cli_credentials_get_domain(credentials));
 
-       status = cli_credentials_get_ntlm_response(cmdline_credentials, mem_ctx, 
+       status = cli_credentials_get_ntlm_response(cmdline_credentials, tctx, 
                                                   &flags, 
                                                   chal,
                                                   names_blob,
                                                   &lm_resp, &nt_resp,
                                                   NULL, NULL);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("cli_credentials_get_ntlm_response failed: %s\n", 
-                      nt_errstr(status));
-               return False;
-       }
+       torture_assert_ntstatus_ok(tctx, status, 
+                                  "cli_credentials_get_ntlm_response failed");
 
        ninfo.lm.data = lm_resp.data;
        ninfo.lm.length = lm_resp.length;
@@ -90,32 +87,31 @@ BOOL test_netlogon_ex_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        ninfo.identity_info.logon_id_high = 0;
        ninfo.identity_info.workstation.string = cli_credentials_get_workstation(credentials);
 
-       r.in.server_name = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
+       r.in.server_name = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
        r.in.computer_name = cli_credentials_get_workstation(credentials);
        r.in.logon_level = 2;
        r.in.logon.network = &ninfo;
        r.in.flags = 0;
 
-       printf("Testing LogonSamLogonEx with name %s\n", ninfo.identity_info.account_name.string);
+       torture_comment(tctx, 
+                       "Testing LogonSamLogonEx with name %s\n", 
+                       ninfo.identity_info.account_name.string);
        
        for (i=2;i<3;i++) {
                r.in.validation_level = i;
                
-               status = dcerpc_netr_LogonSamLogonEx(p, mem_ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("LogonSamLogon failed: %s\n", 
-                              nt_errstr(status));
-                       return False;
-               }
+               status = dcerpc_netr_LogonSamLogonEx(p, tctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "LogonSamLogon failed");
        }
 
-       return ret;
+       return true;
 }
 
 /*
   do some samr ops using the schannel connection
  */
-static BOOL test_samr_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_samr_ops(struct torture_context *tctx,
+                         struct dcerpc_pipe *p)
 {
        NTSTATUS status;
        struct samr_GetDomPwInfo r;
@@ -126,7 +122,7 @@ static BOOL test_samr_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
        struct policy_handle handle;
        struct policy_handle domain_handle;
 
-       name.string = lp_workgroup();
+       name.string = lp_workgroup(global_loadparm);
        r.in.domain_name = &name;
 
        connect.in.system_name = 0;
@@ -135,25 +131,25 @@ static BOOL test_samr_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
        
        printf("Testing Connect and OpenDomain on BUILTIN\n");
 
-       status = dcerpc_samr_Connect(p, mem_ctx, &connect);
+       status = dcerpc_samr_Connect(p, tctx, &connect);
        if (!NT_STATUS_IS_OK(status)) {
                if (NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED)) {
                        printf("Connect failed (expected, schannel mapped to anonymous): %s\n",
                               nt_errstr(status));
                } else {
                        printf("Connect failed - %s\n", nt_errstr(status));
-                       return False;
+                       return false;
                }
        } else {
                opendom.in.connect_handle = &handle;
                opendom.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
-               opendom.in.sid = dom_sid_parse_talloc(mem_ctx, "S-1-5-32");
+               opendom.in.sid = dom_sid_parse_talloc(tctx, "S-1-5-32");
                opendom.out.domain_handle = &domain_handle;
                
-               status = dcerpc_samr_OpenDomain(p, mem_ctx, &opendom);
+               status = dcerpc_samr_OpenDomain(p, tctx, &opendom);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("OpenDomain failed - %s\n", nt_errstr(status));
-                       return False;
+                       return false;
                }
        }
 
@@ -161,27 +157,27 @@ static BOOL test_samr_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
        
        /* do several ops to test credential chaining */
        for (i=0;i<5;i++) {
-               status = dcerpc_samr_GetDomPwInfo(p, mem_ctx, &r);
+               status = dcerpc_samr_GetDomPwInfo(p, tctx, &r);
                if (!NT_STATUS_IS_OK(status)) {
                        if (!NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED)) {
                                printf("GetDomPwInfo op %d failed - %s\n", i, nt_errstr(status));
-                               return False;
+                               return false;
                        }
                }
        }
 
-       return True;
+       return true;
 }
 
 
 /*
   do some lsa ops using the schannel connection
  */
-static BOOL test_lsa_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_lsa_ops(struct torture_context *tctx, struct dcerpc_pipe *p)
 {
        struct lsa_GetUserName r;
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
        struct lsa_StringPointer authority_name_p;
 
        printf("\nTesting GetUserName\n");
@@ -192,36 +188,36 @@ static BOOL test_lsa_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
        authority_name_p.string = NULL;
 
        /* do several ops to test credential chaining and various operations */
-       status = dcerpc_lsa_GetUserName(p, mem_ctx, &r);
+       status = dcerpc_lsa_GetUserName(p, tctx, &r);
        
        if (NT_STATUS_EQUAL(status, NT_STATUS_RPC_PROTSEQ_NOT_SUPPORTED)) {
                printf("not considering %s to be an error\n", nt_errstr(status));
        } else if (!NT_STATUS_IS_OK(status)) {
                printf("GetUserName failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        } else {
                if (!r.out.account_name) {
-                       return False;
+                       return false;
                }
                
                if (strcmp(r.out.account_name->string, "ANONYMOUS LOGON") != 0) {
                        printf("GetUserName returned wrong user: %s, expected %s\n",
                               r.out.account_name->string, "ANONYMOUS LOGON");
-                       return False;
+                       return false;
                }
                if (!r.out.authority_name || !r.out.authority_name->string) {
-                       return False;
+                       return false;
                }
                
                if (strcmp(r.out.authority_name->string->string, "NT AUTHORITY") != 0) {
                        printf("GetUserName returned wrong user: %s, expected %s\n",
                               r.out.authority_name->string->string, "NT AUTHORITY");
-                       return False;
+                       return false;
                }
        }
-       if (!test_many_LookupSids(p, mem_ctx, NULL)) {
+       if (!test_many_LookupSids(p, tctx, NULL)) {
                printf("LsaLookupSids3 failed!\n");
-               return False;
+               return false;
        }
 
        return ret;
@@ -231,15 +227,13 @@ static BOOL test_lsa_ops(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
 /*
   test a schannel connection with the given flags
  */
-static BOOL test_schannel(TALLOC_CTX *mem_ctx, 
+static bool test_schannel(struct torture_context *tctx,
                          uint16_t acct_flags, uint32_t dcerpc_flags,
                          int i)
 {
-       BOOL ret = True;
-
        struct test_join *join_ctx;
        NTSTATUS status;
-       const char *binding = lp_parm_string(-1, "torture", "binding");
+       const char *binding = lp_parm_string(global_loadparm, NULL, "torture", "binding");
        struct dcerpc_binding *b;
        struct dcerpc_pipe *p = NULL;
        struct dcerpc_pipe *p_netlogon = NULL;
@@ -250,105 +244,71 @@ static BOOL test_schannel(TALLOC_CTX *mem_ctx,
        struct creds_CredentialState *creds;
        struct cli_credentials *credentials;
 
-       TALLOC_CTX *test_ctx = talloc_named(mem_ctx, 0, "test_schannel context");
-
-       join_ctx = torture_join_domain(talloc_asprintf(mem_ctx, "%s%d", TEST_MACHINE_NAME, i), 
+       join_ctx = torture_join_domain(talloc_asprintf(tctx, "%s%d", TEST_MACHINE_NAME, i), 
                                       acct_flags, &credentials);
-       if (!join_ctx) {
-               printf("Failed to join domain with acct_flags=0x%x\n", acct_flags);
-               talloc_free(test_ctx);
-               return False;
-       }
+       torture_assert(tctx, join_ctx != NULL, "Failed to join domain");
 
-       status = dcerpc_parse_binding(test_ctx, binding, &b);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("Bad binding string %s\n", binding);
-               goto failed;
-       }
+       status = dcerpc_parse_binding(tctx, binding, &b);
+       torture_assert_ntstatus_ok(tctx, status, "Bad binding string");
 
        b->flags &= ~DCERPC_AUTH_OPTIONS;
        b->flags |= dcerpc_flags;
 
-       status = dcerpc_pipe_connect_b(test_ctx, &p, b, &ndr_table_samr,
+       status = dcerpc_pipe_connect_b(tctx, &p, b, &ndr_table_samr,
                                       credentials, NULL);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("Failed to connect with schannel: %s\n", nt_errstr(status));
-               goto failed;
-       }
+       torture_assert_ntstatus_ok(tctx, status, 
+               "Failed to connect with schannel");
 
-       if (!test_samr_ops(p, test_ctx)) {
-               printf("Failed to process schannel secured SAMR ops\n");
-               ret = False;
-       }
+       torture_assert(tctx, test_samr_ops(tctx, p), 
+                      "Failed to process schannel secured SAMR ops");
 
        /* Also test that when we connect to the netlogon pipe, that
         * the credentials we setup on the first pipe are valid for
         * the second */
 
        /* Swap the binding details from SAMR to NETLOGON */
-       status = dcerpc_epm_map_binding(test_ctx, b, &ndr_table_netlogon, NULL);
-       if (!NT_STATUS_IS_OK(status)) {
-               goto failed;
-       }
+       status = dcerpc_epm_map_binding(tctx, b, &ndr_table_netlogon, NULL);
+       torture_assert_ntstatus_ok(tctx, status, "epm map");
 
        status = dcerpc_secondary_connection(p, &p_netlogon, 
                                             b);
-
-       if (!NT_STATUS_IS_OK(status)) {
-               goto failed;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "seconday connection");
 
        status = dcerpc_bind_auth(p_netlogon, &ndr_table_netlogon,
                                  credentials, DCERPC_AUTH_TYPE_SCHANNEL,
                                  dcerpc_auth_level(p->conn),
                                  NULL);
 
-       if (!NT_STATUS_IS_OK(status)) {
-               goto failed;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "bind auth");
 
-       status = dcerpc_schannel_creds(p_netlogon->conn->security_state.generic_state, test_ctx, &creds);
-       if (!NT_STATUS_IS_OK(status)) {
-               goto failed;
-       }
+       status = dcerpc_schannel_creds(p_netlogon->conn->security_state.generic_state, tctx, &creds);
+       torture_assert_ntstatus_ok(tctx, status, "schannel creds");
 
        /* do a couple of logins */
-       if (!test_netlogon_ops(p_netlogon, test_ctx, credentials, creds)) {
-               printf("Failed to process schannel secured NETLOGON ops\n");
-               ret = False;
-       }
+       torture_assert(tctx, test_netlogon_ops(p_netlogon, tctx, credentials, creds),
+               "Failed to process schannel secured NETLOGON ops");
 
-       if (!test_netlogon_ex_ops(p_netlogon, test_ctx, credentials, creds)) {
-               printf("Failed to process schannel secured NETLOGON EX ops\n");
-               ret = False;
-       }
+       torture_assert(tctx, test_netlogon_ex_ops(p_netlogon, tctx, credentials, creds),
+               "Failed to process schannel secured NETLOGON EX ops");
 
        /* Swap the binding details from SAMR to LSARPC */
-       status = dcerpc_epm_map_binding(test_ctx, b, &ndr_table_lsarpc, NULL);
-       if (!NT_STATUS_IS_OK(status)) {
-               goto failed;
-       }
+       status = dcerpc_epm_map_binding(tctx, b, &ndr_table_lsarpc, NULL);
+       torture_assert_ntstatus_ok(tctx, status, "epm map");
 
        status = dcerpc_secondary_connection(p, &p_lsa, 
                                             b);
 
-       if (!NT_STATUS_IS_OK(status)) {
-               goto failed;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "seconday connection");
 
        status = dcerpc_bind_auth(p_lsa, &ndr_table_lsarpc,
                                  credentials, DCERPC_AUTH_TYPE_SCHANNEL,
                                  dcerpc_auth_level(p->conn),
                                  NULL);
 
-       if (!NT_STATUS_IS_OK(status)) {
-               goto failed;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "bind auth");
 
-       if (!test_lsa_ops(p_lsa, test_ctx)) {
-               printf("Failed to process schannel secured LSA ops\n");
-               ret = False;
-       }
+       torture_assert(tctx, test_lsa_ops(tctx, p_lsa), 
+               "Failed to process schannel secured LSA ops");
 
        /* Drop the socket, we want to start from scratch */
        talloc_free(p);
@@ -356,39 +316,28 @@ static BOOL test_schannel(TALLOC_CTX *mem_ctx,
 
        /* Now see what we are still allowed to do */
        
-       status = dcerpc_parse_binding(test_ctx, binding, &b);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("Bad binding string %s\n", binding);
-               goto failed;
-       }
+       status = dcerpc_parse_binding(tctx, binding, &b);
+       torture_assert_ntstatus_ok(tctx, status, "Bad binding string");
 
        b->flags &= ~DCERPC_AUTH_OPTIONS;
        b->flags |= dcerpc_flags;
 
-       status = dcerpc_pipe_connect_b(test_ctx, &p_samr2, b, &ndr_table_samr,
+       status = dcerpc_pipe_connect_b(tctx, &p_samr2, b, &ndr_table_samr,
                                       credentials, NULL);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("Failed to connect with schannel: %s\n", nt_errstr(status));
-               goto failed;
-       }
+       torture_assert_ntstatus_ok(tctx, status, 
+               "Failed to connect with schannel");
 
        /* do a some SAMR operations.  We have *not* done a new serverauthenticate */
-       if (!test_samr_ops(p_samr2, test_ctx)) {
-               printf("Failed to process schannel secured SAMR ops (on fresh connection)\n");
-               goto failed;
-       }
+       torture_assert (tctx, test_samr_ops(tctx, p_samr2), 
+                       "Failed to process schannel secured SAMR ops (on fresh connection)");
 
        /* Swap the binding details from SAMR to NETLOGON */
-       status = dcerpc_epm_map_binding(test_ctx, b, &ndr_table_netlogon, NULL);
-       if (!NT_STATUS_IS_OK(status)) {
-               goto failed;
-       }
+       status = dcerpc_epm_map_binding(tctx, b, &ndr_table_netlogon, NULL);
+       torture_assert_ntstatus_ok(tctx, status, "epm");
 
        status = dcerpc_secondary_connection(p_samr2, &p_netlogon2, 
                                             b);
-       if (!NT_STATUS_IS_OK(status)) {
-               goto failed;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "seconday connection");
 
        /* and now setup an SCHANNEL bind on netlogon */
        status = dcerpc_bind_auth(p_netlogon2, &ndr_table_netlogon,
@@ -396,22 +345,17 @@ static BOOL test_schannel(TALLOC_CTX *mem_ctx,
                                  dcerpc_auth_level(p_samr2->conn),
                                  NULL);
 
-       if (!NT_STATUS_IS_OK(status)) {
-               goto failed;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "auth failed");
        
        /* Try the schannel-only SamLogonEx operation */
-       if (!test_netlogon_ex_ops(p_netlogon2, test_ctx, credentials, creds)) {
-               printf("Failed to process schannel secured NETLOGON EX ops (on fresh connection)\n");
-               ret = False;
-       }
+       torture_assert(tctx, test_netlogon_ex_ops(p_netlogon2, tctx, credentials, creds), 
+                      "Failed to process schannel secured NETLOGON EX ops (on fresh connection)");
+               
 
        /* And the more traditional style, proving that the
         * credentials chaining state is fully present */
-       if (!test_netlogon_ops(p_netlogon2, test_ctx, credentials, creds)) {
-               printf("Failed to process schannel secured NETLOGON ops (on fresh connection)\n");
-               ret = False;
-       }
+       torture_assert(tctx, test_netlogon_ops(p_netlogon2, tctx, credentials, creds),
+                            "Failed to process schannel secured NETLOGON ops (on fresh connection)");
 
        /* Drop the socket, we want to start from scratch (again) */
        talloc_free(p_samr2);
@@ -419,31 +363,22 @@ static BOOL test_schannel(TALLOC_CTX *mem_ctx,
        /* We don't want schannel for this test */
        b->flags &= ~DCERPC_AUTH_OPTIONS;
 
-       status = dcerpc_pipe_connect_b(test_ctx, &p_netlogon3, b, &ndr_table_netlogon,
+       status = dcerpc_pipe_connect_b(tctx, &p_netlogon3, b, &ndr_table_netlogon,
                                       credentials, NULL);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("Failed to connect without schannel: %s\n", nt_errstr(status));
-               goto failed;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "Failed to connect without schannel");
 
-       if (test_netlogon_ex_ops(p_netlogon3, test_ctx, credentials, creds)) {
-               printf("Processed NOT schannel secured NETLOGON EX ops without SCHANNEL (unsafe)\n");
-               ret = False;
-       }
+       torture_assert(tctx, !test_netlogon_ex_ops(p_netlogon3, tctx, credentials, creds),
+                       "Processed NOT schannel secured NETLOGON EX ops without SCHANNEL (unsafe)");
 
-       if (!test_netlogon_ops(p_netlogon3, test_ctx, credentials, creds)) {
-               printf("Failed to processed NOT schannel secured NETLOGON ops without new ServerAuth\n");
-               ret = False;
-       }
+       /* Required because the previous call will mark the current context as having failed */
+       tctx->last_result = TORTURE_OK;
+       tctx->last_reason = NULL;
 
-       torture_leave_domain(join_ctx);
-       talloc_free(test_ctx);
-       return ret;
+       torture_assert(tctx, test_netlogon_ops(p_netlogon3, tctx, credentials, creds),
+                       "Failed to processed NOT schannel secured NETLOGON ops without new ServerAuth");
 
-failed:
        torture_leave_domain(join_ctx);
-       talloc_free(test_ctx);
-       return False;   
+       return true;
 }
 
 
@@ -451,10 +386,9 @@ failed:
 /*
   a schannel test suite
  */
-BOOL torture_rpc_schannel(struct torture_context *torture)
+bool torture_rpc_schannel(struct torture_context *torture)
 {
-       TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
+       bool ret = true;
        struct {
                uint16_t acct_flags;
                uint32_t dcerpc_flags;
@@ -470,112 +404,77 @@ BOOL torture_rpc_schannel(struct torture_context *torture)
        };
        int i;
 
-       mem_ctx = talloc_init("torture_rpc_schannel");
-
        for (i=0;i<ARRAY_SIZE(tests);i++) {
-               if (!test_schannel(mem_ctx
+               if (!test_schannel(torture
                                   tests[i].acct_flags, tests[i].dcerpc_flags,
                                   i)) {
-                       printf("Failed with acct_flags=0x%x dcerpc_flags=0x%x \n",
+                       torture_comment(torture, "Failed with acct_flags=0x%x dcerpc_flags=0x%x \n",
                               tests[i].acct_flags, tests[i].dcerpc_flags);
-                       ret = False;
-                       break;
+                       ret = false;
                }
        }
 
-       talloc_free(mem_ctx);
-
        return ret;
 }
 
 /*
   test two schannel connections
  */
-BOOL torture_rpc_schannel2(struct torture_context *torture)
+bool torture_rpc_schannel2(struct torture_context *torture)
 {
-       BOOL ret = True;
-       TALLOC_CTX *mem_ctx = talloc_new(torture);
        struct test_join *join_ctx;
        NTSTATUS status;
        const char *binding = torture_setting_string(torture, "binding", NULL);
        struct dcerpc_binding *b;
        struct dcerpc_pipe *p1 = NULL, *p2 = NULL;
        struct cli_credentials *credentials1, *credentials2;
-       uint16_t acct_flags = ACB_WSTRUST;
        uint32_t dcerpc_flags = DCERPC_SCHANNEL | DCERPC_SIGN;
-       TALLOC_CTX *test_ctx = talloc_named(mem_ctx, 0, "test_schannel2 context");
-
-       join_ctx = torture_join_domain(talloc_asprintf(mem_ctx, "%s2", TEST_MACHINE_NAME), 
-                                      acct_flags, &credentials1);
-       if (!join_ctx) {
-               printf("Failed to join domain with acct_flags=0x%x\n", acct_flags);
-               talloc_free(test_ctx);
-               return False;
-       }
 
-       credentials2 = talloc_memdup(mem_ctx, credentials1, sizeof(*credentials1));
+       join_ctx = torture_join_domain(talloc_asprintf(torture, "%s2", TEST_MACHINE_NAME), 
+                                      ACB_WSTRUST, &credentials1);
+       torture_assert(torture, join_ctx != NULL, 
+                      "Failed to join domain with acct_flags=ACB_WSTRUST");
+
+       credentials2 = (struct cli_credentials *)talloc_memdup(torture, credentials1, sizeof(*credentials1));
        credentials1->netlogon_creds = NULL;
        credentials2->netlogon_creds = NULL;
 
-       status = dcerpc_parse_binding(test_ctx, binding, &b);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("Bad binding string %s\n", binding);
-               goto failed;
-       }
+       status = dcerpc_parse_binding(torture, binding, &b);
+       torture_assert_ntstatus_ok(torture, status, "Bad binding string");
 
        b->flags &= ~DCERPC_AUTH_OPTIONS;
        b->flags |= dcerpc_flags;
 
        printf("Opening first connection\n");
-       status = dcerpc_pipe_connect_b(test_ctx, &p1, b, &ndr_table_netlogon,
+       status = dcerpc_pipe_connect_b(torture, &p1, b, &ndr_table_netlogon,
                                       credentials1, NULL);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("Failed to connect with schannel: %s\n", nt_errstr(status));
-               goto failed;
-       }
+       torture_assert_ntstatus_ok(torture, status, "Failed to connect with schannel");
 
-       printf("Opening second connection\n");
-       status = dcerpc_pipe_connect_b(test_ctx, &p2, b, &ndr_table_netlogon,
+       torture_comment(torture, "Opening second connection\n");
+       status = dcerpc_pipe_connect_b(torture, &p2, b, &ndr_table_netlogon,
                                       credentials2, NULL);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("Failed to connect with schannel: %s\n", nt_errstr(status));
-               goto failed;
-       }
+       torture_assert_ntstatus_ok(torture, status, "Failed to connect with schannel");
 
        credentials1->netlogon_creds = NULL;
        credentials2->netlogon_creds = NULL;
 
-       printf("Testing logon on pipe1\n");
-       if (!test_netlogon_ex_ops(p1, test_ctx, credentials1, NULL)) {
-               printf("Failed to process schannel secured NETLOGON ops\n");
-               ret = False;
-       }
-
-       printf("Testing logon on pipe2\n");
-       if (!test_netlogon_ex_ops(p2, test_ctx, credentials2, NULL)) {
-               printf("Failed to process schannel secured NETLOGON ops\n");
-               ret = False;
-       }
+       torture_comment(torture, "Testing logon on pipe1\n");
+       if (!test_netlogon_ex_ops(p1, torture, credentials1, NULL))
+               return false;
 
-       printf("Again on pipe1\n");
-       if (!test_netlogon_ex_ops(p1, test_ctx, credentials1, NULL)) {
-               printf("Failed to process schannel secured NETLOGON ops\n");
-               ret = False;
-       }
+       torture_comment(torture, "Testing logon on pipe2\n");
+       if (!test_netlogon_ex_ops(p2, torture, credentials2, NULL))
+               return false;
 
-       printf("Again on pipe2\n");
-       if (!test_netlogon_ex_ops(p2, test_ctx, credentials2, NULL)) {
-               printf("Failed to process schannel secured NETLOGON ops\n");
-               ret = False;
-       }
+       torture_comment(torture, "Again on pipe1\n");
+       if (!test_netlogon_ex_ops(p1, torture, credentials1, NULL))
+               return false;
 
-       torture_leave_domain(join_ctx);
-       talloc_free(test_ctx);
-       return ret;
+       torture_comment(torture, "Again on pipe2\n");
+       if (!test_netlogon_ex_ops(p2, torture, credentials2, NULL))
+               return false;
 
-failed:
        torture_leave_domain(join_ctx);
-       talloc_free(test_ctx);
-       return False;   
+       return true;
 }
 
index c4b31be8a758bc0362471675f695af91774ae723..69dc8da6c1b61b14e7ed0655ba58f17935972518 100644 (file)
 
 #include "libcli/auth/libcli_auth.h"
 #include "torture/rpc/rpc.h"
+#include "lib/cmdline/popt_common.h"
+#include "param/param.h"
 
 static void init_lsa_String(struct lsa_String *name, const char *s)
 {
        name->string = s;
 }
 
-static BOOL test_CreateSecret_basic(struct dcerpc_pipe *p, 
-                                   TALLOC_CTX *mem_ctx, 
+static bool test_CreateSecret_basic(struct dcerpc_pipe *p, 
+                                   struct torture_context *tctx,
                                    struct policy_handle *handle)
 {
        NTSTATUS status;
@@ -44,7 +46,6 @@ static BOOL test_CreateSecret_basic(struct dcerpc_pipe *p,
        struct lsa_DATA_BUF buf1;
        struct lsa_DATA_BUF_PTR bufp1;
        DATA_BLOB enc_key;
-       BOOL ret = True;
        DATA_BLOB session_key;
        NTTIME old_mtime, new_mtime;
        DATA_BLOB blob1, blob2;
@@ -52,9 +53,9 @@ static BOOL test_CreateSecret_basic(struct dcerpc_pipe *p,
        char *secret2;
        char *secname;
 
-       secname = talloc_asprintf(mem_ctx, "torturesecret-%u", (uint_t)random());
+       secname = talloc_asprintf(tctx, "torturesecret-%u", (uint_t)random());
 
-       printf("Testing CreateSecret of %s\n", secname);
+       torture_comment(tctx, "Testing CreateSecret of %s\n", secname);
                
        init_lsa_String(&r.in.name, secname);
        
@@ -62,17 +63,11 @@ static BOOL test_CreateSecret_basic(struct dcerpc_pipe *p,
        r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
        r.out.sec_handle = &sec_handle;
        
-       status = dcerpc_lsa_CreateSecret(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("CreateSecret failed - %s\n", nt_errstr(status));
-               return False;
-       }
+       status = dcerpc_lsa_CreateSecret(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "CreateSecret failed");
        
        status = dcerpc_fetch_session_key(p, &session_key);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("dcerpc_fetch_session_key failed - %s\n", nt_errstr(status));
-               ret = False;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "dcerpc_fetch_session_key failed");
        
        enc_key = sess_encrypt_string(secret1, &session_key);
        
@@ -83,13 +78,10 @@ static BOOL test_CreateSecret_basic(struct dcerpc_pipe *p,
        r3.in.new_val->length = enc_key.length;
        r3.in.new_val->size = enc_key.length;
        
-       printf("Testing SetSecret\n");
+       torture_comment(tctx, "Testing SetSecret\n");
        
-       status = dcerpc_lsa_SetSecret(p, mem_ctx, &r3);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("SetSecret failed - %s\n", nt_errstr(status));
-               ret = False;
-       }
+       status = dcerpc_lsa_SetSecret(p, tctx, &r3);
+       torture_assert_ntstatus_ok(tctx, status, "SetSecret failed");
                
        r3.in.sec_handle = &sec_handle;
        r3.in.new_val = &buf1;
@@ -101,13 +93,11 @@ static BOOL test_CreateSecret_basic(struct dcerpc_pipe *p,
        /* break the encrypted data */
        enc_key.data[0]++;
        
-       printf("Testing SetSecret with broken key\n");
+       torture_comment(tctx, "Testing SetSecret with broken key\n");
        
-       status = dcerpc_lsa_SetSecret(p, mem_ctx, &r3);
-       if (!NT_STATUS_EQUAL(status, NT_STATUS_UNKNOWN_REVISION)) {
-               printf("SetSecret should have failed UNKNOWN_REVISION - %s\n", nt_errstr(status));
-               ret = False;
-       }
+       status = dcerpc_lsa_SetSecret(p, tctx, &r3);
+       torture_assert_ntstatus_equal(tctx, status, NT_STATUS_UNKNOWN_REVISION, 
+               "SetSecret should have failed UNKNOWN_REVISION");
        
        data_blob_free(&enc_key);
        
@@ -123,73 +113,115 @@ static BOOL test_CreateSecret_basic(struct dcerpc_pipe *p,
        
        bufp1.buf = NULL;
        
-       printf("Testing QuerySecret\n");
-       status = dcerpc_lsa_QuerySecret(p, mem_ctx, &r4);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("QuerySecret failed - %s\n", nt_errstr(status));
-               ret = False;
-       } else {
-               if (r4.out.new_val == NULL || r4.out.new_val->buf == NULL) {
-                       printf("No secret buffer returned\n");
-                       ret = False;
-               } else {
-                       blob1.data = r4.out.new_val->buf->data;
-                       blob1.length = r4.out.new_val->buf->size;
-                       
-                       blob2 = data_blob_talloc(mem_ctx, NULL, blob1.length);
-                       
-                       secret2 = sess_decrypt_string(mem_ctx, &blob1, &session_key);
-                       
-                       if (strcmp(secret1, secret2) != 0) {
-                               printf("Returned secret '%s' doesn't match '%s'\n", 
-                                      secret2, secret1);
-                               ret = False;
-                       }
-               }
-       }
+       torture_comment(tctx, "Testing QuerySecret\n");
+       status = dcerpc_lsa_QuerySecret(p, tctx, &r4);
+       torture_assert_ntstatus_ok(tctx, status, "QuerySecret failed");
+       if (r4.out.new_val == NULL || r4.out.new_val->buf == NULL)
+               torture_fail(tctx, "No secret buffer returned");
+       blob1.data = r4.out.new_val->buf->data;
+       blob1.length = r4.out.new_val->buf->size;
+       
+       blob2 = data_blob_talloc(tctx, NULL, blob1.length);
+       
+       secret2 = sess_decrypt_string(tctx, &blob1, &session_key);
+       
+       torture_assert_str_equal(tctx, secret1, secret2, "Returned secret invalid");
 
        d.in.handle = &sec_handle;
-       status = dcerpc_lsa_Delete(p, mem_ctx, &d);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("delete should have returned OKINVALID_HANDLE - %s\n", nt_errstr(status));
-               ret = False;
-       }
-       return ret;
+       status = dcerpc_lsa_Delete(p, tctx, &d);
+       torture_assert_ntstatus_ok(tctx, status, "delete should have returned OKINVALID_HANDLE");
+       return true;
 }
 
+struct secret_settings {
+       uint32_t bindoptions;
+       bool keyexchange;
+       bool ntlm2;
+       bool lm_key;
+};
 
-/* TEST session key correctness by pushing and pulling secrets */
-
-BOOL torture_rpc_lsa_secrets(struct torture_context *torture) 
+static bool test_secrets(struct torture_context *torture, const void *_data)
 {
-        NTSTATUS status;
         struct dcerpc_pipe *p;
-       TALLOC_CTX *mem_ctx;
-       BOOL ret = True;
        struct policy_handle *handle;
+       struct dcerpc_binding *binding;
+       const struct secret_settings *settings = 
+               (const struct secret_settings *)_data;
+
+       lp_set_cmdline(global_loadparm, "ntlmssp client:keyexchange", settings->keyexchange?"True":"False");
+       lp_set_cmdline(global_loadparm, "ntlmssp_client:ntlm2", settings->ntlm2?"True":"False");
+       lp_set_cmdline(global_loadparm, "ntlmssp_client:lm_key", settings->lm_key?"True":"False");
 
-       mem_ctx = talloc_init("torture_rpc_lsa_secrets");
+       torture_assert_ntstatus_ok(torture, torture_rpc_binding(torture, &binding), 
+                                  "Getting bindoptions");
 
-       status = torture_rpc_connection(torture, 
-                                       &p, 
-                                       &ndr_table_lsarpc);
-       if (!NT_STATUS_IS_OK(status)) {
-               talloc_free(mem_ctx);
-               return False;
+       binding->flags |= settings->bindoptions;
+
+       torture_assert_ntstatus_ok(torture, 
+                                  dcerpc_pipe_connect_b(torture, &p, binding, &ndr_table_lsarpc, cmdline_credentials, NULL),
+                                  "connect");
+
+       if (!test_lsa_OpenPolicy2(p, torture, &handle)) {
+               return false;
        }
 
-       if (test_lsa_OpenPolicy2(p, mem_ctx, &handle)) {
-               if (!handle) {
-                       printf("OpenPolicy2 failed.  This test cannot run against this server\n");
-                       ret = False;
-               } else if (!test_CreateSecret_basic(p, mem_ctx, handle)) {
-                       ret = False;
-               }
-       } else {
-               return False;
+       torture_assert(torture, handle, "OpenPolicy2 failed.  This test cannot run against this server");
+       
+       if (!test_CreateSecret_basic(p, torture, handle)) {
+               return false;
        }
 
-       talloc_free(mem_ctx);
+       return true;
+}
+
+static struct torture_tcase *add_test(struct torture_suite *suite, uint32_t bindoptions, 
+                                    bool keyexchange, bool ntlm2, bool lm_key)
+{
+       char *name = NULL;
+       struct secret_settings *settings;
+
+       settings = talloc_zero(suite, struct secret_settings);
+       settings->bindoptions = bindoptions;
+
+       if (bindoptions == DCERPC_PUSH_BIGENDIAN)
+               name = talloc_strdup(suite, "bigendian");
+       else if (bindoptions == DCERPC_SEAL)
+               name = talloc_strdup(suite, "seal");
+       else if (bindoptions == 0) 
+               name = talloc_strdup(suite, "none");
+       else
+               name = talloc_strdup(suite, "unknown");
+
+       name = talloc_asprintf_append_buffer(name, " keyexchange:%s", keyexchange?"yes":"no");
+       settings->keyexchange = keyexchange;
+
+       name = talloc_asprintf_append_buffer(name, " ntlm2:%s", ntlm2?"yes":"no");
+       settings->ntlm2 = ntlm2;
+
+       name = talloc_asprintf_append_buffer(name, " lm_key:%s", lm_key?"yes":"no");
+       settings->lm_key = lm_key;
+
+       return torture_suite_add_simple_tcase(suite, name, test_secrets, settings);
+}
+
+static const bool bool_vals[] = { true, false };
+
+/* TEST session key correctness by pushing and pulling secrets */
+struct torture_suite *torture_rpc_lsa_secrets(TALLOC_CTX *mem_ctx)
+{
+       struct torture_suite *suite = torture_suite_create(mem_ctx, "SECRETS");
+       int keyexchange, ntlm2, lm_key;
+
+       for (keyexchange = 0; keyexchange < ARRAY_SIZE(bool_vals); keyexchange++) {
+               for (ntlm2 = 0; ntlm2 < ARRAY_SIZE(bool_vals); ntlm2++) {
+                       for (lm_key = 0; lm_key < ARRAY_SIZE(bool_vals); lm_key++) {
+                               add_test(suite, DCERPC_PUSH_BIGENDIAN, bool_vals[keyexchange], bool_vals[ntlm2], 
+                                        bool_vals[lm_key]);
+                               add_test(suite, DCERPC_SEAL, bool_vals[keyexchange], bool_vals[ntlm2], bool_vals[lm_key]);
+                               add_test(suite, 0, bool_vals[keyexchange], bool_vals[ntlm2], bool_vals[lm_key]);
+                       }
+               }
+       }
 
-       return ret;
+       return suite;
 }
index 0bf0ee87a1876c7b8f48b9d4544833983e4acd19..9cc42241d202328bcb91ebbe9814c7718188f3d9 100644 (file)
@@ -4,6 +4,7 @@
 
    Copyright (C) Tim Potter 2003
    Copyright (C) Stefan Metzmacher 2005
+   Copyright (C) Jelmer Vernooij 2007
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -25,8 +26,6 @@
 #include "librpc/gen_ndr/ndr_spoolss_c.h"
 
 struct test_spoolss_context {
-       struct dcerpc_pipe *p;
-
        /* print server handle */
        struct policy_handle server_handle;
 
@@ -51,109 +50,58 @@ struct test_spoolss_context {
        union spoolss_PrinterInfo *printers[6];
 };
 
-#define COMPARE_STRING(c,r,e) do {\
-       BOOL _ok = True;\
-       if (c.e && !r.e) _ok = False;\
-       if (!c.e && r.e) _ok = False;\
-       if (c.e && r.e && strcmp_safe(c.e, r.e) != 0) _ok = False;\
-       if (!_ok){\
-               printf("%s: " #c "." #e " [%s] doesn't match " #r "." #e " [%s]\n",\
-                       __location__, c.e, r.e);\
-               ret = False;\
-       }\
-} while(0)
+#define COMPARE_STRING(tctx, c,r,e) \
+       torture_assert_str_equal(tctx, c.e, r.e, "invalid value")
 
 /* not every compiler supports __typeof__() */
 #if (__GNUC__ >= 3)
 #define _CHECK_FIELD_SIZE(c,r,e,type) do {\
        if (sizeof(__typeof__(c.e)) != sizeof(type)) { \
-               printf(__location__ ":" #c "." #e "field is not " #type "\n"); \
-               smb_panic(__location__ ":" #c "." #e "field is not " #type ); \
-               ret = False; \
+               torture_fail(tctx, #c "." #e "field is not " #type "\n"); \
        }\
        if (sizeof(__typeof__(r.e)) != sizeof(type)) { \
-               printf(__location__ ":" #r "." #e "field is not " #type "\n"); \
-               smb_panic(__location__ ":" #r "." #e "field is not " #type ); \
-               ret = False; \
+               torture_fail(tctx, #r "." #e "field is not " #type "\n"); \
        }\
 } while(0)
 #else
 #define _CHECK_FIELD_SIZE(c,r,e,type) do {} while(0)
 #endif
 
-#if 0 /* unused */
-#define COMPARE_UINT16(c,r,e) do {\
-       _CHECK_FIELD_SIZE(c,r,e,uint16_t); \
-       if (c.e != r.e){\
-               printf("%s: " #c "." #e "  0x%04X (%u) doesn't match " #r "." #e " 0x%04X (%u)\n",\
-                       __location__, c.e, c.e, r.e, r.e);\
-               ret = False;\
-       }\
+#define COMPARE_UINT32(tctx, c, r, e) do {\
+       _CHECK_FIELD_SIZE(c, r, e, uint32_t); \
+       torture_assert_int_equal(tctx, c.e, r.e, "invalid value"); \
 } while(0)
-#endif
 
-#define COMPARE_UINT32(c,r,e) do {\
-       _CHECK_FIELD_SIZE(c,r,e,uint32_t); \
-       if (c.e != r.e){\
-               printf("%s: " #c "." #e "  0x%08X (%u) doesn't match " #r "." #e " 0x%08X (%u)\n",\
-                       __location__, c.e, c.e, r.e, r.e);\
-               ret = False;\
-       }\
-} while(0)
+#define COMPARE_STRING_ARRAY(tctx, c,r,e)
 
-#if 0 /* unused */
-#define COMPARE_UINT64(c,r,e) do {\
-       _CHECK_FIELD_SIZE(c,r,e,uint64_t); \
-       if (c.e != r.e){\
-               printf("%s: " #c "." #e "  0x%016llX (%llu) doesn't match " #r "." #e " 0x%016llX (%llu)\n",\
-                       __location__, c.e, c.e, r.e, r.e);\
-               ret = False;\
-       }\
-} while(0)
-#endif
-
-/* TODO: ! */
-#if 0 /* unused */
-#define COMPARE_SEC_DESC(c,r,e)
-#define COMPARE_SPOOLSS_TIME(c,r,e)
-#endif
-#define COMPARE_STRING_ARRAY(c,r,e)
-
-static BOOL test_OpenPrinter_server(struct test_spoolss_context *ctx)
+static bool test_OpenPrinter_server(struct torture_context *tctx, struct dcerpc_pipe *p, struct test_spoolss_context *ctx)
 {
        NTSTATUS status;
        struct spoolss_OpenPrinter op;
-       BOOL ret = True;
 
-       op.in.printername       = talloc_asprintf(ctx, "\\\\%s", dcerpc_server_name(ctx->p));
+       op.in.printername       = talloc_asprintf(ctx, "\\\\%s", dcerpc_server_name(p));
        op.in.datatype          = NULL;
        op.in.devmode_ctr.devmode= NULL;
        op.in.access_mask       = 0;
        op.out.handle           = &ctx->server_handle;
 
-       printf("\nTesting OpenPrinter(%s)\n", op.in.printername);
+       torture_comment(tctx, "Testing OpenPrinter(%s)\n", op.in.printername);
 
-       status = dcerpc_spoolss_OpenPrinter(ctx->p, ctx, &op);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("dcerpc_spoolss_OpenPrinter failed - %s\n", nt_errstr(status));
-               ret = False;
-       }
-       if (!W_ERROR_IS_OK(op.out.result)) {
-               printf("OpenPrinter(%s) failed - %s\n",
-                       op.in.printername, win_errstr(op.out.result));
-               ret = False;
-       }
+       status = dcerpc_spoolss_OpenPrinter(p, ctx, &op);
+       torture_assert_ntstatus_ok(tctx, status, "dcerpc_spoolss_OpenPrinter failed");
+       torture_assert_werr_ok(tctx, op.out.result, "dcerpc_spoolss_OpenPrinter failed"); 
 
-       return ret;
+       return true;
 }
 
-static BOOL test_EnumPorts(struct test_spoolss_context *ctx)
+static bool test_EnumPorts(struct torture_context *tctx, 
+                          struct dcerpc_pipe *p, 
+                          struct test_spoolss_context *ctx)
 {
        NTSTATUS status;
        struct spoolss_EnumPorts r;
        uint16_t levels[] = { 1, 2 };
        int i, j;
-       BOOL ret = True;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                int level = levels[i];
@@ -164,43 +112,26 @@ static BOOL test_EnumPorts(struct test_spoolss_context *ctx)
                r.in.buffer = NULL;
                r.in.offered = 0;
 
-               printf("Testing EnumPorts level %u\n", r.in.level);
+               torture_comment(tctx, "Testing EnumPorts level %u\n", r.in.level);
 
-               status = dcerpc_spoolss_EnumPorts(ctx->p, ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("dcerpc_spoolss_EnumPorts failed - %s\n", nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
+               status = dcerpc_spoolss_EnumPorts(p, ctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "dcerpc_spoolss_EnumPorts failed");
                if (W_ERROR_IS_OK(r.out.result)) {
                        /* TODO: do some more checks here */
                        continue;
                }
-               if (!W_ERROR_EQUAL(r.out.result, WERR_INSUFFICIENT_BUFFER)) {
-                       printf("EnumPorts unexspected return code %s, should be WERR_INSUFFICIENT_BUFFER\n",
-                               win_errstr(r.out.result));
-                       ret = False;
-                       continue;
-               }
+               torture_assert_werr_equal(tctx, r.out.result, WERR_INSUFFICIENT_BUFFER, 
+                       "EnumPorts unexpected return code");
 
                blob = data_blob_talloc(ctx, NULL, r.out.needed);
                data_blob_clear(&blob);
                r.in.buffer = &blob;
                r.in.offered = r.out.needed;
 
-               status = dcerpc_spoolss_EnumPorts(ctx->p, ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("dcerpc_spoolss_EnumPorts failed - %s\n", nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
+               status = dcerpc_spoolss_EnumPorts(p, ctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "dcerpc_spoolss_EnumPorts failed");
 
-               if (!W_ERROR_IS_OK(r.out.result)) {
-                       printf("EnumPorts failed - %s\n",
-                               win_errstr(r.out.result));
-                       ret = False;
-                       continue;
-               }
+               torture_assert_werr_ok(tctx, r.out.result, "EnumPorts failed");
 
                ctx->port_count[level]  = r.out.count;
                ctx->ports[level]       = r.out.info;
@@ -209,14 +140,10 @@ static BOOL test_EnumPorts(struct test_spoolss_context *ctx)
        for (i=1;i<ARRAY_SIZE(levels);i++) {
                int level = levels[i];
                int old_level = levels[i-1];
-               if (ctx->port_count[level] != ctx->port_count[old_level]) {
-                       printf("EnumPorts level[%d] returns [%u] ports, but level[%d] returns [%u]\n",
-                               level, ctx->port_count[level], old_level, ctx->port_count[old_level]);
-                       ret = False;
-               }
+               torture_assert_int_equal(tctx, ctx->port_count[level], ctx->port_count[old_level], 
+                       "EnumPorts invalid value");
        }
        /* if the array sizes are not the same we would maybe segfault in the following code */
-       if (!ret) return ret;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                int level = levels[i];
@@ -225,7 +152,7 @@ static BOOL test_EnumPorts(struct test_spoolss_context *ctx)
                        union spoolss_PortInfo *ref = &ctx->ports[2][j];
                        switch (level) {
                        case 1:
-                               COMPARE_STRING(cur->info1, ref->info2, port_name);
+                               COMPARE_STRING(tctx, cur->info1, ref->info2, port_name);
                                break;
                        case 2:
                                /* level 2 is our reference, and it makes no sense to compare it to itself */
@@ -234,10 +161,12 @@ static BOOL test_EnumPorts(struct test_spoolss_context *ctx)
                }
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_GetPrinterDriverDirectory(struct test_spoolss_context *ctx)
+static bool test_GetPrinterDriverDirectory(struct torture_context *tctx, 
+                                          struct dcerpc_pipe *p, 
+                                          struct test_spoolss_context *ctx)
 {
        NTSTATUS status;
        struct spoolss_GetPrinterDriverDirectory r;
@@ -255,14 +184,13 @@ static BOOL test_GetPrinterDriverDirectory(struct test_spoolss_context *ctx)
                        .server = ""
                },{
                        .level  = 1,
-                       .server = talloc_asprintf(ctx, "\\\\%s", dcerpc_server_name(ctx->p))
+                       .server = talloc_asprintf(ctx, "\\\\%s", dcerpc_server_name(p))
                },{
                        .level  = 1024,
-                       .server = talloc_asprintf(ctx, "\\\\%s", dcerpc_server_name(ctx->p))
+                       .server = talloc_asprintf(ctx, "\\\\%s", dcerpc_server_name(p))
                }
        };
        int i;
-       BOOL ret = True;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                int level = levels[i].level;
@@ -274,51 +202,36 @@ static BOOL test_GetPrinterDriverDirectory(struct test_spoolss_context *ctx)
                r.in.buffer             = NULL;
                r.in.offered            = 0;
 
-               printf("Testing GetPrinterDriverDirectory level %u\n", r.in.level);
+               torture_comment(tctx, "Testing GetPrinterDriverDirectory level %u\n", r.in.level);
 
-               status = dcerpc_spoolss_GetPrinterDriverDirectory(ctx->p, ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("dcerpc_spoolss_GetPrinterDriverDirectory failed - %s\n", nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
-               if (!W_ERROR_EQUAL(r.out.result, WERR_INSUFFICIENT_BUFFER)) {
-                       printf("GetPrinterDriverDirectory unexspected return code %s, should be WERR_INSUFFICIENT_BUFFER\n",
-                               win_errstr(r.out.result));
-                       ret = False;
-                       continue;
-               }
+               status = dcerpc_spoolss_GetPrinterDriverDirectory(p, ctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, 
+                       "dcerpc_spoolss_GetPrinterDriverDirectory failed");
+               torture_assert_werr_equal(tctx, r.out.result, WERR_INSUFFICIENT_BUFFER, 
+                       "GetPrinterDriverDirectory unexpected return code");
 
                blob = data_blob_talloc(ctx, NULL, r.out.needed);
                data_blob_clear(&blob);
                r.in.buffer = &blob;
                r.in.offered = r.out.needed;
 
-               status = dcerpc_spoolss_GetPrinterDriverDirectory(ctx->p, ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("dcerpc_spoolss_GetPrinterDriverDirectory failed - %s\n", nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
+               status = dcerpc_spoolss_GetPrinterDriverDirectory(p, ctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "dcerpc_spoolss_GetPrinterDriverDirectory failed");
 
-               if (!W_ERROR_IS_OK(r.out.result)) {
-                       printf("GetPrinterDriverDirectory failed - %s\n",
-                               win_errstr(r.out.result));
-                       ret = False;
-                       continue;
-               }
+               torture_assert_werr_ok(tctx, r.out.result, "GetPrinterDriverDirectory failed");
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_EnumPrinterDrivers(struct test_spoolss_context *ctx)
+static bool test_EnumPrinterDrivers(struct torture_context *tctx, 
+                                   struct dcerpc_pipe *p,
+                                   struct test_spoolss_context *ctx)
 {
        NTSTATUS status;
        struct spoolss_EnumPrinterDrivers r;
        uint16_t levels[] = { 1, 2, 3, 4, 5, 6 };
        int i, j;
-       BOOL ret = True;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                int level = levels[i];
@@ -330,43 +243,27 @@ static BOOL test_EnumPrinterDrivers(struct test_spoolss_context *ctx)
                r.in.buffer             = NULL;
                r.in.offered            = 0;
 
-               printf("Testing EnumPrinterDrivers level %u\n", r.in.level);
+               torture_comment(tctx, "Testing EnumPrinterDrivers level %u\n", r.in.level);
 
-               status = dcerpc_spoolss_EnumPrinterDrivers(ctx->p, ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("dcerpc_spoolss_EnumPrinterDrivers failed - %s\n", nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
+               status = dcerpc_spoolss_EnumPrinterDrivers(p, ctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, 
+                                          "dcerpc_spoolss_EnumPrinterDrivers failed");
                if (W_ERROR_IS_OK(r.out.result)) {
                        /* TODO: do some more checks here */
                        continue;
                }
-               if (!W_ERROR_EQUAL(r.out.result, WERR_INSUFFICIENT_BUFFER)) {
-                       printf("EnumPrinterDrivers unexspected return code %s, should be WERR_INSUFFICIENT_BUFFER\n",
-                               win_errstr(r.out.result));
-                       ret = False;
-                       continue;
-               }
+               torture_assert_werr_equal(tctx, r.out.result, WERR_INSUFFICIENT_BUFFER, 
+                       "EnumPrinterDrivers failed");
 
                blob = data_blob_talloc(ctx, NULL, r.out.needed);
                data_blob_clear(&blob);
                r.in.buffer = &blob;
                r.in.offered = r.out.needed;
 
-               status = dcerpc_spoolss_EnumPrinterDrivers(ctx->p, ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("dcerpc_spoolss_EnumPrinterDrivers failed - %s\n", nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
+               status = dcerpc_spoolss_EnumPrinterDrivers(p, ctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "dcerpc_spoolss_EnumPrinterDrivers failed");
 
-               if (!W_ERROR_IS_OK(r.out.result)) {
-                       printf("EnumPrinterDrivers failed - %s\n",
-                               win_errstr(r.out.result));
-                       ret = False;
-                       continue;
-               }
+               torture_assert_werr_ok(tctx, r.out.result, "EnumPrinterDrivers failed");
 
                ctx->driver_count[level]        = r.out.count;
                ctx->drivers[level]             = r.out.info;
@@ -375,14 +272,9 @@ static BOOL test_EnumPrinterDrivers(struct test_spoolss_context *ctx)
        for (i=1;i<ARRAY_SIZE(levels);i++) {
                int level = levels[i];
                int old_level = levels[i-1];
-               if (ctx->driver_count[level] != ctx->driver_count[old_level]) {
-                       printf("EnumPrinterDrivers level[%d] returns [%u] drivers, but level[%d] returns [%u]\n",
-                               level, ctx->driver_count[level], old_level, ctx->driver_count[old_level]);
-                       ret = False;
-               }
+               torture_assert_int_equal(tctx, ctx->driver_count[level], ctx->driver_count[old_level],
+                       "EnumPrinterDrivers invalid value");
        }
-       /* if the array sizes are not the same we would maybe segfault in the following code */
-       if (!ret) return ret;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                int level = levels[i];
@@ -391,51 +283,51 @@ static BOOL test_EnumPrinterDrivers(struct test_spoolss_context *ctx)
                        union spoolss_DriverInfo *ref = &ctx->drivers[6][j];
                        switch (level) {
                        case 1:
-                               COMPARE_STRING(cur->info1, ref->info6, driver_name);
+                               COMPARE_STRING(tctx, cur->info1, ref->info6, driver_name);
                                break;
                        case 2:
-                               COMPARE_UINT32(cur->info2, ref->info6, version);
-                               COMPARE_STRING(cur->info2, ref->info6, driver_name);
-                               COMPARE_STRING(cur->info2, ref->info6, architecture);
-                               COMPARE_STRING(cur->info2, ref->info6, driver_path);
-                               COMPARE_STRING(cur->info2, ref->info6, data_file);
-                               COMPARE_STRING(cur->info2, ref->info6, config_file);
+                               COMPARE_UINT32(tctx, cur->info2, ref->info6, version);
+                               COMPARE_STRING(tctx, cur->info2, ref->info6, driver_name);
+                               COMPARE_STRING(tctx, cur->info2, ref->info6, architecture);
+                               COMPARE_STRING(tctx, cur->info2, ref->info6, driver_path);
+                               COMPARE_STRING(tctx, cur->info2, ref->info6, data_file);
+                               COMPARE_STRING(tctx, cur->info2, ref->info6, config_file);
                                break;
                        case 3:
-                               COMPARE_UINT32(cur->info3, ref->info6, version);
-                               COMPARE_STRING(cur->info3, ref->info6, driver_name);
-                               COMPARE_STRING(cur->info3, ref->info6, architecture);
-                               COMPARE_STRING(cur->info3, ref->info6, driver_path);
-                               COMPARE_STRING(cur->info3, ref->info6, data_file);
-                               COMPARE_STRING(cur->info3, ref->info6, config_file);
-                               COMPARE_STRING(cur->info3, ref->info6, help_file);
-                               COMPARE_STRING_ARRAY(cur->info3, ref->info6, dependent_files);
-                               COMPARE_STRING(cur->info3, ref->info6, monitor_name);
-                               COMPARE_STRING(cur->info3, ref->info6, default_datatype);
+                               COMPARE_UINT32(tctx, cur->info3, ref->info6, version);
+                               COMPARE_STRING(tctx, cur->info3, ref->info6, driver_name);
+                               COMPARE_STRING(tctx, cur->info3, ref->info6, architecture);
+                               COMPARE_STRING(tctx, cur->info3, ref->info6, driver_path);
+                               COMPARE_STRING(tctx, cur->info3, ref->info6, data_file);
+                               COMPARE_STRING(tctx, cur->info3, ref->info6, config_file);
+                               COMPARE_STRING(tctx, cur->info3, ref->info6, help_file);
+                               COMPARE_STRING_ARRAY(tctx, cur->info3, ref->info6, dependent_files);
+                               COMPARE_STRING(tctx, cur->info3, ref->info6, monitor_name);
+                               COMPARE_STRING(tctx, cur->info3, ref->info6, default_datatype);
                                break;
                        case 4:
-                               COMPARE_UINT32(cur->info4, ref->info6, version);
-                               COMPARE_STRING(cur->info4, ref->info6, driver_name);
-                               COMPARE_STRING(cur->info4, ref->info6, architecture);
-                               COMPARE_STRING(cur->info4, ref->info6, driver_path);
-                               COMPARE_STRING(cur->info4, ref->info6, data_file);
-                               COMPARE_STRING(cur->info4, ref->info6, config_file);
-                               COMPARE_STRING(cur->info4, ref->info6, help_file);
-                               COMPARE_STRING_ARRAY(cur->info4, ref->info6, dependent_files);
-                               COMPARE_STRING(cur->info4, ref->info6, monitor_name);
-                               COMPARE_STRING(cur->info4, ref->info6, default_datatype);
-                               COMPARE_STRING_ARRAY(cur->info4, ref->info6, previous_names);
+                               COMPARE_UINT32(tctx, cur->info4, ref->info6, version);
+                               COMPARE_STRING(tctx, cur->info4, ref->info6, driver_name);
+                               COMPARE_STRING(tctx, cur->info4, ref->info6, architecture);
+                               COMPARE_STRING(tctx, cur->info4, ref->info6, driver_path);
+                               COMPARE_STRING(tctx, cur->info4, ref->info6, data_file);
+                               COMPARE_STRING(tctx, cur->info4, ref->info6, config_file);
+                               COMPARE_STRING(tctx, cur->info4, ref->info6, help_file);
+                               COMPARE_STRING_ARRAY(tctx, cur->info4, ref->info6, dependent_files);
+                               COMPARE_STRING(tctx, cur->info4, ref->info6, monitor_name);
+                               COMPARE_STRING(tctx, cur->info4, ref->info6, default_datatype);
+                               COMPARE_STRING_ARRAY(tctx, cur->info4, ref->info6, previous_names);
                                break;
                        case 5:
-                               COMPARE_UINT32(cur->info5, ref->info6, version);
-                               COMPARE_STRING(cur->info5, ref->info6, driver_name);
-                               COMPARE_STRING(cur->info5, ref->info6, architecture);
-                               COMPARE_STRING(cur->info5, ref->info6, driver_path);
-                               COMPARE_STRING(cur->info5, ref->info6, data_file);
-                               COMPARE_STRING(cur->info5, ref->info6, config_file);
-                               /*COMPARE_UINT32(cur->info5, ref->info6, driver_attributes);*/
-                               /*COMPARE_UINT32(cur->info5, ref->info6, config_version);*/
-                               /*TODO: ! COMPARE_UINT32(cur->info5, ref->info6, driver_version); */
+                               COMPARE_UINT32(tctx, cur->info5, ref->info6, version);
+                               COMPARE_STRING(tctx, cur->info5, ref->info6, driver_name);
+                               COMPARE_STRING(tctx, cur->info5, ref->info6, architecture);
+                               COMPARE_STRING(tctx, cur->info5, ref->info6, driver_path);
+                               COMPARE_STRING(tctx, cur->info5, ref->info6, data_file);
+                               COMPARE_STRING(tctx, cur->info5, ref->info6, config_file);
+                               /*COMPARE_UINT32(tctx, cur->info5, ref->info6, driver_attributes);*/
+                               /*COMPARE_UINT32(tctx, cur->info5, ref->info6, config_version);*/
+                               /*TODO: ! COMPARE_UINT32(tctx, cur->info5, ref->info6, driver_version); */
                                break;
                        case 6:
                                /* level 6 is our reference, and it makes no sense to compare it to itself */
@@ -444,16 +336,17 @@ static BOOL test_EnumPrinterDrivers(struct test_spoolss_context *ctx)
                }
        }
 
-       return ret;
+       return true;
 }
 
-static BOOL test_EnumMonitors(struct test_spoolss_context *ctx)
+static bool test_EnumMonitors(struct torture_context *tctx, 
+                             struct dcerpc_pipe *p, 
+                             struct test_spoolss_context *ctx)
 {
        NTSTATUS status;
        struct spoolss_EnumMonitors r;
        uint16_t levels[] = { 1, 2 };
        int i, j;
-       BOOL ret = True;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                int level = levels[i];
@@ -464,43 +357,26 @@ static BOOL test_EnumMonitors(struct test_spoolss_context *ctx)
                r.in.buffer = NULL;
                r.in.offered = 0;
 
-               printf("Testing EnumMonitors level %u\n", r.in.level);
+               torture_comment(tctx, "Testing EnumMonitors level %u\n", r.in.level);
 
-               status = dcerpc_spoolss_EnumMonitors(ctx->p, ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("dcerpc_spoolss_EnumMonitors failed - %s\n", nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
+               status = dcerpc_spoolss_EnumMonitors(p, ctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "dcerpc_spoolss_EnumMonitors failed");
                if (W_ERROR_IS_OK(r.out.result)) {
                        /* TODO: do some more checks here */
                        continue;
                }
-               if (!W_ERROR_EQUAL(r.out.result, WERR_INSUFFICIENT_BUFFER)) {
-                       printf("EnumMonitors unexspected return code %s, should be WERR_INSUFFICIENT_BUFFER\n",
-                               win_errstr(r.out.result));
-                       ret = False;
-                       continue;
-               }
+               torture_assert_werr_equal(tctx, r.out.result, WERR_INSUFFICIENT_BUFFER, 
+                       "EnumMonitors failed");
 
                blob = data_blob_talloc(ctx, NULL, r.out.needed);
                data_blob_clear(&blob);
                r.in.buffer = &blob;
                r.in.offered = r.out.needed;
 
-               status = dcerpc_spoolss_EnumMonitors(ctx->p, ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("dcerpc_spoolss_EnumMonitors failed - %s\n", nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
+               status = dcerpc_spoolss_EnumMonitors(p, ctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "dcerpc_spoolss_EnumMonitors failed");
 
-               if (!W_ERROR_IS_OK(r.out.result)) {
-                       printf("EnumMonitors failed - %s\n",
-                               win_errstr(r.out.result));
-                       ret = False;
-                       continue;
-               }
+               torture_assert_werr_ok(tctx, r.out.result, "EnumMonitors failed");
 
                ctx->monitor_count[level]       = r.out.count;
                ctx->monitors[level]            = r.out.info;
@@ -509,14 +385,9 @@ static BOOL test_EnumMonitors(struct test_spoolss_context *ctx)
        for (i=1;i<ARRAY_SIZE(levels);i++) {
                int level = levels[i];
                int old_level = levels[i-1];
-               if (ctx->monitor_count[level] != ctx->monitor_count[old_level]) {
-                       printf("EnumMonitors level[%d] returns [%u] monitors, but level[%d] returns [%u]\n",
-                               level, ctx->monitor_count[level], old_level, ctx->monitor_count[old_level]);
-                       ret = False;
-               }
+               torture_assert_int_equal(tctx, ctx->monitor_count[level], ctx->monitor_count[old_level], 
+                                        "EnumMonitors invalid value");
        }
-       /* if the array sizes are not the same we would maybe segfault in the following code */
-       if (!ret) return ret;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                int level = levels[i];
@@ -525,7 +396,7 @@ static BOOL test_EnumMonitors(struct test_spoolss_context *ctx)
                        union spoolss_MonitorInfo *ref = &ctx->monitors[2][j];
                        switch (level) {
                        case 1:
-                               COMPARE_STRING(cur->info1, ref->info2, monitor_name);
+                               COMPARE_STRING(tctx, cur->info1, ref->info2, monitor_name);
                                break;
                        case 2:
                                /* level 2 is our reference, and it makes no sense to compare it to itself */
@@ -534,16 +405,17 @@ static BOOL test_EnumMonitors(struct test_spoolss_context *ctx)
                }
        }
 
-       return ret;
+       return true;
 }
 
-static BOOL test_EnumPrintProcessors(struct test_spoolss_context *ctx)
+static bool test_EnumPrintProcessors(struct torture_context *tctx, 
+                                    struct dcerpc_pipe *p,
+                                    struct test_spoolss_context *ctx)
 {
        NTSTATUS status;
        struct spoolss_EnumPrintProcessors r;
        uint16_t levels[] = { 1 };
        int i, j;
-       BOOL ret = True;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                int level = levels[i];
@@ -555,43 +427,26 @@ static BOOL test_EnumPrintProcessors(struct test_spoolss_context *ctx)
                r.in.buffer = NULL;
                r.in.offered = 0;
 
-               printf("Testing EnumPrintProcessors level %u\n", r.in.level);
+               torture_comment(tctx, "Testing EnumPrintProcessors level %u\n", r.in.level);
 
-               status = dcerpc_spoolss_EnumPrintProcessors(ctx->p, ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("dcerpc_spoolss_EnumPrintProcessors failed - %s\n", nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
+               status = dcerpc_spoolss_EnumPrintProcessors(p, ctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "dcerpc_spoolss_EnumPrintProcessors failed");
                if (W_ERROR_IS_OK(r.out.result)) {
                        /* TODO: do some more checks here */
                        continue;
                }
-               if (!W_ERROR_EQUAL(r.out.result, WERR_INSUFFICIENT_BUFFER)) {
-                       printf("EnumPrintProcessors unexspected return code %s, should be WERR_INSUFFICIENT_BUFFER\n",
-                               win_errstr(r.out.result));
-                       ret = False;
-                       continue;
-               }
+               torture_assert_werr_equal(tctx, r.out.result, WERR_INSUFFICIENT_BUFFER, 
+                       "EnumPrintProcessors unexpected return code");
 
                blob = data_blob_talloc(ctx, NULL, r.out.needed);
                data_blob_clear(&blob);
                r.in.buffer = &blob;
                r.in.offered = r.out.needed;
 
-               status = dcerpc_spoolss_EnumPrintProcessors(ctx->p, ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("dcerpc_spoolss_EnumPrintProcessors failed - %s\n", nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
+               status = dcerpc_spoolss_EnumPrintProcessors(p, ctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "dcerpc_spoolss_EnumPrintProcessors failed");
 
-               if (!W_ERROR_IS_OK(r.out.result)) {
-                       printf("EnumPrintProcessors failed - %s\n",
-                               win_errstr(r.out.result));
-                       ret = False;
-                       continue;
-               }
+               torture_assert_werr_ok(tctx, r.out.result, "EnumPrintProcessors failed");
 
                ctx->print_processor_count[level]       = r.out.count;
                ctx->print_processors[level]            = r.out.info;
@@ -600,14 +455,9 @@ static BOOL test_EnumPrintProcessors(struct test_spoolss_context *ctx)
        for (i=1;i<ARRAY_SIZE(levels);i++) {
                int level = levels[i];
                int old_level = levels[i-1];
-               if (ctx->print_processor_count[level] != ctx->print_processor_count[old_level]) {
-                       printf("EnumPrintProcessors level[%d] returns [%u] print_processors, but level[%d] returns [%u]\n",
-                               level, ctx->print_processor_count[level], old_level, ctx->print_processor_count[old_level]);
-                       ret = False;
-               }
+               torture_assert_int_equal(tctx, ctx->print_processor_count[level], ctx->print_processor_count[old_level],
+                       "EnumPrintProcessors failed");
        }
-       /* if the array sizes are not the same we would maybe segfault in the following code */
-       if (!ret) return ret;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                int level = levels[i];
@@ -624,16 +474,17 @@ static BOOL test_EnumPrintProcessors(struct test_spoolss_context *ctx)
                }
        }
 
-       return ret;
+       return true;
 }
 
-static BOOL test_EnumPrinters(struct test_spoolss_context *ctx)
+static bool test_EnumPrinters(struct torture_context *tctx, 
+                             struct dcerpc_pipe *p,
+                             struct test_spoolss_context *ctx)
 {
        struct spoolss_EnumPrinters r;
        NTSTATUS status;
        uint16_t levels[] = { 0, 1, 2, 4, 5 };
        int i, j;
-       BOOL ret = True;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                int level = levels[i];
@@ -645,42 +496,26 @@ static BOOL test_EnumPrinters(struct test_spoolss_context *ctx)
                r.in.buffer     = NULL;
                r.in.offered    = 0;
 
-               printf("\nTesting EnumPrinters level %u\n", r.in.level);
+               torture_comment(tctx, "Testing EnumPrinters level %u\n", r.in.level);
 
-               status = dcerpc_spoolss_EnumPrinters(ctx->p, ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("dcerpc_spoolss_EnumPrinters failed - %s\n", nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
+               status = dcerpc_spoolss_EnumPrinters(p, ctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "dcerpc_spoolss_EnumPrinters failed");
                if (W_ERROR_IS_OK(r.out.result)) {
                        /* TODO: do some more checks here */
                        continue;
                }
-               if (!W_ERROR_EQUAL(r.out.result, WERR_INSUFFICIENT_BUFFER)) {
-                       printf("EnumPrinters unexspected return code %s, should be WERR_INSUFFICIENT_BUFFER\n",
-                               win_errstr(r.out.result));
-                       ret = False;
-                       continue;
-               }
+               torture_assert_werr_equal(tctx, r.out.result, WERR_INSUFFICIENT_BUFFER, 
+                       "EnumPrinters unexpected return code");
 
                blob = data_blob_talloc(ctx, NULL, r.out.needed);
                data_blob_clear(&blob);
                r.in.buffer = &blob;
                r.in.offered = r.out.needed;
 
-               status = dcerpc_spoolss_EnumPrinters(ctx->p, ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("dcerpc_spoolss_EnumPrinters failed - %s\n", nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
+               status = dcerpc_spoolss_EnumPrinters(p, ctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "dcerpc_spoolss_EnumPrinters failed");
 
-               if (!W_ERROR_IS_OK(r.out.result)) {
-                       printf("EnumPrinters failed - %s\n", 
-                              win_errstr(r.out.result));
-                       continue;
-               }
+               torture_assert_werr_ok(tctx, r.out.result, "EnumPrinters failed");
 
                ctx->printer_count[level]       = r.out.count;
                ctx->printers[level]            = r.out.info;
@@ -689,14 +524,9 @@ static BOOL test_EnumPrinters(struct test_spoolss_context *ctx)
        for (i=1;i<ARRAY_SIZE(levels);i++) {
                int level = levels[i];
                int old_level = levels[i-1];
-               if (ctx->printer_count[level] != ctx->printer_count[old_level]) {
-                       printf("EnumPrinters level[%d] returns [%u] printers, but level[%d] returns [%u]\n",
-                               level, ctx->printer_count[level], old_level, ctx->printer_count[old_level]);
-                       ret = False;
-               }
+               torture_assert_int_equal(tctx, ctx->printer_count[level], ctx->printer_count[old_level],
+                                        "EnumPrinters invalid value");
        }
-       /* if the array sizes are not the same we would maybe segfault in the following code */
-       if (!ret) return ret;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                int level = levels[i];
@@ -705,56 +535,56 @@ static BOOL test_EnumPrinters(struct test_spoolss_context *ctx)
                        union spoolss_PrinterInfo *ref = &ctx->printers[2][j];
                        switch (level) {
                        case 0:
-                               COMPARE_STRING(cur->info0, ref->info2, printername);
-                               COMPARE_STRING(cur->info0, ref->info2, servername);
-                               COMPARE_UINT32(cur->info0, ref->info2, cjobs);
-                               /*COMPARE_UINT32(cur->info0, ref->info2, total_jobs);
-                               COMPARE_UINT32(cur->info0, ref->info2, total_bytes);
+                               COMPARE_STRING(tctx, cur->info0, ref->info2, printername);
+                               COMPARE_STRING(tctx, cur->info0, ref->info2, servername);
+                               COMPARE_UINT32(tctx, cur->info0, ref->info2, cjobs);
+                               /*COMPARE_UINT32(tctx, cur->info0, ref->info2, total_jobs);
+                               COMPARE_UINT32(tctx, cur->info0, ref->info2, total_bytes);
                                COMPARE_SPOOLSS_TIME(cur->info0, ref->info2, spoolss_Time time);                
-                               COMPARE_UINT32(cur->info0, ref->info2, global_counter);
-                               COMPARE_UINT32(cur->info0, ref->info2, total_pages);
-                               COMPARE_UINT32(cur->info0, ref->info2, version);
-                               COMPARE_UINT32(cur->info0, ref->info2, unknown10);
-                               COMPARE_UINT32(cur->info0, ref->info2, unknown11);
-                               COMPARE_UINT32(cur->info0, ref->info2, unknown12);
-                               COMPARE_UINT32(cur->info0, ref->info2, session_counter);
-                               COMPARE_UINT32(cur->info0, ref->info2, unknown14);
-                               COMPARE_UINT32(cur->info0, ref->info2, printer_errors);
-                               COMPARE_UINT32(cur->info0, ref->info2, unknown16);
-                               COMPARE_UINT32(cur->info0, ref->info2, unknown17);
-                               COMPARE_UINT32(cur->info0, ref->info2, unknown18);
-                               COMPARE_UINT32(cur->info0, ref->info2, unknown19);
-                               COMPARE_UINT32(cur->info0, ref->info2, change_id);
-                               COMPARE_UINT32(cur->info0, ref->info2, unknown21);*/
-                               COMPARE_UINT32(cur->info0, ref->info2, status);
-                               /*COMPARE_UINT32(cur->info0, ref->info2, unknown23);
-                               COMPARE_UINT32(cur->info0, ref->info2, c_setprinter);
+                               COMPARE_UINT32(tctx, cur->info0, ref->info2, global_counter);
+                               COMPARE_UINT32(tctx, cur->info0, ref->info2, total_pages);
+                               COMPARE_UINT32(tctx, cur->info0, ref->info2, version);
+                               COMPARE_UINT32(tctx, cur->info0, ref->info2, unknown10);
+                               COMPARE_UINT32(tctx, cur->info0, ref->info2, unknown11);
+                               COMPARE_UINT32(tctx, cur->info0, ref->info2, unknown12);
+                               COMPARE_UINT32(tctx, cur->info0, ref->info2, session_counter);
+                               COMPARE_UINT32(tctx, cur->info0, ref->info2, unknown14);
+                               COMPARE_UINT32(tctx, cur->info0, ref->info2, printer_errors);
+                               COMPARE_UINT32(tctx, cur->info0, ref->info2, unknown16);
+                               COMPARE_UINT32(tctx, cur->info0, ref->info2, unknown17);
+                               COMPARE_UINT32(tctx, cur->info0, ref->info2, unknown18);
+                               COMPARE_UINT32(tctx, cur->info0, ref->info2, unknown19);
+                               COMPARE_UINT32(tctx, cur->info0, ref->info2, change_id);
+                               COMPARE_UINT32(tctx, cur->info0, ref->info2, unknown21);*/
+                               COMPARE_UINT32(tctx, cur->info0, ref->info2, status);
+                               /*COMPARE_UINT32(tctx, cur->info0, ref->info2, unknown23);
+                               COMPARE_UINT32(tctx, cur->info0, ref->info2, c_setprinter);
                                COMPARE_UINT16(cur->info0, ref->info2, unknown25);
                                COMPARE_UINT16(cur->info0, ref->info2, unknown26);
-                               COMPARE_UINT32(cur->info0, ref->info2, unknown27);
-                               COMPARE_UINT32(cur->info0, ref->info2, unknown28);
-                               COMPARE_UINT32(cur->info0, ref->info2, unknown29);*/
+                               COMPARE_UINT32(tctx, cur->info0, ref->info2, unknown27);
+                               COMPARE_UINT32(tctx, cur->info0, ref->info2, unknown28);
+                               COMPARE_UINT32(tctx, cur->info0, ref->info2, unknown29);*/
                                break;
                        case 1:
-                               /*COMPARE_UINT32(cur->info1, ref->info2, flags);*/
-                               /*COMPARE_STRING(cur->info1, ref->info2, name);*/
-                               /*COMPARE_STRING(cur->info1, ref->info2, description);*/
-                               COMPARE_STRING(cur->info1, ref->info2, comment);
+                               /*COMPARE_UINT32(tctx, cur->info1, ref->info2, flags);*/
+                               /*COMPARE_STRING(tctx, cur->info1, ref->info2, name);*/
+                               /*COMPARE_STRING(tctx, cur->info1, ref->info2, description);*/
+                               COMPARE_STRING(tctx, cur->info1, ref->info2, comment);
                                break;
                        case 2:
                                /* level 2 is our reference, and it makes no sense to compare it to itself */
                                break;
                        case 4:
-                               COMPARE_STRING(cur->info4, ref->info2, printername);
-                               COMPARE_STRING(cur->info4, ref->info2, servername);
-                               COMPARE_UINT32(cur->info4, ref->info2, attributes);
+                               COMPARE_STRING(tctx, cur->info4, ref->info2, printername);
+                               COMPARE_STRING(tctx, cur->info4, ref->info2, servername);
+                               COMPARE_UINT32(tctx, cur->info4, ref->info2, attributes);
                                break;
                        case 5:
-                               COMPARE_STRING(cur->info5, ref->info2, printername);
-                               COMPARE_STRING(cur->info5, ref->info2, portname);
-                               COMPARE_UINT32(cur->info5, ref->info2, attributes);
-                               /*COMPARE_UINT32(cur->info5, ref->info2, device_not_selected_timeout);
-                               COMPARE_UINT32(cur->info5, ref->info2, transmission_retry_timeout);*/
+                               COMPARE_STRING(tctx, cur->info5, ref->info2, printername);
+                               COMPARE_STRING(tctx, cur->info5, ref->info2, portname);
+                               COMPARE_UINT32(tctx, cur->info5, ref->info2, attributes);
+                               /*COMPARE_UINT32(tctx, cur->info5, ref->info2, device_not_selected_timeout);
+                               COMPARE_UINT32(tctx, cur->info5, ref->info2, transmission_retry_timeout);*/
                                break;
                        }
                }
@@ -764,17 +594,17 @@ static BOOL test_EnumPrinters(struct test_spoolss_context *ctx)
         *      - verify that the port of a printer was in the list returned by EnumPorts
         */
 
-       return ret;
+       return true;
 }
 
-static BOOL test_GetPrinter(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_GetPrinter(struct torture_context *tctx, 
+                           struct dcerpc_pipe *p, 
                     struct policy_handle *handle)
 {
        NTSTATUS status;
        struct spoolss_GetPrinter r;
        uint16_t levels[] = {0, 1, 2, 3, 4, 5, 6, 7, 8};
        int i;
-       BOOL ret = True;
        
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                r.in.handle = handle;
@@ -782,43 +612,31 @@ static BOOL test_GetPrinter(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                r.in.buffer = NULL;
                r.in.offered = 0;
 
-               printf("Testing GetPrinter level %u\n", r.in.level);
+               torture_comment(tctx, "Testing GetPrinter level %u\n", r.in.level);
 
-               status = dcerpc_spoolss_GetPrinter(p, mem_ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("GetPrinter failed - %s\n", nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
+               status = dcerpc_spoolss_GetPrinter(p, tctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "GetPrinter failed");
                
                if (W_ERROR_EQUAL(r.out.result, WERR_INSUFFICIENT_BUFFER)) {
-                       DATA_BLOB blob = data_blob_talloc(mem_ctx, NULL, r.out.needed);
+                       DATA_BLOB blob = data_blob_talloc(tctx, NULL, r.out.needed);
                        data_blob_clear(&blob);
                        r.in.buffer = &blob;
                        r.in.offered = r.out.needed;
-                       status = dcerpc_spoolss_GetPrinter(p, mem_ctx, &r);
+                       status = dcerpc_spoolss_GetPrinter(p, tctx, &r);
                }
                
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("GetPrinter failed - %s\n", nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
+               torture_assert_ntstatus_ok(tctx, status, "GetPrinter failed");
 
-               if (!W_ERROR_IS_OK(r.out.result)) {
-                       printf("GetPrinter failed - %s\n", 
-                              win_errstr(r.out.result));
-                       ret = False;
-                       continue;
-               }
+               torture_assert_werr_ok(tctx, r.out.result, "GetPrinter failed");
        }
 
-       return ret;
+       return true;
 }
 
 
-static BOOL test_ClosePrinter(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
-                      struct policy_handle *handle)
+static bool test_ClosePrinter(struct torture_context *tctx, 
+                             struct dcerpc_pipe *p, 
+                             struct policy_handle *handle)
 {
        NTSTATUS status;
        struct spoolss_ClosePrinter r;
@@ -826,18 +644,16 @@ static BOOL test_ClosePrinter(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        r.in.handle = handle;
        r.out.handle = handle;
 
-       printf("Testing ClosePrinter\n");
+       torture_comment(tctx, "Testing ClosePrinter\n");
 
-       status = dcerpc_spoolss_ClosePrinter(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("ClosePrinter failed - %s\n", nt_errstr(status));
-               return False;
-       }
+       status = dcerpc_spoolss_ClosePrinter(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "ClosePrinter failed");
 
-       return True;
+       return true;
 }
 
-static BOOL test_GetForm(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_GetForm(struct torture_context *tctx, 
+                        struct dcerpc_pipe *p, 
                         struct policy_handle *handle, 
                         const char *form_name)
 {
@@ -850,109 +666,79 @@ static BOOL test_GetForm(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        r.in.buffer = NULL;
        r.in.offered = 0;
 
-       printf("Testing GetForm\n");
+       torture_comment(tctx, "Testing GetForm\n");
 
-       status = dcerpc_spoolss_GetForm(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("GetForm failed - %s\n", nt_errstr(status));
-               return False;
-       }
+       status = dcerpc_spoolss_GetForm(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "GetForm failed");
 
        if (W_ERROR_EQUAL(r.out.result, WERR_INSUFFICIENT_BUFFER)) {
-               DATA_BLOB blob = data_blob_talloc(mem_ctx, NULL, r.out.needed);
+               DATA_BLOB blob = data_blob_talloc(tctx, NULL, r.out.needed);
                data_blob_clear(&blob);
                r.in.buffer = &blob;
                r.in.offered = r.out.needed;
-               status = dcerpc_spoolss_GetForm(p, mem_ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("GetForm failed - %s\n",
-                               nt_errstr(status));
-                       return False;
-               }
+               status = dcerpc_spoolss_GetForm(p, tctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "GetForm failed");
 
-               if (!W_ERROR_IS_OK(r.out.result)) {
-                       printf("GetForm failed - %s\n",
-                               win_errstr(r.out.result));
-                       return False;
-               }
+               torture_assert_werr_ok(tctx, r.out.result, "GetForm failed");
 
-               if (!r.out.info) {
-                       printf("No form info returned\n");
-                       return False;
-               }
+               torture_assert(tctx, r.out.info, "No form info returned");
        }
 
+       torture_assert_werr_ok(tctx, r.out.result, "GetForm failed");
 
-       if (!W_ERROR_IS_OK(r.out.result)) {
-               printf("GetForm failed - %s\n",
-                       win_errstr(r.out.result));
-               return False;
-       }
-
-       return True;
+       return true;
 }
 
-static BOOL test_EnumForms(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
-                   struct policy_handle *handle, BOOL print_server)
+static bool test_EnumForms(struct torture_context *tctx, 
+                          struct dcerpc_pipe *p, 
+                          struct policy_handle *handle, bool print_server)
 {
        NTSTATUS status;
        struct spoolss_EnumForms r;
-       BOOL ret = True;
+       bool ret = true;
 
        r.in.handle = handle;
        r.in.level = 1;
        r.in.buffer = NULL;
        r.in.offered = 0;
 
-       printf("Testing EnumForms\n");
+       torture_comment(tctx, "Testing EnumForms\n");
 
-       status = dcerpc_spoolss_EnumForms(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("EnumForms failed - %s\n", nt_errstr(status));
-               return False;
-       }
+       status = dcerpc_spoolss_EnumForms(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "EnumForms failed");
 
-       if (print_server && W_ERROR_EQUAL(r.out.result,WERR_BADFID)) {
-               printf("EnumForms on the PrintServer isn't supported by test server (NT4)\n");
-               return True;
-       }
+       if (print_server && W_ERROR_EQUAL(r.out.result, WERR_BADFID))
+               torture_fail(tctx, "EnumForms on the PrintServer isn't supported by test server (NT4)");
 
        if (W_ERROR_EQUAL(r.out.result, WERR_INSUFFICIENT_BUFFER)) {
                union spoolss_FormInfo *info;
                int j;
-               DATA_BLOB blob = data_blob_talloc(mem_ctx, NULL, r.out.needed);
+               DATA_BLOB blob = data_blob_talloc(tctx, NULL, r.out.needed);
                data_blob_clear(&blob);
                r.in.buffer = &blob;
                r.in.offered = r.out.needed;
 
-               status = dcerpc_spoolss_EnumForms(p, mem_ctx, &r);
+               status = dcerpc_spoolss_EnumForms(p, tctx, &r);
 
-               if (!r.out.info) {
-                       printf("No forms returned\n");
-                       return False;
-               }
+               torture_assert(tctx, r.out.info, "No forms returned");
 
                info = r.out.info;
 
                for (j = 0; j < r.out.count; j++) {
-                       if (!print_server) ret &= test_GetForm(p, mem_ctx, handle, info[j].info1.form_name);
+                       if (!print_server) 
+                               ret &= test_GetForm(tctx, p, handle, info[j].info1.form_name);
                }
        }
 
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("EnumForms failed - %s\n", nt_errstr(status));
-               return False;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "EnumForms failed");
 
-       if (!W_ERROR_IS_OK(r.out.result)) {
-               printf("EnumForms failed - %s\n", win_errstr(r.out.result));
-               return False;
-       }
+       torture_assert_werr_ok(tctx, r.out.result, "EnumForms failed");
 
-       return True;
+       return true;
 }
 
-static BOOL test_DeleteForm(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_DeleteForm(struct torture_context *tctx, 
+                           struct dcerpc_pipe *p, 
                            struct policy_handle *handle, 
                            const char *form_name)
 {
@@ -962,29 +748,24 @@ static BOOL test_DeleteForm(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        r.in.handle = handle;
        r.in.form_name = form_name;
 
-       status = dcerpc_spoolss_DeleteForm(p, mem_ctx, &r);
+       status = dcerpc_spoolss_DeleteForm(p, tctx, &r);
 
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("DeleteForm failed - %s\n", nt_errstr(status));
-               return False;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "DeleteForm failed");
 
-       if (!W_ERROR_IS_OK(r.out.result)) {
-               printf("DeleteForm failed - %s\n", win_errstr(r.out.result));
-               return False;
-       }
+       torture_assert_werr_ok(tctx, r.out.result, "DeleteForm failed");
 
-       return True;
+       return true;
 }
 
-static BOOL test_AddForm(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
-                 struct policy_handle *handle, BOOL print_server)
+static bool test_AddForm(struct torture_context *tctx, 
+                        struct dcerpc_pipe *p, 
+                        struct policy_handle *handle, bool print_server)
 {
        struct spoolss_AddForm r;
        struct spoolss_AddFormInfo1 addform;
        const char *form_name = "testform3";
        NTSTATUS status;
-       BOOL ret = True;
+       bool ret = true;
 
        r.in.handle     = handle;
        r.in.level      = 1;
@@ -998,19 +779,13 @@ static BOOL test_AddForm(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        addform.area.right      = 45;
        addform.area.bottom     = 15;
 
-       status = dcerpc_spoolss_AddForm(p, mem_ctx, &r);
+       status = dcerpc_spoolss_AddForm(p, tctx, &r);
 
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("AddForm failed - %s\n", nt_errstr(status));
-               return False;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "AddForm failed");
 
-       if (!W_ERROR_IS_OK(r.out.result)) {
-               printf("AddForm failed - %s\n", win_errstr(r.out.result));
-               goto done;
-       }
+       torture_assert_werr_ok(tctx, r.out.result, "AddForm failed");
 
-       if (!print_server) ret &= test_GetForm(p, mem_ctx, handle, form_name);
+       if (!print_server) ret &= test_GetForm(tctx, p, handle, form_name);
 
        {
                struct spoolss_SetForm sf;
@@ -1027,92 +802,71 @@ static BOOL test_AddForm(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
                setform.size.width      = 1234;
 
-               status = dcerpc_spoolss_SetForm(p, mem_ctx, &sf);
+               status = dcerpc_spoolss_SetForm(p, tctx, &sf);
 
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("SetForm failed - %s\n", nt_errstr(status));
-                       ret = False;
-                       goto done;
-               }
+               torture_assert_ntstatus_ok(tctx, status, "SetForm failed");
 
-               if (!W_ERROR_IS_OK(r.out.result)) {
-                       printf("SetForm failed - %s\n", 
-                              win_errstr(r.out.result));
-                       ret = False;
-                       goto done;
-               }
+               torture_assert_werr_ok(tctx, r.out.result, "SetForm failed");
        }
 
-       if (!print_server) ret &= test_GetForm(p, mem_ctx, handle, form_name);
+       if (!print_server) ret &= test_GetForm(tctx, p, handle, form_name);
 
- done:
-       if (!test_DeleteForm(p, mem_ctx, handle, form_name)) {
-               printf("DeleteForm failed\n");
-               ret = False;
+       if (!test_DeleteForm(tctx, p, handle, form_name)) {
+               ret = false;
        }
 
        return ret;
 }
 
-static BOOL test_EnumPorts_old(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_EnumPorts_old(struct torture_context *tctx, 
+                              struct dcerpc_pipe *p)
 {
        NTSTATUS status;
        struct spoolss_EnumPorts r;
 
-       r.in.servername = talloc_asprintf(mem_ctx, "\\\\%s", 
+       r.in.servername = talloc_asprintf(tctx, "\\\\%s", 
                                          dcerpc_server_name(p));
        r.in.level = 2;
        r.in.buffer = NULL;
        r.in.offered = 0;
 
-       printf("Testing EnumPorts\n");
+       torture_comment(tctx, "Testing EnumPorts\n");
 
-       status = dcerpc_spoolss_EnumPorts(p, mem_ctx, &r);
+       status = dcerpc_spoolss_EnumPorts(p, tctx, &r);
 
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("EnumPorts failed - %s\n", nt_errstr(status));
-               return False;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "EnumPorts failed");
 
        if (W_ERROR_EQUAL(r.out.result, WERR_INSUFFICIENT_BUFFER)) {
-               DATA_BLOB blob = data_blob_talloc(mem_ctx, NULL, r.out.needed);
+               DATA_BLOB blob = data_blob_talloc(tctx, NULL, r.out.needed);
                data_blob_clear(&blob);
                r.in.buffer = &blob;
                r.in.offered = r.out.needed;
 
-               status = dcerpc_spoolss_EnumPorts(p, mem_ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("EnumPorts failed - %s\n", nt_errstr(status));
-                       return False;
-               }
+               status = dcerpc_spoolss_EnumPorts(p, tctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "EnumPorts failed");
 
-               if (!r.out.info) {
-                       printf("No ports returned\n");
-                       return False;
-               }
+               torture_assert(tctx, r.out.info, "No ports returned");
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_AddPort(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_AddPort(struct torture_context *tctx, 
+                        struct dcerpc_pipe *p)
 {
        NTSTATUS status;
        struct spoolss_AddPort r;
 
-       r.in.server_name = talloc_asprintf(mem_ctx, "\\\\%s", 
+       r.in.server_name = talloc_asprintf(tctx, "\\\\%s", 
                                           dcerpc_server_name(p));
        r.in.unknown = 0;
        r.in.monitor_name = "foo";
 
-       printf ("Testing AddPort\n");
+       torture_comment(tctx, "Testing AddPort\n");
 
-       status = dcerpc_spoolss_AddPort(p, mem_ctx, &r);
+       status = dcerpc_spoolss_AddPort(p, tctx, &r);
 
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("AddPort failed - %s\n", nt_errstr(status));
-               return False;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "AddPort failed");
 
        /* win2k3 returns WERR_NOT_SUPPORTED */
 
@@ -1120,16 +874,17 @@ static BOOL test_AddPort(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
 
        if (!W_ERROR_IS_OK(r.out.result)) {
                printf("AddPort failed - %s\n", win_errstr(r.out.result));
-               return False;
+               return false;
        }
 
 #endif
 
-       return True;
+       return true;
 }
 
-static BOOL test_GetJob(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
-                 struct policy_handle *handle, uint32_t job_id)
+static bool test_GetJob(struct torture_context *tctx, 
+                       struct dcerpc_pipe *p, 
+                       struct policy_handle *handle, uint32_t job_id)
 {
        NTSTATUS status;
        struct spoolss_GetJob r;
@@ -1140,33 +895,29 @@ static BOOL test_GetJob(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        r.in.buffer = NULL;
        r.in.offered = 0;
 
-       printf("Testing GetJob\n");
+       torture_comment(tctx, "Testing GetJob\n");
 
-       status = dcerpc_spoolss_GetJob(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("GetJob failed - %s\n", nt_errstr(status));
-               return False;
-       }
+       status = dcerpc_spoolss_GetJob(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "GetJob failed");
 
        if (W_ERROR_EQUAL(r.out.result, WERR_INSUFFICIENT_BUFFER)) {
-               DATA_BLOB blob = data_blob_talloc(mem_ctx, NULL, r.out.needed);
+               DATA_BLOB blob = data_blob_talloc(tctx, NULL, r.out.needed);
                data_blob_clear(&blob);
                r.in.buffer = &blob;
                r.in.offered = r.out.needed;
 
-               status = dcerpc_spoolss_GetJob(p, mem_ctx, &r);
+               status = dcerpc_spoolss_GetJob(p, tctx, &r);
 
-               if (!r.out.info) {
-                       printf("No job info returned\n");
-                       return False;
-               }
+               torture_assert(tctx, r.out.info, "No job info returned");
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_SetJob(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
-                struct policy_handle *handle, uint32_t job_id, enum spoolss_JobControl command)
+static bool test_SetJob(struct torture_context *tctx, 
+                       struct dcerpc_pipe *p, 
+                       struct policy_handle *handle, uint32_t job_id, 
+                       enum spoolss_JobControl command)
 {
        NTSTATUS status;
        struct spoolss_SetJob r;
@@ -1176,23 +927,18 @@ static BOOL test_SetJob(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        r.in.ctr        = NULL;
        r.in.command    = command;
 
-       printf("Testing SetJob\n");
+       torture_comment(tctx, "Testing SetJob\n");
 
-       status = dcerpc_spoolss_SetJob(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("SetJob failed - %s\n", nt_errstr(status));
-               return False;
-       }
-       if (!W_ERROR_IS_OK(r.out.result)) {
-               printf("SetJob failed - %s\n", win_errstr(r.out.result));
-               return False;
-       }
+       status = dcerpc_spoolss_SetJob(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "SetJob failed");
+       torture_assert_werr_ok(tctx, r.out.result, "SetJob failed");
 
-       return True;
+       return true;
 }
 
-static BOOL test_EnumJobs(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
-                  struct policy_handle *handle)
+static bool test_EnumJobs(struct torture_context *tctx, 
+                         struct dcerpc_pipe *p, 
+                         struct policy_handle *handle)
 {
        NTSTATUS status;
        struct spoolss_EnumJobs r;
@@ -1204,50 +950,44 @@ static BOOL test_EnumJobs(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        r.in.buffer = NULL;
        r.in.offered = 0;
 
-       printf("Testing EnumJobs\n");
+       torture_comment(tctx, "Testing EnumJobs\n");
 
-       status = dcerpc_spoolss_EnumJobs(p, mem_ctx, &r);
+       status = dcerpc_spoolss_EnumJobs(p, tctx, &r);
 
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("EnumJobs failed - %s\n", nt_errstr(status));
-               return False;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "EnumJobs failed");
 
        if (W_ERROR_EQUAL(r.out.result, WERR_INSUFFICIENT_BUFFER)) {
                union spoolss_JobInfo *info;
                int j;
-               DATA_BLOB blob = data_blob_talloc(mem_ctx, NULL, r.out.needed);
+               DATA_BLOB blob = data_blob_talloc(tctx, NULL, r.out.needed);
                data_blob_clear(&blob);
                r.in.buffer = &blob;
                r.in.offered = r.out.needed;
 
-               status = dcerpc_spoolss_EnumJobs(p, mem_ctx, &r);
+               status = dcerpc_spoolss_EnumJobs(p, tctx, &r);
 
-               if (!r.out.info) {
-                       printf("No jobs returned\n");
-                       return True;
-               }
+               torture_assert(tctx, r.out.info, "No jobs returned");
 
                info = r.out.info;
 
                for (j = 0; j < r.out.count; j++) {
-                       test_GetJob(p, mem_ctx, handle, info[j].info1.job_id);
-                       test_SetJob(p, mem_ctx, handle, info[j].info1.job_id, SPOOLSS_JOB_CONTROL_PAUSE);
-                       test_SetJob(p, mem_ctx, handle, info[j].info1.job_id, SPOOLSS_JOB_CONTROL_RESUME);
+                       test_GetJob(tctx, p, handle, info[j].info1.job_id);
+                       test_SetJob(tctx, p, handle, info[j].info1.job_id, SPOOLSS_JOB_CONTROL_PAUSE);
+                       test_SetJob(tctx, p, handle, info[j].info1.job_id, SPOOLSS_JOB_CONTROL_RESUME);
                }
 
-       } else if (!W_ERROR_IS_OK(r.out.result)) {
-               printf("EnumJobs failed - %s\n", win_errstr(r.out.result));
-               return False;
+       } else {
+               torture_assert_werr_ok(tctx, r.out.result, "EnumJobs failed");
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_DoPrintTest(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
-                  struct policy_handle *handle)
+static bool test_DoPrintTest(struct torture_context *tctx, 
+                            struct dcerpc_pipe *p, 
+                            struct policy_handle *handle)
 {
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        struct spoolss_StartDocPrinter s;
        struct spoolss_DocumentInfo1 info1;
@@ -1258,7 +998,7 @@ static BOOL test_DoPrintTest(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        int i;
        uint32_t job_id;
 
-       printf("Testing StartDocPrinter\n");
+       torture_comment(tctx, "Testing StartDocPrinter\n");
 
        s.in.handle             = handle;
        s.in.level              = 1;
@@ -1267,86 +1007,58 @@ static BOOL test_DoPrintTest(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        info1.output_file       = NULL;
        info1.datatype          = "RAW";
 
-       status = dcerpc_spoolss_StartDocPrinter(p, mem_ctx, &s);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("dcerpc_spoolss_StartDocPrinter failed - %s\n", nt_errstr(status));
-               return False;
-       }
-       if (!W_ERROR_IS_OK(s.out.result)) {
-               printf("StartDocPrinter failed - %s\n", win_errstr(s.out.result));
-               return False;
-       }
+       status = dcerpc_spoolss_StartDocPrinter(p, tctx, &s);
+       torture_assert_ntstatus_ok(tctx, status, "dcerpc_spoolss_StartDocPrinter failed");
+       torture_assert_werr_ok(tctx, s.out.result, "StartDocPrinter failed");
 
        job_id = s.out.job_id;
 
        for (i=1; i < 4; i++) {
-               printf("Testing StartPagePrinter: Page[%d]\n", i);
+               torture_comment(tctx, "Testing StartPagePrinter: Page[%d]\n", i);
 
                sp.in.handle            = handle;
 
-               status = dcerpc_spoolss_StartPagePrinter(p, mem_ctx, &sp);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("dcerpc_spoolss_StartPagePrinter failed - %s\n", nt_errstr(status));
-                       return False;
-               }
-               if (!W_ERROR_IS_OK(sp.out.result)) {
-                       printf("StartPagePrinter failed - %s\n", win_errstr(sp.out.result));
-                       return False;
-               }
+               status = dcerpc_spoolss_StartPagePrinter(p, tctx, &sp);
+               torture_assert_ntstatus_ok(tctx, status, 
+                                          "dcerpc_spoolss_StartPagePrinter failed");
+               torture_assert_werr_ok(tctx, sp.out.result, "StartPagePrinter failed");
 
-               printf("Testing WritePrinter: Page[%d]\n", i);
+               torture_comment(tctx, "Testing WritePrinter: Page[%d]\n", i);
 
                w.in.handle             = handle;
-               w.in.data               = data_blob_string_const(talloc_asprintf(mem_ctx,"TortureTestPage: %d\nData\n",i));
+               w.in.data               = data_blob_string_const(talloc_asprintf(tctx,"TortureTestPage: %d\nData\n",i));
 
-               status = dcerpc_spoolss_WritePrinter(p, mem_ctx, &w);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("dcerpc_spoolss_WritePrinter failed - %s\n", nt_errstr(status));
-                       return False;
-               }
-               if (!W_ERROR_IS_OK(w.out.result)) {
-                       printf("WritePrinter failed - %s\n", win_errstr(w.out.result));
-                       return False;
-               }
+               status = dcerpc_spoolss_WritePrinter(p, tctx, &w);
+               torture_assert_ntstatus_ok(tctx, status, "dcerpc_spoolss_WritePrinter failed");
+               torture_assert_werr_ok(tctx, w.out.result, "WritePrinter failed");
 
-               printf("Testing EndPagePrinter: Page[%d]\n", i);
+               torture_comment(tctx, "Testing EndPagePrinter: Page[%d]\n", i);
 
                ep.in.handle            = handle;
 
-               status = dcerpc_spoolss_EndPagePrinter(p, mem_ctx, &ep);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("dcerpc_spoolss_EndPagePrinter failed - %s\n", nt_errstr(status));
-                       return False;
-               }
-               if (!W_ERROR_IS_OK(ep.out.result)) {
-                       printf("EndPagePrinter failed - %s\n", win_errstr(ep.out.result));
-                       return False;
-               }
+               status = dcerpc_spoolss_EndPagePrinter(p, tctx, &ep);
+               torture_assert_ntstatus_ok(tctx, status, "dcerpc_spoolss_EndPagePrinter failed");
+               torture_assert_werr_ok(tctx, ep.out.result, "EndPagePrinter failed");
        }
 
-       printf("Testing EndDocPrinter\n");
+       torture_comment(tctx, "Testing EndDocPrinter\n");
 
        e.in.handle = handle;
 
-       status = dcerpc_spoolss_EndDocPrinter(p, mem_ctx, &e);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("dcerpc_spoolss_EndDocPrinter failed - %s\n", nt_errstr(status));
-               return False;
-       }
-       if (!W_ERROR_IS_OK(e.out.result)) {
-               printf("EndDocPrinter failed - %s\n", win_errstr(e.out.result));
-               return False;
-       }
+       status = dcerpc_spoolss_EndDocPrinter(p, tctx, &e);
+       torture_assert_ntstatus_ok(tctx, status, "dcerpc_spoolss_EndDocPrinter failed");
+       torture_assert_werr_ok(tctx, e.out.result, "EndDocPrinter failed");
 
-       ret &= test_EnumJobs(p, mem_ctx, handle);
+       ret &= test_EnumJobs(tctx, p, handle);
 
-       ret &= test_SetJob(p, mem_ctx, handle, job_id, SPOOLSS_JOB_CONTROL_DELETE);
+       ret &= test_SetJob(tctx, p, handle, job_id, SPOOLSS_JOB_CONTROL_DELETE);
 
        return ret;
 }
 
-static BOOL test_PausePrinter(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
-                  struct policy_handle *handle)
+static bool test_PausePrinter(struct torture_context *tctx, 
+                             struct dcerpc_pipe *p, 
+                             struct policy_handle *handle)
 {
        NTSTATUS status;
        struct spoolss_SetPrinter r;
@@ -1358,25 +1070,20 @@ static BOOL test_PausePrinter(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        r.in.secdesc_ctr.sd     = NULL;
        r.in.command            = SPOOLSS_PRINTER_CONTROL_PAUSE;
 
-       printf("Testing SetPrinter: SPOOLSS_PRINTER_CONTROL_PAUSE\n");
+       torture_comment(tctx, "Testing SetPrinter: SPOOLSS_PRINTER_CONTROL_PAUSE\n");
 
-       status = dcerpc_spoolss_SetPrinter(p, mem_ctx, &r);
+       status = dcerpc_spoolss_SetPrinter(p, tctx, &r);
 
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("SetPrinter failed - %s\n", nt_errstr(status));
-               return False;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "SetPrinter failed");
 
-       if (!W_ERROR_IS_OK(r.out.result)) {
-               printf("SetPrinter failed - %s\n", win_errstr(r.out.result));
-               return False;
-       }
+       torture_assert_werr_ok(tctx, r.out.result, "SetPrinter failed");
 
-       return True;
+       return true;
 }
 
-static BOOL test_ResumePrinter(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
-                  struct policy_handle *handle)
+static bool test_ResumePrinter(struct torture_context *tctx, 
+                              struct dcerpc_pipe *p, 
+                              struct policy_handle *handle)
 {
        NTSTATUS status;
        struct spoolss_SetPrinter r;
@@ -1388,24 +1095,19 @@ static BOOL test_ResumePrinter(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        r.in.secdesc_ctr.sd     = NULL;
        r.in.command            = SPOOLSS_PRINTER_CONTROL_RESUME;
 
-       printf("Testing SetPrinter: SPOOLSS_PRINTER_CONTROL_RESUME\n");
+       torture_comment(tctx, "Testing SetPrinter: SPOOLSS_PRINTER_CONTROL_RESUME\n");
 
-       status = dcerpc_spoolss_SetPrinter(p, mem_ctx, &r);
+       status = dcerpc_spoolss_SetPrinter(p, tctx, &r);
 
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("SetPrinter failed - %s\n", nt_errstr(status));
-               return False;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "SetPrinter failed");
 
-       if (!W_ERROR_IS_OK(r.out.result)) {
-               printf("SetPrinter failed - %s\n", win_errstr(r.out.result));
-               return False;
-       }
+       torture_assert_werr_ok(tctx, r.out.result, "SetPrinter failed");
 
-       return True;
+       return true;
 }
 
-static BOOL test_GetPrinterData(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_GetPrinterData(struct torture_context *tctx, 
+                               struct dcerpc_pipe *p, 
                                struct policy_handle *handle, 
                                const char *value_name)
 {
@@ -1416,35 +1118,25 @@ static BOOL test_GetPrinterData(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        r.in.value_name = value_name;
        r.in.offered = 0;
 
-       printf("Testing GetPrinterData\n");
+       torture_comment(tctx, "Testing GetPrinterData\n");
 
-       status = dcerpc_spoolss_GetPrinterData(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("GetPrinterData failed - %s\n", nt_errstr(status));
-               return False;
-       }
+       status = dcerpc_spoolss_GetPrinterData(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "GetPrinterData failed");
 
        if (W_ERROR_EQUAL(r.out.result, WERR_MORE_DATA)) {
                r.in.offered = r.out.needed;
 
-               status = dcerpc_spoolss_GetPrinterData(p, mem_ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("GetPrinterData failed - %s\n", 
-                              nt_errstr(status));
-                       return False;
-               }
+               status = dcerpc_spoolss_GetPrinterData(p, tctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "GetPrinterData failed");
 
-               if (!W_ERROR_IS_OK(r.out.result)) {
-                       printf("GetPrinterData failed - %s\n", 
-                              win_errstr(r.out.result));
-                       return False;
-               }
+               torture_assert_werr_ok(tctx, r.out.result, "GetPrinterData failed");
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_GetPrinterDataEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_GetPrinterDataEx(struct torture_context *tctx, 
+                                 struct dcerpc_pipe *p, 
                                  struct policy_handle *handle, 
                                  const char *key_name,
                                  const char *value_name)
@@ -1457,40 +1149,30 @@ static BOOL test_GetPrinterDataEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        r.in.value_name = value_name;
        r.in.offered = 0;
 
-       printf("Testing GetPrinterDataEx\n");
+       torture_comment(tctx, "Testing GetPrinterDataEx\n");
 
-       status = dcerpc_spoolss_GetPrinterDataEx(p, mem_ctx, &r);
+       status = dcerpc_spoolss_GetPrinterDataEx(p, tctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                if (NT_STATUS_EQUAL(status,NT_STATUS_NET_WRITE_FAULT) &&
                    p->last_fault_code == DCERPC_FAULT_OP_RNG_ERROR) {
-                       printf("GetPrinterDataEx not supported by server\n");
-                       return True;
+                       torture_skip(tctx, "GetPrinterDataEx not supported by server\n");
                }
-               printf("GetPrinterDataEx failed - %s\n", nt_errstr(status));
-               return False;
+               torture_assert_ntstatus_ok(tctx, status, "GetPrinterDataEx failed");
        }
 
        if (W_ERROR_EQUAL(r.out.result, WERR_MORE_DATA)) {
                r.in.offered = r.out.needed;
 
-               status = dcerpc_spoolss_GetPrinterDataEx(p, mem_ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("GetPrinterDataEx failed - %s\n", 
-                              nt_errstr(status));
-                       return False;
-               }
+               status = dcerpc_spoolss_GetPrinterDataEx(p, tctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "GetPrinterDataEx failed");
 
-               if (!W_ERROR_IS_OK(r.out.result)) {
-                       printf("GetPrinterDataEx failed - %s\n", 
-                              win_errstr(r.out.result));
-                       return False;
-               }
+               torture_assert_werr_ok(tctx, r.out.result,  "GetPrinterDataEx failed");
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_EnumPrinterData(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_EnumPrinterData(struct torture_context *tctx, struct dcerpc_pipe *p, 
                                 struct policy_handle *handle)
 {
        NTSTATUS status;
@@ -1507,38 +1189,33 @@ static BOOL test_EnumPrinterData(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                r.in.data_size = &data_size;
                r.out.data_size = &data_size;
 
-               printf("Testing EnumPrinterData\n");
+               torture_comment(tctx, "Testing EnumPrinterData\n");
 
-               status = dcerpc_spoolss_EnumPrinterData(p, mem_ctx, &r);
+               status = dcerpc_spoolss_EnumPrinterData(p, tctx, &r);
 
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("EnumPrinterData failed - %s\n", nt_errstr(status));
-                       return False;
-               }
+               torture_assert_ntstatus_ok(tctx, status, "EnumPrinterData failed");
 
                r.in.value_offered = r.out.value_needed;
 
-               status = dcerpc_spoolss_EnumPrinterData(p, mem_ctx, &r);
+               status = dcerpc_spoolss_EnumPrinterData(p, tctx, &r);
 
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("EnumPrinterData failed - %s\n", nt_errstr(status));
-                       return False;
-               }
+               torture_assert_ntstatus_ok(tctx, status, "EnumPrinterData failed");
                
-               test_GetPrinterData(p, mem_ctx, handle, r.out.value_name);
+               test_GetPrinterData(tctx, p, handle, r.out.value_name);
 
-               test_GetPrinterDataEx(
-                       p, mem_ctx, handle, "PrinterDriverData", 
+               test_GetPrinterDataEx(tctx, 
+                       p, handle, "PrinterDriverData", 
                        r.out.value_name);
 
                r.in.enum_index++;
 
        } while (W_ERROR_IS_OK(r.out.result));
 
-       return True;
+       return true;
 }
 
-static BOOL test_EnumPrinterDataEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_EnumPrinterDataEx(struct torture_context *tctx, 
+                                  struct dcerpc_pipe *p, 
                                   struct policy_handle *handle)
 {
        NTSTATUS status;
@@ -1548,28 +1225,23 @@ static BOOL test_EnumPrinterDataEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        r.in.key_name = "PrinterDriverData";
        r.in.offered = 0;
 
-       printf("Testing EnumPrinterDataEx\n");
+       torture_comment(tctx, "Testing EnumPrinterDataEx\n");
 
-       status = dcerpc_spoolss_EnumPrinterDataEx(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("EnumPrinterDataEx failed - %s\n", nt_errstr(status));
-               return False;
-       }
+       status = dcerpc_spoolss_EnumPrinterDataEx(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "EnumPrinterDataEx failed");
 
        r.in.offered = r.out.needed;
 
-       status = dcerpc_spoolss_EnumPrinterDataEx(p, mem_ctx, &r);
+       status = dcerpc_spoolss_EnumPrinterDataEx(p, tctx, &r);
 
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("EnumPrinterDataEx failed - %s\n", nt_errstr(status));
-               return False;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "EnumPrinterDataEx failed");
 
-       return True;
+       return true;
 }
 
 
-static BOOL test_DeletePrinterData(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_DeletePrinterData(struct torture_context *tctx, 
+                                  struct dcerpc_pipe *p, 
                                   struct policy_handle *handle, 
                                   const char *value_name)
 {
@@ -1579,20 +1251,18 @@ static BOOL test_DeletePrinterData(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        r.in.handle = handle;
        r.in.value_name = value_name;
 
-       printf("Testing DeletePrinterData\n");
+       torture_comment(tctx, "Testing DeletePrinterData\n");
 
-       status = dcerpc_spoolss_DeletePrinterData(p, mem_ctx, &r);
+       status = dcerpc_spoolss_DeletePrinterData(p, tctx, &r);
 
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("DeletePrinterData failed - %s\n", nt_errstr(status));
-               return False;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "DeletePrinterData failed");
 
-       return True;
+       return true;
 }
 
-static BOOL test_SetPrinterData(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
-                        struct policy_handle *handle)
+static bool test_SetPrinterData(struct torture_context *tctx, 
+                               struct dcerpc_pipe *p, 
+                               struct policy_handle *handle)
 {
        NTSTATUS status;
        struct spoolss_SetPrinterData r;
@@ -1603,84 +1273,69 @@ static BOOL test_SetPrinterData(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        r.in.type = SPOOLSS_PRINTER_DATA_TYPE_STRING;
        r.in.data.string = "dog";
 
-       printf("Testing SetPrinterData\n");
+       torture_comment(tctx, "Testing SetPrinterData\n");
 
-       status = dcerpc_spoolss_SetPrinterData(p, mem_ctx, &r);
+       status = dcerpc_spoolss_SetPrinterData(p, tctx, &r);
 
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("SetPrinterData failed - %s\n", nt_errstr(status));
-               return False;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "SetPrinterData failed");
 
-       if (!test_GetPrinterData(p, mem_ctx, handle, value_name)) {
-               return False;
+       if (!test_GetPrinterData(tctx, p, handle, value_name)) {
+               return false;
        }
 
-       if (!test_DeletePrinterData(p, mem_ctx, handle, value_name)) {
-               return False;
+       if (!test_DeletePrinterData(tctx, p, handle, value_name)) {
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL test_SecondaryClosePrinter(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_SecondaryClosePrinter(struct torture_context *tctx, 
+                                      struct dcerpc_pipe *p, 
                                       struct policy_handle *handle)
 {
        NTSTATUS status;
        struct dcerpc_binding *b;
        struct dcerpc_pipe *p2;
-       BOOL ret = True;
+       bool ret = true;
 
        /* only makes sense on SMB */
        if (p->conn->transport.transport != NCACN_NP) {
-               return True;
+               return true;
        }
 
-       printf("testing close on secondary pipe\n");
+       torture_comment(tctx, "testing close on secondary pipe\n");
 
-       status = dcerpc_parse_binding(mem_ctx, p->conn->binding_string, &b);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("Failed to parse dcerpc binding '%s'\n", p->conn->binding_string);
-               return False;
-       }
+       status = dcerpc_parse_binding(tctx, p->conn->binding_string, &b);
+       torture_assert_ntstatus_ok(tctx, status, "Failed to parse dcerpc binding");
 
        status = dcerpc_secondary_connection(p, &p2, b);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("Failed to create secondary connection\n");
-               return False;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "Failed to create secondary connection");
 
        status = dcerpc_bind_auth_none(p2, &ndr_table_spoolss);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("Failed to create bind on secondary connection\n");
-               talloc_free(p2);
-
-                return False;
-        }
+       torture_assert_ntstatus_ok(tctx, status, "Failed to create bind on secondary connection");
 
-       if (test_ClosePrinter(p2, mem_ctx, handle)) {
-               printf("ERROR: Allowed close on secondary connection!\n");
-               ret = False;
+       if (test_ClosePrinter(tctx, p2, handle)) {
+               torture_comment(tctx, "ERROR: Allowed close on secondary connection!\n");
+               ret = false;
        }
 
-       if (p2->last_fault_code != DCERPC_FAULT_CONTEXT_MISMATCH) {
-               printf("Unexpected fault code 0x%x - expected 0x%x\n",
-                      p2->last_fault_code, DCERPC_FAULT_CONTEXT_MISMATCH);
-               ret = False;
-       }
+       torture_assert_int_equal(tctx, p2->last_fault_code, DCERPC_FAULT_CONTEXT_MISMATCH, 
+                                "Unexpected fault code");
 
        talloc_free(p2);
 
-       return ret;
+       return true;
 }
 
-static BOOL test_OpenPrinter_badname(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, const char *name)
+static bool test_OpenPrinter_badname(struct torture_context *tctx, 
+                                    struct dcerpc_pipe *p, const char *name)
 {
        NTSTATUS status;
        struct spoolss_OpenPrinter op;
        struct spoolss_OpenPrinterEx opEx;
        struct policy_handle handle;
-       BOOL ret = True;
+       bool ret = true;
 
        op.in.printername       = name;
        op.in.datatype          = NULL;
@@ -1688,20 +1343,17 @@ static BOOL test_OpenPrinter_badname(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        op.in.access_mask       = 0;
        op.out.handle           = &handle;
 
-       printf("\nTesting OpenPrinter(%s) with bad name\n", op.in.printername);
+       torture_comment(tctx, "\nTesting OpenPrinter(%s) with bad name\n", op.in.printername);
 
-       status = dcerpc_spoolss_OpenPrinter(p, mem_ctx, &op);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("OpenPrinter failed - %s\n", nt_errstr(status));
-               ret = False;
-       }
+       status = dcerpc_spoolss_OpenPrinter(p, tctx, &op);
+       torture_assert_ntstatus_ok(tctx, status, "OpenPrinter failed");
        if (!W_ERROR_EQUAL(WERR_INVALID_PRINTER_NAME,op.out.result)) {
-               printf("OpenPrinter(%s) unexpected result[%s] should be WERR_INVALID_PRINTER_NAME\n",
+               torture_comment(tctx, "OpenPrinter(%s) unexpected result[%s] should be WERR_INVALID_PRINTER_NAME\n",
                        name, win_errstr(op.out.result));
        }
 
        if (W_ERROR_IS_OK(op.out.result)) {
-               ret &=test_ClosePrinter(p, mem_ctx, &handle);
+               ret &=test_ClosePrinter(tctx, p, &handle);
        }
 
        opEx.in.printername             = name;
@@ -1712,91 +1364,62 @@ static BOOL test_OpenPrinter_badname(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        opEx.in.userlevel.level1        = NULL;
        opEx.out.handle                 = &handle;
 
-       printf("\nTesting OpenPrinterEx(%s) with bad name\n", opEx.in.printername);
+       torture_comment(tctx, "Testing OpenPrinterEx(%s) with bad name\n", opEx.in.printername);
 
-       status = dcerpc_spoolss_OpenPrinterEx(p, mem_ctx, &opEx);
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("OpenPrinter failed - %s\n", nt_errstr(status));
-               ret = False;
-       }
+       status = dcerpc_spoolss_OpenPrinterEx(p, tctx, &opEx);
+       torture_assert_ntstatus_ok(tctx, status, "OpenPrinter failed");
        if (!W_ERROR_EQUAL(WERR_INVALID_PRINTER_NAME,opEx.out.result)) {
-               printf("OpenPrinterEx(%s) unexpected result[%s] should be WERR_INVALID_PRINTER_NAME\n",
+               torture_comment(tctx, "OpenPrinterEx(%s) unexpected result[%s] should be WERR_INVALID_PRINTER_NAME\n",
                        name, win_errstr(opEx.out.result));
        }
 
        if (W_ERROR_IS_OK(opEx.out.result)) {
-               ret &=test_ClosePrinter(p, mem_ctx, &handle);
+               ret &=test_ClosePrinter(tctx, p, &handle);
        }
 
        return ret;
 }
 
-static BOOL test_OpenPrinter_badnames(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
-{
-       BOOL ret = True;
-       char *name;
-
-       ret &= test_OpenPrinter_badname(p, mem_ctx, "__INVALID_PRINTER__");
-       ret &= test_OpenPrinter_badname(p, mem_ctx, "\\\\__INVALID_HOST__");
-       ret &= test_OpenPrinter_badname(p, mem_ctx, "");
-       ret &= test_OpenPrinter_badname(p, mem_ctx, "\\\\\\");
-       ret &= test_OpenPrinter_badname(p, mem_ctx, "\\\\\\__INVALID_PRINTER__");
-
-       name = talloc_asprintf(mem_ctx, "\\\\%s\\", dcerpc_server_name(p));
-       ret &= test_OpenPrinter_badname(p, mem_ctx, name);
-       talloc_free(name);
-
-       name = talloc_asprintf(mem_ctx, "\\\\%s\\__INVALID_PRINTER__", dcerpc_server_name(p));
-       ret &= test_OpenPrinter_badname(p, mem_ctx, name);
-       talloc_free(name);
-
-       return ret;
-}
-
-static BOOL test_OpenPrinter(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_OpenPrinter(struct torture_context *tctx, 
+                            struct dcerpc_pipe *p, 
                             const char *name)
 {
        NTSTATUS status;
        struct spoolss_OpenPrinter r;
        struct policy_handle handle;
-       BOOL ret = True;
+       bool ret = true;
 
-       r.in.printername        = talloc_asprintf(mem_ctx, "\\\\%s\\%s", dcerpc_server_name(p), name);
+       r.in.printername        = talloc_asprintf(tctx, "\\\\%s\\%s", dcerpc_server_name(p), name);
        r.in.datatype           = NULL;
        r.in.devmode_ctr.devmode= NULL;
        r.in.access_mask        = SEC_FLAG_MAXIMUM_ALLOWED;
        r.out.handle            = &handle;
 
-       printf("\nTesting OpenPrinter(%s)\n", r.in.printername);
+       torture_comment(tctx, "Testing OpenPrinter(%s)\n", r.in.printername);
 
-       status = dcerpc_spoolss_OpenPrinter(p, mem_ctx, &r);
+       status = dcerpc_spoolss_OpenPrinter(p, tctx, &r);
 
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("OpenPrinter failed - %s\n", nt_errstr(status));
-               return False;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "OpenPrinter failed");
 
-       if (!W_ERROR_IS_OK(r.out.result)) {
-               printf("OpenPrinter failed - %s\n", win_errstr(r.out.result));
-               return False;
-       }
+       torture_assert_werr_ok(tctx, r.out.result, "OpenPrinter failed");
 
-       if (!test_GetPrinter(p, mem_ctx, &handle)) {
-               ret = False;
+       if (!test_GetPrinter(tctx, p, &handle)) {
+               ret = false;
        }
 
-       if (!test_SecondaryClosePrinter(p, mem_ctx, &handle)) {
-               ret = False;
+       if (!test_SecondaryClosePrinter(tctx, p, &handle)) {
+               ret = false;
        }
 
-       if (!test_ClosePrinter(p, mem_ctx, &handle)) {
-               ret = False;
+       if (!test_ClosePrinter(tctx, p, &handle)) {
+               ret = false;
        }
 
        return ret;
 }
 
-static BOOL call_OpenPrinterEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool call_OpenPrinterEx(struct torture_context *tctx, 
+                              struct dcerpc_pipe *p, 
                               const char *name, struct policy_handle *handle)
 {
        struct spoolss_OpenPrinterEx r;
@@ -1804,10 +1427,10 @@ static BOOL call_OpenPrinterEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        NTSTATUS status;
 
        if (name && name[0]) {
-               r.in.printername = talloc_asprintf(mem_ctx, "\\\\%s\\%s", 
+               r.in.printername = talloc_asprintf(tctx, "\\\\%s\\%s", 
                                                   dcerpc_server_name(p), name);
        } else {
-               r.in.printername = talloc_asprintf(mem_ctx, "\\\\%s", 
+               r.in.printername = talloc_asprintf(tctx, "\\\\%s", 
                                                   dcerpc_server_name(p));
        }
 
@@ -1826,87 +1449,82 @@ static BOOL call_OpenPrinterEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        userlevel1.minor = 3;
        userlevel1.processor = 4;
 
-       printf("Testing OpenPrinterEx(%s)\n", r.in.printername);
+       torture_comment(tctx, "Testing OpenPrinterEx(%s)\n", r.in.printername);
 
-       status = dcerpc_spoolss_OpenPrinterEx(p, mem_ctx, &r);
+       status = dcerpc_spoolss_OpenPrinterEx(p, tctx, &r);
 
-       if (!NT_STATUS_IS_OK(status)) {
-               printf("OpenPrinterEx failed - %s\n", nt_errstr(status));
-               return False;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "OpenPrinterEx failed");
        
-       if (!W_ERROR_IS_OK(r.out.result)) {
-               printf("OpenPrinterEx failed - %s\n", win_errstr(r.out.result));
-               return False;
-       }
+       torture_assert_werr_ok(tctx, r.out.result, "OpenPrinterEx failed");
 
-       return True;
+       return true;
 }
 
-static BOOL test_OpenPrinterEx(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_OpenPrinterEx(struct torture_context *tctx, 
+                              struct dcerpc_pipe *p, 
                               const char *name)
 {
        struct policy_handle handle;
-       BOOL ret = True;
+       bool ret = true;
 
-       if (!call_OpenPrinterEx(p, mem_ctx, name, &handle)) {
-               return False;
+       if (!call_OpenPrinterEx(tctx, p, name, &handle)) {
+               return false;
        }
 
-       if (!test_GetPrinter(p, mem_ctx, &handle)) {
-               ret = False;
+       if (!test_GetPrinter(tctx, p, &handle)) {
+               ret = false;
        }
 
-       if (!test_EnumForms(p, mem_ctx, &handle, False)) {
-               ret = False;
+       if (!test_EnumForms(tctx, p, &handle, false)) {
+               ret = false;
        }
 
-       if (!test_AddForm(p, mem_ctx, &handle, False)) {
-               ret = False;
+       if (!test_AddForm(tctx, p, &handle, false)) {
+               ret = false;
        }
 
-       if (!test_EnumPrinterData(p, mem_ctx, &handle)) {
-               ret = False;
+       if (!test_EnumPrinterData(tctx, p, &handle)) {
+               ret = false;
        }
 
-       if (!test_EnumPrinterDataEx(p, mem_ctx, &handle)) {
-               ret = False;
+       if (!test_EnumPrinterDataEx(tctx, p, &handle)) {
+               ret = false;
        }
 
-       if (!test_PausePrinter(p, mem_ctx, &handle)) {
-               ret = False;
+       if (!test_PausePrinter(tctx, p, &handle)) {
+               ret = false;
        }
 
-       if (!test_DoPrintTest(p, mem_ctx, &handle)) {
-               ret = False;
+       if (!test_DoPrintTest(tctx, p, &handle)) {
+               ret = false;
        }
 
-       if (!test_ResumePrinter(p, mem_ctx, &handle)) {
-               ret = False;
+       if (!test_ResumePrinter(tctx, p, &handle)) {
+               ret = false;
        }
 
-       if (!test_SetPrinterData(p, mem_ctx, &handle)) {
-               ret = False;
+       if (!test_SetPrinterData(tctx, p, &handle)) {
+               ret = false;
        }
 
-       if (!test_SecondaryClosePrinter(p, mem_ctx, &handle)) {
-               ret = False;
+       if (!test_SecondaryClosePrinter(tctx, p, &handle)) {
+               ret = false;
        }
 
-       if (!test_ClosePrinter(p, mem_ctx, &handle)) {
-               ret = False;
+       if (!test_ClosePrinter(tctx, p, &handle)) {
+               ret = false;
        }
        
        return ret;
 }
 
-static BOOL test_EnumPrinters_old(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_EnumPrinters_old(struct torture_context *tctx, struct dcerpc_pipe *p)
 {
        struct spoolss_EnumPrinters r;
        NTSTATUS status;
        uint16_t levels[] = {1, 2, 4, 5};
        int i;
-       BOOL ret = True;
+       bool ret = true;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                union spoolss_PrinterInfo *info;
@@ -1918,38 +1536,26 @@ static BOOL test_EnumPrinters_old(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
                r.in.buffer     = NULL;
                r.in.offered    = 0;
 
-               printf("\nTesting EnumPrinters level %u\n", r.in.level);
+               torture_comment(tctx, "Testing EnumPrinters level %u\n", r.in.level);
 
-               status = dcerpc_spoolss_EnumPrinters(p, mem_ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("EnumPrinters failed - %s\n", nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
+               status = dcerpc_spoolss_EnumPrinters(p, tctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "EnumPrinters failed");
 
                if (W_ERROR_EQUAL(r.out.result, WERR_INSUFFICIENT_BUFFER)) {
-                       DATA_BLOB blob = data_blob_talloc(mem_ctx, NULL, r.out.needed);
+                       DATA_BLOB blob = data_blob_talloc(tctx, NULL, r.out.needed);
                        data_blob_clear(&blob);
                        r.in.buffer = &blob;
                        r.in.offered = r.out.needed;
-                       status = dcerpc_spoolss_EnumPrinters(p, mem_ctx, &r);
+                       status = dcerpc_spoolss_EnumPrinters(p, tctx, &r);
                }
 
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("EnumPrinters failed - %s\n", 
-                              nt_errstr(status));
-                       continue;
-               }
+               torture_assert_ntstatus_ok(tctx, status, "EnumPrinters failed");
 
-               if (!W_ERROR_IS_OK(r.out.result)) {
-                       printf("EnumPrinters failed - %s\n", 
-                              win_errstr(r.out.result));
-                       continue;
-               }
+               torture_assert_werr_ok(tctx, r.out.result, "EnumPrinters failed");
 
                if (!r.out.info) {
-                       printf("No printers returned\n");
-                       continue;
+                       torture_comment(tctx, "No printers returned\n");
+                       return true;
                }
 
                info = r.out.info;
@@ -1957,14 +1563,14 @@ static BOOL test_EnumPrinters_old(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
                for (j=0;j<r.out.count;j++) {
                        if (r.in.level == 1) {
                                /* the names appear to be comma-separated name lists? */
-                               char *name = talloc_strdup(mem_ctx, info[j].info1.name);
+                               char *name = talloc_strdup(tctx, info[j].info1.name);
                                char *comma = strchr(name, ',');
                                if (comma) *comma = 0;
-                               if (!test_OpenPrinter(p, mem_ctx, name)) {
-                                       ret = False;
+                               if (!test_OpenPrinter(tctx, p, name)) {
+                                       ret = false;
                                }
-                               if (!test_OpenPrinterEx(p, mem_ctx, name)) {
-                                       ret = False;
+                               if (!test_OpenPrinterEx(tctx, p, name)) {
+                                       ret = false;
                                }
                        }
                }
@@ -1974,7 +1580,7 @@ static BOOL test_EnumPrinters_old(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
 }
 
 #if 0
-static BOOL test_GetPrinterDriver2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_GetPrinterDriver2(struct dcerpc_pipe *p, 
                                   struct policy_handle *handle, 
                                   const char *driver_name)
 {
@@ -1991,134 +1597,163 @@ static BOOL test_GetPrinterDriver2(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 
        printf("Testing GetPrinterDriver2\n");
 
-       status = dcerpc_spoolss_GetPrinterDriver2(p, mem_ctx, &r);
+       status = dcerpc_spoolss_GetPrinterDriver2(p, tctx, &r);
        if (!NT_STATUS_IS_OK(status)) {
                printf("GetPrinterDriver2 failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        if (W_ERROR_EQUAL(r.out.result, WERR_INSUFFICIENT_BUFFER)) {
                r.in.offered = r.out.needed;
-               status = dcerpc_spoolss_GetPrinterDriver2(p, mem_ctx, &r);
+               status = dcerpc_spoolss_GetPrinterDriver2(p, tctx, &r);
        }
                
        if (!NT_STATUS_IS_OK(status)) {
                printf("GetPrinterDriver2 failed - %s\n", 
                       nt_errstr(status));
-               return False;
+               return false;
        }
 
        if (!W_ERROR_IS_OK(r.out.result)) {
                printf("GetPrinterDriver2 failed - %s\n", 
                       win_errstr(r.out.result));
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 #endif
 
-static BOOL test_EnumPrinterDrivers_old(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx)
+static bool test_EnumPrinterDrivers_old(struct torture_context *tctx, 
+                                       struct dcerpc_pipe *p)
 {
        struct spoolss_EnumPrinterDrivers r;
        NTSTATUS status;
        uint16_t levels[] = {1, 2, 3, 4, 5, 6};
        int i;
-       BOOL ret = True;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
 
-               r.in.server = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
+               r.in.server = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
                r.in.environment = "Windows NT x86";
                r.in.level = levels[i];
                r.in.buffer = NULL;
                r.in.offered = 0;
 
-               printf("\nTesting EnumPrinterDrivers level %u\n", r.in.level);
+               torture_comment(tctx, "Testing EnumPrinterDrivers level %u\n", r.in.level);
 
-               status = dcerpc_spoolss_EnumPrinterDrivers(p, mem_ctx, &r);
+               status = dcerpc_spoolss_EnumPrinterDrivers(p, tctx, &r);
 
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("EnumPrinterDrivers failed - %s\n", 
-                              nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
+               torture_assert_ntstatus_ok(tctx, status, "EnumPrinterDrivers failed");
 
                if (W_ERROR_EQUAL(r.out.result, WERR_INSUFFICIENT_BUFFER)) {
-                       DATA_BLOB blob = data_blob_talloc(mem_ctx, NULL, r.out.needed);
+                       DATA_BLOB blob = data_blob_talloc(tctx, NULL, r.out.needed);
                        data_blob_clear(&blob);
                        r.in.buffer = &blob;
                        r.in.offered = r.out.needed;
-                       status = dcerpc_spoolss_EnumPrinterDrivers(p, mem_ctx, &r);
+                       status = dcerpc_spoolss_EnumPrinterDrivers(p, tctx, &r);
                }
 
-               if (!NT_STATUS_IS_OK(status)) {
-                       printf("EnumPrinterDrivers failed - %s\n", 
-                              nt_errstr(status));
-                       ret = False;
-                       break;
-               }
+               torture_assert_ntstatus_ok(tctx, status, "EnumPrinterDrivers failed");
 
-               if (!W_ERROR_IS_OK(r.out.result)) {
-                       printf("EnumPrinterDrivers failed - %s\n", 
-                              win_errstr(r.out.result));
-                       ret = False;
-                       break;
-               }
+               torture_assert_werr_ok(tctx, r.out.result, "EnumPrinterDrivers failed");
 
                if (!r.out.info) {
-                       printf("No printer drivers returned\n");
+                       torture_comment(tctx, "No printer drivers returned\n");
                        break;
                }
        }
 
-       return ret;
+       return true;
+}
+
+/** Test that makes sure that calling ReplyOpenPrinter()
+ * on Samba 4 will cause an irpc broadcast call.
+ */
+static bool test_ReplyOpenPrinter(struct torture_context *tctx, 
+                                 struct dcerpc_pipe *pipe)
+{
+       struct spoolss_ReplyOpenPrinter r;
+       struct spoolss_ReplyClosePrinter s;
+       struct policy_handle h;
+
+       r.in.server_name = "earth";
+       r.in.printer_local = 2;
+       r.in.type = REG_DWORD;
+       r.in.unknown1 = 0;
+       r.in.unknown2 = 0;
+       r.out.handle = &h;
+
+       torture_assert_ntstatus_ok(tctx, 
+                       dcerpc_spoolss_ReplyOpenPrinter(pipe, tctx, &r),
+                       "spoolss_ReplyOpenPrinter call failed");
+
+       torture_assert_werr_ok(tctx, r.out.result, "error return code");
+
+       s.in.handle = &h;
+       s.out.handle = &h;
+
+       torture_assert_ntstatus_ok(tctx,
+                       dcerpc_spoolss_ReplyClosePrinter(pipe, tctx, &s),
+                       "spoolss_ReplyClosePrinter call failed");
+
+       torture_assert_werr_ok(tctx, r.out.result, "error return code");
+
+       return true;
 }
 
 bool torture_rpc_spoolss(struct torture_context *torture)
 {
-    NTSTATUS status;
-    struct dcerpc_pipe *p;
-       BOOL ret = True;
+       NTSTATUS status;
+       struct dcerpc_pipe *p;
+       bool ret = true;
        struct test_spoolss_context *ctx;
 
        status = torture_rpc_connection(torture, &p, &ndr_table_spoolss);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
        ctx = talloc_zero(torture, struct test_spoolss_context);
-       ctx->p  = p;
-
-       ret &= test_OpenPrinter_server(ctx);
-
-       ret &= test_GetPrinterData(ctx->p, ctx, &ctx->server_handle, "W3SvcInstalled");
-       ret &= test_GetPrinterData(ctx->p, ctx, &ctx->server_handle, "BeepEnabled");
-       ret &= test_GetPrinterData(ctx->p, ctx, &ctx->server_handle, "EventLog");
-       ret &= test_GetPrinterData(ctx->p, ctx, &ctx->server_handle, "NetPopup");
-       ret &= test_GetPrinterData(ctx->p, ctx, &ctx->server_handle, "NetPopupToComputer");
-       ret &= test_GetPrinterData(ctx->p, ctx, &ctx->server_handle, "MajorVersion");
-       ret &= test_GetPrinterData(ctx->p, ctx, &ctx->server_handle, "MinorVersion");
-       ret &= test_GetPrinterData(ctx->p, ctx, &ctx->server_handle, "DefaultSpoolDirectory");
-       ret &= test_GetPrinterData(ctx->p, ctx, &ctx->server_handle, "Architecture");
-       ret &= test_GetPrinterData(ctx->p, ctx, &ctx->server_handle, "DsPresent");
-       ret &= test_GetPrinterData(ctx->p, ctx, &ctx->server_handle, "OSVersion");
-       ret &= test_GetPrinterData(ctx->p, ctx, &ctx->server_handle, "OSVersionEx");
-       ret &= test_GetPrinterData(ctx->p, ctx, &ctx->server_handle, "DNSMachineName");
-       ret &= test_EnumForms(ctx->p, ctx, &ctx->server_handle, True);
-       ret &= test_AddForm(ctx->p, ctx, &ctx->server_handle, True);
-       ret &= test_EnumPorts(ctx);
-       ret &= test_GetPrinterDriverDirectory(ctx);
-       ret &= test_EnumPrinterDrivers(ctx);
-       ret &= test_EnumMonitors(ctx);
-       ret &= test_EnumPrintProcessors(ctx);
-       ret &= test_EnumPrinters(ctx);
-       ret &= test_OpenPrinter_badnames(p, torture);
-       ret &= test_AddPort(p, torture);
-       ret &= test_EnumPorts_old(p, torture);
-       ret &= test_EnumPrinters_old(p, torture);
-       ret &= test_EnumPrinterDrivers_old(p, torture);
+
+       ret &= test_OpenPrinter_server(torture, p, ctx);
+
+       ret &= test_GetPrinterData(torture, p, &ctx->server_handle, "W3SvcInstalled");
+       ret &= test_GetPrinterData(torture, p, &ctx->server_handle, "BeepEnabled");
+       ret &= test_GetPrinterData(torture, p, &ctx->server_handle, "EventLog");
+       ret &= test_GetPrinterData(torture, p, &ctx->server_handle, "NetPopup");
+       ret &= test_GetPrinterData(torture, p, &ctx->server_handle, "NetPopupToComputer");
+       ret &= test_GetPrinterData(torture, p, &ctx->server_handle, "MajorVersion");
+       ret &= test_GetPrinterData(torture, p, &ctx->server_handle, "MinorVersion");
+       ret &= test_GetPrinterData(torture, p, &ctx->server_handle, "DefaultSpoolDirectory");
+       ret &= test_GetPrinterData(torture, p, &ctx->server_handle, "Architecture");
+       ret &= test_GetPrinterData(torture, p, &ctx->server_handle, "DsPresent");
+       ret &= test_GetPrinterData(torture, p, &ctx->server_handle, "OSVersion");
+       ret &= test_GetPrinterData(torture, p, &ctx->server_handle, "OSVersionEx");
+       ret &= test_GetPrinterData(torture, p, &ctx->server_handle, "DNSMachineName");
+       ret &= test_EnumForms(torture, p, &ctx->server_handle, true);
+       ret &= test_AddForm(torture, p, &ctx->server_handle, true);
+       ret &= test_EnumPorts(torture, p, ctx);
+       ret &= test_GetPrinterDriverDirectory(torture, p, ctx);
+       ret &= test_EnumPrinterDrivers(torture, p, ctx);
+       ret &= test_EnumMonitors(torture, p, ctx);
+       ret &= test_EnumPrintProcessors(torture, p, ctx);
+       ret &= test_EnumPrinters(torture, p, ctx);
+       ret &= test_OpenPrinter_badname(torture, p, "__INVALID_PRINTER__");
+       ret &= test_OpenPrinter_badname(torture, p, "\\\\__INVALID_HOST__");
+       ret &= test_OpenPrinter_badname(torture, p, "");
+       ret &= test_OpenPrinter_badname(torture, p, "\\\\\\");
+       ret &= test_OpenPrinter_badname(torture, p, "\\\\\\__INVALID_PRINTER__");
+       ret &= test_OpenPrinter_badname(torture, p, talloc_asprintf(torture, "\\\\%s\\", dcerpc_server_name(p)));
+       ret &= test_OpenPrinter_badname(torture, p, 
+                                       talloc_asprintf(torture, "\\\\%s\\__INVALID_PRINTER__", dcerpc_server_name(p)));
+
+
+       ret &= test_AddPort(torture, p);
+       ret &= test_EnumPorts_old(torture, p);
+       ret &= test_EnumPrinters_old(torture, p);
+       ret &= test_EnumPrinterDrivers_old(torture, p);
+       ret &= test_ReplyOpenPrinter(torture, p);
 
        return ret;
 }
diff --git a/source/torture/rpc/spoolss_notify.c b/source/torture/rpc/spoolss_notify.c
new file mode 100644 (file)
index 0000000..e44c2a8
--- /dev/null
@@ -0,0 +1,296 @@
+/* 
+   Unix SMB/CIFS implementation.
+   test suite for spoolss rpc notify operations
+
+   Copyright (C) Jelmer Vernooij 2007
+   
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+   
+   This program 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 General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#include "includes.h"
+#include "torture/torture.h"
+#include "torture/ui.h"
+#include "torture/rpc/rpc.h"
+#include "librpc/gen_ndr/ndr_spoolss_c.h"
+#include "rpc_server/dcerpc_server.h"
+#include "lib/events/events.h"
+#include "smbd/process_model.h"
+#include "smb_server/smb_server.h"
+#include "lib/socket/netif.h"
+#include "dlinklist.h"
+#include "ntvfs/ntvfs.h"
+#include "param/param.h"
+
+static NTSTATUS spoolss__op_bind(struct dcesrv_call_state *dce_call, const struct dcesrv_interface *iface)
+{
+       return NT_STATUS_OK;
+}
+
+static void spoolss__op_unbind(struct dcesrv_connection_context *context, const struct dcesrv_interface *iface)
+{
+}
+
+static NTSTATUS spoolss__op_ndr_pull(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct ndr_pull *pull, void **r)
+{
+       NTSTATUS status;
+       uint16_t opnum = dce_call->pkt.u.request.opnum;
+
+       dce_call->fault_code = 0;
+
+       if (opnum >= ndr_table_spoolss.num_calls) {
+               dce_call->fault_code = DCERPC_FAULT_OP_RNG_ERROR;
+               return NT_STATUS_NET_WRITE_FAULT;
+       }
+
+       *r = talloc_size(mem_ctx, ndr_table_spoolss.calls[opnum].struct_size);
+       NT_STATUS_HAVE_NO_MEMORY(*r);
+
+        /* unravel the NDR for the packet */
+       status = ndr_table_spoolss.calls[opnum].ndr_pull(pull, NDR_IN, *r);
+       if (!NT_STATUS_IS_OK(status)) {
+               dcerpc_log_packet(&ndr_table_spoolss, opnum, NDR_IN,
+                                 &dce_call->pkt.u.request.stub_and_verifier);
+               dce_call->fault_code = DCERPC_FAULT_NDR;
+               return NT_STATUS_NET_WRITE_FAULT;
+       }
+
+       return NT_STATUS_OK;
+}
+
+/* FIXME: What context does this belong in ? -- JRV20070903 */
+static struct received_packet {
+       uint16_t opnum;
+       void *r;
+       struct received_packet *prev, *next;
+} *received_packets = NULL;
+
+
+static NTSTATUS spoolss__op_dispatch(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, void *r)
+{
+       uint16_t opnum = dce_call->pkt.u.request.opnum;
+       struct received_packet *rp;
+
+       rp = talloc_zero(mem_ctx, struct received_packet);
+       rp->opnum = opnum;
+       rp->r = talloc_reference(mem_ctx, r);
+
+       DLIST_ADD_END(received_packets, rp, struct received_packet *);
+
+       switch (opnum) {
+       case 58: {
+               struct spoolss_ReplyOpenPrinter *r2 = (struct spoolss_ReplyOpenPrinter *)r;
+               r2->out.result = WERR_OK;
+               break;
+       }
+
+       default:
+               dce_call->fault_code = DCERPC_FAULT_OP_RNG_ERROR;
+               break;
+       }
+
+       if (dce_call->fault_code != 0) {
+               dcerpc_log_packet(&ndr_table_spoolss, opnum, NDR_IN,
+                                 &dce_call->pkt.u.request.stub_and_verifier);
+               return NT_STATUS_NET_WRITE_FAULT;
+       }
+       return NT_STATUS_OK;
+}
+
+
+static NTSTATUS spoolss__op_reply(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, void *r)
+{
+       return NT_STATUS_OK;
+}
+
+
+static NTSTATUS spoolss__op_ndr_push(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct ndr_push *push, const void *r)
+{
+       NTSTATUS status;
+       uint16_t opnum = dce_call->pkt.u.request.opnum;
+
+       status = ndr_table_spoolss.calls[opnum].ndr_push(push, NDR_OUT, r);
+       if (!NT_STATUS_IS_OK(status)) {
+               dce_call->fault_code = DCERPC_FAULT_NDR;
+               return NT_STATUS_NET_WRITE_FAULT;
+       }
+
+       return NT_STATUS_OK;
+}
+
+const static struct dcesrv_interface notify_test_spoolss_interface = {
+       .name           = "spoolss",
+       .syntax_id  = {{0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},1.0},
+       .bind           = spoolss__op_bind,
+       .unbind         = spoolss__op_unbind,
+       .ndr_pull       = spoolss__op_ndr_pull,
+       .dispatch       = spoolss__op_dispatch,
+       .reply          = spoolss__op_reply,
+       .ndr_push       = spoolss__op_ndr_push
+};
+
+static bool spoolss__op_interface_by_uuid(struct dcesrv_interface *iface, const struct GUID *uuid, uint32_t if_version)
+{
+       if (notify_test_spoolss_interface.syntax_id.if_version == if_version &&
+               GUID_equal(&notify_test_spoolss_interface.syntax_id.uuid, uuid)) {
+               memcpy(iface,&notify_test_spoolss_interface, sizeof(*iface));
+               return true;
+       }
+
+       return false;
+}
+
+static bool spoolss__op_interface_by_name(struct dcesrv_interface *iface, const char *name)
+{
+       if (strcmp(notify_test_spoolss_interface.name, name)==0) {
+               memcpy(iface, &notify_test_spoolss_interface, sizeof(*iface));
+               return true;
+       }
+
+       return false;   
+}
+
+static NTSTATUS spoolss__op_init_server(struct dcesrv_context *dce_ctx, const struct dcesrv_endpoint_server *ep_server)
+{
+       int i;
+
+       for (i=0;i<ndr_table_spoolss.endpoints->count;i++) {
+               NTSTATUS ret;
+               const char *name = ndr_table_spoolss.endpoints->names[i];
+
+               ret = dcesrv_interface_register(dce_ctx, name, &notify_test_spoolss_interface, NULL);
+               if (!NT_STATUS_IS_OK(ret)) {
+                       DEBUG(1,("spoolss_op_init_server: failed to register endpoint '%s'\n",name));
+                       return ret;
+               }
+       }
+
+       return NT_STATUS_OK;
+}
+
+static bool test_RFFPCNEx(struct torture_context *tctx, 
+                         struct dcerpc_pipe *p)
+{
+       struct spoolss_OpenPrinter q;
+       struct spoolss_RemoteFindFirstPrinterChangeNotifyEx r;
+       struct dcesrv_endpoint_server ep_server;
+       NTSTATUS status;
+       struct dcesrv_context *dce_ctx;
+       const char *endpoints[] = { "spoolss", NULL };
+       struct spoolss_NotifyOptionsContainer t1;
+       struct spoolss_ClosePrinter cp;
+
+       struct policy_handle handle;
+       const char *address;
+
+       ZERO_STRUCT(q);
+
+       q.in.printername        = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
+       q.in.datatype           = NULL;
+       q.in.devmode_ctr.devmode= NULL;
+       q.in.access_mask        = SEC_FLAG_MAXIMUM_ALLOWED;
+       q.out.handle            = &handle;
+
+       torture_comment(tctx, "Testing OpenPrinter(%s)\n", q.in.printername);
+
+       status = dcerpc_spoolss_OpenPrinter(p, tctx, &q);
+
+       torture_assert_ntstatus_ok(tctx, status, "OpenPrinter failed");
+
+       torture_assert_werr_ok(tctx, q.out.result, "OpenPrinter failed");
+
+       /* Start DCE/RPC server */
+
+       /* fill in our name */
+       ep_server.name = "spoolss";
+
+       /* fill in all the operations */
+       ep_server.init_server = spoolss__op_init_server;
+
+       ep_server.interface_by_uuid = spoolss__op_interface_by_uuid;
+       ep_server.interface_by_name = spoolss__op_interface_by_name;
+
+       torture_assert_ntstatus_ok(tctx, dcerpc_register_ep_server(&ep_server),
+                                 "unable to register spoolss server");
+
+       lp_set_cmdline(global_loadparm, "dcerpc endpoint servers", "spoolss");
+
+       address = iface_n_ip(0);
+       torture_comment(tctx, "Listening for callbacks on %s\n", address);
+       status = smbsrv_add_socket(p->conn->event_ctx, &single_ops, address);
+       torture_assert_ntstatus_ok(tctx, status, "starting smb server");
+
+       status = dcesrv_init_context(tctx, endpoints, &dce_ctx);
+       torture_assert_ntstatus_ok(tctx, status, 
+                                  "unable to initialize DCE/RPC server");
+
+
+       r.in.flags = 0;
+       r.in.str = talloc_asprintf(tctx, "\\\\%s", address);
+       r.in.options = 0;
+       r.in.printer_local = 123;
+       t1.version = 2;
+       t1.flags = 0;
+       t1.count = 2;
+       t1.options = talloc_zero_array(tctx, struct spoolss_NotifyOptionsArray, 2);
+       t1.options[0].type = SPOOLSS_NOTIFY_PRINTER;
+       t1.options[0].count = 1;
+       t1.options[0].fields = talloc_array(t1.options, enum spoolss_Field, 1);
+       t1.options[0].fields[0] = SPOOLSS_FIELD_SERVER_NAME;
+
+       t1.options[1].type = SPOOLSS_NOTIFY_JOB;
+       t1.options[1].count = 1;
+       t1.options[1].fields = talloc_array(t1.options, enum spoolss_Field, 1);
+       t1.options[1].fields[0] = SPOOLSS_FIELD_PRINTER_NAME;
+
+       r.in.t1 = &t1;
+       r.in.handle = &handle;
+
+
+       status = dcerpc_spoolss_RemoteFindFirstPrinterChangeNotifyEx(p, tctx, &r);
+
+       torture_assert_ntstatus_ok(tctx, status, "FFPCNEx failed");
+       
+       torture_assert_werr_ok(tctx, r.out.result, "error return code for FFPCNEx");
+
+       cp.in.handle = &handle;
+       cp.out.handle = &handle;
+
+       torture_comment(tctx, "Testing ClosePrinter\n");
+
+       status = dcerpc_spoolss_ClosePrinter(p, tctx, &cp);
+       torture_assert_ntstatus_ok(tctx, status, "ClosePrinter failed");
+
+       /* We should've had an incoming packet 58 (ReplyOpenPrinter) */
+       torture_assert(tctx, received_packets != NULL, "no packets received");
+       torture_assert_int_equal(tctx, received_packets->opnum, 58, "invalid opnum");
+
+       /* Shut down DCE/RPC server */
+       talloc_free(dce_ctx);
+
+       return true;
+}
+
+struct torture_suite *torture_rpc_spoolss_notify(TALLOC_CTX *mem_ctx)
+{
+       struct torture_suite *suite = torture_suite_create(mem_ctx, "SPOOLSS-NOTIFY");
+       
+       struct torture_rpc_tcase *tcase = torture_suite_add_rpc_iface_tcase(suite, 
+                                                       "notify", &ndr_table_spoolss);
+
+       ntvfs_init();
+       torture_rpc_tcase_add_test(tcase, "testRFFPCNEx", test_RFFPCNEx);
+       
+       return suite;
+}
index a51dc96876efbafdf88edfdab1ce160e994f25ed..1fe1221b0d67c2a18ca2d709dc2ca56ef2b7968d 100644 (file)
 /**************************/
 /* srvsvc_NetCharDev      */
 /**************************/
-static BOOL test_NetCharDevGetInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, 
+static bool test_NetCharDevGetInfo(struct dcerpc_pipe *p, struct torture_context *tctx,
                                const char *devname)
 {
        NTSTATUS status;
        struct srvsvc_NetCharDevGetInfo r;
        uint32_t levels[] = {0, 1};
        int i;
-       BOOL ret = True;
 
-       r.in.server_unc = talloc_asprintf(mem_ctx,"\\\\%s",dcerpc_server_name(p));
+       r.in.server_unc = talloc_asprintf(tctx,"\\\\%s",dcerpc_server_name(p));
        r.in.device_name = devname;
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                ZERO_STRUCT(r.out);
                r.in.level = levels[i];
-               d_printf("testing NetCharDevGetInfo level %u on device '%s'\n",
+               torture_comment(tctx, "testing NetCharDevGetInfo level %u on device '%s'\n",
                        r.in.level, r.in.device_name);
-               status = dcerpc_srvsvc_NetCharDevGetInfo(p, mem_ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       d_printf("NetCharDevGetInfo level %u on device '%s' failed - %s\n",
-                               r.in.level, r.in.device_name, nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
-               if (!W_ERROR_IS_OK(r.out.result)) {
-                       d_printf("NetCharDevGetInfo level %u on device '%s' failed - %s\n",
-                               r.in.level, r.in.device_name, win_errstr(r.out.result));
-                       continue;
-               }
+               status = dcerpc_srvsvc_NetCharDevGetInfo(p, tctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "NetCharDevGetInfo failed");
+               torture_assert_werr_ok(tctx, r.out.result, "NetCharDevGetInfo failed");
        }
 
-       return ret;
+       return true;
 }
 
-static BOOL test_NetCharDevControl(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_NetCharDevControl(struct dcerpc_pipe *p, struct torture_context *tctx,
                                const char *devname)
 {
        NTSTATUS status;
        struct srvsvc_NetCharDevControl r;
        uint32_t opcodes[] = {0, 1};
        int i;
-       BOOL ret = True;
 
-       r.in.server_unc = talloc_asprintf(mem_ctx,"\\\\%s",dcerpc_server_name(p));
+       r.in.server_unc = talloc_asprintf(tctx,"\\\\%s",dcerpc_server_name(p));
        r.in.device_name = devname;
 
        for (i=0;i<ARRAY_SIZE(opcodes);i++) {
                ZERO_STRUCT(r.out);
                r.in.opcode = opcodes[i];
-               d_printf("testing NetCharDevControl opcode %u on device '%s'\n", 
+               torture_comment(tctx, "testing NetCharDevControl opcode %u on device '%s'\n", 
                        r.in.opcode, r.in.device_name);
-               status = dcerpc_srvsvc_NetCharDevControl(p, mem_ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       d_printf("NetCharDevControl opcode %u failed - %s\n", r.in.opcode, nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
-               if (!W_ERROR_IS_OK(r.out.result)) {
-                       d_printf("NetCharDevControl opcode %u failed - %s\n", r.in.opcode, win_errstr(r.out.result));
-                       continue;
-               }
+               status = dcerpc_srvsvc_NetCharDevControl(p, tctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "NetCharDevControl failed");
+               torture_assert_werr_ok(tctx, r.out.result, "NetCharDevControl failed");
        }
 
-       return ret;
+       return true;
 }
 
 static bool test_NetCharDevEnum(struct torture_context *tctx, 
@@ -101,7 +83,6 @@ static bool test_NetCharDevEnum(struct torture_context *tctx,
        struct srvsvc_NetCharDevCtr0 c0;
        uint32_t levels[] = {0, 1};
        int i;
-       BOOL ret = True;
 
        r.in.server_unc = talloc_asprintf(tctx,"\\\\%s",dcerpc_server_name(p));
        r.in.ctr.ctr0 = &c0;
@@ -113,18 +94,13 @@ static bool test_NetCharDevEnum(struct torture_context *tctx,
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                int j;
 
-
                ZERO_STRUCT(r.out);
                r.in.level = levels[i];
-               printf("testing NetCharDevEnum level %u\n", r.in.level);
+               torture_comment(tctx, "testing NetCharDevEnum level %u\n", r.in.level);
                status = dcerpc_srvsvc_NetCharDevEnum(p, tctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       d_printf("NetCharDevEnum level %u failed - %s\n", r.in.level, nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
+               torture_assert_ntstatus_ok(tctx, status, "NetCharDevEnum failed");
                if (!W_ERROR_IS_OK(r.out.result)) {
-                       d_printf("NetCharDevEnum level %u failed - %s\n", r.in.level, win_errstr(r.out.result));
+                       torture_comment(tctx, "NetCharDevEnum failed: %s\n", win_errstr(r.out.result));
                        continue;
                }
 
@@ -134,58 +110,48 @@ static bool test_NetCharDevEnum(struct torture_context *tctx,
                                const char *device;
                                device = r.out.ctr.ctr1->array[j].device;
                                if (!test_NetCharDevGetInfo(p, tctx, device)) {
-                                       ret = False;
+                                       return false;
                                }
                                if (!test_NetCharDevControl(p, tctx, device)) {
-                                       ret = False;
+                                       return false;
                                }
                        }
                }
        }
 
-       return ret;
+       return true;
 }
 
 /**************************/
 /* srvsvc_NetCharDevQ     */
 /**************************/
-static BOOL test_NetCharDevQGetInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_NetCharDevQGetInfo(struct dcerpc_pipe *p, struct torture_context *tctx,
                                const char *devicequeue)
 {
        NTSTATUS status;
        struct srvsvc_NetCharDevQGetInfo r;
        uint32_t levels[] = {0, 1};
        int i;
-       BOOL ret = True;
 
-       r.in.server_unc = talloc_asprintf(mem_ctx,"\\\\%s",dcerpc_server_name(p));
+       r.in.server_unc = talloc_asprintf(tctx,"\\\\%s",dcerpc_server_name(p));
        r.in.queue_name = devicequeue;
-       r.in.user = talloc_asprintf(mem_ctx,"Administrator");
+       r.in.user = talloc_asprintf(tctx,"Administrator");
 
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                ZERO_STRUCT(r.out);
                r.in.level = levels[i];
-               d_printf("testing NetCharDevQGetInfo level %u on devicequeue '%s'\n",
+               torture_comment(tctx, "testing NetCharDevQGetInfo level %u on devicequeue '%s'\n",
                        r.in.level, r.in.queue_name);
-               status = dcerpc_srvsvc_NetCharDevQGetInfo(p, mem_ctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       d_printf("NetCharDevQGetInfo level %u on devicequeue '%s' failed - %s\n",
-                               r.in.level, r.in.queue_name, nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
-               if (!W_ERROR_IS_OK(r.out.result)) {
-                       printf("NetCharDevQGetInfo level %u on devicequeue '%s' failed - %s\n",
-                               r.in.level, r.in.queue_name, win_errstr(r.out.result));
-                       continue;
-               }
+               status = dcerpc_srvsvc_NetCharDevQGetInfo(p, tctx, &r);
+               torture_assert_ntstatus_ok(tctx, status, "NetCharDevQGetInfo failed");
+               torture_assert_werr_ok(tctx, r.out.result, "NetCharDevQGetInfo failed");
        }
 
-       return ret;
+       return true;
 }
 
 #if 0
-static BOOL test_NetCharDevQSetInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_NetCharDevQSetInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                                const char *devicequeue)
 {
        NTSTATUS status;
@@ -193,7 +159,7 @@ static BOOL test_NetCharDevQSetInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
        uint32_t parm_error;
        uint32_t levels[] = {0, 1};
        int i;
-       BOOL ret = True;
+       bool ret = true;
 
        r.in.server_unc = talloc_asprintf(mem_ctx,"\\\\%s",dcerpc_server_name(p));
        r.in.queue_name = devicequeue;
@@ -225,7 +191,7 @@ static BOOL test_NetCharDevQSetInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
                if (!NT_STATUS_IS_OK(status)) {
                        d_printf("NetCharDevQSetInfo level %u on devicequeue '%s' failed - %s\n",
                                r.in.level, r.in.queue_name, nt_errstr(status));
-                       ret = False;
+                       ret = false;
                        continue;
                }
                if (!W_ERROR_IS_OK(r.out.result)) {
@@ -239,15 +205,14 @@ static BOOL test_NetCharDevQSetInfo(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
 }
 #endif
 
-static BOOL test_NetCharDevQEnum(struct torture_context *tctx, 
-                                                                struct dcerpc_pipe *p)
+static bool test_NetCharDevQEnum(struct torture_context *tctx, 
+                                struct dcerpc_pipe *p)
 {
        NTSTATUS status;
        struct srvsvc_NetCharDevQEnum r;
        struct srvsvc_NetCharDevQCtr0 c0;
        uint32_t levels[] = {0, 1};
        int i;
-       BOOL ret = True;
 
        r.in.server_unc = talloc_asprintf(tctx,"\\\\%s",dcerpc_server_name(p));
        r.in.user = talloc_asprintf(tctx,"%s","Administrator");
@@ -262,15 +227,11 @@ static BOOL test_NetCharDevQEnum(struct torture_context *tctx,
 
                ZERO_STRUCT(r.out);
                r.in.level = levels[i];
-               printf("testing NetCharDevQEnum level %u\n", r.in.level);
+               torture_comment(tctx, "testing NetCharDevQEnum level %u\n", r.in.level);
                status = dcerpc_srvsvc_NetCharDevQEnum(p, tctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       d_printf("NetCharDevQEnum level %u failed - %s\n", r.in.level, nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
+               torture_assert_ntstatus_ok(tctx, status, "NetCharDevQEnum failed");
                if (!W_ERROR_IS_OK(r.out.result)) {
-                       d_printf("NetCharDevQEnum level %u failed - %s\n", r.in.level, win_errstr(r.out.result));
+                       torture_comment(tctx, "NetCharDevQEnum failed: %s\n", win_errstr(r.out.result));
                        continue;
                }
 
@@ -280,27 +241,26 @@ static BOOL test_NetCharDevQEnum(struct torture_context *tctx,
                                const char *device;
                                device = r.out.ctr.ctr1->array[j].device;
                                if (!test_NetCharDevQGetInfo(p, tctx, device)) {
-                                       ret = False;
+                                       return false;
                                }
                        }
                }
        }
 
-       return ret;
+       return true;
 }
 
 /**************************/
 /* srvsvc_NetConn         */
 /**************************/
-static BOOL test_NetConnEnum(struct torture_context *tctx,
-                                                        struct dcerpc_pipe *p)
+static bool test_NetConnEnum(struct torture_context *tctx,
+                            struct dcerpc_pipe *p)
 {
        NTSTATUS status;
        struct srvsvc_NetConnEnum r;
        struct srvsvc_NetConnCtr0 c0;
        uint32_t levels[] = {0, 1};
        int i;
-       BOOL ret = True;
 
        r.in.server_unc = talloc_asprintf(tctx,"\\\\%s",dcerpc_server_name(p));
        r.in.path = talloc_asprintf(tctx,"%s","ADMIN$");
@@ -313,34 +273,28 @@ static BOOL test_NetConnEnum(struct torture_context *tctx,
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                ZERO_STRUCT(r.out);
                r.in.level = levels[i];
-               d_printf("testing NetConnEnum level %u\n", r.in.level);
+               torture_comment(tctx, "testing NetConnEnum level %u\n", r.in.level);
                status = dcerpc_srvsvc_NetConnEnum(p, tctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       d_printf("NetConnEnum level %u failed - %s\n", r.in.level, nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
+               torture_assert_ntstatus_ok(tctx, status, "NetConnEnum failed");
                if (!W_ERROR_IS_OK(r.out.result)) {
-                       d_printf("NetConnEnum level %u failed - %s\n", r.in.level, win_errstr(r.out.result));
-                       continue;
+                       torture_comment(tctx, "NetConnEnum failed: %s\n", win_errstr(r.out.result));
                }
        }
 
-       return ret;
+       return true;
 }
 
 /**************************/
 /* srvsvc_NetFile         */
 /**************************/
-static BOOL test_NetFileEnum(struct torture_context *tctx,
-                                                        struct dcerpc_pipe *p)
+static bool test_NetFileEnum(struct torture_context *tctx,
+                            struct dcerpc_pipe *p)
 {
        NTSTATUS status;
        struct srvsvc_NetFileEnum r;
        struct srvsvc_NetFileCtr3 c3;
        uint32_t levels[] = {2, 3};
        int i;
-       BOOL ret = True;
 
        r.in.server_unc = talloc_asprintf(tctx,"\\\\%s",dcerpc_server_name(p));
        r.in.path = NULL;
@@ -354,34 +308,28 @@ static BOOL test_NetFileEnum(struct torture_context *tctx,
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                ZERO_STRUCT(r.out);
                r.in.level = levels[i];
-               d_printf("testing NetFileEnum level %u\n", r.in.level);
+               torture_comment(tctx, "testing NetFileEnum level %u\n", r.in.level);
                status = dcerpc_srvsvc_NetFileEnum(p, tctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       d_printf("NetFileEnum level %u failed - %s\n", r.in.level, nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
+               torture_assert_ntstatus_ok(tctx, status, "NetFileEnum failed");
                if (!W_ERROR_IS_OK(r.out.result)) {
-                       d_printf("NetFileEnum level %u failed - %s\n", r.in.level, win_errstr(r.out.result));
-                       continue;
+                       torture_comment(tctx, "NetFileEnum failed: %s\n", win_errstr(r.out.result));
                }
        }
 
-       return ret;
+       return true;
 }
 
 /**************************/
 /* srvsvc_NetSess         */
 /**************************/
-static BOOL test_NetSessEnum(struct torture_context *tctx,
-                                                        struct dcerpc_pipe *p)
+static bool test_NetSessEnum(struct torture_context *tctx,
+                            struct dcerpc_pipe *p)
 {
        NTSTATUS status;
        struct srvsvc_NetSessEnum r;
        struct srvsvc_NetSessCtr0 c0;
        uint32_t levels[] = {0, 1, 2, 10, 502};
        int i;
-       BOOL ret = True;
 
        r.in.server_unc = talloc_asprintf(tctx,"\\\\%s",dcerpc_server_name(p));
        r.in.client = NULL;
@@ -395,49 +343,37 @@ static BOOL test_NetSessEnum(struct torture_context *tctx,
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                ZERO_STRUCT(r.out);
                r.in.level = levels[i];
-               d_printf("testing NetSessEnum level %u\n", r.in.level);
+               torture_comment(tctx, "testing NetSessEnum level %u\n", r.in.level);
                status = dcerpc_srvsvc_NetSessEnum(p, tctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       d_printf("NetSessEnum level %u failed - %s\n", r.in.level, nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
+               torture_assert_ntstatus_ok(tctx, status, "NetSessEnum failed");
                if (!W_ERROR_IS_OK(r.out.result)) {
-                       d_printf("NetSessEnum level %u failed - %s\n", r.in.level, win_errstr(r.out.result));
-                       continue;
+                       torture_comment(tctx, "NetSessEnum failed: %s\n", win_errstr(r.out.result));
                }
        }
 
-       return ret;
+       return true;
 }
 
 /**************************/
 /* srvsvc_NetShare        */
 /**************************/
-static BOOL test_NetShareCheck(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx,
+static bool test_NetShareCheck(struct dcerpc_pipe *p, struct torture_context *tctx,
                               const char *device_name)
 {
        NTSTATUS status;
        struct srvsvc_NetShareCheck r;
-       BOOL ret = True;
 
-       r.in.server_unc = talloc_asprintf(mem_ctx, "\\\\%s", dcerpc_server_name(p));
+       r.in.server_unc = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
        r.in.device_name = device_name;
 
-       d_printf("testing NetShareCheck on device '%s'\n", r.in.device_name);
-
-       status = dcerpc_srvsvc_NetShareCheck(p, mem_ctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               d_printf("dcerpc_srvsvc_NetShareCheck on device '%s' failed - %s\n",
-                       r.in.device_name, nt_errstr(status));
-               ret = False;
-       } else if (!W_ERROR_IS_OK(r.out.result)) {
-               d_printf("NetShareCheck on device '%s' failed - %s\n",
-                       r.in.device_name, win_errstr(r.out.result));
-               ret = False;
-       }
+       torture_comment(tctx, 
+                       "testing NetShareCheck on device '%s'\n", r.in.device_name);
 
-       return ret;
+       status = dcerpc_srvsvc_NetShareCheck(p, tctx, &r);
+       torture_assert_ntstatus_ok(tctx, status, "dcerpc_srvsvc_NetShareCheck failed");
+       torture_assert_werr_ok(tctx, r.out.result, "NetShareCheck failed");
+
+       return true;
 }
 
 static bool test_NetShareGetInfo(struct torture_context *tctx, 
@@ -459,7 +395,6 @@ static bool test_NetShareGetInfo(struct torture_context *tctx,
                 { 1005,        WERR_OK,                WERR_OK },
        };
        int i;
-       BOOL ret = True;
 
        r.in.server_unc = talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
        r.in.share_name = sharename;
@@ -472,32 +407,21 @@ static bool test_NetShareGetInfo(struct torture_context *tctx,
                if (admin) expected = levels[i].admin_status;
                ZERO_STRUCT(r.out);
 
-               d_printf("testing NetShareGetInfo level %u on share '%s'\n", 
+               torture_comment(tctx, "testing NetShareGetInfo level %u on share '%s'\n", 
                       r.in.level, r.in.share_name);
 
                status = dcerpc_srvsvc_NetShareGetInfo(p, tctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       d_printf("NetShareGetInfo level %u on share '%s' failed - %s\n",
-                               r.in.level, r.in.share_name, nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
-               if (!W_ERROR_EQUAL(r.out.result, expected)) {
-                       d_printf("NetShareGetInfo level %u on share '%s' failed - %s (expected %s)\n",
-                               r.in.level, r.in.share_name, win_errstr(r.out.result),
-                               win_errstr(expected));
-                       ret = False;
-                       continue;
-               }
+               torture_assert_ntstatus_ok(tctx, status, "NetShareGetInfo failed");
+               torture_assert_werr_equal(tctx, r.out.result, expected, "NetShareGetInfo failed");
 
                if (r.in.level != 2) continue;
                if (!r.out.info.info2 || !r.out.info.info2->path) continue;
                if (!test_NetShareCheck(p, tctx, r.out.info.info2->path)) {
-                       ret = False;
+                       return false;
                }
        }
 
-       return ret;
+       return true;
 }
 
 static bool test_NetShareGetInfoAdminFull(struct torture_context *tctx, 
@@ -536,11 +460,6 @@ static bool test_NetShareAddSetDel(struct torture_context *tctx,
                 { 1501,        WERR_OK },
        };
        int i;
-       BOOL ret = True;
-
-       if (!torture_setting_bool(tctx, "dangerous", false))
-               torture_skip(tctx,
-                       "NetShareAddSetDel disabled - enable dangerous tests to use\n");
 
        a.in.server_unc = r.in.server_unc = q.in.server_unc = d.in.server_unc =
                talloc_asprintf(tctx, "\\\\%s", dcerpc_server_name(p));
@@ -560,15 +479,8 @@ static bool test_NetShareAddSetDel(struct torture_context *tctx,
        a.in.parm_error = NULL;
 
        status = dcerpc_srvsvc_NetShareAdd(p, tctx, &a);
-       if (!NT_STATUS_IS_OK(status)) {
-               d_printf("NetShareAdd level 2 on share 'testshare' failed - %s\n",
-                        nt_errstr(status));
-               return False;
-       } else if (!W_ERROR_EQUAL(a.out.result, WERR_OK)) {
-               d_printf("NetShareAdd level 2 on share 'testshare' failed - %s\n",
-                        win_errstr(a.out.result));
-               return False;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "NetShareAdd level 2 on share 'testshare' failed");
+       torture_assert_werr_ok(tctx, a.out.result, "NetShareAdd level 2 on share 'testshare' failed");
 
        r.in.parm_error = NULL;
 
@@ -579,7 +491,7 @@ static bool test_NetShareAddSetDel(struct torture_context *tctx,
                r.in.level = levels[i].level;
                ZERO_STRUCT(r.out);
 
-               d_printf("testing NetShareSetInfo level %u on share '%s'\n", 
+               torture_comment(tctx, "testing NetShareSetInfo level %u on share '%s'\n", 
                       r.in.level, r.in.share_name);
 
                switch (levels[i].level) {
@@ -648,73 +560,45 @@ static bool test_NetShareAddSetDel(struct torture_context *tctx,
                }
                
                status = dcerpc_srvsvc_NetShareSetInfo(p, tctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       d_printf("NetShareGetInfo level %u on share '%s' failed - %s\n",
-                               r.in.level, r.in.share_name, nt_errstr(status));
-                       ret = False;
-                       continue;
-               } else if (!W_ERROR_EQUAL(r.out.result, levels[i].expected)) {
-                       d_printf("NetShareSetInfo level %u on share '%s' failed - %s (expected %s)\n",
-                               r.in.level, r.in.share_name, win_errstr(r.out.result),
-                               win_errstr(levels[i].expected));
-                       ret = False;
-                       continue;
-               }
+               torture_assert_ntstatus_ok(tctx, status, "NetShareGetInfo failed");
+               torture_assert_werr_equal(tctx, r.out.result, levels[i].expected, "NetShareSetInfo failed");
                
                q.in.share_name = r.in.share_name;
 
                status = dcerpc_srvsvc_NetShareGetInfo(p, tctx, &q);
-               if (!NT_STATUS_IS_OK(status)) {
-                       d_printf("NetShareGetInfo level %u on share '%s' failed - %s\n",
-                               q.in.level, q.in.share_name, nt_errstr(status));
-                       ret = False;
-                       continue;
-               } else if (!W_ERROR_EQUAL(q.out.result, WERR_OK)) {
-                       d_printf("NetShareGetInfo level %u on share '%s' failed - %s\n",
-                               q.in.level, q.in.share_name, win_errstr(q.out.result));
-                       ret = False;
-                       continue;
-               }
+               torture_assert_ntstatus_ok(tctx, status, "NetShareGetInfo failed");
+               torture_assert_werr_ok(tctx, q.out.result, "NetShareGetInfo failed");
+
+               torture_assert_str_equal(tctx, q.out.info.info502->name, r.in.share_name, 
+                                        "share name invalid");
 
-               if (strcmp(q.out.info.info502->name, r.in.share_name) != 0) {
-                       ret = False;
-               }
                switch (levels[i].level) {
                case 0:
                        break;
                case 1:
-                       if (strcmp(q.out.info.info502->comment, "test comment 1") != 0)
-                               ret = False;
+                       torture_assert_str_equal(tctx, q.out.info.info502->comment, "test comment 1", "comment");
                        break;
                case 2:
-                       if (strcmp(q.out.info.info502->comment, "test comment 2") != 0)
-                               ret = False;
-                       if (q.out.info.info2->max_users != 2)
-                               ret = False;
-                       if (strcmp(q.out.info.info2->path, "C:\\") != 0)
-                               ret = False;
+                       torture_assert_str_equal(tctx, q.out.info.info502->comment, "test comment 2", "comment");
+                       torture_assert_int_equal(tctx, q.out.info.info2->max_users, 2, "max users");
+                       torture_assert_str_equal(tctx, q.out.info.info2->path, "C:\\", "path");
                        break;
                case 501:
-                       if (strcmp(q.out.info.info501->comment, "test comment 501") != 0)
-                               ret = False;
+                       torture_assert_str_equal(tctx, q.out.info.info501->comment, "test comment 501", "comment");
                        break;
                case 502:
-                       if (strcmp(q.out.info.info502->comment, "test comment 502") != 0)
-                               ret = False;
-                       if (q.out.info.info2->max_users != 502)
-                               ret = False;
-                       if (strcmp(q.out.info.info2->path, "C:\\") != 0)
-                               ret = False;
+                       torture_assert_str_equal(tctx, q.out.info.info502->comment, "test comment 502", "comment");
+                       torture_assert_int_equal(tctx, q.out.info.info2->max_users, 502, "max users");
+                       torture_assert_str_equal(tctx, q.out.info.info2->path, "C:\\", "path");
                        break;
                case 1004:
-                       if (strcmp(q.out.info.info502->comment, "test comment 1004") != 0)
-                               ret = False;
+                       torture_assert_str_equal(tctx, q.out.info.info502->comment, "test comment 1004", 
+                                                "comment");
                        break;
                case 1005:
                        break;
                case 1006:
-                       if (q.out.info.info2->max_users != 1006)
-                               ret = False;
+                       torture_assert_int_equal(tctx, q.out.info.info2->max_users, 1006, "Max users");
                        break;
 /*             case 1007:
                        break;
@@ -728,17 +612,10 @@ static bool test_NetShareAddSetDel(struct torture_context *tctx,
        d.in.reserved = 0;
 
        status = dcerpc_srvsvc_NetShareDel(p, tctx, &d);
-       if (!NT_STATUS_IS_OK(status)) {
-               d_printf("NetShareDel on share 'testshare502' failed - %s\n",
-                        nt_errstr(status));
-               ret = False;
-       } else if (!W_ERROR_EQUAL(a.out.result, WERR_OK)) {
-               d_printf("NetShareDel on share 'testshare502' failed - %s\n",
-                        win_errstr(d.out.result));
-               ret = False;
-       }
+       torture_assert_ntstatus_ok(tctx, status, "NetShareDel on share 'testshare502' failed");
+       torture_assert_werr_ok(tctx, a.out.result, "NetShareDel on share 'testshare502' failed");
 
-       return ret;
+       return true;
 }
 
 /**************************/
@@ -763,7 +640,6 @@ static bool test_NetShareEnumAll(struct torture_context *tctx,
                 { 502, WERR_ACCESS_DENIED,     WERR_OK },
        };
        int i;
-       BOOL ret = True;
        uint32_t resume_handle;
 
        ZERO_STRUCT(c0);
@@ -785,19 +661,10 @@ static bool test_NetShareEnumAll(struct torture_context *tctx,
                ZERO_STRUCT(r.out);
                resume_handle = 0;
 
-               d_printf("testing NetShareEnumAll level %u\n", r.in.level);
+               torture_comment(tctx, "testing NetShareEnumAll level %u\n", r.in.level);
                status = dcerpc_srvsvc_NetShareEnumAll(p, tctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       d_printf("NetShareEnumAll level %u failed - %s\n", r.in.level, nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
-               if (!W_ERROR_EQUAL(r.out.result, expected)) {
-                       d_printf("NetShareEnumAll level %u failed - %s (expected %s)\n",
-                               r.in.level, win_errstr(r.out.result),
-                               win_errstr(expected));
-                       continue;
-               }
+               torture_assert_ntstatus_ok(tctx, status, "NetShareEnumAll failed");
+               torture_assert_werr_equal(tctx, r.out.result, expected, "NetShareEnumAll failed");
 
                /* call srvsvc_NetShareGetInfo for each returned share */
                if (r.in.level == 2 && r.out.ctr.ctr2) {
@@ -805,13 +672,13 @@ static bool test_NetShareEnumAll(struct torture_context *tctx,
                                const char *name;
                                name = r.out.ctr.ctr2->array[j].name;
                                if (!test_NetShareGetInfo(tctx, p, name, admin)) {
-                                       ret = False;
+                                       return false;
                                }
                        }
                }
        }
 
-       return ret;
+       return true;
 }
 
 static bool test_NetShareEnumAllFull(struct torture_context *tctx,
@@ -844,7 +711,6 @@ static bool test_NetShareEnum(struct torture_context *tctx,
                 { 502, WERR_ACCESS_DENIED,     WERR_OK },
        };
        int i;
-       BOOL ret = True;
 
        r.in.server_unc = talloc_asprintf(tctx,"\\\\%s",dcerpc_server_name(p));
        r.in.ctr.ctr0 = &c0;
@@ -862,22 +728,13 @@ static bool test_NetShareEnum(struct torture_context *tctx,
 
                ZERO_STRUCT(r.out);
 
-               d_printf("testing NetShareEnum level %u\n", r.in.level);
+               torture_comment(tctx, "testing NetShareEnum level %u\n", r.in.level);
                status = dcerpc_srvsvc_NetShareEnum(p, tctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       d_printf("NetShareEnum level %u failed - %s\n", r.in.level, nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
-               if (!W_ERROR_EQUAL(r.out.result, expected)) {
-                       d_printf("NetShareEnum level %u failed - %s (expected %s)\n",
-                               r.in.level, win_errstr(r.out.result),
-                               win_errstr(expected));
-                       continue;
-               }
+               torture_assert_ntstatus_ok(tctx, status, "NetShareEnum failed");
+               torture_assert_werr_equal(tctx, r.out.result, expected, "NetShareEnum failed");
        }
 
-       return ret;
+       return true;
 }
 
 static bool test_NetShareEnumFull(struct torture_context *tctx,
@@ -896,14 +753,13 @@ static bool test_NetShareEnumAnon(struct torture_context *tctx,
 /* srvsvc_NetSrv          */
 /**************************/
 static bool test_NetSrvGetInfo(struct torture_context *tctx, 
-                                                          struct dcerpc_pipe *p)
+                              struct dcerpc_pipe *p)
 {
        NTSTATUS status;
        struct srvsvc_NetSrvGetInfo r;
        struct srvsvc_NetSrvInfo503 i503;
        uint32_t levels[] = {100, 101, 102, 502, 503};
        int i;
-       BOOL ret = True;
        uint32_t resume_handle;
 
        ZERO_STRUCT(i503);
@@ -914,33 +770,27 @@ static bool test_NetSrvGetInfo(struct torture_context *tctx,
                ZERO_STRUCT(r.out);
                resume_handle = 0;
                r.in.level = levels[i];
-               d_printf("testing NetSrvGetInfo level %u\n", r.in.level);
+               torture_comment(tctx, "testing NetSrvGetInfo level %u\n", r.in.level);
                status = dcerpc_srvsvc_NetSrvGetInfo(p, tctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       d_printf("NetSrvGetInfo level %u failed - %s\n", r.in.level, nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
+               torture_assert_ntstatus_ok(tctx, status, "NetSrvGetInfo failed");
                if (!W_ERROR_IS_OK(r.out.result)) {
-                       d_printf("NetSrvGetInfo level %u failed - %s\n", r.in.level, win_errstr(r.out.result));
-                       continue;
+                       torture_comment(tctx, "NetSrvGetInfo failed: %s\n", win_errstr(r.out.result));
                }
        }
 
-       return ret;
+       return true;
 }
 
 /**************************/
 /* srvsvc_NetDisk         */
 /**************************/
-static BOOL test_NetDiskEnum(struct torture_context *tctx, 
-                                                        struct dcerpc_pipe *p)
+static bool test_NetDiskEnum(struct torture_context *tctx, 
+                            struct dcerpc_pipe *p)
 {
        NTSTATUS status;
        struct srvsvc_NetDiskEnum r;
        uint32_t levels[] = {0};
        int i;
-       BOOL ret = True;
        uint32_t resume_handle=0;
 
        ZERO_STRUCT(r.in);
@@ -950,37 +800,28 @@ static BOOL test_NetDiskEnum(struct torture_context *tctx,
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                ZERO_STRUCT(r.out);
                r.in.level = levels[i];
-               d_printf("testing NetDiskEnum level %u\n", r.in.level);
+               torture_comment(tctx, "testing NetDiskEnum level %u\n", r.in.level);
                status = dcerpc_srvsvc_NetDiskEnum(p, tctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       NDR_PRINT_OUT_DEBUG(srvsvc_NetDiskEnum, &r);
-                       d_printf("NetDiskEnum level %u failed - %s\n", r.in.level, nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
-               if (!W_ERROR_IS_OK(r.out.result)) {
-                       d_printf("NetDiskEnum level %u failed - %s\n", r.in.level, win_errstr(r.out.result));
-                       continue;
-               }
+               torture_assert_ntstatus_ok(tctx, status, "NetDiskEnum failed");
+               torture_assert_werr_ok(tctx, r.out.result, "NetDiskEnum failed");
        }
 
-       return ret;
+       return true;
 }
 
 /**************************/
 /* srvsvc_NetTransport    */
 /**************************/
 static bool test_NetTransportEnum(struct torture_context *tctx, 
-                                                                 struct dcerpc_pipe *p)
+                                 struct dcerpc_pipe *p)
 {
        NTSTATUS status;
        struct srvsvc_NetTransportEnum r;
        struct srvsvc_NetTransportCtr0 c0;
        uint32_t levels[] = {0, 1};
        int i;
-       BOOL ret = True;
 
-       r.in.server_unc = talloc_asprintf(tctx,"\\\\%s",dcerpc_server_name(p));
+       r.in.server_unc = talloc_asprintf(tctx,"\\\\%s", dcerpc_server_name(p));
        r.in.transports.ctr0 = &c0;
        r.in.transports.ctr0->count = 0;
        r.in.transports.ctr0->array = NULL;
@@ -990,46 +831,35 @@ static bool test_NetTransportEnum(struct torture_context *tctx,
        for (i=0;i<ARRAY_SIZE(levels);i++) {
                ZERO_STRUCT(r.out);
                r.in.level = levels[i];
-               d_printf("testing NetTransportEnum level %u\n", r.in.level);
+               torture_comment(tctx, "testing NetTransportEnum level %u\n", r.in.level);
                status = dcerpc_srvsvc_NetTransportEnum(p, tctx, &r);
-               if (!NT_STATUS_IS_OK(status)) {
-                       d_printf("NetTransportEnum level %u failed - %s\n", r.in.level, nt_errstr(status));
-                       ret = False;
-                       continue;
-               }
+               torture_assert_ntstatus_ok(tctx, status, "NetTransportEnum failed");
                if (!W_ERROR_IS_OK(r.out.result)) {
-                       d_printf("NetTransportEnum level %u failed - %s\n", r.in.level, win_errstr(r.out.result));
-                       continue;
+                       torture_comment(tctx, "unexpected result: %s\n", win_errstr(r.out.result));
                }
        }
 
-       return ret;
+       return true;
 }
 
 /**************************/
 /* srvsvc_NetRemoteTOD    */
 /**************************/
-static BOOL test_NetRemoteTOD(struct torture_context *tctx, 
-                                                         struct dcerpc_pipe *p)
+static bool test_NetRemoteTOD(struct torture_context *tctx, 
+                             struct dcerpc_pipe *p)
 {
        NTSTATUS status;
        struct srvsvc_NetRemoteTOD r;
-       BOOL ret = True;
 
        r.in.server_unc = talloc_asprintf(tctx,"\\\\%s",dcerpc_server_name(p));
 
        ZERO_STRUCT(r.out);
-       d_printf("testing NetRemoteTOD\n");
+       torture_comment(tctx, "testing NetRemoteTOD\n");
        status = dcerpc_srvsvc_NetRemoteTOD(p, tctx, &r);
-       if (!NT_STATUS_IS_OK(status)) {
-               d_printf("NetRemoteTOD failed - %s\n", nt_errstr(status));
-               ret = False;
-       }
-       if (!W_ERROR_IS_OK(r.out.result)) {
-               d_printf("NetRemoteTOD failed - %s\n", win_errstr(r.out.result));
-       }
+       torture_assert_ntstatus_ok(tctx, status, "NetRemoteTOD failed");
+       torture_assert_werr_ok(tctx, r.out.result, "NetRemoteTOD failed");
 
-       return ret;
+       return true;
 }
 
 /**************************/
@@ -1108,7 +938,7 @@ again:
                        }
 
                        if (!W_ERROR_IS_OK(r.out.result)) {
-                               invalidc = talloc_asprintf_append(invalidc, "%c", (char)n);
+                               invalidc = talloc_asprintf_append_buffer(invalidc, "%c", (char)n);
                        }
 
                        talloc_free(name);
@@ -1125,13 +955,14 @@ again:
                r.in.flags = 0x0;
        }
 
-       return True;
+       return true;
 }
 
 struct torture_suite *torture_rpc_srvsvc(TALLOC_CTX *mem_ctx)
 {
        struct torture_suite *suite = torture_suite_create(mem_ctx, "SRVSVC");
        struct torture_rpc_tcase *tcase;
+       struct torture_test *test;
 
        tcase = torture_suite_add_rpc_iface_tcase(suite, "srvsvc (admin access)", &ndr_table_srvsvc);
 
@@ -1147,8 +978,9 @@ struct torture_suite *torture_rpc_srvsvc(TALLOC_CTX *mem_ctx)
        torture_rpc_tcase_add_test(tcase, "NetRemoteTOD", test_NetRemoteTOD);
        torture_rpc_tcase_add_test(tcase, "NetShareEnum", test_NetShareEnumFull);
        torture_rpc_tcase_add_test(tcase, "NetShareGetInfo", test_NetShareGetInfoAdminFull);
-       torture_rpc_tcase_add_test(tcase, "NetShareAddSetDel", 
-                                                          test_NetShareAddSetDel);
+       test = torture_rpc_tcase_add_test(tcase, "NetShareAddSetDel", 
+                                          test_NetShareAddSetDel);
+       test->dangerous = true;
        torture_rpc_tcase_add_test(tcase, "NetNameValidate", test_NetNameValidate);
        
        tcase = torture_suite_add_anon_rpc_iface_tcase(suite, 
index 2f2b4ec485a8f0301ae3614ee415fd0979925ad7..c9006baaf541e87e03f2158c399e7dd97a96f5af 100644 (file)
@@ -80,7 +80,7 @@ static bool test_EnumServicesStatus(struct torture_context *tctx, struct dcerpc_
 
        if (W_ERROR_EQUAL(r.out.result, WERR_MORE_DATA)) {
                r.in.buf_size = *r.out.bytes_needed;
-               r.out.service = talloc_size(tctx, *r.out.bytes_needed);
+               r.out.service = talloc_array(tctx, uint8_t, *r.out.bytes_needed);
                
                status = dcerpc_svcctl_EnumServicesStatusW(p, tctx, &r);
 
index 56a0fccde4cabf6b49da00aa1b630c2eea93cc32..725799f2ddf76f8a93fe78fe732fc64554611e10 100644 (file)
@@ -36,6 +36,7 @@
 #include "libcli/auth/libcli_auth.h"
 #include "torture/rpc/rpc.h"
 #include "libcli/security/security.h"
+#include "param/param.h"
 
 struct test_join {
        struct dcerpc_pipe *p;
@@ -125,7 +126,7 @@ struct test_join *torture_create_testuser(struct torture_context *torture,
        int policy_min_pw_len = 0;
        struct test_join *join;
        char *random_pw;
-       const char *dc_binding = lp_parm_string(-1, "torture", "dc_binding");
+       const char *dc_binding = lp_parm_string(global_loadparm, NULL, "torture", "dc_binding");
 
        join = talloc(NULL, struct test_join);
        if (join == NULL) {
@@ -275,7 +276,8 @@ again:
        
        u.info21.description.string = talloc_asprintf(join, 
                                         "Samba4 torture account created by host %s: %s", 
-                                        lp_netbios_name(), timestring(join, time(NULL)));
+                                        lp_netbios_name(global_loadparm), 
+                                        timestring(join, time(NULL)));
 
        printf("Resetting ACB flags, force pw change time\n");
 
@@ -326,9 +328,9 @@ _PUBLIC_ struct test_join *torture_join_domain(const char *machine_name,
        tj->libnet_r = libnet_r;
                
        libnet_ctx->cred = cmdline_credentials;
-       libnet_r->in.binding = lp_parm_string(-1, "torture", "binding");
+       libnet_r->in.binding = lp_parm_string(global_loadparm, NULL, "torture", "binding");
        if (!libnet_r->in.binding) {
-               libnet_r->in.binding = talloc_asprintf(libnet_r, "ncacn_np:%s", lp_parm_string(-1, "torture", "host"));
+               libnet_r->in.binding = talloc_asprintf(libnet_r, "ncacn_np:%s", lp_parm_string(global_loadparm, NULL, "torture", "host"));
        }
        libnet_r->in.level = LIBNET_JOINDOMAIN_SPECIFIED;
        libnet_r->in.netbios_name = machine_name;
@@ -339,7 +341,7 @@ _PUBLIC_ struct test_join *torture_join_domain(const char *machine_name,
        }
        
        libnet_r->in.acct_type = acct_flags;
-       libnet_r->in.recreate_account = True;
+       libnet_r->in.recreate_account = true;
 
        status = libnet_JoinDomain(libnet_ctx, libnet_r, libnet_r);
        if (!NT_STATUS_IS_OK(status)) {
@@ -381,7 +383,7 @@ _PUBLIC_ struct test_join *torture_join_domain(const char *machine_name,
        
        u.info21.description.string = talloc_asprintf(tj, 
                                                      "Samba4 torture account created by host %s: %s", 
-                                                     lp_netbios_name(), timestring(tj, time(NULL)));
+                                                     lp_netbios_name(global_loadparm), timestring(tj, time(NULL)));
 
        status = dcerpc_samr_SetUserInfo(tj->p, tj, &s);
        if (!NT_STATUS_IS_OK(status)) {
@@ -389,7 +391,7 @@ _PUBLIC_ struct test_join *torture_join_domain(const char *machine_name,
        }
 
        *machine_credentials = cli_credentials_init(tj);
-       cli_credentials_set_conf(*machine_credentials);
+       cli_credentials_set_conf(*machine_credentials, global_loadparm);
        cli_credentials_set_workstation(*machine_credentials, machine_name, CRED_SPECIFIED);
        cli_credentials_set_domain(*machine_credentials, libnet_r->out.domain_name, CRED_SPECIFIED);
        if (libnet_r->out.realm) {
index 80d7d96a9ee346dc5e914fa9c2dba985bb653d70..cbe8cf0ff1b4971e8af49c479c2634af4333db81 100644 (file)
@@ -42,7 +42,7 @@ static bool test_sidtouid(struct torture_context *tctx, struct dcerpc_pipe *p)
        if (NT_STATUS_EQUAL(NT_STATUS_NONE_MAPPED, status)) {
        } else torture_assert_ntstatus_ok(tctx, status, "SidToUid failed");
 
-       return True;
+       return true;
 }
 
 /*
@@ -125,12 +125,12 @@ static bool test_gidtosid(struct torture_context *tctx, struct dcerpc_pipe *p)
        return true;
 }
 
-struct torture_suite *torture_rpc_unixinfo(void)
+struct torture_suite *torture_rpc_unixinfo(TALLOC_CTX *mem_ctx)
 {
        struct torture_suite *suite;
        struct torture_rpc_tcase *tcase;
 
-       suite = torture_suite_create(talloc_autofree_context(), "UNIXINFO");
+       suite = torture_suite_create(mem_ctx, "UNIXINFO");
        tcase = torture_suite_add_rpc_iface_tcase(suite, "unixinfo", 
                                                  &ndr_table_unixinfo);
 
index a3d671c4891ebd67d3fece7bf2238d213e64828e..e29d0b74dd10a8cdefc3c40a3b6e5558fa9f7ec5 100644 (file)
@@ -1,20 +1,20 @@
-/* 
+/*
    Unix SMB/CIFS implementation.
    test suite for winreg rpc operations
 
    Copyright (C) Tim Potter 2003
    Copyright (C) Jelmer Vernooij 2004-2007
-   
+
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
-   
+
    This program 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 General Public License for more details.
-   
+
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
@@ -32,9 +32,9 @@
 #define TEST_KEY3 TEST_KEY_BASE "\\with a subkey"
 #define TEST_SUBKEY TEST_KEY3 "\\subkey"
 
-static void init_initshutdown_String(TALLOC_CTX *mem_ctx, 
-                                                                        struct initshutdown_String *name, 
-                                                                        const char *s)
+static void init_initshutdown_String(TALLOC_CTX *mem_ctx,
+                                    struct initshutdown_String *name,
+                                    const char *s)
 {
        name->name = talloc(mem_ctx, struct initshutdown_String_sub);
        name->name->name = s;
@@ -52,8 +52,8 @@ static void init_winreg_String(struct winreg_String *name, const char *s)
        }
 }
 
-static bool test_GetVersion(struct dcerpc_pipe *p, 
-                               struct torture_context *tctx,
+static bool test_GetVersion(struct dcerpc_pipe *p,
+                           struct torture_context *tctx,
                            struct policy_handle *handle)
 {
        struct winreg_GetVersion r;
@@ -64,16 +64,16 @@ static bool test_GetVersion(struct dcerpc_pipe *p,
        r.out.version = &v;
 
        torture_assert_ntstatus_ok(tctx, dcerpc_winreg_GetVersion(p, tctx, &r),
-                                                          "GetVersion failed");
+                                  "GetVersion failed");
 
        torture_assert_werr_ok(tctx, r.out.result, "GetVersion failed");
 
        return true;
 }
 
-static bool test_NotifyChangeKeyValue(struct dcerpc_pipe *p, 
-                                                                         struct torture_context *tctx, 
-                                                                         struct policy_handle *handle)
+static bool test_NotifyChangeKeyValue(struct dcerpc_pipe *p,
+                                     struct torture_context *tctx,
+                                     struct policy_handle *handle)
 {
        struct winreg_NotifyChangeKeyValue r;
 
@@ -84,13 +84,13 @@ static bool test_NotifyChangeKeyValue(struct dcerpc_pipe *p,
        init_winreg_String(&r.in.string1, NULL);
        init_winreg_String(&r.in.string2, NULL);
 
-       torture_assert_ntstatus_ok(tctx, 
-                                                          dcerpc_winreg_NotifyChangeKeyValue(p, tctx, &r),
-                                                          "NotifyChangeKeyValue failed");
+       torture_assert_ntstatus_ok(tctx,
+                                  dcerpc_winreg_NotifyChangeKeyValue(p, tctx, &r),
+                                  "NotifyChangeKeyValue failed");
 
        if (!W_ERROR_IS_OK(r.out.result)) {
-               torture_comment(tctx, 
-                                               "NotifyChangeKeyValue failed - %s - not considering\n", win_errstr(r.out.result));
+               torture_comment(tctx,
+                               "NotifyChangeKeyValue failed - %s - not considering\n", win_errstr(r.out.result));
                return true;
        }
 
@@ -98,7 +98,7 @@ static bool test_NotifyChangeKeyValue(struct dcerpc_pipe *p,
 }
 
 static bool test_CreateKey(struct dcerpc_pipe *p, struct torture_context *tctx,
-                         struct policy_handle *handle, const char *name, 
+                          struct policy_handle *handle, const char *name,
                           const char *class)
 {
        struct winreg_CreateKey r;
@@ -107,7 +107,7 @@ static bool test_CreateKey(struct dcerpc_pipe *p, struct torture_context *tctx,
 
        r.in.handle = handle;
        r.out.new_handle = &newhandle;
-       init_winreg_String(&r.in.name, name);   
+       init_winreg_String(&r.in.name, name);
        init_winreg_String(&r.in.keyclass, class);
        r.in.options = 0x0;
        r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
@@ -115,7 +115,7 @@ static bool test_CreateKey(struct dcerpc_pipe *p, struct torture_context *tctx,
        r.in.secdesc = NULL;
 
        torture_assert_ntstatus_ok(tctx, dcerpc_winreg_CreateKey(p, tctx, &r),
-               "CreateKey failed");
+                                  "CreateKey failed");
 
        torture_assert_werr_ok(tctx,  r.out.result, "CreateKey failed");
 
@@ -126,9 +126,9 @@ static bool test_CreateKey(struct dcerpc_pipe *p, struct torture_context *tctx,
 /*
   createkey testing with a SD
 */
-static bool test_CreateKey_sd(struct dcerpc_pipe *p, 
-                                                         struct torture_context *tctx,
-                             struct policy_handle *handle, const char *name, 
+static bool test_CreateKey_sd(struct dcerpc_pipe *p,
+                             struct torture_context *tctx,
+                             struct policy_handle *handle, const char *name,
                              const char *class, struct policy_handle *newhandle)
 {
        struct winreg_CreateKey r;
@@ -145,10 +145,10 @@ static bool test_CreateKey_sd(struct dcerpc_pipe *p,
                                        SEC_ACE_FLAG_OBJECT_INHERIT,
                                        NULL);
 
-       torture_assert_ntstatus_ok(tctx, 
-               ndr_push_struct_blob(&sdblob, tctx, sd, 
-                                     (ndr_push_flags_fn_t)ndr_push_security_descriptor),
-                               "Failed to push security_descriptor ?!\n");
+       torture_assert_ntstatus_ok(tctx,
+               ndr_push_struct_blob(&sdblob, tctx, sd,
+                                    (ndr_push_flags_fn_t)ndr_push_security_descriptor),
+                                    "Failed to push security_descriptor ?!\n");
 
        secbuf.sd.data = sdblob.data;
        secbuf.sd.len = sdblob.length;
@@ -158,7 +158,7 @@ static bool test_CreateKey_sd(struct dcerpc_pipe *p,
 
        r.in.handle = handle;
        r.out.new_handle = newhandle;
-       init_winreg_String(&r.in.name, name);   
+       init_winreg_String(&r.in.name, name);
        init_winreg_String(&r.in.keyclass, class);
        r.in.options = 0x0;
        r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
@@ -166,16 +166,16 @@ static bool test_CreateKey_sd(struct dcerpc_pipe *p,
        r.in.secdesc = &secbuf;
 
        torture_assert_ntstatus_ok(tctx, dcerpc_winreg_CreateKey(p, tctx, &r),
-               "CreateKey with sd failed");
+                                  "CreateKey with sd failed");
 
        torture_assert_werr_ok(tctx, r.out.result, "CreateKey with sd failed");
 
        return true;
 }
 
-static bool test_GetKeySecurity(struct dcerpc_pipe *p, 
-                                                               struct torture_context *tctx,
-                         struct policy_handle *handle)
+static bool test_GetKeySecurity(struct dcerpc_pipe *p,
+                               struct torture_context *tctx,
+                               struct policy_handle *handle)
 {
        struct winreg_GetKeySecurity r;
        struct security_descriptor sd;
@@ -189,17 +189,17 @@ static bool test_GetKeySecurity(struct dcerpc_pipe *p,
        r.in.sec_info = SECINFO_OWNER | SECINFO_GROUP | SECINFO_DACL;
 
        torture_assert_ntstatus_ok(tctx, dcerpc_winreg_GetKeySecurity(p, tctx, &r),
-               "GetKeySecurity failed");
+                                  "GetKeySecurity failed");
 
        torture_assert_werr_ok(tctx, r.out.result, "GetKeySecurity failed");
 
        sdblob.data = r.out.sd->data;
        sdblob.length = r.out.sd->len;
 
-       torture_assert_ntstatus_ok(tctx, 
-               ndr_pull_struct_blob(&sdblob, tctx, &sd, 
-                                     (ndr_pull_flags_fn_t)ndr_pull_security_descriptor),
-                       "pull_security_descriptor failed");
+       torture_assert_ntstatus_ok(tctx,
+               ndr_pull_struct_blob(&sdblob, tctx, &sd,
+                                    (ndr_pull_flags_fn_t)ndr_pull_security_descriptor),
+                                    "pull_security_descriptor failed");
 
        if (p->conn->flags & DCERPC_DEBUG_PRINT_OUT) {
                NDR_PRINT_DEBUG(security_descriptor, &sd);
@@ -208,7 +208,7 @@ static bool test_GetKeySecurity(struct dcerpc_pipe *p,
        return true;
 }
 
-static bool test_CloseKey(struct dcerpc_pipe *p, struct torture_context *tctx, 
+static bool test_CloseKey(struct dcerpc_pipe *p, struct torture_context *tctx,
                          struct policy_handle *handle)
 {
        struct winreg_CloseKey r;
@@ -216,14 +216,14 @@ static bool test_CloseKey(struct dcerpc_pipe *p, struct torture_context *tctx,
        r.in.handle = r.out.handle = handle;
 
        torture_assert_ntstatus_ok(tctx, dcerpc_winreg_CloseKey(p, tctx, &r),
-                                                          "CloseKey failed");
+                                  "CloseKey failed");
 
        torture_assert_werr_ok(tctx, r.out.result, "CloseKey failed");
 
        return true;
 }
 
-static bool test_FlushKey(struct dcerpc_pipe *p, struct torture_context *tctx, 
+static bool test_FlushKey(struct dcerpc_pipe *p, struct torture_context *tctx,
                          struct policy_handle *handle)
 {
        struct winreg_FlushKey r;
@@ -231,7 +231,7 @@ static bool test_FlushKey(struct dcerpc_pipe *p, struct torture_context *tctx,
        r.in.handle = handle;
 
        torture_assert_ntstatus_ok(tctx, dcerpc_winreg_FlushKey(p, tctx, &r),
-                       "FlushKey failed");
+                                  "FlushKey failed");
 
        torture_assert_werr_ok(tctx, r.out.result, "FlushKey failed");
 
@@ -251,7 +251,7 @@ static bool test_OpenKey(struct dcerpc_pipe *p, struct torture_context *tctx,
        r.out.handle = key_handle;
 
        torture_assert_ntstatus_ok(tctx, dcerpc_winreg_OpenKey(p, tctx, &r),
-                               "OpenKey failed");
+                                  "OpenKey failed");
 
        torture_assert_werr_ok(tctx, r.out.result, "OpenKey failed");
 
@@ -279,7 +279,7 @@ static bool test_DeleteKey(struct dcerpc_pipe *p, struct torture_context *tctx,
        struct winreg_DeleteKey r;
 
        r.in.handle = handle;
-       init_winreg_String(&r.in.key, key);     
+       init_winreg_String(&r.in.key, key);
 
        status = dcerpc_winreg_DeleteKey(p, tctx, &r);
 
@@ -291,7 +291,7 @@ static bool test_DeleteKey(struct dcerpc_pipe *p, struct torture_context *tctx,
 
 /* DeleteKey on a key with subkey(s) should
  * return WERR_ACCESS_DENIED. */
-static bool test_DeleteKeyWithSubkey(struct dcerpc_pipe *p, 
+static bool test_DeleteKeyWithSubkey(struct dcerpc_pipe *p,
                                     struct torture_context *tctx,
                                     struct policy_handle *handle, const char *key)
 {
@@ -301,16 +301,16 @@ static bool test_DeleteKeyWithSubkey(struct dcerpc_pipe *p,
        init_winreg_String(&r.in.key, key);
 
        torture_assert_ntstatus_ok(tctx, dcerpc_winreg_DeleteKey(p, tctx, &r),
-                                                          "DeleteKeyWithSubkey failed");
+                                  "DeleteKeyWithSubkey failed");
 
-       torture_assert_werr_equal(tctx, r.out.result, WERR_ACCESS_DENIED, 
-                       "DeleteKeyWithSubkey failed");
+       torture_assert_werr_equal(tctx, r.out.result, WERR_ACCESS_DENIED,
+                                 "DeleteKeyWithSubkey failed");
 
        return true;
 }
 
-static bool test_QueryInfoKey(struct dcerpc_pipe *p, 
-                                                         struct torture_context *tctx,
+static bool test_QueryInfoKey(struct dcerpc_pipe *p,
+                             struct torture_context *tctx,
                              struct policy_handle *handle, char *class)
 {
        struct winreg_QueryInfoKey r;
@@ -331,13 +331,13 @@ static bool test_QueryInfoKey(struct dcerpc_pipe *p,
        r.out.last_changed_time = &last_changed_time;
 
        r.out.classname = talloc(tctx, struct winreg_String);
-       
+
        r.in.classname = talloc(tctx, struct winreg_String);
        init_winreg_String(r.in.classname, class);
-       
-       torture_assert_ntstatus_ok(tctx, 
-               dcerpc_winreg_QueryInfoKey(p, tctx, &r),
-               "QueryInfoKey failed");
+
+       torture_assert_ntstatus_ok(tctx,
+                                  dcerpc_winreg_QueryInfoKey(p, tctx, &r),
+                                  "QueryInfoKey failed");
 
        torture_assert_werr_ok(tctx, r.out.result, "QueryInfoKey failed");
 
@@ -375,11 +375,10 @@ static bool test_EnumKey(struct dcerpc_pipe *p, struct torture_context *tctx,
                        struct policy_handle key_handle;
 
                        torture_comment(tctx, "EnumKey: %d: %s\n", r.in.enum_index, 
-                                                       r.out.name->name);
+                                       r.out.name->name);
 
-                       if (!test_OpenKey(
-                                   p, tctx, handle, r.out.name->name,
-                                   &key_handle)) {
+                       if (!test_OpenKey(p, tctx, handle, r.out.name->name,
+                                         &key_handle)) {
                        } else {
                                test_key(p, tctx, &key_handle, depth + 1);
                        }
@@ -391,7 +390,7 @@ static bool test_EnumKey(struct dcerpc_pipe *p, struct torture_context *tctx,
 
        torture_assert_ntstatus_ok(tctx, status, "EnumKey failed");
 
-       if (!W_ERROR_IS_OK(r.out.result) && 
+       if (!W_ERROR_IS_OK(r.out.result) &&
                !W_ERROR_EQUAL(r.out.result, WERR_NO_MORE_ITEMS)) {
                torture_fail(tctx, "EnumKey failed");
        }
@@ -399,10 +398,10 @@ static bool test_EnumKey(struct dcerpc_pipe *p, struct torture_context *tctx,
        return true;
 }
 
-static bool test_QueryMultipleValues(struct dcerpc_pipe *p, 
-                                                                        struct torture_context *tctx, 
-                                                                        struct policy_handle *handle, 
-                                                                        const char *valuename)
+static bool test_QueryMultipleValues(struct dcerpc_pipe *p,
+                                    struct torture_context *tctx,
+                                    struct policy_handle *handle,
+                                    const char *valuename)
 {
        struct winreg_QueryMultipleValues r;
        NTSTATUS status;
@@ -419,13 +418,13 @@ static bool test_QueryMultipleValues(struct dcerpc_pipe *p,
        r.in.num_values = 1;
        r.in.buffer_size = r.out.buffer_size = talloc(tctx, uint32_t);
        *r.in.buffer_size = bufsize;
-       do { 
+       do {
                *r.in.buffer_size = bufsize;
-               r.in.buffer = r.out.buffer = talloc_zero_array(tctx, uint8_t, 
+               r.in.buffer = r.out.buffer = talloc_zero_array(tctx, uint8_t,
                                                               *r.in.buffer_size);
 
                status = dcerpc_winreg_QueryMultipleValues(p, tctx, &r);
-       
+
                if(NT_STATUS_IS_ERR(status))
                        torture_fail(tctx, "QueryMultipleValues failed");
 
@@ -438,10 +437,10 @@ static bool test_QueryMultipleValues(struct dcerpc_pipe *p,
        return true;
 }
 
-static bool test_QueryValue(struct dcerpc_pipe *p, 
-                                                       struct torture_context *tctx, 
-                                                       struct policy_handle *handle, 
-                                                       const char *valuename)
+static bool test_QueryValue(struct dcerpc_pipe *p,
+                           struct torture_context *tctx,
+                           struct policy_handle *handle,
+                           const char *valuename)
 {
        struct winreg_QueryValue r;
        NTSTATUS status;
@@ -467,7 +466,8 @@ static bool test_QueryValue(struct dcerpc_pipe *p,
 }
 
 static bool test_EnumValue(struct dcerpc_pipe *p, struct torture_context *tctx,
-                          struct policy_handle *handle, int max_valnamelen, int max_valbufsize)
+                          struct policy_handle *handle, int max_valnamelen,
+                          int max_valbufsize)
 {
        struct winreg_EnumValue r;
        enum winreg_Type type = 0;
@@ -487,10 +487,11 @@ static bool test_EnumValue(struct dcerpc_pipe *p, struct torture_context *tctx,
        r.in.value = &buf8;
        r.in.length = &zero;
        r.in.size = &size;
-       
+
        do {
-               torture_assert_ntstatus_ok(tctx, dcerpc_winreg_EnumValue(p, tctx, &r),
-                                                                  "EnumValue failed");
+               torture_assert_ntstatus_ok(tctx, 
+                                          dcerpc_winreg_EnumValue(p, tctx, &r),
+                                          "EnumValue failed");
 
                if (W_ERROR_IS_OK(r.out.result)) {
                        ret &= test_QueryValue(p, tctx, handle, r.out.name->name);
@@ -501,22 +502,22 @@ static bool test_EnumValue(struct dcerpc_pipe *p, struct torture_context *tctx,
        } while (W_ERROR_IS_OK(r.out.result));
 
        torture_assert_werr_equal(tctx, r.out.result, WERR_NO_MORE_ITEMS,
-               "EnumValue failed");
+                                 "EnumValue failed");
 
        return ret;
 }
 
-static bool test_AbortSystemShutdown(struct dcerpc_pipe *p, 
-                                                                        struct torture_context *tctx)
+static bool test_AbortSystemShutdown(struct dcerpc_pipe *p,
+                                    struct torture_context *tctx)
 {
        struct winreg_AbortSystemShutdown r;
        uint16_t server = 0x0;
 
        r.in.server = &server;
-       
-       torture_assert_ntstatus_ok(tctx, 
-                                                          dcerpc_winreg_AbortSystemShutdown(p, tctx, &r),
-                                                          "AbortSystemShutdown failed");
+
+       torture_assert_ntstatus_ok(tctx,
+                                  dcerpc_winreg_AbortSystemShutdown(p, tctx, &r),
+                                  "AbortSystemShutdown failed");
 
        torture_assert_werr_ok(tctx, r.out.result, "AbortSystemShutdown failed");
 
@@ -524,15 +525,11 @@ static bool test_AbortSystemShutdown(struct dcerpc_pipe *p,
 }
 
 static bool test_InitiateSystemShutdown(struct torture_context *tctx,
-                                                                               struct dcerpc_pipe *p)
+                                       struct dcerpc_pipe *p)
 {
        struct winreg_InitiateSystemShutdown r;
        uint16_t hostname = 0x0;
 
-       if (!torture_setting_bool(tctx, "dangerous", false))
-               torture_skip(tctx, 
-                  "winreg_InitiateShutdown disabled - enable dangerous tests to use");
-
        r.in.hostname = &hostname;
        r.in.message = talloc(tctx, struct initshutdown_String);
        init_initshutdown_String(tctx, r.in.message, "spottyfood");
@@ -540,9 +537,9 @@ static bool test_InitiateSystemShutdown(struct torture_context *tctx,
        r.in.timeout = 30;
        r.in.reboot = 1;
 
-       torture_assert_ntstatus_ok(tctx, 
-                                                       dcerpc_winreg_InitiateSystemShutdown(p, tctx, &r),
-                                                       "InitiateSystemShutdown failed");
+       torture_assert_ntstatus_ok(tctx,
+                                  dcerpc_winreg_InitiateSystemShutdown(p, tctx, &r),
+                                  "InitiateSystemShutdown failed");
 
        torture_assert_werr_ok(tctx, r.out.result, "InitiateSystemShutdown failed");
 
@@ -551,15 +548,11 @@ static bool test_InitiateSystemShutdown(struct torture_context *tctx,
 
 
 static bool test_InitiateSystemShutdownEx(struct torture_context *tctx,
-                                                                                 struct dcerpc_pipe *p)
+                                         struct dcerpc_pipe *p)
 {
        struct winreg_InitiateSystemShutdownEx r;
        uint16_t hostname = 0x0;
 
-       if (!torture_setting_bool(tctx, "dangerous", false))
-               torture_skip(tctx, 
-                  "winreg_InitiateShutdownEx disabled - enable dangerous tests to use");
-       
        r.in.hostname = &hostname;
        r.in.message = talloc(tctx, struct initshutdown_String);
        init_initshutdown_String(tctx, r.in.message, "spottyfood");
@@ -568,18 +561,18 @@ static bool test_InitiateSystemShutdownEx(struct torture_context *tctx,
        r.in.reboot = 1;
        r.in.reason = 0;
 
-       torture_assert_ntstatus_ok(tctx, 
+       torture_assert_ntstatus_ok(tctx,
                dcerpc_winreg_InitiateSystemShutdownEx(p, tctx, &r),
                "InitiateSystemShutdownEx failed");
 
-       torture_assert_werr_ok(tctx, r.out.result, 
-                                                  "InitiateSystemShutdownEx failed");
+       torture_assert_werr_ok(tctx, r.out.result,
+                              "InitiateSystemShutdownEx failed");
 
        return test_AbortSystemShutdown(p, tctx);
 }
 #define MAX_DEPTH 2            /* Only go this far down the tree */
 
-static bool test_key(struct dcerpc_pipe *p, struct torture_context *tctx, 
+static bool test_key(struct dcerpc_pipe *p, struct torture_context *tctx,
                     struct policy_handle *handle, int depth)
 {
        if (depth == MAX_DEPTH)
@@ -590,7 +583,7 @@ static bool test_key(struct dcerpc_pipe *p, struct torture_context *tctx,
 
        if (!test_NotifyChangeKeyValue(p, tctx, handle)) {
        }
-       
+
        if (!test_GetKeySecurity(p, tctx, handle)) {
        }
 
@@ -607,7 +600,7 @@ static bool test_key(struct dcerpc_pipe *p, struct torture_context *tctx,
 
 typedef NTSTATUS (*winreg_open_fn)(struct dcerpc_pipe *, TALLOC_CTX *, void *);
 
-static bool test_Open(struct torture_context *tctx, struct dcerpc_pipe *p, 
+static bool test_Open(struct torture_context *tctx, struct dcerpc_pipe *p,
                      void *userdata)
 {
        struct policy_handle handle, newhandle;
@@ -620,9 +613,9 @@ static bool test_Open(struct torture_context *tctx, struct dcerpc_pipe *p,
        r.in.system_name = 0;
        r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
        r.out.handle = &handle;
-       
-       torture_assert_ntstatus_ok(tctx, open_fn(p, tctx, &r), 
-                                                          "open");
+
+       torture_assert_ntstatus_ok(tctx, open_fn(p, tctx, &r),
+                                  "open");
 
        test_Cleanup(p, tctx, &handle, TEST_KEY1);
        test_Cleanup(p, tctx, &handle, TEST_KEY2);
@@ -642,8 +635,8 @@ static bool test_Open(struct torture_context *tctx, struct dcerpc_pipe *p,
        }
 
        if (created && !test_OpenKey(p, tctx, &handle, TEST_KEY1, &newhandle))
-               torture_fail(tctx, 
-                                        "CreateKey failed (OpenKey after Create didn't work)\n");
+               torture_fail(tctx,
+                            "CreateKey failed (OpenKey after Create didn't work)\n");
 
        if (created && !test_DeleteKey(p, tctx, &handle, TEST_KEY1)) {
                torture_comment(tctx, "DeleteKey failed\n");
@@ -657,10 +650,10 @@ static bool test_Open(struct torture_context *tctx, struct dcerpc_pipe *p,
                ret = false;
        }
 
-       if (created && deleted && 
+       if (created && deleted &&
            test_OpenKey(p, tctx, &handle, TEST_KEY1, &newhandle)) {
-               torture_comment(tctx, 
-                                               "DeleteKey failed (OpenKey after Delete worked)\n");
+               torture_comment(tctx,
+                               "DeleteKey failed (OpenKey after Delete worked)\n");
                ret = false;
        }
 
@@ -669,8 +662,8 @@ static bool test_Open(struct torture_context *tctx, struct dcerpc_pipe *p,
                ret = false;
        }
 
-       if (created && test_CreateKey_sd(p, tctx, &handle, TEST_KEY2, 
-                                         NULL, &newhandle)) {
+       if (created && test_CreateKey_sd(p, tctx, &handle, TEST_KEY2,
+                                        NULL, &newhandle)) {
                created2 = true;
        }
 
@@ -693,21 +686,21 @@ static bool test_Open(struct torture_context *tctx, struct dcerpc_pipe *p,
                created3 = true;
        }
 
-       if (created3 && 
-           test_CreateKey(p, tctx, &handle, TEST_SUBKEY, NULL)) 
+       if (created3 &&
+           test_CreateKey(p, tctx, &handle, TEST_SUBKEY, NULL))
        {
                created_subkey = true;
        }
 
-       if (created_subkey && 
-           !test_DeleteKeyWithSubkey(p, tctx, &handle, TEST_KEY3)) 
+       if (created_subkey &&
+           !test_DeleteKeyWithSubkey(p, tctx, &handle, TEST_KEY3))
        {
                printf("DeleteKeyWithSubkey failed "
                       "(DeleteKey didn't return ACCESS_DENIED)\n");
                ret = false;
        }
 
-       if (created_subkey && 
+       if (created_subkey &&
            !test_DeleteKey(p, tctx, &handle, TEST_SUBKEY))
        {
                printf("DeleteKey failed\n");
@@ -749,19 +742,22 @@ struct torture_suite *torture_rpc_winreg(TALLOC_CTX *mem_ctx)
        int i;
        struct torture_rpc_tcase *tcase;
        struct torture_suite *suite = torture_suite_create(mem_ctx, "WINREG");
+       struct torture_test *test;
 
-       tcase = torture_suite_add_rpc_iface_tcase(suite, "winreg", 
-                                                                                         &ndr_table_winreg);
+       tcase = torture_suite_add_rpc_iface_tcase(suite, "winreg",
+                                                 &ndr_table_winreg);
 
-       torture_rpc_tcase_add_test(tcase, "InitiateSystemShutdown", 
-                                                          test_InitiateSystemShutdown);
+       test = torture_rpc_tcase_add_test(tcase, "InitiateSystemShutdown",
+                                         test_InitiateSystemShutdown);
+       test->dangerous = true;
 
-       torture_rpc_tcase_add_test(tcase, "InitiateSystemShutdownEx", 
-                                                          test_InitiateSystemShutdownEx);
+       test = torture_rpc_tcase_add_test(tcase, "InitiateSystemShutdownEx",
+                                         test_InitiateSystemShutdownEx);
+       test->dangerous = true;
 
        for (i = 0; i < ARRAY_SIZE(open_fns); i++) {
-               torture_rpc_tcase_add_test_ex(tcase, open_fns[i].name, test_Open, 
-                                                                         open_fns[i].fn);
+               torture_rpc_tcase_add_test_ex(tcase, open_fns[i].name,
+                                             test_Open, open_fns[i].fn);
        }
 
        return suite;
index 62d273e6230c5060f410146718ac474ab9520996..796b180ddf6ae52beb4011292933eddd79a6c6b5 100644 (file)
@@ -25,6 +25,7 @@
 #include "libcli/smb2/smb2_calls.h"
 #include "torture/torture.h"
 #include "torture/smb2/proto.h"
+#include "param/param.h"
 
 /*
   send a close
@@ -73,9 +74,9 @@ static NTSTATUS torture_smb2_write(struct smb2_tree *tree, struct smb2_handle ha
        DATA_BLOB data;
        int i;
        
-       if (lp_parm_bool(-1, "torture", "dangerous", False)) {
+       if (lp_parm_bool(global_loadparm, NULL, "torture", "dangerous", false)) {
                data = data_blob_talloc(tree, NULL, 160000);
-       } else if (lp_parm_bool(-1, "torture", "samba4", False)) {
+       } else if (lp_parm_bool(global_loadparm, NULL, "torture", "samba4", false)) {
                data = data_blob_talloc(tree, NULL, UINT16_MAX);
        } else {
                data = data_blob_talloc(tree, NULL, 120000);
@@ -188,7 +189,7 @@ static struct smb2_handle torture_smb2_create(struct smb2_tree *tree,
 /* 
    basic testing of SMB2 connection calls
 */
-BOOL torture_smb2_connect(struct torture_context *torture)
+bool torture_smb2_connect(struct torture_context *torture)
 {
        TALLOC_CTX *mem_ctx = talloc_new(NULL);
        struct smb2_tree *tree;
@@ -196,7 +197,7 @@ BOOL torture_smb2_connect(struct torture_context *torture)
        NTSTATUS status;
 
        if (!torture_smb2_connection(mem_ctx, &tree)) {
-               return False;
+               return false;
        }
 
        h1 = torture_smb2_create(tree, "test9.dat");
@@ -204,56 +205,56 @@ BOOL torture_smb2_connect(struct torture_context *torture)
        status = torture_smb2_write(tree, h1);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Write failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
        status = torture_smb2_close(tree, h1);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Close failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
        status = torture_smb2_close(tree, h2);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Close failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        status = smb2_util_close(tree, h1);
        if (!NT_STATUS_EQUAL(status, NT_STATUS_FILE_CLOSED)) {
                printf("close should have closed the handle - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        status = smb2_tdis(tree);
        if (!NT_STATUS_IS_OK(status)) {
                printf("tdis failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        status = smb2_tdis(tree);
        if (!NT_STATUS_EQUAL(status, NT_STATUS_NETWORK_NAME_DELETED)) {
                printf("tdis should have disabled session - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        status = smb2_logoff(tree->session);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Logoff failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        status = smb2_logoff(tree->session);
        if (!NT_STATUS_EQUAL(status, NT_STATUS_USER_SESSION_DELETED)) {
                printf("Logoff should have disabled session - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        status = smb2_keepalive(tree->session->transport);
        if (!NT_STATUS_IS_OK(status)) {
                printf("keepalive failed? - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        talloc_free(mem_ctx);
 
-       return True;
+       return true;
 }
index 428683522afa60368909502cb9405b07b777d2a7..eb24dd08849153c2a8fcfe91eb5e0ae4cc48a4c4 100644 (file)
 /*
   test find continue
 */
-static BOOL torture_smb2_find_dir(struct smb2_tree *tree)
+static bool torture_smb2_find_dir(struct smb2_tree *tree)
 {
        struct smb2_handle handle;
        NTSTATUS status;
        int i;
        struct smb2_find f;
-       BOOL ret = True;
+       bool ret = true;
        union smb_search_data *d;
        uint_t count;
 
        status = smb2_util_roothandle(tree, &handle);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
        ZERO_STRUCT(f);
@@ -75,14 +75,14 @@ static BOOL torture_smb2_find_dir(struct smb2_tree *tree)
 /* 
    basic testing of directory listing with continue
 */
-BOOL torture_smb2_dir(struct torture_context *torture)
+bool torture_smb2_dir(struct torture_context *torture)
 {
        TALLOC_CTX *mem_ctx = talloc_new(NULL);
        struct smb2_tree *tree;
-       BOOL ret = True;
+       bool ret = true;
 
        if (!torture_smb2_connection(mem_ctx, &tree)) {
-               return False;
+               return false;
        }
 
        ret &= torture_smb2_find_dir(tree);
index 2b4bde7865ffe9adea18bac418316359745e9408..654866dfb5d089d5b9f37d29749c296f08ebc411 100644 (file)
@@ -49,7 +49,7 @@ static struct {
                printf("(%s) %s/%s should be 0x%llx - 0x%llx\n", __location__, \
                       #call_name, #field, \
                       (long long)io.all_info2.out.field, (long long)d->stype.field); \
-               ret = False; \
+               ret = false; \
        }} while (0)
 
 #define CHECK_CONST_STRING(call_name, stype, field, str) do { \
@@ -58,7 +58,7 @@ static struct {
                printf("(%s) %s/%s should be '%s' - '%s'\n", __location__, \
                       #call_name, #field, \
                       str, d->stype.field.s); \
-               ret = False; \
+               ret = false; \
        }} while (0)
 
 static union smb_search_data *find_level(const char *name)
@@ -75,26 +75,26 @@ static union smb_search_data *find_level(const char *name)
 /*
   test find levels
 */
-static BOOL torture_smb2_find_levels(struct smb2_tree *tree)
+static bool torture_smb2_find_levels(struct smb2_tree *tree)
 {
        struct smb2_handle handle;
        NTSTATUS status;
        int i;
        struct smb2_find f;
-       BOOL ret = True;
+       bool ret = true;
        union smb_fileinfo io;
        const char *alt_name;
 
        status = smb2_create_complex_file(tree, FNAME, &handle);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
        io.generic.level = RAW_FILEINFO_ALT_NAME_INFORMATION;
        io.generic.in.file.handle = handle;
        status = smb2_getinfo_file(tree, tree, &io);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
        alt_name = talloc_strdup(tree, io.alt_name_info.out.fname.s);   
 
@@ -102,12 +102,12 @@ static BOOL torture_smb2_find_levels(struct smb2_tree *tree)
        io.generic.in.file.handle = handle;
        status = smb2_getinfo_file(tree, tree, &io);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
        status = smb2_util_roothandle(tree, &handle);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
 
        ZERO_STRUCT(f);
@@ -130,7 +130,7 @@ static BOOL torture_smb2_find_levels(struct smb2_tree *tree)
 
                if (count != 1) {
                        printf("Expected count 1 - got %d in %s\n", count, levels[i].name);
-                       ret = False;
+                       ret = false;
                }
 
                levels[i].data = d[0];
@@ -195,20 +195,20 @@ static BOOL torture_smb2_find_levels(struct smb2_tree *tree)
 
 /* basic testing of all SMB2 find levels
 */
-BOOL torture_smb2_find(struct torture_context *torture)
+bool torture_smb2_find(struct torture_context *torture)
 {
        TALLOC_CTX *mem_ctx = talloc_new(NULL);
        struct smb2_tree *tree;
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
 
        if (!torture_smb2_connection(mem_ctx, &tree)) {
-               return False;
+               return false;
        }
 
        status = torture_setup_complex_file(tree, FNAME);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
        torture_setup_complex_file(tree, FNAME ":streamtwo");
 
index fc59d1ac30b4b40e7ca081e1273253af5177bac2..9ed0b9ddb59e39894c0b340c3bf97d902d462aca 100644 (file)
@@ -26,6 +26,8 @@
 #include "torture/torture.h"
 #include "torture/smb2/proto.h"
 
+#include "param/param.h"
+
 static struct {
        const char *name;
        uint16_t level;
@@ -75,7 +77,7 @@ static struct {
 /*
   test fileinfo levels
 */
-static BOOL torture_smb2_fileinfo(struct smb2_tree *tree)
+static bool torture_smb2_fileinfo(struct smb2_tree *tree)
 {
        struct smb2_handle hfile, hdir;
        NTSTATUS status;
@@ -103,7 +105,7 @@ static BOOL torture_smb2_fileinfo(struct smb2_tree *tree)
                        file_levels[i].dinfo.query_secdesc.in.secinfo_flags = 0x7;
                }
                if (file_levels[i].level == RAW_FILEINFO_SMB2_ALL_EAS) {
-                       if (lp_parm_bool(-1, "torture", "samba4", False)) {
+                       if (lp_parm_bool(global_loadparm, NULL, "torture", "samba4", false)) {
                                continue;
                        }
                        file_levels[i].finfo.all_eas.in.continue_flags = 
@@ -129,17 +131,17 @@ static BOOL torture_smb2_fileinfo(struct smb2_tree *tree)
                }
        }
 
-       return True;
+       return true;
 
 failed:
-       return False;
+       return false;
 }
 
 
 /*
   test fsinfo levels
 */
-static BOOL torture_smb2_fsinfo(struct smb2_tree *tree)
+static bool torture_smb2_fsinfo(struct smb2_tree *tree)
 {
        int i;
        NTSTATUS status;
@@ -149,7 +151,7 @@ static BOOL torture_smb2_fsinfo(struct smb2_tree *tree)
        status = smb2_util_roothandle(tree, &handle);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Unable to create test directory '%s' - %s\n", DNAME, nt_errstr(status));
-               return False;
+               return false;
        }
 
        for (i=0;i<ARRAY_SIZE(fs_levels);i++) {
@@ -158,35 +160,35 @@ static BOOL torture_smb2_fsinfo(struct smb2_tree *tree)
                fs_levels[i].status = smb2_getinfo_fs(tree, tree, &fs_levels[i].info);
                if (!NT_STATUS_IS_OK(fs_levels[i].status)) {
                        printf("%s failed - %s\n", fs_levels[i].name, nt_errstr(fs_levels[i].status));
-                       return False;
+                       return false;
                }
        }
 
-       return True;
+       return true;
 }
 
 
 /* basic testing of all SMB2 getinfo levels
 */
-BOOL torture_smb2_getinfo(struct torture_context *torture)
+bool torture_smb2_getinfo(struct torture_context *torture)
 {
        TALLOC_CTX *mem_ctx = talloc_new(NULL);
        struct smb2_tree *tree;
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
 
        if (!torture_smb2_connection(mem_ctx, &tree)) {
-               return False;
+               return false;
        }
 
        status = torture_setup_complex_file(tree, FNAME);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
        torture_setup_complex_file(tree, FNAME ":streamtwo");
        status = torture_setup_complex_dir(tree, DNAME);
        if (!NT_STATUS_IS_OK(status)) {
-               return False;
+               return false;
        }
        torture_setup_complex_file(tree, DNAME ":streamtwo");
 
index 9f426c3aa807abf2e94b9edec8ed1d71c9f51dc1..98e412817bc47337cc9c9d9e46e6a8199393b51c 100644 (file)
@@ -32,7 +32,7 @@
        if (!NT_STATUS_EQUAL(status, correct)) { \
                printf("(%s) Incorrect status %s - should be %s\n", \
                       __location__, nt_errstr(status), nt_errstr(correct)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
        if ((v) != (correct)) { \
                printf("(%s) Incorrect value %s=%d - should be %d\n", \
                       __location__, #v, v, correct); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
-static BOOL test_valid_request(struct torture_context *torture, struct smb2_tree *tree)
+static bool test_valid_request(struct torture_context *torture, struct smb2_tree *tree)
 {
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        struct smb2_handle h;
        uint8_t buf[200];
@@ -194,11 +194,11 @@ struct test_lock_read_write_state {
        NTSTATUS read_h2_status;
 };
 
-static BOOL test_lock_read_write(struct torture_context *torture,
+static bool test_lock_read_write(struct torture_context *torture,
                                 struct smb2_tree *tree,
                                 struct test_lock_read_write_state *s)
 {
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        struct smb2_handle h1, h2;
        uint8_t buf[200];
@@ -317,7 +317,7 @@ done:
        return ret;
 }
 
-static BOOL test_lock_rw_none(struct torture_context *torture, struct smb2_tree *tree)
+static bool test_lock_rw_none(struct torture_context *torture, struct smb2_tree *tree)
 {
        struct test_lock_read_write_state s = {
                .fname                  = "lock_rw_none.dat",
@@ -331,7 +331,7 @@ static BOOL test_lock_rw_none(struct torture_context *torture, struct smb2_tree
        return test_lock_read_write(torture, tree, &s);
 }
 
-static BOOL test_lock_rw_shared(struct torture_context *torture, struct smb2_tree *tree)
+static bool test_lock_rw_shared(struct torture_context *torture, struct smb2_tree *tree)
 {
        struct test_lock_read_write_state s = {
                .fname                  = "lock_rw_shared.dat",
@@ -345,7 +345,7 @@ static BOOL test_lock_rw_shared(struct torture_context *torture, struct smb2_tre
        return test_lock_read_write(torture, tree, &s);
 }
 
-static BOOL test_lock_rw_exclusiv(struct torture_context *torture, struct smb2_tree *tree)
+static bool test_lock_rw_exclusiv(struct torture_context *torture, struct smb2_tree *tree)
 {
        struct test_lock_read_write_state s = {
                .fname                  = "lock_rw_exclusiv.dat",
index d4a77ad3ca1a5f3975ca36f01f1d9a8ad0cbd3ec..588a49221e146b663fa2e75d76a2b2dd936745e7 100644 (file)
@@ -111,7 +111,7 @@ static NTSTATUS torture_smb2_write(TALLOC_CTX *mem_ctx,
 /* 
    basic testing of SMB2 connection calls
 */
-BOOL torture_smb2_maxwrite(struct torture_context *torture)
+bool torture_smb2_maxwrite(struct torture_context *torture)
 {
        TALLOC_CTX *mem_ctx = talloc_new(NULL);
        struct smb2_tree *tree;
@@ -119,17 +119,17 @@ BOOL torture_smb2_maxwrite(struct torture_context *torture)
        NTSTATUS status;
 
        if (!torture_smb2_connection(mem_ctx, &tree)) {
-               return False;
+               return false;
        }
 
        h1 = torture_smb2_create(tree, FNAME);
        status = torture_smb2_write(mem_ctx, tree, h1);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Write failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        talloc_free(mem_ctx);
 
-       return True;
+       return true;
 }
index 505b316d8e1badb6a547cf983737601871776616..cabe81ca71e2da952bb4c1d4527c9099cae9d47c 100644 (file)
@@ -33,7 +33,7 @@
        if (!NT_STATUS_EQUAL(status, correct)) { \
                printf("(%s) Incorrect status %s - should be %s\n", \
                       __location__, nt_errstr(status), nt_errstr(correct)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
@@ -41,7 +41,7 @@
        if ((v) != (correct)) { \
                printf("(%s) Incorrect value %s=%d - should be %d\n", \
                       __location__, #v, v, correct); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
        if (!field.s || strcmp(field.s, value)) { \
                printf("(%s) %s [%s] != %s\n", \
                          __location__, #field, field.s, value); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
 #define FNAME "smb2-notify01.dat"
 
-static BOOL test_valid_request(TALLOC_CTX *mem_ctx, struct smb2_tree *tree)
+static bool test_valid_request(TALLOC_CTX *mem_ctx, struct smb2_tree *tree)
 {
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
        struct smb2_handle dh;
        struct smb2_notify n;
@@ -188,14 +188,14 @@ done:
 
 /* basic testing of SMB2 notify
 */
-BOOL torture_smb2_notify(struct torture_context *torture)
+bool torture_smb2_notify(struct torture_context *torture)
 {
        TALLOC_CTX *mem_ctx = talloc_new(NULL);
        struct smb2_tree *tree;
-       BOOL ret = True;
+       bool ret = true;
 
        if (!torture_smb2_connection(mem_ctx, &tree)) {
-               return False;
+               return false;
        }
 
        ret &= test_valid_request(mem_ctx, tree);
index 83893608f9bfe8294cd9f9bf2654a4993825c02a..f3e4d5cd36a40acf2719b4be26cfefcf939dd265 100644 (file)
@@ -35,7 +35,7 @@
 /* 
    scan for valid SMB2 getinfo levels
 */
-BOOL torture_smb2_getinfo_scan(struct torture_context *torture)
+bool torture_smb2_getinfo_scan(struct torture_context *torture)
 {
        TALLOC_CTX *mem_ctx = talloc_new(NULL);
        struct smb2_tree *tree;
@@ -45,20 +45,20 @@ BOOL torture_smb2_getinfo_scan(struct torture_context *torture)
        int c, i;
 
        if (!torture_smb2_connection(mem_ctx, &tree)) {
-               return False;
+               return false;
        }
 
        status = torture_setup_complex_file(tree, FNAME);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Failed to setup complex file '%s'\n", FNAME);
-               return False;
+               return false;
        }
        torture_setup_complex_file(tree, FNAME ":2ndstream");
 
        status = torture_setup_complex_dir(tree, DNAME);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Failed to setup complex dir  '%s'\n", DNAME);
-               return False;
+               return false;
        }
        torture_setup_complex_file(tree, DNAME ":2ndstream");
 
@@ -97,13 +97,13 @@ BOOL torture_smb2_getinfo_scan(struct torture_context *torture)
 
        talloc_free(mem_ctx);
 
-       return True;
+       return true;
 }
 
 /* 
    scan for valid SMB2 setinfo levels
 */
-BOOL torture_smb2_setinfo_scan(struct torture_context *torture)
+bool torture_smb2_setinfo_scan(struct torture_context *torture)
 {
        TALLOC_CTX *mem_ctx = talloc_new(NULL);
        struct smb2_tree *tree;
@@ -113,13 +113,13 @@ BOOL torture_smb2_setinfo_scan(struct torture_context *torture)
        int c, i;
 
        if (!torture_smb2_connection(mem_ctx, &tree)) {
-               return False;
+               return false;
        }
 
        status = torture_setup_complex_file(tree, FNAME);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Failed to setup complex file '%s'\n", FNAME);
-               return False;
+               return false;
        }
        torture_setup_complex_file(tree, FNAME ":2ndstream");
 
@@ -143,14 +143,14 @@ BOOL torture_smb2_setinfo_scan(struct torture_context *torture)
 
        talloc_free(mem_ctx);
 
-       return True;
+       return true;
 }
 
 
 /* 
    scan for valid SMB2 scan levels
 */
-BOOL torture_smb2_find_scan(struct torture_context *torture)
+bool torture_smb2_find_scan(struct torture_context *torture)
 {
        TALLOC_CTX *mem_ctx = talloc_new(NULL);
        struct smb2_tree *tree;
@@ -160,13 +160,13 @@ BOOL torture_smb2_find_scan(struct torture_context *torture)
        int i;
 
        if (!torture_smb2_connection(mem_ctx, &tree)) {
-               return False;
+               return false;
        }
 
        status = smb2_util_roothandle(tree, &handle);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Failed to open roothandle - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        ZERO_STRUCT(io);
@@ -191,13 +191,13 @@ BOOL torture_smb2_find_scan(struct torture_context *torture)
 
        talloc_free(mem_ctx);
 
-       return True;
+       return true;
 }
 
 /* 
    scan for valid SMB2 opcodes
 */
-BOOL torture_smb2_scan(struct torture_context *torture)
+bool torture_smb2_scan(struct torture_context *torture)
 {
        TALLOC_CTX *mem_ctx = talloc_new(NULL);
        struct smb2_tree *tree;
@@ -212,13 +212,13 @@ BOOL torture_smb2_scan(struct torture_context *torture)
                              event_context_find(mem_ctx));
        if (!NT_STATUS_IS_OK(status)) {
                printf("Connection failed - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
        tree->session->transport->options.timeout = 3;
 
        for (opcode=0;opcode<1000;opcode++) {
-               req = smb2_request_init_tree(tree, opcode, 2, False, 0);
+               req = smb2_request_init_tree(tree, opcode, 2, false, 0);
                SSVAL(req->out.body, 0, 0);
                smb2_transport_send(req);
                if (!smb2_request_receive(req)) {
@@ -227,7 +227,7 @@ BOOL torture_smb2_scan(struct torture_context *torture)
                                              event_context_find(mem_ctx));
                        if (!NT_STATUS_IS_OK(status)) {
                                printf("Connection failed - %s\n", nt_errstr(status));
-                               return False;
+                               return false;
                        }
                        tree->session->transport->options.timeout = 3;
                } else {
@@ -238,5 +238,5 @@ BOOL torture_smb2_scan(struct torture_context *torture)
 
        talloc_free(mem_ctx);
 
-       return True;
+       return true;
 }
index 88e8d07604dc545d63c995dfc579a5008afcae45..6a81f13f67c9c7a815ebcafb30134725d5903190 100644 (file)
    for each call we test that it succeeds, and where possible test 
    for consistency between the calls. 
 */
-BOOL torture_smb2_setinfo(struct torture_context *torture)
+bool torture_smb2_setinfo(struct torture_context *torture)
 {
        struct smb2_tree *tree;
-       BOOL ret = True;
+       bool ret = true;
        TALLOC_CTX *mem_ctx = talloc_new(NULL);
        struct smb2_handle handle;
        char *fname;
@@ -60,7 +60,7 @@ BOOL torture_smb2_setinfo(struct torture_context *torture)
        fname_new = talloc_asprintf(mem_ctx, BASEDIR "fnum_test_new_%d.txt", n);
 
        if (!torture_smb2_connection(mem_ctx, &tree)) {
-               return False;
+               return false;
        }
 
 #define RECREATE_FILE(fname) do { \
@@ -69,7 +69,7 @@ BOOL torture_smb2_setinfo(struct torture_context *torture)
        if (!NT_STATUS_IS_OK(status)) { \
                printf("(%s) ERROR: open of %s failed (%s)\n", \
                       __location__, fname, nt_errstr(status)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
@@ -87,7 +87,7 @@ BOOL torture_smb2_setinfo(struct torture_context *torture)
        if (!NT_STATUS_EQUAL(status, rightstatus)) { \
                printf("(%s) %s - %s (should be %s)\n", __location__, #call, \
                        nt_errstr(status), nt_errstr(rightstatus)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        } \
        } while (0)
@@ -99,7 +99,7 @@ BOOL torture_smb2_setinfo(struct torture_context *torture)
                status2 = smb2_getinfo_file(tree, mem_ctx, &finfo2); \
                if (!NT_STATUS_IS_OK(status2)) { \
                        printf("(%s) %s - %s\n", __location__, #call, nt_errstr(status2)); \
-               ret = False; \
+               ret = false; \
                goto done; \
                } \
        }} while (0)
@@ -111,7 +111,7 @@ BOOL torture_smb2_setinfo(struct torture_context *torture)
                       call_name, #stype, #field, \
                       (uint_t)value, (uint_t)finfo2.stype.out.field); \
                torture_smb2_all_info(tree, handle); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
@@ -125,7 +125,7 @@ BOOL torture_smb2_setinfo(struct torture_context *torture)
                printf("\t%s", timestring(mem_ctx, value)); \
                printf("\t%s\n", nt_time_string(mem_ctx, finfo2.stype.out.field)); \
                torture_smb2_all_info(tree, handle); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
@@ -133,7 +133,7 @@ BOOL torture_smb2_setinfo(struct torture_context *torture)
        if (!NT_STATUS_EQUAL(status, correct)) { \
                printf("(%s) Incorrect status %s - should be %s\n", \
                       __location__, nt_errstr(status), nt_errstr(correct)); \
-               ret = False; \
+               ret = false; \
                goto done; \
        }} while (0)
 
@@ -262,7 +262,7 @@ BOOL torture_smb2_setinfo(struct torture_context *torture)
                NDR_PRINT_DEBUG(security_descriptor, finfo2.query_secdesc.out.sd);
                printf("expected:\n");
                NDR_PRINT_DEBUG(security_descriptor, sd);
-               ret = False;
+               ret = false;
        }
 
        printf("remove it again\n");
@@ -281,7 +281,7 @@ BOOL torture_smb2_setinfo(struct torture_context *torture)
                NDR_PRINT_DEBUG(security_descriptor, finfo2.query_secdesc.out.sd);
                printf("expected:\n");
                NDR_PRINT_DEBUG(security_descriptor, sd);
-               ret = False;
+               ret = false;
        }
 
 done:
index 5e680fbcecb776017b283165212c74c056165879..705f10a8418a286cc57eb3ad3bec0ec26f561e51 100644 (file)
 #include "lib/events/events.h"
 #include "system/time.h"
 #include "librpc/gen_ndr/ndr_security.h"
+#include "param/param.h"
+
+#include "torture/torture.h"
+#include "torture/smb2/proto.h"
 
 
 /*
@@ -90,7 +94,7 @@ NTSTATUS smb2_util_write(struct smb2_tree *tree,
   create a complex file/dir using the SMB2 protocol
 */
 static NTSTATUS smb2_create_complex(struct smb2_tree *tree, const char *fname, 
-                                        struct smb2_handle *handle, BOOL dir)
+                                        struct smb2_handle *handle, bool dir)
 {
        TALLOC_CTX *tmp_ctx = talloc_new(tree);
        char buf[7] = "abc";
@@ -195,7 +199,7 @@ static NTSTATUS smb2_create_complex(struct smb2_tree *tree, const char *fname,
 NTSTATUS smb2_create_complex_file(struct smb2_tree *tree, const char *fname, 
                                         struct smb2_handle *handle)
 {
-       return smb2_create_complex(tree, fname, handle, False);
+       return smb2_create_complex(tree, fname, handle, false);
 }
 
 /*
@@ -204,7 +208,7 @@ NTSTATUS smb2_create_complex_file(struct smb2_tree *tree, const char *fname,
 NTSTATUS smb2_create_complex_dir(struct smb2_tree *tree, const char *fname, 
                                 struct smb2_handle *handle)
 {
-       return smb2_create_complex(tree, fname, handle, True);
+       return smb2_create_complex(tree, fname, handle, true);
 }
 
 /*
@@ -298,11 +302,11 @@ void torture_smb2_all_info(struct smb2_tree *tree, struct smb2_handle handle)
 /*
   open a smb2 connection
 */
-BOOL torture_smb2_connection(TALLOC_CTX *mem_ctx, struct smb2_tree **tree)
+bool torture_smb2_connection(TALLOC_CTX *mem_ctx, struct smb2_tree **tree)
 {
        NTSTATUS status;
-       const char *host = lp_parm_string(-1, "torture", "host");
-       const char *share = lp_parm_string(-1, "torture", "share");
+       const char *host = lp_parm_string(global_loadparm, NULL, "torture", "host");
+       const char *share = lp_parm_string(global_loadparm, NULL, "torture", "share");
        struct cli_credentials *credentials = cmdline_credentials;
 
        status = smb2_connect(mem_ctx, host, share, credentials, tree, 
@@ -310,9 +314,9 @@ BOOL torture_smb2_connection(TALLOC_CTX *mem_ctx, struct smb2_tree **tree)
        if (!NT_STATUS_IS_OK(status)) {
                printf("Failed to connect to SMB2 share \\\\%s\\%s - %s\n",
                       host, share, nt_errstr(status));
-               return False;
+               return false;
        }
-       return True;
+       return true;
 }
 
 
index d461828431e7f9cd267d1015a7b5a259ac8c4f2c..ea563f7d634a59c85b9da68730f999c0ef7cf077 100644 (file)
@@ -34,6 +34,7 @@
 #include "build.h"
 #include "lib/util/dlinklist.h"
 #include "librpc/rpc/dcerpc.h"
+#include "param/param.h"
 
 static bool run_matching(struct torture_context *torture,
                                                 const char *prefix, 
@@ -130,33 +131,33 @@ static void parse_dns(const char *dns)
        /* retrievieng the userdn */
        p = strchr_m(dns, '#');
        if (!p) {
-               lp_set_cmdline("torture:ldap_userdn", "");
-               lp_set_cmdline("torture:ldap_basedn", "");
-               lp_set_cmdline("torture:ldap_secret", "");
+               lp_set_cmdline(global_loadparm, "torture:ldap_userdn", "");
+               lp_set_cmdline(global_loadparm, "torture:ldap_basedn", "");
+               lp_set_cmdline(global_loadparm, "torture:ldap_secret", "");
                return;
        }
        userdn = strndup(dns, p - dns);
-       lp_set_cmdline("torture:ldap_userdn", userdn);
+       lp_set_cmdline(global_loadparm, "torture:ldap_userdn", userdn);
 
        /* retrieve the basedn */
        d = p + 1;
        p = strchr_m(d, '#');
        if (!p) {
-               lp_set_cmdline("torture:ldap_basedn", "");
-               lp_set_cmdline("torture:ldap_secret", "");
+               lp_set_cmdline(global_loadparm, "torture:ldap_basedn", "");
+               lp_set_cmdline(global_loadparm, "torture:ldap_secret", "");
                return;
        }
        basedn = strndup(d, p - d);
-       lp_set_cmdline("torture:ldap_basedn", basedn);
+       lp_set_cmdline(global_loadparm, "torture:ldap_basedn", basedn);
 
        /* retrieve the secret */
        p = p + 1;
        if (!p) {
-               lp_set_cmdline("torture:ldap_secret", "");
+               lp_set_cmdline(global_loadparm, "torture:ldap_secret", "");
                return;
        }
        secret = strdup(p);
-       lp_set_cmdline("torture:ldap_secret", secret);
+       lp_set_cmdline(global_loadparm, "torture:ldap_secret", secret);
 
        printf ("%s - %s - %s\n", userdn, basedn, secret);
 
@@ -168,6 +169,9 @@ static void print_test_list(void)
        struct torture_suite *s;
        struct torture_tcase *t;
 
+       if (torture_root == NULL)
+               return;
+
        for (o = torture_root->children; o; o = o->next) {
                for (s = o->children; s; s = s->next) {
                        printf("%s-%s\n", o->name, s->name);
@@ -179,7 +183,7 @@ static void print_test_list(void)
        }
 }
 
-static void usage(poptContext pc)
+_NORETURN_ static void usage(poptContext pc)
 {
        struct torture_suite *o;
        struct torture_suite *s;
@@ -238,6 +242,11 @@ static void usage(poptContext pc)
 
        printf("Tests are:");
 
+       if (torture_root == NULL) {
+           printf("NO TESTS LOADED\n");
+           exit(1);
+       }
+
        for (o = torture_root->children; o; o = o->next) {
                printf("\n%s (%s):\n  ", o->description, o->name);
 
@@ -266,7 +275,7 @@ static void usage(poptContext pc)
        exit(1);
 }
 
-static void max_runtime_handler(int sig)
+_NORETURN_ static void max_runtime_handler(int sig)
 {
        DEBUG(0,("maximum runtime exceeded for smbtorture - terminating\n"));
        exit(1);
@@ -275,22 +284,22 @@ static void max_runtime_handler(int sig)
 struct timeval last_suite_started;
 
 static void simple_suite_start(struct torture_context *ctx,
-                                                          struct torture_suite *suite)
+                              struct torture_suite *suite)
 {
        last_suite_started = timeval_current();
        printf("Running %s\n", suite->name);
 }
 
 static void simple_suite_finish(struct torture_context *ctx,
-                                                          struct torture_suite *suite)
+                               struct torture_suite *suite)
 {
 
        printf("%s took %g secs\n\n", suite->name, 
                   timeval_elapsed(&last_suite_started));
 }
 
-static void simple_test_result (struct torture_context *context, 
-                                                               enum torture_result res, const char *reason)
+static void simple_test_result(struct torture_context *context, 
+                              enum torture_result res, const char *reason)
 {
        switch (res) {
        case TORTURE_OK:
@@ -309,14 +318,14 @@ static void simple_test_result (struct torture_context *context,
        }
 }
 
-static void simple_comment (struct torture_context *test, 
-                                                       const char *comment)
+static void simple_comment(struct torture_context *test, 
+                          const char *comment)
 {
        printf("%s", comment);
 }
 
 static void simple_warning(struct torture_context *test, 
-                                                  const char *comment)
+                          const char *comment)
 {
        fprintf(stderr, "WARNING: %s\n", comment);
 }
@@ -335,19 +344,19 @@ static void subunit_init(struct torture_context *ctx)
 }
 
 static void subunit_suite_start(struct torture_context *ctx,
-                                                          struct torture_suite *suite)
+                               struct torture_suite *suite)
 {
 }
 
-static void subunit_test_start (struct torture_context *ctx, 
-                                                           struct torture_tcase *tcase,
-                                                               struct torture_test *test)
+static void subunit_test_start(struct torture_context *ctx, 
+                              struct torture_tcase *tcase,
+                              struct torture_test *test)
 {
        printf("test: %s\n", test->name);
 }
 
-static void subunit_test_result (struct torture_context *context, 
-                                                                enum torture_result res, const char *reason)
+static void subunit_test_result(struct torture_context *context, 
+                               enum torture_result res, const char *reason)
 {
        switch (res) {
        case TORTURE_OK:
@@ -368,22 +377,29 @@ static void subunit_test_result (struct torture_context *context,
        printf("\n");
 }
 
-static void subunit_comment (struct torture_context *test, 
-                                                        const char *comment)
+static void subunit_comment(struct torture_context *test,
+                           const char *comment)
 {
        fprintf(stderr, "%s", comment);
 }
 
+static void subunit_warning(struct torture_context *test,
+                           const char *comment)
+{
+       fprintf(stderr, "WARNING!: %s\n", comment);
+}
+
 const static struct torture_ui_ops subunit_ui_ops = {
        .init = subunit_init,
        .comment = subunit_comment,
+       .warning = subunit_warning,
        .test_start = subunit_test_start,
        .test_result = subunit_test_result,
        .suite_start = subunit_suite_start
 };
 
 static void quiet_suite_start(struct torture_context *ctx,
-                                                 struct torture_suite *suite)
+                             struct torture_suite *suite)
 {
        int i;
        ctx->quiet = true;
@@ -393,13 +409,13 @@ static void quiet_suite_start(struct torture_context *ctx,
 }
 
 static void quiet_suite_finish(struct torture_context *ctx,
-                                                 struct torture_suite *suite)
+                              struct torture_suite *suite)
 {
        putchar('\n');
 }
 
-static void quiet_test_result (struct torture_context *context, 
-                                                          enum torture_result res, const char *reason)
+static void quiet_test_result(struct torture_context *context, 
+                             enum torture_result res, const char *reason)
 {
        fflush(stdout);
        switch (res) {
@@ -442,7 +458,7 @@ void run_shell(struct torture_context *tctx)
                                fprintf(stderr, "Usage: set <variable> <value>\n");
                        } else {
                                char *name = talloc_asprintf(NULL, "torture:%s", argv[1]);
-                               lp_set_cmdline(name, argv[2]);
+                               lp_set_cmdline(global_loadparm, name, argv[2]);
                                talloc_free(name);
                        }
                } else if (!strcmp(argv[0], "help")) {
@@ -477,9 +493,10 @@ int main(int argc,char *argv[])
        static const char *target = "other";
        struct dcerpc_binding *binding_struct;
        NTSTATUS status;
-       int shell = False;
+       int shell = false;
        static const char *ui_ops_name = "simple";
        const char *basedir = NULL;
+       const char *extra_module = NULL;
        static int list_tests = 0;
        char *host = NULL, *share = NULL;
        enum {OPT_LOADFILE=1000,OPT_UNCLIST,OPT_TIMELIMIT,OPT_DNS, OPT_LIST,
@@ -502,7 +519,8 @@ int main(int argc,char *argv[])
                {"parse-dns",   'D', POPT_ARG_STRING,   NULL,   OPT_DNS,        "parse-dns",    NULL},
                {"dangerous",   'X', POPT_ARG_NONE,     NULL,   OPT_DANGEROUS,
                 "run dangerous tests (eg. wiping out password database)", NULL},
-               {"shell",               0, POPT_ARG_NONE, &shell, True, "Run shell", NULL},
+               {"load-module",  0,  POPT_ARG_STRING, &extra_module,     0, "load tests from DSO file",    "SOFILE"},
+               {"shell",               0, POPT_ARG_NONE, &shell, true, "Run shell", NULL},
                {"target",              'T', POPT_ARG_STRING, &target, 0, "samba3|samba4|other", NULL},
                {"async",       'a', POPT_ARG_NONE,     NULL,   OPT_ASYNC,
                 "run async tests", NULL},
@@ -530,36 +548,36 @@ int main(int argc,char *argv[])
        while((opt = poptGetNextOpt(pc)) != -1) {
                switch (opt) {
                case OPT_LOADFILE:
-                       lp_set_cmdline("torture:loadfile", poptGetOptArg(pc));
+                       lp_set_cmdline(global_loadparm, "torture:loadfile", poptGetOptArg(pc));
                        break;
                case OPT_UNCLIST:
-                       lp_set_cmdline("torture:unclist", poptGetOptArg(pc));
+                       lp_set_cmdline(global_loadparm, "torture:unclist", poptGetOptArg(pc));
                        break;
                case OPT_TIMELIMIT:
-                       lp_set_cmdline("torture:timelimit", poptGetOptArg(pc));
+                       lp_set_cmdline(global_loadparm, "torture:timelimit", poptGetOptArg(pc));
                        break;
                case OPT_NUMPROGS:
-                       lp_set_cmdline("torture:nprocs", poptGetOptArg(pc));
+                       lp_set_cmdline(global_loadparm, "torture:nprocs", poptGetOptArg(pc));
                        break;
                case OPT_DNS:
                        parse_dns(poptGetOptArg(pc));
                        break;
                case OPT_DANGEROUS:
-                       lp_set_cmdline("torture:dangerous", "Yes");
+                       lp_set_cmdline(global_loadparm, "torture:dangerous", "Yes");
                        break;
                case OPT_ASYNC:
-                       lp_set_cmdline("torture:async", "Yes");
+                       lp_set_cmdline(global_loadparm, "torture:async", "Yes");
                        break;
                case OPT_SMB_PORTS:
-                       lp_set_cmdline("smb ports", poptGetOptArg(pc));
+                       lp_set_cmdline(global_loadparm, "smb ports", poptGetOptArg(pc));
                        break;
                }
        }
 
        if (strcmp(target, "samba3") == 0) {
-               lp_set_cmdline("torture:samba3", "true");
+               lp_set_cmdline(global_loadparm, "torture:samba3", "true");
        } else if (strcmp(target, "samba4") == 0) {
-               lp_set_cmdline("torture:samba4", "true");
+               lp_set_cmdline(global_loadparm, "torture:samba4", "true");
        }
 
        if (max_runtime) {
@@ -572,9 +590,24 @@ int main(int argc,char *argv[])
                alarm(max_runtime);
        }
 
-       torture_init();
        ldb_global_init();
 
+       if (extra_module != NULL) {
+           init_module_fn fn = load_module(talloc_autofree_context(), poptGetOptArg(pc));
+
+           if (fn == NULL) 
+               d_printf("Unable to load module from %s\n", poptGetOptArg(pc));
+           else {
+               status = fn();
+               if (NT_STATUS_IS_ERR(status)) {
+                   d_printf("Error initializing module %s: %s\n", 
+                            poptGetOptArg(pc), nt_errstr(status));
+               }
+           }
+       } else { 
+               torture_init();
+       }
+
        if (list_tests) {
                print_test_list();
                return 0;
@@ -609,12 +642,14 @@ int main(int argc,char *argv[])
                        usage(pc);
                        return false;
                }
-               lp_set_cmdline("torture:host", binding_struct->host);
-               lp_set_cmdline("torture:share", "IPC$");
-               lp_set_cmdline("torture:binding", argv_new[1]);
+               lp_set_cmdline(global_loadparm, "torture:host", binding_struct->host);
+               if (lp_parm_string(global_loadparm, NULL, "torture", "share") == NULL)
+                       lp_set_cmdline(global_loadparm, "torture:share", "IPC$");
+               lp_set_cmdline(global_loadparm, "torture:binding", argv_new[1]);
        } else {
-               lp_set_cmdline("torture:host", host);
-               lp_set_cmdline("torture:share", share);
+               lp_set_cmdline(global_loadparm, "torture:host", host);
+               lp_set_cmdline(global_loadparm, "torture:share", share);
+               lp_set_cmdline(global_loadparm, "torture:binding", host);
        }
 
        if (!strcmp(ui_ops_name, "simple")) {
@@ -629,7 +664,20 @@ int main(int argc,char *argv[])
        }
 
        torture = torture_context_init(talloc_autofree_context(), ui_ops);
-       torture->outputdir = basedir;
+       if (basedir != NULL) {
+               if (basedir[0] != '/') {
+                       fprintf(stderr, "Please specify an absolute path to --basedir\n");
+                       return 1;
+               }
+               torture->outputdir = basedir;
+       } else {
+               char *pwd = talloc_size(torture, PATH_MAX);
+               if (!getcwd(pwd, PATH_MAX)) {
+                       fprintf(stderr, "Unable to determine current working directory\n");
+                       return 1;
+               }
+               torture->outputdir = pwd;
+       }
 
        if (argc_new == 0) {
                printf("You must specify a test to run, or 'ALL'\n");
@@ -643,7 +691,7 @@ int main(int argc,char *argv[])
                }
        }
 
-       if (torture->returncode) {
+       if (torture->returncode && correct) {
                return(0);
        } else {
                return(1);
index 9231fe45edd2e030062efe3b097b8466eb4cef4c..44a0d3b4c2dc50eb80ed675ef2cff142a5acb0d9 100644 (file)
@@ -25,6 +25,7 @@
 #include "lib/util/dlinklist.h"
 #include "auth/credentials/credentials.h"
 #include "lib/cmdline/popt_common.h"
+#include "param/param.h"
 
 _PUBLIC_ int torture_numops=10;
 _PUBLIC_ int torture_entries=1000;
@@ -39,6 +40,9 @@ bool torture_register_suite(struct torture_suite *suite)
        if (!suite)
                return true;
 
+       if (torture_root == NULL)
+               torture_root = talloc_zero(talloc_autofree_context(), struct torture_suite);
+
        return torture_suite_add_suite(torture_root, suite);
 }
 
@@ -61,11 +65,8 @@ struct torture_context *torture_context_init(TALLOC_CTX *mem_ctx,
 int torture_init(void)
 {
        init_module_fn static_init[] = STATIC_torture_MODULES;
-       init_module_fn *shared_init = load_samba_modules(NULL, "torture");
+       init_module_fn *shared_init = load_samba_modules(NULL, global_loadparm, "torture");
 
-       torture_root = talloc_zero(talloc_autofree_context(), 
-                                  struct torture_suite);
-       
        run_init_functions(static_init);
        run_init_functions(shared_init);
 
index 92e03fff19c0d6bebbb16ed6c55b664788fdb85f..5d00b664f4e66129ce95d41b2d1cb6c20e171416 100644 (file)
 #include "torture/ui.h"
 #include "torture/torture.h"
 #include "lib/util/dlinklist.h"
+#include "param/param.h"
+#include "system/filesys.h"
+
+/**
+ create a temporary directory.
+*/
+_PUBLIC_ NTSTATUS torture_temp_dir(struct torture_context *tctx, 
+                                  const char *prefix, 
+                                  char **tempdir)
+{
+       SMB_ASSERT(tctx->outputdir != NULL);
+
+       *tempdir = talloc_asprintf(tctx, "%s/%s.XXXXXX", tctx->outputdir, prefix);
+       NT_STATUS_HAVE_NO_MEMORY(*tempdir);
+
+       if (mkdtemp(*tempdir) == NULL) {
+               return map_nt_error_from_unix(errno);
+       }
+
+       return NT_STATUS_OK;
+}
 
 void torture_comment(struct torture_context *context, const char *comment, ...)
 {
@@ -62,6 +83,11 @@ void torture_result(struct torture_context *context,
 
        va_start(ap, fmt);
 
+       if (context->last_reason) {
+               torture_warning(context, "%s", context->last_reason);
+               talloc_free(context->last_reason);
+       }
+
        context->last_result = result;
        context->last_reason = talloc_vasprintf(context, fmt, ap);
        va_end(ap);
@@ -79,20 +105,20 @@ struct torture_suite *torture_suite_create(TALLOC_CTX *ctx, const char *name)
 }
 
 void torture_tcase_set_fixture(struct torture_tcase *tcase, 
-               BOOL (*setup) (struct torture_context *, void **),
-               BOOL (*teardown) (struct torture_context *, void *))
+               bool (*setup) (struct torture_context *, void **),
+               bool (*teardown) (struct torture_context *, void *))
 {
        tcase->setup = setup;
        tcase->teardown = teardown;
 }
 
 static bool wrap_test_with_testcase(struct torture_context *torture_ctx,
-                                                                       struct torture_tcase *tcase,
-                                                                       struct torture_test *test)
+                                   struct torture_tcase *tcase,
+                                   struct torture_test *test)
 {
        bool (*fn) (struct torture_context *, 
-                                const void *tcase_data,
-                                const void *test_data);
+                   const void *tcase_data,
+                   const void *test_data);
 
        fn = test->fn;
 
@@ -112,7 +138,7 @@ struct torture_test *torture_tcase_add_test(struct torture_tcase *tcase,
        test->description = NULL;
        test->run = wrap_test_with_testcase;
        test->fn = run;
-       test->dangerous = False;
+       test->dangerous = false;
        test->data = data;
 
        DLIST_ADD_END(tcase->tests, test, struct torture_test *);
@@ -129,7 +155,7 @@ bool torture_suite_init_tcase(struct torture_suite *suite,
        tcase->description = NULL;
        tcase->setup = NULL;
        tcase->teardown = NULL;
-       tcase->fixture_persistent = True;
+       tcase->fixture_persistent = true;
        tcase->tests = NULL;
 
        DLIST_ADD_END(suite->testcases, tcase, struct torture_tcase *);
@@ -149,10 +175,10 @@ struct torture_tcase *torture_suite_add_tcase(struct torture_suite *suite,
        return tcase;
 }
 
-BOOL torture_run_suite(struct torture_context *context, 
+bool torture_run_suite(struct torture_context *context, 
                                           struct torture_suite *suite)
 {
-       BOOL ret = True;
+       bool ret = true;
        struct torture_tcase *tcase;
        struct torture_suite *tsuite;
        char *old_testname;
@@ -164,7 +190,7 @@ BOOL torture_run_suite(struct torture_context *context,
        old_testname = context->active_testname;
        if (old_testname != NULL)
                context->active_testname = talloc_asprintf(context, "%s-%s", 
-                                                                                          old_testname, suite->name);
+                                                          old_testname, suite->name);
        else
                context->active_testname = talloc_strdup(context, suite->name);
 
@@ -219,46 +245,58 @@ void torture_ui_test_result(struct torture_context *context,
                context->returncode = false;
 }
 
-static BOOL internal_torture_run_test(struct torture_context *context, 
+static bool internal_torture_run_test(struct torture_context *context, 
                                          struct torture_tcase *tcase,
                                          struct torture_test *test,
-                                         BOOL already_setup)
+                                         bool already_setup)
 {
-       BOOL ret;
+       bool success;
        char *old_testname;
 
-       if (test->dangerous && !torture_setting_bool(context, "dangerous", False)) {
-               torture_result(context, TORTURE_SKIP,
-                               "disabled %s - enable dangerous tests to use", test->name);
-               return True;
-       }
-
-       if (!already_setup && tcase->setup && 
-               !tcase->setup(context, &(tcase->data)))
-               return False;
-
        if (tcase == NULL || strcmp(test->name, tcase->name) != 0) { 
                old_testname = context->active_testname;
-               context->active_testname = talloc_asprintf(context, "%s-%s", 
-                                                                                          old_testname, test->name);
+               context->active_testname = talloc_asprintf(context, "%s-%s", old_testname, test->name);
        }
+
        context->active_tcase = tcase;
        context->active_test = test;
 
        torture_ui_test_start(context, tcase, test);
 
-
        context->last_reason = NULL;
        context->last_result = TORTURE_OK;
 
-       ret = test->run(context, tcase, test);
-       if (!ret && context->last_result == TORTURE_OK) {
-               if (context->last_reason == NULL)
-                       context->last_reason = talloc_strdup(context, "Unknown error/failure");
+       if (!already_setup && tcase->setup && 
+               !tcase->setup(context, &(tcase->data))) {
+               if (context->last_reason == NULL)
+                       context->last_reason = talloc_strdup(context, "Setup failure");
                context->last_result = TORTURE_ERROR;
+               success = false;
+       } else if (test->dangerous && 
+           !torture_setting_bool(context, "dangerous", false)) {
+           context->last_result = TORTURE_SKIP;
+           context->last_reason = talloc_asprintf(context, 
+               "disabled %s - enable dangerous tests to use", test->name);
+           success = true;
+       } else {
+           success = test->run(context, tcase, test);
+
+           if (!success && context->last_result == TORTURE_OK) {
+                   if (context->last_reason == NULL)
+                           context->last_reason = talloc_strdup(context, "Unknown error/failure");
+                   context->last_result = TORTURE_ERROR;
+           }
+       }
+
+       if (!already_setup && tcase->teardown && !tcase->teardown(context, tcase->data)) {
+               if (context->last_reason == NULL)
+                   context->last_reason = talloc_strdup(context, "Setup failure");
+               context->last_result = TORTURE_ERROR;
+               success = false;
        }
 
-       torture_ui_test_result(context, context->last_result, context->last_reason);
+       torture_ui_test_result(context, context->last_result, 
+                              context->last_reason);
        
        talloc_free(context->last_reason);
 
@@ -269,34 +307,35 @@ static BOOL internal_torture_run_test(struct torture_context *context,
        context->active_test = NULL;
        context->active_tcase = NULL;
 
-       if (!already_setup && tcase->teardown && !tcase->teardown(context, tcase->data))
-               return False;
-
-       return ret;
+       return success;
 }
 
-BOOL torture_run_tcase(struct torture_context *context, 
+bool torture_run_tcase(struct torture_context *context, 
                                           struct torture_tcase *tcase)
 {
-       BOOL ret = True;
+       bool ret = true;
        char *old_testname;
        struct torture_test *test;
 
        context->level++;
 
        context->active_tcase = tcase;
-       if (context->ui_ops->tcase_start)
+       if (context->ui_ops->tcase_start) 
                context->ui_ops->tcase_start(context, tcase);
 
        if (tcase->fixture_persistent && tcase->setup 
                && !tcase->setup(context, &tcase->data)) {
-               ret = False;
+               /* FIXME: Use torture ui ops for reporting this error */
+               fprintf(stderr, "Setup failed: ");
+               if (context->last_reason != NULL)
+                       fprintf(stderr, "%s", context->last_reason);
+               fprintf(stderr, "\n");
+               ret = false;
                goto done;
        }
 
        old_testname = context->active_testname;
-       context->active_testname = talloc_asprintf(context, "%s-%s", 
-                                                                                          old_testname, tcase->name);
+       context->active_testname = talloc_asprintf(context, "%s-%s", old_testname, tcase->name);
        for (test = tcase->tests; test; test = test->next) {
                ret &= internal_torture_run_test(context, tcase, test, 
                                tcase->fixture_persistent);
@@ -306,7 +345,7 @@ BOOL torture_run_tcase(struct torture_context *context,
 
        if (tcase->fixture_persistent && tcase->teardown &&
                !tcase->teardown(context, tcase->data))
-               ret = False;
+               ret = false;
 
 done:
        context->active_tcase = NULL;
@@ -319,35 +358,35 @@ done:
        return ret;
 }
 
-BOOL torture_run_test(struct torture_context *context, 
+bool torture_run_test(struct torture_context *context, 
                                          struct torture_tcase *tcase,
                                          struct torture_test *test)
 {
-       return internal_torture_run_test(context, tcase, test, False);
+       return internal_torture_run_test(context, tcase, test, false);
 }
 
 int torture_setting_int(struct torture_context *test, const char *name, 
                                                        int default_value)
 {
-       return lp_parm_int(-1, "torture", name, default_value);
+       return lp_parm_int(global_loadparm, NULL, "torture", name, default_value);
 }
 
 double torture_setting_double(struct torture_context *test, const char *name, 
                                                        double default_value)
 {
-       return lp_parm_double(-1, "torture", name, default_value);
+       return lp_parm_double(global_loadparm, NULL, "torture", name, default_value);
 }
 
 bool torture_setting_bool(struct torture_context *test, const char *name, 
                                                        bool default_value)
 {
-       return lp_parm_bool(-1, "torture", name, default_value);
+       return lp_parm_bool(global_loadparm, NULL, "torture", name, default_value);
 }
 
 const char *torture_setting_string(struct torture_context *test, const char *name, 
                                                        const char *default_value)
 {
-       const char *ret = lp_parm_string(-1, "torture", name);
+       const char *ret = lp_parm_string(global_loadparm, NULL, "torture", name);
 
        if (ret == NULL)
                return default_value;
index 289fad59304ffb3394854df573fa9041cfd26b73..71c21223159045bc36cbd89879d2090a436779cb 100644 (file)
@@ -87,7 +87,7 @@ struct torture_context
 
        bool returncode;
 
-       char *outputdir;
+       const char *outputdir;
        int level;
        struct event_context *ev;
 };
index 1e063fbe8f8535492d1bbb7bbf2f8e97e8fa0ff6..882dc7a084819a55c63d8d85a3b02417cb830f48 100644 (file)
@@ -67,7 +67,7 @@ static struct smbcli_state *connect_to_server(struct torture_context *tctx)
        return cli;
 }
 
-static BOOL check_unix_info2(struct torture_context *torture,
+static bool check_unix_info2(struct torture_context *torture,
                        struct unix_info2 *info2)
 {
        printf("\tcreate_time=0x%016llu flags=0x%08x mask=0x%08x\n",
@@ -75,7 +75,7 @@ static BOOL check_unix_info2(struct torture_context *torture,
                        info2->file_flags, info2->flags_mask);
 
        if (info2->file_flags == 0) {
-               return True;
+               return true;
        }
 
        /* If we have any file_flags set, they must be within the range
@@ -88,7 +88,7 @@ static BOOL check_unix_info2(struct torture_context *torture,
                        info2->file_flags, info2->flags_mask);
        }
 
-       return True;
+       return true;
 }
 
 static NTSTATUS set_path_info2(void *mem_ctx,
@@ -122,7 +122,7 @@ static NTSTATUS set_path_info2(void *mem_ctx,
        return smb_raw_setpathinfo(cli->tree, &sfinfo);
 }
 
-static BOOL query_file_path_info2(void *mem_ctx,
+static bool query_file_path_info2(void *mem_ctx,
                        struct torture_context *torture,
                        struct smbcli_state *cli,
                        int fnum,
@@ -163,13 +163,13 @@ static BOOL query_file_path_info2(void *mem_ctx,
        info2->flags_mask = finfo.unix_info2.out.flags_mask;
 
        if (!check_unix_info2(torture, info2)) {
-               return False;
+               return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL query_file_info2(void *mem_ctx,
+static bool query_file_info2(void *mem_ctx,
                        struct torture_context *torture,
                        struct smbcli_state *cli,
                        int fnum,
@@ -179,7 +179,7 @@ static BOOL query_file_info2(void *mem_ctx,
                        fnum, NULL, info2);
 }
 
-static BOOL query_path_info2(void *mem_ctx,
+static bool query_path_info2(void *mem_ctx,
                        struct torture_context *torture,
                        struct smbcli_state *cli,
                        const char *fname,
@@ -189,7 +189,7 @@ static BOOL query_path_info2(void *mem_ctx,
                        -1, fname, info2);
 }
 
-static BOOL search_callback(void *private, const union smb_search_data *fdata)
+static bool search_callback(void *private, const union smb_search_data *fdata)
 {
        struct unix_info2 *info2 = (struct unix_info2 *)private;
 
@@ -210,10 +210,10 @@ static BOOL search_callback(void *private, const union smb_search_data *fdata)
        info2->file_flags = fdata->unix_info2.file_flags;
        info2->flags_mask = fdata->unix_info2.flags_mask;
 
-       return True;
+       return true;
 }
 
-static BOOL find_single_info2(void *mem_ctx,
+static bool find_single_info2(void *mem_ctx,
                        struct torture_context *torture,
                        struct smbcli_state *cli,
                        const char *fname,
@@ -267,7 +267,7 @@ static void set_no_metadata_change(struct unix_info2 *info2)
                ((uint64_t)SMB_SIZE_NO_CHANGE_HI << 32) | SMB_SIZE_NO_CHANGE_LO;
 }
 
-static BOOL verify_setinfo_flags(void *mem_ctx,
+static bool verify_setinfo_flags(void *mem_ctx,
                        struct torture_context *torture,
                        struct smbcli_state *cli,
                        const char *fname)
@@ -276,11 +276,11 @@ static BOOL verify_setinfo_flags(void *mem_ctx,
        uint32_t smb_fmask;
        int i;
 
-       BOOL ret = True;
+       bool ret = true;
        NTSTATUS status;
 
        if (!query_path_info2(mem_ctx, torture, cli, fname, &info2)) {
-               return False;
+               return false;
        }
 
        smb_fmask = info2.flags_mask;
@@ -302,7 +302,7 @@ static BOOL verify_setinfo_flags(void *mem_ctx,
 
                        if (!query_path_info2(mem_ctx, torture, cli,
                                                fname, &info2)) {
-                               return False;
+                               return false;
                        }
 
                        ASSERT_FLAGS_MATCH(&info2, 1 << i);
@@ -339,7 +339,7 @@ static int create_file(struct smbcli_state *cli, const char * fname)
                0, 0);
 }
 
-static BOOL match_info2(struct torture_context *torture,
+static bool match_info2(struct torture_context *torture,
                const struct unix_info2 *pinfo,
                const struct unix_info2 *finfo)
 {
@@ -382,13 +382,13 @@ static BOOL match_info2(struct torture_context *torture,
        torture_assert_u64_equal(torture, finfo->create_time, pinfo->create_time,
                        "create_time mismatch");
 
-       return True;
+       return true;
 }
 
 
 #define FILENAME "\\smb_unix_info2.txt"
 
-BOOL unix_torture_unix_info2(struct torture_context *torture)
+bool unix_torture_unix_info2(struct torture_context *torture)
 {
        void *mem_ctx;
        struct smbcli_state *cli;
@@ -401,7 +401,7 @@ BOOL unix_torture_unix_info2(struct torture_context *torture)
 
        if (!(cli = connect_to_server(torture))) {
                talloc_free(mem_ctx);
-               return False;
+               return false;
        }
 
        smbcli_unlink(cli->tree, FILENAME);
@@ -442,7 +442,7 @@ BOOL unix_torture_unix_info2(struct torture_context *torture)
        smbcli_unlink(cli->tree, FILENAME);
        torture_close_connection(cli);
        talloc_free(mem_ctx);
-       return True;
+       return true;
 
 fail:
 
@@ -450,7 +450,7 @@ fail:
        smbcli_unlink(cli->tree, FILENAME);
        torture_close_connection(cli);
        talloc_free(mem_ctx);
-       return False;
+       return false;
 
 }
 
index 8322e57bd1ff58f0713a24de3491fcf99556993a..f45d2345db6e94f70c7d710fecde28b007206b27 100644 (file)
@@ -24,6 +24,7 @@
 #include "libcli/raw/interfaces.h"
 #include "lib/cmdline/popt_common.h"
 #include "auth/credentials/credentials.h"
+#include "param/param.h"
 
 /* Size (in bytes) of the required fields in the SMBwhoami response. */
 #define WHOAMI_REQUIRED_SIZE   40
@@ -71,8 +72,8 @@ static struct smbcli_state *connect_to_server(void *mem_ctx,
        NTSTATUS status;
        struct smbcli_state *cli;
 
-       const char *host = lp_parm_string(-1, "torture", "host");
-       const char *share = lp_parm_string(-1, "torture", "share");
+       const char *host = lp_parm_string(global_loadparm, NULL, "torture", "host");
+       const char *share = lp_parm_string(global_loadparm, NULL, "torture", "share");
 
        status = smbcli_full_connection(mem_ctx, &cli,
                                        host, share, NULL,
@@ -87,7 +88,7 @@ static struct smbcli_state *connect_to_server(void *mem_ctx,
        return cli;
 }
 
-static BOOL sid_parse(void *mem_ctx,
+static bool sid_parse(void *mem_ctx,
                struct torture_context *torture,
                DATA_BLOB *data, size_t *offset,
                struct dom_sid **psid)
@@ -125,10 +126,10 @@ static BOOL sid_parse(void *mem_ctx,
                (*offset) += 4;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL smb_raw_query_posix_whoami(void *mem_ctx,
+static bool smb_raw_query_posix_whoami(void *mem_ctx,
                                struct torture_context *torture,
                                struct smbcli_state *cli,
                                struct smb_whoami *whoami,
@@ -204,7 +205,7 @@ static BOOL smb_raw_query_posix_whoami(void *mem_ctx,
                                "invalid SID count");
                torture_assert_int_equal(torture, whoami->num_sid_bytes, 0,
                                "invalid SID byte count");
-               return True;
+               return true;
        }
 
        if (whoami->num_gids != 0) {
@@ -232,7 +233,7 @@ static BOOL smb_raw_query_posix_whoami(void *mem_ctx,
        if (tp.out.data.length == offset) {
                torture_assert_int_equal(torture, whoami->num_sids, 0,
                                "invalid SID count");
-               return True;
+               return true;
        }
 
        /* All the remaining bytes must be the SID list. */
@@ -251,7 +252,7 @@ static BOOL smb_raw_query_posix_whoami(void *mem_ctx,
                        if (!sid_parse(mem_ctx, torture,
                                        &tp.out.data, &offset,
                                        &whoami->sid_list[i])) {
-                               return False;
+                               return false;
                        }
 
                }
@@ -261,10 +262,10 @@ static BOOL smb_raw_query_posix_whoami(void *mem_ctx,
        torture_assert_int_equal(torture, tp.out.data.length, offset,
                        "trailing garbage bytes");
 
-       return True;
+       return true;
 }
 
-BOOL torture_unix_whoami(struct torture_context *torture)
+bool torture_unix_whoami(struct torture_context *torture)
 {
        struct smbcli_state *cli;
        struct cli_credentials *anon_credentials;
@@ -331,11 +332,11 @@ BOOL torture_unix_whoami(struct torture_context *torture)
        }
 
        talloc_free(mem_ctx);
-       return True;
+       return true;
 
 fail:
        talloc_free(mem_ctx);
-       return False;
+       return false;
 
 }
 
index f6287e34d6208d8952c4d90a5415c18a7b68b4da..0e9dda42fa4eea5488fc086d4ec3d06bd3e3643f 100644 (file)
 #include "libcli/raw/interfaces.h"
 #include "libcli/raw/libcliraw.h"
 
-/**
- create a temporary directory.
-*/
-_PUBLIC_ NTSTATUS torture_temp_dir(struct torture_context *tctx, 
-                                                                  const char *prefix, 
-                                                                  char **tempdir)
-{
-       *tempdir = talloc_asprintf(tctx, "%s/%s.XXXXXX", tctx->outputdir, prefix);
-
-       if (mkdtemp(*tempdir) == NULL)
-               return NT_STATUS_UNSUCCESSFUL;
-
-       return NT_STATUS_OK;
-}
-
 /**
   check if 2 NTTIMEs are equal.
 */
-BOOL nt_time_equal(NTTIME *t1, NTTIME *t2)
+bool nt_time_equal(NTTIME *t1, NTTIME *t2)
 {
        return *t1 == *t2;
 }
@@ -61,7 +46,7 @@ NTSTATUS torture_second_tcon(TALLOC_CTX *mem_ctx,
                return NT_STATUS_NO_MEMORY;
        }
 
-       result = smbcli_tree_init(session, tmp_ctx, False);
+       result = smbcli_tree_init(session, tmp_ctx, false);
        if (result == NULL) {
                talloc_free(tmp_ctx);
                return NT_STATUS_NO_MEMORY;
index d077b3b515691b7a51748c93c9c590fb32288501..21cdba89eba3c28cb9152f29ad4d6434441a31ff 100644 (file)
@@ -31,6 +31,7 @@
 #include "torture/torture.h"
 #include "util/dlinklist.h"
 #include "auth/credentials/credentials.h"
+#include "param/param.h"
 
 
 /**
@@ -42,9 +43,9 @@ _PUBLIC_ bool torture_setup_dir(struct smbcli_state *cli, const char *dname)
        if (smbcli_deltree(cli->tree, dname) == -1 ||
            NT_STATUS_IS_ERR(smbcli_mkdir(cli->tree, dname))) {
                printf("Unable to setup %s - %s\n", dname, smbcli_errstr(cli->tree));
-               return False;
+               return false;
        }
-       return True;
+       return true;
 }
 
 /*
@@ -286,13 +287,13 @@ bool wire_bad_flags(struct smb_wire_string *str, int flags, struct smbcli_transp
 {
        bool server_unicode;
        int len;
-       if (!str || !str->s) return True;
+       if (!str || !str->s) return true;
        len = strlen(str->s);
        if (flags & STR_TERMINATE) len++;
 
-       server_unicode = (transport->negotiate.capabilities&CAP_UNICODE)?True:False;
-       if (getenv("CLI_FORCE_ASCII") || !lp_unicode()) {
-               server_unicode = False;
+       server_unicode = (transport->negotiate.capabilities&CAP_UNICODE)?true:false;
+       if (getenv("CLI_FORCE_ASCII") || !lp_unicode(global_loadparm)) {
+               server_unicode = false;
        }
 
        if ((flags & STR_UNICODE) || server_unicode) {
@@ -303,9 +304,9 @@ bool wire_bad_flags(struct smb_wire_string *str, int flags, struct smbcli_transp
        if (str->private_length != len) {
                printf("Expected wire_length %d but got %d for '%s'\n", 
                       len, str->private_length, str->s);
-               return True;
+               return true;
        }
-       return False;
+       return false;
 }
 
 /*
@@ -384,7 +385,7 @@ NTSTATUS torture_set_sparse(struct smbcli_tree *tree, int fnum)
        nt.ntioctl.level = RAW_IOCTL_NTIOCTL;
        nt.ntioctl.in.function = FSCTL_SET_SPARSE;
        nt.ntioctl.in.file.fnum = fnum;
-       nt.ntioctl.in.fsctl = True;
+       nt.ntioctl.in.fsctl = true;
        nt.ntioctl.in.filter = 0;
        nt.ntioctl.in.max_data = 0;
        nt.ntioctl.in.blob = data_blob(NULL, 0);
@@ -475,15 +476,15 @@ _PUBLIC_ bool torture_open_connection_share(TALLOC_CTX *mem_ctx,
                                        cmdline_credentials, ev);
        if (!NT_STATUS_IS_OK(status)) {
                printf("Failed to open connection - %s\n", nt_errstr(status));
-               return False;
+               return false;
        }
 
-       (*c)->transport->options.use_oplocks = lp_parm_bool(-1, "torture", 
-                                                                                                               "use_oplocks", False);
-       (*c)->transport->options.use_level2_oplocks = lp_parm_bool(-1, "torture", 
-                                                                                               "use_level2_oplocks", False);
+       (*c)->transport->options.use_oplocks = lp_parm_bool(global_loadparm, NULL, "torture", 
+                                                                                                               "use_oplocks", false);
+       (*c)->transport->options.use_level2_oplocks = lp_parm_bool(global_loadparm, NULL, "torture", 
+                                                                                               "use_level2_oplocks", false);
 
-       return True;
+       return true;
 }
 
 _PUBLIC_ bool torture_get_conn_index(int conn_index,
@@ -494,29 +495,29 @@ _PUBLIC_ bool torture_get_conn_index(int conn_index,
        int num_unc_names = 0;
        const char *p;
 
-       (*host) = talloc_strdup(mem_ctx, lp_parm_string(-1, "torture", "host"));
-       (*share) = talloc_strdup(mem_ctx, lp_parm_string(-1, "torture", "share"));
+       (*host) = talloc_strdup(mem_ctx, lp_parm_string(global_loadparm, NULL, "torture", "host"));
+       (*share) = talloc_strdup(mem_ctx, lp_parm_string(global_loadparm, NULL, "torture", "share"));
        
-       p = lp_parm_string(-1, "torture", "unclist");
+       p = lp_parm_string(global_loadparm, NULL, "torture", "unclist");
        if (!p) {
-               return True;
+               return true;
        }
 
        unc_list = file_lines_load(p, &num_unc_names, NULL);
        if (!unc_list || num_unc_names <= 0) {
                DEBUG(0,("Failed to load unc names list from '%s'\n", p));
-               return False;
+               return false;
        }
 
        if (!smbcli_parse_unc(unc_list[conn_index % num_unc_names],
                              mem_ctx, host, share)) {
                DEBUG(0, ("Failed to parse UNC name %s\n",
                          unc_list[conn_index % num_unc_names]));
-               return False;
+               return false;
        }
 
        talloc_free(unc_list);
-       return True;
+       return true;
 }
 
 
@@ -529,7 +530,7 @@ _PUBLIC_ bool torture_open_connection_ev(struct smbcli_state **c,
        bool ret;
 
        if (!torture_get_conn_index(conn_index, ev, &host, &share)) {
-               return False;
+               return false;
        }
 
        ret = torture_open_connection_share(NULL, c, host, share, ev);
@@ -549,11 +550,11 @@ _PUBLIC_ bool torture_open_connection(struct smbcli_state **c, int conn_index)
 
 _PUBLIC_ bool torture_close_connection(struct smbcli_state *c)
 {
-       bool ret = True;
-       if (!c) return True;
+       bool ret = true;
+       if (!c) return true;
        if (NT_STATUS_IS_ERR(smbcli_tdis(c))) {
                printf("tdis failed (%s)\n", smbcli_errstr(c->tree));
-               ret = False;
+               ret = false;
        }
        talloc_free(c);
        return ret;
@@ -576,17 +577,17 @@ _PUBLIC_ bool check_error(const char *location, struct smbcli_state *c,
                         printf(" expected %s or %s (at %s)\n", 
                               nt_errstr(NT_STATUS_DOS(eclass, ecode)), 
                                nt_errstr(nterr), location);
-                        return False;
+                        return false;
                 }
         } else {
                 if (!NT_STATUS_EQUAL(nterr, status)) {
                         printf("unexpected error code %s\n", nt_errstr(status));
                         printf(" expected %s (at %s)\n", nt_errstr(nterr), location);
-                        return False;
+                        return false;
                 }
         }
 
-       return True;
+       return true;
 }
 
 static struct smbcli_state *current_cli;
@@ -608,7 +609,7 @@ double torture_create_procs(struct torture_context *tctx,
        double start_time_limit = 10 + (torture_nprocs * 1.5);
        struct timeval tv;
 
-       *result = True;
+       *result = true;
 
        synccount = 0;
 
@@ -628,7 +629,7 @@ double torture_create_procs(struct torture_context *tctx,
 
        for (i = 0; i < torture_nprocs; i++) {
                child_status[i] = 0;
-               child_status_out[i] = True;
+               child_status_out[i] = true;
        }
 
        tv = timeval_current();
@@ -642,7 +643,7 @@ double torture_create_procs(struct torture_context *tctx,
                        srandom(((int)mypid) ^ ((int)time(NULL)));
 
                        asprintf(&myname, "CLIENT%d", i);
-                       lp_set_cmdline("netbios name", myname);
+                       lp_set_cmdline(global_loadparm, "netbios name", myname);
                        free(myname);
 
 
@@ -683,7 +684,7 @@ double torture_create_procs(struct torture_context *tctx,
 
        if (synccount != torture_nprocs) {
                printf("FAILED TO START %d CLIENTS (started %d)\n", torture_nprocs, synccount);
-               *result = False;
+               *result = false;
                return timeval_elapsed(&tv);
        }
 
@@ -703,7 +704,7 @@ double torture_create_procs(struct torture_context *tctx,
                int ret;
                while ((ret=waitpid(0, &status, 0)) == -1 && errno == EINTR) /* noop */ ;
                if (ret == -1 || WEXITSTATUS(status) != 0) {
-                       *result = False;
+                       *result = false;
                }
        }
 
@@ -711,7 +712,7 @@ double torture_create_procs(struct torture_context *tctx,
        
        for (i=0;i<torture_nprocs;i++) {
                if (!child_status_out[i]) {
-                       *result = False;
+                       *result = false;
                }
        }
        return timeval_elapsed(&tv);
@@ -829,10 +830,9 @@ static bool wrap_simple_1smb_test(struct torture_context *torture_ctx,
 }
 
 _PUBLIC_ struct torture_test *torture_suite_add_1smb_test(
-                                                                       struct torture_suite *suite,
-                                                                       const char *name,
-                                                                       bool (*run) (struct torture_context *,
-                                                                                               struct smbcli_state *))
+                               struct torture_suite *suite,
+                               const char *name,
+                               bool (*run) (struct torture_context *, struct smbcli_state *))
 {
        struct torture_test *test; 
        struct torture_tcase *tcase;
diff --git a/source/torture/winbind/config.mk b/source/torture/winbind/config.mk
new file mode 100644 (file)
index 0000000..b64b064
--- /dev/null
@@ -0,0 +1,15 @@
+
+#################################
+# Start SUBSYSTEM TORTURE_WINBIND
+[MODULE::TORTURE_WINBIND]
+SUBSYSTEM = torture
+INIT_FUNCTION = torture_winbind_init
+PRIVATE_PROTO_HEADER = \
+               proto.h
+OBJ_FILES = \
+               winbind.o \
+               struct_based.o
+PRIVATE_DEPENDENCIES = \
+               LIBWINBIND-CLIENT
+# End SUBSYSTEM TORTURE_WINBIND
+#################################
diff --git a/source/torture/winbind/struct_based.c b/source/torture/winbind/struct_based.c
new file mode 100644 (file)
index 0000000..dd7a185
--- /dev/null
@@ -0,0 +1,1051 @@
+/*
+   Unix SMB/CIFS implementation.
+   SMB torture tester - winbind struct based protocol
+   Copyright (C) Stefan Metzmacher 2007
+   Copyright (C) Michael Adam 2007
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program 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 General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include "pstring.h"
+#include "torture/torture.h"
+#include "torture/winbind/proto.h"
+#include "nsswitch/winbind_client.h"
+#include "libcli/security/security.h"
+#include "librpc/gen_ndr/netlogon.h"
+#include "param/param.h"
+#include "auth/pam_errors.h"
+
+#define DO_STRUCT_REQ_REP_EXT(op,req,rep,expected,strict,warnaction,cmt) do { \
+       NSS_STATUS __got, __expected = (expected); \
+       __got = winbindd_request_response(op, req, rep); \
+       if (__got != __expected) { \
+               const char *__cmt = (cmt); \
+               if (strict) { \
+                       torture_result(torture, TORTURE_FAIL, \
+                               __location__ ": " __STRING(op) \
+                               " returned %d, expected %d%s%s", \
+                               __got, __expected, \
+                               (__cmt) ? ": " : "", \
+                               (__cmt) ? (__cmt) : ""); \
+                       return false; \
+               } else { \
+                       torture_warning(torture, \
+                               __location__ ": " __STRING(op) \
+                               " returned %d, expected %d%s%s", \
+                               __got, __expected, \
+                               (__cmt) ? ": " : "", \
+                               (__cmt) ? (__cmt) : ""); \
+                       warnaction; \
+               } \
+       } \
+} while(0)
+
+#define DO_STRUCT_REQ_REP(op,req,rep) do { \
+       bool __noop = false; \
+       DO_STRUCT_REQ_REP_EXT(op,req,rep,NSS_STATUS_SUCCESS,true,__noop=true,NULL); \
+} while (0)
+
+static bool torture_winbind_struct_interface_version(struct torture_context *torture)
+{
+       struct winbindd_request req;
+       struct winbindd_response rep;
+
+       ZERO_STRUCT(req);
+       ZERO_STRUCT(rep);
+
+       torture_comment(torture, "Running WINBINDD_INTERFACE_VERSION (struct based)\n");
+
+       DO_STRUCT_REQ_REP(WINBINDD_INTERFACE_VERSION, &req, &rep);
+
+       torture_assert_int_equal(torture,
+                                rep.data.interface_version,
+                                WINBIND_INTERFACE_VERSION,
+                                "winbind server and client doesn't match");
+
+       return true;
+}
+
+static bool torture_winbind_struct_ping(struct torture_context *torture)
+{
+       struct timeval tv = timeval_current();
+       int timelimit = torture_setting_int(torture, "timelimit", 5);
+       uint32_t total = 0;
+
+       torture_comment(torture,
+                       "Running WINBINDD_PING (struct based) for %d seconds\n",
+                       timelimit);
+
+       while (timeval_elapsed(&tv) < timelimit) {
+               DO_STRUCT_REQ_REP(WINBINDD_PING, NULL, NULL);
+               total++;
+       }
+
+       torture_comment(torture,
+                       "%u (%.1f/s) WINBINDD_PING (struct based)\n",
+                       total, total / timeval_elapsed(&tv));
+
+       return true;
+}
+
+
+static char winbind_separator(struct torture_context *torture)
+{
+       struct winbindd_response rep;
+
+       ZERO_STRUCT(rep);
+
+       DO_STRUCT_REQ_REP(WINBINDD_INFO, NULL, &rep);
+
+       return rep.data.info.winbind_separator;
+}
+
+static bool torture_winbind_struct_info(struct torture_context *torture)
+{
+       struct winbindd_response rep;
+       const char *separator;
+
+       ZERO_STRUCT(rep);
+
+       torture_comment(torture, "Running WINBINDD_INFO (struct based)\n");
+
+       DO_STRUCT_REQ_REP(WINBINDD_INFO, NULL, &rep);
+
+       separator = torture_setting_string(torture,
+                                          "winbindd separator",
+                                          lp_winbind_separator(global_loadparm));
+       torture_assert_int_equal(torture,
+                                rep.data.info.winbind_separator,
+                                *separator,
+                                "winbind separator doesn't match");
+
+       torture_comment(torture, "Samba Version '%s'\n",
+                       rep.data.info.samba_version);
+
+       return true;
+}
+
+static bool torture_winbind_struct_priv_pipe_dir(struct torture_context *torture)
+{
+       struct winbindd_response rep;
+       const char *default_dir;
+       const char *expected_dir;
+       const char *got_dir;
+
+       ZERO_STRUCT(rep);
+
+       torture_comment(torture, "Running WINBINDD_PRIV_PIPE_DIR (struct based)\n");
+
+       DO_STRUCT_REQ_REP(WINBINDD_PRIV_PIPE_DIR, NULL, &rep);
+
+       got_dir = (const char *)rep.extra_data.data;
+
+       torture_assert(torture, got_dir, "NULL WINBINDD_PRIV_PIPE_DIR\n");
+
+       default_dir = lock_path(torture, global_loadparm, 
+                               WINBINDD_PRIV_SOCKET_SUBDIR);
+       expected_dir = torture_setting_string(torture,
+                                             "winbindd private pipe dir",
+                                             default_dir);
+
+       torture_assert_str_equal(torture, got_dir, expected_dir,
+                                "WINBINDD_PRIV_PIPE_DIR doesn't match");
+
+       SAFE_FREE(rep.extra_data.data);
+       return true;
+}
+
+static bool torture_winbind_struct_netbios_name(struct torture_context *torture)
+{
+       struct winbindd_response rep;
+       const char *expected;
+
+       ZERO_STRUCT(rep);
+
+       torture_comment(torture, "Running WINBINDD_NETBIOS_NAME (struct based)\n");
+
+       DO_STRUCT_REQ_REP(WINBINDD_NETBIOS_NAME, NULL, &rep);
+
+       expected = torture_setting_string(torture,
+                                         "winbindd netbios name",
+                                         lp_netbios_name(global_loadparm));
+
+       torture_assert_str_equal(torture,
+                                rep.data.netbios_name, expected,
+                                "winbindd's netbios name doesn't match");
+
+       return true;
+}
+
+static bool get_winbind_domain(struct torture_context *torture, char **domain)
+{
+       struct winbindd_response rep;
+
+       ZERO_STRUCT(rep);
+
+       DO_STRUCT_REQ_REP(WINBINDD_DOMAIN_NAME, NULL, &rep);
+
+       *domain = talloc_strdup(torture, rep.data.domain_name);
+       torture_assert(torture, domain, "talloc error");
+
+       return true;
+}
+
+static bool torture_winbind_struct_domain_name(struct torture_context *torture)
+{
+       const char *expected;
+       char *domain;
+
+       torture_comment(torture, "Running WINBINDD_DOMAIN_NAME (struct based)\n");
+
+       expected = torture_setting_string(torture,
+                                         "winbindd netbios domain",
+                                         lp_workgroup(global_loadparm));
+
+       get_winbind_domain(torture, &domain);
+
+       torture_assert_str_equal(torture, domain, expected,
+                                "winbindd's netbios domain doesn't match");
+
+       return true;
+}
+
+static bool torture_winbind_struct_check_machacc(struct torture_context *torture)
+{
+       bool ok;
+       bool strict = torture_setting_bool(torture, "strict mode", false);
+       struct winbindd_response rep;
+
+       ZERO_STRUCT(rep);
+
+       torture_comment(torture, "Running WINBINDD_CHECK_MACHACC (struct based)\n");
+
+       ok = true;
+       DO_STRUCT_REQ_REP_EXT(WINBINDD_CHECK_MACHACC, NULL, &rep,
+                             NSS_STATUS_SUCCESS, strict, ok = false,
+                             "WINBINDD_CHECK_MACHACC");
+
+       if (!ok) {
+               torture_assert(torture,
+                              strlen(rep.data.auth.nt_status_string)>0,
+                              "Failed with empty nt_status_string");
+
+               torture_warning(torture,"%s:%s:%s:%d\n",
+                               nt_errstr(NT_STATUS(rep.data.auth.nt_status)),
+                               rep.data.auth.nt_status_string,
+                               rep.data.auth.error_string,
+                               rep.data.auth.pam_error);
+               return true;
+       }
+
+       torture_assert_ntstatus_ok(torture,
+                                  NT_STATUS(rep.data.auth.nt_status),
+                                  "WINBINDD_CHECK_MACHACC ok: nt_status");
+
+       torture_assert_str_equal(torture,
+                                rep.data.auth.nt_status_string,
+                                nt_errstr(NT_STATUS_OK),
+                                "WINBINDD_CHECK_MACHACC ok:nt_status_string");
+
+       torture_assert_str_equal(torture,
+                                rep.data.auth.error_string,
+                                nt_errstr(NT_STATUS_OK),
+                                "WINBINDD_CHECK_MACHACC ok: error_string");
+
+       torture_assert_int_equal(torture,
+                                rep.data.auth.pam_error,
+                                nt_status_to_pam(NT_STATUS_OK),
+                                "WINBINDD_CHECK_MACHACC ok: pam_error");
+
+       return true;
+}
+
+struct torture_trust_domain {
+       const char *netbios_name;
+       const char *dns_name;
+       struct dom_sid *sid;
+};
+
+static bool get_trusted_domains(struct torture_context *torture,
+                               struct torture_trust_domain **_d)
+{
+       struct winbindd_request req;
+       struct winbindd_response rep;
+       struct torture_trust_domain *d = NULL;
+       uint32_t dcount = 0;
+       fstring line;
+       const char *extra_data;
+
+       ZERO_STRUCT(req);
+       ZERO_STRUCT(rep);
+
+       DO_STRUCT_REQ_REP(WINBINDD_LIST_TRUSTDOM, &req, &rep);
+
+       extra_data = (char *)rep.extra_data.data;
+       torture_assert(torture, extra_data, "NULL trust list");
+
+       while (next_token(&extra_data, line, "\n", sizeof(fstring))) {
+               char *p, *lp;
+
+               d = talloc_realloc(torture, d,
+                                  struct torture_trust_domain,
+                                  dcount + 2);
+               ZERO_STRUCT(d[dcount+1]);
+
+               lp = line;
+               p = strchr(lp, '\\');
+               torture_assert(torture, p, "missing 1st '\\' in line");
+               *p = 0;
+               d[dcount].netbios_name = talloc_strdup(d, lp);
+               torture_assert(torture, strlen(d[dcount].netbios_name) > 0,
+                              "empty netbios_name");
+
+               lp = p+1;
+               p = strchr(lp, '\\');
+               torture_assert(torture, p, "missing 2nd '\\' in line");
+               *p = 0;
+               d[dcount].dns_name = talloc_strdup(d, lp);
+               /* it's ok to have an empty dns_name */
+
+               lp = p+1;
+               d[dcount].sid = dom_sid_parse_talloc(d, lp);
+               torture_assert(torture, d[dcount].sid,
+                              "failed to parse sid");
+
+               dcount++;
+       }
+       SAFE_FREE(rep.extra_data.data);
+
+       torture_assert(torture, dcount >= 2,
+                      "The list of trusted domain should contain 2 entries");
+
+       *_d = d;
+       return true;
+}
+
+static bool torture_winbind_struct_list_trustdom(struct torture_context *torture)
+{
+       struct winbindd_request req;
+       struct winbindd_response rep;
+       char *list1;
+       char *list2;
+       bool ok;
+       struct torture_trust_domain *listd = NULL;
+       uint32_t i;
+
+       torture_comment(torture, "Running WINBINDD_LIST_TRUSTDOM (struct based)\n");
+
+       ZERO_STRUCT(req);
+       ZERO_STRUCT(rep);
+
+       req.data.list_all_domains = false;
+
+       DO_STRUCT_REQ_REP(WINBINDD_LIST_TRUSTDOM, &req, &rep);
+
+       list1 = (char *)rep.extra_data.data;
+       torture_assert(torture, list1, "NULL trust list");
+
+       torture_comment(torture, "%s\n", list1);
+
+       ZERO_STRUCT(req);
+       ZERO_STRUCT(rep);
+
+       req.data.list_all_domains = true;
+
+       DO_STRUCT_REQ_REP(WINBINDD_LIST_TRUSTDOM, &req, &rep);
+
+       list2 = (char *)rep.extra_data.data;
+       torture_assert(torture, list2, "NULL trust list");
+
+       /*
+        * The list_all_domains parameter should be ignored
+        */
+       torture_assert_str_equal(torture, list2, list1, "list_all_domains not ignored");
+
+       SAFE_FREE(list1);
+       SAFE_FREE(list2);
+
+       ok = get_trusted_domains(torture, &listd);
+       torture_assert(torture, ok, "failed to get trust list");
+
+       for (i=0; listd[i].netbios_name; i++) {
+               if (i == 0) {
+                       struct dom_sid *builtin_sid;
+
+                       builtin_sid = dom_sid_parse_talloc(torture, SID_BUILTIN);
+
+                       torture_assert_str_equal(torture,
+                                                listd[i].netbios_name,
+                                                NAME_BUILTIN,
+                                                "first domain should be 'BUILTIN'");
+
+                       torture_assert_str_equal(torture,
+                                                listd[i].dns_name,
+                                                "",
+                                                "BUILTIN domain should not have a dns name");
+
+                       ok = dom_sid_equal(builtin_sid,
+                                          listd[i].sid);
+                       torture_assert(torture, ok, "BUILTIN domain should have S-1-5-32");
+
+                       continue;
+               }
+
+               /*
+                * TODO: verify the content of the 2nd and 3rd (in member server mode)
+                *       domain entries
+                */
+       }
+
+       return true;
+}
+
+static bool torture_winbind_struct_domain_info(struct torture_context *torture)
+{
+       bool ok;
+       struct torture_trust_domain *listd = NULL;
+       uint32_t i;
+
+       torture_comment(torture, "Running WINBINDD_DOMAIN_INFO (struct based)\n");
+
+       ok = get_trusted_domains(torture, &listd);
+       torture_assert(torture, ok, "failed to get trust list");
+
+       for (i=0; listd[i].netbios_name; i++) {
+               struct winbindd_request req;
+               struct winbindd_response rep;
+               struct dom_sid *sid;
+               char *flagstr = talloc_strdup(torture," ");
+
+               ZERO_STRUCT(req);
+               ZERO_STRUCT(rep);
+
+               fstrcpy(req.domain_name, listd[i].netbios_name);
+
+               DO_STRUCT_REQ_REP(WINBINDD_DOMAIN_INFO, &req, &rep);
+
+               torture_assert_str_equal(torture,
+                                        rep.data.domain_info.name,
+                                        listd[i].netbios_name,
+                                        "Netbios domain name doesn't match");
+
+               torture_assert_str_equal(torture,
+                                        rep.data.domain_info.alt_name,
+                                        listd[i].dns_name,
+                                        "DNS domain name doesn't match");
+
+               sid = dom_sid_parse_talloc(torture, rep.data.domain_info.sid);
+               torture_assert(torture, sid, "Failed to parse SID");
+
+               ok = dom_sid_equal(listd[i].sid, sid);
+               torture_assert(torture, ok, "SID's doesn't match");
+
+               if (rep.data.domain_info.primary) {
+                       flagstr = talloc_strdup_append(flagstr, "PR ");
+               }
+
+               if (rep.data.domain_info.active_directory) {
+                       torture_assert(torture,
+                                      strlen(rep.data.domain_info.alt_name)>0,
+                                      "Active Directory without DNS name");
+                       flagstr = talloc_strdup_append(flagstr, "AD ");
+               }
+
+               if (rep.data.domain_info.native_mode) {
+                       torture_assert(torture,
+                                      rep.data.domain_info.active_directory,
+                                      "Native-Mode, but no Active Directory");
+                       flagstr = talloc_strdup_append(flagstr, "NA ");
+               }
+
+               torture_comment(torture, "DOMAIN '%s' => '%s' [%s]\n",
+                               rep.data.domain_info.name,
+                               rep.data.domain_info.alt_name,
+                               flagstr);
+       }
+
+       return true;
+}
+
+static bool torture_winbind_struct_getdcname(struct torture_context *torture)
+{
+       bool ok;
+       bool strict = torture_setting_bool(torture, "strict mode", false);
+       struct torture_trust_domain *listd = NULL;
+       uint32_t i;
+
+       torture_comment(torture, "Running WINBINDD_GETDCNAME (struct based)\n");
+
+       ok = get_trusted_domains(torture, &listd);
+       torture_assert(torture, ok, "failed to get trust list");
+
+       for (i=0; listd[i].netbios_name; i++) {
+               struct winbindd_request req;
+               struct winbindd_response rep;
+
+               ZERO_STRUCT(req);
+               ZERO_STRUCT(rep);
+
+               fstrcpy(req.domain_name, listd[i].netbios_name);
+
+               ok = true;
+               DO_STRUCT_REQ_REP_EXT(WINBINDD_GETDCNAME, &req, &rep,
+                                     NSS_STATUS_SUCCESS,
+                                     (i <2 || strict), ok = false,
+                                     talloc_asprintf(torture, "DOMAIN '%s'",
+                                                     req.domain_name));
+               if (!ok) continue;
+
+               /* TODO: check rep.data.dc_name; */
+               torture_comment(torture, "DOMAIN '%s' => DCNAME '%s'\n",
+                               req.domain_name, rep.data.dc_name);
+       }
+
+       return true;
+}
+
+static bool torture_winbind_struct_dsgetdcname(struct torture_context *torture)
+{
+       bool ok;
+       bool strict = torture_setting_bool(torture, "strict mode", false);
+       struct torture_trust_domain *listd = NULL;
+       uint32_t i;
+       uint32_t count = 0;
+
+       torture_comment(torture, "Running WINBINDD_DSGETDCNAME (struct based)\n");
+
+       ok = get_trusted_domains(torture, &listd);
+       torture_assert(torture, ok, "failed to get trust list");
+
+       for (i=0; listd[i].netbios_name; i++) {
+               struct winbindd_request req;
+               struct winbindd_response rep;
+
+               ZERO_STRUCT(req);
+               ZERO_STRUCT(rep);
+
+               if (strlen(listd[i].dns_name) == 0) continue;
+
+               /*
+                * TODO: remove this and let winbindd give no dns name
+                *       for NT4 domains
+                */
+               if (strcmp(listd[i].dns_name, listd[i].netbios_name) == 0) {
+                       continue;
+               }
+
+               fstrcpy(req.domain_name, listd[i].dns_name);
+
+               /* TODO: test more flag combinations */
+               req.flags = DS_DIRECTORY_SERVICE_REQUIRED;
+
+               ok = true;
+               DO_STRUCT_REQ_REP_EXT(WINBINDD_DSGETDCNAME, &req, &rep,
+                                     NSS_STATUS_SUCCESS,
+                                     strict, ok = false,
+                                     talloc_asprintf(torture, "DOMAIN '%s'",
+                                                     req.domain_name));
+               if (!ok) continue;
+
+               /* TODO: check rep.data.dc_name; */
+               torture_comment(torture, "DOMAIN '%s' => DCNAME '%s'\n",
+                               req.domain_name, rep.data.dc_name);
+
+               count++;
+       }
+
+       if (count == 0) {
+               torture_warning(torture, "WINBINDD_DSGETDCNAME"
+                               " was not tested with %d non-AD domains",
+                               i);
+       }
+
+       if (strict) {
+               torture_assert(torture, count > 0,
+                              "WiNBINDD_DSGETDCNAME was not tested");
+       }
+
+       return true;
+}
+
+static bool get_user_list(struct torture_context *torture, char ***users)
+{
+       struct winbindd_request req;
+       struct winbindd_response rep;
+       char **u = NULL;
+       uint32_t count;
+       fstring name;
+       const char *extra_data;
+
+       ZERO_STRUCT(req);
+       ZERO_STRUCT(rep);
+
+       DO_STRUCT_REQ_REP(WINBINDD_LIST_USERS, &req, &rep);
+
+       extra_data = (char *)rep.extra_data.data;
+       torture_assert(torture, extra_data, "NULL extra data");
+
+       for(count = 0;
+           next_token(&extra_data, name, ",", sizeof(fstring));
+           count++)
+       {
+               u = talloc_realloc(torture, u, char *, count + 2);
+               u[count+1] = NULL;
+               u[count] = talloc_strdup(u, name);
+       }
+
+       SAFE_FREE(rep.extra_data.data);
+
+       *users = u;
+       return true;
+}
+
+static bool torture_winbind_struct_list_users(struct torture_context *torture)
+{
+       char **users;
+       uint32_t count;
+       bool ok;
+
+       torture_comment(torture, "Running WINBINDD_LIST_USERS (struct based)\n");
+
+       ok = get_user_list(torture, &users);
+       torture_assert(torture, ok, "failed to get group list");
+
+       for (count = 0; users[count]; count++) { }
+
+       torture_comment(torture, "got %d users\n", count);
+
+       return true;
+}
+
+static bool get_group_list(struct torture_context *torture, char ***groups)
+{
+       struct winbindd_request req;
+       struct winbindd_response rep;
+       char **g = NULL;
+       uint32_t count;
+       fstring name;
+       const char *extra_data;
+
+       ZERO_STRUCT(req);
+       ZERO_STRUCT(rep);
+
+       DO_STRUCT_REQ_REP(WINBINDD_LIST_GROUPS, &req, &rep);
+
+       extra_data = (char *)rep.extra_data.data;
+       torture_assert(torture, extra_data, "NULL extra data");
+
+       for(count = 0;
+           next_token(&extra_data, name, ",", sizeof(fstring));
+           count++)
+       {
+               g = talloc_realloc(torture, g, char *, count + 2);
+               g[count+1] = NULL;
+               g[count] = talloc_strdup(g, name);
+       }
+
+       SAFE_FREE(rep.extra_data.data);
+
+       *groups = g;
+       return true;
+}
+
+static bool torture_winbind_struct_list_groups(struct torture_context *torture)
+{
+       char **groups;
+       uint32_t count;
+       bool ok;
+
+       torture_comment(torture, "Running WINBINDD_LIST_GROUPS (struct based)\n");
+
+       ok = get_group_list(torture, &groups);
+       torture_assert(torture, ok, "failed to get group list");
+
+       for (count = 0; groups[count]; count++) { }
+
+       torture_comment(torture, "got %d groups\n", count);
+
+       return true;
+}
+
+struct torture_domain_sequence {
+       const char *netbios_name;
+       uint32_t seq;
+};
+
+static bool get_sequence_numbers(struct torture_context *torture,
+                                struct torture_domain_sequence **seqs)
+{
+       struct winbindd_request req;
+       struct winbindd_response rep;
+       bool ok;
+       const char *extra_data;
+       fstring line;
+       uint32_t count = 0;
+       struct torture_domain_sequence *s = NULL;
+
+       ZERO_STRUCT(req);
+       ZERO_STRUCT(rep);
+
+       DO_STRUCT_REQ_REP(WINBINDD_SHOW_SEQUENCE, &req, &rep);
+
+       extra_data = (char *)rep.extra_data.data;
+       torture_assert(torture, extra_data, "NULL sequence list");
+
+       while (next_token(&extra_data, line, "\n", sizeof(fstring))) {
+               char *p, *lp;
+               uint32_t seq;
+
+               s = talloc_realloc(torture, s, struct torture_domain_sequence,
+                                  count + 2);
+               ZERO_STRUCT(s[count+1]);
+
+               lp = line;
+               p = strchr(lp, ' ');
+               torture_assert(torture, p, "invalid line format");
+               *p = 0;
+               s[count].netbios_name = talloc_strdup(s, lp);
+
+               lp = p+1;
+               torture_assert(torture, strncmp(lp, ": ", 2) == 0,
+                              "invalid line format");
+               lp += 2;
+               if (strcmp(lp, "DISCONNECTED") == 0) {
+                       seq = (uint32_t)-1;
+               } else {
+                       seq = (uint32_t)strtol(lp, &p, 10);
+                       torture_assert(torture, (*p == '\0'),
+                                      "invalid line format");
+                       torture_assert(torture, (seq != (uint32_t)-1),
+                                      "sequence number -1 encountered");
+               }
+               s[count].seq = seq;
+
+               count++;
+       }
+       SAFE_FREE(rep.extra_data.data);
+
+       torture_assert(torture, count >= 2, "The list of domain sequence "
+                      "numbers should contain 2 entries");
+
+       *seqs = s;
+       return true;
+}
+
+static bool torture_winbind_struct_show_sequence(struct torture_context *torture)
+{
+       bool ok;
+       uint32_t i;
+       struct torture_trust_domain *domlist = NULL;
+       struct torture_domain_sequence *s = NULL;
+
+       torture_comment(torture, "Running WINBINDD_SHOW_SEQUENCE (struct based)\n");
+
+       ok = get_sequence_numbers(torture, &s);
+       torture_assert(torture, ok, "failed to get list of sequence numbers");
+
+       ok = get_trusted_domains(torture, &domlist);
+       torture_assert(torture, ok, "failed to get trust list");
+
+       for (i=0; domlist[i].netbios_name; i++) {
+               struct winbindd_request req;
+               struct winbindd_response rep;
+               uint32_t seq;
+
+               torture_assert(torture, s[i].netbios_name,
+                              "more domains recieved in second run");
+               torture_assert_str_equal(torture, domlist[i].netbios_name,
+                                        s[i].netbios_name,
+                                        "inconsistent order of domain lists");
+
+               ZERO_STRUCT(req);
+               ZERO_STRUCT(rep);
+               fstrcpy(req.domain_name, domlist[i].netbios_name);
+
+               DO_STRUCT_REQ_REP(WINBINDD_SHOW_SEQUENCE, &req, &rep);
+
+               seq = rep.data.sequence_number;
+
+               if (i == 0) {
+                       torture_assert(torture, (seq != (uint32_t)-1),
+                                      "BUILTIN domain disconnected");
+               } else if (i == 1) {
+                       torture_assert(torture, (seq != (uint32_t)-1),
+                                      "local domain disconnected");
+               }
+
+
+               if (seq == (uint32_t)-1) {
+                       torture_comment(torture, " * %s : DISCONNECTED\n",
+                                       req.domain_name);
+               } else {
+                       torture_comment(torture, " * %s : %d\n",
+                                       req.domain_name, seq);
+               }
+               torture_assert(torture, (seq >= s[i].seq),
+                              "illegal sequence number encountered");
+       }
+
+       return true;
+}
+
+static bool torture_winbind_struct_setpwent(struct torture_context *torture)
+{
+       struct winbindd_request req;
+       struct winbindd_response rep;
+
+       torture_comment(torture, "Running WINBINDD_SETPWENT (struct based)\n");
+
+       ZERO_STRUCT(req);
+       ZERO_STRUCT(rep);
+
+       DO_STRUCT_REQ_REP(WINBINDD_SETPWENT, &req, &rep);
+
+       return true;
+}
+
+static bool torture_winbind_struct_getpwent(struct torture_context *torture)
+{
+       struct winbindd_request req;
+       struct winbindd_response rep;
+       struct winbindd_pw *pwent;
+
+       torture_comment(torture, "Running WINBINDD_GETPWENT (struct based)\n");
+
+       torture_comment(torture, " - Running WINBINDD_SETPWENT first\n");
+       ZERO_STRUCT(req);
+       ZERO_STRUCT(rep);
+       DO_STRUCT_REQ_REP(WINBINDD_SETPWENT, &req, &rep);
+
+       torture_comment(torture, " - Running WINBINDD_GETPWENT now\n");
+       ZERO_STRUCT(req);
+       ZERO_STRUCT(rep);
+       req.data.num_entries = 1;
+       DO_STRUCT_REQ_REP(WINBINDD_GETPWENT, &req, &rep);
+       pwent = (struct winbindd_pw *)rep.extra_data.data;
+       torture_assert(torture, (pwent != NULL), "NULL pwent");
+       torture_comment(torture, "name: %s, uid: %d, gid: %d, shell: %s\n",
+                       pwent->pw_name, pwent->pw_uid, pwent->pw_gid,
+                       pwent->pw_shell);
+
+       return true;
+}
+
+static bool torture_winbind_struct_endpwent(struct torture_context *torture)
+{
+       struct winbindd_request req;
+       struct winbindd_response rep;
+
+       torture_comment(torture, "Running WINBINDD_ENDPWENT (struct based)\n");
+
+       ZERO_STRUCT(req);
+       ZERO_STRUCT(rep);
+
+       DO_STRUCT_REQ_REP(WINBINDD_ENDPWENT, &req, &rep);
+
+       return true;
+}
+
+/* Copy of parse_domain_user from winbindd_util.c.  Parse a string of the
+   form DOMAIN/user into a domain and a user */
+
+static bool parse_domain_user(struct torture_context *torture,
+                             const char *domuser, fstring domain,
+                             fstring user)
+{
+       char *p = strchr(domuser, winbind_separator(torture));
+       char *dom;
+
+       if (!p) {
+               /* Maybe it was a UPN? */
+               if ((p = strchr(domuser, '@')) != NULL) {
+                       fstrcpy(domain, "");
+                       fstrcpy(user, domuser);
+                       return true;
+               }
+
+               fstrcpy(user, domuser);
+               get_winbind_domain(torture, &dom);
+               fstrcpy(domain, dom);
+               return true;
+       }
+
+       fstrcpy(user, p+1);
+       fstrcpy(domain, domuser);
+       domain[PTR_DIFF(p, domuser)] = 0;
+       strupper_m(domain);
+
+       return true;
+}
+
+static bool lookup_name_sid_list(struct torture_context *torture, char **list)
+{
+       uint32_t count;
+
+       for (count = 0; list[count]; count++) {
+               struct winbindd_request req;
+               struct winbindd_response rep;
+               char *sid;
+               char *name;
+
+               ZERO_STRUCT(req);
+               ZERO_STRUCT(rep);
+
+               parse_domain_user(torture, list[count], req.data.name.dom_name,
+                                 req.data.name.name);
+
+               DO_STRUCT_REQ_REP(WINBINDD_LOOKUPNAME, &req, &rep);
+
+               sid = talloc_strdup(torture, rep.data.sid.sid);
+
+               ZERO_STRUCT(req);
+               ZERO_STRUCT(rep);
+
+               fstrcpy(req.data.sid, sid);
+
+               DO_STRUCT_REQ_REP(WINBINDD_LOOKUPSID, &req, &rep);
+
+               name = talloc_asprintf(torture, "%s%c%s",
+                                      rep.data.name.dom_name,
+                                      winbind_separator(torture),
+                                      rep.data.name.name);
+
+               torture_assert_casestr_equal(torture, list[count], name,
+                                        "LOOKUP_SID after LOOKUP_NAME != id");
+
+#if 0
+               torture_comment(torture, " %s -> %s -> %s\n", list[count],
+                               sid, name);
+#endif
+
+               talloc_free(sid);
+               talloc_free(name);
+       }
+
+       return true;
+}
+
+static bool name_is_in_list(const char *name, const char **list)
+{
+       uint32_t count;
+
+       for (count = 0; list[count]; count++) {
+               if (strequal(name, list[count])) {
+                       return true;
+               }
+       }
+       return false;
+}
+
+static bool torture_winbind_struct_lookup_name_sid(struct torture_context *torture)
+{
+       struct winbindd_request req;
+       struct winbindd_response rep;
+       const char *invalid_sid = "S-0-0-7";
+       char *domain;
+       const char *invalid_user = "noone";
+       char *invalid_name;
+       bool strict = torture_setting_bool(torture, "strict mode", false);
+       char **users;
+       char **groups;
+       uint32_t count;
+       bool ok;
+
+       torture_comment(torture, "Running WINBINDD_LOOKUP_NAME_SID (struct based)\n");
+
+       ok = get_user_list(torture, &users);
+       torture_assert(torture, ok, "failed to retrieve list of users");
+       lookup_name_sid_list(torture, users);
+
+       ok = get_group_list(torture, &groups);
+       torture_assert(torture, ok, "failed to retrieve list of groups");
+       lookup_name_sid_list(torture, groups);
+
+       ZERO_STRUCT(req);
+       ZERO_STRUCT(rep);
+
+       fstrcpy(req.data.sid, invalid_sid);
+
+       ok = true;
+       DO_STRUCT_REQ_REP_EXT(WINBINDD_LOOKUPSID, &req, &rep,
+                             NSS_STATUS_NOTFOUND,
+                             strict,
+                             ok=false,
+                             talloc_asprintf(torture,
+                                             "invalid sid %s was resolved",
+                                             invalid_sid));
+
+       ZERO_STRUCT(req);
+       ZERO_STRUCT(rep);
+
+       /* try to find an invalid name... */
+
+       count = 0;
+       get_winbind_domain(torture, &domain);
+       do {
+               count++;
+               invalid_name = talloc_asprintf(torture, "%s\\%s%u",
+                                              domain,
+                                              invalid_user, count);
+       } while(name_is_in_list(invalid_name, (const char **)users) ||
+               name_is_in_list(invalid_name, (const char **)groups));
+
+       fstrcpy(req.data.name.dom_name, domain);
+       fstrcpy(req.data.name.name,
+               talloc_asprintf(torture, "%s%u", invalid_user,
+                               count));
+
+       ok = true;
+       DO_STRUCT_REQ_REP_EXT(WINBINDD_LOOKUPNAME, &req, &rep,
+                             NSS_STATUS_NOTFOUND,
+                             strict,
+                             ok=false,
+                             talloc_asprintf(torture,
+                                             "invalid name %s was resolved",
+                                             invalid_name));
+
+       talloc_free(users);
+       talloc_free(groups);
+
+       return true;
+}
+
+struct torture_suite *torture_winbind_struct_init(void)
+{
+       struct torture_suite *suite = torture_suite_create(talloc_autofree_context(), "STRUCT");
+
+       torture_suite_add_simple_test(suite, "INTERFACE_VERSION", torture_winbind_struct_interface_version);
+       torture_suite_add_simple_test(suite, "PING", torture_winbind_struct_ping);
+       torture_suite_add_simple_test(suite, "INFO", torture_winbind_struct_info);
+       torture_suite_add_simple_test(suite, "PRIV_PIPE_DIR", torture_winbind_struct_priv_pipe_dir);
+       torture_suite_add_simple_test(suite, "NETBIOS_NAME", torture_winbind_struct_netbios_name);
+       torture_suite_add_simple_test(suite, "DOMAIN_NAME", torture_winbind_struct_domain_name);
+       torture_suite_add_simple_test(suite, "CHECK_MACHACC", torture_winbind_struct_check_machacc);
+       torture_suite_add_simple_test(suite, "LIST_TRUSTDOM", torture_winbind_struct_list_trustdom);
+       torture_suite_add_simple_test(suite, "DOMAIN_INFO", torture_winbind_struct_domain_info);
+       torture_suite_add_simple_test(suite, "GETDCNAME", torture_winbind_struct_getdcname);
+       torture_suite_add_simple_test(suite, "DSGETDCNAME", torture_winbind_struct_dsgetdcname);
+       torture_suite_add_simple_test(suite, "LIST_USERS", torture_winbind_struct_list_users);
+       torture_suite_add_simple_test(suite, "LIST_GROUPS", torture_winbind_struct_list_groups);
+       torture_suite_add_simple_test(suite, "SHOW_SEQUENCE", torture_winbind_struct_show_sequence);
+       torture_suite_add_simple_test(suite, "SETPWENT", torture_winbind_struct_setpwent);
+       torture_suite_add_simple_test(suite, "GETPWENT", torture_winbind_struct_getpwent);
+       torture_suite_add_simple_test(suite, "ENDPWENT", torture_winbind_struct_endpwent);
+       torture_suite_add_simple_test(suite, "LOOKUP_NAME_SID", torture_winbind_struct_lookup_name_sid);
+
+       suite->description = talloc_strdup(suite, "WINBIND - struct based protocol tests");
+
+       return suite;
+}
diff --git a/source/torture/winbind/winbind.c b/source/torture/winbind/winbind.c
new file mode 100644 (file)
index 0000000..e283602
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+   Unix SMB/CIFS implementation.
+   SMB torture tester
+   Copyright (C) Stefan Metzmacher 2007
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
+
+   This program 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 General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "includes.h"
+#include "torture/torture.h"
+#include "torture/winbind/proto.h"
+
+NTSTATUS torture_winbind_init(void)
+{
+       struct torture_suite *suite = torture_suite_create(talloc_autofree_context(), "WINBIND");
+
+       torture_suite_add_suite(suite, torture_winbind_struct_init());
+
+       suite->description = talloc_strdup(suite, "WINBIND tests");
+
+       torture_register_suite(suite);
+
+       return NT_STATUS_OK;
+}
index ae5c130638aa80d3d3b346eedbbcf82df8b6ed1a..c3f93325371608bd54a53d6f9b34fb5b884efed3 100644 (file)
@@ -62,7 +62,7 @@ static NTSTATUS get_ntacl(char *filename, struct xattr_NTACL **ntacl,
                return NT_STATUS_INTERNAL_ERROR;
        }
 
-       blob.data = talloc_size(*ntacl, size);
+       blob.data = talloc_array(*ntacl, uint8_t, size);
        size = wrap_getxattr(filename, XATTR_NTACL_NAME, blob.data, size);
        if (size < 0) {
                fprintf(stderr, "get_ntacl: %s\n", strerror(errno));
index 98bf19d234cd991728e218ec097b7dae1775c78e..1352fb7d9bfa59a9f2651c9e91d8158c4fb7c8fd 100644 (file)
@@ -23,6 +23,7 @@
 #include "utils/net/net.h"
 #include "libnet/libnet.h"
 #include "libcli/security/security.h"
+#include "param/param.h"
 
 int net_join(struct net_context *ctx, int argc, const char **argv) 
 {
@@ -66,7 +67,7 @@ int net_join(struct net_context *ctx, int argc, const char **argv)
                return -1;
        }
        /* prepare parameters for the join */
-       r->in.netbios_name              = lp_netbios_name();
+       r->in.netbios_name              = lp_netbios_name(global_loadparm);
        r->in.domain_name               = domain_name;
        r->in.join_type                 = secure_channel_type;
        r->in.level                     = LIBNET_JOIN_AUTOMATIC;
index e9f48f8d41447c8455b846423776b40448343472..ada5b839b7082430a1e649eb1d1a823cb15920bc 100644 (file)
 static struct {
        const char *broadcast_address;
        const char *unicast_address;
-       BOOL find_master;
-       BOOL wins_lookup;
-       BOOL node_status;
-       BOOL root_port;
-       BOOL lookup_by_ip;
-       BOOL case_sensitive;
+       bool find_master;
+       bool wins_lookup;
+       bool node_status;
+       bool root_port;
+       bool lookup_by_ip;
+       bool case_sensitive;
 } options;
 
 /*
@@ -86,23 +86,23 @@ static char *node_status_flags(TALLOC_CTX *mem_ctx, uint16_t flags)
        ret = talloc_asprintf(mem_ctx, "%s %s", group, type);
 
        if (flags & NBT_NM_DEREGISTER) {
-               ret = talloc_asprintf_append(ret, " <DEREGISTERING>");
+               ret = talloc_asprintf_append_buffer(ret, " <DEREGISTERING>");
        }
        if (flags & NBT_NM_CONFLICT) {
-               ret = talloc_asprintf_append(ret, " <CONFLICT>");
+               ret = talloc_asprintf_append_buffer(ret, " <CONFLICT>");
        }
        if (flags & NBT_NM_ACTIVE) {
-               ret = talloc_asprintf_append(ret, " <ACTIVE>");
+               ret = talloc_asprintf_append_buffer(ret, " <ACTIVE>");
        }
        if (flags & NBT_NM_PERMANENT) {
-               ret = talloc_asprintf_append(ret, " <PERMANENT>");
+               ret = talloc_asprintf_append_buffer(ret, " <PERMANENT>");
        }
        
        return ret;
 }
 
 /* do a single node status */
-static BOOL do_node_status(struct nbt_name_socket *nbtsock,
+static bool do_node_status(struct nbt_name_socket *nbtsock,
                           const char *addr)
 {
        struct nbt_name_status io;
@@ -133,10 +133,10 @@ static BOOL do_node_status(struct nbt_name_socket *nbtsock,
                       io.out.status.statistics.unit_id[3],
                       io.out.status.statistics.unit_id[4],
                       io.out.status.statistics.unit_id[5]);
-               return True;
+               return true;
        }
 
-       return False;
+       return false;
 }
 
 /* do a single node query */
@@ -144,7 +144,7 @@ static NTSTATUS do_node_query(struct nbt_name_socket *nbtsock,
                              const char *addr, 
                              const char *node_name, 
                              enum nbt_name_type node_type,
-                             BOOL broadcast)
+                             bool broadcast)
 {
        struct nbt_name_query io;
        NTSTATUS status;
@@ -176,7 +176,7 @@ static NTSTATUS do_node_query(struct nbt_name_socket *nbtsock,
 }
 
 
-static BOOL process_one(const char *name)
+static bool process_one(const char *name)
 {
        TALLOC_CTX *tmp_ctx = talloc_new(NULL);
        enum nbt_name_type node_type = NBT_NAME_CLIENT;
@@ -184,7 +184,7 @@ static BOOL process_one(const char *name)
        struct socket_address *all_zero_addr;
        struct nbt_name_socket *nbtsock;
        NTSTATUS status = NT_STATUS_OK;
-       BOOL ret = True;
+       bool ret = true;
 
        if (!options.case_sensitive) {
                name = strupper_talloc(tmp_ctx, name);
@@ -214,14 +214,14 @@ static BOOL process_one(const char *name)
                
                if (!all_zero_addr) {
                        talloc_free(tmp_ctx);
-                       return False;
+                       return false;
                }
 
                status = socket_listen(nbtsock->sock, all_zero_addr, 0, 0);
                if (!NT_STATUS_IS_OK(status)) {
                        printf("Failed to bind to local port 137 - %s\n", nt_errstr(status));
                        talloc_free(tmp_ctx);
-                       return False;
+                       return false;
                }
        }
 
@@ -232,22 +232,22 @@ static BOOL process_one(const char *name)
        }
 
        if (options.broadcast_address) {
-               status = do_node_query(nbtsock, options.broadcast_address, node_name, node_type, True);
+               status = do_node_query(nbtsock, options.broadcast_address, node_name, node_type, true);
        } else if (options.unicast_address) {
-               status = do_node_query(nbtsock, options.unicast_address, node_name, node_type, False);
+               status = do_node_query(nbtsock, options.unicast_address, node_name, node_type, false);
        } else {
                int i, num_interfaces = iface_count();
                for (i=0;i<num_interfaces;i++) {
                        const char *bcast = iface_n_bcast(i);
                        if (bcast == NULL) continue;
-                       status = do_node_query(nbtsock, bcast, node_name, node_type, True);
+                       status = do_node_query(nbtsock, bcast, node_name, node_type, true);
                        if (NT_STATUS_IS_OK(status)) break;
                }
        }
 
        if (!NT_STATUS_IS_OK(status)) {
                printf("Lookup failed - %s\n", nt_errstr(status));
-               ret = False;
+               ret = false;
        }
 
        talloc_free(tmp_ctx);
@@ -259,7 +259,7 @@ static BOOL process_one(const char *name)
 */
 int main(int argc, const char *argv[])
 {
-       BOOL ret = True;
+       bool ret = true;
        poptContext pc;
        int opt;
        enum {
@@ -316,22 +316,22 @@ int main(int argc, const char *argv[])
                        options.unicast_address = poptGetOptArg(pc);
                        break;
                case OPT_FIND_MASTER:
-                       options.find_master = True;
+                       options.find_master = true;
                        break;
                case OPT_WINS_LOOKUP:
-                       options.wins_lookup = True;
+                       options.wins_lookup = true;
                        break;
                case OPT_NODE_STATUS:
-                       options.node_status = True;
+                       options.node_status = true;
                        break;
                case OPT_ROOT_PORT:
-                       options.root_port = True;
+                       options.root_port = true;
                        break;
                case OPT_LOOKUP_BY_IP:
-                       options.lookup_by_ip = True;
+                       options.lookup_by_ip = true;
                        break;
                case OPT_CASE_SENSITIVE:
-                       options.case_sensitive = True;
+                       options.case_sensitive = true;
                        break;
                }
        }
index f999995dafb0f70d2e157b724c8f07ff10093302..c51b35aa0309aab4272a9ca0945ee1eba282a9cd 100644 (file)
@@ -37,6 +37,7 @@
 #include "lib/messaging/messaging.h"
 #include "lib/messaging/irpc.h"
 #include "auth/ntlmssp/ntlmssp.h"
+#include "param/param.h"
 
 #define INITIAL_BUFFER_SIZE 300
 #define MAX_BUFFER_SIZE 63000
@@ -120,21 +121,21 @@ static void mux_printf(unsigned int mux_id, const char *format, ...)
 /* Copy of parse_domain_user from winbindd_util.c.  Parse a string of the
    form DOMAIN/user into a domain and a user */
 
-static BOOL parse_ntlm_auth_domain_user(const char *domuser, fstring domain, 
+static bool parse_ntlm_auth_domain_user(const char *domuser, fstring domain, 
                                        fstring user)
 {
 
-       char *p = strchr(domuser,*lp_winbind_separator());
+       char *p = strchr(domuser,*lp_winbind_separator(global_loadparm));
 
        if (!p) {
-               return False;
+               return false;
        }
         
        fstrcpy(user, p+1);
        fstrcpy(domain, domuser);
        domain[PTR_DIFF(p, domuser)] = 0;
 
-       return True;
+       return true;
 }
 
 /**
@@ -167,8 +168,8 @@ static void base64_decode_inplace(char *s)
 
 /* Authenticate a user with a plaintext password */
 
-static BOOL check_plaintext_auth(const char *user, const char *pass, 
-                                BOOL stdout_diagnostics)
+static bool check_plaintext_auth(const char *user, const char *pass, 
+                                bool stdout_diagnostics)
 {
         return (strcmp(pass, opt_password) == 0);
 }
@@ -219,7 +220,7 @@ static NTSTATUS local_pw_check_specified(const char *username,
                        if (unix_name) {
                                asprintf(unix_name, 
                                         "%s%c%s", domain,
-                                        *lp_winbind_separator(), 
+                                        *lp_winbind_separator(global_loadparm), 
                                         username);
                        }
                } else {
@@ -244,7 +245,7 @@ static void manage_squid_basic_request(enum stdio_helper_mode stdio_helper_mode,
        char *user, *pass;      
        user=buf;
        
-       pass=memchr(buf,' ',length);
+       pass = memchr(buf, ' ', length);
        if (!pass) {
                DEBUG(2, ("Password not found. Denying access\n"));
                mux_printf(mux_id, "ERR\n");
@@ -258,7 +259,7 @@ static void manage_squid_basic_request(enum stdio_helper_mode stdio_helper_mode,
                rfc1738_unescape(pass);
        }
        
-       if (check_plaintext_auth(user, pass, False)) {
+       if (check_plaintext_auth(user, pass, false)) {
                mux_printf(mux_id, "OK\n");
        } else {
                mux_printf(mux_id, "ERR\n");
@@ -324,17 +325,35 @@ static const char *get_password(struct cli_credentials *credentials)
        return password;
 }
 
+/**
+ Check if a string is part of a list.
+**/
+static bool in_list(const char *s, const char *list, bool casesensitive)
+{
+       pstring tok;
+       const char *p=list;
+
+       if (!list)
+               return false;
+
+       while (next_token(&p, tok, LIST_SEP, sizeof(tok))) {
+               if ((casesensitive?strcmp:strcasecmp_m)(tok,s) == 0)
+                       return true;
+       }
+       return false;
+}
+
 static void gensec_want_feature_list(struct gensec_security *state, char* feature_list)
 {
-       if (in_list("NTLMSSP_FEATURE_SESSION_KEY", feature_list, True)) {
+       if (in_list("NTLMSSP_FEATURE_SESSION_KEY", feature_list, true)) {
                DEBUG(10, ("want GENSEC_FEATURE_SESSION_KEY\n"));
                gensec_want_feature(state, GENSEC_FEATURE_SESSION_KEY);
        }
-       if (in_list("NTLMSSP_FEATURE_SIGN", feature_list, True)) {
+       if (in_list("NTLMSSP_FEATURE_SIGN", feature_list, true)) {
                DEBUG(10, ("want GENSEC_FEATURE_SIGN\n"));
                gensec_want_feature(state, GENSEC_FEATURE_SIGN);
        }
-       if (in_list("NTLMSSP_FEATURE_SEAL", feature_list, True)) {
+       if (in_list("NTLMSSP_FEATURE_SEAL", feature_list, true)) {
                DEBUG(10, ("want GENSEC_FEATURE_SEAL\n"));
                gensec_want_feature(state, GENSEC_FEATURE_SEAL);
        }
@@ -357,7 +376,7 @@ static void manage_gensec_request(enum stdio_helper_mode stdio_helper_mode,
        struct messaging_context *msg;
 
        NTSTATUS nt_status;
-       BOOL first = False;
+       bool first = false;
        const char *reply_code;
        struct cli_credentials *creds;
 
@@ -367,7 +386,7 @@ static void manage_gensec_request(enum stdio_helper_mode stdio_helper_mode,
        TALLOC_CTX *mem_ctx;
 
        if (*private) {
-               state = *private;
+               state = (struct gensec_ntlm_state *)*private;
        } else {
                state = talloc_zero(NULL, struct gensec_ntlm_state);
                if (!state) {
@@ -442,7 +461,7 @@ static void manage_gensec_request(enum stdio_helper_mode stdio_helper_mode,
                        if (!ev) {
                                exit(1);
                        }
-                       msg = messaging_client_init(state, ev);
+                       msg = messaging_client_init(state, lp_messaging_path(state, global_loadparm), ev);
                        if (!msg) {
                                exit(1);
                        }
@@ -455,7 +474,7 @@ static void manage_gensec_request(enum stdio_helper_mode stdio_helper_mode,
                }
 
                creds = cli_credentials_init(state->gensec_state);
-               cli_credentials_set_conf(creds);
+               cli_credentials_set_conf(creds, global_loadparm);
                if (opt_username) {
                        cli_credentials_set_username(creds, opt_username, CRED_SPECIFIED);
                }
@@ -489,12 +508,12 @@ static void manage_gensec_request(enum stdio_helper_mode stdio_helper_mode,
                case GSS_SPNEGO_SERVER:
                        nt_status = gensec_start_mech_by_oid(state->gensec_state, GENSEC_OID_SPNEGO);
                        if (!in.length) {
-                               first = True;
+                               first = true;
                        }
                        break;
                case NTLMSSP_CLIENT_1:
                        if (!in.length) {
-                               first = True;
+                               first = true;
                        }
                        /* fall through */
                case SQUID_2_5_NTLMSSP:
@@ -550,7 +569,7 @@ static void manage_gensec_request(enum stdio_helper_mode stdio_helper_mode,
                        struct security_token *token = session_info->security_token; 
                        const char *sidstr = dom_sid_string(session_info, 
                                                            token->sids[i]);
-                       grouplist = talloc_asprintf_append(grouplist, "%s,", sidstr);
+                       grouplist = talloc_asprintf_append_buffer(grouplist, "%s,", sidstr);
                }
 
                mux_printf(mux_id, "GL %s\n", grouplist);
@@ -640,7 +659,7 @@ static void manage_gensec_request(enum stdio_helper_mode stdio_helper_mode,
                        reply_code = "AF";
                        reply_arg = talloc_asprintf(state->gensec_state, 
                                                    "%s%s%s", session_info->server_info->domain_name, 
-                                                   lp_winbind_separator(), session_info->server_info->account_name);
+                                                   lp_winbind_separator(global_loadparm), session_info->server_info->account_name);
                        talloc_free(session_info);
                }
        } else if (state->gensec_state->gensec_role == GENSEC_CLIENT) {
@@ -682,8 +701,8 @@ static void manage_ntlm_server_1_request(enum stdio_helper_mode stdio_helper_mod
        static char *username;
        static char *domain;
        static char *plaintext_password;
-       static BOOL ntlm_server_1_user_session_key;
-       static BOOL ntlm_server_1_lm_session_key;
+       static bool ntlm_server_1_user_session_key;
+       static bool ntlm_server_1_lm_session_key;
        
        if (strequal(buf, ".")) {
                if (!full_username && !username) {      
@@ -691,12 +710,12 @@ static void manage_ntlm_server_1_request(enum stdio_helper_mode stdio_helper_mod
                } else if (plaintext_password) {
                        /* handle this request as plaintext */
                        if (!full_username) {
-                               if (asprintf(&full_username, "%s%c%s", domain, *lp_winbind_separator(), username) == -1) {
+                               if (asprintf(&full_username, "%s%c%s", domain, *lp_winbind_separator(global_loadparm), username) == -1) {
                                        mux_printf(mux_id, "Error: Out of memory in asprintf!\n.\n");
                                        return;
                                }
                        }
-                       if (check_plaintext_auth(full_username, plaintext_password, False)) {
+                       if (check_plaintext_auth(full_username, plaintext_password, false)) {
                                mux_printf(mux_id, "Authenticated: Yes\n");
                        } else {
                                mux_printf(mux_id, "Authenticated: No\n");
@@ -726,7 +745,7 @@ static void manage_ntlm_server_1_request(enum stdio_helper_mode stdio_helper_mod
                        }
 
                        if (!domain) {
-                               domain = smb_xstrdup(lp_workgroup());
+                               domain = smb_xstrdup(lp_workgroup(global_loadparm));
                        }
 
                        if (ntlm_server_1_lm_session_key) 
@@ -738,7 +757,7 @@ static void manage_ntlm_server_1_request(enum stdio_helper_mode stdio_helper_mod
                        if (!NT_STATUS_IS_OK(
                                    local_pw_check_specified(username, 
                                                              domain, 
-                                                             lp_netbios_name(),
+                                                             lp_netbios_name(global_loadparm),
                                                              &challenge, 
                                                              &lm_response, 
                                                              &nt_response, 
@@ -789,8 +808,8 @@ static void manage_ntlm_server_1_request(enum stdio_helper_mode stdio_helper_mod
                SAFE_FREE(username);
                SAFE_FREE(domain);
                SAFE_FREE(plaintext_password);
-               ntlm_server_1_user_session_key = False;
-               ntlm_server_1_lm_session_key = False;
+               ntlm_server_1_user_session_key = false;
+               ntlm_server_1_lm_session_key = false;
                mux_printf(mux_id, ".\n");
 
                return;
@@ -883,8 +902,7 @@ static void manage_squid_request(enum stdio_helper_mode helper_mode,
        static void *normal_private;
        void **private;
 
-       buf = talloc(NULL, char);
-       buf[0] = '\0';
+       buf = talloc_strdup(NULL, "");
 
        if (buf == NULL) {
                DEBUG(0, ("Failed to allocate memory for reading the input "
@@ -907,7 +925,7 @@ static void manage_squid_request(enum stdio_helper_mode helper_mode,
                        exit(0);
                }
 
-               buf = talloc_append_string(buf, buf, tmp);
+               buf = talloc_strdup_append_buffer(buf, tmp);
                buf_size += INITIAL_BUFFER_SIZE;
 
                if (buf_size > MAX_BUFFER_SIZE) {
@@ -1066,7 +1084,7 @@ int main(int argc, const char **argv)
        gensec_init();
 
        if (opt_domain == NULL) {
-               opt_domain = lp_workgroup();
+               opt_domain = lp_workgroup(global_loadparm);
        }
 
        if (helper_protocol) {
@@ -1093,7 +1111,7 @@ int main(int argc, const char **argv)
        }
 
        if (opt_workstation == NULL) {
-               opt_workstation = lp_netbios_name();
+               opt_workstation = lp_netbios_name(global_loadparm);
        }
 
        if (!opt_password) {
@@ -1103,8 +1121,8 @@ int main(int argc, const char **argv)
        {
                char *user;
 
-               asprintf(&user, "%s%c%s", opt_domain, *lp_winbind_separator(), opt_username);
-               if (!check_plaintext_auth(user, opt_password, True)) {
+               asprintf(&user, "%s%c%s", opt_domain, *lp_winbind_separator(global_loadparm), opt_username);
+               if (!check_plaintext_auth(user, opt_password, true)) {
                        return 1;
                }
        }
index 886b51300f10815e1b9baffd2f067d51314bb212..71ff937a516a6952e3fc5ff49b7a0c6fa60d04d8 100644 (file)
@@ -36,6 +36,7 @@
 #include "system/filesys.h"
 #include "lib/cmdline/popt_common.h"
 #include "lib/socket/socket.h"
+#include "param/param.h"
 
 
 /***********************************************
  configuration settings.
 ************************************************/
 
-static int do_global_checks(void)
+static int do_global_checks(struct loadparm_context *lp_ctx)
 {
        int ret = 0;
 
-       if (!directory_exist(lp_lockdir())) {
+       if (!directory_exist(lp_lockdir(lp_ctx))) {
                fprintf(stderr, "ERROR: lock directory %s does not exist\n",
-                      lp_lockdir());
+                      lp_lockdir(lp_ctx));
                ret = 1;
        }
 
-       if (!directory_exist(lp_piddir())) {
+       if (!directory_exist(lp_piddir(lp_ctx))) {
                fprintf(stderr, "ERROR: pid directory %s does not exist\n",
-                      lp_piddir());
+                      lp_piddir(lp_ctx));
                ret = 1;
        }
 
-       if (strlen(lp_winbind_separator()) != 1) {
+       if (strlen(lp_winbind_separator(lp_ctx)) != 1) {
                fprintf(stderr,"ERROR: the 'winbind separator' parameter must be a single character.\n");
                ret = 1;
        }
 
-       if (*lp_winbind_separator() == '+') {
+       if (*lp_winbind_separator(lp_ctx) == '+') {
                fprintf(stderr,"'winbind separator = +' might cause problems with group membership.\n");
        }
 
@@ -136,22 +137,23 @@ static int do_global_checks(void)
 */
        
        /* We need this to force the output */
-       lp_set_cmdline("log level", "2");
+       lp_set_cmdline(global_loadparm, "log level", "2");
 
-       fprintf(stderr,"Load smb config files from %s\n",lp_configfile());
+       fprintf(stderr, "Loaded smb config files from %s\n", lp_configfile(global_loadparm));
 
-       if (!lp_load()) {
+       if (!lp_load(lp_configfile(global_loadparm))) {
                fprintf(stderr,"Error loading services.\n");
                return(1);
        }
 
        fprintf(stderr,"Loaded services file OK.\n");
 
-       ret = do_global_checks();
+       ret = do_global_checks(global_loadparm);
 
-       for (s=0;s<lp_numservices();s++) {
-               if (lp_snum_ok(s))
-                       if (strlen(lp_servicename(s)) > 12) {
+       for (s=0;s<lp_numservices(global_loadparm);s++) {
+               struct loadparm_service *service = lp_servicebynum(global_loadparm, s);
+               if (service != NULL)
+                       if (strlen(lp_servicename(lp_servicebynum(global_loadparm, s))) > 12) {
                                fprintf(stderr, "WARNING: You have some share names that are longer than 12 characters.\n" );
                                fprintf(stderr, "These may not be accessible to some older clients.\n" );
                                fprintf(stderr, "(Eg. Windows9x, WindowsMe, and not listed in smbclient in Samba 3.0.)\n" );
@@ -159,10 +161,11 @@ static int do_global_checks(void)
                        }
        }
 
-       for (s=0;s<lp_numservices();s++) {
-               if (lp_snum_ok(s)) {
-                       const char **deny_list = lp_hostsdeny(s);
-                       const char **allow_list = lp_hostsallow(s);
+       for (s=0;s<lp_numservices(global_loadparm);s++) {
+               struct loadparm_service *service = lp_servicebynum(global_loadparm, s);
+               if (service != NULL) {
+                       const char **deny_list = lp_hostsdeny(service);
+                       const char **allow_list = lp_hostsallow(service);
                        int i;
                        if(deny_list) {
                                for (i=0; deny_list[i]; i++) {
@@ -170,7 +173,7 @@ static int do_global_checks(void)
                                        char *hasquery = strchr_m(deny_list[i], '?');
                                        if(hasstar || hasquery) {
                                                fprintf(stderr,"Invalid character %c in hosts deny list (%s) for service %s.\n",
-                                                          hasstar ? *hasstar : *hasquery, deny_list[i], lp_servicename(s) );
+                                                          hasstar ? *hasstar : *hasquery, deny_list[i], lp_servicename(service) );
                                        }
                                }
                        }
@@ -181,7 +184,7 @@ static int do_global_checks(void)
                                        char *hasquery = strchr_m(allow_list[i], '?');
                                        if(hasstar || hasquery) {
                                                fprintf(stderr,"Invalid character %c in hosts allow list (%s) for service %s.\n",
-                                                          hasstar ? *hasstar : *hasquery, allow_list[i], lp_servicename(s) );
+                                                          hasstar ? *hasstar : *hasquery, allow_list[i], lp_servicename(service) );
                                        }
                                }
                        }
@@ -196,42 +199,39 @@ static int do_global_checks(void)
                        getc(stdin);
                }
                if (section_name || parameter_name) {
-                       BOOL isGlobal = False;
+                       struct loadparm_service *service = NULL;
                        if (!section_name) {
                                section_name = GLOBAL_NAME;
-                               isGlobal = True;
-                       } else if ((isGlobal=!strwicmp(section_name, GLOBAL_NAME)) == 0 &&
-                                (s=lp_servicenumber(section_name)) == -1) {
+                               service = NULL;
+                       } else if ((!strwicmp(section_name, GLOBAL_NAME)) == 0 &&
+                                (service=lp_service(global_loadparm, section_name)) == NULL) {
                                        fprintf(stderr,"Unknown section %s\n",
                                                section_name);
                                        return(1);
                        }
                        if (!parameter_name) {
-                               if (isGlobal == True) {
-                                       lp_dump(stdout, show_defaults, 0);
-                               } else {
-                                       lp_dump_one(stdout, show_defaults, s);
-                               }
+                               lp_dump_one(stdout, show_defaults, service);
                        } else {
-                               ret = !lp_dump_a_parameter(s, parameter_name, stdout, isGlobal);
+                               ret = !lp_dump_a_parameter(global_loadparm, s, parameter_name, stdout, (service == NULL));
                        }
                } else {
-                       lp_dump(stdout, show_defaults, lp_numservices());
+                       lp_dump(global_loadparm, stdout, show_defaults, lp_numservices(global_loadparm));
                }
                return(ret);
        }
 
        if(cname && caddr){
                /* this is totally ugly, a real `quick' hack */
-               for (s=0;s<lp_numservices();s++) {
-                       if (lp_snum_ok(s)) {
-                               if (allow_access(NULL, lp_hostsdeny(-1), lp_hostsallow(-1), cname, caddr)
-                                   && allow_access(NULL, lp_hostsdeny(s), lp_hostsallow(s), cname, caddr)) {
+               for (s=0;s<lp_numservices(global_loadparm);s++) {
+                       struct loadparm_service *service = lp_servicebynum(global_loadparm, s);
+                       if (service != NULL) {
+                               if (allow_access(NULL, lp_hostsdeny(NULL), lp_hostsallow(NULL), cname, caddr)
+                                   && allow_access(NULL, lp_hostsdeny(service), lp_hostsallow(service), cname, caddr)) {
                                        fprintf(stderr,"Allow connection from %s (%s) to %s\n",
-                                                  cname,caddr,lp_servicename(s));
+                                                  cname,caddr,lp_servicename(service));
                                } else {
                                        fprintf(stderr,"Deny connection from %s (%s) to %s\n",
-                                                  cname,caddr,lp_servicename(s));
+                                                  cname,caddr,lp_servicename(service));
                                }
                        }
                }
index 502d5de2d0646480290950e6a0155fd9317134b4..67329fba7ed0bbb4c8c7adf06120404b464e180b 100644 (file)
 #include "lib/util/dlinklist.h"
 #include "lib/tls/tls.h"
 #include "scripting/ejs/smbcalls.h"
+#include "param/param.h"
 
 #define SAMBA_SESSION_KEY "SambaSessionId"
 #define HTTP_PREAUTH_URI  "/scripting/preauth.esp"
-#define JSONRPC_REQUEST   "/services"
-#define JSONRPC_SERVER    "/request.esp"
 
 /* state of the esp subsystem for a specific request */
 struct esp_state {
@@ -83,7 +82,7 @@ static void http_output_headers(struct websrv_context *web)
                            web->output.response_code, response_string);
        if (s == NULL) return;
        for (i=0;web->output.headers[i];i++) {
-               s = talloc_asprintf_append(s, "%s\r\n", web->output.headers[i]);
+               s = talloc_asprintf_append_buffer(s, "%s\r\n", web->output.headers[i]);
        }
 
        /* work out the content length */
@@ -93,7 +92,7 @@ static void http_output_headers(struct websrv_context *web)
                fstat(web->output.fd, &st);
                content_length += st.st_size;
        }
-       s = talloc_asprintf_append(s, "Content-Length: %u\r\n\r\n", content_length);
+       s = talloc_asprintf_append_buffer(s, "Content-Length: %u\r\n\r\n", content_length);
        if (s == NULL) return;
 
        b = web->output.content;
@@ -126,7 +125,7 @@ static const char *http_local_path(struct websrv_context *web,
        if (path == NULL) return NULL;
 
        if (directory_exist(path)) {
-               path = talloc_asprintf_append(path, "/index.esp");
+               path = talloc_asprintf_append_buffer(path, "/index.esp");
        }
        return path;
 }
@@ -151,7 +150,7 @@ static int http_readFile(EspHandle handle,
        fd = open(path, O_RDONLY);
        if (fd == -1 || fstat(fd, &st) != 0 || !S_ISREG(st.st_mode)) goto failed;
 
-       *buf = talloc_size(handle, st.st_size+1);
+       *buf = talloc_array(handle, char, st.st_size+1);
        if (*buf == NULL) goto failed;
 
        if (read(fd, *buf, st.st_size) != st.st_size) goto failed;
@@ -170,12 +169,12 @@ failed:
        return -1;
 }
 
-static int http_readFileFromWebappsDir(EspHandle handle,
+static int http_readFileFromSwatDir(EspHandle handle,
                                        char **buf,
                                        int *len,
                                        const char *path)
 {
-    return http_readFile(handle, buf, len, path, lp_webapps_directory());
+    return http_readFile(handle, buf, len, path, lp_swat_directory(global_loadparm));
 }
 
 
@@ -357,7 +356,7 @@ void http_error(struct websrv_context *web, int code, const char *info)
        http_output_headers(web);
        EVENT_FD_NOT_READABLE(web->conn->event.fde);
        EVENT_FD_WRITEABLE(web->conn->event.fde);
-       web->output.output_pending = True;
+       web->output.output_pending = true;
 }
 
 /*
@@ -389,7 +388,7 @@ static void http_simple_request(struct websrv_context *web)
        const char *path;
        struct stat st;
 
-       path = http_local_path(web, url, lp_webapps_directory());
+       path = http_local_path(web, url, lp_swat_directory(global_loadparm));
        if (path == NULL) goto invalid;
 
        /* looks ok */
@@ -453,7 +452,7 @@ static void http_setup_arrays(struct esp_state *esp)
        if (web->session) {
                SETVAR(ESP_REQUEST_OBJ, "SESSION_ID", web->session->id);
        }
-       SETVAR(ESP_REQUEST_OBJ, "COOKIE_SUPPORT", web->input.cookie?"True":"False");
+       SETVAR(ESP_REQUEST_OBJ, "COOKIE_SUPPORT", web->input.cookie?"true":"false");
 
        SETVAR(ESP_HEADERS_OBJ, "HTTP_REFERER", web->input.referer);
        SETVAR(ESP_HEADERS_OBJ, "HOST", web->input.host);
@@ -471,11 +470,11 @@ static void http_setup_arrays(struct esp_state *esp)
                       talloc_asprintf(esp, "%u", socket_address->port));
        }
 
-       SETVAR(ESP_SERVER_OBJ, "DOCUMENT_ROOT", lp_webapps_directory());
+       SETVAR(ESP_SERVER_OBJ, "DOCUMENT_ROOT", lp_swat_directory(global_loadparm));
        SETVAR(ESP_SERVER_OBJ, "SERVER_PROTOCOL", tls_enabled(web->conn->socket)?"https":"http");
        SETVAR(ESP_SERVER_OBJ, "SERVER_SOFTWARE", "SAMBA");
        SETVAR(ESP_SERVER_OBJ, "GATEWAY_INTERFACE", "CGI/1.1");
-       SETVAR(ESP_SERVER_OBJ, "TLS_SUPPORT", tls_support(edata->tls_params)?"True":"False");
+       SETVAR(ESP_SERVER_OBJ, "TLS_SUPPORT", tls_support(edata->tls_params)?"true":"false");
 }
 
 #if HAVE_SETJMP_H
@@ -516,7 +515,7 @@ static void esp_request(struct esp_state *esp, const char *url)
        int res;
        char *emsg = NULL, *buf;
 
-       if (http_readFile(web, &buf, &size, url, lp_webapps_directory()) != 0) {
+       if (http_readFile(web, &buf, &size, url, lp_swat_directory(global_loadparm)) != 0) {
                http_error_unix(web, url);
                return;
        }
@@ -537,98 +536,26 @@ static void esp_request(struct esp_state *esp, const char *url)
        talloc_free(buf);
 }
 
-/*
-  process a JSON RPC request
-*/
-static void jsonrpc_request(struct esp_state *esp)
-{
-       struct websrv_context *web = esp->web;
-       const char *path = http_local_path(web,
-                                           JSONRPC_SERVER,
-                                           lp_jsonrpc_services_dir());
-        MprVar *global;
-        MprVar v;
-        MprVar temp;
-       int size;
-       int res;
-       char *emsg = NULL;
-       char *emsg2 = NULL;
-        char *buf;
-        char *error_script =
-                "error.setOrigin(jsonrpc.Constant.ErrorOrigin.Server); "
-                "error.setError(jsonrpc.Constant.ErrorCode.UnexpectedOutput, "
-                "               global.errorString);"
-                "error.Send();";
-
-        /* Ensure we got a valid path. */
-       if (path == NULL) {
-                /* should never occur */
-               http_error(esp->web, 500, "Internal server error");
-               return;
-       }
-
-        /* Ensure that the JSON-RPC server request script exists */
-       if (!file_exist(path)) {
-               http_error_unix(esp->web, path);
-               return;
-       }
-
-        /* Call the server request script */
-       if (http_readFile(web, &buf, &size,
-                          JSONRPC_SERVER, lp_jsonrpc_services_dir()) != 0) {
-               http_error_unix(web, JSONRPC_SERVER);
-               return;
-       }
-
-#if HAVE_SETJMP_H
-       if (setjmp(ejs_exception_buf) != 0) {
-               http_error(web, 500, exception_reason);
-               return;
-       }
-#endif
-
-       res = espProcessRequest(esp->req, JSONRPC_SERVER, buf, &emsg);
-       if (res != 0 && emsg) {
-                /* Save the error in a string accessible from javascript */
-                global = ejsGetGlobalObject(0);
-                v = mprString(emsg);
-                mprCreateProperty(global, "errorString", &v);
-
-                /* Create and send a JsonRpcError object */
-                if (ejsEvalScript(0,
-                                  error_script,
-                                  &temp,
-                                  &emsg2) != 0) {
-                        http_writeBlock(web, "<pre>", 5);
-                        http_writeBlock(web, emsg, strlen(emsg));
-                        http_writeBlock(web, "</pre>", 6);
-                }
-       }
-       talloc_free(buf);
-}
-
 /*
   perform pre-authentication on every page if /scripting/preauth.esp
   exists.  If this script generates any non-whitepace output at all,
   then we don't run the requested URL.
 
-  note that the preauth is run even for static pages such as images, but not
-  for JSON-RPC service requests which do their own authentication via the
-  JSON-RPC server.
+  note that the preauth is run even for static pages such as images
 */
-static BOOL http_preauth(struct esp_state *esp)
+static bool http_preauth(struct esp_state *esp)
 {
        const char *path = http_local_path(esp->web,
                                            HTTP_PREAUTH_URI,
-                                           lp_webapps_directory());
+                                           lp_swat_directory(global_loadparm));
        int i;
        if (path == NULL) {
                http_error(esp->web, 500, "Internal server error");
-               return False;
+               return false;
        }
        if (!file_exist(path)) {
                /* if the preath script is not installed then allow access */
-               return True;
+               return true;
        }
        esp_request(esp, HTTP_PREAUTH_URI);
        for (i=0;i<esp->web->output.content.length;i++) {
@@ -637,11 +564,11 @@ static BOOL http_preauth(struct esp_state *esp)
                           to be html, so that we can show the login page for
                           failed access to images */
                        http_setHeader(esp->web, "Content-Type: text/html", 0);
-                       return False;
+                       return false;
                }
        }
        data_blob_free(&esp->web->output.content);
-       return True;
+       return true;
 }
 
 
@@ -777,7 +704,7 @@ static void http_setup_session(struct esp_state *esp)
        const char *key = NULL;
        struct esp_data *edata = talloc_get_type(esp->web->task->private, struct esp_data);
        struct session_data *s;
-       BOOL generated_key = False;
+       bool generated_key = false;
 
        /* look for our session key */
        if (cookie && (p = strstr(cookie, session_key)) && 
@@ -790,7 +717,7 @@ static void http_setup_session(struct esp_state *esp)
                key = esp->web->input.session_key;
        } else if (key == NULL) {
                key = generate_random_str_list(esp, 16, "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ");
-               generated_key = True;
+               generated_key = true;
        }
 
        /* try to find this session in the existing session list */
@@ -807,12 +734,12 @@ static void http_setup_session(struct esp_state *esp)
                s->data = NULL;
                s->te = NULL;
                s->edata = edata;
-               s->lifetime = lp_parm_int(-1, "web", "sessiontimeout", 900);
+               s->lifetime = lp_parm_int(global_loadparm, NULL, "web", "sessiontimeout", 900);
                DLIST_ADD(edata->sessions, s);
                talloc_set_destructor(s, session_destructor);
                if (!generated_key) {
                        mprSetPropertyValue(&esp->variables[ESP_REQUEST_OBJ], 
-                                           "SESSION_EXPIRED", mprCreateStringVar("True", 0));
+                                           "SESSION_EXPIRED", mprCreateStringVar("true", 0));
                }
        }
 
@@ -833,7 +760,7 @@ static const struct Esp esp_control = {
        .setHeader       = http_setHeader,
        .redirect        = http_redirect,
        .setResponseCode = http_setResponseCode,
-       .readFile        = http_readFileFromWebappsDir,
+       .readFile        = http_readFileFromSwatDir,
        .mapToStorage    = http_mapToStorage,
        .setCookie       = http_setCookie,
        .createSession   = http_createSession,
@@ -857,8 +784,7 @@ void http_process_input(struct websrv_context *web)
        const char *file_type = NULL;
         enum page_type {
                 page_type_simple,
-                page_type_esp,
-                page_type_jsonrpc
+                page_type_esp
         };
         enum page_type page_type;
        const struct {
@@ -872,7 +798,7 @@ void http_process_input(struct websrv_context *web)
                {"txt",  "text/plain"},
                {"ico",  "image/x-icon"},
                {"css",  "text/css"},
-               {"esp",  "text/html", True}
+               {"esp",  "text/html", true}
        };
 
        /*
@@ -944,35 +870,21 @@ void http_process_input(struct websrv_context *web)
        esp->req = espCreateRequest(web, web->input.url, esp->variables);
        if (esp->req == NULL) goto internal_error;
 
-       /*
-         * Work out the mime type.  First, we see if the request is a JSON-RPC
-         * service request.  If not, we look at the extension.
-         */
-        if (strncmp(web->input.url,
-                    JSONRPC_REQUEST,
-                    sizeof(JSONRPC_REQUEST) - 1) == 0 &&
-            (web->input.url[sizeof(JSONRPC_REQUEST) - 1] == '\0' ||
-             web->input.url[sizeof(JSONRPC_REQUEST) - 1] == '/')) {
-            page_type = page_type_jsonrpc;
-            file_type = "text/json";
-            
-        } else {
-            p = strrchr(web->input.url, '.');
-            if (p == NULL) {
-                    page_type = page_type_esp;
-                   file_type = "text/html";
-            }
-            for (i=0;p && i<ARRAY_SIZE(mime_types);i++) {
+       p = strrchr(web->input.url, '.');
+       if (p == NULL) {
+               page_type = page_type_esp;
+               file_type = "text/html";
+       }
+       for (i=0;p && i<ARRAY_SIZE(mime_types);i++) {
                if (strcmp(mime_types[i].extension, p+1) == 0) {
-                    page_type = mime_types[i].page_type;
-                    file_type = mime_types[i].mime_type;
+                       page_type = mime_types[i].page_type;
+                       file_type = mime_types[i].mime_type;
                }
-            }
-            if (file_type == NULL) {
+       }
+       if (file_type == NULL) {
                 page_type = page_type_simple;
                file_type = "text/html";
-            }
-        }
+       }
 
        /* setup basic headers */
        http_setResponseCode(web, 200);
@@ -1001,10 +913,6 @@ void http_process_input(struct websrv_context *web)
                         esp_request(esp, web->input.url);
                 }
                 break;
-
-        case page_type_jsonrpc:
-                jsonrpc_request(esp);
-                break;
         }
 
        if (web->conn == NULL) {
@@ -1016,7 +924,7 @@ void http_process_input(struct websrv_context *web)
        if (!web->output.output_pending) {
                http_output_headers(web);
                EVENT_FD_WRITEABLE(web->conn->event.fde);
-               web->output.output_pending = True;
+               web->output.output_pending = true;
        }
 
        /* copy any application data to long term storage in edata */
@@ -1070,11 +978,11 @@ internal_error:
 NTSTATUS http_parse_header(struct websrv_context *web, const char *line)
 {
        if (line[0] == 0) {
-               web->input.end_of_headers = True;
+               web->input.end_of_headers = true;
        } else if (strncasecmp(line,"GET ", 4)==0) {
                web->input.url = talloc_strndup(web, &line[4], strcspn(&line[4], " \t"));
        } else if (strncasecmp(line,"POST ", 5)==0) {
-               web->input.post_request = True;
+               web->input.post_request = true;
                web->input.url = talloc_strndup(web, &line[5], strcspn(&line[5], " \t"));
        } else if (strchr(line, ':') == NULL) {
                http_error(web, 400, "This server only accepts GET and POST requests");
index f9031433d38a5542d09fb68bd2cc48c5af0ee7b1..2e803398716c6553d650130990cc0f476a490966 100644 (file)
@@ -29,6 +29,7 @@
 #include "system/network.h"
 #include "lib/socket/netif.h"
 #include "lib/tls/tls.h"
+#include "param/param.h"
 
 /* don't allow connections to hang around forever */
 #define HTTP_TIMEOUT 120
@@ -84,7 +85,7 @@ static void websrv_recv(struct stream_connection *conn, uint16_t flags)
        /* parse any lines that are available */
        b = web->input.partial;
        while (!web->input.end_of_headers &&
-              (p=memchr(b.data, '\n', b.length))) {
+              (p=(uint8_t *)memchr(b.data, '\n', b.length))) {
                const char *line = (const char *)b.data;
                *p = 0;
                if (p != b.data && p[-1] == '\r') {
@@ -240,7 +241,7 @@ static const struct stream_server_ops web_stream_ops = {
 static void websrv_task_init(struct task_server *task)
 {
        NTSTATUS status;
-       uint16_t port = lp_web_port();
+       uint16_t port = lp_web_port(global_loadparm);
        const struct model_ops *model_ops;
 
        task_server_set_title(task, "task[websrv]");
@@ -249,7 +250,7 @@ static void websrv_task_init(struct task_server *task)
        model_ops = process_model_byname("single");
        if (!model_ops) goto failed;
 
-       if (lp_interfaces() && lp_bind_interfaces_only()) {
+       if (lp_interfaces(global_loadparm) && lp_bind_interfaces_only(global_loadparm)) {
                int num_interfaces = iface_count();
                int i;
                for(i = 0; i < num_interfaces; i++) {
@@ -263,7 +264,7 @@ static void websrv_task_init(struct task_server *task)
        } else {
                status = stream_setup_socket(task->event_ctx, model_ops, 
                                             &web_stream_ops, 
-                                            "ipv4", lp_socket_address(), 
+                                            "ipv4", lp_socket_address(global_loadparm), 
                                             &port, task);
                if (!NT_STATUS_IS_OK(status)) goto failed;
        }
index e4023dbad73c9b7f893ed0c94c9ecb64072e1313..980a8a4d92d3c6af44d8bf960882423e2c3813d1 100644 (file)
@@ -25,7 +25,6 @@
 #include "winbind/wb_async_helpers.h"
 #include "winbind/wb_helper.h"
 #include "smbd/service_task.h"
-#include "nsswitch/winbindd_nss.h"
 #include "libnet/libnet_proto.h"
 
 struct cmd_getpwent_state {
index b1933aa2c5c79c3efb15786f96edabb1e7685b61..653b598ac3d682c54a67953788426293550e4d45 100644 (file)
@@ -25,9 +25,8 @@
 #include "winbind/wb_async_helpers.h"
 #include "winbind/wb_helper.h"
 #include "smbd/service_task.h"
-#include "nsswitch/winbindd_nss.h"
 #include "libnet/libnet_proto.h"
-#include "param/proto.h"
+#include "param/param.h"
 #include "libcli/security/proto.h"
 
 struct cmd_getpwnam_state {
@@ -125,12 +124,12 @@ static void cmd_getpwnam_recv_user_info(struct composite_context *ctx)
        WBSRV_SAMBA3_SET_STRING(pw->pw_name, user_info->out.account_name);
        WBSRV_SAMBA3_SET_STRING(pw->pw_passwd, "*");
        WBSRV_SAMBA3_SET_STRING(pw->pw_gecos, user_info->out.full_name);
-       WBSRV_SAMBA3_SET_STRING(pw->pw_dir, lp_template_homedir());
+       WBSRV_SAMBA3_SET_STRING(pw->pw_dir, lp_template_homedir(global_loadparm));
        all_string_sub(pw->pw_dir, "%WORKGROUP%", state->workgroup_name,
                        sizeof(fstring) - 1);
        all_string_sub(pw->pw_dir, "%ACCOUNTNAME%", user_info->out.account_name,
                        sizeof(fstring) - 1);
-       WBSRV_SAMBA3_SET_STRING(pw->pw_shell, lp_template_shell());
+       WBSRV_SAMBA3_SET_STRING(pw->pw_shell, lp_template_shell(global_loadparm));
 
        state->group_sid = dom_sid_dup(state, user_info->out.primary_group_sid);
        if(composite_nomem(state->group_sid, state->ctx)) return;
index 1a59b5486ed8c8d00548053589298aaa135ff9b4..339f7e896c7ca1f3f179395745b152c466999a4f 100644 (file)
@@ -25,9 +25,8 @@
 #include "winbind/wb_async_helpers.h"
 #include "winbind/wb_helper.h"
 #include "smbd/service_task.h"
-#include "nsswitch/winbindd_nss.h"
 #include "libnet/libnet_proto.h"
-#include "param/proto.h"
+#include "param/param.h"
 #include "libcli/security/proto.h"
 #include "auth/credentials/credentials.h"
 
@@ -149,12 +148,12 @@ static void cmd_getpwuid_recv_user_info(struct composite_context *ctx)
        WBSRV_SAMBA3_SET_STRING(pw->pw_name, user_info->out.account_name);
        WBSRV_SAMBA3_SET_STRING(pw->pw_passwd, "*");
        WBSRV_SAMBA3_SET_STRING(pw->pw_gecos, user_info->out.full_name);
-       WBSRV_SAMBA3_SET_STRING(pw->pw_dir, lp_template_homedir());
+       WBSRV_SAMBA3_SET_STRING(pw->pw_dir, lp_template_homedir(global_loadparm));
        all_string_sub(pw->pw_dir, "%WORKGROUP%", state->workgroup,
                        sizeof(fstring) - 1);
        all_string_sub(pw->pw_dir, "%ACCOUNTNAME%", user_info->out.account_name,
                        sizeof(fstring) - 1);
-       WBSRV_SAMBA3_SET_STRING(pw->pw_shell, lp_template_shell());
+       WBSRV_SAMBA3_SET_STRING(pw->pw_shell, lp_template_shell(global_loadparm));
 
        pw->pw_uid = state->uid;
 
index 9260a422077814e499dc148abb04fa88029a160f..f67f13348887fc31e0b4d8f6ad224f1ab6b25791 100644 (file)
@@ -25,7 +25,6 @@
 #include "winbind/wb_async_helpers.h"
 #include "winbind/wb_helper.h"
 #include "smbd/service_task.h"
-#include "nsswitch/winbindd_nss.h"
 #include "libnet/libnet_proto.h"
 
 struct cmd_list_users_state {
@@ -144,7 +143,7 @@ static void cmd_list_users_recv_user_list(struct composite_context *ctx)
 
        for (i = 0; i < user_list->out.count; ++i) {
                DEBUG(5, ("Appending user '%s'\n", user_list->out.users[i].username));
-               state->result = talloc_asprintf_append(state->result, "%s,",
+               state->result = talloc_asprintf_append_buffer(state->result, "%s,",
                                        user_list->out.users[i].username);
        }
 
index ac6caee6f0b02b0b81d916c8f1552d9d5facc813..50ab2fdff61f4548f609fd35f38be6aa5a00dde0 100644 (file)
@@ -25,7 +25,6 @@
 #include "winbind/wb_async_helpers.h"
 #include "winbind/wb_helper.h"
 #include "smbd/service_task.h"
-#include "nsswitch/winbindd_nss.h"
 #include "libnet/libnet_proto.h"
 
 struct cmd_setpwent_state {
index 5ec8f1a1597953ccd54c693d30b4d9b254f78c02..13d446897e3f84d634350b9f7164b526181ba24d 100644 (file)
@@ -30,6 +30,7 @@
 #include "librpc/gen_ndr/samr.h"
 #include "lib/messaging/irpc.h"
 #include "libcli/finddcs.h"
+#include "param/param.h"
 
 struct get_dom_info_state {
        struct composite_context *ctx;
@@ -67,7 +68,8 @@ struct composite_context *wb_get_dom_info_send(TALLOC_CTX *mem_ctx,
        if (dom_sid == NULL) goto failed;
 
        ctx = finddcs_send(mem_ctx, domain_name, NBT_NAME_LOGON, 
-                          dom_sid, lp_name_resolve_order(), service->task->event_ctx, 
+                          dom_sid, lp_name_resolve_order(global_loadparm), 
+                          service->task->event_ctx, 
                           service->task->msg_ctx);
        if (ctx == NULL) goto failed;
 
index 9982a16d7414754254768f88ebb771c4320d1bcf..23436fa67a665496a313005eb421a1c964ceb26d 100644 (file)
@@ -27,6 +27,7 @@
 #include "smbd/service_task.h"
 #include "librpc/gen_ndr/ndr_netlogon_c.h"
 #include "libcli/libcli.h"
+#include "param/param.h"
 
 struct trusted_dom_info_state {
        struct composite_context *ctx;
@@ -192,7 +193,7 @@ static void trusted_dom_info_recv_dcname(struct rpc_request *req)
        
        make_nbt_name(&name, state->info->dcs[0].name, 0x20);
        ctx = resolve_name_send(&name, state->service->task->event_ctx,
-                               lp_name_resolve_order());
+                               lp_name_resolve_order(global_loadparm));
 
        composite_continue(state->ctx, ctx, trusted_dom_info_recv_dcaddr,
                           state);
index da03f0d406f6ee936c5c537f2339d69cdb3dbfac..7d050d5c673182b9cb1024c7da585faf18eb01c8 100644 (file)
@@ -38,6 +38,7 @@
 #include "libcli/ldap/ldap_client.h"
 
 #include "auth/credentials/credentials.h"
+#include "param/param.h"
 
 /*
  * Initialize a domain:
@@ -150,7 +151,7 @@ struct composite_context *wb_init_domain_send(TALLOC_CTX *mem_ctx,
 
        cli_credentials_set_event_context(state->domain->libnet_ctx->cred, service->task->event_ctx);
 
-       cli_credentials_set_conf(state->domain->libnet_ctx->cred);
+       cli_credentials_set_conf(state->domain->libnet_ctx->cred, global_loadparm);
 
        /* Connect the machine account to the credentials */
        state->ctx->status =
@@ -162,14 +163,14 @@ struct composite_context *wb_init_domain_send(TALLOC_CTX *mem_ctx,
        state->domain->netlogon_pipe = NULL;
 
        if ((!cli_credentials_is_anonymous(state->domain->libnet_ctx->cred)) &&
-           ((lp_server_role() == ROLE_DOMAIN_MEMBER) ||
-            (lp_server_role() == ROLE_DOMAIN_CONTROLLER)) &&
+           ((lp_server_role(global_loadparm) == ROLE_DOMAIN_MEMBER) ||
+            (lp_server_role(global_loadparm) == ROLE_DOMAIN_CONTROLLER)) &&
            (dom_sid_equal(state->domain->info->sid,
                           state->service->primary_sid))) {
                state->domain->netlogon_binding->flags |= DCERPC_SCHANNEL;
 
                /* For debugging, it can be a real pain if all the traffic is encrypted */
-               if (lp_winbind_sealed_pipes()) {
+               if (lp_winbind_sealed_pipes(global_loadparm)) {
                        state->domain->netlogon_binding->flags |= (DCERPC_SIGN | DCERPC_SEAL );
                } else {
                        state->domain->netlogon_binding->flags |= (DCERPC_SIGN);
@@ -215,7 +216,7 @@ static void init_domain_recv_netlogonpipe(struct composite_context *ctx)
        state->domain->lsa_binding = init_domain_binding(state, &ndr_table_lsarpc);
 
        /* For debugging, it can be a real pain if all the traffic is encrypted */
-       if (lp_winbind_sealed_pipes()) {
+       if (lp_winbind_sealed_pipes(global_loadparm)) {
                state->domain->lsa_binding->flags |= (DCERPC_SIGN | DCERPC_SEAL );
        } else {
                state->domain->lsa_binding->flags |= (DCERPC_SIGN);
index 59399a9aef5ef5916480e2e5b500e62e72de4e46..5d7f7fd7a652b4ed10301bbc69485482d5108a62 100644 (file)
@@ -54,7 +54,7 @@ static NTSTATUS wb_irpc_SamLogon(struct irpc_message *msg,
        ctx->async.fn = wb_irpc_SamLogon_callback;
        ctx->async.private_data = s;
 
-       msg->defer_reply = True;
+       msg->defer_reply = true;
        return NT_STATUS_OK;
 }
 
index 4874254eff91002977f9f115adc79b7df41b872a..4a9be62228967ba84618a095e2fc1ea3a88c4299 100644 (file)
@@ -29,6 +29,7 @@
 #include "librpc/gen_ndr/ndr_netlogon.h"
 #include "librpc/gen_ndr/ndr_netlogon_c.h"
 #include "librpc/gen_ndr/winbind.h"
+#include "param/param.h"
 
 /* Oh, there is so much to keep an eye on when authenticating a user.  Oh my! */
 struct pam_auth_crap_state {
@@ -171,7 +172,7 @@ static void pam_auth_crap_recv_logon(struct composite_context *ctx)
 
        state->unix_username = talloc_asprintf(state, "%s%s%s", 
                                               state->domain_name,
-                                              lp_winbind_separator(),
+                                              lp_winbind_separator(global_loadparm),
                                               state->user_name);
        if (composite_nomem(state->unix_username, state->ctx)) return;
 
@@ -216,11 +217,11 @@ struct composite_context *wb_cmd_pam_auth_send(TALLOC_CTX *mem_ctx,
 
        DATA_BLOB chal, nt_resp, lm_resp, names_blob;
        int flags = CLI_CRED_NTLM_AUTH;
-       if (lp_client_lanman_auth()) {
+       if (lp_client_lanman_auth(global_loadparm)) {
                flags |= CLI_CRED_LANMAN_AUTH;
        }
 
-       if (lp_client_ntlmv2_auth()) {
+       if (lp_client_ntlmv2_auth(global_loadparm)) {
                flags |= CLI_CRED_NTLMv2_AUTH;
        }
 
@@ -230,7 +231,7 @@ struct composite_context *wb_cmd_pam_auth_send(TALLOC_CTX *mem_ctx,
        if (!credentials) {
                return NULL;
        }
-       cli_credentials_set_conf(credentials);
+       cli_credentials_set_conf(credentials, global_loadparm);
        cli_credentials_set_domain(credentials, domain, CRED_SPECIFIED);
        cli_credentials_set_username(credentials, user, CRED_SPECIFIED);
 
index af361794ed9a9919fb59d8d99dd883b46506ccf9..4c8a9f9355d7c654a6c02e952320209d390ff7b7 100644 (file)
@@ -21,8 +21,6 @@
 */
 
 #include "includes.h"
-#include "nsswitch/winbind_nss_config.h"
-#include "nsswitch/winbindd_nss.h"
 #include "winbind/wb_server.h"
 #include "winbind/wb_async_helpers.h"
 #include "winbind/wb_helper.h"
@@ -31,6 +29,7 @@
 #include "librpc/gen_ndr/netlogon.h"
 #include "libcli/security/security.h"
 #include "auth/pam_errors.h"
+#include "param/param.h"
 
 /* 
    Send off the reply to an async Samba3 query, handling filling in the PAM, NTSTATUS and string errors.
@@ -87,7 +86,7 @@ NTSTATUS wbsrv_samba3_interface_version(struct wbsrv_samba3_call *s3call)
 NTSTATUS wbsrv_samba3_info(struct wbsrv_samba3_call *s3call)
 {
        s3call->response.result                 = WINBINDD_OK;
-       s3call->response.data.info.winbind_separator = *lp_winbind_separator();
+       s3call->response.data.info.winbind_separator = *lp_winbind_separator(global_loadparm);
        WBSRV_SAMBA3_SET_STRING(s3call->response.data.info.samba_version,
                                SAMBA_VERSION_STRING);
        return NT_STATUS_OK;
@@ -97,7 +96,7 @@ NTSTATUS wbsrv_samba3_domain_name(struct wbsrv_samba3_call *s3call)
 {
        s3call->response.result                 = WINBINDD_OK;
        WBSRV_SAMBA3_SET_STRING(s3call->response.data.domain_name,
-                               lp_workgroup());
+                               lp_workgroup(global_loadparm));
        return NT_STATUS_OK;
 }
 
@@ -105,7 +104,7 @@ NTSTATUS wbsrv_samba3_netbios_name(struct wbsrv_samba3_call *s3call)
 {
        s3call->response.result                 = WINBINDD_OK;
        WBSRV_SAMBA3_SET_STRING(s3call->response.data.netbios_name,
-                               lp_netbios_name());
+                               lp_netbios_name(global_loadparm));
        return NT_STATUS_OK;
 }
 
@@ -113,7 +112,7 @@ NTSTATUS wbsrv_samba3_priv_pipe_dir(struct wbsrv_samba3_call *s3call)
 {
        s3call->response.result                 = WINBINDD_OK;
        s3call->response.extra_data.data =
-               smbd_tmp_path(s3call, WINBINDD_SAMBA3_PRIVILEGED_SOCKET);
+               smbd_tmp_path(s3call, global_loadparm, WINBINDD_SAMBA3_PRIVILEGED_SOCKET);
        NT_STATUS_HAVE_NO_MEMORY(s3call->response.extra_data.data);
        return NT_STATUS_OK;
 }
@@ -253,7 +252,7 @@ static void userdomgroups_recv_groups(struct composite_context *ctx)
        }
 
        for (i=0; i<num_sids; i++) {
-               sids_string = talloc_asprintf_append(
+               sids_string = talloc_asprintf_append_buffer(
                        sids_string, "%s\n", dom_sid_string(s3call, sids[i]));
        }
 
@@ -320,7 +319,7 @@ static void usersids_recv_sids(struct composite_context *ctx)
        }
 
        for (i=0; i<num_sids; i++) {
-               sids_string = talloc_asprintf_append(
+               sids_string = talloc_asprintf_append_buffer(
                        sids_string, "%s\n", dom_sid_string(s3call, sids[i]));
                if (sids_string == NULL) {
                        status = NT_STATUS_NO_MEMORY;
@@ -621,7 +620,7 @@ static void list_trustdom_recv_doms(struct composite_context *ctx)
        }
 
        for (i=0; i<num_domains; i++) {
-               result = talloc_asprintf_append(
+               result = talloc_asprintf_append_buffer(
                        result, "%s\\%s\\%s",
                        domains[i]->name, domains[i]->name,
                        dom_sid_string(s3call, domains[i]->sid));
index 9bf19ebf6ed68752c30a2198b21d7f0e379c3678..b252273cb63bdbd9eade1e57855e4da3d063c16a 100644 (file)
@@ -20,8 +20,6 @@
 */
 
 #include "includes.h"
-#include "nsswitch/winbind_nss_config.h"
-#include "nsswitch/winbindd_nss.h"
 #include "winbind/wb_server.h"
 #include "smbd/service_stream.h"
 #include "lib/stream/packet.h"
@@ -223,8 +221,8 @@ static NTSTATUS wbsrv_samba3_push_reply(struct wbsrv_samba3_call *call, TALLOC_C
        uint8_t *extra_data;
        size_t extra_data_len = 0;
 
-       extra_data = call->response.extra_data.data;
-       if (extra_data) {
+       extra_data = (uint8_t *)call->response.extra_data.data;
+       if (extra_data != NULL) {
                extra_data_len = call->response.length -
                        sizeof(call->response);
        }
index 3793275aa3da329c04f7d7a396700c75986e2e3e..6d002902d3046f30cec951db49b31858af1fa259 100644 (file)
@@ -31,6 +31,7 @@
 #include "lib/stream/packet.h"
 #include "smbd/service.h"
 #include "param/secrets.h"
+#include "param/param.h"
 
 void wbsrv_terminate_connection(struct wbsrv_connection *wbconn, const char *reason)
 {
@@ -128,7 +129,7 @@ static void winbind_task_init(struct task_server *task)
        }
 
        /* Make sure the directory for the Samba3 socket exists, and is of the correct permissions */
-       if (!directory_create_or_exist(lp_winbindd_socket_directory(), geteuid(), 0755)) {
+       if (!directory_create_or_exist(lp_winbindd_socket_directory(global_loadparm), geteuid(), 0755)) {
                task_server_terminate(task,
                                      "Cannot create winbindd pipe directory");
                return;
@@ -139,7 +140,7 @@ static void winbind_task_init(struct task_server *task)
        service->task   = task;
 
        service->primary_sid = secrets_get_domain_sid(service,
-                                                     lp_workgroup());
+                                                     lp_workgroup(global_loadparm));
        if (service->primary_sid == NULL) {
                task_server_terminate(
                        task, nt_errstr(NT_STATUS_CANT_ACCESS_DOMAIN_INFO));
@@ -150,11 +151,11 @@ static void winbind_task_init(struct task_server *task)
        listen_socket = talloc(service, struct wbsrv_listen_socket);
        if (!listen_socket) goto nomem;
        listen_socket->socket_path      = talloc_asprintf(listen_socket, "%s/%s", 
-                                                         lp_winbindd_socket_directory(), 
+                                                         lp_winbindd_socket_directory(global_loadparm), 
                                                          WINBINDD_SAMBA3_SOCKET);
        if (!listen_socket->socket_path) goto nomem;
        listen_socket->service          = service;
-       listen_socket->privileged       = False;
+       listen_socket->privileged       = false;
        status = stream_setup_socket(task->event_ctx, model_ops,
                                     &wbsrv_ops, "unix",
                                     listen_socket->socket_path, &port,
@@ -165,11 +166,11 @@ static void winbind_task_init(struct task_server *task)
        listen_socket = talloc(service, struct wbsrv_listen_socket);
        if (!listen_socket) goto nomem;
        listen_socket->socket_path      =
-               smbd_tmp_path(listen_socket,
+               smbd_tmp_path(listen_socket, global_loadparm, 
                              WINBINDD_SAMBA3_PRIVILEGED_SOCKET);
        if (!listen_socket->socket_path) goto nomem;
        listen_socket->service          = service;
-       listen_socket->privileged       = True;
+       listen_socket->privileged       = true;
        status = stream_setup_socket(task->event_ctx, model_ops,
                                     &wbsrv_ops, "unix",
                                     listen_socket->socket_path, &port,
index 7e9ee2feaeb44b4ea0a0d6ae74df3a6ea263cec9..369fe025a997952d058cb491587106de8996fb2a 100644 (file)
@@ -20,7 +20,7 @@
 */
 
 #include "nsswitch/winbind_nss_config.h"
-#include "nsswitch/winbindd_nss.h"
+#include "nsswitch/winbind_struct_protocol.h"
 #include "libnet/libnet.h"
 
 #define WINBINDD_SAMBA3_SOCKET "pipe"
index 257a1afdc0e719d21ab811a744011249ce2f4458..8336449602fc3e2716319f0f5ff72a0a6c7fb1fa 100644 (file)
@@ -26,6 +26,7 @@
 #include "winbind/wb_async_helpers.h"
 #include "libcli/security/security.h"
 #include "lib/util/dlinklist.h"
+#include "param/param.h"
 
 static struct wbsrv_domain *find_domain_from_sid(struct wbsrv_service *service,
                                                 const struct dom_sid *sid)
@@ -84,7 +85,7 @@ struct composite_context *wb_sid2domain_send(TALLOC_CTX *mem_ctx,
 
        if (dom_sid_equal(service->primary_sid, sid) ||
            dom_sid_in_domain(service->primary_sid, sid)) {
-               ctx = wb_get_dom_info_send(state, service, lp_workgroup(),
+               ctx = wb_get_dom_info_send(state, service, lp_workgroup(global_loadparm),
                                           service->primary_sid);
                if (ctx == NULL) goto failed;
                ctx->async.fn = sid2domain_recv_dom_info;
index 5938bb391d8b4c894c37e1725f5237a503edc011..dfd09a98feb6f325d3424d3c93db36c6884c1fc2 100644 (file)
 */
 
 #include "includes.h"
+#include "param/param.h"
 
 
 /* Split a domain\\user string into it's parts, because the client supplies it
  * as one string.
  * TODO: We probably will need to handle other formats later. */
 
-BOOL wb_samba3_split_username(TALLOC_CTX *mem_ctx, const char *domuser,
+bool wb_samba3_split_username(TALLOC_CTX *mem_ctx, const char *domuser,
                                 char **domain, char **user)
 {
-       char *p = strchr(domuser, *lp_winbind_separator());
+       char *p = strchr(domuser, *lp_winbind_separator(global_loadparm));
 
        if (p == NULL) {
-               *domain = talloc_strdup(mem_ctx, lp_workgroup());
+               *domain = talloc_strdup(mem_ctx, lp_workgroup(global_loadparm));
        } else {
                *domain = talloc_strndup(mem_ctx, domuser,
                                         PTR_DIFF(p, domuser));
index 2779bf02a3892ee2bac09e74b453dfa7f15c9bd9..380b77517fc557cac8c058c195b9edd91a77ca2f 100644 (file)
@@ -75,77 +75,77 @@ static enum _R_ACTION replace_same_owner(struct winsdb_record *r1, struct wrepl_
        return R_DO_REPLACE;
 }
 
-static BOOL r_1_is_subset_of_2_address_list(struct winsdb_record *r1, struct wrepl_name *r2, BOOL check_owners)
+static bool r_1_is_subset_of_2_address_list(struct winsdb_record *r1, struct wrepl_name *r2, bool check_owners)
 {
        uint32_t i,j;
        size_t len = winsdb_addr_list_length(r1->addresses);
 
        for (i=0; i < len; i++) {
-               BOOL found = False;
+               bool found = false;
                for (j=0; j < r2->num_addresses; j++) {
                        if (strcmp(r1->addresses[i]->address, r2->addresses[j].address) != 0) {
                                continue;
                        }
 
                        if (check_owners && strcmp(r1->addresses[i]->wins_owner, r2->addresses[j].owner) != 0) {
-                               return False;
+                               return false;
                        }
-                       found = True;
+                       found = true;
                        break;
                }
-               if (!found) return False;
+               if (!found) return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL r_1_is_superset_of_2_address_list(struct winsdb_record *r1, struct wrepl_name *r2, BOOL check_owners)
+static bool r_1_is_superset_of_2_address_list(struct winsdb_record *r1, struct wrepl_name *r2, bool check_owners)
 {
        uint32_t i,j;
        size_t len = winsdb_addr_list_length(r1->addresses);
 
        for (i=0; i < r2->num_addresses; i++) {
-               BOOL found = False;
+               bool found = false;
                for (j=0; j < len; j++) {
                        if (strcmp(r2->addresses[i].address, r1->addresses[j]->address) != 0) {
                                continue;
                        }
 
                        if (check_owners && strcmp(r2->addresses[i].owner, r1->addresses[j]->wins_owner) != 0) {
-                               return False;
+                               return false;
                        }
-                       found = True;
+                       found = true;
                        break;
                }
-               if (!found) return False;
+               if (!found) return false;
        }
 
-       return True;
+       return true;
 }
 
-static BOOL r_1_is_same_as_2_address_list(struct winsdb_record *r1, struct wrepl_name *r2, BOOL check_owners)
+static bool r_1_is_same_as_2_address_list(struct winsdb_record *r1, struct wrepl_name *r2, bool check_owners)
 {
        size_t len = winsdb_addr_list_length(r1->addresses);
 
        if (len != r2->num_addresses) {
-               return False;
+               return false;
        }
 
        return r_1_is_superset_of_2_address_list(r1, r2, check_owners);
 }
 
-static BOOL r_contains_addrs_from_owner(struct winsdb_record *r1, const char *owner)
+static bool r_contains_addrs_from_owner(struct winsdb_record *r1, const char *owner)
 {
        uint32_t i;
        size_t len = winsdb_addr_list_length(r1->addresses);
 
        for (i=0; i < len; i++) {
                if (strcmp(r1->addresses[i]->wins_owner, owner) == 0) {
-                       return True;
+                       return true;
                }
        }
 
-       return False;
+       return false;
 }
 
 /*
@@ -310,12 +310,12 @@ static enum _R_ACTION replace_sgroup_replica_vs_X_replica(struct winsdb_record *
                return R_NOT_REPLACE;
        }
 
-       if (r_1_is_superset_of_2_address_list(r1, r2, True)) {
+       if (r_1_is_superset_of_2_address_list(r1, r2, true)) {
                /* NOT REPLACE */
                return R_NOT_REPLACE;
        }
 
-       if (r_1_is_same_as_2_address_list(r1, r2, False)) {
+       if (r_1_is_same_as_2_address_list(r1, r2, false)) {
                /* REPLACE */
                return R_DO_REPLACE;
        }
@@ -433,7 +433,7 @@ static enum _R_ACTION replace_unique_owned_vs_X_replica(struct winsdb_record *r1
         * is unique,active,replica or mhomed,active,replica
         */
 
-       if (r_1_is_subset_of_2_address_list(r1, r2, False)) {
+       if (r_1_is_subset_of_2_address_list(r1, r2, false)) {
                /* 
                 * if r1 has a subset(or same) of the addresses of r2
                 * <=>
@@ -559,7 +559,7 @@ static enum _R_ACTION replace_sgroup_owned_vs_X_replica(struct winsdb_record *r1
                return R_DO_PROPAGATE;
        }
 
-       if (r_1_is_same_as_2_address_list(r1, r2, True)) {
+       if (r_1_is_same_as_2_address_list(r1, r2, true)) {
                /*
                 * as we're the old owner and the addresses and their
                 * owners are identical
@@ -645,7 +645,7 @@ static enum _R_ACTION replace_mhomed_owned_vs_X_replica(struct winsdb_record *r1
         * is unique,active,replica or mhomed,active,replica
         */
 
-       if (r_1_is_subset_of_2_address_list(r1, r2, False)) {
+       if (r_1_is_subset_of_2_address_list(r1, r2, false)) {
                /* 
                 * if r1 has a subset(or same) of the addresses of r2
                 * <=>
@@ -695,7 +695,7 @@ static NTSTATUS r_do_add(struct wreplsrv_partner *partner,
                                                      replica->addresses[i].address,
                                                      replica->addresses[i].owner,
                                                      rec->expire_time,
-                                                     False);
+                                                     false);
                NT_STATUS_HAVE_NO_MEMORY(rec->addresses);
        }
 
@@ -740,7 +740,7 @@ static NTSTATUS r_do_replace(struct wreplsrv_partner *partner,
                                                      replica->addresses[i].address,
                                                      replica->addresses[i].owner,
                                                      rec->expire_time,
-                                                     False);
+                                                     false);
                NT_STATUS_HAVE_NO_MEMORY(rec->addresses);
        }
 
@@ -842,17 +842,17 @@ static NTSTATUS r_do_mhomed_merge(struct wreplsrv_partner *partner,
                                                        replica->addresses[i].address,
                                                        replica->addresses[i].owner,
                                                        merge->expire_time,
-                                                       False);
+                                                       false);
                NT_STATUS_HAVE_NO_MEMORY(merge->addresses);
        }
 
        len = winsdb_addr_list_length(rec->addresses);
 
        for (i=0; i < len; i++) {
-               BOOL found = False;
+               bool found = false;
                for (j=0; j < replica->num_addresses; j++) {
                        if (strcmp(replica->addresses[j].address, rec->addresses[i]->address) == 0) {
-                               found = True;
+                               found = true;
                                break;
                        }
                }
@@ -863,7 +863,7 @@ static NTSTATUS r_do_mhomed_merge(struct wreplsrv_partner *partner,
                                                        rec->addresses[i]->address,
                                                        rec->addresses[i]->wins_owner,
                                                        rec->addresses[i]->expire_time,
-                                                       False);
+                                                       false);
                NT_STATUS_HAVE_NO_MEMORY(merge->addresses);
        }
 
@@ -955,9 +955,9 @@ static void r_do_challenge_handler(struct irpc_request *ireq)
        NTSTATUS status;
        struct r_do_challenge_state *state = talloc_get_type(ireq->async.private,
                                                             struct r_do_challenge_state);
-       BOOL old_is_subset = False;
-       BOOL new_is_subset = False;
-       BOOL found = False;
+       bool old_is_subset = false;
+       bool new_is_subset = false;
+       bool found = false;
        uint32_t i,j;
        uint32_t num_rec_addrs;
 
@@ -974,17 +974,17 @@ static void r_do_challenge_handler(struct irpc_request *ireq)
        }
 
        for (i=0; i < state->replica.num_addresses; i++) {
-               found = False;
-               new_is_subset = True;
+               found = false;
+               new_is_subset = true;
                for (j=0; j < state->r.out.num_addrs; j++) {
                        if (strcmp(state->replica.addresses[i].address, state->r.out.addrs[j].addr) == 0) {
-                               found = True;
+                               found = true;
                                break;
                        }
                }
                if (found) continue;
 
-               new_is_subset = False;
+               new_is_subset = false;
                break;
        }
 
@@ -996,17 +996,17 @@ static void r_do_challenge_handler(struct irpc_request *ireq)
 
        num_rec_addrs = winsdb_addr_list_length(state->rec->addresses);
        for (i=0; i < num_rec_addrs; i++) {
-               found = False;
-               old_is_subset = True;
+               found = false;
+               old_is_subset = true;
                for (j=0; j < state->r.out.num_addrs; j++) {
                        if (strcmp(state->rec->addresses[i]->address, state->r.out.addrs[j].addr) == 0) {
-                               found = True;
+                               found = true;
                                break;
                        }
                }
                if (found) continue;
 
-               old_is_subset = False;
+               old_is_subset = false;
                break;
        }
 
@@ -1189,8 +1189,8 @@ static NTSTATUS r_do_sgroup_merge(struct wreplsrv_partner *partner,
        uint32_t i,j;
        uint8_t ret;
        size_t len;
-       BOOL changed_old_addrs = False;
-       BOOL become_owner = True;
+       bool changed_old_addrs = false;
+       bool become_owner = true;
 
        merge = talloc(mem_ctx, struct winsdb_record);
        NT_STATUS_HAVE_NO_MEMORY(merge);
@@ -1210,17 +1210,17 @@ static NTSTATUS r_do_sgroup_merge(struct wreplsrv_partner *partner,
        len = winsdb_addr_list_length(rec->addresses);
 
        for (i=0; i < len; i++) {
-               BOOL found = False;
+               bool found = false;
 
                for (j=0; j < replica->num_addresses; j++) {
                        if (strcmp(rec->addresses[i]->address, replica->addresses[j].address) != 0) {
                                continue;
                        }
 
-                       found = True;
+                       found = true;
 
                        if (strcmp(rec->addresses[i]->wins_owner, replica->addresses[j].owner) != 0) {
-                               changed_old_addrs = True;
+                               changed_old_addrs = true;
                                break;
                        }
                        break;
@@ -1231,7 +1231,7 @@ static NTSTATUS r_do_sgroup_merge(struct wreplsrv_partner *partner,
                 * it won't be added to the merged record
                 */
                if (!found && strcmp(rec->addresses[i]->wins_owner, owner->address) == 0) {
-                       changed_old_addrs = True;
+                       changed_old_addrs = true;
                        continue;
                }
 
@@ -1245,7 +1245,7 @@ static NTSTATUS r_do_sgroup_merge(struct wreplsrv_partner *partner,
                                                        rec->addresses[i]->address,
                                                        rec->addresses[i]->wins_owner,
                                                        rec->addresses[i]->expire_time,
-                                                       False);
+                                                       false);
                NT_STATUS_HAVE_NO_MEMORY(merge->addresses);
        }
 
@@ -1255,18 +1255,18 @@ static NTSTATUS r_do_sgroup_merge(struct wreplsrv_partner *partner,
                                                        replica->addresses[i].address,
                                                        replica->addresses[i].owner,
                                                        merge->expire_time,
-                                                       False);
+                                                       false);
                NT_STATUS_HAVE_NO_MEMORY(merge->addresses);
        }
 
        /* we the old addresses change changed we don't become the owner */
        if (changed_old_addrs) {
-               become_owner = False;
+               become_owner = false;
        }
 
        /* if we're the owner of the old record, we'll be the owner of the new one too */
        if (strcmp(rec->wins_owner, partner->service->wins_db->local_owner)==0) {
-               become_owner = True;
+               become_owner = true;
        }
 
        /*
@@ -1274,7 +1274,7 @@ static NTSTATUS r_do_sgroup_merge(struct wreplsrv_partner *partner,
         */
        len = winsdb_addr_list_length(merge->addresses);
        if (len == 0) {
-               become_owner = True;
+               become_owner = true;
        }
 
        /* 
@@ -1306,9 +1306,9 @@ static NTSTATUS wreplsrv_apply_one_record(struct wreplsrv_partner *partner,
        NTSTATUS status;
        struct winsdb_record *rec = NULL;
        enum _R_ACTION action = R_INVALID;
-       BOOL same_owner = False;
-       BOOL replica_vs_replica = False;
-       BOOL local_vs_replica = False;
+       bool same_owner = false;
+       bool replica_vs_replica = false;
+       bool local_vs_replica = false;
 
        status = winsdb_lookup(partner->service->wins_db,
                               &replica->name, mem_ctx, &rec);
@@ -1318,11 +1318,11 @@ static NTSTATUS wreplsrv_apply_one_record(struct wreplsrv_partner *partner,
        NT_STATUS_NOT_OK_RETURN(status);
 
        if (strcmp(rec->wins_owner, partner->service->wins_db->local_owner)==0) {
-               local_vs_replica = True;
+               local_vs_replica = true;
        } else if (strcmp(rec->wins_owner, owner->address)==0) {
-               same_owner = True;
+               same_owner = true;
        } else {
-               replica_vs_replica = True;
+               replica_vs_replica = true;
        }
 
        if (rec->is_static && !same_owner) {
index 75ac4a6e31e9794cf632571901014e4565a0b95f..0508c306e01997839069e26c9ec2417eadcc745e 100644 (file)
@@ -61,7 +61,7 @@ static NTSTATUS wreplsrv_in_start_association(struct wreplsrv_in_call *call)
        }
 #endif
 
-       call->wreplconn->assoc_ctx.stopped      = False;
+       call->wreplconn->assoc_ctx.stopped      = false;
        call->wreplconn->assoc_ctx.our_ctx      = WREPLSRV_VALID_ASSOC_CTX;
        call->wreplconn->assoc_ctx.peer_ctx     = start->assoc_ctx;
 
@@ -90,7 +90,7 @@ static NTSTATUS wreplsrv_in_stop_assoc_ctx(struct wreplsrv_in_call *call)
 {
        struct wrepl_stop *stop_out             = &call->rep_packet.message.stop;
 
-       call->wreplconn->assoc_ctx.stopped      = True;
+       call->wreplconn->assoc_ctx.stopped      = true;
 
        call->rep_packet.mess_type              = WREPL_STOP_ASSOCIATION;
        stop_out->reason                        = 4;
@@ -120,7 +120,7 @@ static NTSTATUS wreplsrv_in_stop_association(struct wreplsrv_in_call *call)
        }
 
        /* this will cause to not receive packets anymore and terminate the connection if the reply is send */
-       call->terminate_after_send = True;
+       call->terminate_after_send = true;
        return wreplsrv_in_stop_assoc_ctx(call);
 }
 
@@ -133,7 +133,7 @@ static NTSTATUS wreplsrv_in_table_query(struct wreplsrv_in_call *call)
        repl_out->command = WREPL_REPL_TABLE_REPLY;
 
        return wreplsrv_fill_wrepl_table(service, call, table_out,
-                                        service->wins_db->local_owner, True);
+                                        service->wins_db->local_owner, true);
 }
 
 static int wreplsrv_in_sort_wins_name(struct wrepl_wins_name *n1,
index 9b0f5522e518239d70d750f241a330d228e5f4ee..1178eb766ea667debf0f8f41f9193c4fb5299c46 100644 (file)
@@ -31,6 +31,7 @@
 #include "smbd/process_model.h"
 #include "system/network.h"
 #include "lib/socket/netif.h"
+#include "param/param.h"
 
 void wreplsrv_terminate_in_connection(struct wreplsrv_in_connection *wreplconn, const char *reason)
 {
@@ -269,7 +270,7 @@ NTSTATUS wreplsrv_setup_sockets(struct wreplsrv_service *service)
                return NT_STATUS_INTERNAL_ERROR;
        }
 
-       if (lp_interfaces() && lp_bind_interfaces_only()) {
+       if (lp_interfaces(global_loadparm) && lp_bind_interfaces_only(global_loadparm)) {
                int num_interfaces = iface_count();
                int i;
 
@@ -288,7 +289,7 @@ NTSTATUS wreplsrv_setup_sockets(struct wreplsrv_service *service)
                        }
                }
        } else {
-               address = lp_socket_address();
+               address = lp_socket_address(global_loadparm);
                status = stream_setup_socket(task->event_ctx, model_ops, &wreplsrv_stream_ops,
                                             "ipv4", address, &port, service);
                if (!NT_STATUS_IS_OK(status)) {
index 9675c5abd0f142acd1da385b4b03841695610b49..2599ef4d09851c90319df3a5a5c651098a23cafc 100644 (file)
@@ -138,7 +138,7 @@ static struct composite_context *wreplsrv_out_connect_send(struct wreplsrv_partn
        struct wreplsrv_service *service = partner->service;
        struct wreplsrv_out_connect_state *state = NULL;
        struct wreplsrv_out_connection **wreplconnp = &wreplconn;
-       BOOL cached_connection = False;
+       bool cached_connection = false;
 
        c = talloc_zero(partner, struct composite_context);
        if (!c) goto failed;
@@ -153,11 +153,11 @@ static struct composite_context *wreplsrv_out_connect_send(struct wreplsrv_partn
        c->private_data = state;
 
        if (type == WINSREPL_PARTNER_PUSH) {
-               cached_connection       = True;
+               cached_connection       = true;
                wreplconn               = partner->push.wreplconn;
                wreplconnp              = &partner->push.wreplconn;
        } else if (type == WINSREPL_PARTNER_PULL) {
-               cached_connection       = True;
+               cached_connection       = true;
                wreplconn               = partner->pull.wreplconn;
                wreplconnp              = &partner->pull.wreplconn;
        }
@@ -572,7 +572,7 @@ static NTSTATUS wreplsrv_pull_cycle_next_owner_do_work(struct wreplsrv_pull_cycl
        struct wreplsrv_owner *local_owner;
        uint32_t i;
        uint64_t old_max_version = 0;
-       BOOL do_pull = False;
+       bool do_pull = false;
 
        for (i=state->current; i < state->table_io.out.num_owners; i++) {
                current_owner = wreplsrv_find_owner(state->io->in.partner->service,
@@ -593,7 +593,7 @@ static NTSTATUS wreplsrv_pull_cycle_next_owner_do_work(struct wreplsrv_pull_cycl
                 * so fetch them
                 */
                if (!local_owner) {
-                       do_pull         = True;
+                       do_pull         = true;
                        
                        break;
                }
@@ -603,7 +603,7 @@ static NTSTATUS wreplsrv_pull_cycle_next_owner_do_work(struct wreplsrv_pull_cycl
                 * fetch them
                 */
                if (current_owner->owner.max_version > local_owner->owner.max_version) {
-                       do_pull         = True;
+                       do_pull         = true;
                        old_max_version = local_owner->owner.max_version;
                        break;
                }
@@ -829,7 +829,7 @@ struct wreplsrv_push_notify_state {
        struct composite_context *c;
        struct wreplsrv_push_notify_io *io;
        enum wrepl_replication_cmd command;
-       BOOL full_table;
+       bool full_table;
        struct wrepl_send_ctrl ctrl;
        struct wrepl_request *req;
        struct wrepl_packet req_packet;
@@ -946,7 +946,7 @@ static NTSTATUS wreplsrv_push_notify_inform(struct wreplsrv_push_notify_state *s
        NT_STATUS_NOT_OK_RETURN(status);
 
        /* we won't get a reply to a inform message */
-       state->ctrl.send_only           = True;
+       state->ctrl.send_only           = true;
 
        state->req = wrepl_request_send(state->wreplconn->sock, req, &state->ctrl);
        NT_STATUS_HAVE_NO_MEMORY(state->req);
@@ -968,16 +968,16 @@ static NTSTATUS wreplsrv_push_notify_wait_connect(struct wreplsrv_push_notify_st
 
        switch (state->command) {
        case WREPL_REPL_UPDATE:
-               state->full_table = True;
+               state->full_table = true;
                return wreplsrv_push_notify_update(state);
        case WREPL_REPL_UPDATE2:
-               state->full_table = False;
+               state->full_table = false;
                return wreplsrv_push_notify_update(state);
        case WREPL_REPL_INFORM:
-               state->full_table = True;
+               state->full_table = true;
                return wreplsrv_push_notify_inform(state);
        case WREPL_REPL_INFORM2:
-               state->full_table = False;
+               state->full_table = false;
                return wreplsrv_push_notify_inform(state);
        default:
                return NT_STATUS_INTERNAL_ERROR;
index 897b515f77d145b4001532cb67e0e4d8c10ae00a..8f0c409662e42abfcbc2028027cd72fff8351e80 100644 (file)
@@ -25,7 +25,7 @@
 #include "libcli/composite/composite.h"
 #include "nbt_server/wins/winsdb.h"
 
-static void wreplsrv_out_partner_push(struct wreplsrv_partner *partner, BOOL propagate);
+static void wreplsrv_out_partner_push(struct wreplsrv_partner *partner, bool propagate);
 
 static void wreplsrv_push_handler_creq(struct composite_context *creq)
 {
@@ -62,7 +62,7 @@ done:
        talloc_free(old_notify_io);
 }
 
-static void wreplsrv_out_partner_push(struct wreplsrv_partner *partner, BOOL propagate)
+static void wreplsrv_out_partner_push(struct wreplsrv_partner *partner, bool propagate)
 {
        /* a push for this partner is currently in progress, so we're done */
        if (partner->push.creq) return;
@@ -137,7 +137,7 @@ NTSTATUS wreplsrv_out_push_run(struct wreplsrv_service *service)
                /* if the configured change count isn't reached, go to the next partner */
                if (change_count < partner->push.change_count) continue;
 
-               wreplsrv_out_partner_push(partner, False);
+               wreplsrv_out_partner_push(partner, false);
        }
 
        return NT_STATUS_OK;
index 9b4ae18fe79a9f5e01a9417907602e5f17fc794b..a5cd36797d5193cf8a08a3ea69075b0ce2eed278 100644 (file)
@@ -59,9 +59,9 @@ static NTSTATUS wreplsrv_scavenging_owned_records(struct wreplsrv_service *servi
        const char *old_state=NULL;
        const char *new_state=NULL;
        uint32_t modify_flags;
-       BOOL modify_record;
-       BOOL delete_record;
-       BOOL delete_tombstones;
+       bool modify_record;
+       bool delete_record;
+       bool delete_tombstones;
        struct timeval tombstone_extra_time;
 
        now_timestr = ldb_timestring(tmp_mem, now);
@@ -94,8 +94,8 @@ static NTSTATUS wreplsrv_scavenging_owned_records(struct wreplsrv_service *servi
                talloc_free(res->msgs[i]);
 
                modify_flags    = 0;
-               modify_record   = False;
-               delete_record   = False;
+               modify_record   = false;
+               delete_record   = false;
 
                switch (rec->state) {
                case WREPL_STATE_ACTIVE:
@@ -107,7 +107,7 @@ static NTSTATUS wreplsrv_scavenging_owned_records(struct wreplsrv_service *servi
                                rec->expire_time= service->config.tombstone_interval + now;
                        }
                        modify_flags    = 0;
-                       modify_record   = True;
+                       modify_record   = true;
                        break;
 
                case WREPL_STATE_RELEASED:
@@ -116,7 +116,7 @@ static NTSTATUS wreplsrv_scavenging_owned_records(struct wreplsrv_service *servi
                        rec->state      = WREPL_STATE_TOMBSTONE;
                        rec->expire_time= service->config.tombstone_timeout + now;
                        modify_flags    = WINSDB_FLAG_ALLOC_VERSION | WINSDB_FLAG_TAKE_OWNERSHIP;
-                       modify_record   = True;
+                       modify_record   = true;
                        break;
 
                case WREPL_STATE_TOMBSTONE:
@@ -124,7 +124,7 @@ static NTSTATUS wreplsrv_scavenging_owned_records(struct wreplsrv_service *servi
                        new_state       = "tombstone";
                        if (!delete_tombstones) break;
                        new_state       = "deleted";
-                       delete_record = True;
+                       delete_record = true;
                        break;
 
                case WREPL_STATE_RESERVED:
@@ -173,9 +173,9 @@ static NTSTATUS wreplsrv_scavenging_replica_non_active_records(struct wreplsrv_s
        const char *old_state=NULL;
        const char *new_state=NULL;
        uint32_t modify_flags;
-       BOOL modify_record;
-       BOOL delete_record;
-       BOOL delete_tombstones;
+       bool modify_record;
+       bool delete_record;
+       bool delete_tombstones;
        struct timeval tombstone_extra_time;
 
        now_timestr = ldb_timestring(tmp_mem, now);
@@ -208,8 +208,8 @@ static NTSTATUS wreplsrv_scavenging_replica_non_active_records(struct wreplsrv_s
                talloc_free(res->msgs[i]);
 
                modify_flags    = 0;
-               modify_record   = False;
-               delete_record   = False;
+               modify_record   = false;
+               delete_record   = false;
 
                switch (rec->state) {
                case WREPL_STATE_ACTIVE:
@@ -223,7 +223,7 @@ static NTSTATUS wreplsrv_scavenging_replica_non_active_records(struct wreplsrv_s
                        rec->state      = WREPL_STATE_TOMBSTONE;
                        rec->expire_time= service->config.tombstone_timeout + now;
                        modify_flags    = 0;
-                       modify_record   = True;
+                       modify_record   = true;
                        break;
 
                case WREPL_STATE_TOMBSTONE:
@@ -231,7 +231,7 @@ static NTSTATUS wreplsrv_scavenging_replica_non_active_records(struct wreplsrv_s
                        new_state       = "tombstone";
                        if (!delete_tombstones) break;
                        new_state       = "deleted";
-                       delete_record = True;
+                       delete_record = true;
                        break;
 
                case WREPL_STATE_RESERVED:
@@ -282,9 +282,9 @@ static void verify_handler(struct irpc_request *ireq)
        const char *new_state = "active";
        const char *new_owner = "replica";
        uint32_t modify_flags = 0;
-       BOOL modify_record = False;
-       BOOL delete_record = False;
-       BOOL different = False;
+       bool modify_record = false;
+       bool delete_record = false;
+       bool different = false;
        int ret;
        NTSTATUS status;
        uint32_t i, j;
@@ -298,25 +298,25 @@ static void verify_handler(struct irpc_request *ireq)
         */
        status = irpc_call_recv(ireq);
        if (NT_STATUS_EQUAL(NT_STATUS_OBJECT_NAME_NOT_FOUND, status)) {
-               delete_record = True;
+               delete_record = true;
                new_state = "deleted";
        } else if (NT_STATUS_IS_OK(status) && rec->type != WREPL_TYPE_GROUP) {
                for (i=0; i < s->r.out.num_addrs; i++) {
-                       BOOL found = False;
+                       bool found = false;
                        for (j=0; rec->addresses[j]; j++) {
                                if (strcmp(s->r.out.addrs[i].addr, rec->addresses[j]->address) == 0) {
-                                       found = True;
+                                       found = true;
                                        break;
                                }
                        }
                        if (!found) {
-                               different = True;
+                               different = true;
                                break;
                        }
                }
        } else if (NT_STATUS_IS_OK(status) && rec->type == WREPL_TYPE_GROUP) {
                if (s->r.out.num_addrs != 1 || strcmp(s->r.out.addrs[0].addr, "255.255.255.255") != 0) {
-                       different = True;
+                       different = true;
                }
        }
 
@@ -336,7 +336,7 @@ static void verify_handler(struct irpc_request *ireq)
                for (i=0; rec->addresses[i]; i++) {
                        rec->addresses[i]->expire_time = rec->expire_time;
                }
-               modify_record   = True;
+               modify_record   = true;
                modify_flags    = WINSDB_FLAG_ALLOC_VERSION | WINSDB_FLAG_TAKE_OWNERSHIP;
                new_state       = "tombstone";
                new_owner       = "owned";
@@ -346,7 +346,7 @@ static void verify_handler(struct irpc_request *ireq)
                for (i=0; rec->addresses[i]; i++) {
                        rec->addresses[i]->expire_time = rec->expire_time;
                }
-               modify_record   = True;
+               modify_record   = true;
                modify_flags    = 0;
                new_state       = "active";
        }
@@ -468,14 +468,14 @@ NTSTATUS wreplsrv_scavenging_run(struct wreplsrv_service *service)
 {
        NTSTATUS status;
        TALLOC_CTX *tmp_mem;
-       BOOL skip_first_run = False;
+       bool skip_first_run = false;
 
        if (!timeval_expired(&service->scavenging.next_run)) {
                return NT_STATUS_OK;
        }
 
        if (timeval_is_zero(&service->scavenging.next_run)) {
-               skip_first_run = True;
+               skip_first_run = true;
        }
 
        service->scavenging.next_run = timeval_current_ofs(service->config.scavenging_interval, 0);
@@ -498,25 +498,25 @@ NTSTATUS wreplsrv_scavenging_run(struct wreplsrv_service *service)
 
        tmp_mem = talloc_new(service);
        NT_STATUS_HAVE_NO_MEMORY(tmp_mem);
-       service->scavenging.processing = True;
+       service->scavenging.processing = true;
        status = wreplsrv_scavenging_owned_records(service,tmp_mem);
-       service->scavenging.processing = False;
+       service->scavenging.processing = false;
        talloc_free(tmp_mem);
        NT_STATUS_NOT_OK_RETURN(status);
 
        tmp_mem = talloc_new(service);  
        NT_STATUS_HAVE_NO_MEMORY(tmp_mem);
-       service->scavenging.processing = True;
+       service->scavenging.processing = true;
        status = wreplsrv_scavenging_replica_non_active_records(service, tmp_mem);
-       service->scavenging.processing = False;
+       service->scavenging.processing = false;
        talloc_free(tmp_mem);
        NT_STATUS_NOT_OK_RETURN(status);
 
        tmp_mem = talloc_new(service);
        NT_STATUS_HAVE_NO_MEMORY(tmp_mem);
-       service->scavenging.processing = True;
+       service->scavenging.processing = true;
        status = wreplsrv_scavenging_replica_active_records(service, tmp_mem);
-       service->scavenging.processing = False;
+       service->scavenging.processing = false;
        talloc_free(tmp_mem);
        NT_STATUS_NOT_OK_RETURN(status);
 
index dfbc97a6b7f53df3affb45be9855b5382186e426..be606b2a0cceee5c244d32e77bd150e114d294fe 100644 (file)
 #include "ldb/include/ldb_errors.h"
 #include "auth/auth.h"
 #include "db_wrap.h"
+#include "param/param.h"
 
 static struct ldb_context *wins_config_db_connect(TALLOC_CTX *mem_ctx)
 {
-       return ldb_wrap_connect(mem_ctx, private_path(mem_ctx, lp_wins_config_url()),
+       return ldb_wrap_connect(mem_ctx, global_loadparm, private_path(mem_ctx, 
+                               global_loadparm, 
+                               lp_wins_config_url(global_loadparm)),
                                system_session(mem_ctx), NULL, 0, NULL);
 }
 
@@ -81,26 +84,26 @@ static NTSTATUS wreplsrv_open_winsdb(struct wreplsrv_service *service)
        }
 
        /* the default renew interval is 6 days */
-       service->config.renew_interval    = lp_parm_int(-1,"wreplsrv","renew_interval", 6*24*60*60);
+       service->config.renew_interval    = lp_parm_int(global_loadparm, NULL,"wreplsrv","renew_interval", 6*24*60*60);
 
        /* the default tombstone (extinction) interval is 6 days */
-       service->config.tombstone_interval= lp_parm_int(-1,"wreplsrv","tombstone_interval", 6*24*60*60);
+       service->config.tombstone_interval= lp_parm_int(global_loadparm, NULL,"wreplsrv","tombstone_interval", 6*24*60*60);
 
        /* the default tombstone (extinction) timeout is 1 day */
-       service->config.tombstone_timeout = lp_parm_int(-1,"wreplsrv","tombstone_timeout", 1*24*60*60);
+       service->config.tombstone_timeout = lp_parm_int(global_loadparm, NULL,"wreplsrv","tombstone_timeout", 1*24*60*60);
 
        /* the default tombstone extra timeout is 3 days */
-       service->config.tombstone_extra_timeout = lp_parm_int(-1,"wreplsrv","tombstone_extra_timeout", 3*24*60*60);
+       service->config.tombstone_extra_timeout = lp_parm_int(global_loadparm, NULL,"wreplsrv","tombstone_extra_timeout", 3*24*60*60);
 
        /* the default verify interval is 24 days */
-       service->config.verify_interval   = lp_parm_int(-1,"wreplsrv","verify_interval", 24*24*60*60);
+       service->config.verify_interval   = lp_parm_int(global_loadparm, NULL,"wreplsrv","verify_interval", 24*24*60*60);
 
        /* the default scavenging interval is 'renew_interval/2' */
-       service->config.scavenging_interval=lp_parm_int(-1,"wreplsrv","scavenging_interval",
+       service->config.scavenging_interval=lp_parm_int(global_loadparm, NULL,"wreplsrv","scavenging_interval",
                                                        service->config.renew_interval/2);
 
        /* the maximun interval to the next periodic processing event */
-       service->config.periodic_interval = lp_parm_int(-1,"wreplsrv","periodic_interval", 15);
+       service->config.periodic_interval = lp_parm_int(global_loadparm, NULL,"wreplsrv","periodic_interval", 15);
 
        return NT_STATUS_OK;
 }
@@ -195,7 +198,7 @@ NTSTATUS wreplsrv_load_partners(struct wreplsrv_service *service)
                                                                    WINSREPL_DEFAULT_PULL_RETRY_INTERVAL);
                partner->push.change_count      = ldb_msg_find_attr_as_uint(res->msgs[i], "pushChangeCount",
                                                                    WINSREPL_DEFAULT_PUSH_CHANGE_COUNT);
-               partner->push.use_inform        = ldb_msg_find_attr_as_uint(res->msgs[i], "pushUseInform", False);
+               partner->push.use_inform        = ldb_msg_find_attr_as_uint(res->msgs[i], "pushUseInform", false);
 
                DEBUG(3,("wreplsrv_load_partners: found partner: %s type: 0x%X\n",
                        partner->address, partner->type));
@@ -215,7 +218,7 @@ NTSTATUS wreplsrv_fill_wrepl_table(struct wreplsrv_service *service,
                                   TALLOC_CTX *mem_ctx,
                                   struct wrepl_table *table_out,
                                   const char *initiator,
-                                  BOOL full_table)
+                                  bool full_table)
 {
        struct wreplsrv_owner *cur;
        uint32_t i = 0;
@@ -493,7 +496,7 @@ static void wreplsrv_task_init(struct task_server *task)
  */
 static NTSTATUS wreplsrv_init(struct event_context *event_ctx, const struct model_ops *model_ops)
 {
-       if (!lp_wins_support()) {
+       if (!lp_wins_support(global_loadparm)) {
                return NT_STATUS_OK;
        }
 
diff --git a/swat/cldap_server/index.esp b/swat/cldap_server/index.esp
new file mode 100644 (file)
index 0000000..1ede088
--- /dev/null
@@ -0,0 +1,13 @@
+<% page_header("columns", "CLDAP Server", "servers"); 
+
+  libinclude("base.js");
+  libinclude("management.js");
+%>
+
+<h1>CLDAP Server</h1>
+
+<%
+writefln("Status: %s\n", server_status("cldap"));
+%>
+
+<% page_footer(); %>
diff --git a/swat/desktop/index.esp b/swat/desktop/index.esp
new file mode 100644 (file)
index 0000000..1dee4d3
--- /dev/null
@@ -0,0 +1,261 @@
+<% 
+libinclude("base.js");
+       page_header("desktop", "Virtual Desktop Design Test", "desktop");
+%>
+
+<script type="text/javascript" src="/scripting/client/encoder.js"></script>
+<script type="text/javascript" src="/scripting/client/call.js"></script>
+<script type="text/javascript" src="/scripting/client/js_scripts.js"></script>
+<script type="text/javascript" src="/scripting/client/desktop.js"></script>
+<script type="text/javascript" src="/scripting/client/status.js"></script>
+<script type="text/javascript" src="/scripting/client/regedit.js"></script>
+
+<script type="text/javascript">
+
+function showMessage(m)
+{
+       var message = new QxWindow();
+       with(message) {
+               setWidth(300);
+               setTop("35%");
+               setLeft("35%");
+               setShowMaximize(false);
+               setShowMinimize(false);
+       }
+
+       var note = new QxAtom(m);
+       with(note) {
+               setTop(10);
+               setLeft(10);
+       }
+
+       var ok = new QxButton("OK");
+       with(ok) {
+               setLeft("42%");
+               setBottom(2);
+       }
+       ok.addEventListener("click", function() {
+               doc.remove(message);
+       });
+
+       message.add(note);
+       message.add(ok);
+       doc.add(message);
+       message.setVisible(true);
+}
+
+function blankW()
+{
+       var blank = new Window.standard('SWAT');
+       doc.add(blank);
+       blank.setVisible(true);
+}
+
+function showReg()
+{
+       document.js.add('/scripting/client/regedit.js');
+
+       var regWin = new QxWindow("Registry Editor");
+       regWin._onclosebuttonclick = function(e)
+       {
+               this.close();
+               e.stopPropagation();
+               document.js.remove('/scripting/client/regedit.js');
+       };
+       with(regWin) {
+               setTop(100);
+               setLeft(100);
+               setMinWidth(450);
+               setMinHeight(450);
+       }
+       
+       var regedit = regedit_widget("ncalrpc:");
+       regWin.add(regedit);
+       doc.add(regWin);
+       regWin.setVisible('true');
+}
+
+function clientContextMenu(e)
+{
+       var aboutCmd = new QxCommand();
+       aboutCmd.addEventListener("execute", function() {
+               showMessage("SWAT, the Samba Web Administration Tool.<br/>This tool is currently under development.");
+       });
+
+       var newWin = new QxCommand();
+       newWin.addEventListener("execute", blankW);
+
+       var cmenu = new QxMenu;
+
+       var sub1 = new QxMenuButton("About SWAT", null, aboutCmd);
+       var sep = new QxMenuSeparator();
+       var sub2 = new QxMenuButton("New Window", null, newWin);
+
+       cmenu.add(sub1, sep, sub2);
+
+       cmenu.setLeft(e.getClientX());
+       cmenu.setTop(e.getClientY());
+       doc.add(cmenu);
+       cmenu.setVisible(true);
+}
+
+function windowContextMenu(t, e)
+{
+       var WinWin = new QxCommand();
+       WinWin.addEventListener("execute", function() {
+               var blank = new QxWindow();
+               t.add(blank);
+               blank.setVisible(true);
+       }); 
+
+       var inset = new QxMenu;
+       var sub1 = new QxMenuButton("Open window in a window", null, WinWin);
+
+       inset.add(sub1);
+       t.add(inset)
+
+       inset.setVisible(true);
+}
+
+function startMenu() 
+{
+       var sMenu = new QxMenu;
+       with(sMenu) {
+               setWidth(150);
+               setHeight(150);
+       }
+
+       var srvMenu = new QxMenu;
+       var srv1 = new QxMenuButton("LDAP Server", null);
+       var srv2 = new QxMenuButton("CDAP Server", null);
+       var srv3 = new QxMenuButton("RPC Server", null);
+       var srv4 = new QxMenuButton("NBT Server", null);
+       var srv5 = new QxMenuButton("WINS Server", null);
+       var srv6 = new QxMenuButton("Kerberos Server", null);
+       srvMenu.add(srv1, srv2, srv3, srv4, srv5, srv6);
+       doc.add(srvMenu);
+       srvMenu.setVisible(false);
+
+       var editReg = new QxCommand;
+       editReg.addEventListener("execute", function() {
+               showReg();
+       });
+
+       var espMenu = new QxMenu;
+       var esp1 = new QxMenuButton("Registry Editor", null, editReg);
+       espMenu.add(esp1);
+       doc.add(espMenu);
+       espMenu.setVisible(false);
+
+       var opt1 = new QxMenuButton("Servers", null)
+       opt1.addEventListener("mouseover", function() {
+               srvMenu.setVisible(true);
+               srvMenu.setLeft(this.getComputedPageBoxRight() + 4);
+               srvMenu.setTop(this.getComputedPageBoxTop() - 3);
+               if (espMenu.getVisible()) {
+                       espMenu.setVisible(false);
+               } else if (newMenu.getVisible()) {
+                       newMenu.setVisible(false);
+               }
+       }); 
+
+       var openWin = new QxCommand;
+       openWin.addEventListener("execute", function() {
+               blankW();
+       });
+
+       var newMenu = new QxMenu;
+       var new1 = new QxMenuButton("Window", null, openWin);
+       newMenu.add(new1);
+       doc.add(newMenu);
+       newMenu.setVisible(false);
+
+       var opt2 = new QxMenuButton("Installation", null);
+       var opt3 = new QxMenuButton("Configuration", null);
+       var opt4 = new QxMenuButton("ESP Tests", null);
+       opt4.addEventListener("mouseover", function() {
+               espMenu.setVisible(true);
+               espMenu.setLeft(this.getComputedPageBoxRight() + 4);
+               espMenu.setTop(this.getComputedPageBoxTop() - 3);
+               if (srvMenu.getVisible()) {
+                       srvMenu.setVisible(false);
+               } else if (newMenu.getVisible()) {
+                       newMenu.setVisible(false);
+               }
+       }); 
+       var opt5 = new QxMenuButton("Documentation", null);
+       var opt6 = new QxMenuButton("New", null);
+       opt6.addEventListener("mouseover", function() {
+               newMenu.setVisible(true);
+               newMenu.setLeft(this.getComputedPageBoxRight() + 4);
+               newMenu.setTop(this.getComputedPageBoxTop() - 3);
+               if (srvMenu.getVisible()) {
+                       srvMenu.setVisible(false);
+               } else if (espMenu.getVisible()) {
+                       espMenu.setVisible(false);
+               }
+       }); 
+       var sep1 = new QxMenuSeparator();
+       var sep2 = new QxMenuSeparator();
+
+       sMenu.add(opt1, opt2, opt3, sep1, opt4, sep2, opt5, opt6);
+       sMenu.setLeft(0);
+       sMenu.setTop(docY() - 150);
+       doc.add(sMenu);
+       sMenu.setVisible(true);
+}
+
+function contextMenu(e)
+{      
+       var t = e.getTarget()
+       var tObj = t.getHtmlAttribute("class")
+
+       if (tObj == 'QxClientDocument QxThemeWin9x') {
+               clientContextMenu(e);
+       } else if (tObj == 'QxWindowPane') {
+               windowContextMenu(t, e);
+       }
+}
+
+window.application.main = function()
+{
+       doc = this.getClientWindow().getClientDocument();
+       doc.addEventListener("contextmenu", contextMenu);
+
+       var bar = new QxMenuBar;
+       with (bar) {
+               setBottom(0);
+               setLeft(0);
+               setWidth("100%");
+               setHeight(25);
+               setBackgroundColor("ThreeDFace");
+       }
+
+       var start = new QxMenuButton("START");
+       start.addEventListener("click", function() {
+               startMenu();
+       });
+       bar.add(start);
+
+       doc.add(bar);
+
+       // Always open with stats
+       var win = new QxWindow();
+       document.js.add('/scripting/client/status.js');
+       win._onclosebuttonclick = function(e)
+       {
+               this.close();
+               e.stopPropagation();
+               document.js.remove('/scripting/client/status.js');
+       };
+       with(win) {
+               setTop(50);
+               setRight(50);
+               setHeight(175);
+       }
+       doc.add(win);
+       getServerStatus(win);
+}
+</script>
+
+<% page_footer(); %>
diff --git a/swat/esptest/exception.esp b/swat/esptest/exception.esp
new file mode 100644 (file)
index 0000000..ff28d63
--- /dev/null
@@ -0,0 +1,32 @@
+<% page_header("columns", "ESP Exception test", "esptest"); 
+   include("/scripting/forms.js");
+%>
+
+<h1>Samba4 exception test</h1>
+
+
+<%
+var f = FormObj("ExceptionTest", 0, 2);
+f.submit[0] = "Generate Exception";
+f.submit[1] = "No Exception";
+
+f.display();
+
+if (request['REQUEST_METHOD'] == "POST") {
+       function TestFunction(arg1, arg2) {
+                return "OK";
+       }
+
+       if (form['submit'] == "Generate Exception") {
+           write("I expect you to die Mr Bond!<br>\n");
+           TestFunction("foo");
+       } else {
+           write("no exception<br>\n");
+           TestFunction("foo", "bar");
+       }
+}
+%>
+
+and here is some filler text ...
+
+<% page_footer(); %>
diff --git a/swat/esptest/formtest.esp b/swat/esptest/formtest.esp
new file mode 100644 (file)
index 0000000..2310849
--- /dev/null
@@ -0,0 +1,35 @@
+<% page_header("columns", "ESP Form Test", "esptest"); 
+   include("/scripting/forms.js");
+%>
+
+<%
+var f = FormObj("FormTest", 3, 2);
+f.element[0].label = "First Name";
+f.element[0].name  = "firstName";
+f.element[0].value = form['firstName'];
+f.element[1].label = "Last Name";
+f.element[1].name  = "lastName";
+f.element[1].value = form['lastName'];
+f.element[2].label = "Color";
+f.element[2].type  = "select";
+f.element[2].list  = new Array("Red", "Green", "Blue", "Yellow");
+f.element[2].value = form['Color'];
+f.submit[0] = "OK";
+f.submit[1] = "Cancel";
+
+f.display();
+
+<%
+  /* if its a post then the user has filled in the form, so
+     report the values 
+  */
+  if (form['submit'] == "OK") {
+%>
+  You chose firstName=@@form['firstName'] lastName=@@form['lastName']<p>
+  
+<%
+   simple_table(form);
+  }
+%>
+
+<% page_footer(); %>
diff --git a/swat/esptest/include.esp b/swat/esptest/include.esp
new file mode 100644 (file)
index 0000000..5d558d5
--- /dev/null
@@ -0,0 +1,14 @@
+<% page_header("columns", "ESP Include Test", "esptest"); %>
+
+including /scripting/test.ejs<p/>
+<% include("/scripting/test.ejs"); %>
+calling a function from test.ejs ...<p/>
+<% showArray("request", request); %>
+
+including /scripting/test.esp<p/>
+<% include /scripting/test.esp %>
+calling a function from test.esp ...<p/>
+<% res = testfn('foo'); %>
+result is: @@res
+
+<% page_footer(); %>
diff --git a/swat/esptest/index.esp b/swat/esptest/index.esp
new file mode 100644 (file)
index 0000000..663f82c
--- /dev/null
@@ -0,0 +1,7 @@
+<% page_header("columns", "ESP Tests", "esptest"); %>
+
+<h1>ESP Test functions</h1>
+
+Please select a menu item from the selection on the left
+
+<% page_footer(); %>
diff --git a/swat/esptest/ldb.esp b/swat/esptest/ldb.esp
new file mode 100644 (file)
index 0000000..cf2725f
--- /dev/null
@@ -0,0 +1,36 @@
+<% page_header("columns", "ESP ldb test", "esptest"); %>
+
+<h1>Samba4 ldb test</h1>
+
+<h3>An attribute constrained search</h3>
+
+<%
+var lp = loadparm_init();
+var dbfile = lp.get("sam database");
+var attrs = new Array("name", "dnsDomain", "objectSid", "dn");
+var ldb = ldb_init();
+ldb.session_info = session.authinfo.session_info;
+
+var ok = ldb.connect(dbfile);
+assert(ok);
+
+res = ldb.search("(objectClass=domain)", NULL, ldb.SCOPE_DEFAULT, attrs);
+multi_table(res, "dn");
+%>
+
+<h3>An unconstrained search</h3>
+
+<%
+res = ldb.search("(objectClass=user)");
+multi_table(res, "dn");
+%>
+
+<h3>A search with bad arguments</h3>
+
+<%
+res = ldb.search("=blah", "foo");
+%>
+
+all done
+
+<% page_footer() %>
diff --git a/swat/esptest/loadparm.esp b/swat/esptest/loadparm.esp
new file mode 100644 (file)
index 0000000..9581af0
--- /dev/null
@@ -0,0 +1,75 @@
+<% page_header("columns", "ESP loadparm test", "esptest" ); 
+   include("/scripting/forms.js");
+%>
+
+<h1>Samba4 loadparm test</h1>
+
+<%
+lp = loadparm_init();
+
+var f = FormObj("LoadparmTest", 2, 1);
+f.element[0].label = "Share";
+f.element[1].label = "Parameter";
+f.submit[0] = "OK";
+
+f.display();
+
+function stringVar(v) {
+       var type = typeof(v);
+       var ret = "";
+       if (type == "object") {
+               for (val in v) {
+                       ret = ret + " " + v[val];
+               }
+       } else {
+               ret = ret + v;
+       }
+       return ret;
+}
+
+function showValue(name, v) {
+       write("parameter:" + name + "<br>\n");
+       write("Type  is: " + typeof(v) + "<br>\n");
+       write("Value is: " + stringVar(v) + "<p>\n");
+}
+
+
+if (request['REQUEST_METHOD'] == "POST") {
+       /* if they cancelled then take them back to the list of tests */
+       if (form['submit'] == "Cancel") {
+               redirect("/");
+       }
+       
+       var v;
+
+       share = form['Share'];
+       name  = form['Parameter'];
+       if (share && name) {
+               v = lp.get(share, name);
+       } else if (name) {
+               v = lp.get(name);
+       }
+
+       showValue(name, v);
+}
+%>
+
+Here are some commonly used parameters:<p>
+
+<%
+showValue("defined services", lp.services());
+
+function showParameter(name) {
+       showValue(name, lp.get(name));
+}
+
+showParameter("server services");
+showParameter("netbios name");
+showParameter("security");
+showParameter("workgroup");
+showParameter("log level");
+showParameter("server signing");
+showParameter("interfaces");
+%>
+
+<% page_footer(); %>
diff --git a/swat/esptest/qooxdoo.esp b/swat/esptest/qooxdoo.esp
new file mode 100644 (file)
index 0000000..554a4e9
--- /dev/null
@@ -0,0 +1,133 @@
+<%
+/******************************/
+/* server side AJAJ functions */
+libinclude("server_call.js");
+
+/* this is a call that the client js code can make - it just adds
+   some more elements to the passed object, then returns the object */
+function testfunc(x) {
+       var sys = sys_init();
+       x.nttime = sys.nttime();
+       x.timestring = sys.httptime(x.nttime);
+       return x;
+}
+
+/* register a call for clients to make */
+var call = servCallObj();
+call.add('testfunc', testfunc);
+
+/* run the function that was asked for */
+call.run();
+
+  /***********************/
+  /* now the main page */
+  page_header("columns", "ESP qooxdoo test", "esptest"); 
+%>
+
+<script type="text/javascript" src="/scripting/client/encoder.js"></script>
+<script type="text/javascript" src="/scripting/client/call.js"></script>
+
+<h1>Samba4 qooxdoo test</h1>
+
+  <script type="text/javascript">
+
+  window.application.main = function()
+  {
+    var inlineWidget = new QxInline;
+    var fieldSet = new QxFieldSet("thefieldset");
+
+    with(fieldSet)
+    {
+           setWidth("40%");
+           setMinHeight(400);
+           setBottom(48);
+           setMinWidth(500);
+    };
+
+    var gl = new QxGridLayout("auto,auto,auto,auto,auto", "100%");
+    gl.setEdge(0);
+    gl.setCellPaddingTop(3);
+    gl.setCellPaddingBottom(3);
+
+    inlineWidget.add(fieldSet);
+
+    var d = this.getClientWindow().getDocument();
+
+    var stopit = 0;
+    var shared = new Object();
+
+    function callback(o) {
+           shared = o;
+           var r = "Response:\\n";
+           for (var i in shared) {
+                   r = r + "\\t" + i + " : " + shared[i] + "\\n";
+           }
+           ta.setText(r);
+           if (shared.start_time == 0) {
+                   shared.start_time = shared.nttime;
+           }
+           shared.time_diff = shared.nttime - shared.start_time;
+           shared.rate = shared.counter / (shared.time_diff * 0.0000001);
+           shared.counter++;
+           if (stopit == 0) {
+                   server_call_url("@@request.REQUEST_URI", 'testfunc', callback, shared);
+           }
+    }
+
+    function start_call() { 
+           srv_printf("Starting calls ... (stopit=%d)\\n", stopit);
+           stopit = 0;
+           shared.counter = 0;
+           shared.start_time = 0;
+           server_call_url("@@request.REQUEST_URI", 'testfunc', callback, shared);
+    };
+
+    function stop_call() { 
+           srv_printf("Stopping calls\\n");
+           stopit = 1;
+    };
+
+    function myButton(name, label, call) {
+        var b = new QxButton(label);
+       b.setWidth("25%");
+       b.addEventListener("click", call);
+       return b;
+    };
+
+    function myCheckBox(label, name, value) {
+           var w = new QxCheckBox(label, value, name, value);
+           w.setWidth("100%");
+           return w;
+    }
+
+    var c1 = myCheckBox("Enable The Server", 'checkbox1', false);
+    var c2 = myCheckBox("Another Server", 'checkbox2', true);
+    var t3 = new QxTextField("hello");
+    var b1 = myButton("send", "Make Call", start_call);
+    var b2 = myButton("stop", "Stop Call", stop_call);
+    var ta = new QxTextArea;
+    ta.setText("initial text");
+    ta.setWidth("80%");
+    ta.setHeight(150);
+    ta.setVerticalAlign("top");
+
+    gl.add(c1, { row : 1, col : 1 });
+    gl.add(c2, { row : 2, col : 1 });
+    gl.add(t3, { row : 3, col : 1, scaleHorizontal: true });
+    gl.add(b1, { row : 4, col : 1 });
+    gl.add(ta, { row : 5, col : 1 });
+    gl.add(b2, { row : 6, col : 1 });
+
+    fieldSet.add(gl);
+
+    inlineWidget.add(fieldSet);
+
+    d.add(inlineWidget, "canvas");
+  };
+
+  </script>
+
+
+ <div id="canvas" style="overflow:hidden;position:static;margin-top:38px;margin-left:10px;margin-right:700px;width:700px"></div>
+
+<% page_footer(); %>
diff --git a/swat/esptest/registry.esp b/swat/esptest/registry.esp
new file mode 100644 (file)
index 0000000..efdfefc
--- /dev/null
@@ -0,0 +1,50 @@
+<%
+  page_header("columns", "ESP registry edit", "esptest"); 
+%>
+
+<script type="text/javascript" src="/scripting/client/encoder.js"></script>
+<script type="text/javascript" src="/scripting/client/call.js"></script>
+<script type="text/javascript" src="/scripting/client/regedit.js"></script>
+
+<h1>Registry Editor</h1>
+
+<script type="text/javascript">
+
+/*** init the page for qooxdoo ***/
+window.application.main = function()
+{
+    var doc = this.getClientWindow().getDocument();
+    var inlineWidget = new QxInline;
+    var qwidget = new QxWidget;
+    qwidget.setHeight(800);
+    qwidget.setWidth("100%");
+    qwidget.setBorder(QxBorder.presets.groove);
+
+    var btn1 = new QxButton("Registry Editor");
+    btn1.set({ top: 20, left : 30 });
+    btn1.addEventListener("click", function() {
+            var regWindow = new QxWindow("Registry Editor");
+           with(regWindow) {
+                setTop(50);
+               setLeft(50);
+                setMinWidth(600);
+               setMinHeight(600);
+               setResizeMethod("frame");
+           }
+
+           var regedit = regedit_widget("ncalrpc:");
+           regWindow.add(regedit);
+           qwidget.add(regWindow);
+           regWindow.setVisible(true);
+
+    });
+    qwidget.add(btn1);
+    inlineWidget.add(qwidget);
+    doc.add(inlineWidget, "canvas");
+}
+
+</script>
+
+<div id="canvas" style="overflow:hidden;position:static;margin-top:38px;margin-left:10px;margin-right:700px;width:700px"></div>
+
+<% page_footer(); %>
diff --git a/swat/esptest/samr.esp b/swat/esptest/samr.esp
new file mode 100644 (file)
index 0000000..a60a02e
--- /dev/null
@@ -0,0 +1,36 @@
+<% page_header("columns", "ESP samr test", "esptest"); 
+
+  libinclude("base.js");
+  libinclude("samr.js");
+%>
+
+<h1>Samba4 samr rpc test</h1>
+
+<%
+var conn  = samr_init();
+var binding = "ncalrpc:";
+status = conn.connect(binding);
+check_status_ok(status);
+
+handle = samrConnect(conn);
+
+domains = samrEnumDomains(conn, handle);
+
+for (i=0;i<domains.length;i++) {
+    write("<h2>Domain " + domains[i].name + "</h2>\n");
+    sid = samrLookupDomain(conn, handle, domains[i].name);
+    dom_handle = samrOpenDomain(conn, handle, sid);
+    users = samrEnumDomainUsers(conn, dom_handle);
+    samrFillUserInfo(conn, dom_handle, users, 3);
+    if (users.length == 0) {
+           write("no users in domain<br>\n");
+    } else {
+           multi_table(users, "name");
+    }
+    samrClose(conn, dom_handle);
+}
+
+%>
+
+
+<% page_footer(); %>
diff --git a/swat/esptest/session.esp b/swat/esptest/session.esp
new file mode 100644 (file)
index 0000000..6213dde
--- /dev/null
@@ -0,0 +1,53 @@
+<% page_header("columns", "ESP session test", "esptest"); 
+   include("/scripting/forms.js");
+%>
+
+<h1>Samba4 session test</h1>
+
+<%
+var f = FormObj("SessionTest", 3, 4);
+f.element[0].label = "Name";
+f.element[1].label = "Value";
+f.element[2].label = "Timeout";
+f.submit[0] = "Append";
+f.submit[1] = "Reset";
+f.submit[2] = "Destroy";
+f.submit[3] = "Cancel";
+
+f.display();
+
+  /* if its a post then the user has filled in the form, so
+     report the values 
+  */
+if (request['REQUEST_METHOD'] == "POST") {
+       /* if they cancelled then take them back to the list of tests */
+       if (form['submit'] == "Cancel") {
+               redirect("/");
+       }
+       
+       name  = form['Name'];
+       value = form['Value'];
+       timeout = form['Timeout'];
+       
+       if (timeout) {
+               useSession(timeout);
+       }
+       
+       if (form['submit'] == "Reset" && name) {
+               session[name] = null;
+       }
+       
+       if (form['submit'] == "Append" && name) {
+               session[name] = "" + session[name] + value;
+       }
+       
+       if (form['submit'] == "Destroy") {
+               destroySession();
+       }
+}
+
+simple_table(session);
+write("SessionId=" + request['SESSION_ID'] + "<br/>\n");
+%>
+
+<% page_footer(); %>
diff --git a/swat/esptest/showvars.esp b/swat/esptest/showvars.esp
new file mode 100644 (file)
index 0000000..dc55b1e
--- /dev/null
@@ -0,0 +1,24 @@
+<% page_header("columns", "ESP standard variables test", "esptest"); %>
+
+<h1>Samba4 showvars test</h1>
+
+<%
+   function showArray(name, array) {
+      write("<h3>Array: " + name + "</h3>\n");
+      if (array == undefined) {
+        write("undefined<br>\n");
+      } else {
+       simple_table(array);
+      }
+   }
+
+   showArray("headers", headers);
+   showArray("application", application);
+   showArray("cookies", cookies);
+   showArray("files", files);
+   showArray("request", request);
+   showArray("server", server);
+   showArray("session", session);
+%>
+
+<% page_footer(); %>
similarity index 100%
rename from webapps/images/favicon.ico
rename to swat/favicon.ico
diff --git a/swat/images/favicon.ico b/swat/images/favicon.ico
new file mode 100644 (file)
index 0000000..ef903ba
Binary files /dev/null and b/swat/images/favicon.ico differ
diff --git a/swat/images/icons/crystalsvg/128/antivirus.png b/swat/images/icons/crystalsvg/128/antivirus.png
new file mode 100644 (file)
index 0000000..381fc55
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/antivirus.png differ
diff --git a/swat/images/icons/crystalsvg/128/back.png b/swat/images/icons/crystalsvg/128/back.png
new file mode 100644 (file)
index 0000000..4e2e380
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/back.png differ
diff --git a/swat/images/icons/crystalsvg/128/background.png b/swat/images/icons/crystalsvg/128/background.png
new file mode 100644 (file)
index 0000000..dc35d81
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/background.png differ
diff --git a/swat/images/icons/crystalsvg/128/bell.png b/swat/images/icons/crystalsvg/128/bell.png
new file mode 100644 (file)
index 0000000..530fbf6
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/bell.png differ
diff --git a/swat/images/icons/crystalsvg/128/blockdevice.png b/swat/images/icons/crystalsvg/128/blockdevice.png
new file mode 100644 (file)
index 0000000..e306892
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/blockdevice.png differ
diff --git a/swat/images/icons/crystalsvg/128/browser.png b/swat/images/icons/crystalsvg/128/browser.png
new file mode 100644 (file)
index 0000000..63e035f
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/browser.png differ
diff --git a/swat/images/icons/crystalsvg/128/cache.png b/swat/images/icons/crystalsvg/128/cache.png
new file mode 100644 (file)
index 0000000..f926138
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/cache.png differ
diff --git a/swat/images/icons/crystalsvg/128/clock.png b/swat/images/icons/crystalsvg/128/clock.png
new file mode 100644 (file)
index 0000000..692b050
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/clock.png differ
diff --git a/swat/images/icons/crystalsvg/128/colors.png b/swat/images/icons/crystalsvg/128/colors.png
new file mode 100644 (file)
index 0000000..932e6fb
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/colors.png differ
diff --git a/swat/images/icons/crystalsvg/128/core.png b/swat/images/icons/crystalsvg/128/core.png
new file mode 100644 (file)
index 0000000..4859039
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/core.png differ
diff --git a/swat/images/icons/crystalsvg/128/date.png b/swat/images/icons/crystalsvg/128/date.png
new file mode 100644 (file)
index 0000000..1e34bb2
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/date.png differ
diff --git a/swat/images/icons/crystalsvg/128/desktop.png b/swat/images/icons/crystalsvg/128/desktop.png
new file mode 100644 (file)
index 0000000..02f2f26
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/desktop.png differ
diff --git a/swat/images/icons/crystalsvg/128/display.png b/swat/images/icons/crystalsvg/128/display.png
new file mode 100644 (file)
index 0000000..8573935
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/display.png differ
diff --git a/swat/images/icons/crystalsvg/128/document.png b/swat/images/icons/crystalsvg/128/document.png
new file mode 100644 (file)
index 0000000..970fe33
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/document.png differ
diff --git a/swat/images/icons/crystalsvg/128/email.png b/swat/images/icons/crystalsvg/128/email.png
new file mode 100644 (file)
index 0000000..a01dfa0
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/email.png differ
diff --git a/swat/images/icons/crystalsvg/128/empty.png b/swat/images/icons/crystalsvg/128/empty.png
new file mode 100644 (file)
index 0000000..431c18e
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/empty.png differ
diff --git a/swat/images/icons/crystalsvg/128/encrypted.png b/swat/images/icons/crystalsvg/128/encrypted.png
new file mode 100644 (file)
index 0000000..be9140e
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/encrypted.png differ
diff --git a/swat/images/icons/crystalsvg/128/energy.png b/swat/images/icons/crystalsvg/128/energy.png
new file mode 100644 (file)
index 0000000..4ad8e61
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/energy.png differ
diff --git a/swat/images/icons/crystalsvg/128/error.png b/swat/images/icons/crystalsvg/128/error.png
new file mode 100644 (file)
index 0000000..44de257
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/error.png differ
diff --git a/swat/images/icons/crystalsvg/128/exec.png b/swat/images/icons/crystalsvg/128/exec.png
new file mode 100644 (file)
index 0000000..f20b424
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/exec.png differ
diff --git a/swat/images/icons/crystalsvg/128/fileprint.png b/swat/images/icons/crystalsvg/128/fileprint.png
new file mode 100644 (file)
index 0000000..2625880
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/fileprint.png differ
diff --git a/swat/images/icons/crystalsvg/128/folder.png b/swat/images/icons/crystalsvg/128/folder.png
new file mode 100644 (file)
index 0000000..e3d2487
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/folder.png differ
diff --git a/swat/images/icons/crystalsvg/128/folder_home.png b/swat/images/icons/crystalsvg/128/folder_home.png
new file mode 100644 (file)
index 0000000..1523d6e
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/folder_home.png differ
diff --git a/swat/images/icons/crystalsvg/128/folder_important.png b/swat/images/icons/crystalsvg/128/folder_important.png
new file mode 100644 (file)
index 0000000..6470a37
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/folder_important.png differ
diff --git a/swat/images/icons/crystalsvg/128/folder_locked.png b/swat/images/icons/crystalsvg/128/folder_locked.png
new file mode 100644 (file)
index 0000000..ba6645b
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/folder_locked.png differ
diff --git a/swat/images/icons/crystalsvg/128/folder_open.png b/swat/images/icons/crystalsvg/128/folder_open.png
new file mode 100644 (file)
index 0000000..62faf24
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/folder_open.png differ
diff --git a/swat/images/icons/crystalsvg/128/font.png b/swat/images/icons/crystalsvg/128/font.png
new file mode 100644 (file)
index 0000000..964d574
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/font.png differ
diff --git a/swat/images/icons/crystalsvg/128/forward.png b/swat/images/icons/crystalsvg/128/forward.png
new file mode 100644 (file)
index 0000000..23035d2
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/forward.png differ
diff --git a/swat/images/icons/crystalsvg/128/gohome.png b/swat/images/icons/crystalsvg/128/gohome.png
new file mode 100644 (file)
index 0000000..1523d6e
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/gohome.png differ
diff --git a/swat/images/icons/crystalsvg/128/hwinfo.png b/swat/images/icons/crystalsvg/128/hwinfo.png
new file mode 100644 (file)
index 0000000..e2aced9
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/hwinfo.png differ
diff --git a/swat/images/icons/crystalsvg/128/info.png b/swat/images/icons/crystalsvg/128/info.png
new file mode 100644 (file)
index 0000000..0685f86
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/info.png differ
diff --git a/swat/images/icons/crystalsvg/128/kcoloredit.png b/swat/images/icons/crystalsvg/128/kcoloredit.png
new file mode 100644 (file)
index 0000000..932e6fb
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/kcoloredit.png differ
diff --git a/swat/images/icons/crystalsvg/128/kcontrol.png b/swat/images/icons/crystalsvg/128/kcontrol.png
new file mode 100644 (file)
index 0000000..99a89e3
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/kcontrol.png differ
diff --git a/swat/images/icons/crystalsvg/128/keyboard.png b/swat/images/icons/crystalsvg/128/keyboard.png
new file mode 100644 (file)
index 0000000..f6539e9
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/keyboard.png differ
diff --git a/swat/images/icons/crystalsvg/128/khelpcenter.png b/swat/images/icons/crystalsvg/128/khelpcenter.png
new file mode 100644 (file)
index 0000000..aff3318
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/khelpcenter.png differ
diff --git a/swat/images/icons/crystalsvg/128/konqueror.png b/swat/images/icons/crystalsvg/128/konqueror.png
new file mode 100644 (file)
index 0000000..4527db2
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/konqueror.png differ
diff --git a/swat/images/icons/crystalsvg/128/kpaint.png b/swat/images/icons/crystalsvg/128/kpaint.png
new file mode 100644 (file)
index 0000000..2c1bb49
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/kpaint.png differ
diff --git a/swat/images/icons/crystalsvg/128/krita.png b/swat/images/icons/crystalsvg/128/krita.png
new file mode 100644 (file)
index 0000000..4607286
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/krita.png differ
diff --git a/swat/images/icons/crystalsvg/128/ksmiletris.png b/swat/images/icons/crystalsvg/128/ksmiletris.png
new file mode 100644 (file)
index 0000000..a7789b7
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/ksmiletris.png differ
diff --git a/swat/images/icons/crystalsvg/128/ksnapshot.png b/swat/images/icons/crystalsvg/128/ksnapshot.png
new file mode 100644 (file)
index 0000000..de8e2a1
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/ksnapshot.png differ
diff --git a/swat/images/icons/crystalsvg/128/ktalkd.png b/swat/images/icons/crystalsvg/128/ktalkd.png
new file mode 100644 (file)
index 0000000..8d9c97f
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/ktalkd.png differ
diff --git a/swat/images/icons/crystalsvg/128/kuser.png b/swat/images/icons/crystalsvg/128/kuser.png
new file mode 100644 (file)
index 0000000..f28f704
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/kuser.png differ
diff --git a/swat/images/icons/crystalsvg/128/kview.png b/swat/images/icons/crystalsvg/128/kview.png
new file mode 100644 (file)
index 0000000..6a1b0fe
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/kview.png differ
diff --git a/swat/images/icons/crystalsvg/128/linuxconf.png b/swat/images/icons/crystalsvg/128/linuxconf.png
new file mode 100644 (file)
index 0000000..969b8da
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/linuxconf.png differ
diff --git a/swat/images/icons/crystalsvg/128/locale.png b/swat/images/icons/crystalsvg/128/locale.png
new file mode 100644 (file)
index 0000000..25403ac
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/locale.png differ
diff --git a/swat/images/icons/crystalsvg/128/looknfeel.png b/swat/images/icons/crystalsvg/128/looknfeel.png
new file mode 100644 (file)
index 0000000..cd1a36b
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/looknfeel.png differ
diff --git a/swat/images/icons/crystalsvg/128/mac.png b/swat/images/icons/crystalsvg/128/mac.png
new file mode 100644 (file)
index 0000000..258588b
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/mac.png differ
diff --git a/swat/images/icons/crystalsvg/128/mail.png b/swat/images/icons/crystalsvg/128/mail.png
new file mode 100644 (file)
index 0000000..a4ba0ae
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/mail.png differ
diff --git a/swat/images/icons/crystalsvg/128/mimetypes.png b/swat/images/icons/crystalsvg/128/mimetypes.png
new file mode 100644 (file)
index 0000000..fb9189d
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/mimetypes.png differ
diff --git a/swat/images/icons/crystalsvg/128/mouse.png b/swat/images/icons/crystalsvg/128/mouse.png
new file mode 100644 (file)
index 0000000..dc44bac
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/mouse.png differ
diff --git a/swat/images/icons/crystalsvg/128/mozilla.png b/swat/images/icons/crystalsvg/128/mozilla.png
new file mode 100644 (file)
index 0000000..eb71eb5
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/mozilla.png differ
diff --git a/swat/images/icons/crystalsvg/128/mycomputer.png b/swat/images/icons/crystalsvg/128/mycomputer.png
new file mode 100644 (file)
index 0000000..ed7ac28
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/mycomputer.png differ
diff --git a/swat/images/icons/crystalsvg/128/mymac.png b/swat/images/icons/crystalsvg/128/mymac.png
new file mode 100644 (file)
index 0000000..d726dd4
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/mymac.png differ
diff --git a/swat/images/icons/crystalsvg/128/netscape.png b/swat/images/icons/crystalsvg/128/netscape.png
new file mode 100644 (file)
index 0000000..2e5cf2c
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/netscape.png differ
diff --git a/swat/images/icons/crystalsvg/128/network.png b/swat/images/icons/crystalsvg/128/network.png
new file mode 100644 (file)
index 0000000..9fb0d1f
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/network.png differ
diff --git a/swat/images/icons/crystalsvg/128/password.png b/swat/images/icons/crystalsvg/128/password.png
new file mode 100644 (file)
index 0000000..f12dfda
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/password.png differ
diff --git a/swat/images/icons/crystalsvg/128/penguin.png b/swat/images/icons/crystalsvg/128/penguin.png
new file mode 100644 (file)
index 0000000..ebfc696
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/penguin.png differ
diff --git a/swat/images/icons/crystalsvg/128/proxy.png b/swat/images/icons/crystalsvg/128/proxy.png
new file mode 100644 (file)
index 0000000..ec18d5a
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/proxy.png differ
diff --git a/swat/images/icons/crystalsvg/128/quicktime.png b/swat/images/icons/crystalsvg/128/quicktime.png
new file mode 100644 (file)
index 0000000..9d39ea3
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/quicktime.png differ
diff --git a/swat/images/icons/crystalsvg/128/realplayer.png b/swat/images/icons/crystalsvg/128/realplayer.png
new file mode 100644 (file)
index 0000000..2a73835
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/realplayer.png differ
diff --git a/swat/images/icons/crystalsvg/128/reload.png b/swat/images/icons/crystalsvg/128/reload.png
new file mode 100644 (file)
index 0000000..62fc026
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/reload.png differ
diff --git a/swat/images/icons/crystalsvg/128/services.png b/swat/images/icons/crystalsvg/128/services.png
new file mode 100644 (file)
index 0000000..bef393d
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/services.png differ
diff --git a/swat/images/icons/crystalsvg/128/socket.png b/swat/images/icons/crystalsvg/128/socket.png
new file mode 100644 (file)
index 0000000..60eed5b
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/socket.png differ
diff --git a/swat/images/icons/crystalsvg/128/stylesheet.png b/swat/images/icons/crystalsvg/128/stylesheet.png
new file mode 100644 (file)
index 0000000..bc911a9
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/stylesheet.png differ
diff --git a/swat/images/icons/crystalsvg/128/tux.png b/swat/images/icons/crystalsvg/128/tux.png
new file mode 100644 (file)
index 0000000..8e4e34b
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/tux.png differ
diff --git a/swat/images/icons/crystalsvg/128/up.png b/swat/images/icons/crystalsvg/128/up.png
new file mode 100644 (file)
index 0000000..1c64cd8
Binary files /dev/null and b/swat/images/icons/crystalsvg/128/up.png differ
diff --git a/swat/images/icons/crystalsvg/16/access.png b/swat/images/icons/crystalsvg/16/access.png
new file mode 100644 (file)
index 0000000..d519c57
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/access.png differ
diff --git a/swat/images/icons/crystalsvg/16/agent.png b/swat/images/icons/crystalsvg/16/agent.png
new file mode 100644 (file)
index 0000000..9826d34
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/agent.png differ
diff --git a/swat/images/icons/crystalsvg/16/antivirus.png b/swat/images/icons/crystalsvg/16/antivirus.png
new file mode 100644 (file)
index 0000000..a5fe838
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/antivirus.png differ
diff --git a/swat/images/icons/crystalsvg/16/appearance.png b/swat/images/icons/crystalsvg/16/appearance.png
new file mode 100644 (file)
index 0000000..9612cd5
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/appearance.png differ
diff --git a/swat/images/icons/crystalsvg/16/apply.png b/swat/images/icons/crystalsvg/16/apply.png
new file mode 100644 (file)
index 0000000..543710f
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/apply.png differ
diff --git a/swat/images/icons/crystalsvg/16/back.png b/swat/images/icons/crystalsvg/16/back.png
new file mode 100644 (file)
index 0000000..b6d9bd1
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/back.png differ
diff --git a/swat/images/icons/crystalsvg/16/background.png b/swat/images/icons/crystalsvg/16/background.png
new file mode 100644 (file)
index 0000000..f4ef81c
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/background.png differ
diff --git a/swat/images/icons/crystalsvg/16/bell.png b/swat/images/icons/crystalsvg/16/bell.png
new file mode 100644 (file)
index 0000000..7a3fcae
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/bell.png differ
diff --git a/swat/images/icons/crystalsvg/16/blockdevice.png b/swat/images/icons/crystalsvg/16/blockdevice.png
new file mode 100644 (file)
index 0000000..a4acb09
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/blockdevice.png differ
diff --git a/swat/images/icons/crystalsvg/16/bookmark.png b/swat/images/icons/crystalsvg/16/bookmark.png
new file mode 100644 (file)
index 0000000..5e76158
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/bookmark.png differ
diff --git a/swat/images/icons/crystalsvg/16/browser.png b/swat/images/icons/crystalsvg/16/browser.png
new file mode 100644 (file)
index 0000000..49202d1
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/browser.png differ
diff --git a/swat/images/icons/crystalsvg/16/button_cancel.png b/swat/images/icons/crystalsvg/16/button_cancel.png
new file mode 100644 (file)
index 0000000..2415dfc
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/button_cancel.png differ
diff --git a/swat/images/icons/crystalsvg/16/button_ok.png b/swat/images/icons/crystalsvg/16/button_ok.png
new file mode 100644 (file)
index 0000000..543710f
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/button_ok.png differ
diff --git a/swat/images/icons/crystalsvg/16/cache.png b/swat/images/icons/crystalsvg/16/cache.png
new file mode 100644 (file)
index 0000000..9d3f243
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/cache.png differ
diff --git a/swat/images/icons/crystalsvg/16/clock.png b/swat/images/icons/crystalsvg/16/clock.png
new file mode 100644 (file)
index 0000000..dca2c7e
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/clock.png differ
diff --git a/swat/images/icons/crystalsvg/16/colorize.png b/swat/images/icons/crystalsvg/16/colorize.png
new file mode 100644 (file)
index 0000000..9612cd5
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/colorize.png differ
diff --git a/swat/images/icons/crystalsvg/16/colors.png b/swat/images/icons/crystalsvg/16/colors.png
new file mode 100644 (file)
index 0000000..c0a67bb
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/colors.png differ
diff --git a/swat/images/icons/crystalsvg/16/colorset.png b/swat/images/icons/crystalsvg/16/colorset.png
new file mode 100644 (file)
index 0000000..1c2b54f
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/colorset.png differ
diff --git a/swat/images/icons/crystalsvg/16/configure.png b/swat/images/icons/crystalsvg/16/configure.png
new file mode 100644 (file)
index 0000000..95bd319
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/configure.png differ
diff --git a/swat/images/icons/crystalsvg/16/contents.png b/swat/images/icons/crystalsvg/16/contents.png
new file mode 100644 (file)
index 0000000..e2a44ec
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/contents.png differ
diff --git a/swat/images/icons/crystalsvg/16/cookie.png b/swat/images/icons/crystalsvg/16/cookie.png
new file mode 100644 (file)
index 0000000..5ebe2e3
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/cookie.png differ
diff --git a/swat/images/icons/crystalsvg/16/core.png b/swat/images/icons/crystalsvg/16/core.png
new file mode 100644 (file)
index 0000000..7bc1bcd
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/core.png differ
diff --git a/swat/images/icons/crystalsvg/16/date.png b/swat/images/icons/crystalsvg/16/date.png
new file mode 100644 (file)
index 0000000..fbf29f5
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/date.png differ
diff --git a/swat/images/icons/crystalsvg/16/decrypted.png b/swat/images/icons/crystalsvg/16/decrypted.png
new file mode 100644 (file)
index 0000000..3a1a0d3
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/decrypted.png differ
diff --git a/swat/images/icons/crystalsvg/16/desktop.png b/swat/images/icons/crystalsvg/16/desktop.png
new file mode 100644 (file)
index 0000000..883d92d
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/desktop.png differ
diff --git a/swat/images/icons/crystalsvg/16/display.png b/swat/images/icons/crystalsvg/16/display.png
new file mode 100644 (file)
index 0000000..2e228bd
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/display.png differ
diff --git a/swat/images/icons/crystalsvg/16/doc.png b/swat/images/icons/crystalsvg/16/doc.png
new file mode 100644 (file)
index 0000000..870f1ab
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/doc.png differ
diff --git a/swat/images/icons/crystalsvg/16/document.png b/swat/images/icons/crystalsvg/16/document.png
new file mode 100644 (file)
index 0000000..1930fb2
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/document.png differ
diff --git a/swat/images/icons/crystalsvg/16/down.png b/swat/images/icons/crystalsvg/16/down.png
new file mode 100644 (file)
index 0000000..4249bde
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/down.png differ
diff --git a/swat/images/icons/crystalsvg/16/edit.png b/swat/images/icons/crystalsvg/16/edit.png
new file mode 100644 (file)
index 0000000..a8b69f7
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/edit.png differ
diff --git a/swat/images/icons/crystalsvg/16/editcopy.png b/swat/images/icons/crystalsvg/16/editcopy.png
new file mode 100644 (file)
index 0000000..c3ff243
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/editcopy.png differ
diff --git a/swat/images/icons/crystalsvg/16/editcut.png b/swat/images/icons/crystalsvg/16/editcut.png
new file mode 100644 (file)
index 0000000..2232854
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/editcut.png differ
diff --git a/swat/images/icons/crystalsvg/16/editdelete.png b/swat/images/icons/crystalsvg/16/editdelete.png
new file mode 100644 (file)
index 0000000..6d0d29d
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/editdelete.png differ
diff --git a/swat/images/icons/crystalsvg/16/editpaste.png b/swat/images/icons/crystalsvg/16/editpaste.png
new file mode 100644 (file)
index 0000000..636a4c5
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/editpaste.png differ
diff --git a/swat/images/icons/crystalsvg/16/edittrash.png b/swat/images/icons/crystalsvg/16/edittrash.png
new file mode 100644 (file)
index 0000000..bfceb88
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/edittrash.png differ
diff --git a/swat/images/icons/crystalsvg/16/email.png b/swat/images/icons/crystalsvg/16/email.png
new file mode 100644 (file)
index 0000000..387ed18
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/email.png differ
diff --git a/swat/images/icons/crystalsvg/16/empty.png b/swat/images/icons/crystalsvg/16/empty.png
new file mode 100644 (file)
index 0000000..f68776b
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/empty.png differ
diff --git a/swat/images/icons/crystalsvg/16/empty_ascii.png b/swat/images/icons/crystalsvg/16/empty_ascii.png
new file mode 100644 (file)
index 0000000..4039a2e
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/empty_ascii.png differ
diff --git a/swat/images/icons/crystalsvg/16/encrypted.png b/swat/images/icons/crystalsvg/16/encrypted.png
new file mode 100644 (file)
index 0000000..f498798
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/encrypted.png differ
diff --git a/swat/images/icons/crystalsvg/16/energy.png b/swat/images/icons/crystalsvg/16/energy.png
new file mode 100644 (file)
index 0000000..df22fd8
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/energy.png differ
diff --git a/swat/images/icons/crystalsvg/16/error.png b/swat/images/icons/crystalsvg/16/error.png
new file mode 100644 (file)
index 0000000..9152973
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/error.png differ
diff --git a/swat/images/icons/crystalsvg/16/exec.png b/swat/images/icons/crystalsvg/16/exec.png
new file mode 100644 (file)
index 0000000..bc00f51
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/exec.png differ
diff --git a/swat/images/icons/crystalsvg/16/favorites.png b/swat/images/icons/crystalsvg/16/favorites.png
new file mode 100644 (file)
index 0000000..6a3fc5e
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/favorites.png differ
diff --git a/swat/images/icons/crystalsvg/16/filefind.png b/swat/images/icons/crystalsvg/16/filefind.png
new file mode 100644 (file)
index 0000000..3978d1e
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/filefind.png differ
diff --git a/swat/images/icons/crystalsvg/16/filenew.png b/swat/images/icons/crystalsvg/16/filenew.png
new file mode 100644 (file)
index 0000000..83f3752
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/filenew.png differ
diff --git a/swat/images/icons/crystalsvg/16/fileopen.png b/swat/images/icons/crystalsvg/16/fileopen.png
new file mode 100644 (file)
index 0000000..037c2da
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/fileopen.png differ
diff --git a/swat/images/icons/crystalsvg/16/fileprint.png b/swat/images/icons/crystalsvg/16/fileprint.png
new file mode 100644 (file)
index 0000000..471448f
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/fileprint.png differ
diff --git a/swat/images/icons/crystalsvg/16/filesave.png b/swat/images/icons/crystalsvg/16/filesave.png
new file mode 100644 (file)
index 0000000..41b3f43
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/filesave.png differ
diff --git a/swat/images/icons/crystalsvg/16/filesaveas.png b/swat/images/icons/crystalsvg/16/filesaveas.png
new file mode 100644 (file)
index 0000000..3e28d5d
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/filesaveas.png differ
diff --git a/swat/images/icons/crystalsvg/16/find.png b/swat/images/icons/crystalsvg/16/find.png
new file mode 100644 (file)
index 0000000..416d064
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/find.png differ
diff --git a/swat/images/icons/crystalsvg/16/folder.png b/swat/images/icons/crystalsvg/16/folder.png
new file mode 100644 (file)
index 0000000..02325a0
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/folder.png differ
diff --git a/swat/images/icons/crystalsvg/16/folder_home.png b/swat/images/icons/crystalsvg/16/folder_home.png
new file mode 100644 (file)
index 0000000..3d26af5
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/folder_home.png differ
diff --git a/swat/images/icons/crystalsvg/16/folder_important.png b/swat/images/icons/crystalsvg/16/folder_important.png
new file mode 100644 (file)
index 0000000..d89fd1d
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/folder_important.png differ
diff --git a/swat/images/icons/crystalsvg/16/folder_locked.png b/swat/images/icons/crystalsvg/16/folder_locked.png
new file mode 100644 (file)
index 0000000..a679e79
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/folder_locked.png differ
diff --git a/swat/images/icons/crystalsvg/16/folder_open.png b/swat/images/icons/crystalsvg/16/folder_open.png
new file mode 100644 (file)
index 0000000..4b545f3
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/folder_open.png differ
diff --git a/swat/images/icons/crystalsvg/16/font.png b/swat/images/icons/crystalsvg/16/font.png
new file mode 100644 (file)
index 0000000..2e788c2
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/font.png differ
diff --git a/swat/images/icons/crystalsvg/16/forward.png b/swat/images/icons/crystalsvg/16/forward.png
new file mode 100644 (file)
index 0000000..4a2a215
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/forward.png differ
diff --git a/swat/images/icons/crystalsvg/16/gohome.png b/swat/images/icons/crystalsvg/16/gohome.png
new file mode 100644 (file)
index 0000000..3d26af5
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/gohome.png differ
diff --git a/swat/images/icons/crystalsvg/16/help.png b/swat/images/icons/crystalsvg/16/help.png
new file mode 100644 (file)
index 0000000..b580f51
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/help.png differ
diff --git a/swat/images/icons/crystalsvg/16/history.png b/swat/images/icons/crystalsvg/16/history.png
new file mode 100644 (file)
index 0000000..1de43d5
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/history.png differ
diff --git a/swat/images/icons/crystalsvg/16/hwinfo.png b/swat/images/icons/crystalsvg/16/hwinfo.png
new file mode 100644 (file)
index 0000000..b8e4f32
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/hwinfo.png differ
diff --git a/swat/images/icons/crystalsvg/16/icons.png b/swat/images/icons/crystalsvg/16/icons.png
new file mode 100644 (file)
index 0000000..10d2a2d
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/icons.png differ
diff --git a/swat/images/icons/crystalsvg/16/iconthemes.png b/swat/images/icons/crystalsvg/16/iconthemes.png
new file mode 100644 (file)
index 0000000..4a90815
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/iconthemes.png differ
diff --git a/swat/images/icons/crystalsvg/16/idea.png b/swat/images/icons/crystalsvg/16/idea.png
new file mode 100644 (file)
index 0000000..8d72794
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/idea.png differ
diff --git a/swat/images/icons/crystalsvg/16/important.png b/swat/images/icons/crystalsvg/16/important.png
new file mode 100644 (file)
index 0000000..64d07f3
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/important.png differ
diff --git a/swat/images/icons/crystalsvg/16/info.png b/swat/images/icons/crystalsvg/16/info.png
new file mode 100644 (file)
index 0000000..1903fab
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/info.png differ
diff --git a/swat/images/icons/crystalsvg/16/kcoloredit.png b/swat/images/icons/crystalsvg/16/kcoloredit.png
new file mode 100644 (file)
index 0000000..c0a67bb
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/kcoloredit.png differ
diff --git a/swat/images/icons/crystalsvg/16/kcontrol.png b/swat/images/icons/crystalsvg/16/kcontrol.png
new file mode 100644 (file)
index 0000000..64bf8b7
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/kcontrol.png differ
diff --git a/swat/images/icons/crystalsvg/16/key_enter.png b/swat/images/icons/crystalsvg/16/key_enter.png
new file mode 100644 (file)
index 0000000..cc4ead9
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/key_enter.png differ
diff --git a/swat/images/icons/crystalsvg/16/keyboard.png b/swat/images/icons/crystalsvg/16/keyboard.png
new file mode 100644 (file)
index 0000000..198d202
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/keyboard.png differ
diff --git a/swat/images/icons/crystalsvg/16/khelpcenter.png b/swat/images/icons/crystalsvg/16/khelpcenter.png
new file mode 100644 (file)
index 0000000..d155536
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/khelpcenter.png differ
diff --git a/swat/images/icons/crystalsvg/16/kmix.png b/swat/images/icons/crystalsvg/16/kmix.png
new file mode 100644 (file)
index 0000000..dbf51d2
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/kmix.png differ
diff --git a/swat/images/icons/crystalsvg/16/knotify.png b/swat/images/icons/crystalsvg/16/knotify.png
new file mode 100644 (file)
index 0000000..a893d62
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/knotify.png differ
diff --git a/swat/images/icons/crystalsvg/16/konqueror.png b/swat/images/icons/crystalsvg/16/konqueror.png
new file mode 100644 (file)
index 0000000..69344cd
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/konqueror.png differ
diff --git a/swat/images/icons/crystalsvg/16/kpackage.png b/swat/images/icons/crystalsvg/16/kpackage.png
new file mode 100644 (file)
index 0000000..a69df61
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/kpackage.png differ
diff --git a/swat/images/icons/crystalsvg/16/kpaint.png b/swat/images/icons/crystalsvg/16/kpaint.png
new file mode 100644 (file)
index 0000000..92039e4
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/kpaint.png differ
diff --git a/swat/images/icons/crystalsvg/16/kpersonalizer.png b/swat/images/icons/crystalsvg/16/kpersonalizer.png
new file mode 100644 (file)
index 0000000..86186d7
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/kpersonalizer.png differ
diff --git a/swat/images/icons/crystalsvg/16/krita.png b/swat/images/icons/crystalsvg/16/krita.png
new file mode 100644 (file)
index 0000000..6563434
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/krita.png differ
diff --git a/swat/images/icons/crystalsvg/16/ksmiletris.png b/swat/images/icons/crystalsvg/16/ksmiletris.png
new file mode 100644 (file)
index 0000000..c088395
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/ksmiletris.png differ
diff --git a/swat/images/icons/crystalsvg/16/ksnapshot.png b/swat/images/icons/crystalsvg/16/ksnapshot.png
new file mode 100644 (file)
index 0000000..79743e8
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/ksnapshot.png differ
diff --git a/swat/images/icons/crystalsvg/16/ktalkd.png b/swat/images/icons/crystalsvg/16/ktalkd.png
new file mode 100644 (file)
index 0000000..fd36501
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/ktalkd.png differ
diff --git a/swat/images/icons/crystalsvg/16/ktip.png b/swat/images/icons/crystalsvg/16/ktip.png
new file mode 100644 (file)
index 0000000..2b206f2
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/ktip.png differ
diff --git a/swat/images/icons/crystalsvg/16/kuser.png b/swat/images/icons/crystalsvg/16/kuser.png
new file mode 100644 (file)
index 0000000..8f69e2b
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/kuser.png differ
diff --git a/swat/images/icons/crystalsvg/16/kview.png b/swat/images/icons/crystalsvg/16/kview.png
new file mode 100644 (file)
index 0000000..b5f17a3
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/kview.png differ
diff --git a/swat/images/icons/crystalsvg/16/launch.png b/swat/images/icons/crystalsvg/16/launch.png
new file mode 100644 (file)
index 0000000..838c38b
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/launch.png differ
diff --git a/swat/images/icons/crystalsvg/16/linuxconf.png b/swat/images/icons/crystalsvg/16/linuxconf.png
new file mode 100644 (file)
index 0000000..9a42044
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/linuxconf.png differ
diff --git a/swat/images/icons/crystalsvg/16/looknfeel.png b/swat/images/icons/crystalsvg/16/looknfeel.png
new file mode 100644 (file)
index 0000000..fb41810
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/looknfeel.png differ
diff --git a/swat/images/icons/crystalsvg/16/mac.png b/swat/images/icons/crystalsvg/16/mac.png
new file mode 100644 (file)
index 0000000..23e7e72
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/mac.png differ
diff --git a/swat/images/icons/crystalsvg/16/mail.png b/swat/images/icons/crystalsvg/16/mail.png
new file mode 100644 (file)
index 0000000..b3c2974
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/mail.png differ
diff --git a/swat/images/icons/crystalsvg/16/mail_delete.png b/swat/images/icons/crystalsvg/16/mail_delete.png
new file mode 100644 (file)
index 0000000..65c7422
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/mail_delete.png differ
diff --git a/swat/images/icons/crystalsvg/16/mail_find.png b/swat/images/icons/crystalsvg/16/mail_find.png
new file mode 100644 (file)
index 0000000..81417be
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/mail_find.png differ
diff --git a/swat/images/icons/crystalsvg/16/mail_forward.png b/swat/images/icons/crystalsvg/16/mail_forward.png
new file mode 100644 (file)
index 0000000..150b624
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/mail_forward.png differ
diff --git a/swat/images/icons/crystalsvg/16/mail_generic.png b/swat/images/icons/crystalsvg/16/mail_generic.png
new file mode 100644 (file)
index 0000000..cf7160a
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/mail_generic.png differ
diff --git a/swat/images/icons/crystalsvg/16/mail_new.png b/swat/images/icons/crystalsvg/16/mail_new.png
new file mode 100644 (file)
index 0000000..c388644
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/mail_new.png differ
diff --git a/swat/images/icons/crystalsvg/16/mail_replay.png b/swat/images/icons/crystalsvg/16/mail_replay.png
new file mode 100644 (file)
index 0000000..af0b3b3
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/mail_replay.png differ
diff --git a/swat/images/icons/crystalsvg/16/mail_replyall.png b/swat/images/icons/crystalsvg/16/mail_replyall.png
new file mode 100644 (file)
index 0000000..8a3ae55
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/mail_replyall.png differ
diff --git a/swat/images/icons/crystalsvg/16/mail_send.png b/swat/images/icons/crystalsvg/16/mail_send.png
new file mode 100644 (file)
index 0000000..d96b1ec
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/mail_send.png differ
diff --git a/swat/images/icons/crystalsvg/16/mimetypes.png b/swat/images/icons/crystalsvg/16/mimetypes.png
new file mode 100644 (file)
index 0000000..623417d
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/mimetypes.png differ
diff --git a/swat/images/icons/crystalsvg/16/misc.png b/swat/images/icons/crystalsvg/16/misc.png
new file mode 100644 (file)
index 0000000..215fc6a
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/misc.png differ
diff --git a/swat/images/icons/crystalsvg/16/mouse.png b/swat/images/icons/crystalsvg/16/mouse.png
new file mode 100644 (file)
index 0000000..3c0d31d
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/mouse.png differ
diff --git a/swat/images/icons/crystalsvg/16/mousecursor.png b/swat/images/icons/crystalsvg/16/mousecursor.png
new file mode 100644 (file)
index 0000000..c0aa322
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/mousecursor.png differ
diff --git a/swat/images/icons/crystalsvg/16/mozilla.png b/swat/images/icons/crystalsvg/16/mozilla.png
new file mode 100644 (file)
index 0000000..b3ae537
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/mozilla.png differ
diff --git a/swat/images/icons/crystalsvg/16/mycomputer.png b/swat/images/icons/crystalsvg/16/mycomputer.png
new file mode 100644 (file)
index 0000000..c399a2f
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/mycomputer.png differ
diff --git a/swat/images/icons/crystalsvg/16/mymac.png b/swat/images/icons/crystalsvg/16/mymac.png
new file mode 100644 (file)
index 0000000..35d3658
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/mymac.png differ
diff --git a/swat/images/icons/crystalsvg/16/netscape.png b/swat/images/icons/crystalsvg/16/netscape.png
new file mode 100644 (file)
index 0000000..e36f58e
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/netscape.png differ
diff --git a/swat/images/icons/crystalsvg/16/network.png b/swat/images/icons/crystalsvg/16/network.png
new file mode 100644 (file)
index 0000000..ebfc6c3
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/network.png differ
diff --git a/swat/images/icons/crystalsvg/16/no.png b/swat/images/icons/crystalsvg/16/no.png
new file mode 100644 (file)
index 0000000..1cabc6e
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/no.png differ
diff --git a/swat/images/icons/crystalsvg/16/ok.png b/swat/images/icons/crystalsvg/16/ok.png
new file mode 100644 (file)
index 0000000..543710f
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/ok.png differ
diff --git a/swat/images/icons/crystalsvg/16/opera.png b/swat/images/icons/crystalsvg/16/opera.png
new file mode 100644 (file)
index 0000000..4694c2b
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/opera.png differ
diff --git a/swat/images/icons/crystalsvg/16/package.png b/swat/images/icons/crystalsvg/16/package.png
new file mode 100644 (file)
index 0000000..03483d7
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/package.png differ
diff --git a/swat/images/icons/crystalsvg/16/password.png b/swat/images/icons/crystalsvg/16/password.png
new file mode 100644 (file)
index 0000000..ca93f0d
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/password.png differ
diff --git a/swat/images/icons/crystalsvg/16/penguin.png b/swat/images/icons/crystalsvg/16/penguin.png
new file mode 100644 (file)
index 0000000..a0a9743
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/penguin.png differ
diff --git a/swat/images/icons/crystalsvg/16/pipe.png b/swat/images/icons/crystalsvg/16/pipe.png
new file mode 100644 (file)
index 0000000..5f4d840
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/pipe.png differ
diff --git a/swat/images/icons/crystalsvg/16/printer.png b/swat/images/icons/crystalsvg/16/printer.png
new file mode 100644 (file)
index 0000000..2fa62c3
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/printer.png differ
diff --git a/swat/images/icons/crystalsvg/16/proxy.png b/swat/images/icons/crystalsvg/16/proxy.png
new file mode 100644 (file)
index 0000000..69f8bb7
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/proxy.png differ
diff --git a/swat/images/icons/crystalsvg/16/quicktime.png b/swat/images/icons/crystalsvg/16/quicktime.png
new file mode 100644 (file)
index 0000000..de7b762
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/quicktime.png differ
diff --git a/swat/images/icons/crystalsvg/16/realplayer.png b/swat/images/icons/crystalsvg/16/realplayer.png
new file mode 100644 (file)
index 0000000..afa6392
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/realplayer.png differ
diff --git a/swat/images/icons/crystalsvg/16/redo.png b/swat/images/icons/crystalsvg/16/redo.png
new file mode 100644 (file)
index 0000000..5d6121b
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/redo.png differ
diff --git a/swat/images/icons/crystalsvg/16/reload.png b/swat/images/icons/crystalsvg/16/reload.png
new file mode 100644 (file)
index 0000000..eb0388d
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/reload.png differ
diff --git a/swat/images/icons/crystalsvg/16/run.png b/swat/images/icons/crystalsvg/16/run.png
new file mode 100644 (file)
index 0000000..215fc6a
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/run.png differ
diff --git a/swat/images/icons/crystalsvg/16/search.png b/swat/images/icons/crystalsvg/16/search.png
new file mode 100644 (file)
index 0000000..593a566
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/search.png differ
diff --git a/swat/images/icons/crystalsvg/16/services.png b/swat/images/icons/crystalsvg/16/services.png
new file mode 100644 (file)
index 0000000..af009d9
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/services.png differ
diff --git a/swat/images/icons/crystalsvg/16/socket.png b/swat/images/icons/crystalsvg/16/socket.png
new file mode 100644 (file)
index 0000000..7cfee72
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/socket.png differ
diff --git a/swat/images/icons/crystalsvg/16/spellcheck.png b/swat/images/icons/crystalsvg/16/spellcheck.png
new file mode 100644 (file)
index 0000000..dbb8aa6
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/spellcheck.png differ
diff --git a/swat/images/icons/crystalsvg/16/stop.png b/swat/images/icons/crystalsvg/16/stop.png
new file mode 100644 (file)
index 0000000..45c03d5
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/stop.png differ
diff --git a/swat/images/icons/crystalsvg/16/style.png b/swat/images/icons/crystalsvg/16/style.png
new file mode 100644 (file)
index 0000000..b727f8f
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/style.png differ
diff --git a/swat/images/icons/crystalsvg/16/stylesheet.png b/swat/images/icons/crystalsvg/16/stylesheet.png
new file mode 100644 (file)
index 0000000..63bbee6
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/stylesheet.png differ
diff --git a/swat/images/icons/crystalsvg/16/tar.png b/swat/images/icons/crystalsvg/16/tar.png
new file mode 100644 (file)
index 0000000..f641692
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/tar.png differ
diff --git a/swat/images/icons/crystalsvg/16/thumbnail.png b/swat/images/icons/crystalsvg/16/thumbnail.png
new file mode 100644 (file)
index 0000000..a8c7195
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/thumbnail.png differ
diff --git a/swat/images/icons/crystalsvg/16/todo.png b/swat/images/icons/crystalsvg/16/todo.png
new file mode 100644 (file)
index 0000000..b82a790
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/todo.png differ
diff --git a/swat/images/icons/crystalsvg/16/tux.png b/swat/images/icons/crystalsvg/16/tux.png
new file mode 100644 (file)
index 0000000..7b62cce
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/tux.png differ
diff --git a/swat/images/icons/crystalsvg/16/up.png b/swat/images/icons/crystalsvg/16/up.png
new file mode 100644 (file)
index 0000000..0777b0b
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/up.png differ
diff --git a/swat/images/icons/crystalsvg/16/wizard.png b/swat/images/icons/crystalsvg/16/wizard.png
new file mode 100644 (file)
index 0000000..3107990
Binary files /dev/null and b/swat/images/icons/crystalsvg/16/wizard.png differ
diff --git a/swat/images/icons/crystalsvg/22/antivirus.png b/swat/images/icons/crystalsvg/22/antivirus.png
new file mode 100644 (file)
index 0000000..4ac0c80
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/antivirus.png differ
diff --git a/swat/images/icons/crystalsvg/22/appearance.png b/swat/images/icons/crystalsvg/22/appearance.png
new file mode 100644 (file)
index 0000000..985147d
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/appearance.png differ
diff --git a/swat/images/icons/crystalsvg/22/back.png b/swat/images/icons/crystalsvg/22/back.png
new file mode 100644 (file)
index 0000000..4148ab8
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/back.png differ
diff --git a/swat/images/icons/crystalsvg/22/background.png b/swat/images/icons/crystalsvg/22/background.png
new file mode 100644 (file)
index 0000000..5ab7323
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/background.png differ
diff --git a/swat/images/icons/crystalsvg/22/bell.png b/swat/images/icons/crystalsvg/22/bell.png
new file mode 100644 (file)
index 0000000..3482bac
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/bell.png differ
diff --git a/swat/images/icons/crystalsvg/22/blockdevice.png b/swat/images/icons/crystalsvg/22/blockdevice.png
new file mode 100644 (file)
index 0000000..c1330e8
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/blockdevice.png differ
diff --git a/swat/images/icons/crystalsvg/22/bookmark.png b/swat/images/icons/crystalsvg/22/bookmark.png
new file mode 100644 (file)
index 0000000..ced954c
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/bookmark.png differ
diff --git a/swat/images/icons/crystalsvg/22/browser.png b/swat/images/icons/crystalsvg/22/browser.png
new file mode 100644 (file)
index 0000000..80a173d
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/browser.png differ
diff --git a/swat/images/icons/crystalsvg/22/button_cancel.png b/swat/images/icons/crystalsvg/22/button_cancel.png
new file mode 100644 (file)
index 0000000..9691957
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/button_cancel.png differ
diff --git a/swat/images/icons/crystalsvg/22/button_ok.png b/swat/images/icons/crystalsvg/22/button_ok.png
new file mode 100644 (file)
index 0000000..31c064b
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/button_ok.png differ
diff --git a/swat/images/icons/crystalsvg/22/cache.png b/swat/images/icons/crystalsvg/22/cache.png
new file mode 100644 (file)
index 0000000..a9d0dd2
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/cache.png differ
diff --git a/swat/images/icons/crystalsvg/22/clock.png b/swat/images/icons/crystalsvg/22/clock.png
new file mode 100644 (file)
index 0000000..d109933
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/clock.png differ
diff --git a/swat/images/icons/crystalsvg/22/colorize.png b/swat/images/icons/crystalsvg/22/colorize.png
new file mode 100644 (file)
index 0000000..985147d
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/colorize.png differ
diff --git a/swat/images/icons/crystalsvg/22/colors.png b/swat/images/icons/crystalsvg/22/colors.png
new file mode 100644 (file)
index 0000000..a2fb946
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/colors.png differ
diff --git a/swat/images/icons/crystalsvg/22/configure.png b/swat/images/icons/crystalsvg/22/configure.png
new file mode 100644 (file)
index 0000000..96ba433
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/configure.png differ
diff --git a/swat/images/icons/crystalsvg/22/contents.png b/swat/images/icons/crystalsvg/22/contents.png
new file mode 100644 (file)
index 0000000..7596e67
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/contents.png differ
diff --git a/swat/images/icons/crystalsvg/22/core.png b/swat/images/icons/crystalsvg/22/core.png
new file mode 100644 (file)
index 0000000..b12540b
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/core.png differ
diff --git a/swat/images/icons/crystalsvg/22/date.png b/swat/images/icons/crystalsvg/22/date.png
new file mode 100644 (file)
index 0000000..0e9f681
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/date.png differ
diff --git a/swat/images/icons/crystalsvg/22/decrypted.png b/swat/images/icons/crystalsvg/22/decrypted.png
new file mode 100644 (file)
index 0000000..2228639
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/decrypted.png differ
diff --git a/swat/images/icons/crystalsvg/22/desktop.png b/swat/images/icons/crystalsvg/22/desktop.png
new file mode 100644 (file)
index 0000000..7a90fa1
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/desktop.png differ
diff --git a/swat/images/icons/crystalsvg/22/display.png b/swat/images/icons/crystalsvg/22/display.png
new file mode 100644 (file)
index 0000000..4c8a288
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/display.png differ
diff --git a/swat/images/icons/crystalsvg/22/document.png b/swat/images/icons/crystalsvg/22/document.png
new file mode 100644 (file)
index 0000000..8901c3a
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/document.png differ
diff --git a/swat/images/icons/crystalsvg/22/down.png b/swat/images/icons/crystalsvg/22/down.png
new file mode 100644 (file)
index 0000000..aeaa0c8
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/down.png differ
diff --git a/swat/images/icons/crystalsvg/22/edit.png b/swat/images/icons/crystalsvg/22/edit.png
new file mode 100644 (file)
index 0000000..ce8b226
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/edit.png differ
diff --git a/swat/images/icons/crystalsvg/22/editcopy.png b/swat/images/icons/crystalsvg/22/editcopy.png
new file mode 100644 (file)
index 0000000..eac4d8c
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/editcopy.png differ
diff --git a/swat/images/icons/crystalsvg/22/editcut.png b/swat/images/icons/crystalsvg/22/editcut.png
new file mode 100644 (file)
index 0000000..192b575
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/editcut.png differ
diff --git a/swat/images/icons/crystalsvg/22/editdelete.png b/swat/images/icons/crystalsvg/22/editdelete.png
new file mode 100644 (file)
index 0000000..6fb193f
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/editdelete.png differ
diff --git a/swat/images/icons/crystalsvg/22/editpaste.png b/swat/images/icons/crystalsvg/22/editpaste.png
new file mode 100644 (file)
index 0000000..b8454f9
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/editpaste.png differ
diff --git a/swat/images/icons/crystalsvg/22/edittrash.png b/swat/images/icons/crystalsvg/22/edittrash.png
new file mode 100644 (file)
index 0000000..eea039d
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/edittrash.png differ
diff --git a/swat/images/icons/crystalsvg/22/email.png b/swat/images/icons/crystalsvg/22/email.png
new file mode 100644 (file)
index 0000000..a21f68f
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/email.png differ
diff --git a/swat/images/icons/crystalsvg/22/empty.png b/swat/images/icons/crystalsvg/22/empty.png
new file mode 100644 (file)
index 0000000..1b14945
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/empty.png differ
diff --git a/swat/images/icons/crystalsvg/22/encrypted.png b/swat/images/icons/crystalsvg/22/encrypted.png
new file mode 100644 (file)
index 0000000..351df87
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/encrypted.png differ
diff --git a/swat/images/icons/crystalsvg/22/energy.png b/swat/images/icons/crystalsvg/22/energy.png
new file mode 100644 (file)
index 0000000..f70a153
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/energy.png differ
diff --git a/swat/images/icons/crystalsvg/22/error.png b/swat/images/icons/crystalsvg/22/error.png
new file mode 100644 (file)
index 0000000..ddce82a
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/error.png differ
diff --git a/swat/images/icons/crystalsvg/22/exec.png b/swat/images/icons/crystalsvg/22/exec.png
new file mode 100644 (file)
index 0000000..8e3b5a9
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/exec.png differ
diff --git a/swat/images/icons/crystalsvg/22/filefind.png b/swat/images/icons/crystalsvg/22/filefind.png
new file mode 100644 (file)
index 0000000..40762a0
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/filefind.png differ
diff --git a/swat/images/icons/crystalsvg/22/filenew.png b/swat/images/icons/crystalsvg/22/filenew.png
new file mode 100644 (file)
index 0000000..7be37e8
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/filenew.png differ
diff --git a/swat/images/icons/crystalsvg/22/fileopen.png b/swat/images/icons/crystalsvg/22/fileopen.png
new file mode 100644 (file)
index 0000000..a79982e
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/fileopen.png differ
diff --git a/swat/images/icons/crystalsvg/22/fileprint.png b/swat/images/icons/crystalsvg/22/fileprint.png
new file mode 100644 (file)
index 0000000..ca4b80e
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/fileprint.png differ
diff --git a/swat/images/icons/crystalsvg/22/filesave.png b/swat/images/icons/crystalsvg/22/filesave.png
new file mode 100644 (file)
index 0000000..f85b99a
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/filesave.png differ
diff --git a/swat/images/icons/crystalsvg/22/filesaveas.png b/swat/images/icons/crystalsvg/22/filesaveas.png
new file mode 100644 (file)
index 0000000..517fc2e
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/filesaveas.png differ
diff --git a/swat/images/icons/crystalsvg/22/find.png b/swat/images/icons/crystalsvg/22/find.png
new file mode 100644 (file)
index 0000000..da3da6d
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/find.png differ
diff --git a/swat/images/icons/crystalsvg/22/folder.png b/swat/images/icons/crystalsvg/22/folder.png
new file mode 100644 (file)
index 0000000..33cc0bb
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/folder.png differ
diff --git a/swat/images/icons/crystalsvg/22/folder_home.png b/swat/images/icons/crystalsvg/22/folder_home.png
new file mode 100644 (file)
index 0000000..3afa803
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/folder_home.png differ
diff --git a/swat/images/icons/crystalsvg/22/folder_important.png b/swat/images/icons/crystalsvg/22/folder_important.png
new file mode 100644 (file)
index 0000000..a24e1a0
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/folder_important.png differ
diff --git a/swat/images/icons/crystalsvg/22/folder_locked.png b/swat/images/icons/crystalsvg/22/folder_locked.png
new file mode 100644 (file)
index 0000000..9dc2e48
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/folder_locked.png differ
diff --git a/swat/images/icons/crystalsvg/22/folder_open.png b/swat/images/icons/crystalsvg/22/folder_open.png
new file mode 100644 (file)
index 0000000..b0534c4
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/folder_open.png differ
diff --git a/swat/images/icons/crystalsvg/22/font.png b/swat/images/icons/crystalsvg/22/font.png
new file mode 100644 (file)
index 0000000..1ac93bc
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/font.png differ
diff --git a/swat/images/icons/crystalsvg/22/forward.png b/swat/images/icons/crystalsvg/22/forward.png
new file mode 100644 (file)
index 0000000..aa3ce7f
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/forward.png differ
diff --git a/swat/images/icons/crystalsvg/22/gohome.png b/swat/images/icons/crystalsvg/22/gohome.png
new file mode 100644 (file)
index 0000000..14ee484
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/gohome.png differ
diff --git a/swat/images/icons/crystalsvg/22/help.png b/swat/images/icons/crystalsvg/22/help.png
new file mode 100644 (file)
index 0000000..9fe7652
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/help.png differ
diff --git a/swat/images/icons/crystalsvg/22/history.png b/swat/images/icons/crystalsvg/22/history.png
new file mode 100644 (file)
index 0000000..ea64540
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/history.png differ
diff --git a/swat/images/icons/crystalsvg/22/hwinfo.png b/swat/images/icons/crystalsvg/22/hwinfo.png
new file mode 100644 (file)
index 0000000..8d0c3cf
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/hwinfo.png differ
diff --git a/swat/images/icons/crystalsvg/22/idea.png b/swat/images/icons/crystalsvg/22/idea.png
new file mode 100644 (file)
index 0000000..d9e7d12
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/idea.png differ
diff --git a/swat/images/icons/crystalsvg/22/info.png b/swat/images/icons/crystalsvg/22/info.png
new file mode 100644 (file)
index 0000000..3626ba7
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/info.png differ
diff --git a/swat/images/icons/crystalsvg/22/kcoloredit.png b/swat/images/icons/crystalsvg/22/kcoloredit.png
new file mode 100644 (file)
index 0000000..a2fb946
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/kcoloredit.png differ
diff --git a/swat/images/icons/crystalsvg/22/kcontrol.png b/swat/images/icons/crystalsvg/22/kcontrol.png
new file mode 100644 (file)
index 0000000..28a7199
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/kcontrol.png differ
diff --git a/swat/images/icons/crystalsvg/22/keyboard.png b/swat/images/icons/crystalsvg/22/keyboard.png
new file mode 100644 (file)
index 0000000..637ed86
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/keyboard.png differ
diff --git a/swat/images/icons/crystalsvg/22/khelpcenter.png b/swat/images/icons/crystalsvg/22/khelpcenter.png
new file mode 100644 (file)
index 0000000..44588c9
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/khelpcenter.png differ
diff --git a/swat/images/icons/crystalsvg/22/konqueror.png b/swat/images/icons/crystalsvg/22/konqueror.png
new file mode 100644 (file)
index 0000000..4f65bf5
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/konqueror.png differ
diff --git a/swat/images/icons/crystalsvg/22/kpaint.png b/swat/images/icons/crystalsvg/22/kpaint.png
new file mode 100644 (file)
index 0000000..faa687b
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/kpaint.png differ
diff --git a/swat/images/icons/crystalsvg/22/krita.png b/swat/images/icons/crystalsvg/22/krita.png
new file mode 100644 (file)
index 0000000..253cc09
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/krita.png differ
diff --git a/swat/images/icons/crystalsvg/22/ksmiletris.png b/swat/images/icons/crystalsvg/22/ksmiletris.png
new file mode 100644 (file)
index 0000000..e4b46fe
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/ksmiletris.png differ
diff --git a/swat/images/icons/crystalsvg/22/ksnapshot.png b/swat/images/icons/crystalsvg/22/ksnapshot.png
new file mode 100644 (file)
index 0000000..9a8db0b
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/ksnapshot.png differ
diff --git a/swat/images/icons/crystalsvg/22/ktalkd.png b/swat/images/icons/crystalsvg/22/ktalkd.png
new file mode 100644 (file)
index 0000000..d631036
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/ktalkd.png differ
diff --git a/swat/images/icons/crystalsvg/22/kuser.png b/swat/images/icons/crystalsvg/22/kuser.png
new file mode 100644 (file)
index 0000000..ee321d4
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/kuser.png differ
diff --git a/swat/images/icons/crystalsvg/22/kview.png b/swat/images/icons/crystalsvg/22/kview.png
new file mode 100644 (file)
index 0000000..d868a8d
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/kview.png differ
diff --git a/swat/images/icons/crystalsvg/22/launch.png b/swat/images/icons/crystalsvg/22/launch.png
new file mode 100644 (file)
index 0000000..da97aef
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/launch.png differ
diff --git a/swat/images/icons/crystalsvg/22/linuxconf.png b/swat/images/icons/crystalsvg/22/linuxconf.png
new file mode 100644 (file)
index 0000000..a7fd291
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/linuxconf.png differ
diff --git a/swat/images/icons/crystalsvg/22/locale.png b/swat/images/icons/crystalsvg/22/locale.png
new file mode 100644 (file)
index 0000000..553e683
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/locale.png differ
diff --git a/swat/images/icons/crystalsvg/22/looknfeel.png b/swat/images/icons/crystalsvg/22/looknfeel.png
new file mode 100644 (file)
index 0000000..0792b3a
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/looknfeel.png differ
diff --git a/swat/images/icons/crystalsvg/22/mac.png b/swat/images/icons/crystalsvg/22/mac.png
new file mode 100644 (file)
index 0000000..1e8db45
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/mac.png differ
diff --git a/swat/images/icons/crystalsvg/22/mail.png b/swat/images/icons/crystalsvg/22/mail.png
new file mode 100644 (file)
index 0000000..304b8fc
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/mail.png differ
diff --git a/swat/images/icons/crystalsvg/22/mail_delete.png b/swat/images/icons/crystalsvg/22/mail_delete.png
new file mode 100644 (file)
index 0000000..7b1430a
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/mail_delete.png differ
diff --git a/swat/images/icons/crystalsvg/22/mail_find.png b/swat/images/icons/crystalsvg/22/mail_find.png
new file mode 100644 (file)
index 0000000..202275a
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/mail_find.png differ
diff --git a/swat/images/icons/crystalsvg/22/mail_forward.png b/swat/images/icons/crystalsvg/22/mail_forward.png
new file mode 100644 (file)
index 0000000..919b41e
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/mail_forward.png differ
diff --git a/swat/images/icons/crystalsvg/22/mail_generic.png b/swat/images/icons/crystalsvg/22/mail_generic.png
new file mode 100644 (file)
index 0000000..732b5b6
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/mail_generic.png differ
diff --git a/swat/images/icons/crystalsvg/22/mail_new.png b/swat/images/icons/crystalsvg/22/mail_new.png
new file mode 100644 (file)
index 0000000..384cbf3
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/mail_new.png differ
diff --git a/swat/images/icons/crystalsvg/22/mail_replay.png b/swat/images/icons/crystalsvg/22/mail_replay.png
new file mode 100644 (file)
index 0000000..27c401a
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/mail_replay.png differ
diff --git a/swat/images/icons/crystalsvg/22/mail_replyall.png b/swat/images/icons/crystalsvg/22/mail_replyall.png
new file mode 100644 (file)
index 0000000..742a40b
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/mail_replyall.png differ
diff --git a/swat/images/icons/crystalsvg/22/mail_send.png b/swat/images/icons/crystalsvg/22/mail_send.png
new file mode 100644 (file)
index 0000000..a802f04
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/mail_send.png differ
diff --git a/swat/images/icons/crystalsvg/22/misc.png b/swat/images/icons/crystalsvg/22/misc.png
new file mode 100644 (file)
index 0000000..b5c8949
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/misc.png differ
diff --git a/swat/images/icons/crystalsvg/22/mouse.png b/swat/images/icons/crystalsvg/22/mouse.png
new file mode 100644 (file)
index 0000000..db3ddfa
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/mouse.png differ
diff --git a/swat/images/icons/crystalsvg/22/mozilla.png b/swat/images/icons/crystalsvg/22/mozilla.png
new file mode 100644 (file)
index 0000000..bd1b4d5
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/mozilla.png differ
diff --git a/swat/images/icons/crystalsvg/22/mycomputer.png b/swat/images/icons/crystalsvg/22/mycomputer.png
new file mode 100644 (file)
index 0000000..c707081
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/mycomputer.png differ
diff --git a/swat/images/icons/crystalsvg/22/mymac.png b/swat/images/icons/crystalsvg/22/mymac.png
new file mode 100644 (file)
index 0000000..f574f7b
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/mymac.png differ
diff --git a/swat/images/icons/crystalsvg/22/netscape.png b/swat/images/icons/crystalsvg/22/netscape.png
new file mode 100644 (file)
index 0000000..25cb9da
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/netscape.png differ
diff --git a/swat/images/icons/crystalsvg/22/network.png b/swat/images/icons/crystalsvg/22/network.png
new file mode 100644 (file)
index 0000000..071eed6
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/network.png differ
diff --git a/swat/images/icons/crystalsvg/22/next.png b/swat/images/icons/crystalsvg/22/next.png
new file mode 100644 (file)
index 0000000..5698be5
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/next.png differ
diff --git a/swat/images/icons/crystalsvg/22/password.png b/swat/images/icons/crystalsvg/22/password.png
new file mode 100644 (file)
index 0000000..2c84ee4
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/password.png differ
diff --git a/swat/images/icons/crystalsvg/22/penguin.png b/swat/images/icons/crystalsvg/22/penguin.png
new file mode 100644 (file)
index 0000000..83819e5
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/penguin.png differ
diff --git a/swat/images/icons/crystalsvg/22/previous.png b/swat/images/icons/crystalsvg/22/previous.png
new file mode 100644 (file)
index 0000000..fe11a30
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/previous.png differ
diff --git a/swat/images/icons/crystalsvg/22/proxy.png b/swat/images/icons/crystalsvg/22/proxy.png
new file mode 100644 (file)
index 0000000..e28c1b2
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/proxy.png differ
diff --git a/swat/images/icons/crystalsvg/22/quicktime.png b/swat/images/icons/crystalsvg/22/quicktime.png
new file mode 100644 (file)
index 0000000..bda5120
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/quicktime.png differ
diff --git a/swat/images/icons/crystalsvg/22/realplayer.png b/swat/images/icons/crystalsvg/22/realplayer.png
new file mode 100644 (file)
index 0000000..23cf04b
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/realplayer.png differ
diff --git a/swat/images/icons/crystalsvg/22/redo.png b/swat/images/icons/crystalsvg/22/redo.png
new file mode 100644 (file)
index 0000000..8a4c817
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/redo.png differ
diff --git a/swat/images/icons/crystalsvg/22/reload.png b/swat/images/icons/crystalsvg/22/reload.png
new file mode 100644 (file)
index 0000000..9b80d87
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/reload.png differ
diff --git a/swat/images/icons/crystalsvg/22/run.png b/swat/images/icons/crystalsvg/22/run.png
new file mode 100644 (file)
index 0000000..b5c8949
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/run.png differ
diff --git a/swat/images/icons/crystalsvg/22/search.png b/swat/images/icons/crystalsvg/22/search.png
new file mode 100644 (file)
index 0000000..4f880ab
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/search.png differ
diff --git a/swat/images/icons/crystalsvg/22/services.png b/swat/images/icons/crystalsvg/22/services.png
new file mode 100644 (file)
index 0000000..8d3eb53
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/services.png differ
diff --git a/swat/images/icons/crystalsvg/22/socket.png b/swat/images/icons/crystalsvg/22/socket.png
new file mode 100644 (file)
index 0000000..9261437
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/socket.png differ
diff --git a/swat/images/icons/crystalsvg/22/spellcheck.png b/swat/images/icons/crystalsvg/22/spellcheck.png
new file mode 100644 (file)
index 0000000..444dce6
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/spellcheck.png differ
diff --git a/swat/images/icons/crystalsvg/22/stop.png b/swat/images/icons/crystalsvg/22/stop.png
new file mode 100644 (file)
index 0000000..830e2e6
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/stop.png differ
diff --git a/swat/images/icons/crystalsvg/22/stylesheet.png b/swat/images/icons/crystalsvg/22/stylesheet.png
new file mode 100644 (file)
index 0000000..c3544ad
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/stylesheet.png differ
diff --git a/swat/images/icons/crystalsvg/22/thumbnail.png b/swat/images/icons/crystalsvg/22/thumbnail.png
new file mode 100644 (file)
index 0000000..fdb7c4e
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/thumbnail.png differ
diff --git a/swat/images/icons/crystalsvg/22/todo.png b/swat/images/icons/crystalsvg/22/todo.png
new file mode 100644 (file)
index 0000000..6002fb5
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/todo.png differ
diff --git a/swat/images/icons/crystalsvg/22/tux.png b/swat/images/icons/crystalsvg/22/tux.png
new file mode 100644 (file)
index 0000000..32c8514
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/tux.png differ
diff --git a/swat/images/icons/crystalsvg/22/up.png b/swat/images/icons/crystalsvg/22/up.png
new file mode 100644 (file)
index 0000000..dfd2fd0
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/up.png differ
diff --git a/swat/images/icons/crystalsvg/22/wizard.png b/swat/images/icons/crystalsvg/22/wizard.png
new file mode 100644 (file)
index 0000000..21d5e2f
Binary files /dev/null and b/swat/images/icons/crystalsvg/22/wizard.png differ
diff --git a/swat/images/icons/crystalsvg/32/access.png b/swat/images/icons/crystalsvg/32/access.png
new file mode 100644 (file)
index 0000000..58429ca
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/access.png differ
diff --git a/swat/images/icons/crystalsvg/32/agent.png b/swat/images/icons/crystalsvg/32/agent.png
new file mode 100644 (file)
index 0000000..d10a80c
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/agent.png differ
diff --git a/swat/images/icons/crystalsvg/32/antivirus.png b/swat/images/icons/crystalsvg/32/antivirus.png
new file mode 100644 (file)
index 0000000..eaca74a
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/antivirus.png differ
diff --git a/swat/images/icons/crystalsvg/32/appearance.png b/swat/images/icons/crystalsvg/32/appearance.png
new file mode 100644 (file)
index 0000000..3b39c56
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/appearance.png differ
diff --git a/swat/images/icons/crystalsvg/32/back.png b/swat/images/icons/crystalsvg/32/back.png
new file mode 100644 (file)
index 0000000..895755e
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/back.png differ
diff --git a/swat/images/icons/crystalsvg/32/background.png b/swat/images/icons/crystalsvg/32/background.png
new file mode 100644 (file)
index 0000000..45d81ed
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/background.png differ
diff --git a/swat/images/icons/crystalsvg/32/bell.png b/swat/images/icons/crystalsvg/32/bell.png
new file mode 100644 (file)
index 0000000..6f8293f
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/bell.png differ
diff --git a/swat/images/icons/crystalsvg/32/blockdevice.png b/swat/images/icons/crystalsvg/32/blockdevice.png
new file mode 100644 (file)
index 0000000..6553907
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/blockdevice.png differ
diff --git a/swat/images/icons/crystalsvg/32/bookmark.png b/swat/images/icons/crystalsvg/32/bookmark.png
new file mode 100644 (file)
index 0000000..028869c
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/bookmark.png differ
diff --git a/swat/images/icons/crystalsvg/32/browser.png b/swat/images/icons/crystalsvg/32/browser.png
new file mode 100644 (file)
index 0000000..cb3df0b
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/browser.png differ
diff --git a/swat/images/icons/crystalsvg/32/button_cancel.png b/swat/images/icons/crystalsvg/32/button_cancel.png
new file mode 100644 (file)
index 0000000..c6464d9
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/button_cancel.png differ
diff --git a/swat/images/icons/crystalsvg/32/button_ok.png b/swat/images/icons/crystalsvg/32/button_ok.png
new file mode 100644 (file)
index 0000000..230de53
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/button_ok.png differ
diff --git a/swat/images/icons/crystalsvg/32/cache.png b/swat/images/icons/crystalsvg/32/cache.png
new file mode 100644 (file)
index 0000000..7700fd9
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/cache.png differ
diff --git a/swat/images/icons/crystalsvg/32/clock.png b/swat/images/icons/crystalsvg/32/clock.png
new file mode 100644 (file)
index 0000000..0f93b36
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/clock.png differ
diff --git a/swat/images/icons/crystalsvg/32/colorize.png b/swat/images/icons/crystalsvg/32/colorize.png
new file mode 100644 (file)
index 0000000..3b39c56
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/colorize.png differ
diff --git a/swat/images/icons/crystalsvg/32/colors.png b/swat/images/icons/crystalsvg/32/colors.png
new file mode 100644 (file)
index 0000000..e5aa87c
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/colors.png differ
diff --git a/swat/images/icons/crystalsvg/32/configure.png b/swat/images/icons/crystalsvg/32/configure.png
new file mode 100644 (file)
index 0000000..1141564
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/configure.png differ
diff --git a/swat/images/icons/crystalsvg/32/contents.png b/swat/images/icons/crystalsvg/32/contents.png
new file mode 100644 (file)
index 0000000..2e86079
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/contents.png differ
diff --git a/swat/images/icons/crystalsvg/32/cookie.png b/swat/images/icons/crystalsvg/32/cookie.png
new file mode 100644 (file)
index 0000000..c062d07
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/cookie.png differ
diff --git a/swat/images/icons/crystalsvg/32/core.png b/swat/images/icons/crystalsvg/32/core.png
new file mode 100644 (file)
index 0000000..c3e6fd2
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/core.png differ
diff --git a/swat/images/icons/crystalsvg/32/date.png b/swat/images/icons/crystalsvg/32/date.png
new file mode 100644 (file)
index 0000000..54b3203
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/date.png differ
diff --git a/swat/images/icons/crystalsvg/32/decrypted.png b/swat/images/icons/crystalsvg/32/decrypted.png
new file mode 100644 (file)
index 0000000..0becd65
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/decrypted.png differ
diff --git a/swat/images/icons/crystalsvg/32/desktop.png b/swat/images/icons/crystalsvg/32/desktop.png
new file mode 100644 (file)
index 0000000..85b495e
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/desktop.png differ
diff --git a/swat/images/icons/crystalsvg/32/display.png b/swat/images/icons/crystalsvg/32/display.png
new file mode 100644 (file)
index 0000000..1d9b132
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/display.png differ
diff --git a/swat/images/icons/crystalsvg/32/document.png b/swat/images/icons/crystalsvg/32/document.png
new file mode 100644 (file)
index 0000000..1ddec27
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/document.png differ
diff --git a/swat/images/icons/crystalsvg/32/down.png b/swat/images/icons/crystalsvg/32/down.png
new file mode 100644 (file)
index 0000000..bbf31ec
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/down.png differ
diff --git a/swat/images/icons/crystalsvg/32/edit.png b/swat/images/icons/crystalsvg/32/edit.png
new file mode 100644 (file)
index 0000000..1d69145
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/edit.png differ
diff --git a/swat/images/icons/crystalsvg/32/editcopy.png b/swat/images/icons/crystalsvg/32/editcopy.png
new file mode 100644 (file)
index 0000000..cfa9cb4
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/editcopy.png differ
diff --git a/swat/images/icons/crystalsvg/32/editcut.png b/swat/images/icons/crystalsvg/32/editcut.png
new file mode 100644 (file)
index 0000000..79d2dca
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/editcut.png differ
diff --git a/swat/images/icons/crystalsvg/32/editdelete.png b/swat/images/icons/crystalsvg/32/editdelete.png
new file mode 100644 (file)
index 0000000..945d221
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/editdelete.png differ
diff --git a/swat/images/icons/crystalsvg/32/editpaste.png b/swat/images/icons/crystalsvg/32/editpaste.png
new file mode 100644 (file)
index 0000000..a192060
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/editpaste.png differ
diff --git a/swat/images/icons/crystalsvg/32/edittrash.png b/swat/images/icons/crystalsvg/32/edittrash.png
new file mode 100644 (file)
index 0000000..4bd294c
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/edittrash.png differ
diff --git a/swat/images/icons/crystalsvg/32/email.png b/swat/images/icons/crystalsvg/32/email.png
new file mode 100644 (file)
index 0000000..edaba05
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/email.png differ
diff --git a/swat/images/icons/crystalsvg/32/empty.png b/swat/images/icons/crystalsvg/32/empty.png
new file mode 100644 (file)
index 0000000..f274fd4
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/empty.png differ
diff --git a/swat/images/icons/crystalsvg/32/encrypted.png b/swat/images/icons/crystalsvg/32/encrypted.png
new file mode 100644 (file)
index 0000000..f6db914
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/encrypted.png differ
diff --git a/swat/images/icons/crystalsvg/32/energy.png b/swat/images/icons/crystalsvg/32/energy.png
new file mode 100644 (file)
index 0000000..97681a4
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/energy.png differ
diff --git a/swat/images/icons/crystalsvg/32/error.png b/swat/images/icons/crystalsvg/32/error.png
new file mode 100644 (file)
index 0000000..1327c24
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/error.png differ
diff --git a/swat/images/icons/crystalsvg/32/exec.png b/swat/images/icons/crystalsvg/32/exec.png
new file mode 100644 (file)
index 0000000..6d21477
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/exec.png differ
diff --git a/swat/images/icons/crystalsvg/32/favorites.png b/swat/images/icons/crystalsvg/32/favorites.png
new file mode 100644 (file)
index 0000000..b7e10c4
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/favorites.png differ
diff --git a/swat/images/icons/crystalsvg/32/filefind.png b/swat/images/icons/crystalsvg/32/filefind.png
new file mode 100644 (file)
index 0000000..418a8ad
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/filefind.png differ
diff --git a/swat/images/icons/crystalsvg/32/filenew.png b/swat/images/icons/crystalsvg/32/filenew.png
new file mode 100644 (file)
index 0000000..8a303b7
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/filenew.png differ
diff --git a/swat/images/icons/crystalsvg/32/fileopen.png b/swat/images/icons/crystalsvg/32/fileopen.png
new file mode 100644 (file)
index 0000000..503a004
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/fileopen.png differ
diff --git a/swat/images/icons/crystalsvg/32/fileprint.png b/swat/images/icons/crystalsvg/32/fileprint.png
new file mode 100644 (file)
index 0000000..4325b61
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/fileprint.png differ
diff --git a/swat/images/icons/crystalsvg/32/filesave.png b/swat/images/icons/crystalsvg/32/filesave.png
new file mode 100644 (file)
index 0000000..dd00abd
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/filesave.png differ
diff --git a/swat/images/icons/crystalsvg/32/filesaveas.png b/swat/images/icons/crystalsvg/32/filesaveas.png
new file mode 100644 (file)
index 0000000..61a080e
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/filesaveas.png differ
diff --git a/swat/images/icons/crystalsvg/32/find.png b/swat/images/icons/crystalsvg/32/find.png
new file mode 100644 (file)
index 0000000..91f6eb6
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/find.png differ
diff --git a/swat/images/icons/crystalsvg/32/folder.png b/swat/images/icons/crystalsvg/32/folder.png
new file mode 100644 (file)
index 0000000..91d8e09
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/folder.png differ
diff --git a/swat/images/icons/crystalsvg/32/folder_home.png b/swat/images/icons/crystalsvg/32/folder_home.png
new file mode 100644 (file)
index 0000000..baa8912
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/folder_home.png differ
diff --git a/swat/images/icons/crystalsvg/32/folder_important.png b/swat/images/icons/crystalsvg/32/folder_important.png
new file mode 100644 (file)
index 0000000..9f82d14
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/folder_important.png differ
diff --git a/swat/images/icons/crystalsvg/32/folder_locked.png b/swat/images/icons/crystalsvg/32/folder_locked.png
new file mode 100644 (file)
index 0000000..0e20d8c
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/folder_locked.png differ
diff --git a/swat/images/icons/crystalsvg/32/folder_open.png b/swat/images/icons/crystalsvg/32/folder_open.png
new file mode 100644 (file)
index 0000000..18cfb60
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/folder_open.png differ
diff --git a/swat/images/icons/crystalsvg/32/font.png b/swat/images/icons/crystalsvg/32/font.png
new file mode 100644 (file)
index 0000000..431ca00
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/font.png differ
diff --git a/swat/images/icons/crystalsvg/32/forward.png b/swat/images/icons/crystalsvg/32/forward.png
new file mode 100644 (file)
index 0000000..46ce06f
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/forward.png differ
diff --git a/swat/images/icons/crystalsvg/32/gohome.png b/swat/images/icons/crystalsvg/32/gohome.png
new file mode 100644 (file)
index 0000000..5205539
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/gohome.png differ
diff --git a/swat/images/icons/crystalsvg/32/help.png b/swat/images/icons/crystalsvg/32/help.png
new file mode 100644 (file)
index 0000000..5858f03
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/help.png differ
diff --git a/swat/images/icons/crystalsvg/32/hwinfo.png b/swat/images/icons/crystalsvg/32/hwinfo.png
new file mode 100644 (file)
index 0000000..c9ad3a0
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/hwinfo.png differ
diff --git a/swat/images/icons/crystalsvg/32/icons.png b/swat/images/icons/crystalsvg/32/icons.png
new file mode 100644 (file)
index 0000000..a12f847
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/icons.png differ
diff --git a/swat/images/icons/crystalsvg/32/iconthemes.png b/swat/images/icons/crystalsvg/32/iconthemes.png
new file mode 100644 (file)
index 0000000..c532675
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/iconthemes.png differ
diff --git a/swat/images/icons/crystalsvg/32/important.png b/swat/images/icons/crystalsvg/32/important.png
new file mode 100644 (file)
index 0000000..d83f349
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/important.png differ
diff --git a/swat/images/icons/crystalsvg/32/info.png b/swat/images/icons/crystalsvg/32/info.png
new file mode 100644 (file)
index 0000000..4405fae
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/info.png differ
diff --git a/swat/images/icons/crystalsvg/32/kcoloredit.png b/swat/images/icons/crystalsvg/32/kcoloredit.png
new file mode 100644 (file)
index 0000000..e5aa87c
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/kcoloredit.png differ
diff --git a/swat/images/icons/crystalsvg/32/kcontrol.png b/swat/images/icons/crystalsvg/32/kcontrol.png
new file mode 100644 (file)
index 0000000..6537ba7
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/kcontrol.png differ
diff --git a/swat/images/icons/crystalsvg/32/keyboard.png b/swat/images/icons/crystalsvg/32/keyboard.png
new file mode 100644 (file)
index 0000000..3bbc805
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/keyboard.png differ
diff --git a/swat/images/icons/crystalsvg/32/khelpcenter.png b/swat/images/icons/crystalsvg/32/khelpcenter.png
new file mode 100644 (file)
index 0000000..a626c9d
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/khelpcenter.png differ
diff --git a/swat/images/icons/crystalsvg/32/kmix.png b/swat/images/icons/crystalsvg/32/kmix.png
new file mode 100644 (file)
index 0000000..c122c88
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/kmix.png differ
diff --git a/swat/images/icons/crystalsvg/32/knotify.png b/swat/images/icons/crystalsvg/32/knotify.png
new file mode 100644 (file)
index 0000000..ede0d8e
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/knotify.png differ
diff --git a/swat/images/icons/crystalsvg/32/konqueror.png b/swat/images/icons/crystalsvg/32/konqueror.png
new file mode 100644 (file)
index 0000000..1a04af2
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/konqueror.png differ
diff --git a/swat/images/icons/crystalsvg/32/kpackage.png b/swat/images/icons/crystalsvg/32/kpackage.png
new file mode 100644 (file)
index 0000000..b938d97
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/kpackage.png differ
diff --git a/swat/images/icons/crystalsvg/32/kpaint.png b/swat/images/icons/crystalsvg/32/kpaint.png
new file mode 100644 (file)
index 0000000..6abbe8c
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/kpaint.png differ
diff --git a/swat/images/icons/crystalsvg/32/kpersonalizer.png b/swat/images/icons/crystalsvg/32/kpersonalizer.png
new file mode 100644 (file)
index 0000000..cc3e986
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/kpersonalizer.png differ
diff --git a/swat/images/icons/crystalsvg/32/krita.png b/swat/images/icons/crystalsvg/32/krita.png
new file mode 100644 (file)
index 0000000..eee2e32
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/krita.png differ
diff --git a/swat/images/icons/crystalsvg/32/ksmiletris.png b/swat/images/icons/crystalsvg/32/ksmiletris.png
new file mode 100644 (file)
index 0000000..2c38e3c
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/ksmiletris.png differ
diff --git a/swat/images/icons/crystalsvg/32/ksnapshot.png b/swat/images/icons/crystalsvg/32/ksnapshot.png
new file mode 100644 (file)
index 0000000..4619ae8
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/ksnapshot.png differ
diff --git a/swat/images/icons/crystalsvg/32/ktalkd.png b/swat/images/icons/crystalsvg/32/ktalkd.png
new file mode 100644 (file)
index 0000000..896c9be
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/ktalkd.png differ
diff --git a/swat/images/icons/crystalsvg/32/ktip.png b/swat/images/icons/crystalsvg/32/ktip.png
new file mode 100644 (file)
index 0000000..ee1b839
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/ktip.png differ
diff --git a/swat/images/icons/crystalsvg/32/kuser.png b/swat/images/icons/crystalsvg/32/kuser.png
new file mode 100644 (file)
index 0000000..a5cbf22
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/kuser.png differ
diff --git a/swat/images/icons/crystalsvg/32/kview.png b/swat/images/icons/crystalsvg/32/kview.png
new file mode 100644 (file)
index 0000000..31186ed
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/kview.png differ
diff --git a/swat/images/icons/crystalsvg/32/launch.png b/swat/images/icons/crystalsvg/32/launch.png
new file mode 100644 (file)
index 0000000..5f61bea
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/launch.png differ
diff --git a/swat/images/icons/crystalsvg/32/linuxconf.png b/swat/images/icons/crystalsvg/32/linuxconf.png
new file mode 100644 (file)
index 0000000..816291c
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/linuxconf.png differ
diff --git a/swat/images/icons/crystalsvg/32/locale.png b/swat/images/icons/crystalsvg/32/locale.png
new file mode 100644 (file)
index 0000000..96b4201
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/locale.png differ
diff --git a/swat/images/icons/crystalsvg/32/looknfeel.png b/swat/images/icons/crystalsvg/32/looknfeel.png
new file mode 100644 (file)
index 0000000..75e2921
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/looknfeel.png differ
diff --git a/swat/images/icons/crystalsvg/32/mac.png b/swat/images/icons/crystalsvg/32/mac.png
new file mode 100644 (file)
index 0000000..68b8b66
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/mac.png differ
diff --git a/swat/images/icons/crystalsvg/32/mail.png b/swat/images/icons/crystalsvg/32/mail.png
new file mode 100644 (file)
index 0000000..e78a617
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/mail.png differ
diff --git a/swat/images/icons/crystalsvg/32/mail_delete.png b/swat/images/icons/crystalsvg/32/mail_delete.png
new file mode 100644 (file)
index 0000000..f66cc05
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/mail_delete.png differ
diff --git a/swat/images/icons/crystalsvg/32/mail_find.png b/swat/images/icons/crystalsvg/32/mail_find.png
new file mode 100644 (file)
index 0000000..7992c47
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/mail_find.png differ
diff --git a/swat/images/icons/crystalsvg/32/mail_generic.png b/swat/images/icons/crystalsvg/32/mail_generic.png
new file mode 100644 (file)
index 0000000..4d9cf72
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/mail_generic.png differ
diff --git a/swat/images/icons/crystalsvg/32/mail_new.png b/swat/images/icons/crystalsvg/32/mail_new.png
new file mode 100644 (file)
index 0000000..e8dfc7c
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/mail_new.png differ
diff --git a/swat/images/icons/crystalsvg/32/mail_replay.png b/swat/images/icons/crystalsvg/32/mail_replay.png
new file mode 100644 (file)
index 0000000..170f2be
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/mail_replay.png differ
diff --git a/swat/images/icons/crystalsvg/32/mail_send.png b/swat/images/icons/crystalsvg/32/mail_send.png
new file mode 100644 (file)
index 0000000..01bd046
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/mail_send.png differ
diff --git a/swat/images/icons/crystalsvg/32/mimetypes.png b/swat/images/icons/crystalsvg/32/mimetypes.png
new file mode 100644 (file)
index 0000000..ec40f8c
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/mimetypes.png differ
diff --git a/swat/images/icons/crystalsvg/32/misc.png b/swat/images/icons/crystalsvg/32/misc.png
new file mode 100644 (file)
index 0000000..6d21477
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/misc.png differ
diff --git a/swat/images/icons/crystalsvg/32/mouse.png b/swat/images/icons/crystalsvg/32/mouse.png
new file mode 100644 (file)
index 0000000..c4a2d46
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/mouse.png differ
diff --git a/swat/images/icons/crystalsvg/32/mozilla.png b/swat/images/icons/crystalsvg/32/mozilla.png
new file mode 100644 (file)
index 0000000..e9b48d5
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/mozilla.png differ
diff --git a/swat/images/icons/crystalsvg/32/mycomputer.png b/swat/images/icons/crystalsvg/32/mycomputer.png
new file mode 100644 (file)
index 0000000..ac09548
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/mycomputer.png differ
diff --git a/swat/images/icons/crystalsvg/32/mymac.png b/swat/images/icons/crystalsvg/32/mymac.png
new file mode 100644 (file)
index 0000000..5eefb93
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/mymac.png differ
diff --git a/swat/images/icons/crystalsvg/32/netscape.png b/swat/images/icons/crystalsvg/32/netscape.png
new file mode 100644 (file)
index 0000000..9167a85
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/netscape.png differ
diff --git a/swat/images/icons/crystalsvg/32/network.png b/swat/images/icons/crystalsvg/32/network.png
new file mode 100644 (file)
index 0000000..8175a4a
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/network.png differ
diff --git a/swat/images/icons/crystalsvg/32/opera.png b/swat/images/icons/crystalsvg/32/opera.png
new file mode 100644 (file)
index 0000000..616f3ab
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/opera.png differ
diff --git a/swat/images/icons/crystalsvg/32/package.png b/swat/images/icons/crystalsvg/32/package.png
new file mode 100644 (file)
index 0000000..e13d3d5
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/package.png differ
diff --git a/swat/images/icons/crystalsvg/32/password.png b/swat/images/icons/crystalsvg/32/password.png
new file mode 100644 (file)
index 0000000..f59040a
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/password.png differ
diff --git a/swat/images/icons/crystalsvg/32/penguin.png b/swat/images/icons/crystalsvg/32/penguin.png
new file mode 100644 (file)
index 0000000..28f86e3
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/penguin.png differ
diff --git a/swat/images/icons/crystalsvg/32/pipe.png b/swat/images/icons/crystalsvg/32/pipe.png
new file mode 100644 (file)
index 0000000..b23fad2
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/pipe.png differ
diff --git a/swat/images/icons/crystalsvg/32/proxy.png b/swat/images/icons/crystalsvg/32/proxy.png
new file mode 100644 (file)
index 0000000..46f68b2
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/proxy.png differ
diff --git a/swat/images/icons/crystalsvg/32/quicktime.png b/swat/images/icons/crystalsvg/32/quicktime.png
new file mode 100644 (file)
index 0000000..0b56fd2
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/quicktime.png differ
diff --git a/swat/images/icons/crystalsvg/32/realplayer.png b/swat/images/icons/crystalsvg/32/realplayer.png
new file mode 100644 (file)
index 0000000..edb1eef
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/realplayer.png differ
diff --git a/swat/images/icons/crystalsvg/32/redo.png b/swat/images/icons/crystalsvg/32/redo.png
new file mode 100644 (file)
index 0000000..8a065dd
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/redo.png differ
diff --git a/swat/images/icons/crystalsvg/32/reload.png b/swat/images/icons/crystalsvg/32/reload.png
new file mode 100644 (file)
index 0000000..b6b5cc1
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/reload.png differ
diff --git a/swat/images/icons/crystalsvg/32/run.png b/swat/images/icons/crystalsvg/32/run.png
new file mode 100644 (file)
index 0000000..6d21477
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/run.png differ
diff --git a/swat/images/icons/crystalsvg/32/search.png b/swat/images/icons/crystalsvg/32/search.png
new file mode 100644 (file)
index 0000000..f507381
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/search.png differ
diff --git a/swat/images/icons/crystalsvg/32/services.png b/swat/images/icons/crystalsvg/32/services.png
new file mode 100644 (file)
index 0000000..67d84fb
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/services.png differ
diff --git a/swat/images/icons/crystalsvg/32/socket.png b/swat/images/icons/crystalsvg/32/socket.png
new file mode 100644 (file)
index 0000000..9118062
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/socket.png differ
diff --git a/swat/images/icons/crystalsvg/32/stop.png b/swat/images/icons/crystalsvg/32/stop.png
new file mode 100644 (file)
index 0000000..62823a1
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/stop.png differ
diff --git a/swat/images/icons/crystalsvg/32/style.png b/swat/images/icons/crystalsvg/32/style.png
new file mode 100644 (file)
index 0000000..2e29a93
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/style.png differ
diff --git a/swat/images/icons/crystalsvg/32/stylesheet.png b/swat/images/icons/crystalsvg/32/stylesheet.png
new file mode 100644 (file)
index 0000000..ab8918c
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/stylesheet.png differ
diff --git a/swat/images/icons/crystalsvg/32/todo.png b/swat/images/icons/crystalsvg/32/todo.png
new file mode 100644 (file)
index 0000000..7d113f1
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/todo.png differ
diff --git a/swat/images/icons/crystalsvg/32/tux.png b/swat/images/icons/crystalsvg/32/tux.png
new file mode 100644 (file)
index 0000000..c0c562e
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/tux.png differ
diff --git a/swat/images/icons/crystalsvg/32/up.png b/swat/images/icons/crystalsvg/32/up.png
new file mode 100644 (file)
index 0000000..4c06a24
Binary files /dev/null and b/swat/images/icons/crystalsvg/32/up.png differ
diff --git a/swat/images/icons/crystalsvg/48/access.png b/swat/images/icons/crystalsvg/48/access.png
new file mode 100644 (file)
index 0000000..2b5f2e6
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/access.png differ
diff --git a/swat/images/icons/crystalsvg/48/agent.png b/swat/images/icons/crystalsvg/48/agent.png
new file mode 100644 (file)
index 0000000..50864eb
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/agent.png differ
diff --git a/swat/images/icons/crystalsvg/48/antivirus.png b/swat/images/icons/crystalsvg/48/antivirus.png
new file mode 100644 (file)
index 0000000..2218bf1
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/antivirus.png differ
diff --git a/swat/images/icons/crystalsvg/48/back.png b/swat/images/icons/crystalsvg/48/back.png
new file mode 100644 (file)
index 0000000..fb16850
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/back.png differ
diff --git a/swat/images/icons/crystalsvg/48/background.png b/swat/images/icons/crystalsvg/48/background.png
new file mode 100644 (file)
index 0000000..7b7bf37
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/background.png differ
diff --git a/swat/images/icons/crystalsvg/48/bell.png b/swat/images/icons/crystalsvg/48/bell.png
new file mode 100644 (file)
index 0000000..0c4b6c5
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/bell.png differ
diff --git a/swat/images/icons/crystalsvg/48/blockdevice.png b/swat/images/icons/crystalsvg/48/blockdevice.png
new file mode 100644 (file)
index 0000000..894d148
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/blockdevice.png differ
diff --git a/swat/images/icons/crystalsvg/48/browser.png b/swat/images/icons/crystalsvg/48/browser.png
new file mode 100644 (file)
index 0000000..5452ee3
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/browser.png differ
diff --git a/swat/images/icons/crystalsvg/48/cache.png b/swat/images/icons/crystalsvg/48/cache.png
new file mode 100644 (file)
index 0000000..df779f4
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/cache.png differ
diff --git a/swat/images/icons/crystalsvg/48/clock.png b/swat/images/icons/crystalsvg/48/clock.png
new file mode 100644 (file)
index 0000000..b974797
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/clock.png differ
diff --git a/swat/images/icons/crystalsvg/48/colors.png b/swat/images/icons/crystalsvg/48/colors.png
new file mode 100644 (file)
index 0000000..4be4e35
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/colors.png differ
diff --git a/swat/images/icons/crystalsvg/48/core.png b/swat/images/icons/crystalsvg/48/core.png
new file mode 100644 (file)
index 0000000..92af81b
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/core.png differ
diff --git a/swat/images/icons/crystalsvg/48/date.png b/swat/images/icons/crystalsvg/48/date.png
new file mode 100644 (file)
index 0000000..a510951
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/date.png differ
diff --git a/swat/images/icons/crystalsvg/48/desktop.png b/swat/images/icons/crystalsvg/48/desktop.png
new file mode 100644 (file)
index 0000000..7abb750
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/desktop.png differ
diff --git a/swat/images/icons/crystalsvg/48/display.png b/swat/images/icons/crystalsvg/48/display.png
new file mode 100644 (file)
index 0000000..de72273
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/display.png differ
diff --git a/swat/images/icons/crystalsvg/48/document.png b/swat/images/icons/crystalsvg/48/document.png
new file mode 100644 (file)
index 0000000..21f079b
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/document.png differ
diff --git a/swat/images/icons/crystalsvg/48/email.png b/swat/images/icons/crystalsvg/48/email.png
new file mode 100644 (file)
index 0000000..431e692
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/email.png differ
diff --git a/swat/images/icons/crystalsvg/48/empty.png b/swat/images/icons/crystalsvg/48/empty.png
new file mode 100644 (file)
index 0000000..3cd16fc
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/empty.png differ
diff --git a/swat/images/icons/crystalsvg/48/encrypted.png b/swat/images/icons/crystalsvg/48/encrypted.png
new file mode 100644 (file)
index 0000000..b4ada7a
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/encrypted.png differ
diff --git a/swat/images/icons/crystalsvg/48/energy.png b/swat/images/icons/crystalsvg/48/energy.png
new file mode 100644 (file)
index 0000000..1e033ab
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/energy.png differ
diff --git a/swat/images/icons/crystalsvg/48/error.png b/swat/images/icons/crystalsvg/48/error.png
new file mode 100644 (file)
index 0000000..99579f1
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/error.png differ
diff --git a/swat/images/icons/crystalsvg/48/exec.png b/swat/images/icons/crystalsvg/48/exec.png
new file mode 100644 (file)
index 0000000..bb18406
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/exec.png differ
diff --git a/swat/images/icons/crystalsvg/48/favorites.png b/swat/images/icons/crystalsvg/48/favorites.png
new file mode 100644 (file)
index 0000000..d1f5e91
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/favorites.png differ
diff --git a/swat/images/icons/crystalsvg/48/fileprint.png b/swat/images/icons/crystalsvg/48/fileprint.png
new file mode 100644 (file)
index 0000000..2be5baa
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/fileprint.png differ
diff --git a/swat/images/icons/crystalsvg/48/folder.png b/swat/images/icons/crystalsvg/48/folder.png
new file mode 100644 (file)
index 0000000..4c57fb9
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/folder.png differ
diff --git a/swat/images/icons/crystalsvg/48/folder_home.png b/swat/images/icons/crystalsvg/48/folder_home.png
new file mode 100644 (file)
index 0000000..d08e6ab
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/folder_home.png differ
diff --git a/swat/images/icons/crystalsvg/48/folder_important.png b/swat/images/icons/crystalsvg/48/folder_important.png
new file mode 100644 (file)
index 0000000..c8fe646
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/folder_important.png differ
diff --git a/swat/images/icons/crystalsvg/48/folder_locked.png b/swat/images/icons/crystalsvg/48/folder_locked.png
new file mode 100644 (file)
index 0000000..3b24364
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/folder_locked.png differ
diff --git a/swat/images/icons/crystalsvg/48/folder_open.png b/swat/images/icons/crystalsvg/48/folder_open.png
new file mode 100644 (file)
index 0000000..3996a2c
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/folder_open.png differ
diff --git a/swat/images/icons/crystalsvg/48/font.png b/swat/images/icons/crystalsvg/48/font.png
new file mode 100644 (file)
index 0000000..21a0481
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/font.png differ
diff --git a/swat/images/icons/crystalsvg/48/forward.png b/swat/images/icons/crystalsvg/48/forward.png
new file mode 100644 (file)
index 0000000..69d0e53
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/forward.png differ
diff --git a/swat/images/icons/crystalsvg/48/gohome.png b/swat/images/icons/crystalsvg/48/gohome.png
new file mode 100644 (file)
index 0000000..d08e6ab
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/gohome.png differ
diff --git a/swat/images/icons/crystalsvg/48/hwinfo.png b/swat/images/icons/crystalsvg/48/hwinfo.png
new file mode 100644 (file)
index 0000000..67ba0e9
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/hwinfo.png differ
diff --git a/swat/images/icons/crystalsvg/48/icons.png b/swat/images/icons/crystalsvg/48/icons.png
new file mode 100644 (file)
index 0000000..a9100e7
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/icons.png differ
diff --git a/swat/images/icons/crystalsvg/48/iconthemes.png b/swat/images/icons/crystalsvg/48/iconthemes.png
new file mode 100644 (file)
index 0000000..05c6c4b
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/iconthemes.png differ
diff --git a/swat/images/icons/crystalsvg/48/important.png b/swat/images/icons/crystalsvg/48/important.png
new file mode 100644 (file)
index 0000000..fc64e63
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/important.png differ
diff --git a/swat/images/icons/crystalsvg/48/info.png b/swat/images/icons/crystalsvg/48/info.png
new file mode 100644 (file)
index 0000000..f21142b
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/info.png differ
diff --git a/swat/images/icons/crystalsvg/48/kcoloredit.png b/swat/images/icons/crystalsvg/48/kcoloredit.png
new file mode 100644 (file)
index 0000000..4be4e35
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/kcoloredit.png differ
diff --git a/swat/images/icons/crystalsvg/48/kcontrol.png b/swat/images/icons/crystalsvg/48/kcontrol.png
new file mode 100644 (file)
index 0000000..bde85be
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/kcontrol.png differ
diff --git a/swat/images/icons/crystalsvg/48/keyboard.png b/swat/images/icons/crystalsvg/48/keyboard.png
new file mode 100644 (file)
index 0000000..04c8211
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/keyboard.png differ
diff --git a/swat/images/icons/crystalsvg/48/khelpcenter.png b/swat/images/icons/crystalsvg/48/khelpcenter.png
new file mode 100644 (file)
index 0000000..970075d
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/khelpcenter.png differ
diff --git a/swat/images/icons/crystalsvg/48/kmix.png b/swat/images/icons/crystalsvg/48/kmix.png
new file mode 100644 (file)
index 0000000..e88e686
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/kmix.png differ
diff --git a/swat/images/icons/crystalsvg/48/knotify.png b/swat/images/icons/crystalsvg/48/knotify.png
new file mode 100644 (file)
index 0000000..b0aa6e8
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/knotify.png differ
diff --git a/swat/images/icons/crystalsvg/48/konqueror.png b/swat/images/icons/crystalsvg/48/konqueror.png
new file mode 100644 (file)
index 0000000..0edd9b5
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/konqueror.png differ
diff --git a/swat/images/icons/crystalsvg/48/kpackage.png b/swat/images/icons/crystalsvg/48/kpackage.png
new file mode 100644 (file)
index 0000000..4f629ea
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/kpackage.png differ
diff --git a/swat/images/icons/crystalsvg/48/kpaint.png b/swat/images/icons/crystalsvg/48/kpaint.png
new file mode 100644 (file)
index 0000000..2de7bfc
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/kpaint.png differ
diff --git a/swat/images/icons/crystalsvg/48/krita.png b/swat/images/icons/crystalsvg/48/krita.png
new file mode 100644 (file)
index 0000000..b6a47d0
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/krita.png differ
diff --git a/swat/images/icons/crystalsvg/48/ksmiletris.png b/swat/images/icons/crystalsvg/48/ksmiletris.png
new file mode 100644 (file)
index 0000000..17696b2
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/ksmiletris.png differ
diff --git a/swat/images/icons/crystalsvg/48/ksnapshot.png b/swat/images/icons/crystalsvg/48/ksnapshot.png
new file mode 100644 (file)
index 0000000..f962f5a
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/ksnapshot.png differ
diff --git a/swat/images/icons/crystalsvg/48/ktalkd.png b/swat/images/icons/crystalsvg/48/ktalkd.png
new file mode 100644 (file)
index 0000000..0ad792c
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/ktalkd.png differ
diff --git a/swat/images/icons/crystalsvg/48/ktip.png b/swat/images/icons/crystalsvg/48/ktip.png
new file mode 100644 (file)
index 0000000..de04d3a
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/ktip.png differ
diff --git a/swat/images/icons/crystalsvg/48/kuser.png b/swat/images/icons/crystalsvg/48/kuser.png
new file mode 100644 (file)
index 0000000..d8b241c
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/kuser.png differ
diff --git a/swat/images/icons/crystalsvg/48/kview.png b/swat/images/icons/crystalsvg/48/kview.png
new file mode 100644 (file)
index 0000000..e225390
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/kview.png differ
diff --git a/swat/images/icons/crystalsvg/48/linuxconf.png b/swat/images/icons/crystalsvg/48/linuxconf.png
new file mode 100644 (file)
index 0000000..1ed04dd
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/linuxconf.png differ
diff --git a/swat/images/icons/crystalsvg/48/locale.png b/swat/images/icons/crystalsvg/48/locale.png
new file mode 100644 (file)
index 0000000..e7defac
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/locale.png differ
diff --git a/swat/images/icons/crystalsvg/48/looknfeel.png b/swat/images/icons/crystalsvg/48/looknfeel.png
new file mode 100644 (file)
index 0000000..342ebd7
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/looknfeel.png differ
diff --git a/swat/images/icons/crystalsvg/48/mac.png b/swat/images/icons/crystalsvg/48/mac.png
new file mode 100644 (file)
index 0000000..40b1613
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/mac.png differ
diff --git a/swat/images/icons/crystalsvg/48/mail.png b/swat/images/icons/crystalsvg/48/mail.png
new file mode 100644 (file)
index 0000000..b865fd8
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/mail.png differ
diff --git a/swat/images/icons/crystalsvg/48/mouse.png b/swat/images/icons/crystalsvg/48/mouse.png
new file mode 100644 (file)
index 0000000..a35c240
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/mouse.png differ
diff --git a/swat/images/icons/crystalsvg/48/mozilla.png b/swat/images/icons/crystalsvg/48/mozilla.png
new file mode 100644 (file)
index 0000000..0655075
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/mozilla.png differ
diff --git a/swat/images/icons/crystalsvg/48/mycomputer.png b/swat/images/icons/crystalsvg/48/mycomputer.png
new file mode 100644 (file)
index 0000000..abe2119
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/mycomputer.png differ
diff --git a/swat/images/icons/crystalsvg/48/mymac.png b/swat/images/icons/crystalsvg/48/mymac.png
new file mode 100644 (file)
index 0000000..7d7eb97
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/mymac.png differ
diff --git a/swat/images/icons/crystalsvg/48/netscape.png b/swat/images/icons/crystalsvg/48/netscape.png
new file mode 100644 (file)
index 0000000..795ade4
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/netscape.png differ
diff --git a/swat/images/icons/crystalsvg/48/network.png b/swat/images/icons/crystalsvg/48/network.png
new file mode 100644 (file)
index 0000000..1b50abd
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/network.png differ
diff --git a/swat/images/icons/crystalsvg/48/opera.png b/swat/images/icons/crystalsvg/48/opera.png
new file mode 100644 (file)
index 0000000..f092f4e
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/opera.png differ
diff --git a/swat/images/icons/crystalsvg/48/package.png b/swat/images/icons/crystalsvg/48/package.png
new file mode 100644 (file)
index 0000000..db59aec
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/package.png differ
diff --git a/swat/images/icons/crystalsvg/48/password.png b/swat/images/icons/crystalsvg/48/password.png
new file mode 100644 (file)
index 0000000..cfe82a9
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/password.png differ
diff --git a/swat/images/icons/crystalsvg/48/penguin.png b/swat/images/icons/crystalsvg/48/penguin.png
new file mode 100644 (file)
index 0000000..61c96a2
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/penguin.png differ
diff --git a/swat/images/icons/crystalsvg/48/pipe.png b/swat/images/icons/crystalsvg/48/pipe.png
new file mode 100644 (file)
index 0000000..9b75ef8
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/pipe.png differ
diff --git a/swat/images/icons/crystalsvg/48/proxy.png b/swat/images/icons/crystalsvg/48/proxy.png
new file mode 100644 (file)
index 0000000..3683e29
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/proxy.png differ
diff --git a/swat/images/icons/crystalsvg/48/quicktime.png b/swat/images/icons/crystalsvg/48/quicktime.png
new file mode 100644 (file)
index 0000000..d4f6b2b
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/quicktime.png differ
diff --git a/swat/images/icons/crystalsvg/48/realplayer.png b/swat/images/icons/crystalsvg/48/realplayer.png
new file mode 100644 (file)
index 0000000..9713808
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/realplayer.png differ
diff --git a/swat/images/icons/crystalsvg/48/reload.png b/swat/images/icons/crystalsvg/48/reload.png
new file mode 100644 (file)
index 0000000..1830406
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/reload.png differ
diff --git a/swat/images/icons/crystalsvg/48/services.png b/swat/images/icons/crystalsvg/48/services.png
new file mode 100644 (file)
index 0000000..38e1e38
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/services.png differ
diff --git a/swat/images/icons/crystalsvg/48/socket.png b/swat/images/icons/crystalsvg/48/socket.png
new file mode 100644 (file)
index 0000000..98bfb35
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/socket.png differ
diff --git a/swat/images/icons/crystalsvg/48/style.png b/swat/images/icons/crystalsvg/48/style.png
new file mode 100644 (file)
index 0000000..5d8af7e
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/style.png differ
diff --git a/swat/images/icons/crystalsvg/48/stylesheet.png b/swat/images/icons/crystalsvg/48/stylesheet.png
new file mode 100644 (file)
index 0000000..f74586b
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/stylesheet.png differ
diff --git a/swat/images/icons/crystalsvg/48/tux.png b/swat/images/icons/crystalsvg/48/tux.png
new file mode 100644 (file)
index 0000000..d75f61b
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/tux.png differ
diff --git a/swat/images/icons/crystalsvg/48/up.png b/swat/images/icons/crystalsvg/48/up.png
new file mode 100644 (file)
index 0000000..5231986
Binary files /dev/null and b/swat/images/icons/crystalsvg/48/up.png differ
diff --git a/swat/images/icons/crystalsvg/64/antivirus.png b/swat/images/icons/crystalsvg/64/antivirus.png
new file mode 100644 (file)
index 0000000..c4aac8a
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/antivirus.png differ
diff --git a/swat/images/icons/crystalsvg/64/back.png b/swat/images/icons/crystalsvg/64/back.png
new file mode 100644 (file)
index 0000000..1941c2f
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/back.png differ
diff --git a/swat/images/icons/crystalsvg/64/background.png b/swat/images/icons/crystalsvg/64/background.png
new file mode 100644 (file)
index 0000000..617f37b
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/background.png differ
diff --git a/swat/images/icons/crystalsvg/64/bell.png b/swat/images/icons/crystalsvg/64/bell.png
new file mode 100644 (file)
index 0000000..f83c409
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/bell.png differ
diff --git a/swat/images/icons/crystalsvg/64/blockdevice.png b/swat/images/icons/crystalsvg/64/blockdevice.png
new file mode 100644 (file)
index 0000000..656b6e7
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/blockdevice.png differ
diff --git a/swat/images/icons/crystalsvg/64/browser.png b/swat/images/icons/crystalsvg/64/browser.png
new file mode 100644 (file)
index 0000000..2029384
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/browser.png differ
diff --git a/swat/images/icons/crystalsvg/64/cache.png b/swat/images/icons/crystalsvg/64/cache.png
new file mode 100644 (file)
index 0000000..a49b55d
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/cache.png differ
diff --git a/swat/images/icons/crystalsvg/64/clock.png b/swat/images/icons/crystalsvg/64/clock.png
new file mode 100644 (file)
index 0000000..5698b5e
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/clock.png differ
diff --git a/swat/images/icons/crystalsvg/64/colors.png b/swat/images/icons/crystalsvg/64/colors.png
new file mode 100644 (file)
index 0000000..6c76da0
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/colors.png differ
diff --git a/swat/images/icons/crystalsvg/64/core.png b/swat/images/icons/crystalsvg/64/core.png
new file mode 100644 (file)
index 0000000..3ea7a37
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/core.png differ
diff --git a/swat/images/icons/crystalsvg/64/date.png b/swat/images/icons/crystalsvg/64/date.png
new file mode 100644 (file)
index 0000000..06761d7
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/date.png differ
diff --git a/swat/images/icons/crystalsvg/64/desktop.png b/swat/images/icons/crystalsvg/64/desktop.png
new file mode 100644 (file)
index 0000000..e0dc3b0
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/desktop.png differ
diff --git a/swat/images/icons/crystalsvg/64/display.png b/swat/images/icons/crystalsvg/64/display.png
new file mode 100644 (file)
index 0000000..81beb9a
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/display.png differ
diff --git a/swat/images/icons/crystalsvg/64/document.png b/swat/images/icons/crystalsvg/64/document.png
new file mode 100644 (file)
index 0000000..ed0799b
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/document.png differ
diff --git a/swat/images/icons/crystalsvg/64/email.png b/swat/images/icons/crystalsvg/64/email.png
new file mode 100644 (file)
index 0000000..8a2ac80
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/email.png differ
diff --git a/swat/images/icons/crystalsvg/64/empty.png b/swat/images/icons/crystalsvg/64/empty.png
new file mode 100644 (file)
index 0000000..2ce620f
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/empty.png differ
diff --git a/swat/images/icons/crystalsvg/64/encrypted.png b/swat/images/icons/crystalsvg/64/encrypted.png
new file mode 100644 (file)
index 0000000..867039f
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/encrypted.png differ
diff --git a/swat/images/icons/crystalsvg/64/energy.png b/swat/images/icons/crystalsvg/64/energy.png
new file mode 100644 (file)
index 0000000..ef4017f
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/energy.png differ
diff --git a/swat/images/icons/crystalsvg/64/error.png b/swat/images/icons/crystalsvg/64/error.png
new file mode 100644 (file)
index 0000000..c486063
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/error.png differ
diff --git a/swat/images/icons/crystalsvg/64/exec.png b/swat/images/icons/crystalsvg/64/exec.png
new file mode 100644 (file)
index 0000000..da16a98
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/exec.png differ
diff --git a/swat/images/icons/crystalsvg/64/fileprint.png b/swat/images/icons/crystalsvg/64/fileprint.png
new file mode 100644 (file)
index 0000000..758bb8e
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/fileprint.png differ
diff --git a/swat/images/icons/crystalsvg/64/folder.png b/swat/images/icons/crystalsvg/64/folder.png
new file mode 100644 (file)
index 0000000..954d31a
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/folder.png differ
diff --git a/swat/images/icons/crystalsvg/64/folder_home.png b/swat/images/icons/crystalsvg/64/folder_home.png
new file mode 100644 (file)
index 0000000..acf3e4a
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/folder_home.png differ
diff --git a/swat/images/icons/crystalsvg/64/folder_important.png b/swat/images/icons/crystalsvg/64/folder_important.png
new file mode 100644 (file)
index 0000000..a534e6c
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/folder_important.png differ
diff --git a/swat/images/icons/crystalsvg/64/folder_locked.png b/swat/images/icons/crystalsvg/64/folder_locked.png
new file mode 100644 (file)
index 0000000..04d7b74
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/folder_locked.png differ
diff --git a/swat/images/icons/crystalsvg/64/folder_open.png b/swat/images/icons/crystalsvg/64/folder_open.png
new file mode 100644 (file)
index 0000000..d454d56
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/folder_open.png differ
diff --git a/swat/images/icons/crystalsvg/64/font.png b/swat/images/icons/crystalsvg/64/font.png
new file mode 100644 (file)
index 0000000..7236ba2
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/font.png differ
diff --git a/swat/images/icons/crystalsvg/64/forward.png b/swat/images/icons/crystalsvg/64/forward.png
new file mode 100644 (file)
index 0000000..2776d66
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/forward.png differ
diff --git a/swat/images/icons/crystalsvg/64/gohome.png b/swat/images/icons/crystalsvg/64/gohome.png
new file mode 100644 (file)
index 0000000..acf3e4a
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/gohome.png differ
diff --git a/swat/images/icons/crystalsvg/64/hwinfo.png b/swat/images/icons/crystalsvg/64/hwinfo.png
new file mode 100644 (file)
index 0000000..f08a5e5
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/hwinfo.png differ
diff --git a/swat/images/icons/crystalsvg/64/icons.png b/swat/images/icons/crystalsvg/64/icons.png
new file mode 100644 (file)
index 0000000..3891bc7
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/icons.png differ
diff --git a/swat/images/icons/crystalsvg/64/important.png b/swat/images/icons/crystalsvg/64/important.png
new file mode 100644 (file)
index 0000000..2da725a
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/important.png differ
diff --git a/swat/images/icons/crystalsvg/64/info.png b/swat/images/icons/crystalsvg/64/info.png
new file mode 100644 (file)
index 0000000..3a75f4a
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/info.png differ
diff --git a/swat/images/icons/crystalsvg/64/kcoloredit.png b/swat/images/icons/crystalsvg/64/kcoloredit.png
new file mode 100644 (file)
index 0000000..6c76da0
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/kcoloredit.png differ
diff --git a/swat/images/icons/crystalsvg/64/kcontrol.png b/swat/images/icons/crystalsvg/64/kcontrol.png
new file mode 100644 (file)
index 0000000..4d4db5d
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/kcontrol.png differ
diff --git a/swat/images/icons/crystalsvg/64/keyboard.png b/swat/images/icons/crystalsvg/64/keyboard.png
new file mode 100644 (file)
index 0000000..1a6e50f
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/keyboard.png differ
diff --git a/swat/images/icons/crystalsvg/64/khelpcenter.png b/swat/images/icons/crystalsvg/64/khelpcenter.png
new file mode 100644 (file)
index 0000000..44ddf68
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/khelpcenter.png differ
diff --git a/swat/images/icons/crystalsvg/64/kmix.png b/swat/images/icons/crystalsvg/64/kmix.png
new file mode 100644 (file)
index 0000000..fbe8e6d
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/kmix.png differ
diff --git a/swat/images/icons/crystalsvg/64/knotify.png b/swat/images/icons/crystalsvg/64/knotify.png
new file mode 100644 (file)
index 0000000..3a4d918
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/knotify.png differ
diff --git a/swat/images/icons/crystalsvg/64/konqueror.png b/swat/images/icons/crystalsvg/64/konqueror.png
new file mode 100644 (file)
index 0000000..530b3be
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/konqueror.png differ
diff --git a/swat/images/icons/crystalsvg/64/kpackage.png b/swat/images/icons/crystalsvg/64/kpackage.png
new file mode 100644 (file)
index 0000000..2053a1e
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/kpackage.png differ
diff --git a/swat/images/icons/crystalsvg/64/kpaint.png b/swat/images/icons/crystalsvg/64/kpaint.png
new file mode 100644 (file)
index 0000000..8d602ce
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/kpaint.png differ
diff --git a/swat/images/icons/crystalsvg/64/krita.png b/swat/images/icons/crystalsvg/64/krita.png
new file mode 100644 (file)
index 0000000..1b51da4
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/krita.png differ
diff --git a/swat/images/icons/crystalsvg/64/ksmiletris.png b/swat/images/icons/crystalsvg/64/ksmiletris.png
new file mode 100644 (file)
index 0000000..6c9b626
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/ksmiletris.png differ
diff --git a/swat/images/icons/crystalsvg/64/ksnapshot.png b/swat/images/icons/crystalsvg/64/ksnapshot.png
new file mode 100644 (file)
index 0000000..d999dad
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/ksnapshot.png differ
diff --git a/swat/images/icons/crystalsvg/64/ktalkd.png b/swat/images/icons/crystalsvg/64/ktalkd.png
new file mode 100644 (file)
index 0000000..e3d5be7
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/ktalkd.png differ
diff --git a/swat/images/icons/crystalsvg/64/ktip.png b/swat/images/icons/crystalsvg/64/ktip.png
new file mode 100644 (file)
index 0000000..3741fab
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/ktip.png differ
diff --git a/swat/images/icons/crystalsvg/64/kuser.png b/swat/images/icons/crystalsvg/64/kuser.png
new file mode 100644 (file)
index 0000000..57c5726
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/kuser.png differ
diff --git a/swat/images/icons/crystalsvg/64/kview.png b/swat/images/icons/crystalsvg/64/kview.png
new file mode 100644 (file)
index 0000000..dbe400a
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/kview.png differ
diff --git a/swat/images/icons/crystalsvg/64/linuxconf.png b/swat/images/icons/crystalsvg/64/linuxconf.png
new file mode 100644 (file)
index 0000000..684ab96
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/linuxconf.png differ
diff --git a/swat/images/icons/crystalsvg/64/locale.png b/swat/images/icons/crystalsvg/64/locale.png
new file mode 100644 (file)
index 0000000..042c0d3
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/locale.png differ
diff --git a/swat/images/icons/crystalsvg/64/looknfeel.png b/swat/images/icons/crystalsvg/64/looknfeel.png
new file mode 100644 (file)
index 0000000..b73346e
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/looknfeel.png differ
diff --git a/swat/images/icons/crystalsvg/64/mac.png b/swat/images/icons/crystalsvg/64/mac.png
new file mode 100644 (file)
index 0000000..6945109
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/mac.png differ
diff --git a/swat/images/icons/crystalsvg/64/mail.png b/swat/images/icons/crystalsvg/64/mail.png
new file mode 100644 (file)
index 0000000..398e62c
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/mail.png differ
diff --git a/swat/images/icons/crystalsvg/64/mimetypes.png b/swat/images/icons/crystalsvg/64/mimetypes.png
new file mode 100644 (file)
index 0000000..0f6db48
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/mimetypes.png differ
diff --git a/swat/images/icons/crystalsvg/64/mouse.png b/swat/images/icons/crystalsvg/64/mouse.png
new file mode 100644 (file)
index 0000000..6c9eb18
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/mouse.png differ
diff --git a/swat/images/icons/crystalsvg/64/mozilla.png b/swat/images/icons/crystalsvg/64/mozilla.png
new file mode 100644 (file)
index 0000000..f58ec26
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/mozilla.png differ
diff --git a/swat/images/icons/crystalsvg/64/mycomputer.png b/swat/images/icons/crystalsvg/64/mycomputer.png
new file mode 100644 (file)
index 0000000..935e5a1
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/mycomputer.png differ
diff --git a/swat/images/icons/crystalsvg/64/mymac.png b/swat/images/icons/crystalsvg/64/mymac.png
new file mode 100644 (file)
index 0000000..d72541d
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/mymac.png differ
diff --git a/swat/images/icons/crystalsvg/64/netscape.png b/swat/images/icons/crystalsvg/64/netscape.png
new file mode 100644 (file)
index 0000000..ca5c65d
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/netscape.png differ
diff --git a/swat/images/icons/crystalsvg/64/network.png b/swat/images/icons/crystalsvg/64/network.png
new file mode 100644 (file)
index 0000000..e032cf1
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/network.png differ
diff --git a/swat/images/icons/crystalsvg/64/package.png b/swat/images/icons/crystalsvg/64/package.png
new file mode 100644 (file)
index 0000000..d43ebbd
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/package.png differ
diff --git a/swat/images/icons/crystalsvg/64/password.png b/swat/images/icons/crystalsvg/64/password.png
new file mode 100644 (file)
index 0000000..2144538
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/password.png differ
diff --git a/swat/images/icons/crystalsvg/64/penguin.png b/swat/images/icons/crystalsvg/64/penguin.png
new file mode 100644 (file)
index 0000000..6c37b89
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/penguin.png differ
diff --git a/swat/images/icons/crystalsvg/64/pipe.png b/swat/images/icons/crystalsvg/64/pipe.png
new file mode 100644 (file)
index 0000000..a8ab425
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/pipe.png differ
diff --git a/swat/images/icons/crystalsvg/64/proxy.png b/swat/images/icons/crystalsvg/64/proxy.png
new file mode 100644 (file)
index 0000000..9b5f5b6
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/proxy.png differ
diff --git a/swat/images/icons/crystalsvg/64/quicktime.png b/swat/images/icons/crystalsvg/64/quicktime.png
new file mode 100644 (file)
index 0000000..3922e74
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/quicktime.png differ
diff --git a/swat/images/icons/crystalsvg/64/realplayer.png b/swat/images/icons/crystalsvg/64/realplayer.png
new file mode 100644 (file)
index 0000000..5e12d74
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/realplayer.png differ
diff --git a/swat/images/icons/crystalsvg/64/reload.png b/swat/images/icons/crystalsvg/64/reload.png
new file mode 100644 (file)
index 0000000..8f0e77a
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/reload.png differ
diff --git a/swat/images/icons/crystalsvg/64/services.png b/swat/images/icons/crystalsvg/64/services.png
new file mode 100644 (file)
index 0000000..90866e8
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/services.png differ
diff --git a/swat/images/icons/crystalsvg/64/socket.png b/swat/images/icons/crystalsvg/64/socket.png
new file mode 100644 (file)
index 0000000..44574c8
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/socket.png differ
diff --git a/swat/images/icons/crystalsvg/64/style.png b/swat/images/icons/crystalsvg/64/style.png
new file mode 100644 (file)
index 0000000..d3f70b0
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/style.png differ
diff --git a/swat/images/icons/crystalsvg/64/stylesheet.png b/swat/images/icons/crystalsvg/64/stylesheet.png
new file mode 100644 (file)
index 0000000..ac393bc
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/stylesheet.png differ
diff --git a/swat/images/icons/crystalsvg/64/tux.png b/swat/images/icons/crystalsvg/64/tux.png
new file mode 100644 (file)
index 0000000..99f3465
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/tux.png differ
diff --git a/swat/images/icons/crystalsvg/64/up.png b/swat/images/icons/crystalsvg/64/up.png
new file mode 100644 (file)
index 0000000..89f77e6
Binary files /dev/null and b/swat/images/icons/crystalsvg/64/up.png differ
diff --git a/swat/images/icons/crystalsvg/README b/swat/images/icons/crystalsvg/README
new file mode 100644 (file)
index 0000000..5bac3d0
--- /dev/null
@@ -0,0 +1,7 @@
+Crystal SVG\r
+\r
+http://www.everaldo.com\r
+http://www.kde-look.org/content/show.php?content=8341\r
+\r
+License: Unknown\r
+Artist: Everaldo
\ No newline at end of file
diff --git a/swat/images/icons/nuvola/128/agent.png b/swat/images/icons/nuvola/128/agent.png
new file mode 100644 (file)
index 0000000..caa430e
Binary files /dev/null and b/swat/images/icons/nuvola/128/agent.png differ
diff --git a/swat/images/icons/nuvola/128/bell.png b/swat/images/icons/nuvola/128/bell.png
new file mode 100644 (file)
index 0000000..5ad1cd4
Binary files /dev/null and b/swat/images/icons/nuvola/128/bell.png differ
diff --git a/swat/images/icons/nuvola/128/cache.png b/swat/images/icons/nuvola/128/cache.png
new file mode 100644 (file)
index 0000000..2ffacac
Binary files /dev/null and b/swat/images/icons/nuvola/128/cache.png differ
diff --git a/swat/images/icons/nuvola/128/colors.png b/swat/images/icons/nuvola/128/colors.png
new file mode 100644 (file)
index 0000000..e728b66
Binary files /dev/null and b/swat/images/icons/nuvola/128/colors.png differ
diff --git a/swat/images/icons/nuvola/128/colorset.png b/swat/images/icons/nuvola/128/colorset.png
new file mode 100644 (file)
index 0000000..e520674
Binary files /dev/null and b/swat/images/icons/nuvola/128/colorset.png differ
diff --git a/swat/images/icons/nuvola/128/cookie.png b/swat/images/icons/nuvola/128/cookie.png
new file mode 100644 (file)
index 0000000..2ef2521
Binary files /dev/null and b/swat/images/icons/nuvola/128/cookie.png differ
diff --git a/swat/images/icons/nuvola/128/core.png b/swat/images/icons/nuvola/128/core.png
new file mode 100644 (file)
index 0000000..aa28471
Binary files /dev/null and b/swat/images/icons/nuvola/128/core.png differ
diff --git a/swat/images/icons/nuvola/128/document.png b/swat/images/icons/nuvola/128/document.png
new file mode 100644 (file)
index 0000000..6283f85
Binary files /dev/null and b/swat/images/icons/nuvola/128/document.png differ
diff --git a/swat/images/icons/nuvola/128/energy.png b/swat/images/icons/nuvola/128/energy.png
new file mode 100644 (file)
index 0000000..4b2dbc4
Binary files /dev/null and b/swat/images/icons/nuvola/128/energy.png differ
diff --git a/swat/images/icons/nuvola/128/exec.png b/swat/images/icons/nuvola/128/exec.png
new file mode 100644 (file)
index 0000000..7354a54
Binary files /dev/null and b/swat/images/icons/nuvola/128/exec.png differ
diff --git a/swat/images/icons/nuvola/128/folder_important.png b/swat/images/icons/nuvola/128/folder_important.png
new file mode 100644 (file)
index 0000000..7be7064
Binary files /dev/null and b/swat/images/icons/nuvola/128/folder_important.png differ
diff --git a/swat/images/icons/nuvola/128/folder_locked.png b/swat/images/icons/nuvola/128/folder_locked.png
new file mode 100644 (file)
index 0000000..0cc9cfd
Binary files /dev/null and b/swat/images/icons/nuvola/128/folder_locked.png differ
diff --git a/swat/images/icons/nuvola/128/folder_open.png b/swat/images/icons/nuvola/128/folder_open.png
new file mode 100644 (file)
index 0000000..73a193a
Binary files /dev/null and b/swat/images/icons/nuvola/128/folder_open.png differ
diff --git a/swat/images/icons/nuvola/128/hwinfo.png b/swat/images/icons/nuvola/128/hwinfo.png
new file mode 100644 (file)
index 0000000..cbfa846
Binary files /dev/null and b/swat/images/icons/nuvola/128/hwinfo.png differ
diff --git a/swat/images/icons/nuvola/128/icons.png b/swat/images/icons/nuvola/128/icons.png
new file mode 100644 (file)
index 0000000..300142e
Binary files /dev/null and b/swat/images/icons/nuvola/128/icons.png differ
diff --git a/swat/images/icons/nuvola/128/iconthemes.png b/swat/images/icons/nuvola/128/iconthemes.png
new file mode 100644 (file)
index 0000000..71aa8a8
Binary files /dev/null and b/swat/images/icons/nuvola/128/iconthemes.png differ
diff --git a/swat/images/icons/nuvola/128/important.png b/swat/images/icons/nuvola/128/important.png
new file mode 100644 (file)
index 0000000..83c7056
Binary files /dev/null and b/swat/images/icons/nuvola/128/important.png differ
diff --git a/swat/images/icons/nuvola/128/info.png b/swat/images/icons/nuvola/128/info.png
new file mode 100644 (file)
index 0000000..77ca807
Binary files /dev/null and b/swat/images/icons/nuvola/128/info.png differ
diff --git a/swat/images/icons/nuvola/128/kcoloredit.png b/swat/images/icons/nuvola/128/kcoloredit.png
new file mode 100644 (file)
index 0000000..7e05aea
Binary files /dev/null and b/swat/images/icons/nuvola/128/kcoloredit.png differ
diff --git a/swat/images/icons/nuvola/128/kcontrol.png b/swat/images/icons/nuvola/128/kcontrol.png
new file mode 100644 (file)
index 0000000..e79094c
Binary files /dev/null and b/swat/images/icons/nuvola/128/kcontrol.png differ
diff --git a/swat/images/icons/nuvola/128/knotify.png b/swat/images/icons/nuvola/128/knotify.png
new file mode 100644 (file)
index 0000000..d878c4f
Binary files /dev/null and b/swat/images/icons/nuvola/128/knotify.png differ
diff --git a/swat/images/icons/nuvola/128/konqueror.png b/swat/images/icons/nuvola/128/konqueror.png
new file mode 100644 (file)
index 0000000..00e8249
Binary files /dev/null and b/swat/images/icons/nuvola/128/konqueror.png differ
diff --git a/swat/images/icons/nuvola/128/kpaint.png b/swat/images/icons/nuvola/128/kpaint.png
new file mode 100644 (file)
index 0000000..b1ceb3e
Binary files /dev/null and b/swat/images/icons/nuvola/128/kpaint.png differ
diff --git a/swat/images/icons/nuvola/128/krita.png b/swat/images/icons/nuvola/128/krita.png
new file mode 100644 (file)
index 0000000..fb1a088
Binary files /dev/null and b/swat/images/icons/nuvola/128/krita.png differ
diff --git a/swat/images/icons/nuvola/128/locale.png b/swat/images/icons/nuvola/128/locale.png
new file mode 100644 (file)
index 0000000..9b3e233
Binary files /dev/null and b/swat/images/icons/nuvola/128/locale.png differ
diff --git a/swat/images/icons/nuvola/128/mozilla.png b/swat/images/icons/nuvola/128/mozilla.png
new file mode 100644 (file)
index 0000000..6ac2de7
Binary files /dev/null and b/swat/images/icons/nuvola/128/mozilla.png differ
diff --git a/swat/images/icons/nuvola/128/netscape.png b/swat/images/icons/nuvola/128/netscape.png
new file mode 100644 (file)
index 0000000..26bf224
Binary files /dev/null and b/swat/images/icons/nuvola/128/netscape.png differ
diff --git a/swat/images/icons/nuvola/128/opera.png b/swat/images/icons/nuvola/128/opera.png
new file mode 100644 (file)
index 0000000..8f02481
Binary files /dev/null and b/swat/images/icons/nuvola/128/opera.png differ
diff --git a/swat/images/icons/nuvola/128/package.png b/swat/images/icons/nuvola/128/package.png
new file mode 100644 (file)
index 0000000..25584da
Binary files /dev/null and b/swat/images/icons/nuvola/128/package.png differ
diff --git a/swat/images/icons/nuvola/128/pipe.png b/swat/images/icons/nuvola/128/pipe.png
new file mode 100644 (file)
index 0000000..644cabb
Binary files /dev/null and b/swat/images/icons/nuvola/128/pipe.png differ
diff --git a/swat/images/icons/nuvola/128/realplayer.png b/swat/images/icons/nuvola/128/realplayer.png
new file mode 100644 (file)
index 0000000..2c6b725
Binary files /dev/null and b/swat/images/icons/nuvola/128/realplayer.png differ
diff --git a/swat/images/icons/nuvola/128/socket.png b/swat/images/icons/nuvola/128/socket.png
new file mode 100644 (file)
index 0000000..bb745dc
Binary files /dev/null and b/swat/images/icons/nuvola/128/socket.png differ
diff --git a/swat/images/icons/nuvola/128/style.png b/swat/images/icons/nuvola/128/style.png
new file mode 100644 (file)
index 0000000..fa03149
Binary files /dev/null and b/swat/images/icons/nuvola/128/style.png differ
diff --git a/swat/images/icons/nuvola/128/stylesheet.png b/swat/images/icons/nuvola/128/stylesheet.png
new file mode 100644 (file)
index 0000000..3796d16
Binary files /dev/null and b/swat/images/icons/nuvola/128/stylesheet.png differ
diff --git a/swat/images/icons/nuvola/16/agent.png b/swat/images/icons/nuvola/16/agent.png
new file mode 100644 (file)
index 0000000..d0e6886
Binary files /dev/null and b/swat/images/icons/nuvola/16/agent.png differ
diff --git a/swat/images/icons/nuvola/16/bell.png b/swat/images/icons/nuvola/16/bell.png
new file mode 100644 (file)
index 0000000..6a10c01
Binary files /dev/null and b/swat/images/icons/nuvola/16/bell.png differ
diff --git a/swat/images/icons/nuvola/16/bookmark.png b/swat/images/icons/nuvola/16/bookmark.png
new file mode 100644 (file)
index 0000000..2cd6947
Binary files /dev/null and b/swat/images/icons/nuvola/16/bookmark.png differ
diff --git a/swat/images/icons/nuvola/16/cache.png b/swat/images/icons/nuvola/16/cache.png
new file mode 100644 (file)
index 0000000..b789c54
Binary files /dev/null and b/swat/images/icons/nuvola/16/cache.png differ
diff --git a/swat/images/icons/nuvola/16/colors.png b/swat/images/icons/nuvola/16/colors.png
new file mode 100644 (file)
index 0000000..fc6a195
Binary files /dev/null and b/swat/images/icons/nuvola/16/colors.png differ
diff --git a/swat/images/icons/nuvola/16/colorset.png b/swat/images/icons/nuvola/16/colorset.png
new file mode 100644 (file)
index 0000000..9c12b3c
Binary files /dev/null and b/swat/images/icons/nuvola/16/colorset.png differ
diff --git a/swat/images/icons/nuvola/16/cookie.png b/swat/images/icons/nuvola/16/cookie.png
new file mode 100644 (file)
index 0000000..5c1ca3c
Binary files /dev/null and b/swat/images/icons/nuvola/16/cookie.png differ
diff --git a/swat/images/icons/nuvola/16/core.png b/swat/images/icons/nuvola/16/core.png
new file mode 100644 (file)
index 0000000..f82088a
Binary files /dev/null and b/swat/images/icons/nuvola/16/core.png differ
diff --git a/swat/images/icons/nuvola/16/document.png b/swat/images/icons/nuvola/16/document.png
new file mode 100644 (file)
index 0000000..24c9c57
Binary files /dev/null and b/swat/images/icons/nuvola/16/document.png differ
diff --git a/swat/images/icons/nuvola/16/energy.png b/swat/images/icons/nuvola/16/energy.png
new file mode 100644 (file)
index 0000000..733dfcf
Binary files /dev/null and b/swat/images/icons/nuvola/16/energy.png differ
diff --git a/swat/images/icons/nuvola/16/exec.png b/swat/images/icons/nuvola/16/exec.png
new file mode 100644 (file)
index 0000000..4e7fc43
Binary files /dev/null and b/swat/images/icons/nuvola/16/exec.png differ
diff --git a/swat/images/icons/nuvola/16/folder_important.png b/swat/images/icons/nuvola/16/folder_important.png
new file mode 100644 (file)
index 0000000..5cadf9d
Binary files /dev/null and b/swat/images/icons/nuvola/16/folder_important.png differ
diff --git a/swat/images/icons/nuvola/16/folder_locked.png b/swat/images/icons/nuvola/16/folder_locked.png
new file mode 100644 (file)
index 0000000..e9c5bfd
Binary files /dev/null and b/swat/images/icons/nuvola/16/folder_locked.png differ
diff --git a/swat/images/icons/nuvola/16/hwinfo.png b/swat/images/icons/nuvola/16/hwinfo.png
new file mode 100644 (file)
index 0000000..1f49a9f
Binary files /dev/null and b/swat/images/icons/nuvola/16/hwinfo.png differ
diff --git a/swat/images/icons/nuvola/16/icons.png b/swat/images/icons/nuvola/16/icons.png
new file mode 100644 (file)
index 0000000..df51f18
Binary files /dev/null and b/swat/images/icons/nuvola/16/icons.png differ
diff --git a/swat/images/icons/nuvola/16/iconthemes.png b/swat/images/icons/nuvola/16/iconthemes.png
new file mode 100644 (file)
index 0000000..a5dcbe0
Binary files /dev/null and b/swat/images/icons/nuvola/16/iconthemes.png differ
diff --git a/swat/images/icons/nuvola/16/important.png b/swat/images/icons/nuvola/16/important.png
new file mode 100644 (file)
index 0000000..2b3d4f0
Binary files /dev/null and b/swat/images/icons/nuvola/16/important.png differ
diff --git a/swat/images/icons/nuvola/16/info.png b/swat/images/icons/nuvola/16/info.png
new file mode 100644 (file)
index 0000000..cfc3089
Binary files /dev/null and b/swat/images/icons/nuvola/16/info.png differ
diff --git a/swat/images/icons/nuvola/16/kcoloredit.png b/swat/images/icons/nuvola/16/kcoloredit.png
new file mode 100644 (file)
index 0000000..b2731f6
Binary files /dev/null and b/swat/images/icons/nuvola/16/kcoloredit.png differ
diff --git a/swat/images/icons/nuvola/16/kcontrol.png b/swat/images/icons/nuvola/16/kcontrol.png
new file mode 100644 (file)
index 0000000..f9c503e
Binary files /dev/null and b/swat/images/icons/nuvola/16/kcontrol.png differ
diff --git a/swat/images/icons/nuvola/16/knotify.png b/swat/images/icons/nuvola/16/knotify.png
new file mode 100644 (file)
index 0000000..e9897ef
Binary files /dev/null and b/swat/images/icons/nuvola/16/knotify.png differ
diff --git a/swat/images/icons/nuvola/16/konqueror.png b/swat/images/icons/nuvola/16/konqueror.png
new file mode 100644 (file)
index 0000000..9baca42
Binary files /dev/null and b/swat/images/icons/nuvola/16/konqueror.png differ
diff --git a/swat/images/icons/nuvola/16/kpaint.png b/swat/images/icons/nuvola/16/kpaint.png
new file mode 100644 (file)
index 0000000..dd0b147
Binary files /dev/null and b/swat/images/icons/nuvola/16/kpaint.png differ
diff --git a/swat/images/icons/nuvola/16/krita.png b/swat/images/icons/nuvola/16/krita.png
new file mode 100644 (file)
index 0000000..b13dbea
Binary files /dev/null and b/swat/images/icons/nuvola/16/krita.png differ
diff --git a/swat/images/icons/nuvola/16/locale.png b/swat/images/icons/nuvola/16/locale.png
new file mode 100644 (file)
index 0000000..a79df4e
Binary files /dev/null and b/swat/images/icons/nuvola/16/locale.png differ
diff --git a/swat/images/icons/nuvola/16/mail_delete.png b/swat/images/icons/nuvola/16/mail_delete.png
new file mode 100644 (file)
index 0000000..dc9c020
Binary files /dev/null and b/swat/images/icons/nuvola/16/mail_delete.png differ
diff --git a/swat/images/icons/nuvola/16/mail_find.png b/swat/images/icons/nuvola/16/mail_find.png
new file mode 100644 (file)
index 0000000..1e230e2
Binary files /dev/null and b/swat/images/icons/nuvola/16/mail_find.png differ
diff --git a/swat/images/icons/nuvola/16/mail_forward.png b/swat/images/icons/nuvola/16/mail_forward.png
new file mode 100644 (file)
index 0000000..0bb1ee2
Binary files /dev/null and b/swat/images/icons/nuvola/16/mail_forward.png differ
diff --git a/swat/images/icons/nuvola/16/mail_new.png b/swat/images/icons/nuvola/16/mail_new.png
new file mode 100644 (file)
index 0000000..7656cbc
Binary files /dev/null and b/swat/images/icons/nuvola/16/mail_new.png differ
diff --git a/swat/images/icons/nuvola/16/mail_replyall.png b/swat/images/icons/nuvola/16/mail_replyall.png
new file mode 100644 (file)
index 0000000..6e825cc
Binary files /dev/null and b/swat/images/icons/nuvola/16/mail_replyall.png differ
diff --git a/swat/images/icons/nuvola/16/mail_send.png b/swat/images/icons/nuvola/16/mail_send.png
new file mode 100644 (file)
index 0000000..2113017
Binary files /dev/null and b/swat/images/icons/nuvola/16/mail_send.png differ
diff --git a/swat/images/icons/nuvola/16/misc.png b/swat/images/icons/nuvola/16/misc.png
new file mode 100644 (file)
index 0000000..98d4b99
Binary files /dev/null and b/swat/images/icons/nuvola/16/misc.png differ
diff --git a/swat/images/icons/nuvola/16/mozilla.png b/swat/images/icons/nuvola/16/mozilla.png
new file mode 100644 (file)
index 0000000..8e43442
Binary files /dev/null and b/swat/images/icons/nuvola/16/mozilla.png differ
diff --git a/swat/images/icons/nuvola/16/netscape.png b/swat/images/icons/nuvola/16/netscape.png
new file mode 100644 (file)
index 0000000..4734d0c
Binary files /dev/null and b/swat/images/icons/nuvola/16/netscape.png differ
diff --git a/swat/images/icons/nuvola/16/ok.png b/swat/images/icons/nuvola/16/ok.png
new file mode 100644 (file)
index 0000000..5b0f6a6
Binary files /dev/null and b/swat/images/icons/nuvola/16/ok.png differ
diff --git a/swat/images/icons/nuvola/16/opera.png b/swat/images/icons/nuvola/16/opera.png
new file mode 100644 (file)
index 0000000..963449b
Binary files /dev/null and b/swat/images/icons/nuvola/16/opera.png differ
diff --git a/swat/images/icons/nuvola/16/package.png b/swat/images/icons/nuvola/16/package.png
new file mode 100644 (file)
index 0000000..618d744
Binary files /dev/null and b/swat/images/icons/nuvola/16/package.png differ
diff --git a/swat/images/icons/nuvola/16/pipe.png b/swat/images/icons/nuvola/16/pipe.png
new file mode 100644 (file)
index 0000000..5fe6401
Binary files /dev/null and b/swat/images/icons/nuvola/16/pipe.png differ
diff --git a/swat/images/icons/nuvola/16/realplayer.png b/swat/images/icons/nuvola/16/realplayer.png
new file mode 100644 (file)
index 0000000..07b1e86
Binary files /dev/null and b/swat/images/icons/nuvola/16/realplayer.png differ
diff --git a/swat/images/icons/nuvola/16/socket.png b/swat/images/icons/nuvola/16/socket.png
new file mode 100644 (file)
index 0000000..3125ef8
Binary files /dev/null and b/swat/images/icons/nuvola/16/socket.png differ
diff --git a/swat/images/icons/nuvola/16/style.png b/swat/images/icons/nuvola/16/style.png
new file mode 100644 (file)
index 0000000..d5210b4
Binary files /dev/null and b/swat/images/icons/nuvola/16/style.png differ
diff --git a/swat/images/icons/nuvola/16/stylesheet.png b/swat/images/icons/nuvola/16/stylesheet.png
new file mode 100644 (file)
index 0000000..f7f9057
Binary files /dev/null and b/swat/images/icons/nuvola/16/stylesheet.png differ
diff --git a/swat/images/icons/nuvola/16/thumbnail.png b/swat/images/icons/nuvola/16/thumbnail.png
new file mode 100644 (file)
index 0000000..91adff8
Binary files /dev/null and b/swat/images/icons/nuvola/16/thumbnail.png differ
diff --git a/swat/images/icons/nuvola/16/wizard.png b/swat/images/icons/nuvola/16/wizard.png
new file mode 100644 (file)
index 0000000..c37091c
Binary files /dev/null and b/swat/images/icons/nuvola/16/wizard.png differ
diff --git a/swat/images/icons/nuvola/22/agent.png b/swat/images/icons/nuvola/22/agent.png
new file mode 100644 (file)
index 0000000..ac34011
Binary files /dev/null and b/swat/images/icons/nuvola/22/agent.png differ
diff --git a/swat/images/icons/nuvola/22/bell.png b/swat/images/icons/nuvola/22/bell.png
new file mode 100644 (file)
index 0000000..3fddea5
Binary files /dev/null and b/swat/images/icons/nuvola/22/bell.png differ
diff --git a/swat/images/icons/nuvola/22/bookmark.png b/swat/images/icons/nuvola/22/bookmark.png
new file mode 100644 (file)
index 0000000..51fb06b
Binary files /dev/null and b/swat/images/icons/nuvola/22/bookmark.png differ
diff --git a/swat/images/icons/nuvola/22/cache.png b/swat/images/icons/nuvola/22/cache.png
new file mode 100644 (file)
index 0000000..f83e9b7
Binary files /dev/null and b/swat/images/icons/nuvola/22/cache.png differ
diff --git a/swat/images/icons/nuvola/22/colors.png b/swat/images/icons/nuvola/22/colors.png
new file mode 100644 (file)
index 0000000..4b925cd
Binary files /dev/null and b/swat/images/icons/nuvola/22/colors.png differ
diff --git a/swat/images/icons/nuvola/22/colorset.png b/swat/images/icons/nuvola/22/colorset.png
new file mode 100644 (file)
index 0000000..24cec5a
Binary files /dev/null and b/swat/images/icons/nuvola/22/colorset.png differ
diff --git a/swat/images/icons/nuvola/22/cookie.png b/swat/images/icons/nuvola/22/cookie.png
new file mode 100644 (file)
index 0000000..f9897b7
Binary files /dev/null and b/swat/images/icons/nuvola/22/cookie.png differ
diff --git a/swat/images/icons/nuvola/22/core.png b/swat/images/icons/nuvola/22/core.png
new file mode 100644 (file)
index 0000000..f444ab7
Binary files /dev/null and b/swat/images/icons/nuvola/22/core.png differ
diff --git a/swat/images/icons/nuvola/22/document.png b/swat/images/icons/nuvola/22/document.png
new file mode 100644 (file)
index 0000000..1a81ef6
Binary files /dev/null and b/swat/images/icons/nuvola/22/document.png differ
diff --git a/swat/images/icons/nuvola/22/energy.png b/swat/images/icons/nuvola/22/energy.png
new file mode 100644 (file)
index 0000000..06502e2
Binary files /dev/null and b/swat/images/icons/nuvola/22/energy.png differ
diff --git a/swat/images/icons/nuvola/22/exec.png b/swat/images/icons/nuvola/22/exec.png
new file mode 100644 (file)
index 0000000..a861875
Binary files /dev/null and b/swat/images/icons/nuvola/22/exec.png differ
diff --git a/swat/images/icons/nuvola/22/folder_important.png b/swat/images/icons/nuvola/22/folder_important.png
new file mode 100644 (file)
index 0000000..39e944d
Binary files /dev/null and b/swat/images/icons/nuvola/22/folder_important.png differ
diff --git a/swat/images/icons/nuvola/22/folder_locked.png b/swat/images/icons/nuvola/22/folder_locked.png
new file mode 100644 (file)
index 0000000..c15328d
Binary files /dev/null and b/swat/images/icons/nuvola/22/folder_locked.png differ
diff --git a/swat/images/icons/nuvola/22/folder_open.png b/swat/images/icons/nuvola/22/folder_open.png
new file mode 100644 (file)
index 0000000..a801665
Binary files /dev/null and b/swat/images/icons/nuvola/22/folder_open.png differ
diff --git a/swat/images/icons/nuvola/22/hwinfo.png b/swat/images/icons/nuvola/22/hwinfo.png
new file mode 100644 (file)
index 0000000..312a4ea
Binary files /dev/null and b/swat/images/icons/nuvola/22/hwinfo.png differ
diff --git a/swat/images/icons/nuvola/22/icons.png b/swat/images/icons/nuvola/22/icons.png
new file mode 100644 (file)
index 0000000..2ac2076
Binary files /dev/null and b/swat/images/icons/nuvola/22/icons.png differ
diff --git a/swat/images/icons/nuvola/22/iconthemes.png b/swat/images/icons/nuvola/22/iconthemes.png
new file mode 100644 (file)
index 0000000..9c5b717
Binary files /dev/null and b/swat/images/icons/nuvola/22/iconthemes.png differ
diff --git a/swat/images/icons/nuvola/22/important.png b/swat/images/icons/nuvola/22/important.png
new file mode 100644 (file)
index 0000000..cc240aa
Binary files /dev/null and b/swat/images/icons/nuvola/22/important.png differ
diff --git a/swat/images/icons/nuvola/22/info.png b/swat/images/icons/nuvola/22/info.png
new file mode 100644 (file)
index 0000000..c337112
Binary files /dev/null and b/swat/images/icons/nuvola/22/info.png differ
diff --git a/swat/images/icons/nuvola/22/kcoloredit.png b/swat/images/icons/nuvola/22/kcoloredit.png
new file mode 100644 (file)
index 0000000..b6b692a
Binary files /dev/null and b/swat/images/icons/nuvola/22/kcoloredit.png differ
diff --git a/swat/images/icons/nuvola/22/kcontrol.png b/swat/images/icons/nuvola/22/kcontrol.png
new file mode 100644 (file)
index 0000000..e4d376d
Binary files /dev/null and b/swat/images/icons/nuvola/22/kcontrol.png differ
diff --git a/swat/images/icons/nuvola/22/knotify.png b/swat/images/icons/nuvola/22/knotify.png
new file mode 100644 (file)
index 0000000..6c76e4a
Binary files /dev/null and b/swat/images/icons/nuvola/22/knotify.png differ
diff --git a/swat/images/icons/nuvola/22/konqueror.png b/swat/images/icons/nuvola/22/konqueror.png
new file mode 100644 (file)
index 0000000..dcc74ec
Binary files /dev/null and b/swat/images/icons/nuvola/22/konqueror.png differ
diff --git a/swat/images/icons/nuvola/22/kpackage.png b/swat/images/icons/nuvola/22/kpackage.png
new file mode 100644 (file)
index 0000000..006392c
Binary files /dev/null and b/swat/images/icons/nuvola/22/kpackage.png differ
diff --git a/swat/images/icons/nuvola/22/kpaint.png b/swat/images/icons/nuvola/22/kpaint.png
new file mode 100644 (file)
index 0000000..f20282b
Binary files /dev/null and b/swat/images/icons/nuvola/22/kpaint.png differ
diff --git a/swat/images/icons/nuvola/22/krita.png b/swat/images/icons/nuvola/22/krita.png
new file mode 100644 (file)
index 0000000..e678d47
Binary files /dev/null and b/swat/images/icons/nuvola/22/krita.png differ
diff --git a/swat/images/icons/nuvola/22/locale.png b/swat/images/icons/nuvola/22/locale.png
new file mode 100644 (file)
index 0000000..bee7d40
Binary files /dev/null and b/swat/images/icons/nuvola/22/locale.png differ
diff --git a/swat/images/icons/nuvola/22/mail_delete.png b/swat/images/icons/nuvola/22/mail_delete.png
new file mode 100644 (file)
index 0000000..035a9f0
Binary files /dev/null and b/swat/images/icons/nuvola/22/mail_delete.png differ
diff --git a/swat/images/icons/nuvola/22/mail_find.png b/swat/images/icons/nuvola/22/mail_find.png
new file mode 100644 (file)
index 0000000..76af932
Binary files /dev/null and b/swat/images/icons/nuvola/22/mail_find.png differ
diff --git a/swat/images/icons/nuvola/22/mail_forward.png b/swat/images/icons/nuvola/22/mail_forward.png
new file mode 100644 (file)
index 0000000..5086ef8
Binary files /dev/null and b/swat/images/icons/nuvola/22/mail_forward.png differ
diff --git a/swat/images/icons/nuvola/22/mail_new.png b/swat/images/icons/nuvola/22/mail_new.png
new file mode 100644 (file)
index 0000000..969fec5
Binary files /dev/null and b/swat/images/icons/nuvola/22/mail_new.png differ
diff --git a/swat/images/icons/nuvola/22/mail_replyall.png b/swat/images/icons/nuvola/22/mail_replyall.png
new file mode 100644 (file)
index 0000000..6ec45ee
Binary files /dev/null and b/swat/images/icons/nuvola/22/mail_replyall.png differ
diff --git a/swat/images/icons/nuvola/22/mail_send.png b/swat/images/icons/nuvola/22/mail_send.png
new file mode 100644 (file)
index 0000000..4b72194
Binary files /dev/null and b/swat/images/icons/nuvola/22/mail_send.png differ
diff --git a/swat/images/icons/nuvola/22/misc.png b/swat/images/icons/nuvola/22/misc.png
new file mode 100644 (file)
index 0000000..625285f
Binary files /dev/null and b/swat/images/icons/nuvola/22/misc.png differ
diff --git a/swat/images/icons/nuvola/22/netscape.png b/swat/images/icons/nuvola/22/netscape.png
new file mode 100644 (file)
index 0000000..00bf497
Binary files /dev/null and b/swat/images/icons/nuvola/22/netscape.png differ
diff --git a/swat/images/icons/nuvola/22/no.png b/swat/images/icons/nuvola/22/no.png
new file mode 100644 (file)
index 0000000..df63d75
Binary files /dev/null and b/swat/images/icons/nuvola/22/no.png differ
diff --git a/swat/images/icons/nuvola/22/ok.png b/swat/images/icons/nuvola/22/ok.png
new file mode 100644 (file)
index 0000000..2166fdf
Binary files /dev/null and b/swat/images/icons/nuvola/22/ok.png differ
diff --git a/swat/images/icons/nuvola/22/opera.png b/swat/images/icons/nuvola/22/opera.png
new file mode 100644 (file)
index 0000000..ce74c6d
Binary files /dev/null and b/swat/images/icons/nuvola/22/opera.png differ
diff --git a/swat/images/icons/nuvola/22/pipe.png b/swat/images/icons/nuvola/22/pipe.png
new file mode 100644 (file)
index 0000000..439e5c5
Binary files /dev/null and b/swat/images/icons/nuvola/22/pipe.png differ
diff --git a/swat/images/icons/nuvola/22/realplayer.png b/swat/images/icons/nuvola/22/realplayer.png
new file mode 100644 (file)
index 0000000..162136f
Binary files /dev/null and b/swat/images/icons/nuvola/22/realplayer.png differ
diff --git a/swat/images/icons/nuvola/22/socket.png b/swat/images/icons/nuvola/22/socket.png
new file mode 100644 (file)
index 0000000..ddf5d6a
Binary files /dev/null and b/swat/images/icons/nuvola/22/socket.png differ
diff --git a/swat/images/icons/nuvola/22/style.png b/swat/images/icons/nuvola/22/style.png
new file mode 100644 (file)
index 0000000..0bef0e5
Binary files /dev/null and b/swat/images/icons/nuvola/22/style.png differ
diff --git a/swat/images/icons/nuvola/22/stylesheet.png b/swat/images/icons/nuvola/22/stylesheet.png
new file mode 100644 (file)
index 0000000..5f5a4de
Binary files /dev/null and b/swat/images/icons/nuvola/22/stylesheet.png differ
diff --git a/swat/images/icons/nuvola/22/thumbnail.png b/swat/images/icons/nuvola/22/thumbnail.png
new file mode 100644 (file)
index 0000000..e8056ca
Binary files /dev/null and b/swat/images/icons/nuvola/22/thumbnail.png differ
diff --git a/swat/images/icons/nuvola/22/wizard.png b/swat/images/icons/nuvola/22/wizard.png
new file mode 100644 (file)
index 0000000..ad4436d
Binary files /dev/null and b/swat/images/icons/nuvola/22/wizard.png differ
diff --git a/swat/images/icons/nuvola/32/agent.png b/swat/images/icons/nuvola/32/agent.png
new file mode 100644 (file)
index 0000000..80e060d
Binary files /dev/null and b/swat/images/icons/nuvola/32/agent.png differ
diff --git a/swat/images/icons/nuvola/32/bell.png b/swat/images/icons/nuvola/32/bell.png
new file mode 100644 (file)
index 0000000..32b6d89
Binary files /dev/null and b/swat/images/icons/nuvola/32/bell.png differ
diff --git a/swat/images/icons/nuvola/32/bookmark.png b/swat/images/icons/nuvola/32/bookmark.png
new file mode 100644 (file)
index 0000000..6cccfd9
Binary files /dev/null and b/swat/images/icons/nuvola/32/bookmark.png differ
diff --git a/swat/images/icons/nuvola/32/cache.png b/swat/images/icons/nuvola/32/cache.png
new file mode 100644 (file)
index 0000000..ff4298b
Binary files /dev/null and b/swat/images/icons/nuvola/32/cache.png differ
diff --git a/swat/images/icons/nuvola/32/colors.png b/swat/images/icons/nuvola/32/colors.png
new file mode 100644 (file)
index 0000000..212adb0
Binary files /dev/null and b/swat/images/icons/nuvola/32/colors.png differ
diff --git a/swat/images/icons/nuvola/32/colorset.png b/swat/images/icons/nuvola/32/colorset.png
new file mode 100644 (file)
index 0000000..bab142f
Binary files /dev/null and b/swat/images/icons/nuvola/32/colorset.png differ
diff --git a/swat/images/icons/nuvola/32/contents.png b/swat/images/icons/nuvola/32/contents.png
new file mode 100644 (file)
index 0000000..d3ba528
Binary files /dev/null and b/swat/images/icons/nuvola/32/contents.png differ
diff --git a/swat/images/icons/nuvola/32/cookie.png b/swat/images/icons/nuvola/32/cookie.png
new file mode 100644 (file)
index 0000000..db4bd61
Binary files /dev/null and b/swat/images/icons/nuvola/32/cookie.png differ
diff --git a/swat/images/icons/nuvola/32/core.png b/swat/images/icons/nuvola/32/core.png
new file mode 100644 (file)
index 0000000..d8471dc
Binary files /dev/null and b/swat/images/icons/nuvola/32/core.png differ
diff --git a/swat/images/icons/nuvola/32/document.png b/swat/images/icons/nuvola/32/document.png
new file mode 100644 (file)
index 0000000..ac2ff05
Binary files /dev/null and b/swat/images/icons/nuvola/32/document.png differ
diff --git a/swat/images/icons/nuvola/32/energy.png b/swat/images/icons/nuvola/32/energy.png
new file mode 100644 (file)
index 0000000..a530b1b
Binary files /dev/null and b/swat/images/icons/nuvola/32/energy.png differ
diff --git a/swat/images/icons/nuvola/32/error.png b/swat/images/icons/nuvola/32/error.png
new file mode 100644 (file)
index 0000000..538cb90
Binary files /dev/null and b/swat/images/icons/nuvola/32/error.png differ
diff --git a/swat/images/icons/nuvola/32/exec.png b/swat/images/icons/nuvola/32/exec.png
new file mode 100644 (file)
index 0000000..1780eaf
Binary files /dev/null and b/swat/images/icons/nuvola/32/exec.png differ
diff --git a/swat/images/icons/nuvola/32/folder_important.png b/swat/images/icons/nuvola/32/folder_important.png
new file mode 100644 (file)
index 0000000..3f10462
Binary files /dev/null and b/swat/images/icons/nuvola/32/folder_important.png differ
diff --git a/swat/images/icons/nuvola/32/folder_locked.png b/swat/images/icons/nuvola/32/folder_locked.png
new file mode 100644 (file)
index 0000000..e540a90
Binary files /dev/null and b/swat/images/icons/nuvola/32/folder_locked.png differ
diff --git a/swat/images/icons/nuvola/32/folder_open.png b/swat/images/icons/nuvola/32/folder_open.png
new file mode 100644 (file)
index 0000000..376aa6e
Binary files /dev/null and b/swat/images/icons/nuvola/32/folder_open.png differ
diff --git a/swat/images/icons/nuvola/32/hwinfo.png b/swat/images/icons/nuvola/32/hwinfo.png
new file mode 100644 (file)
index 0000000..41d50b7
Binary files /dev/null and b/swat/images/icons/nuvola/32/hwinfo.png differ
diff --git a/swat/images/icons/nuvola/32/icons.png b/swat/images/icons/nuvola/32/icons.png
new file mode 100644 (file)
index 0000000..86cd87b
Binary files /dev/null and b/swat/images/icons/nuvola/32/icons.png differ
diff --git a/swat/images/icons/nuvola/32/iconthemes.png b/swat/images/icons/nuvola/32/iconthemes.png
new file mode 100644 (file)
index 0000000..6345bea
Binary files /dev/null and b/swat/images/icons/nuvola/32/iconthemes.png differ
diff --git a/swat/images/icons/nuvola/32/important.png b/swat/images/icons/nuvola/32/important.png
new file mode 100644 (file)
index 0000000..284e5e3
Binary files /dev/null and b/swat/images/icons/nuvola/32/important.png differ
diff --git a/swat/images/icons/nuvola/32/info.png b/swat/images/icons/nuvola/32/info.png
new file mode 100644 (file)
index 0000000..a4e834f
Binary files /dev/null and b/swat/images/icons/nuvola/32/info.png differ
diff --git a/swat/images/icons/nuvola/32/kcoloredit.png b/swat/images/icons/nuvola/32/kcoloredit.png
new file mode 100644 (file)
index 0000000..48102de
Binary files /dev/null and b/swat/images/icons/nuvola/32/kcoloredit.png differ
diff --git a/swat/images/icons/nuvola/32/kcontrol.png b/swat/images/icons/nuvola/32/kcontrol.png
new file mode 100644 (file)
index 0000000..6f3b1f4
Binary files /dev/null and b/swat/images/icons/nuvola/32/kcontrol.png differ
diff --git a/swat/images/icons/nuvola/32/knotify.png b/swat/images/icons/nuvola/32/knotify.png
new file mode 100644 (file)
index 0000000..bfbc795
Binary files /dev/null and b/swat/images/icons/nuvola/32/knotify.png differ
diff --git a/swat/images/icons/nuvola/32/konqueror.png b/swat/images/icons/nuvola/32/konqueror.png
new file mode 100644 (file)
index 0000000..14f3235
Binary files /dev/null and b/swat/images/icons/nuvola/32/konqueror.png differ
diff --git a/swat/images/icons/nuvola/32/kpaint.png b/swat/images/icons/nuvola/32/kpaint.png
new file mode 100644 (file)
index 0000000..9ec1a85
Binary files /dev/null and b/swat/images/icons/nuvola/32/kpaint.png differ
diff --git a/swat/images/icons/nuvola/32/krita.png b/swat/images/icons/nuvola/32/krita.png
new file mode 100644 (file)
index 0000000..455018c
Binary files /dev/null and b/swat/images/icons/nuvola/32/krita.png differ
diff --git a/swat/images/icons/nuvola/32/locale.png b/swat/images/icons/nuvola/32/locale.png
new file mode 100644 (file)
index 0000000..9181746
Binary files /dev/null and b/swat/images/icons/nuvola/32/locale.png differ
diff --git a/swat/images/icons/nuvola/32/mail_delete.png b/swat/images/icons/nuvola/32/mail_delete.png
new file mode 100644 (file)
index 0000000..7014f9f
Binary files /dev/null and b/swat/images/icons/nuvola/32/mail_delete.png differ
diff --git a/swat/images/icons/nuvola/32/mail_find.png b/swat/images/icons/nuvola/32/mail_find.png
new file mode 100644 (file)
index 0000000..81d6088
Binary files /dev/null and b/swat/images/icons/nuvola/32/mail_find.png differ
diff --git a/swat/images/icons/nuvola/32/mail_forward.png b/swat/images/icons/nuvola/32/mail_forward.png
new file mode 100644 (file)
index 0000000..6d27c21
Binary files /dev/null and b/swat/images/icons/nuvola/32/mail_forward.png differ
diff --git a/swat/images/icons/nuvola/32/mail_new.png b/swat/images/icons/nuvola/32/mail_new.png
new file mode 100644 (file)
index 0000000..825459f
Binary files /dev/null and b/swat/images/icons/nuvola/32/mail_new.png differ
diff --git a/swat/images/icons/nuvola/32/mail_replyall.png b/swat/images/icons/nuvola/32/mail_replyall.png
new file mode 100644 (file)
index 0000000..5cc855d
Binary files /dev/null and b/swat/images/icons/nuvola/32/mail_replyall.png differ
diff --git a/swat/images/icons/nuvola/32/mail_send.png b/swat/images/icons/nuvola/32/mail_send.png
new file mode 100644 (file)
index 0000000..241544b
Binary files /dev/null and b/swat/images/icons/nuvola/32/mail_send.png differ
diff --git a/swat/images/icons/nuvola/32/misc.png b/swat/images/icons/nuvola/32/misc.png
new file mode 100644 (file)
index 0000000..135fd11
Binary files /dev/null and b/swat/images/icons/nuvola/32/misc.png differ
diff --git a/swat/images/icons/nuvola/32/mozilla.png b/swat/images/icons/nuvola/32/mozilla.png
new file mode 100644 (file)
index 0000000..fec3008
Binary files /dev/null and b/swat/images/icons/nuvola/32/mozilla.png differ
diff --git a/swat/images/icons/nuvola/32/netscape.png b/swat/images/icons/nuvola/32/netscape.png
new file mode 100644 (file)
index 0000000..5b6775b
Binary files /dev/null and b/swat/images/icons/nuvola/32/netscape.png differ
diff --git a/swat/images/icons/nuvola/32/no.png b/swat/images/icons/nuvola/32/no.png
new file mode 100644 (file)
index 0000000..0344822
Binary files /dev/null and b/swat/images/icons/nuvola/32/no.png differ
diff --git a/swat/images/icons/nuvola/32/ok.png b/swat/images/icons/nuvola/32/ok.png
new file mode 100644 (file)
index 0000000..592ce6f
Binary files /dev/null and b/swat/images/icons/nuvola/32/ok.png differ
diff --git a/swat/images/icons/nuvola/32/opera.png b/swat/images/icons/nuvola/32/opera.png
new file mode 100644 (file)
index 0000000..c3a0ee4
Binary files /dev/null and b/swat/images/icons/nuvola/32/opera.png differ
diff --git a/swat/images/icons/nuvola/32/package.png b/swat/images/icons/nuvola/32/package.png
new file mode 100644 (file)
index 0000000..3757bfa
Binary files /dev/null and b/swat/images/icons/nuvola/32/package.png differ
diff --git a/swat/images/icons/nuvola/32/pipe.png b/swat/images/icons/nuvola/32/pipe.png
new file mode 100644 (file)
index 0000000..5df1cc4
Binary files /dev/null and b/swat/images/icons/nuvola/32/pipe.png differ
diff --git a/swat/images/icons/nuvola/32/realplayer.png b/swat/images/icons/nuvola/32/realplayer.png
new file mode 100644 (file)
index 0000000..2d1954e
Binary files /dev/null and b/swat/images/icons/nuvola/32/realplayer.png differ
diff --git a/swat/images/icons/nuvola/32/socket.png b/swat/images/icons/nuvola/32/socket.png
new file mode 100644 (file)
index 0000000..cb5f8f0
Binary files /dev/null and b/swat/images/icons/nuvola/32/socket.png differ
diff --git a/swat/images/icons/nuvola/32/style.png b/swat/images/icons/nuvola/32/style.png
new file mode 100644 (file)
index 0000000..0788864
Binary files /dev/null and b/swat/images/icons/nuvola/32/style.png differ
diff --git a/swat/images/icons/nuvola/32/stylesheet.png b/swat/images/icons/nuvola/32/stylesheet.png
new file mode 100644 (file)
index 0000000..35bdb05
Binary files /dev/null and b/swat/images/icons/nuvola/32/stylesheet.png differ
diff --git a/swat/images/icons/nuvola/32/thumbnail.png b/swat/images/icons/nuvola/32/thumbnail.png
new file mode 100644 (file)
index 0000000..69e55a1
Binary files /dev/null and b/swat/images/icons/nuvola/32/thumbnail.png differ
diff --git a/swat/images/icons/nuvola/32/wizard.png b/swat/images/icons/nuvola/32/wizard.png
new file mode 100644 (file)
index 0000000..807d9c4
Binary files /dev/null and b/swat/images/icons/nuvola/32/wizard.png differ
diff --git a/swat/images/icons/nuvola/48/agent.png b/swat/images/icons/nuvola/48/agent.png
new file mode 100644 (file)
index 0000000..0ea9d23
Binary files /dev/null and b/swat/images/icons/nuvola/48/agent.png differ
diff --git a/swat/images/icons/nuvola/48/apply.png b/swat/images/icons/nuvola/48/apply.png
new file mode 100644 (file)
index 0000000..3b7a690
Binary files /dev/null and b/swat/images/icons/nuvola/48/apply.png differ
diff --git a/swat/images/icons/nuvola/48/back.png b/swat/images/icons/nuvola/48/back.png
new file mode 100644 (file)
index 0000000..753b14f
Binary files /dev/null and b/swat/images/icons/nuvola/48/back.png differ
diff --git a/swat/images/icons/nuvola/48/bell.png b/swat/images/icons/nuvola/48/bell.png
new file mode 100644 (file)
index 0000000..be0c6e6
Binary files /dev/null and b/swat/images/icons/nuvola/48/bell.png differ
diff --git a/swat/images/icons/nuvola/48/bookmark.png b/swat/images/icons/nuvola/48/bookmark.png
new file mode 100644 (file)
index 0000000..dcadad7
Binary files /dev/null and b/swat/images/icons/nuvola/48/bookmark.png differ
diff --git a/swat/images/icons/nuvola/48/button_cancel.png b/swat/images/icons/nuvola/48/button_cancel.png
new file mode 100644 (file)
index 0000000..75980de
Binary files /dev/null and b/swat/images/icons/nuvola/48/button_cancel.png differ
diff --git a/swat/images/icons/nuvola/48/button_ok.png b/swat/images/icons/nuvola/48/button_ok.png
new file mode 100644 (file)
index 0000000..94aac4b
Binary files /dev/null and b/swat/images/icons/nuvola/48/button_ok.png differ
diff --git a/swat/images/icons/nuvola/48/cache.png b/swat/images/icons/nuvola/48/cache.png
new file mode 100644 (file)
index 0000000..321e824
Binary files /dev/null and b/swat/images/icons/nuvola/48/cache.png differ
diff --git a/swat/images/icons/nuvola/48/colorize.png b/swat/images/icons/nuvola/48/colorize.png
new file mode 100644 (file)
index 0000000..61a6f63
Binary files /dev/null and b/swat/images/icons/nuvola/48/colorize.png differ
diff --git a/swat/images/icons/nuvola/48/colors.png b/swat/images/icons/nuvola/48/colors.png
new file mode 100644 (file)
index 0000000..641c9d8
Binary files /dev/null and b/swat/images/icons/nuvola/48/colors.png differ
diff --git a/swat/images/icons/nuvola/48/colorset.png b/swat/images/icons/nuvola/48/colorset.png
new file mode 100644 (file)
index 0000000..0a7e28c
Binary files /dev/null and b/swat/images/icons/nuvola/48/colorset.png differ
diff --git a/swat/images/icons/nuvola/48/configure.png b/swat/images/icons/nuvola/48/configure.png
new file mode 100644 (file)
index 0000000..2bf463b
Binary files /dev/null and b/swat/images/icons/nuvola/48/configure.png differ
diff --git a/swat/images/icons/nuvola/48/cookie.png b/swat/images/icons/nuvola/48/cookie.png
new file mode 100644 (file)
index 0000000..8cbb309
Binary files /dev/null and b/swat/images/icons/nuvola/48/cookie.png differ
diff --git a/swat/images/icons/nuvola/48/core.png b/swat/images/icons/nuvola/48/core.png
new file mode 100644 (file)
index 0000000..03855c9
Binary files /dev/null and b/swat/images/icons/nuvola/48/core.png differ
diff --git a/swat/images/icons/nuvola/48/decrypted.png b/swat/images/icons/nuvola/48/decrypted.png
new file mode 100644 (file)
index 0000000..c532f17
Binary files /dev/null and b/swat/images/icons/nuvola/48/decrypted.png differ
diff --git a/swat/images/icons/nuvola/48/document.png b/swat/images/icons/nuvola/48/document.png
new file mode 100644 (file)
index 0000000..b545d96
Binary files /dev/null and b/swat/images/icons/nuvola/48/document.png differ
diff --git a/swat/images/icons/nuvola/48/down.png b/swat/images/icons/nuvola/48/down.png
new file mode 100644 (file)
index 0000000..5648bf1
Binary files /dev/null and b/swat/images/icons/nuvola/48/down.png differ
diff --git a/swat/images/icons/nuvola/48/edit.png b/swat/images/icons/nuvola/48/edit.png
new file mode 100644 (file)
index 0000000..bee2645
Binary files /dev/null and b/swat/images/icons/nuvola/48/edit.png differ
diff --git a/swat/images/icons/nuvola/48/editcopy.png b/swat/images/icons/nuvola/48/editcopy.png
new file mode 100644 (file)
index 0000000..a04d2f7
Binary files /dev/null and b/swat/images/icons/nuvola/48/editcopy.png differ
diff --git a/swat/images/icons/nuvola/48/editcut.png b/swat/images/icons/nuvola/48/editcut.png
new file mode 100644 (file)
index 0000000..a1b20f4
Binary files /dev/null and b/swat/images/icons/nuvola/48/editcut.png differ
diff --git a/swat/images/icons/nuvola/48/editdelete.png b/swat/images/icons/nuvola/48/editdelete.png
new file mode 100644 (file)
index 0000000..f748cbe
Binary files /dev/null and b/swat/images/icons/nuvola/48/editdelete.png differ
diff --git a/swat/images/icons/nuvola/48/editpaste.png b/swat/images/icons/nuvola/48/editpaste.png
new file mode 100644 (file)
index 0000000..099c51f
Binary files /dev/null and b/swat/images/icons/nuvola/48/editpaste.png differ
diff --git a/swat/images/icons/nuvola/48/edittrash.png b/swat/images/icons/nuvola/48/edittrash.png
new file mode 100644 (file)
index 0000000..906608f
Binary files /dev/null and b/swat/images/icons/nuvola/48/edittrash.png differ
diff --git a/swat/images/icons/nuvola/48/encrypted.png b/swat/images/icons/nuvola/48/encrypted.png
new file mode 100644 (file)
index 0000000..7d3e1ef
Binary files /dev/null and b/swat/images/icons/nuvola/48/encrypted.png differ
diff --git a/swat/images/icons/nuvola/48/energy.png b/swat/images/icons/nuvola/48/energy.png
new file mode 100644 (file)
index 0000000..94ce36b
Binary files /dev/null and b/swat/images/icons/nuvola/48/energy.png differ
diff --git a/swat/images/icons/nuvola/48/exec.png b/swat/images/icons/nuvola/48/exec.png
new file mode 100644 (file)
index 0000000..8467ec1
Binary files /dev/null and b/swat/images/icons/nuvola/48/exec.png differ
diff --git a/swat/images/icons/nuvola/48/filenew.png b/swat/images/icons/nuvola/48/filenew.png
new file mode 100644 (file)
index 0000000..bc10ac0
Binary files /dev/null and b/swat/images/icons/nuvola/48/filenew.png differ
diff --git a/swat/images/icons/nuvola/48/fileopen.png b/swat/images/icons/nuvola/48/fileopen.png
new file mode 100644 (file)
index 0000000..7341929
Binary files /dev/null and b/swat/images/icons/nuvola/48/fileopen.png differ
diff --git a/swat/images/icons/nuvola/48/fileprint.png b/swat/images/icons/nuvola/48/fileprint.png
new file mode 100644 (file)
index 0000000..05e1598
Binary files /dev/null and b/swat/images/icons/nuvola/48/fileprint.png differ
diff --git a/swat/images/icons/nuvola/48/filesave.png b/swat/images/icons/nuvola/48/filesave.png
new file mode 100644 (file)
index 0000000..0006ad4
Binary files /dev/null and b/swat/images/icons/nuvola/48/filesave.png differ
diff --git a/swat/images/icons/nuvola/48/filesaveas.png b/swat/images/icons/nuvola/48/filesaveas.png
new file mode 100644 (file)
index 0000000..2be6df2
Binary files /dev/null and b/swat/images/icons/nuvola/48/filesaveas.png differ
diff --git a/swat/images/icons/nuvola/48/find.png b/swat/images/icons/nuvola/48/find.png
new file mode 100644 (file)
index 0000000..e03a26d
Binary files /dev/null and b/swat/images/icons/nuvola/48/find.png differ
diff --git a/swat/images/icons/nuvola/48/folder_important.png b/swat/images/icons/nuvola/48/folder_important.png
new file mode 100644 (file)
index 0000000..d91b77c
Binary files /dev/null and b/swat/images/icons/nuvola/48/folder_important.png differ
diff --git a/swat/images/icons/nuvola/48/folder_locked.png b/swat/images/icons/nuvola/48/folder_locked.png
new file mode 100644 (file)
index 0000000..f165846
Binary files /dev/null and b/swat/images/icons/nuvola/48/folder_locked.png differ
diff --git a/swat/images/icons/nuvola/48/folder_open.png b/swat/images/icons/nuvola/48/folder_open.png
new file mode 100644 (file)
index 0000000..f7314b3
Binary files /dev/null and b/swat/images/icons/nuvola/48/folder_open.png differ
diff --git a/swat/images/icons/nuvola/48/forward.png b/swat/images/icons/nuvola/48/forward.png
new file mode 100644 (file)
index 0000000..88eb4cf
Binary files /dev/null and b/swat/images/icons/nuvola/48/forward.png differ
diff --git a/swat/images/icons/nuvola/48/gohome.png b/swat/images/icons/nuvola/48/gohome.png
new file mode 100644 (file)
index 0000000..d2b3dfc
Binary files /dev/null and b/swat/images/icons/nuvola/48/gohome.png differ
diff --git a/swat/images/icons/nuvola/48/help.png b/swat/images/icons/nuvola/48/help.png
new file mode 100644 (file)
index 0000000..915f9fd
Binary files /dev/null and b/swat/images/icons/nuvola/48/help.png differ
diff --git a/swat/images/icons/nuvola/48/history.png b/swat/images/icons/nuvola/48/history.png
new file mode 100644 (file)
index 0000000..7907787
Binary files /dev/null and b/swat/images/icons/nuvola/48/history.png differ
diff --git a/swat/images/icons/nuvola/48/hwinfo.png b/swat/images/icons/nuvola/48/hwinfo.png
new file mode 100644 (file)
index 0000000..2c7b760
Binary files /dev/null and b/swat/images/icons/nuvola/48/hwinfo.png differ
diff --git a/swat/images/icons/nuvola/48/icons.png b/swat/images/icons/nuvola/48/icons.png
new file mode 100644 (file)
index 0000000..5aaece3
Binary files /dev/null and b/swat/images/icons/nuvola/48/icons.png differ
diff --git a/swat/images/icons/nuvola/48/iconthemes.png b/swat/images/icons/nuvola/48/iconthemes.png
new file mode 100644 (file)
index 0000000..ba4744f
Binary files /dev/null and b/swat/images/icons/nuvola/48/iconthemes.png differ
diff --git a/swat/images/icons/nuvola/48/important.png b/swat/images/icons/nuvola/48/important.png
new file mode 100644 (file)
index 0000000..a763d82
Binary files /dev/null and b/swat/images/icons/nuvola/48/important.png differ
diff --git a/swat/images/icons/nuvola/48/info.png b/swat/images/icons/nuvola/48/info.png
new file mode 100644 (file)
index 0000000..d2051a8
Binary files /dev/null and b/swat/images/icons/nuvola/48/info.png differ
diff --git a/swat/images/icons/nuvola/48/kcoloredit.png b/swat/images/icons/nuvola/48/kcoloredit.png
new file mode 100644 (file)
index 0000000..adb7216
Binary files /dev/null and b/swat/images/icons/nuvola/48/kcoloredit.png differ
diff --git a/swat/images/icons/nuvola/48/kcontrol.png b/swat/images/icons/nuvola/48/kcontrol.png
new file mode 100644 (file)
index 0000000..a359543
Binary files /dev/null and b/swat/images/icons/nuvola/48/kcontrol.png differ
diff --git a/swat/images/icons/nuvola/48/knotify.png b/swat/images/icons/nuvola/48/knotify.png
new file mode 100644 (file)
index 0000000..40205ad
Binary files /dev/null and b/swat/images/icons/nuvola/48/knotify.png differ
diff --git a/swat/images/icons/nuvola/48/konqueror.png b/swat/images/icons/nuvola/48/konqueror.png
new file mode 100644 (file)
index 0000000..ef5d9a2
Binary files /dev/null and b/swat/images/icons/nuvola/48/konqueror.png differ
diff --git a/swat/images/icons/nuvola/48/kpaint.png b/swat/images/icons/nuvola/48/kpaint.png
new file mode 100644 (file)
index 0000000..6e9fdc7
Binary files /dev/null and b/swat/images/icons/nuvola/48/kpaint.png differ
diff --git a/swat/images/icons/nuvola/48/krita.png b/swat/images/icons/nuvola/48/krita.png
new file mode 100644 (file)
index 0000000..1c16253
Binary files /dev/null and b/swat/images/icons/nuvola/48/krita.png differ
diff --git a/swat/images/icons/nuvola/48/locale.png b/swat/images/icons/nuvola/48/locale.png
new file mode 100644 (file)
index 0000000..a784df5
Binary files /dev/null and b/swat/images/icons/nuvola/48/locale.png differ
diff --git a/swat/images/icons/nuvola/48/mail_delete.png b/swat/images/icons/nuvola/48/mail_delete.png
new file mode 100644 (file)
index 0000000..3d0941c
Binary files /dev/null and b/swat/images/icons/nuvola/48/mail_delete.png differ
diff --git a/swat/images/icons/nuvola/48/mail_find.png b/swat/images/icons/nuvola/48/mail_find.png
new file mode 100644 (file)
index 0000000..56b68ee
Binary files /dev/null and b/swat/images/icons/nuvola/48/mail_find.png differ
diff --git a/swat/images/icons/nuvola/48/mail_forward.png b/swat/images/icons/nuvola/48/mail_forward.png
new file mode 100644 (file)
index 0000000..88be810
Binary files /dev/null and b/swat/images/icons/nuvola/48/mail_forward.png differ
diff --git a/swat/images/icons/nuvola/48/mail_generic.png b/swat/images/icons/nuvola/48/mail_generic.png
new file mode 100644 (file)
index 0000000..79699c8
Binary files /dev/null and b/swat/images/icons/nuvola/48/mail_generic.png differ
diff --git a/swat/images/icons/nuvola/48/mail_new.png b/swat/images/icons/nuvola/48/mail_new.png
new file mode 100644 (file)
index 0000000..e09387c
Binary files /dev/null and b/swat/images/icons/nuvola/48/mail_new.png differ
diff --git a/swat/images/icons/nuvola/48/mail_replyall.png b/swat/images/icons/nuvola/48/mail_replyall.png
new file mode 100644 (file)
index 0000000..8c845a0
Binary files /dev/null and b/swat/images/icons/nuvola/48/mail_replyall.png differ
diff --git a/swat/images/icons/nuvola/48/mail_send.png b/swat/images/icons/nuvola/48/mail_send.png
new file mode 100644 (file)
index 0000000..971fb09
Binary files /dev/null and b/swat/images/icons/nuvola/48/mail_send.png differ
diff --git a/swat/images/icons/nuvola/48/misc.png b/swat/images/icons/nuvola/48/misc.png
new file mode 100644 (file)
index 0000000..0c17cd9
Binary files /dev/null and b/swat/images/icons/nuvola/48/misc.png differ
diff --git a/swat/images/icons/nuvola/48/mozilla.png b/swat/images/icons/nuvola/48/mozilla.png
new file mode 100644 (file)
index 0000000..2fd15db
Binary files /dev/null and b/swat/images/icons/nuvola/48/mozilla.png differ
diff --git a/swat/images/icons/nuvola/48/netscape.png b/swat/images/icons/nuvola/48/netscape.png
new file mode 100644 (file)
index 0000000..4ff1a20
Binary files /dev/null and b/swat/images/icons/nuvola/48/netscape.png differ
diff --git a/swat/images/icons/nuvola/48/next.png b/swat/images/icons/nuvola/48/next.png
new file mode 100644 (file)
index 0000000..fbce893
Binary files /dev/null and b/swat/images/icons/nuvola/48/next.png differ
diff --git a/swat/images/icons/nuvola/48/no.png b/swat/images/icons/nuvola/48/no.png
new file mode 100644 (file)
index 0000000..b7e2f90
Binary files /dev/null and b/swat/images/icons/nuvola/48/no.png differ
diff --git a/swat/images/icons/nuvola/48/ok.png b/swat/images/icons/nuvola/48/ok.png
new file mode 100644 (file)
index 0000000..3b7a690
Binary files /dev/null and b/swat/images/icons/nuvola/48/ok.png differ
diff --git a/swat/images/icons/nuvola/48/opera.png b/swat/images/icons/nuvola/48/opera.png
new file mode 100644 (file)
index 0000000..6fb9136
Binary files /dev/null and b/swat/images/icons/nuvola/48/opera.png differ
diff --git a/swat/images/icons/nuvola/48/package.png b/swat/images/icons/nuvola/48/package.png
new file mode 100644 (file)
index 0000000..7cf1b96
Binary files /dev/null and b/swat/images/icons/nuvola/48/package.png differ
diff --git a/swat/images/icons/nuvola/48/pipe.png b/swat/images/icons/nuvola/48/pipe.png
new file mode 100644 (file)
index 0000000..d479c1b
Binary files /dev/null and b/swat/images/icons/nuvola/48/pipe.png differ
diff --git a/swat/images/icons/nuvola/48/previous.png b/swat/images/icons/nuvola/48/previous.png
new file mode 100644 (file)
index 0000000..3813e81
Binary files /dev/null and b/swat/images/icons/nuvola/48/previous.png differ
diff --git a/swat/images/icons/nuvola/48/realplayer.png b/swat/images/icons/nuvola/48/realplayer.png
new file mode 100644 (file)
index 0000000..dabfe1a
Binary files /dev/null and b/swat/images/icons/nuvola/48/realplayer.png differ
diff --git a/swat/images/icons/nuvola/48/redo.png b/swat/images/icons/nuvola/48/redo.png
new file mode 100644 (file)
index 0000000..3da735b
Binary files /dev/null and b/swat/images/icons/nuvola/48/redo.png differ
diff --git a/swat/images/icons/nuvola/48/reload.png b/swat/images/icons/nuvola/48/reload.png
new file mode 100644 (file)
index 0000000..248f614
Binary files /dev/null and b/swat/images/icons/nuvola/48/reload.png differ
diff --git a/swat/images/icons/nuvola/48/run.png b/swat/images/icons/nuvola/48/run.png
new file mode 100644 (file)
index 0000000..d741485
Binary files /dev/null and b/swat/images/icons/nuvola/48/run.png differ
diff --git a/swat/images/icons/nuvola/48/socket.png b/swat/images/icons/nuvola/48/socket.png
new file mode 100644 (file)
index 0000000..1bacbaa
Binary files /dev/null and b/swat/images/icons/nuvola/48/socket.png differ
diff --git a/swat/images/icons/nuvola/48/spellcheck.png b/swat/images/icons/nuvola/48/spellcheck.png
new file mode 100644 (file)
index 0000000..0b32d72
Binary files /dev/null and b/swat/images/icons/nuvola/48/spellcheck.png differ
diff --git a/swat/images/icons/nuvola/48/stop.png b/swat/images/icons/nuvola/48/stop.png
new file mode 100644 (file)
index 0000000..bb4fe64
Binary files /dev/null and b/swat/images/icons/nuvola/48/stop.png differ
diff --git a/swat/images/icons/nuvola/48/style.png b/swat/images/icons/nuvola/48/style.png
new file mode 100644 (file)
index 0000000..c9c4381
Binary files /dev/null and b/swat/images/icons/nuvola/48/style.png differ
diff --git a/swat/images/icons/nuvola/48/stylesheet.png b/swat/images/icons/nuvola/48/stylesheet.png
new file mode 100644 (file)
index 0000000..4777cbb
Binary files /dev/null and b/swat/images/icons/nuvola/48/stylesheet.png differ
diff --git a/swat/images/icons/nuvola/48/thumbnail.png b/swat/images/icons/nuvola/48/thumbnail.png
new file mode 100644 (file)
index 0000000..bcc1681
Binary files /dev/null and b/swat/images/icons/nuvola/48/thumbnail.png differ
diff --git a/swat/images/icons/nuvola/48/up.png b/swat/images/icons/nuvola/48/up.png
new file mode 100644 (file)
index 0000000..6af2494
Binary files /dev/null and b/swat/images/icons/nuvola/48/up.png differ
diff --git a/swat/images/icons/nuvola/48/wizard.png b/swat/images/icons/nuvola/48/wizard.png
new file mode 100644 (file)
index 0000000..c117bea
Binary files /dev/null and b/swat/images/icons/nuvola/48/wizard.png differ
diff --git a/swat/images/icons/nuvola/64/agent.png b/swat/images/icons/nuvola/64/agent.png
new file mode 100644 (file)
index 0000000..8bdbfbc
Binary files /dev/null and b/swat/images/icons/nuvola/64/agent.png differ
diff --git a/swat/images/icons/nuvola/64/bell.png b/swat/images/icons/nuvola/64/bell.png
new file mode 100644 (file)
index 0000000..d8d7ec7
Binary files /dev/null and b/swat/images/icons/nuvola/64/bell.png differ
diff --git a/swat/images/icons/nuvola/64/cache.png b/swat/images/icons/nuvola/64/cache.png
new file mode 100644 (file)
index 0000000..c42bf4a
Binary files /dev/null and b/swat/images/icons/nuvola/64/cache.png differ
diff --git a/swat/images/icons/nuvola/64/colors.png b/swat/images/icons/nuvola/64/colors.png
new file mode 100644 (file)
index 0000000..dfe8f95
Binary files /dev/null and b/swat/images/icons/nuvola/64/colors.png differ
diff --git a/swat/images/icons/nuvola/64/colorset.png b/swat/images/icons/nuvola/64/colorset.png
new file mode 100644 (file)
index 0000000..2dbdf9e
Binary files /dev/null and b/swat/images/icons/nuvola/64/colorset.png differ
diff --git a/swat/images/icons/nuvola/64/cookie.png b/swat/images/icons/nuvola/64/cookie.png
new file mode 100644 (file)
index 0000000..4647c31
Binary files /dev/null and b/swat/images/icons/nuvola/64/cookie.png differ
diff --git a/swat/images/icons/nuvola/64/core.png b/swat/images/icons/nuvola/64/core.png
new file mode 100644 (file)
index 0000000..e5a5143
Binary files /dev/null and b/swat/images/icons/nuvola/64/core.png differ
diff --git a/swat/images/icons/nuvola/64/document.png b/swat/images/icons/nuvola/64/document.png
new file mode 100644 (file)
index 0000000..46b2871
Binary files /dev/null and b/swat/images/icons/nuvola/64/document.png differ
diff --git a/swat/images/icons/nuvola/64/energy.png b/swat/images/icons/nuvola/64/energy.png
new file mode 100644 (file)
index 0000000..9a82987
Binary files /dev/null and b/swat/images/icons/nuvola/64/energy.png differ
diff --git a/swat/images/icons/nuvola/64/exec.png b/swat/images/icons/nuvola/64/exec.png
new file mode 100644 (file)
index 0000000..a1b6850
Binary files /dev/null and b/swat/images/icons/nuvola/64/exec.png differ
diff --git a/swat/images/icons/nuvola/64/folder_important.png b/swat/images/icons/nuvola/64/folder_important.png
new file mode 100644 (file)
index 0000000..1c97def
Binary files /dev/null and b/swat/images/icons/nuvola/64/folder_important.png differ
diff --git a/swat/images/icons/nuvola/64/folder_locked.png b/swat/images/icons/nuvola/64/folder_locked.png
new file mode 100644 (file)
index 0000000..9e9bbd9
Binary files /dev/null and b/swat/images/icons/nuvola/64/folder_locked.png differ
diff --git a/swat/images/icons/nuvola/64/folder_open.png b/swat/images/icons/nuvola/64/folder_open.png
new file mode 100644 (file)
index 0000000..f5bddaf
Binary files /dev/null and b/swat/images/icons/nuvola/64/folder_open.png differ
diff --git a/swat/images/icons/nuvola/64/hwinfo.png b/swat/images/icons/nuvola/64/hwinfo.png
new file mode 100644 (file)
index 0000000..bc015a7
Binary files /dev/null and b/swat/images/icons/nuvola/64/hwinfo.png differ
diff --git a/swat/images/icons/nuvola/64/icons.png b/swat/images/icons/nuvola/64/icons.png
new file mode 100644 (file)
index 0000000..a591696
Binary files /dev/null and b/swat/images/icons/nuvola/64/icons.png differ
diff --git a/swat/images/icons/nuvola/64/iconthemes.png b/swat/images/icons/nuvola/64/iconthemes.png
new file mode 100644 (file)
index 0000000..5e934b7
Binary files /dev/null and b/swat/images/icons/nuvola/64/iconthemes.png differ
diff --git a/swat/images/icons/nuvola/64/important.png b/swat/images/icons/nuvola/64/important.png
new file mode 100644 (file)
index 0000000..db52b85
Binary files /dev/null and b/swat/images/icons/nuvola/64/important.png differ
diff --git a/swat/images/icons/nuvola/64/info.png b/swat/images/icons/nuvola/64/info.png
new file mode 100644 (file)
index 0000000..f8c50e1
Binary files /dev/null and b/swat/images/icons/nuvola/64/info.png differ
diff --git a/swat/images/icons/nuvola/64/kcoloredit.png b/swat/images/icons/nuvola/64/kcoloredit.png
new file mode 100644 (file)
index 0000000..9fe8697
Binary files /dev/null and b/swat/images/icons/nuvola/64/kcoloredit.png differ
diff --git a/swat/images/icons/nuvola/64/kcontrol.png b/swat/images/icons/nuvola/64/kcontrol.png
new file mode 100644 (file)
index 0000000..0ecbfe5
Binary files /dev/null and b/swat/images/icons/nuvola/64/kcontrol.png differ
diff --git a/swat/images/icons/nuvola/64/knotify.png b/swat/images/icons/nuvola/64/knotify.png
new file mode 100644 (file)
index 0000000..3f0d99d
Binary files /dev/null and b/swat/images/icons/nuvola/64/knotify.png differ
diff --git a/swat/images/icons/nuvola/64/konqueror.png b/swat/images/icons/nuvola/64/konqueror.png
new file mode 100644 (file)
index 0000000..23c5665
Binary files /dev/null and b/swat/images/icons/nuvola/64/konqueror.png differ
diff --git a/swat/images/icons/nuvola/64/kpaint.png b/swat/images/icons/nuvola/64/kpaint.png
new file mode 100644 (file)
index 0000000..a08cec3
Binary files /dev/null and b/swat/images/icons/nuvola/64/kpaint.png differ
diff --git a/swat/images/icons/nuvola/64/krita.png b/swat/images/icons/nuvola/64/krita.png
new file mode 100644 (file)
index 0000000..68321ff
Binary files /dev/null and b/swat/images/icons/nuvola/64/krita.png differ
diff --git a/swat/images/icons/nuvola/64/locale.png b/swat/images/icons/nuvola/64/locale.png
new file mode 100644 (file)
index 0000000..ed5d411
Binary files /dev/null and b/swat/images/icons/nuvola/64/locale.png differ
diff --git a/swat/images/icons/nuvola/64/mozilla.png b/swat/images/icons/nuvola/64/mozilla.png
new file mode 100644 (file)
index 0000000..a5220d1
Binary files /dev/null and b/swat/images/icons/nuvola/64/mozilla.png differ
diff --git a/swat/images/icons/nuvola/64/netscape.png b/swat/images/icons/nuvola/64/netscape.png
new file mode 100644 (file)
index 0000000..f2e34e9
Binary files /dev/null and b/swat/images/icons/nuvola/64/netscape.png differ
diff --git a/swat/images/icons/nuvola/64/opera.png b/swat/images/icons/nuvola/64/opera.png
new file mode 100644 (file)
index 0000000..60ded2a
Binary files /dev/null and b/swat/images/icons/nuvola/64/opera.png differ
diff --git a/swat/images/icons/nuvola/64/package.png b/swat/images/icons/nuvola/64/package.png
new file mode 100644 (file)
index 0000000..75238db
Binary files /dev/null and b/swat/images/icons/nuvola/64/package.png differ
diff --git a/swat/images/icons/nuvola/64/pipe.png b/swat/images/icons/nuvola/64/pipe.png
new file mode 100644 (file)
index 0000000..85e7142
Binary files /dev/null and b/swat/images/icons/nuvola/64/pipe.png differ
diff --git a/swat/images/icons/nuvola/64/realplayer.png b/swat/images/icons/nuvola/64/realplayer.png
new file mode 100644 (file)
index 0000000..9220109
Binary files /dev/null and b/swat/images/icons/nuvola/64/realplayer.png differ
diff --git a/swat/images/icons/nuvola/64/socket.png b/swat/images/icons/nuvola/64/socket.png
new file mode 100644 (file)
index 0000000..23818bc
Binary files /dev/null and b/swat/images/icons/nuvola/64/socket.png differ
diff --git a/swat/images/icons/nuvola/64/style.png b/swat/images/icons/nuvola/64/style.png
new file mode 100644 (file)
index 0000000..2d5a61d
Binary files /dev/null and b/swat/images/icons/nuvola/64/style.png differ
diff --git a/swat/images/icons/nuvola/64/stylesheet.png b/swat/images/icons/nuvola/64/stylesheet.png
new file mode 100644 (file)
index 0000000..7a4cd1f
Binary files /dev/null and b/swat/images/icons/nuvola/64/stylesheet.png differ
diff --git a/swat/images/icons/nuvola/README b/swat/images/icons/nuvola/README
new file mode 100644 (file)
index 0000000..8b01652
--- /dev/null
@@ -0,0 +1,4 @@
+Nuvola Icon Set 1.0\r
+\r
+http://www.icon-king.com/index.php?p=23\r
+License: Unknown
\ No newline at end of file
diff --git a/swat/images/icons/nuvola/author b/swat/images/icons/nuvola/author
new file mode 100644 (file)
index 0000000..d7e029c
--- /dev/null
@@ -0,0 +1,3 @@
+David Vignoni (david@icon-king.com)
+ICON KING - www.icon-king.com
diff --git a/swat/images/icons/nuvola/license.txt b/swat/images/icons/nuvola/license.txt
new file mode 100644 (file)
index 0000000..b1e3f5a
--- /dev/null
@@ -0,0 +1,504 @@
+                 GNU LESSER GENERAL PUBLIC LICENSE
+                      Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL.  It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+  This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it.  You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations below.
+
+  When we speak of free software, we are referring to freedom of use,
+not price.  Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+  To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights.  These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+  For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you.  You must make sure that they, too, receive or can get the source
+code.  If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it.  And you must show them these terms so they know their rights.
+
+  We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+  To protect each distributor, we want to make it very clear that
+there is no warranty for the free library.  Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+\f
+  Finally, software patents pose a constant threat to the existence of
+any free program.  We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder.  Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+  Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License.  This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License.  We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+  When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library.  The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom.  The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+  We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License.  It also provides other free software developers Less
+of an advantage over competing non-free programs.  These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries.  However, the Lesser license provides advantages in certain
+special circumstances.
+
+  For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it becomes
+a de-facto standard.  To achieve this, non-free programs must be
+allowed to use the library.  A more frequent case is that a free
+library does the same job as widely used non-free libraries.  In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+  In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software.  For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+  Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.  Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library".  The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+\f
+                 GNU LESSER GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+  A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+  The "Library", below, refers to any such software library or work
+which has been distributed under these terms.  A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language.  (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+  "Source code" for a work means the preferred form of the work for
+making modifications to it.  For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+  Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it).  Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+  
+  1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+  You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+\f
+  2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) The modified work must itself be a software library.
+
+    b) You must cause the files modified to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    c) You must cause the whole of the work to be licensed at no
+    charge to all third parties under the terms of this License.
+
+    d) If a facility in the modified Library refers to a function or a
+    table of data to be supplied by an application program that uses
+    the facility, other than as an argument passed when the facility
+    is invoked, then you must make a good faith effort to ensure that,
+    in the event an application does not supply such function or
+    table, the facility still operates, and performs whatever part of
+    its purpose remains meaningful.
+
+    (For example, a function in a library to compute square roots has
+    a purpose that is entirely well-defined independent of the
+    application.  Therefore, Subsection 2d requires that any
+    application-supplied function or table used by this function must
+    be optional: if the application does not supply it, the square
+    root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library.  To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License.  (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.)  Do not make any other change in
+these notices.
+\f
+  Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+  This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+  4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+  If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library".  Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+  However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library".  The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+  When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library.  The
+threshold for this to be true is not precisely defined by law.
+
+  If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work.  (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+  Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+\f
+  6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+  You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License.  You must supply a copy of this License.  If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License.  Also, you must do one
+of these things:
+
+    a) Accompany the work with the complete corresponding
+    machine-readable source code for the Library including whatever
+    changes were used in the work (which must be distributed under
+    Sections 1 and 2 above); and, if the work is an executable linked
+    with the Library, with the complete machine-readable "work that
+    uses the Library", as object code and/or source code, so that the
+    user can modify the Library and then relink to produce a modified
+    executable containing the modified Library.  (It is understood
+    that the user who changes the contents of definitions files in the
+    Library will not necessarily be able to recompile the application
+    to use the modified definitions.)
+
+    b) Use a suitable shared library mechanism for linking with the
+    Library.  A suitable mechanism is one that (1) uses at run time a
+    copy of the library already present on the user's computer system,
+    rather than copying library functions into the executable, and (2)
+    will operate properly with a modified version of the library, if
+    the user installs one, as long as the modified version is
+    interface-compatible with the version that the work was made with.
+
+    c) Accompany the work with a written offer, valid for at
+    least three years, to give the same user the materials
+    specified in Subsection 6a, above, for a charge no more
+    than the cost of performing this distribution.
+
+    d) If distribution of the work is made by offering access to copy
+    from a designated place, offer equivalent access to copy the above
+    specified materials from the same place.
+
+    e) Verify that the user has already received a copy of these
+    materials or that you have already sent this user a copy.
+
+  For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it.  However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+  It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system.  Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+\f
+  7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+    a) Accompany the combined library with a copy of the same work
+    based on the Library, uncombined with any other library
+    facilities.  This must be distributed under the terms of the
+    Sections above.
+
+    b) Give prominent notice with the combined library of the fact
+    that part of it is a work based on the Library, and explaining
+    where to find the accompanying uncombined form of the same work.
+
+  8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License.  Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License.  However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+  9. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Library or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+  10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+\f
+  11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded.  In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+  13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation.  If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+\f
+  14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission.  For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this.  Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+                           NO WARRANTY
+
+  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+\f
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    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
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/swat/images/icons/nuvola/readme.txt b/swat/images/icons/nuvola/readme.txt
new file mode 100644 (file)
index 0000000..590166e
--- /dev/null
@@ -0,0 +1,60 @@
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+This copyright and license notice covers the images in this directory.
+Note the license notice contains an add-on.
+************************************************************************
+
+TITLE: NUVOLA ICON THEME for KDE 3.x
+AUTHOR:        David Vignoni | ICON KING
+SITE:  http://www.icon-king.com
+MAILING LIST: http://mail.icon-king.com/mailman/listinfo/nuvola_icon-king.com
+
+Copyright (c)  2003-2004  David Vignoni.
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation,
+version 2.1 of the License.
+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 (see the the license.txt file); if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+#######**** NOTE THIS ADD-ON ****#######
+The GNU Lesser General Public License or LGPL is written for software libraries
+in the first place. The LGPL has to be considered valid for this artwork
+library too.
+Nuvola icon theme for KDE 3.x is a special kind of software library, it is an
+artwork library, it's elements can be used in a Graphical User Interface, or
+GUI.
+Source code, for this library means:
+ - raster png image* .
+The LGPL in some sections obliges you to make the files carry
+notices. With images this is in some cases impossible or hardly usefull.
+With this library a notice is placed at a prominent place in the directory
+containing the elements. You may follow this practice.
+The exception in section 6 of the GNU Lesser General Public License covers
+the use of elements of this art library in a GUI.
+dave [at] icon-king.com
+
+Date:          15 october 2004
+Version:       1.0
+
+DESCRIPTION:
+
+Icon theme for KDE 3.x. 
+Icons where designed using Adobe Illustrator, and then exported to PNG format.
+Icons shadows and minor corrections were done using Adobe Photoshop.
+Kiconedit was used to correct some 16x16 and 22x22 icons.
+
+LICENSE
+
+Released under GNU Lesser General Public License (LGPL)
+Look at the license.txt file.
+
+CONTACT
+
+David Vignoni  
+e-mail :               david [at] icon-king.com
+ICQ :                  117761009
+http:                  http://www.icon-king.com
diff --git a/swat/images/icons/nuvola/thanks.to b/swat/images/icons/nuvola/thanks.to
new file mode 100644 (file)
index 0000000..bd4d0b1
--- /dev/null
@@ -0,0 +1,7 @@
+Thanks to
+
+Mark Mahle from Hosted.as for hosting the site, support and for being a true friend. Best wishes for you.
+Christian Schaller to be a big fan Nuvola SVG and to have made me part of the gnome-themes-extras team.
+Carlos Woelz for his work at kde-quality and to give me some visibility with the interview at dot.kde.org.
+
+Also big thanks to Swell Technology, Kde-look and special thanks to the guys of Nuvola Mailinglist: Marcel Dierkes, Christian Szabo and Virginie Quesnay.
\ No newline at end of file
similarity index 100%
rename from webapps/images/logo.png
rename to swat/images/logo.png
similarity index 100%
rename from webapps/index.esp
rename to swat/index.esp
diff --git a/swat/kdc_server/index.esp b/swat/kdc_server/index.esp
new file mode 100644 (file)
index 0000000..69a8b07
--- /dev/null
@@ -0,0 +1,13 @@
+<% page_header("columns", "Kerberos Server", "servers"); 
+
+  libinclude("base.js");
+  libinclude("management.js");
+%>
+
+<h1>Kerberos Server</h1>
+
+<%
+writefln("Status: %s\n", server_status("kdc"));
+%>
+
+<% page_footer(); %>
diff --git a/swat/ldap_server/index.esp b/swat/ldap_server/index.esp
new file mode 100644 (file)
index 0000000..c4ed146
--- /dev/null
@@ -0,0 +1,13 @@
+<% page_header("columns", "LDAP Server", "servers"); 
+
+  libinclude("base.js");
+  libinclude("management.js");
+%>
+
+<h1>LDAP Server</h1>
+
+<%
+writefln("Status: %s\n", stream_server_status("ldap"));
+%>
+
+<% page_footer(); %>
similarity index 100%
rename from webapps/login.esp
rename to swat/login.esp
similarity index 100%
rename from webapps/logout.esp
rename to swat/logout.esp
similarity index 76%
rename from webapps/menu.js
rename to swat/menu.js
index e7aa1891ffba2ce6331b9220830d3c4979621966..dad11d73600902ba9da2dc6b581e57a508952334 100644 (file)
@@ -8,9 +8,18 @@ swat_menus = new Object();
 
 swat_menus.main = simple_menu(
        "Main Menu",
+       "Servers",            session_uri("/?menu=servers"),
        "Installation",       session_uri("/install/"),
-       "ESP Tests",          session_uri("/esptest/"),
-       "Preview of new SWAT",session_uri("/index.html"));
+       "ESP Tests",          session_uri("/esptest/"));
+
+swat_menus.servers = simple_menu(
+       "Servers",
+       "LDAP Server",        session_uri("/ldap_server/"),
+       "CLDAP Server",       session_uri("/cldap_server/"),
+       "RPC Server",         session_uri("/rpc_server/"),
+       "NBT Server",         session_uri("/nbt_server/"),
+       "WINS Server",        session_uri("/wins_server/"),
+       "Kerberos Server",    session_uri("/kdc_server/"));
 
 swat_menus.esptest = simple_menu(
        "ESP Tests",
@@ -22,13 +31,9 @@ swat_menus.esptest = simple_menu(
        "loadparm access",       session_uri("/esptest/loadparm.esp"),
        "exception handling",    session_uri("/esptest/exception.esp"),
        "environment variables", session_uri("/esptest/showvars.esp"),
+       "qooxdoo",               session_uri("/esptest/qooxdoo.esp"),
        "registry",              session_uri("/esptest/registry.esp"));
 
-swat_menus.json = simple_menu(
-       "JSON Tests",
-       "ldb browser",          session_uri("/apps/samba/utils/ldbbrowse.html"),
-       "admin console",        session_uri("/apps/samba/utils/admin_console.html"));
-
 
 swat_menus.install = simple_menu(
        "Installation",
@@ -53,5 +58,6 @@ swat_menus.docs = simple_menu(
        "XHTML Spec", "http://www.w3.org/TR/xhtml1/",
        "JavaScript Spec", "http://www.ecma-international.org/publications/files/ecma-st/ECMA-262.pdf",
        "CSS Specs", "http://www.w3.org/Style/CSS/#specs",
-       "CSS1/2 Reference", "http://www.w3schools.com/css/css_reference.asp");
+       "CSS1/2 Reference", "http://www.w3schools.com/css/css_reference.asp",
+       "qooxdoo info", "http://qooxdoo.sourceforge.net/");
 
diff --git a/swat/nbt_server/index.esp b/swat/nbt_server/index.esp
new file mode 100644 (file)
index 0000000..1928f12
--- /dev/null
@@ -0,0 +1,24 @@
+<% page_header("columns", "NBT Server", "nbt_server"); 
+
+  libinclude("base.js");
+  libinclude("management.js");
+%>
+
+<h1>NBT Server</h1>
+
+<%
+writefln("The NBT server is: %s\n", server_status("nbt"));
+%>
+
+<h2>Packet statistics</h2>
+<%
+
+var stats = nbtd_statistics();
+if (stats == undefined) {
+       writefln("nbt server not running");
+} else {
+       simple_table(stats);
+}
+%>
+
+<% page_footer(); %>
diff --git a/swat/rpc_server/index.esp b/swat/rpc_server/index.esp
new file mode 100644 (file)
index 0000000..46c8c8a
--- /dev/null
@@ -0,0 +1,13 @@
+<% page_header("columns", "RPC Server", "servers"); 
+
+  libinclude("base.js");
+  libinclude("management.js");
+%>
+
+<h1>RPC Server</h1>
+
+<%
+writefln("Status: %s\n", stream_server_status("rpc"));
+%>
+
+<% page_footer(); %>
similarity index 96%
rename from webapps/scripting/header_columns.esp
rename to swat/scripting/header_columns.esp
index 2fd57c400cf2d209efd99aa1bac2559302ca3705..593c738bedfb82af1d7aeab52ec6fa51c3974df2 100644 (file)
@@ -48,7 +48,7 @@ filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/logo.png'
 <div id="banner">
   <div class="stripe"></div>
   <div class="logout">
-  <b>logged in as @@session.authinfo.username</b>
+  <b>logged in as @@session.authinfo.username</b> (@@session.authinfo.user_class)
   <form method="post" action="/logout.esp@@global.SESSIONURI">
   <input type="submit" value="Logout" />
   </form>
diff --git a/swat/smb_server/index.esp b/swat/smb_server/index.esp
new file mode 100644 (file)
index 0000000..f0f4620
--- /dev/null
@@ -0,0 +1,13 @@
+<% page_header("columns", "SMB Server", "servers"); 
+
+  libinclude("base.js");
+  libinclude("management.js");
+%>
+
+<h1>SMB Server</h1>
+
+<%
+writefln("Status: %s\n", stream_server_status("smb"));
+%>
+
+<% page_footer(); %>
diff --git a/swat/style/qooxdoo/core.css b/swat/style/qooxdoo/core.css
new file mode 100644 (file)
index 0000000..06dfb64
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+*{box-sizing:border-box;-moz-box-sizing:border-box;margin:0;padding:0;} body,html{border:0 none;color:#000;font:11px Tahoma,"Lucida Sans Unicode","Lucida Grande",Verdana,"Bitstream Vera Sans",Arial,sans-serif;} body{padding-top:1px;} * html body,:root body{padding-top:0;} td,th{font:11px Tahoma,"Lucida Sans Unicode","Lucida Grande",Verdana,"Bitstream Vera Sans",Arial,sans-serif;} a{color:#094C81;} p{margin:0;padding:0;margin-bottom:6px;} hr{border:0 none;border-top:1px solid ThreeDShadow;border-bottom:1px solid ThreeDHighlight;height:2px;margin:0 !important;padding:0 !important;margin-bottom:4px !important;} img{box-sizing:content-box;-moz-box-sizing:content-box;border:0 none;} ul,ol{list-style:none;} .clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;} * html .clearfix{height:1%;} 
diff --git a/swat/style/qooxdoo/layouts/application.css b/swat/style/qooxdoo/layouts/application.css
new file mode 100644 (file)
index 0000000..70b4918
--- /dev/null
@@ -0,0 +1,6 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+@import url(../core.css);
+@import url(../test.css);
+@import url(../themes.css);
+@import url(../widgets.css);
+body,html{overflow:hidden;width:100%;height:100%;} :root,:root > body{overflow:-moz-scrollbars-unscrollable;}
diff --git a/swat/style/qooxdoo/layouts/page.css b/swat/style/qooxdoo/layouts/page.css
new file mode 100644 (file)
index 0000000..42ed743
--- /dev/null
@@ -0,0 +1,6 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+@import url(../core.css);
+@import url(../test.css);
+@import url(../themes.css);
+@import url(../widgets.css);
+#testFoot{top:0;bottom:auto;width:300px;left:300px;border-top:0 none;border-bottom:2px solid #fff;} #testFrame{display:none;} #testDebug{bottom:15px;} 
\ No newline at end of file
diff --git a/swat/style/qooxdoo/test.css b/swat/style/qooxdoo/test.css
new file mode 100644 (file)
index 0000000..9e49086
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+#testHead,#testFoot{background:#052B5C;position:absolute;left:0;right:0;width:100%;font-weight:bold;padding:4px 10px;color:#fff;} #testHead span,#testFoot span{font-weight:normal;} #testHead{top:0;border-bottom:2px solid #fff;} #testFoot{bottom:0;border-top:2px solid #fff;} #testFoot a{color:#fff;text-decoration:none;} #testDebug{position:absolute;bottom:35px;top:195px;right:8px;width:300px;background:#fff;border:1px solid #000;font:10px "Bitstream Vera Sans Mono",monospace;overflow:auto;padding:4px 8px;border:2px groove;-moz-border-top-colors:ThreeDShadow ThreeDHighlight;-moz-border-right-colors:ThreeDHighlight ThreeDShadow;-moz-border-bottom-colors:ThreeDHighlight ThreeDShadow;-moz-border-left-colors:ThreeDShadow ThreeDHighlight;} * html #testDebug{height:expression((document.body.offsetHeight - 232) + "px");} #testDescription{position:absolute;top:35px;right:8px;width:300px;height:150px;overflow:auto;padding:4px 8px;border:2px groove;-moz-border-top-colors:ThreeDShadow ThreeDHighlight;-moz-border-right-colors:ThreeDHighlight ThreeDShadow;-moz-border-bottom-colors:ThreeDHighlight ThreeDShadow;-moz-border-left-colors:ThreeDShadow ThreeDHighlight;} #testDescription p{margin:0;padding:0;margin-bottom:6px;} #testFrame{position:absolute;top:35px;left:8px;right:320px;bottom:35px;border:2px groove;-moz-border-top-colors:ThreeDShadow ThreeDHighlight;-moz-border-right-colors:ThreeDHighlight ThreeDShadow;-moz-border-bottom-colors:ThreeDHighlight ThreeDShadow;-moz-border-left-colors:ThreeDShadow ThreeDHighlight;} * html #testFrame{height:expression((document.body.offsetHeight - 72) + "px");width:expression((document.body.offsetWidth - 328) + "px");} #testFiles{position:absolute;right:320px;top:0px;font-size:11px;background:#052B5C;color:#fff;border:1px solid #052B5C;} #testFiles option{padding:1px 3px;} .manualFrame{position:absolute;border:2px groove;-moz-border-top-colors:ThreeDShadow ThreeDHighlight;-moz-border-right-colors:ThreeDHighlight ThreeDShadow;-moz-border-bottom-colors:ThreeDHighlight ThreeDShadow;-moz-border-left-colors:ThreeDShadow ThreeDHighlight;overflow:auto;padding:4px 8px;} .containerFrame{display:none;} 
\ No newline at end of file
diff --git a/swat/style/qooxdoo/themes.css b/swat/style/qooxdoo/themes.css
new file mode 100644 (file)
index 0000000..26ed1e5
--- /dev/null
@@ -0,0 +1,3 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+@import url(themes/win9x/theme.css);
+@import url(themes/winxp/theme.css);
diff --git a/swat/style/qooxdoo/themes/osx/grad_blue.gif b/swat/style/qooxdoo/themes/osx/grad_blue.gif
new file mode 100755 (executable)
index 0000000..751a7a3
Binary files /dev/null and b/swat/style/qooxdoo/themes/osx/grad_blue.gif differ
diff --git a/swat/style/qooxdoo/themes/osx/grad_gray.gif b/swat/style/qooxdoo/themes/osx/grad_gray.gif
new file mode 100755 (executable)
index 0000000..dc87940
Binary files /dev/null and b/swat/style/qooxdoo/themes/osx/grad_gray.gif differ
diff --git a/swat/style/qooxdoo/themes/osx/pin_dark.gif b/swat/style/qooxdoo/themes/osx/pin_dark.gif
new file mode 100755 (executable)
index 0000000..844277d
Binary files /dev/null and b/swat/style/qooxdoo/themes/osx/pin_dark.gif differ
diff --git a/swat/style/qooxdoo/themes/osx/toolbar_bg.gif b/swat/style/qooxdoo/themes/osx/toolbar_bg.gif
new file mode 100755 (executable)
index 0000000..9b78191
Binary files /dev/null and b/swat/style/qooxdoo/themes/osx/toolbar_bg.gif differ
diff --git a/swat/style/qooxdoo/themes/win9x/theme.css b/swat/style/qooxdoo/themes/win9x/theme.css
new file mode 100644 (file)
index 0000000..bc51fd8
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+body.QxThemeWin9x .QxMenuBarButton-Hover{border:1px solid ThreeDHighlight;border-right-color:ThreeDShadow;border-bottom-color:ThreeDShadow;padding:3px 7px 2px 7px;} body.QxThemeWin9x .QxMenuBarButton-Pressed{border:1px solid ThreeDHighlight;border-left-color:ThreeDShadow;border-top-color:ThreeDShadow;padding:3px 7px 2px 7px;} body.QxThemeWin9x .QxMenu{background:Menu;padding:1px;border:2px outset;-moz-border-top-colors:ThreeDLightShadow ThreeDHighlight;-moz-border-right-colors:ThreeDDarkShadow ThreeDShadow;-moz-border-bottom-colors:ThreeDDarkShadow ThreeDShadow;-moz-border-left-colors:ThreeDLightShadow ThreeDHighlight;margin-left:-1px;} body.QxThemeWin9x .QxToolBar{border:1px solid ThreeDShadow;border-top:1px solid ThreeDHighlight;border-left:1px solid ThreeDHighlight;} body.QxThemeWin9x .QxToolBarPartHandleLine{width:4px;border-left:1px solid ThreeDHighlight;border-bottom:1px solid ThreeDShadow;border-right:1px solid ThreeDShadow;border-top:1px solid ThreeDHighlight;} body.QxThemeWin9x .QxToolBarSeparatorLine{border-left:1px solid ThreeDShadow;border-right:1px solid ThreeDHighlight;} body.QxThemeWin9x .QxToolBarButton-Hover,body.QxThemeWin9x .QxToolBarCheckBox-Hover,body.QxThemeWin9x .QxToolBarRadioButton-Hover,body.QxThemeWin9x .QxToolBarMenuButton-Hover{padding:2px 3px 2px 3px;border-left:1px solid ThreeDHighlight;border-bottom:1px solid ThreeDShadow;border-right:1px solid ThreeDShadow;border-top:1px solid ThreeDHighlight;} body.QxThemeWin9x .QxToolBarButton-Checked,body.QxThemeWin9x .QxToolBarButton-Pressed,body.QxThemeWin9x .QxToolBarCheckBox-Checked,body.QxThemeWin9x .QxToolBarCheckBox-Pressed,body.QxThemeWin9x .QxToolBarRadioButton-Checked,body.QxThemeWin9x .QxToolBarRadioButton-Pressed,body.QxThemeWin9x .QxToolBarMenuButton-Checked,body.QxThemeWin9x .QxToolBarMenuButton-Pressed{padding:3px 2px 1px 4px;border-left:1px solid ThreeDShadow;border-bottom:1px solid ThreeDHighlight;border-right:1px solid ThreeDHighlight;border-top:1px solid ThreeDShadow;} body.QxThemeWin9x .QxToolBarButton-Checked,body.QxThemeWin9x .QxToolBarCheckBox-Checked,body.QxThemeWin9x .QxToolBarRadioButton-Checked,body.QxThemeWin9x .QxToolBarMenuButton-Checked{background:url(radiobuttonbackground.gif) top left;} body.QxThemeWin9x .QxWindow > .QxWindowCaptionBar{background:#808080 url(windowcaption_inactive.png) top right repeat-y;} body.QxThemeWin9x .QxWindow-Active > .QxWindowCaptionBar{background:#0A246A url(windowcaption_active.png) top right repeat-y;} 
\ No newline at end of file
diff --git a/swat/style/qooxdoo/themes/win9x/windowcaption_active.png b/swat/style/qooxdoo/themes/win9x/windowcaption_active.png
new file mode 100644 (file)
index 0000000..02da51f
Binary files /dev/null and b/swat/style/qooxdoo/themes/win9x/windowcaption_active.png differ
diff --git a/swat/style/qooxdoo/themes/win9x/windowcaption_inactive.png b/swat/style/qooxdoo/themes/win9x/windowcaption_inactive.png
new file mode 100644 (file)
index 0000000..a080239
Binary files /dev/null and b/swat/style/qooxdoo/themes/win9x/windowcaption_inactive.png differ
diff --git a/swat/style/qooxdoo/themes/winxp/menubackground.gif b/swat/style/qooxdoo/themes/winxp/menubackground.gif
new file mode 100644 (file)
index 0000000..f7c5589
Binary files /dev/null and b/swat/style/qooxdoo/themes/winxp/menubackground.gif differ
diff --git a/swat/style/qooxdoo/themes/winxp/theme.css b/swat/style/qooxdoo/themes/winxp/theme.css
new file mode 100644 (file)
index 0000000..8da8197
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+body.QxThemeWinXP .QxMenuBarButton-Hover{background:#B7BFD4;border:1px solid #000;padding:3px 7px 2px 7px;} body.QxThemeWinXP .QxMenuBarButton-Pressed{background:#DBD8D1;border:1px solid #808080;border-bottom:0 none;padding:3px 7px 3px 7px;} body.QxThemeWinXP .QxMenu{padding:1px 1px 1px 1px;background:#fff url(menubackground.gif) top left repeat-y;border:1px solid #808080;border-right:2px outset #AFA899;border-bottom:2px outset #AFA899;-moz-border-right-colors:#808080 #AFA899;-moz-border-bottom-colors:#808080 #AFA899;} body.QxThemeWinXP .QxMenuSeparator{margin-left:24px;} body.QxThemeWinXP .QxMenuButton,body.QxThemeWinXP .QxMenuCheckBox,body.QxThemeWinXP .QxMenuRadioButton{border:0 none;} body.QxThemeWinXP .QxMenuButton-Hover,body.QxThemeWinXP .QxMenuCheckBox-Hover,body.QxThemeWinXP .QxMenuRadioButton-Hover{border:1px solid #0A246A;background-color:#B7BFD4;color:black;} body.QxThemeWinXP .QxMenuButton-Hover *,body.QxThemeWinXP .QxMenuCheckBox-Hover *,body.QxThemeWinXP .QxMenuRadioButton-Hover *{margin-left:-1px;} body.QxThemeWinXP .QxMenuSeparator{padding-right:0;} body.QxThemeWinXP .QxMenuButtonText{padding-left:4px;} body.QxThemeWinXP .QxToolBar{border:1px solid #D4D0C8;} body.QxThemeWinXP .QxToolBarPart{background:#DBD8D1;} body.QxThemeWinXP .QxToolBarPartHandleLine{background:url(toolbarparthandle.gif) top repeat-y;width:7px;} body.QxThemeWinXP .QxToolBarSeparatorLine{border-left:1px solid #808080;} body.QxThemeWinXP .QxToolBarButton,body.QxThemeWinXP .QxToolBarCheckBox,body.QxThemeWinXP .QxToolBarRadioButton,body.QxThemeWinXP .QxToolBarMenuButton{margin-right:1px;} body.QxThemeWinXP .QxToolBarButton-Hover,body.QxThemeWinXP .QxToolBarCheckBox-Hover,body.QxThemeWinXP .QxToolBarRadioButton-Hover,body.QxThemeWinXP .QxToolBarMenuButton-Hover{padding:2px 3px 2px 3px;border:1px solid #666666;background:#B7BFD4;} body.QxThemeWinXP .QxToolBarButton-Checked,body.QxThemeWinXP .QxToolBarButton-Pressed,body.QxThemeWinXP .QxToolBarCheckBox-Checked,body.QxThemeWinXP .QxToolBarCheckBox-Pressed,body.QxThemeWinXP .QxToolBarRadioButton-Checked,body.QxThemeWinXP .QxToolBarRadioButton-Pressed,body.QxThemeWinXP .QxToolBarMenuButton-Checked,body.QxThemeWinXP .QxToolBarMenuButton-Pressed{padding:2px 3px 2px 3px;border:1px solid #0A246A;background:#8893B1;} body.QxThemeWinXP .QxToolBarButton-Checked,body.QxThemeWinXP .QxToolBarCheckBox-Checked,body.QxThemeWinXP .QxToolBarRadioButton-Checked,body.QxThemeWinXP .QxToolBarMenuButton-Checked{background:#DBD8D1;} 
\ No newline at end of file
diff --git a/swat/style/qooxdoo/themes/winxp/toolbarparthandle.gif b/swat/style/qooxdoo/themes/winxp/toolbarparthandle.gif
new file mode 100644 (file)
index 0000000..9772d78
Binary files /dev/null and b/swat/style/qooxdoo/themes/winxp/toolbarparthandle.gif differ
diff --git a/swat/style/qooxdoo/widgets.css b/swat/style/qooxdoo/widgets.css
new file mode 100644 (file)
index 0000000..33fa321
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+.QxWidget{display:block;overflow:hidden;position:absolute;visibility:visible;white-space:nowrap;} .QxWidget{overflow:-moz-scrollbars-none;} .QxBlocker{position:absolute;overflow:hidden;cursor:default;} .QxBlocker{overflow:-moz-scrollbars-none;} .QxDisabled{color:gray !important;} .QxFocused{outline:1px dotted invert;-moz-outline:1px dotted invert;} input[QxFocused],textarea[QxFocused],body[QxFocused],html[QxFocused]{outline:none;-moz-outline:none;} .QxPasswordField,.QxTextField{position:absolute;font-family:Tahoma,"Lucida Sans Unicode","Lucida Grande",Verdana,"Bitstream Vera Sans",Arial,sans-serif;font-size:11px;line-height:11px;padding:2px 3px;width:150px;} * html .QxPasswordField{padding-left:2px;padding-right:2px;} .QxPasswordField,.QxTextField{overflow:-moz-scrollbars-none;} .QxTextArea{font-family:Bitstream Vera Sans Mono,monospace;font-size:11px;height:100px;padding:2px;position:absolute;width:250px;} .QxTextField-Focused,.QxPasswordField-Focused,.QxTextArea-Focused{outline:none;-moz-outline:none;} .QxImage{display:inline;position:absolute;} .QxContainer{position:absolute;white-space:normal;} .QxAtomBase{position:absolute;cursor:default;white-space:nowrap;overflow:hidden;} .QxAtomBase{overflow:-moz-scrollbars-none;} .QxAtomBase .QxImage,.QxAtomBase .QxInputCheckIcon{position:absolute;} .QxAtomBase .QxContainer{white-space:nowrap;} .QxInputCheckIcon{height:13px;width:13px;-moz-user-focus:none;user-focus:none;-moz-user-select:none;user-select:none;margin:0;padding:0;} .QxRadioButton,.QxCheckBox{padding:2px;} .QxPopup,.QxToolTip,.QxMenu{visibility:hidden;z-index:100000;user-select:none;-moz-user-select:none;} .QxToolTip{background-color:Infobackground;color:InfoText;border:1px solid InfoText;padding:1px 3px 2px;z-index:1000000;} .QxButton{position:absolute;padding:2px 4px;background:Threedface;} .QxToolBar{position:absolute;white-space:nowrap;border:1px solid ThreeDShadow;overflow:hidden;} .QxToolBarPartHandleLine,.QxToolBarSeparatorLine{position:absolute;} .QxToolBarPart{white-space:nowrap;overflow:hidden;} .QxToolBarButton,.QxToolBarCheckBox,.QxToolBarRadioButton,.QxToolBarMenuButton,.QxToolBarSeparator,.QxToolBarPart,.QxToolBarPartHandle{position:relative !important;float:left;} .QxToolBarButton,.QxToolBarCheckBox,.QxToolBarRadioButton,.QxToolBarMenuButton{padding:3px 4px 3px 4px;} .QxToolBarButton-Hover,.QxToolBarCheckBox-Hover,.QxToolBarRadioButton-Hover,.QxToolBarMenuButton-Hover{padding:2px 3px 2px 3px;border:1px outset;} .QxToolBarButton-Checked,.QxToolBarButton-Pressed,.QxToolBarCheckBox-Checked,.QxToolBarCheckBox-Pressed,.QxToolBarRadioButton-Checked,.QxToolBarRadioButton-Pressed,.QxToolBarMenuButton-Checked,.QxToolBarMenuButton-Pressed{padding:2px 3px 2px 3px;border:1px inset;} .QxTree{position:absolute;user-select:none;-moz-user-select:none;cursor:default;} .QxTree table{vertical-align:top;display:none;user-select:none;-moz-user-select:none;} .QxTree ul ul{display:none;} .QxTree ul,.QxTree li{list-style:none;margin:0;padding:0;user-select:none;-moz-user-select:none;} * html .QxTree ul{border-top:1px solid #fff;margin-top:-1px;} .QxTree li{display:block;} .QxTree table{position:relative;top:0;bottom:0;} .QxTree,.QxTreeFile,.QxTreeFolder{cursor:default;display:block;white-space:nowrap;-moz-user-select:none;user-select:none;} .QxTree img,.QxTreeFile img,.QxTreeFolder img{vertical-align:bottom;width:16px;height:16px;-moz-user-select:none;user-select:none;} .QxTreeElementNavigationCell img,.QxTreeElementIndentCell img{width:19px;height:16px;} .QxTreeElementIconCell{padding-right:2px;} .QxTreeElementLabelCell{padding-right:4px;padding-left:2px;white-space:nowrap;} .QxTreeElementLabelCellHover{text-decoration:underline;color:#000080;} .QxTreeElementLabelCellSelected{background:#3662E7;color:#fff;} .QxListView{position:absolute;overflow:hidden;cursor:default;border:1px solid ThreeDShadow;width:400px;height:150px;} .QxListViewHeader,.QxListViewContent{position:absolute;left:0;top:0;} .QxListViewHeader{background:ThreeDFace;overflow:hidden;z-index:101;visibility:hidden;} .QxListViewContent{overflow:auto;height:100%;width:100%;z-index:100;} .QxListViewHeader > .QxListViewHeaderTable,.QxListViewContent > .QxListViewContentTable{table-layout:fixed;} .QxListViewHeaderTable{position:relative;} .QxListViewContentTable{position:absolute;top:0;left:0;margin-top:20px;} .QxListViewContentCell,.QxListViewHeaderCell{text-align:left;white-space:nowrap;font-size:11px;font-weight:normal;cursor:inherit;user-select:none;-moz-user-select:none;margin:0;} .QxListViewHeaderCell{border-top:0 none;border-left:1px solid #fff;border-right:1px solid #666666;border-bottom:2px solid ThreedShadow;padding:3px 4px 3px 4px;} .QxListViewContentCell{background:#fff;border:1px solid #fff;border-bottom:1px solid ThreedLightShadow;border-right:1px solid ThreedLightShadow;padding:1px 4px 1px 4px;} .QxListViewHeaderInner{width:100%;} .QxListViewHeaderInnerText{text-align:left;width:100%;} .QxListViewHeaderInnerSort{text-align:right;width:11px;} .QxListViewHeaderInnerTextBox{font-weight:normal;white-space:nowrap;} .QxListViewHeaderInnerSortImage{width:7px;height:4px;margin-left:3px;margin-right:1px;vertical-align:middle;} .QxListViewContentBox{white-space:nowrap;width:100%;height:100%;overflow:hidden;} .QxListViewHeaderOverflow .QxListViewHeaderInnerTextBox,.QxListViewContentOverflow .QxListViewContentBox{text-overflow:ellipsis;overflow:hidden;} .QxListViewContentRowSelected .QxListViewContentCell{background:Highlight;color:HighlightText;border-top-color:Highlight;border-left-color:Highlight;border-bottom-color:ThreedShadow;border-right-color:ThreedShadow;filter:Alpha(Opacity=100,FinishOpacity=75,Style=1,StartX=0,StartY=0,FinishX=0,FinishY=100);} .QxListViewContentBox img{position:relative;top:-1px;width:16px;height:16px;vertical-align:middle;margin-right:3px;} .QxFieldSet{position:absolute;padding:0;width:150px;height:100px;} .QxFieldSetFrame{position:absolute;margin-top:7px;border:2px groove;-moz-border-top-colors:ThreeDShadow ThreeDHighlight;-moz-border-right-colors:ThreeDHighlight ThreeDShadow;-moz-border-bottom-colors:ThreeDHighlight ThreeDShadow;-moz-border-left-colors:ThreeDShadow ThreeDHighlight;} @media all and(min-width:0px){.QxFieldSetFrame{border:2px groove ThreeDHighlight;} }.QxFieldSetLegend{display:none;position:absolute;font-size:11px;font-weight:normal;background:threedface;margin:-8px 35px 0 8px;padding:1px 3px 1px 3px;-moz-user-select:none;user-select:none;cursor:default;white-space:nowrap;} .QxFieldSetContent{position:absolute;margin:12px 11px 8px 11px;overflow:hidden;} .QxFieldSetContent{overflow:-moz-scrollbars-none;} .QxInline{display:block;position:relative;width:100%;overflow:hidden;} :root .QxInline{overflow:visible;} .QxTabFrame,.QxTab,.QxTabBar,.QxTabPane,.QxTabPage{overflow:hidden;position:absolute;} .QxTabFrame,.QxTab,.QxTabBar,.QxTabPane,.QxTabPage{overflow:-moz-scrollbars-none;} .QxTabBar{white-space:nowrap;z-index:2;margin-left:1px;} .QxTabPane{z-index:1;background-color:ThreeDFace;} .QxTab{cursor:default;z-index:1;margin-top:1px;background-color:ThreeDFace;border-left:1px solid ThreeDHighlight;border-right:2px outset;-moz-border-right-colors:ThreeDDarkShadow ThreeDShadow;} .QxTab-Checked{z-index:2;margin-top:0;} .QxTabBar-TopLeft .QxTab,.QxTabBar-TopRight .QxTab{border-top:1px solid ThreeDHighlight;padding:3px 6px 2px 8px;} .QxTabBar-TopLeft .QxTab-Checked,.QxTabBar-TopRight .QxTab-Checked{padding:2px 6px 3px 8px;} .QxTabBar-BottomLeft .QxTab,.QxTabBar-BottomRight .QxTab{border-bottom:2px outset;-moz-border-bottom-colors:ThreeDDarkShadow ThreeDShadow;padding:1px 6px 3px 8px;} .QxTabBar-BottomLeft .QxTab-Checked,.QxTabBar-BottomRight .QxTab-Checked{padding:2px 6px 2px 8px;} .QxIframe,.QxHtmlArea{display:block;overflow:hidden;position:absolute;visibility:visible;background:ThreeDFace;} .QxIframe,.QxHtmlArea{overflow:-moz-scrollbars-none;} .QxList{display:block;overflow:hidden;position:absolute;visibility:visible;background:#fff;border:1px solid #000;width:120px;} .QxListItem{border:1px solid #fff;padding:1px 5px 3px;position:relative;cursor:default;} .QxListItem-Selected,.QxListItem-Selected *{border-color:highlight;background-color:highlight;color:highlighttext;} .QxListItem-Lead{border-color:ThreeDShadow;} .QxBarSelectorPane,.QxBarSelectorPage,.QxBarSelectorFrame,.QxBarSelectorBar{overflow:hidden;position:absolute;} .QxBarSelectorBar{background:#fff;} .QxBarSelectorPane{background:#EFF4FB;} .QxBarSelectorButton{border:1px solid #fff;padding:4px;} .QxBarSelectorButton-Checked{background:#C1D2EE;} .QxBarSelectorBar-Top{border-bottom:1px solid #316AC5;} .QxBarSelectorBar-Right{border-left:1px solid #316AC5;} .QxBarSelectorBar-Bottom{border-top:1px solid #316AC5;} .QxBarSelectorBar-Left{border-right:1px solid #316AC5;} .QxBarSelectorBar-Top .QxBarSelectorButton,.QxBarSelectorBar-Bottom .QxBarSelectorButton{position:relative;float:left;padding-top:5px;padding-bottom:5px;border-top:0 none;border-bottom:0 none;margin-left:3px;margin-right:3px;} .QxBarSelectorBar-Left .QxBarSelectorButton,.QxBarSelectorBar-Right .QxBarSelectorButton{position:relative;padding-left:5px;padding-right:5px;border-left:0 none;border-right:0 none;margin-top:3px;margin-bottom:3px;} .QxBarSelectorBar-Top .QxBarSelectorButton-Checked,.QxBarSelectorBar-Bottom .QxBarSelectorButton-Checked{border-left-color:#316AC5;border-right-color:#316AC5;} .QxBarSelectorBar-Left .QxBarSelectorButton-Checked,.QxBarSelectorBar-Right .QxBarSelectorButton-Checked{border-top-color:#316AC5;border-bottom-color:#316AC5;} .QxComboBox{position:absolute;background:#fff;} .QxComboBox .QxWidget{background:threedface;padding:0;} .QxComboBox .QxTextField{border:0 none;padding:0;margin:0;padding-top:2px;background:none;} * html .QxComboBox .QxTextField{padding-top:4px;} .QxComboBox-Mark,.QxComboBox-Mark .QxTextField,.QxComboBox-Mark .QxAtom,.QxComboBox-Mark .QxAtom *{background-color:highlight;color:highlighttext;} .QxComboBox .QxListItem-Lead{border-color:#fff;} .QxMenu{border:2px outset;background:Menu;padding:2px 1px 1px 2px;} .QxMenuButton,.QxMenuCheckBox,.QxMenuRadioButton{position:relative;padding:1px 6px 1px 2px;border:1px solid Menu;overflow:hidden;} .QxMenuButton-Hover,.QxMenuCheckBox-Hover,.QxMenuRadioButton-Hover{background-color:#82A4D1;} .QxMenuButton .QxImage,.QxMenuButton .QxContainer,.QxMenuCheckBox .QxImage,.QxMenuCheckBox .QxContainer,.QxMenuRadioButton .QxImage,.QxMenuRadioButton .QxContainer{position:absolute;} .QxMenuSeparator{padding:3px 2px 2px 2px;font-size:0;line-height:0;} .QxMenuSeparatorLine{height:2px;border-top:1px solid ThreeDShadow;border-bottom:1px solid ThreeDHighlight;} .QxMenuBar{display:block;overflow:hidden;position:absolute;visibility:visible;white-space:nowrap;} .QxMenuBar{overflow:-moz-scrollbars-none;} .QxMenuBarButton{display:block;position:absolute;visibility:visible;white-space:nowrap;cursor:default;border:0 none;padding:4px 8px 3px 8px;} .QxMenuBar .QxMenuBarButton{position:relative;vertical-align:top;float:left;} .QxSpinner{position:absolute;background:#fff;} .QxSpinner .QxWidget{background:threedface;padding:0;} .QxSpinner .QxTextField{border:0 none;padding:0;margin:0;padding:2px 3px;} * html .QxSpinner .QxTextField{padding-top:3px;} .QxWindow{background:ThreeDFace;padding:2px;} .QxWindow .QxWindowPane{position:absolute;background:ThreeDFace;color:black;overflow:hidden;} .QxWindow .QxWindowCaptionBar{color:#fff;font-weight:bold;position:absolute;padding:1px 2px;background-color:#808080;filter:progid:DXImageTransform.Microsoft.Gradient(startColorStr='#808080',endColorStr='#C0C0C0',gradientType='1');} .QxWindow-Active .QxWindowCaptionBar{background-color:#0A246A;filter:progid:DXImageTransform.Microsoft.Gradient(startColorStr='#0A246A',endColorStr='#A6CAF0',gradientType='1');} .QxWindow .QxWindowCaptionBar .QxButton{padding:0;padding-left:1px;} .QxWindow .QxWindowStatusBar{position:absolute;padding:0 4px;} .QxBoxLayout,.QxHorizontalBoxLayout,.QxVerticalBoxLayout,.QxFlowLayout,.QxDockLayout,.QxGridLayout{position:absolute;overflow:hidden;} .QxBoxLayout,.QxHorizontalBoxLayout,.QxVerticalBoxLayout,.QxFlowLayout,.QxDockLayout,.QxGridLayout{overflow:-moz-scrollbars-none;} .QxGallery .galleryFrame{padding:2px;} .QxGallery .galleryCell{border:1px solid #444;background:#fff;margin:2px;float:left;overflow:hidden;font-family:Tahoma,Verdana,sans-serif;font-size:10px;cursor:default;-moz-user-select:none;user-select:none;} .QxGallery .galleryCell img{vertical-align:bottom;display:block;} .QxGallery .galleryCell .galleryTitle,.QxGallery .galleryCell .galleryComment{background:#eee;padding:3px 6px;text-align:center;cursor:default;overflow:hidden;white-space:nowrap;} .QxGallery .galleryCell .galleryTitle{border-bottom:1px solid #aaa;} .QxGallery .galleryCell .galleryComment{border-top:1px solid #aaa;} .QxGallery .galleryCell-Selected{background:#DCE8F6;border:1px solid #2760A1;} .QxGallery .galleryCell-Selected .galleryTitle,.QxGallery .galleryCell-Selected .galleryComment{background:#9BBFE7;} .QxGallery .galleryCell-Selected .galleryTitle{border-bottom:1px dotted #2760A1;} .QxGallery .galleryCell-Selected .galleryComment{border-top:1px dotted #2760A1;} .QxGalleryList{position:absolute;visibility:visible;} .QxGalleryList .galleryFrame{padding:2px;} .QxGalleryList .galleryCell{margin:2px;padding-bottom:2px;border:1px solid #EEE;background:#fff;overflow:hidden;white-space:normal;font-family:Tahoma,Verdana,sans-serif;font-size:12px;cursor:default;-moz-user-select:none;user-select:none;position:relative;} .QxGalleryList .galleryCell img{vertical-align:bottom;display:block;} .QxGalleryList .galleryNumber{width:45px;padding:4px;position:absolute;top:0px;left:0px;} .QxGalleryList .galleryImageContainer{position:absolute;top:0px;left:50px;} .QxGalleryList .galleryText{padding:4px;position:absolute;top:0px;left:130px;} .QxGalleryList .galleryNumber,.QxGalleryList .galleryText h3{font-weight:bold;font-size:11px;} .QxGalleryList .galleryText p{font-size:10px;} .QxGalleryList .galleryCell-Selected{background:#9BBCFF;border-color:#3B7CFF;} 
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxApplication.js b/swat/style/qooxdoo/widgets/core/QxApplication.js
new file mode 100644 (file)
index 0000000..3d1dbba
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxApplication(){if(QxApplication._instance){return QxApplication._instance;};QxTarget.call(this);window.onload=function(){window.application.init();};QxApplication._instance=this;};QxApplication.extend(QxTarget,"QxApplication");proto._clientWindow=null;proto._activeWidget=null;proto._userApplication=null;proto.coreObjects=["QxClient","QxClientWindow","QxClientDocument","QxWidget","QxEventManager","QxFocusManager","QxTarget","QxEvent","QxMouseEvent","QxKeyEvent"];proto.initcheck=function(){var ok=true;if(!document.body){return;};var c=this.coreObjects;for(var i=0,cl=c.length;i<cl;i++){if(typeof window[c[i]]!="function"){ok=false;};};if(ok){window.clearInterval(this._loadHandle);return this.init();};};proto.init=function(){window._appstart=(new Date).valueOf();var irun=(window._appstart-window._start);var iobj=QxObject._i3.length;var iper=String(irun/iobj);iper=iper.substring(0,iper.indexOf(".")+4)+"ms";this.debug("Init Runtime:"+irun+"ms");this.debug("Init Object Count:"+iobj);this.debug("Init Object Perf:"+iper);this._clientWindow=new QxClientWindow(window);if(typeof window.application.main=="function"){window.application.main();};window._appstop=window._stop=(new Date).valueOf();var mrun=(window._appstop-window._appstart);var mobj=(QxObject._i3.length-iobj);var mper=String(mrun/mobj);mper=mper.substring(0,mper.indexOf(".")+4)+"ms";this.debug("Main Runtime:"+mrun+"ms");this.debug("Main Object Count:"+mobj);this.debug("Main Object Perf:"+mper);};proto.setActiveWidget=function(v){this._activeWidget=v;};proto.getActiveWidget=function(){return this._activeWidget;};proto.getClientWindow=function(){return this._clientWindow;};proto.getPath=function(){var p=window.location.href;var v=p.substring(0,p.lastIndexOf("/"));return v;};proto.getUserApplication=function(){return this._userApplication;};proto.setUserApplication=function(userApplication){this._userApplication=userApplication;};proto.dispose=function(){if(this.getDisposed()){return;};var dispose_start=(new Date).valueOf();if(this._clientWindow){this._clientWindow.dispose();this._clientWindow=null;};this._activeWidget=null;QxTarget.prototype.dispose.call(this);QxObject.dispose();QxDebug("QxApplication","Dispose total:"+((new Date).valueOf()-dispose_start)+"ms");};window.application=new QxApplication;
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxBorder.js b/swat/style/qooxdoo/widgets/core/QxBorder.js
new file mode 100644 (file)
index 0000000..007cdd3
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxBorder(bWidth,bStyle,bColor){QxTarget.call(this);this._h1={};this._widgets={};this._h2={top:"",right:"",bottom:"",left:"",topColors:"",rightColors:"",bottomColors:"",leftColors:""};if(isValid(bWidth)&&bWidth!=0){this.setWidth(bWidth);};if(isValid(bStyle)){this.setStyle(bStyle);};if(isValid(bColor)){this.setColor(bColor);};};QxBorder.extend(QxTarget,"QxBorder");QxBorder.addProperty({name:"topWidth",type:Number,defaultValue:0,impl:"borderTopProperty"});QxBorder.addProperty({name:"rightWidth",type:Number,defaultValue:0,impl:"borderRightProperty"});QxBorder.addProperty({name:"bottomWidth",type:Number,defaultValue:0,impl:"borderBottomProperty"});QxBorder.addProperty({name:"leftWidth",type:Number,defaultValue:0,impl:"borderLeftProperty"});QxBorder.addProperty({name:"topStyle",type:String,defaultValue:"none",impl:"borderTopProperty"});QxBorder.addProperty({name:"rightStyle",type:String,defaultValue:"none",impl:"borderRightProperty"});QxBorder.addProperty({name:"bottomStyle",type:String,defaultValue:"none",impl:"borderBottomProperty"});QxBorder.addProperty({name:"leftStyle",type:String,defaultValue:"none",impl:"borderLeftProperty"});QxBorder.addProperty({name:"topColor",type:QxColor,defaultValue:"transparent",impl:"borderTopProperty"});QxBorder.addProperty({name:"rightColor",type:QxColor,defaultValue:"transparent",impl:"borderRightProperty"});QxBorder.addProperty({name:"bottomColor",type:QxColor,defaultValue:"transparent",impl:"borderBottomProperty"});QxBorder.addProperty({name:"leftColor",type:QxColor,defaultValue:"transparent",impl:"borderLeftProperty"});QxBorder.styleDecl={top:"borderTop",right:"borderRight",bottom:"borderBottom",left:"borderLeft"};QxBorder.geckoColorDecl={top:"MozBorderTopColors",right:"MozBorderRightColors",bottom:"MozBorderBottomColors",left:"MozBorderLeftColors"};QxBorder.fromString=function(s){var b=new QxBorder;var parts = s.split(/\s+/);var p;for(var i=0;i<parts.length;i++){p=parts[i];switch(p){case "groove":case "ridge":case "inset":case "outset":case "solid":case "dotted":case "dashed":case "double":case "none":b.setStyle(p);break;default:var n=parseFloat(p);if(n==p||p.indexOf("px")!=-1){b.setWidth(n);}else {b.setColor(p);};break;};};return b;};if((new QxClient).isOpera()){proto._generateDefString=function(bWidth,bStyle,bColor){var sWidth=typeof bWidth=="number"&&bWidth>=0&&bWidth<1000?bWidth+"px":"0px";var bStyle=typeof bStyle=="string"&&bStyle!=""?bStyle:"solid";var bColor=typeof bColor=="string"?bColor:"";if(bColor==""){switch(bStyle){case "groove":case "ridge":bColor="ThreeDHighlight";break;case "outset":case "inset":bColor="ThreeDFace";break;};};return sWidth+" "+bStyle+" "+(bColor!=""?" "+bColor:"");};}else {proto._generateDefString=function(bWidth,bStyle,bColor){var sWidth=typeof bWidth=="number"&&bWidth>=0&&bWidth<1000?bWidth+"px":"0px";var bStyle=typeof bStyle=="string"&&bStyle!=""?bStyle:"solid";var bColor=typeof bColor=="string"?bColor:"";return sWidth+" "+bStyle+" "+(bColor!=""?" "+bColor:"");};};proto.addWidget=function(o){this._widgets[o.toHash()]=o;this._applyWidget(o);};proto.removeWidget=function(o){delete this._widgets[o.toHash()];this._resetWidget(o);};proto.setWidth=function(bWidth,_b4){this.setTopWidth(bWidth,_b4);this.setRightWidth(bWidth,_b4);this.setBottomWidth(bWidth,_b4);this.setLeftWidth(bWidth,_b4);return true;};proto.setStyle=function(bStyle,_b4){this.setTopStyle(bStyle,_b4);this.setRightStyle(bStyle,_b4);this.setBottomStyle(bStyle,_b4);this.setLeftStyle(bStyle,_b4);return true;};proto.setColor=function(bColor,_b4){this.setTopColor(bColor,_b4);this.setRightColor(bColor,_b4);this.setBottomColor(bColor,_b4);this.setLeftColor(bColor,_b4);return true;};proto._modifyBorderTopProperty=function(_b1,_b2,_b3,_b4){this._h1[_b3]=_b1;this._h2.top=this._generateDefString(this._h1["topWidth"],this._h1["topStyle"],this._h1["topColor"]);this._h3Top();this._sync("top");return true;};if((new QxClient).isGecko()){proto._h3Top=function(){if(typeof this._h1["topColor"]=="string"&&this._h1["topColor"]!=""){this._h2["topColors"]="";}else {switch(this._h1["topStyle"]){case "groove":this._h2["topColors"]="ThreeDShadow ThreeDHighlight";break;case "ridge":this._h2["topColors"]="ThreeDHighlight ThreeDShadow";break;case "inset":this._h2["topColors"]="ThreeDShadow ThreeDDarkShadow";break;case "outset":this._h2["topColors"]="ThreeDLightShadow ThreeDHighlight";break;default:this._h2["topColors"]="";};};};}else {proto._h3Top=function(){};};proto._modifyBorderRightProperty=function(_b1,_b2,_b3,_b4){this._h1[_b3]=_b1;this._h2.right=this._generateDefString(this._h1["rightWidth"],this._h1["rightStyle"],this._h1["rightColor"]);this._h3Right();this._sync("right");return true;};if((new QxClient).isGecko()){proto._h3Right=function(){if(typeof this._h1["rightColor"]=="string"&&this._h1["rightColor"]!=""){this._h2["rightColors"]="";}else {switch(this._h1["rightStyle"]){case "groove":this._h2["rightColors"]="ThreeDHighlight ThreeDShadow";break;case "ridge":this._h2["rightColors"]="ThreeDShadow ThreeDHighlight";break;case "inset":this._h2["rightColors"]="ThreeDHighlight ThreeDLightShadow";break;case "outset":this._h2["rightColors"]="ThreeDDarkShadow ThreeDShadow";break;default:this._h2["rightColors"]="";};};};}else {proto._h3Right=function(){};};proto._modifyBorderBottomProperty=function(_b1,_b2,_b3,_b4){this._h1[_b3]=_b1;this._h2.bottom=this._generateDefString(this._h1["bottomWidth"],this._h1["bottomStyle"],this._h1["bottomColor"]);this._h3Bottom();this._sync("bottom");return true;};if((new QxClient).isGecko()){proto._h3Bottom=function(){if(typeof this._h1["bottomColor"]=="string"&&this._h1["bottomColor"]!=""){this._h2["bottomColors"]="";}else {switch(this._h1["bottomStyle"]){case "groove":this._h2["bottomColors"]="ThreeDHighlight ThreeDShadow";break;case "ridge":this._h2["bottomColors"]="ThreeDShadow ThreeDHighlight";break;case "inset":this._h2["bottomColors"]="ThreeDHighlight ThreeDLightShadow";break;case "outset":this._h2["bottomColors"]="ThreeDDarkShadow ThreeDShadow";break;default:this._h2["bottomColors"]="";};};};}else {proto._h3Bottom=function(){};};proto._modifyBorderLeftProperty=function(_b1,_b2,_b3,_b4){this._h1[_b3]=_b1;this._h2.left=this._generateDefString(this._h1["leftWidth"],this._h1["leftStyle"],this._h1["leftColor"]);this._h3Left();this._sync("left");return true;};if((new QxClient).isGecko()){proto._h3Left=function(){if(typeof this._h1["leftColor"]=="string"&&this._h1["leftColor"]!=""){this._h2["leftColors"]="";}else {switch(this._h1["leftStyle"]){case "groove":this._h2["leftColors"]="ThreeDShadow ThreeDHighlight";break;case "ridge":this._h2["leftColors"]="ThreeDHighlight ThreeDShadow";break;case "inset":this._h2["leftColors"]="ThreeDShadow ThreeDDarkShadow";break;case "outset":this._h2["leftColors"]="ThreeDLightShadow ThreeDHighlight";break;default:this._h2["leftColors"]="";};};};}else {proto._h3Left=function(){};};proto._sync=function(bProp){for(i in this._widgets){this._applyWidgetProp(this._widgets[i],bProp);};};if((new QxClient).isGecko()){proto._applyWidgetProp=function(o,bProp){if(typeof o=="undefined"||o==null){throw new Error("Failed to get widget to update border:"+o);};c=QxBorder.styleDecl;o.setStyleProperty(c[bProp],this._h2[bProp]);c=QxBorder.geckoColorDecl;o.setStyleProperty(c[bProp],this._h2[bProp+"Colors"]);};proto._applyWidget=function(o){if(typeof o=="undefined"||o==null||(!o instanceof QxWidget)){throw new Error("Failed to get widget to update border:"+o);};var c;with(this._h2){c=QxBorder.styleDecl;o.setStyleProperty(c.top,top);o.setStyleProperty(c.right,right);o.setStyleProperty(c.bottom,bottom);o.setStyleProperty(c.left,left);c=QxBorder.geckoColorDecl;o.setStyleProperty(c.top,topColors);o.setStyleProperty(c.right,rightColors);o.setStyleProperty(c.bottom,bottomColors);o.setStyleProperty(c.left,leftColors);};};proto._resetWidget=function(o){var c=QxBorder.styleDecl;o.setStyleProperty(c.top,"");o.setStyleProperty(c.right,"");o.setStyleProperty(c.bottom,"");o.setStyleProperty(c.left,"");c=QxBorder.geckoColorDecl;o.setStyleProperty(c.top,"");o.setStyleProperty(c.right,"");o.setStyleProperty(c.bottom,"");o.setStyleProperty(c.left,"");};}else {proto._applyWidgetProp=function(o,bProp){if(typeof o=="undefined"||o==null){throw new Error("Failed to get widget to update border:"+o);};c=QxBorder.styleDecl;o.setStyleProperty(c[bProp],this._h2[bProp]);};proto._applyWidget=function(o){if(typeof o=="undefined"||o==null||(!o instanceof QxWidget)){throw new Error("Failed to get widget to update border:"+o);};var c;with(this._h2){c=QxBorder.styleDecl;o.setStyleProperty(c.top,top);o.setStyleProperty(c.right,right);o.setStyleProperty(c.bottom,bottom);o.setStyleProperty(c.left,left);};};proto._resetWidget=function(o){var c=QxBorder.styleDecl;o.setStyleProperty(c.top,"");o.setStyleProperty(c.right,"");o.setStyleProperty(c.bottom,"");o.setStyleProperty(c.left,"");};};QxBorder.presets={inset:new QxBorder(2,"inset"),outset:new QxBorder(2,"outset"),groove:new QxBorder(2,"groove"),ridge:new QxBorder(2,"ridge"),thinInset:new QxBorder(1,"solid","ThreeDShadow"),thinOutset:new QxBorder(1,"solid","ThreeDShadow"),black:new QxBorder(1,"solid","black"),white:new QxBorder(1,"solid","white"),shadow:new QxBorder(1,"solid","ThreeDShadow")};with(QxBorder.presets.thinInset){setRightColor("ThreeDHighlight");setBottomColor("ThreeDHighlight");};with(QxBorder.presets.thinOutset){setLeftColor("ThreeDHighlight");setTopColor("ThreeDHighlight");};proto.dispose=function(){if(typeof this._widgets=="object"){for(var i;i<this._widgets.length;i++){delete this._widgets[i];};};delete this._widgets;if(typeof this._h1=="object"){for(var i in this._h1){delete this._h1[i];};};delete this._h1;if(typeof this._h2=="object"){for(var i in this._h2){delete this._h2[i];};};delete this._h2;return QxTarget.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxBuilder.js b/swat/style/qooxdoo/widgets/core/QxBuilder.js
new file mode 100644 (file)
index 0000000..c9b3277
--- /dev/null
@@ -0,0 +1,3 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxBuilder(flags){QxTarget.call(this);this._propertyEditors={};this._registerDefaultPropertyEditors();this._radioButtonManagers={};this._debugContext=[];this._flags=flags||{};if(this._flags.strict==null){this._flags.strict=true;};};QxBuilder.extend(QxTarget,"QxBuilder");proto.buildFromUrl=function(parent,url){var loader=new QxXmlHttpLoader();var self=this;loader.addEventListener("complete",function(e){self.build(parent,e.getValue());e.preventDefault();self.dispatchEvent(new QxEvent("done"),true);});loader.load(url);};proto.build=function(parent,node){if(parent instanceof QxApplication){parent=parent.getClientWindow().getDocument();};if(typeof node=="object"&&node.nodeName=='TEXTAREA'){node=node.value;};if(typeof node=="string"){if(new QxClient().isMshtml()){var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");xmlDoc.async=false;xmlDoc.loadXML(node);node=xmlDoc.documentElement;if(xmlDoc.parseError.errorCode!=0){throw new Error("error parsing xml "+xmlDoc.parseError+"\nLine:"+xmlDoc.parseError.line+':'+xmlDoc.parseError.srcText);};}else{var parser=new DOMParser();node=parser.parseFromString(node,"text/xml").documentElement;};};this._buildNodes(parent,node.childNodes);};proto._buildNodes=function(parent,nodes){var x=0;for(var i=0;i<nodes.length;i++){var n=nodes[i];if(n.nodeType==1){this._debugContext.push(n.nodeName+'['+(x++)+']');this._buildWidgetFromNode(parent,n);this._debugContext.pop();};};};proto._buildEventListener=function(widget,args,text){if(isInvalidString(args.type)){throw this._newBuildError('eventListener requires a string type attribute');};var self=this;if(isValidString(args.delegate)){var dc=this._formatDebugContext();if(args.delegate.indexOf('.')>-1){var p=args.delegate.split('.');var o=p[0];var m=p[1];widget.addEventListener(args.type,function(e){if(!window[o]){throw self._newError(dc,'delegate not found',{delegate:args.delegate});};if(!window[o][m]){throw self._newError(dc,'delegate not found',{delegate:args.delegate});};window[o][m].apply(window[o],[e]);});}else{widget.addEventListener(args.type,function(e){if(!window[args.delegate]){throw self._newError(dc,'delegate not found',{delegate:args.delegate});};window[args.delegate].apply(null,[e]);});};}else{if(!args.args){args.args="event";};var f=new Function(args.args,text);widget.addEventListener(args.type,f);};};proto._buildWidgetFromNode=function(parent,node){var className=this._extractClassName(node);if(!className){if(parent instanceof QxAtom){var text=this._serializeToString(node);parent.setText((parent.getText()||"")+text);return;};throw this._newBuildError("unrecognised node",{nodeName:node.nodeName});};if(className=="QxWidgets"){this._buildNodes(parent,node.childNodes);return;};if(className=="QxScript"){var e=document.createElement("script");var attribs=this._mapXmlAttribToObject(node);if(attribs.type){e.type=attribs.type;}else{e.type='text/javascript';};if((new QxClient).isMshtml()){e.innerHTML=eval(node.firstChild.nodeValue);}else {e.innerHTML=node.firstChild.nodeValue;};document.body.appendChild(e);return;};if(className=="QxEventListener"){var attribs=this._mapXmlAttribToObject(node);var text;if(node.firstChild){text=node.firstChild.nodeValue;};this._buildEventListener(parent,attribs,text);return;};var constructor=window[className];if(!constructor){throw this._newBuildError("constructor not found",{className:className});};var widget=new constructor();var attribs=this._mapXmlAttribToObject(node,widget);delete attribs['qxtype'];if(attribs.id){window[attribs.id]=widget;delete attribs.id;};for(var a in attribs){if(a.toLowerCase().indexOf('on')==0&&a.length>2){var type=a.substring(2);type=type.charAt(0)+type.substring(1);this._buildEventListener(widget,{type:type,args:'event'},attribs[a]);delete attribs[a];};};var layoutHint;if(typeof QxLayout!="undefined"&&parent instanceof QxLayout){if(attribs.layouthint){try{eval('layoutHint={'+attribs.layouthint+'}');}catch(e){throw this._newBuildError('invalid property value',{name:'layoutHint',value:attrib.layoutHint},e);};delete attribs.layouthint;};};for(var n in attribs){this._debugContext.push("@"+n);this._setWidgetProperty(widget,n,attribs[n]);this._debugContext.pop();};if(typeof QxMenu!="undefined"&&widget instanceof QxMenu){window.application.getClientWindow().getDocument().add(widget);parent.setMenu(widget);}else if(layoutHint&&typeof QxLayout!="undefined"&&parent instanceof QxLayout){parent.add(widget,layoutHint);}else{parent.add(widget);};this._buildNodes(widget,node.childNodes);};proto._setWidgetProperty=function(widget,name,value){var editor=this._findPropertyEditor(widget.classname,name);if(!editor){editor=this._coercePropertyEditor;};editor.set(widget,name,value);};proto._findPropertyEditor=function(className,propertyName){var m=this._propertyEditors[className];if(m&&m[propertyName]){return m[propertyName];};var w=window[className];if(w&&w.prototype.superclass&&w.prototype.superclass.prototype.classname){return this._findPropertyEditor(w.prototype.superclass.prototype.classname,propertyName);};return null;};proto.registerPropertyEditor=function(className,propertyName,editor){if(!this._propertyEditors[className])this._propertyEditors[className]={};this._propertyEditors[className][propertyName]=editor;};proto._registerDefaultPropertyEditors=function(){var self=this;var commaDelimitedPropertyEditor={};commaDelimitedPropertyEditor.set=function(widget,name,value){if(value==null||value==""){self._setProperty(widget,name,null);return;};var s=value.split(",");var v=[];for(var i=0;i<s.length;i++){v[i]=self._coerce(s[i]);};self._setProperties(widget,name,v);};var evalPropertyEditor={};evalPropertyEditor.set=function(widget,name,value){if(value==null||value==""){self._setProperty(widget,name,null);return;};self._setProperty(widget,name,eval(value));};var radioButtonManagerEditor={};radioButtonManagerEditor.set=function(widget,name,value){var manager=self._radioButtonManagers[value];if(!manager){manager=new QxRadioButtonManager(value);self._radioButtonManagers[value]=manager;};manager.add(widget);};this.registerPropertyEditor('QxWidget','location',commaDelimitedPropertyEditor);this.registerPropertyEditor('QxWidget','dimension',commaDelimitedPropertyEditor);this.registerPropertyEditor('QxWidget','styleproperty',commaDelimitedPropertyEditor);this.registerPropertyEditor('QxWidget','border',evalPropertyEditor);this.registerPropertyEditor('QxMenuRadioButton','group',radioButtonManagerEditor);this.registerPropertyEditor('QxRadioButton','group',radioButtonManagerEditor);this._coercePropertyEditor={};this._coercePropertyEditor.set=function(widget,name,value){self._setProperty(widget,name,self._coerce(value));};};proto._coerce=function(value){if(value==null)return value;if(typeof value=='object')return value;if(typeof value=='function')return value;if(typeof value=='number')return value;if(typeof value=='boolean')return value;if(typeof value=='date')return value;if(typeof value=='array')return value;var n=new Number(value);if(!isNaN(n))return n.valueOf();if(value=="true")return true;if(value=="false")return false;var d=Date.parse(value);if(d!=null&&!isNaN(d))return d;if(typeof value=='string'){if(value=="")return null;};return value;};proto._setProperty=function(widget,name,value){this._setProperties(widget,name,[value]);};proto._setProperties=function(widget,name,value){var n="set"+name;for(var a in widget){if(n==a.toLowerCase()){var setter=widget[a];break;};};if(!setter&&this._flags.strict)throw this._newBuildError('no setter defined on widget instance',{widget:widget,property:name});setter.apply(widget,value);};proto._extractClassName=function(node){var n;if(node.nodeName.toUpperCase()=="DIV"){if(!node.attributes['qxtype']){return null
+};n=node.attributes['qxtype'].value;}else{n=node.nodeName;};var nameParts=n.split(":");if(nameParts.length!=2){return null;};return nameParts[0].toFirstUp()+nameParts[1].toFirstUp();};proto._serializeToString=function(node){var xmlSerializer=new XMLSerializer();return xmlSerializer.serializeToString(node);};proto._mapXmlAttribToObject=function(node){var r={};var c=node.attributes;for(var i=0;i<c.length;i++){r[c[i].name.toLowerCase()]=c[i].value;};return r;};proto._newBuildError=function(message,data,exception){return this._newError(this._formatDebugContext(),message,data,exception);};proto._newError=function(debugContext,message,data,exception){var m=message;var joiner="";var d="";if(data){for(var p in data){d+=joiner+p+"="+data[p]+'';joiner=" ";};m+=" "+d+" ";};m+=" context:"+debugContext+" ";if(exception){m+=" error:"+exception+" ";};return new Error(m);};proto._formatDebugContext=function(){var s="";for(var i=0;i<this._debugContext.length;i++){var v=this._debugContext[i];s+='/'+v;};return s;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxClient.js b/swat/style/qooxdoo/widgets/core/QxClient.js
new file mode 100644 (file)
index 0000000..19851a9
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxClient(){if(QxClient._instance){return QxClient._instance;};var n=navigator;var u=n.userAgent;var v=n.vendor;var p=n.product;var r=null;if(window.opera){r="opera";}else if(typeof v=="string"&&v=="KDE"){r="khtml";}else if(typeof p=="string"&&p=="Gecko"){r="gecko";}else if (/msie/i.test(u)){r="mshtml";};this.engine=r;this.mshtml=r=="mshtml";this.gecko=r=="gecko";this.opera=r=="opera";this.khtml=r=="khtml";n=u=v=p=r=null;QxClient._instance=this;};QxClient.extend(Object,"QxClient");proto.getEngine=function(){return this.engine;};proto.isMshtml=function(){return this.engine=="mshtml";};proto.isGecko=function(){return this.engine=="gecko";};proto.isOpera=function(){return this.engine=="opera";};proto.isKhtml=function(){return this.engine=="khtml";};proto.isNotMshtml=function(){return !this.isMshtml();};proto.isNotGecko=function(){return !this.isGecko();};proto.isNotOpera=function(){return !this.isMshtml();};proto.isNotKhtml=function(){return !this.isKhtml();};window.client=new QxClient;
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxClientWindow.js b/swat/style/qooxdoo/widgets/core/QxClientWindow.js
new file mode 100644 (file)
index 0000000..060d637
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxClientWindow(windowElement){QxTarget.call(this);this._h3=windowElement;this._h3._QxClientWindow=this;this._addUnloadEvent(windowElement);this._h4=new QxClientDocument(this);this._h5=new QxEventManager(this);this._h6=new QxFocusManager(this);};QxClientWindow.extend(QxTarget,"QxClientWindow");proto.getEventManager=function(){return this._h5;};proto.getFocusManager=function(){return this._h6;};proto.getClientDocument=function(){return this._h4;};proto.getDocument=function(){return this._h4;};proto.getElement=function(){return this._h3;};if((new QxClient).isMshtml()){proto._addUnloadEvent=function(el){if(el==window){el.attachEvent("onunload",new Function("(new QxApplication).dispose();"));}else {el.attachEvent("onunload",function(e){if(el._QxClientWindow){el._QxClientWindow.dispose();el._QxClientWindow=null;};});};};}else if((new QxClient).isGecko()){proto._addUnloadEvent=function(el){if(el==window){el.addEventListener("unload",new Function("(new QxApplication).dispose();"),false);}else {el.addEventListener("unload",function(e){if(el._QxClientWindow){el._QxClientWindow.dispose();el._QxClientWindow=null;};},false);};};}else {proto._addUnloadEvent=function(el){};};proto.dispose=function(){if(this.getDisposed()){return;};if(this._h3){this._h3._QxClientWindow=null;this._h3=null;};if(this._h5){this._h5.dispose();this._h5=null;};if(this._h6){this._h6.dispose();this._h6=null;};if(this._h4){this._h4.dispose();this._h4=null;};QxTarget.prototype.dispose.call(this);return true;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxCommand.js b/swat/style/qooxdoo/widgets/core/QxCommand.js
new file mode 100644 (file)
index 0000000..488de0d
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxCommand(vShortcut,vKeyCode,vManager){QxTarget.call(this);if(isValid(vShortcut)){this.setShortcut(vShortcut);};if(isValid(vKeyCode)){this.setKeyCode(vKeyCode);};this.setManager(isValid(vManager)?vManager:window.application.getClientWindow().getEventManager());};QxCommand.extend(QxTarget,"QxCommand");QxCommand.addProperty({name:"checked",type:Boolean,defaultValue:false});QxCommand.addProperty({name:"shortcut",type:String});QxCommand.addProperty({name:"keyCode",type:Number});QxCommand.addProperty({name:"manager",type:Object});proto.execute=function(vTarget){this.dispatchEvent(new QxDataEvent("execute",vTarget));return false;};proto._shortcutParts={};proto._modifyShortcut=function(_b1,_b2,_b3,_b4){if(_b1){var a = _b1.toLowerCase().split(/[-+\s]+/);var al=a.length;this._shortcutParts={};for(var i=0;i<al;i++){this._shortcutParts[a[i]]=true;};}else {this._shortcutParts=null;};return true;};proto._modifyManager=function(_b1,_b2,_b3,_b4){if(_b2){_b2.removeCommand(this);};if(_b1){_b1.addCommand(this);};return true;};proto._matchesKeyEvent=function(e){if(!(isValid(this.getShortcut())||isValid(this.getKeyCode()))){return false;};if((this._shortcutParts.shift&&!e.getShiftKey())||(this._shortcutParts.ctrl&&!e.getCtrlKey())||(this._shortcutParts.alt&&!e.getAltKey())){return false;};var vEventCode=e.getKeyCode();var vSelfCode=this.getKeyCode();switch(vSelfCode){case null:break;case vEventCode:return true;};var c=String.fromCharCode(vEventCode).toLowerCase();if(this._shortcutParts[c]){return true;};if(vSelfCode==null){for(var vPart in this._shortcutParts){switch(vPart){case "ctrl":case "shift":case "alt":case "control":break;default:if(vEventCode==QxKeyEvent.keys[vPart]){return true;};};};};return false;};proto.toString=function(){var vShortcut=this.getShortcut();var vKeyCode=this.getKeyCode();var vString="";if(isValidString(vShortcut)){vString=vShortcut;if(isValidNumber(vKeyCode)){var vTemp=QxKeyEvent.codes[vKeyCode];vString+="+"+(vTemp?vTemp.toFirstUp():String(vKeyCode));};}else if(isValidNumber(vKeyCode)){var vTemp=QxKeyEvent.codes[vKeyCode];vString=vTemp?vTemp.toFirstUp():String(vKeyCode);};return vString;};proto.dispose=function(){if(this.getDisposed()){return;};this._ownerWindow=null;return QxTarget.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxData.js b/swat/style/qooxdoo/widgets/core/QxData.js
new file mode 100644 (file)
index 0000000..44b055c
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxData(c){QxTarget.call(this);this._h7=[];this._storeQueue=[];this._cache={};this._interval=new QxTimer(25);this._processRequestQueue=false;var o=this;this._interval.addEventListener("interval",function(){o.checkProcess();});(new QxTimerManager).add(this);};QxData.extend(QxTarget,"QxData");proto.loadData=function(dataKey){if(this.getDisposed()){return;};this._h7.push(dataKey);if(!this._interval.getEnabled()){this._interval.start();};};proto.checkProcess=function(){if(this.getDisposed()){return;};if(this._processRequestQueue){return;};this._processRequestQueue=true;while(this._h7.length>0){this.process(this._h7.shift(),new QxXmlHttpLoader);};this._processRequestQueue=false;this._interval.stop();};proto.process=function(dataKey,loader){if(this.getDisposed()){return;};this._storeQueue.push(dataKey);var o=this;loader.addEventListener("complete",function(e){o.processComplete(e.getData());loader.dispose();});try{loader.load(this.makeRequest(dataKey));}catch(ex){var t=dataKey.indexOf("[");var p0=dataKey.substring(0,t);this.dispatchEvent(new QxDataEvent("update"+p0.toFirstUp(),this),true);loader.dispose();throw new Error("Could not load data:"+ex);};};proto.makeRequest=function(dataKey){var t=dataKey.indexOf("[");var p0=dataKey.substring(0,t);var p1=dataKey.substring(t+1,dataKey.length-1);return "data/" + p0 + "/" + p1 + ".xml" + "?r=" + Math.round(Math.random()^Math.random()*100000);};proto.processComplete=function(xmlData){var req=this.getRequest(xmlData);var res=this.parseData(req,xmlData);this.mergeCacheData(res);this.dispatchEvent(new QxDataEvent("update"+req.toFirstUp(),this),true);};proto.getRequest=function(xmlData){return xmlData.documentElement.getElementsByTagName("PfxRequest")[0].getElementsByTagName("PfxSoap")[0].getAttribute("reqname");};proto.getResultXml=function(xmlData){return xmlData.documentElement.getElementsByTagName("PfxResult")[0];};proto.mapXmlToObject=function(xmlFrag){var r={};var c=xmlFrag.childNodes;for(var i=0;i<c.length;i++){if(c[i].nodeType==1){r[c[i].tagName]=c[i].firstChild.nodeValue;};};return r;};proto.parseData=function(req,xmlData){var handler=this["_parseData_"+req];if(typeof handler!="function"){throw new Error("QxData:The Parser function is not defined:_parseData_"+req+"!");};return handler.call(this,xmlData);};proto.mergeCacheData=function(res){for(i in res){this._cache[i]=res[i];};};proto.dispose=function(){if(this._disposed){return;};QxObject.prototype.dispose.call(this);if(typeof this._h7=="object"){for(var i=0;i<this._h7.length;i++){delete this._h7[i];};};delete this._h7;if(typeof this._storeQueue=="object"){for(var i=0;i<this._storeQueue.length;i++){delete this._storeQueue[i];};};delete this._storeQueue;if(typeof this._cache=="object"){for(i in this._cache){delete this._cache[i];};};this._cache=null;if(this._interval){this._interval.dispose();};this._interval=null;this._processRequestQueue=null;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxDebug.js b/swat/style/qooxdoo/widgets/core/QxDebug.js
new file mode 100644 (file)
index 0000000..66ac659
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+window._start=(new Date).valueOf();function QxDebug(){var t=String((new Date).valueOf()-window._start);while(t.length<5)t="0"+t;t+=":&#160;";var m;if(arguments.length==2){if(arguments[0]==this.last){m=t+"&#160;&#160;"+arguments[1]+"<br/>";}else {m = t + arguments[0] + "<br/>" + t + "&#160;&#160;" + arguments[1] + "<br/>";this.last=arguments[0];};}else {m=t+arguments[0];};var d=document.getElementById("testDebug");if(!d){QxDebug.cache+=m;}else {if(QxDebug.cache!=""){d.innerHTML+=QxDebug.cache;QxDebug.cache="";};d.innerHTML+=m;};};QxDebug.cache="";function QxDebugTimer(id){if(QxDebugTimerCache[id]){QxDebug("QxDebugTimer",id+":"+((new Date).valueOf()-QxDebugTimerCache[id])+"ms");delete QxDebugTimerCache[id];}else {QxDebugTimerCache[id]=(new Date).valueOf();};};QxDebugTimerCache={};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxDom.js b/swat/style/qooxdoo/widgets/core/QxDom.js
new file mode 100644 (file)
index 0000000..34b35ca
--- /dev/null
@@ -0,0 +1,3 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+var QxDOM=new Object;if(Boolean(document.defaultView)&&Boolean(document.defaultView.getComputedStyle)){QxDOM.getComputedStyleProperty=function(el,prop){return !el?null:el.ownerDocument?el.ownerDocument.defaultView.getComputedStyle(el,"")[prop]:el.style[prop];};}else if((new QxClient).isMshtml()){QxDOM.getComputedStyleProperty=function(el,prop){if(!el){return null;};if(el.parentNode){return el.currentStyle[prop];}else {var v1=el.runtimeStyle[prop];if(v1!=null&&typeof v1!="undefined"){return v1;};return el.style[prop];};};}else {QxDOM.getComputedStyleProperty=function(el,prop){return !el?null:el.style[prop];};};QxDOM.getComputedStyleSize=function(el,prop){return parseInt(QxDOM.getComputedStyleProperty(el,prop))||0;};QxDOM.getComputedMarginLeft=function(el){return QxDOM.getComputedStyleSize(el,"marginLeft");};QxDOM.getComputedMarginTop=function(el){return QxDOM.getComputedStyleSize(el,"marginTop");};QxDOM.getComputedMarginRight=function(el){return QxDOM.getComputedStyleSize(el,"marginRight");};QxDOM.getComputedMarginBottom=function(el){return QxDOM.getComputedStyleSize(el,"marginBottom");};QxDOM.getComputedPaddingLeft=function(el){return QxDOM.getComputedStyleSize(el,"paddingLeft");};QxDOM.getComputedPaddingTop=function(el){return QxDOM.getComputedStyleSize(el,"paddingTop");};QxDOM.getComputedPaddingRight=function(el){return QxDOM.getComputedStyleSize(el,"paddingRight");};QxDOM.getComputedPaddingBottom=function(el){return QxDOM.getComputedStyleSize(el,"paddingBottom");};QxDOM.getComputedBorderLeft=function(el){return QxDOM.getComputedStyleProperty(el,"borderLeftStyle")=="none"?0:QxDOM.getComputedStyleSize(el,"borderLeftWidth");};QxDOM.getComputedBorderTop=function(el){return QxDOM.getComputedStyleProperty(el,"borderTopStyle")=="none"?0:QxDOM.getComputedStyleSize(el,"borderTopWidth");};QxDOM.getComputedBorderRight=function(el){return QxDOM.getComputedStyleProperty(el,"borderRightStyle")=="none"?0:QxDOM.getComputedStyleSize(el,"borderRightWidth");};QxDOM.getComputedBorderBottom=function(el){return QxDOM.getComputedStyleProperty(el,"borderBottomStyle")=="none"?0:QxDOM.getComputedStyleSize(el,"borderBottomWidth");};QxDOM.getComputedOuterWidth=function(el){return QxDOM.getComputedBoxWidth(el)+QxDOM.getComputedMarginLeft(el)+QxDOM.getComputedMarginRight(el);};QxDOM.getComputedOuterHeight=function(el){return QxDOM.getComputedBoxHeight(el)+QxDOM.getComputedMarginTop(el)+QxDOM.getComputedMarginBottom(el);};QxDOM.getComputedBoxWidth=function(el){var h=el.offsetHeight;if(h==0){var o=el.style.height;el.style.height="1px";};var v=el.offsetWidth;if(h==0){el.style.height=o;};return v;};QxDOM.getComputedBoxHeight=function(el){var w=el.offsetWidth;if(w==0){var o=el.style.width;el.style.width="1px";};var v=el.offsetHeight;if(w==0){el.style.width=o;};return v;};if((new QxClient).isGecko()){QxDOM.getComputedAreaWidth=function(el){if(el.clientWidth!=0&&el.clientWidth!=(QxDOM.getComputedBorderLeft(el)+QxDOM.getComputedBorderRight(el))){return el.clientWidth;}else {return QxDOM.getComputedBoxWidth(el)-QxDOM.getComputedInsetLeft(el)-QxDOM.getComputedInsetRight(el);};};QxDOM.getComputedAreaHeight=function(el){if(el.clientHeight!=0&&el.clientHeight!=(QxDOM.getComputedBorderTop(el)+QxDOM.getComputedBorderBottom(el))){return el.clientHeight;}else {return QxDOM.getComputedBoxHeight(el)-QxDOM.getComputedInsetTop(el)-QxDOM.getComputedInsetBottom(el)};};}else {QxDOM.getComputedAreaWidth=function(el){return el.clientWidth!=0?el.clientWidth:(QxDOM.getComputedBoxWidth(el)-QxDOM.getComputedInsetLeft(el)-QxDOM.getComputedInsetRight(el));};QxDOM.getComputedAreaHeight=function(el){return el.clientHeight!=0?el.clientHeight:(QxDOM.getComputedBoxHeight(el)-QxDOM.getComputedInsetTop(el)-QxDOM.getComputedInsetBottom(el));};};QxDOM.getComputedInnerWidth=function(el){return QxDOM.getComputedAreaWidth(el)-QxDOM.getComputedPaddingLeft(el)-QxDOM.getComputedPaddingRight(el);};QxDOM.getComputedInnerHeight=function(el){return QxDOM.getComputedAreaHeight(el)-QxDOM.getComputedPaddingTop(el)-QxDOM.getComputedPaddingBottom(el);};if((new QxClient).isMshtml()){QxDOM.getComputedInsetLeft=function(el){return el.clientLeft;};QxDOM.getComputedInsetTop=function(el){return el.clientTop;};QxDOM.getComputedInsetRight=function(el){if(QxDOM.getComputedStyleProperty(el,"overflowY")=="hidden"||el.clientWidth==0){return QxDOM.getComputedBorderRight(el);};return Math.max(0,el.offsetWidth-el.clientLeft-el.clientWidth);};QxDOM.getComputedInsetBottom=function(el){if(QxDOM.getComputedStyleProperty(el,"overflowX")=="hidden"||el.clientHeight==0){return QxDOM.getComputedBorderBottom(el);};return Math.max(0,el.offsetHeight-el.clientTop-el.clientHeight);};}else {QxDOM.getComputedInsetLeft=function(el){return QxDOM.getComputedBorderLeft(el);};QxDOM.getComputedInsetTop=function(el){return QxDOM.getComputedBorderTop(el);};QxDOM.getComputedInsetRight=function(el){if(el.clientWidth==0){var ov=QxDOM.getComputedStyleProperty(el,"overflow");var sbv=ov=="scroll"||ov=="-moz-scrollbars-vertical"?16:0;return Math.max(0,QxDOM.getComputedBorderRight(el)+sbv);};return Math.max(0,el.offsetWidth-el.clientWidth-QxDOM.getComputedBorderLeft(el));};QxDOM.getComputedInsetBottom=function(el){if(el.clientHeight==0){var ov=QxDOM.getComputedStyleProperty(el,"overflow");var sbv=ov=="scroll"||ov=="-moz-scrollbars-horizontal"?16:0;return Math.max(0,QxDOM.getComputedBorderBottom(el)+sbv);};return Math.max(0,el.offsetHeight-el.clientHeight-QxDOM.getComputedBorderTop(el));};};QxDOM.getComputedScrollBarSizeLeft=function(el){return 0;};QxDOM.getComputedScrollBarSizeTop=function(el){return 0;};QxDOM.getComputedScrollBarSizeRight=function(el){return QxDOM.getComputedInsetRight(el)-QxDOM.getComputedBorderRight(el);};QxDOM.getComputedScrollBarSizeBottom=function(el){return QxDOM.getComputedInsetBottom(el)-QxDOM.getComputedBorderBottom(el);};QxDOM.getComputedScrollBarVisibleX=function(el){return QxDOM.getComputedScrollBarSizeRight(el)>0;};QxDOM.getComputedScrollBarVisibleY=function(el){return QxDOM.getComputedScrollBarSizeBottom(el)>0;};QxDOM.getScrollLeftSum=function(el){var sum=0;var p=el.parentNode;while(p.nodeType==1){sum+=p.scrollLeft;p=p.parentNode;};return sum;};QxDOM.getScrollTopSum=function(el){var sum=0;var p=el.parentNode;while(p.nodeType==1){sum+=p.scrollTop;p=p.parentNode;};return sum;};QxDOM.getComputedPageOuterLeft=function(el){return QxDOM.getComputedPageBoxLeft(el)-QxDOM.getComputedMarginLeft(el);};QxDOM.getComputedPageOuterTop=function(el){return QxDOM.getComputedPageBoxTop(el)-QxDOM.getComputedMarginTop(el);};QxDOM.getComputedPageOuterRight=function(el){return QxDOM.getComputedPageBoxRight(el)+QxDOM.getComputedMarginRight(el);};QxDOM.getComputedPageOuterBottom=function(el){return QxDOM.getComputedPageBoxBottom(el)+QxDOM.getComputedMarginBottom(el);};QxDOM.getComputedClientOuterLeft=function(el){return QxDOM.getComputedClientBoxLeft(el)-QxDOM.getComputedMarginLeft(el);};QxDOM.getComputedClientOuterTop=function(el){return QxDOM.getComputedClientBoxTop(el)-QxDOM.getComputedMarginTop(el);};QxDOM.getComputedClientOuterRight=function(el){return QxDOM.getComputedClientBoxRight(el)+QxDOM.getComputedMarginRight(el);};QxDOM.getComputedClientOuterBottom=function(el){return QxDOM.getComputedClientBoxBottom(el)+QxDOM.getComputedMarginBottom(el);};if((new QxClient).isMshtml()){QxDOM.getComputedClientBoxLeft=function(el){return el.getBoundingClientRect().left;};QxDOM.getComputedClientBoxTop=function(el){return el.getBoundingClientRect().top;};QxDOM.getComputedPageBoxLeft=function(el){return QxDOM.getComputedClientBoxLeft(el)+QxDOM.getScrollLeftSum(el);};QxDOM.getComputedPageBoxTop=function(el){return QxDOM.getComputedClientBoxTop(el)+QxDOM.getScrollTopSum(el);};}else if((new QxClient).isGecko()){QxDOM.getComputedClientBoxLeft=function(el){return QxDOM.getComputedClientAreaLeft(el)-QxDOM.getComputedBorderLeft(el);};QxDOM.getComputedClientBoxTop=function(el){return QxDOM.getComputedClientAreaTop(el)-QxDOM.getComputedBorderTop(el);};QxDOM.getComputedPageBoxLeft=function(el){return QxDOM.getComputedPageAreaLeft(el)-QxDOM.getComputedBorderLeft(el);};QxDOM.getComputedPageBoxTop=function(el){return QxDOM.getComputedPageAreaTop(el)-QxDOM.getComputedBorderTop(el);};}else {QxDOM.getComputedPageBoxLeft=function(el){var sum=el.offsetLeft;while(el.tagName!="BODY"){el=el.offsetParent;sum+=el.offsetLeft;};return sum;};QxDOM.getComputedPageBoxTop=function(el){var sum=el.offsetTop;while(el.tagName!="BODY"){el=el.offsetParent;sum+=el.offsetTop;};return sum;};QxDOM.getComputedClientBoxLeft=function(el){var sum=el.offsetLeft;while(el.tagName!="BODY"){el=el.offsetParent;sum+=el.offsetLeft-el.scrollLeft;};return sum;};QxDOM.getComputedClientBoxTop=function(el){var sum=el.offsetTop;while(el.tagName!="BODY"){el=el.offsetParent;sum+=el.offsetTop-el.scrollTop;};return sum;};};if((new QxClient).isMshtml()){QxDOM.getComputedClientBoxRight=function(el){return el.getBoundingClientRect().right;};QxDOM.getComputedClientBoxBottom=function(el){return el.getBoundingClientRect().bottom;};QxDOM.getComputedPageBoxRight=function(el){return QxDOM.getComputedClientBoxRight(el)+QxDOM.getScrollLeftSum(el);};QxDOM.getComputedPageBoxBottom=function(el){return QxDOM.getComputedClientBoxBottom(el)+QxDOM.getScrollTopSum(el);};}else {QxDOM.getComputedClientBoxRight=function(el){return QxDOM.getComputedClientBoxLeft(el)+QxDOM.getComputedBoxWidth(el);};QxDOM.getComputedClientBoxBottom=function(el){return QxDOM.getComputedClientBoxTop(el)+QxDOM.getComputedBoxHeight(el);};QxDOM.getComputedPageBoxRight=function(el){return QxDOM.getComputedPageBoxLeft(el)+QxDOM.getComputedBoxWidth(el);};QxDOM.getComputedPageBoxBottom=function(el){return QxDOM.getComputedPageBoxTop(el)+QxDOM.getComputedBoxHeight(el);};};if((new QxClient).isGecko()){QxDOM.getComputedPageAreaLeft=function(el){return el.ownerDocument.getBoxObjectFor(el).x;};QxDOM.getComputedPageAreaTop=function(el){return el.ownerDocument.getBoxObjectFor(el).y;};QxDOM.getComputedClientAreaLeft=function(el){return QxDOM.getComputedPageAreaLeft(el)-QxDOM.getScrollLeftSum(el);};QxDOM.getComputedClientAreaTop=function(el){return QxDOM.getComputedPageAreaTop(el)-QxDOM.getScrollTopSum(el);};}else {QxDOM.getComputedClientAreaLeft=function(el){return QxDOM.getComputedClientBoxLeft(el)+QxDOM.getComputedBorderLeft(el);};QxDOM.getComputedClientAreaTop=function(el){return QxDOM.getComputedClientBoxTop(el)+QxDOM.getComputedBorderTop(el);};QxDOM.getComputedPageAreaLeft=function(el){return QxDOM.getComputedPageBoxLeft(el)+QxDOM.getComputedBorderLeft(el);};QxDOM.getComputedPageAreaTop=function(el){return QxDOM.getComputedPageBoxTop(el)+QxDOM.getComputedBorderTop(el);};};QxDOM.getComputedClientAreaRight=function(el){return QxDOM.getComputedClientAreaLeft(el)+QxDOM.getComputedAreaWidth(el);};QxDOM.getComputedClientAreaBottom=function(el){return QxDOM.getComputedClientAreaTop(el)+QxDOM.getComputedAreaHeight(el);};QxDOM.getComputedPageAreaRight=function(el){return QxDOM.getComputedPageAreaLeft(el)+QxDOM.getComputedAreaWidth(el);};QxDOM.getComputedPageAreaBottom=function(el){return QxDOM.getComputedPageAreaTop(el)+QxDOM.getComputedAreaHeight(el);};QxDOM.getComputedClientInnerLeft=function(el){return QxDOM.getComputedClientAreaLeft(el)+QxDOM.getComputedPaddingLeft(el);};QxDOM.getComputedClientInnerTop=function(el){return QxDOM.getComputedClientAreaTop(el)+QxDOM.getComputedPaddingTop(el);};QxDOM.getComputedClientInnerRight=function(el){return QxDOM.getComputedClientInnerLeft(el)+QxDOM.getComputedInnerWidth(el);};QxDOM.getComputedClientInnerBottom=function(el){return QxDOM.getComputedClientInnerTop(el)+QxDOM.getComputedInnerHeight(el);};QxDOM.getComputedPageInnerLeft=function(el){return QxDOM.getComputedPageAreaLeft(el)+QxDOM.getComputedPaddingLeft(el);};QxDOM.getComputedPageInnerTop=function(el){return QxDOM.getComputedPageAreaTop(el)+QxDOM.getComputedPaddingTop(el);};QxDOM.getComputedPageInnerRight=function(el){return QxDOM.getComputedPageInnerLeft(el)+QxDOM.getComputedInnerWidth(el);};QxDOM.getComputedPageInnerBottom=function(el){return QxDOM.getComputedPageInnerTop(el)+QxDOM.getComputedInnerHeight(el);};if((new QxClient).isGecko()){QxDOM.getComputedScreenBoxLeft=function(el){var sum=0;var p=el.parentNode;while(p.nodeType==1){sum+=p.scrollLeft;p=p.parentNode;};return el.ownerDocument.getBoxObjectFor(el).screenX-sum;};QxDOM.getComputedScreenBoxTop=function(el){var sum=0;var p=el.parentNode;while(p.nodeType==1){sum+=p.scrollTop;p=p.parentNode;};return el.ownerDocument.getBoxObjectFor(el).screenY-sum;};}else {QxDOM.getComputedScreenBoxLeft=function(el){return QxDOM.getComputedScreenDocumentLeft(el)+QxDOM.getComputedPageBoxLeft(el);};QxDOM.getComputedScreenBoxTop=function(el){return QxDOM.getComputedScreenDocumentTop(el)+QxDOM.getComputedPageBoxTop(el);};};QxDOM.getComputedScreenBoxRight=function(el){return QxDOM.getComputedScreenBoxLeft(el)+QxDOM.getComputedBoxWidth(el);};QxDOM.getComputedScreenBoxBottom=function(el){return QxDOM.getComputedScreenBoxTop(el)+QxDOM.getComputedBoxHeight(el);};QxDOM.getComputedScreenOuterLeft=function(el){return QxDOM.getComputedScreenBoxLeft(el)-QxDOM.getComputedMarginLeft(el);};QxDOM.getComputedScreenOuterTop=function(el){return QxDOM.getComputedScreenBoxTop(el)-QxDOM.getComputedMarginTop(el);};QxDOM.getComputedScreenOuterRight=function(el){return QxDOM.getComputedScreenBoxRight(el)+QxDOM.getComputedMarginRight(el);};QxDOM.getComputedScreenOuterBottom=function(el){return QxDOM.getComputedScreenBoxBottom(el)+QxDOM.getComputedMarginBottom(el);};QxDOM.getComputedScreenAreaLeft=function(el){return QxDOM.getComputedScreenBoxLeft(el)+QxDOM.getComputedInsetLeft(el);};QxDOM.getComputedScreenAreaTop=function(el){return QxDOM.getComputedScreenBoxTop(el)+QxDOM.getComputedInsetTop(el);};QxDOM.getComputedScreenAreaRight=function(el){return QxDOM.getComputedScreenBoxRight(el)-QxDOM.getComputedInsetRight(el);};QxDOM.getComputedScreenAreaBottom=function(el){return QxDOM.getComputedScreenBoxBottom(el)-QxDOM.getComputedInsetBottom(el);};QxDOM.getComputedScreenInnerLeft=function(el){return QxDOM.getComputedScreenAreaLeft(el)+QxDOM.getComputedPaddingLeft(el);};QxDOM.getComputedScreenInnerTop=function(el){return QxDOM.getComputedScreenAreaTop(el)+QxDOM.getComputedPaddingTop(el);};QxDOM.getComputedScreenInnerRight=function(el){return QxDOM.getComputedScreenAreaRight(el)-QxDOM.getComputedPaddingRight(el);};QxDOM.getComputedScreenInnerBottom=function(el){return QxDOM.getComputedScreenAreaBottom(el)-QxDOM.getComputedPaddingBottom(el);};if((new QxClient).isGecko()){QxDOM.getComputedScreenDocumentLeft=function(el){return QxDOM.getComputedScreenOuterLeft(el.ownerDocument.body);};QxDOM.getComputedScreenDocumentTop=function(el){return QxDOM.getComputedScreenOuterTop(el.ownerDocument.body);};QxDOM.getComputedScreenDocumentRight=function(el){return QxDOM.getComputedScreenOuterRight(el.ownerDocument.body);};QxDOM.getComputedScreenDocumentBottom=function(el){return QxDOM.getComputedScreenOuterBottom(el.ownerDocument.body);};}else {QxDOM.getComputedScreenDocumentLeft=function(el){return el.document.parentWindow.screenLeft;};QxDOM.getComputedScreenDocumentTop=function(el){return el.document.parentWindow.screenTop;};QxDOM.getComputedScreenDocumentRight=function(el){};QxDOM.getComputedScreenDocumentBottom=function(el){};};QxDOM.getComputedPreferredSize=function(el){try{var elst=el.style;var _pa=el.parentNode;var _ne=el.nextChild;var _do=el.ownerDocument.body;var _el_w=isValidString(elst.width)?elst.width:"";var _el_h=isValidString(elst.height)?elst.height:"";var _el_p=isValidString(elst.position)?elst.position:"";var _el_d=isValidString(elst.display)?elst.display:"";var _el_v=isValidString(elst.visibility)?elst.visibility:"";_pa.removeChild(el);elst.width=elst.height="auto";elst.position="absolute";elst.display="inline";elst.visibility="hidden";_do.appendChild(el);var r={width:el.offsetWidth,height:el.offsetHeight};_do.removeChild(el);elst.width=_el_w;elst.height=_el_h;elst.position=_el_p;elst.display=_el_p;elst.visibility=_el_v;_ne?_pa.insertBefore(el,_ne):_pa.appendChild(el);return r;}catch(ex){throw new Error("Failed to detect preferred size for "+el+":"+ex);};};QxDOM.getComputedPreferredWidth=function(el){return QxDOM.getComputedPreferredSize(el).width;};QxDOM.getComputedPreferredHeight=function(el){return QxDOM.getComputedPreferredSize(el).height;};QxDOM.addClass=function(el,newClass){var n=el.className.add(newClass," ");if(n!=el.className){el.className=n;};};QxDOM.removeClass=function(el,oldClass){var n=el.className.remove(oldClass," ");if(n!=el.className){el.className=n;};};if((new QxClient).isMshtml()){QxDOM.setWidth=function(el,intValue){el.style.pixelWidth=intValue;};QxDOM.setHeight=function(el,intValue){el.style.pixelHeight=intValue;};}else {QxDOM.setWidth=function(el,intValue){el.style.width=intValue+"px";};QxDOM.setHeight=function(el,intValue){el.style.height=intValue+"px";};};QxDOM.getElementFromPoint=function(x,y){return QxDOM.getElementFromPointHandler(document.body,x,y);};QxDOM.getElementFromPointHandler=function(node,x,y,recursive){var ch=node.childNodes;var chl=ch.length-1;if(chl<0){return null;};var chc,subres,ret;do
+{chc=ch[chl];ret=QxDOM.getElementFromPointChecker(chc,x,y);if(ret){if(typeof recursive=="boolean"&&recursive==false&&2==1){return chc;}else {subres=QxDOM.getElementFromPointHandler(chc,x-ret[0]-QxDOM.getComputedBorderLeft(chc),y-ret[2]-QxDOM.getComputedBorderTop(chc));return subres?subres:chc;};};}while(chl--);return null;};QxDOM.getElementFromPointChecker=function(chc,x,y){var xstart,ystart,xstop,ystop;if(chc.nodeType!=1){return false;};xstart=QxDOM.getOffsetLeft(chc);if(x>xstart){ystart=QxDOM.getOffsetTop(chc);if(y>ystart){xstop=xstart+chc.offsetWidth;if(xstop==xstart&&chc.className=="QxContainer"){xstop=xstart+chc._QxWidget.getAnyWidth();};if(x<xstop){ystop=ystart+chc.offsetHeight;if(y<ystop){return[xstart,xstop,ystart,ystop];};};};};return false;};QxDOM.getElementAbsolutePointChecker=function(chc,x,y){var xstart,ystart,xstop,ystop;if(!chc||chc.nodeType!=1){return false;};xstart=QxDOM.getComputedPageBoxLeft(chc);if(x>xstart){ystart=QxDOM.getComputedPageBoxTop(chc);if(y>ystart){xstop=xstart+chc.offsetWidth;if(xstop==xstart&&chc.className=="QxContainer"){xstop=xstart+chc._QxWidget.getAnyWidth();};if(x<xstop){ystop=ystart+chc.offsetHeight;if(y<ystop){return[xstart,xstop,ystart,ystop];};};};};return false;};if((new QxClient).isGecko()){QxDOM.getOffsetLeft=function(el){var val=el.offsetLeft;var pa=el.parentNode;var pose=QxDOM.getComputedStyleProperty(el,"position");var posp=QxDOM.getComputedStyleProperty(pa,"position");if(pose!="absolute"&&pose!="fixed"){val-=QxDOM.getComputedBorderLeft(pa);};if(posp!="absolute"&&posp!="fixed"){while(pa){pa=pa.parentNode;if(!pa||isInvalidString(pa.tagName)){break;};var posi=QxDOM.getComputedStyleProperty(pa,"position");if(posi=="absolute"||posi=="fixed"){val-=QxDOM.getComputedBorderLeft(pa)+QxDOM.getComputedPaddingLeft(pa);break;};};};return val;};QxDOM.getOffsetTop=function(el){var val=el.offsetTop;var pa=el.parentNode;var pose=QxDOM.getComputedStyleProperty(el,"position");var posp=QxDOM.getComputedStyleProperty(pa,"position");if(pose!="absolute"&&pose!="fixed"){val-=QxDOM.getComputedBorderTop(pa);};if(posp!="absolute"&&posp!="fixed"){while(pa){pa=pa.parentNode;if(!pa||isInvalidString(pa.tagName)){break;};var posi=QxDOM.getComputedStyleProperty(pa,"position");if(posi=="absolute"||posi=="fixed"){val-=QxDOM.getComputedBorderTop(pa)+QxDOM.getComputedPaddingTop(pa);break;};};};return val;};}else {QxDOM.getOffsetLeft=function(el){return el.offsetLeft;};QxDOM.getOffsetTop=function(el){return el.offsetTop;};};if((new QxClient).isMshtml()){QxDOM.addEventListener=function(e,t,f){e.attachEvent("on"+t,f);};QxDOM.removeEventListener=function(e,t,f){e.detachEvent("on"+t,f);};}else {QxDOM.addEventListener=function(e,t,f){e.addEventListener(t,f,false);};QxDOM.removeEventListener=function(e,t,f){e.removeEventListener(t,f,false);};};if((new QxClient).isMshtml()){QxDOM.getWindowInnerWidth=function(w){if(!w){w=window;};if(w.document.documentElement&&w.document.documentElement.clientWidth){return w.document.documentElement.clientWidth;}else if(w.document.body){return w.document.body.clientWidth;};return 0;};QxDOM.getWindowInnerHeight=function(w){if(!w){w=window;};if(w.document.documentElement&&w.document.documentElement.clientHeight){return w.document.documentElement.clientHeight;}else if(w.document.body){return w.document.body.clientHeight;};return 0;};QxDOM.getClientScrollLeft=function(w){if(!w){w=window;};if(w.document.documentElement&&w.document.documentElement.scrollLeft){return w.document.documentElement.scrollLeft;}else if(w.document.body){return w.document.body.scrollTop;};return 0;};QxDOM.getClientScrollTop=function(w){if(!w){w=window;};if(w.document.documentElement&&w.document.documentElement.scrollTop){return w.document.documentElement.scrollTop;}else if(w.document.body){return w.document.body.scrollTop;};return 0;};}else {QxDOM.getWindowInnerWidth=function(w){return(w||window).innerWidth;};QxDOM.getWindowInnerHeight=function(w){return(w||window).innerHeight;};QxDOM.getClientScrollLeft=function(w){return(w||window).document.body.scrollLeft;};QxDOM.getClientScrollTop=function(w){return(w||window).document.body.scrollTop;};};QxDOM.scrollIntoViewX=function(vChild,vParent){if(!vParent){vParent=vChild.parentNode;};var l=vChild.offsetLeft;var w=vChild.offsetWidth;var sl=vParent.scrollLeft;var cw=vParent.clientWidth;if(w>cw||l<sl){vParent.scrollLeft=l;}else if(l+w>sl+cw){vParent.scrollLeft=l+w-cw;};};QxDOM.scrollIntoViewY=function(vChild,vParent){if(!vParent){vParent=vChild.parentNode;};var t=vChild.offsetTop;var h=vChild.offsetHeight;var st=vParent.scrollTop;var ch=vParent.clientHeight;if(h>ch||t<st){vParent.scrollTop=t;}else if(t+h>st+ch){vParent.scrollTop=t+h-ch;};};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxExtend.js b/swat/style/qooxdoo/widgets/core/QxExtend.js
new file mode 100644 (file)
index 0000000..f633368
--- /dev/null
@@ -0,0 +1,4 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function isHashEmpty(h){for(var s in h){return false;};return true;};function copyCreateHash(h){if(h){var n={};for(var k in h){n[k]=h[k];};return n;}else {return{};};};function copyCreateArray(a){return a&&a.length>0?a.copy():[];};function set(){var r={};for(var i=0,a=arguments,l=a.length;i<l;i++){r[a[i]]=true;};return r;};function isValid(v){switch(typeof v){case "undefined":return false;case "object":return v!=null;case "string":return v!="";case "number":return !isNaN(v);case "function":case "boolean":return true;};return false;};function isInvalid(v){switch(typeof v){case "undefined":return true;case "object":return v==null;case "string":return v=="";case "number":return isNaN(v);case "function":case "boolean":return false;};return true;};function isValidNumber(v){return typeof v=="number"&&!isNaN(v);};function isInvalidNumber(v){return typeof v!="number"||isNaN(v);};function isValidString(v){return typeof v=="string"&&v!="";};function isInvalidString(v){return typeof v!="string"||v=="";};function isValidArray(v){return typeof v=="object"&&v!=null&&typeof v.push=="function";};function isInvalidArray(v){return typeof v!="object"||v==null||typeof v.push!="function";};function isValidObject(v){return typeof v=="object"&&v!=null&&typeof v.push!="function";};function isInvalidObject(v){return typeof v!="object"||v==null||typeof v.push=="function";};function isValidFunction(v){return typeof v=="function";};function isInvalidFunction(v){return typeof v=="function";};Number.prototype.limit=function(vmin,vmax){if(vmax!=null&&typeof vmax=="number"&&this>vmax){return vmax;}else if(vmin!=null&&typeof vmin=="number"&&this<vmin){return vmin;}else {return Number(this);};};Number.prototype.inrange=function(vmin,vmax){return this>vmin&&this<vmax;};Array.prototype.indexOf=function(o){for(var i=0;i<this.length;i++){if(this[i]==o){return i;};};return-1;};Array.prototype.lastIndexOf=function(o){for(var i=this.length-1;i>=0;i--){if(this[i]==o){return i;};};return-1;};Array.prototype.contains=function(o){return this.indexOf(o)!=-1;};Array.prototype.remove=function(o){var i=this.indexOf(o);if(i!=-1){this.splice(i,1);};};Array.prototype.insertAt=function(o,i){this.splice(i,0,o);};Array.prototype.insertBefore=function(o,o2){var i=this.indexOf(o2);if(i==-1){this.push(o);}else{this.splice(i,0,o);};};Array.prototype.insertAfter=function(o,o2){var i=this.indexOf(o2);if(i==-1||i==(this.length-1)){this.push(o);}else{this.splice(i+1,0,o);};};Array.prototype.removeAt=function(i){this.splice(i,1);};Array.prototype.remove=function(o){var i=this.indexOf(o);if(i!=-1){this.splice(i,1);};};Array.prototype.copy=function(){return this.concat();};Array.prototype.getLast=function(){return this[this.length-1];};Array.prototype.getFirst=function(){return this[0];};String.prototype.contains=function(s){return this.indexOf(s)!=-1;};String.prototype.toFirstUp=function(){return this.charAt(0).toUpperCase()+this.substr(1);};String.prototype.toCamelCase=function(){var vArr=this.split('-');if(vArr.length==1){return vArr[0];};var ret=vArr[0];var s;for(var i=1,len=vArr.length;i<len;i++,s=vArr[i]){ret+=s.charAt(0).toUpperCase()+s.substring(1);};return ret;};String.prototype.trimLeft = new Function("return this.replace(/^\\s+/,'')");String.prototype.trimRight = new Function("return this.replace(/\\s+$/,'')");String.prototype.trim = new Function("return this.replace(/^\\s+|\\s+$/g,'')");String.prototype.add=function(v,sep){if(this==v){return this;}else if(this==""){return v;}else {if(isInvalid(sep)){sep=",";};var a=this.split(sep);if(a.indexOf(v)==-1){a.push(v);return a.join(sep);}else {return this;};};};String.prototype.remove=function(v,sep){if(this==v||this==""){return "";}else {if(isInvalid(sep)){sep=",";};var a=this.split(sep);var p=a.indexOf(v);if(p==-1){return this;};do{a.splice(p,1);}while((p=a.indexOf(v))!=-1);return a.join(sep);};};if(!Function.prototype.apply){Function.prototype.apply=function(oScope,args){var sarg=[];var rtrn,call;if(!oScope){oScope=window;};if(!args){args=[];};for(var i=0;i<args.length;i++){sarg[i]="args["+i+"]";};call="oScope._applyTemp_("+sarg.join(",")+");";oScope._applyTemp_=this;rtrn=eval(call);delete oScope._applyTemp_;return rtrn;};};Function.prototype.extend=function(sFunction,tClassName){if(typeof sFunction!="function"){throw new Error("Extend:Function/Constructor to extend from is not a function:"+sFunction);};if(typeof tClassName!="string"){throw new Error("Extend:Missing or malformed className:"+tClassName);};proto=this.prototype=new sFunction;proto.superclass=sFunction;proto.classname=tClassName;proto.constructor=this;return proto;};if(navigator.product=="Gecko"){Document.prototype.elementFromPoint=function(x,y){this.addEventListener("mousemove",this.elementFromPointHandler,false);var event=this.createEvent("MouseEvents");var box=this.getBoxObjectFor(this.documentElement);event.initMouseEvent("mousemove",true,false,this.defaultView,0,x+box.screenX,y+box.screenY,x,y,false,false,false,false,0,null);this.dispatchEvent(event);this.removeEventListener("mousemove",this.elementFromPointHandler,false);return this.elementFromPointTarget;};Document.prototype.elementFromPointHandler=function(event){this.elementFromPointTarget=event.explicitOriginalTarget;if(this.elementFromPointTarget.nodeType==Node.TEXT_NODE){this.elementFromPointTarget=this.elementFromPointTarget.parentNode;};if(this.elementFromPointTarget.nodeName.toUpperCase()=="HTML"&&this.documentElement.nodeName.toUpperCase()=="HTML"){this.elementFromPointTarget=this.getElementsByTagName("BODY").item(0);};event.preventDefault();event.stopPropagation();};Document.prototype.elementFromPointTarget=null;};Error.prototype.toString=function(){return this.message;};Function.prototype.removeProperty=function(p){if(typeof this.prototype._i1!="string"){throw new Error("Has no properties!");};if(typeof p!="object"){throw new Error("Param should be an object!");};if(isInvalid(p.name)){throw new Error("Malformed input parameters:name needed!");};p.method=p.name.toFirstUp();p.implMethod=p.impl?p.impl.toFirstUp():p.method;var valueKey="_value"+p.method;this.prototype._i1=this.prototype._i1.remove(p.name);this.prototype[valueKey]=null;this.prototype["get"+p.method]=function(){return null;};this.prototype["force"+p.method]=this.prototype["set"+p.method]=function(){throw new Error("Property "+p.name+" is not supported by class+"+this.classname);};if(this.prototype["_modify"+p.method]){this.prototype["_modify"+p.method]=null;};if(this.prototype["_eval"+p.method]){this.prototype["_eval"+p.method]=null;};};Function.prototype.addProperty=function(p){if(typeof p!="object"){throw new Error("Param should be an object!");};if(isInvalid(p.name)){throw new Error("Malformed input parameters:name needed!");};p.method=p.name.toFirstUp();p.implMethod=p.impl?p.impl.toFirstUp():p.method;if(isInvalid(p.defaultValue)){p.defaultValue=null;};var valueKey="_value"+p.method;var nullKey="_null"+p.method;var evalKey="_eval"+p.method;var changeKey="change"+p.method;var modifyKey="_modify"+p.implMethod;var checkKey="_check"+p.implMethod;this.prototype[valueKey]=p.defaultValue;if(typeof this.prototype._i1!="string"){this.prototype._i1=p.name;}else{this.prototype._i1+=","+p.name;};if(typeof p.groups=="object"){var g=p.groups;var l=g.length;var tempGroups;var tempGroupName;var tempGroupNameUp;var tempMemberRef;for(var i=0;i<l;i++){tempGroupName=g[i];tempMemberRef="_propertygroup_"+tempGroupName+"_members";if(typeof this.prototype._h9!="string"){this.prototype._h9=tempGroupName;}else {tempGroups=this.prototype._h9.split(",");if(tempGroups.contains(tempGroupName)){this.prototype[tempMemberRef]+=","+p.name;}else {tempGroups.push(tempGroupName);this.prototype._h9=tempGroups.join(",");};};if(typeof this.prototype[tempMemberRef]=="undefined"){this.prototype[tempMemberRef]=p.name;tempGroupNameUp=tempGroupName.toFirstUp();this.prototype["get"+tempGroupNameUp]=new Function("var memberList=this."+tempMemberRef+".split(',');"+"var memberLength=memberList.length;"+"var memberValues=[];"+"try{"+"for(var i=0;i<memberLength;i++){"+"memberValues.push(this['get'+memberList[i].toFirstUp()]());"+"};"+"}catch(ex){"+"throw new Error('Failed to get values from property group "+tempGroupName+":'+ex);"+"};"+"return memberValues;"
+);this.prototype["set"+tempGroupNameUp]=new Function("var memberList=this."+tempMemberRef+".split(',');"+"var memberLength=memberList.length;"+"try{"+"for(var i=0;i<memberLength;i++){"+"this['set'+memberList[i].toFirstUp()](arguments[i]);"+"};"+"}catch(ex){"+"throw new Error('Failed to setup property group "+tempGroupName+":'+ex);"+"};"+"return true"
+);};};};this.prototype["get"+p.method]=function(){if(typeof this[valueKey]=="undefined"||(this[valueKey]==null&&this[nullKey]!=true)){if(typeof this[evalKey]=="function"){var v1=this[evalKey]();if(isValid(v1)){return this[valueKey]=v1;};};return null;}else {return this[valueKey];};};this.prototype["getDefault"+p.method]=function(_b4){return p.defaultValue;};this.prototype["setDefault"+p.method]=function(newValue,_b4){return p.defaultValue=newValue;};this.prototype["force"+p.method]=function(newValue){this[valueKey]=newValue;this[nullKey]=newValue==null;return true;};this.prototype["reset"+p.method]=function(_b4){return this["set"+p.method](p.defaultValue,_b4);};this.prototype["set"+p.method]=function(newValue,_b4){var thisModId=this.toHash()+"_"+p.name;if(isInvalidArray(_b4)){var _b4=[thisModId];}else if(_b4.contains(thisModId)){return newValue;}else {_b4.push(thisModId);};var fixedValue=newValue==null?null:isValid(p.type)?p.type(newValue):newValue;var oldValue=this[valueKey];if(typeof this[checkKey]=="function"){try{fixedValue=this[checkKey](fixedValue,oldValue,p.name,_b4);}catch(ex){this.debug("Failed to check property "+p.name+":"+ex);return false;};};if(fixedValue!=oldValue){this[valueKey]=fixedValue;this[nullKey]=fixedValue==null;if(typeof this[modifyKey]=="function"){try{var r=this[modifyKey](fixedValue,oldValue,p.name,_b4);if(!r){throw new Error("Failed without exception:"+p.name+"["+p.implMethod+"|"+r+"]");};}catch(ex){this.debug("Failed to modify property "+p.name+":"+ex.message);return false;};};if(this instanceof QxTarget){if(this.hasEventListeners(changeKey)){var ce=new QxDataEvent(changeKey,fixedValue,oldValue,false);ce.setTarget(this);try{this.dispatchEvent(ce,true);}catch(ex){throw new Error("Failed to dispatch changed event:"+ex);};ce=null;};};};return fixedValue;};if(typeof p.getAlias=="string"){this.prototype[p.getAlias]=this.prototype["get"+p.method];};if(typeof p.setAlias=="string"){this.prototype[p.setAlias]=this.prototype["set"+p.method];};};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxNativeWindow.js b/swat/style/qooxdoo/widgets/core/QxNativeWindow.js
new file mode 100644 (file)
index 0000000..3cf9270
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxNativeWindow(vCaption,vSource){QxTarget.call(this);this._timer=new QxTimer(100);this._timer.addEventListener("interval",this._ontimer,this);var o=this;this.__onload=function(e){return o._onload(e);};if(isValidString(vSource)){this.setSource(vSource);};if(isValidString(vCaption)){this.setCaption(vCaption);};};QxNativeWindow.extend(QxTarget,"QxNativeWindow");QxNativeWindow.addProperty({name:"width",defaultValue:400,groups:["dimension"]});QxNativeWindow.addProperty({name:"height",defaultValue:250,groups:["dimension"]});QxNativeWindow.addProperty({name:"left",type:Number,defaultValue:100,groups:["location"]});QxNativeWindow.addProperty({name:"top",type:Number,defaultValue:200,groups:["location"]});QxNativeWindow.addProperty({name:"modal",type:Boolean,defaultValue:false});QxNativeWindow.addProperty({name:"caption",type:String});QxNativeWindow.addProperty({name:"source",type:String});QxNativeWindow.addProperty({name:"status",type:String,defaultValue:"Ready"});QxNativeWindow.addProperty({name:"showStatusbar",type:Boolean,defaultValue:false});QxNativeWindow.addProperty({name:"showMenubar",type:Boolean,defaultValue:false});QxNativeWindow.addProperty({name:"showLocation",type:Boolean,defaultValue:false});QxNativeWindow.addProperty({name:"showToolbar",type:Boolean,defaultValue:false});QxNativeWindow.addProperty({name:"showCaption",type:Boolean,defaultValue:true});QxNativeWindow.addProperty({name:"resizeable",type:Boolean,defaultValue:true});QxNativeWindow.addProperty({name:"moveable",type:Boolean,defaultValue:true});QxNativeWindow.addProperty({name:"allowScrollbars",type:Boolean,defaultValue:false});proto.getPane=function(){return this._pane;};proto.addToWindow=proto.add;proto.addToPane=function(){this._pane.add.apply(this._pane,arguments);};proto.add=proto.addToPane;proto._modifyLeft=function(_b1,_b2,_b3,_b4){return this._d3();};proto._modifyTop=function(_b1,_b2,_b3,_b4){return this._d3();};proto._d3=function(){if(this._window&&!this._window.closed){this._window.moveTo(this.getLeft(),this.getTop());};return true;};proto._modifyCaption=function(_b1,_b2,_b3,_b4){return this._applyCaption();};proto._modifyShowCaption=function(_b1,_b2,_b3,_b4){return this._applyCaption();};proto._applyCaption=function(){if(this._window&&this._instance){var v="";if(this.getShowCaption()){var vc=this.getCaption();if(isValidString(vc)){v=vc;};};this._instance.getClientDocument().getDocumentElement().title=v;};return true;};proto._modifySource=function(_b1,_b2,_b3,_b4){if(this._window&&this._window.closed==false){this._window.location.replace(isValidString(_b1) ? _b1 : ("javascript:/" + "/"));};return true;};proto._chromeCaptionSize=24;proto._isOpened=false;proto._isLoaded=false;proto.isLoaded=function(){return this._isLoaded;};proto.close=function(){if(this._window){this._window.close();};};proto.open=function(){var conf="dependent=yes,";if(isValidNumber(this.getWidth())){conf+="width="+this.getWidth()+",";};if(isValidNumber(this.getHeight())){if((new QxClient).isMshtml()){if(this.getShowMenubar()){conf+="height="+(this.getHeight()+(this.getAllowScrollbars()?-20:-8))+",";}else {conf+="height="+this.getHeight()+",";};}else {conf+="height="+this.getHeight()+",";};};if(isValidNumber(this.getLeft())){conf+="left="+this.getLeft()+",";};if(isValidNumber(this.getTop())){conf+="top="+this.getTop()+",";};conf+="resizable="+(this.getResizeable()?"yes":"no")+",";conf+="status="+(this.getShowStatusbar()?"yes":"no")+",";conf+="location="+(this.getShowLocation()?"yes":"no")+",";conf+="menubar="+(this.getShowMenubar()?"yes":"no")+",";conf+="toolbar="+(this.getShowToolbar()?"yes":"no")+",";conf+="scrollbars="+(this.getAllowScrollbars()?"yes":"no")+",";conf+="modal="+(this.getModal()?"yes":"no")+",";this._isOpened=false;this._isLoaded=false;this._readyState=0;if(this.getModal()){window.application.getClientWindow().getClientDocument().block(this);};this._window=window.open("about:blank","w"+this.toHash(),conf);if(!this._window){this.debug("Window could not be opened. It seems there is a popup blocker active!");if(this.getModal()){window.application.getClientWindow().getClientDocument().release(this);};throw new Error("popupblocker");};this._timer.restart();};proto.centerToScreen=function(){return this._centerHelper((screen.width - this.getWidth()) / 2, (screen.height - this.getHeight() - this._chromeCaptionSize) / 2);};proto.centerToScreenArea=function(){return this._centerHelper((screen.availWidth - this.getWidth()) / 2, (screen.availHeight - this.getHeight() - this._chromeCaptionSize) / 2);};proto.centerToOpener=function(){return this._centerHelper(((QxDOM.getWindowInnerWidth(window) - this.getWidth()) / 2) + QxDOM.getComputedScreenBoxLeft(window.document.body), ((QxDOM.getWindowInnerHeight(window) - this.getHeight() - this._chromeCaptionSize) / 2) + QxDOM.getComputedScreenBoxTop(window.document.body));};proto._centerHelper=function(l,t){this.forceLeft(0);this.forceTop(0);this.setLeft(l);this.setTop(t);if(this._window&&!this._window.closed){this.focus();};};proto.focus=function(){if(this._window){try{this._window.focus();}catch(ex){};};};proto.blur=function(){if(this._window){this._window.blur();};};proto._ontimer=function(e){if(isValidNumber(this._readyState)&&this._isOpened&&(!this._window||(this._window&&this._window.closed!=false))){if(this.getModal()){window.application.getClientWindow().getClientDocument().release(this);};this._timer.stop();if(this._instance){this._instance.dispose();this._instance=null;};this._isOpened=false;this._isLoaded=false;this._readyState=null;return;};if(!this._window||this._timerRun){return;};if(this._window){this._isOpened=true;};this._timerRun=true;switch(this._readyState){case 0:this._isLoaded=false;var d=this._window.document;if(d){try{this._window._QxNativeWindow=this;}catch(ex){};if(isValidString(this.getSource())){try{QxDOM.addEventListener(this._window,"load",this.__onload);}catch(ex){};this._window.location.replace(this.getSource());this._timer.setInterval(500);this._readyState=5;}else {this._readyState=1;};if(!this.getResizeable()&&!(new QxClient).isMshtml()){var w=this.getWidth();var h=this.getHeight();var win=this._window;this._window.addEventListener("resize",function(e){win.resizeTo(w,h);},false);};};break;case 1:var ls=document.getElementsByTagName("head")[0].getElementsByTagName("link");for(var i=0,l=ls.length;i<l;i++){if(ls[i].getAttribute("href").indexOf("layouts/")!=-1){var s=ls[i].getAttribute("href");break;};};var d=this._window.document;d.open("text/html",true);d.write('<?xml version="1.0" encoding="iso-8859-1"?>');d.write('<!DOCTYPE html PUBLIC "-/' + '/W3C/' + '/DTD XHTML 1.1/' + '/EN" "http:/' + '/www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">');d.write('<html xmlns="http:/' + '/www.w3.org/1999/xhtml" xml:lang="en">');d.write('<head>');d.write('<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />');d.write('<meta http-equiv="MsThemeCompatible" content="yes"/>');d.write('<meta http-equiv="ImageToolBar" content="no"/>');d.write('<meta http-equiv="Pragma" content="no-cache"/>');d.write('<meta http-equiv="Expires" content="-1"/>');d.write('<meta http-equiv="Cache-Control" content="no-cache"/>');d.write('<meta name="MSSmartTagsPreventParsing" content="yes"/>');if(this.getShowCaption()){d.write('<title>'+this.getCaption()+'</title>');};if(isValidString(s)){d.write('<link type="text/css" rel="StyleSheet" href="' + s + '"/>');};d.write('</head><body></body></html>');d.close();this._readyState++;break;case 2:var d=this._window.document;if(d&&d.body){this._instance=new QxClientWindow(this._window);this._pane=this._instance.getClientDocument();this._readyState++;};break;case 3:try{if(this.hasEventListeners("ready")){this.dispatchEvent(new QxEvent("ready"));};}catch(ex){this.debug("Error in ready implementation:"+ex);this._timer.stop();};this._readyState++;break;case 4:this.focus();this._readyState++;this._onload();this._timer.setInterval(500);this._timer.restart();break;case 5:try{if(this._window.document.readyState=="complete"){this._onload();};}catch(ex){};if(!this.getMoveable()){try{this._window.moveTo(this.getLeft(),this.getTop());}catch(ex){};};if(!this.getResizeable()&&(this.getWidth()=="auto"||this.getHeight()=="auto")){var w,h;if(this.getWidth()=="auto"){w=this._instance.getClientDocument().getPreferredWidth();};if(this.getHeight()=="auto"){h=this._instance.getClientDocument().getPreferredHeight();};if(isValidNumber(w)||isValidNumber(h)){if((new QxClient).isMshtml()){try{this._window.resizeTo(isValidNumber(w)?w:this.getWidth(),isValidNumber(h)?h+this._chromeCaptionSize:this.getHeight());}catch(ex){};}else {if(isValidNumber(w)){this._window.innerWidth=w;};if(isValidNumber(h)){if(this._window.innerHeight!=150&&h!=150){this._window.innerHeight=h;};};};};};break;};delete this._timerRun;};proto._onload=function(){if(!this._isLoaded){this._isLoaded=true;this.focus();this.dispatchEvent(new QxEvent("load"));};};proto.dispose=function(){if(this.getDisposed()){return;};if(this._timer){this._timer.removeEventListener("interval",this._ontimer,this);this._timer.dispose();this._timer=null;};if(this._instance){this._instance.dispose();this._instance=null;};if(this._pane){this._pane.dispose();this._pane=null;};if(this._window){if(!this._window.closed){QxDOM.removeEventListener(this._window,"load",this.__onload);};this.close();try{if(this._window._QxNativeWindow){this._window._QxNativeWindow.dispose();this._window._QxNativeWindow=null;};}catch(ex){};this._window=null;};this._readyState=null;return QxTarget.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxObject.js b/swat/style/qooxdoo/widgets/core/QxObject.js
new file mode 100644 (file)
index 0000000..7300612
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxObject(autoDispose){this._pos=QxObject._i2++;this._hash="h"+String(Math.round(Math.random()*1e6));this._k1={};if(typeof autoDispose!="boolean"||autoDispose){QxObject._i3.push(this);};};QxObject.extend(Object,"QxObject");QxObject._i2=0;QxObject._siteCounter=0;QxObject._i3=[];QxObject.toHash=function(o){if(o._hash!=null){return o._hash;};return o._hash="h"+String(Math.round(Math.random()*1e6));};QxObject.dispose=function(){for(var i=QxObject._i3.length-1;i>=0;i--){if(typeof QxObject._i3[i]!="undefined"){QxObject._i3[i].dispose();if(typeof QxObject._i3=="undefined"){break;};delete QxObject._i3[i];};};delete QxObject._i3;};QxObject.addProperty({name:"enabled",type:Boolean,defaultValue:true,getAlias:"isEnabled"});proto.debug=function(m){QxDebug(this.classname+"["+this._pos+"]",m);};proto.subug=function(m){QxDebug(this.classname+"["+this._pos+"]","::"+m);};proto.toString=function(){if(this.classname){return "[object "+this.classname+"]";};return "[object Object]";};proto.toHash=function(){return this._hash;};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){return true;};proto._disposed=false;proto.dispose=function(){if(this._disposed){return;};for(var p in this._k1){delete this._k1[p];};delete this._k1;this._disposed=true;delete QxObject._i3[this._pos];};proto.getDisposed=function(){return this._disposed;};proto.isDisposed=function(){return this._disposed;};proto.set=function(propertyValues){if(typeof propertyValues!="object"){throw new Error("Please use a valid hash of property key-values pairs.");};for(var prop in propertyValues){try{this["set"+prop.toFirstUp()](propertyValues[prop]);}catch(ex){throw new Error("Setter of property "+prop+" returned with an error:"+ex);};};return this;};proto.get=function(propertyNames,outputHint){switch(typeof propertyNames){case "string":return this["get"+propertyNames.toFirstUp()]();case "object":if(typeof propertyNames.length=="number"){if(outputHint=="hash"){var h={};propertyLength=propertyNames.length;for(var i=0;i<propertyLength;i++){try{h[propertyNames[i]]=this["get"+propertyNames[i].toFirstUp()]();}catch(ex){throw new Error("Could not get a valid value from property:"+propertyNames[i]+"! Is the property existing?("+ex+")");};};return h;}else {propertyLength=propertyNames.length;for(var i=0;i<propertyLength;i++){try{propertyNames[i]=this["get"+propertyNames[i].toFirstUp()]();}catch(ex){throw new Error("Could not get a valid value from property:"+propertyNames[i]+"! Is the property existing?("+ex+")");};};return propertyNames;};}else {for(var i in propertyNames){propertyNames[i]=this["get"+i.toFirstUp()]();};return propertyNames;};default:throw new Error("Please use a valid array,hash or string as parameter!");};};proto.addData=function(p){if(typeof p!="object"){throw new Error("Param should be an object!");};if(isInvalid(p.name)){throw new Error("Malformed input parameters:name needed!");};var valueKey=p.name;var methodKey=p.method=valueKey.toFirstUp();var changeKey="change"+methodKey;this["retrieve"+methodKey]=function(){return this._k1[valueKey];};if(typeof p.defaultValue!="undefined"){this._k1[valueKey]=p.defaultValue;this["retrieveDefault"+methodKey]=function(){return p.defaultValue;};this["storeDefault"+methodKey]=function(newValue){return p.defaultValue=newValue;};this["restore"+methodKey]=function(){return this["store"+methodKey](p.defaultValue);};};this["store"+methodKey]=function(newValue){var fixedValue=isValid(p.type)?p.type(newValue):newValue;var oldValue=this._k1[valueKey];if(fixedValue!=oldValue){this._k1[valueKey]=fixedValue;if(this instanceof QxTarget&&this.hasEventListeners(changeKey)){var ce=new QxDataEvent(changeKey,fixedValue,oldValue,false);ce.setTarget(this);try{this.dispatchEvent(ce,true);}catch(ex){throw new Error("Failed to dispatch change event:"+ex);};ce=null;};};return fixedValue;};};proto.removeData=function(p){if(typeof p!="object"){throw new Error("Param should be an object!");};if(isInvalid(p.name)){throw new Error("Malformed input parameters:name needed!");};var methodKey=p.method;delete this._k1[p.name];delete this["retrieve"+methodKey];delete this["store"+methodKey];delete this["retrieveDefault"+methodKey];delete this["storeDefault"+methodKey];delete this["restore"+methodKey];};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxSelectionStorage.js b/swat/style/qooxdoo/widgets/core/QxSelectionStorage.js
new file mode 100644 (file)
index 0000000..07b6aeb
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxSelectionStorage(){this.removeAll();};QxSelectionStorage.extend(QxObject,"QxSelectionStorage");proto.add=function(oItem){this._i4[this.getItemHashCode(oItem)]=oItem;};proto.remove=function(oItem){delete this._i4[this.getItemHashCode(oItem)];};proto.removeAll=function(){this._i4={};};proto.contains=function(oItem){return this.getItemHashCode(oItem)in this._i4;};proto.toArray=function(){var res=[];for(var key in this._i4){res.push(this._i4[key]);};return res;};proto.getFirst=function(){for(var key in this._i4){return this._i4[key];};};proto.getChangeValue=function(){var sb=[];for(var hc in this._i4){sb.push(hc);};sb.sort();return sb.join(",");};proto.getItemHashCode=function(oItem){return oItem.toHash();};proto.isEmpty=function(){return isHashEmpty(this._i4);};proto.dispose=function(){if(this.getDisposed()){return;};this._i4=null;QxObject.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxTarget.js b/swat/style/qooxdoo/widgets/core/QxTarget.js
new file mode 100644 (file)
index 0000000..34fddfa
--- /dev/null
@@ -0,0 +1,3 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTarget(){QxObject.call(this);this._i5={};};QxTarget.extend(QxObject,"QxTarget");proto._modifyEnabled=function(_b1,_b2,_b3,_b4){QxObject.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);return true;};proto.addEventListener=function(eType,eFunc,eObject){if(this._disposed){return;};if(typeof eFunc!="function"){throw new Error("'"+eFunc+"' is not a function!");};if(typeof this._i5[eType]=="undefined"){this._i5[eType]={};};var key=QxObject.toHash(eFunc)+(eObject?"::"+QxObject.toHash(eObject):"");this._i5[eType][key]={handler:eFunc,object:eObject
+};};proto.hasEventListeners=function(eType){return typeof this._i5[eType]!="undefined";};proto.removeEventListener=function(eType,eFunc,eObject){if(this._disposed||typeof this._i5[eType]=="undefined"){return;};if(typeof eFunc!="function"){throw new Error("'"+eFunc+"' is not a function!");};var key=QxObject.toHash(eFunc)+(eObject?"::"+QxObject.toHash(eObject):"");delete this._i5[eType][key];};proto.dispatchEvent=function(e,dispose){if(this._disposed){return;};if(!e._target){e._target=this;};this._i6(e,dispose);return !e._defaultPrevented;;};proto._i6=function(e,dispose){if(this._disposed){return;};e.setCurrentTarget(this);var fs=this._i5[e.getType()];if(fs){var f,o;for(var hc in fs){f=fs[hc].handler;o=fs[hc].object;if(typeof f=="function"){f.call(typeof o=="object"?o:this,e);};};};var p=this.getParent();if(e.getBubbles()&&!e.getPropagationStopped()&&p&&p.getEnabled()){p._i6(e,false);};if(dispose){e.dispose();};};proto.getParent=function(){return null;};proto.dispose=function(_b1,propOldName,_b3,_b4){if(this._disposed){return;};if(typeof this._i5=="object"){for(var eType in this._i5){for(var eKey in this._i5[eType]){delete this._i5[eType][eKey];};delete this._i5[eType];};};delete this._i5;return QxObject.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxTimer.js b/swat/style/qooxdoo/widgets/core/QxTimer.js
new file mode 100644 (file)
index 0000000..6d07942
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTimer(vInterval){QxTarget.call(this);this.setEnabled(false);if(isValidNumber(vInterval)){this.setInterval(vInterval);};(new QxTimerManager).add(this);var o=this;this.__i7=function(){o._i7();};};QxTimer.extend(QxTarget,"QxTimer");QxTimer.addProperty({name:"interval",type:Number,defaultValue:1000});proto._i8=null;proto._modifyEnabled=function(_b1,_b2,_b3,_b4){if(_b2){window.clearInterval(this._i8);this._i8=null;}else if(_b1){this._i8=window.setInterval(this.__i7,this.getInterval());};return QxTarget.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);};proto.start=function(){this.setEnabled(true);};proto.startWith=function(vInterval){this.setInterval(vInterval);this.start();};proto.stop=function(){this.setEnabled(false);};proto.restart=function(){this.stop();this.start();};proto.restartWith=function(vInterval){this.stop();this.startWith(vInterval);};proto._i7=function(){if(this.getEnabled()&&this.hasEventListeners("interval")){this.dispatchEvent(new QxEvent("interval"),true);};};proto.dispose=function(){if(this.getDisposed()){return;};this.stop();this.__i7=null;if(this._i8r){window.clearInterval(this._i8);this._i8r=null;};return QxTarget.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxUserApplication.js b/swat/style/qooxdoo/widgets/core/QxUserApplication.js
new file mode 100644 (file)
index 0000000..2937cb9
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxUserApplication(){if(QxUserApplication._instance){return QxUserApplication._instance;};QxTarget.call(this);QxUserApplication._instance=this;};QxUserApplication.extend(QxTarget,"QxUserApplication");proto.dispose=function(){if(this.getDisposed()){return;};var dispose_start=(new Date).valueOf();QxTarget.prototype.dispose.call(this);QxObject.dispose();QxDebug("QxUserApplication","Dispose total:"+((new Date).valueOf()-dispose_start)+"ms");};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxXmlHttpLoader.js b/swat/style/qooxdoo/widgets/core/QxXmlHttpLoader.js
new file mode 100644 (file)
index 0000000..fbf5141
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxXmlHttpLoader(){QxTarget.call(this);if(!QxXmlHttpLoader._ok){throw new Error("Your Browser does not support XML-HTTP!");};var o=this;this.__onreadystatechange=function(){o._onreadystatechange();};this.__onload=function(){o._onload();};this.__onreadystatefix=function(){o.req.readyState=4;o._onreadystatechange();};};QxXmlHttpLoader.extend(QxTarget,"QxXmlHttpLoader");QxXmlHttpLoader._http=window.XMLHttpRequest?true:false;QxXmlHttpLoader._activex=window.ActiveXObject&&!(new QxClient).isOpera()?true:false;QxXmlHttpLoader._activexobj=null;QxXmlHttpLoader._ok=QxXmlHttpLoader._http||QxXmlHttpLoader._activex;if(QxXmlHttpLoader._activex){var servers=["MSXML2","Microsoft","MSXML","MSXML3"];for(var i=0;i<servers.length;i++){try{var o=new ActiveXObject(servers[i]+".XMLHTTP");QxXmlHttpLoader._activexobj=servers[i];o=null;}catch(ex){};};};QxXmlHttpLoader.addProperty({name:"xml"});proto.load=function(url){try{this.req=QxXmlHttpLoader._activex?new ActiveXObject(QxXmlHttpLoader._activexobj+".XMLHTTP"):new XMLHttpRequest();if(typeof this.req.abort!="undefined"){this.req.abort();};this.req.onreadystatechange=this.__onreadystatechange;if(this.req.readyState==null){this.req.readyState=1;req.addEventListener("load",this.__onreadystatefix,false);};this.req.open("GET",url,true);return QxXmlHttpLoader._activex?this.req.send():this.req.send(null);}catch(e){throw new Error("Your browser does not support XML-HTTP:\n"+e);};};proto._onload=function(){};proto._onreadystatechange=function(){switch(this.req.readyState){case 1:if(this.hasEventListeners("init")){this.dispatchEvent(new QxEvent("init"));};break;case 2:if(this.hasEventListeners("connect")){this.dispatchEvent(new QxEvent("connect"));};if(this.req.status!=200&&this.req.status!=0){if(typeof this.req.abort!="undefined")this.req.abort();throw new Error("File request failed:"+this.req.statusText+"["+this.req.status+"]");};break;case 3:if(this.hasEventListeners("download"))this.dispatchEvent(new QxEvent("download"));try{var l=this.req.getResponseHeader("Content-Length");if(typeof l!="number"){l=NaN;};}catch(ex){var l=NaN;};break;case 4:if(this.hasEventListeners("done")){this.dispatchEvent(new QxEvent("done"));};if(this.req.status!=200&&this.req.status!=0){if(this.req.abort){this.req.abort();};throw new Error("File request failed:"+this.req.statusText+"["+this.req.status+"]");};if(!this.req.responseXML.documentElement){var s = String(this.req.responseText).replace(/<\?xml[^\?]*\?>/, "");this.req.responseXML.loadXML(s);};if(!this.req.responseXML.documentElement){throw new Error("Missing Document Element!");};if(this.req.responseXML.documentElement.tagName=="parseerror"){throw new Error("XML-File is not well-formed!");};this.dispatchEvent(new QxDataEvent("complete",this.req.responseXML),true);};};proto.dispose=function(){if(this._disposed){return;};if(this.req){this.req=null;};this.__onreadystatechange=null;return QxTarget.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/events/QxDataEvent.js b/swat/style/qooxdoo/widgets/events/QxDataEvent.js
new file mode 100644 (file)
index 0000000..2634ba4
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxDataEvent(eType,newValue,oldValue,autoDispose){QxEvent.call(this,eType,autoDispose);if(typeof newValue!="undefined"){this._newValue=newValue;};if(typeof oldValue!="undefined"){this._oldValue=oldValue;};};QxDataEvent.extend(QxEvent,"QxDataEvent");proto._propagationStopped=false;proto.getValue=proto.getData=proto.getNewValue=function(){return this._newValue;};proto.getOldValue=function(){return this._oldValue;};proto.dispose=function(){if(this._disposed){return;};this._newValue=this._oldValue=null;QxEvent.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/events/QxDragEvent.js b/swat/style/qooxdoo/widgets/events/QxDragEvent.js
new file mode 100644 (file)
index 0000000..76db408
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxDragEvent(vType,vMouseEvent,vAutoDispose){this._mouseEvent=vMouseEvent;this._manager=new QxDragAndDropManager;QxMouseEvent.call(this,vType,vMouseEvent?vMouseEvent._domEvent:null,vAutoDispose);};QxDragEvent.extend(QxMouseEvent,"QxDragEvent");proto.getManager=function(){return this._manager;};proto.getMouseEvent=function(){return this._mouseEvent;};proto.startDrag=function(){if(this._type!="dragstart"){throw new Error("QxDragEvent startDrag can only be called during the dragstart event");};this.stopPropagation();this._manager.startDrag();};proto.addData=function(sType,oData){this._manager.addData(sType,oData);};proto.getData=function(sType){return this._manager.getData(sType);};proto.clearData=function(){this._manager.clearData();};proto.getDropDataTypes=function(){return this._manager.getDropDataTypes();};proto.addAction=function(sAction){this._manager.addAction(sAction);};proto.removeAction=function(sAction){this._manager.removeAction(sAction);};proto.getAction=function(){return this._manager.getCurrentAction();};proto.clearActions=function(){this._manager.clearActions();};proto._evalTarget=function(){switch(this._type){case "dragstart":case "dragend":case "dragover":case "dragout":case "dragmove":return this._target;case "dragdrop":return this._manager.getDestinationWidget();default:return QxMouseEvent.prototype._evalTarget.call(this);};};proto._evalRelatedTarget=function(){switch(this._type){case "dragover":case "dragout":return this._relatedTarget;case "dragdrop":return this._manager.getSourceWidget();case "dragend":return this._manager.getDestinationWidget();default:return QxMouseEvent.prototype._evalRelatedTarget.call(this);};};proto.dispose=function(){if(this.getDisposed()){return;};QxMouseEvent.prototype.dispose.call(this);this._relatedTarget=null;this._target=null;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/events/QxEvent.js b/swat/style/qooxdoo/widgets/events/QxEvent.js
new file mode 100644 (file)
index 0000000..31960ee
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxEvent(eType,autoDispose){if(typeof autoDispose!="boolean"&&this.classname=="QxEvent"){autoDispose=false;};QxObject.call(this,autoDispose);if(isValid(eType)){this._type=eType;};};QxEvent.extend(QxObject,"QxEvent");proto._bubbles=false;proto._propagationStopped=true;proto._defaultPrevented=false;proto._type="";proto._target=null;proto._currentTarget=null;proto._relatedTarget=null;proto.setType=function(t){this._type=t;};proto.setBubbles=function(b){this._bubbles=b;};proto.setPropagationStopped=function(s){this._propagationStopped=s;};proto.stopPropagation=function(){this._propagationStopped=true;};proto.setPreventDefault=function(d){this._defaultPrevented=d;};proto.setTarget=function(t){this._target=t;};proto.setCurrentTarget=function(t){this._currentTarget=t;};proto.setRelatedTarget=function(t){this._relatedTarget=t;};proto.preventDefault=function(){this.setPreventDefault(true);};proto.getType=function(){return this._type;};proto.getBubbles=function(){return this._bubbles;};proto.getPropagationStopped=function(){return this._propagationStopped;};proto.getPreventDefault=function(){return this._defaultPrevented;};proto.getTarget=function(){return this._target;};proto.getCurrentTarget=function(){return this._currentTarget;};proto.getRelatedTarget=function(){return this._relatedTarget;};proto.dispose=function(){if(this._disposed){return;};this._target=null;this._currentTarget=null;this._relatedTarget=null;QxObject.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/events/QxFocusEvent.js b/swat/style/qooxdoo/widgets/events/QxFocusEvent.js
new file mode 100644 (file)
index 0000000..176d59c
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxFocusEvent(eType,autoDispose){QxEvent.call(this,eType,autoDispose);if(eType=="focusin"||eType=="focusout"){this._bubbles=true;this._propagationStopped=false;};};QxFocusEvent.extend(QxEvent,"QxFocusEvent");
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/events/QxKeyEvent.js b/swat/style/qooxdoo/widgets/events/QxKeyEvent.js
new file mode 100644 (file)
index 0000000..cc2808e
--- /dev/null
@@ -0,0 +1,4 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxKeyEvent(eType,domEvent,autoDispose){QxEvent.call(this,eType,autoDispose);this._domEvent=domEvent;};QxKeyEvent.extend(QxEvent,"QxKeyEvent");QxKeyEvent.keys=
+{esc:27,enter:13,tab:9,space:32,up:38,down:40,left:37,right:39,shift:16,ctrl:17,alt:18,f1:112,f2:113,f3:114,f4:115,f5:116,f6:117,f7:118,f8:119,f9:120,f10:121,f11:122,f12:123,del:46,backspace:8,insert:45,home:36,end:35,pageup:33,pagedown:34,numlock:144,numpad_0:96,numpad_1:97,numpad_2:98,numpad_3:99,numpad_4:100,numpad_5:101,numpad_6:102,numpad_7:103,numpad_8:104,numpad_9:105,numpad_divide:111,numpad_multiply:106,numpad_minus:109,numpad_plus:107
+};QxKeyEvent.codes={};for(var i in QxKeyEvent.keys){QxKeyEvent.codes[QxKeyEvent.keys[i]]=i;};proto._domEvent=null;proto._preventDefault=false;proto._bubbles=true;proto._propagationStopped=false;proto.dispose=function(){if(this._disposed)return;this._domEvent=null;QxEvent.prototype.dispose.call(this);};proto.getDomEvent=function(){return this._domEvent;};proto.getDomTarget=function(){return this._domEvent.target||this._domEvent.srcElement;};proto.getKeyCode=function(){return this._domEvent.keyCode||this._domEvent.charCode;};proto.getCtrlKey=function(){return this._domEvent.ctrlKey;};proto.getShiftKey=function(){return this._domEvent.shiftKey;};proto.getAltKey=function(){return this._domEvent.altKey;};proto.setPreventDefault=function(d){if(!this._defaultPrevented&&d){this.preventDefault();}else {return false;};};if((new QxClient).isMshtml()){proto.preventDefault=function(){this._domEvent.returnValue=false;this._defaultPrevented=true;};}else {proto.preventDefault=function(){this._domEvent.preventDefault();this._domEvent.returnValue=false;this._defaultPrevented=true;};};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/events/QxMouseEvent.js b/swat/style/qooxdoo/widgets/events/QxMouseEvent.js
new file mode 100644 (file)
index 0000000..b1035ef
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxMouseEvent(vType,vDomEvent,vAutoDispose,vTarget,vActiveTarget,vRelatedTarget){QxEvent.call(this,vType,vAutoDispose);if(vDomEvent){this._domEvent=vDomEvent;this._domTarget=vDomEvent.target||vDomEvent.srcElement;this._target=isValid(vTarget)?vTarget:this._evalTarget();this._activeTarget=isValid(vActiveTarget)?vActiveTarget:this._evalActiveTarget();this._relatedTarget=isValid(vRelatedTarget)?vRelatedTarget:this._evalRelatedTarget();this._pageX=this._evalPageX();this._pageY=this._evalPageY();this._clientX=this._evalClientX();this._clientY=this._evalClientY();switch(this._button=this._evalButton()){case "left":this._buttonLeft=true;break;case "middle":this._buttonMiddle=true;break;case "right":this._buttonRight=true;break;};};};QxMouseEvent.extend(QxEvent,"QxMouseEvent");proto._bubbles=true;proto._propagationStopped=false;proto._preventDefault=false;proto._domEvent=null;proto._domTarget=null;proto.getDomEvent=function(){return this._domEvent;};proto.getDomTarget=function(){return this._domTarget;};proto._pageX=null;proto._pageY=null;proto.getPageX=function(){return this._pageX;};proto.getPageY=function(){return this._pageY;};if((new QxClient).isGecko()){proto._evalPageX=function(){return this._domEvent.pageX;};proto._evalPageY=function(){return this._domEvent.pageY;};}else if((new QxClient).isMshtml()){if(isInvalid(document.compatMode)||document.compatMode=="BackCompat"){proto._evalPageX=function(){return this._domEvent.clientX+document.documentElement.scrollLeft;};proto._evalPageY=function(){return this._domEvent.clientY+document.documentElement.scrollTop;};}else {proto._evalPageX=function(){return this._domEvent.clientX+document.body.scrollLeft;};proto._evalPageY=function(){return this._domEvent.clientY+document.body.scrollTop;};};}else {proto._evalPageX=function(){return this._domEvent.clientX;};proto._evalPageY=function(){return this._domEvent.clientY;};};proto._clientX=null;proto._clientY=null;proto.getClientX=function(){return this._clientX;};proto.getClientY=function(){return this._clientY;};if((new QxClient).isMshtml()||(new QxClient).isGecko()){proto._evalClientX=function(){return this._domEvent.clientX;};proto._evalClientY=function(){return this._domEvent.clientY;};}else {proto._evalClientX=function(){return this._domEvent.clientX+(document.body&&document.body.scrollLeft!=null?document.body.scrollLeft:0);};proto._evalClientY=function(){return this._domEvent.clientY+(document.body&&document.body.scrollTop!=null?document.body.scrollTop:0);};};proto.getScreenX=function(){return this._domEvent.screenX;};proto.getScreenY=function(){return this._domEvent.screenY;};proto.getCtrlKey=function(){return this._domEvent.ctrlKey;};proto.getShiftKey=function(){return this._domEvent.shiftKey;};proto.getAltKey=function(){return this._domEvent.altKey;};proto.getDomTargetByTagName=function(elemTagName,stopElem){var dt=this.getDomTarget();while(dt&&dt.tagName!=elemTagName&&dt!=stopElem){dt=dt.parentNode;};if(dt&&dt.tagName==elemTagName){return dt;};return null;};if((new QxClient).isMshtml()){proto.preventDefault=function(){this._domEvent.returnValue=false;this._defaultPrevented=true;};}else {proto.preventDefault=function(){this._domEvent.preventDefault();this._domEvent.returnValue=false;this._defaultPrevented=true;};};proto.getDefaultPrevented=function(){return this._defaultPrevented;};proto._target=proto._activeTarget=proto._relatedTarget=null;proto.getTarget=function(){return this._target;};proto.getActiveTarget=function(){return this._activeTarget;};proto.getRelatedTarget=function(){return this._relatedTarget;};proto._evalTarget=function(){return QxEventManager.getTargetObjectFromEvent(this._domEvent);};proto._evalActiveTarget=function(){return QxEventManager.getActiveTargetObjectFromEvent(this._domEvent);};proto._evalRelatedTarget=function(){return QxEventManager.getRelatedActiveTargetObjectFromEvent(this._domEvent);};proto._button=0;proto.getButton=function(){return this._button;};proto.isLeftButton=function(){return this._buttonLeft;};proto.isMiddleButton=function(){return this._buttonMiddle;};proto.isRightButton=function(){return this._buttonRight;};proto.isNotLeftButton=function(){return !this._buttonLeft;};proto.isNotMiddleButton=function(){return !this._buttonMiddle;};proto.isNotRightButton=function(){return !this._buttonRight;};if((new QxClient).isMshtml()){proto._evalButton=function(){var b=this._domEvent.button;return b==1?"left":b==2?"right":b==4?"middle":null;};QxMouseEvent.buttons={left:1,right:2,middle:4};}else {proto._evalButton=function(){var b=this._domEvent.button;return b==0?"left":b==2?"right":b==1?"middle":null;};QxMouseEvent.buttons={left:0,right:2,middle:1};};proto._wheelDelta=0;proto._wheelDeltaEvaluated=false;proto.getWheelDelta=function(){if(this._wheelDeltaEvaluated){return this._wheelDelta;};this._wheelDeltaEvaluated=true;return this._wheelDelta=this._evalWheelDelta();};if((new QxClient).isMshtml()){proto._evalWheelDelta=function(){return this._domEvent.wheelDelta?this._domEvent.wheelDelta/40:0;};}else {proto._evalWheelDelta=function(){return-(this._domEvent.detail||0);};};proto.dispose=function(){if(this.getDisposed()){return;};QxEvent.prototype.dispose.call(this);this._domEvent=null;this._domTarget=null;this._target=null;this._activeTarget=null;this._relatedTarget=null;};QxMouseEvent._screenX=QxMouseEvent._screenY=QxMouseEvent._clientX=QxMouseEvent._clientY=QxMouseEvent._pageX=QxMouseEvent._pageY=0;QxMouseEvent._button=null;QxMouseEvent._storeEventState=function(e){QxMouseEvent._screenX=e.getScreenX();QxMouseEvent._screenY=e.getScreenY();QxMouseEvent._clientX=e.getClientX();QxMouseEvent._clientY=e.getClientY();QxMouseEvent._pageX=e.getPageX();QxMouseEvent._pageY=e.getPageY();QxMouseEvent._button=e.getButton();};QxMouseEvent.getScreenX=function(){return QxMouseEvent._screenX;};QxMouseEvent.getScreenY=function(){return QxMouseEvent._screenY;};QxMouseEvent.getClientX=function(){return QxMouseEvent._clientX;};QxMouseEvent.getClientY=function(){return QxMouseEvent._clientY;};QxMouseEvent.getPageX=function(){return QxMouseEvent._pageX;};QxMouseEvent.getPageY=function(){return QxMouseEvent._pageY;};QxMouseEvent.getButton=function(){return QxMouseEvent._button;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxDataManager.js b/swat/style/qooxdoo/widgets/managers/QxDataManager.js
new file mode 100644 (file)
index 0000000..cb8ba70
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxDataManager(){if(QxDataManager._instance)return QxDataManager._instance;QxManager.call(this);QxDataManager._instance=this;};QxDataManager.extend(QxManager,"QxDataManager");
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxDomSelectionManager.js b/swat/style/qooxdoo/widgets/managers/QxDomSelectionManager.js
new file mode 100644 (file)
index 0000000..5c94c00
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxDomSelectionManager(vBoundedWidget){QxSelectionManager.call(this,vBoundedWidget);this.setDragSelection(false);this._j5.getItemHashCode=this.getItemHashCode;};QxDomSelectionManager.extend(QxSelectionManager,"QxDomSelectionManager");proto.getItemEnabled=function(oItem){return true;};proto.getItemClassName=function(vItem){return vItem.className||"";};proto.setItemClassName=function(vItem,vClassName){return vItem.className=vClassName;};proto.getItemBaseClassName=function(vItem){var p=vItem.className.split(" ")[0];return p?p:"Status";};proto.getNextSibling=function(vItem){return vItem.nextSibling;};proto.getPreviousSibling=function(vItem){return vItem.previousSibling;};proto.getItemHashCode=function(vItem){return vItem.toHash();};proto.getItemLeft=function(vItem){return vItem.offsetLeft;};proto.getItemTop=function(vItem){return vItem.offsetTop;};proto.getItemWidth=function(vItem){return vItem.offsetWidth;};proto.getItemHeight=function(vItem){return vItem.offsetHeight;};proto.getItemHashCode=function(oItem){if(oItem._hash){return oItem._hash;};return oItem._hash=QxObject.toHash(oItem);};proto.isBefore=function(vItem1,vItem2){var pa=vItem1.parentNode;for(var i=0,l=pa.childNodes.length;i<l;i++){switch(pa.childNodes[i]){case vItem2:return false;case vItem1:return true;};};};proto.scrollItemIntoView=function(vItem){this.getBoundedWidget().scrollItemIntoView(vItem);};proto.getItems=function(){return this.getBoundedWidget().getItems();};proto.getAbove=function(vItem){var vParent=vItem.parentNode;var vFound=false;var vLeft=vItem.offsetLeft;var vChild;for(var i=vParent.childNodes.length-1;i>0;i--){vChild=vParent.childNodes[i];if(vFound==false){if(vChild==vItem){vFound=true;};}else {if(vChild.offsetLeft==vLeft){return vChild;};};};};proto.getUnder=function(vItem){var vParent=vItem.parentNode;var vFound=false;var vLeft=vItem.offsetLeft;var vChild;for(var i=0,l=vParent.childNodes.length;i<l;i++){vChild=vParent.childNodes[i];if(vFound==false){if(vChild==vItem){vFound=true;};}else {if(vChild.offsetLeft==vLeft){return vChild;};};};};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxDragAndDropManager.js b/swat/style/qooxdoo/widgets/managers/QxDragAndDropManager.js
new file mode 100644 (file)
index 0000000..d1b98ec
--- /dev/null
@@ -0,0 +1,3 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxDragAndDropManager(){if(QxDragAndDropManager._instance){return QxDragAndDropManager._instance;};QxTarget.call(this);this._k1={};this._k2={};this._k3={};var d=window.application.getClientWindow().getClientDocument();var a=["move","copy","alias","nodrop"];var c;for(var i=0;i<a.length;i++){c = this._k3[a[i]] = new QxImage("widgets/cursors/" + a[i] + ".gif");c.setTimerCreate(false);c.setStyleProperty("top","-1000px");c.setZIndex(10000);c.setParent(d);};QxDragAndDropManager._instance=this;};QxDragAndDropManager.extend(QxManager,"QxDragAndDropManager");QxDragAndDropManager.addProperty({name:"sourceWidget",type:Object});QxDragAndDropManager.addProperty({name:"destinationWidget",type:Object});QxDragAndDropManager.addProperty({name:"cursor",type:Object});QxDragAndDropManager.addProperty({name:"currentAction",type:String});proto._k5=null;proto._modifyDestinationWidget=function(_b1,_b2,_b3,_b4){if(_b1){_b1.dispatchEvent(new QxDragEvent("dragdrop",this._k5));this._k5=null;};return true;};proto.addData=function(vMimeType,vData){this._k1[vMimeType]=vData;};proto.getData=function(vMimeType){return this._k1[vMimeType];};proto.clearData=function(){this._k1={};};proto.getDropDataTypes=function(){var dw=this.getDestinationWidget();var st=[];if(!dw){return st;};var ddt=dw.getDropDataTypes();var ddtl=ddt.length;for(var i=0;i<ddtl;i++){if(ddt[i]in this._k1){st.push(ddt[i]);};};return st;};proto.startDrag=function(){if(!this._k6){throw new Error("Invalid usage of startDrag. Missing dragInfo!");};this._k6.dragHandlerActive=true;this.setSourceWidget(this._k6.sourceWidget);};proto._fireUserEvents=function(fromWidget,toWidget,e){if(fromWidget&&fromWidget!=toWidget){var outEvent=new QxDragEvent("dragout",e);outEvent._relatedTarget=toWidget;fromWidget.dispatchEvent(outEvent,true);outEvent=null;};if(toWidget){if(fromWidget!=toWidget){var overEvent=new QxDragEvent("dragover",e);overEvent._relatedTarget=fromWidget;toWidget.dispatchEvent(overEvent,true);overEvent=null;};var moveEvent=new QxDragEvent("dragmove",e);toWidget.dispatchEvent(moveEvent,true);moveEvent=null;};};proto.handleMouseEvent=function(e){switch(e.getType()){case "mousedown":return this._handleMouseDown(e);case "mouseup":return this._handleMouseUp(e);case "mousemove":return this._handleMouseMove(e);};};proto._handleMouseDown=function(e){if(e.getDefaultPrevented()){return;};this._k6={startScreenX:e.getScreenX(),startScreenY:e.getScreenY(),pageX:e.getPageX(),pageY:e.getPageY(),sourceWidget:e.getTarget(),dragHandlerActive:false,hasFiredDragStart:false
+};this._k6.sourceTopLevel=this._k6.sourceWidget.getTopLevelWidget();};proto._handleMouseMove=function(e){if(!this._k6){return;};if(this._k6.dragHandlerActive){this._k6.pageX=e.getPageX();this._k6.pageY=e.getPageY();var currentDropTarget=this.getDropTarget(e);this.setCurrentAction(currentDropTarget?this._evalNewAction(e.getShiftKey(),e.getCtrlKey(),e.getAltKey()):null);this._fireUserEvents(this._k6.currentDropWidget,currentDropTarget,e);this._k6.currentDropWidget=currentDropTarget;this._renderCursor();}else if(!this._k6.hasFiredDragStart){if(Math.abs(e.getScreenX()-this._k6.startScreenX)>5||Math.abs(e.getScreenY()-this._k6.startScreenY)>5){this._k6.sourceWidget.dispatchEvent(new QxDragEvent("dragstart",e));this._k6.hasFiredDragStart=true;if(this._k6.dragHandlerActive){this._fireUserEvents(this._k6.currentDropWidget,this._k6.sourceWidget,e);this._k6.currentDropWidget=this._k6.sourceWidget;var clientDocument=window.application.getClientWindow().getClientDocument();clientDocument.setCapture(true);clientDocument.addEventListener("losecapture",this.cancelDrag,this);};};};};proto._handleMouseUp=function(e){if(!this._k6){return;};if(this._k6.dragHandlerActive){this._endDrag(this.getDropTarget(e),e);}else {this._k6=null;};};proto.handleKeyEvent=function(e){if(!this._k6){return;};switch(e.getType()){case "keydown":this._handleKeyDown(e);return;case "keyup":this._handleKeyUp(e);return;};};proto._handleKeyDown=function(e){if(e.getKeyCode()==QxKeyEvent.keys.esc){this.cancelDrag();}else if(this.getCurrentAction()!=null){switch(e.getKeyCode()){case QxKeyEvent.keys.shift:case QxKeyEvent.keys.ctrl:case QxKeyEvent.keys.alt:this.setAction(this._evalNewAction(e.getShiftKey(),e.getCtrlKey(),e.getAltKey()));this._renderCursor();};};};proto._handleKeyUp=function(e){var bShiftPressed=e.getKeyCode()==QxKeyEvent.keys.shift;var bCtrlPressed=e.getKeyCode()==QxKeyEvent.keys.strl;var bAltPressed=e.getKeyCode()==QxKeyEvent.keys.alt;if(bShiftPressed||bCtrlPressed||bAltPressed){if(this.getCurrentAction()!=null){this.setAction(this._evalNewAction(!bShiftPressed&&e.getShiftKey(),! bCtrlPressed&&e.getCtrlKey(),!bAltPressed&&e.getAltKey()));this._renderCursor();};};e.preventDefault();};proto.cancelDrag=function(e){this._endDrag(null,e);};proto.globalCancelDrag=function(){if(this._k6&&this._k6.dragHandlerActive){this._endDragCore();};};proto._endDrag=function(currentDestinationWidget,e){if(currentDestinationWidget){this._k5=e;this.setDestinationWidget(currentDestinationWidget);};this.getSourceWidget().dispatchEvent(new QxDragEvent("dragend",e));this._fireUserEvents(this._k6&&this._k6.currentDropWidget,null,e);this._endDragCore();};proto._endDragCore=function(){this.setCursor(null);var d=window.application.getClientWindow().getClientDocument();d.removeEventListener("losecapture",this.cancelDrag,this);d.setCapture(false);if(this._k6){this._k6.currentDropWidget=null;this._k6=null;};this.clearData();this.clearActions();this.setSourceWidget(null);this.setDestinationWidget(null);};proto._renderCursor=function(){var newCursor;switch(this.getCurrentAction()){case "move":newCursor=this._k3.move;break;case "copy":newCursor=this._k3.copy;break;case "alias":newCursor=this._k3.alias;break;default:newCursor=this._k3.nodrop;};newCursor._d3Horizontal(this._k6.pageX+5);newCursor._d3Vertical(this._k6.pageY+15);this.setCursor(newCursor);};proto._modifyCursor=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setStyleProperty("display","none");};if(_b1){_b1.removeStyleProperty("display");};return true;};proto.supportsDrop=function(vWidget){var types=vWidget.getDropDataTypes();if(!types){return false;};for(var i=0;i<types.length;i++){if(types[i]in this._k1){return true;};};return false;};if((new QxClient).isGecko()){proto.getDropTarget=function(e){var currentWidget=e.getTarget();if(currentWidget==this._k6.sourceWidget){currentWidget=this._k6.sourceTopLevel.getWidgetFromPoint(e.getPageX(),e.getPageY());}else {currentWidget=QxEventManager.getActiveTargetObject(null,currentWidget);};while(currentWidget!=null){if(this.supportsDrop(currentWidget)){return currentWidget;};currentWidget=currentWidget.getParent();};return null;};}else {proto.getDropTarget=function(e){var currentWidget=e.getActiveTarget();while(currentWidget!=null){if(this.supportsDrop(currentWidget)){return currentWidget;};currentWidget=currentWidget.getParent();};return null;};};proto.addAction=function(vAction,vForce){this._k2[vAction]=true;if(vForce||this.getCurrentAction()==null){this.setCurrentAction(vAction);};};proto.clearActions=function(){this._k2={};this.setCurrentAction(null);};proto.removeAction=function(sAction){delete this._k2[sAction];if(this.getCurrentAction()==sAction){this.setCurrentAction(null);};};proto.setAction=function(s){if(s!=null&&!(s in this._k2)){this.addAction(s,true);}else {this.setCurrentAction(s);};};proto._evalNewAction=function(kShift,kCtrl,kAlt){if(kShift&&kCtrl&&this._k4("alias")){return "alias";}else if(kShift&&kAlt&&this._k4("copy")){return "copy";}else if(kShift&&this._k4("move")){return "move";}else if(kAlt&&this._k4("alias")){return "alias";}else if(kCtrl&&this._k4("copy")){return "copy";}else {for(var action in this._k2){return action;};};return null;};proto._k4=function(vAction){return vAction in this._k2;};proto.dispose=function(){if(this.getDisposed()){return;};this._k1=null;this._k2=null;this.setSourceWidget(null);this.setDestinationWidget(null);this._lastdestinationWidgetEvent=null;this._k6=null;if(QxDragAndDropManager._k3){if(QxDragAndDropManager._k3.move){QxDragAndDropManager._k3.move.dispose();QxDragAndDropManager._k3.move=null;};if(QxDragAndDropManager._k3.copy){QxDragAndDropManager._k3.copy.dispose();QxDragAndDropManager._k3.copy=null;};if(QxDragAndDropManager._k3.alias){QxDragAndDropManager._k3.alias.dispose();QxDragAndDropManager._k3.alias=null;};if(QxDragAndDropManager._k3.nodrop){QxDragAndDropManager._k3.nodrop.dispose();QxDragAndDropManager._k3.nodrop=null;};QxDragAndDropManager._k3=null;};QxManager.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxEventManager.js b/swat/style/qooxdoo/widgets/managers/QxEventManager.js
new file mode 100644 (file)
index 0000000..53ef5f2
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxEventManager(vClientWindow){QxObject.call(this);var o=this;this.__onmouseevent=function(e){return o._onmouseevent(e);};this.__onkeyevent=function(e){return o._onkeyevent(e);};this.__ondragevent=function(e){return o._ondragevent(e);};this.__onwindowblur=function(e){return o._onwindowblur(e);};this.__onwindowfocus=function(e){return o._onwindowfocus(e);};this.__onwindowresize=function(e){return o._onwindowresize(e);};if(isValid(vClientWindow)){this.attachEvents(vClientWindow);};this._commands={};};QxEventManager.extend(QxManager,"QxEventManager");QxEventManager.mouseEventTypes=["mouseover","mousemove","mouseout","mousedown","mouseup","click","dblclick","contextmenu",(new QxClient).isMshtml()?"mousewheel":"DOMMouseScroll"];QxEventManager.keyEventTypes=["keydown","keypress","keyup"];QxEventManager.dragEventTypes=(new QxClient).isGecko()?["dragdrop","dragenter","dragexit","draggesture","dragover"]:[];QxEventManager.addProperty({name:"allowClientContextMenu",type:Boolean,defaultValue:false});QxEventManager.addProperty({name:"captureWidget"});proto._attachedClientWindow=null;proto._lastMouseEventType=null;proto._lastMouseDown=false;proto._lastMouseEventDate=0;proto._modifyCaptureWidget=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setCapture(false,_b4);};if(_b1){_b1.setCapture(true,_b4);};return true;};proto.addCommand=function(vCommand){this._commands[vCommand.toHash()]=vCommand;};proto.removeCommand=function(vCommand){delete this._commands[vCommand.toHash()];};proto._checkKeyEventMatch=function(e){var vCommand;for(var vHash in this._commands){vCommand=this._commands[vHash];if(vCommand.getEnabled()&&vCommand._matchesKeyEvent(e)){if(!vCommand.execute()){e.preventDefault();};};};};proto.attachEvents=function(clientWindow){if(this._attachedClientWindow){return false;};this._attachedClientWindow=clientWindow;this.attachEventTypes(QxEventManager.mouseEventTypes,this.__onmouseevent);this.attachEventTypes(QxEventManager.keyEventTypes,this.__onkeyevent);this.attachEventTypes(QxEventManager.dragEventTypes,this.__ondragevent);this.attachWindowEvents();};if((new QxClient).isMshtml()){proto.attachWindowEvents=function(){var winElem=this._attachedClientWindow.getElement();winElem.attachEvent("onblur",this.__onwindowblur);winElem.attachEvent("onfocus",this.__onwindowfocus);winElem.attachEvent("onresize",this.__onwindowresize);};}else {proto.attachWindowEvents=function(){var winElem=this._attachedClientWindow.getElement();winElem.addEventListener("blur",this.__onwindowblur,false);winElem.addEventListener("focus",this.__onwindowfocus,false);winElem.addEventListener("resize",this.__onwindowresize,false);};};proto.detachEvents=function(){if(!this._attachedClientWindow){return false;};this.detachWindowEvents();this.detachEventTypes(QxEventManager.mouseEventTypes,this.__onmouseevent);this.detachEventTypes(QxEventManager.keyEventTypes,this.__onkeyevent);this.detachEventTypes(QxEventManager.dragEventTypes,this.__ondragevent);this._attachedClientWindow=null;};if((new QxClient).isMshtml()){proto.detachWindowEvents=function(){try{var winElem=this._attachedClientWindow.getElement();winElem.detachEvent("onblur",this.__onwindowblur);winElem.detachEvent("onfocus",this.__onwindowfocus);winElem.detachEvent("onresize",this.__onwindowresize);}catch(ex){};};}else {proto.detachWindowEvents=function(){try{var winElem=this._attachedClientWindow.getElement();winElem.removeEventListener("blur",this.__onwindowblur,false);winElem.removeEventListener("focus",this.__onwindowfocus,false);winElem.removeEventListener("resize",this.__onwindowresize,false);}catch(ex){};};};proto.attachEventTypes=function(eventTypes,functionPointer){try{var d=this._attachedClientWindow.getClientDocument().getElement();if(d.attachEvent){for(var i=0;i<eventTypes.length;i++){d.attachEvent("on"+eventTypes[i],functionPointer);};}else if(d.addEventListener){for(var i=0;i<eventTypes.length;i++){d.addEventListener(eventTypes[i],functionPointer,false);};};}catch(ex){};};proto.detachEventTypes=function(eventTypes,functionPointer){try{var d=this._attachedClientWindow.getClientDocument().getElement();if(d.detachEvent){for(var i=0;i<eventTypes.length;i++){d.detachEvent("on"+eventTypes[i],functionPointer);};}else if(d.removeEventListener){for(var i=0;i<eventTypes.length;i++){d.removeEventListener(eventTypes[i],functionPointer,false);};};}catch(ex){};};QxEventManager.getTargetObject=function(n){while(n!=null&&n._QxWidget==null){try{n=n.parentNode;}catch(e){n=null;};};return n?n._QxWidget:null;};QxEventManager.getTargetObjectFromEvent=function(e){return QxEventManager.getTargetObject(e.target||e.srcElement);};QxEventManager.getRelatedTargetObjectFromEvent=function(e){return QxEventManager.getTargetObject(e.relatedTarget||(e.type=="mouseover"?e.fromElement:e.toElement));};QxEventManager.getActiveTargetObject=function(n,o){if(!o){var o=QxEventManager.getTargetObject(n);if(!o){return null;};};while(o){if(!o.getEnabled()){return;};if(!o.getAnonymous()){break;};o=o.getParent();};return o;};QxEventManager.getActiveTargetObjectFromEvent=function(e){return QxEventManager.getActiveTargetObject(e.target||e.srcElement);};QxEventManager.getRelatedActiveTargetObjectFromEvent=function(e){return QxEventManager.getActiveTargetObject(e.relatedTarget||(e.type=="mouseover"?e.fromElement:e.toElement));};proto._onkeyevent=function(e){if(this.getDisposed()||typeof QxKeyEvent!="function"){return;};if(!e){e=this._attachedClientWindow.getElement().event;};var k=e.keyCode||e.charCode;if(k==QxKeyEvent.keys.tab){if((new QxClient).isNotMshtml()){e.preventDefault();};e.returnValue=false;if(typeof QxMenuManager=="function"){(new QxMenuManager).update();};this._attachedClientWindow.getFocusManager()._ontabevent(e);}else {if(k==QxKeyEvent.keys.esc){if(typeof QxMenuManager=="function"){(new QxMenuManager).update();};};var o=this.getCaptureWidget()||(new QxApplication).getActiveWidget();if(o==null||!o.getEnabled()){return;};var s=new QxKeyEvent(e.type,e,false);if(e.type=="keypress"){this._checkKeyEventMatch(s);};var r=o.dispatchEvent(s);if(typeof QxDragAndDropManager=="function"){(new QxDragAndDropManager).handleKeyEvent(s);};s.dispose();return r;};};if((new QxClient).isMshtml()){proto._onmouseevent=function(e){if(!e){e=this._attachedClientWindow.getElement().event;};var t=e.type;if(t=="mousemove"){if(this._mouseIsDown&&e.button==0){this._onmouseevent_post(e,"mouseup");this._mouseIsDown=false;};}else {if(t=="mousedown"){this._mouseIsDown=true;}else if(t=="mouseup"){this._mouseIsDown=false;};if(t=="mouseup"&&!this._lastMouseDown&&((new Date).valueOf()-this._lastMouseEventDate)<250){this._onmouseevent_post(e,"mousedown");}else if(t=="dblclick"&&this._lastMouseEventType=="mouseup"&&((new Date).valueOf()-this._lastMouseEventDate)<250){this._onmouseevent_post(e,"click");};if(t=="mousedown"||t=="mouseup"||t=="click"||t=="dblclick"||t=="contextmenu"){this._lastMouseEventType=t;this._lastMouseEventDate=(new Date).valueOf();this._lastMouseDown=t=="mousedown";};};this._onmouseevent_post(e,t);};}else {proto._onmouseevent=function(e){var t=e.type;switch(t){case "DOMMouseScroll":t="mousewheel";break;case "click":case "dblclick":if(e.button!=QxMouseEvent.buttons.left){return;};};this._onmouseevent_post(e,t);};};proto._onmouseevent_post=function(e,t){var vEventObject,vDispatchTarget,vTarget,vActiveTarget,vRelatedTarget;switch(t){case "contextmenu":if(!this.getAllowClientContextMenu()){if(!(new QxClient).isMshtml()){e.preventDefault();};e.returnValue=false;};break;case "mousedown":this._onactivateevent(e);break;};vDispatchTarget=this.getCaptureWidget();vTarget=QxEventManager.getTargetObjectFromEvent(e);if(!isValidObject(vDispatchTarget)){vDispatchTarget=vActiveTarget=QxEventManager.getActiveTargetObject(null,vTarget);if(!isValidObject(vDispatchTarget)){return;};}else {vActiveTarget=QxEventManager.getActiveTargetObject(null,vTarget);};switch(t){case "mouseover":case "mouseout":vRelatedTarget=QxEventManager.getRelatedActiveTargetObjectFromEvent(e);if(vRelatedTarget==vActiveTarget){return;};};vEventObject=new QxMouseEvent(t,e,false,vTarget,vActiveTarget,vRelatedTarget);QxMouseEvent._storeEventState(vEventObject);if(t=="mousedown"){if(typeof QxPopupManager=="function"){(new QxPopupManager).update(vActiveTarget);};};vDispatchTarget.dispatchEvent(vEventObject);switch(t){case "mousedown":if(!vEventObject.getPropagationStopped()){if(typeof QxMenuManager=="function"){(new QxMenuManager).update();};};break;case "mouseover":if(typeof QxToolTipManager=="function"){(new QxToolTipManager).handleMouseOver(vEventObject);};break;case "mouseout":if(typeof QxToolTipManager=="function"){(new QxToolTipManager).handleMouseOut(vEventObject);};break;};if(typeof QxDragAndDropManager=="function"){(new QxDragAndDropManager).handleMouseEvent(vEventObject);};vEventObject.dispose();vEventObject=null;};proto._ondragevent=function(e){e.preventDefault();e.returnValue=false;e.preventBubble();};proto._onwindowblur=function(e){if(this._ignoreBlur){delete this._ignoreBlur;return;};this._allowFocus=true;if(typeof QxPopupManager=="function"){(new QxPopupManager).update();};if(typeof QxMenuManager=="function"){(new QxMenuManager).update();};if(typeof QxDragAndDropManager=="function"){(new QxDragAndDropManager).globalCancelDrag();};var vDoc=this._attachedClientWindow.getDocument();if(vDoc.hasEventListeners("blur")){vDoc.dispatchEvent(new QxEvent("blur"),true);};};proto._onwindowfocus=function(e){if(!this._allowFocus){return;};delete this._allowFocus;var vDoc=this._attachedClientWindow.getDocument();if(vDoc.hasEventListeners("focus")){vDoc.dispatchEvent(new QxEvent("focus"),true);};};proto._onwindowresize=function(e){this._attachedClientWindow.getDocument().dispatchEvent(new QxEvent("resize"),true);};proto._onactivateevent=function(e){var n=e.target||e.srcElement;while(n!=null&&n._QxWidget==null){n=n.parentNode;};if(n==null){return;};var o=n._QxWidget;var oactive=o;if(o){while(o!=null&&!o.canGetFocus()){o=o.getParent();};if(o){o.setFocused(true);};if(oactive!=o){(new QxApplication).setActiveWidget(oactive);};};this._ignoreBlur=true;};proto.dispose=function(){if(this.getDisposed()){return;};this.detachEvents();this._attachedClientWindow=null;this._lastMouseEventType=null;this._lastMouseDown=null;this._lastMouseEventDate=null;if(this._commands){for(var vHash in this._commands){this._commands[vHash].dispose();delete this._commands[vHash];};this._commands=null;};QxObject.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxFocusManager.js b/swat/style/qooxdoo/widgets/managers/QxFocusManager.js
new file mode 100644 (file)
index 0000000..13a2c52
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxFocusManager(vClientWindow){QxObject.call(this);if(isValid(vClientWindow)){this._attachedClientWindow=vClientWindow;};};QxFocusManager.extend(QxManager,"QxFocusManager");QxFocusManager.addProperty({name:"focusedWidget"});proto._attachedClientWindow=null;proto._modifyFocusedWidget=function(_b1,_b2,_b3,_b4){var cIn=typeof _b1=="object"&&_b1!=null;var cOut=typeof _b2=="object"&&_b2!=null;if(cIn&&typeof QxPopupManager=="function"){(new QxPopupManager).update(_b1);};if(cOut){var s=new QxFocusEvent("focusout",false);if(cIn){s.setRelatedTarget(_b1);};_b2.dispatchEvent(s);s.dispose();};if(cIn){var s=new QxFocusEvent("focusin",false);if(cOut){s.setRelatedTarget(_b2);};_b1.dispatchEvent(s);s.dispose();};if(cOut){_b2.setFocused(false,_b4);var s=new QxFocusEvent("blur",false);if(cIn){s.setRelatedTarget(_b1);};_b2.dispatchEvent(s);if(typeof QxToolTipManager=="function"){(new QxToolTipManager).handleBlur(s);};s.dispose();(new QxApplication).setActiveWidget(null);};if(cIn){_b1.setFocused(true,_b4);var s=new QxFocusEvent("focus",false);if(cOut){s.setRelatedTarget(_b2);};_b1.dispatchEvent(s);if(typeof QxToolTipManager=="function"){(new QxToolTipManager).handleFocus(s);};s.dispose();(new QxApplication).setActiveWidget(_b1);};return true;};proto._ontabeventname=(new QxClient).isMshtml()?"keydown":"keypress";proto._ontabevent=function(e){if(e.type!=this._ontabeventname||!this._attachedClientWindow){return;};var cd=this._attachedClientWindow.getDocument();var current=this.getFocusedWidget();if(!e.shiftKey){var next=current?this.getWidgetAfter(cd,current):this.getFirstWidget(cd);}else {var next=current?this.getWidgetBefore(cd,current):this.getLastWidget(cd);};if(next){next.setFocused(true);next._ontabfocus();};};proto.compareTabOrder=function(c1,c2){if(c1==c2){return 0;};var t1=c1.getTabIndex();var t2=c2.getTabIndex();if(t1!=t2){return t1-t2;};var y1=c1.getComputedPageBoxTop();var y2=c2.getComputedPageBoxTop();if(y1!=y2){return y1-y2;};var x1=c1.getComputedPageBoxLeft();var x2=c2.getComputedPageBoxLeft();if(x1!=x2){return x1-x2;};var z1=c1.getZIndex();var z2=c2.getZIndex();if(z1!=z2){return z1-z2;};return 0;};proto.getFirstWidget=function(oContainer){return this._getFirst(oContainer,null);};proto.getLastWidget=function(oContainer){return this._getLast(oContainer,null);};proto.getWidgetAfter=function(oContainer,oWidget){if(oContainer==oWidget){return this.getFirstWidget(oContainer);};if(oWidget.getAnonymous()){oWidget=oWidget.getParent();};if(oWidget==null){return[];};var all=[];this._getAllAfter(oContainer,oWidget,all);all.sort(this.compareTabOrder);return all.length>0?all[0]:this.getFirstWidget(oContainer);};proto.getWidgetBefore=function(oContainer,oWidget){if(oContainer==oWidget){return this.getLastWidget(oContainer);};if(oWidget.getAnonymous()){oWidget=oWidget.getParent();};if(oWidget==null){return[];};var all=[];this._getAllBefore(oContainer,oWidget,all);all.sort(this.compareTabOrder);var l=all.length;return l>0?all[l-1]:this.getLastWidget(oContainer);};proto._getAllAfter=function(oCont,oComp,oArray){var cs=oCont.getChildren();var l=cs.length;for(var i=0;i<l;i++){if(!(cs[i]instanceof QxWidget)){continue;};if(cs[i].canGetFocus()&&cs[i].getTabIndex()>0&&this.compareTabOrder(oComp,cs[i])<0){oArray.push(cs[i]);};if(!cs[i].isFocusRoot()){this._getAllAfter(cs[i],oComp,oArray);};};};proto._getAllBefore=function(oCont,oComp,oArray){var cs=oCont.getChildren();var l=cs.length;for(var i=0;i<l;i++){if(!(cs[i]instanceof QxWidget)){continue;};if(cs[i].canGetFocus()&&cs[i].getTabIndex()>0&&this.compareTabOrder(oComp,cs[i])>0){oArray.push(cs[i]);};if(!cs[i].isFocusRoot()){this._getAllBefore(cs[i],oComp,oArray);};};};proto._getFirst=function(oCont,oFirst){var cs=oCont.getChildren();var l=cs.length;for(var i=0;i<l;i++){if(!(cs[i]instanceof QxWidget)){continue;};if(cs[i].canGetFocus()&&cs[i].getTabIndex()>0){if(oFirst==null||this.compareTabOrder(cs[i],oFirst)<0){oFirst=cs[i];};};if(!cs[i].isFocusRoot()){oFirst=this._getFirst(cs[i],oFirst);};};return oFirst;};proto._getLast=function(oCont,oLast){var cs=oCont.getChildren();var l=cs.length;for(var i=0;i<l;i++){if(!(cs[i]instanceof QxWidget)){continue;};if(cs[i].canGetFocus()&&cs[i].getTabIndex()>0){if(oLast==null||this.compareTabOrder(cs[i],oLast)>0){oLast=cs[i];};};if(! cs[i].isFocusRoot()){oLast=this._getLast(cs[i],oLast);};};return oLast;};proto.dispose=function(){if(this.getDisposed()){return;};this._attachedClientWindow=null;QxObject.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxImageManager.js b/swat/style/qooxdoo/widgets/managers/QxImageManager.js
new file mode 100644 (file)
index 0000000..233a901
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxImageManager(){if(QxImageManager._instance){return QxImageManager._instance;};this.addIconTheme("Crystal SVG","crystalsvg");this.addIconTheme("Nuvola","nuvola");this.addWidgetTheme("Windows","windows");QxManager.call(this);QxImageManager._instance=this;};QxImageManager.extend(QxManager,"QxImageManager");QxImageManager.addProperty({ name : "path", type : String, defaultValue : "../../images/" });QxImageManager.addProperty({name:"iconTheme",type:String,defaultValue:"crystalsvg"});QxImageManager.addProperty({name:"widgetTheme",type:String,defaultValue:"windows"});proto._iconThemes={};proto._widgetThemes={};proto.getBlank=function(){return this.getPath()+"core/blank.gif";};proto.buildURI=function(vPath){switch(vPath.charAt(0)){case "/":case ".":return vPath;default:switch(vPath.substring(0,vPath.indexOf(":"))){case "http":case "https":case "file":return vPath;};if(vPath.indexOf("icons")==0){return this.getPath() + "icons/" + this.getIconTheme() + "/" + vPath.substring(6);}else if(vPath.indexOf("widgets")==0){return this.getPath() + "widgets/" + this.getWidgetTheme() + "/" + vPath.substring(8);};return this.getPath()+vPath;};};proto._updateImages=function(){var o;for(var i in this._objects){o=this._objects[i];o.setPreloader(new QxImagePreloader(this.buildURI(o.getSource())));};return true;};proto._modifyPath=function(_b1,_b2,_b3,_b4){return this._updateImages();};proto._checkIconTheme=function(_b1){if(this._iconThemes[_b1]){return _b1;};for(var i in this._iconThemes){if(this._iconThemes[i].title==_b1){return i;};};throw new Error("Invalid icon theme id/title:"+_b1+"!");};proto._modifyIconTheme=function(_b1,_b2,_b3,_b4){return this._updateImages();};proto.addIconTheme=function(vHash,vTitle,vId,vPath){if(isInvalidString(vTitle)){throw new Error("Please define the title of the new icon theme.");};if(isInvalidString(vId)){var vId=vTitle.toLowerCase();};if(this._iconThemes[vId]){throw new Error("Theme is already defined:"+vId);};this._iconThemes[vId]={title:vTitle,path:vPath?vPath:vId};};proto.removeIconTheme=function(vHash,vTitle,vId){if(isInvalidString(vTitle)){throw new Error("Please define the title of the icon theme which should be removed.");};if(isInvalidString(vId)){var vId=vTitle.toLowerCase();};if(this.getDefaultIconTheme()==vId){throw new Error("Could not remove default theme "+this.getDefaultIconTheme()+"!");};if(this.getIconTheme()==vId){this.resetIconTheme();};delete this._iconThemes[vId];};proto._checkWidgetTheme=function(_b1){if(this._widgetThemes[_b1]){return _b1;};for(var i in this._widgetThemes){if(this._widgetThemes[i].title==_b1){return i;};};throw new Error("Invalid widget theme id/title:"+_b1+"!");};proto._modifyWidgetTheme=function(_b1,_b2,_b3,_b4){return this._updateImages();};proto.addWidgetTheme=function(vHash,vTitle,vId,vPath){if(isInvalidString(vTitle)){throw new Error("Please define the title of the new widget theme.");};if(isInvalidString(vId)){var vId=vTitle.toLowerCase();};if(this._widgetThemes[vId]){throw new Error("Theme is already defined:"+vId);};this._widgetThemes[vId]={title:vTitle,path:vPath?vPath:vId};};proto.removeWidgetTheme=function(vHash,vTitle,vId){if(isInvalidString(vTitle)){throw new Error("Please define the title of the widget theme which should be removed.");};if(isInvalidString(vId)){var vId=vTitle.toLowerCase();};if(this.getDefaultWidgetTheme()==vId){throw new Error("Could not remove default theme "+this.getDefaultWidgetTheme()+"!");};if(this.getWidgetTheme()==vId){this.resetWidgetTheme();};delete this._widgetThemes[vId];};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxImagePreloaderManager.js b/swat/style/qooxdoo/widgets/managers/QxImagePreloaderManager.js
new file mode 100644 (file)
index 0000000..1d25499
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxImagePreloaderManager(){if(QxImagePreloaderManager._instance){return QxImagePreloaderManager._instance;};QxManager.call(this);QxImagePreloaderManager._instance=this;};QxImagePreloaderManager.extend(QxManager,"QxImagePreloaderManager");proto.add=function(oObject){this._objects[oObject.getUri()]=oObject;};proto.remove=function(oObject){delete this._objects[oObject.getUri()];};proto.has=function(oUri){return this._objects[String(oUri)]!=null;};proto.get=function(oUri){return this._objects[String(oUri)];};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxManager.js b/swat/style/qooxdoo/widgets/managers/QxManager.js
new file mode 100644 (file)
index 0000000..6fd02f7
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxManager(){QxTarget.call(this);this._objects={};};QxManager.extend(QxTarget,"QxManager");proto.add=function(oObject){var h=oObject.toHash();if(this._objects[h]){this.debug("Already known:"+oObject);return false;};this._objects[h]=oObject;return true;};proto.remove=function(oObject){delete this._objects[oObject.toHash()];return true;};proto.has=function(oObject){return this._objects[oObject.toHash()]!=null;};proto.get=function(oObject){return this._objects[oObject.toHash()];};proto.dispose=function(){if(this.getDisposed()){return;};if(typeof this._objects!="undefined"){for(var i in this._objects){if(typeof this._objects[i]=="object")this._objects[i].dispose();delete this._objects[i];};delete this._objects;};QxTarget.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxMenuManager.js b/swat/style/qooxdoo/widgets/managers/QxMenuManager.js
new file mode 100644 (file)
index 0000000..c5ca518
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxMenuManager(){if(QxMenuManager._instance){return QxMenuManager._instance;};QxManager.call(this);QxMenuManager._instance=this;};QxMenuManager.extend(QxManager,"QxMenuManager");proto.update=function(oTarget){var m;for(var vHash in this._objects){m=this._objects[vHash];if(!m.getAutoHide()){continue;};m.setVisible(false);};};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxPopupManager.js b/swat/style/qooxdoo/widgets/managers/QxPopupManager.js
new file mode 100644 (file)
index 0000000..f7fb74e
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxPopupManager(){if(QxPopupManager._instance){return QxPopupManager._instance;};QxManager.call(this);QxPopupManager._instance=this;};QxPopupManager.extend(QxManager,"QxPopupManager");proto.update=function(oTarget){var p;for(var vHash in this._objects){p=this._objects[vHash];if(!p.getAutoHide()){continue;};if(!oTarget||p!=oTarget&&(!p.contains(oTarget)||p.getVisible())&&new Date-p.getShowTimeStamp()>100){p.setVisible(false);};};};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxRadioButtonManager.js b/swat/style/qooxdoo/widgets/managers/QxRadioButtonManager.js
new file mode 100644 (file)
index 0000000..a6eef53
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxRadioButtonManager(vName,vMembers){QxTarget.call(this);this._items=[];this._managerId=this.classname+(++QxRadioButtonManager._managerCount);if(isValid(vName)){this.setName(vName);};if(isValid(vMembers)){QxRadioButtonManager.prototype.add.apply(this,vMembers);};};QxRadioButtonManager._managerCount=0;QxRadioButtonManager.extend(QxManager,"QxRadioButtonManager");QxRadioButtonManager.addProperty({name:"selected",type:Object});QxRadioButtonManager.addProperty({name:"name",type:String});proto.getItems=function(){return this._items;};proto.add=function(){var a=arguments;var l=a.length;var lastOne=a[l-1];if(lastOne instanceof QxWidget){var _b4;}else {var _b4=lastOne;l--;};var oRadioButton;for(var i=0;i<l;i++){oRadioButton=a[i];if(this._items.contains(oRadioButton)){return;};this._items.push(oRadioButton);oRadioButton.setGroup(this,_b4);if(oRadioButton.getChecked()){this.setSelected(oRadioButton,_b4);};oRadioButton.setEnabled(this.getEnabled(),_b4);oRadioButton.setName(this.getName(),_b4);};};proto.remove=function(oRadioButton,_b4){this._items.remove(oRadioButton);oRadioButton.setGroup(null,_b4);if(oRadioButton.getChecked()){this.setSelected(null);};};proto._modifySelected=function(_b1,_b2,_b3,_b4){if(_b2&&_b2.getChecked()){_b2.setChecked(false,_b4);};if(_b1&&!_b1.getChecked()){_b1.setChecked(true,_b4);};return true;};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){for(var i=0;i<this._items.length;i++){this._items[i].setEnabled(_b1,_b4);};return true;};proto._modifyName=function(_b1,_b2,_b3,_b4){for(var i=0;i<this._items.length;i++){this._items[i].setName(_b1,_b4);};return true;};proto.selectNext=function(oRadioButton){var index=this._items.indexOf(oRadioButton);if(index==-1)return;var i=0;var l=this._items.length;index=(index+1)% l;while(i<l&&! this._items[index].getEnabled()){index=(index+1)% l;i++;};this._selectByIndex(index);};proto.selectPrevious=function(oRadioButton){var index=this._items.indexOf(oRadioButton);if(index==-1)return;var i=0;var l=this._items.length;index=(index-1+l)% l;while(i<l&&! this._items[index].getEnabled()){index=(index-1+l)% l;i++;};this._selectByIndex(index);};proto._selectByIndex=function(index){if(this._items[index].getEnabled()){this.setSelected(this._items[index]);this._items[index].setFocused(true);};};proto.dispose=function(){if(this._disposed){return;};if(this._items){for(var i;i<this._items.length;i++){this._items[i].dispose();delete this._items[i];};};delete this._items;delete this._managerId;return QxTarget.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxRangeManager.js b/swat/style/qooxdoo/widgets/managers/QxRangeManager.js
new file mode 100644 (file)
index 0000000..c9757cb
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxRangeManager(){QxTarget.call(this);};QxRangeManager.extend(QxManager,"QxRangeManager");QxRangeManager.addProperty({name:"value",type:Number,defaultValue:0});QxRangeManager.addProperty({name:"min",type:Number,defaultValue:0});QxRangeManager.addProperty({name:"max",type:Number,defaultValue:100});proto._checkValue=function(_b1){return Math.max(this.getMin(),Math.min(this.getMax(),Math.floor(_b1)));};proto._modifyValue=function(_b1,_b2,_b3,_b4){if(this.hasEventListeners("change")){this.dispatchEvent(new QxEvent("change"));};return true;};proto._checkMax=function(_b1){return Math.floor(_b1);};proto._modifyMax=function(_b1,_b2,_b3,_b4){this.setValue(Math.min(this.getValue(),_b1));if(this.hasEventListeners("change")){this.dispatchEvent(new QxEvent("change"));};return true;};proto._checkMin=function(_b1){return Math.floor(_b1);};proto._modifyMin=function(_b1,_b2,_b3,_b4){this.setValue(Math.max(this.getValue(),_b1));if(this.hasEventListeners("change")){this.dispatchEvent(new QxEvent("change"));};return true;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxSelectionManager.js b/swat/style/qooxdoo/widgets/managers/QxSelectionManager.js
new file mode 100644 (file)
index 0000000..9432d47
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxSelectionManager(vBoundedWidget){QxTarget.call(this);this._j5=new QxSelectionStorage();if(isValid(vBoundedWidget)){this.setBoundedWidget(vBoundedWidget);};};QxSelectionManager.extend(QxManager,"QxSelectionManager");QxSelectionManager.addProperty({name:"boundedWidget",type:Object});QxSelectionManager.addProperty({name:"multiSelection",type:Boolean,defaultValue:true});QxSelectionManager.addProperty({name:"dragSelection",type:Boolean,defaultValue:true});QxSelectionManager.addProperty({name:"canDeselect",type:Boolean,defaultValue:true});QxSelectionManager.addProperty({name:"fireChange",type:Boolean,defaultValue:true});QxSelectionManager.addProperty({name:"anchorItem",type:Object});QxSelectionManager.addProperty({name:"leadItem",type:Object});QxSelectionManager.addProperty({name:"multiColumnSupport",type:Boolean,defaultValue:false});proto._modifyAnchorItem=function(_b1,_b2,_b3,_b4){if(_b2){this.renderItemAnchorState(_b2,false);};if(_b1){this.renderItemAnchorState(_b1,true);};return true;};proto._modifyLeadItem=function(_b1,_b2,_b3,_b4){if(_b2){this._j10(_b2,false);};if(_b1){this._j10(_b1,true);};return true;};proto.getFirst=function(){var vItem=this.getBoundedWidget().getFirstChild();return this.getItemEnabled(vItem)?vItem:this.getNext(vItem);};proto.getLast=function(){var vItem=this.getBoundedWidget().getLastChild();return this.getItemEnabled(vItem)?vItem:this.getPrevious(vItem);};proto.getItems=function(){return this.getBoundedWidget().getChildren();};proto.getNextSibling=function(vItem){return vItem.getNextSibling();};proto.getPreviousSibling=function(vItem){return vItem.getPreviousSibling();};proto.getNext=function(vItem){while(vItem){vItem=this.getNextSibling(vItem);if(!vItem){break;};if(this.getItemEnabled(vItem)){return vItem;};};return null;};proto.getPrevious=function(vItem){while(vItem){vItem=this.getPreviousSibling(vItem);if(!vItem){break;};if(this.getItemEnabled(vItem)){return vItem;};};return null;};proto.isBefore=function(vItem1,vItem2){var cs=this.getItems();return cs.indexOf(vItem1)<cs.indexOf(vItem2);};proto.isEqual=function(vItem1,vItem2){return vItem1==vItem2;};proto.getItemHashCode=function(vItem){return vItem.toHash();};proto.scrollItemIntoView=function(vItem){vItem.scrollIntoView();};proto.getItemLeft=function(vItem){return vItem.getOffsetLeft();};proto.getItemTop=function(vItem){return vItem.getOffsetTop();};proto.getItemWidth=function(vItem){return vItem.getOffsetWidth();};proto.getItemHeight=function(vItem){return vItem.getOffsetHeight();};proto.getItemEnabled=function(vItem){return vItem.getEnabled();};proto.getItemClassName=function(vItem){return vItem.getCssClassName();};proto.setItemClassName=function(vItem,vClassName){return vItem.setCssClassName(vClassName);};proto.getItemBaseClassName=function(vItem){return vItem.classname;};proto._j3=function(vItem,vState,vIsState){var c=this.getItemClassName(vItem);var n=this.getItemBaseClassName(vItem)+"-"+vState;this.setItemClassName(vItem,vIsState?c.add(n," "):c.remove(n," "));};proto._j9=function(vItem,vIsSelected){this._j3(vItem,"Selected",vIsSelected);};proto.renderItemAnchorState=function(vItem,vIsAnchor){this._j3(vItem,"Anchor",vIsAnchor);};proto._j10=function(vItem,vIsLead){this._j3(vItem,"Lead",vIsLead);};proto.getItemSelected=function(vItem){return this._j5.contains(vItem);};proto.setItemSelected=function(vItem,vSelected){var hc=this.getItemHashCode(vItem);switch(this.getMultiSelection()){case true:if(!this.getItemEnabled(vItem)){return;};if(this.getItemSelected(vItem)==vSelected){return;};this._j9(vItem,vSelected);vSelected?this._j5.add(vItem):this._j5.remove(vItem);this._j1();break;case false:var item0=this.getSelectedItems()[0];if(vSelected){var old=item0;if(this.isEqual(vItem,old)){return;};if(old!=null){this._j9(old,false);};this._j9(vItem,true);this._j5.removeAll();this._j5.add(vItem);this._j1();}else {if(!this.isEqual(item0,vItem)){this._j9(vItem,false);this._j5.removeAll();this._j1();};};break;};};proto.getSelectedItems=function(){return this._j5.toArray();};proto.getSelectedItem=function(){return this._j5.getFirst();};proto.setSelectedItems=function(vItems){var oldVal=this._getChangeValue();var oldFireChange=this.getFireChange();this.setFireChange(false);this._j7();var vItem;var vItemLength=vItems.length;for(var i=0;i<vItemLength;i++){vItem=vItems[i];if(!this.getItemEnabled(vItem)){continue;};this._j5.add(vItem);this._j9(vItem,true);};this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal)){this._j1();};};proto.setSelectedItem=function(vItem){if(!vItem){return;};if(!this.getItemEnabled(vItem)){return;};var oldVal=this._getChangeValue();var oldFireChange=this.getFireChange();this.setFireChange(false);this._j7();this._j5.add(vItem);this._j9(vItem,true);this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal)){this._j1();};};proto.selectAll=function(){var oldVal=this._getChangeValue();var oldFireChange=this.getFireChange();this.setFireChange(false);this._selectAll();this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal)){this._j1();};};proto._selectAll=function(){if(!this.getMultiSelection()){return;};var vItem;var vItems=this.getItems();var vItemsLength=vItems.length;this._j5.removeAll();for(var i=0;i<vItemsLength;i++){vItem=vItems[i];if(!this.getItemEnabled(vItem)){continue;};this._j5.add(vItem);this._j9(vItem,true);};return true;};proto.deselectAll=function(){var oldVal=this._getChangeValue();var oldFireChange=this.getFireChange();this.setFireChange(false);this._j7();this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal))this._j1();};proto._j7=function(){var items=this._j5.toArray();for(var i=0;i<items.length;i++){this._j9(items[i],false);};this._j5.removeAll();return true;};proto.selectItemRange=function(vItem1,vItem2){var oldVal=this._getChangeValue();var oldFireChange=this.getFireChange();this.setFireChange(false);this._j2(vItem1,vItem2,true);this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal)){this._j1();};};proto._j2=function(vItem1,vItem2,vDeselect){if(this.isBefore(vItem2,vItem1)){return this._j2(vItem2,vItem1,vDeselect);};if(vDeselect){this._j7();};var vCurrentItem=vItem1;while(vCurrentItem!=null){if(this.getItemEnabled(vCurrentItem)){this._j5.add(vCurrentItem);this._j9(vCurrentItem,true);};if(this.isEqual(vCurrentItem,vItem2)){break;};vCurrentItem=this.getNext(vCurrentItem);};return true;};proto._j6=function(vItem1,vItem2){if(this.isBefore(vItem2,vItem1)){return this._j6(vItem2,vItem1);};var vCurrentItem=vItem1;while(vCurrentItem!=null){this._j5.remove(vCurrentItem);this._j9(vCurrentItem,false);if(this.isEqual(vCurrentItem,vItem2)){break;};vCurrentItem=this.getNext(vCurrentItem);};};proto._j4=false;proto.handleMouseDown=function(vItem,e){if(e.isNotLeftButton()&&e.isNotRightButton()){return;};if(e.isRightButton()&&this.getItemSelected(vItem)){return;};if(e.getShiftKey()||this.getDragSelection()||(!this.getItemSelected(vItem)&&!e.getCtrlKey())){this._onmouseevent(vItem,e);}else {this.setLeadItem(vItem);};this._j4=this.getDragSelection();if(this._j4){this.getBoundedWidget().addEventListener("mouseup",this._ondragup,this);this.getBoundedWidget().setCapture(true);};};proto._ondragup=function(e){this.getBoundedWidget().removeEventListener("mouseup",this._ondragup,this);this.getBoundedWidget().setCapture(false);this._j4=false;};proto.handleMouseUp=function(vItem,e){if(e.isNotLeftButton()){return;};if(e.getCtrlKey()||this.getItemSelected(vItem)&&!this._j4){this._onmouseevent(vItem,e);};if(this._j4){this._j4=false;this.getBoundedWidget().setCapture(false);};};proto.handleMouseOver=function(oItem,e){if(! this.getDragSelection()||!this._j4){return;};this._onmouseevent(oItem,e,true);};proto.handleClick=function(vItem,e){};proto.handleDblClick=function(vItem,e){};proto._onmouseevent=function(oItem,e,bOver){if(!this.getItemEnabled(oItem)){return;};var oldVal=this._getChangeValue();var oldLead=this.getLeadItem();var oldFireChange=this.getFireChange();this.setFireChange(false);var selectedItems=this.getSelectedItems();var selectedCount=selectedItems.length;this.setLeadItem(oItem);var currentAnchorItem=this.getAnchorItem();var vCtrlKey=e.getCtrlKey();var vShiftKey=e.getShiftKey();if(!currentAnchorItem||selectedCount==0||(vCtrlKey&&!vShiftKey&&this.getMultiSelection()&&!this.getDragSelection())){this.setAnchorItem(oItem);currentAnchorItem=oItem;};if((!vCtrlKey&&!vShiftKey&&!this._j4||!this.getMultiSelection())){if(!this.getItemEnabled(oItem)){return;};this._j7();this.setAnchorItem(oItem);if(this._j4){this.scrollItemIntoView((this.getBoundedWidget().getScrollTop()>(this.getItemTop(oItem)-1)?this.getPrevious(oItem):this.getNext(oItem))||oItem);};if(!this.getItemSelected(oItem)){this._j9(oItem,true);};this._j5.add(oItem);this._addToCurrentSelection=true;}else if(this._j4&&bOver){if(oldLead){this._j6(currentAnchorItem,oldLead);};if(this.isBefore(currentAnchorItem,oItem)){if(this._addToCurrentSelection){this._j2(currentAnchorItem,oItem,false);}else {this._j6(currentAnchorItem,oItem);};}else {if(this._addToCurrentSelection){this._j2(oItem,currentAnchorItem,false);}else {this._j6(oItem,currentAnchorItem);};};this.scrollItemIntoView((this.getBoundedWidget().getScrollTop()>(this.getItemTop(oItem)-1)?this.getPrevious(oItem):this.getNext(oItem))||oItem);}else if(this.getMultiSelection()&&vCtrlKey&&!vShiftKey){if(!this._j4){this._addToCurrentSelection=!(this.getCanDeselect()&&this.getItemSelected(oItem));};this.setItemSelected(oItem,this._addToCurrentSelection);this.setAnchorItem(oItem);}else if(this.getMultiSelection()&&vCtrlKey&&vShiftKey){if(!this._j4){this._addToCurrentSelection=!(this.getCanDeselect()&&this.getItemSelected(oItem));};if(this._addToCurrentSelection){this._j2(currentAnchorItem,oItem,false);}else {this._j6(currentAnchorItem,oItem);};}else if(this.getMultiSelection()&&!vCtrlKey&&vShiftKey){if(this.getCanDeselect()){this._j2(currentAnchorItem,oItem,true);}else {if(oldLead){this._j6(currentAnchorItem,oldLead);};this._j2(currentAnchorItem,oItem,false);};};this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal)){this._j1();};};proto.handleKeyDown=function(e){var oldVal=this._getChangeValue();var oldFireChange=this.getFireChange();this.setFireChange(false);if(e.getKeyCode()==65&&e.getCtrlKey()){if(this.getMultiSelection()){this._selectAll();this.setLeadItem(this.getFirst());};}else {var aIndex=this.getAnchorItem();var itemToSelect=this.getItemToSelect(e);if(itemToSelect&&this.getItemEnabled(itemToSelect)){this.setLeadItem(itemToSelect);this.scrollItemIntoView(itemToSelect);if(e.getShiftKey()&&this.getMultiSelection()){if(aIndex==null){this.setAnchorItem(itemToSelect);};this._j2(this.getAnchorItem(),itemToSelect,true);}else if(!e.getCtrlKey()){this._j7();this._j9(itemToSelect,true);this._j5.add(itemToSelect);this.setAnchorItem(itemToSelect);};};};e.setPreventDefault(true);e.setPropagationStopped(true);this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal)){this._j1();};};proto.getItemToSelect=function(oKeyboardEvent){var e=oKeyboardEvent;if(e.getAltKey()){return null;};switch(e.getKeyCode()){case QxKeyEvent.keys.home:return this.getHome(this.getLeadItem());case QxKeyEvent.keys.end:return this.getEnd(this.getLeadItem());case QxKeyEvent.keys.down:return this.getDown(this.getLeadItem());case QxKeyEvent.keys.up:return this.getUp(this.getLeadItem());case QxKeyEvent.keys.left:return this.getLeft(this.getLeadItem());case QxKeyEvent.keys.right:return this.getRight(this.getLeadItem());case QxKeyEvent.keys.pageup:return this.getPageUp(this.getLeadItem());case QxKeyEvent.keys.pagedown:return this.getPageDown(this.getLeadItem());};return null;};proto._j1=function(){if(!this.getFireChange()){return;};this.dispatchEvent(new QxDataEvent("changeSelection",this.getSelectedItems()));};proto._j8=function(sOldValue){return sOldValue!=this._getChangeValue();};proto._getChangeValue=function(){return this._j5.getChangeValue();};proto.getHome=function(){return this.getFirst();};proto.getEnd=function(){return this.getLast();};proto.getDown=function(vItem){if(!vItem){return this.getFirst();};return this.getMultiColumnSupport()?(this.getUnder(vItem)||this.getLast()):this.getNext(vItem);};proto.getUp=function(vItem){if(!vItem){return this.getLast();};return this.getMultiColumnSupport()?(this.getAbove(vItem)||this.getFirst()):this.getPrevious(vItem);};proto.getLeft=function(vItem){if(!this.getMultiColumnSupport()){return null;};return !vItem?this.getLast():this.getPrevious(vItem);};proto.getRight=function(vItem){if(!this.getMultiColumnSupport()){return null;};return !vItem?this.getFirst():this.getNext(vItem);};proto.getAbove=function(vItem){throw new Error("getAbove():Not implemented yet");};proto.getUnder=function(vItem){throw new Error("getUnder():Not implemented yet");};proto.getPageUp=function(vItem){var vBound=this.getBoundedWidget();var vParentScrollTop=vBound.getScrollTop();var newItem;var nextItem=this.getLeadItem();if(!nextItem){nextItem=this.getFirst();};var tryLoops=0;while(tryLoops<2){while(nextItem&&(this.getItemTop(nextItem)-this.getItemHeight(nextItem)>=vParentScrollTop)){newItem=this.getUp(nextItem);if(newItem==null){break;};nextItem=newItem;};if(nextItem==null){tryLoops=2;break;};if(nextItem!=this.getLeadItem()){break;};vBound.setScrollTop(vParentScrollTop-vBound.getClientHeight()-this.getItemHeight(nextItem));vParentScrollTop=vBound.getScrollTop();tryLoops++;};return nextItem;};proto.getPageDown=function(vItem){var vBound=this.getBoundedWidget();var vParentScrollTop=vBound.getScrollTop();var vParentClientHeight=vBound.getClientHeight();var newItem;var nextItem=this.getLeadItem();if(!nextItem){nextItem=this.getFirst();};var tryLoops=0;while(tryLoops<2){while(nextItem&&((this.getItemTop(nextItem)+(2*this.getItemHeight(nextItem)))<=(vParentScrollTop+vParentClientHeight))){newItem=this.getDown(nextItem);if(newItem==null){break;};nextItem=newItem;};if(nextItem==null){tryLoops=2;break;};if(nextItem!=this.getLeadItem()){break;};vBound.setScrollTop(vParentScrollTop+vParentClientHeight-(2*this.getItemHeight(nextItem)));vParentScrollTop=vBound.getScrollTop();tryLoops++;};return nextItem;};proto.dispose=function(){if(this.getDisposed()){return;};if(this._j5){this._j5.dispose();this._j5=null;};return QxTarget.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxTimerManager.js b/swat/style/qooxdoo/widgets/managers/QxTimerManager.js
new file mode 100644 (file)
index 0000000..dfd5fe2
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTimerManager(){if(QxTimerManager._instance){return QxTimerManager._instance;};QxManager.call(this);QxTimerManager._instance=this;};QxTimerManager.extend(QxManager,"QxTimerManager");
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxToolTipManager.js b/swat/style/qooxdoo/widgets/managers/QxToolTipManager.js
new file mode 100644 (file)
index 0000000..1515fd3
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxToolTipManager(){if(QxToolTipManager._instance)return QxToolTipManager._instance;QxManager.call(this);QxToolTipManager._instance=this;};QxToolTipManager.extend(QxManager,"QxToolTipManager");QxToolTipManager.addProperty({name:"currentToolTip"});proto._modifyCurrentToolTip=function(_b1,_b2,_b3,_b4){if(_b2&&_b2.contains(_b1)){return;};if(_b2){_b2.setVisible(false);_b2._stopShowTimer();_b2._stopHideTimer();};if(_b1){_b1._startShowTimer();};return true;};proto.handleMouseOver=function(e){var to=e.getTarget();var c=to;var tt;if(!(c instanceof QxWidget)&&c.nodeType==1){c=QxEventManager.getTargetObject(c);};while(c!=null&&!(tt=c.getToolTip())){c=c.getParent();};if(tt!=null){tt.setBoundToWidget(c);};this.setCurrentToolTip(tt);};proto.handleMouseOut=function(e){var to=e.getRelatedTarget();var from=e.getTarget();var cur=this.getCurrentToolTip();if(cur&&(to==cur||cur.contains(to))){return;};if(to&&from.contains(to)){return;};if(cur&&!to){this.setCurrentToolTip(null);};};proto.handleFocus=function(e){var c=e.getTarget();var tt=c.getToolTip();if(tt!=null){tt.setBoundToWidget(c);this.setCurrentToolTip(tt);};};proto.handleBlur=function(e){var c=e.getTarget();if(!c){return;};var tt=c.getToolTip();var cur=this.getCurrentToolTip();if(cur&&cur==tt){this.setCurrentToolTip(null);};};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/managers/QxWindowManager.js b/swat/style/qooxdoo/widgets/managers/QxWindowManager.js
new file mode 100644 (file)
index 0000000..c7a0f3b
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxWindowManager(){if(QxWindowManager._instance){return QxWindowManager._instance;};QxManager.call(this);QxWindowManager._instance=this;};QxWindowManager.extend(QxManager,"QxWindowManager");QxWindowManager.addProperty({name:"activeWindow",type:Object});proto.update=function(oTarget){var m;for(var vHash in this._objects){m=this._objects[vHash];if(!m.getAutoHide()){continue;};m.setVisible(false);};};proto._modifyActiveWindow=function(_b1,_b2,_b3,_b4){(new QxPopupManager).update();if(_b1){_b1.setActive(true,_b4);};if(_b2){_b2.setActive(false,_b4);};this.sort();if(_b2&&_b2.getModal()){_b2.getTopLevelWidget().release(_b2);};if(_b1&&_b1.getModal()){_b1.getTopLevelWidget().block(_b1);};return true;};proto.compareWindows=function(w1,w2){switch((new QxWindowManager).getActiveWindow()){case w1:return 1;case w2:return-1;};return w1.getZIndex()-w2.getZIndex();};proto.sort=function(oObject){var a=[];for(var i in this._objects){a.push(this._objects[i]);};a.sort(this.compareWindows);var minz=QxWindow.prototype._minZindex;for(var l=a.length,i=0;i<l;i++){a[i].setZIndex(minz+i);};};proto.add=function(oObject){QxManager.prototype.add.call(this,oObject);this.setActiveWindow(oObject);};proto.remove=function(oObject){QxManager.prototype.remove.call(this,oObject);if(this.getActiveWindow()==oObject){var a=[];for(var i in this._objects){a.push(this._objects[i]);};var l=a.length;if(l==0){oObject.getTopLevelWidget().release(oObject);}else if(l==1){this.setActiveWindow(a[0]);}else if(l>1){a.sort(this.compareWindows);this.setActiveWindow(a[l-1]);};};};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/qooxdoo.js b/swat/style/qooxdoo/widgets/qooxdoo.js
new file mode 100644 (file)
index 0000000..4aee0ad
--- /dev/null
@@ -0,0 +1 @@
+function isHashEmpty(h){for(var s in h){return false;};return true;};function copyCreateHash(h){if(h){var n={};for(var k in h){n[k]=h[k];};return n;}else {return{};};};function copyCreateArray(a){return a&&a.length>0?a.copy():[];};function set(){var r={};for(var i=0,a=arguments,l=a.length;i<l;i++){r[a[i]]=true;};return r;};function isValid(v){switch(typeof v){case "undefined":return false;case "object":return v!=null;case "string":return v!="";case "number":return !isNaN(v);case "function":case "boolean":return true;};return false;};function isInvalid(v){switch(typeof v){case "undefined":return true;case "object":return v==null;case "string":return v=="";case "number":return isNaN(v);case "function":case "boolean":return false;};return true;};function isValidNumber(v){return typeof v=="number"&&!isNaN(v);};function isInvalidNumber(v){return typeof v!="number"||isNaN(v);};function isValidString(v){return typeof v=="string"&&v!="";};function isInvalidString(v){return typeof v!="string"||v=="";};function isValidArray(v){return typeof v=="object"&&v!=null&&typeof v.push=="function";};function isInvalidArray(v){return typeof v!="object"||v==null||typeof v.push!="function";};function isValidObject(v){return typeof v=="object"&&v!=null&&typeof v.push!="function";};function isInvalidObject(v){return typeof v!="object"||v==null||typeof v.push=="function";};function isValidFunction(v){return typeof v=="function";};function isInvalidFunction(v){return typeof v=="function";};Number.prototype.limit=function(vmin,vmax){if(vmax!=null&&typeof vmax=="number"&&this>vmax){return vmax;}else if(vmin!=null&&typeof vmin=="number"&&this<vmin){return vmin;}else {return Number(this);};};Number.prototype.inrange=function(vmin,vmax){return this>vmin&&this<vmax;};Array.prototype.indexOf=function(o){for(var i=0;i<this.length;i++){if(this[i]==o){return i;};};return-1;};Array.prototype.lastIndexOf=function(o){for(var i=this.length-1;i>=0;i--){if(this[i]==o){return i;};};return-1;};Array.prototype.contains=function(o){return this.indexOf(o)!=-1;};Array.prototype.remove=function(o){var i=this.indexOf(o);if(i!=-1){this.splice(i,1);};};Array.prototype.insertAt=function(o,i){this.splice(i,0,o);};Array.prototype.insertBefore=function(o,o2){var i=this.indexOf(o2);if(i==-1){this.push(o);}else{this.splice(i,0,o);};};Array.prototype.insertAfter=function(o,o2){var i=this.indexOf(o2);if(i==-1||i==(this.length-1)){this.push(o);}else{this.splice(i+1,0,o);};};Array.prototype.removeAt=function(i){this.splice(i,1);};Array.prototype.remove=function(o){var i=this.indexOf(o);if(i!=-1){this.splice(i,1);};};Array.prototype.copy=function(){return this.concat();};Array.prototype.getLast=function(){return this[this.length-1];};Array.prototype.getFirst=function(){return this[0];};String.prototype.contains=function(s){return this.indexOf(s)!=-1;};String.prototype.toFirstUp=function(){return this.charAt(0).toUpperCase()+this.substr(1);};String.prototype.toCamelCase=function(){var vArr=this.split('-');if(vArr.length==1){return vArr[0];};var ret=vArr[0];var s;for(var i=1,len=vArr.length;i<len;i++,s=vArr[i]){ret+=s.charAt(0).toUpperCase()+s.substring(1);};return ret;};String.prototype.trimLeft = new Function("return this.replace(/^\\s+/,'')");String.prototype.trimRight = new Function("return this.replace(/\\s+$/,'')");String.prototype.trim = new Function("return this.replace(/^\\s+|\\s+$/g,'')");String.prototype.add=function(v,sep){if(this==v){return this;}else if(this==""){return v;}else {if(isInvalid(sep)){sep=",";};var a=this.split(sep);if(a.indexOf(v)==-1){a.push(v);return a.join(sep);}else {return this;};};};String.prototype.remove=function(v,sep){if(this==v||this==""){return "";}else {if(isInvalid(sep)){sep=",";};var a=this.split(sep);var p=a.indexOf(v);if(p==-1){return this;};do{a.splice(p,1);}while((p=a.indexOf(v))!=-1);return a.join(sep);};};if(!Function.prototype.apply){Function.prototype.apply=function(oScope,args){var sarg=[];var rtrn,call;if(!oScope){oScope=window;};if(!args){args=[];};for(var i=0;i<args.length;i++){sarg[i]="args["+i+"]";};call="oScope._applyTemp_("+sarg.join(",")+");";oScope._applyTemp_=this;rtrn=eval(call);delete oScope._applyTemp_;return rtrn;};};Function.prototype.extend=function(sFunction,tClassName){if(typeof sFunction!="function"){throw new Error("Extend:Function/Constructor to extend from is not a function:"+sFunction);};if(typeof tClassName!="string"){throw new Error("Extend:Missing or malformed className:"+tClassName);};proto=this.prototype=new sFunction;proto.superclass=sFunction;proto.classname=tClassName;proto.constructor=this;return proto;};if(navigator.product=="Gecko"){Document.prototype.elementFromPoint=function(x,y){this.addEventListener("mousemove",this.elementFromPointHandler,false);var event=this.createEvent("MouseEvents");var box=this.getBoxObjectFor(this.documentElement);event.initMouseEvent("mousemove",true,false,this.defaultView,0,x+box.screenX,y+box.screenY,x,y,false,false,false,false,0,null);this.dispatchEvent(event);this.removeEventListener("mousemove",this.elementFromPointHandler,false);return this.elementFromPointTarget;};Document.prototype.elementFromPointHandler=function(event){this.elementFromPointTarget=event.explicitOriginalTarget;if(this.elementFromPointTarget.nodeType==Node.TEXT_NODE){this.elementFromPointTarget=this.elementFromPointTarget.parentNode;};if(this.elementFromPointTarget.nodeName.toUpperCase()=="HTML"&&this.documentElement.nodeName.toUpperCase()=="HTML"){this.elementFromPointTarget=this.getElementsByTagName("BODY").item(0);};event.preventDefault();event.stopPropagation();};Document.prototype.elementFromPointTarget=null;};Error.prototype.toString=function(){return this.message;};Function.prototype.removeProperty=function(p){if(typeof this.prototype._i1!="string"){throw new Error("Has no properties!");};if(typeof p!="object"){throw new Error("Param should be an object!");};if(isInvalid(p.name)){throw new Error("Malformed input parameters:name needed!");};p.method=p.name.toFirstUp();p.implMethod=p.impl?p.impl.toFirstUp():p.method;var valueKey="_value"+p.method;this.prototype._i1=this.prototype._i1.remove(p.name);this.prototype[valueKey]=null;this.prototype["get"+p.method]=function(){return null;};this.prototype["force"+p.method]=this.prototype["set"+p.method]=function(){throw new Error("Property "+p.name+" is not supported by class+"+this.classname);};if(this.prototype["_modify"+p.method]){this.prototype["_modify"+p.method]=null;};if(this.prototype["_eval"+p.method]){this.prototype["_eval"+p.method]=null;};};Function.prototype.addProperty=function(p){if(typeof p!="object"){throw new Error("Param should be an object!");};if(isInvalid(p.name)){throw new Error("Malformed input parameters:name needed!");};p.method=p.name.toFirstUp();p.implMethod=p.impl?p.impl.toFirstUp():p.method;if(isInvalid(p.defaultValue)){p.defaultValue=null;};var valueKey="_value"+p.method;var nullKey="_null"+p.method;var evalKey="_eval"+p.method;var changeKey="change"+p.method;var modifyKey="_modify"+p.implMethod;var checkKey="_check"+p.implMethod;this.prototype[valueKey]=p.defaultValue;if(typeof this.prototype._i1!="string"){this.prototype._i1=p.name;}else{this.prototype._i1+=","+p.name;};if(typeof p.groups=="object"){var g=p.groups;var l=g.length;var tempGroups;var tempGroupName;var tempGroupNameUp;var tempMemberRef;for(var i=0;i<l;i++){tempGroupName=g[i];tempMemberRef="_propertygroup_"+tempGroupName+"_members";if(typeof this.prototype._h9!="string"){this.prototype._h9=tempGroupName;}else {tempGroups=this.prototype._h9.split(",");if(tempGroups.contains(tempGroupName)){this.prototype[tempMemberRef]+=","+p.name;}else {tempGroups.push(tempGroupName);this.prototype._h9=tempGroups.join(",");};};if(typeof this.prototype[tempMemberRef]=="undefined"){this.prototype[tempMemberRef]=p.name;tempGroupNameUp=tempGroupName.toFirstUp();this.prototype["get"+tempGroupNameUp]=new Function("var memberList=this."+tempMemberRef+".split(',');"+"var memberLength=memberList.length;"+"var memberValues=[];"+"try{"+"for(var i=0;i<memberLength;i++){"+"memberValues.push(this['get'+memberList[i].toFirstUp()]());"+"};"+"}catch(ex){"+"throw new Error('Failed to get values from property group "+tempGroupName+":'+ex);"+"};"+"return memberValues;" );this.prototype["set"+tempGroupNameUp]=new Function("var memberList=this."+tempMemberRef+".split(',');"+"var memberLength=memberList.length;"+"try{"+"for(var i=0;i<memberLength;i++){"+"this['set'+memberList[i].toFirstUp()](arguments[i]);"+"};"+"}catch(ex){"+"throw new Error('Failed to setup property group "+tempGroupName+":'+ex);"+"};"+"return true" );};};};this.prototype["get"+p.method]=function(){if(typeof this[valueKey]=="undefined"||(this[valueKey]==null&&this[nullKey]!=true)){if(typeof this[evalKey]=="function"){var v1=this[evalKey]();if(isValid(v1)){return this[valueKey]=v1;};};return null;}else {return this[valueKey];};};this.prototype["getDefault"+p.method]=function(_b4){return p.defaultValue;};this.prototype["setDefault"+p.method]=function(newValue,_b4){return p.defaultValue=newValue;};this.prototype["force"+p.method]=function(newValue){this[valueKey]=newValue;this[nullKey]=newValue==null;return true;};this.prototype["reset"+p.method]=function(_b4){return this["set"+p.method](p.defaultValue,_b4);};this.prototype["set"+p.method]=function(newValue,_b4){var thisModId=this.toHash()+"_"+p.name;if(isInvalidArray(_b4)){var _b4=[thisModId];}else if(_b4.contains(thisModId)){return newValue;}else {_b4.push(thisModId);};var fixedValue=newValue==null?null:isValid(p.type)?p.type(newValue):newValue;var oldValue=this[valueKey];if(typeof this[checkKey]=="function"){try{fixedValue=this[checkKey](fixedValue,oldValue,p.name,_b4);}catch(ex){this.debug("Failed to check property "+p.name+":"+ex);return false;};};if(fixedValue!=oldValue){this[valueKey]=fixedValue;this[nullKey]=fixedValue==null;if(typeof this[modifyKey]=="function"){try{var r=this[modifyKey](fixedValue,oldValue,p.name,_b4);if(!r){throw new Error("Failed without exception:"+p.name+"["+p.implMethod+"|"+r+"]");};}catch(ex){this.debug("Failed to modify property "+p.name+":"+ex.message);return false;};};if(this instanceof QxTarget){if(this.hasEventListeners(changeKey)){var ce=new QxDataEvent(changeKey,fixedValue,oldValue,false);ce.setTarget(this);try{this.dispatchEvent(ce,true);}catch(ex){throw new Error("Failed to dispatch changed event:"+ex);};ce=null;};};};return fixedValue;};if(typeof p.getAlias=="string"){this.prototype[p.getAlias]=this.prototype["get"+p.method];};if(typeof p.setAlias=="string"){this.prototype[p.setAlias]=this.prototype["set"+p.method];};};function QxObject(autoDispose){this._pos=QxObject._i2++;this._hash="h"+String(Math.round(Math.random()*1e6));this._k1={};if(typeof autoDispose!="boolean"||autoDispose){QxObject._i3.push(this);};};QxObject.extend(Object,"QxObject");QxObject._i2=0;QxObject._siteCounter=0;QxObject._i3=[];QxObject.toHash=function(o){if(o._hash!=null){return o._hash;};return o._hash="h"+String(Math.round(Math.random()*1e6));};QxObject.dispose=function(){for(var i=QxObject._i3.length-1;i>=0;i--){if(typeof QxObject._i3[i]!="undefined"){QxObject._i3[i].dispose();if(typeof QxObject._i3=="undefined"){break;};delete QxObject._i3[i];};};delete QxObject._i3;};QxObject.addProperty({name:"enabled",type:Boolean,defaultValue:true,getAlias:"isEnabled"});proto.debug=function(m){QxDebug(this.classname+"["+this._pos+"]",m);};proto.subug=function(m){QxDebug(this.classname+"["+this._pos+"]","::"+m);};proto.toString=function(){if(this.classname){return "[object "+this.classname+"]";};return "[object Object]";};proto.toHash=function(){return this._hash;};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){return true;};proto._disposed=false;proto.dispose=function(){if(this._disposed){return;};for(var p in this._k1){delete this._k1[p];};delete this._k1;this._disposed=true;delete QxObject._i3[this._pos];};proto.getDisposed=function(){return this._disposed;};proto.isDisposed=function(){return this._disposed;};proto.set=function(propertyValues){if(typeof propertyValues!="object"){throw new Error("Please use a valid hash of property key-values pairs.");};for(var prop in propertyValues){try{this["set"+prop.toFirstUp()](propertyValues[prop]);}catch(ex){throw new Error("Setter of property "+prop+" returned with an error:"+ex);};};return this;};proto.get=function(propertyNames,outputHint){switch(typeof propertyNames){case "string":return this["get"+propertyNames.toFirstUp()]();case "object":if(typeof propertyNames.length=="number"){if(outputHint=="hash"){var h={};propertyLength=propertyNames.length;for(var i=0;i<propertyLength;i++){try{h[propertyNames[i]]=this["get"+propertyNames[i].toFirstUp()]();}catch(ex){throw new Error("Could not get a valid value from property:"+propertyNames[i]+"! Is the property existing?("+ex+")");};};return h;}else {propertyLength=propertyNames.length;for(var i=0;i<propertyLength;i++){try{propertyNames[i]=this["get"+propertyNames[i].toFirstUp()]();}catch(ex){throw new Error("Could not get a valid value from property:"+propertyNames[i]+"! Is the property existing?("+ex+")");};};return propertyNames;};}else {for(var i in propertyNames){propertyNames[i]=this["get"+i.toFirstUp()]();};return propertyNames;};default:throw new Error("Please use a valid array,hash or string as parameter!");};};proto.addData=function(p){if(typeof p!="object"){throw new Error("Param should be an object!");};if(isInvalid(p.name)){throw new Error("Malformed input parameters:name needed!");};var valueKey=p.name;var methodKey=p.method=valueKey.toFirstUp();var changeKey="change"+methodKey;this["retrieve"+methodKey]=function(){return this._k1[valueKey];};if(typeof p.defaultValue!="undefined"){this._k1[valueKey]=p.defaultValue;this["retrieveDefault"+methodKey]=function(){return p.defaultValue;};this["storeDefault"+methodKey]=function(newValue){return p.defaultValue=newValue;};this["restore"+methodKey]=function(){return this["store"+methodKey](p.defaultValue);};};this["store"+methodKey]=function(newValue){var fixedValue=isValid(p.type)?p.type(newValue):newValue;var oldValue=this._k1[valueKey];if(fixedValue!=oldValue){this._k1[valueKey]=fixedValue;if(this instanceof QxTarget&&this.hasEventListeners(changeKey)){var ce=new QxDataEvent(changeKey,fixedValue,oldValue,false);ce.setTarget(this);try{this.dispatchEvent(ce,true);}catch(ex){throw new Error("Failed to dispatch change event:"+ex);};ce=null;};};return fixedValue;};};proto.removeData=function(p){if(typeof p!="object"){throw new Error("Param should be an object!");};if(isInvalid(p.name)){throw new Error("Malformed input parameters:name needed!");};var methodKey=p.method;delete this._k1[p.name];delete this["retrieve"+methodKey];delete this["store"+methodKey];delete this["retrieveDefault"+methodKey];delete this["storeDefault"+methodKey];delete this["restore"+methodKey];};function QxClient(){if(QxClient._instance){return QxClient._instance;};var n=navigator;var u=n.userAgent;var v=n.vendor;var p=n.product;var r=null;if(window.opera){r="opera";}else if(typeof v=="string"&&v=="KDE"){r="khtml";}else if(typeof p=="string"&&p=="Gecko"){r="gecko";}else if (/msie/i.test(u)){r="mshtml";};this.engine=r;this.mshtml=r=="mshtml";this.gecko=r=="gecko";this.opera=r=="opera";this.khtml=r=="khtml";n=u=v=p=r=null;QxClient._instance=this;};QxClient.extend(Object,"QxClient");proto.getEngine=function(){return this.engine;};proto.isMshtml=function(){return this.engine=="mshtml";};proto.isGecko=function(){return this.engine=="gecko";};proto.isOpera=function(){return this.engine=="opera";};proto.isKhtml=function(){return this.engine=="khtml";};proto.isNotMshtml=function(){return !this.isMshtml();};proto.isNotGecko=function(){return !this.isGecko();};proto.isNotOpera=function(){return !this.isMshtml();};proto.isNotKhtml=function(){return !this.isKhtml();};window.client=new QxClient;var QxDOM=new Object;if(Boolean(document.defaultView)&&Boolean(document.defaultView.getComputedStyle)){QxDOM.getComputedStyleProperty=function(el,prop){return !el?null:el.ownerDocument?el.ownerDocument.defaultView.getComputedStyle(el,"")[prop]:el.style[prop];};}else if((new QxClient).isMshtml()){QxDOM.getComputedStyleProperty=function(el,prop){if(!el){return null;};if(el.parentNode){return el.currentStyle[prop];}else {var v1=el.runtimeStyle[prop];if(v1!=null&&typeof v1!="undefined"){return v1;};return el.style[prop];};};}else {QxDOM.getComputedStyleProperty=function(el,prop){return !el?null:el.style[prop];};};QxDOM.getComputedStyleSize=function(el,prop){return parseInt(QxDOM.getComputedStyleProperty(el,prop))||0;};QxDOM.getComputedMarginLeft=function(el){return QxDOM.getComputedStyleSize(el,"marginLeft");};QxDOM.getComputedMarginTop=function(el){return QxDOM.getComputedStyleSize(el,"marginTop");};QxDOM.getComputedMarginRight=function(el){return QxDOM.getComputedStyleSize(el,"marginRight");};QxDOM.getComputedMarginBottom=function(el){return QxDOM.getComputedStyleSize(el,"marginBottom");};QxDOM.getComputedPaddingLeft=function(el){return QxDOM.getComputedStyleSize(el,"paddingLeft");};QxDOM.getComputedPaddingTop=function(el){return QxDOM.getComputedStyleSize(el,"paddingTop");};QxDOM.getComputedPaddingRight=function(el){return QxDOM.getComputedStyleSize(el,"paddingRight");};QxDOM.getComputedPaddingBottom=function(el){return QxDOM.getComputedStyleSize(el,"paddingBottom");};QxDOM.getComputedBorderLeft=function(el){return QxDOM.getComputedStyleProperty(el,"borderLeftStyle")=="none"?0:QxDOM.getComputedStyleSize(el,"borderLeftWidth");};QxDOM.getComputedBorderTop=function(el){return QxDOM.getComputedStyleProperty(el,"borderTopStyle")=="none"?0:QxDOM.getComputedStyleSize(el,"borderTopWidth");};QxDOM.getComputedBorderRight=function(el){return QxDOM.getComputedStyleProperty(el,"borderRightStyle")=="none"?0:QxDOM.getComputedStyleSize(el,"borderRightWidth");};QxDOM.getComputedBorderBottom=function(el){return QxDOM.getComputedStyleProperty(el,"borderBottomStyle")=="none"?0:QxDOM.getComputedStyleSize(el,"borderBottomWidth");};QxDOM.getComputedOuterWidth=function(el){return QxDOM.getComputedBoxWidth(el)+QxDOM.getComputedMarginLeft(el)+QxDOM.getComputedMarginRight(el);};QxDOM.getComputedOuterHeight=function(el){return QxDOM.getComputedBoxHeight(el)+QxDOM.getComputedMarginTop(el)+QxDOM.getComputedMarginBottom(el);};QxDOM.getComputedBoxWidth=function(el){var h=el.offsetHeight;if(h==0){var o=el.style.height;el.style.height="1px";};var v=el.offsetWidth;if(h==0){el.style.height=o;};return v;};QxDOM.getComputedBoxHeight=function(el){var w=el.offsetWidth;if(w==0){var o=el.style.width;el.style.width="1px";};var v=el.offsetHeight;if(w==0){el.style.width=o;};return v;};if((new QxClient).isGecko()){QxDOM.getComputedAreaWidth=function(el){if(el.clientWidth!=0&&el.clientWidth!=(QxDOM.getComputedBorderLeft(el)+QxDOM.getComputedBorderRight(el))){return el.clientWidth;}else {return QxDOM.getComputedBoxWidth(el)-QxDOM.getComputedInsetLeft(el)-QxDOM.getComputedInsetRight(el);};};QxDOM.getComputedAreaHeight=function(el){if(el.clientHeight!=0&&el.clientHeight!=(QxDOM.getComputedBorderTop(el)+QxDOM.getComputedBorderBottom(el))){return el.clientHeight;}else {return QxDOM.getComputedBoxHeight(el)-QxDOM.getComputedInsetTop(el)-QxDOM.getComputedInsetBottom(el)};};}else {QxDOM.getComputedAreaWidth=function(el){return el.clientWidth!=0?el.clientWidth:(QxDOM.getComputedBoxWidth(el)-QxDOM.getComputedInsetLeft(el)-QxDOM.getComputedInsetRight(el));};QxDOM.getComputedAreaHeight=function(el){return el.clientHeight!=0?el.clientHeight:(QxDOM.getComputedBoxHeight(el)-QxDOM.getComputedInsetTop(el)-QxDOM.getComputedInsetBottom(el));};};QxDOM.getComputedInnerWidth=function(el){return QxDOM.getComputedAreaWidth(el)-QxDOM.getComputedPaddingLeft(el)-QxDOM.getComputedPaddingRight(el);};QxDOM.getComputedInnerHeight=function(el){return QxDOM.getComputedAreaHeight(el)-QxDOM.getComputedPaddingTop(el)-QxDOM.getComputedPaddingBottom(el);};if((new QxClient).isMshtml()){QxDOM.getComputedInsetLeft=function(el){return el.clientLeft;};QxDOM.getComputedInsetTop=function(el){return el.clientTop;};QxDOM.getComputedInsetRight=function(el){if(QxDOM.getComputedStyleProperty(el,"overflowY")=="hidden"||el.clientWidth==0){return QxDOM.getComputedBorderRight(el);};return Math.max(0,el.offsetWidth-el.clientLeft-el.clientWidth);};QxDOM.getComputedInsetBottom=function(el){if(QxDOM.getComputedStyleProperty(el,"overflowX")=="hidden"||el.clientHeight==0){return QxDOM.getComputedBorderBottom(el);};return Math.max(0,el.offsetHeight-el.clientTop-el.clientHeight);};}else {QxDOM.getComputedInsetLeft=function(el){return QxDOM.getComputedBorderLeft(el);};QxDOM.getComputedInsetTop=function(el){return QxDOM.getComputedBorderTop(el);};QxDOM.getComputedInsetRight=function(el){if(el.clientWidth==0){var ov=QxDOM.getComputedStyleProperty(el,"overflow");var sbv=ov=="scroll"||ov=="-moz-scrollbars-vertical"?16:0;return Math.max(0,QxDOM.getComputedBorderRight(el)+sbv);};return Math.max(0,el.offsetWidth-el.clientWidth-QxDOM.getComputedBorderLeft(el));};QxDOM.getComputedInsetBottom=function(el){if(el.clientHeight==0){var ov=QxDOM.getComputedStyleProperty(el,"overflow");var sbv=ov=="scroll"||ov=="-moz-scrollbars-horizontal"?16:0;return Math.max(0,QxDOM.getComputedBorderBottom(el)+sbv);};return Math.max(0,el.offsetHeight-el.clientHeight-QxDOM.getComputedBorderTop(el));};};QxDOM.getComputedScrollBarSizeLeft=function(el){return 0;};QxDOM.getComputedScrollBarSizeTop=function(el){return 0;};QxDOM.getComputedScrollBarSizeRight=function(el){return QxDOM.getComputedInsetRight(el)-QxDOM.getComputedBorderRight(el);};QxDOM.getComputedScrollBarSizeBottom=function(el){return QxDOM.getComputedInsetBottom(el)-QxDOM.getComputedBorderBottom(el);};QxDOM.getComputedScrollBarVisibleX=function(el){return QxDOM.getComputedScrollBarSizeRight(el)>0;};QxDOM.getComputedScrollBarVisibleY=function(el){return QxDOM.getComputedScrollBarSizeBottom(el)>0;};QxDOM.getScrollLeftSum=function(el){var sum=0;var p=el.parentNode;while(p.nodeType==1){sum+=p.scrollLeft;p=p.parentNode;};return sum;};QxDOM.getScrollTopSum=function(el){var sum=0;var p=el.parentNode;while(p.nodeType==1){sum+=p.scrollTop;p=p.parentNode;};return sum;};QxDOM.getComputedPageOuterLeft=function(el){return QxDOM.getComputedPageBoxLeft(el)-QxDOM.getComputedMarginLeft(el);};QxDOM.getComputedPageOuterTop=function(el){return QxDOM.getComputedPageBoxTop(el)-QxDOM.getComputedMarginTop(el);};QxDOM.getComputedPageOuterRight=function(el){return QxDOM.getComputedPageBoxRight(el)+QxDOM.getComputedMarginRight(el);};QxDOM.getComputedPageOuterBottom=function(el){return QxDOM.getComputedPageBoxBottom(el)+QxDOM.getComputedMarginBottom(el);};QxDOM.getComputedClientOuterLeft=function(el){return QxDOM.getComputedClientBoxLeft(el)-QxDOM.getComputedMarginLeft(el);};QxDOM.getComputedClientOuterTop=function(el){return QxDOM.getComputedClientBoxTop(el)-QxDOM.getComputedMarginTop(el);};QxDOM.getComputedClientOuterRight=function(el){return QxDOM.getComputedClientBoxRight(el)+QxDOM.getComputedMarginRight(el);};QxDOM.getComputedClientOuterBottom=function(el){return QxDOM.getComputedClientBoxBottom(el)+QxDOM.getComputedMarginBottom(el);};if((new QxClient).isMshtml()){QxDOM.getComputedClientBoxLeft=function(el){return el.getBoundingClientRect().left;};QxDOM.getComputedClientBoxTop=function(el){return el.getBoundingClientRect().top;};QxDOM.getComputedPageBoxLeft=function(el){return QxDOM.getComputedClientBoxLeft(el)+QxDOM.getScrollLeftSum(el);};QxDOM.getComputedPageBoxTop=function(el){return QxDOM.getComputedClientBoxTop(el)+QxDOM.getScrollTopSum(el);};}else if((new QxClient).isGecko()){QxDOM.getComputedClientBoxLeft=function(el){return QxDOM.getComputedClientAreaLeft(el)-QxDOM.getComputedBorderLeft(el);};QxDOM.getComputedClientBoxTop=function(el){return QxDOM.getComputedClientAreaTop(el)-QxDOM.getComputedBorderTop(el);};QxDOM.getComputedPageBoxLeft=function(el){return QxDOM.getComputedPageAreaLeft(el)-QxDOM.getComputedBorderLeft(el);};QxDOM.getComputedPageBoxTop=function(el){return QxDOM.getComputedPageAreaTop(el)-QxDOM.getComputedBorderTop(el);};}else {QxDOM.getComputedPageBoxLeft=function(el){var sum=el.offsetLeft;while(el.tagName!="BODY"){el=el.offsetParent;sum+=el.offsetLeft;};return sum;};QxDOM.getComputedPageBoxTop=function(el){var sum=el.offsetTop;while(el.tagName!="BODY"){el=el.offsetParent;sum+=el.offsetTop;};return sum;};QxDOM.getComputedClientBoxLeft=function(el){var sum=el.offsetLeft;while(el.tagName!="BODY"){el=el.offsetParent;sum+=el.offsetLeft-el.scrollLeft;};return sum;};QxDOM.getComputedClientBoxTop=function(el){var sum=el.offsetTop;while(el.tagName!="BODY"){el=el.offsetParent;sum+=el.offsetTop-el.scrollTop;};return sum;};};if((new QxClient).isMshtml()){QxDOM.getComputedClientBoxRight=function(el){return el.getBoundingClientRect().right;};QxDOM.getComputedClientBoxBottom=function(el){return el.getBoundingClientRect().bottom;};QxDOM.getComputedPageBoxRight=function(el){return QxDOM.getComputedClientBoxRight(el)+QxDOM.getScrollLeftSum(el);};QxDOM.getComputedPageBoxBottom=function(el){return QxDOM.getComputedClientBoxBottom(el)+QxDOM.getScrollTopSum(el);};}else {QxDOM.getComputedClientBoxRight=function(el){return QxDOM.getComputedClientBoxLeft(el)+QxDOM.getComputedBoxWidth(el);};QxDOM.getComputedClientBoxBottom=function(el){return QxDOM.getComputedClientBoxTop(el)+QxDOM.getComputedBoxHeight(el);};QxDOM.getComputedPageBoxRight=function(el){return QxDOM.getComputedPageBoxLeft(el)+QxDOM.getComputedBoxWidth(el);};QxDOM.getComputedPageBoxBottom=function(el){return QxDOM.getComputedPageBoxTop(el)+QxDOM.getComputedBoxHeight(el);};};if((new QxClient).isGecko()){QxDOM.getComputedPageAreaLeft=function(el){return el.ownerDocument.getBoxObjectFor(el).x;};QxDOM.getComputedPageAreaTop=function(el){return el.ownerDocument.getBoxObjectFor(el).y;};QxDOM.getComputedClientAreaLeft=function(el){return QxDOM.getComputedPageAreaLeft(el)-QxDOM.getScrollLeftSum(el);};QxDOM.getComputedClientAreaTop=function(el){return QxDOM.getComputedPageAreaTop(el)-QxDOM.getScrollTopSum(el);};}else {QxDOM.getComputedClientAreaLeft=function(el){return QxDOM.getComputedClientBoxLeft(el)+QxDOM.getComputedBorderLeft(el);};QxDOM.getComputedClientAreaTop=function(el){return QxDOM.getComputedClientBoxTop(el)+QxDOM.getComputedBorderTop(el);};QxDOM.getComputedPageAreaLeft=function(el){return QxDOM.getComputedPageBoxLeft(el)+QxDOM.getComputedBorderLeft(el);};QxDOM.getComputedPageAreaTop=function(el){return QxDOM.getComputedPageBoxTop(el)+QxDOM.getComputedBorderTop(el);};};QxDOM.getComputedClientAreaRight=function(el){return QxDOM.getComputedClientAreaLeft(el)+QxDOM.getComputedAreaWidth(el);};QxDOM.getComputedClientAreaBottom=function(el){return QxDOM.getComputedClientAreaTop(el)+QxDOM.getComputedAreaHeight(el);};QxDOM.getComputedPageAreaRight=function(el){return QxDOM.getComputedPageAreaLeft(el)+QxDOM.getComputedAreaWidth(el);};QxDOM.getComputedPageAreaBottom=function(el){return QxDOM.getComputedPageAreaTop(el)+QxDOM.getComputedAreaHeight(el);};QxDOM.getComputedClientInnerLeft=function(el){return QxDOM.getComputedClientAreaLeft(el)+QxDOM.getComputedPaddingLeft(el);};QxDOM.getComputedClientInnerTop=function(el){return QxDOM.getComputedClientAreaTop(el)+QxDOM.getComputedPaddingTop(el);};QxDOM.getComputedClientInnerRight=function(el){return QxDOM.getComputedClientInnerLeft(el)+QxDOM.getComputedInnerWidth(el);};QxDOM.getComputedClientInnerBottom=function(el){return QxDOM.getComputedClientInnerTop(el)+QxDOM.getComputedInnerHeight(el);};QxDOM.getComputedPageInnerLeft=function(el){return QxDOM.getComputedPageAreaLeft(el)+QxDOM.getComputedPaddingLeft(el);};QxDOM.getComputedPageInnerTop=function(el){return QxDOM.getComputedPageAreaTop(el)+QxDOM.getComputedPaddingTop(el);};QxDOM.getComputedPageInnerRight=function(el){return QxDOM.getComputedPageInnerLeft(el)+QxDOM.getComputedInnerWidth(el);};QxDOM.getComputedPageInnerBottom=function(el){return QxDOM.getComputedPageInnerTop(el)+QxDOM.getComputedInnerHeight(el);};if((new QxClient).isGecko()){QxDOM.getComputedScreenBoxLeft=function(el){var sum=0;var p=el.parentNode;while(p.nodeType==1){sum+=p.scrollLeft;p=p.parentNode;};return el.ownerDocument.getBoxObjectFor(el).screenX-sum;};QxDOM.getComputedScreenBoxTop=function(el){var sum=0;var p=el.parentNode;while(p.nodeType==1){sum+=p.scrollTop;p=p.parentNode;};return el.ownerDocument.getBoxObjectFor(el).screenY-sum;};}else {QxDOM.getComputedScreenBoxLeft=function(el){return QxDOM.getComputedScreenDocumentLeft(el)+QxDOM.getComputedPageBoxLeft(el);};QxDOM.getComputedScreenBoxTop=function(el){return QxDOM.getComputedScreenDocumentTop(el)+QxDOM.getComputedPageBoxTop(el);};};QxDOM.getComputedScreenBoxRight=function(el){return QxDOM.getComputedScreenBoxLeft(el)+QxDOM.getComputedBoxWidth(el);};QxDOM.getComputedScreenBoxBottom=function(el){return QxDOM.getComputedScreenBoxTop(el)+QxDOM.getComputedBoxHeight(el);};QxDOM.getComputedScreenOuterLeft=function(el){return QxDOM.getComputedScreenBoxLeft(el)-QxDOM.getComputedMarginLeft(el);};QxDOM.getComputedScreenOuterTop=function(el){return QxDOM.getComputedScreenBoxTop(el)-QxDOM.getComputedMarginTop(el);};QxDOM.getComputedScreenOuterRight=function(el){return QxDOM.getComputedScreenBoxRight(el)+QxDOM.getComputedMarginRight(el);};QxDOM.getComputedScreenOuterBottom=function(el){return QxDOM.getComputedScreenBoxBottom(el)+QxDOM.getComputedMarginBottom(el);};QxDOM.getComputedScreenAreaLeft=function(el){return QxDOM.getComputedScreenBoxLeft(el)+QxDOM.getComputedInsetLeft(el);};QxDOM.getComputedScreenAreaTop=function(el){return QxDOM.getComputedScreenBoxTop(el)+QxDOM.getComputedInsetTop(el);};QxDOM.getComputedScreenAreaRight=function(el){return QxDOM.getComputedScreenBoxRight(el)-QxDOM.getComputedInsetRight(el);};QxDOM.getComputedScreenAreaBottom=function(el){return QxDOM.getComputedScreenBoxBottom(el)-QxDOM.getComputedInsetBottom(el);};QxDOM.getComputedScreenInnerLeft=function(el){return QxDOM.getComputedScreenAreaLeft(el)+QxDOM.getComputedPaddingLeft(el);};QxDOM.getComputedScreenInnerTop=function(el){return QxDOM.getComputedScreenAreaTop(el)+QxDOM.getComputedPaddingTop(el);};QxDOM.getComputedScreenInnerRight=function(el){return QxDOM.getComputedScreenAreaRight(el)-QxDOM.getComputedPaddingRight(el);};QxDOM.getComputedScreenInnerBottom=function(el){return QxDOM.getComputedScreenAreaBottom(el)-QxDOM.getComputedPaddingBottom(el);};if((new QxClient).isGecko()){QxDOM.getComputedScreenDocumentLeft=function(el){return QxDOM.getComputedScreenOuterLeft(el.ownerDocument.body);};QxDOM.getComputedScreenDocumentTop=function(el){return QxDOM.getComputedScreenOuterTop(el.ownerDocument.body);};QxDOM.getComputedScreenDocumentRight=function(el){return QxDOM.getComputedScreenOuterRight(el.ownerDocument.body);};QxDOM.getComputedScreenDocumentBottom=function(el){return QxDOM.getComputedScreenOuterBottom(el.ownerDocument.body);};}else {QxDOM.getComputedScreenDocumentLeft=function(el){return el.document.parentWindow.screenLeft;};QxDOM.getComputedScreenDocumentTop=function(el){return el.document.parentWindow.screenTop;};QxDOM.getComputedScreenDocumentRight=function(el){};QxDOM.getComputedScreenDocumentBottom=function(el){};};QxDOM.getComputedPreferredSize=function(el){try{var elst=el.style;var _pa=el.parentNode;var _ne=el.nextChild;var _do=el.ownerDocument.body;var _el_w=isValidString(elst.width)?elst.width:"";var _el_h=isValidString(elst.height)?elst.height:"";var _el_p=isValidString(elst.position)?elst.position:"";var _el_d=isValidString(elst.display)?elst.display:"";var _el_v=isValidString(elst.visibility)?elst.visibility:"";_pa.removeChild(el);elst.width=elst.height="auto";elst.position="absolute";elst.display="inline";elst.visibility="hidden";_do.appendChild(el);var r={width:el.offsetWidth,height:el.offsetHeight};_do.removeChild(el);elst.width=_el_w;elst.height=_el_h;elst.position=_el_p;elst.display=_el_p;elst.visibility=_el_v;_ne?_pa.insertBefore(el,_ne):_pa.appendChild(el);return r;}catch(ex){throw new Error("Failed to detect preferred size for "+el+":"+ex);};};QxDOM.getComputedPreferredWidth=function(el){return QxDOM.getComputedPreferredSize(el).width;};QxDOM.getComputedPreferredHeight=function(el){return QxDOM.getComputedPreferredSize(el).height;};QxDOM.addClass=function(el,newClass){var n=el.className.add(newClass," ");if(n!=el.className){el.className=n;};};QxDOM.removeClass=function(el,oldClass){var n=el.className.remove(oldClass," ");if(n!=el.className){el.className=n;};};if((new QxClient).isMshtml()){QxDOM.setWidth=function(el,intValue){el.style.pixelWidth=intValue;};QxDOM.setHeight=function(el,intValue){el.style.pixelHeight=intValue;};}else {QxDOM.setWidth=function(el,intValue){el.style.width=intValue+"px";};QxDOM.setHeight=function(el,intValue){el.style.height=intValue+"px";};};QxDOM.getElementFromPoint=function(x,y){return QxDOM.getElementFromPointHandler(document.body,x,y);};QxDOM.getElementFromPointHandler=function(node,x,y,recursive){var ch=node.childNodes;var chl=ch.length-1;if(chl<0){return null;};var chc,subres,ret;do {chc=ch[chl];ret=QxDOM.getElementFromPointChecker(chc,x,y);if(ret){if(typeof recursive=="boolean"&&recursive==false&&2==1){return chc;}else {subres=QxDOM.getElementFromPointHandler(chc,x-ret[0]-QxDOM.getComputedBorderLeft(chc),y-ret[2]-QxDOM.getComputedBorderTop(chc));return subres?subres:chc;};};}while(chl--);return null;};QxDOM.getElementFromPointChecker=function(chc,x,y){var xstart,ystart,xstop,ystop;if(chc.nodeType!=1){return false;};xstart=QxDOM.getOffsetLeft(chc);if(x>xstart){ystart=QxDOM.getOffsetTop(chc);if(y>ystart){xstop=xstart+chc.offsetWidth;if(xstop==xstart&&chc.className=="QxContainer"){xstop=xstart+chc._QxWidget.getAnyWidth();};if(x<xstop){ystop=ystart+chc.offsetHeight;if(y<ystop){return[xstart,xstop,ystart,ystop];};};};};return false;};QxDOM.getElementAbsolutePointChecker=function(chc,x,y){var xstart,ystart,xstop,ystop;if(!chc||chc.nodeType!=1){return false;};xstart=QxDOM.getComputedPageBoxLeft(chc);if(x>xstart){ystart=QxDOM.getComputedPageBoxTop(chc);if(y>ystart){xstop=xstart+chc.offsetWidth;if(xstop==xstart&&chc.className=="QxContainer"){xstop=xstart+chc._QxWidget.getAnyWidth();};if(x<xstop){ystop=ystart+chc.offsetHeight;if(y<ystop){return[xstart,xstop,ystart,ystop];};};};};return false;};if((new QxClient).isGecko()){QxDOM.getOffsetLeft=function(el){var val=el.offsetLeft;var pa=el.parentNode;var pose=QxDOM.getComputedStyleProperty(el,"position");var posp=QxDOM.getComputedStyleProperty(pa,"position");if(pose!="absolute"&&pose!="fixed"){val-=QxDOM.getComputedBorderLeft(pa);};if(posp!="absolute"&&posp!="fixed"){while(pa){pa=pa.parentNode;if(!pa||isInvalidString(pa.tagName)){break;};var posi=QxDOM.getComputedStyleProperty(pa,"position");if(posi=="absolute"||posi=="fixed"){val-=QxDOM.getComputedBorderLeft(pa)+QxDOM.getComputedPaddingLeft(pa);break;};};};return val;};QxDOM.getOffsetTop=function(el){var val=el.offsetTop;var pa=el.parentNode;var pose=QxDOM.getComputedStyleProperty(el,"position");var posp=QxDOM.getComputedStyleProperty(pa,"position");if(pose!="absolute"&&pose!="fixed"){val-=QxDOM.getComputedBorderTop(pa);};if(posp!="absolute"&&posp!="fixed"){while(pa){pa=pa.parentNode;if(!pa||isInvalidString(pa.tagName)){break;};var posi=QxDOM.getComputedStyleProperty(pa,"position");if(posi=="absolute"||posi=="fixed"){val-=QxDOM.getComputedBorderTop(pa)+QxDOM.getComputedPaddingTop(pa);break;};};};return val;};}else {QxDOM.getOffsetLeft=function(el){return el.offsetLeft;};QxDOM.getOffsetTop=function(el){return el.offsetTop;};};if((new QxClient).isMshtml()){QxDOM.addEventListener=function(e,t,f){e.attachEvent("on"+t,f);};QxDOM.removeEventListener=function(e,t,f){e.detachEvent("on"+t,f);};}else {QxDOM.addEventListener=function(e,t,f){e.addEventListener(t,f,false);};QxDOM.removeEventListener=function(e,t,f){e.removeEventListener(t,f,false);};};if((new QxClient).isMshtml()){QxDOM.getWindowInnerWidth=function(w){if(!w){w=window;};if(w.document.documentElement&&w.document.documentElement.clientWidth){return w.document.documentElement.clientWidth;}else if(w.document.body){return w.document.body.clientWidth;};return 0;};QxDOM.getWindowInnerHeight=function(w){if(!w){w=window;};if(w.document.documentElement&&w.document.documentElement.clientHeight){return w.document.documentElement.clientHeight;}else if(w.document.body){return w.document.body.clientHeight;};return 0;};QxDOM.getClientScrollLeft=function(w){if(!w){w=window;};if(w.document.documentElement&&w.document.documentElement.scrollLeft){return w.document.documentElement.scrollLeft;}else if(w.document.body){return w.document.body.scrollTop;};return 0;};QxDOM.getClientScrollTop=function(w){if(!w){w=window;};if(w.document.documentElement&&w.document.documentElement.scrollTop){return w.document.documentElement.scrollTop;}else if(w.document.body){return w.document.body.scrollTop;};return 0;};}else {QxDOM.getWindowInnerWidth=function(w){return(w||window).innerWidth;};QxDOM.getWindowInnerHeight=function(w){return(w||window).innerHeight;};QxDOM.getClientScrollLeft=function(w){return(w||window).document.body.scrollLeft;};QxDOM.getClientScrollTop=function(w){return(w||window).document.body.scrollTop;};};QxDOM.scrollIntoViewX=function(vChild,vParent){if(!vParent){vParent=vChild.parentNode;};var l=vChild.offsetLeft;var w=vChild.offsetWidth;var sl=vParent.scrollLeft;var cw=vParent.clientWidth;if(w>cw||l<sl){vParent.scrollLeft=l;}else if(l+w>sl+cw){vParent.scrollLeft=l+w-cw;};};QxDOM.scrollIntoViewY=function(vChild,vParent){if(!vParent){vParent=vChild.parentNode;};var t=vChild.offsetTop;var h=vChild.offsetHeight;var st=vParent.scrollTop;var ch=vParent.clientHeight;if(h>ch||t<st){vParent.scrollTop=t;}else if(t+h>st+ch){vParent.scrollTop=t+h-ch;};};window._start=(new Date).valueOf();function QxDebug(){var t=String((new Date).valueOf()-window._start);while(t.length<5)t="0"+t;t+=":&#160;";var m;if(arguments.length==2){if(arguments[0]==this.last){m=t+"&#160;&#160;"+arguments[1]+"<br/>";}else {m = t + arguments[0] + "<br/>" + t + "&#160;&#160;" + arguments[1] + "<br/>";this.last=arguments[0];};}else {m=t+arguments[0];};var d=document.getElementById("testDebug");if(!d){QxDebug.cache+=m;}else {if(QxDebug.cache!=""){d.innerHTML+=QxDebug.cache;QxDebug.cache="";};d.innerHTML+=m;};};QxDebug.cache="";function QxDebugTimer(id){if(QxDebugTimerCache[id]){QxDebug("QxDebugTimer",id+":"+((new Date).valueOf()-QxDebugTimerCache[id])+"ms");delete QxDebugTimerCache[id];}else {QxDebugTimerCache[id]=(new Date).valueOf();};};QxDebugTimerCache={};function QxTarget(){QxObject.call(this);this._i5={};};QxTarget.extend(QxObject,"QxTarget");proto._modifyEnabled=function(_b1,_b2,_b3,_b4){QxObject.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);return true;};proto.addEventListener=function(eType,eFunc,eObject){if(this._disposed){return;};if(typeof eFunc!="function"){throw new Error("'"+eFunc+"' is not a function!");};if(typeof this._i5[eType]=="undefined"){this._i5[eType]={};};var key=QxObject.toHash(eFunc)+(eObject?"::"+QxObject.toHash(eObject):"");this._i5[eType][key]={handler:eFunc,object:eObject };};proto.hasEventListeners=function(eType){return typeof this._i5[eType]!="undefined";};proto.removeEventListener=function(eType,eFunc,eObject){if(this._disposed||typeof this._i5[eType]=="undefined"){return;};if(typeof eFunc!="function"){throw new Error("'"+eFunc+"' is not a function!");};var key=QxObject.toHash(eFunc)+(eObject?"::"+QxObject.toHash(eObject):"");delete this._i5[eType][key];};proto.dispatchEvent=function(e,dispose){if(this._disposed){return;};if(!e._target){e._target=this;};this._i6(e,dispose);return !e._defaultPrevented;;};proto._i6=function(e,dispose){if(this._disposed){return;};e.setCurrentTarget(this);var fs=this._i5[e.getType()];if(fs){var f,o;for(var hc in fs){f=fs[hc].handler;o=fs[hc].object;if(typeof f=="function"){f.call(typeof o=="object"?o:this,e);};};};var p=this.getParent();if(e.getBubbles()&&!e.getPropagationStopped()&&p&&p.getEnabled()){p._i6(e,false);};if(dispose){e.dispose();};};proto.getParent=function(){return null;};proto.dispose=function(_b1,propOldName,_b3,_b4){if(this._disposed){return;};if(typeof this._i5=="object"){for(var eType in this._i5){for(var eKey in this._i5[eType]){delete this._i5[eType][eKey];};delete this._i5[eType];};};delete this._i5;return QxObject.prototype.dispose.call(this);};function QxApplication(){if(QxApplication._instance){return QxApplication._instance;};QxTarget.call(this);window.onload=function(){window.application.init();};QxApplication._instance=this;};QxApplication.extend(QxTarget,"QxApplication");proto._clientWindow=null;proto._activeWidget=null;proto._userApplication=null;proto.coreObjects=["QxClient","QxClientWindow","QxClientDocument","QxWidget","QxEventManager","QxFocusManager","QxTarget","QxEvent","QxMouseEvent","QxKeyEvent"];proto.initcheck=function(){var ok=true;if(!document.body){return;};var c=this.coreObjects;for(var i=0,cl=c.length;i<cl;i++){if(typeof window[c[i]]!="function"){ok=false;};};if(ok){window.clearInterval(this._loadHandle);return this.init();};};proto.init=function(){window._appstart=(new Date).valueOf();var irun=(window._appstart-window._start);var iobj=QxObject._i3.length;var iper=String(irun/iobj);iper=iper.substring(0,iper.indexOf(".")+4)+"ms";this.debug("Init Runtime:"+irun+"ms");this.debug("Init Object Count:"+iobj);this.debug("Init Object Perf:"+iper);this._clientWindow=new QxClientWindow(window);if(typeof window.application.main=="function"){window.application.main();};window._appstop=window._stop=(new Date).valueOf();var mrun=(window._appstop-window._appstart);var mobj=(QxObject._i3.length-iobj);var mper=String(mrun/mobj);mper=mper.substring(0,mper.indexOf(".")+4)+"ms";this.debug("Main Runtime:"+mrun+"ms");this.debug("Main Object Count:"+mobj);this.debug("Main Object Perf:"+mper);};proto.setActiveWidget=function(v){this._activeWidget=v;};proto.getActiveWidget=function(){return this._activeWidget;};proto.getClientWindow=function(){return this._clientWindow;};proto.getPath=function(){var p=window.location.href;var v=p.substring(0,p.lastIndexOf("/"));return v;};proto.getUserApplication=function(){return this._userApplication;};proto.setUserApplication=function(userApplication){this._userApplication=userApplication;};proto.dispose=function(){if(this.getDisposed()){return;};var dispose_start=(new Date).valueOf();if(this._clientWindow){this._clientWindow.dispose();this._clientWindow=null;};this._activeWidget=null;QxTarget.prototype.dispose.call(this);QxObject.dispose();QxDebug("QxApplication","Dispose total:"+((new Date).valueOf()-dispose_start)+"ms");};window.application=new QxApplication;function QxUserApplication(){if(QxUserApplication._instance){return QxUserApplication._instance;};QxTarget.call(this);QxUserApplication._instance=this;};QxUserApplication.extend(QxTarget,"QxUserApplication");proto.dispose=function(){if(this.getDisposed()){return;};var dispose_start=(new Date).valueOf();QxTarget.prototype.dispose.call(this);QxObject.dispose();QxDebug("QxUserApplication","Dispose total:"+((new Date).valueOf()-dispose_start)+"ms");};function QxClientWindow(windowElement){QxTarget.call(this);this._h3=windowElement;this._h3._QxClientWindow=this;this._addUnloadEvent(windowElement);this._h4=new QxClientDocument(this);this._h5=new QxEventManager(this);this._h6=new QxFocusManager(this);};QxClientWindow.extend(QxTarget,"QxClientWindow");proto.getEventManager=function(){return this._h5;};proto.getFocusManager=function(){return this._h6;};proto.getClientDocument=function(){return this._h4;};proto.getDocument=function(){return this._h4;};proto.getElement=function(){return this._h3;};if((new QxClient).isMshtml()){proto._addUnloadEvent=function(el){if(el==window){el.attachEvent("onunload",new Function("(new QxApplication).dispose();"));}else {el.attachEvent("onunload",function(e){if(el._QxClientWindow){el._QxClientWindow.dispose();el._QxClientWindow=null;};});};};}else if((new QxClient).isGecko()){proto._addUnloadEvent=function(el){if(el==window){el.addEventListener("unload",new Function("(new QxApplication).dispose();"),false);}else {el.addEventListener("unload",function(e){if(el._QxClientWindow){el._QxClientWindow.dispose();el._QxClientWindow=null;};},false);};};}else {proto._addUnloadEvent=function(el){};};proto.dispose=function(){if(this.getDisposed()){return;};if(this._h3){this._h3._QxClientWindow=null;this._h3=null;};if(this._h5){this._h5.dispose();this._h5=null;};if(this._h6){this._h6.dispose();this._h6=null;};if(this._h4){this._h4.dispose();this._h4=null;};QxTarget.prototype.dispose.call(this);return true;};function QxBuilder(flags){QxTarget.call(this);this._propertyEditors={};this._registerDefaultPropertyEditors();this._radioButtonManagers={};this._debugContext=[];this._flags=flags||{};if(this._flags.strict==null){this._flags.strict=true;};};QxBuilder.extend(QxTarget,"QxBuilder");proto.buildFromUrl=function(parent,url){var loader=new QxXmlHttpLoader();var self=this;loader.addEventListener("complete",function(e){self.build(parent,e.getValue());e.preventDefault();self.dispatchEvent(new QxEvent("done"),true);});loader.load(url);};proto.build=function(parent,node){if(parent instanceof QxApplication){parent=parent.getClientWindow().getDocument();};if(typeof node=="object"&&node.nodeName=='TEXTAREA'){node=node.value;};if(typeof node=="string"){if(new QxClient().isMshtml()){var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");xmlDoc.async=false;xmlDoc.loadXML(node);node=xmlDoc.documentElement;if(xmlDoc.parseError.errorCode!=0){throw new Error("error parsing xml "+xmlDoc.parseError+"\nLine:"+xmlDoc.parseError.line+':'+xmlDoc.parseError.srcText);};}else{var parser=new DOMParser();node=parser.parseFromString(node,"text/xml").documentElement;};};this._buildNodes(parent,node.childNodes);};proto._buildNodes=function(parent,nodes){var x=0;for(var i=0;i<nodes.length;i++){var n=nodes[i];if(n.nodeType==1){this._debugContext.push(n.nodeName+'['+(x++)+']');this._buildWidgetFromNode(parent,n);this._debugContext.pop();};};};proto._buildEventListener=function(widget,args,text){if(isInvalidString(args.type)){throw this._newBuildError('eventListener requires a string type attribute');};var self=this;if(isValidString(args.delegate)){var dc=this._formatDebugContext();if(args.delegate.indexOf('.')>-1){var p=args.delegate.split('.');var o=p[0];var m=p[1];widget.addEventListener(args.type,function(e){if(!window[o]){throw self._newError(dc,'delegate not found',{delegate:args.delegate});};if(!window[o][m]){throw self._newError(dc,'delegate not found',{delegate:args.delegate});};window[o][m].apply(window[o],[e]);});}else{widget.addEventListener(args.type,function(e){if(!window[args.delegate]){throw self._newError(dc,'delegate not found',{delegate:args.delegate});};window[args.delegate].apply(null,[e]);});};}else{if(!args.args){args.args="event";};var f=new Function(args.args,text);widget.addEventListener(args.type,f);};};proto._buildWidgetFromNode=function(parent,node){var className=this._extractClassName(node);if(!className){if(parent instanceof QxAtom){var text=this._serializeToString(node);parent.setText((parent.getText()||"")+text);return;};throw this._newBuildError("unrecognised node",{nodeName:node.nodeName});};if(className=="QxWidgets"){this._buildNodes(parent,node.childNodes);return;};if(className=="QxScript"){var e=document.createElement("script");var attribs=this._mapXmlAttribToObject(node);if(attribs.type){e.type=attribs.type;}else{e.type='text/javascript';};if((new QxClient).isMshtml()){e.innerHTML=eval(node.firstChild.nodeValue);}else {e.innerHTML=node.firstChild.nodeValue;};document.body.appendChild(e);return;};if(className=="QxEventListener"){var attribs=this._mapXmlAttribToObject(node);var text;if(node.firstChild){text=node.firstChild.nodeValue;};this._buildEventListener(parent,attribs,text);return;};var constructor=window[className];if(!constructor){throw this._newBuildError("constructor not found",{className:className});};var widget=new constructor();var attribs=this._mapXmlAttribToObject(node,widget);delete attribs['qxtype'];if(attribs.id){window[attribs.id]=widget;delete attribs.id;};for(var a in attribs){if(a.toLowerCase().indexOf('on')==0&&a.length>2){var type=a.substring(2);type=type.charAt(0)+type.substring(1);this._buildEventListener(widget,{type:type,args:'event'},attribs[a]);delete attribs[a];};};var layoutHint;if(typeof QxLayout!="undefined"&&parent instanceof QxLayout){if(attribs.layouthint){try{eval('layoutHint={'+attribs.layouthint+'}');}catch(e){throw this._newBuildError('invalid property value',{name:'layoutHint',value:attrib.layoutHint},e);};delete attribs.layouthint;};};for(var n in attribs){this._debugContext.push("@"+n);this._setWidgetProperty(widget,n,attribs[n]);this._debugContext.pop();};if(typeof QxMenu!="undefined"&&widget instanceof QxMenu){window.application.getClientWindow().getDocument().add(widget);parent.setMenu(widget);}else if(layoutHint&&typeof QxLayout!="undefined"&&parent instanceof QxLayout){parent.add(widget,layoutHint);}else{parent.add(widget);};this._buildNodes(widget,node.childNodes);};proto._setWidgetProperty=function(widget,name,value){var editor=this._findPropertyEditor(widget.classname,name);if(!editor){editor=this._coercePropertyEditor;};editor.set(widget,name,value);};proto._findPropertyEditor=function(className,propertyName){var m=this._propertyEditors[className];if(m&&m[propertyName]){return m[propertyName];};var w=window[className];if(w&&w.prototype.superclass&&w.prototype.superclass.prototype.classname){return this._findPropertyEditor(w.prototype.superclass.prototype.classname,propertyName);};return null;};proto.registerPropertyEditor=function(className,propertyName,editor){if(!this._propertyEditors[className])this._propertyEditors[className]={};this._propertyEditors[className][propertyName]=editor;};proto._registerDefaultPropertyEditors=function(){var self=this;var commaDelimitedPropertyEditor={};commaDelimitedPropertyEditor.set=function(widget,name,value){if(value==null||value==""){self._setProperty(widget,name,null);return;};var s=value.split(",");var v=[];for(var i=0;i<s.length;i++){v[i]=self._coerce(s[i]);};self._setProperties(widget,name,v);};var evalPropertyEditor={};evalPropertyEditor.set=function(widget,name,value){if(value==null||value==""){self._setProperty(widget,name,null);return;};self._setProperty(widget,name,eval(value));};var radioButtonManagerEditor={};radioButtonManagerEditor.set=function(widget,name,value){var manager=self._radioButtonManagers[value];if(!manager){manager=new QxRadioButtonManager(value);self._radioButtonManagers[value]=manager;};manager.add(widget);};this.registerPropertyEditor('QxWidget','location',commaDelimitedPropertyEditor);this.registerPropertyEditor('QxWidget','dimension',commaDelimitedPropertyEditor);this.registerPropertyEditor('QxWidget','styleproperty',commaDelimitedPropertyEditor);this.registerPropertyEditor('QxWidget','border',evalPropertyEditor);this.registerPropertyEditor('QxMenuRadioButton','group',radioButtonManagerEditor);this.registerPropertyEditor('QxRadioButton','group',radioButtonManagerEditor);this._coercePropertyEditor={};this._coercePropertyEditor.set=function(widget,name,value){self._setProperty(widget,name,self._coerce(value));};};proto._coerce=function(value){if(value==null)return value;if(typeof value=='object')return value;if(typeof value=='function')return value;if(typeof value=='number')return value;if(typeof value=='boolean')return value;if(typeof value=='date')return value;if(typeof value=='array')return value;var n=new Number(value);if(!isNaN(n))return n.valueOf();if(value=="true")return true;if(value=="false")return false;var d=Date.parse(value);if(d!=null&&!isNaN(d))return d;if(typeof value=='string'){if(value=="")return null;};return value;};proto._setProperty=function(widget,name,value){this._setProperties(widget,name,[value]);};proto._setProperties=function(widget,name,value){var n="set"+name;for(var a in widget){if(n==a.toLowerCase()){var setter=widget[a];break;};};if(!setter&&this._flags.strict)throw this._newBuildError('no setter defined on widget instance',{widget:widget,property:name});setter.apply(widget,value);};proto._extractClassName=function(node){var n;if(node.nodeName.toUpperCase()=="DIV"){if(!node.attributes['qxtype']){return null };n=node.attributes['qxtype'].value;}else{n=node.nodeName;};var nameParts=n.split(":");if(nameParts.length!=2){return null;};return nameParts[0].toFirstUp()+nameParts[1].toFirstUp();};proto._serializeToString=function(node){var xmlSerializer=new XMLSerializer();return xmlSerializer.serializeToString(node);};proto._mapXmlAttribToObject=function(node){var r={};var c=node.attributes;for(var i=0;i<c.length;i++){r[c[i].name.toLowerCase()]=c[i].value;};return r;};proto._newBuildError=function(message,data,exception){return this._newError(this._formatDebugContext(),message,data,exception);};proto._newError=function(debugContext,message,data,exception){var m=message;var joiner="";var d="";if(data){for(var p in data){d+=joiner+p+"="+data[p]+'';joiner=" ";};m+=" "+d+" ";};m+=" context:"+debugContext+" ";if(exception){m+=" error:"+exception+" ";};return new Error(m);};proto._formatDebugContext=function(){var s="";for(var i=0;i<this._debugContext.length;i++){var v=this._debugContext[i];s+='/'+v;};return s;};function QxVariable(v){return v;};function QxString(v){return String(v);};function QxNumber(v){if(typeof v=="number"){return v;}else if(typeof v=="string"){if(v=="true"||v=="false"){return Number(Boolean(v));}else {return parseFloat(v);};}else if(typeof v=="boolean"){return Number(v);}else {return NaN;};};function QxInteger(v){return Math.round(QxNumber(v));};function QxColor(v){var v1=QxColor.read(v);var v2=QxColor.RGB2CSS(v1);return v2;};QxColor.m_hex=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];QxColor.r_hex3 = /^#[0-9A-Fa-f]{3}$/;QxColor.r_hex6 = /^#[0-9A-Fa-f]{6}$/;QxColor.r_cssrgb = /^rgb\([0-9]{1,3}\.{0,1}[0-9]*,\s*[0-9]{1,3}\.{0,1}[0-9]*,\s*[0-9]{1,3}\.{0,1}[0-9]*\)$/;QxColor.r_rgb = /^[0-9]{1,3},[0-9]{1,3},[0-9]{1,3}$/;QxColor.r_number = /^[0-9]{1,3}\.{0,1}[0-9]*$/;QxColor.r_percent = /^[0-9]{1,3}\.{0,1}[0-9]*%$/;QxColor.os=["activeborder","activecaption","appworkspace","background","buttonface","buttonhighlight","buttonshadow","buttontext","captiontext","graytext","highlight","highlighttext","inactiveborder","inactivecaption","inactivecaptiontext","infobackground","infotext","menu","menutext","scrollbar","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","window","windowframe","windowtext"];QxColor.names={white:[255,255,255],black:[0,0,0],grey:[128,128,128],gray:[128,128,128],red:[255,0,0],green:[0,128,0],blue:[0,0,255],yellow:[255,255,0],orange:[255,165,0],purple:[128,0,128],cyan:[0,255,255],magenta:[255,0,255] };QxColor.read=function(v){if(v==null||v==""){return null;}else if(v=="transparent"){return v;}else if(typeof v=="object"){if(typeof v.length=="undefined"||v.length==0)throw new Error("Malformed Object");if(v.length==1)return[v[0],v[0],v[0]];else if(v.length==3)return v;else throw new Error("Malformed Object");}else if(v=="false"||v==false){return[0,0,0];}else if(v=="true"||v==true){return[255,255,255];}else if(typeof QxColor.names[v]=="object"){return QxColor.names[v];}else if(QxColor.os.contains(v.toString().toLowerCase())){return v;}else if(QxColor.r_hex3.test(v)){var r=[];var s;v=v.toUpperCase();for(var i=0;i<3;i++){s=QxColor.m_hex.indexOf(v.charAt(i+1));r[i]=(s*16)+s;};return r;}else if(QxColor.r_hex6.test(v)){var r=[];var s1,s2;v=v.toUpperCase();for(var i=0;i<3;i++){s1=QxColor.m_hex.indexOf(v.charAt((i*2)+1));s2=QxColor.m_hex.indexOf(v.charAt((i*2)+2));r[i]=(s1*16)+s2;};return r;}else if(QxColor.r_cssrgb.test(v)||QxColor.r_rgb.test(v)){if(QxColor.r_cssrgb.test(v)){v=v.substring(4,v.length-1);};v = v.split(/,\s*/);for(var i=0;i<3;i++){v[i]=Math.round(v[i]);if(v[i]>255||v[i]<0){throw new Error("Malformed RGB color value");};};return v;}else if(QxColor.r_number.test(v)){v=Math.round(parseFloat(v));if(isNaN(v)){throw new Error("Malformed numeric color value");};return[v,v,v];}else if(QxColor.r_percent.test(v)){v1=Math.round(255*parseFloat(v.replace("%",""))/100);if(v>255||v<0){throw new Error("Malformed percent color value");};return[v,v,v];};QxDebug("QxColor","Failed to read color value:"+v);return[0,0,0];};QxColor.RGB2CSS=function(){if(arguments.length==3){return "rgb("+arguments[0]+","+arguments[1]+","+arguments[2]+")";}else if(arguments.length==1){if(typeof arguments[0]=="string")return arguments[0];else if(arguments[0]==null)return "";else return "rgb("+arguments[0][0]+","+arguments[0][1]+","+arguments[0][2]+")";};return;};QxColor.RGB2HSB=function(r,g,b){var hue,saturation,brightness;r=parseFloat(r);g=parseFloat(g);b=parseFloat(b);var hsbvals=new Array(3);var cmax=(r>g)?r:g;if(b>cmax)cmax=b;var cmin=(r<g)?r:g;if(b<cmin)cmin=b;brightness=cmax/255.0;if(cmax!=0){saturation=(cmax-cmin)/cmax;}else {saturation=0;};if(saturation==0){hue=0;}else {var redc=(cmax-r)/(cmax-cmin);var greenc=(cmax-g)/(cmax-cmin);var bluec=(cmax-b)/(cmax-cmin);if(r==cmax){hue=bluec-greenc;}else if(g==cmax){hue=2.0+redc-bluec;}else {hue=4.0+greenc-redc;};hue=hue/6.0;if(hue<0)hue=hue+1.0;};hsbvals[0]=Math.round(hue*360);hsbvals[1]=Math.round(saturation*100);hsbvals[2]=Math.round(brightness*100);return hsbvals;};QxColor.HSB2RGB=function(h,s,b){var i,f,p,q,t,retval;h=parseFloat(h/360);s=parseFloat(s/100);b=parseFloat(b/100);if(h>=1.0)h %=1.0;if(s>1.0)s=1.0;if(b>1.0)b=1.0;var tov=Math.floor(255*b);if(s==0.0){retval=new Array(tov,tov,tov);}else {h*=6.0;i=Math.floor(h);f=h-i;p=Math.floor(tov*(1.0-s));q=Math.floor(tov*(1.0-(s*f)));t=Math.floor(tov*(1.0-(s*(1.0-f))));if(i==0)retval=new Array(tov,t,p);if(i==1)retval=new Array(q,tov,p);if(i==2)retval=new Array(p,tov,t);if(i==3)retval=new Array(p,q,tov);if(i==4)retval=new Array(t,p,tov);if(i==5)retval=new Array(tov,p,q);};return retval;};function QxTextile(s){var r=s;qtags=[ ["\\*","strong"],["\\?\\?","cite"],["\\+","ins"],["~","sub"],["\\^","sup"],["@","code"] ];for(var i=0;i<qtags.length;i++){ttag=qtags[i][0];htag=qtags[i][1];re=new RegExp(ttag+"\\b(.+?)\\b"+ttag,"g");r=r.replace(re,"<"+htag+">"+"$1"+"</"+htag+">");};re=new RegExp("\\b_(.+?)_\\b","g");r=r.replace(re,"<em>$1</em>");re=new RegExp("[\s\n]-(.+?)-[\s\n]","g");r=r.replace(re,"<del>$1</del>");re=new RegExp('"\\b(.+?)\\(\\b(.+?)\\b\\)":([^\\s]+)','g');r=r.replace(re,'<a href="$3" title="$2">$1</a>');re=new RegExp('"\\b(.+?)\\b":([^\\s]+)','g');r=r.replace(re,'<a href="$2">$1</a>');re=new RegExp("!\\b(.+?)\\(\\b(.+?)\\b\\)!","g");r=r.replace(re,'<img src="$1" alt="$2">');re=new RegExp("!\\b(.+?)\\b!","g");r=r.replace(re,'<img src="$1">');re=new RegExp("(.*)\n([^#\*\n].*)","g");r=r.replace(re,"$1<br/>$2");re=new RegExp("\n<br/>","g");r=r.replace(re,"\n");lines=r.split("\n");nr="";for(var i=0;i<lines.length;i++){line = lines[i].replace(/\s*$/,"");changed=0;if (line.search(/^\s*bq\.\s+/) != -1){line = line.replace(/^\s*bq\.\s+/,"\t<blockquote>")+"</blockquote>";changed=1;};if (line.search(/^\s*h[1-6]\.\s+/) != -1){re=new RegExp("h([1-6])\.(.+)","g");line=line.replace(re,"<h$1>$2</h$1>");changed=1;};if (line.search(/^\s*\*\s+/) != -1){line = line.replace(/^\s*\*\s+/,"\t<liu>") + "</liu>";changed=1;};if (line.search(/^\s*#\s+/) != -1){line = line.replace(/^\s*#\s+/,"\t<lio>") + "</lio>";changed=1;};if (!changed && (line.replace(/\s/g,"").length > 0)){line="<p>"+line+"</p>";};lines[i]=line+"\n";};inlist=0;listtype="";for(var i=0;i<lines.length;i++){line=lines[i];if (inlist && listtype == "ul" && !line.match(/^\t<liu/)){line="</ul>\n"+line;inlist=0;};if (inlist && listtype == "ol" && !line.match(/^\t<lio/)){line="</ol>\n"+line;inlist=0;};if (!inlist && line.match(/^\t<liu/)){line="<ul>"+line;inlist=1;listtype="ul";};if (!inlist && line.match(/^\t<lio/)){line="<ol>"+line;inlist=1;listtype="ol";};lines[i]=line;};r=lines.join("\n");r = r.replace(/li[o|u]>/g, "li>");return r;};function QxEvent(eType,autoDispose){if(typeof autoDispose!="boolean"&&this.classname=="QxEvent"){autoDispose=false;};QxObject.call(this,autoDispose);if(isValid(eType)){this._type=eType;};};QxEvent.extend(QxObject,"QxEvent");proto._bubbles=false;proto._propagationStopped=true;proto._defaultPrevented=false;proto._type="";proto._target=null;proto._currentTarget=null;proto._relatedTarget=null;proto.setType=function(t){this._type=t;};proto.setBubbles=function(b){this._bubbles=b;};proto.setPropagationStopped=function(s){this._propagationStopped=s;};proto.stopPropagation=function(){this._propagationStopped=true;};proto.setPreventDefault=function(d){this._defaultPrevented=d;};proto.setTarget=function(t){this._target=t;};proto.setCurrentTarget=function(t){this._currentTarget=t;};proto.setRelatedTarget=function(t){this._relatedTarget=t;};proto.preventDefault=function(){this.setPreventDefault(true);};proto.getType=function(){return this._type;};proto.getBubbles=function(){return this._bubbles;};proto.getPropagationStopped=function(){return this._propagationStopped;};proto.getPreventDefault=function(){return this._defaultPrevented;};proto.getTarget=function(){return this._target;};proto.getCurrentTarget=function(){return this._currentTarget;};proto.getRelatedTarget=function(){return this._relatedTarget;};proto.dispose=function(){if(this._disposed){return;};this._target=null;this._currentTarget=null;this._relatedTarget=null;QxObject.prototype.dispose.call(this);};function QxMouseEvent(vType,vDomEvent,vAutoDispose,vTarget,vActiveTarget,vRelatedTarget){QxEvent.call(this,vType,vAutoDispose);if(vDomEvent){this._domEvent=vDomEvent;this._domTarget=vDomEvent.target||vDomEvent.srcElement;this._target=isValid(vTarget)?vTarget:this._evalTarget();this._activeTarget=isValid(vActiveTarget)?vActiveTarget:this._evalActiveTarget();this._relatedTarget=isValid(vRelatedTarget)?vRelatedTarget:this._evalRelatedTarget();this._pageX=this._evalPageX();this._pageY=this._evalPageY();this._clientX=this._evalClientX();this._clientY=this._evalClientY();switch(this._button=this._evalButton()){case "left":this._buttonLeft=true;break;case "middle":this._buttonMiddle=true;break;case "right":this._buttonRight=true;break;};};};QxMouseEvent.extend(QxEvent,"QxMouseEvent");proto._bubbles=true;proto._propagationStopped=false;proto._preventDefault=false;proto._domEvent=null;proto._domTarget=null;proto.getDomEvent=function(){return this._domEvent;};proto.getDomTarget=function(){return this._domTarget;};proto._pageX=null;proto._pageY=null;proto.getPageX=function(){return this._pageX;};proto.getPageY=function(){return this._pageY;};if((new QxClient).isGecko()){proto._evalPageX=function(){return this._domEvent.pageX;};proto._evalPageY=function(){return this._domEvent.pageY;};}else if((new QxClient).isMshtml()){if(isInvalid(document.compatMode)||document.compatMode=="BackCompat"){proto._evalPageX=function(){return this._domEvent.clientX+document.documentElement.scrollLeft;};proto._evalPageY=function(){return this._domEvent.clientY+document.documentElement.scrollTop;};}else {proto._evalPageX=function(){return this._domEvent.clientX+document.body.scrollLeft;};proto._evalPageY=function(){return this._domEvent.clientY+document.body.scrollTop;};};}else {proto._evalPageX=function(){return this._domEvent.clientX;};proto._evalPageY=function(){return this._domEvent.clientY;};};proto._clientX=null;proto._clientY=null;proto.getClientX=function(){return this._clientX;};proto.getClientY=function(){return this._clientY;};if((new QxClient).isMshtml()||(new QxClient).isGecko()){proto._evalClientX=function(){return this._domEvent.clientX;};proto._evalClientY=function(){return this._domEvent.clientY;};}else {proto._evalClientX=function(){return this._domEvent.clientX+(document.body&&document.body.scrollLeft!=null?document.body.scrollLeft:0);};proto._evalClientY=function(){return this._domEvent.clientY+(document.body&&document.body.scrollTop!=null?document.body.scrollTop:0);};};proto.getScreenX=function(){return this._domEvent.screenX;};proto.getScreenY=function(){return this._domEvent.screenY;};proto.getCtrlKey=function(){return this._domEvent.ctrlKey;};proto.getShiftKey=function(){return this._domEvent.shiftKey;};proto.getAltKey=function(){return this._domEvent.altKey;};proto.getDomTargetByTagName=function(elemTagName,stopElem){var dt=this.getDomTarget();while(dt&&dt.tagName!=elemTagName&&dt!=stopElem){dt=dt.parentNode;};if(dt&&dt.tagName==elemTagName){return dt;};return null;};if((new QxClient).isMshtml()){proto.preventDefault=function(){this._domEvent.returnValue=false;this._defaultPrevented=true;};}else {proto.preventDefault=function(){this._domEvent.preventDefault();this._domEvent.returnValue=false;this._defaultPrevented=true;};};proto.getDefaultPrevented=function(){return this._defaultPrevented;};proto._target=proto._activeTarget=proto._relatedTarget=null;proto.getTarget=function(){return this._target;};proto.getActiveTarget=function(){return this._activeTarget;};proto.getRelatedTarget=function(){return this._relatedTarget;};proto._evalTarget=function(){return QxEventManager.getTargetObjectFromEvent(this._domEvent);};proto._evalActiveTarget=function(){return QxEventManager.getActiveTargetObjectFromEvent(this._domEvent);};proto._evalRelatedTarget=function(){return QxEventManager.getRelatedActiveTargetObjectFromEvent(this._domEvent);};proto._button=0;proto.getButton=function(){return this._button;};proto.isLeftButton=function(){return this._buttonLeft;};proto.isMiddleButton=function(){return this._buttonMiddle;};proto.isRightButton=function(){return this._buttonRight;};proto.isNotLeftButton=function(){return !this._buttonLeft;};proto.isNotMiddleButton=function(){return !this._buttonMiddle;};proto.isNotRightButton=function(){return !this._buttonRight;};if((new QxClient).isMshtml()){proto._evalButton=function(){var b=this._domEvent.button;return b==1?"left":b==2?"right":b==4?"middle":null;};QxMouseEvent.buttons={left:1,right:2,middle:4};}else {proto._evalButton=function(){var b=this._domEvent.button;return b==0?"left":b==2?"right":b==1?"middle":null;};QxMouseEvent.buttons={left:0,right:2,middle:1};};proto._wheelDelta=0;proto._wheelDeltaEvaluated=false;proto.getWheelDelta=function(){if(this._wheelDeltaEvaluated){return this._wheelDelta;};this._wheelDeltaEvaluated=true;return this._wheelDelta=this._evalWheelDelta();};if((new QxClient).isMshtml()){proto._evalWheelDelta=function(){return this._domEvent.wheelDelta?this._domEvent.wheelDelta/40:0;};}else {proto._evalWheelDelta=function(){return-(this._domEvent.detail||0);};};proto.dispose=function(){if(this.getDisposed()){return;};QxEvent.prototype.dispose.call(this);this._domEvent=null;this._domTarget=null;this._target=null;this._activeTarget=null;this._relatedTarget=null;};QxMouseEvent._screenX=QxMouseEvent._screenY=QxMouseEvent._clientX=QxMouseEvent._clientY=QxMouseEvent._pageX=QxMouseEvent._pageY=0;QxMouseEvent._button=null;QxMouseEvent._storeEventState=function(e){QxMouseEvent._screenX=e.getScreenX();QxMouseEvent._screenY=e.getScreenY();QxMouseEvent._clientX=e.getClientX();QxMouseEvent._clientY=e.getClientY();QxMouseEvent._pageX=e.getPageX();QxMouseEvent._pageY=e.getPageY();QxMouseEvent._button=e.getButton();};QxMouseEvent.getScreenX=function(){return QxMouseEvent._screenX;};QxMouseEvent.getScreenY=function(){return QxMouseEvent._screenY;};QxMouseEvent.getClientX=function(){return QxMouseEvent._clientX;};QxMouseEvent.getClientY=function(){return QxMouseEvent._clientY;};QxMouseEvent.getPageX=function(){return QxMouseEvent._pageX;};QxMouseEvent.getPageY=function(){return QxMouseEvent._pageY;};QxMouseEvent.getButton=function(){return QxMouseEvent._button;};function QxKeyEvent(eType,domEvent,autoDispose){QxEvent.call(this,eType,autoDispose);this._domEvent=domEvent;};QxKeyEvent.extend(QxEvent,"QxKeyEvent");QxKeyEvent.keys= {esc:27,enter:13,tab:9,space:32,up:38,down:40,left:37,right:39,shift:16,ctrl:17,alt:18,f1:112,f2:113,f3:114,f4:115,f5:116,f6:117,f7:118,f8:119,f9:120,f10:121,f11:122,f12:123,del:46,backspace:8,insert:45,home:36,end:35,pageup:33,pagedown:34,numlock:144,numpad_0:96,numpad_1:97,numpad_2:98,numpad_3:99,numpad_4:100,numpad_5:101,numpad_6:102,numpad_7:103,numpad_8:104,numpad_9:105,numpad_divide:111,numpad_multiply:106,numpad_minus:109,numpad_plus:107 };QxKeyEvent.codes={};for(var i in QxKeyEvent.keys){QxKeyEvent.codes[QxKeyEvent.keys[i]]=i;};proto._domEvent=null;proto._preventDefault=false;proto._bubbles=true;proto._propagationStopped=false;proto.dispose=function(){if(this._disposed)return;this._domEvent=null;QxEvent.prototype.dispose.call(this);};proto.getDomEvent=function(){return this._domEvent;};proto.getDomTarget=function(){return this._domEvent.target||this._domEvent.srcElement;};proto.getKeyCode=function(){return this._domEvent.keyCode||this._domEvent.charCode;};proto.getCtrlKey=function(){return this._domEvent.ctrlKey;};proto.getShiftKey=function(){return this._domEvent.shiftKey;};proto.getAltKey=function(){return this._domEvent.altKey;};proto.setPreventDefault=function(d){if(!this._defaultPrevented&&d){this.preventDefault();}else {return false;};};if((new QxClient).isMshtml()){proto.preventDefault=function(){this._domEvent.returnValue=false;this._defaultPrevented=true;};}else {proto.preventDefault=function(){this._domEvent.preventDefault();this._domEvent.returnValue=false;this._defaultPrevented=true;};};function QxFocusEvent(eType,autoDispose){QxEvent.call(this,eType,autoDispose);if(eType=="focusin"||eType=="focusout"){this._bubbles=true;this._propagationStopped=false;};};QxFocusEvent.extend(QxEvent,"QxFocusEvent");function QxDataEvent(eType,newValue,oldValue,autoDispose){QxEvent.call(this,eType,autoDispose);if(typeof newValue!="undefined"){this._newValue=newValue;};if(typeof oldValue!="undefined"){this._oldValue=oldValue;};};QxDataEvent.extend(QxEvent,"QxDataEvent");proto._propagationStopped=false;proto.getValue=proto.getData=proto.getNewValue=function(){return this._newValue;};proto.getOldValue=function(){return this._oldValue;};proto.dispose=function(){if(this._disposed){return;};this._newValue=this._oldValue=null;QxEvent.prototype.dispose.call(this);};function QxWidget(){QxTarget.call(this);this._a2=[];this._htmlProperties=copyCreateHash(this._htmlProperties);this._htmlProperties.id="QxWidget-"+(++QxWidget._count);this._htmlProperties.className=this.classname;if(isInvalid(this._htmlProperties.hideFocus)){this._htmlProperties.hideFocus=false;};if(isInvalid(this._htmlProperties.unselectable)){this._htmlProperties.unselectable="on";};this._htmlAttributes=copyCreateHash(this._htmlAttributes);this._styleProperties=copyCreateHash(this._styleProperties);this._usedDimensionsHorizontal=[];this._usedDimensionsVertical=[];};QxWidget.extend(QxTarget,"QxWidget");QxWidget._count=0;QxWidget.addProperty({name:"parent",defaultValue:null});QxWidget.addProperty({name:"element"});QxWidget.addProperty({name:"visible",type:Boolean,defaultValue:false,getAlias:"isVisible"});QxWidget.addProperty({name:"anonymous",type:Boolean,defaultValue:false,getAlias:"isAnonymous"});QxWidget.addProperty({name:"tagName",type:String,defaultValue:"DIV"});QxWidget.addProperty({name:"cssClassName",type:String});QxWidget.addProperty({name:"timerCreate",type:Boolean,defaultValue:true});QxWidget.addProperty({name:"layoutHint",defaultValue:"auto"});QxWidget.addProperty({name:"position",type:String,impl:"styleProperty"});QxWidget.addProperty({name:"float",type:String,impl:"floatStyleProperty"});QxWidget.addProperty({name:"display",type:String,impl:"styleProperty",defaultValue:"none"});QxWidget.addProperty({name:"visibility",type:String,impl:"styleProperty",defaultValue:"hidden"});QxWidget.addProperty({name:"textAlign",type:String,impl:"styleProperty"});QxWidget.addProperty({name:"verticalAlign",type:String,impl:"styleProperty"});QxWidget.addProperty({name:"horizontalAlign",type:String});QxWidget.addProperty({name:"zIndex",type:Number,impl:"styleProperty"});QxWidget.addProperty({name:"backgroundColor",type:QxColor,impl:"styleProperty"});QxWidget.addProperty({name:"color",type:QxColor,impl:"styleProperty"});QxWidget.addProperty({name:"border",type:Object});QxWidget.addProperty({name:"opacity",type:Number});QxWidget.addProperty({name:"cursor",type:String});QxWidget.addProperty({name:"backgroundImage",type:String});QxWidget.addProperty({name:"overflow",type:String});QxWidget.addProperty({name:"clip",type:Object});QxWidget.addProperty({name:"tabIndex",type:Number,defaultValue:-1});QxWidget.addProperty({name:"focused",type:Boolean,defaultValue:false});QxWidget.addProperty({name:"canSelect",type:Boolean,defaultValue:true});QxWidget.addProperty({name:"toolTip",type:Object});QxWidget.addProperty({name:"contextMenu",type:Object});QxWidget.addProperty({name:"state",type:String});QxWidget.addProperty({name:"capture",type:Boolean,defaultValue:false});QxWidget.addProperty({name:"dropDataTypes",type:Object});QxWidget.addProperty({name:"command",type:Object});QxWidget.addProperty({name:"appearance",type:String});QxWidget.addProperty({name:"marginTop",type:Number,defaultValue:0,impl:"marginVertical",groups:["margin"]});QxWidget.addProperty({name:"marginRight",type:Number,defaultValue:0,impl:"marginHorizontal",groups:["margin"]});QxWidget.addProperty({name:"marginBottom",type:Number,defaultValue:0,impl:"marginVertical",groups:["margin"]});QxWidget.addProperty({name:"marginLeft",type:Number,defaultValue:0,impl:"marginHorizontal",groups:["margin"]});QxWidget.addProperty({name:"paddingTop",type:Number,defaultValue:0,impl:"paddingVertical",groups:["padding"]});QxWidget.addProperty({name:"paddingRight",type:Number,defaultValue:0,impl:"paddingHorizontal",groups:["padding"]});QxWidget.addProperty({name:"paddingBottom",type:Number,defaultValue:0,impl:"paddingVertical",groups:["padding"]});QxWidget.addProperty({name:"paddingLeft",type:Number,defaultValue:0,impl:"paddingHorizontal",groups:["padding"]});QxWidget.addProperty({name:"left",impl:"horizontalDimension",groups:["location","space","edge"]});QxWidget.addProperty({name:"right",impl:"horizontalDimension",groups:["edge"]});QxWidget.addProperty({name:"width",impl:"horizontalDimension",groups:["dimension","space"]});QxWidget.addProperty({name:"minWidth",impl:"horizontalLimitDimension",defaultValue:-Infinity});QxWidget.addProperty({name:"maxWidth",impl:"horizontalLimitDimension",defaultValue:Infinity});QxWidget.addProperty({name:"top",impl:"verticalDimension",groups:["location","space","edge"]});QxWidget.addProperty({name:"bottom",impl:"verticalDimension",groups:["edge"]});QxWidget.addProperty({name:"height",impl:"verticalDimension",groups:["dimension","space"]});QxWidget.addProperty({name:"minHeight",impl:"verticalLimitDimension",defaultValue:-Infinity});QxWidget.addProperty({name:"maxHeight",impl:"verticalLimitDimension",defaultValue:Infinity});proto.isCreated=function(){return Boolean(this.getElement());};proto._visualPropertyCheck=function(){if(!this.isCreated()){throw new Error("Create the element first!");};};proto.getStyle=function(){var el=this.getElement();if(!el){throw new Error("Element is not already created!");};return el.style;};proto._createElement=function(_b4){return this.setElement(this.getTopLevelWidget().getDocumentElement().createElement(this.getTagName()),_b4);};proto._getParentNodeForChild=function(otherObject){return this.getElement();};proto._createChildren=function(){var ch=this.getChildren();var chl=ch.length;var cho;var el;try{for(var i=0;i<chl;i++){cho=ch[i];switch(cho.isCreated()){case true:el=cho.getElement();if(!el.parentNode&&cho._shouldBecomeCreated()){this._getParentNodeForChild(cho).appendChild(el);};break;case false:if(cho._shouldBecomeCreated()){cho._createElementWrapper();};break;};};}catch(ex){throw new Error("Failed to setup children:"+ex);};};proto._shouldBecomeCreated=function(){return true;};proto._shouldBecomeChilds=function(){return true;};proto._shouldBecomeVisible=function(){return true;};proto._appendElement=function(otherObject){var pl=this._getParentNodeForChild(otherObject);if(pl){var el=otherObject.getElement();try{pl.appendChild(el);el.scrollTop=el.scrollLeft=pl.scrollTop=pl.scrollLeft=0;}catch(ex){throw new Error("Could not append element:"+el+" to "+pl+":"+ex);};this._postAppendChild(otherObject);}else {throw new Error("No parent node available for this widget:"+otherObject+")");};};proto._removeElement=function(otherObject){var el=otherObject.getElement();var pl=el.parentNode;if(pl){try{pl.removeChild(el);}catch(ex){throw new Error("Could not remove element:"+el+":"+ex);};this._postRemoveChild(otherObject);};};proto._postAppendChild=function(otherObject){if(!this._wasVisible){return;};this._invalidatePreferred();this._onnewchild(otherObject);};proto._onnewchild=function(otherObject){if(this.getWidth()=="auto"){this._setChildrenDependWidth(otherObject,"append-child");};if(this.getHeight()=="auto"){this._setChildrenDependHeight(otherObject,"append-child");};};proto._postRemoveChild=function(otherObject){if(!this._wasVisible){return;};this._invalidatePreferred();this._onremovechild(otherObject);};proto._onremovechild=function(otherObject){if(this.getWidth()=="auto"){this._setChildrenDependWidth(otherObject,"remove-child");};if(this.getHeight()=="auto"){this._setChildrenDependHeight(otherObject,"remove-child");};};proto._appendMyself=function(){var pa=this.getParent();if(pa){pa._appendElement(this);};};proto._removeMyself=function(vParent){if(vParent){vParent._removeElement(this);};};proto._beforeShow=function(_b4){};proto._beforeHide=function(_b4){};QxWidget._createList=[];QxWidget._createListLength=0;QxWidget._createListMaxCount=0;QxWidget._createMaxTimeout=500;QxWidget._createInterval=10;QxWidget.addToCreateList=function(vWidget){QxWidget._createList.push(vWidget);QxWidget._createListMaxCount++;QxWidget._createListLength++;if(QxWidget._createTimer==null){var vWin=window.application.getClientWindow();if(vWin&&vWin.hasEventListeners("creatorStarted")){vWin.dispatchEvent(new QxEvent("creatorStarted"),true);};this._createStart=(new Date).valueOf();QxWidget._createTimer=window.setInterval("QxWidget._timeCreator()",QxWidget._createInterval);};};QxWidget._timeCreator=function(){if(this._timeCreatorRun){return;};this._timeCreatorRun=true;var vParent,vCurrent;var vList=QxWidget._createList;var vStart=(new Date).valueOf();while((vCurrent=vList[0])&&((new Date).valueOf()-vStart)<QxWidget._createMaxTimeout){if(vCurrent.isCreated()){vList.shift();continue;};vParent=vCurrent.getParent();if(vParent&&vParent.isCreated()){vCurrent._createElement();vList.shift();QxWidget._createListLength--;};};var vWin=window.application.getClientWindow();if(vWin&&vWin.hasEventListeners("creatorInterval")){vWin.dispatchEvent(new QxDataEvent("creatorInterval",100-Math.round(QxWidget._createListLength/QxWidget._createListMaxCount*100)),true);};if(QxWidget._createListLength==0){window.clearInterval(QxWidget._createTimer);QxWidget._createTimer=null;QxWidget._createListMaxCount=0;var vWin=window.application.getClientWindow();if(vWin&&vWin.hasEventListeners("creatorStopped")){vWin.dispatchEvent(new QxEvent("creatorStopped"),true);};};delete this._timeCreatorRun;};proto._createElementWrapper=function(_b4){var vParent=this.getParent();if(this.getTimerCreate()&&vParent.getWidth()!="auto"&&vParent.getHeight()!="auto"){QxWidget.addToCreateList(this);}else {this._createElement(_b4);};};proto._modifyParent=function(_b1,_b2,_b3,_b4){if(_b2){_b2._removeChild(this);if(this.isCreated()){this._removeMyself(_b2);};};if(_b1){if(this.contains(_b1)){throw new Error("Could not add me to a child!");};_b1._pushChild(this);if(_b1.isCreated()){if(!_b1._shouldBecomeChilds()){return true;}else if(!this._shouldBecomeCreated()){return true;}else if(!this.isCreated()){this._createElementWrapper(_b4);}else {this._appendMyself();this._render("force");};};};return true;};proto._modifyElement=function(_b1,_b2,_b3,_b4){if(_b2){this._removeMyself(this.getParent());_b2._QxWidget=null;_b2.id="";_b2.name="";this._removeInlineEvents(_b2);};if(_b1){_b1._QxWidget=this;this._applyStyleProperties(_b1,_b4);this._applyHtmlProperties(_b1,_b4);this._applyHtmlAttributes(_b1,_b4);this._addInlineEvents(_b1);this.setVisible(true,_b4);};return true;};if((new QxClient).isMshtml()){proto._addInlineEvents=function(el){el.onpropertychange=QxWidget.__oninlineevent;el.attachEvent("onselect",QxWidget.__oninlineevent);el.attachEvent("onscroll",QxWidget.__oninlineevent);el.attachEvent("onfocus",QxWidget.__oninlineevent);el.attachEvent("onblur",QxWidget.__oninlineevent);};proto._removeInlineEvents=function(el){el.onpropertychange=null;el.detachEvent("onselect",QxWidget.__oninlineevent);el.detachEvent("onscroll",QxWidget.__oninlineevent);el.detachEvent("onfocus",QxWidget.__oninlineevent);el.detachEvent("onblur",QxWidget.__oninlineevent);};}else {proto._addInlineEvents=function(el){el.addEventListener("select",QxWidget.__oninlineevent,false);el.addEventListener("scroll",QxWidget.__oninlineevent,false);el.addEventListener("focus",QxWidget.__oninlineevent,false);el.addEventListener("blur",QxWidget.__oninlineevent,false);};proto._removeInlineEvents=function(el){el.removeEventListener("select",QxWidget.__oninlineevent,false);el.removeEventListener("scroll",QxWidget.__oninlineevent,false);el.removeEventListener("focus",QxWidget.__oninlineevent,false);el.removeEventListener("blur",QxWidget.__oninlineevent,false);};};QxWidget.__oninlineevent=function(e){if(this._QxWidget){return this._QxWidget._oninlineevent(e);};};proto._oninlineevent=function(e){if(!e){e=window.event;};switch(e.type){case "focus":case "blur":case "select":case "scroll":case "load":break;case "propertychange":break;default:this.debug("Uncatched inline event:"+e.type);};};proto._wasVisible=false;proto._modifyVisible=function(_b1,_b2,_b3,_b4){if(_b1){if(!this.isCreated()){this.forceVisible(false);this._createElementWrapper();return true;};if(!this._wasVisible){this.setDisplay(null);this._appendMyself();var vAutoWidth=this._typeof_width=="auto";var vAutoHeight=this._typeof_height=="auto";if(vAutoWidth||vAutoHeight){this._createChildren();if(vAutoWidth){this._setChildrenDependWidth();};if(vAutoHeight){this._setChildrenDependHeight();};this._render("initial");this._wasVisible=true;var ch=this.getChildren();var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._render("initial");};}else {this._render("initial");this._wasVisible=true;this._createChildren();};this._invalidatePreferred();}else {this.setDisplay(null);if(this._renderHorizontalOmitted){this._renderHorizontal("force");this._renderHorizontalOmitted=false;};if(this._renderVerticalOmitted){this._renderVertical("force");this._renderVerticalOmitted=false;};};this._beforeShow(_b4);this.setVisibility("inherit",_b4);}else {this._beforeHide(_b4);this.setVisibility("hidden",_b4);this.setDisplay("none");};return true;};proto.getChildren=function(){return this._a2;};proto.getChildrenLength=function(){return this.getChildren().length;};proto.hasChildren=function(){return this.getChildrenLength()>0;};proto.getTopLevelWidget=function(){var p=this.getParent();if(p==null){return null;};return p.getTopLevelWidget();};proto.add=function(){var l=arguments.length;var o;for(var i=0;i<l;i++){o=arguments[i];if(!(o instanceof QxWidget)){if(o instanceof Array){var j;for(j=0;j<o.length;j++){this.add(o[j]);};for(j in o){if(o[j]instanceof QxWidget){this.add(o[j]);};};}else {throw new Error("Invalid Widget:"+o);};}else {o.setParent(this);};};return this;};proto.addBefore=function(otherWidget,beforeWidget){if(!(otherWidget instanceof QxWidget)||!(beforeWidget instanceof QxWidget)){throw new Error("Invalid widgets:"+otherWidget+","+beforeWidget);};if(beforeWidget.getParent()!=this){throw new Error("Invalid before widget:"+beforeWidget+". Should be child of same parent!");};if(otherWidget.contains(this)){throw new Error("Could not add me to a child!");};var ch=this.getChildren();var oldLength=ch.length;ch.remove(otherWidget);ch.insertBefore(otherWidget,beforeWidget);this._complexAdd(otherWidget,oldLength);};proto.addAfter=function(otherWidget,afterWidget){if(!(otherWidget instanceof QxWidget)||!(afterWidget instanceof QxWidget)){throw new Error("Invalid widgets:"+otherWidget+","+afterWidget);};if(afterWidget.getParent()!=this){throw new Error("Invalid after widget:"+afterWidget+". Should be child of same parent!");};if(otherWidget.contains(this)){throw new Error("Could not add me to a child!");};var ch=this.getChildren();var oldLength=ch.length;ch.remove(otherWidget);ch.insertAfter(otherWidget,afterWidget);this._complexAdd(otherWidget,oldLength);};proto._complexAdd=function(otherWidget,oldLength){var ch=this._a2;var newLength=ch.length;if(otherWidget.getParent()==this){this.syncChildrenOrder();if(newLength!=oldLength&&newLength==1){this._firstChildCache=otherWidget;this._lastChildCache=otherWidget;if(this.isCreated()&&oldLength>1){this._obtainFirstChild();};if(otherWidget.isCreated()){otherWidget._obtainFirstChildState();};}else {var newFirst=ch[0];if(this._firstChildCache&&this._firstChildCache!=newFirst){var oldFirst=this._firstChildCache;this._firstChildCache=newFirst;if(oldFirst.isCreated()){oldFirst._loseFirstChildState();};if(newFirst.isCreated()){newFirst._obtainFirstChildState();};};var newLast=ch[newLength-1];if(this._lastChildCache&&this._lastChildCache!=newLast){var oldLast=this._lastChildCache;this._lastChildCache=newLast;if(oldLast.isCreated()){oldLast._loseLastChildState();};if(newLast.isCreated()){newLast._obtainLastChildState();};};};}else {otherWidget.setParent(this);this.syncChildrenOrder();};};proto.syncChildrenOrder=function(){if(!this.isCreated()){return;};var ch=this.getChildren().copy();var chl=ch.length;var chc;var che;for(var i=0;i<chl;i++){chc=ch[i];che=chc.getElement();if(chc.isCreated()&&che.parentNode){this._getParentNodeForChild(chc).appendChild(che);};};};proto.remove=function(){var l=arguments.length;var o;for(var i=0;i<l;i++){o=arguments[i];if(!(o instanceof QxWidget)){throw new Error("Invalid Widget:"+o);}else {o.setParent(null);};};};proto.removeAll=function(){var cs=this.getChildren();var co=cs[0];while(co){this.remove(co);co=cs[0];};};proto.contains=function(des){if(des==null){return false;};if(des==this){return true;};return this.contains(des.getParent());};proto.getPreviousSibling=function(){var p=this.getParent();if(p==null){return null;};var cs=p.getChildren();return cs[cs.indexOf(this)-1];};proto.getNextSibling=function(){var p=this.getParent();if(p==null){return null;};var cs=p.getChildren();return cs[cs.indexOf(this)+1];};QxWidget.getActiveSiblingHelperIgnore=function(vIgnoreClasses,vInstance){for(var j=0;j<vIgnoreClasses.length;j++){if(vInstance instanceof vIgnoreClasses[j]){return true;};};return false;};QxWidget.getActiveSiblingHelper=function(vObject,vParent,vCalc,vIgnoreClasses,vMode){if(!vIgnoreClasses){vIgnoreClasses=[];};var vChilds=vParent.getChildren();var vPosition;if(isInvalid(vMode)){vPosition=vChilds.indexOf(vObject)+vCalc;}else {vPosition=vMode=="first"?0:vChilds.length-1;};var vInstance=vChilds[vPosition];while(!vInstance.isEnabled()||QxWidget.getActiveSiblingHelperIgnore(vIgnoreClasses,vInstance)){vPosition+=vCalc;vInstance=vChilds[vPosition];if(!vInstance){return null;};};return vInstance;};proto.getPreviousActiveSibling=function(vIgnoreClasses){var vPrev=QxWidget.getActiveSiblingHelper(this,this.getParent(),-1,vIgnoreClasses,null);return vPrev?vPrev:this.getParent().getLastActiveChild();};proto.getNextActiveSibling=function(vIgnoreClasses){var vMext=QxWidget.getActiveSiblingHelper(this,this.getParent(),1,vIgnoreClasses,null);return vMext?vMext:this.getParent().getFirstActiveChild();};proto.isFirstChild=function(){var pa=this.getParent();if(!pa){return false;};return pa.getFirstChild()==this;};proto.isLastChild=function(){var pa=this.getParent();if(!pa){return false;};return pa.getLastChild()==this;};proto.getFirstActiveChild=function(vIgnoreClasses){return QxWidget.getActiveSiblingHelper(null,this,1,vIgnoreClasses,"first");};proto.getLastActiveChild=function(vIgnoreClasses){return QxWidget.getActiveSiblingHelper(null,this,-1,vIgnoreClasses,"last");};proto._firstChildCache=null;proto._lastChildCache=null;proto.getFirstChild=function(){if(this._firstChildCache==null){var ch=this.getChildren();if(ch.length>0){this._firstChildCache=ch[0];ch[0]._getFirstChildState();};};return this._firstChildCache;};proto.getLastChild=function(){if(this._lastChildCache==null){var ch=this.getChildren();if(ch.length>0){this._lastChildCache=ch[ch.length-1];ch[ch.length-1]._getLastChildState();};};return this._lastChildCache;};proto._pushChild=function(o){var ch=this.getChildren();var chi=ch.indexOf(o);if(chi==-1){ch.push(o);if(ch.length==1){this._firstChildCache=o;this._lastChildCache=o;if(this.isCreated()){this._obtainFirstChild();};}else {if(this._lastChildCache){var oc=this._lastChildCache;this._lastChildCache=o;oc._loseLastChildState();};};}else {if(ch.length==1){this._firstChildCache=o;this._lastChildCache=o;if(this.isCreated()){this._obtainFirstChild();};}else {if(this._lastChildCache&&chi==(ch.length-1)){var oc=this._lastChildCache;this._lastChildCache=o;if(oc.isCreated()){oc._loseLastChildState();};};};};};proto._removeChild=function(o){var ch=this.getChildren();ch.remove(o);if(ch.length==0){this._loseAllChilds();};if(this._firstChildCache==o){if(ch.length>0){this._firstChildCache=ch[0];ch[0]._obtainFirstChildState();}else {this._firstChildCache=null;};o._loseFirstChildState();};if(this._lastChildCache==o){if(ch.length>0){this._lastChildCache=ch[ch.length-1];ch[ch.length-1]._obtainLastChildState();}else {this._lastChildCache=null;};o._loseLastChildState();};};proto._obtainFirstChildState=function(){};proto._obtainLastChildState=function(){};proto._loseFirstChildState=function(){};proto._loseLastChildState=function(){};proto._obtainFirstChild=function(){};proto._loseAllChilds=function(){};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){QxTarget.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);var vClasses=this.getCssClassName();var vDisClassA="QxDisabled";var vDisClassB=this.classname+"Disabled";if(_b1){this.removeHtmlProperty("disabled");this.setCssClassName(vClasses.remove(vDisClassA," ").remove(vDisClassB," "));}else {this.setHtmlProperty("disabled",true);this.setCssClassName(vClasses.add(vDisClassA," ").add(vDisClassB," "));};return true;};proto._modifyState=function(_b1,_b2,_b3,_b4){var vClasses=this.getCssClassName();if(isValidString(_b2)){vClasses=vClasses.remove(this.classname+"-"+_b2.toFirstUp()," ");};if(isValidString(_b1)){vClasses=vClasses.add(this.classname+"-"+_b1.toFirstUp()," ");};this.setCssClassName(vClasses,_b4);this._recalculateFrame();return true;};proto._modifyAppearance=function(_b1,_b2,_b3,_b4){return true;};proto.setHtmlProperty=function(n,v){this._htmlProperties[n]=v;var el=this.getElement();if(el){el[n]=v;};return true;};proto.removeHtmlProperty=function(n){delete this._htmlProperties[n];var el=this.getElement();if(el){el.removeAttribute(n);if((new QxClient).isNotMshtml()){try{delete el[n];}catch(ex){};};};return true;};proto.getHtmlProperty=function(n){var el=this.getElement();return el?el[n]:this._htmlProperties[n];};proto._applyHtmlProperties=function(el){for(var i in this._htmlProperties){el[i]=this._htmlProperties[i];};};proto.setHtmlAttribute=function(n,v){this._htmlAttributes[n]=v;var el=this.getElement();if(el){el.setAttribute(n,v);};return true;};proto.removeHtmlAttribute=function(n){delete this._htmlAttributes[n];var el=this.getElement();if(el){el.removeAttribute(n);};return true;};proto.getHtmlAttribute=function(n){var el=this.getElement();return el?el.getAttribute(n):this._attributes[n];};proto._applyHtmlAttributes=function(el){for(var i in this._htmlAttributes){el.setAttribute(i,this._htmlAttributes[i]);};};proto._evalCurrentStyleProperty=function(_b3){return this.isCreated()?QxDOM.getComputedStyleProperty(this.getElement(),_b3):null;};proto.getStyleProperty=function(_b3){var _b1=this._styleProperties[_b3]||this._evalCurrentStyleProperty(_b3);return isValid(_b1)?_b1:null;};proto.setStyleProperty=function(_b3,_b1,_b4){return this._modifyStyleProperty(_b1,null,_b3,_b4);};proto.removeStyleProperty=function(_b3){delete this._styleProperties[_b3];var el=this.getElement();if(el){el.style[_b3]="";};return true;};proto._modifyStyleProperty=function(_b1,_b2,_b3,_b4){this._styleProperties[_b3]=_b1;try{this.getElement().style[_b3]=isValid(_b1)?_b1:"";}catch(ex){};return true;};proto._modifyFloatStyleProperty=function(_b1,_b2,_b3,_b4){return this._modifyStyleProperty(_b1,_b2,"cssFloat",_b4);};proto._applyStyleProperties=function(el){for(var i in this._styleProperties){el.style[i]=this._styleProperties[i];};};proto.getAnyWidth=function(){var w=this.getWidth();var wu=w=="auto"?null:w;if(!wu&&!this.isCreated()){return 0;};if(this._pixelof_width!=null){wu=Math.max(this._pixelof_width,wu);};return wu||this.getPreferredWidth()||this.getComputedBoxWidth()||0;};proto.getAnyHeight=function(){var h=this.getHeight();var hu=h=="auto"?null:h;if(!hu&&!this.isCreated()){return 0;};if(this._pixelof_height!=null){hu=Math.max(this._pixelof_height,hu);};return hu||this.getPreferredHeight()||this.getComputedBoxHeight()||0;};proto._widthAuto=false;proto._widthMode=null;proto._widthModeValue=null;proto.setWidth=function(_b1,_b4,vMode,vKeepAuto){var _b2=this.getWidth();this._widthMode=isValid(vMode)?vMode:"box";this._widthModeValue=_b1;if(_b1=="auto"){this._widthAuto=true;if(this._wasVisible){return this._setChildrenDependWidth();};}else if(isInvalid(vKeepAuto)){this._widthAuto=false;}else if(vKeepAuto==true){if(!this._widthAuto){throw new Error("Width was not auto previously!:"+_b1);};};this._valueWidth=_b1;this._nullWidth=_b1==null;try{var r=this._modifyHorizontalDimension(_b1,_b2,"width",_b4);if(!r){throw new Error("Failed without exception:width[horizontalDimension|"+r+"]");};}catch(ex){this.debug("Failed to modify property width:"+ex);return false;};if(vKeepAuto){this._valueWidth="auto";this._nullWidth=false;};return _b1;};proto._heightAuto=false;proto._heightMode=null;proto._heightModeValue=null;proto.setHeight=function(_b1,_b4,vMode,vKeepAuto){var _b2=this.getHeight();this._heightMode=isValid(vMode)?vMode:"box";this._heightModeValue=_b1;if(_b1=="auto"){this._heightAuto=true;if(this._wasVisible){return this._setChildrenDependHeight();};}else if(isInvalid(vKeepAuto)){this._heightAuto=false;}else if(vKeepAuto==true){if(!this._heightAuto){throw new Error("Height was not auto previously:"+_b1);};};this._valueHeight=_b1;this._nullHeight=_b1==null;try{var r=this._modifyVerticalDimension(_b1,_b2,"height",_b4);if(!r){throw new Error("Failed without exception:height[verticalDimension|"+r+"]");};}catch(ex){this.debug("Failed to modify property height:"+ex);return false;};if(vKeepAuto){this._valueHeight="auto";this._nullHeight=false;};return _b1;};proto.setBoxWidth=function(_b1,_b4,vKeepAuto){return this.setWidth(_b1,_b4,"box",vKeepAuto);};proto.setAreaWidth=function(_b1,_b4,vKeepAuto){return this.setWidth(_b1,_b4,"area",vKeepAuto);};proto.setInnerWidth=function(_b1,_b4,vKeepAuto){return this.setWidth(_b1,_b4,"inner",vKeepAuto);};proto.setBoxHeight=function(_b1,_b4,vKeepAuto){return this.setHeight(_b1,_b4,"box",vKeepAuto);};proto.setAreaHeight=function(_b1,_b4,vKeepAuto){return this.setHeight(_b1,_b4,"area",vKeepAuto);};proto.setInnerHeight=function(_b1,_b4,vKeepAuto){return this.setHeight(_b1,_b4,"inner",vKeepAuto);};proto._minWidthMode=null;proto._maxWidthMode=null;proto._minHeightMode=null;proto._maxHeightMode=null;proto._minWidthModeValue=null;proto._maxWidthModeValue=null;proto._minHeightModeValue=null;proto._maxHeightModeValue=null;proto.setMinWidth=function(_b1,_b4,vMode){var _b2=this.getMinWidth();this._minWidthMode=isValid(vMode)?vMode:"box";this._minWidthModeValue=_b1;this._valueMinWidth=_b1;this._nullMinWidth=_b1==null;try{var r=this._modifyHorizontalLimitDimension(_b1,_b2,"minWidth",_b4);if(!r){throw new Error("Failed without exception:minWidth[horizontalLimitDimension|"+r+"]");};}catch(ex){return false;};return _b1;};proto.setMaxWidth=function(_b1,_b4,vMode){var _b2=this.getMinWidth();this._maxWidthMode=isValid(vMode)?vMode:"box";this._maxWidthModeValue=_b1;this._valueMaxWidth=_b1;this._nullMaxWidth=_b1==null;try{var r=this._modifyHorizontalLimitDimension(_b1,_b2,"maxWidth",_b4);if(!r){throw new Error("Failed without exception:maxWidth[horizontalLimitDimension|"+r+"]");};}catch(ex){return false;};return _b1;};proto.setMinHeight=function(_b1,_b4,vMode){var _b2=this.getMinHeight();this._minHeightMode=isValid(vMode)?vMode:"box";this._minHeightModeValue=_b1;this._valueMinHeight=_b1;this._nullMinHeight=_b1==null;try{var r=this._modifyVerticalLimitDimension(_b1,_b2,"minHeight",_b4);if(!r){throw new Error("Failed without exception:minHeight[verticalLimitDimension|"+r+"]");};}catch(ex){return false;};return _b1;};proto.setMaxHeight=function(_b1,_b4,vMode){var _b2=this.getMaxHeight();this._maxHeightMode=isValid(vMode)?vMode:"box";this._maxHeightModeValue=_b1;this._valueMaxHeight=_b1;this._nullMaxHeight=_b1==null;try{var r=this._modifyVerticalLimitDimension(_b1,_b2,"maxHeight",_b4);if(!r){throw new Error("Failed without exception:maxHeight[verticalLimitDimension|"+r+"]");};}catch(ex){return false;};return _b1;};proto._manageHorizontalDimensions=function(_b3,_b1){if(_b1==null){this._usedDimensionsHorizontal.remove(_b3);}else if(this._usedDimensionsHorizontal.contains(_b3)){return;}else if(this._usedDimensionsHorizontal.length==2){throw new Error("List max reached. Unable to add:"+_b3+"("+_b1+")!,List:"+this._usedDimensionsHorizontal);}else {this._usedDimensionsHorizontal.push(_b3);};};proto._manageVerticalDimensions=function(_b3,_b1){if(_b1==null){this._usedDimensionsVertical.remove(_b3);}else if(this._usedDimensionsVertical.contains(_b3)){return;}else if(this._usedDimensionsVertical.length==2){throw new Error("List max reached. Unable to add:"+_b3+"("+_b1+")!,List:"+this._usedDimensionsVertical);}else {this._usedDimensionsVertical.push(_b3);};};proto._render=function(_e5){this._renderHorizontal(_e5);this._renderVertical(_e5);};proto._renderHorizontalRunning=false;proto._renderVerticalRunning=false;proto._renderHorizontalOmit=false;proto._renderVerticalOmit=false;proto._renderHorizontal=function(_e5){return this._renderHelper("horizontal","Horizontal",_e5,"left","width","right","Left","Width","Right","minWidth","maxWidth","MinWidth","MaxWidth");};proto._renderVertical=function(_e5){return this._renderHelper("vertical","Vertical",_e5,"top","height","bottom","Top","Height","Bottom","minHeight","maxHeight","MinHeight","MaxHeight");};proto._omitHorizontalRendering=function(){this._renderHorizontalOmit=true;};proto._activateHorizontalRendering=function(){this._renderHorizontalOmit=false;this._renderHorizontal("activate");};proto._omitVerticalRendering=function(){this._renderVerticalOmit=true;};proto._activateVerticalRendering=function(){this._renderVerticalOmit=false;this._renderVertical("activate");};proto._omitRendering=function(){this._omitHorizontalRendering();this._omitVerticalRendering();};proto._activateRendering=function(){this._activateHorizontalRendering();this._activateVerticalRendering();};proto._renderInitialDone_horizontal=false;proto._renderInitialDone_vertical=false;proto._renderHelper=function(vId,vIdUp,_e5,vNameStart,vNameRange,vNameStop,vNameStartUp,vNameRangeUp,vNameStopUp,vNameRangeMin,vNameRangeMax,vNameRangeMinUp,vNameRangeMaxUp){var vParent=this.getParent();if(vParent==null||!this.isCreated()){return true;};if(!this["_renderInitialDone_"+vId]){_e5="initial";}else if(this["_renderInitialDone_"+vId]&&_e5=="initial"){return true;};if(!vParent["_renderInitialDone_"+vId]&&this["get"+vNameRangeUp]()!="auto"){if(vParent["get"+vNameRangeUp]()!=null||(vParent["get"+vNameStartUp]()!=null&&vParent["get"+vNameStopUp]()!=null)){return true;};};this["_renderInitialDone_"+vId]=true;if(_e5!="initial"&&this._wasVisible&&!this.getVisible()){this["_render"+vIdUp+"Omitted"]=true;return true;};try{switch(_e5){case "initial":case "force":case "parent":case "activate":this._computeDimensionPixelValue(vNameStart,vNameStartUp,vNameRangeUp,vNameStopUp);this._computeDimensionPixelValue(vNameStop,vNameStartUp,vNameRangeUp,vNameStopUp);case "padding":case "border":this._computeDimensionPixelValue(vNameRange,vNameStartUp,vNameRangeUp,vNameStopUp);this._computeDimensionPixelValue(vNameRangeMin,vNameStartUp,vNameRangeUp,vNameStopUp);this._computeDimensionPixelValue(vNameRangeMax,vNameStartUp,vNameRangeUp,vNameStopUp);break;case vNameRangeMin:case vNameRangeMax:if(vParent["get"+vNameRangeUp]()=="auto"){return vParent["_setChildrenDepend"+vNameRangeUp](this);};case vNameStart:case vNameRange:case vNameStop:this._computeDimensionPixelValue(_e5,vNameStartUp,vNameRangeUp,vNameStopUp);break;};var vValueStart=this["_pixelof_"+vNameStart];var vValueRange=this["_pixelof_"+vNameRange];var vValueStop=this["_pixelof_"+vNameStop];var vValueRangeMin=this["_pixelof_"+vNameRangeMin]||-Infinity;var vValueRangeMax=this["_pixelof_"+vNameRangeMax]||Infinity;var vUseStart=vValueStart!=null;var vUseRange=vValueRange!=null;var vUseStop=vValueStop!=null;if((_e5=="initial"||_e5=="parent")&&!vUseStart&&!vUseRange&&!vUseStop&&vValueRangeMin==-Infinity&&vValueRangeMax==Infinity){return true;};var vComputedPosition;var vComputedSize;function limitSize(vValue){return isValidNumber(vValue)?vValue.limit(vValueRangeMin,vValueRangeMax):0;};if(vUseRange){vComputedSize=limitSize(vValueRange);};if(vUseStart){vComputedPosition=vValueStart;if(!vUseRange){if(vUseStop){vComputedSize=limitSize(vParent["getInner"+vNameRangeUp]()-this["getComputedMargin"+vNameStartUp]()-this["getComputedMargin"+vNameStopUp]()-vComputedPosition-vValueStop);}else if(vValueRangeMin>0){vComputedSize=vValueRangeMin;};};}else if(vUseStop){if(!vUseRange){if(!this.getElement().parentNode){return;};vComputedSize=limitSize(this["getPreferred"+vNameRangeUp]());};vComputedPosition=vParent["getInner"+vNameRangeUp]()-this["getComputedMargin"+vNameStartUp]()-this["getComputedMargin"+vNameStopUp]()-vComputedSize-vValueStop;};if(typeof vComputedSize=="undefined"){vComputedSize=null;};if(typeof vComputedPosition=="undefined"){vComputedPosition=null;}else if(isValidNumber(vComputedPosition)&&this._evalCurrentStyleProperty("position")=="absolute"){vComputedPosition+=vParent["getComputedPadding"+vNameStartUp]();};var vPositionChanged=vComputedPosition!=this["_computedLast"+vNameStartUp];var vSizeChanged=vComputedSize!=this["_computedLast"+vNameRangeUp];if(vPositionChanged||vSizeChanged){if(vSizeChanged){try{this["_applySize"+vIdUp](vComputedSize);}catch(ex){this.debug("Failed to apply size:"+vComputedSize);};this["_computedLast"+vNameRangeUp]=vComputedSize;if(this.hasEventListeners("resize")){this.dispatchEvent(new QxEvent("resize"));};if(this.hasEventListeners("resize"+vIdUp)){this.dispatchEvent(new QxEvent("resize"+vIdUp));};this["_inner"+vNameRangeUp+"Changed"]();};if(vPositionChanged){try{this["_d3"+vIdUp](vComputedPosition);}catch(ex){this.debug("Failed to apply position:"+vComputedPosition);};this["_computedLast"+vNameStartUp]=vComputedPosition;if(this.hasEventListeners("move")){this.dispatchEvent(new QxEvent("move"));};if(this.hasEventListeners("move"+vIdUp)){this.dispatchEvent(new QxEvent("move"+vIdUp));};};if(_e5!="initial"){this["_outer"+vNameRangeUp+"Changed"](vPositionChanged&&vSizeChanged?"position-and-size":vPositionChanged?"position":vSizeChanged?"size":"");};};}catch(ex){throw new Error("Could not render "+this+":"+vId+":"+ex);};};if((new QxClient).isMshtml()){proto._d3Horizontal=function(vPosition){return isInvalidNumber(vPosition)?this.removeStyleProperty("pixelLeft"):this.setStyleProperty("pixelLeft",Math.round(vPosition));};proto._applySizeHorizontal=function(vSize){return isInvalidNumber(vSize)?this.removeStyleProperty("pixelWidth"):this.setStyleProperty("pixelWidth",Math.round(vSize));};proto._d3Vertical=function(vPosition){return isInvalidNumber(vPosition)?this.removeStyleProperty("pixelTop"):this.setStyleProperty("pixelTop",Math.round(vPosition));};proto._applySizeVertical=function(vSize){return isInvalidNumber(vSize)?this.removeStyleProperty("pixelHeight"):this.setStyleProperty("pixelHeight",Math.round(vSize));};}else {proto._d3Horizontal=function(vPosition){return isInvalidNumber(vPosition)?this.removeStyleProperty("left"):this.setStyleProperty("left",Math.round(vPosition)+"px");};proto._applySizeHorizontal=function(vSize){return isInvalidNumber(vSize)?this.removeStyleProperty("width"):this.setStyleProperty("width",Math.round(vSize)+"px");};proto._d3Vertical=function(vPosition){return isInvalidNumber(vPosition)?this.removeStyleProperty("top"):this.setStyleProperty("top",Math.round(vPosition)+"px");};proto._applySizeVertical=function(vSize){return isInvalidNumber(vSize)?this.removeStyleProperty("height"):this.setStyleProperty("height",Math.round(vSize)+"px");};};proto._recalculateFrame=function(_e5){this._recalculateFrameWidth(_e5);this._recalculateFrameHeight(_e5);};proto._recalculateFrameWidth=function(_e5){if(!this._wasVisible){return;};switch(_e5){case "padding":if(this._widthMode=="inner"){return this._renderHorizontal(_e5);};break;case "border":if(this._widthMode=="inner"||this._widthMode=="area"){return this._renderHorizontal(_e5);};};this._innerWidthChanged();};proto._recalculateFrameHeight=function(_e5){if(!this._wasVisible){return;};switch(_e5){case "padding":if(this._heightMode=="inner"){return this._renderVertical(_e5);};break;case "border":if(this._heightMode=="inner"||this._heightMode=="area"){return this._renderVertical(_e5);};};this._innerHeightChanged();};proto._innerWidthChanged=function(){this._d4Width();var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderHorizontal("parent");};};proto._innerHeightChanged=function(){this._d4Height();var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderVertical("parent");};};proto._outerChanged=function(_e5){this._outerWidthChanged(_e5);this._outerHeightChanged(_e5);};proto._outerWidthChanged=function(_e5){var pa=this.getParent();return pa?pa._childOuterWidthChanged(this,_e5):true;};proto._outerHeightChanged=function(_e5){var pa=this.getParent();return pa?pa._childOuterHeightChanged(this,_e5):true;};proto._childOuterWidthChanged=function(vModifiedChild,_e5){if(!this._wasVisible){return;};var w=this.getWidth();if(w=="auto"){return this._setChildrenDependWidth(vModifiedChild,_e5);}else if(w==null||typeof w=="string"){this._lastChildWithInvalidatedPreferredWidth=vModifiedChild;this._invalidatePreferredWidth();};};proto._childOuterHeightChanged=function(vModifiedChild,_e5){if(!this._wasVisible){return;};var h=this.getHeight();if(h=="auto"){return this._setChildrenDependHeight(vModifiedChild,_e5);}else if(h==null||typeof h=="string"){this._lastChildWithInvalidatedPreferredHeight=vModifiedChild;this._invalidatePreferredHeight();};};proto._computedlast_position=null;proto._computedlast_size=null;proto._typeof_left=null;proto._typeof_width=null;proto._typeof_right=null;proto._typeof_top=null;proto._typeof_height=null;proto._typeof_bottom=null;proto._typeof_minWidth=null;proto._typeof_maxWidth=null;proto._typeof_minHeight=null;proto._typeof_maxHeight=null;proto._pixelof_left=null;proto._pixelof_width=null;proto._pixelof_right=null;proto._pixelof_top=null;proto._pixelof_height=null;proto._pixelof_bottom=null;proto._pixelof_minWidth=null;proto._pixelof_maxWidth=null;proto._pixelof_minHeight=null;proto._pixelof_maxHeight=null;proto._valueof_left=null;proto._valueof_width=null;proto._valueof_right=null;proto._valueof_top=null;proto._valueof_height=null;proto._valueof_bottom=null;proto._valueof_minWidth=null;proto._valueof_maxWidth=null;proto._valueof_minHeight=null;proto._valueof_maxHeight=null;proto.getPixelOfLeft=function(){return this._pixelof_left;};proto.getPixelOfWidth=function(){return this._pixelof_width;};proto.getPixelOfRight=function(){return this._pixelof_right;};proto.getPixelOfTop=function(){return this._pixelof_top;};proto.getPixelOfHeight=function(){return this._pixelof_height;};proto.getPixelOfBottom=function(){return this._pixelof_bottom;};proto._computeDimensionPixelValue=function(vId,vNameStartUp,vNameRangeUp,vNameStopUp){var pixelKey="_pixelof_"+vId;var valueKey="_valueof_"+vId;switch(this["_typeof_"+vId]){case "pixel":this[pixelKey]=this[valueKey];break;case "percent":this[pixelKey]=this._toPercent(this[valueKey],this.getParent()["getInner"+vNameRangeUp]());break;default:this[pixelKey]=null;return;};switch(vId){case "width":case "height":case "minWidth":case "maxWidth":case "minHeight":case "maxHeight":switch(this["_"+vId+"Mode"]){case "inner":this[pixelKey]+=this["getComputedPadding"+vNameStartUp]()+this["getComputedPadding"+vNameStopUp]();case "area":this[pixelKey]+=this["getComputedBorder"+vNameStartUp]()+this["getComputedBorder"+vNameStopUp]();};};};proto._computeDimensionType=function(_b1){switch(typeof _b1){case "number":return "pixel";case "string":if(_b1=="auto"){return "auto";}else if (/^([0-9\.]+)%$/.test(_b1)){return "percent";};break;case "object":if(_b1==null){return null;};};throw new Error("Invalid value:"+_b1);};proto._toPercent=function(_b1,vFullWidth){return Math.round(vFullWidth*parseFloat(_b1)/100);};proto._modifyHorizontalDimension=function(_b1,_b2,_b3,_b4){this._manageHorizontalDimensions(_b3,_b1);return this._modifyHorizontalHelper(_b1,_b3);};proto._modifyHorizontalLimitDimension=function(_b1,_b2,_b3,_b4){return this._modifyHorizontalHelper(_b1,_b3);};proto._modifyHorizontalHelper=function(_b1,_b3){this["_typeof_"+_b3]=this._computeDimensionType(_b1);this["_valueof_"+_b3]=_b1;this._renderHorizontal(_b3);return true;};proto._modifyVerticalDimension=function(_b1,_b2,_b3,_b4){this._manageVerticalDimensions(_b3,_b1);return this._modifyVerticalHelper(_b1,_b3);};proto._modifyVerticalLimitDimension=function(_b1,_b2,_b3,_b4){return this._modifyVerticalHelper(_b1,_b3);};proto._modifyVerticalHelper=function(_b1,_b3){this["_typeof_"+_b3]=this._computeDimensionType(_b1);this["_valueof_"+_b3]=_b1;this._renderVertical(_b3);return true;};proto._setChildrenDependWidth=function(_e4,_e5){var newWidth=this._d5Width(_e4,_e5);if(newWidth!=null){this.setWidth(newWidth,null,"inner",true);}else {this.setWidth(null,null,"box",true);};return true;};proto._d5Width=function(_e4,_e5){return this._d5Helper(_e4,_e5,"_dependWidthCache","left","width","right");};proto._setChildrenDependHeight=function(_e4,_e5){var newHeight=this._d5Height(_e4,_e5);if(newHeight!=null){this.setHeight(newHeight,null,"inner",true);}else {this.setHeight(null,null,"box",true);};return true;};proto._d5Height=function(_e4,_e5){return this._d5Helper(_e4,_e5,"_dependHeightCache","top","height","bottom");};proto._compareDependSize=function(d1,d2){return d2.size-d1.size;};proto._dependWidthCache=null;proto._dependHeightCache=null;proto._d5Helper=function(_e4,_e5,vCache,vStart,vRange,vStop){if(this[vCache]==null||this[vCache].length==0){var vChildren=this.getChildren();var vChildrenLength=vChildren.length;if(vChildrenLength==0){return null;};var vDependCache=this[vCache]=[];var vCurrentChild;var vCurrentNeeded;for(var i=0;i<vChildrenLength;i++){vCurrentChild=vChildren[i];if(vCurrentChild._wasVisible){vCurrentNeeded=vCurrentChild._computeNeededSize(vStart,vRange,vStop);vDependCache.push({widget:vCurrentChild,size:vCurrentNeeded?vCurrentNeeded:0});};};vDependCache.sort(this._compareDependSize);}else {if(!_e4&&this._wasVisible){if(vRange=="height"&&this._lastChildWithInvalidatedPreferredHeight){_e4=this._lastChildWithInvalidatedPreferredHeight;this._lastChildWithInvalidatedPreferredHeight=null;}else if(vRange=="width"&&this._lastChildWithInvalidatedPreferredWidth){_e4=this._lastChildWithInvalidatedPreferredWidth;this._lastChildWithInvalidatedPreferredWidth=null;};};if(_e4&&_e4!=this){var vDependCache=this[vCache];var vDependCacheLength=vDependCache.length;var vChildFound=false;var vCurrentNeeded;if(_e5!="add"){for(var i=0;i<vDependCacheLength;i++){if(vDependCache[i].widget==_e4){if(_e4.getParent()==this){vCurrentNeeded=_e4._computeNeededSize(vStart,vRange,vStop);vDependCache[i].size=vCurrentNeeded?vCurrentNeeded:0;}else {vDependCache.splice(i,1);};vChildFound=true;break;};};};if(_e5=="add"||!vChildFound){if(_e4.getParent()==this){vCurrentNeeded=_e4._computeNeededSize(vStart,vRange,vStop);vDependCache.push({widget:_e4,size:vCurrentNeeded?vCurrentNeeded:0});}else {throw new Error("No change while recalculating the dependCache!");};};vDependCache.sort(this._compareDependSize);}else {var vDependCache=this[vCache];};};return vDependCache.length>0?vDependCache[0].size:null;};proto._computeNeededSize=function(vNameStart,vNameRange,vNameStop){var vNameStartUp=vNameStart.toFirstUp();var vNameRangeUp=vNameRange.toFirstUp();var vNameStopUp=vNameStop.toFirstUp();var vTypeStart=this["_typeof_"+vNameStart];var vTypeRange=this["_typeof_"+vNameRange];var vTypeStop=this["_typeof_"+vNameStop];var vMinRangeValue=this["getMin"+vNameRangeUp]();var vMaxRangeValue=this["getMax"+vNameRangeUp]();var vMarginStart=this["getComputedMargin"+vNameStartUp]();var vMarginStop=this["getComputedMargin"+vNameStopUp]();var neededForMargin=vMarginStart+vMarginStop;if(vTypeRange=="percent"){var sizePreferred=this["getPreferred"+vNameRangeUp]();var sizeLimit=sizePreferred.limit(vMinRangeValue,vMaxRangeValue);var sizeProcent=parseFloat(this["get"+vNameRangeUp]());var neededInner=Math.ceil(sizeLimit/sizeProcent*100);return neededInner+neededForMargin;}else if(vTypeStart=="percent"&&vTypeStop=="percent"){var sizePreferred=this["getPreferred"+vNameRangeUp]();var sizeLimit=sizePreferred.limit(vMinRangeValue,vMaxRangeValue);var percentRemain=100-parseFloat(this["get"+vNameStartUp]())-parseFloat(this["get"+vNameStopUp]());var neededInner=Math.ceil(sizeLimit/percentRemain*100);return neededInner+neededForMargin;}else {var neededForSize=null;if(vTypeRange=="pixel"){this._computeDimensionPixelValue(vNameRange,vNameStartUp,vNameRangeUp,vNameStopUp);neededForSize=this["_pixelof_"+vNameRange];};if(neededForSize==null){var neededForSize=this["getPreferred"+vNameRangeUp]();};if(neededForSize==null){return;};neededForSize=neededForSize.limit(vMinRangeValue,vMaxRangeValue);if(vTypeStart=="percent"){var stopNeededSize=vTypeStop=="pixel"?this["get"+vNameStopUp]():0;var otherNeededSize=neededForSize+stopNeededSize;var percentRemain=100-parseFloat(this["get"+vNameStartUp]());var neededInner=Math.ceil(otherNeededSize/percentRemain*100);return neededInner+neededForMargin;}else if(vTypeStop=="percent"){var startNeededSize=vTypeStart=="pixel"?this["get"+vNameStartUp]():0;var otherNeededSize=neededForSize+startNeededSize;var percentRemain=100-parseFloat(this["get"+vNameStopUp]());var neededInner=Math.ceil(otherNeededSize/percentRemain*100);return neededInner+neededForMargin;}else {var neededForPosition=0;if(vTypeStart=="pixel"){neededForPosition+=this["get"+vNameStartUp]();};if(vTypeStop=="pixel"){neededForPosition+=this["get"+vNameStopUp]();};var neededInner=neededForSize+neededForPosition;return neededInner+neededForMargin;};};};QxWidget._domConnector=function(){var tpropsmargin="marginLeft,marginTop,marginRight,marginBottom";var tpropspadding="paddingLeft,paddingTop,paddingRight,paddingBottom";var tpropsborder="borderLeft,borderTop,borderRight,borderBottom";var tprops=tpropsmargin+","+tpropspadding+","+tpropsborder;var tdimsouter="outerWidth,outerHeight";var tdimsbox="boxWidth,boxHeight";var tdimsarea="areaWidth,areaHeight";var tdimsinner="innerWidth,innerHeight";var tdims=tdimsouter+","+tdimsbox+","+tdimsarea+","+tdimsinner;var tinsets="insetLeft,insetTop,insetRight,insetBottom";var tscrolls="scrollBarSizeLeft,scrollBarSizeTop,scrollBarSizeRight,scrollBarSizeBottom,scrollBarVisibleX,scrollBarVisibleY";var tcposouter="clientOuterLeft,clientOuterTop,clientOuterRight,clientOuterBottom";var tcposbox="clientBoxLeft,clientBoxTop,clientBoxRight,clientBoxBottom";var tcposarea="clientAreaLeft,clientAreaTop,clientAreaRight,clientAreaBottom";var tcposinner="clientInnerLeft,clientInnerTop,clientInnerRight,clientInnerBottom";var tcpos=tcposouter+","+tcposbox+","+tcposarea+","+tcposinner;var tpposouter="pageOuterLeft,pageOuterTop,pageOuterRight,pageOuterBottom";var tpposbox="pageBoxLeft,pageBoxTop,pageBoxRight,pageBoxBottom";var tpposarea="pageAreaLeft,pageAreaTop,pageAreaRight,pageAreaBottom";var tpposinner="pageInnerLeft,pageInnerTop,pageInnerRight,pageInnerBottom";var tppos=tpposouter+","+tpposbox+","+tpposarea+","+tpposinner;var tscreenouter="screenOuterLeft,screenOuterTop,screenOuterRight,screenOuterBottom";var tscreenbox="screenBoxLeft,screenBoxTop,screenBoxRight,screenBoxBottom";var tscreenarea="screenAreaLeft,screenAreaTop,screenAreaRight,screenAreaBottom";var tscreeninner="screenInnerLeft,screenInnerTop,screenInnerRight,screenInnerBottom";var tscreen=tscreenouter+","+tscreenbox+","+tscreenarea+","+tscreeninner;var tall=tprops+","+tdims+","+tinsets+","+tscrolls+","+tcpos+","+tppos+","+tscreen;var tarr=tall.split(",");for(var i=0;i<tarr.length;i++){var tname="getComputed"+tarr[i].toFirstUp();proto[tname]=new Function("var el=this.getElement();return QxDOM."+tname+"(el);");};};QxWidget._domConnector();proto.setScrollLeft=function(nScrollLeft){if(!this.isCreated()){return;};this.getElement().scrollLeft=nScrollLeft;};proto.setScrollTop=function(nScrollTop){if(!this.isCreated()){return;};this.getElement().scrollTop=nScrollTop;};proto.getOffsetLeft=function(){if(!this.isCreated()){return;};return QxDOM.getOffsetLeft(this.getElement());};proto.getOffsetTop=function(){if(!this.isCreated()){return;};return QxDOM.getOffsetTop(this.getElement());};proto.getScrollLeft=function(){if(!this.isCreated()){return;};return this.getElement().scrollLeft;};proto.getScrollTop=function(){if(!this.isCreated()){return;};return this.getElement().scrollTop;};proto.getClientWidth=function(){if(!this.isCreated()){return;};return this.getElement().clientWidth;};proto.getClientHeight=function(){if(!this.isCreated()){return;};return this.getElement().clientHeight;};proto.getOffsetWidth=function(){if(!this.isCreated()){return;};return this.getElement().offsetWidth;};proto.getOffsetHeight=function(){if(!this.isCreated()){return;};return this.getElement().offsetHeight;};proto._preferred_width=null;proto._preferred_height=null;proto._invalidatePreferred=function(){this._preferred_width=this._preferred_height=null;var pa=this.getParent();if(pa){pa._a2PreferredInvalidated(this);};};proto._invalidatePreferredWidth=function(){this._preferred_width=null;var pa=this.getParent();if(pa){pa._a2PreferredWidthInvalidated(this);};};proto._invalidatePreferredHeight=function(){this._preferred_height=null;var pa=this.getParent();if(pa){pa._a2PreferredHeightInvalidated(this);};};proto._calculatePreferredDimensions=function(){try{return QxDOM.getComputedPreferredSize(this.getElement());}catch(ex){throw new Error("Calculation of preferred width/height(of "+this+")failed:"+ex);};};proto.getPreferredWidth=function(){if(this.getWidth()=="auto"){if(!this._wasVisible){this._renderHorizontal("initial");};return this._pixelof_width;};if(this._preferred_width==null){if(this.getChildrenLength()>0){this._preferred_width=this._d5Width()+this.getComputedPaddingLeft()+this.getComputedPaddingRight()+this.getComputedInsetLeft()+this.getComputedInsetRight();}else {var r=this._calculatePreferredDimensions();this._preferred_width=r.width;this._preferred_height=r.height;};};return this._preferred_width;};proto.getPreferredHeight=function(){if(this.getHeight()=="auto"){if(!this._wasVisible){this._renderVertical("initial");};return this._pixelof_height;};if(this._preferred_height==null){if(this.getChildrenLength()>0){this._preferred_height=this._d5Height()+this.getComputedPaddingTop()+this.getComputedPaddingBottom()+this.getComputedInsetTop()+this.getComputedInsetBottom();}else {var r=this._calculatePreferredDimensions();this._preferred_width=r.width;this._preferred_height=r.height;};};return this._preferred_height;};proto.pack=function(){this.setWidth(this.getPreferredWidth());this.setHeight(this.getPreferredHeight());};proto._a2PreferredInvalidated=function(_e4){this._a2PreferredWidthInvalidated(_e4);this._a2PreferredHeightInvalidated(_e4);};proto._lastChildWithInvalidatedPreferredHeight=null;proto._lastChildWithInvalidatedPreferredWidth=null;proto._a2PreferredWidthInvalidated=function(_e4){if(!this._wasVisible){return;};this._lastChildWithInvalidatedPreferredWidth=_e4;if(this.getWidth()=="auto"){this._setChildrenDependWidth(_e4,"preferred");}else {this._invalidatePreferredWidth(_e4);};};proto._a2PreferredHeightInvalidated=function(_e4){if(!this._wasVisible){return;};this._lastChildWithInvalidatedPreferredHeight=_e4;if(this.getHeight()=="auto"){this._setChildrenDependHeight(_e4,"preferred");}else {this._invalidatePreferredHeight(_e4);};};proto._inner_width=null;proto._inner_height=null;proto._d4=function(){this._inner_width=this._inner_height=null;};proto._d4Width=function(){this._inner_width=null;};proto._d4Height=function(){this._inner_height=null;};proto.getInnerWidth=function(){if(this._inner_width==null){this._inner_width=this.getComputedInnerWidth();};return this._inner_width;};proto.getInnerHeight=function(){if(this._inner_height==null){this._inner_height=this.getComputedInnerHeight();};return this._inner_height;};proto._modifyPaddingHorizontal=function(_b1,_b2,_b3,_b4){if(isValid(_b1)){this.setStyleProperty(_b3,Math.round(_b1)+"px");}else {this.removeStyleProperty(_b3);};this._recalculateFrameWidth("padding");this._invalidatePreferredWidth();return true;};proto._modifyPaddingVertical=function(_b1,_b2,_b3,_b4){if(isValid(_b1)){this.setStyleProperty(_b3,Math.round(_b1)+"px");}else {this.removeStyleProperty(_b3);};this._recalculateFrameHeight("padding");this._invalidatePreferredHeight();return true;};proto._modifyMarginHorizontal=function(_b1,_b2,_b3,_b4){if(isValid(_b1)){this.setStyleProperty(_b3,Math.round(_b1)+"px");}else {this.removeStyleProperty(_b3);};this._outerWidthChanged("margin");return true;};proto._modifyMarginVertical=function(_b1,_b2,_b3,_b4){if(isValid(_b1)){this.setStyleProperty(_b3,Math.round(_b1)+"px");}else {this.removeStyleProperty(_b3);};this._outerHeightChanged("margin");return true;};QxWidget.cssLikeShortHandService=function(params){var l=params.length;if(l>4){throw new Error("Invalid number of arguments!");};var v;var forceList=new Array();var styleList=new Array();for(var i=0;i<l;i++){v=params[i];if(isValidNumber(v)){forceList.push(v);styleList.push(Math.round(v)+"px");}else if(v==""||v==null){forceList.push(null);styleList.push("");}else {throw new Error("Invalid shorthand value:"+v);};};switch(l){case 1:forceList[1]=forceList[2]=forceList[3]=forceList[0];styleList[1]=styleList[2]=styleList[3]=styleList[0];break;case 2:forceList[2]=forceList[0];styleList[2]=styleList[0];case 3:forceList[3]=forceList[1];styleList[3]=styleList[1];};return[forceList,styleList];};proto.setPadding=function(){try{var r=QxWidget.cssLikeShortHandService(arguments);}catch(ex){throw new Error("Invalid value for padding:"+ex);};var forceList=r[0];var styleList=r[1];this.forcePaddingTop(forceList[0]);this.forcePaddingRight(forceList[1]);this.forcePaddingBottom(forceList[2]);this.forcePaddingLeft(forceList[3]);this.setStyleProperty("paddingTop",styleList[0]);this.setStyleProperty("paddingRight",styleList[1]);this.setStyleProperty("paddingBottom",styleList[2]);this.setStyleProperty("paddingLeft",styleList[3]);this._recalculateFrame("padding");this._invalidatePreferred();return true;};proto.setMargin=function(){try{var r=QxWidget.cssLikeShortHandService(arguments);}catch(ex){throw new Error("Invalid value for margin:"+ex);};var forceList=r[0];var styleList=r[1];this.forceMarginTop(forceList[0]);this.forceMarginRight(forceList[1]);this.forceMarginBottom(forceList[2]);this.forceMarginLeft(forceList[3]);this.setStyleProperty("marginTop",styleList[0]);this.setStyleProperty("marginRight",styleList[1]);this.setStyleProperty("marginBottom",styleList[2]);this.setStyleProperty("marginLeft",styleList[3]);this._outerChanged("margin");return true;};proto.setEdge=function(){try{var r=QxWidget.cssLikeShortHandService(arguments);}catch(ex){throw new Error("Invalid value for edge:"+ex);};var forceList=r[0];this._omitRendering();this.setWidth(null);this.setHeight(null);this.setTop(forceList[0]);this.setRight(forceList[1]);this.setBottom(forceList[2]);this.setLeft(forceList[3]);this._activateRendering();return true;};proto.canGetFocus=function(){return this.isCreated()&&this.getTabIndex()>=0&&this.isEnabled();};proto.isFocusRoot=function(){return false;};proto._ontabfocus=function(){};proto._modifyFocused=function(_b1,_b2,_b3,_b4){if(!this.isCreated()){return true;};if(_b1){this.getTopLevelWidget().getFocusManager().setFocusedWidget(this,_b4);this._visualizeFocus();}else {this.getTopLevelWidget().getFocusManager().setFocusedWidget(null,_b4);this._visualizeBlur();};return true;};if((new QxClient).isOpera()){proto.repaint=function(){var d=this.getTopLevelWidget().getDocumentElement();var z=d.createElement("div");z.style.height=(d.body.offsetHeight)+"px";z.style.width=(d.body.offsetWidth)+"px";z.style.top="0px";z.style.left="0px";z.style.position="absolute";z.style.backgroundColor="blue";z.style.zIndex="100000000000000";d.body.appendChild(z);var el=this.getElement();var t=el.style.top;var l=el.style.left;el.style.top=(this.getComputedPageBoxTop()-5)+"px";el.style.left=(this.getComputedPageBoxLeft()-5)+"px";el.style.top=t;el.style.left=l;d.body.removeChild(z);};}else {proto.repaint=function(){};};if((new QxClient).isOpera()){proto._visualizeBlur=function(){this.setCssClassName(this.getCssClassName().remove("QxFocused"," ").remove(this.classname+"-Focused"," "));try{this.getElement().blur();}catch(ex){};this.repaint();return true;};proto._visualizeFocus=function(){this.setCssClassName(this.getCssClassName().add("QxFocused"," ").add(this.classname+"-Focused"," "));try{this.getElement().focus();}catch(ex){};this.repaint();return true;};}else {proto._visualizeBlur=function(){this.setCssClassName(this.getCssClassName().remove("QxFocused"," ").remove(this.classname+"-Focused"," "));try{this.getElement().blur();}catch(ex){};return true;};proto._visualizeFocus=function(){this.setCssClassName(this.getCssClassName().add("QxFocused"," ").add(this.classname+"-Focused"," "));try{this.getElement().focus();}catch(ex){};return true;};};proto._modifyCapture=function(_b1,_b2,_b3,_b4){if(_b2){this.getTopLevelWidget().getEventManager().setCaptureWidget(null,_b4);}else if(_b1){this.getTopLevelWidget().getEventManager().setCaptureWidget(this,_b4);};return true;};if((new QxClient).isMshtml()){proto._modifyTabIndex=function(_b1,_b2,_b3,_b4){this.setHtmlProperty("unselectable",_b1<0||!this.getEnabled());this.setHtmlProperty("tabIndex",_b1<0?-1:1);return true;};}else if((new QxClient).isGecko()){proto._modifyTabIndex=function(_b1,_b2,_b3,_b4){this.setStyleProperty("MozUserFocus",_b1<0?"ignore":"normal");this.setStyleProperty("userFocus",_b1<0?"ignore":"normal");return true;};}else {proto._modifyTabIndex=function(_b1,_b2,_b3,_b4){this.setStyleProperty("userFocus",_b1<0?"ignore":"normal");this.setHtmlProperty("tabIndex",_b1<0?-1:1);return true;};};proto._modifyCssClassName=function(_b1,_b2,_b3,_b4){this.setHtmlProperty("className",_b1);return true;};proto._evalCssClassName=function(){var v1=this.getHtmlProperty("className");if(typeof v1=="string"&&v1!="")return v1;else return this.classname;};proto._addCssClassName=function(_b1){this.setCssClassName(this.getCssClassName().add(_b1," "));};proto._removeCssClassName=function(_b1){this.setCssClassName(this.getCssClassName().remove(_b1," "));};proto.addCssClassNameDetail=function(_b1){this._addCssClassName(this.classname+"-"+_b1.toFirstUp());};proto.removeCssClassNameDetail=function(_b1){this._removeCssClassName(this.classname+"-"+_b1.toFirstUp());};proto.getWidgetFromPoint=function(x,y){var ret=this.getWidgetFromPointHelper(x,y);return ret&&ret!=this?ret:null;};proto.getWidgetFromPointHelper=function(x,y){var ch=this.getChildren();for(var chl=ch.length,i=0;i<chl;i++){if(ch[i].isCreated()&&QxDOM.getElementAbsolutePointChecker(ch[i].getElement(),x,y)){return ch[i].getWidgetFromPointHelper(x,y);};};return this;};proto.scrollIntoView=function(){if(!this.isCreated()){return;};this.scrollIntoViewX();this.scrollIntoViewY();};proto.scrollIntoViewX=function(){if(!this.isCreated()){return;};var p=this.getParent();if(!p){return;};var l=this.getOffsetLeft();var w=this.getOffsetWidth();var sl=p.getScrollLeft();var cw=p.getComputedAreaWidth();if(w>cw||l<sl){p.setScrollLeft(l);}else if(l+w>sl+cw){p.setScrollLeft(l+w-cw);};};proto.scrollIntoViewY=function(){if(!this.isCreated()){return;};var p=this.getParent();if(!p){return;};var t=this.getOffsetTop();var h=this.getOffsetHeight();var st=p.getScrollTop();var ch=p.getClientHeight();if(h>ch||t<st){p.setScrollTop(t);}else if(t+h>st+ch){p.setScrollTop(t+h-ch);};};if((new QxClient).isMshtml()){proto._modifyCanSelect=function(_b1,_b2,_b3,_b4){return _b1?this.removeHtmlProperty("unselectable"):this.setHtmlProperty("unselectable","on");};proto._evalCanSelect=function(_b3){var v=this.getHtmlProperty("unselectable");return v!="on"||v==null;};}else if((new QxClient).isGecko()){proto._modifyCanSelect=function(_b1,_b2,_b3,_b4){if(_b1){this.removeStyleProperty("MozUserSelect");this.removeStyleProperty("userSelect");}else {this.setStyleProperty("MozUserSelect","none");this.setStyleProperty("userSelect","none");};return true;};proto._evalCanSelect=function(_b3){var v=(new QxClient).isGecko()?this.getStyleProperty("MozUserSelect"):null;var v=v==null?this.getStyleProperty("userSelect"):v;return v!="none"||v==null;};}else {proto._modifyCanSelect=function(_b1,_b2,_b3,_b4){return _b1?this.removeStyleProperty("userSelect"):this.setStyleProperty("userSelect","none");};proto._evalCanSelect=function(_b3){throw new Error("_evalCanSelect is not implemented for this client!");};};if((new QxClient).isMshtml()){proto._modifyOpacity=function(_b1,_b2,_b3,_b4){if(_b1==null||_b1>1){this.removeStyleProperty("filter");}else if(isValidNumber(_b1)){this.setStyleProperty("filter","Alpha(Opacity="+Math.round(_b1.limit(0,1)*100)+")");}else {throw new Error("Unsupported opacity value:"+_b1);};return true;};proto._evalOpacity=function(){var o=this.getStyleProperty("filter");if(o==null||o==""){return 1;};var re = /Alpha\(Opacity=([0-9]{1,3})\)/;if(!re.test(o)){return 1;};return parseInt(RegExp.$1)/100;};}else {proto._modifyOpacity=function(_b1,_b2,_b3,_b4){if(_b1==null||_b1>1){if((new QxClient).isGecko()){this.removeStyleProperty("MozOpacity");}else if((new QxClient).isKhtml()){this.removeStyleProperty("KhtmlOpacity");};this.removeStyleProperty("opacity");}else if(isValidNumber(_b1)){_b1=_b1.limit(0,1);if((new QxClient).isGecko()){this.setStyleProperty("MozOpacity",_b1);}else if((new QxClient).isKhtml()){this.setStyleProperty("KhtmlOpacity",_b1);};this.setStyleProperty("opacity",_b1);};return true;};proto._evalOpacity=function(){var o=(new QxClient).isGecko()?this.getStyleProperty("MozOpacity"):(new QxClient).isKhtml()?this.getStyleProperty("KhtmlOpacity"):null;var o=o==null||o==""?this.getStyleProperty("opacity"):o;if(o==null||o==""){return 1;};return parseFloat(o);};};proto._modifyCursor=function(_b1,_b2,_b3,_b4){return this.setStyleProperty("cursor",_b1=="pointer"&&(new QxClient).isMshtml()?"hand":_b1);};proto._evalCursor=function(){var c=this.getStyleProperty("cursor");return c=="hand"?"pointer":c;};proto._modifyBackgroundImage=function(_b1,_b2,_b3,_b4){if(_b1==""||_b1=="null"){this.removeStyleProperty("backgroundImage");}else {this.setStyleProperty("backgroundImage","url("+(new QxImageManager).buildURI(_b1)+")");};return true;};proto._evalBackgroundImage=function(){var s=this.getStyleProperty("backgroundImage");return isInvalid(s) ? "" : s.replace(/^url\(/i, "").replace(/\)$/, "");};proto._modifyClip=function(_b1,_b2,_b3,_b4){if(_b1){try{var r=QxWidget.cssLikeShortHandService(_b1);}catch(ex){throw new Error("Invalid value for clip:"+ex);};r=r[1];this.setStyleProperty("clip","rect("+r[0]+","+r[1]+","+r[2]+","+r[3]+")");}else {this.removeStyleProperty("clip");};return true;};proto._modifyOverflow=function(_b1,_b2,_b3,_b4){var pv=_b1;var pn=_b3;if((new QxClient).isGecko()){switch(pv){case "hidden":pv="-moz-scrollbars-none";break;case "scrollX":pv="-moz-scrollbars-horizontal";break;case "scrollY":pv="-moz-scrollbars-vertical";break;};}else if((new QxClient).isMshtml()){switch(pv){case "scrollX":pn="overflowX";pv="scroll";break;case "scrollY":pn="overflowY";pv="scroll";break;};var a=["overflow","overflowX","overflowY"];for(var i=0;i<a.length;i++){if(a[i]!=pn){this.removeStyleProperty(a[i]);};};}else {switch(pv){case "scrollX":case "scrollY":pv="scroll";break;};};return this.setStyleProperty(pn,pv);};proto._evalOverflow=function(){var pv=this.getStyleProperty("overflow");if((new QxClient).isGecko()){switch(pv){case "-moz-scrollbars-none":pv="hidden";break;case "-moz-scrollbars-horizontal":pv="scrollX";break;case "-moz-scrollbars-vertical":pv="scrollY";break;};}else if((new QxClient).isMshtml()){var pvx=this.getStyleProperty("overflowX");var pvy=this.getStyleProperty("overflowY");if(pvx==pvy=="scroll"){pv="scroll";}else if(pvx=="scroll"){pv="scrollX";}else if(pvy=="scroll"){pv="scrollY";};};return pv;};proto._modifyBorder=function(_b1,_b2,_b3,_b4){if(_b2){_b2.removeWidget(this);};if(_b1){_b1.addWidget(this);};this._recalculateFrame("border");this._invalidatePreferred();return true;};proto.dispose=function(){if(this.getDisposed()){return;};var ch=this._a2;if(isValid(this._a2)){var chl=ch.length;for(var i=chl-1;i>=0;i--){this._a2[i].dispose();delete this._a2[i];};delete this._a2;};try{this.getElement()._QxWidget=null;}catch(ex){};delete this._usedDimensionsHorizontal;delete this._usedDimensionsVertical;QxTarget.prototype.dispose.call(this);for(var i in this._styleProperties){delete this._styleProperties[i];};delete this._styleProperties;for(var i in this._htmlProperties){delete this._htmlProperties[i];};delete this._htmlProperties;for(var i in this._htmlAttributes){delete this._htmlAttributes[i];};delete this._htmlAttributes;return true;};proto._clonePropertyIgnoreList="parent,element,visible,display,visibility,boxPrefHeight,boxPrefWidth";proto.clone=function(cloneRecursive,customPropertyList){var cloneInstance=new this.constructor;var propertyName;var propertyList=[];var propertyIngoreList=this._clonePropertyIgnoreList.split(",");var sourcePropertyList=isValid(customPropertyList)?customPropertyList:this._i1.split(",");var sourcePropertyListLength=sourcePropertyList.length-1;do{propertyName=sourcePropertyList[sourcePropertyListLength];if(!propertyIngoreList.contains(propertyName)){propertyList.push(propertyName);};}while(sourcePropertyListLength--);propertyListLength=propertyList.length-1;do{propertyName=propertyList[propertyListLength].toFirstUp();cloneInstance["set"+propertyName](this["get"+propertyName]());}while(propertyListLength--);if(sourcePropertyList.contains("parent")){var myParent=this.getParent();if(myParent){cloneInstance.setParent(myParent);};};if(sourcePropertyList.contains("visibility")){cloneInstance.setVisibility(this.getVisibility());};if(sourcePropertyList.contains("display")){cloneInstance.setDisplay(this.getDisplay());};if(cloneRecursive){this._cloneRecursive(cloneInstance);};return cloneInstance;};proto._cloneRecursive=function(cloneInstance){var ch=this.getChildren();var chl=ch.length;var cloneChild;for(var i=0;i<chl;i++){cloneChild=ch[i].clone(true);cloneInstance.add(cloneChild);};};proto.execute=function(){var vCommand=this.getCommand();if(vCommand){vCommand.execute(this);};if(this.hasEventListeners("execute")){this.dispatchEvent(new QxEvent("execute"));};if(this.hasEventListeners("action")){this.dispatchEvent(new QxEvent("action"));};};function QxBlocker(){QxWidget.call(this);this.setLocation(0,0);this.setRight(0);this.setBottom(0);this.setZIndex(1e6);if((new QxClient).isMshtml()){this.setBackgroundImage((new QxImageManager).getBlank());};};QxBlocker.extend(QxWidget,"QxBlocker");function QxClientDocument(clientWindow){QxWidget.call(this);this._window=clientWindow;this._document=this._window.getElement().document;this.setElement(this._document.body);this._lastBodyWidth=this._document.body.offsetWidth;this._lastBodyHeight=this._document.body.offsetHeight;this.addEventListener("resize",this._onresize);this.setTheme(this._themes[0]);this.setTabIndex(1);this._blocker=new QxBlocker;this._modalWidgets=[];this._modalNativeWindow=null;this._blocker.addEventListener("mousedown",function(e){if(this._modalNativeWindow){this._modalNativeWindow.focus();};},this);this._blocker.addEventListener("mouseup",function(e){if(this._modalNativeWindow){this._modalNativeWindow.focus();};},this);};QxClientDocument.extend(QxWidget,"QxClientDocument");QxClientDocument.addProperty({name:"theme",type:String});QxClientDocument.addProperty({name:"globalCursor",type:String});proto._renderInitialDone_horizontal=true;proto._renderInitialDone_vertical=true;proto._childOuterWidthChanged=function(vModifiedChild,_e5){};proto._childOuterHeightChanged=function(vModifiedChild,_e5){};proto._modifyParent=function(){return true;};proto._modifyVisible=function(){return true;};proto._modifyElement=function(_b1,_b2,_b3,_b4){if(!_b1){throw new Error("QxClientDocument does not accept invalid elements!");};_b1._QxWidget=this;this._applyStyleProperties(_b1,_b4);this._applyHtmlProperties(_b1,_b4);this._applyHtmlAttributes(_b1,_b4);this.setVisible(true,_b4);return true;};proto.getWindow=function(){return this._window;};proto.getTopLevelWidget=function(){return this;};proto.getDocumentElement=function(){return this._document;};proto.getEventManager=function(){return this._window.getEventManager();};proto.getFocusManager=function(){return this._window.getFocusManager();};proto._createElement=proto.createElementWrapper=function(){return true;};proto.isCreated=function(){return true;};proto.isFocusRoot=function(){return true;};proto.getFocusRoot=function(){return this;};proto.getToolTip=function(){return null;};proto.getParent=function(){return null;};proto.canGetFocus=function(){return true;};proto._visualizeBlur=function(){};proto._visualizeFocus=function(){};proto.block=function(activeWidget){this.add(this._blocker);if(typeof QxWindow=="function"&&activeWidget instanceof QxWindow){this._modalWidgets.push(activeWidget);var o=activeWidget.getZIndex();this._blocker.setZIndex(o);activeWidget.setZIndex(o+1);}else if(activeWidget instanceof QxNativeWindow){this._modalNativeWindow=activeWidget;this._blocker.setZIndex(1e7);};};proto.release=function(activeWidget){if(activeWidget){if(activeWidget instanceof QxNativeWindow){this._modalNativeWindow=null;}else {this._modalWidgets.remove(activeWidget);};};var l=this._modalWidgets.length;if(l==0){this.remove(this._blocker);}else {var oldActiveWidget=this._modalWidgets[l-1];var o=oldActiveWidget.getZIndex();this._blocker.setZIndex(o);oldActiveWidget.setZIndex(o+1);};};if((new QxClient).isMshtml()){proto._modifyGlobalCursor=function(_b1,_b2,_b3,_b4){var s=this._cursorStyleSheetElement;if(!s){s=this._cursorStyleSheetElement=this._document.createStyleSheet();};s.cssText=isValidString(_b1)?"*{cursor:"+_b1+" !important}":"";return true;};}else {proto._modifyGlobalCursor=function(_b1,_b2,_b3,_b4){var s=this._cursorStyleSheetElement;if(!s){s=this._cursorStyleSheetElement=this._document.createElement("style");s.type="text/css";this._document.getElementsByTagName("head")[0].appendChild(s);};var sheet=s.sheet;var l=sheet.cssRules.length;for(var i=l-1;i>=0;i--){sheet.deleteRule(i);};if(isValidString(_b1)){sheet.insertRule("*{cursor:"+_b1+" !important}",0);};return true;};};proto._onresize=function(e){if(typeof QxPopupManager=="function"){(new QxPopupManager).update();};var w=this._document.body.offsetWidth;var h=this._document.body.offsetHeight;if(this._lastBodyWidth!=w){this._lastBodyWidth=w;this._innerWidthChanged();};if(this._lastBodyHeight!=h){this._lastBodyHeight=h;this._innerHeightChanged();};};proto._themes=["Win9x","WinXP"];proto.getThemes=function(){return this._themes;};proto.registerTheme=function(v){if(this._themes.contains(v)){return;};this._themes.push(v);};proto.deregisterTheme=function(v){if(this.getTheme()==v){throw new Error("Could not remove currently selected theme!");};this._themes.remove(v);return true;};proto._modifyTheme=function(_b1,_b2,_b3,_b4){var vClass=this.getCssClassName();if(_b2){vClass=vClass.remove("QxTheme"+_b2," ");};if(_b1){vClass=vClass.add("QxTheme"+_b1," ");};this.setCssClassName(vClass);return true;};proto.add=function(){var a=arguments;var l=a.length;var t=a[l-1];if(typeof QxInline=="function"&&l>1&&typeof t=="string"){for(var i=0;i<l-1;i++){if(a[i]instanceof QxInline){a[i].setInlineNodeId(t);};a[i].setParent(this);};return this;}else {return QxWidget.prototype.add.apply(this,arguments);};};proto._getParentNodeForChild=function(otherObject){if(typeof QxInline=="function"&&otherObject instanceof QxInline){var inlineNodeId=otherObject.getInlineNodeId();if(isValid(inlineNodeId)){var inlineNode=document.getElementById(inlineNodeId);if(inlineNode){return inlineNode;};};throw new Error("Couldn't find target element for:"+otherObject);};return this.getElement();};proto.dispose=function(){if(this.getDisposed()){return;};this._window=this._document=null;QxWidget.prototype.dispose.call(this);return true;};function QxInline(){QxWidget.call(this);this.setHeight("auto");this.setWidth(null);};QxInline.extend(QxWidget,"QxInline");QxInline.addProperty({name:"inlineNodeId",type:String});proto._modifyInlineNodeId=function(_b1,_b2,_b3,_b4){if(this.isCreated()){throw new Error("You couldn't change this anymore. Widget is already created!");};return true;};proto.renderX=function(hint){if(hint=="parent-dimensions"||hint=="parent-width"){this._renderChildrenX("parent-width");};return QxWidget.prototype.renderX.call(this,hint);};proto.renderY=function(hint){if(hint=="parent-dimensions"||hint=="parent-height"){this._renderChildrenY("parent-height");};return QxWidget.prototype.renderY.call(this,hint);};function QxTerminator(){QxWidget.call(this);};QxTerminator.extend(QxWidget,"QxTerminator");proto.getChildren=function(){return[];};proto.getChildrenLength=function(){return 0;};proto.hasChildren=proto.contains=function(){return false;};proto.getPreviousSibling=proto.getNextSibling=proto.getFirstChild=proto.getLastChild=function(){return null;};proto.add=proto.addBefore=proto.addAfter=proto.remove=proto.removeAll=proto._getParentNodeForChild=proto._appendElement=function(){throw new Error("Not implemented for "+this.classname);};function QxManager(){QxTarget.call(this);this._objects={};};QxManager.extend(QxTarget,"QxManager");proto.add=function(oObject){var h=oObject.toHash();if(this._objects[h]){this.debug("Already known:"+oObject);return false;};this._objects[h]=oObject;return true;};proto.remove=function(oObject){delete this._objects[oObject.toHash()];return true;};proto.has=function(oObject){return this._objects[oObject.toHash()]!=null;};proto.get=function(oObject){return this._objects[oObject.toHash()];};proto.dispose=function(){if(this.getDisposed()){return;};if(typeof this._objects!="undefined"){for(var i in this._objects){if(typeof this._objects[i]=="object")this._objects[i].dispose();delete this._objects[i];};delete this._objects;};QxTarget.prototype.dispose.call(this);};function QxDataManager(){if(QxDataManager._instance)return QxDataManager._instance;QxManager.call(this);QxDataManager._instance=this;};QxDataManager.extend(QxManager,"QxDataManager");function QxEventManager(vClientWindow){QxObject.call(this);var o=this;this.__onmouseevent=function(e){return o._onmouseevent(e);};this.__onkeyevent=function(e){return o._onkeyevent(e);};this.__ondragevent=function(e){return o._ondragevent(e);};this.__onwindowblur=function(e){return o._onwindowblur(e);};this.__onwindowfocus=function(e){return o._onwindowfocus(e);};this.__onwindowresize=function(e){return o._onwindowresize(e);};if(isValid(vClientWindow)){this.attachEvents(vClientWindow);};this._commands={};};QxEventManager.extend(QxManager,"QxEventManager");QxEventManager.mouseEventTypes=["mouseover","mousemove","mouseout","mousedown","mouseup","click","dblclick","contextmenu",(new QxClient).isMshtml()?"mousewheel":"DOMMouseScroll"];QxEventManager.keyEventTypes=["keydown","keypress","keyup"];QxEventManager.dragEventTypes=(new QxClient).isGecko()?["dragdrop","dragenter","dragexit","draggesture","dragover"]:[];QxEventManager.addProperty({name:"allowClientContextMenu",type:Boolean,defaultValue:false});QxEventManager.addProperty({name:"captureWidget"});proto._attachedClientWindow=null;proto._lastMouseEventType=null;proto._lastMouseDown=false;proto._lastMouseEventDate=0;proto._modifyCaptureWidget=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setCapture(false,_b4);};if(_b1){_b1.setCapture(true,_b4);};return true;};proto.addCommand=function(vCommand){this._commands[vCommand.toHash()]=vCommand;};proto.removeCommand=function(vCommand){delete this._commands[vCommand.toHash()];};proto._checkKeyEventMatch=function(e){var vCommand;for(var vHash in this._commands){vCommand=this._commands[vHash];if(vCommand.getEnabled()&&vCommand._matchesKeyEvent(e)){if(!vCommand.execute()){e.preventDefault();};};};};proto.attachEvents=function(clientWindow){if(this._attachedClientWindow){return false;};this._attachedClientWindow=clientWindow;this.attachEventTypes(QxEventManager.mouseEventTypes,this.__onmouseevent);this.attachEventTypes(QxEventManager.keyEventTypes,this.__onkeyevent);this.attachEventTypes(QxEventManager.dragEventTypes,this.__ondragevent);this.attachWindowEvents();};if((new QxClient).isMshtml()){proto.attachWindowEvents=function(){var winElem=this._attachedClientWindow.getElement();winElem.attachEvent("onblur",this.__onwindowblur);winElem.attachEvent("onfocus",this.__onwindowfocus);winElem.attachEvent("onresize",this.__onwindowresize);};}else {proto.attachWindowEvents=function(){var winElem=this._attachedClientWindow.getElement();winElem.addEventListener("blur",this.__onwindowblur,false);winElem.addEventListener("focus",this.__onwindowfocus,false);winElem.addEventListener("resize",this.__onwindowresize,false);};};proto.detachEvents=function(){if(!this._attachedClientWindow){return false;};this.detachWindowEvents();this.detachEventTypes(QxEventManager.mouseEventTypes,this.__onmouseevent);this.detachEventTypes(QxEventManager.keyEventTypes,this.__onkeyevent);this.detachEventTypes(QxEventManager.dragEventTypes,this.__ondragevent);this._attachedClientWindow=null;};if((new QxClient).isMshtml()){proto.detachWindowEvents=function(){try{var winElem=this._attachedClientWindow.getElement();winElem.detachEvent("onblur",this.__onwindowblur);winElem.detachEvent("onfocus",this.__onwindowfocus);winElem.detachEvent("onresize",this.__onwindowresize);}catch(ex){};};}else {proto.detachWindowEvents=function(){try{var winElem=this._attachedClientWindow.getElement();winElem.removeEventListener("blur",this.__onwindowblur,false);winElem.removeEventListener("focus",this.__onwindowfocus,false);winElem.removeEventListener("resize",this.__onwindowresize,false);}catch(ex){};};};proto.attachEventTypes=function(eventTypes,functionPointer){try{var d=this._attachedClientWindow.getClientDocument().getElement();if(d.attachEvent){for(var i=0;i<eventTypes.length;i++){d.attachEvent("on"+eventTypes[i],functionPointer);};}else if(d.addEventListener){for(var i=0;i<eventTypes.length;i++){d.addEventListener(eventTypes[i],functionPointer,false);};};}catch(ex){};};proto.detachEventTypes=function(eventTypes,functionPointer){try{var d=this._attachedClientWindow.getClientDocument().getElement();if(d.detachEvent){for(var i=0;i<eventTypes.length;i++){d.detachEvent("on"+eventTypes[i],functionPointer);};}else if(d.removeEventListener){for(var i=0;i<eventTypes.length;i++){d.removeEventListener(eventTypes[i],functionPointer,false);};};}catch(ex){};};QxEventManager.getTargetObject=function(n){while(n!=null&&n._QxWidget==null){try{n=n.parentNode;}catch(e){n=null;};};return n?n._QxWidget:null;};QxEventManager.getTargetObjectFromEvent=function(e){return QxEventManager.getTargetObject(e.target||e.srcElement);};QxEventManager.getRelatedTargetObjectFromEvent=function(e){return QxEventManager.getTargetObject(e.relatedTarget||(e.type=="mouseover"?e.fromElement:e.toElement));};QxEventManager.getActiveTargetObject=function(n,o){if(!o){var o=QxEventManager.getTargetObject(n);if(!o){return null;};};while(o){if(!o.getEnabled()){return;};if(!o.getAnonymous()){break;};o=o.getParent();};return o;};QxEventManager.getActiveTargetObjectFromEvent=function(e){return QxEventManager.getActiveTargetObject(e.target||e.srcElement);};QxEventManager.getRelatedActiveTargetObjectFromEvent=function(e){return QxEventManager.getActiveTargetObject(e.relatedTarget||(e.type=="mouseover"?e.fromElement:e.toElement));};proto._onkeyevent=function(e){if(this.getDisposed()||typeof QxKeyEvent!="function"){return;};if(!e){e=this._attachedClientWindow.getElement().event;};var k=e.keyCode||e.charCode;if(k==QxKeyEvent.keys.tab){if((new QxClient).isNotMshtml()){e.preventDefault();};e.returnValue=false;if(typeof QxMenuManager=="function"){(new QxMenuManager).update();};this._attachedClientWindow.getFocusManager()._ontabevent(e);}else {if(k==QxKeyEvent.keys.esc){if(typeof QxMenuManager=="function"){(new QxMenuManager).update();};};var o=this.getCaptureWidget()||(new QxApplication).getActiveWidget();if(o==null||!o.getEnabled()){return;};var s=new QxKeyEvent(e.type,e,false);if(e.type=="keypress"){this._checkKeyEventMatch(s);};var r=o.dispatchEvent(s);if(typeof QxDragAndDropManager=="function"){(new QxDragAndDropManager).handleKeyEvent(s);};s.dispose();return r;};};if((new QxClient).isMshtml()){proto._onmouseevent=function(e){if(!e){e=this._attachedClientWindow.getElement().event;};var t=e.type;if(t=="mousemove"){if(this._mouseIsDown&&e.button==0){this._onmouseevent_post(e,"mouseup");this._mouseIsDown=false;};}else {if(t=="mousedown"){this._mouseIsDown=true;}else if(t=="mouseup"){this._mouseIsDown=false;};if(t=="mouseup"&&!this._lastMouseDown&&((new Date).valueOf()-this._lastMouseEventDate)<250){this._onmouseevent_post(e,"mousedown");}else if(t=="dblclick"&&this._lastMouseEventType=="mouseup"&&((new Date).valueOf()-this._lastMouseEventDate)<250){this._onmouseevent_post(e,"click");};if(t=="mousedown"||t=="mouseup"||t=="click"||t=="dblclick"||t=="contextmenu"){this._lastMouseEventType=t;this._lastMouseEventDate=(new Date).valueOf();this._lastMouseDown=t=="mousedown";};};this._onmouseevent_post(e,t);};}else {proto._onmouseevent=function(e){var t=e.type;switch(t){case "DOMMouseScroll":t="mousewheel";break;case "click":case "dblclick":if(e.button!=QxMouseEvent.buttons.left){return;};};this._onmouseevent_post(e,t);};};proto._onmouseevent_post=function(e,t){var vEventObject,vDispatchTarget,vTarget,vActiveTarget,vRelatedTarget;switch(t){case "contextmenu":if(!this.getAllowClientContextMenu()){if(!(new QxClient).isMshtml()){e.preventDefault();};e.returnValue=false;};break;case "mousedown":this._onactivateevent(e);break;};vDispatchTarget=this.getCaptureWidget();vTarget=QxEventManager.getTargetObjectFromEvent(e);if(!isValidObject(vDispatchTarget)){vDispatchTarget=vActiveTarget=QxEventManager.getActiveTargetObject(null,vTarget);if(!isValidObject(vDispatchTarget)){return;};}else {vActiveTarget=QxEventManager.getActiveTargetObject(null,vTarget);};switch(t){case "mouseover":case "mouseout":vRelatedTarget=QxEventManager.getRelatedActiveTargetObjectFromEvent(e);if(vRelatedTarget==vActiveTarget){return;};};vEventObject=new QxMouseEvent(t,e,false,vTarget,vActiveTarget,vRelatedTarget);QxMouseEvent._storeEventState(vEventObject);if(t=="mousedown"){if(typeof QxPopupManager=="function"){(new QxPopupManager).update(vActiveTarget);};};vDispatchTarget.dispatchEvent(vEventObject);switch(t){case "mousedown":if(!vEventObject.getPropagationStopped()){if(typeof QxMenuManager=="function"){(new QxMenuManager).update();};};break;case "mouseover":if(typeof QxToolTipManager=="function"){(new QxToolTipManager).handleMouseOver(vEventObject);};break;case "mouseout":if(typeof QxToolTipManager=="function"){(new QxToolTipManager).handleMouseOut(vEventObject);};break;};if(typeof QxDragAndDropManager=="function"){(new QxDragAndDropManager).handleMouseEvent(vEventObject);};vEventObject.dispose();vEventObject=null;};proto._ondragevent=function(e){e.preventDefault();e.returnValue=false;e.preventBubble();};proto._onwindowblur=function(e){if(this._ignoreBlur){delete this._ignoreBlur;return;};this._allowFocus=true;if(typeof QxPopupManager=="function"){(new QxPopupManager).update();};if(typeof QxMenuManager=="function"){(new QxMenuManager).update();};if(typeof QxDragAndDropManager=="function"){(new QxDragAndDropManager).globalCancelDrag();};var vDoc=this._attachedClientWindow.getDocument();if(vDoc.hasEventListeners("blur")){vDoc.dispatchEvent(new QxEvent("blur"),true);};};proto._onwindowfocus=function(e){if(!this._allowFocus){return;};delete this._allowFocus;var vDoc=this._attachedClientWindow.getDocument();if(vDoc.hasEventListeners("focus")){vDoc.dispatchEvent(new QxEvent("focus"),true);};};proto._onwindowresize=function(e){this._attachedClientWindow.getDocument().dispatchEvent(new QxEvent("resize"),true);};proto._onactivateevent=function(e){var n=e.target||e.srcElement;while(n!=null&&n._QxWidget==null){n=n.parentNode;};if(n==null){return;};var o=n._QxWidget;var oactive=o;if(o){while(o!=null&&!o.canGetFocus()){o=o.getParent();};if(o){o.setFocused(true);};if(oactive!=o){(new QxApplication).setActiveWidget(oactive);};};this._ignoreBlur=true;};proto.dispose=function(){if(this.getDisposed()){return;};this.detachEvents();this._attachedClientWindow=null;this._lastMouseEventType=null;this._lastMouseDown=null;this._lastMouseEventDate=null;if(this._commands){for(var vHash in this._commands){this._commands[vHash].dispose();delete this._commands[vHash];};this._commands=null;};QxObject.prototype.dispose.call(this);};function QxFocusManager(vClientWindow){QxObject.call(this);if(isValid(vClientWindow)){this._attachedClientWindow=vClientWindow;};};QxFocusManager.extend(QxManager,"QxFocusManager");QxFocusManager.addProperty({name:"focusedWidget"});proto._attachedClientWindow=null;proto._modifyFocusedWidget=function(_b1,_b2,_b3,_b4){var cIn=typeof _b1=="object"&&_b1!=null;var cOut=typeof _b2=="object"&&_b2!=null;if(cIn&&typeof QxPopupManager=="function"){(new QxPopupManager).update(_b1);};if(cOut){var s=new QxFocusEvent("focusout",false);if(cIn){s.setRelatedTarget(_b1);};_b2.dispatchEvent(s);s.dispose();};if(cIn){var s=new QxFocusEvent("focusin",false);if(cOut){s.setRelatedTarget(_b2);};_b1.dispatchEvent(s);s.dispose();};if(cOut){_b2.setFocused(false,_b4);var s=new QxFocusEvent("blur",false);if(cIn){s.setRelatedTarget(_b1);};_b2.dispatchEvent(s);if(typeof QxToolTipManager=="function"){(new QxToolTipManager).handleBlur(s);};s.dispose();(new QxApplication).setActiveWidget(null);};if(cIn){_b1.setFocused(true,_b4);var s=new QxFocusEvent("focus",false);if(cOut){s.setRelatedTarget(_b2);};_b1.dispatchEvent(s);if(typeof QxToolTipManager=="function"){(new QxToolTipManager).handleFocus(s);};s.dispose();(new QxApplication).setActiveWidget(_b1);};return true;};proto._ontabeventname=(new QxClient).isMshtml()?"keydown":"keypress";proto._ontabevent=function(e){if(e.type!=this._ontabeventname||!this._attachedClientWindow){return;};var cd=this._attachedClientWindow.getDocument();var current=this.getFocusedWidget();if(!e.shiftKey){var next=current?this.getWidgetAfter(cd,current):this.getFirstWidget(cd);}else {var next=current?this.getWidgetBefore(cd,current):this.getLastWidget(cd);};if(next){next.setFocused(true);next._ontabfocus();};};proto.compareTabOrder=function(c1,c2){if(c1==c2){return 0;};var t1=c1.getTabIndex();var t2=c2.getTabIndex();if(t1!=t2){return t1-t2;};var y1=c1.getComputedPageBoxTop();var y2=c2.getComputedPageBoxTop();if(y1!=y2){return y1-y2;};var x1=c1.getComputedPageBoxLeft();var x2=c2.getComputedPageBoxLeft();if(x1!=x2){return x1-x2;};var z1=c1.getZIndex();var z2=c2.getZIndex();if(z1!=z2){return z1-z2;};return 0;};proto.getFirstWidget=function(oContainer){return this._getFirst(oContainer,null);};proto.getLastWidget=function(oContainer){return this._getLast(oContainer,null);};proto.getWidgetAfter=function(oContainer,oWidget){if(oContainer==oWidget){return this.getFirstWidget(oContainer);};if(oWidget.getAnonymous()){oWidget=oWidget.getParent();};if(oWidget==null){return[];};var all=[];this._getAllAfter(oContainer,oWidget,all);all.sort(this.compareTabOrder);return all.length>0?all[0]:this.getFirstWidget(oContainer);};proto.getWidgetBefore=function(oContainer,oWidget){if(oContainer==oWidget){return this.getLastWidget(oContainer);};if(oWidget.getAnonymous()){oWidget=oWidget.getParent();};if(oWidget==null){return[];};var all=[];this._getAllBefore(oContainer,oWidget,all);all.sort(this.compareTabOrder);var l=all.length;return l>0?all[l-1]:this.getLastWidget(oContainer);};proto._getAllAfter=function(oCont,oComp,oArray){var cs=oCont.getChildren();var l=cs.length;for(var i=0;i<l;i++){if(!(cs[i]instanceof QxWidget)){continue;};if(cs[i].canGetFocus()&&cs[i].getTabIndex()>0&&this.compareTabOrder(oComp,cs[i])<0){oArray.push(cs[i]);};if(!cs[i].isFocusRoot()){this._getAllAfter(cs[i],oComp,oArray);};};};proto._getAllBefore=function(oCont,oComp,oArray){var cs=oCont.getChildren();var l=cs.length;for(var i=0;i<l;i++){if(!(cs[i]instanceof QxWidget)){continue;};if(cs[i].canGetFocus()&&cs[i].getTabIndex()>0&&this.compareTabOrder(oComp,cs[i])>0){oArray.push(cs[i]);};if(!cs[i].isFocusRoot()){this._getAllBefore(cs[i],oComp,oArray);};};};proto._getFirst=function(oCont,oFirst){var cs=oCont.getChildren();var l=cs.length;for(var i=0;i<l;i++){if(!(cs[i]instanceof QxWidget)){continue;};if(cs[i].canGetFocus()&&cs[i].getTabIndex()>0){if(oFirst==null||this.compareTabOrder(cs[i],oFirst)<0){oFirst=cs[i];};};if(!cs[i].isFocusRoot()){oFirst=this._getFirst(cs[i],oFirst);};};return oFirst;};proto._getLast=function(oCont,oLast){var cs=oCont.getChildren();var l=cs.length;for(var i=0;i<l;i++){if(!(cs[i]instanceof QxWidget)){continue;};if(cs[i].canGetFocus()&&cs[i].getTabIndex()>0){if(oLast==null||this.compareTabOrder(cs[i],oLast)>0){oLast=cs[i];};};if(! cs[i].isFocusRoot()){oLast=this._getLast(cs[i],oLast);};};return oLast;};proto.dispose=function(){if(this.getDisposed()){return;};this._attachedClientWindow=null;QxObject.prototype.dispose.call(this);};function QxBorder(bWidth,bStyle,bColor){QxTarget.call(this);this._h1={};this._widgets={};this._h2={top:"",right:"",bottom:"",left:"",topColors:"",rightColors:"",bottomColors:"",leftColors:""};if(isValid(bWidth)&&bWidth!=0){this.setWidth(bWidth);};if(isValid(bStyle)){this.setStyle(bStyle);};if(isValid(bColor)){this.setColor(bColor);};};QxBorder.extend(QxTarget,"QxBorder");QxBorder.addProperty({name:"topWidth",type:Number,defaultValue:0,impl:"borderTopProperty"});QxBorder.addProperty({name:"rightWidth",type:Number,defaultValue:0,impl:"borderRightProperty"});QxBorder.addProperty({name:"bottomWidth",type:Number,defaultValue:0,impl:"borderBottomProperty"});QxBorder.addProperty({name:"leftWidth",type:Number,defaultValue:0,impl:"borderLeftProperty"});QxBorder.addProperty({name:"topStyle",type:String,defaultValue:"none",impl:"borderTopProperty"});QxBorder.addProperty({name:"rightStyle",type:String,defaultValue:"none",impl:"borderRightProperty"});QxBorder.addProperty({name:"bottomStyle",type:String,defaultValue:"none",impl:"borderBottomProperty"});QxBorder.addProperty({name:"leftStyle",type:String,defaultValue:"none",impl:"borderLeftProperty"});QxBorder.addProperty({name:"topColor",type:QxColor,defaultValue:"transparent",impl:"borderTopProperty"});QxBorder.addProperty({name:"rightColor",type:QxColor,defaultValue:"transparent",impl:"borderRightProperty"});QxBorder.addProperty({name:"bottomColor",type:QxColor,defaultValue:"transparent",impl:"borderBottomProperty"});QxBorder.addProperty({name:"leftColor",type:QxColor,defaultValue:"transparent",impl:"borderLeftProperty"});QxBorder.styleDecl={top:"borderTop",right:"borderRight",bottom:"borderBottom",left:"borderLeft"};QxBorder.geckoColorDecl={top:"MozBorderTopColors",right:"MozBorderRightColors",bottom:"MozBorderBottomColors",left:"MozBorderLeftColors"};QxBorder.fromString=function(s){var b=new QxBorder;var parts = s.split(/\s+/);var p;for(var i=0;i<parts.length;i++){p=parts[i];switch(p){case "groove":case "ridge":case "inset":case "outset":case "solid":case "dotted":case "dashed":case "double":case "none":b.setStyle(p);break;default:var n=parseFloat(p);if(n==p||p.indexOf("px")!=-1){b.setWidth(n);}else {b.setColor(p);};break;};};return b;};if((new QxClient).isOpera()){proto._generateDefString=function(bWidth,bStyle,bColor){var sWidth=typeof bWidth=="number"&&bWidth>=0&&bWidth<1000?bWidth+"px":"0px";var bStyle=typeof bStyle=="string"&&bStyle!=""?bStyle:"solid";var bColor=typeof bColor=="string"?bColor:"";if(bColor==""){switch(bStyle){case "groove":case "ridge":bColor="ThreeDHighlight";break;case "outset":case "inset":bColor="ThreeDFace";break;};};return sWidth+" "+bStyle+" "+(bColor!=""?" "+bColor:"");};}else {proto._generateDefString=function(bWidth,bStyle,bColor){var sWidth=typeof bWidth=="number"&&bWidth>=0&&bWidth<1000?bWidth+"px":"0px";var bStyle=typeof bStyle=="string"&&bStyle!=""?bStyle:"solid";var bColor=typeof bColor=="string"?bColor:"";return sWidth+" "+bStyle+" "+(bColor!=""?" "+bColor:"");};};proto.addWidget=function(o){this._widgets[o.toHash()]=o;this._applyWidget(o);};proto.removeWidget=function(o){delete this._widgets[o.toHash()];this._resetWidget(o);};proto.setWidth=function(bWidth,_b4){this.setTopWidth(bWidth,_b4);this.setRightWidth(bWidth,_b4);this.setBottomWidth(bWidth,_b4);this.setLeftWidth(bWidth,_b4);return true;};proto.setStyle=function(bStyle,_b4){this.setTopStyle(bStyle,_b4);this.setRightStyle(bStyle,_b4);this.setBottomStyle(bStyle,_b4);this.setLeftStyle(bStyle,_b4);return true;};proto.setColor=function(bColor,_b4){this.setTopColor(bColor,_b4);this.setRightColor(bColor,_b4);this.setBottomColor(bColor,_b4);this.setLeftColor(bColor,_b4);return true;};proto._modifyBorderTopProperty=function(_b1,_b2,_b3,_b4){this._h1[_b3]=_b1;this._h2.top=this._generateDefString(this._h1["topWidth"],this._h1["topStyle"],this._h1["topColor"]);this._h3Top();this._sync("top");return true;};if((new QxClient).isGecko()){proto._h3Top=function(){if(typeof this._h1["topColor"]=="string"&&this._h1["topColor"]!=""){this._h2["topColors"]="";}else {switch(this._h1["topStyle"]){case "groove":this._h2["topColors"]="ThreeDShadow ThreeDHighlight";break;case "ridge":this._h2["topColors"]="ThreeDHighlight ThreeDShadow";break;case "inset":this._h2["topColors"]="ThreeDShadow ThreeDDarkShadow";break;case "outset":this._h2["topColors"]="ThreeDLightShadow ThreeDHighlight";break;default:this._h2["topColors"]="";};};};}else {proto._h3Top=function(){};};proto._modifyBorderRightProperty=function(_b1,_b2,_b3,_b4){this._h1[_b3]=_b1;this._h2.right=this._generateDefString(this._h1["rightWidth"],this._h1["rightStyle"],this._h1["rightColor"]);this._h3Right();this._sync("right");return true;};if((new QxClient).isGecko()){proto._h3Right=function(){if(typeof this._h1["rightColor"]=="string"&&this._h1["rightColor"]!=""){this._h2["rightColors"]="";}else {switch(this._h1["rightStyle"]){case "groove":this._h2["rightColors"]="ThreeDHighlight ThreeDShadow";break;case "ridge":this._h2["rightColors"]="ThreeDShadow ThreeDHighlight";break;case "inset":this._h2["rightColors"]="ThreeDHighlight ThreeDLightShadow";break;case "outset":this._h2["rightColors"]="ThreeDDarkShadow ThreeDShadow";break;default:this._h2["rightColors"]="";};};};}else {proto._h3Right=function(){};};proto._modifyBorderBottomProperty=function(_b1,_b2,_b3,_b4){this._h1[_b3]=_b1;this._h2.bottom=this._generateDefString(this._h1["bottomWidth"],this._h1["bottomStyle"],this._h1["bottomColor"]);this._h3Bottom();this._sync("bottom");return true;};if((new QxClient).isGecko()){proto._h3Bottom=function(){if(typeof this._h1["bottomColor"]=="string"&&this._h1["bottomColor"]!=""){this._h2["bottomColors"]="";}else {switch(this._h1["bottomStyle"]){case "groove":this._h2["bottomColors"]="ThreeDHighlight ThreeDShadow";break;case "ridge":this._h2["bottomColors"]="ThreeDShadow ThreeDHighlight";break;case "inset":this._h2["bottomColors"]="ThreeDHighlight ThreeDLightShadow";break;case "outset":this._h2["bottomColors"]="ThreeDDarkShadow ThreeDShadow";break;default:this._h2["bottomColors"]="";};};};}else {proto._h3Bottom=function(){};};proto._modifyBorderLeftProperty=function(_b1,_b2,_b3,_b4){this._h1[_b3]=_b1;this._h2.left=this._generateDefString(this._h1["leftWidth"],this._h1["leftStyle"],this._h1["leftColor"]);this._h3Left();this._sync("left");return true;};if((new QxClient).isGecko()){proto._h3Left=function(){if(typeof this._h1["leftColor"]=="string"&&this._h1["leftColor"]!=""){this._h2["leftColors"]="";}else {switch(this._h1["leftStyle"]){case "groove":this._h2["leftColors"]="ThreeDShadow ThreeDHighlight";break;case "ridge":this._h2["leftColors"]="ThreeDHighlight ThreeDShadow";break;case "inset":this._h2["leftColors"]="ThreeDShadow ThreeDDarkShadow";break;case "outset":this._h2["leftColors"]="ThreeDLightShadow ThreeDHighlight";break;default:this._h2["leftColors"]="";};};};}else {proto._h3Left=function(){};};proto._sync=function(bProp){for(i in this._widgets){this._applyWidgetProp(this._widgets[i],bProp);};};if((new QxClient).isGecko()){proto._applyWidgetProp=function(o,bProp){if(typeof o=="undefined"||o==null){throw new Error("Failed to get widget to update border:"+o);};c=QxBorder.styleDecl;o.setStyleProperty(c[bProp],this._h2[bProp]);c=QxBorder.geckoColorDecl;o.setStyleProperty(c[bProp],this._h2[bProp+"Colors"]);};proto._applyWidget=function(o){if(typeof o=="undefined"||o==null||(!o instanceof QxWidget)){throw new Error("Failed to get widget to update border:"+o);};var c;with(this._h2){c=QxBorder.styleDecl;o.setStyleProperty(c.top,top);o.setStyleProperty(c.right,right);o.setStyleProperty(c.bottom,bottom);o.setStyleProperty(c.left,left);c=QxBorder.geckoColorDecl;o.setStyleProperty(c.top,topColors);o.setStyleProperty(c.right,rightColors);o.setStyleProperty(c.bottom,bottomColors);o.setStyleProperty(c.left,leftColors);};};proto._resetWidget=function(o){var c=QxBorder.styleDecl;o.setStyleProperty(c.top,"");o.setStyleProperty(c.right,"");o.setStyleProperty(c.bottom,"");o.setStyleProperty(c.left,"");c=QxBorder.geckoColorDecl;o.setStyleProperty(c.top,"");o.setStyleProperty(c.right,"");o.setStyleProperty(c.bottom,"");o.setStyleProperty(c.left,"");};}else {proto._applyWidgetProp=function(o,bProp){if(typeof o=="undefined"||o==null){throw new Error("Failed to get widget to update border:"+o);};c=QxBorder.styleDecl;o.setStyleProperty(c[bProp],this._h2[bProp]);};proto._applyWidget=function(o){if(typeof o=="undefined"||o==null||(!o instanceof QxWidget)){throw new Error("Failed to get widget to update border:"+o);};var c;with(this._h2){c=QxBorder.styleDecl;o.setStyleProperty(c.top,top);o.setStyleProperty(c.right,right);o.setStyleProperty(c.bottom,bottom);o.setStyleProperty(c.left,left);};};proto._resetWidget=function(o){var c=QxBorder.styleDecl;o.setStyleProperty(c.top,"");o.setStyleProperty(c.right,"");o.setStyleProperty(c.bottom,"");o.setStyleProperty(c.left,"");};};QxBorder.presets={inset:new QxBorder(2,"inset"),outset:new QxBorder(2,"outset"),groove:new QxBorder(2,"groove"),ridge:new QxBorder(2,"ridge"),thinInset:new QxBorder(1,"solid","ThreeDShadow"),thinOutset:new QxBorder(1,"solid","ThreeDShadow"),black:new QxBorder(1,"solid","black"),white:new QxBorder(1,"solid","white"),shadow:new QxBorder(1,"solid","ThreeDShadow")};with(QxBorder.presets.thinInset){setRightColor("ThreeDHighlight");setBottomColor("ThreeDHighlight");};with(QxBorder.presets.thinOutset){setLeftColor("ThreeDHighlight");setTopColor("ThreeDHighlight");};proto.dispose=function(){if(typeof this._widgets=="object"){for(var i;i<this._widgets.length;i++){delete this._widgets[i];};};delete this._widgets;if(typeof this._h1=="object"){for(var i in this._h1){delete this._h1[i];};};delete this._h1;if(typeof this._h2=="object"){for(var i in this._h2){delete this._h2[i];};};delete this._h2;return QxTarget.prototype.dispose.call(this);};function QxTextField(vText){QxWidget.call(this);if(isValid(vText)){this.setText(vText);};this.setHtmlProperty("type","text");this.setTabIndex(1);this.setCanSelect(true);this.setTagName("INPUT");this.setTextAlign("left");this.addEventListener("blur",this._onblur);this.addEventListener("focus",this._onfocus);};QxTextField.extend(QxWidget,"QxTextField");QxTextField.addProperty({name:"text",type:String,defaultValue:""});QxTextField.addProperty({name:"maxLength",type:Number});QxTextField.addProperty({name:"readOnly",type:Boolean});QxTextField.addProperty({name:"selectionStart",type:Number});QxTextField.addProperty({name:"selectionLength",type:Number});QxTextField.addProperty({name:"selectionText",type:String});proto._clonePropertyIgnoreList+=",selectionStart,selectionLength,selectionText";proto._checkText=function(_b1,_b2,_b3,_b4){return typeof _b1=="string"?_b1:"";};proto._modifyText=function(_b1,_b2,_b3,_b4){return this.setHtmlProperty("value",_b1);};proto._modifyMaxLength=function(_b1,_b2,_b3,_b4){return this.setHtmlProperty("maxLength",_b1);};proto._modifyReadOnly=function(_b1,_b2,_b3,_b4){return this.setHtmlProperty("readOnly",_b1);};if((new QxClient).isGecko()){proto._visualizeFocus=function(){this.setCssClassName(this.getCssClassName().add("QxFocused"," ").add(this.classname+"-Focused"," "));try{this.getElement().readOnly=true;this.getElement().focus();this.getElement().readOnly=this.getReadOnly();}catch(ex){};return true;};proto._addInlineEvents=function(el){el.addEventListener("input",QxWidget.__oninlineevent,false);return QxWidget.prototype._addInlineEvents.call(this,el);};proto._removeInlineEvents=function(el){el.removeEventListener("input",QxWidget.__oninlineevent,false);return QxWidget.prototype._removeInlineEvents.call(this,el);};};proto.getPreferredWidth=function(){var el=this.getElement();if(el){var w=el.style.width;el.style.width="";var o=el.offsetWidth;el.style.width=isValid(w)?w:"";return o;};return 0;};proto.getPreferredHeight=function(){var el=this.getElement();if(el){var h=el.style.height;el.style.height="";var o=el.offsetHeight;el.style.height=isValid(h)?h:"";return o;};return 0;};proto._textOnFocus=null;proto._ontabfocus=function(e){this.selectAll();};proto._onfocus=function(e){this._textOnFocus=this.getElement().value;};proto._onblur=function(e){if(this._textOnFocus!=this.getElement().value){this.setText(this.getElement().value);};this.setSelectionLength(0);};proto._oninlineevent=function(e){if(!e){e=this.getTopLevelWidget().getDocumentElement().parentWindow.event;};switch(e.type){case "input":if(this.hasEventListeners("input")){this.dispatchEvent(new QxDataEvent("input",this.getElement().value));};return true;case "propertychange":if(e.propertyName=="value"){if(this.hasEventListeners("input")){this.dispatchEvent(new QxDataEvent("input",this.getElement().value));};return true;};break;};return QxWidget.prototype._oninlineevent.call(this,e);};if((new QxClient).isMshtml()){proto._getRange=function(){this._visualPropertyCheck();return this.getElement().createTextRange();};proto._getSelectionRange=function(){this._visualPropertyCheck();return this.getTopLevelWidget().getDocumentElement().selection.createRange();};proto.setSelectionStart=function(vStart){this._visualPropertyCheck();var vText=this.getElement().value;var i=0;while(i<vStart){i=vText.indexOf("\r\n",i);if(i==-1){break;};vStart--;i++;};var vRange=this._getRange();vRange.collapse();vRange.move("character",vStart);vRange.select();};proto.getSelectionStart=function(){this._visualPropertyCheck();var vSelectionRange=this._getSelectionRange();if(!this.getElement().contains(vSelectionRange.parentElement())){return-1;};var vRange=this._getRange();vRange.setEndPoint("EndToStart",vSelectionRange);return vRange.text.length;};proto.setSelectionLength=function(vLength){this._visualPropertyCheck();var vSelectionRange=this._getSelectionRange();if(!this.getElement().contains(vSelectionRange.parentElement())){return;};vSelectionRange.collapse();vSelectionRange.moveEnd("character",vLength);vSelectionRange.select();};proto.getSelectionLength=function(){this._visualPropertyCheck();var vSelectionRange=this._getSelectionRange();if(!this.getElement().contains(vSelectionRange.parentElement())){return 0;};return vSelectionRange.text.length;};proto.setSelectionText=function(vText){this._visualPropertyCheck();var vStart=this.getSelectionStart();var vSelectionRange=this._getSelectionRange();if(!this.getElement().contains(vSelectionRange.parentElement())){return;};vSelectionRange.text=vText;this.setText(this.getElement().value);this.setSelectionStart(vStart);this.setSelectionLength(vText.length);return true;};proto.getSelectionText=function(){this._visualPropertyCheck();var vSelectionRange=this._getSelectionRange();if(!this.getElement().contains(vSelectionRange.parentElement())){return "";};return vSelectionRange.text;};proto.selectAll=function(){this._visualPropertyCheck();this.setSelectionStart(0);this.setSelectionLength(this.getText().length);this.getElement().select();};proto.selectFromTo=function(vStart,vEnd){this._visualPropertyCheck();this.setSelectionStart(vStart);this.setSelectionLength(vEnd-vStart);};}else {proto.setSelectionStart=function(vStart){this._visualPropertyCheck();this.getElement().selectionStart=vStart;};proto.getSelectionStart=function(){this._visualPropertyCheck();return this.getElement().selectionStart;};proto.setSelectionLength=function(vLength){this._visualPropertyCheck();var el=this.getElement();el.selectionEnd=el.selectionStart+vLength;};proto.getSelectionLength=function(){this._visualPropertyCheck();var el=this.getElement();return el.selectionEnd-el.selectionStart;};proto.setSelectionText=function(vText){this._visualPropertyCheck();var el=this.getElement();var vOldText=el.value;var vStart=el.selectionStart;var vOldTextBefore=vOldText.substr(0,vStart);var vOldTextAfter=vOldText.substr(el.selectionEnd);var vValue=el.value=vOldTextBefore+vText+vOldTextAfter;el.selectionStart=vStart;el.selectionEnd=vStart+vText.length;this.setText(vValue);return true;};proto.getSelectionText=function(){this._visualPropertyCheck();return this.getElement().value.substr(this.getSelectionStart(),this.getSelectionLength());};proto.selectAll=function(){this._visualPropertyCheck();this.getElement().select();};proto.selectFromTo=function(vStart,vEnd){this._visualPropertyCheck();var el=this.getElement();el.selectionStart=vStart;el.selectionEnd=vEnd;};};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("blur",this._onblur);this.removeEventListener("focus",this._onfocus);QxWidget.prototype.dispose.call(this);};function QxPasswordField(vText){QxTextField.call(this,vText);this.setHtmlProperty("type","password");};QxPasswordField.extend(QxTextField,"QxPasswordField");function QxTextArea(sText){QxTextField.call(this,sText);this.setOverflow("auto");this.removeHtmlProperty("type");this.setHeight(50);this.setTagName("TEXTAREA");this.setCanSelect(true);};QxTextArea.extend(QxTextField,"QxTextArea");QxTextArea.addProperty({name:"wrap",type:Boolean});proto._modifyWrap=function(_b1,_b2,_b3,_b4){return(new QxClient).isMshtml()?this.setHtmlProperty("wrap",_b1?"soft":"off"):this.setStyleProperty("whiteSpace",_b1?"normal":"nowrap");};function QxTimerManager(){if(QxTimerManager._instance){return QxTimerManager._instance;};QxManager.call(this);QxTimerManager._instance=this;};QxTimerManager.extend(QxManager,"QxTimerManager");function QxTimer(vInterval){QxTarget.call(this);this.setEnabled(false);if(isValidNumber(vInterval)){this.setInterval(vInterval);};(new QxTimerManager).add(this);var o=this;this.__i7=function(){o._i7();};};QxTimer.extend(QxTarget,"QxTimer");QxTimer.addProperty({name:"interval",type:Number,defaultValue:1000});proto._i8=null;proto._modifyEnabled=function(_b1,_b2,_b3,_b4){if(_b2){window.clearInterval(this._i8);this._i8=null;}else if(_b1){this._i8=window.setInterval(this.__i7,this.getInterval());};return QxTarget.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);};proto.start=function(){this.setEnabled(true);};proto.startWith=function(vInterval){this.setInterval(vInterval);this.start();};proto.stop=function(){this.setEnabled(false);};proto.restart=function(){this.stop();this.start();};proto.restartWith=function(vInterval){this.stop();this.startWith(vInterval);};proto._i7=function(){if(this.getEnabled()&&this.hasEventListeners("interval")){this.dispatchEvent(new QxEvent("interval"),true);};};proto.dispose=function(){if(this.getDisposed()){return;};this.stop();this.__i7=null;if(this._i8r){window.clearInterval(this._i8);this._i8r=null;};return QxTarget.prototype.dispose.call(this);};function QxXmlHttpLoader(){QxTarget.call(this);if(!QxXmlHttpLoader._ok){throw new Error("Your Browser does not support XML-HTTP!");};var o=this;this.__onreadystatechange=function(){o._onreadystatechange();};this.__onload=function(){o._onload();};this.__onreadystatefix=function(){o.req.readyState=4;o._onreadystatechange();};};QxXmlHttpLoader.extend(QxTarget,"QxXmlHttpLoader");QxXmlHttpLoader._http=window.XMLHttpRequest?true:false;QxXmlHttpLoader._activex=window.ActiveXObject&&!(new QxClient).isOpera()?true:false;QxXmlHttpLoader._activexobj=null;QxXmlHttpLoader._ok=QxXmlHttpLoader._http||QxXmlHttpLoader._activex;if(QxXmlHttpLoader._activex){var servers=["MSXML2","Microsoft","MSXML","MSXML3"];for(var i=0;i<servers.length;i++){try{var o=new ActiveXObject(servers[i]+".XMLHTTP");QxXmlHttpLoader._activexobj=servers[i];o=null;}catch(ex){};};};QxXmlHttpLoader.addProperty({name:"xml"});proto.load=function(url){try{this.req=QxXmlHttpLoader._activex?new ActiveXObject(QxXmlHttpLoader._activexobj+".XMLHTTP"):new XMLHttpRequest();if(typeof this.req.abort!="undefined"){this.req.abort();};this.req.onreadystatechange=this.__onreadystatechange;if(this.req.readyState==null){this.req.readyState=1;req.addEventListener("load",this.__onreadystatefix,false);};this.req.open("GET",url,true);return QxXmlHttpLoader._activex?this.req.send():this.req.send(null);}catch(e){throw new Error("Your browser does not support XML-HTTP:\n"+e);};};proto._onload=function(){};proto._onreadystatechange=function(){switch(this.req.readyState){case 1:if(this.hasEventListeners("init")){this.dispatchEvent(new QxEvent("init"));};break;case 2:if(this.hasEventListeners("connect")){this.dispatchEvent(new QxEvent("connect"));};if(this.req.status!=200&&this.req.status!=0){if(typeof this.req.abort!="undefined")this.req.abort();throw new Error("File request failed:"+this.req.statusText+"["+this.req.status+"]");};break;case 3:if(this.hasEventListeners("download"))this.dispatchEvent(new QxEvent("download"));try{var l=this.req.getResponseHeader("Content-Length");if(typeof l!="number"){l=NaN;};}catch(ex){var l=NaN;};break;case 4:if(this.hasEventListeners("done")){this.dispatchEvent(new QxEvent("done"));};if(this.req.status!=200&&this.req.status!=0){if(this.req.abort){this.req.abort();};throw new Error("File request failed:"+this.req.statusText+"["+this.req.status+"]");};if(!this.req.responseXML.documentElement){var s = String(this.req.responseText).replace(/<\?xml[^\?]*\?>/, "");this.req.responseXML.loadXML(s);};if(!this.req.responseXML.documentElement){throw new Error("Missing Document Element!");};if(this.req.responseXML.documentElement.tagName=="parseerror"){throw new Error("XML-File is not well-formed!");};this.dispatchEvent(new QxDataEvent("complete",this.req.responseXML),true);};};proto.dispose=function(){if(this._disposed){return;};if(this.req){this.req=null;};this.__onreadystatechange=null;return QxTarget.prototype.dispose.call(this);};function QxData(c){QxTarget.call(this);this._h7=[];this._storeQueue=[];this._cache={};this._interval=new QxTimer(25);this._processRequestQueue=false;var o=this;this._interval.addEventListener("interval",function(){o.checkProcess();});(new QxTimerManager).add(this);};QxData.extend(QxTarget,"QxData");proto.loadData=function(dataKey){if(this.getDisposed()){return;};this._h7.push(dataKey);if(!this._interval.getEnabled()){this._interval.start();};};proto.checkProcess=function(){if(this.getDisposed()){return;};if(this._processRequestQueue){return;};this._processRequestQueue=true;while(this._h7.length>0){this.process(this._h7.shift(),new QxXmlHttpLoader);};this._processRequestQueue=false;this._interval.stop();};proto.process=function(dataKey,loader){if(this.getDisposed()){return;};this._storeQueue.push(dataKey);var o=this;loader.addEventListener("complete",function(e){o.processComplete(e.getData());loader.dispose();});try{loader.load(this.makeRequest(dataKey));}catch(ex){var t=dataKey.indexOf("[");var p0=dataKey.substring(0,t);this.dispatchEvent(new QxDataEvent("update"+p0.toFirstUp(),this),true);loader.dispose();throw new Error("Could not load data:"+ex);};};proto.makeRequest=function(dataKey){var t=dataKey.indexOf("[");var p0=dataKey.substring(0,t);var p1=dataKey.substring(t+1,dataKey.length-1);return "data/" + p0 + "/" + p1 + ".xml" + "?r=" + Math.round(Math.random()^Math.random()*100000);};proto.processComplete=function(xmlData){var req=this.getRequest(xmlData);var res=this.parseData(req,xmlData);this.mergeCacheData(res);this.dispatchEvent(new QxDataEvent("update"+req.toFirstUp(),this),true);};proto.getRequest=function(xmlData){return xmlData.documentElement.getElementsByTagName("PfxRequest")[0].getElementsByTagName("PfxSoap")[0].getAttribute("reqname");};proto.getResultXml=function(xmlData){return xmlData.documentElement.getElementsByTagName("PfxResult")[0];};proto.mapXmlToObject=function(xmlFrag){var r={};var c=xmlFrag.childNodes;for(var i=0;i<c.length;i++){if(c[i].nodeType==1){r[c[i].tagName]=c[i].firstChild.nodeValue;};};return r;};proto.parseData=function(req,xmlData){var handler=this["_parseData_"+req];if(typeof handler!="function"){throw new Error("QxData:The Parser function is not defined:_parseData_"+req+"!");};return handler.call(this,xmlData);};proto.mergeCacheData=function(res){for(i in res){this._cache[i]=res[i];};};proto.dispose=function(){if(this._disposed){return;};QxObject.prototype.dispose.call(this);if(typeof this._h7=="object"){for(var i=0;i<this._h7.length;i++){delete this._h7[i];};};delete this._h7;if(typeof this._storeQueue=="object"){for(var i=0;i<this._storeQueue.length;i++){delete this._storeQueue[i];};};delete this._storeQueue;if(typeof this._cache=="object"){for(i in this._cache){delete this._cache[i];};};this._cache=null;if(this._interval){this._interval.dispose();};this._interval=null;this._processRequestQueue=null;};function QxImageManager(){if(QxImageManager._instance){return QxImageManager._instance;};this.addIconTheme("Crystal SVG","crystalsvg");this.addIconTheme("Nuvola","nuvola");this.addWidgetTheme("Windows","windows");QxManager.call(this);QxImageManager._instance=this;};QxImageManager.extend(QxManager,"QxImageManager");QxImageManager.addProperty({ name : "path", type : String, defaultValue : "../../images/" });QxImageManager.addProperty({name:"iconTheme",type:String,defaultValue:"crystalsvg"});QxImageManager.addProperty({name:"widgetTheme",type:String,defaultValue:"windows"});proto._iconThemes={};proto._widgetThemes={};proto.getBlank=function(){return this.getPath()+"core/blank.gif";};proto.buildURI=function(vPath){switch(vPath.charAt(0)){case "/":case ".":return vPath;default:switch(vPath.substring(0,vPath.indexOf(":"))){case "http":case "https":case "file":return vPath;};if(vPath.indexOf("icons")==0){return this.getPath() + "icons/" + this.getIconTheme() + "/" + vPath.substring(6);}else if(vPath.indexOf("widgets")==0){return this.getPath() + "widgets/" + this.getWidgetTheme() + "/" + vPath.substring(8);};return this.getPath()+vPath;};};proto._updateImages=function(){var o;for(var i in this._objects){o=this._objects[i];o.setPreloader(new QxImagePreloader(this.buildURI(o.getSource())));};return true;};proto._modifyPath=function(_b1,_b2,_b3,_b4){return this._updateImages();};proto._checkIconTheme=function(_b1){if(this._iconThemes[_b1]){return _b1;};for(var i in this._iconThemes){if(this._iconThemes[i].title==_b1){return i;};};throw new Error("Invalid icon theme id/title:"+_b1+"!");};proto._modifyIconTheme=function(_b1,_b2,_b3,_b4){return this._updateImages();};proto.addIconTheme=function(vHash,vTitle,vId,vPath){if(isInvalidString(vTitle)){throw new Error("Please define the title of the new icon theme.");};if(isInvalidString(vId)){var vId=vTitle.toLowerCase();};if(this._iconThemes[vId]){throw new Error("Theme is already defined:"+vId);};this._iconThemes[vId]={title:vTitle,path:vPath?vPath:vId};};proto.removeIconTheme=function(vHash,vTitle,vId){if(isInvalidString(vTitle)){throw new Error("Please define the title of the icon theme which should be removed.");};if(isInvalidString(vId)){var vId=vTitle.toLowerCase();};if(this.getDefaultIconTheme()==vId){throw new Error("Could not remove default theme "+this.getDefaultIconTheme()+"!");};if(this.getIconTheme()==vId){this.resetIconTheme();};delete this._iconThemes[vId];};proto._checkWidgetTheme=function(_b1){if(this._widgetThemes[_b1]){return _b1;};for(var i in this._widgetThemes){if(this._widgetThemes[i].title==_b1){return i;};};throw new Error("Invalid widget theme id/title:"+_b1+"!");};proto._modifyWidgetTheme=function(_b1,_b2,_b3,_b4){return this._updateImages();};proto.addWidgetTheme=function(vHash,vTitle,vId,vPath){if(isInvalidString(vTitle)){throw new Error("Please define the title of the new widget theme.");};if(isInvalidString(vId)){var vId=vTitle.toLowerCase();};if(this._widgetThemes[vId]){throw new Error("Theme is already defined:"+vId);};this._widgetThemes[vId]={title:vTitle,path:vPath?vPath:vId};};proto.removeWidgetTheme=function(vHash,vTitle,vId){if(isInvalidString(vTitle)){throw new Error("Please define the title of the widget theme which should be removed.");};if(isInvalidString(vId)){var vId=vTitle.toLowerCase();};if(this.getDefaultWidgetTheme()==vId){throw new Error("Could not remove default theme "+this.getDefaultWidgetTheme()+"!");};if(this.getWidgetTheme()==vId){this.resetWidgetTheme();};delete this._widgetThemes[vId];};function QxImagePreloaderManager(){if(QxImagePreloaderManager._instance){return QxImagePreloaderManager._instance;};QxManager.call(this);QxImagePreloaderManager._instance=this;};QxImagePreloaderManager.extend(QxManager,"QxImagePreloaderManager");proto.add=function(oObject){this._objects[oObject.getUri()]=oObject;};proto.remove=function(oObject){delete this._objects[oObject.getUri()];};proto.has=function(oUri){return this._objects[String(oUri)]!=null;};proto.get=function(oUri){return this._objects[String(oUri)];};function QxImagePreloader(vSource){var m=new QxImagePreloaderManager();if(m.has(vSource)){return m.get(vSource);};QxTarget.call(this);this._h3=new Image();this._h3._QxImagePreloader=this;this._h3.onload=QxImagePreloader.__onload;this._h3.onerror=QxImagePreloader.__onerror;this._source=vSource;this._h3.src=vSource;if((new QxClient).isMshtml()){this._isPng = /\.png$/i.test(this._h3.nameProp);};m.add(this);};QxImagePreloader.extend(QxTarget,"QxImagePreloader");proto._source=null;proto._isLoaded=false;proto._isPng=false;proto.getUri=function(){return this._source;};proto.getSource=function(){return this._source;};if((new QxClient).isGecko()){proto.getWidth=function(){return this._h3.naturalWidth;};proto.getHeight=function(){return this._h3.naturalHeight;};proto.getIsLoaded=function(){return this._isLoaded=this._h3.complete;};}else if((new QxClient).isMshtml()){proto.getWidth=function(){return this._h3.width;};proto.getHeight=function(){return this._h3.height;};proto.getIsLoaded=function(){return this._h3.readyState=="complete";};proto.getIsPng=function(){return this._isPng;};}else {proto.getWidth=function(){return this._h3.width;};proto.getHeight=function(){return this._h3.height;};proto.getIsLoaded=function(){return this._isLoaded=this._h3.complete;};};QxImagePreloader.__onload=function(){this._QxImagePreloader._onload();};QxImagePreloader.__onerror=function(){this._QxImagePreloader._onerror();};proto._onload=function(){this._isLoaded=true;if(this.hasEventListeners("load")){this.dispatchEvent(new QxEvent("load"));};};proto._onerror=function(){this._isLoaded=false;if(this.hasEventListeners("error")){this.dispatchEvent(new QxEvent("error"));};};proto.dispose=function(){if(this.getDisposed()){return;};QxTarget.prototype.dispose.call(this);if(this._h3){this._h3.onload=this._h3.onerror=null;this._h3._QxImagePreloader=null;this._h3=null;};this._isLoaded=this._isPng=false;return true;};function QxImage(vSource,vWidth,vHeight){QxTerminator.call(this);this.setTagName("IMG");this.setCanSelect(false);this._manager=new QxImageManager;this._manager.add(this);this.setHtmlProperty("src",this._manager.getBlank());if(isValid(vWidth)){this.setWidth(vWidth);};if(isValid(vHeight)){this.setHeight(vHeight);};if(isValid(vSource)){this.setSource(vSource);};};QxImage.extend(QxTerminator,"QxImage");QxImage.addProperty({name:"source",type:String});QxImage.addProperty({name:"preloader",type:Object});QxImage.addProperty({name:"loaded",type:Boolean,defaultValue:false});proto._onload=function(){this.setLoaded(true);};proto._onerror=function(){this.setLoaded(false);if(this.hasEventListeners("error")){this.dispatchEvent(new QxEvent("error"),true);};throw new Error("Image path is not valid:"+this.getSource());};proto._modifySource=function(_b1,_b2,_b3,_b4){if(_b1||_b2){if(_b1){this.setPreloader(new QxImagePreloader((new QxImageManager).buildURI(_b1)),_b4);}else if(_b2){this.setPreloader(null,_b4);};};return true;};proto._modifyPreloader=function(_b1,_b2,_b3,_b4){if(_b2){_b2.removeEventListener("load",this._onload,this);_b2.removeEventListener("error",this._onerror,this);};if(_b1){this.setLoaded(false);if(_b1.getIsLoaded()){this.setLoaded(true,_b4);}else {_b1.addEventListener("load",this._onload,this);_b1.addEventListener("error",this._onerror,this);};};return true;};proto._modifyLoaded=function(_b1,_b2,_b3,_b4){if(_b1&&this.isCreated()){this._apply();}else {this._outerChanged("unload");};return true;};proto._modifyElement=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);if(_b1&&this.getLoaded()){this._apply();};return true;};if((new QxClient).isMshtml()){proto._modifyOpacity=function(){throw new Error("Mshtml did not support opacity on images!");};proto._postApply=function(vEnabled){var pl=this.getPreloader();if(pl.getIsPng()&&vEnabled){this.setHtmlProperty("src",this._manager.getBlank());this.setStyleProperty("filter","progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+pl.getSource()+"',sizingMethod='scale')");}else {this.setHtmlProperty("src",pl.getSource());vEnabled?this.removeStyleProperty("filter"):this.setStyleProperty("filter","Gray()Alpha(Opacity=50)");};};proto._apply=function(){var pl=this.getPreloader();if(this.getHeight()==null){this.setStyleProperty("pixelHeight",pl.getHeight());};if(this.getWidth()==null){this.setStyleProperty("pixelWidth",pl.getWidth());};this._postApply(this.getEnabled());this._invalidatePreferred();this._outerChanged("load");if(this.hasEventListeners("load")){this.dispatchEvent(new QxEvent("load"),true);};};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);this._postApply(_b1);return true;};}else {proto._apply=function(){this.setHtmlProperty("src",this.getPreloader().getSource());this._invalidatePreferred();this._outerChanged("load");if(this.hasEventListeners("load")){this.dispatchEvent(new QxEvent("load"),true);};};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){this.setOpacity(_b1?1:0.5,_b4);return QxWidget.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);};};proto.getPreferredWidth=function(){return this.getLoaded()?this.getPreloader().getWidth():0;};proto.getPreferredHeight=function(){return this.getLoaded()?this.getPreloader().getHeight():0;};proto.dispose=function(){if(this.getDisposed()){return true;};(new QxImageManager).remove(this);return QxWidget.prototype.dispose.call(this);};function QxDragEvent(vType,vMouseEvent,vAutoDispose){this._mouseEvent=vMouseEvent;this._manager=new QxDragAndDropManager;QxMouseEvent.call(this,vType,vMouseEvent?vMouseEvent._domEvent:null,vAutoDispose);};QxDragEvent.extend(QxMouseEvent,"QxDragEvent");proto.getManager=function(){return this._manager;};proto.getMouseEvent=function(){return this._mouseEvent;};proto.startDrag=function(){if(this._type!="dragstart"){throw new Error("QxDragEvent startDrag can only be called during the dragstart event");};this.stopPropagation();this._manager.startDrag();};proto.addData=function(sType,oData){this._manager.addData(sType,oData);};proto.getData=function(sType){return this._manager.getData(sType);};proto.clearData=function(){this._manager.clearData();};proto.getDropDataTypes=function(){return this._manager.getDropDataTypes();};proto.addAction=function(sAction){this._manager.addAction(sAction);};proto.removeAction=function(sAction){this._manager.removeAction(sAction);};proto.getAction=function(){return this._manager.getCurrentAction();};proto.clearActions=function(){this._manager.clearActions();};proto._evalTarget=function(){switch(this._type){case "dragstart":case "dragend":case "dragover":case "dragout":case "dragmove":return this._target;case "dragdrop":return this._manager.getDestinationWidget();default:return QxMouseEvent.prototype._evalTarget.call(this);};};proto._evalRelatedTarget=function(){switch(this._type){case "dragover":case "dragout":return this._relatedTarget;case "dragdrop":return this._manager.getSourceWidget();case "dragend":return this._manager.getDestinationWidget();default:return QxMouseEvent.prototype._evalRelatedTarget.call(this);};};proto.dispose=function(){if(this.getDisposed()){return;};QxMouseEvent.prototype.dispose.call(this);this._relatedTarget=null;this._target=null;};function QxDragAndDropManager(){if(QxDragAndDropManager._instance){return QxDragAndDropManager._instance;};QxTarget.call(this);this._k1={};this._k2={};this._k3={};var d=window.application.getClientWindow().getClientDocument();var a=["move","copy","alias","nodrop"];var c;for(var i=0;i<a.length;i++){c = this._k3[a[i]] = new QxImage("widgets/cursors/" + a[i] + ".gif");c.setTimerCreate(false);c.setStyleProperty("top","-1000px");c.setZIndex(10000);c.setParent(d);};QxDragAndDropManager._instance=this;};QxDragAndDropManager.extend(QxManager,"QxDragAndDropManager");QxDragAndDropManager.addProperty({name:"sourceWidget",type:Object});QxDragAndDropManager.addProperty({name:"destinationWidget",type:Object});QxDragAndDropManager.addProperty({name:"cursor",type:Object});QxDragAndDropManager.addProperty({name:"currentAction",type:String});proto._k5=null;proto._modifyDestinationWidget=function(_b1,_b2,_b3,_b4){if(_b1){_b1.dispatchEvent(new QxDragEvent("dragdrop",this._k5));this._k5=null;};return true;};proto.addData=function(vMimeType,vData){this._k1[vMimeType]=vData;};proto.getData=function(vMimeType){return this._k1[vMimeType];};proto.clearData=function(){this._k1={};};proto.getDropDataTypes=function(){var dw=this.getDestinationWidget();var st=[];if(!dw){return st;};var ddt=dw.getDropDataTypes();var ddtl=ddt.length;for(var i=0;i<ddtl;i++){if(ddt[i]in this._k1){st.push(ddt[i]);};};return st;};proto.startDrag=function(){if(!this._k6){throw new Error("Invalid usage of startDrag. Missing dragInfo!");};this._k6.dragHandlerActive=true;this.setSourceWidget(this._k6.sourceWidget);};proto._fireUserEvents=function(fromWidget,toWidget,e){if(fromWidget&&fromWidget!=toWidget){var outEvent=new QxDragEvent("dragout",e);outEvent._relatedTarget=toWidget;fromWidget.dispatchEvent(outEvent,true);outEvent=null;};if(toWidget){if(fromWidget!=toWidget){var overEvent=new QxDragEvent("dragover",e);overEvent._relatedTarget=fromWidget;toWidget.dispatchEvent(overEvent,true);overEvent=null;};var moveEvent=new QxDragEvent("dragmove",e);toWidget.dispatchEvent(moveEvent,true);moveEvent=null;};};proto.handleMouseEvent=function(e){switch(e.getType()){case "mousedown":return this._handleMouseDown(e);case "mouseup":return this._handleMouseUp(e);case "mousemove":return this._handleMouseMove(e);};};proto._handleMouseDown=function(e){if(e.getDefaultPrevented()){return;};this._k6={startScreenX:e.getScreenX(),startScreenY:e.getScreenY(),pageX:e.getPageX(),pageY:e.getPageY(),sourceWidget:e.getTarget(),dragHandlerActive:false,hasFiredDragStart:false };this._k6.sourceTopLevel=this._k6.sourceWidget.getTopLevelWidget();};proto._handleMouseMove=function(e){if(!this._k6){return;};if(this._k6.dragHandlerActive){this._k6.pageX=e.getPageX();this._k6.pageY=e.getPageY();var currentDropTarget=this.getDropTarget(e);this.setCurrentAction(currentDropTarget?this._evalNewAction(e.getShiftKey(),e.getCtrlKey(),e.getAltKey()):null);this._fireUserEvents(this._k6.currentDropWidget,currentDropTarget,e);this._k6.currentDropWidget=currentDropTarget;this._renderCursor();}else if(!this._k6.hasFiredDragStart){if(Math.abs(e.getScreenX()-this._k6.startScreenX)>5||Math.abs(e.getScreenY()-this._k6.startScreenY)>5){this._k6.sourceWidget.dispatchEvent(new QxDragEvent("dragstart",e));this._k6.hasFiredDragStart=true;if(this._k6.dragHandlerActive){this._fireUserEvents(this._k6.currentDropWidget,this._k6.sourceWidget,e);this._k6.currentDropWidget=this._k6.sourceWidget;var clientDocument=window.application.getClientWindow().getClientDocument();clientDocument.setCapture(true);clientDocument.addEventListener("losecapture",this.cancelDrag,this);};};};};proto._handleMouseUp=function(e){if(!this._k6){return;};if(this._k6.dragHandlerActive){this._endDrag(this.getDropTarget(e),e);}else {this._k6=null;};};proto.handleKeyEvent=function(e){if(!this._k6){return;};switch(e.getType()){case "keydown":this._handleKeyDown(e);return;case "keyup":this._handleKeyUp(e);return;};};proto._handleKeyDown=function(e){if(e.getKeyCode()==QxKeyEvent.keys.esc){this.cancelDrag();}else if(this.getCurrentAction()!=null){switch(e.getKeyCode()){case QxKeyEvent.keys.shift:case QxKeyEvent.keys.ctrl:case QxKeyEvent.keys.alt:this.setAction(this._evalNewAction(e.getShiftKey(),e.getCtrlKey(),e.getAltKey()));this._renderCursor();};};};proto._handleKeyUp=function(e){var bShiftPressed=e.getKeyCode()==QxKeyEvent.keys.shift;var bCtrlPressed=e.getKeyCode()==QxKeyEvent.keys.strl;var bAltPressed=e.getKeyCode()==QxKeyEvent.keys.alt;if(bShiftPressed||bCtrlPressed||bAltPressed){if(this.getCurrentAction()!=null){this.setAction(this._evalNewAction(!bShiftPressed&&e.getShiftKey(),! bCtrlPressed&&e.getCtrlKey(),!bAltPressed&&e.getAltKey()));this._renderCursor();};};e.preventDefault();};proto.cancelDrag=function(e){this._endDrag(null,e);};proto.globalCancelDrag=function(){if(this._k6&&this._k6.dragHandlerActive){this._endDragCore();};};proto._endDrag=function(currentDestinationWidget,e){if(currentDestinationWidget){this._k5=e;this.setDestinationWidget(currentDestinationWidget);};this.getSourceWidget().dispatchEvent(new QxDragEvent("dragend",e));this._fireUserEvents(this._k6&&this._k6.currentDropWidget,null,e);this._endDragCore();};proto._endDragCore=function(){this.setCursor(null);var d=window.application.getClientWindow().getClientDocument();d.removeEventListener("losecapture",this.cancelDrag,this);d.setCapture(false);if(this._k6){this._k6.currentDropWidget=null;this._k6=null;};this.clearData();this.clearActions();this.setSourceWidget(null);this.setDestinationWidget(null);};proto._renderCursor=function(){var newCursor;switch(this.getCurrentAction()){case "move":newCursor=this._k3.move;break;case "copy":newCursor=this._k3.copy;break;case "alias":newCursor=this._k3.alias;break;default:newCursor=this._k3.nodrop;};newCursor._d3Horizontal(this._k6.pageX+5);newCursor._d3Vertical(this._k6.pageY+15);this.setCursor(newCursor);};proto._modifyCursor=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setStyleProperty("display","none");};if(_b1){_b1.removeStyleProperty("display");};return true;};proto.supportsDrop=function(vWidget){var types=vWidget.getDropDataTypes();if(!types){return false;};for(var i=0;i<types.length;i++){if(types[i]in this._k1){return true;};};return false;};if((new QxClient).isGecko()){proto.getDropTarget=function(e){var currentWidget=e.getTarget();if(currentWidget==this._k6.sourceWidget){currentWidget=this._k6.sourceTopLevel.getWidgetFromPoint(e.getPageX(),e.getPageY());}else {currentWidget=QxEventManager.getActiveTargetObject(null,currentWidget);};while(currentWidget!=null){if(this.supportsDrop(currentWidget)){return currentWidget;};currentWidget=currentWidget.getParent();};return null;};}else {proto.getDropTarget=function(e){var currentWidget=e.getActiveTarget();while(currentWidget!=null){if(this.supportsDrop(currentWidget)){return currentWidget;};currentWidget=currentWidget.getParent();};return null;};};proto.addAction=function(vAction,vForce){this._k2[vAction]=true;if(vForce||this.getCurrentAction()==null){this.setCurrentAction(vAction);};};proto.clearActions=function(){this._k2={};this.setCurrentAction(null);};proto.removeAction=function(sAction){delete this._k2[sAction];if(this.getCurrentAction()==sAction){this.setCurrentAction(null);};};proto.setAction=function(s){if(s!=null&&!(s in this._k2)){this.addAction(s,true);}else {this.setCurrentAction(s);};};proto._evalNewAction=function(kShift,kCtrl,kAlt){if(kShift&&kCtrl&&this._k4("alias")){return "alias";}else if(kShift&&kAlt&&this._k4("copy")){return "copy";}else if(kShift&&this._k4("move")){return "move";}else if(kAlt&&this._k4("alias")){return "alias";}else if(kCtrl&&this._k4("copy")){return "copy";}else {for(var action in this._k2){return action;};};return null;};proto._k4=function(vAction){return vAction in this._k2;};proto.dispose=function(){if(this.getDisposed()){return;};this._k1=null;this._k2=null;this.setSourceWidget(null);this.setDestinationWidget(null);this._lastdestinationWidgetEvent=null;this._k6=null;if(QxDragAndDropManager._k3){if(QxDragAndDropManager._k3.move){QxDragAndDropManager._k3.move.dispose();QxDragAndDropManager._k3.move=null;};if(QxDragAndDropManager._k3.copy){QxDragAndDropManager._k3.copy.dispose();QxDragAndDropManager._k3.copy=null;};if(QxDragAndDropManager._k3.alias){QxDragAndDropManager._k3.alias.dispose();QxDragAndDropManager._k3.alias=null;};if(QxDragAndDropManager._k3.nodrop){QxDragAndDropManager._k3.nodrop.dispose();QxDragAndDropManager._k3.nodrop=null;};QxDragAndDropManager._k3=null;};QxManager.prototype.dispose.call(this);};function QxContainer(vHtml){QxTerminator.call(this);if(isValid(vHtml)){this.setHtml(vHtml);};};QxContainer.extend(QxTerminator,"QxContainer");QxContainer.addProperty({name:"html",type:String});proto._modifyElement=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);if(_b1){return this._applyHtml();}else if(_b2){_b2.innerHTML="";};return true;};proto._modifyHtml=function(_b1,_b2,_b3,_b4){return this._applyHtml();};proto._applyHtml=function(){if(!this.isCreated()){return true;};var vHtml=this.getHtml();if(isValid(vHtml)){this.getElement().innerHTML=vHtml;this._invalidatePreferred("load");this._outerChanged("load");}else {this.getElement().innerHTML="";this._invalidatePreferred("unload");this._outerChanged("unload");};return true;};function QxAtom(vText,vIcon,vIconWidth,vIconHeight){QxWidget.call(this);this.setCanSelect(false);this.setWidth("auto");this.setHeight("auto");if(isValid(vText)){this.setText(vText);};if(isValid(vIcon)){this.setIcon(vIcon);if(isValid(vIconWidth)){this.setIconWidth(vIconWidth);};if(isValid(vIconHeight)){this.setIconHeight(vIconHeight);};};};QxAtom.extend(QxWidget,"QxAtom");QxAtom.addProperty({name:"text",type:String});QxAtom.addProperty({name:"icon",type:String});QxAtom.addProperty({name:"show",type:String,defaultValue:"both"});QxAtom.addProperty({name:"iconPosition",type:String,defaultValue:"left"});QxAtom.addProperty({name:"iconTextGap",type:Number,defaultValue:4});QxAtom.addProperty({name:"iconWidth",type:Number});QxAtom.addProperty({name:"iconHeight",type:Number});QxAtom.addProperty({name:"horizontalBlockAlign",type:String,defaultValue:"left"});QxAtom.addProperty({name:"verticalBlockAlign",type:String,defaultValue:"middle"});proto._c6=true;proto._c5=true;proto._c2=false;proto._c1=false;proto._f2=null;proto._f1=null;proto._modifyIcon=function(_b1,_b2,_b3,_b4){this._pureUpdateDisplayState();var o=this._f1;if(this._c1){if(o){o.setSource(_b1);o.setParent(this);}else if(this._wasVisible){this._e3Icon();};}else if(o){o.setParent(null);o.setSource(_b1);};return true;};proto._modifyText=function(_b1,_b2,_b3,_b4){this._pureUpdateDisplayState();var o=this._f2;if(this._c2){if(o){o.setHtml(_b1);o.setParent(this);}else if(this._wasVisible){this._e3Text();};}else if(o){o.setParent(null);o.setHtml(_b1);};return true;};proto._modifyShow=function(_b1,_b2,_b3,_b4){this._pureUpdateDisplayState();if(this._wasVisible){if(this._f2){this._f2.setParent(this._c2?this:null);};if(this._f1){this._f1.setParent(this._c1?this:null);};if(this._f2&&this._f1){if(this.getWidth()!="auto"){this._d1("show");};if(this.getHeight()!="auto"){this._d2("show");};};if(!this._f2&&this._c2){this._e3Text();};if(!this._f1&&this._c1){this._e3Icon();};};return true;};proto._modifyElement=function(_b1,_b2,_b3,_b4){if(_b1){this._addCssClassName("QxAtomBase");if(this._c1&&!this._f1){this._e3Icon();};if(this._c2&&!this._f2){this._e3Text();};};return QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){if(this._f1){this._f1.setEnabled(_b1);};if(this._f2){this._f2.setEnabled(_b1);};return QxWidget.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);};proto._modifyIconPosition=function(_b1,_b2,_b3,_b4){if(!this._wasVisible){return true;};if(1==1||this._c2&&this._c1){switch(_b1){case "left":if(_b2=="right"){return this._d1("icon-position");};break;case "right":if(_b2=="left"){return this._d1("icon-position");};break;case "top":if(_b2=="bottom"){return this._d2("icon-position");};break;case "bottom":if(_b2=="top"){return this._d2("icon-position");};break;};if(this.getWidth()=="auto"){this._setChildrenDependWidth(this,"icon-position");}else {this._d1("icon-position");};if(this.getHeight()=="auto"){this._setChildrenDependHeight(this,"icon-position");}else {this._d2("icon-position");};};return true;};proto._modifyIconTextGap=function(_b1,_b2,_b3,_b4){if(!this._wasVisible){return true;};if(this._c2&&this._c1){switch(this.getIconPosition()){case "left":case "right":return this.getWidth()=="auto"?this._setChildrenDependWidth(this,"icon-text-gap"):this._d1("icon-text-gap");case "top":case "bottom":return this.getHeight()=="auto"?this._setChildrenDependHeight(this,"icon-text-gap"):this._d2("icon-text-gap");};};return true;};proto._modifyHorizontalBlockAlign=function(_b1,_b2,_b3,_b4){if(!this._wasVisible||this.getWidth()=="auto"){return true;};return this._d1("align");};proto._modifyVerticalBlockAlign=function(_b1,_b2,_b3,_b4){if(!this._wasVisible||this.getHeight()=="auto"){return true;};return this._d2("align");};proto._e3Text=function(){var t=this._f2=new QxContainer(this.getText());t.setAnonymous(true);t.setEnabled(this.isEnabled());t.setTimerCreate(false);t.setParent(this);};proto._e3Icon=function(){var i=this._f1=new QxImage(this.getIcon(),this.getIconWidth(),this.getIconHeight());i.setAnonymous(true);i.setEnabled(this.isEnabled());i.setTimerCreate(false);i.setParent(this);};proto._pureUpdateDisplayState=function(){switch(this.getShow()){case "both":this._c6=this._c5=true;this._c1=this._hasIcon();this._c2=this._hasText();break;case "none":this._c6=this._c5=this._c1=this._c2=false;break;case "icon":this._c5=true;this._c1=this._hasIcon();this._c6=this._c2=false;break;case "text":this._c6=true;this._c2=this._hasText();this._c5=this._c1=false;break;default:throw new Error("Invalid value for show property:"+this.getShow());};};proto._hasText=function(){return isValid(this.getText());};proto._hasIcon=function(){return isValid(this.getIcon());};proto._setChildrenDependWidth=function(_e4,_e5){if(this._c1&&_e4==this._f1&&_e5=="unload"){return true;};var newWidth=this._d5Width(_e4,_e5);if(this._widthMode=="inner"&&this._widthModeValue==newWidth){if((_e5=="load"||_e5=="append-child")&&(_e4==this._f2||_e4==this._f1)){return this._d1(_e5);};}else {this.setInnerWidth(newWidth,null,true);};return true;};proto._setChildrenDependHeight=function(_e4,_e5){if(this._c1&&_e4==this._f1&&_e5=="unload"){return true;};var newHeight=this._d5Height(_e4,_e5);if(this._heightMode=="inner"&&this._heightModeValue==newHeight){if((_e5=="load"||_e5=="append-child")&&(_e4==this._f2||_e4==this._f1)){return this._d2(_e5);};}else {this.setInnerHeight(newHeight,null,true);};return true;};proto._d5Width=function(){return this._d5Helper("Width","left","right");};proto._d5Height=function(){return this._d5Helper("Height","top","bottom");};proto._d5Helper=function(vNameRangeUp,vNameStart,vNameStop){if(this._c2&&this._f2&&this._f2.getParent()!=this){return null;};if(this._c1&&this._f1&&this._f1.getParent()!=this){return null;};if(this._c1&&(!this._f1||(!this._f1.getLoaded()&&isInvalid(this._f1["get"+vNameRangeUp]())))){return null;};if(this._c2&&this._c1){switch(this.getIconPosition()){case vNameStart:case vNameStop:return this._f2["getAny"+vNameRangeUp]()+this.getIconTextGap()+this._f1["getAny"+vNameRangeUp]();default:return Math.max(Math.max(this._f2["getAny"+vNameRangeUp](),this._f1["getAny"+vNameRangeUp]()),0);};}else if(this._c2){return this._f2["getAny"+vNameRangeUp]();}else if(this._c1){return this._f1["getAny"+vNameRangeUp]();}else {return 0;};};proto._innerWidthChanged=function(){this._d4Width();this._d1("inner-width");var ch=this._a2;var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];if(chc!=this._f2&&chc!=this._f1){chc._renderHorizontal("parent");};};};proto._innerHeightChanged=function(){this._d4Height();this._d2("inner-height");var ch=this._a2;var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];if(chc!=this._f2&&chc!=this._f1){chc._renderVertical("parent");};};};proto._childOuterWidthChanged=function(vModifiedChild,_e5){if(!this._wasVisible){return;};switch(_e5){case "position-and-size":case "position":case "size":break;default:if(this.getWidth()=="auto"){return this._setChildrenDependWidth(vModifiedChild,_e5);}else {this._d1(_e5);};};QxWidget.prototype._childOuterWidthChanged.call(this,vModifiedChild,_e5);};proto._childOuterHeightChanged=function(vModifiedChild,_e5){if(!this._wasVisible){return;};switch(_e5){case "position-and-size":case "position":case "size":break;default:if(this.getHeight()=="auto"){return this._setChildrenDependHeight(vModifiedChild,_e5);}else {this._d2(_e5);};};QxWidget.prototype._childOuterHeightChanged.call(this,vModifiedChild,_e5);};proto._d1=function(_e5){return this._layoutInternalWidgetsHelper(_e5,"Width","Horizontal","left","right","Left");};proto._d2=function(_e5){return this._layoutInternalWidgetsHelper(_e5,"Height","Vertical","top","bottom","Top");};proto._layoutInternalWidgetsHelper=function(_e5,vNameRangeUp,vDirection,vNameStart,vNameStop,vPaddingStartUp){try{var vTextPos=0;var vIconPos=0;var vBoxSize;if(this._c2&&this._c1){if(!this._f2||!this._f1){return;};var vTextSize=this._f2["getAny"+vNameRangeUp]();var vIconSize=this._f1["getAny"+vNameRangeUp]();switch(this.getIconPosition()){case vNameStart:vTextPos=vIconSize+this.getIconTextGap();vBoxSize=vTextPos+vTextSize;break;case vNameStop:vIconPos=vTextSize+this.getIconTextGap();vBoxSize=vIconPos+vIconSize;break;default:if(vTextSize>vIconSize){vIconPos=(vTextSize-vIconSize)/2;}else {vTextPos=(vIconSize-vTextSize)/2;};vBoxSize=Math.max(vTextSize,vIconSize);};}else if(this._c2){vBoxSize=this._f2["getAny"+vNameRangeUp]();}else if(this._c1){vBoxSize=this._f1["getAny"+vNameRangeUp]();}else {return;};var vBoxPos=this["getComputedPadding"+vPaddingStartUp]();switch(this["get"+vDirection+"BlockAlign"]()){case "center":case "middle":vBoxPos+=(this["getInner"+vNameRangeUp]()-vBoxSize)/2;break;case "right":case "bottom":vBoxPos+=this["getInner"+vNameRangeUp]()-vBoxSize;break;};vIconPos+=vBoxPos;vTextPos+=vBoxPos;if(this._f1){this._f1["_d3"+vDirection](vIconPos);};if(this._f2){this._f2["_d3"+vDirection](vTextPos);};}catch(ex){throw new Error("Failed to internal render widgets:"+ex);};return true;};proto._onnewchild=function(otherObject){this.getWidth()=="auto"?this._setChildrenDependWidth(otherObject,"append-child"):this._d1("append-child");this.getHeight()=="auto"?this._setChildrenDependHeight(otherObject,"append-child"):this._d2("append-child");};proto._onremovechild=function(otherObject){this.getWidth()=="auto"?this._setChildrenDependWidth(otherObject,"remove-child"):this._d1("remove-child");this.getHeight()=="auto"?this._setChildrenDependHeight(otherObject,"remove-child"):this._d2("remove-child");};proto._cloneRecursive=function(cloneInstance){var ch=this.getChildren();var chl=ch.length;var chc;var cloneChild;for(var i=0;i<chl;i++){chc=ch[i];if(chc!=this._f1&&chc!=this._f2){cloneChild=chc.clone(true);cloneInstance.add(cloneChild);};};};proto.getPreferredWidth=function(){if(this.getWidth()=="auto"){if(!this._wasVisible){this._renderHorizontal("initial");};return this._pixelof_width;};if(this._preferred_width==null&&this.getChildrenLength()>0){this._preferred_width=this._d5Width()+this.getComputedPaddingLeft()+this.getComputedPaddingRight()+this.getComputedInsetLeft()+this.getComputedInsetRight();};return this._preferred_width;};proto.getPreferredHeight=function(){if(this.getHeight()=="auto"){if(!this._wasVisible){this._renderVertical("initial");};return this._pixelof_height;};if(this._preferred_height==null&&this.getChildrenLength()>0){this._preferred_height=this._d5Height()+this.getComputedPaddingTop()+this.getComputedPaddingBottom()+this.getComputedInsetTop()+this.getComputedInsetBottom();};return this._preferred_height;};proto.dispose=function(){if(this.getDisposed()){return true;};if(this._f1){this._f1.dispose();this._f1=null;};if(this._f2){this._f2.dispose();this._f2=null;};this._c6=this._c5=this._c2=this._c1=null;return QxWidget.prototype.dispose.call(this);};function QxButton(vText,vIcon){QxAtom.call(this,vText,vIcon);this.setCanSelect(false);this.setTabIndex(1);this.setBorder(QxBorder.presets.outset);this.addEventListener("mouseover",this._onmouseover,this);this.addEventListener("mouseout",this._onmouseout,this);this.addEventListener("mousedown",this._g1,this);this.addEventListener("mouseup",this._g2,this);this.addEventListener("keydown",this._g4,this);this.addEventListener("click",this._g3,this);};QxButton.extend(QxAtom,"QxButton");proto._onmouseover=function(e){if(e.getActiveTarget()!=this){return;};this.setState(this._pressed?"pressed":"hover");e.stopPropagation();};proto._onmouseout=function(e){if(e.getActiveTarget()!=this){return;};this.setState(null);e.stopPropagation();};proto._g1=function(e){this._pressed=true;this.setCapture(true);this.setState("pressed");};proto._g2=function(e){delete this._pressed;this.setCapture(false);this.setState(null);e.stopPropagation();};proto._g4=function(e){if(e.getKeyCode()==QxKeyEvent.keys.enter){this.execute();};};proto._g3=function(e){this.execute();};proto._modifyState=function(_b1,_b2,_b3,_b4){switch(_b1){case "pressed":this.setBorder(QxBorder.presets.inset);break;case "hover":break;default:this.setBorder(QxBorder.presets.outset);};return QxAtom.prototype._modifyState.call(this,_b1,_b2,_b3,_b4);};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("mouseover",this._onmouseover,this);this.removeEventListener("mouseout",this._onmouseout,this);this.removeEventListener("mousedown",this._g1,this);this.removeEventListener("mouseup",this._g2,this);return QxAtom.prototype.dispose.call(this);};function QxRadioButtonManager(vName,vMembers){QxTarget.call(this);this._items=[];this._managerId=this.classname+(++QxRadioButtonManager._managerCount);if(isValid(vName)){this.setName(vName);};if(isValid(vMembers)){QxRadioButtonManager.prototype.add.apply(this,vMembers);};};QxRadioButtonManager._managerCount=0;QxRadioButtonManager.extend(QxManager,"QxRadioButtonManager");QxRadioButtonManager.addProperty({name:"selected",type:Object});QxRadioButtonManager.addProperty({name:"name",type:String});proto.getItems=function(){return this._items;};proto.add=function(){var a=arguments;var l=a.length;var lastOne=a[l-1];if(lastOne instanceof QxWidget){var _b4;}else {var _b4=lastOne;l--;};var oRadioButton;for(var i=0;i<l;i++){oRadioButton=a[i];if(this._items.contains(oRadioButton)){return;};this._items.push(oRadioButton);oRadioButton.setGroup(this,_b4);if(oRadioButton.getChecked()){this.setSelected(oRadioButton,_b4);};oRadioButton.setEnabled(this.getEnabled(),_b4);oRadioButton.setName(this.getName(),_b4);};};proto.remove=function(oRadioButton,_b4){this._items.remove(oRadioButton);oRadioButton.setGroup(null,_b4);if(oRadioButton.getChecked()){this.setSelected(null);};};proto._modifySelected=function(_b1,_b2,_b3,_b4){if(_b2&&_b2.getChecked()){_b2.setChecked(false,_b4);};if(_b1&&!_b1.getChecked()){_b1.setChecked(true,_b4);};return true;};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){for(var i=0;i<this._items.length;i++){this._items[i].setEnabled(_b1,_b4);};return true;};proto._modifyName=function(_b1,_b2,_b3,_b4){for(var i=0;i<this._items.length;i++){this._items[i].setName(_b1,_b4);};return true;};proto.selectNext=function(oRadioButton){var index=this._items.indexOf(oRadioButton);if(index==-1)return;var i=0;var l=this._items.length;index=(index+1)% l;while(i<l&&! this._items[index].getEnabled()){index=(index+1)% l;i++;};this._selectByIndex(index);};proto.selectPrevious=function(oRadioButton){var index=this._items.indexOf(oRadioButton);if(index==-1)return;var i=0;var l=this._items.length;index=(index-1+l)% l;while(i<l&&! this._items[index].getEnabled()){index=(index-1+l)% l;i++;};this._selectByIndex(index);};proto._selectByIndex=function(index){if(this._items[index].getEnabled()){this.setSelected(this._items[index]);this._items[index].setFocused(true);};};proto.dispose=function(){if(this._disposed){return;};if(this._items){for(var i;i<this._items.length;i++){this._items[i].dispose();delete this._items[i];};};delete this._items;delete this._managerId;return QxTarget.prototype.dispose.call(this);};function QxInputCheckIcon(){QxWidget.call(this);this.setTagName("INPUT");this.setCanSelect(false);this.setTabIndex(-1);};QxInputCheckIcon.extend(QxWidget,"QxInputCheckIcon");QxInputCheckIcon.addProperty({name:"name",type:String,impl:"apply"});QxInputCheckIcon.addProperty({name:"value",impl:"apply"});QxInputCheckIcon.addProperty({name:"type",impl:"apply"});QxInputCheckIcon.addProperty({name:"checked",type:Boolean,defaultValue:false,impl:"apply",getAlias:"isChecked"});proto._modifyApply=function(_b1,_b2,_b3,_b4){return this.setHtmlProperty(_b3,_b1);};proto.isLoaded=proto.getLoaded=function(){return true;};proto.getPreferredWidth=function(){return 13;};proto.getPreferredHeight=function(){return 13;};function QxCheckBox(vText,vValue,vName,vChecked){QxAtom.call(this,vText);this.setTabIndex(1);if(isValid(vValue)){this.setValue(vValue);};if(isValid(vName)){this.setName(vName);};if(isValid(vChecked)){this.setChecked(vChecked);};this.addEventListener("click",this._g3);this.addEventListener("keydown",this._g4);this.addEventListener("keyup",this._g5);};QxCheckBox.extend(QxAtom,"QxCheckBox");QxCheckBox.removeProperty({name:"icon"});QxCheckBox.addProperty({name:"name",type:String});QxCheckBox.addProperty({name:"value",type:String});QxCheckBox.addProperty({name:"checked",type:Boolean,defaultValue:false,getAlias:"isChecked"});proto._c1=true;proto._modifyIcon=null;proto._hasIcon=function(){return true;};proto._e3Icon=function(){var i=this._f1=new QxInputCheckIcon();i.setType("checkbox");i.setChecked(this.isChecked());i.setEnabled(this.isEnabled());i.setAnonymous(true);i.setParent(this);};proto._modifyChecked=function(_b1,_b2,_b3,_b4){if(this._f1){this._f1.setChecked(_b1);};return true;};if((new QxClient).isMshtml()){proto._modifyVisible=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyVisible.call(this,_b1,_b2,_b3,_b4);if(this._f1&&_b1){this._f1.getElement().checked=this.getChecked();};return true;};};proto._g3=function(e){var t=e.getDomTarget();this.setChecked(t.tagName=="input"?t.checked:!this.isChecked());};proto._g4=function(e){if(e.getKeyCode()==QxKeyEvent.keys.enter&&!e.getAltKey()){this.setChecked(this._f1?!this._f1.isChecked():!this.isChecked());};};proto._g5=function(e){if(e.getKeyCode()==QxKeyEvent.keys.space){this.setChecked(this._f1?!this._f1.isChecked():!this.isChecked());};};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("click",this._g3);this.removeEventListener("keydown",this._g4);this.removeEventListener("keyup",this._g5);return QxAtom.prototype.dispose.call(this);};function QxRadioButton(vText,vValue,vName,vChecked,vGroup){QxCheckBox.call(this,vText,vValue,vName,vChecked);if(isValid(vGroup)){this.setGroup(vGroup);};};QxRadioButton.extend(QxCheckBox,"QxRadioButton");QxRadioButton.addProperty({name:"group"});proto._e3Icon=function(){var i=this._f1=new QxInputCheckIcon();i.setType("radio");i.setChecked(this.isChecked());i.setEnabled(this.isEnabled());i.setAnonymous(true);i.setParent(this);};proto._modifyChecked=function(_b1,_b2,_b3,_b4){if(this._f1){this._f1.setChecked(_b1,_b4);};if(this.getGroup()){this.getGroup().setSelected(this,_b4);};return true;};proto._modifyGroup=function(_b1,_b2,_b3,_b4){if(_b2){_b2.remove(this,_b4);};if(_b1){_b1.add(this,_b4);};return true;};proto._modifyName=function(_b1,_b2,_b3,_b4){if(this.isCreated()&&this._f1){this._f1.setName(_b1,_b4);};if(this.getGroup()){this.getGroup().setName(_b1,_b4);};return true;};proto._modifyValue=function(_b1,_b2,_b3,_b4){if(this.isCreated()&&this._f1){this._f1.setValue(_b1,_b4);};return true;};proto._g4=function(e){switch(e.getKeyCode()){case QxKeyEvent.keys.enter:if(!e.getAltKey()){this.setChecked(this._f1?!this._f1.isChecked():!this.isChecked());};break;case QxKeyEvent.keys.left:case QxKeyEvent.keys.up:return this.getGroup()?this.getGroup().selectPrevious(this):true;case QxKeyEvent.keys.right:case QxKeyEvent.keys.down:return this.getGroup()?this.getGroup().selectNext(this):true;};};proto._g3=function(e){this.setChecked(true);};proto.dispose=function(){if(this.getDisposed()){return;};return QxCheckBox.prototype.dispose.call(this);};function QxPopupManager(){if(QxPopupManager._instance){return QxPopupManager._instance;};QxManager.call(this);QxPopupManager._instance=this;};QxPopupManager.extend(QxManager,"QxPopupManager");proto.update=function(oTarget){var p;for(var vHash in this._objects){p=this._objects[vHash];if(!p.getAutoHide()){continue;};if(!oTarget||p!=oTarget&&(!p.contains(oTarget)||p.getVisible())&&new Date-p.getShowTimeStamp()>100){p.setVisible(false);};};};function QxPopup(vText,vIcon){QxAtom.call(this,vText,vIcon);this.setZIndex(this._minZindex);};QxPopup.extend(QxAtom,"QxPopup");QxPopup.addProperty({name:"autoHide",type:Boolean,defaultValue:true});proto._minZindex=1e6;proto._showTimeStamp=new Date(0);proto._hideTimeStamp=new Date(0);proto._popupManager=new QxPopupManager();proto._beforeShow=function(_b4){QxAtom.prototype._beforeShow.call(this,_b4);this._popupManager.add(this);this._popupManager.update(this);this._showTimeStamp=new Date;this.bringToFront();};proto._beforeHide=function(_b4){QxAtom.prototype._beforeHide.call(this,_b4);this.sendToBack();this._popupManager.remove(this);this._hideTimeStamp=new Date;};proto._makeActive=function(){(new QxApplication).setActiveWidget(this);};proto._makeInactive=function(){var vApp=new QxApplication;if(vApp.getActiveWidget()==this){vApp.setActiveWidget(vApp.getClientWindow().getClientDocument());};};proto._shouldBecomeCreated=function(){return false;};proto.getCanFocus=function(){return false;};if((new QxClient).isMshtml()){proto.sendToBack=function(){if(!this.isCreated()||!this.getParent()){return;};var min=Infinity;var d=this.getTopLevelWidget().getDocumentElement();var cs=d.body.children;var zi;for(var i=0;i<cs.length;i++){if(cs[i].nodeType==1){zi=cs[i].currentStyle.zIndex;if(zi>this._minZindex){min=Math.min(min,zi);};};};this.setZIndex(min-1);};proto.bringToFront=function(){if(!this.isCreated()||!this.getParent()){return;};var max=-Infinity;var d=this.getTopLevelWidget().getDocumentElement();var cs=d.body.children;for(var i=0;i<cs.length;i++){if(cs[i].nodeType==1){max=Math.max(max,cs[i].currentStyle.zIndex);};};this.setZIndex(max+1);};}else {proto.sendToBack=function(){if(!this.isCreated()||!this.getParent()){return;};var min=Infinity;var d=this.getTopLevelWidget().getDocumentElement();var cs=d.body.childNodes;var view=d.defaultView;var zi;for(var i=0;i<cs.length;i++){if(cs[i].nodeType==1){zi=cs[i].style.zIndex;if(zi==""||isNaN(zi)){zi=view.getComputedStyle(cs[i],"").zIndex;if(zi==""||isNaN(zi)){zi=0;};};if(zi>this._minZindex){min=Math.min(min,zi);};};};this.setZIndex(min-1);};proto.bringToFront=function(){if(!this.isCreated()||!this.getParent()){return;};var max=-Infinity;var d=this.getTopLevelWidget().getDocumentElement();var cs=d.body.childNodes;var view=d.defaultView;var zi;for(var i=0;i<cs.length;i++){if(cs[i].nodeType==1){zi=cs[i].style.zIndex;if(zi==""||isNaN(zi)){zi=view.getComputedStyle(cs[i],"").zIndex;if(zi==""||isNaN(zi)){zi=0;};};max=Math.max(max,zi);};};this.setZIndex(max+1);};};proto.getShowTimeStamp=function(){return this._showTimeStamp;};proto.getHideTimeStamp=function(){return this._hideTimeStamp;};proto.dispose=function(){if(this.getDisposed()){return;};if(this._popupManager){this._popupManager.remove(this);this._popupManager=null;};return QxAtom.prototype.dispose.call(this);};function QxToolTipManager(){if(QxToolTipManager._instance)return QxToolTipManager._instance;QxManager.call(this);QxToolTipManager._instance=this;};QxToolTipManager.extend(QxManager,"QxToolTipManager");QxToolTipManager.addProperty({name:"currentToolTip"});proto._modifyCurrentToolTip=function(_b1,_b2,_b3,_b4){if(_b2&&_b2.contains(_b1)){return;};if(_b2){_b2.setVisible(false);_b2._stopShowTimer();_b2._stopHideTimer();};if(_b1){_b1._startShowTimer();};return true;};proto.handleMouseOver=function(e){var to=e.getTarget();var c=to;var tt;if(!(c instanceof QxWidget)&&c.nodeType==1){c=QxEventManager.getTargetObject(c);};while(c!=null&&!(tt=c.getToolTip())){c=c.getParent();};if(tt!=null){tt.setBoundToWidget(c);};this.setCurrentToolTip(tt);};proto.handleMouseOut=function(e){var to=e.getRelatedTarget();var from=e.getTarget();var cur=this.getCurrentToolTip();if(cur&&(to==cur||cur.contains(to))){return;};if(to&&from.contains(to)){return;};if(cur&&!to){this.setCurrentToolTip(null);};};proto.handleFocus=function(e){var c=e.getTarget();var tt=c.getToolTip();if(tt!=null){tt.setBoundToWidget(c);this.setCurrentToolTip(tt);};};proto.handleBlur=function(e){var c=e.getTarget();if(!c){return;};var tt=c.getToolTip();var cur=this.getCurrentToolTip();if(cur&&cur==tt){this.setCurrentToolTip(null);};};function QxToolTip(text,icon){QxPopup.call(this,text,icon);this._showTimer=new QxTimer(this.getShowInterval());this._showTimer.addEventListener("interval",this._onshowtimer,this);this._hideTimer=new QxTimer(this.getHideInterval());this._hideTimer.addEventListener("interval",this._onhidetimer,this);this.addEventListener("mouseover",this._onmouseover);this.addEventListener("mouseout",this._onmouseover);};QxToolTip.extend(QxPopup,"QxToolTip");QxToolTip.addProperty({name:"hideOnHover",type:Boolean,defaultValue:true});QxToolTip.addProperty({name:"mousePointerOffsetLeft",type:Number,defaultValue:4});QxToolTip.addProperty({name:"mousePointerOffsetTop",type:Number,defaultValue:22});QxToolTip.addProperty({name:"mousePointerOffsetRight",type:Number,defaultValue:0});QxToolTip.addProperty({name:"mousePointerOffsetBottom",type:Number,defaultValue:-2});QxToolTip.addProperty({name:"showInterval",type:Number,defaultValue:1000});QxToolTip.addProperty({name:"hideInterval",type:Number,defaultValue:4000});QxToolTip.addProperty({name:"axisToleranceX",type:Number,defaultValue:0.7});QxToolTip.addProperty({name:"axisToleranceY",type:Number,defaultValue:0.7});QxToolTip.addProperty({name:"boundToWidget"});proto._toolTipManager=new QxToolTipManager();proto._minZindex=1e7;proto._modifyHideInterval=function(_b1,_b2,_b3,_b4){this._hideTimer.setInterval(nHideInterval);return true;};proto._modifyShowInterval=function(_b1,_b2,_b3,_b4){this._showTimer.setInterval(nShowInterval);return true;};proto._modifyBoundToWidget=function(_b1,_b2,_b3,_b4){if(_b1){this.setParent(_b1.getTopLevelWidget());}else if(_b2){this.setParent(null);};return true;};proto._startShowTimer=function(){if(!this._showTimer.getEnabled()){this._showTimer.start();};};proto._startHideTimer=function(){if(!this._hideTimer.getEnabled()){this._hideTimer.start();};};proto._stopShowTimer=function(){if(this._showTimer.getEnabled()){this._showTimer.stop();};};proto._stopHideTimer=function(){if(this._hideTimer.getEnabled()){this._hideTimer.stop();};};proto._modifyVisible=function(_b1,_b2,_b3,_b4){if(_b1){this._stopShowTimer();this._startHideTimer();}else {this._stopHideTimer();};return QxPopup.prototype._modifyVisible.call(this,_b1,_b2,_b3,_b4);};proto._onmouseover=function(e){if(this.getHideOnHover()){this.setVisible(false);};};proto._onshowtimer=function(e){var ex=QxMouseEvent.getPageX();var ey=QxMouseEvent.getPageY();if(ex<(QxDOM.getWindowInnerWidth()*this.getAxisToleranceX())){this.setRight(null);this.setLeft(ex+this.getMousePointerOffsetLeft());}else {this.setLeft(null);this.setRight(QxDOM.getWindowInnerWidth()-ex-this.getMousePointerOffsetRight());};if(ey<(QxDOM.getWindowInnerHeight()*this.getAxisToleranceY())){this.setBottom(null);this.setTop(ey+this.getMousePointerOffsetTop());}else {this.setTop(null);this.setBottom(QxDOM.getWindowInnerHeight()-ey-this.getMousePointerOffsetBottom());};this.setVisible(true);return true;};proto._onhidetimer=function(e){return this.setVisible(false);};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("mouseover",this._onmouseover);this.removeEventListener("mouseout",this._onmouseover);if(this._showTimer){this._showTimer.removeEventListener("interval",this._onshowtimer,this);this._showTimer.dispose();this._showTimer=null;};if(this._hideTimer){this._hideTimer.removeEventListener("interval",this._onhidetimer,this);this._hideTimer.dispose();this._hideTimer=null;};return QxPopup.prototype.dispose.call(this);};function QxForm(){QxWidget.call(this);this.setTagName("FORM");};QxForm.extend(QxWidget,"QxForm");function QxListView(columns){QxWidget.call(this);this._columns=typeof columns=="object"&&columns!=null?columns:[];this._columnsLength=this._columns.length-1;this._k1=[];this._selection={};this._selectionLength=0;this._selectionMode="none";this._fragment=QxListView._useFragment?document.createDocumentFragment():document.createElement("div");this._rowCreateQueue=[];this._rowCreateTimer=new QxTimer(10);this._rowCreateTimer.addEventListener("interval",this._onrowcreate,this);this._rowCreateTimer.start();this._rowAppendQueue=[];this._rowAppendTimer=new QxTimer(100);this._rowAppendTimer.addEventListener("interval",this._onrowappend,this);this._rowAppendTimer.start();this._scrollSmoothTimer=new QxTimer(1);this._scrollSmoothTimer.addEventListener("interval",this._onscrollsmooth,this);if((new QxClient).isOpera()){this._scrollEmuTimer=new QxTimer(100);this._scrollEmuTimer.addEventListener("interval",this._onscrollemu,this);this._scrollEmuTimer.start();};this._nodeRowCache=[];this._nodeHeaderColsCache=[];this._nodeContentColsCache=[];this._nodeHeaderCellCache=[];this._nodeContentFirstRowCellCache=[];this._nodeHeaderInnerTableCache=[];this._nodeHeaderInnerTextCellCache=[];this._nodeHeaderInnerTextBoxCache=[];this._nodeHeaderInnerSortCellCache=[];this._nodeHeaderInnerSortIconCache=[];this.addEventListener("click",this._g3);this.addEventListener("mousewheel",this._onmousewheel);};QxListView.extend(QxWidget,"QxListView");QxListView._useFragment=Boolean(document.createDocumentFragment);proto._initialRowCount=100;proto._perLoopRowCreateCount=5;proto._perLoopRowAppendCount=100;proto._modifyElement=function(_b1,_b2,_b3,_b4){this._contentProtoRow=QxListView._contentProtoRow.cloneNode(true);QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);this._header=QxListView._headerProtoFrame.cloneNode(true);this._headerTable=this._header.firstChild;this._headerColGroup=this._headerTable.firstChild;this._headerBody=this._headerTable.lastChild;this._headerRow=this._headerBody.firstChild;this._headerStyle=this._header.style;this._headerTableStyle=this._headerTable.style;_b1.appendChild(this._header);this._content=QxListView._contentProtoFrame.cloneNode(true);this._contentTable=this._content.firstChild;this._contentColGroup=this._contentTable.firstChild;this._contentBody=this._contentTable.lastChild;var o=this;this._content.onscroll=function(){o._onscroll();};_b1.appendChild(this._content);this._cacheAdditionalColumnData();try{var d=this._columns;var l=d.length;for(var i=0;i<l;i++){this._addColumn(d[i]);};}catch(ex){throw new Error("Failed to apply columns:"+ex);};var q=this._rowCreateQueue;var l=Math.min(this._initialRowCount-1,q.length);for(var i=0;i<l;i++){this._contentBody.appendChild(this._createRow(q.shift()));};this._renderTableLayoutInitial();return true;};proto._cacheAdditionalColumnData=function(){var d=this._columns;var l=d.length;var c;for(var i=0;i<l;i++){c=d[i];c.contentType=typeof c.content;c.contentLength=c.content.length-1;c.hasStaticWidth=typeof c.width=="number";c.hasDynamicWidth=!c.hasStaticWidth;c.hasScaleWidth=c.width=="scale";c.hasScaleFactor=typeof c.scaleFactor=="number";c.hasMaxWidthLimit=typeof c.maxWidth=="number";c.hasMinWidthLimit=typeof c.minWidth=="number";if(c.hasStaticWidth&&c.hasScalingWidth){throw new Error("Malformed column dimensions![1:static scaling conflict]");};if(c.hasMinWidthLimit&&c.hasMaxWidthLimit&&c.maxWidth<=c.minWidth){throw new Error("Malformed column dimensions![2:min max conflict]");};if(c.hasScalingFactor&&!c.hasScalingWidth){throw new Error("Malformed column dimensions![3:scaling conflict]");};};};proto._onrowcreate=function(){if(!this.isCreated()){return;};var q=this._rowCreateQueue;var l=q.length-1;if(l==-1){this._rowCreateTimer.stop();return;};l=Math.min(this._perLoopRowCreateCount,l);do{this._fragment.appendChild(this._createRow(q.shift()));}while(l--);};proto._onrowappend=function(){if(this._fragment.childNodes.length>this._perLoopRowAppendCount){this._onrowappenddo();return;};if(this._rowCreateQueue.length==0){this._onrowappenddo();this._rowAppendTimer.stop();if(this.hasEventListeners("complete")){this.dispatchEvent(new QxEvent("complete"),true);};return;};};if(QxListView._useFragment){proto._onrowappenddo=function(){this._contentBody.appendChild(this._fragment);};}else {proto._onrowappenddo=function(){var f=this._fragment;var l=f.childNodes.length;for(var i=0;i<l;i++){this._contentBody.appendChild(f.firstChild);};};};proto.addData=function(entry){this._validateData(entry);entry.hash="h"+String(Math.round(Math.random()*1e6));entry.pos=this._k1.length;this._k1.push(entry);this._rowCreateQueue.push(entry);};proto._validateData=function(entry){var currentColumn,currentContent,currentContentLength,currentId,currentDefaults,arrayEntry;var columns=this._columns,columnsLength=columns.length;var i,j;for(i=0;i<columnsLength;i++){currentColumn=columns[i];currentContent=currentColumn.content;currentId=currentColumn.id;switch(typeof currentContent){case "string":if(typeof entry[currentId]=="undefined"){if(typeof currentColumn.defaultValue!="undefined"){entry[currentId]=currentColumn.defaultValue;}else{entry[currentId]=this._validateDataDefaultGetter(currentContent);};};break;case "number":case "boolean":if(typeof entry[currentId]=="undefined"){if(typeof currentColumn.defaultValue!="undefined"){entry[currentId]=String(currentColumn.defaultValue);}else{entry[currentId]=String(this._validateDataDefaultGetter(currentContent));};};break;case "object":arrayEntry=entry[currentId];currentDefaults=currentColumn.defaultValues;currentContentLength=currentContent.length;switch(typeof arrayEntry){case "object":if(currentDefaults){for(j=0;j<currentContentLength;j++){switch(typeof arrayEntry[j]){case "number":case "boolean":arrayEntry[j]=String(arrayEntry[j]);break;case "undefined":arrayEntry[j]=typeof currentDefaults[j]!="undefined"?currentDefaults[j]:this._validateDataDefaultGetter(currentContent[j]);break;};};}else {for(j=0;j<currentContentLength;j++){switch(typeof arrayEntry[j]){case "number":case "boolean":arrayEntry[j]=String(arrayEntry[j]);break;case "undefined":arrayEntry[j]=this._validateDataDefaultGetter(currentContent[j]);break;};};};break;default:arrayEntry=entry[currentId]=[];if(currentDefaults){for(j=0;j<currentContentLength;j++){arrayEntry.push(typeof currentDefaults[j]!="undefined"?currentDefaults[j]:this._validateDataDefaultGetter(currentContent[j]));};}else{for(j=0;j<currentContentLength;j++){arrayEntry.push(this._validateDataDefaultGetter(currentContent[j]));};};break;};break;default:throw new Error("Unsupported content type:"+currentType);};};};proto._validateDataDefaultGetter=function(cType){switch(cType){case "text":return String.fromCharCode(160);case "image":return(new QxImageManager).buildURI("core/blank.gif");default:throw new Error("No default Value available for content:"+cType);};};proto._pushSingleElementDo=function(parentNode,elemNode){parentNode.appendChild(elemNode);return true;};proto._pushSingleElement=function(parentNode,elemType){switch(elemType){case "text":return this._pushSingleElementDo(parentNode,QxListView._protoTypeElements.text.cloneNode(true));case "image":return this._pushSingleElementDo(parentNode,QxListView._protoTypeElements.image.cloneNode(true));default:throw new Error("Unsupported type:"+elemType);};};proto._pushElements=function(parentNode,contentInfo){if(typeof contentInfo=="object"){var contentInfoLength=contentInfo.length;for(var i=0;i<contentInfoLength;i++){this._pushSingleElement(parentNode,contentInfo[i]);};}else if(typeof contentInfo=="string"){this._pushSingleElement(parentNode,contentInfo);}else {this.debug("Unknown type:"+contentInfo);};};proto._addColumn=function(colData){var headerCell=QxListView._headerProtoCell.cloneNode(true);var headerInnerTable=headerCell.firstChild;var headerInnerRow=headerInnerTable.firstChild.firstChild;var headerInnerTextCell=headerInnerRow.firstChild;var headerInnerTextBox=headerInnerTextCell.firstChild;var headerInnerSortCell=headerInnerRow.lastChild;var headerInnerSortImage=headerInnerSortCell.firstChild;var contentCell=QxListView._contentProtoCell.cloneNode(true);var contentBox=contentCell.firstChild;if(colData.image){var i=new Image();i.src=colData.image;if(typeof colData.imageWidth!="undefined")i.width=colData.imageWidth;if(typeof colData.imageHeight!="undefined")i.height=colData.imageHeight;headerInnerTextBox.appendChild(i);};if(colData.label){headerInnerTextBox.appendChild(document.createTextNode(colData.label));};this._pushElements(contentBox,colData.content);this._headerRow.appendChild(headerCell);this._contentProtoRow.appendChild(contentCell);var headerCol=document.createElement("col");this._headerColGroup.appendChild(headerCol);this._nodeHeaderColsCache.push(headerCol);var contentCol=document.createElement("col");this._contentColGroup.appendChild(contentCol);this._nodeContentColsCache.push(contentCol);if(typeof this._nodeRowCache=="undefined"){this._nodeRowCache=[];};var j=this._contentProtoRow.childNodes.length-1;this._nodeRowCache[j]=[];for(var i=0;i<contentBox.childNodes.length;i++){this._nodeRowCache[j].push(contentBox.childNodes[i]);};this._nodeHeaderCellCache.push(headerCell);this._nodeHeaderInnerTableCache.push(headerInnerTable);this._nodeHeaderInnerTextCellCache.push(headerInnerTextCell);this._nodeHeaderInnerTextBoxCache.push(headerInnerTextBox);this._nodeHeaderInnerSortCellCache.push(headerInnerSortCell);this._nodeHeaderInnerSortIconCache.push(headerInnerSortImage);var classNamePart=colData.id.toFirstUp();QxDOM.addClass(headerCell,"QxListViewHeaderCell-"+classNamePart);QxDOM.addClass(contentCell,"QxListViewContentCell-"+classNamePart);};proto._createRowDo=function(elemType,elemNode,elemContent){try{switch(elemType){case "text":elemNode.nodeValue=elemContent;break;case "image":elemNode.src=elemContent;break;default:throw new Error("Unsupported type #2:"+elemType);};}catch(ex){throw new Error("Failed to add Row:"+elemType+","+elemNode+","+elemContent+":"+ex);};};proto._createRow=function(rowData,rowTarget){var col,cols=this._columns,i=this._columnsLength,base;try{do {col=cols[i];base=this._nodeRowCache[i];switch(col.contentType){case "string":this._createRowDo(col.content,base[0],rowData[col.id]);break;case "object":j=col.contentLength;do{this._createRowDo(col.content[j],base[j],rowData[col.id][j]);}while(j--);break;};}while(i--);}catch(ex){throw new Error("Failed on column:"+i+":"+ex);};var newRow=this._contentProtoRow.cloneNode(true);newRow.style.display="";newRow._k1=rowData;return newRow;};proto.setSelection=function(newSelection,oldSelection){var i;var toSelect=[];var newSelectionLength=0;for(i in newSelection){if(!oldSelection[i]){toSelect.push(i);};newSelectionLength++;};var toDeselect=[];for(i in oldSelection){if(!newSelection[i]){toDeselect.push(i);};};var ch=this._contentBody.childNodes;var toSelectLength=toSelect.length;for(i=0;i<toSelectLength;i++){QxDOM.addClass(ch[toSelect[i]],"QxListViewContentRowSelected");};var toDeselectLength=toDeselect.length;for(i=0;i<toDeselectLength;i++){QxDOM.removeClass(ch[toDeselect[i]],"QxListViewContentRowSelected");};var changeSelectionLength=this._selectionLength!=newSelectionLength;if(changeSelectionLength){var newSelectionMode=this._evalSelectionMode(newSelectionLength);var changeSelectionMode=this._selectionMode!=newSelectionMode;};this._selection=newSelection;if(changeSelectionLength){this._selectionLength=newSelectionLength;if(changeSelectionMode){this._selectionMode=newSelectionMode;};};if(this.hasEventListeners("changeSelection")){this.dispatchEvent(new QxDataEvent("changeSelection",this._selection),true);};if(changeSelectionLength){if(this.hasEventListeners("changeSelectionLength")){this.dispatchEvent(new QxDataEvent("changeSelectionLength",this._selectionLength),true);};if(changeSelectionMode){if(this.hasEventListeners("changeSelectionMode")){this.dispatchEvent(new QxDataEvent("changeSelectionMode",this._selectionMode),true);};};};};proto.getSelection=function(){return this._selection;};proto.getSelectionLength=function(){return this._selectionLength;};proto.getSelectionMode=function(){return this._selectionMode;};proto._evalSelectionMode=function(l){switch(l){case 0:return "none";case 1:return "single";default:return "multi";};};proto._lastSelect=null;proto._g3=function(e){if(this.getContextMenu()){this.getContextMenu().setVisible(false);};var r=e.getDomTarget();var m=this.getElement();while(r!=m&&(r.nodeType!=1||r.tagName!="TR")){if(r.tagName=="TH"){return;};r=r.parentNode;};if(isInvalid(r._k1)){this.debug("Not a valid row:"+r);return;};var rowPosition=r._k1.pos;var oldSelection=this.getSelection();var newSelection={};if(e.getCtrlKey()){for(var i in oldSelection){newSelection[i]=oldSelection[i];};};if(e.getShiftKey()){if(this._lastSelect==null){return;};if(rowPosition<this._lastSelect){var istart=rowPosition,istop=this._lastSelect;}else{var istart=this._lastSelect,istop=rowPosition;};for(var i=istart;i<=istop;i++){newSelection[i]=true;};}else {if(e.getCtrlKey()&&newSelection[rowPosition]){delete newSelection[rowPosition];}else {newSelection[rowPosition]=true;this._lastSelect=rowPosition;};};this.setSelection(newSelection,oldSelection);};proto._onmousewheel=function(e){if(this.getContextMenu()){this.getContextMenu().setVisible(false);};this._content.scrollTop+=e.getWheelDelta()*-10;};proto._lastScrollLeft=0;proto._onscroll=function(){if(this.getContextMenu()){this.getContextMenu().setVisible(false);};this._syncScrollLeft();this._scrollSmoothTimer.start();};proto._onscrollsmooth=function(){if(this._content.scrollLeft==this._lastScrollLeft){this._scrollSmoothTimer.stop();};this._syncScrollLeft();};proto._onscrollemu=function(){if(this._content.scrollLeft!=this._lastScrollLeft){this._syncScrollLeft();};};proto._syncScrollLeft=function(){var s=this._content.scrollLeft;this._lastScrollLeft=s;this._headerTable.style.left=(-s)+"px";};proto._modifyHorizontalDimension=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyHorizontalDimension.call(this,_b1,_b2,_b3,_b4);if(_b3=="width"&&this._wasVisible){QxDOM.setWidth(this._header,QxDOM.getComputedInnerWidth(this._content));};return true;};proto._renderTableLayoutInitial=function(){QxDebugTimer("initiallayout");var hasScrollRight=QxDOM.getComputedScrollBarVisibleX(this._content);var hasScrollBottom=QxDOM.getComputedScrollBarVisibleY(this._content);QxDOM.setWidth(this._header,QxDOM.getComputedInnerWidth(this._content));var colLength=this._columnsLength;var todoValues=new Array(colLength);var todoValuesSum=0;var scaleColumns=[];var currentCol;var currentScaleColumn;var currentTodo;var firstRow=[];for(var i=0;i<this._columns.length;i++){firstRow.push(this._contentBody.firstChild.childNodes[i]);};var colLoop=colLength;do {currentCol=this._columns[colLoop];if(currentCol.hasStaticWidth){currentTodo=currentCol.width;}else {currentTodo=Math.max(this._nodeHeaderCellCache[colLoop].offsetWidth,firstRow[colLoop].offsetWidth);if(currentCol.hasMaxWidthLimit&&currentTodo>currentCol.maxWidth){currentTodo=currentCol.maxWidth;}else {if(currentCol.hasMinWidthLimit&&currentCol.minWidth>currentTodo){currentTodo=currentCol.minWidth;};};};todoValues[colLoop]=currentTodo;todoValuesSum+=currentTodo;}while(colLoop--);this._header.className=this._header.className.add("QxListViewHeaderOverflow"," ");this._content.className=this._content.className.add("QxListViewContentOverflow"," ");var innerAvail=QxDOM.getComputedInnerWidth(this._content)-todoValuesSum;if(innerAvail>0){var innerCurrentAvail=innerAvail;var innerAvailToShareCount=0;colLoop=colLength;do {currentCol=this._columns[colLoop];if(!currentCol.hasScaleWidth){continue;};if(currentCol.hasScaleFactor){currentTodo=todoValues[colLoop]+Math.floor(innerAvail*currentCol.scaleFactor);if(currentCol.hasMaxWidthLimit&&currentTodo>currentCol.maxWidth){currentTodo=currentCol.maxWidth;};innerCurrentAvail-=(currentTodo-todoValues[colLoop]);todoValues[colLoop]=currentTodo;}else {innerAvailToShareCount++;};}while(colLoop--);var currentAddTodo=0;colLoop=colLength;do {currentCol=this._columns[colLoop];if(!currentCol.hasScaleWidth){continue;};if(!currentCol.hasScaleFactor){currentTodo=todoValues[colLoop]+Math.floor(innerCurrentAvail/innerAvailToShareCount);if(currentCol.hasMaxWidthLimit&&currentTodo>currentCol.maxWidth){currentTodo=currentCol.maxWidth;};todoValues[colLoop]=currentTodo;};}while(colLoop--);};this._contentTable.removeChild(this._contentColGroup);var sum=0;var currentTextWidth,diff,tsize;colLoop=colLength;do {currentCol=this._columns[colLoop];currentTodo=todoValues[colLoop];this._nodeHeaderColsCache[colLoop].width=this._nodeContentColsCache[colLoop].width=currentTodo;sum+=currentTodo;diff=QxDOM.getComputedBoxWidth(this._nodeHeaderCellCache[colLoop])-QxDOM.getComputedBoxWidth(this._nodeHeaderInnerTextBoxCache[colLoop]);tsize=currentTodo-diff;if(tsize<20){this._nodeHeaderInnerSortCellCache[colLoop].style.display="none";diff=QxDOM.getComputedBoxWidth(this._nodeHeaderCellCache[colLoop])-QxDOM.getComputedBoxWidth(this._nodeHeaderInnerTextBoxCache[colLoop]);tsize=currentTodo-diff;};this._nodeHeaderInnerTextBoxCache[colLoop].style.width=tsize+"px";}while(colLoop--);this._contentTable.insertBefore(this._contentColGroup,this._contentBody);this.repaint();this._contentTable.style.width=this._headerTable.style.width=sum+"px";this._contentTable.style.tableLayout=this._headerTable.style.tableLayout="fixed";this._syncScrollLeft();this._header.style.visibility="visible";return true;};proto.dispose=function(){if(this._disposed)return;QxWidget.prototype.dispose.call(this);if(this._columns){for(var i=0;i<this._columnsLength;i++){delete this._columns[i];};};delete this._columns;delete this._columnsLength;if(this._k1){for(var i=0;i<this._k1.length;i++){delete this._k1[i];};};delete this._k1;delete this._selection;delete this._fragment;if(this._content){this._content.onscroll=null;};this.removeEventListener("click",this._g3);this.removeEventListener("mousewheel",this._onmousewheel);delete this._rowCreateQueue;if(this._rowCreateTimer){this._rowCreateTimer.removeEventListener("interval",this._onrowcreate,this);this._rowCreateTimer.dispose();delete this._rowCreateTimer;};delete this._rowAppendQueue;if(this._rowAppendTimer){this._rowAppendTimer.removeEventListener("interval",this._onrowappend,this);this._rowAppendTimer.dispose();delete this._rowAppendTimer;};if(this._scrollSmoothTimer){this._scrollSmoothTimer.removeEventListener("interval",this._onscrollsmooth,this);this._scrollSmoothTimer.dispose();delete this._scrollSmoothTimer;};if(this._scrollEmuTimer){this._scrollEmuTimer.removeEventListener("interval",this._onscrollemu,this);this._scrollEmuTimer.dispose();delete this._scrollEmuTimer;};delete this._nodeRowCache;delete this._nodeHeaderColsCache;delete this._nodeContentColsCache;delete this._nodeHeaderCellCache;delete this._nodeContentFirstRowCellCache;delete this._nodeHeaderInnerTableCache;delete this._nodeHeaderInnerTextCellCache;delete this._nodeHeaderInnerTextBoxCache;delete this._nodeHeaderInnerSortCellCache;delete this._nodeHeaderInnerSortIconCache;};QxListView.init=function(){var h1=document.createElement("div");var h2=document.createElement("table");var h3=document.createElement("colgroup");var h4=document.createElement("thead");var h5=document.createElement("tr");var h6=document.createElement("th");var h7=document.createElement("table");var h8=document.createElement("thead");var h9=document.createElement("tr");var h10=document.createElement("th");var h11=document.createElement("th");var h12=document.createElement("div");var h13=document.createElement("img");h1.className="QxListViewHeader";h2.className="QxListViewHeaderTable";h4.className="QxListViewHeaderBody";h5.className="QxListViewHeaderRow";h6.className="QxListViewHeaderCell";h7.className="QxListViewHeaderInner";h8.className="QxListViewHeaderInnerBody";h9.className="QxListViewHeaderInnerRow";h10.className="QxListViewHeaderInnerText";h11.className="QxListViewHeaderInnerSort";h12.className="QxListViewHeaderInnerTextBox";h13.className="QxListViewHeaderInnerSortImage";h13.src = (new QxImageManager).buildURI("widgets/arrows/down.gif");h13.style.visibility="hidden";h2.cellSpacing=h2.cellPadding="0";h7.cellSpacing=h7.cellPadding="0";if((new QxClient).isMshtml()){h1.unselectable=h2.unselectable=h4.unselectable=h5.unselectable=h6.unselectable=h7.unselectable=h8.unselectable=h9.unselectable=h10.unselectable=h11.unselectable=h12.unselectable=h13.unselectable="on";};h1.appendChild(h2);h2.appendChild(h3);h2.appendChild(h4);h4.appendChild(h5);h6.appendChild(h7);h7.appendChild(h8);h8.appendChild(h9);h9.appendChild(h10);h9.appendChild(h11);h10.appendChild(h12);h11.appendChild(h13);QxListView._headerProtoFrame=h1;QxListView._headerProtoCell=h6;var c1=document.createElement("div");var c2=document.createElement("table");var c3=document.createElement("colgroup");var c4=document.createElement("tbody");var c5=document.createElement("tr");var c6=document.createElement("td");var c7=document.createElement("div");c1.className="QxListViewContent";c2.className="QxListViewContentTable";c4.className="QxListViewContentBody";c5.className="QxListViewContentRow";c6.className="QxListViewContentCell";c7.className="QxListViewContentBox";c2.cellSpacing=c2.cellPadding="0";if((new QxClient).isMshtml()){c1.unselectable=c2.unselectable=c4.unselectable=c5.unselectable=c6.unselectable=c7.unselectable="on";};c1.appendChild(c2);c2.appendChild(c3);c2.appendChild(c4);c6.appendChild(c7);QxListView._contentProtoFrame=c1;QxListView._contentProtoRow=c5;QxListView._contentProtoCell=c6;QxListView._protoTypeElements={text:document.createTextNode(String.fromCharCode(160)),image:new Image()};QxListView._protoTypeElements.image.src=(new QxImageManager).buildURI("core/blank.gif");};QxListView.init();function QxFieldSet(vLegend){QxWidget.call(this);if(isValid(vLegend)){this.setLegend(vLegend);};this._minWidth=100;this._minHeight=50;this.setMinWidth(this._minWidth);this.setMinHeight(this._minHeight);this._dim={};};QxFieldSet.extend(QxWidget,"QxFieldSet");QxFieldSet.addProperty({name:"legend",type:String});proto._modifyElement=function(_b1,_b2,_b3,_b4){if(_b1){if(!this._frame){this._frame=QxFieldSet._h3.cloneNode(true);this._legend=this._frame.firstChild;this._content=this._frame.lastChild;};_b1.appendChild(this._frame);}else if(_b2&&this._frame){_b2.removeChild(this._frame);};QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);return true;};proto._beforeShow=function(){this._renderLegend();this._renderWidth();this._renderHeight();};if((new QxClient).isGecko()){proto._renderLegend=function(){if(!this.isCreated()){return;};var oldWidth1=this.getElement().style.width;var oldWidth2=this._frame.style.width;var newWidth;this.getElement().style.width=this._frame.style.width="10000px";this._legend.style.width="";var l=this.getLegend();if(isValid(l)){this._legend.firstChild.nodeValue=l;this._legend.style.display="block";newWidth=this._legend.scrollWidth;}else {this._legend.style.display="none";newWidth=0;};this.getElement().style.width=oldWidth1;this._frame.style.width=oldWidth2;this._legend.style.width=newWidth+"px";if(this.getMinWidth()==this._minWidth){this._minWidth=newWidth+QxDOM.getComputedMarginLeft(this._legend)+QxDOM.getComputedMarginRight(this._legend);this.setMinWidth(this._minWidth);};};}else {proto._renderLegend=function(){if(!this.isCreated()){return;};var l=this.getLegend();if(isValid(l)){this._legend.firstChild.nodeValue=l;this._legend.style.display="block";}else {this._legend.style.display="none";};if(this.getMinWidth()==this._minWidth){this._minWidth=this._legend.scrollWidth+QxDOM.getComputedMarginLeft(this._legend)+QxDOM.getComputedMarginRight(this._legend);this.setMinWidth(this._minWidth);};};};proto._modifyLegend=function(_b1,_b2,_b3,_b4){this._renderLegend();return true;};proto._getParentNodeForChild=function(){return this._content;};proto._renderWidth=function(size){if(!this.isCreated()){return true;};var wFrame=Math.max(0,this.getElement().offsetWidth-QxDOM.getComputedMarginLeft(this._frame)-QxDOM.getComputedMarginRight(this._frame));var wContent=wFrame>0?Math.max(0,wFrame-QxDOM.getComputedInsetLeft(this._frame)-QxDOM.getComputedInsetRight(this._frame)-QxDOM.getComputedMarginLeft(this._content)-QxDOM.getComputedMarginRight(this._content)):0;this._frame.style.width=wFrame+"px";this._content.style.width=wContent+"px";return true;};proto._renderHeight=function(size){if(!this.isCreated()){return true;};var hFrame=Math.max(0,this.getElement().offsetHeight-QxDOM.getComputedMarginTop(this._frame)-QxDOM.getComputedMarginBottom(this._frame));var hContent=hFrame>0?Math.max(0,hFrame-QxDOM.getComputedInsetTop(this._frame)-QxDOM.getComputedInsetBottom(this._frame)-QxDOM.getComputedMarginTop(this._content)-QxDOM.getComputedMarginBottom(this._content)):0;this._frame.style.height=hFrame+"px";this._content.style.height=hContent+"px";return true;};proto.getComputedBorderLeft=proto.getComputedInsetLeft=function(){return QxDOM.getComputedMarginLeft(this._frame)+QxDOM.getComputedInsetLeft(this._frame)+QxDOM.getComputedMarginLeft(this._content);};proto.getComputedBorderRight=proto.getComputedInsetRight=function(){return QxDOM.getComputedMarginRight(this._frame)+QxDOM.getComputedInsetRight(this._frame)+QxDOM.getComputedMarginRight(this._content);};proto.getComputedBorderTop=proto.getComputedInsetTop=function(){return QxDOM.getComputedMarginTop(this._frame)+QxDOM.getComputedInsetTop(this._frame)+QxDOM.getComputedMarginTop(this._content);};proto.getComputedBorderBottom=proto.getComputedInsetBottom=function(){return QxDOM.getComputedMarginBottom(this._frame)+QxDOM.getComputedInsetBottom(this._frame)+QxDOM.getComputedMarginBottom(this._content);};proto.getComputedAreaWidth=function(){return this.getElement().offsetWidth-this.getComputedInsetLeft()-this.getComputedInsetRight();};proto.getComputedAreaHeight=function(){return this.getElement().offsetHeight-this.getComputedInsetTop()-this.getComputedInsetBottom();};proto.getComputedInnerWidth=function(){return this.getElement().offsetWidth-this.getComputedInsetLeft()-this.getComputedInsetRight()-this.getComputedPaddingLeft()-this.getComputedPaddingRight();};proto.getComputedInnerHeight=function(){return this.getElement().offsetHeight-this.getComputedInsetTop()-this.getComputedInsetBottom()-this.getComputedPaddingTop()-this.getComputedPaddingBottom();};proto._applySizeHorizontal=function(size){QxWidget.prototype._applySizeHorizontal.call(this,size);return this._renderWidth();};proto._applySizeVertical=function(size){QxWidget.prototype._applySizeVertical.call(this,size);return this._renderHeight();};QxFieldSet.init=function(){var frame=QxFieldSet._h3=document.createElement("div");var legend=document.createElement("div");var legendText=document.createTextNode("-");var content=document.createElement("div");frame.className="QxFieldSetFrame";legend.className="QxFieldSetLegend";content.className="QxFieldSetContent";legend.appendChild(legendText);frame.appendChild(legend);frame.appendChild(content);};QxFieldSet.init();function QxIframe(vSrc){QxWidget.call(this);this.setTabIndex(0);var o=this;this.__onreadystatechange=function(e){return o._onreadystatechange(e);};this.__onload=function(e){return o._onload(e);};if(isValid(vSrc)){this.setSrc(vSrc);};};QxIframe.extend(QxWidget,"QxIframe");QxIframe.addProperty({name:"src",type:String,defaultValue:"javascript:void(0)"});proto._realFrame=null;proto._modifyElement=function(_b1,_b2,_b3,_b4){if(!this._realFrame){this._realFrame=QxIframe._h3.cloneNode(true);if((new QxClient).isMshtml()){this._realFrame.onreadystatechange=this.__onreadystatechange;}else{this._realFrame.onload=this.__onload;};};_b1.appendChild(this._realFrame);this._renderSrc();QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);return true;};proto._modifySrc=function(_b1,_b2,_b3,_b4){if(this.isCreated()){this._renderSrc();};return true;};proto.getIframe=function(){return this._realFrame;};proto._renderSrc=function(){var currentSrc=this.getSrc();this._isLoaded=false;this._realFrame.src=isValid(currentSrc)?currentSrc:"javascript:void(0)";};proto._onreadystatechange=function(){if(this._realFrame.readyState=="complete"){this.dispatchEvent(new QxEvent("load"));};};proto._onload=function(){this._isLoaded=true;this.dispatchEvent(new QxEvent("load"));};if((new QxClient).isMshtml()){proto.getContentWindow=function(){if(this.isCreated()){try{return this.getElement().contentWindow;}catch(ex){};};return null;};proto.getContentDocument=function(){var win=this.getContentWindow();return win?win.document:null;};}else {proto.getContentWindow=function(){var doc=this.getContentDocument();return doc?doc.defaultView:null;};proto.getContentDocument=function(){if(this.isCreated()){try{return this.getElement().contentDocument;}catch(ex){};};return null;};};proto._isLoaded=false;if((new QxClient).isMshtml()){proto.isLoaded=function(){var doc=this.getContentDocument();return doc?doc.readyState=="complete":false;};}else {proto.isLoaded=function(){return this._isLoaded;};};proto.dispose=function(){if(this.getDisposed()){return;};if(this.isCreated()&&this._realFrame){this.getElement().removeChild(this._realFrame);};this._realFrame=null;QxWidget.prototype.dispose.call(this);};QxIframe.init=function(){var f=QxIframe._h3=document.createElement("iframe");f.frameBorder="0";f.frameSpacing="0";f.marginWidth="0";f.marginHeight="0";f.width="100%";f.height="100%";f.hspace="0";f.vspace="0";f.border="0";f.scrolling="auto";f.unselectable="on";f.src="javascript:void(0)";f.className="QxIframeFrame";f.allowTransparency="true";};QxIframe.init();function QxToolBar(){QxWidget.call(this);this.setHeight("auto");};QxToolBar.extend(QxWidget,"QxToolBar");function QxToolBarPart(){QxWidget.call(this);this.setTop(0);this.setBottom(0);this._handle=new QxToolBarPartHandle;this.add(this._handle);};QxToolBarPart.extend(QxWidget,"QxToolBarPart");proto.dispose=function(){if(this.getDisposed()){return;};QxWidget.prototype.dispose.call(this);if(this._handle){this._handle.dispose();this._handle=null;};return true;};function QxToolBarPartHandle(){QxWidget.call(this);this.setTop(0);this.setBottom(0);this.setLeft(0);this.setWidth(10);this._line=new QxWidget;with(this._line){setCssClassName("QxToolBarPartHandleLine");setTop(2);setLeft(3);setBottom(2);setWidth(4);};this.add(this._line);};QxToolBarPartHandle.extend(QxWidget,"QxToolBarPartHandle");function QxToolBarButton(vText,vIcon,vIconWidth,vIconHeight){QxAtom.call(this,vText,vIcon,vIconWidth,vIconHeight);this.setHeight(null);this.setTop(0);this.setBottom(0);this.addEventListener("mouseover",this._onmouseover);this.addEventListener("mouseout",this._onmouseout);this.addEventListener("mousedown",this._g1);this.addEventListener("mouseup",this._g2);};QxToolBarButton.extend(QxAtom,"QxToolBarButton");proto._modifyEnabled=function(_b1,_b2,_b3,_b4){QxAtom.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);this.setState(null,_b4);return true;};proto._onmouseover=function(e){this.setState("hover");};proto._onmouseout=function(e){this.setState(null);};proto._g1=function(e){if(e.isNotLeftButton()){return;};this.setState("pressed");};proto._g2=function(e){if(e.isNotLeftButton()){return;};this.setState("hover");this.execute();};function QxToolBarSeparator(){QxWidget.call(this);this.setWidth(8);this.setTop(0);this.setBottom(0);this._line=new QxWidget;with(this._line){setCssClassName("QxToolBarSeparatorLine");setTop(2);setLeft(3);setWidth(2);setBottom(2);};this.add(this._line);};QxToolBarSeparator.extend(QxWidget,"QxToolBarSeparator");function QxToolBarCheckBox(vText,vIcon,vChecked){QxToolBarButton.call(this,vText,vIcon);if(isValid(vChecked)){this.setChecked(vChecked);};};QxToolBarCheckBox.extend(QxToolBarButton,"QxToolBarCheckBox");QxToolBarCheckBox.addProperty({name:"checked",type:Boolean,defaultValue:false});proto._g2=function(e){if(e.isNotLeftButton()){return;};this.setChecked(!this.getChecked());};proto._onmouseover=function(e){this.setState(this.getChecked()?"pressed":"hover");};proto._onmouseout=function(e){this.setState(this.getChecked()?"checked":null);};proto._modifyChecked=function(_b1,_b2,_b3,_b4){switch(this.getState()){case null:this.setState(_b1?"checked":null,_b4);break;case "checked":this.setState(_b1?"pressed":null,_b4);break;case "pressed":if(!_b1){this.setState("hover");};break;case "hover":if(_b1){this.setState("pressed",_b4);};};return true;};function QxToolBarRadioButton(vText,vIcon,vChecked){QxToolBarCheckBox.call(this,vText,vIcon,vChecked);};QxToolBarRadioButton.extend(QxToolBarCheckBox,"QxToolBarRadioButton");QxToolBarRadioButton.addProperty({name:"group"});QxToolBarRadioButton.addProperty({name:"name",type:String});QxToolBarRadioButton.addProperty({name:"disableUncheck",type:Boolean,defaultValue:false});proto._modifyChecked=function(_b1,_b2,_b3,_b4){QxToolBarCheckBox.prototype._modifyChecked.call(this,_b1,_b2,_b3,_b4);if(this.getGroup()){this.getGroup().setSelected(this,_b4);};return true;};proto._modifyGroup=function(_b1,_b2,_b3,_b4){if(_b2){_b2.remove(this,_b4);};if(_b1){_b1.add(this,_b4);};return true;};proto._g2=function(e){if(e.isNotLeftButton()){return;};this.setChecked(this.getDisableUncheck()||!this.getChecked());};function QxToolBarMenuButton(vText,vIcon,vIconWidth,vIconHeight,vMenu){QxToolBarButton.call(this,vText,vIcon,vIconWidth,vIconHeight);if(isValid(vMenu)){this.setMenu(vMenu);};};QxToolBarMenuButton.extend(QxToolBarButton,"QxToolBarMenuButton");QxToolBarMenuButton.addProperty({name:"menu",type:Object});proto._modifyMenu=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setOpener(null,_b4);};if(_b1){_b1.setOpener(this,_b4);};return true;};proto._modifyState=function(_b1,_b2,_b3,_b4){var vMenu=this.getMenu();if(vMenu){if(_b1=="pressed"){vMenu.setLeft(this.getComputedPageBoxLeft());vMenu.setTop(this.getComputedPageBoxTop()+this.getComputedBoxHeight());vMenu.setVisible(true,_b4);}else {vMenu.setVisible(false,_b4);};};return QxWidget.prototype._modifyState.call(this,_b1,_b2,_b3,_b4);};proto._onmouseover=function(e){var vMenu=this.getMenu();if(vMenu==null||!vMenu.getVisible()){this.setState("hover");};};proto._onmouseout=function(e){if(this.getState()=="hover"){this.setState(null);};};proto._g1=function(e){if(e.isNotLeftButton()){return;};(new QxMenuManager).update();this.setState(this.getState()=="pressed"?"hover":"pressed");e.setPropagationStopped(true);};proto._g2=function(e){};function QxSelectionStorage(){this.removeAll();};QxSelectionStorage.extend(QxObject,"QxSelectionStorage");proto.add=function(oItem){this._i4[this.getItemHashCode(oItem)]=oItem;};proto.remove=function(oItem){delete this._i4[this.getItemHashCode(oItem)];};proto.removeAll=function(){this._i4={};};proto.contains=function(oItem){return this.getItemHashCode(oItem)in this._i4;};proto.toArray=function(){var res=[];for(var key in this._i4){res.push(this._i4[key]);};return res;};proto.getFirst=function(){for(var key in this._i4){return this._i4[key];};};proto.getChangeValue=function(){var sb=[];for(var hc in this._i4){sb.push(hc);};sb.sort();return sb.join(",");};proto.getItemHashCode=function(oItem){return oItem.toHash();};proto.isEmpty=function(){return isHashEmpty(this._i4);};proto.dispose=function(){if(this.getDisposed()){return;};this._i4=null;QxObject.prototype.dispose.call(this);};function QxSelectionManager(vBoundedWidget){QxTarget.call(this);this._j5=new QxSelectionStorage();if(isValid(vBoundedWidget)){this.setBoundedWidget(vBoundedWidget);};};QxSelectionManager.extend(QxManager,"QxSelectionManager");QxSelectionManager.addProperty({name:"boundedWidget",type:Object});QxSelectionManager.addProperty({name:"multiSelection",type:Boolean,defaultValue:true});QxSelectionManager.addProperty({name:"dragSelection",type:Boolean,defaultValue:true});QxSelectionManager.addProperty({name:"canDeselect",type:Boolean,defaultValue:true});QxSelectionManager.addProperty({name:"fireChange",type:Boolean,defaultValue:true});QxSelectionManager.addProperty({name:"anchorItem",type:Object});QxSelectionManager.addProperty({name:"leadItem",type:Object});QxSelectionManager.addProperty({name:"multiColumnSupport",type:Boolean,defaultValue:false});proto._modifyAnchorItem=function(_b1,_b2,_b3,_b4){if(_b2){this.renderItemAnchorState(_b2,false);};if(_b1){this.renderItemAnchorState(_b1,true);};return true;};proto._modifyLeadItem=function(_b1,_b2,_b3,_b4){if(_b2){this._j10(_b2,false);};if(_b1){this._j10(_b1,true);};return true;};proto.getFirst=function(){var vItem=this.getBoundedWidget().getFirstChild();return this.getItemEnabled(vItem)?vItem:this.getNext(vItem);};proto.getLast=function(){var vItem=this.getBoundedWidget().getLastChild();return this.getItemEnabled(vItem)?vItem:this.getPrevious(vItem);};proto.getItems=function(){return this.getBoundedWidget().getChildren();};proto.getNextSibling=function(vItem){return vItem.getNextSibling();};proto.getPreviousSibling=function(vItem){return vItem.getPreviousSibling();};proto.getNext=function(vItem){while(vItem){vItem=this.getNextSibling(vItem);if(!vItem){break;};if(this.getItemEnabled(vItem)){return vItem;};};return null;};proto.getPrevious=function(vItem){while(vItem){vItem=this.getPreviousSibling(vItem);if(!vItem){break;};if(this.getItemEnabled(vItem)){return vItem;};};return null;};proto.isBefore=function(vItem1,vItem2){var cs=this.getItems();return cs.indexOf(vItem1)<cs.indexOf(vItem2);};proto.isEqual=function(vItem1,vItem2){return vItem1==vItem2;};proto.getItemHashCode=function(vItem){return vItem.toHash();};proto.scrollItemIntoView=function(vItem){vItem.scrollIntoView();};proto.getItemLeft=function(vItem){return vItem.getOffsetLeft();};proto.getItemTop=function(vItem){return vItem.getOffsetTop();};proto.getItemWidth=function(vItem){return vItem.getOffsetWidth();};proto.getItemHeight=function(vItem){return vItem.getOffsetHeight();};proto.getItemEnabled=function(vItem){return vItem.getEnabled();};proto.getItemClassName=function(vItem){return vItem.getCssClassName();};proto.setItemClassName=function(vItem,vClassName){return vItem.setCssClassName(vClassName);};proto.getItemBaseClassName=function(vItem){return vItem.classname;};proto._j3=function(vItem,vState,vIsState){var c=this.getItemClassName(vItem);var n=this.getItemBaseClassName(vItem)+"-"+vState;this.setItemClassName(vItem,vIsState?c.add(n," "):c.remove(n," "));};proto._j9=function(vItem,vIsSelected){this._j3(vItem,"Selected",vIsSelected);};proto.renderItemAnchorState=function(vItem,vIsAnchor){this._j3(vItem,"Anchor",vIsAnchor);};proto._j10=function(vItem,vIsLead){this._j3(vItem,"Lead",vIsLead);};proto.getItemSelected=function(vItem){return this._j5.contains(vItem);};proto.setItemSelected=function(vItem,vSelected){var hc=this.getItemHashCode(vItem);switch(this.getMultiSelection()){case true:if(!this.getItemEnabled(vItem)){return;};if(this.getItemSelected(vItem)==vSelected){return;};this._j9(vItem,vSelected);vSelected?this._j5.add(vItem):this._j5.remove(vItem);this._j1();break;case false:var item0=this.getSelectedItems()[0];if(vSelected){var old=item0;if(this.isEqual(vItem,old)){return;};if(old!=null){this._j9(old,false);};this._j9(vItem,true);this._j5.removeAll();this._j5.add(vItem);this._j1();}else {if(!this.isEqual(item0,vItem)){this._j9(vItem,false);this._j5.removeAll();this._j1();};};break;};};proto.getSelectedItems=function(){return this._j5.toArray();};proto.getSelectedItem=function(){return this._j5.getFirst();};proto.setSelectedItems=function(vItems){var oldVal=this._getChangeValue();var oldFireChange=this.getFireChange();this.setFireChange(false);this._j7();var vItem;var vItemLength=vItems.length;for(var i=0;i<vItemLength;i++){vItem=vItems[i];if(!this.getItemEnabled(vItem)){continue;};this._j5.add(vItem);this._j9(vItem,true);};this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal)){this._j1();};};proto.setSelectedItem=function(vItem){if(!vItem){return;};if(!this.getItemEnabled(vItem)){return;};var oldVal=this._getChangeValue();var oldFireChange=this.getFireChange();this.setFireChange(false);this._j7();this._j5.add(vItem);this._j9(vItem,true);this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal)){this._j1();};};proto.selectAll=function(){var oldVal=this._getChangeValue();var oldFireChange=this.getFireChange();this.setFireChange(false);this._selectAll();this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal)){this._j1();};};proto._selectAll=function(){if(!this.getMultiSelection()){return;};var vItem;var vItems=this.getItems();var vItemsLength=vItems.length;this._j5.removeAll();for(var i=0;i<vItemsLength;i++){vItem=vItems[i];if(!this.getItemEnabled(vItem)){continue;};this._j5.add(vItem);this._j9(vItem,true);};return true;};proto.deselectAll=function(){var oldVal=this._getChangeValue();var oldFireChange=this.getFireChange();this.setFireChange(false);this._j7();this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal))this._j1();};proto._j7=function(){var items=this._j5.toArray();for(var i=0;i<items.length;i++){this._j9(items[i],false);};this._j5.removeAll();return true;};proto.selectItemRange=function(vItem1,vItem2){var oldVal=this._getChangeValue();var oldFireChange=this.getFireChange();this.setFireChange(false);this._j2(vItem1,vItem2,true);this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal)){this._j1();};};proto._j2=function(vItem1,vItem2,vDeselect){if(this.isBefore(vItem2,vItem1)){return this._j2(vItem2,vItem1,vDeselect);};if(vDeselect){this._j7();};var vCurrentItem=vItem1;while(vCurrentItem!=null){if(this.getItemEnabled(vCurrentItem)){this._j5.add(vCurrentItem);this._j9(vCurrentItem,true);};if(this.isEqual(vCurrentItem,vItem2)){break;};vCurrentItem=this.getNext(vCurrentItem);};return true;};proto._j6=function(vItem1,vItem2){if(this.isBefore(vItem2,vItem1)){return this._j6(vItem2,vItem1);};var vCurrentItem=vItem1;while(vCurrentItem!=null){this._j5.remove(vCurrentItem);this._j9(vCurrentItem,false);if(this.isEqual(vCurrentItem,vItem2)){break;};vCurrentItem=this.getNext(vCurrentItem);};};proto._j4=false;proto.handleMouseDown=function(vItem,e){if(e.isNotLeftButton()&&e.isNotRightButton()){return;};if(e.isRightButton()&&this.getItemSelected(vItem)){return;};if(e.getShiftKey()||this.getDragSelection()||(!this.getItemSelected(vItem)&&!e.getCtrlKey())){this._onmouseevent(vItem,e);}else {this.setLeadItem(vItem);};this._j4=this.getDragSelection();if(this._j4){this.getBoundedWidget().addEventListener("mouseup",this._ondragup,this);this.getBoundedWidget().setCapture(true);};};proto._ondragup=function(e){this.getBoundedWidget().removeEventListener("mouseup",this._ondragup,this);this.getBoundedWidget().setCapture(false);this._j4=false;};proto.handleMouseUp=function(vItem,e){if(e.isNotLeftButton()){return;};if(e.getCtrlKey()||this.getItemSelected(vItem)&&!this._j4){this._onmouseevent(vItem,e);};if(this._j4){this._j4=false;this.getBoundedWidget().setCapture(false);};};proto.handleMouseOver=function(oItem,e){if(! this.getDragSelection()||!this._j4){return;};this._onmouseevent(oItem,e,true);};proto.handleClick=function(vItem,e){};proto.handleDblClick=function(vItem,e){};proto._onmouseevent=function(oItem,e,bOver){if(!this.getItemEnabled(oItem)){return;};var oldVal=this._getChangeValue();var oldLead=this.getLeadItem();var oldFireChange=this.getFireChange();this.setFireChange(false);var selectedItems=this.getSelectedItems();var selectedCount=selectedItems.length;this.setLeadItem(oItem);var currentAnchorItem=this.getAnchorItem();var vCtrlKey=e.getCtrlKey();var vShiftKey=e.getShiftKey();if(!currentAnchorItem||selectedCount==0||(vCtrlKey&&!vShiftKey&&this.getMultiSelection()&&!this.getDragSelection())){this.setAnchorItem(oItem);currentAnchorItem=oItem;};if((!vCtrlKey&&!vShiftKey&&!this._j4||!this.getMultiSelection())){if(!this.getItemEnabled(oItem)){return;};this._j7();this.setAnchorItem(oItem);if(this._j4){this.scrollItemIntoView((this.getBoundedWidget().getScrollTop()>(this.getItemTop(oItem)-1)?this.getPrevious(oItem):this.getNext(oItem))||oItem);};if(!this.getItemSelected(oItem)){this._j9(oItem,true);};this._j5.add(oItem);this._addToCurrentSelection=true;}else if(this._j4&&bOver){if(oldLead){this._j6(currentAnchorItem,oldLead);};if(this.isBefore(currentAnchorItem,oItem)){if(this._addToCurrentSelection){this._j2(currentAnchorItem,oItem,false);}else {this._j6(currentAnchorItem,oItem);};}else {if(this._addToCurrentSelection){this._j2(oItem,currentAnchorItem,false);}else {this._j6(oItem,currentAnchorItem);};};this.scrollItemIntoView((this.getBoundedWidget().getScrollTop()>(this.getItemTop(oItem)-1)?this.getPrevious(oItem):this.getNext(oItem))||oItem);}else if(this.getMultiSelection()&&vCtrlKey&&!vShiftKey){if(!this._j4){this._addToCurrentSelection=!(this.getCanDeselect()&&this.getItemSelected(oItem));};this.setItemSelected(oItem,this._addToCurrentSelection);this.setAnchorItem(oItem);}else if(this.getMultiSelection()&&vCtrlKey&&vShiftKey){if(!this._j4){this._addToCurrentSelection=!(this.getCanDeselect()&&this.getItemSelected(oItem));};if(this._addToCurrentSelection){this._j2(currentAnchorItem,oItem,false);}else {this._j6(currentAnchorItem,oItem);};}else if(this.getMultiSelection()&&!vCtrlKey&&vShiftKey){if(this.getCanDeselect()){this._j2(currentAnchorItem,oItem,true);}else {if(oldLead){this._j6(currentAnchorItem,oldLead);};this._j2(currentAnchorItem,oItem,false);};};this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal)){this._j1();};};proto.handleKeyDown=function(e){var oldVal=this._getChangeValue();var oldFireChange=this.getFireChange();this.setFireChange(false);if(e.getKeyCode()==65&&e.getCtrlKey()){if(this.getMultiSelection()){this._selectAll();this.setLeadItem(this.getFirst());};}else {var aIndex=this.getAnchorItem();var itemToSelect=this.getItemToSelect(e);if(itemToSelect&&this.getItemEnabled(itemToSelect)){this.setLeadItem(itemToSelect);this.scrollItemIntoView(itemToSelect);if(e.getShiftKey()&&this.getMultiSelection()){if(aIndex==null){this.setAnchorItem(itemToSelect);};this._j2(this.getAnchorItem(),itemToSelect,true);}else if(!e.getCtrlKey()){this._j7();this._j9(itemToSelect,true);this._j5.add(itemToSelect);this.setAnchorItem(itemToSelect);};};};e.setPreventDefault(true);e.setPropagationStopped(true);this.setFireChange(oldFireChange);if(oldFireChange&&this._j8(oldVal)){this._j1();};};proto.getItemToSelect=function(oKeyboardEvent){var e=oKeyboardEvent;if(e.getAltKey()){return null;};switch(e.getKeyCode()){case QxKeyEvent.keys.home:return this.getHome(this.getLeadItem());case QxKeyEvent.keys.end:return this.getEnd(this.getLeadItem());case QxKeyEvent.keys.down:return this.getDown(this.getLeadItem());case QxKeyEvent.keys.up:return this.getUp(this.getLeadItem());case QxKeyEvent.keys.left:return this.getLeft(this.getLeadItem());case QxKeyEvent.keys.right:return this.getRight(this.getLeadItem());case QxKeyEvent.keys.pageup:return this.getPageUp(this.getLeadItem());case QxKeyEvent.keys.pagedown:return this.getPageDown(this.getLeadItem());};return null;};proto._j1=function(){if(!this.getFireChange()){return;};this.dispatchEvent(new QxDataEvent("changeSelection",this.getSelectedItems()));};proto._j8=function(sOldValue){return sOldValue!=this._getChangeValue();};proto._getChangeValue=function(){return this._j5.getChangeValue();};proto.getHome=function(){return this.getFirst();};proto.getEnd=function(){return this.getLast();};proto.getDown=function(vItem){if(!vItem){return this.getFirst();};return this.getMultiColumnSupport()?(this.getUnder(vItem)||this.getLast()):this.getNext(vItem);};proto.getUp=function(vItem){if(!vItem){return this.getLast();};return this.getMultiColumnSupport()?(this.getAbove(vItem)||this.getFirst()):this.getPrevious(vItem);};proto.getLeft=function(vItem){if(!this.getMultiColumnSupport()){return null;};return !vItem?this.getLast():this.getPrevious(vItem);};proto.getRight=function(vItem){if(!this.getMultiColumnSupport()){return null;};return !vItem?this.getFirst():this.getNext(vItem);};proto.getAbove=function(vItem){throw new Error("getAbove():Not implemented yet");};proto.getUnder=function(vItem){throw new Error("getUnder():Not implemented yet");};proto.getPageUp=function(vItem){var vBound=this.getBoundedWidget();var vParentScrollTop=vBound.getScrollTop();var newItem;var nextItem=this.getLeadItem();if(!nextItem){nextItem=this.getFirst();};var tryLoops=0;while(tryLoops<2){while(nextItem&&(this.getItemTop(nextItem)-this.getItemHeight(nextItem)>=vParentScrollTop)){newItem=this.getUp(nextItem);if(newItem==null){break;};nextItem=newItem;};if(nextItem==null){tryLoops=2;break;};if(nextItem!=this.getLeadItem()){break;};vBound.setScrollTop(vParentScrollTop-vBound.getClientHeight()-this.getItemHeight(nextItem));vParentScrollTop=vBound.getScrollTop();tryLoops++;};return nextItem;};proto.getPageDown=function(vItem){var vBound=this.getBoundedWidget();var vParentScrollTop=vBound.getScrollTop();var vParentClientHeight=vBound.getClientHeight();var newItem;var nextItem=this.getLeadItem();if(!nextItem){nextItem=this.getFirst();};var tryLoops=0;while(tryLoops<2){while(nextItem&&((this.getItemTop(nextItem)+(2*this.getItemHeight(nextItem)))<=(vParentScrollTop+vParentClientHeight))){newItem=this.getDown(nextItem);if(newItem==null){break;};nextItem=newItem;};if(nextItem==null){tryLoops=2;break;};if(nextItem!=this.getLeadItem()){break;};vBound.setScrollTop(vParentScrollTop+vParentClientHeight-(2*this.getItemHeight(nextItem)));vParentScrollTop=vBound.getScrollTop();tryLoops++;};return nextItem;};proto.dispose=function(){if(this.getDisposed()){return;};if(this._j5){this._j5.dispose();this._j5=null;};return QxTarget.prototype.dispose.call(this);};function QxList(){QxWidget.call(this);this.setCanSelect(false);this.setOverflow("auto");this.setTabIndex(1);this._manager=new QxSelectionManager(this);this.addEventListener("mouseover",this._onmouseover);this.addEventListener("mousedown",this._g1);this.addEventListener("mouseup",this._g2);this.addEventListener("click",this._g3);this.addEventListener("dblclick",this._ondblclick);this.addEventListener("keydown",this._g4);this.addEventListener("keypress",this._g6);};QxList.extend(QxWidget,"QxList");QxList.addProperty({name:"enableInlineFind",type:Boolean,defaultValue:true});proto.isFocusRoot=function(){return true;};proto._pressedString="";proto._visualizeBlur=function(){};proto._visualizeFocus=function(){};proto.getManager=function(){return this._manager;};proto.getListItemTarget=function(vItem){while(vItem!=null&&vItem.getParent()!=this){vItem=vItem.getParent();};return vItem;};proto.getSelectedItem=function(){return this.getSelectedItems()[0];};proto.getSelectedItems=function(){return this._manager.getSelectedItems();};proto._onmouseover=function(e){var vItem=this.getListItemTarget(e.getTarget());if(vItem){this._manager.handleMouseOver(vItem,e);};};proto._g1=function(e){var vItem=this.getListItemTarget(e.getTarget());if(vItem){this._manager.handleMouseDown(vItem,e);};};proto._g2=function(e){var vItem=this.getListItemTarget(e.getTarget());if(vItem){this._manager.handleMouseUp(vItem,e);};};proto._g3=function(e){var vItem=this.getListItemTarget(e.getTarget());if(vItem){this._manager.handleClick(vItem,e);};};proto._ondblclick=function(e){var vItem=this.getListItemTarget(e.getTarget());if(vItem){this._manager.handleDblClick(vItem,e);};};proto._g4=function(e){var kc=e.getKeyCode();if(kc==QxKeyEvent.keys.enter&&!e.getAltKey()){var items=this.getSelectedItems();var currentItem;for(var i=0;i<items.length;i++){currentItem=items[i];if(currentItem.hasEventListeners("action")){currentItem._dispachEvent(new QxEvent("action"));};};}else {this._manager.handleKeyDown(e);};};this._lastKeyPress=0;proto._g6=function(e){if(!this.getEnableInlineFind()){return;};if(((new Date).valueOf()-this._lastKeyPress)>1000){this._pressedString="";};this._pressedString+=String.fromCharCode(e.getKeyCode());var matchedItem=this.findString(this._pressedString,null);if(matchedItem){var oldVal=this._manager._getChangeValue();var oldFireChange=this._manager.getFireChange();this._manager.setFireChange(false);this._manager._j7();this._manager.setItemSelected(matchedItem,true);this._manager.setAnchorItem(matchedItem);this._manager.setLeadItem(matchedItem);matchedItem.scrollIntoView();this._manager.setFireChange(oldFireChange);if(oldFireChange&&this._manager._j8(oldVal)){this._manager._j1();};};this._lastKeyPress=(new Date).valueOf();e.preventDefault();};proto._findItem=function(vUserValue,vStartIndex,vType){var vAllItems=this.getChildren();if(vStartIndex==null){vStartIndex=vAllItems.indexOf(this.getSelectedItem());if(vStartIndex==-1){vStartIndex=0;};};var methodName="matches"+vType;for(var i=vStartIndex;i<vAllItems.length;i++){if(vAllItems[i][methodName](vUserValue)){return vAllItems[i];};};for(var i=0;i<vStartIndex;i++){if(vAllItems[i][methodName](vUserValue)){return vAllItems[i];};};return null;};proto.findString=function(vText,vStartIndex){return this._findItem(vText,vStartIndex||0,"String");};proto.findStringExact=function(vText,vStartIndex){return this._findItem(vText,vStartIndex||0,"StringExact");};proto.getPreferredHeight=function(){var ch=this.getChildren();var chl=ch.length;var sum=0;for(var i=0;i<chl;i++){sum+=ch[i].getPreferredHeight();};return sum;};function QxListItem(vText,vIcon,vValue){QxAtom.call(this,vText,vIcon);if(isValid(vValue)){this.setValue(vValue);};this.setWidth(null);this.setLeft(0);this.setRight(0);this.setCanSelect(false);this.setTimerCreate(false);};QxListItem.extend(QxAtom,"QxListItem");QxListItem.addProperty({name:"value",type:String});proto.matchesString=function(vText){return vText!=""&&this.getText().toLowerCase().indexOf(vText.toLowerCase())==0;};proto.matchesStringExact=function(vText){return vText!=""&&this.getText().toLowerCase()==String(vText).toLowerCase();};function QxComboBox(){QxWidget.call(this);this.setWidth(120);this.setHeight(22);this.setBorder(QxBorder.presets.inset);this.setTabIndex(1);this._list=new QxList();this._list.set({top:0,left:0,bottom:0,right:0,overflow:"auto",timerCreate:false});this._manager=this._list.getManager();this._manager.set({multiSelection:false,dragSelection:false});this._manager.addEventListener("changeSelection",this._onchangeselection,this);this._popup=new QxPopup();this._popup.set({autoHide:false,width:150,height:180,timerCreate:false});this._popup.add(this._list);this._atom=new QxAtom();this._atom.set({width:null,top:3,left:4,right:16,tabIndex:-1});this._textfield=new QxTextField();this._textfield.setTop((new QxClient).isGecko()?1:0);this._textfield.set({left:4,right:16,tabIndex:-1});(this.isEditable()?this._atom:this._textfield).setStyleProperty("visibility","hidden");this._button=new QxWidget();this._button.set({top:0,bottom:0,width:16,right:0,border:QxBorder.presets.outset,canSelect:false});this._buttonimage = new QxImage("widgets/arrows/down.gif", 7, 4);this._buttonimage.set({top:5,left:2});this._button.add(this._buttonimage);this.add(this._textfield,this._atom,this._button);this.addEventListener("mousedown",this._g1);this.addEventListener("mouseup",this._g2);this.addEventListener("mouseover",this._onmouseover);this.addEventListener("keydown",this._g4);this.addEventListener("keypress",this._g6);this.addEventListener("mousewheel",this._onmousewheel);};QxComboBox.extend(QxWidget,"QxComboBox");QxComboBox.addProperty({name:"editable",type:Boolean,defaultValue:false,getAlias:"isEditable"});QxComboBox.addProperty({name:"selected",type:Object});QxComboBox.addProperty({name:"value",type:Object});QxComboBox.addProperty({name:"pagingInterval",type:Number,defaultValue:10});QxComboBox.addProperty({name:"maxListHeight",type:Number,defaultValue:180});proto._modifyParent=function(_b1,_b2,_b3,_b4){if(_b1){var p=_b1.getTopLevelWidget();if(p){p.add(this._popup);};}else if(_b2){var p=_b2.getTopLevelWidget();if(p){p.remove(this._popup);};};return QxWidget.prototype._modifyParent.call(this,_b1,_b2,_b3,_b4);};proto._modifySelected=function(_b1,_b2,_b3,_b4){this.setValue(_b1?_b1.getText():"",_b4);if(_b1){this._manager.setSelectedItems([_b1]);}else {this._manager.deselectAll();};return true;};proto._modifyValue=function(_b1,_b2,_b3,_b4){var vText=isValid(_b1)?_b1:"";if(this.isEditable()){this._textfield.setText(vText,_b4);}else {this._atom.setText(vText,_b4);};this.setSelected(vText==""?null:this.getList().findStringExact(vText),_b4);return true;};proto._modifyEditable=function(_b1,_b2,_b3,_b4){var l=this._atom;var t=this._textfield;if(this.isCreated()){l.setVisible(!_b1);t.setVisible(_b1);if(_b1){t.setText(this.getValue());}else {l.setText(this.getValue());};}else {if(_b1){l.setStyleProperty("visibility","hidden");t.removeStyleProperty("visibility");}else {t.setStyleProperty("visibility","hidden");l.removeStyleProperty("visibility");};};this._modifyEditablePost(_b1);return true;};if((new QxClient).isMshtml()){proto._modifyEditablePost=function(_b1){var t=this._textfield;if(_b1){t.setHtmlProperty("unselectable",false);t.setHtmlProperty("tabIndex",1);}else {t.setHtmlProperty("unselectable",true);t.setHtmlProperty("tabIndex",-1);};};}else if((new QxClient).isGecko()){proto._modifyEditablePost=function(_b1){var t=this._textfield;if(_b1){t.setStyleProperty("MozUserFocus","normal");t.setStyleProperty("userFocus","normal");}else {t.setStyleProperty("MozUserFocus","ignore");t.setStyleProperty("userFocus","ignore");};};}else {proto._modifyEditablePost=function(_b1){var t=this._textfield;if(_b1){t.setStyleProperty("userFocus","normal");t.setHtmlProperty("tabIndex",1);}else {t.setStyleProperty("userFocus","ignore");t.setHtmlProperty("tabIndex",-1);};};};proto.getList=function(){return this._list;};proto.getManager=function(){return this._manager;};proto.getPopup=function(){return this._popup;};proto.getAtom=function(){return this._atom;};proto.getTextField=function(){return this._textfield;};proto.getButton=function(){return this._button;};proto.getButtonImage=function(){return this._buttonimage;};proto.createPopup=function(){var p=this._popup;if(!p.isCreated()){p.setLeft(this.getComputedPageBoxLeft()+1);p.setTop(this.getComputedPageBoxBottom());p.setWidth(this.getComputedBoxWidth()-2);};var pa=this.getParent();var pt=pa?pa.getTopLevelWidget():null;if(pt){pt.add(p);};if(!p.isCreated()){p._createElement();p.setVisible(false);};};proto._togglePopup=function(){if(this._popup.getVisible()){this._closePopup();if(!this.getEditable()){this.setState("mark");};}else {this._openPopup();};};proto._openPopup=function(){var p=this._popup;var l=this._list;var m=this._manager;this.createPopup();var lh=l.getPreferredHeight();var mh=this.getMaxListHeight();if(lh>mh){p.setHeight(mh);l.setOverflow("scrollY");}else {p.setHeight(lh);l.setOverflow("hidden");};p.setLeft(this.getComputedPageBoxLeft()+1);p.setTop(this.getComputedPageBoxBottom());p.setWidth(this.getComputedBoxWidth()-2);if(this.isEditable()){var vFound=this._findMatchingEditItem();if(vFound){m.setSelectedItem(vFound);}else {var oldFireChange=m.getFireChange();m.setFireChange(false);m.deselectAll();m.setLeadItem(null);m.setFireChange(oldFireChange);};};var vCurrent=this._manager.getSelectedItem();if(vCurrent){m.setLeadItem(vCurrent);m.scrollItemIntoView(vCurrent);};this.setCapture(true);this.setState(null);p.setVisible(true);};proto._closePopup=function(){var vCurrent=this._manager.getSelectedItem();if(!(vCurrent==null&&this.getEditable())){this.setSelected(vCurrent);this._manager.setLeadItem(vCurrent);};this.setCapture(false);this._popup.setVisible(false);};proto._g1=function(e){var t=e.getActiveTarget();if(typeof t=="undefined"){return;};if(t instanceof QxImage){t=t.getParent();};if(t instanceof QxListItem){if(!t.isEnabled()){return;};t=t.getParent();};switch(t){case this._textfield:return;case this:case this._atom:case this._button:case this._buttonimage:this._togglePopup();this._button.setBorder(QxBorder.presets.inset);break;case this._list:if(this.getEditable()&&!this._findMatchingEditItem()){this.setSelected(null);};this._list._g1(e);if(e.getTarget()!=this._list){this._closePopup();};break;case this._popup:break;default:var sel=this.getSelected();this._manager.deselectAll();if(sel){this._manager.setSelectedItem(sel);};this._closePopup();break;};};proto._g2=function(e){this._button.setBorder(QxBorder.presets.outset);};proto._findMatchingEditItem=function(){return this._list.findStringExact(this._textfield.getElement().value);};proto._g4=function(e){var m=this._manager;if(this._popup.getVisible()){if(e.getKeyCode()==QxKeyEvent.keys.enter){this.setSelected(this._manager.getSelectedItem());this._closePopup();return;}else if(e.getKeyCode()==QxKeyEvent.keys.esc){m.setSelectedItem(this.getSelected());m.setLeadItem(this.getSelected());this._popup.setVisible(false);this.setCapture(false);return;};}else if(e.getKeyCode()==QxKeyEvent.keys.enter){this._openPopup();};if(!this._popup.getVisible()&&e.getKeyCode()==QxKeyEvent.keys.pageup){var vPrevious;var vTemp=this.getSelected();if(vTemp){var vInterval=this.getPagingInterval();do{vPrevious=vTemp;}while(--vInterval&&(vTemp=m.getPrevious(vPrevious)));}else {vPrevious=m.getLast();};this.setSelected(vPrevious);}else if(!this._popup.getVisible()&&e.getKeyCode()==QxKeyEvent.keys.pagedown){var vNext;var vTemp=this.getSelected();if(vTemp){var vInterval=this.getPagingInterval();do{vNext=vTemp;}while(--vInterval&&(vTemp=m.getNext(vNext)));}else {vNext=m.getFirst();};this.setSelected(vNext);}else if(!this.isEditable()||this._popup.getVisible()){this._list._g4(e);}else if(e.getKeyCode()==QxKeyEvent.keys.up||e.getKeyCode()==QxKeyEvent.keys.down){var vFound=this._findMatchingEditItem();if(vFound){m.setSelectedItem(vFound);m.setLeadItem(vFound);}else {m.deselectAll();m.setLeadItem(null);};this._list._g4(e);}else if(this._popup.isCreated()&&(e.getKeyCode()==QxKeyEvent.keys.pageup||e.getKeyCode()==QxKeyEvent.keys.pagedown)){var vFound=this._findMatchingEditItem();if(vFound){m.setSelectedItem(vFound);m.setLeadItem(vFound);}else {m.deselectAll();m.setLeadItem(null);};this._list._g4(e);};};proto._g6=function(e){if(!this.isEditable()||this._popup.getVisible()){this._list._g6(e);};};proto._onmouseover=function(e){var t=e.getTarget();if(t instanceof QxImage){t=t.getParent();};if(t instanceof QxListItem&&t.getEnabled()){var m=this._manager;m.deselectAll();m.setLeadItem(t);m.setSelectedItem(t);};};proto._onmousewheel=function(e){if(!this._popup.getVisible()){var toSelect;var isSelected=this.getSelected();if(e.getWheelDelta()<0){toSelect=isSelected?this._manager.getNext(isSelected):this._manager.getFirst();}else {toSelect=isSelected?this._manager.getPrevious(isSelected):this._manager.getLast();};if(toSelect){this.setSelected(toSelect);};};};proto._onchangeselection=function(e){if(!this._popup.getVisible()){this.setSelected(this._manager.getSelectedItem());};};proto._visualizeBlur=function(){this.setState(null);QxWidget.prototype._visualizeBlur.call(this);};proto.dispose=function(){if(this.getDisposed()){return;};if(this._list){this._list.dispose();this._list=null;};if(this._manager){this._manager.dispose();this._manager=null;};if(this._popup){this._popup.dispose();this._popup=null;};if(this._atom){this._atom.dispose();this._atom=null;};if(this._textfield){this._textfield.dispose();this._textfield=null;};if(this._button){this._button.dispose();this._button=null;};if(this._buttonimage){this._buttonimage.dispose();this._buttonimage=null;};return QxWidget.prototype.dispose.call(this);};function QxTabFrame(){QxWidget.call(this);this._bar=new QxTabBar;this._pane=new QxTabPane;this.add(this._pane,this._bar);this._bar.addEventListener("resizeVertical",this._pane._applyState,this._pane);};QxTabFrame.extend(QxWidget,"QxTabFrame");QxTabFrame.addProperty({name:"placeBarOnTop",type:Boolean,defaultValue:true});proto.getPane=function(){return this._pane;};proto.getBar=function(){return this._bar;};proto._modifyPlaceBarOnTop=function(_b1,_b2,_b3,_b4){this._bar.setPlaceOnTop(_b1,_b4);this._pane.setState(_b1?"bottom":"top",_b4);return true;};proto.dispose=function(){if(this.getDisposed()){return true;};if(this._bar){this._bar.removeEventListener("resizeVertical",this._pane._applyState,this._pane);this._bar.dispose();this._bar=null;};if(this._pane){this._pane.dispose();this._pane=null;};return QxWidget.prototype.dispose.call(this);};function QxTabBar(){QxWidget.call(this);this.setLeft(0);this.setRight(0);this.setHeight("auto");this._updatePlacement();this._j3();this._manager=new QxRadioButtonManager();this._manager.addEventListener("changeSelected",this._onchange,this);};QxTabBar.extend(QxWidget,"QxTabBar");QxTabBar.addProperty({name:"placeOnTop",type:Boolean,defaultValue:true});QxTabBar.addProperty({name:"alignTabsToLeft",type:Boolean,defaultValue:true});QxTabBar.addProperty({name:"activeTabHeightDiff",type:Number,defaultValue:2});QxTabBar.addProperty({name:"activeTabOverlap",type:Number,defaultValue:2});proto.getManager=function(){return this._manager;};proto._modifyPlaceOnTop=function(_b1,_b2,_b3,_b4){this.getParent().setPlaceBarOnTop(_b1,_b4);this._updatePlacement();return true;};proto._modifyAlignTabsToLeft=function(_b1,_b2,_b3,_b4){this._j3();return true;};proto._onchange=function(e){this._layoutInternalWidgets("change-active-tab");};proto._updatePlacement=function(){if(this.getPlaceOnTop()){this.setBottom(null);this.setTop(0);}else {this.setTop(null);this.setBottom(0);};this._j3();};proto._j3=function(){this.setState((this.getPlaceOnTop()?"top":"bottom")+(this.getAlignTabsToLeft()?"Left":"Right"));};proto._layoutInternalWidgets=function(_e5){this._d1(_e5);this._d2(_e5);};proto._d1=function(_e5){if(!isValidString(_e5)||_e5=="position"){return;};var vPane=this.getParent().getPane();if(!this.isCreated()||!vPane.isCreated()){return true;};if(this.getAlignTabsToLeft()){var vReset="setRight";var vSet="setLeft";var vLastLeft=vPane.getComputedBorderLeft();}else {var vReset="setLeft";var vSet="setRight";var vLastLeft=vPane.getComputedBorderRight();};var ch=this.getChildren();var chl=ch.length;var chc;var vPref;var vLeft;var vIndex;for(var i=0;i<chl;i++){chc=ch[i];if(chc instanceof QxTab&&chc.getVisible()){vPref=chc.getPreferredWidth();if(vPref==null){return true;};chc[vReset](null);if(chc.getChecked()){vLeft=vLastLeft-this.getActiveTabOverlap();vLastLeft+=vPref-(2*this.getActiveTabOverlap());vIndex=2;}else {vLeft=vLastLeft;vLastLeft+=vPref;vIndex=1;};chc[vSet](vLeft);chc.setZIndex(vIndex);};};};proto._d2=function(_e5){var vPane=this.getParent().getPane();if(!this.isCreated()||!vPane.isCreated()){return true;};var vActiveDiff=this.getActiveTabHeightDiff();var vMax=this._maxHeight;var vActiveMax=this._maxActiveHeight;if(this.getPlaceOnTop()){var vReset="setBottom";var vSet="setTop";var vPaneBorder=vPane.getComputedBorderTop();}else {var vReset="setTop";var vSet="setBottom";var vPaneBorder=vPane.getComputedBorderBottom();};var ch=this.getChildren();var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];if(chc instanceof QxTab&&chc.getVisible()){chc[vReset](null);if(chc.getChecked()){chc[vSet](0);chc.setHeight(vActiveMax);}else {chc[vSet](vActiveDiff);chc.setHeight("auto");chc.setMinHeight(vMax);};};};};proto._onnewchild=function(otherObject){this._d1("append-child");};proto._onremovechild=function(otherObject){this._d1("remove-child");};proto._innerHeightChanged=function(){this._d4Height();this._d2("inner-height");};proto._innerWidthChanged=function(){this._d4Width();this._d1("inner-width");var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderHorizontal("parent");};};proto._childOuterWidthChanged=function(vModifiedChild,_e5){return !this._wasVisible?true:this.getWidth()=="auto"?this._setChildrenDependWidth(vModifiedChild,_e5):this._d1(_e5);};proto._childOuterHeightChanged=function(vModifiedChild,_e5){return !this._wasVisible?true:this.getHeight()=="auto"?this._setChildrenDependHeight(vModifiedChild,_e5):this._d2(_e5);};proto._maxHeight=0;proto._maxActiveHeight=0;proto._d5Height=function(_e4,_e5){var vPane=this.getParent().getPane();if(!vPane.isCreated()){return null;};var ch=this.getChildren();var chl=ch.length;var maxHeight=0;for(var i=0;i<chl;i++){maxHeight=Math.max(ch[i].getPreferredHeight(),maxHeight)};this._maxHeight=maxHeight;return this._maxActiveHeight=maxHeight+this.getActiveTabHeightDiff()+(this.getPlaceOnTop()?vPane.getComputedBorderTop():vPane.getComputedBorderBottom());};proto.dispose=function(){if(this.getDisposed()){return;};if(this._manager){this._manager.dispose();this._manager=null;};this._maxHeight=this._maxActiveHeight=null;QxWidget.prototype.dispose.call(this);};function QxTabPane(){QxWidget.call(this);this.setState("bottom");this.setLeft(0);this.setRight(0);this.setBorder(QxBorder.presets.outset);};QxTabPane.extend(QxWidget,"QxTabPane");proto._modifyElement=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);return this._applyState();};proto._modifyState=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyState.call(this,_b1,_b2,_b3,_b4);return this._applyState();};proto._applyState=function(){var vParent=this.getParent();if(!vParent||!this.isCreated()||!vParent.getBar().isCreated()){return true;};var vBarHeight=vParent.getBar().getPixelOfHeight();switch(this.getState()){case "top":this.setBottom(vBarHeight-this.getComputedBorderBottom());this.setTop(0);break;default:this.setTop(vBarHeight-this.getComputedBorderTop());this.setBottom(0);};return true;};function QxTabPage(vTab){QxWidget.call(this);this.setLeft(10);this.setRight(10);this.setBottom(10);this.setTop(10);if(isValid(vTab)){this.setTab(vTab);};};QxTabPage.extend(QxWidget,"QxTabPage");QxTabPage.addProperty({name:"tab",type:Object});proto._modifyTab=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setPage(null,_b4);};if(_b1){_b1.setPage(this,_b4);};return true;};proto._shouldBecomeCreated=function(){var vTab=this.getTab();return vTab?vTab.getChecked():false;};function QxTab(vText,vIcon,vIconWidth,vIconHeight,vChecked){QxAtom.call(this,vText,vIcon,vIconWidth,vIconHeight);if(isValid(vChecked)){this.setChecked(vChecked);};this.setTabIndex(1);this.addEventListener("mousedown",this._g1);this.addEventListener("keyup",this._g5);};QxTab.extend(QxAtom,"QxTab");QxTab.addProperty({name:"page",type:Object});QxTab.addProperty({name:"group"});QxTab.addProperty({name:"name",type:String});QxTab.addProperty({name:"checked",type:Boolean});proto._modifyGroup=function(_b1,_b2,_b3,_b4){if(_b2){_b2.remove(this,_b4);};if(_b1){_b1.add(this,_b4);};return true;};proto._modifyParent=function(_b1,_b2,_b3,_b4){QxToolBarRadioButton.prototype._modifyParent.call(this,_b1,_b2,_b3,_b4);if(_b2){_b2.getManager().remove(this);};if(_b1){_b1.getManager().add(this);};return true;};proto._modifyPage=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setTab(null,_b4);};if(_b1){_b1.setTab(this,_b4);};return true;};proto._modifyChecked=function(_b1,_b2,_b3,_b4){if(this.getGroup()){this.getGroup().setSelected(this,_b4);};var vPage=this.getPage();if(vPage){vPage.setVisible(_b1);};this.setState(_b1?"checked":null,_b4);return true;};proto._visualizeFocus=function(){};proto._visualizeBlur=function(){};proto._g5=function(e){var vPrevious;switch(e.getKeyCode()){case QxKeyEvent.keys.left:vPrevious=this.getParent().getAlignTabsToLeft();break;case QxKeyEvent.keys.right:vPrevious=!this.getParent().getAlignTabsToLeft();break;default:return;};var vChild=vPrevious?this.isFirstChild()?this.getParent().getLastChild():this.getPreviousSibling():this.isLastChild()?this.getParent().getFirstChild():this.getNextSibling();vChild.setFocused(true);vChild.setChecked(true);};proto._g1=function(e){this.setFocused(true);this.setChecked(true);};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("mousedown",this._g1);this.removeEventListener("keyup",this._g5);QxAtom.prototype.dispose.call(this);};function QxBarSelectorFrame(){QxWidget.call(this);this._bar=new QxBarSelectorBar;this._pane=new QxBarSelectorPane;this.setPlaceBarOn("top");this.add(this._bar,this._pane);this._bar.addEventListener("resize",this._pane._applyState,this._pane);};QxBarSelectorFrame.extend(QxWidget,"QxBarSelectorFrame");QxBarSelectorFrame.addProperty({name:"placeBarOn",type:String});QxBarSelectorFrame.paneMap={top:"bottom",right:"left",bottom:"top",left:"right"};proto._modifyPlaceBarOn=function(_b1,_b2,_b3,_b4){this._bar.setState(_b1,_b4);this._pane.setState(QxBarSelectorFrame.paneMap[_b1],_b4);return true;};proto.getPane=function(){return this._pane;};proto.getBar=function(){return this._bar;};proto.dispose=function(){if(this.getDisposed()){return true;};if(this._bar){this._bar.dispose();this._bar=null;};if(this._pane){this._pane.dispose();this._pane=null;};return QxWidget.prototype.dispose.call(this);};function QxBarSelectorBar(){QxWidget.call(this);this._manager=new QxRadioButtonManager();};QxBarSelectorBar.extend(QxWidget,"QxBarSelectorBar");proto.getManager=function(){return this._manager;};proto._modifyState=function(_b1,_b2,_b3,_b4){var vClasses=this.getCssClassName();if(isValidString(_b2)){vClasses=vClasses.remove(this.classname+"-"+_b2.toFirstUp()," ");};if(isValidString(_b1)){vClasses=vClasses.add(this.classname+"-"+_b1.toFirstUp()," ");};this.setCssClassName(vClasses,_b4);return this._applyState();};proto._applyState=function(){this._omitRendering();this["_applyState_"+this.getState()]();this._activateRendering();return true;};proto._applyState_top=function(){this.setBottom(null);this.setWidth(null);this.setHeight("auto");this.setLeft(0);this.setRight(0);this.setTop(0);};proto._applyState_right=function(){this.setLeft(null);this.setHeight(null);this.setWidth("auto");this.setRight(0);this.setBottom(0);this.setTop(0);};proto._applyState_bottom=function(){this.setWidth(null);this.setTop(null);this.setHeight("auto");this.setLeft(0);this.setRight(0);this.setBottom(0);};proto._applyState_left=function(){this.setRight(null);this.setHeight(null);this.setWidth("auto");this.setLeft(0);this.setBottom(0);this.setTop(0);};proto._layoutInternalWidgetsRunning=false;proto._layoutInternalWidgets=proto._d1=function(_e5){if(this._layoutInternalWidgetsRunning){return true;};var vPane=this.getParent().getPane();if(!this.isCreated()||!vPane.isCreated()){return true;};this._layoutInternalWidgetsRunning=true;var ch=this.getChildren();var chl=ch.length;var chc;switch(this.getState()){case "left":case "right":for(var i=0;i<chl;i++){chc=ch[i];chc._omitRendering();chc.setWidth(null);chc.setTop(null);chc.setBottom(null);chc.setLeft(0);chc.setRight(0);chc.setHeight("auto");chc._innerWidthChanged();chc._innerHeightChanged();chc._activateRendering();};break;default:for(var i=0;i<chl;i++){chc=ch[i];chc._omitRendering();chc.setLeft(null);chc.setRight(null);chc.setHeight(null);chc.setTop(0);chc.setBottom(0);chc.setWidth("auto");chc._innerWidthChanged();chc._innerHeightChanged();chc._activateRendering();};break;};this._layoutInternalWidgetsRunning=false;};proto._d2=function(_e5){return;};proto._onnewchild=function(otherObject){this._d1("append-child");};proto._onremovechild=function(otherObject){this._d1("remove-child");};proto._innerHeightChanged=function(){this._d4Height();this._d1("inner-height");};proto._innerWidthChanged=function(){this._d4Width();};proto._childOuterWidthChanged=function(vModifiedChild,_e5){if(this._layoutInternalWidgetsRunning){return;};return !this._wasVisible?true:this.getWidth()=="auto"?this._setChildrenDependWidth(vModifiedChild,_e5):this._d1(_e5);};proto._childOuterHeightChanged=function(vModifiedChild,_e5){if(this._layoutInternalWidgetsRunning){return;};return !this._wasVisible?true:this.getHeight()=="auto"?this._setChildrenDependHeight(vModifiedChild,_e5):this._d2(_e5);};proto.dispose=function(){if(this.getDisposed()){return;};if(this._manager){this._manager.dispose();this._manager=null;};QxWidget.prototype.dispose.call(this);};function QxBarSelectorPane(){QxWidget.call(this);};QxBarSelectorPane.extend(QxWidget,"QxBarSelectorPane");proto._modifyElement=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);return this._applyState();};proto._modifyState=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyState.call(this,_b1,_b2,_b3,_b4);return this._applyState();};proto._applyState=function(){var vParent=this.getParent();if(!vParent||!this.isCreated()){return true;};var vBar=vParent.getBar();if(!vBar.isCreated()){return true;};var vTop=0,vRight=0,vBottom=0,vLeft=0;switch(this.getState()){case "top":vBottom=vBar.getComputedBoxHeight()-this.getComputedBorderBottom();break;case "right":vLeft=vBar.getComputedBoxWidth()-this.getComputedBorderLeft();break;case "left":vRight=vBar.getComputedBoxWidth()-this.getComputedBorderRight();break;default:vTop=vBar.getComputedBoxHeight()-this.getComputedBorderTop();};this.setTop(vTop);this.setRight(vRight);this.setBottom(vBottom);this.setLeft(vLeft);return true;};function QxBarSelectorPage(vTab){QxTabPage.call(this,vTab);};QxBarSelectorPage.extend(QxTabPage,"QxBarSelectorPage");function QxBarSelectorButton(vText,vIcon,vIconWidth,vIconHeight,vChecked){QxTab.call(this,vText,vIcon,vIconWidth,vIconHeight,vChecked);this.setIconPosition("top");this.setHorizontalBlockAlign("center");this.setVerticalBlockAlign("middle");};QxBarSelectorButton.extend(QxTab,"QxBarSelectorButton");proto._g5=function(e){switch(this.getParent().getState()){case "top":case "bottom":switch(e.getKeyCode()){case QxKeyEvent.keys.left:var vPrevious=true;break;case QxKeyEvent.keys.right:var vPrevious=false;break;default:return;};break;case "left":case "right":switch(e.getKeyCode()){case QxKeyEvent.keys.up:var vPrevious=true;break;case QxKeyEvent.keys.down:var vPrevious=false;break;default:return;};break;default:return;};var vChild=vPrevious?this.isFirstChild()?this.getParent().getLastChild():this.getPreviousSibling():this.isLastChild()?this.getParent().getFirstChild():this.getNextSibling();vChild.setFocused(true);vChild.setChecked(true);};function QxMenuManager(){if(QxMenuManager._instance){return QxMenuManager._instance;};QxManager.call(this);QxMenuManager._instance=this;};QxMenuManager.extend(QxManager,"QxMenuManager");proto.update=function(oTarget){var m;for(var vHash in this._objects){m=this._objects[vHash];if(!m.getAutoHide()){continue;};m.setVisible(false);};};function QxMenu(){QxPopup.call(this);this.setWidth("auto");this.setHeight(null);this.setTimerCreate(false);this.setMinWidth(120);this._openTimer=new QxTimer(this.getOpenInterval());this._openTimer.addEventListener("interval",this._onopentimer,this);this._closeTimer=new QxTimer(this.getCloseInterval());this._closeTimer.addEventListener("interval",this._onclosetimer,this);this.addEventListener("mouseover",this._onmouseover);this.addEventListener("mousemove",this._onmouseover);this.addEventListener("mouseout",this._onmouseout);this.addEventListener("keydown",this._g4);};QxMenu.extend(QxPopup,"QxMenu");QxMenu.addProperty({name:"iconContentGap",type:Number,defaultValue:4});QxMenu.addProperty({name:"textShortcutGap",type:Number,defaultValue:10});QxMenu.addProperty({name:"contentArrowGap",type:Number,defaultValue:6});QxMenu.addProperty({name:"hoverItem",type:Object});QxMenu.addProperty({name:"openItem",type:Object});QxMenu.addProperty({name:"opener",type:Object});QxMenu.addProperty({name:"parentMenu",type:Object});QxMenu.addProperty({name:"fastReopen",type:Boolean,defaultValue:false});QxMenu.addProperty({name:"openInterval",type:Number,defaultValue:250});QxMenu.addProperty({name:"closeInterval",type:Number,defaultValue:250});QxMenu.addProperty({name:"subMenuHorizontalOffset",type:Number,defaultValue:-3});QxMenu.addProperty({name:"subMenuVerticalOffset",type:Number,defaultValue:-2});QxMenu.addProperty({name:"minIconColumnWidth",type:Number,defaultValue:16});QxMenu.addProperty({name:"showIconColumnWithoutAnyIcon",type:Boolean,defaultValue:true});proto._menuManager=new QxMenuManager();proto._beforeShow=function(_b4){QxAtom.prototype._beforeShow.call(this,_b4);this._menuManager.add(this);this.bringToFront();this._makeActive();};proto._beforeHide=function(_b4){QxAtom.prototype._beforeHide.call(this,_b4);this.sendToBack();this._menuManager.remove(this);this._makeInactive();};proto._modifyHoverItem=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setState(null);};if(_b1){_b1.setState("hover");};return true;};proto._modifyOpenItem=function(_b1,_b2,_b3,_b4){var vMakeActive=false;if(_b2){var vOldSub=_b2.getMenu();if(vOldSub){vOldSub.setParentMenu(null);vOldSub.setOpener(null);vOldSub.setVisible(false);};};if(_b1){var vSub=_b1.getMenu();if(vSub){vSub.setOpener(_b1);vSub.setParentMenu(this);vSub.setTop(_b1.getComputedPageBoxTop()+this.getSubMenuVerticalOffset());vSub.setLeft(this.getComputedPageBoxLeft()+this.getComputedBoxWidth()+this.getSubMenuHorizontalOffset());vSub.setVisible(true);};};return true;};proto._modifyVisible=function(_b1,_b2,_b3,_b4){this.setHoverItem(null);this.setOpenItem(null);if(_b2){var vOpener=this.getOpener();if(vOpener&&vOpener.getState()!="hover"){vOpener.setState(null);};};return QxWidget.prototype._modifyVisible.call(this,_b1,_b2,_b3,_b4);};proto._setChildrenDependWidth=function(_e4,_e5){var vMaxPaddingLeft=0;var vMaxPaddingRight=0;var vMaxIconWidth=0;var vMaxTextWidth=0;var vMaxShortcutWidth=0;var vMaxArrowWidth=0;var vMaxTextWidth=0;var vMaxContentWidth=0;var vIconContentGap=this.getIconContentGap();var vContentArrowGap=this.getContentArrowGap();var vTextShortcutGap=this.getTextShortcutGap();var ch=this.getChildren();var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];if(chc instanceof QxMenuButton){vMaxPaddingLeft=Math.max(vMaxPaddingLeft,chc.getComputedPaddingLeft());vMaxPaddingRight=Math.max(vMaxPaddingRight,chc.getComputedPaddingRight());vMaxIconWidth=Math.max(vMaxIconWidth,chc.getNeededIconWidth());vMaxArrowWidth=Math.max(vMaxArrowWidth,chc.getNeededArrowWidth());if(chc.getNeededShortcutWidth()>0){vMaxTextWidth=Math.max(vMaxTextWidth,chc.getNeededTextWidth());vMaxShortcutWidth=Math.max(vMaxShortcutWidth,chc.getNeededShortcutWidth());}else {vMaxContentWidth=Math.max(vMaxContentWidth,chc.getNeededTextWidth());};};};if(vMaxIconWidth>0||this.getShowIconColumnWithoutAnyIcon()){vMaxIconWidth=Math.max(vMaxIconWidth,this.getMinIconColumnWidth());};vMaxContentWidth=Math.max(vMaxContentWidth,(vMaxTextWidth+vTextShortcutGap+vMaxShortcutWidth));this._childIconPosition=vMaxPaddingLeft;var vUseIconWidth=vMaxIconWidth>0?(vMaxIconWidth+vIconContentGap):0;this._childTextPosition=this._childIconPosition+vUseIconWidth;var vUseEndPos=this._childTextPosition+vMaxContentWidth;var vUseMaxArrow=vMaxArrowWidth>0?vContentArrowGap+vMaxArrowWidth:4;var vUseInnerWidth=vMaxPaddingLeft+vUseEndPos+vUseMaxArrow+vMaxPaddingRight;var vUseOuterFrame=this.getComputedBorderLeft()+this.getComputedPaddingLeft()+this.getComputedPaddingRight()+this.getComputedBorderRight();var vUseOuterWidth=vUseInnerWidth+vUseOuterFrame;var vMinWidth=this.getMinWidth();if(vMinWidth!=null&&vUseOuterWidth<vMinWidth){vUseEndPos=vMinWidth-vUseOuterFrame-vMaxPaddingLeft-vMaxPaddingRight-vUseMaxArrow;};this._childShortcutPosition=vUseEndPos-vMaxShortcutWidth;this._childArrowPosition=vUseEndPos+vContentArrowGap;this.setWidth(vUseOuterWidth,null,true);};proto._onmouseover=function(e){var vParent=this.getParentMenu();if(vParent){vParent._closeTimer.stop();var vOpener=this.getOpener();if(vOpener){vParent.setHoverItem(vOpener);};};var t=e.getActiveTarget();if(t==this){this._openTimer.stop();this._closeTimer.start();this.setHoverItem(null);return;};var vOpen=this.getOpenItem();if(vOpen){this.setHoverItem(t);this._openTimer.stop();if(t.hasMenu()){if(this.getFastReopen()){this.setOpenItem(t);this._closeTimer.stop();}else {this._openTimer.start();};}else {this._closeTimer.start();};}else {this.setHoverItem(t);this._openTimer.stop();if(t.hasMenu()){this._openTimer.start();};};};proto._onmouseout=function(e){this._openTimer.stop();var t=e.getActiveTarget();if(t!=this&&t.hasMenu()){this._closeTimer.start();};this.setHoverItem(null);};proto._onopentimer=function(e){this._openTimer.stop();var vHover=this.getHoverItem();if(vHover&&vHover.hasMenu()){this.setOpenItem(vHover);};};proto._onclosetimer=function(e){this._closeTimer.stop();this.setOpenItem(null);};proto._g4=function(e){switch(e.getKeyCode()){case QxKeyEvent.keys.up:this._g4_up(e);break;case QxKeyEvent.keys.down:this._g4_down(e);break;case QxKeyEvent.keys.left:this._g4_left(e);break;case QxKeyEvent.keys.right:this._g4_right(e);break;case QxKeyEvent.keys.enter:this._g4_enter(e);break;default:return;};e.preventDefault();};proto._g4_up=function(e){var vHover=this.getHoverItem();var vPrev=vHover?vHover.isFirstChild()?this.getLastActiveChild():vHover.getPreviousActiveSibling([QxMenuSeparator]):this.getLastActiveChild();this.setHoverItem(vPrev);};proto._g4_down=function(e){var vHover=this.getHoverItem();var vNext=vHover?vHover.isLastChild()?this.getFirstActiveChild():vHover.getNextActiveSibling([QxMenuSeparator]):this.getFirstActiveChild();this.setHoverItem(vNext);};proto._g4_left=function(e){var vOpener=this.getOpener();if(vOpener instanceof QxMenuButton){var vOpenerParent=this.getOpener().getParent();vOpenerParent.setOpenItem(null);vOpenerParent.setHoverItem(vOpener);vOpenerParent._makeActive();}else if(vOpener instanceof QxMenuBarButton){var vOpenerParent=this.getOpener().getParent();(new QxApplication).setActiveWidget(vOpenerParent);vOpenerParent._g4(e);};};proto._g4_right=function(e){var vHover=this.getHoverItem();if(vHover){var vMenu=vHover.getMenu();if(vMenu){this.setOpenItem(vHover);vMenu.setHoverItem(vMenu.getFirstChild());return;};}else if(!this.getOpenItem()){var vFirst=this.getFirstActiveChild();if(vFirst){vFirst.hasMenu()?this.setOpenItem(vFirst):this.setHoverItem(vFirst);};};var vOpener=this.getOpener();if(vOpener instanceof QxMenuBarButton){var vOpenerParent=this.getOpener().getParent();(new QxApplication).setActiveWidget(vOpenerParent);vOpenerParent._g4(e);}else if(vOpener instanceof QxMenuButton&&vHover){var vOpenerParent=vOpener.getParent();while(vOpenerParent){if(vOpenerParent instanceof QxMenuBar){(new QxApplication).setActiveWidget(vOpenerParent);vOpenerParent._g4(e);break;};try{vOpenerParent=vOpenerParent.getOpener().getParent();}catch(ex){break;};};};};proto._g4_enter=function(e){var vHover=this.getHoverItem();if(vHover){vHover.execute();};(new QxMenuManager()).update();};proto.dispose=function(){if(this.getDisposed()){return;};if(this._openTimer){this._openTimer.dispose();this._openTimer=null;};if(this._closeTimer){this._closeTimer.dispose();this._closeTimer=null;};this.removeEventListener("mouseover",this._onmouseover);this.removeEventListener("mousemove",this._onmouseover);this.removeEventListener("mouseout",this._onmouseout);this.removeEventListener("keydown",this._g4);return QxPopup.prototype.dispose.call(this);};function QxMenuButton(vText,vIcon,vCommand,vMenu){QxWidget.call(this);this.setHeight("auto");this.setLeft(0);this.setRight(0);this.setMinHeight(20);this.setTimerCreate(false);if(isValidString(vText)){this.setText(vText);};if(isValid(vIcon)){this.setIcon(vIcon);};if(isValid(vCommand)){this.setCommand(vCommand);};if(isValid(vMenu)){this.setMenu(vMenu);};this.addEventListener("mousedown",this._g1);};QxMenuButton.extend(QxWidget,"QxMenuButton");QxMenuButton.addProperty({name:"text",type:String});QxMenuButton.addProperty({name:"icon",type:String});QxMenuButton.addProperty({name:"menu",type:Object});proto._f1=null;proto._f2=null;proto._f3=null;proto._f4=null;proto._c1=false;proto._c2=false;proto._c3=false;proto._c4=false;proto._valueShortcut="";proto._modifyElement=function(_b1,_b2,_b3,_b4){if(_b1){if(this._c1&&!this._f1){this._e3Icon();};if(this._c2&&!this._f2){this._e3Text();};if(this._c3&&!this._f3){this._e3Shortcut();};if(this._c4&&!this._f4){this._e3Arrow();};};return QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){if(this._f2){this._f2.setEnabled(_b1,_b4);};if(this._f1){this._f1.setEnabled(_b1,_b4);};return QxWidget.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);};proto._modifyIcon=function(_b1,_b2,_b3,_b4){this._c1=isValid(_b1);return true;};proto._modifyText=function(_b1,_b2,_b3,_b4){this._c2=isValid(_b1);return true;};proto._modifyCommand=function(_b1,_b2,_b3,_b4){if(isValid(_b1)){this._c3=true;this._valueShortcut=_b1.toString();}else {this._c3=false;this._valueShortcut="";};return true;};proto._modifyMenu=function(_b1,_b2,_b3,_b4){this._c4=isValid(_b1);return true;};proto.hasMenu=function(){return Boolean(this.getMenu());};proto._e3Icon=function(){var i=this._f1=new QxImage();i.setSource(this.getIcon());i.setAnonymous(true);i.setEnabled(this.isEnabled());i.setParent(this);i._addCssClassName("QxMenuButtonIcon");};proto._e3Text=function(){var t=this._f2=new QxContainer();t.setHtml(this.getText());t.setAnonymous(true);t.setEnabled(this.isEnabled());t.setParent(this);t._addCssClassName("QxMenuButtonText");};proto._e3Shortcut=function(){var s=this._f3=new QxContainer();s.setHtml(this._valueShortcut);s.setAnonymous(true);s.setEnabled(this.isEnabled());s.setParent(this);s._addCssClassName("QxMenuButtonShortcut");};proto._e3Arrow=function(){var a=this._f4=new QxImage();a.setSource("widgets/arrows/next.gif");a.setAnonymous(true);a.setEnabled(this.isEnabled());a.setParent(this);a._addCssClassName("QxMenuButtonArrow");};proto._innerWidthChanged=function(){this._d4Width();this._d1("inner-width");};proto._innerHeightChanged=function(){this._d4Height();this._d2("inner-height");};proto._d1=function(_e5){var vParent=this.getParent();if(this._f1){this._f1._d3Horizontal(vParent._childIconPosition);};if(this._f2){this._f2._d3Horizontal(vParent._childTextPosition);};if(this._f3){this._f3._d3Horizontal(vParent._childShortcutPosition);};if(this._f4){this._f4._d3Horizontal(vParent._childArrowPosition);};};proto._d2=function(_e5){var vInner=this.getInnerHeight();if(this._f1){this._f1._d3Vertical((vInner-this._f1.getPreferredHeight())/2);};if(this._f2){this._f2._d3Vertical((vInner-this._f2.getPreferredHeight())/2);};if(this._f3){this._f3._d3Vertical((vInner-this._f3.getPreferredHeight())/2);};if(this._f4){this._f4._d3Vertical((vInner-this._f4.getPreferredHeight())/2);};};proto._setChildrenDependHeight=function(_e4,_e5){if(this._c1&&_e4==this._f1&&_e5=="unload"){return true;};var newHeight=this._d5Height(_e4,_e5);if(this._heightMode=="inner"&&this._heightModeValue==newHeight){switch(_e5){case "load":case "append-child":case "preferred":switch(_e4){case this._f1:case this._f2:case this._hintObject:case this._f4:return this._d2(_e5);};};}else {this.setInnerHeight(newHeight,null,true);};return true;};proto.getNeededIconWidth=function(){return this._c1?this._f1.getAnyWidth():0;};proto.getNeededTextWidth=function(){return this._c2?this._f2.getAnyWidth():0;};proto.getNeededShortcutWidth=function(){return this._c3?this._f3.getAnyWidth():0;};proto.getNeededArrowWidth=function(){return this._c4?this._f4.getAnyWidth():0;};proto._g1=function(e){this.execute();};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("mousedown",this._g1);return QxWidget.prototype.dispose.call(this);};function QxMenuCheckBox(vText,vCommand,vChecked){QxMenuButton.call(this,vText,this._source,vCommand);if(isValid(vChecked)){this.setChecked(vChecked);};};QxMenuCheckBox.extend(QxMenuButton,"QxMenuCheckBox");QxMenuCheckBox.addProperty({name:"name",type:String});QxMenuCheckBox.addProperty({name:"value",type:String});QxMenuCheckBox.addProperty({name:"checked",type:Boolean,defaultValue:false,getAlias:"isChecked"});proto._source = "widgets/menu/checkbox.gif";proto._e3Icon=function(){QxMenuButton.prototype._e3Icon.call(this);this._f1.setVisible(this.getChecked());};proto._modifyChecked=function(_b1,_b2,_b3,_b4){if(this._f1){this._f1.setVisible(_b1);};return true;};proto.execute=function(){this.setChecked(!this.getChecked());QxMenuButton.prototype.execute.call(this);};function QxMenuRadioButton(vText,vCommand,vChecked){QxMenuCheckBox.call(this,vText,vCommand,vChecked);};QxMenuRadioButton.extend(QxMenuCheckBox,"QxMenuRadioButton");QxMenuRadioButton.addProperty({name:"group"});proto._source = "widgets/menu/radiobutton.gif";proto._modifyChecked=function(_b1,_b2,_b3,_b4){if(this.getGroup()){this.getGroup().setSelected(this,_b4);};return QxMenuCheckBox.prototype._modifyChecked.call(this,_b1,_b2,_b3,_b4);};proto._modifyGroup=function(_b1,_b2,_b3,_b4){if(_b2){_b2.remove(this,_b4);};if(_b1){_b1.add(this,_b4);};return true;};proto._modifyName=function(_b1,_b2,_b3,_b4){if(this.getGroup()){this.getGroup().setName(_b1,_b4);};return true;};proto.execute=function(){this.setChecked(true);QxMenuButton.prototype.execute.call(this);};function QxMenuSeparator(){QxWidget.call(this);this.setTimerCreate(false);this._line=new QxWidget();this._line.setCssClassName("QxMenuSeparatorLine");this._line.setAnonymous(true);this._line.setTimerCreate(false);this.add(this._line);this.addEventListener("mousedown",this._g1);};QxMenuSeparator.extend(QxWidget,"QxMenuSeparator");proto.hasMenu=function(){return false;};proto._modifyState=function(){return true;};proto._g1=function(e){e.stopPropagation();};function QxMenuBar(){QxWidget.call(this);this.addEventListener("keydown",this._g4);};QxMenuBar.extend(QxWidget,"QxMenuBar");QxMenuBar.addProperty({name:"menu",type:Object});proto._modifyMenu=function(_b1,_b2,_b3,_b4){if(_b2){_b2.getOpener().setState("normal",_b4);_b2.setVisible(false,_b4);};if(_b1){var vOpener=_b1.getOpener();_b1.setLeft(vOpener.getComputedPageBoxLeft(),_b4);_b1.setTop(vOpener.getComputedPageBoxBottom(),_b4);_b1.setVisible(true,_b4);};return true;};proto._g4=function(e){switch(e.getKeyCode()){case QxKeyEvent.keys.left:this._g4_left(e);break;case QxKeyEvent.keys.right:this._g4_right(e);break;};};proto._g4_left=function(e){var vMenu=this.getMenu();if(!vMenu){return;};var vOpener=vMenu.getOpener();if(!vOpener){return;};var vPrev=vOpener?vOpener.isFirstChild()?this.getLastActiveChild():vOpener.getPreviousActiveSibling():this.getLastActiveChild();vPrev.setState("pressed");var vPrevMenu=vPrev.getMenu();if(vPrevMenu){var vPrevFirst=vPrevMenu.getFirstActiveChild();if(vPrevFirst){vPrevMenu.setHoverItem(vPrevFirst);};};};proto._g4_right=function(e){var vMenu=this.getMenu();if(!vMenu){return;};var vOpener=vMenu.getOpener();if(!vOpener){return;};var vNext=vOpener?vOpener.isLastChild()?this.getFirstActiveChild():vOpener.getNextActiveSibling():this.getFirstActiveChild();vNext.setState("pressed");var vNextMenu=vNext.getMenu();if(vNextMenu){var vNextFirst=vNextMenu.getFirstActiveChild();if(vNextFirst){vNextMenu.setHoverItem(vNextFirst);};};};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("keydown",this._g4);return QxWidget.prototype.dispose.call(this);};function QxMenuBarButton(vText,vMenu){QxWidget.call(this);this.setCanSelect(false);if(isValid(vText)){this.setText(vText);};if(isValid(vMenu)){this.setMenu(vMenu);};this.addEventListener("mouseover",this._onmouseover);this.addEventListener("mouseout",this._onmouseout);this.addEventListener("mousedown",this._g1);};QxMenuBarButton.extend(QxWidget,"QxMenuBarButton");QxMenuBarButton.addProperty({name:"text",type:String});QxMenuBarButton.addProperty({name:"menu"});QxMenuBarButton.addProperty({name:"status",type:String,defaultValue:"normal"});proto._modifyElement=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);if(_b1){if(!this._textNode){this._textNode=document.createTextNode(this.getText());};_b1.appendChild(this._textNode);}else if(_b2&&this._textNode){_b2.removeChild(this._textNode);};return true;};proto._modifyState=function(_b1,_b2,_b3,_b4){var vParent=this.getParent();if(vParent.getMenu()==this.getMenu()){if(_b1==null||_b1=="hover"){vParent.setMenu(null,_b4);};}else if(_b1=="pressed"){vParent.setMenu(this.getMenu(),_b4);};return QxWidget.prototype._modifyState.call(this,_b1,_b2,_b3,_b4);};proto._modifyText=function(_b1,_b2,_b3,_b4){if(!this.isCreated()){return true;};this._textNode.nodeValue=_b1;return true;};proto._modifyMenu=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setOpener(null,_b4);};if(_b1){_b1.setOpener(this,_b4);};return true;};proto._onmouseover=function(e){var vMenu=this.getParent().getMenu();if(vMenu!=this.getMenu()){this.setState(vMenu?"pressed":"hover");};};proto._onmouseout=function(e){if(this.getState()=="hover"){this.setState(null);};};proto._g1=function(e){if(e.isNotLeftButton()){return;};this.setState(this.getState()=="pressed"?"hover":"pressed");e.setPropagationStopped(true);};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("mouseover",this._onmouseover);this.removeEventListener("mouseout",this._onmouseout);this.removeEventListener("mousedown",this._g1);QxWidget.prototype.dispose.call(this);};function QxTreeElement(vLabel){QxWidget.call(this);if(isValid(vLabel)){this.setLabel(vLabel);};this.setTagName("li");var im=new QxImageManager();this._navigationLineURI = im.buildURI("widgets/tree/line.gif");this._navigationCrossURI = im.buildURI("widgets/tree/cross.gif");this._navigationCrossPlusURI = im.buildURI("widgets/tree/cross_plus.gif");this._navigationCrossMinusURI = im.buildURI("widgets/tree/cross_minus.gif");this._navigationEndURI = im.buildURI("widgets/tree/end.gif");this._navigationEndPlusURI = im.buildURI("widgets/tree/end_plus.gif");this._navigationEndMinusURI = im.buildURI("widgets/tree/end_minus.gif");this._navigationSimplePlusURI = im.buildURI("widgets/tree/plus.gif");this._navigationSimpleMinusURI = im.buildURI("widgets/tree/minus.gif");this.addEventListener("click",this._g3);this.addEventListener("dblclick",this._ondblclick);this.addEventListener("mousedown",this._g1);this.addEventListener("mouseover",this._onmouseover);this.addEventListener("mouseout",this._onmouseout);this.addEventListener("mousemove",this._onmouseover);};QxTreeElement.extend(QxWidget,"QxTreeElement");QxTreeElement._indentCache=[];QxTreeElement.addProperty({name:"label",type:String});QxTreeElement.addProperty({name:"level",type:Number,defaultValue:1});QxTreeElement.addProperty({name:"active",type:Boolean,defaultValue:false});QxTreeElement.addProperty({name:"parentTree"});proto._obtainLastChildState=function(){this._renderImplNavigation();};proto._loseLastChildState=function(){this._renderImplNavigation();};proto.getOpen=function(){return false;};proto._shouldBecomeCreated=function(){return this.getParent().getOpen();};proto._modifyParent=function(_b1,_b2,_b3,_b4){if(_b1){this.setParentTree(_b1.getParentTree(),_b4);this.setLevel(_b1.getLevel()+1);}else {this.setParentTree(null,_b4);};QxWidget.prototype._modifyParent.call(this,_b1,_b2,_b3,_b4);if(_b1&&this.isCreated()){this._renderImplIndent();this._renderImplNavigation();};return true;};proto._modifyElement=function(_b1,_b2,_b3,_b4){this._table=QxTreeElement._h3.cloneNode(true);this._tableRow=this._table.firstChild.firstChild;this._indentCell=this._tableRow.childNodes[0];this._navigationCell=this._tableRow.childNodes[1];this._navigationImage=this._navigationCell.firstChild;this._iconCell=this._tableRow.childNodes[2];this._iconImage=this._iconCell.firstChild;this._labelCell=this._tableRow.childNodes[3];this._renderImplIndent();this._renderImplNavigation();this._renderImplIcon();this._renderImplLabel();_b1.appendChild(this._table);QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);return true;};proto._modifyParentTree=function(_b1,_b2,_b3,_b4){if(this.isCreated()&&!_b2&&_b1){this._renderImplNavigation();this._renderImplIndent();};return true;};proto._modifyActive=function(_b1,_b2,_b3,_b4){var p=this.getParentTree();var c="QxTreeElementLabelCellSelected";if(_b1){QxDOM.addClass(this._labelCell,c);if(p){p.setActiveElement(this,_b4);};}else {QxDOM.removeClass(this._labelCell,c);if(p){p.setActiveElement(null,_b4);};};return true;};proto._modifyLabel=function(_b1,_b2,_b3,_b4){return this._renderImplLabel();};proto._renderImplLabel=function(){if(!this.isCreated()){return true;};var vLabel=this.getLabel();if(vLabel){this._labelCell.firstChild.nodeValue=vLabel;this._table.style.display="block";}else {this._table.style.display="none";};return true;};proto._renderImplIcon=function(){if(!this.isCreated()){return true;};this._iconImage.src=(new QxImageManager).getBlank();return true;};proto._renderImplNavigation=function(){if(!this.isCreated()){return true;};var vParentTree=this.getParentTree();if(!vParentTree){return true;};var newSrc;if(!vParentTree.useTreeLines()){newSrc=(new QxImageManager).getBlank();}else if(this.isLastChild()){newSrc=this._navigationEndURI;}else {newSrc=this._navigationCrossURI;};if(newSrc!=this._navigationImage.src){this._navigationImage.src=newSrc;};return true;};proto._modifyLevel=function(_b1,_b2,_b3,_b4){return this._renderImplIndent();};proto._renderImplIndent=function(){if(!this.isCreated()){return true;};var vParentTree=this.getParentTree();if(!vParentTree){return true;};var vLevel=this.getLevel();if(vLevel==0){return true;};var vParent=this.getParent();if(!vParent){return true;};var chl=this._indentCell.childNodes.length;vLevel--;if(vLevel>chl){var diff=vLevel-chl;var io;do{if(QxTreeElement._indentCache.length>0){this._indentCell.appendChild(QxTreeElement._indentCache.shift());}else {io=new Image();io.src=(new QxImageManager).getBlank();this._indentCell.appendChild(io);};}while(--diff);}else if(vLevel<chl){var diff=chl-vLevel;do{QxTreeElement._indentCache.push(this._indentCell.removeChild(this._indentCell.lastChild));}while(--diff);};var chl=this._indentCell.childNodes.length;if(vLevel<1){return true;};var chI,nI;var vNoLines=!vParentTree.useTreeLines();do{chI=this._indentCell.childNodes[vLevel-1];if(vNoLines||vParent.isLastChild()){nI=(new QxImageManager).getBlank();}else {nI=this._navigationLineURI;};if(nI!=chI.src){chI.src=nI;};vParent=vParent.getParent();if(!vParent){break;};}while(--vLevel);return true;};proto._g1=function(e){switch(e.getDomTargetByTagName("TD",this.getElement())){case this._indentCell:return this._g1Indent(e);case this._navigationCell:return this._g1Navigation(e);case this._iconCell:return this._g1Icon(e);case this._labelCell:return this._g1Label(e);};};proto._g1Indent=function(e){e.preventDefault();};proto._g1Navigation=function(e){e.preventDefault();};proto._g1Icon=function(e){this.setActive(true);e.preventDefault();};proto._g1Label=function(e){this.setActive(true);};proto._g3=function(e){switch(e.getDomTargetByTagName("TD",this.getElement())){case this._indentCell:return this._g3Indent(e);case this._navigationCell:return this._g3Navigation(e);case this._iconCell:return this._g3Icon(e);case this._labelCell:return this._g3Label(e);};};proto._g3Indent=proto._g3Navigation=function(e){};proto._g3Icon=proto._g3Label=function(e){if(this.getParentTree().useDoubleClick()){return;};this.setActive(true);};proto._ondblclick=function(e){var pt=this.getParentTree();if(pt&&!pt.useDoubleClick()){return;};switch(e.getDomTargetByTagName("TD",this.getElement())){case this._indentCell:return this._ondblclickIndent(e);case this._navigationCell:return this._ondblclickNavigation(e);case this._iconCell:return this._ondblclickIcon(e);case this._labelCell:return this._ondblclickLabel(e);};};proto._ondblclickIndent=proto._ondblclickNavigation=proto._ondblclickIcon=proto._ondblclickLabel=function(e){};proto._hoverClass="QxTreeElementLabelCellHover";proto._onmouseover=function(e){var pt=this.getParentTree();if(pt&&pt.useHoverEffects()){switch(e.getDomTargetByTagName("TD")){case this._labelCell:case this._iconCell:QxDOM.addClass(this._labelCell,this._hoverClass);break;default:QxDOM.removeClass(this._labelCell,this._hoverClass);};e.setPropagationStopped(true);};};proto._onmouseout=function(e){var pt=this.getParentTree();if(pt&&pt.useHoverEffects()){QxDOM.removeClass(this._labelCell,this._hoverClass);e.setPropagationStopped(true);};};proto._removeHover=function(){if(this.isCreated()){QxDOM.removeClass(this._labelCell,this._hoverClass);};};proto.dispose=function(){if(this._disposed){return;};QxWidget.prototype.dispose.call(this);this.removeEventListener("click",this._g3);this.removeEventListener("dblclick",this._ondblclick);};QxTreeElement.init=function(){var lt,lb,lr;var lt1,lt2,lt3,lt4;var li2;lt=QxTreeElement._h3=document.createElement("table");lt.border=0;lt.cellSpacing=0;lt.cellPadding=0;lb=document.createElement("tbody");lt.appendChild(lb);lr=document.createElement("tr");lb.appendChild(lr);lt1=document.createElement("td");lr.appendChild(lt1);lt1.className="QxTreeElementIndentCell";lt2=document.createElement("td");lr.appendChild(lt2);lt2.className="QxTreeElementNavigationCell";li2=new Image();li2.src=(new QxImageManager).getBlank();li2.height=16;li2.width=19;lt2.appendChild(li2);lt3=document.createElement("td");lr.appendChild(lt3);lt3.className="QxTreeElementIconCell";li3=new Image();li3.src=(new QxImageManager).getBlank();li3.height=16;li3.width=16;lt3.appendChild(li3);lt4=document.createElement("td");lr.appendChild(lt4);lt4.className="QxTreeElementLabelCell";lt4.appendChild(document.createTextNode("-"));if((new QxClient).isMshtml()){lt.unselectable=lb.unselectable=lr.unselectable=lt1.unselectable=lt2.unselectable=lt3.unselectable=lt4.unselectable=li2.unselectable="on";};};QxTreeElement.init();function QxTreeFile(vLabel,vIconURI){if(isValid(vIconURI)){this.setIconURI(vIconURI);};QxTreeElement.call(this,vLabel);};QxTreeFile.extend(QxTreeElement,"QxTreeFile");QxTreeFile.addProperty({ name : "iconURI", type : String, defaultValue : "icons/16/doc.png" });proto._renderImplIcon=function(){if(!this.isCreated()){return true;};this._iconImage.src=(new QxImageManager).buildURI(this.getIconURI());return true;};function QxTreeFolder(vLabel,vIconOpenURI,vIconCloseURI){if(isValid(vIconOpenURI)){this.setIconOpenURI(vIconOpenURI);};if(isValid(vIconCloseURI)){this.setIconCloseURI(vIconCloseURI);};QxTreeElement.call(this,vLabel,this._closeIcon);};QxTreeFolder.extend(QxTreeElement,"QxTreeFolder");QxTreeFolder.addProperty({name:"open",type:Boolean,defaultValue:false});QxTreeFolder.addProperty({ name : "iconOpenURI", type : String, defaultValue : "icons/16/folder_open.png" });QxTreeFolder.addProperty({ name : "iconCloseURI", type : String, defaultValue : "icons/16/folder.png" });proto._obtainLastChildState=function(){this._renderImplNavigation();this._renderImplIndent();};proto._loseLastChildState=function(){if(this.getParent()){this._renderImplNavigation();this._renderImplIndent();};};proto._obtainFirstChild=function(){this._renderImplNavigation();};proto._loseAllChilds=function(){switch(this.getOpen()){case true:this.setOpen(false);break;case false:this._renderImplNavigation();break;};};proto._modifyParentTree=function(_b1,_b2,_b3,_b4){QxTreeElement.prototype._modifyParentTree.call(this,_b1,_b2,_b3,_b4);var ch=this.getChildren();var chl=ch.length;for(var i=0;i<chl;i++){ch[i].setParentTree(_b1,_b4);};return true;};proto._modifyLevel=function(_b1,_b2,_b3,_b4){var ch=this.getChildren();var chl=ch.length;for(var i=0;i<chl;i++){ch[i].setLevel(_b1+1,_b4);};return true;};proto._modifyElement=function(_b1,_b2,_b3,_b4){this._subList=document.createElement("ul");QxTreeElement.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);_b1.appendChild(this._subList);return true;};proto._getParentNodeForChild=function(oo){if(oo!=null&&oo instanceof QxTreeElement){return this._subList;};return QxTreeElement.prototype._getParentNodeForChild.call(this,oo);};proto._wasOpen=false;proto._invalidIndent=false;proto._modifyOpen=function(_b1,_b2,_b3,_b4){if(!this.isCreated()){return true;};if(_b1){this._subList.style.display="block";if(this._invalidChildrenIndent){this._renderImplIndent();this._invalidChildrenIndent=false;};if(this._invalidChildrenLines){this._updateTreeLines();};this._createChildren();this._renderImplNavigation();this._renderImplIcon();this._wasOpen=true;}else {this._subList.style.display="none";this._renderImplNavigation();this._renderImplIcon();this._removeHover();};return true;};proto._removeHover=function(){var ch=this.getChildren();var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._removeHover();};QxTreeElement.prototype._removeHover.call(this);};proto._invalidChildrenLines=false;proto._updateTreeLines=function(){var ch=this.getChildren();var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];chc._renderImplNavigation();chc._renderImplIndent();if(chc instanceof QxTreeFolder&&chc.isCreated()){if(chc.getOpen()){chc._updateTreeLines();}else {chc._invalidChildrenLines=true;};}else {chc._invalidChildrenLines=false;};};this._invalidChildrenLines=false;};proto._renderImplNavigation=function(){if(!this.isCreated()){return true;};var vParentTree=this.getParentTree();if(!vParentTree){return true;};var newSrc;if(!vParentTree.useTreeLines()){if(!this.hasChildren()){newSrc=(new QxImageManager).getBlank();}else if(this.getOpen()){newSrc=this._navigationSimpleMinusURI;}else {newSrc=this._navigationSimplePlusURI;};}else if(this.isLastChild()){if(!this.hasChildren()){newSrc=this._navigationEndURI;}else if(this.getOpen()){newSrc=this._navigationEndMinusURI;}else {newSrc=this._navigationEndPlusURI;};}else {if(!this.hasChildren()){newSrc=this._navigationCrossURI;}else if(this.getOpen()){newSrc=this._navigationCrossMinusURI;}else {newSrc=this._navigationCrossPlusURI;};};if(newSrc!=this._navigationImage.src){this._navigationImage.src=newSrc;};return true;};proto._renderImplIcon=function(){if(!this.isCreated()){return true;};var newSrc=(new QxImageManager).buildURI(this.getActive()?this.getIconOpenURI():this.getIconCloseURI());if(newSrc!=this._iconImage.src){this._iconImage.src=newSrc;};return true;};proto._modifyActive=function(_b1,_b2,_b3,_b4){QxTreeElement.prototype._modifyActive.call(this,_b1,_b2,_b3,_b4);return this._renderImplIcon();};proto._renderImplIndent=function(){if(!this.isCreated()){return true;};QxTreeElement.prototype._renderImplIndent.call(this);if(!this.hasChildren()){}else if(this.getOpen()){this._renderImplChildrenIndent();}else if(this._wasOpen){this._invalidChildrenIndent=true;};return true;};proto._renderImplChildrenIndent=function(){var ch=this.getChildren();var chl=ch.length-1;if(chl>-1){do{ch[chl]._renderImplIndent();}while(chl--);};this._invalidChildrenIndent=false;};proto._shouldBecomeChilds=function(){return this.getOpen();};proto._g3Navigation=function(e){if(this.hasChildren()){this.setOpen(!this.getOpen());};};proto._g3Label=function(e){QxTreeElement.prototype._g3Label.call(this,e);if(this.getParentTree().useDoubleClick()||this.getChildrenLength()==0){this.setActive(true);}else {this.setOpen(true);};};proto._g3Icon=function(e){QxTreeElement.prototype._g3Icon.call(this,e);if(this.getParentTree().useDoubleClick()||this.getChildrenLength()==0){this.setActive(true);}else {this.setOpen(true);};};proto._ondblclickLabel=function(e){QxTreeElement.prototype._ondblclickLabel.call(this,e);this.setOpen(!this.getOpen());};proto._ondblclickIcon=function(e){QxTreeElement.prototype._ondblclickIcon.call(this,e);this.setOpen(!this.getOpen());};function QxTree(vLabel,vIconOpenURI,vIconCloseURI){if(isValid(vLabel)){QxTreeFolder.call(this,vLabel,vIconOpenURI,vIconCloseURI);}else{QxTreeElement.call(this);};this.setTagName("div");this.setLevel(0);this.setParentTree(this);this.setTabIndex(1);this.setOpen(true);this.addEventListener("keydown",this._g4);};QxTree.extend(QxTreeFolder,"QxTree");QxTree.addProperty({name:"activeElement"});QxTree.addProperty({name:"useDoubleClick",type:Boolean,defaultValue:false,getAlias:"useDoubleClick"});QxTree.addProperty({name:"useHoverEffects",type:Boolean,defaultValue:true,getAlias:"useHoverEffects"});QxTree.addProperty({name:"useTreeLines",type:Boolean,defaultValue:true,getAlias:"useTreeLines"});QxTree.isTreeFolder=function(vObject){return vObject&&vObject instanceof QxTreeFolder&&!(vObject instanceof QxTree);};QxTree.isOpenTreeFolder=function(vObject){return vObject instanceof QxTreeFolder&&vObject.getOpen()&&vObject.getChildrenLength()>0;};proto._modifyParent=function(_b1,_b2,_b3,_b4){return QxWidget.prototype._modifyParent.call(this,_b1,_b2,_b3,_b4);};proto._modifyElement=function(_b1,_b2,_b3,_b4){QxTreeFolder.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);this._indentCell.style.display=this._navigationCell.style.display="none";this._renderImplLabel(this.getLabel());this._renderImplIcon();return true;};proto._modifyActiveElement=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setActive(false,_b4);};if(_b1){_b1.setActive(true,_b4);};return true;};proto._modifyUseTreeLines=function(_b1,_b2,_b3,_b4){if(this.isCreated()){this._updateTreeLines();};return true;};proto._shouldBecomeCreated=function(){return true;};proto._g4=function(e){e.preventDefault();var aE=this.getActiveElement();switch(e.getKeyCode()){case QxKeyEvent.keys.left:if(QxTree.isTreeFolder(aE)){if(!aE.getOpen()){var vParent=aE.getParent();if(vParent instanceof QxTreeFolder){if(!(vParent instanceof QxTree)){vParent.setOpen(false);};this.setActiveElement(vParent);};}else {return aE.setOpen(false);};}else if(aE instanceof QxTreeFile){var vParent=aE.getParent();if(vParent instanceof QxTreeFolder){if(!(vParent instanceof QxTree)){vParent.setOpen(false);};this.setActiveElement(vParent);};};break;case QxKeyEvent.keys.right:if(QxTree.isTreeFolder(aE)){return aE.setOpen(true);};break;case QxKeyEvent.keys.enter:if(QxTree.isTreeFolder(aE)){return aE.setOpen(!aE.getOpen());};break;case QxKeyEvent.keys.up:if(aE){if(aE.isFirstChild()){if(aE.getParent()instanceof QxTreeFolder){this.setActiveElement(aE.getParent());}else {this.setActiveElement(this.getLastTreeChild());};}else {var vPrev=aE.getPreviousSibling();while(vPrev instanceof QxTreeElement){if(QxTree.isOpenTreeFolder(vPrev)){vPrev=vPrev.getLastChild();}else {break;};};this.setActiveElement(vPrev);};}else {var vLast=this.getLastTreeChild();if(vLast){this.setActiveElement(vLast);};};break;case QxKeyEvent.keys.down:if(aE){if(QxTree.isOpenTreeFolder(aE)){this.setActiveElement(aE.getFirstChild());}else if(aE.isLastChild()){var vCurrent=aE;while(vCurrent.isLastChild()){vCurrent=vCurrent.getParent();if(!vCurrent instanceof QxTreeElement){return this.setActiveElement(this.getFirstTreeChild());};};if(vCurrent instanceof QxTreeElement&&vCurrent.getNextSibling()&&vCurrent.getNextSibling()instanceof QxTreeElement){return this.setActiveElement(vCurrent.getNextSibling());};this.setActiveElement(this.getFirstTreeChild());}else {this.setActiveElement(aE.getNextSibling());};}else {var vFirst=this.getFirstTreeChild();if(vFirst){this.setActiveElement(vFirst);};};break;};(new QxApplication).setActiveWidget(this);};proto.getLastTreeChild=function(){var vLast=this;while(vLast instanceof QxTreeElement){if(!(vLast instanceof QxTreeFolder)||!vLast.getOpen()){return vLast;};vLast=vLast.getLastChild();};};proto.getFirstTreeChild=function(){return this;};proto._renderImplNavigation=function(){return true;};proto._renderImplIndent=function(){return true;};proto._visualizeFocus=function(){return true;};proto._visualizeBlur=function(){return true;};function QxRangeManager(){QxTarget.call(this);};QxRangeManager.extend(QxManager,"QxRangeManager");QxRangeManager.addProperty({name:"value",type:Number,defaultValue:0});QxRangeManager.addProperty({name:"min",type:Number,defaultValue:0});QxRangeManager.addProperty({name:"max",type:Number,defaultValue:100});proto._checkValue=function(_b1){return Math.max(this.getMin(),Math.min(this.getMax(),Math.floor(_b1)));};proto._modifyValue=function(_b1,_b2,_b3,_b4){if(this.hasEventListeners("change")){this.dispatchEvent(new QxEvent("change"));};return true;};proto._checkMax=function(_b1){return Math.floor(_b1);};proto._modifyMax=function(_b1,_b2,_b3,_b4){this.setValue(Math.min(this.getValue(),_b1));if(this.hasEventListeners("change")){this.dispatchEvent(new QxEvent("change"));};return true;};proto._checkMin=function(_b1){return Math.floor(_b1);};proto._modifyMin=function(_b1,_b2,_b3,_b4){this.setValue(Math.max(this.getValue(),_b1));if(this.hasEventListeners("change")){this.dispatchEvent(new QxEvent("change"));};return true;};function QxSpinner(min,value,max){QxWidget.call(this);this.setWidth(60);this.setHeight(22);this.setBorder(QxBorder.presets.inset);this.setTabIndex(-1);this._manager=new QxRangeManager();this._textfield=new QxTextField();this._textfield.set({left:0,right:16,bottom:0,top:0,textAlign:"right",text:this._manager.getValue()});this.add(this._textfield);this._upbutton=new QxWidget();this._upbutton.set({top:0,bottom:"50%",width:16,right:0,border:QxBorder.presets.outset,canSelect:false});this._upbuttonimage = new QxImage("widgets/arrows/up_small.gif", 5, 3);this._upbuttonimage.set({top:1,left:3,anonymous:true});this._upbutton.add(this._upbuttonimage);this.add(this._upbutton);this._downbutton=new QxWidget();this._downbutton.set({top:"50%",bottom:0,width:16,right:0,border:QxBorder.presets.outset,canSelect:false});this._downbuttonimage = new QxImage("widgets/arrows/down_small.gif", 5, 3);this._downbuttonimage.set({top:1,left:3,anonymous:true});this._downbutton.add(this._downbuttonimage);this.add(this._downbutton);this._timer=new QxTimer(this.getInterval());this.addEventListener("keypress",this._g6,this);this.addEventListener("keydown",this._g4,this);this.addEventListener("keyup",this._g5,this);this.addEventListener("mousewheel",this._onmousewheel,this);this._textfield.addEventListener("input",this._oninput,this);this._textfield.addEventListener("blur",this._onblur,this);this._upbutton.addEventListener("mousedown",this._g1,this);this._downbutton.addEventListener("mousedown",this._g1,this);this._manager.addEventListener("change",this._onchange,this);this._timer.addEventListener("interval",this._i7,this);if(isValidNumber(min)){this.setMin(min);};if(isValidNumber(max)){this.setMax(max);};if(isValidNumber(value)){this.setValue(value);};};QxSpinner.extend(QxWidget,"QxSpinner");QxSpinner.addProperty({name:"incrementAmount",type:Number,defaultValue:1});QxSpinner.addProperty({name:"wheelIncrementAmount",type:Number,defaultValue:1});QxSpinner.addProperty({name:"pageIncrementAmount",type:Number,defaultValue:10});QxSpinner.addProperty({name:"interval",type:Number,defaultValue:100});QxSpinner.addProperty({name:"firstInterval",type:Number,defaultValue:500});QxSpinner.addProperty({name:"minTimer",type:Number,defaultValue:20});QxSpinner.addProperty({name:"timerDecrease",type:Number,defaultValue:2});QxSpinner.addProperty({name:"amountGrowth",type:Number,defaultValue:1.01});proto.getPreferredHeight=function(){return 22;};proto.getPreferredWidth=function(){return 60;};proto._g6=function(e){var vCode=e.getKeyCode();if(vCode==QxKeyEvent.keys.enter&&!e.getAltKey()){this._checkValue(true,false,false);this._textfield.selectAll();}else {switch(vCode){case QxKeyEvent.keys.up:case QxKeyEvent.keys.down:case QxKeyEvent.keys.left:case QxKeyEvent.keys.right:case QxKeyEvent.keys.shift:case QxKeyEvent.keys.ctrl:case QxKeyEvent.keys.alt:case QxKeyEvent.keys.esc:case QxKeyEvent.keys.del:case QxKeyEvent.keys.backspace:case QxKeyEvent.keys.insert:case QxKeyEvent.keys.home:case QxKeyEvent.keys.end:case QxKeyEvent.keys.pageup:case QxKeyEvent.keys.pagedown:case QxKeyEvent.keys.numlock:case QxKeyEvent.keys.tab:break;default:if(vCode>=48&&vCode<=57){return;};e.preventDefault();};};};proto._g4=function(e){var vCode=e.getKeyCode();if(this._intervalIncrease==null){switch(vCode){case QxKeyEvent.keys.up:case QxKeyEvent.keys.down:this._intervalIncrease=vCode==QxKeyEvent.keys.up;this._intervalMode="single";this._resetIncrements();this._checkValue(true,false,false);this._increment();this._timer.startWith(this.getFirstInterval());break;case QxKeyEvent.keys.pageup:case QxKeyEvent.keys.pagedown:this._intervalIncrease=vCode==QxKeyEvent.keys.pageup;this._intervalMode="page";this._resetIncrements();this._checkValue(true,false,false);this._pageIncrement();this._timer.startWith(this.getFirstInterval());break;};};};proto._g5=function(e){if(this._intervalIncrease!=null){switch(e.getKeyCode()){case QxKeyEvent.keys.up:case QxKeyEvent.keys.down:case QxKeyEvent.keys.pageup:case QxKeyEvent.keys.pagedown:this._timer.stop();this._intervalIncrease=null;this._intervalMode=null;};};};proto._g1=function(e){if(e.isNotLeftButton()){return;};this._checkValue(true);var vButton=e.getCurrentTarget();vButton.setBorder(QxBorder.presets.inset);vButton.addEventListener("mouseup",this._g2,this);vButton.addEventListener("mouseout",this._g2,this);this._intervalIncrease=vButton==this._upbutton;this._resetIncrements();this._increment();this._textfield.selectAll();this._timer.setInterval(this.getFirstInterval());this._timer.start();};proto._g2=function(e){var vButton=e.getCurrentTarget();vButton.setBorder(QxBorder.presets.outset);vButton.removeEventListener("mouseup",this._g2,this);vButton.removeEventListener("mouseout",this._g2,this);this._textfield.selectAll();this._textfield.setFocused(true);this._timer.stop();this._intervalIncrease=null;};proto._onmousewheel=function(e){this._manager.setValue(this._manager.getValue()+this.getWheelIncrementAmount()*e.getWheelDelta());this._textfield.selectAll();};proto._oninput=function(e){this._checkValue(true,true);};proto._onchange=function(e){var vValue=this._manager.getValue();this._textfield.setText(vValue);if(vValue==this.getMin()){this._downbutton.setBorder(QxBorder.presets.outset);this._downbutton.setEnabled(false);this._downbuttonimage.setEnabled(false);this._timer.stop();}else {this._downbutton.setEnabled(true);this._downbuttonimage.setEnabled(true);};if(vValue==this.getMax()){this._upbutton.setBorder(QxBorder.presets.outset);this._upbutton.setEnabled(false);this._upbuttonimage.setEnabled(false);this._timer.stop();}else {this._upbutton.setEnabled(true);this._upbuttonimage.setEnabled(true);};if(this.hasEventListeners("change")){this.dispatchEvent(new QxEvent("change"));};};proto._onblur=function(e){this._checkValue(false);};proto.setValue=function(nValue){this._manager.setValue(nValue);};proto.getValue=function(){this._checkValue(true);return this._manager.getValue();};proto.resetValue=function(){return this._manager.resetValue();};proto.setMax=function(vMax){return this._manager.setMax(vMax);};proto.getMax=function(){return this._manager.getMax();};proto.setMin=function(vMin){return this._manager.setMin(vMin);};proto.getMin=function(){return this._manager.getMin();};proto._intervalIncrease=null;proto._i7=function(e){this._timer.stop();this.setInterval(Math.max(this.getMinTimer(),this.getInterval()-this.getTimerDecrease()));if(this._intervalMode=="page"){this._pageIncrement();}else {if(this.getInterval()==this.getMinTimer()){this.setIncrementAmount(this.getAmountGrowth()*this.getIncrementAmount());};this._increment();};switch(this._intervalIncrease){case true:if(this.getValue()==this.getMax()){return;};case false:if(this.getValue()==this.getMin()){return;};};this._timer.restartWith(this.getInterval());};proto._checkValue=function(acceptEmpty,acceptEdit){var el=this._textfield.getElement();if(!el){return;};if(el.value==""){if(!acceptEmpty){el.value=this.resetValue();this._textfield.selectAll();return;};}else {var val=el.value;if(val.length>1){while(val.charAt(0)=="0"){val=val.substr(1,val.length);};var f1=parseInt(val)||0;if(f1!=el.value){el.value=f1;return;};};if(val=="-"&&acceptEmpty&&this.getMin()<0){if(el.value!=val){el.value=val;};return;};val=parseInt(val);var doFix=true;var fixedVal=this._manager._checkValue(val);if(isNaN(fixedVal)){fixedVal=this._manager.getValue();};if(acceptEmpty&&val==""){doFix=false;}else if(!isNaN(val)){if(acceptEdit){if(val>fixedVal&&!(val>0&&fixedVal<=0)&&String(val).length<String(fixedVal).length){doFix=false;}else if(val<fixedVal&&!(val<0&&fixedVal>=0)&&String(val).length<String(fixedVal).length){doFix=false;};};};if(doFix&&el.value!=fixedVal){el.value=fixedVal;};if(!acceptEdit){this._manager.setValue(fixedVal);};};};proto._increment=function(){this._manager.setValue(this._manager.getValue()+((this._intervalIncrease?1:-1)*this.getIncrementAmount()));};proto._pageIncrement=function(){this._manager.setValue(this._manager.getValue()+((this._intervalIncrease?1:-1)*this.getPageIncrementAmount()));};proto._resetIncrements=function(){this.resetIncrementAmount();this.resetInterval();};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("keypress",this._g6,this);this.removeEventListener("keydown",this._g4,this);this.removeEventListener("keyup",this._g5,this);if(this._textfield){this._textfield.removeEventListener("blur",this._onblur,this);this._textfield.dispose();this._textfield=null;};if(this._upbutton){this._upbutton.removeEventListener("mousedown",this._g1,this);this._upbutton.dispose();this._upbutton=null;};if(this._downbutton){this._downbutton.removeEventListener("mousedown",this._g1,this);this._downbutton.dispose();this._downbutton=null;};if(this._timer){this._timer.removeEventListener("interval",this._i7,this);this._timer.stop();this._timer.dispose();this._timer=null;};if(this._manager){this._manager.removeEventListener("change",this._onchange,this);this._manager.dispose();this._manager=null;};return QxWidget.prototype.dispose.call(this);};function QxCommand(vShortcut,vKeyCode,vManager){QxTarget.call(this);if(isValid(vShortcut)){this.setShortcut(vShortcut);};if(isValid(vKeyCode)){this.setKeyCode(vKeyCode);};this.setManager(isValid(vManager)?vManager:window.application.getClientWindow().getEventManager());};QxCommand.extend(QxTarget,"QxCommand");QxCommand.addProperty({name:"checked",type:Boolean,defaultValue:false});QxCommand.addProperty({name:"shortcut",type:String});QxCommand.addProperty({name:"keyCode",type:Number});QxCommand.addProperty({name:"manager",type:Object});proto.execute=function(vTarget){this.dispatchEvent(new QxDataEvent("execute",vTarget));return false;};proto._shortcutParts={};proto._modifyShortcut=function(_b1,_b2,_b3,_b4){if(_b1){var a = _b1.toLowerCase().split(/[-+\s]+/);var al=a.length;this._shortcutParts={};for(var i=0;i<al;i++){this._shortcutParts[a[i]]=true;};}else {this._shortcutParts=null;};return true;};proto._modifyManager=function(_b1,_b2,_b3,_b4){if(_b2){_b2.removeCommand(this);};if(_b1){_b1.addCommand(this);};return true;};proto._matchesKeyEvent=function(e){if(!(isValid(this.getShortcut())||isValid(this.getKeyCode()))){return false;};if((this._shortcutParts.shift&&!e.getShiftKey())||(this._shortcutParts.ctrl&&!e.getCtrlKey())||(this._shortcutParts.alt&&!e.getAltKey())){return false;};var vEventCode=e.getKeyCode();var vSelfCode=this.getKeyCode();switch(vSelfCode){case null:break;case vEventCode:return true;};var c=String.fromCharCode(vEventCode).toLowerCase();if(this._shortcutParts[c]){return true;};if(vSelfCode==null){for(var vPart in this._shortcutParts){switch(vPart){case "ctrl":case "shift":case "alt":case "control":break;default:if(vEventCode==QxKeyEvent.keys[vPart]){return true;};};};};return false;};proto.toString=function(){var vShortcut=this.getShortcut();var vKeyCode=this.getKeyCode();var vString="";if(isValidString(vShortcut)){vString=vShortcut;if(isValidNumber(vKeyCode)){var vTemp=QxKeyEvent.codes[vKeyCode];vString+="+"+(vTemp?vTemp.toFirstUp():String(vKeyCode));};}else if(isValidNumber(vKeyCode)){var vTemp=QxKeyEvent.codes[vKeyCode];vString=vTemp?vTemp.toFirstUp():String(vKeyCode);};return vString;};proto.dispose=function(){if(this.getDisposed()){return;};this._ownerWindow=null;return QxTarget.prototype.dispose.call(this);};function QxWindowManager(){if(QxWindowManager._instance){return QxWindowManager._instance;};QxManager.call(this);QxWindowManager._instance=this;};QxWindowManager.extend(QxManager,"QxWindowManager");QxWindowManager.addProperty({name:"activeWindow",type:Object});proto.update=function(oTarget){var m;for(var vHash in this._objects){m=this._objects[vHash];if(!m.getAutoHide()){continue;};m.setVisible(false);};};proto._modifyActiveWindow=function(_b1,_b2,_b3,_b4){(new QxPopupManager).update();if(_b1){_b1.setActive(true,_b4);};if(_b2){_b2.setActive(false,_b4);};this.sort();if(_b2&&_b2.getModal()){_b2.getTopLevelWidget().release(_b2);};if(_b1&&_b1.getModal()){_b1.getTopLevelWidget().block(_b1);};return true;};proto.compareWindows=function(w1,w2){switch((new QxWindowManager).getActiveWindow()){case w1:return 1;case w2:return-1;};return w1.getZIndex()-w2.getZIndex();};proto.sort=function(oObject){var a=[];for(var i in this._objects){a.push(this._objects[i]);};a.sort(this.compareWindows);var minz=QxWindow.prototype._minZindex;for(var l=a.length,i=0;i<l;i++){a[i].setZIndex(minz+i);};};proto.add=function(oObject){QxManager.prototype.add.call(this,oObject);this.setActiveWindow(oObject);};proto.remove=function(oObject){QxManager.prototype.remove.call(this,oObject);if(this.getActiveWindow()==oObject){var a=[];for(var i in this._objects){a.push(this._objects[i]);};var l=a.length;if(l==0){oObject.getTopLevelWidget().release(oObject);}else if(l==1){this.setActiveWindow(a[0]);}else if(l>1){a.sort(this.compareWindows);this.setActiveWindow(a[l-1]);};};};function QxWindow(vCaption,vIcon){QxPopup.call(this);this.setBorder(QxBorder.presets.outset);this.setMinWidth(200);this.setMinHeight(100);this.addEventListener("mousedown",this._onwindowmousedown,this);this.addEventListener("mouseup",this._onwindowmouseup,this);this.addEventListener("mousemove",this._onwindowmousemove,this);var c=this._frame=new QxWidget();c.set({timerCreate:false,border:QxBorder.presets.shadow});c=this._captionbar=new QxWidget;c.set({cssClassName:"QxWindowCaptionBar",top:0,left:0,right:0,height:18});c.addEventListener("mousedown",this._oncaptionmousedown,this);c.addEventListener("mouseup",this._oncaptionmouseup,this);c.addEventListener("mousemove",this._oncaptionmousemove,this);this.addToWindow(c);c=this._pane=new QxWidget;c.set({cssClassName:"QxWindowPane",top:18,bottom:0,left:0,right:0});this.addToWindow(c);if(isValidString(vIcon)){this.setIcon(vIcon);};if(isValidString(vCaption)){this.setCaption(vCaption);};};QxWindow.extend(QxPopup,"QxWindow");QxWindow.addProperty({name:"active",type:Boolean,defaultValue:false});QxWindow.addProperty({name:"modal",type:Boolean,defaultValue:false});QxWindow.addProperty({name:"opener",type:Object});QxWindow.addProperty({name:"caption",type:String});QxWindow.addProperty({name:"status",type:String,defaultValue:"Ready"});QxWindow.addProperty({name:"showClose",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"showMaximize",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"showMinimize",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"showStatusbar",type:Boolean,defaultValue:false});QxWindow.addProperty({name:"allowClose",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"allowMaximize",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"allowMinimize",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"showCaption",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"showIcon",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"resizeable",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"moveable",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"resizeMethod",type:String,defaultValue:"frame"});QxWindow.addProperty({name:"moveMethod",type:String,defaultValue:"opaque"});QxWindow.addProperty({name:"usePreferredWidthAsMin",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"usePreferredHeightAsMin",type:Boolean,defaultValue:true});proto._windowManager=new QxWindowManager();proto.getPane=function(){return this._pane;};proto.getCaptionbar=function(){return this._captionbar;};proto.getStatusbar=function(){return this._statusbar;};proto.addToWindow=proto.add;proto.addToPane=function(){this._pane.add.apply(this._pane,arguments);};proto.addToCaptionbar=function(){this._captionbar.add.apply(this._captionbar,arguments);};proto.add=proto.addToPane;proto._beforeShow=function(_b4){QxAtom.prototype._beforeShow.call(this,_b4);(new QxPopupManager).update();this._windowManager.add(this);this._makeActive();this._layoutCommands();};proto._beforeHide=function(_b4){QxAtom.prototype._beforeHide.call(this,_b4);this._windowManager.remove(this);this._makeInactive();};proto.bringToFront=proto.sendToBack=function(){throw new Error("Warning:bringToFront()and sendToBack()are not supported by QxWindow!");};proto._d1=function(){return true;};proto._d2=function(){return true;};proto._d5Width=function(){return this._pane.getAnyWidth();};proto._d5Height=function(){var h=this.getShowStatusbar()&&this._statusbar?this._statusbar.getAnyHeight():0;h+=this._pane.getAnyHeight()+this._captionbar.getAnyHeight();return h;};proto._modifyElement=function(_b1,_b2,_b3,_b4){if(_b1){this._addCssClassName("QxAtomBase");if(this._c1&&!this._icon){this._e3Icon();};if(this._displayCaption&&!this._caption){this._e3Caption();};if(this.getShowMinimize()&&!this._minimizeButton&&!this.getModal()){this._e3MinimizeButton();};if(this.getShowMaximize()&&!this.getModal()){if(!this._restoreButton){this._e3RestoreButton();};if(!this._maximizeButton){this._e3MaximizeButton();};};if(this.getShowStatusbar()){this._e3Statusbar();};if(this.getShowClose()&&!this._closeButton){this._e3CloseButton();};};return QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);};proto._setChildrenDependWidth=QxWidget.prototype._setChildrenDependWidth;proto._setChildrenDependHeight=QxWidget.prototype._setChildrenDependHeight;proto._childOuterWidthChanged=QxWidget.prototype._childOuterWidthChanged;proto._childOuterHeightChanged=QxWidget.prototype._childOuterHeightChanged;proto._d5Helper=QxWidget.prototype._d5Helper;proto._c1=false;proto._displayCaption=false;proto._modifyActive=function(_b1,_b2,_b3,_b4){if(_b1){this.addCssClassNameDetail("active");this._windowManager.setActiveWindow(this,_b4);}else {this.removeCssClassNameDetail("active");};return true;};proto._checkState=function(_b1,_b2,_b3,_b4){if(!this.getResizeable()&&(_b2!="minimized"||this._previousState!=_b1)){throw new Error("This state is not allowed:"+_b1+"!");};return _b1;};proto._modifyState=function(_b1,_b2,_b3,_b4){switch(_b1){case "minimized":this._minimize();break;case "maximized":this._maximize();break;default:this._restore();};this._previousState=_b2;return QxPopup.prototype._modifyState.call(this,_b1,_b2,_b3,_b4);};proto._modifyShowClose=function(_b1,_b2,_b3,_b4){if(_b1&&!this._closeButton){this._e3CloseButton();};this._layoutCommands();return true;};proto._modifyShowMaximize=function(_b1,_b2,_b3,_b4){if(_b1){if(!this._maximizeButton){this._e3MaximizeButton();};if(!this._restoreButton){this._e3RestoreButton();};};this._layoutCommands();return true;};proto._modifyShowMinimize=function(_b1,_b2,_b3,_b4){if(_b1&&!this._minimizeButton){this._e3MinimizeButton();};this._layoutCommands();return true;};proto._modifyResizeable=function(_b1,_b2,_b3,_b4){return this._applyAllowMaximize();};proto._modifyAllowMinimize=function(_b1,_b2,_b3,_b4){return this._applyAllowMinimize();};proto._modifyModal=function(_b1,_b2,_b3,_b4){this._applyAllowMinimize();this._applyAllowMaximize();this._layoutCommands();if(this.getActive()){this.forceModal(true);this.setVisible(false);this.forceModal(_b1);this.setVisible(true);};return true;};proto._applyAllowMinimize=function(){if(this._minimizeButton){this._minimizeButton.setEnabled(this.getAllowMinimize()&&!this.getModal());};return true;};proto._modifyAllowMaximize=function(_b1,_b2,_b3,_b4){return this._applyAllowMaximize();};proto._applyAllowMaximize=function(){var e=this.getAllowMaximize()&&this.getResizeable()&&(this.getMaxWidth()==null||this.getMaxWidth()==Infinity)&&(this.getMaxHeight()==null||this.getMaxHeight()==Infinity);if(this._maximizeButton){this._maximizeButton.setEnabled(e);};if(this._restoreButton){this._restoreButton.setEnabled(e);};return true;};proto._modifyAllowClose=function(_b1,_b2,_b3,_b4){return this._applyAllowClose();};proto._applyAllowClose=function(){if(this._closeButton){this._closeButton.setEnabled(this.getAllowClose());};return true;};proto._layoutCommands=function(){var s=0;if(this._closeButton){if(this.getShowClose()){this._closeButton.setRight(s);if(this._captionbar._wasVisible){this._closeButton.setVisible(true);};s+=this._closeButton.getWidth()+2;}else {this._closeButton.setVisible(false);};};if(this._maximizeButton&&this._restoreButton){if(this.getShowMaximize()){if(this.getState()=="maximized"){this._maximizeButton.setVisible(false);this._restoreButton.setRight(s);if(this._captionbar._wasVisible){this._restoreButton.setVisible(true);};s+=this._restoreButton.getWidth();}else {this._restoreButton.setVisible(false);this._maximizeButton.setRight(s);if(this._captionbar._wasVisible){this._maximizeButton.setVisible(true);};s+=this._maximizeButton.getWidth();};}else {this._maximizeButton.setVisible(false);this._restoreButton.setVisible(false);};};if(this._minimizeButton){if(this.getShowMinimize()){this._minimizeButton.setRight(s);if(this._captionbar._wasVisible){this._minimizeButton.setVisible(true);};}else {this._minimizeButton.setVisible(false);};};};proto._e3CloseButton=function(){var ob = this._closeButton = new QxButton(null, "widgets/window/close.gif");ob.set({top:0,height:15,width:16,tabIndex:-1});ob.addEventListener("click",this._onclosebuttonclick,this);ob.addEventListener("mousedown",this._onbuttonmousedown,this);this._applyAllowClose();this.addToCaptionbar(ob);};proto._e3MinimizeButton=function(){var ob = this._minimizeButton = new QxButton(null, "widgets/window/minimize.gif");ob.set({top:0,height:15,width:16,tabIndex:-1});ob.addEventListener("click",this._onminimizebuttonclick,this);ob.addEventListener("mousedown",this._onbuttonmousedown,this);this._applyAllowMinimize();this.addToCaptionbar(ob);};proto._e3RestoreButton=function(){var ob = this._restoreButton = new QxButton(null, "widgets/window/restore.gif");ob.set({top:0,height:15,width:16,tabIndex:-1});ob.addEventListener("click",this._onrestorebuttonclick,this);ob.addEventListener("mousedown",this._onbuttonmousedown,this);this._applyAllowMaximize();ob._shouldBecomeCreated=function(){return this.getParent().getParent().getState()=="maximized";};this.addToCaptionbar(ob);};proto._e3MaximizeButton=function(){var ob = this._maximizeButton = new QxButton(null, "widgets/window/maximize.gif");ob.set({top:0,height:15,width:16,tabIndex:-1});ob.addEventListener("click",this._onmaximizebuttonclick,this);ob.addEventListener("mousedown",this._onbuttonmousedown,this);this._applyAllowMaximize();ob._shouldBecomeCreated=function(){return this.getParent().getParent().getState()!="maximized";};this.addToCaptionbar(ob);};proto._e3Statusbar=function(){c=this._statusbar=new QxAtom;c.set({cssClassName:"QxWindowStatusBar",width:null,bottom:0,left:0,right:0,height:18,border:QxBorder.presets.thinInset,text:this.getStatus()});this.addToWindow(c);};proto._modifyStatus=function(_b1,_b2,_b3,_b4){if(this._statusbar){this._statusbar.setText(_b1,_b4);};return true;};proto._modifyShowStatusbar=function(_b1,_b2,_b3,_b4){if(_b1){this._statusbar?this.addToWindow(this._statusbar):this._e3Statusbar();this._pane.setBottom(18);}else {if(this._statusbar){this.remove(this._statusbar);};this._pane.setBottom(0);};return true;};proto._modifyCaption=function(_b1,_b2,_b3,_b4){var o=this._caption;if(this._updateUseCaption()){if(o){o.setHtml(_b1);o.setParent(this._captionbar);}else {this._e3Caption();};}else if(o){o.setParent(null);o.setHtml(_b1);};return true;};proto._updateUseCaption=function(){return this._displayCaption=this.getCaption()&&this.getShowCaption();};proto._e3Caption=function(){var o=this._caption=new QxContainer(this.getCaption());o.setTop(1);this._layoutCaption();o.setParent(this._captionbar);};proto._modifyShowCaption=function(_b1,_b2,_b3,_b4){var o=this._caption;if(this._updateUseCaption()){if(o){o.setParent(this._captionbar);}else {this._e3Caption();};}else if(o){o.setParent(null);};return true;};proto._layoutCaption=function(){if(!this._icon||!this._icon.isCreated()){return;};if(this._caption){this._caption.setLeft(this._c1?this._icon.getAnyWidth()+3:0)};};proto._modifyIcon=function(_b1,_b2,_b3,_b4){var o=this._icon;if(this._updateUseIcon()){if(o){o.setSource(_b1);o.setParent(this._captionbar);}else {this._e3Icon();};}else if(o){o.setParent(null);o.setSource(_b1);};return true;};proto._updateUseIcon=function(){return this._c1=this.getIcon()&&this.getShowIcon();};proto._e3Icon=function(){var o=this._icon=new QxImage(this.getIcon(),this.getIconWidth(),this.getIconHeight());o.setLocation(1,0);o.addEventListener("mousedown",this._oniconmousedown,this);o.addEventListener("load",this._oniconload,this);o.setParent(this._captionbar);};proto._modifyShowIcon=function(_b1,_b2,_b3,_b4){var o=this._icon;if(this._updateUseIcon()){if(o){o.setParent(this._captionbar);}else {this._e3Icon();};}else if(o){o.setParent(null);};this._layoutCaption();return true;};proto.close=function(){this.setVisible(false);};proto.open=function(vOpener){if(isValid(vOpener)){this.setOpener(vOpener);};this.setVisible(true);};proto.focus=function(){this.setActive(true);};proto.blur=function(){this.setActive(false);};proto.maximize=function(){this.setState("maximized");};proto.minimize=function(){this.setState("minimized");};proto.restore=function(){this.setState(null);};proto._previousState=null;proto._minimize=function(){this.blur();this.setVisible(false);};proto._restore=function(){if(this.getVisible()){this._omitRendering();};this.setLeft(this._previousLeft?this._previousLeft:null);this.setRight(this._previousRight?this._previousRight:null);this.setTop(this._previousTop?this._previousTop:null);this.setBottom(this._previousBottom?this._previousBottom:null);this.setWidth(this._previousWidth?this._previousWidth:null);this.setHeight(this._previousHeight?this._previousHeight:null);this.getVisible()?this._activateRendering():this.setVisible(true);this._layoutCommands();this.focus();};proto._maximize=function(){if(this.getVisible()){this._omitRendering();};this._previousLeft=this.getLeft();this._previousWidth=this.getWidth();this._previousRight=this.getRight();this._previousTop=this.getTop();this._previousHeight=this.getHeight();this._previousBottom=this.getBottom();this.setWidth(null);this.setLeft(0);this.setRight(0);this.setHeight(null);this.setTop(0);this.setBottom(0);this.getVisible()?this._activateRendering():this.setVisible(true);this._layoutCommands();this.focus();};proto._onwindowmousedown=function(e){this.focus();if(this._resizeMode){this.setCapture(true);this.getTopLevelWidget().setGlobalCursor(this.getCursor());var pa=this.getParent();var l=pa.getComputedPageAreaLeft();var t=pa.getComputedPageAreaTop();var r=pa.getComputedPageAreaRight();var b=pa.getComputedPageAreaBottom();switch(this.getResizeMethod()){case "translucent":this.setOpacity(0.5);break;case "frame":var f=this._frame;f._d3Horizontal(this.getComputedPageBoxLeft()-l);f._d3Vertical(this.getComputedPageBoxTop()-t);f._applySizeHorizontal(this.getComputedBoxWidth());f._applySizeVertical(this.getComputedBoxHeight());f.setZIndex(this.getZIndex()+1);f.setParent(this.getParent());break;};var s=this._resizeSession={};switch(this._resizeMode){case "nw":case "sw":case "w":s.boxWidth=this.getComputedBoxWidth();s.boxRight=this.getComputedPageBoxRight();case "ne":case "se":case "e":s.boxLeft=this.getComputedPageBoxLeft();s.parentAreaOffsetLeft=l;s.parentAreaOffsetRight=r;s.minWidth=this.getUsePreferredWidthAsMin()?Math.max(this.getMinWidth(),this.getPreferredWidth()):this.getMinWidth();s.maxWidth=this.getMaxWidth();};switch(this._resizeMode){case "nw":case "ne":case "n":s.boxHeight=this.getComputedBoxHeight();s.boxBottom=this.getComputedPageBoxBottom();case "sw":case "se":case "s":s.boxTop=this.getComputedPageBoxTop();s.parentAreaOffsetTop=t;s.parentAreaOffsetBottom=b;s.minHeight=this.getUsePreferredHeightAsMin()?Math.max(this.getMinHeight(),this.getPreferredHeight()):this.getMinHeight();s.maxHeight=this.getMaxHeight();};}else {delete this._resizeSession;};};proto._onwindowmouseup=function(e){var s=this._resizeSession;if(s){this.setCapture(false);this.getTopLevelWidget().setGlobalCursor(null);switch(this.getResizeMethod()){case "frame":var o=this._frame;if(!(o&&o.getParent())){break;};case "lazyopaque":if(isValidNumber(s.lastLeft)){this.setLeft(s.lastLeft);};if(isValidNumber(s.lastTop)){this.setTop(s.lastTop);};if(isValidNumber(s.lastWidth)){this.setWidth(s.lastWidth);};if(isValidNumber(s.lastHeight)){this.setHeight(s.lastHeight);};if(this.getResizeMethod()=="frame"){this._frame.setParent(null);};break;case "translucent":this.setOpacity(null);break;};delete this._resizeMode;delete this._resizeSession;};};proto._near=function(p,e){return e>(p-5)&&e<(p+5);};proto._onwindowmousemove=function(e){if(!this.getResizeable()||this.getState()!=null){return;};var s=this._resizeSession;if(s){switch(this._resizeMode){case "nw":case "sw":case "w":s.lastWidth=(s.boxWidth+s.boxLeft-Math.max(e.getPageX(),s.parentAreaOffsetLeft)).limit(s.minWidth,s.maxWidth);s.lastLeft=s.boxRight-s.lastWidth-s.parentAreaOffsetLeft;break;case "ne":case "se":case "e":s.lastWidth=(Math.min(e.getPageX(),s.parentAreaOffsetRight)-s.boxLeft).limit(s.minWidth,s.maxWidth);break;};switch(this._resizeMode){case "nw":case "ne":case "n":s.lastHeight=(s.boxHeight+s.boxTop-Math.max(e.getPageY(),s.parentAreaOffsetTop)).limit(s.minHeight,s.maxHeight);s.lastTop=s.boxBottom-s.lastHeight-s.parentAreaOffsetTop;break;case "sw":case "se":case "s":s.lastHeight=(Math.min(e.getPageY(),s.parentAreaOffsetBottom)-s.boxTop).limit(s.minHeight,s.maxHeight);break;};switch(this.getResizeMethod()){case "opaque":case "translucent":switch(this._resizeMode){case "nw":case "sw":case "w":this.setLeft(s.lastLeft);case "ne":case "se":case "e":this.setWidth(s.lastWidth);};switch(this._resizeMode){case "nw":case "ne":case "n":this.setTop(s.lastTop);case "sw":case "se":case "s":this.setHeight(s.lastHeight);};break;default:var o=this.getResizeMethod()=="frame"?this._frame:this;switch(this._resizeMode){case "nw":case "sw":case "w":o._d3Horizontal(s.lastLeft);case "ne":case "se":case "e":o._applySizeHorizontal(s.lastWidth);};switch(this._resizeMode){case "nw":case "ne":case "n":o._d3Vertical(s.lastTop);case "sw":case "se":case "s":o._applySizeVertical(s.lastHeight);};};}else {var resizeMode="";if(this._near(this.getComputedPageBoxTop(),e.getPageY())){resizeMode="n";}else if(this._near(this.getComputedPageBoxBottom(),e.getPageY())){resizeMode="s";};if(this._near(this.getComputedPageBoxLeft(),e.getPageX())){resizeMode+="w";}else if(this._near(this.getComputedPageBoxRight(),e.getPageX())){resizeMode+="e";};if(resizeMode!=""){this._resizeMode=resizeMode;this.setCursor(resizeMode+"-resize");}else {delete this._resizeMode;this.setCursor(null);};};};proto._oniconmousedown=function(e){e.stopPropagation();};proto._onbuttonmousedown=function(e){e.stopPropagation();};proto._oniconload=function(e){this._layoutCaption();};proto._oncaptionmousedown=function(e){if(e.isNotLeftButton()||!this.getMoveable()||this.getState()!=null){return;};this._captionbar.setCapture(true);var pa=this.getParent();var l=pa.getComputedPageAreaLeft();var t=pa.getComputedPageAreaTop();var r=pa.getComputedPageAreaRight();var b=pa.getComputedPageAreaBottom();this._dragSession= {offsetX:e.getPageX()-this.getComputedPageBoxLeft()+l,offsetY:e.getPageY()-this.getComputedPageBoxTop()+t,parentAvailableAreaLeft:l+5,parentAvailableAreaTop:t+5,parentAvailableAreaRight:r-5,parentAvailableAreaBottom:b-5 };switch(this.getMoveMethod()){case "translucent":this.setOpacity(0.5);break;case "frame":var f=this._frame;f._d3Horizontal(this.getComputedPageBoxLeft()-l);f._d3Vertical(this.getComputedPageBoxTop()-t);f._applySizeHorizontal(this.getComputedBoxWidth());f._applySizeVertical(this.getComputedBoxHeight());f.setZIndex(this.getZIndex()+1);f.setParent(this.getParent());break;};};proto._oncaptionmouseup=function(e){var s=this._dragSession;if(!s){return;};this._captionbar.setCapture(false);if(isValidNumber(s.lastX)){this.setLeft(s.lastX);};if(isValidNumber(s.lastY)){this.setTop(s.lastY);};switch(this.getMoveMethod()){case "translucent":this.setOpacity(null);break;case "frame":this._frame.setParent(null);break;};delete this._dragSession;};proto._oncaptionmousemove=function(e){var s=this._dragSession;if(!s||!this._captionbar.getCapture()){return;};if(!e.getPageX().inrange(s.parentAvailableAreaLeft,s.parentAvailableAreaRight)||!e.getPageY().inrange(s.parentAvailableAreaTop,s.parentAvailableAreaBottom)){return;};var o=this.getMoveMethod()=="frame"?this._frame:this;o._d3Horizontal(s.lastX=e.getPageX()-s.offsetX);o._d3Vertical(s.lastY=e.getPageY()-s.offsetY);};proto._onminimizebuttonclick=function(e){this.minimize();e.stopPropagation();};proto._onrestorebuttonclick=function(e){this.restore();e.stopPropagation();};proto._onmaximizebuttonclick=function(e){this.maximize();e.stopPropagation();};proto._onclosebuttonclick=function(e){this.close();e.stopPropagation();};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("mousedown",this._onwindowmousedown,this);this.removeEventListener("mouseup",this._onwindowmouseup,this);this.removeEventListener("mousemove",this._onwindowmousemove,this);var w=this._caption;if(w){w.dispose();this._caption=null;};w=this._icon;if(w){w.removeEventListener("mousedown",this._oniconmousedown,this);w.dispose();this._icon=null;};w=this._closeButton;if(w){w.removeEventListener("click",this._onclosebuttonclick,this);w.removeEventListener("mousedown",this._onbuttonmousedown,this);w.dispose();this._closeButton=null;};w=this._restoreButton;if(w){w.removeEventListener("click",this._onrestorebuttonclick,this);w.removeEventListener("mousedown",this._onbuttonmousedown,this);w.dispose();this._restoreButton=null;};w=this._maximizeButton;if(w){w.removeEventListener("click",this._onmaximizebuttonclick,this);w.removeEventListener("mousedown",this._onbuttonmousedown,this);w.dispose();this._maximizeButton=null;};w=this._minimizeButton;if(w){w.removeEventListener("click",this._onminimizebuttonclick,this);w.removeEventListener("mousedown",this._onbuttonmousedown,this);w.dispose();this._minimizeButton=null;};w=this._captionbar;if(w){w.removeEventListener("mousedown",this._oncaptionmousedown,this);w.removeEventListener("mouseup",this._oncaptionmouseup,this);w.removeEventListener("mousemove",this._oncaptionmousemove,this);w.dispose();this._captionbar=null;};w=this._pane;if(w){w.dispose();this._pane=null;};w=this._statusbar;if(w){w.dispose();this._statusbar=null };};function QxColorPresetPopup(vTemplateColors,vHistoryColors,vColorSelector){QxPopup.call(this);var vField,vFieldSet;var vBase=QxColorPresetPopup.baseColors;var vLength=vBase.length;var vInnerWidth=(this._fieldWidth*vLength)+(this._fieldSpace*(vLength-1));var vFullWidth=vInnerWidth+(2*(this._padding+1));var vPreviewWidth=Math.round((vInnerWidth/2)-2);this.setWidth(230);this.setHeight(260);this.setBackgroundColor("ThreedFace");this.setBorder(QxBorder.presets.outset);this._baseColors=[];this._templateColors=[];this._historyColors=[];var vTop=this._padding;var o = this._auto = new QxAtom(QxColorPresetPopup.textAuto, "icons/16/iconthemes.png");o.setBorder(QxBorder.presets.outset);o.setPadding(2,4);o.setTop(vTop);o.setLeft(this._padding);o.setWidth(null);o.setRight(this._padding);o.setParent(this);o.addEventListener("mousedown",this._onautoclick,this);vTop+=30;vFieldSet=new QxFieldSet(QxColorPresetPopup.textBaseColors);vFieldSet.setTop(vTop);vFieldSet.setLeft(this._padding);vFieldSet.setRight(this._padding);vFieldSet.setMinHeight(45);for(var i=0;i<vLength;i++){vField=new QxWidget;vField.setBackgroundColor(vBase[i]);vField.setWidth(this._fieldWidth);vField.setHeight(this._fieldHeight);vField.setLeft(i*(this._fieldWidth+this._fieldSpace));vField.setTop(0);vField.setBorder(QxBorder.presets.inset);vField.addEventListener("mousedown",this._oncolorclick,this);vField.addEventListener("mouseover",this._oncolorover,this);vField.addEventListener("mouseout",this._oncolorout,this);vField.setParent(vFieldSet);this._baseColors.push(vField);};this.add(vFieldSet);vTop+=this._fieldHeight+this._fieldSpace+35;vFieldSet=new QxFieldSet(QxColorPresetPopup.textTemplateColors);vFieldSet.setTop(vTop);vFieldSet.setLeft(this._padding);vFieldSet.setRight(this._padding);vFieldSet.setMinHeight(45);for(var i=0;i<vLength;i++){vField=new QxWidget;if(vTemplateColors[i]){vField.setBackgroundColor(vTemplateColors[i]);};vField.setWidth(this._fieldWidth);vField.setHeight(this._fieldHeight);vField.setLeft(i*(this._fieldWidth+this._fieldSpace));vField.setTop(0);vField.setBorder(QxBorder.presets.inset);vField.addEventListener("mousedown",this._oncolorclick,this);vField.addEventListener("mouseover",this._oncolorover,this);vField.addEventListener("mouseout",this._oncolorout,this);vField.setParent(vFieldSet);this._templateColors.push(vField);};this.add(vFieldSet);vTop+=this._fieldHeight+this._fieldSpace+35;vFieldSet=new QxFieldSet(QxColorPresetPopup.textHistoryColors);vFieldSet.setTop(vTop);vFieldSet.setLeft(this._padding);vFieldSet.setRight(this._padding);vFieldSet.setMinHeight(45);for(var i=0;i<vLength;i++){vField=new QxWidget;if(vHistoryColors[i]){vField.setBackgroundColor(vHistoryColors[i]);};vField.setWidth(this._fieldWidth);vField.setHeight(this._fieldHeight);vField.setLeft(i*(this._fieldWidth+this._fieldSpace));vField.setTop(0);vField.setBorder(QxBorder.presets.inset);vField.addEventListener("mousedown",this._oncolorclick,this);vField.addEventListener("mouseover",this._oncolorover,this);vField.addEventListener("mouseout",this._oncolorout,this);vField.setParent(vFieldSet);this._historyColors.push(vField);};this.add(vFieldSet);vTop+=this._fieldHeight+this._fieldSpace+45;var o=this._previewOld=new QxAtom(QxColorPresetPopup.textSavedColor);o.setHeight(25);o.setWidth(105);o.setTop(vTop);o.setLeft(this._padding);o.setBorder(QxBorder.presets.inset);o.setPadding(2,4);o.setHorizontalBlockAlign("center");o.setParent(this);var o=this._previewNew=new QxAtom(QxColorPresetPopup.textNewColor);o.setHeight(25);o.setWidth(105);o.setTop(vTop);o.setRight(this._padding);o.setBorder(QxBorder.presets.inset);o.setPadding(2,4);o.setHorizontalBlockAlign("center");o.setParent(this);vTop+=30;var o = this._vStartComplex = new QxAtom(QxColorPresetPopup.textAllColors, "icons/16/kcoloredit.png");o.setBorder(QxBorder.presets.outset);o.setPadding(2,4);o.setTop(vTop);o.setLeft(this._padding);o.setWidth(null);o.setRight(this._padding);o.setParent(this);o.addEventListener("mousedown",function(e){vColorSelector.setSavedColor(this.getCurrentColor());vColorSelector.setCurrentColor(this.getCurrentColor()?this.getCurrentColor():[127,255,255]);vColorSelector.setTop(100);vColorSelector.setLeft(100);vColorSelector.setVisible(true);},this);};QxColorPresetPopup.extend(QxPopup,"QxColorPresetPopup");QxColorPresetPopup.addProperty({name:"currentColor",type:QxColor});QxColorPresetPopup.baseColors=["black",51,102,153,204,"white","red","green","blue","yellow","cyan","magenta"];QxColorPresetPopup.textBaseColors="Basic Colors";QxColorPresetPopup.textTemplateColors="Template Colors";QxColorPresetPopup.textHistoryColors="Previous Colors";QxColorPresetPopup.textSavedColor="Current";QxColorPresetPopup.textNewColor="New";QxColorPresetPopup.textAuto="Automatic";QxColorPresetPopup.textAllColors="All Colors...";proto._fieldWidth=14;proto._fieldHeight=14;proto._fieldSpace=2;proto._padding=4;proto._onautoclick=function(e){this.setCurrentColor(null);};proto._oncolorover=function(e){this._applyNewColor(e.getTarget().getBackgroundColor());};proto._oncolorout=function(e){this._previewNew.setBackgroundColor(null);this._previewNew.setColor(null);};proto._oncolorclick=function(e){var c=e.getTarget().getBackgroundColor();if(isValidString(c)){this.setCurrentColor(c);};this._oncolorout();};proto._modifyCurrentColor=function(_b1,_b2,_b3,_b4){return this._applyOldColor(_b1);};proto._applyOldColor=function(_b1){this._previewOld.setBackgroundColor(_b1);if(isValid(_b1)){var vTemp=QxColor.read(_b1);this._previewOld.setColor(this._useWhiteColor(QxColor.RGB2HSB(vTemp[0],vTemp[1],vTemp[2]))?"white":"black");};return true;};proto._applyNewColor=function(_b1){if(isValidString(_b1)){this._previewNew.setBackgroundColor(_b1);if(isValid(_b1)){var vTemp=QxColor.read(_b1);this._previewNew.setColor(this._useWhiteColor(QxColor.RGB2HSB(vTemp[0],vTemp[1],vTemp[2]))?"white":"black");};};};proto._useWhiteColor=function(v){return v[2]<70||(v[1]>50&&(v[0].inrange(200,280)||v[0].inrange(-1,40)));};function QxColorSelector(vTemplateColors,vHistoryColors,vStandalone){this.standaloneMode=typeof vStandalone=="boolean"?vStandalone:false;this.webfixMode=vTemplateColors&&vHistoryColors;if(this.standaloneMode){QxPopup.call(this);this.add=this.addToWindow;this.setBorder(null);this.setPadding(10);this.setHeight(this.webfixMode?335:385);}else {QxWindow.call(this, "Color Selector", "icons/16/colors.png");this.setHeight(this.webfixMode?350:400);};this.classname="QxWindow";this.layoutOffset=this.webfixMode?224:196;this.setShowStatusbar(false);this.setShowMaximize(false);this.setShowMinimize(false);this.setResizeable(false);this.setUsePreferredWidthAsMin(false);this.setUsePreferredHeightAsMin(false);this.getPane().setPadding(8);this.setWidth(this.webfixMode?543:515);if(this.webfixMode){var vField;var vFieldSet;var vBase=QxColorSelector.baseColors;var vBaseLength=vBase.length;vFieldSet=new QxFieldSet(QxColorSelector.textBaseColors);vFieldSet.setTop(-6);vFieldSet.setWidth(216);vFieldSet.setHeight(45);vFieldSet.setMinHeight(45);for(var i=0;i<vBaseLength;i++){vField=new QxWidget;vField.setBackgroundColor(vBase[i]);vField.setBorder(QxBorder.presets.inset);vField.setWidth(14);vField.setHeight(14);vField.setLeft(i*16);vField.setTop(0);vField.addEventListener("click",this._onpaletteclick,this);vFieldSet.add(vField);};this.add(vFieldSet);vFieldSet=new QxFieldSet(QxColorSelector.textTemplateColors);vFieldSet.setTop(41);vFieldSet.setWidth(216);vFieldSet.setHeight(45);vFieldSet.setMinHeight(45);for(var i=0;i<vBaseLength;i++){vField=new QxWidget;vField.setBackgroundColor(vTemplateColors[i]);vField.setBorder(QxBorder.presets.inset);vField.setWidth(14);vField.setHeight(14);vField.setLeft(i*16);vField.setTop(0);vField.addEventListener("click",this._onpaletteclick,this);vFieldSet.add(vField);};this.add(vFieldSet);}else {var vField;var vArr=QxColorSelector.presets;var vArrLength=vArr.length;var vSubArr;var vSubArrLength;for(var i=0;i<vArrLength;i++){vSubArr=vArr[i];vSubArrLength=vSubArr.length;for(var j=0;j<vSubArrLength;j++){vField=new QxWidget;vField.setBorder(QxBorder.presets.inset);vField.setBackgroundColor(vSubArr[j]);vField.setWidth(20);vField.setHeight(16);vField.setLeft(j*24);vField.setTop(i*20);vField.addEventListener("click",this._onpaletteclick,this);this.add(vField);};};};var hueFrame=new QxWidget;hueFrame.setBorder(QxBorder.presets.inset);hueFrame.setLeft(this.webfixMode?228:200);hueFrame.setTop(0);hueFrame.setWidth(258);hueFrame.setHeight(258);var hue=this._hueArea=new QxImage("core/huesaturation.jpg",256,256);hueFrame.add(hue);if(this.getEnableShader()){var hueOpaque=this._hueOpaque=new QxWidget();hueOpaque.setLeft(0);hueOpaque.setTop(0);hueOpaque.setRight(0);hueOpaque.setBottom(0);hueOpaque.setBackgroundColor("black");hueFrame.add(hueOpaque);};var huePos=this._huePos=new QxImage("core/huesaturationhandle.gif",11,11);huePos.setLeft(this.layoutOffset+128);huePos.setTop(-4+128);this.add(hueFrame,huePos);hue.addEventListener("click",this._onhueareaclick);hue.addEventListener("mousedown",this._onhueareamousedown);hue.addEventListener("mouseup",this._onhueareamouseup);hue.addEventListener("mousemove",this._onhueareamousemove);hueOpaque.addEventListener("click",this._onhueareaclick,hue);hueOpaque.addEventListener("mousedown",this._onhueareamousedown,hue);hueOpaque.addEventListener("mouseup",this._onhueareamouseup,hue);hueOpaque.addEventListener("mousemove",this._onhueareamousemove,hue);huePos.addEventListener("click",this._onhueareaclick,hue);huePos.addEventListener("mousedown",this._onhueareamousedown,hue);huePos.addEventListener("mouseup",this._onhueareamouseup,hue);huePos.addEventListener("mousemove",this._onhueareamousemove,hue);var brightFrame=new QxWidget;brightFrame.setBorder(QxBorder.presets.inset);brightFrame.setLeft(this.webfixMode?498:470);brightFrame.setTop(0);brightFrame.setWidth(21);brightFrame.setHeight(258);var bright=this._brightArea=new QxImage("core/brightness.jpg",19,256);brightFrame.add(bright);var brightPos=this._brightPos=new QxImage("core/brightnesshandle.gif",35,11);brightPos.setLeft(this.layoutOffset+267);brightPos.setTop(-4);this.add(brightFrame,brightPos);bright.addEventListener("click",this._onbrightareaclick);bright.addEventListener("mousedown",this._onbrightareamousedown);bright.addEventListener("mouseup",this._onbrightareamouseup);bright.addEventListener("mousemove",this._onbrightareamousemove);brightPos.addEventListener("click",this._onbrightareaclick,bright);brightPos.addEventListener("mousedown",this._onbrightareamousedown,bright);brightPos.addEventListener("mouseup",this._onbrightareamouseup,bright);brightPos.addEventListener("mousemove",this._onbrightareamousemove,bright);var inputArea=new QxWidget;inputArea.setLeft(0);inputArea.setWidth(this.webfixMode?218:190);inputArea.setTop(this.webfixMode?95:135);inputArea.setHeight(90);this.add(inputArea);var r=this._red=new QxSpinner(0,127,255);r.setLeft(this.webfixMode?171:143);r.setWidth(45);r.setTop(0);r.addEventListener("change",this._onchange,this);var rl=new QxAtom(QxColorSelector.textRed);rl.setLeft(this.webfixMode?118:90);rl.setWidth(50);rl.setHorizontalBlockAlign("right");rl.setTop(5);var g=this._green=new QxSpinner(0,255,255);g.setLeft(this.webfixMode?171:143);g.setWidth(45);g.setTop(30);g.addEventListener("change",this._onchange,this);var gl=new QxAtom(QxColorSelector.textGreen);gl.setLeft(this.webfixMode?118:90);gl.setWidth(50);gl.setHorizontalBlockAlign("right");gl.setTop(35);var b=this._blue=new QxSpinner(0,255,255);b.setLeft(this.webfixMode?171:143);b.setWidth(45);b.setTop(60);b.addEventListener("change",this._onchange,this);var bl=new QxAtom(QxColorSelector.textBlue);bl.setLeft(this.webfixMode?118:90);bl.setWidth(50);bl.setHorizontalBlockAlign("right");bl.setTop(65);var h=this._hue=new QxSpinner(0,180,360);h.setLeft(54);h.setWidth(45);h.setTop(0);h.addEventListener("change",this._onchange,this);var hl=new QxAtom(QxColorSelector.textHue);hl.setLeft(0);hl.setWidth(50);hl.setHorizontalBlockAlign("right");hl.setTop(5);var s=this._sat=new QxSpinner(0,50,100);s.setLeft(54);s.setWidth(45);s.setTop(30);s.addEventListener("change",this._onchange,this);var sl=new QxAtom(QxColorSelector.textSaturation);sl.setLeft(0);sl.setWidth(50);sl.setHorizontalBlockAlign("right");sl.setTop(35);var l=this._lum=new QxSpinner(0,100,100);l.setLeft(54);l.setWidth(45);l.setTop(60);l.addEventListener("change",this._onchange,this);var ll=new QxAtom(QxColorSelector.textBrightness);ll.setLeft(0);ll.setWidth(50);ll.setHorizontalBlockAlign("right");ll.setTop(65);inputArea.add(r,rl,g,gl,b,bl,h,hl,s,sl,l,ll);var hexLabel=new QxAtom(QxColorSelector.textHex);hexLabel.setLeft(0);hexLabel.setWidth(this.webfixMode?158:130);hexLabel.setHorizontalBlockAlign("right");hexLabel.setTop(this.webfixMode?192:241);var hex=this._hex=new QxTextField("7FFFFF");hex.setLeft(this.webfixMode?161:133);hex.setTop(this.webfixMode?187:236);hex.setWidth(55);this.add(hexLabel,hex);hex.addEventListener("changeText",this._onchangehex,this);var savedColor=this._savedColor=new QxAtom(QxColorSelector.textSavedColor);if(this.webfixMode){savedColor.setLeft(0);savedColor.setTop(233);savedColor.setWidth(100);}else {savedColor.setTop(270);savedColor.setLeft(200);savedColor.setWidth(125);};savedColor.setHeight(25);savedColor.setHorizontalBlockAlign("center");savedColor.setBorder(QxBorder.presets.inset);var newColor=this._newColor=new QxAtom(QxColorSelector.textNewColor);if(this.webfixMode){newColor.setLeft(116);newColor.setTop(233);newColor.setWidth(100);}else {newColor.setRight(33);newColor.setTop(270);newColor.setWidth(125);};newColor.setHeight(25);newColor.setHorizontalBlockAlign("center");newColor.setBorder(QxBorder.presets.inset);newColor.setBackgroundColor("#7FFFFF");this.add(savedColor,newColor);var sep=new QxWidget;sep.setHeight(2);sep.setBorder(QxBorder.presets.thinInset);sep.setWidth("100%");sep.setLeft(0);sep.setTop(this.webfixMode?275:325);this.add(sep);var btncancel = this._btncancel = new QxButton(QxColorSelector.textCancel, "icons/16/button_cancel.png", 16, 16);var btnok = this._btnok = new QxButton(QxColorSelector.textOk, "icons/16/button_ok.png", 16, 16);btncancel.setRight(0);btncancel.setTop(this.webfixMode?285:335);btncancel.setWidth(85);btncancel.setHorizontalBlockAlign("center");btnok.setRight(95);btnok.setTop(this.webfixMode?285:335);btnok.setWidth(85);btnok.setHorizontalBlockAlign("center");this.add(btncancel,btnok);};QxColorSelector.extend(QxWindow,"QxColorSelector");QxColorSelector.addProperty({name:"currentColor",type:QxColor});QxColorSelector.addProperty({name:"enableShader",type:Boolean,defaultValue:true});QxColorSelector.presets= [ [[255,128,128],[255,255,128],[128,255,128],[0,155,128],[128,255,255],[0,128,255],[255,128,192],[255,128,255]],[[255,0,0],[255,255,0],[128,255,0],[0,255,64],[0,255,255],[0,128,192],[128,128,192],[255,0,255]],[[128,64,64],[255,128,64],[0,255,0],[0,128,128],[0,64,128],[128,128,255],[128,0,64],[255,0,128]],[[128,0,0],[255,128,0],[0,128,0],[0,128,64],[0,0,255],[0,160,160],[128,0,128],[128,0,255]],[[64,0,0],[128,64,0],[0,64,0],[0,64,64],[0,0,128],[0,0,64],[64,0,64],[64,0,128]],[[0,0,0],[128,128,0],[128,128,64],[128,128,128],[64,128,128],[192,192,192],[32,0,32],[255,255,255]] ];QxColorSelector.baseColors=["black",51,102,153,204,"white","red","green","blue","yellow","cyan","magenta"];proto._mode=null;QxColorSelector.textBaseColors="Basic Colors";QxColorSelector.textTemplateColors="Template Colors";QxColorSelector.textHistoryColors="Previous Colors";QxColorSelector.textHue="Hue:";QxColorSelector.textSaturation="Sat:";QxColorSelector.textBrightness="Lum:";QxColorSelector.textRed="Red:";QxColorSelector.textGreen="Green:";QxColorSelector.textBlue="Blue:";QxColorSelector.textOk="OK";QxColorSelector.textCancel="Cancel";QxColorSelector.textSavedColor="Current";QxColorSelector.textNewColor="New";QxColorSelector.textHex="Hex:#";proto._modifyCurrentColor=function(_b1,_b2,_b3,_b4){this._newColor.setBackgroundColor(_b1,_b4);var r=QxColor.read(_b1);if(this._mode!="rgb"){this._red.setValue(r[0]);this._green.setValue(r[1]);this._blue.setValue(r[2]);};var c=QxColor.RGB2HSB(r[0],r[1],r[2]);this._newColor.setColor(this._useWhiteColor(c)?"white":"black");if(this._mode!="hsb"&&this._mode!="lum"){if(this._mode!="brightarea"){this._hue.setValue(c[0]);this._sat.setValue(c[1]);};if(this._mode!="huearea"){this._lum.setValue(c[2]);};};if(this._mode!="huearea"&&this._mode!="brightarea"){if(this._mode!="lum"){this._huePos.setLeft(c[0]==0?this.layoutOffset:this.layoutOffset+(c[0]/3.6*2.56));this._huePos.setTop(c[1]==0?252:256-(-4+(c[1]*2.56)));};if(this._mode!="hsb"){this._brightPos.setTop(-4+256-(c[2]*2.56));};};if(this.getEnableShader()&&this._mode!="huearea"){this._hueOpaque.setOpacity(1-(c[2]/100));};if(this._mode!="hex"){var s="";s+=QxColor.m_hex[Math.floor(r[0]/16)]+QxColor.m_hex[r[0]%16];s+=QxColor.m_hex[Math.floor(r[1]/16)]+QxColor.m_hex[r[1]%16];s+=QxColor.m_hex[Math.floor(r[2]/16)]+QxColor.m_hex[r[2]%16];this._hex.setText(s);};return true;};proto._modifyEnableShader=function(_b1,_b2,_b3,_b4){_b1?this.add(this._hueOpaque):this.remove(this._hueOpaque);return true;};proto._useWhiteColor=function(v){return v[2]<70||(v[1]>50&&(v[0].inrange(200,280)||v[0].inrange(-1,40)));};proto.setSavedColor=function(_b1){var r=QxColor.read(_b1);if(r){var c=QxColor.RGB2HSB(r[0],r[1],r[2]);this._savedColor.setBackgroundColor(_b1);this._savedColor.setColor(this._useWhiteColor(c)?"white":"black");}else {this._savedColor.setBackgroundColor(null);this._savedColor.setColor("black");};};proto._onchange=function(e){if(isValidString(this._mode)){return;};var t=e.getTarget();switch(e.getTarget()){case this._red:case this._blue:case this._green:this._mode="rgb";this.setCurrentColor([this._red.getValue(),this._green.getValue(),this._blue.getValue()]);break;case this._lum:this._mode="lum";this.setCurrentColor(QxColor.HSB2RGB(this._hue.getValue(),this._sat.getValue(),this._lum.getValue()));break;case this._hue:case this._sat:this._mode="hsb";this.setCurrentColor(QxColor.HSB2RGB(this._hue.getValue(),this._sat.getValue(),this._lum.getValue()));break;};delete this._mode;};proto._onchangehex=function(e){if(isValidString(this._mode)){return;};this._mode="hex";var r=QxColor.read("#"+this._hex.getText());if(r){this.setCurrentColor(r);};delete this._mode;};proto._onpaletteclick=function(e){this._mode="palette";this.setCurrentColor(e.getTarget().getBackgroundColor());delete this._mode;};proto._hueActive=false;proto._onhueareamousedown=function(e){this._hueActive=true;this.setCapture(true);};proto._onhueareamouseup=function(e){this._hueActive=false;this.setCapture(false);};proto._onhueareamousemove=function(e){if(this._hueActive){var pa1=this.getParent().getParent();var pa=pa1.standaloneMode?pa1:pa1.getParent();pa._onhueareaclick.call(this,e);};};proto._onhueareaclick=function(e){var pa1=this.getParent().getParent();var pa=pa1.standaloneMode?pa1:pa1.getParent();var h=((e.getPageX()-this.getComputedPageBoxLeft())/2.56*3.6).limit(0,360);var s=((e.getPageY()-this.getComputedPageBoxTop())/2.56).limit(0,100);var b=pa._lum.getValue();pa._huePos.setLeft(pa.layoutOffset+(h/3.6*2.56));pa._huePos.setTop(-4+(s*2.56));pa._mode="huearea";try{var r=QxColor.HSB2RGB(h,100-s,b);if(isValidArray(r)){pa.setCurrentColor(r);};}catch(ex){};delete pa._mode;};proto._brightActive=false;proto._onbrightareamousedown=function(e){this._brightActive=true;this.setCapture(true);};proto._onbrightareamouseup=function(e){this._brightActive=false;this.setCapture(false);};proto._onbrightareamousemove=function(e){if(this._brightActive){var pa1=this.getParent().getParent();var pa=pa1.standaloneMode?pa1:pa1.getParent();pa._onbrightareaclick.call(this,e);};};proto._onbrightareaclick=function(e){var pa1=this.getParent().getParent();var pa=pa1.standaloneMode?pa1:pa1.getParent();var h=pa._hue.getValue();var s=pa._sat.getValue();var b=((e.getPageY()-this.getComputedPageBoxTop())/2.56).limit(0,100);pa._brightPos.setTop(-4+(b*2.56));pa._mode="brightarea";try{var r=QxColor.HSB2RGB(h,s,100-b);if(r){pa.setCurrentColor(r);};}catch(ex){};delete pa._mode;};proto.dispose=function(){if(this.getDisposed()){return;};return QxWindow.prototype.dispose.call(this);};function QxNativeWindow(vCaption,vSource){QxTarget.call(this);this._timer=new QxTimer(100);this._timer.addEventListener("interval",this._ontimer,this);var o=this;this.__onload=function(e){return o._onload(e);};if(isValidString(vSource)){this.setSource(vSource);};if(isValidString(vCaption)){this.setCaption(vCaption);};};QxNativeWindow.extend(QxTarget,"QxNativeWindow");QxNativeWindow.addProperty({name:"width",defaultValue:400,groups:["dimension"]});QxNativeWindow.addProperty({name:"height",defaultValue:250,groups:["dimension"]});QxNativeWindow.addProperty({name:"left",type:Number,defaultValue:100,groups:["location"]});QxNativeWindow.addProperty({name:"top",type:Number,defaultValue:200,groups:["location"]});QxNativeWindow.addProperty({name:"modal",type:Boolean,defaultValue:false});QxNativeWindow.addProperty({name:"caption",type:String});QxNativeWindow.addProperty({name:"source",type:String});QxNativeWindow.addProperty({name:"status",type:String,defaultValue:"Ready"});QxNativeWindow.addProperty({name:"showStatusbar",type:Boolean,defaultValue:false});QxNativeWindow.addProperty({name:"showMenubar",type:Boolean,defaultValue:false});QxNativeWindow.addProperty({name:"showLocation",type:Boolean,defaultValue:false});QxNativeWindow.addProperty({name:"showToolbar",type:Boolean,defaultValue:false});QxNativeWindow.addProperty({name:"showCaption",type:Boolean,defaultValue:true});QxNativeWindow.addProperty({name:"resizeable",type:Boolean,defaultValue:true});QxNativeWindow.addProperty({name:"moveable",type:Boolean,defaultValue:true});QxNativeWindow.addProperty({name:"allowScrollbars",type:Boolean,defaultValue:false});proto.getPane=function(){return this._pane;};proto.addToWindow=proto.add;proto.addToPane=function(){this._pane.add.apply(this._pane,arguments);};proto.add=proto.addToPane;proto._modifyLeft=function(_b1,_b2,_b3,_b4){return this._d3();};proto._modifyTop=function(_b1,_b2,_b3,_b4){return this._d3();};proto._d3=function(){if(this._window&&!this._window.closed){this._window.moveTo(this.getLeft(),this.getTop());};return true;};proto._modifyCaption=function(_b1,_b2,_b3,_b4){return this._applyCaption();};proto._modifyShowCaption=function(_b1,_b2,_b3,_b4){return this._applyCaption();};proto._applyCaption=function(){if(this._window&&this._instance){var v="";if(this.getShowCaption()){var vc=this.getCaption();if(isValidString(vc)){v=vc;};};this._instance.getClientDocument().getDocumentElement().title=v;};return true;};proto._modifySource=function(_b1,_b2,_b3,_b4){if(this._window&&this._window.closed==false){this._window.location.replace(isValidString(_b1) ? _b1 : ("javascript:/" + "/"));};return true;};proto._chromeCaptionSize=24;proto._isOpened=false;proto._isLoaded=false;proto.isLoaded=function(){return this._isLoaded;};proto.close=function(){if(this._window){this._window.close();};};proto.open=function(){var conf="dependent=yes,";if(isValidNumber(this.getWidth())){conf+="width="+this.getWidth()+",";};if(isValidNumber(this.getHeight())){if((new QxClient).isMshtml()){if(this.getShowMenubar()){conf+="height="+(this.getHeight()+(this.getAllowScrollbars()?-20:-8))+",";}else {conf+="height="+this.getHeight()+",";};}else {conf+="height="+this.getHeight()+",";};};if(isValidNumber(this.getLeft())){conf+="left="+this.getLeft()+",";};if(isValidNumber(this.getTop())){conf+="top="+this.getTop()+",";};conf+="resizable="+(this.getResizeable()?"yes":"no")+",";conf+="status="+(this.getShowStatusbar()?"yes":"no")+",";conf+="location="+(this.getShowLocation()?"yes":"no")+",";conf+="menubar="+(this.getShowMenubar()?"yes":"no")+",";conf+="toolbar="+(this.getShowToolbar()?"yes":"no")+",";conf+="scrollbars="+(this.getAllowScrollbars()?"yes":"no")+",";conf+="modal="+(this.getModal()?"yes":"no")+",";this._isOpened=false;this._isLoaded=false;this._readyState=0;if(this.getModal()){window.application.getClientWindow().getClientDocument().block(this);};this._window=window.open("about:blank","w"+this.toHash(),conf);if(!this._window){this.debug("Window could not be opened. It seems there is a popup blocker active!");if(this.getModal()){window.application.getClientWindow().getClientDocument().release(this);};throw new Error("popupblocker");};this._timer.restart();};proto.centerToScreen=function(){return this._centerHelper((screen.width - this.getWidth()) / 2, (screen.height - this.getHeight() - this._chromeCaptionSize) / 2);};proto.centerToScreenArea=function(){return this._centerHelper((screen.availWidth - this.getWidth()) / 2, (screen.availHeight - this.getHeight() - this._chromeCaptionSize) / 2);};proto.centerToOpener=function(){return this._centerHelper(((QxDOM.getWindowInnerWidth(window) - this.getWidth()) / 2) + QxDOM.getComputedScreenBoxLeft(window.document.body), ((QxDOM.getWindowInnerHeight(window) - this.getHeight() - this._chromeCaptionSize) / 2) + QxDOM.getComputedScreenBoxTop(window.document.body));};proto._centerHelper=function(l,t){this.forceLeft(0);this.forceTop(0);this.setLeft(l);this.setTop(t);if(this._window&&!this._window.closed){this.focus();};};proto.focus=function(){if(this._window){try{this._window.focus();}catch(ex){};};};proto.blur=function(){if(this._window){this._window.blur();};};proto._ontimer=function(e){if(isValidNumber(this._readyState)&&this._isOpened&&(!this._window||(this._window&&this._window.closed!=false))){if(this.getModal()){window.application.getClientWindow().getClientDocument().release(this);};this._timer.stop();if(this._instance){this._instance.dispose();this._instance=null;};this._isOpened=false;this._isLoaded=false;this._readyState=null;return;};if(!this._window||this._timerRun){return;};if(this._window){this._isOpened=true;};this._timerRun=true;switch(this._readyState){case 0:this._isLoaded=false;var d=this._window.document;if(d){try{this._window._QxNativeWindow=this;}catch(ex){};if(isValidString(this.getSource())){try{QxDOM.addEventListener(this._window,"load",this.__onload);}catch(ex){};this._window.location.replace(this.getSource());this._timer.setInterval(500);this._readyState=5;}else {this._readyState=1;};if(!this.getResizeable()&&!(new QxClient).isMshtml()){var w=this.getWidth();var h=this.getHeight();var win=this._window;this._window.addEventListener("resize",function(e){win.resizeTo(w,h);},false);};};break;case 1:var ls=document.getElementsByTagName("head")[0].getElementsByTagName("link");for(var i=0,l=ls.length;i<l;i++){if(ls[i].getAttribute("href").indexOf("layouts/")!=-1){var s=ls[i].getAttribute("href");break;};};var d=this._window.document;d.open("text/html",true);d.write('<?xml version="1.0" encoding="iso-8859-1"?>');d.write('<!DOCTYPE html PUBLIC "-/' + '/W3C/' + '/DTD XHTML 1.1/' + '/EN" "http:/' + '/www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">');d.write('<html xmlns="http:/' + '/www.w3.org/1999/xhtml" xml:lang="en">');d.write('<head>');d.write('<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />');d.write('<meta http-equiv="MsThemeCompatible" content="yes"/>');d.write('<meta http-equiv="ImageToolBar" content="no"/>');d.write('<meta http-equiv="Pragma" content="no-cache"/>');d.write('<meta http-equiv="Expires" content="-1"/>');d.write('<meta http-equiv="Cache-Control" content="no-cache"/>');d.write('<meta name="MSSmartTagsPreventParsing" content="yes"/>');if(this.getShowCaption()){d.write('<title>'+this.getCaption()+'</title>');};if(isValidString(s)){d.write('<link type="text/css" rel="StyleSheet" href="' + s + '"/>');};d.write('</head><body></body></html>');d.close();this._readyState++;break;case 2:var d=this._window.document;if(d&&d.body){this._instance=new QxClientWindow(this._window);this._pane=this._instance.getClientDocument();this._readyState++;};break;case 3:try{if(this.hasEventListeners("ready")){this.dispatchEvent(new QxEvent("ready"));};}catch(ex){this.debug("Error in ready implementation:"+ex);this._timer.stop();};this._readyState++;break;case 4:this.focus();this._readyState++;this._onload();this._timer.setInterval(500);this._timer.restart();break;case 5:try{if(this._window.document.readyState=="complete"){this._onload();};}catch(ex){};if(!this.getMoveable()){try{this._window.moveTo(this.getLeft(),this.getTop());}catch(ex){};};if(!this.getResizeable()&&(this.getWidth()=="auto"||this.getHeight()=="auto")){var w,h;if(this.getWidth()=="auto"){w=this._instance.getClientDocument().getPreferredWidth();};if(this.getHeight()=="auto"){h=this._instance.getClientDocument().getPreferredHeight();};if(isValidNumber(w)||isValidNumber(h)){if((new QxClient).isMshtml()){try{this._window.resizeTo(isValidNumber(w)?w:this.getWidth(),isValidNumber(h)?h+this._chromeCaptionSize:this.getHeight());}catch(ex){};}else {if(isValidNumber(w)){this._window.innerWidth=w;};if(isValidNumber(h)){if(this._window.innerHeight!=150&&h!=150){this._window.innerHeight=h;};};};};};break;};delete this._timerRun;};proto._onload=function(){if(!this._isLoaded){this._isLoaded=true;this.focus();this.dispatchEvent(new QxEvent("load"));};};proto.dispose=function(){if(this.getDisposed()){return;};if(this._timer){this._timer.removeEventListener("interval",this._ontimer,this);this._timer.dispose();this._timer=null;};if(this._instance){this._instance.dispose();this._instance=null;};if(this._pane){this._pane.dispose();this._pane=null;};if(this._window){if(!this._window.closed){QxDOM.removeEventListener(this._window,"load",this.__onload);};this.close();try{if(this._window._QxNativeWindow){this._window._QxNativeWindow.dispose();this._window._QxNativeWindow=null;};}catch(ex){};this._window=null;};this._readyState=null;return QxTarget.prototype.dispose.call(this);};function QxLayout(){QxWidget.call(this);};QxLayout.extend(QxWidget,"QxLayout");proto._onnewchild=function(otherObject){this.getWidth()=="auto"?this._setChildrenDependWidth(otherObject,"append-child"):this._d1("append-child");this.getHeight()=="auto"?this._setChildrenDependHeight(otherObject,"append-child"):this._d2("append-child");};proto._onremovechild=function(otherObject){this.getWidth()=="auto"?this._setChildrenDependWidth(otherObject,"remove-child"):this._d1("remove-child");this.getHeight()=="auto"?this._setChildrenDependHeight(otherObject,"remove-child"):this._d2("remove-child");};proto._innerWidthChanged=function(){this._d4Width();this._d1("inner-width");var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderHorizontal("parent");};};proto._innerHeightChanged=function(){this._d4Height();this._d2("inner-height");var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderVertical("parent");};};proto._childOuterWidthChanged=function(vModifiedChild,_e5){if(!this._wasVisible){return;};this._d2(_e5);switch(_e5){case "position-and-size":case "position":break;default:if(this.getWidth()=="auto"){return this._setChildrenDependWidth(vModifiedChild,_e5);}else {this._d1(_e5,vModifiedChild);};};QxWidget.prototype._childOuterWidthChanged.call(this,vModifiedChild,_e5);};proto._childOuterHeightChanged=function(vModifiedChild,_e5){if(!this._wasVisible){return;};switch(_e5){case "position-and-size":case "position":break;default:if(this.getHeight()=="auto"){return this._setChildrenDependHeight(vModifiedChild,_e5);}else {this._d2(_e5,vModifiedChild);};};QxWidget.prototype._childOuterHeightChanged.call(this,vModifiedChild,_e5);};proto._setChildrenDependWidth=function(_e4,_e5){var newWidth=this._d5Width(_e4,_e5);if(this._widthMode=="inner"&&this._widthModeValue==newWidth){if(_e5=="size"){return this._d1(_e5);};}else {this.setInnerWidth(newWidth,null,true);};return true;};proto._setChildrenDependHeight=function(_e4,_e5){var newHeight=this._d5Height(_e4,_e5);if(this._heightMode=="inner"&&this._heightModeValue==newHeight){if(_e5=="size"){return this._d2(_e5);};}else {this.setInnerHeight(newHeight,null,true);};return true;};function QxBoxLayout(vOrientation,vBlockAlign,vChildrenAlign){QxLayout.call(this);this.setWidth("auto");this.setHeight("auto");if(isValid(vOrientation)){this.setOrientation(vOrientation);};if(isValid(vBlockAlign)){this.getOrientation()=="horizontal"?this.setHorizontalBlockAlign(vBlockAlign):this.setVerticalChildrenAlign(vChildrenAlign);};if(isValid(vChildrenAlign)){this.getOrientation()=="horizontal"?this.setHorizontalChildrenAlign(vChildrenAlign):this.setVerticalChildrenAlign(vChildrenAlign);};};QxBoxLayout.extend(QxLayout,"QxBoxLayout");QxBoxLayout.addProperty({name:"horizontalBlockAlign",type:String,defaultValue:"left"});QxBoxLayout.addProperty({name:"verticalBlockAlign",type:String,defaultValue:"top"});QxBoxLayout.addProperty({name:"orientation",type:String,defaultValue:"horizontal"});QxBoxLayout.addProperty({name:"horizontalChildrenAlign",type:String,defaultValue:"center"});QxBoxLayout.addProperty({name:"verticalChildrenAlign",type:String,defaultValue:"middle"});QxBoxLayout.addProperty({name:"spacing",type:Number,defaultValue:0});QxBoxLayout.addProperty({name:"ignoreOrthogonalMargin",type:Boolean,defaultValue:false});proto._d1=function(){switch(this.getOrientation()){case "horizontal":var inner=this.getInnerWidth();var sum=0;var ch=this.getChildren();var chl=ch.length;var chc;var w;var spacing=this.getSpacing();var p=[];for(var i=0;i<chl;i++){p.push(sum);chc=ch[i];sum+=chc.getMarginLeft()+chc.getAnyWidth()+chc.getMarginRight()+spacing;};sum-=spacing;var startpos=this.getPaddingLeft();switch(this.getHorizontalBlockAlign()){case "center":startpos+=(inner-sum)/2;break;case "right":startpos+=inner-sum;break;};for(var i=0;i<chl;i++){ch[i]._d3Horizontal(startpos+p[i]);};break;case "vertical":var inner=this.getInnerWidth();var ch=this.getChildren();var chl=ch.length;var chc;var glob=this.getHorizontalChildrenAlign();var ign=this.getIgnoreOrthogonalMargin();var cust,pos;for(var i=0;i<chl;i++){chc=ch[i];cust=chc.getHorizontalAlign();pos=this.getPaddingLeft();switch(isValidString(cust)?cust:glob){case "right":pos+=inner-chc.getAnyWidth();break;case "center":pos+=Math.floor((inner-chc.getAnyWidth())/2);break;};if(ign){pos-=chc.getMarginLeft();};chc._d3Horizontal(pos);};break;};return true;};proto._d2=function(){switch(this.getOrientation()){case "horizontal":var inner=this.getInnerHeight();var ch=this.getChildren();var chl=ch.length;var chc;var glob=this.getVerticalChildrenAlign();var ign=this.getIgnoreOrthogonalMargin();var cust,pos;for(var i=0;i<chl;i++){chc=ch[i];cust=chc.getVerticalAlign();pos=this.getPaddingTop();switch(isValidString(cust)?cust:glob){case "bottom":pos+=inner-chc.getAnyHeight();break;case "middle":pos+=Math.floor((inner-chc.getAnyHeight())/2);break;};if(ign){pos-=chc.getMarginTop();};chc._d3Vertical(pos);};break;case "vertical":var inner=this.getInnerHeight();var sum=0;var ch=this.getChildren();var chl=ch.length;var chc;var h;var spacing=this.getSpacing();var p=[];for(var i=0;i<chl;i++){p.push(sum);chc=ch[i];sum+=chc.getMarginTop()+chc.getAnyHeight()+chc.getMarginBottom()+spacing;};sum-=spacing;var startpos=this.getPaddingTop();switch(this.getVerticalBlockAlign()){case "middle":startpos+=(inner-sum)/2;break;case "bottom":startpos+=inner-sum;break;};for(var i=0;i<chl;i++){ch[i]._d3Vertical(startpos+p[i]);};break;};return true;};proto._modifyOrientation=function(_b1,_b2,_b3,_b4){if(this._wasVisible){this.getWidth()=="auto"?this._setChildrenDependWidth(this,"orientation"):this._d1("orientation");this.getHeight()=="auto"?this._setChildrenDependHeight(this,"orientation"):this._d2("orientation");};return true;};proto._modifySpacing=function(_b1,_b2,_b3,_b4){if(this._wasVisible){if(this.getOrientation()=="horizontal"){this.getWidth()=="auto"?this._setChildrenDependWidth(null,"spacing"):this._d1("spacing");}else {this.getHeight()=="auto"?this._setChildrenDependHeight(null,"spacing"):this._d2("spacing");};};return true;};proto._modifyIgnoreOrthogonalMargin=function(_b1,_b2,_b3,_b4){if(this._wasVisible){if(this.getOrientation()!="horizontal"){this._d1("spacing");}else {this._d2("spacing");};};return true;};proto._modifyHorizontalBlockAlign=function(_b1,_b2,_b3,_b4){return this._wasVisible?this._d1("block-align"):true;};proto._modifyVerticalBlockAlign=function(_b1,_b2,_b3,_b4){return this._wasVisible?this._d2("block-align"):true;};proto._modifyHorizontalChildrenAlign=function(_b1,_b2,_b3,_b4){return this._wasVisible?this._d1("children-align"):true;};proto._modifyVerticalChildrenAlign=function(_b1,_b2,_b3,_b4){return this._wasVisible?this._d2("children-align"):true;};proto._d5Width=function(_e4,_e5){if(this.getOrientation()=="vertical"){return QxWidget.prototype._d5Width.call(this,_e4,_e5);};var w=0;var spacing=this.getSpacing();var ch=this.getChildren();var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];w+=chc.getMarginLeft()+chc.getAnyWidth()+chc.getMarginRight()+spacing;};return w-spacing;};proto._d5Height=function(_e4,_e5){if(this.getOrientation()=="horizontal"){return QxWidget.prototype._d5Height.call(this,_e4,_e5);};var h=0;var spacing=this.getSpacing();var ch=this.getChildren();var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];h+=chc.getMarginTop()+chc.getAnyHeight()+chc.getMarginBottom()+spacing;};return h-spacing;};function QxVerticalBoxLayout(vBlockAlign,vChildrenAlign){QxBoxLayout.call(this,"vertical",vBlockAlign,vChildrenAlign);};QxVerticalBoxLayout.extend(QxBoxLayout,"QxVerticalBoxLayout");proto._checkOrientation=function(_b1,_b2,propData,_b4){if(_b1!="vertical"){throw new Error("Orientation is not configurable in QxVerticalBoxLayout!");};return _b1;};function QxHorizontalBoxLayout(vBlockAlign,vChildrenAlign){QxBoxLayout.call(this,"horizontal",vBlockAlign,vChildrenAlign);};QxHorizontalBoxLayout.extend(QxBoxLayout,"QxHorizontalBoxLayout");proto._checkOrientation=function(_b1,_b2,propData,_b4){if(_b1!="horizontal"){throw new Error("Orientation is not configurable in QxHorizontalBoxLayout!");};return _b1;};function QxFlowLayout(){QxLayout.call(this);};QxFlowLayout.extend(QxLayout,"QxFlowLayout");QxFlowLayout.addProperty({name:"horizontalSpacing",type:Number,defaultValue:0});QxFlowLayout.addProperty({name:"verticalSpacing",type:Number,defaultValue:0});QxFlowLayout.addProperty({name:"horizontalBlockAlign",type:String,defaultValue:"left"});QxFlowLayout.addProperty({name:"verticalChildrenAlign",type:String,defaultValue:"top"});proto._d1=function(){var innerWidth=this.getInnerWidth();var innerHeight=this.getInnerHeight();var blockAlign=this.getHorizontalBlockAlign();var childrenAlign=this.getVerticalChildrenAlign();var spacingX=this.getHorizontalSpacing();var spacingY=this.getVerticalSpacing();var paddingLeft=this.getPaddingLeft();var paddingTop=this.getPaddingTop();var accumulatedWidth=0;var accumulatedHeight=0;var childNeededWidth;var childNeededHeight;var currentRow;var childCalculatedLeft,childCalculatedTop;var maxRequiredRowHeight=0;var rows=[];var childOffsetLeft=[];function storeRow(accumulatedWidth,accumulatedHeight,maxRequiredRowHeight){var r={width:accumulatedWidth,height:maxRequiredRowHeight,offsetTop:accumulatedHeight };switch(blockAlign){case "center":r.offsetLeft=(innerWidth-accumulatedWidth)/2;break;case "right":r.offsetLeft=innerWidth-accumulatedWidth;break;default:r.offsetLeft=0;};rows.push(r);};var ch=this.getChildren();var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];childNeededWidth=chc.getMarginLeft()+chc.getAnyWidth()+chc.getMarginRight();childNeededHeight=chc.getAnyHeight();if((accumulatedWidth+childNeededWidth)>innerWidth){storeRow(accumulatedWidth,accumulatedHeight,maxRequiredRowHeight);chc.__row=rows.length;accumulatedHeight+=maxRequiredRowHeight+spacingY;childOffsetLeft.push(0);accumulatedWidth=childNeededWidth+spacingX;maxRequiredRowHeight=childNeededHeight;}else {chc.__row=rows.length;childOffsetLeft.push(accumulatedWidth);accumulatedWidth+=childNeededWidth+spacingX;maxRequiredRowHeight=Math.max(maxRequiredRowHeight,childNeededHeight);};};storeRow(accumulatedWidth,accumulatedHeight,maxRequiredRowHeight);for(var i=0;i<chl;i++){chc=ch[i];currentRow=rows[chc.__row];delete chc.__row;childCalculatedLeft=paddingLeft+currentRow.offsetLeft+childOffsetLeft[i];childCalculatedTop=paddingTop+currentRow.offsetTop;switch(childrenAlign){case "middle":childCalculatedTop+=(currentRow.height-chc.getAnyHeight())/2;break;case "bottom":childCalculatedTop+=currentRow.height-chc.getAnyHeight();break;};chc._d3Horizontal(childCalculatedLeft);chc._d3Vertical(childCalculatedTop);};return true;};proto._d2=function(){return true;};proto._d5Width=function(_e4,_e5){throw new Error("Auto Width is not supported by QxFlowLayout");};proto._d5Height=function(_e4,_e5){throw new Error("Auto Height is not supported by QxFlowLayout");};function QxDockLayout(){QxLayout.call(this);};QxDockLayout.extend(QxLayout,"QxDockLayout");QxDockLayout.addProperty({name:"respectAutoRequirements",type:Boolean,defaultValue:true});proto.add=function(){var l=arguments.length;var d=arguments[l-1];var o;if(isValidString(d)){l--;}else {d="auto";};for(var i=0;i<l;i++){o=arguments[i];if(!(o instanceof QxWidget)){throw new Error("Invalid Widget:"+o);}else {o.setParent(this);o.setLayoutHint(d);};};return this;};proto._d1=function(){var innerWidth=this.getInnerWidth();if(innerWidth==0){return;};var ch=this.getChildren();var chl=ch.length;var chc,cht;var grouped={left:[],right:[],orthogonal:[],auto:[] };for(var i=0;i<chl;i++){chc=ch[i];cht=chc.getLayoutHint();switch(cht){case "left":case "right":case "auto":grouped[cht].push(chc);break;case "top":case "bottom":grouped["orthogonal"].push(chc);break;default:throw new Error("QxDockLayout does not support layout hint '"+cht+"' for child "+chc);};};if(grouped.auto.length>1){throw new Error("QxDockLayout can not handle multiple auto children!");};var leftList=grouped.left;var leftLength=leftList.length;var leftLast=0;for(var i=0;i<leftLength;i++){chc=leftList[i];chc._d3Horizontal(leftLast);leftLast+=this._prepareSizeValue(chc.getAnyWidth(),innerWidth,chc.getMinWidth(),chc.getMaxWidth());};var rightList=grouped.right;var rightLength=rightList.length;var rightLast=innerWidth;for(var i=0;i<rightLength;i++){chc=rightList[i];rightLast-=this._prepareSizeValue(chc.getAnyWidth(),innerWidth,chc.getMinWidth(),chc.getMaxWidth());chc._d3Horizontal(rightLast);};var orthogonalList=grouped.orthogonal;var orthogonalLength=orthogonalList.length;for(var i=0;i<orthogonalLength;i++){chc=orthogonalList[i];chc._d3Horizontal(0);chc._applySizeHorizontal(innerWidth);};var autoList=grouped.auto;var autoLength=autoList.length;var autoItem=autoList[0];var autoSpace=Math.max(0,rightLast-leftLast);if(autoItem){autoItem._d3Horizontal(leftLast);autoItem._applySizeHorizontal(autoSpace);};};proto._d2=function(){var innerHeight=this.getInnerHeight();if(innerHeight==0){return;};var ch=this.getChildren();var chl=ch.length;var chc,cht;var grouped={top:[],bottom:[],orthogonal:[],auto:[] };for(var i=0;i<chl;i++){chc=ch[i];cht=chc.getLayoutHint();switch(cht){case "top":case "bottom":case "auto":grouped[cht].push(chc);break;case "left":case "right":grouped["orthogonal"].push(chc);break;default:throw new Error("QxDockLayout does not support layout hint '"+cht+"' for child "+chc);};};if(grouped.auto.length>1){throw new Error("QxDockLayout can not handle multiple auto children!");};var topList=grouped.top;var topLength=topList.length;var topLast=0;for(var i=0;i<topLength;i++){chc=topList[i];chc._d3Vertical(topLast);topLast+=this._prepareSizeValue(chc.getAnyHeight(),innerHeight,chc.getMinHeight(),chc.getMaxHeight());};var bottomList=grouped.bottom;var bottomLength=bottomList.length;var bottomLast=innerHeight;for(var i=0;i<bottomLength;i++){chc=bottomList[i];bottomLast-=this._prepareSizeValue(chc.getAnyHeight(),innerHeight,chc.getMinHeight(),chc.getMaxHeight());chc._d3Vertical(bottomLast);};var otherList=grouped.orthogonal.concat(grouped.auto);var otherSpace=Math.max(0,bottomLast-topLast);for(var i=0,l=otherList.length;i<l;i++){chc=otherList[i];chc._d3Vertical(topLast);chc._applySizeVertical(otherSpace);};};proto._d5Width=function(_e4,_e5){var ch=this.getChildren();var chl=ch.length;var chc;var accumulatedWidth=0;var maxSingleRequiredWidth=0;var respectAutoRequirements=this.getRespectAutoRequirements();var tempSize;for(var i=0;i<chl;i++){chc=ch[i];cht=chc.getLayoutHint();switch(cht){case "top":case "bottom":tempSize=chc.getAnyWidth();tempSize=isValidNumber(tempSize)?tempSize:0;maxSingleRequiredWidth=Math.max(Math.min(Math.max(chc.getMinWidth(),tempSize),chc.getMaxWidth()),maxSingleRequiredWidth);break;case "auto":if(!respectAutoRequirements){break;};case "left":case "right":tempSize=chc.getAnyWidth();tempSize=isValidNumber(tempSize)?tempSize:0;accumulatedWidth+=Math.min(Math.max(tempSize,chc.getMinWidth()),chc.getMaxWidth());break;default:throw new Error("QxDockLayout does not support layout hint '"+cht+"' for child "+chc);};};return Math.max(0,accumulatedWidth+maxSingleRequiredWidth);};proto._d5Height=function(_e4,_e5){var ch=this.getChildren();var chl=ch.length;var chc;var accumulatedHeight=0;var maxSingleRequiredHeight=0;var respectAutoRequirements=this.getRespectAutoRequirements();var tempSize;for(var i=0;i<chl;i++){chc=ch[i];cht=chc.getLayoutHint();switch(cht){case "top":case "bottom":tempSize=chc.getAnyHeight();tempSize=isValidNumber(tempSize)?tempSize:0;accumulatedHeight+=Math.min(Math.max(tempSize,chc.getMinHeight()),chc.getMaxHeight());break;case "auto":if(!respectAutoRequirements){break;};case "left":case "right":tempSize=chc.getAnyHeight();tempSize=isValidNumber(tempSize)?tempSize:0;maxSingleRequiredHeight=Math.max(Math.min(Math.max(chc.getMinHeight(),tempSize),chc.getMaxHeight()),maxSingleRequiredHeight);break;default:throw new Error("QxDockLayout does not support layout hint '"+cht+"' for child "+chc);};};return Math.max(0,accumulatedHeight+maxSingleRequiredHeight);};proto._prepareSizeValue=function(size,full,min,max){var t=typeof size=="string"?Math.round(parseInt(size)*full/100):size;if(!isValidNumber){return null;};return t.limit(min,max);};function QxGridLayout(vRows,vCols,vShowVirtualCells){QxLayout.call(this);this._rowHeights=[];this._colWidths=[];this._computedRowTypes=[];this._computedColTypes=[];this._computedRowHeights=[];this._computedColWidths=[];this._virtualCells=[];if(isValid(vShowVirtualCells)){this.setShowVirtualCells(vShowVirtualCells);};if(isValidString(vRows)){this.addRowsFromString(vRows);};if(isValidString(vCols)){this.addColsFromString(vCols);};};QxGridLayout.extend(QxLayout,"QxGridLayout");QxGridLayout.addProperty({name:"constraintMode",type:String,defaultValue:"clip"});QxGridLayout.addProperty({name:"respectSpansInAuto",type:Boolean,defaultValue:false});QxGridLayout.addProperty({name:"showVirtualCells",type:Boolean,defaultValue:false});QxGridLayout.addProperty({name:"cellPaddingTop",type:Number,defaultValue:0});QxGridLayout.addProperty({name:"cellPaddingRight",type:Number,defaultValue:0});QxGridLayout.addProperty({name:"cellPaddingBottom",type:Number,defaultValue:0});QxGridLayout.addProperty({name:"cellPaddingLeft",type:Number,defaultValue:0});proto.add=function(w,h){if(isInvalidNumber(h.colspan)){h.colspan=1;};if(isInvalidNumber(h.rowspan)){h.rowspan=1;};if(isValidNumber(h.padding)){if(isInvalidNumber(h.paddingLeft)){h.paddingLeft=h.padding;};if(isInvalidNumber(h.paddingTop)){h.paddingTop=h.padding;};if(isInvalidNumber(h.paddingRight)){h.paddingRight=h.padding;};if(isInvalidNumber(h.paddingBottom)){h.paddingBottom=h.padding;};}else {if(isInvalidNumber(h.paddingLeft)){h.paddingLeft=this.getCellPaddingLeft();};if(isInvalidNumber(h.paddingTop)){h.paddingTop=this.getCellPaddingTop();};if(isInvalidNumber(h.paddingRight)){h.paddingRight=this.getCellPaddingRight();};if(isInvalidNumber(h.paddingBottom)){h.paddingBottom=this.getCellPaddingBottom();};};if(isInvalid(h.scaleHorizontal)){h.scaleHorizontal=false;};if(isInvalid(h.scaleVertical)){h.scaleVertical=false;};w.setParent(this);w.setLayoutHint(h);};proto.remove=function(w){w.setParent(null);w.setLayoutHint(null);};proto.addRowsFromString=function(vRows){if(isValidString(vRows)){for(var i=0,a=vRows.split(","),l=a.length;i<l;i++){this.addRow(a[i]);};};};proto.addColsFromString=function(vCols){if(isValidString(vCols)){for(var i=0,a=vCols.split(","),l=a.length;i<l;i++){this.addCol(a[i]);};};};proto._anyColSum=0;proto._anyRowSum=0;proto._computeAnyWeight=function(vValue){return parseFloat(vValue.substring(1,vValue.length))||1;};proto.addRow=function(vHeight){var vPos=this._rowHeights.length+1;var vComputed,vType,vAnyWeight;switch(typeof vHeight){case "number":vComputed=vHeight;vType="static";break;case "string":if(vHeight=="auto"){vType="auto";vComputed=this._computeAutoRowHeight(vPos,vHeight);break;}else if(vHeight.indexOf("*")==0){vType="any";this._anyRowSum+=this._computeAnyWeight(vHeight);vComputed=this._computeAnyRowHeight(vPos,vHeight);break;}else if(vHeight.indexOf("%")==(vHeight.length-1)){vType="percent";vComputed=this._computePercentRowHeight(vPos,vHeight);break;};var vTemp=parseInt(vHeight);if(!isNaN(vTemp)){vComputed=vTemp;vType="static";break;};default:throw new Error("Unsupported Row Type:"+vHeight);};this._rowHeights.push(vHeight);this._rowCount=this._rowHeights.length;if(isValidString(vType)){this._computedRowTypes.push(vType);};if(isValidNumber(vComputed)){this._computedRowHeights.push(vComputed);};if(this.getShowVirtualCells()){for(var i=0,l=this.getColCount();i<l;i++){this._virtualCells.push(document.createElement("div"));};};};proto.addCol=function(vWidth){var vPos=this._colWidths.length+1;var vComputed,vType;switch(typeof vWidth){case "number":vComputed=vWidth;vType="static";break;case "string":if(vWidth=="auto"){vType="auto";vComputed=this._computeAutoColWidth(vPos,vWidth);break;}else if(vWidth.indexOf("*")==0){vType="any";this._anyColSum+=this._computeAnyWeight(vWidth);vComputed=this._computeAnyColWidth(vPos,vWidth);break;}else if(vWidth.indexOf("%")==(vWidth.length-1)){vType="percent";vComputed=this._computePercentColWidth(vPos,vWidth);break;};var vTemp=parseInt(vWidth);if(!isNaN(vTemp)){vComputed=vTemp;vType="static";break;};default:throw new Error("Unsupported Col Type:"+vWidth);};this._colWidths.push(vWidth);this._colCount=this._colWidths.length;if(isValidString(vType)){this._computedColTypes.push(vType);};if(isValidNumber(vComputed)){this._computedColWidths.push(vComputed);};if(this.getShowVirtualCells()){for(var i=0,l=this.getRowCount();i<l;i++){this._virtualCells.insertAt(document.createElement("div"),i*this._colCount);};};};proto.getRowCount=function(){return this._rowCount;};proto.getColCount=function(){return this._colCount;};proto._layoutHorizontalInitialDone=false;proto._d1=function(_e5,vModifiedChild){if(!this._layoutHorizontalInitialDone){_e5="initial";};var vCol;switch(_e5){case "initial":for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){this._layoutHorizontal(chc);};break;case "load":case "size":case "load":case "size":if(!vModifiedChild){break;};this._updateAutoCols(vModifiedChild);case "append-child-light":case "remove-child-light":var vMatchCol=vModifiedChild.getLayoutHint().col;var vLayoutHint;var vCol;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){vLayoutHint=chc.getLayoutHint();vCol=vLayoutHint.col;if(vCol>=vMatchCol||(vCol<vMatchCol&&(vLayoutHint.colspan+vCol)>=vMatchCol)){this._layoutHorizontal(chc);};};break;case "append-child":var vChange=false;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){vCol=chc.getLayoutHint().col;if(vChange){this._layoutHorizontal(chc);}else {switch(this._computedColTypes[vCol-1]){case "auto":this._layoutHorizontal(chc);vChange=true;break;};};};break;case "inner-width":var vChange=false;var vLayoutHint,vColSpan;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){vLayoutHint=chc.getLayoutHint();vCol=vLayoutHint.col;if(vChange){this._layoutHorizontal(chc);}else {switch(this._computedColTypes[vCol-1]){case "percent":case "any":this._layoutHorizontal(chc);vChange=true;break;default:vColSpan=vLayoutHint.colspan;for(var j=1;j<vColSpan;j++){switch(this._computedColTypes[vCol-1+j]){case "percent":case "any":this._layoutHorizontal(chc);vChange=true;break;};};};};};break;};this._layoutHorizontalInitialDone=true;};proto._layoutVerticalInitialDone=false;proto._d2=function(_e5,vModifiedChild){if(!this._layoutVerticalInitialDone){_e5="initial";};var vRow;switch(_e5){case "initial":for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){this._layoutVertical(chc);};break;case "load":case "size":if(!vModifiedChild){break;};this._updateAutoRows(vModifiedChild);case "append-child-light":case "remove-child-light":var vMatchRow=vModifiedChild.getLayoutHint().row;var vLayoutHint;var vRow;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){vLayoutHint=chc.getLayoutHint();vRow=vLayoutHint.row;if(vRow>=vMatchRow||(vRow<vMatchRow&&(vLayoutHint.rowspan+vRow)>=vMatchRow)){this._layoutVertical(chc);};};break;case "append-child":var vChange=false;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){vRow=chc.getLayoutHint().row;if(vChange){this._layoutVertical(chc);}else {switch(this._computedRowTypes[vRow-1]){case "auto":this._layoutVertical(chc);vChange=true;break;};};};break;case "inner-height":var vChange=false;var vLayoutHint,vRowSpan;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){vLayoutHint=chc.getLayoutHint();vRow=vLayoutHint.row;if(vChange){this._layoutVertical(chc);}else {switch(this._computedRowTypes[vRow-1]){case "percent":case "any":this._layoutVertical(chc);vChange=true;break;default:vRowSpan=vLayoutHint.rowspan;for(var j=1;j<vRowSpan;j++){switch(this._computedRowTypes[vRow-1+j]){case "percent":case "any":this._layoutVertical(chc);vChange=true;break;};};};};};break;};this._layoutVerticalInitialDone=true;};proto._layoutHorizontal=function(vWidget){if(!vWidget.isCreated()){return;};var _e5=vWidget.getLayoutHint();var vRow=_e5.row-1;var vCol=_e5.col-1;var vColSpan=_e5.colspan;var vColCount=this.getColCount();var vLeft=this.getPaddingLeft();var vWidth=0;for(var i=0;i<vCol;i++){vLeft+=this._computedColWidths[i];};for(var j=0;j<vColSpan;j++){vWidth+=this._computedColWidths[i+j];};var vAvailableWidth=vWidth-_e5.paddingLeft-_e5.paddingRight;var vClip=vWidget.getClip();if(vClip){vClip[1]=vAvailableWidth;vWidget.forceClip(null);vWidget.setClip(vClip);}else {vWidget.setClip([0,vAvailableWidth,0,0])};if(this.getShowVirtualCells()){var vCell=this._virtualCells[(vRow*vColCount)+vCol];var vCellStyle=vCell.style;vCellStyle.position="absolute";vCellStyle.border="1px solid #4D79FF";vCellStyle.left=vLeft+"px";vCellStyle.width=vWidth+"px";vCellStyle.zIndex="-1";if(!vCellStyle.parentNode){this.getElement().appendChild(vCell);};};switch(vWidget.getHorizontalAlign()){case "center":vLeft+=Math.max((vAvailableWidth-vWidget.getAnyWidth())/2,0);break;case "right":vLeft+=Math.max(vAvailableWidth-vWidget.getAnyWidth(),0);break;};vWidget._d3Horizontal(vLeft+_e5.paddingLeft);if(_e5.scaleHorizontal){vWidget._applySizeHorizontal(vAvailableWidth);};};proto._layoutVertical=function(vWidget){if(!vWidget.isCreated()){return;};var _e5=vWidget.getLayoutHint();var vRow=_e5.row-1;var vCol=_e5.col-1;var vRowSpan=_e5.rowspan;var vColCount=this.getColCount();var vTop=this.getPaddingTop();var vHeight=0;for(var i=0;i<vRow;i++){vTop+=this._computedRowHeights[i];};for(var j=0;j<vRowSpan;j++){vHeight+=this._computedRowHeights[i+j];};var vAvailableHeight=vHeight-_e5.paddingTop-_e5.paddingBottom;var vClip=vWidget.getClip();if(vClip){vClip[2]=vAvailableHeight;vWidget.forceClip(null);vWidget.setClip(vClip);}else {vWidget.setClip([0,0,vAvailableHeight,0])};if(this.getShowVirtualCells()){var vCell=this._virtualCells[(vRow*vColCount)+vCol];var vCellStyle=vCell.style;vCellStyle.position="absolute";vCellStyle.border="1px solid #4D79FF";vCellStyle.top=vTop+"px";vCellStyle.height=vHeight+"px";vCellStyle.zIndex="-1";if(!vCellStyle.parentNode){this.getElement().appendChild(vCell);};};switch(vWidget.getVerticalAlign()){case "middle":vTop+=Math.max((vAvailableHeight-vWidget.getAnyHeight())/2,0);break;case "bottom":vTop+=Math.max(vAvailableHeight-vWidget.getAnyHeight(),0);break;};vWidget._d3Vertical(vTop+_e5.paddingTop);if(_e5.scaleVertical){vWidget._applySizeVertical(vAvailableHeight);};};proto._updatePercentCols=function(){var vColCount=this.getColCount();for(var i=0;i<vColCount;i++){if(this._computedColTypes[i]=="percent"){this._computedColWidths[i]=this._computePercentColWidth(i,this._colWidths[i]);};};};proto._updatePercentRows=function(){var vRowCount=this.getRowCount();for(var i=0;i<vRowCount;i++){if(this._computedRowTypes[i]=="percent"){this._computedRowHeights[i]=this._computePercentRowHeight(i,this._rowHeights[i]);};};};proto._updateAnyCols=function(){var vColCount=this.getColCount();var vRet=false;var vNew;for(var i=0;i<vColCount;i++){if(this._computedColTypes[i]=="any"){vNew=this._computeAnyColWidth(i,this._colWidths[i]);if(vNew!=this._computedColWidths[i]){this._computedColWidths[i]=vNew;vRet=true;};};};return vRet;};proto._updateAnyRows=function(){var vRowCount=this.getRowCount();var vRet=false;var vNew;for(var i=0;i<vRowCount;i++){if(this._computedRowTypes[i]=="any"){vNew=this._computeAnyRowHeight(i,this._rowHeights[i]);if(vNew!=this._computedRowHeights[i]){this._computedRowHeights[i]=vNew;vRet=true;};};};return vRet;};proto._updateAutoRows=function(otherObject){var _e5=otherObject.getLayoutHint();var vRow=_e5.row;if(this._computedRowTypes[vRow-1]=="auto"){var vNew=this._computeAutoRowHeight(vRow);if(vNew!=this._computedRowHeights[vRow-1]){this._computedRowHeights[vRow-1]=vNew;return true;};};return false;};proto._updateAutoCols=function(otherObject){var _e5=otherObject.getLayoutHint();var vCol=_e5.col;if(this._computedColTypes[vCol-1]=="auto"){var vNew=this._computeAutoColWidth(vCol);if(vNew!=this._computedColWidths[vCol-1]){this._computedColWidths[vCol-1]=vNew;return true;};};return false;};proto._onnewchild=function(otherObject){if(this._updateAutoRows(otherObject)){if(this._updateAnyRows()){this._d2("inner-height");};this._d2("append-child",otherObject);}else {this._d2("append-child-light",otherObject);};if(this._updateAutoCols(otherObject)){if(this._updateAnyCols()){this._d1("inner-width");};this._d1("append-child",otherObject);}else {this._d1("append-child-light",otherObject);};};proto._onremovechild=function(otherObject){if(this._updateAutoRows(otherObject)){if(this._updateAnyRows()){this._d2("inner-height");};this._d2("remove-child",otherObject);}else {this._d2("remove-child-light",otherObject);};if(this._updateAutoCols(otherObject)){if(this._updateAnyCols()){this._d1("inner-width");};this._d1("remove-child",otherObject);}else {this._d1("remove-child-light",otherObject);};};proto._innerWidthChanged=function(){this._d4Width();this._updatePercentCols();this._updateAnyCols();this._d1("inner-width");var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderHorizontal("parent");};};proto._innerHeightChanged=function(){this._d4Height();this._updatePercentRows();this._updateAnyRows();this._d2("inner-height");var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderVertical("parent");};};proto._computePercentRowHeight=function(vPos,vHeight){if(!this.isCreated()){return 0;};vHeight=parseFloat(vHeight);if(isNaN(vHeight)){return 0;};return Math.round(this.getInnerHeight()*vHeight/100);};proto._computePercentColWidth=function(vPos,vWidth){if(!this.isCreated()){return 0;};vWidth=parseFloat(vWidth);if(isNaN(vWidth)){return 0;};return Math.round(this.getInnerWidth()*vWidth/100);};proto._computeAutoRowHeight=function(vPos){var vMaxHeight=0;var _e5;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){_e5=chc.getLayoutHint();if(_e5.row==vPos){vMaxHeight=Math.max(chc.getAnyHeight()+_e5.paddingTop+_e5.paddingBottom,vMaxHeight);};};return vMaxHeight;};proto._computeAutoColWidth=function(vPos){var vMaxWidth=0;var _e5;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){_e5=chc.getLayoutHint();if(_e5.col==vPos){vMaxWidth=Math.max(chc.getAnyWidth()+_e5.paddingLeft+_e5.paddingRight,vMaxWidth);};};return vMaxWidth;};proto._computeAnyRowHeight=function(vPos,vHeight){if(!this.isCreated()){return 0;};var innerHeight=this.getInnerHeight();var rows=this._computedRowHeights;var rowLength=rows.length;var rowTypes=this._computedRowTypes;var anyCount=0;for(var i=0;i<rowLength;i++){if(rowTypes[i]!="any"){innerHeight-=rows[i];};};return Math.max(0,Math.round(innerHeight/this._anyRowSum*this._computeAnyWeight(vHeight)));};proto._computeAnyColWidth=function(vPos,vWidth){if(!this.isCreated()){return 0;};var innerWidth=this.getInnerWidth();var cols=this._computedColWidths;var colLength=cols.length;var colTypes=this._computedColTypes;var anyCount=0;for(var i=0;i<colLength;i++){if(colTypes[i]!="any"){innerWidth-=cols[i];};};return Math.max(0,Math.round(innerWidth/this._anyColSum*this._computeAnyWeight(vWidth)));};function QxDomSelectionManager(vBoundedWidget){QxSelectionManager.call(this,vBoundedWidget);this.setDragSelection(false);this._j5.getItemHashCode=this.getItemHashCode;};QxDomSelectionManager.extend(QxSelectionManager,"QxDomSelectionManager");proto.getItemEnabled=function(oItem){return true;};proto.getItemClassName=function(vItem){return vItem.className||"";};proto.setItemClassName=function(vItem,vClassName){return vItem.className=vClassName;};proto.getItemBaseClassName=function(vItem){var p=vItem.className.split(" ")[0];return p?p:"Status";};proto.getNextSibling=function(vItem){return vItem.nextSibling;};proto.getPreviousSibling=function(vItem){return vItem.previousSibling;};proto.getItemHashCode=function(vItem){return vItem.toHash();};proto.getItemLeft=function(vItem){return vItem.offsetLeft;};proto.getItemTop=function(vItem){return vItem.offsetTop;};proto.getItemWidth=function(vItem){return vItem.offsetWidth;};proto.getItemHeight=function(vItem){return vItem.offsetHeight;};proto.getItemHashCode=function(oItem){if(oItem._hash){return oItem._hash;};return oItem._hash=QxObject.toHash(oItem);};proto.isBefore=function(vItem1,vItem2){var pa=vItem1.parentNode;for(var i=0,l=pa.childNodes.length;i<l;i++){switch(pa.childNodes[i]){case vItem2:return false;case vItem1:return true;};};};proto.scrollItemIntoView=function(vItem){this.getBoundedWidget().scrollItemIntoView(vItem);};proto.getItems=function(){return this.getBoundedWidget().getItems();};proto.getAbove=function(vItem){var vParent=vItem.parentNode;var vFound=false;var vLeft=vItem.offsetLeft;var vChild;for(var i=vParent.childNodes.length-1;i>0;i--){vChild=vParent.childNodes[i];if(vFound==false){if(vChild==vItem){vFound=true;};}else {if(vChild.offsetLeft==vLeft){return vChild;};};};};proto.getUnder=function(vItem){var vParent=vItem.parentNode;var vFound=false;var vLeft=vItem.offsetLeft;var vChild;for(var i=0,l=vParent.childNodes.length;i<l;i++){vChild=vParent.childNodes[i];if(vFound==false){if(vChild==vItem){vFound=true;};}else {if(vChild.offsetLeft==vLeft){return vChild;};};};};function QxGallery(vGalleryList){QxWidget.call(this);this._blank=(new QxImageManager).getBlank();this._list=vGalleryList;this._addCssClassName("QxWidget");this.setOverflow("auto");this._manager=new QxDomSelectionManager(this);this._manager.setMultiColumnSupport(true);this.addEventListener("mousedown",this._g1);this.addEventListener("mouseup",this._g2);this.addEventListener("mousemove",this._onmousemove);this.addEventListener("click",this._g3);this.addEventListener("dblclick",this._ondblclick);this.addEventListener("keydown",this._g4);};QxGallery.extend(QxWidget,"QxGallery");QxGallery.addProperty({name:"thumbMaxWidth",type:Number,defaultValue:100});QxGallery.addProperty({name:"thumbMaxHeight",type:Number,defaultValue:100});QxGallery.addProperty({name:"decorHeight",type:Number,defaultValue:40});QxGallery.addProperty({name:"showTitle",type:Boolean,defaultValue:true});QxGallery.addProperty({name:"showComment",type:Boolean,defaultValue:true});proto._modifyVisible=function(_b1,_b2,_b3,_b4){if(_b1){var o=this;window.setTimeout(function(){o.getElement().appendChild(o.createView());},100);};return QxWidget.prototype._modifyVisible.call(this,_b1,_b2,_b3,_b4);};proto.getManager=function(){return this._manager;};proto.getList=function(){return this._list;};proto.update=function(vGalleryList){this._manager.deselectAll();this._list=vGalleryList;var el=this.getElement();el.replaceChild(this.createView(),el.firstChild);};proto.removeAll=function(){this._manager.deselectAll();this.getElement().innerHTML="";};proto.updateImageSrcById=function(vId,vSrc){return this.updateImageSrcByPosition(this.getPositionById(vId),vSrc);};proto.updateImageSrcByPosition=function(vPos,vSrc){if(vPos==-1){throw new Error("No valid Position:"+vPos);};var vNode=this.getNodeByPosition(vPos);vNode.getElementsByTagName("IMG")[0].src=vSrc;this._list.src=vSrc;};proto.deleteById=function(vId){this.deleteByPosition(this.getPositionById(vId));};proto.deleteByPosition=function(vPos){if(vPos==-1){throw new Error("No valid Position:"+vPos);};var vNode=this.getNodeByPosition(vPos);if(vNode){vNode.parentNode.removeChild(vNode);};this._list.removeAt(vPos);};proto.getPositionById=function(vId){for(var i=0,a=this._list,l=a.length;i<l;i++){if(a[i].id==vId){return i;};};return-1;};proto.getEntryById=function(vId){return this.getEntryByPosition(this.getPositionById(vId));};proto.getNodeById=function(vId){return this.getNodeByPosition(this.getPositionById(vId));};proto.getEntryByPosition=function(vPosition){return vPosition==-1?null:this._list[vPosition];};proto.getNodeByPosition=function(vPosition){return vPosition==-1?null:this._frame.childNodes[vPosition];};proto.getEntryByNode=function(vNode){return this.getEntryById(vNode.id);};proto.addFromPartialList=function(vPartialList){this.concat(vPartialList);for(var i=0,a=vPartialList,l=a.length;i<l;i++){this._frame.appendChild(this.createCell(a[i]));};};proto.addFromUpdatedList=function(vNewList){for(var a=vNewList,l=a.length,i=this._list.length;i<l;i++){this._frame.appendChild(this.createCell(a[i]));};this._list=vNewList;};proto._g1=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleMouseDown(vItem,e);};};proto._g2=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleMouseUp(vItem,e);};};proto._onmousemove=function(e){if(typeof QxToolTipManager!="function"){return;};var vItem=this.getListItemTarget(e.getDomTarget());if(vItem==this._lastItem){return;};if(this._lastItem){var vEventObject=new QxMouseEvent("mouseout",e,false,this._lastItem);(new QxToolTipManager).handleMouseOut(vEventObject);vEventObject.dispose();};if(vItem){if(this.hasEventListeners("beforeToolTipAppear")){this.dispatchEvent(new QxDataEvent("beforeToolTipAppear",vItem));};if(!this.getToolTip()){return;};var vEventObject=new QxMouseEvent("mouseout",e,false,vItem);(new QxToolTipManager).handleMouseOver(vEventObject);vEventObject.dispose();this.setToolTip(null);};this._lastItem=vItem;};proto._g3=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleClick(vItem,e);};};proto._ondblclick=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleDblClick(vItem,e);};};proto._g4=function(e){this._manager.handleKeyDown(e);};proto.getListItemTarget=function(dt){while(dt.className.indexOf("galleryCell")==-1&&dt.tagName!="BODY"){dt=dt.parentNode;};if(dt.tagName=="BODY"){return null;};return dt;};proto.scrollItemIntoView=function(vItem){this.scrollItemIntoViewX(vItem);this.scrollItemIntoViewY(vItem);};proto.scrollItemIntoViewX=function(vItem){QxDOM.scrollIntoViewX(vItem,vItem.parentNode.parentNode);};proto.scrollItemIntoViewY=function(vItem){QxDOM.scrollIntoViewY(vItem,vItem.parentNode.parentNode);};proto.getItems=function(){return this._frame.childNodes;};proto.getFirstChild=function(){return this._frame.childNodes[0];};proto.getLastChild=function(){return this._frame.childNodes[this._frame.childNodes.length-1];};proto.createView=function(){var s=(new Date).valueOf();var tWidth=this.getThumbMaxWidth();var tHeight=this.getThumbMaxHeight();if(!this._protoCell){this.createProtoCell();};this._frame=document.createElement("div");this._frame.className="galleryFrame clearfix";for(var i=0,a=this._list,l=a.length;i<l;i++){this._frame.appendChild(this.createCell(a[i]));};return this._frame;};proto.createCell=function(d){var cframe=this._protoCell.cloneNode(true);cframe.id=d.id;cframe.pos=i;if(this.getShowTitle()){cnode=cframe.childNodes[0];cnode.firstChild.nodeValue=d.title;};var cnode=cframe.childNodes[this.getShowTitle()?1:0];cnode.width=d.thumbWidth;cnode.height=d.thumbHeight;if(cnode.runtimeStyle&&!window.opera){cnode.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+d.src+"',sizingMethod='scale')";}else{cnode.src=d.src;};cnode.style.marginLeft=cnode.style.marginRight=Math.floor((this.getThumbMaxWidth()-d.thumbWidth)/2)+"px";cnode.style.marginTop=cnode.style.marginBottom=Math.floor((this.getThumbMaxHeight()-d.thumbHeight)/2)+"px";if(this.getShowComment()){cnode=cframe.childNodes[this.getShowTitle()?2:1];cnode.firstChild.nodeValue=d.comment;};return cframe;};proto.createProtoCell=function(){var frame=this._protoCell=document.createElement("div");frame.className="galleryCell";frame.unselectable="on";frame.style.width=this.getThumbMaxWidth()+"px";frame.style.height=(this.getThumbMaxHeight()+this.getDecorHeight())+"px";if(this.getShowTitle()){var title=document.createElement("div");title.className="galleryTitle";title.unselectable="on";var ttext=document.createTextNode("-");title.appendChild(ttext);frame.appendChild(title);};var image=new Image();image.src=this._blank;frame.appendChild(image);if(this.getShowComment()){var comment=document.createElement("div");comment.className="galleryComment";comment.unselectable="on";var ctext=document.createTextNode("-");comment.appendChild(ctext);frame.appendChild(comment);};};function QxGalleryList(galleryList){QxWidget.call(this);this._blank=(new QxImageManager).getBlank();this._list=galleryList;this.setOverflow("auto");this._manager=new QxDomSelectionManager(this);this.addEventListener("mousedown",this._g1);this.addEventListener("mouseup",this._g2);this.addEventListener("click",this._g3);this.addEventListener("dblclick",this._ondblclick);this.addEventListener("keydown",this._g4);};QxGalleryList.extend(QxWidget,"QxGalleryList");QxGalleryList.addProperty({name:"thumbMaxWidth",type:Number,defaultValue:60});QxGalleryList.addProperty({name:"thumbMaxHeight",type:Number,defaultValue:60});QxGalleryList.addProperty({name:"decorHeight",type:Number,defaultValue:40});proto.getManager=function(){return this._manager;};proto._modifyVisible=function(_b1,_b2,_b3,_b4){if(_b1){var o=this;window.setTimeout(function(){o.getElement().appendChild(o.createView());},100);};return QxWidget.prototype._modifyVisible.call(this,_b1,_b2,_b3,_b4);};proto._g1=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleMouseDown(vItem,e);};};proto._g2=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleMouseUp(vItem,e);};};proto._g3=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleClick(vItem,e);};};proto._ondblclick=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleDblClick(vItem,e);};};proto._g4=function(e){this._manager.handleKeyDown(e);};proto.getListItemTarget=function(dt){while(dt.className.indexOf("galleryCell")==-1&&dt.tagName!="BODY"){dt=dt.parentNode;};if(dt.tagName=="BODY"){return null;};return dt;};proto.scrollItemIntoView=function(vItem){this.scrollItemIntoViewX(vItem);this.scrollItemIntoViewY(vItem);};proto.scrollItemIntoViewX=function(vItem){QxDOM.scrollIntoViewX(vItem,vItem.parentNode.parentNode);};proto.scrollItemIntoViewY=function(vItem){QxDOM.scrollIntoViewY(vItem,vItem.parentNode.parentNode);};proto.getItems=function(){return this._frame.childNodes;};proto.getFirstChild=function(){return this._frame.childNodes[0];};proto.getLastChild=function(){return this._frame.childNodes[this._frame.childNodes.length-1];};proto.createView=function(){var s=(new Date).valueOf();var tWidth=this.getThumbMaxWidth();var tHeight=this.getThumbMaxHeight();var protoCell=this.createProtoCell(tHeight);var frame=this._frame=document.createElement("div");this._frame.className="galleryFrame clearfix";var cframe,cnode;for(var i=0,a=this._list,l=a.length,d;i<l;i++){d=a[i];cframe=protoCell.cloneNode(true);cframe.id=d.id;cframe.pos=i;cnode=cframe.childNodes[0];cnode.firstChild.nodeValue=d.number;cnode=cframe.childNodes[1].firstChild;cnode.width=d.thumbWidth;cnode.height=d.thumbHeight;if(cnode.runtimeStyle&&!window.opera){cnode.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+d.src+"',sizingMethod='scale')";}else{cnode.src=d.src;};cnode.style.marginLeft=cnode.style.marginRight=Math.floor((tWidth-d.thumbWidth)/2)+"px";cnode.style.marginTop=cnode.style.marginBottom=Math.floor((tHeight-d.thumbHeight)/2)+"px";cnode=cframe.childNodes[2].firstChild;cnode.firstChild.nodeValue=d.title;cnode=cframe.childNodes[2].lastChild;cnode.firstChild.nodeValue=d.comment;frame.appendChild(cframe);};return frame;};proto.createProtoCell=function(tHeight){var frame=document.createElement("div");frame.className="galleryCell";frame.unselectable="on";frame.style.height=(tHeight+2)+"px";var number=document.createElement("div");number.className="galleryNumber";number.unselectable="on";var ntext=document.createTextNode("-");number.appendChild(ntext);var imageContainer=document.createElement("div");imageContainer.className="galleryImageContainer";imageContainer.unselectable="on";var image=new Image();image.src=this._blank;imageContainer.appendChild(image);var text=document.createElement("div");text.className="galleryText";text.unselectable="on";text.style.width=(this.getWidth()-100-this.getThumbMaxWidth())+"px";var title=document.createElement("h3");var ttext=document.createTextNode("-");title.appendChild(ttext);title.unselectable="on";text.appendChild(title);var comment=document.createElement("p");var ctext=document.createTextNode("-");comment.appendChild(ctext);comment.unselectable="on";text.appendChild(comment);frame.appendChild(number);frame.appendChild(imageContainer);frame.appendChild(text);return frame;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/types/QxColor.js b/swat/style/qooxdoo/widgets/types/QxColor.js
new file mode 100644 (file)
index 0000000..bb72695
--- /dev/null
@@ -0,0 +1,3 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxColor(v){var v1=QxColor.read(v);var v2=QxColor.RGB2CSS(v1);return v2;};QxColor.m_hex=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];QxColor.r_hex3 = /^#[0-9A-Fa-f]{3}$/;QxColor.r_hex6 = /^#[0-9A-Fa-f]{6}$/;QxColor.r_cssrgb = /^rgb\([0-9]{1,3}\.{0,1}[0-9]*,\s*[0-9]{1,3}\.{0,1}[0-9]*,\s*[0-9]{1,3}\.{0,1}[0-9]*\)$/;QxColor.r_rgb = /^[0-9]{1,3},[0-9]{1,3},[0-9]{1,3}$/;QxColor.r_number = /^[0-9]{1,3}\.{0,1}[0-9]*$/;QxColor.r_percent = /^[0-9]{1,3}\.{0,1}[0-9]*%$/;QxColor.os=["activeborder","activecaption","appworkspace","background","buttonface","buttonhighlight","buttonshadow","buttontext","captiontext","graytext","highlight","highlighttext","inactiveborder","inactivecaption","inactivecaptiontext","infobackground","infotext","menu","menutext","scrollbar","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","window","windowframe","windowtext"];QxColor.names={white:[255,255,255],black:[0,0,0],grey:[128,128,128],gray:[128,128,128],red:[255,0,0],green:[0,128,0],blue:[0,0,255],yellow:[255,255,0],orange:[255,165,0],purple:[128,0,128],cyan:[0,255,255],magenta:[255,0,255]
+};QxColor.read=function(v){if(v==null||v==""){return null;}else if(v=="transparent"){return v;}else if(typeof v=="object"){if(typeof v.length=="undefined"||v.length==0)throw new Error("Malformed Object");if(v.length==1)return[v[0],v[0],v[0]];else if(v.length==3)return v;else throw new Error("Malformed Object");}else if(v=="false"||v==false){return[0,0,0];}else if(v=="true"||v==true){return[255,255,255];}else if(typeof QxColor.names[v]=="object"){return QxColor.names[v];}else if(QxColor.os.contains(v.toString().toLowerCase())){return v;}else if(QxColor.r_hex3.test(v)){var r=[];var s;v=v.toUpperCase();for(var i=0;i<3;i++){s=QxColor.m_hex.indexOf(v.charAt(i+1));r[i]=(s*16)+s;};return r;}else if(QxColor.r_hex6.test(v)){var r=[];var s1,s2;v=v.toUpperCase();for(var i=0;i<3;i++){s1=QxColor.m_hex.indexOf(v.charAt((i*2)+1));s2=QxColor.m_hex.indexOf(v.charAt((i*2)+2));r[i]=(s1*16)+s2;};return r;}else if(QxColor.r_cssrgb.test(v)||QxColor.r_rgb.test(v)){if(QxColor.r_cssrgb.test(v)){v=v.substring(4,v.length-1);};v = v.split(/,\s*/);for(var i=0;i<3;i++){v[i]=Math.round(v[i]);if(v[i]>255||v[i]<0){throw new Error("Malformed RGB color value");};};return v;}else if(QxColor.r_number.test(v)){v=Math.round(parseFloat(v));if(isNaN(v)){throw new Error("Malformed numeric color value");};return[v,v,v];}else if(QxColor.r_percent.test(v)){v1=Math.round(255*parseFloat(v.replace("%",""))/100);if(v>255||v<0){throw new Error("Malformed percent color value");};return[v,v,v];};QxDebug("QxColor","Failed to read color value:"+v);return[0,0,0];};QxColor.RGB2CSS=function(){if(arguments.length==3){return "rgb("+arguments[0]+","+arguments[1]+","+arguments[2]+")";}else if(arguments.length==1){if(typeof arguments[0]=="string")return arguments[0];else if(arguments[0]==null)return "";else return "rgb("+arguments[0][0]+","+arguments[0][1]+","+arguments[0][2]+")";};return;};QxColor.RGB2HSB=function(r,g,b){var hue,saturation,brightness;r=parseFloat(r);g=parseFloat(g);b=parseFloat(b);var hsbvals=new Array(3);var cmax=(r>g)?r:g;if(b>cmax)cmax=b;var cmin=(r<g)?r:g;if(b<cmin)cmin=b;brightness=cmax/255.0;if(cmax!=0){saturation=(cmax-cmin)/cmax;}else {saturation=0;};if(saturation==0){hue=0;}else {var redc=(cmax-r)/(cmax-cmin);var greenc=(cmax-g)/(cmax-cmin);var bluec=(cmax-b)/(cmax-cmin);if(r==cmax){hue=bluec-greenc;}else if(g==cmax){hue=2.0+redc-bluec;}else {hue=4.0+greenc-redc;};hue=hue/6.0;if(hue<0)hue=hue+1.0;};hsbvals[0]=Math.round(hue*360);hsbvals[1]=Math.round(saturation*100);hsbvals[2]=Math.round(brightness*100);return hsbvals;};QxColor.HSB2RGB=function(h,s,b){var i,f,p,q,t,retval;h=parseFloat(h/360);s=parseFloat(s/100);b=parseFloat(b/100);if(h>=1.0)h %=1.0;if(s>1.0)s=1.0;if(b>1.0)b=1.0;var tov=Math.floor(255*b);if(s==0.0){retval=new Array(tov,tov,tov);}else {h*=6.0;i=Math.floor(h);f=h-i;p=Math.floor(tov*(1.0-s));q=Math.floor(tov*(1.0-(s*f)));t=Math.floor(tov*(1.0-(s*(1.0-f))));if(i==0)retval=new Array(tov,t,p);if(i==1)retval=new Array(q,tov,p);if(i==2)retval=new Array(p,tov,t);if(i==3)retval=new Array(p,q,tov);if(i==4)retval=new Array(t,p,tov);if(i==5)retval=new Array(tov,p,q);};return retval;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/types/QxInteger.js b/swat/style/qooxdoo/widgets/types/QxInteger.js
new file mode 100644 (file)
index 0000000..aca33b4
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxInteger(v){return Math.round(QxNumber(v));};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/types/QxNumber.js b/swat/style/qooxdoo/widgets/types/QxNumber.js
new file mode 100644 (file)
index 0000000..4c42444
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxNumber(v){if(typeof v=="number"){return v;}else if(typeof v=="string"){if(v=="true"||v=="false"){return Number(Boolean(v));}else {return parseFloat(v);};}else if(typeof v=="boolean"){return Number(v);}else {return NaN;};};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/types/QxString.js b/swat/style/qooxdoo/widgets/types/QxString.js
new file mode 100644 (file)
index 0000000..bdeaad5
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxString(v){return String(v);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/types/QxTextile.js b/swat/style/qooxdoo/widgets/types/QxTextile.js
new file mode 100644 (file)
index 0000000..037876c
--- /dev/null
@@ -0,0 +1,4 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTextile(s){var r=s;qtags=[
+["\\*","strong"],["\\?\\?","cite"],["\\+","ins"],["~","sub"],["\\^","sup"],["@","code"]
+];for(var i=0;i<qtags.length;i++){ttag=qtags[i][0];htag=qtags[i][1];re=new RegExp(ttag+"\\b(.+?)\\b"+ttag,"g");r=r.replace(re,"<"+htag+">"+"$1"+"</"+htag+">");};re=new RegExp("\\b_(.+?)_\\b","g");r=r.replace(re,"<em>$1</em>");re=new RegExp("[\s\n]-(.+?)-[\s\n]","g");r=r.replace(re,"<del>$1</del>");re=new RegExp('"\\b(.+?)\\(\\b(.+?)\\b\\)":([^\\s]+)','g');r=r.replace(re,'<a href="$3" title="$2">$1</a>');re=new RegExp('"\\b(.+?)\\b":([^\\s]+)','g');r=r.replace(re,'<a href="$2">$1</a>');re=new RegExp("!\\b(.+?)\\(\\b(.+?)\\b\\)!","g");r=r.replace(re,'<img src="$1" alt="$2">');re=new RegExp("!\\b(.+?)\\b!","g");r=r.replace(re,'<img src="$1">');re=new RegExp("(.*)\n([^#\*\n].*)","g");r=r.replace(re,"$1<br/>$2");re=new RegExp("\n<br/>","g");r=r.replace(re,"\n");lines=r.split("\n");nr="";for(var i=0;i<lines.length;i++){line = lines[i].replace(/\s*$/,"");changed=0;if (line.search(/^\s*bq\.\s+/) != -1){line = line.replace(/^\s*bq\.\s+/,"\t<blockquote>")+"</blockquote>";changed=1;};if (line.search(/^\s*h[1-6]\.\s+/) != -1){re=new RegExp("h([1-6])\.(.+)","g");line=line.replace(re,"<h$1>$2</h$1>");changed=1;};if (line.search(/^\s*\*\s+/) != -1){line = line.replace(/^\s*\*\s+/,"\t<liu>") + "</liu>";changed=1;};if (line.search(/^\s*#\s+/) != -1){line = line.replace(/^\s*#\s+/,"\t<lio>") + "</lio>";changed=1;};if (!changed && (line.replace(/\s/g,"").length > 0)){line="<p>"+line+"</p>";};lines[i]=line+"\n";};inlist=0;listtype="";for(var i=0;i<lines.length;i++){line=lines[i];if (inlist && listtype == "ul" && !line.match(/^\t<liu/)){line="</ul>\n"+line;inlist=0;};if (inlist && listtype == "ol" && !line.match(/^\t<lio/)){line="</ol>\n"+line;inlist=0;};if (!inlist && line.match(/^\t<liu/)){line="<ul>"+line;inlist=1;listtype="ul";};if (!inlist && line.match(/^\t<lio/)){line="<ol>"+line;inlist=1;listtype="ol";};lines[i]=line;};r=lines.join("\n");r = r.replace(/li[o|u]>/g, "li>");return r;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/types/QxVariable.js b/swat/style/qooxdoo/widgets/types/QxVariable.js
new file mode 100644 (file)
index 0000000..31c1d6a
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxVariable(v){return v;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxAtom.js b/swat/style/qooxdoo/widgets/widgets/QxAtom.js
new file mode 100644 (file)
index 0000000..6603d5b
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxAtom(vText,vIcon,vIconWidth,vIconHeight){QxWidget.call(this);this.setCanSelect(false);this.setWidth("auto");this.setHeight("auto");if(isValid(vText)){this.setText(vText);};if(isValid(vIcon)){this.setIcon(vIcon);if(isValid(vIconWidth)){this.setIconWidth(vIconWidth);};if(isValid(vIconHeight)){this.setIconHeight(vIconHeight);};};};QxAtom.extend(QxWidget,"QxAtom");QxAtom.addProperty({name:"text",type:String});QxAtom.addProperty({name:"icon",type:String});QxAtom.addProperty({name:"show",type:String,defaultValue:"both"});QxAtom.addProperty({name:"iconPosition",type:String,defaultValue:"left"});QxAtom.addProperty({name:"iconTextGap",type:Number,defaultValue:4});QxAtom.addProperty({name:"iconWidth",type:Number});QxAtom.addProperty({name:"iconHeight",type:Number});QxAtom.addProperty({name:"horizontalBlockAlign",type:String,defaultValue:"left"});QxAtom.addProperty({name:"verticalBlockAlign",type:String,defaultValue:"middle"});proto._c6=true;proto._c5=true;proto._c2=false;proto._c1=false;proto._f2=null;proto._f1=null;proto._modifyIcon=function(_b1,_b2,_b3,_b4){this._pureUpdateDisplayState();var o=this._f1;if(this._c1){if(o){o.setSource(_b1);o.setParent(this);}else if(this._wasVisible){this._e3Icon();};}else if(o){o.setParent(null);o.setSource(_b1);};return true;};proto._modifyText=function(_b1,_b2,_b3,_b4){this._pureUpdateDisplayState();var o=this._f2;if(this._c2){if(o){o.setHtml(_b1);o.setParent(this);}else if(this._wasVisible){this._e3Text();};}else if(o){o.setParent(null);o.setHtml(_b1);};return true;};proto._modifyShow=function(_b1,_b2,_b3,_b4){this._pureUpdateDisplayState();if(this._wasVisible){if(this._f2){this._f2.setParent(this._c2?this:null);};if(this._f1){this._f1.setParent(this._c1?this:null);};if(this._f2&&this._f1){if(this.getWidth()!="auto"){this._d1("show");};if(this.getHeight()!="auto"){this._d2("show");};};if(!this._f2&&this._c2){this._e3Text();};if(!this._f1&&this._c1){this._e3Icon();};};return true;};proto._modifyElement=function(_b1,_b2,_b3,_b4){if(_b1){this._addCssClassName("QxAtomBase");if(this._c1&&!this._f1){this._e3Icon();};if(this._c2&&!this._f2){this._e3Text();};};return QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){if(this._f1){this._f1.setEnabled(_b1);};if(this._f2){this._f2.setEnabled(_b1);};return QxWidget.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);};proto._modifyIconPosition=function(_b1,_b2,_b3,_b4){if(!this._wasVisible){return true;};if(1==1||this._c2&&this._c1){switch(_b1){case "left":if(_b2=="right"){return this._d1("icon-position");};break;case "right":if(_b2=="left"){return this._d1("icon-position");};break;case "top":if(_b2=="bottom"){return this._d2("icon-position");};break;case "bottom":if(_b2=="top"){return this._d2("icon-position");};break;};if(this.getWidth()=="auto"){this._setChildrenDependWidth(this,"icon-position");}else {this._d1("icon-position");};if(this.getHeight()=="auto"){this._setChildrenDependHeight(this,"icon-position");}else {this._d2("icon-position");};};return true;};proto._modifyIconTextGap=function(_b1,_b2,_b3,_b4){if(!this._wasVisible){return true;};if(this._c2&&this._c1){switch(this.getIconPosition()){case "left":case "right":return this.getWidth()=="auto"?this._setChildrenDependWidth(this,"icon-text-gap"):this._d1("icon-text-gap");case "top":case "bottom":return this.getHeight()=="auto"?this._setChildrenDependHeight(this,"icon-text-gap"):this._d2("icon-text-gap");};};return true;};proto._modifyHorizontalBlockAlign=function(_b1,_b2,_b3,_b4){if(!this._wasVisible||this.getWidth()=="auto"){return true;};return this._d1("align");};proto._modifyVerticalBlockAlign=function(_b1,_b2,_b3,_b4){if(!this._wasVisible||this.getHeight()=="auto"){return true;};return this._d2("align");};proto._e3Text=function(){var t=this._f2=new QxContainer(this.getText());t.setAnonymous(true);t.setEnabled(this.isEnabled());t.setTimerCreate(false);t.setParent(this);};proto._e3Icon=function(){var i=this._f1=new QxImage(this.getIcon(),this.getIconWidth(),this.getIconHeight());i.setAnonymous(true);i.setEnabled(this.isEnabled());i.setTimerCreate(false);i.setParent(this);};proto._pureUpdateDisplayState=function(){switch(this.getShow()){case "both":this._c6=this._c5=true;this._c1=this._hasIcon();this._c2=this._hasText();break;case "none":this._c6=this._c5=this._c1=this._c2=false;break;case "icon":this._c5=true;this._c1=this._hasIcon();this._c6=this._c2=false;break;case "text":this._c6=true;this._c2=this._hasText();this._c5=this._c1=false;break;default:throw new Error("Invalid value for show property:"+this.getShow());};};proto._hasText=function(){return isValid(this.getText());};proto._hasIcon=function(){return isValid(this.getIcon());};proto._setChildrenDependWidth=function(_e4,_e5){if(this._c1&&_e4==this._f1&&_e5=="unload"){return true;};var newWidth=this._d5Width(_e4,_e5);if(this._widthMode=="inner"&&this._widthModeValue==newWidth){if((_e5=="load"||_e5=="append-child")&&(_e4==this._f2||_e4==this._f1)){return this._d1(_e5);};}else {this.setInnerWidth(newWidth,null,true);};return true;};proto._setChildrenDependHeight=function(_e4,_e5){if(this._c1&&_e4==this._f1&&_e5=="unload"){return true;};var newHeight=this._d5Height(_e4,_e5);if(this._heightMode=="inner"&&this._heightModeValue==newHeight){if((_e5=="load"||_e5=="append-child")&&(_e4==this._f2||_e4==this._f1)){return this._d2(_e5);};}else {this.setInnerHeight(newHeight,null,true);};return true;};proto._d5Width=function(){return this._d5Helper("Width","left","right");};proto._d5Height=function(){return this._d5Helper("Height","top","bottom");};proto._d5Helper=function(vNameRangeUp,vNameStart,vNameStop){if(this._c2&&this._f2&&this._f2.getParent()!=this){return null;};if(this._c1&&this._f1&&this._f1.getParent()!=this){return null;};if(this._c1&&(!this._f1||(!this._f1.getLoaded()&&isInvalid(this._f1["get"+vNameRangeUp]())))){return null;};if(this._c2&&this._c1){switch(this.getIconPosition()){case vNameStart:case vNameStop:return this._f2["getAny"+vNameRangeUp]()+this.getIconTextGap()+this._f1["getAny"+vNameRangeUp]();default:return Math.max(Math.max(this._f2["getAny"+vNameRangeUp](),this._f1["getAny"+vNameRangeUp]()),0);};}else if(this._c2){return this._f2["getAny"+vNameRangeUp]();}else if(this._c1){return this._f1["getAny"+vNameRangeUp]();}else {return 0;};};proto._innerWidthChanged=function(){this._d4Width();this._d1("inner-width");var ch=this._a2;var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];if(chc!=this._f2&&chc!=this._f1){chc._renderHorizontal("parent");};};};proto._innerHeightChanged=function(){this._d4Height();this._d2("inner-height");var ch=this._a2;var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];if(chc!=this._f2&&chc!=this._f1){chc._renderVertical("parent");};};};proto._childOuterWidthChanged=function(vModifiedChild,_e5){if(!this._wasVisible){return;};switch(_e5){case "position-and-size":case "position":case "size":break;default:if(this.getWidth()=="auto"){return this._setChildrenDependWidth(vModifiedChild,_e5);}else {this._d1(_e5);};};QxWidget.prototype._childOuterWidthChanged.call(this,vModifiedChild,_e5);};proto._childOuterHeightChanged=function(vModifiedChild,_e5){if(!this._wasVisible){return;};switch(_e5){case "position-and-size":case "position":case "size":break;default:if(this.getHeight()=="auto"){return this._setChildrenDependHeight(vModifiedChild,_e5);}else {this._d2(_e5);};};QxWidget.prototype._childOuterHeightChanged.call(this,vModifiedChild,_e5);};proto._d1=function(_e5){return this._layoutInternalWidgetsHelper(_e5,"Width","Horizontal","left","right","Left");};proto._d2=function(_e5){return this._layoutInternalWidgetsHelper(_e5,"Height","Vertical","top","bottom","Top");};proto._layoutInternalWidgetsHelper=function(_e5,vNameRangeUp,vDirection,vNameStart,vNameStop,vPaddingStartUp){try{var vTextPos=0;var vIconPos=0;var vBoxSize;if(this._c2&&this._c1){if(!this._f2||!this._f1){return;};var vTextSize=this._f2["getAny"+vNameRangeUp]();var vIconSize=this._f1["getAny"+vNameRangeUp]();switch(this.getIconPosition()){case vNameStart:vTextPos=vIconSize+this.getIconTextGap();vBoxSize=vTextPos+vTextSize;break;case vNameStop:vIconPos=vTextSize+this.getIconTextGap();vBoxSize=vIconPos+vIconSize;break;default:if(vTextSize>vIconSize){vIconPos=(vTextSize-vIconSize)/2;}else {vTextPos=(vIconSize-vTextSize)/2;};vBoxSize=Math.max(vTextSize,vIconSize);};}else if(this._c2){vBoxSize=this._f2["getAny"+vNameRangeUp]();}else if(this._c1){vBoxSize=this._f1["getAny"+vNameRangeUp]();}else {return;};var vBoxPos=this["getComputedPadding"+vPaddingStartUp]();switch(this["get"+vDirection+"BlockAlign"]()){case "center":case "middle":vBoxPos+=(this["getInner"+vNameRangeUp]()-vBoxSize)/2;break;case "right":case "bottom":vBoxPos+=this["getInner"+vNameRangeUp]()-vBoxSize;break;};vIconPos+=vBoxPos;vTextPos+=vBoxPos;if(this._f1){this._f1["_d3"+vDirection](vIconPos);};if(this._f2){this._f2["_d3"+vDirection](vTextPos);};}catch(ex){throw new Error("Failed to internal render widgets:"+ex);};return true;};proto._onnewchild=function(otherObject){this.getWidth()=="auto"?this._setChildrenDependWidth(otherObject,"append-child"):this._d1("append-child");this.getHeight()=="auto"?this._setChildrenDependHeight(otherObject,"append-child"):this._d2("append-child");};proto._onremovechild=function(otherObject){this.getWidth()=="auto"?this._setChildrenDependWidth(otherObject,"remove-child"):this._d1("remove-child");this.getHeight()=="auto"?this._setChildrenDependHeight(otherObject,"remove-child"):this._d2("remove-child");};proto._cloneRecursive=function(cloneInstance){var ch=this.getChildren();var chl=ch.length;var chc;var cloneChild;for(var i=0;i<chl;i++){chc=ch[i];if(chc!=this._f1&&chc!=this._f2){cloneChild=chc.clone(true);cloneInstance.add(cloneChild);};};};proto.getPreferredWidth=function(){if(this.getWidth()=="auto"){if(!this._wasVisible){this._renderHorizontal("initial");};return this._pixelof_width;};if(this._preferred_width==null&&this.getChildrenLength()>0){this._preferred_width=this._d5Width()+this.getComputedPaddingLeft()+this.getComputedPaddingRight()+this.getComputedInsetLeft()+this.getComputedInsetRight();};return this._preferred_width;};proto.getPreferredHeight=function(){if(this.getHeight()=="auto"){if(!this._wasVisible){this._renderVertical("initial");};return this._pixelof_height;};if(this._preferred_height==null&&this.getChildrenLength()>0){this._preferred_height=this._d5Height()+this.getComputedPaddingTop()+this.getComputedPaddingBottom()+this.getComputedInsetTop()+this.getComputedInsetBottom();};return this._preferred_height;};proto.dispose=function(){if(this.getDisposed()){return true;};if(this._f1){this._f1.dispose();this._f1=null;};if(this._f2){this._f2.dispose();this._f2=null;};this._c6=this._c5=this._c2=this._c1=null;return QxWidget.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxBarSelectorBar.js b/swat/style/qooxdoo/widgets/widgets/QxBarSelectorBar.js
new file mode 100644 (file)
index 0000000..7a9d4c1
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxBarSelectorBar(){QxWidget.call(this);this._manager=new QxRadioButtonManager();};QxBarSelectorBar.extend(QxWidget,"QxBarSelectorBar");proto.getManager=function(){return this._manager;};proto._modifyState=function(_b1,_b2,_b3,_b4){var vClasses=this.getCssClassName();if(isValidString(_b2)){vClasses=vClasses.remove(this.classname+"-"+_b2.toFirstUp()," ");};if(isValidString(_b1)){vClasses=vClasses.add(this.classname+"-"+_b1.toFirstUp()," ");};this.setCssClassName(vClasses,_b4);return this._applyState();};proto._applyState=function(){this._omitRendering();this["_applyState_"+this.getState()]();this._activateRendering();return true;};proto._applyState_top=function(){this.setBottom(null);this.setWidth(null);this.setHeight("auto");this.setLeft(0);this.setRight(0);this.setTop(0);};proto._applyState_right=function(){this.setLeft(null);this.setHeight(null);this.setWidth("auto");this.setRight(0);this.setBottom(0);this.setTop(0);};proto._applyState_bottom=function(){this.setWidth(null);this.setTop(null);this.setHeight("auto");this.setLeft(0);this.setRight(0);this.setBottom(0);};proto._applyState_left=function(){this.setRight(null);this.setHeight(null);this.setWidth("auto");this.setLeft(0);this.setBottom(0);this.setTop(0);};proto._layoutInternalWidgetsRunning=false;proto._layoutInternalWidgets=proto._d1=function(_e5){if(this._layoutInternalWidgetsRunning){return true;};var vPane=this.getParent().getPane();if(!this.isCreated()||!vPane.isCreated()){return true;};this._layoutInternalWidgetsRunning=true;var ch=this.getChildren();var chl=ch.length;var chc;switch(this.getState()){case "left":case "right":for(var i=0;i<chl;i++){chc=ch[i];chc._omitRendering();chc.setWidth(null);chc.setTop(null);chc.setBottom(null);chc.setLeft(0);chc.setRight(0);chc.setHeight("auto");chc._innerWidthChanged();chc._innerHeightChanged();chc._activateRendering();};break;default:for(var i=0;i<chl;i++){chc=ch[i];chc._omitRendering();chc.setLeft(null);chc.setRight(null);chc.setHeight(null);chc.setTop(0);chc.setBottom(0);chc.setWidth("auto");chc._innerWidthChanged();chc._innerHeightChanged();chc._activateRendering();};break;};this._layoutInternalWidgetsRunning=false;};proto._d2=function(_e5){return;};proto._onnewchild=function(otherObject){this._d1("append-child");};proto._onremovechild=function(otherObject){this._d1("remove-child");};proto._innerHeightChanged=function(){this._d4Height();this._d1("inner-height");};proto._innerWidthChanged=function(){this._d4Width();};proto._childOuterWidthChanged=function(vModifiedChild,_e5){if(this._layoutInternalWidgetsRunning){return;};return !this._wasVisible?true:this.getWidth()=="auto"?this._setChildrenDependWidth(vModifiedChild,_e5):this._d1(_e5);};proto._childOuterHeightChanged=function(vModifiedChild,_e5){if(this._layoutInternalWidgetsRunning){return;};return !this._wasVisible?true:this.getHeight()=="auto"?this._setChildrenDependHeight(vModifiedChild,_e5):this._d2(_e5);};proto.dispose=function(){if(this.getDisposed()){return;};if(this._manager){this._manager.dispose();this._manager=null;};QxWidget.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxBarSelectorButton.js b/swat/style/qooxdoo/widgets/widgets/QxBarSelectorButton.js
new file mode 100644 (file)
index 0000000..5aa4612
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxBarSelectorButton(vText,vIcon,vIconWidth,vIconHeight,vChecked){QxTab.call(this,vText,vIcon,vIconWidth,vIconHeight,vChecked);this.setIconPosition("top");this.setHorizontalBlockAlign("center");this.setVerticalBlockAlign("middle");};QxBarSelectorButton.extend(QxTab,"QxBarSelectorButton");proto._g5=function(e){switch(this.getParent().getState()){case "top":case "bottom":switch(e.getKeyCode()){case QxKeyEvent.keys.left:var vPrevious=true;break;case QxKeyEvent.keys.right:var vPrevious=false;break;default:return;};break;case "left":case "right":switch(e.getKeyCode()){case QxKeyEvent.keys.up:var vPrevious=true;break;case QxKeyEvent.keys.down:var vPrevious=false;break;default:return;};break;default:return;};var vChild=vPrevious?this.isFirstChild()?this.getParent().getLastChild():this.getPreviousSibling():this.isLastChild()?this.getParent().getFirstChild():this.getNextSibling();vChild.setFocused(true);vChild.setChecked(true);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxBarSelectorFrame.js b/swat/style/qooxdoo/widgets/widgets/QxBarSelectorFrame.js
new file mode 100644 (file)
index 0000000..c78277a
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxBarSelectorFrame(){QxWidget.call(this);this._bar=new QxBarSelectorBar;this._pane=new QxBarSelectorPane;this.setPlaceBarOn("top");this.add(this._bar,this._pane);this._bar.addEventListener("resize",this._pane._applyState,this._pane);};QxBarSelectorFrame.extend(QxWidget,"QxBarSelectorFrame");QxBarSelectorFrame.addProperty({name:"placeBarOn",type:String});QxBarSelectorFrame.paneMap={top:"bottom",right:"left",bottom:"top",left:"right"};proto._modifyPlaceBarOn=function(_b1,_b2,_b3,_b4){this._bar.setState(_b1,_b4);this._pane.setState(QxBarSelectorFrame.paneMap[_b1],_b4);return true;};proto.getPane=function(){return this._pane;};proto.getBar=function(){return this._bar;};proto.dispose=function(){if(this.getDisposed()){return true;};if(this._bar){this._bar.dispose();this._bar=null;};if(this._pane){this._pane.dispose();this._pane=null;};return QxWidget.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxBarSelectorPage.js b/swat/style/qooxdoo/widgets/widgets/QxBarSelectorPage.js
new file mode 100644 (file)
index 0000000..ee4c0ef
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxBarSelectorPage(vTab){QxTabPage.call(this,vTab);};QxBarSelectorPage.extend(QxTabPage,"QxBarSelectorPage");
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxBarSelectorPane.js b/swat/style/qooxdoo/widgets/widgets/QxBarSelectorPane.js
new file mode 100644 (file)
index 0000000..822474c
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxBarSelectorPane(){QxWidget.call(this);};QxBarSelectorPane.extend(QxWidget,"QxBarSelectorPane");proto._modifyElement=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);return this._applyState();};proto._modifyState=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyState.call(this,_b1,_b2,_b3,_b4);return this._applyState();};proto._applyState=function(){var vParent=this.getParent();if(!vParent||!this.isCreated()){return true;};var vBar=vParent.getBar();if(!vBar.isCreated()){return true;};var vTop=0,vRight=0,vBottom=0,vLeft=0;switch(this.getState()){case "top":vBottom=vBar.getComputedBoxHeight()-this.getComputedBorderBottom();break;case "right":vLeft=vBar.getComputedBoxWidth()-this.getComputedBorderLeft();break;case "left":vRight=vBar.getComputedBoxWidth()-this.getComputedBorderRight();break;default:vTop=vBar.getComputedBoxHeight()-this.getComputedBorderTop();};this.setTop(vTop);this.setRight(vRight);this.setBottom(vBottom);this.setLeft(vLeft);return true;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxBlocker.js b/swat/style/qooxdoo/widgets/widgets/QxBlocker.js
new file mode 100644 (file)
index 0000000..b3c8fcd
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxBlocker(){QxWidget.call(this);this.setLocation(0,0);this.setRight(0);this.setBottom(0);this.setZIndex(1e6);if((new QxClient).isMshtml()){this.setBackgroundImage((new QxImageManager).getBlank());};};QxBlocker.extend(QxWidget,"QxBlocker");
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxBoxLayout.js b/swat/style/qooxdoo/widgets/widgets/QxBoxLayout.js
new file mode 100644 (file)
index 0000000..9d3e7bb
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxBoxLayout(vOrientation,vBlockAlign,vChildrenAlign){QxLayout.call(this);this.setWidth("auto");this.setHeight("auto");if(isValid(vOrientation)){this.setOrientation(vOrientation);};if(isValid(vBlockAlign)){this.getOrientation()=="horizontal"?this.setHorizontalBlockAlign(vBlockAlign):this.setVerticalChildrenAlign(vChildrenAlign);};if(isValid(vChildrenAlign)){this.getOrientation()=="horizontal"?this.setHorizontalChildrenAlign(vChildrenAlign):this.setVerticalChildrenAlign(vChildrenAlign);};};QxBoxLayout.extend(QxLayout,"QxBoxLayout");QxBoxLayout.addProperty({name:"horizontalBlockAlign",type:String,defaultValue:"left"});QxBoxLayout.addProperty({name:"verticalBlockAlign",type:String,defaultValue:"top"});QxBoxLayout.addProperty({name:"orientation",type:String,defaultValue:"horizontal"});QxBoxLayout.addProperty({name:"horizontalChildrenAlign",type:String,defaultValue:"center"});QxBoxLayout.addProperty({name:"verticalChildrenAlign",type:String,defaultValue:"middle"});QxBoxLayout.addProperty({name:"spacing",type:Number,defaultValue:0});QxBoxLayout.addProperty({name:"ignoreOrthogonalMargin",type:Boolean,defaultValue:false});proto._d1=function(){switch(this.getOrientation()){case "horizontal":var inner=this.getInnerWidth();var sum=0;var ch=this.getChildren();var chl=ch.length;var chc;var w;var spacing=this.getSpacing();var p=[];for(var i=0;i<chl;i++){p.push(sum);chc=ch[i];sum+=chc.getMarginLeft()+chc.getAnyWidth()+chc.getMarginRight()+spacing;};sum-=spacing;var startpos=this.getPaddingLeft();switch(this.getHorizontalBlockAlign()){case "center":startpos+=(inner-sum)/2;break;case "right":startpos+=inner-sum;break;};for(var i=0;i<chl;i++){ch[i]._d3Horizontal(startpos+p[i]);};break;case "vertical":var inner=this.getInnerWidth();var ch=this.getChildren();var chl=ch.length;var chc;var glob=this.getHorizontalChildrenAlign();var ign=this.getIgnoreOrthogonalMargin();var cust,pos;for(var i=0;i<chl;i++){chc=ch[i];cust=chc.getHorizontalAlign();pos=this.getPaddingLeft();switch(isValidString(cust)?cust:glob){case "right":pos+=inner-chc.getAnyWidth();break;case "center":pos+=Math.floor((inner-chc.getAnyWidth())/2);break;};if(ign){pos-=chc.getMarginLeft();};chc._d3Horizontal(pos);};break;};return true;};proto._d2=function(){switch(this.getOrientation()){case "horizontal":var inner=this.getInnerHeight();var ch=this.getChildren();var chl=ch.length;var chc;var glob=this.getVerticalChildrenAlign();var ign=this.getIgnoreOrthogonalMargin();var cust,pos;for(var i=0;i<chl;i++){chc=ch[i];cust=chc.getVerticalAlign();pos=this.getPaddingTop();switch(isValidString(cust)?cust:glob){case "bottom":pos+=inner-chc.getAnyHeight();break;case "middle":pos+=Math.floor((inner-chc.getAnyHeight())/2);break;};if(ign){pos-=chc.getMarginTop();};chc._d3Vertical(pos);};break;case "vertical":var inner=this.getInnerHeight();var sum=0;var ch=this.getChildren();var chl=ch.length;var chc;var h;var spacing=this.getSpacing();var p=[];for(var i=0;i<chl;i++){p.push(sum);chc=ch[i];sum+=chc.getMarginTop()+chc.getAnyHeight()+chc.getMarginBottom()+spacing;};sum-=spacing;var startpos=this.getPaddingTop();switch(this.getVerticalBlockAlign()){case "middle":startpos+=(inner-sum)/2;break;case "bottom":startpos+=inner-sum;break;};for(var i=0;i<chl;i++){ch[i]._d3Vertical(startpos+p[i]);};break;};return true;};proto._modifyOrientation=function(_b1,_b2,_b3,_b4){if(this._wasVisible){this.getWidth()=="auto"?this._setChildrenDependWidth(this,"orientation"):this._d1("orientation");this.getHeight()=="auto"?this._setChildrenDependHeight(this,"orientation"):this._d2("orientation");};return true;};proto._modifySpacing=function(_b1,_b2,_b3,_b4){if(this._wasVisible){if(this.getOrientation()=="horizontal"){this.getWidth()=="auto"?this._setChildrenDependWidth(null,"spacing"):this._d1("spacing");}else {this.getHeight()=="auto"?this._setChildrenDependHeight(null,"spacing"):this._d2("spacing");};};return true;};proto._modifyIgnoreOrthogonalMargin=function(_b1,_b2,_b3,_b4){if(this._wasVisible){if(this.getOrientation()!="horizontal"){this._d1("spacing");}else {this._d2("spacing");};};return true;};proto._modifyHorizontalBlockAlign=function(_b1,_b2,_b3,_b4){return this._wasVisible?this._d1("block-align"):true;};proto._modifyVerticalBlockAlign=function(_b1,_b2,_b3,_b4){return this._wasVisible?this._d2("block-align"):true;};proto._modifyHorizontalChildrenAlign=function(_b1,_b2,_b3,_b4){return this._wasVisible?this._d1("children-align"):true;};proto._modifyVerticalChildrenAlign=function(_b1,_b2,_b3,_b4){return this._wasVisible?this._d2("children-align"):true;};proto._d5Width=function(_e4,_e5){if(this.getOrientation()=="vertical"){return QxWidget.prototype._d5Width.call(this,_e4,_e5);};var w=0;var spacing=this.getSpacing();var ch=this.getChildren();var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];w+=chc.getMarginLeft()+chc.getAnyWidth()+chc.getMarginRight()+spacing;};return w-spacing;};proto._d5Height=function(_e4,_e5){if(this.getOrientation()=="horizontal"){return QxWidget.prototype._d5Height.call(this,_e4,_e5);};var h=0;var spacing=this.getSpacing();var ch=this.getChildren();var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];h+=chc.getMarginTop()+chc.getAnyHeight()+chc.getMarginBottom()+spacing;};return h-spacing;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxButton.js b/swat/style/qooxdoo/widgets/widgets/QxButton.js
new file mode 100644 (file)
index 0000000..4c4c8de
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxButton(vText,vIcon){QxAtom.call(this,vText,vIcon);this.setCanSelect(false);this.setTabIndex(1);this.setBorder(QxBorder.presets.outset);this.addEventListener("mouseover",this._onmouseover,this);this.addEventListener("mouseout",this._onmouseout,this);this.addEventListener("mousedown",this._g1,this);this.addEventListener("mouseup",this._g2,this);this.addEventListener("keydown",this._g4,this);this.addEventListener("click",this._g3,this);};QxButton.extend(QxAtom,"QxButton");proto._onmouseover=function(e){if(e.getActiveTarget()!=this){return;};this.setState(this._pressed?"pressed":"hover");e.stopPropagation();};proto._onmouseout=function(e){if(e.getActiveTarget()!=this){return;};this.setState(null);e.stopPropagation();};proto._g1=function(e){this._pressed=true;this.setCapture(true);this.setState("pressed");};proto._g2=function(e){delete this._pressed;this.setCapture(false);this.setState(null);e.stopPropagation();};proto._g4=function(e){if(e.getKeyCode()==QxKeyEvent.keys.enter){this.execute();};};proto._g3=function(e){this.execute();};proto._modifyState=function(_b1,_b2,_b3,_b4){switch(_b1){case "pressed":this.setBorder(QxBorder.presets.inset);break;case "hover":break;default:this.setBorder(QxBorder.presets.outset);};return QxAtom.prototype._modifyState.call(this,_b1,_b2,_b3,_b4);};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("mouseover",this._onmouseover,this);this.removeEventListener("mouseout",this._onmouseout,this);this.removeEventListener("mousedown",this._g1,this);this.removeEventListener("mouseup",this._g2,this);return QxAtom.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxCheckBox.js b/swat/style/qooxdoo/widgets/widgets/QxCheckBox.js
new file mode 100644 (file)
index 0000000..33e6d54
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxCheckBox(vText,vValue,vName,vChecked){QxAtom.call(this,vText);this.setTabIndex(1);if(isValid(vValue)){this.setValue(vValue);};if(isValid(vName)){this.setName(vName);};if(isValid(vChecked)){this.setChecked(vChecked);};this.addEventListener("click",this._g3);this.addEventListener("keydown",this._g4);this.addEventListener("keyup",this._g5);};QxCheckBox.extend(QxAtom,"QxCheckBox");QxCheckBox.removeProperty({name:"icon"});QxCheckBox.addProperty({name:"name",type:String});QxCheckBox.addProperty({name:"value",type:String});QxCheckBox.addProperty({name:"checked",type:Boolean,defaultValue:false,getAlias:"isChecked"});proto._c1=true;proto._modifyIcon=null;proto._hasIcon=function(){return true;};proto._e3Icon=function(){var i=this._f1=new QxInputCheckIcon();i.setType("checkbox");i.setChecked(this.isChecked());i.setEnabled(this.isEnabled());i.setAnonymous(true);i.setParent(this);};proto._modifyChecked=function(_b1,_b2,_b3,_b4){if(this._f1){this._f1.setChecked(_b1);};return true;};if((new QxClient).isMshtml()){proto._modifyVisible=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyVisible.call(this,_b1,_b2,_b3,_b4);if(this._f1&&_b1){this._f1.getElement().checked=this.getChecked();};return true;};};proto._g3=function(e){var t=e.getDomTarget();this.setChecked(t.tagName=="input"?t.checked:!this.isChecked());};proto._g4=function(e){if(e.getKeyCode()==QxKeyEvent.keys.enter&&!e.getAltKey()){this.setChecked(this._f1?!this._f1.isChecked():!this.isChecked());};};proto._g5=function(e){if(e.getKeyCode()==QxKeyEvent.keys.space){this.setChecked(this._f1?!this._f1.isChecked():!this.isChecked());};};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("click",this._g3);this.removeEventListener("keydown",this._g4);this.removeEventListener("keyup",this._g5);return QxAtom.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxClientDocument.js b/swat/style/qooxdoo/widgets/widgets/QxClientDocument.js
new file mode 100644 (file)
index 0000000..60da8a1
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxClientDocument(clientWindow){QxWidget.call(this);this._window=clientWindow;this._document=this._window.getElement().document;this.setElement(this._document.body);this._lastBodyWidth=this._document.body.offsetWidth;this._lastBodyHeight=this._document.body.offsetHeight;this.addEventListener("resize",this._onresize);this.setTheme(this._themes[0]);this.setTabIndex(1);this._blocker=new QxBlocker;this._modalWidgets=[];this._modalNativeWindow=null;this._blocker.addEventListener("mousedown",function(e){if(this._modalNativeWindow){this._modalNativeWindow.focus();};},this);this._blocker.addEventListener("mouseup",function(e){if(this._modalNativeWindow){this._modalNativeWindow.focus();};},this);};QxClientDocument.extend(QxWidget,"QxClientDocument");QxClientDocument.addProperty({name:"theme",type:String});QxClientDocument.addProperty({name:"globalCursor",type:String});proto._renderInitialDone_horizontal=true;proto._renderInitialDone_vertical=true;proto._childOuterWidthChanged=function(vModifiedChild,_e5){};proto._childOuterHeightChanged=function(vModifiedChild,_e5){};proto._modifyParent=function(){return true;};proto._modifyVisible=function(){return true;};proto._modifyElement=function(_b1,_b2,_b3,_b4){if(!_b1){throw new Error("QxClientDocument does not accept invalid elements!");};_b1._QxWidget=this;this._applyStyleProperties(_b1,_b4);this._applyHtmlProperties(_b1,_b4);this._applyHtmlAttributes(_b1,_b4);this.setVisible(true,_b4);return true;};proto.getWindow=function(){return this._window;};proto.getTopLevelWidget=function(){return this;};proto.getDocumentElement=function(){return this._document;};proto.getEventManager=function(){return this._window.getEventManager();};proto.getFocusManager=function(){return this._window.getFocusManager();};proto._createElement=proto.createElementWrapper=function(){return true;};proto.isCreated=function(){return true;};proto.isFocusRoot=function(){return true;};proto.getFocusRoot=function(){return this;};proto.getToolTip=function(){return null;};proto.getParent=function(){return null;};proto.canGetFocus=function(){return true;};proto._visualizeBlur=function(){};proto._visualizeFocus=function(){};proto.block=function(activeWidget){this.add(this._blocker);if(typeof QxWindow=="function"&&activeWidget instanceof QxWindow){this._modalWidgets.push(activeWidget);var o=activeWidget.getZIndex();this._blocker.setZIndex(o);activeWidget.setZIndex(o+1);}else if(activeWidget instanceof QxNativeWindow){this._modalNativeWindow=activeWidget;this._blocker.setZIndex(1e7);};};proto.release=function(activeWidget){if(activeWidget){if(activeWidget instanceof QxNativeWindow){this._modalNativeWindow=null;}else {this._modalWidgets.remove(activeWidget);};};var l=this._modalWidgets.length;if(l==0){this.remove(this._blocker);}else {var oldActiveWidget=this._modalWidgets[l-1];var o=oldActiveWidget.getZIndex();this._blocker.setZIndex(o);oldActiveWidget.setZIndex(o+1);};};if((new QxClient).isMshtml()){proto._modifyGlobalCursor=function(_b1,_b2,_b3,_b4){var s=this._cursorStyleSheetElement;if(!s){s=this._cursorStyleSheetElement=this._document.createStyleSheet();};s.cssText=isValidString(_b1)?"*{cursor:"+_b1+" !important}":"";return true;};}else {proto._modifyGlobalCursor=function(_b1,_b2,_b3,_b4){var s=this._cursorStyleSheetElement;if(!s){s=this._cursorStyleSheetElement=this._document.createElement("style");s.type="text/css";this._document.getElementsByTagName("head")[0].appendChild(s);};var sheet=s.sheet;var l=sheet.cssRules.length;for(var i=l-1;i>=0;i--){sheet.deleteRule(i);};if(isValidString(_b1)){sheet.insertRule("*{cursor:"+_b1+" !important}",0);};return true;};};proto._onresize=function(e){if(typeof QxPopupManager=="function"){(new QxPopupManager).update();};var w=this._document.body.offsetWidth;var h=this._document.body.offsetHeight;if(this._lastBodyWidth!=w){this._lastBodyWidth=w;this._innerWidthChanged();};if(this._lastBodyHeight!=h){this._lastBodyHeight=h;this._innerHeightChanged();};};proto._themes=["Win9x","WinXP"];proto.getThemes=function(){return this._themes;};proto.registerTheme=function(v){if(this._themes.contains(v)){return;};this._themes.push(v);};proto.deregisterTheme=function(v){if(this.getTheme()==v){throw new Error("Could not remove currently selected theme!");};this._themes.remove(v);return true;};proto._modifyTheme=function(_b1,_b2,_b3,_b4){var vClass=this.getCssClassName();if(_b2){vClass=vClass.remove("QxTheme"+_b2," ");};if(_b1){vClass=vClass.add("QxTheme"+_b1," ");};this.setCssClassName(vClass);return true;};proto.add=function(){var a=arguments;var l=a.length;var t=a[l-1];if(typeof QxInline=="function"&&l>1&&typeof t=="string"){for(var i=0;i<l-1;i++){if(a[i]instanceof QxInline){a[i].setInlineNodeId(t);};a[i].setParent(this);};return this;}else {return QxWidget.prototype.add.apply(this,arguments);};};proto._getParentNodeForChild=function(otherObject){if(typeof QxInline=="function"&&otherObject instanceof QxInline){var inlineNodeId=otherObject.getInlineNodeId();if(isValid(inlineNodeId)){var inlineNode=document.getElementById(inlineNodeId);if(inlineNode){return inlineNode;};};throw new Error("Couldn't find target element for:"+otherObject);};return this.getElement();};proto.dispose=function(){if(this.getDisposed()){return;};this._window=this._document=null;QxWidget.prototype.dispose.call(this);return true;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxColorPresetPopup.js b/swat/style/qooxdoo/widgets/widgets/QxColorPresetPopup.js
new file mode 100644 (file)
index 0000000..13f444f
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxColorPresetPopup(vTemplateColors,vHistoryColors,vColorSelector){QxPopup.call(this);var vField,vFieldSet;var vBase=QxColorPresetPopup.baseColors;var vLength=vBase.length;var vInnerWidth=(this._fieldWidth*vLength)+(this._fieldSpace*(vLength-1));var vFullWidth=vInnerWidth+(2*(this._padding+1));var vPreviewWidth=Math.round((vInnerWidth/2)-2);this.setWidth(230);this.setHeight(260);this.setBackgroundColor("ThreedFace");this.setBorder(QxBorder.presets.outset);this._baseColors=[];this._templateColors=[];this._historyColors=[];var vTop=this._padding;var o = this._auto = new QxAtom(QxColorPresetPopup.textAuto, "icons/16/iconthemes.png");o.setBorder(QxBorder.presets.outset);o.setPadding(2,4);o.setTop(vTop);o.setLeft(this._padding);o.setWidth(null);o.setRight(this._padding);o.setParent(this);o.addEventListener("mousedown",this._onautoclick,this);vTop+=30;vFieldSet=new QxFieldSet(QxColorPresetPopup.textBaseColors);vFieldSet.setTop(vTop);vFieldSet.setLeft(this._padding);vFieldSet.setRight(this._padding);vFieldSet.setMinHeight(45);for(var i=0;i<vLength;i++){vField=new QxWidget;vField.setBackgroundColor(vBase[i]);vField.setWidth(this._fieldWidth);vField.setHeight(this._fieldHeight);vField.setLeft(i*(this._fieldWidth+this._fieldSpace));vField.setTop(0);vField.setBorder(QxBorder.presets.inset);vField.addEventListener("mousedown",this._oncolorclick,this);vField.addEventListener("mouseover",this._oncolorover,this);vField.addEventListener("mouseout",this._oncolorout,this);vField.setParent(vFieldSet);this._baseColors.push(vField);};this.add(vFieldSet);vTop+=this._fieldHeight+this._fieldSpace+35;vFieldSet=new QxFieldSet(QxColorPresetPopup.textTemplateColors);vFieldSet.setTop(vTop);vFieldSet.setLeft(this._padding);vFieldSet.setRight(this._padding);vFieldSet.setMinHeight(45);for(var i=0;i<vLength;i++){vField=new QxWidget;if(vTemplateColors[i]){vField.setBackgroundColor(vTemplateColors[i]);};vField.setWidth(this._fieldWidth);vField.setHeight(this._fieldHeight);vField.setLeft(i*(this._fieldWidth+this._fieldSpace));vField.setTop(0);vField.setBorder(QxBorder.presets.inset);vField.addEventListener("mousedown",this._oncolorclick,this);vField.addEventListener("mouseover",this._oncolorover,this);vField.addEventListener("mouseout",this._oncolorout,this);vField.setParent(vFieldSet);this._templateColors.push(vField);};this.add(vFieldSet);vTop+=this._fieldHeight+this._fieldSpace+35;vFieldSet=new QxFieldSet(QxColorPresetPopup.textHistoryColors);vFieldSet.setTop(vTop);vFieldSet.setLeft(this._padding);vFieldSet.setRight(this._padding);vFieldSet.setMinHeight(45);for(var i=0;i<vLength;i++){vField=new QxWidget;if(vHistoryColors[i]){vField.setBackgroundColor(vHistoryColors[i]);};vField.setWidth(this._fieldWidth);vField.setHeight(this._fieldHeight);vField.setLeft(i*(this._fieldWidth+this._fieldSpace));vField.setTop(0);vField.setBorder(QxBorder.presets.inset);vField.addEventListener("mousedown",this._oncolorclick,this);vField.addEventListener("mouseover",this._oncolorover,this);vField.addEventListener("mouseout",this._oncolorout,this);vField.setParent(vFieldSet);this._historyColors.push(vField);};this.add(vFieldSet);vTop+=this._fieldHeight+this._fieldSpace+45;var o=this._previewOld=new QxAtom(QxColorPresetPopup.textSavedColor);o.setHeight(25);o.setWidth(105);o.setTop(vTop);o.setLeft(this._padding);o.setBorder(QxBorder.presets.inset);o.setPadding(2,4);o.setHorizontalBlockAlign("center");o.setParent(this);var o=this._previewNew=new QxAtom(QxColorPresetPopup.textNewColor);o.setHeight(25);o.setWidth(105);o.setTop(vTop);o.setRight(this._padding);o.setBorder(QxBorder.presets.inset);o.setPadding(2,4);o.setHorizontalBlockAlign("center");o.setParent(this);vTop+=30;var o = this._vStartComplex = new QxAtom(QxColorPresetPopup.textAllColors, "icons/16/kcoloredit.png");o.setBorder(QxBorder.presets.outset);o.setPadding(2,4);o.setTop(vTop);o.setLeft(this._padding);o.setWidth(null);o.setRight(this._padding);o.setParent(this);o.addEventListener("mousedown",function(e){vColorSelector.setSavedColor(this.getCurrentColor());vColorSelector.setCurrentColor(this.getCurrentColor()?this.getCurrentColor():[127,255,255]);vColorSelector.setTop(100);vColorSelector.setLeft(100);vColorSelector.setVisible(true);},this);};QxColorPresetPopup.extend(QxPopup,"QxColorPresetPopup");QxColorPresetPopup.addProperty({name:"currentColor",type:QxColor});QxColorPresetPopup.baseColors=["black",51,102,153,204,"white","red","green","blue","yellow","cyan","magenta"];QxColorPresetPopup.textBaseColors="Basic Colors";QxColorPresetPopup.textTemplateColors="Template Colors";QxColorPresetPopup.textHistoryColors="Previous Colors";QxColorPresetPopup.textSavedColor="Current";QxColorPresetPopup.textNewColor="New";QxColorPresetPopup.textAuto="Automatic";QxColorPresetPopup.textAllColors="All Colors...";proto._fieldWidth=14;proto._fieldHeight=14;proto._fieldSpace=2;proto._padding=4;proto._onautoclick=function(e){this.setCurrentColor(null);};proto._oncolorover=function(e){this._applyNewColor(e.getTarget().getBackgroundColor());};proto._oncolorout=function(e){this._previewNew.setBackgroundColor(null);this._previewNew.setColor(null);};proto._oncolorclick=function(e){var c=e.getTarget().getBackgroundColor();if(isValidString(c)){this.setCurrentColor(c);};this._oncolorout();};proto._modifyCurrentColor=function(_b1,_b2,_b3,_b4){return this._applyOldColor(_b1);};proto._applyOldColor=function(_b1){this._previewOld.setBackgroundColor(_b1);if(isValid(_b1)){var vTemp=QxColor.read(_b1);this._previewOld.setColor(this._useWhiteColor(QxColor.RGB2HSB(vTemp[0],vTemp[1],vTemp[2]))?"white":"black");};return true;};proto._applyNewColor=function(_b1){if(isValidString(_b1)){this._previewNew.setBackgroundColor(_b1);if(isValid(_b1)){var vTemp=QxColor.read(_b1);this._previewNew.setColor(this._useWhiteColor(QxColor.RGB2HSB(vTemp[0],vTemp[1],vTemp[2]))?"white":"black");};};};proto._useWhiteColor=function(v){return v[2]<70||(v[1]>50&&(v[0].inrange(200,280)||v[0].inrange(-1,40)));};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxColorSelector.js b/swat/style/qooxdoo/widgets/widgets/QxColorSelector.js
new file mode 100644 (file)
index 0000000..65dee66
--- /dev/null
@@ -0,0 +1,5 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxColorSelector(vTemplateColors,vHistoryColors,vStandalone){this.standaloneMode=typeof vStandalone=="boolean"?vStandalone:false;this.webfixMode=vTemplateColors&&vHistoryColors;if(this.standaloneMode){QxPopup.call(this);this.add=this.addToWindow;this.setBorder(null);this.setPadding(10);this.setHeight(this.webfixMode?335:385);}else {QxWindow.call(this, "Color Selector", "icons/16/colors.png");this.setHeight(this.webfixMode?350:400);};this.classname="QxWindow";this.layoutOffset=this.webfixMode?224:196;this.setShowStatusbar(false);this.setShowMaximize(false);this.setShowMinimize(false);this.setResizeable(false);this.setUsePreferredWidthAsMin(false);this.setUsePreferredHeightAsMin(false);this.getPane().setPadding(8);this.setWidth(this.webfixMode?543:515);if(this.webfixMode){var vField;var vFieldSet;var vBase=QxColorSelector.baseColors;var vBaseLength=vBase.length;vFieldSet=new QxFieldSet(QxColorSelector.textBaseColors);vFieldSet.setTop(-6);vFieldSet.setWidth(216);vFieldSet.setHeight(45);vFieldSet.setMinHeight(45);for(var i=0;i<vBaseLength;i++){vField=new QxWidget;vField.setBackgroundColor(vBase[i]);vField.setBorder(QxBorder.presets.inset);vField.setWidth(14);vField.setHeight(14);vField.setLeft(i*16);vField.setTop(0);vField.addEventListener("click",this._onpaletteclick,this);vFieldSet.add(vField);};this.add(vFieldSet);vFieldSet=new QxFieldSet(QxColorSelector.textTemplateColors);vFieldSet.setTop(41);vFieldSet.setWidth(216);vFieldSet.setHeight(45);vFieldSet.setMinHeight(45);for(var i=0;i<vBaseLength;i++){vField=new QxWidget;vField.setBackgroundColor(vTemplateColors[i]);vField.setBorder(QxBorder.presets.inset);vField.setWidth(14);vField.setHeight(14);vField.setLeft(i*16);vField.setTop(0);vField.addEventListener("click",this._onpaletteclick,this);vFieldSet.add(vField);};this.add(vFieldSet);}else {var vField;var vArr=QxColorSelector.presets;var vArrLength=vArr.length;var vSubArr;var vSubArrLength;for(var i=0;i<vArrLength;i++){vSubArr=vArr[i];vSubArrLength=vSubArr.length;for(var j=0;j<vSubArrLength;j++){vField=new QxWidget;vField.setBorder(QxBorder.presets.inset);vField.setBackgroundColor(vSubArr[j]);vField.setWidth(20);vField.setHeight(16);vField.setLeft(j*24);vField.setTop(i*20);vField.addEventListener("click",this._onpaletteclick,this);this.add(vField);};};};var hueFrame=new QxWidget;hueFrame.setBorder(QxBorder.presets.inset);hueFrame.setLeft(this.webfixMode?228:200);hueFrame.setTop(0);hueFrame.setWidth(258);hueFrame.setHeight(258);var hue=this._hueArea=new QxImage("core/huesaturation.jpg",256,256);hueFrame.add(hue);if(this.getEnableShader()){var hueOpaque=this._hueOpaque=new QxWidget();hueOpaque.setLeft(0);hueOpaque.setTop(0);hueOpaque.setRight(0);hueOpaque.setBottom(0);hueOpaque.setBackgroundColor("black");hueFrame.add(hueOpaque);};var huePos=this._huePos=new QxImage("core/huesaturationhandle.gif",11,11);huePos.setLeft(this.layoutOffset+128);huePos.setTop(-4+128);this.add(hueFrame,huePos);hue.addEventListener("click",this._onhueareaclick);hue.addEventListener("mousedown",this._onhueareamousedown);hue.addEventListener("mouseup",this._onhueareamouseup);hue.addEventListener("mousemove",this._onhueareamousemove);hueOpaque.addEventListener("click",this._onhueareaclick,hue);hueOpaque.addEventListener("mousedown",this._onhueareamousedown,hue);hueOpaque.addEventListener("mouseup",this._onhueareamouseup,hue);hueOpaque.addEventListener("mousemove",this._onhueareamousemove,hue);huePos.addEventListener("click",this._onhueareaclick,hue);huePos.addEventListener("mousedown",this._onhueareamousedown,hue);huePos.addEventListener("mouseup",this._onhueareamouseup,hue);huePos.addEventListener("mousemove",this._onhueareamousemove,hue);var brightFrame=new QxWidget;brightFrame.setBorder(QxBorder.presets.inset);brightFrame.setLeft(this.webfixMode?498:470);brightFrame.setTop(0);brightFrame.setWidth(21);brightFrame.setHeight(258);var bright=this._brightArea=new QxImage("core/brightness.jpg",19,256);brightFrame.add(bright);var brightPos=this._brightPos=new QxImage("core/brightnesshandle.gif",35,11);brightPos.setLeft(this.layoutOffset+267);brightPos.setTop(-4);this.add(brightFrame,brightPos);bright.addEventListener("click",this._onbrightareaclick);bright.addEventListener("mousedown",this._onbrightareamousedown);bright.addEventListener("mouseup",this._onbrightareamouseup);bright.addEventListener("mousemove",this._onbrightareamousemove);brightPos.addEventListener("click",this._onbrightareaclick,bright);brightPos.addEventListener("mousedown",this._onbrightareamousedown,bright);brightPos.addEventListener("mouseup",this._onbrightareamouseup,bright);brightPos.addEventListener("mousemove",this._onbrightareamousemove,bright);var inputArea=new QxWidget;inputArea.setLeft(0);inputArea.setWidth(this.webfixMode?218:190);inputArea.setTop(this.webfixMode?95:135);inputArea.setHeight(90);this.add(inputArea);var r=this._red=new QxSpinner(0,127,255);r.setLeft(this.webfixMode?171:143);r.setWidth(45);r.setTop(0);r.addEventListener("change",this._onchange,this);var rl=new QxAtom(QxColorSelector.textRed);rl.setLeft(this.webfixMode?118:90);rl.setWidth(50);rl.setHorizontalBlockAlign("right");rl.setTop(5);var g=this._green=new QxSpinner(0,255,255);g.setLeft(this.webfixMode?171:143);g.setWidth(45);g.setTop(30);g.addEventListener("change",this._onchange,this);var gl=new QxAtom(QxColorSelector.textGreen);gl.setLeft(this.webfixMode?118:90);gl.setWidth(50);gl.setHorizontalBlockAlign("right");gl.setTop(35);var b=this._blue=new QxSpinner(0,255,255);b.setLeft(this.webfixMode?171:143);b.setWidth(45);b.setTop(60);b.addEventListener("change",this._onchange,this);var bl=new QxAtom(QxColorSelector.textBlue);bl.setLeft(this.webfixMode?118:90);bl.setWidth(50);bl.setHorizontalBlockAlign("right");bl.setTop(65);var h=this._hue=new QxSpinner(0,180,360);h.setLeft(54);h.setWidth(45);h.setTop(0);h.addEventListener("change",this._onchange,this);var hl=new QxAtom(QxColorSelector.textHue);hl.setLeft(0);hl.setWidth(50);hl.setHorizontalBlockAlign("right");hl.setTop(5);var s=this._sat=new QxSpinner(0,50,100);s.setLeft(54);s.setWidth(45);s.setTop(30);s.addEventListener("change",this._onchange,this);var sl=new QxAtom(QxColorSelector.textSaturation);sl.setLeft(0);sl.setWidth(50);sl.setHorizontalBlockAlign("right");sl.setTop(35);var l=this._lum=new QxSpinner(0,100,100);l.setLeft(54);l.setWidth(45);l.setTop(60);l.addEventListener("change",this._onchange,this);var ll=new QxAtom(QxColorSelector.textBrightness);ll.setLeft(0);ll.setWidth(50);ll.setHorizontalBlockAlign("right");ll.setTop(65);inputArea.add(r,rl,g,gl,b,bl,h,hl,s,sl,l,ll);var hexLabel=new QxAtom(QxColorSelector.textHex);hexLabel.setLeft(0);hexLabel.setWidth(this.webfixMode?158:130);hexLabel.setHorizontalBlockAlign("right");hexLabel.setTop(this.webfixMode?192:241);var hex=this._hex=new QxTextField("7FFFFF");hex.setLeft(this.webfixMode?161:133);hex.setTop(this.webfixMode?187:236);hex.setWidth(55);this.add(hexLabel,hex);hex.addEventListener("changeText",this._onchangehex,this);var savedColor=this._savedColor=new QxAtom(QxColorSelector.textSavedColor);if(this.webfixMode){savedColor.setLeft(0);savedColor.setTop(233);savedColor.setWidth(100);}else {savedColor.setTop(270);savedColor.setLeft(200);savedColor.setWidth(125);};savedColor.setHeight(25);savedColor.setHorizontalBlockAlign("center");savedColor.setBorder(QxBorder.presets.inset);var newColor=this._newColor=new QxAtom(QxColorSelector.textNewColor);if(this.webfixMode){newColor.setLeft(116);newColor.setTop(233);newColor.setWidth(100);}else {newColor.setRight(33);newColor.setTop(270);newColor.setWidth(125);};newColor.setHeight(25);newColor.setHorizontalBlockAlign("center");newColor.setBorder(QxBorder.presets.inset);newColor.setBackgroundColor("#7FFFFF");this.add(savedColor,newColor);var sep=new QxWidget;sep.setHeight(2);sep.setBorder(QxBorder.presets.thinInset);sep.setWidth("100%");sep.setLeft(0);sep.setTop(this.webfixMode?275:325);this.add(sep);var btncancel = this._btncancel = new QxButton(QxColorSelector.textCancel, "icons/16/button_cancel.png", 16, 16);var btnok = this._btnok = new QxButton(QxColorSelector.textOk, "icons/16/button_ok.png", 16, 16);btncancel.setRight(0);btncancel.setTop(this.webfixMode?285:335);btncancel.setWidth(85);btncancel.setHorizontalBlockAlign("center");btnok.setRight(95);btnok.setTop(this.webfixMode?285:335);btnok.setWidth(85);btnok.setHorizontalBlockAlign("center");this.add(btncancel,btnok);};QxColorSelector.extend(QxWindow,"QxColorSelector");QxColorSelector.addProperty({name:"currentColor",type:QxColor});QxColorSelector.addProperty({name:"enableShader",type:Boolean,defaultValue:true});QxColorSelector.presets=
+[
+[[255,128,128],[255,255,128],[128,255,128],[0,155,128],[128,255,255],[0,128,255],[255,128,192],[255,128,255]],[[255,0,0],[255,255,0],[128,255,0],[0,255,64],[0,255,255],[0,128,192],[128,128,192],[255,0,255]],[[128,64,64],[255,128,64],[0,255,0],[0,128,128],[0,64,128],[128,128,255],[128,0,64],[255,0,128]],[[128,0,0],[255,128,0],[0,128,0],[0,128,64],[0,0,255],[0,160,160],[128,0,128],[128,0,255]],[[64,0,0],[128,64,0],[0,64,0],[0,64,64],[0,0,128],[0,0,64],[64,0,64],[64,0,128]],[[0,0,0],[128,128,0],[128,128,64],[128,128,128],[64,128,128],[192,192,192],[32,0,32],[255,255,255]]
+];QxColorSelector.baseColors=["black",51,102,153,204,"white","red","green","blue","yellow","cyan","magenta"];proto._mode=null;QxColorSelector.textBaseColors="Basic Colors";QxColorSelector.textTemplateColors="Template Colors";QxColorSelector.textHistoryColors="Previous Colors";QxColorSelector.textHue="Hue:";QxColorSelector.textSaturation="Sat:";QxColorSelector.textBrightness="Lum:";QxColorSelector.textRed="Red:";QxColorSelector.textGreen="Green:";QxColorSelector.textBlue="Blue:";QxColorSelector.textOk="OK";QxColorSelector.textCancel="Cancel";QxColorSelector.textSavedColor="Current";QxColorSelector.textNewColor="New";QxColorSelector.textHex="Hex:#";proto._modifyCurrentColor=function(_b1,_b2,_b3,_b4){this._newColor.setBackgroundColor(_b1,_b4);var r=QxColor.read(_b1);if(this._mode!="rgb"){this._red.setValue(r[0]);this._green.setValue(r[1]);this._blue.setValue(r[2]);};var c=QxColor.RGB2HSB(r[0],r[1],r[2]);this._newColor.setColor(this._useWhiteColor(c)?"white":"black");if(this._mode!="hsb"&&this._mode!="lum"){if(this._mode!="brightarea"){this._hue.setValue(c[0]);this._sat.setValue(c[1]);};if(this._mode!="huearea"){this._lum.setValue(c[2]);};};if(this._mode!="huearea"&&this._mode!="brightarea"){if(this._mode!="lum"){this._huePos.setLeft(c[0]==0?this.layoutOffset:this.layoutOffset+(c[0]/3.6*2.56));this._huePos.setTop(c[1]==0?252:256-(-4+(c[1]*2.56)));};if(this._mode!="hsb"){this._brightPos.setTop(-4+256-(c[2]*2.56));};};if(this.getEnableShader()&&this._mode!="huearea"){this._hueOpaque.setOpacity(1-(c[2]/100));};if(this._mode!="hex"){var s="";s+=QxColor.m_hex[Math.floor(r[0]/16)]+QxColor.m_hex[r[0]%16];s+=QxColor.m_hex[Math.floor(r[1]/16)]+QxColor.m_hex[r[1]%16];s+=QxColor.m_hex[Math.floor(r[2]/16)]+QxColor.m_hex[r[2]%16];this._hex.setText(s);};return true;};proto._modifyEnableShader=function(_b1,_b2,_b3,_b4){_b1?this.add(this._hueOpaque):this.remove(this._hueOpaque);return true;};proto._useWhiteColor=function(v){return v[2]<70||(v[1]>50&&(v[0].inrange(200,280)||v[0].inrange(-1,40)));};proto.setSavedColor=function(_b1){var r=QxColor.read(_b1);if(r){var c=QxColor.RGB2HSB(r[0],r[1],r[2]);this._savedColor.setBackgroundColor(_b1);this._savedColor.setColor(this._useWhiteColor(c)?"white":"black");}else {this._savedColor.setBackgroundColor(null);this._savedColor.setColor("black");};};proto._onchange=function(e){if(isValidString(this._mode)){return;};var t=e.getTarget();switch(e.getTarget()){case this._red:case this._blue:case this._green:this._mode="rgb";this.setCurrentColor([this._red.getValue(),this._green.getValue(),this._blue.getValue()]);break;case this._lum:this._mode="lum";this.setCurrentColor(QxColor.HSB2RGB(this._hue.getValue(),this._sat.getValue(),this._lum.getValue()));break;case this._hue:case this._sat:this._mode="hsb";this.setCurrentColor(QxColor.HSB2RGB(this._hue.getValue(),this._sat.getValue(),this._lum.getValue()));break;};delete this._mode;};proto._onchangehex=function(e){if(isValidString(this._mode)){return;};this._mode="hex";var r=QxColor.read("#"+this._hex.getText());if(r){this.setCurrentColor(r);};delete this._mode;};proto._onpaletteclick=function(e){this._mode="palette";this.setCurrentColor(e.getTarget().getBackgroundColor());delete this._mode;};proto._hueActive=false;proto._onhueareamousedown=function(e){this._hueActive=true;this.setCapture(true);};proto._onhueareamouseup=function(e){this._hueActive=false;this.setCapture(false);};proto._onhueareamousemove=function(e){if(this._hueActive){var pa1=this.getParent().getParent();var pa=pa1.standaloneMode?pa1:pa1.getParent();pa._onhueareaclick.call(this,e);};};proto._onhueareaclick=function(e){var pa1=this.getParent().getParent();var pa=pa1.standaloneMode?pa1:pa1.getParent();var h=((e.getPageX()-this.getComputedPageBoxLeft())/2.56*3.6).limit(0,360);var s=((e.getPageY()-this.getComputedPageBoxTop())/2.56).limit(0,100);var b=pa._lum.getValue();pa._huePos.setLeft(pa.layoutOffset+(h/3.6*2.56));pa._huePos.setTop(-4+(s*2.56));pa._mode="huearea";try{var r=QxColor.HSB2RGB(h,100-s,b);if(isValidArray(r)){pa.setCurrentColor(r);};}catch(ex){};delete pa._mode;};proto._brightActive=false;proto._onbrightareamousedown=function(e){this._brightActive=true;this.setCapture(true);};proto._onbrightareamouseup=function(e){this._brightActive=false;this.setCapture(false);};proto._onbrightareamousemove=function(e){if(this._brightActive){var pa1=this.getParent().getParent();var pa=pa1.standaloneMode?pa1:pa1.getParent();pa._onbrightareaclick.call(this,e);};};proto._onbrightareaclick=function(e){var pa1=this.getParent().getParent();var pa=pa1.standaloneMode?pa1:pa1.getParent();var h=pa._hue.getValue();var s=pa._sat.getValue();var b=((e.getPageY()-this.getComputedPageBoxTop())/2.56).limit(0,100);pa._brightPos.setTop(-4+(b*2.56));pa._mode="brightarea";try{var r=QxColor.HSB2RGB(h,s,100-b);if(r){pa.setCurrentColor(r);};}catch(ex){};delete pa._mode;};proto.dispose=function(){if(this.getDisposed()){return;};return QxWindow.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxComboBox.js b/swat/style/qooxdoo/widgets/widgets/QxComboBox.js
new file mode 100644 (file)
index 0000000..5af95e4
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxComboBox(){QxWidget.call(this);this.setWidth(120);this.setHeight(22);this.setBorder(QxBorder.presets.inset);this.setTabIndex(1);this._list=new QxList();this._list.set({top:0,left:0,bottom:0,right:0,overflow:"auto",timerCreate:false});this._manager=this._list.getManager();this._manager.set({multiSelection:false,dragSelection:false});this._manager.addEventListener("changeSelection",this._onchangeselection,this);this._popup=new QxPopup();this._popup.set({autoHide:false,width:150,height:180,timerCreate:false});this._popup.add(this._list);this._atom=new QxAtom();this._atom.set({width:null,top:3,left:4,right:16,tabIndex:-1});this._textfield=new QxTextField();this._textfield.setTop((new QxClient).isGecko()?1:0);this._textfield.set({left:4,right:16,tabIndex:-1});(this.isEditable()?this._atom:this._textfield).setStyleProperty("visibility","hidden");this._button=new QxWidget();this._button.set({top:0,bottom:0,width:16,right:0,border:QxBorder.presets.outset,canSelect:false});this._buttonimage = new QxImage("widgets/arrows/down.gif", 7, 4);this._buttonimage.set({top:5,left:2});this._button.add(this._buttonimage);this.add(this._textfield,this._atom,this._button);this.addEventListener("mousedown",this._g1);this.addEventListener("mouseup",this._g2);this.addEventListener("mouseover",this._onmouseover);this.addEventListener("keydown",this._g4);this.addEventListener("keypress",this._g6);this.addEventListener("mousewheel",this._onmousewheel);};QxComboBox.extend(QxWidget,"QxComboBox");QxComboBox.addProperty({name:"editable",type:Boolean,defaultValue:false,getAlias:"isEditable"});QxComboBox.addProperty({name:"selected",type:Object});QxComboBox.addProperty({name:"value",type:Object});QxComboBox.addProperty({name:"pagingInterval",type:Number,defaultValue:10});QxComboBox.addProperty({name:"maxListHeight",type:Number,defaultValue:180});proto._modifyParent=function(_b1,_b2,_b3,_b4){if(_b1){var p=_b1.getTopLevelWidget();if(p){p.add(this._popup);};}else if(_b2){var p=_b2.getTopLevelWidget();if(p){p.remove(this._popup);};};return QxWidget.prototype._modifyParent.call(this,_b1,_b2,_b3,_b4);};proto._modifySelected=function(_b1,_b2,_b3,_b4){this.setValue(_b1?_b1.getText():"",_b4);if(_b1){this._manager.setSelectedItems([_b1]);}else {this._manager.deselectAll();};return true;};proto._modifyValue=function(_b1,_b2,_b3,_b4){var vText=isValid(_b1)?_b1:"";if(this.isEditable()){this._textfield.setText(vText,_b4);}else {this._atom.setText(vText,_b4);};this.setSelected(vText==""?null:this.getList().findStringExact(vText),_b4);return true;};proto._modifyEditable=function(_b1,_b2,_b3,_b4){var l=this._atom;var t=this._textfield;if(this.isCreated()){l.setVisible(!_b1);t.setVisible(_b1);if(_b1){t.setText(this.getValue());}else {l.setText(this.getValue());};}else {if(_b1){l.setStyleProperty("visibility","hidden");t.removeStyleProperty("visibility");}else {t.setStyleProperty("visibility","hidden");l.removeStyleProperty("visibility");};};this._modifyEditablePost(_b1);return true;};if((new QxClient).isMshtml()){proto._modifyEditablePost=function(_b1){var t=this._textfield;if(_b1){t.setHtmlProperty("unselectable",false);t.setHtmlProperty("tabIndex",1);}else {t.setHtmlProperty("unselectable",true);t.setHtmlProperty("tabIndex",-1);};};}else if((new QxClient).isGecko()){proto._modifyEditablePost=function(_b1){var t=this._textfield;if(_b1){t.setStyleProperty("MozUserFocus","normal");t.setStyleProperty("userFocus","normal");}else {t.setStyleProperty("MozUserFocus","ignore");t.setStyleProperty("userFocus","ignore");};};}else {proto._modifyEditablePost=function(_b1){var t=this._textfield;if(_b1){t.setStyleProperty("userFocus","normal");t.setHtmlProperty("tabIndex",1);}else {t.setStyleProperty("userFocus","ignore");t.setHtmlProperty("tabIndex",-1);};};};proto.getList=function(){return this._list;};proto.getManager=function(){return this._manager;};proto.getPopup=function(){return this._popup;};proto.getAtom=function(){return this._atom;};proto.getTextField=function(){return this._textfield;};proto.getButton=function(){return this._button;};proto.getButtonImage=function(){return this._buttonimage;};proto.createPopup=function(){var p=this._popup;if(!p.isCreated()){p.setLeft(this.getComputedPageBoxLeft()+1);p.setTop(this.getComputedPageBoxBottom());p.setWidth(this.getComputedBoxWidth()-2);};var pa=this.getParent();var pt=pa?pa.getTopLevelWidget():null;if(pt){pt.add(p);};if(!p.isCreated()){p._createElement();p.setVisible(false);};};proto._togglePopup=function(){if(this._popup.getVisible()){this._closePopup();if(!this.getEditable()){this.setState("mark");};}else {this._openPopup();};};proto._openPopup=function(){var p=this._popup;var l=this._list;var m=this._manager;this.createPopup();var lh=l.getPreferredHeight();var mh=this.getMaxListHeight();if(lh>mh){p.setHeight(mh);l.setOverflow("scrollY");}else {p.setHeight(lh);l.setOverflow("hidden");};p.setLeft(this.getComputedPageBoxLeft()+1);p.setTop(this.getComputedPageBoxBottom());p.setWidth(this.getComputedBoxWidth()-2);if(this.isEditable()){var vFound=this._findMatchingEditItem();if(vFound){m.setSelectedItem(vFound);}else {var oldFireChange=m.getFireChange();m.setFireChange(false);m.deselectAll();m.setLeadItem(null);m.setFireChange(oldFireChange);};};var vCurrent=this._manager.getSelectedItem();if(vCurrent){m.setLeadItem(vCurrent);m.scrollItemIntoView(vCurrent);};this.setCapture(true);this.setState(null);p.setVisible(true);};proto._closePopup=function(){var vCurrent=this._manager.getSelectedItem();if(!(vCurrent==null&&this.getEditable())){this.setSelected(vCurrent);this._manager.setLeadItem(vCurrent);};this.setCapture(false);this._popup.setVisible(false);};proto._g1=function(e){var t=e.getActiveTarget();if(typeof t=="undefined"){return;};if(t instanceof QxImage){t=t.getParent();};if(t instanceof QxListItem){if(!t.isEnabled()){return;};t=t.getParent();};switch(t){case this._textfield:return;case this:case this._atom:case this._button:case this._buttonimage:this._togglePopup();this._button.setBorder(QxBorder.presets.inset);break;case this._list:if(this.getEditable()&&!this._findMatchingEditItem()){this.setSelected(null);};this._list._g1(e);if(e.getTarget()!=this._list){this._closePopup();};break;case this._popup:break;default:var sel=this.getSelected();this._manager.deselectAll();if(sel){this._manager.setSelectedItem(sel);};this._closePopup();break;};};proto._g2=function(e){this._button.setBorder(QxBorder.presets.outset);};proto._findMatchingEditItem=function(){return this._list.findStringExact(this._textfield.getElement().value);};proto._g4=function(e){var m=this._manager;if(this._popup.getVisible()){if(e.getKeyCode()==QxKeyEvent.keys.enter){this.setSelected(this._manager.getSelectedItem());this._closePopup();return;}else if(e.getKeyCode()==QxKeyEvent.keys.esc){m.setSelectedItem(this.getSelected());m.setLeadItem(this.getSelected());this._popup.setVisible(false);this.setCapture(false);return;};}else if(e.getKeyCode()==QxKeyEvent.keys.enter){this._openPopup();};if(!this._popup.getVisible()&&e.getKeyCode()==QxKeyEvent.keys.pageup){var vPrevious;var vTemp=this.getSelected();if(vTemp){var vInterval=this.getPagingInterval();do{vPrevious=vTemp;}while(--vInterval&&(vTemp=m.getPrevious(vPrevious)));}else {vPrevious=m.getLast();};this.setSelected(vPrevious);}else if(!this._popup.getVisible()&&e.getKeyCode()==QxKeyEvent.keys.pagedown){var vNext;var vTemp=this.getSelected();if(vTemp){var vInterval=this.getPagingInterval();do{vNext=vTemp;}while(--vInterval&&(vTemp=m.getNext(vNext)));}else {vNext=m.getFirst();};this.setSelected(vNext);}else if(!this.isEditable()||this._popup.getVisible()){this._list._g4(e);}else if(e.getKeyCode()==QxKeyEvent.keys.up||e.getKeyCode()==QxKeyEvent.keys.down){var vFound=this._findMatchingEditItem();if(vFound){m.setSelectedItem(vFound);m.setLeadItem(vFound);}else {m.deselectAll();m.setLeadItem(null);};this._list._g4(e);}else if(this._popup.isCreated()&&(e.getKeyCode()==QxKeyEvent.keys.pageup||e.getKeyCode()==QxKeyEvent.keys.pagedown)){var vFound=this._findMatchingEditItem();if(vFound){m.setSelectedItem(vFound);m.setLeadItem(vFound);}else {m.deselectAll();m.setLeadItem(null);};this._list._g4(e);};};proto._g6=function(e){if(!this.isEditable()||this._popup.getVisible()){this._list._g6(e);};};proto._onmouseover=function(e){var t=e.getTarget();if(t instanceof QxImage){t=t.getParent();};if(t instanceof QxListItem&&t.getEnabled()){var m=this._manager;m.deselectAll();m.setLeadItem(t);m.setSelectedItem(t);};};proto._onmousewheel=function(e){if(!this._popup.getVisible()){var toSelect;var isSelected=this.getSelected();if(e.getWheelDelta()<0){toSelect=isSelected?this._manager.getNext(isSelected):this._manager.getFirst();}else {toSelect=isSelected?this._manager.getPrevious(isSelected):this._manager.getLast();};if(toSelect){this.setSelected(toSelect);};};};proto._onchangeselection=function(e){if(!this._popup.getVisible()){this.setSelected(this._manager.getSelectedItem());};};proto._visualizeBlur=function(){this.setState(null);QxWidget.prototype._visualizeBlur.call(this);};proto.dispose=function(){if(this.getDisposed()){return;};if(this._list){this._list.dispose();this._list=null;};if(this._manager){this._manager.dispose();this._manager=null;};if(this._popup){this._popup.dispose();this._popup=null;};if(this._atom){this._atom.dispose();this._atom=null;};if(this._textfield){this._textfield.dispose();this._textfield=null;};if(this._button){this._button.dispose();this._button=null;};if(this._buttonimage){this._buttonimage.dispose();this._buttonimage=null;};return QxWidget.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxContainer.js b/swat/style/qooxdoo/widgets/widgets/QxContainer.js
new file mode 100644 (file)
index 0000000..f89fb97
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxContainer(vHtml){QxTerminator.call(this);if(isValid(vHtml)){this.setHtml(vHtml);};};QxContainer.extend(QxTerminator,"QxContainer");QxContainer.addProperty({name:"html",type:String});proto._modifyElement=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);if(_b1){return this._applyHtml();}else if(_b2){_b2.innerHTML="";};return true;};proto._modifyHtml=function(_b1,_b2,_b3,_b4){return this._applyHtml();};proto._applyHtml=function(){if(!this.isCreated()){return true;};var vHtml=this.getHtml();if(isValid(vHtml)){this.getElement().innerHTML=vHtml;this._invalidatePreferred("load");this._outerChanged("load");}else {this.getElement().innerHTML="";this._invalidatePreferred("unload");this._outerChanged("unload");};return true;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxDockLayout.js b/swat/style/qooxdoo/widgets/widgets/QxDockLayout.js
new file mode 100644 (file)
index 0000000..ccd41ab
--- /dev/null
@@ -0,0 +1,4 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxDockLayout(){QxLayout.call(this);};QxDockLayout.extend(QxLayout,"QxDockLayout");QxDockLayout.addProperty({name:"respectAutoRequirements",type:Boolean,defaultValue:true});proto.add=function(){var l=arguments.length;var d=arguments[l-1];var o;if(isValidString(d)){l--;}else {d="auto";};for(var i=0;i<l;i++){o=arguments[i];if(!(o instanceof QxWidget)){throw new Error("Invalid Widget:"+o);}else {o.setParent(this);o.setLayoutHint(d);};};return this;};proto._d1=function(){var innerWidth=this.getInnerWidth();if(innerWidth==0){return;};var ch=this.getChildren();var chl=ch.length;var chc,cht;var grouped={left:[],right:[],orthogonal:[],auto:[]
+};for(var i=0;i<chl;i++){chc=ch[i];cht=chc.getLayoutHint();switch(cht){case "left":case "right":case "auto":grouped[cht].push(chc);break;case "top":case "bottom":grouped["orthogonal"].push(chc);break;default:throw new Error("QxDockLayout does not support layout hint '"+cht+"' for child "+chc);};};if(grouped.auto.length>1){throw new Error("QxDockLayout can not handle multiple auto children!");};var leftList=grouped.left;var leftLength=leftList.length;var leftLast=0;for(var i=0;i<leftLength;i++){chc=leftList[i];chc._d3Horizontal(leftLast);leftLast+=this._prepareSizeValue(chc.getAnyWidth(),innerWidth,chc.getMinWidth(),chc.getMaxWidth());};var rightList=grouped.right;var rightLength=rightList.length;var rightLast=innerWidth;for(var i=0;i<rightLength;i++){chc=rightList[i];rightLast-=this._prepareSizeValue(chc.getAnyWidth(),innerWidth,chc.getMinWidth(),chc.getMaxWidth());chc._d3Horizontal(rightLast);};var orthogonalList=grouped.orthogonal;var orthogonalLength=orthogonalList.length;for(var i=0;i<orthogonalLength;i++){chc=orthogonalList[i];chc._d3Horizontal(0);chc._applySizeHorizontal(innerWidth);};var autoList=grouped.auto;var autoLength=autoList.length;var autoItem=autoList[0];var autoSpace=Math.max(0,rightLast-leftLast);if(autoItem){autoItem._d3Horizontal(leftLast);autoItem._applySizeHorizontal(autoSpace);};};proto._d2=function(){var innerHeight=this.getInnerHeight();if(innerHeight==0){return;};var ch=this.getChildren();var chl=ch.length;var chc,cht;var grouped={top:[],bottom:[],orthogonal:[],auto:[]
+};for(var i=0;i<chl;i++){chc=ch[i];cht=chc.getLayoutHint();switch(cht){case "top":case "bottom":case "auto":grouped[cht].push(chc);break;case "left":case "right":grouped["orthogonal"].push(chc);break;default:throw new Error("QxDockLayout does not support layout hint '"+cht+"' for child "+chc);};};if(grouped.auto.length>1){throw new Error("QxDockLayout can not handle multiple auto children!");};var topList=grouped.top;var topLength=topList.length;var topLast=0;for(var i=0;i<topLength;i++){chc=topList[i];chc._d3Vertical(topLast);topLast+=this._prepareSizeValue(chc.getAnyHeight(),innerHeight,chc.getMinHeight(),chc.getMaxHeight());};var bottomList=grouped.bottom;var bottomLength=bottomList.length;var bottomLast=innerHeight;for(var i=0;i<bottomLength;i++){chc=bottomList[i];bottomLast-=this._prepareSizeValue(chc.getAnyHeight(),innerHeight,chc.getMinHeight(),chc.getMaxHeight());chc._d3Vertical(bottomLast);};var otherList=grouped.orthogonal.concat(grouped.auto);var otherSpace=Math.max(0,bottomLast-topLast);for(var i=0,l=otherList.length;i<l;i++){chc=otherList[i];chc._d3Vertical(topLast);chc._applySizeVertical(otherSpace);};};proto._d5Width=function(_e4,_e5){var ch=this.getChildren();var chl=ch.length;var chc;var accumulatedWidth=0;var maxSingleRequiredWidth=0;var respectAutoRequirements=this.getRespectAutoRequirements();var tempSize;for(var i=0;i<chl;i++){chc=ch[i];cht=chc.getLayoutHint();switch(cht){case "top":case "bottom":tempSize=chc.getAnyWidth();tempSize=isValidNumber(tempSize)?tempSize:0;maxSingleRequiredWidth=Math.max(Math.min(Math.max(chc.getMinWidth(),tempSize),chc.getMaxWidth()),maxSingleRequiredWidth);break;case "auto":if(!respectAutoRequirements){break;};case "left":case "right":tempSize=chc.getAnyWidth();tempSize=isValidNumber(tempSize)?tempSize:0;accumulatedWidth+=Math.min(Math.max(tempSize,chc.getMinWidth()),chc.getMaxWidth());break;default:throw new Error("QxDockLayout does not support layout hint '"+cht+"' for child "+chc);};};return Math.max(0,accumulatedWidth+maxSingleRequiredWidth);};proto._d5Height=function(_e4,_e5){var ch=this.getChildren();var chl=ch.length;var chc;var accumulatedHeight=0;var maxSingleRequiredHeight=0;var respectAutoRequirements=this.getRespectAutoRequirements();var tempSize;for(var i=0;i<chl;i++){chc=ch[i];cht=chc.getLayoutHint();switch(cht){case "top":case "bottom":tempSize=chc.getAnyHeight();tempSize=isValidNumber(tempSize)?tempSize:0;accumulatedHeight+=Math.min(Math.max(tempSize,chc.getMinHeight()),chc.getMaxHeight());break;case "auto":if(!respectAutoRequirements){break;};case "left":case "right":tempSize=chc.getAnyHeight();tempSize=isValidNumber(tempSize)?tempSize:0;maxSingleRequiredHeight=Math.max(Math.min(Math.max(chc.getMinHeight(),tempSize),chc.getMaxHeight()),maxSingleRequiredHeight);break;default:throw new Error("QxDockLayout does not support layout hint '"+cht+"' for child "+chc);};};return Math.max(0,accumulatedHeight+maxSingleRequiredHeight);};proto._prepareSizeValue=function(size,full,min,max){var t=typeof size=="string"?Math.round(parseInt(size)*full/100):size;if(!isValidNumber){return null;};return t.limit(min,max);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxFieldSet.js b/swat/style/qooxdoo/widgets/widgets/QxFieldSet.js
new file mode 100644 (file)
index 0000000..c40c522
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxFieldSet(vLegend){QxWidget.call(this);if(isValid(vLegend)){this.setLegend(vLegend);};this._minWidth=100;this._minHeight=50;this.setMinWidth(this._minWidth);this.setMinHeight(this._minHeight);this._dim={};};QxFieldSet.extend(QxWidget,"QxFieldSet");QxFieldSet.addProperty({name:"legend",type:String});proto._modifyElement=function(_b1,_b2,_b3,_b4){if(_b1){if(!this._frame){this._frame=QxFieldSet._h3.cloneNode(true);this._legend=this._frame.firstChild;this._content=this._frame.lastChild;};_b1.appendChild(this._frame);}else if(_b2&&this._frame){_b2.removeChild(this._frame);};QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);return true;};proto._beforeShow=function(){this._renderLegend();this._renderWidth();this._renderHeight();};if((new QxClient).isGecko()){proto._renderLegend=function(){if(!this.isCreated()){return;};var oldWidth1=this.getElement().style.width;var oldWidth2=this._frame.style.width;var newWidth;this.getElement().style.width=this._frame.style.width="10000px";this._legend.style.width="";var l=this.getLegend();if(isValid(l)){this._legend.firstChild.nodeValue=l;this._legend.style.display="block";newWidth=this._legend.scrollWidth;}else {this._legend.style.display="none";newWidth=0;};this.getElement().style.width=oldWidth1;this._frame.style.width=oldWidth2;this._legend.style.width=newWidth+"px";if(this.getMinWidth()==this._minWidth){this._minWidth=newWidth+QxDOM.getComputedMarginLeft(this._legend)+QxDOM.getComputedMarginRight(this._legend);this.setMinWidth(this._minWidth);};};}else {proto._renderLegend=function(){if(!this.isCreated()){return;};var l=this.getLegend();if(isValid(l)){this._legend.firstChild.nodeValue=l;this._legend.style.display="block";}else {this._legend.style.display="none";};if(this.getMinWidth()==this._minWidth){this._minWidth=this._legend.scrollWidth+QxDOM.getComputedMarginLeft(this._legend)+QxDOM.getComputedMarginRight(this._legend);this.setMinWidth(this._minWidth);};};};proto._modifyLegend=function(_b1,_b2,_b3,_b4){this._renderLegend();return true;};proto._getParentNodeForChild=function(){return this._content;};proto._renderWidth=function(size){if(!this.isCreated()){return true;};var wFrame=Math.max(0,this.getElement().offsetWidth-QxDOM.getComputedMarginLeft(this._frame)-QxDOM.getComputedMarginRight(this._frame));var wContent=wFrame>0?Math.max(0,wFrame-QxDOM.getComputedInsetLeft(this._frame)-QxDOM.getComputedInsetRight(this._frame)-QxDOM.getComputedMarginLeft(this._content)-QxDOM.getComputedMarginRight(this._content)):0;this._frame.style.width=wFrame+"px";this._content.style.width=wContent+"px";return true;};proto._renderHeight=function(size){if(!this.isCreated()){return true;};var hFrame=Math.max(0,this.getElement().offsetHeight-QxDOM.getComputedMarginTop(this._frame)-QxDOM.getComputedMarginBottom(this._frame));var hContent=hFrame>0?Math.max(0,hFrame-QxDOM.getComputedInsetTop(this._frame)-QxDOM.getComputedInsetBottom(this._frame)-QxDOM.getComputedMarginTop(this._content)-QxDOM.getComputedMarginBottom(this._content)):0;this._frame.style.height=hFrame+"px";this._content.style.height=hContent+"px";return true;};proto.getComputedBorderLeft=proto.getComputedInsetLeft=function(){return QxDOM.getComputedMarginLeft(this._frame)+QxDOM.getComputedInsetLeft(this._frame)+QxDOM.getComputedMarginLeft(this._content);};proto.getComputedBorderRight=proto.getComputedInsetRight=function(){return QxDOM.getComputedMarginRight(this._frame)+QxDOM.getComputedInsetRight(this._frame)+QxDOM.getComputedMarginRight(this._content);};proto.getComputedBorderTop=proto.getComputedInsetTop=function(){return QxDOM.getComputedMarginTop(this._frame)+QxDOM.getComputedInsetTop(this._frame)+QxDOM.getComputedMarginTop(this._content);};proto.getComputedBorderBottom=proto.getComputedInsetBottom=function(){return QxDOM.getComputedMarginBottom(this._frame)+QxDOM.getComputedInsetBottom(this._frame)+QxDOM.getComputedMarginBottom(this._content);};proto.getComputedAreaWidth=function(){return this.getElement().offsetWidth-this.getComputedInsetLeft()-this.getComputedInsetRight();};proto.getComputedAreaHeight=function(){return this.getElement().offsetHeight-this.getComputedInsetTop()-this.getComputedInsetBottom();};proto.getComputedInnerWidth=function(){return this.getElement().offsetWidth-this.getComputedInsetLeft()-this.getComputedInsetRight()-this.getComputedPaddingLeft()-this.getComputedPaddingRight();};proto.getComputedInnerHeight=function(){return this.getElement().offsetHeight-this.getComputedInsetTop()-this.getComputedInsetBottom()-this.getComputedPaddingTop()-this.getComputedPaddingBottom();};proto._applySizeHorizontal=function(size){QxWidget.prototype._applySizeHorizontal.call(this,size);return this._renderWidth();};proto._applySizeVertical=function(size){QxWidget.prototype._applySizeVertical.call(this,size);return this._renderHeight();};QxFieldSet.init=function(){var frame=QxFieldSet._h3=document.createElement("div");var legend=document.createElement("div");var legendText=document.createTextNode("-");var content=document.createElement("div");frame.className="QxFieldSetFrame";legend.className="QxFieldSetLegend";content.className="QxFieldSetContent";legend.appendChild(legendText);frame.appendChild(legend);frame.appendChild(content);};QxFieldSet.init();
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxFlowLayout.js b/swat/style/qooxdoo/widgets/widgets/QxFlowLayout.js
new file mode 100644 (file)
index 0000000..c62b09a
--- /dev/null
@@ -0,0 +1,3 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxFlowLayout(){QxLayout.call(this);};QxFlowLayout.extend(QxLayout,"QxFlowLayout");QxFlowLayout.addProperty({name:"horizontalSpacing",type:Number,defaultValue:0});QxFlowLayout.addProperty({name:"verticalSpacing",type:Number,defaultValue:0});QxFlowLayout.addProperty({name:"horizontalBlockAlign",type:String,defaultValue:"left"});QxFlowLayout.addProperty({name:"verticalChildrenAlign",type:String,defaultValue:"top"});proto._d1=function(){var innerWidth=this.getInnerWidth();var innerHeight=this.getInnerHeight();var blockAlign=this.getHorizontalBlockAlign();var childrenAlign=this.getVerticalChildrenAlign();var spacingX=this.getHorizontalSpacing();var spacingY=this.getVerticalSpacing();var paddingLeft=this.getPaddingLeft();var paddingTop=this.getPaddingTop();var accumulatedWidth=0;var accumulatedHeight=0;var childNeededWidth;var childNeededHeight;var currentRow;var childCalculatedLeft,childCalculatedTop;var maxRequiredRowHeight=0;var rows=[];var childOffsetLeft=[];function storeRow(accumulatedWidth,accumulatedHeight,maxRequiredRowHeight){var r={width:accumulatedWidth,height:maxRequiredRowHeight,offsetTop:accumulatedHeight
+};switch(blockAlign){case "center":r.offsetLeft=(innerWidth-accumulatedWidth)/2;break;case "right":r.offsetLeft=innerWidth-accumulatedWidth;break;default:r.offsetLeft=0;};rows.push(r);};var ch=this.getChildren();var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];childNeededWidth=chc.getMarginLeft()+chc.getAnyWidth()+chc.getMarginRight();childNeededHeight=chc.getAnyHeight();if((accumulatedWidth+childNeededWidth)>innerWidth){storeRow(accumulatedWidth,accumulatedHeight,maxRequiredRowHeight);chc.__row=rows.length;accumulatedHeight+=maxRequiredRowHeight+spacingY;childOffsetLeft.push(0);accumulatedWidth=childNeededWidth+spacingX;maxRequiredRowHeight=childNeededHeight;}else {chc.__row=rows.length;childOffsetLeft.push(accumulatedWidth);accumulatedWidth+=childNeededWidth+spacingX;maxRequiredRowHeight=Math.max(maxRequiredRowHeight,childNeededHeight);};};storeRow(accumulatedWidth,accumulatedHeight,maxRequiredRowHeight);for(var i=0;i<chl;i++){chc=ch[i];currentRow=rows[chc.__row];delete chc.__row;childCalculatedLeft=paddingLeft+currentRow.offsetLeft+childOffsetLeft[i];childCalculatedTop=paddingTop+currentRow.offsetTop;switch(childrenAlign){case "middle":childCalculatedTop+=(currentRow.height-chc.getAnyHeight())/2;break;case "bottom":childCalculatedTop+=currentRow.height-chc.getAnyHeight();break;};chc._d3Horizontal(childCalculatedLeft);chc._d3Vertical(childCalculatedTop);};return true;};proto._d2=function(){return true;};proto._d5Width=function(_e4,_e5){throw new Error("Auto Width is not supported by QxFlowLayout");};proto._d5Height=function(_e4,_e5){throw new Error("Auto Height is not supported by QxFlowLayout");};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxForm.js b/swat/style/qooxdoo/widgets/widgets/QxForm.js
new file mode 100644 (file)
index 0000000..649607a
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxForm(){QxWidget.call(this);this.setTagName("FORM");};QxForm.extend(QxWidget,"QxForm");
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxGallery.js b/swat/style/qooxdoo/widgets/widgets/QxGallery.js
new file mode 100644 (file)
index 0000000..1359aab
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxGallery(vGalleryList){QxWidget.call(this);this._blank=(new QxImageManager).getBlank();this._list=vGalleryList;this._addCssClassName("QxWidget");this.setOverflow("auto");this._manager=new QxDomSelectionManager(this);this._manager.setMultiColumnSupport(true);this.addEventListener("mousedown",this._g1);this.addEventListener("mouseup",this._g2);this.addEventListener("mousemove",this._onmousemove);this.addEventListener("click",this._g3);this.addEventListener("dblclick",this._ondblclick);this.addEventListener("keydown",this._g4);};QxGallery.extend(QxWidget,"QxGallery");QxGallery.addProperty({name:"thumbMaxWidth",type:Number,defaultValue:100});QxGallery.addProperty({name:"thumbMaxHeight",type:Number,defaultValue:100});QxGallery.addProperty({name:"decorHeight",type:Number,defaultValue:40});QxGallery.addProperty({name:"showTitle",type:Boolean,defaultValue:true});QxGallery.addProperty({name:"showComment",type:Boolean,defaultValue:true});proto._modifyVisible=function(_b1,_b2,_b3,_b4){if(_b1){var o=this;window.setTimeout(function(){o.getElement().appendChild(o.createView());},100);};return QxWidget.prototype._modifyVisible.call(this,_b1,_b2,_b3,_b4);};proto.getManager=function(){return this._manager;};proto.getList=function(){return this._list;};proto.update=function(vGalleryList){this._manager.deselectAll();this._list=vGalleryList;var el=this.getElement();el.replaceChild(this.createView(),el.firstChild);};proto.removeAll=function(){this._manager.deselectAll();this.getElement().innerHTML="";};proto.updateImageSrcById=function(vId,vSrc){return this.updateImageSrcByPosition(this.getPositionById(vId),vSrc);};proto.updateImageSrcByPosition=function(vPos,vSrc){if(vPos==-1){throw new Error("No valid Position:"+vPos);};var vNode=this.getNodeByPosition(vPos);vNode.getElementsByTagName("IMG")[0].src=vSrc;this._list.src=vSrc;};proto.deleteById=function(vId){this.deleteByPosition(this.getPositionById(vId));};proto.deleteByPosition=function(vPos){if(vPos==-1){throw new Error("No valid Position:"+vPos);};var vNode=this.getNodeByPosition(vPos);if(vNode){vNode.parentNode.removeChild(vNode);};this._list.removeAt(vPos);};proto.getPositionById=function(vId){for(var i=0,a=this._list,l=a.length;i<l;i++){if(a[i].id==vId){return i;};};return-1;};proto.getEntryById=function(vId){return this.getEntryByPosition(this.getPositionById(vId));};proto.getNodeById=function(vId){return this.getNodeByPosition(this.getPositionById(vId));};proto.getEntryByPosition=function(vPosition){return vPosition==-1?null:this._list[vPosition];};proto.getNodeByPosition=function(vPosition){return vPosition==-1?null:this._frame.childNodes[vPosition];};proto.getEntryByNode=function(vNode){return this.getEntryById(vNode.id);};proto.addFromPartialList=function(vPartialList){this.concat(vPartialList);for(var i=0,a=vPartialList,l=a.length;i<l;i++){this._frame.appendChild(this.createCell(a[i]));};};proto.addFromUpdatedList=function(vNewList){for(var a=vNewList,l=a.length,i=this._list.length;i<l;i++){this._frame.appendChild(this.createCell(a[i]));};this._list=vNewList;};proto._g1=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleMouseDown(vItem,e);};};proto._g2=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleMouseUp(vItem,e);};};proto._onmousemove=function(e){if(typeof QxToolTipManager!="function"){return;};var vItem=this.getListItemTarget(e.getDomTarget());if(vItem==this._lastItem){return;};if(this._lastItem){var vEventObject=new QxMouseEvent("mouseout",e,false,this._lastItem);(new QxToolTipManager).handleMouseOut(vEventObject);vEventObject.dispose();};if(vItem){if(this.hasEventListeners("beforeToolTipAppear")){this.dispatchEvent(new QxDataEvent("beforeToolTipAppear",vItem));};if(!this.getToolTip()){return;};var vEventObject=new QxMouseEvent("mouseout",e,false,vItem);(new QxToolTipManager).handleMouseOver(vEventObject);vEventObject.dispose();this.setToolTip(null);};this._lastItem=vItem;};proto._g3=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleClick(vItem,e);};};proto._ondblclick=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleDblClick(vItem,e);};};proto._g4=function(e){this._manager.handleKeyDown(e);};proto.getListItemTarget=function(dt){while(dt.className.indexOf("galleryCell")==-1&&dt.tagName!="BODY"){dt=dt.parentNode;};if(dt.tagName=="BODY"){return null;};return dt;};proto.scrollItemIntoView=function(vItem){this.scrollItemIntoViewX(vItem);this.scrollItemIntoViewY(vItem);};proto.scrollItemIntoViewX=function(vItem){QxDOM.scrollIntoViewX(vItem,vItem.parentNode.parentNode);};proto.scrollItemIntoViewY=function(vItem){QxDOM.scrollIntoViewY(vItem,vItem.parentNode.parentNode);};proto.getItems=function(){return this._frame.childNodes;};proto.getFirstChild=function(){return this._frame.childNodes[0];};proto.getLastChild=function(){return this._frame.childNodes[this._frame.childNodes.length-1];};proto.createView=function(){var s=(new Date).valueOf();var tWidth=this.getThumbMaxWidth();var tHeight=this.getThumbMaxHeight();if(!this._protoCell){this.createProtoCell();};this._frame=document.createElement("div");this._frame.className="galleryFrame clearfix";for(var i=0,a=this._list,l=a.length;i<l;i++){this._frame.appendChild(this.createCell(a[i]));};return this._frame;};proto.createCell=function(d){var cframe=this._protoCell.cloneNode(true);cframe.id=d.id;cframe.pos=i;if(this.getShowTitle()){cnode=cframe.childNodes[0];cnode.firstChild.nodeValue=d.title;};var cnode=cframe.childNodes[this.getShowTitle()?1:0];cnode.width=d.thumbWidth;cnode.height=d.thumbHeight;if(cnode.runtimeStyle&&!window.opera){cnode.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+d.src+"',sizingMethod='scale')";}else{cnode.src=d.src;};cnode.style.marginLeft=cnode.style.marginRight=Math.floor((this.getThumbMaxWidth()-d.thumbWidth)/2)+"px";cnode.style.marginTop=cnode.style.marginBottom=Math.floor((this.getThumbMaxHeight()-d.thumbHeight)/2)+"px";if(this.getShowComment()){cnode=cframe.childNodes[this.getShowTitle()?2:1];cnode.firstChild.nodeValue=d.comment;};return cframe;};proto.createProtoCell=function(){var frame=this._protoCell=document.createElement("div");frame.className="galleryCell";frame.unselectable="on";frame.style.width=this.getThumbMaxWidth()+"px";frame.style.height=(this.getThumbMaxHeight()+this.getDecorHeight())+"px";if(this.getShowTitle()){var title=document.createElement("div");title.className="galleryTitle";title.unselectable="on";var ttext=document.createTextNode("-");title.appendChild(ttext);frame.appendChild(title);};var image=new Image();image.src=this._blank;frame.appendChild(image);if(this.getShowComment()){var comment=document.createElement("div");comment.className="galleryComment";comment.unselectable="on";var ctext=document.createTextNode("-");comment.appendChild(ctext);frame.appendChild(comment);};};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxGalleryList.js b/swat/style/qooxdoo/widgets/widgets/QxGalleryList.js
new file mode 100644 (file)
index 0000000..898f7d0
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxGalleryList(galleryList){QxWidget.call(this);this._blank=(new QxImageManager).getBlank();this._list=galleryList;this.setOverflow("auto");this._manager=new QxDomSelectionManager(this);this.addEventListener("mousedown",this._g1);this.addEventListener("mouseup",this._g2);this.addEventListener("click",this._g3);this.addEventListener("dblclick",this._ondblclick);this.addEventListener("keydown",this._g4);};QxGalleryList.extend(QxWidget,"QxGalleryList");QxGalleryList.addProperty({name:"thumbMaxWidth",type:Number,defaultValue:60});QxGalleryList.addProperty({name:"thumbMaxHeight",type:Number,defaultValue:60});QxGalleryList.addProperty({name:"decorHeight",type:Number,defaultValue:40});proto.getManager=function(){return this._manager;};proto._modifyVisible=function(_b1,_b2,_b3,_b4){if(_b1){var o=this;window.setTimeout(function(){o.getElement().appendChild(o.createView());},100);};return QxWidget.prototype._modifyVisible.call(this,_b1,_b2,_b3,_b4);};proto._g1=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleMouseDown(vItem,e);};};proto._g2=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleMouseUp(vItem,e);};};proto._g3=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleClick(vItem,e);};};proto._ondblclick=function(e){var vItem=this.getListItemTarget(e.getDomTarget());if(vItem){this._manager.handleDblClick(vItem,e);};};proto._g4=function(e){this._manager.handleKeyDown(e);};proto.getListItemTarget=function(dt){while(dt.className.indexOf("galleryCell")==-1&&dt.tagName!="BODY"){dt=dt.parentNode;};if(dt.tagName=="BODY"){return null;};return dt;};proto.scrollItemIntoView=function(vItem){this.scrollItemIntoViewX(vItem);this.scrollItemIntoViewY(vItem);};proto.scrollItemIntoViewX=function(vItem){QxDOM.scrollIntoViewX(vItem,vItem.parentNode.parentNode);};proto.scrollItemIntoViewY=function(vItem){QxDOM.scrollIntoViewY(vItem,vItem.parentNode.parentNode);};proto.getItems=function(){return this._frame.childNodes;};proto.getFirstChild=function(){return this._frame.childNodes[0];};proto.getLastChild=function(){return this._frame.childNodes[this._frame.childNodes.length-1];};proto.createView=function(){var s=(new Date).valueOf();var tWidth=this.getThumbMaxWidth();var tHeight=this.getThumbMaxHeight();var protoCell=this.createProtoCell(tHeight);var frame=this._frame=document.createElement("div");this._frame.className="galleryFrame clearfix";var cframe,cnode;for(var i=0,a=this._list,l=a.length,d;i<l;i++){d=a[i];cframe=protoCell.cloneNode(true);cframe.id=d.id;cframe.pos=i;cnode=cframe.childNodes[0];cnode.firstChild.nodeValue=d.number;cnode=cframe.childNodes[1].firstChild;cnode.width=d.thumbWidth;cnode.height=d.thumbHeight;if(cnode.runtimeStyle&&!window.opera){cnode.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+d.src+"',sizingMethod='scale')";}else{cnode.src=d.src;};cnode.style.marginLeft=cnode.style.marginRight=Math.floor((tWidth-d.thumbWidth)/2)+"px";cnode.style.marginTop=cnode.style.marginBottom=Math.floor((tHeight-d.thumbHeight)/2)+"px";cnode=cframe.childNodes[2].firstChild;cnode.firstChild.nodeValue=d.title;cnode=cframe.childNodes[2].lastChild;cnode.firstChild.nodeValue=d.comment;frame.appendChild(cframe);};return frame;};proto.createProtoCell=function(tHeight){var frame=document.createElement("div");frame.className="galleryCell";frame.unselectable="on";frame.style.height=(tHeight+2)+"px";var number=document.createElement("div");number.className="galleryNumber";number.unselectable="on";var ntext=document.createTextNode("-");number.appendChild(ntext);var imageContainer=document.createElement("div");imageContainer.className="galleryImageContainer";imageContainer.unselectable="on";var image=new Image();image.src=this._blank;imageContainer.appendChild(image);var text=document.createElement("div");text.className="galleryText";text.unselectable="on";text.style.width=(this.getWidth()-100-this.getThumbMaxWidth())+"px";var title=document.createElement("h3");var ttext=document.createTextNode("-");title.appendChild(ttext);title.unselectable="on";text.appendChild(title);var comment=document.createElement("p");var ctext=document.createTextNode("-");comment.appendChild(ctext);comment.unselectable="on";text.appendChild(comment);frame.appendChild(number);frame.appendChild(imageContainer);frame.appendChild(text);return frame;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxGridLayout.js b/swat/style/qooxdoo/widgets/widgets/QxGridLayout.js
new file mode 100644 (file)
index 0000000..3246598
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxGridLayout(vRows,vCols,vShowVirtualCells){QxLayout.call(this);this._rowHeights=[];this._colWidths=[];this._computedRowTypes=[];this._computedColTypes=[];this._computedRowHeights=[];this._computedColWidths=[];this._virtualCells=[];if(isValid(vShowVirtualCells)){this.setShowVirtualCells(vShowVirtualCells);};if(isValidString(vRows)){this.addRowsFromString(vRows);};if(isValidString(vCols)){this.addColsFromString(vCols);};};QxGridLayout.extend(QxLayout,"QxGridLayout");QxGridLayout.addProperty({name:"constraintMode",type:String,defaultValue:"clip"});QxGridLayout.addProperty({name:"respectSpansInAuto",type:Boolean,defaultValue:false});QxGridLayout.addProperty({name:"showVirtualCells",type:Boolean,defaultValue:false});QxGridLayout.addProperty({name:"cellPaddingTop",type:Number,defaultValue:0});QxGridLayout.addProperty({name:"cellPaddingRight",type:Number,defaultValue:0});QxGridLayout.addProperty({name:"cellPaddingBottom",type:Number,defaultValue:0});QxGridLayout.addProperty({name:"cellPaddingLeft",type:Number,defaultValue:0});proto.add=function(w,h){if(isInvalidNumber(h.colspan)){h.colspan=1;};if(isInvalidNumber(h.rowspan)){h.rowspan=1;};if(isValidNumber(h.padding)){if(isInvalidNumber(h.paddingLeft)){h.paddingLeft=h.padding;};if(isInvalidNumber(h.paddingTop)){h.paddingTop=h.padding;};if(isInvalidNumber(h.paddingRight)){h.paddingRight=h.padding;};if(isInvalidNumber(h.paddingBottom)){h.paddingBottom=h.padding;};}else {if(isInvalidNumber(h.paddingLeft)){h.paddingLeft=this.getCellPaddingLeft();};if(isInvalidNumber(h.paddingTop)){h.paddingTop=this.getCellPaddingTop();};if(isInvalidNumber(h.paddingRight)){h.paddingRight=this.getCellPaddingRight();};if(isInvalidNumber(h.paddingBottom)){h.paddingBottom=this.getCellPaddingBottom();};};if(isInvalid(h.scaleHorizontal)){h.scaleHorizontal=false;};if(isInvalid(h.scaleVertical)){h.scaleVertical=false;};w.setParent(this);w.setLayoutHint(h);};proto.remove=function(w){w.setParent(null);w.setLayoutHint(null);};proto.addRowsFromString=function(vRows){if(isValidString(vRows)){for(var i=0,a=vRows.split(","),l=a.length;i<l;i++){this.addRow(a[i]);};};};proto.addColsFromString=function(vCols){if(isValidString(vCols)){for(var i=0,a=vCols.split(","),l=a.length;i<l;i++){this.addCol(a[i]);};};};proto._anyColSum=0;proto._anyRowSum=0;proto._computeAnyWeight=function(vValue){return parseFloat(vValue.substring(1,vValue.length))||1;};proto.addRow=function(vHeight){var vPos=this._rowHeights.length+1;var vComputed,vType,vAnyWeight;switch(typeof vHeight){case "number":vComputed=vHeight;vType="static";break;case "string":if(vHeight=="auto"){vType="auto";vComputed=this._computeAutoRowHeight(vPos,vHeight);break;}else if(vHeight.indexOf("*")==0){vType="any";this._anyRowSum+=this._computeAnyWeight(vHeight);vComputed=this._computeAnyRowHeight(vPos,vHeight);break;}else if(vHeight.indexOf("%")==(vHeight.length-1)){vType="percent";vComputed=this._computePercentRowHeight(vPos,vHeight);break;};var vTemp=parseInt(vHeight);if(!isNaN(vTemp)){vComputed=vTemp;vType="static";break;};default:throw new Error("Unsupported Row Type:"+vHeight);};this._rowHeights.push(vHeight);this._rowCount=this._rowHeights.length;if(isValidString(vType)){this._computedRowTypes.push(vType);};if(isValidNumber(vComputed)){this._computedRowHeights.push(vComputed);};if(this.getShowVirtualCells()){for(var i=0,l=this.getColCount();i<l;i++){this._virtualCells.push(document.createElement("div"));};};};proto.addCol=function(vWidth){var vPos=this._colWidths.length+1;var vComputed,vType;switch(typeof vWidth){case "number":vComputed=vWidth;vType="static";break;case "string":if(vWidth=="auto"){vType="auto";vComputed=this._computeAutoColWidth(vPos,vWidth);break;}else if(vWidth.indexOf("*")==0){vType="any";this._anyColSum+=this._computeAnyWeight(vWidth);vComputed=this._computeAnyColWidth(vPos,vWidth);break;}else if(vWidth.indexOf("%")==(vWidth.length-1)){vType="percent";vComputed=this._computePercentColWidth(vPos,vWidth);break;};var vTemp=parseInt(vWidth);if(!isNaN(vTemp)){vComputed=vTemp;vType="static";break;};default:throw new Error("Unsupported Col Type:"+vWidth);};this._colWidths.push(vWidth);this._colCount=this._colWidths.length;if(isValidString(vType)){this._computedColTypes.push(vType);};if(isValidNumber(vComputed)){this._computedColWidths.push(vComputed);};if(this.getShowVirtualCells()){for(var i=0,l=this.getRowCount();i<l;i++){this._virtualCells.insertAt(document.createElement("div"),i*this._colCount);};};};proto.getRowCount=function(){return this._rowCount;};proto.getColCount=function(){return this._colCount;};proto._layoutHorizontalInitialDone=false;proto._d1=function(_e5,vModifiedChild){if(!this._layoutHorizontalInitialDone){_e5="initial";};var vCol;switch(_e5){case "initial":for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){this._layoutHorizontal(chc);};break;case "load":case "size":case "load":case "size":if(!vModifiedChild){break;};this._updateAutoCols(vModifiedChild);case "append-child-light":case "remove-child-light":var vMatchCol=vModifiedChild.getLayoutHint().col;var vLayoutHint;var vCol;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){vLayoutHint=chc.getLayoutHint();vCol=vLayoutHint.col;if(vCol>=vMatchCol||(vCol<vMatchCol&&(vLayoutHint.colspan+vCol)>=vMatchCol)){this._layoutHorizontal(chc);};};break;case "append-child":var vChange=false;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){vCol=chc.getLayoutHint().col;if(vChange){this._layoutHorizontal(chc);}else {switch(this._computedColTypes[vCol-1]){case "auto":this._layoutHorizontal(chc);vChange=true;break;};};};break;case "inner-width":var vChange=false;var vLayoutHint,vColSpan;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){vLayoutHint=chc.getLayoutHint();vCol=vLayoutHint.col;if(vChange){this._layoutHorizontal(chc);}else {switch(this._computedColTypes[vCol-1]){case "percent":case "any":this._layoutHorizontal(chc);vChange=true;break;default:vColSpan=vLayoutHint.colspan;for(var j=1;j<vColSpan;j++){switch(this._computedColTypes[vCol-1+j]){case "percent":case "any":this._layoutHorizontal(chc);vChange=true;break;};};};};};break;};this._layoutHorizontalInitialDone=true;};proto._layoutVerticalInitialDone=false;proto._d2=function(_e5,vModifiedChild){if(!this._layoutVerticalInitialDone){_e5="initial";};var vRow;switch(_e5){case "initial":for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){this._layoutVertical(chc);};break;case "load":case "size":if(!vModifiedChild){break;};this._updateAutoRows(vModifiedChild);case "append-child-light":case "remove-child-light":var vMatchRow=vModifiedChild.getLayoutHint().row;var vLayoutHint;var vRow;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){vLayoutHint=chc.getLayoutHint();vRow=vLayoutHint.row;if(vRow>=vMatchRow||(vRow<vMatchRow&&(vLayoutHint.rowspan+vRow)>=vMatchRow)){this._layoutVertical(chc);};};break;case "append-child":var vChange=false;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){vRow=chc.getLayoutHint().row;if(vChange){this._layoutVertical(chc);}else {switch(this._computedRowTypes[vRow-1]){case "auto":this._layoutVertical(chc);vChange=true;break;};};};break;case "inner-height":var vChange=false;var vLayoutHint,vRowSpan;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){vLayoutHint=chc.getLayoutHint();vRow=vLayoutHint.row;if(vChange){this._layoutVertical(chc);}else {switch(this._computedRowTypes[vRow-1]){case "percent":case "any":this._layoutVertical(chc);vChange=true;break;default:vRowSpan=vLayoutHint.rowspan;for(var j=1;j<vRowSpan;j++){switch(this._computedRowTypes[vRow-1+j]){case "percent":case "any":this._layoutVertical(chc);vChange=true;break;};};};};};break;};this._layoutVerticalInitialDone=true;};proto._layoutHorizontal=function(vWidget){if(!vWidget.isCreated()){return;};var _e5=vWidget.getLayoutHint();var vRow=_e5.row-1;var vCol=_e5.col-1;var vColSpan=_e5.colspan;var vColCount=this.getColCount();var vLeft=this.getPaddingLeft();var vWidth=0;for(var i=0;i<vCol;i++){vLeft+=this._computedColWidths[i];};for(var j=0;j<vColSpan;j++){vWidth+=this._computedColWidths[i+j];};var vAvailableWidth=vWidth-_e5.paddingLeft-_e5.paddingRight;var vClip=vWidget.getClip();if(vClip){vClip[1]=vAvailableWidth;vWidget.forceClip(null);vWidget.setClip(vClip);}else {vWidget.setClip([0,vAvailableWidth,0,0])};if(this.getShowVirtualCells()){var vCell=this._virtualCells[(vRow*vColCount)+vCol];var vCellStyle=vCell.style;vCellStyle.position="absolute";vCellStyle.border="1px solid #4D79FF";vCellStyle.left=vLeft+"px";vCellStyle.width=vWidth+"px";vCellStyle.zIndex="-1";if(!vCellStyle.parentNode){this.getElement().appendChild(vCell);};};switch(vWidget.getHorizontalAlign()){case "center":vLeft+=Math.max((vAvailableWidth-vWidget.getAnyWidth())/2,0);break;case "right":vLeft+=Math.max(vAvailableWidth-vWidget.getAnyWidth(),0);break;};vWidget._d3Horizontal(vLeft+_e5.paddingLeft);if(_e5.scaleHorizontal){vWidget._applySizeHorizontal(vAvailableWidth);};};proto._layoutVertical=function(vWidget){if(!vWidget.isCreated()){return;};var _e5=vWidget.getLayoutHint();var vRow=_e5.row-1;var vCol=_e5.col-1;var vRowSpan=_e5.rowspan;var vColCount=this.getColCount();var vTop=this.getPaddingTop();var vHeight=0;for(var i=0;i<vRow;i++){vTop+=this._computedRowHeights[i];};for(var j=0;j<vRowSpan;j++){vHeight+=this._computedRowHeights[i+j];};var vAvailableHeight=vHeight-_e5.paddingTop-_e5.paddingBottom;var vClip=vWidget.getClip();if(vClip){vClip[2]=vAvailableHeight;vWidget.forceClip(null);vWidget.setClip(vClip);}else {vWidget.setClip([0,0,vAvailableHeight,0])};if(this.getShowVirtualCells()){var vCell=this._virtualCells[(vRow*vColCount)+vCol];var vCellStyle=vCell.style;vCellStyle.position="absolute";vCellStyle.border="1px solid #4D79FF";vCellStyle.top=vTop+"px";vCellStyle.height=vHeight+"px";vCellStyle.zIndex="-1";if(!vCellStyle.parentNode){this.getElement().appendChild(vCell);};};switch(vWidget.getVerticalAlign()){case "middle":vTop+=Math.max((vAvailableHeight-vWidget.getAnyHeight())/2,0);break;case "bottom":vTop+=Math.max(vAvailableHeight-vWidget.getAnyHeight(),0);break;};vWidget._d3Vertical(vTop+_e5.paddingTop);if(_e5.scaleVertical){vWidget._applySizeVertical(vAvailableHeight);};};proto._updatePercentCols=function(){var vColCount=this.getColCount();for(var i=0;i<vColCount;i++){if(this._computedColTypes[i]=="percent"){this._computedColWidths[i]=this._computePercentColWidth(i,this._colWidths[i]);};};};proto._updatePercentRows=function(){var vRowCount=this.getRowCount();for(var i=0;i<vRowCount;i++){if(this._computedRowTypes[i]=="percent"){this._computedRowHeights[i]=this._computePercentRowHeight(i,this._rowHeights[i]);};};};proto._updateAnyCols=function(){var vColCount=this.getColCount();var vRet=false;var vNew;for(var i=0;i<vColCount;i++){if(this._computedColTypes[i]=="any"){vNew=this._computeAnyColWidth(i,this._colWidths[i]);if(vNew!=this._computedColWidths[i]){this._computedColWidths[i]=vNew;vRet=true;};};};return vRet;};proto._updateAnyRows=function(){var vRowCount=this.getRowCount();var vRet=false;var vNew;for(var i=0;i<vRowCount;i++){if(this._computedRowTypes[i]=="any"){vNew=this._computeAnyRowHeight(i,this._rowHeights[i]);if(vNew!=this._computedRowHeights[i]){this._computedRowHeights[i]=vNew;vRet=true;};};};return vRet;};proto._updateAutoRows=function(otherObject){var _e5=otherObject.getLayoutHint();var vRow=_e5.row;if(this._computedRowTypes[vRow-1]=="auto"){var vNew=this._computeAutoRowHeight(vRow);if(vNew!=this._computedRowHeights[vRow-1]){this._computedRowHeights[vRow-1]=vNew;return true;};};return false;};proto._updateAutoCols=function(otherObject){var _e5=otherObject.getLayoutHint();var vCol=_e5.col;if(this._computedColTypes[vCol-1]=="auto"){var vNew=this._computeAutoColWidth(vCol);if(vNew!=this._computedColWidths[vCol-1]){this._computedColWidths[vCol-1]=vNew;return true;};};return false;};proto._onnewchild=function(otherObject){if(this._updateAutoRows(otherObject)){if(this._updateAnyRows()){this._d2("inner-height");};this._d2("append-child",otherObject);}else {this._d2("append-child-light",otherObject);};if(this._updateAutoCols(otherObject)){if(this._updateAnyCols()){this._d1("inner-width");};this._d1("append-child",otherObject);}else {this._d1("append-child-light",otherObject);};};proto._onremovechild=function(otherObject){if(this._updateAutoRows(otherObject)){if(this._updateAnyRows()){this._d2("inner-height");};this._d2("remove-child",otherObject);}else {this._d2("remove-child-light",otherObject);};if(this._updateAutoCols(otherObject)){if(this._updateAnyCols()){this._d1("inner-width");};this._d1("remove-child",otherObject);}else {this._d1("remove-child-light",otherObject);};};proto._innerWidthChanged=function(){this._d4Width();this._updatePercentCols();this._updateAnyCols();this._d1("inner-width");var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderHorizontal("parent");};};proto._innerHeightChanged=function(){this._d4Height();this._updatePercentRows();this._updateAnyRows();this._d2("inner-height");var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderVertical("parent");};};proto._computePercentRowHeight=function(vPos,vHeight){if(!this.isCreated()){return 0;};vHeight=parseFloat(vHeight);if(isNaN(vHeight)){return 0;};return Math.round(this.getInnerHeight()*vHeight/100);};proto._computePercentColWidth=function(vPos,vWidth){if(!this.isCreated()){return 0;};vWidth=parseFloat(vWidth);if(isNaN(vWidth)){return 0;};return Math.round(this.getInnerWidth()*vWidth/100);};proto._computeAutoRowHeight=function(vPos){var vMaxHeight=0;var _e5;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){_e5=chc.getLayoutHint();if(_e5.row==vPos){vMaxHeight=Math.max(chc.getAnyHeight()+_e5.paddingTop+_e5.paddingBottom,vMaxHeight);};};return vMaxHeight;};proto._computeAutoColWidth=function(vPos){var vMaxWidth=0;var _e5;for(var i=0,ch=this.getChildren(),chl=ch.length,chc=ch[0];i<chl;i++,chc=ch[i]){_e5=chc.getLayoutHint();if(_e5.col==vPos){vMaxWidth=Math.max(chc.getAnyWidth()+_e5.paddingLeft+_e5.paddingRight,vMaxWidth);};};return vMaxWidth;};proto._computeAnyRowHeight=function(vPos,vHeight){if(!this.isCreated()){return 0;};var innerHeight=this.getInnerHeight();var rows=this._computedRowHeights;var rowLength=rows.length;var rowTypes=this._computedRowTypes;var anyCount=0;for(var i=0;i<rowLength;i++){if(rowTypes[i]!="any"){innerHeight-=rows[i];};};return Math.max(0,Math.round(innerHeight/this._anyRowSum*this._computeAnyWeight(vHeight)));};proto._computeAnyColWidth=function(vPos,vWidth){if(!this.isCreated()){return 0;};var innerWidth=this.getInnerWidth();var cols=this._computedColWidths;var colLength=cols.length;var colTypes=this._computedColTypes;var anyCount=0;for(var i=0;i<colLength;i++){if(colTypes[i]!="any"){innerWidth-=cols[i];};};return Math.max(0,Math.round(innerWidth/this._anyColSum*this._computeAnyWeight(vWidth)));};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxHorizontalBoxLayout.js b/swat/style/qooxdoo/widgets/widgets/QxHorizontalBoxLayout.js
new file mode 100644 (file)
index 0000000..a9c5ab7
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxHorizontalBoxLayout(vBlockAlign,vChildrenAlign){QxBoxLayout.call(this,"horizontal",vBlockAlign,vChildrenAlign);};QxHorizontalBoxLayout.extend(QxBoxLayout,"QxHorizontalBoxLayout");proto._checkOrientation=function(_b1,_b2,propData,_b4){if(_b1!="horizontal"){throw new Error("Orientation is not configurable in QxHorizontalBoxLayout!");};return _b1;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxIframe.js b/swat/style/qooxdoo/widgets/widgets/QxIframe.js
new file mode 100644 (file)
index 0000000..1bfa34a
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxIframe(vSrc){QxWidget.call(this);this.setTabIndex(0);var o=this;this.__onreadystatechange=function(e){return o._onreadystatechange(e);};this.__onload=function(e){return o._onload(e);};if(isValid(vSrc)){this.setSrc(vSrc);};};QxIframe.extend(QxWidget,"QxIframe");QxIframe.addProperty({name:"src",type:String,defaultValue:"javascript:void(0)"});proto._realFrame=null;proto._modifyElement=function(_b1,_b2,_b3,_b4){if(!this._realFrame){this._realFrame=QxIframe._h3.cloneNode(true);if((new QxClient).isMshtml()){this._realFrame.onreadystatechange=this.__onreadystatechange;}else{this._realFrame.onload=this.__onload;};};_b1.appendChild(this._realFrame);this._renderSrc();QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);return true;};proto._modifySrc=function(_b1,_b2,_b3,_b4){if(this.isCreated()){this._renderSrc();};return true;};proto.getIframe=function(){return this._realFrame;};proto._renderSrc=function(){var currentSrc=this.getSrc();this._isLoaded=false;this._realFrame.src=isValid(currentSrc)?currentSrc:"javascript:void(0)";};proto._onreadystatechange=function(){if(this._realFrame.readyState=="complete"){this.dispatchEvent(new QxEvent("load"));};};proto._onload=function(){this._isLoaded=true;this.dispatchEvent(new QxEvent("load"));};if((new QxClient).isMshtml()){proto.getContentWindow=function(){if(this.isCreated()){try{return this.getElement().contentWindow;}catch(ex){};};return null;};proto.getContentDocument=function(){var win=this.getContentWindow();return win?win.document:null;};}else {proto.getContentWindow=function(){var doc=this.getContentDocument();return doc?doc.defaultView:null;};proto.getContentDocument=function(){if(this.isCreated()){try{return this.getElement().contentDocument;}catch(ex){};};return null;};};proto._isLoaded=false;if((new QxClient).isMshtml()){proto.isLoaded=function(){var doc=this.getContentDocument();return doc?doc.readyState=="complete":false;};}else {proto.isLoaded=function(){return this._isLoaded;};};proto.dispose=function(){if(this.getDisposed()){return;};if(this.isCreated()&&this._realFrame){this.getElement().removeChild(this._realFrame);};this._realFrame=null;QxWidget.prototype.dispose.call(this);};QxIframe.init=function(){var f=QxIframe._h3=document.createElement("iframe");f.frameBorder="0";f.frameSpacing="0";f.marginWidth="0";f.marginHeight="0";f.width="100%";f.height="100%";f.hspace="0";f.vspace="0";f.border="0";f.scrolling="auto";f.unselectable="on";f.src="javascript:void(0)";f.className="QxIframeFrame";f.allowTransparency="true";};QxIframe.init();
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxImage.js b/swat/style/qooxdoo/widgets/widgets/QxImage.js
new file mode 100644 (file)
index 0000000..801f4de
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxImage(vSource,vWidth,vHeight){QxTerminator.call(this);this.setTagName("IMG");this.setCanSelect(false);this._manager=new QxImageManager;this._manager.add(this);this.setHtmlProperty("src",this._manager.getBlank());if(isValid(vWidth)){this.setWidth(vWidth);};if(isValid(vHeight)){this.setHeight(vHeight);};if(isValid(vSource)){this.setSource(vSource);};};QxImage.extend(QxTerminator,"QxImage");QxImage.addProperty({name:"source",type:String});QxImage.addProperty({name:"preloader",type:Object});QxImage.addProperty({name:"loaded",type:Boolean,defaultValue:false});proto._onload=function(){this.setLoaded(true);};proto._onerror=function(){this.setLoaded(false);if(this.hasEventListeners("error")){this.dispatchEvent(new QxEvent("error"),true);};throw new Error("Image path is not valid:"+this.getSource());};proto._modifySource=function(_b1,_b2,_b3,_b4){if(_b1||_b2){if(_b1){this.setPreloader(new QxImagePreloader((new QxImageManager).buildURI(_b1)),_b4);}else if(_b2){this.setPreloader(null,_b4);};};return true;};proto._modifyPreloader=function(_b1,_b2,_b3,_b4){if(_b2){_b2.removeEventListener("load",this._onload,this);_b2.removeEventListener("error",this._onerror,this);};if(_b1){this.setLoaded(false);if(_b1.getIsLoaded()){this.setLoaded(true,_b4);}else {_b1.addEventListener("load",this._onload,this);_b1.addEventListener("error",this._onerror,this);};};return true;};proto._modifyLoaded=function(_b1,_b2,_b3,_b4){if(_b1&&this.isCreated()){this._apply();}else {this._outerChanged("unload");};return true;};proto._modifyElement=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);if(_b1&&this.getLoaded()){this._apply();};return true;};if((new QxClient).isMshtml()){proto._modifyOpacity=function(){throw new Error("Mshtml did not support opacity on images!");};proto._postApply=function(vEnabled){var pl=this.getPreloader();if(pl.getIsPng()&&vEnabled){this.setHtmlProperty("src",this._manager.getBlank());this.setStyleProperty("filter","progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+pl.getSource()+"',sizingMethod='scale')");}else {this.setHtmlProperty("src",pl.getSource());vEnabled?this.removeStyleProperty("filter"):this.setStyleProperty("filter","Gray()Alpha(Opacity=50)");};};proto._apply=function(){var pl=this.getPreloader();if(this.getHeight()==null){this.setStyleProperty("pixelHeight",pl.getHeight());};if(this.getWidth()==null){this.setStyleProperty("pixelWidth",pl.getWidth());};this._postApply(this.getEnabled());this._invalidatePreferred();this._outerChanged("load");if(this.hasEventListeners("load")){this.dispatchEvent(new QxEvent("load"),true);};};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);this._postApply(_b1);return true;};}else {proto._apply=function(){this.setHtmlProperty("src",this.getPreloader().getSource());this._invalidatePreferred();this._outerChanged("load");if(this.hasEventListeners("load")){this.dispatchEvent(new QxEvent("load"),true);};};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){this.setOpacity(_b1?1:0.5,_b4);return QxWidget.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);};};proto.getPreferredWidth=function(){return this.getLoaded()?this.getPreloader().getWidth():0;};proto.getPreferredHeight=function(){return this.getLoaded()?this.getPreloader().getHeight():0;};proto.dispose=function(){if(this.getDisposed()){return true;};(new QxImageManager).remove(this);return QxWidget.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxImagePreloader.js b/swat/style/qooxdoo/widgets/widgets/QxImagePreloader.js
new file mode 100644 (file)
index 0000000..1825503
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxImagePreloader(vSource){var m=new QxImagePreloaderManager();if(m.has(vSource)){return m.get(vSource);};QxTarget.call(this);this._h3=new Image();this._h3._QxImagePreloader=this;this._h3.onload=QxImagePreloader.__onload;this._h3.onerror=QxImagePreloader.__onerror;this._source=vSource;this._h3.src=vSource;if((new QxClient).isMshtml()){this._isPng = /\.png$/i.test(this._h3.nameProp);};m.add(this);};QxImagePreloader.extend(QxTarget,"QxImagePreloader");proto._source=null;proto._isLoaded=false;proto._isPng=false;proto.getUri=function(){return this._source;};proto.getSource=function(){return this._source;};if((new QxClient).isGecko()){proto.getWidth=function(){return this._h3.naturalWidth;};proto.getHeight=function(){return this._h3.naturalHeight;};proto.getIsLoaded=function(){return this._isLoaded=this._h3.complete;};}else if((new QxClient).isMshtml()){proto.getWidth=function(){return this._h3.width;};proto.getHeight=function(){return this._h3.height;};proto.getIsLoaded=function(){return this._h3.readyState=="complete";};proto.getIsPng=function(){return this._isPng;};}else {proto.getWidth=function(){return this._h3.width;};proto.getHeight=function(){return this._h3.height;};proto.getIsLoaded=function(){return this._isLoaded=this._h3.complete;};};QxImagePreloader.__onload=function(){this._QxImagePreloader._onload();};QxImagePreloader.__onerror=function(){this._QxImagePreloader._onerror();};proto._onload=function(){this._isLoaded=true;if(this.hasEventListeners("load")){this.dispatchEvent(new QxEvent("load"));};};proto._onerror=function(){this._isLoaded=false;if(this.hasEventListeners("error")){this.dispatchEvent(new QxEvent("error"));};};proto.dispose=function(){if(this.getDisposed()){return;};QxTarget.prototype.dispose.call(this);if(this._h3){this._h3.onload=this._h3.onerror=null;this._h3._QxImagePreloader=null;this._h3=null;};this._isLoaded=this._isPng=false;return true;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxInline.js b/swat/style/qooxdoo/widgets/widgets/QxInline.js
new file mode 100644 (file)
index 0000000..4ee644c
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxInline(){QxWidget.call(this);this.setHeight("auto");this.setWidth(null);};QxInline.extend(QxWidget,"QxInline");QxInline.addProperty({name:"inlineNodeId",type:String});proto._modifyInlineNodeId=function(_b1,_b2,_b3,_b4){if(this.isCreated()){throw new Error("You couldn't change this anymore. Widget is already created!");};return true;};proto.renderX=function(hint){if(hint=="parent-dimensions"||hint=="parent-width"){this._renderChildrenX("parent-width");};return QxWidget.prototype.renderX.call(this,hint);};proto.renderY=function(hint){if(hint=="parent-dimensions"||hint=="parent-height"){this._renderChildrenY("parent-height");};return QxWidget.prototype.renderY.call(this,hint);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxInputCheckIcon.js b/swat/style/qooxdoo/widgets/widgets/QxInputCheckIcon.js
new file mode 100644 (file)
index 0000000..0256852
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxInputCheckIcon(){QxWidget.call(this);this.setTagName("INPUT");this.setCanSelect(false);this.setTabIndex(-1);};QxInputCheckIcon.extend(QxWidget,"QxInputCheckIcon");QxInputCheckIcon.addProperty({name:"name",type:String,impl:"apply"});QxInputCheckIcon.addProperty({name:"value",impl:"apply"});QxInputCheckIcon.addProperty({name:"type",impl:"apply"});QxInputCheckIcon.addProperty({name:"checked",type:Boolean,defaultValue:false,impl:"apply",getAlias:"isChecked"});proto._modifyApply=function(_b1,_b2,_b3,_b4){return this.setHtmlProperty(_b3,_b1);};proto.isLoaded=proto.getLoaded=function(){return true;};proto.getPreferredWidth=function(){return 13;};proto.getPreferredHeight=function(){return 13;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxLayout.js b/swat/style/qooxdoo/widgets/widgets/QxLayout.js
new file mode 100644 (file)
index 0000000..804d996
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxLayout(){QxWidget.call(this);};QxLayout.extend(QxWidget,"QxLayout");proto._onnewchild=function(otherObject){this.getWidth()=="auto"?this._setChildrenDependWidth(otherObject,"append-child"):this._d1("append-child");this.getHeight()=="auto"?this._setChildrenDependHeight(otherObject,"append-child"):this._d2("append-child");};proto._onremovechild=function(otherObject){this.getWidth()=="auto"?this._setChildrenDependWidth(otherObject,"remove-child"):this._d1("remove-child");this.getHeight()=="auto"?this._setChildrenDependHeight(otherObject,"remove-child"):this._d2("remove-child");};proto._innerWidthChanged=function(){this._d4Width();this._d1("inner-width");var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderHorizontal("parent");};};proto._innerHeightChanged=function(){this._d4Height();this._d2("inner-height");var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderVertical("parent");};};proto._childOuterWidthChanged=function(vModifiedChild,_e5){if(!this._wasVisible){return;};this._d2(_e5);switch(_e5){case "position-and-size":case "position":break;default:if(this.getWidth()=="auto"){return this._setChildrenDependWidth(vModifiedChild,_e5);}else {this._d1(_e5,vModifiedChild);};};QxWidget.prototype._childOuterWidthChanged.call(this,vModifiedChild,_e5);};proto._childOuterHeightChanged=function(vModifiedChild,_e5){if(!this._wasVisible){return;};switch(_e5){case "position-and-size":case "position":break;default:if(this.getHeight()=="auto"){return this._setChildrenDependHeight(vModifiedChild,_e5);}else {this._d2(_e5,vModifiedChild);};};QxWidget.prototype._childOuterHeightChanged.call(this,vModifiedChild,_e5);};proto._setChildrenDependWidth=function(_e4,_e5){var newWidth=this._d5Width(_e4,_e5);if(this._widthMode=="inner"&&this._widthModeValue==newWidth){if(_e5=="size"){return this._d1(_e5);};}else {this.setInnerWidth(newWidth,null,true);};return true;};proto._setChildrenDependHeight=function(_e4,_e5){var newHeight=this._d5Height(_e4,_e5);if(this._heightMode=="inner"&&this._heightModeValue==newHeight){if(_e5=="size"){return this._d2(_e5);};}else {this.setInnerHeight(newHeight,null,true);};return true;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxList.js b/swat/style/qooxdoo/widgets/widgets/QxList.js
new file mode 100644 (file)
index 0000000..702f208
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxList(){QxWidget.call(this);this.setCanSelect(false);this.setOverflow("auto");this.setTabIndex(1);this._manager=new QxSelectionManager(this);this.addEventListener("mouseover",this._onmouseover);this.addEventListener("mousedown",this._g1);this.addEventListener("mouseup",this._g2);this.addEventListener("click",this._g3);this.addEventListener("dblclick",this._ondblclick);this.addEventListener("keydown",this._g4);this.addEventListener("keypress",this._g6);};QxList.extend(QxWidget,"QxList");QxList.addProperty({name:"enableInlineFind",type:Boolean,defaultValue:true});proto.isFocusRoot=function(){return true;};proto._pressedString="";proto._visualizeBlur=function(){};proto._visualizeFocus=function(){};proto.getManager=function(){return this._manager;};proto.getListItemTarget=function(vItem){while(vItem!=null&&vItem.getParent()!=this){vItem=vItem.getParent();};return vItem;};proto.getSelectedItem=function(){return this.getSelectedItems()[0];};proto.getSelectedItems=function(){return this._manager.getSelectedItems();};proto._onmouseover=function(e){var vItem=this.getListItemTarget(e.getTarget());if(vItem){this._manager.handleMouseOver(vItem,e);};};proto._g1=function(e){var vItem=this.getListItemTarget(e.getTarget());if(vItem){this._manager.handleMouseDown(vItem,e);};};proto._g2=function(e){var vItem=this.getListItemTarget(e.getTarget());if(vItem){this._manager.handleMouseUp(vItem,e);};};proto._g3=function(e){var vItem=this.getListItemTarget(e.getTarget());if(vItem){this._manager.handleClick(vItem,e);};};proto._ondblclick=function(e){var vItem=this.getListItemTarget(e.getTarget());if(vItem){this._manager.handleDblClick(vItem,e);};};proto._g4=function(e){var kc=e.getKeyCode();if(kc==QxKeyEvent.keys.enter&&!e.getAltKey()){var items=this.getSelectedItems();var currentItem;for(var i=0;i<items.length;i++){currentItem=items[i];if(currentItem.hasEventListeners("action")){currentItem._dispachEvent(new QxEvent("action"));};};}else {this._manager.handleKeyDown(e);};};this._lastKeyPress=0;proto._g6=function(e){if(!this.getEnableInlineFind()){return;};if(((new Date).valueOf()-this._lastKeyPress)>1000){this._pressedString="";};this._pressedString+=String.fromCharCode(e.getKeyCode());var matchedItem=this.findString(this._pressedString,null);if(matchedItem){var oldVal=this._manager._getChangeValue();var oldFireChange=this._manager.getFireChange();this._manager.setFireChange(false);this._manager._j7();this._manager.setItemSelected(matchedItem,true);this._manager.setAnchorItem(matchedItem);this._manager.setLeadItem(matchedItem);matchedItem.scrollIntoView();this._manager.setFireChange(oldFireChange);if(oldFireChange&&this._manager._j8(oldVal)){this._manager._j1();};};this._lastKeyPress=(new Date).valueOf();e.preventDefault();};proto._findItem=function(vUserValue,vStartIndex,vType){var vAllItems=this.getChildren();if(vStartIndex==null){vStartIndex=vAllItems.indexOf(this.getSelectedItem());if(vStartIndex==-1){vStartIndex=0;};};var methodName="matches"+vType;for(var i=vStartIndex;i<vAllItems.length;i++){if(vAllItems[i][methodName](vUserValue)){return vAllItems[i];};};for(var i=0;i<vStartIndex;i++){if(vAllItems[i][methodName](vUserValue)){return vAllItems[i];};};return null;};proto.findString=function(vText,vStartIndex){return this._findItem(vText,vStartIndex||0,"String");};proto.findStringExact=function(vText,vStartIndex){return this._findItem(vText,vStartIndex||0,"StringExact");};proto.getPreferredHeight=function(){var ch=this.getChildren();var chl=ch.length;var sum=0;for(var i=0;i<chl;i++){sum+=ch[i].getPreferredHeight();};return sum;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxListItem.js b/swat/style/qooxdoo/widgets/widgets/QxListItem.js
new file mode 100644 (file)
index 0000000..864c9d0
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxListItem(vText,vIcon,vValue){QxAtom.call(this,vText,vIcon);if(isValid(vValue)){this.setValue(vValue);};this.setWidth(null);this.setLeft(0);this.setRight(0);this.setCanSelect(false);this.setTimerCreate(false);};QxListItem.extend(QxAtom,"QxListItem");QxListItem.addProperty({name:"value",type:String});proto.matchesString=function(vText){return vText!=""&&this.getText().toLowerCase().indexOf(vText.toLowerCase())==0;};proto.matchesStringExact=function(vText){return vText!=""&&this.getText().toLowerCase()==String(vText).toLowerCase();};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxListView.js b/swat/style/qooxdoo/widgets/widgets/QxListView.js
new file mode 100644 (file)
index 0000000..7009af0
--- /dev/null
@@ -0,0 +1,7 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxListView(columns){QxWidget.call(this);this._columns=typeof columns=="object"&&columns!=null?columns:[];this._columnsLength=this._columns.length-1;this._k1=[];this._selection={};this._selectionLength=0;this._selectionMode="none";this._fragment=QxListView._useFragment?document.createDocumentFragment():document.createElement("div");this._rowCreateQueue=[];this._rowCreateTimer=new QxTimer(10);this._rowCreateTimer.addEventListener("interval",this._onrowcreate,this);this._rowCreateTimer.start();this._rowAppendQueue=[];this._rowAppendTimer=new QxTimer(100);this._rowAppendTimer.addEventListener("interval",this._onrowappend,this);this._rowAppendTimer.start();this._scrollSmoothTimer=new QxTimer(1);this._scrollSmoothTimer.addEventListener("interval",this._onscrollsmooth,this);if((new QxClient).isOpera()){this._scrollEmuTimer=new QxTimer(100);this._scrollEmuTimer.addEventListener("interval",this._onscrollemu,this);this._scrollEmuTimer.start();};this._nodeRowCache=[];this._nodeHeaderColsCache=[];this._nodeContentColsCache=[];this._nodeHeaderCellCache=[];this._nodeContentFirstRowCellCache=[];this._nodeHeaderInnerTableCache=[];this._nodeHeaderInnerTextCellCache=[];this._nodeHeaderInnerTextBoxCache=[];this._nodeHeaderInnerSortCellCache=[];this._nodeHeaderInnerSortIconCache=[];this.addEventListener("click",this._g3);this.addEventListener("mousewheel",this._onmousewheel);};QxListView.extend(QxWidget,"QxListView");QxListView._useFragment=Boolean(document.createDocumentFragment);proto._initialRowCount=100;proto._perLoopRowCreateCount=5;proto._perLoopRowAppendCount=100;proto._modifyElement=function(_b1,_b2,_b3,_b4){this._contentProtoRow=QxListView._contentProtoRow.cloneNode(true);QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);this._header=QxListView._headerProtoFrame.cloneNode(true);this._headerTable=this._header.firstChild;this._headerColGroup=this._headerTable.firstChild;this._headerBody=this._headerTable.lastChild;this._headerRow=this._headerBody.firstChild;this._headerStyle=this._header.style;this._headerTableStyle=this._headerTable.style;_b1.appendChild(this._header);this._content=QxListView._contentProtoFrame.cloneNode(true);this._contentTable=this._content.firstChild;this._contentColGroup=this._contentTable.firstChild;this._contentBody=this._contentTable.lastChild;var o=this;this._content.onscroll=function(){o._onscroll();};_b1.appendChild(this._content);this._cacheAdditionalColumnData();try{var d=this._columns;var l=d.length;for(var i=0;i<l;i++){this._addColumn(d[i]);};}catch(ex){throw new Error("Failed to apply columns:"+ex);};var q=this._rowCreateQueue;var l=Math.min(this._initialRowCount-1,q.length);for(var i=0;i<l;i++){this._contentBody.appendChild(this._createRow(q.shift()));};this._renderTableLayoutInitial();return true;};proto._cacheAdditionalColumnData=function(){var d=this._columns;var l=d.length;var c;for(var i=0;i<l;i++){c=d[i];c.contentType=typeof c.content;c.contentLength=c.content.length-1;c.hasStaticWidth=typeof c.width=="number";c.hasDynamicWidth=!c.hasStaticWidth;c.hasScaleWidth=c.width=="scale";c.hasScaleFactor=typeof c.scaleFactor=="number";c.hasMaxWidthLimit=typeof c.maxWidth=="number";c.hasMinWidthLimit=typeof c.minWidth=="number";if(c.hasStaticWidth&&c.hasScalingWidth){throw new Error("Malformed column dimensions![1:static scaling conflict]");};if(c.hasMinWidthLimit&&c.hasMaxWidthLimit&&c.maxWidth<=c.minWidth){throw new Error("Malformed column dimensions![2:min max conflict]");};if(c.hasScalingFactor&&!c.hasScalingWidth){throw new Error("Malformed column dimensions![3:scaling conflict]");};};};proto._onrowcreate=function(){if(!this.isCreated()){return;};var q=this._rowCreateQueue;var l=q.length-1;if(l==-1){this._rowCreateTimer.stop();return;};l=Math.min(this._perLoopRowCreateCount,l);do{this._fragment.appendChild(this._createRow(q.shift()));}while(l--);};proto._onrowappend=function(){if(this._fragment.childNodes.length>this._perLoopRowAppendCount){this._onrowappenddo();return;};if(this._rowCreateQueue.length==0){this._onrowappenddo();this._rowAppendTimer.stop();if(this.hasEventListeners("complete")){this.dispatchEvent(new QxEvent("complete"),true);};return;};};if(QxListView._useFragment){proto._onrowappenddo=function(){this._contentBody.appendChild(this._fragment);};}else {proto._onrowappenddo=function(){var f=this._fragment;var l=f.childNodes.length;for(var i=0;i<l;i++){this._contentBody.appendChild(f.firstChild);};};};proto.addData=function(entry){this._validateData(entry);entry.hash="h"+String(Math.round(Math.random()*1e6));entry.pos=this._k1.length;this._k1.push(entry);this._rowCreateQueue.push(entry);};proto._validateData=function(entry){var currentColumn,currentContent,currentContentLength,currentId,currentDefaults,arrayEntry;var columns=this._columns,columnsLength=columns.length;var i,j;for(i=0;i<columnsLength;i++){currentColumn=columns[i];currentContent=currentColumn.content;currentId=currentColumn.id;switch(typeof currentContent){case "string":if(typeof entry[currentId]=="undefined"){if(typeof currentColumn.defaultValue!="undefined"){entry[currentId]=currentColumn.defaultValue;}else{entry[currentId]=this._validateDataDefaultGetter(currentContent);};};break;case "number":case "boolean":if(typeof entry[currentId]=="undefined"){if(typeof currentColumn.defaultValue!="undefined"){entry[currentId]=String(currentColumn.defaultValue);}else{entry[currentId]=String(this._validateDataDefaultGetter(currentContent));};};break;case "object":arrayEntry=entry[currentId];currentDefaults=currentColumn.defaultValues;currentContentLength=currentContent.length;switch(typeof arrayEntry){case "object":if(currentDefaults){for(j=0;j<currentContentLength;j++){switch(typeof arrayEntry[j]){case "number":case "boolean":arrayEntry[j]=String(arrayEntry[j]);break;case "undefined":arrayEntry[j]=typeof currentDefaults[j]!="undefined"?currentDefaults[j]:this._validateDataDefaultGetter(currentContent[j]);break;};};}else {for(j=0;j<currentContentLength;j++){switch(typeof arrayEntry[j]){case "number":case "boolean":arrayEntry[j]=String(arrayEntry[j]);break;case "undefined":arrayEntry[j]=this._validateDataDefaultGetter(currentContent[j]);break;};};};break;default:arrayEntry=entry[currentId]=[];if(currentDefaults){for(j=0;j<currentContentLength;j++){arrayEntry.push(typeof currentDefaults[j]!="undefined"?currentDefaults[j]:this._validateDataDefaultGetter(currentContent[j]));};}else{for(j=0;j<currentContentLength;j++){arrayEntry.push(this._validateDataDefaultGetter(currentContent[j]));};};break;};break;default:throw new Error("Unsupported content type:"+currentType);};};};proto._validateDataDefaultGetter=function(cType){switch(cType){case "text":return String.fromCharCode(160);case "image":return(new QxImageManager).buildURI("core/blank.gif");default:throw new Error("No default Value available for content:"+cType);};};proto._pushSingleElementDo=function(parentNode,elemNode){parentNode.appendChild(elemNode);return true;};proto._pushSingleElement=function(parentNode,elemType){switch(elemType){case "text":return this._pushSingleElementDo(parentNode,QxListView._protoTypeElements.text.cloneNode(true));case "image":return this._pushSingleElementDo(parentNode,QxListView._protoTypeElements.image.cloneNode(true));default:throw new Error("Unsupported type:"+elemType);};};proto._pushElements=function(parentNode,contentInfo){if(typeof contentInfo=="object"){var contentInfoLength=contentInfo.length;for(var i=0;i<contentInfoLength;i++){this._pushSingleElement(parentNode,contentInfo[i]);};}else if(typeof contentInfo=="string"){this._pushSingleElement(parentNode,contentInfo);}else {this.debug("Unknown type:"+contentInfo);};};proto._addColumn=function(colData){var headerCell=QxListView._headerProtoCell.cloneNode(true);var headerInnerTable=headerCell.firstChild;var headerInnerRow=headerInnerTable.firstChild.firstChild;var headerInnerTextCell=headerInnerRow.firstChild;var headerInnerTextBox=headerInnerTextCell.firstChild;var headerInnerSortCell=headerInnerRow.lastChild;var headerInnerSortImage=headerInnerSortCell.firstChild;var contentCell=QxListView._contentProtoCell.cloneNode(true);var contentBox=contentCell.firstChild;if(colData.image){var i=new Image();i.src=colData.image;if(typeof colData.imageWidth!="undefined")i.width=colData.imageWidth;if(typeof colData.imageHeight!="undefined")i.height=colData.imageHeight;headerInnerTextBox.appendChild(i);};if(colData.label){headerInnerTextBox.appendChild(document.createTextNode(colData.label));};this._pushElements(contentBox,colData.content);this._headerRow.appendChild(headerCell);this._contentProtoRow.appendChild(contentCell);var headerCol=document.createElement("col");this._headerColGroup.appendChild(headerCol);this._nodeHeaderColsCache.push(headerCol);var contentCol=document.createElement("col");this._contentColGroup.appendChild(contentCol);this._nodeContentColsCache.push(contentCol);if(typeof this._nodeRowCache=="undefined"){this._nodeRowCache=[];};var j=this._contentProtoRow.childNodes.length-1;this._nodeRowCache[j]=[];for(var i=0;i<contentBox.childNodes.length;i++){this._nodeRowCache[j].push(contentBox.childNodes[i]);};this._nodeHeaderCellCache.push(headerCell);this._nodeHeaderInnerTableCache.push(headerInnerTable);this._nodeHeaderInnerTextCellCache.push(headerInnerTextCell);this._nodeHeaderInnerTextBoxCache.push(headerInnerTextBox);this._nodeHeaderInnerSortCellCache.push(headerInnerSortCell);this._nodeHeaderInnerSortIconCache.push(headerInnerSortImage);var classNamePart=colData.id.toFirstUp();QxDOM.addClass(headerCell,"QxListViewHeaderCell-"+classNamePart);QxDOM.addClass(contentCell,"QxListViewContentCell-"+classNamePart);};proto._createRowDo=function(elemType,elemNode,elemContent){try{switch(elemType){case "text":elemNode.nodeValue=elemContent;break;case "image":elemNode.src=elemContent;break;default:throw new Error("Unsupported type #2:"+elemType);};}catch(ex){throw new Error("Failed to add Row:"+elemType+","+elemNode+","+elemContent+":"+ex);};};proto._createRow=function(rowData,rowTarget){var col,cols=this._columns,i=this._columnsLength,base;try{do
+{col=cols[i];base=this._nodeRowCache[i];switch(col.contentType){case "string":this._createRowDo(col.content,base[0],rowData[col.id]);break;case "object":j=col.contentLength;do{this._createRowDo(col.content[j],base[j],rowData[col.id][j]);}while(j--);break;};}while(i--);}catch(ex){throw new Error("Failed on column:"+i+":"+ex);};var newRow=this._contentProtoRow.cloneNode(true);newRow.style.display="";newRow._k1=rowData;return newRow;};proto.setSelection=function(newSelection,oldSelection){var i;var toSelect=[];var newSelectionLength=0;for(i in newSelection){if(!oldSelection[i]){toSelect.push(i);};newSelectionLength++;};var toDeselect=[];for(i in oldSelection){if(!newSelection[i]){toDeselect.push(i);};};var ch=this._contentBody.childNodes;var toSelectLength=toSelect.length;for(i=0;i<toSelectLength;i++){QxDOM.addClass(ch[toSelect[i]],"QxListViewContentRowSelected");};var toDeselectLength=toDeselect.length;for(i=0;i<toDeselectLength;i++){QxDOM.removeClass(ch[toDeselect[i]],"QxListViewContentRowSelected");};var changeSelectionLength=this._selectionLength!=newSelectionLength;if(changeSelectionLength){var newSelectionMode=this._evalSelectionMode(newSelectionLength);var changeSelectionMode=this._selectionMode!=newSelectionMode;};this._selection=newSelection;if(changeSelectionLength){this._selectionLength=newSelectionLength;if(changeSelectionMode){this._selectionMode=newSelectionMode;};};if(this.hasEventListeners("changeSelection")){this.dispatchEvent(new QxDataEvent("changeSelection",this._selection),true);};if(changeSelectionLength){if(this.hasEventListeners("changeSelectionLength")){this.dispatchEvent(new QxDataEvent("changeSelectionLength",this._selectionLength),true);};if(changeSelectionMode){if(this.hasEventListeners("changeSelectionMode")){this.dispatchEvent(new QxDataEvent("changeSelectionMode",this._selectionMode),true);};};};};proto.getSelection=function(){return this._selection;};proto.getSelectionLength=function(){return this._selectionLength;};proto.getSelectionMode=function(){return this._selectionMode;};proto._evalSelectionMode=function(l){switch(l){case 0:return "none";case 1:return "single";default:return "multi";};};proto._lastSelect=null;proto._g3=function(e){if(this.getContextMenu()){this.getContextMenu().setVisible(false);};var r=e.getDomTarget();var m=this.getElement();while(r!=m&&(r.nodeType!=1||r.tagName!="TR")){if(r.tagName=="TH"){return;};r=r.parentNode;};if(isInvalid(r._k1)){this.debug("Not a valid row:"+r);return;};var rowPosition=r._k1.pos;var oldSelection=this.getSelection();var newSelection={};if(e.getCtrlKey()){for(var i in oldSelection){newSelection[i]=oldSelection[i];};};if(e.getShiftKey()){if(this._lastSelect==null){return;};if(rowPosition<this._lastSelect){var istart=rowPosition,istop=this._lastSelect;}else{var istart=this._lastSelect,istop=rowPosition;};for(var i=istart;i<=istop;i++){newSelection[i]=true;};}else {if(e.getCtrlKey()&&newSelection[rowPosition]){delete newSelection[rowPosition];}else {newSelection[rowPosition]=true;this._lastSelect=rowPosition;};};this.setSelection(newSelection,oldSelection);};proto._onmousewheel=function(e){if(this.getContextMenu()){this.getContextMenu().setVisible(false);};this._content.scrollTop+=e.getWheelDelta()*-10;};proto._lastScrollLeft=0;proto._onscroll=function(){if(this.getContextMenu()){this.getContextMenu().setVisible(false);};this._syncScrollLeft();this._scrollSmoothTimer.start();};proto._onscrollsmooth=function(){if(this._content.scrollLeft==this._lastScrollLeft){this._scrollSmoothTimer.stop();};this._syncScrollLeft();};proto._onscrollemu=function(){if(this._content.scrollLeft!=this._lastScrollLeft){this._syncScrollLeft();};};proto._syncScrollLeft=function(){var s=this._content.scrollLeft;this._lastScrollLeft=s;this._headerTable.style.left=(-s)+"px";};proto._modifyHorizontalDimension=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyHorizontalDimension.call(this,_b1,_b2,_b3,_b4);if(_b3=="width"&&this._wasVisible){QxDOM.setWidth(this._header,QxDOM.getComputedInnerWidth(this._content));};return true;};proto._renderTableLayoutInitial=function(){QxDebugTimer("initiallayout");var hasScrollRight=QxDOM.getComputedScrollBarVisibleX(this._content);var hasScrollBottom=QxDOM.getComputedScrollBarVisibleY(this._content);QxDOM.setWidth(this._header,QxDOM.getComputedInnerWidth(this._content));var colLength=this._columnsLength;var todoValues=new Array(colLength);var todoValuesSum=0;var scaleColumns=[];var currentCol;var currentScaleColumn;var currentTodo;var firstRow=[];for(var i=0;i<this._columns.length;i++){firstRow.push(this._contentBody.firstChild.childNodes[i]);};var colLoop=colLength;do
+{currentCol=this._columns[colLoop];if(currentCol.hasStaticWidth){currentTodo=currentCol.width;}else {currentTodo=Math.max(this._nodeHeaderCellCache[colLoop].offsetWidth,firstRow[colLoop].offsetWidth);if(currentCol.hasMaxWidthLimit&&currentTodo>currentCol.maxWidth){currentTodo=currentCol.maxWidth;}else {if(currentCol.hasMinWidthLimit&&currentCol.minWidth>currentTodo){currentTodo=currentCol.minWidth;};};};todoValues[colLoop]=currentTodo;todoValuesSum+=currentTodo;}while(colLoop--);this._header.className=this._header.className.add("QxListViewHeaderOverflow"," ");this._content.className=this._content.className.add("QxListViewContentOverflow"," ");var innerAvail=QxDOM.getComputedInnerWidth(this._content)-todoValuesSum;if(innerAvail>0){var innerCurrentAvail=innerAvail;var innerAvailToShareCount=0;colLoop=colLength;do
+{currentCol=this._columns[colLoop];if(!currentCol.hasScaleWidth){continue;};if(currentCol.hasScaleFactor){currentTodo=todoValues[colLoop]+Math.floor(innerAvail*currentCol.scaleFactor);if(currentCol.hasMaxWidthLimit&&currentTodo>currentCol.maxWidth){currentTodo=currentCol.maxWidth;};innerCurrentAvail-=(currentTodo-todoValues[colLoop]);todoValues[colLoop]=currentTodo;}else {innerAvailToShareCount++;};}while(colLoop--);var currentAddTodo=0;colLoop=colLength;do
+{currentCol=this._columns[colLoop];if(!currentCol.hasScaleWidth){continue;};if(!currentCol.hasScaleFactor){currentTodo=todoValues[colLoop]+Math.floor(innerCurrentAvail/innerAvailToShareCount);if(currentCol.hasMaxWidthLimit&&currentTodo>currentCol.maxWidth){currentTodo=currentCol.maxWidth;};todoValues[colLoop]=currentTodo;};}while(colLoop--);};this._contentTable.removeChild(this._contentColGroup);var sum=0;var currentTextWidth,diff,tsize;colLoop=colLength;do
+{currentCol=this._columns[colLoop];currentTodo=todoValues[colLoop];this._nodeHeaderColsCache[colLoop].width=this._nodeContentColsCache[colLoop].width=currentTodo;sum+=currentTodo;diff=QxDOM.getComputedBoxWidth(this._nodeHeaderCellCache[colLoop])-QxDOM.getComputedBoxWidth(this._nodeHeaderInnerTextBoxCache[colLoop]);tsize=currentTodo-diff;if(tsize<20){this._nodeHeaderInnerSortCellCache[colLoop].style.display="none";diff=QxDOM.getComputedBoxWidth(this._nodeHeaderCellCache[colLoop])-QxDOM.getComputedBoxWidth(this._nodeHeaderInnerTextBoxCache[colLoop]);tsize=currentTodo-diff;};this._nodeHeaderInnerTextBoxCache[colLoop].style.width=tsize+"px";}while(colLoop--);this._contentTable.insertBefore(this._contentColGroup,this._contentBody);this.repaint();this._contentTable.style.width=this._headerTable.style.width=sum+"px";this._contentTable.style.tableLayout=this._headerTable.style.tableLayout="fixed";this._syncScrollLeft();this._header.style.visibility="visible";return true;};proto.dispose=function(){if(this._disposed)return;QxWidget.prototype.dispose.call(this);if(this._columns){for(var i=0;i<this._columnsLength;i++){delete this._columns[i];};};delete this._columns;delete this._columnsLength;if(this._k1){for(var i=0;i<this._k1.length;i++){delete this._k1[i];};};delete this._k1;delete this._selection;delete this._fragment;if(this._content){this._content.onscroll=null;};this.removeEventListener("click",this._g3);this.removeEventListener("mousewheel",this._onmousewheel);delete this._rowCreateQueue;if(this._rowCreateTimer){this._rowCreateTimer.removeEventListener("interval",this._onrowcreate,this);this._rowCreateTimer.dispose();delete this._rowCreateTimer;};delete this._rowAppendQueue;if(this._rowAppendTimer){this._rowAppendTimer.removeEventListener("interval",this._onrowappend,this);this._rowAppendTimer.dispose();delete this._rowAppendTimer;};if(this._scrollSmoothTimer){this._scrollSmoothTimer.removeEventListener("interval",this._onscrollsmooth,this);this._scrollSmoothTimer.dispose();delete this._scrollSmoothTimer;};if(this._scrollEmuTimer){this._scrollEmuTimer.removeEventListener("interval",this._onscrollemu,this);this._scrollEmuTimer.dispose();delete this._scrollEmuTimer;};delete this._nodeRowCache;delete this._nodeHeaderColsCache;delete this._nodeContentColsCache;delete this._nodeHeaderCellCache;delete this._nodeContentFirstRowCellCache;delete this._nodeHeaderInnerTableCache;delete this._nodeHeaderInnerTextCellCache;delete this._nodeHeaderInnerTextBoxCache;delete this._nodeHeaderInnerSortCellCache;delete this._nodeHeaderInnerSortIconCache;};QxListView.init=function(){var h1=document.createElement("div");var h2=document.createElement("table");var h3=document.createElement("colgroup");var h4=document.createElement("thead");var h5=document.createElement("tr");var h6=document.createElement("th");var h7=document.createElement("table");var h8=document.createElement("thead");var h9=document.createElement("tr");var h10=document.createElement("th");var h11=document.createElement("th");var h12=document.createElement("div");var h13=document.createElement("img");h1.className="QxListViewHeader";h2.className="QxListViewHeaderTable";h4.className="QxListViewHeaderBody";h5.className="QxListViewHeaderRow";h6.className="QxListViewHeaderCell";h7.className="QxListViewHeaderInner";h8.className="QxListViewHeaderInnerBody";h9.className="QxListViewHeaderInnerRow";h10.className="QxListViewHeaderInnerText";h11.className="QxListViewHeaderInnerSort";h12.className="QxListViewHeaderInnerTextBox";h13.className="QxListViewHeaderInnerSortImage";h13.src = (new QxImageManager).buildURI("widgets/arrows/down.gif");h13.style.visibility="hidden";h2.cellSpacing=h2.cellPadding="0";h7.cellSpacing=h7.cellPadding="0";if((new QxClient).isMshtml()){h1.unselectable=h2.unselectable=h4.unselectable=h5.unselectable=h6.unselectable=h7.unselectable=h8.unselectable=h9.unselectable=h10.unselectable=h11.unselectable=h12.unselectable=h13.unselectable="on";};h1.appendChild(h2);h2.appendChild(h3);h2.appendChild(h4);h4.appendChild(h5);h6.appendChild(h7);h7.appendChild(h8);h8.appendChild(h9);h9.appendChild(h10);h9.appendChild(h11);h10.appendChild(h12);h11.appendChild(h13);QxListView._headerProtoFrame=h1;QxListView._headerProtoCell=h6;var c1=document.createElement("div");var c2=document.createElement("table");var c3=document.createElement("colgroup");var c4=document.createElement("tbody");var c5=document.createElement("tr");var c6=document.createElement("td");var c7=document.createElement("div");c1.className="QxListViewContent";c2.className="QxListViewContentTable";c4.className="QxListViewContentBody";c5.className="QxListViewContentRow";c6.className="QxListViewContentCell";c7.className="QxListViewContentBox";c2.cellSpacing=c2.cellPadding="0";if((new QxClient).isMshtml()){c1.unselectable=c2.unselectable=c4.unselectable=c5.unselectable=c6.unselectable=c7.unselectable="on";};c1.appendChild(c2);c2.appendChild(c3);c2.appendChild(c4);c6.appendChild(c7);QxListView._contentProtoFrame=c1;QxListView._contentProtoRow=c5;QxListView._contentProtoCell=c6;QxListView._protoTypeElements={text:document.createTextNode(String.fromCharCode(160)),image:new Image()};QxListView._protoTypeElements.image.src=(new QxImageManager).buildURI("core/blank.gif");};QxListView.init();
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxMenu.js b/swat/style/qooxdoo/widgets/widgets/QxMenu.js
new file mode 100644 (file)
index 0000000..4c060c4
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxMenu(){QxPopup.call(this);this.setWidth("auto");this.setHeight(null);this.setTimerCreate(false);this.setMinWidth(120);this._openTimer=new QxTimer(this.getOpenInterval());this._openTimer.addEventListener("interval",this._onopentimer,this);this._closeTimer=new QxTimer(this.getCloseInterval());this._closeTimer.addEventListener("interval",this._onclosetimer,this);this.addEventListener("mouseover",this._onmouseover);this.addEventListener("mousemove",this._onmouseover);this.addEventListener("mouseout",this._onmouseout);this.addEventListener("keydown",this._g4);};QxMenu.extend(QxPopup,"QxMenu");QxMenu.addProperty({name:"iconContentGap",type:Number,defaultValue:4});QxMenu.addProperty({name:"textShortcutGap",type:Number,defaultValue:10});QxMenu.addProperty({name:"contentArrowGap",type:Number,defaultValue:6});QxMenu.addProperty({name:"hoverItem",type:Object});QxMenu.addProperty({name:"openItem",type:Object});QxMenu.addProperty({name:"opener",type:Object});QxMenu.addProperty({name:"parentMenu",type:Object});QxMenu.addProperty({name:"fastReopen",type:Boolean,defaultValue:false});QxMenu.addProperty({name:"openInterval",type:Number,defaultValue:250});QxMenu.addProperty({name:"closeInterval",type:Number,defaultValue:250});QxMenu.addProperty({name:"subMenuHorizontalOffset",type:Number,defaultValue:-3});QxMenu.addProperty({name:"subMenuVerticalOffset",type:Number,defaultValue:-2});QxMenu.addProperty({name:"minIconColumnWidth",type:Number,defaultValue:16});QxMenu.addProperty({name:"showIconColumnWithoutAnyIcon",type:Boolean,defaultValue:true});proto._menuManager=new QxMenuManager();proto._beforeShow=function(_b4){QxAtom.prototype._beforeShow.call(this,_b4);this._menuManager.add(this);this.bringToFront();this._makeActive();};proto._beforeHide=function(_b4){QxAtom.prototype._beforeHide.call(this,_b4);this.sendToBack();this._menuManager.remove(this);this._makeInactive();};proto._modifyHoverItem=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setState(null);};if(_b1){_b1.setState("hover");};return true;};proto._modifyOpenItem=function(_b1,_b2,_b3,_b4){var vMakeActive=false;if(_b2){var vOldSub=_b2.getMenu();if(vOldSub){vOldSub.setParentMenu(null);vOldSub.setOpener(null);vOldSub.setVisible(false);};};if(_b1){var vSub=_b1.getMenu();if(vSub){vSub.setOpener(_b1);vSub.setParentMenu(this);vSub.setTop(_b1.getComputedPageBoxTop()+this.getSubMenuVerticalOffset());vSub.setLeft(this.getComputedPageBoxLeft()+this.getComputedBoxWidth()+this.getSubMenuHorizontalOffset());vSub.setVisible(true);};};return true;};proto._modifyVisible=function(_b1,_b2,_b3,_b4){this.setHoverItem(null);this.setOpenItem(null);if(_b2){var vOpener=this.getOpener();if(vOpener&&vOpener.getState()!="hover"){vOpener.setState(null);};};return QxWidget.prototype._modifyVisible.call(this,_b1,_b2,_b3,_b4);};proto._setChildrenDependWidth=function(_e4,_e5){var vMaxPaddingLeft=0;var vMaxPaddingRight=0;var vMaxIconWidth=0;var vMaxTextWidth=0;var vMaxShortcutWidth=0;var vMaxArrowWidth=0;var vMaxTextWidth=0;var vMaxContentWidth=0;var vIconContentGap=this.getIconContentGap();var vContentArrowGap=this.getContentArrowGap();var vTextShortcutGap=this.getTextShortcutGap();var ch=this.getChildren();var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];if(chc instanceof QxMenuButton){vMaxPaddingLeft=Math.max(vMaxPaddingLeft,chc.getComputedPaddingLeft());vMaxPaddingRight=Math.max(vMaxPaddingRight,chc.getComputedPaddingRight());vMaxIconWidth=Math.max(vMaxIconWidth,chc.getNeededIconWidth());vMaxArrowWidth=Math.max(vMaxArrowWidth,chc.getNeededArrowWidth());if(chc.getNeededShortcutWidth()>0){vMaxTextWidth=Math.max(vMaxTextWidth,chc.getNeededTextWidth());vMaxShortcutWidth=Math.max(vMaxShortcutWidth,chc.getNeededShortcutWidth());}else {vMaxContentWidth=Math.max(vMaxContentWidth,chc.getNeededTextWidth());};};};if(vMaxIconWidth>0||this.getShowIconColumnWithoutAnyIcon()){vMaxIconWidth=Math.max(vMaxIconWidth,this.getMinIconColumnWidth());};vMaxContentWidth=Math.max(vMaxContentWidth,(vMaxTextWidth+vTextShortcutGap+vMaxShortcutWidth));this._childIconPosition=vMaxPaddingLeft;var vUseIconWidth=vMaxIconWidth>0?(vMaxIconWidth+vIconContentGap):0;this._childTextPosition=this._childIconPosition+vUseIconWidth;var vUseEndPos=this._childTextPosition+vMaxContentWidth;var vUseMaxArrow=vMaxArrowWidth>0?vContentArrowGap+vMaxArrowWidth:4;var vUseInnerWidth=vMaxPaddingLeft+vUseEndPos+vUseMaxArrow+vMaxPaddingRight;var vUseOuterFrame=this.getComputedBorderLeft()+this.getComputedPaddingLeft()+this.getComputedPaddingRight()+this.getComputedBorderRight();var vUseOuterWidth=vUseInnerWidth+vUseOuterFrame;var vMinWidth=this.getMinWidth();if(vMinWidth!=null&&vUseOuterWidth<vMinWidth){vUseEndPos=vMinWidth-vUseOuterFrame-vMaxPaddingLeft-vMaxPaddingRight-vUseMaxArrow;};this._childShortcutPosition=vUseEndPos-vMaxShortcutWidth;this._childArrowPosition=vUseEndPos+vContentArrowGap;this.setWidth(vUseOuterWidth,null,true);};proto._onmouseover=function(e){var vParent=this.getParentMenu();if(vParent){vParent._closeTimer.stop();var vOpener=this.getOpener();if(vOpener){vParent.setHoverItem(vOpener);};};var t=e.getActiveTarget();if(t==this){this._openTimer.stop();this._closeTimer.start();this.setHoverItem(null);return;};var vOpen=this.getOpenItem();if(vOpen){this.setHoverItem(t);this._openTimer.stop();if(t.hasMenu()){if(this.getFastReopen()){this.setOpenItem(t);this._closeTimer.stop();}else {this._openTimer.start();};}else {this._closeTimer.start();};}else {this.setHoverItem(t);this._openTimer.stop();if(t.hasMenu()){this._openTimer.start();};};};proto._onmouseout=function(e){this._openTimer.stop();var t=e.getActiveTarget();if(t!=this&&t.hasMenu()){this._closeTimer.start();};this.setHoverItem(null);};proto._onopentimer=function(e){this._openTimer.stop();var vHover=this.getHoverItem();if(vHover&&vHover.hasMenu()){this.setOpenItem(vHover);};};proto._onclosetimer=function(e){this._closeTimer.stop();this.setOpenItem(null);};proto._g4=function(e){switch(e.getKeyCode()){case QxKeyEvent.keys.up:this._g4_up(e);break;case QxKeyEvent.keys.down:this._g4_down(e);break;case QxKeyEvent.keys.left:this._g4_left(e);break;case QxKeyEvent.keys.right:this._g4_right(e);break;case QxKeyEvent.keys.enter:this._g4_enter(e);break;default:return;};e.preventDefault();};proto._g4_up=function(e){var vHover=this.getHoverItem();var vPrev=vHover?vHover.isFirstChild()?this.getLastActiveChild():vHover.getPreviousActiveSibling([QxMenuSeparator]):this.getLastActiveChild();this.setHoverItem(vPrev);};proto._g4_down=function(e){var vHover=this.getHoverItem();var vNext=vHover?vHover.isLastChild()?this.getFirstActiveChild():vHover.getNextActiveSibling([QxMenuSeparator]):this.getFirstActiveChild();this.setHoverItem(vNext);};proto._g4_left=function(e){var vOpener=this.getOpener();if(vOpener instanceof QxMenuButton){var vOpenerParent=this.getOpener().getParent();vOpenerParent.setOpenItem(null);vOpenerParent.setHoverItem(vOpener);vOpenerParent._makeActive();}else if(vOpener instanceof QxMenuBarButton){var vOpenerParent=this.getOpener().getParent();(new QxApplication).setActiveWidget(vOpenerParent);vOpenerParent._g4(e);};};proto._g4_right=function(e){var vHover=this.getHoverItem();if(vHover){var vMenu=vHover.getMenu();if(vMenu){this.setOpenItem(vHover);vMenu.setHoverItem(vMenu.getFirstChild());return;};}else if(!this.getOpenItem()){var vFirst=this.getFirstActiveChild();if(vFirst){vFirst.hasMenu()?this.setOpenItem(vFirst):this.setHoverItem(vFirst);};};var vOpener=this.getOpener();if(vOpener instanceof QxMenuBarButton){var vOpenerParent=this.getOpener().getParent();(new QxApplication).setActiveWidget(vOpenerParent);vOpenerParent._g4(e);}else if(vOpener instanceof QxMenuButton&&vHover){var vOpenerParent=vOpener.getParent();while(vOpenerParent){if(vOpenerParent instanceof QxMenuBar){(new QxApplication).setActiveWidget(vOpenerParent);vOpenerParent._g4(e);break;};try{vOpenerParent=vOpenerParent.getOpener().getParent();}catch(ex){break;};};};};proto._g4_enter=function(e){var vHover=this.getHoverItem();if(vHover){vHover.execute();};(new QxMenuManager()).update();};proto.dispose=function(){if(this.getDisposed()){return;};if(this._openTimer){this._openTimer.dispose();this._openTimer=null;};if(this._closeTimer){this._closeTimer.dispose();this._closeTimer=null;};this.removeEventListener("mouseover",this._onmouseover);this.removeEventListener("mousemove",this._onmouseover);this.removeEventListener("mouseout",this._onmouseout);this.removeEventListener("keydown",this._g4);return QxPopup.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxMenuBar.js b/swat/style/qooxdoo/widgets/widgets/QxMenuBar.js
new file mode 100644 (file)
index 0000000..81723c6
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxMenuBar(){QxWidget.call(this);this.addEventListener("keydown",this._g4);};QxMenuBar.extend(QxWidget,"QxMenuBar");QxMenuBar.addProperty({name:"menu",type:Object});proto._modifyMenu=function(_b1,_b2,_b3,_b4){if(_b2){_b2.getOpener().setState("normal",_b4);_b2.setVisible(false,_b4);};if(_b1){var vOpener=_b1.getOpener();_b1.setLeft(vOpener.getComputedPageBoxLeft(),_b4);_b1.setTop(vOpener.getComputedPageBoxBottom(),_b4);_b1.setVisible(true,_b4);};return true;};proto._g4=function(e){switch(e.getKeyCode()){case QxKeyEvent.keys.left:this._g4_left(e);break;case QxKeyEvent.keys.right:this._g4_right(e);break;};};proto._g4_left=function(e){var vMenu=this.getMenu();if(!vMenu){return;};var vOpener=vMenu.getOpener();if(!vOpener){return;};var vPrev=vOpener?vOpener.isFirstChild()?this.getLastActiveChild():vOpener.getPreviousActiveSibling():this.getLastActiveChild();vPrev.setState("pressed");var vPrevMenu=vPrev.getMenu();if(vPrevMenu){var vPrevFirst=vPrevMenu.getFirstActiveChild();if(vPrevFirst){vPrevMenu.setHoverItem(vPrevFirst);};};};proto._g4_right=function(e){var vMenu=this.getMenu();if(!vMenu){return;};var vOpener=vMenu.getOpener();if(!vOpener){return;};var vNext=vOpener?vOpener.isLastChild()?this.getFirstActiveChild():vOpener.getNextActiveSibling():this.getFirstActiveChild();vNext.setState("pressed");var vNextMenu=vNext.getMenu();if(vNextMenu){var vNextFirst=vNextMenu.getFirstActiveChild();if(vNextFirst){vNextMenu.setHoverItem(vNextFirst);};};};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("keydown",this._g4);return QxWidget.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxMenuBarButton.js b/swat/style/qooxdoo/widgets/widgets/QxMenuBarButton.js
new file mode 100644 (file)
index 0000000..d78a61b
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxMenuBarButton(vText,vMenu){QxWidget.call(this);this.setCanSelect(false);if(isValid(vText)){this.setText(vText);};if(isValid(vMenu)){this.setMenu(vMenu);};this.addEventListener("mouseover",this._onmouseover);this.addEventListener("mouseout",this._onmouseout);this.addEventListener("mousedown",this._g1);};QxMenuBarButton.extend(QxWidget,"QxMenuBarButton");QxMenuBarButton.addProperty({name:"text",type:String});QxMenuBarButton.addProperty({name:"menu"});QxMenuBarButton.addProperty({name:"status",type:String,defaultValue:"normal"});proto._modifyElement=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);if(_b1){if(!this._textNode){this._textNode=document.createTextNode(this.getText());};_b1.appendChild(this._textNode);}else if(_b2&&this._textNode){_b2.removeChild(this._textNode);};return true;};proto._modifyState=function(_b1,_b2,_b3,_b4){var vParent=this.getParent();if(vParent.getMenu()==this.getMenu()){if(_b1==null||_b1=="hover"){vParent.setMenu(null,_b4);};}else if(_b1=="pressed"){vParent.setMenu(this.getMenu(),_b4);};return QxWidget.prototype._modifyState.call(this,_b1,_b2,_b3,_b4);};proto._modifyText=function(_b1,_b2,_b3,_b4){if(!this.isCreated()){return true;};this._textNode.nodeValue=_b1;return true;};proto._modifyMenu=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setOpener(null,_b4);};if(_b1){_b1.setOpener(this,_b4);};return true;};proto._onmouseover=function(e){var vMenu=this.getParent().getMenu();if(vMenu!=this.getMenu()){this.setState(vMenu?"pressed":"hover");};};proto._onmouseout=function(e){if(this.getState()=="hover"){this.setState(null);};};proto._g1=function(e){if(e.isNotLeftButton()){return;};this.setState(this.getState()=="pressed"?"hover":"pressed");e.setPropagationStopped(true);};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("mouseover",this._onmouseover);this.removeEventListener("mouseout",this._onmouseout);this.removeEventListener("mousedown",this._g1);QxWidget.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxMenuButton.js b/swat/style/qooxdoo/widgets/widgets/QxMenuButton.js
new file mode 100644 (file)
index 0000000..09683cc
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxMenuButton(vText,vIcon,vCommand,vMenu){QxWidget.call(this);this.setHeight("auto");this.setLeft(0);this.setRight(0);this.setMinHeight(20);this.setTimerCreate(false);if(isValidString(vText)){this.setText(vText);};if(isValid(vIcon)){this.setIcon(vIcon);};if(isValid(vCommand)){this.setCommand(vCommand);};if(isValid(vMenu)){this.setMenu(vMenu);};this.addEventListener("mousedown",this._g1);};QxMenuButton.extend(QxWidget,"QxMenuButton");QxMenuButton.addProperty({name:"text",type:String});QxMenuButton.addProperty({name:"icon",type:String});QxMenuButton.addProperty({name:"menu",type:Object});proto._f1=null;proto._f2=null;proto._f3=null;proto._f4=null;proto._c1=false;proto._c2=false;proto._c3=false;proto._c4=false;proto._valueShortcut="";proto._modifyElement=function(_b1,_b2,_b3,_b4){if(_b1){if(this._c1&&!this._f1){this._e3Icon();};if(this._c2&&!this._f2){this._e3Text();};if(this._c3&&!this._f3){this._e3Shortcut();};if(this._c4&&!this._f4){this._e3Arrow();};};return QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){if(this._f2){this._f2.setEnabled(_b1,_b4);};if(this._f1){this._f1.setEnabled(_b1,_b4);};return QxWidget.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);};proto._modifyIcon=function(_b1,_b2,_b3,_b4){this._c1=isValid(_b1);return true;};proto._modifyText=function(_b1,_b2,_b3,_b4){this._c2=isValid(_b1);return true;};proto._modifyCommand=function(_b1,_b2,_b3,_b4){if(isValid(_b1)){this._c3=true;this._valueShortcut=_b1.toString();}else {this._c3=false;this._valueShortcut="";};return true;};proto._modifyMenu=function(_b1,_b2,_b3,_b4){this._c4=isValid(_b1);return true;};proto.hasMenu=function(){return Boolean(this.getMenu());};proto._e3Icon=function(){var i=this._f1=new QxImage();i.setSource(this.getIcon());i.setAnonymous(true);i.setEnabled(this.isEnabled());i.setParent(this);i._addCssClassName("QxMenuButtonIcon");};proto._e3Text=function(){var t=this._f2=new QxContainer();t.setHtml(this.getText());t.setAnonymous(true);t.setEnabled(this.isEnabled());t.setParent(this);t._addCssClassName("QxMenuButtonText");};proto._e3Shortcut=function(){var s=this._f3=new QxContainer();s.setHtml(this._valueShortcut);s.setAnonymous(true);s.setEnabled(this.isEnabled());s.setParent(this);s._addCssClassName("QxMenuButtonShortcut");};proto._e3Arrow=function(){var a=this._f4=new QxImage();a.setSource("widgets/arrows/next.gif");a.setAnonymous(true);a.setEnabled(this.isEnabled());a.setParent(this);a._addCssClassName("QxMenuButtonArrow");};proto._innerWidthChanged=function(){this._d4Width();this._d1("inner-width");};proto._innerHeightChanged=function(){this._d4Height();this._d2("inner-height");};proto._d1=function(_e5){var vParent=this.getParent();if(this._f1){this._f1._d3Horizontal(vParent._childIconPosition);};if(this._f2){this._f2._d3Horizontal(vParent._childTextPosition);};if(this._f3){this._f3._d3Horizontal(vParent._childShortcutPosition);};if(this._f4){this._f4._d3Horizontal(vParent._childArrowPosition);};};proto._d2=function(_e5){var vInner=this.getInnerHeight();if(this._f1){this._f1._d3Vertical((vInner-this._f1.getPreferredHeight())/2);};if(this._f2){this._f2._d3Vertical((vInner-this._f2.getPreferredHeight())/2);};if(this._f3){this._f3._d3Vertical((vInner-this._f3.getPreferredHeight())/2);};if(this._f4){this._f4._d3Vertical((vInner-this._f4.getPreferredHeight())/2);};};proto._setChildrenDependHeight=function(_e4,_e5){if(this._c1&&_e4==this._f1&&_e5=="unload"){return true;};var newHeight=this._d5Height(_e4,_e5);if(this._heightMode=="inner"&&this._heightModeValue==newHeight){switch(_e5){case "load":case "append-child":case "preferred":switch(_e4){case this._f1:case this._f2:case this._hintObject:case this._f4:return this._d2(_e5);};};}else {this.setInnerHeight(newHeight,null,true);};return true;};proto.getNeededIconWidth=function(){return this._c1?this._f1.getAnyWidth():0;};proto.getNeededTextWidth=function(){return this._c2?this._f2.getAnyWidth():0;};proto.getNeededShortcutWidth=function(){return this._c3?this._f3.getAnyWidth():0;};proto.getNeededArrowWidth=function(){return this._c4?this._f4.getAnyWidth():0;};proto._g1=function(e){this.execute();};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("mousedown",this._g1);return QxWidget.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxMenuCheckBox.js b/swat/style/qooxdoo/widgets/widgets/QxMenuCheckBox.js
new file mode 100644 (file)
index 0000000..9b0e424
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxMenuCheckBox(vText,vCommand,vChecked){QxMenuButton.call(this,vText,this._source,vCommand);if(isValid(vChecked)){this.setChecked(vChecked);};};QxMenuCheckBox.extend(QxMenuButton,"QxMenuCheckBox");QxMenuCheckBox.addProperty({name:"name",type:String});QxMenuCheckBox.addProperty({name:"value",type:String});QxMenuCheckBox.addProperty({name:"checked",type:Boolean,defaultValue:false,getAlias:"isChecked"});proto._source = "widgets/menu/checkbox.gif";proto._e3Icon=function(){QxMenuButton.prototype._e3Icon.call(this);this._f1.setVisible(this.getChecked());};proto._modifyChecked=function(_b1,_b2,_b3,_b4){if(this._f1){this._f1.setVisible(_b1);};return true;};proto.execute=function(){this.setChecked(!this.getChecked());QxMenuButton.prototype.execute.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxMenuRadioButton.js b/swat/style/qooxdoo/widgets/widgets/QxMenuRadioButton.js
new file mode 100644 (file)
index 0000000..68f596a
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxMenuRadioButton(vText,vCommand,vChecked){QxMenuCheckBox.call(this,vText,vCommand,vChecked);};QxMenuRadioButton.extend(QxMenuCheckBox,"QxMenuRadioButton");QxMenuRadioButton.addProperty({name:"group"});proto._source = "widgets/menu/radiobutton.gif";proto._modifyChecked=function(_b1,_b2,_b3,_b4){if(this.getGroup()){this.getGroup().setSelected(this,_b4);};return QxMenuCheckBox.prototype._modifyChecked.call(this,_b1,_b2,_b3,_b4);};proto._modifyGroup=function(_b1,_b2,_b3,_b4){if(_b2){_b2.remove(this,_b4);};if(_b1){_b1.add(this,_b4);};return true;};proto._modifyName=function(_b1,_b2,_b3,_b4){if(this.getGroup()){this.getGroup().setName(_b1,_b4);};return true;};proto.execute=function(){this.setChecked(true);QxMenuButton.prototype.execute.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxMenuSeparator.js b/swat/style/qooxdoo/widgets/widgets/QxMenuSeparator.js
new file mode 100644 (file)
index 0000000..ad200d5
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxMenuSeparator(){QxWidget.call(this);this.setTimerCreate(false);this._line=new QxWidget();this._line.setCssClassName("QxMenuSeparatorLine");this._line.setAnonymous(true);this._line.setTimerCreate(false);this.add(this._line);this.addEventListener("mousedown",this._g1);};QxMenuSeparator.extend(QxWidget,"QxMenuSeparator");proto.hasMenu=function(){return false;};proto._modifyState=function(){return true;};proto._g1=function(e){e.stopPropagation();};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxPasswordField.js b/swat/style/qooxdoo/widgets/widgets/QxPasswordField.js
new file mode 100644 (file)
index 0000000..3309fd6
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxPasswordField(vText){QxTextField.call(this,vText);this.setHtmlProperty("type","password");};QxPasswordField.extend(QxTextField,"QxPasswordField");
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxPopup.js b/swat/style/qooxdoo/widgets/widgets/QxPopup.js
new file mode 100644 (file)
index 0000000..055e693
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxPopup(vText,vIcon){QxAtom.call(this,vText,vIcon);this.setZIndex(this._minZindex);};QxPopup.extend(QxAtom,"QxPopup");QxPopup.addProperty({name:"autoHide",type:Boolean,defaultValue:true});proto._minZindex=1e6;proto._showTimeStamp=new Date(0);proto._hideTimeStamp=new Date(0);proto._popupManager=new QxPopupManager();proto._beforeShow=function(_b4){QxAtom.prototype._beforeShow.call(this,_b4);this._popupManager.add(this);this._popupManager.update(this);this._showTimeStamp=new Date;this.bringToFront();};proto._beforeHide=function(_b4){QxAtom.prototype._beforeHide.call(this,_b4);this.sendToBack();this._popupManager.remove(this);this._hideTimeStamp=new Date;};proto._makeActive=function(){(new QxApplication).setActiveWidget(this);};proto._makeInactive=function(){var vApp=new QxApplication;if(vApp.getActiveWidget()==this){vApp.setActiveWidget(vApp.getClientWindow().getClientDocument());};};proto._shouldBecomeCreated=function(){return false;};proto.getCanFocus=function(){return false;};if((new QxClient).isMshtml()){proto.sendToBack=function(){if(!this.isCreated()||!this.getParent()){return;};var min=Infinity;var d=this.getTopLevelWidget().getDocumentElement();var cs=d.body.children;var zi;for(var i=0;i<cs.length;i++){if(cs[i].nodeType==1){zi=cs[i].currentStyle.zIndex;if(zi>this._minZindex){min=Math.min(min,zi);};};};this.setZIndex(min-1);};proto.bringToFront=function(){if(!this.isCreated()||!this.getParent()){return;};var max=-Infinity;var d=this.getTopLevelWidget().getDocumentElement();var cs=d.body.children;for(var i=0;i<cs.length;i++){if(cs[i].nodeType==1){max=Math.max(max,cs[i].currentStyle.zIndex);};};this.setZIndex(max+1);};}else {proto.sendToBack=function(){if(!this.isCreated()||!this.getParent()){return;};var min=Infinity;var d=this.getTopLevelWidget().getDocumentElement();var cs=d.body.childNodes;var view=d.defaultView;var zi;for(var i=0;i<cs.length;i++){if(cs[i].nodeType==1){zi=cs[i].style.zIndex;if(zi==""||isNaN(zi)){zi=view.getComputedStyle(cs[i],"").zIndex;if(zi==""||isNaN(zi)){zi=0;};};if(zi>this._minZindex){min=Math.min(min,zi);};};};this.setZIndex(min-1);};proto.bringToFront=function(){if(!this.isCreated()||!this.getParent()){return;};var max=-Infinity;var d=this.getTopLevelWidget().getDocumentElement();var cs=d.body.childNodes;var view=d.defaultView;var zi;for(var i=0;i<cs.length;i++){if(cs[i].nodeType==1){zi=cs[i].style.zIndex;if(zi==""||isNaN(zi)){zi=view.getComputedStyle(cs[i],"").zIndex;if(zi==""||isNaN(zi)){zi=0;};};max=Math.max(max,zi);};};this.setZIndex(max+1);};};proto.getShowTimeStamp=function(){return this._showTimeStamp;};proto.getHideTimeStamp=function(){return this._hideTimeStamp;};proto.dispose=function(){if(this.getDisposed()){return;};if(this._popupManager){this._popupManager.remove(this);this._popupManager=null;};return QxAtom.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxRadioButton.js b/swat/style/qooxdoo/widgets/widgets/QxRadioButton.js
new file mode 100644 (file)
index 0000000..341aad5
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxRadioButton(vText,vValue,vName,vChecked,vGroup){QxCheckBox.call(this,vText,vValue,vName,vChecked);if(isValid(vGroup)){this.setGroup(vGroup);};};QxRadioButton.extend(QxCheckBox,"QxRadioButton");QxRadioButton.addProperty({name:"group"});proto._e3Icon=function(){var i=this._f1=new QxInputCheckIcon();i.setType("radio");i.setChecked(this.isChecked());i.setEnabled(this.isEnabled());i.setAnonymous(true);i.setParent(this);};proto._modifyChecked=function(_b1,_b2,_b3,_b4){if(this._f1){this._f1.setChecked(_b1,_b4);};if(this.getGroup()){this.getGroup().setSelected(this,_b4);};return true;};proto._modifyGroup=function(_b1,_b2,_b3,_b4){if(_b2){_b2.remove(this,_b4);};if(_b1){_b1.add(this,_b4);};return true;};proto._modifyName=function(_b1,_b2,_b3,_b4){if(this.isCreated()&&this._f1){this._f1.setName(_b1,_b4);};if(this.getGroup()){this.getGroup().setName(_b1,_b4);};return true;};proto._modifyValue=function(_b1,_b2,_b3,_b4){if(this.isCreated()&&this._f1){this._f1.setValue(_b1,_b4);};return true;};proto._g4=function(e){switch(e.getKeyCode()){case QxKeyEvent.keys.enter:if(!e.getAltKey()){this.setChecked(this._f1?!this._f1.isChecked():!this.isChecked());};break;case QxKeyEvent.keys.left:case QxKeyEvent.keys.up:return this.getGroup()?this.getGroup().selectPrevious(this):true;case QxKeyEvent.keys.right:case QxKeyEvent.keys.down:return this.getGroup()?this.getGroup().selectNext(this):true;};};proto._g3=function(e){this.setChecked(true);};proto.dispose=function(){if(this.getDisposed()){return;};return QxCheckBox.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxSpinner.js b/swat/style/qooxdoo/widgets/widgets/QxSpinner.js
new file mode 100644 (file)
index 0000000..81725cb
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxSpinner(min,value,max){QxWidget.call(this);this.setWidth(60);this.setHeight(22);this.setBorder(QxBorder.presets.inset);this.setTabIndex(-1);this._manager=new QxRangeManager();this._textfield=new QxTextField();this._textfield.set({left:0,right:16,bottom:0,top:0,textAlign:"right",text:this._manager.getValue()});this.add(this._textfield);this._upbutton=new QxWidget();this._upbutton.set({top:0,bottom:"50%",width:16,right:0,border:QxBorder.presets.outset,canSelect:false});this._upbuttonimage = new QxImage("widgets/arrows/up_small.gif", 5, 3);this._upbuttonimage.set({top:1,left:3,anonymous:true});this._upbutton.add(this._upbuttonimage);this.add(this._upbutton);this._downbutton=new QxWidget();this._downbutton.set({top:"50%",bottom:0,width:16,right:0,border:QxBorder.presets.outset,canSelect:false});this._downbuttonimage = new QxImage("widgets/arrows/down_small.gif", 5, 3);this._downbuttonimage.set({top:1,left:3,anonymous:true});this._downbutton.add(this._downbuttonimage);this.add(this._downbutton);this._timer=new QxTimer(this.getInterval());this.addEventListener("keypress",this._g6,this);this.addEventListener("keydown",this._g4,this);this.addEventListener("keyup",this._g5,this);this.addEventListener("mousewheel",this._onmousewheel,this);this._textfield.addEventListener("input",this._oninput,this);this._textfield.addEventListener("blur",this._onblur,this);this._upbutton.addEventListener("mousedown",this._g1,this);this._downbutton.addEventListener("mousedown",this._g1,this);this._manager.addEventListener("change",this._onchange,this);this._timer.addEventListener("interval",this._i7,this);if(isValidNumber(min)){this.setMin(min);};if(isValidNumber(max)){this.setMax(max);};if(isValidNumber(value)){this.setValue(value);};};QxSpinner.extend(QxWidget,"QxSpinner");QxSpinner.addProperty({name:"incrementAmount",type:Number,defaultValue:1});QxSpinner.addProperty({name:"wheelIncrementAmount",type:Number,defaultValue:1});QxSpinner.addProperty({name:"pageIncrementAmount",type:Number,defaultValue:10});QxSpinner.addProperty({name:"interval",type:Number,defaultValue:100});QxSpinner.addProperty({name:"firstInterval",type:Number,defaultValue:500});QxSpinner.addProperty({name:"minTimer",type:Number,defaultValue:20});QxSpinner.addProperty({name:"timerDecrease",type:Number,defaultValue:2});QxSpinner.addProperty({name:"amountGrowth",type:Number,defaultValue:1.01});proto.getPreferredHeight=function(){return 22;};proto.getPreferredWidth=function(){return 60;};proto._g6=function(e){var vCode=e.getKeyCode();if(vCode==QxKeyEvent.keys.enter&&!e.getAltKey()){this._checkValue(true,false,false);this._textfield.selectAll();}else {switch(vCode){case QxKeyEvent.keys.up:case QxKeyEvent.keys.down:case QxKeyEvent.keys.left:case QxKeyEvent.keys.right:case QxKeyEvent.keys.shift:case QxKeyEvent.keys.ctrl:case QxKeyEvent.keys.alt:case QxKeyEvent.keys.esc:case QxKeyEvent.keys.del:case QxKeyEvent.keys.backspace:case QxKeyEvent.keys.insert:case QxKeyEvent.keys.home:case QxKeyEvent.keys.end:case QxKeyEvent.keys.pageup:case QxKeyEvent.keys.pagedown:case QxKeyEvent.keys.numlock:case QxKeyEvent.keys.tab:break;default:if(vCode>=48&&vCode<=57){return;};e.preventDefault();};};};proto._g4=function(e){var vCode=e.getKeyCode();if(this._intervalIncrease==null){switch(vCode){case QxKeyEvent.keys.up:case QxKeyEvent.keys.down:this._intervalIncrease=vCode==QxKeyEvent.keys.up;this._intervalMode="single";this._resetIncrements();this._checkValue(true,false,false);this._increment();this._timer.startWith(this.getFirstInterval());break;case QxKeyEvent.keys.pageup:case QxKeyEvent.keys.pagedown:this._intervalIncrease=vCode==QxKeyEvent.keys.pageup;this._intervalMode="page";this._resetIncrements();this._checkValue(true,false,false);this._pageIncrement();this._timer.startWith(this.getFirstInterval());break;};};};proto._g5=function(e){if(this._intervalIncrease!=null){switch(e.getKeyCode()){case QxKeyEvent.keys.up:case QxKeyEvent.keys.down:case QxKeyEvent.keys.pageup:case QxKeyEvent.keys.pagedown:this._timer.stop();this._intervalIncrease=null;this._intervalMode=null;};};};proto._g1=function(e){if(e.isNotLeftButton()){return;};this._checkValue(true);var vButton=e.getCurrentTarget();vButton.setBorder(QxBorder.presets.inset);vButton.addEventListener("mouseup",this._g2,this);vButton.addEventListener("mouseout",this._g2,this);this._intervalIncrease=vButton==this._upbutton;this._resetIncrements();this._increment();this._textfield.selectAll();this._timer.setInterval(this.getFirstInterval());this._timer.start();};proto._g2=function(e){var vButton=e.getCurrentTarget();vButton.setBorder(QxBorder.presets.outset);vButton.removeEventListener("mouseup",this._g2,this);vButton.removeEventListener("mouseout",this._g2,this);this._textfield.selectAll();this._textfield.setFocused(true);this._timer.stop();this._intervalIncrease=null;};proto._onmousewheel=function(e){this._manager.setValue(this._manager.getValue()+this.getWheelIncrementAmount()*e.getWheelDelta());this._textfield.selectAll();};proto._oninput=function(e){this._checkValue(true,true);};proto._onchange=function(e){var vValue=this._manager.getValue();this._textfield.setText(vValue);if(vValue==this.getMin()){this._downbutton.setBorder(QxBorder.presets.outset);this._downbutton.setEnabled(false);this._downbuttonimage.setEnabled(false);this._timer.stop();}else {this._downbutton.setEnabled(true);this._downbuttonimage.setEnabled(true);};if(vValue==this.getMax()){this._upbutton.setBorder(QxBorder.presets.outset);this._upbutton.setEnabled(false);this._upbuttonimage.setEnabled(false);this._timer.stop();}else {this._upbutton.setEnabled(true);this._upbuttonimage.setEnabled(true);};if(this.hasEventListeners("change")){this.dispatchEvent(new QxEvent("change"));};};proto._onblur=function(e){this._checkValue(false);};proto.setValue=function(nValue){this._manager.setValue(nValue);};proto.getValue=function(){this._checkValue(true);return this._manager.getValue();};proto.resetValue=function(){return this._manager.resetValue();};proto.setMax=function(vMax){return this._manager.setMax(vMax);};proto.getMax=function(){return this._manager.getMax();};proto.setMin=function(vMin){return this._manager.setMin(vMin);};proto.getMin=function(){return this._manager.getMin();};proto._intervalIncrease=null;proto._i7=function(e){this._timer.stop();this.setInterval(Math.max(this.getMinTimer(),this.getInterval()-this.getTimerDecrease()));if(this._intervalMode=="page"){this._pageIncrement();}else {if(this.getInterval()==this.getMinTimer()){this.setIncrementAmount(this.getAmountGrowth()*this.getIncrementAmount());};this._increment();};switch(this._intervalIncrease){case true:if(this.getValue()==this.getMax()){return;};case false:if(this.getValue()==this.getMin()){return;};};this._timer.restartWith(this.getInterval());};proto._checkValue=function(acceptEmpty,acceptEdit){var el=this._textfield.getElement();if(!el){return;};if(el.value==""){if(!acceptEmpty){el.value=this.resetValue();this._textfield.selectAll();return;};}else {var val=el.value;if(val.length>1){while(val.charAt(0)=="0"){val=val.substr(1,val.length);};var f1=parseInt(val)||0;if(f1!=el.value){el.value=f1;return;};};if(val=="-"&&acceptEmpty&&this.getMin()<0){if(el.value!=val){el.value=val;};return;};val=parseInt(val);var doFix=true;var fixedVal=this._manager._checkValue(val);if(isNaN(fixedVal)){fixedVal=this._manager.getValue();};if(acceptEmpty&&val==""){doFix=false;}else if(!isNaN(val)){if(acceptEdit){if(val>fixedVal&&!(val>0&&fixedVal<=0)&&String(val).length<String(fixedVal).length){doFix=false;}else if(val<fixedVal&&!(val<0&&fixedVal>=0)&&String(val).length<String(fixedVal).length){doFix=false;};};};if(doFix&&el.value!=fixedVal){el.value=fixedVal;};if(!acceptEdit){this._manager.setValue(fixedVal);};};};proto._increment=function(){this._manager.setValue(this._manager.getValue()+((this._intervalIncrease?1:-1)*this.getIncrementAmount()));};proto._pageIncrement=function(){this._manager.setValue(this._manager.getValue()+((this._intervalIncrease?1:-1)*this.getPageIncrementAmount()));};proto._resetIncrements=function(){this.resetIncrementAmount();this.resetInterval();};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("keypress",this._g6,this);this.removeEventListener("keydown",this._g4,this);this.removeEventListener("keyup",this._g5,this);if(this._textfield){this._textfield.removeEventListener("blur",this._onblur,this);this._textfield.dispose();this._textfield=null;};if(this._upbutton){this._upbutton.removeEventListener("mousedown",this._g1,this);this._upbutton.dispose();this._upbutton=null;};if(this._downbutton){this._downbutton.removeEventListener("mousedown",this._g1,this);this._downbutton.dispose();this._downbutton=null;};if(this._timer){this._timer.removeEventListener("interval",this._i7,this);this._timer.stop();this._timer.dispose();this._timer=null;};if(this._manager){this._manager.removeEventListener("change",this._onchange,this);this._manager.dispose();this._manager=null;};return QxWidget.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxTab.js b/swat/style/qooxdoo/widgets/widgets/QxTab.js
new file mode 100644 (file)
index 0000000..620884e
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTab(vText,vIcon,vIconWidth,vIconHeight,vChecked){QxAtom.call(this,vText,vIcon,vIconWidth,vIconHeight);if(isValid(vChecked)){this.setChecked(vChecked);};this.setTabIndex(1);this.addEventListener("mousedown",this._g1);this.addEventListener("keyup",this._g5);};QxTab.extend(QxAtom,"QxTab");QxTab.addProperty({name:"page",type:Object});QxTab.addProperty({name:"group"});QxTab.addProperty({name:"name",type:String});QxTab.addProperty({name:"checked",type:Boolean});proto._modifyGroup=function(_b1,_b2,_b3,_b4){if(_b2){_b2.remove(this,_b4);};if(_b1){_b1.add(this,_b4);};return true;};proto._modifyParent=function(_b1,_b2,_b3,_b4){QxToolBarRadioButton.prototype._modifyParent.call(this,_b1,_b2,_b3,_b4);if(_b2){_b2.getManager().remove(this);};if(_b1){_b1.getManager().add(this);};return true;};proto._modifyPage=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setTab(null,_b4);};if(_b1){_b1.setTab(this,_b4);};return true;};proto._modifyChecked=function(_b1,_b2,_b3,_b4){if(this.getGroup()){this.getGroup().setSelected(this,_b4);};var vPage=this.getPage();if(vPage){vPage.setVisible(_b1);};this.setState(_b1?"checked":null,_b4);return true;};proto._visualizeFocus=function(){};proto._visualizeBlur=function(){};proto._g5=function(e){var vPrevious;switch(e.getKeyCode()){case QxKeyEvent.keys.left:vPrevious=this.getParent().getAlignTabsToLeft();break;case QxKeyEvent.keys.right:vPrevious=!this.getParent().getAlignTabsToLeft();break;default:return;};var vChild=vPrevious?this.isFirstChild()?this.getParent().getLastChild():this.getPreviousSibling():this.isLastChild()?this.getParent().getFirstChild():this.getNextSibling();vChild.setFocused(true);vChild.setChecked(true);};proto._g1=function(e){this.setFocused(true);this.setChecked(true);};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("mousedown",this._g1);this.removeEventListener("keyup",this._g5);QxAtom.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxTabBar.js b/swat/style/qooxdoo/widgets/widgets/QxTabBar.js
new file mode 100644 (file)
index 0000000..4370d8c
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTabBar(){QxWidget.call(this);this.setLeft(0);this.setRight(0);this.setHeight("auto");this._updatePlacement();this._j3();this._manager=new QxRadioButtonManager();this._manager.addEventListener("changeSelected",this._onchange,this);};QxTabBar.extend(QxWidget,"QxTabBar");QxTabBar.addProperty({name:"placeOnTop",type:Boolean,defaultValue:true});QxTabBar.addProperty({name:"alignTabsToLeft",type:Boolean,defaultValue:true});QxTabBar.addProperty({name:"activeTabHeightDiff",type:Number,defaultValue:2});QxTabBar.addProperty({name:"activeTabOverlap",type:Number,defaultValue:2});proto.getManager=function(){return this._manager;};proto._modifyPlaceOnTop=function(_b1,_b2,_b3,_b4){this.getParent().setPlaceBarOnTop(_b1,_b4);this._updatePlacement();return true;};proto._modifyAlignTabsToLeft=function(_b1,_b2,_b3,_b4){this._j3();return true;};proto._onchange=function(e){this._layoutInternalWidgets("change-active-tab");};proto._updatePlacement=function(){if(this.getPlaceOnTop()){this.setBottom(null);this.setTop(0);}else {this.setTop(null);this.setBottom(0);};this._j3();};proto._j3=function(){this.setState((this.getPlaceOnTop()?"top":"bottom")+(this.getAlignTabsToLeft()?"Left":"Right"));};proto._layoutInternalWidgets=function(_e5){this._d1(_e5);this._d2(_e5);};proto._d1=function(_e5){if(!isValidString(_e5)||_e5=="position"){return;};var vPane=this.getParent().getPane();if(!this.isCreated()||!vPane.isCreated()){return true;};if(this.getAlignTabsToLeft()){var vReset="setRight";var vSet="setLeft";var vLastLeft=vPane.getComputedBorderLeft();}else {var vReset="setLeft";var vSet="setRight";var vLastLeft=vPane.getComputedBorderRight();};var ch=this.getChildren();var chl=ch.length;var chc;var vPref;var vLeft;var vIndex;for(var i=0;i<chl;i++){chc=ch[i];if(chc instanceof QxTab&&chc.getVisible()){vPref=chc.getPreferredWidth();if(vPref==null){return true;};chc[vReset](null);if(chc.getChecked()){vLeft=vLastLeft-this.getActiveTabOverlap();vLastLeft+=vPref-(2*this.getActiveTabOverlap());vIndex=2;}else {vLeft=vLastLeft;vLastLeft+=vPref;vIndex=1;};chc[vSet](vLeft);chc.setZIndex(vIndex);};};};proto._d2=function(_e5){var vPane=this.getParent().getPane();if(!this.isCreated()||!vPane.isCreated()){return true;};var vActiveDiff=this.getActiveTabHeightDiff();var vMax=this._maxHeight;var vActiveMax=this._maxActiveHeight;if(this.getPlaceOnTop()){var vReset="setBottom";var vSet="setTop";var vPaneBorder=vPane.getComputedBorderTop();}else {var vReset="setTop";var vSet="setBottom";var vPaneBorder=vPane.getComputedBorderBottom();};var ch=this.getChildren();var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];if(chc instanceof QxTab&&chc.getVisible()){chc[vReset](null);if(chc.getChecked()){chc[vSet](0);chc.setHeight(vActiveMax);}else {chc[vSet](vActiveDiff);chc.setHeight("auto");chc.setMinHeight(vMax);};};};};proto._onnewchild=function(otherObject){this._d1("append-child");};proto._onremovechild=function(otherObject){this._d1("remove-child");};proto._innerHeightChanged=function(){this._d4Height();this._d2("inner-height");};proto._innerWidthChanged=function(){this._d4Width();this._d1("inner-width");var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderHorizontal("parent");};};proto._childOuterWidthChanged=function(vModifiedChild,_e5){return !this._wasVisible?true:this.getWidth()=="auto"?this._setChildrenDependWidth(vModifiedChild,_e5):this._d1(_e5);};proto._childOuterHeightChanged=function(vModifiedChild,_e5){return !this._wasVisible?true:this.getHeight()=="auto"?this._setChildrenDependHeight(vModifiedChild,_e5):this._d2(_e5);};proto._maxHeight=0;proto._maxActiveHeight=0;proto._d5Height=function(_e4,_e5){var vPane=this.getParent().getPane();if(!vPane.isCreated()){return null;};var ch=this.getChildren();var chl=ch.length;var maxHeight=0;for(var i=0;i<chl;i++){maxHeight=Math.max(ch[i].getPreferredHeight(),maxHeight)};this._maxHeight=maxHeight;return this._maxActiveHeight=maxHeight+this.getActiveTabHeightDiff()+(this.getPlaceOnTop()?vPane.getComputedBorderTop():vPane.getComputedBorderBottom());};proto.dispose=function(){if(this.getDisposed()){return;};if(this._manager){this._manager.dispose();this._manager=null;};this._maxHeight=this._maxActiveHeight=null;QxWidget.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxTabFrame.js b/swat/style/qooxdoo/widgets/widgets/QxTabFrame.js
new file mode 100644 (file)
index 0000000..7b42086
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTabFrame(){QxWidget.call(this);this._bar=new QxTabBar;this._pane=new QxTabPane;this.add(this._pane,this._bar);this._bar.addEventListener("resizeVertical",this._pane._applyState,this._pane);};QxTabFrame.extend(QxWidget,"QxTabFrame");QxTabFrame.addProperty({name:"placeBarOnTop",type:Boolean,defaultValue:true});proto.getPane=function(){return this._pane;};proto.getBar=function(){return this._bar;};proto._modifyPlaceBarOnTop=function(_b1,_b2,_b3,_b4){this._bar.setPlaceOnTop(_b1,_b4);this._pane.setState(_b1?"bottom":"top",_b4);return true;};proto.dispose=function(){if(this.getDisposed()){return true;};if(this._bar){this._bar.removeEventListener("resizeVertical",this._pane._applyState,this._pane);this._bar.dispose();this._bar=null;};if(this._pane){this._pane.dispose();this._pane=null;};return QxWidget.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxTabPage.js b/swat/style/qooxdoo/widgets/widgets/QxTabPage.js
new file mode 100644 (file)
index 0000000..6e3febc
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTabPage(vTab){QxWidget.call(this);this.setLeft(10);this.setRight(10);this.setBottom(10);this.setTop(10);if(isValid(vTab)){this.setTab(vTab);};};QxTabPage.extend(QxWidget,"QxTabPage");QxTabPage.addProperty({name:"tab",type:Object});proto._modifyTab=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setPage(null,_b4);};if(_b1){_b1.setPage(this,_b4);};return true;};proto._shouldBecomeCreated=function(){var vTab=this.getTab();return vTab?vTab.getChecked():false;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxTabPane.js b/swat/style/qooxdoo/widgets/widgets/QxTabPane.js
new file mode 100644 (file)
index 0000000..ac61469
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTabPane(){QxWidget.call(this);this.setState("bottom");this.setLeft(0);this.setRight(0);this.setBorder(QxBorder.presets.outset);};QxTabPane.extend(QxWidget,"QxTabPane");proto._modifyElement=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);return this._applyState();};proto._modifyState=function(_b1,_b2,_b3,_b4){QxWidget.prototype._modifyState.call(this,_b1,_b2,_b3,_b4);return this._applyState();};proto._applyState=function(){var vParent=this.getParent();if(!vParent||!this.isCreated()||!vParent.getBar().isCreated()){return true;};var vBarHeight=vParent.getBar().getPixelOfHeight();switch(this.getState()){case "top":this.setBottom(vBarHeight-this.getComputedBorderBottom());this.setTop(0);break;default:this.setTop(vBarHeight-this.getComputedBorderTop());this.setBottom(0);};return true;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxTerminator.js b/swat/style/qooxdoo/widgets/widgets/QxTerminator.js
new file mode 100644 (file)
index 0000000..0310d21
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTerminator(){QxWidget.call(this);};QxTerminator.extend(QxWidget,"QxTerminator");proto.getChildren=function(){return[];};proto.getChildrenLength=function(){return 0;};proto.hasChildren=proto.contains=function(){return false;};proto.getPreviousSibling=proto.getNextSibling=proto.getFirstChild=proto.getLastChild=function(){return null;};proto.add=proto.addBefore=proto.addAfter=proto.remove=proto.removeAll=proto._getParentNodeForChild=proto._appendElement=function(){throw new Error("Not implemented for "+this.classname);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxTextArea.js b/swat/style/qooxdoo/widgets/widgets/QxTextArea.js
new file mode 100644 (file)
index 0000000..f9e00fe
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTextArea(sText){QxTextField.call(this,sText);this.setOverflow("auto");this.removeHtmlProperty("type");this.setHeight(50);this.setTagName("TEXTAREA");this.setCanSelect(true);};QxTextArea.extend(QxTextField,"QxTextArea");QxTextArea.addProperty({name:"wrap",type:Boolean});proto._modifyWrap=function(_b1,_b2,_b3,_b4){return(new QxClient).isMshtml()?this.setHtmlProperty("wrap",_b1?"soft":"off"):this.setStyleProperty("whiteSpace",_b1?"normal":"nowrap");};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxTextField.js b/swat/style/qooxdoo/widgets/widgets/QxTextField.js
new file mode 100644 (file)
index 0000000..82a0571
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTextField(vText){QxWidget.call(this);if(isValid(vText)){this.setText(vText);};this.setHtmlProperty("type","text");this.setTabIndex(1);this.setCanSelect(true);this.setTagName("INPUT");this.setTextAlign("left");this.addEventListener("blur",this._onblur);this.addEventListener("focus",this._onfocus);};QxTextField.extend(QxWidget,"QxTextField");QxTextField.addProperty({name:"text",type:String,defaultValue:""});QxTextField.addProperty({name:"maxLength",type:Number});QxTextField.addProperty({name:"readOnly",type:Boolean});QxTextField.addProperty({name:"selectionStart",type:Number});QxTextField.addProperty({name:"selectionLength",type:Number});QxTextField.addProperty({name:"selectionText",type:String});proto._clonePropertyIgnoreList+=",selectionStart,selectionLength,selectionText";proto._checkText=function(_b1,_b2,_b3,_b4){return typeof _b1=="string"?_b1:"";};proto._modifyText=function(_b1,_b2,_b3,_b4){return this.setHtmlProperty("value",_b1);};proto._modifyMaxLength=function(_b1,_b2,_b3,_b4){return this.setHtmlProperty("maxLength",_b1);};proto._modifyReadOnly=function(_b1,_b2,_b3,_b4){return this.setHtmlProperty("readOnly",_b1);};if((new QxClient).isGecko()){proto._visualizeFocus=function(){this.setCssClassName(this.getCssClassName().add("QxFocused"," ").add(this.classname+"-Focused"," "));try{this.getElement().readOnly=true;this.getElement().focus();this.getElement().readOnly=this.getReadOnly();}catch(ex){};return true;};proto._addInlineEvents=function(el){el.addEventListener("input",QxWidget.__oninlineevent,false);return QxWidget.prototype._addInlineEvents.call(this,el);};proto._removeInlineEvents=function(el){el.removeEventListener("input",QxWidget.__oninlineevent,false);return QxWidget.prototype._removeInlineEvents.call(this,el);};};proto.getPreferredWidth=function(){var el=this.getElement();if(el){var w=el.style.width;el.style.width="";var o=el.offsetWidth;el.style.width=isValid(w)?w:"";return o;};return 0;};proto.getPreferredHeight=function(){var el=this.getElement();if(el){var h=el.style.height;el.style.height="";var o=el.offsetHeight;el.style.height=isValid(h)?h:"";return o;};return 0;};proto._textOnFocus=null;proto._ontabfocus=function(e){this.selectAll();};proto._onfocus=function(e){this._textOnFocus=this.getElement().value;};proto._onblur=function(e){if(this._textOnFocus!=this.getElement().value){this.setText(this.getElement().value);};this.setSelectionLength(0);};proto._oninlineevent=function(e){if(!e){e=this.getTopLevelWidget().getDocumentElement().parentWindow.event;};switch(e.type){case "input":if(this.hasEventListeners("input")){this.dispatchEvent(new QxDataEvent("input",this.getElement().value));};return true;case "propertychange":if(e.propertyName=="value"){if(this.hasEventListeners("input")){this.dispatchEvent(new QxDataEvent("input",this.getElement().value));};return true;};break;};return QxWidget.prototype._oninlineevent.call(this,e);};if((new QxClient).isMshtml()){proto._getRange=function(){this._visualPropertyCheck();return this.getElement().createTextRange();};proto._getSelectionRange=function(){this._visualPropertyCheck();return this.getTopLevelWidget().getDocumentElement().selection.createRange();};proto.setSelectionStart=function(vStart){this._visualPropertyCheck();var vText=this.getElement().value;var i=0;while(i<vStart){i=vText.indexOf("\r\n",i);if(i==-1){break;};vStart--;i++;};var vRange=this._getRange();vRange.collapse();vRange.move("character",vStart);vRange.select();};proto.getSelectionStart=function(){this._visualPropertyCheck();var vSelectionRange=this._getSelectionRange();if(!this.getElement().contains(vSelectionRange.parentElement())){return-1;};var vRange=this._getRange();vRange.setEndPoint("EndToStart",vSelectionRange);return vRange.text.length;};proto.setSelectionLength=function(vLength){this._visualPropertyCheck();var vSelectionRange=this._getSelectionRange();if(!this.getElement().contains(vSelectionRange.parentElement())){return;};vSelectionRange.collapse();vSelectionRange.moveEnd("character",vLength);vSelectionRange.select();};proto.getSelectionLength=function(){this._visualPropertyCheck();var vSelectionRange=this._getSelectionRange();if(!this.getElement().contains(vSelectionRange.parentElement())){return 0;};return vSelectionRange.text.length;};proto.setSelectionText=function(vText){this._visualPropertyCheck();var vStart=this.getSelectionStart();var vSelectionRange=this._getSelectionRange();if(!this.getElement().contains(vSelectionRange.parentElement())){return;};vSelectionRange.text=vText;this.setText(this.getElement().value);this.setSelectionStart(vStart);this.setSelectionLength(vText.length);return true;};proto.getSelectionText=function(){this._visualPropertyCheck();var vSelectionRange=this._getSelectionRange();if(!this.getElement().contains(vSelectionRange.parentElement())){return "";};return vSelectionRange.text;};proto.selectAll=function(){this._visualPropertyCheck();this.setSelectionStart(0);this.setSelectionLength(this.getText().length);this.getElement().select();};proto.selectFromTo=function(vStart,vEnd){this._visualPropertyCheck();this.setSelectionStart(vStart);this.setSelectionLength(vEnd-vStart);};}else {proto.setSelectionStart=function(vStart){this._visualPropertyCheck();this.getElement().selectionStart=vStart;};proto.getSelectionStart=function(){this._visualPropertyCheck();return this.getElement().selectionStart;};proto.setSelectionLength=function(vLength){this._visualPropertyCheck();var el=this.getElement();el.selectionEnd=el.selectionStart+vLength;};proto.getSelectionLength=function(){this._visualPropertyCheck();var el=this.getElement();return el.selectionEnd-el.selectionStart;};proto.setSelectionText=function(vText){this._visualPropertyCheck();var el=this.getElement();var vOldText=el.value;var vStart=el.selectionStart;var vOldTextBefore=vOldText.substr(0,vStart);var vOldTextAfter=vOldText.substr(el.selectionEnd);var vValue=el.value=vOldTextBefore+vText+vOldTextAfter;el.selectionStart=vStart;el.selectionEnd=vStart+vText.length;this.setText(vValue);return true;};proto.getSelectionText=function(){this._visualPropertyCheck();return this.getElement().value.substr(this.getSelectionStart(),this.getSelectionLength());};proto.selectAll=function(){this._visualPropertyCheck();this.getElement().select();};proto.selectFromTo=function(vStart,vEnd){this._visualPropertyCheck();var el=this.getElement();el.selectionStart=vStart;el.selectionEnd=vEnd;};};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("blur",this._onblur);this.removeEventListener("focus",this._onfocus);QxWidget.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxToolBar.js b/swat/style/qooxdoo/widgets/widgets/QxToolBar.js
new file mode 100644 (file)
index 0000000..364ca3b
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxToolBar(){QxWidget.call(this);this.setHeight("auto");};QxToolBar.extend(QxWidget,"QxToolBar");
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxToolBarButton.js b/swat/style/qooxdoo/widgets/widgets/QxToolBarButton.js
new file mode 100644 (file)
index 0000000..2e7aef7
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxToolBarButton(vText,vIcon,vIconWidth,vIconHeight){QxAtom.call(this,vText,vIcon,vIconWidth,vIconHeight);this.setHeight(null);this.setTop(0);this.setBottom(0);this.addEventListener("mouseover",this._onmouseover);this.addEventListener("mouseout",this._onmouseout);this.addEventListener("mousedown",this._g1);this.addEventListener("mouseup",this._g2);};QxToolBarButton.extend(QxAtom,"QxToolBarButton");proto._modifyEnabled=function(_b1,_b2,_b3,_b4){QxAtom.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);this.setState(null,_b4);return true;};proto._onmouseover=function(e){this.setState("hover");};proto._onmouseout=function(e){this.setState(null);};proto._g1=function(e){if(e.isNotLeftButton()){return;};this.setState("pressed");};proto._g2=function(e){if(e.isNotLeftButton()){return;};this.setState("hover");this.execute();};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxToolBarCheckBox.js b/swat/style/qooxdoo/widgets/widgets/QxToolBarCheckBox.js
new file mode 100644 (file)
index 0000000..82c1142
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxToolBarCheckBox(vText,vIcon,vChecked){QxToolBarButton.call(this,vText,vIcon);if(isValid(vChecked)){this.setChecked(vChecked);};};QxToolBarCheckBox.extend(QxToolBarButton,"QxToolBarCheckBox");QxToolBarCheckBox.addProperty({name:"checked",type:Boolean,defaultValue:false});proto._g2=function(e){if(e.isNotLeftButton()){return;};this.setChecked(!this.getChecked());};proto._onmouseover=function(e){this.setState(this.getChecked()?"pressed":"hover");};proto._onmouseout=function(e){this.setState(this.getChecked()?"checked":null);};proto._modifyChecked=function(_b1,_b2,_b3,_b4){switch(this.getState()){case null:this.setState(_b1?"checked":null,_b4);break;case "checked":this.setState(_b1?"pressed":null,_b4);break;case "pressed":if(!_b1){this.setState("hover");};break;case "hover":if(_b1){this.setState("pressed",_b4);};};return true;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxToolBarMenuButton.js b/swat/style/qooxdoo/widgets/widgets/QxToolBarMenuButton.js
new file mode 100644 (file)
index 0000000..17d3441
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxToolBarMenuButton(vText,vIcon,vIconWidth,vIconHeight,vMenu){QxToolBarButton.call(this,vText,vIcon,vIconWidth,vIconHeight);if(isValid(vMenu)){this.setMenu(vMenu);};};QxToolBarMenuButton.extend(QxToolBarButton,"QxToolBarMenuButton");QxToolBarMenuButton.addProperty({name:"menu",type:Object});proto._modifyMenu=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setOpener(null,_b4);};if(_b1){_b1.setOpener(this,_b4);};return true;};proto._modifyState=function(_b1,_b2,_b3,_b4){var vMenu=this.getMenu();if(vMenu){if(_b1=="pressed"){vMenu.setLeft(this.getComputedPageBoxLeft());vMenu.setTop(this.getComputedPageBoxTop()+this.getComputedBoxHeight());vMenu.setVisible(true,_b4);}else {vMenu.setVisible(false,_b4);};};return QxWidget.prototype._modifyState.call(this,_b1,_b2,_b3,_b4);};proto._onmouseover=function(e){var vMenu=this.getMenu();if(vMenu==null||!vMenu.getVisible()){this.setState("hover");};};proto._onmouseout=function(e){if(this.getState()=="hover"){this.setState(null);};};proto._g1=function(e){if(e.isNotLeftButton()){return;};(new QxMenuManager).update();this.setState(this.getState()=="pressed"?"hover":"pressed");e.setPropagationStopped(true);};proto._g2=function(e){};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxToolBarPart.js b/swat/style/qooxdoo/widgets/widgets/QxToolBarPart.js
new file mode 100644 (file)
index 0000000..9202865
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxToolBarPart(){QxWidget.call(this);this.setTop(0);this.setBottom(0);this._handle=new QxToolBarPartHandle;this.add(this._handle);};QxToolBarPart.extend(QxWidget,"QxToolBarPart");proto.dispose=function(){if(this.getDisposed()){return;};QxWidget.prototype.dispose.call(this);if(this._handle){this._handle.dispose();this._handle=null;};return true;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxToolBarPartHandle.js b/swat/style/qooxdoo/widgets/widgets/QxToolBarPartHandle.js
new file mode 100644 (file)
index 0000000..4af974a
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxToolBarPartHandle(){QxWidget.call(this);this.setTop(0);this.setBottom(0);this.setLeft(0);this.setWidth(10);this._line=new QxWidget;with(this._line){setCssClassName("QxToolBarPartHandleLine");setTop(2);setLeft(3);setBottom(2);setWidth(4);};this.add(this._line);};QxToolBarPartHandle.extend(QxWidget,"QxToolBarPartHandle");
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxToolBarRadioButton.js b/swat/style/qooxdoo/widgets/widgets/QxToolBarRadioButton.js
new file mode 100644 (file)
index 0000000..2516e10
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxToolBarRadioButton(vText,vIcon,vChecked){QxToolBarCheckBox.call(this,vText,vIcon,vChecked);};QxToolBarRadioButton.extend(QxToolBarCheckBox,"QxToolBarRadioButton");QxToolBarRadioButton.addProperty({name:"group"});QxToolBarRadioButton.addProperty({name:"name",type:String});QxToolBarRadioButton.addProperty({name:"disableUncheck",type:Boolean,defaultValue:false});proto._modifyChecked=function(_b1,_b2,_b3,_b4){QxToolBarCheckBox.prototype._modifyChecked.call(this,_b1,_b2,_b3,_b4);if(this.getGroup()){this.getGroup().setSelected(this,_b4);};return true;};proto._modifyGroup=function(_b1,_b2,_b3,_b4){if(_b2){_b2.remove(this,_b4);};if(_b1){_b1.add(this,_b4);};return true;};proto._g2=function(e){if(e.isNotLeftButton()){return;};this.setChecked(this.getDisableUncheck()||!this.getChecked());};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxToolBarSeparator.js b/swat/style/qooxdoo/widgets/widgets/QxToolBarSeparator.js
new file mode 100644 (file)
index 0000000..7147477
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxToolBarSeparator(){QxWidget.call(this);this.setWidth(8);this.setTop(0);this.setBottom(0);this._line=new QxWidget;with(this._line){setCssClassName("QxToolBarSeparatorLine");setTop(2);setLeft(3);setWidth(2);setBottom(2);};this.add(this._line);};QxToolBarSeparator.extend(QxWidget,"QxToolBarSeparator");
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxToolTip.js b/swat/style/qooxdoo/widgets/widgets/QxToolTip.js
new file mode 100644 (file)
index 0000000..1317509
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxToolTip(text,icon){QxPopup.call(this,text,icon);this._showTimer=new QxTimer(this.getShowInterval());this._showTimer.addEventListener("interval",this._onshowtimer,this);this._hideTimer=new QxTimer(this.getHideInterval());this._hideTimer.addEventListener("interval",this._onhidetimer,this);this.addEventListener("mouseover",this._onmouseover);this.addEventListener("mouseout",this._onmouseover);};QxToolTip.extend(QxPopup,"QxToolTip");QxToolTip.addProperty({name:"hideOnHover",type:Boolean,defaultValue:true});QxToolTip.addProperty({name:"mousePointerOffsetLeft",type:Number,defaultValue:4});QxToolTip.addProperty({name:"mousePointerOffsetTop",type:Number,defaultValue:22});QxToolTip.addProperty({name:"mousePointerOffsetRight",type:Number,defaultValue:0});QxToolTip.addProperty({name:"mousePointerOffsetBottom",type:Number,defaultValue:-2});QxToolTip.addProperty({name:"showInterval",type:Number,defaultValue:1000});QxToolTip.addProperty({name:"hideInterval",type:Number,defaultValue:4000});QxToolTip.addProperty({name:"axisToleranceX",type:Number,defaultValue:0.7});QxToolTip.addProperty({name:"axisToleranceY",type:Number,defaultValue:0.7});QxToolTip.addProperty({name:"boundToWidget"});proto._toolTipManager=new QxToolTipManager();proto._minZindex=1e7;proto._modifyHideInterval=function(_b1,_b2,_b3,_b4){this._hideTimer.setInterval(nHideInterval);return true;};proto._modifyShowInterval=function(_b1,_b2,_b3,_b4){this._showTimer.setInterval(nShowInterval);return true;};proto._modifyBoundToWidget=function(_b1,_b2,_b3,_b4){if(_b1){this.setParent(_b1.getTopLevelWidget());}else if(_b2){this.setParent(null);};return true;};proto._startShowTimer=function(){if(!this._showTimer.getEnabled()){this._showTimer.start();};};proto._startHideTimer=function(){if(!this._hideTimer.getEnabled()){this._hideTimer.start();};};proto._stopShowTimer=function(){if(this._showTimer.getEnabled()){this._showTimer.stop();};};proto._stopHideTimer=function(){if(this._hideTimer.getEnabled()){this._hideTimer.stop();};};proto._modifyVisible=function(_b1,_b2,_b3,_b4){if(_b1){this._stopShowTimer();this._startHideTimer();}else {this._stopHideTimer();};return QxPopup.prototype._modifyVisible.call(this,_b1,_b2,_b3,_b4);};proto._onmouseover=function(e){if(this.getHideOnHover()){this.setVisible(false);};};proto._onshowtimer=function(e){var ex=QxMouseEvent.getPageX();var ey=QxMouseEvent.getPageY();if(ex<(QxDOM.getWindowInnerWidth()*this.getAxisToleranceX())){this.setRight(null);this.setLeft(ex+this.getMousePointerOffsetLeft());}else {this.setLeft(null);this.setRight(QxDOM.getWindowInnerWidth()-ex-this.getMousePointerOffsetRight());};if(ey<(QxDOM.getWindowInnerHeight()*this.getAxisToleranceY())){this.setBottom(null);this.setTop(ey+this.getMousePointerOffsetTop());}else {this.setTop(null);this.setBottom(QxDOM.getWindowInnerHeight()-ey-this.getMousePointerOffsetBottom());};this.setVisible(true);return true;};proto._onhidetimer=function(e){return this.setVisible(false);};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("mouseover",this._onmouseover);this.removeEventListener("mouseout",this._onmouseover);if(this._showTimer){this._showTimer.removeEventListener("interval",this._onshowtimer,this);this._showTimer.dispose();this._showTimer=null;};if(this._hideTimer){this._hideTimer.removeEventListener("interval",this._onhidetimer,this);this._hideTimer.dispose();this._hideTimer=null;};return QxPopup.prototype.dispose.call(this);};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxTree.js b/swat/style/qooxdoo/widgets/widgets/QxTree.js
new file mode 100644 (file)
index 0000000..1fdd24e
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTree(vLabel,vIconOpenURI,vIconCloseURI){if(isValid(vLabel)){QxTreeFolder.call(this,vLabel,vIconOpenURI,vIconCloseURI);}else{QxTreeElement.call(this);};this.setTagName("div");this.setLevel(0);this.setParentTree(this);this.setTabIndex(1);this.setOpen(true);this.addEventListener("keydown",this._g4);};QxTree.extend(QxTreeFolder,"QxTree");QxTree.addProperty({name:"activeElement"});QxTree.addProperty({name:"useDoubleClick",type:Boolean,defaultValue:false,getAlias:"useDoubleClick"});QxTree.addProperty({name:"useHoverEffects",type:Boolean,defaultValue:true,getAlias:"useHoverEffects"});QxTree.addProperty({name:"useTreeLines",type:Boolean,defaultValue:true,getAlias:"useTreeLines"});QxTree.isTreeFolder=function(vObject){return vObject&&vObject instanceof QxTreeFolder&&!(vObject instanceof QxTree);};QxTree.isOpenTreeFolder=function(vObject){return vObject instanceof QxTreeFolder&&vObject.getOpen()&&vObject.getChildrenLength()>0;};proto._modifyParent=function(_b1,_b2,_b3,_b4){return QxWidget.prototype._modifyParent.call(this,_b1,_b2,_b3,_b4);};proto._modifyElement=function(_b1,_b2,_b3,_b4){QxTreeFolder.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);this._indentCell.style.display=this._navigationCell.style.display="none";this._renderImplLabel(this.getLabel());this._renderImplIcon();return true;};proto._modifyActiveElement=function(_b1,_b2,_b3,_b4){if(_b2){_b2.setActive(false,_b4);};if(_b1){_b1.setActive(true,_b4);};return true;};proto._modifyUseTreeLines=function(_b1,_b2,_b3,_b4){if(this.isCreated()){this._updateTreeLines();};return true;};proto._shouldBecomeCreated=function(){return true;};proto._g4=function(e){e.preventDefault();var aE=this.getActiveElement();switch(e.getKeyCode()){case QxKeyEvent.keys.left:if(QxTree.isTreeFolder(aE)){if(!aE.getOpen()){var vParent=aE.getParent();if(vParent instanceof QxTreeFolder){if(!(vParent instanceof QxTree)){vParent.setOpen(false);};this.setActiveElement(vParent);};}else {return aE.setOpen(false);};}else if(aE instanceof QxTreeFile){var vParent=aE.getParent();if(vParent instanceof QxTreeFolder){if(!(vParent instanceof QxTree)){vParent.setOpen(false);};this.setActiveElement(vParent);};};break;case QxKeyEvent.keys.right:if(QxTree.isTreeFolder(aE)){return aE.setOpen(true);};break;case QxKeyEvent.keys.enter:if(QxTree.isTreeFolder(aE)){return aE.setOpen(!aE.getOpen());};break;case QxKeyEvent.keys.up:if(aE){if(aE.isFirstChild()){if(aE.getParent()instanceof QxTreeFolder){this.setActiveElement(aE.getParent());}else {this.setActiveElement(this.getLastTreeChild());};}else {var vPrev=aE.getPreviousSibling();while(vPrev instanceof QxTreeElement){if(QxTree.isOpenTreeFolder(vPrev)){vPrev=vPrev.getLastChild();}else {break;};};this.setActiveElement(vPrev);};}else {var vLast=this.getLastTreeChild();if(vLast){this.setActiveElement(vLast);};};break;case QxKeyEvent.keys.down:if(aE){if(QxTree.isOpenTreeFolder(aE)){this.setActiveElement(aE.getFirstChild());}else if(aE.isLastChild()){var vCurrent=aE;while(vCurrent.isLastChild()){vCurrent=vCurrent.getParent();if(!vCurrent instanceof QxTreeElement){return this.setActiveElement(this.getFirstTreeChild());};};if(vCurrent instanceof QxTreeElement&&vCurrent.getNextSibling()&&vCurrent.getNextSibling()instanceof QxTreeElement){return this.setActiveElement(vCurrent.getNextSibling());};this.setActiveElement(this.getFirstTreeChild());}else {this.setActiveElement(aE.getNextSibling());};}else {var vFirst=this.getFirstTreeChild();if(vFirst){this.setActiveElement(vFirst);};};break;};(new QxApplication).setActiveWidget(this);};proto.getLastTreeChild=function(){var vLast=this;while(vLast instanceof QxTreeElement){if(!(vLast instanceof QxTreeFolder)||!vLast.getOpen()){return vLast;};vLast=vLast.getLastChild();};};proto.getFirstTreeChild=function(){return this;};proto._renderImplNavigation=function(){return true;};proto._renderImplIndent=function(){return true;};proto._visualizeFocus=function(){return true;};proto._visualizeBlur=function(){return true;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxTreeElement.js b/swat/style/qooxdoo/widgets/widgets/QxTreeElement.js
new file mode 100644 (file)
index 0000000..a73882f
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTreeElement(vLabel){QxWidget.call(this);if(isValid(vLabel)){this.setLabel(vLabel);};this.setTagName("li");var im=new QxImageManager();this._navigationLineURI = im.buildURI("widgets/tree/line.gif");this._navigationCrossURI = im.buildURI("widgets/tree/cross.gif");this._navigationCrossPlusURI = im.buildURI("widgets/tree/cross_plus.gif");this._navigationCrossMinusURI = im.buildURI("widgets/tree/cross_minus.gif");this._navigationEndURI = im.buildURI("widgets/tree/end.gif");this._navigationEndPlusURI = im.buildURI("widgets/tree/end_plus.gif");this._navigationEndMinusURI = im.buildURI("widgets/tree/end_minus.gif");this._navigationSimplePlusURI = im.buildURI("widgets/tree/plus.gif");this._navigationSimpleMinusURI = im.buildURI("widgets/tree/minus.gif");this.addEventListener("click",this._g3);this.addEventListener("dblclick",this._ondblclick);this.addEventListener("mousedown",this._g1);this.addEventListener("mouseover",this._onmouseover);this.addEventListener("mouseout",this._onmouseout);this.addEventListener("mousemove",this._onmouseover);};QxTreeElement.extend(QxWidget,"QxTreeElement");QxTreeElement._indentCache=[];QxTreeElement.addProperty({name:"label",type:String});QxTreeElement.addProperty({name:"level",type:Number,defaultValue:1});QxTreeElement.addProperty({name:"active",type:Boolean,defaultValue:false});QxTreeElement.addProperty({name:"parentTree"});proto._obtainLastChildState=function(){this._renderImplNavigation();};proto._loseLastChildState=function(){this._renderImplNavigation();};proto.getOpen=function(){return false;};proto._shouldBecomeCreated=function(){return this.getParent().getOpen();};proto._modifyParent=function(_b1,_b2,_b3,_b4){if(_b1){this.setParentTree(_b1.getParentTree(),_b4);this.setLevel(_b1.getLevel()+1);}else {this.setParentTree(null,_b4);};QxWidget.prototype._modifyParent.call(this,_b1,_b2,_b3,_b4);if(_b1&&this.isCreated()){this._renderImplIndent();this._renderImplNavigation();};return true;};proto._modifyElement=function(_b1,_b2,_b3,_b4){this._table=QxTreeElement._h3.cloneNode(true);this._tableRow=this._table.firstChild.firstChild;this._indentCell=this._tableRow.childNodes[0];this._navigationCell=this._tableRow.childNodes[1];this._navigationImage=this._navigationCell.firstChild;this._iconCell=this._tableRow.childNodes[2];this._iconImage=this._iconCell.firstChild;this._labelCell=this._tableRow.childNodes[3];this._renderImplIndent();this._renderImplNavigation();this._renderImplIcon();this._renderImplLabel();_b1.appendChild(this._table);QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);return true;};proto._modifyParentTree=function(_b1,_b2,_b3,_b4){if(this.isCreated()&&!_b2&&_b1){this._renderImplNavigation();this._renderImplIndent();};return true;};proto._modifyActive=function(_b1,_b2,_b3,_b4){var p=this.getParentTree();var c="QxTreeElementLabelCellSelected";if(_b1){QxDOM.addClass(this._labelCell,c);if(p){p.setActiveElement(this,_b4);};}else {QxDOM.removeClass(this._labelCell,c);if(p){p.setActiveElement(null,_b4);};};return true;};proto._modifyLabel=function(_b1,_b2,_b3,_b4){return this._renderImplLabel();};proto._renderImplLabel=function(){if(!this.isCreated()){return true;};var vLabel=this.getLabel();if(vLabel){this._labelCell.firstChild.nodeValue=vLabel;this._table.style.display="block";}else {this._table.style.display="none";};return true;};proto._renderImplIcon=function(){if(!this.isCreated()){return true;};this._iconImage.src=(new QxImageManager).getBlank();return true;};proto._renderImplNavigation=function(){if(!this.isCreated()){return true;};var vParentTree=this.getParentTree();if(!vParentTree){return true;};var newSrc;if(!vParentTree.useTreeLines()){newSrc=(new QxImageManager).getBlank();}else if(this.isLastChild()){newSrc=this._navigationEndURI;}else {newSrc=this._navigationCrossURI;};if(newSrc!=this._navigationImage.src){this._navigationImage.src=newSrc;};return true;};proto._modifyLevel=function(_b1,_b2,_b3,_b4){return this._renderImplIndent();};proto._renderImplIndent=function(){if(!this.isCreated()){return true;};var vParentTree=this.getParentTree();if(!vParentTree){return true;};var vLevel=this.getLevel();if(vLevel==0){return true;};var vParent=this.getParent();if(!vParent){return true;};var chl=this._indentCell.childNodes.length;vLevel--;if(vLevel>chl){var diff=vLevel-chl;var io;do{if(QxTreeElement._indentCache.length>0){this._indentCell.appendChild(QxTreeElement._indentCache.shift());}else {io=new Image();io.src=(new QxImageManager).getBlank();this._indentCell.appendChild(io);};}while(--diff);}else if(vLevel<chl){var diff=chl-vLevel;do{QxTreeElement._indentCache.push(this._indentCell.removeChild(this._indentCell.lastChild));}while(--diff);};var chl=this._indentCell.childNodes.length;if(vLevel<1){return true;};var chI,nI;var vNoLines=!vParentTree.useTreeLines();do{chI=this._indentCell.childNodes[vLevel-1];if(vNoLines||vParent.isLastChild()){nI=(new QxImageManager).getBlank();}else {nI=this._navigationLineURI;};if(nI!=chI.src){chI.src=nI;};vParent=vParent.getParent();if(!vParent){break;};}while(--vLevel);return true;};proto._g1=function(e){switch(e.getDomTargetByTagName("TD",this.getElement())){case this._indentCell:return this._g1Indent(e);case this._navigationCell:return this._g1Navigation(e);case this._iconCell:return this._g1Icon(e);case this._labelCell:return this._g1Label(e);};};proto._g1Indent=function(e){e.preventDefault();};proto._g1Navigation=function(e){e.preventDefault();};proto._g1Icon=function(e){this.setActive(true);e.preventDefault();};proto._g1Label=function(e){this.setActive(true);};proto._g3=function(e){switch(e.getDomTargetByTagName("TD",this.getElement())){case this._indentCell:return this._g3Indent(e);case this._navigationCell:return this._g3Navigation(e);case this._iconCell:return this._g3Icon(e);case this._labelCell:return this._g3Label(e);};};proto._g3Indent=proto._g3Navigation=function(e){};proto._g3Icon=proto._g3Label=function(e){if(this.getParentTree().useDoubleClick()){return;};this.setActive(true);};proto._ondblclick=function(e){var pt=this.getParentTree();if(pt&&!pt.useDoubleClick()){return;};switch(e.getDomTargetByTagName("TD",this.getElement())){case this._indentCell:return this._ondblclickIndent(e);case this._navigationCell:return this._ondblclickNavigation(e);case this._iconCell:return this._ondblclickIcon(e);case this._labelCell:return this._ondblclickLabel(e);};};proto._ondblclickIndent=proto._ondblclickNavigation=proto._ondblclickIcon=proto._ondblclickLabel=function(e){};proto._hoverClass="QxTreeElementLabelCellHover";proto._onmouseover=function(e){var pt=this.getParentTree();if(pt&&pt.useHoverEffects()){switch(e.getDomTargetByTagName("TD")){case this._labelCell:case this._iconCell:QxDOM.addClass(this._labelCell,this._hoverClass);break;default:QxDOM.removeClass(this._labelCell,this._hoverClass);};e.setPropagationStopped(true);};};proto._onmouseout=function(e){var pt=this.getParentTree();if(pt&&pt.useHoverEffects()){QxDOM.removeClass(this._labelCell,this._hoverClass);e.setPropagationStopped(true);};};proto._removeHover=function(){if(this.isCreated()){QxDOM.removeClass(this._labelCell,this._hoverClass);};};proto.dispose=function(){if(this._disposed){return;};QxWidget.prototype.dispose.call(this);this.removeEventListener("click",this._g3);this.removeEventListener("dblclick",this._ondblclick);};QxTreeElement.init=function(){var lt,lb,lr;var lt1,lt2,lt3,lt4;var li2;lt=QxTreeElement._h3=document.createElement("table");lt.border=0;lt.cellSpacing=0;lt.cellPadding=0;lb=document.createElement("tbody");lt.appendChild(lb);lr=document.createElement("tr");lb.appendChild(lr);lt1=document.createElement("td");lr.appendChild(lt1);lt1.className="QxTreeElementIndentCell";lt2=document.createElement("td");lr.appendChild(lt2);lt2.className="QxTreeElementNavigationCell";li2=new Image();li2.src=(new QxImageManager).getBlank();li2.height=16;li2.width=19;lt2.appendChild(li2);lt3=document.createElement("td");lr.appendChild(lt3);lt3.className="QxTreeElementIconCell";li3=new Image();li3.src=(new QxImageManager).getBlank();li3.height=16;li3.width=16;lt3.appendChild(li3);lt4=document.createElement("td");lr.appendChild(lt4);lt4.className="QxTreeElementLabelCell";lt4.appendChild(document.createTextNode("-"));if((new QxClient).isMshtml()){lt.unselectable=lb.unselectable=lr.unselectable=lt1.unselectable=lt2.unselectable=lt3.unselectable=lt4.unselectable=li2.unselectable="on";};};QxTreeElement.init();
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxTreeFile.js b/swat/style/qooxdoo/widgets/widgets/QxTreeFile.js
new file mode 100644 (file)
index 0000000..2ff2899
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTreeFile(vLabel,vIconURI){if(isValid(vIconURI)){this.setIconURI(vIconURI);};QxTreeElement.call(this,vLabel);};QxTreeFile.extend(QxTreeElement,"QxTreeFile");QxTreeFile.addProperty({ name : "iconURI", type : String, defaultValue : "icons/16/doc.png" });proto._renderImplIcon=function(){if(!this.isCreated()){return true;};this._iconImage.src=(new QxImageManager).buildURI(this.getIconURI());return true;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxTreeFolder.js b/swat/style/qooxdoo/widgets/widgets/QxTreeFolder.js
new file mode 100644 (file)
index 0000000..7bdba69
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTreeFolder(vLabel,vIconOpenURI,vIconCloseURI){if(isValid(vIconOpenURI)){this.setIconOpenURI(vIconOpenURI);};if(isValid(vIconCloseURI)){this.setIconCloseURI(vIconCloseURI);};QxTreeElement.call(this,vLabel,this._closeIcon);};QxTreeFolder.extend(QxTreeElement,"QxTreeFolder");QxTreeFolder.addProperty({name:"open",type:Boolean,defaultValue:false});QxTreeFolder.addProperty({ name : "iconOpenURI", type : String, defaultValue : "icons/16/folder_open.png" });QxTreeFolder.addProperty({ name : "iconCloseURI", type : String, defaultValue : "icons/16/folder.png" });proto._obtainLastChildState=function(){this._renderImplNavigation();this._renderImplIndent();};proto._loseLastChildState=function(){if(this.getParent()){this._renderImplNavigation();this._renderImplIndent();};};proto._obtainFirstChild=function(){this._renderImplNavigation();};proto._loseAllChilds=function(){switch(this.getOpen()){case true:this.setOpen(false);break;case false:this._renderImplNavigation();break;};};proto._modifyParentTree=function(_b1,_b2,_b3,_b4){QxTreeElement.prototype._modifyParentTree.call(this,_b1,_b2,_b3,_b4);var ch=this.getChildren();var chl=ch.length;for(var i=0;i<chl;i++){ch[i].setParentTree(_b1,_b4);};return true;};proto._modifyLevel=function(_b1,_b2,_b3,_b4){var ch=this.getChildren();var chl=ch.length;for(var i=0;i<chl;i++){ch[i].setLevel(_b1+1,_b4);};return true;};proto._modifyElement=function(_b1,_b2,_b3,_b4){this._subList=document.createElement("ul");QxTreeElement.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);_b1.appendChild(this._subList);return true;};proto._getParentNodeForChild=function(oo){if(oo!=null&&oo instanceof QxTreeElement){return this._subList;};return QxTreeElement.prototype._getParentNodeForChild.call(this,oo);};proto._wasOpen=false;proto._invalidIndent=false;proto._modifyOpen=function(_b1,_b2,_b3,_b4){if(!this.isCreated()){return true;};if(_b1){this._subList.style.display="block";if(this._invalidChildrenIndent){this._renderImplIndent();this._invalidChildrenIndent=false;};if(this._invalidChildrenLines){this._updateTreeLines();};this._createChildren();this._renderImplNavigation();this._renderImplIcon();this._wasOpen=true;}else {this._subList.style.display="none";this._renderImplNavigation();this._renderImplIcon();this._removeHover();};return true;};proto._removeHover=function(){var ch=this.getChildren();var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._removeHover();};QxTreeElement.prototype._removeHover.call(this);};proto._invalidChildrenLines=false;proto._updateTreeLines=function(){var ch=this.getChildren();var chl=ch.length;var chc;for(var i=0;i<chl;i++){chc=ch[i];chc._renderImplNavigation();chc._renderImplIndent();if(chc instanceof QxTreeFolder&&chc.isCreated()){if(chc.getOpen()){chc._updateTreeLines();}else {chc._invalidChildrenLines=true;};}else {chc._invalidChildrenLines=false;};};this._invalidChildrenLines=false;};proto._renderImplNavigation=function(){if(!this.isCreated()){return true;};var vParentTree=this.getParentTree();if(!vParentTree){return true;};var newSrc;if(!vParentTree.useTreeLines()){if(!this.hasChildren()){newSrc=(new QxImageManager).getBlank();}else if(this.getOpen()){newSrc=this._navigationSimpleMinusURI;}else {newSrc=this._navigationSimplePlusURI;};}else if(this.isLastChild()){if(!this.hasChildren()){newSrc=this._navigationEndURI;}else if(this.getOpen()){newSrc=this._navigationEndMinusURI;}else {newSrc=this._navigationEndPlusURI;};}else {if(!this.hasChildren()){newSrc=this._navigationCrossURI;}else if(this.getOpen()){newSrc=this._navigationCrossMinusURI;}else {newSrc=this._navigationCrossPlusURI;};};if(newSrc!=this._navigationImage.src){this._navigationImage.src=newSrc;};return true;};proto._renderImplIcon=function(){if(!this.isCreated()){return true;};var newSrc=(new QxImageManager).buildURI(this.getActive()?this.getIconOpenURI():this.getIconCloseURI());if(newSrc!=this._iconImage.src){this._iconImage.src=newSrc;};return true;};proto._modifyActive=function(_b1,_b2,_b3,_b4){QxTreeElement.prototype._modifyActive.call(this,_b1,_b2,_b3,_b4);return this._renderImplIcon();};proto._renderImplIndent=function(){if(!this.isCreated()){return true;};QxTreeElement.prototype._renderImplIndent.call(this);if(!this.hasChildren()){}else if(this.getOpen()){this._renderImplChildrenIndent();}else if(this._wasOpen){this._invalidChildrenIndent=true;};return true;};proto._renderImplChildrenIndent=function(){var ch=this.getChildren();var chl=ch.length-1;if(chl>-1){do{ch[chl]._renderImplIndent();}while(chl--);};this._invalidChildrenIndent=false;};proto._shouldBecomeChilds=function(){return this.getOpen();};proto._g3Navigation=function(e){if(this.hasChildren()){this.setOpen(!this.getOpen());};};proto._g3Label=function(e){QxTreeElement.prototype._g3Label.call(this,e);if(this.getParentTree().useDoubleClick()||this.getChildrenLength()==0){this.setActive(true);}else {this.setOpen(true);};};proto._g3Icon=function(e){QxTreeElement.prototype._g3Icon.call(this,e);if(this.getParentTree().useDoubleClick()||this.getChildrenLength()==0){this.setActive(true);}else {this.setOpen(true);};};proto._ondblclickLabel=function(e){QxTreeElement.prototype._ondblclickLabel.call(this,e);this.setOpen(!this.getOpen());};proto._ondblclickIcon=function(e){QxTreeElement.prototype._ondblclickIcon.call(this,e);this.setOpen(!this.getOpen());};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxVerticalBoxLayout.js b/swat/style/qooxdoo/widgets/widgets/QxVerticalBoxLayout.js
new file mode 100644 (file)
index 0000000..c74d6bf
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxVerticalBoxLayout(vBlockAlign,vChildrenAlign){QxBoxLayout.call(this,"vertical",vBlockAlign,vChildrenAlign);};QxVerticalBoxLayout.extend(QxBoxLayout,"QxVerticalBoxLayout");proto._checkOrientation=function(_b1,_b2,propData,_b4){if(_b1!="vertical"){throw new Error("Orientation is not configurable in QxVerticalBoxLayout!");};return _b1;};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxWidget.js b/swat/style/qooxdoo/widgets/widgets/QxWidget.js
new file mode 100644 (file)
index 0000000..a07389c
--- /dev/null
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxWidget(){QxTarget.call(this);this._a2=[];this._htmlProperties=copyCreateHash(this._htmlProperties);this._htmlProperties.id="QxWidget-"+(++QxWidget._count);this._htmlProperties.className=this.classname;if(isInvalid(this._htmlProperties.hideFocus)){this._htmlProperties.hideFocus=false;};if(isInvalid(this._htmlProperties.unselectable)){this._htmlProperties.unselectable="on";};this._htmlAttributes=copyCreateHash(this._htmlAttributes);this._styleProperties=copyCreateHash(this._styleProperties);this._usedDimensionsHorizontal=[];this._usedDimensionsVertical=[];};QxWidget.extend(QxTarget,"QxWidget");QxWidget._count=0;QxWidget.addProperty({name:"parent",defaultValue:null});QxWidget.addProperty({name:"element"});QxWidget.addProperty({name:"visible",type:Boolean,defaultValue:false,getAlias:"isVisible"});QxWidget.addProperty({name:"anonymous",type:Boolean,defaultValue:false,getAlias:"isAnonymous"});QxWidget.addProperty({name:"tagName",type:String,defaultValue:"DIV"});QxWidget.addProperty({name:"cssClassName",type:String});QxWidget.addProperty({name:"timerCreate",type:Boolean,defaultValue:true});QxWidget.addProperty({name:"layoutHint",defaultValue:"auto"});QxWidget.addProperty({name:"position",type:String,impl:"styleProperty"});QxWidget.addProperty({name:"float",type:String,impl:"floatStyleProperty"});QxWidget.addProperty({name:"display",type:String,impl:"styleProperty",defaultValue:"none"});QxWidget.addProperty({name:"visibility",type:String,impl:"styleProperty",defaultValue:"hidden"});QxWidget.addProperty({name:"textAlign",type:String,impl:"styleProperty"});QxWidget.addProperty({name:"verticalAlign",type:String,impl:"styleProperty"});QxWidget.addProperty({name:"horizontalAlign",type:String});QxWidget.addProperty({name:"zIndex",type:Number,impl:"styleProperty"});QxWidget.addProperty({name:"backgroundColor",type:QxColor,impl:"styleProperty"});QxWidget.addProperty({name:"color",type:QxColor,impl:"styleProperty"});QxWidget.addProperty({name:"border",type:Object});QxWidget.addProperty({name:"opacity",type:Number});QxWidget.addProperty({name:"cursor",type:String});QxWidget.addProperty({name:"backgroundImage",type:String});QxWidget.addProperty({name:"overflow",type:String});QxWidget.addProperty({name:"clip",type:Object});QxWidget.addProperty({name:"tabIndex",type:Number,defaultValue:-1});QxWidget.addProperty({name:"focused",type:Boolean,defaultValue:false});QxWidget.addProperty({name:"canSelect",type:Boolean,defaultValue:true});QxWidget.addProperty({name:"toolTip",type:Object});QxWidget.addProperty({name:"contextMenu",type:Object});QxWidget.addProperty({name:"state",type:String});QxWidget.addProperty({name:"capture",type:Boolean,defaultValue:false});QxWidget.addProperty({name:"dropDataTypes",type:Object});QxWidget.addProperty({name:"command",type:Object});QxWidget.addProperty({name:"appearance",type:String});QxWidget.addProperty({name:"marginTop",type:Number,defaultValue:0,impl:"marginVertical",groups:["margin"]});QxWidget.addProperty({name:"marginRight",type:Number,defaultValue:0,impl:"marginHorizontal",groups:["margin"]});QxWidget.addProperty({name:"marginBottom",type:Number,defaultValue:0,impl:"marginVertical",groups:["margin"]});QxWidget.addProperty({name:"marginLeft",type:Number,defaultValue:0,impl:"marginHorizontal",groups:["margin"]});QxWidget.addProperty({name:"paddingTop",type:Number,defaultValue:0,impl:"paddingVertical",groups:["padding"]});QxWidget.addProperty({name:"paddingRight",type:Number,defaultValue:0,impl:"paddingHorizontal",groups:["padding"]});QxWidget.addProperty({name:"paddingBottom",type:Number,defaultValue:0,impl:"paddingVertical",groups:["padding"]});QxWidget.addProperty({name:"paddingLeft",type:Number,defaultValue:0,impl:"paddingHorizontal",groups:["padding"]});QxWidget.addProperty({name:"left",impl:"horizontalDimension",groups:["location","space","edge"]});QxWidget.addProperty({name:"right",impl:"horizontalDimension",groups:["edge"]});QxWidget.addProperty({name:"width",impl:"horizontalDimension",groups:["dimension","space"]});QxWidget.addProperty({name:"minWidth",impl:"horizontalLimitDimension",defaultValue:-Infinity});QxWidget.addProperty({name:"maxWidth",impl:"horizontalLimitDimension",defaultValue:Infinity});QxWidget.addProperty({name:"top",impl:"verticalDimension",groups:["location","space","edge"]});QxWidget.addProperty({name:"bottom",impl:"verticalDimension",groups:["edge"]});QxWidget.addProperty({name:"height",impl:"verticalDimension",groups:["dimension","space"]});QxWidget.addProperty({name:"minHeight",impl:"verticalLimitDimension",defaultValue:-Infinity});QxWidget.addProperty({name:"maxHeight",impl:"verticalLimitDimension",defaultValue:Infinity});proto.isCreated=function(){return Boolean(this.getElement());};proto._visualPropertyCheck=function(){if(!this.isCreated()){throw new Error("Create the element first!");};};proto.getStyle=function(){var el=this.getElement();if(!el){throw new Error("Element is not already created!");};return el.style;};proto._createElement=function(_b4){return this.setElement(this.getTopLevelWidget().getDocumentElement().createElement(this.getTagName()),_b4);};proto._getParentNodeForChild=function(otherObject){return this.getElement();};proto._createChildren=function(){var ch=this.getChildren();var chl=ch.length;var cho;var el;try{for(var i=0;i<chl;i++){cho=ch[i];switch(cho.isCreated()){case true:el=cho.getElement();if(!el.parentNode&&cho._shouldBecomeCreated()){this._getParentNodeForChild(cho).appendChild(el);};break;case false:if(cho._shouldBecomeCreated()){cho._createElementWrapper();};break;};};}catch(ex){throw new Error("Failed to setup children:"+ex);};};proto._shouldBecomeCreated=function(){return true;};proto._shouldBecomeChilds=function(){return true;};proto._shouldBecomeVisible=function(){return true;};proto._appendElement=function(otherObject){var pl=this._getParentNodeForChild(otherObject);if(pl){var el=otherObject.getElement();try{pl.appendChild(el);el.scrollTop=el.scrollLeft=pl.scrollTop=pl.scrollLeft=0;}catch(ex){throw new Error("Could not append element:"+el+" to "+pl+":"+ex);};this._postAppendChild(otherObject);}else {throw new Error("No parent node available for this widget:"+otherObject+")");};};proto._removeElement=function(otherObject){var el=otherObject.getElement();var pl=el.parentNode;if(pl){try{pl.removeChild(el);}catch(ex){throw new Error("Could not remove element:"+el+":"+ex);};this._postRemoveChild(otherObject);};};proto._postAppendChild=function(otherObject){if(!this._wasVisible){return;};this._invalidatePreferred();this._onnewchild(otherObject);};proto._onnewchild=function(otherObject){if(this.getWidth()=="auto"){this._setChildrenDependWidth(otherObject,"append-child");};if(this.getHeight()=="auto"){this._setChildrenDependHeight(otherObject,"append-child");};};proto._postRemoveChild=function(otherObject){if(!this._wasVisible){return;};this._invalidatePreferred();this._onremovechild(otherObject);};proto._onremovechild=function(otherObject){if(this.getWidth()=="auto"){this._setChildrenDependWidth(otherObject,"remove-child");};if(this.getHeight()=="auto"){this._setChildrenDependHeight(otherObject,"remove-child");};};proto._appendMyself=function(){var pa=this.getParent();if(pa){pa._appendElement(this);};};proto._removeMyself=function(vParent){if(vParent){vParent._removeElement(this);};};proto._beforeShow=function(_b4){};proto._beforeHide=function(_b4){};QxWidget._createList=[];QxWidget._createListLength=0;QxWidget._createListMaxCount=0;QxWidget._createMaxTimeout=500;QxWidget._createInterval=10;QxWidget.addToCreateList=function(vWidget){QxWidget._createList.push(vWidget);QxWidget._createListMaxCount++;QxWidget._createListLength++;if(QxWidget._createTimer==null){var vWin=window.application.getClientWindow();if(vWin&&vWin.hasEventListeners("creatorStarted")){vWin.dispatchEvent(new QxEvent("creatorStarted"),true);};this._createStart=(new Date).valueOf();QxWidget._createTimer=window.setInterval("QxWidget._timeCreator()",QxWidget._createInterval);};};QxWidget._timeCreator=function(){if(this._timeCreatorRun){return;};this._timeCreatorRun=true;var vParent,vCurrent;var vList=QxWidget._createList;var vStart=(new Date).valueOf();while((vCurrent=vList[0])&&((new Date).valueOf()-vStart)<QxWidget._createMaxTimeout){if(vCurrent.isCreated()){vList.shift();continue;};vParent=vCurrent.getParent();if(vParent&&vParent.isCreated()){vCurrent._createElement();vList.shift();QxWidget._createListLength--;};};var vWin=window.application.getClientWindow();if(vWin&&vWin.hasEventListeners("creatorInterval")){vWin.dispatchEvent(new QxDataEvent("creatorInterval",100-Math.round(QxWidget._createListLength/QxWidget._createListMaxCount*100)),true);};if(QxWidget._createListLength==0){window.clearInterval(QxWidget._createTimer);QxWidget._createTimer=null;QxWidget._createListMaxCount=0;var vWin=window.application.getClientWindow();if(vWin&&vWin.hasEventListeners("creatorStopped")){vWin.dispatchEvent(new QxEvent("creatorStopped"),true);};};delete this._timeCreatorRun;};proto._createElementWrapper=function(_b4){var vParent=this.getParent();if(this.getTimerCreate()&&vParent.getWidth()!="auto"&&vParent.getHeight()!="auto"){QxWidget.addToCreateList(this);}else {this._createElement(_b4);};};proto._modifyParent=function(_b1,_b2,_b3,_b4){if(_b2){_b2._removeChild(this);if(this.isCreated()){this._removeMyself(_b2);};};if(_b1){if(this.contains(_b1)){throw new Error("Could not add me to a child!");};_b1._pushChild(this);if(_b1.isCreated()){if(!_b1._shouldBecomeChilds()){return true;}else if(!this._shouldBecomeCreated()){return true;}else if(!this.isCreated()){this._createElementWrapper(_b4);}else {this._appendMyself();this._render("force");};};};return true;};proto._modifyElement=function(_b1,_b2,_b3,_b4){if(_b2){this._removeMyself(this.getParent());_b2._QxWidget=null;_b2.id="";_b2.name="";this._removeInlineEvents(_b2);};if(_b1){_b1._QxWidget=this;this._applyStyleProperties(_b1,_b4);this._applyHtmlProperties(_b1,_b4);this._applyHtmlAttributes(_b1,_b4);this._addInlineEvents(_b1);this.setVisible(true,_b4);};return true;};if((new QxClient).isMshtml()){proto._addInlineEvents=function(el){el.onpropertychange=QxWidget.__oninlineevent;el.attachEvent("onselect",QxWidget.__oninlineevent);el.attachEvent("onscroll",QxWidget.__oninlineevent);el.attachEvent("onfocus",QxWidget.__oninlineevent);el.attachEvent("onblur",QxWidget.__oninlineevent);};proto._removeInlineEvents=function(el){el.onpropertychange=null;el.detachEvent("onselect",QxWidget.__oninlineevent);el.detachEvent("onscroll",QxWidget.__oninlineevent);el.detachEvent("onfocus",QxWidget.__oninlineevent);el.detachEvent("onblur",QxWidget.__oninlineevent);};}else {proto._addInlineEvents=function(el){el.addEventListener("select",QxWidget.__oninlineevent,false);el.addEventListener("scroll",QxWidget.__oninlineevent,false);el.addEventListener("focus",QxWidget.__oninlineevent,false);el.addEventListener("blur",QxWidget.__oninlineevent,false);};proto._removeInlineEvents=function(el){el.removeEventListener("select",QxWidget.__oninlineevent,false);el.removeEventListener("scroll",QxWidget.__oninlineevent,false);el.removeEventListener("focus",QxWidget.__oninlineevent,false);el.removeEventListener("blur",QxWidget.__oninlineevent,false);};};QxWidget.__oninlineevent=function(e){if(this._QxWidget){return this._QxWidget._oninlineevent(e);};};proto._oninlineevent=function(e){if(!e){e=window.event;};switch(e.type){case "focus":case "blur":case "select":case "scroll":case "load":break;case "propertychange":break;default:this.debug("Uncatched inline event:"+e.type);};};proto._wasVisible=false;proto._modifyVisible=function(_b1,_b2,_b3,_b4){if(_b1){if(!this.isCreated()){this.forceVisible(false);this._createElementWrapper();return true;};if(!this._wasVisible){this.setDisplay(null);this._appendMyself();var vAutoWidth=this._typeof_width=="auto";var vAutoHeight=this._typeof_height=="auto";if(vAutoWidth||vAutoHeight){this._createChildren();if(vAutoWidth){this._setChildrenDependWidth();};if(vAutoHeight){this._setChildrenDependHeight();};this._render("initial");this._wasVisible=true;var ch=this.getChildren();var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._render("initial");};}else {this._render("initial");this._wasVisible=true;this._createChildren();};this._invalidatePreferred();}else {this.setDisplay(null);if(this._renderHorizontalOmitted){this._renderHorizontal("force");this._renderHorizontalOmitted=false;};if(this._renderVerticalOmitted){this._renderVertical("force");this._renderVerticalOmitted=false;};};this._beforeShow(_b4);this.setVisibility("inherit",_b4);}else {this._beforeHide(_b4);this.setVisibility("hidden",_b4);this.setDisplay("none");};return true;};proto.getChildren=function(){return this._a2;};proto.getChildrenLength=function(){return this.getChildren().length;};proto.hasChildren=function(){return this.getChildrenLength()>0;};proto.getTopLevelWidget=function(){var p=this.getParent();if(p==null){return null;};return p.getTopLevelWidget();};proto.add=function(){var l=arguments.length;var o;for(var i=0;i<l;i++){o=arguments[i];if(!(o instanceof QxWidget)){if(o instanceof Array){var j;for(j=0;j<o.length;j++){this.add(o[j]);};for(j in o){if(o[j]instanceof QxWidget){this.add(o[j]);};};}else {throw new Error("Invalid Widget:"+o);};}else {o.setParent(this);};};return this;};proto.addBefore=function(otherWidget,beforeWidget){if(!(otherWidget instanceof QxWidget)||!(beforeWidget instanceof QxWidget)){throw new Error("Invalid widgets:"+otherWidget+","+beforeWidget);};if(beforeWidget.getParent()!=this){throw new Error("Invalid before widget:"+beforeWidget+". Should be child of same parent!");};if(otherWidget.contains(this)){throw new Error("Could not add me to a child!");};var ch=this.getChildren();var oldLength=ch.length;ch.remove(otherWidget);ch.insertBefore(otherWidget,beforeWidget);this._complexAdd(otherWidget,oldLength);};proto.addAfter=function(otherWidget,afterWidget){if(!(otherWidget instanceof QxWidget)||!(afterWidget instanceof QxWidget)){throw new Error("Invalid widgets:"+otherWidget+","+afterWidget);};if(afterWidget.getParent()!=this){throw new Error("Invalid after widget:"+afterWidget+". Should be child of same parent!");};if(otherWidget.contains(this)){throw new Error("Could not add me to a child!");};var ch=this.getChildren();var oldLength=ch.length;ch.remove(otherWidget);ch.insertAfter(otherWidget,afterWidget);this._complexAdd(otherWidget,oldLength);};proto._complexAdd=function(otherWidget,oldLength){var ch=this._a2;var newLength=ch.length;if(otherWidget.getParent()==this){this.syncChildrenOrder();if(newLength!=oldLength&&newLength==1){this._firstChildCache=otherWidget;this._lastChildCache=otherWidget;if(this.isCreated()&&oldLength>1){this._obtainFirstChild();};if(otherWidget.isCreated()){otherWidget._obtainFirstChildState();};}else {var newFirst=ch[0];if(this._firstChildCache&&this._firstChildCache!=newFirst){var oldFirst=this._firstChildCache;this._firstChildCache=newFirst;if(oldFirst.isCreated()){oldFirst._loseFirstChildState();};if(newFirst.isCreated()){newFirst._obtainFirstChildState();};};var newLast=ch[newLength-1];if(this._lastChildCache&&this._lastChildCache!=newLast){var oldLast=this._lastChildCache;this._lastChildCache=newLast;if(oldLast.isCreated()){oldLast._loseLastChildState();};if(newLast.isCreated()){newLast._obtainLastChildState();};};};}else {otherWidget.setParent(this);this.syncChildrenOrder();};};proto.syncChildrenOrder=function(){if(!this.isCreated()){return;};var ch=this.getChildren().copy();var chl=ch.length;var chc;var che;for(var i=0;i<chl;i++){chc=ch[i];che=chc.getElement();if(chc.isCreated()&&che.parentNode){this._getParentNodeForChild(chc).appendChild(che);};};};proto.remove=function(){var l=arguments.length;var o;for(var i=0;i<l;i++){o=arguments[i];if(!(o instanceof QxWidget)){throw new Error("Invalid Widget:"+o);}else {o.setParent(null);};};};proto.removeAll=function(){var cs=this.getChildren();var co=cs[0];while(co){this.remove(co);co=cs[0];};};proto.contains=function(des){if(des==null){return false;};if(des==this){return true;};return this.contains(des.getParent());};proto.getPreviousSibling=function(){var p=this.getParent();if(p==null){return null;};var cs=p.getChildren();return cs[cs.indexOf(this)-1];};proto.getNextSibling=function(){var p=this.getParent();if(p==null){return null;};var cs=p.getChildren();return cs[cs.indexOf(this)+1];};QxWidget.getActiveSiblingHelperIgnore=function(vIgnoreClasses,vInstance){for(var j=0;j<vIgnoreClasses.length;j++){if(vInstance instanceof vIgnoreClasses[j]){return true;};};return false;};QxWidget.getActiveSiblingHelper=function(vObject,vParent,vCalc,vIgnoreClasses,vMode){if(!vIgnoreClasses){vIgnoreClasses=[];};var vChilds=vParent.getChildren();var vPosition;if(isInvalid(vMode)){vPosition=vChilds.indexOf(vObject)+vCalc;}else {vPosition=vMode=="first"?0:vChilds.length-1;};var vInstance=vChilds[vPosition];while(!vInstance.isEnabled()||QxWidget.getActiveSiblingHelperIgnore(vIgnoreClasses,vInstance)){vPosition+=vCalc;vInstance=vChilds[vPosition];if(!vInstance){return null;};};return vInstance;};proto.getPreviousActiveSibling=function(vIgnoreClasses){var vPrev=QxWidget.getActiveSiblingHelper(this,this.getParent(),-1,vIgnoreClasses,null);return vPrev?vPrev:this.getParent().getLastActiveChild();};proto.getNextActiveSibling=function(vIgnoreClasses){var vMext=QxWidget.getActiveSiblingHelper(this,this.getParent(),1,vIgnoreClasses,null);return vMext?vMext:this.getParent().getFirstActiveChild();};proto.isFirstChild=function(){var pa=this.getParent();if(!pa){return false;};return pa.getFirstChild()==this;};proto.isLastChild=function(){var pa=this.getParent();if(!pa){return false;};return pa.getLastChild()==this;};proto.getFirstActiveChild=function(vIgnoreClasses){return QxWidget.getActiveSiblingHelper(null,this,1,vIgnoreClasses,"first");};proto.getLastActiveChild=function(vIgnoreClasses){return QxWidget.getActiveSiblingHelper(null,this,-1,vIgnoreClasses,"last");};proto._firstChildCache=null;proto._lastChildCache=null;proto.getFirstChild=function(){if(this._firstChildCache==null){var ch=this.getChildren();if(ch.length>0){this._firstChildCache=ch[0];ch[0]._getFirstChildState();};};return this._firstChildCache;};proto.getLastChild=function(){if(this._lastChildCache==null){var ch=this.getChildren();if(ch.length>0){this._lastChildCache=ch[ch.length-1];ch[ch.length-1]._getLastChildState();};};return this._lastChildCache;};proto._pushChild=function(o){var ch=this.getChildren();var chi=ch.indexOf(o);if(chi==-1){ch.push(o);if(ch.length==1){this._firstChildCache=o;this._lastChildCache=o;if(this.isCreated()){this._obtainFirstChild();};}else {if(this._lastChildCache){var oc=this._lastChildCache;this._lastChildCache=o;oc._loseLastChildState();};};}else {if(ch.length==1){this._firstChildCache=o;this._lastChildCache=o;if(this.isCreated()){this._obtainFirstChild();};}else {if(this._lastChildCache&&chi==(ch.length-1)){var oc=this._lastChildCache;this._lastChildCache=o;if(oc.isCreated()){oc._loseLastChildState();};};};};};proto._removeChild=function(o){var ch=this.getChildren();ch.remove(o);if(ch.length==0){this._loseAllChilds();};if(this._firstChildCache==o){if(ch.length>0){this._firstChildCache=ch[0];ch[0]._obtainFirstChildState();}else {this._firstChildCache=null;};o._loseFirstChildState();};if(this._lastChildCache==o){if(ch.length>0){this._lastChildCache=ch[ch.length-1];ch[ch.length-1]._obtainLastChildState();}else {this._lastChildCache=null;};o._loseLastChildState();};};proto._obtainFirstChildState=function(){};proto._obtainLastChildState=function(){};proto._loseFirstChildState=function(){};proto._loseLastChildState=function(){};proto._obtainFirstChild=function(){};proto._loseAllChilds=function(){};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){QxTarget.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);var vClasses=this.getCssClassName();var vDisClassA="QxDisabled";var vDisClassB=this.classname+"Disabled";if(_b1){this.removeHtmlProperty("disabled");this.setCssClassName(vClasses.remove(vDisClassA," ").remove(vDisClassB," "));}else {this.setHtmlProperty("disabled",true);this.setCssClassName(vClasses.add(vDisClassA," ").add(vDisClassB," "));};return true;};proto._modifyState=function(_b1,_b2,_b3,_b4){var vClasses=this.getCssClassName();if(isValidString(_b2)){vClasses=vClasses.remove(this.classname+"-"+_b2.toFirstUp()," ");};if(isValidString(_b1)){vClasses=vClasses.add(this.classname+"-"+_b1.toFirstUp()," ");};this.setCssClassName(vClasses,_b4);this._recalculateFrame();return true;};proto._modifyAppearance=function(_b1,_b2,_b3,_b4){return true;};proto.setHtmlProperty=function(n,v){this._htmlProperties[n]=v;var el=this.getElement();if(el){el[n]=v;};return true;};proto.removeHtmlProperty=function(n){delete this._htmlProperties[n];var el=this.getElement();if(el){el.removeAttribute(n);if((new QxClient).isNotMshtml()){try{delete el[n];}catch(ex){};};};return true;};proto.getHtmlProperty=function(n){var el=this.getElement();return el?el[n]:this._htmlProperties[n];};proto._applyHtmlProperties=function(el){for(var i in this._htmlProperties){el[i]=this._htmlProperties[i];};};proto.setHtmlAttribute=function(n,v){this._htmlAttributes[n]=v;var el=this.getElement();if(el){el.setAttribute(n,v);};return true;};proto.removeHtmlAttribute=function(n){delete this._htmlAttributes[n];var el=this.getElement();if(el){el.removeAttribute(n);};return true;};proto.getHtmlAttribute=function(n){var el=this.getElement();return el?el.getAttribute(n):this._attributes[n];};proto._applyHtmlAttributes=function(el){for(var i in this._htmlAttributes){el.setAttribute(i,this._htmlAttributes[i]);};};proto._evalCurrentStyleProperty=function(_b3){return this.isCreated()?QxDOM.getComputedStyleProperty(this.getElement(),_b3):null;};proto.getStyleProperty=function(_b3){var _b1=this._styleProperties[_b3]||this._evalCurrentStyleProperty(_b3);return isValid(_b1)?_b1:null;};proto.setStyleProperty=function(_b3,_b1,_b4){return this._modifyStyleProperty(_b1,null,_b3,_b4);};proto.removeStyleProperty=function(_b3){delete this._styleProperties[_b3];var el=this.getElement();if(el){el.style[_b3]="";};return true;};proto._modifyStyleProperty=function(_b1,_b2,_b3,_b4){this._styleProperties[_b3]=_b1;try{this.getElement().style[_b3]=isValid(_b1)?_b1:"";}catch(ex){};return true;};proto._modifyFloatStyleProperty=function(_b1,_b2,_b3,_b4){return this._modifyStyleProperty(_b1,_b2,"cssFloat",_b4);};proto._applyStyleProperties=function(el){for(var i in this._styleProperties){el.style[i]=this._styleProperties[i];};};proto.getAnyWidth=function(){var w=this.getWidth();var wu=w=="auto"?null:w;if(!wu&&!this.isCreated()){return 0;};if(this._pixelof_width!=null){wu=Math.max(this._pixelof_width,wu);};return wu||this.getPreferredWidth()||this.getComputedBoxWidth()||0;};proto.getAnyHeight=function(){var h=this.getHeight();var hu=h=="auto"?null:h;if(!hu&&!this.isCreated()){return 0;};if(this._pixelof_height!=null){hu=Math.max(this._pixelof_height,hu);};return hu||this.getPreferredHeight()||this.getComputedBoxHeight()||0;};proto._widthAuto=false;proto._widthMode=null;proto._widthModeValue=null;proto.setWidth=function(_b1,_b4,vMode,vKeepAuto){var _b2=this.getWidth();this._widthMode=isValid(vMode)?vMode:"box";this._widthModeValue=_b1;if(_b1=="auto"){this._widthAuto=true;if(this._wasVisible){return this._setChildrenDependWidth();};}else if(isInvalid(vKeepAuto)){this._widthAuto=false;}else if(vKeepAuto==true){if(!this._widthAuto){throw new Error("Width was not auto previously!:"+_b1);};};this._valueWidth=_b1;this._nullWidth=_b1==null;try{var r=this._modifyHorizontalDimension(_b1,_b2,"width",_b4);if(!r){throw new Error("Failed without exception:width[horizontalDimension|"+r+"]");};}catch(ex){this.debug("Failed to modify property width:"+ex);return false;};if(vKeepAuto){this._valueWidth="auto";this._nullWidth=false;};return _b1;};proto._heightAuto=false;proto._heightMode=null;proto._heightModeValue=null;proto.setHeight=function(_b1,_b4,vMode,vKeepAuto){var _b2=this.getHeight();this._heightMode=isValid(vMode)?vMode:"box";this._heightModeValue=_b1;if(_b1=="auto"){this._heightAuto=true;if(this._wasVisible){return this._setChildrenDependHeight();};}else if(isInvalid(vKeepAuto)){this._heightAuto=false;}else if(vKeepAuto==true){if(!this._heightAuto){throw new Error("Height was not auto previously:"+_b1);};};this._valueHeight=_b1;this._nullHeight=_b1==null;try{var r=this._modifyVerticalDimension(_b1,_b2,"height",_b4);if(!r){throw new Error("Failed without exception:height[verticalDimension|"+r+"]");};}catch(ex){this.debug("Failed to modify property height:"+ex);return false;};if(vKeepAuto){this._valueHeight="auto";this._nullHeight=false;};return _b1;};proto.setBoxWidth=function(_b1,_b4,vKeepAuto){return this.setWidth(_b1,_b4,"box",vKeepAuto);};proto.setAreaWidth=function(_b1,_b4,vKeepAuto){return this.setWidth(_b1,_b4,"area",vKeepAuto);};proto.setInnerWidth=function(_b1,_b4,vKeepAuto){return this.setWidth(_b1,_b4,"inner",vKeepAuto);};proto.setBoxHeight=function(_b1,_b4,vKeepAuto){return this.setHeight(_b1,_b4,"box",vKeepAuto);};proto.setAreaHeight=function(_b1,_b4,vKeepAuto){return this.setHeight(_b1,_b4,"area",vKeepAuto);};proto.setInnerHeight=function(_b1,_b4,vKeepAuto){return this.setHeight(_b1,_b4,"inner",vKeepAuto);};proto._minWidthMode=null;proto._maxWidthMode=null;proto._minHeightMode=null;proto._maxHeightMode=null;proto._minWidthModeValue=null;proto._maxWidthModeValue=null;proto._minHeightModeValue=null;proto._maxHeightModeValue=null;proto.setMinWidth=function(_b1,_b4,vMode){var _b2=this.getMinWidth();this._minWidthMode=isValid(vMode)?vMode:"box";this._minWidthModeValue=_b1;this._valueMinWidth=_b1;this._nullMinWidth=_b1==null;try{var r=this._modifyHorizontalLimitDimension(_b1,_b2,"minWidth",_b4);if(!r){throw new Error("Failed without exception:minWidth[horizontalLimitDimension|"+r+"]");};}catch(ex){return false;};return _b1;};proto.setMaxWidth=function(_b1,_b4,vMode){var _b2=this.getMinWidth();this._maxWidthMode=isValid(vMode)?vMode:"box";this._maxWidthModeValue=_b1;this._valueMaxWidth=_b1;this._nullMaxWidth=_b1==null;try{var r=this._modifyHorizontalLimitDimension(_b1,_b2,"maxWidth",_b4);if(!r){throw new Error("Failed without exception:maxWidth[horizontalLimitDimension|"+r+"]");};}catch(ex){return false;};return _b1;};proto.setMinHeight=function(_b1,_b4,vMode){var _b2=this.getMinHeight();this._minHeightMode=isValid(vMode)?vMode:"box";this._minHeightModeValue=_b1;this._valueMinHeight=_b1;this._nullMinHeight=_b1==null;try{var r=this._modifyVerticalLimitDimension(_b1,_b2,"minHeight",_b4);if(!r){throw new Error("Failed without exception:minHeight[verticalLimitDimension|"+r+"]");};}catch(ex){return false;};return _b1;};proto.setMaxHeight=function(_b1,_b4,vMode){var _b2=this.getMaxHeight();this._maxHeightMode=isValid(vMode)?vMode:"box";this._maxHeightModeValue=_b1;this._valueMaxHeight=_b1;this._nullMaxHeight=_b1==null;try{var r=this._modifyVerticalLimitDimension(_b1,_b2,"maxHeight",_b4);if(!r){throw new Error("Failed without exception:maxHeight[verticalLimitDimension|"+r+"]");};}catch(ex){return false;};return _b1;};proto._manageHorizontalDimensions=function(_b3,_b1){if(_b1==null){this._usedDimensionsHorizontal.remove(_b3);}else if(this._usedDimensionsHorizontal.contains(_b3)){return;}else if(this._usedDimensionsHorizontal.length==2){throw new Error("List max reached. Unable to add:"+_b3+"("+_b1+")!,List:"+this._usedDimensionsHorizontal);}else {this._usedDimensionsHorizontal.push(_b3);};};proto._manageVerticalDimensions=function(_b3,_b1){if(_b1==null){this._usedDimensionsVertical.remove(_b3);}else if(this._usedDimensionsVertical.contains(_b3)){return;}else if(this._usedDimensionsVertical.length==2){throw new Error("List max reached. Unable to add:"+_b3+"("+_b1+")!,List:"+this._usedDimensionsVertical);}else {this._usedDimensionsVertical.push(_b3);};};proto._render=function(_e5){this._renderHorizontal(_e5);this._renderVertical(_e5);};proto._renderHorizontalRunning=false;proto._renderVerticalRunning=false;proto._renderHorizontalOmit=false;proto._renderVerticalOmit=false;proto._renderHorizontal=function(_e5){return this._renderHelper("horizontal","Horizontal",_e5,"left","width","right","Left","Width","Right","minWidth","maxWidth","MinWidth","MaxWidth");};proto._renderVertical=function(_e5){return this._renderHelper("vertical","Vertical",_e5,"top","height","bottom","Top","Height","Bottom","minHeight","maxHeight","MinHeight","MaxHeight");};proto._omitHorizontalRendering=function(){this._renderHorizontalOmit=true;};proto._activateHorizontalRendering=function(){this._renderHorizontalOmit=false;this._renderHorizontal("activate");};proto._omitVerticalRendering=function(){this._renderVerticalOmit=true;};proto._activateVerticalRendering=function(){this._renderVerticalOmit=false;this._renderVertical("activate");};proto._omitRendering=function(){this._omitHorizontalRendering();this._omitVerticalRendering();};proto._activateRendering=function(){this._activateHorizontalRendering();this._activateVerticalRendering();};proto._renderInitialDone_horizontal=false;proto._renderInitialDone_vertical=false;proto._renderHelper=function(vId,vIdUp,_e5,vNameStart,vNameRange,vNameStop,vNameStartUp,vNameRangeUp,vNameStopUp,vNameRangeMin,vNameRangeMax,vNameRangeMinUp,vNameRangeMaxUp){var vParent=this.getParent();if(vParent==null||!this.isCreated()){return true;};if(!this["_renderInitialDone_"+vId]){_e5="initial";}else if(this["_renderInitialDone_"+vId]&&_e5=="initial"){return true;};if(!vParent["_renderInitialDone_"+vId]&&this["get"+vNameRangeUp]()!="auto"){if(vParent["get"+vNameRangeUp]()!=null||(vParent["get"+vNameStartUp]()!=null&&vParent["get"+vNameStopUp]()!=null)){return true;};};this["_renderInitialDone_"+vId]=true;if(_e5!="initial"&&this._wasVisible&&!this.getVisible()){this["_render"+vIdUp+"Omitted"]=true;return true;};try{switch(_e5){case "initial":case "force":case "parent":case "activate":this._computeDimensionPixelValue(vNameStart,vNameStartUp,vNameRangeUp,vNameStopUp);this._computeDimensionPixelValue(vNameStop,vNameStartUp,vNameRangeUp,vNameStopUp);case "padding":case "border":this._computeDimensionPixelValue(vNameRange,vNameStartUp,vNameRangeUp,vNameStopUp);this._computeDimensionPixelValue(vNameRangeMin,vNameStartUp,vNameRangeUp,vNameStopUp);this._computeDimensionPixelValue(vNameRangeMax,vNameStartUp,vNameRangeUp,vNameStopUp);break;case vNameRangeMin:case vNameRangeMax:if(vParent["get"+vNameRangeUp]()=="auto"){return vParent["_setChildrenDepend"+vNameRangeUp](this);};case vNameStart:case vNameRange:case vNameStop:this._computeDimensionPixelValue(_e5,vNameStartUp,vNameRangeUp,vNameStopUp);break;};var vValueStart=this["_pixelof_"+vNameStart];var vValueRange=this["_pixelof_"+vNameRange];var vValueStop=this["_pixelof_"+vNameStop];var vValueRangeMin=this["_pixelof_"+vNameRangeMin]||-Infinity;var vValueRangeMax=this["_pixelof_"+vNameRangeMax]||Infinity;var vUseStart=vValueStart!=null;var vUseRange=vValueRange!=null;var vUseStop=vValueStop!=null;if((_e5=="initial"||_e5=="parent")&&!vUseStart&&!vUseRange&&!vUseStop&&vValueRangeMin==-Infinity&&vValueRangeMax==Infinity){return true;};var vComputedPosition;var vComputedSize;function limitSize(vValue){return isValidNumber(vValue)?vValue.limit(vValueRangeMin,vValueRangeMax):0;};if(vUseRange){vComputedSize=limitSize(vValueRange);};if(vUseStart){vComputedPosition=vValueStart;if(!vUseRange){if(vUseStop){vComputedSize=limitSize(vParent["getInner"+vNameRangeUp]()-this["getComputedMargin"+vNameStartUp]()-this["getComputedMargin"+vNameStopUp]()-vComputedPosition-vValueStop);}else if(vValueRangeMin>0){vComputedSize=vValueRangeMin;};};}else if(vUseStop){if(!vUseRange){if(!this.getElement().parentNode){return;};vComputedSize=limitSize(this["getPreferred"+vNameRangeUp]());};vComputedPosition=vParent["getInner"+vNameRangeUp]()-this["getComputedMargin"+vNameStartUp]()-this["getComputedMargin"+vNameStopUp]()-vComputedSize-vValueStop;};if(typeof vComputedSize=="undefined"){vComputedSize=null;};if(typeof vComputedPosition=="undefined"){vComputedPosition=null;}else if(isValidNumber(vComputedPosition)&&this._evalCurrentStyleProperty("position")=="absolute"){vComputedPosition+=vParent["getComputedPadding"+vNameStartUp]();};var vPositionChanged=vComputedPosition!=this["_computedLast"+vNameStartUp];var vSizeChanged=vComputedSize!=this["_computedLast"+vNameRangeUp];if(vPositionChanged||vSizeChanged){if(vSizeChanged){try{this["_applySize"+vIdUp](vComputedSize);}catch(ex){this.debug("Failed to apply size:"+vComputedSize);};this["_computedLast"+vNameRangeUp]=vComputedSize;if(this.hasEventListeners("resize")){this.dispatchEvent(new QxEvent("resize"));};if(this.hasEventListeners("resize"+vIdUp)){this.dispatchEvent(new QxEvent("resize"+vIdUp));};this["_inner"+vNameRangeUp+"Changed"]();};if(vPositionChanged){try{this["_d3"+vIdUp](vComputedPosition);}catch(ex){this.debug("Failed to apply position:"+vComputedPosition);};this["_computedLast"+vNameStartUp]=vComputedPosition;if(this.hasEventListeners("move")){this.dispatchEvent(new QxEvent("move"));};if(this.hasEventListeners("move"+vIdUp)){this.dispatchEvent(new QxEvent("move"+vIdUp));};};if(_e5!="initial"){this["_outer"+vNameRangeUp+"Changed"](vPositionChanged&&vSizeChanged?"position-and-size":vPositionChanged?"position":vSizeChanged?"size":"");};};}catch(ex){throw new Error("Could not render "+this+":"+vId+":"+ex);};};if((new QxClient).isMshtml()){proto._d3Horizontal=function(vPosition){return isInvalidNumber(vPosition)?this.removeStyleProperty("pixelLeft"):this.setStyleProperty("pixelLeft",Math.round(vPosition));};proto._applySizeHorizontal=function(vSize){return isInvalidNumber(vSize)?this.removeStyleProperty("pixelWidth"):this.setStyleProperty("pixelWidth",Math.round(vSize));};proto._d3Vertical=function(vPosition){return isInvalidNumber(vPosition)?this.removeStyleProperty("pixelTop"):this.setStyleProperty("pixelTop",Math.round(vPosition));};proto._applySizeVertical=function(vSize){return isInvalidNumber(vSize)?this.removeStyleProperty("pixelHeight"):this.setStyleProperty("pixelHeight",Math.round(vSize));};}else {proto._d3Horizontal=function(vPosition){return isInvalidNumber(vPosition)?this.removeStyleProperty("left"):this.setStyleProperty("left",Math.round(vPosition)+"px");};proto._applySizeHorizontal=function(vSize){return isInvalidNumber(vSize)?this.removeStyleProperty("width"):this.setStyleProperty("width",Math.round(vSize)+"px");};proto._d3Vertical=function(vPosition){return isInvalidNumber(vPosition)?this.removeStyleProperty("top"):this.setStyleProperty("top",Math.round(vPosition)+"px");};proto._applySizeVertical=function(vSize){return isInvalidNumber(vSize)?this.removeStyleProperty("height"):this.setStyleProperty("height",Math.round(vSize)+"px");};};proto._recalculateFrame=function(_e5){this._recalculateFrameWidth(_e5);this._recalculateFrameHeight(_e5);};proto._recalculateFrameWidth=function(_e5){if(!this._wasVisible){return;};switch(_e5){case "padding":if(this._widthMode=="inner"){return this._renderHorizontal(_e5);};break;case "border":if(this._widthMode=="inner"||this._widthMode=="area"){return this._renderHorizontal(_e5);};};this._innerWidthChanged();};proto._recalculateFrameHeight=function(_e5){if(!this._wasVisible){return;};switch(_e5){case "padding":if(this._heightMode=="inner"){return this._renderVertical(_e5);};break;case "border":if(this._heightMode=="inner"||this._heightMode=="area"){return this._renderVertical(_e5);};};this._innerHeightChanged();};proto._innerWidthChanged=function(){this._d4Width();var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderHorizontal("parent");};};proto._innerHeightChanged=function(){this._d4Height();var ch=this._a2;var chl=ch.length;for(var i=0;i<chl;i++){ch[i]._renderVertical("parent");};};proto._outerChanged=function(_e5){this._outerWidthChanged(_e5);this._outerHeightChanged(_e5);};proto._outerWidthChanged=function(_e5){var pa=this.getParent();return pa?pa._childOuterWidthChanged(this,_e5):true;};proto._outerHeightChanged=function(_e5){var pa=this.getParent();return pa?pa._childOuterHeightChanged(this,_e5):true;};proto._childOuterWidthChanged=function(vModifiedChild,_e5){if(!this._wasVisible){return;};var w=this.getWidth();if(w=="auto"){return this._setChildrenDependWidth(vModifiedChild,_e5);}else if(w==null||typeof w=="string"){this._lastChildWithInvalidatedPreferredWidth=vModifiedChild;this._invalidatePreferredWidth();};};proto._childOuterHeightChanged=function(vModifiedChild,_e5){if(!this._wasVisible){return;};var h=this.getHeight();if(h=="auto"){return this._setChildrenDependHeight(vModifiedChild,_e5);}else if(h==null||typeof h=="string"){this._lastChildWithInvalidatedPreferredHeight=vModifiedChild;this._invalidatePreferredHeight();};};proto._computedlast_position=null;proto._computedlast_size=null;proto._typeof_left=null;proto._typeof_width=null;proto._typeof_right=null;proto._typeof_top=null;proto._typeof_height=null;proto._typeof_bottom=null;proto._typeof_minWidth=null;proto._typeof_maxWidth=null;proto._typeof_minHeight=null;proto._typeof_maxHeight=null;proto._pixelof_left=null;proto._pixelof_width=null;proto._pixelof_right=null;proto._pixelof_top=null;proto._pixelof_height=null;proto._pixelof_bottom=null;proto._pixelof_minWidth=null;proto._pixelof_maxWidth=null;proto._pixelof_minHeight=null;proto._pixelof_maxHeight=null;proto._valueof_left=null;proto._valueof_width=null;proto._valueof_right=null;proto._valueof_top=null;proto._valueof_height=null;proto._valueof_bottom=null;proto._valueof_minWidth=null;proto._valueof_maxWidth=null;proto._valueof_minHeight=null;proto._valueof_maxHeight=null;proto.getPixelOfLeft=function(){return this._pixelof_left;};proto.getPixelOfWidth=function(){return this._pixelof_width;};proto.getPixelOfRight=function(){return this._pixelof_right;};proto.getPixelOfTop=function(){return this._pixelof_top;};proto.getPixelOfHeight=function(){return this._pixelof_height;};proto.getPixelOfBottom=function(){return this._pixelof_bottom;};proto._computeDimensionPixelValue=function(vId,vNameStartUp,vNameRangeUp,vNameStopUp){var pixelKey="_pixelof_"+vId;var valueKey="_valueof_"+vId;switch(this["_typeof_"+vId]){case "pixel":this[pixelKey]=this[valueKey];break;case "percent":this[pixelKey]=this._toPercent(this[valueKey],this.getParent()["getInner"+vNameRangeUp]());break;default:this[pixelKey]=null;return;};switch(vId){case "width":case "height":case "minWidth":case "maxWidth":case "minHeight":case "maxHeight":switch(this["_"+vId+"Mode"]){case "inner":this[pixelKey]+=this["getComputedPadding"+vNameStartUp]()+this["getComputedPadding"+vNameStopUp]();case "area":this[pixelKey]+=this["getComputedBorder"+vNameStartUp]()+this["getComputedBorder"+vNameStopUp]();};};};proto._computeDimensionType=function(_b1){switch(typeof _b1){case "number":return "pixel";case "string":if(_b1=="auto"){return "auto";}else if (/^([0-9\.]+)%$/.test(_b1)){return "percent";};break;case "object":if(_b1==null){return null;};};throw new Error("Invalid value:"+_b1);};proto._toPercent=function(_b1,vFullWidth){return Math.round(vFullWidth*parseFloat(_b1)/100);};proto._modifyHorizontalDimension=function(_b1,_b2,_b3,_b4){this._manageHorizontalDimensions(_b3,_b1);return this._modifyHorizontalHelper(_b1,_b3);};proto._modifyHorizontalLimitDimension=function(_b1,_b2,_b3,_b4){return this._modifyHorizontalHelper(_b1,_b3);};proto._modifyHorizontalHelper=function(_b1,_b3){this["_typeof_"+_b3]=this._computeDimensionType(_b1);this["_valueof_"+_b3]=_b1;this._renderHorizontal(_b3);return true;};proto._modifyVerticalDimension=function(_b1,_b2,_b3,_b4){this._manageVerticalDimensions(_b3,_b1);return this._modifyVerticalHelper(_b1,_b3);};proto._modifyVerticalLimitDimension=function(_b1,_b2,_b3,_b4){return this._modifyVerticalHelper(_b1,_b3);};proto._modifyVerticalHelper=function(_b1,_b3){this["_typeof_"+_b3]=this._computeDimensionType(_b1);this["_valueof_"+_b3]=_b1;this._renderVertical(_b3);return true;};proto._setChildrenDependWidth=function(_e4,_e5){var newWidth=this._d5Width(_e4,_e5);if(newWidth!=null){this.setWidth(newWidth,null,"inner",true);}else {this.setWidth(null,null,"box",true);};return true;};proto._d5Width=function(_e4,_e5){return this._d5Helper(_e4,_e5,"_dependWidthCache","left","width","right");};proto._setChildrenDependHeight=function(_e4,_e5){var newHeight=this._d5Height(_e4,_e5);if(newHeight!=null){this.setHeight(newHeight,null,"inner",true);}else {this.setHeight(null,null,"box",true);};return true;};proto._d5Height=function(_e4,_e5){return this._d5Helper(_e4,_e5,"_dependHeightCache","top","height","bottom");};proto._compareDependSize=function(d1,d2){return d2.size-d1.size;};proto._dependWidthCache=null;proto._dependHeightCache=null;proto._d5Helper=function(_e4,_e5,vCache,vStart,vRange,vStop){if(this[vCache]==null||this[vCache].length==0){var vChildren=this.getChildren();var vChildrenLength=vChildren.length;if(vChildrenLength==0){return null;};var vDependCache=this[vCache]=[];var vCurrentChild;var vCurrentNeeded;for(var i=0;i<vChildrenLength;i++){vCurrentChild=vChildren[i];if(vCurrentChild._wasVisible){vCurrentNeeded=vCurrentChild._computeNeededSize(vStart,vRange,vStop);vDependCache.push({widget:vCurrentChild,size:vCurrentNeeded?vCurrentNeeded:0});};};vDependCache.sort(this._compareDependSize);}else {if(!_e4&&this._wasVisible){if(vRange=="height"&&this._lastChildWithInvalidatedPreferredHeight){_e4=this._lastChildWithInvalidatedPreferredHeight;this._lastChildWithInvalidatedPreferredHeight=null;}else if(vRange=="width"&&this._lastChildWithInvalidatedPreferredWidth){_e4=this._lastChildWithInvalidatedPreferredWidth;this._lastChildWithInvalidatedPreferredWidth=null;};};if(_e4&&_e4!=this){var vDependCache=this[vCache];var vDependCacheLength=vDependCache.length;var vChildFound=false;var vCurrentNeeded;if(_e5!="add"){for(var i=0;i<vDependCacheLength;i++){if(vDependCache[i].widget==_e4){if(_e4.getParent()==this){vCurrentNeeded=_e4._computeNeededSize(vStart,vRange,vStop);vDependCache[i].size=vCurrentNeeded?vCurrentNeeded:0;}else {vDependCache.splice(i,1);};vChildFound=true;break;};};};if(_e5=="add"||!vChildFound){if(_e4.getParent()==this){vCurrentNeeded=_e4._computeNeededSize(vStart,vRange,vStop);vDependCache.push({widget:_e4,size:vCurrentNeeded?vCurrentNeeded:0});}else {throw new Error("No change while recalculating the dependCache!");};};vDependCache.sort(this._compareDependSize);}else {var vDependCache=this[vCache];};};return vDependCache.length>0?vDependCache[0].size:null;};proto._computeNeededSize=function(vNameStart,vNameRange,vNameStop){var vNameStartUp=vNameStart.toFirstUp();var vNameRangeUp=vNameRange.toFirstUp();var vNameStopUp=vNameStop.toFirstUp();var vTypeStart=this["_typeof_"+vNameStart];var vTypeRange=this["_typeof_"+vNameRange];var vTypeStop=this["_typeof_"+vNameStop];var vMinRangeValue=this["getMin"+vNameRangeUp]();var vMaxRangeValue=this["getMax"+vNameRangeUp]();var vMarginStart=this["getComputedMargin"+vNameStartUp]();var vMarginStop=this["getComputedMargin"+vNameStopUp]();var neededForMargin=vMarginStart+vMarginStop;if(vTypeRange=="percent"){var sizePreferred=this["getPreferred"+vNameRangeUp]();var sizeLimit=sizePreferred.limit(vMinRangeValue,vMaxRangeValue);var sizeProcent=parseFloat(this["get"+vNameRangeUp]());var neededInner=Math.ceil(sizeLimit/sizeProcent*100);return neededInner+neededForMargin;}else if(vTypeStart=="percent"&&vTypeStop=="percent"){var sizePreferred=this["getPreferred"+vNameRangeUp]();var sizeLimit=sizePreferred.limit(vMinRangeValue,vMaxRangeValue);var percentRemain=100-parseFloat(this["get"+vNameStartUp]())-parseFloat(this["get"+vNameStopUp]());var neededInner=Math.ceil(sizeLimit/percentRemain*100);return neededInner+neededForMargin;}else {var neededForSize=null;if(vTypeRange=="pixel"){this._computeDimensionPixelValue(vNameRange,vNameStartUp,vNameRangeUp,vNameStopUp);neededForSize=this["_pixelof_"+vNameRange];};if(neededForSize==null){var neededForSize=this["getPreferred"+vNameRangeUp]();};if(neededForSize==null){return;};neededForSize=neededForSize.limit(vMinRangeValue,vMaxRangeValue);if(vTypeStart=="percent"){var stopNeededSize=vTypeStop=="pixel"?this["get"+vNameStopUp]():0;var otherNeededSize=neededForSize+stopNeededSize;var percentRemain=100-parseFloat(this["get"+vNameStartUp]());var neededInner=Math.ceil(otherNeededSize/percentRemain*100);return neededInner+neededForMargin;}else if(vTypeStop=="percent"){var startNeededSize=vTypeStart=="pixel"?this["get"+vNameStartUp]():0;var otherNeededSize=neededForSize+startNeededSize;var percentRemain=100-parseFloat(this["get"+vNameStopUp]());var neededInner=Math.ceil(otherNeededSize/percentRemain*100);return neededInner+neededForMargin;}else {var neededForPosition=0;if(vTypeStart=="pixel"){neededForPosition+=this["get"+vNameStartUp]();};if(vTypeStop=="pixel"){neededForPosition+=this["get"+vNameStopUp]();};var neededInner=neededForSize+neededForPosition;return neededInner+neededForMargin;};};};QxWidget._domConnector=function(){var tpropsmargin="marginLeft,marginTop,marginRight,marginBottom";var tpropspadding="paddingLeft,paddingTop,paddingRight,paddingBottom";var tpropsborder="borderLeft,borderTop,borderRight,borderBottom";var tprops=tpropsmargin+","+tpropspadding+","+tpropsborder;var tdimsouter="outerWidth,outerHeight";var tdimsbox="boxWidth,boxHeight";var tdimsarea="areaWidth,areaHeight";var tdimsinner="innerWidth,innerHeight";var tdims=tdimsouter+","+tdimsbox+","+tdimsarea+","+tdimsinner;var tinsets="insetLeft,insetTop,insetRight,insetBottom";var tscrolls="scrollBarSizeLeft,scrollBarSizeTop,scrollBarSizeRight,scrollBarSizeBottom,scrollBarVisibleX,scrollBarVisibleY";var tcposouter="clientOuterLeft,clientOuterTop,clientOuterRight,clientOuterBottom";var tcposbox="clientBoxLeft,clientBoxTop,clientBoxRight,clientBoxBottom";var tcposarea="clientAreaLeft,clientAreaTop,clientAreaRight,clientAreaBottom";var tcposinner="clientInnerLeft,clientInnerTop,clientInnerRight,clientInnerBottom";var tcpos=tcposouter+","+tcposbox+","+tcposarea+","+tcposinner;var tpposouter="pageOuterLeft,pageOuterTop,pageOuterRight,pageOuterBottom";var tpposbox="pageBoxLeft,pageBoxTop,pageBoxRight,pageBoxBottom";var tpposarea="pageAreaLeft,pageAreaTop,pageAreaRight,pageAreaBottom";var tpposinner="pageInnerLeft,pageInnerTop,pageInnerRight,pageInnerBottom";var tppos=tpposouter+","+tpposbox+","+tpposarea+","+tpposinner;var tscreenouter="screenOuterLeft,screenOuterTop,screenOuterRight,screenOuterBottom";var tscreenbox="screenBoxLeft,screenBoxTop,screenBoxRight,screenBoxBottom";var tscreenarea="screenAreaLeft,screenAreaTop,screenAreaRight,screenAreaBottom";var tscreeninner="screenInnerLeft,screenInnerTop,screenInnerRight,screenInnerBottom";var tscreen=tscreenouter+","+tscreenbox+","+tscreenarea+","+tscreeninner;var tall=tprops+","+tdims+","+tinsets+","+tscrolls+","+tcpos+","+tppos+","+tscreen;var tarr=tall.split(",");for(var i=0;i<tarr.length;i++){var tname="getComputed"+tarr[i].toFirstUp();proto[tname]=new Function("var el=this.getElement();return QxDOM."+tname+"(el);");};};QxWidget._domConnector();proto.setScrollLeft=function(nScrollLeft){if(!this.isCreated()){return;};this.getElement().scrollLeft=nScrollLeft;};proto.setScrollTop=function(nScrollTop){if(!this.isCreated()){return;};this.getElement().scrollTop=nScrollTop;};proto.getOffsetLeft=function(){if(!this.isCreated()){return;};return QxDOM.getOffsetLeft(this.getElement());};proto.getOffsetTop=function(){if(!this.isCreated()){return;};return QxDOM.getOffsetTop(this.getElement());};proto.getScrollLeft=function(){if(!this.isCreated()){return;};return this.getElement().scrollLeft;};proto.getScrollTop=function(){if(!this.isCreated()){return;};return this.getElement().scrollTop;};proto.getClientWidth=function(){if(!this.isCreated()){return;};return this.getElement().clientWidth;};proto.getClientHeight=function(){if(!this.isCreated()){return;};return this.getElement().clientHeight;};proto.getOffsetWidth=function(){if(!this.isCreated()){return;};return this.getElement().offsetWidth;};proto.getOffsetHeight=function(){if(!this.isCreated()){return;};return this.getElement().offsetHeight;};proto._preferred_width=null;proto._preferred_height=null;proto._invalidatePreferred=function(){this._preferred_width=this._preferred_height=null;var pa=this.getParent();if(pa){pa._a2PreferredInvalidated(this);};};proto._invalidatePreferredWidth=function(){this._preferred_width=null;var pa=this.getParent();if(pa){pa._a2PreferredWidthInvalidated(this);};};proto._invalidatePreferredHeight=function(){this._preferred_height=null;var pa=this.getParent();if(pa){pa._a2PreferredHeightInvalidated(this);};};proto._calculatePreferredDimensions=function(){try{return QxDOM.getComputedPreferredSize(this.getElement());}catch(ex){throw new Error("Calculation of preferred width/height(of "+this+")failed:"+ex);};};proto.getPreferredWidth=function(){if(this.getWidth()=="auto"){if(!this._wasVisible){this._renderHorizontal("initial");};return this._pixelof_width;};if(this._preferred_width==null){if(this.getChildrenLength()>0){this._preferred_width=this._d5Width()+this.getComputedPaddingLeft()+this.getComputedPaddingRight()+this.getComputedInsetLeft()+this.getComputedInsetRight();}else {var r=this._calculatePreferredDimensions();this._preferred_width=r.width;this._preferred_height=r.height;};};return this._preferred_width;};proto.getPreferredHeight=function(){if(this.getHeight()=="auto"){if(!this._wasVisible){this._renderVertical("initial");};return this._pixelof_height;};if(this._preferred_height==null){if(this.getChildrenLength()>0){this._preferred_height=this._d5Height()+this.getComputedPaddingTop()+this.getComputedPaddingBottom()+this.getComputedInsetTop()+this.getComputedInsetBottom();}else {var r=this._calculatePreferredDimensions();this._preferred_width=r.width;this._preferred_height=r.height;};};return this._preferred_height;};proto.pack=function(){this.setWidth(this.getPreferredWidth());this.setHeight(this.getPreferredHeight());};proto._a2PreferredInvalidated=function(_e4){this._a2PreferredWidthInvalidated(_e4);this._a2PreferredHeightInvalidated(_e4);};proto._lastChildWithInvalidatedPreferredHeight=null;proto._lastChildWithInvalidatedPreferredWidth=null;proto._a2PreferredWidthInvalidated=function(_e4){if(!this._wasVisible){return;};this._lastChildWithInvalidatedPreferredWidth=_e4;if(this.getWidth()=="auto"){this._setChildrenDependWidth(_e4,"preferred");}else {this._invalidatePreferredWidth(_e4);};};proto._a2PreferredHeightInvalidated=function(_e4){if(!this._wasVisible){return;};this._lastChildWithInvalidatedPreferredHeight=_e4;if(this.getHeight()=="auto"){this._setChildrenDependHeight(_e4,"preferred");}else {this._invalidatePreferredHeight(_e4);};};proto._inner_width=null;proto._inner_height=null;proto._d4=function(){this._inner_width=this._inner_height=null;};proto._d4Width=function(){this._inner_width=null;};proto._d4Height=function(){this._inner_height=null;};proto.getInnerWidth=function(){if(this._inner_width==null){this._inner_width=this.getComputedInnerWidth();};return this._inner_width;};proto.getInnerHeight=function(){if(this._inner_height==null){this._inner_height=this.getComputedInnerHeight();};return this._inner_height;};proto._modifyPaddingHorizontal=function(_b1,_b2,_b3,_b4){if(isValid(_b1)){this.setStyleProperty(_b3,Math.round(_b1)+"px");}else {this.removeStyleProperty(_b3);};this._recalculateFrameWidth("padding");this._invalidatePreferredWidth();return true;};proto._modifyPaddingVertical=function(_b1,_b2,_b3,_b4){if(isValid(_b1)){this.setStyleProperty(_b3,Math.round(_b1)+"px");}else {this.removeStyleProperty(_b3);};this._recalculateFrameHeight("padding");this._invalidatePreferredHeight();return true;};proto._modifyMarginHorizontal=function(_b1,_b2,_b3,_b4){if(isValid(_b1)){this.setStyleProperty(_b3,Math.round(_b1)+"px");}else {this.removeStyleProperty(_b3);};this._outerWidthChanged("margin");return true;};proto._modifyMarginVertical=function(_b1,_b2,_b3,_b4){if(isValid(_b1)){this.setStyleProperty(_b3,Math.round(_b1)+"px");}else {this.removeStyleProperty(_b3);};this._outerHeightChanged("margin");return true;};QxWidget.cssLikeShortHandService=function(params){var l=params.length;if(l>4){throw new Error("Invalid number of arguments!");};var v;var forceList=new Array();var styleList=new Array();for(var i=0;i<l;i++){v=params[i];if(isValidNumber(v)){forceList.push(v);styleList.push(Math.round(v)+"px");}else if(v==""||v==null){forceList.push(null);styleList.push("");}else {throw new Error("Invalid shorthand value:"+v);};};switch(l){case 1:forceList[1]=forceList[2]=forceList[3]=forceList[0];styleList[1]=styleList[2]=styleList[3]=styleList[0];break;case 2:forceList[2]=forceList[0];styleList[2]=styleList[0];case 3:forceList[3]=forceList[1];styleList[3]=styleList[1];};return[forceList,styleList];};proto.setPadding=function(){try{var r=QxWidget.cssLikeShortHandService(arguments);}catch(ex){throw new Error("Invalid value for padding:"+ex);};var forceList=r[0];var styleList=r[1];this.forcePaddingTop(forceList[0]);this.forcePaddingRight(forceList[1]);this.forcePaddingBottom(forceList[2]);this.forcePaddingLeft(forceList[3]);this.setStyleProperty("paddingTop",styleList[0]);this.setStyleProperty("paddingRight",styleList[1]);this.setStyleProperty("paddingBottom",styleList[2]);this.setStyleProperty("paddingLeft",styleList[3]);this._recalculateFrame("padding");this._invalidatePreferred();return true;};proto.setMargin=function(){try{var r=QxWidget.cssLikeShortHandService(arguments);}catch(ex){throw new Error("Invalid value for margin:"+ex);};var forceList=r[0];var styleList=r[1];this.forceMarginTop(forceList[0]);this.forceMarginRight(forceList[1]);this.forceMarginBottom(forceList[2]);this.forceMarginLeft(forceList[3]);this.setStyleProperty("marginTop",styleList[0]);this.setStyleProperty("marginRight",styleList[1]);this.setStyleProperty("marginBottom",styleList[2]);this.setStyleProperty("marginLeft",styleList[3]);this._outerChanged("margin");return true;};proto.setEdge=function(){try{var r=QxWidget.cssLikeShortHandService(arguments);}catch(ex){throw new Error("Invalid value for edge:"+ex);};var forceList=r[0];this._omitRendering();this.setWidth(null);this.setHeight(null);this.setTop(forceList[0]);this.setRight(forceList[1]);this.setBottom(forceList[2]);this.setLeft(forceList[3]);this._activateRendering();return true;};proto.canGetFocus=function(){return this.isCreated()&&this.getTabIndex()>=0&&this.isEnabled();};proto.isFocusRoot=function(){return false;};proto._ontabfocus=function(){};proto._modifyFocused=function(_b1,_b2,_b3,_b4){if(!this.isCreated()){return true;};if(_b1){this.getTopLevelWidget().getFocusManager().setFocusedWidget(this,_b4);this._visualizeFocus();}else {this.getTopLevelWidget().getFocusManager().setFocusedWidget(null,_b4);this._visualizeBlur();};return true;};if((new QxClient).isOpera()){proto.repaint=function(){var d=this.getTopLevelWidget().getDocumentElement();var z=d.createElement("div");z.style.height=(d.body.offsetHeight)+"px";z.style.width=(d.body.offsetWidth)+"px";z.style.top="0px";z.style.left="0px";z.style.position="absolute";z.style.backgroundColor="blue";z.style.zIndex="100000000000000";d.body.appendChild(z);var el=this.getElement();var t=el.style.top;var l=el.style.left;el.style.top=(this.getComputedPageBoxTop()-5)+"px";el.style.left=(this.getComputedPageBoxLeft()-5)+"px";el.style.top=t;el.style.left=l;d.body.removeChild(z);};}else {proto.repaint=function(){};};if((new QxClient).isOpera()){proto._visualizeBlur=function(){this.setCssClassName(this.getCssClassName().remove("QxFocused"," ").remove(this.classname+"-Focused"," "));try{this.getElement().blur();}catch(ex){};this.repaint();return true;};proto._visualizeFocus=function(){this.setCssClassName(this.getCssClassName().add("QxFocused"," ").add(this.classname+"-Focused"," "));try{this.getElement().focus();}catch(ex){};this.repaint();return true;};}else {proto._visualizeBlur=function(){this.setCssClassName(this.getCssClassName().remove("QxFocused"," ").remove(this.classname+"-Focused"," "));try{this.getElement().blur();}catch(ex){};return true;};proto._visualizeFocus=function(){this.setCssClassName(this.getCssClassName().add("QxFocused"," ").add(this.classname+"-Focused"," "));try{this.getElement().focus();}catch(ex){};return true;};};proto._modifyCapture=function(_b1,_b2,_b3,_b4){if(_b2){this.getTopLevelWidget().getEventManager().setCaptureWidget(null,_b4);}else if(_b1){this.getTopLevelWidget().getEventManager().setCaptureWidget(this,_b4);};return true;};if((new QxClient).isMshtml()){proto._modifyTabIndex=function(_b1,_b2,_b3,_b4){this.setHtmlProperty("unselectable",_b1<0||!this.getEnabled());this.setHtmlProperty("tabIndex",_b1<0?-1:1);return true;};}else if((new QxClient).isGecko()){proto._modifyTabIndex=function(_b1,_b2,_b3,_b4){this.setStyleProperty("MozUserFocus",_b1<0?"ignore":"normal");this.setStyleProperty("userFocus",_b1<0?"ignore":"normal");return true;};}else {proto._modifyTabIndex=function(_b1,_b2,_b3,_b4){this.setStyleProperty("userFocus",_b1<0?"ignore":"normal");this.setHtmlProperty("tabIndex",_b1<0?-1:1);return true;};};proto._modifyCssClassName=function(_b1,_b2,_b3,_b4){this.setHtmlProperty("className",_b1);return true;};proto._evalCssClassName=function(){var v1=this.getHtmlProperty("className");if(typeof v1=="string"&&v1!="")return v1;else return this.classname;};proto._addCssClassName=function(_b1){this.setCssClassName(this.getCssClassName().add(_b1," "));};proto._removeCssClassName=function(_b1){this.setCssClassName(this.getCssClassName().remove(_b1," "));};proto.addCssClassNameDetail=function(_b1){this._addCssClassName(this.classname+"-"+_b1.toFirstUp());};proto.removeCssClassNameDetail=function(_b1){this._removeCssClassName(this.classname+"-"+_b1.toFirstUp());};proto.getWidgetFromPoint=function(x,y){var ret=this.getWidgetFromPointHelper(x,y);return ret&&ret!=this?ret:null;};proto.getWidgetFromPointHelper=function(x,y){var ch=this.getChildren();for(var chl=ch.length,i=0;i<chl;i++){if(ch[i].isCreated()&&QxDOM.getElementAbsolutePointChecker(ch[i].getElement(),x,y)){return ch[i].getWidgetFromPointHelper(x,y);};};return this;};proto.scrollIntoView=function(){if(!this.isCreated()){return;};this.scrollIntoViewX();this.scrollIntoViewY();};proto.scrollIntoViewX=function(){if(!this.isCreated()){return;};var p=this.getParent();if(!p){return;};var l=this.getOffsetLeft();var w=this.getOffsetWidth();var sl=p.getScrollLeft();var cw=p.getComputedAreaWidth();if(w>cw||l<sl){p.setScrollLeft(l);}else if(l+w>sl+cw){p.setScrollLeft(l+w-cw);};};proto.scrollIntoViewY=function(){if(!this.isCreated()){return;};var p=this.getParent();if(!p){return;};var t=this.getOffsetTop();var h=this.getOffsetHeight();var st=p.getScrollTop();var ch=p.getClientHeight();if(h>ch||t<st){p.setScrollTop(t);}else if(t+h>st+ch){p.setScrollTop(t+h-ch);};};if((new QxClient).isMshtml()){proto._modifyCanSelect=function(_b1,_b2,_b3,_b4){return _b1?this.removeHtmlProperty("unselectable"):this.setHtmlProperty("unselectable","on");};proto._evalCanSelect=function(_b3){var v=this.getHtmlProperty("unselectable");return v!="on"||v==null;};}else if((new QxClient).isGecko()){proto._modifyCanSelect=function(_b1,_b2,_b3,_b4){if(_b1){this.removeStyleProperty("MozUserSelect");this.removeStyleProperty("userSelect");}else {this.setStyleProperty("MozUserSelect","none");this.setStyleProperty("userSelect","none");};return true;};proto._evalCanSelect=function(_b3){var v=(new QxClient).isGecko()?this.getStyleProperty("MozUserSelect"):null;var v=v==null?this.getStyleProperty("userSelect"):v;return v!="none"||v==null;};}else {proto._modifyCanSelect=function(_b1,_b2,_b3,_b4){return _b1?this.removeStyleProperty("userSelect"):this.setStyleProperty("userSelect","none");};proto._evalCanSelect=function(_b3){throw new Error("_evalCanSelect is not implemented for this client!");};};if((new QxClient).isMshtml()){proto._modifyOpacity=function(_b1,_b2,_b3,_b4){if(_b1==null||_b1>1){this.removeStyleProperty("filter");}else if(isValidNumber(_b1)){this.setStyleProperty("filter","Alpha(Opacity="+Math.round(_b1.limit(0,1)*100)+")");}else {throw new Error("Unsupported opacity value:"+_b1);};return true;};proto._evalOpacity=function(){var o=this.getStyleProperty("filter");if(o==null||o==""){return 1;};var re = /Alpha\(Opacity=([0-9]{1,3})\)/;if(!re.test(o)){return 1;};return parseInt(RegExp.$1)/100;};}else {proto._modifyOpacity=function(_b1,_b2,_b3,_b4){if(_b1==null||_b1>1){if((new QxClient).isGecko()){this.removeStyleProperty("MozOpacity");}else if((new QxClient).isKhtml()){this.removeStyleProperty("KhtmlOpacity");};this.removeStyleProperty("opacity");}else if(isValidNumber(_b1)){_b1=_b1.limit(0,1);if((new QxClient).isGecko()){this.setStyleProperty("MozOpacity",_b1);}else if((new QxClient).isKhtml()){this.setStyleProperty("KhtmlOpacity",_b1);};this.setStyleProperty("opacity",_b1);};return true;};proto._evalOpacity=function(){var o=(new QxClient).isGecko()?this.getStyleProperty("MozOpacity"):(new QxClient).isKhtml()?this.getStyleProperty("KhtmlOpacity"):null;var o=o==null||o==""?this.getStyleProperty("opacity"):o;if(o==null||o==""){return 1;};return parseFloat(o);};};proto._modifyCursor=function(_b1,_b2,_b3,_b4){return this.setStyleProperty("cursor",_b1=="pointer"&&(new QxClient).isMshtml()?"hand":_b1);};proto._evalCursor=function(){var c=this.getStyleProperty("cursor");return c=="hand"?"pointer":c;};proto._modifyBackgroundImage=function(_b1,_b2,_b3,_b4){if(_b1==""||_b1=="null"){this.removeStyleProperty("backgroundImage");}else {this.setStyleProperty("backgroundImage","url("+(new QxImageManager).buildURI(_b1)+")");};return true;};proto._evalBackgroundImage=function(){var s=this.getStyleProperty("backgroundImage");return isInvalid(s) ? "" : s.replace(/^url\(/i, "").replace(/\)$/, "");};proto._modifyClip=function(_b1,_b2,_b3,_b4){if(_b1){try{var r=QxWidget.cssLikeShortHandService(_b1);}catch(ex){throw new Error("Invalid value for clip:"+ex);};r=r[1];this.setStyleProperty("clip","rect("+r[0]+","+r[1]+","+r[2]+","+r[3]+")");}else {this.removeStyleProperty("clip");};return true;};proto._modifyOverflow=function(_b1,_b2,_b3,_b4){var pv=_b1;var pn=_b3;if((new QxClient).isGecko()){switch(pv){case "hidden":pv="-moz-scrollbars-none";break;case "scrollX":pv="-moz-scrollbars-horizontal";break;case "scrollY":pv="-moz-scrollbars-vertical";break;};}else if((new QxClient).isMshtml()){switch(pv){case "scrollX":pn="overflowX";pv="scroll";break;case "scrollY":pn="overflowY";pv="scroll";break;};var a=["overflow","overflowX","overflowY"];for(var i=0;i<a.length;i++){if(a[i]!=pn){this.removeStyleProperty(a[i]);};};}else {switch(pv){case "scrollX":case "scrollY":pv="scroll";break;};};return this.setStyleProperty(pn,pv);};proto._evalOverflow=function(){var pv=this.getStyleProperty("overflow");if((new QxClient).isGecko()){switch(pv){case "-moz-scrollbars-none":pv="hidden";break;case "-moz-scrollbars-horizontal":pv="scrollX";break;case "-moz-scrollbars-vertical":pv="scrollY";break;};}else if((new QxClient).isMshtml()){var pvx=this.getStyleProperty("overflowX");var pvy=this.getStyleProperty("overflowY");if(pvx==pvy=="scroll"){pv="scroll";}else if(pvx=="scroll"){pv="scrollX";}else if(pvy=="scroll"){pv="scrollY";};};return pv;};proto._modifyBorder=function(_b1,_b2,_b3,_b4){if(_b2){_b2.removeWidget(this);};if(_b1){_b1.addWidget(this);};this._recalculateFrame("border");this._invalidatePreferred();return true;};proto.dispose=function(){if(this.getDisposed()){return;};var ch=this._a2;if(isValid(this._a2)){var chl=ch.length;for(var i=chl-1;i>=0;i--){this._a2[i].dispose();delete this._a2[i];};delete this._a2;};try{this.getElement()._QxWidget=null;}catch(ex){};delete this._usedDimensionsHorizontal;delete this._usedDimensionsVertical;QxTarget.prototype.dispose.call(this);for(var i in this._styleProperties){delete this._styleProperties[i];};delete this._styleProperties;for(var i in this._htmlProperties){delete this._htmlProperties[i];};delete this._htmlProperties;for(var i in this._htmlAttributes){delete this._htmlAttributes[i];};delete this._htmlAttributes;return true;};proto._clonePropertyIgnoreList="parent,element,visible,display,visibility,boxPrefHeight,boxPrefWidth";proto.clone=function(cloneRecursive,customPropertyList){var cloneInstance=new this.constructor;var propertyName;var propertyList=[];var propertyIngoreList=this._clonePropertyIgnoreList.split(",");var sourcePropertyList=isValid(customPropertyList)?customPropertyList:this._i1.split(",");var sourcePropertyListLength=sourcePropertyList.length-1;do{propertyName=sourcePropertyList[sourcePropertyListLength];if(!propertyIngoreList.contains(propertyName)){propertyList.push(propertyName);};}while(sourcePropertyListLength--);propertyListLength=propertyList.length-1;do{propertyName=propertyList[propertyListLength].toFirstUp();cloneInstance["set"+propertyName](this["get"+propertyName]());}while(propertyListLength--);if(sourcePropertyList.contains("parent")){var myParent=this.getParent();if(myParent){cloneInstance.setParent(myParent);};};if(sourcePropertyList.contains("visibility")){cloneInstance.setVisibility(this.getVisibility());};if(sourcePropertyList.contains("display")){cloneInstance.setDisplay(this.getDisplay());};if(cloneRecursive){this._cloneRecursive(cloneInstance);};return cloneInstance;};proto._cloneRecursive=function(cloneInstance){var ch=this.getChildren();var chl=ch.length;var cloneChild;for(var i=0;i<chl;i++){cloneChild=ch[i].clone(true);cloneInstance.add(cloneChild);};};proto.execute=function(){var vCommand=this.getCommand();if(vCommand){vCommand.execute(this);};if(this.hasEventListeners("execute")){this.dispatchEvent(new QxEvent("execute"));};if(this.hasEventListeners("action")){this.dispatchEvent(new QxEvent("action"));};};
\ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/widgets/QxWindow.js b/swat/style/qooxdoo/widgets/widgets/QxWindow.js
new file mode 100644 (file)
index 0000000..e4732f5
--- /dev/null
@@ -0,0 +1,5 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxWindow(vCaption,vIcon){QxPopup.call(this);this.setBorder(QxBorder.presets.outset);this.setMinWidth(200);this.setMinHeight(100);this.addEventListener("mousedown",this._onwindowmousedown,this);this.addEventListener("mouseup",this._onwindowmouseup,this);this.addEventListener("mousemove",this._onwindowmousemove,this);var c=this._frame=new QxWidget();c.set({timerCreate:false,border:QxBorder.presets.shadow});c=this._captionbar=new QxWidget;c.set({cssClassName:"QxWindowCaptionBar",top:0,left:0,right:0,height:18});c.addEventListener("mousedown",this._oncaptionmousedown,this);c.addEventListener("mouseup",this._oncaptionmouseup,this);c.addEventListener("mousemove",this._oncaptionmousemove,this);this.addToWindow(c);c=this._pane=new QxWidget;c.set({cssClassName:"QxWindowPane",top:18,bottom:0,left:0,right:0});this.addToWindow(c);if(isValidString(vIcon)){this.setIcon(vIcon);};if(isValidString(vCaption)){this.setCaption(vCaption);};};QxWindow.extend(QxPopup,"QxWindow");QxWindow.addProperty({name:"active",type:Boolean,defaultValue:false});QxWindow.addProperty({name:"modal",type:Boolean,defaultValue:false});QxWindow.addProperty({name:"opener",type:Object});QxWindow.addProperty({name:"caption",type:String});QxWindow.addProperty({name:"status",type:String,defaultValue:"Ready"});QxWindow.addProperty({name:"showClose",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"showMaximize",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"showMinimize",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"showStatusbar",type:Boolean,defaultValue:false});QxWindow.addProperty({name:"allowClose",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"allowMaximize",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"allowMinimize",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"showCaption",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"showIcon",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"resizeable",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"moveable",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"resizeMethod",type:String,defaultValue:"frame"});QxWindow.addProperty({name:"moveMethod",type:String,defaultValue:"opaque"});QxWindow.addProperty({name:"usePreferredWidthAsMin",type:Boolean,defaultValue:true});QxWindow.addProperty({name:"usePreferredHeightAsMin",type:Boolean,defaultValue:true});proto._windowManager=new QxWindowManager();proto.getPane=function(){return this._pane;};proto.getCaptionbar=function(){return this._captionbar;};proto.getStatusbar=function(){return this._statusbar;};proto.addToWindow=proto.add;proto.addToPane=function(){this._pane.add.apply(this._pane,arguments);};proto.addToCaptionbar=function(){this._captionbar.add.apply(this._captionbar,arguments);};proto.add=proto.addToPane;proto._beforeShow=function(_b4){QxAtom.prototype._beforeShow.call(this,_b4);(new QxPopupManager).update();this._windowManager.add(this);this._makeActive();this._layoutCommands();};proto._beforeHide=function(_b4){QxAtom.prototype._beforeHide.call(this,_b4);this._windowManager.remove(this);this._makeInactive();};proto.bringToFront=proto.sendToBack=function(){throw new Error("Warning:bringToFront()and sendToBack()are not supported by QxWindow!");};proto._d1=function(){return true;};proto._d2=function(){return true;};proto._d5Width=function(){return this._pane.getAnyWidth();};proto._d5Height=function(){var h=this.getShowStatusbar()&&this._statusbar?this._statusbar.getAnyHeight():0;h+=this._pane.getAnyHeight()+this._captionbar.getAnyHeight();return h;};proto._modifyElement=function(_b1,_b2,_b3,_b4){if(_b1){this._addCssClassName("QxAtomBase");if(this._c1&&!this._icon){this._e3Icon();};if(this._displayCaption&&!this._caption){this._e3Caption();};if(this.getShowMinimize()&&!this._minimizeButton&&!this.getModal()){this._e3MinimizeButton();};if(this.getShowMaximize()&&!this.getModal()){if(!this._restoreButton){this._e3RestoreButton();};if(!this._maximizeButton){this._e3MaximizeButton();};};if(this.getShowStatusbar()){this._e3Statusbar();};if(this.getShowClose()&&!this._closeButton){this._e3CloseButton();};};return QxWidget.prototype._modifyElement.call(this,_b1,_b2,_b3,_b4);};proto._setChildrenDependWidth=QxWidget.prototype._setChildrenDependWidth;proto._setChildrenDependHeight=QxWidget.prototype._setChildrenDependHeight;proto._childOuterWidthChanged=QxWidget.prototype._childOuterWidthChanged;proto._childOuterHeightChanged=QxWidget.prototype._childOuterHeightChanged;proto._d5Helper=QxWidget.prototype._d5Helper;proto._c1=false;proto._displayCaption=false;proto._modifyActive=function(_b1,_b2,_b3,_b4){if(_b1){this.addCssClassNameDetail("active");this._windowManager.setActiveWindow(this,_b4);}else {this.removeCssClassNameDetail("active");};return true;};proto._checkState=function(_b1,_b2,_b3,_b4){if(!this.getResizeable()&&(_b2!="minimized"||this._previousState!=_b1)){throw new Error("This state is not allowed:"+_b1+"!");};return _b1;};proto._modifyState=function(_b1,_b2,_b3,_b4){switch(_b1){case "minimized":this._minimize();break;case "maximized":this._maximize();break;default:this._restore();};this._previousState=_b2;return QxPopup.prototype._modifyState.call(this,_b1,_b2,_b3,_b4);};proto._modifyShowClose=function(_b1,_b2,_b3,_b4){if(_b1&&!this._closeButton){this._e3CloseButton();};this._layoutCommands();return true;};proto._modifyShowMaximize=function(_b1,_b2,_b3,_b4){if(_b1){if(!this._maximizeButton){this._e3MaximizeButton();};if(!this._restoreButton){this._e3RestoreButton();};};this._layoutCommands();return true;};proto._modifyShowMinimize=function(_b1,_b2,_b3,_b4){if(_b1&&!this._minimizeButton){this._e3MinimizeButton();};this._layoutCommands();return true;};proto._modifyResizeable=function(_b1,_b2,_b3,_b4){return this._applyAllowMaximize();};proto._modifyAllowMinimize=function(_b1,_b2,_b3,_b4){return this._applyAllowMinimize();};proto._modifyModal=function(_b1,_b2,_b3,_b4){this._applyAllowMinimize();this._applyAllowMaximize();this._layoutCommands();if(this.getActive()){this.forceModal(true);this.setVisible(false);this.forceModal(_b1);this.setVisible(true);};return true;};proto._applyAllowMinimize=function(){if(this._minimizeButton){this._minimizeButton.setEnabled(this.getAllowMinimize()&&!this.getModal());};return true;};proto._modifyAllowMaximize=function(_b1,_b2,_b3,_b4){return this._applyAllowMaximize();};proto._applyAllowMaximize=function(){var e=this.getAllowMaximize()&&this.getResizeable()&&(this.getMaxWidth()==null||this.getMaxWidth()==Infinity)&&(this.getMaxHeight()==null||this.getMaxHeight()==Infinity);if(this._maximizeButton){this._maximizeButton.setEnabled(e);};if(this._restoreButton){this._restoreButton.setEnabled(e);};return true;};proto._modifyAllowClose=function(_b1,_b2,_b3,_b4){return this._applyAllowClose();};proto._applyAllowClose=function(){if(this._closeButton){this._closeButton.setEnabled(this.getAllowClose());};return true;};proto._layoutCommands=function(){var s=0;if(this._closeButton){if(this.getShowClose()){this._closeButton.setRight(s);if(this._captionbar._wasVisible){this._closeButton.setVisible(true);};s+=this._closeButton.getWidth()+2;}else {this._closeButton.setVisible(false);};};if(this._maximizeButton&&this._restoreButton){if(this.getShowMaximize()){if(this.getState()=="maximized"){this._maximizeButton.setVisible(false);this._restoreButton.setRight(s);if(this._captionbar._wasVisible){this._restoreButton.setVisible(true);};s+=this._restoreButton.getWidth();}else {this._restoreButton.setVisible(false);this._maximizeButton.setRight(s);if(this._captionbar._wasVisible){this._maximizeButton.setVisible(true);};s+=this._maximizeButton.getWidth();};}else {this._maximizeButton.setVisible(false);this._restoreButton.setVisible(false);};};if(this._minimizeButton){if(this.getShowMinimize()){this._minimizeButton.setRight(s);if(this._captionbar._wasVisible){this._minimizeButton.setVisible(true);};}else {this._minimizeButton.setVisible(false);};};};proto._e3CloseButton=function(){var ob = this._closeButton = new QxButton(null, "widgets/window/close.gif");ob.set({top:0,height:15,width:16,tabIndex:-1});ob.addEventListener("click",this._onclosebuttonclick,this);ob.addEventListener("mousedown",this._onbuttonmousedown,this);this._applyAllowClose();this.addToCaptionbar(ob);};proto._e3MinimizeButton=function(){var ob = this._minimizeButton = new QxButton(null, "widgets/window/minimize.gif");ob.set({top:0,height:15,width:16,tabIndex:-1});ob.addEventListener("click",this._onminimizebuttonclick,this);ob.addEventListener("mousedown",this._onbuttonmousedown,this);this._applyAllowMinimize();this.addToCaptionbar(ob);};proto._e3RestoreButton=function(){var ob = this._restoreButton = new QxButton(null, "widgets/window/restore.gif");ob.set({top:0,height:15,width:16,tabIndex:-1});ob.addEventListener("click",this._onrestorebuttonclick,this);ob.addEventListener("mousedown",this._onbuttonmousedown,this);this._applyAllowMaximize();ob._shouldBecomeCreated=function(){return this.getParent().getParent().getState()=="maximized";};this.addToCaptionbar(ob);};proto._e3MaximizeButton=function(){var ob = this._maximizeButton = new QxButton(null, "widgets/window/maximize.gif");ob.set({top:0,height:15,width:16,tabIndex:-1});ob.addEventListener("click",this._onmaximizebuttonclick,this);ob.addEventListener("mousedown",this._onbuttonmousedown,this);this._applyAllowMaximize();ob._shouldBecomeCreated=function(){return this.getParent().getParent().getState()!="maximized";};this.addToCaptionbar(ob);};proto._e3Statusbar=function(){c=this._statusbar=new QxAtom;c.set({cssClassName:"QxWindowStatusBar",width:null,bottom:0,left:0,right:0,height:18,border:QxBorder.presets.thinInset,text:this.getStatus()});this.addToWindow(c);};proto._modifyStatus=function(_b1,_b2,_b3,_b4){if(this._statusbar){this._statusbar.setText(_b1,_b4);};return true;};proto._modifyShowStatusbar=function(_b1,_b2,_b3,_b4){if(_b1){this._statusbar?this.addToWindow(this._statusbar):this._e3Statusbar();this._pane.setBottom(18);}else {if(this._statusbar){this.remove(this._statusbar);};this._pane.setBottom(0);};return true;};proto._modifyCaption=function(_b1,_b2,_b3,_b4){var o=this._caption;if(this._updateUseCaption()){if(o){o.setHtml(_b1);o.setParent(this._captionbar);}else {this._e3Caption();};}else if(o){o.setParent(null);o.setHtml(_b1);};return true;};proto._updateUseCaption=function(){return this._displayCaption=this.getCaption()&&this.getShowCaption();};proto._e3Caption=function(){var o=this._caption=new QxContainer(this.getCaption());o.setTop(1);this._layoutCaption();o.setParent(this._captionbar);};proto._modifyShowCaption=function(_b1,_b2,_b3,_b4){var o=this._caption;if(this._updateUseCaption()){if(o){o.setParent(this._captionbar);}else {this._e3Caption();};}else if(o){o.setParent(null);};return true;};proto._layoutCaption=function(){if(!this._icon||!this._icon.isCreated()){return;};if(this._caption){this._caption.setLeft(this._c1?this._icon.getAnyWidth()+3:0)};};proto._modifyIcon=function(_b1,_b2,_b3,_b4){var o=this._icon;if(this._updateUseIcon()){if(o){o.setSource(_b1);o.setParent(this._captionbar);}else {this._e3Icon();};}else if(o){o.setParent(null);o.setSource(_b1);};return true;};proto._updateUseIcon=function(){return this._c1=this.getIcon()&&this.getShowIcon();};proto._e3Icon=function(){var o=this._icon=new QxImage(this.getIcon(),this.getIconWidth(),this.getIconHeight());o.setLocation(1,0);o.addEventListener("mousedown",this._oniconmousedown,this);o.addEventListener("load",this._oniconload,this);o.setParent(this._captionbar);};proto._modifyShowIcon=function(_b1,_b2,_b3,_b4){var o=this._icon;if(this._updateUseIcon()){if(o){o.setParent(this._captionbar);}else {this._e3Icon();};}else if(o){o.setParent(null);};this._layoutCaption();return true;};proto.close=function(){this.setVisible(false);};proto.open=function(vOpener){if(isValid(vOpener)){this.setOpener(vOpener);};this.setVisible(true);};proto.focus=function(){this.setActive(true);};proto.blur=function(){this.setActive(false);};proto.maximize=function(){this.setState("maximized");};proto.minimize=function(){this.setState("minimized");};proto.restore=function(){this.setState(null);};proto._previousState=null;proto._minimize=function(){this.blur();this.setVisible(false);};proto._restore=function(){if(this.getVisible()){this._omitRendering();};this.setLeft(this._previousLeft?this._previousLeft:null);this.setRight(this._previousRight?this._previousRight:null);this.setTop(this._previousTop?this._previousTop:null);this.setBottom(this._previousBottom?this._previousBottom:null);this.setWidth(this._previousWidth?this._previousWidth:null);this.setHeight(this._previousHeight?this._previousHeight:null);this.getVisible()?this._activateRendering():this.setVisible(true);this._layoutCommands();this.focus();};proto._maximize=function(){if(this.getVisible()){this._omitRendering();};this._previousLeft=this.getLeft();this._previousWidth=this.getWidth();this._previousRight=this.getRight();this._previousTop=this.getTop();this._previousHeight=this.getHeight();this._previousBottom=this.getBottom();this.setWidth(null);this.setLeft(0);this.setRight(0);this.setHeight(null);this.setTop(0);this.setBottom(0);this.getVisible()?this._activateRendering():this.setVisible(true);this._layoutCommands();this.focus();};proto._onwindowmousedown=function(e){this.focus();if(this._resizeMode){this.setCapture(true);this.getTopLevelWidget().setGlobalCursor(this.getCursor());var pa=this.getParent();var l=pa.getComputedPageAreaLeft();var t=pa.getComputedPageAreaTop();var r=pa.getComputedPageAreaRight();var b=pa.getComputedPageAreaBottom();switch(this.getResizeMethod()){case "translucent":this.setOpacity(0.5);break;case "frame":var f=this._frame;f._d3Horizontal(this.getComputedPageBoxLeft()-l);f._d3Vertical(this.getComputedPageBoxTop()-t);f._applySizeHorizontal(this.getComputedBoxWidth());f._applySizeVertical(this.getComputedBoxHeight());f.setZIndex(this.getZIndex()+1);f.setParent(this.getParent());break;};var s=this._resizeSession={};switch(this._resizeMode){case "nw":case "sw":case "w":s.boxWidth=this.getComputedBoxWidth();s.boxRight=this.getComputedPageBoxRight();case "ne":case "se":case "e":s.boxLeft=this.getComputedPageBoxLeft();s.parentAreaOffsetLeft=l;s.parentAreaOffsetRight=r;s.minWidth=this.getUsePreferredWidthAsMin()?Math.max(this.getMinWidth(),this.getPreferredWidth()):this.getMinWidth();s.maxWidth=this.getMaxWidth();};switch(this._resizeMode){case "nw":case "ne":case "n":s.boxHeight=this.getComputedBoxHeight();s.boxBottom=this.getComputedPageBoxBottom();case "sw":case "se":case "s":s.boxTop=this.getComputedPageBoxTop();s.parentAreaOffsetTop=t;s.parentAreaOffsetBottom=b;s.minHeight=this.getUsePreferredHeightAsMin()?Math.max(this.getMinHeight(),this.getPreferredHeight()):this.getMinHeight();s.maxHeight=this.getMaxHeight();};}else {delete this._resizeSession;};};proto._onwindowmouseup=function(e){var s=this._resizeSession;if(s){this.setCapture(false);this.getTopLevelWidget().setGlobalCursor(null);switch(this.getResizeMethod()){case "frame":var o=this._frame;if(!(o&&o.getParent())){break;};case "lazyopaque":if(isValidNumber(s.lastLeft)){this.setLeft(s.lastLeft);};if(isValidNumber(s.lastTop)){this.setTop(s.lastTop);};if(isValidNumber(s.lastWidth)){this.setWidth(s.lastWidth);};if(isValidNumber(s.lastHeight)){this.setHeight(s.lastHeight);};if(this.getResizeMethod()=="frame"){this._frame.setParent(null);};break;case "translucent":this.setOpacity(null);break;};delete this._resizeMode;delete this._resizeSession;};};proto._near=function(p,e){return e>(p-5)&&e<(p+5);};proto._onwindowmousemove=function(e){if(!this.getResizeable()||this.getState()!=null){return;};var s=this._resizeSession;if(s){switch(this._resizeMode){case "nw":case "sw":case "w":s.lastWidth=(s.boxWidth+s.boxLeft-Math.max(e.getPageX(),s.parentAreaOffsetLeft)).limit(s.minWidth,s.maxWidth);s.lastLeft=s.boxRight-s.lastWidth-s.parentAreaOffsetLeft;break;case "ne":case "se":case "e":s.lastWidth=(Math.min(e.getPageX(),s.parentAreaOffsetRight)-s.boxLeft).limit(s.minWidth,s.maxWidth);break;};switch(this._resizeMode){case "nw":case "ne":case "n":s.lastHeight=(s.boxHeight+s.boxTop-Math.max(e.getPageY(),s.parentAreaOffsetTop)).limit(s.minHeight,s.maxHeight);s.lastTop=s.boxBottom-s.lastHeight-s.parentAreaOffsetTop;break;case "sw":case "se":case "s":s.lastHeight=(Math.min(e.getPageY(),s.parentAreaOffsetBottom)-s.boxTop).limit(s.minHeight,s.maxHeight);break;};switch(this.getResizeMethod()){case "opaque":case "translucent":switch(this._resizeMode){case "nw":case "sw":case "w":this.setLeft(s.lastLeft);case "ne":case "se":case "e":this.setWidth(s.lastWidth);};switch(this._resizeMode){case "nw":case "ne":case "n":this.setTop(s.lastTop);case "sw":case "se":case "s":this.setHeight(s.lastHeight);};break;default:var o=this.getResizeMethod()=="frame"?this._frame:this;switch(this._resizeMode){case "nw":case "sw":case "w":o._d3Horizontal(s.lastLeft);case "ne":case "se":case "e":o._applySizeHorizontal(s.lastWidth);};switch(this._resizeMode){case "nw":case "ne":case "n":o._d3Vertical(s.lastTop);case "sw":case "se":case "s":o._applySizeVertical(s.lastHeight);};};}else {var resizeMode="";if(this._near(this.getComputedPageBoxTop(),e.getPageY())){resizeMode="n";}else if(this._near(this.getComputedPageBoxBottom(),e.getPageY())){resizeMode="s";};if(this._near(this.getComputedPageBoxLeft(),e.getPageX())){resizeMode+="w";}else if(this._near(this.getComputedPageBoxRight(),e.getPageX())){resizeMode+="e";};if(resizeMode!=""){this._resizeMode=resizeMode;this.setCursor(resizeMode+"-resize");}else {delete this._resizeMode;this.setCursor(null);};};};proto._oniconmousedown=function(e){e.stopPropagation();};proto._onbuttonmousedown=function(e){e.stopPropagation();};proto._oniconload=function(e){this._layoutCaption();};proto._oncaptionmousedown=function(e){if(e.isNotLeftButton()||!this.getMoveable()||this.getState()!=null){return;};this._captionbar.setCapture(true);var pa=this.getParent();var l=pa.getComputedPageAreaLeft();var t=pa.getComputedPageAreaTop();var r=pa.getComputedPageAreaRight();var b=pa.getComputedPageAreaBottom();this._dragSession=
+{offsetX:e.getPageX()-this.getComputedPageBoxLeft()+l,offsetY:e.getPageY()-this.getComputedPageBoxTop()+t,parentAvailableAreaLeft:l+5,parentAvailableAreaTop:t+5,parentAvailableAreaRight:r-5,parentAvailableAreaBottom:b-5
+};switch(this.getMoveMethod()){case "translucent":this.setOpacity(0.5);break;case "frame":var f=this._frame;f._d3Horizontal(this.getComputedPageBoxLeft()-l);f._d3Vertical(this.getComputedPageBoxTop()-t);f._applySizeHorizontal(this.getComputedBoxWidth());f._applySizeVertical(this.getComputedBoxHeight());f.setZIndex(this.getZIndex()+1);f.setParent(this.getParent());break;};};proto._oncaptionmouseup=function(e){var s=this._dragSession;if(!s){return;};this._captionbar.setCapture(false);if(isValidNumber(s.lastX)){this.setLeft(s.lastX);};if(isValidNumber(s.lastY)){this.setTop(s.lastY);};switch(this.getMoveMethod()){case "translucent":this.setOpacity(null);break;case "frame":this._frame.setParent(null);break;};delete this._dragSession;};proto._oncaptionmousemove=function(e){var s=this._dragSession;if(!s||!this._captionbar.getCapture()){return;};if(!e.getPageX().inrange(s.parentAvailableAreaLeft,s.parentAvailableAreaRight)||!e.getPageY().inrange(s.parentAvailableAreaTop,s.parentAvailableAreaBottom)){return;};var o=this.getMoveMethod()=="frame"?this._frame:this;o._d3Horizontal(s.lastX=e.getPageX()-s.offsetX);o._d3Vertical(s.lastY=e.getPageY()-s.offsetY);};proto._onminimizebuttonclick=function(e){this.minimize();e.stopPropagation();};proto._onrestorebuttonclick=function(e){this.restore();e.stopPropagation();};proto._onmaximizebuttonclick=function(e){this.maximize();e.stopPropagation();};proto._onclosebuttonclick=function(e){this.close();e.stopPropagation();};proto.dispose=function(){if(this.getDisposed()){return;};this.removeEventListener("mousedown",this._onwindowmousedown,this);this.removeEventListener("mouseup",this._onwindowmouseup,this);this.removeEventListener("mousemove",this._onwindowmousemove,this);var w=this._caption;if(w){w.dispose();this._caption=null;};w=this._icon;if(w){w.removeEventListener("mousedown",this._oniconmousedown,this);w.dispose();this._icon=null;};w=this._closeButton;if(w){w.removeEventListener("click",this._onclosebuttonclick,this);w.removeEventListener("mousedown",this._onbuttonmousedown,this);w.dispose();this._closeButton=null;};w=this._restoreButton;if(w){w.removeEventListener("click",this._onrestorebuttonclick,this);w.removeEventListener("mousedown",this._onbuttonmousedown,this);w.dispose();this._restoreButton=null;};w=this._maximizeButton;if(w){w.removeEventListener("click",this._onmaximizebuttonclick,this);w.removeEventListener("mousedown",this._onbuttonmousedown,this);w.dispose();this._maximizeButton=null;};w=this._minimizeButton;if(w){w.removeEventListener("click",this._onminimizebuttonclick,this);w.removeEventListener("mousedown",this._onbuttonmousedown,this);w.dispose();this._minimizeButton=null;};w=this._captionbar;if(w){w.removeEventListener("mousedown",this._oncaptionmousedown,this);w.removeEventListener("mouseup",this._oncaptionmouseup,this);w.removeEventListener("mousemove",this._oncaptionmousemove,this);w.dispose();this._captionbar=null;};w=this._pane;if(w){w.dispose();this._pane=null;};w=this._statusbar;if(w){w.dispose();this._statusbar=null
+};};
\ No newline at end of file
similarity index 100%
rename from webapps/style/swat.css
rename to swat/style/swat.css
similarity index 100%
rename from webapps/style/wide.css
rename to swat/style/wide.css
diff --git a/swat/wins_server/index.esp b/swat/wins_server/index.esp
new file mode 100644 (file)
index 0000000..b91ef6f
--- /dev/null
@@ -0,0 +1,13 @@
+<% page_header("columns", "WINS Server", "servers"); 
+
+  libinclude("base.js");
+  libinclude("management.js");
+%>
+
+<h1>WINS Server</h1>
+
+<%
+writefln("Status: %s\n", server_status("wins"));
+%>
+
+<% page_footer(); %>
index a903dc2c3e587d65d3fbda45bebb8654dce34c3a..b00397d2ee1606f05727b8bf7327e7e8a2314c88 100644 (file)
@@ -5,19 +5,19 @@
    debug level = 5
 
 [cd1]
-path = /mnt/cd1
-public = yes
+       path = /mnt/cd1
+       public = yes
 
 [cd2]
-path = /mnt/cd2
-public = yes
+       path = /mnt/cd2
+       public = yes
 
 [media]
-path = /media
-public = yes
+       path = /media
+       public = yes
 
 [tmp]
-path = /tmp
-guest only = yes
-public = yes
-read only = no
+       path = /tmp
+       guest only = yes
+       public = yes
+       read only = no
index 588c308f9c87520030941e23e93644e5eac25d2e..23df04c84c9aef95a3aeb6e9e1459cfe25867645 100755 (executable)
@@ -14,7 +14,8 @@ USERNAME=$2
 PASSWORD=$3
 DOMAIN=$4
 
-DD=bin/cifsdd
+samba4bindir=`dirname $0`/../../source/bin
+DD=$samba4bindir/cifsdd
 
 SHARE=tmp
 DEBUGLEVEL=1
index 09777df16daf1df99a737ee6ab8948abe7a80800..db12fba2f8354e192311894cef0b1d06baaa95e6 100755 (executable)
@@ -19,6 +19,11 @@ PREFIX=$6
 shift 6
 failed=0
 
+samba4bindir=`dirname $0`/../../source/bin
+smbclient=$samba4bindir/smbclient
+samba4kinit=$samba4bindir/samba4kinit
+net=$samba4bindir/net
+
 testit() {
        name="$1"
        shift
@@ -41,7 +46,7 @@ test_smbclient() {
        shift
        shift
        echo "test: $name"
-       $VALGRIND bin/smbclient $CONFIGURATION //$SERVER/tmp -c "$cmd" -W "$DOMAIN" -U"$USERNAME%$PASSWORD" $@
+       $VALGRIND $smbclient $CONFIGURATION //$SERVER/tmp -c "$cmd" -W "$DOMAIN" -U"$USERNAME%$PASSWORD" $@
        status=$?
        if [ x$status = x0 ]; then
                echo "success: $name"
@@ -55,18 +60,18 @@ KRB5CCNAME=`pwd`/tmpccache
 export KRB5CCNAME
 
 echo $PASSWORD > ./tmppassfile
-testit "kinit with password" bin/samba4kinit --password-file=./tmppassfile --request-pac $USERNAME@$REALM   || failed=`expr $failed + 1`
-testit "kinit with pkinit" bin/samba4kinit --request-pac --pk-user=FILE:$PREFIX/dc/private/tls/admincert.pem,$PREFIX/dc/private/tls/adminkey.pem $USERNAME@$REALM || failed=`expr $failed + 1`
+testit "kinit with password" $samba4kinit --password-file=./tmppassfile --request-pac $USERNAME@$REALM   || failed=`expr $failed + 1`
+testit "kinit with pkinit" $samba4kinit --request-pac --pk-user=FILE:$PREFIX/dc/private/tls/admincert.pem,$PREFIX/dc/private/tls/adminkey.pem $USERNAME@$REALM || failed=`expr $failed + 1`
 
 test_smbclient "Test login with kerberos ccache" 'ls' -k yes || failed=`expr $failed + 1`
 
-testit "domain join with kerberos ccache" $VALGRIND bin/net join $DOMAIN $CONFIGURATION  -W "$DOMAIN" -k yes $@ || failed=`expr $failed + 1`
-testit "check time with kerberos ccache" $VALGRIND bin/net time $SERVER $CONFIGURATION  -W "$DOMAIN" -k yes $@ || failed=`expr $failed + 1`
+testit "domain join with kerberos ccache" $VALGRIND $net join $DOMAIN $CONFIGURATION  -W "$DOMAIN" -k yes $@ || failed=`expr $failed + 1`
+testit "check time with kerberos ccache" $VALGRIND $net time $SERVER $CONFIGURATION  -W "$DOMAIN" -k yes $@ || failed=`expr $failed + 1`
 
-testit "add user with kerberos ccache" $VALGRIND bin/net user add nettestuser $CONFIGURATION  -k yes $@ || failed=`expr $failed + 1`
+testit "add user with kerberos ccache" $VALGRIND $net user add nettestuser $CONFIGURATION  -k yes $@ || failed=`expr $failed + 1`
 USERPASS=testPass@12%
 
-testit "set user password with kerberos ccache" $VALGRIND bin/net password set $DOMAIN\\nettestuser $USERPASS $CONFIGURATION  -k yes $@ || failed=`expr $failed + 1`
+testit "set user password with kerberos ccache" $VALGRIND $net password set $DOMAIN\\nettestuser $USERPASS $CONFIGURATION  -k yes $@ || failed=`expr $failed + 1`
 
 #KRB5CCNAME=`pwd`/tmpuserccache
 #export KRB5CCNAME
@@ -76,7 +81,7 @@ testit "set user password with kerberos ccache" $VALGRIND bin/net password set $
 #KRB5CCNAME=`pwd`/tmpccache
 #export KRB5CCNAME
 
-testit "del user with kerberos ccache" $VALGRIND bin/net user delete nettestuser $CONFIGURATION  -k yes $@ || failed=`expr $failed + 1`
+testit "del user with kerberos ccache" $VALGRIND $net user delete nettestuser $CONFIGURATION  -k yes $@ || failed=`expr $failed + 1`
 
 rm -f tmpccfile tmppassfile tmpuserccache
 exit $failed
index 35f2570d3170572c9060d132df3d7d7f79c12a56..bd3df0b2545281684902bdaea48c395bbdcd2c96 100755 (executable)
@@ -18,6 +18,9 @@ PREFIX=$5
 shift 5
 failed=0
 
+samba4bindir=`dirname $0`/../../source/bin
+smbclient=$samba4bindir/smbclient
+
 testit() {
        name="$1"
        shift
@@ -39,7 +42,7 @@ runcmd() {
        shift
        shift
        echo "test: $name"
-       $VALGRIND bin/smbclient $CONFIGURATION //$SERVER/tmp -c "$cmd" -W "$DOMAIN" -U"$USERNAME%$PASSWORD" $@
+       $VALGRIND $smbclient $CONFIGURATION //$SERVER/tmp -c "$cmd" -W "$DOMAIN" -U"$USERNAME%$PASSWORD" $@
        status=$?
        if [ x$status = x0 ]; then
                echo "success: $name"
@@ -49,9 +52,9 @@ runcmd() {
        return $status
 }
 
-testit "share and server list" $VALGRIND bin/smbclient -L $SERVER $CONFIGURATION  -W "$DOMAIN" -U"$USERNAME%$PASSWORD" $@ || failed=`expr $failed + 1`
+testit "share and server list" $VALGRIND $smbclient -L $SERVER $CONFIGURATION  -W "$DOMAIN" -U"$USERNAME%$PASSWORD" $@ || failed=`expr $failed + 1`
 
-testit "share and server list anonymously" $VALGRIND bin/smbclient -N -L $SERVER $CONFIGURATION $@ || failed=`expr $failed + 1`
+testit "share and server list anonymously" $VALGRIND $smbclient -N -L $SERVER $CONFIGURATION $@ || failed=`expr $failed + 1`
 
 testit "domain join" $VALGRIND bin/net join $DOMAIN $CONFIGURATION  -W "$DOMAIN" -U"$USERNAME%$PASSWORD" $@ || failed=`expr $failed + 1`
 
@@ -114,9 +117,9 @@ runcmd "List directory with LANMAN2" 'ls' -m LANMAN2 || failed=`expr $failed + 1
 
 runcmd "Print current working directory" 'pwd'|| failed=`expr $failed + 1`
 
-testit "Test login with --machine-pass without kerberos" $VALGRIND bin/smbclient -c 'ls' $CONFIGURATION //$SERVER/tmp --machine-pass -k no || failed=`expr $failed + 1`
+testit "Test login with --machine-pass without kerberos" $VALGRIND $smbclient -c 'ls' $CONFIGURATION //$SERVER/tmp --machine-pass -k no || failed=`expr $failed + 1`
 
-testit "Test login with --machine-pass and kerberos" $VALGRIND bin/smbclient -c 'ls' $CONFIGURATION //$SERVER/tmp --machine-pass -k yes || failed=`expr $failed + 1`
+testit "Test login with --machine-pass and kerberos" $VALGRIND $smbclient -c 'ls' $CONFIGURATION //$SERVER/tmp --machine-pass -k yes || failed=`expr $failed + 1`
 
 (
     echo "password=$PASSWORD"
@@ -124,24 +127,24 @@ testit "Test login with --machine-pass and kerberos" $VALGRIND bin/smbclient -c
     echo "domain=$DOMAIN"
 ) > tmpauthfile
 
-testit "Test login with --authentication-file" $VALGRIND bin/smbclient -c 'ls' $CONFIGURATION //$SERVER/tmp --authentication-file=tmpauthfile  || failed=`expr $failed + 1`
+testit "Test login with --authentication-file" $VALGRIND $smbclient -c 'ls' $CONFIGURATION //$SERVER/tmp --authentication-file=tmpauthfile  || failed=`expr $failed + 1`
 
 PASSWD_FILE="tmppassfile" 
 echo "$PASSWORD" > $PASSWD_FILE
 export PASSWD_FILE
-testit "Test login with PASSWD_FILE" $VALGRIND bin/smbclient -c 'ls' $CONFIGURATION //$SERVER/tmp -W "$DOMAIN" -U"$USERNAME" || failed=`expr $failed + 1`
+testit "Test login with PASSWD_FILE" $VALGRIND $smbclient -c 'ls' $CONFIGURATION //$SERVER/tmp -W "$DOMAIN" -U"$USERNAME" || failed=`expr $failed + 1`
 PASSWD_FILE=""
 export PASSWD_FILE
 unset PASSWD_FILE
 
 PASSWD="$PASSWORD" 
 export PASSWD
-testit "Test login with PASSWD" $VALGRIND bin/smbclient -c 'ls' $CONFIGURATION //$SERVER/tmp -W "$DOMAIN" -U"$USERNAME" || failed=`expr $failed + 1`
+testit "Test login with PASSWD" $VALGRIND $smbclient -c 'ls' $CONFIGURATION //$SERVER/tmp -W "$DOMAIN" -U"$USERNAME" || failed=`expr $failed + 1`
 
 oldUSER=$USER
 USER="$USERNAME" 
 export USER
-testit "Test login with USER and PASSWD" $VALGRIND bin/smbclient -c 'ls' $CONFIGURATION //$SERVER/tmp -W "$DOMAIN" || failed=`expr $failed + 1`
+testit "Test login with USER and PASSWD" $VALGRIND $smbclient -c 'ls' $CONFIGURATION //$SERVER/tmp -W "$DOMAIN" || failed=`expr $failed + 1`
 PASSWD=
 export PASSWD
 unset PASSWD
index 774219a1ab673e32363cd05ff8c9367023895caa..36b175f2c12bb516da0f77106a7adc7b17b1e994 100755 (executable)
@@ -60,6 +60,11 @@ x: 4
        res = ldb.search("x=4", NULL, ldb.SCOPE_DEFAULT, attrs);
        assert(res.msgs[0].dn == "cn=x3,cn=test");
 
+       ok = ldb.rename("cn=x3,cn=test", "cn=X3,cn=test");
+       assert(ok.error == 0);
+       res = ldb.search("x=4", NULL, ldb.SCOPE_DEFAULT, attrs);
+       assert(res.msgs[0].dn == "cn=X3,cn=test");
+
        ok = ldb.modify("
 dn: cn=x3,cn=test
 changetype: modify
@@ -92,7 +97,6 @@ partition: cn=SideTest:" + prefix + "/" + "testside.ldb
 partition: cn=Sub,cn=PartTest:" + prefix + "/" + "testsub.ldb
 partition: cn=PartTest:" + prefix + "/" + "testpartition.ldb
 partition: cn=Sub,cn=Sub,cn=PartTest:" + prefix + "/" + "testsubsub.ldb
-replicateEntries: @SUBCLASSES
 replicateEntries: @ATTRIBUTES
 replicateEntries: @INDEXLIST
 modules: cn=PartTest:objectguid
diff --git a/webapps/qooxdoo-0.6.5-sdk/AUTHORS b/webapps/qooxdoo-0.6.5-sdk/AUTHORS
deleted file mode 100644 (file)
index da3a56b..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Please point your browser to:
-http://qooxdoo.org/about/developers
diff --git a/webapps/qooxdoo-0.6.5-sdk/LICENSE b/webapps/qooxdoo-0.6.5-sdk/LICENSE
deleted file mode 100644 (file)
index aa12745..0000000
+++ /dev/null
@@ -1,778 +0,0 @@
-qooxdoo Licensing Information
-=============================
-
-qooxdoo may be used under the terms of either the
-
-  * GNU Lesser General Public License (LGPL)
-    http://www.gnu.org/licenses/lgpl.html
-
-or the
-
-  * Eclipse Public License (EPL)
-    http://www.eclipse.org/org/documents/epl-v10.php
-
-As a recipient of qooxdoo, you may choose which license to receive the code 
-under. Certain files or entire directories may not be covered by this 
-dual license, but are subject to licenses compatible to both LGPL and EPL.
-License exceptions are explicitly declared in all relevant files or in a 
-LICENSE file in the relevant directories.
-
-________________________________________________________________________________
-
-Important Note For Projects That Need To Comply With EPL:
----------------------------------------------------------
-
-The qooxdoo default icon theme ("Nuvola") is available only under the LGPL. 
-Therefore, you have to select another icon theme that is compatible to EPL. 
-
-You may do so by switching to another default icon theme:
-in class qx.manager.object.ImageManager, which is declared in file 
-frontend/framework/source/class/qx/manager/object/ImageManager.js, change 
-the following line
-  qx.Settings.setDefault("iconTheme", "qx.theme.icon.Nuvola");
-to either
-  qx.Settings.setDefault("iconTheme", "qx.theme.icon.NuoveXT");
-or
-  qx.Settings.setDefault("iconTheme", "qx.theme.icon.VistaInspirate");
-or to a custom icon theme that is license-compatible.
-________________________________________________________________________________
-
-
-The full text of the LGPL and EPL licenses is attached below. 
-
-********************************************************************************
-
-                 GNU LESSER GENERAL PUBLIC LICENSE
-                      Version 2.1, February 1999
-
- Copyright (C) 1991, 1999 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-[This is the first released version of the Lesser GPL.  It also counts
- as the successor of the GNU Library Public License, version 2, hence
- the version number 2.1.]
-
-                           Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-Licenses are intended to guarantee your freedom to share and change
-free software--to make sure the software is free for all its users.
-
-  This license, the Lesser General Public License, applies to some
-specially designated software packages--typically libraries--of the
-Free Software Foundation and other authors who decide to use it.  You
-can use it too, but we suggest you first think carefully about whether
-this license or the ordinary General Public License is the better
-strategy to use in any particular case, based on the explanations below.
-
-  When we speak of free software, we are referring to freedom of use,
-not price.  Our General Public Licenses are designed to make sure that
-you have the freedom to distribute copies of free software (and charge
-for this service if you wish); that you receive source code or can get
-it if you want it; that you can change the software and use pieces of
-it in new free programs; and that you are informed that you can do
-these things.
-
-  To protect your rights, we need to make restrictions that forbid
-distributors to deny you these rights or to ask you to surrender these
-rights.  These restrictions translate to certain responsibilities for
-you if you distribute copies of the library or if you modify it.
-
-  For example, if you distribute copies of the library, whether gratis
-or for a fee, you must give the recipients all the rights that we gave
-you.  You must make sure that they, too, receive or can get the source
-code.  If you link other code with the library, you must provide
-complete object files to the recipients, so that they can relink them
-with the library after making changes to the library and recompiling
-it.  And you must show them these terms so they know their rights.
-
-  We protect your rights with a two-step method: (1) we copyright the
-library, and (2) we offer you this license, which gives you legal
-permission to copy, distribute and/or modify the library.
-
-  To protect each distributor, we want to make it very clear that
-there is no warranty for the free library.  Also, if the library is
-modified by someone else and passed on, the recipients should know
-that what they have is not the original version, so that the original
-author's reputation will not be affected by problems that might be
-introduced by others.
-\f
-  Finally, software patents pose a constant threat to the existence of
-any free program.  We wish to make sure that a company cannot
-effectively restrict the users of a free program by obtaining a
-restrictive license from a patent holder.  Therefore, we insist that
-any patent license obtained for a version of the library must be
-consistent with the full freedom of use specified in this license.
-
-  Most GNU software, including some libraries, is covered by the
-ordinary GNU General Public License.  This license, the GNU Lesser
-General Public License, applies to certain designated libraries, and
-is quite different from the ordinary General Public License.  We use
-this license for certain libraries in order to permit linking those
-libraries into non-free programs.
-
-  When a program is linked with a library, whether statically or using
-a shared library, the combination of the two is legally speaking a
-combined work, a derivative of the original library.  The ordinary
-General Public License therefore permits such linking only if the
-entire combination fits its criteria of freedom.  The Lesser General
-Public License permits more lax criteria for linking other code with
-the library.
-
-  We call this license the "Lesser" General Public License because it
-does Less to protect the user's freedom than the ordinary General
-Public License.  It also provides other free software developers Less
-of an advantage over competing non-free programs.  These disadvantages
-are the reason we use the ordinary General Public License for many
-libraries.  However, the Lesser license provides advantages in certain
-special circumstances.
-
-  For example, on rare occasions, there may be a special need to
-encourage the widest possible use of a certain library, so that it becomes
-a de-facto standard.  To achieve this, non-free programs must be
-allowed to use the library.  A more frequent case is that a free
-library does the same job as widely used non-free libraries.  In this
-case, there is little to gain by limiting the free library to free
-software only, so we use the Lesser General Public License.
-
-  In other cases, permission to use a particular library in non-free
-programs enables a greater number of people to use a large body of
-free software.  For example, permission to use the GNU C Library in
-non-free programs enables many more people to use the whole GNU
-operating system, as well as its variant, the GNU/Linux operating
-system.
-
-  Although the Lesser General Public License is Less protective of the
-users' freedom, it does ensure that the user of a program that is
-linked with the Library has the freedom and the wherewithal to run
-that program using a modified version of the Library.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.  Pay close attention to the difference between a
-"work based on the library" and a "work that uses the library".  The
-former contains code derived from the library, whereas the latter must
-be combined with the library in order to run.
-\f
-                 GNU LESSER GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License Agreement applies to any software library or other
-program which contains a notice placed by the copyright holder or
-other authorized party saying it may be distributed under the terms of
-this Lesser General Public License (also called "this License").
-Each licensee is addressed as "you".
-
-  A "library" means a collection of software functions and/or data
-prepared so as to be conveniently linked with application programs
-(which use some of those functions and data) to form executables.
-
-  The "Library", below, refers to any such software library or work
-which has been distributed under these terms.  A "work based on the
-Library" means either the Library or any derivative work under
-copyright law: that is to say, a work containing the Library or a
-portion of it, either verbatim or with modifications and/or translated
-straightforwardly into another language.  (Hereinafter, translation is
-included without limitation in the term "modification".)
-
-  "Source code" for a work means the preferred form of the work for
-making modifications to it.  For a library, complete source code means
-all the source code for all modules it contains, plus any associated
-interface definition files, plus the scripts used to control compilation
-and installation of the library.
-
-  Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running a program using the Library is not restricted, and output from
-such a program is covered only if its contents constitute a work based
-on the Library (independent of the use of the Library in a tool for
-writing it).  Whether that is true depends on what the Library does
-and what the program that uses the Library does.
-  
-  1. You may copy and distribute verbatim copies of the Library's
-complete source code as you receive it, in any medium, provided that
-you conspicuously and appropriately publish on each copy an
-appropriate copyright notice and disclaimer of warranty; keep intact
-all the notices that refer to this License and to the absence of any
-warranty; and distribute a copy of this License along with the
-Library.
-
-  You may charge a fee for the physical act of transferring a copy,
-and you may at your option offer warranty protection in exchange for a
-fee.
-
-  2. You may modify your copy or copies of the Library or any portion
-of it, thus forming a work based on the Library, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) The modified work must itself be a software library.
-
-    b) You must cause the files modified to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    c) You must cause the whole of the work to be licensed at no
-    charge to all third parties under the terms of this License.
-
-    d) If a facility in the modified Library refers to a function or a
-    table of data to be supplied by an application program that uses
-    the facility, other than as an argument passed when the facility
-    is invoked, then you must make a good faith effort to ensure that,
-    in the event an application does not supply such function or
-    table, the facility still operates, and performs whatever part of
-    its purpose remains meaningful.
-
-    (For example, a function in a library to compute square roots has
-    a purpose that is entirely well-defined independent of the
-    application.  Therefore, Subsection 2d requires that any
-    application-supplied function or table used by this function must
-    be optional: if the application does not supply it, the square
-    root function must still compute square roots.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Library,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Library, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote
-it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Library.
-
-In addition, mere aggregation of another work not based on the Library
-with the Library (or with a work based on the Library) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may opt to apply the terms of the ordinary GNU General Public
-License instead of this License to a given copy of the Library.  To do
-this, you must alter all the notices that refer to this License, so
-that they refer to the ordinary GNU General Public License, version 2,
-instead of to this License.  (If a newer version than version 2 of the
-ordinary GNU General Public License has appeared, then you can specify
-that version instead if you wish.)  Do not make any other change in
-these notices.
-
-  Once this change is made in a given copy, it is irreversible for
-that copy, so the ordinary GNU General Public License applies to all
-subsequent copies and derivative works made from that copy.
-
-  This option is useful when you wish to copy part of the code of
-the Library into a program that is not a library.
-
-  4. You may copy and distribute the Library (or a portion or
-derivative of it, under Section 2) in object code or executable form
-under the terms of Sections 1 and 2 above provided that you accompany
-it with the complete corresponding machine-readable source code, which
-must be distributed under the terms of Sections 1 and 2 above on a
-medium customarily used for software interchange.
-
-  If distribution of object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the
-source code from the same place satisfies the requirement to
-distribute the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  5. A program that contains no derivative of any portion of the
-Library, but is designed to work with the Library by being compiled or
-linked with it, is called a "work that uses the Library".  Such a
-work, in isolation, is not a derivative work of the Library, and
-therefore falls outside the scope of this License.
-
-  However, linking a "work that uses the Library" with the Library
-creates an executable that is a derivative of the Library (because it
-contains portions of the Library), rather than a "work that uses the
-library".  The executable is therefore covered by this License.
-Section 6 states terms for distribution of such executables.
-
-  When a "work that uses the Library" uses material from a header file
-that is part of the Library, the object code for the work may be a
-derivative work of the Library even though the source code is not.
-Whether this is true is especially significant if the work can be
-linked without the Library, or if the work is itself a library.  The
-threshold for this to be true is not precisely defined by law.
-
-  If such an object file uses only numerical parameters, data
-structure layouts and accessors, and small macros and small inline
-functions (ten lines or less in length), then the use of the object
-file is unrestricted, regardless of whether it is legally a derivative
-work.  (Executables containing this object code plus portions of the
-Library will still fall under Section 6.)
-
-  Otherwise, if the work is a derivative of the Library, you may
-distribute the object code for the work under the terms of Section 6.
-Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
-
-  6. As an exception to the Sections above, you may also combine or
-link a "work that uses the Library" with the Library to produce a
-work containing portions of the Library, and distribute that work
-under terms of your choice, provided that the terms permit
-modification of the work for the customer's own use and reverse
-engineering for debugging such modifications.
-
-  You must give prominent notice with each copy of the work that the
-Library is used in it and that the Library and its use are covered by
-this License.  You must supply a copy of this License.  If the work
-during execution displays copyright notices, you must include the
-copyright notice for the Library among them, as well as a reference
-directing the user to the copy of this License.  Also, you must do one
-of these things:
-
-    a) Accompany the work with the complete corresponding
-    machine-readable source code for the Library including whatever
-    changes were used in the work (which must be distributed under
-    Sections 1 and 2 above); and, if the work is an executable linked
-    with the Library, with the complete machine-readable "work that
-    uses the Library", as object code and/or source code, so that the
-    user can modify the Library and then relink to produce a modified
-    executable containing the modified Library.  (It is understood
-    that the user who changes the contents of definitions files in the
-    Library will not necessarily be able to recompile the application
-    to use the modified definitions.)
-
-    b) Use a suitable shared library mechanism for linking with the
-    Library.  A suitable mechanism is one that (1) uses at run time a
-    copy of the library already present on the user's computer system,
-    rather than copying library functions into the executable, and (2)
-    will operate properly with a modified version of the library, if
-    the user installs one, as long as the modified version is
-    interface-compatible with the version that the work was made with.
-
-    c) Accompany the work with a written offer, valid for at
-    least three years, to give the same user the materials
-    specified in Subsection 6a, above, for a charge no more
-    than the cost of performing this distribution.
-
-    d) If distribution of the work is made by offering access to copy
-    from a designated place, offer equivalent access to copy the above
-    specified materials from the same place.
-
-    e) Verify that the user has already received a copy of these
-    materials or that you have already sent this user a copy.
-
-  For an executable, the required form of the "work that uses the
-Library" must include any data and utility programs needed for
-reproducing the executable from it.  However, as a special exception,
-the materials to be distributed need not include anything that is
-normally distributed (in either source or binary form) with the major
-components (compiler, kernel, and so on) of the operating system on
-which the executable runs, unless that component itself accompanies
-the executable.
-
-  It may happen that this requirement contradicts the license
-restrictions of other proprietary libraries that do not normally
-accompany the operating system.  Such a contradiction means you cannot
-use both them and the Library together in an executable that you
-distribute.
-
-  7. You may place library facilities that are a work based on the
-Library side-by-side in a single library together with other library
-facilities not covered by this License, and distribute such a combined
-library, provided that the separate distribution of the work based on
-the Library and of the other library facilities is otherwise
-permitted, and provided that you do these two things:
-
-    a) Accompany the combined library with a copy of the same work
-    based on the Library, uncombined with any other library
-    facilities.  This must be distributed under the terms of the
-    Sections above.
-
-    b) Give prominent notice with the combined library of the fact
-    that part of it is a work based on the Library, and explaining
-    where to find the accompanying uncombined form of the same work.
-
-  8. You may not copy, modify, sublicense, link with, or distribute
-the Library except as expressly provided under this License.  Any
-attempt otherwise to copy, modify, sublicense, link with, or
-distribute the Library is void, and will automatically terminate your
-rights under this License.  However, parties who have received copies,
-or rights, from you under this License will not have their licenses
-terminated so long as such parties remain in full compliance.
-
-  9. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Library or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Library (or any work based on the
-Library), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Library or works based on it.
-
-  10. Each time you redistribute the Library (or any work based on the
-Library), the recipient automatically receives a license from the
-original licensor to copy, distribute, link with or modify the Library
-subject to these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties with
-this License.
-
-  11. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Library at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Library by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Library.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply,
-and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  12. If the distribution and/or use of the Library is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Library under this License may add
-an explicit geographical distribution limitation excluding those countries,
-so that distribution is permitted only in or among countries not thus
-excluded.  In such case, this License incorporates the limitation as if
-written in the body of this License.
-
-  13. The Free Software Foundation may publish revised and/or new
-versions of the Lesser General Public License from time to time.
-Such new versions will be similar in spirit to the present version,
-but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Library
-specifies a version number of this License which applies to it and
-"any later version", you have the option of following the terms and
-conditions either of that version or of any later version published by
-the Free Software Foundation.  If the Library does not specify a
-license version number, you may choose any version ever published by
-the Free Software Foundation.
-
-  14. If you wish to incorporate parts of the Library into other free
-programs whose distribution conditions are incompatible with these,
-write to the author to ask for permission.  For software which is
-copyrighted by the Free Software Foundation, write to the Free
-Software Foundation; we sometimes make exceptions for this.  Our
-decision will be guided by the two goals of preserving the free status
-of all derivatives of our free software and of promoting the sharing
-and reuse of software generally.
-
-                           NO WARRANTY
-
-  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
-WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
-EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
-OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
-KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
-LIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
-THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
-WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
-AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
-FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
-CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
-LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
-SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGES.
-
-                    END OF TERMS AND CONDITIONS
-
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    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
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
-
-********************************************************************************
-Eclipse Public License - v 1.0
-
-THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
-PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF
-THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
-
-1. DEFINITIONS
-
-"Contribution" means:
-
-a) in the case of the initial Contributor, the initial code and
-   documentation distributed under this Agreement, and
-b) in the case of each subsequent Contributor:
-
-i) changes to the Program, and
-
-ii) additions to the Program;
-
-where such changes and/or additions to the Program originate from and
-are distributed by that particular Contributor. A Contribution
-'originates' from a Contributor if it was added to the Program by such
-Contributor itself or anyone acting on such Contributor's
-behalf. Contributions do not include additions to the Program which:
-(i) are separate modules of software distributed in conjunction with
-the Program under their own license agreement, and (ii) are not
-derivative works of the Program.
-
-"Contributor" means any person or entity that distributes the Program.
-
-"Licensed Patents " mean patent claims licensable by a Contributor
-which are necessarily infringed by the use or sale of its Contribution
-alone or when combined with the Program.
-
-"Program" means the Contributions distributed in accordance with this
-Agreement.
-
-"Recipient" means anyone who receives the Program under this
-Agreement, including all Contributors.
-
-2. GRANT OF RIGHTS
-
-a) Subject to the terms of this Agreement, each Contributor hereby
-grants Recipient a non-exclusive, worldwide, royalty-free copyright
-license to reproduce, prepare derivative works of, publicly display,
-publicly perform, distribute and sublicense the Contribution of such
-Contributor, if any, and such derivative works, in source code and
-object code form.
-
-b) Subject to the terms of this Agreement, each Contributor hereby
-grants Recipient a non-exclusive, worldwide, royalty-free patent
-license under Licensed Patents to make, use, sell, offer to sell,
-import and otherwise transfer the Contribution of such Contributor, if
-any, in source code and object code form. This patent license shall
-apply to the combination of the Contribution and the Program if, at
-the time the Contribution is added by the Contributor, such addition
-of the Contribution causes such combination to be covered by the
-Licensed Patents. The patent license shall not apply to any other
-combinations which include the Contribution. No hardware per se is
-licensed hereunder.
-
-c) Recipient understands that although each Contributor grants the
-licenses to its Contributions set forth herein, no assurances are
-provided by any Contributor that the Program does not infringe the
-patent or other intellectual property rights of any other entity. Each
-Contributor disclaims any liability to Recipient for claims brought by
-any other entity based on infringement of intellectual property rights
-or otherwise. As a condition to exercising the rights and licenses
-granted hereunder, each Recipient hereby assumes sole responsibility
-to secure any other intellectual property rights needed, if any. For
-example, if a third party patent license is required to allow
-Recipient to distribute the Program, it is Recipient's responsibility
-to acquire that license before distributing the Program.
-
-d) Each Contributor represents that to its knowledge it has sufficient
-copyright rights in its Contribution, if any, to grant the copyright
-license set forth in this Agreement.
-
-3. REQUIREMENTS
-
-A Contributor may choose to distribute the Program in object code form
-under its own license agreement, provided that:
-
-a) it complies with the terms and conditions of this Agreement; and
-
-b) its license agreement:
-
-i) effectively disclaims on behalf of all Contributors all warranties
-and conditions, express and implied, including warranties or
-conditions of title and non-infringement, and implied warranties or
-conditions of merchantability and fitness for a particular purpose;
-
-ii) effectively excludes on behalf of all Contributors all liability
-for damages, including direct, indirect, special, incidental and
-consequential damages, such as lost profits;
-
-iii) states that any provisions which differ from this Agreement are
-offered by that Contributor alone and not by any other party; and
-
-iv) states that source code for the Program is available from such
-Contributor, and informs licensees how to obtain it in a reasonable
-manner on or through a medium customarily used for software exchange.
-
-When the Program is made available in source code form:
-
-a) it must be made available under this Agreement; and
-
-b) a copy of this Agreement must be included with each copy of the
-Program.
-
-Contributors may not remove or alter any copyright notices contained
-within the Program.
-
-Each Contributor must identify itself as the originator of its
-Contribution, if any, in a manner that reasonably allows subsequent
-Recipients to identify the originator of the Contribution.
-
-4. COMMERCIAL DISTRIBUTION
-
-Commercial distributors of software may accept certain
-responsibilities with respect to end users, business partners and the
-like. While this license is intended to facilitate the commercial use
-of the Program, the Contributor who includes the Program in a
-commercial product offering should do so in a manner which does not
-create potential liability for other Contributors. Therefore, if a
-Contributor includes the Program in a commercial product offering,
-such Contributor ("Commercial Contributor") hereby agrees to defend
-and indemnify every other Contributor ("Indemnified Contributor")
-against any losses, damages and costs (collectively "Losses") arising
-from claims, lawsuits and other legal actions brought by a third party
-against the Indemnified Contributor to the extent caused by the acts
-or omissions of such Commercial Contributor in connection with its
-distribution of the Program in a commercial product offering. The
-obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property
-infringement. In order to qualify, an Indemnified Contributor must: a)
-promptly notify the Commercial Contributor in writing of such claim,
-and b) allow the Commercial Contributor to control, and cooperate with
-the Commercial Contributor in, the defense and any related settlement
-negotiations. The Indemnified Contributor may participate in any such
-claim at its own expense.
-
-For example, a Contributor might include the Program in a commercial
-product offering, Product X. That Contributor is then a Commercial
-Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance
-claims and warranties are such Commercial Contributor's responsibility
-alone. Under this section, the Commercial Contributor would have to
-defend claims against the other Contributors related to those
-performance claims and warranties, and if a court requires any other
-Contributor to pay any damages as a result, the Commercial Contributor
-must pay those damages.
-
-5. NO WARRANTY
-
-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
-PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY
-WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
-OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and
-distributing the Program and assumes all risks associated with its
-exercise of rights under this Agreement , including but not limited to
-the risks and costs of program errors, compliance with applicable
-laws, damage to or loss of data, programs or equipment, and
-unavailability or interruption of operations.
-
-6. DISCLAIMER OF LIABILITY
-
-EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR
-ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
-WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
-DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
-HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
-7. GENERAL
-
-If any provision of this Agreement is invalid or unenforceable under
-applicable law, it shall not affect the validity or enforceability of
-the remainder of the terms of this Agreement, and without further
-action by the parties hereto, such provision shall be reformed to the
-minimum extent necessary to make such provision valid and enforceable.
-
-If Recipient institutes patent litigation against any entity
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-the Program itself (excluding combinations of the Program with other
-software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of
-the date such litigation is filed.
-
-All Recipient's rights under this Agreement shall terminate if it
-fails to comply with any of the material terms or conditions of this
-Agreement and does not cure such failure in a reasonable period of
-time after becoming aware of such noncompliance. If all Recipient's
-rights under this Agreement terminate, Recipient agrees to cease use
-and distribution of the Program as soon as reasonably
-practicable. However, Recipient's obligations under this Agreement and
-any licenses granted by Recipient relating to the Program shall
-continue and survive.
-
-Everyone is permitted to copy and distribute copies of this Agreement,
-but in order to avoid inconsistency the Agreement is copyrighted and
-may only be modified in the following manner. The Agreement Steward
-reserves the right to publish new versions (including revisions) of
-this Agreement from time to time. No one other than the Agreement
-Steward has the right to modify this Agreement. The Eclipse Foundation
-is the initial Agreement Steward. The Eclipse Foundation may assign
-the responsibility to serve as the Agreement Steward to a suitable
-separate entity. Each new version of the Agreement will be given a
-distinguishing version number. The Program (including Contributions)
-may always be distributed subject to the version of the Agreement
-under which it was received. In addition, after a new version of the
-Agreement is published, Contributor may elect to distribute the
-Program (including its Contributions) under the new version. Except as
-expressly stated in Sections 2(a) and 2(b) above, Recipient receives
-no rights or licenses to the intellectual property of any Contributor
-under this Agreement, whether expressly, by implication, estoppel or
-otherwise. All rights in the Program not expressly granted under this
-Agreement are reserved.
-
-This Agreement is governed by the laws of the State of New York and
-the intellectual property laws of the United States of America. No
-party to this Agreement will bring a legal action under this Agreement
-more than one year after the cause of action arose. Each party waives
-its rights to a jury trial in any resulting litigation.
-
-********************************************************************************
-END OF FILE
diff --git a/webapps/qooxdoo-0.6.5-sdk/README b/webapps/qooxdoo-0.6.5-sdk/README
deleted file mode 100644 (file)
index 8bf5974..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-Welcome!  :-)
-
-qooxdoo is one of the most comprehensive and innovative Open Source AJAX 
-frameworks. It is a multipurpose framework that includes support for 
-professional JavaScript development, a state-of-the-art GUI toolkit and 
-high-level client-server communication.
-
-
-License
-
-qooxdoo may be used under the terms of either the GNU Lesser General Public 
-License (LGPL) or the Eclipse Public License (EPL). As a recipient of qooxdoo, 
-you may choose which license to receive the code under.
-
-Please make sure you understand the dual license of qooxdoo and the rights and 
-obligations that come with it. See the top-level LICENSE file for more details.
-
-
-Framework
-
-qooxdoo is entirely class-based and tries to leverage the features of 
-object-oriented JavaScript. It is fully based on namespaces and does not 
-modify or extend native JavaScript types. Most modern browsers are 
-supported (e.g. Firefox, Internet Explorer and Opera; Safari soon) and it 
-is free of memory leaks. It comes with a comprehensive API reference, that 
-is auto-generated from Javadoc-like comments and from the syntax tree 
-representing the code. The fast and complete JavaScript parser not only 
-allows for doc generation, but is an integral part of the automatic build 
-process that makes optimizing, compressing, linking and deployment of 
-custom applications very user-friendly.
-
-
-GUI Toolkit
-
-Despite being a pure JavaScript framework, qooxdoo is quite on par with 
-GUI toolkits like Qt or SWT when it comes to advanced yet easy to implement 
-user interfaces. It offers a full-blown set of widgets that are hardly 
-distinguishable from elements of native desktop applications. Full built-in 
-support for keyboard navigation, focus and tab handling and drag & drop is 
-provided. Dimensions can be specified as static, auto-sizing, stretching, 
-percentage, weighted flex or min/max or even as combinations of those. 
-All widgets are based on powerful and flexible layout managers which are a 
-key to many of the advanced layout capabilities. Interface description is 
-done programmatically in JavaScript for maximum performance.
-
-No HTML has to be used and augmented to define the interface. The qooxdoo 
-user does not even have to know CSS to style the interface. Clean and 
-easy-to-configure themes for appearance, colors or icons allow for a 
-full-fledged styling that even supports runtime switching.
-
-
-AJAX
-
-While being a client-side and server-agnostic solution, the qooxdoo project 
-does include complete implementations of RPC servers (currently Java and PHP) 
-to demonstrate some of its advanced client-server communcation. An abstract 
-transport layer supports queues, timeouts and implementations via 
-XMLHttpRequest, Iframes and Scripts. Like the rest of qooxdoo it fully 
-supports event-based programming which greatly simplifies asynchronous 
-communication.
-
-
-Learn more
-
-For further information about qooxdoo, please point your browser to
-http://qooxdoo.org/about
-
-For a step-by-step introduction to qooxdoo application development, please 
-see the instructions in the user manual at
-http://qooxdoo.org/documentation/user_manual
-
-Have fun!  ;-)
diff --git a/webapps/qooxdoo-0.6.5-sdk/RELEASENOTES b/webapps/qooxdoo-0.6.5-sdk/RELEASENOTES
deleted file mode 100644 (file)
index 232d4e0..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Please point your browser to:
-http://qooxdoo.org/about/release_notes
diff --git a/webapps/qooxdoo-0.6.5-sdk/TODO b/webapps/qooxdoo-0.6.5-sdk/TODO
deleted file mode 100644 (file)
index 7884daa..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-Please point your browser to:
-http://qooxdoo.org/community/bugs
diff --git a/webapps/qooxdoo-0.6.5-sdk/VERSION b/webapps/qooxdoo-0.6.5-sdk/VERSION
deleted file mode 100644 (file)
index e0ea44c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-0.6.5
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/Makefile b/webapps/qooxdoo-0.6.5-sdk/frontend/Makefile
deleted file mode 100644 (file)
index 299aeaa..0000000
+++ /dev/null
@@ -1,450 +0,0 @@
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Andreas Ecker (ecker)
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-################################################################################
-# PUBLIC VARIABLES
-################################################################################
-
-QOOXDOO_PATH = ..
-
-
-
-
-################################################################################
-# INCLUDE CORE
-################################################################################
-
-include $(QOOXDOO_PATH)/frontend/framework/tool/make/framework.mk
-
-
-
-
-
-################################################################################
-# PRIVATE VARIABLES
-################################################################################
-
-RELEASE_BUILD_UNIX = release/temp/build/unix/qooxdoo-$(FRAMEWORK_VERSION)-build
-RELEASE_BUILD_DOS = release/temp/build/dos/qooxdoo-$(FRAMEWORK_VERSION)-build
-
-RELEASE_SDK_UNIX = release/temp/sdk/unix/qooxdoo-$(FRAMEWORK_VERSION)-sdk
-RELEASE_SDK_DOS = release/temp/sdk/dos/qooxdoo-$(FRAMEWORK_VERSION)-sdk
-
-APPLICATIONS = apiviewer feedreader sample showcase webmail
-SDK_COPY = Makefile application/Makefile application/index.html
-
-
-
-
-
-
-
-################################################################################
-# COMMON TARGETS
-################################################################################
-
-source:
-       @$(MAKE) -s -C application source
-
-build:
-       @$(MAKE) -s -C application build
-
-api:
-       @$(MAKE) -s -C application api
-
-all:
-       @$(MAKE) -s -C application all
-
-locales:
-       @$(MAKE) -s -C application locales
-
-pretty: framework-pretty
-       @$(MAKE) -s -C application pretty
-
-fix: framework-fix
-       @$(MAKE) -s -C application fix
-
-publish:
-       @$(MAKE) -s -C application publish
-
-clean:
-       @$(MAKE) -s -C application clean
-
-distclean:
-       @$(MAKE) -s -C application distclean
-       @$(MAKE) -s release-distclean
-       @$(MAKE) -s framework-distclean
-
-
-
-
-
-
-################################################################################
-# FRAMEWORK TARGETS
-################################################################################
-
-framework-distclean:
-       @echo
-       @echo "****************************************************************************"
-       @echo "  CLEANING UP FRAMEWORK COMPLETELY"
-       @echo "****************************************************************************"
-       @echo "  * Cleaning up..."
-       @$(CMD_REMOVE) $(FRAMEWORK_CACHE_PATH)
-       @$(CMD_REMOVE) $(FRAMEWORK_LOCALE_CLASS_PATH)
-       @$(CMD_REMOVE) $(FRAMEWORK_TRANSLATION_CLASS_PATH)
-       @$(CMD_REMOVE) application/skeleton.tar.gz
-       @$(CMD_REMOVE) application/skeleton.zip
-       @$(CMD_FIND) $(FRAMEWORK_PATH) $(FILES_TEMP) -exec $(CMD_REMOVE) {} \;
-       @$(CMD_REMOVE) $(FRAMEWORK_TOOL_PATH)/icon/temp
-
-
-framework-pretty:
-       @echo
-       @echo "****************************************************************************"
-       @echo "  PRETTIFYING FRAMEWORK CLASSES"
-       @echo "****************************************************************************"
-       @$(CMD_GENERATOR) \
-         --pretty-print \
-         --class-path $(FRAMEWORK_SOURCE_PATH)/$(FRAMEWORK_CLASS_FOLDERNAME)
-
-framework-fix:
-       @echo
-       @echo "****************************************************************************"
-       @echo "  FIXING FRAMEWORK CLASSES"
-       @echo "****************************************************************************"
-       @$(CMD_GENERATOR) \
-         --fix-source \
-         --class-path $(FRAMEWORK_SOURCE_PATH)/$(FRAMEWORK_CLASS_FOLDERNAME)
-
-
-
-
-################################################################################
-# MIGRATION TARGETS
-################################################################################
-
-
-checkout-migration:
-       @echo
-       @echo "****************************************************************************"
-       @echo "  MIGRATE CHECKOUT"
-       @echo "****************************************************************************"
-       @if [ 1 ]; then \
-         migrate_options="--class-path framework/source/class --migration-input application/sample/source/html/"; \
-         for APPLICATION in $(APPLICATIONS); do \
-           if [ -d application/$$APPLICATION/source/class ]; then \
-             migrate_options="$${migrate_options} --class-path application/$$APPLICATION/source/class"; \
-           fi; \
-         done; \
-         $(CMD_GENERATOR) \
-           --migrate-source --migration-target `echo $(FRAMEWORK_VERSION) | cut -d'-' -f1` \
-           $${migrate_options}; \
-        fi;
-
-
-
-
-
-
-
-################################################################################
-# SKELETON TARGETS
-################################################################################
-
-SKELETON_TEMP_UNIX = temp-skeleton-unix
-SKELETON_TEMP_DOS = temp-skeleton-dos
-
-SKELETON_FILES = Makefile source/class source/resource source/index.html
-
-
-info-skeleton-unix:
-       @echo
-       @echo "****************************************************************************"
-       @echo "  GENERATING UNIX VERSION OF SKELETON"
-       @echo "****************************************************************************"
-
-info-skeleton-dos:
-       @echo
-       @echo "****************************************************************************"
-       @echo "  GENERATING DOS VERSION OF SKELETON"
-       @echo "****************************************************************************"
-
-skeleton-unix: info-skeleton-unix exec-skeleton-unix exec-skeleton-unix-post exec-skeleton-unix-clean
-skeleton-dos: info-skeleton-dos exec-skeleton-dos exec-skeleton-dos-post exec-skeleton-dos-clean
-
-exec-skeleton-unix: exec-skeleton-unix-collect exec-skeleton-unix-archive
-exec-skeleton-dos: exec-skeleton-dos-collect exec-skeleton-dos-archive
-
-exec-skeleton-unix-collect:
-       @echo "  * Collecting skeleton files..."
-       @for FILE in $(SKELETON_FILES); do \
-       echo "    - $$FILE"; \
-       $(CMD_DIR) `dirname $(SKELETON_TEMP_UNIX)/skeleton/$$FILE`; \
-               $(CMD_SYNC_OFFLINE) application/skeleton/$$FILE `dirname $(SKELETON_TEMP_UNIX)/skeleton/$$FILE`; \
-       done
-
-exec-skeleton-unix-archive:
-       @echo "  * Cleaning up target folders..."
-       @$(CMD_FIND) $(SKELETON_TEMP_UNIX) $(FILES_TEMP) -exec $(CMD_REMOVE) {} \;
-
-       @echo "  * Switching to Unix line endings..."
-       @$(CMD_FIND) $(SKELETON_TEMP_UNIX) $(FILES_TEXT) $(CMD_ANY2UNIX)
-
-       @echo "  * Fixing executables..."
-       @$(CMD_FIND) $(SKELETON_TEMP_UNIX) $(FILES_EXEC) -exec $(CMD_MKEXEC) {} \;
-
-       @echo "  * Building skeleton archive..."
-       @$(CMD_REMOVE) $(SKELETON_TEMP_UNIX)/skeleton.tar.gz
-       @cd $(SKELETON_TEMP_UNIX); $(CMD_TAR_CREATE) skeleton.tar.gz skeleton
-       @$(CMD_REMOVE) $(SKELETON_TEMP_UNIX)/skeleton
-
-exec-skeleton-dos-collect:
-       @echo "  * Collecting skeleton files..."
-       @for FILE in $(SKELETON_FILES); do \
-       echo "    - $$FILE"; \
-       $(CMD_DIR) `dirname $(SKELETON_TEMP_DOS)/skeleton/$$FILE`; \
-               $(CMD_SYNC_OFFLINE) application/skeleton/$$FILE `dirname $(SKELETON_TEMP_DOS)/skeleton/$$FILE`; \
-       done
-
-exec-skeleton-dos-archive:
-       @echo "  * Cleaning up target folders..."
-       @$(CMD_FIND) $(SKELETON_TEMP_DOS) $(FILES_TEMP) -exec $(CMD_REMOVE) {} \;
-
-       @echo "  * Switching to DOS line endings..."
-       @$(CMD_FIND) $(SKELETON_TEMP_DOS) $(FILES_TEXT) $(CMD_ANY2DOS)
-
-       @echo "  * Fixing executables..."
-       @$(CMD_FIND) $(SKELETON_TEMP_DOS) $(FILES_EXEC) -exec $(CMD_MKEXEC) {} \;
-
-       @echo "  * Building skeleton archive..."
-       @$(CMD_REMOVE) $(SKELETON_TEMP_DOS)/skeleton.zip
-       @cd $(SKELETON_TEMP_DOS); $(CMD_ZIP_CREATE) skeleton.zip skeleton
-       @$(CMD_REMOVE) $(SKELETON_TEMP_DOS)/skeleton
-
-exec-skeleton-unix-post:
-       @$(CMD_SYNC_OFFLINE) $(SKELETON_TEMP_UNIX)/skeleton.tar.gz application/
-       @echo
-       @echo "  * Created application/skeleton.tar.gz"
-       @echo "    Please extract to a location outside this qooxdoo folder."
-
-exec-skeleton-dos-post:
-       @$(CMD_SYNC_OFFLINE) $(SKELETON_TEMP_DOS)/skeleton.zip application/
-       @echo
-       @echo "  * Created application/skeleton.zip"
-       @echo "    Please extract to a location outside this qooxdoo folder."
-
-exec-skeleton-unix-clean:
-       @$(CMD_REMOVE) $(SKELETON_TEMP_UNIX)
-
-exec-skeleton-dos-clean:
-       @$(CMD_REMOVE) $(SKELETON_TEMP_DOS)
-
-
-
-
-
-
-
-
-################################################################################
-# RELEASE TARGETS
-################################################################################
-
-release-distclean:
-       @echo
-       @echo "****************************************************************************"
-       @echo "  CLEANING UP RELEASE COMPLETELY"
-       @echo "****************************************************************************"
-       @echo "  * Cleaning up..."
-       @$(CMD_REMOVE) release
-
-
-
-
-release: release-sdk release-build
-release-fast: release-build-fast release-sdk-fast
-
-
-
-
-release-build: build release-build-fast
-release-build-fast: release-build-info release-build-unix release-build-dos
-
-release-build-info:
-       @echo
-       @echo "****************************************************************************"
-       @echo "  GENERATING BUILD VERSION OF RELEASE $(FRAMEWORK_VERSION)"
-       @echo "****************************************************************************"
-
-release-build-unix:
-       @echo
-       @echo "  SYNCHRONISATION OF BUILD RELEASE (UNIX VERSION)"
-       @echo "----------------------------------------------------------------------------"
-
-       @echo "  * Copying info files..."
-       @$(CMD_DIR) $(RELEASE_BUILD_UNIX)
-       @for FILE in `find ../ -maxdepth 1 -type f -name "[A-Z]*"`; do \
-         echo "    - `basename $$FILE`"; \
-         cp -f $$FILE $(RELEASE_BUILD_UNIX); \
-       done
-
-       @echo "  * Synchronizing applications..."
-       @for APPLICATION in $(APPLICATIONS); do \
-               echo "    - $$APPLICATION"; \
-         $(CMD_DIR) $(RELEASE_BUILD_UNIX)/frontend/$$APPLICATION; \
-               if [ ! -r application/$$APPLICATION/build ]; then \
-                 echo "      - Missing build folder! Run $(MAKE) build first!"; \
-                 exit 1; \
-               fi; \
-         $(CMD_SYNC_OFFLINE) application/$$APPLICATION/build/* $(RELEASE_BUILD_UNIX)/frontend/$$APPLICATION; \
-       done
-       @echo "  * Generating index.html..."
-       @cat application/index.html | \
-               sed 's/class="source"/class="source hide"/g' | \
-               sed 's/class="build"//g' > $(RELEASE_BUILD_UNIX)/frontend/index.html
-
-       @echo "  * Switching to Unix line endings..."
-       @$(CMD_FIND) $(RELEASE_BUILD_UNIX) $(FILES_TEXT) $(CMD_ANY2UNIX)
-
-       @echo "  * Generating tar archive..."
-       @cd release/temp/build/unix; $(CMD_REMOVE) qooxdoo-$(FRAMEWORK_VERSION)-build.tar.gz; $(CMD_NICE) tar cfzp ../../../qooxdoo-$(FRAMEWORK_VERSION)-build.tar.gz qooxdoo-$(FRAMEWORK_VERSION)-build
-
-release-build-dos:
-       @echo
-       @echo "  SYNCHRONISATION OF BUILD RELEASE (DOS VERSION)"
-       @echo "----------------------------------------------------------------------------"
-
-       @echo "  * Copying info files..."
-       @$(CMD_DIR) $(RELEASE_BUILD_DOS)
-       @for FILE in `find ../ -maxdepth 1 -type f -name "[A-Z]*"`; do \
-         echo "    - `basename $$FILE`"; \
-         cp -f $$FILE $(RELEASE_BUILD_DOS); \
-       done
-
-       @echo "  * Synchronizing applications..."
-       @for APPLICATION in $(APPLICATIONS); do \
-               echo "    - $$APPLICATION"; \
-         $(CMD_DIR) $(RELEASE_BUILD_DOS)/frontend/$$APPLICATION; \
-               if [ ! -r application/$$APPLICATION/build ]; then \
-                 echo "      - Missing build folder! Run $(MAKE) build first!"; \
-                 exit 1; \
-               fi; \
-         $(CMD_SYNC_OFFLINE) application/$$APPLICATION/build/* $(RELEASE_BUILD_DOS)/frontend/$$APPLICATION; \
-       done
-
-       @echo "  * Generating index.html..."
-       @cat application/index.html | \
-               sed 's/class="source"/class="source hide"/g' | \
-               sed 's/class="build"//g' > $(RELEASE_BUILD_DOS)/frontend/index.html
-
-       @echo "  * Switching to DOS line endings..."
-       @$(CMD_FIND) $(RELEASE_BUILD_DOS) $(FILES_TEXT) $(CMD_ANY2DOS)
-
-       @echo "  * Generating zip archive..."
-       @cd release/temp/build/dos; $(CMD_REMOVE) qooxdoo-$(FRAMEWORK_VERSION)-build.zip; $(CMD_NICE) zip -rq ../../../qooxdoo-$(FRAMEWORK_VERSION)-build.zip qooxdoo-$(FRAMEWORK_VERSION)-build
-
-
-
-
-
-
-
-
-
-release-sdk: distclean release-sdk-fast
-release-sdk-fast: release-sdk-info release-sdk-unix release-sdk-dos
-
-release-sdk-info:
-       @echo
-       @echo "****************************************************************************"
-       @echo "  GENERATING SDK VERSION OF RELEASE $(FRAMEWORK_VERSION)"
-       @echo "****************************************************************************"
-
-release-sdk-unix:
-       @echo
-       @echo "  SYNCHRONISATION OF SDK RELEASE (UNIX VERSION)"
-       @echo "----------------------------------------------------------------------------"
-
-       @echo "  * Copying info files..."
-       @$(CMD_DIR) $(RELEASE_SDK_UNIX)
-       @for FILE in `find ../ -maxdepth 1 -type f -name "[A-Z]*"`; do \
-         echo "    - `basename $$FILE`"; \
-         cp -f $$FILE $(RELEASE_SDK_UNIX); \
-       done
-
-       @echo "  * Synchronizing applications..."
-       @for APPLICATION in $(APPLICATIONS); do \
-               echo "    - $$APPLICATION"; \
-         $(CMD_DIR) $(RELEASE_SDK_UNIX)/frontend/application/$$APPLICATION; \
-         $(CMD_SYNC_OFFLINE) --exclude script --exclude build --exclude publish application/$$APPLICATION/* $(RELEASE_SDK_UNIX)/frontend/application/$$APPLICATION; \
-       done
-
-       @echo "  * Synchronizing framework..."
-       @$(CMD_DIR) $(RELEASE_SDK_UNIX)/frontend/framework
-       @$(CMD_SYNC_OFFLINE) --exclude .cache --exclude tool/icon/themes --exclude tool/icon/temp framework/* $(RELEASE_SDK_UNIX)/frontend/framework
-
-       @echo "  * Copying remaining SDK files..."
-       @for ITEM in $(SDK_COPY); do \
-         cp -f $$ITEM $(RELEASE_SDK_UNIX)/frontend/$$ITEM; \
-       done
-
-       @$(MAKE) -s exec-skeleton-unix
-       @$(CMD_SYNC_OFFLINE) $(SKELETON_TEMP_UNIX)/skeleton.tar.gz $(RELEASE_SDK_UNIX)/frontend/application/
-       @$(MAKE) -s exec-skeleton-unix-clean
-
-       @echo "  * Generating tar archive..."
-       @cd release/temp/sdk/unix; $(CMD_REMOVE) qooxdoo-$(FRAMEWORK_VERSION)-sdk.tar.gz; $(CMD_TAR_CREATE) ../../../qooxdoo-$(FRAMEWORK_VERSION)-sdk.tar.gz qooxdoo-$(FRAMEWORK_VERSION)-sdk
-
-release-sdk-dos:
-       @echo
-       @echo "  SYNCHRONISATION OF SDK RELEASE (DOS VERSION)"
-       @echo "----------------------------------------------------------------------------"
-
-       @echo "  * Copying info files..."
-       @$(CMD_DIR) $(RELEASE_SDK_DOS)
-       @for FILE in `find ../ -maxdepth 1 -type f -name "[A-Z]*"`; do \
-         echo "    - `basename $$FILE`"; \
-         cp -f $$FILE $(RELEASE_SDK_DOS); \
-       done
-
-       @echo "  * Synchronizing applications..."
-       @for APPLICATION in $(APPLICATIONS); do \
-               echo "    - $$APPLICATION"; \
-         $(CMD_DIR) $(RELEASE_SDK_DOS)/frontend/application/$$APPLICATION; \
-         $(CMD_SYNC_OFFLINE) --exclude script --exclude build --exclude publish application/$$APPLICATION/* $(RELEASE_SDK_DOS)/frontend/application/$$APPLICATION; \
-       done
-
-       @echo "  * Synchronizing framework..."
-       @$(CMD_DIR) $(RELEASE_SDK_DOS)/frontend/framework
-       @$(CMD_SYNC_OFFLINE) --exclude .cache --exclude tool/icon/themes --exclude tool/icon/temp framework/* $(RELEASE_SDK_DOS)/frontend/framework
-
-       @echo "  * Copying remaining SDK files..."
-       @for ITEM in $(SDK_COPY); do \
-         cp -f $$ITEM $(RELEASE_SDK_DOS)/frontend/$$ITEM; \
-       done
-
-       @$(MAKE) -s exec-skeleton-dos
-       @$(CMD_SYNC_OFFLINE) $(SKELETON_TEMP_DOS)/skeleton.zip $(RELEASE_SDK_DOS)/frontend/application/
-       @$(MAKE) -s exec-skeleton-dos-clean
-
-       @echo "  * Generating zip archive..."
-       @cd release/temp/sdk/dos; $(CMD_REMOVE) qooxdoo-$(FRAMEWORK_VERSION)-sdk.zip; $(CMD_ZIP_CREATE) ../../../qooxdoo-$(FRAMEWORK_VERSION)-sdk.zip qooxdoo-$(FRAMEWORK_VERSION)-sdk
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/Makefile b/webapps/qooxdoo-0.6.5-sdk/frontend/application/Makefile
deleted file mode 100644 (file)
index ab6eeac..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Andreas Ecker (ecker)
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-APPLICATIONS = apiviewer feedreader sample showcase webmail
-
-source:
-       @for APPLICATION in $(APPLICATIONS); do $(MAKE) -s -C $$APPLICATION source || exit 1; done
-
-build:
-       @for APPLICATION in $(APPLICATIONS); do $(MAKE) -s -C $$APPLICATION build || exit 1; done
-       
-api:
-       @for APPLICATION in $(APPLICATIONS); do $(MAKE) -s -C $$APPLICATION api || exit 1; done
-       
-all:
-       @for APPLICATION in $(APPLICATIONS); do $(MAKE) -s -C $$APPLICATION all || exit 1; done
-
-publish:
-       @for APPLICATION in $(APPLICATIONS); do $(MAKE) -s -C $$APPLICATION publish || exit 1; done
-
-fix:
-       @for APPLICATION in $(APPLICATIONS); do $(MAKE) -s -C $$APPLICATION fix || exit 1; done
-
-pretty:
-       @for APPLICATION in $(APPLICATIONS); do $(MAKE) -s -C $$APPLICATION pretty || exit 1;   done    
-
-clean:
-       @for APPLICATION in $(APPLICATIONS); do $(MAKE) -s -C $$APPLICATION clean || exit 1; done
-
-distclean:
-       @for APPLICATION in $(APPLICATIONS); do $(MAKE) -s -C $$APPLICATION distclean || exit 1; done
-
-locales:
-       @for APPLICATION in $(APPLICATIONS); do $(MAKE) -s -C $$APPLICATION locales || exit 1; done
-       
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/Makefile b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/Makefile
deleted file mode 100755 (executable)
index 65aa237..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Andreas Ecker (ecker)
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-################################################################################
-# BASIC SETTINGS
-################################################################################
-
-#
-# Location of your qooxdoo distribution
-# Could be relative from this location or absolute
-#
-QOOXDOO_PATH = ../../..
-
-#
-# The same as above, but from the webserver point of view
-# Starting point is the application HTML file of the source folder.
-# In most cases just add a "/.." compared to above
-#
-QOOXDOO_URI = ../../../..
-
-#
-# Namespace of your application e.g. custom
-#
-APPLICATION_NAMESPACE = apiviewer
-
-#
-# Titles used in your API viewer and during the build process
-#
-APPLICATION_MAKE_TITLE = APIVIEWER
-APPLICATION_API_TITLE = ApiViewer
-
-#
-# Additional files (space separated list)
-#
-APPLICATION_FILES = index.html
-
-
-
-
-
-################################################################################
-# ADVANCED SETTINGS
-################################################################################
-
-#
-# Enable resource filtering in API viewer
-#
-APPLICATION_RESOURCE_FILTER = true
-
-#
-# We don't need the full source code
-#
-APPLICATION_COMPLETE_SOURCE = false
-
-#
-# Disable line breaks
-#
-APPLICATION_LINEBREAKS_BUILD = false
-APPLICATION_LINEBREAKS_SOURCE = false
-
-#
-# qooxdoo.org sync
-#
-APPLICATION_PUBLISH_PATH = root@qooxdoo.org:/var/www/qooxdoo/api/$(FRAMEWORK_VERSION)
-
-
-
-
-
-
-################################################################################
-# INCLUDE CORE
-################################################################################
-
-ifneq ($(QOOXDOO_PATH),PLEASE_DEFINE_QOOXDOO_PATH)
-       include $(QOOXDOO_PATH)/frontend/framework/tool/make/targets.mk
-       include $(QOOXDOO_PATH)/frontend/framework/tool/make/application.mk
-endif
-
-error:
-       @echo "  * Please configure QOOXDOO_PATH"
-
-
-
-
-
-
-################################################################################
-# EXTENSIONS
-################################################################################
-
-source:
-       @$(CMD_GENERATOR) \
-         --generate-api-documentation \
-         --api-documentation-json-file $(APPLICATION_PATH)/source/script/apidata.js \
-         --class-path $(FRAMEWORK_SOURCE_PATH)/class
-
-build:
-       @$(CMD_GENERATOR) \
-         --generate-api-documentation \
-         --api-documentation-json-file $(APPLICATION_PATH)/build/script/apidata.js \
-         --class-path $(FRAMEWORK_SOURCE_PATH)/class
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/class/apiviewer/Application.js b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/class/apiviewer/Application.js
deleted file mode 100644 (file)
index ac44e36..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(apiviewer)
-#resource(css:css)
-#resource(image:image)
-#embed(apiviewer.css/*)
-
-************************************************************************ */
-
-/**
- * Your custom application
- */
-qx.OO.defineClass("apiviewer.Application", qx.component.AbstractApplication,
-function () {
-  qx.component.AbstractApplication.call(this);
-});
-
-qx.Settings.setDefault("resourceUri", "./resource");
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.initialize = function(e)
-{
-  // Define alias for custom resource path
-  qx.manager.object.AliasManager.getInstance().add("api", qx.Settings.getValueOfClass("apiviewer.Application", "resourceUri"));
-
-  // Reduce log level
-  qx.log.Logger.ROOT_LOGGER.setMinLevel(qx.log.Logger.LEVEL_WARN);
-
-  // Include CSS file
-  qx.html.StyleSheet.includeFile(qx.manager.object.AliasManager.getInstance().resolvePath("api/css/apiviewer.css"));
-};
-
-qx.Proto.main = function(e)
-{
-  // Initialize the viewer
-  this.viewer = new apiviewer.Viewer;
-  this.viewer.addToDocument();
-};
-
-qx.Proto.finalize = function(e)
-{
-  // Finally load the data
-  this.viewer.load("script/apidata.js");
-};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/class/apiviewer/ClassViewer.js b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/class/apiviewer/ClassViewer.js
deleted file mode 100755 (executable)
index 083b558..0000000
+++ /dev/null
@@ -1,1684 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(apiviewer)
-
-************************************************************************ */
-
-/**
- * Shows the class details.
- */
-qx.OO.defineClass("apiviewer.ClassViewer", qx.ui.embed.HtmlEmbed,
-function() {
-  qx.ui.embed.HtmlEmbed.call(this);
-
-  this.setOverflow("auto");
-  this.setPadding(20);
-  this.setEdge(0);
-  this.setHtmlProperty("id", "ClassViewer");
-  this.setVisibility(false);
-
-  apiviewer.ClassViewer.instance = this;
-});
-
-
-qx.Proto._fixLinks = function(el)
-{
-  var a = el.getElementsByTagName("a");
-  for (var i=0; i<a.length; i++)
-  {
-    if (typeof a[i].href == "string" && a[i].href.indexOf("http://") == 0) {
-      a[i].target = "_blank";
-    }
-  }
-}
-
-/**
- * Initializes the content of the embedding DIV. Will be called by the
- * HtmlEmbed element initialization routine.
- */
-qx.Proto._syncHtml = function()
-{
-  var ClassViewer = apiviewer.ClassViewer;
-
-  document._detailViewer = this;
-
-  this._infoPanelHash = {};
-
-  var html = "";
-
-  // Add title
-  html += '<h1></h1>';
-
-  // Add description
-  html += ClassViewer.DIV_START + ClassViewer.DIV_END;
-
-  html += '<div id="ControlFrame">';
-  html += '<input type="checkbox" id="showInherited" onclick="document._detailViewer._onInheritedCheckBoxClick()"/><label for="showInherited">Show Inherited</label>';
-  html += '&#160;';
-  html += '<input type="checkbox" id="showProtected" onclick="document._detailViewer._onProtectedCheckBoxClick()"/><label for="showProtected">Show Protected</label>';
-  html += '</div>';
-
-
-
-  // BASICS
-
-  // Add constructor info
-  html += this._createInfoPanel(ClassViewer.NODE_TYPE_CONSTRUCTOR,
-    "constructor", "constructor", this._createMethodInfo,
-    this._methodHasDetails, false, true);
-
-  // Add event info
-  html += this._createInfoPanel(ClassViewer.NODE_TYPE_EVENT,
-    "events", "events", this._createEventInfo,
-    this._eventHasDetails, true, true);
-
-  // Add properties info
-  html += this._createInfoPanel(ClassViewer.NODE_TYPE_PROPERTY,
-    "properties", "properties", this._createPropertyInfo,
-    qx.lang.Function.returnTrue, true, true);
-
-
-
-  // PUBLIC
-
-  // Add methods info
-  html += this._createInfoPanel(ClassViewer.NODE_TYPE_METHOD,
-    "methods", "methods", this._createMethodInfo,
-    this._methodHasDetails, true, true);
-
-  // Add static methods info
-  html += this._createInfoPanel(ClassViewer.NODE_TYPE_METHOD_STATIC,
-    "methods-static", "static methods", this._createMethodInfo,
-    this._methodHasDetails, false, true);
-
-  // Add constants info
-  html += this._createInfoPanel(ClassViewer.NODE_TYPE_CONSTANT,
-    "constants", "constants", this._createConstantInfo,
-    this._constantHasDetails, false, true);
-
-
-
-
-  // Set the html
-  // doc.body.innerHTML = html;
-  this.getElement().innerHTML = html;
-  this._fixLinks(this.getElement());
-
-  // Extract the main elements
-  var divArr = this.getElement().childNodes;
-  this._titleElem = divArr[0];
-  this._classDescElem = divArr[1];
-  this._controlFrame = divArr[2];
-
-  this._infoPanelHash[ClassViewer.NODE_TYPE_CONSTRUCTOR].infoElem   = divArr[3];
-  this._infoPanelHash[ClassViewer.NODE_TYPE_EVENT].infoElem         = divArr[4];
-  this._infoPanelHash[ClassViewer.NODE_TYPE_PROPERTY].infoElem      = divArr[5];
-  this._infoPanelHash[ClassViewer.NODE_TYPE_METHOD].infoElem        = divArr[6];
-  this._infoPanelHash[ClassViewer.NODE_TYPE_METHOD_STATIC].infoElem = divArr[7];
-  this._infoPanelHash[ClassViewer.NODE_TYPE_CONSTANT].infoElem      = divArr[8];
-
-  // Get the child elements
-  for (var nodeType in this._infoPanelHash)
-  {
-    var typeInfo = this._infoPanelHash[nodeType];
-    typeInfo.infoTitleElem = typeInfo.infoElem.firstChild;
-    typeInfo.infoBodyElem = typeInfo.infoElem.lastChild;
-  }
-
-  // Update the view
-  if (this._currentClassDocNode)
-  {
-    // NOTE: We have to set this._currentClassDocNode to null beore, because
-    //       otherwise showClass thinks, there's nothing to do
-    var classDocNode = this._currentClassDocNode;
-    this._currentClassDocNode = null;
-    this.showClass(classDocNode);
-  }
-}
-
-
-/**
- * Creates an info panel. An info panel shows the information about one item
- * type (e.g. for public methods).
- *
- * @param nodeType {Integer} the node type to create the info panel for.
- * @param listName {String} the name of the node list in the class doc node where
- *        the items shown by this info panel are stored.
- * @param labelText {String} the label text describing the node type.
- * @param infoFactory {function} the factory method creating the HTML for one
- *        item.
- * @param hasDetailDecider {function} a function returning <code>true</code>
- *        when a item has details.
- * @param addInheritedCheckBox {Boolean} whether to add a "show inherited ..."
- *        checkbox.
- * @param isOpen {Boolean} whether the info panel is open by default.
- * @return {String} the HTML for the info panel.
- */
-qx.Proto._createInfoPanel = function(nodeType, listName, labelText, infoFactory,
-  hasDetailDecider, addInheritedCheckBox, isOpen)
-{
-  var uppercaseLabelText = labelText.charAt(0).toUpperCase() + labelText.substring(1);
-
-  typeInfo = { listName:listName, labelText:labelText, infoFactory:infoFactory,
-    hasDetailDecider:hasDetailDecider, isOpen:isOpen,
-    hasInheritedCheckBox:addInheritedCheckBox };
-  this._infoPanelHash[nodeType] = typeInfo;
-
-  var html = '<div class="infoPanel"><h2>';
-
-  html += '<img class="openclose" src="'
-    + qx.manager.object.AliasManager.getInstance().resolvePath('api/image/' + (isOpen ? 'close.gif' : 'open.gif')) + '"'
-    + " onclick=\"document._detailViewer._onShowInfoPanelBodyClicked(" + nodeType + ")\"/> "
-    + '<span '
-    + " onclick=\"document._detailViewer._onShowInfoPanelBodyClicked(" + nodeType + ")\">"
-    + uppercaseLabelText
-    + '</span>';
-
-  html += '</h2><div></div></div>';
-
-  return html;
-}
-
-
-/**
- * Shows the information about a class.
- *
- * @param classNode {Map} the doc node of the class to show.
- */
-qx.Proto.showClass = function(classNode) {
-  if (this._currentClassDocNode == classNode) {
-    // Nothing to do
-    return;
-  }
-
-  this._currentClassDocNode = classNode;
-
-  if (!this._titleElem) {
-    // _initContentDocument was not called yet
-    // -> Do nothing, the class will be shown in _initContentDocument.
-    return;
-  }
-
-  var ClassViewer = apiviewer.ClassViewer;
-
-  var titleHtml = "";
-
-  titleHtml += '<div class="packageName">' + classNode.attributes.packageName + '</div>';
-
-  titleHtml += '<span class="typeInfo">';
-
-  if (classNode.attributes.isAbstract) {
-    titleHtml += "Abstract ";
-  } else if (classNode.attributes.isStatic) {
-    titleHtml += "Static ";
-  }
-
-  titleHtml += "Class ";
-  titleHtml += '</span>';
-  titleHtml += classNode.attributes.name;
-
-  this._titleElem.innerHTML = titleHtml;
-
-  var classHtml = "";
-
-   // Add the class description
-  var descNode = apiviewer.TreeUtil.getChild(classNode, "desc");
-  if (descNode) {
-    var desc = descNode.attributes.text;
-
-    if (desc != "")
-    {
-      classHtml += '<div class="classDescription">' + this._createDescriptionHtml(desc, classNode) + '</div>';
-      classHtml += "<br/>";
-    }
-  }
-
-
-  // Create the class hierarchy
-  classHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Inheritance hierarchy:" + ClassViewer.DIV_END;
-
-  var classHierarchy = [];
-  var currClass = classNode;
-  while (currClass != null) {
-    classHierarchy.push(currClass);
-    currClass = this._getClassDocNode(currClass.attributes.superClass);
-  }
-  this._currentClassHierarchy = classHierarchy;
-
-  // Add the class hierarchy
-  classHtml += ClassViewer.createImageHtml("api/image/class18.gif") + "Object<br/>";
-  var indent = 0;
-  for (var i = classHierarchy.length - 1; i >= 0; i--) {
-    classHtml += ClassViewer.createImageHtml("api/image/nextlevel.gif", null, "margin-left:" + indent + "px")
-      + ClassViewer.createImageHtml(apiviewer.TreeUtil.getIconUrl(classHierarchy[i]));
-    if (i != 0) {
-      classHtml += this._createItemLinkHtml(classHierarchy[i].attributes.fullName, null, false);
-    } else {
-      classHtml += classHierarchy[i].attributes.fullName;
-    }
-    classHtml += "<br/>";
-    indent += 18;
-  }
-
-  classHtml += '<br/>';
-
-  // Add child classes
-  if (classNode.attributes.childClasses) {
-    classHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Direct subclasses:" + ClassViewer.DIV_END
-      + ClassViewer.DIV_START_DETAIL_TEXT;
-
-    var classNameArr = classNode.attributes.childClasses.split(",");
-    for (var i = 0; i < classNameArr.length; i++) {
-      if (i != 0) {
-        classHtml += ", ";
-      }
-      classHtml += this._createItemLinkHtml(classNameArr[i], null, true, false);
-    }
-
-    classHtml += ClassViewer.DIV_END;
-    classHtml += '<br/>';
-  }
-
-  // Add @see attributes
-  var ctorList = apiviewer.TreeUtil.getChild(classNode, "constructor");
-  if (ctorList) {
-    classHtml += this._createSeeAlsoHtml(ctorList.children[0], classNode);
-    classHtml += '<br/>';
-  }
-
-  this._classDescElem.innerHTML = classHtml;
-  this._fixLinks(this._classDescElem);
-
-  // Refresh the info viewers
-  this._updateInfoViewers();
-
-  // Scroll to top
-  this.getElement().scrollTop = 0;
-}
-
-qx.Proto._updateInfoViewers = function()
-{
-  for (var nodeType in this._infoPanelHash) {
-    this._updateInfoPanel(parseInt(nodeType));
-  }
-}
-
-qx.Proto.showInfo = function(classNode) {
-  if (this._currentClassDocNode == classNode) {
-    // Nothing to do
-    return;
-  }
-
-  this._currentClassDocNode = classNode;
-
-  if (!this._titleElem) {
-    // _initContentDocument was not called yet
-    // -> Do nothing, the class will be shown in _initContentDocument.
-    return;
-  }
-
-  var ClassViewer = apiviewer.ClassViewer;
-
-  this._titleElem.innerHTML = "Info View";
-  this._classDescElem.innerHTML = "";
-
-  // Scroll to top
-  this.getElement().scrollTop = 0;
-}
-
-/**
- * Highlights an item (property, method or constant) and scrolls it visible.
- *
- * @param itemName {String} the name of the item to highlight.
- */
-qx.Proto.showItem = function(itemName) {
-  var itemNode = apiviewer.TreeUtil.getItemDocNode(this._currentClassDocNode, itemName);
-  if (! itemNode) {
-    alert("Item '" + itemName + "' not found");
-  }
-
-  var nodeType = this._getTypeForItemNode(itemNode);
-  var elem = this._getItemElement(nodeType, itemNode.attributes.name).parentNode.parentNode;
-
-  // Handle mark
-  if (this._markedElement) {
-    this._markedElement.className = "";
-  }
-
-  elem.className = "marked";
-  this._markedElement = elem;
-
-  // Scroll the element visible
-  var top = qx.html.Location.getPageBoxTop(elem);
-  var height = elem.offsetHeight;
-
-  var doc = this.getElement();
-  var scrollTop = doc.scrollTop;
-  var clientHeight = doc.offsetHeight;
-
-  if (scrollTop > top) {
-    doc.scrollTop = top;
-  } else if (scrollTop < top + height - clientHeight) {
-    doc.scrollTop = top + height - clientHeight;
-  }
-}
-
-qx.Proto._showProtected = false;
-qx.Proto._showInherited = false;
-
-/**
- * Updates an info panel.
- *
- * @param nodeType {Integer} the node type of which to update the info panel.
- */
-qx.Proto._updateInfoPanel = function(nodeType)
-{
-  var ClassViewer = apiviewer.ClassViewer;
-
-  var typeInfo = this._infoPanelHash[nodeType];
-
-  // Get the nodes to show
-  var nodeArr = [];
-  var fromClassHash = null;
-
-  if (this._currentClassDocNode)
-  {
-    if (this._showInherited && (nodeType == apiviewer.ClassViewer.NODE_TYPE_EVENT || nodeType == apiviewer.ClassViewer.NODE_TYPE_PROPERTY || nodeType == apiviewer.ClassViewer.NODE_TYPE_METHOD))
-    {
-      fromClassArr = [];
-      fromClassHash = {};
-
-      var currClassNode = this._currentClassDocNode;
-
-      while (currClassNode != null)
-      {
-        var currParentNode = apiviewer.TreeUtil.getChild(currClassNode, typeInfo.listName);
-        var currNodeArr = currParentNode ? currParentNode.children : null;
-        if (currNodeArr)
-        {
-          // Add the nodes from this class
-          for (var i = 0; i < currNodeArr.length; i++)
-          {
-            var name = currNodeArr[i].attributes.name;
-
-            if (fromClassHash[name] == null)
-            {
-              fromClassHash[name] = currClassNode;
-              nodeArr.push(currNodeArr[i]);
-            }
-          }
-        }
-
-        var superClassName = currClassNode.attributes.superClass;
-        currClassNode = superClassName ? this._getClassDocNode(superClassName) : null;
-      }
-    }
-    else
-    {
-      var parentNode = apiviewer.TreeUtil.getChild(this._currentClassDocNode, typeInfo.listName);
-      nodeArr = parentNode ? parentNode.children : null;
-    }
-  }
-
-  if (nodeArr)
-  {
-    // Filter protected
-    if (nodeType == apiviewer.ClassViewer.NODE_TYPE_METHOD || nodeType == apiviewer.ClassViewer.NODE_TYPE_METHOD_STATIC)
-    {
-      if (nodeArr.length != 0 && !this._showProtected)
-      {
-        copyArr = nodeArr.concat();
-
-        for (var i=nodeArr.length-1; i>=0; i--)
-        {
-          var node = nodeArr[i];
-
-          if (nodeArr[i].attributes.name.charAt(0) == "_") {
-            qx.lang.Array.removeAt(copyArr, i);
-          }
-        }
-
-        nodeArr = copyArr;
-      }
-    }
-
-    // Sort the nodeArr by name
-    // Move protected methods to the end
-    nodeArr.sort(function(obj1, obj2)
-    {
-      var n1 = obj1.attributes.name;
-      var n2 = obj2.attributes.name;
-      var p1 = n1.charAt(0) == "_";
-      var p2 = n2.charAt(0) == "_";
-      var h1 = n1.charAt(0) == "__";
-      var h2 = n2.charAt(0) == "__";
-
-      if (p1 == p2 && h1 == h2)
-      {
-        return n1.toLowerCase() < n2.toLowerCase() ? -1 : 1;
-      }
-      else
-      {
-        return h1 ? 1 : p1 ? 1 : -1;
-      }
-    });
-  }
-
-  // Show the nodes
-  if (nodeArr && nodeArr.length > 0)
-  {
-    var html = '<table cellspacing="0" cellpadding="0" class="info" width="100%">';
-
-    for (var i = 0; i < nodeArr.length; i++)
-    {
-      var node = nodeArr[i];
-
-      var fromClassNode = fromClassHash ? fromClassHash[node.attributes.name] : null;
-      if (fromClassNode == null) {
-        fromClassNode = this._currentClassDocNode;
-      }
-
-      var info = typeInfo.infoFactory.call(this, node, nodeType, fromClassNode, false);
-      var inherited = fromClassNode && (fromClassNode != this._currentClassDocNode);
-      var iconUrl = apiviewer.TreeUtil.getIconUrl(node, inherited, "_updateInfoPanel");
-
-      // Create the title row
-      html += '<tr>';
-
-        html += '<td class="icon">' + ClassViewer.createImageHtml(iconUrl) + '</td>';
-        html += '<td class="type">' + ((info.typeHtml.length != 0) ? (info.typeHtml + "&nbsp;") : "") + '</td>';
-
-        html += '<td class="toggle">';
-        if (typeInfo.hasDetailDecider.call(this, node, nodeType, fromClassNode))
-        {
-          // This node has details -> Show the detail button
-          html += '<img src="' + qx.manager.object.AliasManager.getInstance().resolvePath("api/image/open.gif") + '"'
-            + " onclick=\"document._detailViewer._onShowItemDetailClicked(" + nodeType + ",'"
-            + node.attributes.name + "'"
-            + ((fromClassNode != this._currentClassDocNode) ? ",'" + fromClassNode.attributes.fullName + "'" : "")
-            + ")\"/>";
-        }
-        else
-        {
-          html += "&#160;";
-        }
-        html += '</td>';
-
-        html += '<td class="text">';
-
-          // Create headline
-          html += '<h3';
-
-          if (typeInfo.hasDetailDecider.call(this, node, nodeType, fromClassNode))
-          {
-            html += " onclick=\"document._detailViewer._onShowItemDetailClicked(" + nodeType + ",'"
-              + node.attributes.name + "'"
-              + ((fromClassNode != this._currentClassDocNode) ? ",'" + fromClassNode.attributes.fullName + "'" : "")
-              + ")\">";
-          }
-          else
-          {
-            html += '>';
-          }
-
-          html += info.titleHtml;
-          html += '</h3>';
-
-          // Create content area
-          html += '<div _itemName="' + nodeArr[i].attributes.name + '">';
-            html += info.textHtml;
-          html += '</div>';
-
-        html += '</td>';
-      html += '</tr>';
-    }
-
-    html += '</table>';
-
-    typeInfo.infoBodyElem.innerHTML = html;
-    this._fixLinks(typeInfo.infoBodyElem);
-    typeInfo.infoBodyElem.style.display = !typeInfo.isOpen ? "none" : "";
-    typeInfo.infoElem.style.display = "";
-  }
-  else
-  {
-    typeInfo.infoElem.style.display = "none";
-  }
-}
-
-
-/**
- * Event handler. Called when the user clicked a button for showing/hiding the
- * details of an item.
- *
- * @param nodeType {Integer} the node type of the item to show/hide the details.
- * @param name {String} the name of the item.
- * @param fromClassName {String} the name of the class the item the item was
- *        defined in.
- */
-qx.Proto._onShowItemDetailClicked = function(nodeType, name, fromClassName) {
-  try {
-    var typeInfo = this._infoPanelHash[nodeType];
-    var textDiv = this._getItemElement(nodeType, name);
-
-    if (!textDiv) {
-      throw Error("Element for name '" + name + "' not found!");
-    }
-
-    var showDetails = textDiv._showDetails ? !textDiv._showDetails : true;
-    textDiv._showDetails = showDetails;
-
-    var fromClassNode = this._currentClassDocNode;
-    if (fromClassName) {
-      fromClassNode = this._getClassDocNode(fromClassName);
-    }
-
-    var listNode = apiviewer.TreeUtil.getChild(fromClassNode, typeInfo.listName);
-    var node;
-    if (nodeType == apiviewer.ClassViewer.NODE_TYPE_CONSTRUCTOR) {
-      node = listNode.children[0];
-    } else {
-      node = apiviewer.TreeUtil.getChildByAttribute(listNode, "name", name);
-    }
-
-    // Update the close/open image
-    var opencloseImgElem = textDiv.parentNode.previousSibling.firstChild;
-    opencloseImgElem.src = qx.manager.object.AliasManager.getInstance().resolvePath(showDetails ? 'api/image/close.gif' : 'api/image/open.gif');
-
-    // Update content
-    var info = typeInfo.infoFactory.call(this, node, nodeType, fromClassNode, showDetails);
-    textDiv.innerHTML = info.textHtml;
-    this._fixLinks(textDiv);
-  } catch (exc) {
-    this.error("Toggling item details failed", exc);
-  }
-}
-
-
-/**
- * Event handler. Called when the user clicked on the "show inherited ..." checkbox.
- */
-qx.Proto._onInheritedCheckBoxClick = function()
-{
-  this._showInherited = document.getElementById("showInherited").checked;
-  this._updateInfoViewers();
-}
-
-/**
- * Event handler. Called when the user clicked on the "show protected ..." checkbox.
- */
-qx.Proto._onProtectedCheckBoxClick = function()
-{
-  this._showProtected = document.getElementById("showProtected").checked;
-  this._updateInfoViewers();
-}
-
-
-/**
- * Event handler. Called when the user clicked a button for showing/hiding the
- * body of an info panel.
- *
- * @param nodeType {Integer} the node type of which the show/hide-body-button was
- *        clicked.
- */
-qx.Proto._onShowInfoPanelBodyClicked = function(nodeType) {
-  try {
-    var typeInfo = this._infoPanelHash[nodeType];
-    typeInfo.isOpen = !typeInfo.isOpen;
-
-    var imgElem = typeInfo.infoTitleElem.getElementsByTagName("img")[0];
-    imgElem.src = qx.manager.object.AliasManager.getInstance().resolvePath(typeInfo.isOpen ? 'api/image/close.gif' : 'api/image/open.gif');
-
-    this._updateInfoPanel(nodeType);
-  } catch (exc) {
-    this.error("Toggling info body failed", exc);
-  }
-}
-
-
-/**
- * Gets the HTML element showing the details of an item.
- *
- * @param nodeType {Integer} the node type of the item.
- * @param name {String} the item's name.
- * @return {Element} the HTML element showing the details of the item.
- */
-qx.Proto._getItemElement = function(nodeType, name) {
-  var typeInfo = this._infoPanelHash[nodeType];
-  var elemArr = typeInfo.infoBodyElem.getElementsByTagName("TBODY")[0].childNodes;
-
-  for (var i = 0; i < elemArr.length; i++) {
-    // ARRG, should be implemented in a more fault-tolerant way
-    // iterate over tr's, look inside the third "td" and there the second element
-    if (elemArr[i].childNodes[3].childNodes[1].getAttribute("_itemName") == name) {
-      return elemArr[i].childNodes[3].childNodes[1];
-    }
-  }
-}
-
-
-/**
- * Selects an item.
- *
- * @param itemName {String} the name of the item.
- * @see ApiViewer#selectItem
- */
-qx.Proto._selectItem = function(itemName) {
-  try {
-    apiviewer.Viewer.instance.selectItem(itemName);
-    qx.ui.core.Widget.flushGlobalQueues();
-  } catch (exc) {
-    this.error("Selecting item '" + itemName + "' failed", exc);
-  }
-}
-
-
-/**
- * Gets the doc node of a class.
- *
- * @param className {String} the name of the class.
- * @return {Map} the doc node of the class.
- */
-qx.Proto._getClassDocNode = function(className) {
-  if (className) {
-    return apiviewer.TreeUtil.getClassDocNode(apiviewer.Viewer.instance.getDocTree(), className);
-  } else {
-    return null;
-  }
-}
-
-
-/**
- * Creates the HTML showing the information about a property.
- *
- * @param node {Map} the doc node of the property.
- * @param nodeType {Integer} the node type of the property.
- * @param fromClassNode {Map} the doc node of the class the property was defined.
- * @param showDetails {Boolean} whether to show the details.
- * @return {String} the HTML showing the information about the property.
- */
-qx.Proto._createPropertyInfo = function(node, nodeType, fromClassNode, showDetails) {
-  var ClassViewer = apiviewer.ClassViewer;
-
-  var info = {}
-
-  var typeInfo = this._infoPanelHash[nodeType];
-
-  // Get the property node that holds the documentation
-  var docClassNode = fromClassNode;
-  var docNode = node;
-  if (node.attributes.docFrom) {
-    docClassNode = this._getClassDocNode(node.attributes.docFrom);
-    var listNode = apiviewer.TreeUtil.getChild(docClassNode, typeInfo.listName);
-    docNode = apiviewer.TreeUtil.getChildByAttribute(listNode, "name", node.attributes.name);
-  }
-
-  // Add the title
-  info.typeHtml = this._createTypeHtml(node, fromClassNode, "var");
-  info.titleHtml = node.attributes.name;
-
-  // Add the description
-  info.textHtml = this._createDescHtml(docNode, fromClassNode, showDetails);
-
-  if (showDetails) {
-    // Add allowed values
-    var allowedValue = null;
-    if (node.attributes.possibleValues) {
-      allowedValue = node.attributes.possibleValues;
-    } else if (node.attributes.classname) {
-      allowedValue = "instances of " + node.attributes.classname;
-    } else if (node.attributes.instance) {
-      allowedValue = "instances of " + node.attributes.instance + " or sub classes";
-    } else if (node.attributes.unitDetection) {
-      allowedValue = "units: " + node.attributes.unitDetection;
-    } else if (node.attributes.type) {
-      allowedValue = "any " + node.attributes.type;
-    }
-
-    if (allowedValue) {
-      info.textHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Allowed values:" + ClassViewer.DIV_END
-        + ClassViewer.DIV_START_DETAIL_TEXT;
-
-      if (node.attributes.allowNull != "false") {
-        info.textHtml += "null, ";
-      }
-      info.textHtml += allowedValue + ClassViewer.DIV_END;
-    }
-
-    // Add default value
-    info.textHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Default value:" + ClassViewer.DIV_END
-      + ClassViewer.DIV_START_DETAIL_TEXT
-      + (node.attributes.defaultValue ? node.attributes.defaultValue : "null")
-      + ClassViewer.DIV_END;
-
-    // Add get alias
-    if (node.attributes.getAlias) {
-      info.textHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Get alias:" + ClassViewer.DIV_END
-        + ClassViewer.DIV_START_DETAIL_TEXT + node.attributes.getAlias + ClassViewer.DIV_END;
-    }
-
-    // Add set alias
-    if (node.attributes.setAlias) {
-      info.textHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Set alias:" + ClassViewer.DIV_END
-        + ClassViewer.DIV_START_DETAIL_TEXT + node.attributes.setAlias + ClassViewer.DIV_END;
-    }
-
-    // Add inherited from or overridden from
-    if (fromClassNode && fromClassNode != this._currentClassDocNode) {
-      info.textHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Inherited from:" + ClassViewer.DIV_END
-        + ClassViewer.DIV_START_DETAIL_TEXT
-        + this._createItemLinkHtml(fromClassNode.attributes.fullName)
-        + ClassViewer.DIV_END;
-    } else if (node.attributes.overriddenFrom) {
-      info.textHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Overridden from:" + ClassViewer.DIV_END
-        + ClassViewer.DIV_START_DETAIL_TEXT
-        + this._createItemLinkHtml(node.attributes.overriddenFrom)
-        + ClassViewer.DIV_END;
-    }
-
-    // Add @see attributes
-    info.textHtml += this._createSeeAlsoHtml(docNode, docClassNode);
-
-    // Add documentation errors
-    info.textHtml += this._createErrorHtml(docNode, docClassNode);
-  }
-
-  return info;
-}
-
-
-/**
- * Checks whether an event has details.
- *
- * @param node {Map} the doc node of the event.
- * @param nodeType {Integer} the node type of the event.
- * @param fromClassNode {Map} the doc node of the class the event was defined.
- * @return {Boolean} whether the event has details.
- */
-qx.Proto._eventHasDetails = function(node, nodeType, fromClassNode) {
-  return (fromClassNode != this._currentClassDocNode) // event is inherited
-    || this._hasSeeAlsoHtml(node)
-    || this._hasErrorHtml(node)
-    || this._descHasDetails(node);
-};
-
-
-/**
- * Creates the HTML showing the information about an event.
- *
- * @param node {Map} the doc node of the event.
- * @param nodeType {Integer} the node type of the event.
- * @param fromClassNode {Map} the doc node of the class the event was defined.
- * @param showDetails {Boolean} whether to show the details.
- * @return {String} the HTML showing the information about the event.
- */
-qx.Proto._createEventInfo = function(node, nodeType, fromClassNode, showDetails) {
-  var ClassViewer = apiviewer.ClassViewer;
-
-  var info = {}
-
-  var typeInfo = this._infoPanelHash[nodeType];
-
-  // Add the title
-  info.typeHtml = this._createTypeHtml(node, fromClassNode, "var");
-  info.titleHtml = node.attributes.name;
-
-  // Add the description
-  info.textHtml = this._createDescHtml(node, fromClassNode, showDetails);
-
-  if (showDetails) {
-    // Add inherited from or overridden from
-    if (fromClassNode && fromClassNode != this._currentClassDocNode) {
-      info.textHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Inherited from:" + ClassViewer.DIV_END
-        + ClassViewer.DIV_START_DETAIL_TEXT
-        + this._createItemLinkHtml(fromClassNode.attributes.fullName)
-        + ClassViewer.DIV_END;
-    }
-
-    // Add @see attributes
-    info.textHtml += this._createSeeAlsoHtml(node, fromClassNode);
-
-    // Add documentation errors
-    info.textHtml += this._createErrorHtml(node, fromClassNode);
-  }
-
-  return info;
-};
-
-
-/**
- * Checks whether a method has details.
- *
- * @param node {Map} the doc node of the method.
- * @param nodeType {Integer} the node type of the method.
- * @param fromClassNode {Map} the doc node of the class the method was defined.
- * @return {Boolean} whether the method has details.
- */
-qx.Proto._methodHasDetails = function(node, nodeType, fromClassNode) {
-  var TreeUtil = apiviewer.TreeUtil;
-
-  var typeInfo = this._infoPanelHash[nodeType];
-
-  // Get the method node that holds the documentation
-  var docClassNode = fromClassNode;
-  var docNode = node;
-  if (node.attributes.docFrom) {
-    docClassNode = this._getClassDocNode(node.attributes.docFrom);
-    var listNode = TreeUtil.getChild(docClassNode, typeInfo.listName);
-    docNode = TreeUtil.getChildByAttribute(listNode, "name", node.attributes.name);
-  }
-
-  // Check whether there are details
-  var hasParams = TreeUtil.getChild(docNode, "params") != null;
-  var hasReturn = TreeUtil.getChild(docNode, "return") != null;
-  var isOverridden = fromClassNode != this._currentClassDocNode;
-
-  return (fromClassNode != this._currentClassDocNode) // method is inherited
-    || (node.attributes.overriddenFrom != null)       // method is overridden
-    || (TreeUtil.getChild(docNode, "params") != null) // method has params
-    || (TreeUtil.getChild(docNode, "return") != null) // method has return value
-    || this._hasSeeAlsoHtml(docNode)
-    || this._hasErrorHtml(docNode)
-    || this._descHasDetails(docNode);
-}
-
-
-/**
- * Creates the HTML showing the information about a method.
- *
- * @param node {Map} the doc node of the method.
- * @param nodeType {Integer} the node type of the method.
- * @param fromClassNode {Map} the doc node of the class the method was defined.
- * @param showDetails {Boolean} whether to show the details.
- * @return {String} the HTML showing the information about the method.
- */
-qx.Proto._createMethodInfo = function(node, nodeType, fromClassNode, showDetails) {
-  var ClassViewer = apiviewer.ClassViewer;
-  var TreeUtil = apiviewer.TreeUtil;
-
-  var info = {}
-
-  var typeInfo = this._infoPanelHash[nodeType];
-
-  // Get the method node that holds the documentation
-  var docClassNode = fromClassNode;
-  var docNode = node;
-  if (node.attributes.docFrom) {
-    docClassNode = this._getClassDocNode(node.attributes.docFrom);
-    var listNode = TreeUtil.getChild(docClassNode, typeInfo.listName);
-    docNode = TreeUtil.getChildByAttribute(listNode, "name", node.attributes.name);
-  }
-
-  if (node.attributes.isAbstract) {
-    info.typeHtml = "abstract ";
-  } else {
-    info.typeHtml = "";
-  }
-
-  // Get name, icon and return type
-  var returnNode = TreeUtil.getChild(docNode, "return");
-  if (node.attributes.isCtor) {
-    info.titleHtml = fromClassNode.attributes.name;
-  } else {
-    info.titleHtml = node.attributes.name;
-    info.typeHtml += this._createTypeHtml(returnNode, fromClassNode, "void");
-  }
-
-  // Add the title (the method signature)
-  info.titleHtml += '<span class="methodSignature"> <span class="parenthesis">(</span>';
-  var paramsNode = TreeUtil.getChild(docNode, "params");
-  if (paramsNode) {
-    for (var i = 0; i < paramsNode.children.length; i++) {
-      var param = paramsNode.children[i];
-      if (i != 0) {
-        info.titleHtml += '<span class="separator">,</span> ';
-      }
-      info.titleHtml += '<span class="parameterType">' + this._createTypeHtml(param, fromClassNode, "var") + "</span> "
-        + param.attributes.name;
-      if (param.attributes.defaultValue) {
-        info.titleHtml += "?";
-      }
-    }
-  }
-  info.titleHtml += '<span class="parenthesis">)</span></span>';
-
-  // Add the description
-  if (node.attributes.isCtor) {
-    info.textHtml = "Creates a new instance of " + fromClassNode.attributes.name + ".";
-  } else {
-    info.textHtml = this._createDescHtml(docNode, docClassNode, showDetails);
-  }
-
-
-  if (showDetails) {
-    // Add Parameters
-    var paramsNode = TreeUtil.getChild(docNode, "params");
-    if (paramsNode) {
-      info.textHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Parameters:" + ClassViewer.DIV_END;
-      for (var i = 0; i < paramsNode.children.length; i++) {
-        var param = paramsNode.children[i];
-        var paramType = param.attributes.type ? param.attributes.type : "var";
-        var dims = param.attributes.arrayDimensions;
-        if (dims) {
-          for (var i = 0; i < dims; i++) {
-            paramType += "[]";
-          }
-        }
-        var defaultValue = param.attributes.defaultValue;
-
-        info.textHtml += ClassViewer.DIV_START_DETAIL_TEXT;
-        if (defaultValue) {
-          info.textHtml += ClassViewer.SPAN_START_OPTIONAL;
-        }
-        info.textHtml += ClassViewer.SPAN_START_PARAM_NAME + param.attributes.name + ClassViewer.SPAN_END;
-        if (defaultValue) {
-          info.textHtml += " (default: " + defaultValue + ") " + ClassViewer.SPAN_END;
-        }
-
-        var paramDescNode = TreeUtil.getChild(param, "desc");
-        if (paramDescNode) {
-          info.textHtml += " " + this._createDescriptionHtml(paramDescNode.attributes.text, docClassNode);
-        }
-        info.textHtml += ClassViewer.DIV_END;
-      }
-    }
-
-    // Add return value
-    if (returnNode) {
-      var returnDescNode = TreeUtil.getChild(returnNode, "desc");
-      if (returnDescNode) {
-        info.textHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Returns:" + ClassViewer.DIV_END
-          + ClassViewer.DIV_START_DETAIL_TEXT
-          + this._createDescriptionHtml(returnDescNode.attributes.text, docClassNode)
-          + ClassViewer.DIV_END;
-      }
-    }
-
-    // Add inherited from or overridden from
-    if (fromClassNode && fromClassNode != this._currentClassDocNode) {
-      info.textHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Inherited from:" + ClassViewer.DIV_END
-        + ClassViewer.DIV_START_DETAIL_TEXT
-        + this._createItemLinkHtml(fromClassNode.attributes.fullName)
-        + ClassViewer.DIV_END;
-    } else if (node.attributes.overriddenFrom) {
-      info.textHtml += ClassViewer.DIV_START_DETAIL_HEADLINE + "Overridden from:" + ClassViewer.DIV_END
-        + ClassViewer.DIV_START_DETAIL_TEXT
-        + this._createItemLinkHtml(node.attributes.overriddenFrom)
-        + ClassViewer.DIV_END;
-    }
-
-    // Add @see attributes
-    info.textHtml += this._createSeeAlsoHtml(docNode, docClassNode);
-
-    // Add documentation errors
-    info.textHtml += this._createErrorHtml(docNode, docClassNode);
-  }
-
-  return info;
-}
-
-
-/**
- * Checks whether a constant has details.
- *
- * @param node {Map} the doc node of the constant.
- * @param nodeType {Integer} the node type of the constant.
- * @param fromClassNode {Map} the doc node of the class the constant was defined.
- * @return {Boolean} whether the constant has details.
- */
-qx.Proto._constantHasDetails = function(node, nodeType, fromClassNode) {
-  return (
-    this._hasSeeAlsoHtml(node) ||
-    this._hasErrorHtml(node) ||
-    this._descHasDetails(node) ||
-    this._hasConstantValueHtml(node)
-  );
-}
-
-
-/**
- * Creates the HTML showing the information about a constant.
- *
- * @param node {Map} the doc node of the constant.
- * @param nodeType {Integer} the node type of the constant.
- * @param fromClassNode {Map} the doc node of the class the constant was defined.
- * @param showDetails {Boolean} whether to show the details.
- * @return {String} the HTML showing the information about the constant.
- */
-qx.Proto._createConstantInfo = function(node, nodeType, fromClassNode, showDetails) {
-  var info = {}
-
-  // Add the title
-  info.typeHtml = this._createTypeHtml(node, fromClassNode, "var");
-  info.titleHtml = node.attributes.name;
-
-  // Add the description
-  info.textHtml = this._createDescHtml(node, fromClassNode, showDetails);
-
-  if (showDetails) {
-    info.textHtml += this._createConstantValueHtml(node, fromClassNode);
-
-    // Add @see attributes
-    info.textHtml += this._createSeeAlsoHtml(node, fromClassNode);
-
-    // Add documentation errors
-    info.textHtml += this._createErrorHtml(node, fromClassNode);
-
-  }
-
-  return info;
-}
-
-
-/**
- * Returns whether the description of an item has details (has more than one
- * sentence).
- *
- * @param node {Map} the doc node of the item.
- * @return {Boolean} whether the description of an item has details.
- */
-qx.Proto._descHasDetails = function(node) {
-  var descNode = apiviewer.TreeUtil.getChild(node, "desc");
-  if (descNode) {
-    var desc = descNode.attributes.text;
-    return this._extractFirstSentence(desc) != desc;
-  } else {
-    return false;
-  }
-}
-
-
-/**
- * Creates the HTML showing the description of an item.
- *
- * @param node {Map} the doc node of the item.
- * @param fromClassNode {Map} the doc node of the class the item was defined.
- * @param showDetails {Boolean} whether to show details. If <code>false</code>
- *        only the first sentence of the description will be shown.
- * @return {String} the HTML showing the description.
- */
-qx.Proto._createDescHtml = function(node, fromClassNode, showDetails) {
-  var descNode = apiviewer.TreeUtil.getChild(node, "desc");
-  if (descNode) {
-    var desc = descNode.attributes.text;
-    if (!showDetails) {
-      desc = this._extractFirstSentence(desc);
-    }
-    return apiviewer.ClassViewer.DIV_START_DESC
-      + this._createDescriptionHtml(desc, fromClassNode)
-      + apiviewer.ClassViewer.DIV_END;
-  } else {
-    return "";
-  }
-}
-
-
-/**
- * Extracts the first sentence from a text.
- *
- * @param text {String} the text.
- * @return {String} the first sentence from the text.
- */
-qx.Proto._extractFirstSentence = function(text)
-{
-  var ret = text;
-
-  // Extract first block
-  var pos = ret.indexOf("</p>");
-  if (pos != -1)
-  {
-    ret = ret.substr(0, pos+4);
-
-    var hit = apiviewer.ClassViewer.SENTENCE_END_REGEX.exec(ret);
-    if (hit != null) {
-      ret = text.substring(0, hit.index + hit[0].length - 1) + "</p>";
-    }
-  }
-
-  return ret;
-}
-
-
-/**
- * Checks whether a constant value is provided
- *
- * @param node {Map} the doc node of the item.
- * @return {Boolean} whether the constant provides a value
- */
-qx.Proto._hasConstantValueHtml = function(node) {
-  return node.attributes.value ? true : false;
-}
-
-
-/**
- * Creates the HTML showing the value of a constant
- *
- * @param node {Map} the doc node of the item.
- * @param fromClassNode {Map} the doc node of the class the item was defined.
- * @return {String} the HTML showing the value of the constant
- */
-qx.Proto._createConstantValueHtml = function(node, fromClassNode) {
-  var ClassViewer = apiviewer.ClassViewer;
-  this.debug (node.attributes.value)
-  if (this._hasConstantValueHtml(node)) {
-      return (
-        ClassViewer.DIV_START_DETAIL_HEADLINE + "Value: " + ClassViewer.DIV_END +
-        ClassViewer.DIV_START_DETAIL_TEXT + qx.html.String.escape(qx.io.Json.stringify(node.attributes.value)) + ClassViewer.DIV_END
-      );
-  } else {
-    return "";
-  }
-}
-
-
-/**
- * Checks whether a item has &#64;see attributes.
- *
- * @param node {Map} the doc node of the item.
- * @return {Boolean} whether the item has &#64;see attributes.
- */
-qx.Proto._hasSeeAlsoHtml = function(node) {
-  return apiviewer.TreeUtil.getChild(node, "see") ? true : false;
-}
-
-
-/**
- * Creates the HTML showing the &#64;see attributes of an item.
- *
- * @param node {Map} the doc node of the item.
- * @param fromClassNode {Map} the doc node of the class the item was defined.
- * @return {String} the HTML showing the &#64;see attributes.
- */
-qx.Proto._createSeeAlsoHtml = function(node, fromClassNode) {
-  var ClassViewer = apiviewer.ClassViewer;
-
-  var descNode = apiviewer.TreeUtil.getChild(node, "see");
-
-  if (node.children)
-  {
-    var seeAlsoHtml = "";
-    for (var i = 0; i < node.children.length; i++) {
-      if (node.children[i].type == "see") {
-        // This is a @see attribute
-        if (seeAlsoHtml.length != 0) {
-          seeAlsoHtml += ", ";
-        }
-        seeAlsoHtml += this._createItemLinkHtml(node.children[i].attributes.name, fromClassNode);
-      }
-    }
-    if (seeAlsoHtml.length != 0) {
-      // We had @see attributes
-      return ClassViewer.DIV_START_DETAIL_HEADLINE + "See also:" + ClassViewer.DIV_END
-        + ClassViewer.DIV_START_DETAIL_TEXT + seeAlsoHtml + ClassViewer.DIV_END;
-    }
-  }
-
-  // Nothing found
-  return "";
-}
-
-
-/**
- * Checks whether a item has documentation errors.
- *
- * @param node {Map} the doc node of the item.
- * @return {Boolean} whether the item has documentation errors.
- */
-qx.Proto._hasErrorHtml = function(node) {
-  var errorNode = apiviewer.TreeUtil.getChild(node, "errors");
-  return (errorNode != null);
-}
-
-
-/**
- * Creates the HTML showing the documentation errors of an item.
- *
- * @param node {Map} the doc node of the item.
- * @param fromClassNode {Map} the doc node of the class the item was defined.
- * @return {String} the HTML showing the documentation errors.
- */
-qx.Proto._createErrorHtml = function(node, fromClassNode) {
-  var ClassViewer = apiviewer.ClassViewer;
-
-  var errorNode = apiviewer.TreeUtil.getChild(node, "errors");
-  if (errorNode) {
-    var html = ClassViewer.DIV_START_ERROR_HEADLINE + "Documentation errors:" + ClassViewer.DIV_END;
-    var errArr = errorNode.children;
-    for (var i = 0; i < errArr.length; i++) {
-      html += ClassViewer.DIV_START_DETAIL_TEXT + errArr[i].attributes.msg + " <br/>";
-      html += "("
-      if (fromClassNode && fromClassNode != this._currentClassDocNode) {
-        html += fromClassNode.attributes.fullName + "; ";
-      }
-      html += "Line: " + errArr[i].attributes.line + ", Column:" + errArr[i].attributes.column + ")" + ClassViewer.DIV_END;
-    }
-    return html;
-  } else {
-    return "";
-  }
-}
-
-
-/**
- * Creates the HTML showing the type of a doc node.
- *
- * @param typeNode {Map} the doc node to show the type for.
- * @param packageBaseClass {Map} the doc node of the class <code>typeNode</code>
- *        belongs to.
- * @param defaultType {String} the type name to use if <code>typeNode</code> is
- *        <code>null</code> or defines no type.
- * @param useShortName {Boolean,true} whether to use short class names
- *        (without package).
- * @return {String} the HTML showing the type.
- */
-qx.Proto._createTypeHtml = function(typeNode, packageBaseClass, defaultType, useShortName) {
-  if (useShortName == null) {
-    useShortName = true;
-  }
-
-  var types = [];
-  var typeHtml, typeDimensions, typeName, linkText, dims;
-
-  if (typeNode)
-  {
-    // read in children
-    if (typeNode.children && apiviewer.TreeUtil.getChild(typeNode, "types"))
-    {
-      for (var i=0, a=apiviewer.TreeUtil.getChild(typeNode, "types").children, l=a.length; i<l; i++)
-      {
-        if (a[i].type == "entry")
-        {
-          types.push(a[i].attributes);
-        }
-      }
-    }
-
-    // read from attributes (alternative)
-    if (types.length == 0 && typeNode.attributes)
-    {
-      typeName = typeNode.attributes.instance ? typeNode.attributes.instance : typeNode.attributes.type;
-
-      if (typeName != undefined)
-      {
-        dims = typeNode.attributes.dimensions;
-
-        if (typeof dims == "number" && dims > 0) {
-          types.push({ "type" : typeName, "dimensions" : dims });
-        } else {
-          types.push({ "type" : typeName });
-        }
-      }
-    }
-  }
-
-  if (types.length == 0)
-  {
-    typeHtml = defaultType;
-  }
-  else
-  {
-    typeHtml = "";
-
-    if (types.length > 1) {
-      typeHtml += "("
-    }
-
-    for (var j=0; j<types.length; j++)
-    {
-      if (j>0) {
-        typeHtml += " | ";
-      }
-
-      typeName = types[j].type;
-      typeDimensions = types[j].dimensions;
-
-      if (apiviewer.ClassViewer.PRIMITIVES[typeName])
-      {
-        typeHtml += typeName;
-      }
-      else
-      {
-        linkText = typeName;
-        if (useShortName)
-        {
-          var lastDot = typeName.lastIndexOf(".");
-          if (lastDot != -1) {
-            linkText += " " + typeName.substring(lastDot + 1);
-          }
-        }
-        typeHtml += this._createItemLinkHtml(linkText, packageBaseClass, false, true);
-      }
-
-      if (typeDimensions)
-      {
-        for (var i = 0; i < parseInt(typeDimensions); i++) {
-          typeHtml += "[]";
-        }
-      }
-    }
-
-    if (types.length > 1) {
-      typeHtml += ")"
-    }
-  }
-
-  return typeHtml;
-}
-
-
-/**
- * Creates HTML that replaces all &#64;link-attributes with links.
- *
- * @param description {String} the description.
- * @param packageBaseClass {Map,null} the doc node of the class to use for
- *        auto-adding packages.
- */
-qx.Proto._createDescriptionHtml = function(description, packageBaseClass) {
-  var linkRegex = /\{@link([^\}]*)\}/mg;
-
-  var html = "";
-  var hit;
-  var lastPos = 0;
-  while ((hit = linkRegex.exec(description)) != null) {
-    // Add the text before the link
-    html += description.substring(lastPos, hit.index)
-      + this._createItemLinkHtml(hit[1], packageBaseClass);
-
-    lastPos = hit.index + hit[0].length;
-  }
-
-  // Add the text after the last hit
-  html += description.substring(lastPos, description.length);
-
-  return html;
-}
-
-
-/**
- * Creates the HTML for a link to an item.
- *
- * @param linkText {String} the link text
- *        (e.g. "mypackage.MyClass#myMethod alt text")
- * @param packageBaseClass {Map,null} the doc node of the class to use when
- *        auto-adding the package to a class name having no package specified.
- *        If null, no automatic package addition is done.
- * @param useIcon {Boolean,true} whether to add an icon to the link.
- * @param useShortName {Boolean,false} whether to use the short name.
- */
-qx.Proto._createItemLinkHtml = function(linkText, packageBaseClass, useIcon,
-  useShortName)
-{
-  if (useIcon == null) {
-    useIcon = true;
-  }
-
-  linkText = qx.lang.String.trim(linkText);
-
-  if (linkText.charAt(0) == '"' || linkText.charAt(0) == '<') {
-    // This is a String or a link to a URL -> Just use it as it is
-    return linkText;
-  } else {
-    // This is a link to another class or method -> Create an item link
-
-    // Separate item name from label
-    var hit = apiviewer.ClassViewer.ITEM_SPEC_REGEX.exec(linkText);
-    if (hit == null) {
-      // Malformed item name
-      return linkText;
-    } else {
-      var className = hit[2];
-      var itemName = hit[3];
-      var label = hit[6];
-
-      // Make the item name absolute
-      if (className == null || className.length == 0) {
-        // This is a relative link to a method -> Add the current class
-        className = packageBaseClass.attributes.fullName;
-      } else if (packageBaseClass && className.indexOf(".") == -1) {
-        // The class name has no package -> Use the same package as the current class
-        var name = packageBaseClass.attributes.name;
-        var fullName = packageBaseClass.attributes.fullName;
-        var packageName = fullName.substring(0, fullName.length - name.length);
-        className = packageName + className;
-      }
-
-      // Get the node info
-      if (label == null || label.length == 0) {
-        // We have no label -> Use the item name as label
-        label = hit[1];
-      }
-
-      // Add the right icon
-      if (useIcon) {
-        var classNode = this._getClassDocNode(className);
-        if (classNode) {
-          var itemNode;
-          if (itemName) {
-            // The links points to a item of the class
-            var cleanItemName = itemName.substring(1);
-            var parenPos = cleanItemName.indexOf("(");
-            if (parenPos != -1) {
-              cleanItemName = qx.lang.String.trim(cleanItemName.substring(0, parenPos));
-            }
-            itemNode = apiviewer.TreeUtil.getItemDocNode(classNode, cleanItemName);
-          } else {
-            // The links points to the class
-            itemNode = classNode;
-          }
-          if (itemNode) {
-            var iconUrl = apiviewer.TreeUtil.getIconUrl(itemNode);
-            var iconCode = apiviewer.ClassViewer.createImageHtml(iconUrl);
-          }
-        }
-      }
-
-      // Create a real bookmarkable link
-      // NOTE: The onclick-handler must be added by HTML code. If it
-      //       is added using the DOM element then the href is followed.
-      var fullItemName = className + (itemName ? itemName : "");
-      return '<span style="white-space: nowrap;">'
-        + (typeof iconCode != "undefined" ? iconCode : "")
-        + '<a href="' + window.location.protocol + '//' +  window.location.pathname
-        + '#' + fullItemName + '" onclick="'
-        + 'document._detailViewer._selectItem(\'' + fullItemName + '\'); return false;"'
-        + ' title="' + fullItemName + '">' + label + '</a></span>';
-    }
-  }
-}
-
-
-/**
- * Gets the node type for a doc node.
- *
- * @param itemNode {Map} the doc node of the item.
- * @return {Integer} the item's node type.
- */
-qx.Proto._getTypeForItemNode = function(itemNode) {
-  var ClassViewer = apiviewer.ClassViewer;
-
-  if (itemNode.type == "constant") {
-    return ClassViewer.NODE_TYPE_CONSTANT;
-  } else if (itemNode.type == "property") {
-    return ClassViewer.NODE_TYPE_PROPERTY;
-  } else if (itemNode.type == "event") {
-    return ClassViewer.NODE_TYPE_EVENT;
-  } else if (itemNode.type == "method") {
-    var name = itemNode.attributes.name;
-    if (name == null) {
-      return ClassViewer.NODE_TYPE_CONSTRUCTOR;
-    } else {
-      if (itemNode.attributes.isStatic) {
-        return ClassViewer.NODE_TYPE_METHOD_STATIC;
-      } else {
-        return ClassViewer.NODE_TYPE_METHOD;
-      }
-    }
-  }
-}
-
-
-// overridden
-qx.Proto.dispose = function() {
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this._titleElem = null;
-  this._classDescElem = null;
-  this._markedElement = null;
-
-  for (var nodeType in this._infoPanelHash) {
-    this._infoPanelHash[nodeType].infoElem = null;
-    this._infoPanelHash[nodeType].infoTitleElem = null;
-    this._infoPanelHash[nodeType].infoBodyElem = null;
-  }
-
-  document._detailViewer = null;
-
-  return qx.ui.embed.HtmlEmbed.prototype.dispose.call(this);
-}
-
-
-/** {Map} The primitive types. These types will not be shown with links. */
-qx.Class.PRIMITIVES = { "var":true, "void":true, "undefined":true, "arguments":true,
-  "Boolean":true, "String":true, "Float":true, "Double":true,
-  "Number":true, "Integer":true, "Error":true,
-  "RegExp":true, "Array":true, "Map":true, "Date":true, "Element":true,
-  "Document":true, "Window":true, "Node":true, "Function":true, "Object":true,
-  "Event":true };
-
-/**
- * {regexp} The regexp for parsing a item name
- * (e.g. "mypackage.MyClass#MY_CONSTANT alternative text").
- */
-qx.Class.ITEM_SPEC_REGEX = /^(([\w\.]+)?(#\w+(\([^\)]*\))?)?)(\s+(.*))?$/;
-
-/** {regexp} The regexp that finds the end of a sentence. */
-qx.Class.SENTENCE_END_REGEX = /[^\.].\.(\s|<)/;
-
-/** {int} The node type of a constructor. */
-qx.Class.NODE_TYPE_CONSTRUCTOR = 1;
-/** {int} The node type of an event. */
-qx.Class.NODE_TYPE_EVENT = 2;
-/** {int} The node type of a property. */
-qx.Class.NODE_TYPE_PROPERTY = 3;
-
-/** {int} The node type of a public method. */
-qx.Class.NODE_TYPE_METHOD = 4;
-/** {int} The node type of a static public method. */
-qx.Class.NODE_TYPE_METHOD_STATIC = 5;
-/** {int} The node type of a constant. */
-qx.Class.NODE_TYPE_CONSTANT = 6;
-
-/** {string} The start tag of a div. */
-qx.Class.DIV_START = '<div>';
-/** {string} The start tag of a div containing an item description. */
-qx.Class.DIV_START_DESC = '<div class="item-desc">';
-/** {string} The start tag of a div containing the headline of an item detail. */
-qx.Class.DIV_START_DETAIL_HEADLINE = '<div class="item-detail-headline">';
-/** {string} The start tag of a div containing the text of an item detail. */
-qx.Class.DIV_START_DETAIL_TEXT = '<div class="item-detail-text">';
-/** {string} The start tag of a div containing the headline of an item error. */
-qx.Class.DIV_START_ERROR_HEADLINE = '<div class="item-detail-error">';
-/** {string} The end tag of a div. */
-qx.Class.DIV_END = '</div>';
-
-/** {string} The start tag of a span containing an optional detail. */
-qx.Class.SPAN_START_OPTIONAL = '<span class="item-detail-optional">';
-/** {string} The start tag of a span containing a parameter name. */
-qx.Class.SPAN_START_PARAM_NAME = '<span class="item-detail-param-name">';
-/** {string} The end tag of a span. */
-qx.Class.SPAN_END = '</span>';
-
-
-/**
- * Creates the HTML showing an image.
- *
- * @param imgUrl {var} the URL of the image. May be a string or an array of
- *        strings (for overlay images).
- * @param tooltip {String} the tooltip to show.
- * @param styleAttributes {String} the style attributes to add to the image.
- */
-qx.Class.createImageHtml = function(imgUrl, tooltip, styleAttributes) {
-  if (typeof imgUrl == "string") {
-    return '<img src="' + qx.manager.object.AliasManager.getInstance().resolvePath(imgUrl) + '" class="img"'
-      + (styleAttributes ? ' style="' + styleAttributes + '"' : "") + '/>';
-  } else {
-    if (styleAttributes) {
-      styleAttributes += ";vertical-align:top";
-    } else {
-      styleAttributes = "vertical-align:top";
-    }
-    return apiviewer.ClassViewer.createOverlayImageHtml(18, 18, imgUrl, tooltip, styleAttributes);
-  }
-}
-
-
-/**
- * Creates HTML that shows an overlay image (several images on top of each other).
- * The resulting HTML will behave inline.
- *
- * @param width {Integer} the width of the images.
- * @param height {Integer} the height of the images.
- * @param imgUrlArr {String[]} the URLs of the images. The last image will be
- *        painted on top.
- * @param toolTip {String,null} the tooltip of the icon.
- * @param styleAttributes {String,null} custom CSS style attributes.
- * @return {String} the HTML with the overlay image.
- */
-qx.Class.createOverlayImageHtml
-  = function(width, height, imgUrlArr, toolTip, styleAttributes)
-{
-  var html = '<div style="position:relative;top:0;left:0;width:' + width + 'px;height:' + height + 'px'
-  + ((styleAttributes == null) ? '' : (';' + styleAttributes)) + '">';
-
-  for (var i = 0; i < imgUrlArr.length; i++) {
-    html += '<img';
-    if (toolTip != null) {
-      html += ' title="' + toolTip + '"';
-    }
-    html += ' style="position:absolute;top:0px;left:0px" src="' + qx.manager.object.AliasManager.getInstance().resolvePath(imgUrlArr[i]) + '"/>';
-  }
-
-  html += '</div>';
-
-  /*
-  // NOTE: See testOverlay.html
-  var html = '<table cellpadding="0" cellspacing="0" '
-    + 'style="display:inline;position:relative;border:1px solid blue'
-    + ((styleAttributes == null) ? '' : (';' + styleAttributes)) + '"><tr>'
-    + '<td style="width:' + width + 'px;height:' + height + 'px">';
-  for (var i = 0; i < imgUrlArr.length; i++) {
-    html += '<img';
-    if (toolTip != null) {
-      html += ' title="' + toolTip + '"';
-    }
-    html += ' style="position:absolute;top:0px;left:0px" src="' + imgUrlArr[i] + '"></img>';
-  }
-  html += '</td></tr></table>';
-  */
-
-  return html;
-}
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/class/apiviewer/InfoViewer.js b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/class/apiviewer/InfoViewer.js
deleted file mode 100644 (file)
index 01c13e4..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(apiviewer)
-
-************************************************************************ */
-
-/**
- * Shows the class details.
- */
-qx.OO.defineClass("apiviewer.InfoViewer", qx.ui.embed.HtmlEmbed,
-function() {
-  qx.ui.embed.HtmlEmbed.call(this);
-
-  this.setOverflow("auto");
-  this.setPadding(20);
-  this.setEdge(0);
-  this.setHtmlProperty("id", "InfoViewer");
-  this.setVisibility(false);
-
-  apiviewer.InfoViewer.instance = this;
-});
-
-qx.Proto.showInfo = function(classNode)
-{
-  var vHtml = "";
-
-  // Title
-  vHtml += '<h1>';
-  vHtml += '<div class="pkgtitle">package</div>';
-  vHtml += classNode.attributes.fullName;
-  vHtml += '</h1>';
-
-  // TODO: Overview of classes in this package
-
-  // Apply HTML
-  this.setHtml(vHtml);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/class/apiviewer/TreeUtil.js b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/class/apiviewer/TreeUtil.js
deleted file mode 100755 (executable)
index 05f26a5..0000000
+++ /dev/null
@@ -1,382 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(apiviewer)
-#embed(apiviewer.image/*)
-
-************************************************************************ */
-
-/**
- * A util class for handling the documentation tree.
- */
-qx.OO.defineClass("apiviewer.TreeUtil", qx.core.Object,
-function () {
-  qx.core.Object.call(this);
-});
-
-
-/**
- * Gets the child of a doc node having a certain type.
- *
- * @param docNode {Map} the doc node to get the child of.
- * @param childType {String} the type of the child to get.
- * @return {Map} the wanted child or <code>null</code> if <code>docNode</code>
- *         is <code>null</code> or has no such child.
- */
-qx.Class.getChild = function(docNode, childType) {
-  if (docNode != null && docNode.children != null) {
-    for (var i = 0; i < docNode.children.length; i++) {
-      if (docNode.children[i].type == childType) {
-        return docNode.children[i];
-      }
-    }
-  }
-
-  return null;
-}
-
-
-/**
- * Gets the child of a doc node having a certain attribute value.
- *
- * @param docNode {Map} the doc node to get the child of.
- * @param attributeName {String} the name of the attribute the wanted child must have.
- * @param attributeValue {String} the value of the attribute the wanted child must have.
- * @return {Map} the wanted child or <code>code</code> if there is no such child.
- */
-qx.Class.getChildByAttribute = function(docNode, attributeName, attributeValue) {
-  if (docNode.children != null) {
-    for (var i = 0; i < docNode.children.length; i++) {
-      var node = docNode.children[i];
-      if (node.attributes && node.attributes[attributeName] == attributeValue) {
-        return node;
-      }
-    }
-  }
-
-  return null;
-}
-
-
-/**
- * Searches the doc node of a item. Only use this method if you don't know the
- * type of the item.
- *
- * @param classNode {Map} the class node the item belongs to.
- * @param itemName {String} the name of the item to search.
- * @return {Map} the doc node of the item or <code>null</code> if the class has
- *         no such item.
- */
-qx.Class.getItemDocNode = function(classNode, itemName) {
-  var TreeUtil = apiviewer.TreeUtil;
-
-  // Go through the item lists and check whether one contains the wanted item
-  for (var i = 0; i < TreeUtil.ITEM_LIST_ARR.length; i++) {
-    var listNode = TreeUtil.getChild(classNode, TreeUtil.ITEM_LIST_ARR[i]);
-    if (listNode) {
-      var itemNode = TreeUtil.getChildByAttribute(listNode, "name", itemName);
-      if (itemNode) {
-        return itemNode;
-      }
-    }
-  }
-
-  // Nothing found
-  return null;
-}
-
-
-/**
- * Gets the doc node of a class.
- *
- * @param docTree {Map} the documentation tree.
- * @param className {String} the name of the class.
- * @return {Map} the doc node of the class.
- */
-qx.Class.getClassDocNode = function(docTree, className) {
-  var splits = className.split(".");
-  var currNode = docTree;
-  for (var i = 0; i < splits.length && currNode != null; i++) {
-    if (i < splits.length - 1) {
-      // The current name is a package name
-      var packages = this.getChild(currNode, "packages");
-      currNode = packages ? this.getChildByAttribute(packages, "name", splits[i]) : null;
-    } else {
-      // The current name is a class name
-      var classes = this.getChild(currNode, "classes");
-      currNode = classes ? this.getChildByAttribute(classes, "name", splits[i]) : null;
-    }
-  }
-
-  return currNode;
-}
-
-
-/**
- * Gets the icon URL of a doc node.
- *
- * @param node {Map} the node to get the icon for.
- * @param inherited {Boolean,false} whether the node was inherited.
- * @return {var} the URL of the icon. May be a string or an array of string
- *         (in case of an overlay icon).
- */
-qx.Class.getIconUrl = function(node, inherited, context) {
-  var constName;
-  switch (node.type) {
-    case "package":
-      constName = "ICON_PACKAGE";
-      break;
-    case "class":
-      constName = "ICON_CLASS";
-
-      if (node.attributes.isStatic) {
-        constName += "_STATIC";
-      } else if (node.attributes.isAbstract) {
-        constName += "_ABSTRACT";
-      }
-
-      break;
-    case "property":
-      constName = "ICON_PROPERTY";
-      break;
-    case "event":
-      constName = "ICON_EVENT";
-      break;
-    case "method":
-      var isCtor = node.attributes.name == null;
-      var isPublic = isCtor || (node.attributes.name.charAt(0) != "_");
-
-      constName = "ICON_METHOD" + (isPublic ? "_PUB" : "_PROT");
-
-      if (isCtor) {
-        constName += "_CTOR";
-      } else if (node.attributes.isStatic) {
-        constName += "_STATIC";
-      } else if (node.attributes.isAbstract) {
-        constName += "_ABSTRACT";
-      }
-
-      break;
-    case "constant":
-      constName = "ICON_CONSTANT";
-      break;
-    default: throw new Error("Unknown node type: " + node.type);
-  }
-
-  if (inherited) {
-    constName += "_INHERITED";
-  } else if (node.attributes.overriddenFrom) {
-    constName += "_OVERRIDDEN";
-  }
-
-  if (node.attributes.hasError) {
-    constName += "_ERROR";
-  } else if (node.attributes.hasWarning) {
-    constName += "_WARN";
-  }
-
-  var iconUrl = apiviewer.TreeUtil[constName];
-  if (iconUrl == null) {
-    throw new Error("Unknown img constant: " + constName);
-  }
-
-  return iconUrl;
-}
-
-
-/** {string[]} The names of lists containing items. */
-qx.Class.ITEM_LIST_ARR = [ "constants", "properties", "methods-pub", "methods-pub",
-                        "methods-static-prot", "methods-static-prot" ];
-
-
-/** {string} The URL of the overlay "abstract". */
-qx.Class.OVERLAY_ABSTRACT   = "api/image/overlay_abstract18.gif";
-/** {string} The URL of the overlay "error". */
-qx.Class.OVERLAY_ERROR      = "api/image/overlay_error18.gif";
-/** {string} The URL of the overlay "inherited". */
-qx.Class.OVERLAY_INHERITED  = "api/image/overlay_inherited18.gif";
-/** {string} The URL of the overlay "overridden". */
-qx.Class.OVERLAY_OVERRIDDEN = "api/image/overlay_overridden18.gif";
-/** {string} The URL of the overlay "static". */
-qx.Class.OVERLAY_STATIC     = "api/image/overlay_static18.gif";
-/** {string} The URL of the overlay "warning". */
-qx.Class.OVERLAY_WARN       = "api/image/overlay_warning18.gif";
-
-
-/** {string} The icon URL of a package. */
-qx.Class.ICON_PACKAGE      = "api/image/package18.gif";
-/** {string} The icon URL of a package with warning. */
-qx.Class.ICON_PACKAGE_WARN = "api/image/package_warning18.gif";
-
-
-/** {string} The icon URL of a class. */
-qx.Class.ICON_CLASS       = "api/image/class18.gif";
-/** {string} The icon URL of a class with warning. */
-qx.Class.ICON_CLASS_WARN  = "api/image/class_warning18.gif";
-/** {string} The icon URL of a class with error. */
-qx.Class.ICON_CLASS_ERROR = "api/image/class_warning18.gif";
-
-/** {string} The icon URL of a static class. */
-qx.Class.ICON_CLASS_STATIC       = "api/image/class_static18.gif";
-/** {string} The icon URL of a static class with warning. */
-qx.Class.ICON_CLASS_STATIC_WARN  = "api/image/class_static_warning18.gif";
-/** {string} The icon URL of a static class with error. */
-qx.Class.ICON_CLASS_STATIC_ERROR = "api/image/class_static_warning18.gif";
-
-/** {string} The icon URL of an abstract class. */
-qx.Class.ICON_CLASS_ABSTRACT       = "api/image/class_abstract18.gif";
-/** {string} The icon URL of an abstract class with warning. */
-qx.Class.ICON_CLASS_ABSTRACT_WARN  = "api/image/class_abstract_warning18.gif";
-/** {string} The icon URL of an abstract class with error. */
-qx.Class.ICON_CLASS_ABSTRACT_ERROR = "api/image/class_abstract_warning18.gif";
-
-
-/** {string} The icon URL of a property. */
-qx.Class.ICON_PROPERTY       = "api/image/property18.gif";
-/** {string[]} The icon URL of a property with warning. */
-qx.Class.ICON_PROPERTY_WARN  = [ qx.Class.ICON_PROPERTY, qx.Class.OVERLAY_WARN ];
-/** {string[]} The icon URL of a property with error. */
-qx.Class.ICON_PROPERTY_ERROR = [ qx.Class.ICON_PROPERTY, qx.Class.OVERLAY_ERROR ];
-
-/** {string[]} The icon URL of an inherited property. */
-qx.Class.ICON_PROPERTY_INHERITED       = [ qx.Class.ICON_PROPERTY, qx.Class.OVERLAY_INHERITED ];
-/** {string[]} The icon URL of an inherited property with warning. */
-qx.Class.ICON_PROPERTY_INHERITED_WARN  = [ qx.Class.ICON_PROPERTY, qx.Class.OVERLAY_INHERITED, qx.Class.OVERLAY_WARN ];
-/** {string[]} The icon URL of an inherited property with error. */
-qx.Class.ICON_PROPERTY_INHERITED_ERROR = [ qx.Class.ICON_PROPERTY, qx.Class.OVERLAY_INHERITED, qx.Class.OVERLAY_ERROR ];
-
-/** {string[]} The icon URL of an overridden property. */
-qx.Class.ICON_PROPERTY_OVERRIDDEN       = [ qx.Class.ICON_PROPERTY, qx.Class.OVERLAY_OVERRIDDEN ];
-/** {string[]} The icon URL of an overridden property with warning. */
-qx.Class.ICON_PROPERTY_OVERRIDDEN_WARN  = [ qx.Class.ICON_PROPERTY, qx.Class.OVERLAY_OVERRIDDEN, qx.Class.OVERLAY_WARN ];
-/** {string[]} The icon URL of an overridden property with error. */
-qx.Class.ICON_PROPERTY_OVERRIDDEN_ERROR = [ qx.Class.ICON_PROPERTY, qx.Class.OVERLAY_OVERRIDDEN, qx.Class.OVERLAY_ERROR ];
-
-
-/** {string} The icon URL of an event. */
-qx.Class.ICON_EVENT = "api/image/event18.gif";
-
-/** {string[]} The icon URL of an inherited event. */
-qx.Class.ICON_EVENT_INHERITED = [ qx.Class.ICON_EVENT, qx.Class.OVERLAY_INHERITED ];
-
-
-/** {string} The icon URL of a public method. */
-qx.Class.ICON_METHOD_PUB       = "api/image/method_public18.gif";
-/** {string[]} The icon URL of a public method with warning. */
-qx.Class.ICON_METHOD_PUB_WARN  = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_ERROR ];
-/** {string[]} The icon URL of a public method with error. */
-qx.Class.ICON_METHOD_PUB_ERROR = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_ERROR ];
-
-/** {string[]} The icon URL of an inherited public method. */
-qx.Class.ICON_METHOD_PUB_INHERITED       = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_INHERITED ];
-/** {string[]} The icon URL of an inherited public method with warning. */
-qx.Class.ICON_METHOD_PUB_INHERITED_WARN  = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_INHERITED, qx.Class.OVERLAY_WARN ];
-/** {string[]} The icon URL of an inherited public method with error. */
-qx.Class.ICON_METHOD_PUB_INHERITED_ERROR = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_INHERITED, qx.Class.OVERLAY_ERROR ];
-
-/** {string[]} The icon URL of an overridden public method. */
-qx.Class.ICON_METHOD_PUB_OVERRIDDEN       = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_OVERRIDDEN ];
-/** {string[]} The icon URL of an overridden public method with warning. */
-qx.Class.ICON_METHOD_PUB_OVERRIDDEN_WARN  = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_OVERRIDDEN, qx.Class.OVERLAY_WARN ];
-/** {string[]} The icon URL of an overridden public method with error. */
-qx.Class.ICON_METHOD_PUB_OVERRIDDEN_ERROR = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_OVERRIDDEN, qx.Class.OVERLAY_ERROR ];
-
-/** {string[]} The icon URL of a public static method. */
-qx.Class.ICON_METHOD_PUB_STATIC       = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_STATIC ];
-/** {string[]} The icon URL of a public static method with error. */
-qx.Class.ICON_METHOD_PUB_STATIC_ERROR = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_STATIC, qx.Class.OVERLAY_ERROR ];
-
-/** {string[]} The icon URL of a public abstract method. */
-qx.Class.ICON_METHOD_PUB_ABSTRACT       = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_ABSTRACT ];
-/** {string[]} The icon URL of a public abstract method with warning. */
-qx.Class.ICON_METHOD_PUB_ABSTRACT_WARN  = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_WARN ];
-/** {string[]} The icon URL of a public abstract method with error. */
-qx.Class.ICON_METHOD_PUB_ABSTRACT_ERROR = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_ERROR ];
-
-/** {string[]} The icon URL of an overridden public abstract method. */
-qx.Class.ICON_METHOD_PUB_ABSTRACT_OVERRIDDEN       = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_OVERRIDDEN ];
-/** {string[]} The icon URL of an overridden public abstract method with warning. */
-qx.Class.ICON_METHOD_PUB_ABSTRACT_OVERRIDDEN_WARN  = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_OVERRIDDEN, qx.Class.OVERLAY_WARN ];
-/** {string[]} The icon URL of an overridden public abstract method with error. */
-qx.Class.ICON_METHOD_PUB_ABSTRACT_OVERRIDDEN_ERROR = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_OVERRIDDEN, qx.Class.OVERLAY_ERROR ];
-
-/** {string[]} The icon URL of an inherited public abstract method. */
-qx.Class.ICON_METHOD_PUB_ABSTRACT_INHERITED       = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_INHERITED ];
-/** {string[]} The icon URL of an inherited public abstract method with warning. */
-qx.Class.ICON_METHOD_PUB_ABSTRACT_INHERITED_WARN  = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_INHERITED, qx.Class.OVERLAY_WARN ];
-/** {string[]} The icon URL of an inherited public abstract method with error. */
-qx.Class.ICON_METHOD_PUB_ABSTRACT_INHERITED_ERROR = [ qx.Class.ICON_METHOD_PUB, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_INHERITED, qx.Class.OVERLAY_ERROR ];
-
-
-/** {string} The icon URL of a constructor. */
-qx.Class.ICON_METHOD_PUB_CTOR       = "api/image/constructor18.gif";
-/** {string[]} The icon URL of a constructor with error. */
-qx.Class.ICON_METHOD_PUB_CTOR_ERROR = [ qx.Class.ICON_METHOD_PUB_CTOR, qx.Class.OVERLAY_ERROR ];
-
-
-/** {string} The icon URL of a protected method. */
-qx.Class.ICON_METHOD_PROT       = "api/image/method_protected18.gif";
-/** {string[]} The icon URL of a protected method with warning. */
-qx.Class.ICON_METHOD_PROT_WARN  = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_ERROR ];
-/** {string[]} The icon URL of a protected method with error. */
-qx.Class.ICON_METHOD_PROT_ERROR = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_ERROR ];
-
-/** {string[]} The icon URL of an inherited protected method. */
-qx.Class.ICON_METHOD_PROT_INHERITED       = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_INHERITED ];
-/** {string[]} The icon URL of an inherited protected method with warning. */
-qx.Class.ICON_METHOD_PROT_INHERITED_WARN  = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_INHERITED, qx.Class.OVERLAY_WARN ];
-/** {string[]} The icon URL of an inherited protected method with error. */
-qx.Class.ICON_METHOD_PROT_INHERITED_ERROR = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_INHERITED, qx.Class.OVERLAY_ERROR ];
-
-/** {string[]} The icon URL of an overridden protected method. */
-qx.Class.ICON_METHOD_PROT_OVERRIDDEN       = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_OVERRIDDEN ];
-/** {string[]} The icon URL of an overridden protected method with warning. */
-qx.Class.ICON_METHOD_PROT_OVERRIDDEN_WARN  = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_OVERRIDDEN, qx.Class.OVERLAY_WARN ];
-/** {string[]} The icon URL of an overridden protected method with error. */
-qx.Class.ICON_METHOD_PROT_OVERRIDDEN_ERROR = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_OVERRIDDEN, qx.Class.OVERLAY_ERROR ];
-
-/** {string[]} The icon URL of a protected static method. */
-qx.Class.ICON_METHOD_PROT_STATIC       = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_STATIC ];
-/** {string[]} The icon URL of a protected static method with error. */
-qx.Class.ICON_METHOD_PROT_STATIC_ERROR = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_STATIC, qx.Class.OVERLAY_ERROR ];
-
-/** {string[]} The icon URL of an abstract protected method. */
-qx.Class.ICON_METHOD_PROT_ABSTRACT       = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_ABSTRACT ];
-/** {string[]} The icon URL of an abstract protected method with warning. */
-qx.Class.ICON_METHOD_PROT_ABSTRACT_WARN  = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_WARN ];
-/** {string[]} The icon URL of an abstract protected method with error. */
-qx.Class.ICON_METHOD_PROT_ABSTRACT_ERROR = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_ERROR ];
-
-/** {string[]} The icon URL of an inherited abstract protected method. */
-qx.Class.ICON_METHOD_PROT_ABSTRACT_INHERITED       = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_INHERITED ];
-/** {string[]} The icon URL of an inherited abstract protected method with warning. */
-qx.Class.ICON_METHOD_PROT_ABSTRACT_INHERITED_WARN  = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_INHERITED, qx.Class.OVERLAY_WARN ];
-/** {string[]} The icon URL of an inherited abstract protected method with error. */
-qx.Class.ICON_METHOD_PROT_ABSTRACT_INHERITED_ERROR = [ qx.Class.ICON_METHOD_PROT, qx.Class.OVERLAY_ABSTRACT, qx.Class.OVERLAY_INHERITED, qx.Class.OVERLAY_ERROR ];
-
-
-/** {string} The icon URL of a constant. */
-qx.Class.ICON_CONSTANT       = "api/image/constant18.gif";
-/** {string[]} The icon URL of a constant with error. */
-qx.Class.ICON_CONSTANT_ERROR = [ qx.Class.ICON_CONSTANT, qx.Class.OVERLAY_ERROR ];
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/class/apiviewer/Viewer.js b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/class/apiviewer/Viewer.js
deleted file mode 100755 (executable)
index b2f81d4..0000000
+++ /dev/null
@@ -1,433 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(apiviewer)
-#resource(css:css)
-#resource(image:image)
-
-************************************************************************ */
-
-/**
- * The API viewer. Shows the API documentation.
- */
-qx.OO.defineClass("apiviewer.Viewer", qx.ui.layout.DockLayout,
-function () {
-  qx.ui.layout.DockLayout.call(this);
-
-  this.setEdge(0);
-
-  this._titlePrefix = this.getSetting("title") + " API Documentation";
-  document.title = this._titlePrefix;
-
-  // create header
-  var header = new qx.ui.embed.HtmlEmbed(
-    "<h1>" +
-    "<span>" + this.getSetting("title") + "</span>"+
-    " API Documentation"+
-    "</h1>" +
-    "<div id='qxversion'>qooxdoo " + qx.core.Version.toString() + "</div>"
-  );
-  header.setHtmlProperty("id", "header");
-  header.setStyleProperty("background", "#134275 url(" + qx.manager.object.AliasManager.getInstance().resolvePath("api/image/colorstrip.gif") + ") top left repeat-x");
-  header.setHeight(70);
-  this.addTop(header);
-
-  this._tree = new qx.ui.tree.Tree("API Documentation");
-  this._tree.set({
-    backgroundColor: "white",
-    overflow: "scroll",
-    width: "100%",
-    height: "100%",
-    border: qx.renderer.border.BorderPresets.getInstance().inset,
-    paddingLeft: 5,
-    paddingTop: 3
-  });
-  this._tree.getManager().addEventListener("changeSelection", this._onTreeSelectionChange, this);
-
-  this._detailFrame = new qx.ui.layout.CanvasLayout;
-  this._detailFrame.set({
-    width: "100%",
-    height: "100%",
-    backgroundColor: "white",
-    border: qx.renderer.border.BorderPresets.getInstance().inset
-  });
-  this._detailFrame.setHtmlProperty("id", "DetailFrame");
-
-  // create vertival splitter
-  var mainSplitPane = new qx.ui.splitpane.HorizontalSplitPane(250, "1*");
-  mainSplitPane.setLiveResize(true);
-  mainSplitPane.addLeft(this._tree);
-  mainSplitPane.addRight(this._detailFrame);
-  this.add(mainSplitPane);
-
-  this._detailLoader = new qx.ui.embed.HtmlEmbed('<h1><div class="please">please wait</div>Loading data...</h1>');
-  this._detailLoader.setHtmlProperty("id", "DetailLoader");
-  this._detailLoader.setMarginLeft(20);
-  this._detailLoader.setMarginTop(20);
-  this._detailFrame.add(this._detailLoader);
-
-  this._classViewer = new apiviewer.ClassViewer;
-  this._detailFrame.add(this._classViewer);
-
-  this._infoViewer = new apiviewer.InfoViewer;
-  this._detailFrame.add(this._infoViewer);
-
-  this._currentTreeType = apiviewer.Viewer.PACKAGE_TREE;
-
-  // Workaround: Since navigating in qx.ui.tree.Tree doesn't work, we've to
-  //             maintain a hash that keeps the tree nodes for class names
-  this._classTreeNodeHash = {};
-  this._classTreeNodeHash[apiviewer.Viewer.PACKAGE_TREE] = {};
-  this._classTreeNodeHash[apiviewer.Viewer.INHERITENCE_TREE] = {};
-
-  apiviewer.Viewer.instance = this;
-
-  qx.client.History.getInstance().init();
-  qx.client.History.getInstance().addEventListener("request", this._onHistoryRequest, this);
-});
-
-
-/** The documentation tree to show. */
-qx.OO.addProperty({ name:"docTree", type:"object" });
-
-
-qx.Settings.setDefault("title", "qooxdoo");
-qx.Settings.setDefault("initialTreeDepth", 1);
-
-
-// property checker
-qx.Proto._modifyDocTree = function(propValue, propOldValue, propData) {
-  this._updateTree(propValue);
-  return true;
-}
-
-
-/**
- * Loads the API doc tree from a URL. The URL must point to a JSON encoded
- * doc tree.
- *
- * @param url {String} the URL.
- */
-qx.Proto.load = function(url)
-{
-  var req = new qx.io.remote.Request(url);
-
-  req.setTimeout(180000);
-
-  req.addEventListener("completed", function(evt)
-  {
-    var content = evt.getData().getContent();
-    this.setDocTree(eval("(" + content + ")"));
-
-    qx.ui.core.Widget.flushGlobalQueues();
-
-    // Handle bookmarks
-    if (window.location.hash) {
-      var self = this;
-      window.setTimeout(function() {
-        self.selectItem(window.location.hash.substring(1));
-      }, 0);
-    }
-
-    this._detailLoader.setHtml('<h1><div class="please">' + this.getSetting("title") +
-        '</div>API Documentation</h1>');
-
-  }, this);
-
-  req.addEventListener("failed", function(evt)
-  {
-    this.error("Couldn't load file: " + url);
-  }, this);
-
-  req.send();
-}
-
-
-/**
- * Updates the tree on the left.
- *
- * @param docTree {Map} the documentation tree to use for updating.
- */
-qx.Proto._updateTree = function(docTree) {
-  var inheritenceNode = new qx.ui.tree.TreeFolder("Inheritence hierarchy");
-  var packagesNode = new qx.ui.tree.TreeFolder("Packages");
-
-  this._tree.removeAll();
-  this._tree.add(inheritenceNode, packagesNode);
-
-  // Fille the packages tree (and fill the _topLevelClassNodeArr)
-  this._topLevelClassNodeArr = [];
-  this._fillPackageNode(packagesNode, docTree, 0);
-
-  // Sort the _topLevelClassNodeArr
-  this._topLevelClassNodeArr.sort(function (node1, node2) {
-    return (node1.attributes.fullName < node2.attributes.fullName) ? -1 : 1;
-  });
-
-  // Fill the inheritence tree
-  for (var i = 0; i < this._topLevelClassNodeArr.length; i++) {
-    this._createInheritanceNode(inheritenceNode, this._topLevelClassNodeArr[i], docTree);
-  }
-
-  packagesNode.open();
-
-  if (this._wantedClassName) {
-    this.showClassByName(this._wantedClassName);
-    this._wantedClassName = null;
-  }
-}
-
-
-/**
- * Fills a package tree node with tree nodes for the sub packages and classes.
- *
- * @param treeNode {qx.ui.tree.TreeFolder} the package tree node.
- * @param docNode {Map} the documentation node of the package.
- */
-qx.Proto._fillPackageNode = function(treeNode, docNode, depth) {
-  var ApiViewer = apiviewer.Viewer;
-  var TreeUtil = apiviewer.TreeUtil;
-
-  var packagesDocNode = TreeUtil.getChild(docNode, "packages");
-  if (packagesDocNode && packagesDocNode.children) {
-    for (var i = 0; i < packagesDocNode.children.length; i++) {
-      var packageDocNode = packagesDocNode.children[i];
-      var iconUrl = TreeUtil.getIconUrl(packageDocNode);
-      var packageTreeNode = new qx.ui.tree.TreeFolder(packageDocNode.attributes.name, iconUrl);
-      packageTreeNode.docNode = packageDocNode;
-      treeNode.add(packageTreeNode);
-
-      this._fillPackageNode(packageTreeNode, packageDocNode, depth+1);
-
-      // Open the package node if it has child packages
-      if (depth < this.getSetting("initialTreeDepth") && TreeUtil.getChild(packageDocNode, "packages")) {
-        packageTreeNode.open();
-      }
-
-      // Register the tree node
-      this._classTreeNodeHash[ApiViewer.PACKAGE_TREE][packageDocNode.attributes.fullName] = packageTreeNode;
-    }
-  }
-
-  var classesDocNode = TreeUtil.getChild(docNode, "classes");
-  if (classesDocNode && classesDocNode.children) {
-    for (var i = 0; i < classesDocNode.children.length; i++) {
-      var classDocNode = classesDocNode.children[i];
-      var iconUrl = TreeUtil.getIconUrl(classDocNode);
-      var classTreeNode = new qx.ui.tree.TreeFolder(classDocNode.attributes.name, iconUrl);
-      classTreeNode.docNode = classDocNode;
-      classTreeNode.treeType = ApiViewer.PACKAGE_TREE;
-      treeNode.add(classTreeNode);
-
-      // Register the tree node
-      this._classTreeNodeHash[ApiViewer.PACKAGE_TREE][classDocNode.attributes.fullName] = classTreeNode;
-
-      // Check whether this is a top-level-class
-      if (classDocNode.attributes.superClass == null) {
-        this._topLevelClassNodeArr.push(classDocNode);
-      }
-    }
-  }
-}
-
-
-/**
- * Creates the tree node for a class containing class nodes for all its child
- * classes.
- *
- * @param classDocNode {Map} the documentation node of the class.
- * @param docTree {Map} the documentation tree.
- */
-qx.Proto._createInheritanceNode = function(parentTreeNode, classDocNode, docTree) {
-  var ApiViewer = apiviewer.Viewer;
-  var TreeUtil = apiviewer.TreeUtil;
-
-  // Create the tree node
-  var iconUrl = TreeUtil.getIconUrl(classDocNode);
-  var classTreeNode = new qx.ui.tree.TreeFolder(classDocNode.attributes.fullName, iconUrl);
-  classTreeNode.docNode = classDocNode;
-  classTreeNode.treeType = ApiViewer.INHERITENCE_TREE;
-  parentTreeNode.add(classTreeNode);
-
-  // Register the tree node
-  this._classTreeNodeHash[ApiViewer.INHERITENCE_TREE][classDocNode.attributes.fullName] = classTreeNode;
-
-  // Add all child classes
-  var childClassNameCsv = classDocNode.attributes.childClasses;
-  if (childClassNameCsv) {
-    var childClassNameArr = childClassNameCsv.split(",");
-    for (var i = 0; i < childClassNameArr.length; i++) {
-      var childClassDocNode = TreeUtil.getClassDocNode(docTree, childClassNameArr[i]);
-      this._createInheritanceNode(classTreeNode, childClassDocNode, docTree);
-    }
-  }
-}
-
-
-/**
- * Event handler. Called when the tree selection has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onTreeSelectionChange = function(evt)
-{
-  var treeNode = evt.getData()[0];
-
-  if (treeNode && treeNode.docNode)
-  {
-    var newTitle = this._titlePrefix + " - class " + treeNode.docNode.attributes.fullName;
-
-    qx.client.History.getInstance().addToHistory(treeNode.docNode.attributes.fullName, newTitle);
-
-    this._currentTreeType = treeNode.treeType;
-
-    this._selectTreeNode(treeNode);
-
-    window.location.hash = "#" + treeNode.docNode.attributes.fullName;
-  }
-}
-
-
-qx.Proto._onHistoryRequest = function(evt)
-{
-  this.showClassByName(evt.getData());
-}
-
-qx.Proto._selectTreeNode = function(vTreeNode)
-{
-  if (!(vTreeNode && vTreeNode.docNode)) {
-    this.error("Invalid tree node: " + vTreeNode);
-  }
-
-  var vDoc = vTreeNode.docNode;
-
-  this._detailLoader.setVisibility(false);
-
-  if (vDoc.type == "class")
-  {
-    this._infoViewer.setVisibility(false);
-    this._classViewer.showClass(vDoc);
-    this._classViewer.setVisibility(true);
-  }
-  else
-  {
-    this._classViewer.setVisibility(false);
-    this._infoViewer.showInfo(vDoc);
-    this._infoViewer.setVisibility(true);
-  }
-}
-
-
-/**
- * Selects an item (class, property, method or constant).
- *
- * @param fullItemName {String} the full name of the item to select.
- *        (e.g. "qx.mypackage.MyClass" or "qx.mypackage.MyClass#myProperty")
- */
-qx.Proto.selectItem = function(fullItemName) {
-  var className = fullItemName;
-  var itemName = null;
-  var hashPos = fullItemName.indexOf("#");
-  if (hashPos != -1) {
-    className = fullItemName.substring(0, hashPos);
-    itemName = fullItemName.substring(hashPos + 1);
-
-    var parenPos = itemName.indexOf("(");
-    if (parenPos != -1) {
-      itemName = qx.lang.String.trim(itemName.substring(0, parenPos));
-    }
-  }
-
-  this.showClassByName(className);
-  if (itemName) {
-    this._classViewer.showItem(itemName);
-  }
-}
-
-
-/**
- * Shows a certain class.
- *
- * @param className {String} the name of the class to show.
- */
-qx.Proto.showClassByName = function(className) {
-  var treeNode = this._classTreeNodeHash[this._currentTreeType][className];
-
-  if (treeNode) {
-    treeNode.setSelected(true);
-  } else if (this.getDocTree() == null) {
-    // The doc tree has not been loaded yet
-    // -> Remeber the wanted class and show when loading is done
-    this._wantedClassName = className;
-  } else {
-    this.error("Unknown class: " + className);
-  }
-}
-
-
-qx.Class.PACKAGE_TREE = 1;
-qx.Class.INHERITENCE_TREE = 2;
-
-
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  if (this._tree)
-  {
-    this._tree.dispose();
-    this._tree = null;
-  }
-
-  if (this._detailFrame)
-  {
-    this._detailFrame.dispose();
-    this._detailFrame = null;
-  }
-
-  if (this._detailLoader)
-  {
-    this._detailLoader.dispose();
-    this._detailLoader = null;
-  }
-
-  if (this._classViewer)
-  {
-    this._classViewer.dispose();
-    this._classViewer = null;
-  }
-
-  if (this._infoViewer)
-  {
-    this._infoViewer.dispose();
-    this._infoViewer = null;
-  }
-
-  this._classTreeNodeHash = null;
-
-  return qx.ui.layout.HorizontalBoxLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/index.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/index.html
deleted file mode 100755 (executable)
index a40a79f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>API Documentation</title>
-    <script type="text/javascript" src="script/apiviewer.js"></script>
-  </head>
-  <body>
-    <script type="text/javascript">
-      if (!qx.IS_SOURCE) {
-        qx.log.Logger.ROOT_LOGGER.setMinLevel(qx.log.Logger.LEVEL_ERROR);
-      }
-      qx.core.Init.getInstance().setApplication(apiviewer.Application);
-    </script>
-  </body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/css/apiviewer.css b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/css/apiviewer.css
deleted file mode 100755 (executable)
index 834608f..0000000
+++ /dev/null
@@ -1,320 +0,0 @@
-#header {
-  margin: 0px;
-  padding: 0px;
-  background-color: #134275;
-  font-family: "Trebuchet MS", "Lucida Grande", Verdana, sans-serif;
-}
-
-#header h1 {
-  font-size: 18px;
-  font-weight: bold;
-  color: #DEFF83;
-  position: absolute;
-  top: 30px;
-  left: 20px;
-  margin: 0;
-  padding: 0;
-}
-
-#qxversion {
-  font-size: 11px;
-  text-transform: lowercase;
-  color: #F3FFD1;
-  margin-top: -14px;
-  letter-spacing: 1px;
-  word-spacing: 4px;
-  position: absolute;
-  bottom: 20px;
-  right: 20px;
-  margin: 0;
-  padding: 0;
-}
-
-#DetailFrame,
-#DetailFrame td,
-#DetailFrame th{
-  font-family: Verdana, "Lucida Grande", "Bitstream Vera Sans", Tahoma, "Lucida Sans Unicode", Arial, sans-serif;
-  font-size: 11px;
-  line-height: 150%;
-}
-
-#DetailFrame h1,
-#DetailFrame h2,
-#DetailFrame h3,
-#DetailFrame h4,
-#DetailFrame h5,
-#DetailFrame h6{
-  font-family: "Trebuchet MS", "Lucida Grande", Verdana, sans-serif;
-  color: #134275;
-}
-
-#DetailFrame *{
-  margin-top: 0;
-  margin-bottom: 0;
-  padding-top: 0;
-  padding-bottom: 0;
-}
-
-#DetailFrame #ControlFrame{
-  position: absolute;
-  top: 20px;
-  right: 20px;
-  font-size: 10px;
-  background: #FBFFEF;
-  padding: 4px 6px;
-  border: 1px solid #ECECEC;
-}
-
-#DetailFrame h1 {
-  font-size: 24px;
-  margin-bottom: 20px;
-}
-
-#DetailFrame h2 {
-  font-size: 18px;
-  margin-bottom: 4px;
-}
-
-#DetailFrame h3 {
-  font-size: 14px;
-}
-
-#DetailFrame img {
-  border: 0 none;
-  vertical-align: middle;
-}
-
-#DetailFrame a:link,
-#DetailFrame a:visited{
-  color: #134275;
-}
-
-#DetailFrame a:hover,
-#DetailFrame a:active{
-  color: #134275;
-  text-decoration: underline;
-}
-
-#DetailFrame td{
-  vertical-align: top;
-  padding: 2px;
-}
-
-
-
-
-
-#DetailLoader div.please{
-  font-size: 14px;
-  font-weight: normal;
-  margin-bottom: 4px;
-}
-
-
-
-
-
-
-#InfoViewer div.pkgtitle{
-  font-size: 14px;
-  font-weight: normal;
-  margin-bottom: 4px;
-}
-
-
-
-
-
-
-
-
-#ClassViewer div.classDescription{
-  font-size: 12px;
-
-  background: #F3FFD1;
-  border: 1px solid #F3FFD1;
-
-  -moz-border-radius: 5px;
-  padding: 12px;
-  padding-top: 4px;
-  padding-bottom: 4px;
-
-  width: 650px;
-       overflow: auto;
-}
-
-#ClassViewer div.classDescription p{
-  margin-top: 5px;
-  margin-bottom: 5px;
-}
-
-#ClassViewer div.packageName{
-  font-size: 14px;
-  font-weight: normal;
-  margin-bottom: 4px;
-}
-
-#ClassViewer span.typeInfo{
-  color: #83B300;
-  font-weight: normal;
-}
-
-
-
-
-
-
-#ClassViewer div.infoPanel {
-  margin-top: 30px;
-}
-
-#ClassViewer div.infoPanel h2{
-  cursor: default;
-}
-
-
-
-
-
-
-
-
-#ClassViewer table.info {
-  table-layout: fixed;
-}
-
-#ClassViewer table.info tr {
-  background: #FBFFEF;
-}
-
-#ClassViewer table.info tr.marked {
-  background: #DEFF83;
-}
-
-#ClassViewer table.info tr td,
-#ClassViewer div.empty-info-body {
-  border-top: 1px solid #ECECEC;
-}
-
-#ClassViewer table.info tr td{
-  overflow: hidden;
-}
-
-#ClassViewer table.info tr td td{
-  border-top: 0 none;
-  padding: 0;
-}
-
-#ClassViewer table.info td.icon{
-  text-align: center;
-  width: 20px;
-}
-
-#ClassViewer table.info td.type{
-  width: 100px;
-  font-size: 12px;
-  color: #83B300;
-  font-weight: bold;
-}
-
-#ClassViewer table.info td.toggle{
-  text-align: center;
-  width: 16px;
-  padding: 1px;
-}
-
-#ClassViewer table.info td.toggle img{
-  cursor: default;
-}
-
-#ClassViewer table.info td.text{
-  padding-right: 10px;
-}
-
-#ClassViewer table.info td.text h3{
-  cursor: default;
-}
-
-#ClassViewer table.info td.text table{
-       padding: 0;
-}
-
-#ClassViewer table.info td.text table td {
-       padding: 1px 3px;
-}
-
-#ClassViewer table.info td.text table th {
-       text-align: left;
-       color: #134275;
-       font-weight: normal;
-       padding: 1px 3px;
-}
-
-#ClassViewer span.methodSignature{
-  font-size: 12px;
-  color: #83B300;
-}
-
-#ClassViewer table.info td.type a,
-#ClassViewer span.methodSignature a{
-  color: #83B300 !important;
-}
-
-#ClassViewer span.methodSignature span.parameterType{
-  font-style: italic;
-}
-
-#ClassViewer span.methodSignature span.separator{
-  color: #134275;
-  font-weight: bold;
-}
-
-#ClassViewer span.methodSignature span.parenthesis{
-  color: #134275;
-  font-weight: bold;
-}
-
-
-
-
-
-#ClassViewer div.item-detail-headline {
-  font-weight: bold;
-  color: #1D65B3;
-}
-
-#ClassViewer div.item-detail-text {
-  padding-left: 12px;
-}
-
-#ClassViewer div.item-detail-text p{
-  display: inline;
-}
-
-#ClassViewer div.item-detail-error {
-  font-weight: bold;
-  color: #D61F1C;
-}
-
-#ClassViewer span.item-detail-optional {
-  font-style: italic;
-}
-
-#ClassViewer code,
-#ClassViewer pre,
-#ClassViewer span.item-detail-param-name {
-  font-family: Consolas, "Bitstream Vera Sans Mono", "Courier New", monospace;
-  background: #FFF;
-  padding: 1px;
-}
-
-#ClassViewer pre{
-  overflow: auto;
-  padding: 4px 8px;
-  margin-top: 8px;
-  margin-bottom: 8px;
-}
-
-#ClassViewer span.caps{
-  color: #134275;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/class18.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/class18.gif
deleted file mode 100755 (executable)
index df8c929..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/class18.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/class_abstract18.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/class_abstract18.gif
deleted file mode 100755 (executable)
index 788abd7..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/class_abstract18.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/class_abstract_warning18.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/class_abstract_warning18.gif
deleted file mode 100755 (executable)
index 135f68c..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/class_abstract_warning18.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/class_static18.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/class_static18.gif
deleted file mode 100755 (executable)
index 5eb75ae..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/class_static18.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/class_static_warning18.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/class_static_warning18.gif
deleted file mode 100755 (executable)
index 75a6c72..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/class_static_warning18.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/class_warning18.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/class_warning18.gif
deleted file mode 100755 (executable)
index 95e7a32..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/class_warning18.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/close.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/close.gif
deleted file mode 100755 (executable)
index 3377fb6..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/close.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/colorstrip.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/colorstrip.gif
deleted file mode 100644 (file)
index e19d1b4..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/colorstrip.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/constant18.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/constant18.gif
deleted file mode 100755 (executable)
index c3a5d0c..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/constant18.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/constructor18.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/constructor18.gif
deleted file mode 100644 (file)
index b3645ac..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/constructor18.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/event18.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/event18.gif
deleted file mode 100644 (file)
index d3555ff..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/event18.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/method_protected18.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/method_protected18.gif
deleted file mode 100755 (executable)
index be71bae..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/method_protected18.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/method_public18.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/method_public18.gif
deleted file mode 100755 (executable)
index 67b1785..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/method_public18.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/nextlevel.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/nextlevel.gif
deleted file mode 100755 (executable)
index 48b81c8..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/nextlevel.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/open.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/open.gif
deleted file mode 100755 (executable)
index 30f815a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/open.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_abstract18.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_abstract18.gif
deleted file mode 100755 (executable)
index 16122bf..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_abstract18.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_constructor18.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_constructor18.gif
deleted file mode 100755 (executable)
index d408fe8..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_constructor18.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_error18.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_error18.gif
deleted file mode 100755 (executable)
index ffde061..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_error18.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_inherited18.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_inherited18.gif
deleted file mode 100755 (executable)
index 81e4906..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_inherited18.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_overridden18.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_overridden18.gif
deleted file mode 100755 (executable)
index bca3e80..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_overridden18.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_static18.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_static18.gif
deleted file mode 100755 (executable)
index 4b1afa1..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_static18.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_warning18.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_warning18.gif
deleted file mode 100755 (executable)
index ce74a2a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/overlay_warning18.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/package18.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/package18.gif
deleted file mode 100755 (executable)
index 9071101..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/package18.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/package_warning18.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/package_warning18.gif
deleted file mode 100755 (executable)
index 2cb875b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/package_warning18.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/property18.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/property18.gif
deleted file mode 100755 (executable)
index ab4153d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/resource/image/property18.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/translation/C.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/translation/C.po
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/translation/de.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/translation/de.po
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/translation/en.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/translation/en.po
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/translation/es.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/translation/es.po
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/translation/fr.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/apiviewer/source/translation/fr.po
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/Makefile b/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/Makefile
deleted file mode 100644 (file)
index 25785ce..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Andreas Ecker (ecker)
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-################################################################################
-# BASIC SETTINGS
-################################################################################
-
-#
-# Location of your qooxdoo distribution
-# Could be relative from this location or absolute
-#
-QOOXDOO_PATH = ../../..
-
-#
-# The same as above, but from the webserver point of view
-# Starting point is the application HTML file of the source folder.
-# In most cases just add a "/.." compared to above
-#
-QOOXDOO_URI = ../../../..
-
-#
-# Namespace of your application e.g. custom
-#
-APPLICATION_NAMESPACE = feedreader
-
-#
-# Titles used in your API viewer and during the build process
-#
-APPLICATION_MAKE_TITLE = FEEDREADER
-APPLICATION_API_TITLE = FeedReader
-
-#
-# Additional files (space separated list)
-#
-APPLICATION_FILES = index.html
-
-#
-# Locales to include
-#
-#APPLICATION_LOCALES = en de tr it es sv ru fr
-APPLICATION_LOCALES = de es en
-
-
-
-
-
-################################################################################
-# ADVANCED SETTINGS
-################################################################################
-
-#
-# Enable resource filtering in API viewer
-#
-APPLICATION_RESOURCE_FILTER = true
-
-#
-# We don't need the full source code
-#
-APPLICATION_COMPLETE_SOURCE = false
-
-#
-# Disable line breaks
-#
-APPLICATION_LINEBREAKS_BUILD = false
-APPLICATION_LINEBREAKS_SOURCE = true
-
-#
-# qooxdoo.org sync
-#
-APPLICATION_PUBLISH_PATH = root@qooxdoo.org:/var/www/qooxdoo/demo/$(FRAMEWORK_VERSION)/$(APPLICATION_NAMESPACE)
-
-
-
-
-
-################################################################################
-# INCLUDE CORE
-################################################################################
-
-ifneq ($(QOOXDOO_PATH),PLEASE_DEFINE_QOOXDOO_PATH)
-       include $(QOOXDOO_PATH)/frontend/framework/tool/make/targets.mk
-       include $(QOOXDOO_PATH)/frontend/framework/tool/make/application.mk
-endif
-
-error:
-       @echo "  * Please configure QOOXDOO_PATH"
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/class/feedreader/Application.js b/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/class/feedreader/Application.js
deleted file mode 100755 (executable)
index aa76800..0000000
+++ /dev/null
@@ -1,410 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#resource(feeds:feeds)
-#resource(css:css)
-#resource(proxy:proxy)
-#resource(images:images)
-#embed(feedreader.proxy/*)
-#embed(feedreader.feeds/*)
-#embed(feedreader.css/*)
-#embed(feedreader.images/*)
-#embed(qx.icontheme/16/actions/dialog-ok.png)
-#embed(qx.icontheme/16/actions/dialog-cancel.png)
-#embed(qx.icontheme/16/actions/help-about.png)
-#embed(qx.icontheme/16/actions/view-refresh.png)
-
-************************************************************************ */
-
-/**
- * qooxdoo news reader Application class.
- */
-qx.OO.defineClass("feedreader.Application", qx.component.AbstractApplication,
-function () {
-  qx.component.AbstractApplication.call(this);
-
-  qx.manager.object.ImageManager.getInstance().setIconTheme(qx.theme.icon.VistaInspirate.getInstance());
-  //this.fetchFeedDesc();
-  this.setFeeds([]);
-});
-
-qx.OO.addProperty({name: "feeds"});
-qx.OO.addProperty({name: "selectedFeed"});
-
-qx.Settings.setDefault("resourceUri", "./resource");
-
-
-
-/*
----------------------------------------------------------------------------
-  METHODS
----------------------------------------------------------------------------
-*/
-
-if (qx.core.Client.getInstance().getRunsLocally())
-{
-  qx.Class._feedDesc = [
-    {
-      url: "feedreader/feeds/qooxdoo-news.xml",
-      name: "qooxdoo-blog"
-    },
-    {
-      url: "feedreader/feeds/qooxdoo-blog.xml",
-      name: "qooxdoo-news"
-    },
-    {
-      url: "feedreader/feeds/ajaxian.xml",
-      name: "ajaxian"
-    },
-    {
-      url: "feedreader/feeds/safari.xml",
-      name: "Surfin' Safari"
-    }
-  ];
-}
-else
-{
-  qx.Class._feedDesc = [
-    {
-      url: "feedreader/proxy/proxy.php?proxy=" + encodeURIComponent("http://feeds.feedburner.com/qooxdoo/blog/content"),
-      name: "qooxdoo-blog"
-    },
-    {
-      url: "feedreader/proxy/proxy.php?proxy=" + encodeURIComponent("http://feeds.feedburner.com/qooxdoo/news/content"),
-      name: "qooxdoo-news"
-    },
-    {
-      url: "feedreader/proxy/proxy.php?proxy=" + encodeURIComponent("http://feeds.feedburner.com/ajaxian"),
-      name: "ajaxian"
-    },
-    {
-      url: "feedreader/proxy/proxy.php?proxy=" + encodeURIComponent("http://webkit.org/blog/?feed=rss2"),
-      name: "Surfin' Safari"
-    }
-  ];
-}
-
-qx.Proto.initialize = function(e)
-{
-  // Define alias for custom resource path
-  qx.manager.object.AliasManager.getInstance().add("feedreader", qx.Settings.getValueOfClass("feedreader.Application", "resourceUri"));
-
-  // Include CSS file
-  qx.html.StyleSheet.includeFile(qx.manager.object.AliasManager.getInstance().resolvePath("feedreader/css/reader.css"));
-};
-
-qx.Proto.main = function(e)
-{
-  // create main layout
-  var dockLayout = new qx.ui.layout.DockLayout();
-  dockLayout.set({
-    height: "100%",
-    width: "100%"
-  });
-
-  // create header
-  var header = new qx.ui.embed.HtmlEmbed("<h1><span>qooxdoo</span> reader</h1>");
-  header.setCssClassName("header");
-  header.setHeight(50);
-  dockLayout.addTop(header);
-
-  // define commands
-  var reload_cmd = new qx.client.Command("Control+R");
-  reload_cmd.addEventListener("execute", function(e) {
-    this.fetchFeeds();
-    this.debug(this.tr("reloading ...").toString());
-  }, this);
-
-  var about_cmd = new qx.client.Command("F1");
-  about_cmd.addEventListener("execute", function(e) {
-    alert(this.tr("qooxdoo feed reader."));
-  }, this);
-
-  // create toolbar
-  var toolBar = new qx.ui.toolbar.ToolBar();
-  toolBar.add(new qx.ui.toolbar.Button(this.trn("Add feed", "Add feeds", 2), "icon/16/actions/dialog-ok.png"));
-  toolBar.add(new qx.ui.toolbar.Button(this.tr("Remove feed"), "icon/16/actions/dialog-cancel.png"));
-  toolBar.add(new qx.ui.toolbar.Separator());
-
-  var reload_btn = new qx.ui.toolbar.Button(this.tr("Reload"), "icon/16/actions/view-refresh.png");
-  reload_btn.setCommand(reload_cmd);
-  reload_btn.setToolTip(new qx.ui.popup.ToolTip(this.tr("(%1) Reload the feeds.", reload_cmd.toString())));
-  toolBar.add(reload_btn);
-
-  toolBar.add(new qx.ui.basic.HorizontalSpacer());
-
-  // poulate languages menu and add it to the toolbar
-  var locales = {
-    en: this.tr("English"),
-    de: this.tr("German"),
-    en: this.tr("English"),
-    tr: this.tr("Turkish"),
-    it: this.tr("Italian"),
-    es: this.tr("Spanish"),
-    sv: this.tr("Swedish"),
-    ru: this.tr("Russian")
-  }
-  var availableLocales = qx.locale.Manager.getInstance().getAvailableLocales();
-  var locale = qx.locale.Manager.getInstance().getLocale();
-  var lang_menu = new qx.ui.menu.Menu();
-  var radioManager = new qx.manager.selection.RadioManager("lang");
-  for (var lang in locales) {
-    if (availableLocales.indexOf(lang) == -1) {
-      continue;
-    }
-    var menuButton = new qx.ui.menu.RadioButton(locales[lang], null, locale == lang);
-    menuButton.setUserData("locale", lang);
-    lang_menu.add(menuButton);
-    radioManager.add(menuButton);
-  }
-  radioManager.addEventListener("changeSelected", function(e) {
-    var lang = e.getData().getUserData("locale");
-    this.debug("lang:" + lang);
-  qx.locale.Manager.getInstance().setLocale(lang);
-  });
-  lang_menu.addToDocument();
-  toolBar.add(new qx.ui.toolbar.MenuButton("", lang_menu, "feedreader/images/locale.png"));
-
-  var about_btn = new qx.ui.toolbar.Button(this.tr("Help"), "icon/16/actions/help-about.png");
-  about_btn.setCommand(about_cmd);
-  about_btn.setToolTip(new qx.ui.popup.ToolTip("(" + about_cmd.toString() + ")"));
-  toolBar.add(about_btn);
-
-  dockLayout.addTop(toolBar);
-
-  // add tree
-  var tree = new qx.ui.tree.Tree(this.tr("News feeds"));
-  tree.set({height:"100%", width:"100%"});
-  tree.setOverflow("auto");
-  tree.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-  tree.setBackgroundColor("#EEEEEE");
-
-  var feedDesc = feedreader.Application._feedDesc;
-  for (var i=0; i<feedDesc.length; i++) {
-    var folder = new qx.ui.tree.TreeFolder(feedDesc[i].name);
-    tree.getManager().addEventListener("changeSelection", function(e) {
-      if (e.getData()[0] .getParentFolder()) {
-        this.displayFeed(e.getData()[0].getLabel());
-      }
-    }, this);
-    tree.add(folder);
-  }
-
-  // create table model
-  this._tableModel = new qx.ui.table.SimpleTableModel();
-  this._tableModel.setColumnIds(["title", "author", "date"]);
-  this._tableModel.setColumnNamesById({
-    title: this.tr("Subject"),
-    author: this.tr("Sender"),
-    date: this.tr("Date")
-  });
-
-  // add table
-  var table = new qx.ui.table.Table(this._tableModel);
-  table.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-  table.set({height:"100%", width:"100%"});
-  table.setStatusBarVisible(false);
-  table.getDataRowRenderer().setHighlightFocusRow(false);
-  table.getTableColumnModel().setColumnWidth(0, 350);
-  table.getTableColumnModel().setColumnWidth(1, 200);
-  table.getTableColumnModel().setColumnWidth(2, 200);
-  table.getSelectionModel().addEventListener("changeSelection", function(e) {
-    var selectedEntry = table.getSelectionModel().getAnchorSelectionIndex();
-    var item = this.getFeeds()[this.getSelectedFeed()].items[selectedEntry];
-    this.displayArticle(item);
-  }, this);
-
-  // hide row focus
-  var theme = qx.manager.object.AppearanceManager.getInstance().getAppearanceTheme();
-  theme.registerAppearance("table-focus-indicator", {
-    state : function(vTheme, vStates) {
-      return {
-        border: null
-      }
-    }
-  });
-  this._table = table;
-
-  // add blog entry
-  this._blogEntry = new feedreader.ArticleView();
-  this._blogEntry.set({height:"100%", width:"100%"});
-  this._blogEntry.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-
-  // create splitpane for the right hand content area
-  var contentSplitPane = new qx.ui.splitpane.VerticalSplitPane("1*", "2*");
-  contentSplitPane.set({height:"100%", width:"100%"});
-  contentSplitPane.setLiveResize(true);
-  contentSplitPane.addTop(table);
-  contentSplitPane.addBottom(this._blogEntry);
-
-  // create vertival splitter
-  var mainSplitPane = new qx.ui.splitpane.HorizontalSplitPane(200, "1*");
-  mainSplitPane.setLiveResize(true);
-  mainSplitPane.addLeft(tree);
-  mainSplitPane.addRight(contentSplitPane);
-
-  dockLayout.add(mainSplitPane);
-
-  dockLayout.addToDocument();
-
-  // load and display feed data
-  this.setSelectedFeed(feedDesc[0].name);
-  this.fetchFeeds();
-};
-
-
-qx.Proto.fetchFeedDesc = function() {
-  var req = new qx.io.remote.Request(qx.manager.object.AliasManager.getInstance().resolvePath("feedreader/feeds/febo-feeds.opml.xml"), "GET", qx.util.Mime.XML);
-  feedreader.Application._feedDesc = [];
-    req.addEventListener("completed", function(e) {
-    var xml = e.getData().getContent();
-    var eItems = xml.getElementsByTagName("outline");
-    for(var i=0; i<eItems.length; i++) {
-      var eDesc = eItems[i];
-      feedreader.Application._feedDesc.push({
-        name: eDesc.getAttribute("title"),
-        url: qx.manager.object.AliasManager.getInstance().resolvePath("feedreader/proxy/proxy.php") + "?proxy=" + encodeURIComponent(eDesc.getAttribute("xmlUrl"))
-      });
-    }
-  }, this);
-  req.setAsynchronous(false);
-    req.send();
-};
-
-
-qx.Proto.fetchFeeds = function() {
-  qx.io.remote.RequestQueue.getInstance().setMaxConcurrentRequests(2);
-  var feedDesc = feedreader.Application._feedDesc;
-  var that = this;
-  var getCallback = function(feedName) {
-    return function(e) {
-      that.debug("loading " + feedName + " complete!");
-      that.parseXmlFeed(feedName, e.getData().getContent());
-    }
-  }
-  for (var i=0; i<feedDesc.length; i++) {
-    var req = new qx.io.remote.Request(qx.manager.object.AliasManager.getInstance().resolvePath(feedDesc[i].url), "GET", qx.util.Mime.XML);
-    req.addEventListener("completed", getCallback(feedDesc[i].name));
-    req.send();
-  }
-};
-
-
-qx.Proto.parseXmlFeed = function(feedName, xml) {
-  var items = [];
-  if (xml.documentElement.tagName == "rss") {
-    items = this.parseRSSFeed(xml);
-  } else if  (xml.documentElement.tagName == "feed") {
-  items = this.parseAtomFeed(xml);
-  }
-  this.getFeeds()[feedName] = {
-    selected: 0,
-    items: items
-  };
-  if (feedName == this.getSelectedFeed()) {
-    this.displayFeed(feedName);
-  }
-};
-
-
-qx.Proto.parseAtomFeed = function(xml) {
-  var eItems = xml.getElementsByTagName("entry");
-  var empty = xml.createElement("empty");
-  var items = [];
-  for (var i=0; i<eItems.length; i++) {
-    var eItem = eItems[i];
-    var item = {}
-    item.title = qx.dom.Element.getTextContent(eItem.getElementsByTagName("title")[0]);
-    if (eItem.getElementsByTagName("author").length > 0) {
-      item.author = qx.dom.Element.getTextContent(eItem.getElementsByTagName("author")[0].getElementsByTagName("name")[0]);
-    } else {
-    item.author = ""
-    }
-    item.date = qx.dom.Element.getTextContent(
-    eItem.getElementsByTagName("created")[0] ||
-    eItem.getElementsByTagName("published")[0] ||
-    eItem.getElementsByTagName("updated")[0] ||
-    empty
-  );
-    item.content = qx.dom.Element.getTextContent(eItem.getElementsByTagName("content")[0] || empty);
-    item.link = eItem.getElementsByTagName("link")[0].getAttribute("href");
-    items.push(item);
-  }
-  return items;
-}
-
-
-qx.Proto.parseRSSFeed = function(xml) {
-  var eItems = xml.getElementsByTagName("item");
-  var empty = xml.createElement("empty");
-  var items = [];
-  for (var i=0; i<eItems.length; i++) {
-    var eItem = eItems[i];
-    var item = {}
-    item.title = qx.dom.Element.getTextContent(eItem.getElementsByTagName("title")[0]);
-    item.author = qx.dom.Element.getTextContent(qx.xml.Element.getElementsByTagNameNS(eItem, qx.xml.Namespace.DC, "creator")[0] || empty);
-    item.date = qx.dom.Element.getTextContent(eItem.getElementsByTagName("pubDate")[0]);
-    item.content = qx.dom.Element.getTextContent(qx.xml.Element.getElementsByTagNameNS(eItem, qx.xml.Namespace.RSS1, "encoded")[0] || empty);
-    item.link = qx.dom.Element.getTextContent(eItem.getElementsByTagName("link")[0]);
-    items.push(item);
-  }
-  return items;
-};
-
-
-qx.Proto.displayFeed = function(feedName) {
-  if (this.getSelectedFeed() != feedName) {
-    this.getFeeds()[this.getSelectedFeed()].selected = this._table.getSelectionModel().getAnchorSelectionIndex();
-  }
-
-  this.setSelectedFeed(feedName);
-
-  if (this.getFeeds()[feedName]) {
-    var items = this.getFeeds()[feedName].items;
-    var selection = this.getFeeds()[feedName].selected;
-
-    this._tableModel.setDataAsMapArray(items);
-    this._table.getSelectionModel().setSelectionInterval(selection, selection);
-    this._table.setFocusedCell(0, selection, true);
-    this.displayArticle(items[selection]);
-  }
-};
-
-
-qx.Proto.displayArticle = function(item) {
-  this._blogEntry.setArticle(item);
-};
-
-
-qx.Proto.finalize = function(e)
-{
-};
-
-qx.Proto.close = function(e)
-{
-  // prompt user
-  // e.returnValue = "[qooxdoo application: Do you really want to close the application?]";
-};
-
-qx.Proto.terminate = function(e)
-{
-  // alert("terminated");
-};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/class/feedreader/ArticleView.js b/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/class/feedreader/ArticleView.js
deleted file mode 100644 (file)
index 0e7e650..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-************************************************************************ */
-
-qx.OO.defineClass("feedreader.ArticleView", qx.ui.basic.Terminator,
-function(article) {
-  qx.ui.basic.Terminator.call(this);
-  this.setCssClassName("blogEntry");
-  this.setArticle(article);
-});
-
-qx.OO.addProperty({ name: "article"});
-
-
-qx.Proto._modifyArticle = function(propValue, propOldValue, propData) {
-  if (this._isCreated) {
-    this._applyElementData();
-  }
-
-  return true;
-};
-
-
-qx.Proto._applyElementData = function() {
-  var element = this.getElement();
-  element.innerHTML = this.getHtml();
-
-  var links = element.getElementsByTagName("a");
-  for (var i=0; i<links.length; i++) {
-    links[i].target = "_blank";
-  };
-};
-
-
-qx.Proto.getHtml = function() {
-  var item = this.getArticle();
-  if (!item) {
-    return "";
-  }
-
-  var html = new qx.util.StringBuilder();
-
-  html.add("<div id='_blogEntry'>");
-
-  html.add("<h1 class='blog'>");
-  html.add(item.title);
-  html.add("</h1>");
-
-  html.add("<div class='date'>");
-  html.add(item.date);
-  html.add("</div>");
-
-  html.add("<div class='description'>");
-  html.add(item.content);
-  html.add("</div>");
-
-  html.add("<a target='_blank' href='");
-  html.add(item.link);
-  html.add("'>");
-  html.add(this.tr("read more ..."));
-  html.add("</a>");
-
-  html.add("</div>");
-
-  return html;
-}
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/index.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/index.html
deleted file mode 100755 (executable)
index 4f5bf3d..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>qooxdoo &raquo; Demo &raquo; Feed Reader</title>
-    <script type="text/javascript" src="script/feedreader.js"></script>
-  </head>
-  <body>
-    <script type="text/javascript">
-      if (!qx.IS_SOURCE) {
-        qx.log.Logger.ROOT_LOGGER.setMinLevel(qx.log.Logger.LEVEL_ERROR);
-      }
-      qx.core.Init.getInstance().setApplication(feedreader.Application);
-    </script>
-  </body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/css/reader.css b/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/css/reader.css
deleted file mode 100644 (file)
index e59f36b..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-.header {
-       margin: 0px;
-       padding: 0px;
-       background-color: #134275;
-}
-
-.header h1 {
-  font-family: "Trebuchet MS", "Lucida Grande", Verdana, sans-serif;
-       font-size: 18px;
-       font-weight: bold;
-       color: #DEFF83;
-       padding: 12px 20px;
-       margin: 0px;
-}
-
-.blogEntry {
-  font-family: Verdana, "Lucida Grande", "Bitstream Vera Sans", Tahoma, "Lucida Sans Unicode", Arial, sans-serif;
-  font-size: 11px;
-  line-height: 150%;
-  padding: 5px;
-  background: #FBFFEF;
-}
-
-.blogEntry h1.blog {
-  font-family: "Trebuchet MS", "Lucida Grande", Verdana, sans-serif;
-  color: #134275;
-  line-height: 120%;
-}
-
-.blogEntry {
-       overflow: auto;
-}
-
-.blogEntry div.date {
-  font-weight: bold;
-  color: #1D65B3;
-  padding: 5px;
-}
-
-.blogEntry a:link,
-.blogEntry a:visited{
-  color: #134275;
-}
-
-.blogEntry a:hover,
-.blogEntry a:active{
-  color: #134275;
-  text-decoration: underline;
-}
-
-.blogEntry .description {
-       margin-top: 10px;
-       margin-bottom: 10px;
-}
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/feeds/ajaxian.xml b/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/feeds/ajaxian.xml
deleted file mode 100644 (file)
index 68a2581..0000000
+++ /dev/null
@@ -1,789 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><!-- generator="wordpress/1.5.2" --><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">\r
-\r
-<channel>\r
-       <title>Ajaxian</title>\r
-       <link>http://ajaxian.com</link>\r
-       <description>Cleaning up the web with Ajax</description>\r
-       <pubDate>Tue, 28 Nov 2006 14:55:53 +0000</pubDate>\r
-       <generator>http://wordpress.org/?v=1.5.2</generator>\r
-       <language>en</language>\r
-\r
-               <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://ajaxian.com/index.xml" type="application/rss+xml" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><item>\r
-               <title>Tasks added to Google Calendar by Milkers</title>\r
-               <link>http://ajaxian.com/archives/tasks-added-to-google-calendar-by-milkers</link>\r
-               <comments>http://ajaxian.com/archives/tasks-added-to-google-calendar-by-milkers#comments</comments>\r
-               <pubDate>Tue, 28 Nov 2006 14:55:53 +0000</pubDate>\r
-               <dc:creator>Dion Almaer</dc:creator>\r
-               \r
-       <category>Front Page</category>\r
-       <category>Showcase</category>\r
-       <category>Calendar</category>\r
-               <guid>http://ajaxian.com/archives/tasks-added-to-google-calendar-by-milkers</guid>\r
-               <description><![CDATA[  The Remember the Milk folks have added task management to Google Calendar (something many wish Google had added themselves).
-       We know that many of you are managing your tasks with Remember The Milk and your events with Google Calendar, and we thought it would be very cool if we could bring the two together. This new [...]]]></description>\r
-                       <content:encoded><![CDATA[      <p>The Remember the Milk folks have added <a href="http://blog.rememberthemilk.com/2006/11/add-your-tasks-to-google-calendar.html">task management</a> to Google Calendar (something many wish Google had added themselves).</p>
-       <p>We know that many of you are managing your tasks with Remember The Milk and your events with Google Calendar, and we thought it would be very cool if we could bring the two together. This new feature adds a small task icon to the top of each day in Google Calendar &#8212; click on the icon to:</p>
-       <ul>
-       <li>Review your tasks for the day</li>
-       <li>Add new tasks and edit existing ones</li>
-       <li>Easily complete and postpone tasks</li>
-       <li>Review your overdue tasks</li>
-       <li>Optionally show tasks with no due date</li>
-       <li>See where your tasks are located on a map (Google Maps integration)</li>
-       </ul>
-       <p>This is really interesting. An outside group was able to add an important feature that we can not all use in a Google app itself.</p>
-       <p><a href="http://blog.rememberthemilk.com/2006/11/add-your-tasks-to-google-calendar.html"><img src="http://tech.cybernetnews.com/wp-content/uploads/2006/11/RememberMilkGC1.jpg" border="0" /></a>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=fbhz2iq1"><img src="http://feeds.feedburner.com/~f/ajaxian?i=fbhz2iq1" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=yMSQUquM"><img src="http://feeds.feedburner.com/~f/ajaxian?i=yMSQUquM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=eoFosWuU"><img src="http://feeds.feedburner.com/~f/ajaxian?i=eoFosWuU" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=pYIIcHPu"><img src="http://feeds.feedburner.com/~f/ajaxian?i=pYIIcHPu" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRSS>http://ajaxian.com/archives/tasks-added-to-google-calendar-by-milkers/feed/</wfw:commentRSS>\r
-       </item>\r
-               <item>\r
-               <title>YUI Resizable Component</title>\r
-               <link>http://ajaxian.com/archives/yui-resizable-component</link>\r
-               <comments>http://ajaxian.com/archives/yui-resizable-component#comments</comments>\r
-               <pubDate>Tue, 28 Nov 2006 13:38:06 +0000</pubDate>\r
-               <dc:creator>Dion Almaer</dc:creator>\r
-               \r
-       <category>Front Page</category>\r
-       <category>Examples</category>\r
-       <category>Yahoo!</category>\r
-               <guid>http://ajaxian.com/archives/yui-resizable-component</guid>\r
-               <description><![CDATA[  Jack Slocum keeps 'em coming with his detailed post on a reusable component for resizing elements.
-       Jack's YAHOO.ext.Resizable component does what it says on the tin, and he shows you:
-       
-       Basic Resizable div
-       Wrapped elements (e.g. text area inside)
-       Preserve Ration (e.g. image resizing)
-       Transparent Handles
-       Customizable Handles
-       Snapping to increments
-       Animated Transitions
-       
-       
-
-       
-var animated = new YAHOO.ext.Resizable&#40;'animated', &#123;
-&#160; &#160; width: 200,
-&#160; &#160; height: [...]]]></description>\r
-                       <content:encoded><![CDATA[      <p>Jack Slocum keeps 'em coming with his detailed post on <a href="http://www.jackslocum.com/blog/2006/11/24/resizable-reloaded/">a reusable component for resizing elements</a>.</p>
-       <p>Jack's YAHOO.ext.Resizable component does what it says on the tin, and he shows you:</p>
-       <ul>
-       <li>Basic Resizable div</li>
-       <li>Wrapped elements (e.g. text area inside)</li>
-       <li>Preserve Ration (e.g. image resizing)</li>
-       <li>Transparent Handles</li>
-       <li>Customizable Handles</li>
-       <li>Snapping to increments</li>
-       <li>Animated Transitions</li>
-       </ul>
-       <div class="syntax_hilite">
-<div id="javascript-2">
-       <div class="javascript">
-<span style="color: #003366; font-weight: bold;">var</span> animated = <span style="color: #003366; font-weight: bold;">new</span> YAHOO.<span style="color: #006600;">ext</span>.<span style="color: #006600;">Resizable</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'animated'</span>, <span style="color:#006600; font-weight:bold;">&#123;</span><br />
-&nbsp; &nbsp; width: <span style="color:#800000;">200</span>,<br />
-&nbsp; &nbsp; height: <span style="color:#800000;">100</span>,<br />
-&nbsp; &nbsp; minWidth:<span style="color:#800000;">100</span>,<br />
-&nbsp; &nbsp; minHeight:<span style="color:#800000;">50</span>,<br />
-&nbsp; &nbsp; animate:<span style="color: #003366; font-weight: bold;">true</span>,<br />
-&nbsp; &nbsp; easing: YAHOO.<span style="color: #006600;">util</span>.<span style="color: #006600;">Easing</span>.<span style="color: #006600;">backIn</span>,<br />
-&nbsp; &nbsp; duration:.<span style="color:#800000;">6</span><br />
-<span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
-&nbsp;</div>
-       </div>
-</div>
-       <p><a href="http://www.jackslocum.com/blog/2006/11/24/resizable-reloaded/"><img src="http://ajaxian.com/wp-content/images/yuiresizable.png" alt="YUI Resizable" border="0" width="208" height="108"/></a>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=JsRk5j9d"><img src="http://feeds.feedburner.com/~f/ajaxian?i=JsRk5j9d" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=8EjVkg8A"><img src="http://feeds.feedburner.com/~f/ajaxian?i=8EjVkg8A" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=h5DmJGoc"><img src="http://feeds.feedburner.com/~f/ajaxian?i=h5DmJGoc" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=dGR1OTXo"><img src="http://feeds.feedburner.com/~f/ajaxian?i=dGR1OTXo" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRSS>http://ajaxian.com/archives/yui-resizable-component/feed/</wfw:commentRSS>\r
-       </item>\r
-               <item>\r
-               <title>Mootools Primer</title>\r
-               <link>http://ajaxian.com/archives/mootools-primer</link>\r
-               <comments>http://ajaxian.com/archives/mootools-primer#comments</comments>\r
-               <pubDate>Mon, 27 Nov 2006 15:58:12 +0000</pubDate>\r
-               <dc:creator>Dion Almaer</dc:creator>\r
-               \r
-       <category>Front Page</category>\r
-       <category>Examples</category>\r
-               <guid>http://ajaxian.com/archives/mootools-primer</guid>\r
-               <description><![CDATA[  Aaron Newton has posted a Mootools Primer / Tutorial that includes "a how-to tutorial on the Mootools library. Most of the code examples will allow you execute them by clicking on the "execute this code" link above the example. Clicking this will echo out the code and the result in the Firebug debugging plugin for [...]]]></description>\r
-                       <content:encoded><![CDATA[      <p>Aaron Newton has posted a <a href="http://clientside.cnet.com/examples/mootools-primer/">Mootools Primer / Tutorial</a> that includes "a how-to tutorial on the Mootools library. Most of the code examples will allow you execute them by clicking on the "execute this code" link above the example. Clicking this will echo out the code and the result in the Firebug debugging plugin for Firefox. You'll need that plugin installed to see any results of most of the code examples."</p>
-       <p>Currently the tabbed widget shows documentation for the core Moo.js, extensions of JavaScript objects and helpers, Addon libraries, and plugins.</p>
-       <p>It behaves a little weird for me with FF2 + Firebug 1.beta, but I can get to the meat of the matter.</p>
-       <p><a href="http://clientside.cnet.com/examples/mootools-primer/"><img src="http://ajaxian.com/wp-content/images/mootoolsprimer.png" alt="Mootools Primer" border="0" width="590" height="324"/></a>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=vfTLBHWH"><img src="http://feeds.feedburner.com/~f/ajaxian?i=vfTLBHWH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=RmZz7WHX"><img src="http://feeds.feedburner.com/~f/ajaxian?i=RmZz7WHX" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=nEOsta0N"><img src="http://feeds.feedburner.com/~f/ajaxian?i=nEOsta0N" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=zmZsFXoa"><img src="http://feeds.feedburner.com/~f/ajaxian?i=zmZsFXoa" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRSS>http://ajaxian.com/archives/mootools-primer/feed/</wfw:commentRSS>\r
-       </item>\r
-               <item>\r
-               <title>Google Docs and Spreadsheets Team: Web native matters</title>\r
-               <link>http://ajaxian.com/archives/google-docs-and-spreadsheets-team-web-native-matters</link>\r
-               <comments>http://ajaxian.com/archives/google-docs-and-spreadsheets-team-web-native-matters#comments</comments>\r
-               <pubDate>Mon, 27 Nov 2006 15:25:50 +0000</pubDate>\r
-               <dc:creator>Dion Almaer</dc:creator>\r
-               \r
-       <category>Front Page</category>\r
-       <category>Editorial</category>\r
-               <guid>http://ajaxian.com/archives/google-docs-and-spreadsheets-team-web-native-matters</guid>\r
-               <description><![CDATA[  Richard MacManus linked to a Gizbuzz interview of Jen Mazzon and Sam Schillace of the Google Docs and Spreadsheets team (both ex-Writely).
-       Nothing ground-breaking, but it is interesting to hear about their thoughts on Ajax:
-       
-       Browser compatibility issues - like the early graphic Web
-       Next was a question about browser compatibility issues and how that affects D&#038;S - [...]]]></description>\r
-                       <content:encoded><![CDATA[      <p>Richard MacManus <a href="http://www.readwriteweb.com/archives/google_docs_and_spreadsheets_interview.php">linked to</a> a <a href="http://gizbuzz.co.uk/2006/podcast-episode-3-google-docs-and-spreadsheets/">Gizbuzz interview of Jen Mazzon and Sam Schillace</a> of the Google Docs and Spreadsheets team (both ex-Writely).</p>
-       <p>Nothing ground-breaking, but it is interesting to hear about their thoughts on Ajax:</p>
-       <blockquote>
-       <h3>Browser compatibility issues - like the early graphic Web</h3>
-       <p>Next was a question about browser compatibility issues and how that affects D&#038;S - and indeed the future of rich web applications. Sam responded that "it is definitely an issue [...] these apps are all cutting edge - it kind of reminds me of the early days of the graphical web, when you couldn't count on the browsers to render tables correctly [...]".</p>
-       <p>But he thinks it's "just growing pains" and it'll take about a year to sort those issues out.</p>
-       <p>Also on the question of whether Ajax is better than Flash and Laszlo etc, Sam thinks that Ajax is currently more web native.</p>
-       <h3>It's about being Web native, not cloning desktop apps</h3>
-       <p>Later in the interview, Jen stresses that they're "not trying to clone desktop apps". They want to be familiar to people, "but we're trying to do something that's actually more native to the Internet, more usable on the Internet."</p>
-       <p>Sam says they've had a lot of feedback that people like the fact they're not trying to copy desktop apps. He said "copying the existing stuff just feels irrelevant to us - we're not trying to copy, we're trying to re-invent."</p>
-       <p>Both Jen and Sam re-affirmed that collaboration and sharing is their main focus with D&#038;S, as well as being web native - rather than trying to compete on features with desktop apps.
-</p></blockquote>
-       <p>If you were asked "why is Ajax a better fit for some apps than Flash?" what would you say? Do you agree? Does the open web matter? What if Adobe fully opened up their format?
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=NCLw33w0"><img src="http://feeds.feedburner.com/~f/ajaxian?i=NCLw33w0" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=gjXowiT4"><img src="http://feeds.feedburner.com/~f/ajaxian?i=gjXowiT4" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=HeKJhsYv"><img src="http://feeds.feedburner.com/~f/ajaxian?i=HeKJhsYv" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=CWr8mgGL"><img src="http://feeds.feedburner.com/~f/ajaxian?i=CWr8mgGL" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRSS>http://ajaxian.com/archives/google-docs-and-spreadsheets-team-web-native-matters/feed/</wfw:commentRSS>\r
-       </item>\r
-               <item>\r
-               <title>Review of ‘Pro Ajax and Java Frameworks’</title>\r
-               <link>http://ajaxian.com/archives/review-of-pro-ajax-and-java-frameworks</link>\r
-               <comments>http://ajaxian.com/archives/review-of-pro-ajax-and-java-frameworks#comments</comments>\r
-               <pubDate>Mon, 27 Nov 2006 14:14:42 +0000</pubDate>\r
-               <dc:creator>Dietrich Kappe</dc:creator>\r
-               \r
-       <category>Front Page</category>\r
-       <category>Book Reviews</category>\r
-               <guid>http://ajaxian.com/archives/review-of-pro-ajax-and-java-frameworks</guid>\r
-               <description><![CDATA[  
-       This is a review of Pro Ajax and Java Frameworks by Nathaniel T. Schutta and Ryan Asleson. This book seeks to give the experienced developer of Java web applications the knowledge necessary to add Ajax to their webapps. This is another Ajax book that goes broad rather than deep. Instead of investigating one or two [...]]]></description>\r
-                       <content:encoded><![CDATA[      <p><a href="http://ajaxian.com/wp-content/images/bcm.gif"><img src="http://ajaxian.com/wp-content/images/bcm_tn.jpg" style="DISPLAY: inline; FLOAT: left; WIDTH: 125px; HEIGHT: 164px" title="bcm.gif" height="164" width="125" alt="bcm.gif" border="0" id="bcm.gif"/></a></p>
-       <p>This is a review of <em>Pro Ajax and Java Frameworks</em> by Nathaniel T. Schutta and Ryan Asleson. This book seeks to give the experienced developer of Java web applications the knowledge necessary to add Ajax to their webapps. This is another Ajax book that goes broad rather than deep. Instead of investigating one or two frameworks, it delves into more than a half dozen, both Javascript and Java.</p>
-       <p>Quick summary: Chapters 2, 3 and 5 are the strongest in the book with useful information on tools, Javascript libraries and enhancing Struts applications with Ajax. The other chapters are not as strong and spend too much time covering old ground.</p>
-       <p>The book is divided into two parts. Part 1 is an introduction to a variety of Javascript and Java Ajax libraries and frameworks. Part 2 shows how to integrate those libraries and frameworks into existing Java web frameworks such as Struts and JSF. One place that this book differs from other Ajax books is that it doesn't have a chapter introducing the reader to the browser technologies that comprise Ajax. It doesn't dwell on the basics of Javascript, DOM and CSS. It expects you to have already read the Apress books on those topics. Instead, chapter 1 covers what I would call best practices and patterns -- autocomplete, partial page update, draggable DOM.</p>
-       <p>Read more of the review <a href="http://blogs.pathf.com/agileajax/2006/11/review_of_pro_a.html">here</a>.</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=5FIDIG43"><img src="http://feeds.feedburner.com/~f/ajaxian?i=5FIDIG43" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=5aOiDdHp"><img src="http://feeds.feedburner.com/~f/ajaxian?i=5aOiDdHp" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=hunPILOJ"><img src="http://feeds.feedburner.com/~f/ajaxian?i=hunPILOJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=GTSOXqVS"><img src="http://feeds.feedburner.com/~f/ajaxian?i=GTSOXqVS" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRSS>http://ajaxian.com/archives/review-of-pro-ajax-and-java-frameworks/feed/</wfw:commentRSS>\r
-       </item>\r
-               <item>\r
-               <title>Minus(MO)R a.k.a. Let me write JavaScript but help me!</title>\r
-               <link>http://ajaxian.com/archives/minusmor-aka-let-me-write-javascript-but-help-me</link>\r
-               <comments>http://ajaxian.com/archives/minusmor-aka-let-me-write-javascript-but-help-me#comments</comments>\r
-               <pubDate>Mon, 27 Nov 2006 14:03:41 +0000</pubDate>\r
-               <dc:creator>Dion Almaer</dc:creator>\r
-               \r
-       <category>Front Page</category>\r
-       <category>JavaScript</category>\r
-       <category>Library</category>\r
-       <category>Rails</category>\r
-               <guid>http://ajaxian.com/archives/minusmor-aka-let-me-write-javascript-but-help-me</guid>\r
-               <description><![CDATA[  Dan Webb has created two Rails plugins to make RJS even better. He has realised that although for some cases RJS is a great thing, you often do want to just use JavaScript, and it looks really ugly to do this:
-       
-
-       
-page &#38;lt;&#38;lt;'if (someClientSideVariable) {'
-page['a'].replace_html :partial =&#38;gt; 'thing'
-page &#38;lt;&#38;lt;'} else {'
-page['b'].replace_html :partial =&#38;gt; 'thong'
-page &#38;lt;&#38;lt;'}'
-
-       
-
-       He first [...]]]></description>\r
-                       <content:encoded><![CDATA[      <p>Dan Webb has created two Rails plugins to make RJS even better. He has realised that although for some cases RJS is a great thing, you often do want to just use JavaScript, and it looks really ugly to do this:</p>
-       <div class="syntax_hilite">
-<div id="ruby-5">
-       <div>
-page &amp;lt;&amp;lt;'if (someClientSideVariable) {'<br />
-page['a'].replace_html :partial =&amp;gt; 'thing'<br />
-page &amp;lt;&amp;lt;'} else {'<br />
-page['b'].replace_html :partial =&amp;gt; 'thong'<br />
-page &amp;lt;&amp;lt;'}'
-</div>
-       </div>
-</div>
-       <p>He first came out with <a href="http://svn.danwebb.net/external/rails/plugins/minus_r/trunk/">MinusR</a> which takes of your rjs files and lets you code in JS, but still call out to the ruby style. For example:</p>
-       <div class="syntax_hilite">
-<div id="javascript-6">
-       <div class="javascript">
-<span style="color: #000066; font-weight: bold;">if</span> <span style="color:#006600; font-weight:bold;">&#40;</span>someClientSideVariable<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span><br />
-&nbsp; $<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'a'</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">update</span><span style="color:#006600; font-weight:bold;">&#40;</span>&amp;lt;%=js render<span style="color:#006600; font-weight:bold;">&#40;</span>:partial =&gt; <span style="color: #3366CC;">'thing'</span><span style="color:#006600; font-weight:bold;">&#41;</span> %&amp;gt;<span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
-<span style="color:#006600; font-weight:bold;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color:#006600; font-weight:bold;">&#123;</span><br />
-&nbsp; $<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'b'</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">update</span><span style="color:#006600; font-weight:bold;">&#40;</span>&amp;lt;%=js render<span style="color:#006600; font-weight:bold;">&#40;</span>:partial =&gt; <span style="color: #3366CC;">'thong'</span><span style="color:#006600; font-weight:bold;">&#41;</span> %&amp;gt;<span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
-<span style="color:#006600; font-weight:bold;">&#125;</span><br />
-&nbsp;</div>
-       </div>
-</div>
-       <blockquote><p>
-MinusR gives you the js helper that calls to_json on any value passed to it so you can drop nicely escaped and formatted data into your script as before. Everyone’s a winner. Well, not quite, I could be going out on a limb here but I really think this is the better way. Go on, give it a go. A bit of javaScript won’t hurt you….
-</p></blockquote>
-       <p>Then a bunch of people wanted this to be doable, but in a separate file, so Dan created <a href="http://www.danwebb.net/2006/11/24/minusmor-released">MinusMOR</a>, which let's you do the same thing in .ejs files.</p>
-       <p>It is great to be able to choice your poison, even on a case by case basis, and decide whether JS or Ruby is the ruler.
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=KzOPpBLk"><img src="http://feeds.feedburner.com/~f/ajaxian?i=KzOPpBLk" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=tyZWuMpT"><img src="http://feeds.feedburner.com/~f/ajaxian?i=tyZWuMpT" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=cYtOaSvj"><img src="http://feeds.feedburner.com/~f/ajaxian?i=cYtOaSvj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=e2UryVSj"><img src="http://feeds.feedburner.com/~f/ajaxian?i=e2UryVSj" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRSS>http://ajaxian.com/archives/minusmor-aka-let-me-write-javascript-but-help-me/feed/</wfw:commentRSS>\r
-       </item>\r
-               <item>\r
-               <title>Zamzar: Online file conversion</title>\r
-               <link>http://ajaxian.com/archives/zamzar-online-file-conversion</link>\r
-               <comments>http://ajaxian.com/archives/zamzar-online-file-conversion#comments</comments>\r
-               <pubDate>Mon, 27 Nov 2006 13:23:12 +0000</pubDate>\r
-               <dc:creator>Dion Almaer</dc:creator>\r
-               \r
-       <category>Front Page</category>\r
-       <category>Showcase</category>\r
-               <guid>http://ajaxian.com/archives/zamzar-online-file-conversion</guid>\r
-               <description><![CDATA[  Zamzar is a simple, single page ajax application that lets you upload a file and convert it to something else. E.g.
-       
-       Make your PDF documents editable by converting them to MS Word
-       Convert your ITunes (aac) files to mp3
-       Upload up to 5 files at a time to convert simultaneously
-       Take advantage of over 150 different conversion types
-       
-       
-
-]]></description>\r
-                       <content:encoded><![CDATA[      <p><a href="http://www.zamzar.com/">Zamzar</a> is a simple, single page ajax application that lets you upload a file and convert it to something else. E.g.</p>
-       <ul>
-       <li>Make your PDF documents editable by converting them to MS Word</li>
-       <li>Convert your ITunes (aac) files to mp3</li>
-       <li>Upload up to 5 files at a time to convert simultaneously</li>
-       <li>Take advantage of over 150 different conversion types</li>
-       </ul>
-       <p><a href="http://www.zamzar.com/"><img src="http://ajaxian.com/wp-content/images/zamzar.png" alt="ZamZar" border="0" width="778" height="549"/></a>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=2bVY3cIM"><img src="http://feeds.feedburner.com/~f/ajaxian?i=2bVY3cIM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=YNCLGcXg"><img src="http://feeds.feedburner.com/~f/ajaxian?i=YNCLGcXg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=qgnycv1k"><img src="http://feeds.feedburner.com/~f/ajaxian?i=qgnycv1k" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=wnoUHPGJ"><img src="http://feeds.feedburner.com/~f/ajaxian?i=wnoUHPGJ" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRSS>http://ajaxian.com/archives/zamzar-online-file-conversion/feed/</wfw:commentRSS>\r
-       </item>\r
-               <item>\r
-               <title>CSS Evolution</title>\r
-               <link>http://ajaxian.com/archives/css-evolution</link>\r
-               <comments>http://ajaxian.com/archives/css-evolution#comments</comments>\r
-               <pubDate>Sat, 25 Nov 2006 17:12:26 +0000</pubDate>\r
-               <dc:creator>Dion Almaer</dc:creator>\r
-               \r
-       <category>Front Page</category>\r
-       <category>Fun</category>\r
-       <category>CSS</category>\r
-               <guid>http://ajaxian.com/archives/css-evolution</guid>\r
-               <description><![CDATA[  
-       Evolution of the web in real-time. I hope you are having a good weekend (a Thanksgiving one for the US folk).
-
-]]></description>\r
-                       <content:encoded><![CDATA[      <p><img src="http://mboffin.com/stuff/designline-openair.gif" width="512" height="384" border="0" /></p>
-       <p>Evolution of the web in real-time. I hope you are having a good weekend (a Thanksgiving one for the US folk).
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=0Oe2jHNg"><img src="http://feeds.feedburner.com/~f/ajaxian?i=0Oe2jHNg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=dnGk0cRj"><img src="http://feeds.feedburner.com/~f/ajaxian?i=dnGk0cRj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=Tt4f4R3d"><img src="http://feeds.feedburner.com/~f/ajaxian?i=Tt4f4R3d" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=G46q0PCO"><img src="http://feeds.feedburner.com/~f/ajaxian?i=G46q0PCO" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRSS>http://ajaxian.com/archives/css-evolution/feed/</wfw:commentRSS>\r
-       </item>\r
-               <item>\r
-               <title>Poly9’s Polyvalent Javascript URL Parser</title>\r
-               <link>http://ajaxian.com/archives/poly9s-polyvalent-javascript-url-parser</link>\r
-               <comments>http://ajaxian.com/archives/poly9s-polyvalent-javascript-url-parser#comments</comments>\r
-               <pubDate>Sat, 25 Nov 2006 15:00:34 +0000</pubDate>\r
-               <dc:creator>Dion Almaer</dc:creator>\r
-               \r
-       <category>Front Page</category>\r
-       <category>JavaScript</category>\r
-       <category>Library</category>\r
-               <guid>http://ajaxian.com/archives/poly9s-polyvalent-javascript-url-parser</guid>\r
-               <description><![CDATA[  Denis Laprise and the Poly9 Group needed a robust URL parser in JavaScript, so they created the Polyvalent Javascript URL Parser.
-       
-
-       
-var p = new Poly9.URLParser&#40;'http://user:password@poly9.com/pathname?arguments=1#fragment'&#41;;
-p.getHost&#40;&#41; == 'poly9.com';
-p.getProtocol&#40;&#41; == 'http';
-p.getPathname&#40;&#41; == '/pathname';
-p.getQuerystring&#40;&#41; == 'arguments=1';
-p.getFragment&#40;&#41; == 'fragment';
-p.getUsername&#40;&#41; == 'user';
-p.getPassword&#40;&#41; == 'password';
-       p.setURL&#40;'another.url.com'&#41;;
-p.getHost&#40;&#41; == 'another.url.com';
-p.getProtocol&#40;&#41; == '';
-       p.setURL&#40;'dsdsad'&#41;; // throws an exception
-&#160;
-       
-
-       This smells like a Java group writing JavaScript to [...]]]></description>\r
-                       <content:encoded><![CDATA[      <p>Denis Laprise and the Poly9 Group needed a robust URL parser in JavaScript, so they <a href="https://code.poly9.com/trac/wiki/URLParser">created the Polyvalent Javascript URL Parser</a>.</p>
-       <div class="syntax_hilite">
-<div id="javascript-8">
-       <div class="javascript">
-<span style="color: #003366; font-weight: bold;">var</span> p = <span style="color: #003366; font-weight: bold;">new</span> Poly9.<span style="color: #006600;">URLParser</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'http://user:password@poly9.com/pathname?arguments=1#fragment'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
-p.<span style="color: #006600;">getHost</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> == <span style="color: #3366CC;">'poly9.com'</span>;<br />
-p.<span style="color: #006600;">getProtocol</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> == <span style="color: #3366CC;">'http'</span>;<br />
-p.<span style="color: #006600;">getPathname</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> == <span style="color: #3366CC;">'/pathname'</span>;<br />
-p.<span style="color: #006600;">getQuerystring</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> == <span style="color: #3366CC;">'arguments=1'</span>;<br />
-p.<span style="color: #006600;">getFragment</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> == <span style="color: #3366CC;">'fragment'</span>;<br />
-p.<span style="color: #006600;">getUsername</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> == <span style="color: #3366CC;">'user'</span>;<br />
-p.<span style="color: #006600;">getPassword</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> == <span style="color: #3366CC;">'password'</span>;</p>
-       <p>p.<span style="color: #006600;">setURL</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'another.url.com'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
-p.<span style="color: #006600;">getHost</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> == <span style="color: #3366CC;">'another.url.com'</span>;<br />
-p.<span style="color: #006600;">getProtocol</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> == <span style="color: #3366CC;">''</span>;</p>
-       <p>p.<span style="color: #006600;">setURL</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'dsdsad'</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color: #009900; font-style: italic;">// throws an exception</span><br />
-&nbsp;</div>
-       </div>
-</div>
-       <p>This smells like a Java group writing JavaScript to me with the camelCase and thus p.getUsername() instead of p.username.</p>
-       <p>You can check out <a href="https://code.poly9.com/trac/browser/urlparser/urlparser.js?format=txt">the implementation</a> and the <a href="https://code.poly9.com/files/urlparser-0.1.zip">test suite (zip)</a>.
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=ZVMtMQRn"><img src="http://feeds.feedburner.com/~f/ajaxian?i=ZVMtMQRn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=TTsAAACX"><img src="http://feeds.feedburner.com/~f/ajaxian?i=TTsAAACX" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=LDXEbvr2"><img src="http://feeds.feedburner.com/~f/ajaxian?i=LDXEbvr2" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=Uk6myWFs"><img src="http://feeds.feedburner.com/~f/ajaxian?i=Uk6myWFs" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRSS>http://ajaxian.com/archives/poly9s-polyvalent-javascript-url-parser/feed/</wfw:commentRSS>\r
-       </item>\r
-               <item>\r
-               <title>DOMContentLoaded.Next</title>\r
-               <link>http://ajaxian.com/archives/domcontentloadednext</link>\r
-               <comments>http://ajaxian.com/archives/domcontentloadednext#comments</comments>\r
-               <pubDate>Sat, 25 Nov 2006 14:29:00 +0000</pubDate>\r
-               <dc:creator>Dion Almaer</dc:creator>\r
-               \r
-       <category>Front Page</category>\r
-       <category>JavaScript</category>\r
-       <category>Tip</category>\r
-               <guid>http://ajaxian.com/archives/domcontentloadednext</guid>\r
-               <description><![CDATA[  Andrea Giammarchi has taken the work of Dean Edwards, Mark Wubben, and Paul Sowden to create his DOMContentLoaded Final Solution.
-       The work comes with a test page for http and https, and is documented in this function:
-       
-
-       
-function onContent&#40;callback&#41;&#123; // (C) webreflection.blogspot.com
-&#160; &#160; // [please note that this code doesn't work]
-       &#160;// private scope variable
-       &#160;var IEStringToWrite =&#160; // [...]]]></description>\r
-                       <content:encoded><![CDATA[      <p>Andrea Giammarchi has taken the work of <a href="http://dean.edwards.name/weblog/2005/09/busted/">Dean</a> <a href="http://dean.edwards.name/weblog/2006/06/again/">Edwards</a>, <a href="http://novemberborn.net/colophon">Mark Wubben</a>, and <a href="http://delete.me.uk/">Paul Sowden</a> to create <a href="http://www.3site.eu/jstests/onContent/final.html">his DOMContentLoaded Final Solution</a>.</p>
-       <p>The work comes with a test page for <a href="http://www.3site.eu/jstests/onContent/final.html">http</a> and <a href="https://server3.phpsoft.it:8111/antrea/">https</a>, and is documented in this function:</p>
-       <div class="syntax_hilite">
-<div id="javascript-10">
-       <div class="javascript">
-<span style="color: #003366; font-weight: bold;">function</span> onContent<span style="color:#006600; font-weight:bold;">&#40;</span>callback<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color: #009900; font-style: italic;">// (C) webreflection.blogspot.com</span><br />
-&nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// [please note that this code doesn't work]</span></p>
-       <p>&nbsp;<span style="color: #009900; font-style: italic;">// private scope variable</span></p>
-       <p>&nbsp;<span style="color: #003366; font-weight: bold;">var</span> IEStringToWrite =&nbsp; <span style="color: #009900; font-style: italic;">// this is IE dedicated string</span></p>
-       <p>&nbsp; <span style="color: #3366CC;">"&lt;script defer src='//:' onreadystatechange='<br />
-&nbsp; (function(element){<br />
-&nbsp; &nbsp;<br />
-&nbsp; &nbsp;// if readystate is complete<br />
-&nbsp; &nbsp;if(element.readyState === "</span>complete<span style="color: #3366CC;">")</p>
-       <p>&nbsp; &nbsp; // call the global variable<br />
-&nbsp; &nbsp; window.__onContent__();<br />
-&nbsp; })(this);<br />
-&nbsp; '&gt;&lt;/script&gt;"</span>;</p>
-       <p>&nbsp;<span style="color: #009900; font-style: italic;">// the above string is necessary to use onreadystatechange property</span><br />
-&nbsp;<span style="color: #009900; font-style: italic;">// with an undefined page. In this way IE tell us the readyState</span><br />
-&nbsp;<span style="color: #009900; font-style: italic;">// of the current document</span></p>
-       <p>&nbsp;<span style="color: #009900; font-style: italic;">// to call callback function IE need a global scope variable</span><br />
-&nbsp;<span style="color: #009900; font-style: italic;">// this variable could call one or more callback</span><br />
-&nbsp;<span style="color: #009900; font-style: italic;">// then if it's already created we need to call the old callback</span><br />
-&nbsp;<span style="color: #009900; font-style: italic;">// then this new callback</span><br />
-&nbsp;window.__onContent__ = <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span>oldCallback<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span><br />
-&nbsp; <br />
-&nbsp; <span style="color: #009900; font-style: italic;">// returns a function that will delete __onContent__</span><br />
-&nbsp; <span style="color: #009900; font-style: italic;">// to remove multiple callbacks with different </span><br />
-&nbsp; <span style="color: #009900; font-style: italic;">// events and different ways for each browser</span></p>
-       <p>&nbsp; <span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></p>
-       <p>&nbsp; &nbsp;<span style="color: #009900; font-style: italic;">// clear __onContent__ as generic function</span><br />
-&nbsp; &nbsp;window.__onContent__ = <span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006600; font-weight:bold;">&#125;</span>;<br />
-&nbsp; &nbsp;<br />
-&nbsp; &nbsp;<br />
-&nbsp; &nbsp;<span style="color: #009900; font-style: italic;">// checks if oldCallback isn't null or undefined</span><br />
-&nbsp; &nbsp;<span style="color: #000066; font-weight: bold;">if</span><span style="color:#006600; font-weight:bold;">&#40;</span>oldCallback<span style="color:#006600; font-weight:bold;">&#41;</span><br />
-&nbsp; &nbsp; oldCallback<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color: #009900; font-style: italic;">// call them to preserve the right order</span></p>
-       <p>&nbsp; &nbsp;callback<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;&nbsp; <span style="color: #009900; font-style: italic;">// call this scope callback function </span><br />
-&nbsp; &nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// (sent calling onContent)</span><br />
-&nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span><br />
-&nbsp; <br />
-&nbsp;<span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#40;</span>window.__onContent__<span style="color:#006600; font-weight:bold;">&#41;</span>; <span style="color: #009900; font-style: italic;">// undefined if is the first time we use __onContent__</span></p>
-       <p>&nbsp;<span style="color: #009900; font-style: italic;">// __onContent__ is my function to use as callback</span></p>
-       <p>&nbsp;<span style="color: #009900; font-style: italic;">// I need to add this function as event</span></p>
-       <p>&nbsp;<span style="color: #009900; font-style: italic;">// Opera 9 and FireFox both support DOMContentLoaded as well as </span><br />
-&nbsp;<span style="color: #009900; font-style: italic;">// addEventListener document method</span><br />
-&nbsp;<span style="color: #000066; font-weight: bold;">if</span><span style="color:#006600; font-weight:bold;">&#40;</span>document.<span style="color: #006600;">addEventListener</span><span style="color:#006600; font-weight:bold;">&#41;</span><br />
-&nbsp; document.<span style="color: #006600;">addEventListener</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">"DOMContentLoaded"</span>, __onContent__, <span style="color: #003366; font-weight: bold;">false</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</p>
-       <p>&nbsp;<span style="color: #009900; font-style: italic;">// if some browser supports addEventListener but doesn't support DOMContentLoaded </span><br />
-&nbsp;<span style="color: #009900; font-style: italic;">// event I don't need to care about that because this event will never be fired</span></p>
-       <p>&nbsp;<span style="color: #009900; font-style: italic;">// at the same time if Safari or KDE one day will support DOMContentLoaded </span><br />
-&nbsp;<span style="color: #009900; font-style: italic;">// I prefere use this dedicated in-core</span><br />
-&nbsp;<span style="color: #009900; font-style: italic;">// event instead of next trick that's quite horrible but works with Safari, </span><br />
-&nbsp;<span style="color: #009900; font-style: italic;">// KDE as Opera 8.5 and lower too</span></p>
-       <p>&nbsp;<span style="color: #009900; font-style: italic;">// that's why I don't use an else if but an if ... because the first time </span><br />
-&nbsp;<span style="color: #009900; font-style: italic;">// event will be fired __onContent__ </span><br />
-&nbsp;<span style="color: #009900; font-style: italic;">// became an empty function ... then calling them twice is not a problem</span></p>
-       <p>&nbsp;<span style="color: #000066; font-weight: bold;">if</span><span style="color:#006600; font-weight:bold;">&#40;</span><br />
-&nbsp; <span style="color: #009900; font-style: italic;">// Safari and KDE</span><br />
-&nbsp; <span style="color: #0066FF;">/WebKit|Khtml/i</span>.<span style="color: #006600;">test</span><span style="color:#006600; font-weight:bold;">&#40;</span>navigator.<span style="color: #006600;">userAgent</span><span style="color:#006600; font-weight:bold;">&#41;</span> ||</p>
-       <p>&nbsp; <span style="color: #009900; font-style: italic;">// Opera less than 9</span><br />
-&nbsp; <span style="color:#006600; font-weight:bold;">&#40;</span>window.<span style="color: #006600;">opera</span> &amp;&amp; parseInt<span style="color:#006600; font-weight:bold;">&#40;</span>window.<span style="color: #006600;">opera</span>.<span style="color: #006600;">version</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>&amp;lt;<span style="color:#800000;">9</span><span style="color:#006600; font-weight:bold;">&#41;</span><br />
-&nbsp;<span style="color:#006600; font-weight:bold;">&#41;</span><br />
-&nbsp; <span style="color: #009900; font-style: italic;">// runtime anonymous function</span><br />
-&nbsp; <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></p>
-       <p>&nbsp; &nbsp;<span style="color: #009900; font-style: italic;">// checks if document.readyState is loaded or complete</span><br />
-&nbsp; &nbsp;<span style="color: #0066FF;">/loaded|complete/</span>.<span style="color: #006600;">test</span><span style="color:#006600; font-weight:bold;">&#40;</span>document.<span style="color: #006600;">readyState</span><span style="color:#006600; font-weight:bold;">&#41;</span> ?</p>
-       <p>&nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// then call __onContent__ , stopping internal loop</span><br />
-&nbsp; &nbsp; window.__onContent__<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> :</p>
-       <p>&nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// or loops itself with the faster timeout</span><br />
-&nbsp; &nbsp; setTimeout<span style="color:#006600; font-weight:bold;">&#40;</span>arguments.<span style="color: #006600;">callee</span>, <span style="color:#800000;">1</span><span style="color:#006600; font-weight:bold;">&#41;</span>; <br />
-&nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</p>
-       <p>&nbsp;<span style="color: #009900; font-style: italic;">// at this point I've setted the DOMContentLoaded event for every browser</span><br />
-&nbsp;<span style="color: #009900; font-style: italic;">// but not for Inernet Explorer.</span><br />
-&nbsp;<span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #0066FF;">/MSIE/i</span>.<span style="color: #006600;">test</span><span style="color:#006600; font-weight:bold;">&#40;</span>navigator.<span style="color: #006600;">userAgent</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span></p>
-       <p>&nbsp; <span style="color: #009900; font-style: italic;">// I can write dedicated string</span><br />
-&nbsp; document.<span style="color: #006600;">write</span><span style="color:#006600; font-weight:bold;">&#40;</span>IEStringToWrite<span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
-<span style="color:#006600; font-weight:bold;">&#125;</span>;<br />
-&nbsp;</div>
-       </div>
-</div>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=luo1Gwyw"><img src="http://feeds.feedburner.com/~f/ajaxian?i=luo1Gwyw" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=aQvBKJJ3"><img src="http://feeds.feedburner.com/~f/ajaxian?i=aQvBKJJ3" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=TJtOXhwL"><img src="http://feeds.feedburner.com/~f/ajaxian?i=TJtOXhwL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=LNNtLH7H"><img src="http://feeds.feedburner.com/~f/ajaxian?i=LNNtLH7H" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRSS>http://ajaxian.com/archives/domcontentloadednext/feed/</wfw:commentRSS>\r
-       </item>\r
-               <item>\r
-               <title>Using the Eclipse AJAX Toolkit Framework (ATF) Webinar</title>\r
-               <link>http://ajaxian.com/archives/using-the-eclipse-ajax-toolkit-framework-atf-webinar</link>\r
-               <comments>http://ajaxian.com/archives/using-the-eclipse-ajax-toolkit-framework-atf-webinar#comments</comments>\r
-               <pubDate>Sat, 25 Nov 2006 04:04:00 +0000</pubDate>\r
-               <dc:creator>Dion Almaer</dc:creator>\r
-               \r
-       <category>Front Page</category>\r
-       <category>Presentation</category>\r
-               <guid>http://ajaxian.com/archives/using-the-eclipse-ajax-toolkit-framework-atf-webinar</guid>\r
-               <description><![CDATA[  We don't normally post webinars, but thought "what the hell it's Friday".
-       On November 30, the Eclipse foundation will be hosting a 1 hour webinar titled Using the Eclipse Ajax Toolkit Framework (ATF).
-       Eclipse ATF provides exemplary tools for creating and debugging Ajax applications.  These tools include enhanced JavaScript editing features such as edit-time syntax checking, [...]]]></description>\r
-                       <content:encoded><![CDATA[      <p>We don't normally post webinars, but thought "what the hell it's Friday".</p>
-       <p>On November 30, the Eclipse foundation will be hosting a 1 hour webinar titled <a href="http://www.eclipse.org/community/webinars2006.php">Using the Eclipse Ajax Toolkit Framework (ATF)</a>.</p>
-       <p>Eclipse ATF provides exemplary tools for creating and debugging Ajax applications.  These tools include enhanced JavaScript editing features such as edit-time syntax checking, an embedded DOM browser, CSS Tools, JavaScript debugger, a JavaScript console, and an embedded Mozilla web browser.   This webinar will demonstrate how to use ATF to create, debug, and deploy an Ajax application on both Apache and J2EE servers.</p>
-       <p>Register by emailing <a href="mailto:webinar-atf@eclipse.org">webinar-atf@eclipse.org</a></p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=Qh1EpBSt"><img src="http://feeds.feedburner.com/~f/ajaxian?i=Qh1EpBSt" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=SHKUMbcJ"><img src="http://feeds.feedburner.com/~f/ajaxian?i=SHKUMbcJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=xZxME2vY"><img src="http://feeds.feedburner.com/~f/ajaxian?i=xZxME2vY" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=ZLlrYLtO"><img src="http://feeds.feedburner.com/~f/ajaxian?i=ZLlrYLtO" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRSS>http://ajaxian.com/archives/using-the-eclipse-ajax-toolkit-framework-atf-webinar/feed/</wfw:commentRSS>\r
-       </item>\r
-               <item>\r
-               <title>Another trick to allow Array subclasses</title>\r
-               <link>http://ajaxian.com/archives/another-trick-to-allow-array-subclasses</link>\r
-               <comments>http://ajaxian.com/archives/another-trick-to-allow-array-subclasses#comments</comments>\r
-               <pubDate>Fri, 24 Nov 2006 15:59:15 +0000</pubDate>\r
-               <dc:creator>Dion Almaer</dc:creator>\r
-               \r
-       <category>Front Page</category>\r
-       <category>JavaScript</category>\r
-       <category>Tip</category>\r
-               <guid>http://ajaxian.com/archives/another-trick-to-allow-array-subclasses</guid>\r
-               <description><![CDATA[  Dean Edwards talked about his hack that got us the ability to subclass the Array object in JavaScript.
-       Hedger Wang has a new hack that uses window.createPopup instead of an iframe to for IE to fix some issues.
-       If you take a view source to see what is in there, you get the gem:
-       
-
-       
-;&#40;function&#40;&#41;&#123;
-&#160; &#160; &#160; &#160; [...]]]></description>\r
-                       <content:encoded><![CDATA[      <p><a href="http://dean.edwards.name/weblog/2006/11/hooray/">Dean Edwards</a> talked about his hack that got us the ability to subclass the Array object in JavaScript.</p>
-       <p><a href="http://www.hedgerwow.com/360/dhtml/js-array2.html">Hedger Wang has a new hack</a> that uses <a href="http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/createpopup.asp">window.createPopup</a> instead of an iframe to for IE to fix some issues.</p>
-       <p>If you take a view source to see what is in there, you get the gem:</p>
-       <div class="syntax_hilite">
-<div id="javascript-12">
-       <div class="javascript">
-;<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span><br />
-&nbsp; &nbsp; &nbsp; &nbsp; <br />
-&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span><span style="color:#006600; font-weight:bold;">&#40;</span>!window.<span style="color: #006600;">createPopup</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span><span style="color: #000066; font-weight: bold;">return</span><span style="color:#006600; font-weight:bold;">&#125;</span>;<br />
-&nbsp; &nbsp; &nbsp; &nbsp; <br />
-&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> fs = <span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span><br />
-&nbsp; &nbsp; &nbsp; &nbsp; <br />
-&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0066FF;">/==/</span><br />
-&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> Array2 = parent.<span style="color: #006600;">Array2</span> ;<br />
-&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> p1 = Array.<span style="color: #006600;">prototype</span> ;<br />
-&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> p2 = Array2.<span style="color: #006600;">prototype</span>;<br />
-&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">for</span><span style="color:#006600; font-weight:bold;">&#40;</span>i <span style="color: #000066; font-weight: bold;">in</span> p2 <span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span><br />
-&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; p1<span style="color:#006600; font-weight:bold;">&#91;</span>i<span style="color:#006600; font-weight:bold;">&#93;</span> = p2<span style="color:#006600; font-weight:bold;">&#91;</span>i<span style="color:#006600; font-weight:bold;">&#93;</span>;<br />
-&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span>;<br />
-&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; parent.<span style="color: #006600;">Array2</span> = Array;<br />
-&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; parent.<span style="color: #006600;">document</span>.<span style="color: #006600;">title</span> = <span style="color: #3366CC;">'Array2 is ready'</span>;<span style="color: #009900; font-style: italic;">/*debug msg*/</span><br />
-&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0066FF;">/==/</span><br />
-&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span>;<br />
-&nbsp; &nbsp; &nbsp; &nbsp; <br />
-&nbsp; &nbsp; &nbsp; &nbsp; document.<span style="color: #006600;">title</span> = <span style="color: #3366CC;">'Prepare Array2'</span>;<span style="color: #009900; font-style: italic;">/*debug msg*/</span></p>
-       <p>&nbsp; &nbsp; &nbsp; &nbsp; fs = <span style="color:#006600; font-weight:bold;">&#40;</span>fs + <span style="color: #3366CC;">''</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">split</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">'/==/'</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#800000;">1</span><span style="color:#006600; font-weight:bold;">&#93;</span>;<br />
-&nbsp; &nbsp; &nbsp; &nbsp; window.<span style="color: #006600;">createPopup</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color: #006600;">document</span>.<span style="color: #006600;">body</span>.<span style="color: #006600;">innerHTML</span> = <span style="color: #3366CC;">'&lt;img src=&quot;null&quot; onerror=&quot;'</span> +&nbsp; fs + <span style="color: #3366CC;">'&quot; /&gt;'</span>;<br />
-&nbsp; &nbsp; &nbsp; &nbsp; <br />
-<span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</p>
-       <p><span style="color: #003366; font-weight: bold;">var</span> Array2 = <span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006600; font-weight:bold;">&#125;</span>;<br />
-&nbsp; &nbsp; &nbsp; &nbsp; Array2.<span style="color: #006600;">prototype</span> = <span style="color: #003366; font-weight: bold;">new</span> Array;<br />
-&nbsp; &nbsp; &nbsp; &nbsp; Array2.<span style="color: #006600;">prototype</span>.<span style="color: #006600;">bar</span> = <span style="color: #003366; font-weight: bold;">function</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span><br />
-&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066;">alert</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color: #3366CC;">"this.bar() --&gt; This.Length="</span> + <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">length</span> <span style="color:#006600; font-weight:bold;">&#41;</span>;<br />
-&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span><br />
-&nbsp;</div>
-       </div>
-</div>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=SCY03YAX"><img src="http://feeds.feedburner.com/~f/ajaxian?i=SCY03YAX" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=sBDwsM9P"><img src="http://feeds.feedburner.com/~f/ajaxian?i=sBDwsM9P" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=dlKtpJWr"><img src="http://feeds.feedburner.com/~f/ajaxian?i=dlKtpJWr" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=HXHKOiMI"><img src="http://feeds.feedburner.com/~f/ajaxian?i=HXHKOiMI" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRSS>http://ajaxian.com/archives/another-trick-to-allow-array-subclasses/feed/</wfw:commentRSS>\r
-       </item>\r
-               <item>\r
-               <title>Dropboks: File Storage on One Page</title>\r
-               <link>http://ajaxian.com/archives/dropboks-file-storage-on-one-page</link>\r
-               <comments>http://ajaxian.com/archives/dropboks-file-storage-on-one-page#comments</comments>\r
-               <pubDate>Fri, 24 Nov 2006 15:51:41 +0000</pubDate>\r
-               <dc:creator>Dion Almaer</dc:creator>\r
-               \r
-       <category>Front Page</category>\r
-       <category>Prototype</category>\r
-       <category>Showcase</category>\r
-               <guid>http://ajaxian.com/archives/dropboks-file-storage-on-one-page</guid>\r
-               <description><![CDATA[  Dropboks is a single page application build on Prototype and friends, that allows you to simply upload files for safe keeping.
-       The application is ad free, and survives on user donations. They do a good job at letting you use it pre-signup, and giving good info via tooltips.
-       
-
-]]></description>\r
-                       <content:encoded><![CDATA[      <p><a href="http://www.dropboks.com/">Dropboks</a> is a single page application build on Prototype and friends, that allows you to simply upload files for safe keeping.</p>
-       <p>The application is ad free, and survives on user donations. They do a good job at letting you use it pre-signup, and giving good info via tooltips.</p>
-       <p><a href="http://www.dropboks.com/"><img src="http://ajaxian.com/wp-content/images/dropboks.png" alt="Dropboks" border="0" width="491" height="447"/></a>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=7bnp189c"><img src="http://feeds.feedburner.com/~f/ajaxian?i=7bnp189c" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=IvtaWoMQ"><img src="http://feeds.feedburner.com/~f/ajaxian?i=IvtaWoMQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=b96Y4b2A"><img src="http://feeds.feedburner.com/~f/ajaxian?i=b96Y4b2A" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=ZVgVpc8A"><img src="http://feeds.feedburner.com/~f/ajaxian?i=ZVgVpc8A" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRSS>http://ajaxian.com/archives/dropboks-file-storage-on-one-page/feed/</wfw:commentRSS>\r
-       </item>\r
-               <item>\r
-               <title>Spelling Cow: JS Spell Checker</title>\r
-               <link>http://ajaxian.com/archives/spelling-cow-js-spell-checker</link>\r
-               <comments>http://ajaxian.com/archives/spelling-cow-js-spell-checker#comments</comments>\r
-               <pubDate>Fri, 24 Nov 2006 15:46:11 +0000</pubDate>\r
-               <dc:creator>Dion Almaer</dc:creator>\r
-               \r
-       <category>Front Page</category>\r
-               <guid>http://ajaxian.com/archives/spelling-cow-js-spell-checker</guid>\r
-               <description><![CDATA[  Spelling Cow allows you add a script tag, and spell check is enabled on your website. There are also some variables you can tweak too if advanced features are needed.
-       This means that you can add spell checking to your applications, but as the latest browsers have added inline spell check, is there use to it?
-       
-
-]]></description>\r
-                       <content:encoded><![CDATA[      <p><a href="http://www.spellingcow.com/">Spelling Cow</a> allows you add a script tag, and spell check is enabled on your website. There are also some variables you can tweak too if advanced features are needed.</p>
-       <p>This means that you can add spell checking to your applications, but as the latest browsers have added inline spell check, is there use to it?</p>
-       <p><a href="http://www.spellingcow.com/"><img src="http://ajaxian.com/wp-content/images/spellingcow.png" alt="Spelling Cow" border="0" width="438" height="213"/></a>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=dBmR5JBn"><img src="http://feeds.feedburner.com/~f/ajaxian?i=dBmR5JBn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=GL67PTiz"><img src="http://feeds.feedburner.com/~f/ajaxian?i=GL67PTiz" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=PM8SsmlP"><img src="http://feeds.feedburner.com/~f/ajaxian?i=PM8SsmlP" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=038oiFok"><img src="http://feeds.feedburner.com/~f/ajaxian?i=038oiFok" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRSS>http://ajaxian.com/archives/spelling-cow-js-spell-checker/feed/</wfw:commentRSS>\r
-       </item>\r
-               <item>\r
-               <title>CSS Tab Designer</title>\r
-               <link>http://ajaxian.com/archives/css-tab-designer</link>\r
-               <comments>http://ajaxian.com/archives/css-tab-designer#comments</comments>\r
-               <pubDate>Fri, 24 Nov 2006 15:40:05 +0000</pubDate>\r
-               <dc:creator>Dion Almaer</dc:creator>\r
-               \r
-       <category>Front Page</category>\r
-       <category>CSS</category>\r
-               <guid>http://ajaxian.com/archives/css-tab-designer</guid>\r
-               <description><![CDATA[  Now we are getting niche. A tool that lets you design CSS tabs:
-       With the CSS Tab Designer, you can: 
-       
-       Quickly design your list visually.
-       Choose from a variety of styles/colors (60+ different designs/colors supported).
-       Generate strict xhtml compliant code.
-       
-       
-
-]]></description>\r
-                       <content:encoded><![CDATA[      <p>Now we are getting niche. A tool that lets you <a href="http://www.highdots.com/css-tab-designer/">design CSS tabs</a>:</p>
-       <p>With the CSS Tab Designer, you can: </p>
-       <ul>
-       <li>Quickly design your list visually.</li>
-       <li>Choose from a variety of styles/colors (60+ different designs/colors supported).</li>
-       <li>Generate strict xhtml compliant code.</li>
-       </ul>
-       <p><a href="http://www.highdots.com/css-tab-designer/"><img src="http://www.highdots.com/static/css-list/images/vertical-tabs.png" border="0" /></a>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=J8dJMlWf"><img src="http://feeds.feedburner.com/~f/ajaxian?i=J8dJMlWf" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=3ahtUcPZ"><img src="http://feeds.feedburner.com/~f/ajaxian?i=3ahtUcPZ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=rLuj7mAO"><img src="http://feeds.feedburner.com/~f/ajaxian?i=rLuj7mAO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=S5YYTws3"><img src="http://feeds.feedburner.com/~f/ajaxian?i=S5YYTws3" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRSS>http://ajaxian.com/archives/css-tab-designer/feed/</wfw:commentRSS>\r
-       </item>\r
-               <item>\r
-               <title>Open-jACOB Draw2D</title>\r
-               <link>http://ajaxian.com/archives/open-jacob-draw2d</link>\r
-               <comments>http://ajaxian.com/archives/open-jacob-draw2d#comments</comments>\r
-               <pubDate>Thu, 23 Nov 2006 16:44:35 +0000</pubDate>\r
-               <dc:creator>Dion Almaer</dc:creator>\r
-               \r
-       <category>Front Page</category>\r
-       <category>JavaScript</category>\r
-       <category>Library</category>\r
-       <category>Showcase</category>\r
-               <guid>http://ajaxian.com/archives/open-jacob-draw2d</guid>\r
-               <description><![CDATA[  Open-jACOB Draw2D is a JavaScript library that allows you to create drawings and diagrams.
-       The User interface allows interactive drawing by using your standard browser.
-No additional software; no third party plug ins. Just run it and use it.
-       Open-jACOB Draw2D is the graph component of the Open-jACOB online
-Workflow editor. The purpose of this experiment is to see [...]]]></description>\r
-                       <content:encoded><![CDATA[      <p><a href="http://www.openjacob.org/draw2d.html">Open-jACOB Draw2D</a> is a JavaScript library that allows you to create drawings and diagrams.</p>
-       <p>The User interface allows interactive drawing by using your standard browser.<br />
-No additional software; no third party plug ins. Just run it and use it.</p>
-       <p>Open-jACOB Draw2D is the graph component of the Open-jACOB online<br />
-Workflow editor. The purpose of this experiment is to see if a Visio-type workflow<br />
-editor tool could be developed in a web browser - It is possible.</p>
-       <p>Check out an <a href="http://www.openjacob.org/draw2d/simple_interactive/index.html">interactive demo</a>.</p>
-       <p><a href="http://www.openjacob.org/draw2d.html"><img src="http://www.openjacob.org/images/draw2d/screen1.png" border="0" width="414" height="215" /></a>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=Yd5t6AMQ"><img src="http://feeds.feedburner.com/~f/ajaxian?i=Yd5t6AMQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=2P9Evaik"><img src="http://feeds.feedburner.com/~f/ajaxian?i=2P9Evaik" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=GexsRwE8"><img src="http://feeds.feedburner.com/~f/ajaxian?i=GexsRwE8" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=IySCRpjz"><img src="http://feeds.feedburner.com/~f/ajaxian?i=IySCRpjz" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRSS>http://ajaxian.com/archives/open-jacob-draw2d/feed/</wfw:commentRSS>\r
-       </item>\r
-               <item>\r
-               <title>Google Pages Adds Nice Image Editing</title>\r
-               <link>http://ajaxian.com/archives/google-pages-adds-nice-image-editing</link>\r
-               <comments>http://ajaxian.com/archives/google-pages-adds-nice-image-editing#comments</comments>\r
-               <pubDate>Thu, 23 Nov 2006 16:15:04 +0000</pubDate>\r
-               <dc:creator>Dion Almaer</dc:creator>\r
-               \r
-       <category>Front Page</category>\r
-       <category>JavaScript</category>\r
-       <category>Showcase</category>\r
-       <category>Google</category>\r
-       <category>UI</category>\r
-               <guid>http://ajaxian.com/archives/google-pages-adds-nice-image-editing</guid>\r
-               <description><![CDATA[  When I heard about JotSpot heading to the Googleplex I was excited to know that Abe Fettig (Jot) would be teaming up with the brains at Google Pages, and I can't wait to see what happens in the world of WYSIWYG editing tools.
-       Google Pages just released a few features, and one of them is an [...]]]></description>\r
-                       <content:encoded><![CDATA[      <p>When I heard about JotSpot heading to the Googleplex I was excited to know that Abe Fettig (Jot) would be teaming up with the brains at Google Pages, and I can't wait to see what happens in the world of WYSIWYG editing tools.</p>
-       <p><a href="http://pages.google.com/">Google Pages</a> just released a few features, and one of them is an improved process for working with images.</p>
-       <p>Firstly, the way you get photos up is simple and clean, but when when you have an image, you can click on it and you are shown a bunch of tools that allow you to manipulate the image inline, right there on the page.</p>
-       <p><a href="http://pages.google.com/"><img src="http://ajaxian.com/wp-content/images/googlepagesimageedit.png" alt="Google Pages Image Editing" border="0" width="428" height="418"/></a>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=ixQAR1Dv"><img src="http://feeds.feedburner.com/~f/ajaxian?i=ixQAR1Dv" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=i8aOiI8S"><img src="http://feeds.feedburner.com/~f/ajaxian?i=i8aOiI8S" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=P5vv2xOQ"><img src="http://feeds.feedburner.com/~f/ajaxian?i=P5vv2xOQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=L0n3Kku6"><img src="http://feeds.feedburner.com/~f/ajaxian?i=L0n3Kku6" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRSS>http://ajaxian.com/archives/google-pages-adds-nice-image-editing/feed/</wfw:commentRSS>\r
-       </item>\r
-               <item>\r
-               <title>qooxdoo 0.6.2 Released</title>\r
-               <link>http://ajaxian.com/archives/qooxdoo-062-released</link>\r
-               <comments>http://ajaxian.com/archives/qooxdoo-062-released#comments</comments>\r
-               <pubDate>Thu, 23 Nov 2006 15:39:07 +0000</pubDate>\r
-               <dc:creator>Dion Almaer</dc:creator>\r
-               \r
-       <category>Front Page</category>\r
-       <category>JavaScript</category>\r
-       <category>Library</category>\r
-               <guid>http://ajaxian.com/archives/qooxdoo-062-released</guid>\r
-               <description><![CDATA[  qooxdoo has a new release that adds support for Webkit.
-       
-As mentioned above and already announced in our developer blog, qooxdoo now includes support for WebKit. We expect to fully support the next major version Safari 3.0 which will be based on the current development of WebKit. There is only limited support for Safari in its [...]]]></description>\r
-                       <content:encoded><![CDATA[      <p><a href="http://news.qooxdoo.org/qooxdoo-062-released">qooxdoo has a new release that adds support for Webkit</a>.</p>
-       <blockquote><p>
-As mentioned above and already announced in our developer blog, qooxdoo now includes support for WebKit. We expect to fully support the next major version Safari 3.0 which will be based on the current development of WebKit. There is only limited support for Safari in its current version 2.0.4, though. Reason is, that Safari 2.0 still has many bugs that can hardly be worked around. Luckily, many of those bugs are already fixed in the nightly builds of WebKit. Besides the various bugs, Safari 2.0's JavaScript engine and its execution speed is not competitive with respect to the latest versions of the other major browsers (Firefox 2.0, IE7, Opera 9). Good news is, that the current builds of WebKit are tremendeously faster than Safari 2.0, approximately by a factor of 7-8 for a typical qooxdoo demo.
-</p></blockquote>
-       <p>Check out the <a href="http://qooxdoo.org/about/release_notes">release notes</a> for full details on changes in this release.</p>
-       <p>Some of them are:</p>
-       <ul>
-       <li>Made qooxdoo completely XHTML compatible. Replaced all uppercase tag names with their lowercase variant. </li>
-       <li>Improved NativeWindow to support the querying of the load state. Added events for “load” and “close”.</li>
-       <li>Modified XmlHttpRequest and related APIs to <a href="http://blogs.msdn.com/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx">respect the latest suggestions from Microsoft.</a></li>
-       <li>Added IframeManager to manage visible iframes in order to protect the application events of the “surrounding” document from getting interrupted while switching document context (particularly drag &#038; drop over embedded iframes)</li>
-       <li>Added Resizer widget to allow of customization regarding the dimensions of any widget by the user.</li>
-       </ul>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=tfn0qIAh"><img src="http://feeds.feedburner.com/~f/ajaxian?i=tfn0qIAh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=QJRQS3cR"><img src="http://feeds.feedburner.com/~f/ajaxian?i=QJRQS3cR" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=HSSmg2P1"><img src="http://feeds.feedburner.com/~f/ajaxian?i=HSSmg2P1" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=uSZsJs68"><img src="http://feeds.feedburner.com/~f/ajaxian?i=uSZsJs68" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRSS>http://ajaxian.com/archives/qooxdoo-062-released/feed/</wfw:commentRSS>\r
-       </item>\r
-               <item>\r
-               <title>Lollygag: Latest non-Atlas .NET Framework</title>\r
-               <link>http://ajaxian.com/archives/lollygag-latest-non-atlas-net-framework</link>\r
-               <comments>http://ajaxian.com/archives/lollygag-latest-non-atlas-net-framework#comments</comments>\r
-               <pubDate>Thu, 23 Nov 2006 14:00:50 +0000</pubDate>\r
-               <dc:creator>Dion Almaer</dc:creator>\r
-               \r
-       <category>Front Page</category>\r
-       <category>JavaScript</category>\r
-       <category>Library</category>\r
-       <category>Toolkit</category>\r
-       <category>.NET</category>\r
-               <guid>http://ajaxian.com/archives/lollygag-latest-non-atlas-net-framework</guid>\r
-               <description><![CDATA[  The Lollygag framework is a new Ajax framework for .NET.
-       As Steve the author put it:
-       
-We attended the first Ajax Experience conference in San Francisco and we got super excited about the potential for building Ajax applications. Since we have a Microsoft .NET background, we planned to start building Ajax applications using Microsoft’s Atlas framework. However, [...]]]></description>\r
-                       <content:encoded><![CDATA[      <p>The <a href="http://lollygagframework.com/">Lollygag framework</a> is a new Ajax framework for .NET.</p>
-       <p>As Steve the author put it:</p>
-       <blockquote><p>
-We attended the first Ajax Experience conference in San Francisco and we got super excited about the potential for building Ajax applications. Since we have a Microsoft .NET background, we planned to start building Ajax applications using Microsoft’s Atlas framework. However, we quickly encountered several serious issues with Atlas. Doing simple things in Atlas, such as database access and form validation, turned out to be really difficult. We were also disappointed to discover that Microsoft has no plans to support its client-side Atlas framework in the immediate future.</p>
-       <p>We built the Lollygag framework in order to build true Ajax applications in the .NET environment. We wanted to build single page Web applications that never perform postbacks. All updates are performed through Ajax calls to the web server.
-</p></blockquote>
-       <p><b>Features</b></p>
-       <ul>
-       <li>Powerful Widget Framework: The Lollygag framework includes a rich set of client-side widgets that you can use to display database data, perform form validation, and create rich animations. You declare widgets in a page in exactly the same way as you declare HTML tags.</li>
-       <li>Autocomplete Support: When you declare Lollygag widgets in a page, you get full autocomplete support while you type. To get autocomplete support, you must use an XML aware development environment such as Microsoft Visual Studio .NET.</li>
-       <li>Declarative Database Access: Accessing database data with the Lollygag framework is easy. You can bind client-side widgets directly to data exposed by a database or you can bind widgets to data exposed by a business object.</li>
-       <li>Secure Form Validation: When taking advantage of the Lollygag framework, you specify how a form field is validated only once. The validation is automatically applied on both the server and the client. Unlike other frameworks that only provide validation on the client, the Lollygag framework prevents malicious users from bypassing client-side validation and submitting data directly to the server.</li>
-       <li>Rich Animation Framework: Lollygag includes an entire animation framework. You can take advantage of animations to create different effects such as fades and wipes.</li>
-       <li>Cross-Browser Support: The full Lollygag framework works on the latest versions of Internet Explorer, Firefox, Safari, and Opera.</li>
-       <li>Automatic JavaScript Compression: The Lollygag framework compresses all JavaScript sent to the browser automatically. Any custom JavaScript code that you write as a developer is also compressed automatically.</li>
-       <li>Powered by .NET: The server-side portion of Lollygag is built on the Microsoft .NET 2.0 Framework. You can build server-side business objects using standard .NET languages such as C# and VB.NET. Lollygag client-side widgets can consume data exposed through server-side objects.</li>
-       </ul>
-       <p><b>Hello World</b></p>
-       <div class="syntax_hilite">
-<div id="xml-14">
-       <div class="xml">
-<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;</span>?xml <span style="color: #000066;">version</span>=<span style="color: #ff0000;">"1.0"</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">"utf-8"</span> ?<span style="font-weight: bold; color: black;">&gt;</span></span><br />
-<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;</span>?xml-stylesheet <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"text/xsl"</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">"/lollygagSite/lollygagframework/0_1/lollygag.xsl"</span>?<span style="font-weight: bold; color: black;">&gt;</span></span><br />
-<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;lolly</span> :application <span style="color: #000066;">title</span>=<span style="color: #ff0000;">"Hello World"</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;">"http://www.w3.org/1999/xhtml"</span> xmlns:<span style="color: #000066;">lolly</span>=<span style="color: #ff0000;">"http://lollygagframework.com/core"</span><span style="font-weight: bold; color: black;">&gt;</span></span><br />
-&nbsp; <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;lolly</span> :button <span style="color: #000066;">id</span>=<span style="color: #ff0000;">"btnSumit"</span> <span style="color: #000066;">label</span>=<span style="color: #ff0000;">"Click Here!"</span> <span style="color: #000066;">onClick</span>=<span style="color: #ff0000;">"alert('Hello!')"</span> <span style="font-weight: bold; color: black;">/&gt;</span></span><br />
-<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/lolly<span style="font-weight: bold; color: black;">&gt;</span></span></span><br />
-&nbsp;</div>
-       </div>
-</div>
-       <p><b>Resources</b></p>
-       <p>How does it compare to Atlas? <a href="http://lollygagframework.com/Articles/LollygagVersusAtlas/Default.htm">Read their thoughts on the matter</a>.</p>
-       <p><a href="http://lollygagframework.com/Demos/default.htm">Demos</a></p>
-       <p><a href="http://lollygagframework.com/SampleApplications/Forums/forums.xml">Sample Application</a>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=2QC8qukU"><img src="http://feeds.feedburner.com/~f/ajaxian?i=2QC8qukU" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=lsoztS0a"><img src="http://feeds.feedburner.com/~f/ajaxian?i=lsoztS0a" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=WuuxjGjM"><img src="http://feeds.feedburner.com/~f/ajaxian?i=WuuxjGjM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=M7Gaypk4"><img src="http://feeds.feedburner.com/~f/ajaxian?i=M7Gaypk4" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRSS>http://ajaxian.com/archives/lollygag-latest-non-atlas-net-framework/feed/</wfw:commentRSS>\r
-       </item>\r
-               <item>\r
-               <title>Google Book Search gets an Ajax upgrade</title>\r
-               <link>http://ajaxian.com/archives/google-book-search-gets-an-ajax-upgrade</link>\r
-               <comments>http://ajaxian.com/archives/google-book-search-gets-an-ajax-upgrade#comments</comments>\r
-               <pubDate>Thu, 23 Nov 2006 00:03:44 +0000</pubDate>\r
-               <dc:creator>Dion Almaer</dc:creator>\r
-               \r
-       <category>Front Page</category>\r
-       <category>Showcase</category>\r
-       <category>Google</category>\r
-               <guid>http://ajaxian.com/archives/google-book-search-gets-an-ajax-upgrade</guid>\r
-               <description><![CDATA[  Nathan Naze and his team at Google have upgraded Google Books:
-       
-       
-Zoom in on text and images. Here's a cool full-page sketch of a ship from an 1898 book on steam navigation. Looking for something less dated? Perhaps this colorful page of a room from a book on interior design. Want a better look? You can [...]]]></description>\r
-                       <content:encoded><![CDATA[      <p>Nathan Naze and his team at Google have upgraded <a href="http://books.google.com/">Google Books</a>:</p>
-       <blockquote>
-       <ul>
-<li><strong>Zoom in on text and images.</strong> Here's <a href="http://books.google.com/books?vid=HARVARD:32044020180790&#038;id=7X-I9105PAkC&#038;pg=PA109#PRA2-PA109,M1">a cool full-page sketch of a ship</a> from an 1898 book on <a href="http://books.google.com/books?vid=HARVARD:32044020180790&amp;id=7X-I9105PAkC">steam navigation</a>. Looking for something less dated? Perhaps this <a href="http://books.google.com/books?vid=ISBN1564969584&#038;id=F68COamQRH0C&#038;pg=PA25&#038;lpg=PA25&#038;sig=8k-utjCZ5wwUmWMPlMLIaDjJ4Ig#PPA25,M1">colorful page of a room</a> from <a href="http://books.google.com/books?vid=ISBN1564969584&#038;id=F68COamQRH0C">a book on interior design</a>. Want a better look? You can now zoom in and out &#8212; just click on the <img src="http://photos1.blogger.com/blogger/2855/3883/1600/plus.gif" style="padding: 0px; border: 0px" alt="zoom in" border="0" height="14" width="14"/> and <img alt="zoom out" src="http://photos1.blogger.com/blogger/2855/3883/1600/minus.gif" style="padding: 0px; border: 0px" border="0" height="14" width="14"/> buttons. Play with it until you find a size you like.</li>
-
-<li><strong>One book, one web page.</strong> No more reloads! In one-page mode (just click the <img alt="one page" src="http://photos1.blogger.com/blogger/2855/3883/1600/onepage.gif" style="padding: 0px; border: 0px" border="0" height="14" width="9"/> button), pages appear one below the other, like a scroll of paper. For <a href="http://books.google.com/googlebooks/screenshots.html#fullview">full-view</a> books, there's also a two-page mode (<img alt="two page button" src="http://photos1.blogger.com/blogger/2855/3883/1600/twopage2.gif" style="padding: 0px; border: 0px" border="0" height="14" width="19"/>) in which pages appear side by side, just like in a physical book (perfect for <a href="http://books.google.com/books?vid=ISBN9064503125&#038;id=NkST-eA7uicC&#038;pg=RA12-PA110&#038;lpg=RA12-PA110&#038;sig=oP4PLDRpPGpbo6jBg1qpzOoksjc#PPA51,M2">two-page images</a>). In both modes, you'll be able to use <img src="http://books.google.com/googlebooks/page_nav_previous.gif" style="padding: 0px; border: 0px" alt="previous page button" border="0" height="19" width="19"/> and <img src="http://books.google.com/googlebooks/page_nav_next.gif" style="padding: 0px; border: 0px" alt="next page button" border="0" height="19" width="19"/> to turn pages.</li>
-
-<li><strong>Scroll, scroll, scroll your book&#8230;</strong> using the scrollbar or your mouse wheel, or by dragging (in most browsers, you'll see a <img src="http://photos1.blogger.com/blogger/2855/3883/1600/hand2.gif" style="padding: 0px; border: 0px" border="0" height="16" width="17" alt="hand"/>). You can also use the keyboard (try the spacebar, page up, page down, and the arrow keys). Or you can click on a link in the table of contents or your search results to jump right to that page (like <a href="http://books.google.com/books?vid=OCLC01581436&amp;id=EM6nHWWQ3TIC&amp;pg=PP10">this photo</a> from the 1906 book <a href="http://books.google.com/books?vid=OCLC01581436&amp;id=EM6nHWWQ3TIC"><em>Geronimo's Story of His Life</em></a>).</li>
-
-<li><strong>This page was made for reading.</strong> We've tried to tidy up the clutter to leave as much room as possible for what's important &#8212; the book. We've put all the information about the book in a scrollable side menu. Still not enough room? You can put the screen in fullscreen mode with <img src="http://books.google.com/googlebooks/images/fullscreen.gif" style="padding: 0px; border: 0px" alt="fullscreen button" border="0" height="15" width="17"/>, so you can use the whole window for browsing. Try it with a nice illustrated book of <a href="http://books.google.com/books?vid=NYPL:33433068198005&#038;id=MPDMpD2w_2gC&#038;pg=PA65#PPP18,M2">Celtic fairy tales</a> or, for some lighter reading, <a href="http://books.google.com/books?vid=ISBN3540212663&amp;id=5FZBS0JH9lkC&amp;pg=PP1&amp;lpg=PP1&amp;ots=uNqKSoMhkt&amp;&amp;sig=MjS0J55JV4LYrKN7z_RvUf-sEx4#PPA49,M1">electromagnetic wave theory</a>.</li>
-       </ul>
-       </blockquote>
-       <p>There are keystrokes here too, such as hitting space to scroll down (moving down smoothly). It is nice to see more and more unification to Google apps these days. When you use Reader it feels like Mail, etc.</p>
-       <p>One question is, where are the GWT apps? :)</p>
-       <p><a href="http://books.google.com/"><img src="http://ajaxian.com/wp-content/images/googlebooksearch.png" alt="Google Book Search" border="0" width="580" height="391"/></a>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/ajaxian?a=kpBF2m8t"><img src="http://feeds.feedburner.com/~f/ajaxian?i=kpBF2m8t" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=KWMuT6ZN"><img src="http://feeds.feedburner.com/~f/ajaxian?i=KWMuT6ZN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=5HzTTFHS"><img src="http://feeds.feedburner.com/~f/ajaxian?i=5HzTTFHS" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/ajaxian?a=eLs8y2a1"><img src="http://feeds.feedburner.com/~f/ajaxian?i=eLs8y2a1" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRSS>http://ajaxian.com/archives/google-book-search-gets-an-ajax-upgrade/feed/</wfw:commentRSS>\r
-       </item>\r
-       </channel>\r
-</rss>\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/feeds/febo-feeds.opml.xml b/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/feeds/febo-feeds.opml.xml
deleted file mode 100644 (file)
index 633e184..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-<opml version="1.0">
-  <head>
-    <title>Thunderbird OPML-Export</title>
-    <dateCreated>Fri, 08 Dec 2006 12:00:29 GMT</dateCreated>
-  </head>
-  <body>
-    <outline title="AJAX Matters Blog" text="AJAX Matters Blog" type="rss" version="RSS" xmlUrl="http://www.ajaxmatters.com/blog/feed/atom/" htmlUrl="http://www.ajaxmatters.com/blog"/>
-    <outline title="Ajaxian" text="Ajaxian" type="rss" version="RSS" xmlUrl="http://feeds.feedburner.com/ajaxian" htmlUrl="http://ajaxian.com"/>
-    <outline title="Coding In Paradise" text="Coding In Paradise" type="rss" version="RSS" xmlUrl="http://www.codinginparadise.org/weblog/atom.xml" htmlUrl="http://codinginparadise.org/weblog/"/>
-    <outline title="dojo.foo" text="dojo.foo" type="rss" version="RSS" xmlUrl="http://blog.dojotoolkit.org/feed" htmlUrl="http://blog.dojotoolkit.org"/>
-    <outline title="Firebug" text="Firebug" type="rss" version="RSS" xmlUrl="http://www.getfirebug.com/blog/?feed=rss2" htmlUrl="http://www.getfirebug.com/blog"/>
-    <outline title="from __future__ import *" text="from __future__ import *" type="rss" version="RSS" xmlUrl="http://bob.pythonmac.org/feed/atom/" htmlUrl="http://bob.pythonmac.org"/>
-    <outline title="Google Web Toolkit Blog" text="Google Web Toolkit Blog" type="rss" version="RSS" xmlUrl="http://googlewebtoolkit.blogspot.com/atom.xml" htmlUrl="http://googlewebtoolkit.blogspot.com"/>
-    <outline title="Jack Slocum's Blog" text="Jack Slocum's Blog" type="rss" version="RSS" xmlUrl="http://www.jackslocum.com/blog/feed/" htmlUrl="http://www.jackslocum.com/blog"/>
-    <outline title="JSR 168, WSRP, Portlets &amp; Enterprise Portal" text="JSR 168, WSRP, Portlets &amp; Enterprise Portal" type="rss" version="RSS" xmlUrl="http://portlets.blogspot.com/atom.xml" htmlUrl="http://portlets.blogspot.com"/>
-    <outline title="Monologue" text="Monologue" type="rss" version="RSS" xmlUrl="http://www.go-mono.com/monologue/index.rss" htmlUrl="http://www.go-mono.com/monologue/"/>
-    <outline title="OSNews" text="OSNews" type="rss" version="RSS" xmlUrl="http://osnews.com/files/recent.rdf" htmlUrl="http://www.osnews.com/"/>
-    <outline title="qooxdoo" text="qooxdoo" type="rss" version="RSS" xmlUrl="http://feeds.feedburner.com/qooxdoo/blog/content" htmlUrl="http://blog.qooxdoo.org"/>
-    <outline title="qooxdoo" text="qooxdoo" type="rss" version="RSS" xmlUrl="http://feeds.feedburner.com/qooxdoo/news/content" htmlUrl="http://news.qooxdoo.org"/>
-    <outline title="subbu.org" text="subbu.org" type="rss" version="RSS" xmlUrl="http://feeds.feedburner.com/SubbuDotOrg" htmlUrl="http://www.subbu.org/"/>
-    <outline title="Surfin' Safari" text="Surfin' Safari" type="rss" version="RSS" xmlUrl="http://webkit.org/blog/?feed=rss2" htmlUrl="http://webkit.org/blog"/>
-    <outline title="Thomas Much's Weblog" text="Thomas Much's Weblog" type="rss" version="RSS" xmlUrl="http://www.snailshell.de/blog/rss.xml" htmlUrl="http://www.snailshell.de/blog/index.html"/>
-    <outline title="UXmatters" text="UXmatters" type="rss" version="RSS" xmlUrl="http://www.uxmatters.com/atom.xml" htmlUrl="http://dev.uxmatters.com/"/>
-    <outline title="WebKit" text="WebKit" type="rss" version="RSS" xmlUrl="http://cia.navi.cx/stats/project/WebKit/.rss" htmlUrl="http://webkit.org"/>
-    <outline title="webmagics" text="webmagics" type="rss" version="RSS" xmlUrl="http://feeds.feedburner.com/webmagics" htmlUrl="http://journal.webmagics.net/"/>
-    <outline title="Yahoo! User Interface Blog" text="Yahoo! User Interface Blog" type="rss" version="RSS" xmlUrl="http://feeds.yuiblog.com/YahooUserInterfaceBlog" htmlUrl="http://yuiblog.com/blog"/>
-    <outline title="Zimbra - Blog" text="Zimbra - Blog" type="rss" version="RSS" xmlUrl="http://www.zimbra.com/blog/atom.xml" htmlUrl="http://www.zimbra.com/blog/"/>
-  </body>
-</opml>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/feeds/qooxdoo-blog.xml b/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/feeds/qooxdoo-blog.xml
deleted file mode 100644 (file)
index 241d450..0000000
+++ /dev/null
@@ -1,278 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><!-- generator="wordpress/2.0.5" --><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">\r
-\r
-<channel>\r
-       <title>qooxdoo Blog</title>\r
-       <link>http://blog.qooxdoo.org</link>\r
-       <description>The blog of the qooxdoo developers</description>\r
-       <pubDate>Sun, 26 Nov 2006 15:53:14 +0000</pubDate>\r
-       <generator>http://wordpress.org/?v=2.0.5</generator>\r
-       <language>en</language>\r
-                       <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/qooxdoo/blog/content" type="application/rss+xml" /><feedburner:emailServiceId>384287</feedburner:emailServiceId><item>\r
-               <title>Safari support for qooxdoo coming</title>\r
-               <link>http://feeds.feedburner.com/~r/qooxdoo/blog/content/~3/48836959/safari-support-for-qooxdoo-coming</link>\r
-               <comments>http://blog.qooxdoo.org/safari-support-for-qooxdoo-coming#comments</comments>\r
-               <pubDate>Mon, 13 Nov 2006 14:46:19 +0000</pubDate>\r
-               <dc:creator>Fabian Jakobs</dc:creator>\r
-               \r
-               <category>Announcements</category>\r
-\r
-               <category>Safari</category>\r
-\r
-               <category>Technical</category>\r
-\r
-               <guid isPermaLink="false">http://blog.qooxdoo.org/safari-support-for-qooxdoo-coming</guid>\r
-               <description><![CDATA[Safari support for qooxdoo is coming along nicely. qooxdoo support for the nightly build of WebKit is near to complete. Most demos and examples are working, including the API viewer . The screenshot shows the &#8220;At a Glance&#8221; example running in WebKit. Safari 2.0.4 shipped with the current OS X 10.4 is usable but still [...]]]></description>\r
-                       <content:encoded><![CDATA[<p>Safari support for qooxdoo is coming along nicely. qooxdoo support for the nightly build of <a href="http://nightly.webkit.org" title="WebKit">WebKit</a> is near to complete. Most demos and examples are working, including the <a href="http://api.qooxdoo.org/">API viewer</a> . The screenshot shows the &ldquo;<a href="http://demo.qooxdoo.org/html/at-a-glance/index.html">At a Glance</a>&rdquo; example running in WebKit. Safari 2.0.4 shipped with the current OS X 10.4 is usable but still has some rendering issues.</p>
-<div><a href="http://blog.qooxdoo.org/wp-content/uploads/2006/11/webkit-at_a_glance.jpg" title="WebKit - &quot;At a Glance&quot; example"><img src="http://blog.qooxdoo.org/wp-content/uploads/2006/11/webkit-at_a_glance.thumbnail.jpg" alt="WebKit - &quot;At a Glance&quot; example" /></a> <a href="http://blog.qooxdoo.org/wp-content/uploads/2006/11/webkit-api_viewer.jpg" title="WebKit - API viewer"><img src="http://blog.qooxdoo.org/wp-content/uploads/2006/11/webkit-api_viewer.thumbnail.jpg" alt="WebKit - API viewer" /></a></div>
-<p>For the next qooxdoo release we plan to fully support WebKit, which hopefully builds the basis for the next major release of Safari shipped with the upcoming OS X 10.5. We decided to target WebKit because of its improved standard support and its dramatically faster JavaScript engine. Some qooxdoo examples are up to seven times faster using WebKit compared to Safari 2. Even if we would fully support Safari 2, it will never be a good platform for big JavaScript applications.</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=rgDIT7iC"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=rgDIT7iC" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=jZaVEgHu"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=jZaVEgHu" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=Kni66m1x"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=Kni66m1x" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=OdCjYPt3"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=OdCjYPt3" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=zlqmlozO"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=zlqmlozO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=3F9MjAuf"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=3F9MjAuf" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=LPVxsJLI"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=LPVxsJLI" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=wCgbZ6gf"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=wCgbZ6gf" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRss>http://blog.qooxdoo.org/safari-support-for-qooxdoo-coming/feed/</wfw:commentRss>\r
-               <feedburner:origLink>http://blog.qooxdoo.org/safari-support-for-qooxdoo-coming</feedburner:origLink></item>\r
-               <item>\r
-               <title>Tamarin Follow-ups</title>\r
-               <link>http://feeds.feedburner.com/~r/qooxdoo/blog/content/~3/46350978/tamarin-follow-ups</link>\r
-               <comments>http://blog.qooxdoo.org/tamarin-follow-ups#comments</comments>\r
-               <pubDate>Tue, 07 Nov 2006 21:53:17 +0000</pubDate>\r
-               <dc:creator>Sebastian Werner</dc:creator>\r
-               \r
-               <category>Firefox</category>\r
-\r
-               <category>Performance</category>\r
-\r
-               <category>Adobe</category>\r
-\r
-               <guid isPermaLink="false">http://blog.qooxdoo.org/tamarin-follow-ups</guid>\r
-               <description><![CDATA[                    
-I have just found some more interesting stuff regarding our Tamarin post today:&#160;
-
-Inside Tamarin - Adobe&#8217;s Open Source Flash VM
-JD on EP 
-Adobe press release
-Mozilla press release 
-Digg frontpage
-
-  
-
-]]></description>\r
-                       <content:encoded><![CDATA[<p><?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head>                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body>
-<p>I have just found some more interesting stuff regarding our Tamarin post today:&nbsp;</p>
-<ul>
-<li><a href="http://www.satine.org/archives/2006/11/06/inside-tamarin-adobes-open-source-flash-vm/">Inside Tamarin - Adobe&rsquo;s Open Source Flash VM</a></li>
-<li><a href="http://weblogs.macromedia.com/jd/archives/2006/11/tamarin_project.cfm">JD on EP</a> </li>
-<li><a href="http://www.mozilla.com/en-US/press/mozilla-2006-11-07.html">Adobe press release</a></li>
-<li><a href="http://www.mozilla.com/en-US/press/mozilla-2006-11-07.html">Mozilla press release</a> </li>
-<li><a href="http://digg.com/tech_news/Adobe_and_Mozilla_Foundation_to_Open_Source_Flash_Player_Scripting_Engine">Digg frontpage</a></li>
-</ul>
-<p> </body> </html>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=q9EAMSac"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=q9EAMSac" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=wzDEJbB5"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=wzDEJbB5" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=yiNGdYRa"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=yiNGdYRa" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=OhkFuOKM"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=OhkFuOKM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=B6t2zevO"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=B6t2zevO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=Q0RQVLHL"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=Q0RQVLHL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=FPcP7kjS"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=FPcP7kjS" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=ysJCQQQ4"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=ysJCQQQ4" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRss>http://blog.qooxdoo.org/tamarin-follow-ups/feed/</wfw:commentRss>\r
-               <feedburner:origLink>http://blog.qooxdoo.org/tamarin-follow-ups</feedburner:origLink></item>\r
-               <item>\r
-               <title>Project Tamarin to boost JavaScript</title>\r
-               <link>http://feeds.feedburner.com/~r/qooxdoo/blog/content/~3/46219737/project-tamarin-to-boost-javascript</link>\r
-               <comments>http://blog.qooxdoo.org/project-tamarin-to-boost-javascript#comments</comments>\r
-               <pubDate>Tue, 07 Nov 2006 12:55:22 +0000</pubDate>\r
-               <dc:creator>Andreas Ecker</dc:creator>\r
-               \r
-               <category>Firefox</category>\r
-\r
-               <category>Performance</category>\r
-\r
-               <category>Adobe</category>\r
-\r
-               <guid isPermaLink="false">http://blog.qooxdoo.org/project-tamarin-to-boost-javascript</guid>\r
-               <description><![CDATA[                    
-Good news, everyone!&#160;
-Recently we have been puzzled by some statements of Brendan Eich, the creator of the JavaScript programming language.
-In Brendan&#39;s blog he wrote &#34;For Mozilla 2, we will have a JIT-oriented JavaScript VM (details soon) that supports the forthcoming ECMAScript Edition 4 (&#34;JS2&#34;) language&#34; (October 13, 2006). [...]]]></description>\r
-                       <content:encoded><![CDATA[<p><?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head>                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body>
-<p>Good news, everyone!&nbsp;</p>
-<p>Recently we have been puzzled by some statements of Brendan Eich, the creator of the JavaScript programming language.</p>
-<p>In Brendan&#39;s blog he wrote &quot;For Mozilla 2, we will have a JIT-oriented JavaScript VM (details soon) that supports the forthcoming ECMAScript Edition 4 (&quot;JS2&quot;) language&quot; (<a href="http://weblogs.mozillazine.org/roadmap/archives/2006/10/mozilla_2.html">October 13, 2006</a>). Well, could hardly wait for any details. Another statement that made us curious was at The Ajax Experience this fall. In his slides about JavaScript 2.0  he mentioned&nbsp; &quot;Open source optimizing VMs coming soon. Look for an announcement in a few weeks&quot; (<a href="http://ajaxian.com/downloads/presentations/eich-ajax-experience-boston/">October 25, 2006</a>). Interestingly, this mysterious announcement was in a section he called &quot;JavaScript Fun Facts&quot;.</p>
-<p>Well done Brendan, you are our Master of Suspense! Finally, as a revelation today came <a href="http://blog.qooxdoo.org/adobe-improves-javascript-performance">the announcement that is going to boost JavaScript</a>. Congratulations to Adobe for their decision of contributing the ActionScript Virtual Machine (AVM) as open source to the Mozilla project. And a warm open-source welcome to all the developers of the AVM! The code has <a href="http://weblogs.mozillazine.org/roadmap/archives/2006/11/project_tamarin.html">just been committed</a>  into the Mozilla repository.</p>
-<p>This is great news for qooxdoo being a client-side JavaScript framework. Performance has always been one of our major concerns, and we think we have pushed the limit for JavaScript based web applications, e.g. for qooxdoo&#39;s powerful browser-independent layout engine. Can&#39;t wait to tweak the last bit of performance out of any new Mozilla browser backed by the new JavaScript VM. This is going to change the future of browser-based applications. Cheers!</p>
-<p> </body> </html>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=USVMighM"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=USVMighM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=w54mM05O"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=w54mM05O" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=l0FOLc3Z"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=l0FOLc3Z" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=UjEK9OXh"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=UjEK9OXh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=hSi2ujP0"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=hSi2ujP0" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=huRmnKOf"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=huRmnKOf" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=aLB65Efe"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=aLB65Efe" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=RfSxRPZF"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=RfSxRPZF" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRss>http://blog.qooxdoo.org/project-tamarin-to-boost-javascript/feed/</wfw:commentRss>\r
-               <feedburner:origLink>http://blog.qooxdoo.org/project-tamarin-to-boost-javascript</feedburner:origLink></item>\r
-               <item>\r
-               <title>Adobe improves JavaScript performance</title>\r
-               <link>http://feeds.feedburner.com/~r/qooxdoo/blog/content/~3/46178140/adobe-improves-javascript-performance</link>\r
-               <comments>http://blog.qooxdoo.org/adobe-improves-javascript-performance#comments</comments>\r
-               <pubDate>Tue, 07 Nov 2006 12:01:29 +0000</pubDate>\r
-               <dc:creator>Sebastian Werner</dc:creator>\r
-               \r
-               <category>Firefox</category>\r
-\r
-               <category>Flash</category>\r
-\r
-               <category>Adobe</category>\r
-\r
-               <guid isPermaLink="false">http://blog.qooxdoo.org/adobe-improves-javascript-performance</guid>\r
-               <description><![CDATA[                    
-In my opinion there was never a reason why JavaScript should be slower than other typical script languages e.g. Python, Perl, Ruby, &#8230; With the newest committment from Abobe to Mozilla we could reach a new level of performance in web applications.&#160;
-As news.com reports &#34;Adobe will provide the [...]]]></description>\r
-                       <content:encoded><![CDATA[<p><?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head>                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body>
-<p>In my opinion there was never a reason why JavaScript should be slower than other typical script languages e.g. Python, Perl, Ruby, &#8230; With the newest committment from Abobe to Mozilla we could reach a new level of performance in web applications.&nbsp;</p>
-<p>As news.com reports &quot;Adobe will provide the same software, called the ActionScript Virtual Machine, which it uses to run script code in the <a href="http://news.com.com/Adobe+updates+Flash+Player%2C+Flex+tool/2100-1012_3-6088705.html?tag=nl" title="Adobe updates Flash Player, Flex tool -- Tuesday, Jun 27, 2006">Adobe Flash Player 9</a>.  This virtual machine is expected to be built into future versions of the Firefox browser by the first half of 2008, said <a href="http://www.hecker.org/info/bio?tag=nl">Frank Hecker</a>, the executive director of the <a href="http://www.mozilla.org/foundation/?tag=nl">Mozilla Foundation</a>.&quot; </p>
-<p>Via <a href="http://news.com.com/2100-7344_3-6133052.html">news.com</a></p>
-<p> </body> </html>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=bVlh8s4Z"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=bVlh8s4Z" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=T4rDBMyi"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=T4rDBMyi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=IjP7zAmO"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=IjP7zAmO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=JuQT2l0H"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=JuQT2l0H" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=SDqAETvO"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=SDqAETvO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=HCWVQRJl"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=HCWVQRJl" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=bHmzAB8O"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=bHmzAB8O" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=iApj6TU3"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=iApj6TU3" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRss>http://blog.qooxdoo.org/adobe-improves-javascript-performance/feed/</wfw:commentRss>\r
-               <feedburner:origLink>http://blog.qooxdoo.org/adobe-improves-javascript-performance</feedburner:origLink></item>\r
-               <item>\r
-               <title>Keep yourself up-to-date</title>\r
-               <link>http://feeds.feedburner.com/~r/qooxdoo/blog/content/~3/37261107/keep-yourself-up-to-date</link>\r
-               <comments>http://blog.qooxdoo.org/keep-yourself-up-to-date#comments</comments>\r
-               <pubDate>Sat, 14 Oct 2006 21:41:08 +0000</pubDate>\r
-               <dc:creator>Sebastian Werner</dc:creator>\r
-               \r
-               <category>Development</category>\r
-\r
-               <guid isPermaLink="false">http://blog.qooxdoo.org/keep-yourself-up-to-date</guid>\r
-               <description><![CDATA[                    There is a new feed  available on our homepage. You can now easily follow the development in our SVN repository. Hope you like this. Especially interesting for users who want to be up-to-date. Also a nice alternative to our qooxdoo-commit mailing list.  
-
-]]></description>\r
-                       <content:encoded><![CDATA[<p><?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head>                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body>There is a <a href="http://feeds.feedburner.com/qooxdoo/svn/commits">new feed</a>  available on <a href="http://qooxdoo.org">our homepage</a>. You can now easily follow the development in our SVN repository. Hope you like this. Especially interesting for users who want to be up-to-date. Also a nice alternative to our <a href="http://lists.sourceforge.net/mailman/listinfo/qooxdoo-commit">qooxdoo-commit mailing list</a>. </body> </html>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=ufmev5Dk"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=ufmev5Dk" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=4EgKz1gp"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=4EgKz1gp" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=SKoJto7H"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=SKoJto7H" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=WTdFl3yy"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=WTdFl3yy" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=ZPm4BqBx"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=ZPm4BqBx" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=7dz9P0xU"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=7dz9P0xU" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=qABtQjRx"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=qABtQjRx" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=3FQ8FBbL"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=3FQ8FBbL" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRss>http://blog.qooxdoo.org/keep-yourself-up-to-date/feed/</wfw:commentRss>\r
-               <feedburner:origLink>http://blog.qooxdoo.org/keep-yourself-up-to-date</feedburner:origLink></item>\r
-               <item>\r
-               <title>Only five days to IE7</title>\r
-               <link>http://feeds.feedburner.com/~r/qooxdoo/blog/content/~3/36678532/5-days-to-ie7</link>\r
-               <comments>http://blog.qooxdoo.org/5-days-to-ie7#comments</comments>\r
-               <pubDate>Fri, 13 Oct 2006 08:42:36 +0000</pubDate>\r
-               <dc:creator>Sebastian Werner</dc:creator>\r
-               \r
-               <category>Internet Explorer</category>\r
-\r
-               <guid isPermaLink="false">http://blog.qooxdoo.org/5-days-to-ie7</guid>\r
-               <description><![CDATA[                    Following a report  of Microsoft Higher Education - Mid-Atlantic  it seems that IE7 will be released on the 18th this month. In just 5 days. The most changes are only interesting for typical web developers (e.g. CSS fixes) while the latest improvements to the JavaScript engine [...]]]></description>\r
-                       <content:encoded><![CDATA[<p><?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head>                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body>Following <a href="http://blogs.msdn.com/hied_mid-atlantic/archive/2006/10/10/Internet-Explorer-7-is-coming-this-month-_2E002E002E00_-Are-you-ready_3F00_.aspx">a report</a>  of <a href="http://blogs.msdn.com/hied_mid-atlantic/default.aspx">Microsoft Higher Education - Mid-Atlantic</a>  it seems that <a href="http://blogs.msdn.com/hied_mid-atlantic/archive/2006/10/10/Internet-Explorer-7-is-coming-this-month-_2E002E002E00_-Are-you-ready_3F00_.aspx">IE7 will be released on the 18th this month</a>. In just 5 days. The most changes are only interesting for typical web developers (e.g. CSS fixes) while the <a href="http://blog.qooxdoo.org/dramatically-improved-ie7-javascript-performance">latest improvements to the JavaScript engine</a>  are also an interesting point for us and other big JavaScript frameworks. I hope we will see a market share of 50 percent after the first six months. </body> </html>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=6KCHC8Qt"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=6KCHC8Qt" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=znn30SWW"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=znn30SWW" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=iDMgk0h2"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=iDMgk0h2" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=tH88lPZg"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=tH88lPZg" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=0u2q8HcY"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=0u2q8HcY" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=C8h6ZyP0"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=C8h6ZyP0" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=p7GgwlgK"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=p7GgwlgK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=8AEwoRbb"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=8AEwoRbb" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRss>http://blog.qooxdoo.org/5-days-to-ie7/feed/</wfw:commentRss>\r
-               <feedburner:origLink>http://blog.qooxdoo.org/5-days-to-ie7</feedburner:origLink></item>\r
-               <item>\r
-               <title>IE7 CSS changes</title>\r
-               <link>http://feeds.feedburner.com/~r/qooxdoo/blog/content/~3/32468983/ie7-css-changes</link>\r
-               <comments>http://blog.qooxdoo.org/ie7-css-changes#comments</comments>\r
-               <pubDate>Wed, 04 Oct 2006 20:04:27 +0000</pubDate>\r
-               <dc:creator>Sebastian Werner</dc:creator>\r
-               \r
-               <category>Bookmark</category>\r
-\r
-               <guid isPermaLink="false">http://blog.qooxdoo.org/ie7-css-changes</guid>\r
-               <description><![CDATA[                     An interesting read for all web developers: Cascading Style Sheet Compatibility in Internet Explorer 7.  
-
-]]></description>\r
-                       <content:encoded><![CDATA[<p><?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head>                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> An interesting read for all web developers: <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/IETechCol/cols/dnexpie/ie7_css_compat.asp?frame=true">Cascading Style Sheet Compatibility in Internet Explorer 7.</a><br /> </body> </html>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=l0NmonZB"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=l0NmonZB" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=R0iSOfdT"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=R0iSOfdT" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=oEqiKUKM"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=oEqiKUKM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=1VRsHJUp"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=1VRsHJUp" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=6TsnDDrP"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=6TsnDDrP" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=3JFLZ0Cf"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=3JFLZ0Cf" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=QuSZgCNp"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=QuSZgCNp" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=Y8oWww1z"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=Y8oWww1z" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRss>http://blog.qooxdoo.org/ie7-css-changes/feed/</wfw:commentRss>\r
-               <feedburner:origLink>http://blog.qooxdoo.org/ie7-css-changes</feedburner:origLink></item>\r
-               <item>\r
-               <title>Support for compression of local variables added</title>\r
-               <link>http://feeds.feedburner.com/~r/qooxdoo/blog/content/~3/32241766/support-for-compression-of-local-variables-added</link>\r
-               <comments>http://blog.qooxdoo.org/support-for-compression-of-local-variables-added#comments</comments>\r
-               <pubDate>Wed, 04 Oct 2006 11:06:46 +0000</pubDate>\r
-               <dc:creator>Sebastian Werner</dc:creator>\r
-               \r
-               <category>Development</category>\r
-\r
-               <category>Technical</category>\r
-\r
-               <guid isPermaLink="false">http://blog.qooxdoo.org/support-for-compression-of-local-variables-added</guid>\r
-               <description><![CDATA[                    
-A few hours ago I&#39;ve committed a change which adds a variable name optimizer into the qooxdoo trunk. This optimizer replaces the names of local variables with shorter ones. The result is a size reduction of the compiled JavaScript file by 10%. This new behavior is enabled per [...]]]></description>\r
-                       <content:encoded><![CDATA[<p><?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head>                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body>
-<p>A few hours ago I&#39;ve committed a change which adds a variable name optimizer into the qooxdoo trunk. This optimizer replaces the names of local variables with shorter ones. The result is a size reduction of the compiled JavaScript file by 10%. This new behavior is enabled per default for all the included Makefiles. So after an SVN update you can build your (again) better optimized version of qooxdoo.</p>
-<p>This can also been seen as a next step in bringing support for obfuscation another step forward. I have also updated the <a href="http://demo.qooxdoo.org">online demos</a> and the <a href="http://api.qooxdoo.org">API viewer</a> to use this new feature. I would like to invite you to give me feedback as soon as possible. Maybe you also find some bugs. If so, please report them immediately. Thank you.</p>
-<p> </body> </html>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=tppbJ4bc"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=tppbJ4bc" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=dbe1sxCT"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=dbe1sxCT" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=kuoqNS00"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=kuoqNS00" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=HlJ6f0Ls"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=HlJ6f0Ls" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=xbjmDWoL"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=xbjmDWoL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=V2cWssXw"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=V2cWssXw" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=C10aMNYQ"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=C10aMNYQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=F2ic6JR6"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=F2ic6JR6" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRss>http://blog.qooxdoo.org/support-for-compression-of-local-variables-added/feed/</wfw:commentRss>\r
-               <feedburner:origLink>http://blog.qooxdoo.org/support-for-compression-of-local-variables-added</feedburner:origLink></item>\r
-               <item>\r
-               <title>AJAX framework survey</title>\r
-               <link>http://feeds.feedburner.com/~r/qooxdoo/blog/content/~3/26565493/ajax-framework-poll</link>\r
-               <comments>http://blog.qooxdoo.org/ajax-framework-poll#comments</comments>\r
-               <pubDate>Sun, 24 Sep 2006 09:04:41 +0000</pubDate>\r
-               <dc:creator>Sebastian Werner</dc:creator>\r
-               \r
-               <category>Discussion</category>\r
-\r
-               <category>Survey</category>\r
-\r
-               <guid isPermaLink="false">http://blog.qooxdoo.org/ajax-framework-poll</guid>\r
-               <description><![CDATA[                    
-The guys at ajaxian.com have reported about a current survey regarding the popularity of common AJAX frameworks. It is quite clear why prototype is the winner. It&#39;s well-known, small and easily embedable into existing pages. However I think it is interesting that Mochikit is less widely used, because [...]]]></description>\r
-                       <content:encoded><![CDATA[<p><?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head>                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body>
-<p>The guys at <a href="http://ajaxian.com">ajaxian.com</a> have reported about a current <a href="http://ajaxian.com/archives/ajaxiancom-2006-survey-results">survey regarding the popularity of common AJAX frameworks</a>. It is quite clear why prototype is the winner. It&#39;s well-known, small and easily embedable into existing pages. However I think it is interesting that Mochikit is less widely used, because the targets of these libraries are comparable in my opinion. And Mochikit does not depends on extensions of native objects (especially Object.prototype) which makes it the better choice.</p>
-<p>I should mention that in my opinion the whole survey is quite problematic because of their comparison of different levels of so named &quot;AJAX frameworks&quot;. For a next survey I would suggest to divide the list into these groups:</p>
-<p>AJAX wrappers &amp; DOM utilities:</p>
-<ul>
-<li>Prototype &amp; Scriptaclous &amp; Rico</li>
-<li>Moo.fx</li>
-<li>jQuery </li>
-<li>Yahoo UI</li>
-<li>Mochikit</li>
-<li>XAJAX</li>
-<li>DWR (includes backend code, too) </li>
-</ul>
-<p>Framework &amp; Toolkits:</p>
-<ul>
-<li>Dojo</li>
-<li>Atlas</li>
-<li>GWT</li>
-<li>qooxdoo (seems to be missing <img src='http://blog.qooxdoo.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> )&nbsp;</li>
-</ul>
-<p>I&#39;ve grouped together Scriptaclous and Rico because they both depend on Prototype which means they are more or less an extension of this library and not a real separate solution.</p>
-<p>What do you think?&nbsp;</p>
-<p> </body> </html>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=zVG9wfIU"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=zVG9wfIU" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=FyUymhC2"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=FyUymhC2" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=SCV0WhJ4"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=SCV0WhJ4" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=BYHTg0aH"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=BYHTg0aH" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=sYMapwTd"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=sYMapwTd" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=r7Dt6YTk"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=r7Dt6YTk" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=fWqhBoBV"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=fWqhBoBV" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=bOeZDScE"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=bOeZDScE" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRss>http://blog.qooxdoo.org/ajax-framework-poll/feed/</wfw:commentRss>\r
-               <feedburner:origLink>http://blog.qooxdoo.org/ajax-framework-poll</feedburner:origLink></item>\r
-               <item>\r
-               <title>Dramatically improved IE7 JavaScript performance</title>\r
-               <link>http://feeds.feedburner.com/~r/qooxdoo/blog/content/~3/21793941/dramatically-improved-ie7-javascript-performance</link>\r
-               <comments>http://blog.qooxdoo.org/dramatically-improved-ie7-javascript-performance#comments</comments>\r
-               <pubDate>Wed, 13 Sep 2006 11:35:53 +0000</pubDate>\r
-               <dc:creator>Sebastian Werner</dc:creator>\r
-               \r
-               <category>Internet Explorer</category>\r
-\r
-               <category>Technical</category>\r
-\r
-               <category>Performance</category>\r
-\r
-               <guid isPermaLink="false">http://blog.qooxdoo.org/dramatically-improved-ie7-javascript-performance</guid>\r
-               <description><![CDATA[                    
-Really good news. My vocabulary may to be too limited to tell you how great the latest changes in IE7 RC1 are. Microsoft announced that they have &#34;recently made some great fixes to our engine to improve the garbage collection routine and to reduce unbounded memory growth.&#34; and [...]]]></description>\r
-                       <content:encoded><![CDATA[<p><?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head>                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body>
-<p>Really good news. My vocabulary may to be too limited to tell you how great the latest changes in <a href="http://www.microsoft.com/windows/ie/default.mspx">IE7 RC1</a> are. <a href="http://blogs.msdn.com/ie/archive/2006/08/28/728654.aspx">Microsoft announced</a> that they have &quot;recently made some great fixes to our engine to improve the garbage collection routine and to reduce unbounded memory growth.&quot; and that one &quot;should see noticeable improvements on AJAX sites in the Release Candidate we shipped last week&quot;. Yes indeed, we do see tremendeous improvements. <img src='http://blog.qooxdoo.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
-<p>In fact <a href="http://qooxdoo.org/demo">many demos</a> of <a href="http://qooxdoo.org">qooxdoo</a> run much faster now in IE7 compared to IE6. And they are even faster than in <a href="http://www.mozilla.com/firefox/">Firefox</a> 1.5 in many cases. This is a huge jump in performance. Microsoft did not tell about their exact modifications, of course. Anyway, they have fixed <em>the</em> major problem of large JavaScript-based web applications. This problem, despite having a catchy name, was mentioned many times before like <a href="http://demo.qooxdoo.org/html/performance/GlobalObject_2.html">here</a>, <a href="http://alex.dojotoolkit.org/?p=536">here</a> and <a href="http://groups.google.com/group/microsoft.public.inetsdk.programming.scripting.jscript/browse_thread/thread/d758f148f03cd2ed/cc6143cd1b0d1e38?lnk=st&amp;q=jscript+slow+performance+ie+firefox&amp;rnum=2#cc6143cd1b0d1e3">there</a>: If you have many objects created, which are simply accessible in the current scope, all methods and features of JavaScript slow down dramatically. Yeah, right, the entire execution speed drops significantly. No other browser besides IE shows such a strange behavior. It is quite interesting that IE6 really gets slower the larger the total number of (accessible) objects. Sure, it is logical that more instanciated objects need more memory, but it is not logical that at the same time this will dramatically reduce the performance of any code (that is not even accessing this data).</p>
-<p>With the release candidate RC1 of their new browser version IE7, it seems that they have finally fixed this issue. You can test it yourself in <a href="http://demo.qooxdoo.org/html/performance/GlobalObject_2.html">this test case</a>, which has been available in <a href="http://qooxdoo.org">qooxdoo</a> for several months to analyze and measure the IE performance problems. Please look at status bar of your browser (maybe you need to enable the status bar in the IE7 security settings). It will display the execution time of each loop while a large number of objects exists. On my machine the IE6 needs ~1400ms, while IE7 needs ~30ms, which is roughly the time Firefox 1.5 needs. Definitely incredible! Bright future for modern web applications. <img src='http://blog.qooxdoo.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  </p>
-<p> </body> </html>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=27qjvIjz"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=27qjvIjz" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=0pcpSBXq"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=0pcpSBXq" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=Z4mzepLM"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=Z4mzepLM" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=Cko7rv3A"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=Cko7rv3A" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=F2xJwTjG"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=F2xJwTjG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=xrRqiV8e"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=xrRqiV8e" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=nLBUMGef"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=nLBUMGef" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/blog/content?a=hUPfCg1N"><img src="http://feeds.feedburner.com/~f/qooxdoo/blog/content?i=hUPfCg1N" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRss>http://blog.qooxdoo.org/dramatically-improved-ie7-javascript-performance/feed/</wfw:commentRss>\r
-               <feedburner:origLink>http://blog.qooxdoo.org/dramatically-improved-ie7-javascript-performance</feedburner:origLink></item>\r
-       </channel>\r
-</rss><!-- Dynamic Page Served (once) in 0.666 seconds --><!-- Cached page served by WP-Cache -->\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/feeds/qooxdoo-news.xml b/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/feeds/qooxdoo-news.xml
deleted file mode 100644 (file)
index 3b17a19..0000000
+++ /dev/null
@@ -1,284 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r
-<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><!-- generator="wordpress/2.0.5" --><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">\r
-\r
-<channel>\r
-       <title>qooxdoo News</title>\r
-       <link>http://news.qooxdoo.org</link>\r
-       <description>The qooxdoo news section</description>\r
-       <pubDate>Sun, 26 Nov 2006 15:52:09 +0000</pubDate>\r
-       <generator>http://wordpress.org/?v=2.0.5</generator>\r
-       <language>en</language>\r
-                       <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/qooxdoo/news/content" type="application/rss+xml" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">390072</feedburner:emailServiceId><item>\r
-               <title>qooxdoo 0.6.2 released</title>\r
-               <link>http://news.qooxdoo.org/qooxdoo-062-released</link>\r
-               <comments>http://news.qooxdoo.org/qooxdoo-062-released#comments</comments>\r
-               <pubDate>Wed, 22 Nov 2006 14:13:38 +0000</pubDate>\r
-               <dc:creator>Andreas Ecker</dc:creator>\r
-               \r
-               <category>Announcements</category>\r
-\r
-               <category>Release</category>\r
-\r
-               <guid isPermaLink="false">http://news.qooxdoo.org/qooxdoo-062-released</guid>\r
-               <description><![CDATA[Good news, everyone!
-Despite of the minor change in version number, this release is again a major step in strengthening qooxdoo&#39;s position of being one of the most comprehensive and innovative AJAX frameworks. It now even includes support for WebKit and future versions of Safari!
-It came as quite a surprise how many fixes, changes and additions [...]]]></description>\r
-                       <content:encoded><![CDATA[<p>Good news, everyone!</p>
-<p>Despite of the minor change in version number, this release is again a major step in strengthening qooxdoo&#39;s position of being one of the most comprehensive and innovative AJAX frameworks. It now even includes support for WebKit and future versions of Safari!</p>
-<p>It came as quite a surprise how many fixes, changes and additions we were actually able to include in this fine little package. During the eight weeks after release 0.6.1, many people have made contributions. Thanks to all qooxdoo users, contributors, patch monsters and supporters for helping to make the framework more mature and feature-complete!</p>
-<p>Targeted as a maintenance release it includes many bugfixes and only minor changes in functionality or API. We recommend to upgrade any applications based on qooxdoo 0.6.1. Of course, there is migration support available, even if it is hardly needed this time.</p>
-<p>As mentioned above and already announced in our <a href="http://blog.qooxdoo.org/safari-support-for-qooxdoo-coming">developer blog</a>, qooxdoo now includes support for WebKit. We expect to fully support the next major version Safari 3.0 which will be based on the current development of WebKit. There is only limited support for Safari in its current version 2.0.4, though. Reason is, that Safari 2.0 still has many bugs that can hardly be worked around. Luckily, many of those bugs are already fixed in the <a href="http://nightly.webkit.org/">nightly builds of WebKit</a>. Besides the various bugs, Safari 2.0&#39;s JavaScript engine and its execution speed is not competitive with respect to the latest versions of the other major browsers (Firefox 2.0, IE7, Opera 9). Good news is, that the current builds of WebKit are tremendeously faster than Safari 2.0, approximately by a factor of 7-8 for a typical qooxdoo demo.</p>
-<p>We think it is worth to either use WebKit for now or wait for Safari 3.0 due in early 2007. There is probably not much sense in devoting more time and effort for Safari 2.0 specific problems. There are still some known issues concerning WebKit support (particularly for widgets that use scrollbars). It would be great if Mac users could give qooxdoo 0.6.2 a try and report any problem in bugzilla. Please use the most recent nightly build of WebKit and include its version information in any bug report.</p>
-<p>For more detailed information about qooxdoo 0.6.2 please consult the corresponding <a href="http://qooxdoo.org/about/release_notes">release notes</a>.</p>
-<p>Enjoy!</p>
-<ul>
-<li><a href="http://qooxdoo.org/download">Download qooxdoo</a></li>
-<li><a href="http://freshmeat.net/rate/53996/">Rate qooxdoo</a> </li>
-</ul>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=rUMX2pdG"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=rUMX2pdG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=QSWyYmHE"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=QSWyYmHE" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=46nCAceV"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=46nCAceV" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=C67hJdDt"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=C67hJdDt" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=Xl7ySFg7"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=Xl7ySFg7" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=CERoEiZ0"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=CERoEiZ0" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=L5wV176y"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=L5wV176y" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=LcQsQi8c"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=LcQsQi8c" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRss>http://news.qooxdoo.org/qooxdoo-062-released/feed/</wfw:commentRss>\r
-               </item>\r
-               <item>\r
-               <title>IE7 released, finally</title>\r
-               <link>http://news.qooxdoo.org/ie7-released-finally</link>\r
-               <comments>http://news.qooxdoo.org/ie7-released-finally#comments</comments>\r
-               <pubDate>Thu, 19 Oct 2006 12:26:18 +0000</pubDate>\r
-               <dc:creator>Andreas Ecker</dc:creator>\r
-               \r
-               <category>Announcements</category>\r
-\r
-               <guid isPermaLink="false">http://news.qooxdoo.org/ie7-released-finally</guid>\r
-               <description><![CDATA[                    
-Good news to every developer of modern web applications. After more than 5 years (IE6 was released in August 2001) we all hope to see IE7 fix some of the most severe problems and bugs of IE6. All qooxdoo-based applications are expected to benefit from IE7, particularly due [...]]]></description>\r
-                       <content:encoded><![CDATA[<p><?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head>                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body>
-<p>Good news to every developer of modern web applications. After more than 5 years (IE6 was released in August 2001) we all hope to see <a href="http://www.microsoft.com/ie">IE7</a> fix some of the most severe problems and bugs of IE6. All qooxdoo-based applications are expected to benefit from IE7, particularly due to the <a href="http://blog.qooxdoo.org/dramatically-improved-ie7-javascript-performance">dramatic JavaScript performance improvements</a>  that we reported earlier.</p>
-<p>qooxdoo fully supports IE7. It would be great if qooxdoo users and developers could continue to test and double-check their applications for IE7 compatibility. Please <a href="http://bugzilla.qooxdoo.org/enter_bug.cgi?product=frontend&amp;op_sys=Windows&amp;rep_platform=IE%207">report any IE7 issues in bugzilla</a> as soon as possible.</p>
-<p>Enjoy &#8230; and good luck!&nbsp;</p>
-<p> </body> </html>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=s9WxPv0V"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=s9WxPv0V" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=SjIKFZaP"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=SjIKFZaP" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=bCMFN18x"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=bCMFN18x" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=mLQg7sg8"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=mLQg7sg8" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=vKYNENWZ"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=vKYNENWZ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=UVocqnql"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=UVocqnql" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=FurwESp0"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=FurwESp0" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=Xz06SbFC"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=Xz06SbFC" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRss>http://news.qooxdoo.org/ie7-released-finally/feed/</wfw:commentRss>\r
-               </item>\r
-               <item>\r
-               <title>qooxdoo 0.6.1 released</title>\r
-               <link>http://news.qooxdoo.org/qooxdoo-061-released</link>\r
-               <comments>http://news.qooxdoo.org/qooxdoo-061-released#comments</comments>\r
-               <pubDate>Wed, 20 Sep 2006 18:49:16 +0000</pubDate>\r
-               <dc:creator>Andreas Ecker</dc:creator>\r
-               \r
-               <category>Announcements</category>\r
-\r
-               <category>Release</category>\r
-\r
-               <guid isPermaLink="false">http://news.qooxdoo.org/qooxdoo-061-released</guid>\r
-               <description><![CDATA[                    
-After only two weeks since the ground-breaking release of qooxdoo 0.6  quite a lot of progress has been made. We have received many contributions and bugfixes from the community. These patches as well as our own&#160; modifications have been integrated into the code base in the ongoing [...]]]></description>\r
-                       <content:encoded><![CDATA[<p><?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head>                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body>
-<p>After only two weeks since the ground-breaking release of <a href="http://news.qooxdoo.org/qooxdoo-06-released">qooxdoo 0.6</a>  quite a lot of progress has been made. We have received many contributions and bugfixes from the community. These patches as well as our own&nbsp; modifications have been integrated into the code base in the ongoing effort to raise qooxdoo&#39;s stability.</p>
-<p>As has been previously announced, we try to release often, now that some of the most challenging reconstructions like namespaces have been mastered. While API changes for this minor release are negligible, <a href="http://qooxdoo.org/documentation/user_manual/migration_support">migration scripts</a>  are available to upgrade existing applications, of course. </p>
-<p>Preliminary browser support for Safari has been introduced. It would be great if Safari users could help in identifying, analyzing and fixing the various layout problems. It is still not recommended to use qooxdoo applications in Safari-based production environments.</p>
-<p>Besides bugfixes and stability improvements there are some interesting additions as well. Tabs may optionally include close buttons, the tree widget TreeFullControl now supports multiple root nodes. Iframes containing external documents now have built-in blocking support to not interrupt user actions like drag &amp; drop.</p>
-<p>Application development is even faster than before: the easy-to-use make shell commands that generate optimized and <a href="http://qooxdoo.org/documentation/user_manual/custom_builds">tailor-made custom applications</a>   run much faster. Users get a jump-start for their application development by using the <a href="http://qooxdoo.org/documentation/user_manual/skeleton">skeletons</a>  included in the qooxdoo SDK.</p>
-<p>We would like to thank all people involved in qooxdoo development for their help and contribution. Every user&#39;s <a href="http://qooxdoo.org/community/mailing_lists">feedback</a>  is important to continuously improve qooxdoo as one of the most amazing JavaScript frameworks around. Enjoy!</p>
-<ul>
-<li><a href="http://qooxdoo.org/about/release_notes">Release Notes</a></li>
-<li><a href="http://qooxdoo.org/download">Downloads of SDK or pre-build package</a></li>
-</ul>
-<p> </body> </html>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=Zk55ooUa"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=Zk55ooUa" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=BLxW0cEj"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=BLxW0cEj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=iaVRLUq8"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=iaVRLUq8" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=OFRBiERh"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=OFRBiERh" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=qAiaGiVy"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=qAiaGiVy" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=kmVzh0Er"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=kmVzh0Er" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=bgbKIHHd"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=bgbKIHHd" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=wAtcF7sW"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=wAtcF7sW" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRss>http://news.qooxdoo.org/qooxdoo-061-released/feed/</wfw:commentRss>\r
-               </item>\r
-               <item>\r
-               <title>qooxdoo 0.6 released</title>\r
-               <link>http://news.qooxdoo.org/qooxdoo-06-released</link>\r
-               <comments>http://news.qooxdoo.org/qooxdoo-06-released#comments</comments>\r
-               <pubDate>Thu, 07 Sep 2006 17:49:13 +0000</pubDate>\r
-               <dc:creator>Sebastian</dc:creator>\r
-               \r
-               <category>Announcements</category>\r
-\r
-               <category>Release</category>\r
-\r
-               <guid isPermaLink="false">http://news.qooxdoo.org/qooxdoo-06-released</guid>\r
-               <description><![CDATA[                    
-Here comes the most advanced qooxdoo version ever! qooxdoo 0.6 introduces namespaces as the most noticeable change. This step has been combined with a long thought-out and at the end well-structured directory layout.
-Integrated is one of the most advanced build systems. This new system allows you to generate [...]]]></description>\r
-                       <content:encoded><![CDATA[<p><?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head>                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body>
-<p>Here comes the most advanced qooxdoo version ever! qooxdoo 0.6 introduces namespaces as the most noticeable change. This step has been combined with a long thought-out and at the end well-structured directory layout.</p>
-<p>Integrated is one of the most advanced build systems. This new system allows you to generate tailor-made user applications linked against the qooxdoo framework. You can even include your own project classes and optimize them along with qooxdoo. Using this new build system you can generate blazingly fast and highly optimized qooxdoo builds.</p>
-<p>A new ground-breaking qooxdoo-based API viewer was added to make software development with qooxdoo easier than ever before. Supposed to become every qooxdoo users&#39; number one resource, it shows all available packages, classes, properties and methods. All related information is connected by hyperlinks which gives you a highly convenient way to access the relevant information.</p>
-<p>Of course there are also new widgets. A new advanced table widget has been introduced which is a virtual list view component that allows to handle many thousands of entries. Its features also make it possible to dynamically load the data from a remote server (using RPC for example). A splitpane - one of the long-awaited widgets - is now included. Full-blown logging capabilities featuring various appenders are available as well.</p>
-<p>There are a lot more changes and enhancements. For details please take a look at <a href="http://qooxdoo.org/about/release_notes">the release notes</a>. Migration support simplifies the switch from the last qooxdoo release 0.5.3. <a href="http://qooxdoo.org/download">qooxdoo 0.6</a> is the perfect framework to build highly-interactive web applications. Why don&#39;t you start now? <a href="http://qooxdoo.org/download">Just download qooxdoo today!</a></p>
-<p> </body> </html>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=onwQzIon"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=onwQzIon" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=jYfYN2gj"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=jYfYN2gj" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=0psukVw3"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=0psukVw3" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=eXdvErgL"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=eXdvErgL" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=KM4zclIk"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=KM4zclIk" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=hfgM1jFS"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=hfgM1jFS" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=LGUxEmi5"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=LGUxEmi5" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=qz5zRqV5"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=qz5zRqV5" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRss>http://news.qooxdoo.org/qooxdoo-06-released/feed/</wfw:commentRss>\r
-               </item>\r
-               <item>\r
-               <title>Introduce new tree compiler</title>\r
-               <link>http://news.qooxdoo.org/introduce-new-tree-compiler</link>\r
-               <comments>http://news.qooxdoo.org/introduce-new-tree-compiler#comments</comments>\r
-               <pubDate>Thu, 31 Aug 2006 16:02:27 +0000</pubDate>\r
-               <dc:creator>Sebastian</dc:creator>\r
-               \r
-               <category>Announcements</category>\r
-\r
-               <category>Development</category>\r
-\r
-               <guid isPermaLink="false">http://news.qooxdoo.org/introduce-new-tree-compiler</guid>\r
-               <description><![CDATA[                    
-Another step forward to highly optimized applications based on qooxdoo: I would like to introduce the tree &#34;compiler&#34;. The tree compiler is able to &#34;compile&#34; a syntax tree (generated by treegenerator.py which uses the tokenizer.py) back to optimized JavaScript code. Its feature set is comparable to the old [...]]]></description>\r
-                       <content:encoded><![CDATA[<p><?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head>                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body>
-<p>Another step forward to highly optimized applications based on qooxdoo: I would like to introduce the tree &quot;compiler&quot;. The tree compiler is able to &quot;compile&quot; a syntax tree (generated by treegenerator.py which uses the tokenizer.py) back to optimized JavaScript code. Its feature set is comparable to the old compiler, which was directly based on the result of the tokenizer.py script. It completely removes comments, whitespaces and other optional stuff from the original JavaScript code. </p>
-<p>This tree compiler is an important step, because it will allow us to do the following awesome things in the future:</p>
-<ul>
-<li>Remove complete methods (debug statements, &#8230;)</li>
-<li>Remove cross-browser constructions and generate a version for each browser/engine.</li>
-<li>Compress variable names</li>
-<li>Lay out strings and reduce usage of simple constants (like &quot;auto&quot;, &quot;100%&quot;, &#8230;) for considerable IE performance improvements</li>
-<li>Obfuscate the whole application (variable, function and class names)</li>
-</ul>
-<p>etc.</p>
-<p>Now the interesting part: The tree compiler is the default from now on. It is already available in SVN and will be in the final release of qooxdoo 0.6. The tree compiler was tested against qooxdoo and another big internal project so we think it&#39;s quite stable already. It may not be free of bugs however, but I&#39;m happy to fix bugs as fast as you can report them <img src='http://news.qooxdoo.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
-<p>If you have problems with this new compiler, you can use the old one using the &quot;&#8211;use-token-compiler&quot; argument (generator.py). Each Makefile which is included in qooxdoo, has a new variable (OLDCOMPILER) in the first lines of the file which lets you select the compiler (simply set it to &quot;true&quot;).</p>
-<p>I hope you enjoy this new era of JavaScript optimization. Kudos to Til - without the treegenerator.py developed by him, qooxdoo would maybe not have seen such a tree-based optimizer.</p>
-<p>You can immediately test the new compiler. Its results can also been seen online in <a href="http://qooxdoo.org/demo">the online demos</a> and <a href="http://api.qooxdoo.org">the API viewer</a>.</p>
-<p>For all SDK/source version users: Please make sure to delete the directory &quot;.cache&quot;. A simple &quot;make distclean&quot; will do this for you.</p>
-<p> </body> </html>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=IY1PzpQT"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=IY1PzpQT" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=bQM4qh6n"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=bQM4qh6n" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=xNREhjUN"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=xNREhjUN" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=WRp5C951"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=WRp5C951" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=1jl7qoQY"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=1jl7qoQY" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=PSL1b5Rt"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=PSL1b5Rt" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=mGL5WaXu"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=mGL5WaXu" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=e3rRUVoh"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=e3rRUVoh" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRss>http://news.qooxdoo.org/introduce-new-tree-compiler/feed/</wfw:commentRss>\r
-               </item>\r
-               <item>\r
-               <title>qooxdoo 0.6 (Release Candidate 1) available</title>\r
-               <link>http://news.qooxdoo.org/qooxdoo-06-release-candidate-1-available</link>\r
-               <comments>http://news.qooxdoo.org/qooxdoo-06-release-candidate-1-available#comments</comments>\r
-               <pubDate>Sat, 19 Aug 2006 02:31:26 +0000</pubDate>\r
-               <dc:creator>Andreas Ecker</dc:creator>\r
-               \r
-               <category>Release</category>\r
-\r
-               <guid isPermaLink="false">http://news.qooxdoo.org/qooxdoo-06-release-candidate-1-available</guid>\r
-               <description><![CDATA[                    
-Many aspects of qooxdoo have been improved to make it an even more professional and complete JavaScript framework.
-A lot of issues, that have been brought up and discussed on the mailing list before, have been addressed. Some of the most noticable additions include a qooxdoo-based viewer for the [...]]]></description>\r
-                       <content:encoded><![CDATA[<p><?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head>                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body>
-<p>Many aspects of qooxdoo have been improved to make it an even more professional and complete JavaScript framework.</p>
-<p>A lot of issues, that have been brought up and discussed on the mailing list before, have been addressed. Some of the most <a href="http://qooxdoo.org/documentation/improvements_for_qooxdoo_0.6">noticable additions</a> include a qooxdoo-based viewer for the auto-generated API documentation, a more powerful virtual list view and a smart build process that makes optimizing, compressing, linking and deployment of custom applications a snap.</p>
-<p>A Release Candidate 1 is now available for <a href="http://qooxdoo.org/download">easy download</a>. That way people can immediately start to get themselves familiar with the most important improvements. </p>
-<p>We would like to thank all users, contributors and fellow developers for their ongoing help and support. Keep up the good work!</p>
-<p><a href="http://demo.qooxdoo.org">Try online demos</a></p>
-<p><a href="http://digg.com/software/qooxdoo_0_6_Release_Candidate_1_available">Digg this</a>&nbsp;</p>
-<p> </body> </html>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=jvtn1dh2"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=jvtn1dh2" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=9WhvLamK"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=9WhvLamK" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=FpMP6QAZ"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=FpMP6QAZ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=HjpVjKW8"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=HjpVjKW8" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=vPJyRCRJ"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=vPJyRCRJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=5pCaV3g8"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=5pCaV3g8" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=R1Pi8XSF"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=R1Pi8XSF" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=s9FAqx6S"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=s9FAqx6S" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRss>http://news.qooxdoo.org/qooxdoo-06-release-candidate-1-available/feed/</wfw:commentRss>\r
-               </item>\r
-               <item>\r
-               <title>Branch “namespaces” discontinued</title>\r
-               <link>http://news.qooxdoo.org/branch-namespaces-discontinued</link>\r
-               <comments>http://news.qooxdoo.org/branch-namespaces-discontinued#comments</comments>\r
-               <pubDate>Wed, 16 Aug 2006 21:38:12 +0000</pubDate>\r
-               <dc:creator>Andreas Ecker</dc:creator>\r
-               \r
-               <category>Announcements</category>\r
-\r
-               <guid isPermaLink="false">http://news.qooxdoo.org/use-trunk-instead-of-namespaces-branch</guid>\r
-               <description><![CDATA[                    
-IMPORTANT: Until recently the major development work towards the next release 0.6 has been done in a development branch named &#34;namespaces&#34;. This branch is now discontinued. Its content has been transfered into the SVN trunk.
-Future development of qooxdoo will concentrate on changes made in the trunk. Anyone interested [...]]]></description>\r
-                       <content:encoded><![CDATA[<p><?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head>                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body>
-<p>IMPORTANT: Until recently the major development work towards the next release 0.6 has been done in a development branch named &quot;namespaces&quot;. This branch is now discontinued. Its content has been transfered into the SVN trunk.</p>
-<p>Future development of qooxdoo will concentrate on changes made in the trunk. Anyone interested in an up-to-date version of the framework should simply <a href="http://qooxdoo.org/documentation/user/checkout_from_svn">checkout the latest revision of the SVN trunk</a> . Clearly, these snapshots are not expected to be stable enough for production use. They are not even supposed to be functional at all. It may happen that the trunk is broken for not only hours (delibaretely) but even days (rather by accident). Think of the trunk as a permanent work-in-progress that after potentially unstable phases finally leads to the next official release.</p>
-<p>The content of the previous SVN trunk has been moved to a branch named &quot;legacy_0_5_x&quot;. This branch may see some changes, particularly bugfixes and backports of modifications made in the trunk. Please do not expect many substantial improvements in this 0.5 line of qooxdoo, though. There may be a release 0.5.4 sometime, but this clearly depends on user contribution for this now &quot;old&quot; line of qooxdoo.</p>
-<p>Please note, that the existing documentation has still to be updated to reflect the switch from the &quot;namespaces&quot; branch to the trunk. Information formerly specific to the &quot;namespaces&quot; branch should now be valid for the trunk.</p>
-<p>We are getting closer to qooxdoo 0.6&nbsp; <img src='http://news.qooxdoo.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
-<p> </body> </html>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=c2oS4gbi"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=c2oS4gbi" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=Didl6LAR"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=Didl6LAR" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=DiHnHveW"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=DiHnHveW" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=AUWodtyY"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=AUWodtyY" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=Aw6D7Zyp"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=Aw6D7Zyp" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=kUraOsvP"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=kUraOsvP" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=7H4Jc2VJ"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=7H4Jc2VJ" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=bWYU5yHV"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=bWYU5yHV" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRss>http://news.qooxdoo.org/branch-namespaces-discontinued/feed/</wfw:commentRss>\r
-               </item>\r
-               <item>\r
-               <title>Planned Improvements for qooxdoo 0.6</title>\r
-               <link>http://news.qooxdoo.org/planned-improvements-for-qooxdoo-06</link>\r
-               <comments>http://news.qooxdoo.org/planned-improvements-for-qooxdoo-06#comments</comments>\r
-               <pubDate>Thu, 10 Aug 2006 09:05:40 +0000</pubDate>\r
-               <dc:creator>Andreas Ecker</dc:creator>\r
-               \r
-               <category>Announcements</category>\r
-\r
-               <guid isPermaLink="false">http://news.qooxdoo.org/planned-improvements-for-qooxdoo-06</guid>\r
-               <description><![CDATA[                    
-There is an extended update  of an older post with respect to new features and modifications that are currently being implemented.
-All interested qooxdoo users are welcome to bring themselves up-to-date and are invited to get involved in qooxdoo development. It takes not more than checking-out qooxdoo from [...]]]></description>\r
-                       <content:encoded><![CDATA[<p><?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head>                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body>
-<p>There is an <a href="http://qooxdoo.org/documentation/improvements_for_qooxdoo_0.6">extended update</a>  of an older post with respect to new features and modifications that are currently being implemented.</p>
-<p>All interested qooxdoo users are welcome to bring themselves up-to-date and are invited to get involved in qooxdoo development. It takes not more than checking-out qooxdoo from a subversion repository and doing a &quot;make&quot; on your shell afterwards. </p>
-<p>A couple of significant differences that are being addressed are:</p>
-<ul>
-<li>Namespaces</li>
-<li>Documentation</li>
-<li>Building and Deployment</li>
-<li>Table</li>
-<li>Remote Procedure Calls&nbsp;</li>
-</ul>
-<p> </body> </html>
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=5v7NltR5"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=5v7NltR5" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=28Nxb6gr"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=28Nxb6gr" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=au1dDM3I"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=au1dDM3I" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=Qh1RG75B"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=Qh1RG75B" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=is6ZeKJd"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=is6ZeKJd" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=IEWlxTSe"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=IEWlxTSe" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=MZTcg2Kn"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=MZTcg2Kn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=0hWzprwr"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=0hWzprwr" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRss>http://news.qooxdoo.org/planned-improvements-for-qooxdoo-06/feed/</wfw:commentRss>\r
-               </item>\r
-               <item>\r
-               <title>qooxdoo 0.5.3 released</title>\r
-               <link>http://news.qooxdoo.org/qooxdoo-053-released</link>\r
-               <comments>http://news.qooxdoo.org/qooxdoo-053-released#comments</comments>\r
-               <pubDate>Wed, 12 Jul 2006 09:09:27 +0000</pubDate>\r
-               <dc:creator>Sebastian</dc:creator>\r
-               \r
-               <category>Announcements</category>\r
-\r
-               <category>Release</category>\r
-\r
-               <guid isPermaLink="false">http://news.qooxdoo.org/announcements/qooxdoo-053-released</guid>\r
-               <description><![CDATA[This is just a small release with some bugfixes for the users of any previous 0.5.x release. Also take a look at the release notes. Download the new version here at sourceforge.
-
-]]></description>\r
-                       <content:encoded><![CDATA[<p>This is just a small release with some bugfixes for the users of any previous 0.5.x release. Also take a look at the <a href="http://qooxdoo.org/documentation/user/release_notes">release notes</a>. Download the new version <a href="http://sourceforge.net/project/showfiles.php?group_id=129854&#038;package_id=151847">here at sourceforge</a>.
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=ou9mifFX"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=ou9mifFX" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=8ZEMUWxe"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=8ZEMUWxe" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=JSsN4MH7"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=JSsN4MH7" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=MIoFJanB"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=MIoFJanB" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=ObKHscCV"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=ObKHscCV" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=UbVce4qb"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=UbVce4qb" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=zAeLNyw2"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=zAeLNyw2" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=k50Tl2Qd"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=k50Tl2Qd" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRss>http://news.qooxdoo.org/qooxdoo-053-released/feed/</wfw:commentRss>\r
-               </item>\r
-               <item>\r
-               <title>Bugzilla mailing list</title>\r
-               <link>http://news.qooxdoo.org/bugzilla-mailing-list</link>\r
-               <comments>http://news.qooxdoo.org/bugzilla-mailing-list#comments</comments>\r
-               <pubDate>Mon, 19 Jun 2006 09:24:26 +0000</pubDate>\r
-               <dc:creator>Sebastian</dc:creator>\r
-               \r
-               <category>Bugs</category>\r
-\r
-               <category>Mailing lists</category>\r
-\r
-               <guid isPermaLink="false">http://news.qooxdoo.org/uncategorized/bugzilla-mailing-list</guid>\r
-               <description><![CDATA[I&#8217;ve just registered and configured a new mailing list, which is used to monitor the bug activity. Bugs in qooxdoo are also used to manage feature additions and enhancement wishes.
-You can register yourself to always stay up-to-date with the further development of qooxdoo.
-
-]]></description>\r
-                       <content:encoded><![CDATA[<p>I&#8217;ve just registered and configured a new <a href="http://lists.sourceforge.net/lists/listinfo/qooxdoo-bugs">mailing list</a>, which is used to monitor the bug activity. Bugs in <a href="http://qooxdoo.org">qooxdoo</a> are also used to manage feature additions and enhancement wishes.</p>
-<p>You can <a href="http://lists.sourceforge.net/lists/listinfo/qooxdoo-bugs">register yourself</a> to always stay up-to-date with the further development of qooxdoo.
-</p>
-
-<div class="feedflare"><a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=K0Py8qhO"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=K0Py8qhO" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=jS2WTLmd"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=jS2WTLmd" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=bEAB9eQG"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=bEAB9eQG" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=RnriB89x"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=RnriB89x" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=XRTQ94fT"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=XRTQ94fT" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=TzV4EYJn"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=TzV4EYJn" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=e6upeVfr"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=e6upeVfr" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/qooxdoo/news/content?a=kU4viCW8"><img src="http://feeds.feedburner.com/~f/qooxdoo/news/content?i=kU4viCW8" border="0"></img></a></div>]]></content:encoded>\r
-                       <wfw:commentRss>http://news.qooxdoo.org/bugzilla-mailing-list/feed/</wfw:commentRss>\r
-               </item>\r
-       </channel>\r
-</rss><!-- Dynamic Page Served (once) in 0.658 seconds -->\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/feeds/safari.xml b/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/feeds/safari.xml
deleted file mode 100644 (file)
index 9fc3180..0000000
+++ /dev/null
@@ -1,223 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- generator="wordpress/1.5.1.2" -->
-<rss version="2.0" 
-       xmlns:content="http://purl.org/rss/1.0/modules/content/"
-       xmlns:wfw="http://wellformedweb.org/CommentAPI/"
-       xmlns:dc="http://purl.org/dc/elements/1.1/"
->
-
-<channel>
-       <title>Surfin' Safari</title>
-       <link>http://webkit.org/blog</link>
-       <description>All about WebKit development</description>
-       <pubDate>Sat, 18 Nov 2006 22:18:02 +0000</pubDate>
-       <generator>http://wordpress.org/?v=1.5.1.2</generator>
-       <language>en</language>
-
-               <item>
-               <title>Rob Buis is a WebKit Reviewer</title>
-               <link>http://webkit.org/blog/?p=82</link>
-               <comments>http://webkit.org/blog/?p=82#comments</comments>
-               <pubDate>Sat, 18 Nov 2006 22:17:52 +0000</pubDate>
-               <dc:creator>maciej</dc:creator>
-               
-       <category>Uncategorized</category>
-               <guid>http://webkit.org/blog/?p=82</guid>
-               <description><![CDATA[  Rob Buis is now a qualified WebKit reviewer. Rob was one of the main driving forces behind ksvg2 and kcanvas, along with Nikolas Zimmerman. The code from these libraries has been integrated into WebKit to provide fully integrated HTML/SVG support. Since then, Rob has submitted many WebKit patches for SVG and in many other areas, [...]]]></description>
-                       <content:encoded><![CDATA[      <p>Rob Buis is now a qualified WebKit reviewer. Rob was one of the main driving forces behind ksvg2 and kcanvas, along with Nikolas Zimmerman. The code from these libraries has been integrated into WebKit to provide fully integrated HTML/SVG support. Since then, Rob has submitted many WebKit patches for SVG and in many other areas, including DOM, CSS, graphics support and general refactoring.</p>
-       <p>Please join me in congratulating Rob.
-</p>
-]]></content:encoded>
-                       <wfw:commentRSS>http://webkit.org/blog/?feed=rss2&amp;p=82</wfw:commentRSS>
-       </item>
-               <item>
-               <title>Google Web Toolkit 1.2 Uses WebKit</title>
-               <link>http://webkit.org/blog/?p=81</link>
-               <comments>http://webkit.org/blog/?p=81#comments</comments>
-               <pubDate>Sat, 18 Nov 2006 08:59:10 +0000</pubDate>
-               <dc:creator>aroben</dc:creator>
-               
-       <category>Uncategorized</category>
-               <guid>http://webkit.org/blog/?p=81</guid>
-               <description><![CDATA[  Google has just released version 1.2 of the Google Web Toolkit (GWT) with full Mac OS X support provided by WebKit. GWT allows web developers to create shiny AJAX web applications entirely in Java, which GWT compiles to JavaScript. While Mac users were able to use the GWT compiler in previous versions, they couldn&#8217;t use [...]]]></description>
-                       <content:encoded><![CDATA[      <p>Google has just <a href="http://googlewebtoolkit.blogspot.com/2006/11/its-official-gwt-12-released.html" title="It's official: GWT 1.2 released">released version 1.2</a> of the <a href="http://code.google.com/webtoolkit/" title="Google Web Toolkit">Google Web Toolkit</a> (GWT) with full Mac OS X support provided by WebKit. GWT allows web developers to create shiny AJAX web applications entirely in Java, which GWT compiles to JavaScript. While Mac users were able to use the GWT compiler in previous versions, they couldn&#8217;t use GWT&#8217;s hosted browser to debug their web apps. WebKit has made it possible for Google to bring these development tools to the Mac, and, as a surprise Mac-only bonus, web developers using GWT get to use the <a href="http://webkit.org/blog/?p=41" title="Introducing the Web Inspector">Web Inspector</a>, too!
-</p>
-]]></content:encoded>
-                       <wfw:commentRSS>http://webkit.org/blog/?feed=rss2&amp;p=81</wfw:commentRSS>
-       </item>
-               <item>
-               <title>Zack Rusin is a WebKit Reviewer for the Qt Port</title>
-               <link>http://webkit.org/blog/?p=79</link>
-               <comments>http://webkit.org/blog/?p=79#comments</comments>
-               <pubDate>Thu, 16 Nov 2006 02:32:07 +0000</pubDate>
-               <dc:creator>maciej</dc:creator>
-               
-       <category>Uncategorized</category>
-               <guid>http://webkit.org/blog/?p=79</guid>
-               <description><![CDATA[  Zack Rusin is now a qualified reviewer for Qt platform code in WebKit. Although he has not yet submitted many patches to WebKit as such, he has a long history working with KHTML and did much of the Unity porting work originally. As such, he is likely one of the best reviewers for Qt platform [...]]]></description>
-                       <content:encoded><![CDATA[      <p>Zack Rusin is now a qualified reviewer for Qt platform code in WebKit. Although he has not yet submitted many patches to WebKit as such, he has a long history working with KHTML and did much of the Unity porting work originally. As such, he is likely one of the best reviewers for Qt platform code. Congrats, Zack, and thank you.
-</p>
-]]></content:encoded>
-                       <wfw:commentRSS>http://webkit.org/blog/?feed=rss2&amp;p=79</wfw:commentRSS>
-       </item>
-               <item>
-               <title>The Safari Team&#8217;s Favorite Websites</title>
-               <link>http://webkit.org/blog/?p=77</link>
-               <comments>http://webkit.org/blog/?p=77#comments</comments>
-               <pubDate>Tue, 07 Nov 2006 03:00:46 +0000</pubDate>
-               <dc:creator>maciej</dc:creator>
-               
-       <category>Uncategorized</category>
-               <guid>http://webkit.org/blog/?p=77</guid>
-               <description><![CDATA[  Usually this blog has serious content about WebKit. But one of the great things about the web is that it&#8217;s actually lots of fun.
-To give you a bit of the flavor of the Safari/WebKit Team&#8217;s personality, here are a few of our favorite websites.
-Please post some of your favorite websites in the comments.
-       Apple Stuff
-       
-       Daring Fireball [...]]]></description>
-                       <content:encoded><![CDATA[      <p>Usually this blog has serious content about WebKit. But one of the great things about the web is that it&#8217;s actually lots of fun.<br />
-To give you a bit of the flavor of the Safari/WebKit Team&#8217;s personality, here are a few of our favorite websites.<br />
-Please post some of <em>your</em> favorite websites in the comments.</p>
-       <h4>Apple Stuff</h4>
-       <ul>
-       <li><a href="http://daringfireball.net/">Daring Fireball &lt;http://daringfireball.net/&gt;</a></li>
-       <li><a href="http://crazyapplerumors.com/">Crazy Apple Rumors &lt;http://crazyapplerumors.com/&gt;</a></li>
-       </ul>
-       <h4>News &#038; Information</h4>
-       <ul>
-       <li><a href="http://digg.com/">Digg &lt;http://digg.com/&gt;</a></li>
-       <li><a href="http://wikipedia.org/">Wikipedia &lt;http://wikipedia.org/&gt;</a></li>
-       <li><a href="http://valleywag.com/">Valleywag &lt;http://www.valleywag.com/&gt;</a></li>
-       <li><a href="http://slate.com/">Slate &lt;http://slate.com/&gt;</a></li>
-       </ul>
-       <h4>Media &#038; Celebrities</h4>
-       <ul>
-       <li><a href="http://televisionwithoutpity.com/">Television Without Pity &lt;http://televisionwithoutpity.com/&gt;</a></li>
-       <li><a href="http://aintitcool.com/">Ain&#8217;t it Cool News &lt;http://aintitcool.com/&gt;</a></li>
-       <li><a href="http://imdb.com/">The Internet Movie Database &lt;http://imdb.com/&gt;</a></li>
-       <li><a href="http://thesuperficial.com/">The Superficial &lt;http://thesuperficial.com/&gt;</a></li>
-       <li><a href="http://www.apple.com/trailers/">Apple Movie Trailers &lt;http://www.apple.com/trailers/&gt;</a></li>
-       </ul>
-       <h4>Amusement</h4>
-       <ul>
-       <li><a href="http://cuteoverload.com/">Cute Overload! &lt;http://cuteoverload.com/&gt;</a></li>
-       <li><a href="http://www.theonion.com/">The Onion &lt;http://www.theonion.com/&gt;</a></li>
-       <li><a href="http://youtube.com/">YouTube &lt;http://youtube.com/&gt;</a></li>
-       <li><a href="http://xfm.co.uk/article.asp?id=3673">Ricky Gervais Podcast &lt;http://xfm.co.uk/article.asp?id=3673&gt;</a></li>
-       <li><a href="http://homestarrunner.com/">Homestar Runner &lt;http://homestarrunner.com/&gt;</a></li>
-       <li><a href="http://spamusement.com/">Spamusement &lt;http://spamusement.com/&gt;</a></li>
-       </ul>
-       <h4>Communication</h4>
-       <ul>
-       <li><a href="http://www.facebook.com/">The Facebook &lt;http://www.facebook.com/&gt;</a></li>
-       <li><a href="http://mail.google.com/">GMail &lt;http://mail.google.com/&gt;</a></li>
-       </ul>
-       <h4>Shameless Nerdery</h4>
-       <ul>
-       <li><a href="http://xkcd.com/">xkcd &lt;http://xkcd.com/&gt;</a></li>
-       <li><a href="http://worldofwarcraft.com/">World of Warcraft Community Site &lt;http://worldofwarcraft.com/&gt;</a></li>
-       <li><a href="http://build.webkit.org/">WebKit Buildbot &lt;http://build.webkit.org/&gt;</a> - but only when it&#8217;s green </li>
-       </ul>
-]]></content:encoded>
-                       <wfw:commentRSS>http://webkit.org/blog/?feed=rss2&amp;p=77</wfw:commentRSS>
-       </item>
-               <item>
-               <title>ADC Article about Apple Nightly Builds</title>
-               <link>http://webkit.org/blog/?p=78</link>
-               <comments>http://webkit.org/blog/?p=78#comments</comments>
-               <pubDate>Sat, 04 Nov 2006 02:33:23 +0000</pubDate>
-               <dc:creator>maciej</dc:creator>
-               
-       <category>Uncategorized</category>
-               <guid>http://webkit.org/blog/?p=78</guid>
-               <description><![CDATA[  Apple Developer Connection has posted an article on using nightly builds. Most of this content won&#8217;t be news to people who are already using nightlies. But it might be of interest to web developers and application developers who have not tried nightlies yet. There is also some interesting info about canvas changes.
-
-]]></description>
-                       <content:encoded><![CDATA[      <p>Apple Developer Connection has posted an article on <a href="http://developer.apple.com/opensource/internet/nightlywebkit.html">using nightly builds</a>. Most of this content won&#8217;t be news to people who are already using <a href="http://nightly.webkit.org">nightlies</a>. But it might be of interest to web developers and application developers who have not tried nightlies yet. There is also some interesting info about canvas changes.
-</p>
-]]></content:encoded>
-                       <wfw:commentRSS>http://webkit.org/blog/?feed=rss2&amp;p=78</wfw:commentRSS>
-       </item>
-               <item>
-               <title>Sam Weinig is a WebKit Reviewer</title>
-               <link>http://webkit.org/blog/?p=76</link>
-               <comments>http://webkit.org/blog/?p=76#comments</comments>
-               <pubDate>Wed, 01 Nov 2006 01:00:05 +0000</pubDate>
-               <dc:creator>maciej</dc:creator>
-               
-       <category>Uncategorized</category>
-               <guid>http://webkit.org/blog/?p=76</guid>
-               <description><![CDATA[  Sam Weinig is now a qualified WebKit reviewer. Sam has done a lot of coding in different areas of WebKit, including large refactoring changes and coding style cleanup, as well as large projects like autogenerating the Objective-C DOM bindings. At this point, he probably knows the coding style guidelines better than most of the existing [...]]]></description>
-                       <content:encoded><![CDATA[      <p>Sam Weinig is now a qualified WebKit reviewer. Sam has done a lot of coding in different areas of WebKit, including large refactoring changes and coding style cleanup, as well as large projects like autogenerating the Objective-C DOM bindings. At this point, he probably knows the coding style guidelines better than most of the existing reviewers. And now you get to bug him to review your patches.</p>
-       <p>Please join me in congratulating Sam.</p>
-]]></content:encoded>
-                       <wfw:commentRSS>http://webkit.org/blog/?feed=rss2&amp;p=76</wfw:commentRSS>
-       </item>
-               <item>
-               <title>Optimizing Page Load Time (and a little about the Debug menu)</title>
-               <link>http://webkit.org/blog/?p=75</link>
-               <comments>http://webkit.org/blog/?p=75#comments</comments>
-               <pubDate>Tue, 31 Oct 2006 06:28:04 +0000</pubDate>
-               <dc:creator>maciej</dc:creator>
-               
-       <category>Uncategorized</category>
-               <guid>http://webkit.org/blog/?p=75</guid>
-               <description><![CDATA[  We don&#8217;t usually just repost content from other blogs here. But a lot of web developers seem to read this site, and those of us who work on WebKit are totally into loading web pages as fast as possible. With that in mind, here&#8217;s a great article on Optimizing Page Load Time. I recommend reading [...]]]></description>
-                       <content:encoded><![CDATA[      <p>We don&#8217;t usually just repost content from other blogs here. But a lot of web developers seem to read this site, and those of us who work on WebKit are totally into loading web pages as fast as possible. With that in mind, here&#8217;s a great article on <a href="http://www.die.net/musings/page_load_time/">Optimizing Page Load Time</a>. I recommend reading and applying much of the advice here. However, I&#8217;ll note that we have experimented with using HTTP pipelining for Safari in the past, too many major servers gave garbage results in the face of it. While we may periodically re-evaluate this, we are not holding back on it out of spite or anything.</p>
-       <p>Another tip you might find handy as a web developer is the &#8220;Show Page Load Test Window&#8221; option in the Safari Debug menu. You can turn on the Debug menu by typing <code>defaults write com.apple.Safari IncludeDebugMenu YES</code> at a shell prompt, and then restarting Safari. This menu includes a number of rough debugging tools that we created mainly for browser testing, but you may find some of them handy for web development. The page load test in particular is interesting because it measures page load time in a more precise way than either onload timing or just using a stopwatch. If you change the &#8220;Suite&#8221; pop-up menu to &#8220;URL&#8221;, you can type the URL of your choice and get a fairly precise time for loading it. If you empty the cache first, you can get an uncached time.</p>
-       <p>I recommend trying this a couple of times as you test your site. We&#8217;ve found that it&#8217;s a lot easier to improve performance when you have a precise way to measure it.</p>
-]]></content:encoded>
-                       <wfw:commentRSS>http://webkit.org/blog/?feed=rss2&amp;p=75</wfw:commentRSS>
-       </item>
-               <item>
-               <title>Adobe Apollo Uses WebKit</title>
-               <link>http://webkit.org/blog/?p=74</link>
-               <comments>http://webkit.org/blog/?p=74#comments</comments>
-               <pubDate>Mon, 30 Oct 2006 10:11:55 +0000</pubDate>
-               <dc:creator>maciej</dc:creator>
-               
-       <category>Uncategorized</category>
-               <guid>http://webkit.org/blog/?p=74</guid>
-               <description><![CDATA[  A few months ago, Adobe announced Apollo, a tool that lets you build desktop applications based on Flash and web technologies like HTML and JavaScript. A bunch of blog posts have features whizzy screenshots. This is pretty cool stuff, you can use all your web development skills to make slick looking desktop apps.
-       Even more exciting, [...]]]></description>
-                       <content:encoded><![CDATA[      <p>A few months ago, Adobe announced <a href="http://labs.adobe.com/wiki/index.php/Apollo">Apollo</a>, a tool that lets you build desktop applications based on Flash and web technologies like HTML and JavaScript. A bunch of blog posts have features <a href="http://blog.digitalbackcountry.com/?p=75">whizzy screenshots</a>. This is pretty cool stuff, you can use all your web development skills to make slick looking desktop apps.</p>
-       <p>Even more exciting, Adobe has announced that Apollo <a href="http://casario.blogs.com/mmworld/2006/10/apollo_will_use.html">will use WebKit</a> as its HTML layout engine. Welcome to the world of WebKit, Adobe.</p>
-]]></content:encoded>
-                       <wfw:commentRSS>http://webkit.org/blog/?feed=rss2&amp;p=74</wfw:commentRSS>
-       </item>
-               <item>
-               <title>Color Spaces</title>
-               <link>http://webkit.org/blog/?p=73</link>
-               <comments>http://webkit.org/blog/?p=73#comments</comments>
-               <pubDate>Sun, 22 Oct 2006 11:37:48 +0000</pubDate>
-               <dc:creator>hyatt</dc:creator>
-               
-       <category>Uncategorized</category>
-               <guid>http://webkit.org/blog/?p=73</guid>
-               <description><![CDATA[  I was pointed to this article about color spaces in Web browsers.  The ultimate point of the article, that it would be good for a Web browser to be &#8220;Color Smart&#8221;, i.e., to support not only embedded color profiles in images but also to correct unprofiled images to sRGB is a sound one.  [...]]]></description>
-                       <content:encoded><![CDATA[      <p>I was pointed to this article about <a href="http://regex.info/blog/photo-tech/color-spaces-page3">color spaces in Web browsers</a>.  The ultimate point of the article, that it would be good for a Web browser to be &#8220;Color Smart&#8221;, i.e., to support not only embedded color profiles in images but also to correct unprofiled images to sRGB is a sound one.  However, the author takes a few potshots at Web browsers on the Mac, and I thought I&#8217;d respond to make it clear what the technical hurdles are with this problem.</p>
-       <p>First of all, if you correct unprofiled images to sRGB, you have to correct all drawing to sRGB.  This includes everything drawn by CSS (borders, backgrounds, text).  This is not difficult to do under the hood, although it is difficult to do it with no performance regression in our benchmarks at all.  In fact we even tried this during the Tiger development cycle (just correcting everything drawn to sRGB), but it slowed us down.</p>
-       <p>The big hurdle that we ran into, though, was with the drawing we did not control, namely the Flash plug-in.  The problem is that designers specify colors in Flash and colors in CSS in the Web page, and they expect those colors to match.  Because Flash&#8217;s drawing isn&#8217;t correcting to sRGB, if we did it in Safari, there would be color mismatches all over the place.  These mismatches look far worse than if we just don&#8217;t correct at all.</p>
-       <p>(This mismatch with plug-ins is presumably the reason that this feature was not enabled by default in Mac IE.)</p>
-]]></content:encoded>
-                       <wfw:commentRSS>http://webkit.org/blog/?feed=rss2&amp;p=73</wfw:commentRSS>
-       </item>
-               <item>
-               <title>Safari Market Share Continues to Increase</title>
-               <link>http://webkit.org/blog/?p=71</link>
-               <comments>http://webkit.org/blog/?p=71#comments</comments>
-               <pubDate>Tue, 10 Oct 2006 20:23:16 +0000</pubDate>
-               <dc:creator>maciej</dc:creator>
-               
-       <category>Uncategorized</category>
-               <guid>http://webkit.org/blog/?p=71</guid>
-               <description><![CDATA[  According to recent reports, Safari market share is still increasing. According to one survey, it&#8217;s up to 3.56%. The total including other WebKit-based browsers could be even higher, it&#8217;s hard to tell from the somewhat thin stats. It&#8217;s cool to see WebKit getting more and more users in any case.
-
-]]></description>
-                       <content:encoded><![CDATA[      <p>According to recent reports, <a href="http://www.macnewsworld.com/rsstory/53528.html">Safari market share is still increasing.</a> According to one survey, it&#8217;s up to 3.56%. The total including other WebKit-based browsers could be even higher, it&#8217;s hard to tell from the somewhat thin stats. It&#8217;s cool to see WebKit getting more and more users in any case.
-</p>
-]]></content:encoded>
-                       <wfw:commentRSS>http://webkit.org/blog/?feed=rss2&amp;p=71</wfw:commentRSS>
-       </item>
-       </channel>
-</rss>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/feeds/zimbra-atom.xml b/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/feeds/zimbra-atom.xml
deleted file mode 100644 (file)
index 2a09b91..0000000
+++ /dev/null
@@ -1,699 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
-<title>Zimbra - Blog</title>
-<link rel="alternate" type="text/html" href="http://www.zimbra.com/blog/" />
-<modified>2006-11-15T04:46:36Z</modified>
-<tagline>All things Zimbra</tagline>
-<id>tag:www.zimbra.com,2006:/blog//1</id>
-<generator url="http://www.movabletype.org/" version="3.2">Movable Type</generator>
-<copyright>Copyright (c) 2006, Kevin</copyright>
-<entry>
-<title>What&apos;s new in ZCS 4.5 Beta 1</title>
-<link rel="alternate" type="text/html" href="http://www.zimbra.com/blog/archives/2006/11/whats_new_in_zc.html" />
-<modified>2006-11-15T04:46:36Z</modified>
-<issued>2006-11-15T04:12:42Z</issued>
-<id>tag:www.zimbra.com,2006:/blog//1.129</id>
-<created>2006-11-15T04:12:42Z</created>
-<summary type="text/plain">We posted the first beta of Zimbra 4.5 this past Friday. Major new features of 4.5 include complex password enforcement, identities, personal distro lists&apos;s, server performance improvements, backup/restore in the admin console, a search builder in the admin console, user-set...</summary>
-<author>
-<name>Kevin</name>
-<url>www.zimbra.com</url><email>kevinh@zimbra.com</email></author>
-<dc:subject>Kevin Henrikson</dc:subject><content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.zimbra.com/blog/">
-<![CDATA[<p>We <a href="http://www.zimbra.com/forums/showthread.php?t=5380">posted</a> the first beta of Zimbra 4.5 this past Friday.</p>
-
-<p>Major new features of 4.5 include complex password enforcement, identities, personal distro lists's, server performance improvements, backup/restore in the admin console, a search builder in the admin console, user-set default fonts for HTML compose, an upgrade to use MySQL 5.0, and a Lotus Domino migration wizard.  More details can be found in the <a href="http://www.zimbra.com/pdf/Zimbra%20OS%204.5%20Beta%201%20Release%20Notes.pdf">beta release notes</a>.</p>]]>
-
-</content>
-</entry>
-<entry>
-<title>How much data does Zimbra Mobile use?</title>
-<link rel="alternate" type="text/html" href="http://www.zimbra.com/blog/archives/2006/11/how_much_data_does_zimbra_mobile_use.html" />
-<modified>2006-11-15T04:11:35Z</modified>
-<issued>2006-11-15T03:49:42Z</issued>
-<id>tag:www.zimbra.com,2006:/blog//1.128</id>
-<created>2006-11-15T03:49:42Z</created>
-<summary type="text/plain">Lots of people have asked how much data Zimbra Mobile uses over the wire. Just got my Cingular bill so thought I&apos;d post a screen shot to help explain. ...</summary>
-<author>
-<name>Kevin</name>
-<url>www.zimbra.com</url><email>kevinh@zimbra.com</email></author>
-<dc:subject>Kevin Henrikson</dc:subject><content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.zimbra.com/blog/">
-<![CDATA[<p>Lots of people have asked how much data <a href="http://www.zimbra.com/products/zimbra_mobile.html">Zimbra Mobile</a> uses over the wire.  Just got my Cingular bill so thought I'd post a screen shot to help explain.  </p>]]>
-<![CDATA[<p>This is just a snapshot of one day Nov 7th and the total is for the previous 30days.  My Nokia E61 is configured to sync every 15min from 8am -> 8pm 7days a week and then every 4hrs overnight (8pm->8am)  On avg each check for mail, calendar, and contacts consumes ~20KB which turns out to be about 1.3MB per day or ~40MB per month.  Cingular has a $19.99 Media Max plan that gives you unlimited data and 200 txt msgs so it works out pretty well.</p>
-
-<p><img alt="Zimbra Mobile Data Usage" src="http://www.zimbra.com/blog/archives/images/Picture%209.png" width="671" height="796" /><br />
-</p>]]>
-</content>
-</entry>
-<entry>
-<title>Taking Zimbra Offline</title>
-<link rel="alternate" type="text/html" href="http://www.zimbra.com/blog/archives/2006/11/taking_zimbra_offline.html" />
-<modified>2006-11-09T19:43:13Z</modified>
-<issued>2006-11-09T17:32:10Z</issued>
-<id>tag:www.zimbra.com,2006:/blog//1.127</id>
-<created>2006-11-09T17:32:10Z</created>
-<summary type="text/plain">Zimbra users have been asking for how they can take the Zimbra AJAX UI offline. Today at Web 2.0 we demo&apos;d this for the first time. ...</summary>
-<author>
-<name>Kevin</name>
-<url>www.zimbra.com</url><email>kevinh@zimbra.com</email></author>
-<dc:subject>Kevin Henrikson</dc:subject><content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.zimbra.com/blog/">
-<![CDATA[<p>Zimbra users have been asking for how they can take the Zimbra AJAX UI offline.  Today at Web 2.0 we demo'd this for the first time. </p>]]>
-<![CDATA[<p> The design goal is to have the same user experience with Zimbra both online and offline.  Technically the Zimbra Offline client is the same AJAX client UI but now connecting to a local sync'd cache of the data and more importantly the ability to search, tag, organize, etc without network access.  The two way sync of mail, calendar, contacts, and documents will allow Zimbra user's to take their collaboration data together with the Zimbra AJAX experience with them on the road or in places without a network connection and when they come back online - all of the changes made while offline (like composing, deleting, moving, creating messages, contacts, events or folders) are sync'd back to the cloud. Just like traditional offline mail clients - messages pending to be sent are stored in an Outbox where you can edit and view them until re-connected.  You'll notice in the screenshots that both POP accounts and RSS feed folders are sync'd when in offline mode just as when online.  RSS folders have been part of Zimbra for a while.  POP aggregation will be part of our next major release and IMAP will be added shortly after that.  Mail identities allows you to respond with the FROM and REPLY-TO addresses that the mail come with - responding to mail POP'd from gmail; Zimbra will automatically set the FROM address to your @gmail.com account.  This feature is also useful for people who would like to respond as support@company.com when responding on behalf of a support team mail list for example.  Mail identities will also be part of Zimbra's next major release. Watch this space for more  on the architecture of the offline sync cache - meanwhile below are some screenshots. The beta version of the offline client for email and contacts will be available in Q4. </p>
-
-<p><img alt="Zimbra Outbox" src="http://www.zimbra.com/blog/archives/images/Picture%201.png" width="356" height="244" /><br/></p>
-
-<p><img alt="Zimbra Offline Compose" src="http://www.zimbra.com/blog/archives/images/Picture%202.png" width="713" height="450" /><br/></p>
-
-<p><img alt="Zimbra Offline POP accounts" src="http://www.zimbra.com/blog/archives/images/Picture%203.png" width="511" height="462" /><br/></p>
-
-<p><img alt="Zimbra Offline Sync" src="http://www.zimbra.com/blog/archives/images/Picture%204.png" width="427" height="252" /><br/></p>
-
-<p><img alt="Zimbra Mail Identities" src="http://www.zimbra.com/blog/archives/images/Picture%205.png" width="666" height="482" /></p>
-
-<p></p>
-
-<p></p>]]>
-</content>
-</entry>
-<entry>
-<title>Busy week @ Zimbra</title>
-<link rel="alternate" type="text/html" href="http://www.zimbra.com/blog/archives/2006/11/busy_week_zimbra.html" />
-<modified>2006-11-07T00:08:50Z</modified>
-<issued>2006-11-06T23:53:34Z</issued>
-<id>tag:www.zimbra.com,2006:/blog//1.126</id>
-<created>2006-11-06T23:53:34Z</created>
-<summary type="text/plain">Several events going on this week. Satish, John and Greg will be at VMWorld where Satish will take part in tomorrow&apos;s keynote. Later this week at ISPCon I&apos;ll be on a panel - What the Web 2.0?. Last but not...</summary>
-<author>
-<name>Kevin</name>
-<url>www.zimbra.com</url><email>kevinh@zimbra.com</email></author>
-<dc:subject>Kevin Henrikson</dc:subject><content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.zimbra.com/blog/">
-<![CDATA[<p>Several events going on this week.  Satish, John and Greg will be at <a href="http://www.vmware.com/vmworld/">VMWorld</a> where Satish will take part in <a href="https://www.vmware.com/vmworld/agenda_keynotes.html">tomorrow's keynote</a>.  Later this week at <a href="http://www.ispcon.com/">ISPCon</a> I'll be on a panel - <a href="http://www.ispcon.com/conference/sessionsbyday.php#E6">What the Web 2.0?</a>.  Last but not least <a href="http://www.web2con.com/cs/web2006/view/e_spkr/2441">Satish</a> will be back on the main stage at <a href="http://www.web2con.com/">Web 2.0</a>.  For those who missed it last year; <a href="http://blogsearch.google.com/blogsearch?hl=en&q=zimbra+web+2.0&ie=UTF-8&as_maxm=11&as_miny=2005&as_maxy=2005&as_minm=10&as_mind=1&as_maxd=1&as_drrb=b&ctz=480&c1cr=10%2F1%2F2005&c2cr=11%2F1%2F2005&btnD=Go">Zimbra launched at Web 2.0</a>.</p>]]>
-
-</content>
-</entry>
-<entry>
-<title>The Ajax Experience, Oct 23-25, Boston, MA</title>
-<link rel="alternate" type="text/html" href="http://www.zimbra.com/blog/archives/2006/10/the_ajax_experi.html" />
-<modified>2006-11-02T20:10:26Z</modified>
-<issued>2006-10-29T19:08:04Z</issued>
-<id>tag:www.zimbra.com,2006:/blog//1.125</id>
-<created>2006-10-29T19:08:04Z</created>
-<summary type="text/plain">Below are random thoughts on three days in Boston at The Ajax Experience. I gave a talk titled Ajax in the Enterprise....</summary>
-<author>
-<name>Conrad</name>
-<email>cdamon@zimbra.com</email></author>
-<dc:subject>Conrad Damon</dc:subject><content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.zimbra.com/blog/">
-<![CDATA[<p>Below are random thoughts on three days in Boston at <br />
-<a href="http://www.theajaxexperience.com">The Ajax Experience</a>. I gave a talk titled <a href="http://www.theajaxexperience.com/s/show/59/slides/Conrad_Damon/Ajax_in_the_Enterprise.pdf">Ajax in the Enterprise</a>.</p>]]>
-<![CDATA[<p>... AOL was giving away T-shirts by the hundreds, in solid, bright colors with <br />
-words like "Geek" or "2.0" on them. Some conferencegoers walked away with <br />
-several, which wasn't discouraged - there seemed to be an endless supply. Every <br />
-time I walked by the booth I wanted ("want" isn't the right word, it's more the <br />
-primal lust for free stuff) to grab a shirt or two, when the last thing in the <br />
-world I need is more T-shirts. Eight years ago when I moved I gave 99 shirts, <br />
-most of them unworn, to the Salvation Army. These were garish and ugly, and <br />
-trying in AOL's typically disingenuous way to plug into geek culture. Plus, <br />
-there's the associated guilt of all those unopened CDs taking up landfill space. <br />
-Hence the little cartoon angel on my right shoulder. Of course, the little <br />
-cartoon devil on my left shoulder made himself heard: "Dude, it's FREE! Don't be <br />
-such a Herb! If you don't take one, someone else will get it. You've earned it. <br />
-And dude: it's FREE!" So it went, and every walk past the AOL booth became an <br />
-exercise in self-denial of something I didn't actually want at all, and the <br />
-thimbleful of pride I felt on passing by empty-handed made me feel like some sort of <br />
-lame modern-day ascetic.</p>
-
-<p>... speaking of AOL (I don't mean to pick on AOL, even the newly warm and fuzzy <br />
-AOL, but they make it really easy), one of their minions gave a keynote during <br />
-which he screened a movie where they went up to people on the street or in the <br />
-grocery store and asked them what they thought "Ajax" was. And OH MY GAWD (the <br />
-voice here should be Dr Cox from Scrubs), they thought it was a cleanser! What a <br />
-bunch of losers!</p>
-
-<p>Crikey.</p>
-
-<p>... really regret my get-out-of-Dodge trip planning, which made me miss Brendan <br />
-Eich's closing keynote on Javascript 2.</p>
-
-<p>... "stack" is the new "solution".</p>
-
-<p>... <a href="http://www.openqa.org/selenium/">Selenium</a>, a product for doing functional client <br />
-testing in an Ajax environment, got a lot of buzz. Our QA team is looking into it. They've had to <br />
-pound on Mercury's QTP pretty hard to get it to work with our client, and I'm hoping <br />
-Selenium will be way more straightforward.</p>
-
-<p>... the booths from some of the sponsors such as Google, Sun, and Ask were more<br />
-focused on recruiting than on demos, always a sign of a technology on its way up.</p>
-
-<p>... after the experts' panel on Monday night, I headed to the hotel bar and met <br />
-up with the Netflix crew. As a longtime Netflix member, I couldn't resist rattling on <br />
-about what I liked and disliked about their site and service. Not only did they <br />
-listen - brave souls - they bought me beer. The more beer I had in me, the more <br />
-clever and insightful I became, and I think they caught on to that.</p>
-
-<p>The Netflix UI makes for a great case study in how going from HTML to Ajax <br />
-can improve the user experience.</p>
-
-<p>... there is a bewildering array of Ajax toolkits out there, and at least two of <br />
-the presentations were overviews of frameworks. The space has exploded, and <br />
-sooner rather than later, it will contract. Documentation, often overlooked, <br />
-will be key to adoption. It's hard to bet against <br />
-<a href="http://www.dojotoolkit.org/">Dojo</a>, with its breadth, careful design, and technical impressiveness. <br />
-I heard good things about <a href="http://jquery.com/">jQuery</a>, and <a href="http://developer.yahoo.com/yui/">YUI</a> looks clean. For all-Java shops there's <br />
-<a href="http://code.google.com/webtoolkit/">GWT</a>, and possibly <a ref="http://getahead.ltd.uk/dwr">DWR</a>.</p>
-
-<p>... My ad hoc plan of attack, and reviews, in order of attendance:</p>
-
-<p>Leveraging Ajax for Enterprise Application Development - mostly good <br />
-content, somewhat awkwardly delivered. Best part was practical tips for shops <br />
-coming up to speed on Ajax.</p>
-
-<p>Javascript Exposed: There's a Real Programming Language in There (Pt 1), by <br />
-Glenn Vanderburg - had intended to go to Mahemoff's talk on design patterns, but <br />
-he didn't make it to the conference. Glenn's an engaging presenter, which eased <br />
-the fact that it was mostly a tutorial of what you'd find in the O'Reilly book. <br />
-Glenn did a good job of focusing on important bits of the language that are <br />
-often glossed, and I really liked his lists of what he believes the language <br />
-designers got right and wrong.</p>
-
-<p>Ruining the User Experience, by Aaron Gustafson - the scope of this presentation <br />
-was smaller than I had hoped. From the summary, I thought it would cover UI <br />
-idioms that have been made possible by Ajax but which don't improve the user <br />
-experience, but it was almost all about what to do when Javascript is<br />
-disabled.</p>
-
-<p>Frameworks Guide, by Nathaniel Schutta - came to this one as a refugee from a <br />
-TIBCO-centric talk on building desktop-like apps in Ajax. It was good to get an <br />
-overview, delivered capably and neutrally, since having developed our own <br />
-toolkit I'm not familiar with others.</p>
-
-<p>Intro to Dojo / Dojo in Depth, by Alex Russell - Dojo looks pretty awesome, and <br />
-Alex is super-smart. Dojo obviously goes beyond Ajax, and even within Ajax it <br />
-offers much more than widgets and neat effects. Their event system, the new <br />
-SVG/VML support, and XhrIframeRequest were highlights. I'll be looking soon into <br />
-using its package system to leverage deferred loading of ZCS components.</p>
-
-<p>IE7: From Ajax to RSS and More: How to Take Full Advantage, by Chris Wilson - <br />
-acutally: quite: interesting. IE7 will make app developers very happy, and app <br />
-maintainers very unhappy. It's really frightening to think of the untold numbers <br />
-of websites out there that rely on the many ways in which IE6 is broken (insert <br />
-truism about reaping what you sow). As much grief as they deservedly get, MS <br />
-appears to be committing to standards as far as its browser goes (thank you, <br />
-market forces). Best news for me is that they fixed the garbage collector, so <br />
-memory no longer leaks at the drop of a hat. They also fixed the SELECT <br />
-element's behavior with regard to z-index, the gzip caching problem, and untold <br />
-CSS bugs.</p>
-
-<p>JSON: The X in Ajax, by Douglas Crockford - the case for JSON is a strong one, <br />
-as XML is often overkill for shuttling data around. I love its simplicity and <br />
-compactness. Of particular interest: JSONRequest and a proposed MODULE tag to <br />
-address cross-domain security issues. Near the end there was an odd moment when <br />
-John Resig (jQuery) posed a reasonable-sounding question about whether JSON <br />
-performance scales well across large datasets when compared with XML, and the <br />
-immediate response was "Next question." Not sure what to conclude from that.</p>
-
-<p>Designing for Ajax, by Bill Scott - bailed on a performance talk that turned out <br />
-to be Gomez-centric and came here. Great presentation. Bill used Yahoo as well <br />
-as other sites to point out good and bad Ajax-enabled interaction patterns. <br />
-Makes me want to check out the Yahoo design patterns library.</p>
-
-<p>Case Study: Building Great UI, the Netflix Way, by Sean Kane - everyone loves <br />
-Hypnotoad, I mean Netflix. What was interesting here (aside from the obvious <br />
-fascination with the service) was how extensively they test in UI labs with <br />
-regular folks before rolling out changes, often trying out several possible <br />
-versions of a UI feature. It would be nice if we could eventually get real-world <br />
-data like that.</p>]]>
-</content>
-</entry>
-<entry>
-<title>Firefox 2 vs IE 7</title>
-<link rel="alternate" type="text/html" href="http://www.zimbra.com/blog/archives/2006/10/firefox_2_vs_ie_1.html" />
-<modified>2006-10-25T23:56:26Z</modified>
-<issued>2006-10-25T21:33:29Z</issued>
-<id>tag:www.zimbra.com,2006:/blog//1.124</id>
-<created>2006-10-25T21:33:29Z</created>
-<summary type="text/plain">Last week I posted an entry comparing IE 7 with Firefox 1.5 and the venerable IE 6. Lot&apos;s of folks have since asked for Firefox 2 to be added to the mix. The reason we didn&apos;t initially include Firefox 2...</summary>
-<author>
-<name>Ross</name>
-<email>ross@zimbra.com</email></author>
-<dc:subject>Ross Dargahi</dc:subject><content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.zimbra.com/blog/">
-<![CDATA[<p>Last week I posted an <a href='http://www.zimbra.com/blog/archives/2006/10/ie_7_a_better_b.html'>entry</a> comparing IE 7 with Firefox 1.5 and the venerable IE 6. Lot's of folks have since asked for Firefox 2 to be added to the mix. The reason we didn't initially include Firefox 2 is because it was not at the time officially released and so we felt it unfair for it to be included. </p>]]>
-<![CDATA[<p>The graph below shows the cumulative time it took for IE 7 and Firefox 2 to execute the Zimbra Web Client (ZWC) peformance tests at various dates leading up to the final release of each browser. As can be seen, both IE and Firefox showed improvement in their final release, and so we think leaving Firefox 2 out of last week's tests was indeed the fair thing to do. </p>
-
-<p><a target='_new' href="http://www.zimbra.com/blog/archives/images/trend.jpg"><br />
-<img alt="trend.jpg" src="http://www.zimbra.com/blog/archives/images/trend.jpg" width="344" height="169" /></a></p>
-
-<p>So now that Firefox 2 has been officially released, how does if fare against IE 7? </p>
-
-<p>We ran each browser over a common set of Zimbra Web Client (ZWC) operations such as logging in, viewing messages, navigating around various folders, changing options, viewing contacts, and performing various calendar operations. As the graph below shows, Firefox 2 beat out IE 7 in just about every operation - sometimes by significant margins. </p>
-
-<p><a target="_new" href="http://www.zimbra.com/blog/archives/images/FF2vsIE7.jpg"><br />
-<img alt="FF2vsIE7.jpg" src="http://www.zimbra.com/blog/archives/images/FF2vsIE7.jpg" width="638" height="144" /></a></p>
-
-<p>We also tested Firefox 2 vs Firefox 1.5.  As seen below, Firefox 2 has not made substantial performance improvements over Firefox 1.5, and has certainly not shown the same order of gain as IE 7 has over IE6.</p>
-
-<p><a target="_new" href="http://www.zimbra.com/blog/archives/images/FF2vsFF15.jpg" ><br />
-<img alt="FF2vsFF15.jpg" src="http://www.zimbra.com/blog/archives/images/FF2vsFF15.jpg" width="603" height="157" /></a></p>
-
-<p>I think the net result is that for highly JavaScript intensive AJAX applications such as the ZWC, Firefox is still the winner by quite a wide margin. Of course your mileage will vary depending on the type and footprint of your client.</p>
-
-<p>I would like to end by saying that we are able to present this data thanks to lots of hard work by Raja Rao of the Zimbra QA department who has spent many long hours building our AJAX client testing framework, and executing the performance tests against the various browsers.</p>]]>
-</content>
-</entry>
-<entry>
-<title>IE 7 vs IE 6</title>
-<link rel="alternate" type="text/html" href="http://www.zimbra.com/blog/archives/2006/10/ie_7_a_better_b.html" />
-<modified>2006-10-19T18:12:50Z</modified>
-<issued>2006-10-19T18:13:00Z</issued>
-<id>tag:www.zimbra.com,2006:/blog//1.123</id>
-<created>2006-10-19T18:13:00Z</created>
-<summary type="text/plain">Back in April I wrote an entry complaining about IE&apos;s performance as a Web 2.0 platform: &quot;From a Web 2.0 application developers perspective (developers who use a lot of JavaScript and DOM manipulation), IE 6 is plagued by a number...</summary>
-<author>
-<name>Ross</name>
-<email>ross@zimbra.com</email></author>
-<dc:subject>Ross Dargahi</dc:subject><content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.zimbra.com/blog/">
-<![CDATA[<p>Back in April  I wrote an <a href="http://www.zimbra.com/blog/archives/2006/04/post.html">entry</a> complaining about IE's performance as a Web 2.0 platform:</p>
-
-<p><i>"From a Web 2.0 application developers perspective (developers who use a lot of JavaScript and DOM manipulation), IE 6 is plagued by a number of well known problems such as its ability to readily leak memory. Regrettably, Microsoft's next release of Internet Explorer, IE 7, does little to resolve these issues."</i></p>
-
-<p>I am happy to say that I was wrong. </p>]]>
-<![CDATA[<p>Microsoft's IE team has clearly been hard at work on improving their browser's memory management and JavaScript performance. IE 7 has made some significant leaps forward based on some initial in house testing here at Zimbra. We are in general observing about a 2x performance improvement with IE 7 vs IE 6 when using the Zimbra Web Client (ZWC).</p>
-
-<p>As is well documented, IE 6 is notoriously bad at leaking memory, particularly due to circular references that include COM objects. The good news is that our tests indicate that this problem has been solved in IE 7. While in our test profile, it appears to consume more memory than Firefox, IE 7 seems to have solved the horrendous memory leaks exhibited in IE 6.</p>
-
-<p>We also looked at the performance of Firefox, IE 6, and IE 7 over a set of common ZWC operations such as logging in, viewing messages, navigating around various folders, viewing contacts, and performing various calendar operations. The graph below shows the relative performance of each browser against the other:</p>
-
-<p><a href="http://www.zimbra.com/blog/archives/images/browserperf.jpg" target="_new"><img alt="browserperf.jpg" src="http://www.zimbra.com/blog/archives/images/browserperf.jpg" width="499" height="130" /></a></p>
-
-<p>Again we see that across just about every operation, IE 7 performs better than IE 6; however, for the most part Firefox still beats out IE 7. When we looked at the sum total time it takes for all operations to be performed (admittedly a coarse grained metric), we noticed that IE 7 was about twice as fast as IE 6; however, Firefox was more than twice as fast as IE 7 and about four times faster than IE 6.</p>
-
-<p>In conclusion, IE 7 has made some quite significant improvements over IE 6, both in terms of performance and memory management; however, there is still room to improve - particularly against Firefox, a challenge I hope the IE team will be taking up.</p>]]>
-</content>
-</entry>
-<entry>
-<title>Zimbra Collaboration Suite 4.0.3 Released</title>
-<link rel="alternate" type="text/html" href="http://www.zimbra.com/blog/archives/2006/10/zimbra_403_released.html" />
-<modified>2006-10-17T23:09:27Z</modified>
-<issued>2006-10-17T23:09:23Z</issued>
-<id>tag:www.zimbra.com,2006:/blog//1.122</id>
-<created>2006-10-17T23:09:23Z</created>
-<summary type="text/plain">ZCS 4.0.3 includes fixes for 55 bugs and enhancements. It has significant improvements in calendar behavior and fixes a bug in Trash folder viewing that was troubling many folks. It also includes upgrade speed improvements. This allows the upgrade to...</summary>
-<author>
-<name>Kevin</name>
-<url>www.zimbra.com</url><email>kevinh@zimbra.com</email></author>
-<dc:subject>Kevin Henrikson</dc:subject><content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.zimbra.com/blog/">
-<![CDATA[<p>ZCS 4.0.3 includes fixes for 55 bugs and enhancements. It has significant improvements in calendar behavior and fixes a bug in Trash folder viewing that was troubling many folks. It also includes upgrade speed improvements. This allows the upgrade to take much better advantage of installs that have multiple disks available to MySQL.</p>
-
-<p><a title="Zimbra - Forums - Zimbra Collaboration Suite 4.0.3 Released" href="http://www.zimbra.com/forums/showthread.php?p=27503">Zimbra - Forums - Zimbra Collaboration Suite 4.0.3 Released</a></p>
-
-<p></p>]]>
-
-</content>
-</entry>
-<entry>
-<title>Thoughts on Office 2.0 (Reprise)</title>
-<link rel="alternate" type="text/html" href="http://www.zimbra.com/blog/archives/2006/10/preliminary_tho.html" />
-<modified>2006-10-21T20:01:05Z</modified>
-<issued>2006-10-17T11:43:14Z</issued>
-<id>tag:www.zimbra.com,2006:/blog//1.121</id>
-<created>2006-10-17T11:43:14Z</created>
-<summary type="text/plain">(FYI: I&apos;ve made some enhancements/corrections based on Zimbra&apos;s participation at the Office 2.0 Conference; pointer below. May or may not be worth a quick reread.) Yes, the &quot;2.0&quot; hype is getting out of hand. However, just as with Web 2.0,...</summary>
-<author>
-<name>Scott</name>
-<url>www.zimbra.com</url><email>scott.dietzen@zimbra.com</email></author>
-<dc:subject>Scott Dietzen</dc:subject><content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.zimbra.com/blog/">
-<![CDATA[<p>(FYI: I've made some enhancements/corrections based on Zimbra's participation at the Office 2.0 Conference; pointer below. May or may not be worth a quick reread.)</p>
-
-<p>Yes,  the "2.0" hype is getting out of hand.  However, just as with <a href="http://www.zimbra.com/blog/archives/2006/06/defining_web_20.html">Web 2.0</a>, the technology evolution we are participating in is sufficent to at least justify the discussion. So while I am still dubious about the Office 2.0 moniker, there is no doubt that the Web authoring, sharing, and collaboration technologies under the Web 2.0 umbrella are allowing us to do many of the things we used to do within proprietary Office 1.0 desktop applications, and to do so from any browser on the net. So before you dismiss Office 2.0 as yet another buzz word <em>du jour</em>, please consider some (modest) over-generalizations: </p>]]>
-<![CDATA[<p><strong>Office 1.0 Users: </strong>Power users (information workers/professionals) <br />
-<strong>Office 2.0 Users: </strong>"All hands" (most everyone who browses)                   </p>
-
-<p><strong>1.0 Model:</strong> Client-centric (desktop applications)   <br />
-<strong>2.0 Model:</strong> Network-centric (web applications)</p>
-
-<p><strong>1.0 Sharing (in the small):</strong> Pass by value <em>(Email)</em>, pass by reference <em>(Public folders)</em><br />
-<strong>2.0 Sharing (in the large):</strong> Adds the ability to use the Internet to pass by value <em>(Email, VoIP, IM, ...) </em> and (effectively) by reference <em>(XHTML pages/hyperlinks, Wiki, Blogs, iCalendar/CalDAV, iTasks, WebDAV, ...)</em>, all with access control</p>
-
-<p><strong>1.0 Navigation (sans meta-data):</strong> <em>Folders       </em><br />
-<strong>2.0 Navigation (with meta-data):</strong> <em>Hyperlinks, indexing & search, tagging, mash-ups …</em></p>
-
-<p><strong>1.0 Editing:</strong> <em>Via proprietary desktop applications; WYSIWYG with change tracking</em><br />
-<strong>2.0 Editing:</strong> <em>From any browser; WYSIWYG (via Ajax authoring) with versioning and history</em></p>
-
-<p><strong>1.0 Data types:</strong> Proprietary<br />
-<strong>2.0 Data types:</strong> Open <em>(XHMTL, ODF, microformats, XML such as via Service-Oriented Architecture/SOA, REST, SOAP, etc.)</em></p>
-
-<p><strong>1.0 Content:</strong> Relatively static, with intra-desktop dynamic components<br />
-<strong>2.0 Content:</strong> More dynamic <em>(including web application-generated content, SOA mash-ups, …)</em></p>
-
-<p><strong>1.0 Multi-document:</strong> <em>Object Linking & Embedding (OLE), Bonobo, …</em> <br />
-<strong>2.0 Multi-document:</strong> <em>Hyperlinks, <a href="http://www.zimbra.com/blog/archives/2006/04/zimbra_ale-ajax_linking_and_embedding.html">Ajax Linking & Embedding (ALE)</a>, mash-ups, ...</em></p>
-
-<p>(No doubt the above takes a rather expansive view of Office 2.0, but then again Office 1.0 arguably covered most all computer-assisted authoring of content. Please also note: The above content would have proved substantially more compelling in an HTML table authored, say, with a WYSIWYG Ajax editor, like that included within the Zimbra Documents applications.)</p>
-
-<p>All this is not to say that Office 2.0 can or should supercede Office 1.0---Zimbra spreadsheets, for example, will not support pivot tables any time soon. I believe our goal should <strong>not</strong> be to reproduce Office 1.0 functionality on a Web 2.0 platform, but rather to realize an easier to use (<em>a.k.a.</em> less complex) collaborative authoring and sharing model that scales with the Internet. Office 2.0 users should be able to (1) author content from anywhere; (2) appropriately reuse and adapt (mash up) content (both static and dynamic) already published on the Internet; and (3) securely collaborate with others in whatever <em>ad hoc</em> fashion best meets their needs.  The fun with "Office 2.0" is that thanks to the maturing of the underlying <a href="http://www.zimbra.com/blog/archives/2006/06/defining_web_20.html">Web 2.0 technologies</a> and near universal success of the Internet, this vision is close to realization.</p>
-
-<p>One thing I'm not yet happy with is that the above description does not draw a very compelling line between  Web 2.0 and Office 2.0. Some technologies are more obvious: for example, Ajax, RSS, and SOA/XML fit under Web 2.0, while Ajax authoring and ALE arguably fit more naturally under Office 2.0. Given the emphesis on collaboration and authoring inherent in the Web 2.0 definition, I think these two potential categories are going to be tough to keep separate. After all, both Office 1.0 and Web 2.0 are about authoring rich content---the difference is that the former is focused on the desktop and "sharing in the small", while the latter is targeting the network and "sharing in the large". Office 2.0 then may merely mean leveraging Web 2.0 technologies to do many/most (?) of the things we used to do in Office 1.0. </p>
-
-<p>(Some of this thinking came out our <a href="http://www.eu.socialtext.net/office20/index.cgi?apis_and_feeds_for_office_2_0">our panel session</a> at the <a href="http://www.office20con.com/conference.html">Office 2.0 Conference</a> in San Francisco, and our <a href="http://wanderingstan.com/2006-08-21/web_2_0_kongress_in_germany">Web 2.0 Kongress</a> session in Germany the day before. Just doing our bit to keep the airlines in the black :-).)</p>]]>
-</content>
-</entry>
-<entry>
-<title>Zimbra Collaboration Suite 4.0 Webinar</title>
-<link rel="alternate" type="text/html" href="http://www.zimbra.com/blog/archives/2006/10/zimbra_40_webinar.html" />
-<modified>2006-10-05T02:35:45Z</modified>
-<issued>2006-10-01T23:07:51Z</issued>
-<id>tag:www.zimbra.com,2006:/blog//1.120</id>
-<created>2006-10-01T23:07:51Z</created>
-<summary type="text/plain">Zimbra Collaboration Suite 4.0 Webinar When: Thurs, October 5th at 10am PST. Length: 60 minutes. Subject: Modern Collaboration with Zimbra Collaboration Suite (ZCS) 4.0 Overview: Fueled by demand for better productivity, the web is exploding as the primary communication medium...</summary>
-<author>
-<name>Kevin</name>
-<url>www.zimbra.com</url><email>kevinh@zimbra.com</email></author>
-<dc:subject>Kevin Henrikson</dc:subject><content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.zimbra.com/blog/">
-<![CDATA[<p><a href="http://www.zimbra.com/about/webinars.html">Zimbra Collaboration Suite 4.0 Webinar</a><br />
-When:</p>
-
-<p>Thurs, October 5th at 10am PST. Length: 60 minutes.</p>
-
-<p>Subject: Modern Collaboration with Zimbra Collaboration Suite (ZCS) 4.0</p>
-
-<p>Overview:<br />
-Fueled by demand for better productivity, the web is exploding as the primary communication medium for the modern organization.</p>
-
-<p>ZCS leads the way, providing powerful next-generation messaging and collaboration.</p>
-
-<p>Join our CTO Scott Dietzen for this free live webinar to see:</p>
-
-<p>    * How ZCS 4.0 is the right solution for today's collaboration demands<br />
-    * Discuss and demo features such as Zimbra Documents, Admin UI, Zimlets, Mobile device sync, Active Directory integration and more…<br />
-    * Why ZCS 4.0 enables organizations to realize the true benefits of an innovative and cost-effective collaboration solution.<br />
-    * Plus live Q & A</p>
-
-<p>Sign up:</p>
-
-<p>Please <a href="http://breeze58226024.breezecentral.com/e78552532/event/registration.html">register</a>; space is limited!</p>]]>
-
-</content>
-</entry>
-<entry>
-<title>Zimbra 4.0.2 released, Ubuntu preview release</title>
-<link rel="alternate" type="text/html" href="http://www.zimbra.com/blog/archives/2006/09/zimbra_ubuntu_preview_release.html" />
-<modified>2006-09-26T06:11:30Z</modified>
-<issued>2006-09-26T05:48:24Z</issued>
-<id>tag:www.zimbra.com,2006:/blog//1.119</id>
-<created>2006-09-26T05:48:24Z</created>
-<summary type="text/plain">We released Zimbra 4.0.2 today and there were a few extras that came along for the ride. First off the Fedora Core 5 build is now GA. We also added a new developer/preview release on Ubuntu. This has been a...</summary>
-<author>
-<name>Kevin</name>
-<url>www.zimbra.com</url><email>kevinh@zimbra.com</email></author>
-<dc:subject>Kevin Henrikson</dc:subject><content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.zimbra.com/blog/">
-<![CDATA[<p>We released Zimbra 4.0.2 today and there were a few extras that came along for the ride.  First off the Fedora Core 5 build is now GA.  We also added a new <a href="http://www.zimbra.com/community/downloads.html">developer/preview release</a> on <a href="http://www.ubuntu.com/">Ubuntu</a>.  This has been a popular <a href="http://www.zimbra.com/forums/showthread.php?t=1644">hack</a> in our forums for sometime.</p>
-
-<p>Here's a sample of some of the other changes/fixes in 4.0.2:</p>
-
-<p>- perf improvements for IMAP (new MySQL indexes)<br />
-- > 2GB support in the Zimbra Outlook Connector<br />
-- i18n and some l10n for the Zimbra Outlook Connector<br />
-- disabling AS/AV causes mail deferral<br />
-- cursor fails to appear in Firefox<br />
-- mailbox quota page does not contain any entries<br />
-- several all day event and timezone bugs fixed</p>]]>
-
-</content>
-</entry>
-<entry>
-<title>Look Ma, No Mouse: Keyboard Navigation and Shortcuts in the Zimbra Collaboration Suite and The Kabuki Ajax Toolkit</title>
-<link rel="alternate" type="text/html" href="http://www.zimbra.com/blog/archives/2006/09/look_ma_no_mous.html" />
-<modified>2006-09-13T07:28:26Z</modified>
-<issued>2006-09-13T07:25:00Z</issued>
-<id>tag:www.zimbra.com,2006:/blog//1.118</id>
-<created>2006-09-13T07:25:00Z</created>
-<summary type="text/plain">Keyboard shortcuts and navigation are indispensable time savers for an application&apos;s frequent and power users. Who among us has not quickly learned the keyboard shortcuts for performing common tasks within an application that we use regularly? Unfortunately, one of the...</summary>
-<author>
-<name>Ross</name>
-<email>ross@zimbra.com</email></author>
-<dc:subject>Ross Dargahi</dc:subject><content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.zimbra.com/blog/">
-<![CDATA[<p>Keyboard shortcuts and navigation are indispensable time savers for an application's frequent and power users. Who among us has not quickly learned the keyboard shortcuts for performing common tasks within an application that we use regularly? </p>
-
-<p>Unfortunately, one of the more common complaints against web-based applications is that they are, in many instances, lacking when it comes to supporting keyboard shortcuts and navigation. Frankly, the lack of keyboard support (both shortcuts and navigation) is something that has annoyed me about the Zimbra Collaboration Suite (ZCS), and it is something that I have been wanting to add to both Kabuki (the Zimbra Ajax Toolkit) and the ZCS; however, I didn't want to just stuff in some basic keyboard shortcuts and call it a day. Instead, I wanted to have a go at implementing the same level of keyboard support that most traditional UI toolkits and desktop applications support. This actually turned out to involve quite a bit of work - for example, since only input elements may have focus (in most browsers) we needed to simulate and track focus for toolkit components which frequently have no native input element associated with them - but at the end of the day, I think it was worth the effort.</p>]]>
-<![CDATA[<p>So the good news is that Kabuki now provides a pretty rich keyboard model that in many ways approximates the level of support found in more traditional UI toolkits. Specifically, this includes support for a canonical focus model, customizable key bindings in UI widgets (not all of them just yet), as well as full support for tab group hierarchies for navigating native and toolkit visual components in an orderly fashion via the tab and arrow keys. Conrad (one of Zimbra's lead Ajax architects), took this work to the next level by implementing keyboard navigation and shortcuts throughout the ZCS and by improving the framework itself. As a result the ZCS now has significant keyboard support in version 4.0, about 80% coverage at the moment, and we are working towards making that even higher. Future work also includes normalized mappings among browsers (very high on our list), I18N support, and supporting custom user-defined bindings.</p>
-
-<p>The bottom line is that the ZCS now supports some pretty spiffy keyboard actions (over 100 of them) including:<br />
-<ul><li>Navigating among the various ZCS apps<br />
-<li>Navigation and selection within a list of items<br />
-<li>Composing and sending an email message<br />
-<li>Creating calendar appointments<br />
-<li>Switching among calendar views<br />
-<li>Creating new tags, folders, calendars, etc<br />
-<li>Popping up the Zimbra Assistant<br />
-<li>Changing views<br />
-<li>Popping up, interacting with, and dismissing context menus<br />
-</ul></p>
-
-<p>You can find a more complete list of supported keyboard events on the  <a href="http://wiki.zimbra.com/index.php?title=Zimbra_Web_Client_Keyboard_Shortcuts ">Zimbra Wiki</a></p>
-
-<p>Now onto some of the more technical details on Zimbra's keyboard support. </p>
-
-<p>The keyboard management infrastructure is implemented in the DHTML Widget Toolkit (DWT), which is the Kabuki Ajax toolkit's UI framework. DWT consists of a component model, numerous widgets, an event model, drag and drop infrastructure, and now a keyboard shortcut and navigation model. DWT is loosely modeled after SWT. There are several elements that compose DWT's keyboard management framework:</p>
-
-<h4>Key Maps</h4><p>
-A key map is a set of key bindings. A key binding maps a key sequence to an action. For example, I may decide that "Ctrl+U" marks an email message as unread, or I may decide that a multi-key sequence such as "Ctrl+N" followed by the letter "M" will create a new mail message (Note that by default, there is a 750ms timeout between keys for a multiple-key sequence, though this is configurable via the DwtKeyboardMgr class described later). 
-
-<p>DwtKeyMap is the base class for key maps and provides bindings for DWT widgets. Below is a snippet from DwtKeyMap's constructor showing the key bindings for some of the widgets. Note how key sequences bind to the symbolic constants representing keyboard actions:</p>
-
-<pre>
-function DwtKeyMap() {
-    [snip...]
-    this._map["DwtDialog"] = {
-        "Enter":  DwtKeyMap.ENTER,
-        "Esc":    DwtKeyMap.CANCEL
-    };
-    this._map["DwtButton"] = {
-        "Enter":        DwtKeyMap.SELECT_CURRENT,
-        "ArrowDown":    DwtKeyMap.SELECT_SUBMENU
-    };
-    this._map["DwtListView"] = {
-        "Space":             DwtKeyMap.SELECT_CURRENT,
-        "Ctrl+Space":        DwtKeyMap.ADD_SELECT_CURRENT,
-        "Ctrl+`":            DwtKeyMap.ADD_SELECT_CURRENT, // Mac FF
-        "ArrowDown":         DwtKeyMap.SELECT_NEXT,
-        "Shift+ArrowDown":   DwtKeyMap.ADD_SELECT_NEXT,
-        "Ctrl+ArrowDown":    DwtKeyMap.NEXT,
-        "ArrowUp":           DwtKeyMap.SELECT_PREV,
-        "Shift+ArrowUp":     DwtKeyMap.ADD_SELECT_PREV,
-        "Ctrl+ArrowUp":      DwtKeyMap.PREV,
-        "Ctrl+A":            DwtKeyMap.SELECT_ALL,
-        "Home":              DwtKeyMap.SELECT_FIRST,
-        "End":               DwtKeyMap.SELECT_LAST,
-        "Enter":             DwtKeyMap.DBLCLICK,
-        "Comma":             DwtKeyMap.ACTION,
-        "Shift+Comma":       DwtKeyMap.ACTION,
-        "Ctrl+Enter":        DwtKeyMap.ACTION,
-        "Ctrl+M":            DwtKeyMap.ACTION  // Mac FF
-    };
-    this._map["DwtMenu"] = {
-        "Esc":          DwtKeyMap.CANCEL,
-        "Enter":        DwtKeyMap.SELECT_CURRENT,   
-        "ArrowDown":    DwtKeyMap.SELECT_NEXT,
-        "ArrowUp":      DwtKeyMap.SELECT_PREV,
-        "ArrowLeft":    DwtKeyMap.SELECT_PARENTMENU,
-        "ArrowRight":   DwtKeyMap.SELECT_SUBMENU
-    };
-    [snip...]
-};
-</pre>
-
-<p>Applications may inherit from the above class and add their own maps or override existing ones (for example when subclassing widgets). Note that component and application authors don't need to worry about key sequences, rather they just need to implement the actions that their components support.  The keyboard management framework takes care of handling the mapping from key sequences to actions. Once a key sequence has been mapped to an action,  the action is passed to the handleKeyAction() method defined by the component (See the sections of DwtKeyboardMgr and DwtControl below for more details). </p>
-
-<p>Decoupling key bindings and actions makes it easy to change the key binding for a given action, or to allow multiple key bindings for that action. Key maps may inherit (including multiply) from other key maps. This allows for extensions as well as application-wide (or default) key maps.</p>
-
-<p>The sample code below shows a portion of the ZCS's key map. Notice how the ZmMailListController inherits from the Global key map.</p>
-
-<pre>
-function ZmKeyMap() {
-    this._map["Global"] = {   
-        "`":       ZmKeyMap.ASSISTANT,
-        "Shift+`": ZmKeyMap.ASSISTANT,
-        [snip...]
-    }   
-    this._map["ZmMailListController"] = {
-        "INHERIT":  "Global",
-        "R":       ZmKeyMap.REPLY,
-        "A":       ZmKeyMap.REPLY_ALL,
-        "R,S":     ZmKeyMap.REPLY,
-        "R,A":     ZmKeyMap.REPLY_ALL,
-        [snip...]
-    }
-    [snip...]
-}
-</pre>
-
-<p>Key map entries may consist of:</p>
-
-<ul><li>Single keys e.g. "Enter" or "M"
-<li>Single keys plus one or more modifiers e.g. "Ctrl+M" or "Ctrl+Shift+M"
-<li>Multiple key sequences e.g "M,U" or "M,U,A"
-<li>Multiple key sequences plus modifiers e.g. "Shift+M, U" or "Shift+M, Shift+U, A"
-</ul>
-
-<p>We are currently working on a serialization/deserialization interface so that key maps may be serialized to and deserialized from a textual representation. This will help in with localizations and custom/user defined keymaps, and will do away with the need for the hash tables shown above.</p>
-
-<h4>Tab Groups</h4><p>
-
-<p>Tab groups permit the definition of a hierarchical keyboard navigation model. A tab group is a tree structure where the intermediate nodes in the tree are other tab groups and the leaf nodes are focusable components i.e. DWT widgets and/or focusable native HTML elements such as input fields. Tab groups represent the order in which components that the user sees on the screen are traversed via the keyboard. The tab group hierarchy (or tree) is traversed "in order" by the user pressing the tab key, or in reverse order when the user typically presses the shift key plus the tab key.</p>
-
-<p>There is a special tab group called the root tab group. A root tab group has no parent and represents the keyboard navigation order for the components in a given application view. There can be multiple root tab groups within an application, e.g. an email message list view tag group, a calendar new appointment tab group, or a dialog tab group; however, only one root tab group may be active at any given time.</p>
-
-<p>As will be described in the section on DwtKeyboardMgr, tab groups may be "pushed to" and "popped from"  the tab group stack. For example, when a dialog is popped up, its corresponding tab group is pushed onto the tab group stack and becomes the active tab group while that dialog is activated. When the dialog is popped down, its tab group is also popped off the tab group stack bringing the underlying tab group (i.e. the one for the active view) back into play, so that the component that had focus prior to the dialog being activated will once again have focus.</p>
-
-<p>Tab groups are implemented by the  DwtTabGroup class. That class provides the API for manipulating tab groups. Here are some of the member methods:</p>
-
-<ul><li>addMember(index) - Adds a member to the tab group at index position, or at end if index is omitted
-<li>addMemberBefore(member) - Adds a member to the tab group positioned before another member
-<li>addMemberAfter(member) - Adds a member to the tab group positioned after another member
-<li>blockDefaultHandling(block) - Blocks the default handler from being invoked for this tab group
-<li>contains(member) - Checks to see if an item is a member of this tab group
-<li>removeMember(member) - Removes a member
-<li>replaceMember(old, new) - Replaces a member with another one
-<li>newParent(newParent) - Sets a new parent for this tab group
-<li>getFocusMember() - Gets the current focus member
-<li>setFocusMember(member) - Sets the current focus member
-<li>getNextFocusMember() - Gets the next focus member
-<li>getPrevFocusMember() - Gets the previous focus member
-<li>resetFocusMember() - Resets the focus member to the first available member
-</ul>
-
-<h4>DwtKeyboardMgr</h4><p>
-
-<p>DwtKeyboardMgr is the engine that drives the keyboard management framework.  It is responsible for intercepting key events generated by the browser, mapping them to actions (via the registered keymaps), and then dispatching the action to the correct component. In addition, DwtKeyboardMgr is responsible for enforcing the tab order specified by the currently active tab group. Finally, this class also has the machinery that handles multi-key keymap entires by utilizing a timeout mechanism for resolving such sequences.</p>
-
-<p>When dispatching actions, DwtKeyboardMgr will first try and resolve a key sequence with the component that has focus (be it a DWT widget or a native component such as an HTML input element). If the component does not have an action binding for a key sequence (an entry in its key map for the current key sequence), then DwtKeyboardMgr checks to see if a default handler has been pushed on its default handler stack (via the pushDefaultHandler method). If one has been pushed, then DwtKeyboardMgr will query it for the name of the keymap that should be used to resolve the key sequence to an action code. If an action code exists in the key map for the key sequence, then DwtKeyboardMgr will dispatch it to the default handler.</p>
-
-<p>A default handler is analogous to the root tab group. It provides a context for key bindings that are not tied to a specific widget. In a way, the default handler can be thought of as providing a global context. For example, if a button has focus when the character Esc is typed, DwtKeyboardMgr will first give the button a chance to handle the event. If the button does not handle Esc (which is the case), then DwtKeyboardMgr hands the event to the current default handler. So far, there are only two default handlers used within ZCS: an application-level default handler and a dialog-level default handler.</p>
-
-<p>A default handler must implement the following interface:</p>
-
-<ul><li>getKeymapNameToUse() - This method is called by DwtKeyboardMgr to get the name of the key map that should be used for resolving a key sequence. Of course this is application-specific and may change as the user navigates an application. For example, in the case of the ZCS, a different key map may in play for the calendar application as opposed to the email application.
-<li>handleKeyAction(action) - Where the action formal parameter is the action constant bound to the key sequence in the key map. This method is where the real work gets done. Its implementation will perform the work necessary to complete the action. It will return true if it handled the action, or false if it did not.
-</ul>
-
-<p>As previously mentioned, DwtKeyboardMgr is also responsible for enforcing the component tab ordering specified by the currently active root tab group - i.e. the one that is on top of the tab group stack.  The way this works is that upon intercepting the tab key, DwtKeyboardMgr will call the DwtTabGroup's getNextFocusMember() method. This method returns the next focusable component in the tab group hierarchy (be it a DWT widget or a native HTML input field). DwtKeyboardMgr will then call the blur() method on the previously focused component, followed by calling the focus() method on the component returned by getNextFocusMember(). Note that I intentionally paralleled the native HTML input element  focus() and blur() methods within DWT so there is a canonical way of managing the focus state of any UI component (native or DWT). The combination of DwtKeyboardMgr and DwtTabGroup handles all corner cases such as skipping over components that are not enabled (i.e. grayed out), as well as dealing with scenarios such as the currently focused component becoming disabled.</p>
-
-<p>The following lists some of the more commonly used methods provided by DwtKeyboardMgr:</p>
-
-<ul><li>enable(enable) - Enables or disables keyboard event handling
-<li>isEnabled() - Returns true if keyboard event handling is enabled, else returns false
-<li>grabFocus(element) - Causes element to grab focus - where element is a DWT widget or an HTML input element
-<li>pushDefaultHandler(hdlr) - Pushes a default handler onto the handler stack
-<li>popDefaultHandler()- Pops the default handler off the top of the handler stack
-<li>pushTabGroup(tabGroup) - Pushes a tab group onto the tab group stack and makes it the active tab group
-<li>popTabGroup() - Pops the tab group that is on top of the tab group stack
-<li>registerKeyMap(keyMap) - Registers a key map
-<li>setKeyTimeout(timeout) - Sets the maximum time to allow between key presses for a multi-key key sequence
-<li>setTabGroup(tabGroup) - Replaces the current tab group with the one provided
-</ul>
-
-<h4>DwtControl</h4><p>
-
-<p>DwtControl is the base DWT class from which all widgets ultimately inherit behaviour. DwtControl has a number of responsibilities including hooking into the drag and drop system, basic mouse event handling, and integration with the keyboard shortcut and navigation model.</p>
-
-<p>DwtControl exports public focus() and blur() methods that parallel the native HTML input elements so that there is a canonical set of methods for setting and blurring focus across native and DWT elements. DwtControl also declares four methods that widget authors must implement in order to support keyboard management:</p>
-
-<ul><li>_focus() - This method is called when a control receives focus. Its implementation should  provide visual feedback that the control has gained focus (e.g. by drawing a border around the component)
-<li>_blur() - This method is called when a control loses focus. Its implementation should provide the visual feedback that the control has lost focus (e.g. by hiding the border around a control)
-<li>handleKeyAction(actionCode) - This method is responsible for implementing supported actions. The keyboard framework passes in the actionCode associated with a key sequence in the control's keymap. This method returns true if the control handled the actionCode, else it returns false
-</ul>
-
-<h4>Using The Keyboard Framework in an Application</h4><p>
-
-<p>An application programmer wanting to use the keyboard management frameworks typically needs to perform the following steps:</p>
-
-<ol><li>Create a key map class for the application that inherits from DwtKeyMap. Define any application and/or custom widget key maps in this class.
-<li>Implement one or more default handlers for the application should they be required. Recall that the default handler is called when a visual component does not have a action code binding for a key sequence. Depending on the complexity of the application, multiple handlers may be pushed and popped as the user interacts with the application.
-<li>Create any tab group(s) that may be required. Note that tab groups may be created and manipulated during the application lifecycle.
-<li>Instantiate DwtKeyboardMgr.
-<li>Register the application's key map with DwtKeyboardMgr via the registerKeyMap() method.
-<li>Push the currently applicable default handler via DwtKeyboardMgr's pushDefaultHdlr() method.
-<li>Push or set the current tab group via the pushTabGroup() or setTabGroup() method.
-</ol>]]>
-</content>
-</entry>
-<entry>
-<title>Securing Ajax</title>
-<link rel="alternate" type="text/html" href="http://www.zimbra.com/blog/archives/2006/09/securing_ajax.html" />
-<modified>2006-09-11T15:22:42Z</modified>
-<issued>2006-09-09T18:45:46Z</issued>
-<id>tag:www.zimbra.com,2006:/blog//1.117</id>
-<created>2006-09-09T18:45:46Z</created>
-<summary type="text/plain">To continue the Zimbra blog series on Ajax (recent entries include Ajax innovation is about the server, Ajax optimization techniques (presented at OSCON), OpenAjax update, and Ajax&apos;s impact on scaling), we wanted to offer some general thoughts on securing Ajax...</summary>
-<author>
-<name>Scott</name>
-<url>www.zimbra.com</url><email>scott.dietzen@zimbra.com</email></author>
-<dc:subject>Scott Dietzen</dc:subject><content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.zimbra.com/blog/">
-<![CDATA[<p>To continue the Zimbra blog series on Ajax (recent entries include <a href="http://www.zimbra.com/blog/archives/2006/08/ajax_innovation.html">Ajax innovation is about the server</a>, <a href="http://www.zimbra.com/blog/archives/2006/07/oscon_ajax_slid.html">Ajax optimization techniques (presented at OSCON)</a>, <a href="http://www.zimbra.com/blog/archives/2006/05/openajax_update.html">OpenAjax update</a>, and <a href="http://www.zimbra.com/blog/archives/2006/04/ajax_impact_on.html">Ajax's impact on scaling</a>), we wanted to offer some general thoughts on securing Ajax applications gleaned, of course, from our Zimbra experience. </p>]]>
-<![CDATA[<p><strong>Ajax security advantages. </strong> Less often discussed than Ajax security <em>concerns</em> are inherent security <em>advantages</em> of Ajax clients:<br />
-•    Dynamic Ajax client download – Ajax client code is downloaded on demand from the trusted server after a particular user logs-in, automatically ensuring client and server versions are in-sync (for public computers, a shift re-load is better in that it overwrites any Ajax code from that website leftover in the browser cache). <br />
-•    No persistent client caching – An exposure with traditional web clients is that they cache HTML pages that can include user/application data on the client disk during normal operation. This can be a security vulnerability for access from public kiosks or other shared computers. Ajax applications like the Zimbra client cache no user data on disk. <br />
-•    Server-side control of intranet and Internet mash-ups – Zimlets and other Ajax mash-ups are precluded from accessing arbitrary services on the Internet (unless they open a new iFrame, which can be determined at server deployment time), and must instead (like Java applets) make all invocations back to the originating server (in our case, the Zimbra server). This means the Ajax server can act as a secure, proxy gateway for accessing intranet applications, and can govern which external web services (if any) are accessible for mash-up within the Ajax client.  </p>
-
-<p><strong>Ajax security considerations. </strong> Subject to the additional precautions enumerated below, Ajax applications can be made as highly-secure as the web technologies upon which the Ajax model is based. </p>
-
-<p>The most obvious security issue for Ajax applications is that the associated source code is inherently downloaded to the browser for interpretation. This is a concern for any application logic that contains intellectual property that the author does not want to share with the world: while obviscation and minimization (white space removal, shortening identifier) can certainly render JavaScript much harder to read (and debug), developers should consider Ajax applications to be like HTML in that others will be able to examine the fruits of your labor. The only real alternative is to either (1) limit log-in to the application to trusted users/partners (in this way only licensed/authorized users get to download the Ajax application logic); or else (2) keep closely-held algorithms on the server-side, and simply invoke them via web services from the Ajax client. All this is not an issue for the Zimbra Ajax Client, since it is, after all, open source. </p>
-
-<p>Zimbra provides the following additional guarantees to further secure Zimbra deployments over even public networks, techniques that we beileve are broadly relevant for securing Ajax applications:<br />
-•    Use SSL/TLS (i.e., HTTPS)  – In addition to protecting the privacy/integrity XML/JSON HTTP communications to/from the Ajax client, SSL/TLS encryption limits access to the Ajax source code itself to only those that have legitimate log-ins (as per above), since no-one snooping on the network can see the app. logic. Moreover, SSL/TLS protects the Ajax application (JavaScript, CSS, etc.) from potential security attacks while it is in route to the user's browser. <br />
-•    No server-side interpretation of JavaScript or other client-submitted code – Zimbra receives vanilla XML requests from the browser client that are validated and then processed by Zimbra server-side Java code. No JavaScript flows from client to server, and there is no server-side interpretation of any application data (e.g., message bodies). In fact, there is no JavaScript execution on the server period. This ensures that there is no way for even a hostile Ajax client with an authentication credentials to inject malicious code for execution on the server-side. <br />
-•    Limited or no client-side interpretation of JavaScript within user data – The Zimbra Ajax client is, of course, an Email application that runs within the confines of the web browser. There is an additional risk, then, to displaying the contents of rich HTML messages that themselves contain JavaScript, in that JavaScript within the message might somehow be able to make malicious calls to the Zimbra server (it is generally precluded from making invocations to other sites). Zimbra blocks any “risky” HTML, first on the server and then again (for extra protection) on the client. When a rich HTML message contains any suspect JavaScript, simply better to err on the side of caution. For most Ajax applications, simply maintaining a strict separation of code from data (and never interpretting JavaScript that is included within user data) protects against such attacks.<br />
-•    Benign URLs – All Zimbra’s GET-based REST and URL-based APIs are read-only and do not modify data. This ensures that a user (with pre-validated security credentials) cannot be fooled into clicking on a malicious link (that someone sends he or she in an email or posts on his/her external website) that would have harmful side-effects on that user's data. Again, this is broadly relevant for Ajax applications that potentially display clickable URLs in application data. <br />
-•    Mash-ups/Zimlet validation – Zimbra's mash-up architecture does provide the opportunity to introduce server-side Java code (most Zimlets run only on the client side), but the introduction of Zimlets requires server administration privileges. Zimbra recommends only deploying Zimlets that have been certified by Zimbra or else which have been vetted by your security architects internally. The key is to ensure that only trustworthy mash-ups can be deployed with your Ajax application, mash-ups that do not expose additional attack points for malicious users. </p>
-
-<p>The end result is that while an attacker with appropriate security credentials (such as a user's password) could certainly damage that user's server-side data, there is no way for them to compromise other user's data or the server in general. (And, of course, that user could have any damged mailbox state restored to the point before the attack by a Zimbra administrator.) </p>
-
-<p>Stronger network security can be afforded by additional technologies (such as VPNs, Smartcards, etc.), but that's our recipe in general for leveraging the benefits of Ajax without giving up the security your customers, partners, and business depend on. More detail on the Zimbra-specific approach can be found in the newly updated Zimbra Architecture Overivew (linked within our <a href="http://www.zimbra.com/community/documentation.html">Community</a> and <a href="http://www.zimbra.com/products/documentation.html">Product</a> Documentation). </p>
-
-<p>As always, thanks for listening (particularly to my verbose posts).</p>]]>
-</content>
-</entry>
-<entry>
-<title>Some thoughts on Mobility and Web 2.0</title>
-<link rel="alternate" type="text/html" href="http://www.zimbra.com/blog/archives/2006/08/some_thoughts_o.html" />
-<modified>2006-08-29T22:45:39Z</modified>
-<issued>2006-08-29T19:50:57Z</issued>
-<id>tag:www.zimbra.com,2006:/blog//1.116</id>
-<created>2006-08-29T19:50:57Z</created>
-<summary type="text/plain">I had the pleasure of joining Motorola, SugarCRM, and Funambol on a panel at LinuxWorld regarding the future of mobility. The depressing bit was that we panelists admitted that we could have made almost identical points three years ago: (1)...</summary>
-<author>
-<name>Scott</name>
-<url>www.zimbra.com</url><email>scott.dietzen@zimbra.com</email></author>
-<dc:subject>Scott Dietzen</dc:subject><content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.zimbra.com/blog/">
-<![CDATA[<p>I had the pleasure of joining Motorola, SugarCRM, and <a href="http://www.funambol.com/blog/capo/">Funambol</a> on a panel at LinuxWorld regarding the future of mobility. The depressing bit was that we panelists admitted that we could have made almost identical points three years ago: (1) the Web (1.0 more than 2.0) is coming soon to mobile devices, but the experience isn't entirely there yet; and (2) the challenge to extending applications for mobile devices continues to be exacerbated by innovation in device profiles (more on that below). However, the good news is (1) that a "smart phone" profile is converging---a profile that is likely the right target for non-consumer mobile applications; and (2) that "over the air" sync to the native Personal Information Management (PIM) software on mobile devices has gotten dramatically easier/cheaper, and provides exciting new opportunities for mobile application extension.</p>]]>
-<![CDATA[<p>As an old Web hand, I'm no doubt biased, but I think the Web is a generally the right model for business application extension to mobile devices, simply because the Web does not require  any <em>a priori</em> installation of client-side software.  After all, if the Web is already the dominant model for B2C and B2B applications on PCs, then it is arguably an even better architectural fit for lower horsepower (CPU, memory) mobile devices. <a href="http://www.zimbra.com/blog/archives/2006/06/defining_web_20.html">Web 2.0/Ajax clients</a> seem like a natural fit too---Ajax is a zero client install and its client/server interaction model is actually a better fit for higher latency networks like those of the wireless carriers. The challenge is that rich Ajax applications (ones with mouse-overs, drag 'n drop, etc.) consume enough laptop CPU that they are still out of the computational reach of most smart phones/PDAs, let alone basic telephones. </p>
-
-<p>The alternative application model to the Web (I include WML/HTTP under the Web architecture) is of course more traditional fat client applications---such as those programmed for J2ME, Windows Mobile, Symbian, Palm, or mobile Linux. Fat client app's are ideal for PIM (email, SMS, calendaring, contacts, tasks), games, and other code that handset manufactures or the carriers are willing to preinstall, but a tougher sell for non-expert business and consumer end-user installation. </p>
-
-<p>However, there is yet another approach that we proposed. It is particularly relevant for applications that can be surfaced via PIM software, such as your customer contacts from your CRM system, your travel itinerary from your procurement application, an urgent notification (via SMS), or even an email request to visit a particular URL. Such items can be submitted to a server like the Zimbra Collaboration Suite (ZCS), and then delivered to the mobile device via "over the air" sync.  <a href="http://www.zimbra.com/products/zimbra_mobile.html">Zimbra Mobile</a>, for example, can sync contacts, appointments, and messages to Nokia, Motorola, Samsung, Treo, and Blackberry smart phones, and both intranet and Internet applications can securely export to Zimbra over open/standard protocols. Putting the two together allows Web-enabled applications to deliver PIM-oriented data all the way to the mobile device. </p>
-
-<p>So for applications that can be naturally surfaced via the native mobile PIM, there are now easier/cheaper options for mobile extension. For those business applications that have no such easy fit with PIM, I'm afraid you must still weigh the classic Web versus fat client architectural trade-off. In either case, I think that choosing the smart phone/PDA as the target profile makes more sense because of their relative consistency (screen size, scroll-to-click, J2ME vs. Windows Mobile platform), at least when compared with targeting the continuing stream of ever more compact, ever more personalized mobile phones. </p>]]>
-</content>
-</entry>
-<entry>
-<title>Open source and IP ownership</title>
-<link rel="alternate" type="text/html" href="http://www.zimbra.com/blog/archives/2006/08/open_source_and_2.html" />
-<modified>2006-08-16T15:29:47Z</modified>
-<issued>2006-08-15T16:58:03Z</issued>
-<id>tag:www.zimbra.com,2006:/blog//1.114</id>
-<created>2006-08-15T16:58:03Z</created>
-<summary type="text/plain">I got myself in a small bit of trouble recently talking about open source IP ownership when I should have been talking about the cool new collaboration and mobile features in the 4.0 release of the Zimbra Collaboration Suite. (Nothing...</summary>
-<author>
-<name>Scott</name>
-<url>www.zimbra.com</url><email>scott.dietzen@zimbra.com</email></author>
-<dc:subject>Scott Dietzen</dc:subject><content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.zimbra.com/blog/">
-<![CDATA[<p>I got myself in a small bit of trouble recently talking about open source IP ownership when I should have been talking about the cool new collaboration and mobile features in the <a href="http://www.zimbra.com/products/countdown.html">4.0 release of the Zimbra Collaboration Suite</a>. (Nothing like a developer coming by your cube and saying "You said what?") While I didn't do such a good job at the time, the underlying point is an important one, so I'm going to give it another shot ...</p>]]>
-<![CDATA[<p>It is increasingly common practice in open source communities to insist upon a single organization owning the IP rights for a particular project. For example, the Apache and Free Software Foundations do this as well as private firms like Zimbra. The primary goal of IP ownership is to better guarantee "squeaky clean" IP (that is, that all contributed code is unencumbered by any hidden IP rights) for the benefit of the community as well as for customers. This also ensures that open source licensing upgrade decisions can be made for future releases of the open source license itself---without an organizational owner, projects can effectively get locked to a particular version of a license because there is no easy way to get all of the IP owners together to make a decision about upgrading. </p>
-
-<p>The grief came in particular from my drawing parallels between Zimbra---a for-profit company---with more altruistic non-profit organizations like Apache and FSF regarding IP ownership. No doubt there are clear differences between for-profits and non-profits that the prospective community members have every right to consider, but I think in terms of IP ownership there is more in common than different. </p>
-
-<p>For a potential community member, the most important thing is the long-term guarantee of their freedoms: (1) Open source rights (granted under the open source software license) to use the product in perpetuity for free, to produce and redistribute any derivative works thereof for free, and so on; and (2) rights to do whatever they may see fit in perpetuity for any of their own contributions that they made in good faith to the project. (The good contribution agreements grant contributors back all of their rights <strong>except </strong> those that could interfere with the community, such as the right to withdraw their contribution in the future, the right to charge the community patent royalties down the road, etc. For example, Zimbra's Contributor Agreement can be found <a href="http://www.zimbra.com/community/contribute.html">here</a>. For another take, check out <a href="http://dojotoolkit.org/foundation/">Dojo</a>, one of our <a href="http://www.zimbra.com/partners/open_ajax_partners.html">Open Ajax Alliance</a> partners. ) This practice seems to me to strike the right balance between preserving individual freedoms without sacrificing the freedoms of the community as a whole. </p>
-
-<p>Both non-profit and for-profit open source organizations equally guarantee these freedoms to their communities, the difference being that the for-profit ones (like Zimbra) also strive to sell <strong>optional </strong>value-added services on the side, much of the proceeds of which then funds the further development of the open source software. </p>]]>
-</content>
-</entry>
-</feed>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/proxy/proxy.php b/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/resource/proxy/proxy.php
deleted file mode 100644 (file)
index 71853e9..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-
-$ALLOWED_URL_PREFIXES = array(
-    "http://feeds.feedburner.com",
-    "http://blog.dojotoolkit.org/feed",
-    "http://www.jackslocum.com/blog/feed/",
-    "http://portlets.blogspot.com",
-    "http://www.go-mono.com/monologue/index.rss",
-    "http://feeds.yuiblog.com/YahooUserInterfaceBlog",
-);
-
-$ALLOWED_URL_SUFFIXES = array(
-    ".rdf",
-    ".rss",
-    "atom.xml",
-    "rss2",
-    "rss.xml",
-    "feed/atom/",
-);
-
-$proxy_url = isset($_GET['proxy']) ? $_GET['proxy'] : false;
-
-if (!$proxy_url) {
-    header("HTTP/1.0 400 Bad Request");
-    echo "proxy.php failed because proxy parameter is missing";
-    exit();
-}
-
-$is_url_valid = false;
-foreach ($ALLOWED_URL_PREFIXES as $prefix) {
-    if (strpos($proxy_url, $prefix) === 0) {
-        $is_url_valid = true;
-        break;
-    }
-}
-
-foreach ($ALLOWED_URL_SUFFIXES as $suffix) {
-    if (strpos($proxy_url, $suffix) === strlen($proxy_url)-strlen($suffix)) {
-        $is_url_valid = true;
-        break;
-    }
-}
-
-if (!$is_url_valid) {
-    header("HTTP/1.0 400 Bad Request");
-    echo "Address is not allowed!";        
-    exit();
-}
-
-$session = curl_init($proxy_url);
-
-curl_setopt($session, CURLOPT_HEADER, false);
-curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
-
-header("Content-Type: application/xml");
-echo(curl_exec($session));
-
-curl_close($session);
-
-?>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/translation/C.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/translation/C.po
deleted file mode 100644 (file)
index fc40810..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-# Default translation
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo feedreader\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 12:52+0100\n"
-"PO-Revision-Date: 2006-12-19 16:54+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: source/class/feedreader/Application.js:133
-msgid "reloading ..."
-msgstr ""
-
-#: source/class/feedreader/Application.js:138
-msgid "qooxdoo feed reader."
-msgstr ""
-
-#: source/class/feedreader/Application.js:143
-msgid "Add feed"
-msgid_plural "Add feeds"
-msgstr[0] ""
-msgstr[1] ""
-
-#: source/class/feedreader/Application.js:144
-msgid "Remove feed"
-msgstr ""
-
-#: source/class/feedreader/Application.js:147
-msgid "Reload"
-msgstr ""
-
-#: source/class/feedreader/Application.js:149
-msgid "(%1) Reload the feeds."
-msgstr ""
-
-#: source/class/feedreader/Application.js:156
-#: source/class/feedreader/Application.js:158
-msgid "English"
-msgstr ""
-
-#: source/class/feedreader/Application.js:157
-msgid "German"
-msgstr ""
-
-#: source/class/feedreader/Application.js:159
-msgid "Turkish"
-msgstr ""
-
-#: source/class/feedreader/Application.js:160
-msgid "Italian"
-msgstr ""
-
-#: source/class/feedreader/Application.js:161
-msgid "Spanish"
-msgstr ""
-
-#: source/class/feedreader/Application.js:162
-msgid "Swedish"
-msgstr ""
-
-#: source/class/feedreader/Application.js:163
-msgid "Russian"
-msgstr ""
-
-#: source/class/feedreader/Application.js:186
-msgid "Help"
-msgstr ""
-
-#: source/class/feedreader/Application.js:194
-msgid "News feeds"
-msgstr ""
-
-#: source/class/feedreader/Application.js:215
-msgid "Subject"
-msgstr ""
-
-#: source/class/feedreader/Application.js:216
-msgid "Sender"
-msgstr ""
-
-#: source/class/feedreader/Application.js:217
-msgid "Date"
-msgstr ""
-
-#: source/class/feedreader/ArticleView.js:79
-msgid "read more ..."
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/translation/de.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/translation/de.po
deleted file mode 100644 (file)
index 099f985..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-# German translation
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo feedreader\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 12:52+0100\n"
-"PO-Revision-Date: 2006-12-22 09:59+0100\n"
-"Last-Translator: Fabian Jakobs <fabian dot jakobs at 1und1 dot de>\n"
-"Language-Team:  <en@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
-"X-Generator: KBabel 1.11.4\n"
-
-#: source/class/feedreader/Application.js:133
-#, fuzzy
-msgid "reloading ..."
-msgstr "aktualisieren ..."
-
-#: source/class/feedreader/Application.js:138
-msgid "qooxdoo feed reader."
-msgstr "\"qooxdoo\" feed reader"
-
-#: source/class/feedreader/Application.js:143
-msgid "Add feed"
-msgid_plural "Add feeds"
-msgstr[0] "Feed hinzufügen"
-msgstr[1] "Feeds hinzufügen"
-
-#: source/class/feedreader/Application.js:144
-msgid "Remove feed"
-msgstr "Feed löschen"
-
-#: source/class/feedreader/Application.js:147
-msgid "Reload"
-msgstr "Aktualisieren"
-
-#: source/class/feedreader/Application.js:149
-msgid "(%1) Reload the feeds."
-msgstr "(%1) Feeds aktualisieren."
-
-#: source/class/feedreader/Application.js:156
-#: source/class/feedreader/Application.js:158
-msgid "English"
-msgstr "Englisch"
-
-#: source/class/feedreader/Application.js:157
-msgid "German"
-msgstr "Deutsch"
-
-#: source/class/feedreader/Application.js:159
-msgid "Turkish"
-msgstr "Türkisch"
-
-#: source/class/feedreader/Application.js:160
-msgid "Italian"
-msgstr "Italienisch"
-
-#: source/class/feedreader/Application.js:161
-msgid "Spanish"
-msgstr "Spanisch"
-
-#: source/class/feedreader/Application.js:162
-msgid "Swedish"
-msgstr "Schwedisch"
-
-#: source/class/feedreader/Application.js:163
-msgid "Russian"
-msgstr "Russisch"
-
-#: source/class/feedreader/Application.js:186
-msgid "Help"
-msgstr "Hilfe"
-
-#: source/class/feedreader/Application.js:194
-msgid "News feeds"
-msgstr "Nachrichtenkanäle"
-
-#: source/class/feedreader/Application.js:215
-msgid "Subject"
-msgstr "Betreff"
-
-#: source/class/feedreader/Application.js:216
-msgid "Sender"
-msgstr "Absender"
-
-#: source/class/feedreader/Application.js:217
-msgid "Date"
-msgstr "Datum"
-
-#: source/class/feedreader/ArticleView.js:79
-msgid "read more ..."
-msgstr "weitere Informationen ..."
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/translation/en.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/translation/en.po
deleted file mode 100644 (file)
index e24d308..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-# English translation
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo feedreader\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 12:52+0100\n"
-"PO-Revision-Date: 2006-12-21 10:17+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ASCII\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: source/class/feedreader/Application.js:133
-msgid "reloading ..."
-msgstr "reloading ..."
-
-#: source/class/feedreader/Application.js:138
-msgid "qooxdoo feed reader."
-msgstr "qooxdoo feed reader."
-
-#: source/class/feedreader/Application.js:143
-msgid "Add feed"
-msgid_plural "Add feeds"
-msgstr[0] "Add feed"
-msgstr[1] "Add feeds"
-
-#: source/class/feedreader/Application.js:144
-msgid "Remove feed"
-msgstr "Remove feed"
-
-#: source/class/feedreader/Application.js:147
-msgid "Reload"
-msgstr "Reload"
-
-#: source/class/feedreader/Application.js:149
-msgid "(%1) Reload the feeds."
-msgstr "(%1) Reload the feeds."
-
-#: source/class/feedreader/Application.js:156
-#: source/class/feedreader/Application.js:158
-msgid "English"
-msgstr "English"
-
-#: source/class/feedreader/Application.js:157
-msgid "German"
-msgstr "German"
-
-#: source/class/feedreader/Application.js:159
-msgid "Turkish"
-msgstr "Turkish"
-
-#: source/class/feedreader/Application.js:160
-msgid "Italian"
-msgstr "Italian"
-
-#: source/class/feedreader/Application.js:161
-msgid "Spanish"
-msgstr "Spanish"
-
-#: source/class/feedreader/Application.js:162
-msgid "Swedish"
-msgstr "Swedish"
-
-#: source/class/feedreader/Application.js:163
-msgid "Russian"
-msgstr "Russian"
-
-#: source/class/feedreader/Application.js:186
-msgid "Help"
-msgstr "Help"
-
-#: source/class/feedreader/Application.js:194
-msgid "News feeds"
-msgstr "News feeds"
-
-#: source/class/feedreader/Application.js:215
-msgid "Subject"
-msgstr "Subject"
-
-#: source/class/feedreader/Application.js:216
-msgid "Sender"
-msgstr "Sender"
-
-#: source/class/feedreader/Application.js:217
-msgid "Date"
-msgstr "Date"
-
-#: source/class/feedreader/ArticleView.js:79
-msgid "read more ..."
-msgstr "read more ..."
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/translation/es.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/translation/es.po
deleted file mode 100644 (file)
index cb1e02c..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-# Spanish translation
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: feedreader\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 12:52+0100\n"
-"PO-Revision-Date: 2007-01-24 20:54+0100\n"
-"Last-Translator: Carsten Rammoser <carsten@rammoser.com>\n"
-"Language-Team:  <camilo.aguilar@gmail.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Spanish\n"
-"X-Poedit-Country: COLOMBIA\n"
-
-#: source/class/feedreader/Application.js:133
-msgid "reloading ..."
-msgstr "actualizando ..."
-
-#: source/class/feedreader/Application.js:138
-msgid "qooxdoo feed reader."
-msgstr "lector de feeds qooxdoo."
-
-#: source/class/feedreader/Application.js:143
-msgid "Add feed"
-msgid_plural "Add feeds"
-msgstr[0] "Agregar feed"
-msgstr[1] "Agregar feeds"
-
-#: source/class/feedreader/Application.js:144
-msgid "Remove feed"
-msgstr "Eliminar feed"
-
-#: source/class/feedreader/Application.js:147
-msgid "Reload"
-msgstr "Actualizar"
-
-#: source/class/feedreader/Application.js:149
-msgid "(%1) Reload the feeds."
-msgstr "(%1) Actualizar los feeds."
-
-#: source/class/feedreader/Application.js:156
-#: source/class/feedreader/Application.js:158
-msgid "English"
-msgstr "Inglés"
-
-#: source/class/feedreader/Application.js:157
-msgid "German"
-msgstr "Alemán"
-
-#: source/class/feedreader/Application.js:159
-msgid "Turkish"
-msgstr "Turco"
-
-#: source/class/feedreader/Application.js:160
-msgid "Italian"
-msgstr "Italiano"
-
-#: source/class/feedreader/Application.js:161
-msgid "Spanish"
-msgstr "Español"
-
-#: source/class/feedreader/Application.js:162
-msgid "Swedish"
-msgstr "Sueco"
-
-#: source/class/feedreader/Application.js:163
-msgid "Russian"
-msgstr "Ruso"
-
-#: source/class/feedreader/Application.js:186
-msgid "Help"
-msgstr "Ayuda"
-
-#: source/class/feedreader/Application.js:194
-msgid "News feeds"
-msgstr "Feeds de noticias"
-
-#: source/class/feedreader/Application.js:215
-msgid "Subject"
-msgstr "Asunto"
-
-#: source/class/feedreader/Application.js:216
-msgid "Sender"
-msgstr "Remitente"
-
-#: source/class/feedreader/Application.js:217
-msgid "Date"
-msgstr "Fecha"
-
-#: source/class/feedreader/ArticleView.js:79
-msgid "read more ..."
-msgstr "leer más ..."
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/translation/it.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/translation/it.po
deleted file mode 100644 (file)
index 1431458..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-# Italian translation
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo feedreader\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-23 17:57+0100\n"
-"PO-Revision-Date: 2006-12-21 22:55+0100\n"
-"Last-Translator: Alessandro Sala <alessandro.sala@mclink.net>\n"
-"Language-Team: Italiano <it@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
-"X-Generator: KBabel 1.11.4\n"
-
-#: source/class/feedreader/Application.js:130
-msgid "reloading ..."
-msgstr "ricarico..."
-
-#: source/class/feedreader/Application.js:135
-msgid "qooxdoo feed reader."
-msgstr "lettore di feed di qooxdoo"
-
-#: source/class/feedreader/Application.js:140
-msgid "Add feed"
-msgid_plural "Add feeds"
-msgstr[0] "Aggiungi un feed"
-msgstr[1] "Aggiungi dei feed"
-
-#: source/class/feedreader/Application.js:141
-msgid "Remove feed"
-msgstr "Rimuovi un feed"
-
-#: source/class/feedreader/Application.js:144
-msgid "Reload"
-msgstr "Ricarica"
-
-#: source/class/feedreader/Application.js:146
-msgid "(%1) Reload the feeds."
-msgstr "(%1) Ricarica i feed"
-
-#: source/class/feedreader/Application.js:153
-#: source/class/feedreader/Application.js:155
-msgid "English"
-msgstr "Inglese"
-
-#: source/class/feedreader/Application.js:154
-msgid "German"
-msgstr "Tedesco"
-
-#: source/class/feedreader/Application.js:156
-msgid "Turkish"
-msgstr "Turco"
-
-#: source/class/feedreader/Application.js:157
-msgid "Italian"
-msgstr "Italiano"
-
-#: source/class/feedreader/Application.js:158
-msgid "Spanish"
-msgstr "Spagnolo"
-
-#: source/class/feedreader/Application.js:159
-msgid "Swedish"
-msgstr "Svedese"
-
-#: source/class/feedreader/Application.js:160
-msgid "Russian"
-msgstr "Russo"
-
-#: source/class/feedreader/Application.js:183
-msgid "Help"
-msgstr "Aiuto"
-
-#: source/class/feedreader/Application.js:191
-msgid "News feeds"
-msgstr "Feed di notizie"
-
-#: source/class/feedreader/Application.js:212
-msgid "Subject"
-msgstr "Oggetto"
-
-#: source/class/feedreader/Application.js:213
-msgid "Sender"
-msgstr "Mittente"
-
-#: source/class/feedreader/Application.js:214
-msgid "Date"
-msgstr "Data"
-
-#: source/class/feedreader/ArticleView.js:77
-msgid "read more ..."
-msgstr "continua..."
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/translation/ru.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/translation/ru.po
deleted file mode 100644 (file)
index b728919..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-# Russian translation
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo feedreader\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-23 17:57+0100\n"
-"PO-Revision-Date: 2006-12-20 23:22+0200\n"
-"Last-Translator:  <zindel@gammacenter.com>\n"
-"Language-Team:  <en@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-"X-Generator: KBabel 1.11.4\n"
-
-#: source/class/feedreader/Application.js:130
-msgid "reloading ..."
-msgstr "загрузка..."
-
-#: source/class/feedreader/Application.js:135
-msgid "qooxdoo feed reader."
-msgstr "qooxdoo RSS reader"
-
-#: source/class/feedreader/Application.js:140
-msgid "Add feed"
-msgid_plural "Add feeds"
-msgstr[0] "Добавить канал"
-msgstr[1] "Добавить каналы"
-
-#: source/class/feedreader/Application.js:141
-msgid "Remove feed"
-msgstr "Удалить канал"
-
-#: source/class/feedreader/Application.js:144
-msgid "Reload"
-msgstr "Перечитать"
-
-#: source/class/feedreader/Application.js:146
-msgid "(%1) Reload the feeds."
-msgstr "{%1) Перечитать все каналы."
-
-#: source/class/feedreader/Application.js:153
-#: source/class/feedreader/Application.js:155
-msgid "English"
-msgstr "Английский"
-
-#: source/class/feedreader/Application.js:154
-msgid "German"
-msgstr "Немецкий"
-
-#: source/class/feedreader/Application.js:156
-msgid "Turkish"
-msgstr ""
-
-#: source/class/feedreader/Application.js:157
-msgid "Italian"
-msgstr ""
-
-#: source/class/feedreader/Application.js:158
-msgid "Spanish"
-msgstr ""
-
-#: source/class/feedreader/Application.js:159
-msgid "Swedish"
-msgstr ""
-
-#: source/class/feedreader/Application.js:160
-msgid "Russian"
-msgstr ""
-
-#: source/class/feedreader/Application.js:183
-msgid "Help"
-msgstr "Помощь"
-
-#: source/class/feedreader/Application.js:191
-msgid "News feeds"
-msgstr "Новостные каналы"
-
-#: source/class/feedreader/Application.js:212
-msgid "Subject"
-msgstr "Тема"
-
-#: source/class/feedreader/Application.js:213
-msgid "Sender"
-msgstr "Отправитель"
-
-#: source/class/feedreader/Application.js:214
-msgid "Date"
-msgstr "Дата"
-
-#: source/class/feedreader/ArticleView.js:77
-msgid "read more ..."
-msgstr "далее..."
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/translation/sv.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/translation/sv.po
deleted file mode 100644 (file)
index f1a03b3..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-# Swedish translation
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo feedreader\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-23 17:57+0100\n"
-"PO-Revision-Date: 2006-12-19 11:10+0100\n"
-"Last-Translator: Henric Johansson <henric.johansson@mindset.se>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-
-#: source/class/feedreader/Application.js:130
-msgid "reloading ..."
-msgstr "uppdaterar..."
-
-#: source/class/feedreader/Application.js:135
-msgid "qooxdoo feed reader."
-msgstr "qooxdoo feed läsare."
-
-#: source/class/feedreader/Application.js:140
-msgid "Add feed"
-msgid_plural "Add feeds"
-msgstr[0] "Lägg till feed"
-msgstr[1] "Lägg till feeds"
-
-#: source/class/feedreader/Application.js:141
-msgid "Remove feed"
-msgstr "Ta bort feed"
-
-#: source/class/feedreader/Application.js:144
-msgid "Reload"
-msgstr "Uppdatera"
-
-#: source/class/feedreader/Application.js:146
-msgid "(%1) Reload the feeds."
-msgstr "(%1) Uppdatera feedsen."
-
-#: source/class/feedreader/Application.js:153
-#: source/class/feedreader/Application.js:155
-msgid "English"
-msgstr "Engelska"
-
-#: source/class/feedreader/Application.js:154
-msgid "German"
-msgstr "Tyska"
-
-#: source/class/feedreader/Application.js:156
-msgid "Turkish"
-msgstr ""
-
-#: source/class/feedreader/Application.js:157
-msgid "Italian"
-msgstr ""
-
-#: source/class/feedreader/Application.js:158
-msgid "Spanish"
-msgstr ""
-
-#: source/class/feedreader/Application.js:159
-msgid "Swedish"
-msgstr ""
-
-#: source/class/feedreader/Application.js:160
-msgid "Russian"
-msgstr ""
-
-#: source/class/feedreader/Application.js:183
-msgid "Help"
-msgstr "Hjälp"
-
-#: source/class/feedreader/Application.js:191
-msgid "News feeds"
-msgstr "Nyhetsfeed"
-
-#: source/class/feedreader/Application.js:212
-msgid "Subject"
-msgstr "Ämne"
-
-#: source/class/feedreader/Application.js:213
-msgid "Sender"
-msgstr "Avsändare"
-
-#: source/class/feedreader/Application.js:214
-msgid "Date"
-msgstr "Datum"
-
-#: source/class/feedreader/ArticleView.js:77
-msgid "read more ..."
-msgstr "läs mer..."
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/translation/tr.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/feedreader/source/translation/tr.po
deleted file mode 100644 (file)
index f3ccc94..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-# Turkish translation
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo feedreader\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-23 17:57+0100\n"
-"PO-Revision-Date: 2006-12-18 21:51+0200\n"
-"Last-Translator: Fatih Tolga Ata <fatih@diyezon.com>\n"
-"Language-Team:  <fatih@tullab.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Turkish\n"
-"X-Poedit-Country: Turkey\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-#: source/class/feedreader/Application.js:130
-msgid "reloading ..."
-msgstr "yenileniyor ..."
-
-#: source/class/feedreader/Application.js:135
-msgid "qooxdoo feed reader."
-msgstr "qooxdoo besleme okuyucu."
-
-#: source/class/feedreader/Application.js:140
-msgid "Add feed"
-msgid_plural "Add feeds"
-msgstr[0] "Besleme ekle"
-msgstr[1] "Beslemeler ekle"
-
-#: source/class/feedreader/Application.js:141
-msgid "Remove feed"
-msgstr "Besleme sil"
-
-#: source/class/feedreader/Application.js:144
-msgid "Reload"
-msgstr "Yenile"
-
-#: source/class/feedreader/Application.js:146
-msgid "(%1) Reload the feeds."
-msgstr "(%1) Beslemesini yenile."
-
-#: source/class/feedreader/Application.js:153
-#: source/class/feedreader/Application.js:155
-msgid "English"
-msgstr "İngilizce"
-
-#: source/class/feedreader/Application.js:154
-msgid "German"
-msgstr "Almanca"
-
-#: source/class/feedreader/Application.js:156
-msgid "Turkish"
-msgstr ""
-
-#: source/class/feedreader/Application.js:157
-msgid "Italian"
-msgstr ""
-
-#: source/class/feedreader/Application.js:158
-msgid "Spanish"
-msgstr ""
-
-#: source/class/feedreader/Application.js:159
-msgid "Swedish"
-msgstr ""
-
-#: source/class/feedreader/Application.js:160
-msgid "Russian"
-msgstr ""
-
-#: source/class/feedreader/Application.js:183
-msgid "Help"
-msgstr "Yardım"
-
-#: source/class/feedreader/Application.js:191
-msgid "News feeds"
-msgstr "Haber beslemeleri"
-
-#: source/class/feedreader/Application.js:212
-msgid "Subject"
-msgstr "Konu"
-
-#: source/class/feedreader/Application.js:213
-msgid "Sender"
-msgstr "Gönderen"
-
-#: source/class/feedreader/Application.js:214
-msgid "Date"
-msgstr "Tarih"
-
-#: source/class/feedreader/ArticleView.js:77
-msgid "read more ..."
-msgstr "daha fazla ..."
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/index.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/index.html
deleted file mode 100644 (file)
index 139e50c..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-  <title>qooxdoo &raquo; Demo</title>
-  <style type="text/css">
-*{
-  box-sizing: border-box;
-  -moz-box-sizing: border-box;
-  margin: 0;
-  padding: 0;
-}
-
-body{
-  font-size: 12px;
-  font-family: Arial, "Bitstream Vera Sans", Verdana, sans-serif;
-  margin: 0;
-  padding: 0;
-}
-
-p{
-  margin: 6px 0;
-}
-
-.hide, .build {
-       display: none;
-}
-
-#demoHead,
-#demoFoot{
-  position: absolute;
-  left: 0px;
-  right: 0px;
-  width: 100%;
-  background: #134275;
-  padding: 5px 8px;
-  color: #DEFF83;
-  font-weight: bold;
-  overflow: hidden;
-  z-index: 1000000000;
-}
-
-#demoHead{
-  top: 0px;
-}
-
-#demoHead span{
-  font-weight: normal;
-  color: white;
-}
-
-img{
-  box-sizing: content-box;
-  -moz-box-sizing: content-box;
-}
-
-#content{
-  margin: 40px 20px 0;
-  width: 400px;
-}
-
-h1{
-  font-size: 22px;
-  margin-bottom: 20px;
-  color: #134275;
-}
-
-h2{
-  font-size: 16px;
-  color: #134275;
-  margin-bottom: 10px;
-}
-
-h3{
-  font-size: 14px;
-  color: #1D65B3;
-}
-
-a{
-  color: #335EA8;
-}
-
-li{
-  margin-left: 16px;
-  list-style: square;
-  margin-bottom: 20px;
-}
-
-p{
-  font-size: 12px;
-}
-
-ul ul{
-  margin-top: 20px;
-}
-
-p.note{
-  padding: 10px;
-  background: #F3FFD1;
-  color: #444444;
-  margin: 20px 0;
-}
-  </style>
-  <script type="text/javascript">
-       function launch(url, w, h) {
-               var w = w || 800;
-               var h = h || 600;
-               var sw = 100;
-               var sh = 100;
-               
-               sw = getCenteredCoord(w, screen.availWidth);
-               sh = getCenteredCoord(h, screen.availHeight);
-               
-               var win = window.open(url, "qx", "width=" + w + ",height=" + h + ",left=" + sw + ",top=" + sh + ",status=no,resizable=no");
-       }
-       
-       function getCenteredCoord(windowDim, screenDim) {
-               return (screenDim / 2) - (windowDim / 2);
-       }
-       </script>
-</head>
-<body>
-  <div id="demoHead">qooxdoo: <span>The new era of web interface development</span></div>
-
-  <div id="content" style="position:absolute;top:0px;left:0px">
-    
-    <h1>Demo</h1>
-   
-    <p class="note">The source version is only available in SVN and SDK archives.</p>
-
-    <h2>Applications</h2>
-    
-    <ul>
-      <li>
-        <h3>Showcase</h3>
-        <p>A good example for qooxdoo's versatility.</p>
-        <span class="source"><a href="showcase/build/index.html"><b>Build</b></a> | <a href="showcase/source/index.html">Source (Developer)</a></span>
-        <span class="build"><a href="showcase/index.html"><b>Start Showcase</b></a></span>
-      </li>
-      <li>
-        <h3>Feed Reader</h3>
-        <p>qooxdoo RSS feed reader using dummy RSS feed data.</p>
-       <span class="source"><a href="feedreader/build/index.html"><b>Build</b></a> | <a href="feedreader/source/index.html">Source (Developer)</a></span>
-       <span class="build"><a href="feedreader/index.html"><b>Open Feed Reader</b></a></span>
-      </li>
-      <li>
-        <h3>Web Mail</h3>
-        <p>Complex application-like interface using multiple qooxdoo widgets.</p>
-        <span class="source"><a href="#" onclick="launch('webmail/build/index.html')"><b>Build</b></a> | <a href="#" onclick="launch('webmail/source/index.html')">Source (Developer)</a></span>
-        <span class="build"><a href="#" onclick="launch('webmail/index.html')"><b>Open Web Mail</b></a></span>
-      </li>
-      <li>
-        <h3>API Viewer</h3>
-        <p>qooxdoo based API viewer.</p>
-        <span class="source"><a href="apiviewer/build/index.html"><b>Build</b></a> | <a href="apiviewer/source/index.html">Source (Developer)</a></span>
-        <span class="build"><a href="apiviewer/index.html"><b>Open API viewer</b></a></span>
-      </li>
-      <li>
-        <h3>Samples</h3>
-        <ul>
-          <li>
-            <h4>Example</h4>
-            <p>Easily to understand examples. The basic features of each qooxdoo widget is demonstrated in a separate example. This section is probably the one you are looking for!</p>
-            <span class="source"><a href="sample/build/html/example/index.html"><b>Build</b></a> | <a href="sample/source/html/example/index.html">Source (Developer)</a></span>
-            <span class="build"><a href="sample/html/example/index.html"><b>Show Example</b></a></span>
-          </li>
-          <li>
-            <h4>Test</h4>
-            <p>These tests demonstrate internal functionality of qooxdoo. Not really useful for the typical qooxdoo user, but needed for developers to test some complex layout stuff, performance related problems and more. The tests may not always be up-to-date and functioning!</p>
-            <span class="source"><a href="sample/build/html/test/index.html"><b>Build</b></a> | <a href="sample/source/html/test/index.html">Source (Developer)</a></span>
-            <span class="build"><a href="sample/html/test/index.html"><b>Show Test</b></a></span>
-          </li>
-          <li>
-            <h4>Performance</h4>
-            <p>These tests are used to test performance of different javascript/qooxdoo rountines and allows them to compare them with each other</p>
-            <span class="source"><a href="sample/build/html/performance/index.html"><b>Build</b></a> | <a href="sample/source/html/performance/index.html">Source (Developer)</a></span>
-            <span class="build"><a href="sample/html/performance/index.html"><b>Show Performance</b></a></span>
-          </li>
-        </ul>
-      </li>
-    </ul>
-  </div>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/Makefile b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/Makefile
deleted file mode 100644 (file)
index ec67480..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Andreas Ecker (ecker)
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-################################################################################
-# BASIC SETTINGS
-################################################################################
-
-#
-# Location of your qooxdoo distribution
-# Could be relative from this location or absolute
-#
-QOOXDOO_PATH = ../../..
-
-#
-# The same as above, but from the webserver point of view
-# Starting point is the application HTML file of the source folder.
-# In most cases just add a "/.." compared to above
-#
-QOOXDOO_URI = ../../../../../..
-
-#
-# Namespace of your application e.g. custom
-#
-APPLICATION_NAMESPACE = sample
-
-#
-# Titles used in your API viewer and during the build process
-#
-APPLICATION_MAKE_TITLE = SAMPLE
-APPLICATION_API_TITLE = Sample
-
-#
-# Additional files (space separated list)
-#
-APPLICATION_FILES = index.html html css
-
-
-
-################################################################################
-# ADVANCED SETTINGS
-################################################################################
-
-#
-# Disable line breaks
-#
-APPLICATION_LINEBREAKS_BUILD = false
-APPLICATION_LINEBREAKS_SOURCE = false
-
-#
-# qooxdoo.org sync
-#
-APPLICATION_PUBLISH_PATH = root@qooxdoo.org:/var/www/qooxdoo/demo/$(FRAMEWORK_VERSION)/$(APPLICATION_NAMESPACE)
-
-#
-# Build/Integrate all features
-#
-APPLICATION_COMPLETE_BUILD = true
-
-#
-# Relation from HTML file to the top level directory (source or build).
-#
-APPLICATION_PAGE_TO_TOPLEVEL = ../..
-
-
-
-
-
-
-################################################################################
-# INCLUDE CORE
-################################################################################
-
-ifneq ($(QOOXDOO_PATH),PLEASE_DEFINE_QOOXDOO_PATH)
-       include $(QOOXDOO_PATH)/frontend/framework/tool/make/targets.mk
-       include $(QOOXDOO_PATH)/frontend/framework/tool/make/application.mk
-endif
-
-error:
-       @echo "  * Please configure QOOXDOO_PATH"
-
-
-
-
-
-################################################################################
-# EXTENSIONS
-################################################################################
-
-layout-source:
-       @echo
-       @echo "  GENERATION OF SAMPLE LAYOUT"
-       @$(CMD_LINE)
-       @echo "  * Generating source/script/layout.js..."
-       @python tool/layout.py source/script/layout.js source/html
-
-layout-build:
-       @echo
-       @echo "  GENERATION OF SAMPLE LAYOUT"
-       @$(CMD_LINE)
-       @echo "  * Generating build/script/layout.js..."
-       @python tool/layout.py build/script/layout.js build/html
-
-build: layout-build
-source: layout-source
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/css/layout.css b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/css/layout.css
deleted file mode 100644 (file)
index e2c1d55..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-body{
-  font-size: 11px;
-  font-family: Arial, "Bitstream Vera Sans", Verdana, sans-serif;
-  margin: 0;
-  padding: 0;
-}
-
-p{
-  margin: 6px 0;
-}
-
-#demoHead,
-#demoFoot{
-  position: absolute;
-  left: 0px;
-  right: 0px;
-  width: 100%;
-  background: #134275;
-  padding: 3px 8px;
-  height: 20px;
-  color: white;
-  font-weight: bold;
-  overflow: hidden;
-  z-index: 1000000000;
-}
-
-#demoHead{
-  top: 0px;
-}
-
-#demoHead span{
-  font-weight: normal;
-}
-
-#demoFoot{
-  bottom: 0px;
-}
-
-#demoFoot a{
-  color: white;
-}
-
-#demoFrame{
-  position: absolute;
-  top: 20px;
-  bottom: 20px;
-  right: 0;
-  width: 280px;
-  background: #fff;
-  border-left: 10px solid #134275;
-  z-index: 1000000000;
-}
-
-#demoFiles{
-  font-size: 11px;
-  font-family: Tahoma, Verdana, sans-serif;
-
-  position: absolute;
-  top: 24px;
-  right: 50px;
-  width: 215px;
-  z-index: 1000000002;
-}
-
-#demoFiles optgroup{
-  background: #ececed;
-  font-size: 14px;
-  text-transform: capitalize;
-}
-
-#demoFiles optgroup option{
-  font-size: 11px;
-  background: #fff;
-}
-
-#demoJump{
-  position: absolute;
-  top: 24px;
-  right: 4px;
-  width: 45px;
-  text-align: right;
-  z-index: 1000000002;
-}
-
-#demoDescription{
-  position: absolute;
-  top: 44px;
-  height : 120px;
-  width: 266px;
-  right: 4px;
-  z-index: 1000000002;
-  overflow: auto;
-  border-bottom: 10px solid #134275;
-  padding: 0px 6px 0px 4px;
-}
-
-#demoDescription p{
-  margin: 4px 0;
-}
-
-#demoDescription h1{
-  font-size: 12px;
-  margin: 8px 0 4px;
-}
-
-#demoDebug{
-  position: absolute;
-  top: 160px;
-  bottom: 24px;
-  right: 4px;
-  width: 266px;
-  font-size: 10px;
-  font-family: "Bitstream Vera Sans Mono", "Courier New", "Courier", monospace;
-  z-index: 1000000102;
-}
-
-#demoDebug .log-body{
-  overflow: auto;
-  position: absolute;
-  top: 30px;
-  bottom: 0px;
-  width: 266px;
-  padding: 4px;
-}
-
-#demoDebug .log-debug{
-  color: gray;
-  padding-left: 6px;
-}
-
-#demoDebug .log-info{
-  background: #DFEBFD;
-  padding-left: 6px;
-}
-
-#demoDebug .log-warn{
-  background: #F5FAAD;
-  padding-left: 6px;
-}
-
-#demoDebug .log-error{
-  background: #D2623E;
-  color: black;
-  padding-left: 6px;
-}
-
-#demoDebug .log-group{
-  margin-top: 4px;
-  margin-bottom: 1px;
-  text-decoration: underline;
-}
-
-#demoDebug .log-head{
-  padding: 8px 2px 4px;
-}
-
-#demoJump button,
-#demoDebug .log-head button{
-  border: 1px solid #335EA8;
-  margin: 0 2px;
-  font-size: 11px;
-  background: #EBE9ED;
-  font-family: Tahoma, Verdana, sans-serif;
-}
-
-#demoDebug .log-head button{
-  visibility: visible;
-}
-
-#demoJump button{
-  width: 16px;
-  -moz-appearance: none !important;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/css/layout_ie.css b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/css/layout_ie.css
deleted file mode 100644 (file)
index 70de91b..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#demoFrame{
-  height: expression(document.body.offsetHeight - 40);
-}
-
-#demoDebug{
-  height: expression(document.body.offsetHeight - 184);
-}
-
-#demoDebug .log-body{
-  height: expression(document.body.offsetHeight - 214);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Atom_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Atom_1.html
deleted file mode 100644 (file)
index 3a8078e..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>qx.ui.basic.Atom is the parent class for buttons, menu entries, icons, checkboxes. While you can do,
-    you usually don't have to instantiate qx.ui.basic.Atom directly.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    // test no1
-    var nl1 = new qx.ui.basic.Atom("Test #1", "icon/16/actions/view-refresh.png", 16, 16);
-    nl1.setTop(48);
-    nl1.setLeft(20);
-    nl1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    nl1.setBackgroundColor(new qx.renderer.color.Color("white"));
-    nl1.setPadding(4);
-    d.add(nl1);
-
-    // test no2
-    var nl2 = new qx.ui.basic.Atom("Test #2");
-    nl2.setTop(48);
-    nl2.setLeft(120);
-    nl2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    nl2.setBackgroundColor(new qx.renderer.color.Color("white"));
-    nl2.setPadding(4);
-    d.add(nl2);
-
-    // test no3
-    var nl3 = new qx.ui.basic.Atom(null, "icon/16/actions/view-refresh.png");
-    nl3.setTop(48);
-    nl3.setLeft(200);
-    nl3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    nl3.setBackgroundColor(new qx.renderer.color.Color("white"));
-    nl3.setPadding(4);
-    d.add(nl3);
-
-    // test no4
-    var nl4 = new qx.ui.basic.Atom("<span style='font-size:14px'>Some great HTML</span><br/>for <b>you</b>", "icon/32/actions/view-refresh.png");
-    nl4.setTop(48);
-    nl4.setLeft(250);
-    nl4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    nl4.setBackgroundColor(new qx.renderer.color.Color("white"));
-    nl4.setPadding(4);
-    d.add(nl4);
-
-    // test no5
-    var nl5 = new qx.ui.basic.Atom(qx.html.Textile.textilize("*File Information*:\nJPEG-Photo\nCreated: 01/03/05"), "icon/48/apps/preferences-desktop-theme.png");
-    with(nl5)
-    {
-      setTop(200);
-      setLeft(20);
-      setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-      setPadding(3, 6);
-    };
-    d.add(nl5);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Atom_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Atom_2.html
deleted file mode 100644 (file)
index dcbf546..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Some more complex tests for qx.ui.basic.Atom.</p>
-    <p>You can change all the properties before "really creating" the object or any time after this was done.</p>
-  </div>
-
-  <div style="display:none" id="control">
-    <p>
-      Width:
-      <a href="javascript://" onclick="void(at1.setWidth(null))">null</a> |
-      <a href="javascript://" onclick="void(at1.setWidth('auto'))">auto</a> |
-      <a href="javascript://" onclick="void(at1.setWidth(25))">25</a> |
-      <a href="javascript://" onclick="void(at1.setWidth(50))">50</a> |
-      <a href="javascript://" onclick="void(at1.setWidth(100))">100</a> |
-      <a href="javascript://" onclick="void(at1.setWidth(200))">200</a>
-    </p>
-    <p>
-      Height:
-      <a href="javascript://" onclick="void(at1.setHeight(null))">null</a> |
-      <a href="javascript://" onclick="void(at1.setHeight('auto'))">auto</a> |
-      <a href="javascript://" onclick="void(at1.setHeight(25))">25</a> |
-      <a href="javascript://" onclick="void(at1.setHeight(50))">50</a> |
-      <a href="javascript://" onclick="void(at1.setHeight(100))">100</a> |
-      <a href="javascript://" onclick="void(at1.setHeight(200))">200</a>
-    </p>
-    <hr/>
-    <p>
-      Label Size:
-      <a href="javascript://" onclick="void(at1.setLabel(null))">null</a> |
-      <a href="javascript://" onclick="void(at1.setLabel('short'))">short</a> |
-      <a href="javascript://" onclick="void(at1.setLabel('some cool label'))">medium</a> |
-      <a href="javascript://" onclick="void(at1.setLabel('ultra long label description'))">long</a> |
-      <a href="javascript://" onclick="void(at1.setLabel('<b>hello <i>world</i></b>'))">html</a> |
-      <a href="javascript://" onclick="void(at1.setLabel('<p>Hello tester.</p><ul><li>cool</li><li><b>test</b></li><li>file</li></ul>'))">complex</a>
-    </p>
-    <p>
-      Icon Size:
-      <a href="javascript://" onclick="void(at1.setIcon(null))">null</a> |
-      <a href="javascript://" onclick="void(at1.setIcon('icon/16/apps/accessories-date.png'))">16px</a> |
-      <a href="javascript://" onclick="void(at1.setIcon('icon/32/actions/format-color.png'))">32px</a> |
-      <a href="javascript://" onclick="void(at1.setIcon('icon/48/devices/media-flash.png'))">48px</a>
-    </p>
-    <p>
-      Icon Position:
-      <a href="javascript://" onclick="void(at1.setIconPosition('top'))">top</a> |
-      <a href="javascript://" onclick="void(at1.setIconPosition('right'))">right</a> |
-      <a href="javascript://" onclick="void(at1.setIconPosition('bottom'))">bottom</a> |
-      <a href="javascript://" onclick="void(at1.setIconPosition('left'))">left</a>
-    </p>
-    <p>
-      Spacing:
-      <a href="javascript://" onclick="void(at1.setSpacing(0))">0</a> |
-      <a href="javascript://" onclick="void(at1.setSpacing(2))">2</a> |
-      <a href="javascript://" onclick="void(at1.setSpacing(4))">4</a> |
-      <a href="javascript://" onclick="void(at1.setSpacing(6))">6</a> |
-      <a href="javascript://" onclick="void(at1.setSpacing(8))">8</a> |
-      <a href="javascript://" onclick="void(at1.setSpacing(10))">10</a> |
-      <a href="javascript://" onclick="void(at1.setSpacing(25))">25</a> |
-      <a href="javascript://" onclick="void(at1.setSpacing(50))">50</a>
-    </p>
-    <hr/>
-    <p>
-      Show:
-      <a href="javascript://" onclick="void(at1.setShow('none'))">None</a> |
-      <a href="javascript://" onclick="void(at1.setShow('label'))">Label</a> |
-      <a href="javascript://" onclick="void(at1.setShow('icon'))">Icon</a> |
-      <a href="javascript://" onclick="void(at1.setShow('both'))">Both</a>
-    </p>
-    <hr/>
-    <p>
-      Horizontal Children Align:
-      <a href="javascript://" onclick="void(at1.setHorizontalChildrenAlign('left'))">left</a> |
-      <a href="javascript://" onclick="void(at1.setHorizontalChildrenAlign('center'))">center</a> |
-      <a href="javascript://" onclick="void(at1.setHorizontalChildrenAlign('right'))">right</a>
-    </p>
-    <p>
-      Vertical Children Align:
-      <a href="javascript://" onclick="void(at1.setVerticalChildrenAlign('top'))">top</a> |
-      <a href="javascript://" onclick="void(at1.setVerticalChildrenAlign('middle'))">middle</a> |
-      <a href="javascript://" onclick="void(at1.setVerticalChildrenAlign('bottom'))">bottom</a>
-    </p>
-    <hr/>
-    <p>
-      Padding:
-      <a href="javascript://" onclick="void(at1.setPadding(null))">None</a> |
-      <a href="javascript://" onclick="void(at1.setPadding(2, 4))">2, 4</a> |
-      <a href="javascript://" onclick="void(at1.setPadding(4, 8))">4, 8</a> |
-      <a href="javascript://" onclick="void(at1.setPadding(16))">16</a>
-    </p>
-    <p>
-      Border:
-      <a href="javascript://" onclick="void(at1.setBorder(null))">null</a> |
-      <a href="javascript://" onclick="void(at1.setBorder(new qx.renderer.border.Border(1, 'solid', 'black')))">1</a> |
-      <a href="javascript://" onclick="void(at1.setBorder(new qx.renderer.border.Border(5, 'solid', 'black')))">5</a> |
-      <a href="javascript://" onclick="void(at1.setBorder(new qx.renderer.border.Border(10, 'solid', 'black')))">10</a> |
-      <a href="javascript://" onclick="void(at1.setBorder(new qx.renderer.border.Border(25, 'solid', 'black')))">25</a> |
-      <a href="javascript://" onclick="void(at1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset))">outset</a> |
-      <a href="javascript://" onclick="void(at1.setBorder(qx.renderer.border.BorderPresets.getInstance().inset))">inset</a>
-    </p>
-    <hr/>
-    <p>
-      Opacity:
-      <a href="javascript://" onclick="void(at1.setOpacity(null))">null</a> |
-      <a href="javascript://" onclick="void(at1.setOpacity(0))">0</a> |
-      <a href="javascript://" onclick="void(at1.setOpacity(0.25))">0.25</a> |
-      <a href="javascript://" onclick="void(at1.setOpacity(0.5))">0.5</a> |
-      <a href="javascript://" onclick="void(at1.setOpacity(0.75))">0.75</a> |
-      <a href="javascript://" onclick="void(at1.setOpacity(1))">1</a>
-    </p>
-    <p>
-      Enabled:
-      <a href="javascript://" onclick="void(at1.setEnabled(false))">false</a> |
-      <a href="javascript://" onclick="void(at1.setEnabled(true))">true</a>
-    </p>
-  </div>
-
-  <script type="text/javascript">
-  var at1;
-
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    at1 = new qx.ui.basic.Atom("My first qx.ui.basic.Atom", "icon/32/actions/format-color.png");
-
-    with(at1)
-    {
-      setTop(48);
-      setLeft(20);
-
-      setIconPosition("right");
-
-      setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      setBackgroundColor(new qx.renderer.color.Color("white"));
-      setPadding(2, 4);
-    };
-
-    var ct1 = new qx.ui.basic.Label(document.getElementById("control").innerHTML);
-
-    with(ct1)
-    {
-      setWidth(300);
-      setRight(335);
-
-      setHeight(null);
-      setTop(48);
-      setBottom(48);
-
-      setOverflow("auto");
-
-      setBackgroundColor(new qx.renderer.color.Color("white"));
-      setBorder(qx.renderer.border.BorderPresets.getInstance().groove);
-      setPadding(10);
-    };
-
-    d.add(at1, ct1);
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Atom_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Atom_3.html
deleted file mode 100644 (file)
index 675988a..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing the new flash support for qx.ui.basic.Atom</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-      var a;
-
-      for (var i=1; i<11; i++)
-      {
-        var a = new qx.ui.basic.Atom("Flash Atom #" + i, "icon/16/actions/view-refresh.png", 16, 16, "./image/flash/color/file" + i + ".swf");
-
-        a.setTop(48 + ((i-1)*30));
-        a.setLeft(20);
-        a.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-        a.setBackgroundColor(new qx.renderer.color.Color("white"));
-        a.setPadding(4);
-
-        d.add(a);
-      };
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ButtonView_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ButtonView_1.html
deleted file mode 100644 (file)
index f491ac2..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>qx.ui.pageview.buttonview.ButtonView implementation</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-
-      var bs = new qx.ui.pageview.buttonview.ButtonView;
-
-      bs.setLocation(20, 48);
-      bs.setRight(335);
-      bs.setBottom(48);
-
-      var bsb1 = new qx.ui.pageview.buttonview.Button("Display", "icon/32/devices/video-display.png");
-      var bsb2 = new qx.ui.pageview.buttonview.Button("Bug", "icon/32/apps/graphics-snapshot.png");
-      var bsb3 = new qx.ui.pageview.buttonview.Button("Colors", "icon/32/actions/format-color.png");
-      var bsb4 = new qx.ui.pageview.buttonview.Button("Icons", "icon/32/apps/preferences-desktop-theme.png");
-      var bsb5 = new qx.ui.pageview.buttonview.Button("Paint", "icon/32/apps/graphics-image-viewer.png");
-      var bsb6 = new qx.ui.pageview.buttonview.Button("Applications", "icon/32/actions/system-run.png");
-      var bsb7 = new qx.ui.pageview.buttonview.Button("System", "icon/32/apps/system-software-update.png");
-
-      bsb1.setChecked(true);
-
-      bs.getBar().add(bsb1, bsb2, bsb3, bsb4, bsb5, bsb6, bsb7);
-
-      var p1 = new qx.ui.pageview.buttonview.Page(bsb1);
-      var p2 = new qx.ui.pageview.buttonview.Page(bsb2);
-      var p3 = new qx.ui.pageview.buttonview.Page(bsb3);
-      var p4 = new qx.ui.pageview.buttonview.Page(bsb4);
-      var p5 = new qx.ui.pageview.buttonview.Page(bsb5);
-      var p6 = new qx.ui.pageview.buttonview.Page(bsb6);
-      var p7 = new qx.ui.pageview.buttonview.Page(bsb7);
-
-      bs.getPane().add(p1, p2, p3, p4, p5, p6, p7);
-
-      var f1 = new qx.ui.form.TextField("Display Input");
-      var f2 = new qx.ui.form.TextField("Penguin Input");
-      var f3 = new qx.ui.form.TextField("Colorize Input");
-      var f4 = new qx.ui.form.TextField("Icons Input");
-      var f5 = new qx.ui.form.TextField("Paint Input");
-      var f6 = new qx.ui.form.TextField("Applications Input");
-      var f7 = new qx.ui.form.TextField("System Input");
-
-      p1.add(f1);
-      p2.add(f2);
-      p3.add(f3);
-      p4.add(f4);
-      p5.add(f5);
-      p6.add(f6);
-      p7.add(f7);
-
-      var r1 = new qx.ui.form.RadioButton("Top", "top", null, true);
-      var r2 = new qx.ui.form.RadioButton("Right", "right");
-      var r3 = new qx.ui.form.RadioButton("Bottom", "bottom");
-      var r4 = new qx.ui.form.RadioButton("Left", "left");
-
-      r1.setTop(50);
-      r2.setTop(70);
-      r3.setTop(90);
-      r4.setTop(110);
-
-      p1.add(r1, r2, r3, r4);
-
-      var rm = new qx.manager.selection.RadioManager(null, [r1, r2, r3, r4]);
-
-      rm.addEventListener("changeSelected", function(e) {
-        bs.setBarPosition(e.getData().getValue());
-      });
-
-      d.add(bs);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ButtonView_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ButtonView_2.html
deleted file mode 100644 (file)
index 86d6c14..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Yet Another qx.ui.pageview.buttonview.ButtonView Example</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-
-      var bs = new qx.ui.pageview.buttonview.ButtonView;
-      bs.set({ left: 20, top: 48, right: 335, bottom: 48 });
-      bs.setBarPosition("left");
-
-      var bsb1 = new qx.ui.pageview.buttonview.Button("Display", "icon/16/devices/video-display.png");
-      var bsb2 = new qx.ui.pageview.buttonview.Button("Organizer", "icon/16/apps/office-organizer.png");
-      var bsb3 = new qx.ui.pageview.buttonview.Button("Colorize", "icon/16/actions/format-color.png");
-      var bsb4 = new qx.ui.pageview.buttonview.Button("Icons", "icon/16/apps/preferences-desktop-theme.png");
-      var bsb5 = new qx.ui.pageview.buttonview.Button("Paint", "icon/16/apps/graphics-image-viewer.png");
-      var bsb6 = new qx.ui.pageview.buttonview.Button("Applications", "icon/16/actions/system-run.png");
-      var bsb7 = new qx.ui.pageview.buttonview.Button("System", "icon/16/apps/system-software-update.png");
-
-      bsb1.setChecked(true);
-
-      bsb1.set({ iconPosition: "left", horizontalChildrenAlign: "left" });
-      bsb2.set({ iconPosition: "left", horizontalChildrenAlign: "left" });
-      bsb3.set({ iconPosition: "left", horizontalChildrenAlign: "left" });
-      bsb4.set({ iconPosition: "left", horizontalChildrenAlign: "left" });
-      bsb5.set({ iconPosition: "left", horizontalChildrenAlign: "left" });
-      bsb6.set({ iconPosition: "left", horizontalChildrenAlign: "left" });
-      bsb7.set({ iconPosition: "left", horizontalChildrenAlign: "left" });
-
-      bs.getBar().add(bsb1, bsb2, bsb3, bsb4, bsb5, bsb6, bsb7);
-
-      bs.getBar().setHorizontalChildrenAlign("center");
-      bs.getBar().setVerticalChildrenAlign("bottom");
-
-      var p1 = new qx.ui.pageview.buttonview.Page(bsb1);
-      var p2 = new qx.ui.pageview.buttonview.Page(bsb2);
-      var p3 = new qx.ui.pageview.buttonview.Page(bsb3);
-      var p4 = new qx.ui.pageview.buttonview.Page(bsb4);
-      var p5 = new qx.ui.pageview.buttonview.Page(bsb5);
-      var p6 = new qx.ui.pageview.buttonview.Page(bsb6);
-      var p7 = new qx.ui.pageview.buttonview.Page(bsb7);
-
-      bs.getPane().add(p1, p2, p3, p4, p5, p6, p7);
-
-      var f1 = new qx.ui.form.TextField("Display Input");
-      var f2 = new qx.ui.form.TextField("Sunshine Input");
-      var f3 = new qx.ui.form.TextField("Paint Input");
-      var f4 = new qx.ui.form.TextField("Icons Input");
-      var f5 = new qx.ui.form.TextField("Images Input");
-      var f6 = new qx.ui.form.TextField("Applications Input");
-      var f7 = new qx.ui.form.TextField("System Input");
-
-      p1.add(f1);
-      p2.add(f2);
-      p3.add(f3);
-      p4.add(f4);
-      p5.add(f5);
-      p6.add(f6);
-      p7.add(f7);
-
-      var r1 = new qx.ui.form.RadioButton("Top", "top");
-      var r2 = new qx.ui.form.RadioButton("Right", "right");
-      var r3 = new qx.ui.form.RadioButton("Bottom", "bottom");
-      var r4 = new qx.ui.form.RadioButton("Left", "left", null, true);
-
-      r1.setTop(50);
-      r2.setTop(70);
-      r3.setTop(90);
-      r4.setTop(110);
-
-      p1.add(r1, r2, r3, r4);
-
-      var rm = new qx.manager.selection.RadioManager(null, [r1, r2, r3, r4]);
-
-      rm.addEventListener("changeSelected", function(e) {
-        bs.setBarPosition(e.getData().getValue());
-      });
-
-      d.add(bs);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Button_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Button_1.html
deleted file mode 100644 (file)
index 35f6c8f..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test the qx.ui.form.Button constructor. qx.ui.form.Button is based on qx.ui.basic.Atom.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    function buttonExecute() { this.debug("Executed: " + this.getLabel()); };
-
-    var btn1 = new qx.ui.form.Button("Button No #1");
-    with(btn1)
-    {
-      setTop(48);
-      setLeft(20);
-      addEventListener("execute", buttonExecute);
-    };
-
-    d.add(btn1);
-
-
-
-    var btn2 = new qx.ui.form.Button("Button No #2");
-    with(btn2)
-    {
-      setTop(48);
-      setLeft(120);
-      addEventListener("execute", buttonExecute);
-      setEnabled(false);
-    };
-
-    d.add(btn2);
-
-
-
-    var btn3 = new qx.ui.form.Button("Button No #3");
-    with(btn3)
-    {
-      setTop(48);
-      setLeft(220);
-      addEventListener("execute", buttonExecute);
-    };
-
-    d.add(btn3);
-
-
-    var btn4 = new qx.ui.form.Button("Button No #4", "icon/16/actions/go-next.png");
-    with(btn4)
-    {
-      setTop(48);
-      setLeft(320);
-      addEventListener("execute", buttonExecute);
-    };
-
-    d.add(btn4);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/CheckBox_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/CheckBox_1.html
deleted file mode 100644 (file)
index f9b205b..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Tests for qx.ui.form.CheckBox. qx.ui.form.CheckBox extends qx.ui.basic.Atom and so it inherits all the options and properties defined there.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var c1 = new qx.ui.form.CheckBox("Send Data to Server", "c1checked", "c1");
-    with(c1)
-    {
-      setTop(48);
-      setLeft(20);
-    };
-    d.add(c1);
-
-    var c2 = new qx.ui.form.CheckBox("Delete all Data on Server", "c2checked", "c2");
-    with(c2)
-    {
-      setTop(78);
-      setLeft(20);
-    };
-    d.add(c2);
-    c2.setChecked(true);
-
-
-    var c3 = new qx.ui.form.CheckBox("Top Checkbox", "c3checked", "c3");
-    with(c3)
-    {
-      setTop(120);
-      setLeft(20);
-      setIconPosition("top");
-    };
-    d.add(c3);
-
-    var c4 = new qx.ui.form.CheckBox("Bottom Checkbox", "c4checked", "c4");
-    with(c4)
-    {
-      setTop(120);
-      setLeft(140);
-      setIconPosition("bottom");
-    };
-    d.add(c4);
-
-
-    var c5 = new qx.ui.form.CheckBox("Left Checkbox", "c5checked", "c5");
-    with(c5)
-    {
-      setTop(180);
-      setLeft(20);
-      setIconPosition("left");
-    };
-    d.add(c5);
-
-    var c6 = new qx.ui.form.CheckBox("Right Checkbox", "c6checked", "c6");
-    with(c6)
-    {
-      setTop(180);
-      setLeft(140);
-      setIconPosition("right");
-    };
-    d.add(c6);
-
-    var c7 = new qx.ui.form.CheckBox(null, "c7checked", "c7");
-    with(c7)
-    {
-      setTop(250);
-      setLeft(20);
-    };
-    d.add(c7);
-
-    var c8 = new qx.ui.form.CheckBox(null, "c7checked", "c7");
-    with(c8)
-    {
-      setTop(300);
-      setLeft(20);
-      setLabel("Label pure");
-      setShow("label");
-      setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      setBackgroundColor(new qx.renderer.color.Color("red"));
-    };
-    d.add(c8);
-
-    c8.addEventListener("changeChecked", function(e) {
-      this.setBackgroundColor(new qx.renderer.color.Color(this.getChecked() ? "green" : "red"));
-    });
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ColorPopup_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ColorPopup_1.html
deleted file mode 100644 (file)
index 94aa182..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test for qx.ui.component.ColorPopup.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var mybtn = new qx.ui.form.Button("Open Popup");
-    mybtn.setLocation(20, 48);
-    mybtn.addEventListener("execute", function() {
-      mypop.setTop(qx.html.Location.getPageBoxBottom(this.getElement()));
-      mypop.setLeft(qx.html.Location.getPageBoxLeft(this.getElement()));
-      mypop.show();
-    });
-
-    var myview = new qx.ui.basic.Label("Selected Color");
-    myview.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-    myview.setLocation(100, 48);
-    myview.setPadding(3, 6);
-    myview.setBackgroundImage("core/dotted_white.gif");
-    myview.addToDocument();
-
-    var mytables =
-    {
-      core : {
-        label : "Basic Colors",
-        values : [ "#000", "#333", "#666", "#999", "#CCC", "#FFF", "red", "green", "blue", "yellow", "teal", "maroon" ]
-      },
-
-      template : {
-        label : "Template Colors",
-        values : [ "#B07B30", "#B07BC9", "#E3AEC9", "#7A2A53" ]
-      },
-
-      recent : {
-        label : "Recent Colors",
-
-        // In this case we need named colors or rgb-value-strings, hex is not allowed currently
-        values : [ "rgb(122,195,134)", "orange" ]
-      }
-    }
-
-    var mypop = new qx.ui.component.ColorPopup(mytables);
-    mypop.setLocation(100, 100);
-    mypop.setValue(new qx.renderer.color.Color("#23F3C1"));
-
-    mybtn.addToDocument();
-    mypop.addToDocument();
-
-    mypop.addEventListener("changeValue", function(e) {
-      this.debug("Value Listener: " + e.getData());
-      myview.setBackgroundColor(e.getData());
-      myview.setBackgroundImage(e.getData() ? null : "core/dotted_white.gif");
-    });
-
-    mypop.addEventListener("changeRed", function(e) {
-      this.debug("Red Listener: " + e.getData());
-    });
-
-    mypop.addEventListener("changeGreen", function(e) {
-      this.debug("Green Listener: " + e.getData());
-    });
-
-    mypop.addEventListener("changeBlue", function(e) {
-      this.debug("Blue Listener: " + e.getData());
-    });
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ColorSelector_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ColorSelector_1.html
deleted file mode 100644 (file)
index 2a4a39a..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test for qx.ui.component.ColorSelector.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var mycolor = new qx.ui.component.ColorSelector;
-
-    mycolor.setLocation(50, 50);
-
-    qx.ui.core.ClientDocument.getInstance().add(mycolor);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ColorSelector_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ColorSelector_2.html
deleted file mode 100644 (file)
index e43a1e9..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test for qx.ui.component.ColorSelector.</p>
-    <p>Adding a default/previous/old color value to compare it with the new selection.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var mycolor = new qx.ui.component.ColorSelector(130, 180, 100);
-
-    mycolor.setLocation(50, 50);
-
-    qx.ui.core.ClientDocument.getInstance().add(mycolor);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ComboBoxEx_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ComboBoxEx_1.html
deleted file mode 100644 (file)
index 956fd1c..0000000
+++ /dev/null
@@ -1,230 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-  <script type="text/javascript">
-  
-function getTestData() {
-       var testData = [
-               [ '1', 'One' ],
-               [ '2', 'Two' ],
-               [ '3', 'Three' ],
-               [ '4', 'Four' ],
-               [ '5', 'Five' ],
-               [ '6', 'Six' ],
-               [ '7', 'Seven' ],
-               [ '8', 'Eight' ],
-               [ '9', 'Nine' ],
-               [ '10', 'Ten' ],
-               [ '11', 'Eleven' ],
-               [ '12', 'Twelve' ],
-               [ '13', 'Thirteen' ],
-               [ '14', 'Fourteen' ],
-               [ '15', 'Fiveteen' ],
-               [ '16', 'Sixteen' ],
-               [ '17', 'Seventeen' ],
-               // Test of a long string
-               [ '1921', 'One thousand nine hundred twenty one' ]
-       ];
-       for (var i = 0; i < testData.length; i++) {
-               testData[i].push('widget/arrows/'+(i % 2 ? 'up':'down')+'_small.gif');
-               testData[i].push('Extra data '+i);
-       }
-       return testData;
-}
-
-qx.OO.defineClass('Box', qx.ui.layout.BoxLayout, function() {
-       qx.ui.layout.BoxLayout.apply(this, arguments);
-       this.auto();
-});
-
-qx.OO.defineClass('GroupBox', qx.ui.groupbox.GroupBox, function() {
-       qx.ui.groupbox.GroupBox.apply(this, arguments);
-       this.auto();
-});
-
-qx.core.Init.getInstance().defineMain(function() {
-       // Shortcuts
-       var form = qx.ui.form;
-       Label = qx.ui.basic.Label;
-       var testData = getTestData();
-
-       //###1st row: combo
-       
-       combo = new form.ComboBoxEx;
-       var butSize = new form.Button('Size text field to content');
-       butSize.addEventListener('execute', function() {
-               combo.sizeTextFieldToContent();
-       });
-       
-       var boxCombo2 = new Box;
-       with (boxCombo2) {
-               setSpacing(10);
-               add(combo, butSize);
-       }
-       var boxCombo = new GroupBox('This is the ComboBoxEx under test');
-       boxCombo.add(boxCombo2);
-
-       //###2nd row: Test of simple properties
-       var cEd = new form.CheckBox('Editable');
-       cEd.setChecked(combo.getEditable());
-       cEd.addEventListener('changeChecked', function() {
-               combo.setEditable(cEd.isChecked());
-       });
-       
-       var cEnsure = new form.CheckBox('Ensure something selected');
-       cEnsure.setChecked(combo.getEnsureSomethingSelected());
-       cEnsure.addEventListener('changeChecked', function() {
-               combo.setEnsureSomethingSelected(cEnsure.isChecked());
-       });
-       
-       var cAllowSearch = new form.CheckBox('Allow searching');
-       cAllowSearch.setChecked(combo.getAllowSearch());
-       cAllowSearch.addEventListener('changeChecked', function() {
-               combo.setAllowSearch(cAllowSearch.isChecked());
-       });
-       
-       var cIdCol = new form.CheckBox('ID column visible');
-       cIdCol.setChecked(combo.isIdColumnVisible());
-       cIdCol.addEventListener('changeChecked', function() {
-               combo.setIdColumnVisible(cIdCol.isChecked());
-       });
-       
-       var fieldItems = new form.Spinner(0, 0, testData.length);
-       fieldItems._manager.addEventListener('changeValue', function() {
-               var sel = [], count = fieldItems.getValue();
-               for (var i = 0; i < count; i++) {
-                       sel.push(testData[i]);
-               }
-               combo.setSelection(sel);
-       });
-       fieldItems.setValue(15);
-       
-       var boxProp2 = new Box;
-       with (boxProp2) {
-               setSpacing(10);
-               add(cEd, cEnsure, cAllowSearch, cIdCol, new Label('Number of items in list'), fieldItems);
-       }
-       var boxProp = new GroupBox('Test of simple properties');
-       boxProp.add(boxProp2);
-
-       //###Test of headers
-       var allHeaders = [ 'ID', 'Description', 'Img', 'Extra info' ];
-       var rb1 = new form.RadioButton('1', '1');
-       var rb2 = new form.RadioButton('2', '2');
-    rb2.setChecked(true);
-       var rb3 = new form.RadioButton('3', '3');
-       var rb4 = new form.RadioButton('4', '4');
-       
-       var fieldHeaders = new qx.manager.selection.RadioManager('headers', [ rb1, rb2, rb3, rb4 ]);
-       fieldHeaders.addEventListener("changeSelected", function(e) {
-               var headers = [], count = Number(e.getData().getValue());
-               for (var i = 0; i < count; i++) {
-                       headers.push(allHeaders[i]);
-               }
-               combo.setColumnHeaders(headers);
-    });
-    
-    var butChangeHeaders = new form.Button('Add * to headers');
-    // This tests changing the headers, but not the number of columns
-    butChangeHeaders.addEventListener('execute', function() {
-               var headers = combo.getColumnHeaders();
-               for (var i = 0; i < headers.length; i++) {
-                       headers[i] += '*';
-               }
-               combo.setColumnHeaders(headers);
-    });
-    
-       var boxHeaders2 = new Box;
-       with (boxHeaders2) {
-               setSpacing(10);
-               add(new Label('# of headers'), rb1, rb2, rb3, rb4, butChangeHeaders);
-       }
-       var boxHeaders = new GroupBox('Test headers');
-       boxHeaders.add(boxHeaders2);
-       
-       var fieldMaxRows = new form.Spinner(2, combo.getMaxVisibleRows(), 20);
-       fieldMaxRows._manager.addEventListener('changeValue', function() {
-               combo.setMaxVisibleRows(fieldMaxRows.getValue());
-       });
-       var boxMaxRows = new GroupBox('Max. number of visible rows');
-       boxMaxRows.add(fieldMaxRows);
-       
-       var boxRow3 = new Box;
-       boxRow3.add(boxHeaders, boxMaxRows);
-       
-       //###Test of showOnTextField
-       var rbDesc = new form.RadioButton('Description', 'description');
-       rbDesc.setChecked(true);
-       var rbIdAndDesc = new form.RadioButton('ID and description', 'idAndDescription');
-       var fieldShowOn = new qx.manager.selection.RadioManager("showOnTextField", [ rbDesc, rbIdAndDesc ]);
-       fieldShowOn.addEventListener("changeSelected", function(e) {
-               combo.setShowOnTextField(e.getData().getValue());
-    });
-       
-       var fieldSeparator = new form.TextField;
-       fieldSeparator.setValue(combo.getIdDescriptionSeparator());
-       fieldSeparator.setWidth(50);
-       fieldSeparator.addEventListener('changeValue', function() {
-               combo.setIdDescriptionSeparator(fieldSeparator.getValue());
-       });
-       var boxShowOn2 = new Box;
-       with (boxShowOn2) {
-               setSpacing(10);
-               add(new Label('Show on text field:'), rbDesc, rbIdAndDesc, new Label('Separator between ID and description:'), fieldSeparator);
-       }
-       var boxShowOn = new GroupBox('Test showOnTextField property');
-       boxShowOn.add(boxShowOn2);
-       
-       //###Test of get/setValue
-       var fieldValue = new form.TextField;
-       var butSetValue = new form.Button('Set');
-       butSetValue.addEventListener('execute', function() {
-               combo.setValue(fieldValue.getValue());
-       });
-       var butGetValue = new form.Button('Get');
-       butGetValue.addEventListener('execute', function() {
-               fieldValue.setValue(combo.getValue());
-       });
-       var boxVal2 = new Box;
-       with (boxVal2) {
-               setSpacing(10);
-               add(fieldValue, butSetValue, butGetValue);
-       }
-       var boxVal = new GroupBox('Test value property');
-       boxVal.add(boxVal2);
-       
-       //###Main box
-       var vbox = new Box('vertical');
-       with (vbox) {
-               setSpacing(10);
-               setTop(50);
-               setLeft(30);
-               add(boxCombo, boxProp, boxRow3, boxShowOn, boxVal);
-               addToDocument();
-       }
-       combo.focus();
-});
-  </script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-  <script type="text/javascript">
-if (console.debug) {
-       with (qx.log.Logger.ROOT_LOGGER) {
-               removeAllAppenders();
-               addAppender(new qx.log.FireBugAppender);
-               setMinLevel(qx.log.Logger.LEVEL_WARN);
-       }
-}
-  </script>
-  <div id="demoDescription">
-    <p>ComboBoxEx is an enhanced version of ComboBox</p>
-  </div>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ComboBox_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ComboBox_1.html
deleted file mode 100644 (file)
index bf3f297..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing ComboBox implementation.</p>
-    <p>The elements of the popup will be created on the first open of the qx.ui.form.ComboBox.</p>
-  </div>
-
-  <select style="position:absolute; left:300px; top:48px; width: 120px;">
-    <option>Item No 1</option>
-    <option>Item No 2</option>
-    <option>Item No 3</option>
-    <option>Item No 4</option>
-    <option>Item No 5</option>
-    <option>Item No 6</option>
-    <option>Item No 7</option>
-    <option>Item No 8</option>
-    <option>Item No 9</option>
-    <option disabled="true">Item No 10</option>
-    <option>Item No 11</option>
-    <option>Item No 12</option>
-    <option>Item No 13</option>
-    <option>Item No 14</option>
-    <option>Item No 15</option>
-    <option>Item No 16</option>
-    <option>Item No 17</option>
-    <option>Item No 18</option>
-    <option>Item No 19</option>
-    <option disabled="true">Item No 20</option>
-    <option>Item No 21</option>
-    <option>Item No 22</option>
-    <option>Item No 23</option>
-    <option>Item No 24</option>
-    <option>Item No 23</option>
-    <option>Item No 24</option>
-    <option>Item No 25</option>
-    <option>Item No 26</option>
-    <option>Item No 27</option>
-    <option>Item No 28</option>
-    <option>Item No 29</option>
-    <option disabled="true">Item No 30</option>
-  </select>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-
-      var c1 = new qx.ui.form.ComboBox;
-      c1.set({ top: 48, left: 20 });
-
-
-
-      var item;
-
-      for(var i=1; i<=30; i++)
-      {
-        item = new qx.ui.form.ListItem("Item No " + i);
-        !(i % 10) && (item.setEnabled(false));
-        c1.add(item);
-      };
-
-
-      c1.setSelected(c1.getList().getFirstChild());
-
-      c1.addEventListener("changeValue", function(e) {
-        this.debug("New value: " + e.getData());
-      });
-
-      c1.addEventListener("changeSelected", function(e) {
-        this.debug("New selected: " + e.getData());
-      });
-
-
-
-
-      var b1 = new qx.ui.form.CheckBox("Editable");
-
-      b1.set({ top: 50, left: 150 });
-
-      b1.addEventListener("changeChecked", function(e) {
-        c1.setEditable(e.getData());
-      });
-
-
-
-      d.add(c1, b1);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Command_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Command_1.html
deleted file mode 100644 (file)
index 14472f3..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>An example showing global shortcut commands in action. The commands are linked with menu-items, but 
-    could also be executed with the corresponding shortcut.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-    
-    /* comamnds */
-    var undo_cmd         = new qx.client.Command("Ctrl+Z");
-    undo_cmd.addEventListener("execute", function(){ this.debug("undo Command executed"); }, this);
-    
-    var redo_cmd         = new qx.client.Command("Ctrl+Y");
-    redo_cmd.addEventListener("execute", function(){ this.debug("redo Command executed"); }, this);
-
-    var cut_cmd          = new qx.client.Command("Ctrl+X");
-    cut_cmd.addEventListener("execute", function(){ this.debug("cut Command executed"); }, this);
-    
-    var copy_cmd         = new qx.client.Command("Ctrl+C");
-    copy_cmd.addEventListener("execute", function(){ this.debug("copy Command executed"); }, this);
-    
-    var paste_cmd        = new qx.client.Command("Ctrl+V");
-    paste_cmd.addEventListener("execute", function(){ this.debug("paste Command executed"); }, this);
-    
-    var delete_cmd       = new qx.client.Command("Del");
-    delete_cmd.addEventListener("execute", function(){ this.debug("delete Command executed"); }, this);
-    
-    var select_all_cmd   = new qx.client.Command("Ctrl+A");
-    select_all_cmd.addEventListener("execute", function(){ this.debug("select all Command executed"); }, this);
-    
-    var search_cmd       = new qx.client.Command("Ctrl+F");
-    search_cmd.addEventListener("execute", function(){ this.debug("search Command executed"); }, this);
-    
-    var search_again_cmd = new qx.client.Command("F3");
-    search_again_cmd.addEventListener("execute", function(){ this.debug("search again Command executed"); }, this);
-    
-    /* building the menu */
-    var m2 = new qx.ui.menu.Menu;
-
-    var mb2_01 = new qx.ui.menu.Button("New Window");
-    var mb2_02 = new qx.ui.menu.Button("Overlapping");
-    var mb2_03 = new qx.ui.menu.Button("Split Vertical");
-    var mb2_04 = new qx.ui.menu.Button("Split Horizontal");
-    var mb2_05 = new qx.ui.menu.Button("Next Window");
-    var mb2_06 = new qx.ui.menu.Button("Previous Window");
-
-    m2.add(mb2_01, mb2_02, mb2_03, mb2_04, mb2_05, mb2_06);
-
-
-    var m3 = new qx.ui.menu.Menu;
-
-    var mb3_01 = new qx.ui.menu.Button("Tahoma, 11pt");
-    var mb3_02 = new qx.ui.menu.Button("Tahoma, 12pt");
-    var mb3_03 = new qx.ui.menu.Button("Tahoma, 13pt");
-    var mb3_04 = new qx.ui.menu.Button("Tahoma, 14pt");
-    var mb3_05 = new qx.ui.menu.Button("Tahoma, 15pt");
-
-    m3.add(mb3_01, mb3_02, mb3_03, mb3_04, mb3_05);
-
-
-    var m1 = new qx.ui.menu.Menu;
-
-    var mb1_01 = new qx.ui.menu.Button("View/Lists");
-    var mb1_02 = new qx.ui.menu.Button("Syntax Highlighting");
-    var ms1    = new qx.ui.menu.Separator();
-    var mb1_03 = new qx.ui.menu.Button("Window Font");
-    var mb1_04 = new qx.ui.menu.Button("Printer Font", null, null, m3);
-    var ms2    = new qx.ui.menu.Separator();
-    var mb1_05 = new qx.ui.menu.Button("Undo", null, undo_cmd);
-    var mb1_06 = new qx.ui.menu.Button("Redo", null, redo_cmd);
-    var ms3    = new qx.ui.menu.Separator();
-    var mb1_07 = new qx.ui.menu.Button("Cut", "icon/16/actions/edit-cut.png", cut_cmd);
-    var mb1_08 = new qx.ui.menu.Button("Copy", "icon/16/actions/edit-copy.png", copy_cmd);
-    var mb1_09 = new qx.ui.menu.Button("Paste", "icon/16/actions/edit-paste.png", paste_cmd);
-    var mb1_10 = new qx.ui.menu.Button("Delete", "icon/16/actions/edit-delete.png", delete_cmd);
-    var mb1_11 = new qx.ui.menu.Button("Select All", null, select_all_cmd);
-    var ms4    = new qx.ui.menu.Separator();
-    var mb1_12 = new qx.ui.menu.Button("Search", null, search_cmd);
-    var mb1_13 = new qx.ui.menu.Button("Search Again", null, search_again_cmd);
-    var ms5    = new qx.ui.menu.Separator();
-    var mb1_14 = new qx.ui.menu.Button("View", null, null, m2);
-    var mb1_15 = new qx.ui.menu.Button("Editor Settings...");
-    var mb1_16 = new qx.ui.menu.Button("Editor Plugins");
-    var mb1_17 = new qx.ui.menu.Button("Framework Settings");
-
-    m1.add(mb1_01, mb1_02, ms1, mb1_03, mb1_04, ms2, mb1_05, mb1_06, ms3, mb1_07, mb1_08, mb1_09, mb1_10, mb1_11, ms4, mb1_12, mb1_13, ms5, mb1_14, mb1_15, mb1_16, mb1_17);
-
-
-    d.add(m1, m2, m3);
-
-
-    var w1 = new qx.ui.form.Button("Open");
-
-    w1.setTop(48);
-    w1.setLeft(20);
-
-    w1.addEventListener("click", function(e)
-    {
-      if (m1.isSeeable())
-      {
-        m1.hide();
-      }
-      else
-      {
-        var el = this.getElement();
-
-        m1.setLeft(qx.html.Location.getPageBoxLeft(el));
-        m1.setTop(qx.html.Location.getPageBoxBottom(el));
-
-        m1.show();
-      };
-
-      e.setPropagationStopped(true);
-    });
-
-    w1.addEventListener("mousedown", function(e)
-    {
-      e.setPropagationStopped(true);
-    });
-
-
-    d.add(w1);    
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Command_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Command_2.html
deleted file mode 100644 (file)
index 2fdeb1c..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>An example showing global shortcut commands in action. The commands are linked with menu-items, but 
-    could also be executed with the corresponding shortcut.</p>
-    <p>An objectmanager is used to disable/enable a specific command (del-Key) to make available for text-editing
-    in the textfield of the window. When the window is closed the command gets re-enabled.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-    
-    /* comamnds */
-    var undo_cmd         = new qx.client.Command("Ctrl+Z");
-    undo_cmd.addEventListener("execute", function(){ this.debug("undo Command executed"); }, this);
-    
-    var redo_cmd         = new qx.client.Command("Ctrl+Y");
-    redo_cmd.addEventListener("execute", function(){ this.debug("redo Command executed"); }, this);
-
-    var cut_cmd          = new qx.client.Command("Ctrl+X");
-    cut_cmd.addEventListener("execute", function(){ this.debug("cut Command executed"); }, this);
-    
-    var copy_cmd         = new qx.client.Command("Ctrl+C");
-    copy_cmd.addEventListener("execute", function(){ this.debug("copy Command executed"); }, this);
-    
-    var paste_cmd        = new qx.client.Command("Ctrl+V");
-    paste_cmd.addEventListener("execute", function(){ this.debug("paste Command executed"); }, this);
-    
-    var delete_cmd       = new qx.client.Command("Del");
-    delete_cmd.addEventListener("execute", function(){ this.debug("delete Command executed"); }, this);
-    
-    var select_all_cmd   = new qx.client.Command("Ctrl+A");
-    select_all_cmd.addEventListener("execute", function(){ this.debug("select all Command executed"); }, this);
-    
-    var search_cmd       = new qx.client.Command("Ctrl+F");
-    search_cmd.addEventListener("execute", function(){ this.debug("search Command executed"); }, this);
-    
-    var search_again_cmd = new qx.client.Command("F3");
-    search_again_cmd.addEventListener("execute", function(){ this.debug("search again Command executed"); }, this);
-    
-
-    /* objectmanager for all commands which should be disabled when opening the window */
-    var cmd_manager = new qx.manager.object.ObjectManager;
-    cmd_manager.add(delete_cmd);
-    
-    
-    /* building the menu */
-    var m2 = new qx.ui.menu.Menu;
-
-    var mb2_01 = new qx.ui.menu.Button("New Window");
-    var mb2_02 = new qx.ui.menu.Button("Overlapping");
-    var mb2_03 = new qx.ui.menu.Button("Split Vertical");
-    var mb2_04 = new qx.ui.menu.Button("Split Horizontal");
-    var mb2_05 = new qx.ui.menu.Button("Next Window");
-    var mb2_06 = new qx.ui.menu.Button("Previous Window");
-
-    m2.add(mb2_01, mb2_02, mb2_03, mb2_04, mb2_05, mb2_06);
-
-
-    var m3 = new qx.ui.menu.Menu;
-
-    var mb3_01 = new qx.ui.menu.Button("Tahoma, 11pt");
-    var mb3_02 = new qx.ui.menu.Button("Tahoma, 12pt");
-    var mb3_03 = new qx.ui.menu.Button("Tahoma, 13pt");
-    var mb3_04 = new qx.ui.menu.Button("Tahoma, 14pt");
-    var mb3_05 = new qx.ui.menu.Button("Tahoma, 15pt");
-
-    m3.add(mb3_01, mb3_02, mb3_03, mb3_04, mb3_05);
-
-
-    var m1 = new qx.ui.menu.Menu;
-
-    var mb1_01 = new qx.ui.menu.Button("View/Lists");
-    var mb1_02 = new qx.ui.menu.Button("Syntax Highlighting");
-    var ms1    = new qx.ui.menu.Separator();
-    var mb1_03 = new qx.ui.menu.Button("Window Font");
-    var mb1_04 = new qx.ui.menu.Button("Printer Font", null, null, m3);
-    var ms2    = new qx.ui.menu.Separator();
-    var mb1_05 = new qx.ui.menu.Button("Undo", null, undo_cmd);
-    var mb1_06 = new qx.ui.menu.Button("Redo", null, redo_cmd);
-    var ms3    = new qx.ui.menu.Separator();
-    var mb1_07 = new qx.ui.menu.Button("Cut", "icon/16/actions/edit-cut.png", cut_cmd);
-    var mb1_08 = new qx.ui.menu.Button("Copy", "icon/16/actions/edit-copy.png", copy_cmd);
-    var mb1_09 = new qx.ui.menu.Button("Paste", "icon/16/actions/edit-paste.png", paste_cmd);
-    var mb1_10 = new qx.ui.menu.Button("Delete", "icon/16/actions/edit-delete.png", delete_cmd);
-    var mb1_11 = new qx.ui.menu.Button("Select All", null, select_all_cmd);
-    var ms4    = new qx.ui.menu.Separator();
-    var mb1_12 = new qx.ui.menu.Button("Search", null, search_cmd);
-    var mb1_13 = new qx.ui.menu.Button("Search Again", null, search_again_cmd);
-    var ms5    = new qx.ui.menu.Separator();
-    var mb1_14 = new qx.ui.menu.Button("View", null, null, m2);
-    var mb1_15 = new qx.ui.menu.Button("Editor Settings...");
-    var mb1_16 = new qx.ui.menu.Button("Editor Plugins");
-    var mb1_17 = new qx.ui.menu.Button("Framework Settings");
-
-    m1.add(mb1_01, mb1_02, ms1, mb1_03, mb1_04, ms2, mb1_05, mb1_06, ms3, mb1_07, mb1_08, mb1_09, mb1_10, mb1_11, ms4, mb1_12, mb1_13, ms5, mb1_14, mb1_15, mb1_16, mb1_17);
-
-
-    d.add(m1, m2, m3);
-
-
-    /* button to open menu */
-    var w1 = new qx.ui.form.Button("Open");
-
-    w1.setTop(48);
-    w1.setLeft(20);
-
-    w1.addEventListener("click", function(e)
-    {
-      if (m1.isSeeable())
-      {
-        m1.hide();
-      }
-      else
-      {
-        var el = this.getElement();
-
-        m1.setLeft(qx.html.Location.getPageBoxLeft(el));
-        m1.setTop(qx.html.Location.getPageBoxBottom(el));
-
-        m1.show();
-      };
-
-      e.setPropagationStopped(true);
-    });
-
-    w1.addEventListener("mousedown", function(e)
-    {
-      e.setPropagationStopped(true);
-    });
-    
-    
-    /* window */
-    var window1 = new qx.ui.window.Window("Test");
-    window1.set({ top: 100, left: 100, width: 300, height: 200, allowMaximize: false, allowMinimize: false });
-    
-    window1.addEventListener("beforeAppear", function(e){
-      textField.setValue("");
-    });
-    
-    window1.addEventListener("beforeDisappear", function(e){
-      cmd_manager.enableAll();
-    });
-    
-    /* label */
-    var label1 = new qx.ui.basic.Label("Please enter your Name");
-    label1.setTop(20);
-    label1.setLeft(8);
-    
-    /* textfield */
-    var textField = new qx.ui.form.TextField;
-    textField.setTop(20);
-    textField.setLeft(140);
-    
-    window1.add(label1, textField);
-    
-    
-    /* button to open window */
-    var w2 = new qx.ui.form.Button("Open Window");
-    w2.setTop(48);
-    w2.setLeft(100);
-    
-    w2.addEventListener("execute", function(e){
-      cmd_manager.disableAll();
-      window1.open();
-    });
-    
-
-    d.add(w1, window1, w2);    
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/DateChooser_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/DateChooser_1.html
deleted file mode 100644 (file)
index ffa537e..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>The DateChooser shows calendar and allows choosing a date.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var chooser = new qx.ui.component.DateChooser;
-    chooser.setLocation(10, 50);
-    chooser.setWidth("auto");
-    chooser.setHeight("auto");
-    d.add(chooser);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Drag_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Drag_1.html
deleted file mode 100644 (file)
index 415bfb7..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Show one way to drag a widget around the screen.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-    
-    var a1 = new qx.ui.basic.Atom("Drag Me");
-    a1.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove });
-    a1.setPadding(10);
-    a1.setLocation(20, 48); 
-    d.add(a1);
-
-    
-    a1.addEventListener("mousedown", handleMouseDown);
-    a1.addEventListener("mousemove", handleMouseMove);
-    a1.addEventListener("mouseup", handleMouseUp);
-    
-    function handleMouseDown(e)
-    {
-      this.setCapture(true);
-      a1._offsetX = e.getPageX() - a1.getLeft();
-      a1._offsetY = e.getPageY() - a1.getTop();
-    }
-    
-    function handleMouseMove(e)
-    {
-      if (this.getCapture())
-      {
-        a1.setLeft(e.getPageX() - a1._offsetX);
-        a1.setTop(e.getPageY() - a1._offsetY);
-      }
-    }
-          
-    function handleMouseUp(e)
-    {
-      this.setCapture(false);
-    }
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Fields_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Fields_1.html
deleted file mode 100644 (file)
index fe002cc..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Some tests for some of the most used properties of qx.ui.core.Widget (coordinates, dimensions, backgroundColor, opacity, ...).</p>
-    <p>Also here are the first test of some widgets which extend qx.ui.core.Widget: qx.ui.form.TextField and qx.ui.form.PasswordField. These extended
-    widgets also interacts like the basic QxWidgets with the qx.event.handler.FocusHandler.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    function textChange(e) {
-      this.debug("Text changed: " + e.getData());
-    }
-
-    var t1 = new qx.ui.form.TextField;
-    t1.setValue("textfield");
-    t1.setTop(48);
-    t1.setLeft(20);
-
-    t1.addEventListener("changeValue", textChange);
-    t1.addEventListener("input", function(e) {
-      this.debug("Input: " + e.getData());
-    });
-
-    d.add(t1);
-
-
-
-
-    var t2 = new qx.ui.form.PasswordField;
-    t2.setValue("passwordfield");
-    t2.setTop(80);
-    t2.setLeft(20);
-
-    t2.addEventListener("changeValue", textChange);
-
-    d.add(t2);
-
-
-    var t3 = new qx.ui.form.TextArea;
-    t3.setValue("textarea");
-    t3.setTop(110);
-    t3.setLeft(20);
-    t3.setWidth(300);
-    t3.setHeight(60);
-
-    t3.addEventListener("changeValue", textChange);
-
-    d.add(t3);
-
-
-    var t4 = new qx.ui.form.TextField;
-    t4.setValue("textfield");
-    t4.setTop(200);
-    t4.setLeft(20);
-    t4.setWidth(200);
-    t4.setMaxLength(100);
-    t4.setReadOnly(true);
-
-    t4.addEventListener("changeValue", textChange);
-
-    d.add(t4);
-
-
-    var t5 = new qx.ui.form.TextField;
-    t5.setValue("You are foo!");
-    t5.setTop(240);
-    t5.setLeft(20);
-
-    t5.addEventListener("changeValue", textChange);
-
-    d.add(t5);
-
-
-
-    var t6 = new qx.ui.form.TextField;
-    t6.setTop(270);
-    t6.setLeft(20);
-
-    t6.addEventListener("changeText", textChange);
-    t6.addEventListener("input", function(e) {
-      this.debug("Input: " + e.getData());
-    });
-
-    t6.addEventListener("keydown", function(e) {
-      this.debug("Keypress: " + e.getKeyIdentifier());
-    });
-
-    d.add(t6);
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Flash_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Flash_1.html
deleted file mode 100644 (file)
index 12cb67f..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Simple test for qx.ui.embed.Flash.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    // Try no version required
-    var fo1 = new qx.ui.embed.Flash("./image/flash/fo_tester.swf");
-
-    // Try version 7 required
-    // var fo1 = new qx.ui.embed.Flash("image/flash/fo_tester.swf", "7");
-
-    // Try version 9 required
-    // var fo1 = new qx.ui.embed.Flash("image/flash/fo_tester.swf", "9");
-
-    // Error handling methods:
-    // #1: Enable Express Install: Available in Flash Players >= 6.0.65
-    // fo1.setEnableExpressInstall(true);
-    // #2: Enable Redirect URL: Jump to an installer page
-    // fo1.setRedirectUrl("http://www.google.de");
-
-    fo1.setVariable("flashVarText", "this is passed in via FlashVars");
-    fo1.setScale("noscale");
-
-    fo1.setLeft(20);
-    fo1.setRight(335);
-    fo1.setTop(48);
-    fo1.setBottom(48);
-
-    fo1.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-    fo1.setBackgroundColor("#FF6600");
-
-    d.add(fo1);
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Fsm_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Fsm_1.html
deleted file mode 100644 (file)
index 40de61e..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>
-    Simple test of a finite state machine.  This is a sufficiently simple
-    application that using a finite state machine really doesn't make sense,
-    but it is illustrative of how to use it.  This FSM has two states.
-    </p>
-  </div>
-
-  <script type="text/javascript" src="Fsm_1/main.js"></script>
-  <script type="text/javascript" src="Fsm_1/fsm.js"></script>
-  <script type="text/javascript" src="Fsm_1/gui.js"></script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Fsm_1/fsm.js b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Fsm_1/fsm.js
deleted file mode 100644 (file)
index 50cdc25..0000000
+++ /dev/null
@@ -1,297 +0,0 @@
-/*
- * Initialize the finite state machine.
- *
- * This finite state machine has two states: Idle and AwaitRpcResult.
- *
- * In the Idle state, the Send button is enabled, the Abort button is
- * disabled, and the three color bars are blue.  In the AwaitRpcResult state,
- * the Send button is disabled, the Abort button is enabled, and three color
- * bars are red.  All of these changes occur via automatic, table-driven
- * function calls in autoActionsXXX() objects, not via explicit code.  This
- * demonstrates how groups of objects can all be manipulated together without
- * having to write lots of code to do so.  Just as these color blocks change
- * color, numerous widgets could be disabled/hidden/etc., without writing code
- * to futz with all of them.
- */
-function initFsm()
-{
-  // Create a new finite state machine
-  var fsm = new qx.util.fsm.FiniteStateMachine("Fsm_1");
-
-  // For this simple example application, show all debug messages.
-  qx.Settings.setCustomOfClass(
-    "qx.util.fsm.FiniteStateMachine",
-    "debugFlags",
-    (qx.util.fsm.FiniteStateMachine.DebugFlags.EVENTS |
-     qx.util.fsm.FiniteStateMachine.DebugFlags.TRANSITIONS |
-     qx.util.fsm.FiniteStateMachine.DebugFlags.FUNCTION_DETAIL |
-     qx.util.fsm.FiniteStateMachine.DebugFlags.OBJECT_NOT_FOUND));
-
-  /*
-   * State: Idle
-   *
-   * Actions upon entry:
-   *  button_send.setEnabled(true);
-   *  button_abort.setEnabled(false);
-   *  change background of objects in group "group_color_change" to blue
-   *
-   * Transition on:
-   *  "execute" on button_send
-   */
-  var state = new qx.util.fsm.State(
-    "State_Idle",
-    {
-      "autoActionsBeforeOnentry" :
-      {
-        // The name of a function.
-        "setEnabled" :
-        [
-          {
-            // We want to enable the 'send' button
-            "parameters" : [ true ],
-
-            // Call this.getObject("button_send").setEnabled(true)
-            "objects"    : [ "button_send" ]
-          },
-
-          {
-            // We want to disable the 'abort' button
-            "parameters" : [ false ],
-
-            // Call this.getObject("button_abort").setEnabled(false)
-            "objects"    : [ "button_abort" ]
-          }
-        ],
-
-        // The name of a function.
-        "setBackgroundColor" :
-        [
-          {
-            // We want to change the atoms' background color to blue
-            "parameters" :
-              [
-               // We want the color oject created when needed, not "now"
-               // Providing a function as a parameter allows the value to be
-               // determined later.
-               function (fsm) { return new qx.renderer.color.Color("blue"); }
-              ],
-
-            // Call this.getObject(<object>).seBackgroundcolor("blue") on
-            // state entry, for each <object> in the group called
-            // "group_color_change".
-            "groups"      : [ "group_color_change" ]
-          }
-        ]
-      },
-
-      "events" :
-        {
-          // If the send button is pressed, go to new state state where we
-          // will await the RPC result
-          "execute"  :
-          {
-            "button_send" :
-              "Transition_Idle_to_AwaitRpcResult_via_button_send"
-          }
-        }
-    });
-  fsm.addState(state);
-
-  /*
-   * Transition: Idle to AwaitRpcResult
-   *
-   * Cause: "execute" on button_send
-   *
-   * Action:
-   *  Issue RPC request with coalesced failure events
-   */
-  var trans = new qx.util.fsm.Transition(
-    "Transition_Idle_to_AwaitRpcResult_via_button_send",
-    {
-      "nextState" :
-        "State_AwaitRpcResult",
-
-      "ontransition" :
-        function(fsm, event)
-        {
-          var rpc = fsm.getObject("rpc");
-
-          rpc.setUrl(fsm.getObject("text_url").getValue());
-          rpc.setServiceName(fsm.getObject("text_service").getValue());
-
-          var request =
-            rpc.callAsyncListeners(true, // coalesce failure events
-                                   fsm.getObject("text_method").getValue(),
-                                   fsm.getObject("text_message").getValue());
-          fsm.addObject("request", request);
-        }
-    });
-  state.addTransition(trans);
-
-
-  /*
-   * State: AwaitRpcResult
-   *
-   * Actions upon entry:
-   *  button_send.setEnabled(false);
-   *  button_abort.setEnabled(true);
-   *  change background of objects in group "group_color_change" to red
-   *
-   * Transition on:
-   *  "completed" (on RPC)
-   *  "failed" (on RPC)
-   *  "execute on button_abort
-   */
-  var state = new qx.util.fsm.State(
-    "State_AwaitRpcResult",
-    {
-      "autoActionsBeforeOnentry" :
-      {
-        // The name of a function.
-        "setEnabled" :
-        [
-          {
-            // We want to disable the 'send' button
-            "parameters" : [ false ],
-              
-            // Call this.getObject("send").setEnabled(false)
-            "objects"    : [ "button_send" ]
-          },
-
-          {
-            // We want to enable the 'abort' button
-            "parameters" : [ true ],
-
-            // Call this.getObject("abort").setEnabled(true)
-            "objects" : [ "button_abort" ]
-          }
-        ],
-
-        // The name of a function.
-        "setBackgroundColor" :
-        [
-          {
-            // We want to change the atoms' background color to red
-            "parameters" :
-               [
-                 // We want the color oject created when needed, not "now"
-                 // Providing a function as a parameter allows the value to be
-                 // determined later.
-                 function (fsm) { return new qx.renderer.color.Color("red"); }
-               ],
-
-            // Call this.getObject(<object>).seBackgroundcolor("red"), for
-            // each <object> in the group called "group_color_change".
-            "groups" : [ "group_color_change" ]
-          }
-        ]
-      },
-
-      "events" :
-      {
-        "execute"  :
-        {
-          "button_abort" :
-            "Transition_AwaitRpcResult_to_AwaitRpcResult_via_button_abort"
-        },
-
-        "completed" :
-          "Transition_AwaitRpcResult_to_Idle_via_complete",
-
-        "failed" :
-          "Transition_AwaitRpcResult_to_Idle_via_failed"
-      },
-
-      "onentry" :
-        function(fsm, state)
-        {
-          var message = fsm.getObject("text_result");
-          message.setValue("");
-        }
-
-    });
-  fsm.addState(state);
-
-  /*
-   * Transition: AwaitRpcResult to AwaitRpcResult
-   *
-   * Cause: "execute" on button_abort
-   */
-  var trans = new qx.util.fsm.Transition(
-    "Transition_AwaitRpcResult_to_AwaitRpcResult_via_button_abort",
-    {
-      "nextState" :
-        "State_AwaitRpcResult",
-
-      "ontransition" :
-        function(fsm, event)
-        {
-          // Get the request object
-          var request = fsm.getObject("request");
-
-          // Issue an abort for the pending request
-          request.abort();
-          
-          var message = fsm.getObject("text_result");
-          message.setValue("Abort requested...");
-        }
-    });
-  state.addTransition(trans);
-
-  /*
-   * Transition: AwaitRpcResult to Idle
-   *
-   * Cause: "complete" (on RPC)
-   */
-  var trans = new qx.util.fsm.Transition(
-    "Transition_AwaitRpcResult_to_Idle_via_complete",
-    {
-      "nextState" :
-        "State_Idle",
-
-      "ontransition" :
-        function(fsm, event)
-        {
-          var message = fsm.getObject("text_result");
-          message.setValue("Got result: " + event.getData());
-
-          // The request has completed, so remove the object reference
-          fsm.removeObject("request");
-        }
-    });
-  state.addTransition(trans);
-
-  /*
-   * Transition: AwaitRpcResult to Idle
-   *
-   * Cause: "failed" (on RPC)
-   */
-  var trans = new qx.util.fsm.Transition(
-    "Transition_AwaitRpcResult_to_Idle_via_failed",
-    {
-      "nextState" :
-        "State_Idle",
-
-      "ontransition" :
-        function(fsm, event)
-        {
-          var message = fsm.getObject("text_result");
-          message.setValue("Got failure: " + event.getData());
-
-          // The request has completed, so remove the object reference
-          fsm.removeObject("request");
-        }
-    });
-  state.addTransition(trans);
-
-  // Allocate an RPC object
-  o = new qx.io.remote.Rpc();
-  o.setTimeout(10000);
-  o.addEventListener("completed", fsm.eventListener, fsm);
-  o.addEventListener("failed", fsm.eventListener, fsm);
-  o.addEventListener("timeout", fsm.eventListener, fsm);
-  o.addEventListener("aborted", fsm.eventListener, fsm);
-  fsm.addObject("rpc", o);
-
-  return fsm;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Fsm_1/gui.js b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Fsm_1/gui.js
deleted file mode 100644 (file)
index 0ba443a..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-function initGui(fsm)
-{
-  var o;
-  var d = qx.ui.core.ClientDocument.getInstance();
-
-  var vLayout = new qx.ui.layout.VerticalBoxLayout();
-  vLayout.setTop(40);
-  vLayout.setLeft(20);
-  vLayout.setSpacing(4);
-
-  vLayout.add(new qx.ui.basic.Label("URL:"));
-  var defaultURL = qx.io.remote.Rpc.makeServerURL();
-  if (defaultURL == null)
-  {
-    defaultURL = "/services/";
-  }
-  o = new qx.ui.form.TextField(defaultURL);
-  vLayout.add(o);
-  fsm.addObject("text_url", o);
-
-  vLayout.add(new qx.ui.basic.Label("Service:"));
-  o = new qx.ui.form.TextField("qooxdoo.test");
-  vLayout.add(o);
-  fsm.addObject("text_service", o);
-
-  vLayout.add(new qx.ui.basic.Label("Method:"));
-  o = new qx.ui.form.TextField("sleep");
-  vLayout.add(o);
-  fsm.addObject("text_method", o);
-
-  var hLayout = new qx.ui.layout.HorizontalBoxLayout();
-  hLayout.setHeight("auto");
-  hLayout.setVerticalChildrenAlign("middle");
-  hLayout.setSpacing(4);
-
-  o = new qx.ui.form.TextField("2");
-  o.setWidth(200);
-  hLayout.add(o);
-  fsm.addObject("text_message", o);
-
-  o = new qx.ui.form.Button("Send to server");
-  o.addEventListener("execute", fsm.eventListener, fsm);
-  hLayout.add(o);
-  fsm.addObject("button_send", o);
-
-  o = new qx.ui.form.Button("Abort");
-  o.setEnabled(false);
-  o.addEventListener("execute", fsm.eventListener, fsm);
-  hLayout.add(o);
-  fsm.addObject("button_abort", o);
-
-  vLayout.add(hLayout);
-
-  vLayout.add(new qx.ui.basic.Label("Result:"));
-  o = new qx.ui.form.TextField("");
-  o.setWidth(600);
-  vLayout.add(o);
-  fsm.addObject("text_result", o);
-
-  var hLayout = new qx.ui.layout.HorizontalBoxLayout();
-  hLayout.setHeight("auto");
-  hLayout.setVerticalChildrenAlign("middle");
-  hLayout.setSpacing(4);
-
-  var o = new qx.ui.basic.Atom("Idle=blue, RPC=red");
-  o.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-  o.setColor(new qx.renderer.color.Color("white"));
-  o.setWidth(200);
-  o.setHeight(30);
-  o.setPadding(4);
-  hLayout.add(o);
-  fsm.addObject("atom_1", o, "group_color_change");
-
-  var o = new qx.ui.basic.Atom("Idle=blue, RPC=red");
-  o.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-  o.setColor(new qx.renderer.color.Color("white"));
-  o.setWidth(200);
-  o.setHeight(30);
-  o.setPadding(4);
-  hLayout.add(o);
-  fsm.addObject("atom_2", o, "group_color_change");
-
-  var o = new qx.ui.basic.Atom("Idle=blue, RPC=red");
-  o.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-  o.setColor(new qx.renderer.color.Color("white"));
-  o.setWidth(200);
-  o.setHeight(30);
-  o.setPadding(4);
-  hLayout.add(o);
-  fsm.addObject("atom_3", o, "group_color_change");
-
-  vLayout.add(hLayout);
-
-  d.add(vLayout);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Fsm_1/main.js b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Fsm_1/main.js
deleted file mode 100644 (file)
index 56a53ac..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-qx.core.Init.getInstance().defineMain(function()
-{
-  // Initialize the finite state machine
-  fsm = initFsm();
-
-  // Initialize the GUI
-  initGui(fsm);
-
-  // Start the finite state machine
-  fsm.start();
-});
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/GalleryList_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/GalleryList_1.html
deleted file mode 100644 (file)
index 1122ffb..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-
-  <style type="text/css">
-.qx_ui_embed_GalleryList{
-  position: absolute;
-  visibility: visible;
-}
-
-.qx_ui_embed_GalleryList .galleryFrame{
-  padding: 2px;
-}
-
-.qx_ui_embed_GalleryList .galleryCell{
-  margin: 2px;
-  padding-bottom: 2px;
-  border: 1px solid #EEE;
-
-  background: #fff;
-  overflow: hidden;
-  white-space: normal;
-
-  font-family: Tahoma, Verdana, sans-serif;
-  font-size: 12px;
-
-  cursor: default;
-
-  -moz-user-select: none;
-  user-select: none;
-
-  position: relative;
-}
-
-.qx_ui_embed_GalleryList .galleryCell img{
-  vertical-align: bottom;
-  display: block;
-}
-
-.qx_ui_embed_GalleryList .galleryNumber{
-  width: 45px;
-  padding: 4px;
-
-  position: absolute;
-  top: 0px;
-  left: 0px;
-}
-
-.qx_ui_embed_GalleryList .galleryImageContainer{
-  position: absolute;
-  top: 0px;
-  left: 50px;
-}
-
-.qx_ui_embed_GalleryList .galleryText{
-  padding: 4px;
-  position: absolute;
-  top: 0px;
-  left: 130px;
-}
-
-.qx_ui_embed_GalleryList .galleryNumber,
-.qx_ui_embed_GalleryList .galleryText h3{
-  font-weight: bold;
-  font-size: 11px;
-}
-
-.qx_ui_embed_GalleryList .galleryText p{
-  font-size: 10px;
-}
-
-.qx_ui_embed_GalleryList .galleryCell-Selected{
-  background: #9BBCFF;
-  border-color: #3B7CFF;
-}
-  </style>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>ListSort implementation</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var imgPath = qx.manager.object.AliasManager.getInstance().resolvePath("icon/48/apps/graphics-snapshot.png");
-
-      var galleryData = [];
-
-      for (var i=0; i<100; i++)
-      {
-        galleryData.push({
-          display : "bmzN9ci5",
-          width : 350,
-          height : 350,
-          thumbWidth : 48,
-          thumbHeight : 48,
-          title : "gohome.png",
-          timestamp : Math.random().toString(),
-          comment : "Cool Comment sadas asd dsa asdas dasd asd asdas dasdasdasd sadasdas dsds as",
-          id : "7686191121780974-10682",
-          src : imgPath,
-          number : "#" + i
-        });
-      };
-
-      var galleryList = new qx.ui.embed.GalleryList(galleryData);
-
-      galleryList.setWidth(400);
-      galleryList.setTop(48);
-      galleryList.setBottom(48);
-      galleryList.setLeft(250);
-
-      galleryList.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-      galleryList.setBackgroundColor("white");
-
-      qx.ui.core.ClientDocument.getInstance().add(galleryList);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Gallery_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Gallery_1.html
deleted file mode 100644 (file)
index a7965f0..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-
-  <style type="text/css">
-.qx_ui_embed_Gallery .galleryFrame{
-  padding: 2px;
-}
-
-.qx_ui_embed_Gallery .galleryCell{
-  border: 1px solid #444;
-  background: #fff;
-  margin: 2px;
-  float: left;
-  overflow: hidden;
-
-  font-family: Tahoma, Verdana, sans-serif;
-  font-size: 10px;
-
-  cursor: default;
-
-  -moz-user-select: none;
-  user-select: none;
-}
-
-.qx_ui_embed_Gallery .galleryCell img{
-  vertical-align: bottom;
-  display: block;
-}
-
-.qx_ui_embed_Gallery .galleryCell .galleryTitle,
-.qx_ui_embed_Gallery .galleryCell .galleryComment{
-  background: #eee;
-  padding: 3px 6px;
-  text-align: center;
-  cursor: default;
-  overflow: hidden;
-  white-space: nowrap;
-}
-
-.qx_ui_embed_Gallery .galleryCell .galleryTitle{
-  border-bottom: 1px solid #aaa;
-}
-
-.qx_ui_embed_Gallery .galleryCell .galleryComment{
-  border-top: 1px solid #aaa;
-}
-
-.qx_ui_embed_Gallery .galleryCell-Selected{
-  background: #DCE8F6;
-  border: 1px solid #2760A1;
-}
-
-.qx_ui_embed_Gallery .galleryCell-Selected .galleryTitle,
-.qx_ui_embed_Gallery .galleryCell-Selected .galleryComment{
-  background: #9BBFE7;
-}
-
-.qx_ui_embed_Gallery .galleryCell-Selected .galleryTitle{
-  border-bottom: 1px dotted #2760A1;
-}
-
-.qx_ui_embed_Gallery .galleryCell-Selected .galleryComment{
-  border-top: 1px dotted #2760A1;
-}
-  </style>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test file for qx.ui.embed.Gallery</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var imgPath = qx.manager.object.AliasManager.getInstance().resolvePath("icon/64/apps/office-organizer.png");
-
-      var galleryList = [];
-
-      for (var i=0; i<100; i++)
-      {
-        galleryList.push({
-          display : "bmzN9ci5",
-          width : 350,
-          height : 350,
-          thumbWidth : 64,
-          thumbHeight : 64,
-          title : "gohome.png",
-          timestamp : Math.random().toString(),
-          comment : "Cool Comment",
-          id : "7686191121780974-10682",
-          src : imgPath
-        });
-      };
-
-      var gallery = new qx.ui.embed.Gallery(galleryList);
-
-      gallery.setLeft(20);
-      gallery.setRight(335);
-      gallery.setTop(48);
-      gallery.setBottom(48);
-      gallery.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-
-      qx.ui.core.ClientDocument.getInstance().add(gallery);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/GroupBox_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/GroupBox_1.html
deleted file mode 100644 (file)
index 079291d..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Introducing qx.ui.groupbox.GroupBox.</p>
-  </div>
-
-  <fieldset style="position:absolute; top:48px; left:400px; width:200px; height:100px"><legend>builtin</legend>content content content content content content content content content content content content content content content</fieldset>
-
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-
-      var fs = new qx.ui.groupbox.GroupBox("My first Fieldset");
-
-      with(fs)
-      {
-        setWidth("40%");
-        setBottom(48);
-        setTop(48);
-        setLeft(20);
-
-        setMaxWidth(350);
-        setMinWidth(250);
-      };
-
-
-
-      var a1 = new qx.ui.basic.Atom("TextField 1");
-      with(a1)
-      {
-        setTop(3);
-        setLeft(0);
-        setWidth("35%");
-        setHorizontalChildrenAlign("left");
-      };
-
-      var i1 = new qx.ui.form.TextField();
-      with(i1)
-      {
-        setTop(0);
-        setRight(0);
-        setWidth("60%");
-      };
-      fs.add(a1, i1);
-
-
-
-      var a2 = new qx.ui.basic.Atom("TextField 2", "icon/16/apps/preferences-desktop-wallpaper.png");
-      with(a2)
-      {
-        setTop(33);
-        setLeft(0);
-        setWidth("35%");
-        setHorizontalChildrenAlign("left");
-      };
-      fs.add(a2);
-
-      var i2 = new qx.ui.form.TextField();
-      with(i2)
-      {
-        setTop(30);
-        setRight(0);
-        setWidth("60%");
-      };
-      fs.add(i2);
-
-
-
-      var a3 = new qx.ui.basic.Atom("TextField 3");
-      with(a3)
-      {
-        setTop(63);
-        setLeft(0);
-        setWidth("35%");
-        setHorizontalChildrenAlign("left");
-      };
-      fs.add(a3);
-
-      var i3 = new qx.ui.form.TextField();
-      with(i3)
-      {
-        setTop(60);
-        setRight(0);
-        setWidth("60%");
-      };
-      fs.add(i3);
-
-
-
-      d.add(fs);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/GroupBox_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/GroupBox_2.html
deleted file mode 100644 (file)
index 06456bd..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test for qx.ui.groupbox.CheckGroupBox</p>
-  </div>
-
-  <fieldset style="position:absolute; top:48px; left:400px; width:200px; height:100px"><legend>builtin</legend>content content content content content content content content content content content content content content content</fieldset>
-
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-
-      var fs = new qx.ui.groupbox.CheckGroupBox("CheckBox FieldSet");
-
-      with(fs)
-      {
-        setWidth("40%");
-        setBottom(48);
-        setTop(48);
-        setLeft(20);
-
-        setMaxWidth(350);
-        setMinWidth("auto");
-      };
-
-      d.add(fs);
-
-
-
-
-      var fsl = new qx.ui.layout.VerticalBoxLayout;
-      fsl.setLeft(0);
-      fsl.setRight(0);
-      fsl.setHeight("auto");
-      fsl.setSpacing(4);
-      fs.add(fsl);
-
-
-
-
-      var r1 = new qx.ui.layout.HorizontalBoxLayout;
-      r1.setLeft(0);
-      r1.setWidth("100%");
-      r1.setHeight("auto");
-      r1.setVerticalChildrenAlign("middle");
-      fsl.add(r1);
-
-      var a1 = new qx.ui.basic.Atom("TextField 1");
-      with(a1)
-      {
-        setLeft(0);
-        setWidth("40%");
-        setHorizontalChildrenAlign("left");
-      };
-
-      var i1 = new qx.ui.form.TextField;
-      with(i1)
-      {
-        setRight(0);
-        setWidth("60%");
-      };
-
-      r1.add(a1, i1);
-
-
-
-
-
-      var r2 = new qx.ui.layout.HorizontalBoxLayout;
-      r2.setLeft(0);
-      r2.setWidth("100%");
-      r2.setHeight("auto");
-      r2.setVerticalChildrenAlign("middle");
-      fsl.add(r2);
-
-      var a2 = new qx.ui.basic.Atom("TextField 2", "icon/16/apps/preferences-desktop-wallpaper.png");
-      with(a2)
-      {
-        setLeft(0);
-        setWidth("40%");
-        setHorizontalChildrenAlign("left");
-      };
-
-      var i2 = new qx.ui.form.TextField;
-      with(i2)
-      {
-        setRight(0);
-        setWidth("60%");
-      };
-
-      r2.add(a2, i2);
-
-
-
-
-
-
-      var r3 = new qx.ui.layout.HorizontalBoxLayout;
-      r3.setLeft(0);
-      r3.setWidth("100%");
-      r3.setHeight("auto");
-      r3.setVerticalChildrenAlign("middle");
-      fsl.add(r3);
-
-      var a3 = new qx.ui.basic.Atom("TextField 3");
-      with(a3)
-      {
-        setLeft(0);
-        setWidth("40%");
-        setHorizontalChildrenAlign("left");
-      };
-
-      var i3 = new qx.ui.form.TextField;
-      with(i3)
-      {
-        setRight(0);
-        setWidth("60%");
-      };
-
-      r3.add(a3, i3);
-
-
-
-
-
-      fs.getLegendObject().addEventListener("changeChecked", function(e) {
-        i1.setEnabled(e.getData());
-        i2.setEnabled(e.getData());
-        i3.setEnabled(e.getData());
-
-        a1.setEnabled(e.getData());
-        a2.setEnabled(e.getData());
-        a3.setEnabled(e.getData());
-      });
-
-
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/GroupBox_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/GroupBox_3.html
deleted file mode 100644 (file)
index 72ce8f7..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test for qx.ui.groupbox.RadioGroupBox</p>
-  </div>
-
-  <fieldset style="position:absolute; top:48px; left:400px; width:200px; height:100px"><legend>builtin</legend>content content content content content content content content content content content content content content content</fieldset>
-
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-
-      var fsr = new qx.ui.form.RadioButton("Simple configuration");
-
-      fsr.setLocation(27, 48);
-      d.add(fsr);
-
-      var fs = new qx.ui.groupbox.RadioGroupBox("RadioButton FieldSet");
-
-      with(fs)
-      {
-        setWidth("40%");
-        setBottom(48);
-        setTop(72);
-        setLeft(20);
-
-        setMaxWidth(350);
-        setMinWidth("auto");
-      };
-
-      d.add(fs);
-
-      var fag = new qx.manager.selection.RadioManager("fscontrol", [ fsr, fs.getLegendObject() ]);
-
-
-
-
-      var fsl = new qx.ui.layout.VerticalBoxLayout;
-      fsl.setLeft(0);
-      fsl.setRight(0);
-      fsl.setHeight("auto");
-      fsl.setSpacing(4);
-      fs.add(fsl);
-
-
-
-
-      var r1 = new qx.ui.layout.HorizontalBoxLayout;
-      r1.setLeft(0);
-      r1.setWidth("100%");
-      r1.setHeight("auto");
-      r1.setVerticalChildrenAlign("middle");
-      fsl.add(r1);
-
-      var a1 = new qx.ui.basic.Atom("TextField 1");
-      with(a1)
-      {
-        setLeft(0);
-        setWidth("40%");
-        setHorizontalChildrenAlign("left");
-      };
-
-      var i1 = new qx.ui.form.TextField;
-      with(i1)
-      {
-        setRight(0);
-        setWidth("60%");
-      };
-
-      r1.add(a1, i1);
-
-
-
-
-
-      var r2 = new qx.ui.layout.HorizontalBoxLayout;
-      r2.setLeft(0);
-      r2.setWidth("100%");
-      r2.setHeight("auto");
-      r2.setVerticalChildrenAlign("middle");
-      fsl.add(r2);
-
-      var a2 = new qx.ui.basic.Atom("TextField 2", "icon/16/apps/preferences-desktop-wallpaper.png");
-      with(a2)
-      {
-        setLeft(0);
-        setWidth("40%");
-        setHorizontalChildrenAlign("left");
-      };
-
-      var i2 = new qx.ui.form.TextField;
-      with(i2)
-      {
-        setRight(0);
-        setWidth("60%");
-      };
-
-      r2.add(a2, i2);
-
-
-
-
-
-
-      var r3 = new qx.ui.layout.HorizontalBoxLayout;
-      r3.setLeft(0);
-      r3.setWidth("100%");
-      r3.setHeight("auto");
-      r3.setVerticalChildrenAlign("middle");
-      fsl.add(r3);
-
-      var a3 = new qx.ui.basic.Atom("TextField 3");
-      with(a3)
-      {
-        setLeft(0);
-        setWidth("40%");
-        setHorizontalChildrenAlign("left");
-      };
-
-      var i3 = new qx.ui.form.TextField;
-      with(i3)
-      {
-        setRight(0);
-        setWidth("60%");
-      };
-
-      r3.add(a3, i3);
-
-
-
-
-
-      fs.getLegendObject().addEventListener("changeChecked", function(e) {
-        i1.setEnabled(e.getData());
-        i2.setEnabled(e.getData());
-        i3.setEnabled(e.getData());
-
-        a1.setEnabled(e.getData());
-        a2.setEnabled(e.getData());
-        a3.setEnabled(e.getData());
-      });
-
-
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Iframe_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Iframe_1.html
deleted file mode 100644 (file)
index 8d7adf7..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Iframe implementation. Elastic.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-
-      //----------
-      // qx.ui.embed.Iframe
-      //----------
-
-      w1 = new qx.ui.embed.Iframe();
-
-      w1.addEventListener("load", function(e) {
-        this.debug("Loaded: " + this.getSource());
-      });
-
-      // elastic
-      w1.set( { left: 20, top: 96, right: 335, bottom: 48 } );
-      w1.setSource("http://www.google.com");
-
-      d.add(w1);
-
-
-      function changeURL(e) {
-
-        this.setSource(e.getData());
-      };
-
-      // make qx.ui.embed.Iframe react to event "surfTo" via function changeURL()
-      d.addEventListener("surfTo", changeURL, w1);
-
-
-      //-------------
-      // radio group
-      //-------------
-
-      var rd1 = new qx.ui.form.RadioButton("Google", "http://www.google.com");
-      var rd2 = new qx.ui.form.RadioButton("Yahoo", "http://www.yahoo.com");
-
-      rd1.set( { left: 20, top: 48, checked: true } );
-      rd2.set( { left: 120, top: 48 } );
-
-      var rbm = new qx.manager.selection.RadioManager( name, [rd1, rd2]);
-
-      // elements of radio group fire event "surfTo"
-      rbm.addEventListener("changeSelected", function(e)
-      {
-        d.dispatchEvent( new qx.event.type.DataEvent("surfTo", e.getData().getValue() ) );
-      });
-
-      d.add(rd1, rd2);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Inline_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Inline_1.html
deleted file mode 100644 (file)
index c1cfee4..0000000
+++ /dev/null
@@ -1,260 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Inline widget.</p><p>Application layout is disabled by using qx.core.Settings. Scrollbars appear, if the content is bigger than the window.</p>
-  </div>
-
-  <div id="iframe1" class="manualFrame" style="overflow:hidden;position:static;margin-top:38px;margin-left:10px">
-    Inline Frame #1
-  </div>
-
-  <div id="iframe2" class="manualFrame" style="overflow:hidden;position:static;margin-top:20px;margin-left:10px">
-    Inline Frame #2
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var inlineWidget = new qx.ui.basic.Inline("iframe1");
-
-    inlineWidget.setHeight("auto");
-    inlineWidget.setWidth("auto");
-
-    var fieldSet = new qx.ui.groupbox.GroupBox("My first inline fieldset");
-
-    with(fieldSet)
-    {
-      // setWidth("auto");
-      // setWidth("100%");
-
-      setLeft(0);
-      setRight(0);
-
-      setHeight("auto");
-    };
-
-    inlineWidget.add(fieldSet);
-
-    d.add(inlineWidget);
-
-
-
-    var atom1 = new qx.ui.basic.Atom("Name");
-    var textfield1 = new qx.ui.form.TextField;
-
-    with(atom1)
-    {
-      setLeft(0);
-      setTop(3);
-    };
-
-    with(textfield1)
-    {
-      setLeft(80);
-      setRight(0);
-      setTop(0);
-    };
-
-    fieldSet.add(atom1, textfield1);
-
-
-
-    var atom2 = new qx.ui.basic.Atom("First Name");
-    var textfield2 = new qx.ui.form.TextField;
-
-    with(atom2)
-    {
-      setLeft(0);
-      setTop(33);
-    };
-
-    with(textfield2)
-    {
-      setLeft(80);
-      setRight(0);
-      setTop(30);
-    };
-
-    fieldSet.add(atom2, textfield2);
-
-
-
-    var atom3 = new qx.ui.basic.Atom("City");
-    var textfield3 = new qx.ui.form.TextField;
-
-    with(atom3)
-    {
-      setLeft(0);
-      setTop(63);
-    };
-
-    with(textfield3)
-    {
-      setLeft(80);
-      setRight(0);
-      setTop(60);
-    };
-
-    fieldSet.add(atom3, textfield3);
-
-
-
-    /*
-      Menu
-    */
-
-      var m1 = new qx.ui.menu.Menu;
-
-      var mb1_01 = new qx.ui.menu.Button("New");
-      var mb1_02 = new qx.ui.menu.Button("Open");
-      var mb1_03 = new qx.ui.menu.Button("Save");
-      var mb1_04 = new qx.ui.menu.Button("Save as");
-      var mb1_05 = new qx.ui.menu.Button("Close");
-      var mb1_06 = new qx.ui.menu.Button("Restore last saved");
-
-      m1.add(mb1_01, mb1_02, mb1_03, mb1_04, mb1_05, mb1_06);
-
-
-      var m2 = new qx.ui.menu.Menu;
-
-      var mb2_01 = new qx.ui.menu.Button("Undo");
-      var mb2_02 = new qx.ui.menu.Button("Redo");
-      var mb2_b1 = new qx.ui.menu.Separator();
-      var mb2_03 = new qx.ui.menu.Button("Cut", "icon/16/actions/edit-cut.png");
-      var mb2_04 = new qx.ui.menu.Button("Copy", "icon/16/actions/edit-copy.png");
-      var mb2_05 = new qx.ui.menu.Button("Paste", "icon/16/actions/edit-paste.png");
-      var mb2_06 = new qx.ui.menu.Button("Delete", "icon/16/actions/edit-delete.png");
-      var mb2_b2 = new qx.ui.menu.Separator();
-      var mb2_07 = new qx.ui.menu.Button("Select All");
-      var mb2_08 = new qx.ui.menu.Button("Find");
-      var mb2_09 = new qx.ui.menu.Button("Find Again");
-
-
-
-
-      mb2_05.setEnabled(false);
-      mb2_06.setEnabled(false);
-      mb2_09.setEnabled(false);
-
-      m2.add(mb2_01, mb2_02, mb2_b1, mb2_03, mb2_04, mb2_05, mb2_06, mb2_b2, mb2_07, mb2_08, mb2_09);
-
-
-      var m3 = new qx.ui.menu.Menu;
-      var m3_suba = new qx.ui.menu.Menu;
-      var m3_subb = new qx.ui.menu.Menu;
-      var m3_subc = new qx.ui.menu.Menu;
-
-      var mb3_01 = new qx.ui.menu.CheckBox("File List", null, false);
-      var mb3_02 = new qx.ui.menu.CheckBox("Syntax Highlighting", null, true);
-      var mb3_03 = new qx.ui.menu.CheckBox("Statusbar", null, true);
-      var mb3_b1 = new qx.ui.menu.Separator();
-      var mb3_04 = new qx.ui.menu.Button("Printer Font", null, null, m3_suba);
-      var mb3_05 = new qx.ui.menu.Button("Editor Font", null, null, m3_subb);
-      var mb3_06 = new qx.ui.menu.Button("Export Font", null, null, m3_subc);
-
-      m3.add(mb3_01, mb3_02, mb3_03, mb3_b1, mb3_04, mb3_05, mb3_06);
-
-      var mb3_suba_01 = new qx.ui.menu.Button("Tahoma, 11pt");
-      var mb3_suba_02 = new qx.ui.menu.Button("Tahoma, 12pt");
-      var mb3_suba_03 = new qx.ui.menu.Button("Tahoma, 13pt");
-      var mb3_suba_04 = new qx.ui.menu.Button("Tahoma, 14pt");
-      var mb3_suba_05 = new qx.ui.menu.Button("Tahoma, 15pt");
-
-      m3_suba.add(mb3_suba_01, mb3_suba_02, mb3_suba_03, mb3_suba_04, mb3_suba_05);
-
-      var mb3_subb_01 = new qx.ui.menu.Button("Verdana, 11pt");
-      var mb3_subb_02 = new qx.ui.menu.Button("Verdana, 12pt");
-      var mb3_subb_03 = new qx.ui.menu.Button("Verdana, 13pt");
-      var mb3_subb_04 = new qx.ui.menu.Button("Verdana, 14pt");
-      var mb3_subb_05 = new qx.ui.menu.Button("Verdana, 15pt");
-
-      m3_subb.add(mb3_subb_01, mb3_subb_02, mb3_subb_03, mb3_subb_04, mb3_subb_05);
-
-      var mb3_subc_01 = new qx.ui.menu.Button("Courier, 11pt");
-      var mb3_subc_02 = new qx.ui.menu.Button("Courier, 12pt");
-      var mb3_subc_03 = new qx.ui.menu.Button("Courier, 13pt");
-      var mb3_subc_04 = new qx.ui.menu.Button("Courier, 14pt");
-      var mb3_subc_05 = new qx.ui.menu.Button("Courier, 15pt");
-
-      m3_subc.add(mb3_subc_01, mb3_subc_02, mb3_subc_03, mb3_subc_04, mb3_subc_05);
-
-
-
-      var m4 = new qx.ui.menu.Menu;
-
-      var m4_suba = new qx.ui.menu.Menu;
-
-      var mb4_01 = new qx.ui.menu.Button("View", null, null, m4_suba);
-      var mb4_b1 = new qx.ui.menu.Separator();
-      var mb4_02 = new qx.ui.menu.Button("Editor Preferences...");
-      var mb4_03 = new qx.ui.menu.Button("Editor Extensions");
-      var mb4_04 = new qx.ui.menu.Button("Framework Preferences");
-
-      m4.add(mb4_01, mb4_b1, mb4_02, mb4_03, mb4_04);
-
-      var mb4_suba_01 = new qx.ui.menu.Button("New Window");
-      var mb4_suba_b1 = new qx.ui.menu.Separator();
-      var mb4_suba_02 = new qx.ui.menu.RadioButton("Overlapping", null, true);
-      var mb4_suba_03 = new qx.ui.menu.RadioButton("Split Horizontally", null);
-      var mb4_suba_04 = new qx.ui.menu.RadioButton("Split Vertically", null);
-      var mb4_suba_b2 = new qx.ui.menu.Separator();
-      var mb4_suba_05 = new qx.ui.menu.Button("Next Window");
-      var mb4_suba_06 = new qx.ui.menu.Button("Previous Window");
-
-      m4_suba.add(mb4_suba_01, mb4_suba_b1, mb4_suba_02, mb4_suba_03, mb4_suba_04, mb4_suba_b2, mb4_suba_05, mb4_suba_06);
-
-      var mb4_manager = new qx.manager.selection.RadioManager("windowMode", [ mb4_suba_02, mb4_suba_03, mb4_suba_04 ]);
-
-
-      var m5 = new qx.ui.menu.Menu;
-
-      var mb5_01 = new qx.ui.menu.Button("Help");
-      var mb5_02 = new qx.ui.menu.Button("About");
-
-      m5.add(mb5_01, mb5_02);
-
-      d.add(m1, m2, m3, m3_suba, m3_subb, m3_subc, m4, m4_suba, m5);
-
-
-    var inline2 = new qx.ui.basic.Inline("iframe2");
-
-    inline2.setHeight("auto");
-    inline2.setWidth("auto");
-
-
-    var mb1 = new qx.ui.toolbar.ToolBar;
-
-    var mbb1 = new qx.ui.toolbar.MenuButton("File", m1);
-    var mbb2 = new qx.ui.toolbar.MenuButton("Edit", m2);
-    var mbb3 = new qx.ui.toolbar.MenuButton("View", m3);
-    var mbb4 = new qx.ui.toolbar.MenuButton("Options", m4);
-    var mbb5 = new qx.ui.toolbar.MenuButton("Help", m5);
-
-    mb1.add(mbb1, mbb2, mbb3, mbb4, mbb5);
-
-    with(mb1)
-    {
-      setWidth(400);
-      setHeight("auto");
-    };
-
-    inline2.add(mb1);
-
-    d.add(inline2);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ListView_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ListView_1.html
deleted file mode 100644 (file)
index 24e845a..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing qx.ui.listview.ListView with text cells.</p>
-    <p>Testing of column alignment, resizeable prohibition for columns and live resizing.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var ld = [];
-      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
-      
-      for (var i=0, t; i<1000; i++) 
-      {
-        t=Math.round(Math.random()*4);
-        ld.push({ name : { text : "File " + i }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }});
-      };
-      
-      var lc = 
-      {
-        name : { label : "Name", width : 100, type : "text" },
-        size: { label : "Size", width : 50, type : "text", align : "right", resizable : false },
-        type : { label : "Type", width : 80, type : "text" },
-        modified : { label : "Last Modified", width : 150, type : "text" },
-        rights : { label : "Rights", width: 80, type : "text" }
-      };
-      
-      var lv = new qx.ui.listview.ListView(ld, lc);
-
-      lv.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
-      lv.setBackgroundColor("white");
-      lv.setWidth(600);
-      lv.setHeight(350);
-      lv.setLocation(20, 48);
-      
-      // Prohibit resizing of columns completly
-      // lv.setResizable(false);
-
-      qx.ui.core.ClientDocument.getInstance().add(lv);
-      
-      
-      
-      
-      var chk1 = new qx.ui.form.CheckBox("Enable Live Resize");
-      chk1.setLocation(20, 420);
-      qx.ui.core.ClientDocument.getInstance().add(chk1);
-      
-      chk1.addEventListener("changeChecked", function(e) {
-        lv.setLiveResize(e.getData());
-      });
-      
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ListView_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ListView_2.html
deleted file mode 100644 (file)
index eff805d..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing qx.ui.listview.ListView with text cells and an additional icon.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var ld = [];
-      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
-      var li = [ "apps/preferences-desktop-theme.png", "actions/edit.png", "apps/graphics-image-viewer.png", "apps/preferences-desktop-wallpaper.png", "actions/document-new.png" ];
-
-      for (var i=0, t; i<1000; i++)
-      {
-        t=Math.round(Math.random()*4);
-        ld.push({ icon : { source : "icon/16/" + li[t] }, name : { text : "File " + i }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }});
-      };
-
-      var lc =
-      {
-        icon : { label : "", width: 24, type : "image" },
-        name : { label : "Name", width : 100, type : "text" },
-        size: { label : "Size", width : 50, type : "text", align : "right" },
-        type : { label : "Type", width : 80, type : "text" },
-        modified : { label : "Last Modified", width : 150, type : "text" },
-        rights : { label : "Rights", width: 80, type : "text" }
-      };
-
-      var lv = new qx.ui.listview.ListView(ld, lc);
-
-      lv.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
-      lv.setBackgroundColor("white");
-      lv.setWidth(600);
-      lv.setHeight(350);
-      lv.setLocation(20, 48);
-
-      qx.ui.core.ClientDocument.getInstance().add(lv);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ListView_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ListView_3.html
deleted file mode 100644 (file)
index d726c26..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing qx.ui.listview.ListView with iconHtml cells.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var ld = [];
-      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
-      
-      for (var i=0, t; i<1000; i++) 
-      {
-        t=Math.round(Math.random()*4);
-        ld.push({ name : { html : "E-Mail " + i, icon : "icon/16/apps/internet-email-client.png", iconWidth : 16, iconHeight : 16 }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }, open : { uri : "http://www.google.com/search?q=" + i, html : "Open " + i }});
-      };
-      
-      var lc = 
-      {
-        name : { label : "Name", width : 120, type : "iconHtml" },
-        size: { label : "Size", width : 50, type : "text", align : "right" },
-        type : { label : "Type", width : 80, type : "text" },
-        modified : { label : "Last Modified", width : 150, type : "text" },
-        rights : { label : "Rights", width: 80, type : "text" }     
-      };
-      
-      var lv = new qx.ui.listview.ListView(ld, lc);
-
-      lv.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
-      lv.setBackgroundColor("white");
-      lv.setWidth(600);
-      lv.setHeight(350);
-      lv.setLocation(20, 48);
-
-      qx.ui.core.ClientDocument.getInstance().add(lv);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ListView_4.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ListView_4.html
deleted file mode 100644 (file)
index 6072187..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing qx.ui.listview.ListView with text cells.</p>
-    <p>Added some sort handling stuff.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var ld = [];
-      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
-
-      for (var i=0, t; i<1000; i++)
-      {
-        t=Math.round(Math.random()*4);
-        ld.push({ name : { text : "File " + i }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }});
-      };
-
-      var lc =
-      {
-        name : { label : "Name", width : 100, type : "text", sortable : true, sortProp : "text" },
-        size: { label : "Size", width : 50, type : "text", sortable : true, sortProp : "text", sortMethod : qx.util.Compare.byIntegerString, align : "right" },
-        type : { label : "Type", width : 80, type : "text", sortable : true, sortProp : "text" },
-        modified : { label : "Last Modified", width : 150, type : "text" },
-        rights : { label : "Rights", width: 80, type : "text" }
-      };
-
-      var lv = new qx.ui.listview.ListView(ld, lc);
-
-      lv.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
-      lv.setBackgroundColor("white");
-      lv.setWidth(600);
-      lv.setHeight(350);
-      lv.setLocation(20, 48);
-
-      qx.ui.core.ClientDocument.getInstance().add(lv);
-
-
-
-
-      // Color Themes
-      qx.manager.object.ColorManager.getInstance().createThemeList(qx.ui.core.ClientDocument.getInstance(), 20, 448);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/List_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/List_1.html
deleted file mode 100644 (file)
index 843ce72..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>List implementation</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-
-      var l1 = new qx.ui.form.List;
-      
-      l1.set({ top : 48, left: 20, height: 200, width: 150, overflow : "scrollY" });
-      
-      var item;
-      for( var i=1; i<=35; i++ ) 
-      {
-        // item = new qx.ui.form.ListItem("Item No " + i);
-        item = new qx.ui.form.ListItem("Item No " + i, "icon/" + ((i % 4) ? "16" : "48") + "/places/folder.png");
-        
-        !(i % 9) && (item.setEnabled(false));
-        
-        l1.add(item);
-      };
-      
-      d.add(l1);
-      
-      var l2 = new qx.ui.form.List;
-      
-      l2.set({ top : 48, left: 400, height: 200, width: 150 });
-      l2.getManager().setMultiSelection(false);
-      //l2.setOverflow("scrollY");
-      l2.setHeight("auto");
-      
-      var l2l = [ "red", "violett", "rose", "blue", "green", "cyan", "magenta", "yellow", "brown", "orange", "black", "white", "grey", "gray", "brown" ];
-      
-      for (var i=0; i<l2l.length; i++) {
-        l2.add(new qx.ui.form.ListItem(l2l[i]));
-      };      
-      
-      d.add(l2);
-      
-
-      
-
-      var c1 = new qx.ui.form.CheckBox("Enable Multi-Selection");
-      var c2 = new qx.ui.form.CheckBox("Enable Drag-Selection");
-      var c3 = new qx.ui.form.CheckBox("Allow Deselection");
-      var c4 = new qx.ui.form.CheckBox("Enable Inline Find");
-
-      c1.setLocation(180, 48);
-      c2.setLocation(180, 68);
-      c3.setLocation(180, 88);
-      c4.setLocation(180, 108);
-      
-      d.add(c1, c2, c3, c4);
-      
-      c1.setChecked(true);
-      c2.setChecked(true);
-      c3.setChecked(true);
-      c4.setChecked(true);
-      
-      c1.addEventListener("changeChecked", function(e) {
-        l1.getManager().setMultiSelection(e.getData());
-      });
-      
-      c2.addEventListener("changeChecked", function(e) {
-        l1.getManager().setDragSelection(e.getData());
-      });
-
-      c3.addEventListener("changeChecked", function(e) {
-        l1.getManager().setCanDeselect(e.getData());
-      });
-      
-      c4.addEventListener("changeChecked", function(e) {
-        l1.setEnableInlineFind(e.getData());
-      });
-      
-      
-      
-      
-
-      var rd1 = new qx.ui.form.RadioButton("Show Label", "label");
-      var rd2 = new qx.ui.form.RadioButton("Show Icon", "icon");
-      var rd3 = new qx.ui.form.RadioButton("Show Both", "both");
-
-      rd1.set( { left: 180, top: 128 } );
-      rd2.set( { left: 180, top: 148 } );
-      rd3.set( { left: 180, top: 168 } );
-      
-      d.add(rd1, rd2, rd3);
-      
-      rd3.setChecked(true);
-
-      var rbm = new qx.manager.selection.RadioManager( name, [rd1, rd2, rd3]);
-
-      rbm.addEventListener("changeSelected", function(e)
-      {
-        for( var i=0; i<l1.getChildrenLength(); i++ ) {
-          l1.getChildren()[i].setShow(e.getData().getValue());
-        }
-      });
-      
-      
-      
-      
-      // Icon Themes
-      qx.manager.object.ImageManager.getInstance().createThemeList(d, 20, 400);
-    
-      // Color Themes
-      qx.manager.object.ColorManager.getInstance().createThemeList(d, 200, 400);      
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Menu_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Menu_1.html
deleted file mode 100644 (file)
index 7c3b131..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>qx.ui.menu.Menu Implementation.</p>
-    <p>Added qx.client.Command support tests.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-
-      var q1 = new qx.client.Command("Ctrl+Z");
-      q1.addEventListener("execute", function(e) {
-        alert("Undo");
-      });
-
-      var q2 = new qx.client.Command("Ctrl+Y");
-      q2.addEventListener("execute", function(e) {
-        alert("Redo");
-      });
-
-      var q3 = new qx.client.Command("Ctrl+X");
-      q3.addEventListener("execute", function(e) {
-        alert("Cut");
-      });
-
-      var q4 = new qx.client.Command("Ctrl+C");
-      q4.addEventListener("execute", function(e) {
-        alert("Copy");
-      });
-
-      var q5 = new qx.client.Command("Ctrl+V");
-      q5.addEventListener("execute", function(e) {
-        alert("Paste");
-      });
-
-      var q6 = new qx.client.Command("Del");
-      q6.addEventListener("execute", function(e) {
-        alert("Delete");
-      });
-
-      var q7 = new qx.client.Command("Ctrl+A");
-      q7.addEventListener("execute", function(e) {
-        alert("Select All");
-      });
-
-      var q8 = new qx.client.Command("Ctrl+F");
-      q8.addEventListener("execute", function(e) {
-        alert("Search");
-      });
-
-      var q9 = new qx.client.Command("Ctrl+G");
-      q9.addEventListener("execute", function(e) {
-        alert("Search Again");
-      });
-
-      var q10 = new qx.client.Command();
-      q10.addEventListener("execute", function(e) {
-        alert("Syntax Highlighting");
-      });
-
-      var q11 = new qx.client.Command("Esc");
-      q11.addEventListener("execute", function(e) {
-        alert("Escape");
-      });
-
-      var q12 = new qx.client.Command("Space");
-      q12.addEventListener("execute", function(e) {
-        alert("Space");
-      });
-
-
-
-
-      var m2 = new qx.ui.menu.Menu;
-
-      var mb2_01 = new qx.ui.menu.Button("New Window");
-      var mb2_02 = new qx.ui.menu.Button("Overlapping");
-      var mb2_03 = new qx.ui.menu.Button("Split Vertical");
-      var mb2_04 = new qx.ui.menu.Button("Split Horizontal");
-      var mb2_05 = new qx.ui.menu.Button("Next Window");
-      var mb2_06 = new qx.ui.menu.Button("Previous Window");
-
-      m2.add(mb2_01, mb2_02, mb2_03, mb2_04, mb2_05, mb2_06);
-
-
-
-
-      var m3 = new qx.ui.menu.Menu;
-
-      var mb3_01 = new qx.ui.menu.Button("Tahoma, 11pt");
-      var mb3_02 = new qx.ui.menu.Button("Tahoma, 12pt");
-      var mb3_03 = new qx.ui.menu.Button("Tahoma, 13pt");
-      var mb3_04 = new qx.ui.menu.Button("Tahoma, 14pt");
-      var mb3_05 = new qx.ui.menu.Button("Tahoma, 15pt");
-
-      m3.add(mb3_01, mb3_02, mb3_03, mb3_04, mb3_05);
-
-
-
-      var m1 = new qx.ui.menu.Menu;
-
-      var mb1_01 = new qx.ui.menu.Button("View/Lists", null, q12);
-      var mb1_02 = new qx.ui.menu.Button("Syntax Highlighting", null, q10);
-      var ms1    = new qx.ui.menu.Separator();
-      var mb1_03 = new qx.ui.menu.Button("Window Font", null, q11);
-      var mb1_04 = new qx.ui.menu.Button("Printer Font", null, null, m3);
-      var ms2    = new qx.ui.menu.Separator();
-      var mb1_05 = new qx.ui.menu.Button("Undo", null, q1);
-      var mb1_06 = new qx.ui.menu.Button("Redo", null, q2);
-      var ms3    = new qx.ui.menu.Separator();
-      var mb1_07 = new qx.ui.menu.Button("Cut", "icon/16/actions/edit-cut.png", q3);
-      var mb1_08 = new qx.ui.menu.Button("Copy", "icon/16/actions/edit-copy.png", q4);
-      var mb1_09 = new qx.ui.menu.Button("Paste", "icon/16/actions/edit-paste.png", q5);
-      var mb1_10 = new qx.ui.menu.Button("Delete", "icon/16/actions/edit-delete.png", q6);
-      var mb1_11 = new qx.ui.menu.Button("Select All", null, q7);
-      var ms4    = new qx.ui.menu.Separator();
-      var mb1_12 = new qx.ui.menu.Button("Search", null, q8);
-      var mb1_13 = new qx.ui.menu.Button("Search Again", null, q9);
-      var ms5    = new qx.ui.menu.Separator();
-      var mb1_14 = new qx.ui.menu.Button("View", null, null, m2);
-      var mb1_15 = new qx.ui.menu.Button("Editor Settings...");
-      var mb1_16 = new qx.ui.menu.Button("Editor Plugins");
-      var mb1_17 = new qx.ui.menu.Button("Framework Settings");
-
-      m1.add(mb1_01, mb1_02, ms1, mb1_03, mb1_04, ms2, mb1_05, mb1_06, ms3, mb1_07, mb1_08, mb1_09, mb1_10, mb1_11, ms4, mb1_12, mb1_13, ms5, mb1_14, mb1_15, mb1_16, mb1_17);
-
-
-      d.add(m1, m2, m3);
-
-
-
-
-
-      var w1 = new qx.ui.form.Button("Open");
-
-      w1.setTop(48);
-      w1.setLeft(20);
-
-      w1.addEventListener("click", function(e)
-      {
-        if (m1.isSeeable())
-        {
-          m1.hide();
-        }
-        else
-        {
-          var el = this.getElement();
-
-          m1.setLeft(qx.html.Location.getPageBoxLeft(el));
-          m1.setTop(qx.html.Location.getPageBoxBottom(el));
-
-          m1.show();
-        };
-
-        e.setPropagationStopped(true);
-      });
-
-      w1.addEventListener("mousedown", function(e)
-      {
-        e.setPropagationStopped(true);
-      });
-
-
-      d.add(w1);
-
-
-
-
-
-
-      // Icon Themes
-      qx.manager.object.ImageManager.getInstance().createThemeList(d, 180, 48);
-
-      // Color Themes
-      qx.manager.object.ColorManager.getInstance().createThemeList(d, 380, 48);
-
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/NativeWindow_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/NativeWindow_1.html
deleted file mode 100644 (file)
index 55fab71..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Native Windows. Could be understood as an enhanced window.open with some additional options like to create modal windows.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var w1 = new qx.client.NativeWindow("http://www.google.com");
-
-    w1.setDimension(600, 400);
-
-
-    w1.addEventListener("load", function(e) {
-      this.debug("Content loaded: " + this.isLoaded());
-    });
-
-    w1.addEventListener("close", function(e) {
-      this.debug("Window closed: " + this.isClosed());
-    });
-
-
-
-
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var btn1 = new qx.ui.form.Button("Open Native Window", "icon/16/apps/preferences-desktop-wallpaper.png");
-    with(btn1)
-    {
-      setTop(48);
-      setLeft(20);
-
-      addEventListener("click", function() { w1.open(); } );
-    };
-
-    d.add(btn1);
-
-
-
-
-
-    var l = new qx.ui.layout.VerticalBoxLayout;
-    l.setLocation(20, 96);
-    l.setWidth("auto");
-    l.setHeight("auto");
-    d.add(l);
-
-    var fs1 = new qx.ui.groupbox.GroupBox("Initial Settings");
-    fs1.setHeight("auto");
-    l.add(fs1);
-
-
-    var chk1 = new qx.ui.form.CheckBox("Resizeable");
-    chk1.setLocation(0, 0);
-    chk1.setChecked(true);
-    chk1.addEventListener("changeChecked", function(e) {
-      w1.setResizeable(e.getData());
-    });
-
-    var chk2 = new qx.ui.form.CheckBox("Show Statusbar");
-    chk2.setLocation(0, 20);
-    chk2.setChecked(false);
-    chk2.addEventListener("changeChecked", function(e) {
-      w1.setShowStatusbar(e.getData());
-    });
-
-    var chk3 = new qx.ui.form.CheckBox("Show Menubar");
-    chk3.setLocation(0, 40);
-    chk3.setChecked(false);
-    chk3.addEventListener("changeChecked", function(e) {
-      w1.setShowMenubar(e.getData());
-    });
-
-    var chk4 = new qx.ui.form.CheckBox("Show Location");
-    chk4.setLocation(0, 60);
-    chk4.setChecked(false);
-    chk4.addEventListener("changeChecked", function(e) {
-      w1.setShowLocation(e.getData());
-    });
-
-    var chk5 = new qx.ui.form.CheckBox("Show Toolbar");
-    chk5.setLocation(0, 80);
-    chk5.setChecked(false);
-    chk5.addEventListener("changeChecked", function(e) {
-      w1.setShowToolbar(e.getData());
-    });
-
-    var chk6 = new qx.ui.form.CheckBox("Allow Scrollbars");
-    chk6.setLocation(0, 100);
-    chk6.setChecked(true);
-    chk6.addEventListener("changeChecked", function(e) {
-      w1.setAllowScrollbars(e.getData());
-    });
-
-    var chk7 = new qx.ui.form.CheckBox("Modal");
-    chk7.setLocation(0, 120);
-    chk7.setChecked(false);
-    chk7.addEventListener("changeChecked", function(e) {
-      w1.setModal(e.getData());
-    });
-
-    var chk8 = new qx.ui.form.CheckBox("Dependent");
-    chk8.setLocation(0, 140);
-    chk8.setChecked(true);
-    chk8.addEventListener("changeChecked", function(e) {
-      w1.setDependent(e.getData());
-    });
-
-    fs1.add(chk1, chk2, chk3, chk4, chk5, chk6, chk7, chk8);
-
-
-
-
-
-
-
-
-    var fs2 = new qx.ui.groupbox.GroupBox("Runtime Settings");
-    fs2.setHeight("auto");
-    l.add(fs2);
-
-
-
-    var tf1 = new qx.ui.form.TextField("http://www.google.com");
-    tf1.setLocation(0, 2);
-    tf1.setWidth(150);
-
-    var btn1 = new qx.ui.form.Button("Set Url", "icon/16/actions/dialog-ok.png");
-    btn1.setLocation(155, 0);
-    btn1.addEventListener("click", function() {
-      w1.setUrl(tf1.getValue());
-    });
-
-
-
-
-    var tf2 = new qx.ui.form.TextField("600");
-    tf2.setLocation(0, 42);
-    tf2.setWidth(50);
-
-    var btn2 = new qx.ui.form.Button("Set Width", "icon/16/actions/dialog-ok.png");
-    btn2.setLocation(55, 40);
-    btn2.addEventListener("click", function() {
-      w1.setWidth(parseInt(tf2.getValue()));
-    });
-
-
-
-
-    var tf3 = new qx.ui.form.TextField("400");
-    tf3.setLocation(0, 72);
-    tf3.setWidth(50);
-
-    var btn3 = new qx.ui.form.Button("Set Height", "icon/16/actions/dialog-ok.png");
-    btn3.setLocation(55, 70);
-    btn3.addEventListener("click", function() {
-      w1.setHeight(parseInt(tf3.getValue()));
-    });
-
-
-
-    var btn4 = new qx.ui.form.Button("Center to screen", "icon/16/apps/graphics-image-viewer.png");
-    btn4.setLocation(0, 110);
-    btn4.addEventListener("click", function() {
-      w1.centerToScreen()
-    });
-
-    var btn5 = new qx.ui.form.Button("Center to screen area", "icon/16/apps/graphics-image-viewer.png");
-    btn5.setLocation(0, 140);
-    btn5.addEventListener("click", function() {
-      w1.centerToScreenArea()
-    });
-
-    var btn6 = new qx.ui.form.Button("Center to opener", "icon/16/apps/graphics-image-viewer.png");
-    btn6.setLocation(0, 170);
-    btn6.addEventListener("click", function() {
-      w1.centerToOpener()
-    });
-
-
-
-    fs2.add(tf1, btn1, tf2, btn2, tf3, btn3, btn4, btn5, btn6);
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/RadioButton_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/RadioButton_1.html
deleted file mode 100644 (file)
index 05d558e..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>    
-  
-  <div id="demoDescription"> 
-    <p>Tests for qx.ui.form.RadioButton. qx.ui.form.RadioButton extends qx.ui.basic.Atom and so it inherits all the options and properties defined there.</p>
-    <p>To group multiple QxRadioButtons you must define a instance of qx.manager.selection.RadioManager and add them to this new instance. All QxRadioButtons assigned to the same group make sure that only one of them is checked at the same time.</p>
-    <p>
-  </div>
-  
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-    
-    var rb1 = new qx.ui.form.RadioButton("Option #1", "rb1");
-    with(rb1)
-    {
-      setTop(80);
-      setLeft(20);
-    };
-    d.add(rb1);
-
-    var rb2 = new qx.ui.form.RadioButton("Option #2", "rb2");
-    with(rb2)
-    {
-      setTop(110);
-      setLeft(20);
-    };
-    d.add(rb2);
-    rb2.setChecked(true);
-    
-    
-    var rb3 = new qx.ui.form.RadioButton("Top RadioButton", "rb3");
-    with(rb3)
-    {
-      setTop(160);
-      setLeft(20);
-      setIconPosition("top");
-    };
-    d.add(rb3);
-    
-    var rb4 = new qx.ui.form.RadioButton("Bottom RadioButton", "rb4");
-    with(rb4)
-    {
-      setTop(160);
-      setLeft(160);
-      setIconPosition("bottom");
-    };
-    d.add(rb4);    
-
-
-    var rb5 = new qx.ui.form.RadioButton("Left RadioButton", "rb5");
-    with(rb5)
-    {
-      setTop(220);
-      setLeft(20);
-      setIconPosition("left");
-    };
-    d.add(rb5);
-    
-    var rb6 = new qx.ui.form.RadioButton("Right RadioButton", "rb6");
-    with(rb6)
-    {
-      setTop(220);
-      setLeft(160);
-      setIconPosition("right");
-    };
-    d.add(rb6);  
-    
-    var rb7 = new qx.ui.form.RadioButton(null, "rb7");
-    with(rb7)
-    {
-      setTop(280);
-      setLeft(20);
-    };
-    d.add(rb7);     
-    
-
-    var rg1 = new qx.manager.selection.RadioManager("mygroup", [rb1, rb2, rb3, rb4, rb5, rb6, rb7]);
-
-
-    
-
-
-    var linfo = new qx.ui.basic.Atom("Current Value: \"" + rg1.getSelected().getLabel() + "\" (" + rg1.getSelected().getValue() + ")", "icon/16/actions/go-next.png");
-
-    with(linfo)
-    {
-      setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      setPadding(2, 4);
-      setBackgroundColor("white");
-      setTop(48);
-      setLeft(20);
-    };
-    
-    rg1.addEventListener("changeSelected", function(e) {
-      linfo.setLabel("Current Value: \"" + e.getData().getLabel() + "\" (" + e.getData().getValue() + ")");
-    });
-    
-    d.add(linfo);
-  });
-  </script>
-</body>
-</html>  
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/RepeatButton_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/RepeatButton_1.html
deleted file mode 100644 (file)
index e0281c2..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test the qx.ui.form.RepeatButton constructor. qx.ui.form.RepeatButton is based on qx.ui.form.Button but adds some interval handled event mechanism.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    function buttonExecute() { this.debug("Executed: " + this.getLabel()); };
-
-    var btn1 = new qx.ui.form.RepeatButton("Repeat Button No #1");
-    with(btn1)
-    {
-      setTop(48);
-      setLeft(20);
-      addEventListener("execute", buttonExecute);
-    };
-
-    d.add(btn1);
-
-
-
-    var btn2 = new qx.ui.form.RepeatButton("Repeat Button No #2");
-    with(btn2)
-    {
-      setTop(48);
-      setLeft(160);
-      addEventListener("execute", buttonExecute);
-      setEnabled(false);
-    };
-
-    d.add(btn2);
-
-
-
-    var btn3 = new qx.ui.form.RepeatButton("Repeat Button No #3");
-    with(btn3)
-    {
-      setTop(48);
-      setLeft(300);
-      addEventListener("execute", buttonExecute);
-    };
-
-    d.add(btn3);
-
-
-    var btn4 = new qx.ui.form.RepeatButton("Repeat Button No #4", "icon/16/actions/go-next.png");
-    with(btn4)
-    {
-      setTop(148);
-      setLeft(20);
-      addEventListener("execute", buttonExecute);
-    };
-
-    d.add(btn4);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Resizer_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Resizer_1.html
deleted file mode 100755 (executable)
index b71aa77..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-  
-  <div id="demoDescription">
-    <p>Test for qx.ui.resizer.Rezizer.</p>
-    <p>
-      The Resizer widget acts as a wrapper of another widget.  It allows the child widget to be resized by the end user.
-    </p>
-  </div>  
-
-  <script type="text/javascript">
-    function newResizer() {
-      var tArea = new qx.ui.form.TextArea;
-      tArea.setValue("Resize me\nI'm resizable");
-      tArea.set({
-        minWidth: 100,
-        minHeight: 50,
-        width: 200,
-        height: 100
-      });
-      return new qx.ui.resizer.Resizer(tArea);
-    }
-    
-    function newHBox() {
-      var hBox = new qx.ui.layout.BoxLayout;
-      hBox.set({
-        spacing: 10
-      });
-      hBox.auto();
-      hBox.add(newResizer(), newResizer());
-      return hBox;
-    }
-    
-    qx.core.Init.getInstance().defineMain(function() {
-      var vBox = new qx.ui.layout.VerticalBoxLayout;
-      var list = new qx.ui.form.List;
-      list.set({width: 100, height: 200, minWidth: 50, minHeight: 100, overflow: 'auto'});
-      for (var i = 0; i < 100; i++) {
-        list.add(new qx.ui.form.ListItem('Option number '+i));
-      }
-      vBox.add(new qx.ui.resizer.Resizer(list));
-      vBox.set({
-        spacing: 10,
-        top: 50,
-        left: 30
-      });
-      vBox.auto();
-      vBox.add(newHBox(), newHBox());
-      vBox.addToDocument();
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/RpcTreeFullControl_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/RpcTreeFullControl_1.html
deleted file mode 100644 (file)
index dbbc46f..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link
-   type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-
-  <div id="demoDescription">
-  <p><strong>Only works together with a RPC backend!</strong></p>
-    <p>
-    Shows a tree which listens for tree events.  This script communicates via
-    JSON-RPC to a backend server.  Each time a new tree node is opened, the
-    children are requested from the server.  See the server-side functions
-    at backend/php/services/qooxdoo/fs.php.
-  </p>
-  </div>
-
-<script type="text/javascript">
-qx.core.Init.getInstance().defineMain(
-    function()
-    {
-        var addChildren = function(parent, children)
-        {
-            var t;
-            var trs;
-            var child;
-
-            for (i = 0; i < children.length; i++)
-            {
-                child = children[i];
-
-                trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().newRow();
-
-                // Here's our indentation and tree-lines
-                trs.addIndent();
-
-                // If not a file or directory, change the icon
-                var bIsDirectory = ((child.mode & 0040000) != 0);
-                var bIsFile = ((child.mode & 0100000) != 0);
-                if (! bIsDirectory && ! bIsFile)
-                {
-                    trs.addIcon("icon/16/places/user-desktop.png",
-                                "icon/16/apps/accessories-dictionary.png");
-                }
-                else
-                {
-                    trs.addIcon();
-                }
-
-                // The label
-                trs.addLabel(child.name);
-
-                // All else should be right justified
-                obj = new qx.ui.basic.HorizontalSpacer;
-                trs.addObject(obj, true);
-
-                // Add the permissions
-                mode = "";
-                mode = ((child.mode & 0001) ? "x" : "-") + mode;
-                mode = ((child.mode & 0002) ? "w" : "-") + mode;
-                mode = ((child.mode & 0004) ? "r" : "-") + mode;
-                mode = ((child.mode & 0010) ? "x" : "-") + mode;
-                mode = ((child.mode & 0020) ? "w" : "-") + mode;
-                mode = ((child.mode & 0040) ? "r" : "-") + mode;
-                mode = ((child.mode & 0100) ? "x" : "-") + mode;
-                mode = ((child.mode & 0200) ? "w" : "-") + mode;
-                mode = ((child.mode & 0400) ? "r" : "-") + mode;
-                obj = new qx.ui.basic.Label(mode);
-                obj.setWidth(80);
-                obj.setStyleProperty("fontFamily", "monospace");
-                trs.addObject(obj, true);
-
-                // Add a file size, date and mode
-                obj = new qx.ui.basic.Label(child.size + "");
-                obj.setWidth(50);
-                obj.setStyleProperty("fontFamily", "monospace");
-                trs.addObject(obj, true);
-
-                var d = new Date();
-                d.setTime(child.mtime * 1000);
-                obj = new qx.ui.basic.Label(d.toString().slice(0,33));
-                obj.setWidth(200);
-                obj.setStyleProperty("fontFamily", "monospace");
-                trs.addObject(obj, true);
-
-                if (bIsDirectory)
-                {
-                    t = new qx.ui.treefullcontrol.TreeFolder(trs);
-                }
-                else
-                {
-                    t = new qx.ui.treefullcontrol.TreeFile(trs);
-                }
-                parent.add(t);
-            }
-        }
-
-        /*
-         * Reset the default of always showing the plus/minus symbol.  The
-         * default is 'false'.  We want to always display it for each folder
-         * (and then stop displaying it if we determine upon open that there
-         * are no contents).
-         */
-        var constructor = qx.OO.classes["qx.ui.treefullcontrol.TreeFolder"];
-        qx.Proto = constructor.prototype;
-        qx.OO.changeProperty({
-              name : "alwaysShowPlusMinusSymbol",
-              type : "boolean",
-              defaultValue : true });
-
-        var rpc = new qx.io.remote.Rpc();
-        rpc.setTimeout(10000);
-        rpc.setUrl("/services/");
-        rpc.setServiceName("qooxdoo.fs");
-        rpc.setCrossDomain(false);
-
-        var mycall = null;
-
-        var trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Root");
-        var t = new qx.ui.treefullcontrol.Tree(trs);
-
-        with(t)
-        {
-            setBackgroundColor(255);
-            setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-            setOverflow("scrollY");
-
-            setHeight(null);
-            setTop(48);
-            setLeft(20);
-            setWidth(700);
-            setBottom(48);
-
-            setHideNode(true);          // hide the root node
-            setUseTreeLines(true);      // display tree lines
-        };
-
-        /*
-         * All subtrees will use this root node's event listeners.  Create an
-         * event listener for an open while empty.
-         */
-        t.addEventListener(
-            "treeOpenWhileEmpty",
-            function(e)
-            {
-                var parent = e.getData();
-                var hierarchy = parent.getHierarchy(new Array());
-
-                parent.debug("Requesting children...");
-
-                // Strip off the root node
-                hierarchy.shift();
-
-                mycall = rpc.callAsync(
-                    function(result, ex, id)
-                    {
-                        mycall = null;
-                        if (ex == null) {
-                            parent.debug("Children obtained.  Rendering...");
-                            addChildren(parent, result);
-                            parent.debug("Rendering complete.");
-                        } else {
-                            alert("Async(" + id + ") exception: " + ex);
-                        }
-                    },
-                    "readDirEntries",
-                    hierarchy,
-                    true);
-            });
-
-        qx.ui.core.ClientDocument.getInstance().add(t);
-
-        var trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Sandbox");
-        var tf = new qx.ui.treefullcontrol.TreeFolder(trs);
-        t.add(tf);
-    });
-/*
- * Local Variables:
- * mode: java
- * End:
- */
-</script>
-
-</body>
-</html>
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Spinner_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Spinner_1.html
deleted file mode 100644 (file)
index bdeb65c..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test for qx.ui.form.Spinner.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-    var s1 = new qx.ui.form.Spinner;
-
-    with(s1)
-    {
-      setLeft(20);
-      setTop(64);
-    };
-
-    d.add(s1);
-
-    d.add( (new qx.ui.basic.Label("100").set({left:20, top:48})) );
-    d.add( (new qx.ui.basic.Label("0").set({left:20, top:90})) );
-
-    var s2 = new qx.ui.form.Spinner;
-
-    with(s2)
-    {
-      setLeft(100);
-      setTop(64);
-      setValue(30);
-      setMin(-30);
-      setMax(30);
-    };
-
-    d.add(s2);
-
-    d.add( (new qx.ui.basic.Label("30").set({left:100, top:48})) );
-    d.add( (new qx.ui.basic.Label("-30").set({left:100, top:90})) );
-
-    var s3 = new qx.ui.form.Spinner;
-
-    with(s3)
-    {
-      setLeft(180);
-      setTop(64);
-      setValue(0);
-      setMin(-3000);
-      setMax(3000);
-      setIncrementAmount(5);
-    };
-
-    d.add(s3);
-
-    d.add( (new qx.ui.basic.Label("3000").set({left:180, top:48})) );
-    d.add( (new qx.ui.basic.Label("-3000").set({left:180, top:90})) );
-
-    /*
-    s3._manager.addEventListener("changeValue", function(e) {
-      this.debug("Value: " + e.getData());
-    });
-    */
-
-    var s4 = new qx.ui.form.Spinner;
-    
-    with(s4)
-    {
-      setLeft(260);
-      setTop(64);
-      setValue(0);
-      setMin(100);
-      setMax(200);
-    };
-
-    d.add(s4);
-
-    d.add( (new qx.ui.basic.Label("200").set({left:260, top:48})) );
-    d.add( (new qx.ui.basic.Label("100").set({left:260, top:90})) );
-
-
-    var s5 = new qx.ui.form.Spinner( -200, null, -100);
-
-    with(s5)
-    {
-      setLeft(340);
-      setTop(64);
-    };
-
-    d.add(s5);
-
-    d.add( (new qx.ui.basic.Label("-100").set({left:340, top:48})) );
-    d.add( (new qx.ui.basic.Label("-200").set({left:340, top:90})) );
-
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/SplitPane_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/SplitPane_1.html
deleted file mode 100644 (file)
index fbeed10..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test for normal width Splitpane, no holding knobs, live resize enabled.</p>
-  </div>
-
-  <script type="text/javascript">
-
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var frame = new qx.ui.layout.CanvasLayout;
-    frame.setLocation(20, 48);
-    frame.setBottom(48);
-    frame.setRight(300);
-    frame.setBackgroundColor("#134275");
-    frame.setPadding(20);
-    frame.addToDocument();
-
-    // the splitpane itself
-    var splitpane = new qx.ui.splitpane.HorizontalSplitPane("1*", "2*");
-    splitpane.setEdge(0);
-    splitpane.setLiveResize(true);
-    frame.add(splitpane);
-
-    // left Widget
-    var leftWidget = new qx.ui.form.TextArea("LeftWidget");
-    leftWidget.setWrap(true);
-    leftWidget.setBackgroundColor(new qx.renderer.color.Color("white"));
-    leftWidget.setWidth("100%");
-    leftWidget.setHeight("100%");
-
-    // rightWidget (another splitpane)
-    var rightWidget = new qx.ui.splitpane.VerticalSplitPane;
-    rightWidget.setHeight("100%");
-    rightWidget.setWidth("100%");
-    rightWidget.setLiveResize(true);
-
-    // add widgets to splitpane
-    splitpane.addLeft(leftWidget);
-    splitpane.addRight(rightWidget);
-
-
-
-    // right top widget
-    var topWidget = new qx.ui.form.TextArea("Right Top Widget");
-    topWidget.setBackgroundColor(new qx.renderer.color.Color("white"));
-    topWidget.setHeight("100%");
-    topWidget.setWidth("100%");
-
-    // right bottom widget
-    var bottomWidget = new qx.ui.embed.Iframe("http://www.qooxdoo.org");
-    bottomWidget.setHeight("100%");
-    bottomWidget.setWidth("100%");
-
-    // add widgets to right splitpane
-    rightWidget.addTop(topWidget);
-    rightWidget.addBottom(bottomWidget);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/SplitPane_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/SplitPane_2.html
deleted file mode 100644 (file)
index 5041e62..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test for extra slim Splitpane, with holding knobs.</p>
-  </div>
-
-  <script type="text/javascript">
-
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var frame = new qx.ui.layout.CanvasLayout;
-    frame.setLocation(20, 48);
-    frame.setBottom(48);
-    frame.setRight(300);
-    frame.setBackgroundColor("#134275");
-    frame.setPadding(20);
-    frame.addToDocument();
-
-    // the splitpane itself
-    var splitpane = new qx.ui.splitpane.HorizontalSplitPane("1*", "2*");
-    splitpane.setEdge(0);
-    splitpane.setSplitterSize(1);
-    splitpane.setShowKnob(true);
-    frame.add(splitpane);
-
-    // left Widget
-    var leftWidget = new qx.ui.form.TextArea("LeftWidget");
-    leftWidget.setWrap(true);
-    leftWidget.setBackgroundColor(new qx.renderer.color.Color("white"));
-    leftWidget.setWidth("100%");
-    leftWidget.setHeight("100%");
-
-    // rightWidget (another splitpane)
-    var rightWidget = new qx.ui.splitpane.VerticalSplitPane;
-    rightWidget.setHeight("100%");
-    rightWidget.setWidth("100%");
-    rightWidget.setSplitterSize(1);
-    rightWidget.setShowKnob(true);
-
-
-    // add widgets to splitpane
-    splitpane.addLeft(leftWidget);
-    splitpane.addRight(rightWidget);
-
-
-
-    // right top widget
-    var topWidget = new qx.ui.form.TextArea("Right Top Widget");
-    topWidget.setBackgroundColor(new qx.renderer.color.Color("white"));
-    topWidget.setHeight("100%");
-    topWidget.setWidth("100%");
-
-    // right bottom widget
-    var bottomWidget = new qx.ui.embed.Iframe("http://www.qooxdoo.org");
-    bottomWidget.setHeight("100%");
-    bottomWidget.setWidth("100%");
-
-    // add widgets to right splitpane
-    rightWidget.addTop(topWidget);
-    rightWidget.addBottom(bottomWidget);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TabView_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TabView_1.html
deleted file mode 100644 (file)
index caaf10d..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Tabbar implementation.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var tf1 = new qx.ui.pageview.tabview.TabView;
-    tf1.set({ left: 20, top: 48, right: 335, bottom: 48 });
-
-    var t1_1 = new qx.ui.pageview.tabview.Button("Edit");
-    var t1_2 = new qx.ui.pageview.tabview.Button("Find");
-    var t1_3 = new qx.ui.pageview.tabview.Button("Backup");
-
-
-    t1_2.setChecked(true);
-
-    tf1.getBar().add(t1_1, t1_2, t1_3);
-
-    var p1_1 = new qx.ui.pageview.tabview.Page(t1_1);
-    var p1_2 = new qx.ui.pageview.tabview.Page(t1_2);
-    var p1_3 = new qx.ui.pageview.tabview.Page(t1_3);
-
-    tf1.getPane().add(p1_1, p1_2, p1_3);
-
-    var f2 = new qx.ui.form.TextField("Find Anywhere");
-    var f3 = new qx.ui.form.TextField("Backup Input");
-
-    p1_2.add(f2);
-    p1_3.add(f3);
-
-    var c1 = new qx.ui.form.CheckBox("Place bar on top");
-    var c2 = new qx.ui.form.CheckBox("Align tabs to left");
-
-    c1.setTop(0);
-    c1.setChecked(true);
-
-    c2.setTop(20);
-    c2.setChecked(true);
-
-    p1_1.add(c1, c2);
-
-    c1.addEventListener("changeChecked", function(e) {
-      tf1.setPlaceBarOnTop(e.getData());
-    });
-
-    c2.addEventListener("changeChecked", function(e) {
-      tf1.setAlignTabsToLeft(e.getData());
-    });
-
-
-
-
-    var tf2 = new qx.ui.pageview.tabview.TabView;
-
-    tf2.set({ left: 0, top: 50, right: 0, bottom: 0 });
-
-
-
-    var t2_1 = new qx.ui.pageview.tabview.Button("Search for Files", "icon/16/actions/document-open.png");
-    var t2_2 = new qx.ui.pageview.tabview.Button("Search the Web", "icon/16/categories/applications-internet.png");
-    var t2_3 = new qx.ui.pageview.tabview.Button("Search for Text", "icon/16/categories/applications.png");
-    var t2_4 = new qx.ui.pageview.tabview.Button("Search for Persons", "icon/16/apps/accessories-archiver.png");
-    var t2_5 = new qx.ui.pageview.tabview.Button("Search in Mails", "icon/16/apps/internet-email-client.png");
-
-    t2_1.setChecked(true);
-
-    tf2.getBar().add(t2_1, t2_2, t2_3, t2_4, t2_5);
-
-    var p2_1 = new qx.ui.pageview.tabview.Page(t2_1);
-    var p2_2 = new qx.ui.pageview.tabview.Page(t2_2);
-    var p2_3 = new qx.ui.pageview.tabview.Page(t2_3);
-    var p2_4 = new qx.ui.pageview.tabview.Page(t2_4);
-    var p2_5 = new qx.ui.pageview.tabview.Page(t2_5);
-
-    tf2.getPane().add(p2_1, p2_2, p2_3, p2_4, p2_5);
-
-    var t2_1 = new qx.ui.form.TextField("Files...");
-    var t2_2 = new qx.ui.form.TextField("Web...");
-    var t2_3 = new qx.ui.form.TextField("Printers...");
-    var t2_4 = new qx.ui.form.TextField("Persons...");
-    var t2_5 = new qx.ui.form.TextField("Mails...");
-
-    t2_1.set({ top: 2, left: 0, width: 140 });
-    t2_2.set({ top: 2, left: 0, width: 140 });
-    t2_3.set({ top: 2, left: 0, width: 140 });
-    t2_4.set({ top: 2, left: 0, width: 140 });
-    t2_5.set({ top: 2, left: 0, width: 140 });
-
-    p2_1.add(t2_1);
-    p2_2.add(t2_2);
-    p2_3.add(t2_3);
-    p2_4.add(t2_4);
-    p2_5.add(t2_5);
-
-    var b2_1 = new qx.ui.form.Button("Search", "icon/16/actions/edit-find.png");
-    var b2_2 = new qx.ui.form.Button("Search", "icon/16/actions/edit-find.png");
-    var b2_3 = new qx.ui.form.Button("Search", "icon/16/actions/edit-find.png");
-    var b2_4 = new qx.ui.form.Button("Search", "icon/16/actions/edit-find.png");
-    var b2_5 = new qx.ui.form.Button("Search", "icon/16/actions/edit-find.png");
-
-    b2_1.set({ top: 0, left: 150 });
-    b2_2.set({ top: 0, left: 150 });
-    b2_3.set({ top: 0, left: 150 });
-    b2_4.set({ top: 0, left: 150 });
-    b2_5.set({ top: 0, left: 150 });
-
-    p2_1.add(b2_1);
-    p2_2.add(b2_2);
-    p2_3.add(b2_3);
-    p2_4.add(b2_4);
-    p2_5.add(b2_5);
-
-    function dosearch(e) {
-      alert("Searching...");
-    };
-
-    b2_1.addEventListener("click", dosearch);
-    b2_2.addEventListener("click", dosearch);
-    b2_3.addEventListener("click", dosearch);
-    b2_4.addEventListener("click", dosearch);
-    b2_5.addEventListener("click", dosearch);
-
-
-
-
-    p1_2.add(tf2);
-
-
-
-
-
-
-    d.add(tf1);
-
-
-    t1_1.setEnabled(false);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TabView_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TabView_2.html
deleted file mode 100644 (file)
index 2e1fea6..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-    <script type="text/javascript" src="../../script/sample.js"></script>
-  </head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Tabbar implementation.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var tf1 = new qx.ui.pageview.tabview.TabView;
-    tf1.set({ left: 20, top: 48, right: 335, bottom: 48 });
-
-    var t1_1 = new qx.ui.pageview.tabview.Button("Edit");
-    var t1_2 = new qx.ui.pageview.tabview.Button("Find");
-    var t1_3 = new qx.ui.pageview.tabview.Button("Backup");
-    var t1_4 = new qx.ui.pageview.tabview.Button("System");
-    var t1_5 = new qx.ui.pageview.tabview.Button("Tools");
-    var t1_6 = new qx.ui.pageview.tabview.Button("Infos");
-
-    // set tab 1 active
-    t1_1.setChecked(true);    
-    
-    // add close images to tab
-    t1_1.setShowCloseButton(true);
-    t1_2.setShowCloseButton(true);
-    t1_3.setShowCloseButton(true);
-    t1_4.setShowCloseButton(true);
-    t1_5.setShowCloseButton(true);
-    t1_6.setShowCloseButton(true);
-
-    
-    // modify the default images
-    t1_2.setCloseButtonImage("icon/16/status/dialog-error.png");
-    t1_4.setCloseButtonImage("icon/16/actions/dialog-ok.png");
-    // add an eventlistener on the buttons
-    t1_1.addEventListener("closetab", _ontabclose);
-    t1_2.addEventListener("closetab", _ontabclose);
-    t1_3.addEventListener("closetab", _ontabclose);
-    t1_4.addEventListener("closetab", _ontabclose);
-    t1_5.addEventListener("closetab", _ontabclose);
-    t1_6.addEventListener("closetab", _ontabclose);
-    
-    
-    
-    // this handler gets called if a tab-button fires a "closetab" event
-    function _ontabclose(e){
-      var btn = e.getData();
-      
-      var pagesArray = tf1.getPane().getChildren();
-      var pageSearched = null;
-      
-      for(var i = 0, l = pagesArray.length; i < l; i++){
-        var tmpPage = pagesArray[i];
-        if(tmpPage.getButton() === btn){
-          pageSearched = tmpPage;
-        }
-      }
-      if(pageSearched){
-
-        var itemsList = tf1.getBar().getChildren();
-        var lengthList = itemsList.length;    
-        var btnIndex = itemsList.indexOf(btn);
-      
-  // never remove the last tab
-        if( lengthList > 1 ) { 
-
-          // Select another tab
-          if (btnIndex < lengthList-1 ){
-            itemsList[btnIndex+1].setChecked(true);
-          }
-          else {
-            itemsList[btnIndex-1].setChecked(true);
-          }         
-          
-          btn.getManager().remove(btn);
-          tf1.getBar().remove(btn);
-          
-          tf1.getPane().remove(pageSearched);
-          
-          pageSearched.dispose();
-          btn.dispose();
-        } else {
-    alert("Last Tab won't be removed!");
-  }
-      }
-     
-      e.stopPropagation();
-    }
-    
-    tf1.getBar().add(t1_1, t1_2, t1_3, t1_4, t1_5, t1_6);
-
-    var p1_1 = new qx.ui.pageview.tabview.Page(t1_1);
-    var p1_2 = new qx.ui.pageview.tabview.Page(t1_2);
-    var p1_3 = new qx.ui.pageview.tabview.Page(t1_3);
-    var p1_4 = new qx.ui.pageview.tabview.Page(t1_4);
-    var p1_5 = new qx.ui.pageview.tabview.Page(t1_5);
-    var p1_6 = new qx.ui.pageview.tabview.Page(t1_6);
-
-    p1_1.setBackgroundColor("green");
-    p1_2.setBackgroundColor("red");
-    p1_3.setBackgroundColor("blue");
-    p1_4.setBackgroundColor("black");
-    p1_5.setBackgroundColor("yellow");
-    p1_6.setBackgroundColor("orange");
-    
-    tf1.getPane().add(p1_1, p1_2, p1_3, p1_4, p1_5, p1_6);
-
-    d.add(tf1);
-    
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Table_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Table_1.html
deleted file mode 100644 (file)
index 3accffc..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>A table with virtual scrolling, model-view-controller, renderers,
-      editing, sorting, column resizing, column reordering,
-      column hiding.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var main = new qx.ui.layout.VerticalBoxLayout();
-    main.set({ left:10, top:30, right:300, bottom:30, spacing:5 });
-
-    var nextId = 0;
-    var createRandomRows = function(rowCount) {
-      var rowData = [];
-      var now = new Date().getTime();
-      var dateRange = 400 * 24 * 60 * 60 * 1000; // 400 days
-      for (var row = 0; row < rowCount; row++) {
-        var date = new Date(now + Math.random() * dateRange - dateRange / 2);
-        rowData.push([ nextId++, Math.random() * 10000, date, (Math.random() > 0.5) ]);
-      }
-      return rowData;
-    };
-
-    // Create the initial data
-    var rowData = createRandomRows(50);
-
-    // Add some encoding relevant stuff
-    rowData[15][1] = "<b>A html &amp; entities escaping test</b>";
-
-    // table model
-    var tableModel = new qx.ui.table.SimpleTableModel();
-    tableModel.setColumns([ "ID", "A number", "A date", "Boolean test" ]);
-    tableModel.setData(rowData);
-    tableModel.setColumnEditable(1, true);
-    tableModel.setColumnEditable(2, true);
-
-    // table
-    var table = new qx.ui.table.Table(tableModel);
-    with (table) {
-      set({ width:"100%", height:"1*", border:qx.renderer.border.BorderPresets.getInstance().thinInset });
-      getSelectionModel().setSelectionMode(qx.ui.table.SelectionModel.MULTIPLE_INTERVAL_SELECTION);
-      getTableColumnModel().setDataCellRenderer(3, new qx.ui.table.BooleanDataCellRenderer());
-      setColumnWidth(0, 80);
-      setColumnWidth(1, 200);
-      setColumnWidth(2, 150);
-    };
-    main.add(table);
-
-    var buttonBar = new qx.ui.layout.HorizontalBoxLayout();
-    buttonBar.set({ width:"100%", height:"auto", spacing:5 });
-    main.add(buttonBar);
-
-    var button = new qx.ui.form.Button("Change row with ID 10");
-    button.addEventListener("execute", function(evt) {
-      var rowData = createRandomRows(1);
-      for (var i = 1; i < tableModel.getColumnCount(); i++) {
-        tableModel.setValue(i, 10, rowData[0][i]);
-      }
-      this.info("Row 10 changed");
-    });
-    buttonBar.add(button);
-
-    var button = new qx.ui.form.Button("Add 10 rows");
-    button.addEventListener("execute", function(evt) {
-      var rowData = createRandomRows(10);
-      tableModel.addRows(rowData);
-      this.info("10 rows added");
-    });
-    buttonBar.add(button);
-
-    var button = new qx.ui.form.Button("Remove 5 rows");
-    button.addEventListener("execute", function(evt) {
-      var rowCount = tableModel.getRowCount();
-      tableModel.removeRows(rowCount-5, 5);
-      this.info("5 rows removed");
-    });
-    buttonBar.add(button);
-
-    var checkBox = new qx.ui.form.CheckBox("keepFirstVisibleRowComplete", null, null, table.getKeepFirstVisibleRowComplete());
-    checkBox.setToolTip(new qx.ui.popup.ToolTip("Whether the the first visible row should be rendered completely when scrolling."));
-    checkBox.addEventListener("changeChecked", function(evt) {
-      table.setKeepFirstVisibleRowComplete(checkBox.getChecked());
-      this.info("Set keepFirstVisibleRowComplete to: " + checkBox.getChecked());
-    });
-    buttonBar.add(checkBox);
-
-    d.add(main);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Table_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Table_2.html
deleted file mode 100644 (file)
index 372648c..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>A table with fixed columns.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    // table model
-    var tableModel = new qx.ui.table.SimpleTableModel();
-    tableModel.setColumns([ "ID", "A number", "A date", "Boolean test" ]);
-    var rowData = [];
-    var now = new Date().getTime();
-    var dateRange = 400 * 24 * 60 * 60 * 1000; // 400 days
-    for (var row = 0; row < 100; row++) {
-      var date = new Date(now + Math.random() * dateRange - dateRange / 2);
-      rowData.push([ row, Math.random() * 10000, date, (Math.random() > 0.5) ]);
-    }
-    tableModel.setData(rowData);
-    tableModel.setColumnEditable(1, true);
-    tableModel.setColumnEditable(2, true);
-
-    // table
-    var table = new qx.ui.table.Table(tableModel);
-    with (table) {
-      set({ left:10, top:30, width:350, height:300, border:qx.renderer.border.BorderPresets.getInstance().thinInset });
-      setMetaColumnCounts([1, -1]);
-      getSelectionModel().setSelectionMode(qx.ui.table.SelectionModel.MULTIPLE_INTERVAL_SELECTION);
-      getTableColumnModel().setDataCellRenderer(3, new qx.ui.table.BooleanDataCellRenderer());
-    };
-
-    d.add(table);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ToolBar_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ToolBar_1.html
deleted file mode 100644 (file)
index a44c023..0000000
+++ /dev/null
@@ -1,252 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Introduce all classes needed for creating real qx.ui.toolbar.ToolBars. This includes qx.ui.toolbar.ToolBars,
-    qx.ui.toolbar.ToolBarParts, qx.ui.toolbar.Separator and qx.ui.toolbar.ToolBarButtons.</p>
-
-    <p>The qx.ui.toolbar.ToolBarButtons and QxRadioButtons in this example are beautifully
-    decoupled by "global" qx.event.type.DataEvent.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-
-      var tb = new qx.ui.toolbar.ToolBar;
-      with(tb)
-      {
-        setTop(48);
-        setLeft(20);
-        setRight(335);
-        
-        // setWidth("auto");
-      };
-
-      var btns1 = [
-        { type : "button", icon : "document-new", text : "New" },
-        { type : "separator" },
-        { type : "button", icon : "edit-copy", text : "Copy" },
-        { type : "button", icon : "edit-cut", text : "Cut" },
-        { type : "button", icon : "edit-paste", text : "Paste" }
-      ];
-
-      var btns2 = [
-        { type : "button", icon : "go-up", text : "Upload" },
-        { type : "button", icon : "go-down", text : "Download" }
-      ];
-
-      var btns3 = [
-        { type : "button", icon : "help-about", text : "Help" }
-      ];
-
-      var bars = [ btns1, btns2, btns3 ];
-
-      function changeLayout(e) {
-        this.setShow(e.getData());
-      };
-      
-      function changeSize(e) {
-        var v = e.getData();
-        var o = v == 22 ? 32 : 22;
-        
-        this.setIcon(this.getIcon().replace(o, v));
-      };      
-      
-      function buttonExecute() { this.debug("Executed: " + this.getLabel()); };
-
-      var useParts = true;
-
-
-      for (var j=0; j<bars.length; j++)
-      {
-        var btns = bars[j];
-
-        if (useParts) {
-          var tbp = new qx.ui.toolbar.Part;
-        };
-
-        for (var i=0; i<btns.length; i++)
-        {
-          var btn = btns[i];
-
-          switch(btn.type)
-          {
-            case "separator":
-              var o = new qx.ui.toolbar.Separator;
-              break;
-
-            case "button":
-              var o = new qx.ui.toolbar.Button(btn.text, "icon/22/actions/" + btn.icon + ".png");
-
-              // beautiful decoupling: toolbar buttons don't know about radio boxes
-
-              d.addEventListener("changeLayout", changeLayout, o);
-              d.addEventListener("changeSize", changeSize, o);
-              
-              o.addEventListener("execute", buttonExecute);
-              break;
-          };
-
-          if (useParts)
-          {
-            tbp.add(o);
-          }
-          else
-          {
-            tb.add(o);
-          };
-        };
-
-        if (useParts) {
-          tb.add(tbp);
-        };
-      };
-
-      d.add(tb);
-
-
-
-
-
-
-      var rd1 = new qx.ui.form.RadioButton("Show Icons and Label", "both");
-      var rd2 = new qx.ui.form.RadioButton("Show Icons", "icon");
-      var rd3 = new qx.ui.form.RadioButton("Show Label", "label");
-
-      with(rd1)
-      {
-        setTop(140);
-        setLeft(20);
-        setChecked(true);
-      };
-
-      with(rd2)
-      {
-        setTop(160);
-        setLeft(20);
-      };
-
-      with(rd3)
-      {
-        setTop(180);
-        setLeft(20);
-      };
-
-
-      var rbm = new qx.manager.selection.RadioManager();
-
-      rbm.add(rd1);
-      rbm.add(rd2);
-      rbm.add(rd3);
-
-
-      // beautiful decoupling: radio boxes don't know about toolbar buttons
-      rbm.addEventListener("changeSelected", function(e) {
-        d.dispatchEvent( new qx.event.type.DataEvent("changeLayout", e.getData().getValue() ) );
-      });
-
-      d.add(rd1, rd2, rd3);
-
-
-
-      // Alignment
-      var ra1 = new qx.ui.form.RadioButton("Left Aligned", "left");
-      var ra2 = new qx.ui.form.RadioButton("Centered", "center");
-      var ra3 = new qx.ui.form.RadioButton("Right Aligned", "right");
-
-      with(ra1)
-      {
-        setTop(140);
-        setLeft(220);
-        setChecked(true);
-      };
-
-      with(ra2)
-      {
-        setTop(160);
-        setLeft(220);
-      };
-
-      with(ra3)
-      {
-        setTop(180);
-        setLeft(220);
-      };
-
-
-      var ram = new qx.manager.selection.RadioManager();
-
-      ram.add(ra1);
-      ram.add(ra2);
-      ram.add(ra3);
-
-      d.add(ra1, ra2, ra3);
-
-      ram.addEventListener("changeSelected", function(e) {
-        tb.setHorizontalChildrenAlign(e.getData().getValue());
-      });
-
-
-
-
-      // Icon Sizes
-      var b3 = new qx.ui.form.Button("Icons: 22 Pixel", "icon/16/actions/format-color.png");
-
-      with(b3)
-      {
-        setTop(140);
-        setLeft(420);
-        setHorizontalAlign("center");
-      };
-
-      b3.addEventListener("execute", function(e) {
-        d.dispatchEvent(new qx.event.type.DataEvent("changeSize", 22));
-      });
-
-      var b4 = new qx.ui.form.Button("Icons: 32 Pixel", "icon/16/actions/format-color.png");
-
-      with(b4)
-      {
-        setTop(170);
-        setLeft(420);
-        setHorizontalAlign("center");
-      };
-
-      b4.addEventListener("execute", function(e) {
-        d.dispatchEvent(new qx.event.type.DataEvent("changeSize", 32));
-      });
-
-      d.add(b3, b4);
-      
-      
-      
-      
-
-      // Icon & Color Themes
-      qx.manager.object.ImageManager.getInstance().createThemeList(d, 20, 248);
-      qx.manager.object.ColorManager.getInstance().createThemeList(d, 220, 248);
-       
-
-     
-      /*
-      Test for cloning support
-      
-      tb2 = tb.clone(true);
-      tb2.setTop(400);
-      */
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ToolBar_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ToolBar_2.html
deleted file mode 100644 (file)
index 9e060eb..0000000
+++ /dev/null
@@ -1,269 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Introducing qx.ui.toolbar.CheckBox and qx.ui.toolbar.RadioButton.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-
-      function changeLayout(e) {
-        this.setShow(e.getData());
-      };
-
-      function changeSize(e) {
-        var v = e.getData();
-        var o = v == 22 ? 32 : 22;
-
-        this.setIcon(this.getIcon().replace(o, v));
-      };
-
-      var tb = new qx.ui.toolbar.ToolBar;
-      with(tb)
-      {
-        setTop(48);
-        setLeft(20);
-        setRight(335);
-        setParent(d);
-      };
-
-
-      var tbp1 = new qx.ui.toolbar.Part;
-      tb.add(tbp1);
-
-      var tbp2 = new qx.ui.toolbar.Part;
-      tb.add(tbp2);
-
-      var tbp3 = new qx.ui.toolbar.Part;
-      tb.add(tbp3);
-
-      var tbp4 = new qx.ui.toolbar.Part;
-      tb.add(tbp4);
-
-
-
-      // Default
-      var tbd1 = new qx.ui.toolbar.Button("Default", "icon/22/actions/document-new.png");
-      tbp1.add(tbd1);
-      d.addEventListener("changeLayout", changeLayout, tbd1);
-      d.addEventListener("changeSize", changeSize, tbd1);
-
-      tbd1._marker = true;
-
-      tbp1.setDisplay(false);
-      tbd1.setDisplay(false);
-
-
-
-      // Checkbox
-      var tbc1 = new qx.ui.toolbar.CheckBox("Check", "icon/22/apps/preferences.png", true);
-      tbp2.add(tbc1);
-      d.addEventListener("changeLayout", changeLayout, tbc1);
-      d.addEventListener("changeSize", changeSize, tbc1);
-
-
-
-      // Radio
-      var tbr1 = new qx.ui.toolbar.RadioButton("Radio1", "icon/22/actions/system-run.png");
-      tbp3.add(tbr1);
-      d.addEventListener("changeLayout", changeLayout, tbr1);
-      d.addEventListener("changeSize", changeSize, tbr1);
-
-      var tbr2 = new qx.ui.toolbar.RadioButton("Radio2", "icon/22/actions/view-pane-detailed.png", true);
-      tbp3.add(tbr2);
-      d.addEventListener("changeLayout", changeLayout, tbr2);
-      d.addEventListener("changeSize", changeSize, tbr2);
-
-      var tbr3 = new qx.ui.toolbar.RadioButton("Radio3", "icon/22/actions/view-pane-icon.png");
-      tbp3.add(tbr3);
-      d.addEventListener("changeLayout", changeLayout, tbr3);
-      d.addEventListener("changeSize", changeSize, tbr3);
-
-      // Radio Mananger
-      var tbr_manager = new qx.manager.selection.RadioManager(null, [tbr1, tbr2, tbr3]);
-
-
-
-
-      // Radio
-      var tbs1 = new qx.ui.toolbar.RadioButton("Radio1", "icon/22/actions/view-pane-tree.png");
-      tbp4.add(tbs1);
-      tbs1.setDisableUncheck(true);
-      d.addEventListener("changeLayout", changeLayout, tbs1);
-      d.addEventListener("changeSize", changeSize, tbs1);
-
-      var tbs2 = new qx.ui.toolbar.RadioButton("Radio2", "icon/22/actions/view-pane-detailed.png", true);
-      tbp4.add(tbs2);
-      tbs2.setDisableUncheck(true);
-      d.addEventListener("changeLayout", changeLayout, tbs2);
-      d.addEventListener("changeSize", changeSize, tbs2);
-
-      var tbs3 = new qx.ui.toolbar.RadioButton("Radio3", "icon/22/actions/view-pane-icon.png");
-      tbp4.add(tbs3);
-      tbs3.setDisableUncheck(true);
-      d.addEventListener("changeLayout", changeLayout, tbs3);
-      d.addEventListener("changeSize", changeSize, tbs3);
-
-      // Radio Mananger
-      var tbs_manager = new qx.manager.selection.RadioManager(null, [tbs1, tbs2, tbs3]);
-
-
-
-
-      var rd1 = new qx.ui.form.RadioButton("Show Icons and Label", "both");
-      var rd2 = new qx.ui.form.RadioButton("Show Icons", "icon");
-      var rd3 = new qx.ui.form.RadioButton("Show Label", "label");
-
-      with(rd1)
-      {
-        setTop(140);
-        setLeft(20);
-      };
-
-      with(rd2)
-      {
-        setTop(160);
-        setLeft(20);
-      };
-
-      with(rd3)
-      {
-        setTop(180);
-        setLeft(20);
-      };
-
-
-      var rbm = new qx.manager.selection.RadioManager();
-
-      rbm.add(rd1);
-      rbm.add(rd2);
-      rbm.add(rd3);
-
-      // beautiful decoupling: radio boxes don't know about toolbar buttons
-      rbm.addEventListener("changeSelected", function(e)
-      {
-        d.dispatchEvent( new qx.event.type.DataEvent("changeLayout", e.getData().getValue() ) );
-      });
-
-      d.add(rd1, rd2, rd3);
-
-
-      // apply default layout
-      rd1.setChecked(true);
-
-
-
-
-
-      // Alignment
-      var ra1 = new qx.ui.form.RadioButton("Left Aligned", "left");
-      var ra2 = new qx.ui.form.RadioButton("Centered", "center");
-      var ra3 = new qx.ui.form.RadioButton("Right Aligned", "right");
-
-      with(ra1)
-      {
-        setTop(140);
-        setLeft(220);
-        setChecked(true);
-      };
-
-      with(ra2)
-      {
-        setTop(160);
-        setLeft(220);
-      };
-
-      with(ra3)
-      {
-        setTop(180);
-        setLeft(220);
-      };
-
-
-      var ram = new qx.manager.selection.RadioManager();
-
-      ram.add(ra1);
-      ram.add(ra2);
-      ram.add(ra3);
-
-      d.add(ra1, ra2, ra3);
-
-      ram.addEventListener("changeSelected", function(e) {
-        tb.setHorizontalChildrenAlign(e.getData().getValue());
-      });
-
-
-
-
-      // Icon Sizes
-      var b3 = new qx.ui.form.Button("Icons: 22 Pixel", "icon/16/actions/format-color.png");
-
-      with(b3)
-      {
-        setTop(140);
-        setLeft(420);
-        setHorizontalAlign("center");
-      };
-
-      b3.addEventListener("execute", function(e) {
-        d.dispatchEvent(new qx.event.type.DataEvent("changeSize", 22));
-      });
-
-      var b4 = new qx.ui.form.Button("Icons: 32 Pixel", "icon/16/actions/format-color.png");
-
-      with(b4)
-      {
-        setTop(170);
-        setLeft(420);
-        setHorizontalAlign("center");
-      };
-
-      b4.addEventListener("execute", function(e) {
-        d.dispatchEvent(new qx.event.type.DataEvent("changeSize", 32));
-      });
-
-      d.add(b3, b4);
-
-
-
-
-
-
-      var chkShowBtn1 = new qx.ui.form.CheckBox("Show First Button");
-
-      chkShowBtn1.setLocation(20, 500);
-      chkShowBtn1.addEventListener("changeChecked", function(e) {
-        tbd1.setDisplay(e.getData());
-      });
-
-      var chkShowPart1 = new qx.ui.form.CheckBox("Show First Part");
-
-      chkShowPart1.setLocation(220, 500);
-      chkShowPart1.addEventListener("changeChecked", function(e) {
-        tbp1.setDisplay(e.getData());
-      });
-
-      d.add(chkShowBtn1, chkShowPart1);
-
-
-
-      // Icon & Color Themes
-      qx.manager.object.ImageManager.getInstance().createThemeList(d, 20, 248);
-      qx.manager.object.ColorManager.getInstance().createThemeList(d, 220, 248);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ToolBar_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ToolBar_3.html
deleted file mode 100644 (file)
index 2cd007f..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Again a nice example which shows how to use qx.ui.toolbar.ToolBar as a menubar system.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-      
-      var c1 = new qx.client.Command();
-      c1.addEventListener("execute", function(e) {
-        this.debug("Execute: " + e.getData().getLabel());
-      });
-      
-      
-      
-
-      var m1 = new qx.ui.menu.Menu;
-      
-      var mb1_01 = new qx.ui.menu.Button("New", "icon/16/actions/document-new.png", c1);
-      var mb1_02 = new qx.ui.menu.Button("Open", "icon/16/actions/document-open.png", c1);
-      var mb1_03 = new qx.ui.menu.Button("Save", "icon/16/actions/document-save.png", c1);
-      var mb1_04 = new qx.ui.menu.Button("Save as", "icon/16/actions/document-save-as.png", c1);
-      var mb1_05 = new qx.ui.menu.Button("Close", "icon/16/actions/document-close.png", c1);
-      var mb1_06 = new qx.ui.menu.Button("Restore last saved", null, c1);
-      
-      m1.add(mb1_01, mb1_02, mb1_03, mb1_04, mb1_05, mb1_06);
-
-
-      var m2 = new qx.ui.menu.Menu;
-
-      var mb2_01 = new qx.ui.menu.Button("Undo", null, c1);
-      var mb2_02 = new qx.ui.menu.Button("Redo", null, c1);
-      var mb2_b1 = new qx.ui.menu.Separator();
-      var mb2_03 = new qx.ui.menu.Button("Cut", "icon/16/actions/edit-cut.png", c1);
-      var mb2_04 = new qx.ui.menu.Button("Copy", "icon/16/actions/edit-copy.png", c1);
-      var mb2_05 = new qx.ui.menu.Button("Paste", "icon/16/actions/edit-paste.png", c1);
-      var mb2_06 = new qx.ui.menu.Button("Delete", "icon/16/actions/edit-delete.png", c1);
-      var mb2_b2 = new qx.ui.menu.Separator();
-      var mb2_07 = new qx.ui.menu.Button("Select All", null, c1);
-      var mb2_08 = new qx.ui.menu.Button("Find", null, c1);
-      var mb2_09 = new qx.ui.menu.Button("Find Again", null, c1);
-      
-      
-      
-
-      mb2_05.setEnabled(false);
-      mb2_06.setEnabled(false);
-      mb2_09.setEnabled(false);
-      
-      m2.add(mb2_01, mb2_02, mb2_b1, mb2_03, mb2_04, mb2_05, mb2_06, mb2_b2, mb2_07, mb2_08, mb2_09);
-
-
-      var m3 = new qx.ui.menu.Menu;
-      var m3_suba = new qx.ui.menu.Menu;
-      var m3_subb = new qx.ui.menu.Menu;
-      var m3_subc = new qx.ui.menu.Menu;
-      var m3_subd = new qx.ui.menu.Menu;
-
-      var mb3_01 = new qx.ui.menu.CheckBox("File List", c1, false);
-      var mb3_02 = new qx.ui.menu.CheckBox("Syntax Highlighting", c1, true);
-      var mb3_03 = new qx.ui.menu.CheckBox("Statusbar", c1, true);
-      var mb3_b1 = new qx.ui.menu.Separator();
-      var mb3_04 = new qx.ui.menu.Button("Printer Font", null, null, m3_suba);
-      var mb3_05 = new qx.ui.menu.Button("Editor Font", null, null, m3_subb);
-      var mb3_06 = new qx.ui.menu.Button("Export Font", null, null, m3_subc);
-      var mb3_b2 = new qx.ui.menu.Separator();
-      var mb3_07 = new qx.ui.menu.Button("Advanced", null, null, m3_subd);
-      
-      m3.add(mb3_01, mb3_02, mb3_03, mb3_b1, mb3_04, mb3_05, mb3_06, mb3_b2, mb3_07);
-      
-      var mb3_suba_01 = new qx.ui.menu.Button("Tahoma, 11pt", null, c1);
-      var mb3_suba_02 = new qx.ui.menu.Button("Tahoma, 12pt", null, c1);
-      var mb3_suba_03 = new qx.ui.menu.Button("Tahoma, 13pt", null, c1);
-      var mb3_suba_04 = new qx.ui.menu.Button("Tahoma, 14pt", null, c1);
-      var mb3_suba_05 = new qx.ui.menu.Button("Tahoma, 15pt", null, c1);
-
-      m3_suba.add(mb3_suba_01, mb3_suba_02, mb3_suba_03, mb3_suba_04, mb3_suba_05);      
-      
-      var mb3_subb_01 = new qx.ui.menu.Button("Verdana, 11pt", null, c1);
-      var mb3_subb_02 = new qx.ui.menu.Button("Verdana, 12pt", null, c1);
-      var mb3_subb_03 = new qx.ui.menu.Button("Verdana, 13pt", null, c1);
-      var mb3_subb_04 = new qx.ui.menu.Button("Verdana, 14pt", null, c1);
-      var mb3_subb_05 = new qx.ui.menu.Button("Verdana, 15pt", null, c1);
-
-      m3_subb.add(mb3_subb_01, mb3_subb_02, mb3_subb_03, mb3_subb_04, mb3_subb_05);      
-
-      var mb3_subc_01 = new qx.ui.menu.Button("Courier, 11pt", null, c1);
-      var mb3_subc_02 = new qx.ui.menu.Button("Courier, 12pt", null, c1);
-      var mb3_subc_03 = new qx.ui.menu.Button("Courier, 13pt", null, c1);
-      var mb3_subc_04 = new qx.ui.menu.Button("Courier, 14pt", null, c1);
-      var mb3_subc_05 = new qx.ui.menu.Button("Courier, 15pt", null, c1);
-
-      m3_subc.add(mb3_subc_01, mb3_subc_02, mb3_subc_03, mb3_subc_04, mb3_subc_05);      
-      
-      var mb3_subd_02_suba = new qx.ui.menu.Menu();
-      
-      var mb3_subd_02_suba_01 = new qx.ui.menu.Button("First", null, c1);
-      var mb3_subd_02_suba_02 = new qx.ui.menu.Button("Second", null, c1);
-      var mb3_subd_02_suba_03 = new qx.ui.menu.Button("Third", null, c1);
-      
-      mb3_subd_02_suba.add(mb3_subd_02_suba_01, mb3_subd_02_suba_02, mb3_subd_02_suba_03);
-      
-      var mb3_subd_01 = new qx.ui.menu.Button("First", null, c1);
-      var mb3_subd_02 = new qx.ui.menu.Button("Second", null, c1, mb3_subd_02_suba);
-      var mb3_subd_03 = new qx.ui.menu.Button("Third", null, c1);
-
-      m3_subd.add(mb3_subd_01, mb3_subd_02, mb3_subd_03);
-      
-      var m4 = new qx.ui.menu.Menu;
-      
-      var m4_suba = new qx.ui.menu.Menu;      
-
-      var mb4_01 = new qx.ui.menu.Button("View", null, c1, m4_suba);
-      var mb4_b1 = new qx.ui.menu.Separator();
-      var mb4_02 = new qx.ui.menu.Button("Editor Preferences...", null, c1);
-      var mb4_03 = new qx.ui.menu.Button("Editor Extensions", null, c1);
-      var mb4_04 = new qx.ui.menu.Button("Framework Preferences", null, c1);
-
-      m4.add(mb4_01, mb4_b1, mb4_02, mb4_03, mb4_04);
-      
-      var mb4_suba_01 = new qx.ui.menu.Button("New Window", null, c1);
-      var mb4_suba_b1 = new qx.ui.menu.Separator();
-      var mb4_suba_02 = new qx.ui.menu.RadioButton("Overlapping", c1, true);
-      var mb4_suba_03 = new qx.ui.menu.RadioButton("Split Horizontally", c1);
-      var mb4_suba_04 = new qx.ui.menu.RadioButton("Split Vertically", c1);
-      var mb4_suba_b2 = new qx.ui.menu.Separator();
-      var mb4_suba_05 = new qx.ui.menu.Button("Next Window", null, c1);
-      var mb4_suba_06 = new qx.ui.menu.Button("Previous Window", null, c1);
-
-      m4_suba.add(mb4_suba_01, mb4_suba_b1, mb4_suba_02, mb4_suba_03, mb4_suba_04, mb4_suba_b2, mb4_suba_05, mb4_suba_06);
-
-      var mb4_manager = new qx.manager.selection.RadioManager("windowMode", [ mb4_suba_02, mb4_suba_03, mb4_suba_04 ]);
-
-      var m5 = new qx.ui.menu.Menu;
-      
-      var mb5_01 = new qx.ui.menu.Button("Help", null, c1);
-      var mb5_02 = new qx.ui.menu.Button("About", null, c1);
-      
-      m5.add(mb5_01, mb5_02);
-      
-      d.add(m1, m2, m3, m3_suba, m3_subb, m3_subc, m3_subd, mb3_subd_02_suba, m4, m4_suba, m5);
-
-
-      var mb1 = new qx.ui.toolbar.ToolBar;
-      
-      mb1.setTop(48);
-      mb1.setRight(335);
-      mb1.setLeft(20);      
-      
-      var mbb1 = new qx.ui.toolbar.MenuButton("File", m1);
-      var mbb2 = new qx.ui.toolbar.MenuButton("Edit", m2);
-      var mbb3 = new qx.ui.toolbar.MenuButton("View", m3);
-      var mbb4 = new qx.ui.toolbar.MenuButton("Options", m4);
-      var mbb5 = new qx.ui.toolbar.MenuButton("Help", m5);
-            
-      mb1.add(mbb1, mbb2, mbb3, mbb4, mbb5);
-      
-      d.add(mb1);
-      
-      
-      
-
-      // Icon & Color Themes
-      qx.manager.object.ImageManager.getInstance().createThemeList(d, 20, 348);
-      qx.manager.object.ColorManager.getInstance().createThemeList(d, 220, 348);      
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ToolBar_4.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ToolBar_4.html
deleted file mode 100644 (file)
index 69d91c1..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Again a nice example which shows how to use qx.ui.toolbar.ToolBar as a menubar system.</p>
-    <p>Added some parts and a new flex zone which aligns the help button to the right edge</p>
-    <p>Added some image and a qx.ui.toolbar.CheckBox, you can event combine all these features as you can easily see here.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-
-      var c1 = new qx.client.Command();
-      c1.addEventListener("execute", function(e) {
-        this.debug("Execute: " + e.getData().getLabel());
-      });
-
-
-
-
-      var m1 = new qx.ui.menu.Menu;
-
-      var mb1_01 = new qx.ui.menu.Button("New", null, c1);
-      var mb1_02 = new qx.ui.menu.Button("Open", null, c1);
-      var mb1_03 = new qx.ui.menu.Button("Save", null, c1);
-      var mb1_04 = new qx.ui.menu.Button("Save as", null, c1);
-      var mb1_05 = new qx.ui.menu.Button("Close", null, c1);
-      var mb1_06 = new qx.ui.menu.Button("Restore last saved", null, c1);
-
-      m1.add(mb1_01, mb1_02, mb1_03, mb1_04, mb1_05, mb1_06);
-
-
-      var m2 = new qx.ui.menu.Menu;
-
-      var mb2_01 = new qx.ui.menu.Button("Undo", null, c1);
-      var mb2_02 = new qx.ui.menu.Button("Redo", null, c1);
-      var mb2_b1 = new qx.ui.menu.Separator();
-      var mb2_03 = new qx.ui.menu.Button("Cut", "icon/16/actions/edit-cut.png", c1);
-      var mb2_04 = new qx.ui.menu.Button("Copy", "icon/16/actions/edit-copy.png", c1);
-      var mb2_05 = new qx.ui.menu.Button("Paste", "icon/16/actions/edit-paste.png", c1);
-      var mb2_06 = new qx.ui.menu.Button("Delete", "icon/16/actions/edit-delete.png", c1);
-      var mb2_b2 = new qx.ui.menu.Separator();
-      var mb2_07 = new qx.ui.menu.Button("Select All", null, c1);
-      var mb2_08 = new qx.ui.menu.Button("Find", null, c1);
-      var mb2_09 = new qx.ui.menu.Button("Find Again", null, c1);
-
-
-
-
-      mb2_05.setEnabled(false);
-      mb2_06.setEnabled(false);
-      mb2_09.setEnabled(false);
-
-      m2.add(mb2_01, mb2_02, mb2_b1, mb2_03, mb2_04, mb2_05, mb2_06, mb2_b2, mb2_07, mb2_08, mb2_09);
-
-
-      var m3 = new qx.ui.menu.Menu;
-      var m3_suba = new qx.ui.menu.Menu;
-      var m3_subb = new qx.ui.menu.Menu;
-      var m3_subc = new qx.ui.menu.Menu;
-      var m3_subd = new qx.ui.menu.Menu;
-
-      var mb3_01 = new qx.ui.menu.CheckBox("File List", c1, false);
-      var mb3_02 = new qx.ui.menu.CheckBox("Syntax Highlighting", c1, true);
-      var mb3_03 = new qx.ui.menu.CheckBox("Statusbar", c1, true);
-      var mb3_b1 = new qx.ui.menu.Separator();
-      var mb3_04 = new qx.ui.menu.Button("Printer Font", null, null, m3_suba);
-      var mb3_05 = new qx.ui.menu.Button("Editor Font", null, null, m3_subb);
-      var mb3_06 = new qx.ui.menu.Button("Export Font", null, null, m3_subc);
-      var mb3_b2 = new qx.ui.menu.Separator();
-      var mb3_07 = new qx.ui.menu.Button("Advanced", null, null, m3_subd);
-
-      m3.add(mb3_01, mb3_02, mb3_03, mb3_b1, mb3_04, mb3_05, mb3_06, mb3_b2, mb3_07);
-
-      var mb3_suba_01 = new qx.ui.menu.Button("Tahoma, 11pt", null, c1);
-      var mb3_suba_02 = new qx.ui.menu.Button("Tahoma, 12pt", null, c1);
-      var mb3_suba_03 = new qx.ui.menu.Button("Tahoma, 13pt", null, c1);
-      var mb3_suba_04 = new qx.ui.menu.Button("Tahoma, 14pt", null, c1);
-      var mb3_suba_05 = new qx.ui.menu.Button("Tahoma, 15pt", null, c1);
-
-      m3_suba.add(mb3_suba_01, mb3_suba_02, mb3_suba_03, mb3_suba_04, mb3_suba_05);
-
-      var mb3_subb_01 = new qx.ui.menu.Button("Verdana, 11pt", null, c1);
-      var mb3_subb_02 = new qx.ui.menu.Button("Verdana, 12pt", null, c1);
-      var mb3_subb_03 = new qx.ui.menu.Button("Verdana, 13pt", null, c1);
-      var mb3_subb_04 = new qx.ui.menu.Button("Verdana, 14pt", null, c1);
-      var mb3_subb_05 = new qx.ui.menu.Button("Verdana, 15pt", null, c1);
-
-      m3_subb.add(mb3_subb_01, mb3_subb_02, mb3_subb_03, mb3_subb_04, mb3_subb_05);
-
-      var mb3_subc_01 = new qx.ui.menu.Button("Courier, 11pt", null, c1);
-      var mb3_subc_02 = new qx.ui.menu.Button("Courier, 12pt", null, c1);
-      var mb3_subc_03 = new qx.ui.menu.Button("Courier, 13pt", null, c1);
-      var mb3_subc_04 = new qx.ui.menu.Button("Courier, 14pt", null, c1);
-      var mb3_subc_05 = new qx.ui.menu.Button("Courier, 15pt", null, c1);
-
-      m3_subc.add(mb3_subc_01, mb3_subc_02, mb3_subc_03, mb3_subc_04, mb3_subc_05);
-
-      var mb3_subd_02_suba = new qx.ui.menu.Menu();
-
-      var mb3_subd_02_suba_01 = new qx.ui.menu.Button("First", null, c1);
-      var mb3_subd_02_suba_02 = new qx.ui.menu.Button("Second", null, c1);
-      var mb3_subd_02_suba_03 = new qx.ui.menu.Button("Third", null, c1);
-
-      mb3_subd_02_suba.add(mb3_subd_02_suba_01, mb3_subd_02_suba_02, mb3_subd_02_suba_03);
-
-      var mb3_subd_01 = new qx.ui.menu.Button("First", null, c1);
-      var mb3_subd_02 = new qx.ui.menu.Button("Second", null, c1, mb3_subd_02_suba);
-      var mb3_subd_03 = new qx.ui.menu.Button("Third", null, c1);
-
-      m3_subd.add(mb3_subd_01, mb3_subd_02, mb3_subd_03);
-
-      var m4 = new qx.ui.menu.Menu;
-
-      var m4_suba = new qx.ui.menu.Menu;
-
-      var mb4_01 = new qx.ui.menu.Button("View", null, c1, m4_suba);
-      var mb4_b1 = new qx.ui.menu.Separator();
-      var mb4_02 = new qx.ui.menu.Button("Editor Preferences...", null, c1);
-      var mb4_03 = new qx.ui.menu.Button("Editor Extensions", null, c1);
-      var mb4_04 = new qx.ui.menu.Button("Framework Preferences", null, c1);
-
-      m4.add(mb4_01, mb4_b1, mb4_02, mb4_03, mb4_04);
-
-      var mb4_suba_01 = new qx.ui.menu.Button("New Window", null, c1);
-      var mb4_suba_b1 = new qx.ui.menu.Separator();
-      var mb4_suba_02 = new qx.ui.menu.RadioButton("Overlapping", c1, true);
-      var mb4_suba_03 = new qx.ui.menu.RadioButton("Split Horizontally", c1);
-      var mb4_suba_04 = new qx.ui.menu.RadioButton("Split Vertically", c1);
-      var mb4_suba_b2 = new qx.ui.menu.Separator();
-      var mb4_suba_05 = new qx.ui.menu.Button("Next Window", null, c1);
-      var mb4_suba_06 = new qx.ui.menu.Button("Previous Window", null, c1);
-
-      m4_suba.add(mb4_suba_01, mb4_suba_b1, mb4_suba_02, mb4_suba_03, mb4_suba_04, mb4_suba_b2, mb4_suba_05, mb4_suba_06);
-
-      var mb4_manager = new qx.manager.selection.RadioManager("windowMode", [ mb4_suba_02, mb4_suba_03, mb4_suba_04 ]);
-
-
-      var m5 = new qx.ui.menu.Menu;
-
-      var mb5_01 = new qx.ui.menu.Button("Help", null, c1);
-      var mb5_02 = new qx.ui.menu.Button("About", null, c1);
-
-      m5.add(mb5_01, mb5_02);
-
-      d.add(m1, m2, m3, m3_suba, m3_subb, m3_subc, m3_subd, mb3_subd_02_suba, m4, m4_suba, m5);
-
-
-      var mb1 = new qx.ui.toolbar.ToolBar;
-
-      mb1.setTop(48);
-      mb1.setRight(335);
-      mb1.setLeft(20);
-
-      var mp1 = new qx.ui.toolbar.Part;
-      var mp2 = new qx.ui.toolbar.Part;
-      var mp3 = new qx.ui.toolbar.Part;
-
-      mb1.add(mp1, mp2, new qx.ui.basic.HorizontalSpacer, mp3);
-
-      var mbb1 = new qx.ui.toolbar.MenuButton("File", m1, "icon/16/actions/document-new.png");
-      var mbb2 = new qx.ui.toolbar.MenuButton("Edit", m2, "icon/16/actions/edit.png");
-      var mbb3 = new qx.ui.toolbar.MenuButton("View", m3, "icon/16/apps/preferences-desktop-wallpaper.png");
-      var mbb4 = new qx.ui.toolbar.MenuButton("Options", m4, "icon/16/apps/system-software-update.png");
-      var mbb5 = new qx.ui.toolbar.MenuButton("Help", m5, "icon/16/actions/help-about.png");
-
-      var tbb1 = new qx.ui.toolbar.CheckBox("Checkbox", "icon/16/apps/office-organizer.png", true);
-
-      mp1.add(mbb1, mbb2);
-      mp2.add(mbb3, mbb4, tbb1);
-      mp3.add(mbb5);
-
-      d.add(mb1);
-
-
-
-
-      // Icon & Color Themes
-      qx.manager.object.ImageManager.getInstance().createThemeList(d, 20, 348);
-      qx.manager.object.ColorManager.getInstance().createThemeList(d, 220, 348);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ToolTip_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/ToolTip_1.html
deleted file mode 100644 (file)
index 8cbf4b9..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test for QxToolTips. Each qx.ui.popup.ToolTip could be assigned to any
-    instance of qx.ui.core.Widget. You could also use one qx.ui.popup.ToolTip instance
-    for multiple QxWidgets (to show the same tooltip any multiple items).</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var c1 = new qx.ui.basic.Atom("Hover me");
-    with(c1)
-    {
-      setTop(48);
-      setLeft(20);
-      setBackgroundColor(new qx.renderer.color.Color("#BDD2EF"));
-      setWidth(100);
-      setHeight(100);
-      setTabIndex(1);
-      setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    };
-    d.add(c1);
-
-
-
-    var c2 = new qx.ui.basic.Atom("Hover me");
-    with(c2)
-    {
-      setTop(48);
-      setLeft(140);
-      setBackgroundColor(new qx.renderer.color.Color("#D1DFAD"));
-      setWidth(100);
-      setHeight(100);
-      setTabIndex(1);
-      setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    };
-    d.add(c2);
-
-
-    var c3 = new qx.ui.basic.Atom("Hover me");
-    with(c3)
-    {
-      setTop(48);
-      setLeft(260);
-      setBackgroundColor(new qx.renderer.color.Color("#D1A4AD"));
-      setWidth(100);
-      setHeight(100);
-      setTabIndex(1);
-      setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    };
-    d.add(c3);
-
-
-    var c4 = new qx.ui.basic.Atom("Hover me");
-    with(c4)
-    {
-      setTop(48);
-      setLeft(380);
-      setBackgroundColor(new qx.renderer.color.Color("#F5E0BB"));
-      setWidth(100);
-      setHeight(100);
-      setTabIndex(1);
-      setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    };
-    d.add(c4);
-
-
-    var c5 = new qx.ui.basic.Atom("Hover me", "icon/32/actions/format-color.png");
-    with(c5)
-    {
-      setTop(248);
-      setLeft(20);
-      setBackgroundColor(new qx.renderer.color.Color("#F5E0BB"));
-      setTabIndex(1);
-      setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-      setPadding(4);
-    };
-    d.add(c5);
-
-
-    var tt1 = new qx.ui.popup.ToolTip("Hello World #1");
-    c1.setToolTip(tt1);
-    c2.setToolTip(tt1);
-
-    var tt2 = new qx.ui.popup.ToolTip(null, "icon/16/actions/help-about.png");
-    c3.setToolTip(tt2);
-
-    var tt3 = new qx.ui.popup.ToolTip("Hello World #3", "icon/16/actions/help-about.png");
-    c4.setToolTip(tt3);
-
-    var tt4 = new qx.ui.popup.ToolTip("Such a great tooltip with a<br/>(show) timeout of 50ms.", "icon/32/apps/graphics-snapshot.png");
-    c5.setToolTip(tt4);
-    tt4.setShowInterval(50);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TreeFullControl_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TreeFullControl_1.html
deleted file mode 100644 (file)
index ac037d7..0000000
+++ /dev/null
@@ -1,235 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Shows a tree, with user-defined icons for some nodes.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Root");
-      var t = new qx.ui.treefullcontrol.Tree(trs);
-
-      with(t)
-      {
-        setBackgroundColor(255);
-        setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-        setOverflow("scrollY");
-
-        setHeight(null);
-        setTop(48);
-        setLeft(20);
-        setWidth(200);
-        setBottom(48);
-      };
-
-      qx.ui.core.ClientDocument.getInstance().add(t);
-      // One icon for selected and one for unselected states
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Desktop", "icon/16/places/user-desktop.png", "icon/16/apps/accessories-dictionary.png");
-      var te1 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      t.add(te1);
-
-      desktop = te1;
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Files");
-      var te1_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Workspace");
-      var te1_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Network");
-      var te1_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Trash");
-      var te1_4 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      te1.add(te1_1, te1_2, te1_3, te1_4);
-
-      // One icon specified, and used for both selected unselected states
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Windows (C:)", "icon/16/devices/drive-harddisk.png");
-      var te1_2_1 = new qx.ui.treefullcontrol.TreeFile(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Documents (D:)", "icon/16/devices/drive-harddisk.png");
-      var te1_2_2 = new qx.ui.treefullcontrol.TreeFile(trs);
-
-      te1_2.add(te1_2_1, te1_2_2);
-
-      arbeitsplatz = te1_2;
-
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Inbox");
-      var te2 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      posteingang = te2;
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Presets");
-      var te2_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Sent");
-      var te2_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Trash", "icon/16/places/user-trash.png");
-      var te2_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Data");
-      var te2_4 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Edit");
-      var te2_5 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      editieren = te2_5;
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Chat");
-      var te2_5_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Pustefix");
-      var te2_5_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("TINC");
-      var te2_5_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Announce");
-      var te2_5_3_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Devel");
-      var te2_5_3_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      te2_5_3.add(te2_5_3_1, te2_5_3_2);
-
-      te2_5.add(te2_5_1, te2_5_2, te2_5_3);
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Lists");
-      var te2_6 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Relations");
-      var te2_6_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Company");
-      var te2_6_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Questions");
-      var te2_6_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Internal");
-      var te2_6_4 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Products");
-      var te2_6_5 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Press");
-      var te2_6_6 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Development");
-      var te2_6_7 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Competition");
-      var te2_6_8 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      te2_6.add(te2_6_1, te2_6_2, te2_6_3, te2_6_4, te2_6_5, te2_6_6, te2_6_7, te2_6_8);
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Personal");
-      var te2_7 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Bugs");
-      var te2_7_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Family");
-      var te2_7_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Projects");
-      var te2_7_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Holiday");
-      var te2_7_4 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      te2_7.add(te2_7_1, te2_7_2, te2_7_3, te2_7_4);
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Big");
-      var te2_8 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      for (var i=0;i<50; i++) {
-        trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Item " + i);
-        te2_8.add(new qx.ui.treefullcontrol.TreeFolder(trs));
-      };
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Spam");
-      var te2_9 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      spam = te2_9;
-
-      te2.add(te2_1, te2_2, te2_3, te2_4, te2_5, te2_6, te2_7, te2_8, te2_9);
-
-      t.add(te2);
-      qx.ui.core.ClientDocument.getInstance().add(t);
-
-
-
-
-
-
-      var commandFrame = new qx.ui.groupbox.GroupBox("Control");
-
-      with(commandFrame)
-      {
-        setTop(48);
-        setLeft(250);
-
-        setWidth("auto");
-        setHeight("auto");
-      };
-
-      qx.ui.core.ClientDocument.getInstance().add(commandFrame);
-
-
-
-
-      var tCurrentLabel = new qx.ui.basic.Atom("Current Folder: ");
-
-      with(tCurrentLabel)
-      {
-        setLeft(0);
-        setTop(0);
-      };
-
-      commandFrame.add(tCurrentLabel);
-
-
-
-      var tCurrentInput = new qx.ui.form.TextField;
-
-      with(tCurrentInput)
-      {
-        setLeft(0);
-        setRight(0);
-        setTop(20);
-
-        setReadOnly(true);
-      };
-
-      commandFrame.add(tCurrentInput);
-
-      t.getManager().addEventListener("changeSelection", function(e) {
-        tCurrentInput.setValue(e.getData()[0]._labelObject.getHtml());
-      });
-
-
-
-      var tDoubleClick = new qx.ui.form.CheckBox("Use double click?");
-
-      with(tDoubleClick) {
-        setTop(60);
-        setLeft(0);
-      };
-
-      commandFrame.add(tDoubleClick);
-
-      tDoubleClick.addEventListener("changeChecked", function(e) { t.setUseDoubleClick(e.getData()); });
-
-
-
-
-      var tTreeLines = new qx.ui.form.CheckBox("Use tree lines?");
-
-      with(tTreeLines) {
-        setTop(80);
-        setLeft(0);
-        setChecked(true);
-      };
-
-      commandFrame.add(tTreeLines);
-
-      tTreeLines.addEventListener("changeChecked", function(e) { t.setUseTreeLines(e.getData()); });
-
-
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TreeFullControl_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TreeFullControl_2.html
deleted file mode 100644 (file)
index 1bddc43..0000000
+++ /dev/null
@@ -1,270 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-<p>Shows a tree, with user-defined extra fields.  In this example, the extra
-fields include a left-justified icon, a checkbox between the node icon and the
-label, and a whole series of right-justified fields.  Additionally, the root node may be hidden. </p>
-  </div>
-
-  <script type="text/javascript">
-    var treeRowStructure;
-
-    function stuff(vLabel, vIcon, vIconSelected)
-    {
-        treeRowStructure = qx.ui.treefullcontrol.TreeRowStructure.getInstance().newRow();
-
-        // A left-justified icon
-        if (Math.floor(Math.random() * 4) == 0)
-        {
-          obj = new qx.ui.basic.Image("icon/16/apps/accessories-alarm.png", 16);
-        }
-        else
-        {
-          obj = new qx.ui.basic.Image(null, 16);
-        }
-        treeRowStructure.addObject(obj, true);
-
-        // Here's our indentation and tree-lines
-        treeRowStructure.addIndent();
-
-        // The standard tree icon follows
-        treeRowStructure.addIcon(
-          arguments.length >= 2 ? vIcon : "icon/16/places/user-desktop.png",
-          arguments.length >= 3 ? vIconSelected : "icon/16/apps/accessories-dictionary.png");
-
-        // A checkbox comes right after the tree icon
-        obj = new qx.ui.form.CheckBox(
-          null, "23", null, Math.floor(Math.random() * 2) == 0 ? false : true);
-        obj.setPadding(0, 0);
-        treeRowStructure.addObject(obj, true);
-
-        // The label
-        treeRowStructure.addLabel(vLabel);
-
-        // All else should be right justified
-        obj = new qx.ui.basic.HorizontalSpacer;
-        treeRowStructure.addObject(obj, true);
-
-        // Add a file size, date and mode
-        obj = new qx.ui.basic.Label(Math.round(Math.random() * 100) + "kb");
-        obj.setWidth(50);
-        treeRowStructure.addObject(obj, true);
-        obj = new qx.ui.basic.Label(
-          "May " + Math.round(Math.random() * 30 + 1) + " 2005");
-        obj.setWidth(150);
-        treeRowStructure.addObject(obj, true);
-        obj = new qx.ui.basic.Label("-rw-r--r--");
-        obj.setWidth(80);
-        treeRowStructure.addObject(obj, true);
-
-        return treeRowStructure;
-        }
-
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var x = new qx.ui.basic.Atom("Test #1", "icon/16/actions/view-refresh.png", 16, 16);
-        x.debug("In main");
-
-      var t = new qx.ui.treefullcontrol.Tree(stuff("Root"));
-      with(t)
-      {
-        setBackgroundColor(255);
-        setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-        setOverflow("scrollY");
-
-        setHeight(null);
-        setTop(48);
-        setLeft(20);
-        setWidth(600);
-        setBottom(48);
-      };
-
-      qx.ui.core.ClientDocument.getInstance().add(t);
-      // One icon for selected and one for unselected states
-      var te1 = new qx.ui.treefullcontrol.TreeFolder(stuff("Desktop"));
-      t.add(te1);
-
-      desktop = te1;
-
-      var te1_1 = new qx.ui.treefullcontrol.TreeFolder(stuff("Files"));
-      var te1_2 = new qx.ui.treefullcontrol.TreeFolder(stuff("Workspace"));
-      var te1_3 = new qx.ui.treefullcontrol.TreeFolder(stuff("Network"));
-      var te1_4 = new qx.ui.treefullcontrol.TreeFolder(stuff("Trash"));
-
-      te1.add(te1_1, te1_2, te1_3, te1_4);
-
-      // One icon specified, and used for both selected unselected states
-      var te1_2_1 = new qx.ui.treefullcontrol.TreeFile(stuff("Windows (C:)", "icon/16/devices/drive-harddisk.png"));
-      var te1_2_2 = new qx.ui.treefullcontrol.TreeFile(stuff("Documents (D:)", "icon/16/devices/drive-harddisk.png"));
-
-      te1_2.add(te1_2_1, te1_2_2);
-
-      arbeitsplatz = te1_2;
-
-
-      var te2 = new qx.ui.treefullcontrol.TreeFolder(stuff("Inbox"));
-      posteingang = te2;
-
-      var te2_1 = new qx.ui.treefullcontrol.TreeFolder(stuff("Presets"));
-      var te2_2 = new qx.ui.treefullcontrol.TreeFolder(stuff("Sent"));
-      var te2_3 = new qx.ui.treefullcontrol.TreeFolder(stuff("Trash", "icon/16/places/user-trash.png"));
-      var te2_4 = new qx.ui.treefullcontrol.TreeFolder(stuff("Data"));
-      var te2_5 = new qx.ui.treefullcontrol.TreeFolder(stuff("Edit"));
-
-      editieren = te2_5;
-
-      var te2_5_1 = new qx.ui.treefullcontrol.TreeFolder(stuff("Chat"));
-      var te2_5_2 = new qx.ui.treefullcontrol.TreeFolder(stuff("Pustefix"));
-      var te2_5_3 = new qx.ui.treefullcontrol.TreeFolder(stuff("TINC"));
-
-      var te2_5_3_1 = new qx.ui.treefullcontrol.TreeFolder(stuff("Announce"));
-      var te2_5_3_2 = new qx.ui.treefullcontrol.TreeFolder(stuff("Devel"));
-
-      te2_5_3.add(te2_5_3_1, te2_5_3_2);
-
-      te2_5.add(te2_5_1, te2_5_2, te2_5_3);
-
-      var te2_6 = new qx.ui.treefullcontrol.TreeFolder(stuff("Lists"));
-
-      var te2_6_1 = new qx.ui.treefullcontrol.TreeFolder(stuff("Relations"));
-      var te2_6_2 = new qx.ui.treefullcontrol.TreeFolder(stuff("Company"));
-      var te2_6_3 = new qx.ui.treefullcontrol.TreeFolder(stuff("Questions"));
-      var te2_6_4 = new qx.ui.treefullcontrol.TreeFolder(stuff("Internal"));
-      var te2_6_5 = new qx.ui.treefullcontrol.TreeFolder(stuff("Products"));
-      var te2_6_6 = new qx.ui.treefullcontrol.TreeFolder(stuff("Press"));
-      var te2_6_7 = new qx.ui.treefullcontrol.TreeFolder(stuff("Development"));
-      var te2_6_8 = new qx.ui.treefullcontrol.TreeFolder(stuff("Competition"));
-
-      te2_6.add(te2_6_1, te2_6_2, te2_6_3, te2_6_4, te2_6_5, te2_6_6, te2_6_7, te2_6_8);
-
-      var te2_7 = new qx.ui.treefullcontrol.TreeFolder(stuff("Personal"));
-
-      var te2_7_1 = new qx.ui.treefullcontrol.TreeFolder(stuff("Bugs"));
-      var te2_7_2 = new qx.ui.treefullcontrol.TreeFolder(stuff("Family"));
-      var te2_7_3 = new qx.ui.treefullcontrol.TreeFolder(stuff("Projects"));
-      var te2_7_4 = new qx.ui.treefullcontrol.TreeFolder(stuff("Holiday"));
-
-      te2_7.add(te2_7_1, te2_7_2, te2_7_3, te2_7_4);
-
-      var te2_8 = new qx.ui.treefullcontrol.TreeFolder(stuff("Big"));
-
-      for (var i=0;i<50; i++) {
-        te2_8.add(new qx.ui.treefullcontrol.TreeFolder(stuff("Item " + i)));
-      };
-
-      var te2_9 = new qx.ui.treefullcontrol.TreeFolder(stuff("Spam"));
-      spam = te2_9;
-
-      te2.add(te2_1, te2_2, te2_3, te2_4, te2_5, te2_6, te2_7, te2_8, te2_9);
-
-      t.add(te2);
-      qx.ui.core.ClientDocument.getInstance().add(t);
-
-
-
-
-
-
-      var commandFrame = new qx.ui.groupbox.GroupBox("Control");
-
-      with(commandFrame)
-      {
-        setTop(48);
-        setLeft(650);
-
-        setWidth("auto");
-        setHeight("auto");
-      };
-
-      qx.ui.core.ClientDocument.getInstance().add(commandFrame);
-
-
-
-
-      var tCurrentLabel = new qx.ui.basic.Atom("Current Folder: ");
-
-      with(tCurrentLabel)
-      {
-        setLeft(0);
-        setTop(0);
-      };
-
-      commandFrame.add(tCurrentLabel);
-
-
-
-      var tCurrentInput = new qx.ui.form.TextField;
-
-      with(tCurrentInput)
-      {
-        setLeft(0);
-        setRight(0);
-        setTop(20);
-
-        setReadOnly(true);
-      };
-
-      commandFrame.add(tCurrentInput);
-
-      t.getManager().addEventListener("changeSelection", function(e) {
-        tCurrentInput.setValue(e.getData()[0]._labelObject.getHtml());
-      });
-
-
-
-      var tDoubleClick = new qx.ui.form.CheckBox("Use double click?");
-
-      with(tDoubleClick) {
-        setTop(60);
-        setLeft(0);
-      };
-
-      commandFrame.add(tDoubleClick);
-
-      tDoubleClick.addEventListener("changeChecked", function(e) { t.setUseDoubleClick(e.getData()); });
-
-
-
-
-      var tTreeLines = new qx.ui.form.CheckBox("Use tree lines?");
-
-      with(tTreeLines) {
-        setTop(80);
-        setLeft(0);
-        setChecked(true);
-      };
-
-      commandFrame.add(tTreeLines);
-
-      tTreeLines.addEventListener("changeChecked", function(e) { t.setUseTreeLines(e.getData()); });
-
-
-
-
-      var tHideNode = new qx.ui.form.CheckBox("Hide the root node?");
-
-      with(tHideNode) {
-        setTop(100);
-        setLeft(0);
-        setChecked(false);
-      };
-
-      commandFrame.add(tHideNode);
-
-      tHideNode.addEventListener("changeChecked", function(e) { t.setHideNode(e.getData()); });
-
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TreeFullControl_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TreeFullControl_3.html
deleted file mode 100644 (file)
index 4dc1894..0000000
+++ /dev/null
@@ -1,298 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Shows a tree, with user-defined icons for some nodes.  This tests
-    listening for tree events.  A separate alert is generated upon opening a
-    folder that has contents; when opening a folder that has no contents; and
-    closing a folder.</p><p>We also demonstrate changing the default value of
-    'allowShowPlusMinusSymbol' so that all folders initially have a plus/minus
-    symbol.  Then, upon opening an empty folder, we remove that
-    icon.</p><p>Lastly, we demonstrate in the alert presented by tree events,
-    use of the getHierarchy() method to obtain a full "path" for a tree
-    node.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      /*
-       * Reset the default of always showing the plus/minus symbol.  The
-       * default is 'false'.  We want to always display it for each folder
-       * (and then stop displaying it if we determine upon open that there are
-       * no contents).
-       *
-       * The changeProperty() function assumes that it is being called
-       * shortly after defineClass() is called.  We therefore need to kludge
-       * qx.Proto to point to the right place.
-       *
-       * TODO: There should be a mechanism to change a property attribute
-       * without having to jump through these hoops.
-       */
-      var constructor = qx.OO.classes["qx.ui.treefullcontrol.TreeFolder"];
-      qx.Proto = constructor.prototype;
-      qx.OO.changeProperty({ name : "alwaysShowPlusMinusSymbol", type : "boolean", defaultValue : true });
-
-
-      var trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Root");
-      var t = new qx.ui.treefullcontrol.Tree(trs);
-
-      /*
-       * All subtrees will use this root node's event listeners.  Create event
-       * listeners for each of the possible events.
-       */
-      t.addEventListener("treeOpenWithContent", function(e) {
-                           alert('treeOpenWithContent ' + e.getData().getHierarchy(new Array()).join("/"));
-                         });
-
-      t.addEventListener("treeClose", function(e) {
-                           alert('treeClose ' + e.getData().getHierarchy(new Array()).join("/"));
-                         });
-
-      /*
-       * We handle opening an empty folder specially.  We demonstrate how to
-       * disable the plus/minus sign once we've determined there's nothing in
-       * it.  This feature might be used to dynamically retrieve the contents
-       * of the folder, and if nothing is available, indicate it by removing
-       * the plus/minus sign.
-       */
-      t.addEventListener("treeOpenWhileEmpty", function(e) {
-                           alert('treeOpenWhileEmpty ' + e.getData().getHierarchy(new Array()).join("/"));
-                           e.getData().setAlwaysShowPlusMinusSymbol(false);
-                         });
-
-      with(t)
-      {
-        setBackgroundColor(255);
-        setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-        setOverflow("scrollY");
-
-        setHeight(null);
-        setTop(48);
-        setLeft(20);
-        setWidth(200);
-        setBottom(48);
-      };
-
-      qx.ui.core.ClientDocument.getInstance().add(t);
-      // One icon for selected and one for unselected states
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Desktop", "icon/16/places/user-desktop.png", "icon/16/apps/accessories-dictionary.png");
-      var te1 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      t.add(te1);
-
-      desktop = te1;
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Files");
-      var te1_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Workspace");
-      var te1_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Network");
-      var te1_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Trash");
-      var te1_4 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      te1.add(te1_1, te1_2, te1_3, te1_4);
-
-      // One icon specified, and used for both selected unselected states
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Windows (C:)", "icon/16/devices/drive-harddisk.png");
-      var te1_2_1 = new qx.ui.treefullcontrol.TreeFile(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Documents (D:)", "icon/16/devices/drive-harddisk.png");
-      var te1_2_2 = new qx.ui.treefullcontrol.TreeFile(trs);
-
-      te1_2.add(te1_2_1, te1_2_2);
-
-      arbeitsplatz = te1_2;
-
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Inbox");
-      var te2 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      posteingang = te2;
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Presets");
-      var te2_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Sent");
-      var te2_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Trash", "icon/16/places/user-trash.png");
-      var te2_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Data");
-      var te2_4 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Edit");
-      var te2_5 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      editieren = te2_5;
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Chat");
-      var te2_5_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Pustefix");
-      var te2_5_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("TINC");
-      var te2_5_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Announce");
-      var te2_5_3_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Devel");
-      var te2_5_3_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      te2_5_3.add(te2_5_3_1, te2_5_3_2);
-
-      te2_5.add(te2_5_1, te2_5_2, te2_5_3);
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Lists");
-      var te2_6 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Relations");
-      var te2_6_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Company");
-      var te2_6_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Questions");
-      var te2_6_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Internal");
-      var te2_6_4 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Products");
-      var te2_6_5 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Press");
-      var te2_6_6 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Development");
-      var te2_6_7 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Competition");
-      var te2_6_8 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      te2_6.add(te2_6_1, te2_6_2, te2_6_3, te2_6_4, te2_6_5, te2_6_6, te2_6_7, te2_6_8);
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Personal");
-      var te2_7 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Bugs");
-      var te2_7_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Family");
-      var te2_7_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Projects");
-      var te2_7_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Holiday");
-      var te2_7_4 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      te2_7.add(te2_7_1, te2_7_2, te2_7_3, te2_7_4);
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Big");
-      var te2_8 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      for (var i=0;i<50; i++) {
-        trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Item " + i);
-        te2_8.add(new qx.ui.treefullcontrol.TreeFolder(trs));
-      };
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Spam");
-      var te2_9 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      spam = te2_9;
-
-      te2.add(te2_1, te2_2, te2_3, te2_4, te2_5, te2_6, te2_7, te2_8, te2_9);
-
-      t.add(te2);
-      qx.ui.core.ClientDocument.getInstance().add(t);
-
-
-
-
-
-
-      var commandFrame = new qx.ui.groupbox.GroupBox("Control");
-
-      with(commandFrame)
-      {
-        setTop(48);
-        setLeft(250);
-
-        setWidth("auto");
-        setHeight("auto");
-      };
-
-      qx.ui.core.ClientDocument.getInstance().add(commandFrame);
-
-
-
-
-      var tCurrentLabel = new qx.ui.basic.Atom("Current Folder: ");
-
-      with(tCurrentLabel)
-      {
-        setLeft(0);
-        setTop(0);
-      };
-
-      commandFrame.add(tCurrentLabel);
-
-
-
-      var tCurrentInput = new qx.ui.form.TextField;
-
-      with(tCurrentInput)
-      {
-        setLeft(0);
-        setRight(0);
-        setTop(20);
-
-        setReadOnly(true);
-      };
-
-      commandFrame.add(tCurrentInput);
-
-      t.getManager().addEventListener("changeSelection", function(e) {
-        tCurrentInput.setValue(e.getData()[0]._labelObject.getHtml());
-      });
-
-
-
-      var tDoubleClick = new qx.ui.form.CheckBox("Use double click?");
-
-      with(tDoubleClick) {
-        setTop(60);
-        setLeft(0);
-      };
-
-      commandFrame.add(tDoubleClick);
-
-      tDoubleClick.addEventListener("changeChecked", function(e) { t.setUseDoubleClick(e.getData()); });
-
-
-
-
-      var tTreeLines = new qx.ui.form.CheckBox("Use tree lines?");
-
-      with(tTreeLines) {
-        setTop(80);
-        setLeft(0);
-        setChecked(true);
-      };
-
-      commandFrame.add(tTreeLines);
-
-      tTreeLines.addEventListener("changeChecked", function(e) { t.setUseTreeLines(e.getData()); });
-
-
-      var tHideNode = new qx.ui.form.CheckBox("Hide the root node?");
-
-      with(tHideNode) {
-        setTop(100);
-        setLeft(0);
-        setChecked(false);
-      };
-
-      commandFrame.add(tHideNode);
-
-      tHideNode.addEventListener("changeChecked", function(e) { t.setHideNode(e.getData()); });
-
-
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TreeFullControl_4.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TreeFullControl_4.html
deleted file mode 100644 (file)
index 5367c24..0000000
+++ /dev/null
@@ -1,384 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Shows a tree and allows playing with the settings of the Tree
-    properties <i>hideNode</i> and <i>rootOpenClose</i>.  Also demonstrates
-    manipulating display (or not) of tree lines at specific indentation
-    levels, using the <i>excludeSpecificTreeLines</i> property.</p>
-
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Root");
-      var t = new qx.ui.treefullcontrol.Tree(trs);
-
-      with(t)
-      {
-        setBackgroundColor(255);
-        setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-        setOverflow("scrollY");
-
-        setHeight(null);
-        setTop(48);
-        setLeft(20);
-        setWidth(200);
-        setBottom(48);
-      };
-
-      qx.ui.core.ClientDocument.getInstance().add(t);
-      // One icon for selected and one for unselected states
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Desktop", "icon/16/places/user-desktop.png", "icon/16/apps/accessories-dictionary.png");
-      var te1 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      t.add(te1);
-
-      desktop = te1;
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Files");
-      var te1_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Workspace");
-      var te1_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Network");
-      var te1_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Trash");
-      var te1_4 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      te1.add(te1_1, te1_2, te1_3, te1_4);
-
-      // One icon specified, and used for both selected unselected states
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Windows (C:)", "icon/16/devices/drive-harddisk.png");
-      var te1_2_1 = new qx.ui.treefullcontrol.TreeFile(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Documents (D:)", "icon/16/devices/drive-harddisk.png");
-      var te1_2_2 = new qx.ui.treefullcontrol.TreeFile(trs);
-
-      te1_2.add(te1_2_1, te1_2_2);
-
-      arbeitsplatz = te1_2;
-
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Inbox");
-      var te2 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      posteingang = te2;
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Presets");
-      var te2_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Sent");
-      var te2_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Trash", "icon/16/places/user-trash.png");
-      var te2_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Data");
-      var te2_4 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Edit");
-      var te2_5 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      editieren = te2_5;
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Chat");
-      var te2_5_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Pustefix");
-      var te2_5_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("TINC");
-      var te2_5_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Announce");
-      var te2_5_3_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Devel");
-      var te2_5_3_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      te2_5_3.add(te2_5_3_1, te2_5_3_2);
-
-      te2_5.add(te2_5_1, te2_5_2, te2_5_3);
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Lists");
-      var te2_6 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Relations");
-      var te2_6_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Company");
-      var te2_6_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Questions");
-      var te2_6_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Internal");
-      var te2_6_4 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Products");
-      var te2_6_5 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Press");
-      var te2_6_6 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Development");
-      var te2_6_7 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Competition");
-      var te2_6_8 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      te2_6.add(te2_6_1, te2_6_2, te2_6_3, te2_6_4, te2_6_5, te2_6_6, te2_6_7, te2_6_8);
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Personal");
-      var te2_7 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Bugs");
-      var te2_7_1 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Family");
-      var te2_7_2 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Projects");
-      var te2_7_3 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Holiday");
-      var te2_7_4 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      te2_7.add(te2_7_1, te2_7_2, te2_7_3, te2_7_4);
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Big");
-      var te2_8 = new qx.ui.treefullcontrol.TreeFolder(trs);
-
-      for (var i=0;i<50; i++) {
-        trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Item " + i);
-        te2_8.add(new qx.ui.treefullcontrol.TreeFolder(trs));
-      };
-
-      trs = qx.ui.treefullcontrol.TreeRowStructure.getInstance().standard("Spam");
-      var te2_9 = new qx.ui.treefullcontrol.TreeFolder(trs);
-      spam = te2_9;
-
-      te2.add(te2_1, te2_2, te2_3, te2_4, te2_5, te2_6, te2_7, te2_8, te2_9);
-
-      t.add(te2);
-      qx.ui.core.ClientDocument.getInstance().add(t);
-
-
-
-
-
-
-      var commandFrame = new qx.ui.groupbox.GroupBox("Control");
-
-      with(commandFrame)
-      {
-        setTop(48);
-        setLeft(250);
-
-        setWidth("auto");
-        setHeight("auto");
-      };
-
-      qx.ui.core.ClientDocument.getInstance().add(commandFrame);
-
-
-
-
-      var tCurrentLabel = new qx.ui.basic.Atom("Current Folder: ");
-
-      with(tCurrentLabel)
-      {
-        setLeft(0);
-        setTop(0);
-      };
-
-      commandFrame.add(tCurrentLabel);
-
-
-
-      var tCurrentInput = new qx.ui.form.TextField;
-
-      with(tCurrentInput)
-      {
-        setLeft(0);
-        setRight(0);
-        setTop(20);
-
-        setReadOnly(true);
-      };
-
-      commandFrame.add(tCurrentInput);
-
-      t.getManager().addEventListener("changeSelection", function(e) {
-        tCurrentInput.setValue(e.getData()[0]._labelObject.getHtml());
-      });
-
-
-
-      var tDoubleClick = new qx.ui.form.CheckBox("Use double click?");
-
-      with(tDoubleClick) {
-        setTop(60);
-        setLeft(0);
-      };
-
-      commandFrame.add(tDoubleClick);
-
-      tDoubleClick.addEventListener("changeChecked", function(e) { t.setUseDoubleClick(e.getData()); });
-
-
-
-
-      var tTreeLines = new qx.ui.form.CheckBox("Use tree lines?");
-
-      with(tTreeLines) {
-        setTop(80);
-        setLeft(0);
-        setChecked(true);
-      };
-
-      commandFrame.add(tTreeLines);
-
-      tTreeLines.addEventListener("changeChecked", function(e) { t.setUseTreeLines(e.getData()); });
-
-
-      var tHideNode = new qx.ui.form.CheckBox("Hide the root node?");
-
-      with(tHideNode) {
-        setTop(100);
-        setLeft(0);
-        setChecked(false);
-      };
-
-      commandFrame.add(tHideNode);
-
-      tHideNode.addEventListener("changeChecked", function(e) { t.setHideNode(e.getData()); });
-
-      var tIncludeRootOpenClose =
-        new qx.ui.form.CheckBox("Include root open/close button?");
-
-      with(tIncludeRootOpenClose) {
-        setTop(120);
-        setLeft(0);
-        setChecked(true);
-      };
-
-      commandFrame.add(tIncludeRootOpenClose);
-
-      tIncludeRootOpenClose.addEventListener("changeChecked", function(e) { t.setRootOpenClose(e.getData()); });
-
-      tExcludeTreeLines0 =
-        new qx.ui.form.CheckBox("Exclude tree lines at level 0?");
-
-      with(tExcludeTreeLines0) {
-        setTop(140);
-        setLeft(0);
-        setChecked(false);
-      };
-
-      commandFrame.add(tExcludeTreeLines0);
-
-      tExcludeTreeLines0.addEventListener(
-          "changeChecked",
-          function(e)
-          {
-              var excl = t.getExcludeSpecificTreeLines();
-              if (e.getData()) {
-                  excl[0] = true;
-              } else {
-                  delete(excl[0]);
-              }
-              t.setExcludeSpecificTreeLines(excl);
-          });
-
-      tExcludeTreeLines1 =
-        new qx.ui.form.CheckBox("Exclude tree lines at level 1?");
-
-      with(tExcludeTreeLines1) {
-        setTop(160);
-        setLeft(0);
-        setChecked(false);
-      };
-
-      commandFrame.add(tExcludeTreeLines1);
-
-      tExcludeTreeLines1.addEventListener(
-          "changeChecked",
-          function(e)
-          {
-              var excl = t.getExcludeSpecificTreeLines();
-              if (e.getData()) {
-                  excl[1] = true;
-              } else {
-                  delete(excl[1]);
-              }
-              t.setExcludeSpecificTreeLines(excl);
-          });
-
-      tExcludeTreeLines2 =
-        new qx.ui.form.CheckBox("Exclude tree lines at level 2?");
-
-      with(tExcludeTreeLines2) {
-        setTop(180);
-        setLeft(0);
-        setChecked(false);
-      };
-
-      commandFrame.add(tExcludeTreeLines2);
-
-      tExcludeTreeLines2.addEventListener(
-          "changeChecked",
-          function(e)
-          {
-              var excl = t.getExcludeSpecificTreeLines();
-              if (e.getData()) {
-                  excl[2] = true;
-              } else {
-                  delete(excl[2]);
-              }
-              t.setExcludeSpecificTreeLines(excl);
-          });
-
-      tExcludeTreeLines3 =
-        new qx.ui.form.CheckBox("Exclude tree lines at level 3?");
-
-      with(tExcludeTreeLines3) {
-        setTop(200);
-        setLeft(0);
-        setChecked(false);
-      };
-
-      commandFrame.add(tExcludeTreeLines3);
-
-      tExcludeTreeLines3.addEventListener(
-          "changeChecked",
-          function(e)
-          {
-              var excl = t.getExcludeSpecificTreeLines();
-              if (e.getData()) {
-                  excl[3] = true;
-              } else {
-                  delete(excl[3]);
-              }
-              t.setExcludeSpecificTreeLines(excl);
-          });
-
-      tExcludeTreeLines4 =
-        new qx.ui.form.CheckBox("Exclude tree lines at level 4?");
-
-      with(tExcludeTreeLines4) {
-        setTop(220);
-        setLeft(0);
-        setChecked(false);
-      };
-
-      commandFrame.add(tExcludeTreeLines4);
-
-      tExcludeTreeLines4.addEventListener(
-          "changeChecked",
-          function(e)
-          {
-              var excl = t.getExcludeSpecificTreeLines();
-              if (e.getData()) {
-                  excl[4] = true;
-              } else {
-                  delete(excl[4]);
-              }
-              t.setExcludeSpecificTreeLines(excl);
-          });
-
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TreeVirtual_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TreeVirtual_1.html
deleted file mode 100644 (file)
index b92df15..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test large trees.  This one adds a Spam branch with 3000 leaf nodes.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    // tree
-    var tree = new qx.ui.treevirtual.TreeVirtual("Tree");
-    with (tree)
-    {
-      set({
-            left   : 10,
-            top    : 30,
-            width  : 400,
-            bottom : 30,
-            border : qx.renderer.border.BorderPresets.getInstance().thinInset
-          });
-      setColumnWidth(0, 400);
-      setAlwaysShowOpenCloseSymbol(true);
-    };
-
-    d.add(tree);
-
-    // tree data model
-    var dataModel = tree.getDataModel();
-
-    var te1 = dataModel.addBranch(null, "Desktop", true);
-    dataModel.setState(te1,
-                       {
-                         labelStyle : "background-color: red; color: white;"
-                       });
-                         
-    var te;
-
-    dataModel.addBranch(te1, "Files", true);
-
-    te = dataModel.addBranch(te1, "Workspace", true);
-    dataModel.addLeaf(te, "Windows (C:)");
-    dataModel.addLeaf(te, "Documents (D:)");
-
-    dataModel.addBranch(te1, "Network", true);
-
-    te = dataModel.addBranch(te1, "Trash", true);
-    dataModel.setState(te,
-                       {
-                         cellStyle : "background-color: cyan;"
-                       });
-
-
-    var te2 = dataModel.addBranch(null, "Inbox", true);
-
-    te = dataModel.addBranch(te2, "Spam", false);
-
-    for (var i = 1; i < 3000; i++)
-    {
-      dataModel.addLeaf(te, "Spam Message #" + i);
-    }
-
-    dataModel.addBranch(te2, "Sent", true);
-    dataModel.addBranch(te2, "Trash", true);
-    dataModel.addBranch(te2, "Data", true);
-    dataModel.addBranch(te2, "Edit", true);
-
-    dataModel.setData();
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TreeVirtual_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TreeVirtual_2.html
deleted file mode 100644 (file)
index 843de57..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Show use of events upon tree opening and closing, including adding
-    nodes dynamically upon tree open and removing the open/close button upon
-    tree open if the branch contains no children.
-    </p><p>
-    Allows controlling selection mode.  Labels of selected items are
-    displayed. 
-    </p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    // tree
-    var tree = new qx.ui.treevirtual.TreeVirtual("Tree");
-    with (tree)
-    {
-      set({
-            left   : 10,
-            top    : 30,
-            width  : 400,
-            bottom : 30,
-            border : qx.renderer.border.BorderPresets.getInstance().thinInset
-          });
-      setColumnWidth(0, 400);
-      setAlwaysShowOpenCloseSymbol(true);
-    };
-
-    // Add the tree to the document
-    tree.addToDocument();
-
-    // tree data model
-    var dataModel = tree.getDataModel();
-
-    var te1 = dataModel.addBranch(null, "Desktop", true);
-
-    var te;
-    dataModel.addBranch(te1, "Files", true);
-
-    te = dataModel.addBranch(te1, "Workspace", true);
-    dataModel.addLeaf(te, "Windows (C:)");
-    dataModel.addLeaf(te, "Documents (D:)");
-
-    dataModel.addBranch(te1, "Network", true);
-    dataModel.addBranch(te1, "Trash", true);
-
-    var te2 = dataModel.addBranch(null, "Inbox", true);
-
-    te = dataModel.addBranch(te2, "Spam", false);
-    for (var i = 1; i < 3000; i++)
-    {
-      dataModel.addLeaf(te, "Spam Message #" + i);
-    }
-
-    dataModel.addBranch(te2, "Sent", false);
-    dataModel.addBranch(te2, "Trash", false);
-    dataModel.addBranch(te2, "Data", false);
-    dataModel.addBranch(te2, "Edit", false);
-
-    dataModel.setData();
-
-    var newItem = 1;
-
-    /*
-     * Each time we get a treeOpenWithContent event, add yet another leaf node
-     * to the node being opened.
-     */
-    tree.addEventListener("treeOpenWithContent",
-                          function(e)
-                          {
-                            alert('treeOpenWithContent ');
-                            var node = e.getData();
-                            dataModel.addLeaf(node.nodeId, newItem.toString());
-                            newItem++;
-                          });
-
-    tree.addEventListener("treeClose",
-                          function(e)
-                          {
-                            alert('treeClose ');
-                          });
-
-    /*
-     * We handle opening an empty folder specially.  We demonstrate how to
-     * disable the open/close symbol once we've determined there's nothing in
-     * it.  This feature might be used to dynamically retrieve the contents of
-     * the folder, and if nothing is available, indicate it by removing the
-     * open/close symbol.
-     */
-    tree.addEventListener("treeOpenWhileEmpty",
-                          function(e)
-                          {
-                            alert('treeOpenWhileEmpty');
-                            var node = e.getData();
-                            tree.setState(node.nodeId,
-                                          { bHideOpenClose : true });
-                          });
-
-
-    tree.addEventListener("changeSelection",
-                          function(e)
-                          {
-                            var text = "Selected labels:";
-                            var selectedNodes = e.getData();
-                            for (i = 0; i < selectedNodes.length; i++)
-                            {
-                              text += "\n  " + selectedNodes[i].label;
-                            }
-                            alert('changeSelection: ' + text);
-                          });
-
-
-
-    var commandFrame = new qx.ui.groupbox.GroupBox("Control");
-    commandFrame.set({ top: 48, left: 520, right: 290, height: "auto" });
-    commandFrame.addToDocument();
-
-    // Create a combo box for the selection type
-    var o = new qx.ui.basic.Atom("Selection Mode: ");
-    o.set({ top: 6, left: 0 });
-    commandFrame.add(o);
-
-    o = new qx.ui.form.ComboBox();
-    o.set({ top: 20, left: 4, width: "100%" });
-    o.setEditable(false);
-
-    // Add the various selection types
-    var item = new qx.ui.form.ListItem("No Selection");
-    o.add(item);
-    var item = new qx.ui.form.ListItem("Single Selection");
-    o.add(item);
-    o.setSelected(item);
-    var item = new qx.ui.form.ListItem("Single Interval Selection");
-    o.add(item);
-    var item = new qx.ui.form.ListItem("Multiple Interval Selection");
-    o.add(item);
-  
-    // We want to be notified if the selection changes
-    o.addEventListener(
-      "changeSelected",
-      function()
-      {
-        switch(this.getValue())
-        {
-        case "No Selection":
-          tree.setSelectionMode(
-            qx.ui.treevirtual.TreeVirtual.SelectionMode.NONE);
-          break;
-
-        case "Single Selection":
-          tree.setSelectionMode(
-            qx.ui.treevirtual.TreeVirtual.SelectionMode.SINGLE);
-          break;
-
-        case "Single Interval Selection":
-          tree.setSelectionMode(
-            qx.ui.treevirtual.TreeVirtual.SelectionMode.SINGLE_INTERVAL);
-          break;
-
-        case "Multiple Interval Selection":
-          tree.setSelectionMode(
-            qx.ui.treevirtual.TreeVirtual.SelectionMode.MULTIPLE_INTERVAL);
-          break;
-        }
-      });
-
-    commandFrame.add(o);
-
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TreeVirtual_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TreeVirtual_3.html
deleted file mode 100644 (file)
index 70391ad..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>
-      Demonstrate use of multiple columns in a tree, and the use of the
-      getHierarchy() method to retrieve the entire tree path of a node.
-      Allows various options to be manipulated.
-    </p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    // tree
-    var tree = new qx.ui.treevirtual.TreeVirtual(
-        [
-          "Tree",
-          "Permissions",
-          "Last Accessed"
-        ]);
-    with (tree)
-    {
-      set({
-            left   : 10,
-            top    : 30,
-            width  : 506,
-            bottom : 30,
-            border : qx.renderer.border.BorderPresets.getInstance().thinInset
-          });
-      setAlwaysShowOpenCloseSymbol(true);
-      setColumnWidth(0, 200);
-      setColumnWidth(1, 80);
-      setColumnWidth(2, 200);
-    };
-
-    tree.addToDocument();
-
-    // tree data model
-    var dataModel = tree.getDataModel();
-
-    var te1 = dataModel.addBranch(null, "Desktop", true);
-    dataModel.setState(te1,
-                       {
-                         labelStyle :
-                           "background-color: red; " +
-                             "color: white;" +
-                             "font-weight: bold;"
-                       });
-                         
-    var te1_1;
-
-    dataModel.addBranch(te1, "Files", true);
-
-    te1_1 = dataModel.addBranch(te1, "Workspace", true);
-    te = dataModel.addLeaf(te1_1, "Windows (C:)");
-    dataModel.setColumnData(te, 1, "-rwxr-xr-x");
-    dataModel.setColumnData(te, 2, "2007-01-30 22:54:03");
-    te = dataModel.addLeaf(te1_1, "Documents (D:)");
-    dataModel.setColumnData(te, 1, "-rwxr-xr-x");
-    dataModel.setColumnData(te, 2, "2007-01-30 22:54:03");
-
-    dataModel.addBranch(te1, "Network", true);
-
-    te = dataModel.addBranch(te1, "Trash", true);
-    dataModel.setState(te,
-                       {
-                         cellStyle : "background-color: cyan;"
-                       });
-
-
-    var te2 = dataModel.addBranch(null, "Inbox", true);
-
-    te = dataModel.addBranch(te2, "Spam", false);
-
-    for (var i = 1; i < 3000; i++)
-    {
-      dataModel.addLeaf(te, "Spam Message #" + i);
-    }
-
-    dataModel.addBranch(te2, "Sent", false);
-    dataModel.addBranch(te2, "Trash", false);
-    dataModel.addBranch(te2, "Data", false);
-    dataModel.addBranch(te2, "Edit", false);
-
-    dataModel.setData();
-
-    var commandFrame = new qx.ui.groupbox.GroupBox("Control");
-    commandFrame.set({ top: 48, left: 520, width: "auto", height: "auto" });
-    commandFrame.addToDocument();
-
-    var o = new qx.ui.basic.Atom("Current Selection: ");
-    o.set({ left: 0, top: 6 });
-    commandFrame.add(o);
-
-    o = new qx.ui.form.TextField();
-    o.set({ left: 4, right: 0, top: 20, readOnly: true });
-    commandFrame.add(o);
-    tree.addEventListener(
-      "changeSelection",
-      function(e)
-      {
-        // Get the list of selected nodes.  We're in single-selection mode, so
-        // there will be only one of them.
-        var nodes = e.getData();
-        this.setValue(tree.getHierarchy(nodes[0].nodeId).join('/'));
-        buttonRemove.setEnabled(true);
-      },
-      o);
-
-    var buttonRemove = new qx.ui.form.Button("Remove");
-    buttonRemove.set({ top: 42, left: 0, enabled: false });
-    commandFrame.add(buttonRemove);
-    buttonRemove.addEventListener(
-      "execute",
-      function(e)
-      {
-        selectedNodes = tree.getSelectedNodes();
-        for (var i = 0; i < selectedNodes.length; i++)
-        {
-          dataModel.prune(selectedNodes[i].nodeId);
-          dataModel.setData();
-        }
-      });
-
-    o = new qx.ui.form.CheckBox("Use tree lines?");
-    o.set({ top: 80, left: 0, checked: true });
-    commandFrame.add(o);
-    o.addEventListener("changeChecked",
-                       function(e)
-                       {
-                         tree.setUseTreeLines(e.getData());
-                       });
-
-    o = new qx.ui.form.CheckBox("Exclude first-level tree lines?");
-    o.set({ top: 100, left: 0, checked: false });
-    commandFrame.add(o);
-    o.addEventListener("changeChecked",
-                       function(e)
-                       {
-                         tree.setExcludeFirstLevelTreeLines(e.getData());
-                       });
-
-    o = new qx.ui.form.CheckBox("Always show open/close symbol?");
-    o.set({ top: 120, left: 0, checked: true });
-    commandFrame.add(o);
-    o.addEventListener("changeChecked",
-                       function(e)
-                       {
-                         tree.setAlwaysShowOpenCloseSymbol(e.getData());
-                       });
-
-    o = new qx.ui.form.CheckBox("Remove open/close if found empty?");
-    o.set({ top: 140, left: 0, checked: true });
-    commandFrame.add(o);
-    tree.addEventListener("treeOpenWhileEmpty",
-                          function(e)
-                          {
-                            if (this.getChecked())
-                            {
-                              var node = e.getData();
-                              tree.setState(node.nodeId,
-                                            { bHideOpenClose : true });
-                            }
-                          },
-                          o);
-
-    o = new qx.ui.form.CheckBox("Open/close click selects row?");
-    o.set({ top: 160, left: 0, checked: false });
-    commandFrame.add(o);
-    o.addEventListener("changeChecked",
-                       function(e)
-                       {
-                         tree.setOpenCloseClickSelectsRow(e.getData());
-                       });
-
-    o = new qx.ui.form.CheckBox("Disable the tree?");
-    o.set({ top: 180, left: 0, checked: false });
-    commandFrame.add(o);
-    o.addEventListener("changeChecked",
-                       function(e)
-                       {
-                         tree.setEnabled(! e.getData());
-                       });
-
-    o = new qx.ui.form.CheckBox("Display a cell focus indicator?");
-    o.set({ top: 200, left: 0, checked: true });
-    commandFrame.add(o);
-    o.addEventListener("changeChecked",
-                       function(e)
-                       {
-                         if (e.getData())
-                         {
-                           tree.setCellFocusAttributes(
-                             {
-                               backgroundColor : "lightblue"
-                             });
-                         }
-                         else
-                         {
-                           tree.setCellFocusAttributes(
-                             {
-                               backgroundColor : "transparent"
-                             });
-                         }
-                       });
-
-
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TreeVirtual_4.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/TreeVirtual_4.html
deleted file mode 100644 (file)
index 65b5b9d..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Demonstrate providing initially-selected tree nodes.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    // tree
-    var tree = new qx.ui.treevirtual.TreeVirtual("Tree");
-    with (tree)
-    {
-      set({
-            left   : 10,
-            top    : 30,
-            width  : 400,
-            bottom : 30,
-            border : qx.renderer.border.BorderPresets.getInstance().thinInset
-          });
-      setColumnWidth(0, 400);
-      setAlwaysShowOpenCloseSymbol(true);
-    };
-
-    tree.setSelectionMode(
-              qx.ui.treevirtual.TreeVirtual.SelectionMode.MULTIPLE_INTERVAL);
-
-    // Add the tree to the document
-    tree.addToDocument();
-
-    // tree data model
-    var dataModel = tree.getDataModel();
-
-    var te1 = dataModel.addBranch(null, "Desktop", true);
-
-    var x;
-    var te;
-    dataModel.addBranch(te1, "Files", true);
-
-    te = dataModel.addBranch(te1, "Workspace", true);
-    x = dataModel.addLeaf(te, "Windows (C:)");
-    tree.setState(x, { bSelected : true });
-    x = dataModel.addLeaf(te, "Documents (D:)");
-    tree.setState(x, { bSelected : true });
-
-    dataModel.addBranch(te1, "Network", true);
-    dataModel.addBranch(te1, "Trash", true);
-
-    var te2 = dataModel.addBranch(null, "Inbox", true);
-
-    te = dataModel.addBranch(te2, "Spam", false);
-    for (var i = 1; i < 3000; i++)
-    {
-      dataModel.addLeaf(te, "Spam Message #" + i);
-    }
-
-    dataModel.addBranch(te2, "Sent", false);
-    dataModel.addBranch(te2, "Trash", false);
-    dataModel.addBranch(te2, "Data", false);
-    dataModel.addBranch(te2, "Edit", false);
-
-    dataModel.setData();
-
-    var newItem = 1;
-
-    var commandFrame = new qx.ui.groupbox.GroupBox("Control");
-    commandFrame.set({ top: 48, left: 520, right: 290, height: "auto" });
-    commandFrame.addToDocument();
-
-    // Create a combo box for the selection type
-    var o = new qx.ui.basic.Atom("Selection Mode: ");
-    o.set({ top: 6, left: 0 });
-    commandFrame.add(o);
-
-    o = new qx.ui.form.ComboBox();
-    o.set({ top: 20, left: 4, width: "100%" });
-    o.setEditable(false);
-
-    // Add the various selection types
-    var item = new qx.ui.form.ListItem("No Selection");
-    o.add(item);
-    var item = new qx.ui.form.ListItem("Single Selection");
-    o.add(item);
-    var item = new qx.ui.form.ListItem("Single Interval Selection");
-    o.add(item);
-    var item = new qx.ui.form.ListItem("Multiple Interval Selection");
-    o.add(item);
-    o.setSelected(item);
-  
-    // We want to be notified if the selection changes
-    o.addEventListener(
-      "changeSelected",
-      function()
-      {
-        switch(this.getValue())
-        {
-        case "No Selection":
-          tree.setSelectionMode(
-            qx.ui.treevirtual.TreeVirtual.SelectionMode.NONE);
-          break;
-
-        case "Single Selection":
-          tree.setSelectionMode(
-            qx.ui.treevirtual.TreeVirtual.SelectionMode.SINGLE);
-          break;
-
-        case "Single Interval Selection":
-          tree.setSelectionMode(
-            qx.ui.treevirtual.TreeVirtual.SelectionMode.SINGLE_INTERVAL);
-          break;
-
-        case "Multiple Interval Selection":
-          tree.setSelectionMode(
-            qx.ui.treevirtual.TreeVirtual.SelectionMode.MULTIPLE_INTERVAL);
-          break;
-        }
-      });
-
-    commandFrame.add(o);
-
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Tree_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Tree_1.html
deleted file mode 100644 (file)
index 295231b..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Shows a tree, with user-defined icons for some nodes.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var t = new qx.ui.tree.Tree("Root");
-
-      with(t)
-      {
-        setBackgroundColor(255);
-        setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-        setOverflow("scrollY");
-
-        setHeight(null);
-        setTop(48);
-        setLeft(20);
-        setWidth(200);
-        setBottom(48);
-      };
-
-      qx.ui.core.ClientDocument.getInstance().add(t);
-      // One icon for selected and one for unselected states
-      var te1 = new qx.ui.tree.TreeFolder("Desktop", "icon/16/places/user-desktop.png", "icon/16/apps/accessories-dictionary.png");
-      t.add(te1);
-
-      var te1_1 = new qx.ui.tree.TreeFolder("Files");
-      var te1_2 = new qx.ui.tree.TreeFolder("Workspace");
-      var te1_3 = new qx.ui.tree.TreeFolder("Network");
-      var te1_4 = new qx.ui.tree.TreeFolder("Trash");
-
-      te1.add(te1_1, te1_2, te1_3, te1_4);
-
-      // One icon specified, and used for both selected unselected states
-      var te1_2_1 = new qx.ui.tree.TreeFile("Windows (C:)", "icon/16/devices/drive-harddisk.png");
-      var te1_2_2 = new qx.ui.tree.TreeFile("Documents (D:)", "icon/16/devices/drive-harddisk.png");
-
-      te1_2.add(te1_2_1, te1_2_2);
-
-
-      var te2 = new qx.ui.tree.TreeFolder("Inbox");
-
-      var te2_1 = new qx.ui.tree.TreeFolder("Presets");
-      var te2_2 = new qx.ui.tree.TreeFolder("Sent");
-      var te2_3 = new qx.ui.tree.TreeFolder("Trash", "icon/16/places/user-trash.png");
-      var te2_4 = new qx.ui.tree.TreeFolder("Data");
-      var te2_5 = new qx.ui.tree.TreeFolder("Edit");
-
-      var te2_5_1 = new qx.ui.tree.TreeFolder("Chat");
-      var te2_5_2 = new qx.ui.tree.TreeFolder("Pustefix");
-      var te2_5_3 = new qx.ui.tree.TreeFolder("TINC");
-
-      var te2_5_3_1 = new qx.ui.tree.TreeFolder("Announce");
-      var te2_5_3_2 = new qx.ui.tree.TreeFolder("Devel");
-
-      te2_5_3.add(te2_5_3_1, te2_5_3_2);
-
-      te2_5.add(te2_5_1, te2_5_2, te2_5_3);
-
-      var te2_6 = new qx.ui.tree.TreeFolder("Lists");
-
-      var te2_6_1 = new qx.ui.tree.TreeFolder("Relations");
-      var te2_6_2 = new qx.ui.tree.TreeFolder("Company");
-      var te2_6_3 = new qx.ui.tree.TreeFolder("Questions");
-      var te2_6_4 = new qx.ui.tree.TreeFolder("Internal");
-      var te2_6_5 = new qx.ui.tree.TreeFolder("Products");
-      var te2_6_6 = new qx.ui.tree.TreeFolder("Press");
-      var te2_6_7 = new qx.ui.tree.TreeFolder("Development");
-      var te2_6_8 = new qx.ui.tree.TreeFolder("Competition");
-
-      te2_6.add(te2_6_1, te2_6_2, te2_6_3, te2_6_4, te2_6_5, te2_6_6, te2_6_7, te2_6_8);
-
-      var te2_7 = new qx.ui.tree.TreeFolder("Personal");
-
-      var te2_7_1 = new qx.ui.tree.TreeFolder("Bugs");
-      var te2_7_2 = new qx.ui.tree.TreeFolder("Family");
-      var te2_7_3 = new qx.ui.tree.TreeFolder("Projects");
-      var te2_7_4 = new qx.ui.tree.TreeFolder("Holiday");
-
-      te2_7.add(te2_7_1, te2_7_2, te2_7_3, te2_7_4);
-
-      var te2_8 = new qx.ui.tree.TreeFolder("Big");
-
-      for (var i=0;i<50; i++) {
-        te2_8.add(new qx.ui.tree.TreeFolder("Item " + i));
-      };
-
-      var te2_9 = new qx.ui.tree.TreeFolder("Spam");
-
-      te2.add(te2_1, te2_2, te2_3, te2_4, te2_5, te2_6, te2_7, te2_8, te2_9);
-
-      t.add(te2);
-      qx.ui.core.ClientDocument.getInstance().add(t);
-
-
-
-
-
-
-      var commandFrame = new qx.ui.groupbox.GroupBox("Control");
-
-      with(commandFrame)
-      {
-        setTop(48);
-        setLeft(250);
-
-        setWidth("auto");
-        setHeight("auto");
-      };
-
-      qx.ui.core.ClientDocument.getInstance().add(commandFrame);
-
-
-
-
-      var tCurrentLabel = new qx.ui.basic.Atom("Current Folder: ");
-
-      with(tCurrentLabel)
-      {
-        setLeft(0);
-        setTop(0);
-      };
-
-      commandFrame.add(tCurrentLabel);
-
-
-
-      var tCurrentInput = new qx.ui.form.TextField;
-
-      with(tCurrentInput)
-      {
-        setLeft(0);
-        setRight(0);
-        setTop(20);
-
-        setReadOnly(true);
-      };
-
-      commandFrame.add(tCurrentInput);
-
-      t.getManager().addEventListener("changeSelection", function(e) {
-        tCurrentInput.setValue(e.getData()[0]._labelObject.getHtml());
-      });
-
-
-
-      var tDoubleClick = new qx.ui.form.CheckBox("Use double click?");
-
-      with(tDoubleClick) {
-        setTop(60);
-        setLeft(0);
-      };
-
-      commandFrame.add(tDoubleClick);
-
-      tDoubleClick.addEventListener("changeChecked", function(e) { t.setUseDoubleClick(e.getData()); });
-
-
-
-
-      var tTreeLines = new qx.ui.form.CheckBox("Use tree lines?");
-
-      with(tTreeLines) {
-        setTop(80);
-        setLeft(0);
-        setChecked(true);
-      };
-
-      commandFrame.add(tTreeLines);
-
-      tTreeLines.addEventListener("changeChecked", function(e) { t.setUseTreeLines(e.getData()); });
-
-
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Window_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/Window_1.html
deleted file mode 100644 (file)
index 54eb402..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>This is the qx.ui.window.Window widget. These should emulate the default look and behaviour of the application windows running under Microsoft Windows(TM).</p>
-  </div>
-  
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var w1 = new qx.ui.window.Window("First Window", "icon/16/apps/preferences-desktop-multimedia.png");
-    w1.setSpace(20, 400, 48, 250);
-    d.add(w1);
-
-    var w2 = new qx.ui.window.Window("Second Window", "icon/16/actions/format-color.png");
-    w2.setSpace(250, "auto", 120, "auto");
-    d.add(w2);
-
-    var w3 = new qx.ui.window.Window("Third Window", "icon/16/categories/applications-internet.png");
-    w3.setSpace(100, 300, 200, 300);
-    w3.setMaxWidth(450);
-    w3.setMaxHeight(400);
-    d.add(w3);
-
-    var wm1 = new qx.ui.window.Window("First Modal Dialog");
-    wm1.setSpace(150, 200, 150, 200);
-    wm1.setModal(true);
-    d.add(wm1);
-
-    var wm2 = new qx.ui.window.Window("Second Modal Dialog");
-    wm2.setSpace(100, 200, 100, 150);
-    wm2.setModal(true);
-    wm2.setShowClose(false);
-    d.add(wm2);
-
-
-
-
-    var a1 = new qx.ui.basic.Atom("Welcome to your first own Window.<br/>Have fun!", "icon/32/apps/office-organizer.png");
-    a1.set({ top: 4, left: 4 });
-    w1.add(a1);
-
-
-
-
-    var tf1 = new qx.ui.pageview.tabview.TabView;
-    tf1.set({ left: 10, top: 52, right: 10, bottom: 10 });
-
-    var t1_1 = new qx.ui.pageview.tabview.Button("Explore");
-    var t1_2 = new qx.ui.pageview.tabview.Button("Internet");
-    var t1_3 = new qx.ui.pageview.tabview.Button("Future");
-
-    t1_1.setChecked(true);
-
-    tf1.getBar().add(t1_1, t1_2, t1_3);
-
-    var p1_1 = new qx.ui.pageview.tabview.Page(t1_1);
-    var p1_2 = new qx.ui.pageview.tabview.Page(t1_2);
-    var p1_3 = new qx.ui.pageview.tabview.Page(t1_3);
-
-    tf1.getPane().add(p1_1, p1_2, p1_3);
-
-    w1.add(tf1);
-
-
-
-    var at1 = new qx.ui.basic.Atom("Your second window", "icon/22/actions/edit-find.png");
-    at1.setLocation(8, 8);
-    w2.add(at1);
-
-
-
-
-    var btn1 = new qx.ui.form.Button("Open Modal Dialog 1", "icon/16/apps/system-software-update.png");
-    btn1.setLocation(4, 4);
-    w3.add(btn1);
-
-    btn1.addEventListener("execute", function(e) {
-      wm1.open();
-    });
-
-
-    var btn2 = new qx.ui.form.Button("Open Modal Dialog 2", "icon/16/apps/system-software-update.png");
-    btn2.setLocation(4, 4);
-    wm1.add(btn2);
-
-    btn2.addEventListener("execute", function(e) {
-      wm2.open();
-    });
-
-
-    var chkm1 = new qx.ui.form.CheckBox("Modal", null, null, true);
-    chkm1.setLocation(4, 50);
-    wm1.add(chkm1);
-
-    chkm1.addEventListener("changeChecked", function(e) {
-      wm1.setModal(e.getData());
-    });
-
-
-
-    var fs1 = new qx.ui.groupbox.GroupBox("Settings");
-    fs1.setLocation(4, 40);
-    fs1.setRight(4);
-    fs1.setBottom(4);
-
-
-    var chk1 = new qx.ui.form.CheckBox("Show Icon");
-    chk1.setLocation(0, 0);
-    chk1.setChecked(true);
-    chk1.addEventListener("changeChecked", function(e) {
-      w2.setShowIcon(e.getData());
-    });
-
-    var chk2 = new qx.ui.form.CheckBox("Show Caption");
-    chk2.setLocation(0, 20);
-    chk2.setChecked(true);
-    chk2.addEventListener("changeChecked", function(e) {
-      w2.setShowCaption(e.getData());
-    });
-
-
-
-    var chk3 = new qx.ui.form.CheckBox("Resizeable");
-    chk3.setLocation(0, 50);
-    chk3.setChecked(true);
-    chk3.addEventListener("changeChecked", function(e) {
-      w2.setResizeable(e.getData());
-    });
-
-    var chk4 = new qx.ui.form.CheckBox("Moveable");
-    chk4.setLocation(0, 70);
-    chk4.setChecked(true);
-    chk4.addEventListener("changeChecked", function(e) {
-      w2.setMoveable(e.getData());
-    });
-
-
-
-    var chk5 = new qx.ui.form.CheckBox("Show Close");
-    chk5.setLocation(140, 0);
-    chk5.setChecked(true);
-    chk5.addEventListener("changeChecked", function(e) {
-      w2.setShowClose(e.getData());
-    });
-
-    var chk6 = new qx.ui.form.CheckBox("Show Maximize/Restore");
-    chk6.setLocation(140, 20);
-    chk6.setChecked(true);
-    chk6.addEventListener("changeChecked", function(e) {
-      w2.setShowMaximize(e.getData());
-    });
-
-    var chk7 = new qx.ui.form.CheckBox("Show Minimize");
-    chk7.setLocation(140, 40);
-    chk7.setChecked(true);
-    chk7.addEventListener("changeChecked", function(e) {
-      w2.setShowMinimize(e.getData());
-    });
-
-
-
-    var chk8 = new qx.ui.form.CheckBox("Allow Close");
-    chk8.setLocation(140, 70);
-    chk8.setChecked(true);
-    chk8.addEventListener("changeChecked", function(e) {
-      w2.setAllowClose(e.getData());
-    });
-
-    var chk9 = new qx.ui.form.CheckBox("Allow Maximize");
-    chk9.setLocation(140, 90);
-    chk9.setChecked(true);
-    chk9.addEventListener("changeChecked", function(e) {
-      w2.setAllowMaximize(e.getData());
-    });
-
-    var chk10 = new qx.ui.form.CheckBox("Allow Minimize");
-    chk10.setLocation(140, 110);
-    chk10.setChecked(true);
-    chk10.addEventListener("changeChecked", function(e) {
-      w2.setAllowMinimize(e.getData());
-    });
-
-
-
-
-    var l1 = new qx.ui.basic.Atom("Move Method", "icon/16/actions/system-run.png");
-    l1.setLocation(0, 100);
-
-    var rb1 = new qx.ui.form.RadioButton("Frame", "frame");
-    rb1.setLocation(0, 120);
-
-    var rb2 = new qx.ui.form.RadioButton("Opaque", "opaque");
-    rb2.setLocation(0, 140);
-    rb2.setChecked(true);
-
-    var rb3 = new qx.ui.form.RadioButton("Translucent", "translucent");
-    rb3.setLocation(0, 160);
-
-    var rbm1 = new qx.manager.selection.RadioManager("move", [rb1, rb2, rb3]);
-
-    rbm1.addEventListener("changeSelected", function(e) {
-      w2.setMoveMethod(e.getData().getValue());
-    });
-
-
-
-
-    var l2 = new qx.ui.basic.Atom("Resize Method", "icon/16/actions/system-run.png");
-    l2.setLocation(0, 190);
-
-    var rb4 = new qx.ui.form.RadioButton("Frame", "frame");
-    rb4.setLocation(0, 210);
-    rb4.setChecked(true);
-
-    var rb5 = new qx.ui.form.RadioButton("Opaque", "opaque");
-    rb5.setLocation(0, 230);
-
-    var rb6 = new qx.ui.form.RadioButton("Lazy Opaque", "lazyopaque");
-    rb6.setLocation(0, 250);
-
-    var rb7 = new qx.ui.form.RadioButton("Translucent", "translucent");
-    rb7.setLocation(0, 270);
-
-    var rbm2 = new qx.manager.selection.RadioManager("resize", [rb4, rb5, rb6, rb7]);
-
-    rbm2.addEventListener("changeSelected", function(e) {
-      w2.setResizeMethod(e.getData().getValue());
-    });
-
-
-
-
-    var chk11 = new qx.ui.form.CheckBox("Show Statusbar");
-    chk11.setLocation(140, 140);
-    chk11.setChecked(false);
-    chk11.addEventListener("changeChecked", function(e) {
-      w2.setShowStatusbar(e.getData());
-    });
-
-
-
-
-    var btnpack = new qx.ui.form.Button("Pack Window", "icon/16/devices/media-optical.png");
-    btnpack.setLocation(140, 170);
-    btnpack.addEventListener("execute", function(e) {
-      w2.pack();
-    });
-
-
-    fs1.add(chk1, chk2, chk3, chk4, chk5, chk6, chk7, chk8, chk9, chk10, l1, rb1, rb2, rb3, l2, rb4, rb5, rb6, rb7, chk11, btnpack);
-    w2.add(fs1);
-
-
-    var icon1 = new qx.ui.basic.Image("icon/32/status/dialog-error.png");
-    var warn1 = new qx.ui.basic.Label("Do you want to<br/>fly to Rio?");
-
-    icon1.setTop(10);
-    icon1.setLeft(10);
-
-    warn1.setTop(10);
-    warn1.setLeft(48);
-
-    var btn3 = new qx.ui.form.Button("Yes", "icon/16/actions/dialog-ok.png");
-    var btn4 = new qx.ui.form.Button("No", "icon/16/actions/dialog-cancel.png");
-
-    btn3.addEventListener("execute", function(e) {
-      alert("Thank you!");
-      wm2.close();
-    });
-
-    btn4.addEventListener("execute", function(e) {
-      alert("Sorry, please click 'Yes'!");
-    });
-
-    btn3.set({ bottom : 10, right : 10 });
-    btn4.set({ bottom : 10, left : 10 });
-
-    wm2.add(btn3, btn4, icon1, warn1);
-
-
-
-    // Icon & Color Themes
-    //qx.manager.object.ImageManager.getInstance().createThemeList(w3, 20, 248);
-    qx.manager.object.ColorManager.getInstance().createThemeList(w3, 4, 58);
-
-
-
-
-    w1.open();
-    w2.open();
-    w3.open();
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file1.swf b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file1.swf
deleted file mode 100644 (file)
index 2e6d69a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file1.swf and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file10.swf b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file10.swf
deleted file mode 100644 (file)
index eeafa9a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file10.swf and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file2.swf b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file2.swf
deleted file mode 100644 (file)
index 51c8f0f..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file2.swf and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file3.swf b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file3.swf
deleted file mode 100644 (file)
index 0b6b56b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file3.swf and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file4.swf b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file4.swf
deleted file mode 100644 (file)
index 746baa8..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file4.swf and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file5.swf b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file5.swf
deleted file mode 100644 (file)
index a3333e1..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file5.swf and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file6.swf b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file6.swf
deleted file mode 100644 (file)
index 2cad550..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file6.swf and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file7.swf b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file7.swf
deleted file mode 100644 (file)
index b5f4eb4..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file7.swf and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file8.swf b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file8.swf
deleted file mode 100644 (file)
index 54c9a11..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file8.swf and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file9.swf b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file9.swf
deleted file mode 100644 (file)
index cc41ff1..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/color/file9.swf and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/fo_tester.fla b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/fo_tester.fla
deleted file mode 100644 (file)
index afd4bb6..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/fo_tester.fla and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/fo_tester.swf b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/fo_tester.swf
deleted file mode 100644 (file)
index 8e0b966..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/image/flash/fo_tester.swf and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/index.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/example/index.html
deleted file mode 100644 (file)
index ac16317..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<html>
-  <head>
-    <script type="text/javascript">window.location.href="Atom_1.html";</script>
-  </head>
-  <body>
-    <a href="Atom1.html">Continue...</a>
-  </body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/ArrayCreate_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/ArrayCreate_1.html
deleted file mode 100644 (file)
index 17b7b62..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Tests for empty Array creation performance</p>
-    <ol>
-      <li>Using "[]"</li>
-      <li>Using "new Array"</li>
-      <li>Using "new Array()"</li>
-    </ol>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    function ArrayCreate1(vLoops)
-    {
-      var foo;
-
-      for (var i=0; i<vLoops; i++) {
-        foo = [];
-      };
-    };
-
-    function ArrayCreate2(vLoops)
-    {
-      var foo;
-
-      for (var i=0; i<vLoops; i++) {
-        foo = new Array;
-      };
-    };
-
-    function ArrayCreate3(vLoops)
-    {
-      var foo;
-
-      for (var i=0; i<vLoops; i++) {
-        foo = new Array();
-      };
-    };
-
-    new qx.dev.TimeTracker(ArrayCreate1, ArrayCreate2, ArrayCreate3);
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/ArrayCreate_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/ArrayCreate_2.html
deleted file mode 100644 (file)
index 24dc250..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Tests for filled Array creation performance</p>
-    <ol>
-      <li>Using "[ values ]"</li>
-      <li>Using "new Array(values)"</li>
-    </ol>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    function ArrayCreate1(vLoops)
-    {
-      var foo;
-
-      for (var i=0; i<vLoops; i++) {
-        foo = [ 1, 2, 3, 4, 5 ];
-      };
-    };
-
-    function ArrayCreate2(vLoops)
-    {
-      var foo;
-
-      for (var i=0; i<vLoops; i++) {
-        foo = new Array(1, 2, 3, 4, 5);
-      };
-    };
-
-    new qx.dev.TimeTracker(ArrayCreate1, ArrayCreate2);
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/GlobalObject_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/GlobalObject_1.html
deleted file mode 100644 (file)
index 438d962..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>JS Object Storage Performance</p>
-
-    <h1>Test Description</h1>
-    <p>Create 10.000 new (non stored) objects inside a loop. Identical to LocalObject_1.html.</p>
-
-    <h1>Result</h1>
-    <p>The performance in IE is quite good (~330ms for each loop), compared to the same stuff executed without the precreated stuff.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    function test()
-    {
-      var _s = (new Date).valueOf();
-
-      for (var i=0; i<10000; i++) {
-        new Object()
-      };
-
-      window.status = "time: " + (new Date).valueOf() + " | measured: " + ((new Date).valueOf() - _s) + "ms";
-      window.setTimeout(test, 1000);
-    }
-
-    test();
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/GlobalObject_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/GlobalObject_2.html
deleted file mode 100644 (file)
index 747381a..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>JS Object Storage Performance</p>
-
-    <h1>Test Description</h1>
-    <p>Precreate 50.000 objects (globally stored). After this create 10.000 new (non stored) objects inside a loop.</p>
-    <p>Keep global storage over runtime.</p>
-
-    <h1>Result</h1>
-    <p>The performance in IE is poor (~1150ms for each loop), compared to the same stuff executed without so much precreated objects (previous example).</p>
-    <p>It makes no difference if we use a global or a local variable here. It's identical to LocalObject_2.html.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    window.store = [];
-
-    for (var i=0; i<50000; i++) {
-      window.store.push({});
-    };
-
-    function test()
-    {
-      var _s = (new Date).valueOf();
-
-      for (var i=0; i<10000; i++) {
-        new Object()
-      };
-
-      window.status = "time: " + (new Date).valueOf() + " | measured: " + ((new Date).valueOf() - _s) + "ms";
-      window.setTimeout(test, 1000);
-    }
-
-    test();
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/GlobalObject_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/GlobalObject_3.html
deleted file mode 100644 (file)
index 1e99209..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>JS Object Storage Performance</p>
-
-    <h1>Test Description</h1>
-    <p>Precreate 50.000 objects (globally stored). After this create 10.000 new (non stored) objects inside a loop.</p>
-    <p>Use removeAll to clean up global storage after first loop.</p>
-
-    <h1>Result</h1>
-    <p>The additional cleanup (remove all entries) of the global storage optimizes performance after the first loop. First loop is done after ~1150ms. The following loop needs ~490ms. Not bad, but poorly compared to the version, where the storage have never exist before. (See first examples, which executes in ~350ms.)</p>
-    <p>It makes no difference if we use a global or a local variable here. It's identical to LocalObject_3.html.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    window.store = [];
-
-    for (var i=0; i<50000; i++) {
-      window.store.push({});
-    };
-
-    function test()
-    {
-      var _s = (new Date).valueOf();
-
-      for (var i=0; i<10000; i++) {
-        new Object()
-      };
-
-      window.status = "time: " + (new Date).valueOf() + " | measured: " + ((new Date).valueOf() - _s) + "ms";
-      window.setTimeout(test, 1000);
-    }
-
-    test();
-
-    qx.lang.Array.removeAll(window.store);
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/GlobalObject_4.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/GlobalObject_4.html
deleted file mode 100644 (file)
index e8f7663..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>JS Object Storage Performance</p>
-
-    <h1>Test Description</h1>
-    <p>Precreate 50.000 objects (globally stored). After this create 10.000 new (non stored) objects inside a loop.</p>
-    <p>Overwrite global storage to clean up after first loop.</p>
-
-    <h1>Result</h1>
-    <p>The additional cleanup (overwrite with null) of the global storage optimizes performance after the first loop. First loop is done after ~1150ms. The following loop needs ~350ms. Quite good. The same value as in the first example, where the data have never exist.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    window.store = [];
-
-    for (var i=0; i<50000; i++) {
-      window.store.push({});
-    };
-
-    function test()
-    {
-      var _s = (new Date).valueOf();
-
-      for (var i=0; i<10000; i++) {
-        new Object()
-      };
-
-      window.status = "time: " + (new Date).valueOf() + " | measured: " + ((new Date).valueOf() - _s) + "ms";
-      window.setTimeout(test, 1000);
-    }
-
-    test();
-
-    window.store = null;
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/LocalObject_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/LocalObject_1.html
deleted file mode 100644 (file)
index 5228d4f..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>JS Object Storage Performance</p>
-
-    <h1>Test Description</h1>
-    <p>Create 10.000 new (non stored) objects inside a loop. Identical to GlobalObject_1.html.</p>
-
-    <h1>Result</h1>
-    <p>The performance in IE is quite good (~330ms for each loop), compared to the same stuff executed without the precreated stuff.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    function test()
-    {
-      var _s = (new Date).valueOf();
-
-      for (var i=0; i<10000; i++) {
-        new Object()
-      };
-
-      window.status = "time: " + (new Date).valueOf() + " | measured: " + ((new Date).valueOf() - _s) + "ms";
-      window.setTimeout(test, 1000);
-    }
-
-    test();
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/LocalObject_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/LocalObject_2.html
deleted file mode 100644 (file)
index dca923d..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>JS Object Storage Performance</p>
-
-    <h1>Test Description</h1>
-    <p>Precreate 50.000 objects (locally stored). After this create 10.000 new (not stored) objects inside a loop.</p>
-    <p>As the loop will be executed inside the scope of "store", the browser must keep the information about "store" with each execution of "test", even if called from the timeout.</p>
-
-    <h1>Result</h1>
-    <p>The performance in IE is poor (~1150ms for each loop), compared to the same stuff executed without so much precreated objects (previous example).</p>
-    <p>It makes no difference if we use a global or a local variable here. It's identical to GlobalObject_2.html.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var store = [];
-
-    for (var i=0; i<50000; i++) {
-      store.push({});
-    };
-
-    function test()
-    {
-      var _s = (new Date).valueOf();
-
-      for (var i=0; i<10000; i++) {
-        new Object()
-      };
-
-      window.status = "time: " + (new Date).valueOf() + " | measured: " + ((new Date).valueOf() - _s) + "ms";
-      window.setTimeout(test, 1000);
-    }
-
-    test();
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/LocalObject_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/LocalObject_3.html
deleted file mode 100644 (file)
index cf180b4..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>JS Object Storage Performance</p>
-
-    <h1>Test Description</h1>
-    <p>Precreate 50.000 objects (locally stored). After this create 10.000 new (not stored) objects inside a loop.</p>
-
-    <h1>Result</h1>
-    <p>The additional cleanup (remove all entries) of the local storage optimizes performance after the first loop. First loop is done after ~1150ms. The following loop needs ~490ms. Not bad, but poorly compared to the version, where the storage have never exist before. (See first examples, which executes in ~350ms.)</p>
-    <p>It makes no difference if we use a global or a local variable here. It's identical to GlobalObject_3.html.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var store = [];
-
-    for (var i=0; i<50000; i++) {
-      store.push({});
-    };
-
-    function test()
-    {
-      var _s = (new Date).valueOf();
-
-      for (var i=0; i<10000; i++) {
-        new Object()
-      };
-
-      window.status = "time: " + (new Date).valueOf() + " | measured: " + ((new Date).valueOf() - _s) + "ms";
-      window.setTimeout(test, 1000);
-    }
-
-    test();
-
-    qx.lang.Array.removeAll(store);
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/LocalObject_4.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/LocalObject_4.html
deleted file mode 100644 (file)
index 0cd346a..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>JS Object Storage Performance</p>
-
-    <h1>Test Description</h1>
-    <p>Precreate 50.000 objects (locally stored). After this create 10.000 new (not stored) objects inside a loop.</p>
-    <p>The "store" variable will be resetted after the first loop with "null".</p>
-
-    <h1>Result</h1>
-    <p>The additional cleanup (overwrite with null) of the global storage optimizes performance after the first loop. First loop is done after ~1150ms. The following loop needs ~350ms. Quite good. The same value as in the first example, where the data have never exist.</p>
-    <p>Interesting because theoratically the function implemenetation of "test" is inside the scope of "store".</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var store = [];
-
-    for (var i=0; i<50000; i++) {
-      store.push({});
-    };
-
-    function test()
-    {
-      var _s = (new Date).valueOf();
-
-      for (var i=0; i<10000; i++) {
-        new Object()
-      };
-
-      window.status = "time: " + (new Date).valueOf() + " | measured: " + ((new Date).valueOf() - _s) + "ms";
-      window.setTimeout(test, 1000);
-    }
-
-    test();
-
-    store = null;
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/LocalObject_5.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/LocalObject_5.html
deleted file mode 100644 (file)
index 0c218f9..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>JS Object Storage Performance</p>
-
-    <h1>Test Description</h1>
-    <p>Precreate 50.000 objects (locally stored). After this create 10.000 new (not stored) objects inside a loop.</p>
-    <p>The test method is implemented outside of the scope of "store".</p>
-
-    <h1>Result</h1>
-    <p>We need no additional cleanup to get a good performance of the function. First loop is done after ~1150ms. The following loop needs ~350ms. Quite good. The same value as in the first example, where the data have never exist.</p>
-  </div>
-
-  <script type="text/javascript">
-  function test()
-  {
-    var _s = (new Date).valueOf();
-
-    for (var i=0; i<10000; i++) {
-      new Object()
-    };
-
-    window.status = "time: " + (new Date).valueOf() + " | measured: " + ((new Date).valueOf() - _s) + "ms";
-    window.setTimeout(test, 1000);
-  }
-
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var store = [];
-
-    for (var i=0; i<50000; i++) {
-      store.push({});
-    };
-
-    test();
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/NumberCreate_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/NumberCreate_1.html
deleted file mode 100644 (file)
index 79c1e40..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Tests for Number creation performance</p>
-    <ol>
-      <li>Using simple number</li>
-      <li>Using parseInt</li>
-      <li>Using parseFloat</li>
-      <li>Using new with string int</li>
-      <li>Using new with string float</li>
-      <li>Using new with simple number</li>
-      <li>Using new with parseInt</li>
-      <li>Using new with parseFloat</li>
-    </ol>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var n1 = "2392";
-    var n2 = "223.92";
-
-    function NumberCreate1(vLoops)
-    {
-      var foo;
-
-      for (var i=0; i<vLoops; i++) {
-        foo = 2392;
-      };
-    };
-
-    function NumberCreate2(vLoops)
-    {
-      var foo;
-
-      for (var i=0; i<vLoops; i++) {
-        foo = parseInt(n1);
-      };
-    };
-
-    function NumberCreate3(vLoops)
-    {
-      var foo;
-
-      for (var i=0; i<vLoops; i++) {
-        foo = parseFloat(n2);
-      };
-    };
-
-    function NumberCreate4(vLoops)
-    {
-      var foo;
-
-      for (var i=0; i<vLoops; i++) {
-        foo = new Number(n1);
-      };
-    };
-
-    function NumberCreate5(vLoops)
-    {
-      var foo;
-
-      for (var i=0; i<vLoops; i++) {
-        foo = new Number(n2);
-      };
-    };
-
-    function NumberCreate6(vLoops)
-    {
-      var foo;
-
-      for (var i=0; i<vLoops; i++) {
-        foo = new Number(2392);
-      };
-    };
-
-    function NumberCreate7(vLoops)
-    {
-      var foo;
-
-      for (var i=0; i<vLoops; i++) {
-        foo = new Number(parseInt(n1));
-      };
-    };
-
-    function NumberCreate8(vLoops)
-    {
-      var foo;
-
-      for (var i=0; i<vLoops; i++) {
-        foo = new Number(parseFloat(n2));
-      };
-    };
-
-    new qx.dev.TimeTracker(NumberCreate1, NumberCreate2, NumberCreate3, NumberCreate4, NumberCreate5, NumberCreate6, NumberCreate7, NumberCreate8);
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/ObjectCreate_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/ObjectCreate_1.html
deleted file mode 100644 (file)
index 9e2743b..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Tests for empty Object creation performance</p>
-    <ol>
-      <li>Using "{}"</li>
-      <li>Using "new Object"</li>
-      <li>Using "new Object()"</li>
-    </ol>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    function ObjectCreate1(vLoops)
-    {
-      var foo;
-
-      for (var i=0; i<vLoops; i++) {
-        foo = {};
-      };
-    };
-
-    function ObjectCreate2(vLoops)
-    {
-      var foo;
-
-      for (var i=0; i<vLoops; i++) {
-        foo = new Object;
-      };
-    };
-
-    function ObjectCreate3(vLoops)
-    {
-      var foo;
-
-      for (var i=0; i<vLoops; i++) {
-        foo = new Object();
-      };
-    };
-
-    new qx.dev.TimeTracker(ObjectCreate1, ObjectCreate2, ObjectCreate3);
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/ObjectCreate_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/ObjectCreate_2.html
deleted file mode 100644 (file)
index 2e6dac8..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Tests for filled Object creation performance</p>
-    <ol>
-      <li>Using "{ content }"</li>
-      <li>Using "new Object; obj.key = value"</li>
-      <li>Using "new Object(); obj.key = value"</li>
-    </ol>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    function ObjectCreate1(vLoops)
-    {
-      var foo;
-
-      for (var i=0; i<vLoops; i++) {
-        foo = {
-          key1 : 1,
-          key2 : 2,
-          key3 : 3,
-          key4 : 4,
-          key5 : 5
-        };
-      };
-    };
-
-    function ObjectCreate2(vLoops)
-    {
-      var foo;
-
-      for (var i=0; i<vLoops; i++)
-      {
-        foo = new Object;
-
-        foo.key1 = 1;
-        foo.key2 = 2;
-        foo.key3 = 3;
-        foo.key4 = 4;
-        foo.key5 = 5;
-      };
-    };
-
-    function ObjectCreate3(vLoops)
-    {
-      var foo;
-
-      for (var i=0; i<vLoops; i++)
-      {
-        foo = new Object();
-
-        foo.key1 = 1;
-        foo.key2 = 2;
-        foo.key3 = 3;
-        foo.key4 = 4;
-        foo.key5 = 5;
-      };
-    };
-
-    new qx.dev.TimeTracker(ObjectCreate1, ObjectCreate2, ObjectCreate3);
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/ObjectLevel_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/ObjectLevel_1.html
deleted file mode 100755 (executable)
index 7b5034c..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing the influence of inheritance to object creation performance.</p>
-    <p>Result: Each inheritance level increases the negative effect.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    function l1() {
-      this.store = true;
-    }
-
-    function l2() {
-      l1.call(this);
-    }
-    l2.prototype = new l1;
-
-    function l3() {
-      l2.call(this);
-    }
-    l3.prototype = new l2;
-
-    function l4() {
-      l3.call(this);
-    }
-    l4.prototype = new l3;
-
-    function l5() {
-      l4.call(this);
-    }
-    l5.prototype = new l4;
-
-    function l6() {
-      l5.call(this);
-    }
-    l6.prototype = new l5;
-
-
-    function t1(vLoops) {
-      for (var i=0; i<vLoops; i++) {
-        new l1;
-      }
-    }
-
-    function t2(vLoops) {
-      for (var i=0; i<vLoops; i++) {
-        new l2;
-      }
-    }
-
-    function t3(vLoops) {
-      for (var i=0; i<vLoops; i++) {
-        new l3;
-      }
-    }
-
-    function t4(vLoops) {
-      for (var i=0; i<vLoops; i++) {
-        new l4;
-      }
-    }
-
-    function t5(vLoops) {
-      for (var i=0; i<vLoops; i++) {
-        new l5;
-      }
-    }
-
-    function t6(vLoops) {
-      for (var i=0; i<vLoops; i++) {
-        new l6;
-      }
-    }
-
-    new qx.dev.TimeTracker(t1, t2, t3, t4, t5, t6);
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/ObjectLevel_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/ObjectLevel_2.html
deleted file mode 100755 (executable)
index 90a60bb..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing the influence of inheritance to object creation performance.</p>
-    <p>Don't execute superclass constructor.</p>
-    <p>Result: No negative effect!</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    function l1() {
-      this.store = true;
-    }
-
-    function l2() {
-    }
-    l2.prototype = new l1;
-
-    function l3() {
-    }
-    l3.prototype = new l2;
-
-    function l4() {
-    }
-    l4.prototype = new l3;
-
-    function l5() {
-    }
-    l5.prototype = new l4;
-
-    function l6() {
-    }
-    l6.prototype = new l5;
-
-
-    function t1(vLoops) {
-      for (var i=0; i<vLoops; i++) {
-        new l1;
-      }
-    }
-
-    function t2(vLoops) {
-      for (var i=0; i<vLoops; i++) {
-        new l2;
-      }
-    }
-
-    function t3(vLoops) {
-      for (var i=0; i<vLoops; i++) {
-        new l3;
-      }
-    }
-
-    function t4(vLoops) {
-      for (var i=0; i<vLoops; i++) {
-        new l4;
-      }
-    }
-
-    function t5(vLoops) {
-      for (var i=0; i<vLoops; i++) {
-        new l5;
-      }
-    }
-
-    function t6(vLoops) {
-      for (var i=0; i<vLoops; i++) {
-        new l6;
-      }
-    }
-
-    new qx.dev.TimeTracker(t1, t2, t3, t4, t5, t6);
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/ObjectLevel_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/ObjectLevel_3.html
deleted file mode 100644 (file)
index 88433a8..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing the influence of inheritance to object creation performance.</p>
-    <p>Result: Each inheritance level increases the negative effect.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    function l1() {
-      this.store = true;
-    }
-
-    function l2() {
-      this._t = l1;
-      this._t();
-    }
-    l2.prototype = new l1;
-
-    function l3() {
-      this._t = l2;
-      this._t();
-    }
-    l3.prototype = new l2;
-
-    function l4() {
-      this._t = l3;
-      this._t();
-    }
-    l4.prototype = new l3;
-
-    function l5() {
-      this._t = l4;
-      this._t();
-    }
-    l5.prototype = new l4;
-
-    function l6() {
-      this._t = l5;
-      this._t();
-    }
-    l6.prototype = new l5;
-
-
-    function t1(vLoops) {
-      for (var i=0; i<vLoops; i++) {
-        new l1;
-      }
-    }
-
-    function t2(vLoops) {
-      for (var i=0; i<vLoops; i++) {
-        new l2;
-      }
-    }
-
-    function t3(vLoops) {
-      for (var i=0; i<vLoops; i++) {
-        new l3;
-      }
-    }
-
-    function t4(vLoops) {
-      for (var i=0; i<vLoops; i++) {
-        new l4;
-      }
-    }
-
-    function t5(vLoops) {
-      for (var i=0; i<vLoops; i++) {
-        new l5;
-      }
-    }
-
-    function t6(vLoops) {
-      for (var i=0; i<vLoops; i++) {
-        new l6;
-      }
-    }
-
-    new qx.dev.TimeTracker(t1, t2, t3, t4, t5, t6);
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/ObjectSize_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/ObjectSize_1.html
deleted file mode 100755 (executable)
index 27fd663..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing the incluence to the performance of data using the prototype mechanism on classes.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var emptyObject = function() {};
-    var protoObject1 = function() {};
-    var protoObject2 = function() {};
-
-    for (var i=0; i<1000; i++)
-    {
-      protoObject1.prototype["i" + i] = function() {
-        alert("Hello World: " + i);
-      };
-    }
-
-    for (var i=0; i<1000; i++)
-    {
-      protoObject2.prototype["i" + i] = "Hello World";
-    }
-
-    function empty(vLoops)
-    {
-      for (var i=0; i<vLoops; i++) {
-        new emptyObject;
-      }
-    }
-
-    function protos1(vLoops)
-    {
-      for (var i=0; i<vLoops; i++) {
-        new protoObject1;
-      }
-    }
-
-    function protos2(vLoops)
-    {
-      for (var i=0; i<vLoops; i++) {
-        new protoObject2;
-      }
-    }
-
-    new qx.dev.TimeTracker(empty, protos1, protos2);
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/Qooxdoo_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/Qooxdoo_1.html
deleted file mode 100644 (file)
index 25810be..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Tests for qooxdoo object performance</p>
-    <ol>
-      <li>qx.core.Object</li>
-      <li>qx.core.Target</li>
-      <li>qx.event.type.Event</li>
-      <li>qx.event.type.MouseEvent</li>
-      <li>qx.ui.basic.Terminator</li>
-      <li>qx.ui.layout.CanvasLayout</li>
-      <li>qx.ui.layout.BoxLayout</li>
-    </ol>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    function TestObject(vLoops)
-    {
-      for (var i=0; i<vLoops; i++) {
-        new qx.core.Object;
-      };
-    };
-
-    function TestTarget(vLoops)
-    {
-      for (var i=0; i<vLoops; i++) {
-        new qx.core.Target;
-      };
-    };
-
-    function TestEvent(vLoops)
-    {
-      for (var i=0; i<vLoops; i++) {
-        new qx.event.type.Event;
-      };
-    };
-
-    function TestMouseEvent(vLoops)
-    {
-      for (var i=0; i<vLoops; i++) {
-        new qx.event.type.MouseEvent;
-      };
-    };
-
-    function TestTerminator(vLoops)
-    {
-      for (var i=0; i<vLoops; i++) {
-        new qx.ui.basic.Terminator;
-      };
-    };
-
-    function TestCanvasLayout(vLoops)
-    {
-      for (var i=0; i<vLoops; i++) {
-        new qx.ui.layout.CanvasLayout;
-      };
-    };
-
-    function TestBoxLayout(vLoops)
-    {
-      for (var i=0; i<vLoops; i++) {
-        new qx.ui.layout.BoxLayout;
-      };
-    };
-
-    new qx.dev.TimeTracker(TestObject, TestTarget, TestEvent, TestMouseEvent, TestTerminator, TestCanvasLayout, TestBoxLayout);
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/StringConcat_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/StringConcat_1.html
deleted file mode 100644 (file)
index cd2e363..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Tests for String Performance. Using new String instances for concat.</p>
-    <ol>
-      <li>Operator +=</li>
-      <li>Operators = and +</li>
-      <li>Concat function</li>
-      <li>Array Push</li>
-      <li>Array Index</li>
-      <li>StringBuilder Object</li>
-    </ol>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    function StringConcatShort(vLoops)
-    {
-      var s = "";
-
-      for (var i=0; i<vLoops; i++) {
-        s += "a";
-      };
-    };
-
-    function StringConcatShortAlt(vLoops)
-    {
-      var s = "";
-
-      for (var i=0; i<vLoops; i++) {
-        s = s + "a";
-      };
-    };
-
-    function StringConcatMethod(vLoops)
-    {
-      var s = "";
-
-      for (var i=0; i<vLoops; i++) {
-        s=s.concat("a");
-      };
-    };
-
-    function StringConcatArrayPush(vLoops)
-    {
-      var s = [];
-
-      for (var i=0; i<vLoops; i++) {
-        s.push("a");
-      };
-
-      s = s.join("");
-    };
-
-    function StringConcatArrayAdd(vLoops)
-    {
-      var s = [];
-
-      for (var i=0; i<vLoops; i++) {
-        s[s.length] = "a";
-      };
-
-      s = s.join("");
-    };
-
-    function StringConcatStringBuilder(vLoops)
-    {
-      var s = new qx.util.StringBuilder;
-
-      for (var i=0; i<vLoops; i++) {
-        s.add("a");
-      };
-
-      s = s.get();
-    };
-
-    new qx.dev.TimeTracker(StringConcatShort, StringConcatShortAlt, 
-      StringConcatMethod, StringConcatArrayPush, StringConcatArrayAdd, 
-      StringConcatStringBuilder);
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/StringConcat_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/StringConcat_2.html
deleted file mode 100644 (file)
index 5b17c14..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Tests for String Performance. Using cached string instances for concat.</p>
-    <ol>
-      <li>Operator +=</li>
-      <li>Operators = and +</li>
-      <li>Concat function</li>
-      <li>Array Push</li>
-      <li>Array Index</li>
-      <li>StringBuilder Object</li>
-    </ol>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var e = "";
-    var a = "a";
-
-    function StringConcatShort(vLoops)
-    {
-      var s = e;
-
-      for (var i=0; i<vLoops; i++) {
-        s += a;
-      };
-    };
-
-    function StringConcatShortAlt(vLoops)
-    {
-      var s = e;
-
-      for (var i=0; i<vLoops; i++) {
-        s = s + a;
-      };
-    };
-
-    function StringConcatMethod(vLoops)
-    {
-      var s = e;
-
-      for (var i=0; i<vLoops; i++) {
-        s=s.concat(a);
-      };
-    };
-
-    function StringConcatArrayPush(vLoops)
-    {
-      var s = [];
-
-      for (var i=0; i<vLoops; i++) {
-        s.push(a);
-      };
-
-      s = s.join(e);
-    };
-
-    function StringConcatArrayAdd(vLoops)
-    {
-      var s = [];
-
-      for (var i=0; i<vLoops; i++) {
-        s[s.length] = a;
-      };
-
-      s = s.join(e);
-    };
-
-    function StringConcatStringBuilder(vLoops)
-    {
-      var s = new qx.util.StringBuilder;
-
-      for (var i=0; i<vLoops; i++) {
-        s.add(a);
-      };
-
-      s = s.get();
-    };
-
-    new qx.dev.TimeTracker(StringConcatShort, StringConcatShortAlt, 
-      StringConcatMethod, StringConcatArrayPush, StringConcatArrayAdd, 
-      StringConcatStringBuilder);
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/StringConcat_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/StringConcat_3.html
deleted file mode 100644 (file)
index e802984..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Tests for String Performance.</p>
-    <p>Getting an filled array of strings and try to combine them.</p>
-
-    <ol>
-      <li>Operator +=</li>
-      <li>Operators = and +</li>
-      <li>Concat function</li>
-      <li>Array Push</li>
-      <li>Array Index</li>
-      <li>Array Append</li>
-    </ol>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var e = "";
-    var a = "a";
-
-    function getStringArr(vLoops)
-    {
-      var s = [];
-
-      for (var i=0; i<vLoops; i++) {
-        s.push(a);
-      };
-
-      return s;
-    };
-
-    function StringConcatShort(vLoops)
-    {
-      var s = e;
-
-      for (var i=0; i<vLoops; i++) {
-        s += getStringArr(vLoops).join(e);
-      };
-    };
-
-    function StringConcatShortAlt(vLoops)
-    {
-      var s = e;
-
-      for (var i=0; i<vLoops; i++) {
-        s = s + getStringArr(vLoops).join(e);
-      };
-    };
-
-    function StringConcatMethod(vLoops)
-    {
-      var s = e;
-
-      for (var i=0; i<vLoops; i++) {
-        s=s.concat(getStringArr(vLoops).join(e));
-      };
-    };
-
-    function StringConcatArrayPush(vLoops)
-    {
-      var s = [];
-
-      for (var i=0; i<vLoops; i++) {
-        s.push(getStringArr(vLoops).join(e));
-      };
-
-      s = s.join(e);
-    };
-
-    function StringConcatArrayAdd(vLoops)
-    {
-      var s = [];
-
-      for (var i=0; i<vLoops; i++) {
-        s[s.length] = getStringArr(vLoops).join(e);
-      };
-
-      s = s.join(e);
-    };
-
-    function StringConcatArrayAppend(vLoops)
-    {
-      var s = [];
-
-      for (var i=0; i<vLoops; i++) {
-        s.push.apply(s, getStringArr(vLoops));
-      };
-
-      s = s.join(e);
-    };
-
-    new qx.dev.TimeTracker(StringConcatShort, StringConcatShortAlt, StringConcatMethod, StringConcatArrayPush, StringConcatArrayAdd, StringConcatArrayAppend);
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/TypeCheck_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/TypeCheck_1.html
deleted file mode 100644 (file)
index 5d202ec..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Tests for typical value checks and their performance.</p>
-    <ol>
-      <li>Typeof with Strings</li>
-      <li>Typeof with Constants</li>
-      <li>Instanceof</li>
-    </ol>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var STR = "string";
-    var NR = "number";
-    var OBJ = "object";
-
-    var str = "Hello World"
-    var nr1 = 1000;
-    var nr2 = Infinity;
-    var nr3 = NaN;
-    var nr4 = 0.432;
-    var obj1 = {};
-    var obj2 = { key1 : "hello world", key2 : "hello world", key3 : "hello world" }
-
-    function typeCheckTypeof1(vLoops)
-    {
-      for (var i=0; i<vLoops; i++)
-      {
-        typeof str === "string";
-        typeof nr1 === "number";
-        typeof nr2 === "number";
-        typeof nr3 === "number";
-        typeof nr4 === "number";
-        typeof obj1 === "object";
-        typeof obj2 === "object";
-      }
-    }
-
-    function typeCheckTypeof2(vLoops)
-    {
-      for (var i=0; i<vLoops; i++)
-      {
-        typeof str === STR;
-        typeof nr1 === NR;
-        typeof nr2 === NR;
-        typeof nr3 === NR;
-        typeof nr4 === NR;
-        typeof obj1 === OBJ;
-        typeof obj2 === OBJ;
-      }
-    }
-
-    function typeCheckInstanceOf(vLoops)
-    {
-      for (var i=0; i<vLoops; i++)
-      {
-        str instanceof String
-        nr1 instanceof Number
-        nr2 instanceof Number
-        nr3 instanceof Number
-        nr4 instanceof Number
-        obj1 instanceof Object
-        obj2 instanceof Object
-      }
-    }
-
-    new qx.dev.TimeTracker(typeCheckTypeof1, typeCheckTypeof2, typeCheckInstanceOf);
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/index.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/performance/index.html
deleted file mode 100644 (file)
index 6634518..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<html>
-  <head>
-    <script type="text/javascript">window.location.href="ArrayCreate_1.html";</script>
-  </head>
-  <body>
-    <a href="ArrayCreate_1.html">Continue...</a>
-  </body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_1.html
deleted file mode 100644 (file)
index 0511ee7..0000000
+++ /dev/null
@@ -1,286 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Some speed tests for qx.ui.basic.Atom. Please regard, that many of things in the finished
-    page are modified on the already created and visible qx.ui.basic.Atom instances. This is not
-    a good example in scripting qooxdoo. It's always faster to configure a instance of qx.ui.core.Widget
-    completely, before add it to the qx.ui.core.ClientDocument or any other visible parent qx.ui.core.Widget.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    /*
-    ----------------------------------------------
-    TEST LEVEL I
-    ----------------------------------------------
-    */
-
-    var la1 = new qx.ui.basic.Atom("Test No #1", "icon/16/apps/preferences-desktop-multimedia.png");
-    with(la1)
-    {
-      setTop(48);
-      setLeft(20);
-      setIconPosition("left");
-    };
-    d.add(la1);
-
-
-    var la2 = new qx.ui.basic.Atom("Test No #2", "icon/16/apps/preferences-desktop-multimedia.png");
-    with(la2)
-    {
-      setTop(148);
-      setLeft(20);
-      setIconPosition("right");
-    };
-    d.add(la2);
-
-
-    var la3 = new qx.ui.basic.Atom("Test No #3", "icon/16/apps/preferences-desktop-multimedia.png");
-    with(la3)
-    {
-      setTop(248);
-      setLeft(20);
-      setIconPosition("top");
-    };
-    d.add(la3);
-
-
-    var la4 = new qx.ui.basic.Atom("Test No #4", "icon/16/apps/preferences-desktop-multimedia.png");
-    with(la4)
-    {
-      setTop(348);
-      setLeft(20);
-      setIconPosition("bottom");
-    };
-    d.add(la4);
-
-
-    /*
-    ----------------------------------------------
-    TEST LEVEL II
-    ----------------------------------------------
-    */
-
-    var lb1 = new qx.ui.basic.Atom("Test No #1", "icon/16/apps/preferences-desktop-multimedia.png");
-    with(lb1)
-    {
-      setTop(48);
-      setLeft(120);
-      setIconPosition("left");
-    };
-    d.add(lb1);
-    lb1.setIconPosition("right");
-
-
-    var lb2 = new qx.ui.basic.Atom("Test No #2", "icon/16/apps/preferences-desktop-multimedia.png");
-    with(lb2)
-    {
-      setTop(148);
-      setLeft(120);
-      setIconPosition("right");
-    };
-    d.add(lb2);
-    lb2.setIconPosition("left");
-
-
-    var lb3 = new qx.ui.basic.Atom("Test No #3", "icon/16/apps/preferences-desktop-multimedia.png");
-    with(lb3)
-    {
-      setTop(248);
-      setLeft(120);
-      setIconPosition("top");
-    };
-    d.add(lb3);
-    lb3.setIconPosition("bottom");
-
-
-    var lb4 = new qx.ui.basic.Atom("Test No #4", "icon/16/apps/preferences-desktop-multimedia.png");
-    with(lb4)
-    {
-      setTop(348);
-      setLeft(120);
-      setIconPosition("bottom");
-    };
-    d.add(lb4);
-    lb4.setIconPosition("top");
-
-
-
-
-    /*
-    ----------------------------------------------
-    TEST LEVEL III
-    ----------------------------------------------
-    */
-
-    var lc1 = new qx.ui.basic.Atom("Test No #1", "icon/16/apps/preferences-desktop-multimedia.png");
-    with(lc1)
-    {
-      setTop(48);
-      setLeft(220);
-      setIconPosition("left");
-    };
-    d.add(lc1);
-    lc1.setIconPosition("top");
-
-
-    var lc2 = new qx.ui.basic.Atom("Test No #2", "icon/16/apps/preferences-desktop-multimedia.png");
-    with(lc2)
-    {
-      setTop(148);
-      setLeft(220);
-      setIconPosition("right");
-    };
-    d.add(lc2);
-    lc2.setIconPosition("bottom");
-
-
-    var lc3 = new qx.ui.basic.Atom("Test No #3", "icon/16/apps/preferences-desktop-multimedia.png");
-    with(lc3)
-    {
-      setTop(248);
-      setLeft(220);
-      setIconPosition("top");
-    };
-    d.add(lc3);
-    lc3.setIconPosition("right");
-
-
-    var lc4 = new qx.ui.basic.Atom("Test No #4", "icon/16/apps/preferences-desktop-multimedia.png");
-    with(lc4)
-    {
-      setTop(348);
-      setLeft(220);
-      setIconPosition("bottom");
-    };
-    d.add(lc4);
-    lc4.setIconPosition("left");
-
-
-
-
-    /*
-    ----------------------------------------------
-    TEST LEVEL IV
-    ----------------------------------------------
-    */
-
-    var ld1 = new qx.ui.basic.Atom("Test No #1", "icon/16/apps/preferences-desktop-multimedia.png");
-    with(ld1)
-    {
-      setTop(48);
-      setLeft(320);
-      setIconPosition("left");
-    };
-    d.add(ld1);
-    ld1.setIconPosition("bottom");
-
-
-    var ld2 = new qx.ui.basic.Atom("Test No #2", "icon/16/apps/preferences-desktop-multimedia.png");
-    with(ld2)
-    {
-      setTop(148);
-      setLeft(320);
-      setIconPosition("right");
-    };
-    d.add(ld2);
-    ld2.setIconPosition("top");
-
-
-    var ld3 = new qx.ui.basic.Atom("Test No #3", "icon/16/apps/preferences-desktop-multimedia.png");
-    with(ld3)
-    {
-      setTop(248);
-      setLeft(320);
-      setIconPosition("top");
-    };
-    d.add(ld3);
-    ld3.setIconPosition("left");
-
-
-    var ld4 = new qx.ui.basic.Atom("Test No #4", "icon/16/apps/preferences-desktop-multimedia.png");
-    with(ld4)
-    {
-      setTop(348);
-      setLeft(320);
-      setIconPosition("bottom");
-    };
-    d.add(ld4);
-    ld4.setIconPosition("right");
-
-
-
-
-
-    /*
-    ----------------------------------------------
-    TEST LEVEL V
-    ----------------------------------------------
-    */
-
-    var le1 = new qx.ui.basic.Atom("Test No #1", "icon/16/apps/preferences-desktop-multimedia.png");
-    with(le1)
-    {
-      setTop(48);
-      setLeft(420);
-      setIconPosition("right");
-    };
-    d.add(le1);
-    le1.setIconPosition("top");
-
-
-    var le2 = new qx.ui.basic.Atom("Test No #2", "icon/16/apps/preferences-desktop-multimedia.png");
-    with(le2)
-    {
-      setTop(148);
-      setLeft(420);
-      setIconPosition("left");
-    };
-    d.add(le2);
-    le2.setIconPosition("bottom");
-
-
-    var le3 = new qx.ui.basic.Atom("Test No #3", "icon/16/apps/preferences-desktop-multimedia.png");
-    with(le3)
-    {
-      setTop(248);
-      setLeft(420);
-      setIconPosition("top");
-    };
-    d.add(le3);
-    le3.setIconPosition("right");
-
-
-    var le4 = new qx.ui.basic.Atom("Test No #4", "icon/16/apps/preferences-desktop-multimedia.png");
-    with(le4)
-    {
-      setTop(348);
-      setLeft(420);
-      setIconPosition("bottom");
-    };
-    d.add(le4);
-    le4.setIconPosition("left");
-
-
-
-
-
-
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_2.html
deleted file mode 100644 (file)
index 5dcd5af..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Example to show correct calculations of qx.ui.basic.Atom sizes. Normally a qx.ui.basic.Atom has only the size of its content.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var w = qx.ui.core.ClientDocument.getInstance();
-
-
-      function alertoff() {
-        alert(this.getElement().offsetWidth + "x" + this.getElement().offsetHeight);
-      };
-
-      var l1 = new qx.ui.layout.CanvasLayout();
-      var l2 = new qx.ui.layout.CanvasLayout();
-
-      with(l1)
-      {
-        setTop(100);
-        setLeft(20);
-        setWidth(500);
-        setHeight(1);
-        setBackgroundColor("red");
-        setOverflow("hidden");
-      };
-
-      with(l2)
-      {
-        setTop(123);
-        setLeft(20);
-        setWidth(500);
-        setHeight(1);
-        setBackgroundColor("red");
-        setOverflow("hidden");
-      };
-
-      w.add(l1);
-      w.add(l2);
-
-
-
-      var a1 = new qx.ui.basic.Atom("Pure Text", "icon/22/places/folder.png");
-      var a2 = new qx.ui.basic.Atom(null, "icon/22/places/folder.png");
-
-      with(a1) {
-        setBorder(new qx.renderer.border.Border(1, "solid", "black"));
-        setTop(100);
-        setLeft(120);
-      };
-
-      with(a2) {
-        setBorder(new qx.renderer.border.Border(1, "solid", "black"));
-        setTop(100);
-        setLeft(300);
-      };
-
-      w.add(a1);
-      w.add(a2);
-
-      a1.addEventListener("click", alertoff);
-      a2.addEventListener("click", alertoff);
-
-
-
-      var l3 = new qx.ui.layout.CanvasLayout();
-      var l4 = new qx.ui.layout.CanvasLayout();
-
-      with(l3)
-      {
-        setTop(200);
-        setLeft(20);
-        setWidth(500);
-        setHeight(1);
-        setBackgroundColor("red");
-        setOverflow("hidden");
-      };
-
-      with(l4)
-      {
-        setTop(233);
-        setLeft(20);
-        setWidth(500);
-        setHeight(1);
-        setBackgroundColor("red");
-        setOverflow("hidden");
-      };
-
-      w.add(l3);
-      w.add(l4);
-
-
-      var b1 = new qx.ui.basic.Atom("Pure Text", "icon/32/categories/applications-internet.png");
-      var b2 = new qx.ui.basic.Atom(null, "icon/32/categories/applications-internet.png");
-
-      with(b1) {
-        setBorder(new qx.renderer.border.Border(1, "solid", "black"));
-        setTop(200);
-        setLeft(120);
-      };
-
-      with(b2) {
-        setBorder(new qx.renderer.border.Border(1, "solid", "black"));
-        setTop(200);
-        setLeft(300);
-      };
-
-      w.add(b1);
-      w.add(b2);
-
-      b1.addEventListener("click", alertoff);
-      b2.addEventListener("click", alertoff);
-
-
-
-
-
-
-      var l5 = new qx.ui.layout.CanvasLayout();
-      var l6 = new qx.ui.layout.CanvasLayout();
-
-      with(l5)
-      {
-        setTop(300);
-        setLeft(20);
-        setWidth(500);
-        setHeight(1);
-        setBackgroundColor("red");
-        setOverflow("hidden");
-      };
-
-      with(l6)
-      {
-        setTop(317);
-        setLeft(20);
-        setWidth(500);
-        setHeight(1);
-        setBackgroundColor("red");
-        setOverflow("hidden");
-      };
-
-      w.add(l5);
-      w.add(l6);
-
-
-      var c1 = new qx.ui.basic.Atom("Pure Text", "icon/16/categories/applications-internet.png");
-      var c2 = new qx.ui.basic.Atom(null, "icon/16/categories/applications-internet.png");
-
-      with(c1) {
-        setBorder(new qx.renderer.border.Border(1, "solid", "black"));
-        setTop(300);
-        setLeft(120);
-      };
-
-      with(c2) {
-        setBorder(new qx.renderer.border.Border(1, "solid", "black"));
-        setTop(300);
-        setLeft(300);
-      };
-
-      w.add(c1);
-      w.add(c2);
-
-      c1.addEventListener("click", alertoff);
-      c2.addEventListener("click", alertoff);
-
-
-
-
-
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_3.html
deleted file mode 100644 (file)
index 49f2595..0000000
+++ /dev/null
@@ -1,322 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Layout tests for qx.ui.basic.Atom reimplementation.</p>
-  </div>
-  
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-      
-      
-      var a1 = new qx.ui.basic.Atom;
-      a1.setLabel("hello world");
-      a1.setTop(48);
-      a1.setLeft(20);
-      a1.setPadding(2, 4);
-      a1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
-      d.add(a1);
-
-      var a2 = new qx.ui.basic.Atom;
-      a2.setIcon("icon/32/actions/system-run.png");
-      a2.setTop(48);
-      a2.setLeft(120);
-      a2.setPadding(2, 4);
-      a2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
-      d.add(a2);
-
-
-      
-
-      var b1 = new qx.ui.basic.Atom;
-      b1.setLabel("hello world");
-      b1.setIcon("icon/32/actions/system-run.png");
-      b1.setIconPosition("left");
-      b1.setTop(100);
-      b1.setLeft(20);
-      b1.setPadding(2, 4);
-      b1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
-      d.add(b1);
-      
-      var b2 = new qx.ui.basic.Atom;
-      b2.setLabel("hello world");
-      b2.setIcon("icon/32/actions/system-run.png");
-      b2.setIconPosition("top");
-      b2.setTop(100);
-      b2.setLeft(120);
-      b2.setPadding(2, 4);
-      b2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
-      d.add(b2);
-      
-      var b3 = new qx.ui.basic.Atom;
-      b3.setLabel("hello world");
-      b3.setIcon("icon/32/actions/system-run.png");
-      b3.setIconPosition("right");
-      b3.setTop(100);
-      b3.setLeft(220);
-      b3.setPadding(2, 4);
-      b3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
-      d.add(b3);
-      
-      var b4 = new qx.ui.basic.Atom;
-      b4.setLabel("hello world");
-      b4.setIcon("icon/32/actions/system-run.png");
-      b4.setIconPosition("bottom");
-      b4.setTop(100);
-      b4.setLeft(320);
-      b4.setPadding(2, 4);
-      b4.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
-      d.add(b4);   
-      
-      
-      
-      
-      var c1 = new qx.ui.basic.Atom;
-      c1.setLabel("hello world");
-      c1.setIcon("icon/32/actions/system-run.png");
-      c1.setShow("icon");
-      c1.setTop(180);
-      c1.setLeft(20);
-      c1.setPadding(2, 4);
-      c1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
-      d.add(c1);
-      
-      var c2 = new qx.ui.basic.Atom;
-      c2.setLabel("hello world");
-      c2.setIcon("icon/32/actions/system-run.png");
-      c2.setShow("label");
-      c2.setTop(180);
-      c2.setLeft(120);
-      c2.setPadding(2, 4);
-      c2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
-      d.add(c2);
-                  
-                  
-                 
-                  
-                  
-      var d1 = new qx.ui.basic.Atom;
-      d1.setLabel("hello world");
-      d1.setIcon("icon/32/actions/system-run.png");
-      d1.setShow("icon");
-      d1.setTop(250);
-      d1.setLeft(20);
-      d1.setPadding(2, 4);
-      d1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
-      d.add(d1);                           
-      d1.setShow("both");
-       
-      var d2 = new qx.ui.basic.Atom;
-      d2.setLabel("hello world");
-      d2.setIcon("icon/32/actions/system-run.png");
-      d2.setShow("label");
-      d2.setTop(250);
-      d2.setLeft(120);
-      d2.setPadding(2, 4);
-      d2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
-      d.add(d2);                           
-      d2.setShow("both");   
-      
-      var d3 = new qx.ui.basic.Atom;
-      d3.setLabel("hello world");
-      d3.setIcon("icon/32/actions/system-run.png");
-      d3.setShow("none");
-      d3.setTop(250);
-      d3.setLeft(220);
-      d3.setPadding(2, 4);
-      d3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
-      d.add(d3);                           
-      d3.setShow("both");
-      
-      
-      
-      
-      var e1 = new qx.ui.basic.Atom;
-      e1.setIcon("icon/32/actions/system-run.png");
-      e1.setShow("none");
-      e1.setTop(300);
-      e1.setLeft(20);
-      e1.setPadding(2, 4);
-      e1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
-      d.add(e1);
-      e1.setShow("both");      
-      e1.setLabel("hello world");      
-      
-      var e2 = new qx.ui.basic.Atom;
-      e2.setLabel("hello world");
-      e2.setShow("none");
-      e2.setTop(300);
-      e2.setLeft(120);
-      e2.setPadding(2, 4);
-      e2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
-      d.add(e2);
-      e2.setShow("both");      
-      e2.setIcon("icon/32/actions/system-run.png");       
-        
-      var e3 = new qx.ui.basic.Atom;
-      e3.setShow("none");
-      e3.setTop(300);
-      e3.setLeft(220);
-      e3.setPadding(2, 4);
-      e3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
-      d.add(e3);
-      e3.setShow("both");      
-      e3.setIcon("icon/32/actions/system-run.png");            
-      e3.setLabel("hello world");
-
-      var e4 = new qx.ui.basic.Atom;
-      e4.setShow("none");
-      e4.setTop(300);
-      e4.setLeft(320);
-      e4.setPadding(2, 4);
-      e4.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
-      d.add(e4);
-      e4.setShow("both");      
-      e4.setLabel("hello world");         
-      e4.setIcon("icon/32/actions/system-run.png");            
-      
-      
-      
-      
-      var f1 = new qx.ui.basic.Atom;
-      f1.setLabel("hello world");
-      f1.setIcon("icon/32/actions/system-run.png");
-      f1.setIconPosition("left");
-      f1.setTop(350);
-      f1.setLeft(20);
-      f1.setPadding(2, 4);
-      f1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
-      d.add(f1);
-      f1.setIconPosition("top");
-      
-      var f2 = new qx.ui.basic.Atom;
-      f2.setLabel("hello world");
-      f2.setIcon("icon/32/actions/system-run.png");
-      f2.setIconPosition("left");
-      f2.setTop(350);
-      f2.setLeft(120);
-      f2.setPadding(2, 4);
-      f2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
-      d.add(f2);
-      f2.setIconPosition("right");      
-      
-      var f3 = new qx.ui.basic.Atom;
-      f3.setLabel("hello world");
-      f3.setIcon("icon/32/actions/system-run.png");
-      f3.setIconPosition("left");
-      f3.setTop(350);
-      f3.setLeft(220);
-      f3.setPadding(2, 4);
-      f3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
-      d.add(f3);
-      f3.setIconPosition("bottom");      
-      
-      
-      
-      
-      var g1 = new qx.ui.basic.Atom;
-      g1.setLabel("hello world");
-      g1.setIcon("icon/32/actions/system-run.png");
-      g1.setIconPosition("top");
-      g1.setTop(450);
-      g1.setLeft(20);
-      g1.setPadding(2, 4);
-      g1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
-      d.add(g1);
-      g1.setIconPosition("right");
-      
-      var g2 = new qx.ui.basic.Atom;
-      g2.setLabel("hello world");
-      g2.setIcon("icon/32/actions/system-run.png");
-      g2.setIconPosition("top");
-      g2.setTop(450);
-      g2.setLeft(120);
-      g2.setPadding(2, 4);
-      g2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
-      d.add(g2);
-      g2.setIconPosition("bottom");      
-      
-      var g3 = new qx.ui.basic.Atom;
-      g3.setLabel("hello world");
-      g3.setIcon("icon/32/actions/system-run.png");
-      g3.setIconPosition("top");
-      g3.setTop(450);
-      g3.setLeft(220);
-      g3.setPadding(2, 4);
-      g3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
-      d.add(g3);
-      g3.setIconPosition("left");       
-      
-      
-      
-      
-      
-      
-      var h1 = new qx.ui.basic.Atom;
-      h1.setLabel("hello world");
-      h1.setIcon("icon/32/actions/system-run.png");
-      h1.setIconPosition("left");
-      h1.setTop(520);
-      h1.setLeft(20);
-      h1.setPadding(2, 4);
-      h1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
-      d.add(h1);    
-      h1.setSpacing(20);
-      
-      
-      var h2 = new qx.ui.basic.Atom;
-      h2.setLabel("hello world");
-      h2.setIcon("icon/32/actions/system-run.png");
-      h2.setIconPosition("top");
-      h2.setTop(520);
-      h2.setLeft(150);
-      h2.setPadding(2, 4);
-      h2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
-      d.add(h2);
-      h2.setSpacing(20);
-            
-      
-      
-      
-
-      
-      var i1 = new qx.ui.basic.Atom;
-      i1.setLabel("hello world");
-      i1.setIcon("icon/32/actions/system-run.png");
-      i1.setIconPosition("left");
-      i1.setTop(600);
-      i1.setLeft(20);
-      i1.setPadding(2, 4);
-      i1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
-      i1.setHeight(150);
-      i1.setWidth(150);
-      d.add(i1);
-      
-      var i2 = new qx.ui.basic.Atom;
-      i2.setLabel("hello world");
-      i2.setIcon("icon/32/actions/system-run.png");
-      i2.setIconPosition("top");
-      i2.setTop(600);
-      i2.setLeft(200);
-      i2.setPadding(2, 4);
-      i2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);     
-      i2.setWidth(150);
-      i2.setHeight(150);
-      d.add(i2);      
-
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_4.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_4.html
deleted file mode 100644 (file)
index 8e26067..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var icons = [
-      "apps/accessories-clock",
-      "categories/applications-graphics",
-      "apps/accessories-date",
-      "places/folder",
-      "apps/accessories-tip",
-      "apps/preferences-desktop-accessibility"
-    ];
-    var sizes = [ 16, 22, 32, 48, 64, 48, 32, 22, 16 ];
-
-    var atom;
-    var toppos = 48;
-
-    for (var j=0; j<sizes.length; j++)
-    {
-      for (var i=0; i<icons.length; i++)
-      {
-        atom = new qx.ui.basic.Atom("Atom " + (i+1) + "." + (j+1), "icon/" + sizes[j] + "/" + icons[i] + ".png");
-
-        atom.setTop(toppos);
-        atom.setLeft(20 + (120 *i));
-
-        d.add(atom);
-      };
-
-      toppos += sizes[j] + 20;
-    };
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_5.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_5.html
deleted file mode 100644 (file)
index 7fa55f0..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Adding many qx.ui.basic.Atom widgets without setting the icon-width and -height.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var atom;
-    var toppos = 48;
-
-    for (var i=0; i<20; i++)
-    {
-      for (var j=0; j<10; j++)
-      {
-        atom = new qx.ui.basic.Atom("Date", "icon/16/apps/accessories-date.png");
-
-        atom.setTop(toppos);
-        atom.setLeft(20 + (j*50));
-
-        d.add(atom);
-      };
-
-      toppos += 20;
-    };
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_6.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_6.html
deleted file mode 100644 (file)
index e750651..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Adding many qx.ui.basic.Atom widgets setting the icon-width and -height.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var atom;
-    var toppos = 48;
-
-    for (var i=0; i<20; i++)
-    {
-      for (var j=0; j<10; j++)
-      {
-        atom = new qx.ui.basic.Atom("Date", "icon/16/apps/accessories-date.png", 16, 16);
-
-        atom.setTop(toppos);
-        atom.setLeft(20 + (j*50));
-
-        d.add(atom);
-      };
-
-      toppos += 20;
-    };
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_7.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_7.html
deleted file mode 100644 (file)
index d720d9a..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var atom;
-    var toppos = 48;
-
-    for (var i=0; i<20; i++)
-    {
-      for (var j=0; j<10; j++)
-      {
-        atom = new qx.ui.basic.Atom(null, "icon/16/apps/accessories-date.png", 16, 16);
-
-        atom.setTop(toppos);
-        atom.setLeft(20 + (j*50));
-
-        d.add(atom);
-      };
-
-      toppos += 20;
-    };
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_8.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_8.html
deleted file mode 100644 (file)
index 211b756..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var atom;
-    var toppos = 48;
-
-    for (var i=0; i<20; i++)
-    {
-      for (var j=0; j<10; j++)
-      {
-        atom = new qx.ui.basic.Atom("Date");
-
-        atom.setTop(toppos);
-        atom.setLeft(20 + (j*50));
-
-        d.add(atom);
-      };
-
-      toppos += 20;
-    };
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_9.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Atom_9.html
deleted file mode 100644 (file)
index 6eb4931..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    This uses qx.ui.basic.Label instead of qx.ui.basic.Atom for text only display. Stored as Atom test file
-    because this way we could compare it to the previous test file.
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var atom;
-    var toppos = 48;
-
-    for (var i=0; i<20; i++)
-    {
-      for (var j=0; j<10; j++)
-      {
-        atom = new qx.ui.basic.Label("Date");
-
-        atom.setTop(toppos);
-        atom.setLeft(20 + (j*50));
-
-        d.add(atom);
-      };
-
-      toppos += 20;
-    };
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Border_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Border_1.html
deleted file mode 100644 (file)
index 173a5a0..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test for qx.renderer.border.Border, a cross-browser advanced border engine.
-    Each instance of qx.renderer.border.Border allows to affect multiple QxTerminators.
-    When the one property of the qx.renderer.border.Border change, it informs all bounded
-    QxTerminators to rerender the border.</p>
-
-    <p>The qx.renderer.border.Border constructor also allows you to convert a string
-    (css-like) into and qx.renderer.border.Border instance (last example).</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-
-
-    var c1 = new qx.ui.basic.Terminator;
-    with(c1)
-    {
-      setTop(48);
-      setLeft(20);
-      setWidth(150);
-      setHeight(40);
-      setBackgroundColor(new qx.renderer.color.Color("#fff"));
-    };
-    d.add(c1);
-
-    var c2 = new qx.ui.basic.Terminator;
-    with(c2)
-    {
-      setTop(48);
-      setLeft(200);
-      setWidth(150);
-      setHeight(40);
-      setBackgroundColor(new qx.renderer.color.Color("#fff"));
-    };
-    d.add(c2);
-
-    var b1 = new qx.renderer.border.Border;
-
-    // before set border properties
-    c1.setBorder(b1);
-
-    b1.setWidth(2);
-    b1.setStyle("solid");
-    b1.setColor(new qx.renderer.color.Color("black"));
-    b1.setBottomStyle("dotted");
-    b1.setTopColor(new qx.renderer.color.Color("blue"));
-
-    // after set border properties
-    c2.setBorder(b1);
-
-
-
-
-
-
-
-
-    var c3 = new qx.ui.basic.Terminator;
-    with(c3)
-    {
-      setTop(110);
-      setLeft(20);
-      setWidth(40);
-      setHeight(40);
-      setBackgroundColor(new qx.renderer.color.ColorObject("threedface"));
-    };
-    d.add(c3);
-
-    c3.setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
-
-    var c4 = new qx.ui.basic.Terminator;
-    with(c4)
-    {
-      setTop(110);
-      setLeft(80);
-      setWidth(40);
-      setHeight(40);
-      setBackgroundColor(new qx.renderer.color.ColorObject("threedface"));
-    };
-    d.add(c4);
-
-    c4.setBorder(qx.renderer.border.BorderPresets.getInstance().thinOutset);
-
-    var c5 = new qx.ui.basic.Terminator;
-    with(c5)
-    {
-      setTop(110);
-      setLeft(140);
-      setWidth(40);
-      setHeight(40);
-      setBackgroundColor(new qx.renderer.color.ColorObject("threedface"));
-    };
-    d.add(c5);
-
-    c5.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-
-
-    var c6 = new qx.ui.basic.Terminator;
-    with(c6)
-    {
-      setTop(110);
-      setLeft(200);
-      setWidth(40);
-      setHeight(40);
-      setBackgroundColor(new qx.renderer.color.ColorObject("threedface"));
-    };
-    d.add(c6);
-
-    c6.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-
-
-    var c7 = new qx.ui.basic.Terminator;
-    with(c7)
-    {
-      setTop(110);
-      setLeft(260);
-      setWidth(40);
-      setHeight(40);
-      setBackgroundColor(new qx.renderer.color.ColorObject("threedface"));
-    };
-    d.add(c7);
-
-    c7.setBorder(qx.renderer.border.BorderPresets.getInstance().groove);
-
-    var c8 = new qx.ui.basic.Terminator;
-    with(c8)
-    {
-      setTop(110);
-      setLeft(320);
-      setWidth(40);
-      setHeight(40);
-      setBackgroundColor(new qx.renderer.color.ColorObject("threedface"));
-    };
-    d.add(c8);
-
-    c8.setBorder(qx.renderer.border.BorderPresets.getInstance().ridge);
-
-
-
-    var c9 = new qx.ui.basic.Terminator;
-    with(c9)
-    {
-      setTop(110);
-      setLeft(380);
-      setWidth(40);
-      setHeight(40);
-      setBackgroundColor(new qx.renderer.color.ColorObject("threedface"));
-    };
-    d.add(c9);
-
-    var b2 = qx.renderer.border.Border.fromString("2px solid red");
-    c9.setBorder(b2);
-    
-    
-    
-    // Color Themes
-    qx.manager.object.ColorManager.getInstance().createThemeList(d, 220, 248);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/BoxLayout_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/BoxLayout_1.html
deleted file mode 100644 (file)
index b85f722..0000000
+++ /dev/null
@@ -1,283 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="testCommand" class="manualFrame">
-    <style type="text/css">
-      #testCommand{
-        position: absolute;
-        right: 335px;
-        bottom: 48px;
-        width: 350px;
-      }
-    
-      .setform select{
-        font-size: 11px;
-        min-width: 75px;
-      }
-
-      .setform button{
-        font-size: 11px;
-      }
-    </style>
-
-    <table class="setform"><tbody>
-
-    <tr>
-      <td>
-        <label for="sel_orientation">Orientation:</label>
-      </td>
-      <td>
-        <select id="sel_orientation">
-          <option selected="selected">horizontal</option>
-          <option>vertical</option>
-        </select>
-      </td>
-    </tr>
-
-    <tr>
-      <td>Width/Height:</td>
-      <td>
-        <select id="sel_width">
-          <option>100</option>
-          <option selected="selected">250</option>
-          <option>500</option>
-          <option>auto</option>
-        </select>
-        <select id="sel_height">
-          <option>100</option>
-          <option selected="selected">250</option>
-          <option>500</option>          
-          <option>auto</option>
-        </select>
-      </td>
-    </tr>
-
-    <tr>
-      <td>Spacing/Padding:</td>
-      <td>
-        <select id="sel_spacing">
-          <option selected="selected">0</option>
-          <option>2</option>
-          <option>4</option>
-          <option>8</option>
-        </select>
-        <select id="sel_padding">
-          <option selected="selected">0</option>
-          <option>2</option>
-          <option>4</option>
-          <option>8</option>
-        </select>
-      </td>
-    </tr>
-
-    <tr>
-      <td>
-        <label for="sel_order">Order/Stretching:</label>
-      </td>
-      <td>
-        <select id="sel_order">
-          <option selected="selected">default</option>
-          <option>reverse</option>
-        </select>
-        <select id="sel_stretch">
-          <option selected="selected">enabled</option>
-          <option>disabled</option>
-        </select>
-      </td>
-    </tr>
-
-    <tr>
-      <td>Horizontal/Vertical Align:</td>
-      <td>
-        <select id="sel_horalg">
-          <option selected="selected">left</option>
-          <option>center</option>
-          <option>right</option>
-        </select>
-        <select id="sel_veralg">
-          <option selected="selected">top</option>
-          <option>middle</option>
-          <option>bottom</option>
-        </select>
-      </td>
-    </tr>
-
-    <tr>
-      <td>&#160;</td>
-      <td>
-        <button id="btn_save">Apply</button>
-      </td>
-    </tr>
-
-    </tbody></table>  
-    
-    <p><b>Tests</b></p>
-    <ul>
-      <li><a href="javascript:test1()">Test 1: Remove blue widget</a></li>
-      <li><a href="javascript:test2()">Test 2: Add blue widget</a></li>
-      <li><a href="javascript:test3()">Test 3: Add blue widget at position 2</a></li>
-      <li><a href="javascript:test4()">Test 4: Add blue widget at position 4</a></li>
-      <li><a href="javascript:test5()">Test 5: Add green widget at before the cdrom</a></li>
-      <li><a href="javascript:test6()">Test 6: Add green widget at after the color palette</a></li>
-      <li><a href="javascript:test7()">Test 7: Add new widget to layout</a></li>
-    </ul>
-  </div>
-
-  <div id="demoDescription">
-    <p>Now something more complex. Try to configure multiple things and then press &lt;apply&gt;.</p>
-  </div>
-
-  <script type="text/javascript">
-
-  var bl, w1, w2, w3, w4, w5, w6, w7, w8;
-
-  var _b = document.getElementById("btn_save");
-  var _t = document.getElementById("sel_orientation");
-  var _w = document.getElementById("sel_width");
-  var _h = document.getElementById("sel_height");
-  var _s = document.getElementById("sel_spacing");
-  var _p = document.getElementById("sel_padding");
-  var _o = document.getElementById("sel_order");
-  var _r = document.getElementById("sel_stretch");
-  var _l = document.getElementById("sel_horalg");
-  var _v = document.getElementById("sel_veralg");
-
-  function save()
-  {
-    var vt = _t.options[_t.selectedIndex].firstChild.nodeValue;
-    var vw = _w.options[_w.selectedIndex].firstChild.nodeValue;
-    var vh = _h.options[_h.selectedIndex].firstChild.nodeValue;
-    var vs = _s.options[_s.selectedIndex].firstChild.nodeValue;
-    var vp = _p.options[_p.selectedIndex].firstChild.nodeValue;
-    var vo = _o.options[_o.selectedIndex].firstChild.nodeValue;
-    var vr = _r.options[_r.selectedIndex].firstChild.nodeValue;
-    var vl = _l.options[_l.selectedIndex].firstChild.nodeValue;
-    var vv = _v.options[_v.selectedIndex].firstChild.nodeValue;
-    
-    bl.setOrientation(vt);
-    bl.setWidth(vw == "auto" ? vw : parseInt(vw));
-    bl.setHeight(vh == "auto" ? vh : parseInt(vh));
-    bl.setSpacing(parseInt(vs));
-    bl.setPadding(parseInt(vp));
-    bl.setReverseChildrenOrder(vo == "reverse");
-    bl.setStretchChildrenOrthogonalAxis(vr == "enabled");
-    bl.setHorizontalChildrenAlign(vl);
-    bl.setVerticalChildrenAlign(vv);
-  };
-
-  if (_b.attachEvent)
-    _b.attachEvent("onclick", save);
-  else if (_b.addEventListener)
-    _b.addEventListener("click", save, false);
-    
-    
-  function test1() 
-  {
-    bl.remove(w2);
-    qx.ui.core.Widget.flushGlobalQueues();
-  };  
-  
-  function test2() 
-  {
-    bl.add(w2);
-    qx.ui.core.Widget.flushGlobalQueues();
-  };
-  
-  function test3() 
-  {
-    bl.addAt(w2, 2);
-    qx.ui.core.Widget.flushGlobalQueues();
-  };  
-
-  function test4() 
-  {
-    bl.addAt(w2, 4);
-    qx.ui.core.Widget.flushGlobalQueues();
-  };  
-
-  function test5() 
-  {
-    bl.addBefore(w3, w7);
-    qx.ui.core.Widget.flushGlobalQueues();
-  };  
-
-  function test6() 
-  {
-    bl.addAfter(w3, w4);
-    qx.ui.core.Widget.flushGlobalQueues();
-  }; 
-  
-  function test7() 
-  {
-    bl.addAt(w8, 1);
-    qx.ui.core.Widget.flushGlobalQueues();
-  };
-
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    bl = new qx.ui.layout.BoxLayout("horizontal");
-    bl.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    bl.setBackgroundColor(new qx.renderer.color.Color("white"));
-    bl.setWidth(250);
-    bl.setHeight(250);
-    bl.setTop(48);
-    bl.setLeft(20);
-
-    w1 = new qx.ui.layout.CanvasLayout;
-    w1.setBackgroundColor(new qx.renderer.color.Color("orange"));
-    w1.setMinWidth(20);
-    w1.setMinHeight(20);
-    w1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-
-    w2 = new qx.ui.layout.CanvasLayout;
-    w2.setBackgroundColor(new qx.renderer.color.Color("blue"));
-    w2.setMinWidth(20);
-    w2.setMinHeight(20);
-    w2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-
-    w3 = new qx.ui.layout.CanvasLayout;
-    w3.setBackgroundColor(new qx.renderer.color.Color("green"));
-    w3.setMinWidth(20);
-    w3.setMinHeight(20);
-    w3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    
-    w4 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-
-    w5 = new qx.ui.layout.CanvasLayout;
-    w5.setBackgroundColor(new qx.renderer.color.Color("yellow"));
-    w5.setMinWidth(20);
-    w5.setMinHeight(20);
-    w5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-
-    w6 = new qx.ui.layout.CanvasLayout;
-    w6.setBackgroundColor(new qx.renderer.color.Color("red"));
-    w6.setMinWidth(20);
-    w6.setMinHeight(20);
-    w6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    
-    w7 = new qx.ui.basic.Image("icon/64/devices/media-optical.png");
-    
-    w8 = new qx.ui.layout.CanvasLayout;
-    w8.setBackgroundColor(new qx.renderer.color.Color("fuchsia"));
-    w8.setMinWidth(20);
-    w8.setMinHeight(20);
-    w8.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-
-    bl.add(w1, w2, w3, w4, w5, w6, w7);
-    d.add(bl);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/BoxLayout_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/BoxLayout_2.html
deleted file mode 100644 (file)
index d228dc0..0000000
+++ /dev/null
@@ -1,324 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="testCommand" class="manualFrame">
-    <style type="text/css">
-      #testCommand{
-        position: absolute;
-        right: 335px;
-        bottom: 48px;
-        width: 350px;
-      }
-    
-      .setform select{
-        font-size: 11px;
-        min-width: 75px;
-      }
-
-      .setform button{
-        font-size: 11px;
-      }
-    </style>
-
-    <table class="setform"><tbody>
-
-    <tr>
-      <td>
-        <label for="sel_orientation">Orientation:</label>
-      </td>
-      <td>
-        <select id="sel_orientation">
-          <option selected="selected">horizontal</option>
-          <option>vertical</option>
-        </select>
-      </td>
-    </tr>
-
-    <tr>
-      <td>Width/Height:</td>
-      <td>
-        <select id="sel_width">
-          <option>100</option>
-          <option selected="selected">250</option>
-          <option>500</option>
-          <option>auto</option>
-        </select>
-        <select id="sel_height">
-          <option>100</option>
-          <option selected="selected">250</option>
-          <option>500</option>          
-          <option>auto</option>
-        </select>
-      </td>
-    </tr>
-
-    <tr>
-      <td>Spacing/Padding:</td>
-      <td>
-        <select id="sel_spacing">
-          <option selected="selected">0</option>
-          <option>2</option>
-          <option>4</option>
-          <option>8</option>
-        </select>
-        <select id="sel_padding">
-          <option selected="selected">0</option>
-          <option>2</option>
-          <option>4</option>
-          <option>8</option>
-        </select>
-      </td>
-    </tr>
-
-    <tr>
-      <td>
-        <label for="sel_order">Order/Stretching:</label>
-      </td>
-      <td>
-        <select id="sel_order">
-          <option selected="selected">default</option>
-          <option>reverse</option>
-        </select>
-        <select id="sel_stretch">
-          <option selected="selected">enabled</option>
-          <option>disabled</option>
-        </select>
-      </td>
-    </tr>
-
-    <tr>
-      <td>Horizontal/Vertical Align:</td>
-      <td>
-        <select id="sel_horalg">
-          <option selected="selected">left</option>
-          <option>center</option>
-          <option>right</option>
-        </select>
-        <select id="sel_veralg">
-          <option selected="selected">top</option>
-          <option>middle</option>
-          <option>bottom</option>
-        </select>
-      </td>
-    </tr>
-
-    <tr>
-      <td>&#160;</td>
-      <td>
-        <button id="btn_save">Apply</button>
-      </td>
-    </tr>
-
-    </tbody></table>  
-    
-    <p><b>Tests</b></p>
-    <ul>
-      <li><a href="javascript:test1()">Test 1: Remove blue widget</a></li>
-      <li><a href="javascript:test2()">Test 2: Add blue widget</a></li>
-      <li><a href="javascript:test3()">Test 3: Add blue widget at position 2</a></li>
-      <li><a href="javascript:test4()">Test 4: Add blue widget at position 4</a></li>
-      <li><a href="javascript:test5()">Test 5: Add green widget at before the cdrom</a></li>
-      <li><a href="javascript:test6()">Test 6: Add green widget at after the color palette</a></li>
-      <li><a href="javascript:test7()">Test 7: Add new widget to layout</a></li>
-    </ul>
-  </div>
-
-  <div id="demoDescription">
-    <p>Now something more complex. Try to configure multiple things and then press &lt;apply&gt;.</p>
-    <p>Added initial support for children align override: Try to click on the color palette.</p>
-  </div>
-
-  <script type="text/javascript">
-
-  var bl, w1, w2, w3, w4, w5, w6, w7, w8;
-
-  var _b = document.getElementById("btn_save");
-  var _t = document.getElementById("sel_orientation");
-  var _w = document.getElementById("sel_width");
-  var _h = document.getElementById("sel_height");
-  var _s = document.getElementById("sel_spacing");
-  var _p = document.getElementById("sel_padding");
-  var _o = document.getElementById("sel_order");
-  var _r = document.getElementById("sel_stretch");
-  var _l = document.getElementById("sel_horalg");
-  var _v = document.getElementById("sel_veralg");
-
-  function save()
-  {
-    var vt = _t.options[_t.selectedIndex].firstChild.nodeValue;
-    var vw = _w.options[_w.selectedIndex].firstChild.nodeValue;
-    var vh = _h.options[_h.selectedIndex].firstChild.nodeValue;
-    var vs = _s.options[_s.selectedIndex].firstChild.nodeValue;
-    var vp = _p.options[_p.selectedIndex].firstChild.nodeValue;
-    var vo = _o.options[_o.selectedIndex].firstChild.nodeValue;
-    var vr = _r.options[_r.selectedIndex].firstChild.nodeValue;
-    var vl = _l.options[_l.selectedIndex].firstChild.nodeValue;
-    var vv = _v.options[_v.selectedIndex].firstChild.nodeValue;
-    
-    bl.setOrientation(vt);
-    bl.setWidth(vw == "auto" ? vw : parseInt(vw));
-    bl.setHeight(vh == "auto" ? vh : parseInt(vh));
-    bl.setSpacing(parseInt(vs));
-    bl.setPadding(parseInt(vp));
-    bl.setReverseChildrenOrder(vo == "reverse");
-    bl.setStretchChildrenOrthogonalAxis(vr == "enabled");
-    bl.setHorizontalChildrenAlign(vl);
-    bl.setVerticalChildrenAlign(vv);
-  };
-
-  if (_b.attachEvent)
-    _b.attachEvent("onclick", save);
-  else if (_b.addEventListener)
-    _b.addEventListener("click", save, false);
-    
-    
-  function test1() 
-  {
-    bl.remove(w2);
-    qx.ui.core.Widget.flushGlobalQueues();
-  };  
-  
-  function test2() 
-  {
-    bl.add(w2);
-    qx.ui.core.Widget.flushGlobalQueues();
-  };
-  
-  function test3() 
-  {
-    bl.addAt(w2, 2);
-    qx.ui.core.Widget.flushGlobalQueues();
-  };  
-
-  function test4() 
-  {
-    bl.addAt(w2, 4);
-    qx.ui.core.Widget.flushGlobalQueues();
-  };  
-
-  function test5() 
-  {
-    bl.addBefore(w3, w7);
-    qx.ui.core.Widget.flushGlobalQueues();
-  };  
-
-  function test6() 
-  {
-    bl.addAfter(w3, w4);
-    qx.ui.core.Widget.flushGlobalQueues();
-  };  
-  
-  function test7() 
-  {
-    bl.addAt(w8, 3);
-    qx.ui.core.Widget.flushGlobalQueues();
-  };
-
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    bl = new qx.ui.layout.BoxLayout("horizontal");
-    bl.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    bl.setBackgroundColor(new qx.renderer.color.Color("white"));
-    bl.setWidth(250);
-    bl.setHeight(250);
-    bl.setTop(48);
-    bl.setLeft(20);
-
-    w1 = new qx.ui.layout.CanvasLayout;
-    w1.setBackgroundColor(new qx.renderer.color.Color("orange"));
-    w1.setMinWidth(20);
-    w1.setMinHeight(20);
-    w1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1.setAllowStretchX(false);
-    w1.setAllowStretchY(false);
-    w1.setVerticalAlign("middle");
-    w1.setHorizontalAlign("center");
-
-    w2 = new qx.ui.layout.CanvasLayout;
-    w2.setBackgroundColor(new qx.renderer.color.Color("blue"));
-    w2.setMinWidth(20);
-    w2.setMinHeight(20);
-    w2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2.setAllowStretchX(false);
-    w2.setHorizontalAlign("center");
-
-    w3 = new qx.ui.layout.CanvasLayout;
-    w3.setBackgroundColor(new qx.renderer.color.Color("green"));
-    w3.setMinWidth(20);
-    w3.setMinHeight(20);
-    w3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3.setAllowStretchY(false);
-    w3.setVerticalAlign("middle");
-    
-    w4 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-    w4.setVerticalAlign("bottom");
-    w4.setHorizontalAlign("right");
-
-    w5 = new qx.ui.layout.CanvasLayout;
-    w5.setBackgroundColor(new qx.renderer.color.Color("yellow"));
-    w5.setMinWidth(20);
-    w5.setMinHeight(20);
-    w5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-
-    w6 = new qx.ui.layout.CanvasLayout;
-    w6.setBackgroundColor(new qx.renderer.color.Color("red"));
-    w6.setMinWidth(20);
-    w6.setMinHeight(20);
-    w6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    
-    w7 = new qx.ui.basic.Image("icon/64/devices/media-optical.png");
-    w7.setVerticalAlign("middle");
-    w7.setHorizontalAlign("center");
-    
-    w8 = new qx.ui.layout.CanvasLayout;
-    w8.setBackgroundColor(new qx.renderer.color.Color("fuchsia"));
-    w8.setMinWidth(20);
-    w8.setMinHeight(20);
-    w8.setBorder(qx.renderer.border.BorderPresets.getInstance().black);    
-    
-    
-    w4.addEventListener("click", function()
-    {
-      var h, v;
-      
-      switch(this.getHorizontalAlign())
-      {
-        case "center":
-          h = "right";
-          v = "bottom";
-          break;
-          
-        case "right":
-          h = "left";
-          v = "top";
-          break;
-
-        default:
-          h = "center";
-          v = "middle";
-      };
-      
-      this.setHorizontalAlign(h);
-      this.setVerticalAlign(v);     
-    });
-    
-    
-
-    bl.add(w1, w2, w3, w4, w5, w6, w7);
-    d.add(bl);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Builder_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Builder_1.html
deleted file mode 100644 (file)
index 290bb6e..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function() {
-      new qx.util.GuiBuilder().build(qx.ui.core.ClientDocument.getInstance(), document.getElementById('widgets'));
-    });
-
-    // test delegate object
-    var d = {
-      hello : 'world',
-      click : function(e) {
-        alert(e + '\n\nclick received at delegate object\n\n' + this.hello);
-      }
-    }
-
-    // test delegate function
-    var f = function(e) {
-        alert(e + '\n\nclick received at delegate function\n\n');
-    }
-  </script>
-  <div id="demoDescription">
-    <p>qx.util.GuiBuilder demo.</p>
-    <p>Build your web apps using qooxdooml.</p>
-    <p>Textarea example</p>
-  </div>
-  <textarea id='widgets' style='display:none'>
-    <qx.client.builder.Container>
-      <qx.ui.form.Button id='btn' label='Click Me!!!' location='20,50'>
-
-        <!-- function body event listener -->
-        <qx.client.builder.EventListener type='click' args='event'>
-          btn.setLabel(btn.getLabel() + ".");
-          alert(event + "\n\nClicked on: " + this.getLabel());
-        </qx.client.builder.EventListener>
-
-        <!--
-    global object.method delegation
-    when the button is clicked, d.click(event) will be called
-    -->
-        <qx.client.builder.EventListener type='click' delegate='d.click'/>
-
-        <!--
-    global function delegation
-    when the button is clicked, f(event) will be called
-    -->
-        <qx.client.builder.EventListener type='click' delegate='f'/>
-
-      </qx.ui.form.Button>
-      <qx.ui.basic.Atom id='atom1' label='Test No #1' icon='icon/16/apps/graphics-snapshot.png' border='qx.renderer.border.BorderPresets.getInstance().black' location='20,90'/>
-
-      <qx.ui.form.Button label='Test No #2' icon='icon/16/apps/graphics-snapshot.png' location='20,120'>
-          <qx.client.builder.EventListener type='click'>
-            atom1.setLabel(atom1.getLabel() + ".");
-          </qx.client.builder.EventListener>
-      </qx.ui.form.Button>
-      <qx.ui.basic.Atom label='Test No #3' icon='icon/16/apps/graphics-snapshot.png' location='20,160'/>
-      <qx.ui.basic.Atom label='a' icon='icon/16/apps/graphics-snapshot.png' location='20,200'/>
-      <qx.ui.basic.Atom label='b' icon='icon/16/apps/graphics-snapshot.png' location='20,240'/>
-    </qx.client.builder.Container>
-  </textarea>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Builder_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Builder_2.html
deleted file mode 100644 (file)
index d04ddbe..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function() {
-      new qx.util.GuiBuilder().buildFromUrl(qx.ui.core.ClientDocument.getInstance(), 'Builder_2.xml');
-    });
-  </script>
-  <div id="demoDescription">
-    <p>qx.util.GuiBuilder demo.</p>
-    <p>Build your web apps using qooxdooml.</p>
-    <p>XmlHttp Example</p>
-  </div>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Builder_2.xml b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Builder_2.xml
deleted file mode 100644 (file)
index e440ac2..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-<qx.client.builder.Container>
-  <qx.ui.form.Button id='btn' label='Click Me!!!' location='20,50'>
-      
-    <!-- function body event listener -->
-    <qx.client.builder.EventListener type='click' args='event'>
-      btn.setLabel(btn.getLabel() + ".");
-      alert(event + "\n\nClicked on: " + this.getLabel()); 
-    </qx.client.builder.EventListener>
-
-    <!-- 
-      global object.method delegation
-      when the button is clicked, d.click(event) will be called
-      -->
-    <qx.client.builder.EventListener type='click' delegate='d.click'/>
-    
-    <!-- 
-      global function delegation
-      when the button is clicked, f(event) will be called
-      -->
-    <qx.client.builder.EventListener type='click' delegate='f'/>
-    
-  </qx.ui.form.Button>
-  <qx.ui.basic.Atom id='atom1' label='Test No #1' icon='icon/16/penguin.png' border='qx.renderer.border.BorderPresets.black' location='20,90'/>
-
-  <qx.ui.form.Button label='Test No #2' icon='icon/16/penguin.png' location='20,120'>
-      <qx.client.builder.EventListener type='click'>
-        atom1.setLabel(atom1.getLabel() + ".");
-      </qx.client.builder.EventListener>
-  </qx.ui.form.Button>
-  
-  <qx.ui.basic.Atom label='Test No #3' icon='icon/16/penguin.png' location='20,160'/>
-
-   <qx.ui.basic.Atom label='a' icon='icon/16/penguin.png' location='20,200'/>
-  <qx.ui.basic.Atom label='b' icon='icon/16/penguin.png' location='20,240'/>
-  
-  
-  <qx.client.builder.Script>        
-    // test delegate function
-    var f = function(e) {
-        alert(e + '\n\nclick received at delegate function\n\n');
-    }
-  
-    // test delegate object
-    var d = {
-      hello : 'world',
-      click : function(e) {
-        alert(e + '\n\nclick received at delegate object\n\n' + this.hello);
-      }
-    }   
-  </qx.client.builder.Script>
-</qx.client.builder.Container>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Builder_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Builder_3.html
deleted file mode 100644 (file)
index 49254bf..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function() {
-      new qx.util.GuiBuilder().buildFromUrl(qx.ui.core.ClientDocument.getInstance(), 'Builder_3.xml');
-    });
-  </script>
-  <div id="demoDescription">
-    <p>qx.util.GuiBuilder demo.</p>
-    <p>Build your web apps using qooxdooml.</p>
-    <p>Property Editor Example</p>
-  </div>
-</body>
-</html>
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Builder_3.xml b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Builder_3.xml
deleted file mode 100644 (file)
index 8c1e95f..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-<qx.client.builder.Container>
-   <qx.ui.menu.Menu id='m2'>
-    <qx.ui.menu.Button label='New Window'/>
-    <qx.ui.menu.Button label='Overlapping'/>
-    <qx.ui.menu.Button label='Split Vertical'/>
-    <qx.ui.menu.Button label='Split Horizontal'/>
-    <qx.ui.menu.Button label='Next Window'/>
-    <qx.ui.menu.Button label='Previous Window'/>
-  </qx.ui.menu.Menu>
-
-  <qx.ui.menu.Menu id='m1'>
-    <qx.ui.menu.Button label='View/Lists'/>
-    <qx.ui.menu.Button label='Syntax Highlighting'/>
-    <qx.ui.menu.Separator/>
-    <qx.ui.menu.Button label='Window Font'/>
-    <qx.ui.menu.Button label='Printer Font' menu='m2'/>
-  </qx.ui.menu.Menu>
-    
-  <qx.ui.form.Button id='btn' label='Reference Property' location='20,48'>
-    <qx.client.builder.EventListener type='click' args='e'>
-      var el = this.getElement();
-      m1.setLeft(qx.dom.Location.getPageBoxLeft(el));
-      m1.setTop(qx.dom.Location.getPageBoxBottom(el));      ;
-      m1.show();
-      e.setPropagationStopped(true);
-    </qx.client.builder.EventListener>
-    <qx.client.builder.EventListener type='mousedown' args='e'>
-      e.setPropagationStopped(true);
-    </qx.client.builder.EventListener>  
-  </qx.ui.form.Button>
-  
-  <qx.ui.basic.Atom label='Comma Delimited Property &amp; Eval Property ' location='140,48' backgroundColor='#BDD2EF' dimension='220,220' border='qx.renderer.border.BorderPresets.outset'/>
-</qx.client.builder.Container>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Builder_4.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Builder_4.html
deleted file mode 100644 (file)
index 827129a..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function() {
-      new qx.util.GuiBuilder().build(qx.ui.core.ClientDocument.getInstance(), document.getElementById('widgets'));
-    });
-  </script>
-  <div id="demoDescription">
-    <p>qx.util.GuiBuilder demo.</p>
-    <p>2 Format Example</p>
-  </div>
-  <textarea id='widgets' style='display:none'>
-    <qx.client.builder.Container>
-      <qx.ui.basic.Atom id="linfo" label="Current Value" icon="icon/16/actions/go-next.png" border="qx.renderer.border.BorderPresets.getInstance().black" padding="2,4" backgroundColor="white" top="48" left="20"/>
-      <qx.manager.selection.RadioManager id='_rm1' name="mygroup">
-        <qx.client.builder.EventListener type='changeSelected' args='e'>
-          linfo.setLabel("Current Value: \"" + e.getData().getLabel() + "\" (" + e.getData().getValue() + ")");
-        </qx.client.builder.EventListener>
-      </qx.manager.selection.RadioManager>
-      <qx.ui.form.RadioButton qxtype="radioButton" label="Option #1" value="rb1" location="20,80"  manager="_rm1"/>
-      <qx.ui.form.RadioButton label="Option #2" value="rb2" location="20,110" manager="_rm1" checked="true"/>
-      <div qxtype="qx.ui.form.RadioButton" label="Top RadioButton" value="rb3" location="20,160" manager="_rm1" iconPosition="top"/>
-      <qx.ui.form.RadioButton label="Bottom RadioButton" value="rb4" location="160,160" manager="_rm1" iconPosition="bottom"/>
-      <qx.ui.form.RadioButton label="Left RadioButton" value="rb5" location="20,220" manager="_rm1" iconPosition="left"/>
-      <qx.ui.form.RadioButton label="Right RadioButton" value="rb6" location="160,220" manager="_rm1" iconPosition="right"/>
-      <qx.ui.form.RadioButton value="rb7" location="20,280" manager="_rm1"/>
-    </qx.client.builder.Container>
-  </textarea>
-</body>
-</html>
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Button_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Button_1.html
deleted file mode 100644 (file)
index 4627769..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing the new flash support for QxButtons (inherited from qx.ui.basic.Atom).</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-      var a;
-
-      for (var i=1; i<11; i++)
-      {
-        var b = new qx.ui.form.Button("Flash Button #" + i, "icon/16/actions/view-refresh.png", 16, 16, "./image/flash/color/file" + i + ".swf");
-        
-        b.setTop(48 + ((i-1)*30));
-        b.setLeft(20);
-        
-        d.add(b);
-      }; 
-      
-      var b = new qx.ui.form.Button("Big Rotated", "icon/48/actions/view-refresh.png", 48, 48, "./image/flash/color/file3.swf");
-      
-      b.setTop(48);
-      b.setLeft(200);
-      b.setIconPosition("top");
-      
-      d.add(b);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CSS_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CSS_1.html
deleted file mode 100644 (file)
index fd60f55..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-       
-       <style type="text/css">
-       
-       .box {
-               position: absolute;
-               width: 100px;
-               height: 100px;
-               left: 30px;
-               top: 40px;
-               color: white;
-               padding: 5px;
-       }
-       
-       #box1 {
-               background-color: red;
-       }
-       
-       #box2 {
-               background-color: blue;
-               top: 200px;
-               left: 100px;
-       }
-       
-       </style>
-       
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Some tests of qx.html.StyleSheet</p>
-  </div>
-
-
-       <div id="box1" class="box">
-               Box 1   
-       </div>
-       
-       <div id="box2" class="box">
-               Box 2
-       </div>
-       
-  <div style="display:none" id="control">
-    <p>
-                       <h3>Box 1</h3>
-      <a href="javascript://" onclick="qx.html.StyleSheet.addRule(sheet, '#box1', 'background-color:green !important');">qx.html.StyleSheet.addRule(style, '#box1', 'background-color:green !important')</a> <br>
-      <a href="javascript://" onclick="qx.html.StyleSheet.removeRule(sheet, '#box1');">qx.html.StyleSheet.removeRule(sheet, '#box1')</a> <br>
-    </p>
-                       <h3>Box 1</h3>
-      <a href="javascript://" onclick="qx.html.StyleSheet.addRule(sheet, '#box2', 'background-color:yellow !important');">qx.html.StyleSheet.addRule(style, '#box2', 'background-color:yellow !important')</a> <br>
-      <a href="javascript://" onclick="qx.html.StyleSheet.removeRule(sheet, '#box2');">qx.html.StyleSheet.removeRule(sheet, '#box2')</a> <br>
-               <p>  
-                       <h3>All</h3>
-                       <a href="javascript://" onclick="qx.html.StyleSheet.removeAllRules(sheet)">qx.html.StyleSheet.removeAllRules(sheet)</a> <br>
-    </p>
-               <p>  
-                       <h3>Import</h3>
-                       add Import <br>
-                       <a href="javascript://" onclick="qx.html.StyleSheet.addImport(sheet, 'bigFont.css')">qx.html.StyleSheet.addImport(sheet, 'bigFont.css')</a> <br>
-                       <a href="javascript://" onclick="qx.html.StyleSheet.addImport(sheet, 'boldFont.css')">qx.html.StyleSheet.addImport(sheet, 'boldFont.css')</a> <br>
-                       remove Import<br>
-                       <a href="javascript://" onclick="qx.html.StyleSheet.removeImport(sheet, 'bigFont.css')">qx.html.StyleSheet.removeImport(sheet, 'bigFont.css')</a> <br>
-                       <a href="javascript://" onclick="qx.html.StyleSheet.removeImport(sheet, 'boldFont.css')">qx.html.StyleSheet.removeImport(sheet, 'boldFont.css')</a> <br>                
-       remove all Imports<br>
-                       <a href="javascript://" onclick="qx.html.StyleSheet.removeAllImports(sheet)">qx.html.StyleSheet.removeAllImports(sheet)</a> <br>                        
-               </p>
-               
-  </div>
-
-  <script type="text/javascript">
-
-       var sheet = qx.html.StyleSheet.createElement();
-
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-               var ct1 = new qx.ui.basic.Label(document.getElementById("control").innerHTML);
-
-    with(ct1)
-    {
-      setWidth(450);
-      setRight(335);
-
-      setHeight(null);
-      setTop(48);
-      setBottom(48);
-
-      setOverflow("auto");
-
-      setBackgroundColor(new qx.renderer.color.Color("white"));
-      setBorder(qx.renderer.border.BorderPresets.getInstance().groove);
-      setPadding(10);
-    };
-
-    d.add(ct1);
-  });
-       
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CanvasLayout_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CanvasLayout_1.html
deleted file mode 100644 (file)
index a53950b..0000000
+++ /dev/null
@@ -1,616 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var w1 = new qx.ui.layout.CanvasLayout;
-
-    w1.setWidth(100);
-    w1.setHeight(100);
-    w1.setLeft(100);
-    w1.setTop(100);
-    w1.setBackgroundColor(new qx.renderer.color.Color("red"));
-
-    d.add(w1);
-
-
-
-
-
-
-    var w2 = new qx.ui.layout.CanvasLayout;
-
-    w2.setWidth("25%");
-    w2.setHeight(100);
-    w2.setLeft(200);
-    w2.setTop(200);
-    w2.setBackgroundColor(new qx.renderer.color.Color("blue"));
-
-    d.add(w2);
-
-
-
-    var w3 = new qx.ui.layout.CanvasLayout;
-
-    w3.setRight(400);
-    w3.setHeight(100);
-    w3.setLeft(300);
-    w3.setTop(300);
-    w3.setBackgroundColor(new qx.renderer.color.Color("green"));
-
-    d.add(w3);
-
-
-
-
-
-    var w4 = new qx.ui.layout.CanvasLayout;
-
-    w4.setLeft(10);
-    w4.setRight(10);
-    w4.setTop(10);
-    w4.setBottom(10);
-    w4.setBackgroundColor(new qx.renderer.color.Color("white"));
-
-    w2.add(w4);
-
-
-
-
-
-    var w5 = new qx.ui.layout.CanvasLayout;
-
-    w5.setLeft(0);
-    w5.setTop(0);
-    w5.setWidth("50%");
-    w5.setHeight(50);
-    w5.setBackgroundColor(new qx.renderer.color.Color("white"));
-
-    w3.add(w5);
-
-
-
-
-    var w6 = new qx.ui.layout.CanvasLayout;
-
-    w6.setBottom(50);
-    w6.setLeft(350);
-    w6.setHeight("30%");
-    w6.setWidth(50);
-    w6.setBackgroundColor(new qx.renderer.color.Color("yellow"));
-    w6.setZIndex(100);
-    w6.setMinHeight(100);
-    w6.setMaxHeight(150);
-
-    d.add(w6);
-
-
-
-    var w7 = new qx.ui.layout.CanvasLayout;
-
-    w7.setTop(150);
-    w7.setLeft(20);
-    w7.setWidth(100);
-    w7.setHeight(100);
-    w7.setBackgroundColor(new qx.renderer.color.Color("aqua"));
-    w7.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-
-    d.add(w7);
-
-
-
-    var w8 = new qx.ui.layout.CanvasLayout;
-
-    w8.setTop(280);
-    w8.setLeft(20);
-    w8.setWidth("auto");
-    w8.setHeight("auto");
-    w8.setBackgroundColor(new qx.renderer.color.Color("fuchsia"));
-    w8.setBorder(new qx.renderer.border.Border(5, "solid", new qx.renderer.color.Color("black")));
-    w8.setPaddingTop(10);
-
-    //w8.getBorder().setLeftWidth(20);
-    //w8.getBorder().setLeftWidth(0);
-
-    // d.add(w8);
-
-
-    var w9 = new qx.ui.layout.CanvasLayout;
-
-    w9.setTop(0);
-    w9.getLeft(0);
-    w9.setWidth(40);
-    w9.setHeight(20);
-    w9.setBackgroundColor(new qx.renderer.color.Color("white"));
-
-    w8.add(w9);
-
-
-
-    var w10 = new qx.ui.layout.CanvasLayout;
-
-    w10.setTop(0);
-    w10.getLeft(0);
-    w10.setWidth(10);
-    w10.setHeight(50);
-    w10.setBackgroundColor(new qx.renderer.color.Color("red"));
-
-    w8.add(w10);
-
-    d.add(w8);
-
-
-
-
-
-
-    var w11 = new qx.ui.layout.CanvasLayout;
-
-    w11.setTop(200);
-    w11.setLeft(40);
-    w11.setWidth("auto");
-    w11.setHeight("auto");
-    w11.setBackgroundColor(new qx.renderer.color.Color("green"));
-    w11.setDisplay(false);
-    w11.setBorder(qx.renderer.border.BorderPresets.getInstance().white);
-    w11.setPaddingLeft(20);
-
-    d.add(w11);
-
-    w8.addEventListener("click", function(e) {
-      w11.toggleDisplay();
-    });
-
-
-    /*
-    w11.addEventListener("show", function(e) {
-      this.debug("Show W11");
-    });
-
-    w11.addEventListener("hide", function(e) {
-      this.debug("Hide W11");
-    });
-    */
-
-
-    var w12 = new qx.ui.basic.Image("icon/64/energy.png");
-    w11.add(w12);
-
-
-
-
-    var w12 = new qx.ui.basic.Image("icon/48/apps/accessories-clock.png");
-
-    w12.setTop(350);
-    w12.setLeft(20);
-
-    d.add(w12);
-
-
-    var w13 = new qx.ui.basic.Image("icon/48/apps/accessories-alarm.png");
-
-    w13.setTop(350);
-    w13.setLeft(80);
-
-    d.add(w13);
-
-
-
-
-
-    var w14 = new qx.ui.layout.CanvasLayout;
-
-    w14.setTop(400);
-    w14.setLeft(20);
-    w14.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    //w14.setWidth("auto");
-    w14.setMinWidth("auto");
-    w14.setWidth("30%");
-
-    w14.setHeight("auto");
-    w14.setPadding(10);
-    w14.setBackgroundColor(new qx.renderer.color.Color("white"));
-
-    d.add(w14);
-
-
-    var w15 = new qx.ui.basic.Image("icon/48/apps/accessories-clock.png");
-
-    w15.setTop(0);
-    w15.setLeft(20);
-
-    w14.add(w15);
-
-
-    var w16 = new qx.ui.basic.Image("icon/128/apps/accessories-date.png");
-
-    w16.setTop(20);
-    w16.setLeft(80);
-
-    w14.add(w16);
-
-
-    var w16a = new qx.ui.layout.CanvasLayout;
-
-    w16a.setMarginTop(160);
-    w16a.setBottom(20);
-    w16a.setRight(20);
-
-    w16a.setBackgroundColor(new qx.renderer.color.Color("yellow"));
-
-    w16a.setWidth(30);
-    w16a.setHeight(30);
-
-    w14.add(w16a);
-
-
-
-    w16a.addEventListener("click", function(e)
-    {
-      var v16Margin = w16a.getMarginTop() + 20;
-      if (v16Margin > 240) {
-        v16Margin = 100;
-      };
-
-      w16a.setMarginTop(v16Margin);
-    });
-
-
-
-
-    var w17_b1 = new qx.renderer.border.Border(5, "solid", new qx.renderer.color.Color("black"));
-    var w17_b2 = new qx.renderer.border.Border(10, "solid", new qx.renderer.color.Color("black"));
-
-    var w17_p1 = 10;
-    var w17_p2 = 5;
-
-    var w17 = new qx.ui.layout.CanvasLayout;
-
-    w17.setBackgroundColor(new qx.renderer.color.Color("orange"));
-    w17.setWidth(50);
-    w17.setHeight(50);
-    w17.setTop(50);
-    w17.setLeft(200);
-
-    w17.setBorder(w17_b1);
-    w17.setPadding(w17_p1);
-
-    d.add(w17);
-
-
-    w17.addEventListener("click", function(e)
-    {
-      if (w17.getBorder() == w17_b1)
-      {
-        w17.setBorder(w17_b2);
-        w17.setPadding(w17_p2);
-      }
-      else
-      {
-        w17.setBorder(w17_b1);
-        w17.setPadding(w17_p1);
-      };
-    });
-
-
-    var w18 = new qx.ui.layout.CanvasLayout;
-
-    w18.setBackgroundColor(new qx.renderer.color.Color("white"));
-    w18.setWidth("100%");
-    w18.setHeight("100%");
-    w18.setLeft(0);
-    w18.setTop(0);
-
-    w17.add(w18);
-
-
-
-
-
-
-
-
-
-    var w19_b1 = new qx.renderer.border.Border(5, "solid", new qx.renderer.color.Color("black"));
-
-    var w19_p1 = 10;
-    var w19_p2 = 5;
-
-    var w19 = new qx.ui.layout.CanvasLayout;
-
-    w19.setBackgroundColor(new qx.renderer.color.Color("orange"));
-    w19.setWidth(50);
-    w19.setHeight(50);
-    w19.setTop(50);
-    w19.setLeft(270);
-
-    w19.setBorder(w19_b1);
-    w19.setPadding(w19_p1);
-
-    d.add(w19);
-
-
-    var _t22 = true;
-    w19.addEventListener("click", function(e)
-    {
-      if (_t22)
-      {
-        w19_b1.setWidth(10);
-        w19.setPadding(w19_p2);
-      }
-      else
-      {
-        w19_b1.setWidth(5);
-        w19.setPadding(w19_p1);
-      };
-
-      _t22 = !_t22;
-    });
-
-
-    var w20 = new qx.ui.layout.CanvasLayout;
-
-    w20.setBackgroundColor(new qx.renderer.color.Color("white"));
-    w20.setWidth("100%");
-    w20.setHeight("100%");
-    w20.setLeft(0);
-    w20.setTop(0);
-
-    w19.add(w20);
-
-
-
-
-
-    var w21_b1 = new qx.renderer.border.Border(5, "solid", new qx.renderer.color.Color("black"));
-    var w21_b2 = new qx.renderer.border.Border(5, "solid", new qx.renderer.color.Color("blue"));
-
-    var w21 = new qx.ui.layout.CanvasLayout;
-
-    w21.setBackgroundColor(new qx.renderer.color.Color("orange"));
-    w21.setWidth(50);
-    w21.setHeight(50);
-    w21.setTop(50);
-    w21.setLeft(340);
-
-    w21.setBorder(w21_b1);
-    w21.setPadding(10);
-
-    d.add(w21);
-
-
-    w21.addEventListener("click", function(e)
-    {
-      if (w21.getBorder() == w21_b1)
-      {
-        w21.setBorder(w21_b2);
-      }
-      else
-      {
-        w21.setBorder(w21_b1);
-      };
-    });
-
-
-    var w22 = new qx.ui.layout.CanvasLayout;
-
-    w22.setBackgroundColor(new qx.renderer.color.Color("white"));
-    w22.setWidth("100%");
-    w22.setHeight("100%");
-    w22.setLeft(0);
-    w22.setTop(0);
-
-    w21.add(w22);
-
-
-
-
-
-
-
-    var w23_b1 = new qx.renderer.border.BorderObject(5, "solid", new qx.renderer.color.Color("black"));
-
-    var w23 = new qx.ui.layout.CanvasLayout;
-
-    w23.setBackgroundColor(new qx.renderer.color.Color("orange"));
-    w23.setWidth(50);
-    w23.setHeight(50);
-    w23.setTop(50);
-    w23.setLeft(410);
-
-    w23.setBorder(w23_b1);
-    w23.setPadding(10);
-
-    d.add(w23);
-
-    w23.addEventListener("mouseover", function(e)
-    {
-      w23_b1.setColor(new qx.renderer.color.Color("blue"));
-      w23_b1.setStyle("dotted");
-    });
-
-    w23.addEventListener("mouseout", function(e)
-    {
-      w23_b1.setColor(new qx.renderer.color.Color("black"));
-      w23_b1.setStyle("solid");
-    });
-
-    var w24 = new qx.ui.layout.CanvasLayout;
-
-    w24.setBackgroundColor(new qx.renderer.color.Color("white"));
-    w24.setWidth("100%");
-    w24.setHeight("100%");
-    w24.setLeft(0);
-    w24.setTop(0);
-    w24.setAnonymous(true);
-
-    w23.add(w24);
-
-
-
-
-
-
-    var w25_b1 = qx.renderer.border.BorderPresets.getInstance().outset;
-    var w25_b2 = qx.renderer.border.BorderPresets.getInstance().inset;
-
-    var w25_p1 = 10;
-    var w25_p2 = 5;
-
-    var w25 = new qx.ui.layout.CanvasLayout;
-
-    w25.setBackgroundColor(new qx.renderer.color.ColorObject("ThreeDFace"));
-    w25.setWidth(50);
-    w25.setHeight(50);
-    w25.setTop(50);
-    w25.setLeft(480);
-
-    w25.setBorder(w25_b1);
-    w25.setPadding(w25_p1);
-
-    d.add(w25);
-
-
-    w25.addEventListener("click", function(e)
-    {
-      if (w25.getBorder() == w25_b1)
-      {
-        w25.setBorder(w25_b2);
-        w25.setPadding(w25_p2);
-      }
-      else
-      {
-        w25.setBorder(w25_b1);
-        w25.setPadding(w25_p1);
-      };
-    });
-
-
-    var w26 = new qx.ui.layout.CanvasLayout;
-
-    w26.setBackgroundColor(new qx.renderer.color.Color("white"));
-    w26.setWidth("100%");
-    w26.setHeight("100%");
-    w26.setLeft(0);
-    w26.setTop(0);
-
-    w25.add(w26);
-
-
-
-
-
-
-
-    var w27 = new qx.ui.layout.CanvasLayout;
-
-    w27.setBackgroundColor(new qx.renderer.color.ColorObject("ThreeDFace"));
-    w27.setWidth(50);
-    w27.setHeight(50);
-    w27.setTop(50);
-    w27.setLeft(550);
-
-    w27.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    w27.setPadding(10, 10, 10, 10);
-
-    d.add(w27);
-
-
-    w27.addEventListener("click", function(e)
-    {
-      if (w27.getBorder() == qx.renderer.border.BorderPresets.getInstance().outset)
-      {
-        w27.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-        w27.setPadding(12, 8, 8, 12);
-      }
-      else
-      {
-        w27.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-        w27.setPadding(10, 10, 10, 10);
-      };
-    });
-
-
-    var w28 = new qx.ui.layout.CanvasLayout;
-
-    w28.setBackgroundColor(new qx.renderer.color.Color("white"));
-    w28.setWidth("100%");
-    w28.setHeight("100%");
-    w28.setLeft(0);
-    w28.setTop(0);
-
-    w27.add(w28);
-
-
-
-
-
-
-
-    var w29_b1 = qx.renderer.border.BorderPresets.getInstance().outset;
-    var w29_b2 = qx.renderer.border.BorderPresets.getInstance().inset;
-
-    var w29_p1 = 10;
-    var w29_p2 = 5;
-
-    var w29 = new qx.ui.layout.CanvasLayout;
-
-    w29.setBackgroundColor(new qx.renderer.color.ColorObject("ThreeDFace"));
-    w29.setWidth(50);
-    w29.setHeight(50);
-    w29.setTop(50);
-    w29.setLeft(620);
-
-    w29.setBorder(w29_b1);
-    w29.setPadding(w29_p1);
-
-    d.add(w29);
-
-
-    w29.addEventListener("click", function(e)
-    {
-      if (w29.getBorder() == w29_b1)
-      {
-        w29.setBorder(w29_b2);
-        w29.setPadding(w29_p2);
-      }
-      else
-      {
-        w29.setBorder(w29_b1);
-        w29.setPadding(w29_p1);
-      };
-    });
-
-
-    var w30 = new qx.ui.layout.CanvasLayout;
-
-    w30.setBackgroundColor(new qx.renderer.color.Color("white"));
-    w30.setLeft(0);
-    w30.setRight(0);
-    w30.setTop(0);
-    w30.setBottom(0);
-
-    w29.add(w30);
-
-
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CanvasLayout_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CanvasLayout_3.html
deleted file mode 100644 (file)
index ae17a92..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>This test is using multiple qx.ui.basic.Terminator</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-    var w, s;
-
-
-
-    for (var i=1; i<=20; i++)
-    {
-      s = new Date().valueOf();
-
-      for (var j=1; j<=20; j++)
-      {
-        var w = new qx.ui.basic.Terminator;
-
-        w.setWidth(12);
-        w.setHeight(12);
-        w.setLeft(20+(12*i));
-        w.setTop(48+(12*j));
-        w.setBackgroundColor(new qx.renderer.color.Color(Math.round(20+(i*j)/2)));
-
-        d.add(w);
-      };
-
-      // this.debug("Col: " + ((new Date).valueOf()-s) + "ms");
-    };
-
-
-
-
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CanvasLayout_4.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CanvasLayout_4.html
deleted file mode 100644 (file)
index e3157be..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>This test is using multiple div-Elements</p>
-  <p>Created with "createElement" and added via "appendChild" to the document.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-    var w;
-    var v;
-
-    for (var i=1; i<=20; i++)
-    {
-      for (var j=1; j<=20; j++)
-      {
-        var w = document.createElement("div");
-
-        w.className = "qx_ui_core_Widget_QxWidgetCore";
-        w.id = "Auto" + i + "|" + j;
-
-        w.style.width = "12px";
-        w.style.height = "12px";
-      w.style.position = "absolute";
-        w.style.left = (20+(12*i)) + "px";
-        w.style.top = (48+(12*j)) + "px";
-
-        v = Math.round(20+(i*j)/2);
-        w.style.backgroundColor = "rgb(" + v + "," + v + "," + v + ")";
-
-        document.body.appendChild(w);
-      };
-    };
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CanvasLayout_5.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CanvasLayout_5.html
deleted file mode 100644 (file)
index 49f66f4..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>This test is using multiple div-Elements</p>
-  <p>Added to the document using the "innerHTML" property.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-    var w;
-    var v;
-    var h = [];
-
-    for (var i=1; i<=20; i++)
-    {
-      for (var j=1; j<=20; j++)
-      {
-        h.push("<div style='width:12px;height:12px;position:absolute;");
-        h.push("left:" + (20+(12*i)) + "px;");
-        h.push("top:" + (48+(12*j)) + "px;");
-
-        v = Math.round(20+(i*j)/2);
-        h.push("background-color:" + "rgb(" + v + "," + v + "," + v + ")");
-        h.push("' class='qx_ui_core_Widget_QxWidgetCore' id='Auto" + i + "|" + j + "'></div>");
-      };
-    };
-
-    document.body.innerHTML += h.join("");
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Clipping_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Clipping_1.html
deleted file mode 100644 (file)
index e7d8b1a..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Tests for clipping implementation</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var t1 = new qx.ui.basic.Terminator;
-
-    t1.setBackgroundColor("red");
-    t1.setLocation(20, 48);
-    t1.setDimension(100, 100);
-    t1.setBorder(2, "solid", "black");
-    t1.setClipLocation(0, 0);
-    t1.setClipDimension(50, 50);
-
-    d.add(t1);
-
-
-
-    var t2 = new qx.ui.basic.Terminator;
-
-    t2.setBackgroundColor("yellow");
-    t2.setLocation(200, 48);
-    t2.setDimension(100, 100);
-    t2.setBorder(2, "solid", "black");
-    t2.setClipLocation(25, 25);
-    t2.setClipDimension(50, 50);
-
-    d.add(t2);
-
-
-
-    var t3 = new qx.ui.basic.Terminator;
-
-    t3.setBackgroundColor("blue");
-    t3.setLocation(20, 248);
-    t3.setDimension(100, 100);
-    t3.setBorder(2, "solid", "black");
-    t3.setClipLocation(50, 50);
-    t3.setClipDimension(50, 50);
-
-    d.add(t3);
-
-
-
-
-    var t4 = new qx.ui.basic.Terminator;
-
-    t4.setBackgroundColor("orange");
-    t4.setLocation(200, 248);
-    t4.setDimension(100, 100);
-    t4.setBorder(2, "solid", "black");
-    t4.setClip(25, 25, null, null);
-
-    d.add(t4);
-
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Clone_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Clone_1.html
deleted file mode 100644 (file)
index 22ee169..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test widget cloning.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-  
-    var c1 = new qx.ui.layout.CanvasLayout;
-
-    with(c1)
-    {
-      setWidth(200);
-
-      setTop(48);
-      setLeft(20);
-
-      setHeight(100);
-      setBackgroundColor("orange");
-    };
-    
-    d.add(c1);    
-    
-
-    var c2 = c1.clone();
-    
-    with(c2)
-    {
-      setLeft(30);
-      setTop(58);
-
-    setBackgroundColor("green");
-    };
-    d.add(c2);
-    
-    var c3 = c2.clone(false, ["top","left","width","height"]);
-    
-    with(c3)
-    {
-    setLeft(40);
-    setTop(68);
-      
-    setBackgroundColor("blue");
-    };
-    d.add(c3);
-    
-    
-    
-    
-
-    var a1 = new qx.ui.basic.Atom("First Atom", "icon/48/apps/accessories-clock.png");
-    
-    with(a1)
-    {
-      setTop(200);
-      setLeft(20);
-      setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-      
-      setPadding(5);
-    };
-    
-    d.add(a1);
-    
-    
-    
-    var a2 = a1.clone(true);
-    
-    with(a2)
-    {
-      setLeft(200);      
-    };
-    
-    
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Clone_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Clone_2.html
deleted file mode 100644 (file)
index c3f60be..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testfile for check cloning on QxFieldSets.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-
-      var fs = new qx.ui.groupbox.GroupBox("My first Fieldset");
-      
-      with(fs) 
-      {
-        setWidth("40%");
-        setBottom(48);
-        setTop(48);
-        setLeft(20);
-        
-        setMaxWidth(350);
-        setMinWidth(250);
-      };
-      
-      
-      
-      var a1 = new qx.ui.basic.Atom("TextField 1");
-      with(a1)
-      {
-        setTop(13);
-        setLeft(0);
-        setWidth("35%");
-      };
-          
-      var i1 = new qx.ui.form.TextField();
-      with(i1)
-      {
-        setTop(10);
-        setRight(0);
-        setWidth("60%");
-      };
-      fs.add(a1, i1);
-      
-      
-      
-      var a2 = new qx.ui.basic.Atom("TextField 2", "icon/16/apps/internet-email-client.png");
-      with(a2)
-      {
-        setTop(43);
-        setLeft(0);
-        setWidth("35%");
-      };
-      fs.add(a2);
-      
-      var i2 = new qx.ui.form.TextField();
-      with(i2)
-      {
-        setTop(40);
-        setRight(0);
-        setWidth("60%");
-      };
-      fs.add(i2);      
-      
-      
-      
-      var a3 = new qx.ui.basic.Atom("TextField 3");
-      with(a3)
-      {
-        setTop(73);
-        setLeft(0);
-        setWidth("35%");
-      };
-      fs.add(a3);
-      
-      var i3 = new qx.ui.form.TextField();
-      with(i3)
-      {
-        setTop(70);
-        setRight(0);
-        setWidth("60%");
-      };
-      fs.add(i3);      
-      
-      
-      d.add(fs);
-      
-      
-      fsclone = fs.clone(true);     
-      with(fsclone)
-      {
-        setLeft(400);
-        setLegend("My cloned Fieldset");
-      };
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ColorTheme_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ColorTheme_1.html
deleted file mode 100644 (file)
index 38b90ba..0000000
+++ /dev/null
@@ -1,235 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Color Theme Test</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var w1 = new qx.ui.basic.Terminator;
-
-    w1.setWidth(100);
-    w1.setHeight(100);
-    w1.setBackgroundColor(new qx.renderer.color.Color("yellow"));
-    w1.setTop(48);
-    w1.setLeft(20);
-
-    d.add(w1);
-
-
-
-    var w2 = new qx.ui.basic.Terminator;
-
-    w2.setWidth(100);
-    w2.setHeight(100);
-    w2.setBackgroundColor(new qx.renderer.color.ColorObject("activecaption"));
-    w2.setTop(48);
-    w2.setLeft(150);
-
-    d.add(w2);
-
-
-
-
-    var w3 = new qx.ui.basic.Terminator;
-
-    w3.setWidth(100);
-    w3.setHeight(100);
-    w3.setBackgroundColor("red");
-    w3.setTop(200);
-    w3.setLeft(20);
-
-    d.add(w3);
-
-
-
-    var w4 = new qx.ui.basic.Terminator;
-
-    w4.setWidth(100);
-    w4.setHeight(100);
-    w4.setBackgroundColor("red");
-    w4.setTop(200);
-    w4.setLeft(150);
-
-    d.add(w4);
-
-
-
-
-    var w5 = new qx.ui.basic.Label("Hello World");
-
-    w5.setTop(320);
-    w5.setLeft(20);
-    w5.setColor("red");
-
-    d.add(w5);
-
-
-
-
-
-    var w6 = new qx.ui.basic.Terminator;
-
-    w6.setWidth(100);
-    w6.setHeight(100);
-    w6.setBackgroundColor("activecaption");
-    w6.setTop(400);
-    w6.setLeft(20);
-
-    d.add(w6);
-
-
-
-    var w7 = new qx.ui.basic.Terminator;
-
-    w7.setWidth(100);
-    w7.setHeight(100);
-    w7.setBackgroundColor("activeCaption");
-    w7.setTop(400);
-    w7.setLeft(150);
-
-    d.add(w7);
-    
-    
-    
-    
-    var w8 = new qx.ui.basic.Label("Hello World");
-    
-    w8.setTop(520);
-    w8.setLeft(20);
-    w8.setColor("ActiveCaption");
-
-    d.add(w8);
-
-
-
-
-
-
-
-    var w9 = new qx.ui.basic.Atom("Super qooxdoo", "icon/48/apps/preferences-desktop-multimedia.png");
-
-    w9.setTop(520);
-    w9.setLeft(200);
-    w9.setBorder(new qx.renderer.border.BorderObject(2, "solid", "activeCaption"));
-    w9.setBackgroundColor("threedlightshadow");
-
-    d.add(w9);
-
-
-
-
-
-    var w10 = new qx.ui.basic.Atom("Super qooxdoo", "icon/48/apps/preferences-desktop-multimedia.png");
-
-    w10.setTop(520);
-    w10.setLeft(400);
-    w10.setBorder(new qx.renderer.border.BorderObject(2, "solid", new qx.renderer.color.ColorObject("activeCaption")));
-    w10.setBackgroundColor("threedlightshadow");
-
-    d.add(w10);
-
-
-
-
-
-
-    var w11 = new qx.ui.basic.Label("Hello World");
-
-    w11.setTop(600);
-    w11.setLeft(20);
-    w11.setBackgroundColor([232,102,255]);
-    w11.setColor(20,30,60);
-    w11.setBorder(1, "solid", "red");
-
-    d.add(w11);
-
-
-
-    var w12 = new qx.ui.basic.Label("Hello World");
-
-    w12.setTop(600);
-    w12.setLeft(120);
-    w12.setBackgroundColor([232,102,255]);
-    w12.setColor(20,30,60);
-    w12.setBorder([1, "solid", "red"]);
-
-    d.add(w12);
-
-
-
-    var w13 = new qx.ui.basic.Label("Hello World");
-
-    w13.setLocation(220, 600);
-    w13.setBackgroundColor([232,102,255]);
-    w13.setColor(20,30,60);
-    w13.setBorder([1, "solid", "activeCaption"]);
-
-    d.add(w13);
-
-
-
-
-    var myBoundedBorder1 = new qx.renderer.border.Border(1, "solid", [200,10,20]);
-
-
-    var w14 = new qx.ui.basic.Terminator;
-
-    w14.setWidth(100);
-    w14.setHeight(100);
-    w14.setLeft(600);
-    w14.setTop(100);
-    w14.setBorder(myBoundedBorder1);
-
-    d.add(w14);
-
-    // should not work with qx.renderer.border.Border - use qx.renderer.border.BorderObject instead
-    w14.addEventListener("click", function(e) {
-      myBoundedBorder1.setTopColor([100,200,200]);
-      myBoundedBorder1.setTopWidth(10);
-    });
-
-
-
-    var myBoundedBorder2 = new qx.renderer.border.BorderObject(1, "solid", [200,10,20]);
-
-
-    var w15 = new qx.ui.basic.Terminator;
-
-    w15.setWidth(100);
-    w15.setHeight(100);
-    w15.setLeft(600);
-    w15.setTop(210);
-    w15.setBorder(myBoundedBorder2);
-
-    d.add(w15);
-
-    w15.addEventListener("click", function(e) {
-      myBoundedBorder2.setTopColor([100,200,200]);
-      myBoundedBorder2.setTopWidth(10);
-    });
-
-
-
-
-    // Color Themes
-    qx.manager.object.ColorManager.getInstance().createThemeList(d, 350, 128);
-
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ColorTheme_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ColorTheme_2.html
deleted file mode 100644 (file)
index a76a8dc..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Color Theme Test</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-
-    // Create Default OS Color Table
-    var w;
-    var c=0;
-    for (var i in qx.renderer.color.Color.themedNames)
-    {
-      w = new qx.ui.basic.Label(i);
-
-      w.setWidth(120);
-      w.setTop(48+(c*18));
-      w.setLeft(20);
-      w.setPadding(1, 2);
-      w.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      w.setStyleProperty("backgroundColor", i);
-
-      d.add(w);
-
-      c++;
-    };
-
-
-
-    // Create Default OS Color Table
-    var w;
-    var c=0;
-    for (var i in qx.renderer.color.Color.themedNames)
-    {
-      w = new qx.ui.basic.Label(i);
-
-      w.setWidth(120);
-      w.setTop(48+(c*18));
-      w.setLeft(150);
-      w.setPadding(1, 2);
-      w.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      w.setBackgroundColor(new qx.renderer.color.ColorObject(i));
-
-      d.add(w);
-
-      c++;
-    };
-
-
-
-
-
-
-
-
-    // Color Themes
-    qx.manager.object.ColorManager.getInstance().createThemeList(d, 400, 128);
-  });
-  </script>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ColorTheme_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ColorTheme_3.html
deleted file mode 100644 (file)
index 5378f2f..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Color Theme Test for qx.renderer.border.BorderObject's</p>
-    <ul>
-      <li>First Col: qooxdoo solution for borders</li>
-      <li>Second Col: html solution without color value</li>
-      <li>Third Col: html solution with color value: white</li>
-    </ul>
-    <p>The default color Theme is: <em>OS Default</em></p>
-  </div>
-  
-  <div style="position: absolute; left: 120px; top: 48px; width: 50px">    
-    <div style="width:50px; height: 50px; margin-bottom: 10px; border: 2px outset">&#160;</div>
-    <div style="width:50px; height: 50px; margin-bottom: 10px; border: 2px inset">&#160;</div>
-    <div style="width:50px; height: 50px; margin-bottom: 10px; border: 2px ridge">&#160;</div>
-    <div style="width:50px; height: 50px; margin-bottom: 10px; border: 2px groove">&#160;</div>
-    
-    <div style="width:50px; height: 50px; margin-bottom: 10px; border: 1px outset">&#160;</div>
-    <div style="width:50px; height: 50px; margin-bottom: 10px; border: 1px inset">&#160;</div>
-  </div>
-
-  <div style="position: absolute; left: 180px; top: 48px; width: 50px">    
-    <div style="width:50px; height: 50px; margin-bottom: 10px; border: 2px outset white">&#160;</div>
-    <div style="width:50px; height: 50px; margin-bottom: 10px; border: 2px inset white">&#160;</div>
-    <div style="width:50px; height: 50px; margin-bottom: 10px; border: 2px ridge white">&#160;</div>
-    <div style="width:50px; height: 50px; margin-bottom: 10px; border: 2px groove white">&#160;</div>
-        
-    <div style="width:50px; height: 50px; margin-bottom: 10px; border: 1px outset white">&#160;</div>
-    <div style="width:50px; height: 50px; margin-bottom: 10px; border: 1px inset white">&#160;</div>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-
-
-    var w1 = new qx.ui.basic.Terminator;
-    w1.setDimension(50, 50);
-    w1.setLocation(20, 48);
-    w1.setBorder(new qx.renderer.border.BorderObject(2, "outset"));
-    d.add(w1);
-
-    var w2 = new qx.ui.basic.Terminator;
-    w2.setDimension(50, 50);
-    w2.setLocation(20, 108);
-    w2.setBorder(new qx.renderer.border.BorderObject(2, "inset"));
-    d.add(w2);
-
-    var w3 = new qx.ui.basic.Terminator;
-    w3.setDimension(50, 50);
-    w3.setLocation(20, 168);
-    w3.setBorder(new qx.renderer.border.BorderObject(2, "ridge"));
-    d.add(w3);
-
-    var w4 = new qx.ui.basic.Terminator;
-    w4.setDimension(50, 50);
-    w4.setLocation(20, 228);
-    w4.setBorder(new qx.renderer.border.BorderObject(2, "groove"));
-    d.add(w4);
-
-    var w5 = new qx.ui.basic.Terminator;
-    w5.setDimension(50, 50);
-    w5.setLocation(20, 288);
-    w5.setBorder(new qx.renderer.border.BorderObject(1, "outset"));
-    d.add(w5);
-
-    var w6 = new qx.ui.basic.Terminator;
-    w6.setDimension(50, 50);
-    w6.setLocation(20, 348);
-    w6.setBorder(new qx.renderer.border.BorderObject(1, "inset"));
-    d.add(w6);
-    
-    
-    
-    var border1 = new qx.renderer.border.BorderObject(2, "outset");
-    var border2 = new qx.renderer.border.BorderObject(1, "outset");
-    
-    var w7 = new qx.ui.layout.CanvasLayout;
-    w7.setDimension(50, 50);
-    w7.setLocation(20, 408);
-    w7.setBorder(border1);
-    d.add(w7);
-    
-    var w7c = new qx.ui.basic.Terminator;
-    w7c.setDimension("100%", "100%");
-    w7c.setBackgroundColor(new qx.renderer.color.Color("red"));
-    w7.add(w7c);    
-
-
-
-    var w8 = new qx.ui.layout.CanvasLayout;
-    w8.setDimension(50, 50);
-    w8.setLocation(20, 468);
-    w8.setBorder(border2);
-    d.add(w8);
-    
-    var w8c = new qx.ui.basic.Terminator;
-    w8c.setDimension("100%", "100%");
-    w8c.setBackgroundColor(new qx.renderer.color.Color("red"));
-    w8.add(w8c);  
-    
-    
-    
-    
-    w7.addEventListener("click", function(e) {
-      this.setBorder(this.getBorder() == null ? border1 : this.getBorder() == border1 ? border2 : null)
-    });
-
-    w8.addEventListener("click", function(e) {
-      this.setBorder(this.getBorder() == null ? border1 : this.getBorder() == border1 ? border2 : null)
-    });
-    
-    
-    
-    
-    
-    
-    var w9 = new qx.ui.layout.CanvasLayout;
-    
-    w9.setDimension(100, 100);
-    w9.setLocation(400, 400);
-    w9.setBorder(border1);
-    w9.setOverflow("scroll");
-    
-    d.add(w9);
-    
-    var w9c = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-    
-    w9c.setTop(150);
-    w9c.setLeft(300);
-    
-    w9.add(w9c);
-    
-    
-    
-    w9.addEventListener("click", function(e) {
-      this.setOverflow(this.getOverflow() == "scroll" ? "scrollX" : this.getOverflow() == "scrollX" ? "scrollY" : this.getOverflow() == "scrollY" ? "" : "scroll");
-    });
-
-
-
-    // Color Themes
-    qx.manager.object.ColorManager.getInstance().createThemeList(d, 400, 128);
-    
-    
-    
-    
-    
-    
-    /*
-    var c1 = new qx.renderer.color.Color("gray");
-    this.debug("RGB-Transform I: " + c1.getRed() + "," + c1.getGreen() + "," + c1.getBlue());
-
-    // This could not work with the default theme "OS Default", as this does not define any rgb colors
-    var c2 = new qx.renderer.color.ColorObject("threedface");
-    this.debug("RGB-Transform II: " + c2.getRed() + "," + c2.getGreen() + "," + c2.getBlue());
-    */
-  });
-  </script>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ComboBox_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ComboBox_1.html
deleted file mode 100644 (file)
index 7a2a2e6..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing qx.ui.form.ComboBox implementation.</p>
-    <p>Testing object creation (the list content will be filled then) on first open.</p>
-  </div>
-
-  <select style="position:absolute; left:300px; top:48px; width: 120px;">
-    <option>Item No 1</option>
-    <option>Item No 2</option>
-    <option>Item No 3</option>
-    <option>Item No 4</option>
-    <option>Item No 5</option>
-    <option>Item No 6</option>
-    <option>Item No 7</option>
-    <option>Item No 8</option>
-    <option>Item No 9</option>
-    <option disabled="true">Item No 10</option>
-    <option>Item No 11</option>
-    <option>Item No 12</option>
-    <option>Item No 13</option>
-    <option>Item No 14</option>
-    <option>Item No 15</option>
-    <option>Item No 16</option>
-    <option>Item No 17</option>
-    <option>Item No 18</option>
-    <option>Item No 19</option>
-    <option disabled="true">Item No 20</option>
-    <option>Item No 21</option>
-    <option>Item No 22</option>
-    <option>Item No 23</option>
-    <option>Item No 24</option>
-    <option>Item No 23</option>
-    <option>Item No 24</option>
-    <option>Item No 25</option>
-    <option>Item No 26</option>
-    <option>Item No 27</option>
-    <option>Item No 28</option>
-    <option>Item No 29</option>
-    <option disabled="true">Item No 30</option>
-  </select>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-
-      var c1 = new qx.ui.form.ComboBox;
-      c1.setLocation(20, 48);
-
-      c1.addEventListener("beforeInitialOpen", function(e)
-      {
-        var item;
-
-        for(var i=1; i<=30; i++)
-        {
-          item = new qx.ui.form.ListItem("Item No " + i);
-          !(i % 10) && (item.setEnabled(false));
-          c1.add(item);
-        };
-      });
-
-      // this does not work here (if there is no content)
-      c1.setSelected(c1.getList().getFirstChild());
-
-      c1.addEventListener("changeValue", function(e) {
-        this.debug("New value: " + e.getData());
-      });
-
-      c1.addEventListener("changeSelected", function(e) {
-        this.debug("New selected: " + e.getData());
-      });
-
-
-
-
-      var b1 = new qx.ui.form.CheckBox("Editable");
-
-      b1.set({ top: 50, left: 150 });
-
-      b1.addEventListener("changeChecked", function(e) {
-        c1.setEditable(e.getData());
-      });
-
-
-
-      d.add(c1, b1);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ComboBox_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ComboBox_2.html
deleted file mode 100644 (file)
index c5a22d7..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing qx.ui.form.ComboBox implementation.</p>
-    <p>Testing object creation (the list content will be filled then) on first open.</p>
-    <p>Added Color Theme Buttons</p>
-  </div>
-
-  <select style="position:absolute; left:300px; top:48px; width: 120px;">
-    <option>Item No 1</option>
-    <option>Item No 2</option>
-    <option>Item No 3</option>
-    <option>Item No 4</option>
-    <option>Item No 5</option>
-    <option>Item No 6</option>
-    <option>Item No 7</option>
-    <option>Item No 8</option>
-    <option>Item No 9</option>
-    <option disabled="true">Item No 10</option>
-    <option>Item No 11</option>
-    <option>Item No 12</option>
-    <option>Item No 13</option>
-    <option>Item No 14</option>
-    <option>Item No 15</option>
-    <option>Item No 16</option>
-    <option>Item No 17</option>
-    <option>Item No 18</option>
-    <option>Item No 19</option>
-    <option disabled="true">Item No 20</option>
-    <option>Item No 21</option>
-    <option>Item No 22</option>
-    <option>Item No 23</option>
-    <option>Item No 24</option>
-    <option>Item No 23</option>
-    <option>Item No 24</option>
-    <option>Item No 25</option>
-    <option>Item No 26</option>
-    <option>Item No 27</option>
-    <option>Item No 28</option>
-    <option>Item No 29</option>
-    <option disabled="true">Item No 30</option>
-  </select>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-
-      var c1 = new qx.ui.form.ComboBox;
-      c1.setLocation(20, 48);
-
-      c1.addEventListener("beforeInitialOpen", function(e)
-      {
-        var item;
-
-        for(var i=1; i<=30; i++)
-        {
-          item = new qx.ui.form.ListItem("Item No " + i);
-          !(i % 10) && (item.setEnabled(false));
-          c1.add(item);
-        };
-      });
-
-      // this does not work here (if there is no content)
-      c1.setSelected(c1.getList().getFirstChild());
-
-      c1.addEventListener("changeValue", function(e) {
-        this.debug("New value: " + e.getData());
-      });
-
-      c1.addEventListener("changeSelected", function(e) {
-        this.debug("New selected: " + e.getData());
-      });
-
-
-
-
-      var b1 = new qx.ui.form.CheckBox("Editable");
-
-      b1.set({ top: 50, left: 150 });
-
-      b1.addEventListener("changeChecked", function(e) {
-        c1.setEditable(e.getData());
-      });
-
-
-
-      d.add(c1, b1);
-
-
-
-
-
-
-
-
-    // Color Themes
-    qx.manager.object.ColorManager.getInstance().createThemeList(d, 20, 248);
-
-
-
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ComboBox_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ComboBox_3.html
deleted file mode 100644 (file)
index 8a8fbb0..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing qx.ui.form.ComboBox implementation.</p>
-    <p>Testing object creation (the list content will be filled then) on first open.</p>
-    <p>Added Color Theme Buttons</p>
-    <p>Now with image inside the popup.</p>
-  </div>
-
-  <select style="position:absolute; left:300px; top:48px; width: 120px;">
-    <option>Item No 1</option>
-    <option>Item No 2</option>
-    <option>Item No 3</option>
-    <option>Item No 4</option>
-    <option>Item No 5</option>
-    <option>Item No 6</option>
-    <option>Item No 7</option>
-    <option>Item No 8</option>
-    <option>Item No 9</option>
-    <option disabled="true">Item No 10</option>
-    <option>Item No 11</option>
-    <option>Item No 12</option>
-    <option>Item No 13</option>
-    <option>Item No 14</option>
-    <option>Item No 15</option>
-    <option>Item No 16</option>
-    <option>Item No 17</option>
-    <option>Item No 18</option>
-    <option>Item No 19</option>
-    <option disabled="true">Item No 20</option>
-    <option>Item No 21</option>
-    <option>Item No 22</option>
-    <option>Item No 23</option>
-    <option>Item No 24</option>
-    <option>Item No 23</option>
-    <option>Item No 24</option>
-    <option>Item No 25</option>
-    <option>Item No 26</option>
-    <option>Item No 27</option>
-    <option>Item No 28</option>
-    <option>Item No 29</option>
-    <option disabled="true">Item No 30</option>
-  </select>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-
-      var c1 = new qx.ui.form.ComboBox;
-      c1.setLocation(20, 48);
-
-      // this example seems to be buggy with auto-height
-      // c1.getPopup().setHeight(150);
-
-      c1.addEventListener("beforeInitialOpen", function(e)
-      {
-        var item;
-        var list = [ "archive", "binary", "card", "document", "html", "image", "manual", "multimedia", "pdf" ];
-
-        for(var i=0; i<list.length; i++)
-        {
-          item = new qx.ui.form.ListItem(list[i], "icon/48/mime-" + list[i] + ".png");
-          item.setShow("icon");
-
-          c1.add(item);
-        };
-    
-    c1.setSelected(c1.getList().getFirstChild());
-      });
-
-      // this does not work here (if there is no content)
-      c1.setSelected(c1.getList().getFirstChild());
-
-      c1.addEventListener("changeValue", function(e) {
-        this.debug("New value: " + e.getData());
-      });
-
-      c1.addEventListener("changeSelected", function(e) {
-        this.debug("New selected: " + e.getData());
-      });
-
-
-
-
-      var b1 = new qx.ui.form.CheckBox("Editable");
-
-      b1.set({ top: 50, left: 150 });
-
-      b1.addEventListener("changeChecked", function(e) {
-        c1.setEditable(e.getData());
-      });
-
-
-
-      d.add(c1, b1);
-
-
-
-
-
-
-
-    // Color Themes
-    qx.manager.object.ColorManager.getInstance().createThemeList(d, 20, 248);
-
-
-
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ComboBox_4.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ComboBox_4.html
deleted file mode 100644 (file)
index 3cc1123..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing qx.ui.form.ComboBox behaviour when inside a container with scroll bars and the popup list goes off the screen.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function() {
-    var box = new qx.ui.layout.BoxLayout('vertical');
-    box.set({left: 5, right: 300, top: 30,  bottom: 20, overflow: 'scroll', backgroundColor: '#FFE'});
-    for (var row = 0; row < 8; row++) {
-      var rowBox = new qx.ui.layout.BoxLayout;
-      rowBox.set({ marginBottom: 100, width: 'auto', height: 'auto' });
-      for (var col = 0; col < 8; col++) {
-        var cb = new qx.ui.form.ComboBox;
-        for (var i = 0; i < 15; i++) {
-          cb.add(new qx.ui.form.ListItem('Item '+i));
-        }
-        cb.setEditable(true);
-        cb.setValue('Row '+row+', col '+col);
-        cb.setMarginRight(100);
-        rowBox.add(cb);
-      }
-      box.add(rowBox);
-    }
-    box.addToDocument();
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CookieStorage_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CookieStorage_1.html
deleted file mode 100644 (file)
index e13ba10..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Tests for qx.io.local.CookieApi.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var f1 = new qx.ui.form.TextField;
-    f1.setLocation(20, 48);
-    qx.ui.core.ClientDocument.getInstance().add(f1);
-
-    var b1 = new qx.ui.form.Button("Restore");
-    b1.setLocation(20, 80);
-    qx.ui.core.ClientDocument.getInstance().add(b1);
-
-    var b2 = new qx.ui.form.Button("Save");
-    b2.setLocation(80, 80);
-    qx.ui.core.ClientDocument.getInstance().add(b2);
-
-
-
-    b1.addEventListener("execute", function(e) {
-      f1.setValue(qx.io.local.CookieTransport.get("fieldContent"));
-    });
-
-    b2.addEventListener("execute", function(e) {
-      qx.io.local.CookieTransport.set("fieldContent", f1.getValue());
-    });
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CookieStorage_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CookieStorage_2.html
deleted file mode 100644 (file)
index d98b6ff..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Tests for qx.io.local.CookieTransport API.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var vAll = [];
-    var vNum = 20;
-
-    for (var i=0; i<vNum; i++)
-    {
-      var f1 = new qx.ui.form.TextField;
-      f1.setLocation(20, 48+(i*22));
-      qx.ui.core.ClientDocument.getInstance().add(f1);
-      vAll.push(f1);
-    };
-
-    var b1 = new qx.ui.form.Button("Restore");
-    b1.setLocation(220, 48);
-    qx.ui.core.ClientDocument.getInstance().add(b1);
-
-    var b2 = new qx.ui.form.Button("Save");
-    b2.setLocation(280, 48);
-    qx.ui.core.ClientDocument.getInstance().add(b2);
-
-    var b3 = new qx.ui.form.Button("Clear");
-    b3.setLocation(340, 48);
-    qx.ui.core.ClientDocument.getInstance().add(b3);
-
-
-
-    b1.addEventListener("execute", function(e)
-    {
-      for (var i=0; i<vAll.length; i++) {
-        var vIn = qx.io.local.CookieTransport.get("fieldContent" + i);
-        vAll[i].setValue(vIn);
-      };
-    });
-
-    b2.addEventListener("execute", function(e)
-    {
-      for (var i=0; i<vAll.length; i++) {
-        qx.io.local.CookieTransport.set("fieldContent" + i, vAll[i].getValue());
-      };
-    });
-
-    b3.addEventListener("execute", function(e) {
-      qx.io.local.CookieTransport.delAll();
-    });
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Cookie_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Cookie_1.html
deleted file mode 100644 (file)
index 2f6214d..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Tests for qx.io.local.CookieApi.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var f1 = new qx.ui.form.TextField;
-    f1.setLocation(20, 48);
-    qx.ui.core.ClientDocument.getInstance().add(f1);
-
-    var b1 = new qx.ui.form.Button("Restore");
-    b1.setLocation(20, 80);
-    qx.ui.core.ClientDocument.getInstance().add(b1);
-
-    var b2 = new qx.ui.form.Button("Save");
-    b2.setLocation(80, 80);
-    qx.ui.core.ClientDocument.getInstance().add(b2);
-
-
-
-    b1.addEventListener("execute", function(e) {
-      f1.setValue(qx.io.local.CookieApi.get("fieldContent"));
-    });
-
-    b2.addEventListener("execute", function(e) {
-      qx.io.local.CookieApi.set("fieldContent", f1.getValue());
-    });
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CrossBrowser_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CrossBrowser_1.html
deleted file mode 100644 (file)
index 1bfb3ab..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <fieldset style="padding:3px; background-color:#fff; text-align:right"><legend style="color:red">Outer</legend>
-    <span style="color:blue; font-style:italic">Margin</span>
-    <fieldset style="margin:3px 10px; padding:3px 10px; background-color:#bbb"><legend style="color:red">Box</legend>
-    <span style="color:blue; font-style:italic">Inset (Border + Scrollbar)</span>
-    <fieldset style="margin:3px 10px; padding:3px 10px; background-color:#999"><legend style="color:red">Area</legend>
-    <span style="color:blue; font-style:italic">Padding</span>
-    <fieldset style="margin:3px 10px; padding:3px 10px; background-color:#666"><legend style="color:red">Inner</legend>
-    </fieldset>
-    </fieldset>
-    </fieldset>
-    </fieldset>
-  </div>
-
-  <div style="margin-left:200px;margin-right:400px; margin-top: 30px;">
-Mit seiner Aufnahme in die Elite war Knechts Leben auf eine andre Ebene verpflanzt, es war der erste und entscheidende Schritt in seiner Entwicklung geschehen. Es geht durchaus nicht allen Elitesch�lern so, da� die amtliche Aufnahme in die Elite mit dem innern Erlebnis der Berufung zusammenf�llt. Das ist Gnade, oder wenn man es banal ausdr�cken will: es ist ein Gl�cksfall. Wem er begegnet, dessen Leben hat ein Plus, so wie der ein Plus besitzt, dem ein Gl�cksfall besonders gl�ckliche Gaben an Leib und See le mitgegeben hat. Die meisten Elitesch�ler, ja beinahe alle, empfinden zwar ihre Wahl als ein gro�es Gl�ck, als eine Auszeichnung, auf die sie stolz sind, und sehr viele von ihnen haben sich auch diese Auszeichnung vorher gl�hend erw�nscht. Aber der �bergang von der gew�hnlichen heimatlichen Schule in die Schulen von Kastalien f�llt den meisten Auserw�hlten dann doch schwerer, als sie gedacht h�tten, und bringt manchen unerwartete Entt�uschungen. Vor allem ist der �bergang f�r alle jene Sch�ler, die in i hrem Elternhaus gl�cklich und geliebt waren, ein sehr schwerer Abschied und Verzicht, und so kommt denn auch, namentlich w�hrend der beiden ersten Elitejahre, eine nicht unbetr�chtliche Zahl von R�ckversetzungen vor, deren Grund nicht ein Mangel an Begabung und Flei�, sondern Unf�higkeit der Sch�ler ist, sich mit dem Internatsleben und vor allem mit dem Gedanken zu vers�hnen, k�nftig die Verbindung mit Familie und Heimat immer mehr zu l�sen und schlie�lich keine andre Zugeh�rigkeit mehr zu kennen und zu r espektieren als die zum Orden. Dann gibt es je und je auch Sch�ler, welchen umgekehrt gerade das Loskommen vom Vaterhaus und von einer ihnen entleideten Schule die Hauptsache bei ihrer Aufnahme in die Elite war; diese, etwa von einem strengen Vater oder einem ihnen unangenehmen Lehrer befreit, atmeten zwar eine Weile auf, hatten sich aber von dem Wechsel so gro�e und unm�gliche Ver�nderungen ihres ganzen Lebens versprochen, da� bald eine Entt�uschung kam. Auch die eigentlichen Streber und Mustersch�ler, d i! e Pedantischen, konnten sich in Kastalien nicht immer halten; nicht da� sie den Studien nicht w�ren gewachsen gewesen, aber es kam in der Elite eben nicht allein auf die Studien und Fachzeugnisse an, sondern es wurden auch erzieherische und musische Ziele angestrebt, vor welchen dieser und jener die Waffen streckte. Immerhin war in dem System der vier gro�en Eliteschulen mit ihren zahlreichen Unterabteilungen und Zweiganstalten Raum f�r vielerlei Begabungen, und ein strebsamer Mathematiker oder Philologe, wenn er wirklich das Zeug zu einem Gelehrten in sich hatte, brauchte etwa einen Mangel an musikalischer oder philosophischer Begabung nicht als Gefahr zu empfinden. Es gab zuzeiten sogar in Kastalien sehr starke Tendenzen zur Pflege der reinen, n�chternen Fachwissenschaften, und die Vork�mpfer dieser Tendenzen waren nicht nur gegen die �Phantasten�, das hei�t gegen die Musikalischen und Musischen, kritisch und spottlustig gestimmt, sondern haben zuzeiten innerhalb ihrer Kreise alles Musische, und namentl ich das Glasperlenspiel, geradezu abgeschworen und verp�nt.Da Knechts Leben, soweit es uns bekannt ist, sich ganz in Kastalien abspielte, in jenem stillsten und heitersten Bezirk unseres gebirgigen Landes, den man fr�her mit einem Ausdruck des Dichters Goethe oft auch �die p�dagogische Provinz� genannt hat, wollen wir in aller K�rze und auf die Gefahr hin, den Leser mit L�ngstgewu�tem zu langweilen, nochmals dies ber�hmte Kastalien.
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-
-      var w1 = new qx.ui.basic.Terminator;
-
-      with(w1)
-      {
-        setHeight(100);
-        setWidth(100);
-        setTop(48);
-        setLeft(20);
-        setBackgroundColor("orange");
-        setStyleProperty("padding", "5px");
-        setStyleProperty("margin", "10px");
-        setBorder(new qx.renderer.border.Border(2, "solid", "blue"));
-        setOverflow("scroll");
-      };
-
-      d.add(w1);
-
-      w1.addEventListener("initialShow", function(e)
-      {
-        QxDebug("Properties", "getComputedMarginLeft: " + w1.getComputedMarginLeft());
-        QxDebug("Properties", "getComputedMarginTop: " + w1.getComputedMarginTop());
-        QxDebug("Properties", "getComputedMarginRight: " + w1.getComputedMarginRight());
-        QxDebug("Properties", "getComputedMarginBottom: " + w1.getComputedMarginBottom());
-
-        QxDebug("Properties", "getComputedPaddingLeft: " + w1.getComputedPaddingLeft());
-        QxDebug("Properties", "getComputedPaddingTop: " + w1.getComputedPaddingTop());
-        QxDebug("Properties", "getComputedPaddingRight: " + w1.getComputedPaddingRight());
-        QxDebug("Properties", "getComputedPaddingBottom: " + w1.getComputedPaddingBottom());
-
-        QxDebug("Properties", "getComputedBorderLeft: " + w1.getComputedBorderLeft());
-        QxDebug("Properties", "getComputedBorderTop: " + w1.getComputedBorderTop());
-        QxDebug("Properties", "getComputedBorderRight: " + w1.getComputedBorderRight());
-        QxDebug("Properties", "getComputedBorderBottom: " + w1.getComputedBorderBottom());
-
-        QxDebug("Dimensions", "getComputedOuterWidth: " + w1.getComputedOuterWidth());
-        QxDebug("Dimensions", "getComputedOuterHeight: " + w1.getComputedOuterHeight());
-
-        QxDebug("Dimensions", "getComputedBoxWidth: " + w1.getComputedBoxWidth());
-        QxDebug("Dimensions", "getComputedBoxHeight: " + w1.getComputedBoxHeight());
-
-        QxDebug("Dimensions", "getComputedAreaWidth: " + w1.getComputedAreaWidth());
-        QxDebug("Dimensions", "getComputedAreaHeight: " + w1.getComputedAreaHeight());
-
-        QxDebug("Dimensions", "getComputedInnerWidth: " + w1.getComputedInnerWidth());
-        QxDebug("Dimensions", "getComputedInnerHeight: " + w1.getComputedInnerHeight());
-
-        QxDebug("Insets", "getComputedInsetLeft: " + w1.getComputedInsetLeft());
-        QxDebug("Insets", "getComputedInsetTop: " + w1.getComputedInsetTop());
-        QxDebug("Insets", "getComputedInsetRight: " + w1.getComputedInsetRight());
-        QxDebug("Insets", "getComputedInsetBottom: " + w1.getComputedInsetBottom());
-
-        QxDebug("Scroll", "getComputedScrollBarSizeLeft: " + w1.getComputedScrollBarSizeLeft());
-        QxDebug("Scroll", "getComputedScrollBarSizeTop: " + w1.getComputedScrollBarSizeTop());
-        QxDebug("Scroll", "getComputedScrollBarSizeRight: " + w1.getComputedScrollBarSizeRight());
-        QxDebug("Scroll", "getComputedScrollBarSizeBottom: " + w1.getComputedScrollBarSizeBottom());
-
-        QxDebug("Scroll", "getComputedScrollBarVisibleX: " + w1.getComputedScrollBarVisibleX());
-        QxDebug("Scroll", "getComputedScrollBarVisibleY: " + w1.getComputedScrollBarVisibleY());
-
-
-
-        QxDebug("Positions->Client", "getComputedClientOuterLeft: " + w1.getComputedClientOuterLeft());
-        QxDebug("Positions->Client", "getComputedClientOuterTop: " + w1.getComputedClientOuterTop());
-        QxDebug("Positions->Client", "getComputedClientOuterRight: " + w1.getComputedClientOuterRight());
-        QxDebug("Positions->Client", "getComputedClientOuterBottom: " + w1.getComputedClientOuterBottom());
-
-        QxDebug("Positions->Client", "getComputedClientBoxLeft: " + w1.getComputedClientBoxLeft());
-        QxDebug("Positions->Client", "getComputedClientBoxTop: " + w1.getComputedClientBoxTop());
-        QxDebug("Positions->Client", "getComputedClientBoxRight: " + w1.getComputedClientBoxRight());
-        QxDebug("Positions->Client", "getComputedClientBoxBottom: " + w1.getComputedClientBoxBottom());
-
-        QxDebug("Positions->Client", "getComputedClientAreaLeft: " + w1.getComputedClientAreaLeft());
-        QxDebug("Positions->Client", "getComputedClientAreaTop: " + w1.getComputedClientAreaTop());
-        QxDebug("Positions->Client", "getComputedClientAreaRight: " + w1.getComputedClientAreaRight());
-        QxDebug("Positions->Client", "getComputedClientAreaBottom: " + w1.getComputedClientAreaBottom());
-
-        QxDebug("Positions->Client", "getComputedClientInnerLeft: " + w1.getComputedClientInnerLeft());
-        QxDebug("Positions->Client", "getComputedClientInnerTop: " + w1.getComputedClientInnerTop());
-        QxDebug("Positions->Client", "getComputedClientInnerRight: " + w1.getComputedClientInnerRight());
-        QxDebug("Positions->Client", "getComputedClientInnerBottom: " + w1.getComputedClientInnerBottom());
-
-
-
-        QxDebug("Positions->Page", "getComputedPageOuterLeft: " + w1.getComputedPageOuterLeft());
-        QxDebug("Positions->Page", "getComputedPageOuterTop: " + w1.getComputedPageOuterTop());
-        QxDebug("Positions->Page", "getComputedPageOuterRight: " + w1.getComputedPageOuterRight());
-        QxDebug("Positions->Page", "getComputedPageOuterBottom: " + w1.getComputedPageOuterBottom());
-
-        QxDebug("Positions->Page", "getComputedPageBoxLeft: " + w1.getComputedPageBoxLeft());
-        QxDebug("Positions->Page", "getComputedPageBoxTop: " + w1.getComputedPageBoxTop());
-        QxDebug("Positions->Page", "getComputedPageBoxRight: " + w1.getComputedPageBoxRight());
-        QxDebug("Positions->Page", "getComputedPageBoxBottom: " + w1.getComputedPageBoxBottom());
-
-        QxDebug("Positions->Page", "getComputedPageAreaLeft: " + w1.getComputedPageAreaLeft());
-        QxDebug("Positions->Page", "getComputedPageAreaTop: " + w1.getComputedPageAreaTop());
-        QxDebug("Positions->Page", "getComputedPageAreaRight: " + w1.getComputedPageAreaRight());
-        QxDebug("Positions->Page", "getComputedPageAreaBottom: " + w1.getComputedPageAreaBottom());
-
-        QxDebug("Positions->Page", "getComputedPageInnerLeft: " + w1.getComputedPageInnerLeft());
-        QxDebug("Positions->Page", "getComputedPageInnerTop: " + w1.getComputedPageInnerTop());
-        QxDebug("Positions->Page", "getComputedPageInnerRight: " + w1.getComputedPageInnerRight());
-        QxDebug("Positions->Page", "getComputedPageInnerBottom: " + w1.getComputedPageInnerBottom());
-
-
-
-
-        QxDebug("Screen", "getComputedScreenOuterLeft: " + w1.getComputedScreenOuterLeft());
-        QxDebug("Screen", "getComputedScreenOuterTop: " + w1.getComputedScreenOuterTop());
-        QxDebug("Screen", "getComputedScreenOuterRight: " + w1.getComputedScreenOuterRight());
-        QxDebug("Screen", "getComputedScreenOuterBottom: " + w1.getComputedScreenOuterBottom());
-
-        QxDebug("Screen", "getComputedScreenBoxLeft: " + w1.getComputedScreenBoxLeft());
-        QxDebug("Screen", "getComputedScreenBoxTop: " + w1.getComputedScreenBoxTop());
-        QxDebug("Screen", "getComputedScreenBoxRight: " + w1.getComputedScreenBoxRight());
-        QxDebug("Screen", "getComputedScreenBoxBottom: " + w1.getComputedScreenBoxBottom());
-
-        QxDebug("Screen", "getComputedScreenAreaLeft: " + w1.getComputedScreenAreaLeft());
-        QxDebug("Screen", "getComputedScreenAreaTop: " + w1.getComputedScreenAreaTop());
-        QxDebug("Screen", "getComputedScreenAreaRight: " + w1.getComputedScreenAreaRight());
-        QxDebug("Screen", "getComputedScreenAreaBottom: " + w1.getComputedScreenAreaBottom());
-
-        QxDebug("Screen", "getComputedScreenInnerLeft: " + w1.getComputedScreenInnerLeft());
-        QxDebug("Screen", "getComputedScreenInnerTop: " + w1.getComputedScreenInnerTop());
-        QxDebug("Screen", "getComputedScreenInnerRight: " + w1.getComputedScreenInnerRight());
-        QxDebug("Screen", "getComputedScreenInnerBottom: " + w1.getComputedScreenInnerBottom());
-      });
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CrossBrowser_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/CrossBrowser_2.html
deleted file mode 100644 (file)
index 700c80a..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Tests for crossbrowser offsetTop and offsetLeft properties provided by qx.dom</p>
-  </div>
-  
-  <style type="text/css">
-
-#i{
-  border: 1px solid red;
-}
-
-#l{
-  position: absolute;
-  
-  top: 100px;
-  left: 100px;
-  
-  width: 300px;
-  height: 300px;
-  
-  overflow: auto;
-  border: 6px solid red;
-  padding: 10px;
-}
-
-#p1{
-  position: static;
-  
-  width: 100px;
-  height: 100px;
-  
-  overflow: auto;  
-  
-  border: 5px solid orange;
-  padding: 5px;
-}
-
-#p2{
-  position: absolute;
-  
-  top: 150px;
-  left: 150px;
-
-  width: 100px;
-  height: 100px;
-  
-  overflow: auto;  
-  
-  border: 5px solid orange;
-  padding: 3px;
-}
-
-#p1 div,
-#p2 div{
-  border: 2px solid blue;
-  padding: 4px;
-}
-  </style>
-  
-  <br/><br/><br/><br/><br/>
-  <p id="i">Inline</p>
-  
-  <div id="l">
-    <div id="p1">
-      <div id="p1a">P1-A</div>
-      <div id="p1b">P1-B</div>
-      <div id="p1c">P1-C</div>
-      <div id="p1d">P1-D</div>
-      <div id="p1e">P1-E</div>
-      <div id="p1f">P1-F</div>
-      <div id="p1g">P1-G</div>
-      <div id="p1h">P1-H</div>
-      <div id="p1j">P1-I</div>
-    </div>
-    <div id="p2">
-      <div id="p2a">P2-A</div>
-      <div id="p2b">P2-B</div>
-      <div id="p2c">P2-C</div>
-      <div id="p2d">P2-D</div>
-      <div id="p2e">P2-E</div>
-      <div id="p2f">P2-F</div>
-      <div id="p2g">P2-G</div>
-      <div id="p2h">P2-H</div>
-      <div id="p2j">P2-I</div>
-    </div>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-      
-      var i = document.getElementById("i");
-      var l = document.getElementById("l");
-      var p1 = document.getElementById("p1");
-      var p2 = document.getElementById("p2");      
-      var p1a = document.getElementById("p1a");
-      var p2a = document.getElementById("p2a");
-        
-      qx.core.Init.getInstance().debug("Browser-Impl", "I: " + i.offsetLeft + "x" + i.offsetTop);    
-      qx.core.Init.getInstance().debug("Browser-Impl", "L: " + l.offsetLeft + "x" + l.offsetTop);    
-      qx.core.Init.getInstance().debug("Browser-Impl", "P1: " + p1.offsetLeft + "x" + p1.offsetTop);    
-      qx.core.Init.getInstance().debug("Browser-Impl", "P2: " + p2.offsetLeft + "x" + p2.offsetTop);    
-      qx.core.Init.getInstance().debug("Browser-Impl", "P1A: " + p1a.offsetLeft + "x" + p1a.offsetTop);
-      qx.core.Init.getInstance().debug("Browser-Impl", "P2A: " + p2a.offsetLeft + "x" + p2a.offsetTop);
-      
-      qx.core.Init.getInstance().debug("QxDom-Impl", "I: " + qx.html.Offset.getLeft(i) + "x" + qx.html.Offset.getTop(i));    
-      qx.core.Init.getInstance().debug("QxDom-Impl", "L: " + qx.html.Offset.getLeft(l) + "x" + qx.html.Offset.getTop(l));    
-      qx.core.Init.getInstance().debug("QxDom-Impl", "P1: " + qx.html.Offset.getLeft(p1) + "x" + qx.html.Offset.getTop(p1));    
-      qx.core.Init.getInstance().debug("QxDom-Impl", "P2: " + qx.html.Offset.getLeft(p2) + "x" + qx.html.Offset.getTop(p2));    
-      qx.core.Init.getInstance().debug("QxDom-Impl", "P1A: " + qx.html.Offset.getLeft(p1a) + "x" + qx.html.Offset.getTop(p1a));
-      qx.core.Init.getInstance().debug("QxDom-Impl", "P2A: " + qx.html.Offset.getLeft(p2a) + "x" + qx.html.Offset.getTop(p2a));
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DateChooserButton_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DateChooserButton_1.html
deleted file mode 100644 (file)
index a9e17cf..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test the date chooser button component.</p>
-    <p>This widget can be associated to another widget (in this case a textfield) which then
-    is synchronized with the selected date from the date chooser</p>
-  </div>
-
-  <script type="text/javascript">
-
-  qx.locale.Manager.getInstance().setLocale("C");
-
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    function changeValue(e) {
-      this.debug("Text changed: " + e.getData());
-    }
-
-               var l1 = new qx.ui.basic.Label("A date field: "); l1.set({top:51, left:20});
-               d.add(l1);
-               
-    var tf1 = new qx.ui.form.TextField; tf1.set({top:48,left:80,width:70});
-    tf1.addEventListener("changeValue", changeValue);
-    d.add(tf1);
-
-
-    var dcb1 = new qx.ui.component.DateChooserButton(); 
-    dcb1.set({top:47,left:152});
-    // associate the date chooser button to the textfield tf1:
-    dcb1.setTargetWidget(tf1);
-    // change the button text
-    dcb1.setLabel("Please choose a date");
-    // change the chooser window title
-    dcb1.setChooserTitle("Date choosing made simple");
-    
-    d.add(dcb1);
-    
-    var l2 = new qx.ui.basic.Label("Date field 2: "); l2.set({top:91, left:20});
-               d.add(l2);
-               
-    var tf2 = new qx.ui.form.TextField; tf2.set({top:88,left:80,width:70});
-    tf2.addEventListener("changeValue", changeValue);
-    d.add(tf2);
-
-    var dcb2 = new qx.ui.component.DateChooserButton(tf2); 
-    dcb2.set({top:87,left:152});
-               d.add(dcb2);    
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DateChooserButton_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DateChooserButton_2.html
deleted file mode 100644 (file)
index 024c955..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test the date chooser button component.</p>
-    <p>This widget can be associated to another widget (in this case a textfield) which then
-    is synchronized with the selected date from the date chooser</p>
-    <p>The second demo is localized for german dates</p>
-  </div>
-
-  <script type="text/javascript">
-
-       qx.locale.Manager.getInstance().setLocale("de_DE");
-       
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    function changeValue(e) {
-      this.debug("Text changed: " + e.getData());
-    }
-
-               var l1 = new qx.ui.basic.Label("Ein Datum: "); l1.set({top:51, left:20});
-               d.add(l1);
-               
-    var tf1 = new qx.ui.form.TextField; tf1.set({top:48,left:80,width:70});
-    tf1.addEventListener("changeValue", changeValue);
-    d.add(tf1);
-
-
-    var dcb1 = new qx.ui.component.DateChooserButton(); 
-    dcb1.set({top:47,left:152});
-    // associate the date chooser button to the textfield tf1:
-    dcb1.setTargetWidget(tf1);
-    // change the button text
-    dcb1.setLabel("Bitte ein Datum auswählen");
-    // change the chooser window title
-    dcb1.setChooserTitle("Einfache Datumsauswahl");
-    
-    d.add(dcb1);
-    
-    var l2 = new qx.ui.basic.Label("Datum 2: "); l2.set({top:91, left:20});
-               d.add(l2);
-               
-    var tf2 = new qx.ui.form.TextField; tf2.set({top:88,left:80,width:70});
-    tf2.addEventListener("changeValue", changeValue);
-    d.add(tf2);
-
-    var dcb2 = new qx.ui.component.DateChooserButton(tf2); 
-    dcb2.set({top:87,left:152,chooserTitle:"Bitte ein Datum wählen"});
-               d.add(dcb2);    
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DockLayout_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DockLayout_1.html
deleted file mode 100644 (file)
index ff1ed23..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    Simple Test for qx.ui.layout.DockLayout.
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var dl1 = new qx.ui.layout.DockLayout;
-    
-    dl1.setTop(48);
-    dl1.setLeft(20);
-    dl1.setRight(335);
-    dl1.setBottom(48);
-    
-    dl1.setBorder(2, "outset");
-    dl1.setBackgroundColor("white");
-    
-    d.add(dl1);
-    
-    
-    
-    var t1 = new qx.ui.basic.Terminator;
-    t1.setHeight(50);
-    t1.setBackgroundColor("red");
-    dl1.addTop(t1);
-
-    var t2 = new qx.ui.basic.Terminator;
-    t2.setWidth(150);
-    t2.setBackgroundColor("yellow");
-    dl1.addLeft(t2);
-    
-    var t3 = new qx.ui.basic.Terminator;
-    t3.setBackgroundColor("blue");
-    dl1.add(t3);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DockLayout_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DockLayout_2.html
deleted file mode 100644 (file)
index d25bcf7..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    The next generation of table-less layouts ;)
-  </div>
-
-  <script type="text/javascript">
-  function selfRemove() {
-    this.getParent().remove(this);
-  };  
-  
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var dl1 = new qx.ui.layout.DockLayout;
-    
-    dl1.setTop(48);
-    dl1.setLeft(20);
-    dl1.setRight(335);
-    dl1.setBottom(120);
-    dl1.setMinWidth(400);
-    dl1.setMinHeight(300);
-    
-    dl1.setBorder(2, "outset");
-    dl1.setBackgroundColor("white");
-    
-    d.add(dl1);
-    
-    
-    
-    var t1 = new qx.ui.basic.Terminator;
-    t1.setHeight(50);
-    t1.setBackgroundColor("red");
-    t1.setVerticalAlign("top");
-    t1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t1.addEventListener("click", selfRemove);
-
-    var t2 = new qx.ui.basic.Terminator;
-    // t2.setWidth(150);
-    t2.setWidth("20%");
-    t2.setBackgroundColor("gray");
-    t2.setHorizontalAlign("left");
-    t2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t2.addEventListener("click", selfRemove);
-
-    var t3 = new qx.ui.basic.Terminator;
-    t3.setHeight(100);
-    t3.setBackgroundColor("yellow");
-    t3.setVerticalAlign("top");
-    t3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t3.addEventListener("click", selfRemove);
-
-    var t4 = new qx.ui.basic.Terminator;
-    t4.setWidth(40);
-    t4.setBackgroundColor("orange");
-    t4.setHorizontalAlign("right");
-    t4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t4.addEventListener("click", selfRemove);
-
-    var t5 = new qx.ui.basic.Terminator;
-    t5.setHeight(80);
-    t5.setBackgroundColor("blue");
-    t5.setVerticalAlign("bottom");
-    t5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t5.addEventListener("click", selfRemove);
-   
-    var t6 = new qx.ui.basic.Terminator;
-    t6.setBackgroundColor("green");
-    t6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t6.addEventListener("click", selfRemove);
-
-    dl1.add(t1, t2, t3, t4, t5, t6);
-    
-    
-    
-    
-    
-   
-    
-    
-    
-    var l1 = new qx.ui.basic.Label("Mode:");
-    l1.setWidth(50);
-    
-    var btn1_1 = new qx.ui.form.Button("Vertical", "icon/16/actions/dialog-ok.png");
-    var btn1_2 = new qx.ui.form.Button("Horizontal", "icon/16/actions/dialog-ok.png");
-    var btn1_3 = new qx.ui.form.Button("Ordered", "icon/16/actions/dialog-ok.png");
-    
-    btn1_1.addEventListener("click", function(e) {
-      dl1.setMode("vertical");
-    });
-
-    btn1_2.addEventListener("click", function(e) {
-      dl1.setMode("horizontal");
-    });
-
-    btn1_3.addEventListener("click", function(e) {
-      dl1.setMode("ordered");
-    });
-    
-    var h1 = new qx.ui.layout.HorizontalBoxLayout;
-    h1.setVerticalChildrenAlign("middle");
-    h1.add(l1, btn1_1, btn1_2, btn1_3);
-    h1.setBottom(78);
-    h1.setLeft(20);
-    d.add(h1);
-    
-    
-    
-    
-    
-    
-    
-    
-    
-    var l2 = new qx.ui.basic.Label("Children:");
-    l2.setWidth(50);
-    
-    var btn2_1 = new qx.ui.form.Button("Remove First", "icon/16/actions/dialog-ok.png");
-    var btn2_2 = new qx.ui.form.Button("Remove Last", "icon/16/actions/dialog-ok.png");
-    var btn2_3 = new qx.ui.form.Button("Add Top", "icon/16/actions/dialog-ok.png");
-    var btn2_4 = new qx.ui.form.Button("Add Right", "icon/16/actions/dialog-ok.png");
-    var btn2_5 = new qx.ui.form.Button("Add Bottom", "icon/16/actions/dialog-ok.png");
-    var btn2_6 = new qx.ui.form.Button("Add Left", "icon/16/actions/dialog-ok.png");
-    var btn2_7 = new qx.ui.form.Button("Add Auto", "icon/16/actions/dialog-ok.png");
-
-    btn2_1.addEventListener("execute", function(e) 
-    {
-      var c = dl1.getFirstChild();
-      if (c) {
-        dl1.remove(c);
-      };      
-    });
-
-    btn2_2.addEventListener("execute", function(e) 
-    {
-      var c = dl1.getLastChild();
-      if (c) {
-        dl1.remove(c);
-      };      
-    });
-    
-    btn2_3.addEventListener("execute", function(e) 
-    {
-      var t = new qx.ui.basic.Terminator();
-      
-      t.setBackgroundColor(qx.renderer.color.Color.fromRandom());
-      t.setHeight(2+Math.round(Math.random()*50));
-      t.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      t.addEventListener("click", selfRemove);
-      
-      dl1.addTop(t);
-    });
-    
-    btn2_4.addEventListener("execute", function(e) 
-    {
-      var t = new qx.ui.basic.Terminator();
-      
-      t.setBackgroundColor(qx.renderer.color.Color.fromRandom());
-      t.setWidth(2+Math.round(Math.random()*50));
-      t.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      t.addEventListener("click", selfRemove);
-      
-      dl1.addRight(t);
-    });
-    
-    btn2_5.addEventListener("execute", function(e) 
-    {
-      var t = new qx.ui.basic.Terminator();
-      
-      t.setBackgroundColor(qx.renderer.color.Color.fromRandom());
-      t.setHeight(2+Math.round(Math.random()*50));
-      t.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      t.addEventListener("click", selfRemove);
-      
-      dl1.addBottom(t);
-    });
-    
-    btn2_6.addEventListener("execute", function(e) 
-    {
-      var t = new qx.ui.basic.Terminator();
-      
-      t.setBackgroundColor(qx.renderer.color.Color.fromRandom());
-      t.setWidth(2+Math.round(Math.random()*50));
-      t.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      t.addEventListener("click", selfRemove);
-      
-      dl1.addLeft(t);
-    });
-    
-    btn2_7.addEventListener("execute", function(e) 
-    {
-      var t = new qx.ui.basic.Terminator();
-      
-      t.setBackgroundColor(qx.renderer.color.Color.fromRandom());
-      t.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      t.addEventListener("click", selfRemove);
-      
-      dl1.add(t);
-    });    
-
-    
-    var h2 = new qx.ui.layout.HorizontalBoxLayout;
-    h2.setVerticalChildrenAlign("middle");
-    h2.add(l2, btn2_1, btn2_2, btn2_3, btn2_4, btn2_5, btn2_6, btn2_7);
-    h2.setBottom(48);
-    h2.setLeft(20);
-    d.add(h2);    
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DockLayout_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DockLayout_3.html
deleted file mode 100644 (file)
index c0e5dd5..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    Testing Layouts inside the qx.ui.layout.DockLayout. In this example centering through qx.ui.layout.HorizontalBoxLayout.
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var dl1 = new qx.ui.layout.DockLayout;
-    
-    dl1.setTop(48);
-    dl1.setLeft(20);
-    dl1.setRight(335);
-    dl1.setBottom(48);
-    
-    dl1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    dl1.setBackgroundColor("white");
-    
-    d.add(dl1);
-    
-    
-    
-    var t1 = new qx.ui.layout.HorizontalBoxLayout;
-    t1.setHeight(50);
-    t1.setBackgroundColor("red");
-    t1.setWidth(null);
-    t1.setVerticalChildrenAlign("middle");
-    t1.setHorizontalChildrenAlign("center");
-    t1.add(new qx.ui.basic.Image("icon/16/apps/accessories-clock.png"));
-    dl1.addTop(t1);
-
-    var t2 = new qx.ui.layout.HorizontalBoxLayout;
-    t2.setWidth(150);
-    t2.setBackgroundColor("yellow");
-    t2.setHeight(null);
-    t2.setVerticalChildrenAlign("middle");
-    t2.setHorizontalChildrenAlign("center");
-    t2.add(new qx.ui.basic.Image("icon/16/apps/accessories-clock.png"));
-    dl1.addLeft(t2);
-    
-    var t3 = new qx.ui.layout.HorizontalBoxLayout;
-    t3.setHeight(50);
-    t3.setBackgroundColor("blue");
-    t3.setWidth(null);
-    t3.setVerticalChildrenAlign("middle");
-    t3.setHorizontalChildrenAlign("center");
-    t3.add(new qx.ui.basic.Image("icon/16/apps/accessories-clock.png"));
-    dl1.addBottom(t3);
-
-    var t4 = new qx.ui.layout.HorizontalBoxLayout;
-    t4.setWidth(150);
-    t4.setBackgroundColor("green");
-    t4.setHeight(null);
-    t4.setVerticalChildrenAlign("middle");
-    t4.setHorizontalChildrenAlign("center");
-    t4.add(new qx.ui.basic.Image("icon/16/apps/accessories-clock.png"));
-    dl1.addRight(t4);    
-    
-    
-    
-    
-    var dl2 = new qx.ui.layout.DockLayout;
-    dl2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    dl1.add(dl2);
-    
-    
-    
-    
-    
-
-
-    var t5 = new qx.ui.layout.HorizontalBoxLayout;
-    t5.setHeight(50);
-    t5.setBackgroundColor("fuchsia");
-    t5.setWidth(null);
-    t5.setVerticalChildrenAlign("middle");
-    t5.setHorizontalChildrenAlign("center");
-    t5.add(new qx.ui.basic.Image("icon/32/apps/accessories-clock.png"));
-    dl2.addTop(t5);
-
-    var t6 = new qx.ui.layout.HorizontalBoxLayout;
-    t6.setWidth(150);
-    t6.setBackgroundColor("orange");
-    t6.setHeight(null);
-    t6.setVerticalChildrenAlign("middle");
-    t6.setHorizontalChildrenAlign("center");
-    t6.add(new qx.ui.basic.Image("icon/32/apps/accessories-clock.png"));
-    dl2.addLeft(t6);
-    
-    var t7 = new qx.ui.layout.HorizontalBoxLayout;
-    t7.setHeight(50);
-    t7.setBackgroundColor("aqua");
-    t7.setWidth(null);
-    t7.setVerticalChildrenAlign("middle");
-    t7.setHorizontalChildrenAlign("center");
-    t7.add(new qx.ui.basic.Image("icon/32/apps/accessories-clock.png"));
-    dl2.addBottom(t7);
-
-    var t8 = new qx.ui.layout.HorizontalBoxLayout;
-    t8.setWidth(150);
-    t8.setBackgroundColor("lime");
-    t8.setHeight(null);
-    t8.setVerticalChildrenAlign("middle");
-    t8.setHorizontalChildrenAlign("center");
-    t8.add(new qx.ui.basic.Image("icon/32/apps/accessories-clock.png"));
-    dl2.addRight(t8); 
-    
-    
-    
-
-    
-    var hb1 = new qx.ui.layout.HorizontalBoxLayout;
-    
-    hb1.setBackgroundColor("silver");
-    hb1.setVerticalChildrenAlign("middle");
-    hb1.setHorizontalChildrenAlign("center");
-    hb1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    hb1.setWidth(null);
-    hb1.setHeight(null);
-    hb1.add(new qx.ui.basic.Image("icon/64/apps/accessories-clock.png"));
-    
-    dl2.add(hb1);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DockLayout_4.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DockLayout_4.html
deleted file mode 100644 (file)
index 62bc46c..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    Same as the previous one, but additional the dimensions of the qx.ui.layout.DockLayout are defined as percents here.
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var dl1 = new qx.ui.layout.DockLayout;
-    
-    dl1.setTop(48);
-    dl1.setLeft(20);
-    dl1.setRight(335);
-    dl1.setBottom(48);
-    
-    dl1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    dl1.setBackgroundColor("white");
-    
-    d.add(dl1);
-    
-    
-    
-    var t1 = new qx.ui.layout.HorizontalBoxLayout;
-    t1.setHeight("20%");
-    t1.setBackgroundColor("red");
-    t1.setWidth(null);
-    t1.setVerticalChildrenAlign("middle");
-    t1.setHorizontalChildrenAlign("center");
-    t1.add(new qx.ui.basic.Image("icon/16/apps/accessories-clock.png"));
-    dl1.addTop(t1);
-
-    var t2 = new qx.ui.layout.HorizontalBoxLayout;
-    t2.setWidth("20%");
-    t2.setBackgroundColor("yellow");
-    t2.setHeight(null);
-    t2.setVerticalChildrenAlign("middle");
-    t2.setHorizontalChildrenAlign("center");
-    t2.add(new qx.ui.basic.Image("icon/16/apps/accessories-clock.png"));
-    dl1.addLeft(t2);
-    
-    var t3 = new qx.ui.layout.HorizontalBoxLayout;
-    t3.setHeight("20%");
-    t3.setBackgroundColor("blue");
-    t3.setWidth(null);
-    t3.setVerticalChildrenAlign("middle");
-    t3.setHorizontalChildrenAlign("center");
-    t3.add(new qx.ui.basic.Image("icon/16/apps/accessories-clock.png"));
-    dl1.addBottom(t3);
-
-    var t4 = new qx.ui.layout.HorizontalBoxLayout;
-    t4.setWidth("20%");
-    t4.setBackgroundColor("green");
-    t4.setHeight(null);
-    t4.setVerticalChildrenAlign("middle");
-    t4.setHorizontalChildrenAlign("center");
-    t4.add(new qx.ui.basic.Image("icon/16/apps/accessories-clock.png"));
-    dl1.addRight(t4);    
-    
-    
-    
-    
-    var dl2 = new qx.ui.layout.DockLayout;
-    dl2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    dl1.add(dl2);
-    
-    
-    
-    
-    
-
-
-    var t5 = new qx.ui.layout.HorizontalBoxLayout;
-    t5.setHeight("20%");
-    t5.setBackgroundColor("fuchsia");
-    t5.setWidth(null);
-    t5.setVerticalChildrenAlign("middle");
-    t5.setHorizontalChildrenAlign("center");
-    t5.add(new qx.ui.basic.Image("icon/32/apps/accessories-clock.png"));
-    dl2.addTop(t5);
-
-    var t6 = new qx.ui.layout.HorizontalBoxLayout;
-    t6.setWidth("20%");
-    t6.setBackgroundColor("orange");
-    t6.setHeight(null);
-    t6.setVerticalChildrenAlign("middle");
-    t6.setHorizontalChildrenAlign("center");
-    t6.add(new qx.ui.basic.Image("icon/32/apps/accessories-clock.png"));
-    dl2.addLeft(t6);
-    
-    var t7 = new qx.ui.layout.HorizontalBoxLayout;
-    t7.setHeight("20%");
-    t7.setBackgroundColor("aqua");
-    t7.setWidth(null);
-    t7.setVerticalChildrenAlign("middle");
-    t7.setHorizontalChildrenAlign("center");
-    t7.add(new qx.ui.basic.Image("icon/32/apps/accessories-clock.png"));
-    dl2.addBottom(t7);
-
-    var t8 = new qx.ui.layout.HorizontalBoxLayout;
-    t8.setWidth("20%");
-    t8.setBackgroundColor("lime");
-    t8.setHeight(null);
-    t8.setVerticalChildrenAlign("middle");
-    t8.setHorizontalChildrenAlign("center");
-    t8.add(new qx.ui.basic.Image("icon/32/apps/accessories-clock.png"));
-    dl2.addRight(t8); 
-    
-    
-    
-
-    
-    var hb1 = new qx.ui.layout.HorizontalBoxLayout;
-    
-    hb1.setBackgroundColor("silver");
-    hb1.setVerticalChildrenAlign("middle");
-    hb1.setHorizontalChildrenAlign("center");
-    hb1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    hb1.setWidth(null);
-    hb1.setHeight(null);
-    hb1.add(new qx.ui.basic.Image("icon/64/apps/accessories-clock.png"));
-    
-    dl2.add(hb1);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DockLayout_5.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DockLayout_5.html
deleted file mode 100644 (file)
index 5375bab..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    Same as the previous one, but additional added multiple children to the box layout.
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var dl1 = new qx.ui.layout.DockLayout;
-    
-    dl1.setTop(48);
-    dl1.setLeft(20);
-    dl1.setRight(335);
-    dl1.setBottom(48);
-    
-    dl1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    dl1.setBackgroundColor("white");
-    
-    d.add(dl1);
-    
-    
-    
-    var t1 = new qx.ui.layout.HorizontalBoxLayout;
-    t1.setHeight("20%");
-    t1.setBackgroundColor("red");
-    t1.setWidth(null);
-    t1.setVerticalChildrenAlign("middle");
-    t1.setHorizontalChildrenAlign("center");
-    t1.setSpacing(4);
-    t1.add(new qx.ui.basic.Image("icon/16/apps/accessories-clock.png"));
-    t1.add(new qx.ui.basic.Label("Hello World"));
-    t1.add(new qx.ui.basic.Image("icon/48/categories/applications-graphics.png"));
-    dl1.addTop(t1);
-
-    var t2 = new qx.ui.layout.HorizontalBoxLayout;
-    t2.setWidth("20%");
-    t2.setBackgroundColor("yellow");
-    t2.setHeight(null);
-    t2.setVerticalChildrenAlign("middle");
-    t2.setHorizontalChildrenAlign("center");
-    t2.setSpacing(4);
-    t2.add(new qx.ui.basic.Image("icon/16/apps/accessories-clock.png"));
-    t2.add(new qx.ui.basic.Label("Hello World"));
-    t2.add(new qx.ui.basic.Image("icon/48/categories/applications-graphics.png"));
-    dl1.addLeft(t2);
-    
-    var t3 = new qx.ui.layout.HorizontalBoxLayout;
-    t3.setHeight("20%");
-    t3.setBackgroundColor("blue");
-    t3.setWidth(null);
-    t3.setVerticalChildrenAlign("middle");
-    t3.setHorizontalChildrenAlign("center");
-    t3.setSpacing(4);
-    t3.add(new qx.ui.basic.Image("icon/16/apps/accessories-clock.png"));
-    t3.add(new qx.ui.basic.Label("Hello World"));
-    t3.add(new qx.ui.basic.Image("icon/48/categories/applications-graphics.png"));
-    dl1.addBottom(t3);
-
-    var t4 = new qx.ui.layout.HorizontalBoxLayout;
-    t4.setWidth("20%");
-    t4.setBackgroundColor("green");
-    t4.setHeight(null);
-    t4.setVerticalChildrenAlign("middle");
-    t4.setHorizontalChildrenAlign("center");
-    t4.setSpacing(4);
-    t4.add(new qx.ui.basic.Image("icon/16/apps/accessories-clock.png"));
-    t4.add(new qx.ui.basic.Label("Hello World"));
-    t4.add(new qx.ui.basic.Image("icon/48/categories/applications-graphics.png"));
-    dl1.addRight(t4);    
-    
-    
-    
-    
-    var dl2 = new qx.ui.layout.DockLayout;
-    dl2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    dl1.add(dl2);
-    
-    
-    
-    
-    
-
-
-    var t5 = new qx.ui.layout.HorizontalBoxLayout;
-    t5.setHeight("20%");
-    t5.setBackgroundColor("fuchsia");
-    t5.setWidth(null);
-    t5.setVerticalChildrenAlign("middle");
-    t5.setHorizontalChildrenAlign("center");
-    t5.setSpacing(4);
-    t5.add(new qx.ui.basic.Image("icon/16/apps/accessories-clock.png"));
-    t5.add(new qx.ui.basic.Label("Hello World"));
-    t5.add(new qx.ui.basic.Image("icon/48/categories/applications-graphics.png"));
-    dl2.addTop(t5);
-
-    var t6 = new qx.ui.layout.HorizontalBoxLayout;
-    t6.setWidth("20%");
-    t6.setBackgroundColor("orange");
-    t6.setHeight(null);
-    t6.setVerticalChildrenAlign("middle");
-    t6.setHorizontalChildrenAlign("center");
-    t6.setSpacing(4);
-    t6.add(new qx.ui.basic.Image("icon/16/apps/accessories-clock.png"));
-    t6.add(new qx.ui.basic.Label("Hello World"));
-    t6.add(new qx.ui.basic.Image("icon/48/categories/applications-graphics.png"));
-    dl2.addLeft(t6);
-    
-    var t7 = new qx.ui.layout.HorizontalBoxLayout;
-    t7.setHeight("20%");
-    t7.setBackgroundColor("aqua");
-    t7.setWidth(null);
-    t7.setVerticalChildrenAlign("middle");
-    t7.setHorizontalChildrenAlign("center");
-    t7.setSpacing(4);
-    t7.add(new qx.ui.basic.Image("icon/16/apps/accessories-clock.png"));
-    t7.add(new qx.ui.basic.Label("Hello World"));
-    t7.add(new qx.ui.basic.Image("icon/48/categories/applications-graphics.png"));
-    dl2.addBottom(t7);
-
-    var t8 = new qx.ui.layout.HorizontalBoxLayout;
-    t8.setWidth("20%");
-    t8.setBackgroundColor("lime");
-    t8.setHeight(null);
-    t8.setVerticalChildrenAlign("middle");
-    t8.setHorizontalChildrenAlign("center");
-    t8.setSpacing(4);
-    t8.add(new qx.ui.basic.Image("icon/16/apps/accessories-clock.png"));
-    t8.add(new qx.ui.basic.Label("Hello World"));
-    t8.add(new qx.ui.basic.Image("icon/48/categories/applications-graphics.png"));
-    dl2.addRight(t8); 
-    
-    
-    
-
-    
-    var hb1 = new qx.ui.layout.HorizontalBoxLayout;
-    
-    hb1.setBackgroundColor("silver");
-    hb1.setVerticalChildrenAlign("middle");
-    hb1.setHorizontalChildrenAlign("center");
-    hb1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    hb1.setWidth(null);
-    hb1.setHeight(null);
-    hb1.add(new qx.ui.basic.Image("icon/64/apps/accessories-clock.png"));
-    
-    dl2.add(hb1);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DockLayout_6.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DockLayout_6.html
deleted file mode 100644 (file)
index 9ae3101..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    Simple Test for qx.ui.layout.DockLayout. But with a dynamic child. Simple click on "Hello World" to see the effect.
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var dl1 = new qx.ui.layout.DockLayout;
-
-    dl1.setTop(48);
-    dl1.setLeft(20);
-    dl1.setRight(335);
-    dl1.setBottom(48);
-
-    dl1.setBorder(2, "outset");
-    dl1.setBackgroundColor("white");
-
-    d.add(dl1);
-
-
-
-    var t1 = new qx.ui.basic.Terminator;
-    t1.setHeight(50);
-    t1.setBackgroundColor("white");
-    t1.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-    dl1.addTop(t1);
-
-    var t2 = new qx.ui.basic.Label("Hello World");
-    t2.setHeight(null);
-    t2.setBackgroundColor("white");
-    t2.setPadding(10);
-    t2.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-    dl1.addLeft(t2);
-
-    var t3 = new qx.ui.layout.HorizontalBoxLayout;
-
-    t3.setWidth(null);
-    t3.setHeight(null);
-    t3.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-    t3.setBackgroundColor("white");
-    t3.setHorizontalChildrenAlign("center");
-    t3.setVerticalChildrenAlign("middle");
-
-    dl1.add(t3);
-
-    t3.add(new qx.ui.basic.Image("icon/128/categories/applications-games.png"));
-
-
-
-    t2.addEventListener("click", function(e) {
-      this.setHtml(this.getHtml() == "Hello World" ? "Real long text, especially to test this cool behaviour" : "Hello World");
-    });
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DragAndDropManager_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DragAndDropManager_1.html
deleted file mode 100644 (file)
index 1412a37..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test for drag&#38;drop implementation.</p>
-    <p>Changing the action using the modifier keys (Shift, Alt, Control) might not work in Safari.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-    
-    var a1 = new qx.ui.basic.Atom("Drag Me");
-    a1.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove });
-    a1.setPadding(10);
-    a1.setLocation(20, 48); 
-    d.add(a1);
-
-    
-    function handleDragStart(e)
-    {
-      e.addData(qx.util.Mime.TEXT, "Plain text");
-      e.addData(qx.util.Mime.HTML, "Some <strong>HTML</strong>");
-      
-      e.addAction("copy");
-      e.addAction("move");
-      e.addAction("alias");
-      
-      e.startDrag();
-    };
-    
-    function handleDragDrop( e )
-    {
-      var type = e.getDropDataTypes()[0];
-      var data = e.getData(type);
-      
-      this.debug("Drag&Drop Action: " + e.getAction());
-  
-      switch(type)
-      {
-        case qx.util.Mime.TEXT:
-        case qx.util.Mime.HTML:
-          this.setLabel(data);  
-          break;
-      };     
-    };
-    
-    function handleDragOver(e) {
-      e.getTarget().setBackgroundColor("#f2f2f2");    
-    };
-  
-    function handleDragOut(e) {
-      e.getTarget().setBackgroundColor("#fff");
-    };
-  
-    function handleDragEnd(e)
-    {
-      // we don't need to do anything here
-      // If we had a succesful move action we might have removed
-      // the source here or something else
-    };
-    
-    a1.addEventListener("dragstart", handleDragStart);
-    
-    
-    
-    
-    var w1 = new qx.ui.basic.Atom("Drop to me");
-    w1.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove, width: 100, height: 100, top: 100, left: 20, horizontalAlign: "center" });
-    w1.setDropDataTypes([qx.util.Mime.HTML, qx.util.Mime.TEXT]);
-    w1.addEventListener("dragdrop", handleDragDrop);
-    w1.addEventListener("dragover", handleDragOver);
-    w1.addEventListener("dragout", handleDragOut);    
-    
-    var w2 = new qx.ui.basic.Atom("Drop to me");
-    w2.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove, width: 100, height: 100, top: 230, left: 20, horizontalAlign: "center" });
-    w2.setDropDataTypes([qx.util.Mime.HTML, qx.util.Mime.TEXT]);
-    w2.addEventListener("dragdrop", handleDragDrop);
-    w2.addEventListener("dragover", handleDragOver);
-    w2.addEventListener("dragout", handleDragOut);    
-
-    var w3 = new qx.ui.basic.Atom("Drop to me");
-    w3.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove, width: 100, height: 100, top: 100, left: 150, horizontalAlign: "center" });
-    w3.setDropDataTypes([qx.util.Mime.HTML, qx.util.Mime.TEXT]);
-    w3.addEventListener("dragdrop", handleDragDrop);
-    w3.addEventListener("dragover", handleDragOver);
-    w3.addEventListener("dragout", handleDragOut);    
-    
-    var w4 = new qx.ui.basic.Atom("Drop to me");
-    w4.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove, width: 100, height: 100, top: 230, left: 150, horizontalAlign: "center" });
-    w4.setDropDataTypes([qx.util.Mime.HTML, qx.util.Mime.TEXT]);
-    w4.addEventListener("dragdrop", handleDragDrop);
-    w4.addEventListener("dragover", handleDragOver);
-    w4.addEventListener("dragout", handleDragOut);    
-    
-    
-    
-    var f1 = new qx.ui.layout.CanvasLayout;
-    f1.set({ backgroundColor: "orange", width: 230, height: 120, top: 350, left: 20 });
-  
-    var w5 = new qx.ui.basic.Atom("Drop to me");
-    w5.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove, width: 100, height: 100, top: 10, horizontalAlign: "center" });
-    w5.setDropDataTypes([qx.util.Mime.HTML, qx.util.Mime.TEXT]);
-    w5.addEventListener("dragdrop", handleDragDrop);
-    w5.addEventListener("dragover", handleDragOver);
-    w5.addEventListener("dragout", handleDragOut);     
-    
-    var w6 = new qx.ui.basic.Atom("Drop to me");
-    w6.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove, width: 100, height: 100, top: 10, right: 0, horizontalAlign: "center" });
-    w6.setDropDataTypes([qx.util.Mime.HTML, qx.util.Mime.TEXT]);
-    w6.addEventListener("dragdrop", handleDragDrop);
-    w6.addEventListener("dragover", handleDragOver);
-    w6.addEventListener("dragout", handleDragOut);   
-    
-    f1.add(w5, w6);
-    d.add(w1, w2, w3, w4, f1);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DragAndDropManager_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/DragAndDropManager_2.html
deleted file mode 100644 (file)
index 31bf712..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test for drag&#38;drop implementation.</p>
-    <p>Changing the action using the modifier keys (Shift, Alt, Control) might not work in Safari.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-    
-    var a1 = new qx.ui.basic.Atom("Drag Me");
-    a1.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove });
-    a1.setPadding(10);
-    a1.setLocation(20, 48); 
-    d.add(a1);
-    
-    
-    
-    
-    function printEvent(e) {
-      return "TARGET:" + (e.getTarget() ? e.getTarget().toHashCode() : "null") + " [ORIG:" + (e.getOriginalTarget() ? e.getOriginalTarget().toHashCode() : "null") + "]  [REL:" + (e.getRelatedTarget() ? e.getRelatedTarget().toHashCode() : "null") + "]";
-    };
-    
-    function handleDragStart(e)
-    {
-      this.debug("Fire DragStart: " + printEvent(e));
-      
-      e.addData(qx.util.Mime.TEXT, "Plain text");
-      e.addData(qx.util.Mime.HTML, "Some <strong>HTML</strong>");
-      
-      e.addAction("copy");
-      e.addAction("move");
-      e.addAction("alias");
-
-      if (feedbackCheckBox.isChecked()) {
-        var feedbackWidget = new qx.ui.basic.Atom("Some HTML", "icon/16/file-new.png");
-        feedbackWidget.set({ border:new qx.renderer.border.Border(1, "dashed", "gray"),
-            opacity:0.7 });
-        feedbackWidget.setPadding(2);
-
-        e.setFeedbackWidget(feedbackWidget, 15, 0, true);
-        e.setCursorPosition(15, 25);
-      }
-
-      e.startDrag();
-    };
-    
-    function handleDragDrop( e )
-    {
-      this.debug("Fire DragDrop: " + printEvent(e));
-
-      var type = e.getDropDataTypes()[0];
-      var data = e.getData(type);
-      
-      switch(type)
-      {
-        case qx.util.Mime.TEXT:
-        case qx.util.Mime.HTML:
-          this.setLabel(data);  
-          break;
-      };     
-    };
-    
-    function handleDragOver(e) 
-    {
-      this.debug("Fire DragOver: " + printEvent(e));
-      e.getTarget().setBackgroundColor("#f2f2f2");    
-    };
-  
-    function handleDragOut(e) 
-    {
-      this.debug("Fire DragOut: " + printEvent(e));
-      e.getTarget().setBackgroundColor("#fff");
-    };
-  
-    function handleDragEnd(e) {
-      this.debug("Fire DragEnd: " + printEvent(e));
-    };
-    
-    
-    
-    
-    a1.addEventListener("dragstart", handleDragStart);
-    a1.addEventListener("dragend", handleDragEnd);
-    
-    
-    var feedbackCheckBox = new qx.ui.form.CheckBox("Show feedback");
-    feedbackCheckBox.setLocation(120, 55); 
-    
-    var w1 = new qx.ui.basic.Atom("Drop to me");
-    w1.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove, width: 100, height: 100, top: 100, left: 20, horizontalAlign: "center" });
-    w1.setDropDataTypes([qx.util.Mime.HTML, qx.util.Mime.TEXT]);
-    w1.addEventListener("dragdrop", handleDragDrop);
-    w1.addEventListener("dragover", handleDragOver);
-    w1.addEventListener("dragout", handleDragOut); 
-    
-    var w2 = new qx.ui.basic.Atom("Drop to me");
-    w2.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove, width: 100, height: 100, top: 200, left: 20, horizontalAlign: "center" });
-    w2.setDropDataTypes([qx.util.Mime.HTML, qx.util.Mime.TEXT]);
-    w2.addEventListener("dragdrop", handleDragDrop);
-    w2.addEventListener("dragover", handleDragOver);
-    w2.addEventListener("dragout", handleDragOut);
-
-    var w3 = new qx.ui.basic.Atom("Drop to me");
-    w3.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove, width: 100, height: 100, top: 100, left: 150, horizontalAlign: "center" });
-    w3.setDropDataTypes([qx.util.Mime.HTML, qx.util.Mime.TEXT]);
-    w3.addEventListener("dragdrop", handleDragDrop);
-    w3.addEventListener("dragover", handleDragOver);
-    w3.addEventListener("dragout", handleDragOut);
-    
-    var w4 = new qx.ui.basic.Atom("Drop to me");
-    w4.set({ backgroundColor: "white", border: qx.renderer.border.BorderPresets.getInstance().groove, width: 100, height: 100, top: 200, left: 150, horizontalAlign: "center" });
-    w4.setDropDataTypes([qx.util.Mime.HTML, qx.util.Mime.TEXT]);
-    w4.addEventListener("dragdrop", handleDragDrop);
-    w4.addEventListener("dragover", handleDragOver);
-    w4.addEventListener("dragout", handleDragOut);
-    
-    d.add(feedbackCheckBox, w1, w2, w3, w4);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/EnabledDisabled_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/EnabledDisabled_1.html
deleted file mode 100644 (file)
index 002562e..0000000
+++ /dev/null
@@ -1,230 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Some test for the enable property in QxObject which will be extended from qx.ui.core.Widget and any other
-    widget which need additional handling on a change of this property. Keep in mind: Disabled QxWidgets will be ignored
-    from the QxEventManager and the qx.event.handler.FocusHandler.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var w1 = new qx.ui.basic.Label("Basic Container");
-
-    with(w1)
-    {
-      setWidth(75);
-      setLeft(20);
-      setTop(48);
-      setHeight(50);
-      setWidth(80);
-      setBackgroundColor("#fff");
-      setColor("blue");
-      setTabIndex(1);
-      setBorder(new qx.renderer.border.Border(2, "solid", "blue"));
-      setEnabled(false);
-    };
-
-    d.add(w1);
-
-    w1.addEventListener("mouseover", function(e)
-    {
-      if( this.getEnabled() )
-        this.getElement().style.color = "red";
-    });
-
-    w1.addEventListener("mouseout", function(e)
-    {
-      if( this.getEnabled() )
-        this.getElement().style.color = "blue";
-    });
-
-    var c1t = new qx.ui.form.CheckBox("Enabled");
-    with(c1t)
-    {
-      setTop(60);
-      setLeft(220);
-      addEventListener("changeChecked", function(e) { w1.setEnabled(e.getData()); });
-    };
-
-    d.add(c1t);
-
-    //------
-    // atom
-    //------
-
-    var a1 = new qx.ui.basic.Atom("Atom", "icon/32/apps/accessories-clock.png");
-
-    with(a1)
-    {
-      setTop(190);
-      setLeft(20);
-      setEnabled(false);
-      setPadding(2, 4);
-      setBackgroundColor("#FFFF6D");
-    };
-
-    d.add(a1);
-
-    var swa1 = new qx.ui.form.CheckBox("Enabled");
-    with(swa1)
-    {
-      setTop(196);
-      setLeft(220);
-      addEventListener("changeChecked", function(e) { a1.setEnabled(e.getData()); });
-    };
-
-    d.add(swa1);
-
-    //--------
-    // button
-    //--------
-
-    var btn1 = new qx.ui.form.Button("Button No #1");
-    with(btn1)
-    {
-      setTop(244);
-      setLeft(20);
-      setEnabled(false);
-    };
-
-    d.add(btn1);
-
-    var swbtn1 = new qx.ui.form.CheckBox("Enabled");
-    with(swbtn1)
-    {
-      setTop(244);
-      setLeft(220);
-      addEventListener("changeChecked", function(e) { btn1.setEnabled(e.getData()); });
-    };
-
-    d.add(swbtn1);
-
-    //-------------
-    // radiobutton
-    //-------------
-
-    var rb1 = new qx.ui.form.RadioButton("Radio button");
-    with(rb1)
-    {
-      setTop(292);
-      setLeft(20);
-      setEnabled(false);
-    };
-
-    d.add(rb1);
-
-    var swrb1 = new qx.ui.form.CheckBox("Enabled");
-    with(swrb1)
-    {
-      setTop(292);
-      setLeft(220);
-      addEventListener("changeChecked", function(e) { rb1.setEnabled(e.getData()); });
-    };
-
-    d.add(swrb1);
-
-    //----------
-    // checkbox
-    //----------
-
-    var cb1 = new qx.ui.form.CheckBox("Checkbox");
-    with(cb1)
-    {
-      setTop(340);
-      setLeft(20);
-      setEnabled(false);
-    };
-
-    d.add(cb1);
-
-    var swcb1 = new qx.ui.form.CheckBox("Enabled");
-    with(swcb1)
-    {
-      setTop(340);
-      setLeft(220);
-      addEventListener("changeChecked", function(e) { cb1.setEnabled(e.getData()); });
-    };
-
-    d.add(swcb1);
-
-    //-----------
-    // TextField
-    //-----------
-
-    var tf1 = new qx.ui.form.TextField;
-    with(tf1)
-    {
-      setTop(388);
-      setLeft(20);
-      setEnabled(false);
-    };
-
-    d.add(tf1);
-
-    var swtf1 = new qx.ui.form.CheckBox("Enabled");
-    with(swtf1)
-    {
-      setTop(388);
-      setLeft(220);
-      addEventListener("changeChecked", function(e) { tf1.setEnabled(e.getData()); });
-    };
-
-    d.add(swtf1);
-
-    //-----------
-    // ComboBox
-    //-----------
-
-    var cb1 = new qx.ui.form.ComboBox;
-    with(cb1)
-    {
-      setTop(436);
-      setLeft(20);
-      setEnabled(false);
-      setEditable(true);
-    };
-
-    d.add(cb1);
-
-    cb1.addEventListener("beforeInitialOpen", function(e)
-    {
-      var item;
-
-      for(var i=1; i<=30; i++)
-      {
-        item = new qx.ui.form.ListItem("Item No " + i);
-        !(i % 10) && (item.setEnabled(false));
-        cb1.add(item);
-      };
-    });
-
-    var swcb1 = new qx.ui.form.CheckBox("Enabled");
-    with(swcb1)
-    {
-      setTop(436);
-      setLeft(220);
-      addEventListener("changeChecked", function(e) { cb1.setEnabled(e.getData()); });
-    };
-
-    d.add(swcb1);
-
-  });
-
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/FieldSet_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/FieldSet_1.html
deleted file mode 100644 (file)
index 6257c2b..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>A more complex example than the previous one. Use layout managers for its content. Configured minWidth of the qx.ui.groupbox.GroupBox with "auto".</p>
-  </div>
-
-  <fieldset style="position:absolute; top:48px; left:400px; width:200px; height:100px"><legend>builtin</legend>content content content content content content content content content content content content content content content</fieldset>
-
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-
-      var fs = new qx.ui.groupbox.GroupBox("My first Fieldset", "icon/16/apps/accessories-clock.png");
-
-      with(fs)
-      {
-        setWidth("40%");
-        setBottom(48);
-        setTop(48);
-        setLeft(20);
-
-        setMaxWidth(350);
-        setMinWidth("auto");
-      };
-      
-      d.add(fs);
-      
-      
-      
-      
-      var fsl = new qx.ui.layout.VerticalBoxLayout;
-      fsl.setLeft(0);
-      fsl.setRight(0);
-      fsl.setHeight("auto");
-      fsl.setSpacing(4);
-      fs.add(fsl);
-      
-      
-      
-      
-      var r1 = new qx.ui.layout.HorizontalBoxLayout;
-      r1.setLeft(0);
-      r1.setWidth("100%");
-      r1.setHeight("auto");
-      r1.setVerticalChildrenAlign("middle");
-      fsl.add(r1);
-
-      var a1 = new qx.ui.basic.Atom("TextField 1");
-      with(a1)
-      {
-        setLeft(0);
-        setWidth("40%");
-        setHorizontalChildrenAlign("left");
-      };
-
-      var i1 = new qx.ui.form.TextField;
-      with(i1)
-      {
-        setRight(0);
-        setWidth("60%");
-      };
-      
-      r1.add(a1, i1);
-
-
-
-
-
-      var r2 = new qx.ui.layout.HorizontalBoxLayout;
-      r2.setLeft(0);
-      r2.setWidth("100%");
-      r2.setHeight("auto");
-      r2.setVerticalChildrenAlign("middle");
-      fsl.add(r2);
-      
-      var a2 = new qx.ui.basic.Atom("TextField 2", "icon/16/apps/preferences-desktop-theme.png");
-      with(a2)
-      {
-        setLeft(0);
-        setWidth("40%");
-        setHorizontalChildrenAlign("left");
-      };
-
-      var i2 = new qx.ui.form.TextField;
-      with(i2)
-      {
-        setRight(0);
-        setWidth("60%");
-      };
-      
-      r2.add(a2, i2);
-
-
-
-
-
-
-      var r3 = new qx.ui.layout.HorizontalBoxLayout;
-      r3.setLeft(0);
-      r3.setWidth("100%");
-      r3.setHeight("auto");
-      r3.setVerticalChildrenAlign("middle");      
-      fsl.add(r3);
-
-      var a3 = new qx.ui.basic.Atom("TextField 3");
-      with(a3)
-      {
-        setLeft(0);
-        setWidth("40%");
-        setHorizontalChildrenAlign("left");        
-      };
-
-      var i3 = new qx.ui.form.TextField;
-      with(i3)
-      {
-        setRight(0);
-        setWidth("60%");
-      };
-      
-      r3.add(a3, i3);
-
-
-
-      
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Fields_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Fields_1.html
deleted file mode 100644 (file)
index c448ae7..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test the setting of background color of form fields.</p>
-  </div>
-
-  <script type="text/javascript">
-  function changeBackgrounds(parent, color)
-  {
-    var children = parent.getChildren();
-    var child;
-
-    for (var i=0; i<children.length; i++)
-    {
-      child = children[i];
-
-      switch(child.classname)
-      {
-        case 'qx.ui.form.TextArea':
-        case 'qx.ui.form.TextField':
-        case 'qx.ui.form.ComboBox':
-        case 'qx.ui.form.PasswordField':
-          child.setBackgroundColor(color);
-          break;
-      };
-    };
-  };
-
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    function textChange(e) {
-      this.debug("Text changed: " + e.getData());
-    }
-
-    var t1 = new qx.ui.form.TextField;
-    t1.setValue("textfield");
-    t1.setTop(48);
-    t1.setLeft(20);
-
-    t1.addEventListener("changeText", textChange);
-    t1.addEventListener("input", function(e) {
-      this.debug("Input: " + e.getData());
-    });
-
-    d.add(t1);
-
-
-
-
-    var t2 = new qx.ui.form.PasswordField;
-    t2.setValue("passwordfield");
-    t2.setTop(80);
-    t2.setLeft(20);
-
-    t2.addEventListener("changeText", textChange);
-
-    d.add(t2);
-
-
-    var t3 = new qx.ui.form.TextArea;
-    t3.setValue("textarea");
-    t3.setTop(110);
-    t3.setLeft(20);
-    t3.setWidth(300);
-    t3.setHeight(60);
-
-    t3.addEventListener("changeText", textChange);
-
-    d.add(t3);
-
-
-    var t4 = new qx.ui.form.TextField;
-    t4.setValue("textfield");
-    t4.setTop(200);
-    t4.setLeft(20);
-    t4.setWidth(200);
-    t4.setMaxLength(100);
-    t4.setReadOnly(true);
-
-    t4.addEventListener("changeText", textChange);
-
-    d.add(t4);
-
-
-    var t5 = new qx.ui.form.TextField;
-    t5.setValue("You are foo!");
-    t5.setTop(240);
-    t5.setLeft(20);
-
-    t5.addEventListener("changeText", textChange);
-
-    d.add(t5);
-
-    var c1 = new qx.ui.form.ComboBox;
-    c1.setTop(280);
-    c1.setLeft(20);
-
-    c1.addEventListener("beforeInitialOpen", function(e)
-    {
-      var item;
-
-      for(var i=1; i<=30; i++)
-      {
-        item = new qx.ui.form.ListItem("Item No " + i);
-        !(i % 10) && (item.setEnabled(false));
-        c1.add(item);
-      };
-    });
-
-    // this does not work here (if there is no content)
-    c1.setSelected(c1.getList().getFirstChild());
-
-    c1.addEventListener("changeValue", function(e) {
-      this.debug("New value: " + e.getData());
-    });
-
-    c1.addEventListener("changeSelected", function(e) {
-      this.debug("New selected: " + e.getData());
-    });
-
-
-
-
-    var b1 = new qx.ui.form.CheckBox("Editable");
-
-    b1.set({ top: 282, left: 150 });
-
-    b1.addEventListener("changeChecked", function(e) {
-      c1.setEditable(e.getData());
-    });
-
-
-    var b2 = new qx.ui.form.Button("red", "icon/16/actions/format-color.png");   b2.set({left:10,top:10});
-    var b3 = new qx.ui.form.Button("green", "icon/16/actions/format-color.png"); b3.set({left:10,top:40});
-    var b4 = new qx.ui.form.Button("white", "icon/16/actions/format-color.png"); b4.set({left:10,top:70});
-
-    b2.addEventListener("click", function(e) { changeBackgrounds(d,this.getLabel()); });
-    b3.addEventListener("click", function(e) { changeBackgrounds(d,this.getLabel()); });
-    b4.addEventListener("click", function(e) { changeBackgrounds(d,this.getLabel()); });
-
-    var fs = new qx.ui.groupbox.GroupBox("BackgroundColor");
-    fs.set({left:400,top:50,width:150,height:"auto"});
-    fs.add(b2,b3,b4);
-
-
-
-      d.add(c1, b1, fs);
-
-
-
-
-
-
-
-
-    // Color Themes
-    qx.manager.object.ColorManager.getInstance().createThemeList(d, 20, 320);
-
-
-
-
-
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/FlowLayout_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/FlowLayout_1.html
deleted file mode 100644 (file)
index da53826..0000000
+++ /dev/null
@@ -1,319 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    Tests for the new implementation of the qx.ui.layout.FlowLayout widget.
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-
-
-    var flow1 = new qx.ui.layout.FlowLayout;
-
-    flow1.setTop(48);
-    flow1.setLeft(20);
-    flow1.setRight(335);
-    flow1.setBottom(200);
-
-    // flow1.setBorder(qx.renderer.border.BorderPresets.getInstance().groove);
-    // flow1.setPadding(8);
-
-    flow1.setHorizontalSpacing(4);
-    flow1.setVerticalSpacing(4);
-    
-    // flow1.setHorizontalChildrenAlign("right");
-    // flow1.setVerticalChildrenAlign("bottom");
-    
-    // flow1.setReverseChildrenOrder(true);
-    
-    d.add(flow1);
-
-    
-    
-    var w1 = new qx.ui.basic.Terminator;
-    
-    w1.setBackgroundColor("orange");
-    w1.setWidth(300);
-    w1.setHeight(20);
-    
-    
-    var w2 = new qx.ui.basic.Terminator;
-    
-    w2.setBackgroundColor("blue");
-    w2.setWidth(200);
-    w2.setHeight(50);
-
-
-    var w3 = new qx.ui.basic.Terminator;
-    
-    w3.setBackgroundColor("green");
-    w3.setWidth(100);
-    w3.setHeight(150);
-    w3.setMarginLeft(20);
-
-    var w4 = new qx.ui.basic.Terminator;
-    
-    w4.setBackgroundColor("purple");
-    w4.setWidth("30%");
-    w4.setHeight("10%");
-    
-    var w5 = new qx.ui.basic.Terminator;
-    
-    w5.setBackgroundColor("yellow");
-    w5.setWidth(50);
-    w5.setHeight(80);
-    
-    var w6 = new qx.ui.basic.Terminator;
-    
-    w6.setBackgroundColor("red");
-    w6.setWidth(400);
-    w6.setHeight(50);     
-    
-    var i1 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-    var i2 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-    
-    i2.setResizeToInner(true);
-       
-    var c1 = new qx.ui.basic.Label("Hello World");
-    var c2 = new qx.ui.basic.Label("<ol><li>Simple HTML List</li><li>with one</li><li>and another item</li></ol>");
-    
-    var a1 = new qx.ui.form.Button("Press", "icon/16/apps/preferences-desktop-multimedia.png");
-
-
-    flow1.add(w1, i1, w2, w3, a1, c2, w4, i2, w5, c1, w6);
-    
-    
-    
-    
-    
-    w1.addEventListener("click", function(e) {
-      this.setMaxWidth(this.getMaxWidth() == 50 ? null : 50);
-    });
-    
-    w2.addEventListener("click", function(e)
-    {
-      if (this.getWidth() == 200)
-      {
-        this.setWidth(100); 
-        this.setHeight(200);
-      }
-    else
-      {
-        this.setWidth(200);
-        this.setHeight(50);
-      };
-    });
-    
-    i1.addEventListener("click", function(e) {
-      this.setSource(this.getSource() == "icon/32/apps/accessories-clock.png" ? "icon/128/apps/accessories-clock.png" : "icon/32/apps/accessories-clock.png");
-    });
-    
-    i2.addEventListener("click", function(e)
-    {
-      this.setWidth(this.getWidth() == "auto" ? 128 : "auto");
-      this.setHeight(this.getHeight() == "auto" ? 128 : "auto");
-    });
-    
-    c1.addEventListener("click", function(e) {
-      this.setHtml(this.getHtml() == "Hello World" ? "Yeah, qooxdoo is great" : "Hello World");
-    });
-    
-    
-    
-    
-    // *************************************************************
-    
-    var controlBox = new qx.ui.layout.VerticalBoxLayout;
-    
-    controlBox.setLeft(20);
-    controlBox.setBottom(48);
-    controlBox.setRight(335);
-    controlBox.setWidth(null);
-    controlBox.setHeight("auto");
-    controlBox.setBorder(qx.renderer.border.BorderPresets.getInstance().groove);
-    controlBox.setSpacing(4);
-    controlBox.setPadding(8);
-    
-    d.add(controlBox);
-    
-    
-    
-    
-    var cc0 = new qx.ui.basic.Label("Spacing: ");
-    cc0.setWidth(50);
-    
-    var bc0 = new qx.ui.form.Button("0x0", "icon/16/actions/dialog-ok.png");
-    var bc1 = new qx.ui.form.Button("4x4", "icon/16/actions/dialog-ok.png");
-    var bc2 = new qx.ui.form.Button("8x8", "icon/16/actions/dialog-ok.png");
-    var bc3 = new qx.ui.form.Button("20x20", "icon/16/actions/dialog-ok.png");
-    var bc4 = new qx.ui.form.Button("0x10", "icon/16/actions/dialog-ok.png");
-    var bc5 = new qx.ui.form.Button("10x0", "icon/16/actions/dialog-ok.png");
-    
-    bc0.addEventListener("execute", function(e) {
-      flow1.setHorizontalSpacing(0);
-      flow1.setVerticalSpacing(0);
-    });
-
-    bc1.addEventListener("execute", function(e) {
-      flow1.setHorizontalSpacing(4);
-      flow1.setVerticalSpacing(4);
-    });
-
-    bc2.addEventListener("execute", function(e) {
-      flow1.setHorizontalSpacing(8);
-      flow1.setVerticalSpacing(8);
-    });
-
-    bc3.addEventListener("execute", function(e) {
-      flow1.setHorizontalSpacing(20);
-      flow1.setVerticalSpacing(20);
-    });
-
-    bc4.addEventListener("execute", function(e) {
-      flow1.setHorizontalSpacing(0);
-      flow1.setVerticalSpacing(10);
-    });
-
-    bc5.addEventListener("execute", function(e) {
-      flow1.setHorizontalSpacing(10);
-      flow1.setVerticalSpacing(0);
-    });
-    
-    var hc0 = new qx.ui.layout.HorizontalBoxLayout;
-    
-    hc0.add(cc0, bc0, bc1, bc2, bc3, bc4, bc5);
-    hc0.setVerticalChildrenAlign("middle");
-    hc0.setHeight("auto");
-    
-    controlBox.add(hc0);
-    
-    
-    
-    
-    
-    
-    var cr0 = new qx.ui.basic.Label("Order: ");
-    cr0.setWidth(50);
-    
-    var br0 = new qx.ui.form.Button("Default", "icon/16/actions/dialog-ok.png");
-    var br1 = new qx.ui.form.Button("Reversed", "icon/16/actions/dialog-ok.png");    
-    
-    br0.addEventListener("execute", function(e) {
-      flow1.setReverseChildrenOrder(false);
-    });
-    
-    br1.addEventListener("execute", function(e) {
-      flow1.setReverseChildrenOrder(true);
-    });   
-    
-    
-    
-    var hc1 = new qx.ui.layout.HorizontalBoxLayout;
-    
-    hc1.add(cr0, br0, br1);
-    hc1.setVerticalChildrenAlign("middle");
-    hc1.setHeight("auto");
-    
-    controlBox.add(hc1);
-    
-    
-    
-    
-    
-    
-    
-    var cr0 = new qx.ui.basic.Label("Align: ");
-    cr0.setWidth(50);
-    
-    var br0 = new qx.ui.form.Button("Top", "icon/16/actions/dialog-ok.png");
-    var br1 = new qx.ui.form.Button("Bottom", "icon/16/actions/dialog-ok.png");
-    var br2 = new qx.ui.form.Button("Left", "icon/16/actions/dialog-ok.png");
-    var br3 = new qx.ui.form.Button("Right", "icon/16/actions/dialog-ok.png");
-    
-    br0.addEventListener("execute", function(e) {
-      flow1.setVerticalChildrenAlign("top");
-    });
-    
-    br1.addEventListener("execute", function(e) {
-      flow1.setVerticalChildrenAlign("bottom");
-    });   
-    
-    br2.addEventListener("execute", function(e) {
-      flow1.setHorizontalChildrenAlign("left");
-    });   
-
-    br3.addEventListener("execute", function(e) {
-      flow1.setHorizontalChildrenAlign("right");
-    });   
-    
-    
-    var hc1 = new qx.ui.layout.HorizontalBoxLayout;
-    
-    hc1.add(cr0, br0, br1, br2, br3);
-    hc1.setVerticalChildrenAlign("middle");
-    hc1.setHeight("auto");
-    
-    controlBox.add(hc1);    
-    
-    
-    
-    
-    
-    
-    
-    var ca0 = new qx.ui.basic.Label("Children: ");
-    ca0.setWidth(50);
-    
-    var ba0 = new qx.ui.form.Button("New Atom", "icon/16/actions/dialog-ok.png");
-    var ba1 = new qx.ui.form.Button("New Image", "icon/16/actions/dialog-ok.png");    
-    var ba2 = new qx.ui.form.Button("New Atom to #3", "icon/16/actions/dialog-ok.png");    
-    var ba3 = new qx.ui.form.Button("New Image to #6", "icon/16/actions/dialog-ok.png");    
-    var ba4 = new qx.ui.form.Button("Remove First", "icon/16/actions/dialog-ok.png");    
-    
-    ba0.addEventListener("execute", function(e) {
-      flow1.add(new qx.ui.basic.Atom("New Atom", "icon/16/places/services.png"));
-    });
-    
-    ba1.addEventListener("execute", function(e) {
-      flow1.add(new qx.ui.basic.Image("icon/64/apps/accessories-disk-usage.png"));
-    });   
-    
-    ba2.addEventListener("execute", function(e) {
-      flow1.addAt(new qx.ui.basic.Atom("New Atom", "icon/16/apps/preferences-desktop-multimedia.png"), 3);
-    });  
-    
-    ba3.addEventListener("execute", function(e) {
-      flow1.addAt(new qx.ui.basic.Image("icon/64/actions/format-color.png"), 6);
-    });  
-    
-    ba4.addEventListener("execute", function(e) {
-      flow1.remove(flow1.getFirstChild());
-    });              
-    
-    var ha1 = new qx.ui.layout.HorizontalBoxLayout;
-    
-    ha1.add(ca0, ba0, ba1, ba2, ba3, ba4);
-    ha1.setVerticalChildrenAlign("middle");
-    ha1.setHeight("auto");
-    
-    controlBox.add(ha1);   
-    
-    
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/FlowLayout_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/FlowLayout_2.html
deleted file mode 100644 (file)
index 79c897b..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    Tests for the new implementation of the qx.ui.layout.FlowLayout widget.
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var flow1 = new qx.ui.layout.FlowLayout;
-
-    flow1.setTop(48);
-    flow1.setLeft(20);
-    flow1.setRight(335);
-    flow1.setBottom(200);
-
-    // flow1.setBorder(qx.renderer.border.BorderPresets.getInstance().ridge);
-    // flow1.setPadding(8);
-
-    flow1.setHorizontalSpacing(4);
-    flow1.setVerticalSpacing(4);
-    
-    // flow1.setOverflow("scrollY");
-
-    d.add(flow1);
-
-    for (var i=0, witer; i<100; i++)
-    {
-      witer = new qx.ui.basic.Terminator;
-      
-      witer.setBackgroundColor("white");
-      witer.setWidth(50);
-      witer.setHeight(50);
-      
-      flow1.add(witer);
-    };
-    
-    
-    // *************************************************************
-    
-    var controlBox = new qx.ui.layout.VerticalBoxLayout;
-    
-    controlBox.setLeft(20);
-    controlBox.setBottom(48);
-    controlBox.setRight(335);
-    controlBox.setWidth(null);
-    controlBox.setHeight("auto");
-    controlBox.setBorder(qx.renderer.border.BorderPresets.getInstance().groove);
-    controlBox.setSpacing(4);
-    controlBox.setPadding(8);
-    
-    d.add(controlBox);
-    
-    
-    
-    
-    var cc0 = new qx.ui.basic.Label("Spacing: ");
-    cc0.setWidth(50);
-    
-    var bc0 = new qx.ui.form.Button("0x0", "icon/16/actions/dialog-ok.png");
-    var bc1 = new qx.ui.form.Button("4x4", "icon/16/actions/dialog-ok.png");
-    var bc2 = new qx.ui.form.Button("8x8", "icon/16/actions/dialog-ok.png");
-    var bc3 = new qx.ui.form.Button("20x20", "icon/16/actions/dialog-ok.png");
-    var bc4 = new qx.ui.form.Button("0x10", "icon/16/actions/dialog-ok.png");
-    var bc5 = new qx.ui.form.Button("10x0", "icon/16/actions/dialog-ok.png");
-    
-    bc0.addEventListener("execute", function(e) {
-      flow1.setHorizontalSpacing(0);
-      flow1.setVerticalSpacing(0);
-    });
-
-    bc1.addEventListener("execute", function(e) {
-      flow1.setHorizontalSpacing(4);
-      flow1.setVerticalSpacing(4);
-    });
-
-    bc2.addEventListener("execute", function(e) {
-      flow1.setHorizontalSpacing(8);
-      flow1.setVerticalSpacing(8);
-    });
-
-    bc3.addEventListener("execute", function(e) {
-      flow1.setHorizontalSpacing(20);
-      flow1.setVerticalSpacing(20);
-    });
-
-    bc4.addEventListener("execute", function(e) {
-      flow1.setHorizontalSpacing(0);
-      flow1.setVerticalSpacing(10);
-    });
-
-    bc5.addEventListener("execute", function(e) {
-      flow1.setHorizontalSpacing(10);
-      flow1.setVerticalSpacing(0);
-    });
-    
-    var hc0 = new qx.ui.layout.HorizontalBoxLayout;
-    
-    hc0.add(cc0, bc0, bc1, bc2, bc3, bc4, bc5);
-    hc0.setVerticalChildrenAlign("middle");
-    hc0.setHeight("auto");
-    
-    controlBox.add(hc0);
-    
-    
-    
-    
-    
-    
-    var cr0 = new qx.ui.basic.Label("Order: ");
-    cr0.setWidth(50);
-    
-    var br0 = new qx.ui.form.Button("Default", "icon/16/actions/dialog-ok.png");
-    var br1 = new qx.ui.form.Button("Reversed", "icon/16/actions/dialog-ok.png");    
-    
-    br0.addEventListener("execute", function(e) {
-      flow1.setReverseChildrenOrder(false);
-    });
-    
-    br1.addEventListener("execute", function(e) {
-      flow1.setReverseChildrenOrder(true);
-    });   
-    
-    
-    
-    var hc1 = new qx.ui.layout.HorizontalBoxLayout;
-    
-    hc1.add(cr0, br0, br1);
-    hc1.setVerticalChildrenAlign("middle");
-    hc1.setHeight("auto");
-    
-    controlBox.add(hc1);
-    
-    
-    
-    
-    
-    
-    
-    var ca0 = new qx.ui.basic.Label("Children: ");
-    ca0.setWidth(50);
-    
-    var ba0 = new qx.ui.form.Button("New Atom", "icon/16/actions/dialog-ok.png");
-    var ba1 = new qx.ui.form.Button("New Image", "icon/16/actions/dialog-ok.png");    
-    var ba2 = new qx.ui.form.Button("New Atom to #3", "icon/16/actions/dialog-ok.png");    
-    var ba3 = new qx.ui.form.Button("New Image to #6", "icon/16/actions/dialog-ok.png");    
-    var ba4 = new qx.ui.form.Button("Remove First", "icon/16/actions/dialog-ok.png");    
-    
-    ba0.addEventListener("execute", function(e) {
-      flow1.add(new qx.ui.basic.Atom("New Atom", "icon/16/places/services.png"));
-    });
-    
-    ba1.addEventListener("execute", function(e) {
-      flow1.add(new qx.ui.basic.Image("icon/64/apps/accessories-disk-usage.png"));
-    });   
-    
-    ba2.addEventListener("execute", function(e) {
-      flow1.addAt(new qx.ui.basic.Atom("New Atom", "icon/16/apps/preferences-desktop-multimedia.png"), 3);
-    });  
-    
-    ba3.addEventListener("execute", function(e) {
-      flow1.addAt(new qx.ui.basic.Image("icon/64/actions/format-color.png"), 6);
-    });  
-    
-    ba4.addEventListener("execute", function(e) {
-      flow1.remove(flow1.getFirstChild());
-    });              
-    
-    var ha1 = new qx.ui.layout.HorizontalBoxLayout;
-    
-    ha1.add(ca0, ba0, ba1, ba2, ba3, ba4);
-    ha1.setVerticalChildrenAlign("middle");
-    ha1.setHeight("auto");
-    
-    controlBox.add(ha1);   
-    
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/FlowLayout_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/FlowLayout_3.html
deleted file mode 100644 (file)
index 84d84ce..0000000
+++ /dev/null
@@ -1,277 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    Tests for the new implementation of the qx.ui.layout.FlowLayout widget.
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-
-
-    var flow1 = new qx.ui.layout.FlowLayout;
-
-    flow1.setTop(48);
-    flow1.setLeft(20);
-    flow1.setRight(335);
-    // flow1.setWidth("auto");
-    flow1.setHeight("auto");
-
-    flow1.setBorder(qx.renderer.border.BorderPresets.getInstance().groove);
-    flow1.setPadding(8);
-
-    flow1.setHorizontalSpacing(4);
-    flow1.setVerticalSpacing(4);
-    
-    // flow1.setReverseChildrenOrder(true);
-    
-    d.add(flow1);
-
-    
-    
-    var w1 = new qx.ui.basic.Terminator;
-    
-    w1.setBackgroundColor("orange");
-    w1.setWidth(300);
-    w1.setHeight(20);
-    
-    
-    var w2 = new qx.ui.basic.Terminator;
-    
-    w2.setBackgroundColor("blue");
-    w2.setWidth(200);
-    w2.setHeight(50);
-
-
-    var w3 = new qx.ui.basic.Terminator;
-    
-    w3.setBackgroundColor("green");
-    w3.setWidth(100);
-    w3.setHeight(150);
-    w3.setMarginLeft(20);
-
-    var w4 = new qx.ui.basic.Terminator;
-    
-    w4.setBackgroundColor("purple");
-    w4.setWidth(100);
-    w4.setHeight(20);
-    
-    var w5 = new qx.ui.basic.Terminator;
-    
-    w5.setBackgroundColor("yellow");
-    w5.setWidth(50);
-    w5.setHeight(80);
-    
-    var w6 = new qx.ui.basic.Terminator;
-    
-    w6.setBackgroundColor("red");
-    w6.setWidth(400);
-    w6.setHeight(50);     
-    
-    var i1 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-    var i2 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-    
-    i2.setResizeToInner(true);
-       
-    var c1 = new qx.ui.basic.Label("Hello World");
-    var c2 = new qx.ui.basic.Label("<ol><li>Simple HTML List</li><li>with one</li><li>and another item</li></ol>");
-    
-    var a1 = new qx.ui.form.Button("Press", "icon/16/apps/preferences-desktop-multimedia.png");
-
-
-    flow1.add(w1, i1, w2, w3, a1, c2, w4, i2, w5, c1, w6);
-    
-    
-    
-    
-    
-    w1.addEventListener("click", function(e) {
-      this.setMaxWidth(this.getMaxWidth() == 50 ? null : 50);
-    });
-    
-    w2.addEventListener("click", function(e)
-    {
-      if (this.getWidth() == 200)
-      {
-        this.setWidth(100); 
-        this.setHeight(200);
-      }
-    else
-      {
-        this.setWidth(200);
-        this.setHeight(50);
-      };
-    });
-    
-    i1.addEventListener("click", function(e) {
-      this.setSource(this.getSource() == "icon/32/apps/accessories-clock.png" ? "icon/128/apps/accessories-clock.png" : "icon/32/apps/accessories-clock.png");
-    });
-    
-    i2.addEventListener("click", function(e)
-    {
-      this.setWidth(this.getWidth() == "auto" ? 128 : "auto");
-      this.setHeight(this.getHeight() == "auto" ? 128 : "auto");
-    });
-    
-    c1.addEventListener("click", function(e) {
-      this.setHtml(this.getHtml() == "Hello World" ? "Yeah, qooxdoo is great" : "Hello World");
-    });
-    
-    
-    
-    
-    // *************************************************************
-    
-    var controlBox = new qx.ui.layout.VerticalBoxLayout;
-    
-    controlBox.setLeft(20);
-    controlBox.setBottom(48);
-    controlBox.setRight(335);
-    controlBox.setHeight("auto");
-    controlBox.setBorder(qx.renderer.border.BorderPresets.getInstance().groove);
-    controlBox.setSpacing(4);
-    controlBox.setPadding(8);
-    
-    d.add(controlBox);
-    
-    
-    
-    
-    var cc0 = new qx.ui.basic.Label("Spacing: ");
-    cc0.setWidth(50);
-    
-    var bc0 = new qx.ui.form.Button("0x0", "icon/16/actions/dialog-ok.png");
-    var bc1 = new qx.ui.form.Button("4x4", "icon/16/actions/dialog-ok.png");
-    var bc2 = new qx.ui.form.Button("8x8", "icon/16/actions/dialog-ok.png");
-    var bc3 = new qx.ui.form.Button("20x20", "icon/16/actions/dialog-ok.png");
-    var bc4 = new qx.ui.form.Button("0x10", "icon/16/actions/dialog-ok.png");
-    var bc5 = new qx.ui.form.Button("10x0", "icon/16/actions/dialog-ok.png");
-    
-    bc0.addEventListener("execute", function(e) {
-      flow1.setHorizontalSpacing(0);
-      flow1.setVerticalSpacing(0);
-    });
-
-    bc1.addEventListener("execute", function(e) {
-      flow1.setHorizontalSpacing(4);
-      flow1.setVerticalSpacing(4);
-    });
-
-    bc2.addEventListener("execute", function(e) {
-      flow1.setHorizontalSpacing(8);
-      flow1.setVerticalSpacing(8);
-    });
-
-    bc3.addEventListener("execute", function(e) {
-      flow1.setHorizontalSpacing(20);
-      flow1.setVerticalSpacing(20);
-    });
-
-    bc4.addEventListener("execute", function(e) {
-      flow1.setHorizontalSpacing(0);
-      flow1.setVerticalSpacing(10);
-    });
-
-    bc5.addEventListener("execute", function(e) {
-      flow1.setHorizontalSpacing(10);
-      flow1.setVerticalSpacing(0);
-    });
-    
-    var hc0 = new qx.ui.layout.HorizontalBoxLayout;
-    
-    hc0.add(cc0, bc0, bc1, bc2, bc3, bc4, bc5);
-    hc0.setVerticalChildrenAlign("middle");
-    hc0.setHeight("auto");
-    
-    controlBox.add(hc0);
-    
-    
-    
-    
-    
-    
-    var cr0 = new qx.ui.basic.Label("Order: ");
-    cr0.setWidth(50);
-    
-    var br0 = new qx.ui.form.Button("Default", "icon/16/actions/dialog-ok.png");
-    var br1 = new qx.ui.form.Button("Reversed", "icon/16/actions/dialog-ok.png");    
-    
-    br0.addEventListener("execute", function(e) {
-      flow1.setReverseChildrenOrder(false);
-    });
-    
-    br1.addEventListener("execute", function(e) {
-      flow1.setReverseChildrenOrder(true);
-    });   
-    
-    
-    
-    var hc1 = new qx.ui.layout.HorizontalBoxLayout;
-    
-    hc1.add(cr0, br0, br1);
-    hc1.setVerticalChildrenAlign("middle");
-    hc1.setHeight("auto");
-    
-    controlBox.add(hc1);
-    
-    
-    
-    
-    
-    
-    
-    var ca0 = new qx.ui.basic.Label("Children: ");
-    ca0.setWidth(50);
-    
-    var ba0 = new qx.ui.form.Button("New Atom", "icon/16/actions/dialog-ok.png");
-    var ba1 = new qx.ui.form.Button("New Image", "icon/16/actions/dialog-ok.png");    
-    var ba2 = new qx.ui.form.Button("New Atom to #3", "icon/16/actions/dialog-ok.png");    
-    var ba3 = new qx.ui.form.Button("New Image to #6", "icon/16/actions/dialog-ok.png");    
-    var ba4 = new qx.ui.form.Button("Remove First", "icon/16/actions/dialog-ok.png");    
-    
-    ba0.addEventListener("execute", function(e) {
-      flow1.add(new qx.ui.basic.Atom("New Atom", "icon/16/places/services.png"));
-    });
-    
-    ba1.addEventListener("execute", function(e) {
-      flow1.add(new qx.ui.basic.Image("icon/64/apps/accessories-disk-usage.png"));
-    });   
-    
-    ba2.addEventListener("execute", function(e) {
-      flow1.addAt(new qx.ui.basic.Atom("New Atom", "icon/16/apps/preferences-desktop-multimedia.png"), 3);
-    });  
-    
-    ba3.addEventListener("execute", function(e) {
-      flow1.addAt(new qx.ui.basic.Image("icon/64/actions/format-color.png"), 6);
-    });  
-    
-    ba4.addEventListener("click", function(e) {
-      flow1.remove(flow1.getFirstChild());
-    });              
-    
-    var ha1 = new qx.ui.layout.HorizontalBoxLayout;
-    
-    ha1.add(ca0, ba0, ba1, ba2, ba3, ba4);
-    ha1.setVerticalChildrenAlign("middle");
-    ha1.setHeight("auto");
-    
-    controlBox.add(ha1);   
-    
-    
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/FocusManager_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/FocusManager_1.html
deleted file mode 100644 (file)
index 772718a..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Some tests for some of the most used properties of qx.ui.basic.Terminator (coordinates, dimensions, backgroundColor, opacity, ...).</p>
-    <p>Also here are the first test of some widgets which extend qx.ui.basic.Terminator: qx.ui.form.TextField and qx.ui.form.PasswordField. These extended
-    widgets also interacts like the basic QxTerminators with the qx.event.handler.FocusHandler.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var c1 = new qx.ui.basic.Terminator;
-    d.add(c1);
-
-    c1.setTabIndex(1);
-    c1.setHeight(60);
-    c1.setWidth(60);
-    c1.setTop(48);
-    c1.setLeft(20);
-    c1.setBackgroundColor("blue");
-    c1.setOpacity(0.5);
-
-    c1.addEventListener("keydown", function(e){
-      if (e.getKeyIdentifier() != "Space") {
-        return;
-      };
-
-      this.setBackgroundColor("rgb(" + Math.round(Math.random()*255) + "," + Math.round(Math.random()*255) + "," + Math.round(Math.random()*255) + ")");
-    });
-
-
-    var c2 = new qx.ui.basic.Terminator;
-    d.add(c2);
-
-    c2.setTabIndex(2);
-    c2.setHeight(60);
-    c2.setWidth(60);
-    c2.setTop(68);
-    c2.setLeft(40);
-    c2.setBackgroundColor("orange");
-    c2.setOpacity(0.5);
-
-    c2.addEventListener("keydown", function(e){
-      if (e.getKeyIdentifier() != "Space") {
-        return;
-      };
-
-      this.setBackgroundColor("rgb(" + Math.round(Math.random()*255) + "," + Math.round(Math.random()*255) + "," + Math.round(Math.random()*255) + ")");
-    });
-
-
-    var t1 = new qx.ui.form.TextField;
-    t1.setValue("textfield");
-    t1.setTop(140);
-    t1.setLeft(20);
-    t1.setTabIndex(3);
-
-    d.add(t1);
-
-
-
-    var t2 = new qx.ui.form.PasswordField;
-    t2.setValue("passwordfield");
-    t2.setTop(170);
-    t2.setLeft(20);
-    t2.setTabIndex(4);
-
-    d.add(t2);
-
-
-    var t3 = new qx.ui.form.TextArea;
-    t3.setValue("textarea");
-    t3.setTop(200);
-    t3.setLeft(20);
-    t3.setWidth(300);
-    t3.setHeight(60);
-    t3.setTabIndex(5);
-
-    d.add(t3);
-
-
-    var t4 = new qx.ui.form.TextField;
-    t4.setValue("textfield");
-    t4.setTop(300);
-    t4.setLeft(20);
-    t4.setWidth(200);
-    t4.setMaxLength(100);
-    t4.setReadOnly(true);
-    t4.setTabIndex(6);
-
-    d.add(t4);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Font_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Font_1.html
deleted file mode 100644 (file)
index e63a0fe..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing qx.renderer.font.Font object for QxLabels inside QxAtoms.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var f1 = new qx.ui.layout.CanvasLayout;
-   
-    var a1 = new qx.ui.basic.Atom("Hello World");
-    
-    var b1 = new qx.ui.form.Button("Serif, 16px");
-    var b2 = new qx.ui.form.Button("Serif, 24px");
-    var b3 = new qx.ui.form.Button("Sans Serif, 16px");
-    var b4 = new qx.ui.form.Button("Sans Serif, 24px");
-    
-    b1.addEventListener("execute", function() {
-      a1.getLabelObject().setFont("16px serif");
-    });
-    
-    b2.addEventListener("execute", function() {
-      a1.getLabelObject().setFont("24px serif");
-    });
-
-    b3.addEventListener("execute", function() {
-      a1.getLabelObject().setFont("16px sans-serif");
-    });
-
-    b4.addEventListener("execute", function() {
-      a1.getLabelObject().setFont("24px sans-serif");
-    });
-
-    f1.setDimension("auto", "auto");
-    f1.setLocation(20, 48);
-    f1.setBorder("1px solid red");
-    
-    a1.setLocation(0, 0);
-    a1.getLabelObject().setFont("16px serif");
-    
-    b1.setLocation(200, 48);
-    b2.setLocation(200, 78);
-    b3.setLocation(200, 108);
-    b4.setLocation(200, 138);
-    
-    f1.add(a1);
-    qx.ui.core.ClientDocument.getInstance().add(f1, b1, b2, b3, b4);    
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/FormUtils_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/FormUtils_1.html
deleted file mode 100644 (file)
index 8aa4c89..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing qx.html.Form</p>
-  </div>
-
-  <form id="mainform" style="position: absolute; left:300px; top: 48px">
-    <fieldset>
-      <legend>Basics</legend>
-      <input type="text" name="givenname" value="Given Name"/>
-      <br/>
-      <input type="text" name="name" value="Name"/>
-      <br/>
-      <input type="password" name="password" value="Password"/>
-    </fieldset>
-    <br/>
-    <input type="checkbox" checked="checked" name="human" id="human" value="true"/>
-    <label for="human">Human</label>
-    <br/>
-    <input type="checkbox" name="old" id="old" value="true"/>
-    <label for="old">Old</label>
-    <br/>
-    <input type="radio" name="gender" checked="checked" value="male" id="male"/>
-    <label for="male">Male</label">
-    <br/>
-    <input type="radio" name="gender" value="female" id="female"/>
-    <label for="female">Female</label">
-    <br/>
-    <label for="color">Favorite Color (Single)</label>
-    <br/>
-    <select name="color" id="color">
-      <option value="red">Red</option>
-      <option value="blue">Blue</option>
-      <option value="green">Green</option>
-      <option value="yellow">Yellow</option>
-      <option value="black">Black</option>
-      <option value="white">White</option>
-    </select>
-    <br/>
-    <label for="pets">Your Pets (Multiple)</label>
-    <br/>
-    <select name="pets" id="pets" multiple="multiple" size="3">
-      <option value="dog">Dog</option>
-      <option value="cat">Cat</option>
-      <option value="bird">Bird</option>
-      <option value="rabbit">Rabbit</option>
-      <option value="hamster">Hamster</option>
-    </select>
-    <br/>
-    <input type="submit" value="Send Data"/>
-  </form>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var btn = new qx.ui.form.Button("Encode");
-    btn.setLocation(20, 48);
-    qx.ui.core.ClientDocument.getInstance().add(btn);
-
-    var area = new qx.ui.form.TextArea;
-    area.setLocation(20, 100);
-    area.setDimension(200, 100);
-    qx.ui.core.ClientDocument.getInstance().add(area);
-
-    qx.html.Form.bind(document.getElementById("mainform"), function() {
-      alert("Submitting Form Replacement...");
-    });
-
-    btn.addEventListener("execute", function() {
-      area.setValue(qx.html.Form.encodeForm(document.getElementById("mainform")));
-    });
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Gallery_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Gallery_2.html
deleted file mode 100644 (file)
index 3a3e2fb..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test file for qx.ui.embed.Gallery</p>
-  </div>
-
-  <style type="text/css">
-    .qx_ui_embed_Gallery .galleryFrame{
-      padding: 2px;
-    }
-
-    .qx_ui_embed_Gallery .galleryCell{
-      border: 1px solid #444;
-      background: #fff;
-      margin: 2px;
-      float: left;
-      overflow: hidden;
-
-      font-family: Tahoma, Verdana, sans-serif;
-      font-size: 10px;
-
-      cursor: default;
-
-      -moz-user-select: none;
-      user-select: none;
-    }
-
-    .qx_ui_embed_Gallery .galleryCell img{
-      vertical-align: bottom;
-      display: block;
-    }
-
-    .qx_ui_embed_Gallery .galleryCell .galleryTitle,
-    .qx_ui_embed_Gallery .galleryCell .galleryComment{
-      background: #eee;
-      padding: 3px 6px;
-      text-align: center;
-      cursor: default;
-      overflow: hidden;
-      white-space: nowrap;
-    }
-
-    .qx_ui_embed_Gallery .galleryCell .galleryTitle{
-      border-bottom: 1px solid #aaa;
-    }
-
-    .qx_ui_embed_Gallery .galleryCell .galleryComment{
-      border-top: 1px solid #aaa;
-    }
-
-    .qx_ui_embed_Gallery .galleryCell-Selected{
-      background: #DCE8F6;
-      border: 1px solid #2760A1;
-    }
-
-    .qx_ui_embed_Gallery .galleryCell-Selected .galleryTitle,
-    .qx_ui_embed_Gallery .galleryCell-Selected .galleryComment{
-      background: #9BBFE7;
-    }
-
-    .qx_ui_embed_Gallery .galleryCell-Selected .galleryTitle{
-      border-bottom: 1px dotted #2760A1;
-    }
-
-    .qx_ui_embed_Gallery .galleryCell-Selected .galleryComment{
-      border-top: 1px dotted #2760A1;
-    }
-
-
-    /* customize */
-
-    .qx_ui_embed_Gallery{
-      background: #fff;
-      padding: 5px;
-    }
-
-    .qx_ui_embed_Gallery .galleryCell{
-      margin: 5px;
-      border: 1px solid #DCDFE8;
-    }
-
-    .qx_ui_embed_Gallery .galleryCell-Selected{
-      border: 1px solid #5E6474;
-      background: #DADDE4;
-    }
-  </style>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function() 
-    {
-      var galleryList = [];
-
-      for (var i=0; i<100; i++)
-      {
-        galleryList.push({
-          display : "bmzN9ci5",
-          width : 350,
-          height : 350,
-          thumbWidth : 64,
-          thumbHeight : 64,
-          title : "gohome.png",
-          timestamp : Math.random().toString(),
-          comment : "Cool Comment",
-          id : "7686191121780974-10682",
-          src : qx.manager.object.AliasManager.getInstance().resolvePath("icon/64/devices/video-display.png")
-        });
-      };
-
-      var gallery = new qx.ui.embed.Gallery(galleryList);
-
-      gallery.setLeft(20);
-      gallery.setRight(335);
-      gallery.setTop(48);
-      gallery.setBottom(48);
-      gallery.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      gallery.setShowTitle(false);
-      gallery.setShowComment(false);
-      gallery.setDecorHeight(0);
-
-      qx.ui.core.ClientDocument.getInstance().add(gallery);
-    });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Gallery_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Gallery_3.html
deleted file mode 100644 (file)
index 0a91069..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test file for qx.ui.embed.Gallery, now with QxToolTips assigned.</p>
-    <button onclick="updateAdd()">Update Add</button>
-  </div>
-
-  <style type="text/css">
-    .qx_ui_embed_Gallery .galleryFrame{
-      padding: 2px;
-    }
-    
-    .qx_ui_embed_Gallery .galleryCell{
-      border: 1px solid #444;
-      background: #fff;
-      margin: 2px;
-      float: left;
-      overflow: hidden;
-    
-      font-family: Tahoma, Verdana, sans-serif;
-      font-size: 10px;
-    
-      cursor: default;
-    
-      -moz-user-select: none;
-      user-select: none;
-    }
-    
-    .qx_ui_embed_Gallery .galleryCell img{
-      vertical-align: bottom;
-      display: block;
-    }
-    
-    .qx_ui_embed_Gallery .galleryCell .galleryTitle,
-    .qx_ui_embed_Gallery .galleryCell .galleryComment{
-      background: #eee;
-      padding: 3px 6px;
-      text-align: center;
-      cursor: default;
-      overflow: hidden;
-      white-space: nowrap;
-    }
-    
-    .qx_ui_embed_Gallery .galleryCell .galleryTitle{
-      border-bottom: 1px solid #aaa;
-    }
-    
-    .qx_ui_embed_Gallery .galleryCell .galleryComment{
-      border-top: 1px solid #aaa;
-    }
-    
-    .qx_ui_embed_Gallery .galleryCell-Selected{
-      background: #DCE8F6;
-      border: 1px solid #2760A1;
-    }
-    
-    .qx_ui_embed_Gallery .galleryCell-Selected .galleryTitle,
-    .qx_ui_embed_Gallery .galleryCell-Selected .galleryComment{
-      background: #9BBFE7;
-    }
-    
-    .qx_ui_embed_Gallery .galleryCell-Selected .galleryTitle{
-      border-bottom: 1px dotted #2760A1;
-    }
-    
-    .qx_ui_embed_Gallery .galleryCell-Selected .galleryComment{
-      border-top: 1px dotted #2760A1;
-    }
-
-    
-    /* customize */
-
-    .qx_ui_embed_Gallery{
-      background: #fff;
-      padding: 5px;
-    }
-
-    .qx_ui_embed_Gallery .galleryCell{
-      margin: 5px;
-      border: 1px solid #DCDFE8;
-    }
-
-    .qx_ui_embed_Gallery .galleryCell-Selected{
-      border: 1px solid #5E6474;
-      background: #DADDE4;
-    }
-  </style>
-
-  <script type="text/javascript">
-    var updateAdd;
-  
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var galleryList = [];
-
-      for (var i=0; i<100; i++)
-      {
-        galleryList.push({
-          display : "bmzN9ci5",
-          width : 350,
-          height : 350,
-          thumbWidth : 64,
-          thumbHeight : 64,
-          title : "gohome" + i + ".png",
-          timestamp : Math.random().toString(),
-          comment : "Cool Comment: " + i,
-          id : "7686191121780974-10682-" + i,
-          src : qx.manager.object.AliasManager.getInstance().resolvePath("icon/64/apps/graphics-image-viewer.png")
-        });
-      };
-
-      var gallery = new qx.ui.embed.Gallery(galleryList);
-
-      gallery.setLeft(20);
-      gallery.setRight(335);
-      gallery.setTop(48);
-      gallery.setBottom(48);
-      gallery.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      gallery.setShowTitle(false);
-      gallery.setShowComment(false);
-      gallery.setDecorHeight(0);
-
-      qx.ui.core.ClientDocument.getInstance().add(gallery);
-
-
-
-      var toolTip = new qx.ui.popup.ToolTip("Photo Details", "icon/32/actions/format-color.png");
-    gallery.setToolTip(toolTip);
-    
-      gallery.addEventListener("beforeToolTipAppear", function(e)
-    {
-      var vNode = e.getData();
-      var vEntry = this.getEntryByNode(vNode);
-
-        toolTip.getAtom().setLabel("<strong>" + vEntry.title + "</strong><br/>" + vEntry.comment);
-
-      this.setToolTip(toolTip);
-      });
-      
-      
-      updateAdd = function()
-      {
-        var galleryListUpdated = qx.lang.Array.copy(gallery.getList());
-        
-        for (var i=galleryListUpdated.length, j=i+10; i<j; i++)
-        {
-          galleryListUpdated.push({
-            display : "bmzN9ci5",
-            width : 350,
-            height : 350,
-            thumbWidth : 64,
-            thumbHeight : 64,
-            title : "gohome" + i + ".png",
-            timestamp : Math.random().toString(),
-            comment : "Cool Comment: " + i,
-            id : "7686191121780974-10682-" + i,
-            src : qx.manager.object.AliasManager.getInstance().resolvePath("icon/64/actions/format-color.png")
-          });
-        };      
-        
-        gallery.addFromUpdatedList(galleryListUpdated);
-      };
-      
-    });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Generate_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Generate_1.html
deleted file mode 100644 (file)
index 20d91f4..0000000
+++ /dev/null
@@ -1,267 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>qx.ui.basic.Atom is the parent class for buttons, menu entries, icons, checkboxes. While you can do,
-    you usually don't have to instantiate qx.ui.basic.Atom directly.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.lang.Array.merge = function(firstArray, secondArray)
-  {
-    var combinedArray = [], currentValue, indexInSecond;
-
-    for (var i=0, l=firstArray.length; i<l; i++) {
-      (indexInSecond = secondArray.indexOf(currentValue = firstArray[i])) == -1 ? combinedArray.push(currentValue) : qx.lang.Array.append(combinedArray, secondArray.splice(0, indexInSecond+1));
-    };
-
-    return combinedArray.concat(secondArray);
-  };
-
-  var a = [ "before3Mnu", "fileMnu", "editMnu", "saveMnu", "exitMenu" ];
-  var b = [ "before1Mnu", "before2Mnu", "fileMnu", "fooMnu", "editMnu", "saveMnu", "after1Mnu" ];
-
-  //alert(qx.lang.Array.merge(a, b));
-
-  var comp1 =
-  {
-    bars :
-    [
-      {
-        id : "menubar",
-        groups : [ "mainMp", "helpMp" ]
-      },
-
-      {
-        id : "toolbar",
-        groups : [ "openTb", "editTb" ]
-      }
-    ],
-
-    groups :
-    {
-      // Menu Bar Parts
-      "mainMp" : { commands : [ "fileBtn", "editBtn", "viewBtn" ] },
-      "helpMp" : { commands : [ "helpBtn" ] },
-
-      // Tool Bar Parts
-      "openTb" : { commands : [ "openBtn", "openRecentlyBtn" ] },
-      "editTb" : { commands : [ "cutBtn", "copyBtn", "pasteBtn" ] },
-
-      // Menu Content
-      "openMn" : { commands : [ "openBtn", "openWithBtn", "openRecentlyBtn" ] },
-      "saveMn" : { commands : [ "saveBtn", "saveAsBtn" ] },
-      "closeMn" : { commands : [ "closeBtn" ] },
-      "exitMn" : { commands : [ "exitBtn" ] },
-      "undoMn" : { commands : [ "undoBtn", "redoBtn" ] },
-      "editMn" : { commands : [ "cutBtn", "copyBtn", "pasteBtn", "deleteBtn", "clipboardBtn" ] },
-      "searchMn" : { commands : [ "searchBtn", "replaceBtn", "continueSearchBtn" ] },
-
-      "barsMn" : { commands : [] },
-      "fontMn" : { commands : [] },
-
-      "aboutMn" : { commands : [ "aboutBtn" ] },
-      "recentDocsMn" : { commands : [ "doc1Btn", "doc2Btn", "doc3Btn" ] }
-    },
-
-    menus :
-    {
-      "fileMnu" : { groups : [ "openMn", "saveMn", "closeMn", "exitMn" ] },
-      "editMnu" : { groups : [ "undoMn", "editMn", "searchMn" ] },
-      "viewMnu" : { groups : [ "barsMn", "fontMn" ] },
-      "helpMnu" : { groups : [ "aboutMn" ] },
-      "openRecentlyMnu" : { groups : [ "recentDocsMn" ] }
-    },
-
-    commands :
-    {
-      // Menu-Buttons
-      "fileBtn" : { title : "Datei", menu : "fileMnu" },
-      "editBtn" : { title : "Bearbeiten", menu : "editMnu" },
-      "viewBtn" : { title : "Ansicht", menu : "viewMnu" },
-      "helpBtn" : { title : "Hilfe", menu : "helpMnu" },
-
-      // Execute-Buttons: Open
-      "openBtn" : { title : "Öffnen", execute : "open" },
-      "openWithBtn" : { title : "Öffnen mit...", execute : "openWith" },
-      "openRecentlyBtn" : { title : "Letzte öffnen...", menu : "openRecentlyMnu" },
-
-      "saveBtn" : { title : "Speichern", execute : "save" },
-      "saveAsBtn" : { title : "Speichern als...", execute : "saveAs" },
-      "closeBtn" : { title : "Schließen", execute : "close" },
-      "exitBtn" : { title : "Beenden", execute : "exit" },
-
-      "undoBtn" : { title : "Rückgängig", execute : "undo" },
-      "redoBtn" : { title : "Wiederherstellen", execute : "redo" },
-      "deleteBtn" : { title : "Löschen", execute : "delete" },
-      "clipboardBtn" : { title : "Zwischenablage", execute : "clipboard" },
-
-      // Execute-Buttons: Search
-      "searchBtn" : { title : "Suchen", execute : "search" },
-      "replaceBtn" : { title : "Ersetzen", execute : "replace" },
-      "continueSearchBtn" : { title : "Weitersuchen", execute : "continuesearch" },
-
-      // Execute-Buttons: Edit
-      "cutBtn" : { title : "Ausschneiden", execute : "cut" },
-      "copyBtn" : { title : "Kopieren", execute : "copy" },
-      "pasteBtn" : { title : "Einfügen", execute : "paste" },
-
-      // Execute-Buttons: Info
-      "aboutBtn" : { title : "Über", execute : "about" },
-
-      "doc1Btn" : { title : "Dokument 1", execute : "openDoc1" },
-      "doc2Btn" : { title : "Dokument 2", execute : "openDoc2" },
-      "doc3Btn" : { title : "Dokument 3", execute : "openDoc3" }
-    }
-  };
-
-  var comp2 =
-  {
-  };
-
-
-
-
-
-
-  qx.OO.defineClass("qx.Generator", qx.core.Target,
-  function(comp)
-  {
-    this._comp = comp;
-
-  });
-
-  qx.Proto._generateMenu = function(id)
-  {
-    var menu = new qx.ui.menu.Menu;
-
-    var menuData = this._comp.menus[id];
-
-    if (!menuData) {
-      alert("Missing menu: " + id);
-    };
-
-    for (var i=0; i<menuData.groups.length; i++)
-    {
-      var groupcontent = this._comp.groups[menuData.groups[i]];
-
-      if (!groupcontent) {
-        alert("Missing menu: " + menuData.groups[i]);
-      };
-
-      var groupcommandlist = groupcontent.commands;
-
-      for (var j=0; j<groupcommandlist.length; j++)
-      {
-        var commandData = this._comp.commands[groupcommandlist[j]];
-
-        if (!commandData) {
-          alert("Missing command: " + groupcommandlist[j]);
-        };
-
-        if (commandData.menu)
-        {
-          var subMenu = this._generateMenu(commandData.menu);
-          var menuButton = new qx.ui.menu.Button(commandData.title, null, null, subMenu);
-
-        subMenu.addToDocument();
-        }
-        else
-        {
-          var menuButton = new qx.ui.menu.Button(commandData.title);
-        };
-
-        menu.add(menuButton);
-      };
-
-      if (i < menuData.groups.length-1) {
-        menu.add(new qx.ui.menu.Separator);
-      };
-    };
-
-    return menu;
-  };
-
-  qx.Proto.getWidget = function()
-  {
-    var can = new qx.ui.layout.CanvasLayout;
-    can.auto();
-    can.setLocation(100, 100);
-    can.setBorder("2px solid red");
-
-    for (var i=0; i<this._comp.bars.length; i++)
-    {
-      var tb = new qx.ui.toolbar.ToolBar;
-      tb.setLocation(0, (i * 50));
-      tb.setRight(0);
-      can.add(tb);
-
-
-
-      var bardata = this._comp.bars[i];
-      var groupdata = bardata.groups;
-
-      for(var j=0; j<groupdata.length; j++)
-      {
-        var part = new qx.ui.toolbar.Part;
-
-        var groupcontent = this._comp.groups[groupdata[j]];
-        var groupcommandlist = groupcontent.commands;
-
-        if (!groupcommandlist)
-        {
-          alert("Missing commands in: " + groupcontent);
-        };
-
-        for (var k=0; k<groupcommandlist.length; k++)
-        {
-          var commanddata = this._comp.commands[groupcommandlist[k]];
-
-          if (commanddata)
-          {
-            if (typeof commanddata.menu != "undefined")
-            {
-              menu = this._generateMenu(commanddata.menu);
-          menu.addToDocument();
-    
-              btn = new qx.ui.toolbar.MenuButton(commanddata.title, menu);
-            }
-            else
-            {
-              btn = new qx.ui.toolbar.Button(commanddata.title);
-            };
-
-            part.add(btn);
-          }
-          else
-          {
-            alert("Missing: " + groupcommandlist[k]);
-          };
-        };
-
-        tb.add(part);
-      };
-    };
-
-    return can;
-  };
-
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var c1 = new qx.Generator(comp1);
-    qx.ui.core.ClientDocument.getInstance().add(c1.getWidget());
-  });
-
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_1.html
deleted file mode 100644 (file)
index ff1a485..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test for qx.ui.layout.GridLayout.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var gl = new qx.ui.layout.GridLayout;
-    
-    gl.setLocation(20, 48);
-    gl.setDimension(462, 128);
-    gl.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    gl.setPadding(2, 4);
-    gl.setColumnCount(4);
-    gl.setRowCount(2);
-    
-    gl.setColumnWidth(0, 100);
-    gl.setColumnWidth(1, 200);
-    gl.setColumnWidth(2, 50);
-    gl.setColumnWidth(3, 100);
-    
-    gl.setRowHeight(0, 40);
-    gl.setRowHeight(1, 80);
-
-    qx.ui.core.ClientDocument.getInstance().add(gl);
-    
-    
-    
-    
-    
-    var term1 = new qx.ui.basic.Terminator;
-    term1.setBackgroundColor("yellow");
-    gl.add(term1, 0, 0);
-    
-    var term2 = new qx.ui.basic.Terminator;
-    term2.setBackgroundColor("red");
-    gl.add(term2, 1, 0);
-    
-    var term3 = new qx.ui.basic.Terminator;
-    term3.setBackgroundColor("green");
-    gl.add(term3, 2, 0);
-
-    var term4 = new qx.ui.basic.Terminator;
-    term4.setBackgroundColor("blue");
-    gl.add(term4, 3, 0);
-
-    var term5 = new qx.ui.basic.Terminator;
-    term5.setBackgroundColor("fuchsia");
-    gl.add(term5, 0, 1);
-    
-    var term6 = new qx.ui.basic.Terminator;
-    term6.setBackgroundColor("olive");
-    gl.add(term6, 1, 1);
-    
-    var term7 = new qx.ui.basic.Terminator;
-    term7.setBackgroundColor("maroon");
-    gl.add(term7, 2, 1);
-    
-    var term8 = new qx.ui.basic.Terminator;
-    term8.setBackgroundColor("navy");
-    gl.add(term8, 3, 1);            
-  });
-  </script> 
-
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_10.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_10.html
deleted file mode 100644 (file)
index 5ed1972..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Layout Manager: qx.ui.layout.GridLayout. Example image borrowed from <a href="http://winfx.msdn.microsoft.com/library/en-us/wcp_conceptual/winfx/layout/overviews/grid_ovw.asp">Microsoft's XAML Documentation</a>.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var img = new qx.ui.basic.Image("./image/grid_dialog_box.png");
-
-    img.setLocation(20, 48);
-
-    var gl = new qx.ui.layout.GridLayout;
-
-    gl.setLocation(46, 300);
-    gl.auto();
-    gl.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    gl.setPadding(4);
-
-    gl.setRowCount(4);
-    gl.setColumnCount(5);
-
-    gl.setHorizontalSpacing(4);
-    gl.setVerticalSpacing(4);
-
-    gl.setColumnWidth(0, 40);
-    gl.setColumnWidth(1, 35);
-    gl.setColumnWidth(2, 75);
-    gl.setColumnWidth(3, 75);
-    gl.setColumnWidth(4, 75);
-
-    gl.setRowHeight(0, 30);
-    gl.setRowHeight(1, 30);
-    gl.setRowHeight(2, 15);
-    gl.setRowHeight(3, 25);
-
-    gl.mergeCells(1, 0, 4, 1);
-    gl.mergeCells(1, 1, 4, 1);
-
-    gl.setRowVerticalAlignment(1, "middle");
-
-    qx.ui.core.ClientDocument.getInstance().add(img, gl);
-
-
-
-
-
-    var i1 = new qx.ui.basic.Image("icon/32/apps/preferences-desktop-wallpaper.png");
-    gl.add(i1, 0, 0);
-
-    var t1 = new qx.ui.basic.Label("Open:");
-    t1.setMnemonic("O");
-    t1.setSelectable(false);
-    gl.add(t1, 0, 1);
-
-    var b1 = new qx.ui.form.Button("OK");
-    b1.setAllowStretchX(true);
-    gl.add(b1, 2, 3);
-
-    var b2 = new qx.ui.form.Button("Cancel");
-    b2.setAllowStretchX(true);
-    gl.add(b2, 3, 3);
-
-    var b3 = new qx.ui.form.Button("Browse...");
-    b3.setAllowStretchX(true);
-    b3.getLabelObject().setMnemonic("B");
-    gl.add(b3, 4, 3);
-
-    var t2 = new qx.ui.basic.Label("Type in the name of a program, folder, document or<br/> Internet Resource and Windows will open it for you.");
-    t2.setSelectable(false);
-    gl.add(t2, 1, 0);
-
-    var c1 = new qx.ui.form.ComboBox();
-    c1.setEditable(true);
-    c1.setValue("d:\\local\\pictures");
-    c1.setWidth(null);
-    gl.add(c1, 1, 1);
-  });
-  </script>
-
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_11.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_11.html
deleted file mode 100644 (file)
index 83a08a6..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Layout Manager: qx.ui.layout.GridLayout. Example image borrowed from <a href="http://winfx.msdn.microsoft.com/library/en-us/wcp_conceptual/winfx/layout/overviews/grid_ovw.asp">Microsoft's XAML Documentation</a>.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var img = new qx.ui.basic.Image("./image/grid_dialog_box.png");
-
-    img.setLocation(20, 48);
-
-    var gl = new qx.ui.layout.GridLayout;
-
-    gl.setLocation(46, 300);
-    gl.auto();
-    gl.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    gl.setPadding(4);
-
-    gl.setRowCount(4);
-    gl.setColumnCount(5);
-
-    gl.setHorizontalSpacing(4);
-    gl.setVerticalSpacing(4);
-
-    gl.setColumnWidth(0, 40);
-    gl.setColumnWidth(1, 35);
-    gl.setColumnWidth(2, 75);
-    gl.setColumnWidth(3, 75);
-    gl.setColumnWidth(4, 75);
-
-    gl.setRowHeight(0, 30);
-    gl.setRowHeight(1, 30);
-    gl.setRowHeight(2, 15);
-    gl.setRowHeight(3, 25);
-
-    gl.mergeCells(1, 0, 4, 1);
-    gl.mergeCells(1, 1, 4, 1);
-
-    gl.setRowVerticalAlignment(1, "middle");
-
-    qx.ui.core.ClientDocument.getInstance().add(img, gl);
-
-
-
-
-
-    var i1 = new qx.ui.basic.Image("icon/32/apps/preferences-desktop-wallpaper.png");
-    gl.add(i1, 0, 0);
-
-    var t1 = new qx.ui.basic.Label("Open:");
-    t1.setMnemonic("O");
-    t1.setSelectable(false);
-    gl.add(t1, 0, 1);
-
-    var b1 = new qx.ui.form.Button("OK");
-    b1.setAllowStretchX(true);
-    gl.add(b1, 2, 3);
-
-    var b2 = new qx.ui.form.Button("Cancel");
-    b2.setAllowStretchX(true);
-    gl.add(b2, 3, 3);
-
-    var b3 = new qx.ui.form.Button("Browse...");
-    b3.setAllowStretchX(true);
-    b3.getLabelObject().setMnemonic("B");
-    gl.add(b3, 4, 3);
-
-    var t2 = new qx.ui.basic.Label("Type in the name of a program, folder, document or Internet Resource and Windows will open it for you.");
-    t2.setSelectable(false);
-    t2.setStyleProperty("whiteSpace", "normal");
-    gl.add(t2, 1, 0);
-
-    var c1 = new qx.ui.form.ComboBox();
-    c1.setEditable(true);
-    c1.setValue("d:\\local\\pictures");
-    c1.setWidth(null);
-    gl.add(c1, 1, 1);
-
-
-
-
-
-
-
-
-
-    var c1 = new qx.ui.form.Button("Make bigger");
-    var c2 = new qx.ui.form.Button("Make smaller");
-
-    c1.setLocation(500, 300);
-    c2.setLocation(500, 330);
-
-    qx.ui.core.ClientDocument.getInstance().add(c1, c2);
-
-    c1.addEventListener("execute", function(e) {
-      gl.setColumnWidth(2, 100);
-      gl.setColumnWidth(3, 100);
-      gl.setColumnWidth(4, 100);
-    });
-
-    c2.addEventListener("execute", function(e) {
-      gl.setColumnWidth(2, 75);
-      gl.setColumnWidth(3, 75);
-      gl.setColumnWidth(4, 75);
-    });
-
-  });
-  </script>
-
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_2.html
deleted file mode 100644 (file)
index 90a629e..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test for qx.ui.layout.GridLayout.</p>
-    <p>Added some own sizes and use more complex children.</p>
-    <p>The olive child has a width of 50% (which is related to the cell size here) and a horizontal alignment 'center'.</p>
-    <p>The navi child has a height of 20 pixel and is aligned to the bottom of the cell.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var gl = new qx.ui.layout.GridLayout;
-
-    gl.setLocation(20, 48);
-    gl.setDimension(462, 128);
-    gl.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    gl.setPadding(2, 4);
-    gl.setColumnCount(4);
-    gl.setRowCount(2);
-
-    gl.setColumnWidth(0, 100);
-    gl.setColumnWidth(1, 200);
-    gl.setColumnWidth(2, 50);
-    gl.setColumnWidth(3, 100);
-
-    gl.setRowHeight(0, 40);
-    gl.setRowHeight(1, 80);
-
-    qx.ui.core.ClientDocument.getInstance().add(gl);
-
-
-
-
-
-    var term1 = new qx.ui.basic.Terminator;
-    term1.setBackgroundColor("yellow");
-    gl.add(term1, 0, 0);
-
-    var term2 = new qx.ui.form.Button("Hello World", "icon/22/actions/format-color.png");
-    gl.add(term2, 1, 0);
-
-    var term3 = new qx.ui.basic.Terminator;
-    term3.setBackgroundColor("green");
-    term3.setWidth(100);
-    term3.setHeight(100);
-    term3.setBorder("1px solid black");
-    gl.add(term3, 2, 0);
-
-    var term4 = new qx.ui.basic.Terminator;
-    term4.setBackgroundColor("blue");
-    gl.add(term4, 3, 0);
-
-    var term5 = new qx.ui.basic.Terminator;
-    term5.setBackgroundColor("fuchsia");
-    gl.add(term5, 0, 1);
-
-    var term6 = new qx.ui.basic.Terminator;
-    term6.setBackgroundColor("olive");
-    term6.setWidth("50%");
-    term6.setHorizontalAlign("center");
-    gl.add(term6, 1, 1);
-
-    var term7 = new qx.ui.basic.Terminator;
-    term7.setBackgroundColor("maroon");
-    gl.add(term7, 2, 1);
-
-    var term8 = new qx.ui.basic.Terminator;
-    term8.setBackgroundColor("navy");
-    term8.setHeight(20);
-    term8.setVerticalAlign("bottom");
-    gl.add(term8, 3, 1);
-  });
-  </script>
-
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_3.html
deleted file mode 100644 (file)
index 4df2906..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test for qx.ui.layout.GridLayout.</p>
-    <p>Using auto dimensions for the grid.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var gl = new qx.ui.layout.GridLayout;
-    
-    gl.setLocation(20, 48);
-    gl.setDimension("auto", "auto");
-    gl.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    gl.setPadding(2, 4);
-    gl.setColumnCount(4);
-    gl.setRowCount(2);
-    gl.setHorizontalSpacing(4);
-    gl.setVerticalSpacing(8);
-    
-    gl.setColumnWidth(0, 100);
-    gl.setColumnWidth(1, 200);
-    gl.setColumnWidth(2, 50);
-    gl.setColumnWidth(3, 100);
-    
-    gl.setRowHeight(0, 40);
-    gl.setRowHeight(1, 80);
-
-    qx.ui.core.ClientDocument.getInstance().add(gl);
-    
-    
-    
-    
-    
-    var term1 = new qx.ui.basic.Terminator;
-    term1.setBackgroundColor("yellow");
-    gl.add(term1, 0, 0);
-    
-    var term2 = new qx.ui.basic.Terminator;
-    term2.setBackgroundColor("red");
-    gl.add(term2, 1, 0);
-    
-    var term3 = new qx.ui.basic.Terminator;
-    term3.setBackgroundColor("green");
-    gl.add(term3, 2, 0);
-
-    var term4 = new qx.ui.basic.Terminator;
-    term4.setBackgroundColor("blue");
-    gl.add(term4, 3, 0);
-
-    var term5 = new qx.ui.basic.Terminator;
-    term5.setBackgroundColor("fuchsia");
-    gl.add(term5, 0, 1);
-    
-    var term6 = new qx.ui.basic.Terminator;
-    term6.setBackgroundColor("olive");
-    gl.add(term6, 1, 1);
-    
-    var term7 = new qx.ui.basic.Terminator;
-    term7.setBackgroundColor("maroon");
-    gl.add(term7, 2, 1);
-    
-    var term8 = new qx.ui.basic.Terminator;
-    term8.setBackgroundColor("navy");
-    gl.add(term8, 3, 1);            
-  });
-  </script> 
-
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_4.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_4.html
deleted file mode 100644 (file)
index 7950352..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test for qx.ui.layout.GridLayout.</p>
-    <p>Using percents for children.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var gl = new qx.ui.layout.GridLayout;
-    
-    gl.setLocation(20, 48);
-    gl.setRight(335);
-    gl.setBottom(48);
-    gl.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    gl.setPadding(2, 4);
-    gl.setColumnCount(4);
-    gl.setRowCount(2);
-    
-    gl.setColumnWidth(0, "10%");
-    gl.setColumnWidth(1, "40%");
-    gl.setColumnWidth(2, "30%");
-    gl.setColumnWidth(3, "20%");
-    
-    gl.setRowHeight(0, "70%");
-    gl.setRowHeight(1, "30%");
-
-    qx.ui.core.ClientDocument.getInstance().add(gl);
-    
-    
-    
-    
-    
-    var term1 = new qx.ui.basic.Terminator;
-    term1.setBackgroundColor("yellow");
-    gl.add(term1, 0, 0);
-    
-    var term2 = new qx.ui.basic.Terminator;
-    term2.setBackgroundColor("red");
-    gl.add(term2, 1, 0);
-    
-    var term3 = new qx.ui.basic.Terminator;
-    term3.setBackgroundColor("green");
-    gl.add(term3, 2, 0);
-
-    var term4 = new qx.ui.basic.Terminator;
-    term4.setBackgroundColor("blue");
-    gl.add(term4, 3, 0);
-
-    var term5 = new qx.ui.basic.Terminator;
-    term5.setBackgroundColor("fuchsia");
-    gl.add(term5, 0, 1);
-    
-    var term6 = new qx.ui.basic.Terminator;
-    term6.setBackgroundColor("olive");
-    gl.add(term6, 1, 1);
-    
-    var term7 = new qx.ui.basic.Terminator;
-    term7.setBackgroundColor("maroon");
-    gl.add(term7, 2, 1);
-    
-    var term8 = new qx.ui.basic.Terminator;
-    term8.setBackgroundColor("navy");
-    gl.add(term8, 3, 1);            
-  });
-  </script> 
-
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_5.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_5.html
deleted file mode 100644 (file)
index 68d37b9..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>A simple form using qx.ui.layout.GridLayout</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var gl = new qx.ui.layout.GridLayout;
-    
-    gl.setLocation(20, 48);
-    gl.setDimension("auto", "auto");
-    gl.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    gl.setPadding(8);
-    gl.setColumnCount(2);
-    gl.setRowCount(7);
-    gl.setVerticalSpacing(4);
-    gl.setHorizontalSpacing(6);
-    
-    gl.setColumnWidth(0, 70);
-    gl.setColumnWidth(1, 180);
-    
-    gl.setColumnHorizontalAlignment(0, "right");
-    gl.setColumnVerticalAlignment(0, "middle");
-    
-    gl.setRowHeight(0, 20);
-    gl.setRowHeight(1, 20);
-    gl.setRowHeight(2, 20);
-    gl.setRowHeight(3, 20);
-    gl.setRowHeight(4, 20);
-    gl.setRowHeight(5, 70);
-    gl.setRowHeight(6, 20);
-
-    qx.ui.core.ClientDocument.getInstance().add(gl);
-    
-    var label1 = new qx.ui.basic.Label("Given Name");
-    var label2 = new qx.ui.basic.Label("Name");
-    var label3 = new qx.ui.basic.Label("City");
-    var label4 = new qx.ui.basic.Label("Country");
-    var label5 = new qx.ui.basic.Label("E-Mail");
-    var label6 = new qx.ui.basic.Label("Comment");
-    label6.setVerticalAlign("top");
-    
-    label6.setVerticalAlign("top");
-    
-    var input1 = new qx.ui.form.TextField;
-    var input2 = new qx.ui.form.TextField;
-    var input3 = new qx.ui.form.TextField;
-    var input4 = new qx.ui.form.TextField;
-    var input5 = new qx.ui.form.TextField;
-    var input6 = new qx.ui.form.TextArea;
-    var input7 = new qx.ui.form.Button("Submit", "icon/16/actions/dialog-ok.png");
-    
-    input7.setHorizontalAlign("right");
-    
-    gl.add(label1, 0, 0);
-    gl.add(input1, 1, 0);
-    gl.add(label2, 0, 1);
-    gl.add(input2, 1, 1);
-    gl.add(label3, 0, 2);
-    gl.add(input3, 1, 2);
-    gl.add(label4, 0, 3);
-    gl.add(input4, 1, 3);
-    gl.add(label5, 0, 4);
-    gl.add(input5, 1, 4);
-    gl.add(label6, 0, 5);
-    gl.add(input6, 1, 5);
-    gl.add(input7, 1, 6);
-  });
-  </script> 
-
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_6.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_6.html
deleted file mode 100644 (file)
index 786cd99..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>A simple form using qx.ui.layout.GridLayout</p>
-    <p>Using padding instead of spacing. Spacing is between the cells, padding is inside the cells. The same layout using padding is always bigger because the first and last cells are also affected with the padding to the edge.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var gl = new qx.ui.layout.GridLayout;
-    
-    gl.setLocation(20, 48);
-    gl.setDimension("auto", "auto");
-    gl.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    gl.setPadding(8);
-    gl.setColumnCount(2);
-    gl.setRowCount(7);
-    
-    gl.setColumnWidth(0, 76);
-    gl.setColumnWidth(1, 186);
-    
-    gl.setColumnHorizontalAlignment(0, "right");
-    gl.setColumnVerticalAlignment(0, "middle");
-    
-    gl.setRowHeight(0, 24);
-    gl.setRowHeight(1, 24);
-    gl.setRowHeight(2, 24);
-    gl.setRowHeight(3, 24);
-    gl.setRowHeight(4, 24);
-    gl.setRowHeight(5, 74);
-    gl.setRowHeight(6, 24);
-    
-    gl.setCellPaddingTop(2);
-    gl.setCellPaddingRight(3);
-    gl.setCellPaddingBottom(2);
-    gl.setCellPaddingLeft(3);
-    
-    /* 
-    
-    // the same like the above, but more local
-    gl.setColumnPaddingTop(0, 2);
-    gl.setColumnPaddingRight(0, 3);
-    gl.setColumnPaddingBottom(0, 2);
-    gl.setColumnPaddingLeft(0, 3);
-
-    gl.setColumnPaddingTop(1, 2);
-    gl.setColumnPaddingRight(1, 3);
-    gl.setColumnPaddingBottom(1, 2);
-    gl.setColumnPaddingLeft(1, 3);
-    
-    */    
-
-    qx.ui.core.ClientDocument.getInstance().add(gl);
-    
-    var label1 = new qx.ui.basic.Label("Given Name");
-    var label2 = new qx.ui.basic.Label("Name");
-    var label3 = new qx.ui.basic.Label("City");
-    var label4 = new qx.ui.basic.Label("Country");
-    var label5 = new qx.ui.basic.Label("E-Mail");
-    var label6 = new qx.ui.basic.Label("Comment");
-    
-    label6.setVerticalAlign("top");
-    
-    var input1 = new qx.ui.form.TextField;
-    var input2 = new qx.ui.form.TextField;
-    var input3 = new qx.ui.form.ComboBox;
-    var input4 = new qx.ui.form.TextField;
-    var input5 = new qx.ui.form.TextField;
-    var input6 = new qx.ui.form.TextArea;
-    var input7 = new qx.ui.form.Button("Submit", "icon/16/actions/dialog-ok.png");
-    
-    input3.add(new qx.ui.form.ListItem("New York"));
-    input3.add(new qx.ui.form.ListItem("Paris"));
-    input3.add(new qx.ui.form.ListItem("Sydney"));
-    input3.add(new qx.ui.form.ListItem("Berlin"));
-    input3.add(new qx.ui.form.ListItem("Washington"));
-    
-    input7.setHorizontalAlign("right");
-    
-    gl.add(label1, 0, 0);
-    gl.add(input1, 1, 0);
-    gl.add(label2, 0, 1);
-    gl.add(input2, 1, 1);
-    gl.add(label3, 0, 2);
-    gl.add(input3, 1, 2);
-    gl.add(label4, 0, 3);
-    gl.add(input4, 1, 3);
-    gl.add(label5, 0, 4);
-    gl.add(input5, 1, 4);
-    gl.add(label6, 0, 5);
-    gl.add(input6, 1, 5);
-    gl.add(input7, 1, 6);
-  });
-  </script> 
-
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_7.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_7.html
deleted file mode 100644 (file)
index 1b3b108..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test for qx.ui.layout.GridLayout. Now with cells which are merged with others.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var gl = new qx.ui.layout.GridLayout;
-    
-    gl.setLocation(20, 48);
-    gl.setDimension(462, 128);
-    gl.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    gl.setPadding(2, 4);
-    gl.setColumnCount(4);
-    gl.setRowCount(2);
-    
-    gl.setColumnWidth(0, 100);
-    gl.setColumnWidth(1, 200);
-    gl.setColumnWidth(2, 50);
-    gl.setColumnWidth(3, 100);
-    
-    gl.setRowHeight(0, 40);
-    gl.setRowHeight(1, 80);
-    
-    qx.ui.core.ClientDocument.getInstance().add(gl);
-    
-    // start-col, start-row, col-length, row-length
-    gl.debug("Merge: 1, 1, 2, 1");
-    gl.mergeCells(1, 1, 2, 1);   
-    
-    gl.debug("Span-Start (0, 1): " + gl.isSpanStart(0, 1));
-    gl.debug("Span-Start (0, 2): " + gl.isSpanStart(0, 2));
-    gl.debug("Span-Start (1, 1): " + gl.isSpanStart(1, 1));
-    gl.debug("Span-Start (1, 2): " + gl.isSpanStart(1, 2));
-    gl.debug("Span-Start (2, 1): " + gl.isSpanStart(2, 1));
-    gl.debug("Span-Start (2, 2): " + gl.isSpanStart(2, 2));
-    gl.debug("Span-Start (3, 1): " + gl.isSpanStart(3, 1));
-    gl.debug("Span-Start (3, 2): " + gl.isSpanStart(3, 2));
-    
-    gl.debug("Span-Cell (0, 1): " + gl.isSpanCell(0, 1));
-    gl.debug("Span-Cell (0, 2): " + gl.isSpanCell(0, 2));
-    gl.debug("Span-Cell (1, 1): " + gl.isSpanCell(1, 1));
-    gl.debug("Span-Cell (1, 2): " + gl.isSpanCell(1, 2));
-    gl.debug("Span-Cell (2, 1): " + gl.isSpanCell(2, 1));
-    gl.debug("Span-Cell (2, 2): " + gl.isSpanCell(2, 2));
-    gl.debug("Span-Cell (3, 1): " + gl.isSpanCell(3, 1));
-    gl.debug("Span-Cell (3, 2): " + gl.isSpanCell(3, 2));
-
-    gl.debug("Fill-Cell (0, 1): " + gl.isFillCell(0, 1));
-    gl.debug("Fill-Cell (0, 2): " + gl.isFillCell(0, 2));
-    gl.debug("Fill-Cell (1, 1): " + gl.isFillCell(1, 1));
-    gl.debug("Fill-Cell (1, 2): " + gl.isFillCell(1, 2));
-    gl.debug("Fill-Cell (2, 1): " + gl.isFillCell(2, 1));
-    gl.debug("Fill-Cell (2, 2): " + gl.isFillCell(2, 2));
-    gl.debug("Fill-Cell (3, 1): " + gl.isFillCell(3, 1));
-    gl.debug("Fill-Cell (3, 2): " + gl.isFillCell(3, 2));
-    
-    /*
-    // both should be impossible
-    gl.debug("Merge 1, 1, 2, 1");
-    gl.mergeCells(1, 1, 2, 1);
-
-    gl.debug("Merge 0, 0, 3, 4");
-    gl.mergeCells(0, 0, 3, 4);
-    */
-    
-    gl.debug("Merge 0, 0, 1, 2");
-    gl.mergeCells(0, 0, 1, 2);
-    
-    gl.debug("Merge 2, 0, 2, 1");
-    gl.mergeCells(2, 0, 2, 1);
-    
-    
-    
-    
-    var term1 = new qx.ui.basic.Terminator;
-    term1.setBackgroundColor("yellow");
-    gl.add(term1, 0, 0);
-    
-    var term2 = new qx.ui.basic.Terminator;
-    term2.setBackgroundColor("red");
-    gl.add(term2, 1, 0);
-    
-    var term3 = new qx.ui.basic.Terminator;
-    term3.setBackgroundColor("green");
-    gl.add(term3, 2, 0);
-
-    var term6 = new qx.ui.basic.Terminator;
-    term6.setBackgroundColor("olive");
-    gl.add(term6, 1, 1);    
-  
-    var term8 = new qx.ui.basic.Terminator;
-    term8.setBackgroundColor("navy");
-    gl.add(term8, 3, 1);            
-  });
-  </script> 
-
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_8.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_8.html
deleted file mode 100644 (file)
index 24a0ae9..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test for qx.ui.layout.GridLayout. Now with cells which are merged with others.</p>
-    <p>Added spacing in combination with spans.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var gl = new qx.ui.layout.GridLayout;
-    
-    gl.setLocation(20, 48);
-    gl.setDimension("auto", "auto");
-    gl.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    gl.setPadding(2, 4);
-    gl.setColumnCount(4);
-    gl.setRowCount(2);
-    gl.setHorizontalSpacing(10);
-    gl.setVerticalSpacing(10);
-    
-    gl.setColumnWidth(0, 100);
-    gl.setColumnWidth(1, 200);
-    gl.setColumnWidth(2, 50);
-    gl.setColumnWidth(3, 100);
-    
-    gl.setRowHeight(0, 40);
-    gl.setRowHeight(1, 80);
-    
-    qx.ui.core.ClientDocument.getInstance().add(gl);
-    
-    // start-col, start-row, col-length, row-length
-    gl.debug("Merge: 1, 1, 2, 1");
-    gl.mergeCells(1, 1, 2, 1);   
-    
-    gl.debug("Span-Start (0, 1): " + gl.isSpanStart(0, 1));
-    gl.debug("Span-Start (0, 2): " + gl.isSpanStart(0, 2));
-    gl.debug("Span-Start (1, 1): " + gl.isSpanStart(1, 1));
-    gl.debug("Span-Start (1, 2): " + gl.isSpanStart(1, 2));
-    gl.debug("Span-Start (2, 1): " + gl.isSpanStart(2, 1));
-    gl.debug("Span-Start (2, 2): " + gl.isSpanStart(2, 2));
-    gl.debug("Span-Start (3, 1): " + gl.isSpanStart(3, 1));
-    gl.debug("Span-Start (3, 2): " + gl.isSpanStart(3, 2));
-    
-    gl.debug("Span-Cell (0, 1): " + gl.isSpanCell(0, 1));
-    gl.debug("Span-Cell (0, 2): " + gl.isSpanCell(0, 2));
-    gl.debug("Span-Cell (1, 1): " + gl.isSpanCell(1, 1));
-    gl.debug("Span-Cell (1, 2): " + gl.isSpanCell(1, 2));
-    gl.debug("Span-Cell (2, 1): " + gl.isSpanCell(2, 1));
-    gl.debug("Span-Cell (2, 2): " + gl.isSpanCell(2, 2));
-    gl.debug("Span-Cell (3, 1): " + gl.isSpanCell(3, 1));
-    gl.debug("Span-Cell (3, 2): " + gl.isSpanCell(3, 2));
-
-    gl.debug("Fill-Cell (0, 1): " + gl.isFillCell(0, 1));
-    gl.debug("Fill-Cell (0, 2): " + gl.isFillCell(0, 2));
-    gl.debug("Fill-Cell (1, 1): " + gl.isFillCell(1, 1));
-    gl.debug("Fill-Cell (1, 2): " + gl.isFillCell(1, 2));
-    gl.debug("Fill-Cell (2, 1): " + gl.isFillCell(2, 1));
-    gl.debug("Fill-Cell (2, 2): " + gl.isFillCell(2, 2));
-    gl.debug("Fill-Cell (3, 1): " + gl.isFillCell(3, 1));
-    gl.debug("Fill-Cell (3, 2): " + gl.isFillCell(3, 2));
-    
-    /*
-    // both should be impossible
-    gl.debug("Merge 1, 1, 2, 1");
-    gl.mergeCells(1, 1, 2, 1);
-
-    gl.debug("Merge 0, 0, 3, 4");
-    gl.mergeCells(0, 0, 3, 4);
-    */
-    
-    gl.debug("Merge 0, 0, 1, 2");
-    gl.mergeCells(0, 0, 1, 2);
-    
-    gl.debug("Merge 2, 0, 2, 1");
-    gl.mergeCells(2, 0, 2, 1);
-    
-    
-    
-    
-    var term1 = new qx.ui.basic.Terminator;
-    term1.setBackgroundColor("yellow");
-    gl.add(term1, 0, 0);
-    
-    var term2 = new qx.ui.basic.Terminator;
-    term2.setBackgroundColor("red");
-    gl.add(term2, 1, 0);
-    
-    var term3 = new qx.ui.basic.Terminator;
-    term3.setBackgroundColor("green");
-    gl.add(term3, 2, 0);
-
-    var term6 = new qx.ui.basic.Terminator;
-    term6.setBackgroundColor("olive");
-    gl.add(term6, 1, 1);    
-  
-    var term8 = new qx.ui.basic.Terminator;
-    term8.setBackgroundColor("navy");
-    gl.add(term8, 3, 1);            
-  });
-  </script> 
-
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_9.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/GridLayout_9.html
deleted file mode 100644 (file)
index a37d5a0..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test for qx.ui.layout.GridLayout. Now with cells which are merged with others.</p>
-    <p>Added spacing in combination with spans.</p>
-    <p>Added padding in combination with spans.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var gl = new qx.ui.layout.GridLayout;
-    
-    gl.setLocation(20, 48);
-    gl.setDimension("auto", "auto");
-    gl.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    gl.setPadding(2, 4);
-    gl.setColumnCount(4);
-    gl.setRowCount(2);
-    gl.setHorizontalSpacing(10);
-    gl.setVerticalSpacing(10);
-    gl.setCellPaddingTop(4);
-    gl.setCellPaddingRight(4);
-    gl.setCellPaddingBottom(4);
-    gl.setCellPaddingLeft(4);
-    
-    gl.setColumnWidth(0, 100);
-    gl.setColumnWidth(1, 200);
-    gl.setColumnWidth(2, 50);
-    gl.setColumnWidth(3, 100);
-    
-    gl.setRowHeight(0, 40);
-    gl.setRowHeight(1, 80);
-    
-    qx.ui.core.ClientDocument.getInstance().add(gl);
-    
-    // start-col, start-row, col-length, row-length
-    gl.debug("Merge: 1, 1, 2, 1");
-    gl.mergeCells(1, 1, 2, 1);   
-    
-    gl.debug("Span-Start (0, 1): " + gl.isSpanStart(0, 1));
-    gl.debug("Span-Start (0, 2): " + gl.isSpanStart(0, 2));
-    gl.debug("Span-Start (1, 1): " + gl.isSpanStart(1, 1));
-    gl.debug("Span-Start (1, 2): " + gl.isSpanStart(1, 2));
-    gl.debug("Span-Start (2, 1): " + gl.isSpanStart(2, 1));
-    gl.debug("Span-Start (2, 2): " + gl.isSpanStart(2, 2));
-    gl.debug("Span-Start (3, 1): " + gl.isSpanStart(3, 1));
-    gl.debug("Span-Start (3, 2): " + gl.isSpanStart(3, 2));
-    
-    gl.debug("Span-Cell (0, 1): " + gl.isSpanCell(0, 1));
-    gl.debug("Span-Cell (0, 2): " + gl.isSpanCell(0, 2));
-    gl.debug("Span-Cell (1, 1): " + gl.isSpanCell(1, 1));
-    gl.debug("Span-Cell (1, 2): " + gl.isSpanCell(1, 2));
-    gl.debug("Span-Cell (2, 1): " + gl.isSpanCell(2, 1));
-    gl.debug("Span-Cell (2, 2): " + gl.isSpanCell(2, 2));
-    gl.debug("Span-Cell (3, 1): " + gl.isSpanCell(3, 1));
-    gl.debug("Span-Cell (3, 2): " + gl.isSpanCell(3, 2));
-
-    gl.debug("Fill-Cell (0, 1): " + gl.isFillCell(0, 1));
-    gl.debug("Fill-Cell (0, 2): " + gl.isFillCell(0, 2));
-    gl.debug("Fill-Cell (1, 1): " + gl.isFillCell(1, 1));
-    gl.debug("Fill-Cell (1, 2): " + gl.isFillCell(1, 2));
-    gl.debug("Fill-Cell (2, 1): " + gl.isFillCell(2, 1));
-    gl.debug("Fill-Cell (2, 2): " + gl.isFillCell(2, 2));
-    gl.debug("Fill-Cell (3, 1): " + gl.isFillCell(3, 1));
-    gl.debug("Fill-Cell (3, 2): " + gl.isFillCell(3, 2));
-    
-    /*
-    // both should be impossible
-    gl.debug("Merge 1, 1, 2, 1");
-    gl.mergeCells(1, 1, 2, 1);
-
-    gl.debug("Merge 0, 0, 3, 4");
-    gl.mergeCells(0, 0, 3, 4);
-    */
-    
-    gl.debug("Merge 0, 0, 1, 2");
-    gl.mergeCells(0, 0, 1, 2);
-    
-    gl.debug("Merge 2, 0, 2, 1");
-    gl.mergeCells(2, 0, 2, 1);
-    
-    
-    
-    
-    var term1 = new qx.ui.basic.Terminator;
-    term1.setBackgroundColor("yellow");
-    gl.add(term1, 0, 0);
-    
-    var term2 = new qx.ui.basic.Terminator;
-    term2.setBackgroundColor("red");
-    gl.add(term2, 1, 0);
-    
-    var term3 = new qx.ui.basic.Terminator;
-    term3.setBackgroundColor("green");
-    gl.add(term3, 2, 0);
-
-    var term6 = new qx.ui.basic.Terminator;
-    term6.setBackgroundColor("olive");
-    gl.add(term6, 1, 1);    
-  
-    var term8 = new qx.ui.basic.Terminator;
-    term8.setBackgroundColor("navy");
-    gl.add(term8, 3, 1);            
-  });
-  </script> 
-
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/History_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/History_1.html
deleted file mode 100644 (file)
index 3c137ad..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test the back button functionality of qooxdoo.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    function callback(e) {
-                       d.debug(e.getData());
-                       a1.setLabel("History event: " + e.getData());
-               }
-
-    var history = qx.client.History.getInstance();
-       
-               history.init();
-               history.addEventListener("request", callback);
-               
-               qx.client.Timer.once(function() {
-                       history.addToHistory("Juhu1", "Juhu1");
-               }, this, 300);
-               
-    qx.client.Timer.once(function() {
-                       history.addToHistory("Juhu2", "Juhu2");
-               }, this, 600);
-               
-               qx.client.Timer.once(function() {
-                       history.addToHistory("Juhu3", "Juhu3");
-               }, this, 900);
-
-    var t1 = new qx.ui.form.TextField();
-    t1.set({
-                       left: 20,
-                       top:48,
-                       height: 20,
-                       value: ""
-               });
-               
-               var a1 = new qx.ui.basic.Atom("");
-               a1.set({
-                       left: 20,
-                       top: 78,
-                       width: 230,
-                       height: 120,
-                       backgroundColor: "orange",
-                       border: qx.renderer.border.BorderPresets.getInstance().thinInset
-               });
-               
-               var b1 = new qx.ui.form.Button("add to history");
-               b1.set({
-                       top: 48,
-                       left: 150,
-                       height: 20,
-                       width: 100
-               });
-               b1.addEventListener("execute", function() {
-                       var data = t1.getValue();
-                       if (!data) return;
-                       t1.setValue("");
-                       qx.client.Timer.once(function() {
-                         history.addToHistory(data, data);
-                 }, this, 100);
-               });
-               
-               d.add(t1, a1, b1);
-               
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/HorizontalBoxLayout_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/HorizontalBoxLayout_1.html
deleted file mode 100644 (file)
index 52ea8c5..0000000
+++ /dev/null
@@ -1,1261 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    Tests for the new implementation of the qx.ui.layout.HorizontalBoxLayout widget.
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var cl_white = new qx.renderer.color.Color("white");
-    var cl_blue = new qx.renderer.color.Color("blue");
-    var cl_yellow = new qx.renderer.color.Color("yellow");
-    var cl_green = new qx.renderer.color.Color("green");
-    var cl_orange = new qx.renderer.color.Color("orange");
-    var cl_purple = new qx.renderer.color.Color("purple");
-    var cl_aqua = new qx.renderer.color.Color("aqua");
-    var cl_fuchsia = new qx.renderer.color.Color("fuchsia");
-
-
-    /* ***********************************************
-
-       EXAMPLE ONE:
-       LEFT ALIGN
-
-    *********************************************** */
-
-    var hbl1 = new qx.ui.layout.HorizontalBoxLayout;
-
-    hbl1.setTop(48);
-    hbl1.setLeft(20);
-    hbl1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl1.setHeight("auto");
-    hbl1.setRight(335);
-
-    hbl1.setSpacing(4);
-    hbl1.setPadding(8);
-    
-    hbl1.setVerticalChildrenAlign("bottom");
-    
-    
-    var w1_1 = new qx.ui.layout.CanvasLayout;
-    w1_1.setWidth(25);
-    w1_1.setHeight(25);
-    w1_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_1.setBackgroundColor(cl_white);
-    // w1_1.setMaxHeight(40);
-
-    var w1_2 = new qx.ui.layout.CanvasLayout;
-    w1_2.setWidth(25);
-    w1_2.setHeight(25);
-    w1_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_2.setBackgroundColor(cl_blue);
-    w1_2.setBottom(10);
-
-    var w1_3 = new qx.ui.layout.CanvasLayout;
-    w1_3.setWidth(25);
-    w1_3.setHeight("100%");
-    w1_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_3.setBackgroundColor(cl_yellow);
-
-    var w1_4 = new qx.ui.layout.CanvasLayout;
-    w1_4.setWidth(25);
-    w1_4.setHeight(25);
-    w1_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_4.setBackgroundColor(cl_green);
-
-    var w1_5 = new qx.ui.layout.CanvasLayout;
-    w1_5.setWidth(40);
-    // w1_5.setHeight(25);
-    w1_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_5.setBackgroundColor(cl_orange);
-
-    var w1_6 = new qx.ui.layout.CanvasLayout;
-    w1_6.setWidth(25);
-    w1_6.setHeight(25);
-    w1_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_6.setBackgroundColor(cl_purple);
-    w1_6.setTop(15);
-    w1_6.setLeft(-25);
-
-    var w1_7 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-
-    var w1_8 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-
-    var w1_9 = new qx.ui.layout.CanvasLayout;
-    w1_9.setWidth(25);
-    w1_9.setHeight(25);
-    w1_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_9.setBackgroundColor(cl_aqua);
-
-    var w1_10 = new qx.ui.layout.CanvasLayout;
-    w1_10.setWidth(25);
-    w1_10.setHeight(25);
-    w1_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_10.setBackgroundColor(cl_fuchsia);
-
-    var hbl1_click = 0;
-    hbl1.addEventListener("click", function(e) 
-    {
-      if (e.getTarget()!=this) {
-        return;
-      };
-      
-      switch(hbl1_click)
-      {
-        case 0:
-          this.setRight(null);
-          this.setWidth("auto");
-          break;
-          
-        case 1:
-          this.setHeight(30);
-          break;
-        
-        case 2:
-          this.setHeight(80);
-          break;
-          
-        case 3:
-          this.setHeight("auto");
-          break;
-          
-        case 4:
-          this.setWidth(200);
-          break;
-          
-        case 5:
-          this.setWidth(null);
-          this.setRight(335);
-          hbl1_click = 0;
-          return;        
-      };
-      
-      hbl1_click++;
-    });
-
-    w1_1.addEventListener("click", function(e) 
-    {
-      if (this.getWidth() == 25)
-      {
-        this.setWidth(65);
-        this.setHeight(65); 
-        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
-      }
-      else
-      {
-        this.setWidth(25);
-        this.setHeight(25);  
-        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      };      
-    });
-
-    w1_2.addEventListener("click", function(e) {
-      this.getMarginRight() == 0 ? this.setMarginRight(10) : this.setMarginRight(0);
-    });
-
-    w1_3.addEventListener("click", function(e) {
-      this.getMinWidth() == -Infinity ? this.setMinWidth(100) : this.setMinWidth(-Infinity);
-    });
-
-    w1_4.addEventListener("click", function(e) {
-      this.getWidth() == 25 ? this.setWidth(50) : this.setWidth(25);
-    });
-
-    w1_5.addEventListener("click", function(e) {
-      this.getWidth() == 40 ? this.setWidth(80) : this.setWidth(40);
-    });
-    
-    w1_6.addEventListener("click", function(e) {
-      this.getLeft() == -25 ? this.setLeft(25) : this.setLeft(-25);
-    });
-
-    w1_7.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/apps/accessories-clock.png" ? this.setSource("icon/64/apps/accessories-clock.png") : this.setSource("icon/32/apps/accessories-clock.png");
-    });
-    
-    w1_8.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/actions/format-color.png" ? this.setSource("icon/16/actions/format-color.png") : this.setSource("icon/32/actions/format-color.png");
-    });   
-    
-    w1_9.addEventListener("click", function(e) 
-    {
-      if (this.getTop() == null)
-      {
-        this.setTop(20);
-        this.setLeft(-10);
-      }
-      else
-      {
-        this.setTop(null);
-        this.setLeft(null);
-      };
-    });
-    
-    w1_10.addEventListener("click", function(e) 
-    {
-      if (this.getWidth() == 25)
-      {
-        this.setWidth(10);  
-        this.setHeight(10);
-        this.setLeft(-5);
-        this.setBottom(15);
-      }
-      else
-      {
-        this.setWidth(25);
-        this.setHeight(25);
-        this.setLeft(null);
-        this.setBottom(null);
-      };
-    });    
-
-
-
-    hbl1.add(w1_1, w1_2, w1_3, w1_4, w1_5, w1_6, w1_7, w1_8, w1_9, w1_10);
-    d.add(hbl1);
-
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE TWO:
-       RIGHT ALIGN
-
-    *********************************************** */
-
-    var hbl2 = new qx.ui.layout.HorizontalBoxLayout;
-
-    hbl2.setTop(138);
-    hbl2.setLeft(20);
-    hbl2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl2.setHeight("auto");
-    hbl2.setRight(335);
-
-    hbl2.setSpacing(4);
-    hbl2.setPadding(8);
-
-    hbl2.setHorizontalChildrenAlign("right");
-    hbl2.setVerticalChildrenAlign("middle");
-
-
-    var w2_1 = new qx.ui.layout.CanvasLayout;
-    w2_1.setWidth(25);
-    w2_1.setHeight(25);
-    w2_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_1.setBackgroundColor(cl_white);
-    // w2_1.setMaxHeight(40);
-
-    var w2_2 = new qx.ui.layout.CanvasLayout;
-    w2_2.setWidth(25);
-    w2_2.setHeight(25);
-    w2_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_2.setBackgroundColor(cl_blue);
-    w2_2.setBottom(10);
-
-    var w2_3 = new qx.ui.layout.CanvasLayout;
-    w2_3.setWidth(25);
-    w2_3.setHeight("100%");
-    w2_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_3.setBackgroundColor(cl_yellow);
-
-    var w2_4 = new qx.ui.layout.CanvasLayout;
-    w2_4.setWidth(25);
-    w2_4.setHeight(25);
-    w2_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_4.setBackgroundColor(cl_green);
-
-    var w2_5 = new qx.ui.layout.CanvasLayout;
-    w2_5.setWidth(40);
-    // w2_5.setHeight(25);
-    w2_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_5.setBackgroundColor(cl_orange);
-
-    var w2_6 = new qx.ui.layout.CanvasLayout;
-    w2_6.setWidth(25);
-    w2_6.setHeight(25);
-    w2_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_6.setBackgroundColor(cl_purple);
-    w2_6.setTop(15);
-    w2_6.setLeft(-25);    
-
-    var w2_7 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-
-    var w2_8 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-
-    var w2_9 = new qx.ui.layout.CanvasLayout;
-    w2_9.setWidth(25);
-    w2_9.setHeight(25);
-    w2_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_9.setBackgroundColor(cl_aqua);
-
-    var w2_10 = new qx.ui.layout.CanvasLayout;
-    w2_10.setWidth(25);
-    w2_10.setHeight(25);
-    w2_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_10.setBackgroundColor(cl_fuchsia);
-    w2_10.foo = true;
-
-
-    var hbl2_click = 0;
-    hbl2.addEventListener("click", function(e) 
-    {
-      if (e.getTarget()!=this) {
-        return;
-      };      
-      
-      switch(hbl2_click)
-      {
-        case 0:
-          this.setRight(null);
-          this.setWidth("auto");
-          break;
-          
-        case 1:
-          this.setHeight(30);
-          break;
-        
-        case 2:
-          this.setHeight(80);
-          break;
-          
-        case 3:
-          this.setHeight("auto");
-          break;
-          
-        case 4:
-          this.setWidth(200);
-          break;
-          
-        case 5:
-          this.setWidth(null);
-          this.setRight(335);
-          hbl2_click = 0;
-          return;        
-      };
-      
-      hbl2_click++;
-    });
-    
-    w2_1.addEventListener("click", function(e) 
-    {
-      if (this.getWidth() == 25)
-      {
-        this.setWidth(65);
-        this.setHeight(65); 
-        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
-      }
-      else
-      {
-        this.setWidth(25);
-        this.setHeight(25);  
-        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      };      
-    });
-
-    w2_2.addEventListener("click", function(e) {
-      this.getMarginRight() == 0 ? this.setMarginRight(10) : this.setMarginRight(0);
-    });
-
-    w2_3.addEventListener("click", function(e) {
-      this.getMinWidth() == -Infinity ? this.setMinWidth(100) : this.setMinWidth(-Infinity);
-    });
-
-    w2_4.addEventListener("click", function(e) {
-      this.getWidth() == 25 ? this.setWidth(50) : this.setWidth(25);
-    });
-
-    w2_5.addEventListener("click", function(e) {
-      this.getWidth() == 40 ? this.setWidth(80) : this.setWidth(40);
-    });
-    
-    w2_6.addEventListener("click", function(e) {
-      this.getLeft() == -25 ? this.setLeft(25) : this.setLeft(-25);
-    });
-
-    w2_7.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/apps/accessories-clock.png" ? this.setSource("icon/64/apps/accessories-clock.png") : this.setSource("icon/32/apps/accessories-clock.png");
-    });
-    
-    w2_8.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/actions/format-color.png" ? this.setSource("icon/16/actions/format-color.png") : this.setSource("icon/32/actions/format-color.png");
-    });   
-    
-    w2_9.addEventListener("click", function(e) 
-    {
-      if (this.getTop() == null)
-      {
-        this.setTop(20);
-        this.setLeft(-10);
-      }
-      else
-      {
-        this.setTop(null);
-        this.setLeft(null);
-      };
-    });
-    
-    w2_10.addEventListener("click", function(e) 
-    {
-      if (this.getWidth() == 25)
-      {
-        this.setWidth(10);  
-        this.setHeight(10);
-        this.setLeft(-5);
-        this.setBottom(15);
-      }
-      else
-      {
-        this.setWidth(25);
-        this.setHeight(25);
-        this.setLeft(null);
-        this.setBottom(null);
-      };
-    });
-
-
-
-    hbl2.add(w2_1, w2_2, w2_3, w2_4, w2_5, w2_6, w2_7, w2_8, w2_9, w2_10);
-    d.add(hbl2);
-
-
-    /* ***********************************************
-
-       EXAMPLE THREE:
-       CENTER ALIGN
-
-    *********************************************** */
-
-    var hbl3 = new qx.ui.layout.HorizontalBoxLayout;
-
-    hbl3.setTop(228);
-    hbl3.setLeft(20);
-    hbl3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl3.setHeight("auto");
-    hbl3.setRight(335);
-
-    hbl3.setSpacing(4);
-    hbl3.setPadding(8);
-
-    hbl3.setHorizontalChildrenAlign("center");
-
-
-
-    var w3_1 = new qx.ui.layout.CanvasLayout;
-    w3_1.setWidth(25);
-    w3_1.setHeight(25);
-    w3_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_1.setBackgroundColor(cl_white);
-    // w3_1.setMaxHeight(40);
-
-    var w3_2 = new qx.ui.layout.CanvasLayout;
-    w3_2.setWidth(25);
-    w3_2.setHeight(25);
-    w3_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_2.setBackgroundColor(cl_blue);
-    w3_2.setBottom(10);
-
-    var w3_3 = new qx.ui.layout.CanvasLayout;
-    w3_3.setWidth(25);
-    w3_3.setHeight("100%");
-    w3_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_3.setBackgroundColor(cl_yellow);
-
-    var w3_4 = new qx.ui.layout.CanvasLayout;
-    w3_4.setWidth(25);
-    w3_4.setHeight(25);
-    w3_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_4.setBackgroundColor(cl_green);
-
-    var w3_5 = new qx.ui.layout.CanvasLayout;
-    w3_5.setWidth(40);
-    // w3_5.setHeight(25);
-    w3_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_5.setBackgroundColor(cl_orange);
-
-    var w3_6 = new qx.ui.layout.CanvasLayout;
-    w3_6.setWidth(25);
-    w3_6.setHeight(25);
-    w3_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_6.setBackgroundColor(cl_purple);
-    w3_6.setTop(15);
-    w3_6.setLeft(-25);    
-
-    var w3_7 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-
-    var w3_8 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-
-    var w3_9 = new qx.ui.layout.CanvasLayout;
-    w3_9.setWidth(25);
-    w3_9.setHeight(25);
-    w3_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_9.setBackgroundColor(cl_aqua);
-
-    var w3_10 = new qx.ui.layout.CanvasLayout;
-    w3_10.setWidth(25);
-    w3_10.setHeight(25);
-    w3_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_10.setBackgroundColor(cl_fuchsia);
-
-
-    var hbl3_click = 0;
-    hbl3.addEventListener("click", function(e) 
-    {
-      if (e.getTarget()!=this) {
-        return;
-      };      
-      
-      switch(hbl3_click)
-      {
-        case 0:
-          this.setRight(null);
-          this.setWidth("auto");
-          break;
-          
-        case 1:
-          this.setHeight(30);
-          break;
-        
-        case 2:
-          this.setHeight(80);
-          break;
-          
-        case 3:
-          this.setHeight("auto");
-          break;
-          
-        case 4:
-          this.setWidth(200);
-          break;
-          
-        case 5:
-          this.setWidth(null);
-          this.setRight(335);
-          hbl3_click = 0;
-          return;        
-      };
-      
-      hbl3_click++;
-    });
-
-    w3_1.addEventListener("click", function(e) 
-    {
-      if (this.getWidth() == 25)
-      {
-        this.setWidth(65);
-        this.setHeight(65); 
-        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
-      }
-      else
-      {
-        this.setWidth(25);
-        this.setHeight(25);  
-        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      };      
-    });
-
-    w3_2.addEventListener("click", function(e) {
-      this.getMarginRight() == 0 ? this.setMarginRight(10) : this.setMarginRight(0);
-    });
-
-    w3_3.addEventListener("click", function(e) {
-      this.getMinWidth() == -Infinity ? this.setMinWidth(100) : this.setMinWidth(-Infinity);
-    });
-
-    w3_4.addEventListener("click", function(e) {
-      this.getWidth() == 25 ? this.setWidth(50) : this.setWidth(25);
-    });
-
-    w3_5.addEventListener("click", function(e) {
-      this.getWidth() == 40 ? this.setWidth(80) : this.setWidth(40);
-    });
-    
-    w3_6.addEventListener("click", function(e) {
-      this.getLeft() == -25 ? this.setLeft(25) : this.setLeft(-25);
-    });
-
-    w3_7.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/apps/accessories-clock.png" ? this.setSource("icon/64/apps/accessories-clock.png") : this.setSource("icon/32/apps/accessories-clock.png");
-    });
-    
-    w3_8.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/actions/format-color.png" ? this.setSource("icon/16/actions/format-color.png") : this.setSource("icon/32/actions/format-color.png");
-    });   
-    
-    w3_9.addEventListener("click", function(e) 
-    {
-      if (this.getTop() == null)
-      {
-        this.setTop(20);
-        this.setLeft(-10);
-      }
-      else
-      {
-        this.setTop(null);
-        this.setLeft(null);
-      };
-    });
-    
-    w3_10.addEventListener("click", function(e) 
-    {
-      if (this.getWidth() == 25)
-      {
-        this.setWidth(10);  
-        this.setHeight(10);
-        this.setLeft(-5);
-        this.setBottom(15);
-      }
-      else
-      {
-        this.setWidth(25);
-        this.setHeight(25);
-        this.setLeft(null);
-        this.setBottom(null);
-      };
-    });
-
-
-
-    hbl3.add(w3_1, w3_2, w3_3, w3_4, w3_5, w3_6, w3_7, w3_8, w3_9, w3_10);
-    d.add(hbl3);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE FOUR:
-       LEFT ALIGN, REVERTED CHILDREN ORDER
-
-    *********************************************** */
-
-    var hbl4 = new qx.ui.layout.HorizontalBoxLayout;
-
-    hbl4.setTop(318);
-    hbl4.setLeft(20);
-    hbl4.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl4.setWidth(null);
-    hbl4.setRight(335);
-
-    hbl4.setSpacing(4);
-    hbl4.setPadding(8);
-    hbl4.setReverseChildrenOrder(true);
-    hbl4.setVerticalChildrenAlign("bottom");
-    
-    hbl4.setHeight(80);
-
-
-
-    var w4_1 = new qx.ui.layout.CanvasLayout;
-    w4_1.setWidth(25);
-    w4_1.setHeight(25);
-    w4_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_1.setBackgroundColor(cl_white);
-    // w4_1.setMaxHeight(40);
-
-    var w4_2 = new qx.ui.layout.CanvasLayout;
-    w4_2.setWidth(25);
-    w4_2.setHeight(25);
-    w4_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_2.setBackgroundColor(cl_blue);
-    w4_2.setBottom(10);
-
-    var w4_3 = new qx.ui.layout.CanvasLayout;
-    w4_3.setWidth(25);
-    w4_3.setHeight("100%");
-    w4_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_3.setBackgroundColor(cl_yellow);
-
-    var w4_4 = new qx.ui.layout.CanvasLayout;
-    w4_4.setWidth(25);
-    w4_4.setHeight(25);
-    w4_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_4.setBackgroundColor(cl_green);
-
-    var w4_5 = new qx.ui.layout.CanvasLayout;
-    w4_5.setWidth(40);
-    // w4_5.setHeight(25);
-    w4_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_5.setBackgroundColor(cl_orange);
-
-    var w4_6 = new qx.ui.layout.CanvasLayout;
-    w4_6.setWidth(25);
-    w4_6.setHeight(25);
-    w4_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_6.setBackgroundColor(cl_purple);
-    w4_6.setTop(15);
-    w4_6.setLeft(-25);    
-
-    var w4_7 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-
-    var w4_8 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-
-    var w4_9 = new qx.ui.layout.CanvasLayout;
-    w4_9.setWidth(25);
-    w4_9.setHeight(25);
-    w4_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_9.setBackgroundColor(cl_aqua);
-
-    var w4_10 = new qx.ui.layout.CanvasLayout;
-    w4_10.setWidth(25);
-    w4_10.setHeight(25);
-    w4_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_10.setBackgroundColor(cl_fuchsia);
-
-
-    var hbl4_click = 0;
-    hbl4.addEventListener("click", function(e) 
-    {
-      if (e.getTarget()!=this) {
-        return;
-      };      
-      
-      switch(hbl4_click)
-      {
-        case 0:
-          this.setRight(null);
-          this.setWidth("auto");
-          break;
-          
-        case 1:
-          this.setHeight(30);
-          break;
-        
-        case 2:
-          this.setHeight("auto");
-          break;
-          
-        case 3:
-          this.setHeight(80);
-          break;
-          
-        case 4:
-          this.setWidth(200);
-          break;
-          
-        case 5:
-          this.setWidth(null);
-          this.setRight(335);
-          hbl4_click = 0;
-          return;        
-      };
-      
-      hbl4_click++;
-    });
-
-    w4_1.addEventListener("click", function(e) 
-    {
-      if (this.getWidth() == 25)
-      {
-        this.setWidth(65);
-        this.setHeight(65); 
-        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
-      }
-      else
-      {
-        this.setWidth(25);
-        this.setHeight(25);  
-        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      };      
-    });
-
-    w4_2.addEventListener("click", function(e) {
-      this.getMarginRight() == 0 ? this.setMarginRight(10) : this.setMarginRight(0);
-    });
-
-    w4_3.addEventListener("click", function(e) {
-      this.getMinWidth() == -Infinity ? this.setMinWidth(100) : this.setMinWidth(-Infinity);
-    });
-
-    w4_4.addEventListener("click", function(e) {
-      this.getWidth() == 25 ? this.setWidth(50) : this.setWidth(25);
-    });
-
-    w4_5.addEventListener("click", function(e) {
-      this.getWidth() == 40 ? this.setWidth(80) : this.setWidth(40);
-    });
-    
-    w4_6.addEventListener("click", function(e) {
-      this.getLeft() == -25 ? this.setLeft(25) : this.setLeft(-25);
-    });
-
-    w4_7.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/apps/accessories-clock.png" ? this.setSource("icon/64/apps/accessories-clock.png") : this.setSource("icon/32/apps/accessories-clock.png");
-    });
-    
-    w4_8.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/actions/format-color.png" ? this.setSource("icon/16/actions/format-color.png") : this.setSource("icon/32/actions/format-color.png");
-    });   
-    
-    w4_9.addEventListener("click", function(e) 
-    {
-      if (this.getTop() == null)
-      {
-        this.setTop(20);
-        this.setLeft(-10);
-      }
-      else
-      {
-        this.setTop(null);
-        this.setLeft(null);
-      };
-    });
-    
-    w4_10.addEventListener("click", function(e) 
-    {
-      if (this.getWidth() == 25)
-      {
-        this.setWidth(10);  
-        this.setHeight(10);
-        this.setLeft(-5);
-        this.setBottom(15);
-      }
-      else
-      {
-        this.setWidth(25);
-        this.setHeight(25);
-        this.setLeft(null);
-        this.setBottom(null);
-      };
-    });
-
-
-
-    hbl4.add(w4_1, w4_2, w4_3, w4_4, w4_5, w4_6, w4_7, w4_8, w4_9, w4_10);
-    d.add(hbl4);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE FIVE:
-       RIGHT ALIGN, REVERTED CHILDREN ORDER
-
-    *********************************************** */
-
-    var hbl5 = new qx.ui.layout.HorizontalBoxLayout;
-
-    hbl5.setTop(408);
-    hbl5.setLeft(20);
-    hbl5.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl5.setWidth(null);
-    hbl5.setRight(335);
-
-    hbl5.setSpacing(4);
-    hbl5.setPadding(8);
-
-    hbl5.setHorizontalChildrenAlign("right");
-    hbl5.setReverseChildrenOrder(true);
-    hbl5.setVerticalChildrenAlign("middle");
-    
-    hbl5.setHeight(80);
-
-
-    var w5_1 = new qx.ui.layout.CanvasLayout;
-    w5_1.setWidth(25);
-    w5_1.setHeight(25);
-    w5_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_1.setBackgroundColor(cl_white);
-    // w5_1.setMaxHeight(40);
-
-    var w5_2 = new qx.ui.layout.CanvasLayout;
-    w5_2.setWidth(25);
-    w5_2.setHeight(25);
-    w5_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_2.setBackgroundColor(cl_blue);
-    w5_2.setBottom(10);
-
-    var w5_3 = new qx.ui.layout.CanvasLayout;
-    w5_3.setWidth(25);
-    w5_3.setHeight("100%");
-    w5_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_3.setBackgroundColor(cl_yellow);
-
-    var w5_4 = new qx.ui.layout.CanvasLayout;
-    w5_4.setWidth(25);
-    w5_4.setHeight(25);
-    w5_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_4.setBackgroundColor(cl_green);
-
-    var w5_5 = new qx.ui.layout.CanvasLayout;
-    w5_5.setWidth(40);
-    // w5_5.setHeight(25);
-    w5_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_5.setBackgroundColor(cl_orange);
-
-    var w5_6 = new qx.ui.layout.CanvasLayout;
-    w5_6.setWidth(25);
-    w5_6.setHeight(25);
-    w5_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_6.setBackgroundColor(cl_purple);
-    w5_6.setTop(15);
-    w5_6.setLeft(-25);    
-
-    var w5_7 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-
-    var w5_8 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-
-    var w5_9 = new qx.ui.layout.CanvasLayout;
-    w5_9.setWidth(25);
-    w5_9.setHeight(25);
-    w5_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_9.setBackgroundColor(cl_aqua);
-
-    var w5_10 = new qx.ui.layout.CanvasLayout;
-    w5_10.setWidth(25);
-    w5_10.setHeight(25);
-    w5_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_10.setBackgroundColor(cl_fuchsia);
-
-
-    var hbl5_click = 0;
-    hbl5.addEventListener("click", function(e) 
-    {
-      if (e.getTarget()!=this) {
-        return;
-      };      
-      
-      switch(hbl5_click)
-      {
-        case 0:
-          this.setRight(null);
-          this.setWidth("auto");
-          break;
-          
-        case 1:
-          this.setHeight(30);
-          break;
-        
-        case 2:
-          this.setHeight("auto");
-          break;
-          
-        case 3:
-          this.setHeight(80);
-          break;
-          
-        case 4:
-          this.setWidth(200);
-          break;
-          
-        case 5:
-          this.setWidth(null);
-          this.setRight(335);
-          hbl5_click = 0;
-          return;        
-      };
-      
-      hbl5_click++;
-    });
-
-    w5_1.addEventListener("click", function(e) 
-    {
-      if (this.getWidth() == 25)
-      {
-        this.setWidth(65);
-        this.setHeight(65); 
-        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
-      }
-      else
-      {
-        this.setWidth(25);
-        this.setHeight(25);  
-        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      };      
-    });
-
-    w5_2.addEventListener("click", function(e) {
-      this.getMarginRight() == 0 ? this.setMarginRight(10) : this.setMarginRight(0);
-    });
-
-    w5_3.addEventListener("click", function(e) {
-      this.getMinWidth() == -Infinity ? this.setMinWidth(100) : this.setMinWidth(-Infinity);
-    });
-
-    w5_4.addEventListener("click", function(e) {
-      this.getWidth() == 25 ? this.setWidth(50) : this.setWidth(25);
-    });
-
-    w5_5.addEventListener("click", function(e) {
-      this.getWidth() == 40 ? this.setWidth(80) : this.setWidth(40);
-    });
-    
-    w5_6.addEventListener("click", function(e) {
-      this.getLeft() == -25 ? this.setLeft(25) : this.setLeft(-25);
-    });
-
-    w5_7.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/apps/accessories-clock.png" ? this.setSource("icon/64/apps/accessories-clock.png") : this.setSource("icon/32/apps/accessories-clock.png");
-    });
-    
-    w5_8.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/actions/format-color.png" ? this.setSource("icon/16/actions/format-color.png") : this.setSource("icon/32/actions/format-color.png");
-    });   
-    
-    w5_9.addEventListener("click", function(e) 
-    {
-      if (this.getTop() == null)
-      {
-        this.setTop(20);
-        this.setLeft(-10);
-      }
-      else
-      {
-        this.setTop(null);
-        this.setLeft(null);
-      };
-    });
-    
-    w5_10.addEventListener("click", function(e) 
-    {
-      if (this.getWidth() == 25)
-      {
-        this.setWidth(10);  
-        this.setHeight(10);
-        this.setLeft(-5);
-        this.setBottom(15);
-      }
-      else
-      {
-        this.setWidth(25);
-        this.setHeight(25);
-        this.setLeft(null);
-        this.setBottom(null);
-      };
-    });
-
-
-
-    hbl5.add(w5_1, w5_2, w5_3, w5_4, w5_5, w5_6, w5_7, w5_8, w5_9, w5_10);
-    d.add(hbl5);
-
-
-
-
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE SIX:
-       CENTER ALIGN, REVERTED CHILDREN ORDER
-
-    *********************************************** */
-
-    var hbl6 = new qx.ui.layout.HorizontalBoxLayout;
-
-    hbl6.setTop(498);
-    hbl6.setLeft(20);
-    hbl6.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl6.setWidth(null);
-    hbl6.setRight(335);
-
-    hbl6.setSpacing(4);
-    hbl6.setPadding(8);
-
-    hbl6.setHorizontalChildrenAlign("center");
-    hbl6.setReverseChildrenOrder(true);
-    hbl6.setHeight(80);
-
-
-    var w6_1 = new qx.ui.layout.CanvasLayout;
-    w6_1.setWidth(25);
-    w6_1.setHeight(25);
-    w6_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_1.setBackgroundColor(cl_white);
-    // w6_1.setMaxHeight(40);
-
-    var w6_2 = new qx.ui.layout.CanvasLayout;
-    w6_2.setWidth(25);
-    w6_2.setHeight(25);
-    w6_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_2.setBackgroundColor(cl_blue);
-    w6_2.setBottom(10);
-
-    var w6_3 = new qx.ui.layout.CanvasLayout;
-    w6_3.setWidth(25);
-    w6_3.setHeight("100%");
-    w6_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_3.setBackgroundColor(cl_yellow);
-
-    var w6_4 = new qx.ui.layout.CanvasLayout;
-    w6_4.setWidth(25);
-    w6_4.setHeight(25);
-    w6_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_4.setBackgroundColor(cl_green);
-
-    var w6_5 = new qx.ui.layout.CanvasLayout;
-    w6_5.setWidth(40);
-    // w6_5.setHeight(25);
-    w6_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_5.setBackgroundColor(cl_orange);
-
-    var w6_6 = new qx.ui.layout.CanvasLayout;
-    w6_6.setWidth(25);
-    w6_6.setHeight(25);
-    w6_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_6.setBackgroundColor(cl_purple);
-    w6_6.setTop(15);
-    w6_6.setLeft(-25);    
-
-    var w6_7 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-
-    var w6_8 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-
-    var w6_9 = new qx.ui.layout.CanvasLayout;
-    w6_9.setWidth(25);
-    w6_9.setHeight(25);
-    w6_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_9.setBackgroundColor(cl_aqua);
-
-    var w6_10 = new qx.ui.layout.CanvasLayout;
-    w6_10.setWidth(25);
-    w6_10.setHeight(25);
-    w6_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_10.setBackgroundColor(cl_fuchsia);
-
-
-    var hbl6_click = 0;
-    hbl6.addEventListener("click", function(e) 
-    {
-      if (e.getTarget()!=this) {
-        return;
-      };
-            
-      switch(hbl6_click)
-      {
-        case 0:
-          this.setRight(null);
-          this.setWidth("auto");
-          break;
-          
-        case 1:
-          this.setHeight(30);
-          break;
-        
-        case 2:
-          this.setHeight("auto");
-          break;
-          
-        case 3:
-          this.setHeight(80);
-          break;
-          
-        case 4:
-          this.setWidth(200);
-          break;
-          
-        case 5:
-          this.setWidth(null);
-          this.setRight(335);
-          hbl6_click = 0;
-          return;        
-      };
-      
-      hbl6_click++;
-    });
-
-    w6_1.addEventListener("click", function(e) 
-    {
-      if (this.getWidth() == 25)
-      {
-        this.setWidth(65);
-        this.setHeight(65); 
-        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
-      }
-      else
-      {
-        this.setWidth(25);
-        this.setHeight(25);  
-        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      };      
-    });
-
-    w6_2.addEventListener("click", function(e) {
-      this.getMarginRight() == 0 ? this.setMarginRight(10) : this.setMarginRight(0);
-    });
-
-    w6_3.addEventListener("click", function(e) {
-      this.getMinWidth() == -Infinity ? this.setMinWidth(100) : this.setMinWidth(-Infinity);
-    });
-
-    w6_4.addEventListener("click", function(e) {
-      this.getWidth() == 25 ? this.setWidth(50) : this.setWidth(25);
-    });
-
-    w6_5.addEventListener("click", function(e) {
-      this.getWidth() == 40 ? this.setWidth(80) : this.setWidth(40);
-    });
-    
-    w6_6.addEventListener("click", function(e) {
-      this.getLeft() == -25 ? this.setLeft(25) : this.setLeft(-25);
-    });
-
-    w6_7.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/apps/accessories-clock.png" ? this.setSource("icon/64/apps/accessories-clock.png") : this.setSource("icon/32/apps/accessories-clock.png");
-    });
-    
-    w6_8.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/actions/format-color.png" ? this.setSource("icon/16/actions/format-color.png") : this.setSource("icon/32/actions/format-color.png");
-    });   
-    
-    w6_9.addEventListener("click", function(e) 
-    {
-      if (this.getTop() == null)
-      {
-        this.setTop(20);
-        this.setLeft(-10);
-      }
-      else
-      {
-        this.setTop(null);
-        this.setLeft(null);
-      };
-    });
-    
-    w6_10.addEventListener("click", function(e) 
-    {
-      if (this.getWidth() == 25)
-      {
-        this.setWidth(10);  
-        this.setHeight(10);
-        this.setLeft(-5);
-        this.setBottom(15);
-      }
-      else
-      {
-        this.setWidth(25);
-        this.setHeight(25);
-        this.setLeft(null);
-        this.setBottom(null);
-      };
-    });
-
-
-
-    hbl6.add(w6_1, w6_2, w6_3, w6_4, w6_5, w6_6, w6_7, w6_8, w6_9, w6_10);
-    d.add(hbl6);
-
-
-
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/HorizontalBoxLayout_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/HorizontalBoxLayout_2.html
deleted file mode 100644 (file)
index 80520dd..0000000
+++ /dev/null
@@ -1,1233 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    Tests for the new implementation of the qx.ui.layout.HorizontalBoxLayout widget. 
-    This example includes a child with a width defined as percent. This makes
-    things much more complex (especially on resizing of the parent) so this also
-    dramatically reduces the speed ;)
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var cl_white = new qx.renderer.color.Color("white");
-    var cl_blue = new qx.renderer.color.Color("blue");
-    var cl_yellow = new qx.renderer.color.Color("yellow");
-    var cl_green = new qx.renderer.color.Color("green");
-    var cl_orange = new qx.renderer.color.Color("orange");
-    var cl_purple = new qx.renderer.color.Color("purple");
-    var cl_aqua = new qx.renderer.color.Color("aqua");
-    var cl_fuchsia = new qx.renderer.color.Color("fuchsia");
-
-    /* ***********************************************
-
-       EXAMPLE ONE:
-       LEFT ALIGN
-
-    *********************************************** */
-
-    var hbl1 = new qx.ui.layout.HorizontalBoxLayout;
-
-    hbl1.setTop(48);
-    hbl1.setLeft(20);
-    hbl1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl1.setHeight("auto");
-    hbl1.setRight(335);
-
-    hbl1.setSpacing(4);
-    hbl1.setPadding(8);
-
-    hbl1.setVerticalChildrenAlign("bottom");
-    
-    
-    var w1_1 = new qx.ui.layout.CanvasLayout;
-    w1_1.setWidth(25);
-    w1_1.setHeight(25);
-    w1_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_1.setBackgroundColor(cl_white);
-    // w1_1.setMaxHeight(40);
-
-    var w1_2 = new qx.ui.layout.CanvasLayout;
-    w1_2.setWidth(25);
-    w1_2.setHeight(25);
-    w1_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_2.setBackgroundColor(cl_blue);
-    w1_2.setBottom(10);
-
-    var w1_3 = new qx.ui.layout.CanvasLayout;
-    w1_3.setWidth(25);
-    w1_3.setHeight("100%");
-    w1_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_3.setBackgroundColor(cl_yellow);
-
-    var w1_4 = new qx.ui.layout.CanvasLayout;
-    w1_4.setWidth(25);
-    w1_4.setHeight(25);
-    w1_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_4.setBackgroundColor(cl_green);
-
-    var w1_5 = new qx.ui.layout.CanvasLayout;
-    w1_5.setWidth("15%");
-    // w1_5.setHeight(25);
-    w1_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_5.setBackgroundColor(cl_orange);
-
-    var w1_6 = new qx.ui.layout.CanvasLayout;
-    w1_6.setWidth(25);
-    w1_6.setHeight(25);
-    w1_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_6.setBackgroundColor(cl_purple);
-    w1_6.setTop(15);
-    w1_6.setLeft(-25);
-
-    var w1_7 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-
-    var w1_8 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-
-    var w1_9 = new qx.ui.layout.CanvasLayout;
-    w1_9.setWidth(25);
-    w1_9.setHeight(25);
-    w1_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_9.setBackgroundColor(cl_aqua);
-
-    var w1_10 = new qx.ui.layout.CanvasLayout;
-    w1_10.setWidth(25);
-    w1_10.setHeight(25);
-    w1_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_10.setBackgroundColor(cl_fuchsia);
-
-    var hbl1_click = 0;
-    hbl1.addEventListener("click", function(e) 
-    {
-      if (e.getTarget()!=this) {
-        return;
-      };
-      
-      switch(hbl1_click)
-      {
-        case 0:
-          this.setHeight(30);
-          break;
-        
-        case 1:
-          this.setHeight(80);
-          break;
-          
-        case 2:
-          this.setHeight("auto");
-          break;
-          
-        case 3:
-          this.setWidth(200);
-          break;
-          
-        case 4:
-          this.setWidth(null);
-          this.setRight(335);
-          hbl1_click = 0;
-          return;        
-      };
-      
-      hbl1_click++;
-    });
-
-    w1_1.addEventListener("click", function(e) 
-    {
-      if (this.getWidth() == 25)
-      {
-        this.setWidth(65);
-        this.setHeight(65); 
-        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
-      }
-      else
-      {
-        this.setWidth(25);
-        this.setHeight(25);  
-        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      };      
-    });
-
-    w1_2.addEventListener("click", function(e) {
-      this.getMarginRight() == 0 ? this.setMarginRight(10) : this.setMarginRight(0);
-    });
-
-    w1_3.addEventListener("click", function(e) {
-      this.getMinWidth() == -Infinity ? this.setMinWidth(100) : this.setMinWidth(-Infinity);
-    });
-
-    w1_4.addEventListener("click", function(e) {
-      this.getWidth() == 25 ? this.setWidth(50) : this.setWidth(25);
-    });
-
-    w1_5.addEventListener("click", function(e) {
-      this.getWidth() == "15%" ? this.setWidth("30%") : this.setWidth("15%");
-    });
-    
-    w1_6.addEventListener("click", function(e) {
-      this.getLeft() == -25 ? this.setLeft(25) : this.setLeft(-25);
-    });
-
-    w1_7.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/apps/accessories-clock.png" ? this.setSource("icon/64/apps/accessories-clock.png") : this.setSource("icon/32/apps/accessories-clock.png");
-    });
-    
-    w1_8.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/actions/format-color.png" ? this.setSource("icon/16/actions/format-color.png") : this.setSource("icon/32/actions/format-color.png");
-    });   
-    
-    w1_9.addEventListener("click", function(e) 
-    {
-      if (this.getTop() == null)
-      {
-        this.setTop(20);
-        this.setLeft(-10);
-      }
-      else
-      {
-        this.setTop(null);
-        this.setLeft(null);
-      };
-    });
-    
-    w1_10.addEventListener("click", function(e) 
-    {
-      if (this.getWidth() == 25)
-      {
-        this.setWidth(10);  
-        this.setHeight(10);
-        this.setLeft(-5);
-        this.setBottom(15);
-      }
-      else
-      {
-        this.setWidth(25);
-        this.setHeight(25);
-        this.setLeft(null);
-        this.setBottom(null);
-      };
-    });    
-
-
-
-    hbl1.add(w1_1, w1_2, w1_3, w1_4, w1_5, w1_6, w1_7, w1_8, w1_9, w1_10);
-    d.add(hbl1);
-
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE TWO:
-       RIGHT ALIGN
-
-    *********************************************** */
-
-    var hbl2 = new qx.ui.layout.HorizontalBoxLayout;
-
-    hbl2.setTop(138);
-    hbl2.setLeft(20);
-    hbl2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl2.setHeight("auto");
-    hbl2.setRight(335);
-
-    hbl2.setSpacing(4);
-    hbl2.setPadding(8);
-
-    hbl2.setHorizontalChildrenAlign("right");
-    hbl2.setVerticalChildrenAlign("middle");
-
-
-    var w2_1 = new qx.ui.layout.CanvasLayout;
-    w2_1.setWidth(25);
-    w2_1.setHeight(25);
-    w2_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_1.setBackgroundColor(cl_white);
-    // w2_1.setMaxHeight(40);
-
-    var w2_2 = new qx.ui.layout.CanvasLayout;
-    w2_2.setWidth(25);
-    w2_2.setHeight(25);
-    w2_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_2.setBackgroundColor(cl_blue);
-    w2_2.setBottom(10);
-
-    var w2_3 = new qx.ui.layout.CanvasLayout;
-    w2_3.setWidth(25);
-    w2_3.setHeight("100%");
-    w2_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_3.setBackgroundColor(cl_yellow);
-
-    var w2_4 = new qx.ui.layout.CanvasLayout;
-    w2_4.setWidth(25);
-    w2_4.setHeight(25);
-    w2_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_4.setBackgroundColor(cl_green);
-
-    var w2_5 = new qx.ui.layout.CanvasLayout;
-    w2_5.setWidth("15%");
-    // w2_5.setHeight(25);
-    w2_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_5.setBackgroundColor(cl_orange);
-
-    var w2_6 = new qx.ui.layout.CanvasLayout;
-    w2_6.setWidth(25);
-    w2_6.setHeight(25);
-    w2_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_6.setBackgroundColor(cl_purple);
-    w2_6.setTop(15);
-    w2_6.setLeft(-25);    
-
-    var w2_7 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-
-    var w2_8 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-
-    var w2_9 = new qx.ui.layout.CanvasLayout;
-    w2_9.setWidth(25);
-    w2_9.setHeight(25);
-    w2_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_9.setBackgroundColor(cl_aqua);
-
-    var w2_10 = new qx.ui.layout.CanvasLayout;
-    w2_10.setWidth(25);
-    w2_10.setHeight(25);
-    w2_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_10.setBackgroundColor(cl_fuchsia);
-    w2_10.foo = true;
-
-
-    var hbl2_click = 0;
-    hbl2.addEventListener("click", function(e) 
-    {
-      if (e.getTarget()!=this) {
-        return;
-      };      
-      
-      switch(hbl2_click)
-      {
-        case 0:
-          this.setHeight(30);
-          break;
-        
-        case 1:
-          this.setHeight(80);
-          break;
-          
-        case 2:
-          this.setHeight("auto");
-          break;
-          
-        case 3:
-          this.setWidth(200);
-          break;
-          
-        case 4:
-          this.setWidth(null);
-          this.setRight(335);
-          hbl2_click = 0;
-          return;        
-      };
-      
-      hbl2_click++;
-    });
-    
-    w2_1.addEventListener("click", function(e) 
-    {
-      if (this.getWidth() == 25)
-      {
-        this.setWidth(65);
-        this.setHeight(65); 
-        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
-      }
-      else
-      {
-        this.setWidth(25);
-        this.setHeight(25);  
-        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      };      
-    });
-
-    w2_2.addEventListener("click", function(e) {
-      this.getMarginRight() == 0 ? this.setMarginRight(10) : this.setMarginRight(0);
-    });
-
-    w2_3.addEventListener("click", function(e) {
-      this.getMinWidth() == -Infinity ? this.setMinWidth(100) : this.setMinWidth(-Infinity);
-    });
-
-    w2_4.addEventListener("click", function(e) {
-      this.getWidth() == 25 ? this.setWidth(50) : this.setWidth(25);
-    });
-
-    w2_5.addEventListener("click", function(e) {
-      this.getWidth() == "15%" ? this.setWidth("30%") : this.setWidth("15%");
-    });
-    
-    w2_6.addEventListener("click", function(e) {
-      this.getLeft() == -25 ? this.setLeft(25) : this.setLeft(-25);
-    });
-
-    w2_7.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/apps/accessories-clock.png" ? this.setSource("icon/64/apps/accessories-clock.png") : this.setSource("icon/32/apps/accessories-clock.png");
-    });
-    
-    w2_8.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/actions/format-color.png" ? this.setSource("icon/16/actions/format-color.png") : this.setSource("icon/32/actions/format-color.png");
-    });   
-    
-    w2_9.addEventListener("click", function(e) 
-    {
-      if (this.getTop() == null)
-      {
-        this.setTop(20);
-        this.setLeft(-10);
-      }
-      else
-      {
-        this.setTop(null);
-        this.setLeft(null);
-      };
-    });
-    
-    w2_10.addEventListener("click", function(e) 
-    {
-      if (this.getWidth() == 25)
-      {
-        this.setWidth(10);  
-        this.setHeight(10);
-        this.setLeft(-5);
-        this.setBottom(15);
-      }
-      else
-      {
-        this.setWidth(25);
-        this.setHeight(25);
-        this.setLeft(null);
-        this.setBottom(null);
-      };
-    });
-
-
-
-    hbl2.add(w2_1, w2_2, w2_3, w2_4, w2_5, w2_6, w2_7, w2_8, w2_9, w2_10);
-    d.add(hbl2);
-
-
-    /* ***********************************************
-
-       EXAMPLE THREE:
-       CENTER ALIGN
-
-    *********************************************** */
-
-    var hbl3 = new qx.ui.layout.HorizontalBoxLayout;
-
-    hbl3.setTop(228);
-    hbl3.setLeft(20);
-    hbl3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl3.setHeight("auto");
-    hbl3.setRight(335);
-
-    hbl3.setSpacing(4);
-    hbl3.setPadding(8);
-
-    hbl3.setHorizontalChildrenAlign("center");
-
-
-
-    var w3_1 = new qx.ui.layout.CanvasLayout;
-    w3_1.setWidth(25);
-    w3_1.setHeight(25);
-    w3_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_1.setBackgroundColor(cl_white);
-    // w3_1.setMaxHeight(40);
-
-    var w3_2 = new qx.ui.layout.CanvasLayout;
-    w3_2.setWidth(25);
-    w3_2.setHeight(25);
-    w3_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_2.setBackgroundColor(cl_blue);
-    w3_2.setBottom(10);
-
-    var w3_3 = new qx.ui.layout.CanvasLayout;
-    w3_3.setWidth(25);
-    w3_3.setHeight("100%");
-    w3_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_3.setBackgroundColor(cl_yellow);
-
-    var w3_4 = new qx.ui.layout.CanvasLayout;
-    w3_4.setWidth(25);
-    w3_4.setHeight(25);
-    w3_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_4.setBackgroundColor(cl_green);
-
-    var w3_5 = new qx.ui.layout.CanvasLayout;
-    w3_5.setWidth("15%");
-    // w3_5.setHeight(25);
-    w3_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_5.setBackgroundColor(cl_orange);
-
-    var w3_6 = new qx.ui.layout.CanvasLayout;
-    w3_6.setWidth(25);
-    w3_6.setHeight(25);
-    w3_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_6.setBackgroundColor(cl_purple);
-    w3_6.setTop(15);
-    w3_6.setLeft(-25);    
-
-    var w3_7 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-
-    var w3_8 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-
-    var w3_9 = new qx.ui.layout.CanvasLayout;
-    w3_9.setWidth(25);
-    w3_9.setHeight(25);
-    w3_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_9.setBackgroundColor(cl_aqua);
-
-    var w3_10 = new qx.ui.layout.CanvasLayout;
-    w3_10.setWidth(25);
-    w3_10.setHeight(25);
-    w3_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_10.setBackgroundColor(cl_fuchsia);
-
-
-    var hbl3_click = 0;
-    hbl3.addEventListener("click", function(e) 
-    {
-      if (e.getTarget()!=this) {
-        return;
-      };      
-      
-      switch(hbl3_click)
-      {
-        case 0:
-          this.setHeight(30);
-          break;
-        
-        case 1:
-          this.setHeight(80);
-          break;
-          
-        case 2:
-          this.setHeight("auto");
-          break;
-          
-        case 3:
-          this.setWidth(200);
-          break;
-          
-        case 4:
-          this.setWidth(null);
-          this.setRight(335);
-          hbl3_click = 0;
-          return;        
-      };
-      
-      hbl3_click++;
-    });
-
-    w3_1.addEventListener("click", function(e) 
-    {
-      if (this.getWidth() == 25)
-      {
-        this.setWidth(65);
-        this.setHeight(65); 
-        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
-      }
-      else
-      {
-        this.setWidth(25);
-        this.setHeight(25);  
-        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      };      
-    });
-
-    w3_2.addEventListener("click", function(e) {
-      this.getMarginRight() == 0 ? this.setMarginRight(10) : this.setMarginRight(0);
-    });
-
-    w3_3.addEventListener("click", function(e) {
-      this.getMinWidth() == -Infinity ? this.setMinWidth(100) : this.setMinWidth(-Infinity);
-    });
-
-    w3_4.addEventListener("click", function(e) {
-      this.getWidth() == 25 ? this.setWidth(50) : this.setWidth(25);
-    });
-
-    w3_5.addEventListener("click", function(e) {
-      this.getWidth() == "15%" ? this.setWidth("30%") : this.setWidth("15%");
-    });
-    
-    w3_6.addEventListener("click", function(e) {
-      this.getLeft() == -25 ? this.setLeft(25) : this.setLeft(-25);
-    });
-
-    w3_7.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/apps/accessories-clock.png" ? this.setSource("icon/64/apps/accessories-clock.png") : this.setSource("icon/32/apps/accessories-clock.png");
-    });
-    
-    w3_8.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/actions/format-color.png" ? this.setSource("icon/16/actions/format-color.png") : this.setSource("icon/32/actions/format-color.png");
-    });   
-    
-    w3_9.addEventListener("click", function(e) 
-    {
-      if (this.getTop() == null)
-      {
-        this.setTop(20);
-        this.setLeft(-10);
-      }
-      else
-      {
-        this.setTop(null);
-        this.setLeft(null);
-      };
-    });
-    
-    w3_10.addEventListener("click", function(e) 
-    {
-      if (this.getWidth() == 25)
-      {
-        this.setWidth(10);  
-        this.setHeight(10);
-        this.setLeft(-5);
-        this.setBottom(15);
-      }
-      else
-      {
-        this.setWidth(25);
-        this.setHeight(25);
-        this.setLeft(null);
-        this.setBottom(null);
-      };
-    });
-
-
-
-    hbl3.add(w3_1, w3_2, w3_3, w3_4, w3_5, w3_6, w3_7, w3_8, w3_9, w3_10);
-    d.add(hbl3);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE FOUR:
-       LEFT ALIGN, REVERTED CHILDREN ORDER
-
-    *********************************************** */
-
-    var hbl4 = new qx.ui.layout.HorizontalBoxLayout;
-
-    hbl4.setTop(318);
-    hbl4.setLeft(20);
-    hbl4.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl4.setWidth(null);
-    hbl4.setRight(335);
-
-    hbl4.setSpacing(4);
-    hbl4.setPadding(8);
-    hbl4.setReverseChildrenOrder(true);
-    hbl4.setVerticalChildrenAlign("bottom");
-    
-    hbl4.setHeight(80);
-
-
-
-    var w4_1 = new qx.ui.layout.CanvasLayout;
-    w4_1.setWidth(25);
-    w4_1.setHeight(25);
-    w4_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_1.setBackgroundColor(cl_white);
-    // w4_1.setMaxHeight(40);
-
-    var w4_2 = new qx.ui.layout.CanvasLayout;
-    w4_2.setWidth(25);
-    w4_2.setHeight(25);
-    w4_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_2.setBackgroundColor(cl_blue);
-    w4_2.setBottom(10);
-
-    var w4_3 = new qx.ui.layout.CanvasLayout;
-    w4_3.setWidth(25);
-    w4_3.setHeight("100%");
-    w4_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_3.setBackgroundColor(cl_yellow);
-
-    var w4_4 = new qx.ui.layout.CanvasLayout;
-    w4_4.setWidth(25);
-    w4_4.setHeight(25);
-    w4_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_4.setBackgroundColor(cl_green);
-
-    var w4_5 = new qx.ui.layout.CanvasLayout;
-    w4_5.setWidth("15%");
-    // w4_5.setHeight(25);
-    w4_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_5.setBackgroundColor(cl_orange);
-
-    var w4_6 = new qx.ui.layout.CanvasLayout;
-    w4_6.setWidth(25);
-    w4_6.setHeight(25);
-    w4_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_6.setBackgroundColor(cl_purple);
-    w4_6.setTop(15);
-    w4_6.setLeft(-25);    
-
-    var w4_7 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-
-    var w4_8 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-
-    var w4_9 = new qx.ui.layout.CanvasLayout;
-    w4_9.setWidth(25);
-    w4_9.setHeight(25);
-    w4_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_9.setBackgroundColor(cl_aqua);
-
-    var w4_10 = new qx.ui.layout.CanvasLayout;
-    w4_10.setWidth(25);
-    w4_10.setHeight(25);
-    w4_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_10.setBackgroundColor(cl_fuchsia);
-
-
-    var hbl4_click = 0;
-    hbl4.addEventListener("click", function(e) 
-    {
-      if (e.getTarget()!=this) {
-        return;
-      };      
-      
-      switch(hbl4_click)
-      {
-        case 0:
-          this.setHeight(30);
-          break;
-        
-        case 1:
-          this.setHeight("auto");
-          break;
-          
-        case 2:
-          this.setHeight(80);
-          break;
-          
-        case 3:
-          this.setWidth(200);
-          break;
-          
-        case 4:
-          this.setWidth(null);
-          this.setRight(335);
-          hbl4_click = 0;
-          return;        
-      };
-      
-      hbl4_click++;
-    });
-
-    w4_1.addEventListener("click", function(e) 
-    {
-      if (this.getWidth() == 25)
-      {
-        this.setWidth(65);
-        this.setHeight(65); 
-        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
-      }
-      else
-      {
-        this.setWidth(25);
-        this.setHeight(25);  
-        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      };      
-    });
-
-    w4_2.addEventListener("click", function(e) {
-      this.getMarginRight() == 0 ? this.setMarginRight(10) : this.setMarginRight(0);
-    });
-
-    w4_3.addEventListener("click", function(e) {
-      this.getMinWidth() == -Infinity ? this.setMinWidth(100) : this.setMinWidth(-Infinity);
-    });
-
-    w4_4.addEventListener("click", function(e) {
-      this.getWidth() == 25 ? this.setWidth(50) : this.setWidth(25);
-    });
-
-    w4_5.addEventListener("click", function(e) {
-      this.getWidth() == "15%" ? this.setWidth("30%") : this.setWidth("15%");
-    });
-    
-    w4_6.addEventListener("click", function(e) {
-      this.getLeft() == -25 ? this.setLeft(25) : this.setLeft(-25);
-    });
-
-    w4_7.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/apps/accessories-clock.png" ? this.setSource("icon/64/apps/accessories-clock.png") : this.setSource("icon/32/apps/accessories-clock.png");
-    });
-    
-    w4_8.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/actions/format-color.png" ? this.setSource("icon/16/actions/format-color.png") : this.setSource("icon/32/actions/format-color.png");
-    });   
-    
-    w4_9.addEventListener("click", function(e) 
-    {
-      if (this.getTop() == null)
-      {
-        this.setTop(20);
-        this.setLeft(-10);
-      }
-      else
-      {
-        this.setTop(null);
-        this.setLeft(null);
-      };
-    });
-    
-    w4_10.addEventListener("click", function(e) 
-    {
-      if (this.getWidth() == 25)
-      {
-        this.setWidth(10);  
-        this.setHeight(10);
-        this.setLeft(-5);
-        this.setBottom(15);
-      }
-      else
-      {
-        this.setWidth(25);
-        this.setHeight(25);
-        this.setLeft(null);
-        this.setBottom(null);
-      };
-    });
-
-
-
-    hbl4.add(w4_1, w4_2, w4_3, w4_4, w4_5, w4_6, w4_7, w4_8, w4_9, w4_10);
-    d.add(hbl4);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE FIVE:
-       RIGHT ALIGN, REVERTED CHILDREN ORDER
-
-    *********************************************** */
-
-    var hbl5 = new qx.ui.layout.HorizontalBoxLayout;
-
-    hbl5.setTop(408);
-    hbl5.setLeft(20);
-    hbl5.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl5.setWidth(null);
-    hbl5.setRight(335);
-
-    hbl5.setSpacing(4);
-    hbl5.setPadding(8);
-
-    hbl5.setHorizontalChildrenAlign("right");
-    hbl5.setReverseChildrenOrder(true);
-    hbl5.setVerticalChildrenAlign("middle");
-    
-    hbl5.setHeight(80);
-
-
-    var w5_1 = new qx.ui.layout.CanvasLayout;
-    w5_1.setWidth(25);
-    w5_1.setHeight(25);
-    w5_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_1.setBackgroundColor(cl_white);
-    // w5_1.setMaxHeight(40);
-
-    var w5_2 = new qx.ui.layout.CanvasLayout;
-    w5_2.setWidth(25);
-    w5_2.setHeight(25);
-    w5_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_2.setBackgroundColor(cl_blue);
-    w5_2.setBottom(10);
-
-    var w5_3 = new qx.ui.layout.CanvasLayout;
-    w5_3.setWidth(25);
-    w5_3.setHeight("100%");
-    w5_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_3.setBackgroundColor(cl_yellow);
-
-    var w5_4 = new qx.ui.layout.CanvasLayout;
-    w5_4.setWidth(25);
-    w5_4.setHeight(25);
-    w5_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_4.setBackgroundColor(cl_green);
-
-    var w5_5 = new qx.ui.layout.CanvasLayout;
-    w5_5.setWidth("15%");
-    // w5_5.setHeight(25);
-    w5_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_5.setBackgroundColor(cl_orange);
-
-    var w5_6 = new qx.ui.layout.CanvasLayout;
-    w5_6.setWidth(25);
-    w5_6.setHeight(25);
-    w5_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_6.setBackgroundColor(cl_purple);
-    w5_6.setTop(15);
-    w5_6.setLeft(-25);    
-
-    var w5_7 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-
-    var w5_8 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-
-    var w5_9 = new qx.ui.layout.CanvasLayout;
-    w5_9.setWidth(25);
-    w5_9.setHeight(25);
-    w5_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_9.setBackgroundColor(cl_aqua);
-
-    var w5_10 = new qx.ui.layout.CanvasLayout;
-    w5_10.setWidth(25);
-    w5_10.setHeight(25);
-    w5_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_10.setBackgroundColor(cl_fuchsia);
-
-
-    var hbl5_click = 0;
-    hbl5.addEventListener("click", function(e) 
-    {
-      if (e.getTarget()!=this) {
-        return;
-      };      
-      
-      switch(hbl5_click)
-      {
-        case 0:
-          this.setHeight(30);
-          break;
-        
-        case 1:
-          this.setHeight("auto");
-          break;
-          
-        case 2:
-          this.setHeight(80);
-          break;
-          
-        case 3:
-          this.setWidth(200);
-          break;
-          
-        case 4:
-          this.setWidth(null);
-          this.setRight(335);
-          hbl5_click = 0;
-          return;        
-      };
-      
-      hbl5_click++;
-    });
-
-    w5_1.addEventListener("click", function(e) 
-    {
-      if (this.getWidth() == 25)
-      {
-        this.setWidth(65);
-        this.setHeight(65); 
-        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
-      }
-      else
-      {
-        this.setWidth(25);
-        this.setHeight(25);  
-        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      };      
-    });
-
-    w5_2.addEventListener("click", function(e) {
-      this.getMarginRight() == 0 ? this.setMarginRight(10) : this.setMarginRight(0);
-    });
-
-    w5_3.addEventListener("click", function(e) {
-      this.getMinWidth() == -Infinity ? this.setMinWidth(100) : this.setMinWidth(-Infinity);
-    });
-
-    w5_4.addEventListener("click", function(e) {
-      this.getWidth() == 25 ? this.setWidth(50) : this.setWidth(25);
-    });
-
-    w5_5.addEventListener("click", function(e) {
-      this.getWidth() == "15%" ? this.setWidth("30%") : this.setWidth("15%");
-    });
-    
-    w5_6.addEventListener("click", function(e) {
-      this.getLeft() == -25 ? this.setLeft(25) : this.setLeft(-25);
-    });
-
-    w5_7.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/apps/accessories-clock.png" ? this.setSource("icon/64/apps/accessories-clock.png") : this.setSource("icon/32/apps/accessories-clock.png");
-    });
-    
-    w5_8.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/actions/format-color.png" ? this.setSource("icon/16/actions/format-color.png") : this.setSource("icon/32/actions/format-color.png");
-    });   
-    
-    w5_9.addEventListener("click", function(e) 
-    {
-      if (this.getTop() == null)
-      {
-        this.setTop(20);
-        this.setLeft(-10);
-      }
-      else
-      {
-        this.setTop(null);
-        this.setLeft(null);
-      };
-    });
-    
-    w5_10.addEventListener("click", function(e) 
-    {
-      if (this.getWidth() == 25)
-      {
-        this.setWidth(10);  
-        this.setHeight(10);
-        this.setLeft(-5);
-        this.setBottom(15);
-      }
-      else
-      {
-        this.setWidth(25);
-        this.setHeight(25);
-        this.setLeft(null);
-        this.setBottom(null);
-      };
-    });
-
-
-
-    hbl5.add(w5_1, w5_2, w5_3, w5_4, w5_5, w5_6, w5_7, w5_8, w5_9, w5_10);
-    d.add(hbl5);
-
-
-
-
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE SIX:
-       CENTER ALIGN, REVERTED CHILDREN ORDER
-
-    *********************************************** */
-
-    var hbl6 = new qx.ui.layout.HorizontalBoxLayout;
-
-    hbl6.setTop(498);
-    hbl6.setLeft(20);
-    hbl6.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl6.setWidth(null);
-    hbl6.setRight(335);
-
-    hbl6.setSpacing(4);
-    hbl6.setPadding(8);
-
-    hbl6.setHorizontalChildrenAlign("center");
-    hbl6.setReverseChildrenOrder(true);
-    hbl6.setHeight(80);
-
-
-    var w6_1 = new qx.ui.layout.CanvasLayout;
-    w6_1.setWidth(25);
-    w6_1.setHeight(25);
-    w6_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_1.setBackgroundColor(cl_white);
-    // w6_1.setMaxHeight(40);
-
-    var w6_2 = new qx.ui.layout.CanvasLayout;
-    w6_2.setWidth(25);
-    w6_2.setHeight(25);
-    w6_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_2.setBackgroundColor(cl_blue);
-    w6_2.setBottom(10);
-
-    var w6_3 = new qx.ui.layout.CanvasLayout;
-    w6_3.setWidth(25);
-    w6_3.setHeight("100%");
-    w6_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_3.setBackgroundColor(cl_yellow);
-
-    var w6_4 = new qx.ui.layout.CanvasLayout;
-    w6_4.setWidth(25);
-    w6_4.setHeight(25);
-    w6_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_4.setBackgroundColor(cl_green);
-
-    var w6_5 = new qx.ui.layout.CanvasLayout;
-    w6_5.setWidth("15%");
-    // w6_5.setHeight(25);
-    w6_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_5.setBackgroundColor(cl_orange);
-
-    var w6_6 = new qx.ui.layout.CanvasLayout;
-    w6_6.setWidth(25);
-    w6_6.setHeight(25);
-    w6_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_6.setBackgroundColor(cl_purple);
-    w6_6.setTop(15);
-    w6_6.setLeft(-25);    
-
-    var w6_7 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-
-    var w6_8 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-
-    var w6_9 = new qx.ui.layout.CanvasLayout;
-    w6_9.setWidth(25);
-    w6_9.setHeight(25);
-    w6_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_9.setBackgroundColor(cl_aqua);
-
-    var w6_10 = new qx.ui.layout.CanvasLayout;
-    w6_10.setWidth(25);
-    w6_10.setHeight(25);
-    w6_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_10.setBackgroundColor(cl_fuchsia);
-
-
-    var hbl6_click = 0;
-    hbl6.addEventListener("click", function(e) 
-    {
-      if (e.getTarget()!=this) {
-        return;
-      };
-            
-      switch(hbl6_click)
-      {
-        case 0:
-          this.setHeight(30);
-          break;
-        
-        case 1:
-          this.setHeight("auto");
-          break;
-          
-        case 2:
-          this.setHeight(80);
-          break;
-          
-        case 3:
-          this.setWidth(200);
-          break;
-          
-        case 4:
-          this.setWidth(null);
-          this.setRight(335);
-          hbl6_click = 0;
-          return;        
-      };
-      
-      hbl6_click++;
-    });
-
-    w6_1.addEventListener("click", function(e) 
-    {
-      if (this.getWidth() == 25)
-      {
-        this.setWidth(65);
-        this.setHeight(65); 
-        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
-      }
-      else
-      {
-        this.setWidth(25);
-        this.setHeight(25);  
-        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      };      
-    });
-
-    w6_2.addEventListener("click", function(e) {
-      this.getMarginRight() == 0 ? this.setMarginRight(10) : this.setMarginRight(0);
-    });
-
-    w6_3.addEventListener("click", function(e) {
-      this.getMinWidth() == -Infinity ? this.setMinWidth(100) : this.setMinWidth(-Infinity);
-    });
-
-    w6_4.addEventListener("click", function(e) {
-      this.getWidth() == 25 ? this.setWidth(50) : this.setWidth(25);
-    });
-
-    w6_5.addEventListener("click", function(e) {
-      this.getWidth() == "15%" ? this.setWidth("30%") : this.setWidth("15%");
-    });
-    
-    w6_6.addEventListener("click", function(e) {
-      this.getLeft() == -25 ? this.setLeft(25) : this.setLeft(-25);
-    });
-
-    w6_7.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/apps/accessories-clock.png" ? this.setSource("icon/64/apps/accessories-clock.png") : this.setSource("icon/32/apps/accessories-clock.png");
-    });
-    
-    w6_8.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/actions/format-color.png" ? this.setSource("icon/16/actions/format-color.png") : this.setSource("icon/32/actions/format-color.png");
-    });   
-    
-    w6_9.addEventListener("click", function(e) 
-    {
-      if (this.getTop() == null)
-      {
-        this.setTop(20);
-        this.setLeft(-10);
-      }
-      else
-      {
-        this.setTop(null);
-        this.setLeft(null);
-      };
-    });
-    
-    w6_10.addEventListener("click", function(e) 
-    {
-      if (this.getWidth() == 25)
-      {
-        this.setWidth(10);  
-        this.setHeight(10);
-        this.setLeft(-5);
-        this.setBottom(15);
-      }
-      else
-      {
-        this.setWidth(25);
-        this.setHeight(25);
-        this.setLeft(null);
-        this.setBottom(null);
-      };
-    });
-
-
-
-    hbl6.add(w6_1, w6_2, w6_3, w6_4, w6_5, w6_6, w6_7, w6_8, w6_9, w6_10);
-    d.add(hbl6);
-
-
-
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/HorizontalBoxLayout_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/HorizontalBoxLayout_3.html
deleted file mode 100644 (file)
index 92579e3..0000000
+++ /dev/null
@@ -1,594 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    Tests for the new implementation of the qx.ui.layout.HorizontalBoxLayout widget.<br/>
-    <br/>
-    1. Simple testing, one static and one flex child<br/>
-    2. Two flex children with the same priority<br/>
-    3. The same as #2, but the second has the doubled priority compared to the first<br/>
-    <br/>
-
-    4. The same as #3, but now the second child has a max-width of 50px<br/>
-    5. The same as #4, but now with enabled "advancedFlexAllocation"<br/>
-    <br/>
-
-    6. The same as #3, but now the second has a min width of 500px<br/>
-    7. The same as #6, but now with enabled "advancedFlexAllocation"<br/>
-    <br/>
-
-    8. Three children with the priorities: 1, 2 and 3. The second has a maxWidth of 50px<br/>
-    9. The same as #8, but now with enabled "advancedFlexAllocation"<br/>
-    <br/>
-
-    10. Three children with the priorities: 1, 2 and 3. Added a few mouse actions.<br/>
-    11. Three children with the priorities: 1, a static width of 80px and 3.<br/>
-    12. The same as #11, but configured as 'auto' width.<br/>
-    <br/>
-
-    13. Test for more complex child widgets. Seems to work without problems.
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-
-    /* ***********************************************
-
-       EXAMPLE 1:
-
-    *********************************************** */
-
-    var te1 = new qx.ui.basic.Label("#1");
-    te1.setLocation(20, 48);
-    d.add(te1);
-
-    var hbl1 = new qx.ui.layout.HorizontalBoxLayout;
-    hbl1.setLeft(50);
-    hbl1.setTop(48);
-    hbl1.setRight(335);
-    hbl1.setWidth(null);
-    hbl1.setHeight("auto");
-    hbl1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl1.setSpacing(4);
-    hbl1.setPadding(2);
-    d.add(hbl1);
-
-    var t1_1 = new qx.ui.basic.Terminator;
-    t1_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t1_1.setWidth(20);
-    t1_1.setHeight(10);
-    t1_1.setBackgroundColor("green");
-    hbl1.add(t1_1);
-
-    t1_1.addEventListener("click", function() {
-      this.setWidth(this.getWidth() == 20 ? 100 : 20);
-    });
-
-    var t1_2 = new qx.ui.basic.Terminator;
-    t1_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t1_2.setWidth("1*");
-    t1_2.setHeight(10);
-    t1_2.setBackgroundColor("blue");
-    hbl1.add(t1_2);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE 2:
-
-    *********************************************** */
-
-    var te2 = new qx.ui.basic.Label("#2");
-    te2.setLocation(20, 68);
-    d.add(te2);
-
-    var hbl2 = new qx.ui.layout.HorizontalBoxLayout;
-    hbl2.setLeft(50);
-    hbl2.setTop(68);
-    hbl2.setRight(335);
-    hbl2.setWidth(null);
-    hbl2.setHeight("auto");
-    hbl2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl2.setSpacing(4);
-    hbl2.setPadding(2);
-    d.add(hbl2);
-
-    var t2_1 = new qx.ui.basic.Terminator;
-    t2_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t2_1.setWidth("1*");
-    t2_1.setHeight(10);
-    t2_1.setBackgroundColor("green");
-    hbl2.add(t2_1);
-
-    var t2_2 = new qx.ui.basic.Terminator;
-    t2_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t2_2.setWidth("1*");
-    t2_2.setHeight(10);
-    t2_2.setBackgroundColor("blue");
-    hbl2.add(t2_2);
-
-
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE 3:
-
-    *********************************************** */
-
-    var te3 = new qx.ui.basic.Label("#3");
-    te3.setLocation(20, 88);
-    d.add(te3);
-
-    var hbl3 = new qx.ui.layout.HorizontalBoxLayout;
-    hbl3.setLeft(50);
-    hbl3.setTop(88);
-    hbl3.setRight(335);
-    hbl3.setWidth(null);
-    hbl3.setHeight("auto");
-    hbl3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl3.setSpacing(4);
-    hbl3.setPadding(2);
-    d.add(hbl3);
-
-    var t3_1 = new qx.ui.basic.Terminator;
-    t3_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t3_1.setWidth("1*");
-    t3_1.setHeight(10);
-    t3_1.setBackgroundColor("green");
-    hbl3.add(t3_1);
-
-    var t3_2 = new qx.ui.basic.Terminator;
-    t3_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t3_2.setWidth("2*");
-    t3_2.setHeight(10);
-    t3_2.setBackgroundColor("blue");
-    hbl3.add(t3_2);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE 4:
-
-    *********************************************** */
-
-    var te4 = new qx.ui.basic.Label("#4");
-    te4.setLocation(20, 128);
-    d.add(te4);
-
-    var hbl4 = new qx.ui.layout.HorizontalBoxLayout;
-    hbl4.setLeft(50);
-    hbl4.setTop(128);
-    hbl4.setRight(335);
-    hbl4.setWidth(null);
-    hbl4.setHeight("auto");
-    hbl4.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl4.setSpacing(4);
-    hbl4.setPadding(2);
-    d.add(hbl4);
-
-    var t4_1 = new qx.ui.basic.Terminator;
-    t4_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t4_1.setWidth("1*");
-    t4_1.setHeight(10);
-    t4_1.setBackgroundColor("green");
-    hbl4.add(t4_1);
-
-    var t4_2 = new qx.ui.basic.Terminator;
-    t4_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t4_2.setWidth("2*");
-    t4_2.setHeight(10);
-    t4_2.setMaxWidth(50);
-    t4_2.setBackgroundColor("blue");
-    hbl4.add(t4_2);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE 5:
-
-    *********************************************** */
-
-    var te5 = new qx.ui.basic.Label("#5");
-    te5.setLocation(20, 148);
-    d.add(te5);
-
-    var hbl5 = new qx.ui.layout.HorizontalBoxLayout;
-    hbl5.setLeft(50);
-    hbl5.setTop(148);
-    hbl5.setRight(335);
-    hbl5.setWidth(null);
-    hbl5.setHeight("auto");
-    hbl5.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl5.setSpacing(4);
-    hbl5.setPadding(2);
-    hbl5.setUseAdvancedFlexAllocation(true);
-    d.add(hbl5);
-
-    var t5_1 = new qx.ui.basic.Terminator;
-    t5_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t5_1.setWidth("1*");
-    t5_1.setHeight(10);
-    t5_1.setBackgroundColor("green");
-    hbl5.add(t5_1);
-
-    var t5_2 = new qx.ui.basic.Terminator;
-    t5_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t5_2.setWidth("2*");
-    t5_2.setHeight(10);
-    t5_2.setMaxWidth(50);
-    t5_2.setBackgroundColor("blue");
-    hbl5.add(t5_2);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE 6:
-
-    *********************************************** */
-
-    var te6 = new qx.ui.basic.Label("#6");
-    te6.setLocation(20, 188);
-    d.add(te6);
-
-    var hbl6 = new qx.ui.layout.HorizontalBoxLayout;
-    hbl6.setLeft(50);
-    hbl6.setTop(188);
-    hbl6.setRight(335);
-    hbl6.setWidth(null);
-    hbl6.setHeight("auto");
-    hbl6.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl6.setSpacing(4);
-    hbl6.setPadding(2);
-    d.add(hbl6);
-
-    var t6_1 = new qx.ui.basic.Terminator;
-    t6_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t6_1.setWidth("1*");
-    t6_1.setHeight(10);
-    t6_1.setBackgroundColor("green");
-    hbl6.add(t6_1);
-
-    var t6_2 = new qx.ui.basic.Terminator;
-    t6_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t6_2.setWidth("2*");
-    t6_2.setHeight(10);
-    t6_2.setMinWidth(500);
-    t6_2.setBackgroundColor("blue");
-    hbl6.add(t6_2);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE 7:
-
-    *********************************************** */
-
-    var te7 = new qx.ui.basic.Label("#7");
-    te7.setLocation(20, 208);
-    d.add(te7);
-
-    var hbl7 = new qx.ui.layout.HorizontalBoxLayout;
-    hbl7.setLeft(50);
-    hbl7.setTop(208);
-    hbl7.setRight(335);
-    hbl7.setWidth(null);
-    hbl7.setHeight("auto");
-    hbl7.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl7.setSpacing(4);
-    hbl7.setPadding(2);
-    hbl7.setUseAdvancedFlexAllocation(true);
-    d.add(hbl7);
-
-    var t7_1 = new qx.ui.basic.Terminator;
-    t7_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t7_1.setWidth("1*");
-    t7_1.setHeight(10);
-    t7_1.setBackgroundColor("green");
-    hbl7.add(t7_1);
-
-    var t7_2 = new qx.ui.basic.Terminator;
-    t7_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t7_2.setWidth("2*");
-    t7_2.setHeight(10);
-    t7_2.setMinWidth(500);
-    t7_2.setBackgroundColor("blue");
-    hbl7.add(t7_2);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE 8:
-
-    *********************************************** */
-
-    var te8 = new qx.ui.basic.Label("#8");
-    te8.setLocation(20, 248);
-    d.add(te8);
-
-    var hbl8 = new qx.ui.layout.HorizontalBoxLayout;
-    hbl8.setLeft(50);
-    hbl8.setTop(248);
-    hbl8.setRight(335);
-    hbl8.setWidth(null);
-    hbl8.setHeight("auto");
-    hbl8.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl8.setSpacing(4);
-    hbl8.setPadding(2);
-    d.add(hbl8);
-
-    var t8_1 = new qx.ui.basic.Terminator;
-    t8_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t8_1.setWidth("1*");
-    t8_1.setHeight(10);
-    t8_1.setBackgroundColor("green");
-    hbl8.add(t8_1);
-
-    var t8_2 = new qx.ui.basic.Terminator;
-    t8_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t8_2.setWidth("2*");
-    t8_2.setHeight(10);
-    t8_2.setBackgroundColor("blue");
-    t8_2.setMaxWidth(50);
-    hbl8.add(t8_2);
-
-    var t8_3 = new qx.ui.basic.Terminator;
-    t8_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t8_3.setWidth("3*");
-    t8_3.setHeight(10);
-    t8_3.setBackgroundColor("red");
-    hbl8.add(t8_3);
-
-
-
-    /* ***********************************************
-
-       EXAMPLE 9:
-
-    *********************************************** */
-
-    var te9 = new qx.ui.basic.Label("#9");
-    te9.setLocation(20, 268);
-    d.add(te9);
-
-    var hbl9 = new qx.ui.layout.HorizontalBoxLayout;
-    hbl9.setLeft(50);
-    hbl9.setTop(268);
-    hbl9.setRight(335);
-    hbl9.setWidth(null);
-    hbl9.setHeight("auto");
-    hbl9.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl9.setSpacing(4);
-    hbl9.setPadding(2);
-    hbl9.setUseAdvancedFlexAllocation(true);
-    d.add(hbl9);
-
-    var t9_1 = new qx.ui.basic.Terminator;
-    t9_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t9_1.setWidth("1*");
-    t9_1.setHeight(10);
-    t9_1.setBackgroundColor("green");
-    hbl9.add(t9_1);
-
-    var t9_2 = new qx.ui.basic.Terminator;
-    t9_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t9_2.setWidth("2*");
-    t9_2.setHeight(10);
-    t9_2.setBackgroundColor("blue");
-    t9_2.setMaxWidth(50);
-    hbl9.add(t9_2);
-
-    var t9_3 = new qx.ui.basic.Terminator;
-    t9_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t9_3.setWidth("3*");
-    t9_3.setHeight(10);
-    t9_3.setBackgroundColor("red");
-    hbl9.add(t9_3);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE 10:
-
-    *********************************************** */
-
-    var te10 = new qx.ui.basic.Label("#10");
-    te10.setLocation(20, 308);
-    d.add(te10);
-
-    var hbl10 = new qx.ui.layout.HorizontalBoxLayout;
-    hbl10.setLeft(50);
-    hbl10.setTop(308);
-    hbl10.setRight(335);
-    hbl10.setWidth(null);
-    hbl10.setHeight("auto");
-    hbl10.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl10.setSpacing(4);
-    hbl10.setPadding(2);
-    hbl10.setUseAdvancedFlexAllocation(true);
-    d.add(hbl10);
-
-    var t10_1 = new qx.ui.basic.Terminator;
-    t10_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t10_1.setWidth("1*");
-    t10_1.setHeight(10);
-    t10_1.setBackgroundColor("green");
-    t10_1.addEventListener("click", function(e) { this.setWidth(this.getWidth() == "1*" ? "4*" : "1*"); });
-    hbl10.add(t10_1);
-
-    var t10_2 = new qx.ui.basic.Terminator;
-    t10_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t10_2.setWidth("2*");
-    t10_2.setHeight(10);
-    t10_2.setBackgroundColor("blue");
-    t10_2.addEventListener("click", function(e) { this.setWidth(this.getWidth() == "2*" ? "1*" : "2*"); });
-    hbl10.add(t10_2);
-
-    var t10_3 = new qx.ui.basic.Terminator;
-    t10_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t10_3.setWidth("3*");
-    t10_3.setHeight(10);
-    t10_3.setBackgroundColor("red");
-    t10_3.addEventListener("click", function(e) { this.setWidth(this.getWidth() == "3*" ? "6*" : "3*"); });
-    hbl10.add(t10_3);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE 11:
-
-    *********************************************** */
-
-    var te11 = new qx.ui.basic.Label("#11");
-    te11.setLocation(20, 328);
-    d.add(te11);
-
-    var hbl11 = new qx.ui.layout.HorizontalBoxLayout;
-    hbl11.setLeft(50);
-    hbl11.setTop(328);
-    hbl11.setRight(335);
-    hbl11.setWidth(null);
-    hbl11.setHeight("auto");
-    hbl11.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl11.setSpacing(4);
-    hbl11.setPadding(2);
-    d.add(hbl11);
-
-    var t11_1 = new qx.ui.basic.Terminator;
-    t11_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t11_1.setWidth("1*");
-    t11_1.setHeight(10);
-    t11_1.setBackgroundColor("green");
-    hbl11.add(t11_1);
-
-    var t11_2 = new qx.ui.basic.Terminator;
-    t11_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t11_2.setWidth(80);
-    t11_2.setHeight(10);
-    t11_2.setBackgroundColor("blue");
-    hbl11.add(t11_2);
-
-    var t11_3 = new qx.ui.basic.Terminator;
-    t11_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t11_3.setWidth("3*");
-    t11_3.setHeight(10);
-    t11_3.setBackgroundColor("red");
-    hbl11.add(t11_3);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE 12:
-
-    *********************************************** */
-
-    var te12 = new qx.ui.basic.Label("#12");
-    te12.setLocation(20, 348);
-    d.add(te12);
-
-    var hbl12 = new qx.ui.layout.HorizontalBoxLayout;
-    hbl12.setLeft(50);
-    hbl12.setTop(348);
-    hbl12.setHeight("auto");
-    hbl12.setWidth("auto");
-    hbl12.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl12.setSpacing(4);
-    hbl12.setPadding(2);
-    d.add(hbl12);
-
-    var t12_1 = new qx.ui.basic.Terminator;
-    t12_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t12_1.setWidth("1*");
-    t12_1.setHeight(10);
-    t12_1.setBackgroundColor("green");
-    hbl12.add(t12_1);
-
-    var t12_2 = new qx.ui.basic.Terminator;
-    t12_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t12_2.setWidth(80);
-    t12_2.setHeight(10);
-    t12_2.setBackgroundColor("blue");
-    hbl12.add(t12_2);
-
-    var t12_3 = new qx.ui.basic.Terminator;
-    t12_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t12_3.setWidth("3*");
-    t12_3.setHeight(10);
-    t12_3.setBackgroundColor("red");
-    hbl12.add(t12_3);
-
-
-
-    /* ***********************************************
-
-       EXAMPLE 13:
-
-    *********************************************** */
-
-    var te13 = new qx.ui.basic.Label("#13");
-    te13.setLocation(20, 388);
-    d.add(te13);
-
-    var hbl13 = new qx.ui.layout.HorizontalBoxLayout;
-    hbl13.setLeft(50);
-    hbl13.setTop(388);
-    hbl13.setRight(335);
-    hbl13.setWidth(null);
-    hbl13.setHeight("auto");
-    hbl13.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl13.setSpacing(4);
-    hbl13.setPadding(2);
-    d.add(hbl13);
-
-    var t13_1 = new qx.ui.basic.Terminator;
-    t13_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t13_1.setWidth(200);
-    t13_1.setHeight(10);
-    t13_1.setBackgroundColor("green");
-    hbl13.add(t13_1);
-
-    var t13_2 = new qx.ui.form.TextField("http://qooxdoo.org");
-    t13_2.setWidth("1*");
-    t13_2.setStyleProperty("fontSize", "16px");
-    hbl13.add(t13_2);
-
-    var t13_3 = new qx.ui.form.Button(null, "icon/16/actions/dialog-ok.png");
-    hbl13.add(t13_3);
-
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/HtmlTable_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/HtmlTable_1.html
deleted file mode 100644 (file)
index ff20fa9..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <style type="text/css">*{ font-size: 10px; font-family: Verdana }</style>
-
-  <div id="demoDescription">
-    <p>Test table.</p>
-  </div>
-
-  <textarea id="info" style="position:absolute; top:48px; left:20px; width:600px;height:50px;border:1px solid black"></textarea>
-  <div id="view" style="position:absolute;top:148px;left:20px;width:400px;height:500px;border:1px solid black"></div>
-  <div id="scroller" style="position: absolute; top:148px; left:420px;height:500px;width:24px;border:1px solid black;overflow:scroll"><div id="scrollerContent" style="width:1px;height:5000px"></div></div>
-
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var updateCount = 0;
-
-    var tableHeight = 512;
-
-    var entryCount = 1000;
-
-    var rowHeight = 16;
-    var rowCount = Math.floor(tableHeight / rowHeight);
-
-    var view = document.getElementById("view");
-    var info = document.getElementById("info");
-    var scroller = document.getElementById("scroller");
-    var scrollerContent = document.getElementById("scrollerContent");
-
-
-
-    view.style.height = scroller.style.height = tableHeight + "px";
-    scrollerContent.style.height = Math.round(entryCount / rowCount * tableHeight) + "px";
-
-
-
-
-    var data = [];
-
-    for (var i=0; i<1000; i++) {
-      data.push({ col1 : "hello" + i, col2 : "world" + i, col3 : "foo" + i, col4 : "bar" + i, col5 : "baz" + i });
-    };
-
-    var cache = [];
-
-    var undef = "undefined";
-
-    var HTML =
-    {
-      table_start : "<table><tbody>",
-      table_end : "</tbody></table>",
-
-      tr_start : "<tr>",
-      tr_start_open : "<tr ",
-      tr_start_close : ">",
-      tr_end : "<tr>",
-
-      td_start : "<td>",
-      td_end : "</td>"
-    };
-
-    function arrayAppend(arr, a) {
-      Array.prototype.push.apply(arr, a);
-    };
-
-    function getCellHtml(cdata)
-    {
-      var html = [ HTML.td_start, cdata, HTML.td_end ];
-
-      return html;
-    };
-
-    function getRowHtml(rdata, nr)
-    {
-      if (typeof cache[nr] != undef) {
-        return cache[nr];
-      };
-
-      var html = [];
-      html.push(HTML.tr_start_open);
-
-      if (nr % 2 == 0)
-      {
-        html.push("style='background-color:#fff'");
-      };
-
-      html.push(HTML.tr_start_close);
-
-      for (var row in rdata) {
-        arrayAppend(html, getCellHtml(rdata[row]));
-      };
-
-      html.push(HTML.tr_stop);
-
-      cache[nr] = html;
-
-      return html;
-    };
-
-    function buildTableHtml(start, len)
-    {
-      var ttstart = (new Date).valueOf();
-
-      var html = [];
-
-      html.push(HTML.table_start);
-
-      for (var i=start, s=start+len; i<s; i++) {
-        arrayAppend(html, getRowHtml(data[i], i));
-      };
-
-      html.push(HTML.table_end);
-      view.innerHTML = html.join("");
-
-      updateCount++;
-
-      var ttend = (new Date).valueOf();
-      info.value = "Update: " + updateCount + "\nRows: " + start + " - " + (start+len) + "\n" + (ttend-ttstart) + "ms\n";
-    };
-
-    function doscroll() {
-      buildTableHtml(Math.floor(scroller.scrollTop/rowHeight), rowCount);
-    };
-
-    qx.html.EventRegistration.addEventListener(scroller, "scroll", doscroll);
-    doscroll();
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/HtmlTable_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/HtmlTable_2.html
deleted file mode 100644 (file)
index 2a07500..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test table with fixed column widths: 100, 50, 10, 30 and 20 pixel.</p>
-  </div>
-
-  <textarea id="info" style="position:absolute; top:48px; left:20px; width:600px;height:50px;border:1px solid black"></textarea>
-  <div id="view" style="position:absolute;top:148px;left:20px;width:400px;height:500px;border:1px solid black"></div>
-  <div id="scroller" style="position: absolute; top:148px; left:420px;height:500px;width:24px;border:1px solid black;overflow:scroll"><div id="scrollerContent" style="width:1px;height:5000px"></div></div>
-
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var updateCount = 0;
-
-    var tableHeight = 512;
-
-    var entryCount = 1000;
-
-    var rowHeight = 16;
-    var rowCount = Math.floor(tableHeight / rowHeight);
-
-    var view = document.getElementById("view");
-    var info = document.getElementById("info");
-    var scroller = document.getElementById("scroller");
-    var scrollerContent = document.getElementById("scrollerContent");
-
-
-
-    view.style.height = scroller.style.height = tableHeight + "px";
-    scrollerContent.style.height = Math.round(entryCount / rowCount * tableHeight) + "px";
-
-
-
-
-    var data = [];
-
-    for (var i=0; i<1000; i++) {
-      data.push({ col1 : "hello" + i, col2 : "world" + i, col3 : "foo" + i, col4 : "bar" + i, col5 : "baz" + i });
-    };
-
-    var cache = [];
-
-    var undef = "undefined";
-
-    var HTML =
-    {
-      table_start : '<table cellspacing="0" cellpadding="0" style="table-layout:fixed;width:210px"><colgroup><col width="100"/><col width="50"/><col width="10"/><col width="30"/><col width="20"/></colgroup><tbody>',
-      table_end : "</tbody></table>",
-
-      tr_start : "<tr>",
-      tr_start_open : "<tr ",
-      tr_start_close : ">",
-      tr_end : "<tr>",
-
-      td_start : '<td style="overflow:hidden;height:15px;border-right:1px solid red;border-bottom:1px solid red;padding-left:2px;padding-right:2px">',
-      td_end : "</td>"
-    };
-
-    function arrayAppend(arr, a) {
-      Array.prototype.push.apply(arr, a);
-    };
-
-    function getCellHtml(cdata)
-    {
-      var html = [ HTML.td_start, cdata, HTML.td_end ];
-
-      return html;
-    };
-
-    function getRowHtml(rdata, nr)
-    {
-      if (typeof cache[nr] != undef) {
-        return cache[nr];
-      };
-
-      var html = [];
-      html.push(HTML.tr_start_open);
-
-      if (nr % 2 == 0)
-      {
-        html.push("style='background-color:#fff'");
-      };
-
-      html.push(HTML.tr_start_close);
-
-      for (var row in rdata) {
-        arrayAppend(html, getCellHtml(rdata[row]));
-      };
-
-      html.push(HTML.tr_stop);
-
-      cache[nr] = html;
-
-      return html;
-    };
-
-    function buildTableHtml(start, len)
-    {
-      var ttstart = (new Date).valueOf();
-
-      var html = [];
-
-      html.push(HTML.table_start);
-
-      for (var i=start, s=start+len; i<s; i++) {
-        arrayAppend(html, getRowHtml(data[i], i));
-      };
-
-      html.push(HTML.table_end);
-      view.innerHTML = html.join("");
-
-      updateCount++;
-
-      var ttend = (new Date).valueOf();
-      info.value = "Update: " + updateCount + "\nRows: " + start + " - " + (start+len) + "\n" + (ttend-ttstart) + "ms\n";
-    };
-
-    function doscroll() {
-      buildTableHtml(Math.floor(scroller.scrollTop/rowHeight), rowCount);
-    };
-
-    qx.html.EventRegistration.addEventListener(scroller, "scroll", doscroll);
-    doscroll();
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/IconHtml_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/IconHtml_1.html
deleted file mode 100644 (file)
index 186a306..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing qx.ui.embed.IconHtmlEmbed.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var l1 = new qx.ui.embed.IconHtmlEmbed("Hello World", "icon/32/apps/office-organizer.png", 32, 32);
-
-    l1.setLocation(20, 48);
-
-    qx.ui.core.ClientDocument.getInstance().add(l1);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Image_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Image_1.html
deleted file mode 100644 (file)
index 33b0c2d..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>This is a test for the qx.ui.basic.Image constructor. It supports automatic preloading through qx.io.image.Preloader, with error and load
-    QxEvents which will be fired, and cross-browser PNG with extended alpha channels.</p>
-
-    <p>PNG file in HTML (in Internet Explorer this should not be transparent):</p>
-    <img src="../../../../../framework/source/resource/icon/CrystalClear/48/categories/applications-games.png" width="48" height="48"/>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var i1 = new qx.ui.basic.Image("icon/64/apps/accessories-archiver.png", 48, 48);
-    with(i1)
-    {
-      setTop(48);
-      setLeft(20);
-    };
-
-    d.add(i1);
-
-
-
-    var i2 = new qx.ui.basic.Image("icon/64/apps/accessories-archiver.png", 48, 48);
-    with(i2)
-    {
-      setTop(48);
-      setLeft(100);
-    };
-
-    d.add(i2);
-
-
-
-
-    var i3 = new qx.ui.basic.Image("icon/64/apps/accessories-archiver.png", 96, 96);
-    with(i3)
-    {
-      setTop(120);
-      setLeft(60);
-      setResizeToInner(true);
-    };
-
-    /*
-    i3.addEventListener("load", function() {
-      new QxDebug("Bigger Symbol", "Preferred (Original) Size: " + this.getPreferredBoxWidth() + "x" + this.getPreferredBoxHeight());
-    });
-    */
-
-    d.add(i3);
-
-
-
-
-    var i4 = new qx.ui.basic.Image("icon/64/apps/accessories-archiver.png", 24, 24);
-    with(i4)
-    {
-      setTop(120);
-      setLeft(20);
-      setResizeToInner(true);
-    };
-
-    /*
-    i4.addEventListener("load", function() {
-      new QxDebug("Smaller Symbol", "Preferred (Original) Size: " + this.getPreferredBoxWidth() + "x" + this.getPreferredBoxHeight());
-    });
-    */
-
-    d.add(i4);
-
-
-
-
-    var i5 = new qx.ui.basic.Image("http://www.google.com/images/google_sm.gif");
-    with(i5)
-    {
-      setTop(300);
-      setLeft(20);
-    };
-
-    /*
-    i5.addEventListener("load", function() {
-      new QxDebug("Google Image", "Preferred (Original) Size: " + this.getPreferredBoxWidth() + "x" + this.getPreferredBoxHeight());
-    });
-    */
-
-    d.add(i5);
-
-
-
-
-
-    // Icon Themes
-    qx.manager.object.ImageManager.getInstance().createThemeList(d, 300, 48);
-
-
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Image_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Image_2.html
deleted file mode 100644 (file)
index 97752e4..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    Some advanced tests for qx.ui.basic.Image. Click on the fourth and fivth image to test the reflow possibilities.
-    The debug log gives you information of the preferred dimensions.
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var i1 = new qx.ui.basic.Image("icon/64/places/folder.png");
-    
-    i1.setLeft(20);
-    i1.setTop(48);
-    
-    i1.addEventListener("load", function() {
-      this.debug("Image 1: " + this.getPreferredBoxWidth() + "x" + this.getPreferredBoxHeight());
-    });
-    
-
-
-    var i2 = new qx.ui.basic.Image("icon/64/places/folder.png");
-    
-    i2.setLeft(120);
-    i2.setTop(48);
-    i2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    i2.setPadding(2, 4);    
-    
-    i2.addEventListener("load", function() {
-      this.debug("Image 2: " + this.getPreferredBoxWidth() + "x" + this.getPreferredBoxHeight());
-    });
-
-
-    
-    var i3 = new qx.ui.basic.Image("icon/64/places/folder.png");
-    
-    i3.setLeft(220);
-    i3.setTop(48);
-    i3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    i3.setPadding(8);    
-    i3.setOpacity(0.5);
-    
-    i3.addEventListener("load", function() {
-      this.debug("Image 3: " + this.getPreferredBoxWidth() + "x" + this.getPreferredBoxHeight());
-    });
-
-
-    
-    var i4 = new qx.ui.basic.Image("icon/64/places/folder.png");
-    
-    i4.setLeft(320);
-    i4.setTop(48);
-    i4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    i4.setPadding(2, 4);     
-    
-    i4.addEventListener("load", function() {
-      this.debug("Image 4: " + this.getPreferredBoxWidth() + "x" + this.getPreferredBoxHeight());
-    });    
-
-    i4.addEventListener("click", function() {
-      this.setSource(this.getSource() == "icon/64/places/folder.png" ? "icon/32/actions/system-run.png" : "icon/64/places/folder.png");
-    });    
-    
-
-    
-     
-    
-    var i5w1 = new qx.ui.layout.CanvasLayout;
-    i5w1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    i5w1.setPadding(8);
-    i5w1.setLeft(420);
-    i5w1.setTop(48);
-    i5w1.setWidth("auto");
-    i5w1.setHeight("auto");
-        
-    var i5w2 = new qx.ui.layout.CanvasLayout;
-    i5w2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    i5w2.setPadding(8);
-    i5w2.setLeft(0);
-    i5w2.setTop(0);
-    i5w2.setWidth("auto");
-    i5w2.setHeight("auto");
-
-    var i5w3 = new qx.ui.layout.CanvasLayout;
-    i5w3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    i5w3.setPadding(8);
-    i5w3.setLeft(0);
-    i5w3.setTop(0);
-    i5w3.setWidth("auto");
-    i5w3.setHeight("auto");
-    
-    var i5 = new qx.ui.basic.Image("icon/64/places/folder.png");
-    
-    i5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    i5.setPadding(2, 4);     
-    
-    i5.addEventListener("load", function() {
-      this.debug("Image 4: " + this.getPreferredBoxWidth() + "x" + this.getPreferredBoxHeight());
-    });    
-
-    i5.addEventListener("click", function() {
-      this.setSource(this.getSource() == "icon/64/places/folder.png" ? "icon/32/actions/system-run.png" : "icon/64/places/folder.png");
-    });    
-
-    i5w1.add(i5w2);
-    i5w2.add(i5w3);
-    i5w3.add(i5);
-    d.add(i5w1);
-    
-
-    
-    var i6 = new qx.ui.basic.Image("icon/128/apps/graphics-image-viewer.png");
-    i6.setLeft(20);
-    i6.setRight(400);
-    i6.setTop(200);
-    i6.setHeight(150);
-    i6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    i6.setWidth(null);
-
-    var i7 = new qx.ui.basic.Image("icon/128/apps/graphics-image-viewer.png");
-    i7.setLeft(20);
-    i7.setRight(400);
-    i7.setTop(400);
-    i7.setHeight(150);
-    i7.setBorder(qx.renderer.border.BorderPresets.getInstance().black);    
-    i7.setResizeToInner(true);
-    i7.setWidth(null);
-    
-
-
-    d.add(i1, i2, i3, i4, i6, i7); 
-
-
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Keyhandler_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Keyhandler_1.html
deleted file mode 100644 (file)
index 2860d07..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-
-       <style type="text/css">
-       #keylogger {
-               position: absolute;
-               width: 500px;
-               height: 500px;
-               left: 30px;
-               top: 40px;
-               color: black;
-               background-color: #EEE;
-               padding: 5px;
-               border: 1px inset;
-               overflow: scroll;
-               /* display:none; */
-       }
-       
-       table {
-               width: 100%;
-       }
-       
-       td {
-               text-align: center;
-       }
-       </style>
-       
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Keyhandler Test</p>
-               <p>Displays qoooxdoo's normalized key events.</p>
-  </div>
-
-  
-       <div id="keylogger">
-       </div>
-       
-       <script type="text/javascript">
-
-       qx.core.Init.getInstance().defineMain(function()
-       {
-               var tableHead = "<table><tr><th>Event</th><th>key identifier</th><th>key code</th><th>char code</th><th>Shift</th><th>Ctrl</th><th>Alt</th></tr>";
-               var keyEvents = [];
-               var maxLogSize = 50;
-               var logDiv = document.getElementById("keylogger");
-               
-               function initializeLogger() {
-                       logDiv.innerHTML = tableHead + "</table>";
-                       keyEvents = [];
-               }
-               
-               function logKeyEvent(keyEvent) {
-                       var eventCopy = {
-                               type: keyEvent.getType(),
-                               iden: keyEvent.getKeyIdentifier(),
-                               keyCode: keyEvent.getKeyCode(),
-                               charCode: keyEvent.getCharCode(),
-                               shift: keyEvent.getDomEvent().shiftKey,
-                               alt: keyEvent.getDomEvent().altKey,
-                               ctrl: keyEvent.getDomEvent().ctrlKey                            
-                       }
-                       keyEvents.unshift(eventCopy);
-                       keyEvents = keyEvents.slice(0, maxLogSize);
-                       str = [tableHead];
-                       for (var i=0; i<keyEvents.length; i++) {
-                               var e = keyEvents[i];
-                               str.push("<tr><td>");
-                               str.push(e.type);
-                               str.push("</td><td>");
-                               str.push(e.iden);
-                               str.push("</td><td>");
-                               str.push(e.keyCode);
-                               str.push("</td><td>");
-                               str.push(e.charCode);
-                               str.push("</td><td>");
-                               str.push(e.shift);
-                               str.push("</td><td>");
-                               str.push(e.ctrl);
-                               str.push("</td><td>");
-                               str.push(e.alt);
-                               str.push("</td></tr>");
-                       }
-                       str.push("</table>");
-                       logDiv.innerHTML = str.join("");
-                       logDiv.scrollTop = 0;
-               }
-               
-               initializeLogger();
-               
-               var d = qx.ui.core.ClientDocument.getInstance();
-               d.addEventListener("keydown", logKeyEvent);
-               d.addEventListener("keypress", logKeyEvent);
-               d.addEventListener("keyinput", logKeyEvent);
-               d.addEventListener("keyup", logKeyEvent);
-               
-               var button = new qx.ui.form.Button("clear");
-               button.set({
-                       left: 550,
-                       top: 40
-               });
-               button.addEventListener("execute", initializeLogger);
-               button.addToDocument();
-                
-  });
-               </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Label_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Label_1.html
deleted file mode 100644 (file)
index f0b8492..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    Some tests for qx.ui.basic.Label. Click on the third and fifth button like widget to test the reflow possibilities.
-    The debug log gives you information of the preferred dimensions.
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var c1 = new qx.ui.basic.Label("Hello qooxdoo!");
-
-    c1.setLeft(20);
-    c1.setTop(48);
-    c1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    c1.setPadding(2, 4);
-
-
-
-
-    var c2 = new qx.ui.basic.Label("<h1>Welcome to the qooxdoo universe</h1><p>Enjoy the new era of web interface development.</p>");
-
-    c2.setLeft(20);
-    c2.setTop(100);
-    c2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    c2.setPadding(8);
-
-
-
-
-    var c3 = new qx.ui.basic.Label("Delete temporary data", null, null, false);
-
-    c3.setLeft(20);
-    c3.setTop(200);
-    c3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    c3.setPadding(4, 6);
-    c3.setBackgroundColor(new qx.renderer.color.Color("white"));
-
-    c3.addEventListener("click", function() {
-      this.getHtml() == "Delete temporary data" ? this.setHtml("Thank you") : this.setHtml("Delete temporary data");
-    });
-
-
-
-
-    var c4 = new qx.ui.basic.Label("Hello qooxdoo!");
-
-    c4.setLeft(20);
-    c4.setTop(250);
-    c4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    c4.setPadding(2, 4);
-    c4.setStyleProperty("fontSize", "16px");
-    c4.setStyleProperty("fontWeight", "bold");
-    c4.setStyleProperty("fontStyle", "italic");
-    c4.setStyleProperty("textDecoration", "underline");
-    c4.setStyleProperty("textTransform", "uppercase");
-    c4.setFontPropertiesProfile("extended");
-
-
-
-
-
-    var c5 = new qx.ui.basic.Label("Delete temporary data", null, null, false);
-
-    c5.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    c5.setPadding(4, 6);
-    c5.setBackgroundColor(new qx.renderer.color.Color("white"));
-
-    c5.addEventListener("click", function() {
-      this.getHtml() == "Delete temporary data" ? this.setHtml("Thank you<br/>All your personal data was just deleted.<br/>Have Fun!") : this.setHtml("Delete temporary data");
-    });
-
-
-    var c5w = new qx.ui.layout.CanvasLayout;
-    c5w.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    c5w.setPadding(8);
-    c5w.setLeft(20);
-    c5w.setTop(350);
-    c5w.setWidth("auto");
-    c5w.setHeight("auto");
-
-    c5w.add(c5);
-    d.add(c5w);
-
-
-
-
-    var c6 = new qx.ui.basic.Label("This is a long label", "h");
-
-    c6.setTop(450);
-    c6.setLeft(20);
-    c6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-
-
-    var c7 = new qx.ui.basic.Label("This is a long label with long-words and more text", "l", null, false);
-
-    c7.setTop(490);
-    c7.setLeft(20);
-    c7.setPadding(4);
-    c7.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    c7.setBackgroundColor("white");
-
-    c7.addEventListener("click", function(e)
-    {
-      switch(this.getWidth())
-      {
-        case 50:
-          this.setWidth(100);
-          break;
-
-        case 100:
-          this.setWidth(150);
-          break;
-
-        case 150:
-          this.setWidth(200);
-          break;
-
-        case 200:
-          this.setWidth("auto");
-          break;
-
-        case "auto":
-          this.setWidth(50);
-          break;
-      };
-    });
-
-
-    var parent8 = new qx.ui.layout.VerticalBoxLayout();
-    parent8.set({ top:48, left:500, width:150, height:150, spacing:5,
-        border:qx.renderer.border.BorderPresets.getInstance().thinInset });
-    parent8.setPadding(5);
-    parent8.addEventListener("click", function() {
-      this.setWidth((this.getWidth() == 150) ? 200 : 150);
-    });
-
-    var clickHint = new qx.ui.basic.Label("Click me");
-    clickHint.set({ width:"100%", height:"auto", wrap:true,
-        border:qx.renderer.border.BorderPresets.getInstance().thinOutset });
-    parent8.add(clickHint);
-
-    var wrapLabel1 = new qx.ui.basic.Label("This is a label having a auto-height that needs wrapping");
-    wrapLabel1.set({ width:"100%", height:"auto", wrap:true,
-        border:qx.renderer.border.BorderPresets.getInstance().thinOutset });
-    parent8.add(wrapLabel1);
-
-    var wrapLabel2 = new qx.ui.basic.Label("This is a label having a auto-height that needs wrapping");
-    wrapLabel2.set({ width:"100%", height:"auto", wrap:true,
-        border:qx.renderer.border.BorderPresets.getInstance().thinOutset });
-    parent8.add(wrapLabel2);
-
-
-    d.add(c1, c2, c3, c4, c5w, c6, c7, parent8);
-
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Label_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Label_2.html
deleted file mode 100644 (file)
index bfc2fcc..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    qx.ui.basic.Label Stress Test
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-    
-    var c;
-    
-    for (var i=0; i<10; i++)
-    {
-      for (var j=0; j<20; j++)
-      {
-        c = new qx.ui.basic.Label("Test " + i + "|" + j);
-        
-        c.setLeft(20+(i*60));
-        c.setTop(48+(j*30));
-        
-        d.add(c);       
-      };   
-    }; 
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Label_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Label_3.html
deleted file mode 100644 (file)
index 33156a1..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Some tests for qx.ui.basic.Label. Click on the third and fifth button like widget to test the reflow possibilities.
-    The debug log gives you information of the preferred dimensions.</p>
-    <p>Tests for qx.renderer.font.Font added</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var c1 = new qx.ui.basic.Label("Hello qooxdoo!");
-
-    c1.setLeft(20);
-    c1.setTop(48);
-    c1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    c1.setPadding(2, 4);
-
-    c1.addEventListener("mouseover", function(e) {
-      this.setFont("20px bold");
-    });
-
-    c1.addEventListener("mouseout", function(e) {
-      this.setFont(null);
-    });
-
-
-
-    var c2 = new qx.ui.basic.Label("<h1>Welcome to the qooxdoo universe</h1><p>Enjoy the new era of web interface development.</p>");
-
-    c2.setLeft(20);
-    c2.setTop(100);
-    c2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    c2.setPadding(8);
-
-
-
-
-    var c3 = new qx.ui.basic.Label("Delete temporary data", null, null, false);
-
-    c3.setLeft(20);
-    c3.setTop(200);
-    c3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    c3.setPadding(4, 6);
-    c3.setBackgroundColor(new qx.renderer.color.Color("white"));
-
-    c3.addEventListener("click", function()
-    {
-      if (this.getHtml() == "Delete temporary data")
-      {
-        this.setHtml("Thank you");
-        this.setColor("red");
-        this.setFont("bold");
-      }
-      else
-      {
-        this.setHtml("Delete temporary data");
-        this.setColor(null);
-        this.setFont(null);
-      };
-    });
-
-
-
-
-    /*
-    var c4f = new qx.renderer.font.Font(16, "Times New Roman");
-    c4f.setBold(true);
-    c4f.setItalic(true);
-    c4f.setUnderline(true);
-    */
-
-    var c4 = new qx.ui.basic.Label("Hello qooxdoo!");
-
-    c4.setLeft(20);
-    c4.setTop(250);
-    c4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    c4.setPadding(2, 4);
-    // c4.setFont(c4f);
-
-    // implicit usage of qx.renderer.font.FontCache
-    c4.setFont("16px Times New Roman bold italic underline");
-
-
-
-
-
-    var c5 = new qx.ui.basic.Label("Delete temporary data", null, null, false);
-
-    c5.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    c5.setPadding(4, 6);
-    c5.setBackgroundColor(new qx.renderer.color.Color("white"));
-
-    // re-use instance from above
-    // c5.setFont("16px Times New Roman bold italic underline");
-
-    // this is also possible and will be automatically converted to a single space seperated string
-    c5.setFont(["16px", "Times New Roman", "bold", "italic", "underline"]);
-
-    c5.addEventListener("click", function() {
-      this.getHtml() == "Delete temporary data" ? this.setHtml("Thank you<br/>All your personal data was just deleted.<br/>Have Fun!") : this.setHtml("Delete temporary data");
-    });
-
-
-    var c5w = new qx.ui.layout.CanvasLayout;
-    c5w.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    c5w.setPadding(8);
-    c5w.setLeft(20);
-    c5w.setTop(350);
-    c5w.setWidth("auto");
-    c5w.setHeight("auto");
-
-    c5w.add(c5);
-    d.add(c5w);
-
-
-
-
-    var c6 = new qx.ui.basic.Label("This is a long label", "h");
-
-    c6.setTop(450);
-    c6.setLeft(20);
-    c6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-
-
-    var c7 = new qx.ui.basic.Label("This is a long label with long-words and more text", "l", null, false);
-
-    c7.setTop(490);
-    c7.setLeft(20);
-    c7.setPadding(4);
-    c7.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    c7.setBackgroundColor("white");
-
-    c7.addEventListener("click", function(e)
-    {
-      switch(this.getWidth())
-      {
-        case 50:
-          this.setWidth(100);
-          break;
-
-        case 100:
-          this.setWidth(150);
-          break;
-
-        case 150:
-          this.setWidth(200);
-          break;
-
-        case 200:
-          this.setWidth("auto");
-          break;
-
-        case "auto":
-          this.setWidth(50);
-          break;
-      };
-    });
-
-    d.add(c1, c2, c3, c4, c5w, c6, c7);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Label_4.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Label_4.html
deleted file mode 100644 (file)
index 30890ee..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing mnemonic support.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var c1 = new qx.ui.basic.Label("Hello qooxdoo!");
-
-    c1.setLeft(20);
-    c1.setTop(48);
-    c1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    c1.setPadding(2, 4);
-    c1.setMnemonic("q");
-
-    d.add(c1);
-
-
-
-    var c2 = new qx.ui.basic.Label("A qx.ui.basic.Label with some more text", "T");
-
-    c2.setLeft(20);
-    c2.setTop(98);
-    c2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    c2.setPadding(2, 4);
-
-    d.add(c2);
-
-
-
-
-    var c3 = new qx.ui.basic.Label("A qx.ui.basic.Label with some more text", "C");
-
-    c3.setLeft(20);
-    c3.setTop(148);
-    c3.setWidth(80);
-    c3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    c3.setPadding(2, 4);
-
-    d.add(c3);
-
-
-
-    var c4 = new qx.ui.basic.Label("Well done guy", "Q");
-
-    c4.setLeft(20);
-    c4.setTop(198);
-    c4.setWidth(70);
-    c4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    c4.setPadding(2, 4);
-
-    d.add(c4);
-
-
-
-    var c5 = new qx.ui.basic.Label("Well done guy", "Q");
-
-    c5.setLeft(20);
-    c5.setTop(248);
-    c5.setWidth("10%");
-    c5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    c5.setPadding(2, 4);
-
-    d.add(c5);
-
-
-
-
-
-    var a1 = new qx.ui.basic.Atom("Hello World", "icon/48/apps/graphics-snapshot.png")
-
-    a1.setLocation(250, 48);
-    a1.setWidth(100);
-    a1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    a1.setHorizontalChildrenAlign("left");
-
-    a1.getLabelObject().setMnemonic("H");
-    a1.getLabelObject().setWidth(50);
-
-    d.add(a1);
-
-
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Leak_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Leak_1.html
deleted file mode 100644 (file)
index e8e487e..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Leak-Test</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    // Does not leak
-    // *****
-
-    // var i1 = new qx.io.image.Preloader(qx.manager.object.ImageManager.buildUri("icon/48/hardwareinfo.png"));
-
-
-    // Leaks: +2MB
-    // *****
-
-    var w1 = new qx.ui.basic.Terminator;
-    qx.ui.core.ClientDocument.getInstance().add(w1);
-
-
-
-
-
-    // Does not leak
-    // *****
-    /*
-    var w1 = new qx.ui.basic.Terminator;
-    w1.setTop(48);
-    w1.setLeft(20);
-    qx.ui.core.ClientDocument.getInstance().add(w1);
-    */
-
-
-    // Leaks +2MB
-    // *****
-    /*
-    var i1 = new qx.ui.basic.Image("icon/48/hardwareinfo.png");
-    with(i1)
-    {
-      setTop(48);
-      setLeft(20);
-    };
-
-    qx.ui.core.ClientDocument.getInstance().add(i1);
-    */
-
-
-
-
-
-
-    //var t1 = new QxTarget;
-
-
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Link_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Link_1.html
deleted file mode 100644 (file)
index be852fb..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing link widget.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var l1 = new qx.ui.embed.LinkEmbed("Open Google", "http://www.google.com");
-    
-    l1.setLocation(20, 48);
-    
-    qx.ui.core.ClientDocument.getInstance().add(l1);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_1.html
deleted file mode 100644 (file)
index 1552c7b..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing qx.ui.listview.ListView with text cells.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var ld = [];
-      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
-
-      for (var i=0, t; i<1000; i++)
-      {
-        t=Math.round(Math.random()*4);
-        ld.push({ name : { text : "File " + i }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }});
-      };
-
-      var lc =
-      {
-        name : { label : "Name", width : 100, type : "text" },
-        size: { label : "Size", width : 50, type : "text", align : "right" },
-        type : { label : "Type", width : 80, type : "text" },
-        modified : { label : "Last Modified", width : 150, type : "text" },
-        rights : { label : "Rights", width: 80, type : "text" }
-      };
-
-      var lv = new qx.ui.listview.ListView(ld, lc);
-
-      lv.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
-      lv.setBackgroundColor("white");
-      lv.setWidth(600);
-      lv.setHeight(350);
-      lv.setLocation(20, 48);
-
-      qx.ui.core.ClientDocument.getInstance().add(lv);
-
-
-
-
-      // Color Themes
-      qx.manager.object.ColorManager.getInstance().createThemeList(qx.ui.core.ClientDocument.getInstance(), 20, 448);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_10.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_10.html
deleted file mode 100644 (file)
index 110f102..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing qx.ui.listview.ListView in a qx.ui.window.Window.</p>
-    <p>I am sorry, but this seems not to be fixable with the current layouter stuff in qooxdoo.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var w = new qx.ui.window.Window("ListView");
-      
-      w.setWidth(400);
-      w.setHeight(250);
-      w.setLocation(50, 50);
-      
-      qx.ui.core.ClientDocument.getInstance().add(w);
-      
-      
-      /*
-      var cont = new qx.ui.layout.CanvasLayout;
-      
-      cont.setEdge(0);
-      cont.setBackgroundColor("white");
-      
-      w.add(cont);
-      */
-      
-      
-      
-      
-      
-      
-      var ld = [];
-      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
-      
-      for (var i=0, t; i<1000; i++) 
-      {
-        t=Math.round(Math.random()*4);
-        ld.push({ name : { text : "File " + i }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }});
-      };
-      
-      var lc = 
-      {
-        name : { label : "Name", width : 100, type : "text" },
-        size: { label : "Size", width : 50, type : "text" },
-        type : { label : "Type", width : 80, type : "text" },
-        modified : { label : "Last Modified", width : 150, type : "text" },
-        rights : { label : "Rights", width: 80, type : "text" }
-      };
-      
-      var lv = new qx.ui.listview.ListView(ld, lc);
-
-      lv.setBackgroundColor("white");
-      lv.setEdge(0);
-      lv.setWidth(null);
-      lv.setHeight(null);
-      
-      w.add(lv);
-      //cont.add(lv);
-      
-      
-     
-   
-      w.open();
-      
-      
-      
-      
-      // Color Themes
-      qx.manager.object.ColorManager.getInstance().createThemeList(qx.ui.core.ClientDocument.getInstance(), 20, 448);      
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_2.html
deleted file mode 100644 (file)
index 18583c3..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing qx.ui.listview.ListView with text cells with an additional link.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var ld = [];
-      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
-
-      for (var i=0, t; i<1000; i++)
-      {
-        t=Math.round(Math.random()*4);
-        ld.push({ name : { text : "File " + i }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }, open : { uri : "http://www.google.com/search?q=" + i, html : "Open " + i }});
-      };
-
-      var lc =
-      {
-        name : { label : "Name", width : 100, type : "text" },
-        size: { label : "Size", width : 50, type : "text", align : "right" },
-        type : { label : "Type", width : 80, type : "text" },
-        modified : { label : "Last Modified", width : 150, type : "text" },
-        rights : { label : "Rights", width: 80, type : "text" },
-        open : { label : "", width : 100, type : "link" }
-      };
-
-      var lv = new qx.ui.listview.ListView(ld, lc);
-
-      lv.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
-      lv.setBackgroundColor("white");
-      lv.setWidth(600);
-      lv.setHeight(350);
-      lv.setLocation(20, 48);
-
-      qx.ui.core.ClientDocument.getInstance().add(lv);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_3.html
deleted file mode 100644 (file)
index 8a50413..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing qx.ui.listview.ListView with text cells.</p>
-    <p>Now with icons inside the header cells.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var ld = [];
-      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
-
-      for (var i=0, t; i<1000; i++)
-      {
-        t=Math.round(Math.random()*4);
-        ld.push({ name : { text : "File " + i }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }});
-      };
-
-      var lc =
-      {
-        name : { label : "Name", icon : "icon/16/categories/applications.png", width : 100, type : "text" },
-        size: { label : "Size", icon : "icon/16/devices/media-floppy.png", width : 50, type : "text", align : "right" },
-        type : { label : "Type", icon : "icon/16/apps/accessories-notes.png", width : 80, type : "text" },
-        modified : { label : "Last Modified", icon : "icon/16/apps/preferences.png", width : 150, type : "text" },
-        rights : { label : "Rights", icon : "icon/16/apps/system-users.png", width: 80, type : "text" }
-      };
-
-      var lv = new qx.ui.listview.ListView(ld, lc);
-
-      lv.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
-      lv.setBackgroundColor("white");
-      lv.setWidth(600);
-      lv.setHeight(350);
-      lv.setLocation(20, 48);
-
-      qx.ui.core.ClientDocument.getInstance().add(lv);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_4.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_4.html
deleted file mode 100644 (file)
index 1b20de0..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing qx.ui.listview.ListView with text cells.</p>
-    <p>This qx.ui.listview.ListView will be resized with the window.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var ld = [];
-      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
-
-      for (var i=0, t; i<1000; i++)
-      {
-        t=Math.round(Math.random()*4);
-        ld.push({ name : { text : "File " + i }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }});
-      };
-
-      var lc =
-      {
-        name : { label : "Name", width : 100, type : "text" },
-        size: { label : "Size", width : 50, type : "text", align : "right" },
-        type : { label : "Type", width : 80, type : "text" },
-        modified : { label : "Last Modified", width : 150, type : "text" },
-        rights : { label : "Rights", width: 80, type : "text" }
-      };
-
-      var lv = new qx.ui.listview.ListView(ld, lc);
-
-      lv.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
-      lv.setBackgroundColor("white");
-      lv.setLocation(20, 48);
-      lv.setRight(335);
-      lv.setBottom(48);
-
-      qx.ui.core.ClientDocument.getInstance().add(lv);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_5.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_5.html
deleted file mode 100644 (file)
index df9bcb0..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing qx.ui.listview.ListView with text cells.</p>
-    <p>This qx.ui.listview.ListView will be resized with the window.</p>
-    <p>Using percents for columns.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var ld = [];
-      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
-
-      for (var i=0, t; i<1000; i++)
-      {
-        t=Math.round(Math.random()*4);
-        ld.push({ name : { text : "File " + i }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }});
-      };
-
-      var lc =
-      {
-        name : { label : "Name", width : "30%", type : "text" },
-        size: { label : "Size", width : "10%", type : "text", align : "right" },
-        type : { label : "Type", width : "15%", type : "text" },
-        modified : { label : "Last Modified", width : "20%", type : "text" },
-        rights : { label : "Rights", width: "15%", type : "text" }
-      };
-
-      var lv = new qx.ui.listview.ListView(ld, lc);
-
-      lv.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
-      lv.setBackgroundColor("white");
-      lv.setLocation(20, 48);
-      lv.setRight(335);
-      lv.setBottom(48);
-
-      qx.ui.core.ClientDocument.getInstance().add(lv);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_6.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_6.html
deleted file mode 100644 (file)
index 1e917e5..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing qx.ui.listview.ListView with text cells.</p>
-    <p>Supports minimum and maximum width of columns.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var ld = [];
-      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
-
-      for (var i=0, t; i<1000; i++)
-      {
-        t=Math.round(Math.random()*4);
-        ld.push({ name : { text : "File " + i }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }});
-      };
-
-      var lc =
-      {
-        name : { label : "Name", width : 100, minWidth : "auto", type : "text" },
-        size: { label : "Size", width : 50, minWidth : 50, type : "text" },
-        type : { label : "Type", width : 80, minWidth : 80, type : "text" },
-        modified : { label : "Last Modified", width : 100, minWidth : 100, maxWidth : 100, type : "text" },
-        rights : { label : "Rights", width: 80, minWidth : 50, type : "text" }
-      };
-
-      var lv = new qx.ui.listview.ListView(ld, lc);
-
-      lv.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
-      lv.setBackgroundColor("white");
-      lv.setWidth(600);
-      lv.setHeight(350);
-      lv.setLocation(20, 48);
-
-      qx.ui.core.ClientDocument.getInstance().add(lv);
-
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_7.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_7.html
deleted file mode 100644 (file)
index 4532582..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing qx.ui.listview.ListView with text cells.</p>
-    <p>Added some buttons to fill/clear the list dynamically.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var ld = [];
-      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
-
-      var lc =
-      {
-        name : { label : "Name", width : 100, type : "text", sortable : true, sortProp : "text" },
-        size: { label : "Size", width : 50, type : "text", sortable : true, sortProp : "text", sortMethod : qx.util.Compare.byIntegerString },
-        type : { label : "Type", width : 80, type : "text", sortable : true, sortProp : "text" },
-        modified : { label : "Last Modified", width : 150, type : "text" },
-        rights : { label : "Rights", width: 80, type : "text" }
-      };
-
-      var lv = new qx.ui.listview.ListView(ld, lc);
-
-      lv.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
-      lv.setBackgroundColor("white");
-      lv.setWidth(500);
-      lv.setHeight(350);
-      lv.setLocation(20, 48);
-
-      qx.ui.core.ClientDocument.getInstance().add(lv);
-
-      function add(nu)
-      {
-        nu = nu||10;
-
-        for (var i=0, t; i<nu; i++)
-        {
-          t=Math.round(Math.random()*4);
-          ld.push({ name : { text : "File " + ld.length }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }});
-        };
-
-        lv.updateSort();
-        lv.update();
-      };
-
-      function remove(nu)
-      {
-        nu = Math.min(ld.length, nu || 10);
-
-        ld.splice(ld.length-nu, nu);
-
-        lv.updateSort();
-        lv.update();
-      };
-
-      function clear()
-      {
-        ld.removeAll();
-        lv.update();
-      };
-
-      var btnAdd10 = new qx.ui.form.Button("Add 10", "icon/16/actions/dialog-ok.png");
-      var btnAdd50 = new qx.ui.form.Button("Add 50", "icon/16/actions/dialog-ok.png");
-      var btnAdd100 = new qx.ui.form.Button("Add 100", "icon/16/actions/dialog-ok.png");
-      var btnAdd1000 = new qx.ui.form.Button("Add 1000", "icon/16/actions/dialog-ok.png");
-
-      var btnRemove10 = new qx.ui.form.Button("Remove 10", "icon/16/actions/dialog-ok.png");
-      var btnRemove50 = new qx.ui.form.Button("Remove 50", "icon/16/actions/dialog-ok.png");
-      var btnRemove100 = new qx.ui.form.Button("Remove 100", "icon/16/actions/dialog-ok.png");
-      var btnRemove1000 = new qx.ui.form.Button("Remove 1000", "icon/16/actions/dialog-ok.png");
-
-      var btnClear = new qx.ui.form.Button("Clear", "icon/16/actions/dialog-ok.png");
-
-      btnAdd10.setLocation(550, 48);
-      btnAdd50.setLocation(550, 78);
-      btnAdd100.setLocation(550, 108);
-      btnAdd1000.setLocation(550, 138);
-
-      btnRemove10.setLocation(550, 188);
-      btnRemove50.setLocation(550, 218);
-      btnRemove100.setLocation(550, 248);
-      btnRemove1000.setLocation(550, 278);
-
-      btnClear.setLocation(550, 328);
-
-      btnAdd10.addEventListener("execute", function(e) { add(10); });
-      btnAdd50.addEventListener("execute", function(e) { add(50); });
-      btnAdd100.addEventListener("execute", function(e) { add(100); });
-      btnAdd1000.addEventListener("execute", function(e) { add(1000); });
-
-      btnRemove10.addEventListener("execute", function(e) { remove(10); });
-      btnRemove50.addEventListener("execute", function(e) { remove(50); });
-      btnRemove100.addEventListener("execute", function(e) { remove(100); });
-      btnRemove1000.addEventListener("execute", function(e) { remove(1000); });
-
-      btnClear.addEventListener("execute", function(e) { clear(); });
-
-      qx.ui.core.ClientDocument.getInstance().add(btnAdd10, btnAdd50, btnAdd100, btnAdd1000, btnRemove10, btnRemove50, btnRemove100, btnRemove1000, btnClear);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_8.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_8.html
deleted file mode 100644 (file)
index 8ed5eb8..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing qx.ui.listview.ListView with text cells.</p>
-    <p>And with drag and drop between the two qx.ui.listview.ListViews.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var ld = [];
-      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
-      
-      for (var i=0, t; i<1000; i++) 
-      {
-        t=Math.round(Math.random()*4);
-        ld.push({ name : { text : "File " + i }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }});
-      };
-      
-      var lc1 = 
-      {
-        name : { label : "Name", width : 100, type : "text", sortable : true, sortProp : "text" },
-        size: { label : "Size", width : 50, type : "text", sortable : true, sortProp : "text", sortMethod : qx.util.Compare.byIntegerString },
-        type : { label : "Type", width : 80, type : "text", sortable : true, sortProp : "text" },
-        modified : { label : "Last Modified", width : 150, type : "text" },
-        rights : { label : "Rights", width: 80, type : "text" }
-      };
-      
-      var lc2 = 
-      {
-        name : { label : "Name", width : 100, type : "text", sortable : true, sortProp : "text" },
-        size: { label : "Size", width : 50, type : "text", sortable : true, sortProp : "text", sortMethod : qx.util.Compare.byIntegerString },
-        type : { label : "Type", width : 80, type : "text", sortable : true, sortProp : "text" },
-        modified : { label : "Last Modified", width : 150, type : "text" },
-        rights : { label : "Rights", width: 80, type : "text" }
-      };      
-      
-      
-      function handleDrag(e) 
-      {
-        e.addData("qx.ui.listview.ListViewEntries", qx.lang.Array.copy(e.getCurrentTarget().getManager().getSelectedItems()));
-        e.addAction("move");
-        e.startDrag();
-      };
-
-      function handleDrop(e) 
-      {
-        var type = e.getDropDataTypes()[0];
-        var data = e.getData(type);
-        
-        switch(e.getAction())
-        {
-          case "move":
-            sourceView.getPane().getManager().setSelectedItems([]);
-            sourceView.getPane().getManager().setAnchorItem(null);
-            sourceView.getPane().getManager().setLeadItem(null);          
-          
-            for (var i=0, l=data.length; i<l; i++) 
-            {
-              qx.lang.Array.remove(sourceView.getData(), data[i]);
-              destView.getData().push(data[i]);
-            };
-            
-            destView.getPane().getManager().setSelectedItems(data);
-            
-            sourceView.updateSort();
-            destView.updateSort();
-            
-            sourceView.update();
-            destView.update();
-        };        
-      };      
-      
-      
-      
-      
-      
-      var sourceView = new qx.ui.listview.ListView(ld, lc1);
-
-      sourceView.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
-      sourceView.setBackgroundColor("white");
-      sourceView.setWidth(600);
-      sourceView.setHeight(250);
-      sourceView.setLocation(20, 48);
-      
-      sourceView.getPane().getManager().setDragSelection(false);
-      sourceView.getPane().addEventListener("dragstart", handleDrag);
-      
-      qx.ui.core.ClientDocument.getInstance().add(sourceView);
-      
-      
-      
-      
-      var destView = new qx.ui.listview.ListView([], lc2);
-
-      destView.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
-      destView.setBackgroundColor("white");
-      destView.setWidth(600);
-      destView.setHeight(250);
-      destView.setLocation(20, 318);
-      
-      destView.getPane().getManager().setDragSelection(false);
-      destView.getPane().setDropDataTypes(["qx.ui.listview.ListViewEntries"]);
-      destView.getPane().addEventListener("dragdrop", handleDrop);          
-      
-      qx.ui.core.ClientDocument.getInstance().add(destView);      
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_9.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ListView_9.html
deleted file mode 100644 (file)
index 9810398..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing qx.ui.listview.ListView with text cells.</p>
-    <p>And with drag and drop between the two qx.ui.listview.ListViews.</p>
-    <p>Reduced columns for second listview.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var ld = [];
-      var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
-
-      for (var i=0, t; i<1000; i++)
-      {
-        t=Math.round(Math.random()*4);
-        ld.push({ name : { text : "File " + i }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }});
-      };
-
-      var lc1 =
-      {
-        name : { label : "Name", width : 100, type : "text", sortable : true, sortProp : "text" },
-        size: { label : "Size", width : 50, type : "text", sortable : true, sortProp : "text", sortMethod : qx.util.Compare.byIntegerString },
-        type : { label : "Type", width : 80, type : "text", sortable : true, sortProp : "text" },
-        modified : { label : "Last Modified", width : 150, type : "text" },
-        rights : { label : "Rights", width: 80, type : "text" }
-      };
-
-      var lc2 =
-      {
-        name : { label : "Name", width : 200, type : "text", sortable : true, sortProp : "text" },
-        type : { label : "Type", width : 80, type : "text", sortable : true, sortProp : "text" }
-      };
-
-
-      function handleDrag(e)
-      {
-        e.addData("qx.ui.listview.ListViewEntries", qx.lang.Array.copy(e.getCurrentTarget().getManager().getSelectedItems()));
-        e.addAction("move");
-        e.startDrag();
-      };
-
-      function handleDrop(e)
-      {
-        var type = e.getDropDataTypes()[0];
-        var data = e.getData(type);
-
-        switch(e.getAction())
-        {
-          case "move":
-            sourceView.getPane().getManager().setSelectedItems([]);
-            sourceView.getPane().getManager().setAnchorItem(null);
-            sourceView.getPane().getManager().setLeadItem(null);
-
-            for (var i=0, l=data.length; i<l; i++)
-            {
-              qx.lang.Array.remove(sourceView.getData(), data[i]);
-              destView.getData().push(data[i]);
-            };
-
-            destView.getPane().getManager().setSelectedItems(data);
-
-            sourceView.updateSort();
-            destView.updateSort();
-
-            sourceView.update();
-            destView.update();
-        };
-      };
-
-
-
-
-
-      var sourceView = new qx.ui.listview.ListView(ld, lc1);
-
-      sourceView.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
-      sourceView.setBackgroundColor("white");
-      sourceView.setWidth(600);
-      sourceView.setHeight(250);
-      sourceView.setLocation(20, 48);
-
-      sourceView.getPane().getManager().setDragSelection(false);
-      sourceView.getPane().addEventListener("dragstart", handleDrag);
-
-      qx.ui.core.ClientDocument.getInstance().add(sourceView);
-
-
-
-
-      var destView = new qx.ui.listview.ListView([], lc2);
-
-      destView.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
-      destView.setBackgroundColor("white");
-      destView.setWidth(600);
-      destView.setHeight(250);
-      destView.setLocation(20, 318);
-
-      destView.getPane().getManager().setDragSelection(false);
-      destView.getPane().setDropDataTypes(["qx.ui.listview.ListViewEntries"]);
-      destView.getPane().addEventListener("dragdrop", handleDrop);
-
-      qx.ui.core.ClientDocument.getInstance().add(destView);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/List_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/List_1.html
deleted file mode 100644 (file)
index d24e00f..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>List implementation. Now testing auto dimensions.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-
-      var l1 = new qx.ui.form.List;
-      
-      l1.set({ top : 48, left: 20, height: 200, width: "auto", overflow : "scrollY" });
-      
-      var item;
-      for( var i=1; i<=35; i++ ) 
-      {
-        // item = new qx.ui.form.ListItem("Item No " + i);
-        item = new qx.ui.form.ListItem("Item No " + i, "icon/" + ((i % 4) ? "16" : "48") + "/places/folder.png");
-        
-        !(i % 9) && (item.setEnabled(false));
-        
-        l1.add(item);
-      };
-      
-      d.add(l1);
-      
-      var l2 = new qx.ui.form.List;
-      
-      l2.set({ top : 48, left: 400, height: 200, width: "auto" });
-      l2.getManager().setMultiSelection(false);
-      //l2.setOverflow("scrollY");
-      l2.setHeight("auto");
-      
-      var l2l = [ "red", "violett", "rose", "blue", "green", "cyan", "magenta", "yellow", "brown", "orange", "black", "white", "grey", "gray", "brown" ];
-      
-      for (var i=0; i<l2l.length; i++) {
-        l2.add(new qx.ui.form.ListItem(l2l[i]));
-      };      
-      
-      d.add(l2);
-      
-
-      
-
-      var c1 = new qx.ui.form.CheckBox("Enable Multi-Selection");
-      var c2 = new qx.ui.form.CheckBox("Enable Drag-Selection");
-      var c3 = new qx.ui.form.CheckBox("Allow Deselection");
-      var c4 = new qx.ui.form.CheckBox("Enable Inline Find");
-
-      c1.setLocation(180, 48);
-      c2.setLocation(180, 68);
-      c3.setLocation(180, 88);
-      c4.setLocation(180, 108);
-      
-      d.add(c1, c2, c3, c4);
-      
-      c1.setChecked(true);
-      c2.setChecked(true);
-      c3.setChecked(true);
-      c4.setChecked(true);
-      
-      c1.addEventListener("changeChecked", function(e) {
-        l1.getManager().setMultiSelection(e.getData());
-      });
-      
-      c2.addEventListener("changeChecked", function(e) {
-        l1.getManager().setDragSelection(e.getData());
-      });
-
-      c3.addEventListener("changeChecked", function(e) {
-        l1.getManager().setCanDeselect(e.getData());
-      });
-      
-      c4.addEventListener("changeChecked", function(e) {
-        l1.setEnableInlineFind(e.getData());
-      });
-      
-      
-      
-      
-
-      var rd1 = new qx.ui.form.RadioButton("Show Label", "label");
-      var rd2 = new qx.ui.form.RadioButton("Show Icon", "icon");
-      var rd3 = new qx.ui.form.RadioButton("Show Both", "both");
-
-      rd1.set( { left: 180, top: 128 } );
-      rd2.set( { left: 180, top: 148 } );
-      rd3.set( { left: 180, top: 168 } );
-      
-      d.add(rd1, rd2, rd3);
-      
-      rd3.setChecked(true);
-
-      var rbm = new qx.manager.selection.RadioManager( name, [rd1, rd2, rd3]);
-
-      rbm.addEventListener("changeSelected", function(e)
-      {
-        for( var i=0; i<l1.getChildrenLength(); i++ ) {
-          l1.getChildren()[i].setShow(e.getData().getValue());
-        };
-      });
-      
-      
-
-      
-      
-      // Icon Themes
-      qx.manager.object.ImageManager.getInstance().createThemeList(d, 20, 348);
-    
-      // Color Themes
-      qx.manager.object.ColorManager.getInstance().createThemeList(d, 200, 348);      
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/List_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/List_2.html
deleted file mode 100644 (file)
index 480d7d0..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>List implementation</p>
-    <p>Drag and Drop Handling added</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var doc = qx.ui.core.ClientDocument.getInstance();
-
-      // Create list to drag from
-
-
-      var sourceList = new qx.ui.form.List();
-      sourceList.setWidth(100);
-      sourceList.setHeight(250);
-      sourceList.setLeft(20);
-      sourceList.setTop(48);
-
-      // Set vertical scroll bar to always visible
-      sourceList.setOverflow("scrollY");
-      // Set selection mode to single explicitly
-      // sourceList.getManager().setMultiSelection(false);
-      // Set drag selection mode to off
-      sourceList.getManager().setDragSelection(false);
-
-      // Add items to source list
-
-      for (var i = 1; i <= 10; i++) 
-      {
-        var item = new qx.ui.form.ListItem("Item " + i);
-        item.addEventListener("dragstart", handleStartDrag);
-        sourceList.add(item);
-      };
-
-      doc.add(sourceList);
-
-
-
-      // Create list to drop to
-
-      var destList = new qx.ui.form.List();
-      destList.setWidth(100);
-      destList.setHeight(250);
-      destList.setLeft(320);
-      destList.setTop(48);
-      
-      // Set vertical scroll bar to always visible
-      destList.setOverflow("scrollY");
-      // Set selection mode to single explicitly
-      // destList.getManager().setMultiSelection(false);
-      // Set drag selection mode to off
-      destList.getManager().setDragSelection(false);
-      
-      doc.add(destList);      
-
-      // Define event handlers
-
-      function handleStartDrag(e) 
-      {
-        e.addData("ListItems", qx.lang.Array.copy(sourceList.getManager().getSelectedItems()));
-        e.addAction("move");
-        e.startDrag();
-      };
-
-      function handleListDrop(e) 
-      {
-        var type = e.getDropDataTypes()[0];
-        var data = e.getData(type);
-
-        // this.debug("Drag&Drop Action: " + e.getAction());
-        
-        switch(e.getAction())
-        {
-          case "move":
-            sourceList.getManager().setSelectedItems([]);
-            sourceList.getManager().setAnchorItem(null);
-            sourceList.getManager().setLeadItem(null);
-          
-            for (var i=0, l=data.length; i<l; i++) {
-              destList.add(data[i]);
-            };
-            
-            destList.getManager().setSelectedItems(data);
-            break;
-        };
-      };
-
-
-
-      // Set event properties for destination list
-
-      destList.setDropDataTypes(["ListItems"]);
-      destList.addEventListener("dragdrop", handleListDrop);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/List_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/List_3.html
deleted file mode 100644 (file)
index bf92410..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>qx.ui.form.List Item Sorting demo</p>
-  </div>
-
-  <script type="text/javascript">
-   
-    qx.core.Init.getInstance().defineMain(function() {
-        var list = new qx.ui.form.List(); list.set({top:50,left:50,height:150,width:100});
-        
-        list.add(new qx.ui.form.ListItem('Will',null,'1'));
-        list.add(new qx.ui.form.ListItem('Anna',null,'2'));
-        list.add(new qx.ui.form.ListItem('Tom',null,'3'));
-        list.add(new qx.ui.form.ListItem('Diana',null,'4'));
-        list.add(new qx.ui.form.ListItem('Pete',null,'5'));
-        list.add(new qx.ui.form.ListItem('Carol',null,'6'));
-        
-        var btn1 = new qx.ui.form.Button('Sort By Label'); btn1.set({top:50,left:200});
-        btn1.addEventListener('click',function(e){
-            list.sortItemsByString();
-        });
-
-        var btn2 = new qx.ui.form.Button('Sort By Label Reverse'); btn2.set({top:80,left:200});
-        btn2.addEventListener('click',function(e){
-            list.sortItemsByString(true);
-        });
-
-        var btn3 = new qx.ui.form.Button('Sort By Value'); btn3.set({top:140,left:200});
-        btn3.addEventListener('click',function(e){
-            list.sortItemsByValue();
-        });
-
-        var btn4 = new qx.ui.form.Button('Sort By Value Reverse'); btn4.set({top:170,left:200});
-        btn4.addEventListener('click',function(e){
-            list.sortItemsByValue(true);
-        });
-
-        qx.ui.core.ClientDocument.getInstance().add(btn1,btn2,btn3,btn4);
-        qx.ui.core.ClientDocument.getInstance().add(list);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Menu_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Menu_1.html
deleted file mode 100644 (file)
index ee000b6..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>qx.ui.menu.Menu Implementation</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-
-
-      var m2 = new qx.ui.menu.Menu;
-
-      var mb2_01 = new qx.ui.menu.Button("New Window");
-      var mb2_02 = new qx.ui.menu.Button("Overlapping");
-      var mb2_03 = new qx.ui.menu.Button("Split Vertical");
-      var mb2_04 = new qx.ui.menu.Button("Split Horizontal");
-      var mb2_05 = new qx.ui.menu.Button("Next Window");
-      var mb2_06 = new qx.ui.menu.Button("Previous Window");
-
-      m2.add(mb2_01, mb2_02, mb2_03, mb2_04, mb2_05, mb2_06);
-
-
-
-
-      var m3 = new qx.ui.menu.Menu;
-
-      var mb3_01 = new qx.ui.menu.Button("Tahoma, 11pt");
-      var mb3_02 = new qx.ui.menu.Button("Tahoma, 12pt");
-      var mb3_03 = new qx.ui.menu.Button("Tahoma, 13pt");
-      var mb3_04 = new qx.ui.menu.Button("Tahoma, 14pt");
-      var mb3_05 = new qx.ui.menu.Button("Tahoma, 15pt");
-
-      m3.add(mb3_01, mb3_02, mb3_03, mb3_04, mb3_05);
-
-
-
-      var m1 = new qx.ui.menu.Menu;
-
-      var mb1_01 = new qx.ui.menu.Button("View/Lists");
-      var mb1_02 = new qx.ui.menu.Button("Syntax Highlighting");
-      var ms1    = new qx.ui.menu.Separator();
-      var mb1_03 = new qx.ui.menu.Button("Window Font");
-      var mb1_04 = new qx.ui.menu.Button("Printer Font", null, null, m3);
-      var ms2    = new qx.ui.menu.Separator();
-      var mb1_05 = new qx.ui.menu.Button("Undo");
-      var mb1_06 = new qx.ui.menu.Button("Redo");
-      var ms3    = new qx.ui.menu.Separator();
-      var mb1_07 = new qx.ui.menu.Button("Cut", "icon/16/actions/edit-cut.png");
-      var mb1_08 = new qx.ui.menu.Button("Copy", "icon/16/actions/edit-copy.png");
-      var mb1_09 = new qx.ui.menu.Button("Paste", "icon/16/actions/edit-paste.png");
-      var mb1_10 = new qx.ui.menu.Button("Delete", "icon/16/actions/edit-delete.png");
-      var mb1_11 = new qx.ui.menu.Button("Select All");
-      var ms4    = new qx.ui.menu.Separator();
-      var mb1_12 = new qx.ui.menu.Button("Search");
-      var mb1_13 = new qx.ui.menu.Button("Search Again");
-      var ms5    = new qx.ui.menu.Separator();
-      var mb1_14 = new qx.ui.menu.Button("View", null, null, m2);
-      var mb1_15 = new qx.ui.menu.Button("Editor Settings...");
-      var mb1_16 = new qx.ui.menu.Button("Editor Plugins");
-      var mb1_17 = new qx.ui.menu.Button("Framework Settings");
-
-      m1.add(mb1_01, mb1_02, ms1, mb1_03, mb1_04, ms2, mb1_05, mb1_06, ms3, mb1_07, mb1_08, mb1_09, mb1_10, mb1_11, ms4, mb1_12, mb1_13, ms5, mb1_14, mb1_15, mb1_16, mb1_17);
-
-
-      d.add(m1, m2, m3);
-
-
-
-
-
-      var w1 = new qx.ui.form.Button("Open");
-
-      w1.setTop(48);
-      w1.setLeft(20);
-
-      w1.addEventListener("click", function(e)
-      {
-        if (m1.isSeeable())
-        {
-          m1.hide();
-        }
-        else
-        {
-          var el = this.getElement();
-
-          m1.setLeft(qx.html.Location.getPageBoxLeft(el));
-          m1.setTop(qx.html.Location.getPageBoxBottom(el));
-
-          m1.show();
-        };
-
-        e.setPropagationStopped(true);
-      });
-
-      w1.addEventListener("mousedown", function(e)
-      {
-        e.setPropagationStopped(true);
-      });
-
-
-      d.add(w1);
-
-
-
-
-
-      // Icon Themes
-      qx.manager.object.ImageManager.getInstance().createThemeList(d, 180, 48);
-
-      // Color Themes
-      qx.manager.object.ColorManager.getInstance().createThemeList(d, 380, 48);
-
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Menu_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Menu_2.html
deleted file mode 100644 (file)
index bc43c2f..0000000
+++ /dev/null
@@ -1,205 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>qx.ui.menu.Menu Implementation.</p>
-    <p>Added qx.client.Command support tests.</p>
-    <p>Create the menu instances on the first opening.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-
-      var q1 = new qx.client.Command("Ctrl+Z");
-      q1.addEventListener("execute", function(e) {
-        alert("Undo");
-      });
-
-      var q2 = new qx.client.Command("Ctrl+Y");
-      q2.addEventListener("execute", function(e) {
-        alert("Redo");
-      });
-
-      var q3 = new qx.client.Command("Ctrl+X");
-      q3.addEventListener("execute", function(e) {
-        alert("Cut");
-      });
-
-      var q4 = new qx.client.Command("Ctrl+C");
-      q4.addEventListener("execute", function(e) {
-        alert("Copy");
-      });
-
-      var q5 = new qx.client.Command("Ctrl+V");
-      q5.addEventListener("execute", function(e) {
-        alert("Paste");
-      });
-
-      var q6 = new qx.client.Command("Del");
-      q6.addEventListener("execute", function(e) {
-        alert("Delete");
-      });
-
-      var q7 = new qx.client.Command("Ctrl+A");
-      q7.addEventListener("execute", function(e) {
-        alert("Select All");
-      });
-
-      var q8 = new qx.client.Command("Ctrl+F");
-      q8.addEventListener("execute", function(e) {
-        alert("Search");
-      });
-
-      var q9 = new qx.client.Command("Ctrl+G");
-      q9.addEventListener("execute", function(e) {
-        alert("Search Again");
-      });
-
-      var q10 = new qx.client.Command();
-      q10.addEventListener("execute", function(e) {
-        alert("Syntax Highlighting");
-      });
-
-      var q11 = new qx.client.Command("Esc");
-      q11.addEventListener("execute", function(e) {
-        alert("Escape");
-      });
-
-      var q12 = new qx.client.Command("Space");
-      q12.addEventListener("execute", function(e) {
-        alert("Space");
-      });
-
-
-      var m1, m2, m3;
-
-      function createMenus()
-      {
-        m2 = new qx.ui.menu.Menu;
-
-        var mb2_01 = new qx.ui.menu.Button("New Window");
-        var mb2_02 = new qx.ui.menu.Button("Overlapping");
-        var mb2_03 = new qx.ui.menu.Button("Split Vertical");
-        var mb2_04 = new qx.ui.menu.Button("Split Horizontal");
-        var mb2_05 = new qx.ui.menu.Button("Next Window");
-        var mb2_06 = new qx.ui.menu.Button("Previous Window");
-
-        m2.add(mb2_01, mb2_02, mb2_03, mb2_04, mb2_05, mb2_06);
-
-
-
-
-        m3 = new qx.ui.menu.Menu;
-
-        var mb3_01 = new qx.ui.menu.Button("Tahoma, 11pt");
-        var mb3_02 = new qx.ui.menu.Button("Tahoma, 12pt");
-        var mb3_03 = new qx.ui.menu.Button("Tahoma, 13pt");
-        var mb3_04 = new qx.ui.menu.Button("Tahoma, 14pt");
-        var mb3_05 = new qx.ui.menu.Button("Tahoma, 15pt");
-
-        m3.add(mb3_01, mb3_02, mb3_03, mb3_04, mb3_05);
-
-
-
-        m1 = new qx.ui.menu.Menu;
-
-        var mb1_01 = new qx.ui.menu.Button("View/Lists", null, q12);
-        var mb1_02 = new qx.ui.menu.Button("Syntax Highlighting", null, q10);
-        var ms1    = new qx.ui.menu.Separator();
-        var mb1_03 = new qx.ui.menu.Button("Window Font", null, q11);
-        var mb1_04 = new qx.ui.menu.Button("Printer Font", null, null, m3);
-        var ms2    = new qx.ui.menu.Separator();
-        var mb1_05 = new qx.ui.menu.Button("Undo", null, q1);
-        var mb1_06 = new qx.ui.menu.Button("Redo", null, q2);
-        var ms3    = new qx.ui.menu.Separator();
-        var mb1_07 = new qx.ui.menu.Button("Cut", "icon/16/actions/edit-cut.png", q3);
-        var mb1_08 = new qx.ui.menu.Button("Copy", "icon/16/actions/edit-copy.png", q4);
-        var mb1_09 = new qx.ui.menu.Button("Paste", "icon/16/actions/edit-paste.png", q5);
-        var mb1_10 = new qx.ui.menu.Button("Delete", "icon/16/actions/edit-delete.png", q6);
-        var mb1_11 = new qx.ui.menu.Button("Select All", null, q7);
-        var ms4    = new qx.ui.menu.Separator();
-        var mb1_12 = new qx.ui.menu.Button("Search", null, q8);
-        var mb1_13 = new qx.ui.menu.Button("Search Again", null, q9);
-        var ms5    = new qx.ui.menu.Separator();
-        var mb1_14 = new qx.ui.menu.Button("View", null, null, m2);
-        var mb1_15 = new qx.ui.menu.Button("Editor Settings...");
-        var mb1_16 = new qx.ui.menu.Button("Editor Plugins");
-        var mb1_17 = new qx.ui.menu.Button("Framework Settings");
-
-        m1.add(mb1_01, mb1_02, ms1, mb1_03, mb1_04, ms2, mb1_05, mb1_06, ms3, mb1_07, mb1_08, mb1_09, mb1_10, mb1_11, ms4, mb1_12, mb1_13, ms5, mb1_14, mb1_15, mb1_16, mb1_17);
-
-
-        d.add(m1, m2, m3);
-      };
-
-
-
-
-
-      var w1 = new qx.ui.form.Button("Open");
-
-      w1.setTop(48);
-      w1.setLeft(20);
-
-      w1.addEventListener("click", function(e)
-      {
-        if (!m1) {
-          createMenus();
-        };
-
-        if (m1.isSeeable())
-        {
-          m1.hide();
-        }
-        else
-        {
-          var el = this.getElement();
-
-          m1.setLeft(qx.html.Location.getPageBoxLeft(el));
-          m1.setTop(qx.html.Location.getPageBoxBottom(el));
-
-          m1.show();
-        };
-
-        e.setPropagationStopped(true);
-      });
-
-      w1.addEventListener("mousedown", function(e)
-      {
-        e.setPropagationStopped(true);
-      });
-
-
-      d.add(w1);
-
-
-
-
-
-
-
-
-
-      // Icon Themes
-      qx.manager.object.ImageManager.getInstance().createThemeList(d, 180, 48);
-
-      // Color Themes
-      qx.manager.object.ColorManager.getInstance().createThemeList(d, 380, 48);
-
-
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Node_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Node_1.html
deleted file mode 100644 (file)
index a19a9a7..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>qx.ui.embed.NodeEmbed makes a dom node a widget.</p>
-  </div>
-  
-  <div id="text1" style="display:none">Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero et accumsan et iusto odio dignissim qui <strong>qooxdoo</strong> blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.</div>
-  
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-    
-    var n = new qx.ui.embed.NodeEmbed("text1");
-    
-    n.setLocation(20, 48);
-    n.setRight(335);
-    n.setBottom(48);
-    n.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    n.setBackgroundColor("white");
-    n.setColor("blue");
-    n.setPadding(10);
-    
-    d.add(n);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Popups_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Popups_1.html
deleted file mode 100644 (file)
index 07c1204..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test for the qx.ui.popup.Popup widget. qx.ui.popup.Popups are planned as the source constructor for tooltips, menus, ...</p>
-    <p>There is also a qx.manager.object.PopupManager which hides all registered qx.ui.popup.Popup instances which are configured to auto hide.
-    This is a nice method to omit to show more than one qx.ui.popup.Popup together (omit multiple QxTooltips, ...).</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-
-    var w1 = new qx.ui.form.Button("Press");
-    with(w1)
-    {
-      setTop(48);
-      setLeft(20);
-      setBackgroundColor(new qx.renderer.color.Color("#BDD2EF"));
-      setWidth(100);
-      setHeight(100);
-      setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-      setHorizontalAlign("center");
-    };
-    d.add(w1);
-
-
-    var w2 = new qx.ui.form.Button("Press");
-    with(w2)
-    {
-      setTop(48);
-      setLeft(140);
-      setBackgroundColor(new qx.renderer.color.Color("#D1DFAD"));
-      setWidth(100);
-      setHeight(100);
-      setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-      setHorizontalAlign("center");
-    };
-    d.add(w2);
-
-
-
-
-
-
-
-
-    var p1 = new qx.ui.popup.Popup;
-    d.add(p1);
-
-    var a1 = new qx.ui.basic.Atom("Hello World #1", "icon/16/apps/graphics-image-viewer.png");
-    p1.add(a1);
-
-    with(p1)
-    {
-      setBackgroundColor(new qx.renderer.color.Color("#FFFAD3"));
-      setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      setPadding(2, 4);
-    };
-
-    w1.addEventListener("click", function(e)
-    {
-      p1.setTop(e.getPageY() + 3);
-      p1.setLeft(e.getPageX() + 3);
-      p1.show();
-      p1.bringToFront();
-    });
-
-
-
-    var p2 = new qx.ui.popup.Popup;
-    d.add(p2);
-
-    var a2 = new qx.ui.basic.Atom("Hello World #2", "icon/32/apps/accessories-clock.png");
-    p2.add(a2);
-
-    with(p2)
-    {
-      setBackgroundColor(new qx.renderer.color.Color("#DFFAD3"));
-      setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      setPadding(2, 4);
-    };
-
-    w2.addEventListener("click", function(e)
-    {
-      p2.setTop(e.getPageY() + 3);
-      p2.setLeft(e.getPageX() + 3);
-      p2.show();
-      p2.bringToFront();
-    });
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Popups_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Popups_2.html
deleted file mode 100644 (file)
index b4d4e8c..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test for the qx.ui.popup.Popup widget. qx.ui.popup.Popups are planned as the source constructor for tooltips, menus, ...</p>
-    <p>There is also a qx.manager.object.PopupManager which hides all registered qx.ui.popup.Popup instances which are configured to auto hide.
-    This is a nice method to omit to show more than one qx.ui.popup.Popup together (omit multiple QxTooltips, ...).</p>
-    <p>In this example we use a qx.ui.popup.PopupAtom. This is a popup with an automatically included qx.ui.basic.Atom, which
-    allowes you to easily use it for messages to the user or something like this.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-
-    var w1 = new qx.ui.form.Button("Press");
-    with(w1)
-    {
-      setTop(48);
-      setLeft(20);
-      setBackgroundColor(new qx.renderer.color.Color("#BDD2EF"));
-      setWidth(100);
-      setHeight(100);
-      setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-      setHorizontalAlign("center");
-    };
-    d.add(w1);
-
-
-    var w2 = new qx.ui.form.Button("Press");
-    with(w2)
-    {
-      setTop(48);
-      setLeft(140);
-      setBackgroundColor(new qx.renderer.color.Color("#D1DFAD"));
-      setWidth(100);
-      setHeight(100);
-      setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-      setHorizontalAlign("center");
-    };
-    d.add(w2);
-
-
-
-
-
-
-
-
-    var p1 = new qx.ui.popup.PopupAtom("Hello World #1", "icon/16/apps/graphics-image-viewer.png");
-    d.add(p1);
-
-    with(p1)
-    {
-      setBackgroundColor(new qx.renderer.color.Color("#FFFAD3"));
-      setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      setPadding(2, 4);
-    };
-
-    w1.addEventListener("click", function(e)
-    {
-      p1.setTop(e.getPageY() + 3);
-      p1.setLeft(e.getPageX() + 3);
-      p1.show();
-      p1.bringToFront();
-    });
-
-
-
-    var p2 = new qx.ui.popup.PopupAtom("Hello World #2", "icon/32/apps/accessories-clock.png");
-    d.add(p2);
-
-    with(p2)
-    {
-      setBackgroundColor(new qx.renderer.color.Color("#DFFAD3"));
-      setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      setPadding(2, 4);
-    };
-
-    w2.addEventListener("click", function(e)
-    {
-      p2.setTop(e.getPageY() + 3);
-      p2.setLeft(e.getPageX() + 3);
-      p2.show();
-      p2.bringToFront();
-    });
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/RPC_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/RPC_1.html
deleted file mode 100644 (file)
index 69744f4..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-  <script type="text/javascript" src=".qxrpc"></script>
-  <!-- With the above script, the service URL for a J2EE application can be
-       automatically determined, no matter on what path it's deployed. -->
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p><strong>Only works together with a RPC backend!</strong></p>
-    <p>Test for RPC functionality.</p>
-    <p>
-      This test calls a simple echo-style service on the server. The server
-      method accepts a string and sends back a string that says
-      "Client said: [input string]".
-    </p>
-  </div>
-
-  <script type="text/javascript">
-//    qx.Settings.setCustomOfClass("qx.io.remote.Exchange", "enableDebug", true);
-    qx.Settings.setCustomOfClass("qx.io.Json", "enableDebug", true);
-
-    qx.core.Init.getInstance().defineMain(function() {
-      var layout1 = new qx.ui.layout.VerticalBoxLayout();
-      layout1.setTop(40);
-      layout1.setLeft(20);
-      layout1.setSpacing(4);
-
-      var async = new qx.ui.form.CheckBox("Asynchronous (must be checked if cross-domain is selected)");
-      layout1.add(async);
-
-      var crossDomain = new qx.ui.form.CheckBox("Cross Domain");
-      layout1.add(crossDomain);
-
-      layout1.add(new qx.ui.basic.Label("URL:"));
-      var defaultURL = qx.io.remote.Rpc.makeServerURL();
-      if (defaultURL == null) {
-        defaultURL = "/services/";
-      }
-      var url = new qx.ui.form.TextField(defaultURL);
-      layout1.add(url);
-
-      layout1.add(new qx.ui.basic.Label("Service:"));
-      var service = new qx.ui.form.TextField("qooxdoo.test");
-      layout1.add(service);
-
-      layout1.add(new qx.ui.basic.Label("Method:"));
-      var method = new qx.ui.form.TextField("echo");
-      layout1.add(method);
-
-      var layout2 = new qx.ui.layout.HorizontalBoxLayout();
-      layout2.setHeight("auto");
-      layout2.setVerticalChildrenAlign("middle");
-      layout2.setSpacing(4);
-      var message = new qx.ui.form.TextField("Hello");
-      message.setWidth(200);
-      layout2.add(message);
-      var send = new qx.ui.form.Button("Send to server");
-      layout2.add(send);
-      var abort = new qx.ui.form.Button("Abort");
-      abort.setEnabled(false);
-      layout2.add(abort);
-      layout1.add(layout2);
-
-      // We'll be setting url and service upon execute; no need to do it now.
-      var rpc = new qx.io.remote.Rpc();
-      rpc.setTimeout(10000);
-      var mycall = null;
-
-      send.addEventListener("execute", function() {
-        // Allow the user to reset the URL and Service on each call
-        rpc.setUrl(url.getValue());
-        rpc.setServiceName(service.getValue());
-        rpc.setCrossDomain(crossDomain.isChecked());
-
-        if (async.isChecked()) {
-          send.setEnabled(false);
-          abort.setEnabled(true);
-          mycall = rpc.callAsync(function(result, ex, id) {
-            mycall = null;
-            if (ex == null) {
-              alert("Async(" + id + ") result: " + result);
-            } else {
-              alert("Async(" + id + ") exception: " + ex);
-            }
-            send.setEnabled(true);
-            abort.setEnabled(false);
-          }, method.getValue(), message.getValue());
-        } else {
-          try {
-            var result = rpc.callSync(method.getValue(), message.getValue());
-            alert("Sync result: " + result);
-          } catch (ex) {
-            alert("Sync exception: " + ex);
-          }
-        }
-      });
-
-      abort.addEventListener("execute", function() {
-        rpc.abort(mycall);
-      });
-
-      var d = qx.ui.core.ClientDocument.getInstance();
-      d.add(layout1);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/RPC_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/RPC_2.html
deleted file mode 100644 (file)
index b00fc4d..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-  <script type="text/javascript" src=".qxrpc"></script>
-  <!-- With the above script, the service URL for a J2EE application can be
-       automatically determined, no matter on what path it's deployed. -->
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p><strong>Only works together with a RPC backend!</strong></p>
-    <p>Test for RPC functionality.</p>
-    <p>
-      This tests the ability to issue multiple asynchronous RPC calls to the
-      same service/method, and determine from which request we have received a
-      response.  We issue multiple 'sleep' calls, for decreasing amounts of
-      time, and ensure that we can associate the resonses from the
-      later-issued requests to the earlier-received responses.
-    </p>
-  </div>
-
-  <script type="text/javascript">
-//    qx.Settings.setCustomOfClass("qx.io.remote.Exchange", "enableDebug", true);
-    qx.Settings.setCustomOfClass("qx.io.Json", "enableDebug", true);
-
-    qx.core.Init.getInstance().defineMain(function() {
-      var layout1 = new qx.ui.layout.VerticalBoxLayout();
-      layout1.setTop(40);
-      layout1.setLeft(20);
-      layout1.setSpacing(4);
-
-      /*
-        * Sigh.  Both IE and Firefox follow (too strictly) RFC2616 and limit
-        * the number of simultaneous asyncronous HTTP requests to 2.  We'll
-        * allow testing just 2 simultaneous requests or issuing 6 simultaneous
-        * requests.  In the former case, we'll get expected results.  In the
-        * latter, we'll see two at a time being processed.
-        *
-        * Note that this applies to both XmlHTTPTransport and IframeTransport.
-        * It is an HTTP limitation, not a limitation of a particular method of
-        * issuing a request.
-        */
-      var tooMany = new qx.ui.form.CheckBox("Issue more requests than IE's and Firefox's implementations of HTTP will process simultaneously");
-      layout1.add(tooMany);
-
-      var crossDomain = new qx.ui.form.CheckBox("Cross Domain");
-      layout1.add(crossDomain);
-
-      layout1.add(new qx.ui.basic.Label("URL:"));
-      var defaultURL = qx.io.remote.Rpc.makeServerURL();
-      if (defaultURL == null) {
-        defaultURL = "/services/";
-      }
-      var url = new qx.ui.form.TextField(defaultURL);
-      layout1.add(url);
-
-      layout1.add(new qx.ui.basic.Label("Service:"));
-      var service = new qx.ui.form.TextField("qooxdoo.test");
-      layout1.add(service);
-
-      var layout2 = new qx.ui.layout.HorizontalBoxLayout();
-      layout2.setHeight("auto");
-      layout2.setVerticalChildrenAlign("middle");
-      layout2.setSpacing(4);
-      var start = new qx.ui.form.Button("Start Test");
-      layout2.add(start);
-      var abort = new qx.ui.form.Button("Abort");
-      layout2.add(abort);
-      layout1.add(layout2);
-
-      // ensure there's room in the queue for all of our requests
-      qx.io.remote.RequestQueue.getInstance().setMaxConcurrentRequests(8);
-
-      // We'll be setting url and service upon execute; no need to do it now.
-      var rpc = new qx.io.remote.Rpc();
-      rpc.setTimeout(60000);
-      var mycall;
-      var mycalls = [];
-
-      start.addEventListener("execute", function() {
-        t0 = new Date().getTime();
-
-        rpc.setCrossDomain(crossDomain.isChecked());
-
-        rpc.setUrl(url.getValue());
-        rpc.setServiceName(service.getValue());
-
-        var seqnum;
-        for (i=(tooMany.isChecked() ? 30 : 10); i > 0; i-=5) {
-          /*
-           * Always issue an asynchronous request!  Issuing a synchronous
-           * request can lock up the entire browser until a response is
-           * received.  Bad browser developers!  Bad!
-           */
-          mycall = rpc.callAsync(function(result, ex, seqnum) {
-              mycalls[seqnum] = null;
-              t = new Date().getTime() - t0;
-              if (ex == null) {
-                layout1.warn(t + ": response " + seqnum + ": " + result);
-              } else {
-                layout1.warn(t + ": exception " + seqnum + ": " + ex);
-              }
-            }, "sleep", i.toString());  // FIXME: Why is this sent as a string?
-
-          t = new Date().getTime() - t0;
-          seqnum = mycall.getSequenceNumber();
-          mycalls[seqnum] = mycall;
-          layout1.warn(t + ": request " + seqnum + " = " + i.toString());
-        }
-      });
-
-      abort.addEventListener("execute", function() {
-        for (seqnum in mycalls) {
-          if (mycalls[seqnum] !== null) {
-            rpc.abort(mycalls[seqnum]);
-            mycalls[seqnum] = null;
-          }
-        }
-        mycalls = [];
-      });
-
-      var d = qx.ui.core.ClientDocument.getInstance();
-      d.add(layout1);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/RPC_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/RPC_3.html
deleted file mode 100644 (file)
index 5e9d616..0000000
+++ /dev/null
@@ -1,240 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-  <script type="text/javascript" src=".qxrpc"></script>
-  <!-- With the above script, the service URL for a J2EE application can be
-       automatically determined, no matter on what path it's deployed. -->
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test for RPC functionality.</p>
-    <p>
-      This test calls a whole set of functions to test each of the primitive
-      data types.  The comparison results should all end with ": true", and
-      the last test generates an Application Error (#1000).  No other test
-      generates that error, so receiving it means the complete set of tests
-      was run.
-    </p>
-    <p>
-      These functions all use the synchronous interface.  You should not use
-      the synchronous interface because with some browsers, the entire browser
-      environment locks up during a synchronous call.  If the server hangs for
-      a minute or two, so will the browser!  You have been warned.
-    </p>
-  </div>
-
-  <script type="text/javascript">
-//    qx.Settings.setCustomOfClass("qx.io.remote.Exchange", "enableDebug", true);
-    qx.Settings.setCustomOfClass("qx.io.Json", "enableDebug", true);
-
-    qx.core.Init.getInstance().defineMain(function() { var layout1 = new
-    qx.ui.layout.VerticalBoxLayout(); layout1.setTop(40); layout1.setLeft(20);
-    layout1.setSpacing(4);
-
-      layout1.add(new qx.ui.basic.Label("URL:"));
-      var defaultURL = qx.io.remote.Rpc.makeServerURL();
-      if (defaultURL == null) {
-        defaultURL = "/services/";
-      }
-      var url = new qx.ui.form.TextField(defaultURL);
-      layout1.add(url);
-
-      layout1.add(new qx.ui.basic.Label("Service path:"));
-      var service = new qx.ui.form.TextField("qooxdoo.test");
-      layout1.add(service);
-
-      var start = new qx.ui.form.Button("Start test");
-      layout1.add(start);
-
-      var rpc;
-      var mycall = null;
-      var test;
-
-      start.addEventListener("execute", function() {
-        try
-        {
-          var rpc = new qx.io.remote.Rpc(url.getValue(), service.getValue());
-          rpc.setTimeout(10000);
-
-          test = "getCurrentTimestamp";
-          layout1.warn("Calling '" + test + "'");
-          result = rpc.callSync(test);
-          layout1.warn("result: now=" + result.now);
-          layout1.warn("result: jsonDate=" + result.json.toString());
-
-          test = "getInteger";
-          layout1.warn("Calling '" + test + "'");
-          var result = rpc.callSync(test);
-          layout1.warn("result: {" + result + "}");
-          layout1.warn("Returns a number, got " + typeof(result) + ": " + (typeof(result) == "number" && isFinite(result) ? "true" : "false"));
-
-          test = "isInteger";
-          layout1.warn("Calling '" + test + "'");
-          result = rpc.callSync(test, 1);
-          layout1.warn("result: {" + result + "}");
-          layout1.warn("Returns an integer: " + result);
-
-          test = "getString";
-          layout1.warn("Calling '" + test + "'");
-          result = rpc.callSync(test);
-          layout1.warn("result: {" + result + "}");
-          layout1.warn("Returns a string: " + (typeof(result) == "string"));
-
-          test = "isString";
-          layout1.warn("Calling '" + test + "'");
-          result = rpc.callSync(test, "Hello World");
-          layout1.warn("result: {" + result + "}");
-          layout1.warn("Returns a string: " + result);
-
-          test = "getNull";
-          layout1.warn("Calling '" + test + "'");
-          var result = rpc.callSync(test);
-          layout1.warn("result: {" + result + "}");
-          layout1.warn("Returns null: " + (typeof(result) == "object" && result === null ? "true" : "false"));
-
-          test = "isNull";
-          layout1.warn("Calling '" + test + "'");
-          result = rpc.callSync(test, null);
-          layout1.warn("result: {" + result + "}");
-          layout1.warn("Returns null: " + result);
-
-          test = "getArrayInteger";
-          layout1.warn("Calling '" + test + "'");
-          result = rpc.callSync(test);
-          layout1.warn("result: {" + result + "}");
-          layout1.warn("Returns an array: " + ((typeof(result) == "object") && (result instanceof Array)));
-
-          test = "getArrayString";
-          layout1.warn("Calling '" + test + "'");
-          result = rpc.callSync(test);
-          layout1.warn("result: {" + result + "}");
-          layout1.warn("Returns an array: " + ((typeof(result) == "object") && (result instanceof Array)));
-
-          var dataArray = new Array(5);
-
-          for (i=0; i<5; i++)
-          {
-            dataArray[i] = i;
-          };
-
-          test = "isArray";
-          layout1.warn("Calling '" + test + "'");
-          result = rpc.callSync(test, dataArray);
-          layout1.warn("result: {" + result + "}");
-
-          dataArray = new Array(5);
-
-          for (i=0; i<5; i++)
-          {
-            dataArray[i] = "Element " + i;
-          };
-
-          test = "isArray";
-          layout1.warn("Calling '" + test + "'");
-          result = rpc.callSync(test, dataArray);
-          layout1.warn("result: {" + result + "}");
-
-          test = "getFloat";
-          layout1.warn("Calling '" + test + "'");
-          result = rpc.callSync(test);
-          layout1.warn("result: {" + result + "}");
-          layout1.warn("Returns a float: " + (typeof(result) == "number"));
-
-          test = "getObject";
-          layout1.warn("Calling '" + test + "'");
-          result = rpc.callSync(test);
-          layout1.warn("result: {" + result + "}");
-          layout1.warn("Returns an object: " + (typeof(result) == "object"));
-
-          test = "isObject";
-          layout1.warn("Calling '" + test + "'");
-          obj = new Object();
-          obj.s = "Hi there.";
-          obj.n = 23;
-          obj.o = new Object();
-          obj.o.s = "This is a test.";
-          result = rpc.callSync(test, obj);
-          layout1.warn("result: {" + result.toString() + "}");
-          layout1.warn("Returns an object: " + result);
-
-          test = "getTrue";
-          layout1.warn("Calling '" + test + "'");
-          result = rpc.callSync(test);
-          layout1.warn("result: {" + result.toString() + "}");
-          layout1.warn("Returns a boolean = true: " + (typeof(result) == "boolean"));
-
-          test = "getFalse";
-          layout1.warn("Calling '" + test + "'");
-          result = rpc.callSync(test);
-          layout1.warn("result: {" + result.toString() + "}");
-          layout1.warn("Returns a boolean = false: " + (typeof(result) == "boolean"));
-
-          test = "isBoolean";
-          layout1.warn("Calling '" + test + "'");
-          result = rpc.callSync(test, true);
-          layout1.warn("result: {" + result.toString() + "}");
-          layout1.warn("Returns a boolean: " +  result);
-
-          test = "isBoolean";
-          layout1.warn("Calling '" + test + "'");
-          result = rpc.callSync(test, false);
-          layout1.warn("result: {" + result.toString() + "}");
-          layout1.warn("Returns a boolean: " + result);
-
-          Date.prototype.classname = "Date";
-          var date = new Date();
-          test = "getParam";
-          layout1.warn("Calling '" + test + "'");
-          result = rpc.callSync(test, date);
-          layout1.warn("result: {" + result + "}");
-          layout1.warn("Returns a date object, got " + (result.classname == date.classname));
-          layout1.warn("Returns matching time " + date.getTime() + " = " + result.getTime() + " :" + (result.getTime() == date.getTime()));
-
-          dataArray = new Array();
-          dataArray[0] = true;
-          dataArray[1] = false;
-          dataArray[2] = 1;
-          dataArray[3] = 1.1;
-          dataArray[4] = "Hello World";
-          dataArray[5] = new Array(5);
-          dataArray[6] = new Object();
-          dataArray[7] = new Date();
-
-          test = "getParams";
-          layout1.warn("Calling '" + test + "'");
-          result = rpc.callSync(test, dataArray[0], dataArray[1], dataArray[2], dataArray[3], dataArray[4], dataArray[5], dataArray[6], dataArray[7]);
-          layout1.warn("result: {" + result + "}");
-
-          for (i=0; i< dataArray.length; i++)
-          {
-            layout1.warn("Returned parameter (" + i + ") value '" + result[i] + "' matches '" + dataArray[i] + "': " + (result[i].toString() == dataArray[i].toString()));
-            layout1.warn("Returned parameter (" + i + ") type '" + typeof(result[i]) + "' matches '" + typeof(dataArray[i]) + "': " + (typeof(result[i]) == typeof(dataArray[i])));
-          };
-
-          test = "getError";
-          layout1.warn("Calling '" + test + "'");
-          result = rpc.callSync(test);
-          // should never get here; we should receive an exception
-          layout1.warn("ERROR: Should have received an exception!  Got: " + result);
-
-        }
-        catch (ex)
-        {
-          alert("Exception on test " + test + ": " + ex);
-        }
-      });
-
-      var d = qx.ui.core.ClientDocument.getInstance();
-      d.add(layout1);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/RPC_4.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/RPC_4.html
deleted file mode 100644 (file)
index 3ceb52f..0000000
+++ /dev/null
@@ -1,470 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-  <script type="text/javascript" src=".qxrpc"></script>
-  <!-- With the above script, the service URL for a J2EE application can be
-       automatically determined, no matter on what path it's deployed. -->
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p><strong>Only works together with a RPC backend!</strong></p>
-    <p>Test for RPC functionality.</p>
-    <p>
-      This test calls a whole set of functions to test each of the primitive
-      data types.  The comparison results should all end with ": true", and
-      the last test generates an Application Error (#1000).  No other test
-      generates that error, so receiving it means the complete set of tests
-      was run.
-    </p>
-    <p>
-      These functions all use the asynchronous interface.  This is the
-      interface that your applications should use.  See the warning in
-      RPC_3.html regarding use of the synchronous interface.
-    </p>
-  </div>
-
-  <script type="text/javascript">
-    qx.Settings.setCustomOfClass("qx.io.Json", "enableDebug", true);
-
-    qx.core.Init.getInstance().defineMain(function() {
-      var layout1 = new qx.ui.layout.VerticalBoxLayout();
-      layout1.setTop(40);
-      layout1.setLeft(20);
-      layout1.setSpacing(4);
-
-      var crossDomain = new qx.ui.form.CheckBox("Cross Domain");
-      layout1.add(crossDomain);
-
-      layout1.add(new qx.ui.basic.Label("URL:"));
-      var defaultURL = qx.io.remote.Rpc.makeServerURL();
-      if (defaultURL == null) {
-        defaultURL = "/services/";
-      }
-      var url = new qx.ui.form.TextField(defaultURL);
-      layout1.add(url);
-
-      layout1.add(new qx.ui.basic.Label("Service path:"));
-      var service = new qx.ui.form.TextField("qooxdoo.test");
-      layout1.add(service);
-
-      var start = new qx.ui.form.Button("Start test");
-      layout1.add(start);
-
-      var mycall = null;
-      var test;
-      var testNum;
-
-      start.addEventListener("execute", function() {
-        var obj;
-        var date;
-        var dataArray;
-
-        /*
-         * Create an array of each of the tests.  Each array element is itself
-         * an array of two function: the first to issue the test request, and
-         * the second to validate the result.
-         */
-        var tests =
-          [
-            [
-              function()
-              {
-                test = "getCurrentTimestamp";
-                layout1.warn("Calling '" + test + "'");
-                mycall = rpc.callAsync(handler, test);
-              },
-
-              function(result)
-              {
-                layout1.warn("result: now=" + result.now);
-                layout1.warn("result: jsonDate=" + result.json.toString());
-              }
-            ],
-
-            [
-              function()
-              {
-                test = "getInteger";
-                layout1.warn("Calling '" + test + "'");
-                mycall = rpc.callAsync(handler, test);
-              },
-
-              function(result)
-              {
-                layout1.warn("result: {" + result + "}");
-                layout1.warn("Returns a number, got " + typeof(result) + ": " + (typeof(result) == "number" && isFinite(result) ? "true" : "false"));
-              }
-            ],
-
-            [
-              function()
-              {
-                test = "isInteger";
-                layout1.warn("Calling '" + test + "'");
-                mycall = rpc.callAsync(handler, test, 1);
-              },
-
-              function(result)
-              {
-                layout1.warn("result: {" + result + "}");
-                layout1.warn("Returns an integer: " + result);
-              }
-            ],
-
-            [
-              function()
-              {
-                test = "getString";
-                layout1.warn("Calling '" + test + "'");
-                mycall = rpc.callAsync(handler, test);
-              },
-
-              function(result)
-              {
-                layout1.warn("result: {" + result + "}");
-                layout1.warn("Returns a string: " + (typeof(result) == "string"));
-              }
-            ],
-
-            [
-              function()
-              {
-                test = "isString";
-                layout1.warn("Calling '" + test + "'");
-                mycall = rpc.callAsync(handler, test, "Hello World");
-              },
-
-              function(result)
-              {
-                layout1.warn("result: {" + result + "}");
-                layout1.warn("Returns a string: " + result);
-              }
-            ],
-
-            [
-              function()
-              {
-                test = "getNull";
-                layout1.warn("Calling '" + test + "'");
-                var mycall = rpc.callAsync(handler, test);
-              },
-
-              function(result)
-              {
-                layout1.warn("result: {" + result + "}");
-                layout1.warn("Returns null: " + (typeof(result) == "object" && mycall === null ? "true" : "false"));
-              }
-            ],
-
-            [
-              function()
-              {
-                test = "isNull";
-                layout1.warn("Calling '" + test + "'");
-                mycall = rpc.callAsync(handler, test, null);
-              },
-
-              function(result)
-              {
-                layout1.warn("result: {" + result + "}");
-                layout1.warn("Returns null: " + result);
-              }
-            ],
-
-            [
-              function()
-              {
-                test = "getArrayInteger";
-                layout1.warn("Calling '" + test + "'");
-                mycall = rpc.callAsync(handler, test);
-              },
-
-              function(result)
-              {
-                layout1.warn("result: {" + result + "}");
-                layout1.warn("Returns an array: " + ((typeof(result) == "object") && (result instanceof Array)));
-              }
-            ],
-
-            [
-              function()
-              {
-                test = "getArrayString";
-                layout1.warn("Calling '" + test + "'");
-                mycall = rpc.callAsync(handler, test);
-              },
-
-              function(result)
-              {
-                layout1.warn("result: {" + result + "}");
-                layout1.warn("Returns an array: " + ((typeof(result) == "object") && (result instanceof Array)));
-              }
-            ],
-
-            [
-              function()
-              {
-                dataArray = new Array(5);
-
-                for (i=0; i<5; i++)
-                {
-                  dataArray[i] = i;
-                };
-
-                test = "isArray";
-                layout1.warn("Calling '" + test + "'");
-                mycall = rpc.callAsync(handler, test, dataArray);
-              },
-
-              function(result)
-              {
-                layout1.warn("result: {" + result + "}");
-                layout1.warn("Returns an array: " + result);
-              }
-            ],
-
-            [
-              function()
-              {
-                dataArray = new Array(5);
-
-                for (i=0; i<5; i++)
-                {
-                  dataArray[i] = "Element " + i;
-                };
-
-                test = "isArray";
-                layout1.warn("Calling '" + test + "'");
-                mycall = rpc.callAsync(handler, test, dataArray);
-              },
-
-              function(result)
-              {
-                layout1.warn("result: {" + result + "}");
-                layout1.warn("Returns an array: " + result);
-              }
-            ],
-
-            [
-              function()
-              {
-                test = "getFloat";
-                layout1.warn("Calling '" + test + "'");
-                mycall = rpc.callAsync(handler, test);
-              },
-
-              function(result)
-              {
-                layout1.warn("result: {" + result + "}");
-                layout1.warn("Returns a float: " + (typeof(result) == "number"));
-              }
-            ],
-
-            [
-              function()
-              {
-                test = "getObject";
-                layout1.warn("Calling '" + test + "'");
-                mycall = rpc.callAsync(handler, test);
-              },
-
-              function(result)
-              {
-                layout1.warn("result: {" + result + "}");
-                layout1.warn("Returns an object: " + (typeof(result) == "object"));
-              }
-            ],
-
-            [
-              function()
-              {
-                test = "isObject";
-                layout1.warn("Calling '" + test + "'");
-                obj = new Object();
-                obj.s = "Hi there.";
-                obj.n = 23;
-                obj.o = new Object();
-                obj.o.s = "This is a test.";
-                mycall = rpc.callAsync(handler, test, obj);
-              },
-
-              function(result)
-              {
-                layout1.warn("result: {" + result.toString() + "}");
-                layout1.warn("Returns an object: " + result);
-              }
-            ],
-
-            [
-              function()
-              {
-                test = "isBoolean";
-                layout1.warn("Calling '" + test + "'");
-                mycall = rpc.callAsync(handler, test, false);
-              },
-
-              function(result)
-              {
-                layout1.warn("result: {" + result.toString() + "}");
-                layout1.warn("Returns a boolean: " + result);
-              }
-            ],
-
-            [
-              function()
-              {
-                test = "isBoolean";
-                layout1.warn("Calling '" + test + "'");
-                mycall = rpc.callAsync(handler, test, true);
-              },
-
-              function(result)
-              {
-                layout1.warn("result: {" + result.toString() + "}");
-                layout1.warn("Returns a boolean: " +  result);
-              }
-            ],
-
-            [
-              function()
-              {
-                test = "getTrue";
-                layout1.warn("Calling '" + test + "'");
-                mycall = rpc.callAsync(handler, test);
-              },
-
-              function(result)
-              {
-                layout1.warn("result: {" + result.toString() + "}");
-                layout1.warn("Returns a boolean = true: " + (typeof(result) == "boolean"));
-              }
-            ],
-
-            [
-              function()
-              {
-                test = "getFalse";
-                layout1.warn("Calling '" + test + "'");
-                mycall = rpc.callAsync(handler, test);
-              },
-
-              function(result)
-              {
-                layout1.warn("result: {" + result.toString() + "}");
-                layout1.warn("Returns a boolean = false: " + (typeof(result) == "boolean"));
-              }
-            ],
-
-            [
-              function()
-              {
-                Date.prototype.classname = "Date";
-                date = new Date();
-                test = "getParam";
-                layout1.warn("Calling '" + test + "'");
-                mycall = rpc.callAsync(handler, test, date);
-              },
-
-              function(result)
-              {
-                layout1.warn("result: {" + result + "}");
-                layout1.warn("Returns a date object, got " + (result.classname == date.classname));
-                layout1.warn("Returns matching time " + date.getTime() + " = " + result.getTime() + " :" + (result.getTime() == date.getTime()));
-              }
-            ],
-
-            [
-              function()
-              {
-                dataArray = new Array();
-                dataArray[0] = true;
-                dataArray[1] = false;
-                dataArray[2] = 1;
-                dataArray[3] = 1.1;
-                dataArray[4] = "Hello World";
-                dataArray[5] = new Array(5);
-                dataArray[6] = new Object();
-                dataArray[7] = new Date();
-
-                test = "getParams";
-                layout1.warn("Calling '" + test + "'");
-                mycall = rpc.callAsync(handler, test, dataArray[0], dataArray[1], dataArray[2], dataArray[3], dataArray[4], dataArray[5], dataArray[6], dataArray[7]);
-              },
-
-              function(result)
-              {
-                layout1.warn("result: {" + result + "}");
-
-                for (i=0; i< dataArray.length; i++)
-                {
-                  layout1.warn("Returned parameter (" + i + ") value '" + result[i] + "' matches '" + dataArray[i] + "': " + (result[i].toString() == dataArray[i].toString()));
-                  layout1.warn("Returned parameter (" + i + ") type '" + typeof(result[i]) + "' matches '" + typeof(dataArray[i]) + "': " + (typeof(result[i]) == typeof(dataArray[i])));
-                };
-              }
-            ],
-
-            [
-              function()
-              {
-                test = "getError";
-                layout1.warn("Calling '" + test + "'");
-                mycall = rpc.callAsync(handler, test);
-              },
-
-              function(result)
-              {
-                // should never get here; we should receive an exception
-                layout1.warn("ERROR: Should have received an exception!  Got: " + result);
-              }
-            ]
-          ];
-
-        /*
-         * This is the generic handler, used by each of the tests.  It
-         * ascertains whether an exception occured and alert()s with the
-         * exception if so; otherwise it calls the result validation function
-         * and then starts the next test.
-         */
-        handler = function(result, ex, id) {
-          mycall = null;
-          if (ex !== null) {
-            alert("Async(" + id + ") exception: " + ex);
-          } else {
-            // display results of the completed test
-            tests[testNum][1](result);  // [][1] = validate response
-
-            // start the next test
-            ++testNum;
-
-            // Are we done?
-            if (testNum < tests.length) {
-              // Nope.  Run the next test.
-              tests[testNum][0]();
-            }
-          }
-        }
-
-        // Determine which transport to use
-        rpc = new qx.io.remote.Rpc(url.getValue(), service.getValue());
-        rpc.setTimeout(10000);
-        rpc.setCrossDomain(crossDomain.isChecked());
-
-        // start the first test
-        testNum = 0;
-        tests[testNum][0]();            // [][0] = request
-      });
-
-      var d = qx.ui.core.ClientDocument.getInstance();
-      d.add(layout1);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/RPC_5.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/RPC_5.html
deleted file mode 100644 (file)
index b23cdd2..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-  <script type="text/javascript" src=".qxrpc"></script>
-  <!-- With the above script, the service URL for a J2EE application can be
-       automatically determined, no matter on what path it's deployed. -->
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p><strong>Only works together with a RPC backend!</strong></p>
-    <p>Test for RPC functionality.</p>
-    <p>
-      This test calls remote function getParams(), passing a defined field in
-      an object, and an undefined field in an object.  Depending on the
-      setting of qx.core.Settings.jsonEncodeUndefined, the undefined field
-      should or should not be sent.  We also send some (ignored) server data
-      in this test, if requested.
-    </p>
-  </div>
-
-  <script type="text/javascript">
-//    qx.Settings.setCustomOfClass("qx.io.remote.Exchange", "enableDebug", true);
-    qx.Settings.setCustomOfClass("qx.io.Json", "enableDebug", true);
-
-    qx.core.Init.getInstance().defineMain(function() {
-      var layout1 = new qx.ui.layout.VerticalBoxLayout();
-      layout1.setTop(40);
-      layout1.setLeft(20);
-      layout1.setSpacing(4);
-
-      var encodeUndefined = new qx.ui.form.CheckBox("Encode 'undefined' as null");
-      layout1.add(encodeUndefined);
-
-      var sendServerData = new qx.ui.form.CheckBox("Send server data");
-      layout1.add(sendServerData);
-
-      layout1.add(new qx.ui.basic.Label("URL:"));
-      var defaultURL = qx.io.remote.Rpc.makeServerURL();
-      if (defaultURL == null) {
-        defaultURL = "/services/";
-      }
-      var url = new qx.ui.form.TextField(defaultURL);
-      layout1.add(url);
-
-      layout1.add(new qx.ui.basic.Label("Service:"));
-      var service = new qx.ui.form.TextField("qooxdoo.test");
-      layout1.add(service);
-
-      var start = new qx.ui.form.Button("Start test");
-      layout1.add(start);
-
-      // We'll be setting url and service upon execute; no need to do it now.
-      var rpc = new qx.io.remote.Rpc();
-      rpc.setTimeout(10000);
-      var mycall = null;
-
-      start.addEventListener("execute", function() {
-        // Allow the user to reset the URL and Service on each call
-        rpc.setUrl(url.getValue());
-        rpc.setServiceName(service.getValue());
-        rpc.setCrossDomain(false);
-
-        if (sendServerData.isChecked()) {
-          rpc.setServerData(new Date());
-        } else {
-          rpc.setServerData(undefined);
-        }
-
-        qx.Settings.setCustomOfClass("qx.io.Json", "encodeUndefined",
-                                     encodeUndefined.isChecked());
-
-        try {
-          obj = new Object();
-          obj.def = "defined";
-          var result = rpc.callSync("getParams", obj.undef, obj.def);
-          alert("Sync result: " + result);
-        } catch (ex) {
-          alert("Sync exception: " + ex);
-        }
-      });
-
-      var d = qx.ui.core.ClientDocument.getInstance();
-      d.add(layout1);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/SplitPane_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/SplitPane_1.html
deleted file mode 100644 (file)
index 8fd7b92..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test for Splitpane functionality with enabled live resize.</p>
-  </div>
-
-  <script type="text/javascript">
-
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var frame = new qx.ui.layout.CanvasLayout;
-    frame.setLocation(20, 48);
-    frame.setBottom(48);
-    frame.setRight(300);
-    frame.setBackgroundColor("#134275");
-    frame.setPadding(20);
-    frame.addToDocument();
-
-    // the splitpane itself
-    var splitpane = new qx.ui.splitpane.HorizontalSplitPane("1*", "2*");
-    splitpane.setEdge(0);
-    frame.add(splitpane);
-
-    // left Widget
-    var leftWidget = new qx.ui.form.TextArea("LeftWidget");
-    leftWidget.setWrap(true);
-    leftWidget.setBackgroundColor(new qx.renderer.color.Color("white"));
-    leftWidget.setWidth("100%");
-    leftWidget.setHeight("100%");
-
-    // rightWidget (another splitpane)
-    var rightWidget = new qx.ui.splitpane.VerticalSplitPane;
-    rightWidget.setHeight("100%");
-    rightWidget.setWidth("100%");
-
-    // add widgets to splitpane
-    splitpane.addLeft(leftWidget);
-    splitpane.addRight(rightWidget);
-
-
-
-    // right top widget
-    var topWidget = new qx.ui.form.TextArea("Right Top Widget");
-    topWidget.setBackgroundColor(new qx.renderer.color.Color("white"));
-    topWidget.setHeight("100%");
-    topWidget.setWidth("100%");
-
-    // right bottom widget
-    var bottomWidget = new qx.ui.embed.Iframe("http://www.qooxdoo.org");
-    bottomWidget.setHeight("100%");
-    bottomWidget.setWidth("100%");
-
-    // add widgets to right splitpane
-    rightWidget.addTop(topWidget);
-    rightWidget.addBottom(bottomWidget);
-
-
-
-
-    var toggleButton = new qx.ui.form.Button("Toggle Layout", "icon/16/actions/view-refresh.png");
-    toggleButton.setBottom(48);
-    toggleButton.setLeft(20);
-    toggleButton.addToDocument();
-    toggleButton.addEventListener("execute", function(e)
-    {
-      if (splitpane.getOrientation() == "horizontal")
-      {
-        splitpane.setOrientation("vertical");
-        rightWidget.setOrientation("horizontal");
-      }
-      else
-      {
-        splitpane.setOrientation("horizontal");
-        rightWidget.setOrientation("vertical");
-      }
-    });
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Table_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Table_1.html
deleted file mode 100644 (file)
index 5a4c52a..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>The default table using divs and nodeValue.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    // table model
-    var tableModel = new qx.ui.table.SimpleTableModel();
-    tableModel.setColumns([ "ID", "A number", "A date", "Boolean test" ]);
-    var rowData = [];
-    var now = new Date().getTime();
-    var dateRange = 400 * 24 * 60 * 60 * 1000; // 400 days
-    for (var row = 0; row < 100; row++) {
-      var date = new Date(now + Math.random() * dateRange - dateRange / 2);
-      rowData.push([ row, Math.random() * 10000, date, (Math.random() > 0.5) ]);
-    }
-    tableModel.setData(rowData);
-    tableModel.setColumnEditable(1, true);
-    tableModel.setColumnEditable(2, true);
-  
-    // table
-    var table = new qx.ui.table.Table(tableModel);
-    with (table) {
-      set({ left:10, top:30, right:300, bottom:30, border:qx.renderer.border.BorderPresets.getInstance().thinInset });
-      setMetaColumnCounts([1, -1]);
-      getSelectionModel().setSelectionMode(qx.ui.table.SelectionModel.MULTIPLE_INTERVAL_SELECTION);
-      getTableColumnModel().setDataCellRenderer(3, new qx.ui.table.BooleanDataCellRenderer());
-    };
-
-    d.add(table);
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Table_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Table_2.html
deleted file mode 100644 (file)
index 2810394..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>a table using divs and Array.join.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    qx.ui.table.TablePane.USE_ARRAY_JOIN = true;
-
-    // table model
-    var tableModel = new qx.ui.table.SimpleTableModel();
-    tableModel.setColumns([ "ID", "A number", "A date", "Boolean test" ]);
-    var rowData = [];
-    var now = new Date().getTime();
-    var dateRange = 400 * 24 * 60 * 60 * 1000; // 400 days
-    for (var row = 0; row < 100; row++) {
-      var date = new Date(now + Math.random() * dateRange - dateRange / 2);
-      rowData.push([ row, Math.random() * 10000, date, (Math.random() > 0.5) ]);
-    }
-    tableModel.setData(rowData);
-    tableModel.setColumnEditable(1, true);
-    tableModel.setColumnEditable(2, true);
-  
-    // table
-    var table = new qx.ui.table.Table(tableModel);
-    with (table) {
-      set({ left:10, top:30, right:300, bottom:30, border:qx.renderer.border.BorderPresets.getInstance().thinInset });
-      setMetaColumnCounts([1, -1]);
-      getSelectionModel().setSelectionMode(qx.ui.table.SelectionModel.MULTIPLE_INTERVAL_SELECTION);
-      getTableColumnModel().setDataCellRenderer(3, new qx.ui.table.BooleanDataCellRenderer());
-    };
-
-    d.add(table);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Table_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Table_3.html
deleted file mode 100644 (file)
index e03cff3..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>A table using table elements and nodeValue.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    // qx.ui.table.TablePane.USE_TABLE = true;
-
-    // table model
-    var tableModel = new qx.ui.table.SimpleTableModel();
-    tableModel.setColumns([ "ID", "A number", "A date", "Boolean test" ]);
-    var rowData = [];
-    var now = new Date().getTime();
-    var dateRange = 400 * 24 * 60 * 60 * 1000; // 400 days
-    for (var row = 0; row < 100; row++) {
-      var date = new Date(now + Math.random() * dateRange - dateRange / 2);
-      rowData.push([ row, Math.random() * 10000, date, (Math.random() > 0.5) ]);
-    }
-    tableModel.setData(rowData);
-    tableModel.setColumnEditable(1, true);
-    tableModel.setColumnEditable(2, true);
-
-    // table
-    var table = new qx.ui.table.Table(tableModel);
-    with (table) {
-      set({ left:10, top:30, right:300, bottom:30, border:qx.renderer.border.BorderPresets.getInstance().thinInset });
-      setMetaColumnCounts([1, -1]);
-      getSelectionModel().setSelectionMode(qx.ui.table.SelectionModel.MULTIPLE_INTERVAL_SELECTION);
-      getTableColumnModel().setDataCellRenderer(3, new qx.ui.table.BooleanDataCellRenderer());
-    };
-
-    d.add(table);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Table_4.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Table_4.html
deleted file mode 100644 (file)
index a8dad6d..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>A table using table elements and Array.join.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    qx.ui.table.TablePane.USE_TABLE = true;
-    qx.ui.table.TablePane.USE_ARRAY_JOIN = true;
-
-    // table model
-    var tableModel = new qx.ui.table.SimpleTableModel();
-    tableModel.setColumns([ "ID", "A number", "A date", "Boolean test" ]);
-    var rowData = [];
-    var now = new Date().getTime();
-    var dateRange = 400 * 24 * 60 * 60 * 1000; // 400 days
-    for (var row = 0; row < 100; row++) {
-      var date = new Date(now + Math.random() * dateRange - dateRange / 2);
-      rowData.push([ row, Math.random() * 10000, date, (Math.random() > 0.5) ]);
-    }
-    tableModel.setData(rowData);
-    tableModel.setColumnEditable(1, true);
-    tableModel.setColumnEditable(2, true);
-  
-    // table
-    var table = new qx.ui.table.Table(tableModel);
-    with (table) {
-      set({ left:10, top:30, right:300, bottom:30, border:qx.renderer.border.BorderPresets.getInstance().thinInset });
-      setMetaColumnCounts([1, -1]);
-      getSelectionModel().setSelectionMode(qx.ui.table.SelectionModel.MULTIPLE_INTERVAL_SELECTION);
-      getTableColumnModel().setDataCellRenderer(3, new qx.ui.table.BooleanDataCellRenderer());
-    };
-
-    d.add(table);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Table_5.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Table_5.html
deleted file mode 100644 (file)
index 6a7ad4d..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>A table having few rows.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    //qx.log.Logger.ROOT_LOGGER.addAppender(new qx.log.WindowAppender);
-
-    // table model
-    var tableModel = new qx.ui.table.SimpleTableModel();
-    tableModel.setColumns([ "ID", "A number", "A date", "Boolean test" ]);
-    var rowData = [];
-    var now = new Date().getTime();
-    var dateRange = 400 * 24 * 60 * 60 * 1000; // 400 days
-    for (var row = 0; row < 20; row++) {
-      var date = new Date(now + Math.random() * dateRange - dateRange / 2);
-      rowData.push([ row, Math.random() * 10000, date, (Math.random() > 0.5) ]);
-    }
-    tableModel.setData(rowData);
-    tableModel.setColumnEditable(1, true);
-    tableModel.setColumnEditable(2, true);
-
-    // table
-    var table = new qx.ui.table.Table(tableModel);
-    with (table) {
-      set({ left:10, top:30, right:300, bottom:30, border:qx.renderer.border.BorderPresets.getInstance().thinInset });
-      setMetaColumnCounts([1, -1]);
-      getSelectionModel().setSelectionMode(qx.ui.table.SelectionModel.MULTIPLE_INTERVAL_SELECTION);
-      getTableColumnModel().setDataCellRenderer(3, new qx.ui.table.BooleanDataCellRenderer());
-      setColumnWidth(0, 80);
-      setColumnWidth(1, 200);
-      setColumnWidth(2, 150);
-    };
-
-    d.add(table);
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ToolBar_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ToolBar_1.html
deleted file mode 100644 (file)
index 1d434c1..0000000
+++ /dev/null
@@ -1,227 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Introduce qx.ui.menu.Menu which opens on qx.ui.toolbar.ToolBarMenuButtons.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-
-      var tb = new qx.ui.toolbar.ToolBar;
-      with(tb)
-      {
-        setTop(48);
-        setLeft(20);
-        setRight(335);
-      };
-
-      var m1 = new qx.ui.menu.Menu;
-
-      var mb1 = new qx.ui.menu.Button("Folder");
-      var ms1 = new qx.ui.menu.Separator;
-      var mb2 = new qx.ui.menu.Button("Word Document");
-      var mb3 = new qx.ui.menu.Button("Text File");
-      var mb4 = new qx.ui.menu.Button("Image");
-
-      m1.add(mb1, ms1, mb2, mb3, mb4);
-      d.add(m1);
-
-
-      var m2 = new qx.ui.menu.Menu;
-
-      var mb5 = new qx.ui.menu.Button("Copy", "icon/16/actions/edit-copy.png");
-      var mb6 = new qx.ui.menu.Button("Move", "icon/16/actions/edit-cut.png");
-      var mb7 = new qx.ui.menu.Button("Delete", "icon/16/actions/edit-delete.png");
-
-      m2.add(mb5, mb6, mb7);
-      d.add(m2);
-
-
-
-
-      var btns1 = [
-        { type : "menu", icon : "actions/document-new", label : "New", menu : m1 },
-        { type : "menu", icon : "apps/accessories-text-editor", label : "Edit", menu : m2 }
-      ];
-
-      var btns2 = [
-        { type : "button", icon : "actions/go-up", label : "Upload" },
-        { type : "button", icon : "actions/go-down", label : "Download" }
-      ];
-
-      var btns3 = [
-        { type : "button", icon : "apps/accessories-tip", label : "Tip" },
-        { type : "button", icon : "actions/help-faq", label : "Help" }
-      ];
-
-      var bars = [ btns1, btns2, btns3 ];
-
-      function changeLayout(e) {
-        this.setShow(e.getData());
-      };
-
-      var useParts = true;
-
-
-      for (var j=0; j<bars.length; j++)
-      {
-        var btns = bars[j];
-
-        if (useParts) {
-          var tbp = new qx.ui.toolbar.Part;
-        };
-
-        for (var i=0; i<btns.length; i++)
-        {
-          var btn = btns[i];
-
-          switch(btn.type)
-          {
-            case "separator":
-              var o = new qx.ui.toolbar.Separator;
-              break;
-
-            case "menu":
-              var o = new qx.ui.toolbar.MenuButton(btn.label, btn.menu, "icon/22/" + btn.icon + ".png", 22, 22);
-
-              // beautiful decoupling: toolbar buttons don't know about radio boxes
-
-              // uncomment this to omit changes on one button
-              // if (btn.icon != "upload")
-              d.addEventListener("changeLayout", changeLayout, o );
-              break;
-
-            case "button":
-              var o = new qx.ui.toolbar.Button(btn.label, "icon/22/" + btn.icon + ".png");
-
-              // beautiful decoupling: toolbar buttons don't know about radio boxes
-
-              // uncomment this to omit changes on one button
-              // if (btn.icon != "upload")
-              d.addEventListener("changeLayout", changeLayout, o );
-              break;
-          };
-
-          if (useParts)
-          {
-            tbp.add(o);
-          }
-          else
-          {
-            tb.add(o);
-          };
-        };
-
-        if (useParts) {
-          tb.add(tbp);
-        };
-      };
-
-      d.add(tb);
-
-
-      var rd1 = new qx.ui.form.RadioButton("Show Icons and Label", "both");
-      var rd2 = new qx.ui.form.RadioButton("Show Icons", "icon");
-      var rd3 = new qx.ui.form.RadioButton("Show Label", "label");
-
-      with(rd1)
-      {
-        setTop(140);
-        setLeft(20);
-        setChecked(true);
-      };
-
-      with(rd2)
-      {
-        setTop(160);
-        setLeft(20);
-      };
-
-      with(rd3)
-      {
-        setTop(180);
-        setLeft(20);
-      };
-
-
-      var rbm = new qx.manager.selection.RadioManager();
-
-      rbm.add(rd1);
-      rbm.add(rd2);
-      rbm.add(rd3);
-
-
-      // beautiful decoupling: radio boxes don't know about toolbar buttons
-      rbm.addEventListener("changeSelected", function(e) {
-        d.dispatchEvent( new qx.event.type.DataEvent("changeLayout", e.getData().getValue() ) );
-      });
-
-      d.add(rd1, rd2, rd3);
-
-
-
-
-
-      // Alignment
-      var ra1 = new qx.ui.form.RadioButton("Left Aligned", "left");
-      var ra2 = new qx.ui.form.RadioButton("Centered", "center");
-      var ra3 = new qx.ui.form.RadioButton("Right Aligned", "right");
-
-      with(ra1)
-      {
-        setTop(140);
-        setLeft(220);
-        setChecked(true);
-      };
-
-      with(ra2)
-      {
-        setTop(160);
-        setLeft(220);
-      };
-
-      with(ra3)
-      {
-        setTop(180);
-        setLeft(220);
-      };
-
-
-      var ram = new qx.manager.selection.RadioManager();
-
-      ram.add(ra1);
-      ram.add(ra2);
-      ram.add(ra3);
-
-      d.add(ra1, ra2, ra3);
-
-      ram.addEventListener("changeSelected", function(e) {
-        tb.setHorizontalChildrenAlign(e.getData().getValue());
-      });
-
-
-
-
-
-
-
-      // Icon & Color Themes
-      qx.manager.object.ImageManager.getInstance().createThemeList(d, 20, 248);
-      qx.manager.object.ColorManager.getInstance().createThemeList(d, 220, 248);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ToolBar_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ToolBar_2.html
deleted file mode 100644 (file)
index c967dd2..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Create ten toolbars. Stress Test.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-
-      var btns1 = [
-        { type : "button", icon : "document-new", text : "New" },
-        { type : "separator" },
-        { type : "button", icon : "edit-copy", text : "Copy" },
-        { type : "button", icon : "edit-cut", text : "Cut" },
-        { type : "button", icon : "edit-paste", text : "Paste" }
-      ];
-
-      var btns2 = [
-        { type : "button", icon : "go-up", text : "Upload" },
-        { type : "button", icon : "go-down", text : "Download" }
-      ];
-
-      var btns3 = [
-        { type : "button", icon : "help-faq", text : "Hilfe" }
-      ];
-
-      var bars = [ btns1, btns2, btns3 ];
-
-      function changeLayout(e) {
-        this.setShow(e.getData());
-      };
-      
-      function changeSize(e) {
-        var v = e.getData();
-        var o = v == 22 ? 32 : 22;
-        
-        this.setIcon(this.getIcon().replace(o, v));
-      };      
-
-      var useParts = true;
-
-      for (var k=0; k<10; k++)
-      {
-        var tb = new qx.ui.toolbar.ToolBar;
-        with(tb)
-        {
-          setTop(48+(k*50));
-          setLeft(20);
-          setRight(335);
-        };        
-        
-        for (var j=0; j<bars.length; j++)
-        {
-          var btns = bars[j];
-  
-          if (useParts) {
-            var tbp = new qx.ui.toolbar.Part;
-          };
-  
-          for (var i=0; i<btns.length; i++)
-          {
-            var btn = btns[i];
-  
-            switch(btn.type)
-            {
-              case "separator":
-                var o = new qx.ui.toolbar.Separator;
-                break;
-  
-              case "button":
-                var o = new qx.ui.toolbar.Button(btn.text, "icon/22/actions/" + btn.icon + ".png");
-  
-                // beautiful decoupling: toolbar buttons don't know about radio boxes
-  
-                d.addEventListener("changeLayout", changeLayout, o);
-                d.addEventListener("changeSize", changeSize, o);
-                break;
-            };
-  
-            if (useParts)
-            {
-              tbp.add(o);
-            }
-            else
-            {
-              tb.add(o);
-            };
-          };
-  
-          if (useParts) {
-            tb.add(tbp);
-          };
-        };
-  
-        d.add(tb);
-      };
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ToolBar_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ToolBar_3.html
deleted file mode 100644 (file)
index e9c9320..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing the new flash support for qx.ui.toolbar.ToolBarButtons (inherited from qx.ui.basic.Atom).</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-      
-      var tb = new qx.ui.toolbar.ToolBar;
-      
-      tb.setTop(48);
-      tb.setLeft(20);
-      tb.setRight(335);
-      
-      d.add(tb);
-      
-      for (var i=1; i<8; i++)
-      {
-        var tbb = new qx.ui.toolbar.Button("Flash #" + i, "icon/22/actions/view-refresh.png", 22, 22, "./image/flash/color/file" + i + ".swf");        
-        tb.add(tbb);
-      };    
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ToolBar_4.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/ToolBar_4.html
deleted file mode 100644 (file)
index 290eb5d..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Again a nice example which shows how to use qx.ui.toolbar.ToolBar as a menubar system.</p>
-    <p>Added some parts and a new flex zone which aligns the help button to the right edge</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var d = qx.ui.core.ClientDocument.getInstance();
-
-      var c1 = new qx.client.Command();
-      c1.addEventListener("execute", function(e) {
-        this.debug("Execute: " + e.getData().getLabel());
-      });
-
-
-
-
-      var m1 = new qx.ui.menu.Menu;
-
-      var mb1_01 = new qx.ui.menu.Button("New", null, c1);
-      var mb1_02 = new qx.ui.menu.Button("Open", null, c1);
-      var mb1_03 = new qx.ui.menu.Button("Save", null, c1);
-      var mb1_04 = new qx.ui.menu.Button("Save as", null, c1);
-      var mb1_05 = new qx.ui.menu.Button("Close", null, c1);
-      var mb1_06 = new qx.ui.menu.Button("Restore last saved", null, c1);
-
-      m1.add(mb1_01, mb1_02, mb1_03, mb1_04, mb1_05, mb1_06);
-
-
-      var m2 = new qx.ui.menu.Menu;
-
-      var mb2_01 = new qx.ui.menu.Button("Undo", null, c1);
-      var mb2_02 = new qx.ui.menu.Button("Redo", null, c1);
-      var mb2_b1 = new qx.ui.menu.Separator();
-      var mb2_03 = new qx.ui.menu.Button("Cut", "icon/16/actions/edit-cut.png", c1);
-      var mb2_04 = new qx.ui.menu.Button("Copy", "icon/16/actions/edit-copy.png", c1);
-      var mb2_05 = new qx.ui.menu.Button("Paste", "icon/16/actions/edit-paste.png", c1);
-      var mb2_06 = new qx.ui.menu.Button("Delete", "icon/16/actions/edit-delete.png", c1);
-      var mb2_b2 = new qx.ui.menu.Separator();
-      var mb2_07 = new qx.ui.menu.Button("Select All", null, c1);
-      var mb2_08 = new qx.ui.menu.Button("Find", null, c1);
-      var mb2_09 = new qx.ui.menu.Button("Find Again", null, c1);
-
-
-
-
-      mb2_05.setEnabled(false);
-      mb2_06.setEnabled(false);
-      mb2_09.setEnabled(false);
-
-      m2.add(mb2_01, mb2_02, mb2_b1, mb2_03, mb2_04, mb2_05, mb2_06, mb2_b2, mb2_07, mb2_08, mb2_09);
-
-
-      var m3 = new qx.ui.menu.Menu;
-      var m3_suba = new qx.ui.menu.Menu;
-      var m3_subb = new qx.ui.menu.Menu;
-      var m3_subc = new qx.ui.menu.Menu;
-      var m3_subd = new qx.ui.menu.Menu;
-
-      var mb3_01 = new qx.ui.menu.CheckBox("File List", c1, false);
-      var mb3_02 = new qx.ui.menu.CheckBox("Syntax Highlighting", c1, true);
-      var mb3_03 = new qx.ui.menu.CheckBox("Statusbar", c1, true);
-      var mb3_b1 = new qx.ui.menu.Separator();
-      var mb3_04 = new qx.ui.menu.Button("Printer Font", null, null, m3_suba);
-      var mb3_05 = new qx.ui.menu.Button("Editor Font", null, null, m3_subb);
-      var mb3_06 = new qx.ui.menu.Button("Export Font", null, null, m3_subc);
-      var mb3_b2 = new qx.ui.menu.Separator();
-      var mb3_07 = new qx.ui.menu.Button("Advanced", null, null, m3_subd);
-
-      m3.add(mb3_01, mb3_02, mb3_03, mb3_b1, mb3_04, mb3_05, mb3_06, mb3_b2, mb3_07);
-
-      var mb3_suba_01 = new qx.ui.menu.Button("Tahoma, 11pt", null, c1);
-      var mb3_suba_02 = new qx.ui.menu.Button("Tahoma, 12pt", null, c1);
-      var mb3_suba_03 = new qx.ui.menu.Button("Tahoma, 13pt", null, c1);
-      var mb3_suba_04 = new qx.ui.menu.Button("Tahoma, 14pt", null, c1);
-      var mb3_suba_05 = new qx.ui.menu.Button("Tahoma, 15pt", null, c1);
-
-      m3_suba.add(mb3_suba_01, mb3_suba_02, mb3_suba_03, mb3_suba_04, mb3_suba_05);
-
-      var mb3_subb_01 = new qx.ui.menu.Button("Verdana, 11pt", null, c1);
-      var mb3_subb_02 = new qx.ui.menu.Button("Verdana, 12pt", null, c1);
-      var mb3_subb_03 = new qx.ui.menu.Button("Verdana, 13pt", null, c1);
-      var mb3_subb_04 = new qx.ui.menu.Button("Verdana, 14pt", null, c1);
-      var mb3_subb_05 = new qx.ui.menu.Button("Verdana, 15pt", null, c1);
-
-      m3_subb.add(mb3_subb_01, mb3_subb_02, mb3_subb_03, mb3_subb_04, mb3_subb_05);
-
-      var mb3_subc_01 = new qx.ui.menu.Button("Courier, 11pt", null, c1);
-      var mb3_subc_02 = new qx.ui.menu.Button("Courier, 12pt", null, c1);
-      var mb3_subc_03 = new qx.ui.menu.Button("Courier, 13pt", null, c1);
-      var mb3_subc_04 = new qx.ui.menu.Button("Courier, 14pt", null, c1);
-      var mb3_subc_05 = new qx.ui.menu.Button("Courier, 15pt", null, c1);
-
-      m3_subc.add(mb3_subc_01, mb3_subc_02, mb3_subc_03, mb3_subc_04, mb3_subc_05);
-
-      var mb3_subd_02_suba = new qx.ui.menu.Menu();
-
-      var mb3_subd_02_suba_01 = new qx.ui.menu.Button("First", null, c1);
-      var mb3_subd_02_suba_02 = new qx.ui.menu.Button("Second", null, c1);
-      var mb3_subd_02_suba_03 = new qx.ui.menu.Button("Third", null, c1);
-
-      mb3_subd_02_suba.add(mb3_subd_02_suba_01, mb3_subd_02_suba_02, mb3_subd_02_suba_03);
-
-      var mb3_subd_01 = new qx.ui.menu.Button("First", null, c1);
-      var mb3_subd_02 = new qx.ui.menu.Button("Second", null, c1, mb3_subd_02_suba);
-      var mb3_subd_03 = new qx.ui.menu.Button("Third", null, c1);
-
-      m3_subd.add(mb3_subd_01, mb3_subd_02, mb3_subd_03);
-
-      var m4 = new qx.ui.menu.Menu;
-
-      var m4_suba = new qx.ui.menu.Menu;
-
-      var mb4_01 = new qx.ui.menu.Button("View", null, c1, m4_suba);
-      var mb4_b1 = new qx.ui.menu.Separator();
-      var mb4_02 = new qx.ui.menu.Button("Editor Preferences...", null, c1);
-      var mb4_03 = new qx.ui.menu.Button("Editor Extensions", null, c1);
-      var mb4_04 = new qx.ui.menu.Button("Framework Preferences", null, c1);
-
-      m4.add(mb4_01, mb4_b1, mb4_02, mb4_03, mb4_04);
-
-      var mb4_suba_01 = new qx.ui.menu.Button("New Window", null, c1);
-      var mb4_suba_b1 = new qx.ui.menu.Separator();
-      var mb4_suba_02 = new qx.ui.menu.RadioButton("Overlapping", c1, true);
-      var mb4_suba_03 = new qx.ui.menu.RadioButton("Split Horizontally", c1);
-      var mb4_suba_04 = new qx.ui.menu.RadioButton("Split Vertically", c1);
-      var mb4_suba_b2 = new qx.ui.menu.Separator();
-      var mb4_suba_05 = new qx.ui.menu.Button("Next Window", null, c1);
-      var mb4_suba_06 = new qx.ui.menu.Button("Previous Window", null, c1);
-
-      m4_suba.add(mb4_suba_01, mb4_suba_b1, mb4_suba_02, mb4_suba_03, mb4_suba_04, mb4_suba_b2, mb4_suba_05, mb4_suba_06);
-
-      var mb4_manager = new qx.manager.selection.RadioManager("windowMode", [ mb4_suba_02, mb4_suba_03, mb4_suba_04 ]);
-
-
-      var m5 = new qx.ui.menu.Menu;
-
-      var mb5_01 = new qx.ui.menu.Button("Help", null, c1);
-      var mb5_02 = new qx.ui.menu.Button("About", null, c1);
-
-      m5.add(mb5_01, mb5_02);
-
-      d.add(m1, m2, m3, m3_suba, m3_subb, m3_subc, m3_subd, mb3_subd_02_suba, m4, m4_suba, m5);
-
-
-      var mb1 = new qx.ui.toolbar.ToolBar;
-
-      mb1.setTop(48);
-      mb1.setRight(335);
-      mb1.setLeft(20);
-
-      var mp1 = new qx.ui.toolbar.Part;
-      var mp2 = new qx.ui.toolbar.Part;
-      var mp3 = new qx.ui.toolbar.Part;
-
-      mb1.add(mp1, mp2, new qx.ui.basic.HorizontalSpacer, mp3);
-
-      var mbb1 = new qx.ui.toolbar.MenuButton("File", m1);
-      var mbb2 = new qx.ui.toolbar.MenuButton("Edit", m2);
-      var mbb3 = new qx.ui.toolbar.MenuButton("View", m3);
-      var mbb4 = new qx.ui.toolbar.MenuButton("Options", m4);
-      var mbb5 = new qx.ui.toolbar.MenuButton("Help", m5);
-
-      mp1.add(mbb1, mbb2);
-      mp2.add(mbb3, mbb4);
-      mp3.add(mbb5);
-
-      d.add(mb1);
-
-
-
-
-      // Icon & Color Themes
-      qx.manager.object.ImageManager.getInstance().createThemeList(d, 20, 348);
-      qx.manager.object.ColorManager.getInstance().createThemeList(d, 220, 348);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Transport_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Transport_1.html
deleted file mode 100644 (file)
index e8256aa..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Simple test for qooxdoo's transport implementation using some data for an addressbook.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var lay = new qx.ui.layout.VerticalBoxLayout;
-    lay.setLocation(20, 48);
-    lay.setRight(335);
-    lay.setBottom(48);
-    qx.ui.core.ClientDocument.getInstance().add(lay);
-
-
-
-    var fsq = new qx.ui.groupbox.GroupBox("Request");
-    fsq.setHeight("auto");
-    lay.add(fsq);
-
-
-    var hlay = new qx.ui.layout.HorizontalBoxLayout;
-    hlay.setVerticalChildrenAlign("middle");
-    hlay.setSpacing(4);
-    hlay.auto();
-    fsq.add(hlay);
-
-
-    var cm1 = new qx.ui.form.ComboBox();
-    cm1.add(new qx.ui.form.ListItem("data/persons/anita.xml"));
-    cm1.add(new qx.ui.form.ListItem("data/persons/harald.xml"));
-    cm1.add(new qx.ui.form.ListItem("data/persons/lisbeth.xml"));
-    cm1.add(new qx.ui.form.ListItem("data/persons/paul.xml"));
-    cm1.setSelected(cm1.getList().getFirstChild());
-    cm1.setWidth(200);
-    cm1.addEventListener("changeSelected", upd);
-
-    hlay.add(cm1);
-
-
-
-    var async = new qx.ui.form.CheckBox("Async");
-    async.setChecked(true);
-    hlay.add(async);
-
-
-    var spin = new qx.ui.form.Spinner(1);
-    hlay.add(spin);
-
-
-
-    var btn = new qx.ui.form.Button("Send", "icon/16/actions/dialog-ok.png");
-    btn.addEventListener("execute", upd);
-    hlay.add(btn);
-
-
-    var inf = new qx.ui.form.TextField("State");
-    inf.setWidth(80);
-    inf.setReadOnly(true);
-    hlay.add(inf);
-
-
-    var code = new qx.ui.form.TextField("Code");
-    code.setWidth(30);
-    code.setReadOnly(true);
-    hlay.add(code);
-
-
-    var typ = new qx.ui.form.TextField("Type");
-    typ.setWidth(80);
-    typ.setReadOnly(true);
-    hlay.add(typ);
-
-
-    var len = new qx.ui.form.TextField("Length");
-    len.setWidth(50);
-    len.setReadOnly(true);
-    hlay.add(len);
-
-
-    var checken = new qx.ui.form.CheckBox("enabled");
-    checken.setChecked(true);
-    hlay.add(checken);
-
-    checken.addEventListener("changeChecked", function(e) {
-      qx.io.remote.RequestQueue.getInstance().setEnabled(e.getData());
-    });
-
-
-
-
-
-    var fsr = new qx.ui.groupbox.GroupBox("Result");
-    fsr.setHeight("1*");
-    lay.add(fsr);
-
-    var area = new qx.ui.form.TextArea;
-    area.setDimension("100%", "100%");
-    fsr.add(area);
-
-
-
-
-
-
-
-
-
-
-    function upd(e)
-    {
-      var val = cm1.getSelected();
-
-      if (!val) {
-        return;
-      };
-
-      var req;
-      for( var i=0, max=parseInt(spin.getValue()); i<max; i++ )
-      {
-        req = new qx.io.remote.Request(val.getLabel(), "GET", qx.util.Mime.TEXT);
-
-        req.setAsynchronous(async.getChecked());
-        req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
-
-        req.setParameter("test1", "value1");
-        req.setParameter("test2", "value2");
-        req.setParameter("test3", "value3");
-
-        req.setCrossDomain(false);
-
-        req.addEventListener("sending", function(e) {
-          inf.setValue("Sending");
-        });
-
-        req.addEventListener("receiving", function(e) {
-          inf.setValue("Receiving");
-        });
-
-        req.addEventListener("completed", function(e)
-        {
-          inf.setValue("Completed");
-          typ.setValue(e.getData().getResponseHeader("Content-Type"));
-          len.setValue(e.getData().getResponseHeader("Content-Length"));
-          code.setValue(e.getData().getStatusCode().toString());
-          area.setValue(e.getData().getContent());
-        });
-
-        req.addEventListener("failed", function(e)
-        {
-          inf.setValue("Failed");
-          typ.setValue(e.getData().getResponseHeader("Content-Type"));
-          len.setValue(e.getData().getResponseHeader("Content-Length"));
-          code.setValue(e.getData().getStatusCode().toString());
-          area.setValue(e.getData().getContent());
-        });
-
-        req.addEventListener("timeout", function(e)
-        {
-          inf.setValue("Timeout");
-          typ.setValue(e.getData().getResponseHeader("Content-Type"));
-          len.setValue(e.getData().getResponseHeader("Content-Length"));
-          code.setValue(e.getData().getStatusCode().toString());
-          area.setValue(e.getData().getContent());
-        });
-
-        req.addEventListener("aborted", function(e)
-        {
-          inf.setValue("Aborted");
-          typ.setValue(e.getData().getResponseHeader("Content-Type"));
-          len.setValue(e.getData().getResponseHeader("Content-Length"));
-          code.setValue(e.getData().getStatusCode().toString());
-          area.setValue(e.getData().getContent());
-        });
-
-        req.send();
-      };
-    };
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Transport_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Transport_2.html
deleted file mode 100644 (file)
index 0724486..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing different file sizes with timeouts and other built-in transport features.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var lay = new qx.ui.layout.VerticalBoxLayout;
-    lay.setLocation(20, 48);
-    lay.setRight(335);
-    lay.setBottom(48);
-    qx.ui.core.ClientDocument.getInstance().add(lay);
-
-
-
-    var fsq = new qx.ui.groupbox.GroupBox("Request");
-    fsq.setHeight("auto");
-    lay.add(fsq);
-
-
-    var hlay = new qx.ui.layout.HorizontalBoxLayout;
-    hlay.setVerticalChildrenAlign("middle");
-    hlay.setSpacing(4);
-    hlay.auto();
-    fsq.add(hlay);
-
-
-    var cm1 = new qx.ui.form.ComboBox();
-    cm1.add(new qx.ui.form.ListItem("data/filesize/40kb.xml"));
-    cm1.add(new qx.ui.form.ListItem("data/filesize/400kb.xml"));
-    cm1.setSelected(cm1.getList().getFirstChild());
-    cm1.setWidth(200);
-    cm1.addEventListener("changeSelected", upd);
-
-    hlay.add(cm1);
-
-
-
-    var async = new qx.ui.form.CheckBox("Async");
-    async.setChecked(true);
-    hlay.add(async);
-
-
-    var spin = new qx.ui.form.Spinner(1);
-    hlay.add(spin);
-
-
-
-    var btn = new qx.ui.form.Button("Send", "icon/16/actions/dialog-ok.png");
-    btn.addEventListener("execute", upd);
-    hlay.add(btn);
-
-
-    var inf = new qx.ui.form.TextField("State");
-    inf.setWidth(80);
-    hlay.add(inf);
-
-
-    var code = new qx.ui.form.TextField("Code");
-    code.setWidth(30);
-    hlay.add(code);
-
-
-    var typ = new qx.ui.form.TextField("Type");
-    typ.setWidth(80);
-    typ.setReadOnly(true);
-    hlay.add(typ);
-
-
-    var len = new qx.ui.form.TextField("Length");
-    len.setWidth(50);
-    len.setReadOnly(true);
-    hlay.add(len);
-
-
-
-
-    var checken = new qx.ui.form.CheckBox("enabled");
-    checken.setChecked(true);
-    hlay.add(checken);
-
-    checken.addEventListener("changeChecked", function(e) {
-      qx.io.remote.RequestQueue.getInstance().setEnabled(e.getData());
-    });
-
-
-
-
-
-    var fsr = new qx.ui.groupbox.GroupBox("Result");
-    fsr.setHeight("1*");
-    lay.add(fsr);
-
-    var area = new qx.ui.basic.Label("Disabled because of large filesize");
-    fsr.add(area);
-
-
-
-
-
-
-
-
-
-    function upd(e)
-    {
-      var val = cm1.getSelected();
-
-      if (!val) {
-        return;
-      };
-
-      var req;
-      for( var i=0, max=parseInt(spin.getValue()); i<max; i++ )
-      {
-        req = new qx.io.remote.Request(val.getLabel(), "GET", qx.util.Mime.TEXT);
-
-        req.setAsynchronous(async.getChecked());
-        req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
-
-        req.setParameter("test1", "value1");
-        req.setParameter("test2", "value2");
-        req.setParameter("test3", "value3");
-
-        // Force to testing iframe implementation
-        // req.setCrossDomain(true);
-
-        req.addEventListener("sending", function(e) {
-          inf.setValue("Sending");
-        });
-
-        req.addEventListener("receiving", function(e) {
-          inf.setValue("Receiving");
-        });
-
-        req.addEventListener("completed", function(e)
-        {
-          inf.setValue("Completed");
-          typ.setValue(e.getData().getResponseHeader("Content-Type"));
-          len.setValue(e.getData().getResponseHeader("Content-Length"));
-          code.setValue(e.getData().getStatusCode().toString());
-        });
-
-        req.addEventListener("failed", function(e)
-        {
-          inf.setValue("Failed");
-          typ.setValue(e.getData().getResponseHeader("Content-Type"));
-          len.setValue(e.getData().getResponseHeader("Content-Length"));
-          code.setValue(e.getData().getStatusCode().toString());
-        });
-
-        req.addEventListener("timeout", function(e)
-        {
-          inf.setValue("Timeout");
-          typ.setValue(e.getData().getResponseHeader("Content-Type"));
-          len.setValue(e.getData().getResponseHeader("Content-Length"));
-          code.setValue(e.getData().getStatusCode().toString());
-        });
-
-        req.addEventListener("aborted", function(e)
-        {
-          inf.setValue("Aborted");
-          typ.setValue(e.getData().getResponseHeader("Content-Type"));
-          len.setValue(e.getData().getResponseHeader("Content-Length"));
-          code.setValue(e.getData().getStatusCode().toString());
-        });
-
-        req.send();
-      };
-    };
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Transport_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Transport_3.html
deleted file mode 100644 (file)
index b59fc91..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing multiple parallel requests of files with different sizes.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var lab1 = new qx.ui.basic.Label("40KB");
-    var lab2 = new qx.ui.basic.Label("400KB");
-
-    var spin1 = new qx.ui.form.Spinner(0, 3, 50);
-    var spin2 = new qx.ui.form.Spinner(0, 3, 20);
-
-
-
-
-    var grid = new qx.ui.layout.GridLayout;
-
-    grid.setLocation(20, 48);
-    grid.setDimension("auto", "auto");
-    grid.setHorizontalSpacing(10);
-    grid.setVerticalSpacing(4);
-    grid.setBorder(qx.renderer.border.BorderPresets.getInstance().thinOutset);
-    grid.setBackgroundColor("white");
-    grid.setPadding(10);
-
-    grid.setColumnCount(2);
-    grid.setRowCount(2);
-
-    grid.setColumnWidth(0, 50);
-    grid.setColumnWidth(1, 50);
-
-    grid.setRowHeight(0, 18);
-    grid.setRowHeight(1, 22);
-
-    qx.ui.core.ClientDocument.getInstance().add(grid);
-
-    grid.add(lab1, 0, 0);
-    grid.add(lab2, 1, 0);
-
-    grid.add(spin1, 0, 1);
-    grid.add(spin2, 1, 1);
-
-
-
-    var btn = new qx.ui.form.Button("Send", "icon/16/actions/dialog-ok.png");
-    btn.setLocation(20, 120);
-    qx.ui.core.ClientDocument.getInstance().add(btn);
-
-
-
-    var area = new qx.ui.form.TextArea("");
-    area.setLocation(20, 154);
-    area.setDimension(192, 400);
-    qx.ui.core.ClientDocument.getInstance().add(area);
-
-
-
-    btn.addEventListener("execute", function(e)
-    {
-      var s1 = parseInt(spin1.getValue());
-      var s2 = parseInt(spin2.getValue());
-
-      while ((s1+s2) > 0)
-      {
-        if (s1 > 0)
-        {
-          makeRequest(40);
-          s1--;
-        };
-
-        if (s2 > 0)
-        {
-          makeRequest(400);
-          s2--;
-        };
-      };
-    });
-
-    function makeRequest(size)
-    {
-      var req = new qx.io.remote.Request("data/filesize/" + size + "kb.xml", "GET", qx.util.Mime.XML);
-
-      req.addEventListener("completed", function(e) {
-        area.setValue(area.getValue() + "Request " + size + "kb: completed\n");
-      });
-
-      req.addEventListener("failed", function(e) {
-        area.setValue(area.getValue() + "Request " + size + "kb: failed\n");
-      });
-
-      req.addEventListener("timeout", function(e) {
-        area.setValue(area.getValue() + "Request " + size + "kb: timeout\n");
-      });
-
-      req.send();
-    };
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Transport_4.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Transport_4.html
deleted file mode 100644 (file)
index 93349c4..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Simple test for qooxdoo's transport implementation using some data for an addressbook.</p>
-    <p>Using text content in this case.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var lay = new qx.ui.layout.VerticalBoxLayout;
-    lay.setLocation(20, 48);
-    lay.setRight(335);
-    lay.setBottom(48);
-    qx.ui.core.ClientDocument.getInstance().add(lay);
-
-
-
-    var fsq = new qx.ui.groupbox.GroupBox("Request");
-    fsq.setHeight("auto");
-    lay.add(fsq);
-
-
-    var hlay = new qx.ui.layout.HorizontalBoxLayout;
-    hlay.setVerticalChildrenAlign("middle");
-    hlay.setSpacing(4);
-    hlay.auto();
-    fsq.add(hlay);
-
-
-    var cm1 = new qx.ui.form.ComboBox();
-    cm1.add(new qx.ui.form.ListItem("data/persons/anita.txt"));
-    cm1.add(new qx.ui.form.ListItem("data/persons/harald.txt"));
-    cm1.add(new qx.ui.form.ListItem("data/persons/lisbeth.txt"));
-    cm1.add(new qx.ui.form.ListItem("data/persons/paul.txt"));
-    cm1.setSelected(cm1.getList().getFirstChild());
-    cm1.setWidth(200);
-    cm1.addEventListener("changeSelected", upd);
-
-    hlay.add(cm1);
-
-
-
-    var async = new qx.ui.form.CheckBox("Async");
-    async.setChecked(true);
-    hlay.add(async);
-
-
-    var spin = new qx.ui.form.Spinner(1);
-    hlay.add(spin);
-
-
-
-    var btn = new qx.ui.form.Button("Send", "icon/16/actions/dialog-ok.png");
-    btn.addEventListener("execute", upd);
-    hlay.add(btn);
-
-
-    var inf = new qx.ui.form.TextField("State");
-    inf.setWidth(80);
-    inf.setReadOnly(true);
-    hlay.add(inf);
-
-
-    var code = new qx.ui.form.TextField("Code");
-    code.setWidth(30);
-    code.setReadOnly(true);
-    hlay.add(code);
-
-
-    var typ = new qx.ui.form.TextField("Type");
-    typ.setWidth(80);
-    typ.setReadOnly(true);
-    hlay.add(typ);
-
-
-    var len = new qx.ui.form.TextField("Length");
-    len.setWidth(50);
-    len.setReadOnly(true);
-    hlay.add(len);
-
-
-    var checken = new qx.ui.form.CheckBox("enabled");
-    checken.setChecked(true);
-    hlay.add(checken);
-
-    checken.addEventListener("changeChecked", function(e) {
-      qx.io.remote.RequestQueue.getInstance().setEnabled(e.getData());
-    });
-
-
-
-
-
-    var fsr = new qx.ui.groupbox.GroupBox("Result");
-    fsr.setHeight("1*");
-    lay.add(fsr);
-
-    var area = new qx.ui.form.TextArea;
-    area.setDimension("100%", "100%");
-    fsr.add(area);
-
-
-
-
-
-
-
-
-
-
-    function upd(e)
-    {
-      var val = cm1.getSelected();
-
-      if (!val) {
-        return;
-      };
-
-      var req;
-      for( var i=0, max=parseInt(spin.getValue()); i<max; i++ )
-      {
-        req = new qx.io.remote.Request(val.getLabel(), "GET", qx.util.Mime.TEXT);
-
-        req.setAsynchronous(async.getChecked());
-        req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
-
-        req.setParameter("test1", "value1");
-        req.setParameter("test2", "value2");
-        req.setParameter("test3", "value3");
-
-        // Force to testing iframe implementation
-        // req.setCrossDomain(true);
-
-        req.addEventListener("sending", function(e) {
-          inf.setValue("Sending");
-        });
-
-        req.addEventListener("receiving", function(e) {
-          inf.setValue("Receiving");
-        });
-
-        req.addEventListener("completed", function(e)
-        {
-          inf.setValue("Completed");
-          typ.setValue(e.getData().getResponseHeader("Content-Type"));
-          len.setValue(e.getData().getResponseHeader("Content-Length"));
-          code.setValue(e.getData().getStatusCode().toString());
-          area.setValue(e.getData().getContent());
-        });
-
-        req.addEventListener("failed", function(e)
-        {
-          inf.setValue("Failed");
-          typ.setValue(e.getData().getResponseHeader("Content-Type"));
-          len.setValue(e.getData().getResponseHeader("Content-Length"));
-          code.setValue(e.getData().getStatusCode().toString());
-          area.setValue(e.getData().getContent());
-        });
-
-        req.addEventListener("timeout", function(e)
-        {
-          inf.setValue("Timeout");
-          typ.setValue(e.getData().getResponseHeader("Content-Type"));
-          len.setValue(e.getData().getResponseHeader("Content-Length"));
-          code.setValue(e.getData().getStatusCode().toString());
-          area.setValue(e.getData().getContent());
-        });
-
-        req.addEventListener("aborted", function(e)
-        {
-          inf.setValue("Aborted");
-          typ.setValue(e.getData().getResponseHeader("Content-Type"));
-          len.setValue(e.getData().getResponseHeader("Content-Length"));
-          code.setValue(e.getData().getStatusCode().toString());
-          area.setValue(e.getData().getContent());
-        });
-
-        req.send();
-      };
-    };
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Transport_5.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Transport_5.html
deleted file mode 100644 (file)
index 6c7ffb3..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Simple test for qooxdoo's transport implementation using some data for an addressbook.</p>
-    <p>Using html content in this case.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var lay = new qx.ui.layout.VerticalBoxLayout;
-    lay.setLocation(20, 48);
-    lay.setRight(335);
-    lay.setBottom(48);
-    qx.ui.core.ClientDocument.getInstance().add(lay);
-
-
-
-    var fsq = new qx.ui.groupbox.GroupBox("Request");
-    fsq.setHeight("auto");
-    lay.add(fsq);
-
-
-    var hlay = new qx.ui.layout.HorizontalBoxLayout;
-    hlay.setVerticalChildrenAlign("middle");
-    hlay.setSpacing(4);
-    hlay.auto();
-    fsq.add(hlay);
-
-
-    var cm1 = new qx.ui.form.ComboBox();
-    cm1.add(new qx.ui.form.ListItem("data/persons/anita.html"));
-    cm1.add(new qx.ui.form.ListItem("data/persons/harald.html"));
-    cm1.add(new qx.ui.form.ListItem("data/persons/lisbeth.html"));
-    cm1.add(new qx.ui.form.ListItem("data/persons/paul.html"));
-    cm1.setSelected(cm1.getList().getFirstChild());
-    cm1.setWidth(200);
-    cm1.addEventListener("changeSelected", upd);
-
-    hlay.add(cm1);
-
-
-
-    var async = new qx.ui.form.CheckBox("Async");
-    async.setChecked(true);
-    hlay.add(async);
-
-
-    var spin = new qx.ui.form.Spinner(1);
-    hlay.add(spin);
-
-
-
-    var btn = new qx.ui.form.Button("Send", "icon/16/actions/dialog-ok.png");
-    btn.addEventListener("execute", upd);
-    hlay.add(btn);
-
-
-    var inf = new qx.ui.form.TextField("State");
-    inf.setWidth(80);
-    inf.setReadOnly(true);
-    hlay.add(inf);
-
-
-    var code = new qx.ui.form.TextField("Code");
-    code.setWidth(30);
-    code.setReadOnly(true);
-    hlay.add(code);
-
-
-    var typ = new qx.ui.form.TextField("Type");
-    typ.setWidth(80);
-    typ.setReadOnly(true);
-    hlay.add(typ);
-
-
-    var len = new qx.ui.form.TextField("Length");
-    len.setWidth(50);
-    len.setReadOnly(true);
-    hlay.add(len);
-
-
-    var checken = new qx.ui.form.CheckBox("enabled");
-    checken.setChecked(true);
-    hlay.add(checken);
-
-    checken.addEventListener("changeChecked", function(e) {
-      qx.io.remote.RequestQueue.getInstance().setEnabled(e.getData());
-    });
-
-
-
-
-
-    var fsr = new qx.ui.groupbox.GroupBox("Result");
-    fsr.setHeight("1*");
-    lay.add(fsr);
-
-    var area = new qx.ui.embed.HtmlEmbed("&#160;");
-    area.setDimension("100%", "100%");
-    fsr.add(area);
-
-
-
-
-
-
-
-
-
-
-    function upd(e)
-    {
-      var val = cm1.getSelected();
-
-      if (!val) {
-        return;
-      };
-
-      var req;
-      for( var i=0, max=parseInt(spin.getValue()); i<max; i++ )
-      {
-        req = new qx.io.remote.Request(val.getLabel(), "GET", qx.util.Mime.HTML);
-
-        req.setAsynchronous(async.getChecked());
-        req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
-
-        req.setParameter("test1", "value1");
-        req.setParameter("test2", "value2");
-        req.setParameter("test3", "value3");
-
-        // Force to testing iframe implementation
-        // req.setCrossDomain(true);
-
-        req.addEventListener("sending", function(e) {
-          inf.setValue("Sending");
-        });
-
-        req.addEventListener("receiving", function(e) {
-          inf.setValue("Receiving");
-        });
-
-        req.addEventListener("completed", function(e)
-        {
-          inf.setValue("Completed");
-          typ.setValue(e.getData().getResponseHeader("Content-Type"));
-          len.setValue(e.getData().getResponseHeader("Content-Length"));
-          code.setValue(e.getData().getStatusCode().toString());
-          area.setHtml(e.getData().getContent());
-        });
-
-        req.addEventListener("failed", function(e)
-        {
-          inf.setValue("Failed");
-          typ.setValue(e.getData().getResponseHeader("Content-Type"));
-          len.setValue(e.getData().getResponseHeader("Content-Length"));
-          code.setValue(e.getData().getStatusCode().toString());
-          area.setHtml(e.getData().getContent());
-        });
-
-        req.addEventListener("timeout", function(e)
-        {
-          inf.setValue("Timeout");
-          typ.setValue(e.getData().getResponseHeader("Content-Type"));
-          len.setValue(e.getData().getResponseHeader("Content-Length"));
-          code.setValue(e.getData().getStatusCode().toString());
-          area.setHtml(e.getData().getContent());
-        });
-
-        req.addEventListener("aborted", function(e)
-        {
-          inf.setValue("Aborted");
-          typ.setValue(e.getData().getResponseHeader("Content-Type"));
-          len.setValue(e.getData().getResponseHeader("Content-Length"));
-          code.setValue(e.getData().getStatusCode().toString());
-          area.setHtml(e.getData().getContent());
-        });
-
-        req.send();
-      };
-    };
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Transport_6.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Transport_6.html
deleted file mode 100644 (file)
index 22fac63..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Simple test for qooxdoo's transport implementation using some data for an addressbook.</p>
-    <p>Using javascript/json content in this case.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var lay = new qx.ui.layout.VerticalBoxLayout;
-    lay.setLocation(20, 48);
-    lay.setRight(335);
-    lay.setBottom(48);
-    qx.ui.core.ClientDocument.getInstance().add(lay);
-
-
-
-    var fsq = new qx.ui.groupbox.GroupBox("Request");
-    fsq.setHeight("auto");
-    lay.add(fsq);
-
-
-    var hlay = new qx.ui.layout.HorizontalBoxLayout;
-    hlay.setVerticalChildrenAlign("middle");
-    hlay.setSpacing(4);
-    hlay.auto();
-    fsq.add(hlay);
-
-
-    var cm1 = new qx.ui.form.ComboBox();
-    cm1.add(new qx.ui.form.ListItem("data/persons/anita.js"));
-    cm1.add(new qx.ui.form.ListItem("data/persons/harald.js"));
-    cm1.add(new qx.ui.form.ListItem("data/persons/lisbeth.js"));
-    cm1.add(new qx.ui.form.ListItem("data/persons/paul.js"));
-    cm1.setSelected(cm1.getList().getFirstChild());
-    cm1.setWidth(200);
-    cm1.addEventListener("changeSelected", upd);
-
-    hlay.add(cm1);
-
-
-
-    var async = new qx.ui.form.CheckBox("Async");
-    async.setChecked(true);
-    hlay.add(async);
-
-
-    var spin = new qx.ui.form.Spinner(1);
-    hlay.add(spin);
-
-
-
-    var btn = new qx.ui.form.Button("Send", "icon/16/actions/dialog-ok.png");
-    btn.addEventListener("execute", upd);
-    hlay.add(btn);
-
-
-    var inf = new qx.ui.form.TextField("State");
-    inf.setWidth(80);
-    inf.setReadOnly(true);
-    hlay.add(inf);
-
-
-    var code = new qx.ui.form.TextField("Code");
-    code.setWidth(30);
-    code.setReadOnly(true);
-    hlay.add(code);
-
-
-    var typ = new qx.ui.form.TextField("Type");
-    typ.setWidth(80);
-    typ.setReadOnly(true);
-    hlay.add(typ);
-
-
-    var len = new qx.ui.form.TextField("Length");
-    len.setWidth(50);
-    len.setReadOnly(true);
-    hlay.add(len);
-
-
-    var checken = new qx.ui.form.CheckBox("enabled");
-    checken.setChecked(true);
-    hlay.add(checken);
-
-    checken.addEventListener("changeChecked", function(e) {
-      qx.io.remote.RequestQueue.getInstance().setEnabled(e.getData());
-    });
-
-
-
-
-
-    var fsr = new qx.ui.groupbox.GroupBox("Result");
-    fsr.setHeight("1*");
-    lay.add(fsr);
-
-    var area = new qx.ui.layout.VerticalBoxLayout;
-    area.setSpacing(6);
-    area.setDimension("100%", "100%");
-    fsr.add(area);
-
-
-
-    var fgivenname = new qx.ui.basic.Label("Given Name");
-    var fname = new qx.ui.basic.Label("Name");
-    var fage = new qx.ui.basic.Label("Age");
-    var fstreet = new qx.ui.basic.Label("Street");
-    var fplz = new qx.ui.basic.Label("PLZ");
-    var fcity = new qx.ui.basic.Label("City");
-    var fcountry = new qx.ui.basic.Label("Country");
-    var fphone = new qx.ui.basic.Label("Phone");
-
-    area.add(fgivenname, fname, fage, fstreet, fplz, fcity, fcountry, fphone);
-
-
-
-
-
-
-
-    function upd(e)
-    {
-      var val = cm1.getSelected();
-
-      if (!val) {
-        return;
-      };
-
-      var req;
-      for( var i=0, max=parseInt(spin.getValue()); i<max; i++ )
-      {
-        req = new qx.io.remote.Request(val.getLabel(), "GET", qx.util.Mime.JSON);
-
-        req.setAsynchronous(async.getChecked());
-        req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
-
-        req.setParameter("test1", "value1");
-        req.setParameter("test2", "value2");
-        req.setParameter("test3", "value3");
-
-        // Force to testing iframe implementation
-        // req.setCrossDomain(true);
-
-        // This combination couldn't be handled currently
-        // req.setCrossDomain(true);
-        // req.setAsynchronous(false);
-
-        req.addEventListener("sending", function(e) {
-          inf.setValue("Sending");
-        });
-
-        req.addEventListener("receiving", function(e) {
-          inf.setValue("Receiving");
-        });
-
-        req.addEventListener("completed", function(e)
-        {
-          inf.setValue("Completed");
-          typ.setValue(e.getData().getResponseHeader("Content-Type"));
-          len.setValue(e.getData().getResponseHeader("Content-Length"));
-          code.setValue(e.getData().getStatusCode().toString());
-
-          var vContent = e.getData().getContent();
-
-          fgivenname.setHtml(vContent.givenName.toString());
-          fname.setHtml(vContent.name.toString());
-          fage.setHtml(vContent.age.toString());
-          fstreet.setHtml(vContent.street.toString());
-          fplz.setHtml(vContent.plz.toString());
-          fcity.setHtml(vContent.city.toString());
-          fcountry.setHtml(vContent.country.toString());
-          fphone.setHtml(vContent.phone.toString());
-
-          qx.ui.core.Widget.flushGlobalQueues();
-        });
-
-        req.addEventListener("failed", function(e)
-        {
-          inf.setValue("Failed");
-          typ.setValue(e.getData().getResponseHeader("Content-Type"));
-          len.setValue(e.getData().getResponseHeader("Content-Length"));
-          code.setValue(e.getData().getStatusCode().toString());
-        });
-
-        req.addEventListener("timeout", function(e)
-        {
-          inf.setValue("Timeout");
-          typ.setValue(e.getData().getResponseHeader("Content-Type"));
-          len.setValue(e.getData().getResponseHeader("Content-Length"));
-          code.setValue(e.getData().getStatusCode().toString());
-        });
-
-        req.addEventListener("aborted", function(e)
-        {
-          inf.setValue("Aborted");
-          typ.setValue(e.getData().getResponseHeader("Content-Type"));
-          len.setValue(e.getData().getResponseHeader("Content-Length"));
-          code.setValue(e.getData().getStatusCode().toString());
-        });
-
-        req.send();
-      };
-    };
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/TreeVirtual_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/TreeVirtual_1.html
deleted file mode 100644 (file)
index 089aa0f..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-  <p>
-    An example of using the Virtual Tree widget with addBranch() and addLeaf()
-  </p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-
-    var horiz =  new qx.ui.layout.HorizontalBoxLayout;
-    
-    horiz.setPadding(10);
-    horiz.set({
-        left:20, right:10, height:"100%", spacing:20
-    });
-
-    var tree = new qx.ui.treevirtual.TreeVirtual(["Objects", "Date", "ID"]);
-    with (tree){
-       setHeight ("100%");
-        setWidth(900);
-        setColumnWidth(0, 400)
-        setColumnWidth(1, 200);
-        setColumnWidth(2, 50);
-    };
-
-    var data_model = tree.getDataModel ();
-
-    var object_folder =
-       data_model.addBranch (null, 
-                             "Test", 
-                             false);
-
-    data_model.addLeaf (object_folder, 
-                       "Test") ;
-    
-    data_model.setData();      
-
-    if (false)
-    {
-       d.add (tree);
-    }
-    else
-    {
-       horiz.add (tree);
-       d.add (horiz);
-    }
-
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/TreeVirtual_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/TreeVirtual_2.html
deleted file mode 100644 (file)
index 7c44daf..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>An example of using the Virtual Tree widget providing the array of tree
-    nodes en bulk instead of issuing a series of addBranch() and addLeaf()
-    calls.  This example also colors some nodes.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    // tree
-    var tree = new qx.ui.treevirtual.TreeVirtual("Tree");
-    with (tree)
-    {
-      set({
-            left   : 10,
-            top    : 30,
-            width  : 400,
-            bottom : 30,
-            border : qx.renderer.border.BorderPresets.getInstance().thinInset
-          });
-      setColumnWidth(0, 400);
-    };
-
-    d.add(tree);
-
-    // tree data model
-    var dataModel = tree.getDataModel();
-
-    var treeData = [];
-
-    var node =                  // the root node (not displayed)
-      {
-        bOpened       : true,
-        children      : [ 1 ]
-      };
-    treeData.push(node);
-
-    var node =
-      {
-        type          : qx.ui.treevirtual.SimpleTreeDataModel.Type.BRANCH,
-        parentNodeId  : 0,
-        label         : "My Root",
-        bSelected     : false,
-        bOpened       : true,
-        icon          : "icon/16/places/folder.png",
-        iconSelected  : "icon/16/folder_open.png",
-        labelStyle    : "background-color:red;color:white",
-        children      : [ 2 ]
-      };
-    treeData.push(node);
-
-    var node =
-      {
-        type          : qx.ui.treevirtual.SimpleTreeDataModel.Type.BRANCH,
-        parentNodeId  : 1,
-        label         : "A sub-folder",
-        bSelected     : false,
-        bOpened       : true,
-        bHideOpenClose: true,
-        icon          : "icon/16/places/folder.png",
-        iconSelected  : "icon/16/folder_open.png",
-        cellStyle     : "background-color:cyan",
-        children      : [ 3 ]
-      };
-    treeData.push(node);
-
-    var node =
-      {
-        type          : qx.ui.treevirtual.SimpleTreeDataModel.Type.LEAF,
-        parentNodeId  : 2,
-        label         : "Third-level leaf",
-        bSelected     : false,
-        bOpened       : false,
-        icon          : "icon/16/actions/document-new.png",
-        iconSelected  : "icon/16/actions/document-open.png",
-        children      : [ ]
-      };
-    treeData.push(node);
-
-    dataModel.setData(treeData);
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Tree_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Tree_1.html
deleted file mode 100644 (file)
index 1a7155c..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Introducing qx.ui.tree.Tree. A first small example.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var t = new qx.ui.tree.Tree("Root");
-
-      with(t)
-      {
-        setBackgroundColor(255);
-        setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-        setOverflow("scrollY");
-
-        setHeight(null);
-        setTop(48);
-        setLeft(20);
-        setWidth(200);
-        setBottom(48);
-      };
-
-      qx.ui.core.ClientDocument.getInstance().add(t);
-      
-
-      var te1 = new qx.ui.tree.TreeFolder("Desktop");
-      t.add(te1);
-
-      desktop = te1;
-
-      var te1_1 = new qx.ui.tree.TreeFolder("Files");
-      var te1_2 = new qx.ui.tree.TreeFolder("Workspace");
-      var te1_3 = new qx.ui.tree.TreeFolder("Network");
-      var te1_4 = new qx.ui.tree.TreeFolder("Trash");
-
-      te1.add(te1_1, te1_2, te1_3, te1_4);
-
-
-      var te1_2_1 = new qx.ui.tree.TreeFile("Windows (C:)");
-      var te1_2_2 = new qx.ui.tree.TreeFile("Documents (D:)");
-
-      te1_2.add(te1_2_1, te1_2_2);
-
-      arbeitsplatz = te1_2;
-
-
-      var te2 = new qx.ui.tree.TreeFolder("Inbox");
-      posteingang = te2;
-
-      var te2_1 = new qx.ui.tree.TreeFolder("Presets");
-      var te2_2 = new qx.ui.tree.TreeFolder("Sent");
-      var te2_3 = new qx.ui.tree.TreeFolder("Trash");
-      var te2_4 = new qx.ui.tree.TreeFolder("Data");
-      var te2_5 = new qx.ui.tree.TreeFolder("Edit");
-
-
-
-      t.add(te2);
-      qx.ui.core.ClientDocument.getInstance().add(t);
-
-
-
-
-
-
-      var commandFrame = new qx.ui.groupbox.GroupBox("Control");
-
-      with(commandFrame)
-      {
-        setTop(48);
-        setLeft(250);
-
-        setWidth("auto");
-        setHeight("auto");
-      };
-
-      qx.ui.core.ClientDocument.getInstance().add(commandFrame);
-
-
-
-
-      var tCurrentLabel = new qx.ui.basic.Atom("Current Folder: ");
-
-      with(tCurrentLabel)
-      {
-        setLeft(0);
-        setTop(0);
-      };
-
-      commandFrame.add(tCurrentLabel);
-
-
-
-      var tCurrentInput = new qx.ui.form.TextField;
-
-      with(tCurrentInput)
-      {
-        setLeft(0);
-        setRight(0);
-        setTop(20);
-
-        setReadOnly(true);
-      };
-
-      commandFrame.add(tCurrentInput);
-
-      t.getManager().addEventListener("changeSelection", function(e) {
-        tCurrentInput.setValue(e.getData()[0]._labelObject.getHtml());
-      });
-
-
-
-      var tDoubleClick = new qx.ui.form.CheckBox("Use double click?");
-
-      with(tDoubleClick) {
-        setTop(60);
-        setLeft(0);
-      };
-
-      commandFrame.add(tDoubleClick);
-
-      tDoubleClick.addEventListener("changeChecked", function(e) { t.setUseDoubleClick(e.getData()); });
-
-
-
-      var tTreeLines = new qx.ui.form.CheckBox("Use tree lines?");
-
-      with(tTreeLines) {
-        setTop(80);
-        setLeft(0);
-        setChecked(true);
-      };
-
-      commandFrame.add(tTreeLines);
-
-      tTreeLines.addEventListener("changeChecked", function(e) { t.setUseTreeLines(e.getData()); });
-      
-      
-      
-      
-      var vShowItems = new qx.ui.form.Button("Show Items");
-      
-      with(vShowItems) {
-        setTop(100);
-        setLeft(0);
-      };
-      
-      commandFrame.add(vShowItems);
-      
-      vShowItems.addEventListener("execute", function(e) {
-        alert(t.getItems());
-      });
-
-
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Tree_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Tree_2.html
deleted file mode 100644 (file)
index 4c05981..0000000
+++ /dev/null
@@ -1,294 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>This example is bigger than the previous one.</p>
-  </div>
-
-  <div id="control" style="display:none">
-    <p>
-      <strong>Create</strong>:
-      <br/>
-      Push into:
-      <a href="javascript://" onclick="void(root.add(new qx.ui.tree.TreeFile('Foo Bar')))">Root</a>
-      <a href="javascript://" onclick="void(inbox.add(new qx.ui.tree.TreeFile('Foo Bar')))">Inbox</a>
-      <a href="javascript://" onclick="void(workspace.add(new qx.ui.tree.TreeFile('Foo Bar')))">Workspace</a>
-      <a href="javascript://" onclick="void(desktop.add(new qx.ui.tree.TreeFile('Foo Bar')))">Desktop</a>
-      <a href="javascript://" onclick="void(edit.add(new qx.ui.tree.TreeFile('Foo Bar')))">Edit</a>
-      <a href="javascript://" onclick="void(spam.add(new qx.ui.tree.TreeFile('Foo Bar')))">Spam</a>
-    </p>
-
-    <hr/>
-
-    <p>
-      <strong>Inbox</strong>:
-      <a href="javascript://" onclick="void(inbox.getParent().remove(inbox))">Delete</a>
-      <br/>
-      Push into:
-      <a href="javascript://" onclick="void(root.add(inbox))">Root</a>
-      <a href="javascript://" onclick="void(workspace.add(inbox))">Workspace</a>
-      <a href="javascript://" onclick="void(desktop.add(inbox))">Desktop</a>
-      <a href="javascript://" onclick="void(edit.add(inbox))">Edit</a>
-      <a href="javascript://" onclick="void(spam.add(inbox))">Spam</a>
-    </p>
-
-    <p>
-      <strong>Workspace</strong>:
-      <a href="javascript://" onclick="void(workspace.getParent().remove(workspace))">Delete</a>
-      <br/>
-      Push into:
-      <a href="javascript://" onclick="void(root.add(workspace))">Root</a>
-      <a href="javascript://" onclick="void(inbox.add(workspace))">Inbox</a>
-      <a href="javascript://" onclick="void(desktop.add(workspace))">Desktop</a>
-      <a href="javascript://" onclick="void(edit.add(workspace))">Edit</a>
-      <a href="javascript://" onclick="void(spam.add(workspace))">Spam</a>
-      <br/>
-      Push into before:
-      <a href="javascript://" onclick="void(root.addBefore(workspace, desktop))">Root (before:Desktop)</a>
-      <a href="javascript://" onclick="void(root.addBefore(workspace, inbox))">Root (before:Inbox)</a>
-      <a href="javascript://" onclick="void(inbox.addBefore(workspace, spam))">Inbox (before:Spam)</a>
-      <a href="javascript://" onclick="void(inbox.addBefore(workspace, edit))">Inbox (before:Edit)</a>
-      <br/>
-      Push into after:
-      <a href="javascript://" onclick="void(root.addAfter(workspace, desktop))">Root (after:Desktop)</a>
-      <a href="javascript://" onclick="void(root.addAfter(workspace, inbox))">Root (after:Inbox)</a>
-      <a href="javascript://" onclick="void(inbox.addAfter(workspace, spam))">Inbox (after:Spam)</a>
-      <a href="javascript://" onclick="void(inbox.addAfter(workspace, edit))">Inbox (after:Edit)</a>
-      <br/>
-      Add at:
-      <a href="javascript://" onclick="void(root.addAt(workspace, 0))">Root (at:0)</a>
-      <a href="javascript://" onclick="void(root.addAt(workspace, 1))">Root (at:1)</a>
-      <a href="javascript://" onclick="void(root.addAt(workspace, 2))">Root (at:2)</a>
-      <a href="javascript://" onclick="void(inbox.addAt(workspace, 0))">Inbox (at:0)</a>
-      <a href="javascript://" onclick="void(inbox.addAt(workspace, 3))">Inbox (at:3)</a>
-      <a href="javascript://" onclick="void(inbox.addAt(workspace, 5))">Inbox (at:5)</a>
-    </p>
-  </div>
-
-  <script type="text/javascript">
-    var desktop, workspace, root, inbox, edit, spam;
-    
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var t = new qx.ui.tree.Tree("Root");
-
-      with(t)
-      {
-        setBackgroundColor(255);
-        setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-        setOverflow("scrollY");
-
-        setHeight(null);
-        setTop(48);
-        setLeft(20);
-        setWidth(200);
-        setBottom(48);
-      };
-      
-      root = t;
-
-      qx.ui.core.ClientDocument.getInstance().add(t);
-
-      var te1 = new qx.ui.tree.TreeFolder("Desktop");
-      t.add(te1);
-
-      desktop = te1;
-
-      var te1_1 = new qx.ui.tree.TreeFolder("Files");
-      var te1_2 = new qx.ui.tree.TreeFolder("Workspace");
-      var te1_3 = new qx.ui.tree.TreeFolder("Network");
-      var te1_4 = new qx.ui.tree.TreeFolder("Trash");
-
-      te1.add(te1_1, te1_2, te1_3, te1_4);
-
-
-      var te1_2_1 = new qx.ui.tree.TreeFile("Windows (C:)");
-      var te1_2_2 = new qx.ui.tree.TreeFile("Documents (D:)");
-
-      te1_2.add(te1_2_1, te1_2_2);
-
-      workspace = te1_2;
-
-
-      var te2 = new qx.ui.tree.TreeFolder("Inbox");
-      inbox = te2;
-
-      var te2_1 = new qx.ui.tree.TreeFolder("Presets");
-      var te2_2 = new qx.ui.tree.TreeFolder("Sent");
-      var te2_3 = new qx.ui.tree.TreeFolder("Trash");
-      var te2_4 = new qx.ui.tree.TreeFolder("Data");
-      var te2_5 = new qx.ui.tree.TreeFolder("Edit");
-
-      edit = te2_5;
-
-      var te2_5_1 = new qx.ui.tree.TreeFolder("Chat");
-      var te2_5_2 = new qx.ui.tree.TreeFolder("Pustefix");
-      var te2_5_3 = new qx.ui.tree.TreeFolder("TINC");
-
-      var te2_5_3_1 = new qx.ui.tree.TreeFolder("Announce");
-      var te2_5_3_2 = new qx.ui.tree.TreeFolder("Devel");
-
-      te2_5_3.add(te2_5_3_1, te2_5_3_2);
-
-      te2_5.add(te2_5_1, te2_5_2, te2_5_3);
-
-      var te2_6 = new qx.ui.tree.TreeFolder("Lists");
-
-      var te2_6_1 = new qx.ui.tree.TreeFolder("Relations");
-      var te2_6_2 = new qx.ui.tree.TreeFolder("Company");
-      var te2_6_3 = new qx.ui.tree.TreeFolder("Questions");
-      var te2_6_4 = new qx.ui.tree.TreeFolder("Internal");
-      var te2_6_5 = new qx.ui.tree.TreeFolder("Products");
-      var te2_6_6 = new qx.ui.tree.TreeFolder("Press");
-      var te2_6_7 = new qx.ui.tree.TreeFolder("Development");
-      var te2_6_8 = new qx.ui.tree.TreeFolder("Competition");
-
-      te2_6.add(te2_6_1, te2_6_2, te2_6_3, te2_6_4, te2_6_5, te2_6_6, te2_6_7, te2_6_8);
-
-      var te2_7 = new qx.ui.tree.TreeFolder("Personal");
-
-      var te2_7_1 = new qx.ui.tree.TreeFolder("Bugs");
-      var te2_7_2 = new qx.ui.tree.TreeFolder("Family");
-      var te2_7_3 = new qx.ui.tree.TreeFolder("Projects");
-      var te2_7_4 = new qx.ui.tree.TreeFolder("Holiday");
-
-      te2_7.add(te2_7_1, te2_7_2, te2_7_3, te2_7_4);
-      
-      var te2_8 = new qx.ui.tree.TreeFolder("Big");
-      
-      for (var i=0;i<10; i++) {
-        te2_8.add(new qx.ui.tree.TreeFolder("Item " + i));
-      };
-
-      var te2_9 = new qx.ui.tree.TreeFolder("Spam");
-      spam = te2_9;
-      
-      te2.add(te2_1, te2_2, te2_3, te2_4, te2_5, te2_6, te2_7, te2_8, te2_9);
-
-      t.add(te2);
-      qx.ui.core.ClientDocument.getInstance().add(t);
-
-
-
-
-
-
-      var commandFrame = new qx.ui.groupbox.GroupBox("Control");
-
-      with(commandFrame)
-      {
-        setTop(48);
-        setLeft(250);
-
-        setWidth("auto");
-        setHeight("auto");
-      };
-
-      qx.ui.core.ClientDocument.getInstance().add(commandFrame);
-
-
-
-
-      var tCurrentLabel = new qx.ui.basic.Atom("Current Folder: ");
-
-      with(tCurrentLabel)
-      {
-        setLeft(0);
-        setTop(0);
-      };
-
-      commandFrame.add(tCurrentLabel);
-
-
-
-      var tCurrentInput = new qx.ui.form.TextField;
-
-      with(tCurrentInput)
-      {
-        setLeft(0);
-        setRight(0);
-        setTop(20);
-
-        setReadOnly(true);
-      };
-
-      commandFrame.add(tCurrentInput);
-
-      t.getManager().addEventListener("changeSelection", function(e) {
-        tCurrentInput.setValue(e.getData()[0]._labelObject.getHtml());
-      });
-
-
-
-      var tDoubleClick = new qx.ui.form.CheckBox("Use double click?");
-
-      with(tDoubleClick) {
-        setTop(60);
-        setLeft(0);
-      };
-
-      commandFrame.add(tDoubleClick);
-
-      tDoubleClick.addEventListener("changeChecked", function(e) { t.setUseDoubleClick(e.getData()); });
-
-
-
-
-
-      var tTreeLines = new qx.ui.form.CheckBox("Use tree lines?");
-
-      with(tTreeLines) {
-        setTop(80);
-        setLeft(0);
-        setChecked(true);
-      };
-
-      commandFrame.add(tTreeLines);
-
-      tTreeLines.addEventListener("changeChecked", function(e) { t.setUseTreeLines(e.getData()); });
-
-
-
-
-
-
-
-
-
-
-      var ct1 = new qx.ui.basic.Label(document.getElementById("control").innerHTML);
-  
-      with(ct1)
-      {
-        setWidth(300);
-        setRight(335);
-  
-        setHeight(null);
-        setTop(48);
-        setBottom(48);
-  
-        setOverflow("hidden");
-        setStyleProperty("whiteSpace", "normal");
-  
-        setBackgroundColor("white");
-        setBorder(qx.renderer.border.BorderPresets.getInstance().groove);
-        setPadding(10);
-      };
-      
-      qx.ui.core.ClientDocument.getInstance().add(ct1);
-
-
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Tree_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Tree_3.html
deleted file mode 100644 (file)
index 28e6569..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Nothing special, like the previous example but here the tree lines are by default off.</p>
-    <p>This allows you to easily compare the performance costs for the tree lines: Just compare this and the previous example.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var t = new qx.ui.tree.Tree("Root");
-
-      with(t)
-      {
-        setBackgroundColor(255);
-        setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-        setOverflow("scrollY");
-        setUseTreeLines(false);
-
-        setHeight(null);
-        setTop(48);
-        setLeft(20);
-        setWidth(200);
-        setBottom(48);
-      };
-
-      qx.ui.core.ClientDocument.getInstance().add(t);
-
-      var te1 = new qx.ui.tree.TreeFolder("Desktop");
-      t.add(te1);
-
-      desktop = te1;
-
-      var te1_1 = new qx.ui.tree.TreeFolder("Files");
-      var te1_2 = new qx.ui.tree.TreeFolder("Workspace");
-      var te1_3 = new qx.ui.tree.TreeFolder("Network");
-      var te1_4 = new qx.ui.tree.TreeFolder("Trash");
-
-      te1.add(te1_1, te1_2, te1_3, te1_4);
-
-
-      var te1_2_1 = new qx.ui.tree.TreeFile("Windows (C:)");
-      var te1_2_2 = new qx.ui.tree.TreeFile("Documents (D:)");
-
-      te1_2.add(te1_2_1, te1_2_2);
-
-      arbeitsplatz = te1_2;
-
-
-      var te2 = new qx.ui.tree.TreeFolder("Inbox");
-      posteingang = te2;
-
-      var te2_1 = new qx.ui.tree.TreeFolder("Presets");
-      var te2_2 = new qx.ui.tree.TreeFolder("Sent");
-      var te2_3 = new qx.ui.tree.TreeFolder("Trash");
-      var te2_4 = new qx.ui.tree.TreeFolder("Data");
-      var te2_5 = new qx.ui.tree.TreeFolder("Edit");
-
-      editieren = te2_5;
-
-      var te2_5_1 = new qx.ui.tree.TreeFolder("Chat");
-      var te2_5_2 = new qx.ui.tree.TreeFolder("Pustefix");
-      var te2_5_3 = new qx.ui.tree.TreeFolder("TINC");
-
-      var te2_5_3_1 = new qx.ui.tree.TreeFolder("Announce");
-      var te2_5_3_2 = new qx.ui.tree.TreeFolder("Devel");
-
-      te2_5_3.add(te2_5_3_1, te2_5_3_2);
-
-      te2_5.add(te2_5_1, te2_5_2, te2_5_3);
-
-      var te2_6 = new qx.ui.tree.TreeFolder("Lists");
-
-      var te2_6_1 = new qx.ui.tree.TreeFolder("Relations");
-      var te2_6_2 = new qx.ui.tree.TreeFolder("Company");
-      var te2_6_3 = new qx.ui.tree.TreeFolder("Questions");
-      var te2_6_4 = new qx.ui.tree.TreeFolder("Internal");
-      var te2_6_5 = new qx.ui.tree.TreeFolder("Products");
-      var te2_6_6 = new qx.ui.tree.TreeFolder("Press");
-      var te2_6_7 = new qx.ui.tree.TreeFolder("Development");
-      var te2_6_8 = new qx.ui.tree.TreeFolder("Competition");
-
-      te2_6.add(te2_6_1, te2_6_2, te2_6_3, te2_6_4, te2_6_5, te2_6_6, te2_6_7, te2_6_8);
-
-      var te2_7 = new qx.ui.tree.TreeFolder("Personal");
-
-      var te2_7_1 = new qx.ui.tree.TreeFolder("Bugs");
-      var te2_7_2 = new qx.ui.tree.TreeFolder("Family");
-      var te2_7_3 = new qx.ui.tree.TreeFolder("Projects");
-      var te2_7_4 = new qx.ui.tree.TreeFolder("Holiday");
-
-      te2_7.add(te2_7_1, te2_7_2, te2_7_3, te2_7_4);
-      
-      var te2_8 = new qx.ui.tree.TreeFolder("Big");
-      
-      for (var i=0;i<50; i++) {
-        te2_8.add(new qx.ui.tree.TreeFolder("Item " + i));
-      };
-
-      var te2_9 = new qx.ui.tree.TreeFolder("Spam");
-      spam = te2_9;
-      
-      te2.add(te2_1, te2_2, te2_3, te2_4, te2_5, te2_6, te2_7, te2_8, te2_9);
-
-      t.add(te2);
-      qx.ui.core.ClientDocument.getInstance().add(t);
-
-
-
-
-
-
-      var commandFrame = new qx.ui.groupbox.GroupBox("Control");
-
-      with(commandFrame)
-      {
-        setTop(48);
-        setLeft(250);
-
-        setWidth("auto");
-        setHeight("auto");
-      };
-
-      qx.ui.core.ClientDocument.getInstance().add(commandFrame);
-
-
-
-
-      var tCurrentLabel = new qx.ui.basic.Atom("Current Folder: ");
-
-      with(tCurrentLabel)
-      {
-        setLeft(0);
-        setTop(0);
-      };
-
-      commandFrame.add(tCurrentLabel);
-
-
-
-      var tCurrentInput = new qx.ui.form.TextField;
-
-      with(tCurrentInput)
-      {
-        setLeft(0);
-        setRight(0);
-        setTop(20);
-
-        setReadOnly(true);
-      };
-
-      commandFrame.add(tCurrentInput);
-
-      t.getManager().addEventListener("changeSelection", function(e) {
-        tCurrentInput.setValue(e.getData()[0]._labelObject.getHtml());
-      });
-
-
-
-
-      var tDoubleClick = new qx.ui.form.CheckBox("Use double click?");
-
-      with(tDoubleClick) {
-        setTop(60);
-        setLeft(0);
-      };
-
-      commandFrame.add(tDoubleClick);
-
-      tDoubleClick.addEventListener("changeChecked", function(e) { t.setUseDoubleClick(e.getData()); });
-
-
-      var tTreeLines = new qx.ui.form.CheckBox("Use tree lines?");
-
-      with(tTreeLines) {
-        setTop(80);
-        setLeft(0);
-        setChecked(false);
-      };
-
-      commandFrame.add(tTreeLines);
-
-      tTreeLines.addEventListener("changeChecked", function(e) { t.setUseTreeLines(e.getData()); });
-
-
-
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Tree_4.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Tree_4.html
deleted file mode 100644 (file)
index f5d9284..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test an empty tree</p>
-  </div>
-
- <script type="text/javascript">
-   qx.core.Init.getInstance().defineMain(function()
-   {
-     var t = new qx.ui.tree.Tree("Root");
-
-     with(t)
-     {
-       setBackgroundColor(255);
-       setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-       setOverflow("scrollY");
-
-       setHeight(null);
-       setTop(48);
-       setLeft(20);
-       setWidth(200);
-       setBottom(48);
-     };
-
-     qx.ui.core.ClientDocument.getInstance().add(t);
-   });
- </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Tree_5.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Tree_5.html
deleted file mode 100644 (file)
index 03ceb54..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Drag and Drop between trees and inside a tree.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      function handleDragStart(e) 
-      {
-        e.addData("qx.ui.tree.AbstractTreeElement", e.getCurrentTarget());
-        e.addAction("move");
-        e.startDrag();
-      };
-
-      function handleDragDrop(e) 
-      {
-        var vType = e.getDropDataTypes()[0];
-        var vSource = e.getData(vType);
-        var vTarget = e.getCurrentTarget();
-        
-        vSource.getTree().getManager().deselectAll();
-        vTarget.add(vSource);
-        
-        e.stopPropagation();
-      }; 
-      
-      function supportsDrop(vDragCache) {
-        return !vDragCache.sourceWidget.contains(this);
-      };
-
-      function handleDragOver(e)
-      {
-        var l = e.getTarget().getLabelObject();
-        l.setStyleProperty("textDecoration", "underline");
-      };
-    
-      function handleDragOut(e) 
-      {
-        var l = e.getTarget().getLabelObject();
-        l.removeStyleProperty("textDecoration");
-      };
-
-
-
-      var treeSource = new qx.ui.tree.Tree("Source");
-
-      with(treeSource)
-      {
-        setBackgroundColor(255);
-        setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
-        setOverflow("scrollY");
-
-        setHeight(null);
-        setTop(48);
-        setLeft(20);
-        setWidth(200);
-        setBottom(48);
-        
-        addEventListener("dragdrop", handleDragDrop); 
-        addEventListener("dragover", handleDragOver);
-        addEventListener("dragout", handleDragOut);
-
-        setDropDataTypes(["qx.ui.tree.AbstractTreeElement"]);
-      };
-
-      qx.ui.core.ClientDocument.getInstance().add(treeSource);
-      
-      for (var i=1, f; i<4; i++)
-      {
-        f = new qx.ui.tree.TreeFolder("Folder " + i);
-        
-        f.addEventListener("dragstart", handleDragStart);
-        f.addEventListener("dragdrop", handleDragDrop); 
-        f.addEventListener("dragover", handleDragOver);
-        f.addEventListener("dragout", handleDragOut);
-        
-        f.setDropDataTypes(["qx.ui.tree.AbstractTreeElement"]);
-        f.supportsDrop = supportsDrop;
-        
-        treeSource.add(f);
-        
-        for (var j=1, g; j<4; j++)
-        {
-          g = new qx.ui.tree.TreeFolder("Subfolder " + j);
-          
-          g.addEventListener("dragstart", handleDragStart);
-          g.addEventListener("dragdrop", handleDragDrop); 
-          g.addEventListener("dragover", handleDragOver);
-          g.addEventListener("dragout", handleDragOut);
-          
-          g.setDropDataTypes(["qx.ui.tree.AbstractTreeElement"]);
-          g.supportsDrop = supportsDrop;
-          
-          f.add(g);
-          
-          for (var k=1, h; k<4; k++)
-          {
-            h = new qx.ui.tree.TreeFile("File " + k);
-            
-            h.addEventListener("dragstart", handleDragStart);
-            
-            g.add(h);
-          };
-        };
-      };
-
-
-
-
-      var treeDest = new qx.ui.tree.Tree("Dest");
-
-      with(treeDest)
-      {
-        setBackgroundColor(255);
-        setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
-        setOverflow("scrollY");
-
-        setHeight(null);
-        setTop(48);
-        setLeft(240);
-        setWidth(200);
-        setBottom(48);
-        
-        addEventListener("dragdrop", handleDragDrop); 
-        addEventListener("dragover", handleDragOver);
-        addEventListener("dragout", handleDragOut);
-
-        setDropDataTypes(["qx.ui.tree.AbstractTreeElement"]);
-      };
-
-      qx.ui.core.ClientDocument.getInstance().add(treeDest);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Tree_6.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Tree_6.html
deleted file mode 100644 (file)
index 67f0dc4..0000000
+++ /dev/null
@@ -1,231 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Drag and Drop between trees and inside a tree.</p>
-    <p>Added support for positioned move/insert (not complete yet!)</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var vLastIndex = null;      
-      
-      function handleDragStart(e) 
-      {
-        e.addData("qx.ui.tree.AbstractTreeElement", e.getCurrentTarget());
-        e.addAction("move");
-        e.startDrag();
-      };
-
-      function handleDragDrop(e) 
-      {
-        var vType = e.getDropDataTypes()[0];
-        var vSource = e.getData(vType);
-        var vTarget = e.getCurrentTarget();
-        
-        vSource.getTree().getManager().deselectAll();
-        
-        // this.debug("Add At: " + vLastIndex);
-        
-        vLastIndex == null ? vTarget.addAtEnd(vSource) : vTarget.addBefore(vSource, vLastIndex);
-        vLastIndex = null;
-        
-        e.stopPropagation();
-        treeMarkerLine.setStyleProperty("display", "none");
-      }; 
-      
-      function supportsDrop(vDragCache) {
-        return !vDragCache.sourceWidget.contains(this);
-      };
-
-      function handleDragOver(e)
-      {
-        var l = e.getTarget().getLabelObject();
-        l.setStyleProperty("textDecoration", "underline");
-      };
-    
-      function handleDragOut(e) 
-      {
-        var l = e.getTarget().getLabelObject();
-        l.removeStyleProperty("textDecoration");
-      };
-      
-      function handleDragEnd(e)
-      {
-        vLastIndex = null;
-        treeMarkerLine.setStyleProperty("display", "none");
-      };
-      
-      function handleDragMove(e)
-      {
-        vLastIndex = null;
-        
-        var vTarget = e.getTarget();
-        
-        if (!vTarget || !(vTarget instanceof qx.ui.tree.TreeFolder)) 
-        {
-          treeMarkerLine.setStyleProperty("display", "none");
-          return;
-        };
-        
-        var vContainer = vTarget.getContainerObject();
-        
-        if (!vContainer) 
-        {
-          treeMarkerLine.setStyleProperty("display", "none");
-          return;
-        };
-        
-        var vChildren = vContainer.getVisibleChildren();
-        var vChildrenLength = vChildren.length;
-        var vEventTop = e.getPageY();
-        
-        for (var i=0, vChild, vTop; i<vChildrenLength; i++)
-        {
-          vChild = vChildren[i];
-          
-          vTop = qx.html.Location.getPageBoxTop(vChild.getElement());
-          if ((vTop - vEventTop) > -4 && (vTop - vEventTop) < 4)
-          {
-            if (vEventTop > vTop && vChild.isFirstChild()) {
-              continue;
-            };
-            
-            treeMarkerLine._applyRuntimeTop(vTop+1);
-            treeMarkerLine._applyRuntimeLeft(QxDom.getComputedPageBoxLeft(vChild.getLabelObject().getElement()) - 20);
-            
-            treeMarkerLine.removeStyleProperty("display");
-            
-            // this.debug("Index: " + vLastIndex + " :: " + vEventTop + " <> " + vTop);
-            vLastIndex = vChild;
-            
-            return;
-          };          
-        };
-        
-        treeMarkerLine.setStyleProperty("display", "none");
-      };
-
-
-
-      var treeMarkerLine = new qx.ui.basic.Terminator;
-      
-      treeMarkerLine.setHeight(2);
-      treeMarkerLine.setBackgroundColor("#335EA8");
-      treeMarkerLine.setWidth(20);
-      treeMarkerLine.setZIndex(1e7);
-      treeMarkerLine.setAnonymous(true);
-      treeMarkerLine.setStyleProperty("display", "none");
-      
-      qx.ui.core.ClientDocument.getInstance().add(treeMarkerLine);
-      
-
-
-      var treeSource = new qx.ui.tree.Tree("Source");
-
-      with(treeSource)
-      {
-        setBackgroundColor(255);
-        setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
-        setOverflow("scrollY");
-
-        setHeight(null);
-        setTop(48);
-        setLeft(20);
-        setWidth(200);
-        setBottom(48);
-        
-        addEventListener("dragdrop", handleDragDrop); 
-        addEventListener("dragover", handleDragOver);
-        addEventListener("dragout", handleDragOut);
-        addEventListener("dragmove", handleDragMove);
-
-        setDropDataTypes(["qx.ui.tree.AbstractTreeElement"]);
-      };
-
-      qx.ui.core.ClientDocument.getInstance().add(treeSource);
-      
-      for (var i=1, f; i<3; i++)
-      {
-        f = new qx.ui.tree.TreeFolder("Folder " + i);
-        
-        f.addEventListener("dragstart", handleDragStart);
-        f.addEventListener("dragdrop", handleDragDrop); 
-        f.addEventListener("dragover", handleDragOver);
-        f.addEventListener("dragout", handleDragOut);
-        f.addEventListener("dragend", handleDragEnd);
-        
-        f.setDropDataTypes(["qx.ui.tree.AbstractTreeElement"]);
-        f.supportsDrop = supportsDrop;
-        
-        treeSource.add(f);
-        
-        for (var j=1, g; j<6; j++)
-        {
-          g = new qx.ui.tree.TreeFolder("Subfolder " + j);
-          
-          g.addEventListener("dragstart", handleDragStart);
-          g.addEventListener("dragdrop", handleDragDrop); 
-          g.addEventListener("dragover", handleDragOver);
-          g.addEventListener("dragout", handleDragOut);
-          g.addEventListener("dragend", handleDragEnd);
-          
-          g.setDropDataTypes(["qx.ui.tree.AbstractTreeElement"]);
-          g.supportsDrop = supportsDrop;
-          
-          f.add(g);
-          
-          for (var k=1, h; k<9; k++)
-          {
-            h = new qx.ui.tree.TreeFile("File " + k);
-            
-            h.addEventListener("dragstart", handleDragStart);
-            
-            g.add(h);
-          };
-        };
-      };
-      
-      
-
-
-
-
-      var treeDest = new qx.ui.tree.Tree("Dest");
-
-      with(treeDest)
-      {
-        setBackgroundColor(255);
-        setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
-        setOverflow("scrollY");
-
-        setHeight(null);
-        setTop(48);
-        setLeft(240);
-        setWidth(200);
-        setBottom(48);
-        
-        addEventListener("dragdrop", handleDragDrop); 
-        addEventListener("dragover", handleDragOver);
-        addEventListener("dragout", handleDragOut);
-        addEventListener("dragmove", handleDragMove);
-
-        setDropDataTypes(["qx.ui.tree.AbstractTreeElement"]);
-      };
-
-      qx.ui.core.ClientDocument.getInstance().add(treeDest);
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Tree_7.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Tree_7.html
deleted file mode 100644 (file)
index 057160a..0000000
+++ /dev/null
@@ -1,233 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Trying dynamic Folder and File creation and deletion.</p>
-  </div>
-
-  <script type="text/javascript">
-
-    function createItems (t) {
-      var te1 = new qx.ui.tree.TreeFolder("Desktop");
-      t.add(te1);
-
-      desktop = te1;
-
-      var te1_1 = new qx.ui.tree.TreeFolder("Files");
-      var te1_2 = new qx.ui.tree.TreeFolder("Workspace");
-      var te1_3 = new qx.ui.tree.TreeFolder("Network");
-      var te1_4 = new qx.ui.tree.TreeFolder("Trash");
-
-      te1.add(te1_1, te1_2, te1_3, te1_4);
-
-
-      var te1_2_1 = new qx.ui.tree.TreeFile("Windows (C:)");
-      var te1_2_2 = new qx.ui.tree.TreeFile("Documents (D:)");
-
-      te1_2.add(te1_2_1, te1_2_2);
-
-      arbeitsplatz = te1_2;
-
-
-      var te2 = new qx.ui.tree.TreeFolder("Inbox");
-      posteingang = te2;
-
-      var te2_1 = new qx.ui.tree.TreeFolder("Presets");
-      var te2_2 = new qx.ui.tree.TreeFolder("Sent");
-      var te2_3 = new qx.ui.tree.TreeFolder("Trash");
-      var te2_4 = new qx.ui.tree.TreeFolder("Data");
-      var te2_5 = new qx.ui.tree.TreeFolder("Edit");
-
-      t.add(te2);
-     }
-
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      var t = new qx.ui.tree.Tree("Root");
-
-      with(t)
-      {
-        setBackgroundColor(255);
-        setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-        setOverflow("scrollY");
-
-        setHeight(null);
-        setTop(48);
-        setLeft(20);
-        setWidth(200);
-        setBottom(48);
-      };
-
-      qx.ui.core.ClientDocument.getInstance().add(t);
-
-
-
-      var commandFrame = new qx.ui.groupbox.GroupBox("Control");
-
-      with(commandFrame)
-      {
-        setTop(48);
-        setLeft(250);
-
-        setWidth("auto");
-        setHeight("auto");
-      };
-
-      qx.ui.core.ClientDocument.getInstance().add(commandFrame);
-
-
-
-
-      var tCurrentLabel = new qx.ui.basic.Atom("Current Folder: ");
-
-      with(tCurrentLabel)
-      {
-        setLeft(0);
-        setTop(0);
-      };
-
-      commandFrame.add(tCurrentLabel);
-
-
-
-      var tCurrentInput = new qx.ui.form.TextField;
-
-      with(tCurrentInput)
-      {
-        setLeft(0);
-        setRight(0);
-        setTop(20);
-
-        setReadOnly(true);
-      };
-
-      commandFrame.add(tCurrentInput);
-
-      t.getManager().addEventListener("changeSelection", function(e) {
-        if(e.getData()[0]) {
-          tCurrentInput.setValue(e.getData()[0]._labelObject.getHtml());
-          this.debug('classname: ' + e.getData()[0].classname);
-        }
-        else {
-          tCurrentInput.setValue('');
-        }
-      });
-
-
-
-      var tDoubleClick = new qx.ui.form.CheckBox("Use double click?");
-
-      with(tDoubleClick) {
-        setTop(60);
-        setLeft(0);
-      };
-
-      commandFrame.add(tDoubleClick);
-
-      tDoubleClick.addEventListener("changeChecked", function(e) { t.setUseDoubleClick(e.getData()); });
-
-
-
-      var tTreeLines = new qx.ui.form.CheckBox("Use tree lines?");
-
-      with(tTreeLines) {
-        setTop(80);
-        setLeft(0);
-        setChecked(true);
-      };
-
-      commandFrame.add(tTreeLines);
-
-      tTreeLines.addEventListener("changeChecked", function(e) { t.setUseTreeLines(e.getData()); });
-
-
-
-
-      var vShowItems = new qx.ui.form.Button("Show Items");
-
-      with(vShowItems) {
-        setTop(100);
-        setLeft(0);
-      };
-
-      commandFrame.add(vShowItems);
-
-      vShowItems.addEventListener("execute", function(e) {
-        alert(t.getItems());
-      });
-
-
-      var vDestroyTreeContent = new qx.ui.form.Button("Destroy tree content");
-
-      with(vDestroyTreeContent) {
-        setTop(180);
-        setLeft(0);
-      };
-
-      commandFrame.add(vDestroyTreeContent);
-
-      vDestroyTreeContent.addEventListener("execute", function(e) {
-         t.destroyContent();
-      });
-
-
-      var vCreateItems = new qx.ui.form.Button("Create items");
-
-      with(vCreateItems) {
-        setTop(140);
-        setLeft(0);
-      };
-
-      commandFrame.add(vCreateItems);
-
-      vCreateItems.addEventListener("execute", function(e) {
-        createItems(t);
-      });
-
-      var vDestroySelectedItem = new qx.ui.form.Button("Destroy selected item");
-
-      with(vDestroySelectedItem) {
-        setTop(220);
-        setLeft(0);
-      };
-
-      commandFrame.add(vDestroySelectedItem);
-
-      vDestroySelectedItem.addEventListener("execute", function(e) {
-        var vItem = t.getManager().getSelectedItem();
-        if(vItem) {
-          vItem.destroy();
-        }
-      });
-
-
-      var vDestroyContenSelectedItem = new qx.ui.form.Button("Destroy content of selected item");
-
-      with(vDestroyContenSelectedItem) {
-        setTop(260);
-        setLeft(0);
-      };
-
-      commandFrame.add(vDestroyContenSelectedItem);
-
-      vDestroyContenSelectedItem.addEventListener("execute", function(e) {
-        var vItem = t.getManager().getSelectedItem();
-        if(vItem && vItem instanceof qx.ui.tree.TreeFolder) {
-          vItem.destroyContent();
-        }
-      });
-
-    });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Umlauts_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Umlauts_1.html
deleted file mode 100644 (file)
index f321919..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Test some Umlauts methods from the String.prototype.</p>
-  </div>
-
-  <script type="text/javascript">
-    qx.core.Init.getInstance().defineMain(function()
-    {
-      alert("Umlauts Short: " + qx.util.Normalization.umlautsShort("äöüÄÖÜß"))
-      alert("Umlauts Long: " + qx.util.Normalization.umlautsLong("äöüÄÖÜß"))
-    });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/VerticalBoxLayout_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/VerticalBoxLayout_1.html
deleted file mode 100644 (file)
index 5c820b0..0000000
+++ /dev/null
@@ -1,1257 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    Tests for the new implementation of the qx.ui.layout.VerticalBoxLayout widget.
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var cl_white = new qx.renderer.color.Color("white");
-    var cl_blue = new qx.renderer.color.Color("blue");
-    var cl_yellow = new qx.renderer.color.Color("yellow");
-    var cl_green = new qx.renderer.color.Color("green");
-    var cl_orange = new qx.renderer.color.Color("orange");
-    var cl_purple = new qx.renderer.color.Color("purple");
-    var cl_aqua = new qx.renderer.color.Color("aqua");
-    var cl_fuchsia = new qx.renderer.color.Color("fuchsia");
-
-    /* ***********************************************
-
-       EXAMPLE ONE:
-       TOP ALIGN
-
-    *********************************************** */
-
-    var hbl1 = new qx.ui.layout.VerticalBoxLayout;
-
-    hbl1.setTop(48);
-    hbl1.setLeft(20);
-    hbl1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl1.setWidth("auto")
-    hbl1.setBottom(48);
-
-    hbl1.setSpacing(4);
-    hbl1.setPadding(8);
-
-    hbl1.setHorizontalChildrenAlign("right");
-    
-    
-    var w1_1 = new qx.ui.layout.CanvasLayout;
-    w1_1.setHeight(25);
-    w1_1.setWidth(25);
-    w1_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_1.setBackgroundColor(cl_white);
-    // w1_1.setMaxWidth(40);
-
-    var w1_2 = new qx.ui.layout.CanvasLayout;
-    w1_2.setHeight(25);
-    w1_2.setWidth(25);
-    w1_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_2.setBackgroundColor(cl_blue);
-    w1_2.setRight(10);
-
-    var w1_3 = new qx.ui.layout.CanvasLayout;
-    w1_3.setHeight(25);
-    w1_3.setWidth("100%");
-    w1_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_3.setBackgroundColor(cl_yellow);
-
-    var w1_4 = new qx.ui.layout.CanvasLayout;
-    w1_4.setHeight(25);
-    w1_4.setWidth(25);
-    w1_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_4.setBackgroundColor(cl_green);
-
-    var w1_5 = new qx.ui.layout.CanvasLayout;
-    w1_5.setHeight(40);
-    // w1_5.setWidth(25);
-    w1_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_5.setBackgroundColor(cl_orange);
-
-    var w1_6 = new qx.ui.layout.CanvasLayout;
-    w1_6.setHeight(25);
-    w1_6.setWidth(25);
-    w1_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_6.setBackgroundColor(cl_purple);
-    w1_6.setLeft(15);
-    w1_6.setTop(-25);
-
-    var w1_7 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-
-    var w1_8 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-
-    var w1_9 = new qx.ui.layout.CanvasLayout;
-    w1_9.setHeight(25);
-    w1_9.setWidth(25);
-    w1_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_9.setBackgroundColor(cl_aqua);
-
-    var w1_10 = new qx.ui.layout.CanvasLayout;
-    w1_10.setHeight(25);
-    w1_10.setWidth(25);
-    w1_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_10.setBackgroundColor(cl_fuchsia);
-
-    var hbl1_click = 0;
-    hbl1.addEventListener("click", function(e) 
-    {
-      if (e.getTarget()!=this) {
-        return;
-      };
-      
-      switch(hbl1_click)
-      {
-        case 0:
-          this.setBottom(null);
-          this.setHeight("auto");
-          break;
-          
-        case 1:
-          this.setWidth(30);
-          break;
-        
-        case 2:
-          this.setWidth(80);
-          break;
-          
-        case 3:
-          this.setWidth("auto");
-          break;
-          
-        case 4:
-          this.setHeight(200);
-          break;
-          
-        case 5:
-          this.setHeight(null);
-          this.setBottom(48);
-          hbl1_click = 0;
-          return;        
-      };
-      
-      hbl1_click++;
-    });
-
-    w1_1.addEventListener("click", function(e) 
-    {
-      if (this.getHeight() == 25)
-      {
-        this.setHeight(65);
-        this.setWidth(65); 
-        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
-      }
-      else
-      {
-        this.setHeight(25);
-        this.setWidth(25);  
-        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      };      
-    });
-
-    w1_2.addEventListener("click", function(e) {
-      this.getMarginBottom() == 0 ? this.setMarginBottom(10) : this.setMarginBottom(0);
-    });
-
-    w1_3.addEventListener("click", function(e) {
-      this.getMinHeight() == -Infinity ? this.setMinHeight(100) : this.setMinHeight(-Infinity);
-    });
-
-    w1_4.addEventListener("click", function(e) {
-      this.getHeight() == 25 ? this.setHeight(50) : this.setHeight(25);
-    });
-
-    w1_5.addEventListener("click", function(e) {
-      this.getHeight() == 40 ? this.setHeight(80) : this.setHeight(40);
-    });
-    
-    w1_6.addEventListener("click", function(e) {
-      this.getTop() == -25 ? this.setTop(25) : this.setTop(-25);
-    });
-
-    w1_7.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/apps/accessories-clock.png" ? this.setSource("icon/64/apps/accessories-clock.png") : this.setSource("icon/32/apps/accessories-clock.png");
-    });
-    
-    w1_8.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/actions/format-color.png" ? this.setSource("icon/16/actions/format-color.png") : this.setSource("icon/32/actions/format-color.png");
-    });   
-    
-    w1_9.addEventListener("click", function(e) 
-    {
-      if (this.getLeft() == null)
-      {
-        this.setLeft(20);
-        this.setTop(-10);
-      }
-      else
-      {
-        this.setLeft(null);
-        this.setTop(null);
-      };
-    });
-    
-    w1_10.addEventListener("click", function(e) 
-    {
-      if (this.getHeight() == 25)
-      {
-        this.setHeight(10);  
-        this.setWidth(10);
-        this.setTop(-5);
-        this.setRight(15);
-      }
-      else
-      {
-        this.setHeight(25);
-        this.setWidth(25);
-        this.setTop(null);
-        this.setRight(null);
-      };
-    });    
-
-
-
-    hbl1.add(w1_1, w1_2, w1_3, w1_4, w1_5, w1_6, w1_7, w1_8, w1_9, w1_10);
-    d.add(hbl1);
-
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE TWO:
-       BOTTOM ALIGN
-
-    *********************************************** */
-
-    var hbl2 = new qx.ui.layout.VerticalBoxLayout;
-
-    hbl2.setLeft(110);
-    hbl2.setTop(48);
-    hbl2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl2.setWidth("auto");
-    hbl2.setBottom(48);
-
-    hbl2.setSpacing(4);
-    hbl2.setPadding(8);
-
-    hbl2.setVerticalChildrenAlign("bottom");
-    hbl2.setHorizontalChildrenAlign("center");
-
-
-    var w2_1 = new qx.ui.layout.CanvasLayout;
-    w2_1.setHeight(25);
-    w2_1.setWidth(25);
-    w2_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_1.setBackgroundColor(cl_white);
-    // w2_1.setMaxWidth(40);
-
-    var w2_2 = new qx.ui.layout.CanvasLayout;
-    w2_2.setHeight(25);
-    w2_2.setWidth(25);
-    w2_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_2.setBackgroundColor(cl_blue);
-    w2_2.setRight(10);
-
-    var w2_3 = new qx.ui.layout.CanvasLayout;
-    w2_3.setHeight(25);
-    w2_3.setWidth("100%");
-    w2_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_3.setBackgroundColor(cl_yellow);
-
-    var w2_4 = new qx.ui.layout.CanvasLayout;
-    w2_4.setHeight(25);
-    w2_4.setWidth(25);
-    w2_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_4.setBackgroundColor(cl_green);
-
-    var w2_5 = new qx.ui.layout.CanvasLayout;
-    w2_5.setHeight(40);
-    // w2_5.setWidth(25);
-    w2_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_5.setBackgroundColor(cl_orange);
-
-    var w2_6 = new qx.ui.layout.CanvasLayout;
-    w2_6.setHeight(25);
-    w2_6.setWidth(25);
-    w2_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_6.setBackgroundColor(cl_purple);
-    w2_6.setLeft(15);
-    w2_6.setTop(-25);    
-
-    var w2_7 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-
-    var w2_8 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-
-    var w2_9 = new qx.ui.layout.CanvasLayout;
-    w2_9.setHeight(25);
-    w2_9.setWidth(25);
-    w2_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_9.setBackgroundColor(cl_aqua);
-
-    var w2_10 = new qx.ui.layout.CanvasLayout;
-    w2_10.setHeight(25);
-    w2_10.setWidth(25);
-    w2_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_10.setBackgroundColor(cl_fuchsia);
-    w2_10.foo = true;
-
-
-    var hbl2_click = 0;
-    hbl2.addEventListener("click", function(e) 
-    {
-      if (e.getTarget()!=this) {
-        return;
-      };      
-      
-      switch(hbl2_click)
-      {
-        case 0:
-          this.setBottom(null);
-          this.setHeight("auto");
-          break;
-          
-        case 1:
-          this.setWidth(30);
-          break;
-        
-        case 2:
-          this.setWidth(80);
-          break;
-          
-        case 3:
-          this.setWidth("auto");
-          break;
-          
-        case 4:
-          this.setHeight(200);
-          break;
-          
-        case 5:
-          this.setHeight(null);
-          this.setBottom(48);
-          hbl2_click = 0;
-          return;        
-      };
-      
-      hbl2_click++;
-    });
-    
-    w2_1.addEventListener("click", function(e) 
-    {
-      if (this.getHeight() == 25)
-      {
-        this.setHeight(65);
-        this.setWidth(65); 
-        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
-      }
-      else
-      {
-        this.setHeight(25);
-        this.setWidth(25);  
-        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      };      
-    });
-
-    w2_2.addEventListener("click", function(e) {
-      this.getMarginBottom() == 0 ? this.setMarginBottom(10) : this.setMarginBottom(0);
-    });
-
-    w2_3.addEventListener("click", function(e) {
-      this.getMinHeight() == -Infinity ? this.setMinHeight(100) : this.setMinHeight(-Infinity);
-    });
-
-    w2_4.addEventListener("click", function(e) {
-      this.getHeight() == 25 ? this.setHeight(50) : this.setHeight(25);
-    });
-
-    w2_5.addEventListener("click", function(e) {
-      this.getHeight() == 40 ? this.setHeight(80) : this.setHeight(40);
-    });
-    
-    w2_6.addEventListener("click", function(e) {
-      this.getTop() == -25 ? this.setTop(25) : this.setTop(-25);
-    });
-
-    w2_7.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/apps/accessories-clock.png" ? this.setSource("icon/64/apps/accessories-clock.png") : this.setSource("icon/32/apps/accessories-clock.png");
-    });
-    
-    w2_8.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/actions/format-color.png" ? this.setSource("icon/16/actions/format-color.png") : this.setSource("icon/32/actions/format-color.png");
-    });   
-    
-    w2_9.addEventListener("click", function(e) 
-    {
-      if (this.getLeft() == null)
-      {
-        this.setLeft(20);
-        this.setTop(-10);
-      }
-      else
-      {
-        this.setLeft(null);
-        this.setTop(null);
-      };
-    });
-    
-    w2_10.addEventListener("click", function(e) 
-    {
-      if (this.getHeight() == 25)
-      {
-        this.setHeight(10);  
-        this.setWidth(10);
-        this.setTop(-5);
-        this.setRight(15);
-      }
-      else
-      {
-        this.setHeight(25);
-        this.setWidth(25);
-        this.setTop(null);
-        this.setRight(null);
-      };
-    });
-
-
-
-    hbl2.add(w2_1, w2_2, w2_3, w2_4, w2_5, w2_6, w2_7, w2_8, w2_9, w2_10);
-    d.add(hbl2);
-
-
-    /* ***********************************************
-
-       EXAMPLE THREE:
-       CENTER ALIGN
-
-    *********************************************** */
-
-    var hbl3 = new qx.ui.layout.VerticalBoxLayout;
-
-    hbl3.setLeft(200);
-    hbl3.setTop(48);
-    hbl3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl3.setWidth("auto");
-    hbl3.setBottom(48);
-
-    hbl3.setSpacing(4);
-    hbl3.setPadding(8);
-
-    hbl3.setVerticalChildrenAlign("middle");
-
-
-
-    var w3_1 = new qx.ui.layout.CanvasLayout;
-    w3_1.setHeight(25);
-    w3_1.setWidth(25);
-    w3_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_1.setBackgroundColor(cl_white);
-    // w3_1.setMaxWidth(40);
-
-    var w3_2 = new qx.ui.layout.CanvasLayout;
-    w3_2.setHeight(25);
-    w3_2.setWidth(25);
-    w3_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_2.setBackgroundColor(cl_blue);
-    w3_2.setRight(10);
-
-    var w3_3 = new qx.ui.layout.CanvasLayout;
-    w3_3.setHeight(25);
-    w3_3.setWidth("100%");
-    w3_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_3.setBackgroundColor(cl_yellow);
-
-    var w3_4 = new qx.ui.layout.CanvasLayout;
-    w3_4.setHeight(25);
-    w3_4.setWidth(25);
-    w3_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_4.setBackgroundColor(cl_green);
-
-    var w3_5 = new qx.ui.layout.CanvasLayout;
-    w3_5.setHeight(40);
-    // w3_5.setWidth(25);
-    w3_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_5.setBackgroundColor(cl_orange);
-
-    var w3_6 = new qx.ui.layout.CanvasLayout;
-    w3_6.setHeight(25);
-    w3_6.setWidth(25);
-    w3_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_6.setBackgroundColor(cl_purple);
-    w3_6.setLeft(15);
-    w3_6.setTop(-25);    
-
-    var w3_7 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-
-    var w3_8 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-
-    var w3_9 = new qx.ui.layout.CanvasLayout;
-    w3_9.setHeight(25);
-    w3_9.setWidth(25);
-    w3_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_9.setBackgroundColor(cl_aqua);
-
-    var w3_10 = new qx.ui.layout.CanvasLayout;
-    w3_10.setHeight(25);
-    w3_10.setWidth(25);
-    w3_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_10.setBackgroundColor(cl_fuchsia);
-
-
-    var hbl3_click = 0;
-    hbl3.addEventListener("click", function(e) 
-    {
-      if (e.getTarget()!=this) {
-        return;
-      };      
-      
-      switch(hbl3_click)
-      {
-        case 0:
-          this.setBottom(null);
-          this.setHeight("auto");
-          break;
-          
-        case 1:
-          this.setWidth(30);
-          break;
-        
-        case 2:
-          this.setWidth(80);
-          break;
-          
-        case 3:
-          this.setWidth("auto");
-          break;
-          
-        case 4:
-          this.setHeight(200);
-          break;
-          
-        case 5:
-          this.setHeight(null);
-          this.setBottom(48);
-          hbl3_click = 0;
-          return;        
-      };
-      
-      hbl3_click++;
-    });
-
-    w3_1.addEventListener("click", function(e) 
-    {
-      if (this.getHeight() == 25)
-      {
-        this.setHeight(65);
-        this.setWidth(65); 
-        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
-      }
-      else
-      {
-        this.setHeight(25);
-        this.setWidth(25);  
-        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      };      
-    });
-
-    w3_2.addEventListener("click", function(e) {
-      this.getMarginBottom() == 0 ? this.setMarginBottom(10) : this.setMarginBottom(0);
-    });
-
-    w3_3.addEventListener("click", function(e) {
-      this.getMinHeight() == -Infinity ? this.setMinHeight(100) : this.setMinHeight(-Infinity);
-    });
-
-    w3_4.addEventListener("click", function(e) {
-      this.getHeight() == 25 ? this.setHeight(50) : this.setHeight(25);
-    });
-
-    w3_5.addEventListener("click", function(e) {
-      this.getHeight() == 40 ? this.setHeight(80) : this.setHeight(40);
-    });
-    
-    w3_6.addEventListener("click", function(e) {
-      this.getTop() == -25 ? this.setTop(25) : this.setTop(-25);
-    });
-
-    w3_7.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/apps/accessories-clock.png" ? this.setSource("icon/64/apps/accessories-clock.png") : this.setSource("icon/32/apps/accessories-clock.png");
-    });
-    
-    w3_8.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/actions/format-color.png" ? this.setSource("icon/16/actions/format-color.png") : this.setSource("icon/32/actions/format-color.png");
-    });   
-    
-    w3_9.addEventListener("click", function(e) 
-    {
-      if (this.getLeft() == null)
-      {
-        this.setLeft(20);
-        this.setTop(-10);
-      }
-      else
-      {
-        this.setLeft(null);
-        this.setTop(null);
-      };
-    });
-    
-    w3_10.addEventListener("click", function(e) 
-    {
-      if (this.getHeight() == 25)
-      {
-        this.setHeight(10);  
-        this.setWidth(10);
-        this.setTop(-5);
-        this.setRight(15);
-      }
-      else
-      {
-        this.setHeight(25);
-        this.setWidth(25);
-        this.setTop(null);
-        this.setRight(null);
-      };
-    });
-
-
-
-    hbl3.add(w3_1, w3_2, w3_3, w3_4, w3_5, w3_6, w3_7, w3_8, w3_9, w3_10);
-    d.add(hbl3);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE FOUR:
-       TOP ALIGN, REVERTED CHILDREN ORDER
-
-    *********************************************** */
-
-    var hbl4 = new qx.ui.layout.VerticalBoxLayout;
-
-    hbl4.setLeft(290);
-    hbl4.setTop(48);
-    hbl4.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl4.setHeight(null);
-    hbl4.setBottom(48);
-
-    hbl4.setSpacing(4);
-    hbl4.setPadding(8);
-    hbl4.setReverseChildrenOrder(true);
-    hbl4.setHorizontalChildrenAlign("right");
-    
-    hbl4.setWidth(80);
-
-
-
-    var w4_1 = new qx.ui.layout.CanvasLayout;
-    w4_1.setHeight(25);
-    w4_1.setWidth(25);
-    w4_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_1.setBackgroundColor(cl_white);
-    // w4_1.setMaxWidth(40);
-
-    var w4_2 = new qx.ui.layout.CanvasLayout;
-    w4_2.setHeight(25);
-    w4_2.setWidth(25);
-    w4_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_2.setBackgroundColor(cl_blue);
-    w4_2.setRight(10);
-
-    var w4_3 = new qx.ui.layout.CanvasLayout;
-    w4_3.setHeight(25);
-    w4_3.setWidth("100%");
-    w4_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_3.setBackgroundColor(cl_yellow);
-
-    var w4_4 = new qx.ui.layout.CanvasLayout;
-    w4_4.setHeight(25);
-    w4_4.setWidth(25);
-    w4_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_4.setBackgroundColor(cl_green);
-
-    var w4_5 = new qx.ui.layout.CanvasLayout;
-    w4_5.setHeight(40);
-    // w4_5.setWidth(25);
-    w4_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_5.setBackgroundColor(cl_orange);
-
-    var w4_6 = new qx.ui.layout.CanvasLayout;
-    w4_6.setHeight(25);
-    w4_6.setWidth(25);
-    w4_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_6.setBackgroundColor(cl_purple);
-    w4_6.setLeft(15);
-    w4_6.setTop(-25);    
-
-    var w4_7 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-
-    var w4_8 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-
-    var w4_9 = new qx.ui.layout.CanvasLayout;
-    w4_9.setHeight(25);
-    w4_9.setWidth(25);
-    w4_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_9.setBackgroundColor(cl_aqua);
-
-    var w4_10 = new qx.ui.layout.CanvasLayout;
-    w4_10.setHeight(25);
-    w4_10.setWidth(25);
-    w4_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_10.setBackgroundColor(cl_fuchsia);
-
-
-    var hbl4_click = 0;
-    hbl4.addEventListener("click", function(e) 
-    {
-      if (e.getTarget()!=this) {
-        return;
-      };      
-      
-      switch(hbl4_click)
-      {
-        case 0:
-          this.setBottom(null);
-          this.setHeight("auto");
-          break;
-          
-        case 1:
-          this.setWidth(30);
-          break;
-        
-        case 2:
-          this.setWidth("auto");
-          break;
-          
-        case 3:
-          this.setWidth(80);
-          break;
-          
-        case 4:
-          this.setHeight(200);
-          break;
-          
-        case 5:
-          this.setHeight(null);
-          this.setBottom(48);
-          hbl4_click = 0;
-          return;        
-      };
-      
-      hbl4_click++;
-    });
-
-    w4_1.addEventListener("click", function(e) 
-    {
-      if (this.getHeight() == 25)
-      {
-        this.setHeight(65);
-        this.setWidth(65); 
-        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
-      }
-      else
-      {
-        this.setHeight(25);
-        this.setWidth(25);  
-        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      };      
-    });
-
-    w4_2.addEventListener("click", function(e) {
-      this.getMarginBottom() == 0 ? this.setMarginBottom(10) : this.setMarginBottom(0);
-    });
-
-    w4_3.addEventListener("click", function(e) {
-      this.getMinHeight() == -Infinity ? this.setMinHeight(100) : this.setMinHeight(-Infinity);
-    });
-
-    w4_4.addEventListener("click", function(e) {
-      this.getHeight() == 25 ? this.setHeight(50) : this.setHeight(25);
-    });
-
-    w4_5.addEventListener("click", function(e) {
-      this.getHeight() == 40 ? this.setHeight(80) : this.setHeight(40);
-    });
-    
-    w4_6.addEventListener("click", function(e) {
-      this.getTop() == -25 ? this.setTop(25) : this.setTop(-25);
-    });
-
-    w4_7.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/apps/accessories-clock.png" ? this.setSource("icon/64/apps/accessories-clock.png") : this.setSource("icon/32/apps/accessories-clock.png");
-    });
-    
-    w4_8.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/actions/format-color.png" ? this.setSource("icon/16/actions/format-color.png") : this.setSource("icon/32/actions/format-color.png");
-    });   
-    
-    w4_9.addEventListener("click", function(e) 
-    {
-      if (this.getLeft() == null)
-      {
-        this.setLeft(20);
-        this.setTop(-10);
-      }
-      else
-      {
-        this.setLeft(null);
-        this.setTop(null);
-      };
-    });
-    
-    w4_10.addEventListener("click", function(e) 
-    {
-      if (this.getHeight() == 25)
-      {
-        this.setHeight(10);  
-        this.setWidth(10);
-        this.setTop(-5);
-        this.setRight(15);
-      }
-      else
-      {
-        this.setHeight(25);
-        this.setWidth(25);
-        this.setTop(null);
-        this.setRight(null);
-      };
-    });
-
-
-
-    hbl4.add(w4_1, w4_2, w4_3, w4_4, w4_5, w4_6, w4_7, w4_8, w4_9, w4_10);
-    d.add(hbl4);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE FIVE:
-       BOTTOM ALIGN, REVERTED CHILDREN ORDER
-
-    *********************************************** */
-
-    var hbl5 = new qx.ui.layout.VerticalBoxLayout;
-
-    hbl5.setLeft(380);
-    hbl5.setTop(48);
-    hbl5.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl5.setHeight(null);
-    hbl5.setBottom(48);
-
-    hbl5.setSpacing(4);
-    hbl5.setPadding(8);
-
-    hbl5.setVerticalChildrenAlign("bottom");
-    hbl5.setReverseChildrenOrder(true);
-    hbl5.setHorizontalChildrenAlign("center");
-    
-    hbl5.setWidth(80);
-
-
-    var w5_1 = new qx.ui.layout.CanvasLayout;
-    w5_1.setHeight(25);
-    w5_1.setWidth(25);
-    w5_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_1.setBackgroundColor(cl_white);
-    // w5_1.setMaxWidth(40);
-
-    var w5_2 = new qx.ui.layout.CanvasLayout;
-    w5_2.setHeight(25);
-    w5_2.setWidth(25);
-    w5_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_2.setBackgroundColor(cl_blue);
-    w5_2.setRight(10);
-
-    var w5_3 = new qx.ui.layout.CanvasLayout;
-    w5_3.setHeight(25);
-    w5_3.setWidth("100%");
-    w5_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_3.setBackgroundColor(cl_yellow);
-
-    var w5_4 = new qx.ui.layout.CanvasLayout;
-    w5_4.setHeight(25);
-    w5_4.setWidth(25);
-    w5_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_4.setBackgroundColor(cl_green);
-
-    var w5_5 = new qx.ui.layout.CanvasLayout;
-    w5_5.setHeight(40);
-    // w5_5.setWidth(25);
-    w5_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_5.setBackgroundColor(cl_orange);
-
-    var w5_6 = new qx.ui.layout.CanvasLayout;
-    w5_6.setHeight(25);
-    w5_6.setWidth(25);
-    w5_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_6.setBackgroundColor(cl_purple);
-    w5_6.setLeft(15);
-    w5_6.setTop(-25);    
-
-    var w5_7 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-
-    var w5_8 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-
-    var w5_9 = new qx.ui.layout.CanvasLayout;
-    w5_9.setHeight(25);
-    w5_9.setWidth(25);
-    w5_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_9.setBackgroundColor(cl_aqua);
-
-    var w5_10 = new qx.ui.layout.CanvasLayout;
-    w5_10.setHeight(25);
-    w5_10.setWidth(25);
-    w5_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_10.setBackgroundColor(cl_fuchsia);
-
-
-    var hbl5_click = 0;
-    hbl5.addEventListener("click", function(e) 
-    {
-      if (e.getTarget()!=this) {
-        return;
-      };      
-      
-      switch(hbl5_click)
-      {
-        case 0:
-          this.setBottom(null);
-          this.setHeight("auto");
-          break;
-          
-        case 1:
-          this.setWidth(30);
-          break;
-        
-        case 2:
-          this.setWidth("auto");
-          break;
-          
-        case 3:
-          this.setWidth(80);
-          break;
-          
-        case 4:
-          this.setHeight(200);
-          break;
-          
-        case 5:
-          this.setHeight(null);
-          this.setBottom(48);
-          hbl5_click = 0;
-          return;        
-      };
-      
-      hbl5_click++;
-    });
-
-    w5_1.addEventListener("click", function(e) 
-    {
-      if (this.getHeight() == 25)
-      {
-        this.setHeight(65);
-        this.setWidth(65); 
-        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
-      }
-      else
-      {
-        this.setHeight(25);
-        this.setWidth(25);  
-        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      };      
-    });
-
-    w5_2.addEventListener("click", function(e) {
-      this.getMarginBottom() == 0 ? this.setMarginBottom(10) : this.setMarginBottom(0);
-    });
-
-    w5_3.addEventListener("click", function(e) {
-      this.getMinHeight() == -Infinity ? this.setMinHeight(100) : this.setMinHeight(-Infinity);
-    });
-
-    w5_4.addEventListener("click", function(e) {
-      this.getHeight() == 25 ? this.setHeight(50) : this.setHeight(25);
-    });
-
-    w5_5.addEventListener("click", function(e) {
-      this.getHeight() == 40 ? this.setHeight(80) : this.setHeight(40);
-    });
-    
-    w5_6.addEventListener("click", function(e) {
-      this.getTop() == -25 ? this.setTop(25) : this.setTop(-25);
-    });
-
-    w5_7.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/apps/accessories-clock.png" ? this.setSource("icon/64/apps/accessories-clock.png") : this.setSource("icon/32/apps/accessories-clock.png");
-    });
-    
-    w5_8.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/actions/format-color.png" ? this.setSource("icon/16/actions/format-color.png") : this.setSource("icon/32/actions/format-color.png");
-    });   
-    
-    w5_9.addEventListener("click", function(e) 
-    {
-      if (this.getLeft() == null)
-      {
-        this.setLeft(20);
-        this.setTop(-10);
-      }
-      else
-      {
-        this.setLeft(null);
-        this.setTop(null);
-      };
-    });
-    
-    w5_10.addEventListener("click", function(e) 
-    {
-      if (this.getHeight() == 25)
-      {
-        this.setHeight(10);  
-        this.setWidth(10);
-        this.setTop(-5);
-        this.setRight(15);
-      }
-      else
-      {
-        this.setHeight(25);
-        this.setWidth(25);
-        this.setTop(null);
-        this.setRight(null);
-      };
-    });
-
-
-
-    hbl5.add(w5_1, w5_2, w5_3, w5_4, w5_5, w5_6, w5_7, w5_8, w5_9, w5_10);
-    d.add(hbl5);
-
-
-
-
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE SIX:
-       CENTER ALIGN, REVERTED CHILDREN ORDER
-
-    *********************************************** */
-
-    var hbl6 = new qx.ui.layout.VerticalBoxLayout;
-
-    hbl6.setLeft(470);
-    hbl6.setTop(48);
-    hbl6.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl6.setHeight(null);
-    hbl6.setBottom(48);
-
-    hbl6.setSpacing(4);
-    hbl6.setPadding(8);
-
-    hbl6.setVerticalChildrenAlign("middle");
-    hbl6.setReverseChildrenOrder(true);
-    hbl6.setWidth(80);
-
-
-    var w6_1 = new qx.ui.layout.CanvasLayout;
-    w6_1.setHeight(25);
-    w6_1.setWidth(25);
-    w6_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_1.setBackgroundColor(cl_white);
-    // w6_1.setMaxWidth(40);
-
-    var w6_2 = new qx.ui.layout.CanvasLayout;
-    w6_2.setHeight(25);
-    w6_2.setWidth(25);
-    w6_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_2.setBackgroundColor(cl_blue);
-    w6_2.setRight(10);
-
-    var w6_3 = new qx.ui.layout.CanvasLayout;
-    w6_3.setHeight(25);
-    w6_3.setWidth("100%");
-    w6_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_3.setBackgroundColor(cl_yellow);
-
-    var w6_4 = new qx.ui.layout.CanvasLayout;
-    w6_4.setHeight(25);
-    w6_4.setWidth(25);
-    w6_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_4.setBackgroundColor(cl_green);
-
-    var w6_5 = new qx.ui.layout.CanvasLayout;
-    w6_5.setHeight(40);
-    // w6_5.setWidth(25);
-    w6_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_5.setBackgroundColor(cl_orange);
-
-    var w6_6 = new qx.ui.layout.CanvasLayout;
-    w6_6.setHeight(25);
-    w6_6.setWidth(25);
-    w6_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_6.setBackgroundColor(cl_purple);
-    w6_6.setLeft(15);
-    w6_6.setTop(-25);    
-
-    var w6_7 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-
-    var w6_8 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-
-    var w6_9 = new qx.ui.layout.CanvasLayout;
-    w6_9.setHeight(25);
-    w6_9.setWidth(25);
-    w6_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_9.setBackgroundColor(cl_aqua);
-
-    var w6_10 = new qx.ui.layout.CanvasLayout;
-    w6_10.setHeight(25);
-    w6_10.setWidth(25);
-    w6_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_10.setBackgroundColor(cl_fuchsia);
-
-
-    var hbl6_click = 0;
-    hbl6.addEventListener("click", function(e) 
-    {
-      if (e.getTarget()!=this) {
-        return;
-      };
-            
-      switch(hbl6_click)
-      {
-        case 0:
-          this.setBottom(null);
-          this.setHeight("auto");
-          break;
-          
-        case 1:
-          this.setWidth(30);
-          break;
-        
-        case 2:
-          this.setWidth("auto");
-          break;
-          
-        case 3:
-          this.setWidth(80);
-          break;
-          
-        case 4:
-          this.setHeight(200);
-          break;
-          
-        case 5:
-          this.setHeight(null);
-          this.setBottom(48);
-          hbl6_click = 0;
-          return;        
-      };
-      
-      hbl6_click++;
-    });
-
-    w6_1.addEventListener("click", function(e) 
-    {
-      if (this.getHeight() == 25)
-      {
-        this.setHeight(65);
-        this.setWidth(65); 
-        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
-      }
-      else
-      {
-        this.setHeight(25);
-        this.setWidth(25);  
-        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      };      
-    });
-
-    w6_2.addEventListener("click", function(e) {
-      this.getMarginBottom() == 0 ? this.setMarginBottom(10) : this.setMarginBottom(0);
-    });
-
-    w6_3.addEventListener("click", function(e) {
-      this.getMinHeight() == -Infinity ? this.setMinHeight(100) : this.setMinHeight(-Infinity);
-    });
-
-    w6_4.addEventListener("click", function(e) {
-      this.getHeight() == 25 ? this.setHeight(50) : this.setHeight(25);
-    });
-
-    w6_5.addEventListener("click", function(e) {
-      this.getHeight() == 40 ? this.setHeight(80) : this.setHeight(40);
-    });
-    
-    w6_6.addEventListener("click", function(e) {
-      this.getTop() == -25 ? this.setTop(25) : this.setTop(-25);
-    });
-
-    w6_7.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/apps/accessories-clock.png" ? this.setSource("icon/64/apps/accessories-clock.png") : this.setSource("icon/32/apps/accessories-clock.png");
-    });
-    
-    w6_8.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/actions/format-color.png" ? this.setSource("icon/16/actions/format-color.png") : this.setSource("icon/32/actions/format-color.png");
-    });   
-    
-    w6_9.addEventListener("click", function(e) 
-    {
-      if (this.getLeft() == null)
-      {
-        this.setLeft(20);
-        this.setTop(-10);
-      }
-      else
-      {
-        this.setLeft(null);
-        this.setTop(null);
-      };
-    });
-    
-    w6_10.addEventListener("click", function(e) 
-    {
-      if (this.getHeight() == 25)
-      {
-        this.setHeight(10);  
-        this.setWidth(10);
-        this.setTop(-5);
-        this.setRight(15);
-      }
-      else
-      {
-        this.setHeight(25);
-        this.setWidth(25);
-        this.setTop(null);
-        this.setRight(null);
-      };
-    });
-
-
-
-    hbl6.add(w6_1, w6_2, w6_3, w6_4, w6_5, w6_6, w6_7, w6_8, w6_9, w6_10);
-    d.add(hbl6);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/VerticalBoxLayout_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/VerticalBoxLayout_2.html
deleted file mode 100644 (file)
index e0c55bc..0000000
+++ /dev/null
@@ -1,1227 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    Tests for the new implementation of the qx.ui.layout.VerticalBoxLayout widget.
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var cl_white = new qx.renderer.color.Color("white");
-    var cl_blue = new qx.renderer.color.Color("blue");
-    var cl_yellow = new qx.renderer.color.Color("yellow");
-    var cl_green = new qx.renderer.color.Color("green");
-    var cl_orange = new qx.renderer.color.Color("orange");
-    var cl_purple = new qx.renderer.color.Color("purple");
-    var cl_aqua = new qx.renderer.color.Color("aqua");
-    var cl_fuchsia = new qx.renderer.color.Color("fuchsia");
-
-    /* ***********************************************
-
-       EXAMPLE ONE:
-       TOP ALIGN
-
-    *********************************************** */
-
-    var hbl1 = new qx.ui.layout.VerticalBoxLayout;
-
-    hbl1.setTop(48);
-    hbl1.setLeft(20);
-    hbl1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl1.setWidth("auto");
-    hbl1.setBottom(48);
-
-    hbl1.setSpacing(4);
-    hbl1.setPadding(8);
-
-    hbl1.setHorizontalChildrenAlign("right");
-    
-    
-    var w1_1 = new qx.ui.layout.CanvasLayout;
-    w1_1.setHeight(25);
-    w1_1.setWidth(25);
-    w1_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_1.setBackgroundColor(cl_white);
-    // w1_1.setMaxWidth(40);
-
-    var w1_2 = new qx.ui.layout.CanvasLayout;
-    w1_2.setHeight(25);
-    w1_2.setWidth(25);
-    w1_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_2.setBackgroundColor(cl_blue);
-    w1_2.setRight(10);
-
-    var w1_3 = new qx.ui.layout.CanvasLayout;
-    w1_3.setHeight(25);
-    w1_3.setWidth("100%");
-    w1_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_3.setBackgroundColor(cl_yellow);
-
-    var w1_4 = new qx.ui.layout.CanvasLayout;
-    w1_4.setHeight(25);
-    w1_4.setWidth(25);
-    w1_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_4.setBackgroundColor(cl_green);
-
-    var w1_5 = new qx.ui.layout.CanvasLayout;
-    w1_5.setHeight("15%");
-    // w1_5.setWidth(25);
-    w1_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_5.setBackgroundColor(cl_orange);
-
-    var w1_6 = new qx.ui.layout.CanvasLayout;
-    w1_6.setHeight(25);
-    w1_6.setWidth(25);
-    w1_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_6.setBackgroundColor(cl_purple);
-    w1_6.setLeft(15);
-    w1_6.setTop(-25);
-
-    var w1_7 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-
-    var w1_8 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-
-    var w1_9 = new qx.ui.layout.CanvasLayout;
-    w1_9.setHeight(25);
-    w1_9.setWidth(25);
-    w1_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_9.setBackgroundColor(cl_aqua);
-
-    var w1_10 = new qx.ui.layout.CanvasLayout;
-    w1_10.setHeight(25);
-    w1_10.setWidth(25);
-    w1_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w1_10.setBackgroundColor(cl_fuchsia);
-
-    var hbl1_click = 0;
-    hbl1.addEventListener("click", function(e) 
-    {
-      if (e.getTarget()!=this) {
-        return;
-      };
-      
-      switch(hbl1_click)
-      {
-        case 0:
-          this.setWidth(30);
-          break;
-        
-        case 1:
-          this.setWidth(80);
-          break;
-          
-        case 2:
-          this.setWidth("auto");
-          break;
-          
-        case 3:
-          this.setHeight(200);
-          break;
-          
-        case 4:
-          this.setHeight(null);
-          this.setBottom(48);
-          hbl1_click = 0;
-          return;        
-      };
-      
-      hbl1_click++;
-    });
-
-    w1_1.addEventListener("click", function(e) 
-    {
-      if (this.getHeight() == 25)
-      {
-        this.setHeight(65);
-        this.setWidth(65); 
-        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
-      }
-      else
-      {
-        this.setHeight(25);
-        this.setWidth(25);  
-        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      };      
-    });
-
-    w1_2.addEventListener("click", function(e) {
-      this.getMarginBottom() == 0 ? this.setMarginBottom(10) : this.setMarginBottom(0);
-    });
-
-    w1_3.addEventListener("click", function(e) {
-      this.getMinHeight() == -Infinity ? this.setMinHeight(100) : this.setMinHeight(-Infinity);
-    });
-
-    w1_4.addEventListener("click", function(e) {
-      this.getHeight() == 25 ? this.setHeight(50) : this.setHeight(25);
-    });
-
-    w1_5.addEventListener("click", function(e) {
-      this.getHeight() == 40 ? this.setHeight(80) : this.setHeight(40);
-    });
-    
-    w1_6.addEventListener("click", function(e) {
-      this.getTop() == -25 ? this.setTop(25) : this.setTop(-25);
-    });
-
-    w1_7.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/apps/accessories-clock.png" ? this.setSource("icon/64/apps/accessories-clock.png") : this.setSource("icon/32/apps/accessories-clock.png");
-    });
-    
-    w1_8.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/actions/format-color.png" ? this.setSource("icon/16/actions/format-color.png") : this.setSource("icon/32/actions/format-color.png");
-    });   
-    
-    w1_9.addEventListener("click", function(e) 
-    {
-      if (this.getLeft() == null)
-      {
-        this.setLeft(20);
-        this.setTop(-10);
-      }
-      else
-      {
-        this.setLeft(null);
-        this.setTop(null);
-      };
-    });
-    
-    w1_10.addEventListener("click", function(e) 
-    {
-      if (this.getHeight() == 25)
-      {
-        this.setHeight(10);  
-        this.setWidth(10);
-        this.setTop(-5);
-        this.setRight(15);
-      }
-      else
-      {
-        this.setHeight(25);
-        this.setWidth(25);
-        this.setTop(null);
-        this.setRight(null);
-      };
-    });    
-
-
-
-    hbl1.add(w1_1, w1_2, w1_3, w1_4, w1_5, w1_6, w1_7, w1_8, w1_9, w1_10);
-    d.add(hbl1);
-
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE TWO:
-       BOTTOM ALIGN
-
-    *********************************************** */
-
-    var hbl2 = new qx.ui.layout.VerticalBoxLayout;
-
-    hbl2.setLeft(110);
-    hbl2.setTop(48);
-    hbl2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl2.setWidth("auto");
-    hbl2.setBottom(48);
-
-    hbl2.setSpacing(4);
-    hbl2.setPadding(8);
-
-    hbl2.setVerticalChildrenAlign("bottom");
-    hbl2.setHorizontalChildrenAlign("center");
-
-
-    var w2_1 = new qx.ui.layout.CanvasLayout;
-    w2_1.setHeight(25);
-    w2_1.setWidth(25);
-    w2_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_1.setBackgroundColor(cl_white);
-    // w2_1.setMaxWidth(40);
-
-    var w2_2 = new qx.ui.layout.CanvasLayout;
-    w2_2.setHeight(25);
-    w2_2.setWidth(25);
-    w2_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_2.setBackgroundColor(cl_blue);
-    w2_2.setRight(10);
-
-    var w2_3 = new qx.ui.layout.CanvasLayout;
-    w2_3.setHeight(25);
-    w2_3.setWidth("100%");
-    w2_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_3.setBackgroundColor(cl_yellow);
-
-    var w2_4 = new qx.ui.layout.CanvasLayout;
-    w2_4.setHeight(25);
-    w2_4.setWidth(25);
-    w2_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_4.setBackgroundColor(cl_green);
-
-    var w2_5 = new qx.ui.layout.CanvasLayout;
-    w2_5.setHeight("15%");
-    // w2_5.setWidth(25);
-    w2_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_5.setBackgroundColor(cl_orange);
-
-    var w2_6 = new qx.ui.layout.CanvasLayout;
-    w2_6.setHeight(25);
-    w2_6.setWidth(25);
-    w2_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_6.setBackgroundColor(cl_purple);
-    w2_6.setLeft(15);
-    w2_6.setTop(-25);    
-
-    var w2_7 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-
-    var w2_8 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-
-    var w2_9 = new qx.ui.layout.CanvasLayout;
-    w2_9.setHeight(25);
-    w2_9.setWidth(25);
-    w2_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_9.setBackgroundColor(cl_aqua);
-
-    var w2_10 = new qx.ui.layout.CanvasLayout;
-    w2_10.setHeight(25);
-    w2_10.setWidth(25);
-    w2_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w2_10.setBackgroundColor(cl_fuchsia);
-    w2_10.foo = true;
-
-
-    var hbl2_click = 0;
-    hbl2.addEventListener("click", function(e) 
-    {
-      if (e.getTarget()!=this) {
-        return;
-      };      
-      
-      switch(hbl2_click)
-      {
-        case 0:
-          this.setWidth(30);
-          break;
-        
-        case 1:
-          this.setWidth(80);
-          break;
-          
-        case 2:
-          this.setWidth("auto");
-          break;
-          
-        case 3:
-          this.setHeight(200);
-          break;
-          
-        case 4:
-          this.setHeight(null);
-          this.setBottom(48);
-          hbl2_click = 0;
-          return;        
-      };
-      
-      hbl2_click++;
-    });
-    
-    w2_1.addEventListener("click", function(e) 
-    {
-      if (this.getHeight() == 25)
-      {
-        this.setHeight(65);
-        this.setWidth(65); 
-        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
-      }
-      else
-      {
-        this.setHeight(25);
-        this.setWidth(25);  
-        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      };      
-    });
-
-    w2_2.addEventListener("click", function(e) {
-      this.getMarginBottom() == 0 ? this.setMarginBottom(10) : this.setMarginBottom(0);
-    });
-
-    w2_3.addEventListener("click", function(e) {
-      this.getMinHeight() == -Infinity ? this.setMinHeight(100) : this.setMinHeight(-Infinity);
-    });
-
-    w2_4.addEventListener("click", function(e) {
-      this.getHeight() == 25 ? this.setHeight(50) : this.setHeight(25);
-    });
-
-    w2_5.addEventListener("click", function(e) {
-      this.getHeight() == 40 ? this.setHeight(80) : this.setHeight(40);
-    });
-    
-    w2_6.addEventListener("click", function(e) {
-      this.getTop() == -25 ? this.setTop(25) : this.setTop(-25);
-    });
-
-    w2_7.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/apps/accessories-clock.png" ? this.setSource("icon/64/apps/accessories-clock.png") : this.setSource("icon/32/apps/accessories-clock.png");
-    });
-    
-    w2_8.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/actions/format-color.png" ? this.setSource("icon/16/actions/format-color.png") : this.setSource("icon/32/actions/format-color.png");
-    });   
-    
-    w2_9.addEventListener("click", function(e) 
-    {
-      if (this.getLeft() == null)
-      {
-        this.setLeft(20);
-        this.setTop(-10);
-      }
-      else
-      {
-        this.setLeft(null);
-        this.setTop(null);
-      };
-    });
-    
-    w2_10.addEventListener("click", function(e) 
-    {
-      if (this.getHeight() == 25)
-      {
-        this.setHeight(10);  
-        this.setWidth(10);
-        this.setTop(-5);
-        this.setRight(15);
-      }
-      else
-      {
-        this.setHeight(25);
-        this.setWidth(25);
-        this.setTop(null);
-        this.setRight(null);
-      };
-    });
-
-
-
-    hbl2.add(w2_1, w2_2, w2_3, w2_4, w2_5, w2_6, w2_7, w2_8, w2_9, w2_10);
-    d.add(hbl2);
-
-
-    /* ***********************************************
-
-       EXAMPLE THREE:
-       CENTER ALIGN
-
-    *********************************************** */
-
-    var hbl3 = new qx.ui.layout.VerticalBoxLayout;
-
-    hbl3.setLeft(200);
-    hbl3.setTop(48);
-    hbl3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl3.setWidth("auto");
-    hbl3.setBottom(48);
-
-    hbl3.setSpacing(4);
-    hbl3.setPadding(8);
-
-    hbl3.setVerticalChildrenAlign("middle");
-
-
-
-    var w3_1 = new qx.ui.layout.CanvasLayout;
-    w3_1.setHeight(25);
-    w3_1.setWidth(25);
-    w3_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_1.setBackgroundColor(cl_white);
-    // w3_1.setMaxWidth(40);
-
-    var w3_2 = new qx.ui.layout.CanvasLayout;
-    w3_2.setHeight(25);
-    w3_2.setWidth(25);
-    w3_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_2.setBackgroundColor(cl_blue);
-    w3_2.setRight(10);
-
-    var w3_3 = new qx.ui.layout.CanvasLayout;
-    w3_3.setHeight(25);
-    w3_3.setWidth("100%");
-    w3_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_3.setBackgroundColor(cl_yellow);
-
-    var w3_4 = new qx.ui.layout.CanvasLayout;
-    w3_4.setHeight(25);
-    w3_4.setWidth(25);
-    w3_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_4.setBackgroundColor(cl_green);
-
-    var w3_5 = new qx.ui.layout.CanvasLayout;
-    w3_5.setHeight("15%");
-    // w3_5.setWidth(25);
-    w3_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_5.setBackgroundColor(cl_orange);
-
-    var w3_6 = new qx.ui.layout.CanvasLayout;
-    w3_6.setHeight(25);
-    w3_6.setWidth(25);
-    w3_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_6.setBackgroundColor(cl_purple);
-    w3_6.setLeft(15);
-    w3_6.setTop(-25);    
-
-    var w3_7 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-
-    var w3_8 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-
-    var w3_9 = new qx.ui.layout.CanvasLayout;
-    w3_9.setHeight(25);
-    w3_9.setWidth(25);
-    w3_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_9.setBackgroundColor(cl_aqua);
-
-    var w3_10 = new qx.ui.layout.CanvasLayout;
-    w3_10.setHeight(25);
-    w3_10.setWidth(25);
-    w3_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w3_10.setBackgroundColor(cl_fuchsia);
-
-
-    var hbl3_click = 0;
-    hbl3.addEventListener("click", function(e) 
-    {
-      if (e.getTarget()!=this) {
-        return;
-      };      
-      
-      switch(hbl3_click)
-      {
-        case 0:
-          this.setWidth(30);
-          break;
-        
-        case 1:
-          this.setWidth(80);
-          break;
-          
-        case 2:
-          this.setWidth("auto");
-          break;
-          
-        case 3:
-          this.setHeight(200);
-          break;
-          
-        case 4:
-          this.setHeight(null);
-          this.setBottom(48);
-          hbl3_click = 0;
-          return;        
-      };
-      
-      hbl3_click++;
-    });
-
-    w3_1.addEventListener("click", function(e) 
-    {
-      if (this.getHeight() == 25)
-      {
-        this.setHeight(65);
-        this.setWidth(65); 
-        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
-      }
-      else
-      {
-        this.setHeight(25);
-        this.setWidth(25);  
-        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      };      
-    });
-
-    w3_2.addEventListener("click", function(e) {
-      this.getMarginBottom() == 0 ? this.setMarginBottom(10) : this.setMarginBottom(0);
-    });
-
-    w3_3.addEventListener("click", function(e) {
-      this.getMinHeight() == -Infinity ? this.setMinHeight(100) : this.setMinHeight(-Infinity);
-    });
-
-    w3_4.addEventListener("click", function(e) {
-      this.getHeight() == 25 ? this.setHeight(50) : this.setHeight(25);
-    });
-
-    w3_5.addEventListener("click", function(e) {
-      this.getHeight() == 40 ? this.setHeight(80) : this.setHeight(40);
-    });
-    
-    w3_6.addEventListener("click", function(e) {
-      this.getTop() == -25 ? this.setTop(25) : this.setTop(-25);
-    });
-
-    w3_7.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/apps/accessories-clock.png" ? this.setSource("icon/64/apps/accessories-clock.png") : this.setSource("icon/32/apps/accessories-clock.png");
-    });
-    
-    w3_8.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/actions/format-color.png" ? this.setSource("icon/16/actions/format-color.png") : this.setSource("icon/32/actions/format-color.png");
-    });   
-    
-    w3_9.addEventListener("click", function(e) 
-    {
-      if (this.getLeft() == null)
-      {
-        this.setLeft(20);
-        this.setTop(-10);
-      }
-      else
-      {
-        this.setLeft(null);
-        this.setTop(null);
-      };
-    });
-    
-    w3_10.addEventListener("click", function(e) 
-    {
-      if (this.getHeight() == 25)
-      {
-        this.setHeight(10);  
-        this.setWidth(10);
-        this.setTop(-5);
-        this.setRight(15);
-      }
-      else
-      {
-        this.setHeight(25);
-        this.setWidth(25);
-        this.setTop(null);
-        this.setRight(null);
-      };
-    });
-
-
-
-    hbl3.add(w3_1, w3_2, w3_3, w3_4, w3_5, w3_6, w3_7, w3_8, w3_9, w3_10);
-    d.add(hbl3);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE FOUR:
-       TOP ALIGN, REVERTED CHILDREN ORDER
-
-    *********************************************** */
-
-    var hbl4 = new qx.ui.layout.VerticalBoxLayout;
-
-    hbl4.setLeft(290);
-    hbl4.setTop(48);
-    hbl4.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl4.setHeight(null);
-    hbl4.setBottom(48);
-
-    hbl4.setSpacing(4);
-    hbl4.setPadding(8);
-    hbl4.setReverseChildrenOrder(true);
-    hbl4.setHorizontalChildrenAlign("right");
-    
-    hbl4.setWidth(80);
-
-
-
-    var w4_1 = new qx.ui.layout.CanvasLayout;
-    w4_1.setHeight(25);
-    w4_1.setWidth(25);
-    w4_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_1.setBackgroundColor(cl_white);
-    // w4_1.setMaxWidth(40);
-
-    var w4_2 = new qx.ui.layout.CanvasLayout;
-    w4_2.setHeight(25);
-    w4_2.setWidth(25);
-    w4_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_2.setBackgroundColor(cl_blue);
-    w4_2.setRight(10);
-
-    var w4_3 = new qx.ui.layout.CanvasLayout;
-    w4_3.setHeight(25);
-    w4_3.setWidth("100%");
-    w4_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_3.setBackgroundColor(cl_yellow);
-
-    var w4_4 = new qx.ui.layout.CanvasLayout;
-    w4_4.setHeight(25);
-    w4_4.setWidth(25);
-    w4_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_4.setBackgroundColor(cl_green);
-
-    var w4_5 = new qx.ui.layout.CanvasLayout;
-    w4_5.setHeight("15%");
-    // w4_5.setWidth(25);
-    w4_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_5.setBackgroundColor(cl_orange);
-
-    var w4_6 = new qx.ui.layout.CanvasLayout;
-    w4_6.setHeight(25);
-    w4_6.setWidth(25);
-    w4_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_6.setBackgroundColor(cl_purple);
-    w4_6.setLeft(15);
-    w4_6.setTop(-25);    
-
-    var w4_7 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-
-    var w4_8 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-
-    var w4_9 = new qx.ui.layout.CanvasLayout;
-    w4_9.setHeight(25);
-    w4_9.setWidth(25);
-    w4_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_9.setBackgroundColor(cl_aqua);
-
-    var w4_10 = new qx.ui.layout.CanvasLayout;
-    w4_10.setHeight(25);
-    w4_10.setWidth(25);
-    w4_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w4_10.setBackgroundColor(cl_fuchsia);
-
-
-    var hbl4_click = 0;
-    hbl4.addEventListener("click", function(e) 
-    {
-      if (e.getTarget()!=this) {
-        return;
-      };      
-      
-      switch(hbl4_click)
-      {
-        case 0:
-          this.setWidth(30);
-          break;
-        
-        case 1:
-          this.setWidth("auto");
-          break;
-          
-        case 2:
-          this.setWidth(80);
-          break;
-          
-        case 3:
-          this.setHeight(200);
-          break;
-          
-        case 4:
-          this.setHeight(null);
-          this.setBottom(48);
-          hbl4_click = 0;
-          return;        
-      };
-      
-      hbl4_click++;
-    });
-
-    w4_1.addEventListener("click", function(e) 
-    {
-      if (this.getHeight() == 25)
-      {
-        this.setHeight(65);
-        this.setWidth(65); 
-        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
-      }
-      else
-      {
-        this.setHeight(25);
-        this.setWidth(25);  
-        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      };      
-    });
-
-    w4_2.addEventListener("click", function(e) {
-      this.getMarginBottom() == 0 ? this.setMarginBottom(10) : this.setMarginBottom(0);
-    });
-
-    w4_3.addEventListener("click", function(e) {
-      this.getMinHeight() == -Infinity ? this.setMinHeight(100) : this.setMinHeight(-Infinity);
-    });
-
-    w4_4.addEventListener("click", function(e) {
-      this.getHeight() == 25 ? this.setHeight(50) : this.setHeight(25);
-    });
-
-    w4_5.addEventListener("click", function(e) {
-      this.getHeight() == 40 ? this.setHeight(80) : this.setHeight(40);
-    });
-    
-    w4_6.addEventListener("click", function(e) {
-      this.getTop() == -25 ? this.setTop(25) : this.setTop(-25);
-    });
-
-    w4_7.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/apps/accessories-clock.png" ? this.setSource("icon/64/apps/accessories-clock.png") : this.setSource("icon/32/apps/accessories-clock.png");
-    });
-    
-    w4_8.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/actions/format-color.png" ? this.setSource("icon/16/actions/format-color.png") : this.setSource("icon/32/actions/format-color.png");
-    });   
-    
-    w4_9.addEventListener("click", function(e) 
-    {
-      if (this.getLeft() == null)
-      {
-        this.setLeft(20);
-        this.setTop(-10);
-      }
-      else
-      {
-        this.setLeft(null);
-        this.setTop(null);
-      };
-    });
-    
-    w4_10.addEventListener("click", function(e) 
-    {
-      if (this.getHeight() == 25)
-      {
-        this.setHeight(10);  
-        this.setWidth(10);
-        this.setTop(-5);
-        this.setRight(15);
-      }
-      else
-      {
-        this.setHeight(25);
-        this.setWidth(25);
-        this.setTop(null);
-        this.setRight(null);
-      };
-    });
-
-
-
-    hbl4.add(w4_1, w4_2, w4_3, w4_4, w4_5, w4_6, w4_7, w4_8, w4_9, w4_10);
-    d.add(hbl4);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE FIVE:
-       BOTTOM ALIGN, REVERTED CHILDREN ORDER
-
-    *********************************************** */
-
-    var hbl5 = new qx.ui.layout.VerticalBoxLayout;
-
-    hbl5.setLeft(380);
-    hbl5.setTop(48);
-    hbl5.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl5.setHeight(null);
-    hbl5.setBottom(48);
-
-    hbl5.setSpacing(4);
-    hbl5.setPadding(8);
-
-    hbl5.setVerticalChildrenAlign("bottom");
-    hbl5.setReverseChildrenOrder(true);
-    hbl5.setHorizontalChildrenAlign("center");
-    
-    hbl5.setWidth(80);
-
-
-    var w5_1 = new qx.ui.layout.CanvasLayout;
-    w5_1.setHeight(25);
-    w5_1.setWidth(25);
-    w5_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_1.setBackgroundColor(cl_white);
-    // w5_1.setMaxWidth(40);
-
-    var w5_2 = new qx.ui.layout.CanvasLayout;
-    w5_2.setHeight(25);
-    w5_2.setWidth(25);
-    w5_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_2.setBackgroundColor(cl_blue);
-    w5_2.setRight(10);
-
-    var w5_3 = new qx.ui.layout.CanvasLayout;
-    w5_3.setHeight(25);
-    w5_3.setWidth("100%");
-    w5_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_3.setBackgroundColor(cl_yellow);
-
-    var w5_4 = new qx.ui.layout.CanvasLayout;
-    w5_4.setHeight(25);
-    w5_4.setWidth(25);
-    w5_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_4.setBackgroundColor(cl_green);
-
-    var w5_5 = new qx.ui.layout.CanvasLayout;
-    w5_5.setHeight("15%");
-    // w5_5.setWidth(25);
-    w5_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_5.setBackgroundColor(cl_orange);
-
-    var w5_6 = new qx.ui.layout.CanvasLayout;
-    w5_6.setHeight(25);
-    w5_6.setWidth(25);
-    w5_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_6.setBackgroundColor(cl_purple);
-    w5_6.setLeft(15);
-    w5_6.setTop(-25);    
-
-    var w5_7 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-
-    var w5_8 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-
-    var w5_9 = new qx.ui.layout.CanvasLayout;
-    w5_9.setHeight(25);
-    w5_9.setWidth(25);
-    w5_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_9.setBackgroundColor(cl_aqua);
-
-    var w5_10 = new qx.ui.layout.CanvasLayout;
-    w5_10.setHeight(25);
-    w5_10.setWidth(25);
-    w5_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w5_10.setBackgroundColor(cl_fuchsia);
-
-
-    var hbl5_click = 0;
-    hbl5.addEventListener("click", function(e) 
-    {
-      if (e.getTarget()!=this) {
-        return;
-      };      
-      
-      switch(hbl5_click)
-      {
-        case 0:
-          this.setWidth(30);
-          break;
-        
-        case 1:
-          this.setWidth("auto");
-          break;
-          
-        case 2:
-          this.setWidth(80);
-          break;
-          
-        case 3:
-          this.setHeight(200);
-          break;
-          
-        case 4:
-          this.setHeight(null);
-          this.setBottom(48);
-          hbl5_click = 0;
-          return;        
-      };
-      
-      hbl5_click++;
-    });
-
-    w5_1.addEventListener("click", function(e) 
-    {
-      if (this.getHeight() == 25)
-      {
-        this.setHeight(65);
-        this.setWidth(65); 
-        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
-      }
-      else
-      {
-        this.setHeight(25);
-        this.setWidth(25);  
-        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      };      
-    });
-
-    w5_2.addEventListener("click", function(e) {
-      this.getMarginBottom() == 0 ? this.setMarginBottom(10) : this.setMarginBottom(0);
-    });
-
-    w5_3.addEventListener("click", function(e) {
-      this.getMinHeight() == -Infinity ? this.setMinHeight(100) : this.setMinHeight(-Infinity);
-    });
-
-    w5_4.addEventListener("click", function(e) {
-      this.getHeight() == 25 ? this.setHeight(50) : this.setHeight(25);
-    });
-
-    w5_5.addEventListener("click", function(e) {
-      this.getHeight() == 40 ? this.setHeight(80) : this.setHeight(40);
-    });
-    
-    w5_6.addEventListener("click", function(e) {
-      this.getTop() == -25 ? this.setTop(25) : this.setTop(-25);
-    });
-
-    w5_7.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/apps/accessories-clock.png" ? this.setSource("icon/64/apps/accessories-clock.png") : this.setSource("icon/32/apps/accessories-clock.png");
-    });
-    
-    w5_8.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/actions/format-color.png" ? this.setSource("icon/16/actions/format-color.png") : this.setSource("icon/32/actions/format-color.png");
-    });   
-    
-    w5_9.addEventListener("click", function(e) 
-    {
-      if (this.getLeft() == null)
-      {
-        this.setLeft(20);
-        this.setTop(-10);
-      }
-      else
-      {
-        this.setLeft(null);
-        this.setTop(null);
-      };
-    });
-    
-    w5_10.addEventListener("click", function(e) 
-    {
-      if (this.getHeight() == 25)
-      {
-        this.setHeight(10);  
-        this.setWidth(10);
-        this.setTop(-5);
-        this.setRight(15);
-      }
-      else
-      {
-        this.setHeight(25);
-        this.setWidth(25);
-        this.setTop(null);
-        this.setRight(null);
-      };
-    });
-
-
-
-    hbl5.add(w5_1, w5_2, w5_3, w5_4, w5_5, w5_6, w5_7, w5_8, w5_9, w5_10);
-    d.add(hbl5);
-
-
-
-
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE SIX:
-       CENTER ALIGN, REVERTED CHILDREN ORDER
-
-    *********************************************** */
-
-    var hbl6 = new qx.ui.layout.VerticalBoxLayout;
-
-    hbl6.setLeft(470);
-    hbl6.setTop(48);
-    hbl6.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl6.setHeight(null);
-    hbl6.setBottom(48);
-
-    hbl6.setSpacing(4);
-    hbl6.setPadding(8);
-
-    hbl6.setVerticalChildrenAlign("middle");
-    hbl6.setReverseChildrenOrder(true);
-    hbl6.setWidth(80);
-
-
-    var w6_1 = new qx.ui.layout.CanvasLayout;
-    w6_1.setHeight(25);
-    w6_1.setWidth(25);
-    w6_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_1.setBackgroundColor(cl_white);
-    // w6_1.setMaxWidth(40);
-
-    var w6_2 = new qx.ui.layout.CanvasLayout;
-    w6_2.setHeight(25);
-    w6_2.setWidth(25);
-    w6_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_2.setBackgroundColor(cl_blue);
-    w6_2.setRight(10);
-
-    var w6_3 = new qx.ui.layout.CanvasLayout;
-    w6_3.setHeight(25);
-    w6_3.setWidth("100%");
-    w6_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_3.setBackgroundColor(cl_yellow);
-
-    var w6_4 = new qx.ui.layout.CanvasLayout;
-    w6_4.setHeight(25);
-    w6_4.setWidth(25);
-    w6_4.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_4.setBackgroundColor(cl_green);
-
-    var w6_5 = new qx.ui.layout.CanvasLayout;
-    w6_5.setHeight("15%");
-    // w6_5.setWidth(25);
-    w6_5.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_5.setBackgroundColor(cl_orange);
-
-    var w6_6 = new qx.ui.layout.CanvasLayout;
-    w6_6.setHeight(25);
-    w6_6.setWidth(25);
-    w6_6.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_6.setBackgroundColor(cl_purple);
-    w6_6.setLeft(15);
-    w6_6.setTop(-25);    
-
-    var w6_7 = new qx.ui.basic.Image("icon/32/apps/accessories-clock.png");
-
-    var w6_8 = new qx.ui.basic.Image("icon/32/actions/format-color.png");
-
-    var w6_9 = new qx.ui.layout.CanvasLayout;
-    w6_9.setHeight(25);
-    w6_9.setWidth(25);
-    w6_9.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_9.setBackgroundColor(cl_aqua);
-
-    var w6_10 = new qx.ui.layout.CanvasLayout;
-    w6_10.setHeight(25);
-    w6_10.setWidth(25);
-    w6_10.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    w6_10.setBackgroundColor(cl_fuchsia);
-
-
-    var hbl6_click = 0;
-    hbl6.addEventListener("click", function(e) 
-    {
-      if (e.getTarget()!=this) {
-        return;
-      };
-            
-      switch(hbl6_click)
-      {
-        case 0:
-          this.setWidth(30);
-          break;
-        
-        case 1:
-          this.setWidth("auto");
-          break;
-          
-        case 2:
-          this.setWidth(80);
-          break;
-          
-        case 3:
-          this.setHeight(200);
-          break;
-          
-        case 4:
-          this.setHeight(null);
-          this.setBottom(48);
-          hbl6_click = 0;
-          return;        
-      };
-      
-      hbl6_click++;
-    });
-
-    w6_1.addEventListener("click", function(e) 
-    {
-      if (this.getHeight() == 25)
-      {
-        this.setHeight(65);
-        this.setWidth(65); 
-        this.setBorder(new qx.renderer.border.Border(6, "double", "black"));
-      }
-      else
-      {
-        this.setHeight(25);
-        this.setWidth(25);  
-        this.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-      };      
-    });
-
-    w6_2.addEventListener("click", function(e) {
-      this.getMarginBottom() == 0 ? this.setMarginBottom(10) : this.setMarginBottom(0);
-    });
-
-    w6_3.addEventListener("click", function(e) {
-      this.getMinHeight() == -Infinity ? this.setMinHeight(100) : this.setMinHeight(-Infinity);
-    });
-
-    w6_4.addEventListener("click", function(e) {
-      this.getHeight() == 25 ? this.setHeight(50) : this.setHeight(25);
-    });
-
-    w6_5.addEventListener("click", function(e) {
-      this.getHeight() == 40 ? this.setHeight(80) : this.setHeight(40);
-    });
-    
-    w6_6.addEventListener("click", function(e) {
-      this.getTop() == -25 ? this.setTop(25) : this.setTop(-25);
-    });
-
-    w6_7.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/apps/accessories-clock.png" ? this.setSource("icon/64/apps/accessories-clock.png") : this.setSource("icon/32/apps/accessories-clock.png");
-    });
-    
-    w6_8.addEventListener("click", function(e) {
-      this.getSource() == "icon/32/actions/format-color.png" ? this.setSource("icon/16/actions/format-color.png") : this.setSource("icon/32/actions/format-color.png");
-    });   
-    
-    w6_9.addEventListener("click", function(e) 
-    {
-      if (this.getLeft() == null)
-      {
-        this.setLeft(20);
-        this.setTop(-10);
-      }
-      else
-      {
-        this.setLeft(null);
-        this.setTop(null);
-      };
-    });
-    
-    w6_10.addEventListener("click", function(e) 
-    {
-      if (this.getHeight() == 25)
-      {
-        this.setHeight(10);  
-        this.setWidth(10);
-        this.setTop(-5);
-        this.setRight(15);
-      }
-      else
-      {
-        this.setHeight(25);
-        this.setWidth(25);
-        this.setTop(null);
-        this.setRight(null);
-      };
-    });
-
-
-
-    hbl6.add(w6_1, w6_2, w6_3, w6_4, w6_5, w6_6, w6_7, w6_8, w6_9, w6_10);
-    d.add(hbl6);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/VerticalBoxLayout_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/VerticalBoxLayout_3.html
deleted file mode 100644 (file)
index 7e9efb0..0000000
+++ /dev/null
@@ -1,552 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    Tests for the new implementation of the qx.ui.layout.VerticalBoxLayout widget.<br/>
-    <br/>
-    1. Simple testing, one static and one flex child<br/>
-    2. Two flex children with the same priority<br/>
-    3. The same as #2, but the second has the doubled priority compared to the first<br/>
-    <br/>
-
-    4. The same as #3, but now the second child has a max-height of 50px<br/>
-    5. The same as #4, but now with enabled "advancedFlexAllocation"<br/>
-    <br/>
-
-    6. The same as #3, but now the second has a min height of 300px<br/>
-    7. The same as #6, but now with enabled "advancedFlexAllocation"<br/>
-    <br/>
-
-    8. Three children with the priorities: 1, 2 and 3. The second has a maxHeight of 50px<br/>
-    9. The same as #8, but now with enabled "advancedFlexAllocation"<br/>
-    <br/>
-
-    10. Three children with the priorities: 1, 2 and 3. Added a few mouse actions.<br/>
-    11. Three children with the priorities: 1, a static height of 80px and 3.<br/>
-    12. The same as #11, but configured as 'auto' height.
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-
-    /* ***********************************************
-
-       EXAMPLE 1:
-
-    *********************************************** */
-
-    var te1 = new qx.ui.basic.Label("#1");
-    te1.setLocation(20, 48);
-    d.add(te1);
-
-    var hbl1 = new qx.ui.layout.VerticalBoxLayout;
-    hbl1.setTop(78);
-    hbl1.setLeft(20);
-    hbl1.setBottom(48);
-    hbl1.setHeight(null);
-    hbl1.setWidth("auto");
-    hbl1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl1.setSpacing(4);
-    hbl1.setPadding(2);
-    d.add(hbl1);
-
-    var t1_1 = new qx.ui.basic.Terminator;
-    t1_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t1_1.setHeight(20);
-    t1_1.setWidth(10);
-    t1_1.setBackgroundColor("green");
-    hbl1.add(t1_1);
-
-    t1_1.addEventListener("click", function() {
-      this.setHeight(this.getHeight() == 20 ? 100 : 20);
-    });
-
-    var t1_2 = new qx.ui.basic.Terminator;
-    t1_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t1_2.setHeight("1*");
-    t1_2.setWidth(10);
-    t1_2.setBackgroundColor("blue");
-    hbl1.add(t1_2);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE 2:
-
-    *********************************************** */
-
-    var te2 = new qx.ui.basic.Label("#2");
-    te2.setLocation(40, 48);
-    d.add(te2);
-
-    var hbl2 = new qx.ui.layout.VerticalBoxLayout;
-    hbl2.setTop(78);
-    hbl2.setLeft(40);
-    hbl2.setBottom(48);
-    hbl2.setHeight(null);
-    hbl2.setWidth("auto");
-    hbl2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl2.setSpacing(4);
-    hbl2.setPadding(2);
-    d.add(hbl2);
-
-    var t2_1 = new qx.ui.basic.Terminator;
-    t2_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t2_1.setHeight("1*");
-    t2_1.setWidth(10);
-    t2_1.setBackgroundColor("green");
-    hbl2.add(t2_1);
-
-    var t2_2 = new qx.ui.basic.Terminator;
-    t2_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t2_2.setHeight("1*");
-    t2_2.setWidth(10);
-    t2_2.setBackgroundColor("blue");
-    hbl2.add(t2_2);
-
-
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE 3:
-
-    *********************************************** */
-
-    var te3 = new qx.ui.basic.Label("#3");
-    te3.setLocation(60, 48);
-    d.add(te3);
-
-    var hbl3 = new qx.ui.layout.VerticalBoxLayout;
-    hbl3.setTop(78);
-    hbl3.setLeft(60);
-    hbl3.setBottom(48);
-    hbl3.setHeight(null);
-    hbl3.setWidth("auto");
-    hbl3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl3.setSpacing(4);
-    hbl3.setPadding(2);
-    d.add(hbl3);
-
-    var t3_1 = new qx.ui.basic.Terminator;
-    t3_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t3_1.setHeight("1*");
-    t3_1.setWidth(10);
-    t3_1.setBackgroundColor("green");
-    hbl3.add(t3_1);
-
-    var t3_2 = new qx.ui.basic.Terminator;
-    t3_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t3_2.setHeight("2*");
-    t3_2.setWidth(10);
-    t3_2.setBackgroundColor("blue");
-    hbl3.add(t3_2);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE 4:
-
-    *********************************************** */
-
-    var te4 = new qx.ui.basic.Label("#4");
-    te4.setLocation(100, 48);
-    d.add(te4);
-
-    var hbl4 = new qx.ui.layout.VerticalBoxLayout;
-    hbl4.setTop(78);
-    hbl4.setLeft(100);
-    hbl4.setBottom(48);
-    hbl4.setHeight(null);
-    hbl4.setWidth("auto");
-    hbl4.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl4.setSpacing(4);
-    hbl4.setPadding(2);
-    d.add(hbl4);
-
-    var t4_1 = new qx.ui.basic.Terminator;
-    t4_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t4_1.setHeight("1*");
-    t4_1.setWidth(10);
-    t4_1.setBackgroundColor("green");
-    hbl4.add(t4_1);
-
-    var t4_2 = new qx.ui.basic.Terminator;
-    t4_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t4_2.setHeight("2*");
-    t4_2.setWidth(10);
-    t4_2.setMaxHeight(50);
-    t4_2.setBackgroundColor("blue");
-    hbl4.add(t4_2);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE 5:
-
-    *********************************************** */
-
-    var te5 = new qx.ui.basic.Label("#5");
-    te5.setLocation(120, 48);
-    d.add(te5);
-
-    var hbl5 = new qx.ui.layout.VerticalBoxLayout;
-    hbl5.setTop(78);
-    hbl5.setLeft(120);
-    hbl5.setBottom(48);
-    hbl5.setHeight(null);
-    hbl5.setWidth("auto");
-    hbl5.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl5.setSpacing(4);
-    hbl5.setPadding(2);
-    hbl5.setUseAdvancedFlexAllocation(true);
-    d.add(hbl5);
-
-    var t5_1 = new qx.ui.basic.Terminator;
-    t5_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t5_1.setHeight("1*");
-    t5_1.setWidth(10);
-    t5_1.setBackgroundColor("green");
-    hbl5.add(t5_1);
-
-    var t5_2 = new qx.ui.basic.Terminator;
-    t5_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t5_2.setHeight("2*");
-    t5_2.setWidth(10);
-    t5_2.setMaxHeight(50);
-    t5_2.setBackgroundColor("blue");
-    hbl5.add(t5_2);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE 6:
-
-    *********************************************** */
-
-    var te6 = new qx.ui.basic.Label("#6");
-    te6.setLocation(160, 48);
-    d.add(te6);
-
-    var hbl6 = new qx.ui.layout.VerticalBoxLayout;
-    hbl6.setTop(78);
-    hbl6.setLeft(160);
-    hbl6.setBottom(48);
-    hbl6.setHeight(null);
-    hbl6.setWidth("auto");
-    hbl6.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl6.setSpacing(4);
-    hbl6.setPadding(2);
-    d.add(hbl6);
-
-    var t6_1 = new qx.ui.basic.Terminator;
-    t6_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t6_1.setHeight("1*");
-    t6_1.setWidth(10);
-    t6_1.setBackgroundColor("green");
-    hbl6.add(t6_1);
-
-    var t6_2 = new qx.ui.basic.Terminator;
-    t6_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t6_2.setHeight("2*");
-    t6_2.setWidth(10);
-    t6_2.setMinHeight(300);
-    t6_2.setBackgroundColor("blue");
-    hbl6.add(t6_2);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE 7:
-
-    *********************************************** */
-
-    var te7 = new qx.ui.basic.Label("#7");
-    te7.setLocation(180, 48);
-    d.add(te7);
-
-    var hbl7 = new qx.ui.layout.VerticalBoxLayout;
-    hbl7.setTop(78);
-    hbl7.setLeft(180);
-    hbl7.setBottom(48);
-    hbl7.setHeight(null);
-    hbl7.setWidth("auto");
-    hbl7.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl7.setSpacing(4);
-    hbl7.setPadding(2);
-    hbl7.setUseAdvancedFlexAllocation(true);
-    d.add(hbl7);
-
-    var t7_1 = new qx.ui.basic.Terminator;
-    t7_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t7_1.setHeight("1*");
-    t7_1.setWidth(10);
-    t7_1.setBackgroundColor("green");
-    hbl7.add(t7_1);
-
-    var t7_2 = new qx.ui.basic.Terminator;
-    t7_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t7_2.setHeight("2*");
-    t7_2.setWidth(10);
-    t7_2.setMinHeight(300);
-    t7_2.setBackgroundColor("blue");
-    hbl7.add(t7_2);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE 8:
-
-    *********************************************** */
-
-    var te8 = new qx.ui.basic.Label("#8");
-    te8.setLocation(220, 48);
-    d.add(te8);
-
-    var hbl8 = new qx.ui.layout.VerticalBoxLayout;
-    hbl8.setTop(78);
-    hbl8.setLeft(220);
-    hbl8.setBottom(48);
-    hbl8.setHeight(null);
-    hbl8.setWidth("auto");
-    hbl8.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl8.setSpacing(4);
-    hbl8.setPadding(2);
-    d.add(hbl8);
-
-    var t8_1 = new qx.ui.basic.Terminator;
-    t8_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t8_1.setHeight("1*");
-    t8_1.setWidth(10);
-    t8_1.setBackgroundColor("green");
-    hbl8.add(t8_1);
-
-    var t8_2 = new qx.ui.basic.Terminator;
-    t8_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t8_2.setHeight("2*");
-    t8_2.setWidth(10);
-    t8_2.setBackgroundColor("blue");
-    t8_2.setMaxHeight(50);
-    hbl8.add(t8_2);
-
-    var t8_3 = new qx.ui.basic.Terminator;
-    t8_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t8_3.setHeight("3*");
-    t8_3.setWidth(10);
-    t8_3.setBackgroundColor("red");
-    hbl8.add(t8_3);
-
-
-
-    /* ***********************************************
-
-       EXAMPLE 9:
-
-    *********************************************** */
-
-    var te9 = new qx.ui.basic.Label("#9");
-    te9.setLocation(240, 48);
-    d.add(te9);
-
-    var hbl9 = new qx.ui.layout.VerticalBoxLayout;
-    hbl9.setTop(78);
-    hbl9.setLeft(240);
-    hbl9.setBottom(48);
-    hbl9.setHeight(null);
-    hbl9.setWidth("auto");
-    hbl9.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl9.setSpacing(4);
-    hbl9.setPadding(2);
-    hbl9.setUseAdvancedFlexAllocation(true);
-    d.add(hbl9);
-
-    var t9_1 = new qx.ui.basic.Terminator;
-    t9_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t9_1.setHeight("1*");
-    t9_1.setWidth(10);
-    t9_1.setBackgroundColor("green");
-    hbl9.add(t9_1);
-
-    var t9_2 = new qx.ui.basic.Terminator;
-    t9_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t9_2.setHeight("2*");
-    t9_2.setWidth(10);
-    t9_2.setBackgroundColor("blue");
-    t9_2.setMaxHeight(50);
-    hbl9.add(t9_2);
-
-    var t9_3 = new qx.ui.basic.Terminator;
-    t9_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t9_3.setHeight("3*");
-    t9_3.setWidth(10);
-    t9_3.setBackgroundColor("red");
-    hbl9.add(t9_3);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE 10:
-
-    *********************************************** */
-
-    var te10 = new qx.ui.basic.Label("#10");
-    te10.setLocation(280, 48);
-    d.add(te10);
-
-    var hbl10 = new qx.ui.layout.VerticalBoxLayout;
-    hbl10.setTop(78);
-    hbl10.setLeft(280);
-    hbl10.setBottom(48);
-    hbl10.setHeight(null);
-    hbl10.setWidth("auto");
-    hbl10.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl10.setSpacing(4);
-    hbl10.setPadding(2);
-    hbl10.setUseAdvancedFlexAllocation(true);
-    d.add(hbl10);
-
-    var t10_1 = new qx.ui.basic.Terminator;
-    t10_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t10_1.setHeight("1*");
-    t10_1.setWidth(10);
-    t10_1.setBackgroundColor("green");
-    t10_1.addEventListener("click", function(e) { this.setHeight(this.getHeight() == "1*" ? "4*" : "1*"); });
-    hbl10.add(t10_1);
-
-    var t10_2 = new qx.ui.basic.Terminator;
-    t10_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t10_2.setHeight("2*");
-    t10_2.setWidth(10);
-    t10_2.setBackgroundColor("blue");
-    t10_2.addEventListener("click", function(e) { this.setHeight(this.getHeight() == "2*" ? "1*" : "2*"); });
-    hbl10.add(t10_2);
-
-    var t10_3 = new qx.ui.basic.Terminator;
-    t10_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t10_3.setHeight("3*");
-    t10_3.setWidth(10);
-    t10_3.setBackgroundColor("red");
-    t10_3.addEventListener("click", function(e) { this.setHeight(this.getHeight() == "3*" ? "6*" : "3*"); });
-    hbl10.add(t10_3);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE 11:
-
-    *********************************************** */
-
-    var te11 = new qx.ui.basic.Label("#11");
-    te11.setLocation(300, 48);
-    d.add(te11);
-
-    var hbl11 = new qx.ui.layout.VerticalBoxLayout;
-    hbl11.setTop(78);
-    hbl11.setLeft(300);
-    hbl11.setBottom(48);
-    hbl11.setHeight(null);
-    hbl11.setWidth("auto");
-    hbl11.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl11.setSpacing(4);
-    hbl11.setPadding(2);
-    d.add(hbl11);
-
-    var t11_1 = new qx.ui.basic.Terminator;
-    t11_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t11_1.setHeight("1*");
-    t11_1.setWidth(10);
-    t11_1.setBackgroundColor("green");
-    hbl11.add(t11_1);
-
-    var t11_2 = new qx.ui.basic.Terminator;
-    t11_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t11_2.setHeight(80);
-    t11_2.setWidth(10);
-    t11_2.setBackgroundColor("blue");
-    hbl11.add(t11_2);
-
-    var t11_3 = new qx.ui.basic.Terminator;
-    t11_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t11_3.setHeight("3*");
-    t11_3.setWidth(10);
-    t11_3.setBackgroundColor("red");
-    hbl11.add(t11_3);
-
-
-
-
-    /* ***********************************************
-
-       EXAMPLE 12:
-
-    *********************************************** */
-
-    var te12 = new qx.ui.basic.Label("#13");
-    te12.setLocation(320, 48);
-    d.add(te12);
-
-    var hbl12 = new qx.ui.layout.VerticalBoxLayout;
-    hbl12.setTop(78);
-    hbl12.setLeft(320);
-    hbl12.setWidth("auto");
-    hbl12.setHeight("auto");
-    hbl12.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-    hbl12.setSpacing(4);
-    hbl12.setPadding(2);
-    d.add(hbl12);
-
-    var t12_1 = new qx.ui.basic.Terminator;
-    t12_1.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t12_1.setHeight("1*");
-    t12_1.setWidth(10);
-    t12_1.setBackgroundColor("green");
-    hbl12.add(t12_1);
-
-    var t12_2 = new qx.ui.basic.Terminator;
-    t12_2.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t12_2.setHeight(80);
-    t12_2.setWidth(10);
-    t12_2.setBackgroundColor("blue");
-    hbl12.add(t12_2);
-
-    var t12_3 = new qx.ui.basic.Terminator;
-    t12_3.setBorder(qx.renderer.border.BorderPresets.getInstance().black);
-    t12_3.setHeight("3*");
-    t12_3.setWidth(10);
-    t12_3.setBackgroundColor("red");
-    hbl12.add(t12_3);
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Window_1.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Window_1.html
deleted file mode 100644 (file)
index 211bcab..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Who Framed Roger Rabbit?</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var w0 = new qx.ui.layout.CanvasLayout;
-    w0.set({left:20, top:48, right: 335, bottom: 48, backgroundColor:"Background", border:qx.renderer.border.BorderPresets.getInstance().inset});
-    w0.setOverflow("hidden");
-    d.add(w0);
-
-    var w1 = new qx.ui.window.Window("First Window");
-    w1.setSpace(20, 400, 20, 250);
-    w0.add(w1);
-
-    var w2 = new qx.ui.window.Window("Second Window", "icon/16/categories/applications-graphics.png");
-    w2.setSpace(200, 300, 80, 350);
-    w0.add(w2);
-
-    var w3 = new qx.ui.window.Window("Third Window", "icon/16/categories/applications-internet.png");
-    w3.setSpace(100, 300, 200, 200);
-    w3.setMaxWidth(450);
-    w3.setMaxHeight(300);
-    w0.add(w3);
-
-
-
-
-    var a1 = new qx.ui.basic.Atom("Welcome to your first own Window.<br/>Have fun!", "icon/32/apps/accessories-archiver.png");
-    a1.set({ top: 4, left: 4 });
-    w1.add(a1);
-
-
-
-    var tf1 = new qx.ui.pageview.tabview.TabView;
-    tf1.set({ left: 10, top: 52, right: 10, bottom: 10 });
-
-    var t1_1 = new qx.ui.pageview.tabview.Button("Explore");
-    var t1_2 = new qx.ui.pageview.tabview.Button("Internet");
-    var t1_3 = new qx.ui.pageview.tabview.Button("Future");
-
-    t1_1.setChecked(true);
-
-    tf1.getBar().add(t1_1, t1_2, t1_3);
-
-    var p1_1 = new qx.ui.pageview.tabview.Page(t1_1);
-    var p1_2 = new qx.ui.pageview.tabview.Page(t1_2);
-    var p1_3 = new qx.ui.pageview.tabview.Page(t1_3);
-
-    tf1.getPane().add(p1_1, p1_2, p1_3);
-
-    w1.add(tf1);
-
-
-
-    var at1 = new qx.ui.basic.Atom("Second Window", "icon/22/apps/accessories-clock.png");
-    at1.setLocation(4, 4);
-    w2.add(at1);
-
-
-    var at2 = new qx.ui.basic.Atom("Third Window", "icon/48/categories/applications-graphics.png");
-    at2.setLocation(4, 4);
-    w3.add(at2);
-
-
-
-
-
-
-    var fs1 = new qx.ui.groupbox.GroupBox("Settings");
-    fs1.setLocation(4, 30);
-    fs1.setRight(4);
-    fs1.setBottom(4);
-
-
-    var chk1 = new qx.ui.form.CheckBox("Show Icon");
-    chk1.setLocation(0, 0);
-    chk1.setChecked(true);
-    chk1.addEventListener("changeChecked", function(e) {
-      w2.setShowIcon(e.getData());
-    });
-
-    var chk2 = new qx.ui.form.CheckBox("Show Caption");
-    chk2.setLocation(0, 20);
-    chk2.setChecked(true);
-    chk2.addEventListener("changeChecked", function(e) {
-      w2.setShowCaption(e.getData());
-    });
-
-
-
-    var chk3 = new qx.ui.form.CheckBox("Resizeable");
-    chk3.setLocation(0, 50);
-    chk3.setChecked(true);
-    chk3.addEventListener("changeChecked", function(e) {
-      w2.setResizeable(e.getData());
-    });
-
-    var chk4 = new qx.ui.form.CheckBox("Moveable");
-    chk4.setLocation(0, 70);
-    chk4.setChecked(true);
-    chk4.addEventListener("changeChecked", function(e) {
-      w2.setMoveable(e.getData());
-    });
-
-
-
-    var chk5 = new qx.ui.form.CheckBox("Show Close");
-    chk5.setLocation(0, 100);
-    chk5.setChecked(true);
-    chk5.addEventListener("changeChecked", function(e) {
-      w2.setShowClose(e.getData());
-    });
-
-    var chk6 = new qx.ui.form.CheckBox("Show Maximize/Restore");
-    chk6.setLocation(0, 120);
-    chk6.setChecked(true);
-    chk6.addEventListener("changeChecked", function(e) {
-      w2.setShowMaximize(e.getData());
-    });
-
-    var chk7 = new qx.ui.form.CheckBox("Show Minimize");
-    chk7.setLocation(0, 140);
-    chk7.setChecked(true);
-    chk7.addEventListener("changeChecked", function(e) {
-      w2.setShowMinimize(e.getData());
-    });
-
-
-
-    var chk8 = new qx.ui.form.CheckBox("Allow Close");
-    chk8.setLocation(0, 170);
-    chk8.setChecked(true);
-    chk8.addEventListener("changeChecked", function(e) {
-      w2.setAllowClose(e.getData());
-    });
-
-    var chk9 = new qx.ui.form.CheckBox("Allow Maximize");
-    chk9.setLocation(0, 190);
-    chk9.setChecked(true);
-    chk9.addEventListener("changeChecked", function(e) {
-      w2.setAllowMaximize(e.getData());
-    });
-
-    var chk10 = new qx.ui.form.CheckBox("Allow Minimize");
-    chk10.setLocation(0, 210);
-    chk10.setChecked(true);
-    chk10.addEventListener("changeChecked", function(e) {
-      w2.setAllowMinimize(e.getData());
-    });
-
-
-    fs1.add(chk1, chk2, chk3, chk4, chk5, chk6, chk7, chk8, chk9, chk10);
-    w2.add(fs1);
-
-
-    w1.open();
-    w2.open();
-    w3.open();
-  });
-  </script>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Window_2.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Window_2.html
deleted file mode 100644 (file)
index 60b220a..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Testing auto dimension possibility of qx.ui.window.Window.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-
-    var w1 = new qx.ui.window.Window("First Window");
-    w1.getPane().setPadding(10);
-    w1.setLocation(100, 100);
-    w1.setWidth("auto");
-    w1.setHeight("auto");
-
-    d.add(w1);
-
-    var a1 = new qx.ui.basic.Atom("Welcome to your first own Window.<br/>Have fun!", "icon/32/actions/favorite-add.png");
-    a1.set({ top: 0, left: 100 });
-    w1.add(a1);
-
-    var chk1 = new qx.ui.form.CheckBox("Show Statusbar");
-    chk1.set({ top: 45, left: 0 });
-
-    chk1.addEventListener("changeChecked", function(e) {
-      w1.setShowStatusbar(e.getData());
-    });
-
-    var btn1 = new qx.ui.form.Button("Yes", "icon/16/actions/dialog-ok.png");
-    btn1.set({ top: 70, left : 0 });
-
-    var btn2 = new qx.ui.form.Button("No", "icon/16/actions/dialog-cancel.png");
-    btn2.set({ top: 70, right : 0 });
-
-    w1.add(chk1, btn1, btn2);
-
-    w1.open();
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Window_3.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Window_3.html
deleted file mode 100644 (file)
index 6358dce..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Modal dialog with qx.ui.form.TextField and qx.ui.form.TextArea</p>
-  </div>
-
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-
-      var d = qx.ui.core.ClientDocument.getInstance();
-      var txtfld;
-      
-      var dialogEditFrage = new qx.ui.window.Window("Edit", "icon/16/apps/accessories-text-editor.png");
-    
-      with(dialogEditFrage) {
-        setSpace(300, 400, 100, 300);
-        setModal(true);
-        
-        setShowClose(false);
-
-        var qx_widget = new qx.ui.basic.Atom('Question');
-        with(qx_widget)
-        {
-          setHorizontalChildrenAlign('right');
-          set({top:10,left:10,width:'20%'});
-        };
-        add(qx_widget);
-
-        qx_widget = txtfld = new qx.ui.form.TextArea();
-        with (qx_widget) {
-          set({top:10,right:10,width:'70%'})
-        };
-        add(qx_widget);
-
-        qx_widget = new qx.ui.basic.Atom('Type');
-        with(qx_widget)
-        {
-          setHorizontalChildrenAlign('right');
-          set({top:70,left:10,width:'20%'});
-        };
-        add(qx_widget);
-
-        qx_widget = new qx.ui.form.TextField();
-        with (qx_widget) {
-          set({top:70,right:10,width:'70%'})
-        };
-        add(qx_widget);
-
-
-        var btnOK = new qx.ui.form.Button("OK", "icon/16/actions/dialog-ok.png");
-        var btnCancel = new qx.ui.form.Button("Cancel", "icon/16/actions/dialog-cancel.png");
-        var btnSetText = new qx.ui.form.Button("Reload", "icon/16/actions/view-refresh.png");
-
-        btnOK.set({ bottom : 10, right : 10 });
-        btnCancel.set({ bottom : 10, left : 10 });
-        btnSetText.set({ bottom : 10, left : 100 });
-
-        btnCancel.addEventListener("execute", function(e) {
-          dialogEditFrage.close();
-        });
-        btnOK.addEventListener("execute", function(e) {
-          dialogEditFrage.close();
-        });
-
-        btnSetText.addEventListener("execute", function(e) {
-          txtfld.setValue("Some Text here!");
-          txtfld.setFocused(true);
-        });
-        
-        add(btnOK, btnCancel, btnSetText);
-      }
-
-
-      var btnOpen = new qx.ui.form.Button("Open the dialog");
-      btnOpen.set({ top : 50, left : 20 });
-      btnOpen.addEventListener("click", function(e) {
-        dialogEditFrage.open();
-      });
-
-      d.add(btnOpen,dialogEditFrage);
-    });
-
-  </script>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Window_4.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Window_4.html
deleted file mode 100644 (file)
index 6930d54..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Dialog with qx.ui.form.TextField and qx.ui.form.TextArea</p>
-    <p>Testing minimize handling.</p>
-  </div>
-
-
-  <script type="text/javascript" language="JavaScript">
-
-    qx.core.Init.getInstance().defineMain(function() {
-
-      var d = qx.ui.core.ClientDocument.getInstance();
-      var txtfld;
-
-      var  dialogEditFrage = new qx.ui.window.Window("Edit", "icon/16/apps/accessories-text-editor.png");
-      with(dialogEditFrage) {
-        setSpace(300, 400, 100, 300);
-
-        setShowClose(false);
-
-        var qx_widget = new qx.ui.basic.Atom('Question');
-        with(qx_widget)
-        {
-          setHorizontalChildrenAlign('right');
-          set({top:10,left:10,width:'20%'});
-        };
-        add(qx_widget);
-
-        qx_widget = txtfld = new qx.ui.form.TextArea();
-        with (qx_widget) {
-          set({top:10,right:10,width:'70%'})
-        }
-        add(qx_widget);
-
-        qx_widget = new qx.ui.basic.Atom('Type');
-        with(qx_widget)
-        {
-          setHorizontalChildrenAlign('right');
-          set({top:70,left:10,width:'20%'});
-        };
-        add(qx_widget);
-
-        qx_widget = new qx.ui.form.TextField();
-        with (qx_widget) {
-          set({top:70,right:10,width:'70%'})
-        }
-        add(qx_widget);
-
-
-        var btnOK = new qx.ui.form.Button("OK", "icon/16/actions/dialog-ok.png");
-        var btnCancel = new qx.ui.form.Button("Cancel", "icon/16/actions/dialog-cancel.png");
-        var btnSetText = new qx.ui.form.Button("Reload", "icon/16/actions/view-refresh.png");
-
-        btnOK.set({ bottom : 10, right : 10 });
-        btnCancel.set({ bottom : 10, left : 10 });
-        btnSetText.set({ bottom : 10, left : 100 });
-
-        btnCancel.addEventListener("execute", function(e) {
-          dialogEditFrage.close();
-        });
-        btnOK.addEventListener("execute", function(e) {
-          dialogEditFrage.close();
-        });
-
-        btnSetText.addEventListener("execute", function(e) {
-          txtfld.setValue("Some Text here!");
-          txtfld.setFocused(true);
-        });
-
-        add(btnOK, btnCancel, btnSetText);
-      }
-
-
-      var btnOpen = new qx.ui.form.Button("Open the dialog");
-      btnOpen.set({ top : 50, left : 20 });
-      btnOpen.addEventListener("click", function(e) {
-        dialogEditFrage.open();
-      });
-
-      var btnRestore = new qx.ui.form.Button("Restore the dialog");
-      btnRestore.set({ top : 80, left : 20 });
-      btnRestore.addEventListener("click", function(e) {
-        dialogEditFrage.restore();
-      });
-
-      d.add(btnOpen,btnRestore,dialogEditFrage);
-    });
-
-  </script>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Window_5.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Window_5.html
deleted file mode 100644 (file)
index f4112b5..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Some tests for zIndex handling for different widgets.</p>
-  </div>
-
-  <script type="text/javascript">
-  qx.core.Init.getInstance().defineMain(function()
-  {
-    var d = qx.ui.core.ClientDocument.getInstance();
-    
-    
-    var btnaler = new qx.ui.form.Button("Open Alert", "icon/16/status/dialog-error.png");
-    btnaler.setLocation(450, 50);
-    qx.ui.core.ClientDocument.getInstance().add(btnaler);
-    
-    
-    var aler = new qx.ui.popup.PopupAtom("Attention", "icon/128/status/dialog-error.png");
-    aler.setLocation(40, 70);
-    aler.setBackgroundColor("yellow");
-    aler.setOpacity(0.5);
-    qx.ui.core.ClientDocument.getInstance().add(aler);
-    
-    btnaler.addEventListener("execute", function(e)
-    {
-      aler.show();
-    });
-    
-    
-    
-    var bar = new qx.ui.basic.Terminator;
-    bar.setLocation(0, 0);
-    bar.setWidth(50);
-    bar.setBottom(0);
-    bar.setBackgroundColor("black");
-    bar.setOpacity(0.5);
-    bar.setZIndex(1e7);
-    qx.ui.core.ClientDocument.getInstance().add(bar);
-    
-    
-    
-
-    var w1 = new qx.ui.window.Window("Application Window");
-    w1.setSpace(20, 400, 48, 250);
-    d.add(w1);
-    
-    
-    
-    var m1 = new qx.ui.menu.Menu;
-    
-    var mb11 = new qx.ui.menu.Button("Open");
-    var mb12 = new qx.ui.menu.Button("Save");
-    var mb13 = new qx.ui.menu.Button("Close");
-    var mb14 = new qx.ui.menu.Button("Exit");
-    
-    m1.add(mb11, mb12, mb13, mb14);
-    
-    var m2 = new qx.ui.menu.Menu;
-    
-    var mb21 = new qx.ui.menu.Button("Cut");
-    var mb22 = new qx.ui.menu.Button("Copy");
-    var mb23 = new qx.ui.menu.Button("Paste");
-    
-    m2.add(mb21, mb22, mb23);
-    
-    var m3 = new qx.ui.menu.Menu;
-    
-    var mb31 = new qx.ui.menu.Button("Toolbars");
-    var mb32 = new qx.ui.menu.Button("Options");
-    
-    m3.add(mb31, mb32);
-    
-    var m4 = new qx.ui.menu.Menu;
-    
-    var mb41 = new qx.ui.menu.Button("Help");
-    var mb42 = new qx.ui.menu.Button("Info");
-    
-    m4.add(mb41, mb42);
-    
-    qx.ui.core.ClientDocument.getInstance().add(m1, m2, m3, m4);
-    
-    
-    
-    
-    
-    
-
-    var t1 = new qx.ui.toolbar.ToolBar;
-    
-    t1.setLocation(0, 0);
-    t1.setRight(0);
-    
-    var tb1 = new qx.ui.toolbar.MenuButton("File", m1);
-    var tb2 = new qx.ui.toolbar.MenuButton("Edit", m2);
-    var tb3 = new qx.ui.toolbar.MenuButton("View", m3);
-    var tb4 = new qx.ui.toolbar.MenuButton("Help", m4);
-    
-    t1.add(tb1, tb2, tb3, tb4);
-    
-    w1.add(t1);
-    
-    var tt1 = new qx.ui.popup.ToolTip("File Menu Button");
-    var tt2 = new qx.ui.popup.ToolTip("Edit Menu Button");
-    var tt3 = new qx.ui.popup.ToolTip("View Menu Button");
-    var tt4 = new qx.ui.popup.ToolTip("Help Menu Button");
-    
-    tb1.setToolTip(tt1);
-    tb2.setToolTip(tt2);
-    tb3.setToolTip(tt3);
-    tb4.setToolTip(tt4);
-    
-    qx.ui.core.ClientDocument.getInstance().add(tt1, tt2, tt3, tt4);
-    
-    
-    
-    
-    
-    
-    
-    
-    var c1 = new qx.ui.form.ComboBox;
-    
-    c1.setLocation(0, 35);
-    
-    c1.getList().add(new qx.ui.form.ListItem("Item 1"));
-    c1.getList().add(new qx.ui.form.ListItem("Item 2"));
-    c1.getList().add(new qx.ui.form.ListItem("Item 3"));
-    c1.getList().add(new qx.ui.form.ListItem("Item 4"));
-    c1.getList().add(new qx.ui.form.ListItem("Item 5"));
-    
-    w1.add(c1);
-    
-    
-    
-    
-    
-    var square = new qx.ui.basic.Terminator;
-    square.setDimension(50, 50);
-    square.setLocation(0, 70);
-    square.setBackgroundColor("blue");
-    w1.add(square);
-    
-    
-    var p1 = new qx.ui.popup.PopupAtom("Hello World");
-    p1.setBorder(4, "solid", "red");
-    p1.setBackgroundColor("yellow");
-    p1.setLocation(0, 70);
-    p1.setAutoHide(false);
-    w1.add(p1);
-    
-    var p2 = new qx.ui.popup.PopupAtom("Hello World");
-    p2.setBorder(4, "solid", "yellow");
-    p2.setBackgroundColor("red");
-    p2.setLocation(30, 70);
-    p2.setAutoHide(false);
-    w1.add(p2);    
-    
-    
-    var btn1 = new qx.ui.form.Button("Show1");
-    btn1.setLocation(140, 70);
-    w1.add(btn1);
-
-    var btn2 = new qx.ui.form.Button("Hide1");
-    btn2.setLocation(190, 70);
-    w1.add(btn2);
-
-    btn1.addEventListener("execute", function(e) {
-      p1.show();      
-    });
-    
-    btn2.addEventListener("execute", function(e) {
-      p1.hide();      
-    });
-    
-    
-    
-    var btn3 = new qx.ui.form.Button("Show2");
-    btn3.setLocation(250, 70);
-    w1.add(btn3);
-
-    var btn4 = new qx.ui.form.Button("Hide2");
-    btn4.setLocation(300, 70);
-    w1.add(btn4);
-
-    btn3.addEventListener("execute", function(e) {
-      p2.show();      
-    });
-    
-    btn4.addEventListener("execute", function(e) {
-      p2.hide();      
-    });    
-    
-    
-    
-    w1.open();
-
-
-
-
-    
-    var w2 = new qx.ui.window.Window("Test 2");
-    w2.setDimension(400, 200);
-    w2.setLocation(200, 200);
-    qx.ui.core.ClientDocument.getInstance().add(w2);
-    w2.show();
-
-  });
-  </script>
-</body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Window_6.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/Window_6.html
deleted file mode 100644 (file)
index 9f84b0e..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-  <title>qooxdoo &raquo; Demo &raquo; Sample</title>
-  <link type="text/css" rel="stylesheet" href="../../css/layout.css"/>
-  <!--[if IE]>
-  <link type="text/css" rel="stylesheet" href="../../css/layout_ie.css"/>
-  <![endif]-->
-  <script type="text/javascript" src="../../script/sample.js"></script>
-</head>
-<body>
-  <script type="text/javascript" src="../../script/layout.js"></script>
-
-  <div id="demoDescription">
-    <p>Dialog with qx.ui.form.TextField and qx.ui.form.TextArea</p>
-    <p>Testing initial focus handling.</p>
-  </div>
-
-
-  <script type="text/javascript" language="JavaScript">
-
-
-      qx.core.Init.getInstance().defineMain(function() {
-
-      var d = qx.ui.core.ClientDocument.getInstance();
-      var txtfld;
-
-      var  dialogEditFrage = new qx.ui.window.Window("Edit", "icon/16/apps/accessories-text-editor.png");
-
-
-      with(dialogEditFrage) {
-        setSpace(300, 400, 100, 300);
-
-        setShowClose(false);
-
-        var qxObj = new qx.ui.basic.Atom('Question');
-        with(qxObj)
-        {
-          setHorizontalChildrenAlign('right');
-          set({top:10,left:10,width:'20%'});
-        };
-        add(qxObj);
-
-        qxObj = txtfld = new qx.ui.form.TextArea();
-        with (qxObj) {
-          set({top:10,right:10,width:'70%'})
-        }
-        add(qxObj);
-
-        txtfld.addEventListener("appear", function(e) {
-          this.focus();
-        });
-
-        qxObj = new qx.ui.basic.Atom('Type');
-        with(qxObj)
-        {
-          setHorizontalChildrenAlign('right');
-          set({top:70,left:10,width:'20%'});
-        };
-        add(qxObj);
-
-        qxObj = new qx.ui.form.TextField();
-        with (qxObj) {
-          set({top:70,right:10,width:'70%'})
-        }
-        add(qxObj);
-
-
-        var btnOK = new qx.ui.form.Button("OK", "icon/16/actions/dialog-ok.png");
-        var btnCancel = new qx.ui.form.Button("Cancel", "icon/16/actions/dialog-cancel.png");
-        var btnSetFocus = new qx.ui.form.Button("Set Focus To First Field", "icon/16/actions/view-refresh.png");
-
-        btnOK.set({ bottom : 10, right : 10 });
-        btnCancel.set({ bottom : 10, left : 10 });
-        btnSetFocus.set({ bottom : 10, left : 100 });
-
-        btnCancel.addEventListener("execute", function(e) {
-          dialogEditFrage.close();
-        });
-        btnOK.addEventListener("execute", function(e) {
-          dialogEditFrage.close();
-        });
-
-        btnSetFocus.addEventListener("execute", function(e) {
-          txtfld.focus();
-        });
-
-        add(btnOK, btnCancel, btnSetFocus);
-      }
-
-      var btnOpen = new qx.ui.form.Button("Open the dialog");
-      btnOpen.set({ top : 50, left : 20 });
-      btnOpen.addEventListener("click", function(e) {
-        dialogEditFrage.open();
-      });
-
-      var btnRestore = new qx.ui.form.Button("Restore the dialog");
-      btnRestore.set({ top : 80, left : 20 });
-      btnRestore.addEventListener("click", function(e) {
-        dialogEditFrage.restore();
-      });
-
-      d.add(btnOpen,btnRestore,dialogEditFrage);
-    });
-
-  </script>
-
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/bigFont.css b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/bigFont.css
deleted file mode 100644 (file)
index 568085d..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-.box {
-       font-size: large;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/boldFont.css b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/boldFont.css
deleted file mode 100644 (file)
index c7f3aca..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-.box {
-       font-weight: bold;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/filesize/400kb.xml b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/filesize/400kb.xml
deleted file mode 100644 (file)
index 0f448c2..0000000
+++ /dev/null
@@ -1,10224 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-15"?>
-<all>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-</all>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/filesize/40kb.xml b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/filesize/40kb.xml
deleted file mode 100644 (file)
index 8cc7bd5..0000000
+++ /dev/null
@@ -1,1003 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-15"?>
-<all>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-<data>abcdefghijklmnopqrstuvwxyz</data>
-</all>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/anita.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/anita.html
deleted file mode 100644 (file)
index 44c7219..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<html>
-  <body>
-    <h1>Anita Hummel</h1>
-    <p>42</p>
-    <p>Getho Bals</p>
-    <p>22432</p>
-    <p>Paris</p>
-    <p>France</p>
-    <p>0044.44930209</p>
-  </body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/anita.js b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/anita.js
deleted file mode 100644 (file)
index 6f348b6..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "name" : "Hummel",
-  "givenName" : "Anita",
-  "age" : 42,
-  "street" : "Getho Bals",
-  "plz" : 22432,
-  "city" : "Paris",
-  "country" : "France",
-  "phone" : "0044.44930209"
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/anita.txt b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/anita.txt
deleted file mode 100644 (file)
index a8a9837..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-name = Hummel
-givenName = Anita
-age = 42
-street = Getho Bals
-plz = 22432
-city = Paris
-country = France
-phone = 0044.44930209
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/anita.xml b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/anita.xml
deleted file mode 100644 (file)
index ecad1f7..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<result>
-  <name>Hummel</name>
-  <givenName>Anita</givenName>
-  <age>42</age>
-  <street>Getho Bals</street>
-  <plz>22432</plz>
-  <city>Paris</city>
-  <country>France</country>
-  <phone>0044.44930209</phone>
-</result>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/harald.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/harald.html
deleted file mode 100644 (file)
index 610c158..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<html>
-  <body>
-    <h1>Harald Schmidt</h1>
-    <p>65</p>
-    <p>Karlsruher Allee</p>
-    <p>78392</p>
-    <p>Stuttgart</p>
-    <p>Germany</p>
-    <p>0049.750930302</p>
-  </body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/harald.js b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/harald.js
deleted file mode 100644 (file)
index f593737..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "name" : "Schmidt",
-  "givenName" : "Harald",
-  "age" : 65,
-  "street" : "Karlsruher Allee",
-  "plz" : 78392,
-  "city" : "Stuttgart",
-  "country" : "Germany",
-  "phone" : "0049.750930302"
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/harald.txt b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/harald.txt
deleted file mode 100644 (file)
index 215a27d..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-name = Schmidt
-givenName = Harald
-age = 65
-street = Karlsruher Allee
-plz = 78392
-city = Stuttgart
-country = Germany
-phone = 0049.750930302
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/harald.xml b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/harald.xml
deleted file mode 100644 (file)
index 425a8fd..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<result>
-  <name>Schmidt</name>
-  <givenName>Harald</givenName>
-  <age>65</age>
-  <street>Karlsruher Allee</street>
-  <plz>78392</plz>
-  <city>Stuttgart</city>
-  <country>Germany</country>
-  <phone>0049.750930302</phone>
-</result>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/lisbeth.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/lisbeth.html
deleted file mode 100644 (file)
index e2a5a55..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<html>
-  <body>
-    <h1>Lisbeth Meyer</h1>
-    <p>74</p>
-    <p>Burlington Plaza</p>
-    <p>32323</p>
-    <p>New York</p>
-    <p>United States</p>
-    <p>0030.302020234</p>
-  </body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/lisbeth.js b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/lisbeth.js
deleted file mode 100644 (file)
index 40dfd03..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "name" : "Meyer",
-  "givenName" : "Lisbeth",
-  "age" : 74,
-  "street" : "Burlington Plaza",
-  "plz" : 32323,
-  "city" : "New York",
-  "country" : "United States",
-  "phone" : "0030.302020234"
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/lisbeth.txt b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/lisbeth.txt
deleted file mode 100644 (file)
index def297f..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-name = Meyer
-givenName = Lisbeth
-age = 74
-street = Burlington Plaza
-plz = 32323
-city = New York
-country = United States
-phone = 0030.302020234
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/lisbeth.xml b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/lisbeth.xml
deleted file mode 100644 (file)
index a67a98d..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<result>
-  <name>Meyer</name>
-  <givenName>Lisbeth</givenName>
-  <age>74</age>
-  <street>Burlington Plaza</street>
-  <plz>32323</plz>
-  <city>New York</city>
-  <country>United States</country>
-  <phone>0030.302020234</phone>
-</result>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/paul.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/paul.html
deleted file mode 100644 (file)
index f43ad8b..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<html>
-  <body>
-    <h1>Paul Fuettner</h1>
-    <p>27</p>
-    <p>Bismarckstrasse</p>
-    <p>33990</p>
-    <p>Garbsen</p>
-    <p>Germany</p>
-    <p>0049.57232067</p>
-  </body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/paul.js b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/paul.js
deleted file mode 100644 (file)
index 9739f47..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "name" : "Fuettner",
-  "givenName" : "Paul",
-  "age" : 27,
-  "street" : "Bismarckstrasse",
-  "plz" : 33990,
-  "city" : "Garbsen",
-  "country" : "Germany",
-  "phone" : "0049.57232067"
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/paul.txt b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/paul.txt
deleted file mode 100644 (file)
index c79abc6..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-name = Fuettner
-givenName = Paul
-age = 27
-street = Bismarckstrasse
-plz = 33990
-city = Garbsen
-country = Germany
-phone = 0049.57232067
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/paul.xml b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/data/persons/paul.xml
deleted file mode 100644 (file)
index 3ddfa44..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<result>
-  <name>Fuettner</name>
-  <givenName>Paul</givenName>
-  <age>27</age>
-  <street>Bismarckstrasse</street>
-  <plz>33990</plz>
-  <city>Garbsen</city>
-  <country>Germany</country>
-  <phone>0049.57232067</phone>
-</result>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file1.swf b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file1.swf
deleted file mode 100644 (file)
index 2e6d69a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file1.swf and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file10.swf b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file10.swf
deleted file mode 100644 (file)
index eeafa9a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file10.swf and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file2.swf b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file2.swf
deleted file mode 100644 (file)
index 51c8f0f..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file2.swf and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file3.swf b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file3.swf
deleted file mode 100644 (file)
index 0b6b56b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file3.swf and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file4.swf b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file4.swf
deleted file mode 100644 (file)
index 746baa8..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file4.swf and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file5.swf b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file5.swf
deleted file mode 100644 (file)
index a3333e1..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file5.swf and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file6.swf b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file6.swf
deleted file mode 100644 (file)
index 2cad550..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file6.swf and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file7.swf b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file7.swf
deleted file mode 100644 (file)
index b5f4eb4..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file7.swf and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file8.swf b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file8.swf
deleted file mode 100644 (file)
index 54c9a11..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file8.swf and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file9.swf b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file9.swf
deleted file mode 100644 (file)
index cc41ff1..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/color/file9.swf and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/fo_tester.fla b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/fo_tester.fla
deleted file mode 100644 (file)
index afd4bb6..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/fo_tester.fla and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/fo_tester.swf b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/fo_tester.swf
deleted file mode 100644 (file)
index 8e0b966..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/flash/fo_tester.swf and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/grid_dialog_box.png b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/grid_dialog_box.png
deleted file mode 100644 (file)
index 2bc24a8..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/image/grid_dialog_box.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/index.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/html/test/index.html
deleted file mode 100644 (file)
index ac16317..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<html>
-  <head>
-    <script type="text/javascript">window.location.href="Atom_1.html";</script>
-  </head>
-  <body>
-    <a href="Atom1.html">Continue...</a>
-  </body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/index.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/index.html
deleted file mode 100644 (file)
index 73fbb20..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-<html>
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
-  <title>qooxdoo demo</title>
-    <style type="text/css">
-  *{
-    box-sizing: border-box;
-    -moz-box-sizing: border-box;
-    margin: 0;
-    padding: 0;
-  }
-
-  body{
-    font-size: 12px;
-    font-family: Arial, "Bitstream Vera Sans", Verdana, sans-serif;
-    margin: 0;
-    padding: 0;
-  }
-
-  p{
-    margin: 6px 0;
-  }
-
-  #demoHead,
-  #demoFoot{
-    position: absolute;
-    left: 0px;
-    right: 0px;
-    width: 100%;
-    background: #134275;
-    padding: 5px 8px;
-    color: #DEFF83;
-    font-weight: bold;
-    overflow: hidden;
-    z-index: 1000000000;
-  }
-
-  #demoHead{
-    top: 0px;
-  }
-
-  #demoHead span{
-    font-weight: normal;
-    color: white;
-  }
-
-  img{
-    box-sizing: content-box;
-    -moz-box-sizing: content-box;
-  }
-
-  #content{
-    margin: 40px 20px 0;
-    width: 400px;
-  }
-
-  h1{
-    font-size: 22px;
-    margin-bottom: 20px;
-    color: #134275;
-  }
-
-  h2{
-    font-size: 16px;
-    color: #134275;
-    margin-bottom: 10px;
-  }
-
-  h3{
-    font-size: 14px;
-    color: #1D65B3;
-  }
-
-  a{
-    color: #335EA8;
-  }
-
-  li{
-    margin-left: 16px;
-    list-style: square;
-    margin-bottom: 20px;
-  }
-
-  p{
-    font-size: 12px;
-  }
-
-  ul ul{
-    margin-top: 20px;
-  }
-
-  p.note{
-    padding: 10px;
-    background: #F3FFD1;
-    color: #444444;
-    margin: 20px 0;
-  }
-    </style>
-</head>
-<body>
-  <div id="demoHead">qooxdoo: <span>The new era of web interface development</span></div>
-
-  <div id="content" style="position:absolute;top:0px;left:0px">
-  
-    <h1>qooxdoo <span>samples</demo></h1>
-    <ul>
-      <li>
-        <h2><a href="html/example/index.html">Example</a></h2>
-        <p>Easily to understand examples. The basic features of each qooxdoo widget is demonstrated in a separate example. This section is probably the one you are looking for!</p>
-      </li>
-      <li>
-        <h2><a href="html/test/index.html">Test</a></h2>
-        <p>These tests demonstrate internal functionality of qooxdoo. Not really useful for the typical qooxdoo user, but needed for developers to test some complex layout stuff, performance related problems and more. The tests may not always be up-to-date and functioning!</p>
-      </li>
-      <li>
-        <h2><a href="html/performance/index.html">Performance</a></h2>
-        <p>These tests are used to test performance of different javascript/qooxdoo rountines and allows them to compare them with each other</p>
-      </li>
-    </ul>
-  </div>
-</body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/translation/C.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/source/translation/C.po
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/tool/layout.py b/webapps/qooxdoo-0.6.5-sdk/frontend/application/sample/tool/layout.py
deleted file mode 100755 (executable)
index b37ff70..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-import sys, os, optparse, codecs
-
-
-
-basic = u"""
-qx.log.Logger.ROOT_LOGGER.removeAllAppenders();
-qx.log.Logger.ROOT_LOGGER.addAppender(new qx.log.DivAppender("demoDebug"));
-
-document.write('<div id="demoHead">qooxdoo: <span>The new era of web development</span></div>');
-document.write('<div id="demoFoot">');
-document.write('[<a href="javascript:qx.dev.Pollution.consoleInfo(\"window\");">Global Pollution</a>] &#160;');
-document.write('[<a href="javascript:qx.core.Object.summary();">Object Summary</a>] &#160;');
-document.write('</div>');
-document.write('<div id="demoDebug"></div>');
-document.write('<div id="demoFrame">&#160;</div>');
-
-(function(sitemap)
-{
-  document.write('<select id="demoFiles" onchange="if(this.options[this.selectedIndex].value)window.location.href=this.options[this.selectedIndex].value">');
-  var url = window.location.pathname.split('/');
-  var basename = window.location.href.substring(0, window.location.href.lastIndexOf("/"));
-  var cat = url[url.length-2];
-  var file = url[url.length-1];
-
-  var pages = sitemap[cat];
-  pages.sort();
-
-  var index = pages.indexOf(file);
-  
-  for( var i=0; i<pages.length; i++ )
-  {
-    var href = window.location.href;
-    var page = cat + "/" + pages[i];
-    var pageuri = "../" + page;
-    var pageid = pages[i].replace(".html", "").replace("_", " ");
-    document.write('<option value="' + pageuri + '"');
-    if(href.lastIndexOf(page) === href.length-page.length) {
-      document.write(' selected="selected"');
-    
-    }
-    document.write('>' + pageid + '</option>');
-  }
-  document.write('</select>');
-  
-  document.write('<div id="demoJump">');
-  if (index > 0) {
-    document.write("<button onclick='window.location.href=\\"" + basename + '/' + pages[index-1] + "\\"'>&lt;</button>");
-  }
-  if (index < pages.length-1) {
-    document.write("<button onclick='window.location.href=\\"" + basename + '/' + pages[index+1] + "\\"'>&gt;</button>");
-  }
-  document.write('</div>');
-})(%s);
-
-(function()
-{
-  var url = location.href;
-  var pos = url.indexOf("/html/")+6;
-  var split = url.substring(pos).split("/");
-  var category = split[0];
-  category = category.charAt(0).toUpperCase() + category.substring(1);
-  var pagename = split[1].replace(".html", "").replace(/_/g, " ");
-  pagename = pagename.charAt(0).toUpperCase() + pagename.substring(1);
-
-  document.title = "qooxdoo » Demo » Sample » " + category + " » " + pagename;
-
-  if (window.location.href.indexOf("demo.qooxdoo.org") != -1)
-  {
-    document.write('<script type="text/javascript">var a_vars = []; var pagename=""; var phpmyvisitesSite = 5; var phpmyvisitesURL = "http://counter.qooxdoo.org/phpmyvisites.php";</script>');
-    document.write('<script type="text/javascript" src="http://counter.qooxdoo.org/phpmyvisites.js"></script>');
-    document.write('<script type="text/javascript" src="http://www.google-analytics.com/urchin.js"></script>');
-    document.write('<script type="text/javascript">_uacct = "UA-415440-1"; function urchinStart() { urchinTracker() }; if(window.addEventListener)window.addEventListener("load", urchinStart, false); else if(window.attachEvent)window.attachEvent("onload", urchinStart);</script>');
-  }
-})();
-"""
-
-
-def main(dist, scan):
-  res = ""
-  res += "{"
-
-  firstCategory = True
-  # for category in os.listdir(scan):
-  for category in [ "example", "test", "performance" ]:
-    if category == ".svn":
-      continue
-
-    if not firstCategory:
-      res += ","
-
-    res += category + ":["
-
-    firstItem = True
-    for item in os.listdir(os.path.join(scan, category)):
-      if item == ".svn":
-        continue
-
-      if os.path.splitext(item)[1] != ".html":
-        continue
-
-      if item == "index.html":
-        continue
-
-      if not firstItem:
-        res += ","
-
-      res += '"%s"' % item
-
-      firstItem = False
-
-    res += "]"
-    firstCategory = False
-
-  res += "}"
-
-  distdir = os.path.dirname(dist)
-
-  if not os.path.exists(distdir):
-    os.makedirs(distdir)
-
-  content = basic % res
-
-  outputFile = codecs.open(dist, encoding="utf-8", mode="w", errors="replace")
-  outputFile.write(content)
-  outputFile.flush()
-  outputFile.close()
-
-
-
-
-if __name__ == '__main__':
-  try:
-    parser = optparse.OptionParser()
-
-    (options, args) = parser.parse_args()
-
-    dist = args[0]
-    scan = args[1]
-
-    main(dist, scan)
-
-  except KeyboardInterrupt:
-    print
-    print "  * Keyboard Interrupt"
-    sys.exit(1)
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/Makefile b/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/Makefile
deleted file mode 100644 (file)
index 027d0cc..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Andreas Ecker (ecker)
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-################################################################################
-# BASIC SETTINGS
-################################################################################
-
-#
-# Location of your qooxdoo distribution
-# Could be relative from this location or absolute
-#
-QOOXDOO_PATH = ../../..
-
-#
-# The same as above, but from the webserver point of view
-# Starting point is the application HTML file of the source folder.
-# In most cases just add a "/.." compared to above
-#
-QOOXDOO_URI = ../../../..
-
-#
-# Namespace of your application e.g. custom
-#
-APPLICATION_NAMESPACE = showcase
-
-#
-# Titles used in your API viewer and during the build process
-#
-APPLICATION_MAKE_TITLE = SHOWCASE
-APPLICATION_API_TITLE = ShowCase
-
-#
-# Additional files (space separated list)
-#
-APPLICATION_FILES = index.html
-
-#
-# Locales to include
-#
-APPLICATION_LOCALES = de de_DE en en_US es es_ES fr fr_FR
-
-#
-# full locales used for the online version
-#
-#APPLICATION_LOCALES = ar de de_AT de_DE en en_US es es_ES fr fr_FR it ru sv tr zh
-
-
-
-################################################################################
-# ADVANCED SETTINGS
-################################################################################
-
-#
-# Enable resource filtering in API viewer
-#
-APPLICATION_RESOURCE_FILTER = true
-
-#
-# We don't need the full source code
-#
-APPLICATION_COMPLETE_SOURCE = false
-
-#
-# Disable line breaks
-#
-APPLICATION_LINEBREAKS_BUILD = false
-APPLICATION_LINEBREAKS_SOURCE = false
-
-#
-# qooxdoo.org sync
-#
-APPLICATION_PUBLISH_PATH = root@qooxdoo.org:/var/www/qooxdoo/demo/$(FRAMEWORK_VERSION)/$(APPLICATION_NAMESPACE)
-
-
-
-
-
-################################################################################
-# INCLUDE CORE
-################################################################################
-
-ifneq ($(QOOXDOO_PATH),PLEASE_DEFINE_QOOXDOO_PATH)
-       include $(QOOXDOO_PATH)/frontend/framework/tool/make/targets.mk
-       include $(QOOXDOO_PATH)/frontend/framework/tool/make/application.mk
-endif
-
-error:
-       @echo "  * Please configure QOOXDOO_PATH"
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/class/showcase/Application.js b/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/class/showcase/Application.js
deleted file mode 100644 (file)
index 0224160..0000000
+++ /dev/null
@@ -1,1504 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#embed(qx.icontheme/16/*)
-#embed(qx.icontheme/22/*)
-#embed(qx.icontheme/32/*)
-#embed(qx.icontheme/48/*)
-
-#load(qx.theme.icon.Nuvola)
-#load(qx.theme.icon.NuoveXT)
-#load(qx.theme.icon.CrystalClear)
-#load(qx.theme.icon.VistaInspirate)
-
-#load(qx.theme.color.System)
-#load(qx.theme.color.WindowsClassic)
-#load(qx.theme.color.WindowsLunaBlue)
-#load(qx.theme.color.WindowsLunaGreen)
-#load(qx.theme.color.WindowsLunaSilver)
-
-************************************************************************ */
-
-qx.OO.defineClass("showcase.Application", qx.component.AbstractApplication,
-function () {
-  qx.component.AbstractApplication.call(this);
-});
-
-qx.Proto.main = function(e)
-{
-  qx.core.Object.call(this);
-
-  var barView = new qx.ui.pageview.buttonview.ButtonView;
-
-  barView.setLocation(10, 10);
-  barView.setRight(10);
-  barView.setBottom(10);
-
-  barView.addToDocument();
-
-  this._createPage(barView, "Form",             "icon/32/apps/accessories-text-editor.png",    this._createFormDemo(), "threedface");
-  this._createPage(barView, "Tooltip",          "icon/32/actions/system-run.png",              this._createTooltipDemo());
-  this._createPage(barView, "Menu and Toolbar", "icon/32/devices/video-display.png",          this._createToolbarDemo());
-  this._createPage(barView, "Tab",              "icon/32/places/user-desktop.png",         this._createTabDemo(), "threedface", true);
-  this._createPage(barView, "Tree",             "icon/32/actions/view-pane-tree.png",    this._createTreeDemo(), "threedface");
-  this._createPage(barView, "List",             "icon/32/actions/view-pane-detailed.png",    this._createListDemo(), "threedface");
-  this._createPage(barView, "ListView",         "icon/32/actions/view-pane-icon.png", this._createListViewDemo(), "threedface");
-  this._createPage(barView, "Table",            "icon/32/actions/view-pane-column.png", this._createTableDemo(), "threedface", true);
-  this._createPage(barView, "Localization",     "icon/32/apps/accessories-archiver.png",        this._createLocalizationDemo(), "threedface");
-  this._createPage(barView, "Native Window",    "icon/32/devices/video-display.png",          this._createNativeWindowDemo(), "threedface");
-  this._createPage(barView, "Internal Window",  "icon/32/apps/preferences-desktop-theme.png",    this._createInternalWindowDemo(), null, true);
-  this._createPage(barView, "Themes",           "icon/32/apps/preferences-desktop-wallpaper.png",            this._createThemesDemo());
-};
-
-
-qx.Proto._createPage = function(barView, title, iconUrl, widget, backgroundColor, scrolls) {
-  var bt = new qx.ui.pageview.buttonview.Button(title, iconUrl);
-  if (barView.getBar().isEmpty()) {
-    bt.setChecked(true);
-  }
-
-  barView.getBar().add(bt);
-
-  var page = new qx.ui.pageview.buttonview.Page(bt);
-  barView.getPane().add(page);
-
-  page.set({ left:0, right:0, top:0, bottom:0 });
-
-  widget.setLocation(0, 0);
-  widget.set({ left:0, right:0, bottom:0, right:0 });
-  if (!scrolls) {
-    widget.set({ height:null, width:null, overflow:"auto" });
-  }
-
-  if (backgroundColor) {
-    page.setBackgroundColor(backgroundColor);
-  }
-
-  page.add(widget);
-
-  return page;
-}
-
-
-qx.Proto._createFormDemo = function() {
-  var main = new qx.ui.layout.VerticalBoxLayout;
-  main.setPadding(10);
-
-  var groupWidth = 285;
-
-  // fields
-  var group1 = new qx.ui.groupbox.GroupBox("Some controls", "icon/16/apps/preferences.png");
-  group1.setDimension("auto", "auto");
-  main.add(group1);
-
-  var gl = new qx.ui.layout.GridLayout;
-  group1.add(gl);
-
-  gl.setDimension(groupWidth - 26, "auto");
-  gl.setColumnCount(2);
-  gl.setRowCount(6);
-  gl.setVerticalSpacing(4);
-  gl.setHorizontalSpacing(6);
-
-  gl.setColumnWidth(0, 70);
-  gl.setColumnWidth(1, 180);
-
-  //gl.setColumnHorizontalAlignment(0, "right");
-  gl.setColumnVerticalAlignment(0, "middle");
-
-  gl.setRowHeight(0, 20);
-  gl.setRowHeight(1, 20);
-  gl.setRowHeight(2, 20);
-  gl.setRowHeight(3, 20);
-  gl.setRowHeight(4, 70);
-  gl.setRowHeight(5, 20);
-
-  gl.add(new qx.ui.basic.Label("Name"), 0, 0);
-  gl.add(new qx.ui.form.TextField, 1, 0);
-  gl.add(new qx.ui.basic.Label("Amount"), 0, 1);
-  gl.add(new qx.ui.form.Spinner, 1, 1);
-  gl.add(new qx.ui.basic.Label("Type"), 0, 2);
-
-  var combo = new qx.ui.form.ComboBox;
-  combo.add(new qx.ui.form.ListItem("CD"));    //, "icon/16/cd.png"));
-  combo.add(new qx.ui.form.ListItem("Clock"));   //, "icon/16/apps/accessories-clock.png"));
-  combo.add(new qx.ui.form.ListItem("Modem"));   //, "icon/16/apps/internet-download-manager.png"));
-  combo.add(new qx.ui.form.ListItem("Network")); //, "icon/16/categories/applications-internet.png"));
-  combo.add(new qx.ui.form.ListItem("Sound"));   //, "icon/16/apps/multimedia-volume-control.png"));
-  combo.add(new qx.ui.form.ListItem("PDA"));   //, "icon/16/pda.png"));
-  combo.add(new qx.ui.form.ListItem("Printer")); //, "icon/16/devices/printer.png"));
-  combo.add(new qx.ui.form.ListItem("Scanner")); //, "icon/16/devices/scanner.png"));
-  combo.add(new qx.ui.form.ListItem("TV"));    //, "icon/16/devices/video-display.png"));
-  gl.add(combo, 1, 2);
-
-  gl.add(new qx.ui.basic.Label("E-Mail"), 0, 3);
-  gl.add(new qx.ui.form.TextField, 1, 3);
-
-  var label6 = new qx.ui.basic.Label("Comment");
-  label6.setVerticalAlign("top");
-  label6.setVerticalAlign("top");
-  gl.add(label6, 0, 4);
-
-  gl.add(new qx.ui.form.TextArea, 1, 4);
-
-  var input7 = new qx.ui.form.Button("Submit", "icon/16/actions/dialog-ok.png");
-  input7.setHorizontalAlign("right");
-  gl.add(input7, 1, 5);
-
-  // Checkboxes
-  var group2 = new qx.ui.groupbox.GroupBox("Some settings");
-  group2.setDimension(groupWidth, "auto");
-  main.add(group2);
-
-  var bl = new qx.ui.layout.VerticalBoxLayout;
-  group2.add(bl);
-
-  bl.add(new qx.ui.form.CheckBox("Permit others to view my favorites"));
-
-  var chb = new qx.ui.form.CheckBox("Use the very high bitrate");
-  chb.setChecked(true);
-  bl.add(chb);
-
-  // Radio buttons
-  var group3 = new qx.ui.groupbox.GroupBox("Network speed", "icon/16/categories/applications-internet.png");
-  group3.setDimension(groupWidth, "auto");
-  main.add(group3);
-
-  var bl = new qx.ui.layout.VerticalBoxLayout;
-  group3.add(bl);
-
-  var radio1 = new qx.ui.form.RadioButton("Modem");
-  var radio2 = new qx.ui.form.RadioButton("DSL");
-  var radio3 = new qx.ui.form.RadioButton("Direct link");
-  radio2.setChecked(true);
-  bl.add(radio1, radio2, radio3);
-  new qx.manager.selection.RadioManager("network", [radio1, radio2, radio3]);
-
-  return main;
-}
-
-
-qx.Proto._createTooltipDemo = function() {
-  var main = new qx.ui.layout.HorizontalBoxLayout;
-  main.setPadding(10);
-  main.setSpacing(10);
-
-  var c1 = new qx.ui.basic.Atom("Hover me", "icon/32/actions/system-run.png");
-  c1.setPadding(5);
-  c1.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-  c1.setBackgroundColor(new qx.renderer.color.Color("#BDD2EF"));
-  c1.setToolTip(new qx.ui.popup.ToolTip("Look at this"));
-  main.add(c1);
-
-  var c2 = new qx.ui.basic.Atom("Hover me", "icon/32/apps/accessories-archiver.png");
-  c2.setPadding(5);
-  c2.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-  c2.setBackgroundColor(new qx.renderer.color.Color("#D1DFAD"));
-  c2.setToolTip(new qx.ui.popup.ToolTip("Images are also possible", "icon/16/actions/help-about.png"));
-  main.add(c2);
-
-  var c3 = new qx.ui.basic.Atom("Hover me", "icon/32/apps/accessories-disk-usage.png");
-  c3.setPadding(5);
-  c3.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-  c3.setBackgroundColor(new qx.renderer.color.Color("#D1A4AD"));
-  var tip3 = new qx.ui.popup.ToolTip('Such a great tooltip with a show timeout of 50ms.<br>And <b>H</b><span style="color:red">T</span><i>M</i><u>L</u>', "icon/32/apps/accessories-disk-usage.png");
-  tip3.setShowInterval(50);
-  c3.setToolTip(tip3);
-  main.add(c3);
-
-  return main;
-}
-
-
-qx.Proto._createToolbarDemo = function() {
-  var doc = qx.ui.core.ClientDocument.getInstance();
-
-  var main = new qx.ui.layout.VerticalBoxLayout;
-  main.setPadding(10);
-
-  // Menu
-  var m1 = new qx.ui.menu.Menu;
-  var mb1_01 = new qx.ui.menu.Button("New", "icon/16/actions/document-new.png");
-  var mb1_02 = new qx.ui.menu.Button("Open", "icon/16/actions/document-open.png");
-  var mb1_03 = new qx.ui.menu.Button("Save", "icon/16/actions/document-save.png");
-  var mb1_04 = new qx.ui.menu.Button("Save as", "icon/16/actions/document-save-as.png");
-  var mb1_05 = new qx.ui.menu.Button("Close", "icon/16/actions/stop.png");
-  var mb1_06 = new qx.ui.menu.Button("Restore last saved", "icon/16/actions/view-refresh.png");
-  m1.add(mb1_01, mb1_02, mb1_03, mb1_04, mb1_05, mb1_06);
-
-  var m2 = new qx.ui.menu.Menu;
-  var mb2_01 = new qx.ui.menu.Button("Undo", "icon/16/actions/edit-undo.png");
-  var mb2_02 = new qx.ui.menu.Button("Redo", "icon/16/actions/edit-redo.png");
-  var mb2_b1 = new qx.ui.menu.Separator();
-  var mb2_03 = new qx.ui.menu.Button("Cut", "icon/16/actions/edit-cut.png");
-  var mb2_04 = new qx.ui.menu.Button("Copy", "icon/16/actions/edit-copy.png");
-  var mb2_05 = new qx.ui.menu.Button("Paste", "icon/16/actions/edit-paste.png");
-  var mb2_06 = new qx.ui.menu.Button("Delete", "icon/16/actions/edit-delete.png");
-  var mb2_b2 = new qx.ui.menu.Separator();
-  var mb2_07 = new qx.ui.menu.Button("Select All");
-  var mb2_08 = new qx.ui.menu.Button("Find", "icon/16/actions/edit-find.png");
-  var mb2_09 = new qx.ui.menu.Button("Find Again");
-  mb2_05.setEnabled(false);
-  mb2_06.setEnabled(false);
-  mb2_09.setEnabled(false);
-  m2.add(mb2_01, mb2_02, mb2_b1, mb2_03, mb2_04, mb2_05, mb2_06, mb2_b2, mb2_07, mb2_08, mb2_09);
-
-  var m3 = new qx.ui.menu.Menu;
-  var m3_suba = new qx.ui.menu.Menu;
-  var m3_subb = new qx.ui.menu.Menu;
-  var m3_subc = new qx.ui.menu.Menu;
-  var m3_subd = new qx.ui.menu.Menu;
-
-  var mb3_01 = new qx.ui.menu.CheckBox("File List", null, false);
-  var mb3_02 = new qx.ui.menu.CheckBox("Syntax Highlighting", null, true);
-  var mb3_03 = new qx.ui.menu.CheckBox("Statusbar", null, true);
-  var mb3_b1 = new qx.ui.menu.Separator();
-  var mb3_04 = new qx.ui.menu.Button("Printer Font", null, null, m3_suba);
-  var mb3_05 = new qx.ui.menu.Button("Editor Font", null, null, m3_subb);
-  var mb3_06 = new qx.ui.menu.Button("Export Font", null, null, m3_subc);
-  var mb3_b2 = new qx.ui.menu.Separator();
-  var mb3_07 = new qx.ui.menu.Button("Advanced", null, null, m3_subd);
-  m3.add(mb3_01, mb3_02, mb3_03, mb3_b1, mb3_04, mb3_05, mb3_06, mb3_b2, mb3_07);
-
-  var mb3_suba_01 = new qx.ui.menu.Button("Tahoma, 11pt");
-  var mb3_suba_02 = new qx.ui.menu.Button("Tahoma, 12pt");
-  var mb3_suba_03 = new qx.ui.menu.Button("Tahoma, 13pt");
-  var mb3_suba_04 = new qx.ui.menu.Button("Tahoma, 14pt");
-  var mb3_suba_05 = new qx.ui.menu.Button("Tahoma, 15pt");
-  m3_suba.add(mb3_suba_01, mb3_suba_02, mb3_suba_03, mb3_suba_04, mb3_suba_05);
-
-  var mb3_subb_01 = new qx.ui.menu.Button("Verdana, 11pt");
-  var mb3_subb_02 = new qx.ui.menu.Button("Verdana, 12pt");
-  var mb3_subb_03 = new qx.ui.menu.Button("Verdana, 13pt");
-  var mb3_subb_04 = new qx.ui.menu.Button("Verdana, 14pt");
-  var mb3_subb_05 = new qx.ui.menu.Button("Verdana, 15pt");
-  m3_subb.add(mb3_subb_01, mb3_subb_02, mb3_subb_03, mb3_subb_04, mb3_subb_05);
-
-  var mb3_subc_01 = new qx.ui.menu.Button("Courier, 11pt");
-  var mb3_subc_02 = new qx.ui.menu.Button("Courier, 12pt");
-  var mb3_subc_03 = new qx.ui.menu.Button("Courier, 13pt");
-  var mb3_subc_04 = new qx.ui.menu.Button("Courier, 14pt");
-  var mb3_subc_05 = new qx.ui.menu.Button("Courier, 15pt");
-  m3_subc.add(mb3_subc_01, mb3_subc_02, mb3_subc_03, mb3_subc_04, mb3_subc_05);
-
-  var mb3_subd_02_suba = new qx.ui.menu.Menu();
-  var mb3_subd_02_suba_01 = new qx.ui.menu.Button("First");
-  var mb3_subd_02_suba_02 = new qx.ui.menu.Button("Second");
-  var mb3_subd_02_suba_03 = new qx.ui.menu.Button("Third");
-  mb3_subd_02_suba.add(mb3_subd_02_suba_01, mb3_subd_02_suba_02, mb3_subd_02_suba_03);
-
-  var mb3_subd_01 = new qx.ui.menu.Button("First");
-  var mb3_subd_02 = new qx.ui.menu.Button("Second", null, null, mb3_subd_02_suba);
-  var mb3_subd_03 = new qx.ui.menu.Button("Third");
-
-  m3_subd.add(mb3_subd_01, mb3_subd_02, mb3_subd_03);
-
-  var m4 = new qx.ui.menu.Menu;
-  var m4_suba = new qx.ui.menu.Menu;
-
-  var mb4_01 = new qx.ui.menu.Button("View", null, null, m4_suba);
-  var mb4_b1 = new qx.ui.menu.Separator();
-  var mb4_02 = new qx.ui.menu.Button("Editor Preferences...", "icon/16/apps/preferences.png");
-  var mb4_03 = new qx.ui.menu.Button("Editor Extensions", "icon/16/apps/accessories-disk-usage.png");
-  var mb4_04 = new qx.ui.menu.Button("Framework Preferences");
-
-  m4.add(mb4_01, mb4_b1, mb4_02, mb4_03, mb4_04);
-
-  var mb4_suba_01 = new qx.ui.menu.Button("New Window");
-  var mb4_suba_b1 = new qx.ui.menu.Separator();
-  var mb4_suba_02 = new qx.ui.menu.RadioButton("Overlapping", null, true);
-  var mb4_suba_03 = new qx.ui.menu.RadioButton("Split Horizontally");
-  var mb4_suba_04 = new qx.ui.menu.RadioButton("Split Vertically");
-  var mb4_suba_b2 = new qx.ui.menu.Separator();
-  var mb4_suba_05 = new qx.ui.menu.Button("Next Window");
-  var mb4_suba_06 = new qx.ui.menu.Button("Previous Window");
-
-  m4_suba.add(mb4_suba_01, mb4_suba_b1, mb4_suba_02, mb4_suba_03, mb4_suba_04, mb4_suba_b2, mb4_suba_05, mb4_suba_06);
-
-  var mb4_manager = new qx.manager.selection.RadioManager("windowMode", [ mb4_suba_02, mb4_suba_03, mb4_suba_04 ]);
-
-  var m5 = new qx.ui.menu.Menu;
-  var mb5_01 = new qx.ui.menu.Button("Help", "icon/16/actions/help-about.png");
-  var mb5_02 = new qx.ui.menu.Button("About", "icon/16/actions/system-run.png");
-  m5.add(mb5_01, mb5_02);
-
-  doc.add(m1, m2, m3, m3_suba, m3_subb, m3_subc, m3_subd, mb3_subd_02_suba, m4, m4_suba, m5);
-
-  var mb1 = new qx.ui.toolbar.ToolBar;
-  var mbb1 = new qx.ui.toolbar.MenuButton("File", m1);
-  var mbb2 = new qx.ui.toolbar.MenuButton("Edit", m2);
-  var mbb3 = new qx.ui.toolbar.MenuButton("View", m3);
-  var mbb4 = new qx.ui.toolbar.MenuButton("Options", m4);
-  var mbb5 = new qx.ui.toolbar.MenuButton("Help", m5);
-  mb1.add(mbb1, mbb2, mbb3, mbb4, mbb5);
-  main.add(mb1);
-
-  // Toolbar
-  function changeLayout(e) {
-    this.setShow(e.getData());
-  }
-
-  function changeSize(e) {
-    var v = e.getData();
-    var o = v == 22 ? 32 : 22;
-
-    this.setIcon(this.getIcon().replace(o, v));
-  }
-
-  function createButton(text, icon, clazz, checked) {
-    if (! clazz) {
-      clazz = qx.ui.toolbar.Button;
-    }
-
-    var button = new clazz(text, "icon/22/actions/" + icon + ".png");
-    doc.addEventListener("changeLayout", changeLayout, button);
-    doc.addEventListener("changeSize", changeSize, button);
-
-    if (checked) {
-      button.setChecked(true);
-    }
-
-    return button;
-  }
-
-  var tb = new qx.ui.toolbar.ToolBar;
-  main.add(tb);
-
-  var part = new qx.ui.toolbar.Part;
-  tb.add(part);
-  part.add(createButton("New", "document-new"));
-  part.add(new qx.ui.toolbar.Separator);
-  part.add(createButton("Copy",  "edit-copy"));
-  part.add(createButton("Cut",   "edit-cut"));
-  part.add(createButton("Paste", "edit-paste"));
-
-  var part = new qx.ui.toolbar.Part;
-  tb.add(part);
-  part.add(createButton("Check", "edit-add", qx.ui.toolbar.CheckBox, true));
-
-  var part = new qx.ui.toolbar.Part;
-  tb.add(part);
-  var radio1 = createButton("Radio1", "view-pane-column", qx.ui.toolbar.RadioButton);
-  var radio2 = createButton("Radio2", "view-pane-detailed", qx.ui.toolbar.RadioButton, true);
-  var radio3 = createButton("Radio3", "view-pane-icon", qx.ui.toolbar.RadioButton);
-  part.add(radio1, radio2, radio3);
-  new qx.manager.selection.RadioManager(null, [radio1, radio2, radio3]);
-
-  // Toolbar manipulation
-  var hor = new qx.ui.layout.HorizontalBoxLayout;
-  hor.setDimension("auto", "auto");
-  hor.set({ spacing:10, marginTop:20 });
-  main.add(hor);
-
-  var vert = new qx.ui.layout.VerticalBoxLayout;
-  vert.setDimension("auto", "auto");
-  hor.add(vert);
-
-  var radio1 = new qx.ui.form.RadioButton("Show Icons and Label", "both");
-  var radio2 = new qx.ui.form.RadioButton("Show Icons", "icon");
-  var radio3 = new qx.ui.form.RadioButton("Show Label", "label");
-  radio1.setChecked(true);
-  vert.add(radio1, radio2, radio3);
-  var rbm = new qx.manager.selection.RadioManager(null, [radio1, radio2, radio3]);
-  rbm.addEventListener("changeSelected", function(e) {
-    doc.dispatchEvent( new qx.event.type.DataEvent("changeLayout", e.getData().getValue() ) );
-  });
-
-  // Alignment
-  var vert = new qx.ui.layout.VerticalBoxLayout;
-  vert.setDimension("auto", "auto");
-  hor.add(vert);
-
-  var radio1 = new qx.ui.form.RadioButton("Left Aligned", "left");
-  var radio2 = new qx.ui.form.RadioButton("Centered", "center");
-  var radio3 = new qx.ui.form.RadioButton("Right Aligned", "right");
-  radio1.setChecked(true);
-  vert.add(radio1, radio2, radio3);
-  var rbm = new qx.manager.selection.RadioManager(null, [radio1, radio2, radio3]);
-  rbm.addEventListener("changeSelected", function(e) {
-    tb.setHorizontalChildrenAlign(e.getData().getValue());
-  });
-
-  // Icon Sizes
-  var vert = new qx.ui.layout.VerticalBoxLayout;
-  vert.setDimension("auto", "auto");
-  hor.add(vert);
-
-  var button = new qx.ui.form.Button("Icons: 22 Pixel", "icon/16/actions/format-color.png");
-  button.setHorizontalAlign("center");
-  button.addEventListener("execute", function(e) {
-    doc.dispatchEvent(new qx.event.type.DataEvent("changeSize", 22));
-  });
-  vert.add(button);
-
-  var button = new qx.ui.form.Button("Icons: 32 Pixel", "icon/16/actions/format-color.png");
-  button.setHorizontalAlign("center");
-  button.addEventListener("execute", function(e) {
-    doc.dispatchEvent(new qx.event.type.DataEvent("changeSize", 32));
-  });
-  vert.add(button);
-
-  return main;
-}
-
-
-qx.Proto._createTabDemo = function() {
-  var main = new qx.ui.layout.HorizontalBoxLayout;
-  main.setPadding(10);
-  main.set({ width:"100%", height:"100%", spacing:10 });
-
-  // Tab view
-  var tf1 = new qx.ui.pageview.tabview.TabView;
-  tf1.set({ width:"1*" });
-  main.add(tf1);
-
-  var t1_1 = new qx.ui.pageview.tabview.Button("Edit");
-  var t1_2 = new qx.ui.pageview.tabview.Button("Find");
-  var t1_3 = new qx.ui.pageview.tabview.Button("Backup");
-  t1_1.setChecked(true);
-  tf1.getBar().add(t1_1, t1_2, t1_3);
-
-  var p1_1 = new qx.ui.pageview.tabview.Page(t1_1);
-  var p1_2 = new qx.ui.pageview.tabview.Page(t1_2);
-  var p1_3 = new qx.ui.pageview.tabview.Page(t1_3);
-  tf1.getPane().add(p1_1, p1_2, p1_3);
-
-  p1_2.add(new qx.ui.form.TextField("Find Anywhere"));
-  p1_3.add(new qx.ui.form.TextField("Backup Input"));
-
-  var c1 = new qx.ui.form.CheckBox("Place bar on top");
-  var c2 = new qx.ui.form.CheckBox("Align tabs to left");
-
-  c1.setTop(0);
-  c1.setChecked(true);
-
-  c2.setTop(20);
-  c2.setChecked(true);
-
-  p1_1.add(c1, c2);
-
-  c1.addEventListener("changeChecked", function(e) {
-    tf1.setPlaceBarOnTop(e.getData());
-  });
-
-  c2.addEventListener("changeChecked", function(e) {
-    tf1.setAlignTabsToLeft(e.getData());
-  });
-
-  // Inner tab view
-  var tf2 = new qx.ui.pageview.tabview.TabView;
-  tf2.set({ left: 0, top: 50, right: 0, bottom: 0 });
-  p1_2.add(tf2);
-
-  var t2_1 = new qx.ui.pageview.tabview.Button("Search for Files", "icon/16/actions/document-open.png");
-  var t2_2 = new qx.ui.pageview.tabview.Button("Search the Web",   "icon/16/categories/applications-internet.png");
-  var t2_3 = new qx.ui.pageview.tabview.Button("Search in Mails",  "icon/16/apps/internet-email-client.png");
-  t2_1.setChecked(true);
-  tf2.getBar().add(t2_1, t2_2, t2_3);
-
-  var p2_1 = new qx.ui.pageview.tabview.Page(t2_1);
-  var p2_2 = new qx.ui.pageview.tabview.Page(t2_2);
-  var p2_3 = new qx.ui.pageview.tabview.Page(t2_3);
-  tf2.getPane().add(p2_1, p2_2, p2_3);
-
-  var t2_1 = new qx.ui.form.TextField("Files...");
-  var t2_2 = new qx.ui.form.TextField("Web...");
-  var t2_3 = new qx.ui.form.TextField("Mails...");
-
-  t2_1.set({ top: 2, left: 0, width: 140 });
-  t2_2.set({ top: 2, left: 0, width: 140 });
-  t2_3.set({ top: 2, left: 0, width: 140 });
-
-  p2_1.add(t2_1);
-  p2_2.add(t2_2);
-  p2_3.add(t2_3);
-
-  var b2_1 = new qx.ui.form.Button("Search", "icon/16/actions/edit-find.png");
-  var b2_2 = new qx.ui.form.Button("Search", "icon/16/actions/edit-find.png");
-  var b2_3 = new qx.ui.form.Button("Search", "icon/16/actions/edit-find.png");
-
-  b2_1.set({ top: 0, left: 150 });
-  b2_2.set({ top: 0, left: 150 });
-  b2_3.set({ top: 0, left: 150 });
-
-  p2_1.add(b2_1);
-  p2_2.add(b2_2);
-  p2_3.add(b2_3);
-
-  function dosearch(e) {
-    alert("Searching...");
-  }
-
-  b2_1.addEventListener("click", dosearch);
-  b2_2.addEventListener("click", dosearch);
-  b2_3.addEventListener("click", dosearch);
-
-  // Bar view
-  var bs = new qx.ui.pageview.buttonview.ButtonView;
-  bs.set({ width:"1*", barPosition:"left" });
-  main.add(bs);
-
-  var bsb1 = new qx.ui.pageview.buttonview.Button("Display", "icon/16/devices/video-display.png");
-  var bsb2 = new qx.ui.pageview.buttonview.Button("Colorize", "icon/16/actions/format-color.png");
-  var bsb3 = new qx.ui.pageview.buttonview.Button("Icons", "icon/16/apps/preferences-desktop-theme.png");
-  var bsb4 = new qx.ui.pageview.buttonview.Button("Applications", "icon/16/actions/system-run.png");
-  var bsb5 = new qx.ui.pageview.buttonview.Button("System", "icon/16/devices/video-display.png");
-
-  bsb1.setChecked(true);
-
-  bsb1.set({ iconPosition: "left", horizontalChildrenAlign: "left" });
-  bsb2.set({ iconPosition: "left", horizontalChildrenAlign: "left" });
-  bsb3.set({ iconPosition: "left", horizontalChildrenAlign: "left" });
-  bsb4.set({ iconPosition: "left", horizontalChildrenAlign: "left" });
-  bsb5.set({ iconPosition: "left", horizontalChildrenAlign: "left" });
-
-  bs.getBar().add(bsb1, bsb2, bsb3, bsb4, bsb5);
-  bs.getBar().setHorizontalChildrenAlign("center");
-  bs.getBar().setVerticalChildrenAlign("bottom");
-
-  var p1 = new qx.ui.pageview.buttonview.Page(bsb1);
-  var p2 = new qx.ui.pageview.buttonview.Page(bsb2);
-  var p3 = new qx.ui.pageview.buttonview.Page(bsb3);
-  var p4 = new qx.ui.pageview.buttonview.Page(bsb4);
-  var p5 = new qx.ui.pageview.buttonview.Page(bsb5);
-  bs.getPane().add(p1, p2, p3, p4, p5);
-
-  p1.add(new qx.ui.form.TextField("Display Input"));
-  p2.add(new qx.ui.form.TextField("Paint Input"));
-  p3.add(new qx.ui.form.TextField("Icons Input"));
-  p4.add(new qx.ui.form.TextField("Applications Input"));
-  p5.add(new qx.ui.form.TextField("System Input"));
-
-  var r1 = new qx.ui.form.RadioButton("Top", "top");
-  var r2 = new qx.ui.form.RadioButton("Right", "right");
-  var r3 = new qx.ui.form.RadioButton("Bottom", "bottom");
-  var r4 = new qx.ui.form.RadioButton("Left", "left", null, true);
-
-  r1.setTop(50);
-  r2.setTop(70);
-  r3.setTop(90);
-  r4.setTop(110);
-
-  p1.add(r1, r2, r3, r4);
-
-  var rm = new qx.manager.selection.RadioManager(null, [r1, r2, r3, r4]);
-
-  rm.addEventListener("changeSelected", function(e) {
-    bs.setBarPosition(e.getData().getValue());
-  });
-
-  return main;
-}
-
-
-qx.Proto._createTreeDemo = function() {
-  var main = new qx.ui.layout.HorizontalBoxLayout;
-  main.setPadding(10);
-  main.set({ width:"auto", height:"100%", spacing:10 });
-
-  // Workaround: qx.ui.tree.Tree causes an exception when added to a qx.ui.core.Parent that
-  //       has no qx.ui.core.Parent. -> So we give the parent a pseudo parent
-  var workaround = new qx.ui.layout.HorizontalBoxLayout;
-  workaround.add(main);
-
-  var t = new qx.ui.tree.Tree("Root");
-  t.set({ backgroundColor:255, border:qx.renderer.border.BorderPresets.getInstance().inset,
-    overflow:"scrollY", height:"100%", width:200 });
-  main.add(t);
-
-  var te1 = new qx.ui.tree.TreeFolder("Desktop", "icon/16/actions/go-home.png", "icon/16/actions/go-home.png");
-  t.add(te1);
-
-  var te1_1 = new qx.ui.tree.TreeFolder("Files");
-  var te1_2 = new qx.ui.tree.TreeFolder("Workspace");
-  var te1_3 = new qx.ui.tree.TreeFolder("Network");
-  var te1_4 = new qx.ui.tree.TreeFolder("Trash");
-  te1.add(te1_1, te1_2, te1_3, te1_4);
-  var te1_2_1 = new qx.ui.tree.TreeFile("Windows (C:)", "icon/16/devices/drive-harddisk.png");
-  var te1_2_2 = new qx.ui.tree.TreeFile("Documents (D:)", "icon/16/devices/drive-harddisk.png");
-  te1_2.add(te1_2_1, te1_2_2);
-
-  var te2 = new qx.ui.tree.TreeFolder("Inbox");
-  t.add(te2);
-
-  var te2_1 = new qx.ui.tree.TreeFolder("Presets");
-  var te2_2 = new qx.ui.tree.TreeFolder("Sent");
-  var te2_3 = new qx.ui.tree.TreeFolder("Trash", "icon/16/places/user-trash.png", "icon/16/places/user-trash.png");
-  var te2_4 = new qx.ui.tree.TreeFolder("Data");
-  var te2_5 = new qx.ui.tree.TreeFolder("Edit");
-
-  var te2_5_1 = new qx.ui.tree.TreeFolder("Chat");
-  var te2_5_2 = new qx.ui.tree.TreeFolder("Pustefix");
-  var te2_5_3 = new qx.ui.tree.TreeFolder("TINC");
-  te2_5.add(te2_5_1, te2_5_2, te2_5_3);
-
-  var te2_5_3_1 = new qx.ui.tree.TreeFolder("Announce");
-  var te2_5_3_2 = new qx.ui.tree.TreeFolder("Devel");
-  te2_5_3.add(te2_5_3_1, te2_5_3_2);
-
-  var te2_6 = new qx.ui.tree.TreeFolder("Lists");
-
-  var te2_6_1 = new qx.ui.tree.TreeFolder("Relations");
-  var te2_6_2 = new qx.ui.tree.TreeFolder("Company");
-  var te2_6_3 = new qx.ui.tree.TreeFolder("Questions");
-  var te2_6_4 = new qx.ui.tree.TreeFolder("Internal");
-  var te2_6_5 = new qx.ui.tree.TreeFolder("Products");
-  var te2_6_6 = new qx.ui.tree.TreeFolder("Press");
-  var te2_6_7 = new qx.ui.tree.TreeFolder("Development");
-  var te2_6_8 = new qx.ui.tree.TreeFolder("Competition");
-
-  te2_6.add(te2_6_1, te2_6_2, te2_6_3, te2_6_4, te2_6_5, te2_6_6, te2_6_7, te2_6_8);
-
-  var te2_7 = new qx.ui.tree.TreeFolder("Personal");
-
-  var te2_7_1 = new qx.ui.tree.TreeFolder("Bugs");
-  var te2_7_2 = new qx.ui.tree.TreeFolder("Family");
-  var te2_7_3 = new qx.ui.tree.TreeFolder("Projects");
-  var te2_7_4 = new qx.ui.tree.TreeFolder("Holiday");
-
-  te2_7.add(te2_7_1, te2_7_2, te2_7_3, te2_7_4);
-
-  var te2_8 = new qx.ui.tree.TreeFolder("Big");
-
-  for (var i = 0; i < 50; i++) {
-    te2_8.add(new qx.ui.tree.TreeFolder("Item " + i));
-  }
-
-  var te2_9 = new qx.ui.tree.TreeFolder("Spam");
-
-  te2.add(te2_1, te2_2, te2_3, te2_4, te2_5, te2_6, te2_7, te2_8, te2_9);
-
-  // Command frame
-  var commandFrame = new qx.ui.groupbox.GroupBox("Control");
-  commandFrame.set({ width:"auto", height:"auto" });
-  main.add(commandFrame);
-
-  var command = new qx.ui.layout.VerticalBoxLayout;
-  command.set({ width:"auto", height:"auto", paddingRight:12 });
-  commandFrame.add(command);
-
-  var tCurrentLabel = new qx.ui.basic.Atom("Current Folder: ");
-  command.add(tCurrentLabel);
-
-  var tCurrentInput = new qx.ui.form.TextField;
-  tCurrentInput.set({ readOnly:true, marginBottom:20 });
-  command.add(tCurrentInput);
-
-  t.getManager().addEventListener("changeSelection", function(e) {
-    tCurrentInput.setValue(e.getData()[0]._labelObject.getHtml());
-  });
-
-  var tDoubleClick = new qx.ui.form.CheckBox("Use double click?");
-  tDoubleClick.addEventListener("changeChecked", function(e) {
-    t.setUseDoubleClick(e.getData());
-  });
-  command.add(tDoubleClick);
-
-  var tTreeLines = new qx.ui.form.CheckBox("Use tree lines?");
-  tTreeLines.setChecked(true);
-  tTreeLines.addEventListener("changeChecked", function(e) { t.setUseTreeLines(e.getData()); });
-  command.add(tTreeLines);
-
-  return main;
-}
-
-
-qx.Proto._createListDemo = function() {
-  var main = new qx.ui.layout.HorizontalBoxLayout;
-  main.setPadding(10);
-  main.set({ width:"auto", height:"100%", spacing:10 });
-
-  // List
-  var list = new qx.ui.form.List;
-  list.set({ height:"100%", width:150, overflow:"scrollY" });
-  main.add(list)
-
-  var item;
-  for(var i = 1; i <= 35; i++) {
-    var iconName;
-    switch (parseInt(Math.random() * 5)) {
-      case 0: iconName = "places/folder.png"; break;
-      case 1: iconName = "devices/drive-harddisk.png"; break;
-      case 2: iconName = "apps/accessories-tip.png"; break;
-      case 3: iconName = "devices/scanner.png"; break;
-      case 4: iconName = "apps/accessories-tip.png"; break;
-    }
-    item = new qx.ui.form.ListItem("Item No " + i, "icon/" + ((i % 4) ? "16" : "48") + "/" + iconName);
-
-    if (!(i % 9)) (item.setEnabled(false));
-
-    list.add(item);
-  }
-
-  // Control
-  var control = new qx.ui.layout.VerticalBoxLayout;
-  control.set({ width:"auto", height:"auto" });
-  main.add(control);
-
-  var c1 = new qx.ui.form.CheckBox("Enable Multi-Selection");
-  var c2 = new qx.ui.form.CheckBox("Enable Drag-Selection");
-  var c3 = new qx.ui.form.CheckBox("Allow Deselection");
-  var c4 = new qx.ui.form.CheckBox("Enable Inline Find");
-  control.add(c1, c2, c3, c4);
-
-  c1.setChecked(true);
-  c2.setChecked(true);
-  c3.setChecked(true);
-  c4.setChecked(true);
-
-  c1.addEventListener("changeChecked", function(e) {
-    list.getManager().setMultiSelection(e.getData());
-  });
-  c2.addEventListener("changeChecked", function(e) {
-    list.getManager().setDragSelection(e.getData());
-  });
-  c3.addEventListener("changeChecked", function(e) {
-    list.getManager().setCanDeselect(e.getData());
-  });
-  c4.addEventListener("changeChecked", function(e) {
-    list.setEnableInlineFind(e.getData());
-  });
-
-  var rd1 = new qx.ui.form.RadioButton("Show Label", "label");
-  var rd2 = new qx.ui.form.RadioButton("Show Icon", "icon");
-  var rd3 = new qx.ui.form.RadioButton("Show Both", "both");
-  rd3.setChecked(true);
-  control.add(rd1, rd2, rd3);
-  var rbm = new qx.manager.selection.RadioManager( name, [rd1, rd2, rd3]);
-
-  rbm.addEventListener("changeSelected", function(e) {
-    for (var i = 0; i < list.getChildrenLength(); i++) {
-      list.getChildren()[i].setShow(e.getData().getValue());
-    }
-  });
-
-  return main;
-}
-
-
-qx.Proto._createListViewDemo = function() {
-  var main = new qx.ui.layout.HorizontalBoxLayout;
-  main.setPadding(10);
-  main.set({ width:"auto", height:"100%", spacing:10 });
-
-  var ld = [];
-  var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
-
-  for (var i = 0, t; i < 1000; i++) {
-    t = Math.round(Math.random() * 4);
-    ld.push({ name : { html : "E-Mail " + i, icon : "icon/16/apps/internet-email-client.png", iconWidth : 16, iconHeight : 16 }, size : { text : Math.round(Math.random()*100) + "kb" }, type : { text : lt[t] }, modified : { text : "Nov " + Math.round(Math.random() * 30 + 1) + " 2005" }, rights: { text : "-rw-r--r--" }, open : { uri : "http://www.google.com/search?q=" + i, html : "Open " + i }});
-  }
-
-  var lc = {
-    name : { label : "Name", width : 120, type : "iconHtml" },
-    size: { label : "Size", width : 50, type : "text", align : "right" },
-    type : { label : "Type", width : 80, type : "text" },
-    modified : { label : "Last Modified", width : 150, type : "text" },
-    rights : { label : "Rights", width: 80, type : "text" }
-  }
-
-  var lv = new qx.ui.listview.ListView(ld, lc);
-  main.add(lv);
-
-  lv.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
-  lv.setBackgroundColor("white");
-  lv.setWidth(600);
-  lv.setHeight(350);
-
-  return main;
-}
-
-
-qx.Proto._createTableDemo = function() {
-  // table model
-  var tableModel = new qx.ui.table.SimpleTableModel();
-  tableModel.setColumns([ "ID", "A number", "A date", "Boolean test" ]);
-  var rowData = [];
-  var now = new Date().getTime();
-  var dateRange = 400 * 24 * 60 * 60 * 1000; // 400 days
-  for (var row = 0; row < 100; row++) {
-    var date = new Date(now + Math.random() * dateRange - dateRange / 2);
-    rowData.push([ row, Math.random() * 10000, date, (Math.random() > 0.5) ]);
-  }
-  tableModel.setData(rowData);
-  tableModel.setColumnEditable(1, true);
-  tableModel.setColumnEditable(2, true);
-
-  // table
-  var table = new qx.ui.table.Table(tableModel);
-  with (table) {
-    set({ width:"100%", height:"100%" });
-    setMetaColumnCounts([1, -1]);
-    getSelectionModel().setSelectionMode(qx.ui.table.SelectionModel.MULTIPLE_INTERVAL_SELECTION);
-    getTableColumnModel().setDataCellRenderer(3, new qx.ui.table.BooleanDataCellRenderer());
-  }
-
-  return table;
-}
-
-
-qx.Proto._createLocalizationDemo = function() {
-  var main = new qx.ui.layout.CanvasLayout();
-  main.set({ width: "auto", height: "auto", paddingLeft: 10, paddingTop: 10, paddingBottom:10, paddingRight:10 })
-
-  var controls = new qx.ui.layout.VerticalBoxLayout();
-  controls.set({top: 40, width: "auto", height: "auto", spacing: 20});
-
-  var locales = qx.locale.Manager.getInstance().getAvailableLocales().sort();
-
-  // locale selection
-  var hb2 = new qx.ui.layout.HorizontalBoxLayout(); hb2.set({top:0, left:0, spacing:3});
-  var l2 = new qx.ui.basic.Label(this.tr("Choose a locale: "));
-  var select = new qx.ui.form.ComboBox();
-  for (var i=0; i<locales.length; i++) {
-    select.add(new qx.ui.form.ListItem(locales[i]));
-  }
-
-  var defaultListItem = select.getList().findStringExact("en");
-  if (defaultListItem) {
-    select.setSelected(defaultListItem);
-  }
-  select.addEventListener("changeSelected", function(e) {
-    var locale = e.getData().getLabel();
-    qx.locale.Manager.getInstance().setLocale(locale);
-  });
-  hb2.add(l2, select);
-  main.add(hb2);
-
-  // DateChooserButton
-  var hb1 = new qx.ui.layout.HorizontalBoxLayout(); hb1.set({height: "auto", spacing:3});
-  var l1 = new qx.ui.basic.Label(this.tr("A date: "));
-  var tf1 = new qx.ui.form.TextField(); tf1.set({ width: 130, height:20});
-  var dcb1 = new qx.ui.component.DateChooserButton(); dcb1.set({ width: 20 });
-  dcb1.setTargetWidget(tf1);
-  hb1.add(l1, tf1, dcb1);
-  controls.add(hb1);
-
-
-  // DateChooser
-  var chooser = new qx.ui.component.DateChooser;
-  chooser.setWidth("auto");
-  chooser.setHeight("auto");
-  controls.add(chooser);
-
-
-  // Commands
-  var undo_cmd = new qx.client.Command("Ctrl+Z");
-  var redo_cmd = new qx.client.Command("Ctrl+Y");
-  var cut_cmd = new qx.client.Command("Ctrl+X");
-  var copy_cmd = new qx.client.Command("Ctrl+C");
-  var paste_cmd = new qx.client.Command("Ctrl+V");
-  var delete_cmd = new qx.client.Command("Del");
-  var select_all_cmd = new qx.client.Command("Ctrl+A");
-  var search_cmd = new qx.client.Command("Ctrl+F");
-  var search_again_cmd = new qx.client.Command("F3");
-
-  var m1 = new qx.ui.menu.Menu;
-  m1.add(new qx.ui.menu.Button(this.tr("Undo"), null, undo_cmd));
-  m1.add(new qx.ui.menu.Button(this.tr("Redo"), null, redo_cmd));
-  m1.add(new qx.ui.menu.Separator());
-  m1.add(new qx.ui.menu.Button(this.tr("Cut"), "icon/16/actions/edit-cut.png", cut_cmd));
-  m1.add(new qx.ui.menu.Button(this.tr("Copy"), "icon/16/actions/edit-copy.png", copy_cmd));
-  m1.add(new qx.ui.menu.Button(this.tr("Paste"), "icon/16/actions/edit-paste.png", paste_cmd));
-  m1.add(new qx.ui.menu.Button(this.tr("Delete"), "icon/16/actions/edit-delete.png", delete_cmd));
-  m1.add(new qx.ui.menu.Button(this.tr("Select All"), null, select_all_cmd));
-  m1.add(new qx.ui.menu.Separator());
-  m1.add(new qx.ui.menu.Button(this.tr("Search"), null, search_cmd));
-  m1.add(new qx.ui.menu.Button(this.tr("Search Again"), null, search_again_cmd));
-  m1.addToDocument();
-
-  var w1 = new qx.ui.form.Button(this.tr("Command Menu (keyboard shortcuts)"));
-  w1.addEventListener("click", function(e) {
-    if (m1.isSeeable()) {
-      m1.hide();
-    } else {
-      var el = this.getElement();
-      m1.setLeft(qx.html.Location.getPageBoxLeft(el));
-      m1.setTop(qx.html.Location.getPageBoxBottom(el));
-      m1.show();
-    };
-    e.setPropagationStopped(true);
-  });
-  w1.addEventListener("mousedown", function(e) {
-    e.setPropagationStopped(true);
-  });
-  controls.add(w1);
-
-  // ColorPopup
-  var mybtn = new qx.ui.form.Button(this.tr("Open Color Popup"));
-  mybtn.addEventListener("execute", function() {
-    mypop.setTop(qx.html.Location.getPageBoxBottom(this.getElement()));
-    mypop.setLeft(qx.html.Location.getPageBoxLeft(this.getElement()));
-    mypop.show();
-  });
-  controls.add(mybtn);
-  var mytables =
-  {
-    core : {
-      label : this.tr("Basic Colors"),
-      values : [ "#000", "#333", "#666", "#999", "#CCC", "#FFF", "red", "green", "blue", "yellow", "teal", "maroon" ]
-    },
-    template : {
-      label : this.tr("Template Colors"),
-      values : [ "#B07B30", "#B07BC9", "#E3AEC9", "#7A2A53" ]
-    },
-    recent : {
-      label : this.tr("Recent Colors"),
-
-      // In this case we need named colors or rgb-value-strings, hex is not allowed currently
-      values : [ "rgb(122,195,134)", "orange" ]
-    }
-  }
-  var mypop = new qx.ui.component.ColorPopup(mytables);
-  mypop.setValue(new qx.renderer.color.Color("#23F3C1"));
-  mypop.addToDocument();
-
-
-  // ColorSelector
-  var mycolor = new qx.ui.component.ColorSelector;
-  controls.add(mycolor);
-
-  main.add(controls);
-
-  // Info Box
-  var fs = new qx.ui.groupbox.GroupBox(this.tr("Locale information"));
-  fs.set({ left: 300, top: 0, width: 400, height: "auto"});
-  var infoLabel = new qx.ui.basic.Label("");
-  fs.add(infoLabel);
-  main.add(fs);
-
-  var info = [];
-  info.push("<table style='font-size:11px'><tr><td>");
-  for (var i=0; i<13; i++) {
-    info.push("");
-    info.push("</td><td>");
-    info.push("");
-    info.push("</td></tr><td>");
-  }
-  info.push("");
-  info.push("</td><td>");
-  info.push("");
-  info.push("</td></tr></table>");
-
-  this.updateLocaleInformation = function() {
-    var i = 0;
-    info[(i++ * 2) + 1] = this.tr("Locale:");
-    info[(i++ * 2) + 1] = qx.locale.Manager.getInstance().getLocale();
-
-    info[(i++ * 2) + 1] = this.tr("Territory code:");
-    info[(i++ * 2) + 1] = qx.locale.Manager.getInstance().getTerritory();
-
-    info[(i++ * 2) + 1] = this.tr("Date format medium:");
-    info[(i++ * 2) + 1] = qx.locale.Date.getDateFormat("medium");
-    info[(i++ * 2) + 1] = this.tr("Date medium:");
-    info[(i++ * 2) + 1] = (new qx.util.format.DateFormat(qx.locale.Date.getDateFormat("medium"))).format(new Date());
-
-    info[(i++ * 2) + 1] = this.tr("Date format long:");
-    info[(i++ * 2) + 1] = qx.locale.Date.getDateFormat("long");
-    info[(i++ * 2) + 1] = this.tr("Date long:");
-    info[(i++ * 2) + 1] = (new qx.util.format.DateFormat(qx.locale.Date.getDateFormat("long"))).format(new Date());
-
-    info[(i++ * 2) + 1] = this.tr("Date format full:");
-    info[(i++ * 2) + 1] = qx.locale.Date.getDateFormat("full");
-    info[(i++ * 2) + 1] = this.tr("Date full:");
-    info[(i++ * 2) + 1] = (new qx.util.format.DateFormat(qx.locale.Date.getDateFormat("full"))).format(new Date());
-
-    info[(i++ * 2) + 1] = this.tr("Time format short:");
-    info[(i++ * 2) + 1] = qx.locale.Date.getTimeFormat("short");
-    info[(i++ * 2) + 1] = this.tr("Time short:");
-    info[(i++ * 2) + 1] = (new qx.util.format.DateFormat(qx.locale.Date.getTimeFormat("short"))).format(new Date());
-
-    info[(i++ * 2) + 1] = this.tr("Time format long:");
-    info[(i++ * 2) + 1] = qx.locale.Date.getTimeFormat("long");
-    info[(i++ * 2) + 1] = this.tr("Time long:");
-    info[(i++ * 2) + 1] = (new qx.util.format.DateFormat(qx.locale.Date.getTimeFormat("long"))).format(new Date());
-
-    info[(i++ * 2) + 1] = this.tr("Week start:");
-    info[(i++ * 2) + 1] = qx.locale.Date.getDayName("wide", qx.locale.Date.getWeekStart());
-
-    info[(i++ * 2) + 1] = this.tr("Format of %1:", 10000.12);
-    info[(i++ * 2) + 1] = qx.util.format.NumberFormat.getInstance().format(10000.12);
-
-    infoLabel.setHtml(info.join(""));
-  };
-
-  // update info box
-  qx.locale.Manager.getInstance().addEventListener("changeLocale", this.updateLocaleInformation, this);
-  this.updateLocaleInformation();
-
-  return main;
-}
-
-
-qx.Proto._createNativeWindowDemo = function() {
-  var main = new qx.ui.layout.VerticalBoxLayout;
-  main.setPadding(10);
-  main.set({ width:"auto", height:"auto", spacing:5 });
-
-  var win = new qx.client.NativeWindow("http://www.google.com");
-  win.setDimension(600, 400);
-
-  var openBt = new qx.ui.form.Button("Open Native Window", "icon/16/apps/system-users.png");
-  openBt.addEventListener("click", function() { win.open(); } );
-  main.add(openBt);
-
-  // Initial Settings
-  var fs1 = new qx.ui.groupbox.GroupBox("Initial Settings");
-  fs1.set({ width:250, height:"auto" });
-  main.add(fs1);
-
-  var vert = new qx.ui.layout.VerticalBoxLayout;
-  vert.set({ width:"auto", height:"auto" });
-  fs1.add(vert);
-
-  var chk1 = new qx.ui.form.CheckBox("Resizeable");
-  chk1.setChecked(true);
-  chk1.addEventListener("changeChecked", function(e) {
-    win.setResizeable(e.getData());
-  });
-
-  var chk2 = new qx.ui.form.CheckBox("Show Statusbar");
-  chk2.setChecked(false);
-  chk2.addEventListener("changeChecked", function(e) {
-    win.setShowStatusbar(e.getData());
-  });
-
-  var chk3 = new qx.ui.form.CheckBox("Show Menubar");
-  chk3.setChecked(false);
-  chk3.addEventListener("changeChecked", function(e) {
-    win.setShowMenubar(e.getData());
-  });
-
-  var chk4 = new qx.ui.form.CheckBox("Show Location");
-  chk4.setChecked(false);
-  chk4.addEventListener("changeChecked", function(e) {
-    win.setShowLocation(e.getData());
-  });
-
-  var chk5 = new qx.ui.form.CheckBox("Show Toolbar");
-  chk5.setChecked(false);
-  chk5.addEventListener("changeChecked", function(e) {
-    win.setShowToolbar(e.getData());
-  });
-
-  var chk6 = new qx.ui.form.CheckBox("Allow Scrollbars");
-  chk6.setChecked(true);
-  chk6.addEventListener("changeChecked", function(e) {
-    win.setAllowScrollbars(e.getData());
-  });
-
-  var chk7 = new qx.ui.form.CheckBox("Modal");
-  chk7.setChecked(false);
-  chk7.addEventListener("changeChecked", function(e) {
-    win.setModal(e.getData());
-  });
-
-  var chk8 = new qx.ui.form.CheckBox("Dependent");
-  chk8.setChecked(true);
-  chk8.addEventListener("changeChecked", function(e) {
-    win.setDependent(e.getData());
-  });
-
-  vert.add(chk1, chk2, chk3, chk4, chk5, chk6, chk7, chk8);
-
-  // Runtime Settings
-  var fs2 = new qx.ui.groupbox.GroupBox("Runtime Settings");
-  fs2.set({ width:250, height:"auto" });
-  main.add(fs2);
-
-  var vert = new qx.ui.layout.VerticalBoxLayout;
-  vert.set({ width:"auto", height:"auto", spacing:2 });
-  fs2.add(vert);
-
-  var tf1 = new qx.ui.form.TextField("http://www.google.com");
-  tf1.setWidth(150);
-
-  var setUrlBt = new qx.ui.form.Button("Set Url", "icon/16/actions/dialog-ok.png");
-  setUrlBt.addEventListener("click", function() {
-    win.setUrl(tf1.getValue());
-  });
-
-  var hor = new qx.ui.layout.HorizontalBoxLayout;
-  hor.set({ width:"auto", height:"auto", spacing:5,
-    verticalChildrenAlign:"middle", marginBottom:10 });
-  vert.add(hor);
-  hor.add(tf1, setUrlBt);
-
-
-  var tf2 = new qx.ui.form.TextField("600");
-  tf2.setWidth(50);
-
-  var btn2 = new qx.ui.form.Button("Set Width", "icon/16/actions/dialog-ok.png");
-  btn2.addEventListener("click", function() {
-    win.setWidth(parseInt(tf2.getValue()));
-  });
-
-  var hor = new qx.ui.layout.HorizontalBoxLayout;
-  hor.set({ width:"auto", height:"auto", spacing:5,
-    verticalChildrenAlign:"middle" });
-  vert.add(hor);
-  hor.add(tf2, btn2);
-
-
-  var tf3 = new qx.ui.form.TextField("400");
-  tf3.setWidth(50);
-
-  var btn3 = new qx.ui.form.Button("Set Height", "icon/16/actions/dialog-ok.png");
-  btn3.addEventListener("click", function() {
-    win.setHeight(parseInt(tf3.getValue()));
-  });
-
-  var hor = new qx.ui.layout.HorizontalBoxLayout;
-  hor.set({ width:"auto", height:"auto", spacing:5,
-    verticalChildrenAlign:"middle", marginBottom:10 });
-  vert.add(hor);
-  hor.add(tf3, btn3);
-
-
-  var btn4 = new qx.ui.form.Button("Center to screen", "icon/16/devices/video-display.png");
-  btn4.setWidth("100%");
-  btn4.addEventListener("click", function() {
-    win.centerToScreen()
-  });
-
-  var btn5 = new qx.ui.form.Button("Center to screen area", "icon/16/devices/video-display.png");
-  btn5.setWidth("100%");
-  btn5.addEventListener("click", function() {
-    win.centerToScreenArea()
-  });
-
-  var btn6 = new qx.ui.form.Button("Center to opener", "icon/16/devices/video-display.png");
-  btn6.setWidth("100%");
-  btn6.addEventListener("click", function() {
-    win.centerToOpener()
-  });
-
-  vert.add(btn4, btn5, btn6);
-
-  return main;
-}
-
-
-qx.Proto._createInternalWindowDemo = function() {
-  var doc = qx.ui.core.ClientDocument.getInstance();
-
-  var main = new qx.ui.layout.CanvasLayout;
-  main.setOverflow("hidden");
-
-  // Create the windows
-  var w1 = new qx.ui.window.Window("First Window", "icon/16/apps/preferences-desktop-multimedia.png");
-  w1.setSpace(20, 400, 48, 250);
-  main.add(w1);
-
-  var w2 = new qx.ui.window.Window("Second Window", "icon/16/actions/format-color.png");
-  w2.setSpace(250, "auto", 120, "auto");
-  main.add(w2);
-
-  var w3 = new qx.ui.window.Window("Third Window", "icon/16/categories/applications-internet.png");
-  w3.setSpace(100, "auto", 200, "auto");
-  w3.set({ maxWidth:450, maxHeight:400 });
-  main.add(w3);
-
-  var wm1 = new qx.ui.window.Window("First Modal Dialog");
-  wm1.setSpace(150, 200, 150, 200);
-  wm1.setModal(true);
-  doc.add(wm1);
-
-  var wm2 = new qx.ui.window.Window("Second Modal Dialog");
-  wm2.setSpace(100, 200, 100, 150);
-  wm2.set({ modal:true, showClose:false });
-  doc.add(wm2);
-
-  // Fill window 1
-  var a1 = new qx.ui.basic.Atom("Welcome to your first own Window.<br/>Have fun!", "icon/32/apps/office-organizer.png");
-  a1.set({ top: 4, left: 4 });
-  w1.add(a1);
-
-  var tf1 = new qx.ui.pageview.tabview.TabView;
-  tf1.set({ left: 10, top: 52, right: 10, bottom: 10 });
-
-  var t1_1 = new qx.ui.pageview.tabview.Button("Explore");
-  var t1_2 = new qx.ui.pageview.tabview.Button("Internet");
-  var t1_3 = new qx.ui.pageview.tabview.Button("Future");
-
-  t1_1.setChecked(true);
-
-  tf1.getBar().add(t1_1, t1_2, t1_3);
-
-  var p1_1 = new qx.ui.pageview.tabview.Page(t1_1);
-  var p1_2 = new qx.ui.pageview.tabview.Page(t1_2);
-  var p1_3 = new qx.ui.pageview.tabview.Page(t1_3);
-
-  tf1.getPane().add(p1_1, p1_2, p1_3);
-
-  w1.add(tf1);
-
-  // Fill window 2
-  var at1 = new qx.ui.basic.Atom("Your second window", "icon/22/actions/edit-find.png");
-  at1.setLocation(8, 8);
-  w2.add(at1);
-
-  var fs1 = new qx.ui.groupbox.GroupBox("Settings");
-  fs1.set({ left:4, top:40, right:4, bottom:4 });
-
-  var chk1 = new qx.ui.form.CheckBox("Show Icon");
-  chk1.set({ left:0, top:0, checked:true });
-  chk1.addEventListener("changeChecked", function(e) {
-    w2.setShowIcon(e.getData());
-  });
-
-  var chk2 = new qx.ui.form.CheckBox("Show Caption");
-  chk2.set({ left:0, top:20, checked:true });
-  chk2.addEventListener("changeChecked", function(e) {
-    w2.setShowCaption(e.getData());
-  });
-
-  var chk3 = new qx.ui.form.CheckBox("Resizeable");
-  chk3.set({ left:0, top:50, checked:true });
-  chk3.addEventListener("changeChecked", function(e) {
-    w2.setResizeable(e.getData());
-  });
-
-  var chk4 = new qx.ui.form.CheckBox("Moveable");
-  chk4.set({ left:0, top:70, checked:true });
-  chk4.addEventListener("changeChecked", function(e) {
-    w2.setMoveable(e.getData());
-  });
-
-  var chk5 = new qx.ui.form.CheckBox("Show Close");
-  chk5.set({ left:140, top:0, checked:true });
-  chk5.addEventListener("changeChecked", function(e) {
-    w2.setShowClose(e.getData());
-  });
-
-  var chk6 = new qx.ui.form.CheckBox("Show Maximize/Restore");
-  chk6.set({ left:140, top:20, checked:true });
-  chk6.addEventListener("changeChecked", function(e) {
-    w2.setShowMaximize(e.getData());
-  });
-
-  var chk7 = new qx.ui.form.CheckBox("Show Minimize");
-  chk7.set({ left:140, top:40, checked:true });
-  chk7.addEventListener("changeChecked", function(e) {
-    w2.setShowMinimize(e.getData());
-  });
-
-  var chk8 = new qx.ui.form.CheckBox("Allow Close");
-  chk8.set({ left:140, top:70, checked:true });
-  chk8.addEventListener("changeChecked", function(e) {
-    w2.setAllowClose(e.getData());
-  });
-
-  var chk9 = new qx.ui.form.CheckBox("Allow Maximize");
-  chk9.set({ left:140, top:90, checked:true });
-  chk9.addEventListener("changeChecked", function(e) {
-    w2.setAllowMaximize(e.getData());
-  });
-
-  var chk10 = new qx.ui.form.CheckBox("Allow Minimize");
-  chk10.set({ left:140, top:110, checked:true });
-  chk10.addEventListener("changeChecked", function(e) {
-    w2.setAllowMinimize(e.getData());
-  });
-
-  var l1 = new qx.ui.basic.Atom("Move Method", "icon/16/apps/preferences-desktop-wallpaper.png");
-  l1.setLocation(0, 100);
-
-  var rb1 = new qx.ui.form.RadioButton("Frame", "frame");
-  rb1.setLocation(0, 120);
-
-  var rb2 = new qx.ui.form.RadioButton("Opaque", "opaque");
-  rb2.setLocation(0, 140);
-  rb2.setChecked(true);
-
-  var rb3 = new qx.ui.form.RadioButton("Translucent", "translucent");
-  rb3.setLocation(0, 160);
-
-  var rbm1 = new qx.manager.selection.RadioManager("move", [rb1, rb2, rb3]);
-
-  rbm1.addEventListener("changeSelected", function(e) {
-    w2.setMoveMethod(e.getData().getValue());
-  });
-
-  var l2 = new qx.ui.basic.Atom("Resize Method", "icon/16/apps/preferences-desktop-wallpaper.png");
-  l2.setLocation(0, 190);
-
-  var rb4 = new qx.ui.form.RadioButton("Frame", "frame");
-  rb4.setLocation(0, 210);
-  rb4.setChecked(true);
-
-  var rb5 = new qx.ui.form.RadioButton("Opaque", "opaque");
-  rb5.setLocation(0, 230);
-
-  var rb6 = new qx.ui.form.RadioButton("Lazy Opaque", "lazyopaque");
-  rb6.setLocation(0, 250);
-
-  var rb7 = new qx.ui.form.RadioButton("Translucent", "translucent");
-  rb7.setLocation(0, 270);
-
-  var rbm2 = new qx.manager.selection.RadioManager("resize", [rb4, rb5, rb6, rb7]);
-
-  rbm2.addEventListener("changeSelected", function(e) {
-    w2.setResizeMethod(e.getData().getValue());
-  });
-
-  var chk11 = new qx.ui.form.CheckBox("Show Statusbar");
-  chk11.setLocation(140, 140);
-  chk11.setChecked(false);
-  chk11.addEventListener("changeChecked", function(e) {
-    w2.setShowStatusbar(e.getData());
-  });
-
-  var btnpack = new qx.ui.form.Button("Pack Window", "icon/16/devices/media-optical.png");
-  btnpack.setLocation(140, 170);
-  btnpack.addEventListener("execute", function(e) {
-    w2.pack();
-  });
-
-  fs1.add(chk1, chk2, chk3, chk4, chk5, chk6, chk7, chk8, chk9, chk10, l1, rb1, rb2, rb3, l2, rb4, rb5, rb6, rb7, chk11, btnpack);
-  w2.add(fs1);
-
-  // Fill window 3
-  var btn1 = new qx.ui.form.Button("Open Modal Dialog 1", "icon/16/actions/edit-find.png");
-  btn1.setLocation(4, 4);
-  w3.add(btn1);
-
-  btn1.addEventListener("execute", function(e) {
-    wm1.open();
-  });
-
-  // Fill modal window 1
-  var btn2 = new qx.ui.form.Button("Open Modal Dialog 2", "icon/16/actions/edit-find.png");
-  btn2.setLocation(4, 4);
-  wm1.add(btn2);
-
-  btn2.addEventListener("execute", function(e) {
-    wm2.open();
-  });
-
-  var chkm1 = new qx.ui.form.CheckBox("Modal", null, null, true);
-  chkm1.setLocation(4, 50);
-  wm1.add(chkm1);
-
-  chkm1.addEventListener("changeChecked", function(e) {
-    wm1.setModal(e.getData());
-  });
-
-  // Fill modal window 2
-  var icon1 = new qx.ui.basic.Image("icon/32/status/dialog-error.png");
-  var warn1 = new qx.ui.basic.Label("Do you want to delete<br/>all your personal data?");
-
-  icon1.setTop(10);
-  icon1.setLeft(10);
-
-  warn1.setTop(10);
-  warn1.setLeft(48);
-
-  var btn3 = new qx.ui.form.Button("Yes", "icon/16/actions/dialog-ok.png");
-  var btn4 = new qx.ui.form.Button("No", "icon/16/actions/dialog-cancel.png");
-
-  btn3.addEventListener("execute", function(e) {
-    alert("Thank you!");
-    wm2.close();
-  });
-
-  btn4.addEventListener("execute", function(e) {
-    alert("Sorry, please click 'Yes'!");
-  });
-
-  btn3.set({ bottom : 10, right : 10 });
-  btn4.set({ bottom : 10, left : 10 });
-
-  wm2.add(btn3, btn4, icon1, warn1);
-
-  // Icon & Color Themes
-  //qx.manager.object.ImageManager.getInstance().createThemeList(w3, 20, 248);
-  //qx.manager.object.ColorManager.getInstance().createThemeList(w3, 4, 58);
-
-  w1.open();
-  w2.open();
-  w3.open();
-
-  return main;
-}
-
-
-qx.Proto._createThemesDemo = function() {
-  var doc = qx.ui.core.ClientDocument.getInstance();
-
-  // Theming window
-  var win = new qx.ui.window.Window("Theming window", "icon/16/apps/preferences-desktop-wallpaper.png");
-  //win.set({ width:"auto", height:"auto" });
-  doc.add(win);
-
-  var vert = new qx.ui.layout.VerticalBoxLayout;
-  vert.set({ width:"auto", height:"auto", spacing:5, left:0, top:0, right:0, bottom:0 });
-  vert.setPadding(10);
-  win.add(vert);
-
-  var info = new qx.ui.basic.Atom("Click on one of the buttons and then view the "
-    + "other tabs to see the changes", "icon/32/actions/system-run.png");
-  //info.set({ border:qx.renderer.border.BorderPresets.getInstance().inset, backgroundColor:"white" });
-  info.setPadding(5);
-  vert.add(info);
-
-  var hor = new qx.ui.layout.HorizontalBoxLayout;
-  hor.set({ width:"auto", height:"auto", spacing:5 });
-  vert.add(hor);
-
-  var can = new qx.ui.layout.CanvasLayout;
-  can.set({ width:"auto", height:"auto" });
-  hor.add(can);
-  qx.manager.object.ImageManager.getInstance().createThemeList(can, 0, 0);
-
-  var can = new qx.ui.layout.CanvasLayout;
-  can.set({ width:"auto", height:"auto" });
-  hor.add(can);
-  qx.manager.object.ColorManager.getInstance().createThemeList(can, 0, 0);
-
-  // Put the window in lower right corner
-  win.set({ width:"auto", height:"auto" });
-
-  // Open button
-  var main = new qx.ui.layout.VerticalBoxLayout;
-  main.setPadding(10);
-  main.set({ width:"auto", height:"auto" });
-
-  var openThemeWinBt = new qx.ui.form.Button("Open theming window", "icon/16/actions/edit-find.png");
-  openThemeWinBt.addEventListener("execute", function(e) {
-    win.open();
-
-    // the following breaks in the current layouter
-    /*
-    win.setLeft(doc.getClientWidth() - win.getBoxWidth() - 5);
-    win.setTop(doc.getClientHeight() - win.getBoxHeight() - 5);
-    */
-
-    win.setLeft(doc.getClientWidth() - 500);
-    win.setTop(doc.getClientHeight() - 300);
-  });
-  main.add(openThemeWinBt);
-
-  return main;
-}
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/index.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/index.html
deleted file mode 100644 (file)
index 0882fb0..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>qooxdoo &raquo; Demo &raquo; Showcase</title>
-    <script type="text/javascript" src="script/showcase.js"></script>
-  </head>
-  <body>
-    <script type="text/javascript">
-      if (!qx.IS_SOURCE) {
-        qx.log.Logger.ROOT_LOGGER.setMinLevel(qx.log.Logger.LEVEL_ERROR);
-      }    
-      qx.core.Init.getInstance().setApplication(showcase.Application);
-    </script>
-  </body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/C.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/C.po
deleted file mode 100644 (file)
index 0e540ee..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-# (Default)
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo showcase\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 12:54+0100\n"
-"PO-Revision-Date: 2006-12-20 10:58+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ASCII\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: source/class/showcase/Application.js:871
-msgid "Choose a locale: "
-msgstr ""
-
-#: source/class/showcase/Application.js:890
-msgid "A date: "
-msgstr ""
-
-#: source/class/showcase/Application.js:917
-msgid "Undo"
-msgstr ""
-
-#: source/class/showcase/Application.js:918
-msgid "Redo"
-msgstr ""
-
-#: source/class/showcase/Application.js:920
-msgid "Cut"
-msgstr ""
-
-#: source/class/showcase/Application.js:921
-msgid "Copy"
-msgstr ""
-
-#: source/class/showcase/Application.js:922
-msgid "Paste"
-msgstr ""
-
-#: source/class/showcase/Application.js:923
-msgid "Delete"
-msgstr ""
-
-#: source/class/showcase/Application.js:924
-msgid "Select All"
-msgstr ""
-
-#: source/class/showcase/Application.js:926
-msgid "Search"
-msgstr ""
-
-#: source/class/showcase/Application.js:927
-msgid "Search Again"
-msgstr ""
-
-#: source/class/showcase/Application.js:930
-msgid "Command Menu (keyboard shortcuts)"
-msgstr ""
-
-#: source/class/showcase/Application.js:948
-msgid "Open Color Popup"
-msgstr ""
-
-#: source/class/showcase/Application.js:958
-msgid "Basic Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:962
-msgid "Template Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:966
-msgid "Recent Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:984
-msgid "Locale information"
-msgstr ""
-
-#: source/class/showcase/Application.js:1005
-msgid "Locale:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1008
-msgid "Territory code:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1011
-msgid "Date format medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1013
-msgid "Date medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1016
-msgid "Date format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1018
-msgid "Date long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1021
-msgid "Date format full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1023
-msgid "Date full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1026
-msgid "Time format short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1028
-msgid "Time short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1031
-msgid "Time format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1033
-msgid "Time long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1036
-msgid "Week start:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1039
-msgid "Format of %1:"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/ar.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/ar.po
deleted file mode 100644 (file)
index cae15d3..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-# Arabic
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo showcase\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 10:40+0100\n"
-"PO-Revision-Date: 2006-12-20 10:58+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ASCII\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: source/class/showcase/Application.js:875
-msgid "Choose a locale: "
-msgstr ""
-
-#: source/class/showcase/Application.js:894
-msgid "A date: "
-msgstr ""
-
-#: source/class/showcase/Application.js:921
-msgid "Undo"
-msgstr ""
-
-#: source/class/showcase/Application.js:922
-msgid "Redo"
-msgstr ""
-
-#: source/class/showcase/Application.js:924
-msgid "Cut"
-msgstr ""
-
-#: source/class/showcase/Application.js:925
-msgid "Copy"
-msgstr ""
-
-#: source/class/showcase/Application.js:926
-msgid "Paste"
-msgstr ""
-
-#: source/class/showcase/Application.js:927
-msgid "Delete"
-msgstr ""
-
-#: source/class/showcase/Application.js:928
-msgid "Select All"
-msgstr ""
-
-#: source/class/showcase/Application.js:930
-msgid "Search"
-msgstr ""
-
-#: source/class/showcase/Application.js:931
-msgid "Search Again"
-msgstr ""
-
-#: source/class/showcase/Application.js:934
-msgid "Command Menu (keyboard shortcuts)"
-msgstr ""
-
-#: source/class/showcase/Application.js:952
-msgid "Open Color Popup"
-msgstr ""
-
-#: source/class/showcase/Application.js:962
-msgid "Basic Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:966
-msgid "Template Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:970
-msgid "Recent Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:988
-msgid "Locale information"
-msgstr ""
-
-#: source/class/showcase/Application.js:1009
-msgid "Locale:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1012
-msgid "Territory code:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1015
-msgid "Date format medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1017
-msgid "Date medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1020
-msgid "Date format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1022
-msgid "Date long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1025
-msgid "Date format full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1027
-msgid "Date full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1030
-msgid "Time format short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1032
-msgid "Time short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1035
-msgid "Time format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1037
-msgid "Time long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1040
-msgid "Week start:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1043
-msgid "Format of %1:"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/de.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/de.po
deleted file mode 100644 (file)
index 20e93bb..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-# German
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo showcase\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 12:54+0100\n"
-"PO-Revision-Date: 2007-01-23 17:46+0100\n"
-"Last-Translator: Fabian Jakobs <fabian DOT jakobs AT 1und1 DOT de>\n"
-"Language-Team: German\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
-
-#: source/class/showcase/Application.js:871
-msgid "Choose a locale: "
-msgstr "Lokalisierung wählen"
-
-#: source/class/showcase/Application.js:890
-msgid "A date: "
-msgstr "Ein Datum:"
-
-#: source/class/showcase/Application.js:917
-msgid "Undo"
-msgstr "Rückgängig"
-
-#: source/class/showcase/Application.js:918
-msgid "Redo"
-msgstr "Wiederholen"
-
-#: source/class/showcase/Application.js:920
-msgid "Cut"
-msgstr "Aussschneiden"
-
-#: source/class/showcase/Application.js:921
-msgid "Copy"
-msgstr "Kopieren"
-
-#: source/class/showcase/Application.js:922
-msgid "Paste"
-msgstr "Einfügen"
-
-#: source/class/showcase/Application.js:923
-msgid "Delete"
-msgstr "Löschen"
-
-#: source/class/showcase/Application.js:924
-msgid "Select All"
-msgstr "Alles auswählen"
-
-#: source/class/showcase/Application.js:926
-msgid "Search"
-msgstr "Suchen"
-
-#: source/class/showcase/Application.js:927
-msgid "Search Again"
-msgstr "Weiter suchen"
-
-#: source/class/showcase/Application.js:930
-msgid "Command Menu (keyboard shortcuts)"
-msgstr "Command-Menü (Tastenkürzel)"
-
-#: source/class/showcase/Application.js:948
-msgid "Open Color Popup"
-msgstr "Öffne Farbauswahl"
-
-#: source/class/showcase/Application.js:958
-msgid "Basic Colors"
-msgstr "Grundfarben"
-
-#: source/class/showcase/Application.js:962
-msgid "Template Colors"
-msgstr "Beispielfarben"
-
-#: source/class/showcase/Application.js:966
-msgid "Recent Colors"
-msgstr "Vorherige Farben"
-
-#: source/class/showcase/Application.js:984
-msgid "Locale information"
-msgstr "Lokalisierungsinformationen:"
-
-#: source/class/showcase/Application.js:1005
-msgid "Locale:"
-msgstr "Sprachkennung:"
-
-#: source/class/showcase/Application.js:1008
-msgid "Territory code:"
-msgstr "Landeskennung:"
-
-#: source/class/showcase/Application.js:1011
-msgid "Date format medium:"
-msgstr "Mittellanges Datumsformat:"
-
-#: source/class/showcase/Application.js:1013
-msgid "Date medium:"
-msgstr "Mittellanges Datum:"
-
-#: source/class/showcase/Application.js:1016
-msgid "Date format long:"
-msgstr "Langes Datumsformat:"
-
-#: source/class/showcase/Application.js:1018
-msgid "Date long:"
-msgstr "Langes Datum:"
-
-#: source/class/showcase/Application.js:1021
-msgid "Date format full:"
-msgstr "Vollständiges Datumsformat:"
-
-#: source/class/showcase/Application.js:1023
-msgid "Date full:"
-msgstr "Vollständiges Datum:"
-
-#: source/class/showcase/Application.js:1026
-msgid "Time format short:"
-msgstr "kurzes Zeitformat:"
-
-#: source/class/showcase/Application.js:1028
-msgid "Time short:"
-msgstr "Zeit (kurz):"
-
-#: source/class/showcase/Application.js:1031
-msgid "Time format long:"
-msgstr "Langes Zeitformat:"
-
-#: source/class/showcase/Application.js:1033
-msgid "Time long:"
-msgstr "Zeit (lang):"
-
-#: source/class/showcase/Application.js:1036
-msgid "Week start:"
-msgstr "Wochenanfang:"
-
-#: source/class/showcase/Application.js:1039
-msgid "Format of %1:"
-msgstr "Format von %1:"
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/de_AT.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/de_AT.po
deleted file mode 100644 (file)
index 6c61661..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-# German (Austria)
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo showcase\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 10:40+0100\n"
-"PO-Revision-Date: 2006-12-20 10:58+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ASCII\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: source/class/showcase/Application.js:875
-msgid "Choose a locale: "
-msgstr ""
-
-#: source/class/showcase/Application.js:894
-msgid "A date: "
-msgstr ""
-
-#: source/class/showcase/Application.js:921
-msgid "Undo"
-msgstr ""
-
-#: source/class/showcase/Application.js:922
-msgid "Redo"
-msgstr ""
-
-#: source/class/showcase/Application.js:924
-msgid "Cut"
-msgstr ""
-
-#: source/class/showcase/Application.js:925
-msgid "Copy"
-msgstr ""
-
-#: source/class/showcase/Application.js:926
-msgid "Paste"
-msgstr ""
-
-#: source/class/showcase/Application.js:927
-msgid "Delete"
-msgstr ""
-
-#: source/class/showcase/Application.js:928
-msgid "Select All"
-msgstr ""
-
-#: source/class/showcase/Application.js:930
-msgid "Search"
-msgstr ""
-
-#: source/class/showcase/Application.js:931
-msgid "Search Again"
-msgstr ""
-
-#: source/class/showcase/Application.js:934
-msgid "Command Menu (keyboard shortcuts)"
-msgstr ""
-
-#: source/class/showcase/Application.js:952
-msgid "Open Color Popup"
-msgstr ""
-
-#: source/class/showcase/Application.js:962
-msgid "Basic Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:966
-msgid "Template Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:970
-msgid "Recent Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:988
-msgid "Locale information"
-msgstr ""
-
-#: source/class/showcase/Application.js:1009
-msgid "Locale:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1012
-msgid "Territory code:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1015
-msgid "Date format medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1017
-msgid "Date medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1020
-msgid "Date format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1022
-msgid "Date long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1025
-msgid "Date format full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1027
-msgid "Date full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1030
-msgid "Time format short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1032
-msgid "Time short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1035
-msgid "Time format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1037
-msgid "Time long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1040
-msgid "Week start:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1043
-msgid "Format of %1:"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/de_DE.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/de_DE.po
deleted file mode 100644 (file)
index dd69a16..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-# German (Germany)
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo showcase\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 12:54+0100\n"
-"PO-Revision-Date: 2006-12-20 10:58+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ASCII\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: source/class/showcase/Application.js:871
-msgid "Choose a locale: "
-msgstr ""
-
-#: source/class/showcase/Application.js:890
-msgid "A date: "
-msgstr ""
-
-#: source/class/showcase/Application.js:917
-msgid "Undo"
-msgstr ""
-
-#: source/class/showcase/Application.js:918
-msgid "Redo"
-msgstr ""
-
-#: source/class/showcase/Application.js:920
-msgid "Cut"
-msgstr ""
-
-#: source/class/showcase/Application.js:921
-msgid "Copy"
-msgstr ""
-
-#: source/class/showcase/Application.js:922
-msgid "Paste"
-msgstr ""
-
-#: source/class/showcase/Application.js:923
-msgid "Delete"
-msgstr ""
-
-#: source/class/showcase/Application.js:924
-msgid "Select All"
-msgstr ""
-
-#: source/class/showcase/Application.js:926
-msgid "Search"
-msgstr ""
-
-#: source/class/showcase/Application.js:927
-msgid "Search Again"
-msgstr ""
-
-#: source/class/showcase/Application.js:930
-msgid "Command Menu (keyboard shortcuts)"
-msgstr ""
-
-#: source/class/showcase/Application.js:948
-msgid "Open Color Popup"
-msgstr ""
-
-#: source/class/showcase/Application.js:958
-msgid "Basic Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:962
-msgid "Template Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:966
-msgid "Recent Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:984
-msgid "Locale information"
-msgstr ""
-
-#: source/class/showcase/Application.js:1005
-msgid "Locale:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1008
-msgid "Territory code:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1011
-msgid "Date format medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1013
-msgid "Date medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1016
-msgid "Date format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1018
-msgid "Date long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1021
-msgid "Date format full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1023
-msgid "Date full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1026
-msgid "Time format short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1028
-msgid "Time short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1031
-msgid "Time format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1033
-msgid "Time long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1036
-msgid "Week start:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1039
-msgid "Format of %1:"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/en.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/en.po
deleted file mode 100644 (file)
index 2be1f6d..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-# English
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo showcase\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 12:54+0100\n"
-"PO-Revision-Date: 2006-12-20 11:10+0100\n"
-"Language-Team: German <en@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
-
-#: source/class/showcase/Application.js:871
-msgid "Choose a locale: "
-msgstr ""
-
-#: source/class/showcase/Application.js:890
-msgid "A date: "
-msgstr ""
-
-#: source/class/showcase/Application.js:917
-msgid "Undo"
-msgstr ""
-
-#: source/class/showcase/Application.js:918
-msgid "Redo"
-msgstr ""
-
-#: source/class/showcase/Application.js:920
-msgid "Cut"
-msgstr ""
-
-#: source/class/showcase/Application.js:921
-msgid "Copy"
-msgstr ""
-
-#: source/class/showcase/Application.js:922
-msgid "Paste"
-msgstr ""
-
-#: source/class/showcase/Application.js:923
-msgid "Delete"
-msgstr ""
-
-#: source/class/showcase/Application.js:924
-msgid "Select All"
-msgstr ""
-
-#: source/class/showcase/Application.js:926
-msgid "Search"
-msgstr ""
-
-#: source/class/showcase/Application.js:927
-msgid "Search Again"
-msgstr ""
-
-#: source/class/showcase/Application.js:930
-msgid "Command Menu (keyboard shortcuts)"
-msgstr ""
-
-#: source/class/showcase/Application.js:948
-msgid "Open Color Popup"
-msgstr ""
-
-#: source/class/showcase/Application.js:958
-msgid "Basic Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:962
-msgid "Template Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:966
-msgid "Recent Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:984
-msgid "Locale information"
-msgstr ""
-
-#: source/class/showcase/Application.js:1005
-msgid "Locale:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1008
-msgid "Territory code:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1011
-msgid "Date format medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1013
-msgid "Date medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1016
-msgid "Date format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1018
-msgid "Date long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1021
-msgid "Date format full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1023
-msgid "Date full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1026
-msgid "Time format short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1028
-msgid "Time short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1031
-msgid "Time format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1033
-msgid "Time long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1036
-msgid "Week start:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1039
-msgid "Format of %1:"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/en_US.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/en_US.po
deleted file mode 100644 (file)
index cce67eb..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-# English (US)
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo showcase\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 12:54+0100\n"
-"PO-Revision-Date: 2006-12-20 10:58+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ASCII\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: source/class/showcase/Application.js:871
-msgid "Choose a locale: "
-msgstr ""
-
-#: source/class/showcase/Application.js:890
-msgid "A date: "
-msgstr ""
-
-#: source/class/showcase/Application.js:917
-msgid "Undo"
-msgstr ""
-
-#: source/class/showcase/Application.js:918
-msgid "Redo"
-msgstr ""
-
-#: source/class/showcase/Application.js:920
-msgid "Cut"
-msgstr ""
-
-#: source/class/showcase/Application.js:921
-msgid "Copy"
-msgstr ""
-
-#: source/class/showcase/Application.js:922
-msgid "Paste"
-msgstr ""
-
-#: source/class/showcase/Application.js:923
-msgid "Delete"
-msgstr ""
-
-#: source/class/showcase/Application.js:924
-msgid "Select All"
-msgstr ""
-
-#: source/class/showcase/Application.js:926
-msgid "Search"
-msgstr ""
-
-#: source/class/showcase/Application.js:927
-msgid "Search Again"
-msgstr ""
-
-#: source/class/showcase/Application.js:930
-msgid "Command Menu (keyboard shortcuts)"
-msgstr ""
-
-#: source/class/showcase/Application.js:948
-msgid "Open Color Popup"
-msgstr ""
-
-#: source/class/showcase/Application.js:958
-msgid "Basic Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:962
-msgid "Template Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:966
-msgid "Recent Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:984
-msgid "Locale information"
-msgstr ""
-
-#: source/class/showcase/Application.js:1005
-msgid "Locale:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1008
-msgid "Territory code:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1011
-msgid "Date format medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1013
-msgid "Date medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1016
-msgid "Date format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1018
-msgid "Date long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1021
-msgid "Date format full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1023
-msgid "Date full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1026
-msgid "Time format short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1028
-msgid "Time short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1031
-msgid "Time format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1033
-msgid "Time long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1036
-msgid "Week start:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1039
-msgid "Format of %1:"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/es.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/es.po
deleted file mode 100644 (file)
index 194372a..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-# Spanish
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo showcase\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 12:54+0100\n"
-"PO-Revision-Date: 2007-01-25 08:03+0100\n"
-"Last-Translator: Carsten Rammoser <carsten@rammoser.com>\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: source/class/showcase/Application.js:871
-msgid "Choose a locale: "
-msgstr "Selecciona localisación:"
-
-#: source/class/showcase/Application.js:890
-msgid "A date: "
-msgstr "Una fecha:"
-
-#: source/class/showcase/Application.js:917
-msgid "Undo"
-msgstr "Deshacer"
-
-#: source/class/showcase/Application.js:918
-msgid "Redo"
-msgstr "Rehacer"
-
-#: source/class/showcase/Application.js:920
-msgid "Cut"
-msgstr "Cortar"
-
-#: source/class/showcase/Application.js:921
-msgid "Copy"
-msgstr "Copiar"
-
-#: source/class/showcase/Application.js:922
-msgid "Paste"
-msgstr "Pegar"
-
-#: source/class/showcase/Application.js:923
-msgid "Delete"
-msgstr "Borrar"
-
-#: source/class/showcase/Application.js:924
-msgid "Select All"
-msgstr "Seleccionar todo"
-
-#: source/class/showcase/Application.js:926
-msgid "Search"
-msgstr "Búsqueda"
-
-#: source/class/showcase/Application.js:927
-msgid "Search Again"
-msgstr "Buscar otra vez"
-
-#: source/class/showcase/Application.js:930
-msgid "Command Menu (keyboard shortcuts)"
-msgstr "Menú de comando (claves del teclado)"
-
-#: source/class/showcase/Application.js:948
-#, fuzzy
-msgid "Open Color Popup"
-msgstr "Abrir ventana de color"
-
-#: source/class/showcase/Application.js:958
-msgid "Basic Colors"
-msgstr "Colores básicos"
-
-#: source/class/showcase/Application.js:962
-#, fuzzy
-msgid "Template Colors"
-msgstr "Colores de fondo"
-
-#: source/class/showcase/Application.js:966
-msgid "Recent Colors"
-msgstr "Últimos colores"
-
-#: source/class/showcase/Application.js:984
-msgid "Locale information"
-msgstr "Información de la localisación"
-
-#: source/class/showcase/Application.js:1005
-msgid "Locale:"
-msgstr "Localisación:"
-
-#: source/class/showcase/Application.js:1008
-msgid "Territory code:"
-msgstr "Código regional:"
-
-#: source/class/showcase/Application.js:1011
-msgid "Date format medium:"
-msgstr "Formato de fecha mediano:"
-
-#: source/class/showcase/Application.js:1013
-msgid "Date medium:"
-msgstr "Fecha mediano:"
-
-#: source/class/showcase/Application.js:1016
-msgid "Date format long:"
-msgstr "Formato de fecha largo:"
-
-#: source/class/showcase/Application.js:1018
-msgid "Date long:"
-msgstr "Fecha largo:"
-
-#: source/class/showcase/Application.js:1021
-msgid "Date format full:"
-msgstr "Formato de fecha completo:"
-
-#: source/class/showcase/Application.js:1023
-msgid "Date full:"
-msgstr "Fecha completo:"
-
-#: source/class/showcase/Application.js:1026
-msgid "Time format short:"
-msgstr "Formato de hora corto:"
-
-#: source/class/showcase/Application.js:1028
-msgid "Time short:"
-msgstr "Hora corto:"
-
-#: source/class/showcase/Application.js:1031
-msgid "Time format long:"
-msgstr "Formato de hora largo:"
-
-#: source/class/showcase/Application.js:1033
-msgid "Time long:"
-msgstr "Hora largo:"
-
-#: source/class/showcase/Application.js:1036
-msgid "Week start:"
-msgstr "Inicio de semana:"
-
-#: source/class/showcase/Application.js:1039
-#, fuzzy
-msgid "Format of %1:"
-msgstr "Formato de %1:"
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/es_ES.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/es_ES.po
deleted file mode 100644 (file)
index 982136d..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-# Spanish (Spain)
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo showcase\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 12:54+0100\n"
-"PO-Revision-Date: 2006-12-20 10:58+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ASCII\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: source/class/showcase/Application.js:871
-msgid "Choose a locale: "
-msgstr ""
-
-#: source/class/showcase/Application.js:890
-msgid "A date: "
-msgstr ""
-
-#: source/class/showcase/Application.js:917
-msgid "Undo"
-msgstr ""
-
-#: source/class/showcase/Application.js:918
-msgid "Redo"
-msgstr ""
-
-#: source/class/showcase/Application.js:920
-msgid "Cut"
-msgstr ""
-
-#: source/class/showcase/Application.js:921
-msgid "Copy"
-msgstr ""
-
-#: source/class/showcase/Application.js:922
-msgid "Paste"
-msgstr ""
-
-#: source/class/showcase/Application.js:923
-msgid "Delete"
-msgstr ""
-
-#: source/class/showcase/Application.js:924
-msgid "Select All"
-msgstr ""
-
-#: source/class/showcase/Application.js:926
-msgid "Search"
-msgstr ""
-
-#: source/class/showcase/Application.js:927
-msgid "Search Again"
-msgstr ""
-
-#: source/class/showcase/Application.js:930
-msgid "Command Menu (keyboard shortcuts)"
-msgstr ""
-
-#: source/class/showcase/Application.js:948
-msgid "Open Color Popup"
-msgstr ""
-
-#: source/class/showcase/Application.js:958
-msgid "Basic Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:962
-msgid "Template Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:966
-msgid "Recent Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:984
-msgid "Locale information"
-msgstr ""
-
-#: source/class/showcase/Application.js:1005
-msgid "Locale:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1008
-msgid "Territory code:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1011
-msgid "Date format medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1013
-msgid "Date medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1016
-msgid "Date format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1018
-msgid "Date long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1021
-msgid "Date format full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1023
-msgid "Date full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1026
-msgid "Time format short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1028
-msgid "Time short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1031
-msgid "Time format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1033
-msgid "Time long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1036
-msgid "Week start:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1039
-msgid "Format of %1:"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/fr.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/fr.po
deleted file mode 100644 (file)
index 09c3a95..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-# French
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo showcase\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 12:54+0100\n"
-"PO-Revision-Date: 2006-12-20 10:58+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ASCII\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: source/class/showcase/Application.js:871
-msgid "Choose a locale: "
-msgstr ""
-
-#: source/class/showcase/Application.js:890
-msgid "A date: "
-msgstr ""
-
-#: source/class/showcase/Application.js:917
-msgid "Undo"
-msgstr ""
-
-#: source/class/showcase/Application.js:918
-msgid "Redo"
-msgstr ""
-
-#: source/class/showcase/Application.js:920
-msgid "Cut"
-msgstr ""
-
-#: source/class/showcase/Application.js:921
-msgid "Copy"
-msgstr ""
-
-#: source/class/showcase/Application.js:922
-msgid "Paste"
-msgstr ""
-
-#: source/class/showcase/Application.js:923
-msgid "Delete"
-msgstr ""
-
-#: source/class/showcase/Application.js:924
-msgid "Select All"
-msgstr ""
-
-#: source/class/showcase/Application.js:926
-msgid "Search"
-msgstr ""
-
-#: source/class/showcase/Application.js:927
-msgid "Search Again"
-msgstr ""
-
-#: source/class/showcase/Application.js:930
-msgid "Command Menu (keyboard shortcuts)"
-msgstr ""
-
-#: source/class/showcase/Application.js:948
-msgid "Open Color Popup"
-msgstr ""
-
-#: source/class/showcase/Application.js:958
-msgid "Basic Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:962
-msgid "Template Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:966
-msgid "Recent Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:984
-msgid "Locale information"
-msgstr ""
-
-#: source/class/showcase/Application.js:1005
-msgid "Locale:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1008
-msgid "Territory code:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1011
-msgid "Date format medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1013
-msgid "Date medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1016
-msgid "Date format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1018
-msgid "Date long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1021
-msgid "Date format full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1023
-msgid "Date full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1026
-msgid "Time format short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1028
-msgid "Time short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1031
-msgid "Time format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1033
-msgid "Time long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1036
-msgid "Week start:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1039
-msgid "Format of %1:"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/fr_FR.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/fr_FR.po
deleted file mode 100644 (file)
index cfde15f..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-# French (France)
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo showcase\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 12:54+0100\n"
-"PO-Revision-Date: 2006-12-20 10:58+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ASCII\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: source/class/showcase/Application.js:871
-msgid "Choose a locale: "
-msgstr ""
-
-#: source/class/showcase/Application.js:890
-msgid "A date: "
-msgstr ""
-
-#: source/class/showcase/Application.js:917
-msgid "Undo"
-msgstr ""
-
-#: source/class/showcase/Application.js:918
-msgid "Redo"
-msgstr ""
-
-#: source/class/showcase/Application.js:920
-msgid "Cut"
-msgstr ""
-
-#: source/class/showcase/Application.js:921
-msgid "Copy"
-msgstr ""
-
-#: source/class/showcase/Application.js:922
-msgid "Paste"
-msgstr ""
-
-#: source/class/showcase/Application.js:923
-msgid "Delete"
-msgstr ""
-
-#: source/class/showcase/Application.js:924
-msgid "Select All"
-msgstr ""
-
-#: source/class/showcase/Application.js:926
-msgid "Search"
-msgstr ""
-
-#: source/class/showcase/Application.js:927
-msgid "Search Again"
-msgstr ""
-
-#: source/class/showcase/Application.js:930
-msgid "Command Menu (keyboard shortcuts)"
-msgstr ""
-
-#: source/class/showcase/Application.js:948
-msgid "Open Color Popup"
-msgstr ""
-
-#: source/class/showcase/Application.js:958
-msgid "Basic Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:962
-msgid "Template Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:966
-msgid "Recent Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:984
-msgid "Locale information"
-msgstr ""
-
-#: source/class/showcase/Application.js:1005
-msgid "Locale:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1008
-msgid "Territory code:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1011
-msgid "Date format medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1013
-msgid "Date medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1016
-msgid "Date format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1018
-msgid "Date long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1021
-msgid "Date format full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1023
-msgid "Date full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1026
-msgid "Time format short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1028
-msgid "Time short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1031
-msgid "Time format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1033
-msgid "Time long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1036
-msgid "Week start:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1039
-msgid "Format of %1:"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/it.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/it.po
deleted file mode 100644 (file)
index 7dcc1ed..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-# Italian
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo showcase\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 10:40+0100\n"
-"PO-Revision-Date: 2006-12-22 22:06+0100\n"
-"Last-Translator: Alessandro Sala <alessandro.sala@mclink.net>\n"
-"Language-Team: Italiano <it@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
-"X-Generator: KBabel 1.11.4\n"
-
-#: source/class/showcase/Application.js:875
-msgid "Choose a locale: "
-msgstr "Scegli una localizzazione:"
-
-#: source/class/showcase/Application.js:894
-msgid "A date: "
-msgstr "Una data:"
-
-#: source/class/showcase/Application.js:921
-msgid "Undo"
-msgstr "Annulla"
-
-#: source/class/showcase/Application.js:922
-msgid "Redo"
-msgstr "Ripeti"
-
-#: source/class/showcase/Application.js:924
-msgid "Cut"
-msgstr "Taglia"
-
-#: source/class/showcase/Application.js:925
-msgid "Copy"
-msgstr "Copia"
-
-#: source/class/showcase/Application.js:926
-msgid "Paste"
-msgstr "Incolla"
-
-#: source/class/showcase/Application.js:927
-msgid "Delete"
-msgstr "Cancella"
-
-#: source/class/showcase/Application.js:928
-msgid "Select All"
-msgstr "Seleziona tutto"
-
-#: source/class/showcase/Application.js:930
-msgid "Search"
-msgstr "Cerca"
-
-#: source/class/showcase/Application.js:931
-msgid "Search Again"
-msgstr "Carca ancora"
-
-#: source/class/showcase/Application.js:934
-msgid "Command Menu (keyboard shortcuts)"
-msgstr "Menu dei comandi (abbreviazioni da tastiera)"
-
-#: source/class/showcase/Application.js:952
-msgid "Open Color Popup"
-msgstr "Apri il selettore dei colori"
-
-#: source/class/showcase/Application.js:962
-msgid "Basic Colors"
-msgstr "Colori Base"
-
-#: source/class/showcase/Application.js:966
-msgid "Template Colors"
-msgstr "Colori Modello"
-
-#: source/class/showcase/Application.js:970
-msgid "Recent Colors"
-msgstr "Colori Recenti"
-
-#: source/class/showcase/Application.js:988
-msgid "Locale information"
-msgstr "Informazione sulla localizzazione"
-
-#: source/class/showcase/Application.js:1009
-msgid "Locale:"
-msgstr "Localizzazione:"
-
-#: source/class/showcase/Application.js:1012
-msgid "Territory code:"
-msgstr "Codice del territorio:"
-
-#: source/class/showcase/Application.js:1015
-msgid "Date format medium:"
-msgstr "Formato data medio:"
-
-#: source/class/showcase/Application.js:1017
-msgid "Date medium:"
-msgstr "Data in formato medio:"
-
-#: source/class/showcase/Application.js:1020
-msgid "Date format long:"
-msgstr "Formato data lungo:"
-
-#: source/class/showcase/Application.js:1022
-msgid "Date long:"
-msgstr "Data in formato lungo:"
-
-#: source/class/showcase/Application.js:1025
-msgid "Date format full:"
-msgstr "Formato data completo:"
-
-#: source/class/showcase/Application.js:1027
-msgid "Date full:"
-msgstr "Data in formato completo:"
-
-#: source/class/showcase/Application.js:1030
-msgid "Time format short:"
-msgstr "Formato orario breve:"
-
-#: source/class/showcase/Application.js:1032
-msgid "Time short:"
-msgstr "Orario in formato breve:"
-
-#: source/class/showcase/Application.js:1035
-msgid "Time format long:"
-msgstr "Formato orario lungo:"
-
-#: source/class/showcase/Application.js:1037
-msgid "Time long:"
-msgstr "Orario in formato lungo:"
-
-#: source/class/showcase/Application.js:1040
-msgid "Week start:"
-msgstr "Inizio della settimana:"
-
-#: source/class/showcase/Application.js:1043
-msgid "Format of %1:"
-msgstr "Formato di %1"
-
-#~ msgid "Locale: "
-#~ msgstr "Localizzazione:"
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/ru.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/ru.po
deleted file mode 100644 (file)
index 3273aae..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-# Russian
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo showcase\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 10:40+0100\n"
-"PO-Revision-Date: 2006-12-21 08:25+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ASCII\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: source/class/showcase/Application.js:875
-msgid "Choose a locale: "
-msgstr ""
-
-#: source/class/showcase/Application.js:894
-msgid "A date: "
-msgstr ""
-
-#: source/class/showcase/Application.js:921
-msgid "Undo"
-msgstr ""
-
-#: source/class/showcase/Application.js:922
-msgid "Redo"
-msgstr ""
-
-#: source/class/showcase/Application.js:924
-msgid "Cut"
-msgstr ""
-
-#: source/class/showcase/Application.js:925
-msgid "Copy"
-msgstr ""
-
-#: source/class/showcase/Application.js:926
-msgid "Paste"
-msgstr ""
-
-#: source/class/showcase/Application.js:927
-msgid "Delete"
-msgstr ""
-
-#: source/class/showcase/Application.js:928
-msgid "Select All"
-msgstr ""
-
-#: source/class/showcase/Application.js:930
-msgid "Search"
-msgstr ""
-
-#: source/class/showcase/Application.js:931
-msgid "Search Again"
-msgstr ""
-
-#: source/class/showcase/Application.js:934
-msgid "Command Menu (keyboard shortcuts)"
-msgstr ""
-
-#: source/class/showcase/Application.js:952
-msgid "Open Color Popup"
-msgstr ""
-
-#: source/class/showcase/Application.js:962
-msgid "Basic Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:966
-msgid "Template Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:970
-msgid "Recent Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:988
-msgid "Locale information"
-msgstr ""
-
-#: source/class/showcase/Application.js:1009
-msgid "Locale:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1012
-msgid "Territory code:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1015
-msgid "Date format medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1017
-msgid "Date medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1020
-msgid "Date format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1022
-msgid "Date long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1025
-msgid "Date format full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1027
-msgid "Date full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1030
-msgid "Time format short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1032
-msgid "Time short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1035
-msgid "Time format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1037
-msgid "Time long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1040
-msgid "Week start:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1043
-msgid "Format of %1:"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/sv.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/sv.po
deleted file mode 100644 (file)
index d7b4e79..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-# Swedish
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo showcase\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 10:40+0100\n"
-"PO-Revision-Date: 2006-12-20 10:58+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ASCII\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: source/class/showcase/Application.js:875
-msgid "Choose a locale: "
-msgstr ""
-
-#: source/class/showcase/Application.js:894
-msgid "A date: "
-msgstr ""
-
-#: source/class/showcase/Application.js:921
-msgid "Undo"
-msgstr ""
-
-#: source/class/showcase/Application.js:922
-msgid "Redo"
-msgstr ""
-
-#: source/class/showcase/Application.js:924
-msgid "Cut"
-msgstr ""
-
-#: source/class/showcase/Application.js:925
-msgid "Copy"
-msgstr ""
-
-#: source/class/showcase/Application.js:926
-msgid "Paste"
-msgstr ""
-
-#: source/class/showcase/Application.js:927
-msgid "Delete"
-msgstr ""
-
-#: source/class/showcase/Application.js:928
-msgid "Select All"
-msgstr ""
-
-#: source/class/showcase/Application.js:930
-msgid "Search"
-msgstr ""
-
-#: source/class/showcase/Application.js:931
-msgid "Search Again"
-msgstr ""
-
-#: source/class/showcase/Application.js:934
-msgid "Command Menu (keyboard shortcuts)"
-msgstr ""
-
-#: source/class/showcase/Application.js:952
-msgid "Open Color Popup"
-msgstr ""
-
-#: source/class/showcase/Application.js:962
-msgid "Basic Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:966
-msgid "Template Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:970
-msgid "Recent Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:988
-msgid "Locale information"
-msgstr ""
-
-#: source/class/showcase/Application.js:1009
-msgid "Locale:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1012
-msgid "Territory code:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1015
-msgid "Date format medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1017
-msgid "Date medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1020
-msgid "Date format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1022
-msgid "Date long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1025
-msgid "Date format full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1027
-msgid "Date full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1030
-msgid "Time format short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1032
-msgid "Time short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1035
-msgid "Time format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1037
-msgid "Time long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1040
-msgid "Week start:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1043
-msgid "Format of %1:"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/tr.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/tr.po
deleted file mode 100644 (file)
index 2c70c71..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-# Turkish
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo showcase\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 10:40+0100\n"
-"PO-Revision-Date: 2006-12-20 10:58+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ASCII\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: source/class/showcase/Application.js:875
-msgid "Choose a locale: "
-msgstr ""
-
-#: source/class/showcase/Application.js:894
-msgid "A date: "
-msgstr ""
-
-#: source/class/showcase/Application.js:921
-msgid "Undo"
-msgstr ""
-
-#: source/class/showcase/Application.js:922
-msgid "Redo"
-msgstr ""
-
-#: source/class/showcase/Application.js:924
-msgid "Cut"
-msgstr ""
-
-#: source/class/showcase/Application.js:925
-msgid "Copy"
-msgstr ""
-
-#: source/class/showcase/Application.js:926
-msgid "Paste"
-msgstr ""
-
-#: source/class/showcase/Application.js:927
-msgid "Delete"
-msgstr ""
-
-#: source/class/showcase/Application.js:928
-msgid "Select All"
-msgstr ""
-
-#: source/class/showcase/Application.js:930
-msgid "Search"
-msgstr ""
-
-#: source/class/showcase/Application.js:931
-msgid "Search Again"
-msgstr ""
-
-#: source/class/showcase/Application.js:934
-msgid "Command Menu (keyboard shortcuts)"
-msgstr ""
-
-#: source/class/showcase/Application.js:952
-msgid "Open Color Popup"
-msgstr ""
-
-#: source/class/showcase/Application.js:962
-msgid "Basic Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:966
-msgid "Template Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:970
-msgid "Recent Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:988
-msgid "Locale information"
-msgstr ""
-
-#: source/class/showcase/Application.js:1009
-msgid "Locale:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1012
-msgid "Territory code:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1015
-msgid "Date format medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1017
-msgid "Date medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1020
-msgid "Date format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1022
-msgid "Date long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1025
-msgid "Date format full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1027
-msgid "Date full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1030
-msgid "Time format short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1032
-msgid "Time short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1035
-msgid "Time format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1037
-msgid "Time long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1040
-msgid "Week start:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1043
-msgid "Format of %1:"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/zh.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/showcase/source/translation/zh.po
deleted file mode 100644 (file)
index 37f7df2..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-# Chinese
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo showcase\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 10:40+0100\n"
-"PO-Revision-Date: 2006-12-20 10:58+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ASCII\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: source/class/showcase/Application.js:875
-msgid "Choose a locale: "
-msgstr ""
-
-#: source/class/showcase/Application.js:894
-msgid "A date: "
-msgstr ""
-
-#: source/class/showcase/Application.js:921
-msgid "Undo"
-msgstr ""
-
-#: source/class/showcase/Application.js:922
-msgid "Redo"
-msgstr ""
-
-#: source/class/showcase/Application.js:924
-msgid "Cut"
-msgstr ""
-
-#: source/class/showcase/Application.js:925
-msgid "Copy"
-msgstr ""
-
-#: source/class/showcase/Application.js:926
-msgid "Paste"
-msgstr ""
-
-#: source/class/showcase/Application.js:927
-msgid "Delete"
-msgstr ""
-
-#: source/class/showcase/Application.js:928
-msgid "Select All"
-msgstr ""
-
-#: source/class/showcase/Application.js:930
-msgid "Search"
-msgstr ""
-
-#: source/class/showcase/Application.js:931
-msgid "Search Again"
-msgstr ""
-
-#: source/class/showcase/Application.js:934
-msgid "Command Menu (keyboard shortcuts)"
-msgstr ""
-
-#: source/class/showcase/Application.js:952
-msgid "Open Color Popup"
-msgstr ""
-
-#: source/class/showcase/Application.js:962
-msgid "Basic Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:966
-msgid "Template Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:970
-msgid "Recent Colors"
-msgstr ""
-
-#: source/class/showcase/Application.js:988
-msgid "Locale information"
-msgstr ""
-
-#: source/class/showcase/Application.js:1009
-msgid "Locale:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1012
-msgid "Territory code:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1015
-msgid "Date format medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1017
-msgid "Date medium:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1020
-msgid "Date format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1022
-msgid "Date long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1025
-msgid "Date format full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1027
-msgid "Date full:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1030
-msgid "Time format short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1032
-msgid "Time short:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1035
-msgid "Time format long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1037
-msgid "Time long:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1040
-msgid "Week start:"
-msgstr ""
-
-#: source/class/showcase/Application.js:1043
-msgid "Format of %1:"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/Makefile b/webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/Makefile
deleted file mode 100644 (file)
index 32800d0..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Andreas Ecker (ecker)
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-################################################################################
-# BASIC SETTINGS
-################################################################################
-
-#
-# Location of your qooxdoo distribution
-# Could be relative from this location or absolute
-#
-QOOXDOO_PATH = ../../..
-
-#
-# The same as above, but from the webserver point of view
-# Starting point is the application HTML file of the source folder.
-# In most cases just add a "/.." compared to above
-#
-QOOXDOO_URI = ../../../..
-
-#
-# Namespace of your application e.g. custom
-#
-APPLICATION_NAMESPACE = webmail
-
-#
-# Titles used in your API viewer and during the build process
-#
-APPLICATION_MAKE_TITLE = WEBMAIL
-APPLICATION_API_TITLE = WebMail
-
-#
-# Additional files (space separated list)
-#
-APPLICATION_FILES = index.html
-
-#
-# XHTML support
-#
-APPLICATION_TEMPLATE_INPUT = index.xhtml.tmpl
-APPLICATION_TEMPLATE_OUTPUT = index.xhtml
-
-
-
-
-
-################################################################################
-# ADVANCED SETTINGS
-################################################################################
-
-#
-# Enable resource filtering in API viewer
-#
-APPLICATION_RESOURCE_FILTER = true
-
-#
-# We don't need the full source code
-#
-APPLICATION_COMPLETE_SOURCE = false
-
-#
-# Disable line breaks
-#
-APPLICATION_LINEBREAKS_BUILD = false
-APPLICATION_LINEBREAKS_SOURCE = false
-
-#
-# qooxdoo.org sync
-#
-APPLICATION_PUBLISH_PATH = root@qooxdoo.org:/var/www/qooxdoo/demo/$(FRAMEWORK_VERSION)/$(APPLICATION_NAMESPACE)
-
-
-
-
-
-################################################################################
-# INCLUDE CORE
-################################################################################
-
-ifneq ($(QOOXDOO_PATH),PLEASE_DEFINE_QOOXDOO_PATH)
-       include $(QOOXDOO_PATH)/frontend/framework/tool/make/targets.mk
-       include $(QOOXDOO_PATH)/frontend/framework/tool/make/application.mk
-endif
-
-error:
-       @echo "  * Please configure QOOXDOO_PATH"
-
-distclean:
-       @rm -f source/index.xhtml
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/source/class/webmail/Application.js b/webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/source/class/webmail/Application.js
deleted file mode 100644 (file)
index e8e1ffb..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#embed(qx.icontheme/16/categories/applications-internet.png)
-#embed(qx.icontheme/16/actions/mail.png)
-#embed(qx.icontheme/16/actions/system-run.png)
-#embed(qx.icontheme/16/apps/accessories-notes.png)
-
-************************************************************************ */
-
-
-/**
- * A small example how a webmail application can look and feel using qooxdoo.
- */
-qx.OO.defineClass("webmail.Application", qx.component.AbstractApplication,
-function () {
-  qx.component.AbstractApplication.call(this);
-});
-
-
-/*
----------------------------------------------------------------------------
-  METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.main = function(e)
-{
-  var doc = qx.ui.core.ClientDocument.getInstance();
-
-  var dockLayout = new qx.ui.layout.DockLayout;
-
-  dockLayout.setLocation(0, 0);
-  dockLayout.setDimension(800, 600);
-  dockLayout.setBackgroundColor("white");
-
-  doc.add(dockLayout);
-
-  var menubar = new qx.ui.menubar.MenuBar;
-  var toolbar = new qx.ui.toolbar.ToolBar;
-  var tree = new qx.ui.tree.Tree("Inbox");
-  var status = new qx.ui.basic.Atom("Status", "icon/16/categories/applications-internet.png");
-
-  tree.setWidth(200);
-  tree.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-  tree.add(new qx.ui.tree.TreeFolder("Drafts"));
-  tree.add(new qx.ui.tree.TreeFolder("Sent"));
-  tree.add(new qx.ui.tree.TreeFolder("Trash"));
-  tree.add(new qx.ui.tree.TreeFolder("Junk"));
-
-  status.setWidth(null);
-  status.setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
-  status.setHorizontalChildrenAlign("left");
-  status.setPadding(2, 4);
-  status.setBackgroundColor("threedface");
-
-  dockLayout.addTop(menubar);
-  dockLayout.addTop(toolbar);
-  dockLayout.addBottom(status);
-  dockLayout.addLeft(tree);
-
-
-
-  var btns = [
-    { text : "New", icon : "icon/16/actions/mail.png" },
-    { text : "Send/Receive", icon : "icon/16/actions/system-run.png" },
-    { text : "Adressbook", icon : "icon/16/apps/accessories-notes.png" }
-  ];
-
-  for (var i=0; i<btns.length; i++) {
-    toolbar.add(new qx.ui.toolbar.Button(btns[i].text, btns[i].icon));
-  };
-
-
-
-  var filemnu = new qx.ui.menu.Menu;
-  var editmnu = new qx.ui.menu.Menu;
-  var optimnu = new qx.ui.menu.Menu;
-  var helpmnu = new qx.ui.menu.Menu;
-
-  filemnu.add(new qx.ui.menu.Button("New Mail"));
-  filemnu.add(new qx.ui.menu.Button("Exit"));
-
-  editmnu.add(new qx.ui.menu.Button("Cut"));
-  editmnu.add(new qx.ui.menu.Button("Copy"));
-  editmnu.add(new qx.ui.menu.Button("Paste"));
-
-  optimnu.add(new qx.ui.menu.Button("View"));
-  optimnu.add(new qx.ui.menu.Button("Settings"));
-
-  helpmnu.add(new qx.ui.menu.Button("Help"));
-  helpmnu.add(new qx.ui.menu.Button("About"));
-
-  var filemn = new qx.ui.menubar.Button("File", filemnu);
-  var editmn = new qx.ui.menubar.Button("Edit", editmnu);
-  var optimn = new qx.ui.menubar.Button("Options", optimnu);
-  var helpmn = new qx.ui.menubar.Button("Help", helpmnu);
-
-  menubar.add(filemn, editmn, optimn, new qx.ui.basic.HorizontalSpacer, helpmn);
-  doc.add(filemnu, editmnu, optimnu, helpmnu);
-
-
-
-  var ld = [];
-  var lt = [ "Image", "Text", "PDF", "Illustration", "Document" ];
-
-  for (var i=0, t; i<333; i++)
-  {
-    t=Math.round(Math.random()*4);
-    ld.push({ subject : { text : "Subject " + i }, from : { text : "qooxdoo User" }, date : { text : "01/26/2006" }});
-  };
-
-  var lc =
-  {
-    subject : { label : "Subject", width : 200, type : "text" },
-    from : { label : "From", width : 100, type : "text" },
-    date: { label : "Date", width : 100, type : "text" }
-  };
-
-  var view = new qx.ui.listview.ListView(ld, lc);
-
-  view.setLocation(200, 47);
-  view.setDimension(600, 530);
-  view.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-
-  doc.add(view);
-};
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/source/index.html b/webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/source/index.html
deleted file mode 100644 (file)
index 0eb9df0..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>qooxdoo &raquo; Demo &raquo; Web Mail</title>
-    <script type="text/javascript" src="script/webmail.js"></script>
-  </head>
-  <body>
-    <script type="text/javascript">
-      if (!qx.IS_SOURCE) {
-        qx.log.Logger.ROOT_LOGGER.setMinLevel(qx.log.Logger.LEVEL_ERROR);
-      }
-      qx.core.Init.getInstance().setApplication(webmail.Application);
-    </script>
-  </body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/source/index.xhtml.tmpl b/webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/source/index.xhtml.tmpl
deleted file mode 100644 (file)
index 9eadf1c..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>qooxdoo &raquo; Demo &raquo; Web Mail</title>
-    <!-- qooxdoo-script-block -->
-  </head>
-  <body>
-    <script type="text/javascript">
-      if (!qx.IS_SOURCE) {
-        qx.log.Logger.ROOT_LOGGER.setMinLevel(qx.log.Logger.LEVEL_ERROR);
-      }
-      qx.core.Init.getInstance().setApplication(webmail.Application);
-    </script>
-  </body>
-</html>
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/source/translation/C.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/source/translation/C.po
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/source/translation/de.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/source/translation/de.po
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/source/translation/en.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/source/translation/en.po
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/source/translation/es.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/source/translation/es.po
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/source/translation/fr.po b/webapps/qooxdoo-0.6.5-sdk/frontend/application/webmail/source/translation/fr.po
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/Makefile b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/Makefile
deleted file mode 100644 (file)
index 862fe6f..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Andreas Ecker (ecker)
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-all:
-       @echo 
-       @echo "****************************************************************************"
-       @echo "  GENERATING FRAMEWORK"
-       @echo "****************************************************************************"
-       @echo ""
-       @echo "  WARNING"
-       @echo "----------------------------------------------------------------------------"
-       @echo "  * Generating the framework itself, which used to create a qx.js file"
-       @echo "    combining all framework classes, is no longer supported."
-       @echo
-       @echo '    Please use the powerful yet easy-to-use "skeletons" as a starting point'
-       @echo "    for your custom application development."
-       @echo
-       @echo "    http://qooxdoo.org/documentation/user_manual/skeleton"
-
-source: all
-build: all
-api: all
-pretty: all
-fix: all
-clean: all
-distclean: all
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/Locale.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/Locale.js
deleted file mode 100644 (file)
index 02921da..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.Locale",
-{
-  /** {var} TODOC */
-  _registry : {},
-
-  /**
-   * Locale definition
-   *
-   * Example:
-   * <pre><code>
-   * qx.Locale.define("fullname",
-   * {
-   *   "msgId": "msgText",
-   *   ...
-   * });
-   * </code></pre>
-   *
-   * @type static
-   * @name define
-   * @access public
-   * @param fullname {String} name of the mixin
-   * @param definition {Map} definition structure
-   * @return {void}
-   */
-  define : function(fullname, definition)
-  {
-    var vSplitName = fullname.split(".");
-    var vLength = vSplitName.length;
-    var vParentPackage = window;
-    var vPartName = vSplitName[0];
-
-    for (var i=0, l=vSplitName.length - 1; i<l; i++)
-    {
-      if (!vParentPackage[vPartName]) {
-        vParentPackage[vPartName] = {};
-      }
-
-      vParentPackage = vParentPackage[vPartName];
-      vPartName = vSplitName[i + 1];
-    }
-
-    vParentPackage[vPartName] = definition;
-    qx.locale.Manager.getInstance().addTranslation(vPartName, definition);
-
-    qx.Locale._registry[fullname] = definition;
-  },
-
-  /**
-   * Returns a locale by name
-   *
-   * @type static
-   * @name byName
-   * @access public
-   * @param fullname {String} locale name to check
-   * @return {Object ? void} locale object
-   */
-  byName : function(fullname) {
-    return qx.Locale._registry[fullname];
-  },
-
-  /**
-   * Determine if locale exists
-   *
-   * @type static
-   * @name isDefined
-   * @access public
-   * @param fullname {String} locale name to check
-   * @return {Boolean} true if locale exists
-   */
-  isDefined : function(fullname) {
-    return qx.Locale.byName(fullname) !== undefined;
-  }
-});
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/OO.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/OO.js
deleted file mode 100644 (file)
index 47eb747..0000000
+++ /dev/null
@@ -1,746 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#id(qx.OO)
-#module(core)
-#after(qx.Settings)
-#load(qx.lang.Core)
-#load(qx.lang.Function)
-#optional(qx.event.type.DataEvent)
-
-************************************************************************ */
-
-// Usage of this hacky construct to make qx.OO available inside the API viewer
-qx.OO = {};
-qx.OO.defineClass = function() {};
-qx.Class = qx.OO;
-qx.OO.defineClass("qx.OO");
-
-qx.Class.classes = {};
-qx.Class.setter = {};
-qx.Class.getter = {};
-qx.Class.resetter = {};
-qx.Class.values = {};
-qx.Class.propertyNumber = 0;
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFINE CLASS IMPLEMENTATION
----------------------------------------------------------------------------
-*/
-
-/**
- * define a new qooxdoo class
- * All classes should be defined in this way.
- *
- * @param vClassName {String} fully qualified class name (e.g. "qx.ui.form.Button")
- * @param vSuper {Object} super class
- * @param vConstructor {Function} the constructor of the new class
- */
-qx.Class.defineClass = function(vClassName, vSuper, vConstructor)
-{
-  var vSplitName = vClassName.split(".");
-  var vNameLength = vSplitName.length-1;
-  var vTempObject = window;
-
-  // Setting up namespace
-  for (var i=0; i<vNameLength; i++)
-  {
-    if (typeof vTempObject[vSplitName[i]] === "undefined") {
-      vTempObject[vSplitName[i]] = {};
-    }
-
-    vTempObject = vTempObject[vSplitName[i]];
-  }
-
-  // Instantiate objects/inheritance
-  if (typeof vSuper === "undefined")
-  {
-    if (typeof vConstructor !== "undefined") {
-      throw new Error("SuperClass is undefined, but constructor was given for class: " + vClassName);
-    }
-
-    qx.Class = vTempObject[vSplitName[i]] = {};
-    qx.Proto = null;
-    qx.Super = null;
-  }
-  else if (typeof vConstructor === "undefined")
-  {
-    qx.Class = vTempObject[vSplitName[i]] = vSuper;
-    qx.Proto = null;
-    qx.Super = vSuper;
-  }
-  else
-  {
-    qx.Class = vTempObject[vSplitName[i]] = vConstructor;
-
-    // build helper function
-    // this omits the initial constructor call while inherit properties
-    var vHelperConstructor = function() {};
-    vHelperConstructor.prototype = vSuper.prototype;
-    qx.Proto = vConstructor.prototype = new vHelperConstructor;
-
-    qx.Super = vConstructor.superclass = vSuper;
-
-    qx.Proto.classname = vConstructor.classname = vClassName;
-    qx.Proto.constructor = vConstructor;
-  }
-
-  // Store reference to global classname registry
-  qx.OO.classes[vClassName] = qx.Class;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  OBJECT PROPERTY EXTENSION
----------------------------------------------------------------------------
-*/
-
-qx.Class.addFastProperty = function(vConfig)
-{
-  var vName = vConfig.name;
-  var vUpName = qx.lang.String.toFirstUp(vName);
-
-  var vStorageField = "_value" + vUpName;
-  var vGetterName = "get" + vUpName;
-  var vSetterName = "set" + vUpName;
-  var vComputerName = "_compute" + vUpName;
-
-  qx.Proto[vStorageField] = typeof vConfig.defaultValue !== "undefined" ? vConfig.defaultValue : null;
-
-  if (vConfig.noCompute)
-  {
-    qx.Proto[vGetterName] = function() {
-      return this[vStorageField];
-    }
-  }
-  else
-  {
-    qx.Proto[vGetterName] = function() {
-      return this[vStorageField] == null ? this[vStorageField] = this[vComputerName]() : this[vStorageField];
-    }
-  }
-
-  if (vConfig.setOnlyOnce)
-  {
-    qx.Proto[vSetterName] = function(vValue)
-    {
-      this[vStorageField] = vValue;
-      this[vSetterName] = null;
-
-      return vValue;
-    }
-  }
-  else
-  {
-    qx.Proto[vSetterName] = function(vValue) {
-      return this[vStorageField] = vValue;
-    }
-  }
-
-  if (!vConfig.noCompute)
-  {
-    qx.Proto[vComputerName] = function() {
-      return null;
-    }
-  }
-}
-
-qx.OO.addCachedProperty = function(p)
-{
-  var vName = p.name;
-  var vUpName = qx.lang.String.toFirstUp(vName);
-
-  var vStorageField = "_cached" + vUpName;
-  var vComputerName = "_compute" + vUpName;
-  var vChangeName = "_change" + vUpName;
-
-  if (typeof p.defaultValue !== "undefined") {
-    qx.Proto[vStorageField] = p.defaultValue;
-  }
-
-  qx.Proto["get" + vUpName] = function()
-  {
-    if (this[vStorageField] == null) {
-      this[vStorageField] = this[vComputerName]();
-    }
-
-    return this[vStorageField];
-  }
-
-  qx.Proto["_invalidate" + vUpName] = function()
-  {
-    if (this[vStorageField] != null)
-    {
-      this[vStorageField] = null;
-
-      if (p.addToQueueRuntime) {
-        this.addToQueueRuntime(p.name);
-      }
-    }
-  }
-
-  qx.Proto["_recompute" + vUpName] = function()
-  {
-    var vOld = this[vStorageField];
-    var vNew = this[vComputerName]();
-
-    if (vNew != vOld)
-    {
-      this[vStorageField] = vNew;
-      this[vChangeName](vNew, vOld);
-
-      return true;
-    }
-
-    return false;
-  }
-
-  qx.Proto[vChangeName] = function(vNew, vOld) {};
-  qx.Proto[vComputerName] = function() { return null; };
-}
-
-qx.Class.addPropertyGroup = function(p)
-{
-  /* --------------------------------------------------------------------------------
-      PRE-CHECKS
-  -------------------------------------------------------------------------------- */
-  if(typeof p !== "object") {
-    throw new Error("Param should be an object!");
-  }
-
-  if (typeof p.name != "string") {
-    throw new Error("Malformed input parameters: name needed!");
-  }
-
-  if (typeof p.members != "object") {
-    throw new Error("Malformed input parameters: members needed!");
-  }
-
-  p.method = qx.lang.String.toFirstUp(p.name);
-
-
-  /* --------------------------------------------------------------------------------
-      CACHING
-  -------------------------------------------------------------------------------- */
-  p.getter = [];
-  p.setter = [];
-
-  for (var i=0, l=p.members.length; i<l; i++) {
-    p.setter.push("set" + qx.lang.String.toFirstUp(p.members[i]));
-  }
-
-  for (var i=0, l=p.members.length; i<l; i++) {
-    p.getter.push("get" + qx.lang.String.toFirstUp(p.members[i]));
-  }
-
-
-  /* --------------------------------------------------------------------------------
-      GETTER
-  -------------------------------------------------------------------------------- */
-  qx.Proto["get" + p.method] = function()
-  {
-    var a = [];
-    var g = p.getter;
-
-    for (var i=0, l=g.length; i<l; i++) {
-      a.push(this[g[i]]());
-    }
-
-    return a;
-  };
-
-
-  /* --------------------------------------------------------------------------------
-      SETTER
-  -------------------------------------------------------------------------------- */
-  switch(p.mode)
-  {
-    case "shorthand":
-      qx.Proto["set" + p.method] = function()
-      {
-        if (arguments.length > 4 || arguments.length == 0) {
-          throw new Error("Invalid number of arguments for property " + p.name + ": " + arguments);
-        }
-
-        try
-        {
-          var ret = qx.lang.Array.fromShortHand(qx.lang.Array.fromArguments(arguments));
-        }
-        catch(ex)
-        {
-          throw new Error("Invalid shorthand values for property " + p.name + ": " + arguments + ": " + ex);
-        }
-
-        var s = p.setter;
-        var l = s.length;
-
-        for (var i=0; i<l; i++) {
-          this[s[i]](ret[i]);
-        }
-      };
-      break;
-
-    default:
-      qx.Proto["set" + p.method] = function()
-      {
-        var s = p.setter;
-        var l = s.length;
-
-        if (arguments.length != l) {
-          throw new Error("Invalid number of arguments (needs: " + l + ", is: " + arguments.length + ") for property " + p.name + ": " + qx.lang.Array.fromArguments(arguments).toString());
-        }
-
-        for (var i=0; i<l; i++) {
-          this[s[i]](arguments[i]);
-        }
-      };
-  }
-}
-
-qx.Class.removeProperty = function(p)
-{
-  if (typeof qx.Proto._properties !== "string") {
-    throw new Error("Has no properties!");
-  }
-
-  if(typeof p !== "object") {
-    throw new Error("Param should be an object!");
-  }
-
-  if (typeof p.name !== "string") {
-    throw new Error("Malformed input parameters: name needed!");
-  }
-
-  // building shorter prototype access
-  var pp = qx.Proto;
-
-  p.method = qx.lang.String.toFirstUp(p.name);
-  p.implMethod = p.impl ? qx.lang.String.toFirstUp(p.impl) : p.method;
-
-  var valueKey = "_value" + p.method;
-
-  // Remove property from list
-  pp._properties = qx.lang.String.removeListItem(pp._properties, p.name);
-
-  // Reset default value to null
-  pp[valueKey] = null;
-
-  // Reset methods
-  pp["get" + p.method] = null;
-  pp["set" + p.method] = null;
-  pp["reset" + p.method] = null;
-  pp["apply" + p.method] = null;
-  pp["force" + p.method] = null;
-  pp["getDefault" + p.method] = null;
-  pp["setDefault" + p.method] = null;
-}
-
-qx.Class._createProperty = function(p)
-{
-  if(typeof p !== "object") {
-    throw new Error("AddProperty: Param should be an object!");
-  }
-
-  if (typeof p.name !== "string") {
-    throw new Error("AddProperty: Malformed input parameters: name needed!");
-  }
-
-  // building shorter prototype access
-  var pp = qx.Proto;
-
-  p.method = qx.lang.String.toFirstUp(p.name);
-  p.implMethod = p.impl ? qx.lang.String.toFirstUp(p.impl) : p.method;
-
-  if (p.defaultValue == undefined) {
-    p.defaultValue = null;
-  }
-
-  p.allowNull = p.allowNull !== false;
-  p.allowMultipleArguments = p.allowMultipleArguments === true;
-
-
-
-
-
-
-  if (typeof p.type === "string") {
-    p.hasType = true;
-  }
-  else if (typeof p.type !== "undefined") {
-    throw new Error("AddProperty: Invalid type definition for property " + p.name + ": " + p.type);
-  }
-  else {
-    p.hasType = false;
-  }
-
-  if (typeof p.instance === "string") {
-    p.hasInstance = true;
-  }
-  else if (typeof p.instance !== "undefined") {
-    throw new Error("AddProperty: Invalid instance definition for property " + p.name + ": " + p.instance);
-  }
-  else {
-    p.hasInstance = false;
-  }
-
-  if (typeof p.classname === "string") {
-    p.hasClassName = true;
-  }
-  else if (typeof p.classname !== "undefined") {
-    throw new Error("AddProperty: Invalid classname definition for property " + p.name + ": " + p.classname);
-  }
-  else {
-    p.hasClassName = false;
-  }
-
-
-
-
-
-
-  p.hasConvert = p.convert != null;
-  p.hasPossibleValues = p.possibleValues != null;
-  p.hasUnitDetection = p.unitDetection != null;
-
-  p.addToQueue = p.addToQueue || false;
-  p.addToQueueRuntime = p.addToQueueRuntime || false;
-
-  // upper-case name
-  p.up = p.name.toUpperCase();
-
-  // register global uppercase name
-  qx.OO["PROPERTY_" + p.up] = p.name;
-
-  var valueKey = "_value" + p.method;
-  var evalKey = "_eval" + p.method;
-  var changeKey = "change" + p.method;
-  var modifyKey = "_modify" + p.implMethod;
-  var checkKey = "_check" + p.implMethod;
-
-  if (!qx.OO.setter[p.name])
-  {
-    qx.OO.setter[p.name] = "set" + p.method;
-    qx.OO.getter[p.name] = "get" + p.method;
-    qx.OO.resetter[p.name] = "reset" + p.method;
-    qx.OO.values[p.name] = valueKey;
-  }
-
-  // unit detection support
-  if (p.hasUnitDetection)
-  {
-    // computed unit
-    var cu = "_computed" + p.method;
-    pp[cu + "Value"] = null;
-    pp[cu + "Parsed"] = null;
-    pp[cu + "Type"] = null;
-    pp[cu + "TypeNull"] = true;
-    pp[cu + "TypePixel"] = false;
-    pp[cu + "TypePercent"] = false;
-    pp[cu + "TypeAuto"] = false;
-    pp[cu + "TypeFlex"] = false;
-
-    var unitDetectionKey = "_unitDetection" + qx.lang.String.toFirstUp(p.unitDetection);
-  }
-
-  // apply default value
-  pp[valueKey] = p.defaultValue;
-
-  // building getFoo(): Returns current stored value
-  pp["get" + p.method] = function() {
-    return this[valueKey];
-  };
-
-  // building forceFoo(): Set (override) without do anything else
-  pp["force" + p.method] = function(newValue) {
-    return this[valueKey] = newValue;
-  };
-
-  // building resetFoo(): Reset value to default value
-  pp["reset" + p.method] = function() {
-    return this["set" + p.method](p.defaultValue);
-  };
-
-  // building toggleFoo(): Switching between two boolean values
-  if (p.type === "boolean")
-  {
-    pp["toggle" + p.method] = function(newValue) {
-      return this["set" + p.method](!this[valueKey]);
-    };
-  }
-
-  if (p.allowMultipleArguments || p.hasConvert || p.hasInstance || p.hasClassName || p.hasPossibleValues || p.hasUnitDetection || p.addToQueue || p.addToQueueRuntime || p.addToStateQueue)
-  {
-    // building setFoo(): Setup new value, do type and change detection, converting types, call unit detection, ...
-    pp["set" + p.method] = function(newValue)
-    {
-      // convert multiple arguments to array
-      if (p.allowMultipleArguments && arguments.length > 1) {
-        newValue = qx.lang.Array.fromArguments(arguments);
-      }
-
-      // support converter methods
-      if (p.hasConvert)
-      {
-        try
-        {
-          newValue = p.convert.call(this, newValue, p);
-        }
-        catch(ex)
-        {
-          throw new Error("Attention! Could not convert new value for " + p.name + ": " + newValue + ": " + ex);
-        }
-      }
-
-      var oldValue = this[valueKey];
-
-      if (newValue === oldValue) {
-        return newValue;
-      }
-
-      if (!(p.allowNull && newValue == null))
-      {
-        if (p.hasType && typeof newValue !== p.type) {
-          return this.error("Attention! The value \"" + newValue + "\" is an invalid value for the property \"" + p.name + "\" which must be typeof \"" + p.type + "\" but is typeof \"" + typeof newValue + "\"!", new Error());
-        }
-
-        if (p.hasInstance && !(newValue instanceof qx.OO.classes[p.instance])) {
-          return this.error("Attention! The value \"" + newValue + "\" is an invalid value for the property \"" + p.name + "\" which must be an instance of \"" + p.instance + "\"!", new Error());
-        }
-
-        if (p.hasClassName && newValue.classname != p.classname) {
-          return this.error("Attention! The value \"" + newValue + "\" is an invalid value for the property \"" + p.name + "\" which must be an object with the classname \"" + p.classname + "\"!", new Error());
-        }
-
-        if (p.hasPossibleValues && newValue != null && !qx.lang.Array.contains(p.possibleValues, newValue)) {
-          return this.error("Failed to save value for " + p.name + ". '" + newValue + "' is not a possible value!", new Error());
-        }
-      }
-
-      // Allow to check and transform the new value before storage
-      if (this[checkKey])
-      {
-        try
-        {
-          newValue = this[checkKey](newValue, p);
-
-          // Don't do anything if new value is indentical to old value
-          if (newValue === oldValue) {
-            return newValue;
-          }
-        }
-        catch(ex)
-        {
-          return this.error("Failed to check property " + p.name, ex);
-        }
-      }
-
-      // Store new value
-      this[valueKey] = newValue;
-
-      // Check if there is a modifier implementation
-      if (this[modifyKey])
-      {
-        try
-        {
-          var r = this[modifyKey](newValue, oldValue, p);
-          if (!r) {
-            return this.error("Modification of property \"" + p.name + "\" failed without exception (" + r + ")", new Error());
-          }
-        }
-        catch(ex)
-        {
-          return this.error("Modification of property \"" + p.name + "\" failed with exception", ex);
-        }
-      }
-
-      // Unit detection support
-      if (p.hasUnitDetection) {
-        this[unitDetectionKey](p, newValue);
-      }
-
-      // Auto queue addition support
-      if (p.addToQueue) {
-        this.addToQueue(p.name);
-      }
-      else if (p.addToQueueRuntime) {
-        this.addToQueueRuntime(p.name);
-      }
-
-      // Auto state queue addition support
-      if (p.addToStateQueue) {
-        this.addToStateQueue();
-      }
-
-      // Create Event
-      if (this.hasEventListeners && this.hasEventListeners(changeKey))
-      {
-        try
-        {
-          this.createDispatchDataEvent(changeKey, newValue);
-        }
-        catch(ex)
-        {
-          throw new Error("Property " + p.name + " modified: Failed to dispatch change event: " + ex);
-        }
-      }
-
-      return newValue;
-    };
-  }
-  else
-  {
-    // building setFoo(): Setup new value, do type and change detection, converting types, call unit detection, ...
-    pp["set" + p.method] = function(newValue)
-    {
-      // this.debug("Fast Setter: " + p.name);
-
-      var oldValue = this[valueKey];
-
-      if (newValue === oldValue) {
-        return newValue;
-      }
-
-      if (!(p.allowNull && newValue == null))
-      {
-        if (p.hasType && typeof newValue !== p.type) {
-          return this.error("Attention! The value \"" + newValue + "\" is an invalid value for the property \"" + p.name + "\" which must be typeof \"" + p.type + "\" but is typeof \"" + typeof newValue + "\"!", new Error());
-        }
-      }
-
-      // Allow to check and transform the new value before storage
-      if (this[checkKey])
-      {
-        try
-        {
-          newValue = this[checkKey](newValue, p);
-
-          // Don't do anything if new value is indentical to old value
-          if (newValue === oldValue) {
-            return newValue;
-          }
-        }
-        catch(ex)
-        {
-          return this.error("Failed to check property " + p.name, ex);
-        }
-      }
-
-      // Store new value
-      this[valueKey] = newValue;
-
-      // Check if there is a modifier implementation
-      if (this[modifyKey])
-      {
-        try
-        {
-          var r = this[modifyKey](newValue, oldValue, p);
-          if (!r) {
-            var valueStr = new String(newValue).substring(0, 50);
-            return this.error("Setting property \"" + p.name + "\" to \"" + valueStr + "\" failed without exception (" + r + ")", new Error());
-          }
-        }
-        catch(ex)
-        {
-          var valueStr = new String(newValue).substring(0, 50);
-          return this.error("Setting property \"" + p.name + "\" to \"" + valueStr + "\" failed with exception", ex);
-        }
-      }
-
-      // Create Event
-      if (this.hasEventListeners && this.hasEventListeners(changeKey))
-      {
-        var vEvent = new qx.event.type.DataEvent(changeKey, newValue, oldValue, false);
-
-        vEvent.setTarget(this);
-
-        try
-        {
-          this.dispatchEvent(vEvent, true);
-        }
-        catch(ex)
-        {
-          throw new Error("Property " + p.name + " modified: Failed to dispatch change event: " + ex);
-        }
-      }
-
-      return newValue;
-    };
-  }
-
-  // building user configured get alias for property
-  if (typeof p.getAlias === "string") {
-    pp[p.getAlias] = pp["get" + p.method];
-  }
-
-  // building user configured set alias for property
-  if (typeof p.setAlias === "string") {
-    pp[p.setAlias] = pp["set" + p.method];
-  }
-}
-
-qx.Class.changeProperty = qx.OO._createProperty;
-
-qx.Class.addProperty = function(p)
-{
-  qx.OO.propertyNumber++;
-
-  qx.OO._createProperty(p);
-
-  // add property to (all) property list
-  if (typeof qx.Proto._properties !== "string") {
-    qx.Proto._properties = p.name;
-  } else {
-    qx.Proto._properties += "," + p.name;
-  }
-
-  // add property to object property list
-  switch(p.type)
-  {
-    case undefined:
-    case "object":
-    case "function":
-      if (typeof qx.Proto._objectproperties !== "string") {
-        qx.Proto._objectproperties = p.name;
-      } else {
-        qx.Proto._objectproperties += "," + p.name;
-      }
-  }
-}
-
-qx.Class.inheritField = function(vField, vData)
-{
-  qx.lang.Object.carefullyMergeWith(vData, qx.Super.prototype[vField]);
-  qx.Proto[vField] = vData;
-}
-
-qx.Class.isAvailable = function(vClassName) {
-  return qx.OO.classes[vClassName] != null;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/Settings.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/Settings.js
deleted file mode 100644 (file)
index ca4c6a5..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#id(qx.Settings)
-#module(core)
-
-************************************************************************ */
-
-
-
-/*
----------------------------------------------------------------------------
-  CREATE NAMESPACE HIERARCHY
----------------------------------------------------------------------------
-*/
-
-if (!window.qx) {
-  qx = {};
-}
-
-if (!qx.Settings) {
-  qx.Settings = {};
-}
-
-if (!qx.Settings._customSettings) {
-  qx.Settings._customSettings = {};
-}
-
-/** the default settings */
-qx.Settings._defaultSettings = {};
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ATTACH GLOBAL DATA
----------------------------------------------------------------------------
-*/
-
-qx._LOADSTART = (new Date).valueOf();
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITES METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Settings.substitute = function(vTemplate)
-{
-  if (typeof vTemplate !== "string") {
-    return vTemplate;
-  }
-
-  return vTemplate.replace(/\%\{(.+)\}/g, function(vMatch, vKey) {
-    return eval(vKey);
-  });
-};
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ACCESS METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Settings.getValue = function(vKey) {
-  return qx.Settings.getValueOfClass(qx.Class.classname, vKey);
-}
-
-qx.Settings.getValueOfClass = function(vClassName, vKey)
-{
-  var vCustomObject = qx.Settings._customSettings[vClassName];
-  if (vCustomObject && vCustomObject[vKey] != null) {
-    return vCustomObject[vKey];
-  }
-
-  var vDefaultObject = qx.Settings._defaultSettings[vClassName];
-  if (vDefaultObject && vDefaultObject[vKey] != null) {
-    return vDefaultObject[vKey];
-  }
-
-  return null;
-}
-
-qx.Settings.setDefault = function(vKey, vValue) {
-  return qx.Settings.setDefaultOfClass(qx.Class.classname, vKey, vValue);
-}
-
-qx.Settings.setDefaultOfClass = function(vClassName, vKey, vValue)
-{
-  var vDefaultObject = qx.Settings._defaultSettings[vClassName];
-
-  if (!vDefaultObject) {
-    vDefaultObject = qx.Settings._defaultSettings[vClassName] = {};
-  }
-
-  // default values doesn't support substitution
-  vDefaultObject[vKey] = vValue;
-}
-
-qx.Settings.setCustom = function(vKey, vValue) {
-  return qx.Settings.setCustomOfClass(qx.Class.classname, vKey, vValue);
-}
-
-qx.Settings.setCustomOfClass = function(vClassName, vKey, vValue)
-{
-  var vCustomObject = qx.Settings._customSettings[vClassName];
-
-  if (!vCustomObject) {
-    vCustomObject = qx.Settings._customSettings[vClassName] = {};
-  }
-
-  vCustomObject[vKey] = qx.Settings.substitute(vValue);
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  IMPORT VARIABLES OF CUSTOM SETTINGS
----------------------------------------------------------------------------
-*/
-
-qx.Settings.init = function()
-{
-  for (var vClass in qx.Settings._customSettings)
-  {
-    var vSettings = qx.Settings._customSettings[vClass];
-
-    for (var vKey in vSettings) {
-      qx.Settings.setCustomOfClass(vClass, vKey, vSettings[vKey]);
-    }
-  }
-}
-
-qx.Settings.init();
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/client/Command.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/client/Command.js
deleted file mode 100644 (file)
index d702620..0000000
+++ /dev/null
@@ -1,349 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#require(qx.locale.Key)
-
-************************************************************************ */
-
-/**
- * This contains a command with shortcut.
- *
- * Each command could be assigned to multiple widgets.
- *
- * @event execute {qx.event.type.DataEvent} when the command is executed. Sets the
- *     "data" property of the event to the object that issued the command.
- *
- * @param vShortcut {String} shortcuts can be composed of optional modifier
- *    keys Control, Alt, Shift, Meta and a non modifier key.
- *    If no non modifier key is specified, the second paramater is evaluated.
- *    The key must be seperated by a <code>+</code> or <code>-</code> character.
- *    Examples: Alt+F1, Control+C, Control+Alt+Enf
- *
- * @param vKeyCode {Integer}  Additional key of the command interpreted as a keyCode.
- */
-qx.OO.defineClass("qx.client.Command", qx.core.Target,
-function(vShortcut, vKeyCode)
-{
-  qx.core.Target.call(this);
-
-  this._modifier = {};
-  this._key = null;
-
-  if (vShortcut != null) {
-    this.setShortcut(vShortcut);
-  }
-
-  if (vKeyCode != null)
-  {
-    this.warn("The use of keyCode in command is deprecated. Use keyIdentifier instead.");
-    this.setKeyCode(vKeyCode);
-  }
-
-  // OSX warning for Alt key combinations
-  if (this._modifier.Alt && this._key && this._key.length == 1) {
-    if (
-      (this._key >= "A" && this._key <= "Z") ||
-      (this._key >= "0" && this._key <= "9")
-    ) {
-      this.warn("A shortcut containing Alt and a letter or number will not work under OS X!");
-    }
-  }
-  qx.event.handler.EventHandler.getInstance().addCommand(this);
-});
-
-
-/** the command shortcut */
-qx.OO.addProperty({ name : "shortcut", type : "string" });
-
-/**
- * keyCode
- * @deprecated
- *
- * Still there for compatibility with the old key handler/commands
- */
-qx.OO.addProperty({ name : "keyCode", type : "number" });
-
-/** KeyIdentifier */
-qx.OO.addProperty({ name : "keyIdentifier", type : "string" });
-
-
-
-/*
----------------------------------------------------------------------------
-  USER METHODS
----------------------------------------------------------------------------
-*/
-
-/**
- * Fire the "execute" event on this command.
- *
- * @param vTarget {Object} Object which issued the execute event
- */
-qx.Proto.execute = function(vTarget)
-{
-  if (this.hasEventListeners("execute")) {
-    var event = new qx.event.type.DataEvent("execute", vTarget);
-    this.dispatchEvent(event, true);
-  }
-
-  return false;
-};
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyShortcut = function(propValue, propOldValue, propData)
-{
-  if (propValue)
-  {
-    this._modifier = {};
-    this._key = null;
-
-    // split string to get each key which must be pressed
-    // build a hash with active keys
-    var a = propValue.split(/[-+\s]+/);
-    var al = a.length;
-
-    for (var i=0; i<al; i++)
-    {
-      var identifier = this._oldKeyNameToKeyIdentifier(a[i]);
-
-      switch (identifier)
-      {
-        case "Control":
-        case "Shift":
-        case "Meta":
-        case "Alt":
-          this._modifier[identifier] = true;
-          break;
-
-        case "Unidentified":
-          var msg = "Not a valid key name for a command: " + a[i];
-          this.error(msg);
-          throw msg;
-
-        default:
-          if (this._key) {
-            var msg = "You can only specify one non modifier key!";
-            this.error(msg);
-            throw msg;
-          }
-          this._key = identifier;
-      }
-    }
-  }
-  return true;
-};
-
-
-
-/*
---------------------------------------------------------------------------
-  INTERNAL MATCHING LOGIC
----------------------------------------------------------------------------
-*/
-
-/**
- * Checks wether the given key event matches the command's shortcut
- *
- * @param e {qx.event.type.KeyEvent} the key event object
- * @return {Boolean} wether the commands shortcut matches the key event
- */
-qx.Proto._matchesKeyEvent = function(e)
-{
-  var key = this._key || this.getKeyIdentifier();
-  if (!key && !this.getKeyCode()) {
-    // no shortcut defined.
-    return;
-  }
-
-  // pre-check for check special keys
-  // we handle this here to omit to check this later again.
-  if (
-    (this._modifier.Shift && !e.isShiftPressed()) ||
-    (this._modifier.Control && !e.isCtrlPressed()) ||
-//    (this._modifier.Meta && !e.getMetaKey()) ||
-    (this._modifier.Alt && !e.isAltPressed())
-  ) {
-    return false;
-  }
-
-  if (key)
-  {
-    if (key == e.getKeyIdentifier()) {
-      return true;
-    }
-  }
-  else
-  {
-    if (this.getKeyCode() == e.getKeyCode()) {
-      return true;
-    }
-  }
-
-  return false;
-};
-
-
-/*
----------------------------------------------------------------------------
-  COMPATIBILITY TO COMMAND
----------------------------------------------------------------------------
-*/
-
-qx.Proto._oldKeyNameToKeyIdentifierMap =
-{
-  // all other keys are converted by converting the first letter to uppercase
-
-  esc      : "Escape",
-  ctrl     : "Control",
-  print    : "PrintScreen",
-  del      : "Delete",
-  pageup   : "PageUp",
-  pagedown : "PageDown",
-  numlock  : "NumLock",
-  numpad_0 : "0",
-  numpad_1 : "1",
-  numpad_2 : "2",
-  numpad_3 : "3",
-  numpad_4 : "4",
-  numpad_5 : "5",
-  numpad_6 : "6",
-  numpad_7 : "7",
-  numpad_8 : "8",
-  numpad_9 : "9",
-  numpad_divide   : "/",
-  numpad_multiply : "*",
-  numpad_minus    : "-",
-  numpad_plus     : "+"
-};
-
-
-/**
- * converts an old key name as found in {@link qx.event.type.KeyEvent.keys} to
- * the new keyIdentifier.
- *
- * @param keyName {String} old name of the key.
- * @return {String} corresponding keyIdentifier or "Unidentified" if a conversion was not possible
- */
-qx.Proto._oldKeyNameToKeyIdentifier = function(keyName)
-{
-  var keyHandler = qx.event.handler.KeyEventHandler.getInstance();
-  var keyIdentifier = "Unidentified";
-
-  if (keyHandler.isValidKeyIdentifier(keyName)) {
-    return keyName;
-  }
-
-  if (keyName.length == 1 && keyName >= "a" && keyName <= "z") {
-    return keyName.toUpperCase();
-  }
-
-  keyName = keyName.toLowerCase();
-
-  // check wether its a valid old key name
-  if (!qx.event.type.KeyEvent.keys[keyName]) {
-    return "Unidentified";
-  }
-
-  var keyIdentifier = this._oldKeyNameToKeyIdentifierMap[keyName];
-  if (keyIdentifier) {
-    return keyIdentifier;
-  } else {
-    return qx.lang.String.toFirstUp(keyName);
-  }
-};
-
-
-/*
----------------------------------------------------------------------------
-  STRING CONVERTION
----------------------------------------------------------------------------
-*/
-
-/**
- * Returns the shortcut as string
- *
- * @return {String} shortcut
- */
-qx.Proto.toString = function()
-{
-  //var vShortcut = this.getShortcut();
-  var vKeyCode = this.getKeyCode();
-  var key = this._key || this.getKeyIdentifier();
-
-  var vString = [];
-
-  for (var modifier in this._modifier) {
-    vString.push(qx.locale.Key.getKeyName("short", modifier));
-  }
-
-  if (key) {
-    vString.push(qx.locale.Key.getKeyName("short", key));
-  }
-  /*
-  if (vShortcut != null) {
-    vString.push(vShortcut);
-  }
-  */
-  if (vKeyCode != null)
-  {
-    var vTemp = qx.event.type.KeyEvent.codes[vKeyCode];
-    vString.push(vTemp ? qx.lang.String.toFirstUp(vTemp) : String(vKeyCode));
-  }
-
-  return vString.join("-");
-};
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-/**
- * Destructor
- */
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this._shortcutParts = null;
-
-  var vMgr = qx.event.handler.EventHandler.getInstance();
-  if (vMgr) {
-    vMgr.removeCommand(this);
-  }
-
-  return qx.core.Target.prototype.dispose.call(this);
-};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/client/History.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/client/History.js
deleted file mode 100644 (file)
index 3cc8004..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#require(qx.manager.object.AliasManager)
-#embed(qx.static/history/historyHelper.html)
-
-************************************************************************ */
-
-/**
- * A helper for using the browser history in JavaScript Applications without
- * reloading the main page.
- * <p>
- * Adds entries to the browser history and fires a "request" event when one of
- * the entries was requested by the user (e.g. by clicking on the back button).
- * </p>
- *
- * @event request {qx.event.type.DataEvent} Fired when the user moved in the
- *        history. The data property of the event holds the command, which was
- *        passed to {@link #addToHistory}.
- */
-qx.OO.defineClass("qx.client.History", qx.core.Target,
-function() {
-  qx.core.Target.call(this);
-
-  this._pageFlag = true;
-});
-
-
-/**
- * Initializes the History. This method has to called by applications using this
- * class once during initialization. Subsequent calls have no (negative) effect.
- */
-qx.Proto.init = function() {
-  if (this._iframe == null) {
-    this._iframe = document.createElement("iframe");
-    this._iframe.style.visibility = "hidden";
-    document.body.appendChild(this._iframe);
-  }
-}
-
-
-/**
- * Adds an entry to the browser history.
- *
- * @param command {String} a string representing the old state of the
- *        application. This command will be delivered in the data property of
- *        the "request" event.
- * @param newTitle {String ? null} the page title to set after the history entry
- *        is done. This title should represent the new state of the application.
- */
-qx.Proto.addToHistory = function(command, newTitle) {
-  if (command == this._currentCommand) {
-    document.title = newTitle;
-  } else {
-    if (this._iframe == null) {
-      throw new Error("You have to call init first!");
-    }
-
-    this._pageFlag = !this._pageFlag;
-    this._currentCommand = command;
-    this._newTitle = newTitle;
-
-    // NOTE: We need the command attribute to enforce a loading of the page
-    //       (Otherwise we don't get an onload event).
-    //       The browser will still cache commands loaded once.
-    //       Without the onload-problem anchors would work, too.
-    //       (Anchors would have the advantage that the helper is only loaded once)
-    this._iframe.src = this.getSetting("helperFile") + "?c=" + command;
-  }
-}
-
-
-/**
- * Event handler. Called when the history helper page was loaded.
- *
- * @param location {Map} the location property of the window object of the
- *        helper page.
- */
-qx.Proto._onHistoryLoad = function(location)
-{
-  try {
-    var equalsPos = location.search.indexOf("=");
-    var command = location.search.substring(equalsPos + 1);
-
-    if (this._newTitle) {
-      document.title = this._newTitle;
-      this._newTitle = null;
-    }
-
-    if (command != this._currentCommand) {
-      this._currentCommand = command;
-
-      this.createDispatchDataEvent("request", command);
-    }
-  } catch (exc) {
-    this.error("Handling history load failed", exc);
-  }
-
-  qx.ui.core.Widget.flushGlobalQueues();
-}
-
-
-/** The URL to the helper page. */
-qx.Settings.setDefault("helperFile", qx.Settings.getValueOfClass("qx.manager.object.AliasManager", "staticUri") + "/history/historyHelper.html");
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/client/NativeWindow.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/client/NativeWindow.js
deleted file mode 100644 (file)
index e63ac4f..0000000
+++ /dev/null
@@ -1,641 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#require(qx.html.Window)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.client.NativeWindow", qx.core.Target,
-function(vUrl, vName)
-{
-  qx.core.Target.call(this);
-
-
-  // ************************************************************************
-  //   TIMER
-  // ************************************************************************
-
-  this._timer = new qx.client.Timer(100);
-  this._timer.addEventListener("interval", this._oninterval, this);
-
-
-  // ************************************************************************
-  //   INITIAL PROPERTIES
-  // ************************************************************************
-
-  if (vUrl != null) {
-    this.setUrl(vUrl);
-  }
-
-  if (vName != null) {
-    this.setName(vName);
-  }
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/*!
-  If the window is open or closed
-*/
-qx.OO.addProperty({ name : "open", type : "boolean", defaultValue : false });
-
-/*!
-  The outer width of the window.
-*/
-qx.OO.addProperty({ name : "width", type : "number", defaultValue : 400, impl : "dimension" });
-
-/*!
-  The outer height of the window.
-*/
-qx.OO.addProperty({ name : "height", type : "number", defaultValue : 250, impl : "dimension" });
-
-/*!
-  The left screen coordinate of the window.
-*/
-qx.OO.addProperty({ name : "left", type : "number", defaultValue : 100, impl : "position" });
-
-/*!
-  The top screen coordinate of the window.
-*/
-qx.OO.addProperty({ name : "top", type : "number", defaultValue : 200, impl : "position" });
-
-/*!
-  Should be window be modal
-*/
-qx.OO.addProperty({ name : "modal", type : "boolean", defaultValue : false });
-
-/*!
-  Should be window be dependent on this application window
-*/
-qx.OO.addProperty({ name : "dependent", type : "boolean", defaultValue : true });
-
-/*!
-  The url
-*/
-qx.OO.addProperty({ name : "url", type : "string" });
-
-/*!
-  The window name
-*/
-qx.OO.addProperty({ name : "name", type : "string" });
-
-/*!
-  The text of the statusbar
-*/
-qx.OO.addProperty({ name : "status", type : "string", defaultValue : "Ready" });
-
-/*!
-  Should the statusbar be shown
-*/
-qx.OO.addProperty({ name : "showStatusbar", type : "boolean", defaultValue : false });
-
-/*!
-  Should the menubar be shown
-*/
-qx.OO.addProperty({ name : "showMenubar", type : "boolean", defaultValue : false });
-
-/*!
-  Should the location(bar) be shown
-*/
-qx.OO.addProperty({ name : "showLocation", type : "boolean", defaultValue : false });
-
-/*!
-  Should the toolbar be shown
-*/
-qx.OO.addProperty({ name : "showToolbar", type : "boolean", defaultValue : false });
-
-/*!
-  If the window is resizeable
-*/
-qx.OO.addProperty({ name : "resizeable", type : "boolean", defaultValue : true });
-
-/*!
-  If the window is able to scroll and has visible scrollbars if needed
-*/
-qx.OO.addProperty({ name : "allowScrollbars", type : "boolean", defaultValue : true });
-
-
-
-/*
----------------------------------------------------------------------------
-  STATE
----------------------------------------------------------------------------
-*/
-
-qx.Proto._loaded = false;
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTY GROUPS
----------------------------------------------------------------------------
-*/
-
-qx.OO.addPropertyGroup({ name : "location", members : [ "left", "top" ]});
-qx.OO.addPropertyGroup({ name : "dimension", members : [ "width", "height" ]});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyPosition = function(propValue, propOldValue, propName)
-{
-  /*
-    http://www.microsoft.com/technet/prodtechnol/winxppro/maintain/sp2brows.mspx
-    Changes to Functionality in Microsoft Windows XP Service Pack 2
-    Part 5: Enhanced Browsing Security
-    URLACTION_FEATURE_WINDOW_RESTRICTIONS
-    Allow script-initiated windows without size or position constraints
-    Code: 2102
-  */
-
-  if (!this.isClosed())
-  {
-    try
-    {
-      this._window.moveTo(this.getLeft(), this.getTop());
-    }
-    catch(ex)
-    {
-      this.error("Cross-Domain Scripting problem: Could not move window!", ex);
-    }
-  }
-
-  return true;
-}
-
-qx.Proto._modifyDimension = function(propValue, propOldValue, propName)
-{
-  /*
-    http://www.microsoft.com/technet/prodtechnol/winxppro/maintain/sp2brows.mspx
-    Changes to Functionality in Microsoft Windows XP Service Pack 2
-    Part 5: Enhanced Browsing Security
-    URLACTION_FEATURE_WINDOW_RESTRICTIONS
-    Allow script-initiated windows without size or position constraints
-    Code: 2102
-  */
-
-  if (!this.isClosed())
-  {
-    try
-    {
-      this._window.resizeTo(this.getWidth(), this.getHeight());
-    }
-    catch(ex)
-    {
-      this.error("Cross-Domain Scripting problem: Could not resize window!", ex);
-    }
-  }
-
-  return true;
-}
-
-qx.Proto._modifyName = function(propValue, propOldValue, propName)
-{
-  if (!this.isClosed()) {
-    this._window.name = propValue;
-  }
-
-  return true;
-}
-
-qx.Proto._modifyUrl = function(propValue, propOldValue, propName)
-{
-  // String hack needed for old compressor (compile.py)
-  if(!this.isClosed()) {
-    this._window.location.replace(propValue != null ? propValue : ("javascript:/" + "/"));
-  }
-
-  return true;
-}
-
-qx.Proto._modifyOpen = function(propValue, propOldValue, propData)
-{
-  propValue ? this._open() : this._close();
-  return true;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  NAME
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getName = function()
-{
-  if (!this.isClosed())
-  {
-    try
-    {
-      var vName = this._window.name;
-    }
-    catch(ex)
-    {
-      return this._valueName;
-    }
-
-    if (vName == this._valueName)
-    {
-      return vName;
-    }
-    else
-    {
-      throw new Error("window name and name property are not identical");
-    }
-  }
-  else
-  {
-    return this._valueName;
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITY
----------------------------------------------------------------------------
-*/
-
-qx.Proto.isClosed = function()
-{
-  var vClosed = true;
-
-  if (this._window)
-  {
-    try {
-      vClosed = this._window.closed;
-    } catch(ex) {}
-  }
-
-  return vClosed;
-}
-
-qx.Proto.open = function() {
-  this.setOpen(true);
-}
-
-qx.Proto.close = function() {
-  this.setOpen(false);
-}
-
-qx.Proto.isLoaded = function() {
-  return this._loaded;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  OPEN METHOD
----------------------------------------------------------------------------
-*/
-
-qx.Proto._open = function()
-{
-  var vConf = [];
-
-
-  /*
-  ------------------------------------------------------------------------------
-    PRE CONFIGURE WINDOW
-  ------------------------------------------------------------------------------
-  */
-
-  if (this.getWidth() != null)
-  {
-    vConf.push("width");
-    vConf.push("=");
-    vConf.push(this.getWidth());
-    vConf.push(",");
-  }
-
-  if (this.getHeight() != null)
-  {
-    vConf.push("height");
-    vConf.push("=");
-    vConf.push(this.getHeight());
-    vConf.push(",");
-  }
-
-  if (this.getLeft() != null)
-  {
-    vConf.push("left");
-    vConf.push("=");
-    vConf.push(this.getLeft());
-    vConf.push(",");
-  }
-
-  if (this.getTop() != null)
-  {
-    vConf.push("top");
-    vConf.push("=");
-    vConf.push(this.getTop());
-    vConf.push(",");
-  }
-
-
-
-  vConf.push("dependent");
-  vConf.push("=");
-  vConf.push(this.getDependent() ? "yes" : "no");
-  vConf.push(",");
-
-  vConf.push("resizable");
-  vConf.push("=");
-  vConf.push(this.getResizeable() ? "yes" : "no");
-  vConf.push(",");
-
-  vConf.push("status");
-  vConf.push("=");
-  vConf.push(this.getShowStatusbar() ? "yes" : "no");
-  vConf.push(",");
-
-  vConf.push("location");
-  vConf.push("=");
-  vConf.push(this.getShowLocation() ? "yes" : "no");
-  vConf.push(",");
-
-  vConf.push("menubar");
-  vConf.push("=");
-  vConf.push(this.getShowMenubar() ? "yes" : "no");
-  vConf.push(",");
-
-  vConf.push("toolbar");
-  vConf.push("=");
-  vConf.push(this.getShowToolbar() ? "yes" : "no");
-  vConf.push(",");
-
-  vConf.push("scrollbars");
-  vConf.push("=");
-  vConf.push(this.getAllowScrollbars() ? "yes" : "no");
-  vConf.push(",");
-
-  vConf.push("modal");
-  vConf.push("=");
-  vConf.push(this.getModal() ? "yes" : "no");
-  vConf.push(",");
-
-
-
-
-
-
-  /*
-  ------------------------------------------------------------------------------
-    OPEN WINDOW
-  ------------------------------------------------------------------------------
-  */
-
-  if (this.getName() != null) {
-    this.setName("qx_NativeWindow" + this.toHashCode());
-  }
-
-  this._window = window.open(this.getUrl(), this.getName(), vConf.join(""));
-
-  if (this.isClosed())
-  {
-    this.error("Window could not be opened. It seems, there is a popup blocker active!");
-  }
-  else
-  {
-    // This try-catch is needed because of cross domain issues (access rights)
-    try
-    {
-      this._window._native = this;
-      this._window.onload = this._onload;
-    }
-    catch(ex) {}
-
-    // start timer for close detection
-    this._timer.start();
-
-    // block original document
-    if (this.getModal()) {
-      qx.ui.core.ClientDocument.getInstance().block(this);
-    }
-  }
-}
-
-qx.Proto._close = function()
-{
-  if (!this._window) {
-    return;
-  }
-
-  // stop timer for close detection
-  this._timer.stop();
-
-  // release window again
-  if (this.getModal()){
-    qx.ui.core.ClientDocument.getInstance().release(this);
-  }
-
-  // finally close window
-  if (!this.isClosed()) {
-    this._window.close();
-  }
-
-  try
-  {
-    this._window._native = null;
-    this._window.onload = null;
-  }
-  catch(ex) {};
-
-  this._window = null;
-  this._loaded = false;
-
-  this.createDispatchEvent("close");
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CENTER SUPPORT
----------------------------------------------------------------------------
-*/
-
-qx.Proto.centerToScreen = function() {
-  return this._centerHelper((screen.width - this.getWidth()) / 2, (screen.height - this.getHeight()) / 2);
-}
-
-qx.Proto.centerToScreenArea = function() {
-  return this._centerHelper((screen.availWidth - this.getWidth()) / 2, (screen.availHeight - this.getHeight()) / 2);
-}
-
-qx.Proto.centerToOpener = function() {
-  return this._centerHelper(((qx.html.Window.getInnerWidth(window) - this.getWidth()) / 2) + qx.html.Location.getScreenBoxLeft(window.document.body), ((qx.html.Window.getInnerHeight(window) - this.getHeight()) / 2) + qx.html.Location.getScreenBoxTop(window.document.body));
-}
-
-qx.Proto._centerHelper = function(l, t)
-{
-  // set new values
-  this.setLeft(l);
-  this.setTop(t);
-
-  // focus window if opened
-  if (!this.isClosed()) {
-    this.focus();
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  FOCUS HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto.focus = function()
-{
-  if (!this.isClosed()) {
-    this._window.focus();
-  }
-}
-
-qx.Proto.blur = function()
-{
-  if (!this.isClosed()) {
-    this._window.blur();
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._oninterval = function(e)
-{
-  if (this.isClosed()) {
-    this.setOpen(false);
-  }
-  else if (!this._loaded)
-  {
-    // This try-catch is needed because of cross domain issues (access rights)
-    try
-    {
-      if (this._window.document && this._window.document.readyState == "complete")
-      {
-        this._loaded = true;
-        this.createDispatchEvent("load");
-      }
-    }
-    catch(ex) {};
-  }
-}
-
-qx.Proto._onload = function(e)
-{
-  var obj = this._native;
-
-  if (!obj._loaded)
-  {
-    obj._loaded = true;
-    obj.createDispatchEvent("load");
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  if (this.getDependent()) {
-    this.close();
-  }
-
-  if (this._timer)
-  {
-    this._timer.stop();
-    this._timer = null;
-  }
-
-  if (this._window)
-  {
-    try
-    {
-      this._window._native = null;
-      this._window.onload = null;
-    }
-    catch(ex) {};
-
-    this._window = null;
-  }
-
-  return qx.core.Target.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/client/Timer.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/client/Timer.js
deleted file mode 100644 (file)
index 36fb11d..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-
-************************************************************************ */
-
-/**
- * Global timer support. Simplifies javascript intervals for objects.
- *
- * @event interval {qx.event.type.Event}
- */
-qx.OO.defineClass("qx.client.Timer", qx.core.Target,
-function(vInterval)
-{
-  qx.core.Target.call(this);
-
-  this.setEnabled(false);
-
-  if (vInterval != null) {
-    this.setInterval(vInterval);
-  }
-
-  // Object wrapper to timer event
-  var o = this;
-  this.__oninterval = function() { o._oninterval(); }
-});
-
-qx.OO.addProperty({ name : "interval", type : "number", defaultValue : 1000 });
-
-qx.Proto._intervalHandle = null;
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
-{
-  if (propOldValue)
-  {
-    window.clearInterval(this._intervalHandle);
-    this._intervalHandle = null;
-  }
-  else if (propValue)
-  {
-    this._intervalHandle = window.setInterval(this.__oninterval, this.getInterval());
-  }
-
-  return true;
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  USER-ACCESS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.start = function() {
-  this.setEnabled(true);
-}
-
-qx.Proto.startWith = function(vInterval)
-{
-  this.setInterval(vInterval);
-  this.start();
-}
-
-qx.Proto.stop = function() {
-  this.setEnabled(false);
-}
-
-qx.Proto.restart = function()
-{
-  this.stop();
-  this.start();
-}
-
-qx.Proto.restartWith = function(vInterval)
-{
-  this.stop();
-  this.startWith(vInterval);
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT-MAPPER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._oninterval = function()
-{
-  if (this.getEnabled()) {
-    this.createDispatchEvent("interval");
-  }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if(this.getDisposed()) {
-    return;
-  }
-
-  // Stop interval
-  this.stop();
-
-  // Clear handle
-  if (this._intervalHandler)
-  {
-    window.clearInterval(this._intervalHandle);
-    this._intervalHandler = null;
-  }
-
-  // Clear object wrapper function
-  this.__oninterval = null;
-
-  // Call qx.core.Target to do the other dispose work
-  return qx.core.Target.prototype.dispose.call(this);
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  HELPER
----------------------------------------------------------------------------
-*/
-
-qx.client.Timer.once = function(vFunction, vObject, vTimeout)
-{
-  // Create time instance
-  var vTimer = new qx.client.Timer(vTimeout);
-
-  // Add event listener to interval
-  vTimer.addEventListener("interval", function(e)
-  {
-    vFunction.call(vObject, e);
-    vTimer.dispose();
-
-    vObject = null;
-  }, vObject);
-
-  // Directly start timer
-  vTimer.start();
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/component/AbstractApplication.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/component/AbstractApplication.js
deleted file mode 100644 (file)
index 0d0877f..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.component.AbstractApplication", qx.component.AbstractComponent,
-function() {
-  qx.component.AbstractComponent.call(this);
-});
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/component/AbstractComponent.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/component/AbstractComponent.js
deleted file mode 100644 (file)
index 3bb95a1..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.component.AbstractComponent", qx.core.Target,
-function()
-{
-  qx.core.Target.call(this);
-
-});
-
-
-/*!
-  Run initialisation part of component creation.
-*/
-qx.Proto.initialize = function() {};
-
-/*!
-  Run main  part of component creation.
-*/
-qx.Proto.main = function() {};
-
-/*!
-  Run finalization part of component creation.
-*/
-qx.Proto.finalize = function() {};
-
-/*!
-  Terminate this component.
-*/
-qx.Proto.close = function() {};
-
-/*!
-  Terminate this component.
-*/
-qx.Proto.terminate = function() {};
-
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  return qx.core.Target.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/component/DummyApplication.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/component/DummyApplication.js
deleted file mode 100644 (file)
index 68f7617..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.component.DummyApplication", qx.component.AbstractApplication,
-function() {
-  qx.component.AbstractApplication.call(this);
-});
-
-
-
-/*
----------------------------------------------------------------------------
-  DIRECT SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/component/init/AbstractInitComponent.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/component/init/AbstractInitComponent.js
deleted file mode 100644 (file)
index 7e7ebee..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-
-************************************************************************ */
-
-/**
- * Abstract application initializer
- */
-qx.OO.defineClass("qx.component.init.AbstractInitComponent", qx.component.AbstractComponent,
-function() {
-  qx.component.AbstractComponent.call(this);
-});
-
-
-
-/**
- * Run initialisation part of component creation.
- *
- * @param e {Event} event object
- */
-qx.Proto.initialize = function(e) {
-  return qx.core.Init.getInstance().getApplicationInstance().initialize(e);
-};
-
-
-/**
- * Run main  part of component creation.
- *
- * @param e {Event} event object
- */
-qx.Proto.main = function(e) {
-  return qx.core.Init.getInstance().getApplicationInstance().main(e);
-};
-
-
-/**
- * Run finalization part of component creation.
- *
- * @param e {Event} event object
- */
-qx.Proto.finalize = function(e) {
-  return qx.core.Init.getInstance().getApplicationInstance().finalize(e);
-};
-
-
-/**
- * Terminate this component.
- *
- * @param e {Event} event object
- */
-qx.Proto.close = function(e) {
-  return qx.core.Init.getInstance().getApplicationInstance().close(e);
-};
-
-
-/**
- * Terminate this component.
- *
- * @param e {Event} event object
- */
-qx.Proto.terminate = function(e) {
-  return qx.core.Init.getInstance().getApplicationInstance().terminate(e);
-};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/component/init/BasicInitComponent.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/component/init/BasicInitComponent.js
deleted file mode 100644 (file)
index f87d768..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.component.init.BasicInitComponent", qx.component.init.AbstractInitComponent,
-function() {
-  qx.component.init.AbstractInitComponent.call(this);
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onload = function(e)
-{
-  this.initialize(e);
-  this.main(e);
-  this.finalize(e);
-}
-
-qx.Proto._onbeforeunload = function(e) {
-  this.close(e);
-}
-
-qx.Proto._onunload = function(e) {
-  this.terminate(e);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/component/init/InterfaceInitComponent.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/component/init/InterfaceInitComponent.js
deleted file mode 100644 (file)
index 211a4ff..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.component.init.InterfaceInitComponent", qx.component.init.BasicInitComponent,
-function() {
-  qx.component.init.BasicInitComponent.call(this);
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  READY STATE
----------------------------------------------------------------------------
-*/
-
-qx.Proto._uiReady = false;
-
-qx.Proto.isUiReady = function() {
-  return this._uiReady;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  STATE MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.initialize = function()
-{
-  // Force creation of event handler
-  qx.event.handler.EventHandler.getInstance();
-
-  // Force creation of client document
-  qx.ui.core.ClientDocument.getInstance();
-
-  // Start real initialisation
-  var start = (new Date).valueOf();
-  qx.component.init.BasicInitComponent.prototype.initialize.call(this);
-  this.info("initialize runtime: " + ((new Date).valueOf() - start) + "ms");
-};
-
-qx.Proto.main = function()
-{
-  // Start real main process
-  var start = (new Date).valueOf();
-  qx.component.init.BasicInitComponent.prototype.main.call(this);
-  this.info("main runtime: " + ((new Date).valueOf() - start) + "ms");
-
-  this.debug("preloading visible images...");
-  new qx.io.image.PreloaderSystem(qx.manager.object.ImageManager.getInstance().getPreloadImageList(), this.finalize, this);
-};
-
-
-qx.Proto.finalize = function()
-{
-  var start = (new Date).valueOf();
-
-  this._printPreloadComplete();
-  this._uiReady = true;
-
-  // Show initial widgets
-  qx.ui.core.Widget.flushGlobalQueues();
-
-  // Finally attach event to make the GUI ready for the user
-  qx.event.handler.EventHandler.getInstance().attachEvents();
-
-  qx.component.init.BasicInitComponent.prototype.finalize.call(this);
-
-  this.info("finalize runtime: " + ((new Date).valueOf() - start) + "ms");
-};
-
-qx.Proto.close = function()
-{
-  var start = (new Date).valueOf();
-  qx.component.init.BasicInitComponent.prototype.close.call(this);
-
-  this.info("close runtime: " + ((new Date).valueOf() - start) + "ms");
-};
-
-qx.Proto.terminate = function()
-{
-  var start = (new Date).valueOf();
-  qx.component.init.BasicInitComponent.prototype.terminate.call(this);
-
-  this.info("terminate runtime: " + ((new Date).valueOf() - start) + "ms");
-};
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PRELOAD UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.preload = function()
-{
-  if (!this._preloadDone)
-  {
-    this.debug("preloading hidden images...");
-    new qx.io.image.PreloaderSystem(qx.manager.object.ImageManager.getInstance().getPostPreloadImageList(), this._printPreloadComplete, this);
-    this._preloadDone = true;
-  }
-}
-
-qx.Proto._printPreloadComplete = function() {
-  this.debug("preloading complete");
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onload = function(e)
-{
-  this.initialize();
-  this.main();
-
-  // Note: finalize will be called through image preloader
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this._preloadDone = null;
-  this._uiReady = null;
-
-  return qx.component.init.BasicInitComponent.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/core/Client.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/core/Client.js
deleted file mode 100644 (file)
index 7f62a62..0000000
+++ /dev/null
@@ -1,406 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-
-************************************************************************ */
-
-/*!
-  Basic client detection implementation
-
-  Version shemes following wikipedia: major.minor[.revision[.build]]
-  http://en.wikipedia.org/wiki/Software_version
-*/
-qx.OO.defineClass("qx.core.Client", Object,
-function()
-{
-  var vRunsLocally = window.location.protocol === "file:";
-
-  var vBrowserUserAgent = navigator.userAgent;
-  var vBrowserVendor = navigator.vendor;
-  var vBrowserProduct = navigator.product;
-  var vBrowserPlatform = navigator.platform;
-  var vBrowserModeHta = false;
-  var vBrowser;
-
-  var vEngine = null;
-  var vEngineVersion = null;
-  var vEngineVersionMajor = 0;
-  var vEngineVersionMinor = 0;
-  var vEngineVersionRevision = 0;
-  var vEngineVersionBuild = 0;
-
-  var vEngineEmulation = null;
-  var vVersionHelper;
-
-  if (window.opera && /Opera[\s\/]([0-9\.]*)/.test(vBrowserUserAgent))
-  {
-    vEngine = "opera";
-    vEngineVersion = RegExp.$1;
-
-    // Fix Opera version to match wikipedia style
-    vEngineVersion = vEngineVersion.substring(0, 3) + "." + vEngineVersion.substring(3);
-
-    vEngineEmulation = vBrowserUserAgent.indexOf("MSIE") !== -1 ? "mshtml" : vBrowserUserAgent.indexOf("Mozilla") !== -1 ? "gecko" : null;
-  }
-  else if (typeof vBrowserVendor==="string" && vBrowserVendor==="KDE" && /KHTML\/([0-9-\.]*)/.test(vBrowserUserAgent))
-  {
-    vEngine = "khtml";
-    vBrowser = "konqueror";
-    vEngineVersion = RegExp.$1;
-  }
-  else if (vBrowserUserAgent.indexOf("AppleWebKit") != -1 && /AppleWebKit\/([0-9-\.]*)/.test(vBrowserUserAgent))
-  {
-    vEngine = "webkit";
-    vEngineVersion = RegExp.$1;
-
-    if(vBrowserUserAgent.indexOf("Safari") != -1) {
-      vBrowser = "safari";
-    } else if(vBrowserUserAgent.indexOf("Omni") != -1) {
-      vBrowser = "omniweb";
-    } else {
-      vBrowser = "other webkit";
-    }
-  }
-  else if (window.controllers && typeof vBrowserProduct==="string" && vBrowserProduct==="Gecko" && /rv\:([^\);]+)(\)|;)/.test(vBrowserUserAgent))
-  {
-    // http://www.mozilla.org/docs/dom/domref/dom_window_ref13.html
-    vEngine = "gecko";
-    vEngineVersion = RegExp.$1;
-
-    if(vBrowserUserAgent.indexOf("Firefox") != -1) {
-      vBrowser = "firefox";
-    } else if(vBrowserUserAgent.indexOf("Camino") != -1) {
-      vBrowser = "camino";
-    } else if(vBrowserUserAgent.indexOf("Galeon") != -1) {
-      vBrowser = "galeon";
-    } else {
-      vBrowser = "other gecko";
-    }
-  }
-  else if (/MSIE\s+([^\);]+)(\)|;)/.test(vBrowserUserAgent))
-  {
-    vEngine = "mshtml";
-    vEngineVersion = RegExp.$1;
-
-    vBrowserModeHta = !window.external;
-  }
-
-  if (vEngineVersion)
-  {
-    vVersionHelper = vEngineVersion.split(".");
-
-    vEngineVersionMajor = vVersionHelper[0] || 0;
-    vEngineVersionMinor = vVersionHelper[1] || 0;
-    vEngineVersionRevision = vVersionHelper[2] || 0;
-    vEngineVersionBuild = vVersionHelper[3] || 0;
-  }
-
-  var vEngineBoxSizingAttr = vEngine == "gecko" ? "-moz-box-sizing" : vEngine == "mshtml" ? null : "box-sizing";
-  var vEngineQuirksMode = document.compatMode !== "CSS1Compat";
-
-  var vDefaultLocale = "en";
-  var vBrowserLocale = (vEngine == "mshtml" ? navigator.userLanguage : navigator.language).toLowerCase();
-  var vBrowserLocaleVariant = null;
-
-  var vBrowserLocaleVariantIndex = vBrowserLocale.indexOf("-");
-  if (vBrowserLocaleVariantIndex != -1)
-  {
-    vBrowserLocaleVariant = vBrowserLocale.substr(vBrowserLocaleVariantIndex+1);
-    vBrowserLocale = vBrowserLocale.substr(0, vBrowserLocaleVariantIndex);
-  }
-
-  var vPlatform = "none";
-  var vPlatformWindows = false;
-  var vPlatformMacintosh = false;
-  var vPlatformUnix = false;
-  var vPlatformOther = false;
-
-  if (vBrowserPlatform.indexOf("Windows") != -1 || vBrowserPlatform.indexOf("Win32") != -1 || vBrowserPlatform.indexOf("Win64") != -1)
-  {
-    vPlatformWindows = true;
-    vPlatform = "win";
-  }
-  else if (vBrowserPlatform.indexOf("Macintosh") != -1 || vBrowserPlatform.indexOf("MacIntel") != -1)
-  {
-    vPlatformMacintosh = true;
-    vPlatform = "mac";
-  }
-  else if (vBrowserPlatform.indexOf("X11") != -1 || vBrowserPlatform.indexOf("Linux") != -1 || vBrowserPlatform.indexOf("BSD") != -1)
-  {
-    vPlatformUnix = true;
-    vPlatform = "unix";
-  }
-  else
-  {
-    vPlatformOther = true;
-    vPlatform = "other";
-  }
-
-  var vGfxVml = false;
-  var vGfxSvg = false;
-  var vGfxSvgBuiltin = false;
-  var vGfxSvgPlugin = false;
-
-  if (vEngine == "mshtml")
-  {
-    vGfxVml = true;
-
-    // TODO: Namespace for VML:
-    // document.write('<style>v\:*{ behavior:url(#default#VML); }</style>');
-    // document.write('<xml:namespace ns="urn:schemas-microsoft-com:vml" prefix="v"/>');
-  }
-
-  if (document.implementation && document.implementation.hasFeature)
-  {
-    if (document.implementation.hasFeature("org.w3c.dom.svg", "1.0"))
-    {
-      vGfxSvg = vGfxSvgBuiltin = true;
-    }
-  }
-
-  this._runsLocally = vRunsLocally;
-
-  this._engineName = vEngine;
-  this._engineNameMshtml = vEngine === "mshtml";
-  this._engineNameGecko = vEngine === "gecko";
-  this._engineNameOpera = vEngine === "opera";
-  this._engineNameKhtml = vEngine === "khtml";
-  this._engineNameWebkit = vEngine === "webkit";
-
-  this._engineVersion = parseFloat(vEngineVersion);
-  this._engineVersionMajor = parseInt(vEngineVersionMajor);
-  this._engineVersionMinor = parseInt(vEngineVersionMinor);
-  this._engineVersionRevision = parseInt(vEngineVersionRevision);
-  this._engineVersionBuild = parseInt(vEngineVersionBuild);
-
-  this._engineQuirksMode = vEngineQuirksMode;
-  this._engineBoxSizingAttribute = vEngineBoxSizingAttr;
-  this._engineEmulation = vEngineEmulation;
-
-  this._defaultLocale = vDefaultLocale;
-
-  this._browserPlatform = vPlatform;
-  this._browserPlatformWindows = vPlatformWindows;
-  this._browserPlatformMacintosh = vPlatformMacintosh;
-  this._browserPlatformUnix = vPlatformUnix;
-  this._browserPlatformOther = vPlatformOther;
-  this._browserModeHta = vBrowserModeHta;
-  this._browserLocale = vBrowserLocale;
-  this._browserLocaleVariant = vBrowserLocaleVariant;
-
-  this._gfxVml = vGfxVml;
-  this._gfxSvg = vGfxSvg;
-  this._gfxSvgBuiltin = vGfxSvgBuiltin;
-  this._gfxSvgPlugin = vGfxSvgPlugin;
-
-  this._fireBugActive = (window.console && console.log && console.debug && console.assert);
-
-  this._supportsTextContent = (document.documentElement.textContent !== undefined);
-  this._supportsInnerText = (document.documentElement.innerText !== undefined);
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getRunsLocally = function() {
-  return this._runsLocally;
-}
-
-qx.Proto.getEngine = function() {
-  return this._engineName;
-}
-
-qx.Proto.getVersion = function() {
-  return this._engineVersion;
-}
-
-qx.Proto.getMajor = function() {
-  return this._engineVersionMajor;
-}
-
-qx.Proto.getMinor = function() {
-  return this._engineVersionMinor;
-}
-
-qx.Proto.getRevision = function() {
-  return this._engineVersionRevision;
-}
-
-qx.Proto.getBuild = function() {
-  return this._engineVersionBuild;
-}
-
-qx.Proto.getEmulation = function() {
-  return this._engineEmulation;
-}
-
-qx.Proto.isMshtml = function() {
-  return this._engineNameMshtml;
-}
-
-qx.Proto.isGecko = function() {
-  return this._engineNameGecko;
-}
-
-qx.Proto.isOpera = function() {
-  return this._engineNameOpera;
-}
-
-qx.Proto.isKhtml = function() {
-  return this._engineNameKhtml;
-}
-
-qx.Proto.isWebkit = function() {
-  return this._engineNameWebkit;
-}
-
-qx.Proto.isSafari2 = function() {
-  return this._engineNameWebkit && (this._engineVersion < 420);
-}
-
-qx.Proto.isInQuirksMode = function() {
-  return this._engineQuirksMode;
-}
-
-qx.Proto.getLocale = function() {
-  return this._browserLocale;
-}
-
-qx.Proto.getLocaleVariant = function() {
-  return this._browserLocaleVariant;
-}
-
-qx.Proto.getDefaultLocale = function() {
-  return this._defaultLocale;
-}
-
-qx.Proto.usesDefaultLocale = function() {
-  return this._browserLocale === this._defaultLocale;
-}
-
-
-
-/**
- * Returns the CSS attribute name for box-sizing if supported.
- *
- * @return {String} the attribute name.
- */
-qx.Proto.getEngineBoxSizingAttribute = function() {
-  return this._engineBoxSizingAttribute;
-}
-
-
-qx.Proto.getPlatform = function() {
-  return this._browserPlatform;
-}
-
-/**
- * Returns whether the client platform is a Windows machine.
- *
- * @return {Boolean} whether the client platform is a Windows.
- */
-qx.Proto.runsOnWindows = function() {
-  return this._browserPlatformWindows;
-}
-
-/**
- * Returns whether the client platform is a Macintosh machine.
- *
- * @return {Boolean} whether the client platform is a Macintosh.
- */
-qx.Proto.runsOnMacintosh = function() {
-  return this._browserPlatformMacintosh;
-}
-
-/**
- * Returns whether the client platform is a X11 powered machine.
- *
- * @return {Boolean} whether the client platform is a X11 powered machine.
- */
-qx.Proto.runsOnUnix = function() {
-  return this._browserPlatformUnix;
-}
-
-qx.Proto.supportsVml = function() {
-  return this._gfxVml;
-}
-
-qx.Proto.supportsSvg = function() {
-  return this._gfxSvg;
-}
-
-qx.Proto.usesSvgBuiltin = function() {
-  return this._gfxSvgBuiltin;
-}
-
-qx.Proto.usesSvgPlugin = function() {
-  return this._gfxSvgPlugin;
-}
-
-/**
- * Retuns whether the Mozilla FireBug extension is installed and active
- * http://www.getfirebug.com/
- *
- * @return {Boolean} whether FireBug is active
- */
- qx.Proto.isFireBugActive = function() {
-   return this._fireBugActive;
- };
-
-/**
- * Returns whether the client supports the W3C property textContent of DOM element nodes.
- *
- * @return {Boolean} whether the client supports textContent.
- */
-qx.Proto.supportsTextContent = function() {
-  return this._supportsTextContent;
-}
-
-/**
- * Returns whether the client supports the W3C property innerText of DOM element nodes.
- *
- * @return {Boolean} whether the client supports innerText.
- */
-qx.Proto.supportsInnerText = function() {
-  return this._supportsInnerText;
-}
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/core/Init.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/core/Init.js
deleted file mode 100644 (file)
index e52a249..0000000
+++ /dev/null
@@ -1,329 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-#require(qx.html.EventRegistration)
-#optional(qx.component.init.InterfaceInitComponent)
-
-************************************************************************ */
-
-/**
- * Initialize qooxdoo.
- *
- * Attaches qooxdoo callbacks to the load events (onload, onunload, onbeforeunload)
- * and initializes the qooxdoo application. The initializations starts automatically.
- *
- * Make shure you set the application to your application before the load event is fired:
- * <pre>qx.core.Init.getInstance().setApplication(YourApplication)</pre>
- */
-qx.OO.defineClass("qx.core.Init", qx.core.Target,
-function()
-{
-  qx.core.Target.call(this, false);
-
-  // Object Wrapper to Events (Needed for DOM-Events)
-  var o = this;
-
-  /**
-   * private
-   * @param e {Object} event
-   */
-  this.__onload = function(e) { return o._onload(e); }
-  /**
-   * private
-   * @param e {Object} event
-   */
-  this.__onbeforeunload = function(e) { return o._onbeforeunload(e); }
-  /**
-   * private
-   * @param e {Object} event
-   */
-  this.__onunload = function(e) { return o._onunload(e); }
-
-  // Attach events
-  qx.html.EventRegistration.addEventListener(window, "load", this.__onload);
-  qx.html.EventRegistration.addEventListener(window, "beforeunload", this.__onbeforeunload);
-  qx.html.EventRegistration.addEventListener(window, "unload", this.__onunload);
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFAULT SETTINGS
----------------------------------------------------------------------------
-*/
-
-qx.Settings.setDefault("component", "qx.component.init.InterfaceInitComponent");
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/**
- * Instance of the component initializer.
- */
-qx.OO.addProperty({ name : "component", type : "object", instance : "qx.component.init.BasicInitComponent" });
-
-/**
- * Reference to the constructor of the main application.
- *
- * Set this before the onload event is fired.
- */
-qx.OO.addProperty({ name : "application", type : "function" });
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyApplication = function(propValue, propOldValue, propData)
-{
-  if (propValue) {
-    this._applicationInstance = new propValue;
-  }
-
-  return true;
-};
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  INTERNAL PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/**
- * Returns an instance of the current qooxdoo Application
- *
- * @return {qx.component.AbstractApplication} instance of the current qooxdoo application
- */
-qx.Proto.getApplicationInstance = function()
-{
-  if (!this.getApplication()) {
-    this.setApplication(qx.component.DummyApplication);
-  }
-
-  return this._applicationInstance;
-};
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  COMPONENT BINDING
----------------------------------------------------------------------------
-*/
-
-/**
- * define the initialisation function
- * Don't use this method directly. Use setApplication instead!
- *
- * @param vFunc {Function} callback function
- */
-qx.Proto.defineInitialize = function(vFunc) {
-  this.getApplicationInstance().initialize = vFunc;
-}
-
-/**
- * define the main function
- * Don't use this method directly. Use setApplication instead!
- *
- * @param vFunc {Function} callback function
- */
-qx.Proto.defineMain = function(vFunc) {
-  this.getApplicationInstance().main = vFunc;
-}
-
-/**
- * define the finalize function
- * Don't use this method directly. Use setApplication instead!
- *
- * @param vFunc {Function} callback function
- */
-qx.Proto.defineFinalize = function(vFunc) {
-  this.getApplicationInstance().finalize = vFunc;
-}
-
-/**
- * define the close function
- * Don't use this method directly. Use setApplication instead!
- *
- * @param vFunc {Function} callback function
- */
-qx.Proto.defineClose = function(vFunc) {
-  this.getApplicationInstance().close = vFunc;
-}
-
-/**
- * define the terminate function
- * Don't use this method directly. Use setApplication instead!
- *
- * @param vFunc {Function} callback function
- */
-qx.Proto.defineTerminate = function(vFunc) {
-  this.getApplicationInstance().terminate = vFunc;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-/**
- * load event handler
- *
- * @param e {Object} event
- */
-qx.Proto._onload = function(e)
-{
-  this.debug("qooxdoo " + qx.core.Version.toString());
-
-  // Print out class information
-  this.debug("loaded " + qx.lang.Object.getLength(qx.OO.classes) + " classes");
-
-  // Print browser information
-  var cl = qx.core.Client.getInstance();
-  this.debug("client: " + cl.getEngine() + "-" + cl.getMajor() + "."
-    + cl.getMinor() + "/" + cl.getPlatform() + "/" + cl.getLocale());
-
-  if (cl.isMshtml() && !cl.isInQuirksMode()) {
-    this.warn("Wrong box sizing: Please modify the document's DOCTYPE!");
-  }
-
-  // Init component from settings
-  this.setComponent(new qx.OO.classes[this.getSetting("component")](this));
-
-  // Send onload
-  return this.getComponent()._onload(e);
-}
-
-
-/**
- * beforeunload event handler
- *
- * @param e {Object} event
- */
-qx.Proto._onbeforeunload = function(e)
-{
-  // Send onbeforeunload event (can be cancelled)
-  return this.getComponent()._onbeforeunload(e);
-}
-
-
-/**
- * unload event handler
- *
- * @param e {Object} event
- */
-qx.Proto._onunload = function(e)
-{
-  // Send onunload event (last event)
-  this.getComponent()._onunload(e);
-
-  // Dispose all qooxdoo objects
-  qx.core.Object.dispose();
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-/**
- * Destructor
- */
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  // Detach Events
-  qx.html.EventRegistration.removeEventListener(window, "load", this.__onload);
-  qx.html.EventRegistration.removeEventListener(window, "beforeunload", this.__onbeforeunload);
-  qx.html.EventRegistration.removeEventListener(window, "unload", this.__onunload);
-
-  // Reset inline functions
-  this.__onload = this.__onbeforeunload = this.__onunload = null;
-
-  if (this._applicationInstance) {
-    this._applicationInstance.dispose();
-    this._applicationInstance = null;
-  }
-
-  qx.core.Target.prototype.dispose.call(this);
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DIRECT SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
-
-// Force direct creation
-qx.Class.getInstance();
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/core/Object.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/core/Object.js
deleted file mode 100644 (file)
index d4bbb7a..0000000
+++ /dev/null
@@ -1,597 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-#load(qx.core.Init)
-#resource(static:static)
-
-************************************************************************ */
-
-/**
- * The qooxdoo root class. All other classes are direct or indirect subclasses of this one.
- *
- * This class contains methods for:
- * <ul>
- *   <li> object management (creation and destruction) </li>
- *   <li> logging & debugging </li>
- *   <li> generic getter/setter </li>
- *   <li> user data </li>
- *   <li> settings </li>
- *   <li> internationalization </li>
- * </ul>
- *
- * @param vAutoDispose {Boolean ? true} whether the object should be automatically disposed
- */
-qx.OO.defineClass("qx.core.Object", Object,
-function(vAutoDispose)
-{
-  this._hashCode = qx.core.Object._availableHashCode++;
-
-  if (vAutoDispose !== false)
-  {
-    this._dbKey = qx.core.Object._db.length;
-    qx.core.Object._db.push(this);
-  }
-});
-
-
-/*
----------------------------------------------------------------------------
-  DEFAULT SETTINGS
----------------------------------------------------------------------------
-*/
-
-qx.Settings.setDefault("enableDisposerDebug", false);
-
-
-
-
-
-/* ************************************************************************
-   Class data, properties and methods
-************************************************************************ */
-
-qx.Class._availableHashCode = 0;
-qx.Class._db = [];
-qx.Class._disposeAll = false;
-
-
-/**
- * Returns an unique identifier for the given object. If such an identifier
- * does not yet exist, create it.
- *
- * @param o {Object} the Object to get the hashcode for
- * @return {Integer} unique identifier for the given object
- */
-qx.Class.toHashCode = function(o)
-{
-  if(o._hashCode != null) {
-    return o._hashCode;
-  }
-
-  return o._hashCode = qx.core.Object._availableHashCode++;
-}
-
-
-/**
- * Destructor. This method is called by qooxdoo on object destruction.
- *
- * Any class that holds resources like links to DOM nodes must overwrite
- * this method and free these resources.
- */
-qx.Class.dispose = function()
-{
-  // var logger = qx.log.Logger.getClassLogger(qx.core.Object);
-  // logger.debug("Disposing Application");
-
-  // var vStart = (new Date).valueOf();
-  qx.core.Object._disposeAll = true;
-  var vObject;
-
-  for (var i=qx.core.Object._db.length-1; i>=0; i--)
-  {
-    vObject = qx.core.Object._db[i];
-
-    if (vObject && vObject._disposed === false)
-    {
-      // logger.debug("Disposing: " + vObject);
-      vObject.dispose();
-    }
-  }
-
-  // logger.debug("Done in: " + ((new Date).valueOf() - vStart) + "ms");
-}
-
-
-/**
- * Summary of allocated objects
- *
- * @return {String} summary of allocated objects.
- */
-qx.Class.summary = function()
-{
-  var vData = {};
-  var vCounter = 0;
-  var vObject;
-
-  for (var i=qx.core.Object._db.length-1; i>=0; i--)
-  {
-    vObject = qx.core.Object._db[i];
-
-    if (vObject && vObject._disposed === false)
-    {
-      if (vData[vObject.classname] == null)
-      {
-        vData[vObject.classname] = 1;
-      }
-      else
-      {
-        vData[vObject.classname]++;
-      }
-
-      vCounter++;
-    }
-  }
-
-  var vArrData = [];
-
-  for (var vClassName in vData) {
-    vArrData.push({ classname : vClassName, number : vData[vClassName] });
-  }
-
-  vArrData.sort(function(a, b) {
-    return b.number - a.number;
-  });
-
-  var vMsg = "Summary: (" + vCounter + " Objects)\n\n";
-
-  for (var i=0; i<vArrData.length; i++) {
-    vMsg += vArrData[i].number + ": " + vArrData[i].classname + "\n";
-  }
-
-  alert(vMsg);
-};
-
-/**
- * Enable or disable the Object.
- *
- * The actual semantic of this property depends on concrete subclass of qx.core.Object.
- */
-qx.OO.addProperty({ name : "enabled", type : "boolean", defaultValue : true, getAlias : "isEnabled" });
-
-
-
-
-
-
-/* ************************************************************************
-   Instance data, properties and methods
-************************************************************************ */
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-/**
- * Returns a string represantation of the qooxdoo object.
- *
- * @return {String} string representation of the object
- */
-qx.Proto.toString = function()
-{
-  if(this.classname) {
-    return "[object " + this.classname + "]";
-  }
-
-  return "[object Object]";
-}
-
-
-/**
- * Return unique hash code of object
- *
- * @return {Integer} unique hash code of the object
- */
-qx.Proto.toHashCode = function() {
-  return this._hashCode;
-}
-
-
-/**
- * Returns true if the object is disposed.
- *
- * @return {Boolean} wether the object has been disposed
- */
-qx.Proto.getDisposed = function() {
-  return this._disposed;
-}
-
-
-/**
- * Returns true if the object is disposed.
- *
- * @return {Boolean} wether the object has been disposed
- */
-qx.Proto.isDisposed = function() {
-  return this._disposed;
-}
-
-
-/**
- * Returns a settings from global setting definition
- *
- * @param vKey {String} the key
- * @return {Object} value of the global setting
- */
-qx.Proto.getSetting = function(vKey) {
-  return qx.Settings.getValueOfClass(this.classname, vKey);
-}
-
-
-/*
----------------------------------------------------------------------------
-  I18N INTERFACE
----------------------------------------------------------------------------
-*/
-
-/**
- * Translate a message
- * Mark the message for translation.
- * @see qx.lang.String.format
- *
- * @param messageId {String} message id (may contain format strings)
- * @param varargs {Object} variable number of argumes applied to the format string
- * @return {qx.locale.LocalizedString}
- */
-qx.Proto.tr = function(messageId, varargs) {
-  var nlsManager = qx.locale.Manager;
-  return nlsManager.tr.apply(nlsManager, arguments);
-};
-
-
-/**
- * Translate a plural message
- * Mark the messages for translation.
- *
- * Depending on the third argument the plursl or the singular form is chosen.
- *
- * @see qx.lang.String.format
- *
- * @param singularMessageId {String} message id of the singular form (may contain format strings)
- * @param pluralMessageId {String} message id of the plural form (may contain format strings)
- * @param count {Integer} if greater than 1 the plural form otherwhise the singular form is returned.
- * @param varargs {Object} variable number of argumes applied to the format string
- * @return {qx.locale.LocalizedString)
- */
-qx.Proto.trn = function(singularMessageId, pluralMessageId, count, varargs) {
-  var nlsManager = qx.locale.Manager;
-  return nlsManager.trn.apply(nlsManager, arguments);
-};
-
-
-/**
- * Mark the message for translation but return the original message.
- *
- * @param messageId {String} the message ID
- * @return {String} messageId
- */
-qx.Proto.marktr = function(messageId) {
-  var nlsManager = qx.locale.Manager;
-  return nlsManager.marktr.apply(nlsManager, arguments);
-};
-
-/*
----------------------------------------------------------------------------
-  LOGGING INTERFACE
----------------------------------------------------------------------------
-*/
-
-/**
- * Returns the logger of this class.
- *
- * @return {qx.log.Logger} the logger of this class.
- */
-qx.Proto.getLogger = function() {
-  return qx.log.Logger.getClassLogger(this.constructor);
-}
-
-
-/**
- * Logs a debug message.
- *
- * @param msg {var} the message to log. If this is not a string, the
- *        object dump will be logged.
- * @param exc {var ? null} the exception to log.
- */
-qx.Proto.debug = function(msg, exc) {
-  this.getLogger().debug(msg, this._hashCode, exc);
-}
-
-
-/**
- * Logs an info message.
- *
- * @param msg {var} the message to log. If this is not a string, the
- *    object dump will be logged.
- * @param exc {var ? null} the exception to log.
- */
-qx.Proto.info = function(msg, exc) {
-  this.getLogger().info(msg, this._hashCode, exc);
-}
-
-
-/**
- * Logs a warning message.
- *
- * @param msg {var} the message to log. If this is not a string, the
- *    object dump will be logged.
- * @param exc {var ? null} the exception to log.
- */
-qx.Proto.warn = function(msg, exc) {
-  this.getLogger().warn(msg, this._hashCode, exc);
-}
-
-
-/**
- * Logs an error message.
- *
- * @param msg {var} the message to log. If this is not a string, the
- *    object dump will be logged.
- * @param exc {var ? null} the exception to log.
- */
-qx.Proto.error = function(msg, exc) {
-  this.getLogger().error(msg, this._hashCode, exc);
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  COMMON SETTER/GETTER SUPPORT
----------------------------------------------------------------------------
-*/
-
-/**
- * Sets multiple properties at once by using a property list
- *
- * @param propertyValues {Object} A hash of key-value pairs.
- */
-qx.Proto.set = function(propertyValues)
-{
-  if (typeof propertyValues !== "object") {
-    throw new Error("Please use a valid hash of property key-values pairs.");
-  }
-
-  for (var prop in propertyValues)
-  {
-    try
-    {
-      this[qx.OO.setter[prop]](propertyValues[prop]);
-    }
-    catch(ex)
-    {
-      this.error("Setter of property '" + prop + "' returned with an error", ex);
-    }
-  }
-
-  return this;
-}
-
-/**
- * Gets multiple properties at once by using a property list
- *
- * @param propertyNames {String | Array | Map} list of the properties to get
- * @param outputHint {String ? "array"} how should the values be returned. Possible values are "hash" and "array".
-*/
-qx.Proto.get = function(propertyNames, outputHint)
-{
-  switch(typeof propertyNames)
-  {
-    case "string":
-      return this["get" + qx.lang.String.toFirstUp(propertyNames)]();
-
-    case "object":
-      if (typeof propertyNames.length === "number")
-      {
-        if (outputHint == "hash")
-        {
-          var h = {};
-
-          propertyLength = propertyNames.length;
-          for (var i=0; i<propertyLength; i++)
-          {
-            try{
-              h[propertyNames[i]] = this["get" + qx.lang.String.toFirstUp(propertyNames[i])]();
-            }
-            catch(ex)
-            {
-              throw new Error("Could not get a valid value from property: " + propertyNames[i] + "! Is the property existing? (" + ex + ")");
-            }
-          }
-
-          return h;
-        }
-        else
-        {
-          propertyLength = propertyNames.length;
-          for (var i=0; i<propertyLength; i++)
-          {
-            try{
-              propertyNames[i] = this["get" + qx.lang.String.toFirstUp(propertyNames[i])]();
-            }
-            catch(ex)
-            {
-              throw new Error("Could not get a valid value from property: " + propertyNames[i] + "! Is the property existing? (" + ex + ")");
-            }
-          }
-
-          return propertyNames;
-        }
-      }
-      else
-      {
-        for (var i in propertyNames) {
-          propertyNames[i] = this["get" + qx.lang.String.toFirstUp(i)]();
-        }
-
-        return propertyNames;
-      }
-
-    default:
-      throw new Error("Please use a valid array, hash or string as parameter!");
-  }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  USER DATA
----------------------------------------------------------------------------
-*/
-
-/**
- * Store user defined data inside the object.
- *
- * @param vKey {String} the key
- * @param vValue {Object} the value of the user data
- */
-qx.Proto.setUserData = function(vKey, vValue)
-{
-  if (!this._userData) {
-    this._userData = {};
-  }
-
-  this._userData[vKey] = vValue;
-}
-
-
-/**
- * Load user defined data from the object
- *
- * @param vKey {String} the key
- * @return {Object} the user data
- */
-qx.Proto.getUserData = function(vKey)
-{
-  if (!this._userData) {
-    return null;
-  }
-
-  return this._userData[vKey];
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._disposed = false;
-
-/**
- * Dispose this object
- */
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  // Dispose user data
-  if (this._userData)
-  {
-    for(var vKey in this._userData) {
-      this._userData[vKey] = null;
-    }
-
-    this._userData = null;
-  }
-
-  // Finally cleanup properties
-  if (this._objectproperties)
-  {
-    var a = this._objectproperties.split(",");
-    var d = qx.OO.values;
-
-    for (var i=0, l=a.length; i<l; i++) {
-      this[d[a[i]]] = null;
-    }
-
-    this._objectproperties = null;
-  }
-
-  if (this.getSetting("enableDisposerDebug"))
-  {
-    for (var vKey in this)
-    {
-      if (this[vKey] !== null && typeof this[vKey] === "object")
-      {
-        this.debug("Missing class implementation to dispose: " + vKey);
-        delete this[vKey];
-      }
-    }
-  }
-
-  /*
-  if (typeof CollectGarbage === "function") {
-    CollectGarbage();
-  }
-  */
-
-  /*
-  // see bug #258.
-  if(this._dbKey != this._hashCode) {
-    console.log("Disposing wrong entry: " + this._dbKey + " vs. " + this._hashCode);
-  }
-  */
-
-  // Delete Entry from Object DB
-  if (this._dbKey != null)
-  {
-    if (qx.core.Object._disposeAll)
-    {
-      qx.core.Object._db[this._dbKey] = null;
-      this._hashCode = null;
-      this._dbKey = null;
-    }
-    else
-    {
-      delete qx.core.Object._db[this._dbKey];
-      delete this._hashCode;
-      delete this._dbKey;
-    }
-  }
-
-  // Mark as disposed
-  this._disposed = true;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/core/Target.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/core/Target.js
deleted file mode 100644 (file)
index a22d7a6..0000000
+++ /dev/null
@@ -1,297 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-
-************************************************************************ */
-
-/**
- * This is the main constructor for all objects that need to be connected to qx.event.type.Event objects.
- *
- * In objects created with this constructor, you find functions to addEventListener or
- * removeEventListener to or from the created object. Each event to connect to has a type in
- * form of an identification string. This type could be the name of a regular dom event like "click" or
- * something self-defined like "ready".
- *
- * @param vAutoDispose {Boolean ? true} wether the object should be disposed automatically by qooxdoo
- */
-qx.OO.defineClass("qx.core.Target", qx.core.Object,
-function(vAutoDispose) {
-  qx.core.Object.call(this, vAutoDispose);
-});
-
-/**
- * @private
- */
-qx.Class.EVENTPREFIX = "evt";
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT CONNECTION
----------------------------------------------------------------------------
-*/
-
-/**
- * Add event listener to an object.
- *
- * @param vType {String} name of the event type
- * @param vFunction {Function} event callback function
- * @param vObject {Object ? window} reference to the 'this' variable inside the callback
- */
-qx.Proto.addEventListener = function(vType, vFunction, vObject)
-{
-  if(this._disposed) {
-    return;
-  }
-
-  if(typeof vFunction !== "function") {
-    throw new Error("qx.core.Target: addEventListener(" + vType + "): '" + vFunction + "' is not a function!");
-  }
-
-  // If this is the first event of given type, we need to create a subobject
-  // that contains all the actions that will be assigned to this type
-  if (this._listeners === undefined) {
-    this._listeners = {};
-  }
-
-  if(this._listeners[vType] === undefined) {
-    this._listeners[vType] = {};
-  }
-
-  // Create a special vKey string to allow identification of each bound action
-  var vKey = qx.core.Target.EVENTPREFIX + qx.core.Object.toHashCode(vFunction) + (vObject ? "_" + qx.core.Object.toHashCode(vObject) : "");
-
-  // Finally set up the listeners object
-  this._listeners[vType][vKey] =
-  {
-    handler : vFunction,
-    object : vObject
-  }
-}
-
-
-/**
- * Remove event listener from object
- *
- * @param vType {String} name of the event type
- * @param vFunction {Function} event callback function
- * @param vObject {Object ? window} reference to the 'this' variable inside the callback
- */
-qx.Proto.removeEventListener = function(vType, vFunction, vObject)
-{
-  if(this._disposed) {
-    return;
-  }
-
-  var vListeners = this._listeners;
-  if (!vListeners || vListeners[vType] === undefined) {
-    return;
-  }
-
-  if(typeof vFunction !== "function") {
-    throw new Error("qx.core.Target: removeEventListener(" + vType + "): '" + vFunction + "' is not a function!");
-  }
-
-  // Create a special vKey string to allow identification of each bound action
-  var vKey = qx.core.Target.EVENTPREFIX + qx.core.Object.toHashCode(vFunction) + (vObject ? "_" + qx.core.Object.toHashCode(vObject) : "");
-
-  // Delete object entry for this action
-  delete this._listeners[vType][vKey];
-}
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT CONNECTION UTILITIES
----------------------------------------------------------------------------
-*/
-
-/**
- * Check if there are one or more listeners for an event type.
- *
- * @param vType {String} name of the event type
- */
-qx.Proto.hasEventListeners = function(vType) {
-  return this._listeners && typeof this._listeners[vType] !== "undefined" && !qx.lang.Object.isEmpty(this._listeners[vType]);
-}
-
-
-/**
- * Checks if the event is registered. If so it creates an event object and dispatches it.
- *
- * @param vType {String} name of the event type
- */
-qx.Proto.createDispatchEvent = function(vType)
-{
-  if (this.hasEventListeners(vType)) {
-    this.dispatchEvent(new qx.event.type.Event(vType), true);
-  }
-}
-
-
-/**
- * Checks if the event is registered. If so it creates an event object and dispatches it.
- *
- * @param vType {String} name of the event type
- * @param vData {Object} user defined data attached to the event object
- */
-qx.Proto.createDispatchDataEvent = function(vType, vData)
-{
-  if (this.hasEventListeners(vType)) {
-    this.dispatchEvent(new qx.event.type.DataEvent(vType, vData), true);
-  }
-}
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT DISPATCH
----------------------------------------------------------------------------
-*/
-
-/**
- * Dispatch an event
- *
- * @param vEvent {qx.event.type.Event} event to dispatch
- * @param vEnableDispose {Boolean} wether the event object should be disposed after all event handlers run.
- * @return {Boolean} wether the event default was prevented or not. Returns true, when the event was NOT prevented.
- */
-qx.Proto.dispatchEvent = function(vEvent, vEnableDispose)
-{
-  // Ignore event if eventTarget is disposed
-  if(this.getDisposed() && this.getEnabled()) {
-    return;
-  }
-
-  if (vEvent.getTarget() == null) {
-    vEvent.setTarget(this);
-  }
-
-  if (vEvent.getCurrentTarget() == null) {
-    vEvent.setCurrentTarget(this);
-  }
-
-  // Dispatch Event
-  this._dispatchEvent(vEvent, vEnableDispose);
-
-  // Read default prevented
-  var defaultPrevented = vEvent._defaultPrevented;
-
-  // enable dispose for event?
-  vEnableDispose && vEvent.dispose();
-
-  return !defaultPrevented;
-}
-
-
-/**
- * Internal event dispatch method
- *
- * @param vEvent {qx.event.type.Event} event to dispatch
- */
-qx.Proto._dispatchEvent = function(vEvent)
-{
-  var vListeners = this._listeners;
-  if (vListeners)
-  {
-    // Setup current target
-    vEvent.setCurrentTarget(this);
-
-    // Shortcut for listener data
-    var vTypeListeners = vListeners[vEvent.getType()];
-
-    if(vTypeListeners)
-    {
-      var vFunction, vObject;
-
-      // Handle all events for the specified type
-      for (var vHashCode in vTypeListeners)
-      {
-        // Shortcuts for handler and object
-        vFunction = vTypeListeners[vHashCode].handler;
-        vObject = vTypeListeners[vHashCode].object || this;
-
-        // Call object function
-        try
-        {
-          vFunction.call(vObject, vEvent);
-        }
-        catch(ex)
-        {
-          this.error("Could not dispatch event of type \"" + vEvent.getType() + "\"", ex);
-        }
-      }
-    }
-  }
-
-  // Bubble event to parents
-  // TODO: Move this to Parent or Widget?
-  if(vEvent.getBubbles() && !vEvent.getPropagationStopped() && this.getParent)
-  {
-    var vParent = this.getParent();
-    if (vParent && !vParent.getDisposed() && vParent.getEnabled()) {
-      vParent._dispatchEvent(vEvent);
-    }
-  }
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-/**
- * Destructor.
- */
-qx.Proto.dispose = function()
-{
-  if(this.getDisposed()) {
-    return;
-  }
-
-  if (typeof this._listeners === "object")
-  {
-    for (var vType in this._listeners)
-    {
-      var listener = this._listeners[vType];
-      for (var vKey in listener)
-      {
-        listener[vKey] = null;
-      }
-
-      this._listeners[vType] = null;
-    }
-  }
-
-  this._listeners = null;
-
-  return qx.core.Object.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/core/Version.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/core/Version.js
deleted file mode 100755 (executable)
index 6c67f7b..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-
-************************************************************************ */
-
-/**
- * Framework version number information
- *
- * TODO:
- * <ul>
- *   <li>Resemble naming of http://en.wikipedia.org/wiki/Software_version</li>
- *   <li>Compare/unify with qx.type.Version</li>
- *   <li>The following class variables are not yet included in the api viewer:
- *     <ul>
- *       <li>major</li>
-  *      <li>minor</li>
-  *      <li>revision (rename to: maintenance)</li>
-  *      <li>state</li>
-  *      <li>svn (rename to: revision)</li>
-  *    </ul>
-  *  </li>
-  * </ul>
- */
-qx.OO.defineClass("qx.core.Version");
-
-/** {Integer} Major version number */
-qx.Class.major = 0;
-
-/** {Integer} Minor version number */
-qx.Class.minor = 0;
-
-/** {Integer} Maintenance number */
-qx.Class.revision = 0;
-
-/** {String} Revision state */
-qx.Class.state = "";
-
-/** {Integer} Subversion revision number */
-qx.Class.svn = 0;
-
-/** {String} Subversion folder e.g. trunk, release_0_6_3, ... */
-qx.Class.folder = "";
-
-/**
- * returns the qooxdoo version string
- *
- * @return {String} qooxdoo version string
- */
-qx.Class.toString = function()
-{
-  var vClass = qx.core.Version;
-  return vClass.major + "." + vClass.minor
-    + (vClass.revision==0 ? "" : "." + vClass.revision)
-    + (vClass.state == "" ? "" : "-" + vClass.state)
-    + (vClass.svn==0 ? "" : " (r" + vClass.svn + ")")
-    + (vClass.folder == "" ? "" : " [" + vClass.folder + "]");
-};
-
-/**
- * Initialize class members
- */
-qx.Class._init = function()
-{
-  var vClass = qx.core.Version;
-
-  var vSplit = qx.VERSION.split(" ");
-  var vVersion = vSplit.shift();
-  var vInfos = vSplit.join(" ");
-
-  if (/([0-9]+)\.([0-9]+)(\.([0-9]))?(-([a-z]+))?/.test(vVersion))
-  {
-    vClass.major = (RegExp.$1 != "" ? parseInt(RegExp.$1) : 0);
-    vClass.minor = (RegExp.$2 != "" ? parseInt(RegExp.$2) : 0);
-    vClass.revision = (RegExp.$4 != "" ? parseInt(RegExp.$4) : 0);
-    vClass.state = typeof RegExp.$6 == "string" ? RegExp.$6 : "";
-  }
-
-  if (/(\(r([0-9]+)\))?(\s\[(\w+)\])?/.test(vInfos))
-  {
-    vClass.svn = (RegExp.$2 != "" ? parseInt(RegExp.$2) : 0);
-    vClass.folder = typeof RegExp.$4 == "string" ? RegExp.$4 : "";
-  }
-};
-
-// Initialize at load time
-qx.Class._init();
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/dev/Pollution.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/dev/Pollution.js
deleted file mode 100644 (file)
index 73d17af..0000000
+++ /dev/null
@@ -1,290 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Carsten Lergenmueller (carstenl)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(dev)
-
-************************************************************************ */
-
-/**
- * Retrieve information about global namespace pollution
- */
-qx.OO.defineClass("qx.dev.Pollution");
-
-qx.Class.names =
-{
-  "window" : window,
-  "document" : document,
-  "body" : document.body
-}
-
-qx.Class.ignore =
-{
-  "window" :
-  [
-    // qooxdoo
-    "qx",
-
-    // Java
-    "java",
-    "sun",
-    "Packages",
-
-    // Firefox
-    "__firebug__",
-    "Components",
-    "controllers",
-    "sessionStorage",
-    "globalStorage",
-
-    // Firefox extension: Firebug
-    "console",
-
-    // IE
-    "event",
-    "offscreenBuffering",
-    "clipboardData",
-    "clientInformation",
-    "Option",
-    "Image",
-    "external",
-    "screenTop",
-    "screenLeft",
-
-    // Standard
-    "length",
-    "window",
-    "document",
-    "location",
-    "navigator",
-    "netscape",
-    "parent",
-    "frames",
-    "top",
-    "scrollbars",
-    "name",
-    "scrollX",
-    "scrollY",
-    "self",
-    "screen",
-    "history",
-    "content",
-    "menubar",
-    "toolbar",
-    "locationbar",
-    "personalbar",
-    "statusbar",
-    "directories",
-    "closed",
-    "crypto",
-    "pkcs11",
-    "opener",
-    "status",
-    "defaultStatus",
-    "innerWidth",
-    "innerHeight",
-    "outerWidth",
-    "outerHeight",
-    "screenX",
-    "screenY",
-    "pageXOffset",
-    "pageYOffset",
-    "scrollMaxX",
-    "scrollMaxY",
-    "fullScreen",
-    "frameElement",
-    "XMLHttpRequest"
-  ],
-
-  "document" :
-  [
-    "domConfig",
-    "location",
-    "compatMode",
-    "implementation",
-    "defaultView",
-    "title",
-    "body",
-    "styleSheets",
-    "documentElement",
-    "nodeName",
-    "nodeType",
-    "firstChild",
-    "lastChild",
-    "doctype",
-    "images",
-    "applets",
-    "links",
-    "forms",
-    "anchors",
-    "cookie",
-    "embeds",
-    "plugins",
-    "designMode",
-    "childNodes"
-  ],
-
-  "body" :
-  [
-    "textContent",
-    "innerHTML",
-    "outerHTML",
-    "innerText",
-    "outerText",
-    "scopeName",
-    "parentElement",
-    "tagName",
-    "filters",
-    "contentEditable",
-    "document",
-    "currentStyle",
-    "isMultiLine",
-    "clientHeight",
-    "clientWidth",
-
-    "lastChild",
-    "firstChild",
-    "offsetTop",
-    "offsetLeft",
-    "offsetWidth",
-    "offsetHeight",
-    "tabIndex",
-    "className",
-    "attributes",
-    "previousSibling",
-    "nextSibling",
-    "ownerDocument",
-    "localName",
-    "childNodes",
-    "parentNode",
-    "nodeType",
-    "nodeName",
-    "style",
-
-    "scrollTop",
-    "scrollLeft",
-    "scrollWidth",
-    "scrollHeight"
-  ]
-}
-
-qx.Class.consoleInfo = function(object)
-{
-  var msg = qx.dev.Pollution.getTextList(object);
-
-  if (msg) {
-    alert("Global namespace is polluted by the following unknown objects:\n\n" + msg);
-  } else {
-    alert("Global namespace is not polluted by any unknown objects.");
-  }
-}
-
-qx.Class.extract = function(object)
-{
-  var ext = [];
-  var ign = qx.dev.Pollution.ignore[object];
-  var clientInfos = qx.core.Client.getInstance();
-
-  //IE offers a window[index] access to the frames of a window, i. e.
-  //for three frame, the window object will have attributes "0", "1" and "2"
-  if (clientInfos.isMshtml() && (object == "window")){
-    ign = ign.slice();
-    for (var frameIndex = 0; frameIndex < window.length; frameIndex++){
-      ign.push("" + frameIndex);
-    }
-  }
-
-  var obj = qx.dev.Pollution.names[object];
-
-  for (var key in obj)
-  {
-    try
-    {
-      //MS IE 7 crashes when doing typeof(window.external), catch here
-      if ( clientInfos.isMshtml() && (clientInfos.getMajor() >= 7)
-           && (object == "window") && (key == "external") ) {
-        continue;
-      }
-
-      // Ignore null or undefined values
-      if (typeof obj[key] == "undefined" || obj[key] === null) {
-        continue;
-      }
-
-      // Ignore native code
-      if (typeof obj[key] == "function" && obj[key].toString().indexOf("[native code]") != -1) {
-        continue;
-      }
-
-      // Ignore if configured
-      if (qx.lang.Array.contains(ign, key)) {
-        continue;
-      }
-
-    }
-    catch(ex)
-    {
-      continue;
-    }
-
-    ext.push({ "key" : key, "value" : obj[key] });
-  }
-
-  return ext;
-}
-
-qx.Class.getHtmlTable = function(object)
-{
-  var all = [];
-
-  var rowStart = "<tr style='vertical-align:top'><td>";
-  var cellSplit = "</td><td>";
-  var rowEnd = "</td></tr>";
-
-  all.push("<table>");
-
-  var ext = this.extract(object);
-
-  for (var i=0; i<ext.length; i++) {
-    all.push(rowStart + ext[i].key + cellSplit + ext[i].value + rowEnd);
-  }
-
-  all.push("</table>");
-
-  return all.join("");
-}
-
-qx.Class.getTextList = function(object)
-{
-  var all = [];
-
-  var cellSplit = ": ";
-  var rowEnd = "\n";
-
-  var ext = this.extract(object);
-
-  for (var i=0; i<ext.length; i++) {
-    all.push(ext[i].key + cellSplit + ext[i].value + rowEnd);
-  }
-
-  return all.join("");
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/dev/TimeTracker.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/dev/TimeTracker.js
deleted file mode 100755 (executable)
index 15d09af..0000000
+++ /dev/null
@@ -1,323 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(dev)
-#embed(qx.icontheme/16/actions/dialog-ok.png)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.dev.TimeTracker", qx.core.Object,
-function()
-{
-  qx.core.Object.call(this);
-
-  this._functions = qx.lang.Array.fromArguments(arguments);
-
-  this.buttonSets();
-});
-
-qx.dev.TimeTracker.compare = function(a, b) {
-  return a-b;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.buttonSets = function()
-{
-  var btnLayout = new qx.ui.layout.HorizontalBoxLayout;
-
-  btnLayout.setLocation(20, 48);
-  btnLayout.setSpacing(5);
-
-  var loopLabel = new qx.ui.basic.Atom("Method Loops: ");
-  loopLabel.setAllowStretchY(false);
-  loopLabel.setVerticalAlign("middle");
-
-  var loopInput = new qx.ui.form.TextField("100");
-  loopInput.setAllowStretchY(false);
-  loopInput.setWidth(50);
-  loopInput.setVerticalAlign("middle");
-
-  var repeatLabel = new qx.ui.basic.Atom("Repeat Number: ");
-  repeatLabel.setAllowStretchY(false);
-  repeatLabel.setVerticalAlign("middle");
-  repeatLabel.setMarginLeft(30);
-
-  var btnStart1 = new qx.ui.form.Button("Start 3x", "icon/16/actions/dialog-ok.png");
-  var btnStart2 = new qx.ui.form.Button("Start 7x", "icon/16/actions/dialog-ok.png");
-  var btnStart3 = new qx.ui.form.Button("Start 15x", "icon/16/actions/dialog-ok.png");
-  var btnStart4 = new qx.ui.form.Button("Start 25x", "icon/16/actions/dialog-ok.png");
-
-  btnStart1.addEventListener("execute", function() { this.start(3, parseInt(loopInput.getValue())); }, this);
-  btnStart2.addEventListener("execute", function() { this.start(7, parseInt(loopInput.getValue())); }, this);
-  btnStart3.addEventListener("execute", function() { this.start(15, parseInt(loopInput.getValue())); }, this);
-  btnStart4.addEventListener("execute", function() { this.start(25, parseInt(loopInput.getValue())); }, this);
-
-  var htmlOutput = this._output = new qx.ui.embed.HtmlEmbed();
-
-  htmlOutput.setHtml("");
-  htmlOutput.setLocation(20, 78);
-  htmlOutput.setRight(335);
-  htmlOutput.setBottom(48);
-  htmlOutput.setBorder("1px solid black");
-  htmlOutput.setBackgroundColor("white");
-  htmlOutput.setPadding(10);
-  htmlOutput.setOverflow("auto");
-  htmlOutput.addToDocument();
-
-  btnLayout.add(loopLabel, loopInput, repeatLabel, btnStart1, btnStart2, btnStart3, btnStart4);
-  btnLayout.addToDocument();
-}
-
-qx.Proto.start = function(vRounds, vLoops)
-{
-  var vFuncs = this._functions;
-  var vLength = vFuncs.length;
-  var vStart;
-  var vLocalTimes;
-  var vAllTimes = [];
-  var vHtmlMeasured = [];
-  var vHtmlResults = [];
-  var vCellWidth = Math.round(100 / (vLength+1)) + "%";
-
-  vHtmlMeasured.push("<h3>Measured Values</h3>");
-
-  vHtmlMeasured.push("<style type='text/css'>.output{border: 1px solid black; width:100%; margin-bottom: 20px } .output thead{ font-weight: bold; } .output td, .output th{ text-align:left; width: " + vCellWidth + "; } .output td{padding:4px}</style>");
-
-  vHtmlMeasured.push("<table class='output'>");
-
-  vHtmlMeasured.push("<thead>");
-
-  vHtmlMeasured.push("<tr><td>&#160;</td>");
-
-  for (var j=0; j<vLength; j++) {
-    vHtmlMeasured.push("<td>Method " + (j+1) + "</td>");
-  }
-
-  vHtmlMeasured.push("</thead><tbody>");
-
-  for (var i=0; i<vRounds; i++)
-  {
-    vLocalTimes = [];
-
-    for (var j=0; j<vLength; j++)
-    {
-      vStart = (new Date).valueOf();
-
-      vFuncs[j](vLoops);
-
-      vLocalTimes.push((new Date).valueOf()-vStart);
-    }
-
-    vHtmlMeasured.push("<tr><th>Round " + i + "</th>");
-
-    for (var j=0; j<vLocalTimes.length; j++) {
-      vHtmlMeasured.push("<td>" + vLocalTimes[j] + "</td>");
-    }
-
-    vHtmlMeasured.push("</tr>");
-    vAllTimes.push(vLocalTimes);
-  }
-
-  vHtmlMeasured.push("</tbody></table>");
-
-
-
-
-
-  var vSum, vMeanValue, vMeanAll=[], vMeanMin=1e7, vMeanMax=0;
-
-  for (var j=0; j<vLength; j++)
-  {
-    vSum = 0;
-
-    for (var i=0; i<vRounds; i++)
-    {
-      vSum += vAllTimes[i][j];
-    }
-
-    vMeanValue = Math.round(vSum / vRounds);
-
-    vMeanAll.push(vMeanValue);
-
-    vMeanMin = Math.min(vMeanMin, vMeanValue);
-    vMeanMax = Math.max(vMeanMax, vMeanValue);
-  }
-
-
-
-  var vMedian, vMedianValue, vMedianAll=[], vMedianMin=1e7, vMedianMax=0;
-
-  for (var j=0; j<vLength; j++)
-  {
-    vMedian = [];
-
-    for (var i=0; i<vRounds; i++)
-    {
-      vMedian.push(vAllTimes[i][j]);
-    }
-
-    vMedian.sort(qx.dev.TimeTracker.compare);
-    vMedianValue = vMedian[Math.floor(vRounds / 2)].toString();
-
-    vMedianAll.push(vMedianValue);
-
-    vMedianMin = Math.min(vMedianValue, vMedianMin);
-    vMedianMax = Math.max(vMedianValue, vMedianMax);
-  }
-
-
-
-
-
-  vHtmlResults.push("<h3>Results Summary</h3>");
-
-  vHtmlResults.push("<table class='output'>");
-
-  vHtmlResults.push("<thead>");
-
-  vHtmlResults.push("<tr><td>&#160;</td>");
-
-  for (var j=0; j<vLength; j++) {
-    vHtmlResults.push("<td>Method " + (j+1) + "</td>");
-  }
-
-  vHtmlResults.push("</thead><tbody>");
-
-
-  vHtmlResults.push("<tr>");
-
-  vHtmlResults.push("<th>Median</th>");
-
-  for (var j=0; j<vLength; j++) {
-    vHtmlResults.push("<td>" + vMedianAll[j] + "</td>");
-  }
-
-  vHtmlResults.push("</tr>");
-
-
-
-  vHtmlResults.push("<tr>");
-
-  vHtmlResults.push("<th>Median Factor</th>");
-
-  for (var j=0; j<vLength; j++)
-  {
-    vHtmlResults.push("<td>");
-    vHtmlResults.push(vMedianMin > 0 ? Math.round(vMedianAll[j] / vMedianMin) : "1");
-    vHtmlResults.push("x</td>");
-  }
-
-  vHtmlResults.push("</tr>");
-
-
-
-  vHtmlResults.push("<tr>");
-
-  vHtmlResults.push("<th>Mean</th>");
-
-  for (var j=0; j<vLength; j++) {
-    vHtmlResults.push("<td>" + vMeanAll[j] + "</td>");
-  }
-
-  vHtmlResults.push("</tr>");
-
-
-
-  vHtmlResults.push("<tr>");
-
-  vHtmlResults.push("<th>Mean Factor</th>");
-
-  for (var j=0; j<vLength; j++)
-  {
-    vHtmlResults.push("<td>");
-    vHtmlResults.push(vMeanMin > 0 ? Math.round(vMeanAll[j] / vMeanMin) : 1);
-    vHtmlResults.push("x</td>");
-  }
-
-  vHtmlResults.push("</tr>");
-
-
-
-  vHtmlResults.push("<tr>");
-
-  vHtmlResults.push("<th>Winner</th>");
-
-  for (var j=0; j<vLength; j++)
-  {
-    vHtmlResults.push("<td>");
-
-    if (vMedianMin == vMedianAll[j] && vMeanMin == vMeanAll[j])
-    {
-      vHtmlResults.push("BOTH");
-    }
-
-    else if (vMedianMin == vMedianAll[j])
-    {
-      vHtmlResults.push("MEDIAN");
-    }
-
-    else if (vMeanMin == vMeanAll[j])
-    {
-      vHtmlResults.push("MEAN");
-    }
-
-    vHtmlResults.push("</td>");
-  }
-
-  vHtmlResults.push("</tr>");
-
-  vHtmlResults.push("</tbody></table>");
-
-  this._output.setHtml(vHtmlResults.join("") + vHtmlMeasured.join(""));
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this._functions = null;
-
-  return qx.core.Object.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/dom/Element.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/dom/Element.js
deleted file mode 100644 (file)
index cf570f7..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/**
- * Crossbrowser operations on DOM Elements
- */
-qx.OO.defineClass("qx.dom.Element");
-
-
-/**
- * Removes whitespace-only text node children
- *
- * @param vElement {Element} DOM element
- */
-qx.Class.cleanWhitespace = function(vElement)
-{
-  for (var i=0; i<vElement.childNodes.length; i++)
-  {
-    var node = vElement.childNodes[i];
-
-    if (node.nodeType == qx.dom.Node.TEXT && !/\S/.test(node.nodeValue)) {
-      vElement.removeChild(node);
-    }
-  }
-}
-
-
-/**
- * Checks if a element has no content
- *
- * @param vElement {Element} DOM element
- */
-qx.Class.isEmpty = function(vElement) {
-  return vElement.innerHTML.match(/^\s*$/);
-}
-
-
-/**
- * Returns the text content of a DOM element
- * http://developer.mozilla.org/en/docs/DOM:element.textContent
- *
- * @param element {Element} DOM element
- * @return {String}
- */
- qx.Class.getTextContent = function(element) {
-  var text = "";
-  var childNodes = element.childNodes;
-  for (var i=0; i<childNodes.length; i++) {
-    var node = childNodes[i];
-    if (node.nodeType == qx.dom.Node.TEXT || node.nodeType == qx.dom.Node.CDATA_SECTION) {
-      text += node.nodeValue;
-    }
-  }
-  return text;
-};
-
-
-/**
- * Sets the textValue of the given DOM element (http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#Node3-textContent).
- * Wrapper for element.innerText and element.textContent.
- *
- * @param vElement {Element} DOM element
- * @param sValue {String} the value
- */
-qx.Class.setTextContent = function(vElement, sValue) {};
-
-if (qx.core.Client.getInstance().supportsTextContent()) {
-  qx.Class.setTextContent = function(vElement, sValue) {
-    vElement.textContent = sValue;
-  };
-} else if (qx.core.Client.getInstance().supportsInnerText()) {
-  qx.Class.setTextContent = function(vElement, sValue) {
-    vElement.innerText = sValue;
-  };
-} else {
-  qx.Class.setTextContent = function(vElement, sValue) {
-    vElement.innerHTML = qx.html.String.escape(sValue);
-  };
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/dom/Node.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/dom/Node.js
deleted file mode 100644 (file)
index aa747a0..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-/**
- * Types of DOM nodes
- */
-qx.OO.defineClass("qx.dom.Node",
-{
-  ELEMENT : 1,
-  ATTRIBUTE : 2,
-  TEXT : 3,
-  CDATA_SECTION : 4,
-  ENTITY_REFERENCE : 5,
-  ENTITY : 6,
-  PROCESSING_INSTRUCTION : 7,
-  COMMENT : 8,
-  DOCUMENT : 9,
-  DOCUMENT_TYPE : 10,
-  DOCUMENT_FRAGMENT : 11,
-  NOTATION : 12
-});
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/dom/String.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/dom/String.js
deleted file mode 100644 (file)
index a5979c0..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#require(qx.lang.Object)
-
-************************************************************************ */
-
-/**
- * Generic escaping and unescaping of DOM strings.
- *
- * {@link qx.html.String} for (un)escaping of HTML strings.
- *
- * {@link qx.xml.String} for (un)escaping of XML strings.
- */
-qx.OO.defineClass("qx.dom.String");
-
-
-/**
- * generic escaping method
- *
- * @param str {String} string to escape
- * @param charcodeToEntities {Map} entity to charcode map
- */
-qx.Class.escapeEntities = function(str, charcodeToEntities) {
-  var result = [];
-  for (var i=0; i<str.length; i++) {
-    var chr = str.charAt(i);
-    var code = chr.charCodeAt(0)
-    if (charcodeToEntities[code]) {
-        var entity = "&" + charcodeToEntities[code] + ";";
-    } else {
-      if (code > 0x7F) {
-        entity = "&#" + code + ";";
-      } else {
-        entity = chr;
-      }
-    }
-    result.push(entity);
-  }
-  return result.join("");
-};
-
-
-/**
- * generic unescaping method
- *
- * @param str {String} string to unescape
- * @param entitiesToCharCode {Map} charcode to entity map
- */
-qx.Class.unescapeEntities = function(str, entitiesToCharCode) {
-  return str.replace(/&[#\w]+;/gi, function(entity) {
-    var chr = entity;
-    var entity = entity.substring(1, entity.length-1);
-    var code = entitiesToCharCode[entity];
-    if (code) {
-      chr = String.fromCharCode(code);
-    } else {
-      if (entity.charAt(0) == '#') {
-        if (entity.charAt(1).toUpperCase() == 'X') {
-          var code = entity.substring(2);
-          // match hex number
-          if (code.match(/^[0-9A-Fa-f]+$/gi)) {
-            chr = String.fromCharCode(parseInt("0x" + code));
-          }
-        } else {
-        var code = entity.substring(1);
-          // match integer
-          if (code.match(/^\d+$/gi)) {
-            chr = String.fromCharCode(parseInt(code));
-          }
-        }
-      }
-    }
-    return chr;
-  });
-};
-
-
-/**
- * Remove HTML/XML tags from a string
- * Example:
- * <pre>qx.dom.String.stripTags("&lt;h1>Hello&lt;/h1>") == "Hello"</pre>
- *
- * @param str {String} string containing tags
- * @return {String} the string with stripped tags
- */
-qx.Class.stripTags = function(str) {
-  return str.replace(/<\/?[^>]+>/gi, "");
-};
-
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/handler/DragAndDropHandler.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/handler/DragAndDropHandler.js
deleted file mode 100644 (file)
index 48b3cdf..0000000
+++ /dev/null
@@ -1,952 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_dragdrop)
-#load(qx.html.ElementFromPoint)
-#embed(qx.widgettheme/cursors/*)
-
-************************************************************************ */
-
-/**
- * This manager (singleton) manage all drag and drop handling of a qx.core.Init instance.
- */
-qx.OO.defineClass("qx.event.handler.DragAndDropHandler", qx.manager.object.ObjectManager,
-function()
-{
-  qx.core.Target.call(this);
-
-  this._data = {};
-  this._actions = {};
-  this._cursors = {};
-
-  var vCursor;
-  for (var vAction in this._actionNames)
-  {
-    vCursor = this._cursors[vAction] = new qx.ui.basic.Image(this._cursorPath + vAction + "." + this._cursorFormat);
-    vCursor.setZIndex(1e8);
-  }
-});
-
-qx.OO.addProperty({ name : "sourceWidget", type : "object" });
-qx.OO.addProperty({ name : "destinationWidget", type : "object" });
-qx.OO.addProperty({ name : "cursor", type : "object" });
-qx.OO.addProperty({ name : "currentAction", type : "string" });
-
-/**
- * The default delta x of the cursor feedback.
- *
- * @see #setCursorPosition
- */
-qx.OO.addProperty({ name : "defaultCursorDeltaX", type : "number", defaultValue : 5, allowNull : false });
-
-/**
- * The default delta y of the cursor feedback.
- *
- * @see #setCursorPosition
- */
-qx.OO.addProperty({ name : "defaultCursorDeltaY", type : "number", defaultValue : 15, allowNull : false });
-
-qx.Proto._actionNames =
-{
-  move : "move",
-  copy : "copy",
-  alias : "alias",
-  nodrop : "nodrop"
-}
-
-qx.Proto._cursorPath = "widget/cursors/";
-qx.Proto._cursorFormat = "gif";
-qx.Proto._lastDestinationEvent = null;
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  COMMON MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyDestinationWidget = function(propValue, propOldValue, propData)
-{
-  if (propValue)
-  {
-    propValue.dispatchEvent(new qx.event.type.DragEvent("dragdrop", this._lastDestinationEvent, propValue, this.getSourceWidget()));
-    this._lastDestinationEvent = null;
-  }
-
-  return true;
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DATA HANDLING
----------------------------------------------------------------------------
-*/
-
-/*!
-Add data of mimetype.
-
-#param vMimeType[String]: A valid mimetype
-#param vData[Any]: Any value for the mimetype
-*/
-qx.Proto.addData = function(vMimeType, vData) {
-  this._data[vMimeType] = vData;
-}
-
-qx.Proto.getData = function(vMimeType) {
-  return this._data[vMimeType];
-}
-
-qx.Proto.clearData = function() {
-  this._data = {};
-}
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MIME TYPE HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getDropDataTypes = function()
-{
-  var vDestination = this.getDestinationWidget();
-  var vDropTypes = [];
-
-  // If there is not any destination, simple return
-  if (!vDestination) {
-    return vDropTypes;
-  }
-
-  // Search for matching mimetypes
-  var vDropDataTypes = vDestination.getDropDataTypes();
-
-  for (var i=0, l=vDropDataTypes.length; i<l; i++) {
-    if (vDropDataTypes[i] in this._data) {
-      vDropTypes.push(vDropDataTypes[i]);
-    }
-  }
-
-  return vDropTypes;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  START DRAG
----------------------------------------------------------------------------
-*/
-
-/*!
-This needed be called from any "dragstart" event to really start drag session.
-*/
-qx.Proto.startDrag = function()
-{
-  if (!this._dragCache) {
-    throw new Error("Invalid usage of startDrag. Missing dragInfo!");
-  }
-
-  // Update status flag
-  this._dragCache.dragHandlerActive = true;
-
-  // Internal storage of source widget
-  this.setSourceWidget(this._dragCache.sourceWidget);
-
-  // Add feedback widget
-  if (this._feedbackWidget) {
-    this._feedbackWidget.setVisibility(false);
-
-    var doc = qx.ui.core.ClientDocument.getInstance();
-    doc.add(this._feedbackWidget);
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  FIRE IMPLEMENTATION FOR USER EVENTS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._fireUserEvents = function(fromWidget, toWidget, e)
-{
-  if (fromWidget && fromWidget != toWidget && fromWidget.hasEventListeners("dragout")) {
-    fromWidget.dispatchEvent(new qx.event.type.DragEvent("dragout", e, fromWidget, toWidget), true);
-  }
-
-  if (toWidget)
-  {
-    if (fromWidget != toWidget && toWidget.hasEventListeners("dragover")) {
-      toWidget.dispatchEvent(new qx.event.type.DragEvent("dragover", e, toWidget, fromWidget), true);
-    }
-
-    if (toWidget.hasEventListeners("dragmove")) {
-      toWidget.dispatchEvent(new qx.event.type.DragEvent("dragmove", e, toWidget, null), true);
-    }
-  }
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  HANDLER FOR MOUSE EVENTS
----------------------------------------------------------------------------
-*/
-
-/*!
-This wraps the mouse events to custom handlers.
-*/
-qx.Proto.handleMouseEvent = function(e)
-{
-  switch (e.getType())
-  {
-    case "mousedown":
-      return this._handleMouseDown(e);
-
-    case "mouseup":
-      return this._handleMouseUp(e);
-
-    case "mousemove":
-      return this._handleMouseMove(e);
-  }
-}
-
-/*!
-This starts the core drag and drop session.
-
-To really get drag and drop working you need to define
-a function which you attach to "dragstart"-event, which
-invokes at least this.startDrag()
-*/
-qx.Proto._handleMouseDown = function(e)
-{
-  if (e.getDefaultPrevented() || ! e.isLeftButtonPressed()) {
-    return;
-  }
-
-  // Store initial dragCache
-  this._dragCache =
-  {
-    startScreenX : e.getScreenX(),
-    startScreenY : e.getScreenY(),
-
-    pageX : e.getPageX(),
-    pageY : e.getPageY(),
-
-    sourceWidget : e.getTarget(),
-    sourceTopLevel : e.getTarget().getTopLevelWidget(),
-
-    dragHandlerActive : false,
-    hasFiredDragStart : false
-  }
-}
-
-
-/*!
-Handler for mouse move events
-*/
-
-qx.Proto._handleMouseMove = function(e)
-{
-  // Return if dragCache was not filled before
-  if (!this._dragCache) {
-    return;
-  }
-
-  /*
-    Default handling if drag handler is activated
-  */
-
-  if (this._dragCache.dragHandlerActive)
-  {
-    // Update page coordinates
-    this._dragCache.pageX = e.getPageX();
-    this._dragCache.pageY = e.getPageY();
-
-    // Get current target
-    var currentDropTarget = this.getDropTarget(e);
-
-    // Update action
-    this.setCurrentAction(currentDropTarget ? this._evalNewAction(e.isShiftPressed(), e.isCtrlPressed(), e.isAltPressed()) : null);
-
-    // Fire user events
-    this._fireUserEvents(this._dragCache.currentDropWidget, currentDropTarget, e);
-
-    // Store current widget
-    this._dragCache.currentDropWidget = currentDropTarget;
-
-    // Update cursor icon
-    this._renderCursor();
-
-    // Update user feedback
-    this._renderFeedbackWidget();
-  }
-
-  /*
-    Initial activation and fire of dragstart
-  */
-  else if (!this._dragCache.hasFiredDragStart)
-  {
-    if (Math.abs(e.getScreenX() - this._dragCache.startScreenX) > 5 || Math.abs(e.getScreenY() - this._dragCache.startScreenY) > 5)
-    {
-      // Fire dragstart event to finally allow the above if to handle next events
-      this._dragCache.sourceWidget.dispatchEvent(new qx.event.type.DragEvent("dragstart", e, this._dragCache.sourceWidget), true);
-
-      // Update status flag
-      this._dragCache.hasFiredDragStart = true;
-
-      // Look if handler become active
-      if (this._dragCache.dragHandlerActive)
-      {
-        // Fire first user events
-        this._fireUserEvents(this._dragCache.currentDropWidget, this._dragCache.sourceWidget, e);
-
-        // Update status flags
-        this._dragCache.currentDropWidget = this._dragCache.sourceWidget;
-
-        // Activate capture for clientDocument
-        qx.ui.core.ClientDocument.getInstance().setCapture(true);
-      }
-    }
-  }
-}
-
-/*!
-Handle mouse up event. Normally this finalize the drag and drop event.
-*/
-qx.Proto._handleMouseUp = function(e)
-{
-  // Return if dragCache was not filled before
-  if (!this._dragCache) {
-    return;
-  }
-
-  if (this._dragCache.dragHandlerActive)
-  {
-    this._endDrag(this.getDropTarget(e), e);
-  }
-  else
-  {
-    // Clear drag cache
-    this._dragCache = null;
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  HANDLER FOR KEY EVENTS
----------------------------------------------------------------------------
-*/
-
-/*!
-This wraps the key events to custom handlers.
-*/
-qx.Proto.handleKeyEvent = function(e)
-{
-  if (!this._dragCache) {
-    return;
-  }
-
-  switch (e.getType())
-  {
-    case "keydown":
-      this._handleKeyDown(e);
-      return;
-
-    case "keyup":
-      this._handleKeyUp(e);
-      return;
-  }
-}
-
-qx.Proto._handleKeyDown = function(e)
-{
-  // Stop Drag on Escape
-  if (e.getKeyIdentifier() == "Escape")
-  {
-    this.cancelDrag(e);
-  }
-
-  // Update cursor and action on press of modifier keys
-  else if (this.getCurrentAction() != null)
-  {
-    // TODO this doesn't work in WebKit because WebKit doesn't fire keyevents for modifier keys
-    switch(e.getKeyIdentifier())
-    {
-      case "Shift":
-      case "Control":
-      case "Alt":
-        this.setAction(this._evalNewAction(e.isShiftPressed(), e.isCtrlPressed(), e.isAltPressed()));
-        this._renderCursor();
-
-        e.preventDefault();
-    }
-  }
-}
-
-qx.Proto._handleKeyUp = function(e)
-{
-  // TODO this doesn't work in WebKit because WebKit doesn't fire keyevents for modifier keys
-  var bShiftPressed = e.getKeyIdentifier() == "Shift";
-  var bCtrlPressed = e.getKeyIdentifier() == "Control";
-  var bAltPressed = e.getKeyIdentifier() == "Alt";
-
-  if (bShiftPressed || bCtrlPressed || bAltPressed)
-  {
-    if (this.getCurrentAction() != null)
-    {
-      this.setAction(this._evalNewAction(!bShiftPressed && e.isShiftPressed(), ! bCtrlPressed && e.isCtrlPressed(), !bAltPressed && e.isAltPressed()));
-      this._renderCursor();
-
-      e.preventDefault();
-    }
-  }
-}
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  IMPLEMENTATION OF DRAG&DROP SESSION FINALISATION
----------------------------------------------------------------------------
-*/
-
-/*!
-  Cancel current drag and drop session
-*/
-qx.Proto.cancelDrag = function(e) {
-  // Return if dragCache was not filled before
-  if (!this._dragCache) {
-    return;
-  }
-
-  if (this._dragCache.dragHandlerActive)
-  {
-    this._endDrag(null, e);
-  }
-  else
-  {
-    // Clear drag cache
-    this._dragCache = null;
-  }
-}
-
-qx.Proto.globalCancelDrag = function()
-{
-  if (this._dragCache && this._dragCache.dragHandlerActive) {
-    this._endDragCore();
-  }
-}
-
-/*!
-  This will be called to the end of each drag and drop session
-*/
-qx.Proto._endDrag = function(currentDestinationWidget, e)
-{
-  // Use given destination widget
-  if (currentDestinationWidget)
-  {
-    this._lastDestinationEvent = e;
-    this.setDestinationWidget(currentDestinationWidget);
-  }
-
-  // Dispatch dragend event
-  this.getSourceWidget().dispatchEvent(new qx.event.type.DragEvent("dragend", e, this.getSourceWidget(), currentDestinationWidget), true);
-
-  // Fire dragout event
-  this._fireUserEvents(this._dragCache && this._dragCache.currentDropWidget, null, e);
-
-  // Call helper
-  this._endDragCore();
-}
-
-qx.Proto._endDragCore = function()
-{
-  // Cleanup feedback widget
-  if (this._feedbackWidget) {
-    var doc = qx.ui.core.ClientDocument.getInstance();
-    doc.remove(this._feedbackWidget);
-
-    if (this._feedbackAutoDispose) {
-      this._feedbackWidget.dispose();
-    }
-
-    this._feedbackWidget = null;
-  }
-
-  // Remove cursor
-  var oldCursor = this.getCursor();
-  if (oldCursor)
-  {
-    oldCursor._style.display = "none";
-    this.forceCursor(null);
-  }
-
-  this._cursorDeltaX = null;
-  this._cursorDeltaY = null;
-
-  // Reset drag cache for next drag and drop session
-  if (this._dragCache)
-  {
-    this._dragCache.currentDropWidget = null;
-    this._dragCache = null;
-  }
-
-  // Deactivate capture for clientDocument
-  qx.ui.core.ClientDocument.getInstance().setCapture(false);
-
-  // Cleanup data and actions
-  this.clearData();
-  this.clearActions();
-
-  // Cleanup widgets
-  this.setSourceWidget(null);
-  this.setDestinationWidget(null);
-}
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  IMPLEMENTATION OF CURSOR UPDATES
----------------------------------------------------------------------------
-*/
-
-/**
- * Sets the position of the cursor feedback (the icon showing whether dropping
- * is allowed at the current position and which action a drop will do).
- *
- * @param deltaX {int} The number of pixels the top-left corner of the
- *        cursor feedback should be away from the mouse cursor in x direction.
- * @param deltaY {int} The number of pixels the top-left corner of the
- *        cursor feedback should be away from the mouse cursor in y direction.
- */
-qx.Proto.setCursorPosition = function(deltaX, deltaY) {
-  this._cursorDeltaX = deltaX;
-  this._cursorDeltaY = deltaY;
-};
-
-/*!
-  Select and setup the current used cursor
-*/
-qx.Proto._renderCursor = function()
-{
-  var vNewCursor;
-  var vOldCursor = this.getCursor();
-
-  switch(this.getCurrentAction())
-  {
-    case this._actionNames.move:
-      vNewCursor = this._cursors.move;
-      break;
-
-    case this._actionNames.copy:
-      vNewCursor = this._cursors.copy;
-      break;
-
-    case this._actionNames.alias:
-      vNewCursor = this._cursors.alias;
-      break;
-
-    default:
-      vNewCursor = this._cursors.nodrop;
-  }
-
-  // Hide old cursor
-  if (vNewCursor != vOldCursor && vOldCursor != null) {
-    vOldCursor._style.display = "none";
-  }
-
-  // Ensure that the cursor is created
-  if (!vNewCursor._initialLayoutDone)
-  {
-    qx.ui.core.ClientDocument.getInstance().add(vNewCursor);
-    qx.ui.core.Widget.flushGlobalQueues();
-  }
-
-  // Apply position with runtime style (fastest qooxdoo method)
-  vNewCursor._applyRuntimeLeft(this._dragCache.pageX
-      + ((this._cursorDeltaX != null) ? this._cursorDeltaX : this.getDefaultCursorDeltaX()));
-  vNewCursor._applyRuntimeTop(this._dragCache.pageY
-      + ((this._cursorDeltaY != null) ? this._cursorDeltaY : this.getDefaultCursorDeltaY()));
-
-  // Finally show new cursor
-  if (vNewCursor != vOldCursor) {
-    vNewCursor._style.display = "";
-  }
-
-  // Store new cursor
-  this.forceCursor(vNewCursor);
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  IMPLEMENTATION OF DROP TARGET VALIDATION
----------------------------------------------------------------------------
-*/
-
-qx.Proto.supportsDrop = function(vWidget)
-{
-  var vTypes = vWidget.getDropDataTypes();
-
-  if (!vTypes) {
-    return false;
-  }
-
-  for (var i=0; i<vTypes.length; i++)
-  {
-    if (vTypes[i] in this._data) {
-      return true;
-    }
-  }
-
-  return false;
-}
-
-/*!
-#param e[qx.event.type.MouseEvent]: Current MouseEvent for dragdrop action
-*/
-if (qx.core.Client.getInstance().isGecko())
-{
-  qx.Proto.getDropTarget = function(e)
-  {
-    var vCurrent = e.getTarget();
-
-    // work around gecko bug (all other browsers are correct)
-    // clicking on a free space and drag prohibit the get of
-    // a valid event target. The target is always the element
-    // which was the one with the mousedown event before.
-    if (vCurrent == this._dragCache.sourceWidget)
-    {
-      // vCurrent = qx.event.handler.EventHandler.getTargetObject(qx.html.ElementFromPoint.getElementFromPoint(e.getPageX(), e.getPageY()));
-
-      // this is around 8-12 times faster as the above method
-      vCurrent = this._dragCache.sourceTopLevel.getWidgetFromPoint(e.getPageX(), e.getPageY());
-    }
-    else
-    {
-      vCurrent = qx.event.handler.EventHandler.getTargetObject(null, vCurrent);
-    }
-
-    while (vCurrent != null && vCurrent != this._dragCache.sourceWidget)
-    {
-      if (!vCurrent.supportsDrop(this._dragCache)) {
-        return null;
-      }
-
-      if (this.supportsDrop(vCurrent)) {
-        return vCurrent;
-      }
-
-      vCurrent = vCurrent.getParent();
-    }
-
-    return null;
-  }
-}
-else
-{
-  qx.Proto.getDropTarget = function(e)
-  {
-    var vCurrent = e.getTarget();
-
-    while (vCurrent != null)
-    {
-      if (!vCurrent.supportsDrop(this._dragCache)) {
-        return null;
-      }
-
-      if (this.supportsDrop(vCurrent)) {
-        return vCurrent;
-      }
-
-      vCurrent = vCurrent.getParent();
-    }
-
-    return null;
-  }
-}
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ACTION HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto.addAction = function(vAction, vForce)
-{
-  this._actions[vAction] = true;
-
-  // Defaults to first added action
-  if (vForce || this.getCurrentAction() == null) {
-    this.setCurrentAction(vAction);
-  }
-}
-
-qx.Proto.clearActions = function()
-{
-  this._actions = {};
-  this.setCurrentAction(null);
-}
-
-qx.Proto.removeAction = function(vAction)
-{
-  delete this._actions[vAction];
-
-  // Reset current action on remove
-  if (this.getCurrentAction() == vAction) {
-    this.setCurrentAction(null);
-  }
-}
-
-qx.Proto.setAction = function(vAction)
-{
-  if (vAction != null && !(vAction in this._actions)) {
-    this.addAction(vAction, true);
-  }
-  else
-  {
-    this.setCurrentAction(vAction);
-  }
-}
-
-qx.Proto._evalNewAction = function(vKeyShift, vKeyCtrl, vKeyAlt)
-{
-  if (vKeyShift && vKeyCtrl && this._actionNames.alias in this._actions)
-  {
-    return this._actionNames.alias;
-  }
-  else if (vKeyShift && vKeyAlt && this._actionNames.copy in this._actions)
-  {
-    return this._actionNames.copy;
-  }
-  else if (vKeyShift && this._actionNames.move in this._actions)
-  {
-    return this._actionNames.move;
-  }
-  else if (vKeyAlt && this._actionNames.alias in this._actions)
-  {
-    return this._actionNames.alias;
-  }
-  else if (vKeyCtrl && this._actionNames.copy in this._actions)
-  {
-    return this._actionNames.copy;
-  }
-  else
-  {
-    // Return the first action found
-    for (var vAction in this._actions) {
-      return vAction;
-    }
-  }
-
-  return null;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  USER FEEDBACK SUPPORT
----------------------------------------------------------------------------
-*/
-
-/**
- * Sets the widget to show as feedback for the user. This widget should
- * represent the object(s) the user is dragging.
- *
- * @param widget {qx.ui.core.Widget} the feedback widget.
- * @param deltaX {int ? 10} the number of pixels the top-left corner of the widget
- *        should be away from the mouse cursor in x direction.
- * @param deltaY {int ? 10} the number of pixels the top-left corner of the widget
- *        should be away from the mouse cursor in y direction.
- * @param autoDisposeWidget {boolean} whether the widget should be disposed when
- *        dragging is finished or cancelled.
- */
-qx.Proto.setFeedbackWidget = function(widget, deltaX, deltaY, autoDisposeWidget) {
-  this._feedbackWidget = widget;
-  this._feedbackDeltaX = (deltaX != null) ? deltaX : 10;
-  this._feedbackDeltaY = (deltaY != null) ? deltaY : 10;
-  this._feedbackAutoDispose = autoDisposeWidget ? true : false;
-};
-
-/**
- * Renders the user feedback widget at the correct location.
- */
-qx.Proto._renderFeedbackWidget = function() {
-  if (this._feedbackWidget) {
-    this._feedbackWidget.setVisibility(true);
-
-    // Apply position with runtime style (fastest qooxdoo method)
-    this._feedbackWidget._applyRuntimeLeft(this._dragCache.pageX + this._feedbackDeltaX);
-    this._feedbackWidget._applyRuntimeTop(this._dragCache.pageY + this._feedbackDeltaY);
-  }
-};
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  // Reset drag cache for next drag and drop session
-  if (this._dragCache)
-  {
-    this._dragCache.currentDropWidget = null;
-    this._dragCache = null;
-  }
-
-  // Cleanup data and actions
-  this._data = null;
-  this._actions = null;
-  this._actionNames = null;
-
-  this._lastDestinationEvent = null;
-
-  if (this._cursors)
-  {
-    if (this._cursors.move)
-    {
-      this._cursors.move.dispose();
-      delete this._cursors.move;
-    }
-
-    if (this._cursors.copy)
-    {
-      this._cursors.copy.dispose();
-      delete this._cursors.copy;
-    }
-
-    if (this._cursors.alias)
-    {
-      this._cursors.alias.dispose();
-      delete this._cursors.alias;
-    }
-
-    if (this._cursors.nodrop)
-    {
-      this._cursors.nodrop.dispose();
-      delete this._cursors.nodrop;
-    }
-
-    this._cursors = null;
-  }
-
-  return qx.manager.object.ObjectManager.prototype.dispose.call(this);
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/handler/EventHandler.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/handler/EventHandler.js
deleted file mode 100644 (file)
index 858f8d6..0000000
+++ /dev/null
@@ -1,1182 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#require(qx.event.type.KeyEvent)
-#require(qx.event.handler.KeyEventHandler)
-#optional(qx.event.handler.DragAndDropHandler)
-#optional(qx.manager.object.MenuManager)
-#optional(qx.event.handler.FocusHandler)
-#optional(qx.manager.object.PopupManager)
-#optional(qx.manager.object.ToolTipManager)
-
-************************************************************************ */
-
-/**
- * This manager registers and manage all incoming key and mouse events.
- *
- * @event error {qx.event.type.DataEvent} Fired when an exception was thrown
- *        when dispatching the event to the listeners. The event's property
- *        "data" holds the exception.
- */
-qx.OO.defineClass("qx.event.handler.EventHandler", qx.core.Target,
-function()
-{
-  qx.core.Target.call(this);
-
-  // Object Wrapper to Events (Needed for DOM-Events)
-  var o = this;
-
-  // User Events
-  this.__onmouseevent = function(e) { return o._onmouseevent(e); };
-  this.__ondragevent = function(e) { return o._ondragevent(e); };
-  this.__onselectevent = function(e) { return o._onselectevent(e); };
-
-  // Window Events
-  this.__onwindowblur = function(e) { return o._onwindowblur(e); };
-  this.__onwindowfocus = function(e) { return o._onwindowfocus(e); };
-  this.__onwindowresize = function(e) { return o._onwindowresize(e); };
-
-  // Init Command Interface
-  this._commands = {};
-});
-
-
-
-
-
-
-qx.OO.addProperty({ name : "allowClientContextMenu", type : "boolean", defaultValue : false });
-qx.OO.addProperty({ name : "allowClientSelectAll", type : "boolean", defaultValue : false });
-
-qx.OO.addProperty({ name : "captureWidget", type : "object", instance : "qx.ui.core.Widget", allowNull : true });
-qx.OO.addProperty({ name : "focusRoot", type : "object", instance : "qx.ui.core.Parent", allowNull : true });
-
-
-
-
-
-
-qx.Class.mouseEventTypes = [ "mouseover", "mousemove", "mouseout", "mousedown", "mouseup", "click", "dblclick", "contextmenu", qx.core.Client.getInstance().isMshtml() ? "mousewheel" : "DOMMouseScroll" ];
-qx.Class.keyEventTypes = [ "keydown", "keypress", "keyup" ];
-
-if (qx.core.Client.getInstance().isGecko())
-{
-  qx.Class.dragEventTypes = [ "dragdrop", "dragover", "dragenter", "dragexit", "draggesture" ];
-}
-else if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.Class.dragEventTypes = [ "dragend", "dragover", "dragstart", "drag", "dragenter", "dragleave" ];
-}
-else
-{
-  qx.Class.dragEventTypes = [ "dragstart", "dragdrop", "dragover", "drag", "dragleave", "dragenter", "dragexit", "draggesture" ];
-}
-
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  STATE FLAGS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._lastMouseEventType = null;
-qx.Proto._lastMouseDown = false;
-qx.Proto._lastMouseEventDate = 0;
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyCaptureWidget = function(propValue, propOldValue, propData)
-{
-  if (propOldValue) {
-    propOldValue.setCapture(false);
-  }
-
-  if (propValue) {
-    propValue.setCapture(true);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyFocusRoot = function(propValue, propOldValue, propData)
-{
-  // this.debug("FocusRoot: " + propValue + "(from:" + propOldValue + ")");
-
-  if (propOldValue) {
-    propOldValue.setFocusedChild(null);
-  }
-
-  if (propValue)
-  {
-    if (propValue.getFocusedChild() == null) {
-      propValue.setFocusedChild(propValue);
-    }
-  }
-
-  return true;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  COMMAND INTERFACE
----------------------------------------------------------------------------
-*/
-
-qx.Proto.addCommand = function(vCommand) {
-  this._commands[vCommand.toHashCode()] = vCommand;
-}
-
-qx.Proto.removeCommand = function(vCommand) {
-  delete this._commands[vCommand.toHashCode()];
-}
-
-qx.Proto._checkKeyEventMatch = function(e)
-{
-  var vCommand;
-
-  for (var vHash in this._commands)
-  {
-    vCommand = this._commands[vHash];
-
-    if (vCommand.getEnabled() && vCommand._matchesKeyEvent(e))
-    {
-      // allow the user to stop the event
-      // through the execute event.
-      if (!vCommand.execute(e.getTarget())) {
-        e.preventDefault();
-      }
-
-      break;
-    }
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT-MAPPING
----------------------------------------------------------------------------
-*/
-
-qx.Proto.attachEvents = function()
-{
-  // Register dom events
-  this.attachEventTypes(qx.event.handler.EventHandler.mouseEventTypes, this.__onmouseevent);
-  this.attachEventTypes(qx.event.handler.EventHandler.dragEventTypes, this.__ondragevent);
-
-  // Unregister separate handler events
-  qx.event.handler.KeyEventHandler.getInstance()._attachEvents();
-
-  // Register window events
-  qx.html.EventRegistration.addEventListener(window, "blur", this.__onwindowblur);
-  qx.html.EventRegistration.addEventListener(window, "focus", this.__onwindowfocus);
-  qx.html.EventRegistration.addEventListener(window, "resize", this.__onwindowresize);
-
-  // Register selection events
-  document.body.onselect = document.onselectstart = document.onselectionchange = this.__onselectevent;
-}
-
-qx.Proto.detachEvents = function()
-{
-  // Unregister dom events
-  this.detachEventTypes(qx.event.handler.EventHandler.mouseEventTypes, this.__onmouseevent);
-  this.detachEventTypes(qx.event.handler.EventHandler.dragEventTypes, this.__ondragevent);
-
-  // Unregister separate handler events
-  qx.event.handler.KeyEventHandler.getInstance()._detachEvents();
-
-  // Unregister window events
-  qx.html.EventRegistration.removeEventListener(window, "blur", this.__onwindowblur);
-  qx.html.EventRegistration.removeEventListener(window, "focus", this.__onwindowfocus);
-  qx.html.EventRegistration.removeEventListener(window, "resize", this.__onwindowresize);
-
-  // Unregister selection events
-  document.body.onselect = document.onselectstart = document.onselectionchange = null;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT-MAPPING HELPER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.attachEventTypes = function(vEventTypes, vFunctionPointer)
-{
-  try
-  {
-    // Gecko is a bit buggy to handle key events on document if not previously focused
-    // I think they will fix this sometimes, and we should add a version check here.
-    // Internet Explorer has problems to use 'window', so there we use the 'body' element
-    // as previously.
-    var el = qx.core.Client.getInstance().isGecko() ? window : document.body;
-
-    for (var i=0, l=vEventTypes.length; i<l; i++) {
-      qx.html.EventRegistration.addEventListener(el, vEventTypes[i], vFunctionPointer);
-    }
-  }
-  catch(ex)
-  {
-    throw new Error("qx.event.handler.EventHandler: Failed to attach window event types: " + vEventTypes + ": " + ex);
-  }
-}
-
-qx.Proto.detachEventTypes = function(vEventTypes, vFunctionPointer)
-{
-  try
-  {
-    var el = qx.core.Client.getInstance().isGecko() ? window : document.body;
-
-    for (var i=0, l=vEventTypes.length; i<l; i++) {
-      qx.html.EventRegistration.removeEventListener(el, vEventTypes[i], vFunctionPointer);
-    }
-  }
-  catch(ex)
-  {
-    throw new Error("qx.event.handler.EventHandler: Failed to detach window event types: " + vEventTypes + ": " + ex);
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  HELPER METHODS
----------------------------------------------------------------------------
-*/
-
-// BUG: http://xscroll.mozdev.org/
-// If your Mozilla was built with an option `--enable-default-toolkit=gtk2',
-// it can not return the correct event target for DOMMouseScroll.
-
-qx.Class.getOriginalTargetObject = function(vNode)
-{
-  // Events on the HTML element, when using absolute locations which
-  // are outside the HTML element. Opera does not seem to fire events
-  // on the HTML element.
-  if (vNode == document.documentElement) {
-    vNode = document.body;
-  }
-
-  // Walk up the tree and search for an qx.ui.core.Widget
-  while(vNode != null && vNode.qx_Widget == null)
-  {
-    try {
-      vNode = vNode.parentNode;
-    }
-    catch(vDomEvent)
-    {
-      vNode = null;
-    }
-  }
-
-  return vNode ? vNode.qx_Widget : null;
-}
-
-if (qx.core.Client.getInstance().isWebkit())
-{
-  /**
-   * extract the target node from a DOM event
-   * http://www.quirksmode.org/js/events_properties.html
-   *
-   * @param vDomEvent {Event}
-   * @return {Element} the target node
-   */
-  qx.Class.getDomTarget = function(vDomEvent)
-  {
-    var vNode = vDomEvent.target || vDomEvent.srcElement;
-
-    // Safari takes text nodes as targets for events
-    if (vNode && (vNode.nodeType == qx.dom.Node.TEXT)) {
-      vNode = vNode.parentNode;
-    }
-
-    return vNode;
-  };
-}
-else if (qx.core.Client.getInstance().isMshtml())
-{
-  /**
-   * extract the target node from a DOM event
-   * http://www.quirksmode.org/js/events_properties.html
-   *
-   * @param vDomEvent {Event}
-   * @return {Element} the target node
-   */
-  qx.Class.getDomTarget = function(vDomEvent) {
-    return vDomEvent.target || vDomEvent.srcElement;
-  };
-}
-else
-{
-  /**
-   * extract the target node from a DOM event
-   * http://www.quirksmode.org/js/events_properties.html
-   *
-   * @param vDomEvent {Event}
-   * @return {Element} the target node
-   */
-  qx.Class.getDomTarget = function(vDomEvent) {
-    return vDomEvent.target;
-  };
-}
-
-
-qx.Class.getOriginalTargetObjectFromEvent = function(vDomEvent, vWindow)
-{
-  var vNode = qx.event.handler.EventHandler.getDomTarget(vDomEvent);
-
-  // Especially to fix key events.
-  // 'vWindow' is the window reference then
-  if (vWindow)
-  {
-    var vDocument = vWindow.document;
-
-    if (vNode == vWindow || vNode == vDocument || vNode == vDocument.documentElement || vNode == vDocument.body) {
-      return vDocument.body.qx_Widget;
-    }
-  }
-
-  return qx.event.handler.EventHandler.getOriginalTargetObject(vNode);
-}
-
-qx.Class.getRelatedOriginalTargetObjectFromEvent = function(vDomEvent) {
-  return qx.event.handler.EventHandler.getOriginalTargetObject(vDomEvent.relatedTarget || (vDomEvent.type == "mouseover" ? vDomEvent.fromElement : vDomEvent.toElement));
-}
-
-
-
-
-
-
-
-qx.Class.getTargetObject = function(vNode, vObject, allowDisabled)
-{
-  if (!vObject)
-  {
-    var vObject = qx.event.handler.EventHandler.getOriginalTargetObject(vNode);
-
-    if (!vObject) {
-      return null;
-    }
-  }
-
-  // Search parent tree
-  while(vObject)
-  {
-    // Break if current object is disabled -
-    // event should be ignored then.
-    if (!allowDisabled && !vObject.getEnabled()) {
-      return null;
-    }
-
-    // If object is anonymous, search for
-    // first parent which is not anonymous
-    // and not disabled
-    if (!vObject.getAnonymous()) {
-      break;
-    }
-
-    vObject = vObject.getParent();
-  }
-
-  return vObject;
-};
-
-
-qx.Class.getTargetObjectFromEvent = function(vDomEvent) {
-  return qx.event.handler.EventHandler.getTargetObject(qx.event.handler.EventHandler.getDomTarget(vDomEvent));
-};
-
-
-qx.Class.getRelatedTargetObjectFromEvent = function(vDomEvent) {
-  var target = vDomEvent.relatedTarget;
-  if (!target) {
-    if (vDomEvent.type == "mouseover") {
-      target = vDomEvent.fromElement
-    } else {
-      target = vDomEvent.toElement
-    }
-  }
-  return qx.event.handler.EventHandler.getTargetObject(target);
-};
-
-
-/**
- * stops further propagation of the event
- *
- * @param vDomEvent {Element} DOM event object
- */
-qx.Class.stopDomEvent = function(vDomEvent) {};
-if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.Class.stopDomEvent = function(vDomEvent) {
-    vDomEvent.returnValue = false;
-  }
-}
-else
-{
-  qx.Class.stopDomEvent = function(vDomEvent)
-  {
-    vDomEvent.preventDefault();
-    vDomEvent.returnValue = false;
-  }
-};
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  KEY EVENTS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onkeyevent_post = function(vDomEvent, vType, vKeyCode, vCharCode, vKeyIdentifier)
-{
-  var vDomTarget = qx.event.handler.EventHandler.getDomTarget(vDomEvent);
-
-
-  // Find current active qooxdoo object
-  var vFocusRoot = this.getFocusRoot();
-  var vTarget = this.getCaptureWidget() || (vFocusRoot == null ? null : vFocusRoot.getActiveChild());
-
-  if (vTarget == null || !vTarget.getEnabled()) {
-    return false;
-  }
-
-  var vDomEventTarget = vTarget.getElement();
-
-
-
-
-  // Hide Menus
-  switch(vKeyIdentifier)
-  {
-    case "Escape":
-    case "Tab":
-      if (qx.OO.isAvailable("qx.manager.object.MenuManager")) {
-        qx.manager.object.MenuManager.getInstance().update(vTarget, vType);
-      }
-
-      break;
-  }
-
-
-
-
-  // TODO: Move this to KeyEvent?
-
-  // Prohibit CTRL+A
-  if (!this.getAllowClientSelectAll())
-  {
-    if (vDomEvent.ctrlKey && vKeyIdentifier == "A")
-    {
-      switch(vDomTarget.tagName.toLowerCase())
-      {
-        case "input":
-        case "textarea":
-        case "iframe":
-          break;
-
-        default:
-          qx.event.handler.EventHandler.stopDomEvent(vDomEvent);
-      }
-    }
-  }
-
-
-
-  // Create Event Object
-  var vKeyEventObject = new qx.event.type.KeyEvent(vType, vDomEvent, vDomTarget, vTarget, null, vKeyCode, vCharCode, vKeyIdentifier);
-
-  // Check for commands
-  if (vDomEvent.type == "keydown") {
-    this._checkKeyEventMatch(vKeyEventObject);
-  }
-
-  try {
-    // Starting Objects Internal Event Dispatcher
-    // This handles the real event action
-    vTarget.dispatchEvent(vKeyEventObject);
-
-    // Send event to qx.event.handler.DragAndDropHandler
-    if (qx.OO.isAvailable("qx.event.handler.DragAndDropHandler")) {
-      qx.event.handler.DragAndDropHandler.getInstance().handleKeyEvent(vKeyEventObject);
-    }
-  } catch (ex) {
-    this.error("Failed to dispatch key event", ex);
-    this.createDispatchDataEvent("error", ex);
-  }
-
-  // Cleanup Event Object
-  vKeyEventObject.dispose();
-
-  // Flush Queues
-  qx.ui.core.Widget.flushGlobalQueues();
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MOUSE EVENTS
----------------------------------------------------------------------------
-*/
-
-/*!
-  This one handle all mouse events
-
-  When a user double clicks on a qx.ui.core.Widget the
-  order of the mouse events is the following:
-
-  1. mousedown
-  2. mouseup
-  3. click
-  4. mousedown
-  5. mouseup
-  6. click
-  7. dblclick
-*/
-
-if(qx.core.Client.getInstance().isMshtml())
-{
-  qx.Proto._onmouseevent = function(vDomEvent)
-  {
-    qx.core.Init.getInstance().getComponent().preload();
-
-    if(!vDomEvent) {
-      vDomEvent = window.event;
-    }
-
-    var vDomTarget = qx.event.handler.EventHandler.getDomTarget(vDomEvent);
-    var vType = vDomEvent.type;
-
-    if(vType == "mousemove")
-    {
-      if (this._mouseIsDown && vDomEvent.button == 0)
-      {
-        this._onmouseevent_post(vDomEvent, "mouseup");
-        this._mouseIsDown = false;
-      }
-    }
-    else
-    {
-      if(vType == "mousedown")
-      {
-        this._mouseIsDown = true;
-      }
-      else if(vType == "mouseup")
-      {
-        this._mouseIsDown = false;
-      }
-
-      // Fix MSHTML Mouseup, should be after a normal click or contextmenu event, like Mozilla does this
-      if(vType == "mouseup" && !this._lastMouseDown && ((new Date).valueOf() - this._lastMouseEventDate) < 250)
-      {
-        this._onmouseevent_post(vDomEvent, "mousedown");
-      }
-      // Fix MSHTML Doubleclick, should be after a normal click event, like Mozilla does this
-      else if(vType == "dblclick" && this._lastMouseEventType == "mouseup" && ((new Date).valueOf() - this._lastMouseEventDate) < 250)
-      {
-        this._onmouseevent_post(vDomEvent, "click");
-      }
-
-      switch(vType)
-      {
-        case "mousedown":
-        case "mouseup":
-        case "click":
-        case "dblclick":
-        case "contextmenu":
-          this._lastMouseEventType = vType;
-          this._lastMouseEventDate = (new Date).valueOf();
-          this._lastMouseDown = vType == "mousedown";
-      }
-    }
-
-    this._onmouseevent_post(vDomEvent, vType, vDomTarget);
-  }
-}
-else
-{
-  qx.Proto._onmouseevent = function(vDomEvent)
-  {
-    qx.core.Init.getInstance().getComponent().preload();
-
-    var vDomTarget = qx.event.handler.EventHandler.getDomTarget(vDomEvent);
-    var vType = vDomEvent.type;
-
-    switch(vType)
-    {
-      case "DOMMouseScroll":
-        // normalize mousewheel event
-        vType = "mousewheel";
-        break;
-
-      case "click":
-      case "dblclick":
-        // ignore click or dblclick events with other then the left mouse button
-        if (vDomEvent.which !== 1) {
-          return;
-        }
-    }
-
-    this._onmouseevent_post(vDomEvent, vType, vDomTarget);
-  }
-}
-
-/*!
-Fixes browser quirks with 'click' detection
-
-Firefox 1.5.0.6: The DOM-targets are different. The click event only fires, if the target of the
-  mousedown is the same than with the mouseup. If the content moved away, the click isn't fired.
-
-Internet Explorer 6.0: The DOM-targets are identical and the click fires fine.
-
-Opera 9.01: The DOM-targets are different, but the click fires fine. Fires click successfull,
-  even if the content under the cursor was moved away.
-*/
-if (qx.core.Client.getInstance().isGecko())
-{
-  qx.Proto._onmouseevent_click_fix = function(vDomTarget, vType, vDispatchTarget)
-  {
-    var vReturn = false;
-
-    switch(vType)
-    {
-      case "mousedown":
-        this._lastMouseDownDomTarget = vDomTarget;
-        this._lastMouseDownDispatchTarget = vDispatchTarget;
-        break;
-
-      case "mouseup":
-        // Add additional click event if the dispatch target is the same, but the dom target is different
-        if (this._lastMouseDownDispatchTarget === vDispatchTarget && vDomTarget !== this._lastMouseDownDomTarget)
-        {
-          vReturn = true;
-        }
-        else
-        {
-          this._lastMouseDownDomTarget = null;
-          this._lastMouseDownDispatchTarget = null;
-        }
-    }
-
-    return vReturn;
-  };
-}
-else
-{
-  qx.Proto._onmouseevent_click_fix = function(vDomTarget, vDispatchTarget) {
-    return false;
-  }
-};
-
-/*!
-  This is the crossbrowser post handler for all mouse events.
-*/
-qx.Proto._onmouseevent_post = function(vDomEvent, vType, vDomTarget)
-{
-  try
-  {
-    var vEventObject, vCaptureTarget, vDispatchTarget, vTarget, vOriginalTarget, vRelatedTarget, vFixClick, vTargetIsEnabled;
-
-
-
-    // Check for capturing, if enabled the target is the captured widget.
-    vCaptureTarget = this.getCaptureWidget();
-
-    // Event Target Object
-    vOriginalTarget = qx.event.handler.EventHandler.getOriginalTargetObject(vDomTarget);
-
-    // If capturing isn't active search for a valid target object
-    if (!vCaptureTarget)
-    {
-      // Get Target Object
-      vDispatchTarget = vTarget = qx.event.handler.EventHandler.getTargetObject(null, vOriginalTarget, true);
-    }
-    else
-    {
-      vDispatchTarget = vCaptureTarget;
-      vTarget = qx.event.handler.EventHandler.getTargetObject(null, vOriginalTarget, true);
-    }
-
-
-
-    // If there is no target, we have nothing to do
-    if (!vTarget) {
-      return;
-    }
-    vTargetIsEnabled = vTarget.getEnabled();
-
-    // Fix click event
-    vFixClick = this._onmouseevent_click_fix(vDomTarget, vType, vDispatchTarget);
-
-
-    // Prevent the browser's native context menu
-    if (vType == "contextmenu" && !this.getAllowClientContextMenu()) {
-      qx.event.handler.EventHandler.stopDomEvent(vDomEvent);
-    }
-
-
-    // Update focus
-    if (vTargetIsEnabled && vType == "mousedown") {
-      qx.event.handler.FocusHandler.mouseFocus = true;
-
-      var vRoot = vTarget.getFocusRoot();
-
-      if (vRoot)
-      {
-        this.setFocusRoot(vRoot);
-
-        vRoot.setActiveChild(vTarget);
-
-        // Active focus on element (if possible, else search up the parent tree)
-        var vFocusTarget = vTarget;
-        while (!vFocusTarget.isFocusable() && vFocusTarget != vRoot) {
-          vFocusTarget = vFocusTarget.getParent();
-        }
-
-        vRoot.setFocusedChild(vFocusTarget);
-      }
-    }
-
-
-
-
-    var vDomEventTarget = vTarget.getElement();
-
-
-
-
-    // Find related target object
-    switch(vType)
-    {
-      case "mouseover":
-      case "mouseout":
-        vRelatedTarget = qx.event.handler.EventHandler.getRelatedTargetObjectFromEvent(vDomEvent);
-
-        // Ignore events where the related target and
-        // the real target are equal - from our sight
-        if (vRelatedTarget == vTarget) {
-          return;
-        }
-    }
-
-
-
-    try
-    {
-
-      // Create Mouse Event Object
-      vEventObject = new qx.event.type.MouseEvent(vType, vDomEvent, vDomTarget, vTarget, vOriginalTarget, vRelatedTarget);
-    }
-    catch(ex)
-    {
-      return this.error("Failed to create mouse event", ex);
-    }
-
-
-    // Store last Event in MouseEvent Constructor
-    // Needed for Tooltips, ...
-    qx.event.type.MouseEvent._storeEventState(vEventObject);
-
-
-    if (vTargetIsEnabled) {
-      // Dispatch Event through target (eventtarget-)object
-      var vEventWasProcessed = false;
-      try {
-        vEventWasProcessed = vDispatchTarget ? vDispatchTarget.dispatchEvent(vEventObject) : true;
-
-        // Handle Special Post Events
-        this._onmouseevent_special_post(vType, vTarget, vOriginalTarget, vDispatchTarget, vEventWasProcessed, vEventObject, vDomEvent);
-      } catch(ex) {
-        this.error("Failed to dispatch mouse event", ex);
-        this.createDispatchDataEvent("error", ex);
-      }
-    } else {
-      // target is disabled -> Pass the event only to the ToolTipManager
-      if (vType == "mouseover") {
-        if (qx.OO.isAvailable("qx.manager.object.ToolTipManager")) {
-          qx.manager.object.ToolTipManager.getInstance().handleMouseOver(vEventObject);
-        }
-      }
-    }
-
-
-
-    // Dispose Event Object
-    vEventObject.dispose();
-    vEventObject = null;
-
-
-
-
-    // Flush Queues
-    qx.ui.core.Widget.flushGlobalQueues();
-
-
-    // Fix Click (Gecko Bug, see above)
-    if (vFixClick)
-    {
-      this._onmouseevent_post(vDomEvent, "click", this._lastMouseDownDomTarget);
-
-      this._lastMouseDownDomTarget = null;
-      this._lastMouseDownDispatchTarget = null;
-    }
-  }
-  catch(ex)
-  {
-    return this.error("Failed to handle mouse event", ex);
-  }
-}
-
-
-qx.Proto._onmouseevent_special_post = function(vType, vTarget, vOriginalTarget, vDispatchTarget, vEventWasProcessed, vEventObject, vDomEvent) {
-  switch(vType)
-  {
-    case "mousedown":
-      if (qx.OO.isAvailable("qx.manager.object.PopupManager")) {
-        qx.manager.object.PopupManager.getInstance().update(vTarget);
-      }
-
-      if (qx.OO.isAvailable("qx.manager.object.MenuManager")) {
-        qx.manager.object.MenuManager.getInstance().update(vTarget, vType);
-      }
-
-      if (qx.OO.isAvailable("qx.manager.object.IframeManager")) {
-        qx.manager.object.IframeManager.getInstance().handleMouseDown(vEventObject);
-      }
-
-      break;
-
-    case "mouseup":
-
-      // Mouseup event should always hide, independed of target, so don't send a target
-      if (qx.OO.isAvailable("qx.manager.object.MenuManager")) {
-        qx.manager.object.MenuManager.getInstance().update(vTarget, vType);
-      }
-
-      if (qx.OO.isAvailable("qx.manager.object.IframeManager")) {
-        qx.manager.object.IframeManager.getInstance().handleMouseUp(vEventObject);
-      }
-
-      break;
-
-    case "mouseover":
-      if (qx.OO.isAvailable("qx.manager.object.ToolTipManager")) {
-        qx.manager.object.ToolTipManager.getInstance().handleMouseOver(vEventObject);
-      }
-
-      break;
-
-    case "mouseout":
-      if (qx.OO.isAvailable("qx.manager.object.ToolTipManager")) {
-        qx.manager.object.ToolTipManager.getInstance().handleMouseOut(vEventObject);
-      }
-
-      break;
-
-    case "mousewheel":
-      // priority for the real target not the (eventually captured) dispatch target
-      vEventWasProcessed ? this._onmousewheel(vOriginalTarget || vDispatchTarget, vEventObject) : qx.event.handler.EventHandler.stopDomEvent(vDomEvent);
-
-      break;
-  }
-
-
-
-  this._ignoreWindowBlur = vType === "mousedown";
-
-
-
-
-  // Send Event Object to Drag&Drop Manager
-  if (qx.OO.isAvailable("qx.event.handler.DragAndDropHandler") && vTarget) {
-    qx.event.handler.DragAndDropHandler.getInstance().handleMouseEvent(vEventObject);
-  }
-}
-
-
-if (qx.core.Client.getInstance().isGecko())
-{
-  qx.Proto._onmousewheel = function(vTarget, vEvent)
-  {
-    if(vTarget == null) {
-      return;
-    }
-
-    // ingore if overflow is configured as hidden
-    // in this case send the event to the parent instead
-    if(vTarget.getOverflowY() == "hidden") {
-      return this._onmousewheel(vTarget.getParent(), vEvent);
-    }
-
-    var vScrollTop = vTarget.getScrollTop();
-    var vDelta = 20 * vEvent.getWheelDelta();
-
-    // if already at the top edge and the user scrolls up
-    // then send the event to the parent instead
-    if(vScrollTop == 0 && vDelta > 0) {
-      return this._onmousewheel(vTarget.getParent(), vEvent);
-    }
-
-    var vScrollHeight = vTarget.getScrollHeight();
-    var vClientHeight = vTarget.getClientHeight();
-
-    // if already at the bottom edge and the user scrolls down
-    // then send the event to the parent instead
-    if(vScrollTop + vClientHeight >= vScrollHeight && vDelta < 0) {
-      return this._onmousewheel(vTarget.getParent(), vEvent);
-    }
-
-    // apply new scroll position
-    vTarget.setScrollTop(vScrollTop - vDelta);
-
-    // stop default handling, that works sometimes, too
-    vEvent.preventDefault();
-  }
-}
-else
-{
-  qx.Proto._onmousewheel = function() {};
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DRAG EVENTS
-
-    Currently only to stop non needed events
----------------------------------------------------------------------------
-*/
-
-qx.Proto._ondragevent = function(vEvent)
-{
-  if (!vEvent) {
-    vEvent = window.event;
-  }
-
-  qx.event.handler.EventHandler.stopDomEvent(vEvent);
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  SELECT EVENTS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onselectevent = function(e)
-{
-  if(!e) {
-    e = window.event;
-  }
-
-  var vTarget = qx.event.handler.EventHandler.getOriginalTargetObjectFromEvent(e);
-
-  if(vTarget && !vTarget.getSelectable()) {
-    qx.event.handler.EventHandler.stopDomEvent(e);
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  WINDOW EVENTS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._focused = false;
-
-qx.Proto._onwindowblur = function(e)
-{
-  // this.debug("Try Window blur...");
-
-  if (!this._focused || this._ignoreWindowBlur) {
-    return;
-  }
-
-  this._focused = false;
-
-  // this.debug("Window blur...");
-
-  // Disable capturing
-  this.setCaptureWidget(null);
-
-  // Hide Popups, Tooltips, ...
-  if (qx.OO.isAvailable("qx.manager.object.PopupManager")) {
-    qx.manager.object.PopupManager.getInstance().update();
-  }
-
-  // Hide Menus
-  if (qx.OO.isAvailable("qx.manager.object.MenuManager")) {
-    qx.manager.object.MenuManager.getInstance().update();
-  }
-
-  // Cancel Drag Operations
-  if (qx.OO.isAvailable("qx.event.handler.DragAndDropHandler")) {
-    qx.event.handler.DragAndDropHandler.getInstance().globalCancelDrag();
-  }
-
-  // Send blur event to client document
-  qx.ui.core.ClientDocument.getInstance().createDispatchEvent("windowblur");
-}
-
-qx.Proto._onwindowfocus = function(e)
-{
-  // this.debug("Try Window focus...");
-
-  if (this._focused) {
-    return;
-  }
-
-  this._focused = true;
-
-  // this.debug("Window focus...");
-
-  // Send focus event to client document
-  qx.ui.core.ClientDocument.getInstance().createDispatchEvent("windowfocus");
-}
-
-qx.Proto._onwindowresize = function(e)
-{
-  // Send resize event to client document
-  qx.ui.core.ClientDocument.getInstance().createDispatchEvent("windowresize");
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSE
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  // Detach mouse events
-  this.detachEvents();
-
-  // Reset functions
-  this.__onmouseevent = this.__ondragevent = this.__onselectevent = null;
-  this.__onwindowblur = this.__onwindowfocus = this.__onwindowresize = null;
-
-  // Cleanup
-  this._lastMouseEventType = null;
-  this._lastMouseDown = null;
-  this._lastMouseEventDate = null;
-
-  this._lastMouseDownDomTarget = null;
-  this._lastMouseDownDispatchTarget = null;
-
-  if (this._commands)
-  {
-    for (var vHash in this._commands)
-    {
-      this._commands[vHash].dispose();
-      delete this._commands[vHash];
-    }
-
-    this._commands = null;
-  }
-
-  qx.core.Target.prototype.dispose.call(this);
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/handler/FocusHandler.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/handler/FocusHandler.js
deleted file mode 100644 (file)
index d21639e..0000000
+++ /dev/null
@@ -1,344 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#optional(qx.ui.core.Parent)
-#optional(qx.ui.basic.Terminator)
-
-************************************************************************ */
-
-/*!
-  This object gets an instance in each focus root and manage the focus handling for it.
-*/
-qx.OO.defineClass("qx.event.handler.FocusHandler", qx.core.Target,
-function(vWidget)
-{
-  qx.core.Target.call(this);
-
-  if (vWidget != null) {
-    this._attachedWidget = vWidget;
-  }
-});
-
-qx.event.handler.FocusHandler.mouseFocus = false;
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getAttachedWidget = function() {
-  return this._attachedWidget;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  TAB-EVENT HANDLING
----------------------------------------------------------------------------
-*/
-
-// Check for TAB pressed
-// * use keydown on mshtml
-// * use keypress on vAll other (correct) browsers
-// = same behaviour
-qx.event.handler.FocusHandler.tabEventType = qx.core.Client.getInstance().isMshtml() ? "keydown" : "keypress";
-
-qx.Proto._onkeyevent = function(vContainer, vEvent)
-{
-  if (vEvent.getKeyIdentifier() != "Tab") {
-    return;
-  }
-
-  // Stop all key-events with a TAB keycode
-  vEvent.stopPropagation();
-  vEvent.preventDefault();
-
-  // But only react on the one to use for this browser.
-  if (vEvent.getType() != qx.event.handler.FocusHandler.tabEventType) {
-    return;
-  }
-
-  qx.event.handler.FocusHandler.mouseFocus = false;
-
-  var vCurrent = this.getAttachedWidget().getFocusedChild();
-
-  // Support shift key to reverse widget detection order
-  if(!vEvent.isShiftPressed()) {
-    var vNext = vCurrent ? this.getWidgetAfter(vContainer, vCurrent) : this.getFirstWidget(vContainer);
-  } else {
-    var vNext = vCurrent ? this.getWidgetBefore(vContainer, vCurrent) : this.getLastWidget(vContainer);
-  }
-
-  // If there was a widget found, focus it
-  if(vNext)
-  {
-    vNext.setFocused(true);
-    vNext._ontabfocus();
-  }
-}
-
-qx.Proto.compareTabOrder = function(c1, c2)
-{
-  // Sort-Check #1: Tab-Index
-  if(c1 == c2) {
-    return 0;
-  }
-
-  var t1 = c1.getTabIndex();
-  var t2 = c2.getTabIndex();
-
-  // The following are some ideas to handle focus after tabindex.
-
-  // Sort-Check #2: Top-Position
-  if(t1 != t2) {
-    return t1 - t2;
-  }
-
-  var y1 = qx.html.Location.getPageBoxTop(c1.getElement());
-  var y2 = qx.html.Location.getPageBoxTop(c2.getElement());
-
-  if(y1 != y2) {
-    return y1 - y2;
-  }
-
-  // Sort-Check #3: Left-Position
-  var x1 = qx.html.Location.getPageBoxLeft(c1.getElement());
-  var x2 = qx.html.Location.getPageBoxLeft(c2.getElement());
-
-  if(x1 != x2) {
-    return x1 - x2;
-  }
-
-  // Sort-Check #4: zIndex
-  var z1 = c1.getZIndex();
-  var z2 = c2.getZIndex();
-
-  if(z1 != z2) {
-    return z1 - z2;
-  }
-
-  return 0;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES FOR TAB HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getFirstWidget = function(vParentContainer) {
-  return this._getFirst(vParentContainer, null);
-}
-
-qx.Proto.getLastWidget = function(vParentContainer) {
-  return this._getLast(vParentContainer, null);
-}
-
-qx.Proto.getWidgetAfter = function(vParentContainer, vWidget)
-{
-  if(vParentContainer == vWidget) {
-    return this.getFirstWidget(vParentContainer);
-  }
-
-  if(vWidget.getAnonymous()) {
-    vWidget = vWidget.getParent();
-  }
-
-  if(vWidget == null) {
-    return [];
-  }
-
-  var vAll = [];
-
-  this._getAllAfter(vParentContainer, vWidget, vAll);
-
-  vAll.sort(this.compareTabOrder);
-
-  return vAll.length > 0 ? vAll[0] : this.getFirstWidget(vParentContainer);
-}
-
-qx.Proto.getWidgetBefore = function(vParentContainer, vWidget)
-{
-  if(vParentContainer == vWidget) {
-    return this.getLastWidget(vParentContainer);
-  }
-
-  if(vWidget.getAnonymous()) {
-    vWidget = vWidget.getParent();
-  }
-
-  if(vWidget == null) {
-    return [];
-  }
-
-  var vAll = [];
-
-  this._getAllBefore(vParentContainer, vWidget, vAll);
-
-  vAll.sort(this.compareTabOrder);
-
-  var vChildrenLength = vAll.length;
-  return vChildrenLength > 0 ? vAll[vChildrenLength-1] : this.getLastWidget(vParentContainer);
-}
-
-qx.Proto._getAllAfter = function(vParent, vWidget, vArray)
-{
-  var vChildren = vParent.getChildren();
-  var vCurrentChild;
-  var vChildrenLength = vChildren.length;
-
-  for (var i = 0; i < vChildrenLength; i++)
-  {
-    vCurrentChild = vChildren[i];
-
-    if(!(vCurrentChild instanceof qx.ui.core.Parent) && !(vCurrentChild instanceof qx.ui.basic.Terminator)) {
-      continue;
-    }
-
-    if(vCurrentChild.isFocusable() && vCurrentChild.getTabIndex() > 0 && this.compareTabOrder(vWidget, vCurrentChild) < 0) {
-      vArray.push(vChildren[i]);
-    }
-
-    if(!vCurrentChild.isFocusRoot() && vCurrentChild instanceof qx.ui.core.Parent) {
-      this._getAllAfter(vCurrentChild, vWidget, vArray);
-    }
-  }
-}
-
-qx.Proto._getAllBefore = function(vParent, vWidget, vArray)
-{
-  var vChildren = vParent.getChildren();
-  var vCurrentChild;
-  var vChildrenLength = vChildren.length;
-
-  for (var i = 0; i < vChildrenLength; i++)
-  {
-    vCurrentChild = vChildren[i];
-
-    if(!(vCurrentChild instanceof qx.ui.core.Parent) && !(vCurrentChild instanceof qx.ui.basic.Terminator)) {
-      continue;
-    }
-
-    if(vCurrentChild.isFocusable() && vCurrentChild.getTabIndex() > 0 && this.compareTabOrder(vWidget, vCurrentChild) > 0) {
-      vArray.push(vCurrentChild);
-    }
-
-    if(!vCurrentChild.isFocusRoot() && vCurrentChild instanceof qx.ui.core.Parent) {
-      this._getAllBefore(vCurrentChild, vWidget, vArray);
-    }
-  }
-}
-
-qx.Proto._getFirst = function(vParent, vFirstWidget)
-{
-  var vChildren = vParent.getChildren();
-  var vCurrentChild;
-  var vChildrenLength = vChildren.length;
-
-  for (var i = 0; i < vChildrenLength; i++)
-  {
-    vCurrentChild = vChildren[i];
-
-    if(!(vCurrentChild instanceof qx.ui.core.Parent) && !(vCurrentChild instanceof qx.ui.basic.Terminator)) {
-      continue;
-    }
-
-    if(vCurrentChild.isFocusable() && vCurrentChild.getTabIndex() > 0)
-    {
-      if(vFirstWidget == null || this.compareTabOrder(vCurrentChild, vFirstWidget) < 0) {
-        vFirstWidget = vCurrentChild;
-      }
-    }
-
-    if(!vCurrentChild.isFocusRoot() && vCurrentChild instanceof qx.ui.core.Parent) {
-      vFirstWidget = this._getFirst(vCurrentChild, vFirstWidget);
-    }
-  }
-
-  return vFirstWidget;
-}
-
-qx.Proto._getLast = function(vParent, vLastWidget)
-{
-  var vChildren = vParent.getChildren();
-  var vCurrentChild;
-  var vChildrenLength = vChildren.length;
-
-  for (var i = 0; i < vChildrenLength; i++)
-  {
-    vCurrentChild = vChildren[i];
-
-    if(!(vCurrentChild instanceof qx.ui.core.Parent) && !(vCurrentChild instanceof qx.ui.basic.Terminator)) {
-      continue;
-    }
-
-    if(vCurrentChild.isFocusable() && vCurrentChild.getTabIndex() > 0)
-    {
-      if(vLastWidget == null || this.compareTabOrder(vCurrentChild, vLastWidget) > 0) {
-        vLastWidget = vCurrentChild;
-      }
-    }
-
-    if(!vCurrentChild.isFocusRoot() && vCurrentChild instanceof qx.ui.core.Parent) {
-      vLastWidget = this._getLast(vCurrentChild, vLastWidget);
-    }
-  }
-
-  return vLastWidget;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this._attachedWidget = null;
-
-  qx.core.Target.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/handler/KeyEventHandler.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/handler/KeyEventHandler.js
deleted file mode 100644 (file)
index fd44b75..0000000
+++ /dev/null
@@ -1,659 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#require(qx.event.type.KeyEvent)
-#require(qx.lang.Function);
-
-************************************************************************ */
-
-/**
- * This class provides unified key event handler for Internet Explorer,
- * Firefox, Opera and Safari
- */
-qx.OO.defineClass("qx.event.handler.KeyEventHandler", qx.core.Target, function()
-{
-  qx.core.Target.call(this);
-
-  // Object Wrapper to Events (Needed for DOM-Events)
-  var o = this;
-
-  /**
-   * private
-   *
-   * @param e {Event} event
-   */
-  this.__onkeypress = function(e) { o._onkeypress(e); };
-
-  /**
-   * private
-   *
-   * @param e {Event} event
-   */
-  this.__onkeyupdown = function(e) { o._onkeyupdown(e); };
-});
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT-MAPPING
----------------------------------------------------------------------------
-*/
-
-/** attach the key event handler to the DOM events */
-qx.Proto._attachEvents = function()
-{
-  var el = qx.core.Client.getInstance().isGecko() ? window : document.body;
-
-  qx.html.EventRegistration.addEventListener(el, "keypress", this.__onkeypress);
-  qx.html.EventRegistration.addEventListener(el, "keyup", this.__onkeyupdown);
-  qx.html.EventRegistration.addEventListener(el, "keydown", this.__onkeyupdown);
-};
-
-/** detach the key event handler from the DOM events */
-qx.Proto._detachEvents = function()
-{
-  var el = qx.core.Client.getInstance().isGecko() ? window : document.body;
-
-  // Unregister dom events
-  qx.html.EventRegistration.removeEventListener(el, "keypress", this.__onkeypress);
-  qx.html.EventRegistration.removeEventListener(el, "keyup", this.__onkeyupdown);
-  qx.html.EventRegistration.removeEventListener(el, "keydown", this.__onkeyupdown);
-};
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  KEY-MAPS
----------------------------------------------------------------------------
-*/
-
-/** maps the charcodes of special printable keys to key identifiers */
-qx.Proto._specialCharCodeMap =
-{
-    8 : "Backspace",   // The Backspace (Back) key.
-    9 : "Tab",         // The Horizontal Tabulation (Tab) key.
-   32 : "Space"        // The Space (Spacebar) key.
-};
-
-/** maps the keycodes of non printable keys to key identifiers */
-qx.Proto._keyCodeToIdentifierMap =
-{
-   13 : "Enter",       // The Enter key.
-                       //   Note: This key identifier is also used for the
-                       //   Return (Macintosh numpad) key.
-   16 : "Shift",       // The Shift key.
-   17 : "Control",     // The Control (Ctrl) key.
-   18 : "Alt",         // The Alt (Menu) key.
-   20 : "CapsLock",    // The CapsLock key
-  224 : "Meta",        // The Meta key. (Apple Meta and Windows key)
-
-   27 : "Escape",      // The Escape (Esc) key.
-
-   37 : "Left",        // The Left Arrow key.
-   38 : "Up",          // The Up Arrow key.
-   39 : "Right",       // The Right Arrow key.
-   40 : "Down",        // The Down Arrow key.
-
-   33 : "PageUp",      // The Page Up key.
-   34 : "PageDown",    // The Page Down (Next) key.
-
-   35 : "End",         // The End key.
-   36 : "Home",        // The Home key.
-   45 : "Insert",      // The Insert (Ins) key. (Does not fire in Opera/Win)
-   46 : "Delete",      // The Delete (Del) Key.
-
-  112 : "F1",          // The F1 key.
-  113 : "F2",          // The F2 key.
-  114 : "F3",          // The F3 key.
-  115 : "F4",          // The F4 key.
-  116 : "F5",          // The F5 key.
-  117 : "F6",          // The F6 key.
-  118 : "F7",          // The F7 key.
-  119 : "F8",          // The F8 key.
-  120 : "F9",          // The F9 key.
-  121 : "F10",         // The F10 key.
-  122 : "F11",         // The F11 key.
-  123 : "F12",         // The F12 key.
-
-  144 : "NumLock",     // The Num Lock key.
-   44 : "PrintScreen", // The Print Screen (PrintScrn, SnapShot) key.
-  145 : "Scroll",      // The scroll lock key
-   19 : "Pause",       // The pause/break key
-
-   91 : "Win",         // The Windows Logo key
-   93 : "Apps"         // The Application key (Windows Context Menu)
-};
-
-/** maps the keycodes of the numpad keys to the right charcodes */
-qx.Proto._numpadToCharCode =
-{
-   96 : "0".charCodeAt(0),
-   97 : "1".charCodeAt(0),
-   98 : "2".charCodeAt(0),
-   99 : "3".charCodeAt(0),
-  100 : "4".charCodeAt(0),
-  101 : "5".charCodeAt(0),
-  102 : "6".charCodeAt(0),
-  103 : "7".charCodeAt(0),
-  104 : "8".charCodeAt(0),
-  105 : "9".charCodeAt(0),
-
-  106 : "*".charCodeAt(0),
-  107 : "+".charCodeAt(0),
-  109 : "-".charCodeAt(0),
-  110 : ",".charCodeAt(0),
-  111 : "/".charCodeAt(0)
-};
-
-
-// construct invers of keyCodeToIdentifierMap
-(function()
-{
-  if (!qx.Proto._identifierToKeyCodeMap)
-  {
-    qx.Proto._identifierToKeyCodeMap = {};
-
-    for (var key in qx.Proto._keyCodeToIdentifierMap) {
-      qx.Proto._identifierToKeyCodeMap[qx.Proto._keyCodeToIdentifierMap[key]] = parseInt(key);
-    }
-
-    for (var key in qx.Proto._specialCharCodeMap) {
-      qx.Proto._identifierToKeyCodeMap[qx.Proto._specialCharCodeMap[key]] = parseInt(key);
-    }
-  }
-})();
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  HELPER-METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._charCodeA = "A".charCodeAt(0);
-qx.Proto._charCodeZ = "Z".charCodeAt(0);
-qx.Proto._charCode0 = "0".charCodeAt(0);
-qx.Proto._charCode9 = "9".charCodeAt(0);
-
-/**
- * Checks wether the keyCode represents a non printable key
- *
- * @param keyCode {String}
- * @return {Boolean}
- */
-qx.Proto._isNonPrintableKeyCode = function(keyCode) {
-  return this._keyCodeToIdentifierMap[keyCode] ? true : false;
-};
-
-
-/**
- * Check wether the keycode can be reliably detected in keyup/keydown events
- *
- * @param keyCode {String}
- * @return {Boolean}
- */
-qx.Proto._isIdentifiableKeyCode = function(keyCode)
-{
-  // A-Z
-  if (keyCode >= this._charCodeA && keyCode <= this._charCodeZ) {
-    return true;
-  }
-
-  // 0-9
-  if (keyCode >= this._charCode0 && keyCode <= this._charCode9) {
-    return true;
-  }
-
-  // Enter, Space, Tab, Backspace
-  if (this._specialCharCodeMap[keyCode]) {
-    return true;
-  }
-
-  // Numpad
-  if (this._numpadToCharCode[keyCode]) {
-    return true;
-  }
-
-  // non printable keys
-  if (this._isNonPrintableKeyCode(keyCode)) {
-    return true;
-  }
-
-  return false;
-};
-
-
-/**
- * Checks wether a given string is a valid keyIdentifier
- *
- * @param keyIdentifier {String} The key identifier.
- * @return {Boolean} wether the given string is a valid keyIdentifier
- */
-qx.Proto.isValidKeyIdentifier = function(keyIdentifier)
-{
-  if (this._identifierToKeyCodeMap[keyIdentifier]) {
-    return true;
-  }
-
-  if (keyIdentifier.length != 1) {
-    return false;
-  }
-
-  if (keyIdentifier >= "0" && keyIdentifier <= "9") {
-    return true;
-  }
-
-  if (keyIdentifier >= "A" && keyIdentifier <= "Z") {
-    return true;
-  }
-
-  switch (keyIdentifier)
-  {
-    case "+":
-    case "-":
-    case "*":
-    case "/":
-      return true;
-
-    default:
-      return false;
-  }
-};
-
-
-/**
- * converts a keyboard code to the corresponding identifier
- *
- * @param keyCode {Integer}
- * @return {String} key identifier
- */
-qx.Proto._keyCodeToIdentifier = function(keyCode)
-{
-  if (this._isIdentifiableKeyCode(keyCode))
-  {
-    var numPadKeyCode = this._numpadToCharCode[keyCode];
-    if (numPadKeyCode) {
-      return String.fromCharCode(numPadKeyCode);
-    }
-
-    return (
-      this._keyCodeToIdentifierMap[keyCode] ||
-      this._specialCharCodeMap[keyCode] ||
-      String.fromCharCode(keyCode)
-    );
-  }
-  else
-  {
-    return "Unidentified";
-  }
-};
-
-
-/**
- * converts a character code to the corresponding identifier
- *
- * @param charCode {String}
- * @return {String} key identifier
- */
-qx.Proto._charCodeToIdentifier = function(charCode) {
-  return this._specialCharCodeMap[charCode] || String.fromCharCode(charCode).toUpperCase();
-};
-
-
-/**
- * converts a key identifier back to a keycode
- *
- * @param keyIdentifier {String}
- * @return {Integer} keyboard code
- */
-qx.Proto._identifierToKeyCode = function(keyIdentifier) {
-  return this._identifierToKeyCodeMap[keyIdentifier] || keyIdentifier.charCodeAt(0);
-};
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  IDEALIZED-KEY-HANDLER
----------------------------------------------------------------------------
-*/
-
-/**
- * Key handler for an idealized browser.
- * Runs after the browser specific key handlers have normalized the key events.
- *
- * @param keyCode {String} keyboard code
- * @param charCode {String} character code
- * @param eventType {String} type of the event (keydown, keypress, keyup)
- * @param domEvent {Element} DomEvent
- */
-qx.Proto._idealKeyHandler = function(keyCode, charCode, eventType, domEvent)
-{
-  if (!keyCode && !charCode) {
-    return;
-  }
-
-  var keyIdentifier;
-
-  // Use: keyCode
-  if (keyCode)
-  {
-    keyIdentifier = this._keyCodeToIdentifier(keyCode);
-    qx.event.handler.EventHandler.getInstance()._onkeyevent_post(domEvent, eventType, keyCode, charCode, keyIdentifier);
-  }
-
-  // Use: charCode
-  else
-  {
-    keyIdentifier = this._charCodeToIdentifier(charCode);
-    qx.event.handler.EventHandler.getInstance()._onkeyevent_post(domEvent, "keypress", keyCode, charCode, keyIdentifier);
-    qx.event.handler.EventHandler.getInstance()._onkeyevent_post(domEvent, "keyinput", keyCode, charCode, keyIdentifier);
-  }
-};
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  BROWSER-SPECIFIC-KEY-HANDLER: MSHTML
----------------------------------------------------------------------------
-*/
-
-if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.Proto._lastUpDownType = {};
-
-  qx.Proto._charCode2KeyCode =
-  {
-    13 : 13,
-    27 : 27
-  };
-
-  qx.Proto._onkeyupdown = function(domEvent)
-  {
-    domEvent = window.event || domEvent;
-
-    var keyCode = domEvent.keyCode;
-    var charcode = 0;
-    var type = domEvent.type;
-
-    // Ignore the down in such sequences dp dp dp
-    if (!(this._lastUpDownType[keyCode] == "keydown" && type == "keydown")) {
-      this._idealKeyHandler(keyCode, charcode, type, domEvent);
-    }
-
-    // On non print-able character be sure to add a keypress event
-    if (this._isNonPrintableKeyCode(keyCode) && type == "keydown") {
-      this._idealKeyHandler(keyCode, charcode, "keypress", domEvent);
-    }
-
-    // Store last type
-    this._lastUpDownType[keyCode] = type;
-  };
-
-  qx.Proto._onkeypress = function(domEvent)
-  {
-    domEvent = window.event || domEvent;
-
-    if (this._charCode2KeyCode[domEvent.keyCode]) {
-      this._idealKeyHandler(this._charCode2KeyCode[domEvent.keyCode], 0, domEvent.type, domEvent);
-    } else {
-      this._idealKeyHandler(0, domEvent.keyCode, domEvent.type, domEvent);
-    }
-  };
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  BROWSER-SPECIFIC-KEY-HANDLER: GECKO
----------------------------------------------------------------------------
-*/
-
-else if (qx.core.Client.getInstance().isGecko())
-{
-  qx.Proto._lastUpDownType = {};
-
-  qx.Proto._keyCodeFix = {
-    12 : qx.Proto._identifierToKeyCode("NumLock")
-  };
-
-  /**
-   * key handler for Gecko
-   *
-   * @param domEvent {Element} DomEvent
-   */
-  qx.Proto._onkeyupdown = qx.Proto._onkeypress = function(domEvent)
-  {
-    var keyCode = this._keyCodeFix[domEvent.keyCode] || domEvent.keyCode;
-    var charCode = domEvent.charCode;
-    var type = domEvent.type;
-
-    // FF repeats under windows keydown events like IE
-    if (qx.core.Client.getInstance().runsOnWindows())
-    {
-      var keyIdentifier = keyCode ? this._keyCodeToIdentifier(keyCode) : this._charCodeToIdentifier(charCode)
-
-      if (!(this._lastUpDownType[keyIdentifier] == "keypress" && type == "keydown")) {
-        this._idealKeyHandler(keyCode, charCode, type, domEvent);
-      }
-
-      // Store last type
-      this._lastUpDownType[keyIdentifier] = type;
-    }
-
-    // all other OSes
-    else
-    {
-      this._idealKeyHandler(keyCode, charCode, type, domEvent);
-    }
-  };
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  BROWSER-SPECIFIC-KEY-HANDLER: WEBKIT
----------------------------------------------------------------------------
-*/
-
-else if (qx.core.Client.getInstance().isWebkit())
-{
-  qx.Proto._charCode2KeyCode =
-  {
-    // Safari/Webkit Mappings
-    63289 : qx.Proto._identifierToKeyCode("NumLock"),
-    63276 : qx.Proto._identifierToKeyCode("PageUp"),
-    63277 : qx.Proto._identifierToKeyCode("PageDown"),
-    63275 : qx.Proto._identifierToKeyCode("End"),
-    63273 : qx.Proto._identifierToKeyCode("Home"),
-    63234 : qx.Proto._identifierToKeyCode("Left"),
-    63232 : qx.Proto._identifierToKeyCode("Up"),
-    63235 : qx.Proto._identifierToKeyCode("Right"),
-    63233 : qx.Proto._identifierToKeyCode("Down"),
-    63272 : qx.Proto._identifierToKeyCode("Delete"),
-    63302 : qx.Proto._identifierToKeyCode("Insert"),
-    63236 : qx.Proto._identifierToKeyCode("F1"),
-    63237 : qx.Proto._identifierToKeyCode("F2"),
-    63238 : qx.Proto._identifierToKeyCode("F3"),
-    63239 : qx.Proto._identifierToKeyCode("F4"),
-    63240 : qx.Proto._identifierToKeyCode("F5"),
-    63241 : qx.Proto._identifierToKeyCode("F6"),
-    63242 : qx.Proto._identifierToKeyCode("F7"),
-    63243 : qx.Proto._identifierToKeyCode("F8"),
-    63244 : qx.Proto._identifierToKeyCode("F9"),
-    63245 : qx.Proto._identifierToKeyCode("F10"),
-    63246 : qx.Proto._identifierToKeyCode("F11"),
-    63247 : qx.Proto._identifierToKeyCode("F12"),
-    63248 : qx.Proto._identifierToKeyCode("PrintScreen"),
-
-        3 : qx.Proto._identifierToKeyCode("Enter"),
-       12 : qx.Proto._identifierToKeyCode("NumLock"),
-       13 : qx.Proto._identifierToKeyCode("Enter")
-  };
-
-  qx.Proto._onkeyupdown = qx.Proto._onkeypress = function(domEvent)
-  {
-    var keyCode = 0;
-    var charCode = 0;
-    var type = domEvent.type;
-
-    // prevent Safari from sending key signals twice
-    // This bug is fixed in recent Webkit builds so we need a revision check
-    // see http://trac.mochikit.com/ticket/182 for details
-    if (qx.core.Client.getInstance().getVersion() < 420)
-    {
-      if (!this._lastCharCodeForType) {
-        this._lastCharCodeForType = {};
-      }
-
-      var isSafariSpecialKey = this._lastCharCodeForType[type] > 63000;
-
-      if (isSafariSpecialKey) {
-        this._lastCharCodeForType[type] = null;
-        return;
-      }
-
-      this._lastCharCodeForType[type] = domEvent.charCode;
-    }
-
-    if (type == "keyup" || type == "keydown") {
-      keyCode = this._charCode2KeyCode[domEvent.charCode] || domEvent.keyCode;
-    }
-    else
-    {
-      if (this._charCode2KeyCode[domEvent.charCode]) {
-        keyCode = this._charCode2KeyCode[domEvent.charCode];
-      } else {
-        charCode = domEvent.charCode;
-      }
-    }
-
-    this._idealKeyHandler(keyCode, charCode, type, domEvent);
-  };
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  BROWSER-SPECIFIC-KEY-HANDLER: OPERA
----------------------------------------------------------------------------
-*/
-
-else if (qx.core.Client.getInstance().isOpera())
-{
-  qx.Proto._onkeyupdown = function(domEvent) {
-    this._idealKeyHandler(domEvent.keyCode, 0, domEvent.type, domEvent);
-  };
-
-  qx.Proto._onkeypress = function(domEvent)
-  {
-    if (this._keyCodeToIdentifierMap[domEvent.keyCode]) {
-      this._idealKeyHandler(domEvent.keyCode, 0, domEvent.type, domEvent);
-    } else {
-      this._idealKeyHandler(0, domEvent.keyCode, domEvent.type, domEvent);
-    }
-  };
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSE
----------------------------------------------------------------------------
-*/
-
-/**
- * Destructor
- */
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  // Detach keyboard events
-  this._detachEvents();
-
-  return qx.core.Target.prototype.dispose.call(this);
-};
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/type/DataEvent.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/type/DataEvent.js
deleted file mode 100644 (file)
index 47e08a1..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-
-************************************************************************ */
-
-/*!
-  Event object for property changes.
-*/
-qx.OO.defineClass("qx.event.type.DataEvent", qx.event.type.Event,
-function(vType, vData)
-{
-  qx.event.type.Event.call(this, vType);
-
-  this.setData(vData);
-});
-
-qx.OO.addFastProperty({ name : "propagationStopped", defaultValue : false });
-qx.OO.addFastProperty({ name : "data" });
-
-qx.Proto.dispose = function()
-{
-  if(this.getDisposed()) {
-    return;
-  }
-
-  this._valueData = null;
-
-  return qx.event.type.Event.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/type/DomEvent.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/type/DomEvent.js
deleted file mode 100644 (file)
index b6fb710..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.event.type.DomEvent", qx.event.type.Event,
-function(vType, vDomEvent, vDomTarget, vTarget, vOriginalTarget)
-{
-  qx.event.type.Event.call(this, vType);
-
-  this.setDomEvent(vDomEvent);
-  this.setDomTarget(vDomTarget);
-
-  this.setTarget(vTarget);
-  this.setOriginalTarget(vOriginalTarget);
-});
-
-qx.OO.addFastProperty({ name : "bubbles", defaultValue : true, noCompute : true });
-qx.OO.addFastProperty({ name : "propagationStopped", defaultValue : false, noCompute : true });
-
-qx.OO.addFastProperty({ name : "domEvent", setOnlyOnce : true, noCompute : true });
-qx.OO.addFastProperty({ name : "domTarget", setOnlyOnce : true, noCompute : true });
-
-/**
- * The modifiers. A mask of the pressed modifier keys. This is an OR-combination of
- * {@link #SHIFT_MASK}, {@link #CTRL_MASK}, {@link #ALT_MASK} and {@link #META_MASK}.
- */
-qx.OO.addCachedProperty({ name : "modifiers", defaultValue : null });
-
-
-// property computer
-qx.Proto._computeModifiers = function() {
-    var mask = 0;
-    var evt = this.getDomEvent();
-    if (evt.shiftKey) mask |= qx.event.type.DomEvent.SHIFT_MASK;
-    if (evt.ctrlKey)  mask |= qx.event.type.DomEvent.CTRL_MASK;
-    if (evt.altKey)   mask |= qx.event.type.DomEvent.ALT_MASK;
-    if (evt.metaKey)  mask |= qx.event.type.DomEvent.META_MASK;
-    return mask;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  SPECIAL KEY SUPPORT
----------------------------------------------------------------------------
-*/
-
-/**
- * Returns whether the the ctrl key is pressed.
- *
- * @return {Boolean} whether the the ctrl key is pressed.
- */
-qx.Proto.isCtrlPressed = function() {
-  return this.getDomEvent().ctrlKey;
-}
-
-/**
- * Returns whether the the ctrl key is pressed.
- *
- * @return {Boolean} whether the the ctrl key is pressed.
- * @deprecated Use {@link #isCtrlPressed} instead.
- */
-qx.Proto.getCtrlKey = qx.Proto.isCtrlPressed;
-
-
-/**
- * Returns whether the the shift key is pressed.
- *
- * @return {Boolean} whether the the shift key is pressed.
- */
-qx.Proto.isShiftPressed = function() {
-  return this.getDomEvent().shiftKey;
-}
-
-/**
- * Returns whether the the shift key is pressed.
- *
- * @return {Boolean} whether the the shift key is pressed.
- * @deprecated Use {@link #isShiftPressed} instead.
- */
-qx.Proto.getShiftKey = qx.Proto.isShiftPressed;
-
-
-/**
- * Returns whether the the alt key is pressed.
- *
- * @return {Boolean} whether the the alt key is pressed.
- */
-qx.Proto.isAltPressed = function() {
-  return this.getDomEvent().altKey;
-}
-
-/**
- * Returns whether the the alt key is pressed.
- *
- * @return {Boolean} whether the the alt key is pressed.
- * @deprecated Use {@link #isAltPressed} instead.
- */
-qx.Proto.getAltKey = qx.Proto.isAltPressed;
-
-
-/**
- * Returns whether the the meta key is pressed.
- *
- * @return {Boolean} whether the the meta key is pressed.
- */
-qx.Proto.isMetaPressed = function() {
-  return this.getDomEvent().metaKey;
-}
-
-
-/**
- * Returns whether the ctrl key or (on the Mac) the command key is pressed.
- *
- * @return {Boolean} <code>true</code> if the command key is pressed on the Mac
- *         or the ctrl key is pressed on another system.
- */
-qx.Proto.isCtrlOrCommandPressed = function() {
-  if (qx.core.Client.getInstance().runsOnMacintosh()) {
-    return this.getDomEvent().metaKey;
-  } else {
-    return this.getDomEvent().ctrlKey;
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PREVENT DEFAULT
----------------------------------------------------------------------------
-*/
-
-if(qx.core.Client.getInstance().isMshtml())
-{
-  qx.Proto.setDefaultPrevented = function(vValue)
-  {
-    if (!vValue) {
-      return this.error("It is not possible to set preventDefault to false if it was true before!", "setDefaultPrevented");
-    }
-
-    this.getDomEvent().returnValue = false;
-
-    qx.event.type.Event.prototype.setDefaultPrevented.call(this, vValue);
-  }
-}
-else
-{
-  qx.Proto.setDefaultPrevented = function(vValue)
-  {
-    if (!vValue) {
-      return this.error("It is not possible to set preventDefault to false if it was true before!", "setDefaultPrevented");
-    }
-
-    this.getDomEvent().preventDefault();
-    this.getDomEvent().returnValue = false;
-
-    qx.event.type.Event.prototype.setDefaultPrevented.call(this, vValue);
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this._valueDomEvent = null;
-  this._valueDomTarget = null;
-
-  return qx.event.type.Event.prototype.dispose.call(this);
-}
-
-
-
-
-/** {int} The modifier mask for the shift key. */
-qx.Class.SHIFT_MASK = 1;
-
-/** {int} The modifier mask for the control key. */
-qx.Class.CTRL_MASK = 2;
-
-/** {int} The modifier mask for the alt key. */
-qx.Class.ALT_MASK = 4;
-
-/** {int} The modifier mask for the meta key (e.g. apple key on Macs). */
-qx.Class.META_MASK = 8;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/type/DragEvent.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/type/DragEvent.js
deleted file mode 100644 (file)
index a6bd360..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_dragdrop)
-
-************************************************************************ */
-
-/*!
-  The event object for drag and drop sessions
-*/
-qx.OO.defineClass("qx.event.type.DragEvent", qx.event.type.MouseEvent,
-function(vType, vMouseEvent, vTarget, vRelatedTarget)
-{
-  this._mouseEvent = vMouseEvent;
-
-  var vOriginalTarget = null;
-
-  switch(vType)
-  {
-    case "dragstart":
-    case "dragover":
-      vOriginalTarget = vMouseEvent.getOriginalTarget();
-  }
-
-  qx.event.type.MouseEvent.call(this, vType, vMouseEvent.getDomEvent(), vTarget.getElement(), vTarget, vOriginalTarget, vRelatedTarget);
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIY
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getMouseEvent = function() {
-  return this._mouseEvent;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  APPLICATION CONNECTION
----------------------------------------------------------------------------
-*/
-
-qx.Proto.startDrag = function()
-{
-  if (this.getType() != "dragstart") {
-    throw new Error("qx.event.type.DragEvent startDrag can only be called during the dragstart event: " + this.getType());
-  }
-
-  this.stopPropagation();
-  qx.event.handler.DragAndDropHandler.getInstance().startDrag();
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DATA SUPPORT
----------------------------------------------------------------------------
-*/
-
-qx.Proto.addData = function(sType, oData) {
-  qx.event.handler.DragAndDropHandler.getInstance().addData(sType, oData);
-}
-
-qx.Proto.getData = function(sType) {
-  return qx.event.handler.DragAndDropHandler.getInstance().getData(sType);
-}
-
-qx.Proto.clearData = function() {
-  qx.event.handler.DragAndDropHandler.getInstance().clearData();
-}
-
-qx.Proto.getDropDataTypes = function() {
-  return qx.event.handler.DragAndDropHandler.getInstance().getDropDataTypes();
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ACTION SUPPORT
----------------------------------------------------------------------------
-*/
-
-qx.Proto.addAction = function(sAction) {
-  qx.event.handler.DragAndDropHandler.getInstance().addAction(sAction);
-}
-
-qx.Proto.removeAction = function(sAction) {
-  qx.event.handler.DragAndDropHandler.getInstance().removeAction(sAction);
-}
-
-qx.Proto.getAction = function() {
-  return qx.event.handler.DragAndDropHandler.getInstance().getCurrentAction();
-}
-
-qx.Proto.clearActions = function() {
-  qx.event.handler.DragAndDropHandler.getInstance().clearActions();
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  USER FEEDBACK SUPPORT
----------------------------------------------------------------------------
-*/
-
-/**
- * Sets the widget to show as feedback for the user. This widget should
- * represent the object(s) the user is dragging.
- *
- * @param widget {qx.ui.core.Widget} the feedback widget.
- * @param deltaX {int ? 10} the number of pixels the top-left corner of the widget
- *        should be away from the mouse cursor in x direction.
- * @param deltaY {int ? 10} the number of pixels the top-left corner of the widget
- *        should be away from the mouse cursor in y direction.
- * @param autoDisposeWidget {boolean} whether the widget should be disposed when
- *        dragging is finished or cancelled.
- */
-qx.Proto.setFeedbackWidget = function(widget, deltaX, deltaY, autoDisposeWidget) {
-  qx.event.handler.DragAndDropHandler.getInstance().setFeedbackWidget(widget, deltaX, deltaY, autoDisposeWidget);
-};
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CURSPOR POSITIONING SUPPORT
----------------------------------------------------------------------------
-*/
-
-/**
- * Sets the position of the cursor feedback (the icon showing whether dropping
- * is allowed at the current position and which action a drop will do).
- *
- * @param deltaX {int} The number of pixels the top-left corner of the
- *        cursor feedback should be away from the mouse cursor in x direction.
- * @param deltaY {int} The number of pixels the top-left corner of the
- *        cursor feedback should be away from the mouse cursor in y direction.
- */
-qx.Proto.setCursorPosition = function(deltaX, deltaY) {
-  qx.event.handler.DragAndDropHandler.getInstance().setCursorPosition(deltaX, deltaY);
-};
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this._mouseEvent = null;
-
-  return qx.event.type.MouseEvent.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/type/Event.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/type/Event.js
deleted file mode 100644 (file)
index 82798da..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-
-************************************************************************ */
-
-/*!
-  The qooxdoo core event object. Each event object for qx.core.Targets should extend this class.
-*/
-qx.OO.defineClass("qx.event.type.Event", qx.core.Object,
-function(vType)
-{
-  qx.core.Object.call(this, false);
-
-  this.setType(vType);
-});
-
-qx.OO.addFastProperty({ name : "type", setOnlyOnce : true });
-
-qx.OO.addFastProperty({ name : "originalTarget", setOnlyOnce : true });
-qx.OO.addFastProperty({ name : "target", setOnlyOnce : true });
-qx.OO.addFastProperty({ name : "relatedTarget", setOnlyOnce : true });
-qx.OO.addFastProperty({ name : "currentTarget" });
-
-qx.OO.addFastProperty({ name : "bubbles", defaultValue : false, noCompute : true });
-qx.OO.addFastProperty({ name : "propagationStopped", defaultValue : true, noCompute : true });
-qx.OO.addFastProperty({ name : "defaultPrevented", defaultValue : false, noCompute : true });
-
-/** If the event object should automatically be disposed by the dispatcher */
-qx.OO.addFastProperty({ name : "autoDispose", defaultValue : false });
-
-
-
-
-/*
----------------------------------------------------------------------------
-  SHORTCUTS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.preventDefault = function() {
-  this.setDefaultPrevented(true);
-}
-
-qx.Proto.stopPropagation = function() {
-  this.setPropagationStopped(true);
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if(this.getDisposed()) {
-    return;
-  }
-
-  this._valueOriginalTarget = null;
-  this._valueTarget = null;
-  this._valueRelatedTarget = null;
-  this._valueCurrentTarget = null;
-
-  return qx.core.Object.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/type/FocusEvent.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/type/FocusEvent.js
deleted file mode 100644 (file)
index d8b327c..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-
-************************************************************************ */
-
-/*!
-  This event handles all focus events.
-
-  The four supported types are:
-  1+2: focus and blur also propagate the target object
-  3+4: focusout and focusin are bubbling to the parent objects
-*/
-qx.OO.defineClass("qx.event.type.FocusEvent", qx.event.type.Event,
-function(vType, vTarget)
-{
-  qx.event.type.Event.call(this, vType);
-
-  this.setTarget(vTarget);
-
-  switch(vType)
-  {
-    case "focusin":
-    case "focusout":
-      this.setBubbles(true);
-      this.setPropagationStopped(false);
-  }
-});
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/type/KeyEvent.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/type/KeyEvent.js
deleted file mode 100644 (file)
index eb69c51..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-
-************************************************************************ */
-
-/**
- * A key event instance contains all data for each occured key event
- *
- * @param vType {String} event type (keydown, keypress, keyinput, keyup)
- * @param vDomEvent {Element} DOM event object
- * @param vDomTarget {Element} target element of the DOM event
- * @param vTarget
- * @param vOriginalTarget
- * @param vKeyCode {Integer} emulated key code for compatibility with older qoodoo applications
- * @param vCharCode {Integer} char code from the "keypress" event
- * @param vKeyIdentifier {String} the key identifier
- */
-qx.OO.defineClass("qx.event.type.KeyEvent", qx.event.type.DomEvent,
-function(vType, vDomEvent, vDomTarget, vTarget, vOriginalTarget, vKeyCode, vCharCode, vKeyIdentifier)
-{
-  qx.event.type.DomEvent.call(this, vType, vDomEvent, vDomTarget, vTarget, vOriginalTarget);
-
-  this.setKeyCode(vKeyCode);
-  this.setCharCode(vCharCode);
-  this.setKeyIdentifier(vKeyIdentifier);
-});
-
-/**
- * Legacy keycode
- * @deprecated Will be removed with qooxdoo 0.7
- */
-qx.OO.addFastProperty({ name : "keyCode", setOnlyOnce : true, noCompute : true });
-
-/**
- * Unicode number of the pressed character.
- * Only valid in "keyinput" events
- */
-qx.OO.addFastProperty({ name : "charCode", setOnlyOnce : true, noCompute : true });
-
-/**
- * Identifier of the pressed key. This property is modeled after the <em>KeyboardEvent.keyIdentifier</em> property
- * of the W3C DOM 3 event specification (http://www.w3.org/TR/2003/NOTE-DOM-Level-3-Events-20031107/events.html#Events-KeyboardEvent-keyIdentifier).
- *
- * It is not valid in "keyinput" events"
- *
- * Printable keys are represented by a unicode string, non-printable keys have one of the following
- * values:
- * <br>
- * <table>
- * <tr><th>Backspace</th><td>The Backspace (Back) key.</td></tr>
- * <tr><th>Tab</th><td>The Horizontal Tabulation (Tab) key.</td></tr>
- * <tr><th>Space</th><td>The Space (Spacebar) key.</td></tr>
- * <tr><th>Enter</th><td>The Enter key. Note: This key identifier is also used for the Return (Macintosh numpad) key.</td></tr>
- * <tr><th>Shift</th><td>The Shift key.</td></tr>
- * <tr><th>Control</th><td>The Control (Ctrl) key.</td></tr>
- * <tr><th>Alt</th><td>The Alt (Menu) key.</td></tr>
- * <tr><th>CapsLock</th><td>The CapsLock key</td></tr>
- * <tr><th>Meta</th><td>The Meta key. (Apple Meta and Windows key)</td></tr>
- * <tr><th>Escape</th><td>The Escape (Esc) key.</td></tr>
- * <tr><th>Left</th><td>The Left Arrow key.</td></tr>
- * <tr><th>Up</th><td>The Up Arrow key.</td></tr>
- * <tr><th>Right</th><td>The Right Arrow key.</td></tr>
- * <tr><th>Down</th><td>The Down Arrow key.</td></tr>
- * <tr><th>PageUp</th><td>The Page Up key.</td></tr>
- * <tr><th>PageDown</th><td>The Page Down (Next) key.</td></tr>
- * <tr><th>End</th><td>The End key.</td></tr>
- * <tr><th>Home</th><td>The Home key.</td></tr>
- * <tr><th>Insert</th><td>The Insert (Ins) key. (Does not fire in Opera/Win)</td></tr>
- * <tr><th>Delete</th><td>The Delete (Del) Key.</td></tr>
- * <tr><th>F1</th><td>The F1 key.</td></tr>
- * <tr><th>F2</th><td>The F2 key.</td></tr>
- * <tr><th>F3</th><td>The F3 key.</td></tr>
- * <tr><th>F4</th><td>The F4 key.</td></tr>
- * <tr><th>F5</th><td>The F5 key.</td></tr>
- * <tr><th>F6</th><td>The F6 key.</td></tr>
- * <tr><th>F7</th><td>The F7 key.</td></tr>
- * <tr><th>F8</th><td>The F8 key.</td></tr>
- * <tr><th>F9</th><td>The F9 key.</td></tr>
- * <tr><th>F10</th><td>The F10 key.</td></tr>
- * <tr><th>F11</th><td>The F11 key.</td></tr>
- * <tr><th>F12</th><td>The F12 key.</td></tr>
- * <tr><th>NumLock</th><td>The Num Lock key.</td></tr>
- * <tr><th>PrintScreen</th><td>The Print Screen (PrintScrn, SnapShot) key.</td></tr>
- * <tr><th>Scroll</th><td>The scroll lock key</td></tr>
- * <tr><th>Pause</th><td>The pause/break key</td></tr>
- * <tr><th>Win</th><td>The Windows Logo key</td></tr>
- * <tr><th>Apps</th><td>The Application key (Windows Context Menu)</td></tr>
- * </table>
- */
-qx.OO.addFastProperty({ name : "keyIdentifier", setOnlyOnce : true, noCompute : true });
-
-
-
-
-
-
-
-
-/* ************************************************************************
-   Class data, properties and methods
-************************************************************************ */
-
-/*
----------------------------------------------------------------------------
-  CLASS PROPERTIES AND METHODS
----------------------------------------------------------------------------
-*/
-
-/**
- * Mapping of the old key identifiers to the key codes
- * @deprecated
- */
-qx.event.type.KeyEvent.keys =
-{
-  esc : 27,
-  enter : 13,
-  tab : 9,
-  space : 32,
-
-  up : 38,
-  down : 40,
-  left : 37,
-  right : 39,
-
-  shift : 16,
-  ctrl : 17,
-  alt : 18,
-
-  f1 : 112,
-  f2 : 113,
-  f3 : 114,
-  f4 : 115,
-  f5 : 116,
-  f6 : 117,
-  f7 : 118,
-  f8 : 119,
-  f9 : 120,
-  f10 : 121,
-  f11 : 122,
-  f12 : 123,
-
-  print : 124,
-
-  del : 46,
-  backspace : 8,
-  insert : 45,
-  home : 36,
-  end : 35,
-
-  pageup : 33,
-  pagedown : 34,
-
-  numlock : 144,
-
-  numpad_0 : 96,
-  numpad_1 : 97,
-  numpad_2 : 98,
-  numpad_3 : 99,
-  numpad_4 : 100,
-  numpad_5 : 101,
-  numpad_6 : 102,
-  numpad_7 : 103,
-  numpad_8 : 104,
-  numpad_9 : 105,
-
-  numpad_divide : 111,
-  numpad_multiply : 106,
-  numpad_minus : 109,
-  numpad_plus : 107
-};
-
-// create dynamic codes copy
-(function() {
-  qx.event.type.KeyEvent.codes = {};
-  for (var i in qx.event.type.KeyEvent.keys) {
-    qx.event.type.KeyEvent.codes[qx.event.type.KeyEvent.keys[i]] = i;
-  }
-})();
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/type/MouseEvent.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/event/type/MouseEvent.js
deleted file mode 100644 (file)
index 053037b..0000000
+++ /dev/null
@@ -1,311 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-
-************************************************************************ */
-
-/*!
-  A mouse event instance contains all data for each occured mouse event
-*/
-qx.OO.defineClass("qx.event.type.MouseEvent", qx.event.type.DomEvent,
-function(vType, vDomEvent, vDomTarget, vTarget, vOriginalTarget, vRelatedTarget)
-{
-  qx.event.type.DomEvent.call(this, vType, vDomEvent, vDomTarget, vTarget, vOriginalTarget);
-
-  if (vRelatedTarget) {
-    this.setRelatedTarget(vRelatedTarget);
-  }
-});
-
-qx.Class.C_BUTTON_LEFT = "left";
-qx.Class.C_BUTTON_MIDDLE = "middle";
-qx.Class.C_BUTTON_RIGHT = "right";
-qx.Class.C_BUTTON_NONE = "none";
-
-
-
-/* ************************************************************************
-   Class data, properties and methods
-************************************************************************ */
-
-/*
----------------------------------------------------------------------------
-  CLASS PROPERTIES AND METHODS
----------------------------------------------------------------------------
-*/
-
-qx.event.type.MouseEvent._screenX = qx.event.type.MouseEvent._screenY = qx.event.type.MouseEvent._clientX = qx.event.type.MouseEvent._clientY = qx.event.type.MouseEvent._pageX = qx.event.type.MouseEvent._pageY = 0;
-qx.event.type.MouseEvent._button = null;
-
-qx.event.type.MouseEvent._storeEventState = function(e)
-{
-  qx.event.type.MouseEvent._screenX = e.getScreenX();
-  qx.event.type.MouseEvent._screenY = e.getScreenY();
-  qx.event.type.MouseEvent._clientX = e.getClientX();
-  qx.event.type.MouseEvent._clientY = e.getClientY();
-  qx.event.type.MouseEvent._pageX   = e.getPageX();
-  qx.event.type.MouseEvent._pageY   = e.getPageY();
-  qx.event.type.MouseEvent._button  = e.getButton();
-}
-
-qx.event.type.MouseEvent.getScreenX = function() { return qx.event.type.MouseEvent._screenX; }
-qx.event.type.MouseEvent.getScreenY = function() { return qx.event.type.MouseEvent._screenY; }
-qx.event.type.MouseEvent.getClientX = function() { return qx.event.type.MouseEvent._clientX; }
-qx.event.type.MouseEvent.getClientY = function() { return qx.event.type.MouseEvent._clientY; }
-qx.event.type.MouseEvent.getPageX   = function() { return qx.event.type.MouseEvent._pageX;   }
-qx.event.type.MouseEvent.getPageY   = function() { return qx.event.type.MouseEvent._pageY;   }
-qx.event.type.MouseEvent.getButton  = function() { return qx.event.type.MouseEvent._button;  }
-
-if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.event.type.MouseEvent.buttons = { left : 1, right : 2, middle : 4 }
-}
-else
-{
-  qx.event.type.MouseEvent.buttons = { left : 0, right : 2, middle : 1 }
-}
-
-
-
-
-
-
-/* ************************************************************************
-   Instance data, properties and methods
-************************************************************************ */
-
-/*
----------------------------------------------------------------------------
-  SCREEN COORDINATES SUPPORT
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getScreenX = function() {
-  return this.getDomEvent().screenX;
-}
-
-qx.Proto.getScreenY = function() {
-  return this.getDomEvent().screenY;
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PAGE COORDINATES SUPPORT
----------------------------------------------------------------------------
-*/
-
-if (qx.core.Client.getInstance().isMshtml())
-{
-qx.OO.addFastProperty({ name : "pageX", readOnly : true });
-qx.OO.addFastProperty({ name : "pageY", readOnly : true });
-
-  if (qx.core.Client.getInstance().isInQuirksMode())
-  {
-    qx.Proto._computePageX = function() {
-      return this.getDomEvent().clientX + document.documentElement.scrollLeft;
-    }
-
-    qx.Proto._computePageY = function() {
-      return this.getDomEvent().clientY + document.documentElement.scrollTop;
-    }
-  }
-  else
-  {
-    qx.Proto._computePageX = function() {
-      return this.getDomEvent().clientX + document.body.scrollLeft;
-    }
-
-    qx.Proto._computePageY = function() {
-      return this.getDomEvent().clientY + document.body.scrollTop;
-    }
-  }
-}
-else if (qx.core.Client.getInstance().isGecko())
-{
-  qx.Proto.getPageX = function() {
-    return this.getDomEvent().pageX;
-  }
-
-  qx.Proto.getPageY = function() {
-    return this.getDomEvent().pageY;
-  }
-}
-else
-{
-  qx.Proto.getPageX = function() {
-    return this.getDomEvent().clientX;
-  }
-
-  qx.Proto.getPageY = function() {
-    return this.getDomEvent().clientY;
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CLIENT COORDINATES SUPPORT
----------------------------------------------------------------------------
-*/
-
-if (qx.core.Client.getInstance().isMshtml() || qx.core.Client.getInstance().isGecko())
-{
-  qx.Proto.getClientX = function() {
-    return this.getDomEvent().clientX;
-  }
-
-  qx.Proto.getClientY = function() {
-    return this.getDomEvent().clientY;
-  }
-}
-else
-{
-qx.OO.addFastProperty({ name : "clientX", readOnly : true });
-qx.OO.addFastProperty({ name : "clientY", readOnly : true });
-
-  qx.Proto._computeClientX = function() {
-    return this.getDomEvent().clientX + (document.body && document.body.scrollLeft != null ? document.body.scrollLeft : 0);
-  }
-
-  qx.Proto._computeClientY = function() {
-    return this.getDomEvent().clientY + (document.body && document.body.scrollTop != null ? document.body.scrollTop : 0);
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  BUTTON SUPPORT
----------------------------------------------------------------------------
-*/
-
-qx.OO.addFastProperty({ name : "button", readOnly : true });
-
-// IE does not set e.button in click events
-if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.Proto.isLeftButtonPressed = function() {
-    if (this.getType() == "click") {
-      return true;
-    } else {
-      return this.getButton() === qx.event.type.MouseEvent.C_BUTTON_LEFT;
-    }
-  }
-}
-else
-{
-  qx.Proto.isLeftButtonPressed = function() {
-    return this.getButton() === qx.event.type.MouseEvent.C_BUTTON_LEFT;
-  }
-}
-
-qx.Proto.isMiddleButtonPressed = function() {
-  return this.getButton() === qx.event.type.MouseEvent.C_BUTTON_MIDDLE;
-}
-
-qx.Proto.isRightButtonPressed = function() {
-  return this.getButton() === qx.event.type.MouseEvent.C_BUTTON_RIGHT;
-}
-
-qx.Proto._computeButton = function() {
-  var e = this.getDomEvent();
-  if (e.which) {
-    switch (e.which) {
-      case 1:
-        return qx.event.type.MouseEvent.C_BUTTON_LEFT;
-
-      case 3:
-        return qx.event.type.MouseEvent.C_BUTTON_RIGHT;
-
-      case 2:
-        return qx.event.type.MouseEvent.C_BUTTON_MIDDLE;
-
-      default:
-        return qx.event.type.MouseEvent.C_BUTTON_NONE;
-
-    }
-  } else {
-    switch(e.button) {
-      case 1:
-        return qx.event.type.MouseEvent.C_BUTTON_LEFT;
-
-      case 2:
-        return qx.event.type.MouseEvent.C_BUTTON_RIGHT;
-
-      case 4:
-        return qx.event.type.MouseEvent.C_BUTTON_MIDDLE;
-
-      default:
-        return qx.event.type.MouseEvent.C_BUTTON_NONE;
-    }
-  }
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  WHEEL SUPPORT
----------------------------------------------------------------------------
-*/
-
-// Implementation differences: http://ajaxian.com/archives/javascript-and-mouse-wheels
-
-qx.OO.addFastProperty({ name : "wheelDelta", readOnly : true });
-
-if(qx.core.Client.getInstance().isMshtml())
-{
-  qx.Proto._computeWheelDelta = function() {
-    return this.getDomEvent().wheelDelta / 120;
-  }
-}
-else if(qx.core.Client.getInstance().isOpera())
-{
-  qx.Proto._computeWheelDelta = function() {
-    return -this.getDomEvent().wheelDelta / 120;
-  }
-}
-else
-{
-  qx.Proto._computeWheelDelta = function() {
-    return -this.getDomEvent().detail / 3;
-  }
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Dimension.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Dimension.js
deleted file mode 100644 (file)
index cfbbf68..0000000
+++ /dev/null
@@ -1,233 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.html.Dimension");
-
-/*
-+-Outer----------------------------------------+
-|  Margin                                      |
-|  +-Box------------------------------+        |
-|  |  Border (+ Scrollbar)            |        |
-|  |  +-Area--------------------+     |        |
-|  |  |  Padding                |     |        |
-|  |  |  +-Inner----------+     |     |        |
-|  |  |  |                |     |     |        |
-|  |  |  +----------------+     |     |        |
-|  |  +-------------------------+     |        |
-|  +----------------------------------+        |
-+----------------------------------------------+
-*/
-
-// Dimensions
-qx.html.Dimension.getOuterWidth  = function(el) { return qx.html.Dimension.getBoxWidth(el)  + qx.html.Style.getMarginLeft(el) + qx.html.Style.getMarginRight(el); }
-qx.html.Dimension.getOuterHeight = function(el) { return qx.html.Dimension.getBoxHeight(el) + qx.html.Style.getMarginTop(el)  + qx.html.Style.getMarginBottom(el); }
-
-qx.html.Dimension.getBoxWidthForZeroHeight = function(el)
-{
-  var h = el.offsetHeight;
-  if (h == 0) {
-    var o = el.style.height;
-    el.style.height = "1px";
-  }
-
-  var v = el.offsetWidth;
-
-  if (h == 0) {
-    el.style.height = o;
-  }
-
-  return v;
-}
-
-qx.html.Dimension.getBoxHeightForZeroWidth = function(el)
-{
-  var w = el.offsetWidth;
-  if (w == 0) {
-    var o = el.style.width;
-    el.style.width = "1px";
-  }
-
-  var v = el.offsetHeight;
-
-  if (w == 0) {
-    el.style.width = o;
-  }
-
-  return v;
-}
-
-qx.html.Dimension.getBoxWidth = function(el) {
-  return el.offsetWidth;
-}
-
-qx.html.Dimension.getBoxHeight = function(el) {
-  return el.offsetHeight;
-}
-
-
-qx.html.Dimension.getAreaWidth = function(el) {};
-qx.html.Dimension.getAreaHeight = function(el) {};
-
-if (qx.core.Client.getInstance().isGecko())
-{
-  qx.html.Dimension.getAreaWidth = function(el)
-  {
-    // 0 in clientWidth could mean both: That it is really 0 or
-    // that the element is not rendered by the browser and
-    // therefore it is 0, too
-
-    // In Gecko based browsers there is sometimes another
-    // behaviour: The clientHeight is equal to the border
-    // sum. This is normally not correct and so we
-    // fix this value with a more complex calculation.
-
-    // (Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.7.6) Gecko/20050223 Firefox/1.0.1)
-
-    if (el.clientWidth != 0 && el.clientWidth != (qx.html.Style.getBorderLeft(el) + qx.html.Style.getBorderRight(el)))
-    {
-      return el.clientWidth;
-    }
-    else
-    {
-      return qx.html.Dimension.getBoxWidth(el) - qx.html.Dimension.getInsetLeft(el) - qx.html.Dimension.getInsetRight(el);
-    }
-  }
-
-  qx.html.Dimension.getAreaHeight = function(el)
-  {
-    // 0 in clientHeight could mean both: That it is really 0 or
-    // that the element is not rendered by the browser and
-    // therefore it is 0, too
-
-    // In Gecko based browsers there is sometimes another
-    // behaviour: The clientHeight is equal to the border
-    // sum. This is normally not correct and so we
-    // fix this value with a more complex calculation.
-
-    // (Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.7.6) Gecko/20050223 Firefox/1.0.1)
-
-    if (el.clientHeight != 0 && el.clientHeight != (qx.html.Style.getBorderTop(el) + qx.html.Style.getBorderBottom(el)))
-    {
-      return el.clientHeight;
-    }
-    else
-    {
-      return qx.html.Dimension.getBoxHeight(el) - qx.html.Dimension.getInsetTop(el) - qx.html.Dimension.getInsetBottom(el);
-    }
-  }
-}
-else
-{
-  qx.html.Dimension.getAreaWidth = function(el)
-  {
-    // 0 in clientWidth could mean both: That it is really 0 or
-    // that the element is not rendered by the browser and
-    // therefore it is 0, too
-
-    return el.clientWidth != 0 ? el.clientWidth : (qx.html.Dimension.getBoxWidth(el) - qx.html.Dimension.getInsetLeft(el) - qx.html.Dimension.getInsetRight(el));
-  }
-
-  qx.html.Dimension.getAreaHeight = function(el)
-  {
-    // 0 in clientHeight could mean both: That it is really 0 or
-    // that the element is not rendered by the browser and
-    // therefore it is 0, too
-
-    return el.clientHeight != 0 ? el.clientHeight : (qx.html.Dimension.getBoxHeight(el) - qx.html.Dimension.getInsetTop(el) - qx.html.Dimension.getInsetBottom(el));
-  }
-}
-
-qx.html.Dimension.getInnerWidth  = function(el) { return qx.html.Dimension.getAreaWidth(el) - qx.html.Style.getPaddingLeft(el) - qx.html.Style.getPaddingRight(el); }
-qx.html.Dimension.getInnerHeight = function(el) { return qx.html.Dimension.getAreaHeight(el) - qx.html.Style.getPaddingTop(el)  - qx.html.Style.getPaddingBottom(el); }
-
-
-
-
-// Insets
-qx.html.Dimension.getInsetLeft   = function(el) {};
-qx.html.Dimension.getInsetTop    = function(el) {};
-qx.html.Dimension.getInsetRight  = function(el) {};
-qx.html.Dimension.getInsetBottom = function(el) {};
-
-if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.html.Dimension.getInsetLeft   = function(el) { return el.clientLeft; }
-  qx.html.Dimension.getInsetTop    = function(el) { return el.clientTop; }
-  qx.html.Dimension.getInsetRight  = function(el) {
-    if(qx.html.Style.getStyleProperty(el, "overflowY") == "hidden" || el.clientWidth == 0) {
-      return qx.html.Style.getBorderRight(el);
-    }
-
-    return Math.max(0, el.offsetWidth - el.clientLeft - el.clientWidth);
-  }
-
-  qx.html.Dimension.getInsetBottom = function(el) {
-    if(qx.html.Style.getStyleProperty(el, "overflowX") == "hidden" || el.clientHeight == 0) {
-      return qx.html.Style.getBorderBottom(el);
-    }
-
-    return Math.max(0, el.offsetHeight - el.clientTop - el.clientHeight);
-  }
-}
-else
-{
-  qx.html.Dimension.getInsetLeft   = function(el) { return qx.html.Style.getBorderLeft(el); }
-  qx.html.Dimension.getInsetTop    = function(el) { return qx.html.Style.getBorderTop(el); }
-
-  qx.html.Dimension.getInsetRight  = function(el) {
-    // Alternative method if clientWidth is unavailable
-    // clientWidth == 0 could mean both: unavailable or really 0
-    if (el.clientWidth == 0) {
-      var ov = qx.html.Style.getStyleProperty(el, "overflow");
-      var sbv = ov == "scroll" || ov == "-moz-scrollbars-vertical" ? 16 : 0;
-      return Math.max(0, qx.html.Style.getBorderRight(el) + sbv);
-    }
-
-    return Math.max(0, el.offsetWidth - el.clientWidth - qx.html.Style.getBorderLeft(el));
-  }
-
-  qx.html.Dimension.getInsetBottom = function(el) {
-    // Alternative method if clientHeight is unavailable
-    // clientHeight == 0 could mean both: unavailable or really 0
-    if (el.clientHeight == 0) {
-      var ov = qx.html.Style.getStyleProperty(el, "overflow");
-      var sbv = ov == "scroll" || ov == "-moz-scrollbars-horizontal" ? 16 : 0;
-      return Math.max(0, qx.html.Style.getBorderBottom(el) + sbv);
-    }
-
-    return Math.max(0, el.offsetHeight - el.clientHeight - qx.html.Style.getBorderTop(el));
-  }
-}
-
-
-// Scrollbar
-qx.html.Dimension.getScrollBarSizeLeft   = function(el) { return 0; }
-qx.html.Dimension.getScrollBarSizeTop    = function(el) { return 0; }
-qx.html.Dimension.getScrollBarSizeRight  = function(el) { return qx.html.Dimension.getInsetRight(el)  - qx.html.Style.getBorderRight(el); }
-qx.html.Dimension.getScrollBarSizeBottom = function(el) { return qx.html.Dimension.getInsetBottom(el) - qx.html.Style.getBorderBottom(el); }
-
-qx.html.Dimension.getScrollBarVisibleX   = function(el) { return qx.html.Dimension.getScrollBarSizeRight(el)  > 0; }
-qx.html.Dimension.getScrollBarVisibleY   = function(el) { return qx.html.Dimension.getScrollBarSizeBottom(el) > 0; }
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/ElementFromPoint.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/ElementFromPoint.js
deleted file mode 100644 (file)
index 572243c..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.html.ElementFromPoint");
-
-qx.html.ElementFromPoint.getElementFromPoint = function(x, y) {
-  return qx.html.ElementFromPoint.getElementFromPointHandler(document.body, x, y);
-}
-
-qx.html.ElementFromPoint.getElementFromPointHandler = function(node, x, y, recursive)
-{
-  var ch = node.childNodes;
-  var chl = ch.length-1;
-
-  if (chl < 0) {
-    return null;
-  }
-
-  var chc, subres, ret;
-
-  do
-  {
-    chc = ch[chl];
-    ret = qx.html.ElementFromPoint.getElementFromPointChecker(chc, x, y);
-
-    if (ret)
-    {
-      if (typeof recursive === "boolean" && recursive == false)
-      {
-        return chc;
-      }
-      else
-      {
-        subres = qx.html.ElementFromPoint.getElementFromPointHandler(chc, x-ret[0]-qx.html.Style.getBorderLeft(chc), y-ret[2]-qx.html.Style.getBorderTop(chc));
-        return subres ? subres : chc;
-      }
-    }
-  }
-  while(chl--);
-
-  return null;
-}
-
-qx.html.ElementFromPoint.getElementFromPointChecker = function(chc, x, y)
-{
-  var xstart, ystart, xstop, ystop;
-
-  if (chc.nodeType != 1) {
-    return false;
-  }
-
-  xstart = qx.html.Offset.getLeft(chc);
-  if (x > xstart)
-  {
-    ystart = qx.html.Offset.getTop(chc);
-    if (y > ystart)
-    {
-      xstop = xstart + chc.offsetWidth;
-
-      if (x < xstop)
-      {
-        ystop = ystart + chc.offsetHeight;
-        if (y < ystop)
-        {
-          return [ xstart, xstop, ystart, ystop ];
-        }
-      }
-    }
-  }
-
-  return false;
-}
-
-qx.html.ElementFromPoint.getElementAbsolutePointChecker = function(chc, x, y)
-{
-  var xstart, ystart, xstop, ystop;
-
-  if (!chc || chc.nodeType != 1) {
-    return false;
-  }
-
-  xstart = qx.html.Location.getPageBoxLeft(chc);
-  if (x > xstart)
-  {
-    ystart = qx.html.Location.getPageBoxTop(chc);
-    if (y > ystart)
-    {
-      xstop = xstart + chc.offsetWidth;
-
-      if (x < xstop)
-      {
-        ystop = ystart + chc.offsetHeight;
-        if (y < ystop)
-        {
-          return [ xstart, xstop, ystart, ystop ];
-        }
-      }
-    }
-  }
-
-  return false;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Entity.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Entity.js
deleted file mode 100644 (file)
index 6f00787..0000000
+++ /dev/null
@@ -1,323 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#require(qx.lang.Object)
-
-************************************************************************ */
-
-/**
- * A Collection of utility functions to escape and unescape strings.
- */
-qx.OO.defineClass("qx.html.Entity");
-
-
-/** Mapping of HTML entity names to the corresponding char code */
-qx.Class.TO_CHARCODE = {
-  "quot": 34, // " - double-quote
-  "amp": 38, // &
-  "lt": 60, // <
-  "gt": 62, // >
-
-   // http://www.w3.org/TR/REC-html40/sgml/entities.html
-   // ISO 8859-1 characters
-  "nbsp": 160, // no-break space
-  "iexcl": 161, // inverted exclamation mark
-  "cent": 162, // cent sign
-  "pound": 163, // pound sterling sign
-  "curren": 164, // general currency sign
-  "yen": 165, // yen sign
-  "brvbar": 166, // broken (vertical) bar
-  "sect": 167, // section sign
-  "uml": 168, // umlaut (dieresis)
-  "copy": 169, // copyright sign
-  "ordf": 170, // ordinal indicator, feminine
-  "laquo": 171, // angle quotation mark, left
-  "not": 172, // not sign
-  "shy": 173, // soft hyphen
-  "reg": 174, // registered sign
-  "macr": 175, // macron
-  "deg": 176, // degree sign
-  "plusmn": 177, // plus-or-minus sign
-  "sup2": 178, // superscript two
-  "sup3": 179, // superscript three
-  "acute": 180, // acute accent
-  "micro": 181, // micro sign
-  "para": 182, // pilcrow (paragraph sign)
-  "middot": 183, // middle dot
-  "cedil": 184, // cedilla
-  "sup1": 185, // superscript one
-  "ordm": 186, // ordinal indicator, masculine
-  "raquo": 187, // angle quotation mark, right
-  "frac14": 188, // fraction one-quarter
-  "frac12": 189, // fraction one-half
-  "frac34": 190, // fraction three-quarters
-  "iquest": 191, // inverted question mark
-  "Agrave": 192, // capital A, grave accent
-  "Aacute": 193, // capital A, acute accent
-  "Acirc": 194, // capital A, circumflex accent
-  "Atilde": 195, // capital A, tilde
-  "Auml": 196, // capital A, dieresis or umlaut mark
-  "Aring": 197, // capital A, ring
-  "AElig": 198, // capital AE diphthong (ligature)
-  "Ccedil": 199, // capital C, cedilla
-  "Egrave": 200, // capital E, grave accent
-  "Eacute": 201, // capital E, acute accent
-  "Ecirc": 202, // capital E, circumflex accent
-  "Euml": 203, // capital E, dieresis or umlaut mark
-  "Igrave": 204, // capital I, grave accent
-  "Iacute": 205, // capital I, acute accent
-  "Icirc": 206, // capital I, circumflex accent
-  "Iuml": 207, // capital I, dieresis or umlaut mark
-  "ETH": 208, // capital Eth, Icelandic
-  "Ntilde": 209, // capital N, tilde
-  "Ograve": 210, // capital O, grave accent
-  "Oacute": 211, // capital O, acute accent
-  "Ocirc": 212, // capital O, circumflex accent
-  "Otilde": 213, // capital O, tilde
-  "Ouml": 214, // capital O, dieresis or umlaut mark
-  "times": 215, // multiply sign
-  "Oslash": 216, // capital O, slash
-  "Ugrave": 217, // capital U, grave accent
-  "Uacute": 218, // capital U, acute accent
-  "Ucirc": 219, // capital U, circumflex accent
-  "Uuml": 220, // capital U, dieresis or umlaut mark
-  "Yacute": 221, // capital Y, acute accent
-  "THORN": 222, // capital THORN, Icelandic
-  "szlig": 223, // small sharp s, German (sz ligature)
-  "agrave": 224, // small a, grave accent
-  "aacute": 225, // small a, acute accent
-  "acirc": 226, // small a, circumflex accent
-  "atilde": 227, // small a, tilde
-  "auml": 228, // small a, dieresis or umlaut mark
-  "aring": 229, // small a, ring
-  "aelig": 230, // small ae diphthong (ligature)
-  "ccedil": 231, // small c, cedilla
-  "egrave": 232, // small e, grave accent
-  "eacute": 233, // small e, acute accent
-  "ecirc": 234, // small e, circumflex accent
-  "euml": 235, // small e, dieresis or umlaut mark
-  "igrave": 236, // small i, grave accent
-  "iacute": 237, // small i, acute accent
-  "icirc": 238, // small i, circumflex accent
-  "iuml": 239, // small i, dieresis or umlaut mark
-  "eth": 240, // small eth, Icelandic
-  "ntilde": 241, // small n, tilde
-  "ograve": 242, // small o, grave accent
-  "oacute": 243, // small o, acute accent
-  "ocirc": 244, // small o, circumflex accent
-  "otilde": 245, // small o, tilde
-  "ouml": 246, // small o, dieresis or umlaut mark
-  "divide": 247, // divide sign
-  "oslash": 248, // small o, slash
-  "ugrave": 249, // small u, grave accent
-  "uacute": 250, // small u, acute accent
-  "ucirc": 251, // small u, circumflex accent
-  "uuml": 252, // small u, dieresis or umlaut mark
-  "yacute": 253, // small y, acute accent
-  "thorn": 254, // small thorn, Icelandic
-  "yuml": 255, // small y, dieresis or umlaut mark
-  // Latin Extended-B
-  "fnof": 402, //latin small f with hook = function= florin, U+0192 ISOtech
-  // Greek
-  "Alpha": 913, //greek capital letter alpha, U+0391
-  "Beta": 914, //greek capital letter beta, U+0392
-  "Gamma": 915, //greek capital letter gamma,U+0393 ISOgrk3
-  "Delta": 916, //greek capital letter delta,U+0394 ISOgrk3
-  "Epsilon": 917, //greek capital letter epsilon, U+0395
-  "Zeta": 918, //greek capital letter zeta, U+0396
-  "Eta": 919, //greek capital letter eta, U+0397
-  "Theta": 920, //greek capital letter theta,U+0398 ISOgrk3
-  "Iota": 921, //greek capital letter iota, U+0399
-  "Kappa": 922, //greek capital letter kappa, U+039A
-  "Lambda": 923, //greek capital letter lambda,U+039B ISOgrk3
-  "Mu": 924, //greek capital letter mu, U+039C
-  "Nu": 925, //greek capital letter nu, U+039D
-  "Xi": 926, //greek capital letter xi, U+039E ISOgrk3
-  "Omicron": 927, //greek capital letter omicron, U+039F
-  "Pi": 928, //greek capital letter pi, U+03A0 ISOgrk3
-  "Rho": 929, //greek capital letter rho, U+03A1
-  // there is no Sigmaf, and no U+03A2 character either
-  "Sigma": 931, //greek capital letter sigma,U+03A3 ISOgrk3
-  "Tau": 932, //greek capital letter tau, U+03A4
-  "Upsilon": 933, //greek capital letter upsilon,U+03A5 ISOgrk3
-  "Phi": 934, //greek capital letter phi,U+03A6 ISOgrk3
-  "Chi": 935, //greek capital letter chi, U+03A7
-  "Psi": 936, //greek capital letter psi,U+03A8 ISOgrk3
-  "Omega": 937, //greek capital letter omega,U+03A9 ISOgrk3
-  "alpha": 945, //greek small letter alpha,U+03B1 ISOgrk3
-  "beta": 946, //greek small letter beta, U+03B2 ISOgrk3
-  "gamma": 947, //greek small letter gamma,U+03B3 ISOgrk3
-  "delta": 948, //greek small letter delta,U+03B4 ISOgrk3
-  "epsilon": 949, //greek small letter epsilon,U+03B5 ISOgrk3
-  "zeta": 950, //greek small letter zeta, U+03B6 ISOgrk3
-  "eta": 951, //greek small letter eta, U+03B7 ISOgrk3
-  "theta": 952, //greek small letter theta,U+03B8 ISOgrk3
-  "iota": 953, //greek small letter iota, U+03B9 ISOgrk3
-  "kappa": 954, //greek small letter kappa,U+03BA ISOgrk3
-  "lambda": 955, //greek small letter lambda,U+03BB ISOgrk3
-  "mu": 956, //greek small letter mu, U+03BC ISOgrk3
-  "nu": 957, //greek small letter nu, U+03BD ISOgrk3
-  "xi": 958, //greek small letter xi, U+03BE ISOgrk3
-  "omicron": 959, //greek small letter omicron, U+03BF NEW
-  "pi": 960, //greek small letter pi, U+03C0 ISOgrk3
-  "rho": 961, //greek small letter rho, U+03C1 ISOgrk3
-  "sigmaf": 962, //greek small letter final sigma,U+03C2 ISOgrk3
-  "sigma": 963, //greek small letter sigma,U+03C3 ISOgrk3
-  "tau": 964, //greek small letter tau, U+03C4 ISOgrk3
-  "upsilon": 965, //greek small letter upsilon,U+03C5 ISOgrk3
-  "phi": 966, //greek small letter phi, U+03C6 ISOgrk3
-  "chi": 967, //greek small letter chi, U+03C7 ISOgrk3
-  "psi": 968, //greek small letter psi, U+03C8 ISOgrk3
-  "omega": 969, //greek small letter omega,U+03C9 ISOgrk3
-  "thetasym": 977, //greek small letter theta symbol,U+03D1 NEW
-  "upsih": 978, //greek upsilon with hook symbol,U+03D2 NEW
-  "piv": 982, //greek pi symbol, U+03D6 ISOgrk3
-  // General Punctuation
-  "bull": 8226, //bullet = black small circle,U+2022 ISOpub
-  // bullet is NOT the same as bullet operator, U+2219
-  "hellip": 8230, //horizontal ellipsis = three dot leader,U+2026 ISOpub
-  "prime": 8242, //prime = minutes = feet, U+2032 ISOtech
-  "Prime": 8243, //double prime = seconds = inches,U+2033 ISOtech
-  "oline": 8254, //overline = spacing overscore,U+203E NEW
-  "frasl": 8260, //fraction slash, U+2044 NEW
-  // Letterlike Symbols
-  "weierp": 8472, //script capital P = power set= Weierstrass p, U+2118 ISOamso
-  "image": 8465, //blackletter capital I = imaginary part,U+2111 ISOamso
-  "real": 8476, //blackletter capital R = real part symbol,U+211C ISOamso
-  "trade": 8482, //trade mark sign, U+2122 ISOnum
-  "alefsym": 8501, //alef symbol = first transfinite cardinal,U+2135 NEW
-  // alef symbol is NOT the same as hebrew letter alef,U+05D0 although the same glyph could be used to depict both characters
-  // Arrows
-  "larr": 8592, //leftwards arrow, U+2190 ISOnum
-  "uarr": 8593, //upwards arrow, U+2191 ISOnum-->
-  "rarr": 8594, //rightwards arrow, U+2192 ISOnum
-  "darr": 8595, //downwards arrow, U+2193 ISOnum
-  "harr": 8596, //left right arrow, U+2194 ISOamsa
-  "crarr": 8629, //downwards arrow with corner leftwards= carriage return, U+21B5 NEW
-  "lArr": 8656, //leftwards double arrow, U+21D0 ISOtech
-  // ISO 10646 does not say that lArr is the same as the 'is implied by' arrowbut also does not have any other character for that function. So ? lArr canbe used for 'is implied by' as ISOtech suggests
-  "uArr": 8657, //upwards double arrow, U+21D1 ISOamsa
-  "rArr": 8658, //rightwards double arrow,U+21D2 ISOtech
-  // ISO 10646 does not say this is the 'implies' character but does not have another character with this function so ?rArr can be used for 'implies' as ISOtech suggests
-  "dArr": 8659, //downwards double arrow, U+21D3 ISOamsa
-  "hArr": 8660, //left right double arrow,U+21D4 ISOamsa
-  // Mathematical Operators
-  "forall": 8704, //for all, U+2200 ISOtech
-  "part": 8706, //partial differential, U+2202 ISOtech
-  "exist": 8707, //there exists, U+2203 ISOtech
-  "empty": 8709, //empty set = null set = diameter,U+2205 ISOamso
-  "nabla": 8711, //nabla = backward difference,U+2207 ISOtech
-  "isin": 8712, //element of, U+2208 ISOtech
-  "notin": 8713, //not an element of, U+2209 ISOtech
-  "ni": 8715, //contains as member, U+220B ISOtech
-  // should there be a more memorable name than 'ni'?
-  "prod": 8719, //n-ary product = product sign,U+220F ISOamsb
-  // prod is NOT the same character as U+03A0 'greek capital letter pi' though the same glyph might be used for both
-  "sum": 8721, //n-ary summation, U+2211 ISOamsb
-  // sum is NOT the same character as U+03A3 'greek capital letter sigma' though the same glyph might be used for both
-  "minus": 8722, //minus sign, U+2212 ISOtech
-  "lowast": 8727, //asterisk operator, U+2217 ISOtech
-  "radic": 8730, //square root = radical sign,U+221A ISOtech
-  "prop": 8733, //proportional to, U+221D ISOtech
-  "infin": 8734, //infinity, U+221E ISOtech
-  "ang": 8736, //angle, U+2220 ISOamso
-  "and": 8743, //logical and = wedge, U+2227 ISOtech
-  "or": 8744, //logical or = vee, U+2228 ISOtech
-  "cap": 8745, //intersection = cap, U+2229 ISOtech
-  "cup": 8746, //union = cup, U+222A ISOtech
-  "int": 8747, //integral, U+222B ISOtech
-  "there4": 8756, //therefore, U+2234 ISOtech
-  "sim": 8764, //tilde operator = varies with = similar to,U+223C ISOtech
-  // tilde operator is NOT the same character as the tilde, U+007E,although the same glyph might be used to represent both
-  "cong": 8773, //approximately equal to, U+2245 ISOtech
-  "asymp": 8776, //almost equal to = asymptotic to,U+2248 ISOamsr
-  "ne": 8800, //not equal to, U+2260 ISOtech
-  "equiv": 8801, //identical to, U+2261 ISOtech
-  "le": 8804, //less-than or equal to, U+2264 ISOtech
-  "ge": 8805, //greater-than or equal to,U+2265 ISOtech
-  "sub": 8834, //subset of, U+2282 ISOtech
-  "sup": 8835, //superset of, U+2283 ISOtech
-  // note that nsup, 'not a superset of, U+2283' is not covered by the Symbol font encoding and is not included. Should it be, for symmetry?It is in ISOamsn  --> <!ENTITY nsub": 8836,  //not a subset of, U+2284 ISOamsn
-  "sube": 8838, //subset of or equal to, U+2286 ISOtech
-  "supe": 8839, //superset of or equal to,U+2287 ISOtech
-  "oplus": 8853, //circled plus = direct sum,U+2295 ISOamsb
-  "otimes": 8855, //circled times = vector product,U+2297 ISOamsb
-  "perp": 8869, //up tack = orthogonal to = perpendicular,U+22A5 ISOtech
-  "sdot": 8901, //dot operator, U+22C5 ISOamsb
-  // dot operator is NOT the same character as U+00B7 middle dot
-  // Miscellaneous Technical
-  "lceil": 8968, //left ceiling = apl upstile,U+2308 ISOamsc
-  "rceil": 8969, //right ceiling, U+2309 ISOamsc
-  "lfloor": 8970, //left floor = apl downstile,U+230A ISOamsc
-  "rfloor": 8971, //right floor, U+230B ISOamsc
-  "lang": 9001, //left-pointing angle bracket = bra,U+2329 ISOtech
-  // lang is NOT the same character as U+003C 'less than' or U+2039 'single left-pointing angle quotation mark'
-  "rang": 9002, //right-pointing angle bracket = ket,U+232A ISOtech
-  // rang is NOT the same character as U+003E 'greater than' or U+203A 'single right-pointing angle quotation mark'
-  // Geometric Shapes
-  "loz": 9674, //lozenge, U+25CA ISOpub
-  // Miscellaneous Symbols
-  "spades": 9824, //black spade suit, U+2660 ISOpub
-  // black here seems to mean filled as opposed to hollow
-  "clubs": 9827, //black club suit = shamrock,U+2663 ISOpub
-  "hearts": 9829, //black heart suit = valentine,U+2665 ISOpub
-  "diams": 9830, //black diamond suit, U+2666 ISOpub
-
-  // Latin Extended-A
-  "OElig": 338, //  -- latin capital ligature OE,U+0152 ISOlat2
-  "oelig": 339, //  -- latin small ligature oe, U+0153 ISOlat2
-  // ligature is a misnomer, this is a separate character in some languages
-  "Scaron": 352, //  -- latin capital letter S with caron,U+0160 ISOlat2
-  "scaron": 353, //  -- latin small letter s with caron,U+0161 ISOlat2
-  "Yuml": 376, //  -- latin capital letter Y with diaeresis,U+0178 ISOlat2
-  // Spacing Modifier Letters
-  "circ": 710, //  -- modifier letter circumflex accent,U+02C6 ISOpub
-  "tilde": 732, //small tilde, U+02DC ISOdia
-  // General Punctuation
-  "ensp": 8194, //en space, U+2002 ISOpub
-  "emsp": 8195, //em space, U+2003 ISOpub
-  "thinsp": 8201, //thin space, U+2009 ISOpub
-  "zwnj": 8204, //zero width non-joiner,U+200C NEW RFC 2070
-  "zwj": 8205, //zero width joiner, U+200D NEW RFC 2070
-  "lrm": 8206, //left-to-right mark, U+200E NEW RFC 2070
-  "rlm": 8207, //right-to-left mark, U+200F NEW RFC 2070
-  "ndash": 8211, //en dash, U+2013 ISOpub
-  "mdash": 8212, //em dash, U+2014 ISOpub
-  "lsquo": 8216, //left single quotation mark,U+2018 ISOnum
-  "rsquo": 8217, //right single quotation mark,U+2019 ISOnum
-  "sbquo": 8218, //single low-9 quotation mark, U+201A NEW
-  "ldquo": 8220, //left double quotation mark,U+201C ISOnum
-  "rdquo": 8221, //right double quotation mark,U+201D ISOnum
-  "bdquo": 8222, //double low-9 quotation mark, U+201E NEW
-  "dagger": 8224, //dagger, U+2020 ISOpub
-  "Dagger": 8225, //double dagger, U+2021 ISOpub
-  "permil": 8240, //per mille sign, U+2030 ISOtech
-  "lsaquo": 8249, //single left-pointing angle quotation mark,U+2039 ISO proposed
-  // lsaquo is proposed but not yet ISO standardized
-  "rsaquo": 8250, //single right-pointing angle quotation mark,U+203A ISO proposed
-  // rsaquo is proposed but not yet ISO standardized
-  "euro": 8364 //  -- euro sign, U+20AC NEW
-};
-
-
-/** Mapping of char codes to HTML entity names */
-qx.Class.FROM_CHARCODE = qx.lang.Object.invert(qx.Class.TO_CHARCODE);
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/EventRegistration.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/EventRegistration.js
deleted file mode 100644 (file)
index d8a8d43..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-#require(qx.core.Client)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.html.EventRegistration");
-
-/**
- * Assign a function to an event.
- *
- * @param vElement {Element} DOM Element
- * @param vType {String} Name of the event
- * @param vFunction {Function} The pointer to the function to assign
- */
-qx.html.EventRegistration.addEventListener = function(vElement, vType, vFunction) {};
-
-/**
- * Unassign a function from an event.
- *
- * @param vElement {Element} DOM Element
- * @param vType {String} Name of the event
- * @param vFunction {Function} The pointer to the function to assign
- */
-qx.html.EventRegistration.removeEventListener = function(vElement, vType, vFunction) {};
-
-if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.html.EventRegistration.addEventListener = function(vElement, vType, vFunction) {
-    vElement.attachEvent("on" + vType, vFunction);
-  }
-
-  qx.html.EventRegistration.removeEventListener = function(vElement, vType, vFunction) {
-    vElement.detachEvent("on" + vType, vFunction);
-  }
-}
-else
-{
-  qx.html.EventRegistration.addEventListener = function(vElement, vType, vFunction) {
-    vElement.addEventListener(vType, vFunction, false);
-  }
-
-  qx.html.EventRegistration.removeEventListener = function(vElement, vType, vFunction) {
-    vElement.removeEventListener(vType, vFunction, false);
-  }
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Form.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Form.js
deleted file mode 100644 (file)
index 4ebe0be..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(io_remote)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.html.Form");
-
-qx.Class.ignoreInputTypes = [ "file", "submit", "image", "reset", "button" ];
-qx.Class.ignoreElementTypes = [ "fieldset" ];
-qx.Class.checkElementTypes = [ "radio", "checkbox" ];
-qx.Class.multiSelectType = "select-multiple";
-
-qx.Class.inputFilter = function(vNode)
-{
-  if (vNode.disabled) {
-    return false;
-  }
-
-  var vTag = (vNode.tagName || "").toLowerCase();
-
-  if (qx.lang.Array.contains(qx.html.Form.ignoreElementTypes, vTag)) {
-    return false;
-  }
-
-  var vType = vNode.type.toLowerCase();
-
-  if (qx.lang.Array.contains(qx.html.Form.ignoreInputTypes, vType)) {
-    return false;
-  }
-
-  if (!vNode.checked && qx.lang.Array.contains(qx.html.Form.checkElementTypes, vType)) {
-    return false;
-  }
-
-  return true;
-}
-
-qx.Class.getFields = function(vForm) {
-  return Array.filter(vForm.elements, qx.html.Form.inputFilter);
-}
-
-qx.Class.encodeField = function(vNode)
-{
-  var vName = vNode.name || "";
-  var vType = (vNode.type || "").toLowerCase();
-
-  if(vType === qx.html.Form.multiSelectType)
-  {
-    var vValues = [];
-
-    for(var i=0; i<vNode.options.length; i++)
-    {
-      if(vNode.options[i].selected) {
-        vValues.push(vName + "=" + vNode.options[i].value);
-      }
-    }
-
-    return vValues.join("&");
-  }
-  else
-  {
-    return vName + "=" + vNode.value;
-  }
-}
-
-qx.Class.encodeForm = function(vForm)
-{
-  var vFields = qx.html.Form.getFields(vForm);
-  var vAll = [];
-
-  for (var i=0, l=vFields.length; i<l; i++) {
-    vAll.push(qx.html.Form.encodeField(vFields[i]));
-  }
-
-  return vAll.join("&");
-}
-
-qx.Class.bind = function(vForm, vMethod)
-{
-  qx.html.EventRegistration.addEventListener(vForm, "submit", function(e)
-  {
-    e.returnValue = false;
-
-    if (typeof e.preventDefault === "function") {
-      e.preventDefault();
-    }
-
-    return vMethod(e);
-  });
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Iframe.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Iframe.js
deleted file mode 100644 (file)
index adc4d8f..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(io_remote)
-#require(qx.core.Client)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.html.Iframe");
-
-qx.html.Iframe.getWindow = function(vIframe) {};
-qx.html.Iframe.getDocument = function(vIframe) {};
-
-if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.html.Iframe.getWindow = function(vIframe)
-  {
-    try
-    {
-      return vIframe.contentWindow;
-    }
-    catch(ex)
-    {
-      return null;
-    }
-  }
-
-  qx.html.Iframe.getDocument = function(vIframe)
-  {
-    try
-    {
-      var vWin = qx.html.Iframe.getWindow(vIframe);
-      return vWin ? vWin.document : null;
-    }
-    catch(ex)
-    {
-      return null;
-    }
-  }
-}
-else
-{
-  qx.html.Iframe.getWindow = function(vIframe)
-  {
-    try
-    {
-      var vDoc = qx.html.Iframe.getDocument(vIframe);
-      return vDoc ? vDoc.defaultView : null;
-    }
-    catch(ex)
-    {
-      return null;
-    }
-  }
-
-  qx.html.Iframe.getDocument = function(vIframe)
-  {
-    try
-    {
-      return vIframe.contentDocument;
-    }
-    catch(ex)
-    {
-      return null;
-    }
-  }
-}
-
-qx.html.Iframe.getBody = function(vIframe)
-{
-  var vDoc = qx.html.Iframe.getDocument(vIframe);
-  return vDoc ? vDoc.getElementsByTagName("body")[0] : null;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Location.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Location.js
deleted file mode 100644 (file)
index b51241b..0000000
+++ /dev/null
@@ -1,284 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#require(qx.core.Client)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.html.Location");
-
-qx.html.Location.getPageOuterLeft     = function(el) { return qx.html.Location.getPageBoxLeft(el)     - qx.html.Style.getMarginLeft(el); }
-qx.html.Location.getPageOuterTop      = function(el) { return qx.html.Location.getPageBoxTop(el)      - qx.html.Style.getMarginTop(el); }
-qx.html.Location.getPageOuterRight    = function(el) { return qx.html.Location.getPageBoxRight(el)    + qx.html.Style.getMarginRight(el); }
-qx.html.Location.getPageOuterBottom   = function(el) { return qx.html.Location.getPageBoxBottom(el)   + qx.html.Style.getMarginBottom(el); }
-
-qx.html.Location.getClientOuterLeft   = function(el) { return qx.html.Location.getClientBoxLeft(el)   - qx.html.Style.getMarginLeft(el); }
-qx.html.Location.getClientOuterTop    = function(el) { return qx.html.Location.getClientBoxTop(el)    - qx.html.Style.getMarginTop(el); }
-qx.html.Location.getClientOuterRight  = function(el) { return qx.html.Location.getClientBoxRight(el)  + qx.html.Style.getMarginRight(el); }
-qx.html.Location.getClientOuterBottom = function(el) { return qx.html.Location.getClientBoxBottom(el) + qx.html.Style.getMarginBottom(el); }
-
-
-qx.html.Location.getClientBoxLeft = function(el) {}
-qx.html.Location.getClientBoxTop = function(el) {}
-qx.html.Location.getClientBoxRight = function(el) {}
-qx.html.Location.getClientBoxBottom = function(el) {}
-qx.html.Location.getPageBoxLeft = function(el) {}
-qx.html.Location.getPageBoxTop = function(el) {}
-qx.html.Location.getPageBoxRight = function(el) {}
-qx.html.Location.getPageBoxBottom = function(el) {}
-
-if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.html.Location.getClientBoxLeft   = function(el) { return el.getBoundingClientRect().left; }
-  qx.html.Location.getClientBoxTop    = function(el) { return el.getBoundingClientRect().top; }
-
-  qx.html.Location.getPageBoxLeft     = function(el) { return qx.html.Location.getClientBoxLeft(el)  + qx.html.Scroll.getLeftSum(el); }
-  qx.html.Location.getPageBoxTop      = function(el) { return qx.html.Location.getClientBoxTop(el)   + qx.html.Scroll.getTopSum(el); }
-}
-else if (qx.core.Client.getInstance().isGecko())
-{
-  qx.html.Location.getClientBoxLeft   = function(el) { return qx.html.Location.getClientAreaLeft(el) - qx.html.Style.getBorderLeft(el); }
-  qx.html.Location.getClientBoxTop    = function(el) { return qx.html.Location.getClientAreaTop(el)  - qx.html.Style.getBorderTop(el); }
-
-  qx.html.Location.getPageBoxLeft     = function(el) { return qx.html.Location.getPageAreaLeft(el)   - qx.html.Style.getBorderLeft(el); }
-  qx.html.Location.getPageBoxTop      = function(el) { return qx.html.Location.getPageAreaTop(el)    - qx.html.Style.getBorderTop(el); }
-}
-else
-{
-  qx.html.Location.getPageBoxLeft = function(el)
-  {
-    var sum = el.offsetLeft;
-    while (el.tagName.toLowerCase() != "body")
-    {
-      el = el.offsetParent;
-      sum += el.offsetLeft;
-    }
-
-    return sum;
-  }
-
-  qx.html.Location.getPageBoxTop = function(el)
-  {
-    var sum = el.offsetTop;
-    while (el.tagName.toLowerCase() != "body")
-    {
-      el = el.offsetParent;
-      sum += el.offsetTop;
-    }
-
-    return sum;
-  }
-
-  qx.html.Location.getClientBoxLeft = function(el)
-  {
-    var sum = el.offsetLeft;
-    while (el.tagName.toLowerCase() != "body")
-    {
-      el = el.offsetParent;
-      sum += el.offsetLeft - el.scrollLeft;
-    }
-
-    return sum;
-  }
-
-  qx.html.Location.getClientBoxTop = function(el)
-  {
-    var sum = el.offsetTop;
-    while (el.tagName.toLowerCase() != "body")
-    {
-      el = el.offsetParent;
-      sum += el.offsetTop - el.scrollTop;
-    }
-
-    return sum;
-  }
-}
-
-if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.html.Location.getClientBoxRight  = function(el) { return el.getBoundingClientRect().right; }
-  qx.html.Location.getClientBoxBottom = function(el) { return el.getBoundingClientRect().bottom; }
-
-  qx.html.Location.getPageBoxRight    = function(el) { return qx.html.Location.getClientBoxRight(el)  + qx.html.Scroll.getLeftSum(el); }
-  qx.html.Location.getPageBoxBottom   = function(el) { return qx.html.Location.getClientBoxBottom(el) + qx.html.Scroll.getTopSum(el);  }
-}
-else
-{
-  qx.html.Location.getClientBoxRight  = function(el) { return qx.html.Location.getClientBoxLeft(el) + qx.html.Dimension.getBoxWidth(el); }
-  qx.html.Location.getClientBoxBottom = function(el) { return qx.html.Location.getClientBoxTop(el)  + qx.html.Dimension.getBoxHeight(el); }
-
-  qx.html.Location.getPageBoxRight    = function(el) { return qx.html.Location.getPageBoxLeft(el)   + qx.html.Dimension.getBoxWidth(el); }
-  qx.html.Location.getPageBoxBottom   = function(el) { return qx.html.Location.getPageBoxTop(el)    + qx.html.Dimension.getBoxHeight(el); }
-}
-
-
-qx.html.Location.getClientAreaLeft = function(el) {};
-qx.html.Location.getClientAreaTop = function(el) {};
-qx.html.Location.getPageAreaLeft = function(el) {};
-qx.html.Location.getPageAreaTop = function(el) {};
-
-if (qx.core.Client.getInstance().isGecko())
-{
-  qx.html.Location.getPageAreaLeft = function(el) {
-    return el.ownerDocument.getBoxObjectFor(el).x;
-  }
-
-  qx.html.Location.getPageAreaTop = function(el) {
-    return el.ownerDocument.getBoxObjectFor(el).y;
-  }
-
-  // We need to subtract the scroll position of all parent containers (bug #186229).
-  qx.html.Location.getClientAreaLeft = function(el) {
-    return qx.html.Location.getPageAreaLeft(el) - qx.html.Scroll.getLeftSum(el);
-  }
-
-  // We need to subtract the scroll position of all parent containers (bug #186229).
-  qx.html.Location.getClientAreaTop = function(el) {
-    return qx.html.Location.getPageAreaTop(el) - qx.html.Scroll.getTopSum(el);
-  }
-}
-else
-{
-  qx.html.Location.getClientAreaLeft = function(el) { return qx.html.Location.getClientBoxLeft(el) + qx.html.Style.getBorderLeft(el); }
-  qx.html.Location.getClientAreaTop  = function(el) { return qx.html.Location.getClientBoxTop(el)  + qx.html.Style.getBorderTop(el); }
-
-  qx.html.Location.getPageAreaLeft = function(el) { return qx.html.Location.getPageBoxLeft(el) + qx.html.Style.getBorderLeft(el); }
-  qx.html.Location.getPageAreaTop  = function(el) { return qx.html.Location.getPageBoxTop(el)  + qx.html.Style.getBorderTop(el); }
-}
-
-
-
-qx.html.Location.getClientAreaRight   = function(el) { return qx.html.Location.getClientAreaLeft(el)  + qx.html.Dimension.getAreaWidth(el);  }
-qx.html.Location.getClientAreaBottom  = function(el) { return qx.html.Location.getClientAreaTop(el)   + qx.html.Dimension.getAreaHeight(el); }
-
-qx.html.Location.getPageAreaRight     = function(el) { return qx.html.Location.getPageAreaLeft(el)    + qx.html.Dimension.getAreaWidth(el);  }
-qx.html.Location.getPageAreaBottom    = function(el) { return qx.html.Location.getPageAreaTop(el)     + qx.html.Dimension.getAreaHeight(el); }
-
-
-
-
-qx.html.Location.getClientInnerLeft   = function(el) { return qx.html.Location.getClientAreaLeft(el)  + qx.html.Style.getPaddingLeft(el); }
-qx.html.Location.getClientInnerTop    = function(el) { return qx.html.Location.getClientAreaTop(el)   + qx.html.Style.getPaddingTop(el);  }
-qx.html.Location.getClientInnerRight  = function(el) { return qx.html.Location.getClientInnerLeft(el) + qx.html.Dimension.getInnerWidth(el);  }
-qx.html.Location.getClientInnerBottom = function(el) { return qx.html.Location.getClientInnerTop(el)  + qx.html.Dimension.getInnerHeight(el); }
-
-qx.html.Location.getPageInnerLeft     = function(el) { return qx.html.Location.getPageAreaLeft(el)    + qx.html.Style.getPaddingLeft(el); }
-qx.html.Location.getPageInnerTop      = function(el) { return qx.html.Location.getPageAreaTop(el)     + qx.html.Style.getPaddingTop(el);  }
-qx.html.Location.getPageInnerRight    = function(el) { return qx.html.Location.getPageInnerLeft(el)   + qx.html.Dimension.getInnerWidth(el);  }
-qx.html.Location.getPageInnerBottom   = function(el) { return qx.html.Location.getPageInnerTop(el)    + qx.html.Dimension.getInnerHeight(el); }
-
-
-// Screen
-qx.html.Location.getScreenBoxLeft = function(el) {};
-qx.html.Location.getScreenBoxTop = function(el) {};
-
-if (qx.core.Client.getInstance().isGecko())
-{
-  /*
-    screenX and screenY seem to return the distance to the box
-    and not to the area. Confusing, especially as the x and y properties
-    of the BoxObject return the distance to the area.
-  */
-
-  qx.html.Location.getScreenBoxLeft = function(el)
-  {
-    // We need to subtract the scroll position of all
-    // parent containers (bug #186229).
-    var sum = 0;
-    var p = el.parentNode;
-    while (p.nodeType == 1) {
-      sum += p.scrollLeft;
-      p = p.parentNode;
-    }
-
-    return el.ownerDocument.getBoxObjectFor(el).screenX - sum;
-  }
-
-  qx.html.Location.getScreenBoxTop = function(el)
-  {
-    // We need to subtract the scroll position of all
-    // parent containers (bug #186229).
-    var sum = 0;
-    var p = el.parentNode;
-    while (p.nodeType == 1) {
-      sum += p.scrollTop;
-      p = p.parentNode;
-    }
-
-    return el.ownerDocument.getBoxObjectFor(el).screenY - sum;
-  }
-}
-else
-{
-  // Hope this works in khtml, too (opera 7.6p3 seems to be ok)
-  qx.html.Location.getScreenBoxLeft = function(el) { return qx.html.Location.getScreenDocumentLeft(el) + qx.html.Location.getPageBoxLeft(el); }
-  qx.html.Location.getScreenBoxTop  = function(el) { return qx.html.Location.getScreenDocumentTop(el) + qx.html.Location.getPageBoxTop(el); }
-}
-
-qx.html.Location.getScreenBoxRight    = function(el) { return qx.html.Location.getScreenBoxLeft(el)    + qx.html.Dimension.getBoxWidth(el); }
-qx.html.Location.getScreenBoxBottom   = function(el) { return qx.html.Location.getScreenBoxTop(el)     + qx.html.Dimension.getBoxHeight(el); }
-
-qx.html.Location.getScreenOuterLeft   = function(el) { return qx.html.Location.getScreenBoxLeft(el)    - qx.html.Style.getMarginLeft(el); }
-qx.html.Location.getScreenOuterTop    = function(el) { return qx.html.Location.getScreenBoxTop(el)     - qx.html.Style.getMarginTop(el); }
-qx.html.Location.getScreenOuterRight  = function(el) { return qx.html.Location.getScreenBoxRight(el)   + qx.html.Style.getMarginRight(el); }
-qx.html.Location.getScreenOuterBottom = function(el) { return qx.html.Location.getScreenBoxBottom(el)  + qx.html.Style.getMarginBottom(el); }
-
-qx.html.Location.getScreenAreaLeft    = function(el) { return qx.html.Location.getScreenBoxLeft(el)    + qx.html.Dimension.getInsetLeft(el); }
-qx.html.Location.getScreenAreaTop     = function(el) { return qx.html.Location.getScreenBoxTop(el)     + qx.html.Dimension.getInsetTop(el); }
-qx.html.Location.getScreenAreaRight   = function(el) { return qx.html.Location.getScreenBoxRight(el)   - qx.html.Dimension.getInsetRight(el); }
-qx.html.Location.getScreenAreaBottom  = function(el) { return qx.html.Location.getScreenBoxBottom(el)  - qx.html.Dimension.getInsetBottom(el); }
-
-qx.html.Location.getScreenInnerLeft   = function(el) { return qx.html.Location.getScreenAreaLeft(el)   + qx.html.Style.getPaddingLeft(el); }
-qx.html.Location.getScreenInnerTop    = function(el) { return qx.html.Location.getScreenAreaTop(el)    + qx.html.Style.getPaddingTop(el); }
-qx.html.Location.getScreenInnerRight  = function(el) { return qx.html.Location.getScreenAreaRight(el)  - qx.html.Style.getPaddingRight(el); }
-qx.html.Location.getScreenInnerBottom = function(el) { return qx.html.Location.getScreenAreaBottom(el) - qx.html.Style.getPaddingBottom(el); }
-
-
-qx.html.Location.getScreenDocumentLeft = function(el) {};
-qx.html.Location.getScreenDocumentTop = function(el) {};
-qx.html.Location.getScreenDocumentRight = function(el) {};
-qx.html.Location.getScreenDocumentBottom = function(el) {};
-
-if (qx.core.Client.getInstance().isGecko())
-{
-  /*
-    Notice:
-      This doesn't work like the mshtml method:
-      el.ownerDocument.defaultView.screenX;
-  */
-
-  // Tested in Gecko 1.7.5
-  qx.html.Location.getScreenDocumentLeft = function(el) { return qx.html.Location.getScreenOuterLeft(el.ownerDocument.body); }
-  qx.html.Location.getScreenDocumentTop = function(el) { return qx.html.Location.getScreenOuterTop(el.ownerDocument.body); }
-  qx.html.Location.getScreenDocumentRight = function(el) { return qx.html.Location.getScreenOuterRight(el.ownerDocument.body); }
-  qx.html.Location.getScreenDocumentBottom = function(el) { return qx.html.Location.getScreenOuterBottom(el.ownerDocument.body); }
-}
-else
-{
-  // Tested in Opera 7.6b3 and Mshtml 6.0 (XP-SP2)
-  // What's up with khtml (Safari/Konq)?
-  qx.html.Location.getScreenDocumentLeft = function(el) { return el.document.parentWindow.screenLeft; }
-  qx.html.Location.getScreenDocumentTop = function(el) { return el.document.parentWindow.screenTop; }
-  qx.html.Location.getScreenDocumentRight = function(el) {}
-  qx.html.Location.getScreenDocumentBottom = function(el) {}
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Offset.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Offset.js
deleted file mode 100644 (file)
index e39631a..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#require(qx.core.Client)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.html.Offset");
-
-/*
-Mozilla seems to be a little buggy here.
-Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.7.5) Gecko/20041108 Firefox/1.0
-
-It calculates some borders and/or paddings to the offsetProperties.
-*/
-
-qx.html.Offset.getLeft = function(vElement) {};
-qx.html.Offset.getTop = function(vElement) {};
-
-if (qx.core.Client.getInstance().isGecko())
-{
-  qx.html.Offset.getLeft = function(el)
-  {
-    var val = el.offsetLeft;
-    var pa = el.parentNode;
-
-    var pose = qx.html.Style.getStyleProperty(el, "position");
-    var posp = qx.html.Style.getStyleProperty(pa, "position");
-
-    // If element is positioned non-static: Substract the border of the element
-    if (pose != "absolute" && pose != "fixed") {
-      val -= qx.html.Style.getBorderLeft(pa);
-    }
-
-    // If parent is positioned static: Substract the border of the first
-    // parent element which is ab positioned non-static.
-    if (posp != "absolute" && posp != "fixed")
-    {
-      while(pa)
-      {
-        pa = pa.parentNode;
-
-        if (!pa || typeof pa.tagName !== "string") {
-          break;
-        }
-
-        var posi = qx.html.Style.getStyleProperty(pa, "position");
-
-        if (posi == "absolute" || posi == "fixed") {
-          val -= qx.html.Style.getBorderLeft(pa) + qx.html.Style.getPaddingLeft(pa);
-          break;
-        }
-      }
-    }
-
-    return val;
-  }
-
-  qx.html.Offset.getTop = function(el)
-  {
-    var val = el.offsetTop;
-    var pa = el.parentNode;
-
-    var pose = qx.html.Style.getStyleProperty(el, "position");
-    var posp = qx.html.Style.getStyleProperty(pa, "position");
-
-    // If element is positioned non-static: Substract the border of the element
-    if (pose != "absolute" && pose != "fixed") {
-      val -= qx.html.Style.getBorderTop(pa);
-    }
-
-    // If parent is positioned static: Substract the border of the first
-    // parent element which is ab positioned non-static.
-    if (posp != "absolute" && posp != "fixed")
-    {
-      while(pa)
-      {
-        pa = pa.parentNode;
-
-        if (!pa || typeof pa.tagName !== "string") {
-          break;
-        }
-
-        var posi = qx.html.Style.getStyleProperty(pa, "position");
-
-        if (posi == "absolute" || posi == "fixed") {
-          val -= qx.html.Style.getBorderTop(pa) + qx.html.Style.getPaddingTop(pa);
-          break;
-        }
-      }
-    }
-
-    return val;
-  }
-}
-else
-{
-  qx.html.Offset.getLeft = function(el) {
-    return el.offsetLeft;
-  }
-
-  qx.html.Offset.getTop = function(el) {
-    return el.offsetTop;
-  }
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Scroll.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Scroll.js
deleted file mode 100644 (file)
index afcd59f..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.html.Scroll");
-
-qx.html.Scroll.getLeftSum = function(el)
-{
-  var sum = 0;
-  var p = el.parentNode;
-
-  while (p.nodeType == 1)
-  {
-    sum += p.scrollLeft;
-    p = p.parentNode;
-  }
-
-  return sum;
-}
-
-qx.html.Scroll.getTopSum = function(el)
-{
-  var sum = 0;
-  var p = el.parentNode;
-
-  while (p.nodeType == 1)
-  {
-    sum += p.scrollTop;
-    p = p.parentNode;
-  }
-
-  return sum;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/ScrollIntoView.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/ScrollIntoView.js
deleted file mode 100644 (file)
index bb01b76..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#require(qx.html.Style)
-
-************************************************************************ */
-
-/**
- * Functions to scroll DOM elements into the visible area of the parent element
- */
-qx.OO.defineClass("qx.html.ScrollIntoView");
-
-// Internet Explorer has invented scrollIntoView, but does not behave the same like in Mozilla (which would be better)
-// Mozilla has a native well working method scrollIntoView
-// Safari does not support scrollIntoView (but it can be found in Webkit since May 2005)
-// Opera does not support scrollIntoView
-
-/** the documents body tag name */
-qx.dom.BODY_TAG_NAME = "body";
-
-
-/**
- * Scroll the parent DOM element so that the element's so that the x coordinate is inside
- * the visible area of the parent.
- *
- * @param vElement {Element} DOM node to be scrolled into view
- * @param vAlignLeft {Boolean} whether the element should be left aligned
- */
-qx.html.ScrollIntoView.scrollX = function(vElement, vAlignLeft)
-{
-  var vParentWidth, vParentScrollLeft, vWidth, vHasScroll;
-
-  var vParent = vElement.parentNode;
-  var vOffset = vElement.offsetLeft;
-  var vWidth = vElement.offsetWidth;
-
-  while(vParent)
-  {
-    switch(qx.html.Style.getStyleProperty(vParent, "overflow"))
-    {
-      case "scroll":
-      case "auto":
-      case "-moz-scrollbars-horizontal":
-        vHasScroll = true;
-        break;
-
-      default:
-        switch(qx.html.Style.getStyleProperty(vParent, "overflowX"))
-        {
-          case "scroll":
-          case "auto":
-            vHasScroll = true;
-            break;
-
-          default:
-            vHasScroll = false;
-        }
-    }
-
-    if (vHasScroll)
-    {
-      vParentWidth = vParent.clientWidth;
-      vParentScrollLeft = vParent.scrollLeft;
-
-      if (vAlignLeft)
-      {
-        vParent.scrollLeft = vOffset;
-      }
-      else if (vAlignLeft == false)
-      {
-        vParent.scrollLeft = vOffset + vWidth - vParentWidth;
-      }
-      else if (vWidth > vParentWidth || vOffset < vParentScrollLeft)
-      {
-        vParent.scrollLeft = vOffset;
-      }
-      else if ((vOffset + vWidth) > (vParentScrollLeft + vParentWidth))
-      {
-        vParent.scrollLeft = vOffset + vWidth - vParentWidth;
-      }
-
-      vOffset = vParent.offsetLeft;
-      vWidth = vParent.offsetWidth;
-    }
-    else
-    {
-      vOffset += vParent.offsetLeft;
-    }
-
-    if (vParent.tagName.toLowerCase() == qx.dom.BODY_TAG_NAME) {
-      break;
-    }
-
-    vParent = vParent.parentNode;
-  }
-
-  return true;
-}
-
-
-/**
- * Scroll the parent DOM element so that the element's so that the y coordinate is inside
- * the visible area of the parent.
- *
- * @param vElement {Element} DOM node to be scrolled into view
- * @param vAlignTop {Boolean} whether the element should be top aligned
- */
-qx.html.ScrollIntoView.scrollY = function(vElement, vAlignTop)
-{
-  var vParentHeight, vParentScrollTop, vHeight, vHasScroll;
-
-  var vParent = vElement.parentNode;
-  var vOffset = vElement.offsetTop;
-  var vHeight = vElement.offsetHeight;
-
-  while(vParent)
-  {
-    switch(qx.html.Style.getStyleProperty(vParent, "overflow"))
-    {
-      case "scroll":
-      case "auto":
-      case "-moz-scrollbars-vertical":
-        vHasScroll = true;
-        break;
-
-      default:
-        switch(qx.html.Style.getStyleProperty(vParent, "overflowY"))
-        {
-          case "scroll":
-          case "auto":
-            vHasScroll = true;
-            break;
-
-          default:
-            vHasScroll = false;
-        }
-    }
-
-    if (vHasScroll)
-    {
-      vParentHeight = vParent.clientHeight;
-      vParentScrollTop = vParent.scrollTop;
-
-      if (vAlignTop)
-      {
-        vParent.scrollTop = vOffset;
-      }
-      else if (vAlignTop == false)
-      {
-        vParent.scrollTop = vOffset + vHeight - vParentHeight;
-      }
-      else if (vHeight > vParentHeight || vOffset < vParentScrollTop)
-      {
-        vParent.scrollTop = vOffset;
-      }
-      else if ((vOffset + vHeight) > (vParentScrollTop + vParentHeight))
-      {
-        vParent.scrollTop = vOffset + vHeight - vParentHeight;
-      }
-
-      vOffset = vParent.offsetTop;
-      vHeight = vParent.offsetHeight;
-    }
-    else
-    {
-      vOffset += vParent.offsetTop;
-    }
-
-    if (vParent.tagName.toLowerCase() == qx.dom.BODY_TAG_NAME) {
-      break;
-    }
-
-    vParent = vParent.parentNode;
-  }
-
-  return true;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/String.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/String.js
deleted file mode 100644 (file)
index b2664ec..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#require(qx.lang.Object)
-
-************************************************************************ */
-
-/**
- * A Collection of utility functions to escape and unescape strings.
- */
-qx.OO.defineClass("qx.html.String");
-
-
-/**
- * Escapes the characters in a <code>String</code> using HTML entities.
- *
- * For example: <tt>"bread" & "butter"</tt> => <tt>&amp;quot;bread&amp;quot; &amp;amp; &amp;quot;butter&amp;quot;</tt>.
- * Supports all known HTML 4.0 entities, including funky accents.
- *
- * * <a href="http://www.w3.org/TR/REC-html32#latin1">HTML 3.2 Character Entities for ISO Latin-1</a>
- * * <a href="http://www.w3.org/TR/REC-html40/sgml/entities.html">HTML 4.0 Character entity references</a>
- * * <a href="http://www.w3.org/TR/html401/charset.html#h-5.3">HTML 4.01 Character References</a>
- * * <a href="http://www.w3.org/TR/html401/charset.html#code-position">HTML 4.01 Code positions</a>
- *
- * @see #unescape
- *
- * @param str {String} the String to escape
- * @return {String} a new escaped String
- */
-qx.Class.escape = function(str) {
-  return qx.dom.String.escapeEntities(
-    str,
-    qx.html.Entity.FROM_CHARCODE
-  );
-};
-
-
-/**
- * Unescapes a string containing entity escapes to a string
- * containing the actual Unicode characters corresponding to the
- * escapes. Supports HTML 4.0 entities.
- *
- * For example, the string "&amp;lt;Fran&amp;ccedil;ais&amp;gt;"
- * will become "&lt;Fran&ccedil;ais&gt;"
- *
- * If an entity is unrecognized, it is left alone, and inserted
- * verbatim into the result string. e.g. "&amp;gt;&amp;zzzz;x" will
- * become "&gt;&amp;zzzz;x".
- *
- * @see #escape
- *
- * @param str {String} the String to unescape, may be null
- * @return a new unescaped String
- */
-qx.Class.unescape = function(str) {
-  return qx.dom.String.unescapeEntities(
-    str,
-    qx.html.Entity.TO_CHARCODE
-  );
-};
-
-
-/**
- * Converts a plain text string into HTML.
- * This is similar to {@link #escape} but converts new lines to
- * <tt>&lt:br&gt:</tt> and preserves whitespaces.
- *
- * @see #escape
- *
- * @param str {String} the String to convert
- * @return {String} a new converted String
- */
-qx.Class.fromText = function(str) {
-  return qx.html.String.escape(str).replace(/(  |\n)/g, function(chr) {
-    var map = {
-      "  ": " &nbsp;",
-      "\n": "<br>"
-    }
-    return map[chr] || chr;
-  });
-}
-
-
-/**
- * Converts HTML to plain text.
- *
- * * Strips all HTML tags
- * * converts <tt>&lt:br&gt:</tt> to new line
- * * unescapes HTML entities
- *
- * @param str {String} HTML string to converts
- * @return {String} plain text representaion of the HTML string
- */
-qx.Class.toText = function(str) {
-  return qx.html.String.unescape(str.replace(/\s+|<([^>])+>/gi, function(chr) {
-    if (/\s+/.test(chr)) {
-      return " ";
-    }
-    else if (/^<BR|^<br/gi.test(chr)) {
-      return "\n";
-    } else {
-      return "";
-    }
-  }));
-};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Style.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Style.js
deleted file mode 100644 (file)
index 9ab7847..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#require(qx.core.Client)
-
-************************************************************************ */
-
-/**
- * Methods to get CSS style properties of DOM elements.
- */
-qx.OO.defineClass("qx.html.Style");
-
-/**
- * TODO
- */
-qx.html.Style.getStylePropertySure = function(vElement, propertyName) {};
-
-/**
- * Get the (CSS) style property of a given DOM element
- *
- * @param vElement {Element} the DOM element
- * @param propertyName {String} the name of the style property. e.g. "color", "border", ...
- * @return {String} the (CSS) style property
- */
-qx.html.Style.getStyleProperty = function(vElement, propertyName) {};
-
-if (Boolean(document.defaultView) && Boolean(document.defaultView.getComputedStyle))
-{
-  qx.html.Style.getStylePropertySure = function(el, prop) { return !el ? null : el.ownerDocument ? el.ownerDocument.defaultView.getComputedStyle(el, "")[prop] : el.style[prop]; }
-
-  qx.html.Style.getStyleProperty = function(el, prop)
-  {
-    try
-    {
-      return el.ownerDocument.defaultView.getComputedStyle(el, "")[prop];
-    }
-    catch(ex)
-    {
-      throw new Error("Could not evaluate computed style: " + el + "[" + prop + "]: " + ex);
-    }
-  }
-}
-else if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.html.Style.getStyleProperty = function(el, prop)
-  {
-    try
-    {
-      return el.currentStyle[prop];
-    }
-    catch(ex)
-    {
-      throw new Error("Could not evaluate computed style: " + el + "[" + prop + "]: " + ex);
-    }
-  }
-
-  qx.html.Style.getStylePropertySure = function(el, prop)
-  {
-    try
-    {
-      if (!el) {
-        return null;
-      }
-
-      if (el.parentNode && el.currentStyle)
-      {
-        return el.currentStyle[prop];
-      }
-      else
-      {
-        var v1 = el.runtimeStyle[prop];
-
-        if (v1 != null && typeof v1 != "undefined" && v1 != "") {
-          return v1;
-        }
-
-        return el.style[prop];
-      }
-    }
-    catch(ex)
-    {
-      throw new Error("Could not evaluate computed style: " + el + "[" + prop + "]: " + ex);
-    }
-  }
-}
-else
-{
-  qx.html.Style.getStylePropertySure = function(el, prop) { return !el ? null : el.style[prop]; }
-
-  qx.html.Style.getStyleProperty = function(el, prop)
-  {
-    try
-    {
-      return el.style[prop];
-    }
-    catch(ex)
-    {
-      throw new Error("Could not evaluate computed style: " + el + "[" + prop + "]");
-    }
-  }
-}
-
-/**
- * Get a (CSS) style property of a given DOM element and interpret the property as integer value
- *
- * @param vElement {Element} the DOM element
- * @param propertyName {String} the name of the style property. e.g. "paddingTop", "marginLeft", ...
- * @return {Integer} the (CSS) style property converted to an integer value
- */
-qx.html.Style.getStyleSize = function(vElement, propertyName) { return parseInt(qx.html.Style.getStyleProperty(vElement, propertyName)) || 0; }
-
-
-// Properties
-/**
- * Get the element's left margin.
- *
- * @param vElement {Element} the DOM element
- * @return {Integer} the element's left margin size
- */
-qx.html.Style.getMarginLeft    = function(vElement) { return qx.html.Style.getStyleSize(vElement, "marginLeft"); }
-
-/**
- * Get the element's top margin.
- *
- * @param vElement {Element} the DOM element
- * @return {Integer} the element's top margin size
- */
-qx.html.Style.getMarginTop     = function(vElement) { return qx.html.Style.getStyleSize(vElement, "marginTop"); }
-
-/**
- * Get the element's right margin.
- *
- * @param vElement {Element} the DOM element
- * @return {Integer} the element's right margin size
- */
-qx.html.Style.getMarginRight   = function(vElement) { return qx.html.Style.getStyleSize(vElement, "marginRight"); }
-
-/**
- * Get the element's bottom margin.
- *
- * @param vElement {Element} the DOM element
- * @return {Integer} the element's bottom margin size
- */
-qx.html.Style.getMarginBottom  = function(vElement) { return qx.html.Style.getStyleSize(vElement, "marginBottom"); }
-
-/**
- * Get the element's left padding.
- *
- * @param vElement {Element} the DOM element
- * @return {Integer} the element's left padding size
- */
-qx.html.Style.getPaddingLeft   = function(vElement) { return qx.html.Style.getStyleSize(vElement, "paddingLeft"); }
-
-/**
- * Get the element's top padding.
- *
- * @param vElement {Element} the DOM element
- * @return {Integer} the element's top padding size
- */
-qx.html.Style.getPaddingTop    = function(vElement) { return qx.html.Style.getStyleSize(vElement, "paddingTop"); }
-
-/**
- * Get the element's right padding.
- *
- * @param vElement {Element} the DOM element
- * @return {Integer} the element's right padding size
- */
-qx.html.Style.getPaddingRight  = function(vElement) { return qx.html.Style.getStyleSize(vElement, "paddingRight"); }
-
-/**
- * Get the element's bottom padding.
- *
- * @param vElement {Element} the DOM element
- * @return {Integer} the element's bottom padding size
- */
-qx.html.Style.getPaddingBottom = function(vElement) { return qx.html.Style.getStyleSize(vElement, "paddingBottom"); }
-
-/**
- * Get the element's left border width.
- *
- * @param vElement {Element} the DOM element
- * @return {Integer} the element's left border width
- */
-qx.html.Style.getBorderLeft    = function(vElement) { return qx.html.Style.getStyleProperty(vElement, "borderLeftStyle")   == "none" ? 0 : qx.html.Style.getStyleSize(vElement, "borderLeftWidth"); }
-
-/**
- * Get the element's top border width.
- *
- * @param vElement {Element} the DOM element
- * @return {Integer} the element's top border width
- */
-qx.html.Style.getBorderTop     = function(vElement) { return qx.html.Style.getStyleProperty(vElement, "borderTopStyle")    == "none" ? 0 : qx.html.Style.getStyleSize(vElement, "borderTopWidth"); }
-
-/**
- * Get the element's right border width.
- *
- * @param vElement {Element} the DOM element
- * @return {Integer} the element's right border width
- */
-qx.html.Style.getBorderRight   = function(vElement) { return qx.html.Style.getStyleProperty(vElement, "borderRightStyle")  == "none" ? 0 : qx.html.Style.getStyleSize(vElement, "borderRightWidth"); }
-
-/**
- * Get the element's bottom border width.
- *
- * @param vElement {Element} the DOM element
- * @return {Integer} the element's bottom border width
- */
-qx.html.Style.getBorderBottom  = function(vElement) { return qx.html.Style.getStyleProperty(vElement, "borderBottomStyle") == "none" ? 0 : qx.html.Style.getStyleSize(vElement, "borderBottomWidth"); }
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/StyleSheet.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/StyleSheet.js
deleted file mode 100644 (file)
index c2fdcc0..0000000
+++ /dev/null
@@ -1,325 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Andreas Junghans (lucidcake)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#require(qx.core.Client)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.html.StyleSheet");
-
-/**
- * Include a CSS file
- *
- * @param vHref {String} Href value
- */
-qx.html.StyleSheet.includeFile = function(vHref)
-{
-  var el = document.createElement("link");
-  el.type = "text/css";
-  el.rel = "stylesheet";
-  el.href = vHref;
-
-  var head = document.getElementsByTagName("head")[0];
-  head.appendChild(el);
-};
-
-/**
- * create a new Stylesheet node and append it to the document
- *
- * @param vCssText {String} optional string of css rules
- */
-qx.html.StyleSheet.createElement = function(vCssText) {};
-if (document.createStyleSheet) // IE 4+
-{
-  qx.html.StyleSheet.createElement = function(vCssText)
-  {
-    var vSheet = document.createStyleSheet();
-
-    if (vCssText) {
-      vSheet.cssText = vCssText;
-    }
-
-    return vSheet;
-  };
-}
-else // FF, Opera, Safari
-{
-  qx.html.StyleSheet.createElement = function(vCssText)
-  {
-    var vElement = document.createElement("style");
-    vElement.type = "text/css";
-
-    // Safari 2.0 doesn't like empty stylesheets
-    vElement.appendChild(document.createTextNode(vCssText || "body {}"));
-
-    document.getElementsByTagName("head")[0].appendChild(vElement);
-
-    if (vElement.sheet) {
-      return vElement.sheet;
-    } else {
-      // Safari 2.0 doesn't support element.sheet so we neet a workaround
-      var styles = document.styleSheets;
-      for (var i=styles.length-1; i>=0; i--) {
-        if (styles[i].ownerNode == vElement) {
-          return styles[i];
-        }
-      }
-    }
-    throw "Error: Could not get a reference to the sheet object";
-  };
-}
-
-
-/**
- * insert a new CSS rule into a given Stylesheet
- *
- * @param vSheet {Object} the target Stylesheet object
- * @param vSelector {String} the selector
- * @param vStyle {String} style rule
- */
-qx.html.StyleSheet.addRule = function(vSheet, vSelector, vStyle) {};
-if (document.createStyleSheet) // IE 4+
-{
-  qx.html.StyleSheet.addRule = function(vSheet, vSelector, vStyle) {
-    vSheet.addRule(vSelector, vStyle);
-  };
-}
-else if (qx.core.Client.getInstance().isSafari2()) // insertRule in Safari 2 doesn't work
-{
-  qx.html.StyleSheet.addRule = function(vSheet, vSelector, vStyle) {
-    if (!vSheet._qxRules) {
-      vSheet._qxRules = {};
-    }
-    if (!vSheet._qxRules[vSelector]) {
-      var ruleNode = document.createTextNode(vSelector + "{" + vStyle + "}");
-      vSheet.ownerNode.appendChild(ruleNode);
-      vSheet._qxRules[vSelector] = ruleNode;
-    }
-  };
-}
-else // FF, Opera
-{
-  qx.html.StyleSheet.addRule = function(vSheet, vSelector, vStyle) {
-    vSheet.insertRule(vSelector + "{" + vStyle + "}", vSheet.cssRules.length);
-  };
-}
-
-
-/**
- * remove a CSS rule from a stylesheet
- *
- * @param vSheet     {Object} the Stylesheet
- * @param vSelector {String} the Selector of the rule to remove
- */
-qx.html.StyleSheet.removeRule = function(vSheet, vSelector) {};
-if (document.createStyleSheet) // IE 4+
-{
-  qx.html.StyleSheet.removeRule = function(vSheet, vSelector)
-  {
-    var vRules = vSheet.rules;
-    var vLength = vRules.length;
-
-    for (var i=vLength-1; i>=0; i--)
-    {
-      if (vRules[i].selectorText == vSelector) {
-        vSheet.removeRule(i);
-      }
-    }
-  };
-}
-else if (qx.core.Client.getInstance().isSafari2()) // removeRule in Safari 2 doesn't work
-{
-  qx.html.StyleSheet.removeRule = function(vSheet, vSelector)
-  {
-    var warn = function() {
-      qx.log.Logger.ROOT_LOGGER.warn("In Safari/Webkit you can only remove rules that are created using qx.html.StyleSheet.addRule");
-    }
-    if (!vSheet._qxRules) {
-      warn();
-    }
-    var ruleNode = vSheet._qxRules[vSelector];
-    if (ruleNode) {
-      vSheet.ownerNode.removeChild(ruleNode);
-      vSheet._qxRules[vSelector] = null;
-    } else {
-      warn();
-    }
-  };
-}
-else
-{
-  qx.html.StyleSheet.removeRule = function(vSheet, vSelector)
-  {
-    var vRules = vSheet.cssRules;
-    var vLength = vRules.length;
-
-    for (var i=vLength-1; i>=0; i--)
-    {
-      if (vRules[i].selectorText == vSelector) {
-        vSheet.deleteRule(i);
-      }
-    }
-  };
-}
-
-
-/**
- * remove all CSS rules from a stylesheet
- *
- * @param vSheet {Object} the stylesheet object
- */
-qx.html.StyleSheet.removeAllRules = function(vSheet) {};
-if (document.createStyleSheet) // IE 4+
-{
-  qx.html.StyleSheet.removeAllRules = function(vSheet)
-  {
-    var vRules = vSheet.rules;
-    var vLength = vRules.length;
-
-    for (var i=vLength-1; i>=0; i--) {
-      vSheet.removeRule(i);
-    }
-  };
-}
-else if (qx.core.Client.getInstance().isSafari2()) // removeRule in Safari 2 doesn't work
-{
-  qx.html.StyleSheet.removeAllRules = function(vSheet)
-  {
-    var node = vSheet.ownerNode;
-    var rules = node.childNodes;
-    while (rules.length > 0) {
-      node.removeChild(rules[0]);
-    }
-  };
-}
-else // FF, etc
-{
-  qx.html.StyleSheet.removeAllRules = function(vSheet)
-  {
-    var vRules = vSheet.cssRules;
-    var vLength = vRules.length;
-
-    for (var i=vLength-1; i>=0; i--) {
-      vSheet.deleteRule(i);
-    }
-  };
-}
-
-
-
-// TODO import functions are not working crossbrowser (Safari) !!
-// see CSS_1.html test
-
-/**
- * add an import of an external CSS file to a stylesheet
- * @param vSheet {Object} the stylesheet object
- * @param vUrl {String} URL of the external stylesheet file
- */
-qx.html.StyleSheet.addImport = function(vSheet, vUrl) {};
-if (document.createStyleSheet) // IE 4+
-{
-  qx.html.StyleSheet.addImport = function(vSheet, vUrl) {
-    vSheet.addImport(vUrl);
-  };
-}
-else  if (qx.core.Client.getInstance().isSafari2()) // insertRule in Safari 2 doesn't work
-{
-  qx.html.StyleSheet.addImport = function(vSheet, vUrl) {
-    vSheet.ownerNode.appendChild(document.createTextNode('@import "' + vUrl + '";'));
-  };
-}
-else // FF, etc
-{
-  qx.html.StyleSheet.addImport = function(vSheet, vUrl) {
-    vSheet.insertRule('@import "' + vUrl + '";', vSheet.cssRules.length);
-  };
-}
-
-
-/**
- * removes an import from a stylesheet
- *
- * @param vSheet {Object} the stylesheet object
- * @param vUrl {String}  URL of the importet CSS file
- */
-qx.html.StyleSheet.removeImport = function(vSheet, vUrl) {};
-if (document.createStyleSheet) // IE 4+
-{
-  qx.html.StyleSheet.removeImport = function(vSheet, vUrl) {
-    var vImports = vSheet.imports;
-    var vLength = vImports.length;
-
-    for (var i=vLength-1; i>=0; i--) {
-      if (vImports[i].href == vUrl) {
-        vSheet.removeImport(i);
-      }
-    }
-  };
-}
-else // FF, etc
-{
-  qx.html.StyleSheet.removeImport = function(vSheet, vUrl) {
-    var vRules = vSheet.cssRules;
-    var vLength = vRules.length;
-
-    for (var i=vLength-1; i>=0; i--) {
-      if (vRules[i].href == vUrl) {
-        vSheet.deleteRule(i);
-      }
-    }
-  };
-}
-
-
-/**
- * remove all imports from a stylesheet
- *
- * @param vSheet {Object} the stylesheet object
- */
-qx.html.StyleSheet.removeAllImports = function(vSheet) {};
-if (document.createStyleSheet) // IE 4+
-{
-  qx.html.StyleSheet.removeAllImports = function(vSheet) {
-    var vImports = vSheet.imports;
-    var vLength = vImports.length;
-
-    for (var i=vLength-1; i>=0; i--) {
-      vSheet.removeImport(i);
-    }
-  };
-}
-else // FF, etc
-{
-  qx.html.StyleSheet.removeAllImports = function(vSheet) {
-    var vRules = vSheet.cssRules;
-    var vLength = vRules.length;
-
-    for (var i=vLength-1; i>=0; i--) {
-      if (vRules[i].type == vRules[i].IMPORT_RULE) {
-        vSheet.deleteRule(i);
-      }
-    }
-  };
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Textile.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Textile.js
deleted file mode 100644 (file)
index ceaccd3..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-/**
- * Optimized version of SuperTextile
- */
-qx.OO.defineClass("qx.html.Textile");
-
-/**
- * Textilizes a string
- * http://www.creatimation.net/journal/textile-live-preview (offline)
- *
- * @param s {String} Text to be textilized.
- * @return {String} The textilized text.
- */
-qx.html.Textile.textilize = function(s)
-{
-  var r = s;
-
-  // quick tags first
-  var qtags = [
-    ["\\*", "strong"],
-    ["\\?\\?", "cite"],
-    ["\\+", "ins"],
-    ["~", "sub"],
-    ["\\^", "sup"],
-    ["@", "code"]
-  ];
-
-  var ttag, htag, re, line, lines, nr, changed, inlist, listtype;
-
-  for (var i=0;i<qtags.length;i++) {
-    ttag = qtags[i][0]; htag = qtags[i][1];
-    re = new RegExp(ttag+"\\b(.+?)\\b"+ttag,"g");
-    r = r.replace(re,"<"+htag+">"+"$1"+"</"+htag+">");
-  }
-
-  // underscores count as part of a word, so do them separately
-  re = new RegExp("\\b_(.+?)_\\b","g");
-  r = r.replace(re,"<em>$1</em>");
-
-  // jeff: so do dashes
-  re = new RegExp("[\s\n]-(.+?)-[\s\n]","g");
-  r = r.replace(re,"<del>$1</del>");
-
-  // links
-  re = new RegExp('"\\b(.+?)\\(\\b(.+?)\\b\\)":([^\\s]+)','g');
-  r = r.replace(re,'<a href="$3" title="$2">$1</a>');
-  re = new RegExp('"\\b(.+?)\\b":([^\\s]+)','g');
-  r = r.replace(re,'<a href="$2">$1</a>');
-
-  // images
-  re = new RegExp("!\\b(.+?)\\(\\b(.+?)\\b\\)!","g");
-  r = r.replace(re,'<img src="$1" alt="$2">');
-  re = new RegExp("!\\b(.+?)\\b!","g");
-  r = r.replace(re,'<img src="$1">');
-
-  // block level formatting
-
-  // Jeff's hack to show single line breaks as they should.
-  // insert breaks - but you get some....stupid ones
-  re = new RegExp("(.*)\n([^#\*\n].*)","g");
-  r = r.replace(re,"$1<br />$2");
-
-  // remove the stupid breaks.
-  re = new RegExp("\n<br />","g");
-  r = r.replace(re,"\n");
-
-  lines = r.split("\n");
-  nr = "";
-
-  for (var i=0;i<lines.length;i++)
-  {
-    line = lines[i].replace(/\s*$/,"");
-    changed = 0;
-
-    if (line.search(/^\s*bq\.\s+/) != -1)
-    {
-      line = line.replace(/^\s*bq\.\s+/,"\t<blockquote>")+"</blockquote>";
-      changed = 1;
-    }
-
-    // jeff adds h#.
-    if (line.search(/^\s*h[1-6]\.\s+/) != -1)
-    {
-       re = new RegExp("h([1-6])\.(.+)","g");
-      line = line.replace(re,"<h$1>$2</h$1>");
-      changed = 1;
-    }
-
-    if (line.search(/^\s*\*\s+/) != -1)
-    {
-      // for bullet list; make up an liu tag to be fixed later
-      line = line.replace(/^\s*\*\s+/,"\t<liu>") + "</liu>";
-      changed = 1;
-    }
-
-    if (line.search(/^\s*#\s+/) != -1)
-    {
-      // # for numeric list; make up an lio tag to be fixed later
-      line = line.replace(/^\s*#\s+/,"\t<lio>") + "</lio>";
-      changed = 1;
-    }
-
-    if (!changed && (line.replace(/\s/g,"").length > 0))
-    {
-      line = "<p>"+line+"</p>";
-    }
-
-    lines[i] = line + "\n";
-  }
-
-  // Second pass to do lists
-  inlist = 0;
-  listtype = "";
-
-  for (var i=0;i<lines.length;i++)
-  {
-    line = lines[i];
-
-    if (inlist && listtype == "ul" && !line.match(/^\t<liu/))
-    {
-      line = "</ul>\n" + line;
-      inlist = 0;
-    }
-
-    if (inlist && listtype == "ol" && !line.match(/^\t<lio/))
-    {
-      line = "</ol>\n" + line;
-      inlist = 0;
-    }
-
-    if (!inlist && line.match(/^\t<liu/))
-    {
-      line = "<ul>" + line;
-      inlist = 1;
-      listtype = "ul";
-    }
-
-    if (!inlist && line.match(/^\t<lio/))
-    {
-      line = "<ol>" + line;
-      inlist = 1;
-      listtype = "ol";
-    }
-
-    lines[i] = line;
-  }
-
-  r = lines.join("\n");
-
-  // jeff added : will correctly replace <li(o|u)> AND </li(o|u)>
-  r = r.replace(/li[o|u]>/g, "li>");
-
-  return r;
-}
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Window.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/html/Window.js
deleted file mode 100644 (file)
index 71f6520..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#require(qx.core.Client)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.html.Window");
-
-
-/**
- * Get the inner width of the given browser window
- *
- * @param window {window} browser window
- * @return {Integer} the window's inner width
- */
-qx.html.Window.getInnerWidth = function(window) {};
-
-/**
- * Get the inner height of the given browser window
- *
- * @param window {window} browser window
- * @return {Integer} the window's inner height
- */
-qx.html.Window.getInnerHeight = function(window) {};
-
-/**
- * Get the left scroll position of the given browser window
- *
- * @param window {window} browser window
- * @return {Integer} the window's left scroll position
- */
-qx.html.Window.getScrollLeft = function(window) {};
-
-/**
- * Get the top scroll position of the given browser window
- *
- * @param window {window} browser window
- * @return {Integer} the window's top scroll position
- */
-qx.html.Window.getScrollTop = function(window) {};
-
-
-if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.html.Window.getInnerWidth = function(w)
-  {
-    if (w.document.documentElement && w.document.documentElement.clientWidth)
-    {
-      return w.document.documentElement.clientWidth;
-    }
-    else if (w.document.body)
-    {
-      return w.document.body.clientWidth;
-    }
-
-    return 0;
-  }
-
-  qx.html.Window.getInnerHeight = function(w)
-  {
-    if (w.document.documentElement && w.document.documentElement.clientHeight)
-    {
-      return w.document.documentElement.clientHeight;
-    }
-    else if (w.document.body)
-    {
-      return w.document.body.clientHeight;
-    }
-
-    return 0;
-  }
-
-  qx.html.Window.getScrollLeft = function(w)
-  {
-    if (w.document.documentElement && w.document.documentElement.scrollLeft)
-    {
-      return w.document.documentElement.scrollLeft;
-    }
-    else if (w.document.body)
-    {
-      return w.document.body.scrollTop;
-    }
-
-    return 0;
-  }
-
-  qx.html.Window.getScrollTop = function(w)
-  {
-    if (w.document.documentElement && w.document.documentElement.scrollTop)
-    {
-      return w.document.documentElement.scrollTop;
-    }
-    else if (w.document.body)
-    {
-      return w.document.body.scrollTop;
-    }
-
-    return 0;
-  }
-}
-else
-{
-  qx.html.Window.getInnerWidth = function(w) {
-    return w.innerWidth;
-  }
-
-  qx.html.Window.getInnerHeight = function(w) {
-    return w.innerHeight;
-  }
-
-  qx.html.Window.getScrollLeft = function(w) {
-    return w.document.body.scrollLeft;
-  }
-
-  qx.html.Window.getScrollTop = function(w) {
-    return w.document.body.scrollTop;
-  }
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/Json.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/Json.js
deleted file mode 100644 (file)
index 1a966de..0000000
+++ /dev/null
@@ -1,404 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-     2006 Derrell Lipman
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Andreas Junghans (lucidcake)
-     * Derrell Lipman (derrell)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(io_remote)
-
-************************************************************************ */
-
-
-/*
-Copyright (c) 2005 JSON.org
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The Software shall be used for Good, not Evil.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-
-/**
- * This is a slightly modified JSON implementation that supports Dates and
- * treats undefined like null.
- */
-
-qx.OO.defineClass("qx.io.Json");
-
-/**
- * Stringify a JavaScript value, producing a JSON text.
- *
- * @param v {var} the object to serialize.
- * @param beautify {Boolean ? false} whether to beautify the serialized string
- *        by adding some white space that indents objects and arrays.
- * @return {String} the serialized object.
- */
-qx.Class.stringify = function (v, beautify) {};
-
-/**
- * Parse a JSON text, producing a JavaScript value.
- * It returns false if there is a syntax error.
- *
- * @param text {String} JSON string
- * @return {var} evaluated JSON string.
- */
-qx.Class.parse = function (text) {};
-
-/*
----------------------------------------------------------------------------
-  DEFAULT SETTINGS
----------------------------------------------------------------------------
-*/
-
-qx.Settings.setDefault("encodeUndefined", true);
-qx.Settings.setDefault("enableDebug", false);
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  IMPLEMENTATION
----------------------------------------------------------------------------
-*/
-
-qx.io.Json = function ()
-{
-  var m = {
-      '\b': '\\b',
-      '\t': '\\t',
-      '\n': '\\n',
-      '\f': '\\f',
-      '\r': '\\r',
-      '"' : '\\"',
-      '\\': '\\\\'
-    },
-    s = {
-      'boolean': function (x) {
-        return String(x);
-      },
-
-      number: function (x) {
-        return isFinite(x) ? String(x) : 'null';
-      },
-
-      string: function (x) {
-        if (/["\\\x00-\x1f]/.test(x)) {
-          x = x.replace(/([\x00-\x1f\\"])/g, function(a, b) {
-            var c = m[b];
-            if (c) {
-              return c;
-            }
-            c = b.charCodeAt();
-            return '\\u00' +
-              Math.floor(c / 16).toString(16) +
-              (c % 16).toString(16);
-          });
-        }
-        return '"' + x + '"';
-      },
-
-      object: function (x) {
-        if (x) {
-          var a = [], b, f, i, l, v;
-          if (x instanceof Array) {
-            var beautify = qx.io.Json._beautify;
-            a[0] = '[';
-            if (beautify) {
-              qx.io.Json._indent += qx.io.Json.BEAUTIFYING_INDENT;
-              a.push(qx.io.Json._indent);
-            }
-            l = x.length;
-            for (i = 0; i < l; i += 1) {
-              v = x[i];
-              f = s[typeof v];
-              if (f) {
-                v = f(v);
-                if (typeof v == 'string') {
-                  if (b) {
-                    a[a.length] = ',';
-                    if (beautify) {
-                      a.push(qx.io.Json._indent);
-                    }
-                  }
-                  a[a.length] = v;
-                  b = true;
-                }
-              }
-            }
-            if (beautify) {
-              qx.io.Json._indent = qx.io.Json._indent.substring(0, qx.io.Json._indent.length - qx.io.Json.BEAUTIFYING_INDENT.length);
-              a.push(qx.io.Json._indent);
-            }
-            a[a.length] = ']';
-          // AJ, DJL --
-          } else if (x instanceof Date) {
-            /*
-             * The Date object is a primitive type in Javascript,
-             * but the Javascript specification neglects to provide
-             * a literal form for it.  The only way to generate a
-             * Date object is with "new Date()".  For fast
-             * processing by Javascript, we want to be able to
-             * eval() a JSON response.  If Date objects are to be
-             * passed to the client using JSON, about the only
-             * reasonable way to do it is to have "new Date()"
-             * in the JSON message.  See this page for a proposal to
-             * add a Date literal syntax to Javascript which,
-             * if/when implemented in Javascript, would eliminate
-             * the need to pass "new Date() in JSON":
-             *
-             *   http://www.hikhilk.net/DateSyntaxForJSON.aspx
-             *
-             * Sending a JSON message from client to server, we have
-             * no idea what language the server will be written in,
-             * what size integers it supports, etc.  We do want to
-             * be able to represent as large a range of dates as
-             * possible, though.  If we were to send the number of
-             * milliseconds since the beginning of the epoch, the
-             * value would exceed, in many cases, what can fit in a
-             * 32-bit integer.  Even if one were to simply strip off
-             * the last three digits (milliseconds), the number of
-             * seconds could exceed a 32-bit signed integer's range
-             * with very distant past or distant future dates.  To
-             * make it easier for any generic server to handle a
-             * date without risk of loss of precision due to
-             * automatic type casting, we'll send a UTC date with
-             * separated fields, in the form:
-             *
-             *  new Date(Date.UTC(year,month,day,hour,min,sec,ms))
-             *
-             * The server can fairly easily parse this in its JSON
-             * implementation by stripping off "new Date(Date.UTC("
-             * from the beginning of the string, and "))" from the
-             * end of the string.  What remains is the set of
-             * comma-separated date components, which are also very
-             * easy to parse.
-             *
-             * The server should send this same format to the
-             * client, which can simply eval() it just as with the
-             * remainder of JSON.
-             *
-             * A requirement of the implementation of the server is
-             * that after a date has been sent from the client to
-             * the server, converted by the server into whatever
-             * native type the date will be stored or manipulated
-             * in, convered back to JSON, and received back at the
-             * client, a comparison of the sent and received Date
-             * object should yield identity.  This means that even
-             * if the server does not natively operate on
-             * milliseconds, it must maintain milliseconds in dates
-             * sent to it by the client.
-             */
-            var dateParams =
-            x.getUTCFullYear() + "," +
-            x.getUTCMonth() + "," +
-            x.getUTCDate() + "," +
-            x.getUTCHours() + "," +
-            x.getUTCMinutes() + "," +
-            x.getUTCSeconds() + "," +
-            x.getUTCMilliseconds();
-            return "new Date(Date.UTC(" + dateParams + "))";
-          // -- AJ, DJL
-          } else if (x instanceof Object) {
-            var beautify = qx.io.Json._beautify;
-            a[0] = '{';
-            if (beautify) {
-              qx.io.Json._indent += qx.io.Json.BEAUTIFYING_INDENT;
-              a.push(qx.io.Json._indent);
-            }
-            for (i in x) {
-              v = x[i];
-              f = s[typeof v];
-              if (f) {
-                v = f(v);
-                if (typeof v == 'string') {
-                  if (b) {
-                    a[a.length] = ',';
-                    if (beautify) {
-                      a.push(qx.io.Json._indent);
-                    }
-                  }
-                  a.push(s.string(i), ':', v);
-                  b = true;
-                }
-              }
-            }
-            if (beautify) {
-              qx.io.Json._indent = qx.io.Json._indent.substring(0, qx.io.Json._indent.length - qx.io.Json.BEAUTIFYING_INDENT.length);
-              a.push(qx.io.Json._indent);
-            }
-            a[a.length] = '}';
-          } else {
-            return;
-          }
-          return a.join('');
-        }
-        return 'null';
-      },
-
-      // AJ, DJL --
-      undefined: function(x) {
-        if (qx.Settings.getValueOfClass("qx.io.Json", "encodeUndefined"))
-          return 'null';
-      }
-      // -- AJ, DJL
-    }
-
-  return {
-    copyright: '(c)2005 JSON.org',
-    license: 'http://www.JSON.org/license.html',
-
-    /**
-     * Stringify a JavaScript value, producing a JSON text.
-     *
-     * @param v {var} the object to serialize.
-     * @param beautify {Boolean ? false} whether to beautify the serialized string
-     *        by adding some white space that indents objects and arrays.
-     * @return {String} the serialized object.
-     */
-    stringify: function (v, beautify) {
-      this._beautify = beautify;
-      this._indent = this.BEAUTIFYING_LINE_END;
-
-      var f = s[typeof v];
-      // AJ, DJL --
-      var ret = null;
-      // -- AJ, DJL
-      if (f) {
-        v = f(v);
-        if (typeof v == 'string') {
-          // DJL --
-          ret = v;
-          // -- DJL
-        }
-      }
-
-      // DJL --
-      if (qx.Settings.getValueOfClass("qx.io.Json", "enableDebug")) {
-        var logger = qx.log.Logger.getClassLogger(qx.core.Object);
-        logger.debug("JSON request: " + ret);
-      }
-
-      return ret;
-      // -- DJL
-    },
-/*
-  Parse a JSON text, producing a JavaScript value.
-  It returns false if there is a syntax error.
-*/
-    parse: function (text) {
-      try {
-        return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(
-            text.replace(/"(\\.|[^"\\])*"/g, ''))) &&
-          eval('(' + text + ')');
-      } catch (e) {
-        return false;
-      }
-    }
-  }
-}();
-
-
-///*
-// * Recursively descend through an object looking for any class hints.  Right
-// * now, the only class hint we support is 'Date' which can not be easily sent
-// * from javascript to an arbitrary (e.g. PHP) JSON-RPC server and back again
-// * without truncation or modification.
-// */
-//qx.io.Json._fixObj = function(obj) {
-//  /* If there's a class hint... */
-//  if (obj.__jsonclass__)
-//  {
-//  /* ... then check for supported classes.  We support only Date. */
-//  if (obj.__jsonclass__ == "Date" && obj.secSinceEpoch && obj.msAdditional)
-//  {
-//    /* Found a Date.  Replace class hint object with a Date object. */
-//    obj = new Date((obj.secSinceEpoch * 1000) + obj.msAdditional);
-//    return obj;
-//  }
-//  }
-//
-//  /*
-//   * It wasn't something with a supported class hint, so recursively descend
-//   */
-//  for (var member in obj) {
-//  thisObj = obj[member];
-//  if (typeof thisObj == 'object' && thisObj !== null) {
-//    obj[member] = qx.io.Json._fixObj(thisObj);
-//  }
-//  }
-//
-//  return obj;
-//}
-
-
-/**
- * Parse a JSON text, producing a JavaScript value.
- * It triggers an exception if there is a syntax error.
- *
- * @param text {String} JSON string
- * @return {var} evaluated JSON string.
- */
-qx.io.Json.parseQx = function(text) {
-  /* Convert the result text into a result primitive or object */
-
-  if (qx.Settings.getValueOfClass("qx.io.Json", "enableDebug")) {
-  var logger = qx.log.Logger.getClassLogger(qx.core.Object);
-  logger.debug("JSON response: " + text);
-  }
-
-  var obj = (text && text.length > 0) ? eval('(' + text + ')') : null;
-
-//  /*
-//   * Something like this fixObj() call may be used later when we want to
-//   * support class hints.  For now, ignore that code
-//   */
-//
-//  /* If it's an object, not null, and contains a "result" field.. */
-//  if (typeof obj == 'object' && obj !== null && obj.result) {
-//  /* ... then 'fix' the result by handling any supported class hints */
-//  obj.result = qx.io.Json._fixObj(obj.result);
-//  }
-
-  return obj;
-}
-
-/** indent string for JSON pretty printing */
-qx.io.Json.BEAUTIFYING_INDENT = "  ";
-
-/** new line string for JSON pretty printing */
-qx.io.Json.BEAUTIFYING_LINE_END = "\n";
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/image/Preloader.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/image/Preloader.js
deleted file mode 100644 (file)
index 1a3a450..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-
-************************************************************************ */
-
-/**
- * This is the preloader used from qx.ui.basic.Image instances.
- *
- * @event load {qx.event.type.Event}
- * @event error {qx.event.type.Event}
- */
-qx.OO.defineClass("qx.io.image.Preloader", qx.core.Target,
-function(vSource)
-{
-  if(qx.manager.object.ImagePreloaderManager.getInstance().has(vSource))
-  {
-    this.debug("Reuse qx.io.image.Preloader in old-style!");
-    this.debug("Please use qx.manager.object.ImagePreloaderManager.getInstance().create(source) instead!");
-
-    return qx.manager.object.ImagePreloaderManager.getInstance().get(vSource);
-  }
-
-  qx.core.Target.call(this);
-
-  // Create Image-Node
-  // Does not work with document.createElement("img") in Webkit. Interesting.
-  // Compare this to the bug in qx.ui.basic.Image.
-  this._element = new Image;
-
-  // This is needed for wrapping event to the object
-  this._element.qx_ImagePreloader = this;
-
-  // Define handler if image events occurs
-  if (qx.core.Client.getInstance().isWebkit())
-  {
-    // Webkit as of version 41xxx
-    // does not get the target right. We need to help out a bit
-    // ugly closure!
-    var self = this;
-    this._element.onload = function(e) {
-      return self._onload(e);
-    };
-    this._element.onerror = function(e) {
-      return self._onerror(e);
-    };
-  }
-  else
-  {
-    this._element.onload = qx.io.image.Preloader.__onload;
-    this._element.onerror = qx.io.image.Preloader.__onerror;
-  }
-
-  // Set Source
-  this._source = vSource;
-  this._element.src = vSource;
-
-  // Set PNG State
-  if (qx.core.Client.getInstance().isMshtml()) {
-    this._isPng = /\.png$/i.test(this._element.nameProp);
-  }
-
-  qx.manager.object.ImagePreloaderManager.getInstance().add(this);
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  STATE MANAGERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._source = null;
-qx.Proto._isLoaded = false;
-qx.Proto._isErroneous = false;
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CROSSBROWSER GETTERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getUri = function() { return this._source; };
-qx.Proto.getSource = function() { return this._source; };
-qx.Proto.isLoaded = function() { return this._isLoaded; };
-qx.Proto.isErroneous = function() { return this._isErroneous; };
-
-// only used in mshtml: true when the image format is in png
-qx.Proto._isPng = false;
-qx.Proto.getIsPng = function() { return this._isPng; };
-
-if(qx.core.Client.getInstance().isGecko())
-{
-  qx.Proto.getWidth = function() { return this._element.naturalWidth; };
-  qx.Proto.getHeight = function() { return this._element.naturalHeight; };
-}
-else
-{
-  qx.Proto.getWidth = function() { return this._element.width; };
-  qx.Proto.getHeight = function() { return this._element.height; };
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT MAPPING
----------------------------------------------------------------------------
-*/
-
-qx.io.image.Preloader.__onload = function(e) { this.qx_ImagePreloader._onload(); };
-qx.io.image.Preloader.__onerror = function(e) { this.qx_ImagePreloader._onerror(); };
-
-qx.Proto._onload = function()
-{
-  if (this._isLoaded || this._isErroneous) {
-    return;
-  }
-
-  this._isLoaded = true;
-  this._isErroneous = false;
-
-  if (this.hasEventListeners("load")) {
-    this.dispatchEvent(new qx.event.type.Event("load"), true);
-  }
-}
-
-qx.Proto._onerror = function()
-{
-  if (this._isLoaded || this._isErroneous) {
-    return;
-  }
-
-  this.debug("Could not load: " + this._source);
-
-  this._isLoaded = false;
-  this._isErroneous = true;
-
-  if (this.hasEventListeners("error")) {
-    this.dispatchEvent(new qx.event.type.Event("error"), true);
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if(this.getDisposed()) {
-    return;
-  }
-
-  if (this._element)
-  {
-    this._element.onload = this._element.onerror = null;
-    this._element.qx_ImagePreloader = null;
-    this._element = null;
-  }
-
-  this._isLoaded = this._isErroneous = this._isPng = false;
-
-  return qx.core.Target.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/image/PreloaderSystem.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/image/PreloaderSystem.js
deleted file mode 100755 (executable)
index bf18ceb..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-
-************************************************************************ */
-
-/**
- * @event completed {qx.event.type.Event}
- */
-qx.OO.defineClass("qx.io.image.PreloaderSystem", qx.core.Target,
-function(vPreloadList, vCallBack, vCallBackScope)
-{
-  qx.core.Target.call(this);
-
-  this._list = vPreloadList;
-
-  // Create timer
-  this._timer = new qx.client.Timer(this.getSetting("timeout"));
-  this._timer.addEventListener("interval", this._oninterval, this);
-
-  // If we use the compact syntax, automatically add an event listeners and start the loading process
-  if (vCallBack)
-  {
-    this.addEventListener("completed", vCallBack, vCallBackScope || null);
-    this.start();
-  }
-});
-
-qx.Proto._stopped = false;
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFAULT SETTINGS
----------------------------------------------------------------------------
-*/
-
-qx.Settings.setDefault("timeout", 3000);
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  USER ACCESS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.start = function()
-{
-  if (qx.lang.Object.isEmpty(this._list))
-  {
-    this.createDispatchEvent("completed");
-    return;
-  }
-
-  for (var vSource in this._list)
-  {
-    var vPreloader = qx.manager.object.ImagePreloaderManager.getInstance().create(qx.manager.object.AliasManager.getInstance().resolvePath(vSource));
-
-    if (vPreloader.isErroneous() || vPreloader.isLoaded())
-    {
-      delete this._list[vSource];
-    }
-    else
-    {
-      vPreloader._origSource = vSource;
-
-      vPreloader.addEventListener("load", this._onload, this);
-      vPreloader.addEventListener("error", this._onerror, this);
-    }
-  }
-
-  // Initial check
-  this._check();
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT LISTENERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onload = function(e)
-{
-  delete this._list[e.getTarget()._origSource];
-  this._check();
-}
-
-qx.Proto._onerror = function(e)
-{
-  delete this._list[e.getTarget()._origSource];
-  this._check();
-}
-
-qx.Proto._oninterval = function(e)
-{
-  this.error("Could not preload: " + qx.lang.Object.getKeysAsString(this._list));
-
-  this._stopped = true;
-  this._timer.stop();
-
-  this.createDispatchEvent("completed");
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CHECK
----------------------------------------------------------------------------
-*/
-
-qx.Proto._check = function()
-{
-  if (this._stopped) {
-    return;
-  }
-
-  // this.debug("Check: " + qx.lang.Object.getKeysAsString(this._list));
-
-  if (qx.lang.Object.isEmpty(this._list))
-  {
-    this._timer.stop();
-    this.createDispatchEvent("completed");
-  }
-  else
-  {
-    // Restart timer for timeout
-    this._timer.restart();
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  this._list = null;
-
-  if (this._timer)
-  {
-    this._timer.dispose();
-    this._timer = null;
-  }
-
-  return qx.core.Target.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/local/CookieApi.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/local/CookieApi.js
deleted file mode 100755 (executable)
index c5ebad3..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.io.local.CookieApi",
-{
-  STR_EXPIRES : "expires",
-  STR_PATH : "path",
-  STR_DOMAIN : "domain",
-  STR_SECURE : "secure",
-  STR_DELDATA : "Thu, 01-Jan-1970 00:00:01 GMT"
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  USER APPLICATION METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Class.get = function(vName)
-{
-  var start = document.cookie.indexOf(vName + "=");
-  var len = start + vName.length + 1;
-
-  if ((!start) && (vName != document.cookie.substring(0, vName.length))) {
-    return null;
-  }
-
-  if (start == -1) {
-    return null;
-  }
-
-  var end = document.cookie.indexOf(";", len);
-
-  if (end == -1) {
-    end = document.cookie.length;
-  }
-
-  return unescape(document.cookie.substring(len, end));
-}
-
-qx.Class.set = function(vName, vValue, vExpires, vPath, vDomain, vSecure)
-{
-  var today = new Date();
-  today.setTime(today.getTime());
-
-  // Generate cookie
-  var vCookie = [ vName, "=", escape(vValue) ];
-
-  if (vExpires)
-  {
-    vCookie.push(";");
-    vCookie.push(qx.io.local.CookieApi.STR_EXPIRES);
-    vCookie.push("=");
-    vCookie.push(new Date(today.getTime() + (vExpires * 1000 * 60 * 60 * 24)).toGMTString());
-  }
-
-  if (vPath)
-  {
-    vCookie.push(";");
-    vCookie.push(qx.io.local.CookieApi.STR_PATH);
-    vCookie.push("=");
-    vCookie.push(vPath);
-  }
-
-  if (vDomain)
-  {
-    vCookie.push(";");
-    vCookie.push(qx.io.local.CookieApi.STR_DOMAIN);
-    vCookie.push("=");
-    vCookie.push(vDomain);
-  }
-
-  if (vSecure)
-  {
-    vCookie.push(";");
-    vCookie.push(qx.io.local.CookieApi.STR_SECURE);
-  }
-
-  // Store cookie
-  document.cookie = vCookie.join("");
-}
-
-qx.Class.del = function(vName, vPath, vDomain)
-{
-  if (!qx.io.local.CookieApi.get(vName)) {
-    return;
-  }
-
-  // Generate cookie
-  var vCookie = [ vName, "=" ];
-
-  if (vPath)
-  {
-    vCookie.push(";");
-    vCookie.push(qx.io.local.CookieApi.STR_PATH);
-    vCookie.push("=");
-    vCookie.push(vPath);
-  }
-
-  if (vDomain)
-  {
-    vCookie.push(";");
-    vCookie.push(qx.io.local.CookieApi.STR_DOMAIN);
-    vCookie.push("=");
-    vCookie.push(vDomain);
-  }
-
-  vCookie.push(";");
-  vCookie.push(qx.io.local.CookieApi.STR_EXPIRES);
-  vCookie.push("=");
-  vCookie.push(qx.io.local.CookieApi.STR_DELDATA);
-
-  // Store cookie
-  document.cookie = vCookie.join("");
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/local/CookieTransport.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/local/CookieTransport.js
deleted file mode 100755 (executable)
index 46a07cf..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.io.local.CookieTransport",
-{
-  BASENAME : "qx",
-  ITEMSEPARATOR : "&",
-  KEYVALUESEPARATOR : "=",
-  MAXCOOKIES : 20,
-  MAXSIZE : 4096
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  USER APPLICATION METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Class.set = function(vName, vValue)
-{
-  if (vValue === undefined) {
-    return qx.io.local.CookieTransport.del(vName);
-  }
-
-  var vAll = qx.io.local.CookieTransport._getAll();
-  vAll[vName] = vValue;
-  this._setAll(vAll);
-}
-
-qx.Class.get = function(vName)
-{
-  var vAll = qx.io.local.CookieTransport._getAll();
-
-  return vAll[vName] || "";
-}
-
-qx.Class.del = function(vName)
-{
-  var vAll = qx.io.local.CookieTransport._getAll();
-  delete vAll[vName];
-  this._setAll(vAll);
-}
-
-qx.Class.setAll = function(vHash)
-{
-  var vAll = qx.io.local.CookieTransport._getAll();
-  vAll = qx.lang.Object.mergeWith(vAll, vHash);
-  qx.io.local.CookieTransport._setAll(vAll);
-}
-
-qx.Class.getAll = function() {
-  return qx.io.local.CookieTransport._getAll();
-}
-
-qx.Class.replaceAll = function(vHash) {
-  qx.io.local.CookieTransport._setAll(vHash);
-}
-
-qx.Class.delAll = function() {
-  qx.io.local.CookieTransport.replaceAll({});
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  LOW LEVEL INTERNAL METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Class._getAll = function()
-{
-  var vHash = {};
-  var vCookie, vItems, vItem;
-
-  for (var i=0; i<qx.io.local.CookieTransport.MAXCOOKIES; i++)
-  {
-    vCookie = qx.io.local.CookieApi.get(qx.io.local.CookieTransport.BASENAME + i);
-    if (vCookie)
-    {
-      vItems = vCookie.split(qx.io.local.CookieTransport.ITEMSEPARATOR);
-      for (var j=0, l=vItems.length; j<l; j++)
-      {
-        vItem = vItems[j].split(qx.io.local.CookieTransport.KEYVALUESEPARATOR);
-        vHash[vItem[0]] = vItem[1];
-      }
-    }
-  }
-
-  return vHash;
-}
-
-qx.Class._setAll = function(vHash)
-{
-  var vString = "";
-  var vTemp;
-  var vIndex = 0;
-
-  for (var vName in vHash)
-  {
-    vTemp = vName + qx.io.local.CookieTransport.KEYVALUESEPARATOR + vHash[vName];
-
-    if (vTemp.length > qx.io.local.CookieTransport.MAXSIZE)
-    {
-      qx.log.Logger.getClassLogger(qx.io.local.CookieTransport).debug("Could not store value of name '" + vName + "': Maximum size of " + qx.io.local.CookieTransport.MAXSIZE + "reached!");
-      continue;
-    }
-
-    if ((qx.io.local.CookieTransport.ITEMSEPARATOR.length + vString.length + vTemp.length) > qx.io.local.CookieTransport.MAXSIZE)
-    {
-      qx.io.local.CookieTransport._setCookie(vIndex++, vString);
-
-      if (vIndex == qx.io.local.CookieTransport.MAXCOOKIES)
-      {
-        qx.log.Logger.getClassLogger(qx.io.local.CookieTransport).debug("Failed to store cookie. Max cookie amount reached!", "error");
-        return false;
-      }
-
-      vString = vTemp;
-    }
-    else
-    {
-      if (vString != "") {
-        vString += qx.io.local.CookieTransport.ITEMSEPARATOR;
-      }
-
-      vString += vTemp;
-    }
-  }
-
-  if (vString != "") {
-    qx.io.local.CookieTransport._setCookie(vIndex++, vString);
-  }
-
-  while (vIndex < qx.io.local.CookieTransport.MAXCOOKIES) {
-    qx.io.local.CookieTransport._delCookie(vIndex++);
-  }
-}
-
-qx.Class._setCookie = function(vIndex, vString)
-{
-  // qx.log.Logger.getClassLogger(qx.io.local.CookieTransport).debug("Store: " + vIndex + " = " + vString);
-  qx.io.local.CookieApi.set(qx.io.local.CookieTransport.BASENAME + vIndex, vString);
-}
-
-qx.Class._delCookie = function(vIndex)
-{
-  // qx.log.Logger.getClassLogger(qx.io.local.CookieTransport).debug("Delete: " + vIndex);
-  qx.io.local.CookieApi.del(qx.io.local.CookieTransport.BASENAME + vIndex);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/AbstractRemoteTransport.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/AbstractRemoteTransport.js
deleted file mode 100644 (file)
index 00be49a..0000000
+++ /dev/null
@@ -1,330 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(io_remote)
-
-************************************************************************ */
-
-/**
- * @event created {qx.event.type.Event}
- * @event configured {qx.event.type.Event}
- * @event sending {qx.event.type.Event}
- * @event receiving {qx.event.type.Event}
- * @event completed {qx.event.type.Event}
- * @event aborted {qx.event.type.Event}
- * @event failed {qx.event.type.Event}
- * @event timeout {qx.event.type.Event}
- */
-qx.OO.defineClass("qx.io.remote.AbstractRemoteTransport", qx.core.Target,
-function() {
-  qx.core.Target.call(this);
-});
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/*!
-  Target url to issue the request to
-*/
-qx.OO.addProperty({ name : "url", type : "string" });
-
-/*!
-  Determines what type of request to issue
-*/
-qx.OO.addProperty({ name : "method", type : "string" });
-
-/*!
-  Set the request to asynchronous
-*/
-qx.OO.addProperty({ name : "asynchronous", type : "boolean" });
-
-/*!
-  Set the data to be sent via this request
-*/
-qx.OO.addProperty({ name : "data", type : "string" });
-
-/*!
-  Username to use for HTTP authentication
-*/
-qx.OO.addProperty({ name : "username", type : "string" });
-
-/*!
-  Password to use for HTTP authentication
-*/
-qx.OO.addProperty({ name : "password", type : "string" });
-
-/*!
-  The state of the current request
-*/
-qx.OO.addProperty(
-{
-  name           : "state",
-  type           : "string",
-  possibleValues : [
-                   "created", "configured",
-                   "sending", "receiving",
-                   "completed", "aborted",
-                   "timeout", "failed"
-                   ],
-  defaultValue   : "created"
-});
-
-/*!
-  Request headers
-*/
-qx.OO.addProperty({ name : "requestHeaders", type: "object" });
-
-/*!
-  Request parameters to send.
-*/
-qx.OO.addProperty({ name : "parameters", type: "object" });
-
-/*!
-  Response Type
-*/
-qx.OO.addProperty({ name : "responseType", type: "string" });
-
-/*!
-  Use Basic HTTP Authentication
-*/
-qx.OO.addProperty({ name : "useBasicHttpAuth", type : "boolean" });
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  USER METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.send = function() {
-  throw new Error("send is abstract");
-}
-
-qx.Proto.abort = function()
-{
-  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
-    this.warn("Aborting...");
-  }
-
-  this.setState("aborted");
-}
-
-/*!
-
-*/
-qx.Proto.timeout = function()
-{
-  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
-    this.warn("Timeout...");
-  }
-
-  this.setState("timeout");
-}
-
-/*!
-
-  Force the transport into the failed state ("failed").
-
-  Listeners of the "failed" signal are notified about the event.
-*/
-qx.Proto.failed = function()
-{
-  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
-    this.warn("Failed...");
-  }
-
-  this.setState("failed");
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  REQUEST HEADER SUPPORT
----------------------------------------------------------------------------
-*/
-/*!
-  Add a request header to this transports qx.io.remote.Request.
-
-  This method is virtual and concrete subclasses are supposed to
-  implement it.
-*/
-qx.Proto.setRequestHeader = function(vLabel, vValue) {
-  throw new Error("setRequestHeader is abstract");
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  RESPONSE HEADER SUPPORT
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getResponseHeader = function(vLabel) {
-  throw new Error("getResponseHeader is abstract");
-}
-
-/*!
-  Provides an hash of all response headers.
-*/
-qx.Proto.getResponseHeaders = function() {
-  throw new Error("getResponseHeaders is abstract");
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  STATUS SUPPORT
----------------------------------------------------------------------------
-*/
-
-/*!
-  Returns the current status code of the request if available or -1 if not.
-*/
-qx.Proto.getStatusCode = function() {
-  throw new Error("getStatusCode is abstract");
-}
-
-/*!
-  Provides the status text for the current request if available and null otherwise.
-*/
-qx.Proto.getStatusText = function() {
-  throw new Error("getStatusText is abstract");
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  RESPONSE DATA SUPPORT
----------------------------------------------------------------------------
-*/
-
-/*!
-  Provides the response text from the request when available and null otherwise.
-  By passing true as the "partial" parameter of this method, incomplete data will
-  be made available to the caller.
-*/
-qx.Proto.getResponseText = function() {
-  throw new Error("getResponseText is abstract");
-}
-
-/*!
-  Provides the XML provided by the response if any and null otherwise.
-  By passing true as the "partial" parameter of this method, incomplete data will
-  be made available to the caller.
-*/
-qx.Proto.getResponseXml = function() {
-  throw new Error("getResponseXml is abstract");
-}
-
-/*!
-  Returns the length of the content as fetched thus far
-*/
-qx.Proto.getFetchedLength = function() {
-  throw new Error("getFetchedLength is abstract");
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyState = function(propValue, propOldValue, propData)
-{
-  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
-    this.debug("State: " + propValue);
-  }
-
-  switch(propValue)
-  {
-    case "created":
-      this.createDispatchEvent("created");
-      break;
-
-    case "configured":
-      this.createDispatchEvent("configured");
-      break;
-
-    case "sending":
-      this.createDispatchEvent("sending");
-      break;
-
-    case "receiving":
-      this.createDispatchEvent("receiving");
-      break;
-
-    case "completed":
-      this.createDispatchEvent("completed");
-      break;
-
-    case "aborted":
-      this.createDispatchEvent("aborted");
-      break;
-
-    case "failed":
-      this.createDispatchEvent("failed");
-      break;
-
-    case "timeout":
-      this.createDispatchEvent("timeout");
-      break;
-  }
-
-  return true;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/Exchange.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/Exchange.js
deleted file mode 100644 (file)
index 4487498..0000000
+++ /dev/null
@@ -1,706 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-     2006 Derrell Lipman
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Derrell Lipman (derrell)
-     * Andreas Junghans (lucidcake)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(io_remote)
-
-************************************************************************ */
-
-/**
- * @event sending {qx.event.type.Event}
- * @event receiving {qx.event.type.Event}
- * @event completed {qx.event.type.Event}
- * @event aborted {qx.event.type.Event}
- * @event timeout {qx.event.type.Event}
- * @event failed {qx.event.type.Event}
- */
-qx.OO.defineClass("qx.io.remote.Exchange", qx.core.Target,
-function(vRequest)
-{
-  qx.core.Target.call(this);
-
-  this.setRequest(vRequest);
-  vRequest.setTransport(this);
-});
-
-
-/*
----------------------------------------------------------------------------
-  DEFAULT SETTINGS
----------------------------------------------------------------------------
-*/
-
-qx.Settings.setDefault("enableDebug", false);
-
-
-
-
-
-
-/* ************************************************************************
-   Class data, properties and methods
-************************************************************************ */
-
-/*
----------------------------------------------------------------------------
-  TRANSPORT TYPE HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.io.remote.Exchange.typesOrder = [ "qx.io.remote.XmlHttpTransport", "qx.io.remote.IframeTransport", "qx.io.remote.ScriptTransport" ];
-
-qx.io.remote.Exchange.typesReady = false;
-
-qx.io.remote.Exchange.typesAvailable = {};
-qx.io.remote.Exchange.typesSupported = {};
-
-qx.io.remote.Exchange.registerType = function(vClass, vId) {
-  qx.io.remote.Exchange.typesAvailable[vId] = vClass;
-}
-
-qx.io.remote.Exchange.initTypes = function()
-{
-  if (qx.io.remote.Exchange.typesReady) {
-    return;
-  }
-
-  for (var vId in qx.io.remote.Exchange.typesAvailable)
-  {
-    var vTransporterImpl = qx.io.remote.Exchange.typesAvailable[vId];
-
-    if (vTransporterImpl.isSupported()) {
-      qx.io.remote.Exchange.typesSupported[vId] = vTransporterImpl;
-    }
-  }
-
-  qx.io.remote.Exchange.typesReady = true;
-
-  if (qx.lang.Object.isEmpty(qx.io.remote.Exchange.typesSupported)) {
-    throw new Error("No supported transport types were found!");
-  }
-}
-
-qx.io.remote.Exchange.canHandle = function(vImpl, vNeeds, vResponseType)
-{
-  if (!qx.lang.Array.contains(vImpl.handles.responseTypes, vResponseType)) {
-    return false;
-  }
-
-  for (var vKey in vNeeds)
-  {
-    if (!vImpl.handles[vKey]) {
-      return false;
-    }
-  }
-
-  return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MAPPING
----------------------------------------------------------------------------
-*/
-
-/*
-http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/0e6a34e4-f90c-489d-acff-cb44242fafc6.asp
-
-0: UNINITIALIZED
-The object has been created, but not initialized (the open method has not been called).
-
-1: LOADING
-The object has been created, but the send method has not been called.
-
-2: LOADED
-The send method has been called, but the status and headers are not yet available.
-
-3: INTERACTIVE
-Some data has been received. Calling the responseBody and responseText properties at this state to obtain partial results will return an error, because status and response headers are not fully available.
-
-4: COMPLETED
-All the data has been received, and the complete data is available in the
-*/
-
-qx.io.remote.Exchange._nativeMap =
-{
-  0 : "created",
-  1 : "configured",
-  2 : "sending",
-  3 : "receiving",
-  4 : "completed"
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILS
----------------------------------------------------------------------------
-*/
-
-qx.io.remote.Exchange.wasSuccessful = function(vStatusCode, vReadyState, vIsLocal)
-{
-  if (vIsLocal)
-  {
-    switch(vStatusCode)
-    {
-      case null:
-      case 0:
-        return true;
-
-      case -1:
-        // Not Available (OK for readystates: MSXML<4=1-3, MSXML>3=1-2, Gecko=1)
-        return vReadyState < 4;
-
-      default:
-        // at least older versions of Safari don't set the status code for local file access
-        return typeof vStatusCode === "undefined";
-    }
-  }
-  else
-  {
-    switch(vStatusCode)
-    {
-      case -1:  // Not Available (OK for readystates: MSXML<4=1-3, MSXML>3=1-2, Gecko=1)
-        if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug") && vReadyState > 3) {
-          qx.log.Logger.getClassLogger(qx.io.remote.Exchange).debug("Failed with statuscode: -1 at readyState " + vReadyState);
-        }
-
-        return vReadyState < 4;
-
-
-      case 200: // OK
-      case 304: // Not Modified
-        return true;
-
-
-      case 201: // Created
-      case 202: // Accepted
-      case 203: // Non-Authoritative Information
-      case 204: // No Content
-      case 205: // Reset Content
-        return true;
-
-
-      case 206: // Partial Content
-        if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug") && vReadyState === 4) {
-          qx.log.Logger.getClassLogger(qx.io.remote.Exchange).debug("Failed with statuscode: 206 (Partial content while being complete!)");
-        }
-
-        return vReadyState !== 4;
-
-
-      case 300: // Multiple Choices
-      case 301: // Moved Permanently
-      case 302: // Moved Temporarily
-      case 303: // See Other
-      case 305: // Use Proxy
-      case 400: // Bad Request
-      case 401: // Unauthorized
-      case 402: // Payment Required
-      case 403: // Forbidden
-      case 404: // Not Found
-      case 405: // Method Not Allowed
-      case 406: // Not Acceptable
-      case 407: // Proxy Authentication Required
-      case 408: // Request Time-Out
-      case 409: // Conflict
-      case 410: // Gone
-      case 411: // Length Required
-      case 412: // Precondition Failed
-      case 413: // Request Entity Too Large
-      case 414: // Request-URL Too Large
-      case 415: // Unsupported Media Type
-      case 500: // Server Error
-      case 501: // Not Implemented
-      case 502: // Bad Gateway
-      case 503: // Out of Resources
-      case 504: // Gateway Time-Out
-      case 505: // HTTP Version not supported
-        if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
-          qx.log.Logger.getClassLogger(qx.io.remote.Exchange).debug("Failed with typical HTTP statuscode: " + vStatusCode);
-        }
-
-        return false;
-
-
-      // The following case labels are wininet.dll error codes that may be encountered.
-      // Server timeout
-      case 12002:
-      // 12029 to 12031 correspond to dropped connections.
-      case 12029:
-      case 12030:
-      case 12031:
-      // Connection closed by server.
-      case 12152:
-      // See above comments for variable status.
-      case 13030:
-        if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
-          qx.log.Logger.getClassLogger(qx.io.remote.Exchange).debug("Failed with MSHTML specific HTTP statuscode: " + vStatusCode);
-        }
-
-        return false;
-
-
-      default:
-        // Handle all 20x status codes as OK as defined in the corresponding RFC
-        // http://www.w3.org/Protocols/rfc2616/rfc2616.html
-        if (vStatusCode > 206 && vStatusCode < 300) {
-          return true;
-        }
-
-        qx.log.Logger.getClassLogger(qx.io.remote.Exchange).debug("Unknown status code: " + vStatusCode + " (" + vReadyState + ")");
-        throw new Error("Unknown status code: " + vStatusCode);
-    }
-  }
-}
-
-
-qx.io.remote.Exchange.statusCodeToString = function(vStatusCode)
-{
-  switch(vStatusCode)
-  {
-    case -1:    return "Not available";
-    case 200:   return "Ok";
-    case 304:   return "Not modified";
-    case 206:   return "Partial content";
-    case 204:   return "No content";
-    case 300:   return "Multiple choices";
-    case 301:   return "Moved permanently";
-    case 302:   return "Moved temporarily";
-    case 303:   return "See other";
-    case 305:   return "Use proxy";
-    case 400:   return "Bad request";
-    case 401:   return "Unauthorized";
-    case 402:   return "Payment required";
-    case 403:   return "Forbidden";
-    case 404:   return "Not found";
-    case 405:   return "Method not allowed";
-    case 406:   return "Not acceptable";
-    case 407:   return "Proxy authentication required";
-    case 408:   return "Request time-out";
-    case 409:   return "Conflict";
-    case 410:   return "Gone";
-    case 411:   return "Length required";
-    case 412:   return "Precondition failed";
-    case 413:   return "Request entity too large";
-    case 414:   return "Request-URL too large";
-    case 415:   return "Unsupported media type";
-    case 500:   return "Server error";
-    case 501:   return "Not implemented";
-    case 502:   return "Bad gateway";
-    case 503:   return "Out of resources";
-    case 504:   return "Gateway time-out";
-    case 505:   return "HTTP version not supported";
-    case 12002: return "Server timeout";
-    case 12029: return "Connection dropped";
-    case 12030: return "Connection dropped";
-    case 12031: return "Connection dropped";
-    case 12152: return "Connection closed by server";
-    case 13030: return "MSHTML-specific HTTP status code";
-    default:    return "Unknown status code";
-  }
-}
-
-
-
-
-
-
-
-/* ************************************************************************
-   Instance data, properties and methods
-************************************************************************ */
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/*!
-  Set the request to send with this transport.
-*/
-qx.OO.addProperty({ name : "request", type : "object", instance : "qx.io.remote.Request" });
-/*!
-  Set the implementation to use to send the request with.
-
-  The implementation should be a subclass of qx.io.remote.AbstractRemoteTransport and
-  must implement all methods in the transport API.
-*/
-qx.OO.addProperty({ name : "implementation", type : "object" });
-qx.OO.addProperty(
-{
-  name           : "state",
-  type           : "string",
-  possibleValues : [
-                   "configured", "sending",
-                   "receiving", "completed",
-                   "aborted", "timeout",
-                   "failed"
-                   ],
-  defaultValue   : "configured"
-});
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CORE METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.send = function()
-{
-  var vRequest = this.getRequest();
-
-  if (!vRequest) {
-    return this.error("Please attach a request object first");
-  }
-
-  qx.io.remote.Exchange.initTypes();
-
-  var vUsage = qx.io.remote.Exchange.typesOrder;
-  var vSupported = qx.io.remote.Exchange.typesSupported;
-
-  // Mapping settings to contenttype and needs to check later
-  // if the selected transport implementation can handle
-  // fulfill these requirements.
-  var vResponseType = vRequest.getResponseType();
-  var vNeeds = {};
-
-  if (vRequest.getAsynchronous()) {
-    vNeeds.asynchronous = true;
-  } else {
-    vNeeds.synchronous = true;
-  }
-
-  if (vRequest.getCrossDomain()) {
-    vNeeds.crossDomain = true;
-  }
-
-  if (vRequest.getFileUpload()) {
-    vNeeds.fileUpload = true;
-  }
-
-  var vTransportImpl, vTransport;
-  for (var i=0, l=vUsage.length; i<l; i++)
-  {
-    vTransportImpl = vSupported[vUsage[i]];
-
-    if (vTransportImpl)
-    {
-      if (!qx.io.remote.Exchange.canHandle(vTransportImpl, vNeeds, vResponseType)) {
-        continue;
-      }
-
-      try
-      {
-        if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
-          this.debug("Using implementation: " + vTransportImpl.classname);
-        }
-
-        vTransport = new vTransportImpl;
-        this.setImplementation(vTransport);
-
-        vTransport.setUseBasicHttpAuth(vRequest.getUseBasicHttpAuth());
-
-        vTransport.send();
-        return true;
-      }
-      catch(ex)
-      {
-        return this.error("Request handler throws error", ex);
-      }
-    }
-  }
-
-  this.error("There is no transport implementation available to handle this request: " + vRequest);
-}
-/*!
-  Force the transport into the aborted ("aborted")
-  state.
-*/
-qx.Proto.abort = function()
-{
-  var vImplementation = this.getImplementation();
-
-  if (vImplementation)
-  {
-    if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
-      this.debug("Abort: implementation " + vImplementation.toHashCode());
-    }
-    vImplementation.abort();
-  }
-  else
-  {
-    if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
-      this.debug("Abort: forcing state to be aborted");
-    }
-    this.setState("aborted");
-  }
-}
-/*!
-  Force the transport into the timeout state.
-*/
-qx.Proto.timeout = function()
-{
-  var vImplementation = this.getImplementation();
-
-  if (vImplementation)
-  {
-    this.warn("Timeout: implementation " + vImplementation.toHashCode());
-    vImplementation.timeout();
-  }
-  else
-  {
-    this.warn("Timeout: forcing state to timeout");
-    this.setState("timeout");
-  }
-
-  // Disable future timeouts in case user handler blocks
-  if (this.getRequest()) {
-    this.getRequest().setTimeout(0);
-  }
-}
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onsending = function(e) {
-  this.setState("sending");
-}
-
-qx.Proto._onreceiving = function(e) {
-  this.setState("receiving");
-}
-
-qx.Proto._oncompleted = function(e) {
-  this.setState("completed");
-}
-
-qx.Proto._onabort = function(e) {
-  this.setState("aborted");
-}
-
-qx.Proto._onfailed = function(e) {
-  this.setState("failed");
-}
-
-qx.Proto._ontimeout = function(e) {
-  this.setState("timeout");
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyImplementation = function(propValue, propOldValue, propData)
-{
-  if (propOldValue)
-  {
-    propOldValue.removeEventListener("sending", this._onsending, this);
-    propOldValue.removeEventListener("receiving", this._onreceiving, this);
-    propOldValue.removeEventListener("completed", this._oncompleted, this);
-    propOldValue.removeEventListener("aborted", this._onabort, this);
-    propOldValue.removeEventListener("timeout", this._ontimeout, this);
-    propOldValue.removeEventListener("failed", this._onfailed, this);
-  }
-
-  if (propValue)
-  {
-    var vRequest = this.getRequest();
-
-    propValue.setUrl(vRequest.getUrl());
-    propValue.setMethod(vRequest.getMethod());
-    propValue.setAsynchronous(vRequest.getAsynchronous());
-
-    propValue.setUsername(vRequest.getUsername());
-    propValue.setPassword(vRequest.getPassword());
-
-    propValue.setParameters(vRequest.getParameters());
-    propValue.setRequestHeaders(vRequest.getRequestHeaders());
-    propValue.setData(vRequest.getData());
-
-    propValue.setResponseType(vRequest.getResponseType());
-
-    propValue.addEventListener("sending", this._onsending, this);
-    propValue.addEventListener("receiving", this._onreceiving, this);
-    propValue.addEventListener("completed", this._oncompleted, this);
-    propValue.addEventListener("aborted", this._onabort, this);
-    propValue.addEventListener("timeout", this._ontimeout, this);
-    propValue.addEventListener("failed", this._onfailed, this);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyState = function(propValue, propOldValue, propData)
-{
-  var vRequest = this.getRequest();
-
-  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
-    this.debug("State: " + propOldValue + " => " + propValue);
-  }
-
-  switch(propValue)
-  {
-    case "sending":
-      this.createDispatchEvent("sending");
-      break;
-
-    case "receiving":
-      this.createDispatchEvent("receiving");
-      break;
-
-    case "completed":
-    case "aborted":
-    case "timeout":
-    case "failed":
-      var vImpl = this.getImplementation();
-
-      if (! vImpl) {
-        // implementation has already been disposed
-        break;
-      }
-
-      var vResponse = new qx.io.remote.Response;
-
-      if (propValue == "completed") {
-        var vContent = vImpl.getResponseContent();
-        vResponse.setContent(vContent);
-
-        /*
-         * Was there acceptable content?  This might occur, for example, if
-         * the web server was shut down unexpectedly and thus the connection
-         * closed with no data having been sent.
-         */
-        if (vContent === null) {
-          // Nope.  Change COMPLETED to FAILED.
-          if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
-            this.debug("Altered State: " + propValue + " => failed");
-          }
-          propValue = "failed";
-        }
-      }
-
-      vResponse.setStatusCode(vImpl.getStatusCode());
-      vResponse.setResponseHeaders(vImpl.getResponseHeaders());
-
-      // this.debug("Result Text: " + vResponse.getTextContent());
-
-      var vEventType;
-
-      switch(propValue)
-      {
-        case "completed":
-          vEventType = "completed";
-          break;
-
-        case "aborted":
-          vEventType = "aborted";
-          break;
-
-        case "timeout":
-          vEventType = "timeout";
-          break;
-
-        case "failed":
-          vEventType = "failed";
-          break;
-      }
-
-      // Disconnect and dispose implementation
-      this.setImplementation(null);
-      vImpl.dispose();
-
-      // Fire event to listeners
-      this.createDispatchDataEvent(vEventType, vResponse);
-      break;
-  }
-
-  return true;
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  var vImpl = this.getImplementation();
-  if (vImpl)
-  {
-    this.setImplementation(null);
-    vImpl.dispose();
-  }
-
-  this.setRequest(null);
-
-  return qx.core.Target.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/IframeTransport.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/IframeTransport.js
deleted file mode 100644 (file)
index 9e9d50c..0000000
+++ /dev/null
@@ -1,476 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-     2006 Derrell Lipman
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Derrell Lipman (derrell)
-     * Andreas Junghans (lucidcake)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(io_remote)
-#require(qx.io.remote.Exchange)
-#require(qx.util.Mime)
-#embed(qx.static/image/blank.gif)
-
-************************************************************************ */
-
-/*!
-  Transports requests to a server using an IFRAME.
-
-  This class should not be used directly by client programmers.
- */
-qx.OO.defineClass("qx.io.remote.IframeTransport", qx.io.remote.AbstractRemoteTransport,
-function()
-{
-  qx.io.remote.AbstractRemoteTransport.call(this);
-
-  var vUniqueId = (new Date).valueOf();
-  var vFrameName = "frame_" + vUniqueId;
-  var vFormName = "form_" + vUniqueId;
-
-  // Mshtml allows us to define a full HTML as a parameter for createElement.
-  // Using this method is the only (known) working to register the frame
-  // to the known elements of the Internet Explorer.
-  if (qx.core.Client.getInstance().isMshtml()) {
-    this._frame = document.createElement('<iframe name="' + vFrameName + '"></iframe>');
-  } else {
-    this._frame = document.createElement("iframe");
-  }
-
-  this._frame.src = "javascript:void(0)";
-  this._frame.id = this._frame.name = vFrameName;
-  this._frame.onload = function(e) { return o._onload(e); }
-
-  this._frame.style.display = "none";
-
-  document.body.appendChild(this._frame);
-
-  this._form = document.createElement("form");
-  this._form.target = vFrameName;
-  this._form.id = this._form.name = vFormName;
-
-  this._form.style.display = "none";
-
-  document.body.appendChild(this._form);
-
-  this._data = document.createElement("textarea");
-  this._data.id = this._data.name = "_data_";
-  this._form.appendChild(this._data);
-
-  var o = this;
-  this._frame.onreadystatechange = function(e) { return o._onreadystatechange(e); }
-});
-
-qx.Proto._lastReadyState = 0;
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CLASS PROPERTIES AND METHODS
----------------------------------------------------------------------------
-*/
-
-// basic registration to qx.io.remote.Exchange
-// the real availability check (activeX stuff and so on) follows at the first real request
-qx.io.remote.Exchange.registerType(qx.io.remote.IframeTransport, "qx.io.remote.IframeTransport");
-
-qx.io.remote.IframeTransport.handles =
-{
-  synchronous : false,
-  asynchronous : true,
-  crossDomain : false,
-  fileUpload: true,
-  responseTypes : [ qx.util.Mime.TEXT, qx.util.Mime.JAVASCRIPT, qx.util.Mime.JSON, qx.util.Mime.XML, qx.util.Mime.HTML ]
-}
-
-qx.io.remote.IframeTransport.isSupported = function() {
-  return true;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  USER METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.send = function()
-{
-  var vMethod = this.getMethod();
-  var vUrl = this.getUrl();
-
-
-
-  // --------------------------------------
-  //   Adding parameters
-  // --------------------------------------
-
-  var vParameters = this.getParameters();
-  var vParametersList = [];
-  for (var vId in vParameters) {
-    var value = vParameters[vId];
-    if (value instanceof Array) {
-      for (var i = 0; i < value.length; i++) {
-        vParametersList.push(encodeURIComponent(vId) + "=" +
-                             encodeURIComponent(value[i]));
-      }
-    } else {
-      vParametersList.push(encodeURIComponent(vId) + "=" +
-                           encodeURIComponent(value));
-    }
-  }
-
-  if (vParametersList.length > 0) {
-    vUrl += (vUrl.indexOf("?") >= 0 ?
-      "&" : "?") + vParametersList.join("&");
-  }
-
-
-
-  // --------------------------------------
-  //   Preparing form
-  // --------------------------------------
-
-  this._form.action = vUrl;
-  this._form.method = vMethod;
-
-
-
-  // --------------------------------------
-  //   Sending data
-  // --------------------------------------
-
-  this._data.appendChild(document.createTextNode(this.getData()));
-  this._form.submit();
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT LISTENER
----------------------------------------------------------------------------
-*/
-
-// For reference:
-// http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/readyState_1.asp
-qx.io.remote.IframeTransport._numericMap =
-{
-  "uninitialized" : 1,
-  "loading" : 2,
-  "loaded" : 2,
-  "interactive" : 3,
-  "complete" : 4
-}
-
-/*!
-  Converting complete state to numeric value and update state property
-*/
-qx.Proto._onload = function(e)
-{
-  if (this._form.src) {
-    return;
-  }
-
-  this._switchReadyState(qx.io.remote.IframeTransport._numericMap.complete);
-}
-
-/*!
-  Converting named readyState to numeric value and update state property
-*/
-qx.Proto._onreadystatechange = function(e) {
-  this._switchReadyState(qx.io.remote.IframeTransport._numericMap[this._frame.readyState]);
-}
-
-qx.Proto._switchReadyState = function(vReadyState)
-{
-  // Ignoring already stopped requests
-  switch(this.getState())
-  {
-    case "completed":
-    case "aborted":
-    case "failed":
-    case "timeout":
-      this.warn("Ignore Ready State Change");
-      return;
-  }
-
-  // Updating internal state
-  while (this._lastReadyState < vReadyState) {
-    this.setState(qx.io.remote.Exchange._nativeMap[++this._lastReadyState]);
-  }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  REQUEST HEADER SUPPORT
----------------------------------------------------------------------------
-*/
-
-qx.Proto.setRequestHeader = function(vLabel, vValue)
-{
-  // TODO
-  // throw new Error("setRequestHeader is abstract");
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  RESPONSE HEADER SUPPORT
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getResponseHeader = function(vLabel)
-{
-  return null;
-
-  // TODO
-  // this.error("Need implementation", "getResponseHeader");
-}
-
-/*!
-  Provides an hash of all response headers.
-*/
-qx.Proto.getResponseHeaders = function()
-{
-  return {}
-
-  // TODO
-  // throw new Error("getResponseHeaders is abstract");
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  STATUS SUPPORT
----------------------------------------------------------------------------
-*/
-
-/*!
-  Returns the current status code of the request if available or -1 if not.
-*/
-qx.Proto.getStatusCode = function()
-{
-  return 200;
-
-  // TODO
-  // this.error("Need implementation", "getStatusCode");
-}
-
-/*!
-  Provides the status text for the current request if available and null otherwise.
-*/
-qx.Proto.getStatusText = function()
-{
-  return "";
-
-  // TODO
-  // this.error("Need implementation", "getStatusText");
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  FRAME UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getIframeWindow = function() {
-  return qx.html.Iframe.getWindow(this._frame);
-}
-
-qx.Proto.getIframeDocument = function() {
-  return qx.html.Iframe.getDocument(this._frame);
-}
-
-qx.Proto.getIframeBody = function() {
-  return qx.html.Iframe.getBody(this._frame);
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  RESPONSE DATA SUPPORT
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getIframeTextContent = function()
-{
-  var vBody = this.getIframeBody();
-
-  if (!vBody) {
-    return null;
-  }
-
-  // Mshtml returns the content inside a PRE
-  // element if we use plain text
-  if (vBody.firstChild.tagName.toLowerCase() == "pre")
-  {
-    return vBody.firstChild.innerHTML;
-  }
-  else
-  {
-    return vBody.innerHTML;
-  }
-}
-
-qx.Proto.getIframeHtmlContent = function()
-{
-  var vBody = this.getIframeBody();
-  return vBody ? vBody.innerHTML : null;
-}
-
-/*!
-  Returns the length of the content as fetched thus far
-*/
-qx.Proto.getFetchedLength = function()
-{
-  return 0;
-
-  // TODO
-  // throw new Error("getFetchedLength is abstract");
-}
-
-qx.Proto.getResponseContent = function()
-{
-  if (this.getState() !== "completed")
-  {
-    if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
-      this.warn("Transfer not complete, ignoring content!");
-    }
-
-    return null;
-  }
-
-  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
-    this.debug("Returning content for responseType: " + this.getResponseType());
-  }
-
-  var vText = this.getIframeTextContent();
-
-  switch(this.getResponseType())
-  {
-    case qx.util.Mime.TEXT:
-      return vText;
-      break;
-
-    case qx.util.Mime.HTML:
-      return this.getIframeHtmlContent();
-      break;
-
-    case qx.util.Mime.JSON:
-      try {
-        return vText && vText.length > 0 ? qx.io.Json.parseQx(vText) : null;
-      } catch(ex) {
-        return this.error("Could not execute json: (" + vText + ")", ex);
-      }
-
-    case qx.util.Mime.JAVASCRIPT:
-      try {
-        return vText && vText.length > 0 ? window.eval(vText) : null;
-      } catch(ex) {
-        return this.error("Could not execute javascript: (" + vText + ")", ex);
-      }
-
-    case qx.util.Mime.XML:
-      return this.getIframeDocument();
-
-    default:
-      this.warn("No valid responseType specified (" + this.getResponseType() + ")!");
-      return null;
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  if (this._frame)
-  {
-    this._frame.onload = null;
-    this._frame.onreadystatechange = null;
-
-    // Reset source to a blank image for gecko
-    // Otherwise it will switch into a load-without-end behaviour
-    if (qx.core.Client.getInstance().isGecko()) {
-      this._frame.src = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
-    }
-
-    // Finally remove element node
-    document.body.removeChild(this._frame);
-
-    this._frame = null;
-  }
-
-  if (this._form)
-  {
-    document.body.removeChild(this._form);
-    this._form = null;
-  }
-
-  return qx.io.remote.AbstractRemoteTransport.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/Request.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/Request.js
deleted file mode 100644 (file)
index 0c8640d..0000000
+++ /dev/null
@@ -1,559 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-     2006 Derrell Lipman
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Derrell Lipman (derrell)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(io_remote)
-#require(qx.net.Http)
-#require(qx.util.Mime)
-
-************************************************************************ */
-
-/**
- * This class is used to send HTTP requests to the server.
- *
- * @event created {qx.event.type.Event}
- * @event configured {qx.event.type.Event}
- * @event sending {qx.event.type.Event}
- * @event receiving {qx.event.type.Event}
- * @event completed {qx.event.type.Event}
- * @event failed {qx.event.type.Event}
- * @event aborted {qx.event.type.Event}
- * @event timeout {qx.event.type.Event}
- *
- * @param vUrl {String} Target url to issue the request to.
- * @param vMethod {String} Determines that type of request to issue (GET or POST). Default is GET.
- * @param vResponseType {String} The mime type of the response. Default is text/plain {@link qx.util.Mime}.
- */
-qx.OO.defineClass("qx.io.remote.Request", qx.core.Target,
-function(vUrl, vMethod, vResponseType)
-{
-  qx.core.Target.call(this);
-
-  this._requestHeaders = {};
-  this._parameters = {};
-
-  this.setUrl(vUrl);
-  this.setMethod(vMethod || qx.net.Http.METHOD_GET);
-  this.setResponseType(vResponseType || qx.util.Mime.TEXT);
-
-  this.setProhibitCaching(true);
-
-  // Prototype-Style Request Headers
-  this.setRequestHeader("X-Requested-With", "qooxdoo");
-  this.setRequestHeader("X-Qooxdoo-Version", qx.core.Version.toString());
-
-  // Get the next sequence number for this request
-  this._seqNum = ++qx.io.remote.Request._seqNum;
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-/*!
-  Target url to issue the request to.
-*/
-qx.OO.addProperty({ name : "url", type : "string" });
-/*!
-  Determines what type of request to issue (GET or POST).
-*/
-qx.OO.addProperty(
-{
-  name           : "method",
-  type           : "string",
-  possibleValues : [
-                   qx.net.Http.METHOD_GET, qx.net.Http.METHOD_POST,
-                   qx.net.Http.METHOD_PUT, qx.net.Http.METHOD_HEAD,
-                   qx.net.Http.METHOD_DELETE
-                   ]
-});
-/*!
-  Set the request to asynchronous.
-*/
-qx.OO.addProperty({ name : "asynchronous", type : "boolean", defaultValue : true,
-                    getAlias: "isAsynchronous" });
-/*!
-  Set the data to be sent via this request
-*/
-qx.OO.addProperty({ name : "data", type : "string" });
-/*!
-  Username to use for HTTP authentication. Null if HTTP authentication
-  is not used.
-*/
-qx.OO.addProperty({ name : "username", type : "string" });
-/*!
-  Password to use for HTTP authentication. Null if HTTP authentication
-  is not used.
-*/
-qx.OO.addProperty({ name : "password", type : "string" });
-qx.OO.addProperty(
-{
-  name           : "state",
-  type           : "string",
-  possibleValues : [
-                   "configured", "queued",
-                   "sending", "receiving",
-                   "completed", "aborted",
-                   "timeout", "failed"
-                   ],
-  defaultValue   : "configured"
-});
-/*
-  Response type of request.
-
-  The response type is a MIME type, default is text/plain. Other
-  supported MIME types are text/javascript, text/html, application/json,
-  application/xml.
-
-  @see qx.util.Mime
-*/
-qx.OO.addProperty({
-  name           : "responseType",
-  type           : "string",
-  possibleValues : [
-                   qx.util.Mime.TEXT,
-                   qx.util.Mime.JAVASCRIPT, qx.util.Mime.JSON,
-                   qx.util.Mime.XML, qx.util.Mime.HTML
-                   ]
-});
-/*!
-  Number of millieseconds before the request is being timed out.
-
-  If this property is null, the timeout for the request comes is the
-  qx.io.remote.RequestQueue's property defaultTimeout.
-*/
-qx.OO.addProperty({ name : "timeout", type : "number" });
-
-/*!
-  Prohibit request from being cached.
-
-  Setting the value to true adds a parameter "nocache" to the request
-  with a value of the current time. Setting the value to false removes
-  the parameter.
-*/
-qx.OO.addProperty({ name : "prohibitCaching", type : "boolean" });
-/*!
-  Indicate that the request is cross domain.
-
-  A request is cross domain if the request's URL points to a host other
-  than the local host. This switches the concrete implementation that
-  is used for sending the request from qx.io.remote.XmlHttpTransport to
-  qx.io.remote.ScriptTransport, because only the latter can handle cross domain
-  requests.
-*/
-qx.OO.addProperty({ name : "crossDomain", type : "boolean", defaultValue : false });
-/*!
-  Indicate that the request will be used for a file upload.
-
-  The request will be used for a file upload.  This switches the concrete
-  implementation that is used for sending the request from
-  qx.io.remote.XmlHttpTransport to qx.io.remote.IFrameTransport, because only
-  the latter can handle file uploads.
-*/
-qx.OO.addProperty({ name : "fileUpload", type : "boolean", defaultValue : false });
-/*!
-  The transport instance used for the request.
-
-  This is necessary to be able to abort an asynchronous request.
-*/
-qx.OO.addProperty({ name : "transport", type : "object", instance : "qx.io.remote.Exchange" });
-/*!
-  Use Basic HTTP Authentication
-*/
-qx.OO.addProperty({ name : "useBasicHttpAuth", type : "boolean" });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CORE METHODS
----------------------------------------------------------------------------
-*/
-/*!
-  Schedule this request for transport to server.
-
-  The request is added to the singleton class qx.io.remote.RequestQueue's list of
-  pending requests.
-*/
-qx.Proto.send = function() {
-  qx.io.remote.RequestQueue.getInstance().add(this);
-}
-
-/*!
-  Abort sending this request.
-
-  The request is removed from the singleton class qx.io.remote.RequestQueue's
-  list of pending events. If the request haven't been scheduled this
-  method is a noop.
-*/
-qx.Proto.abort = function() {
-  qx.io.remote.RequestQueue.getInstance().abort(this);
-}
-
-qx.Proto.reset = function()
-{
-  switch(this.getState())
-  {
-    case "sending":
-    case "receiving":
-      this.error("Aborting already sent request!");
-      // no break
-
-    case "queued":
-      this.abort();
-      break;
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  STATE ALIASES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.isConfigured = function() {
-  return this.getState() === "configured";
-}
-
-qx.Proto.isQueued = function() {
-  return this.getState() === "queued";
-}
-
-qx.Proto.isSending = function() {
-  return this.getState() === "sending";
-}
-
-qx.Proto.isReceiving = function() {
-  return this.getState() === "receiving";
-}
-
-qx.Proto.isCompleted = function() {
-  return this.getState() === "completed";
-}
-
-qx.Proto.isAborted = function() {
-  return this.getState() === "aborted";
-}
-
-qx.Proto.isTimeout = function() {
-  return this.getState() === "timeout";
-}
-
-/*!
-  Return true if the request is in the failed state
-  ("failed").
-*/
-qx.Proto.isFailed = function() {
-  return this.getState() === "failed";
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onqueued = function(e)
-{
-  // Modify internal state
-  this.setState("queued");
-
-  // Bubbling up
-  this.dispatchEvent(e);
-}
-
-qx.Proto._onsending = function(e)
-{
-  // Modify internal state
-  this.setState("sending");
-
-  // Bubbling up
-  this.dispatchEvent(e);
-}
-
-qx.Proto._onreceiving = function(e)
-{
-  // Modify internal state
-  this.setState("receiving");
-
-  // Bubbling up
-  this.dispatchEvent(e);
-}
-
-qx.Proto._oncompleted = function(e)
-{
-  // Modify internal state
-  this.setState("completed");
-
-  // Bubbling up
-  this.dispatchEvent(e);
-
-  // Automatically dispose after event completion
-  this.dispose();
-}
-
-qx.Proto._onaborted = function(e)
-{
-  // Modify internal state
-  this.setState("aborted");
-
-  // Bubbling up
-  this.dispatchEvent(e);
-
-  // Automatically dispose after event completion
-  this.dispose();
-}
-
-qx.Proto._ontimeout = function(e)
-{
-/*
-  // User's handler can block until timeout.
-  switch(this.getState())
-  {
-    // If we're no longer running...
-    case "completed":
-    case "timeout":
-    case "aborted":
-    case "failed":
-      // then don't bubble up the timeout event
-      return;
-  }
-*/
-
-  // Modify internal state
-  this.setState("timeout");
-
-  // Bubbling up
-  this.dispatchEvent(e);
-
-  // Automatically dispose after event completion
-  this.dispose();
-}
-
-qx.Proto._onfailed = function(e)
-{
-  // Modify internal state
-  this.setState("failed");
-
-  // Bubbling up
-  this.dispatchEvent(e);
-
-  // Automatically dispose after event completion
-  this.dispose();
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyState = function(propValue, propOldValue, propData)
-{
-  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
-    this.debug("State: " + propValue);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyProhibitCaching = function(propValue, propOldValue, propData)
-{
-  propValue ? this.setParameter("nocache", new Date().valueOf()) : this.removeParameter("nocache");
-
-  return true;
-}
-
-qx.Proto._modifyMethod = function(propValue, propOldValue, propData)
-{
-  if (propValue === qx.net.Http.METHOD_POST) {
-    this.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
-  }
-
-  return true;
-}
-
-qx.Proto._modifyResponseType = function(propValue, propOldValue, propData)
-{
-  this.setRequestHeader("X-Qooxdoo-Response-Type", propValue);
-  return true;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  REQUEST HEADER
----------------------------------------------------------------------------
-*/
-/*!
-  Add a request header to the request.
-
-  Example: request.setRequestHeader("Content-Type", qx.util.Mime.HTML)
-*/
-qx.Proto.setRequestHeader = function(vId, vValue) {
-  this._requestHeaders[vId] = vValue;
-}
-
-qx.Proto.removeRequestHeader = function(vId) {
-  delete this._requestHeaders[vId];
-}
-
-qx.Proto.getRequestHeader = function(vId) {
-  return this._requestHeaders[vId] || null;
-}
-
-qx.Proto.getRequestHeaders = function() {
-  return this._requestHeaders;
-}
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PARAMETERS
----------------------------------------------------------------------------
-*/
-/*!
-  Add a parameter to the request.
-
-  @param vId String identifier of the parameter to add.
-  @param vValue Value of parameter. May be a string (for one parameter) or an
-         array of strings (for setting multiple parameter values with the same
-         parameter name).
-*/
-qx.Proto.setParameter = function(vId, vValue) {
-  this._parameters[vId] = vValue;
-}
-
-/*!
-  Remove a parameter from the request.
-
-  @param vId String identifier of the parameter to remove.
-*/
-qx.Proto.removeParameter = function(vId) {
-  delete this._parameters[vId];
-}
-
-/*!
-  Get a parameter in the request.
-
-  @param vId String identifier of the parameter to get.
-*/
-qx.Proto.getParameter = function(vId) {
-  return this._parameters[vId] || null;
-}
-
-/*!
-  Returns an object containg all parameters for the request.
-*/
-qx.Proto.getParameters = function() {
-  return this._parameters;
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  SEQUENCE NUMBER
----------------------------------------------------------------------------
-*/
-
-/*
- * Sequence (id) number of a request, used to associate a response or error
- * with its initiating request.
- */
-qx.io.remote.Request._seqNum = 0;
-
-/**
- * Obtain the sequence (id) number used for this request
- */
-qx.Proto.getSequenceNumber = function() {
-  return this._seqNum;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this._requestHeaders = null;
-  this._parameters = null;
-
-  this.setTransport(null);
-
-  return qx.core.Target.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/RequestQueue.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/RequestQueue.js
deleted file mode 100644 (file)
index 9cf8dac..0000000
+++ /dev/null
@@ -1,409 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-     2006 Derrell Lipman
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Derrell Lipman (derrell)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(io_remote)
-
-************************************************************************ */
-
-/**
- * Handles scheduling of requests to be sent to a server.
- *
- * This class is a singleton and is used by qx.io.remote.Request to schedule its
- * requests. It should not be used directly.
- */
-qx.OO.defineClass("qx.io.remote.RequestQueue", qx.core.Target,
-function()
-{
-  qx.core.Target.call(this);
-
-  this._queue = [];
-  this._active = [];
-
-  this._totalRequests = 0;
-
-  // timeout handling
-  this._timer = new qx.client.Timer(500);
-  this._timer.addEventListener("interval", this._oninterval, this);
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/**
- * @deprecated
- */
-qx.OO.addProperty({ name : "maxTotalRequests", type : "number" });
-
-/**
- * Maximum number of parallel requests.
- */
-qx.OO.addProperty({ name : "maxConcurrentRequests", type : "number", defaultValue : 3 });
-
-/**
- * Default timeout for remote requests in milliseconds.
- */
-qx.OO.addProperty({ name : "defaultTimeout", type : "number", defaultValue : 5000 });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  QUEUE HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._debug = function()
-{
-  // Debug output
-  var vText = this._active.length + "/" + (this._queue.length+this._active.length);
-
-  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug"))
-  {
-    this.debug("Progress: " + vText);
-    window.status = "Request-Queue Progress: " + vText;
-  }
-}
-
-qx.Proto._check = function()
-{
-  // Debug output
-  this._debug();
-
-  // Check queues and stop timer if not needed anymore
-  if (this._active.length == 0 && this._queue.length == 0) {
-    this._timer.stop();
-  }
-
-  // Checking if enabled
-  if (!this.getEnabled()) {
-    return;
-  }
-
-  // Checking active queue fill
-  if (this._active.length >= this.getMaxConcurrentRequests() || this._queue.length == 0) {
-    return;
-  }
-
-  // Checking number of total requests
-  if (this.getMaxTotalRequests() != null && this._totalRequests >= this.getMaxTotalRequests()) {
-    return;
-  }
-
-  var vRequest = this._queue.shift();
-  var vTransport = new qx.io.remote.Exchange(vRequest);
-
-  // Increment counter
-  this._totalRequests++;
-
-  // Add to active queue
-  this._active.push(vTransport);
-
-  // Debug output
-  this._debug();
-
-  // Establish event connection between qx.io.remote.Exchange instance and qx.io.remote.Request
-  vTransport.addEventListener("sending", vRequest._onsending, vRequest);
-  vTransport.addEventListener("receiving", vRequest._onreceiving, vRequest);
-  vTransport.addEventListener("completed", vRequest._oncompleted, vRequest);
-  vTransport.addEventListener("aborted", vRequest._onaborted, vRequest);
-  vTransport.addEventListener("timeout", vRequest._ontimeout, vRequest);
-  vTransport.addEventListener("failed", vRequest._onfailed, vRequest);
-
-  // Establish event connection between qx.io.remote.Exchange and me.
-  vTransport.addEventListener("sending", this._onsending, this);
-  vTransport.addEventListener("completed", this._oncompleted, this);
-  vTransport.addEventListener("aborted", this._oncompleted, this);
-  vTransport.addEventListener("timeout", this._oncompleted, this);
-  vTransport.addEventListener("failed", this._oncompleted, this);
-
-  // Store send timestamp
-  vTransport._start = (new Date).valueOf();
-
-  // Send
-  vTransport.send();
-
-  // Retry
-  if (this._queue.length > 0) {
-    this._check();
-  }
-}
-
-qx.Proto._remove = function(vTransport)
-{
-  var vRequest = vTransport.getRequest();
-
-  // Destruct event connection between qx.io.remote.Exchange instance and qx.io.remote.Request
-  vTransport.removeEventListener("sending", vRequest._onsending, vRequest);
-  vTransport.removeEventListener("receiving", vRequest._onreceiving, vRequest);
-  vTransport.removeEventListener("completed", vRequest._oncompleted, vRequest);
-  vTransport.removeEventListener("aborted", vRequest._onaborted, vRequest);
-  vTransport.removeEventListener("timeout", vRequest._ontimeout, vRequest);
-  vTransport.removeEventListener("failed", vRequest._onfailed, vRequest);
-
-  // Destruct event connection between qx.io.remote.Exchange and me.
-  vTransport.removeEventListener("sending", this._onsending, this);
-  vTransport.removeEventListener("completed", this._oncompleted, this);
-  vTransport.removeEventListener("aborted", this._oncompleted, this);
-  vTransport.removeEventListener("timeout", this._oncompleted, this);
-  vTransport.removeEventListener("failed", this._oncompleted, this);
-
-  // Remove from active transports
-  qx.lang.Array.remove(this._active, vTransport);
-
-  // Dispose transport object
-  vTransport.dispose();
-
-  // Check again
-  this._check();
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._activeCount = 0;
-
-qx.Proto._onsending = function(e)
-{
-  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug"))
-  {
-    this._activeCount++;
-    e.getTarget()._counted = true;
-
-    this.debug("ActiveCount: " + this._activeCount);
-  }
-}
-
-qx.Proto._oncompleted = function(e)
-{
-  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug"))
-  {
-    if (e.getTarget()._counted)
-    {
-      this._activeCount--;
-      this.debug("ActiveCount: " + this._activeCount);
-    }
-  }
-
-  this._remove(e.getTarget());
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  TIMEOUT HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._oninterval = function(e)
-{
-  var vActive = this._active;
-
-  if (vActive.length == 0) {
-    return;
-  }
-
-  var vCurrent = (new Date).valueOf();
-  var vTransport;
-  var vRequest;
-  var vDefaultTimeout = this.getDefaultTimeout();
-  var vTimeout;
-  var vTime;
-
-  for (var i=vActive.length-1; i>=0; i--)
-  {
-    vTransport = vActive[i];
-    vRequest = vTransport.getRequest();
-    if (vRequest.isAsynchronous()) {
-      vTimeout = vRequest.getTimeout();
-
-      // if timer is disabled...
-      if (vTimeout == 0) {
-        // then ignore it.
-        continue;
-      }
-
-      if (vTimeout == null) {
-        vTimeout = vDefaultTimeout;
-      }
-
-      vTime = vCurrent - vTransport._start;
-
-      if (vTime > vTimeout)
-      {
-        this.warn("Timeout: transport " + vTransport.toHashCode());
-        this.warn(vTime + "ms > " + vTimeout + "ms");
-        vTransport.timeout();
-      }
-    }
-  }
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
-{
-  if (propValue) {
-    this._check();
-  }
-
-  this._timer.setEnabled(propValue);
-
-  return true;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CORE METHODS
----------------------------------------------------------------------------
-*/
-/*!
-  Add the request to the pending requests queue.
-*/
-qx.Proto.add = function(vRequest)
-{
-  vRequest.setState("queued");
-
-  this._queue.push(vRequest);
-  this._check();
-
-  if (this.getEnabled()) {
-    this._timer.start();
-  }
-}
-
-/*!
-  Remove the request from the pending requests queue.
-
-  The underlying transport of the request is forced into the aborted
-  state ("aborted") and listeners of the "aborted"
-  signal are notified about the event. If the request isn't in the
-  pending requests queue, this method is a noop.
-*/
-qx.Proto.abort = function(vRequest)
-{
-  var vTransport = vRequest.getTransport();
-
-  if (vTransport)
-  {
-    vTransport.abort();
-  }
-  else if (qx.lang.Array.contains(this._queue, vRequest))
-  {
-    qx.lang.Array.remove(this._queue, vRequest);
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-/**
- * Disposer
- */
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  if (this._active)
-  {
-    for (var i=0, a=this._active, l=a.length; i<l; i++) {
-      this._remove(a[i]);
-    }
-
-    this._active = null;
-  }
-
-  if (this._timer)
-  {
-    this._timer.removeEventListener("interval", this._oninterval, this);
-    this._timer = null;
-  }
-
-  this._queue = null;
-
-  return qx.core.Target.prototype.dispose.call(this);
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/Response.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/Response.js
deleted file mode 100644 (file)
index 7668c92..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(io_remote)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.io.remote.Response", qx.core.Target,
-function() {
-  qx.core.Target.call(this);
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.addProperty({ name : "state", type : "number" });
-/*!
-  Status code of the response.
-*/
-qx.OO.addProperty({ name : "statusCode", type : "number" });
-qx.OO.addProperty({ name : "content" });
-qx.OO.addProperty({ name : "responseHeaders", type : "object" });
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIERS
----------------------------------------------------------------------------
-*/
-
-/*
-qx.Proto._modifyResponseHeaders = function(propValue, propOldValue, propData)
-{
-  for (vKey in propValue) {
-    this.debug("R-Header: " + vKey + "=" + propValue[vKey]);
-  }
-
-  return true;
-}
-*/
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  USER METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getResponseHeader = function(vHeader)
-{
-  var vAll = this.getResponseHeaders();
-  if (vAll) {
-    return vAll[vHeader] || null;
-  }
-
-  return null;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  return qx.core.Target.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/Rpc.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/Rpc.js
deleted file mode 100644 (file)
index 88fe2f4..0000000
+++ /dev/null
@@ -1,581 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-     2006 Derrell Lipman
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Andreas Junghans (lucidcake)
-     * Derrell Lipman (derrell)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(io_remote)
-
-************************************************************************ */
-
-
-/**
- * Provides a Remote Procedure Call (RPC) implementation.
- *
- * Each instance of this class represents a "Service". These services can
- * correspond to various concepts on the server side (depending on the
- * programming language/environment being used), but usually, a service means
- * a class on the server.
- *
- * In case multiple instances of the same service are needed, they can be
- * distinguished by ids. If such an id is specified, the server routes all
- * calls to a service that have the same id to the same server-side instance.
- *
- * When calling a server-side method, the parameters and return values are
- * converted automatically. Supported types are int (and Integer), double
- * (and Double), String, Date, Map, and JavaBeans. Beans must habe a default
- * constructor on the server side and are represented by simple JavaScript
- * objects on the client side (used as associative arrays with keys matching
- * the server-side properties). Beans can also be nested, but be careful to not
- * create circular references! There are no checks to detect these (which would
- * be expensive), so you as the user are responsible for avoiding them.
- *
- * @param url {String}            identifies the url where the service
- *                                      is found.  Note that if the url is to
- *                                      a domain (server) other than where the
- *                                      qooxdoo script came from, i.e. it is
- *                                      cross-domain, then you must also call
- *                                      the setCrossDomain(true) method to
- *                                      enable the ScriptTransport instead of
- *                                      the XmlHttpTransport, since the latter
- *                                      can not handle cross-domain requests.
- *
- * @param serviceName {String}    identifies the service. For the Java
- *                                      implementation, this is the fully
- *                                      qualified name of the class that offers
- *                                      the service methods
- *                                      (e.g. "my.pkg.MyService").
- *
- * @event completed (qx.event.type.DataEvent)
- * @event failed (qx.event.type.DataEvent)
- * @event timeout (qx.event.type.DataEvent)
- * @event aborted (qx.event.type.DataEvent)
- */
-
-qx.OO.defineClass("qx.io.remote.Rpc", qx.core.Target,
-function(url, serviceName)
-{
-  qx.core.Target.call(this);
-
-  this.setUrl(url);
-  if (serviceName != null) {
-    this.setServiceName(serviceName);
-  }
-  this._previousServerSuffix = null;
-  this._currentServerSuffix = null;
-  if (qx.core.ServerSettings) {
-    this._currentServerSuffix = qx.core.ServerSettings.serverPathSuffix;
-  }
-});
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/**
-  The timeout for asynchronous calls in milliseconds.
- */
-qx.OO.addProperty({ name : "timeout", type : "number" });
-
-/**
-  Indicate that the request is cross domain.
-
-  A request is cross domain if the request's URL points to a host other
-  than the local host. This switches the concrete implementation that
-  is used for sending the request from qx.io.remote.XmlHttpTransport to
-  qx.io.remote.ScriptTransport because only the latter can handle cross domain
-  requests.
-*/
-qx.OO.addProperty({ name : "crossDomain", type : "boolean", defaultValue : false });
-
-/**
-  The URL at which the service is located.
-*/
-qx.OO.addProperty({ name : "url", type : "string", defaultValue : null });
-
-/**
-  The service name.
-*/
-qx.OO.addProperty({ name : "serviceName", type : "string", defaultValue : null });
-
-/**
-  Data sent as "out of band" data in the request to the server.  The format of
-  the data is opaque to RPC and may be recognized only by particular servers
-  It is up to the server to decide what to do with it: whether to ignore it,
-  handle it locally before calling the specified method, or pass it on to the
-  method.  This server data is not sent to the server if it has been set to
-  'undefined'.
-*/
-qx.OO.addProperty({ name : "serverData", type : "object", defaultValue : undefined });
-
-/**
-  Username to use for HTTP authentication. Null if HTTP authentication
-  is not used.
-*/
-qx.OO.addProperty({ name : "username", type : "string" });
-
-/**
-  Password to use for HTTP authentication. Null if HTTP authentication
-  is not used.
-*/
-qx.OO.addProperty({ name : "password", type : "string" });
-
-/**
-  Use Basic HTTP Authentication
-*/
-qx.OO.addProperty({ name : "useBasicHttpAuth", type : "boolean" });
-
-/**
-   Origins of errors
-*/
-qx.io.remote.Rpc.origin =
-{
-  server      : 1,
-  application : 2,
-  transport   : 3,
-  local       : 4
-}
-
-/**
-   Locally-detected errors
-*/
-qx.io.remote.Rpc.localError =
-{
-  timeout     : 1,
-  abort       : 2
-}
-
-
-/*
----------------------------------------------------------------------------
-  CORE METHODS
----------------------------------------------------------------------------
-*/
-
-/* callType: 0 = sync, 1 = async with handler, 2 = async event listeners */
-/**
- * Internal RPC call method
- *
- * @param args {Array} array of arguments
- * @param callType {Integer} 0 = sync, 1 = async with handler, 2 = async event listeners
- * @param refreshSession {Boolean} whether a new session should be requested
- */
-qx.Proto._callInternal = function(args, callType, refreshSession) {
-  var self = this;
-  var offset = (callType == 0 ? 0 : 1)
-  var whichMethod = (refreshSession ? "refreshSession" : args[offset]);
-  var handler = args[0];
-  var argsArray = [];
-  var eventTarget = this;
-
-  for (var i = offset + 1; i < args.length; ++i) {
-    argsArray.push(args[i]);
-  }
-  var req = new qx.io.remote.Request(this.getUrl(),
-                                           qx.net.Http.METHOD_POST,
-                                           qx.util.Mime.JSON);
-  var requestObject = {
-    "service": (refreshSession ? null : this.getServiceName()),
-    "method": whichMethod,
-    "id": req.getSequenceNumber(),
-    "params": argsArray
-    // additional field 'server_data' optionally included, below
-  }
-
-  // See if there's any out-of-band data to be sent to the server
-  var serverData = this.getServerData();
-  if (serverData !== undefined) {
-    // There is.  Send it.
-    requestObject.server_data = serverData;
-  }
-
-  req.setCrossDomain(this.getCrossDomain());
-
-  if (this.getUsername()) {
-    req.setUseBasicHttpAuth(this.getUseBasicHttpAuth());
-    req.setUsername(this.getUsername());
-    req.setPassword(this.getPassword());
-  }
-
-  req.setTimeout(this.getTimeout());
-  var ex = null;
-  var id = null;
-  var result = null;
-
-  var handleRequestFinished = function(eventType, eventTarget) {
-    switch(callType)
-    {
-    case 0:                     // sync
-      break;
-
-    case 1:                     // async with handler function
-      handler(result, ex, id);
-      break;
-
-    case 2:                     // async with event listeners
-      // Dispatch the event to our listeners.
-      if (! ex) {
-        eventTarget.createDispatchDataEvent(eventType, result);
-      } else {
-        // Add the id to the exception
-        ex.id = id;
-
-        if (args[0]) {          // coalesce
-          // They requested that we coalesce all failure types to "failed"
-          eventTarget.createDispatchDataEvent("failed", ex);
-        } else {
-          // No coalese so use original event type
-          eventTarget.createDispatchDataEvent(eventType, ex);
-        }
-      }
-    }
-  }
-
-  var addToStringToObject = function(obj) {
-    obj.toString = function() {
-      switch(obj.origin)
-      {
-      case qx.io.remote.Rpc.origin.server:
-        return "Server error " + obj.code + ": " + obj.message;
-      case qx.io.remote.Rpc.origin.application:
-        return "Application error " + obj.code + ": " + obj.message;
-      case qx.io.remote.Rpc.origin.transport:
-        return "Transport error " + obj.code + ": " + obj.message;
-      case qx.io.remote.Rpc.origin.local:
-        return "Local error " + obj.code + ": " + obj.message;
-      default:
-        return "UNEXPECTED origin " + obj.origin + " error " + obj.code + ": " + obj.message;
-      }
-    }
-  }
-
-  var makeException = function(origin, code, message) {
-    var ex = new Object();
-
-    ex.origin = origin;
-    ex.code = code;
-    ex.message = message;
-    addToStringToObject(ex);
-
-    return ex;
-  }
-
-  req.addEventListener("failed", function(evt) {
-    var code = evt.getData().getStatusCode();
-    ex = makeException(qx.io.remote.Rpc.origin.transport,
-                       code,
-                       qx.io.remote.Exchange.statusCodeToString(code));
-    id = this.getSequenceNumber();
-    handleRequestFinished("failed", eventTarget);
-  });
-  req.addEventListener("timeout", function(evt) {
-    ex = makeException(qx.io.remote.Rpc.origin.local,
-                       qx.io.remote.Rpc.localError.timeout,
-                       "Local time-out expired");
-    id = this.getSequenceNumber();
-    handleRequestFinished("timeout", eventTarget);
-  });
-  req.addEventListener("aborted", function(evt) {
-    ex = makeException(qx.io.remote.Rpc.origin.local,
-                       qx.io.remote.Rpc.localError.abort,
-                       "Aborted");
-    id = this.getSequenceNumber();
-    handleRequestFinished("aborted", eventTarget);
-  });
-  req.addEventListener("completed", function(evt) {
-    result = evt.getData().getContent();
-    id = result["id"];
-    if (id != this.getSequenceNumber()) {
-      this.warn("Received id (" + id + ") does not match requested id (" + this.getSequenceNumber() + ")!");
-    }
-    var exTest = result["error"];
-    if (exTest != null) {
-      result = null;
-      addToStringToObject(exTest);
-      ex = exTest;
-    } else {
-      result = result["result"];
-      if (refreshSession) {
-        result = eval("(" + result + ")");
-        var newSuffix = qx.core.ServerSettings.serverPathSuffix;
-        if (self._currentServerSuffix != newSuffix) {
-          self._previousServerSuffix = self._currentServerSuffix;
-          self._currentServerSuffix = newSuffix;
-        }
-        self.setUrl(self.fixUrl(self.getUrl()));
-      }
-    }
-    handleRequestFinished("completed", eventTarget);
-  });
-  req.setData(qx.io.Json.stringify(requestObject));
-  req.setAsynchronous(callType > 0);
-
-  if (req.getCrossDomain()) {
-    // Our choice here has no effect anyway.  This is purely informational.
-    req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
-  } else {
-    // When not cross-domain, set type to text/json
-    req.setRequestHeader("Content-Type", qx.util.Mime.JSON);
-  }
-
-  req.send();
-
-  if (callType == 0) {
-      if (ex != null) {
-        var error = new Error(ex.toString());
-        error.rpcdetails = ex;
-        throw error;
-      }
-      return result;
-  } else {
-    return req;
-  }
-}
-
-
-/**
- * Helper method to rewrite a URL with a stale session id (so that it includes
- * the correct session id afterwards).
- *
- * @param url {String}        the URL to examine.
- *
- * @return {String}            the (possibly re-written) URL.
- */
-
-qx.Proto.fixUrl = function(url) {
-  if (this._previousServerSuffix == null || this._currentServerSuffix == null ||
-    this._previousServerSuffix == "" ||
-    this._previousServerSuffix == this._currentServerSuffix) {
-    return url;
-  }
-  var index = url.indexOf(this._previousServerSuffix);
-  if (index == -1) {
-    return url;
-  }
-  return url.substring(0, index) + this._currentServerSuffix +
-         url.substring(index + this._previousServerSuffix.length);
-};
-
-
-/**
- * Makes a synchronous server call. The method arguments (if any) follow
- * after the method name (as normal JavaScript arguments, separated by commas,
- * not as an array).
- * <p>
- * If a problem occurs when making the call, an exception is thrown.
- * </p>
- * <p>
- * WARNING.  With some browsers, the synchronous interface
- * causes the browser to hang while awaiting a response!  If the server
- * decides to pause for a minute or two, your browser may do nothing
- * (including refreshing following window changes) until the response is
- * received.  Instead, use the asynchronous interface.
- * </p>
- * <p>
- * YOU HAVE BEEN WARNED.
- * </p>
- *
- * @param methodName {String}   the name of the method to call.
- *
- * @return      {var}                 the result returned by the server.
- */
-
-qx.Proto.callSync = function(methodName) {
-  return this._callInternal(arguments, 0);
-}
-
-
-/**
- * Makes an asynchronous server call. The method arguments (if any) follow
- * after the method name (as normal JavaScript arguments, separated by commas,
- * not as an array).
- * <p>
- * When an answer from the server arrives, the <code>handler</code> function
- * is called with the result of the call as the first,  an exception as the
- * second parameter, and the id (aka sequence number) of the invoking request
- * as the third parameter. If the call was successful, the second parameter is
- * <code>null</code>. If there was a problem, the second parameter contains an
- * exception, and the first one is <code>null</code>.
- * </p>
- * <p>
- * The return value of this method is a call reference that you can store if
- * you want to abort the request later on. This value should be treated as
- * opaque and can change completely in the future! The only thing you can rely
- * on is that the <code>abort</code> method will accept this reference and
- * that you can retrieve the sequence number of the request by invoking the
- * getSequenceNumber() method (see below).
- * </p>
- * <p>
- * If a specific method is being called, asynchronously, a number of times in
- * succession, the getSequenceNumber() method may be used to disambiguate
- * which request a response corresponds to.  The sequence number value is a
- * value which increments with each request.)
- * </p>
- *
- * @param       handler {Function}    the callback function.
- *
- * @param methodName {String}   the name of the method to call.
- *
- * @return      {var}                 the method call reference.
- */
-
-qx.Proto.callAsync = function(handler, methodName) {
-  return this._callInternal(arguments, 1);
-}
-
-
-/**
- * Makes an asynchronous server call and dispatch an event upon completion or
- * failure. The method arguments (if any) follow after the method name (as
- * normal JavaScript arguments, separated by commas, not as an array).
- * <p>
- * When an answer from the server arrives (or fails to arrive on time), if an
- * exception occurred, a "failed", "timeout" or "aborted" event, as
- * appropriate, is dispatched to any waiting event listeners.  If no exception
- * occurred, a "completed" event is dispatched.
- * </p>
- * <p>
- * When a "failed", "timeout" or "aborted" event is dispatched, the event data
- * contains an object with the properties 'origin', 'code', 'message' and
- * 'id'.  The object has a toString() function which may be called to convert
- * the exception to a string.
- * </p>
- * <p>
- * When a "completed" event is dispatched, the event data contains the
- * JSON-RPC result.
- * </p>
- * <p>
- * The return value of this method is a call reference that you can store if
- * you want to abort the request later on. This value should be treated as
- * opaque and can change completely in the future! The only thing you can rely
- * on is that the <code>abort</code> method will accept this reference and
- * that you can retrieve the sequence number of the request by invoking the
- * getSequenceNumber() method (see below).
- * </p>
- * <p>
- * If a specific method is being called, asynchronously, a number of times in
- * succession, the getSequenceNumber() method may be used to disambiguate
- * which request a response corresponds to.  The sequence number value is a
- * value which increments with each request.)
- * </p>
- *
- * @param coalesce {Boolean}    coalesce all failure types ("failed",
- *                                    "timeout", and "aborted") to "failed".
- *                                    This is reasonable in many cases, as
- *                                    the provided exception contains adequate
- *                                    disambiguating information.
- *
- * @param methodName {String}   the name of the method to call.
- *
- * @return {var}                 the method call reference.
- */
-
-qx.Proto.callAsyncListeners = function(coalesce, methodName) {
-  return this._callInternal(arguments, 2);
-}
-
-
-/**
- * Refreshes a server session by retrieving the session id again from the
- * server.
- * <p>
- * The specified handler function is called when the refresh is complete. The
- * first parameter can be <code>true</code> (indicating that a refresh either
- * wasn't necessary at this time or it was successful) or <code>false</code>
- * (indicating that a refresh would have been necessary but can't be performed
- * because the server backend doesn't support it). If there is a non-null
- * second parameter, it's an exception indicating that there was an error when
- * refreshing the session.
- * </p>
- *
- * @param   handler {Function}      a callback function that is called when the
- *                                  refresh is complete (or failed).
- */
-
-qx.Proto.refreshSession = function(handler) {
-  if (this.getCrossDomain()) {
-    if (qx.core.ServerSettings && qx.core.ServerSettings.serverPathSuffix) {
-      var timeDiff = (new Date()).getTime() - qx.core.ServerSettings.lastSessionRefresh;
-      if (timeDiff/1000 > (qx.core.ServerSettings.sessionTimeoutInSeconds - 30)) {
-        //this.info("refreshing session");
-        this._callInternal([handler], 1, true);
-      } else {
-        handler(true);    // session refresh was OK (in this case: not needed)
-      }
-    } else {
-      handler(false);   // no refresh possible, but would be necessary
-    }
-  } else {
-    handler(true);  // session refresh was OK (in this case: not needed)
-  }
-}
-
-
-/**
- * Aborts an asynchronous server call. Consequently, the callback function
- * provided to <code>callAsync</code> or <code>callAsyncListeners</code> will
- * be called with an exception.
- *
- * @param       opaqueCallRef {var}     the call reference as returned by
- *                                      <code>callAsync</code> or
- *                                      <code>callAsyncListeners</code>
- */
-
-qx.Proto.abort = function(opaqueCallRef) {
-  opaqueCallRef.abort();
-}
-
-
-/**
- * Creates an URL for talking to a local service. A local service is one that
- * lives in the same application as the page calling the service. For backends
- * that don't support this auto-generation, this method returns null.
- *
- * @param instanceId {String ? null}    an optional identifier for the
- *                                          server side instance that should be
- *                                          used. All calls to the same service
- *                                          with the same instance id are
- *                                          routed to the same object instance
- *                                          on the server. The instance id can
- *                                          also be used to provide additional
- *                                          data for the service instantiation
- *                                          on the server.
- *
- * @return {String}                    the url.
- */
-
-qx.Class.makeServerURL = function(instanceId) {
-  var retVal = null;
-  if (qx.core.ServerSettings) {
-    retVal = qx.core.ServerSettings.serverPathPrefix + "/.qxrpc" +
-             qx.core.ServerSettings.serverPathSuffix;
-    if (instanceId != null) {
-      retVal += "?instanceId=" + instanceId;
-    }
-  }
-  return retVal;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/ScriptTransport.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/ScriptTransport.js
deleted file mode 100644 (file)
index 40fe0dc..0000000
+++ /dev/null
@@ -1,361 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-     2006 Derrell Lipman
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Derrell Lipman (derrell)
-     * Andreas Junghans (lucidcake)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(io_remote)
-#require(qx.io.remote.Exchange)
-
-************************************************************************ */
-
-/*!
-  Transports requests to a server using dynamic script tags.
-
-  This class should not be used directly by client programmers.
- */
-qx.OO.defineClass("qx.io.remote.ScriptTransport", qx.io.remote.AbstractRemoteTransport,
-function()
-{
-  qx.io.remote.AbstractRemoteTransport.call(this);
-
-  var vUniqueId = ++qx.io.remote.ScriptTransport._uniqueId;
-  if (vUniqueId >= 2000000000) {
-    qx.io.remote.ScriptTransport._uniqueId = vUniqueId = 1;
-  }
-
-  this._element = null;
-  this._uniqueId = vUniqueId;
-});
-
-qx.Class._uniqueId = 0;
-qx.Class._instanceRegistry = {};
-qx.Class.ScriptTransport_PREFIX = "_ScriptTransport_";
-qx.Class.ScriptTransport_ID_PARAM = qx.Class.ScriptTransport_PREFIX + "id";
-qx.Class.ScriptTransport_DATA_PARAM = qx.Class.ScriptTransport_PREFIX + "data";
-qx.Proto._lastReadyState = 0;
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CLASS PROPERTIES AND METHODS
----------------------------------------------------------------------------
-*/
-
-// basic registration to qx.io.remote.Exchange
-// the real availability check (activeX stuff and so on) follows at the first real request
-qx.io.remote.Exchange.registerType(qx.io.remote.ScriptTransport, "qx.io.remote.ScriptTransport");
-
-qx.io.remote.ScriptTransport.handles =
-{
-  synchronous : false,
-  asynchronous : true,
-  crossDomain : true,
-  fileUpload: false,
-  responseTypes : [ qx.util.Mime.TEXT, qx.util.Mime.JAVASCRIPT, qx.util.Mime.JSON ]
-}
-
-qx.io.remote.ScriptTransport.isSupported = function() {
-  return true;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  USER METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.send = function()
-{
-  var vUrl = this.getUrl();
-
-
-
-  // --------------------------------------
-  //   Adding parameters
-  // --------------------------------------
-
-  vUrl += (vUrl.indexOf("?") >= 0 ? "&" : "?") + qx.io.remote.ScriptTransport.ScriptTransport_ID_PARAM + "=" + this._uniqueId;
-
-  var vParameters = this.getParameters();
-  var vParametersList = [];
-  for (var vId in vParameters) {
-    if (vId.indexOf(qx.io.remote.ScriptTransport.ScriptTransport_PREFIX) == 0) {
-      this.error("Illegal parameter name. The following prefix is used internally by qooxdoo): " +
-        qx.io.remote.ScriptTransport.ScriptTransport_PREFIX);
-    }
-    var value = vParameters[vId];
-    if (value instanceof Array) {
-      for (var i = 0; i < value.length; i++) {
-        vParametersList.push(encodeURIComponent(vId) + "=" +
-                             encodeURIComponent(value[i]));
-      }
-    } else {
-      vParametersList.push(encodeURIComponent(vId) + "=" +
-                           encodeURIComponent(value));
-    }
-  }
-
-  if (vParametersList.length > 0) {
-    vUrl += "&" + vParametersList.join("&");
-  }
-
-
-
-  // --------------------------------------
-  //   Sending data
-  // --------------------------------------
-
-  vData = this.getData();
-  if (vData != null) {
-    vUrl += "&" + qx.io.remote.ScriptTransport.ScriptTransport_DATA_PARAM + "=" + encodeURIComponent(vData);
-  }
-
-  qx.io.remote.ScriptTransport._instanceRegistry[this._uniqueId] = this;
-  this._element = document.createElement("script");
-  this._element.charset = "utf-8";  // IE needs this (it ignores the
-                                    // encoding from the header sent by the
-                                    // server for dynamic script tags)
-  this._element.src = vUrl;
-
-  document.body.appendChild(this._element);
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT LISTENER
----------------------------------------------------------------------------
-*/
-
-// For reference:
-// http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/readyState_1.asp
-qx.io.remote.ScriptTransport._numericMap =
-{
-  "uninitialized" : 1,
-  "loading" : 2,
-  "loaded" : 2,
-  "interactive" : 3,
-  "complete" : 4
-}
-
-qx.Proto._switchReadyState = function(vReadyState)
-{
-  // Ignoring already stopped requests
-  switch(this.getState())
-  {
-    case "completed":
-    case "aborted":
-    case "failed":
-    case "timeout":
-      this.warn("Ignore Ready State Change");
-      return;
-  }
-
-  // Updating internal state
-  while (this._lastReadyState < vReadyState) {
-    this.setState(qx.io.remote.Exchange._nativeMap[++this._lastReadyState]);
-  }
-}
-qx.Class._requestFinished = function(id, content) {
-  var vInstance = qx.io.remote.ScriptTransport._instanceRegistry[id];
-  if (vInstance == null) {
-    if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
-      this.warn("Request finished for an unknown instance (probably aborted or timed out before)");
-    }
-  } else {
-    vInstance._responseContent = content;
-    vInstance._switchReadyState(qx.io.remote.ScriptTransport._numericMap.complete);
-  }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  REQUEST HEADER SUPPORT
----------------------------------------------------------------------------
-*/
-
-qx.Proto.setRequestHeader = function(vLabel, vValue)
-{
-  // TODO
-  // throw new Error("setRequestHeader is abstract");
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  RESPONSE HEADER SUPPORT
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getResponseHeader = function(vLabel)
-{
-  return null;
-
-  // TODO
-  // this.error("Need implementation", "getResponseHeader");
-}
-
-/*!
-  Provides an hash of all response headers.
-*/
-qx.Proto.getResponseHeaders = function()
-{
-  return {}
-
-  // TODO
-  // throw new Error("getResponseHeaders is abstract");
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  STATUS SUPPORT
----------------------------------------------------------------------------
-*/
-
-/*!
-  Returns the current status code of the request if available or -1 if not.
-*/
-qx.Proto.getStatusCode = function()
-{
-  return 200;
-
-  // TODO
-  // this.error("Need implementation", "getStatusCode");
-}
-
-/*!
-  Provides the status text for the current request if available and null otherwise.
-*/
-qx.Proto.getStatusText = function()
-{
-  return "";
-
-  // TODO
-  // this.error("Need implementation", "getStatusText");
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  RESPONSE DATA SUPPORT
----------------------------------------------------------------------------
-*/
-
-/*!
-  Returns the length of the content as fetched thus far
-*/
-qx.Proto.getFetchedLength = function()
-{
-  return 0;
-
-  // TODO
-  // throw new Error("getFetchedLength is abstract");
-}
-
-qx.Proto.getResponseContent = function()
-{
-  if (this.getState() !== "completed")
-  {
-    if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
-      this.warn("Transfer not complete, ignoring content!");
-    }
-
-    return null;
-  }
-
-  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
-    this.debug("Returning content for responseType: " + this.getResponseType());
-  }
-
-  switch(this.getResponseType())
-  {
-    case qx.util.Mime.TEXT:
-      // server is responsible for using a string as the response
-
-    case qx.util.Mime.JSON:
-    case qx.util.Mime.JAVASCRIPT:
-      return this._responseContent;
-
-    default:
-      this.warn("No valid responseType specified (" + this.getResponseType() + ")!");
-      return null;
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  if (this._element != null)
-  {
-    delete qx.io.remote.ScriptTransport._instanceRegistry[this._uniqueId];
-    document.body.removeChild(this._element);
-    this._element = null;
-  }
-
-  return qx.io.remote.AbstractRemoteTransport.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/XmlHttpTransport.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/io/remote/XmlHttpTransport.js
deleted file mode 100644 (file)
index 6c79e08..0000000
+++ /dev/null
@@ -1,738 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-     2006 Derrell Lipman
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Derrell Lipman (derrell)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(io_remote)
-#require(qx.io.remote.Exchange)
-#require(qx.util.Mime)
-
-************************************************************************ */
-
-/**
- * @event created {qx.event.type.Event}
- * @event configured {qx.event.type.Event}
- * @event sending {qx.event.type.Event}
- * @event receiving {qx.event.type.Event}
- * @event completed {qx.event.type.Event}
- * @event failed {qx.event.type.Event}
- * @event aborted {qx.event.type.Event}
- * @event timeout {qx.event.type.Event}
- */
-qx.OO.defineClass("qx.io.remote.XmlHttpTransport",
-                  qx.io.remote.AbstractRemoteTransport,
-function()
-{
-  qx.io.remote.AbstractRemoteTransport.call(this);
-
-  this._req = qx.io.remote.XmlHttpTransport.createRequestObject();
-
-  var o = this;
-  this._req.onreadystatechange =
-      function(e) { return o._onreadystatechange(e); }
-});
-
-
-
-
-
-/* ************************************************************************
-   Class data, properties and methods
-************************************************************************ */
-
-// basic registration to qx.io.remote.Exchange
-// the real availability check (activeX stuff and so on) follows at the first real request
-qx.io.remote.Exchange.registerType(qx.io.remote.XmlHttpTransport,
-                                         "qx.io.remote.XmlHttpTransport");
-
-qx.io.remote.XmlHttpTransport.handles =
-{
-  synchronous : true,
-  asynchronous : true,
-  crossDomain : false,
-  fileUpload: false,
-  responseTypes : [
-                    qx.util.Mime.TEXT,
-                    qx.util.Mime.JAVASCRIPT,
-                    qx.util.Mime.JSON,
-                    qx.util.Mime.XML,
-                    qx.util.Mime.HTML
-                  ]
-}
-
-qx.io.remote.XmlHttpTransport.requestObjects = [];
-qx.io.remote.XmlHttpTransport.requestObjectCount = 0;
-
-qx.io.remote.XmlHttpTransport.isSupported = function()
-{
-  return qx.net.HttpRequest.create() != null ? true : false;
-};
-
-qx.io.remote.XmlHttpTransport.createRequestObject = function() {
-  return qx.net.HttpRequest.create();
-}
-
-
-
-
-
-
-/* ************************************************************************
-   Instance data, properties and methods
-************************************************************************ */
-
-/*
----------------------------------------------------------------------------
-  CORE METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._localRequest = false;
-qx.Proto._lastReadyState = 0;
-
-qx.Proto.getRequest = function() {
-  return this._req;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  USER METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.send = function()
-{
-  this._lastReadyState = 0;
-
-  var vRequest = this.getRequest();
-  var vMethod = this.getMethod();
-  var vAsynchronous = this.getAsynchronous();
-  var vUrl = this.getUrl();
-
-
-
-  // --------------------------------------
-  //   Local handling
-  // --------------------------------------
-
-  var vLocalRequest = (qx.core.Client.getInstance().getRunsLocally() &&
-                       !(/^http(s){0,1}\:/.test(vUrl)));
-  this._localRequest = vLocalRequest;
-
-
-  // --------------------------------------
-  //   Adding parameters
-  // --------------------------------------
-
-  var vParameters = this.getParameters();
-  var vParametersList = [];
-  for (var vId in vParameters) {
-    var value = vParameters[vId];
-    if (value instanceof Array) {
-      for (var i = 0; i < value.length; i++) {
-        vParametersList.push(encodeURIComponent(vId) + "=" +
-                             encodeURIComponent(value[i]));
-      }
-    } else {
-      vParametersList.push(encodeURIComponent(vId) + "=" +
-                           encodeURIComponent(value));
-    }
-  }
-
-  if (vParametersList.length > 0) {
-    vUrl += (vUrl.indexOf("?") >= 0
-      ? "&" : "?") + vParametersList.join("&");
-  }
-
-
-  var encode64 = function (input) {
-    var keyStr =
-      "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
-    var output = "";
-    var chr1, chr2, chr3;
-    var enc1, enc2, enc3, enc4;
-    var i = 0;
-
-    do {
-      chr1 = input.charCodeAt(i++);
-      chr2 = input.charCodeAt(i++);
-      chr3 = input.charCodeAt(i++);
-
-      enc1 = chr1 >> 2;
-      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
-      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
-      enc4 = chr3 & 63;
-
-      if (isNaN(chr2)) {
-        enc3 = enc4 = 64;
-      } else if (isNaN(chr3)) {
-        enc4 = 64;
-      }
-
-      output +=
-        keyStr.charAt(enc1) +
-        keyStr.charAt(enc2) +
-        keyStr.charAt(enc3) +
-        keyStr.charAt(enc4);
-
-    } while (i < input.length);
-
-    return output;
-  }
-
-  // --------------------------------------
-  //   Opening connection
-  // --------------------------------------
-
-  if (this.getUsername()) {
-    if (this.getUseBasicHttpAuth()) {
-      vRequest.open(vMethod, vUrl, vAsynchronous);
-      vRequest.setRequestHeader('Authorization',
-                                'Basic ' + encode64(this.getUsername() +
-                                                    ':' +
-                                                    this.getPassword()));
-    } else {
-      vRequest.open(vMethod, vUrl, vAsynchronous,
-                    this.getUsername(), this.getPassword());
-    }
-  } else {
-    vRequest.open(vMethod, vUrl, vAsynchronous);
-  }
-
-
-
-  // --------------------------------------
-  //   Applying request header
-  // --------------------------------------
-
-  // Add a Referer header
-  vRequest.setRequestHeader('Referer', window.location.href);
-
-  var vRequestHeaders = this.getRequestHeaders();
-  for (var vId in vRequestHeaders) {
-    vRequest.setRequestHeader(vId, vRequestHeaders[vId]);
-  }
-
-
-
-  // --------------------------------------
-  //   Sending data
-  // --------------------------------------
-
-  try
-  {
-    vRequest.send(this.getData());
-  }
-  catch(ex)
-  {
-    if (vLocalRequest)
-    {
-      this.failedLocally();
-    }
-    else
-    {
-      this.error("Failed to send data: " + ex, "send");
-      this.failed();
-    }
-
-    return;
-  }
-
-
-
-  // --------------------------------------
-  //   Readystate for sync reqeusts
-  // --------------------------------------
-
-  if (!vAsynchronous) {
-    this._onreadystatechange();
-  }
-}
-
-/*!
-  Force the transport into the failed state
-  ("failed").
-
-  This method should be used only if the requests URI was local
-  access. I.e. it started with "file://".
-*/
-qx.Proto.failedLocally = function()
-{
-  if (this.getState() === "failed") {
-    return;
-  }
-
-  // should only occur on "file://" access
-  this.warn("Could not load from file: " + this.getUrl());
-
-  this.failed();
-}
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onreadystatechange = function(e)
-{
-  // Ignoring already stopped requests
-  switch(this.getState())
-  {
-    case "completed":
-    case "aborted":
-    case "failed":
-    case "timeout":
-      if (qx.Settings.getValueOfClass("qx.io.remote.Exchange", "enableDebug")) {
-        this.warn("Ignore Ready State Change");
-      }
-      return;
-  }
-
-  // Checking status code
-  var vReadyState = this.getReadyState();
-  if (vReadyState == 4) {
-    // The status code is only meaningful when we reach ready state 4.
-    // (Important for Opera since it goes through other states before
-    // reaching 4, and the status code is not valid before 4 is reached.)
-    if (!qx.io.remote.Exchange.wasSuccessful(this.getStatusCode(), vReadyState, this._localRequest)) {
-      return this.failed();
-    }
-  }
-
-  // Updating internal state
-  while (this._lastReadyState < vReadyState) {
-    this.setState(qx.io.remote.Exchange._nativeMap[++this._lastReadyState]);
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  READY STATE
----------------------------------------------------------------------------
-*/
-/*!
-  Get the ready state of this transports request.
-
-  For qx.io.remote.XmlHttpTransports, the ready state is a number between 1 to 4.
-*/
-qx.Proto.getReadyState = function()
-{
-  var vReadyState = null;
-
-  try {
-    vReadyState = this._req.readyState;
-  } catch(ex) {}
-
-  return vReadyState;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  REQUEST HEADER SUPPORT
----------------------------------------------------------------------------
-*/
-/*!
-  Add a request header to this transports request.
-*/
-qx.Proto.setRequestHeader = function(vLabel, vValue) {
-  this._req.setRequestHeader(vLabel, vValue);
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  RESPONSE HEADER SUPPORT
----------------------------------------------------------------------------
-*/
-
-/*!
-  Returns a specific header provided by the server upon sending a request,
-  with header name determined by the argument headerName.
-
-  Only available at readyState 3 and 4 universally and in readyState 2
-  in Gecko.
-*/
-qx.Proto.getResponseHeader = function(vLabel)
-{
-  var vResponseHeader = null;
-
-  try {
-    this.getRequest().getResponseHeader(vLabel) || null;
-  } catch(ex) {}
-
-  return vResponseHeader;
-}
-
-qx.Proto.getStringResponseHeaders = function()
-{
-  var vSourceHeader = null;
-
-  try
-  {
-    var vLoadHeader = this._req.getAllResponseHeaders();
-    if (vLoadHeader) {
-      vSourceHeader = vLoadHeader;
-    }
-  } catch(ex) {}
-
-  return vSourceHeader;
-}
-
-/*!
-  Provides a hash of all response headers.
-*/
-qx.Proto.getResponseHeaders = function()
-{
-  var vSourceHeader = this.getStringResponseHeaders();
-  var vHeader = {};
-
-  if (vSourceHeader)
-  {
-    var vValues = vSourceHeader.split(/[\r\n]+/g);
-
-    for(var i=0, l=vValues.length; i<l; i++)
-    {
-      var vPair = vValues[i].match(/^([^:]+)\s*:\s*(.+)$/i);
-      if(vPair) {
-        vHeader[vPair[1]] = vPair[2];
-      }
-    }
-  }
-
-  return vHeader;
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  STATUS SUPPORT
----------------------------------------------------------------------------
-*/
-
-/*!
-  Returns the current status code of the request if available or -1 if not.
-*/
-qx.Proto.getStatusCode = function()
-{
-  var vStatusCode = -1;
-
-  try {
-    vStatusCode = this.getRequest().status;
-  } catch(ex) {}
-
-  return vStatusCode;
-}
-
-/*!
-  Provides the status text for the current request if available and null
-  otherwise.
-*/
-qx.Proto.getStatusText = function()
-{
-  var vStatusText = "";
-
-  try {
-    vStatusText = this.getRequest().statusText;
-  } catch(ex) {}
-
-  return vStatusText;
-}
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  RESPONSE DATA SUPPORT
----------------------------------------------------------------------------
-*/
-
-/*!
-  Provides the response text from the request when available and null
-  otherwise.  By passing true as the "partial" parameter of this method,
-  incomplete data will be made available to the caller.
-*/
-qx.Proto.getResponseText = function()
-{
-  var vResponseText = null;
-
-  var vStatus = this.getStatusCode();
-  var vReadyState = this.getReadyState();
-  if (qx.io.remote.Exchange.wasSuccessful(vStatus, vReadyState, this._localRequest))
-  {
-    try {
-      vResponseText = this.getRequest().responseText;
-    } catch(ex) {}
-  }
-
-  return vResponseText;
-}
-
-/*!
-  Provides the XML provided by the response if any and null otherwise.  By
-  passing true as the "partial" parameter of this method, incomplete data will
-  be made available to the caller.
-*/
-qx.Proto.getResponseXml = function()
-{
-  var vResponseXML = null;
-
-  var vStatus = this.getStatusCode();
-  var vReadyState = this.getReadyState();
-  if (qx.io.remote.Exchange.wasSuccessful(vStatus, vReadyState, this._localRequest))
-  {
-    try {
-      vResponseXML = this.getRequest().responseXML;
-    } catch(ex) {}
-  }
-
-  // Typical behaviour on file:// on mshtml
-  // Could we check this with something like: /^file\:/.test(path); ?
-  // No browser check here, because it doesn't seem to break other browsers
-  //    * test for this.req.responseXML's objecthood added by *
-  //    * FRM, 20050816                                       *
-  if (typeof vResponseXML == "object" && vResponseXML != null)
-  {
-    if (!vResponseXML.documentElement)
-    {
-      // Clear xml file declaration, this breaks non unicode files (like ones with Umlauts)
-      var s = String(this.getRequest().responseText).replace(/<\?xml[^\?]*\?>/, "");
-      vResponseXML.loadXML(s);
-    };
-    // Re-check if fixed...
-    if (!vResponseXML.documentElement) {
-      throw new Error("Missing Document Element!");
-    };
-
-    if (vResponseXML.documentElement.tagName == "parseerror") {
-      throw new Error("XML-File is not well-formed!");
-    };
-  }
-  else
-  {
-    throw new Error("Response was not a valid xml document [" + this.getRequest().responseText + "]");
-  };
-
-  return vResponseXML;
-}
-
-/*!
-  Returns the length of the content as fetched thus far
-*/
-qx.Proto.getFetchedLength = function()
-{
-  var vText = this.getResponseText();
-  return typeof vText == "string" ? vText.length : 0;
-}
-
-qx.Proto.getResponseContent = function()
-{
-  if (this.getState() !== "completed")
-  {
-    if (qx.Settings.getValueOfClass("qx.io.remote.Exchange",
-                                    "enableDebug")) {
-      this.warn("Transfer not complete, ignoring content!");
-    }
-
-    return null;
-  }
-
-  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange",
-                                  "enableDebug")) {
-    this.debug("Returning content for responseType: " + this.getResponseType());
-  }
-
-  var vText = this.getResponseText();
-
-  switch(this.getResponseType())
-  {
-    case qx.util.Mime.TEXT:
-    case qx.util.Mime.HTML:
-      return vText;
-
-    case qx.util.Mime.JSON:
-      try {
-        return vText && vText.length > 0 ? qx.io.Json.parseQx(vText) : null;
-      } catch(ex) {
-        this.error("Could not execute json: [" + vText + "]", ex);
-        return "<pre>Could not execute json: \n" + vText + "\n</pre>"
-      }
-
-    case qx.util.Mime.JAVASCRIPT:
-      try {
-        return vText && vText.length > 0 ? window.eval(vText) : null;
-      } catch(ex) {
-        return this.error("Could not execute javascript: [" + vText + "]", ex);
-      }
-
-    case qx.util.Mime.XML:
-      return this.getResponseXml();
-
-    default:
-      this.warn("No valid responseType specified (" + this.getResponseType() + ")!");
-      return null;
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyState = function(propValue, propOldValue, propData)
-{
-  if (qx.Settings.getValueOfClass("qx.io.remote.Exchange",
-                                  "enableDebug")) {
-    this.debug("State: " + propValue);
-  }
-
-  switch(propValue)
-  {
-    case "created":
-      this.createDispatchEvent("created");
-      break;
-
-    case "configured":
-      this.createDispatchEvent("configured");
-      break;
-
-    case "sending":
-      this.createDispatchEvent("sending");
-      break;
-
-    case "receiving":
-      this.createDispatchEvent("receiving");
-      break;
-
-    case "completed":
-      this.createDispatchEvent("completed");
-      break;
-
-    case "failed":
-      this.createDispatchEvent("failed");
-      break;
-
-    case "aborted":
-      this.getRequest().abort();
-      this.createDispatchEvent("aborted");
-      break;
-
-    case "timeout":
-      this.getRequest().abort();
-      this.createDispatchEvent("timeout");
-      break;
-  }
-
-  return true;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  var vRequest = this.getRequest();
-
-  if (vRequest)
-  {
-    // Should be right,
-    // but is not compatible to mshtml (throws an exception)
-    if (!qx.core.Client.getInstance().isMshtml()) {
-      vRequest.onreadystatechange = null;
-    }
-
-    // Aborting
-    switch(vRequest.readyState)
-    {
-      case 1:
-      case 2:
-      case 3:
-        vRequest.abort();
-    }
-
-    // Cleanup objects
-    this._req = null;
-  }
-
-  return qx.io.remote.AbstractRemoteTransport.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/lang/Array.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/lang/Array.js
deleted file mode 100644 (file)
index 9110099..0000000
+++ /dev/null
@@ -1,262 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-
-************************************************************************ */
-
-/**
- * Helper functions for arrays.
- *
- * The native JavaScript Array is not modified by this class. However,
- * there are modifications to the native Array in {@link qx.lang.Core} for
- * browsers that do not support certain JavaScript 1.6 features natively .
- *
- * The additions implemented here may be added directly to native Array by
- * a setting in {@link qx.lang.Prototypes}. This feature is not enabled by
- * default.
- *
- * The string/array generics introduced in JavaScript 1.6 are supported by
- * {@link qx.lang.Generics}.
- */
-qx.OO.defineClass("qx.lang.Array");
-
-/**
- * Convert an arguments object into an array
- *
- * @param args {arguments} arguments object
- * @return {Array}
- */
-qx.lang.Array.fromArguments = function(args) {
-  return Array.prototype.slice.call(args, 0);
-};
-
-
-/**
- * Expand shorthand definition to a four element list.
- * This is an utility function for padding/margin and all other shorthand handling.
- *
- * @param input {Array} array with one to four elements
- * @return {Array} array with four elements
- */
-qx.lang.Array.fromShortHand = function(input)
-{
-  var len = input.length;
-
-  if (len > 4 || len == 0) {
-    this.error("Invalid number of arguments!");
-  }
-
-  var result = qx.lang.Array.copy(input);
-
-  // Copy Values (according to the length)
-  switch(len)
-  {
-    case 1:
-      result[1] = result[2] = result[3] = result[0];
-      break;
-
-    case 2:
-      result[2] = result[0];
-      // no break here
-
-    case 3:
-      result[3] = result[1];
-  }
-
-  // Return list with 4 items
-  return result;
-};
-
-
-/**
- * Return a copy of the given array
- *
- * @param arr {Array} the array to copy
- * @return {Array} copy of the array
- */
-qx.lang.Array.copy = function(arr) {
-  return arr.concat();
-};
-
-
-/**
- * Return a copy of the given array
- * The same as {@link qx.lang.Array.copy}
- *
- * @param arr {Array} the array to copy
- * @return {Array} copy of the array
- */
-qx.lang.Array.clone = function(arr) {
-  return arr.concat();
-};
-
-
-/**
- * Return the last element of an array
- *
- * @param arr {Array} the array
- * @return {var} the last element of the array
- */
-qx.lang.Array.getLast = function(arr) {
-  return arr[arr.length-1];
-};
-
-
-/**
- * Return the first element of an array
- *
- * @param arr {Array} the array
- * @return {var} the first element of the array
- */
-qx.lang.Array.getFirst = function(arr) {
-  return arr[0];
-};
-
-
-/**
- * Insert an element at a given position into the array
- *
- * @param arr {Array} the array
- * @param obj {var} the element to insert
- * @param i {Integer} position where to insert the element into the array
- * @return {Array} the array
- */
-qx.lang.Array.insertAt = function(arr, obj, i)
-{
-  arr.splice(i, 0, obj);
-
-  return arr;
-};
-
-
-/**
- * Insert an element into the array before a given second element
- *
- * @param arr {Array} the array
- * @param obj {var} object to be inserted
- * @param obj2 {var} insert obj1 before this object
- * @return {Array} the array
- */
-qx.lang.Array.insertBefore = function(arr, obj, obj2)
-{
-  var i = arr.indexOf(obj2);
-
-  if (i == -1)
-  {
-    arr.push(obj);
-  }
-  else
-  {
-    arr.splice(i, 0, obj);
-  }
-
-  return arr;
-};
-
-
-/**
- * Insert an element into the array after a given second element
- *
- * @param arr {Array} the array
- * @param obj {var} object to be inserted
- * @param obj2 {var} insert obj1 after this object
- * @return {Array} the array
- */
-qx.lang.Array.insertAfter = function(arr, obj, obj2)
-{
-  var i = arr.indexOf(obj2);
-
-  if (i == -1 || i == (arr.length-1))
-  {
-    arr.push(obj);
-  }
-  else
-  {
-    arr.splice(i+1, 0, obj);
-  }
-
-  return arr;
-};
-
-
-/**
- * Remove an element from the array at the given index
- *
- * @param arr {Array} the array
- * @param i {Integer} index of the element to be removed
- * @return {Array} the array with the element removed
- */
-qx.lang.Array.removeAt = function(arr, i) {
-  return arr.splice(i, 1);
-};
-
-
-/**
- * Remmove all elements from the array
- *
- * @param arr {Array} the array
- * @return {Array} empty array
- */
-qx.lang.Array.removeAll = function(arr) {
-  return arr.splice(0, arr.length);
-};
-
-
-/**
- * Append the elements of an array to the array
- *
- * @param arr {Array} the array
- * @param a {Array} the elements of this array will be appended to the array
- */
-qx.lang.Array.append = function(arr, a) {
-  Array.prototype.push.apply(arr, a);
-};
-
-
-/**
- * Remove an element from the array
- *
- * @param arr {Array} the array
- * @param obj {var} element to be removed from the array
- * @return {Array} array with the element removed
- */
-qx.lang.Array.remove = function(arr, obj)
-{
-  var i = arr.indexOf(obj);
-
-  if (i != -1) {
-    return arr.splice(i, 1);
-  }
-};
-
-
-/**
- * Whether the array contains the given element
- *
- * @param arr {Array} the array
- * @param obj {var} object to look for
- * @return {Boolean} whether the array contains the element
- */
-qx.lang.Array.contains = function(arr, obj) {
-  return arr.indexOf(obj) != -1;
-};
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/lang/Core.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/lang/Core.js
deleted file mode 100644 (file)
index e2e5fb0..0000000
+++ /dev/null
@@ -1,430 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-
-************************************************************************ */
-
-/**
- * The intention of this class is to add features to native JavaScript
- * objects so that all browsers operate on a common JavaScript language level
- * (particularly JavaScript 1.6).
- *
- * For reference:
- *
- * * http://www.ecma-international.org/publications/standards/Ecma-262.htm
- * * http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference
- * * http://developer.mozilla.org/en/docs/New_in_JavaScript_1.6
- *
- * The following methods are added if they are not supported natively:
- *
- * * Error.toString()
- * * Array.indexOf()
- * * Array.lastIndexOf()
- * * Array.forEach()
- * * Array.filter()
- * * Array.map()
- * * Array.some()
- * * Array.every()
- * * String.quote()
- */
-qx.OO.defineClass("qx.lang.Core");
-
-
-/*
----------------------------------------------------------------------------
-  FEATURE EXTENSION OF NATIVE ERROR OBJECT
----------------------------------------------------------------------------
-*/
-
-if (!Error.prototype.toString)
-{
-  /**
-   * Some browsers (e.g. Internet Explorer) do not support to stringify
-   * error objects like other browsers usually do. This feature is added to
-   * those browsers.
-   */
-  Error.prototype.toString = function() {
-    return this.message;
-  };
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  FEATURE EXTENSION OF NATIVE ARRAY OBJECT
----------------------------------------------------------------------------
-*/
-
-if (!Array.prototype.indexOf)
-{
-  /**
-   * Returns the first index at which a given element can be found in the array,
-   * or <code>-1</code> if it is not present. It compares <code>searchElement</code> to elements of the Array
-   * using strict equality (the same method used by the <code>===</code>, or
-   * triple-equals, operator).
-   *
-   * Natively supported in Gecko since version 1.8.
-   * http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Objects:Array:indexOf
-   *
-   * @param searchElement {var} Element to locate in the array.
-   * @param fromIndex {Integer} The index at which to begin the search. Defaults to 0, i.e. the whole
-   *   array will be searched. If the index is greater than or equal to the length of the array,
-   *   <code>-1</code> is returned, i.e. the array will not be searched. If negative, it is taken as the
-   *   offset from the end of the array. Note that even when the index is negative, the array is still
-   *   searched from front to back. If the calculated index is less than 0, the whole array will be searched.
-   */
-  Array.prototype.indexOf = function(searchElement, fromIndex)
-  {
-    if (fromIndex == null)
-    {
-      fromIndex = 0;
-    }
-    else if (fromIndex < 0)
-    {
-      fromIndex = Math.max(0, this.length + fromIndex);
-    }
-
-    for (var i=fromIndex; i<this.length; i++)
-    {
-      if (this[i] === searchElement) {
-        return i;
-      }
-    }
-
-    return -1;
-  };
-}
-
-if (!Array.prototype.lastIndexOf)
-{
-  /**
-   * Returns the last index at which a given element can be found in the array, or <code>-1</code>
-   * if it is not present. The array is searched backwards, starting at <code>fromIndex</code>.
-   * It compares <code>searchElement</code> to elements of the Array using strict equality
-   * (the same method used by the <code>===</code>, or triple-equals, operator).
-   *
-   * Natively supported in Gecko since version 1.8.
-   * http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Objects:Array:lastIndexOf
-   *
-   * @param searchElement {var} Element to locate in the array.
-   * @param fromIndex {Integer} The index at which to start searching backwards.
-   *   Defaults to the array's length, i.e. the whole array will be searched. If
-   *   the index is greater than or equal to the length of the array, the whole array
-   *   will be searched. If negative, it is taken as the offset from the end of the
-   *   array. Note that even when the index is negative, the array is still searched
-   *   from back to front. If the calculated index is less than 0, -1 is returned,
-   *   i.e. the array will not be searched.
-   */
-  Array.prototype.lastIndexOf = function(searchElement, fromIndex)
-  {
-    if (fromIndex == null)
-    {
-      fromIndex = this.length-1;
-    }
-    else if (fromIndex < 0)
-    {
-      fromIndex = Math.max(0, this.length + fromIndex);
-    }
-
-    for (var i=fromIndex; i>=0; i--)
-    {
-      if (this[i] === searchElement) {
-        return i;
-      }
-    }
-
-    return -1;
-  };
-}
-
-if (!Array.prototype.forEach)
-{
-  /**
-   * Executes a provided function once per array element.
-   *
-   * <code>forEach</code> executes the provided function (<code>callback</code>) once for each
-   * element present in the array.  <code>callback</code> is invoked only for indexes of the array
-   * which have assigned values; it is not invoked for indexes which have been deleted or which
-   * have never been assigned values.
-   *
-   * <code>callback</code> is invoked with three arguments: the value of the element, the index
-   * of the element, and the Array object being traversed.
-   *
-   * If a <code>obj</code> parameter is provided to <code>forEach</code>, it will be used
-   * as the <code>this</code> for each invocation of the <code>callback</code>.  If it is not
-   * provided, or is <code>null</code>, the global object associated with <code>callback</code>
-   * is used instead.
-   *
-   * <code>forEach</code> does not mutate the array on which it is called.
-   *
-   * The range of elements processed by <code>forEach</code> is set before the first invocation of
-   * <code>callback</code>.  Elements which are appended to the array after the call to
-   * <code>forEach</code> begins will not be visited by <code>callback</code>. If existing elements
-   * of the array are changed, or deleted, their value as passed to <code>callback</code> will be
-   * the value at the time <code>forEach</code> visits them; elements that are deleted are not visited.
-   *
-   * Natively supported in Gecko since version 1.8.
-   * http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Objects:Array:forEach
-   *
-   * @param callback {Function} Function to execute for each element.
-   * @param obj {Object} Object to use as this when executing callback.
-   */
-  Array.prototype.forEach = function(callback, obj)
-  {
-    // The array length should be fixed, like in the native implementation.
-    var l = this.length;
-
-    for (var i=0; i<l; i++) {
-      callback.call(obj, this[i], i, this);
-    }
-  };
-}
-
-if (!Array.prototype.filter)
-{
-  /**
-   * Creates a new array with all elements that pass the test implemented by the provided
-   * function.
-   *
-   * <code>filter</code> calls a provided <code>callback</code> function once for each
-   * element in an array, and constructs a new array of all the values for which
-   * <code>callback</code> returns a true value.  <code>callback</code> is invoked only
-   * for indexes of the array which have assigned values; it is not invoked for indexes
-   * which have been deleted or which have never been assigned values.  Array elements which
-   * do not pass the <code>callback</code> test are simply skipped, and are not included
-   * in the new array.
-   *
-   * <code>callback</code> is invoked with three arguments: the value of the element, the
-   * index of the element, and the Array object being traversed.
-   *
-   * If a <code>obj</code> parameter is provided to <code>filter</code>, it will
-   * be used as the <code>this</code> for each invocation of the <code>callback</code>.
-   * If it is not provided, or is <code>null</code>, the global object associated with
-   * <code>callback</code> is used instead.
-   *
-   * <code>filter</code> does not mutate the array on which it is called. The range of
-   * elements processed by <code>filter</code> is set before the first invocation of
-   * <code>callback</code>. Elements which are appended to the array after the call to
-   * <code>filter</code> begins will not be visited by <code>callback</code>. If existing
-   * elements of the array are changed, or deleted, their value as passed to <code>callback</code>
-   * will be the value at the time <code>filter</code> visits them; elements that are deleted
-   * are not visited.
-   *
-   * Natively supported in Gecko since version 1.8.
-   * http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Objects:Array:filter
-   *
-   * @param callback {Function} Function to test each element of the array.
-   * @param obj {Object} Object to use as <code>this</code> when executing <code>callback</code>.
-   */
-  Array.prototype.filter = function(callback, obj)
-  {
-    // The array length should be fixed, like in the native implementation.
-    var l = this.length;
-    var res = [];
-
-    for (var i=0; i<l; i++)
-    {
-      if (callback.call(obj, this[i], i, this)) {
-        res.push(this[i]);
-      }
-    }
-
-    return res;
-  };
-}
-
-if (!Array.prototype.map)
-{
-  /**
-   * Creates a new array with the results of calling a provided function on every element in this array.
-   *
-   * <code>map</code> calls a provided <code>callback</code> function once for each element in an array,
-   * in order, and constructs a new array from the results.  <code>callback</code> is invoked only for
-   * indexes of the array which have assigned values; it is not invoked for indexes which have been
-   * deleted or which have never been assigned values.
-   *
-   * <code>callback</code> is invoked with three arguments: the value of the element, the index of the
-   * element, and the Array object being traversed.
-   *
-   * If a <code>obj</code> parameter is provided to <code>map</code>, it will be used as the
-   * <code>this</code> for each invocation of the <code>callback</code>. If it is not provided, or is
-   * <code>null</code>, the global object associated with <code>callback</code> is used instead.
-   *
-   * <code>map</code> does not mutate the array on which it is called.
-   *
-   * The range of elements processed by <code>map</code> is set before the first invocation of
-   * <code>callback</code>. Elements which are appended to the array after the call to <code>map</code>
-   * begins will not be visited by <code>callback</code>.  If existing elements of the array are changed,
-   * or deleted, their value as passed to <code>callback</code> will be the value at the time
-   * <code>map</code> visits them; elements that are deleted are not visited.
-   *
-   * Natively supported in Gecko since version 1.8.
-   * http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Objects:Array:map
-   *
-   * @param callback {Function} Function produce an element of the new Array from an element of the current one.
-   * @param obj {Object} Object to use as <code>this</code> when executing <code>callback</code>.
-   */
-  Array.prototype.map = function(callback, obj)
-  {
-    // The array length should be fixed, like in the native implementation.
-    var l = this.length;
-    var res = [];
-
-    for (var i=0; i<l; i++) {
-      res.push(callback.call(obj, this[i], i, this));
-    }
-
-    return res;
-  };
-}
-
-if (!Array.prototype.some)
-{
-  /**
-   * Tests whether some element in the array passes the test implemented by the provided function.
-   *
-   * <code>some</code> executes the <code>callback</code> function once for each element present in
-   * the array until it finds one where <code>callback</code> returns a true value. If such an element
-   * is found, <code>some</code> immediately returns <code>true</code>. Otherwise, <code>some</code>
-   * returns <code>false</code>. <code>callback</code> is invoked only for indexes of the array which
-   * have assigned values; it is not invoked for indexes which have been deleted or which have never
-   * been assigned values.
-   *
-   * <code>callback</code> is invoked with three arguments: the value of the element, the index of the
-   * element, and the Array object being traversed.
-   *
-   * If a <code>obj</code> parameter is provided to <code>some</code>, it will be used as the
-   * <code>this</code> for each invocation of the <code>callback</code>. If it is not provided, or is
-   * <code>null</code>, the global object associated with <code>callback</code> is used instead.
-   *
-   * <code>some</code> does not mutate the array on which it is called.
-   *
-   * The range of elements processed by <code>some</code> is set before the first invocation of
-   * <code>callback</code>.  Elements that are appended to the array after the call to <code>some</code>
-   * begins will not be visited by <code>callback</code>. If an existing, unvisited element of the array
-   * is changed by <code>callback</code>, its value passed to the visiting <code>callback</code> will
-   * be the value at the time that <code>some</code> visits that element's index; elements that are
-   * deleted are not visited.
-   *
-   * Natively supported in Gecko since version 1.8.
-   * http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Objects:Array:some
-   *
-   * @param callback {Function} Function to test for each element.
-   * @param obj {Object} Object to use as <code>this</code> when executing <code>callback</code>.
-   */
-  Array.prototype.some = function(callback, obj)
-  {
-    // The array length should be fixed, like in the native implementation.
-    var l = this.length;
-
-    for (var i=0; i<l; i++)
-    {
-      if (callback.call(obj, this[i], i, this)) {
-        return true;
-      }
-    }
-
-    return false;
-  };
-}
-
-if (!Array.prototype.every)
-{
-  /**
-   * Tests whether all elements in the array pass the test implemented by the provided function.
-   *
-   * <code>every</code> executes the provided <code>callback</code> function once for each element
-   * present in the array until it finds one where <code>callback</code> returns a false value. If
-   * such an element is found, the <code>every</code> method immediately returns <code>false</code>.
-   * Otherwise, if <code>callback</code> returned a true value for all elements, <code>every</code>
-   * will return <code>true</code>.  <code>callback</code> is invoked only for indexes of the array
-   * which have assigned values; it is not invoked for indexes which have been deleted or which have
-   * never been assigned values.
-   *
-   * <code>callback</code> is invoked with three arguments: the value of the element, the index of
-   * the element, and the Array object being traversed.
-   *
-   * If a <code>obj</code> parameter is provided to <code>every</code>, it will be used as
-   * the <code>this</code> for each invocation of the <code>callback</code>. If it is not provided,
-   * or is <code>null</code>, the global object associated with <code>callback</code> is used instead.
-   *
-   * <code>every</code> does not mutate the array on which it is called. The range of elements processed
-   * by <code>every</code> is set before the first invocation of <code>callback</code>. Elements which
-   * are appended to the array after the call to <code>every</code> begins will not be visited by
-   * <code>callback</code>.  If existing elements of the array are changed, their value as passed
-   * to <code>callback</code> will be the value at the time <code>every</code> visits them; elements
-   * that are deleted are not visited.
-   *
-   * Natively supported in Gecko since version 1.8.
-   * http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Objects:Array:every
-   *
-   * @param callback {Function} Function to test for each element.
-   * @param obj {Object} Object to use as <code>this</code> when executing <code>callback</code>.
-   */
-  Array.prototype.every = function (callback, obj)
-  {
-    // The array length should be fixed, like in the native implementation.
-    var l = this.length;
-
-    for (var i=0; i<l; i++)
-    {
-      if (!callback.call(obj, this[i], i, this)) {
-        return false;
-      }
-    }
-
-    return true;
-  };
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  FEATURE EXTENSION OF NATIVE STRING OBJECT
----------------------------------------------------------------------------
-*/
-
-if (!String.prototype.quote)
-{
-  /**
-   * Surrounds the string with double quotes and escapes all double quotes
-   * and backslashes within the string.
-   *
-   * Note: Not part of ECMAScript Language Specification ECMA-262
-   *       3rd edition (December 1999), but implemented by Gecko:
-   *       http://lxr.mozilla.org/seamonkey/source/js/src/jsstr.c
-   */
-  String.prototype.quote = function () {
-    return '"' + this.replace(/\\/g, "\\\\").replace(/\"/g, "\\\"") + '"';
-  };
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/lang/Function.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/lang/Function.js
deleted file mode 100644 (file)
index efeccbd..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-
-************************************************************************ */
-
-
-/**
- * Collection of helper methods operatinf on functions.
- */
-qx.OO.defineClass("qx.lang.Function");
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  SIMPLE RETURN METHODS
----------------------------------------------------------------------------
-*/
-
-/**
- * Simply return true.
- *
- * @return {Boolean} Always returns true.
- */
-qx.lang.Function.returnTrue = function() {
-  return true;
-};
-
-
-/**
- * Simply return false.
- *
- * @return {Boolean} Always returns false.
- */
-
-qx.lang.Function.returnFalse = function() {
-  return false;
-};
-
-
-/**
- * Simply return null.
- *
- * @return {var} Always returns null.
- */
-
-qx.lang.Function.returnNull = function() {
-  return null;
-};
-
-
-/**
- * Return "this".
- *
- * @return {Object} Always returns "this".
- */
-qx.lang.Function.returnThis = function() {
-  return this;
-};
-
-
-/**
- * Used to return a refernce to an singleton. Classes which should act as singletons can use this
- * function to implement the "getInstance" methods.
- *
- * @returns {Object} Singleton instance of the class this method is bound to.
- */
-qx.lang.Function.returnInstance = function()
-{
-  if (!this._instance)
-  {
-    this._instance = new this;
-
-    /*
-    if (this._instance.debug) {
-      this._instance.debug("Created...");
-    }*/
-  }
-
-  return this._instance;
-};
-
-
-/**
- * Simply return 0.
- *
- * @return {Number} Always returns 0.
- */
-
-qx.lang.Function.returnZero = function() {
-  return 0;
-};
-
-
-/**
- * Simply return a negative index (-1).
- *
- * @return {Number} Always returns -1.
- */
-
-qx.lang.Function.returnNegativeIndex = function() {
-  return -1;
-};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/lang/Generics.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/lang/Generics.js
deleted file mode 100644 (file)
index df590de..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-#require(qx.lang.Core)
-
-************************************************************************ */
-
-/**
- * Support string/array generics as introduced with JavaScript 1.6 for
- * all browsers.
- *
- * http://developer.mozilla.org/en/docs/New_in_JavaScript_1.6#Array_and_String_generics
- *
- * *Array*
- *
- * * join
- * * reverse
- * * sort
- * * push
- * * pop
- * * shift
- * * unshift
- * * splice
- * * concat
- * * slice
- * * indexOf
- * * lastIndexOf
- * * forEach
- * * map
- * * filter
- * * some
- * * every
- *
- * *String*
- *
- * * quote
- * * substring
- * * toLowerCase
- * * toUpperCase
- * * charAt
- * * charCodeAt
- * * indexOf
- * * lastIndexOf
- * * toLocaleLowerCase
- * * toLocaleUpperCase
- * * localeCompare
- * * match
- * * search
- * * replace
- * * split
- * * substr
- * * concat
- * * slice
- */
-qx.OO.defineClass("qx.lang.Generics",
-{
-  map :
-  {
-    "Array" : [
-      "join", "reverse", "sort", "push", "pop", "shift", "unshift",
-      "splice", "concat", "slice", "indexOf", "lastIndexOf", "forEach",
-      "map", "filter", "some", "every"
-    ],
-
-    "String" : [
-      "quote", "substring", "toLowerCase", "toUpperCase", "charAt",
-      "charCodeAt", "indexOf", "lastIndexOf", "toLocaleLowerCase",
-      "toLocaleUpperCase", "localeCompare", "match", "search",
-      "replace", "split", "substr", "concat", "slice"
-    ]
-  },
-
-  /**
-   * Make a method of an object generic and return the generic functions.
-   * The generic function takes as first parameter the object the method operates on.
-   *
-   * TODO: maybe mode this function to qx.lang.Function
-   *
-   * @param obj {Object} the object in which prototype the function is defined.
-   * @param func {String} name of the method to wrap.
-   *
-   * @return {Function} wrapped method. This function takes as first argument an
-   *     instance of obj and as following arguments the arguments of the original method.
-   */
-  _wrap : function(obj, func)
-  {
-    return function(s) {
-      return obj.prototype[func].apply(s, Array.prototype.slice.call(arguments, 1));
-    }
-  },
-
-  /**
-   * Initialize all gernic function defined in JavaScript 1.6.
-   */
-  init : function()
-  {
-    var map = qx.lang.Generics.map;
-
-
-
-    for (var key in map)
-    {
-      var obj = window[key];
-      var arr = map[key];
-
-      for (var i=0, l=arr.length; i<l; i++)
-      {
-        var func = arr[i];
-
-        if (!obj[func]) {
-          obj[func] = qx.lang.Generics._wrap(obj, func);
-        }
-      }
-    }
-  }
-});
-
-qx.lang.Generics.init();
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/lang/Number.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/lang/Number.js
deleted file mode 100644 (file)
index b90fce3..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-/**
- * Helper functions for numbers.
- *
- * The native JavaScript Number is not modified by this class.
- *
- * The additions implemented here may be added directly to the native Number
- * by a setting in {@link qx.lang.Prototypes}. This feature is not enabled by
- * default.
- */
-qx.OO.defineClass("qx.lang.Number");
-
-/**
- * Check whether the number is in a given range
- *
- * @param nr {Number} the number to check
- * @param vmin {Integer} lower bound of the range
- * @param vmax {Integer} upper bound of the range
- * @return {Boolean} whether the number is >= vmin and <= vmax
- */
-qx.lang.Number.isInRange = function(nr, vmin, vmax) {
-  return nr >= vmin && nr <= vmax;
-};
-
-
-/**
- * Check whether the number is between a given range
- *
- * @param nr {Number} the number to check
- * @param vmin {Integer} lower bound of the range
- * @param vmax {Integer} upper bound of the range
- * @return {Boolean} whether the number is > vmin and < vmax
- */
-qx.lang.Number.isBetweenRange = function(nr, vmin, vmax) {
-  return nr > vmin && nr < vmax;
-};
-
-
-/**
- * Limit the nuber to a given range
- *
- * * If the number is greater than the upper bound, the upper bound is returned
- * * If the number is smaller than the lower bound, the lower bound is returned
- * * If the number is in the range, the number is retuned
- *
- * @param nr {Number} the number to limit
- * @param vmin {Integer} lower bound of the range
- * @param vmax {Integer} upper bound of the range
- * @return {Integer} the limited number
- */
-qx.lang.Number.limit = function(nr, vmin, vmax)
-{
-  if (typeof vmax === "number" && nr > vmax)
-  {
-    return vmax;
-  }
-  else if (typeof vmin === "number" && nr < vmin)
-  {
-    return vmin;
-  }
-  else
-  {
-    return nr;
-  }
-};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/lang/Object.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/lang/Object.js
deleted file mode 100644 (file)
index 7b725b1..0000000
+++ /dev/null
@@ -1,219 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-
-************************************************************************ */
-
-/**
- * Helper functions to handle Object as a Hash map.
- */
-qx.OO.defineClass("qx.lang.Object");
-
-/**
- * Check if the hash has any keys
- *
- * @param map {Object} the map to check
- * @return {Boolean} whether the map has any keys
- */
-qx.Class.isEmpty = function(map)
-{
-  for (var s in map) {
-    return false;
-  }
-
-  return true;
-};
-
-
-/**
- * Check whether the number of objects in the maps is at least "lenght"
- *
- * @param map {Object} the map to check
- * @param length {Integer} minimum number of objects in the map
- * @return {Boolean} whether the map contains at least "lenght" objects.
- */
-qx.Class.hasMinLength = function(map, length)
-{
-  var i=0;
-
-  for (var s in map)
-  {
-    if ((++i)>=length) {
-      return true;
-    }
-  }
-
-  return false;
-};
-
-
-/**
- * Get the number of objects in the map
- *
- * @param map {Object} the map
- * @return {Integer} number of objects in the map
- */
-qx.Class.getLength = function(map)
-{
-  var i=0;
-
-  for (var s in map) {
-    i++;
-  }
-
-  return i;
-};
-
-
-/**
- * Get the keys of a map as array
- *
- * @param map {Object} the map
- * @return {Array} array of the keys of the map
- */
-qx.Class.getKeys = function(map)
-{
-  var r = [];
-  for (var s in map) {
-    r.push(s);
-  }
-
-  return r;
-};
-
-
-/**
- * Get the keys of a map as string
- *
- * @param map {Object} the map
- * @return {String} String of the keys of the map
- *     The keys are separated by ", "
- */
-qx.Class.getKeysAsString = function(map) {
-  return qx.lang.Object.getKeys(map).join(", ");
-};
-
-
-/**
- * Get the values of a map as array
- *
- * @param map {Object} the map
- * @return {Array} array of the values of the map
- */
-qx.Class.getValues = function(map)
-{
-  var r = [];
-  for (var s in map) {
-    r.push(map[s]);
-  }
-
-  return r;
-};
-
-
-/**
- * Merge two objects.
- *
- * If the Objects both have the same key, the value of the second object is taken.
- *
- * @param vObjectA {Object} target object
- * @param vObjectB {Object} object to be merged
- * @return {Object} ObjectA with merged values from ObjectB
- */
-qx.Class.mergeWith = function(vObjectA, vObjectB)
-{
-  for (var vKey in vObjectB) {
-    vObjectA[vKey] = vObjectB[vKey];
-  }
-
-  return vObjectA;
-};
-
-
-/**
- * Merge two objects. Existing values will not be overwritten.
- *
- * If the Objects both have the same key, the value of the first object is taken.
- *
- * @param vObjectA {Object} target object
- * @param vObjectB {Object} object to be merged
- * @return {Object} vObjectA with merged values from vObjectB
- */
-qx.Class.carefullyMergeWith = function(vObjectA, vObjectB) {
-  for (var vKey in vObjectB)
-  {
-    if (typeof vObjectA[vKey] === "undefined") {
-      vObjectA[vKey] = vObjectB[vKey];
-    }
-  }
-
-  return vObjectA;
-};
-
-
-/**
- * Merge a number of objects.
- *
- * @param vObjectA {Object} target object
- * @param varargs {Object} variable number of objects to merged with vObjectA
- * @return {Object} vObjectA with merged values from the other objects
- */
-qx.Class.merge = function(vObjectA, varargs)
-{
-  var vLength = arguments.length;
-
-  for (var i=1; i<vLength; i++) {
-    qx.lang.Object.mergeWith(vObjectA, arguments[i]);
-  }
-
-  return vObjectA;
-};
-
-
-/**
- * Return a copy of an Object
- *
- * @param vObject {Object} Object to copy
- * @return {Object} copy of vObject
- */
-qx.Class.copy = function(vObject) {
-  return qx.lang.Object.mergeWith({}, vObject);
-};
-
-
-/**
- * Inverts a Map by exchanging the keys with the values.
- * If the map has the same values for different keys, information will get lost.
- * The values will be converted to Strings using the toString methos.
- *
- * @param vObject {Object} Map to invert
- * @return {Object} inverted Map
- */
-qx.Class.invert = function(vObject) {
-  var result = {};
-  for (var key in vObject) {
-    var value = vObject[key].toString();
-    result[value] = key;
-  }
-  return result;
-}
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/lang/Prototypes.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/lang/Prototypes.js
deleted file mode 100644 (file)
index c16c3aa..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-/**
- * Extend the native JavaScript types Number, String and Array with the
- * feature additions of {@link qx.lang.Number}, {@link qx.lang.String} and
- * {@link qx.lang.Array}, respectively.
- *
- * Important: It is not recommended to modify the native types, as this
- * may lead to incompatibilities with non-qooxdoo code or libraries.
- * Therefore this feature is disabled by default (see default setting
- * "enable"). All classes and features contributed to qooxdoo
- * should work without this feature enabled!
- */
-qx.OO.defineClass("qx.lang.Prototypes");
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFAULT SETTINGS
----------------------------------------------------------------------------
-*/
-
-qx.Settings.setDefault("enable", false);
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROTOTYPES MAPPER
----------------------------------------------------------------------------
-*/
-
-/**
- * Augment the prototype of the native JavaScript objects "String",
- * "Number" and "Array" with the methods defined in the corresponding
- * static classes.
- *
- * @see qx.lang.String
- * @see qx.lang.Number
- * @see qx.lang.Array
- */
-qx.lang.Prototypes.init = function()
-{
-  var key, obj;
-  var objs = [ "String", "Number", "Array" ];
-
-  for (var i=0, len=objs.length; i<len; i++)
-  {
-    obj = objs[i];
-
-    for (key in qx.lang[obj])
-    {
-      window[obj].prototype[key] = (function(key, obj)
-      {
-        return function() {
-          return qx.lang[obj][key].apply(null, Array.prototype.concat.call([this], Array.prototype.slice.call(arguments, 0)));
-        }
-      })(key, obj);
-    }
-  }
-}
-
-if (qx.Settings.getValueOfClass("qx.lang.Prototypes", "enable")) {
-  qx.lang.Prototypes.init();
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/lang/String.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/lang/String.js
deleted file mode 100644 (file)
index c2e9e88..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-
-************************************************************************ */
-
-/**
- * String helper functions
- *
- * The native JavaScript String is not modified by this class. However,
- * there are modifications to the native String in {@link qx.lang.Core} for
- * browsers that do not support certain features.
- *
- * The additions implemented here may be added directly to native String by
- * a setting in {@link qx.lang.Prototypes}. This feature is not enabled by
- * default.
- *
- * The string/array generics introduced in JavaScript 1.6 are supported by
- * {@link qx.lang.Generics}.
- */
-qx.OO.defineClass("qx.lang.String");
-
-
-/**
- * converts a string seperated by '-' to camel case.
- * Example:
- * <pre>qx.lang.String.toCamelCase("to-camel-case") == "toCamelCase"</pre>
- *
- * @param str {String} string seperated by '-'
- * @return {String} camel case string
- */
-qx.Class.toCamelCase = function(str)
-{
-  var vArr = str.split("-"), vLength = vArr.length;
-
-  if(vLength == 1) {
-    return vArr[0];
-  }
-
-  var vNew = str.indexOf("-") == 0 ? vArr[0].charAt(0).toUpperCase() + vArr[0].substring(1) : vArr[0];
-
-  for (var vPart, i=1; i<vLength; i++)
-  {
-    vPart = vArr[i];
-    vNew += vPart.charAt(0).toUpperCase() + vPart.substring(1);
-  }
-
-  return vNew;
-};
-
-
-/**
- * removes white space from the left side of a string
- *
- * @param str {String} the string to trim
- * @return {String}
- */
-qx.Class.trimLeft = function(str) {
-  return str.replace(/^\s+/, "");
-};
-
-
-/**
- * removes white space from the right side of a string
- *
- * @param str {String} the string to trim
- * @return {String}
- */
-qx.Class.trimRight = function(str) {
-  return str.replace(/\s+$/, "");
-};
-
-
-/**
- * removes white space from the left and the right side of a string
- *
- * @param str {String} the string to trim
- * @return {String}
- */
-qx.Class.trim = function(str) {
-  return str.replace(/^\s+|\s+$/g, "");
-};
-
-
-/**
- * Check whether the string starts with the given substring
- *
- * @param fullstr {String} the string to search in
- * @param substr {String} the substring to look for
- * @return {Boolean} whether the string starts with the given substring
- */
-qx.Class.startsWith = function(fullstr, substr) {
-  return !fullstr.indexOf(substr);
-};
-
-
-/**
- * Check whether the string ends with the given substring
- *
- * @param fullstr {String} the string to search in
- * @param substr {String} the substring to look for
- * @return {Boolean} whether the string ends with the given substring
- */
-qx.Class.endsWith = function(fullstr, substr) {
-  return fullstr.lastIndexOf(substr) === fullstr.length-substr.length;
-};
-
-
-/**
- * Pad a string up to a given length. Padding characters are added to the left of the string.
- *
- * @param str {String} the string to pad
- * @param length {Integer} the final length of the string
- * @param ch {String?"0"} character used to fill up the string
- * @return {String} paddded string
- */
-qx.Class.pad = function(str, length, ch)
-{
-  if (typeof ch === "undefined") {
-    ch = "0";
-  }
-
-  var temp = "";
-
-  for (var i=str.length; i<length; i++) {
-    temp += ch;
-  }
-
-  return temp + str;
-};
-
-
-/**
- * Convert the first character of the string to upper case.
- *
- * @param str {String} the string
- * @return {String} the string with a upper case first character
- */
-qx.Class.toFirstUp = function(str) {
-  return str.charAt(0).toUpperCase() + str.substr(1);
-};
-
-
-/**
- * Add a list item to a serialized list string
- * Example:
- * <pre>qx.lang.String.addListItem("red, yellow, green", "blue", ", ") == "red, yellow, green, blue"</pre>
- *
- * @param str {String} serialized list. The items are seperated by "sep"
- * @param item {String} list item to be added
- * @param sep {String?","} separator
- * @return {String} the string with the added item
- */
-qx.Class.addListItem = function(str, item, sep)
-{
-  if (str == item || str == "")
-  {
-    return item;
-  }
-
-  if (sep == null) {
-    sep = ",";
-  }
-
-  var a = str.split(sep);
-
-  if (a.indexOf(item) == -1)
-  {
-    a.push(item);
-    return a.join(sep);
-  }
-  else
-  {
-    return str;
-  }
-
-};
-
-
-/**
- * Remove a list item from a serialized list string
- * Example:
- * <pre>qx.lang.String.removeListItem("red, yellow, green", "yellow", ", ") == "red, green, blue"</pre>
- *
- * @param str {String} serialized list. The items are seperated by "sep"
- * @param item {String} list item to be removed
- * @param sep {String?","} separator
- * @return {String} the string with the removed item
- */
-qx.Class.removeListItem = function(str, item, sep)
-{
-  if (str == item || str == "")
-  {
-    return "";
-  }
-  else
-  {
-    if (sep == null) {
-      sep = ",";
-    }
-
-    var a = str.split(sep);
-    var p = a.indexOf(item);
-
-    if (p === -1) {
-      return str;
-    }
-
-    do { a.splice(p, 1); }
-    while((p = a.indexOf(item)) != -1);
-
-    return a.join(sep);
-  }
-};
-
-
-/**
- * Check whether the string contains a given substring
- *
- * @param str {String} the string
- * @param substring {String} substring to search for
- * @return {Boolean} whether the string contains the substring
- */
-qx.Class.contains = function(str, substring) {
-  return str.indexOf(substring) != -1;
-};
-
-
-/**
- * Print a list of arguments using a format string
- * In the format string occurences of %n are replaced by the n'th element of the args list.
- * Example:
- * <pre>qx.lang.String.format("Hello %1, my name is %2", ["Egon", "Franz"]) == "Hello Egon, my name is Franz"</pre>
- *
- * @param pattern {String} format string
- * @param args {Array} array of arguments to insert into the format string
- * @return {String}
- */
-qx.Class.format = function(pattern, args)
-{
-  var str = pattern;
-
-  for (var i=0; i<args.length; i++) {
-    str = str.replace(new RegExp("%" + (i+1), "g"), args[i]);
-  }
-
-  return str;
-};
-
-
-/**
- * Escapes all chars that have a special meaning in regular expressions
- *
- * @param str {String} the string where to escape the chars.
- * @return {String} the string with the escaped chars.
- */
-qx.Class.escapeRegexpChars = function(str) {
-  return str.replace(/([\\\.\(\)\[\]\{\}\^\$\?\+\*])/g, "\\$1");
-};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Date.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Date.js
deleted file mode 100644 (file)
index 7383bd5..0000000
+++ /dev/null
@@ -1,429 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/**
- * Create a new instance of qx.nls.Date
- */
-qx.OO.defineClass("qx.locale.Date");
-
-
-/**
- * Get AM marker for time definitions
- *
- * @param locale {String} optional locale to be used
- * @return {qx.locale.LocalizedString} translated AM marker.
- */
-qx.Class.getAmMarker = function(locale) {
-  return new qx.locale.LocalizedString("cldr_am", [], locale);
-};
-
-
-/**
- * Get PM marker for time definitions
- *
- * @param locale {String} optional locale to be used
- * @return {qx.locale.LocalizedString} translated PM marker.
- */
-qx.Class.getPmMarker = function(locale) {
-  return new qx.locale.LocalizedString("cldr_pm", [], locale);
-};
-
-
-/**
- * Return localized names of day names
- *
- * @param length {String} format of the day names.
- *     Possible values: "abbreviated", "narrow", "wide"
- * @param locale {String} optional locale to be used
- * @return {qx.locale.LocalizedString[]} array of localized day names starting with sunday.
- */
-qx.Class.getDayNames = function(length, locale) {
-  if (
-    length != "abbreviated" &&
-    length != "narrow" &&
-    length != "wide"
-  ) {
-    throw new Error('format must be one of "abbreviated", "narrow", "wide"');
-  }
-  var days = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"];
-  var names = [];
-  for (var i=0; i<days.length; i++) {
-    var key = "cldr_day_" + length + "_" + days[i];
-    names.push(new qx.locale.LocalizedString(key, [], locale));
-  }
-  return names;
-};
-
-
-/**
- * Return localized name of a week day name
- *
- * @param length {String} format of the day name.
- *     Possible values: "abbreviated", "narrow", "wide"
- * @param day {Integer} day number. 0=sunday, 1=monday, ...
- * @param locale {String} optional locale to be used
- * @return {qx.locale.LocalizedString} localized day name
- */
-qx.Class.getDayName = function(length, day, locale) {
-  if (
-    length != "abbreviated" &&
-    length != "narrow" &&
-    length != "wide"
-  ) {
-    throw new Error('format must be one of "abbreviated", "narrow", "wide"');
-  }
-  var days = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"];
-  var key = "cldr_day_" + length + "_" + days[day];
-  return new qx.locale.LocalizedString(key, [], locale);
-};
-
-
-/**
- * Return localized names of month names
- *
- * @param length {String} format of the month names.
- *     Possible values: "abbreviated", "narrow", "wide"
- * @param locale {String} optional locale to be used
- * @return {qx.locale.LocalizedString[]} array of localized month names starting with january.
- */
-qx.Class.getMonthNames = function(length, locale) {
-  if (
-    length != "abbreviated" &&
-    length != "narrow" &&
-    length != "wide"
-  ) {
-    throw new Error('format must be one of "abbreviated", "narrow", "wide"');
-  }
-  var names = [];
-  for (var i=0; i<12; i++) {
-    var key = "cldr_month_" + length + "_" + (i+1);
-    names.push(new qx.locale.LocalizedString(key, [], locale));
-  }
-  return names;
-};
-
-
-/**
- * Return localized name of a month
- *
- * @param length {String} format of the month names.
- *     Possible values: "abbreviated", "narrow", "wide"
- * @param month {Integer} index of the month. 0=january, 1=februrary, ...
- * @param locale {String} optional locale to be used
- * @return {qx.locale.LocalizedString} localized month name
- */
-qx.Class.getMonthName = function(length, month, locale) {
-  if (
-    length != "abbreviated" &&
-    length != "narrow" &&
-    length != "wide"
-  ) {
-    throw new Error('format must be one of "abbreviated", "narrow", "wide"');
-  }
-  var key = "cldr_month_" + length + "_" + (month+1);
-  return new qx.locale.LocalizedString(key, [], locale);
-};
-
-
-/**
- * Return localized date format string to be used with @{link qx.util.format.DateFormat}.
- *
- * @param size {String} format of the date format.
- *    Possible values: "short", "medium", "long", "full"
- * @param locale {String} optional locale to be used
- * @return {qx.locale.LocalizedString} localized date format string
- */
-qx.Class.getDateFormat = function(size, locale) {
-  if (
-    size != "short" &&
-    size != "medium" &&
-    size != "long" &&
-    size != "full"
-  ) {
-    throw new Error('format must be one of "short", "medium", "long", "full"');
-  }
-  var key = "cldr_date_format_" + size;
-  return new qx.locale.LocalizedString(key, [], locale)
-};
-
-
-/**
- * Try to localize a date/time format string.
- *
- * If now localization is availible take the fallback format string
- *
- * @param canonical {String} format string containing only field information, and in a canonical order.
- *     Examples are "yyyyMMMM" for year + full month, or "MMMd" for abbreviated month + day.
- * @param fallback {String} fallback format string if no localized version is found
- * @param locale {String} optional locale to be used
- * @return {String} best matching format string
- */
-qx.Class.getDateTimeFormat = function(canonical, fallback, locale) {
-  var key = "cldr_date_time_format_" + canonical;
-  var localizedFormat = qx.locale.Manager.getInstance().translate(key, [], locale);
-  if (localizedFormat == key) {
-    localizedFormat = fallback;
-  }
-  return localizedFormat;
-};
-
-
-/**
- * Return localized time format string to be used with {@link qx.util.format.DateFormat}.
- *
- * @param size {String} format of the time pattern.
- *    Possible values: "short", "medium", "long", "full"
- * @param locale {String} optional locale to be used
- * @return {qx.locale.LocalizedString} localized time format string
- */
-qx.Class.getTimeFormat = function(size, locale) {
-  if (
-    size != "short" &&
-    size != "medium" &&
-    size != "long" &&
-    size != "full"
-  ) {
-    throw new Error('format must be one of "short", "medium", "long", "full"');
-  }
-  switch (size) {
-    case "short":
-    case "medium":
-      return qx.locale.Date.getDateTimeFormat("HHmm", "HH:mm");
-
-    case "long":
-      return qx.locale.Date.getDateTimeFormat("HHmmss", "HH:mm:ss");
-
-    case "full":
-      return qx.locale.Date.getDateTimeFormat("HHmmsszz", "HH:mm:ss zz");
-
-    default:
-      throw new Error("This case should never happen.");
-  }
-};
-
-
-/**
- * Return the day the week starts with
- *
- * Reference: Common Locale Data Repository (cldr) supplementalData.xml
- *
- * @param locale {String} optional locale to be used
- * @return {Integer} index of the first day of the week. 0=sunday, 1=monday, ...
- */
-qx.Class.getWeekStart = function(locale) {
-  var weekStart = {
-    // default is monday
-
-    "MV": 5, // friday
-
-    "AE": 6, // saturday
-    "AF": 6,
-    "BH": 6,
-    "DJ": 6,
-    "DZ": 6,
-    "EG": 6,
-    "ER": 6,
-    "ET": 6,
-    "IQ": 6,
-    "IR": 6,
-    "JO": 6,
-    "KE": 6,
-    "KW": 6,
-    "LB": 6,
-    "LY": 6,
-    "MA": 6,
-    "OM": 6,
-    "QA": 6,
-    "SA": 6,
-    "SD": 6,
-    "SO": 6,
-    "TN": 6,
-    "YE": 6,
-
-    "AS": 0, // sunday
-    "AU": 0,
-    "AZ": 0,
-    "BW": 0,
-    "CA": 0,
-    "CN": 0,
-    "FO": 0,
-    "GE": 0,
-    "GL": 0,
-    "GU": 0,
-    "HK": 0,
-    "IE": 0,
-    "IL": 0,
-    "IS": 0,
-    "JM": 0,
-    "JP": 0,
-    "KG": 0,
-    "KR": 0,
-    "LA": 0,
-    "MH": 0,
-    "MN": 0,
-    "MO": 0,
-    "MP": 0,
-    "MT": 0,
-    "NZ": 0,
-    "PH": 0,
-    "PK": 0,
-    "SG": 0,
-    "TH": 0,
-    "TT": 0,
-    "TW": 0,
-    "UM": 0,
-    "US": 0,
-    "UZ": 0,
-    "VI": 0,
-    "ZA": 0,
-    "ZW": 0,
-
-    "ET": 0,
-    "MW": 0,
-    "NG": 0,
-    "TJ": 0
-  };
-  var territory = qx.locale.Date._getTerritory(locale);
-  // default is monday
-  return weekStart[territory] != null ? weekStart[territory] : 1;
-};
-
-
-/**
- * Return the day the weekend starts with
- *
- * Reference: Common Locale Data Repository (cldr) supplementalData.xml
- *
- * @param locale {String} optional locale to be used
- * @return {Integer} index of the first day of the weekend. 0=sunday, 1=monday, ...
- */
-qx.Class.getWeekendStart = function(locale) {
-  var weekendStart = {
-    // default is saturday
-
-    "EG": 5, // friday
-    "IL": 5,
-    "SY": 5,
-
-    "IN": 0, // sunday
-
-    "AE": 4, // thursday
-    "BH": 4,
-    "DZ": 4,
-    "IQ": 4,
-    "JO": 4,
-    "KW": 4,
-    "LB": 4,
-    "LY": 4,
-    "MA": 4,
-    "OM": 4,
-    "QA": 4,
-    "SA": 4,
-    "SD": 4,
-    "TN": 4,
-    "YE": 4
-  };
-  var territory = qx.locale.Date._getTerritory(locale);
-  // default is saturday
-  return weekendStart[territory] != null ? weekendStart[territory] : 6;
-};
-
-
-/**
- * Return the day the weekend ends with
- *
- * Reference: Common Locale Data Repository (cldr) supplementalData.xml
- *
- * @param locale {String} optional locale to be used
- * @return {Integer} index of the last day of the weekend. 0=sunday, 1=monday, ...
- */
-qx.Class.getWeekendEnd = function(locale) {
-  var weekendEnd = {
-    // default is sunday
-
-    "AE": 5, // friday
-    "BH": 5,
-    "DZ": 5,
-    "IQ": 5,
-    "JO": 5,
-    "KW": 5,
-    "LB": 5,
-    "LY": 5,
-    "MA": 5,
-    "OM": 5,
-    "QA": 5,
-    "SA": 5,
-    "SD": 5,
-    "TN": 5,
-    "YE": 5,
-    "AF": 5,
-    "IR": 5,
-
-    "EG": 6, // saturday
-    "IL": 6,
-    "SY": 6
-  }
-  var territory = qx.locale.Date._getTerritory(locale);
-  // default is sunday
-  return weekendEnd[territory] != null ? weekendEnd[territory] : 0;
-};
-
-
-/**
- * Returns whether a certain day of week belongs to the week end.
- *
- * @param day {Integer} index of the day. 0=sunday, 1=monday, ...
- * @param locale {String} optional locale to be used
- * @return {Boolean} whether the given day is a weekend day
- */
-qx.Class.isWeekend = function(day, locale) {
-  var weekendStart = qx.locale.Date.getWeekendStart(locale);
-  var weekendEnd = qx.locale.Date.getWeekendEnd(locale);
-  if (weekendEnd > weekendStart) {
-    return (
-      (day >= weekendStart) &&
-      (day <= weekendEnd)
-    );
-  } else {
-    return (
-      (day >= weekendStart) ||
-      (day <= weekendEnd)
-    );
-  }
-};
-
-
-/**
- * Extract the territory part from a locale
- *
- * @param locale {String} the locale
- * @return {String} territory
- */
-qx.Class._getTerritory = function(locale) {
-  if (locale) {
-    var territory = locale.split("_")[1] || locale;
-  } else {
-    territory =
-      qx.locale.Manager.getInstance().getTerritory() ||
-      qx.locale.Manager.getInstance().getLanguage();
-  };
-  return territory.toUpperCase();
-};
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js
deleted file mode 100644 (file)
index beabac0..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/**
- * Create a new instance of qx.nls.Date
- */
-qx.OO.defineClass("qx.locale.Key");
-
-
-/**
- * Return localized name of a key identifier
- * @{link qx.event.handler.KeyEventHandler}
- *
- * @param size {String} format of the key identifier.
- *     Possible values: "short", "full"
- * @param keyIdentifier {String} key identifier to translate {@link qx.event.handler.KeyEventHandler}
- * @param locale {String} optional locale to be used
- * @return {qx.locale.LocalizedString} localized key name
- */
-qx.Class.getKeyName = function(size, keyIdentifier, locale) {
-  if (
-    size != "short" &&
-    size != "full"
-  ) {
-    throw new Error('format must be one of: "short", "full"');
-  }
-
-  var key = "key_" + size + "_" + keyIdentifier;
-  var localizedKey = new qx.locale.LocalizedString(key, [], locale);
-  if (localizedKey == key) {
-    return qx.locale.Key._keyNames[key] || keyIdentifier;
-  } else {
-    return localizedKey;
-  }
-};
-
-
-( function() {
-  var keyNames = {};
-  var Manager = qx.locale.Manager;
-
-  // TRANSLATION: short representation of key names
-  keyNames[Manager.marktr("key_short_Backspace")] = "Backspace";
-  keyNames[Manager.marktr("key_short_Tab")] = "Tab";
-  keyNames[Manager.marktr("key_short_Space")] = "Space";
-  keyNames[Manager.marktr("key_short_Enter")] = "Enter";
-  keyNames[Manager.marktr("key_short_Shift")] = "Shift";
-  keyNames[Manager.marktr("key_short_Control")] = "Ctrl";
-  keyNames[Manager.marktr("key_short_Alt")] = "Alt";
-  keyNames[Manager.marktr("key_short_CapsLock")] = "Caps";
-  keyNames[Manager.marktr("key_short_Meta")] = "Meta";
-  keyNames[Manager.marktr("key_short_Escape")] = "Esc";
-  keyNames[Manager.marktr("key_short_Left")] = "Left";
-  keyNames[Manager.marktr("key_short_Up")] = "Up";
-  keyNames[Manager.marktr("key_short_Right")] = "Right";
-  keyNames[Manager.marktr("key_short_Down")] = "Down";
-  keyNames[Manager.marktr("key_short_PageUp")] = "PgUp";
-  keyNames[Manager.marktr("key_short_PageDown")] = "PgDn";
-  keyNames[Manager.marktr("key_short_End")] = "End";
-  keyNames[Manager.marktr("key_short_Home")] = "Home";
-  keyNames[Manager.marktr("key_short_Insert")] = "Ins";
-  keyNames[Manager.marktr("key_short_Delete")] = "Del";
-  keyNames[Manager.marktr("key_short_NumLock")] = "Num";
-  keyNames[Manager.marktr("key_short_PrintScreen")] = "Print";
-  keyNames[Manager.marktr("key_short_Scroll")] = "Scroll";
-  keyNames[Manager.marktr("key_short_Pause")] = "Pause";
-  keyNames[Manager.marktr("key_short_Win")] = "Win";
-  keyNames[Manager.marktr("key_short_Apps")] = "Apps";
-
-  // TRANSLATION: full/long representation of key names
-  keyNames[Manager.marktr("key_full_Backspace")] = "Backspace";
-  keyNames[Manager.marktr("key_full_Tab")] = "Tabulator";
-  keyNames[Manager.marktr("key_full_Space")] = "Space";
-  keyNames[Manager.marktr("key_full_Enter")] = "Enter";
-  keyNames[Manager.marktr("key_full_Shift")] = "Shift";
-  keyNames[Manager.marktr("key_full_Control")] = "Control";
-  keyNames[Manager.marktr("key_full_Alt")] = "Alt";
-  keyNames[Manager.marktr("key_full_CapsLock")] = "CapsLock";
-  keyNames[Manager.marktr("key_full_Meta")] = "Meta";
-  keyNames[Manager.marktr("key_full_Escape")] = "Escape";
-  keyNames[Manager.marktr("key_full_Left")] = "Left";
-  keyNames[Manager.marktr("key_full_Up")] = "Up";
-  keyNames[Manager.marktr("key_full_Right")] = "Right";
-  keyNames[Manager.marktr("key_full_Down")] = "Down";
-  keyNames[Manager.marktr("key_full_PageUp")] = "PageUp";
-  keyNames[Manager.marktr("key_full_PageDown")] = "PageDown";
-  keyNames[Manager.marktr("key_full_End")] = "End";
-  keyNames[Manager.marktr("key_full_Home")] = "Home";
-  keyNames[Manager.marktr("key_full_Insert")] = "Insert";
-  keyNames[Manager.marktr("key_full_Delete")] = "Delete";
-  keyNames[Manager.marktr("key_full_NumLock")] = "NumLock";
-  keyNames[Manager.marktr("key_full_PrintScreen")] = "PrintScreen";
-  keyNames[Manager.marktr("key_full_Scroll")] = "Scroll";
-  keyNames[Manager.marktr("key_full_Pause")] = "Pause";
-  keyNames[Manager.marktr("key_full_Win")] = "Win";
-  keyNames[Manager.marktr("key_full_Apps")] = "Apps";
-  qx.Class._keyNames = keyNames;
-}) ();
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/LocalizedString.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/LocalizedString.js
deleted file mode 100644 (file)
index a1c350e..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/**
- * Create a new instance of qx.locale.LocalizedString
- *
- * @see qx.lang.String.format
- *
- * @param messageId {String} message id (may contain format strings)
- * @param args {Object[]} array of objects, which are inserted into the format string.
- * @param locale {String} optional locale to be used for translation
- */
-qx.OO.defineClass("qx.locale.LocalizedString", qx.core.Object,
-function(messageId, args, locale) {
-  qx.core.Object.call(this);
-
-  this.setId(messageId);
-  this._locale = locale;
-
-  var storedArguments = [];
-  for (var i=0; i<args.length; i++)
-  {
-    var arg = args[i];
-    if (arg instanceof qx.locale.LocalizedString) {
-      // defer conversion to string
-      storedArguments.push(arg);
-    } else {
-      // force conversion to string
-      storedArguments.push(arg + "");
-    }
-  }
-
-  this.setArgs(storedArguments);
-});
-
-
-/** message id */
-qx.OO.addProperty({ name: "id"});
-
-/** list of arguments to be applied to the format string */
-qx.OO.addProperty({ name: "args"});
-
-
-/**
- * Return translation of the string using the current locale
- *
- * @return {String} translation using the current locale
- */
-qx.Proto.toString = function () {
-  return qx.locale.Manager.getInstance().translate(this.getId(), this.getArgs(), this._locale);
-};
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Manager.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Manager.js
deleted file mode 100644 (file)
index 0b30e94..0000000
+++ /dev/null
@@ -1,261 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-
-/**
- * Create a new instance of qx.locale.Manager
- */
-qx.OO.defineClass("qx.locale.Manager", qx.manager.object.ObjectManager,
-function() {
-  qx.manager.object.ObjectManager.call(this);
-
-  this._translationCatalog = {};
-  this.setLocale(qx.core.Client.getInstance().getLocale() || this._defaultLocale);
-});
-
-
-/** current locale. locale is an language code like de, de_AT, en, en_GB, fr, ... */
-qx.OO.addProperty({ name: "locale"});
-
-qx.Proto._defaultLocale = "C";
-
-
-/**
- * Get the language code of the currnt locale
- *
- * This is the first part of a locale definition. The language for "de_DE" would be "de"
- *
- * @return {String} language code
- */
-qx.Proto.getLanguage = function() {
-  return this._language;
-};
-
-
-/**
- * Get the territory code of the currnt locale
- *
- * This is the second part of a locale definition. The territory for "de_DE" would be "DE"
- *
- * @return {String} territory code
- */
-qx.Proto.getTerritory = function() {
-  return this.getLocale().split("_")[1] || "";
-}
-
-
-/**
- * Return the available application locales
- *
- * This corresponds to the Makefile APPLICATION_LOCALES setting
- *
- * @return {String[]} array of available locales
- */
-qx.Proto.getAvailableLocales = function() {
-  var locales = [];
-  for (var locale in this._translationCatalog) {
-    if (locale != this._defaultLocale) {
-      locales.push(locale);
-    }
-  }
-  return locales;
-};
-
-
-/**
- * Extract the language part from a locale.
- *
- * @param locale {String} locale to be used
- * @return {String} language
- */
-qx.Proto._extractLanguage = function(locale) {
-  var language;
-  var pos = locale.indexOf("_");
-  if (pos == -1) {
-    language = locale;
-  } else {
-    language = locale.substring(0, pos);
-  }
-  return language;
-};
-
-
-qx.Proto._modifyLocale = function(propValue, propOldValue, propData) {
-  this._locale = propValue;
-
-  var pos = propValue.indexOf("_");
-  this._language = this._extractLanguage(propValue);
-
-  return true;
-};
-
-
-/**
- * Add a translation to the translation manager
- *
- * @param languageCode {String} language code of the translation like de, de_AT, en, en_GB, fr, ...
- * @param translationMap {Map} mapping of message identifiers (english text) to the target language
- */
-qx.Proto.addTranslation = function(languageCode, translationMap) {
-
-  if (this._translationCatalog[languageCode])
-  {
-    for (var key in translationMap) {
-      this._translationCatalog[languageCode][key] = translationMap[key];
-    }
-  }
-  else
-  {
-    this._translationCatalog[languageCode] = translationMap;
-  }
-};
-
-
-/**
- * Translate a message
- * @see qx.lang.String.format
- *
- * @param messageId {String} message id (may contain format strings)
- * @param varargs {Object} variable number of argumes applied to the format string
- * @return {qx.locale.LocalizedString}
- */
-qx.Class.tr = function(messageId, varargs)
-{
-  var args = qx.lang.Array.fromArguments(arguments);
-  args.splice(0, 1);
-
-  return new qx.locale.LocalizedString(messageId, args);
-};
-
-
-/**
- * Translate a plural message
- *
- * Depending on the third argument the plursl or the singular form is chosen.
- *
- * @see qx.lang.String.format
- *
- * @param singularMessageId {String} message id of the singular form (may contain format strings)
- * @param pluralMessageId {String} message id of the plural form (may contain format strings)
- * @param count {Integer} if greater than 1 the plural form otherwhise the singular form is returned.
- * @param varargs {Object} variable number of argumes applied to the format string
- * @return {qx.locale.LocalizedString}
- */
-qx.Class.trn = function(singularMessageId, pluralMessageId, count, varargs)
-{
-  var args = qx.lang.Array.fromArguments(arguments);
-  args.splice(0, 3);
-
-  if (count > 1)
-  {
-    return new qx.locale.LocalizedString(pluralMessageId, args);
-  }
-  else
-  {
-    return new qx.locale.LocalizedString(singularMessageId, args);
-  }
-};
-
-
-/**
- * Translate a message with translation hint
- *
- * Depending on the third argument the plursl or the singular form is chosen.
- *
- * @see qx.lang.String.format
- *
- * @param hint {String} hint for the translator of the message. Will be included in the .pot file.
- * @param messageId {String} message id (may contain format strings)
- * @param varargs {Object} variable number of argumes applied to the format string
- * @return {qx.locale.LocalizedString}
- */
-qx.Class.trc = function(hint, messageId, varargs)
-{
-  var args = qx.lang.Array.fromArguments(arguments);
-  args.splice(0, 2);
-
-  return new qx.locale.LocalizedString(messageId, args);
-}
-
-
-/**
- * Mark the message for translation but return the original message.
- *
- * @param messageId {String} the message ID
- * @return {String} messageId
- */
-qx.Class.marktr = function(messageId) {
-  return messageId;
-};
-
-
-/**
- * Translate a message using the current locale and apply format string to the arguments.
- *
- * @param messageId {String} message id (may contain format strings)
- * @param args {Object[]} array of objects, which are inserted into the format string.
- * @param locale {String} optional locale to be used for translation
- * @return {String} translated message.
- */
-qx.Proto.translate = function(messageId, args, locale)
-{
-  var txt;
-
-  if (locale) {
-    var language = this._extractLanguage(locale);
-  } else {
-    locale = this._locale;
-    language = this._language;
-  }
-
-  if (!txt && this._translationCatalog[locale]) {
-    txt = this._translationCatalog[locale][messageId];
-  }
-
-  if (!txt && this._translationCatalog[language]) {
-    txt = this._translationCatalog[language][messageId];
-  }
-
-  if (!txt && this._translationCatalog[this._defaultLocale]) {
-    txt = this._translationCatalog[this._defaultLocale][messageId];
-  }
-
-  if (!txt) {
-    txt = messageId;
-  }
-
-  if (args.length > 0) {
-    txt = qx.lang.String.format(txt, args)
-  }
-  return txt;
-};
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Number.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Number.js
deleted file mode 100644 (file)
index 09b3ed1..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/**
- * Create a new instance of qx.locale.Number
- */
-qx.OO.defineClass("qx.locale.Number");
-
-
-/**
- * Get deciaml separator for number formatting
- *
- * @param locale {String} optional locale to be used
- * @return {qx.locale.LocalizedString} deciaml separator.
- */
-qx.Class.getDecimalSeparator = function(locale) {
-  return new qx.locale.LocalizedString("cldr_number_decimal_separator", [], locale);
-};
-
-
-/**
- * Get thousand grouping separator for number formatting
- *
- * @param locale {String} optional locale to be used
- * @return {qx.locale.LocalizedString} group separator.
- */
-qx.Class.getGroupSeparator = function(locale) {
-  return new qx.locale.LocalizedString("cldr_number_group_separator", [], locale);
-};
-
-
-/**
- * Get percent format string
- *
- * @param locale {String} optional locale to be used
- * @return {qx.locale.LocalizedString} percent format string.
- */
-qx.Class.getPercentFormat = function(locale) {
-  return new qx.locale.LocalizedString("cldr_number_percent_format", [], locale);
-};
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/String.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/String.js
deleted file mode 100644 (file)
index 0c3725b..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/**
- * Create a new instance of qx.locale.String
- */
-qx.OO.defineClass("qx.locale.String");
-
-
-/**
- * Get quotation start sign
- *
- * @param locale {String} optional locale to be used
- * @return {qx.locale.LocalizedString} quotation start sign
- */
-qx.Class.getQuotationStart = function(locale) {
-  return new qx.locale.LocalizedString("cldr_quotationStart", [], locale);
-};
-
-
-/**
- * Get quotation end sign
- *
- * @param locale {String} optional locale to be used
- * @return {qx.locale.LocalizedString} quotation end sign
- */
-qx.Class.getQuotationEnd = function(locale) {
-  return new qx.locale.LocalizedString("cldr_quotationEnd", [], locale);
-};
-
-
-/**
- * Get quotation alternative start sign
- *
- * @param locale {String} optional locale to be used
- * @return {qx.locale.LocalizedString} alternative quotation start sign
- */
-qx.Class.getQuotationStart = function(locale) {
-  return new qx.locale.LocalizedString("cldr_alternateQuotationStart", [], locale);
-};
-
-
-/**
- * Get quotation alternative end sign
- *
- * @param locale {String} optional locale to be used
- * @return {qx.locale.LocalizedString} alternative quotation end sign
- */
-qx.Class.getQuotationEnd = function(locale) {
-  return new qx.locale.LocalizedString("cldr_alternateQuotationEnd", [], locale);
-};
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/AlertAppender.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/AlertAppender.js
deleted file mode 100644 (file)
index 4be7b9e..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Andreas Ecker (ecker)
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(log)
-
-************************************************************************ */
-
-/**
- * An appender that writes each message to a native alert().
- * <p>
- * This class does not depend on qooxdoo widgets, so it also works when there
- * are problems with widgets or when the widgets are not yet initialized.
- * <p>
- * It allows to go through the log messages step-by-step, since the alert
- * window temporarily halts the regular program execution. That way even
- * the dispose process can easily be debugged.
- */
-qx.OO.defineClass("qx.log.AlertAppender", qx.log.Appender,
-function() {
-  qx.log.Appender.call(this);
-});
-
-
-// overridden
-qx.OO.changeProperty({ name:"useLongFormat", type:"boolean", defaultValue:false, allowNull:false });
-
-// overridden
-qx.Proto.appendLogEvent = function(evt) {
-
-  // Append the message
-  var text = evt.logger.getName();
-  if (evt.instanceId != null) {
-     text += " (" + evt.instanceId + ")";
-  }
-
-  alert("\n" + text + "\n" + this.formatLogEvent(evt));
-}
-
-
-// overridden
-qx.Proto.dispose = function() {
-  if (this.getDisposed()) {
-      return true;
-  }
-
-  return qx.log.Appender.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/Appender.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/Appender.js
deleted file mode 100644 (file)
index 5df3dd3..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-#module(log)
-
-************************************************************************ */
-
-/**
- * An appender. Does the actual logging.
- */
-qx.OO.defineClass("qx.log.Appender", qx.log.LogEventProcessor,
-function() {
-  qx.log.LogEventProcessor.call(this);
-});
-
-
-/** Whether the logger name and log level should be included in the formatted log message. */
-qx.OO.addProperty({ name:"useLongFormat", type:"boolean", defaultValue:true, allowNull:false });
-
-
-// overridden
-qx.Proto.handleLogEvent = function(evt) {
-  if (this.decideLogEvent(evt) != qx.log.Filter.DENY) {
-    this.appendLogEvent(evt);
-  }
-}
-
-
-/**
- * Appends a log event to the log.
- *
- * @param evt {Map} The event to append.
- */
-qx.Proto.appendLogEvent = function(evt) {
-  throw new Error("appendLogEvent is abstract");
-}
-
-
-/**
- * Formats a log event.
- *
- * @param evt {Map} The log event to format.
- * @return {String} The formatted event.
- */
-qx.Proto.formatLogEvent = function(evt) {
-  var Logger = qx.log.Logger;
-
-  var text = "";
-
-  // Append the time stamp
-  var time = new String(new Date().getTime() - qx._LOADSTART);
-  while (time.length < 6) {
-    time = "0" + time;
-  }
-  text += time;
-
-  // Append the level
-  if (this.getUseLongFormat()) {
-    switch (evt.level) {
-      case Logger.LEVEL_DEBUG: text += " DEBUG: "; break;
-      case Logger.LEVEL_INFO:  text += " INFO:  "; break;
-      case Logger.LEVEL_WARN:  text += " WARN:  "; break;
-      case Logger.LEVEL_ERROR: text += " ERROR: "; break;
-      case Logger.LEVEL_FATAL: text += " FATAL: "; break;
-    }
-  } else {
-    text += ": ";
-  }
-
-  // Append the indent
-  var indent = "";
-  for (var i = 0; i < evt.indent; i++) {
-    indent += "  ";
-  }
-  text += indent;
-
-  // Append the logger name and instance
-  if (this.getUseLongFormat()) {
-    text += evt.logger.getName();
-    if (evt.instanceId != null) {
-      text += "[" + evt.instanceId + "]";
-    }
-    text += ": ";
-  }
-
-  // Append the message
-  if (typeof evt.message == "string") {
-    text += evt.message;
-  } else {
-    // The message is an object -> Log a dump of the object
-    var obj = evt.message;
-    if (obj == null) {
-      text += "Object is null";
-    } else {
-      text += "--- Object: " + obj + " ---\n";
-      var attrArr = new Array();
-      try {
-        for (var attr in obj) {
-          attrArr.push(attr);
-        }
-      } catch (exc) {
-        text += indent + "  [not readable: " + exc + "]\n";
-      }
-      attrArr.sort();
-      for (var i = 0; i < attrArr.length; i++) {
-        try {
-          text += indent + "  " + attrArr[i] + "=" + obj[attrArr[i]] + "\n";
-        }
-        catch (exc) {
-          text += indent + "  " + attrArr[i] + "=[not readable: " + exc + "]\n";
-        }
-      }
-      text += indent + "--- End of object ---";
-    }
-  }
-
-  // Append the throwable
-  if (evt.throwable != null) {
-    var thr = evt.throwable;
-
-    if (thr.name == null) {
-      text += ": " + thr;
-    } else {
-      text += ": " + thr.name;
-    }
-    if (thr.message != null) {
-      text += " - " + thr.message;
-    }
-    if (thr.number != null) {
-      text += " (#" + thr.number + ")";
-    }
-
-    if (thr.stack != null) {
-      text += "\n" + this._beautyStackTrace(thr.stack);
-    }
-  }
-
-  return text;
-}
-
-
-/**
- * Beautifies a stack trace.
- *
- * @param stack {String} the stack trace to beautify.
- * @return {String} the beautified stack trace.
- */
-qx.Proto._beautyStackTrace = function(stack) {
-  // e.g. "()@http://localhost:8080/webcomponent-test-SNAPSHOT/webcomponent/js/com/ptvag/webcomponent/common/log/Logger:253"
-  var lineRe = /@(.+):(\d+)$/gm;
-  var hit;
-  var out = "";
-  var scriptDir = "/script/";
-  while ((hit = lineRe.exec(stack)) != null) {
-    var url = hit[1];
-
-    var jsPos = url.indexOf(scriptDir);
-    var className = (jsPos == -1) ? url : url.substring(jsPos + scriptDir.length).replace(/\//g, ".");
-
-    var lineNumber = hit[2];
-    out += "  at " + className + ":" + lineNumber + "\n";
-  }
-  return out;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/DefaultFilter.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/DefaultFilter.js
deleted file mode 100644 (file)
index 47c18df..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-#module(log)
-
-************************************************************************ */
-
-/**
- * The default filter. Has a minimum level and can be enabled or disabled.
- */
-qx.OO.defineClass("qx.log.DefaultFilter", qx.log.Filter,
-function() {
-  qx.log.Filter.call(this);
-});
-
-
-/**
- * Whether the filter should be enabled. If set to false all log events
- * will be denied.
- */
-qx.OO.addProperty({ name:"enabled", type:"boolean", defaultValue:true, allowNull:false, getAlias:"isEnabled" });
-
-/**
- * The minimum log level. If set only log messages with a level greater or equal
- * to the set level will be accepted.
- */
-qx.OO.addProperty({ name:"minLevel", type:"number", defaultValue:null });
-
-
-// overridden
-qx.Proto.decide = function(evt) {
-  var Filter = qx.log.Filter;
-  if (! this.isEnabled()) {
-    return Filter.DENY;
-  } else if (this.getMinLevel() == null) {
-    return Filter.NEUTRAL;
-  } else {
-    return (evt.level >= this.getMinLevel()) ? Filter.ACCEPT : Filter.DENY;
-  }
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/DivAppender.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/DivAppender.js
deleted file mode 100644 (file)
index 506cae3..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(log)
-
-************************************************************************ */
-
-/**
- * An appender that writes all messages to a div element.
- *
- * This class does not depend on qooxdoo widgets, so it also works when there
- * are problems with widgets or when the widgets are not yet initialized.
- *
- * @param divId {String ? "qx_log"} the ID of the div element to write the
- *        messages to.
- */
-qx.OO.defineClass("qx.log.DivAppender", qx.log.Appender,
-function(divId) {
-  qx.log.Appender.call(this);
-
-  this._divId = divId ? divId : "qx_log";
-});
-
-
-/**
- * The maximum number of messages to show. If null the number of messages is not
- * limited.
- */
-qx.OO.addProperty({ name:"maxMessages", type:"number", defaultValue:500 });
-
-// overridden
-qx.OO.changeProperty({ name:"useLongFormat", type:"boolean", defaultValue:false, allowNull:false });
-
-/** The CSS class name for the head div {containing the clear button}. */
-qx.OO.addProperty({ name:"headClassName", type:"string", defaultValue:"log-head" });
-
-/** The CSS class name for the body div {containing the log messages}. */
-qx.OO.addProperty({ name:"bodyClassName", type:"string", defaultValue:"log-body" });
-
-/** The CSS class name for a div showing the name of the current group. */
-qx.OO.addProperty({ name:"groupClassName", type:"string", defaultValue:"log-group" });
-
-/** The CSS class name for a div showing a debug message. */
-qx.OO.addProperty({ name:"debugClassName", type:"string", defaultValue:"log-debug" });
-
-/** The CSS class name for a div showing a info message. */
-qx.OO.addProperty({ name:"infoClassName", type:"string", defaultValue:"log-info" });
-
-/** The CSS class name for a div showing a warn message. */
-qx.OO.addProperty({ name:"warnClassName", type:"string", defaultValue:"log-warn" });
-
-/** The CSS class name for a div showing a error message. */
-qx.OO.addProperty({ name:"errorClassName", type:"string", defaultValue:"log-error" });
-
-
-/**
- * Creates an onclick handler that clears a div element. This method is used to
- * create a minimum closure.
- *
- * @param logElem {Element} the element to clear when the handler is called.
- * @return {Function} the handler.
- */
-qx.Proto._createClearButtonHandler = function(logElem) {
-  return function(evt) {
-    logElem.innerHTML = "";
-  }
-}
-
-
-// overridden
-qx.Proto.appendLogEvent = function(evt) {
-  var Logger = qx.log.Logger;
-
-  // Initialize the log element if nessesary
-  if (this._logElem == null) {
-    var divElem = document.getElementById(this._divId);
-    if (divElem == null) {
-      throw new Error("Logging div with ID " + this._divId + " not found");
-    }
-    divElem.innerHTML = '<div class="' + this.getHeadClassName() + '"><button>Clear</button></div>'
-      + '<div class="' + this.getBodyClassName() + '"></div>';
-
-    this._clearBt = divElem.firstChild.firstChild;
-    this._logElem = divElem.lastChild;
-
-    this._clearBt.onclick = this._createClearButtonHandler(this._logElem);
-  }
-
-  // Append the group when needed
-  var group = evt.logger.getName();
-  if (evt.instanceId != null) {
-    group += "[" + evt.instanceId + "]";
-  }
-
-  if (group != this._lastGroup) {
-    var elem = document.createElement("div");
-    elem.className = this.getGroupClassName();
-    elem.innerHTML = group;
-
-    this._logElem.appendChild(elem);
-    this._lastGroup = group;
-  }
-
-  // Append the message
-  var elem = document.createElement("div");
-  switch (evt.level) {
-    case Logger.LEVEL_DEBUG: elem.className = this.getDebugClassName(); break;
-    case Logger.LEVEL_INFO:  elem.className = this.getInfoClassName();  break;
-    case Logger.LEVEL_WARN:  elem.className = this.getWarnClassName();  break;
-    case Logger.LEVEL_ERROR: elem.className = this.getErrorClassName(); break;
-  }
-  elem.innerHTML = this.formatLogEvent(evt).replace(/&/g, "&amp;")
-    .replace(/</g, "&lt;").replace(/  /g, " &#160;").replace(/[\n]/g, "<br>");
-  this._logElem.appendChild(elem);
-
-  // Remove superflous messages
-  while (this._logElem.childNodes.length > this.getMaxMessages()) {
-    this._logElem.removeChild(this._logElem.firstChild);
-
-    if (this._removedMessageCount == null) {
-      this._removedMessageCount = 1;
-    } else {
-      this._removedMessageCount++;
-    }
-  }
-
-  if (this._removedMessageCount != null) {
-    this._logElem.firstChild.className = "";
-    this._logElem.firstChild.innerHTML = "(" + this._removedMessageCount
-      + " messages removed)";
-  }
-}
-
-
-// overridden
-qx.Proto.dispose = function() {
-  if (this.getDisposed()) {
-      return true;
-  }
-
-  if (this._clearBt) {
-    this._clearBt.onclick = null;
-    this._clearBt = null;
-  }
-  this._logElem = null;
-
-  return qx.log.Appender.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/Filter.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/Filter.js
deleted file mode 100644 (file)
index 8cfc739..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-#module(log)
-
-************************************************************************ */
-
-/**
- * A filter for log events.
- */
-qx.OO.defineClass("qx.log.Filter", qx.core.Object,
-function() {
-  qx.core.Object.call(this);
-});
-
-/**
- * Decidies whether a log event is accepted.
- *
- * @param evt {Map} The event to check.
- * @return {Integer} {@link #ACCEPT}, {@link #DENY} or {@link #NEUTRAL}.
- */
-qx.Proto.decide = function(evt) {
-  throw new Error("decide is abstract");
-}
-
-
-/** {int} Specifies that the log event is accepted. */
-qx.Class.ACCEPT = 1;
-
-/** {int} Specifies that the log event is denied. */
-qx.Class.DENY = 2;
-
-/** {int} Specifies that the filter is neutral to the log event. */
-qx.Class.NEUTRAL = 3;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/FireBugAppender.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/FireBugAppender.js
deleted file mode 100644 (file)
index 6b27588..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 David Perez
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * David Perez (david-perez)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-#module(log)
-
-************************************************************************ */
-
-/**
- * An appender that writes all messages to FireBug, a nice extension for debugging and developing under Firefox.
- * <p>
- * This class does not depend on qooxdoo widgets, so it also works when there
- * are problems with widgets or when the widgets are not yet initialized.
- * </p>
- */
-qx.OO.defineClass('qx.log.FireBugAppender', qx.log.Appender, function() {
-  qx.log.Appender.call(this);
-});
-
-qx.Proto.appendLogEvent = function(evt)
-{
-  if (typeof console != 'undefined')
-  {
-    var log = qx.log.Logger;
-    var msg = this.formatLogEvent(evt);
-
-    switch (evt.level)
-    {
-      case log.LEVEL_DEBUG:
-        if (console.debug) {
-          console.debug(msg);
-        }
-        break;
-      case log.LEVEL_INFO:
-        if (console.info) {
-          console.info(msg);
-        }
-        break;
-      case log.LEVEL_WARN:
-        if (console.warn) {
-          console.warn(msg);
-        }
-        break;
-      default:
-        if (console.error) {
-          console.error(msg);
-        }
-        break;
-    }
-    // Force a stack dump, for helping locating the error
-    if (evt.level > log.LEVEL_WARN && (!evt.throwable || !evt.throwable.stack) && console.trace)
-    {
-        console.trace();
-    }
-  }
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/ForwardAppender.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/ForwardAppender.js
deleted file mode 100644 (file)
index 05cc183..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(log)
-
-************************************************************************ */
-
-/**
- * An appender that forwards all log events to a log event processor.
- *
- * @param targetProcessor {LogEventProcessor} The log event processor Where to
- *    pass the log events.
- */
-qx.OO.defineClass("qx.log.ForwardAppender", qx.log.Appender,
-function(targetProcessor) {
-  qx.log.Appender.call(this);
-
-  this._targetProcessor = targetProcessor;
-});
-
-
-// overridden
-qx.Proto.appendLogEvent = function(evt) {
-  this._targetProcessor.handleLogEvent(evt);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/LogEventProcessor.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/LogEventProcessor.js
deleted file mode 100644 (file)
index a7ee918..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-
-************************************************************************ */
-
-/**
- * Processes log events. May be configured with filters in order to specify
- * which log events should be processed.
- */
-qx.OO.defineClass("qx.log.LogEventProcessor", qx.core.Object,
-function() {
-  qx.core.Object.call(this);
-});
-
-
-/**
- * Appends a filter to the filter chain.
- *
- * @param filter {Filter} The filter to append.
- */
-qx.Proto.addFilter = function(filter) {
-  if (this._filterArr == null) {
-    this._filterArr = []
-  }
-  this._filterArr.push(filter);
-}
-
-
-/**
- * Clears the filter chain.
- */
-qx.Proto.clearFilters = function() {
-  this._filterArr = null;
-}
-
-
-/**
- * Returns the head filter from the chain. Returns null if there are no filters.
- *
- * @return {Filter} the head filter from the chain.
- */
-qx.Proto.getHeadFilter = function() {
-  return (this._filterArr == null || this._filterArr.length == 0) ? null : this._filterArr[0];
-}
-
-
-/**
- * Returns the default filter from the chain. If the head filter is no default
- * filter, the chain will be cleared and a default filter will be created.
- *
- * @return {Filter} the default filter.
- */
-qx.Proto._getDefaultFilter = function() {
-  var headFilter = this.getHeadFilter();
-  if (! (headFilter instanceof qx.log.DefaultFilter)) {
-    // The head filter of the appender is no DefaultFilter
-    // (or the appender has no filters at all)
-    // -> Create a default handler and append it
-    this.clearFilters();
-    headFilter = new qx.log.DefaultFilter();
-    this.addFilter(headFilter);
-  }
-
-  return headFilter;
-}
-
-
-/**
- * Sets whether event processing should be enabled.
- * <p>
- * Note: This will clear all custom filters.
- *
- * @param enabled {Boolean} whether event processing should be enabled.
- */
-qx.Proto.setEnabled = function(enabled) {
-  this._getDefaultFilter().setEnabled(enabled);
-}
-
-
-/**
- * Sets the min level an event must have in order to be processed.
- * <p>
- * Note: This will clear all custom filters.
- *
- * @param minLevel {Integer} the new min level.
- */
-qx.Proto.setMinLevel = function(minLevel) {
-  this._getDefaultFilter().setMinLevel(minLevel);
-}
-
-
-/**
- * Decides whether a log event is processed.
- *
- * @param evt {Map} the event to check.
- * @return {Integer} {@link Filter#ACCEPT}, {@link Filter#DENY} or
- *     {@link Filter#NEUTRAL}.
- */
-qx.Proto.decideLogEvent = function(evt) {
-  var NEUTRAL = qx.log.Filter.NEUTRAL;
-
-  if (this._filterArr != null) {
-    for (var i = 0; i < this._filterArr.length; i++) {
-      var decision = this._filterArr[i].decide(evt);
-      if (decision != NEUTRAL) {
-        return decision;
-      }
-    }
-  }
-
-  // All filters are neutral, so are we
-  return NEUTRAL;
-}
-
-
-/**
- * Processes a log event.
- *
- * @param evt {Map} The log event to process.
- */
-qx.Proto.handleLogEvent = function(evt) {
-  throw new Error("handleLogEvent is abstract");
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/Logger.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/Logger.js
deleted file mode 100644 (file)
index 8f16559..0000000
+++ /dev/null
@@ -1,382 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-#module(log)
-#require(qx.log.WindowAppender)
-#require(qx.log.FireBugAppender)
-*
-************************************************************************ */
-
-/**
- * A logger. Logs messages of one log category.
- *
- * @param name {String} The category name of this logger. (Normally a class or
- *    package name)
- * @param parentLogger {Logger} The parent logger.
- */
-qx.OO.defineClass("qx.log.Logger", qx.log.LogEventProcessor,
-function(name, parentLogger) {
-  qx.log.LogEventProcessor.call(this);
-
-  this._name = name;
-  this._parentLogger = parentLogger;
-});
-
-
-/**
- * Returns the name of this logger. (Normally a class or package name)
- *
- * @return {String} the name.
- */
-qx.Proto.getName = function() {
-  return this._name;
-}
-
-
-/**
- * Returns the parent logger.
- *
- * @return {Logger} the parent logger.
- */
-qx.Proto.getParentLogger = function() {
-  return this._parentLogger;
-}
-
-
-/**
- * Indents all following log messages by one.
- * <p>
- * This affects all log messages. Even those of other loggers.
- */
-qx.Proto.indent = function() {
-  qx.log.Logger._indent++;
-}
-
-
-/**
- * Unindents all following log messages by one.
- * <p>
- * This affects all log messages. Even those of other loggers.
- */
-qx.Proto.unindent = function() {
-  qx.log.Logger._indent--;
-}
-
-
-/**
- * Adds an appender.
- * <p>
- * If a logger has an appender, log events will not be passed to the
- * appenders of parent loggers. If you want this behaviour, also append a
- * {@link ForwardAppender}.
- *
- * @param appender {Appender} the appender to add.
- */
-qx.Proto.addAppender = function(appender) {
-  if (this._appenderArr == null) {
-    this._appenderArr = [];
-  }
-
-  this._appenderArr.push(appender);
-}
-
-
-/**
- * Removes an appender.
- *
- * @param appender {Appender} the appender to remove.
- */
-qx.Proto.removeAppender = function(appender) {
-  if (this._appenderArr != null) {
-    this._appenderArr.remove(appender);
-  }
-}
-
-
-/**
- * Removes all appenders.
- */
-qx.Proto.removeAllAppenders = function() {
-  this._appenderArr = null;
-}
-
-
-// overridden
-qx.Proto.handleLogEvent = function(evt) {
-  var Filter = qx.log.Filter;
-
-  var decision = Filter.NEUTRAL;
-  var logger = this;
-  while (decision == Filter.NEUTRAL && logger != null) {
-    decision = logger.decideLogEvent(evt);
-    logger = logger.getParentLogger();
-  }
-
-  if (decision != Filter.DENY) {
-    this.appendLogEvent(evt);
-  }
-}
-
-
-/**
- * Passes a log event to the appenders. If the logger has no appenders the
- * event will be passed to the appenders of the parent logger, and so on.
- *
- * @param evt {Map} The event to append.
- */
-qx.Proto.appendLogEvent = function(evt) {
-  if (this._appenderArr != null && this._appenderArr.length != 0) {
-    for (var i = 0; i < this._appenderArr.length; i++) {
-      this._appenderArr[i].handleLogEvent(evt);
-    }
-  } else if (this._parentLogger != null) {
-    this._parentLogger.appendLogEvent(evt);
-  }
-}
-
-
-/**
- * Logs a message.
- *
- * @param level {Integer} the log level.
- * @param msg {var} the message to log. If this is not a string, the
- *    object dump will be logged.
- * @param instanceId {var ? null} the ID of the instance the log message comes from.
- * @param exc {var ? null} the exception to log.
- */
-qx.Proto.log = function(level, msg, instanceId, exc) {
-  var evt = { logger:this, level:level, message:msg, throwable:exc,
-              indent:qx.log.Logger._indent, instanceId:instanceId }
-  this.handleLogEvent(evt);
-}
-
-
-/**
- * Logs a debug message.
- *
- * @param msg {var} the message to log. If this is not a string, the
- *    object dump will be logged.
- * @param instanceId {var ? null} the ID of the instance the log message comes from.
- * @param exc {var ? null} the exception to log.
- */
-qx.Proto.debug = function(msg, instanceId, exc) {
-  this.log(qx.log.Logger.LEVEL_DEBUG, msg, instanceId, exc);
-}
-
-
-/**
- * Logs an info message.
- *
- * @param msg {var} the message to log. If this is not a string, the
- *    object dump will be logged.
- * @param instanceId {var ? null} the ID of the instance the log message comes from.
- * @param exc {var ? null} the exception to log.
- */
-qx.Proto.info = function(msg, instanceId, exc) {
-  this.log(qx.log.Logger.LEVEL_INFO, msg, instanceId, exc);
-}
-
-
-/**
- * Logs a warning message.
- *
- * @param msg {var} the message to log. If this is not a string, the
- *    object dump will be logged.
- * @param instanceId {var ? null} the ID of the instance the log message comes from.
- * @param exc {var ? null} the exception to log.
- */
-qx.Proto.warn = function(msg, instanceId, exc) {
-  this.log(qx.log.Logger.LEVEL_WARN, msg, instanceId, exc);
-}
-
-
-/**
- * Logs an error message.
- *
- * @param msg {var} the message to log. If this is not a string, the
- *    object dump will be logged.
- * @param instanceId {var ? null} the ID of the instance the log message comes from.
- * @param exc {var ? null} the exception to log.
- */
-qx.Proto.error = function(msg, instanceId, exc) {
-  this.log(qx.log.Logger.LEVEL_ERROR, msg, instanceId, exc);
-}
-
-
-/**
- * Logs a fatal message.
- *
- * @param msg {var} the message to log. If this is not a string, its
- *    object dump will be logged.
- * @param instanceId {var ? null} the ID of the instance the log message comes from.
- * @param exc {var ? null} the exception to log.
- */
-qx.Proto.fatal = function(msg, instanceId, exc) {
-  this.log(qx.log.Logger.LEVEL_FATAL, msg, instanceId, exc);
-}
-
-
-/**
- * Resets the measure timer.
- *
- * @see #measure()
- */
-qx.Proto.measureReset = function() {
-  if (this._totalMeasureTime != null) {
-    this.debug("Measure reset. Total measure time: " + this._totalMeasureTime + " ms");
-  }
-
-  this._lastMeasureTime = null;
-  this._totalMeasureTime = null;
-}
-
-
-/**
- * Logs a debug message and measures the time since the last call of measure.
- *
- * @param msg {String} the message to log.
- * @param instanceId {var ? null} the ID of the instance the log message comes from.
- * @param exc {var ? null} the exception to log.
- */
-qx.Proto.measure = function(msg, instanceId, exc) {
-  if (this._lastMeasureTime == null) {
-    msg = "(measure start) " + msg;
-  } else {
-    var delta = new Date().getTime() - this._lastMeasureTime;
-
-    if (this._totalMeasureTime == null) {
-      this._totalMeasureTime = 0;
-    }
-
-    this._totalMeasureTime += delta;
-    msg = "(passed time: " + delta + " ms) " + msg;
-  }
-
-  this.debug(msg, instanceId, exc);
-
-  this._lastMeasureTime = new Date().getTime();
-}
-
-
-/**
- * Logs the current stack trace as a debug message.
- */
-qx.Proto.printStackTrace = function() {
-  try {
-    forced_exception.go;
-  } catch (exc) {
-    this.debug("Current stack trace", "", exc);
-  }
-}
-
-
-/**
- * Returns the logger of a class.
- *
- * @param clazz {Function} The class of which to return the logger.
- */
-qx.Class.getClassLogger = function(clazz) {
-  var logger = clazz._logger;
-  if (logger == null) {
-    // Get the parent logger
-    var classname = clazz.classname;
-    var splits = classname.split(".");
-    var currPackage = window;
-    var currPackageName = "";
-    var parentLogger = qx.log.Logger.ROOT_LOGGER;
-    for (var i = 0; i < splits.length - 1; i++) {
-      currPackage = currPackage[splits[i]];
-      currPackageName += ((i != 0) ? "." : "") + splits[i];
-
-      if (currPackage._logger == null) {
-        // This package has no logger -> Create one
-        currPackage._logger = new qx.log.Logger(currPackageName, parentLogger);
-      }
-      parentLogger = currPackage._logger;
-    }
-
-    // Create the class logger
-    logger = new qx.log.Logger(classname, parentLogger);
-    clazz._logger = logger;
-  }
-  return logger;
-}
-
-
-/** {Integer} The current indent. */
-qx.Class._indent = 0;
-
-/**
- * {Integer} The ALL level has the lowest possible rank and is intended to turn on
- * all logging.
- */
-qx.Class.LEVEL_ALL = 0;
-
-/**
- * {Integer} The DEBUG Level designates fine-grained informational events that are
- * most useful to debug an application.
- */
-qx.Class.LEVEL_DEBUG = 200;
-
-/**
- * {Integer} The INFO level designates informational messages that highlight the
- * progress of the application at coarse-grained level.
- */
-qx.Class.LEVEL_INFO = 500;
-
-/** {Integer} The WARN level designates potentially harmful situations. */
-qx.Class.LEVEL_WARN = 600;
-
-/**
- * {Integer} The ERROR level designates error events that might still allow the
- * application to continue running.
- */
-qx.Class.LEVEL_ERROR = 700;
-
-/**
- * {Integer} The FATAL level designates very severe error events that will
- * presumably lead the application to abort.
- */
-qx.Class.LEVEL_FATAL = 800;
-
-/**
- * {Integer} The OFF has the highest possible rank and is intended to turn off
- * logging.
- */
-qx.Class.LEVEL_OFF = 1000;
-
-
-/**
- * {Logger} The root logger. This is the root of the logger tree. All loggers
- * should be a child or grand child of this root logger.
- * <p>
- * This logger logs by default everything greater than level INFO to a log
- * window.
- */
-qx.Class.ROOT_LOGGER = new qx.log.Logger("root", null);
-qx.Class.ROOT_LOGGER.setMinLevel(qx.log.Logger.LEVEL_DEBUG);
-
-if (typeof console != 'undefined' && console.debug) {
-  qx.Class.ROOT_LOGGER.addAppender(new qx.log.FireBugAppender());
-} else {
-  qx.Class.ROOT_LOGGER.addAppender(new qx.log.WindowAppender());
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/RingBufferAppender.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/RingBufferAppender.js
deleted file mode 100644 (file)
index d7c36f8..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Carsten Lergenmueller (carstenl)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(log)
-
-************************************************************************ */
-
-/**
- * An appender that writes all messages to a memory container. The messages
- * can be retrieved later, f. i. when an error dialog pops up and the question
- * arises what actions have caused the error.
- *
- */
-qx.OO.defineClass("qx.log.RingBufferAppender", qx.log.Appender,
-function() {
-  qx.log.Appender.call(this);
-
-  this._history = [];
-  this._nextIndexToStoreTo = 0;
-  this._appenderToFormatStrings = null;
-});
-
-
-/**
- * The maximum number of messages to hold. If null the number of messages is not
- * limited. Warning: Changing this property will clear the events logged so far.
- */
-qx.OO.addProperty({ name:"maxMessages", type:"number", defaultValue:50 });
-
-qx.Proto._modifyMaxMessages = function(propValue, propOldValue, propData){
-  this._history = [];
-  this._nextIndexToStoreTo = 0;
-};
-
-// overridden
-qx.Proto.appendLogEvent = function(evt) {
-  var maxMessages = this.getMaxMessages();
-  if (this._history.length < maxMessages){
-    this._history.push(evt);
-  } else {
-    this._history[this._nextIndexToStoreTo++] = evt;
-    if (this._nextIndexToStoreTo >= maxMessages){
-      this._nextIndexToStoreTo = 0;
-    }
-  }
-};
-
-/**
- * Returns log events which have been logged previously.
- *
- * @param count {Integer} The number of events to retreive. If there are more events than the
- *                    given count, the oldest ones will not be returned.
- * @return {array} array of stored log events
- */
-qx.Proto.retrieveLogEvents = function(count) {
-  if (count > this._history.length){
-    count = this._history.length;
-  }
-
-  var indexOfYoungestElementInHistory
-    = this._history.length == this.getMaxMessages() ? this._nextIndexToStoreTo - 1
-                                                    : this._history.length - 1;
-  var startIndex = indexOfYoungestElementInHistory - count + 1;
-  if (startIndex < 0){
-    startIndex += this._history.length;
-  }
-
-  var result;
-  if (startIndex <= indexOfYoungestElementInHistory){
-    result = this._history.slice(startIndex, indexOfYoungestElementInHistory + 1);
-  } else {
-    result = this._history.slice(startIndex, this._history.length).concat(
-                this._history.slice(0, indexOfYoungestElementInHistory + 1)
-              );
-  }
-  return result;
-};
-
-/**
- * Returns a string holding the information of log events which have been logged previously.
- *
- * @param count {Integer} The number of events to retreive. If there are more events than the
- *                    given count, the oldest ones will not be returned.
- * @return {String} string
- */
-qx.Proto.formatLogEvents = function(count) {
-  if (this._appenderToFormatStrings == null){
-    this._appenderToFormatStrings = new qx.log.Appender();
-  }
-
-  var events = this.retrieveLogEvents(count);
-  var string = "";
-  for(var idx=0; idx < events.length; idx++) {
-    string += this._appenderToFormatStrings.formatLogEvent(events[idx]) + "\n";
-  }
-  return string;
-};
-
-// overridden
-qx.Proto.dispose = function() {
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  return qx.log.Appender.prototype.dispose.call(this);
-};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/WindowAppender.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/WindowAppender.js
deleted file mode 100644 (file)
index 4bfc5e5..0000000
+++ /dev/null
@@ -1,286 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-#module(log)
-
-************************************************************************ */
-
-/**
- * An appender that writes all messages to a log window.
- * <p>
- * This class does not depend on qooxdoo widgets, so it also works when there
- * are problems with widgets or when the widgets are not yet initialized.
- *
- * @param name {String ? "qx_log"} the name of the log window.
- */
-qx.OO.defineClass("qx.log.WindowAppender", qx.log.Appender,
-function(name) {
-  qx.log.Appender.call(this);
-
-  this._id = qx.log.WindowAppender.register(this);
-  this._name = (name == null) ? "qx_log" : name;
-
-  this._errorsPreventingAutoCloseCount = 0;
-
-  this._logWindowOpened = false;
-});
-
-
-/**
- * The maximum number of messages to show. If null the number of messages is not
- * limited.
- */
-qx.OO.addProperty({ name:"maxMessages", type:"number", defaultValue:500 });
-
-/** Whether the window should appear under the main window. */
-qx.OO.addProperty({ name:"popUnder", type:"boolean", defaultValue:false, allowNull:false });
-
-/** Whether the window should automatically be closed when its creating page is unloaded and
- * errors have been logged. Note that errors that have been logged before this property has been
- * turned off will be ignored. Warning: Turning this off may create a memory hole because the disposer
- * of this class will auto-close the window, i. e. it may stay open after dispose(), still holding
- * memory. However, for diagnostics it is often more important to get information about errors
- * than to save memory.
- */
-qx.OO.addProperty({ name:"autoCloseWithErrors", type:"boolean", defaultValue:true, allowNull:false });
-
-
-/**
- * Creates and opens the log window if it doesn't alread exist.
- */
-qx.Proto.openWindow = function() {
-  if (this._logWindowOpened) {
-    // The window is already open -> Nothing to do
-    return;
-  }
-
-  // Open the logger window
-  var winWidth = 600;
-  var winHeight = 350;
-  var winLeft = window.screen.width - winWidth;
-  var winTop = window.screen.height - winHeight;
-  var params = "toolbar=no,scrollbars=yes,resizable=yes,"
-    + "width=" + winWidth + ",height=" + winHeight
-    + ",left=" + winLeft + ",top=" + winTop;
-
-  // NOTE: In window.open the browser will process the event queue.
-  //     Which means that other log events may arrive during this time.
-  //     The log window is then in an inconsistent state, because the
-  //     this._logElem is not created yet. These events will be added to the
-  //     this._logEventQueue and logged after this._logElem is created.
-  this._logWindow = window.open("", this._name, params);
-
-  if (!this._logWindow || this._logWindow.closed)
-  {
-    if (!this._popupBlockerWarning) {
-      alert("Couldn't open debug window. Please disable your popup blocker!");
-    }
-
-    this._popupBlockerWarning = true;
-    return;
-  }
-
-  // Seems to be OK now.
-  this._popupBlockerWarning = false;
-
-  // Store that window is open
-  this._logWindowOpened = true;
-
-  if (this.getPopUnder()) {
-    this._logWindow.blur();
-    window.focus();
-  }
-
-  var logDocument = this._logWindow.document;
-  // NOTE: We have to use a static onunload handler, because an onunload
-  //     that is set later using DOM is ignored completely.
-  //     (at least in Firefox, but maybe in IE, too)
-  logDocument.open();
-  logDocument.write("<html><head><title>" + this._name + "</title></head>"
-    + '<body onload="qx = opener.qx;" onunload="try{qx.log.WindowAppender._registeredAppenders[' + this._id + ']._autoCloseWindow()}catch(e){}">'
-    + '<pre id="log" wrap="wrap" style="font-size:11"></pre></body></html>');
-  logDocument.close();
-
-  this._logElem = logDocument.getElementById("log");
-
-  // Log the events from the queue
-  if (this._logEventQueue != null) {
-    for (var i = 0; i < this._logEventQueue.length; i++) {
-      this.appendLogEvent(this._logEventQueue[i]);
-    }
-    this._logEventQueue = null;
-  }
-};
-
-
-/**
- * Closes the log window.
- */
-qx.Proto.closeWindow = function() {
-  if (this._logWindow != null) {
-    this._logWindow.close();
-    this._logWindow = null;
-    this._logElem = null;
-    this._logWindowOpened = false;
-  }
-};
-
-/**
- * Called when the window should be automatically closed (because the page that opened
- * is is unloaded). Will only close the window if the autoClose***-Properties allow it
- */
-qx.Proto._autoCloseWindow = function() {
-  if (this.getAutoCloseWithErrors() || this._errorsPreventingAutoCloseCount == 0){
-    this.closeWindow();
-  } else  {
-    //Show message why auto-close has failed
-    this._showMessageInLog("Log window message: <b>Note: " + this._errorsPreventingAutoCloseCount
-                        + " errors have been recorded, keeping log window open.</b>");
-  }
-};
-
-/**
- * Appends a line to the log showing the given text
- * @param msg {String} message to show, may be HTML
- */
-qx.Proto._showMessageInLog = function(msg) {
-  //Create dummy log event and use appendLogEvent()
-  //Reason is that it is rather complicated to get something into the log
-  //window when it is not already open -> reuse the existing code
-  //which does event queuing in such a case
-  var dummyEvent = {message: msg, isDummyEventForMessage : true};
-  this.appendLogEvent(dummyEvent);
-};
-
-
-// overridden
-qx.Proto.appendLogEvent = function(evt) {
-  if (!this._logWindowOpened) {
-    this._logEventQueue = [];
-    this._logEventQueue.push(evt);
-
-    this.openWindow();
-
-    // Popup-Blocker was active!
-    if (!this._logWindowOpened) {
-      return;
-    }
-  } else if (this._logElem == null) {
-    // The window is currenlty opening, but not yet finished
-    // -> Put the event in the queue
-    this._logEventQueue.push(evt);
-  } else {
-    var divElem = this._logWindow.document.createElement("div");
-    if (evt.level >= qx.log.Logger.LEVEL_ERROR) {
-      divElem.style.backgroundColor = "#FFEEEE";
-      if (!this.getAutoCloseWithErrors()){
-        this._errorsPreventingAutoCloseCount += 1;
-      }
-    } else if (evt.level == qx.log.Logger.LEVEL_DEBUG) {
-      divElem.style.color = "gray";
-    }
-    if (evt.isDummyEventForMessage){
-      divElem.innerHTML = evt.message;
-    } else {
-      divElem.innerHTML = qx.html.String.fromText(this.formatLogEvent(evt));
-    }
-    this._logElem.appendChild(divElem);
-
-    while (this._logElem.childNodes.length > this.getMaxMessages()) {
-      this._logElem.removeChild(this._logElem.firstChild);
-
-      if (this._removedMessageCount == null) {
-        this._removedMessageCount = 1;
-      } else {
-        this._removedMessageCount++;
-      }
-    }
-
-    if (this._removedMessageCount != null) {
-      this._logElem.firstChild.innerHTML = "(" + this._removedMessageCount
-        + " messages removed)";
-    }
-
-    // Scroll to bottom
-    this._logWindow.scrollTo(0, this._logElem.offsetHeight);
-  }
-}
-
-qx.Proto._modifyAutoCloseWithErrors = function(propValue, propOldValue, propData){
-  if (!propValue && propOldValue){
-    this._errorsPreventingAutoCloseCount = 0;
-
-    //Show message in log so user can see which errors have been counted
-    this._showMessageInLog("Log window message: Starting error recording, any errors below this line will prevent the log window from closing");
-
-  } else if (propValue && !propOldValue){
-    //Show message in log so user can see which errors have been counted
-    this._showMessageInLog("Log window message: Stopping error recording, discarding " + this._errorsPreventingAutoCloseCount + " errors.");
-  }
-  return true;
-}
-
-
-
-// overridden
-qx.Proto.dispose = function() {
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  this._autoCloseWindow();
-
-  return qx.log.Appender.prototype.dispose.call(this);
-}
-
-
-qx.Class._nextId = 1;
-qx.Class._registeredAppenders = {};
-
-
-/**
- * Registers a WindowAppender. This is used by the WindowAppender internally.
- * You don't have to call this.
- *
- * @param appender {WindowAppender} the WindowAppender to register.
- * @return {Integer} the ID.
- */
-qx.Class.register = function(appender) {
-  var WindowAppender = qx.log.WindowAppender;
-
-  var id = WindowAppender._nextId++;
-  WindowAppender._registeredAppenders[id] = appender;
-
-  return id;
-}
-
-
-/**
- * Returns a prviously registered WindowAppender.
- *
- * @param id {Integer} the ID of the wanted WindowAppender.
- * @return {WindowAppender} the WindowAppender or null if no
- *     WindowAppender with this ID is registered.
- */
-qx.Class.getAppender = function(id) {
-  return qx.log.WindowAppender._registeredAppenders[id];
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/AliasManager.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/AliasManager.js
deleted file mode 100644 (file)
index e1247d8..0000000
+++ /dev/null
@@ -1,239 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-
-************************************************************************ */
-
-/**
- * This singleton manage global resource aliases
- *
- * @event change {qx.event.type.Event}
- */
-qx.OO.defineClass("qx.manager.object.AliasManager", qx.core.Target,
-function()
-{
-  qx.core.Target.call(this);
-
-  // Contains defined aliases (like icons/, widgets/, application/, ...)
-  this._aliases = {};
-
-  // Containes computed paths
-  this._uris = {};
-
-  // Define static alias from setting
-  this.add("static", this.getSetting("staticUri"));
-});
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFAULT SETTINGS
----------------------------------------------------------------------------
-*/
-
-qx.Settings.setDefault("resourceUri", "../../resource");
-qx.Settings.setDefault("staticUri", qx.Settings.getValue("resourceUri") + "/static");
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ALIAS MANAGMENT
----------------------------------------------------------------------------
-*/
-
-/**
- * Define an alias to a resource path
- *
- * @param vAlias {String} alias name for the resource path/url
- * @param vUriStart {String} first part of URI for all images which use this alias
- */
-qx.Proto.add = function(vAlias, vUriStart)
-{
-  this._aliases[vAlias] = vUriStart;
-
-  // Cleanup old uris which use this alias
-  for (var vPath in this._uris)
-  {
-    if (vPath.substring(0, vPath.indexOf("/")) == vAlias) {
-      this._uris[vPath] = null;
-    }
-  }
-
-  // Fire change event (for ImageManager, etc.)
-  this.createDispatchEvent("change");
-}
-
-/**
- * Remove a previously defined alias
- *
- * @param vAlias {String} alias name for the resource path/url
- */
-qx.Proto.remove = function(vAlias)
-{
-  delete this._aliases[vAlias];
-
-  // Cleanup old uris which use this alias
-  for (var vPath in this._uris)
-  {
-    if (vPath.substring(0, vPath.indexOf("/")) == vAlias) {
-      this._uris[vPath] = null;
-    }
-  }
-
-  // Fire change event (for ImageManager, etc.)
-  this.createDispatchEvent("change");
-}
-
-/**
- * Resolve an alias to the actual resource path/url
- *
- * @param vAlias {String} alias name for the resource path/url
- * @return {String} resource path/url
- */
-qx.Proto.resolve = function(vAlias) {
-  return this._aliases[vAlias];
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  URI HANDLING
----------------------------------------------------------------------------
-*/
-
-/**
- * Resolve a path name to a resource URI taking the defined aliases into account
- * and cache the result.
- *
- * If the first part of the path is a defined alias, the alias is resolved.
- * Otherwhise the path is returned unmodified.
- *
- * @param vPath {String} path name
- * @param vForceUpdate {Boolean} (default=false) wether the cached value should be ignored
- * @return {String} reolved path/url
- */
-qx.Proto.resolvePath = function(vPath, vForceUpdate)
-{
-  var vUri = this._uris[vPath];
-
-  if (vUri == null) {
-    vUri = this._uris[vPath] = this._computePath(vPath);
-  }
-
-  // this.debug("URI: " + vPath + " => " + vUri);
-
-  return vUri;
-}
-
-
-/**
- * Resolve a path name to a resource URI taking the defined aliases into account.
- *
- * If the first part of the path is a defined alias, the alias is resolved.
- * Otherwhise the path is returned unmodified.
- *
- * @param vPath {String} path name
- * @return {String} reolved path/url
- */
-qx.Proto._computePath = function(vPath)
-{
-  switch(vPath.charAt(0))
-  {
-    case "/":
-    case ".":
-      return vPath;
-
-    default:
-      if (
-        qx.lang.String.startsWith(vPath, qx.net.Protocol.URI_HTTP) ||
-        qx.lang.String.startsWith(vPath, qx.net.Protocol.URI_HTTPS) ||
-        qx.lang.String.startsWith(vPath, qx.net.Protocol.URI_FILE)
-      ) {
-        return vPath;
-      }
-
-      var vAlias = vPath.substring(0, vPath.indexOf("/"));
-      var vResolved = this._aliases[vAlias];
-
-      if (vResolved != null) {
-        return vResolved + vPath.substring(vAlias.length);
-      }
-
-      return vPath;
-  }
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-/**
- * Disposer
- */
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this._aliases = null;
-  this._uris = null;
-
-  return qx.core.Target.prototype.dispose.call(this);
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/AppearanceManager.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/AppearanceManager.js
deleted file mode 100644 (file)
index cf7ea1e..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-
-************************************************************************ */
-
-/**
- * This singleton manages the current theme
- */
-qx.OO.defineClass("qx.manager.object.AppearanceManager", qx.manager.object.ObjectManager,
-function() {
-  qx.manager.object.ObjectManager.call(this);
-
-  // Themes
-  this._appearanceThemes = {};
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFAULT SETTINGS
----------------------------------------------------------------------------
-*/
-
-qx.Settings.setDefault("appearanceTheme", "qx.theme.appearance.Classic");
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/** currently used apperance theme */
-qx.OO.addProperty({ name : "appearanceTheme", type : "object", allowNull : false, instance : "qx.renderer.theme.AppearanceTheme" });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  REGISTRATION
----------------------------------------------------------------------------
-*/
-
-/**
- * Register an theme class.
- * The theme is applied if it is the default apperance
- *
- * @param vThemeClass {qx.renderer.theme.AppearanceTheme}
- */
-qx.Proto.registerAppearanceTheme = function(vThemeClass)
-{
-  this._appearanceThemes[vThemeClass.classname] = vThemeClass;
-
-  if (vThemeClass.classname == this.getSetting("appearanceTheme")) {
-    this.setAppearanceTheme(vThemeClass.getInstance());
-  }
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyAppearanceTheme = function(propValue, propOldValue, propData)
-{
-  var vComp = qx.core.Init.getInstance().getComponent();
-
-  if (vComp && vComp.isUiReady()) {
-    qx.ui.core.ClientDocument.getInstance()._recursiveAppearanceThemeUpdate(propValue, propOldValue);
-  }
-
-  return true;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-/**
- * Disposer
- */
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  // Themes
-  this._appearanceThemes = null;
-
-  return qx.manager.object.ObjectManager.prototype.dispose.call(this);
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/ColorManager.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/ColorManager.js
deleted file mode 100644 (file)
index 4298aed..0000000
+++ /dev/null
@@ -1,230 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#optional(qx.ui.form.Button)
-#embed(qx.icontheme/16/actions/format-color.png)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.manager.object.ColorManager", qx.manager.object.ObjectManager,
-function()
-{
-  qx.manager.object.ObjectManager.call(this);
-
-  // Themes
-  this._colorThemes = {};
-
-  // Contains the qx.renderer.color.ColorObjects which
-  // represent a themed color.
-  this._dependentObjects = {};
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFAULT SETTINGS
----------------------------------------------------------------------------
-*/
-
-qx.Settings.setDefault("colorTheme", "qx.theme.color.WindowsRoyale");
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.addProperty({ name : "colorTheme", type : "object", allowNull : false, instance : "qx.renderer.theme.ColorTheme" });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  REGISTRATION
----------------------------------------------------------------------------
-*/
-
-qx.Proto.registerColorTheme = function(vThemeClass)
-{
-  this._colorThemes[vThemeClass.classname] = vThemeClass;
-
-  if (vThemeClass.classname == this.getSetting("colorTheme")) {
-    this.setColorTheme(vThemeClass.getInstance());
-  }
-}
-
-qx.Proto.setColorThemeById = function(vId) {
-  this.setColorTheme(this._colorThemes[vId].getInstance());
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PUBLIC METHODS FOR qx.renderer.color.ColorOBJECTS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.add = function(oObject)
-{
-  var vValue = oObject.getValue();
-
-  this._objects[vValue] = oObject;
-
-  if (oObject.isThemedColor()) {
-    this._dependentObjects[vValue] = oObject;
-  }
-}
-
-qx.Proto.remove = function(oObject)
-{
-  var vValue = oObject.getValue();
-
-  delete this._objects[vValue];
-  delete this._dependentObjects[vValue];
-}
-
-qx.Proto.has = function(vValue) {
-  return this._objects[vValue] != null;
-}
-
-qx.Proto.get = function(vValue) {
-  return this._objects[vValue];
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyColorTheme = function(propValue, propOldValue, propData)
-{
-  propValue.compile();
-
-  for (var i in this._dependentObjects) {
-    this._dependentObjects[i]._updateTheme(propValue);
-  }
-
-  return true;
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITY
----------------------------------------------------------------------------
-*/
-
-qx.Proto.createThemeList = function(vParent, xCor, yCor)
-{
-  var vButton;
-  var vThemes = this._colorThemes;
-  var vIcon = "icon/16/actions/format-color.png";
-  var vPrefix = "Color Theme: ";
-  var vEvent = "execute";
-
-  for (var vId in vThemes)
-  {
-    var vObj = vThemes[vId].getInstance();
-    var vButton = new qx.ui.form.Button(vPrefix + vObj.getTitle(), vIcon);
-
-    vButton.setLocation(xCor, yCor);
-    vButton.addEventListener(vEvent, new Function("qx.manager.object.ColorManager.getInstance().setColorThemeById('" + vId + "')"));
-
-    vParent.add(vButton);
-
-    yCor += 30;
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  // Themes
-  this._colorThemes = null;
-
-  // Cleanup dependent objects
-  for (var i in this._dependentObjects) {
-    delete this._dependentObjects[i];
-  }
-
-  delete this._dependentObjects;
-
-  return qx.manager.object.ObjectManager.prototype.dispose.call(this);
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/IframeManager.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/IframeManager.js
deleted file mode 100644 (file)
index f7337f4..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/**
- * This singleton manages multiple instances of qx.ui.embed.Iframe.
- * <p>
- * The problem: When dragging over an iframe then all mouse events will be
- * passed to the document of the iframe, not the main document.
- * <p>
- * The solution: In order to be able to track mouse events over iframes, this
- * manager will block all iframes during a drag with a glasspane.
- */
-qx.OO.defineClass("qx.manager.object.IframeManager", qx.manager.object.ObjectManager,
-function(){
-  qx.manager.object.ObjectManager.call(this);
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.handleMouseDown = function(evt) {
-  var iframeMap = this.getAll();
-
-  for (var key in iframeMap) {
-    var iframe = iframeMap[key];
-    iframe.block();
-  }
-}
-
-qx.Proto.handleMouseUp = function(evt) {
-  var iframeMap = this.getAll();
-
-  for (var key in iframeMap) {
-    var iframe = iframeMap[key];
-    iframe.release();
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/ImageManager.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/ImageManager.js
deleted file mode 100644 (file)
index a71b434..0000000
+++ /dev/null
@@ -1,315 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#optional(qx.ui.form.Button)
-#embed(qx.icontheme/16/apps/preferences-desktop-theme.png)
-#require(qx.manager.object.ImagePreloaderManager)
-
-************************************************************************ */
-
-/*!
-  This singleton manage the global image path (prefix) and allowes themed icons.
-*/
-qx.OO.defineClass("qx.manager.object.ImageManager", qx.manager.object.ObjectManager,
-function()
-{
-  qx.manager.object.ObjectManager.call(this);
-
-  // Themes
-  this._iconThemes = {};
-  this._widgetThemes = {};
-
-  // Contains known image sources (all of them, if loaded or not)
-  // The value is a number which represents the number of image
-  // instances which use this source
-  this._sources = {};
-
-  // Change event connection to AliasManager
-  qx.manager.object.AliasManager.getInstance().addEventListener("change", this._onaliaschange, this);
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFAULT SETTINGS
----------------------------------------------------------------------------
-*/
-
-/*
-  Make sure to select an icon theme that is compatible to the license you
-  chose to receive the qooxdoo code under. For more information, please
-  see the LICENSE file in the project's top-level directory.
- */
-qx.Settings.setDefault("iconTheme", "qx.theme.icon.Nuvola");
-
-qx.Settings.setDefault("widgetTheme", "qx.theme.widget.Windows");
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.addProperty({ name : "iconTheme", type : "object", instance : "qx.renderer.theme.IconTheme" });
-qx.OO.addProperty({ name : "widgetTheme", type : "object", instance : "qx.renderer.theme.WidgetTheme" });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  REGISTRATION
----------------------------------------------------------------------------
-*/
-
-qx.Proto.registerIconTheme = function(vThemeClass)
-{
-  this._iconThemes[vThemeClass.classname] = vThemeClass;
-
-  if (vThemeClass.classname == this.getSetting("iconTheme")) {
-    this.setIconTheme(vThemeClass.getInstance());
-  }
-}
-
-qx.Proto.registerWidgetTheme = function(vThemeClass)
-{
-  this._widgetThemes[vThemeClass.classname] = vThemeClass;
-
-  if (vThemeClass.classname == this.getSetting("widgetTheme")) {
-    this.setWidgetTheme(vThemeClass.getInstance());
-  }
-}
-
-qx.Proto.setIconThemeById = function(vId) {
-  this.setIconTheme(this._iconThemes[vId].getInstance());
-}
-
-qx.Proto.setWidgetThemeById = function(vId) {
-  this.setWidgetTheme(this._widgetThemes[vId].getInstance());
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENTS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onaliaschange = function() {
-  this._updateImages();
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyIconTheme = function(propValue, propOldValue, propData)
-{
-  propValue ? qx.manager.object.AliasManager.getInstance().add("icon", propValue.getSetting("imageUri")) : qx.manager.object.AliasManager.getInstance().remove("icon");
-  return true;
-}
-
-qx.Proto._modifyWidgetTheme = function(propValue, propOldValue, propData)
-{
-  propValue ? qx.manager.object.AliasManager.getInstance().add("widget", propValue.getSetting("imageUri")) : qx.manager.object.AliasManager.getInstance().remove("widget");
-  return true;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PRELOAD API
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getPreloadImageList = function()
-{
-  var vPreload = {};
-
-  for (var vSource in this._sources)
-  {
-    if (this._sources[vSource]) {
-      vPreload[vSource] = true;
-    }
-  }
-
-  return vPreload;
-}
-
-qx.Proto.getPostPreloadImageList = function()
-{
-  var vPreload = {};
-
-  for (var vSource in this._sources)
-  {
-    if (!this._sources[vSource]) {
-      vPreload[vSource] = true;
-    }
-  }
-
-  return vPreload;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  INTERNAL HELPER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._updateImages = function()
-{
-  var vAll = this.getAll();
-  var vPreMgr = qx.manager.object.ImagePreloaderManager.getInstance();
-  var vAliasMgr = qx.manager.object.AliasManager.getInstance();
-  var vObject;
-
-  // Recreate preloader of affected images
-  for (var vHashCode in vAll)
-  {
-    vObject = vAll[vHashCode];
-    vObject.setPreloader(vPreMgr.create(vAliasMgr.resolvePath(vObject.getSource())));
-  }
-
-  return true;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITY
----------------------------------------------------------------------------
-*/
-
-// TODO: rename to createIconThemeList
-qx.Proto.createThemeList = function(vParent, xCor, yCor)
-{
-  var vButton;
-  var vThemes = this._iconThemes;
-  var vIcon = "icon/16/apps/preferences-desktop-theme.png";
-  var vPrefix = "Icon Theme: ";
-  var vEvent = "execute";
-
-  for (var vId in vThemes)
-  {
-    var vObj = vThemes[vId].getInstance();
-    var vButton = new qx.ui.form.Button(vPrefix + vObj.getTitle(), vIcon);
-
-    vButton.setLocation(xCor, yCor);
-    vButton.addEventListener(vEvent, new Function("qx.manager.object.ImageManager.getInstance().setIconThemeById('" + vId + "')"));
-
-    vParent.add(vButton);
-
-    yCor += 30;
-  }
-}
-
-qx.Proto.preload = function(vPath) {
-  qx.manager.object.ImagePreloaderManager.getInstance().create(qx.manager.object.AliasManager.getInstance().resolvePath(vPath));
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  // Change event connection to AliasManager
-  qx.manager.object.AliasManager.getInstance().removeEventListener("change", this._onaliaschange, this);
-
-  // Delete counter field
-  this._sources = null;
-
-  // Themes
-  this._iconThemes = null;
-  this._widgetThemes = null;
-
-  return qx.manager.object.ObjectManager.prototype.dispose.call(this);
-}
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/ImagePreloaderManager.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/ImagePreloaderManager.js
deleted file mode 100644 (file)
index 400e481..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-
-************************************************************************ */
-
-/*!
-  This singleton manage all qx.io.image.Preloader instances.
-*/
-qx.OO.defineClass("qx.manager.object.ImagePreloaderManager", qx.manager.object.ObjectManager,
-function() {
-  qx.manager.object.ObjectManager.call(this);
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.add = function(vObject) {
-  this._objects[vObject.getUri()] = vObject;
-}
-
-qx.Proto.remove = function(vObject) {
-  delete this._objects[vObject.getUri()];
-}
-
-qx.Proto.has = function(vSource) {
-  return this._objects[vSource] != null;
-}
-
-qx.Proto.get = function(vSource) {
-  return this._objects[vSource];
-}
-
-qx.Proto.create = function(vSource)
-{
-  if (this._objects[vSource]) {
-    return this._objects[vSource];
-  }
-
-  return new qx.io.image.Preloader(vSource);
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/MenuManager.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/MenuManager.js
deleted file mode 100644 (file)
index ee34ddf..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_menu)
-
-************************************************************************ */
-
-/*!
-  This singleton manages multiple instances of qx.ui.menu.Menu and their state.
-*/
-qx.OO.defineClass("qx.manager.object.MenuManager", qx.manager.object.ObjectManager,
-function(){
-  qx.manager.object.ObjectManager.call(this);
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.update = function(vTarget, vEventName)
-{
-  var vMenu, vHashCode;
-  var vAll = this.getAll();
-
-  for (vHashCode in vAll)
-  {
-    vMenu = vAll[vHashCode];
-
-    if(!vMenu.getAutoHide()) {
-      continue;
-    }
-
-    if (vTarget && vTarget.getMenu && vTarget.getMenu()) {
-      continue;
-    }
-
-    // Hide on global events (mouseup, window focus, window blur, ...)
-    if (!vTarget)
-    {
-      vMenu.hide();
-      continue;
-    }
-
-    // Hide only if the target is not a button inside this
-    // or any sub menu and is not the opener
-    var isMouseDown = vEventName == "mousedown";
-    var isMouseUp = vEventName == "mouseup";
-
-    //Close menu if the target is not the opener button...
-    if (vMenu.getOpener() !== vTarget
-
-        //  and
-        && ( vTarget &&
-             // the event is a mouse down on a non-child of the menu
-             (!vMenu.isSubElement(vTarget) && isMouseDown)
-
-             // or the event is a mouse up on a child button of the menu
-             || (vMenu.isSubElement(vTarget, true) && isMouseUp)
-
-             // or the event is a key (esc) event
-             || (!isMouseDown && !isMouseUp )))
-
-
-    {
-      vMenu.hide();
-      continue;
-    }
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/ObjectManager.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/ObjectManager.js
deleted file mode 100644 (file)
index b53e62b..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-/*!
-  This class allows basic managment of assigned objects.
-*/
-qx.OO.defineClass("qx.manager.object.ObjectManager", qx.core.Target,
-function()
-{
-  qx.core.Target.call(this);
-
-  this._objects = {};
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  USER API
----------------------------------------------------------------------------
-*/
-
-qx.Proto.add = function(vObject)
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this._objects[vObject.toHashCode()] = vObject;
-  return true;
-}
-
-qx.Proto.remove = function(vObject)
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  delete this._objects[vObject.toHashCode()];
-  return true;
-}
-
-qx.Proto.has = function(vObject) {
-  return this._objects[vObject.toHashCode()] != null;
-}
-
-qx.Proto.get = function(vObject) {
-  return this._objects[vObject.toHashCode()];
-}
-
-qx.Proto.getAll = function() {
-  return this._objects;
-}
-
-qx.Proto.enableAll = function()
-{
-  for (var vHashCode in this._objects) {
-    this._objects[vHashCode].setEnabled(true);
-  };
-};
-
-qx.Proto.disableAll = function()
-{
-  for (var vHashCode in this._objects) {
-    this._objects[vHashCode].setEnabled(false);
-  };
-};
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if(this.getDisposed()) {
-    return;
-  }
-
-  if (this._objects)
-  {
-    for (var i in this._objects) {
-      delete this._objects[i];
-    }
-
-    delete this._objects;
-  }
-
-  return qx.core.Target.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/PopupManager.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/PopupManager.js
deleted file mode 100644 (file)
index f815093..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_popup)
-#optional(qx.ui.popup.ToolTip)
-
-************************************************************************ */
-
-/*!
-  This singleton is used to manager multiple instances of popups and their state.
-*/
-qx.OO.defineClass("qx.manager.object.PopupManager", qx.manager.object.ObjectManager,
-function() {
-  qx.manager.object.ObjectManager.call(this);
-});
-
-
-
-/*
----------------------------------------------------------------------------
-  METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.update = function(vTarget)
-{
-  // be sure that target is correctly set (needed for contains() later)
-  if (!(vTarget instanceof qx.ui.core.Widget)) {
-    vTarget = null;
-  }
-
-  var vPopup, vHashCode;
-  var vAll = this.getAll();
-
-  for (vHashCode in vAll)
-  {
-    vPopup = vAll[vHashCode];
-
-    if(!vPopup.getAutoHide() || vTarget == vPopup || vPopup.contains(vTarget)) {
-      continue;
-    }
-
-    if (qx.OO.isAvailable("qx.ui.popup.ToolTip") && vTarget instanceof qx.ui.popup.ToolTip && !(vPopup instanceof qx.ui.popup.ToolTip)) {
-      continue;
-    }
-
-    vPopup.hide();
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/ToolTipManager.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/ToolTipManager.js
deleted file mode 100644 (file)
index 7cd07e7..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_popup)
-
-************************************************************************ */
-
-/*!
-  This manages ToolTip instances
-*/
-qx.OO.defineClass("qx.manager.object.ToolTipManager", qx.manager.object.ObjectManager,
-function() {
-  qx.manager.object.ObjectManager.call(this);
-});
-
-qx.OO.addProperty({ name : "currentToolTip", type : "object", instance : "qx.ui.popup.ToolTip" });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyCurrentToolTip = function(propValue, propOldValue, propData)
-{
-  // Return if the new tooltip is a child of the old one
-  if(propOldValue && propOldValue.contains(propValue)) {
-    return;
-  }
-
-  // If old tooltip existing, hide it and clear widget binding
-  if(propOldValue)
-  {
-    propOldValue.hide();
-
-    propOldValue._stopShowTimer();
-    propOldValue._stopHideTimer();
-  }
-
-  // If new tooltip is not null, set it up and start the timer
-  if(propValue) {
-    propValue._startShowTimer();
-  }
-
-  return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT INTERFACE: MOUSE
----------------------------------------------------------------------------
-*/
-
-qx.Proto.handleMouseOver = function(e)
-{
-  var vTarget = e.getTarget();
-  var vToolTip;
-
-  // Allows us to use DOM Nodes as tooltip target :)
-  if (!(vTarget instanceof qx.ui.core.Widget) && vTarget.nodeType == 1) {
-    vTarget = qx.event.handler.EventHandler.getTargetObject(vTarget);
-  }
-
-  //Search first parent which has a tooltip
-  while(vTarget != null && !(vToolTip = vTarget.getToolTip())) {
-    vTarget = vTarget.getParent();
-  }
-
-  // Bind tooltip to widget
-  if (vToolTip != null) {
-    vToolTip.setBoundToWidget(vTarget);
-  }
-
-  // Set Property
-  this.setCurrentToolTip(vToolTip);
-}
-
-qx.Proto.handleMouseOut = function(e)
-{
-  var vTarget = e.getTarget();
-  var vRelatedTarget = e.getRelatedTarget();
-
-  var vToolTip = this.getCurrentToolTip();
-
-  // If there was a tooltip and
-  // - the destination target is the current tooltip
-  //   or
-  // - the current tooltip contains the destination target
-  if(vToolTip && (vRelatedTarget == vToolTip || vToolTip.contains(vRelatedTarget))) {
-    return;
-  }
-
-  // If the destination target exists and the target contains it
-  if(vRelatedTarget && vTarget && vTarget.contains(vRelatedTarget)) {
-    return;
-  }
-
-  // If there was a tooltip and there is no new one
-  if(vToolTip && !vRelatedTarget) {
-    this.setCurrentToolTip(null);
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT INTERFACE: FOCUS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.handleFocus = function(e)
-{
-  var vTarget = e.getTarget();
-  var vToolTip = vTarget.getToolTip();
-
-  // Only set new tooltip if focus widget
-  // has one
-  if(vToolTip != null)
-  {
-    // Bind tooltip to widget
-    vToolTip.setBoundToWidget(vTarget);
-
-    // Set Property
-    this.setCurrentToolTip(vToolTip);
-  }
-}
-
-qx.Proto.handleBlur = function(e)
-{
-  var vTarget = e.getTarget();
-
-  if(!vTarget) {
-    return;
-  }
-
-  var vToolTip = this.getCurrentToolTip();
-
-  // Only set to null if blured widget is the
-  // one which has created the current tooltip
-  if(vToolTip && vToolTip == vTarget.getToolTip()) {
-    this.setCurrentToolTip(null);
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/WindowManager.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/object/WindowManager.js
deleted file mode 100644 (file)
index c0af466..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_window)
-
-************************************************************************ */
-
-/*!
-  This singleton manages qx.ui.window.Windows
-*/
-qx.OO.defineClass("qx.manager.object.WindowManager", qx.manager.object.ObjectManager,
-function() {
-  qx.manager.object.ObjectManager.call(this);
-});
-
-qx.OO.addProperty({ name : "activeWindow", type : "object" });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyActiveWindow = function(propValue, propOldValue, propData)
-{
-  qx.manager.object.PopupManager.getInstance().update();
-
-  if (propOldValue) {
-    propOldValue.setActive(false);
-  }
-
-  if (propValue) {
-    propValue.setActive(true);
-  }
-
-  if (propOldValue && propOldValue.getModal()) {
-    propOldValue.getTopLevelWidget().release(propOldValue);
-  }
-
-  if (propValue && propValue.getModal()) {
-    propValue.getTopLevelWidget().block(propValue);
-  }
-
-  return true;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.update = function(oTarget)
-{
-  var vWindow, vHashCode;
-  var vAll = this.getAll();
-
-  for (var vHashCode in vAll)
-  {
-    vWindow = vAll[vHashCode];
-
-    if(!vWindow.getAutoHide()) {
-      continue;
-    }
-
-    vWindow.hide();
-  }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MANAGER INTERFACE
----------------------------------------------------------------------------
-*/
-
-qx.Proto.compareWindows = function(w1, w2)
-{
-  switch(w1.getWindowManager().getActiveWindow())
-  {
-    case w1:
-      return 1;
-
-    case w2:
-      return -1;
-  }
-
-  return w1.getZIndex() - w2.getZIndex();
-}
-
-qx.Proto.add = function(vWindow)
-{
-  qx.manager.object.ObjectManager.prototype.add.call(this, vWindow);
-
-  // this.debug("Add: " + vWindow);
-  this.setActiveWindow(vWindow);
-}
-
-qx.Proto.remove = function(vWindow)
-{
-  qx.manager.object.ObjectManager.prototype.remove.call(this, vWindow);
-
-  // this.debug("Remove: " + vWindow);
-
-  if (this.getActiveWindow() == vWindow)
-  {
-    var a = [];
-    for (var i in this._objects) {
-      a.push(this._objects[i]);
-    }
-
-    var l = a.length;
-
-    if (l==0)
-    {
-      this.setActiveWindow(null);
-    }
-    else if (l==1)
-    {
-      this.setActiveWindow(a[0]);
-    }
-    else if (l>1)
-    {
-      a.sort(this.compareWindows);
-      this.setActiveWindow(a[l-1]);
-    }
-  }
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/selection/DomSelectionManager.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/selection/DomSelectionManager.js
deleted file mode 100644 (file)
index 63ac9ed..0000000
+++ /dev/null
@@ -1,244 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.manager.selection.DomSelectionManager", qx.manager.selection.SelectionManager,
-function(vBoundedWidget)
-{
-  qx.manager.selection.SelectionManager.call(this, vBoundedWidget);
-
-  // the children does not fire onmouseover events so we could
-  // not enable this and make it functional
-  this.setDragSelection(false);
-
-  this._selectedItems.getItemHashCode = this.getItemHashCode;
-});
-
-
-
-/*
----------------------------------------------------------------------------
-  MAPPING TO BOUNDED WIDGET (DOM NODES)
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getItemEnabled = function(oItem) {
-  return true;
-}
-
-qx.Proto.getItemClassName = function(vItem) {
-  return vItem.className || "";
-}
-
-qx.Proto.setItemClassName = function(vItem, vClassName) {
-  return vItem.className = vClassName;
-}
-
-qx.Proto.getItemBaseClassName = function(vItem)
-{
-  var p = vItem.className.split(" ")[0];
-  return p ? p : "Status";
-}
-
-qx.Proto.getNextSibling = function(vItem) {
-  return vItem.nextSibling;
-}
-
-qx.Proto.getPreviousSibling = function(vItem) {
-  return vItem.previousSibling;
-}
-
-qx.Proto.getFirst = function() {
-  return this.getItems()[0];
-}
-
-qx.Proto.getLast = function()
-{
-  var vItems = this.getItems();
-  return vItems[vItems.length-1];
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MAPPING TO ITEM DIMENSIONS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getItemLeft = function(vItem) {
-  return vItem.offsetLeft;
-}
-
-qx.Proto.getItemTop = function(vItem) {
-  return vItem.offsetTop;
-}
-
-qx.Proto.getItemWidth = function(vItem) {
-  return vItem.offsetWidth;
-}
-
-qx.Proto.getItemHeight = function(vItem) {
-  return vItem.offsetHeight;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MAPPING TO ITEM PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getItemHashCode = function(oItem)
-{
-  if (oItem._hash) {
-    return oItem._hash;
-  }
-
-  return oItem._hash = qx.core.Object.toHashCode(oItem);
-}
-
-qx.Proto.isBefore = function(vItem1, vItem2)
-{
-  var pa = vItem1.parentNode;
-
-  for (var i=0, l=pa.childNodes.length; i<l; i++)
-  {
-    switch(pa.childNodes[i])
-    {
-      case vItem2:
-        return false;
-
-      case vItem1:
-        return true;
-    }
-  }
-}
-
-qx.Proto.scrollItemIntoView = function(vItem) {
-  this.getBoundedWidget().scrollItemIntoView(vItem);
-}
-
-qx.Proto.getItems = function() {
-  return this.getBoundedWidget().getItems();
-}
-
-qx.Proto.getAbove = function(vItem)
-{
-  var vParent = vItem.parentNode;
-  var vFound = false;
-  var vLeft = vItem.offsetLeft;
-  var vChild;
-
-  for (var i=vParent.childNodes.length-1; i>0; i--)
-  {
-    vChild = vParent.childNodes[i];
-
-    if (vFound == false)
-    {
-      if (vChild == vItem) {
-        vFound = true;
-      }
-    }
-    else
-    {
-      if (vChild.offsetLeft == vLeft)
-      {
-        return vChild;
-      }
-    }
-  }
-}
-
-qx.Proto.getUnder = function(vItem)
-{
-  var vParent = vItem.parentNode;
-  var vFound = false;
-  var vLeft = vItem.offsetLeft;
-  var vChild;
-
-  for (var i=0, l=vParent.childNodes.length; i<l; i++)
-  {
-    vChild = vParent.childNodes[i];
-
-    if (vFound == false)
-    {
-      if (vChild == vItem) {
-        vFound = true;
-      }
-    }
-    else
-    {
-      if (vChild.offsetLeft == vLeft)
-      {
-        return vChild;
-      }
-    }
-  }
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ITEM CSS STATE MANAGMENT
----------------------------------------------------------------------------
-*/
-
-qx.Proto._updateState = function(vItem, vState, vIsState)
-{
-  var c = this.getItemClassName(vItem);
-  var n = this.getItemBaseClassName(vItem) + "-" + vState;
-
-  this.setItemClassName(vItem, vIsState ? qx.lang.String.addListItem(c, n, " ") : qx.lang.String.removeListItem(c, n, " "));
-}
-
-qx.Proto.renderItemSelectionState = function(vItem, vIsSelected) {
-  this._updateState(vItem, "Selected", vIsSelected);
-}
-
-qx.Proto.renderItemAnchorState = function(vItem, vIsAnchor) {
-  this._updateState(vItem, "Anchor", vIsAnchor);
-}
-
-qx.Proto.renderItemLeadState = function(vItem, vIsLead) {
-  this._updateState(vItem, "Lead", vIsLead);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/selection/RadioManager.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/selection/RadioManager.js
deleted file mode 100644 (file)
index a8eda53..0000000
+++ /dev/null
@@ -1,303 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-
-************************************************************************ */
-
-/*!
-  Each instance manage vItems set of radio options: qx.ui.form.RadioButton, qx.ui.toolbar.RadioButton, ...
-*/
-qx.OO.defineClass("qx.manager.selection.RadioManager", qx.core.Target,
-function(vName, vMembers)
-{
-  // we don't need the manager data structures
-  qx.core.Target.call(this);
-
-  // create item array
-  this._items = [];
-
-  // apply name property
-  this.setName(vName != null ? vName : qx.manager.selection.RadioManager.AUTO_NAME_PREFIX + this._hashCode);
-
-  if (vMembers != null)
-  {
-    // add() iterates over arguments, but vMembers is an array
-    this.add.apply(this, vMembers);
-  }
-});
-
-qx.manager.selection.RadioManager.AUTO_NAME_PREFIX = "qx-radio-";
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.addProperty({ name : "selected" });
-qx.OO.addProperty({ name : "name", type : "string" });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getItems = function() {
-  return this._items;
-}
-
-qx.Proto.getEnabledItems = function()
-{
-  var b = [];
-
-  for (var i=0, a=this._items, l=a.length; i<l; i++)
-  {
-    if (a[i].getEnabled()) {
-      b.push(a[i]);
-    }
-  }
-
-  return b;
-}
-
-qx.Proto.handleItemChecked = function(vItem, vChecked)
-{
-  if (vChecked)
-  {
-    this.setSelected(vItem);
-  }
-  else if (this.getSelected() == vItem)
-  {
-    this.setSelected(null);
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  REGISTRY
----------------------------------------------------------------------------
-*/
-
-qx.Proto.add = function(varargs)
-{
-  var vItems = arguments;
-  var vLength = vItems.length;
-  var vItem;
-
-  for (var i=0; i<vLength; i++)
-  {
-    vItem = vItems[i];
-
-    if(qx.lang.Array.contains(this._items, vItem)) {
-      return;
-    }
-
-    // Push RadioButton to array
-    this._items.push(vItem);
-
-    // Inform radio button about new manager
-    vItem.setManager(this);
-
-    // Need to update internal value?
-    if(vItem.getChecked()) {
-      this.setSelected(vItem);
-    }
-
-    // Make enabled the same status as the the manager has
-    vItem.setEnabled(this.getEnabled());
-
-    // Apply Make name the same
-    vItem.setName(this.getName());
-  }
-}
-
-qx.Proto.remove = function(vItem)
-{
-  // Remove RadioButton from array
-  qx.lang.Array.remove(this._items, vItem);
-
-  // Inform radio button about new manager
-  vItem.setManager(null);
-
-  // if the radio was checked, set internal selection to null
-  if(vItem.getChecked()) {
-    this.setSelected(null);
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifySelected = function(propValue, propOldValue, propData)
-{
-  if (propOldValue && propOldValue.getChecked()) {
-    propOldValue.setChecked(false);
-  }
-
-  if (propValue && !propValue.getChecked()) {
-    propValue.setChecked(true);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
-{
-  for (var i=0, vItems=this._items, vLength=vItems.length; i<vLength; i++) {
-    vItems[i].setEnabled(propValue);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyName = function(propValue, propOldValue, propData)
-{
-  for (var i=0, vItems=this._items, vLength=vItems.length; i<vLength; i++) {
-    vItems[i].setName(propValue);
-  }
-
-  return true;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  SELECTION
----------------------------------------------------------------------------
-*/
-
-qx.Proto.selectNext = function(vItem)
-{
-  var vIndex = this._items.indexOf(vItem);
-
-  if(vIndex == -1) {
-    return;
-  }
-
-  var i = 0;
-  var vLength = this._items.length;
-
-  // Find next enabled item
-  vIndex = (vIndex + 1) % vLength;
-  while(i < vLength && !this._items[vIndex].getEnabled())
-  {
-    vIndex = (vIndex + 1) % vLength;
-    i++;
-  }
-
-  this._selectByIndex(vIndex);
-}
-
-qx.Proto.selectPrevious = function(vItem)
-{
-  var vIndex = this._items.indexOf(vItem);
-
-  if(vIndex == -1) {
-    return;
-  }
-
-  var i = 0;
-  var vLength = this._items.length;
-
-  // Find previous enabled item
-  vIndex = (vIndex - 1 + vLength) % vLength;
-  while(i < vLength && !this._items[vIndex].getEnabled())
-  {
-    vIndex = (vIndex - 1 + vLength) % vLength;
-    i++;
-  }
-
-  this._selectByIndex(vIndex);
-}
-
-qx.Proto._selectByIndex = function(vIndex)
-{
-  if(this._items[vIndex].getEnabled())
-  {
-    this.setSelected(this._items[vIndex]);
-    this._items[vIndex].setFocused(true);
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this.forceSelected(null);
-
-  if (this._items)
-  {
-    for (var i, vItems=this._items, vLength=vItems.length; i<vLength; i++)
-    {
-      vItems[i].dispose();
-      delete vItems[i];
-    }
-
-    vItems=null;
-    delete this._items;
-  }
-
-  return qx.core.Target.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/selection/SelectionManager.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/selection/SelectionManager.js
deleted file mode 100644 (file)
index 132bbdc..0000000
+++ /dev/null
@@ -1,1435 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-
-************************************************************************ */
-
-/**
- * This class represents a selection and manage incoming events for widgets
- * which need selection support.
- *
- * @event changeSelection {qx.event.type.DataEvent} sets the data property of the event object to an arryas of selected items.
- */
-qx.OO.defineClass("qx.manager.selection.SelectionManager", qx.core.Target,
-function(vBoundedWidget)
-{
-  qx.core.Target.call(this);
-
-  this._selectedItems = new qx.type.Selection(this);
-
-  if (vBoundedWidget != null) {
-    this.setBoundedWidget(vBoundedWidget);
-  }
-});
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/*!
-This contains the currently assigned widget (qx.ui.form.List, ...)
-*/
-qx.OO.addProperty({ name : "boundedWidget", type : "object" });
-
-/*!
-Should multiple selection be allowed?
-*/
-qx.OO.addProperty({ name : "multiSelection", type : "boolean", defaultValue : true });
-
-/*!
-Enable drag selection?
-*/
-qx.OO.addProperty({ name : "dragSelection", type : "boolean", defaultValue : true });
-
-/*!
-Should the user be able to select
-*/
-qx.OO.addProperty({ name : "canDeselect", type : "boolean", defaultValue : true });
-
-/*!
-Should a change event be fired?
-*/
-qx.OO.addProperty({ name : "fireChange", type : "boolean", defaultValue : true });
-
-/*!
-The current anchor in range selections.
-*/
-qx.OO.addProperty({ name : "anchorItem", type : "object" });
-
-/*!
-The last selected item
-*/
-qx.OO.addProperty({ name : "leadItem", type : "object" });
-
-/*!
-Grid selection
-*/
-qx.OO.addProperty({ name : "multiColumnSupport", type : "boolean", defaultValue : false });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyAnchorItem = function(propValue, propOldValue, propData)
-{
-  if (propOldValue) {
-    this.renderItemAnchorState(propOldValue, false);
-  }
-
-  if (propValue) {
-    this.renderItemAnchorState(propValue, true);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyLeadItem = function(propValue, propOldValue, propData)
-{
-  if (propOldValue) {
-    this.renderItemLeadState(propOldValue, false);
-  }
-
-  if (propValue) {
-    this.renderItemLeadState(propValue, true);
-  }
-
-  return true;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MAPPING TO BOUNDED WIDGET
----------------------------------------------------------------------------
-*/
-
-qx.Proto._getFirst = function() {
-  return this.getBoundedWidget().getFirstVisibleChild();
-}
-
-qx.Proto._getLast = function() {
-  return this.getBoundedWidget().getLastVisibleChild();
-}
-
-qx.Proto.getFirst = function()
-{
-  var vItem = this._getFirst();
-  if (vItem) {
-    return vItem.isEnabled() ? vItem : this.getNext(vItem);
-  }
-}
-
-qx.Proto.getLast = function()
-{
-  var vItem = this._getLast();
-  if (vItem) {
-    return vItem.isEnabled() ? vItem : this.getPrevious(vItem);
-  }
-}
-
-qx.Proto.getItems = function() {
-  return this.getBoundedWidget().getChildren();
-}
-
-qx.Proto.getNextSibling = function(vItem) {
-  return vItem.getNextSibling();
-}
-
-qx.Proto.getPreviousSibling = function(vItem) {
-  return vItem.getPreviousSibling();
-}
-
-qx.Proto.getNext = function(vItem)
-{
-  while(vItem)
-  {
-    vItem = this.getNextSibling(vItem);
-
-    if (!vItem) {
-      break;
-    }
-
-    if (this.getItemEnabled(vItem)) {
-      return vItem;
-    }
-  }
-
-  return null;
-}
-
-qx.Proto.getPrevious = function(vItem)
-{
-  while(vItem)
-  {
-    vItem = this.getPreviousSibling(vItem);
-
-    if (!vItem) {
-      break;
-    }
-
-    if (this.getItemEnabled(vItem)) {
-      return vItem;
-    }
-  }
-
-  return null;
-}
-
-qx.Proto.isBefore = function(vItem1, vItem2)
-{
-  var cs = this.getItems();
-  return cs.indexOf(vItem1) < cs.indexOf(vItem2);
-}
-
-qx.Proto.isEqual = function(vItem1, vItem2) {
-  return vItem1 == vItem2;
-}
-
-
-
-/*
----------------------------------------------------------------------------
-  MAPPING TO ITEM PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getItemHashCode = function(vItem) {
-  return vItem.toHashCode();
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MAPPING TO ITEM DIMENSIONS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.scrollItemIntoView = function(vItem, vTopLeft) {
-  vItem.scrollIntoView(vTopLeft);
-}
-
-qx.Proto.getItemLeft = function(vItem) {
-  return vItem.getOffsetLeft();
-}
-
-qx.Proto.getItemTop = function(vItem) {
-  return vItem.getOffsetTop();
-}
-
-qx.Proto.getItemWidth = function(vItem) {
-  return vItem.getOffsetWidth();
-}
-
-qx.Proto.getItemHeight = function(vItem) {
-  return vItem.getOffsetHeight();
-}
-
-qx.Proto.getItemEnabled = function(vItem) {
-  return vItem.getEnabled();
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ITEM STATE MANAGMENT
----------------------------------------------------------------------------
-*/
-
-qx.Proto.renderItemSelectionState = function(vItem, vIsSelected)
-{
-  vIsSelected ? vItem.addState("selected") : vItem.removeState("selected");
-
-  if (vItem.handleStateChange) {
-    vItem.handleStateChange();
-  }
-}
-
-qx.Proto.renderItemAnchorState = function(vItem, vIsAnchor)
-{
-  vIsAnchor ? vItem.addState("anchor") : vItem.removeState("anchor");
-
-  if (vItem.handleStateChange != null) {
-    vItem.handleStateChange();
-  }
-}
-
-qx.Proto.renderItemLeadState = function(vItem, vIsLead)
-{
-  vIsLead ? vItem.addState("lead") : vItem.removeState("lead");
-
-  if (vItem.handleStateChange != null) {
-    vItem.handleStateChange();
-  }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  SELECTION HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getItemSelected = function(vItem) {
-  return this._selectedItems.contains(vItem);
-}
-
-/*!
-Make a single item selected / not selected
-
-#param vItem[qx.ui.core.Widget]: Item which should be selected / not selected
-#param vSelected[Boolean]: Should this item be selected?
-*/
-qx.Proto.setItemSelected = function(vItem, vSelected)
-{
-  var hc = this.getItemHashCode(vItem);
-
-  switch(this.getMultiSelection())
-  {
-    // Multiple item selection is allowed
-    case true:
-      if (!this.getItemEnabled(vItem)) {
-        return;
-      }
-
-      // If selection state is not to be changed => return
-      if (this.getItemSelected(vItem) == vSelected) {
-        return;
-      }
-
-      // Otherwise render new state
-      this.renderItemSelectionState(vItem, vSelected);
-
-      // Add item to selection hash / delete it from there
-      vSelected ? this._selectedItems.add(vItem) : this._selectedItems.remove(vItem);
-
-      // Dispatch change Event
-      this._dispatchChange();
-
-      break;
-
-
-
-    // Multiple item selection is NOT allowed
-    case false:
-      var item0 = this.getSelectedItems()[0];
-
-
-
-      if (vSelected)
-      {
-        // Precheck for any changes
-        var old = item0;
-
-        if (this.isEqual(vItem, old)) {
-          return;
-        }
-
-        // Reset rendering of previous selected item
-        if (old != null) {
-          this.renderItemSelectionState(old, false);
-        }
-
-        // Render new item as selected
-        this.renderItemSelectionState(vItem, true);
-
-        // Reset current selection hash
-        this._selectedItems.removeAll();
-
-        // Add new one
-        this._selectedItems.add(vItem);
-
-        // Dispatch change Event
-        this._dispatchChange();
-      }
-      else
-      {
-        // Pre-check if item is currently selected
-        // Do not allow deselection in single selection mode
-        if (!this.isEqual(item0, vItem))
-        {
-          // Reset rendering as selected item
-          this.renderItemSelectionState(vItem, false);
-
-          // Reset current selection hash
-          this._selectedItems.removeAll();
-
-          // Dispatch change Event
-          this._dispatchChange();
-        }
-      }
-
-      break;
-
-  }
-}
-
-
-
-
-
-
-
-
-/*!
-  Get the selected items (objects)
-*/
-qx.Proto.getSelectedItems = function() {
-  return this._selectedItems.toArray();
-}
-
-qx.Proto.getSelectedItem = function() {
-  return this._selectedItems.getFirst();
-}
-
-/*!
-Select given items
-
-#param vItems[Array of Widgets]: Items to select
-*/
-qx.Proto.setSelectedItems = function(vItems)
-{
-  var oldVal = this._getChangeValue();
-
-  // Temporary disabling of event fire
-  var oldFireChange = this.getFireChange();
-  this.setFireChange(false);
-
-  // Deselect all currently selected items
-  this._deselectAll();
-
-  // Apply new selection
-  var vItem;
-  var vItemLength = vItems.length;
-
-  for (var i=0; i<vItemLength; i++)
-  {
-    vItem = vItems[i];
-
-    if (!this.getItemEnabled(vItem)) {
-      continue;
-    }
-
-    // Add item to selection
-    this._selectedItems.add(vItem);
-
-    // Render new state for item
-    this.renderItemSelectionState(vItem, true);
-  }
-
-  // Recover change event status
-  this.setFireChange(oldFireChange);
-
-  // Dispatch change Event
-  if (oldFireChange && this._hasChanged(oldVal)) {
-    this._dispatchChange();
-  }
-}
-
-
-qx.Proto.setSelectedItem = function(vItem)
-{
-  if (!vItem) {
-    return;
-  }
-
-  if (!this.getItemEnabled(vItem)) {
-    return;
-  }
-
-  var oldVal = this._getChangeValue();
-
-  // Temporary disabling of event fire
-  var oldFireChange = this.getFireChange();
-  this.setFireChange(false);
-
-  // Deselect all currently selected items
-  this._deselectAll();
-
-  // Add item to selection
-  this._selectedItems.add(vItem);
-
-  // Render new state for item
-  this.renderItemSelectionState(vItem, true);
-
-  // Recover change event status
-  this.setFireChange(oldFireChange);
-
-  // Dispatch change Event
-  if (oldFireChange && this._hasChanged(oldVal)) {
-    this._dispatchChange();
-  }
-}
-
-
-
-
-
-/*!
-  Select all items.
-*/
-qx.Proto.selectAll = function()
-{
-  var oldVal = this._getChangeValue();
-
-  // Temporary disabling of event fire
-  var oldFireChange = this.getFireChange();
-  this.setFireChange(false);
-
-  // Call sub method to select all items
-  this._selectAll();
-
-  // Recover change event status
-  this.setFireChange(oldFireChange);
-
-  // Dispatch change Event
-  if (oldFireChange && this._hasChanged(oldVal)) {
-    this._dispatchChange();
-  }
-}
-
-/*!
-  Sub method for selectAll. Handles the real work
-  to select all items.
-*/
-qx.Proto._selectAll = function()
-{
-  if (!this.getMultiSelection()) {
-    return;
-  }
-
-  var vItem;
-  var vItems = this.getItems();
-  var vItemsLength = vItems.length;
-
-  // Reset current selection hash
-  this._selectedItems.removeAll();
-
-  for (var i=0; i<vItemsLength; i++)
-  {
-    vItem = vItems[i];
-
-    if (!this.getItemEnabled(vItem)) {
-      continue;
-    }
-
-    // Add item to selection
-    this._selectedItems.add(vItem);
-
-    // Render new state for item
-    this.renderItemSelectionState(vItem, true);
-  }
-
-  return true;
-}
-
-
-
-
-
-/*!
-  Deselect all items.
-*/
-qx.Proto.deselectAll = function()
-{
-  var oldVal = this._getChangeValue();
-
-  // Temporary disabling of event fire
-  var oldFireChange = this.getFireChange();
-  this.setFireChange(false);
-
-  // Call sub method to deselect all items
-  this._deselectAll();
-
-  // Recover change event status
-  this.setFireChange(oldFireChange);
-
-  // Dispatch change Event
-  if (oldFireChange && this._hasChanged(oldVal))
-    this._dispatchChange();
-  }
-
-/*!
-  Sub method for deselectAll. Handles the real work
-  to deselect all items.
-*/
-qx.Proto._deselectAll = function()
-{
-  // Render new state for items
-  var items = this._selectedItems.toArray();
-  for (var i = 0; i < items.length; i++) {
-    this.renderItemSelectionState(items[i], false);
-  }
-
-  // Delete all entries in selectedItems hash
-  this._selectedItems.removeAll();
-
-  return true;
-}
-
-
-
-
-/*!
-Select a range of items.
-
-#param vItem1[qx.ui.core.Widget]: Start item
-#param vItem2[qx.ui.core.Widget]: Stop item
-*/
-qx.Proto.selectItemRange = function(vItem1, vItem2)
-{
-  var oldVal = this._getChangeValue();
-
-  // Temporary disabling of event fire
-  var oldFireChange = this.getFireChange();
-  this.setFireChange(false);
-
-  // Call sub method to select the range of items
-  this._selectItemRange(vItem1, vItem2, true);
-
-  // Recover change event status
-  this.setFireChange(oldFireChange);
-
-  // Dispatch change Event
-  if (oldFireChange && this._hasChanged(oldVal)) {
-    this._dispatchChange();
-  }
-}
-
-
-
-
-/*!
-Sub method for selectItemRange. Handles the real work
-to select a range of items.
-
-#param vItem1[qx.ui.core.Widget]: Start item
-#param vItem2[qx.ui.core.Widget]: Stop item
-#param vDelect[Boolean]: Deselect currently selected items first?
-*/
-qx.Proto._selectItemRange = function(vItem1, vItem2, vDeselect)
-{
-  // this.debug("SELECT_RANGE: " + vItem1.toText() + "<->" + vItem2.toText());
-  // this.debug("SELECT_RANGE: " + vItem1.pos + "<->" + vItem2.pos);
-
-  // Pre-Check a revert call if vItem2 is before vItem1
-  if (this.isBefore(vItem2, vItem1)) {
-    return this._selectItemRange(vItem2, vItem1, vDeselect);
-  }
-
-  // Deselect all
-  if (vDeselect) {
-    this._deselectAll();
-  }
-
-  var vCurrentItem = vItem1;
-
-  while (vCurrentItem != null)
-  {
-    if (this.getItemEnabled(vCurrentItem))
-    {
-      // Add item to selection
-      this._selectedItems.add(vCurrentItem);
-
-      // Render new state for item
-      this.renderItemSelectionState(vCurrentItem, true);
-    }
-
-    // Stop here if we reached target item
-    if (this.isEqual(vCurrentItem, vItem2)) {
-      break;
-    }
-
-    // Get next item
-    vCurrentItem = this.getNext(vCurrentItem);
-  }
-
-  return true;
-}
-
-/*!
-Internal method for deselection of ranges.
-
-#param vItem1[qx.ui.core.Widget]: Start item
-#param vItem2[qx.ui.core.Widget]: Stop item
-*/
-qx.Proto._deselectItemRange = function(vItem1, vItem2)
-{
-  // Pre-Check a revert call if vItem2 is before vItem1
-  if (this.isBefore(vItem2, vItem1)) {
-    return this._deselectItemRange(vItem2, vItem1);
-  }
-
-  var vCurrentItem = vItem1;
-
-  while (vCurrentItem != null)
-  {
-    // Add item to selection
-    this._selectedItems.remove(vCurrentItem);
-
-    // Render new state for item
-    this.renderItemSelectionState(vCurrentItem, false);
-
-    // Stop here if we reached target item
-    if (this.isEqual(vCurrentItem, vItem2)) {
-      break;
-    }
-
-    // Get next item
-    vCurrentItem = this.getNext(vCurrentItem);
-  }
-}
-
-
-/*
----------------------------------------------------------------------------
-  MOUSE EVENT HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._activeDragSession = false;
-
-qx.Proto.handleMouseDown = function(vItem, e)
-{
-  // Only allow left and right button
-  if (!e.isLeftButtonPressed() && !e.isRightButtonPressed()) {
-    return;
-  }
-
-  // Keep selection on right click on already selected item
-  if (e.isRightButtonPressed() && this.getItemSelected(vItem)) {
-    return;
-  }
-
-  // Shift Key
-  //   or
-  // Click on an unseleted item (without Strg)
-  if (e.isShiftPressed() || this.getDragSelection() || (!this.getItemSelected(vItem) && !e.isCtrlPressed()))
-  {
-    // Handle event
-    this._onmouseevent(vItem, e);
-  }
-  else
-  {
-    // Update lead item
-    this.setLeadItem(vItem);
-  }
-
-
-  // Handle dragging
-  this._activeDragSession = this.getDragSelection();
-
-  if (this._activeDragSession)
-  {
-    // Add mouseup listener and register as capture widget
-    this.getBoundedWidget().addEventListener("mouseup", this._ondragup, this);
-    this.getBoundedWidget().setCapture(true);
-  }
-}
-
-qx.Proto._ondragup = function(e)
-{
-  this.getBoundedWidget().removeEventListener("mouseup", this._ondragup, this);
-  this.getBoundedWidget().setCapture(false);
-  this._activeDragSession = false;
-}
-
-qx.Proto.handleMouseUp = function(vItem, e)
-{
-  if (!e.isLeftButtonPressed()) {
-    return;
-  }
-
-  if (e.isCtrlPressed() || this.getItemSelected(vItem) && !this._activeDragSession) {
-    this._onmouseevent(vItem, e);
-  }
-
-  if (this._activeDragSession)
-  {
-    this._activeDragSession = false;
-    this.getBoundedWidget().setCapture(false);
-  }
-}
-
-qx.Proto.handleMouseOver = function(oItem, e)
-{
-  if (! this.getDragSelection() || !this._activeDragSession) {
-    return;
-  }
-
-  this._onmouseevent(oItem, e, true);
-}
-
-// currently unused placeholder
-qx.Proto.handleClick = function(vItem, e) {}
-
-// currently unused placeholder
-qx.Proto.handleDblClick = function(vItem, e) {}
-
-
-/*!
-Internal handler for all mouse events bound to this manager.
-*/
-qx.Proto._onmouseevent = function(oItem, e, bOver)
-{
-  if (!this.getItemEnabled(oItem)) {
-    return;
-  }
-
-  // ********************************************************************
-  //   Init
-  // ********************************************************************
-
-  // Cache current (old) values
-  var oldVal = this._getChangeValue();
-  var oldLead = this.getLeadItem();
-
-  // Temporary disabling of event fire
-  var oldFireChange = this.getFireChange();
-  this.setFireChange(false);
-
-  // Cache selection and count
-  var selectedItems = this.getSelectedItems();
-  var selectedCount = selectedItems.length;
-
-  // Update lead item
-  this.setLeadItem(oItem);
-
-  // Cache current anchor item
-  var currentAnchorItem = this.getAnchorItem();
-
-  // Cache keys pressed
-  var vCtrlKey = e.isCtrlPressed();
-  var vShiftKey = e.isShiftPressed();
-
-
-  // ********************************************************************
-  //   Do we need to update the anchor?
-  // ********************************************************************
-
-  if (!currentAnchorItem || selectedCount == 0 || (vCtrlKey && !vShiftKey && this.getMultiSelection() && !this.getDragSelection()))
-  {
-    this.setAnchorItem(oItem);
-    currentAnchorItem = oItem;
-  }
-
-
-
-  // ********************************************************************
-  //   Mode #1: Replace current selection with new one
-  // ********************************************************************
-  if ((!vCtrlKey && !vShiftKey && !this._activeDragSession || !this.getMultiSelection()))
-  {
-    if (!this.getItemEnabled(oItem)) {
-      return;
-    }
-
-    // Remove current selection
-    this._deselectAll();
-
-    // Update anchor item
-    this.setAnchorItem(oItem);
-
-    if (this._activeDragSession)
-    {
-      // a little bit hacky, but seems to be a fast way to detect if we slide to top or to bottom
-      this.scrollItemIntoView((this.getBoundedWidget().getScrollTop() > (this.getItemTop(oItem)-1) ? this.getPrevious(oItem) : this.getNext(oItem)) || oItem);
-    }
-
-    if (!this.getItemSelected(oItem)) {
-      this.renderItemSelectionState(oItem, true);
-    }
-
-    // Clear up and add new one
-    //this._selectedItems.removeAll();
-    this._selectedItems.add(oItem);
-
-    this._addToCurrentSelection = true;
-  }
-
-
-  // ********************************************************************
-  //   Mode #2: (De-)Select item range in mouse drag session
-  // ********************************************************************
-  else if (this._activeDragSession && bOver)
-  {
-    if (oldLead) {
-      this._deselectItemRange(currentAnchorItem, oldLead);
-    }
-
-    // Drag down
-    if (this.isBefore(currentAnchorItem, oItem))
-    {
-      if (this._addToCurrentSelection)
-      {
-        this._selectItemRange(currentAnchorItem, oItem, false);
-      }
-      else
-      {
-        this._deselectItemRange(currentAnchorItem, oItem);
-      }
-    }
-
-    // Drag up
-    else
-    {
-      if (this._addToCurrentSelection)
-      {
-        this._selectItemRange(oItem, currentAnchorItem, false);
-      }
-      else
-      {
-        this._deselectItemRange(oItem, currentAnchorItem);
-      }
-    }
-
-    // a little bit hacky, but seems to be a fast way to detect if we slide to top or to bottom
-    this.scrollItemIntoView((this.getBoundedWidget().getScrollTop() > (this.getItemTop(oItem)-1) ? this.getPrevious(oItem) : this.getNext(oItem)) || oItem);
-  }
-
-
-  // ********************************************************************
-  //   Mode #3: Add new item to current selection (ctrl pressed)
-  // ********************************************************************
-  else if (this.getMultiSelection() && vCtrlKey && !vShiftKey)
-  {
-    if (!this._activeDragSession) {
-      this._addToCurrentSelection = !(this.getCanDeselect() && this.getItemSelected(oItem));
-    }
-
-    this.setItemSelected(oItem, this._addToCurrentSelection);
-    this.setAnchorItem(oItem);
-  }
-
-
-  // ********************************************************************
-  //   Mode #4: Add new (or continued) range to selection
-  // ********************************************************************
-  else if (this.getMultiSelection() && vCtrlKey && vShiftKey)
-  {
-    if (!this._activeDragSession) {
-      this._addToCurrentSelection = !(this.getCanDeselect() && this.getItemSelected(oItem));
-    }
-
-    if (this._addToCurrentSelection)
-    {
-      this._selectItemRange(currentAnchorItem, oItem, false);
-    }
-    else
-    {
-      this._deselectItemRange(currentAnchorItem, oItem);
-    }
-  }
-
-  // ********************************************************************
-  //   Mode #5: Replace selection with new range selection
-  // ********************************************************************
-  else if (this.getMultiSelection() && !vCtrlKey && vShiftKey)
-  {
-    if (this.getCanDeselect())
-    {
-      this._selectItemRange(currentAnchorItem, oItem, true);
-    }
-
-    else
-    {
-      if (oldLead) {
-        this._deselectItemRange(currentAnchorItem, oldLead);
-      }
-
-      this._selectItemRange(currentAnchorItem, oItem, false);
-    }
-  }
-
-
-
-  // Recover change event status
-  this.setFireChange(oldFireChange);
-
-  // Dispatch change Event
-  if(oldFireChange && this._hasChanged(oldVal)) {
-    this._dispatchChange();
-  }
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  KEY EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.handleKeyDown = function(vDomEvent) {
-  this.warn(
-    "qx.manager.selection.SelectionManager.handleKeyDown is deprecated! " +
-    "Use keypress insted and bind it to the onkeypress event."
-  );
-  this.handleKeyPress(vDomEvent);
-}
-
-
-/**
- * Handles key event to perform selection and navigation
- *
- * @param vDomEvent {qx.event.type.KeyEvent} event object
- */
-qx.Proto.handleKeyPress = function(vDomEvent)
-{
-  var oldVal = this._getChangeValue();
-
-  // Temporary disabling of event fire
-  var oldFireChange = this.getFireChange();
-  this.setFireChange(false);
-
-  // Ctrl+A: Select all
-  if (vDomEvent.getKeyIdentifier() == "A" && vDomEvent.isCtrlPressed())
-  {
-    if (this.getMultiSelection())
-    {
-      this._selectAll();
-
-      // Update lead item to this new last
-      // (or better here: first) selected item
-      this.setLeadItem(this.getFirst());
-    }
-  }
-
-  // Default operation
-  else
-  {
-    var aIndex = this.getAnchorItem();
-    var itemToSelect = this.getItemToSelect(vDomEvent);
-
-    // this.debug("Anchor: " + (aIndex ? aIndex.getLabel() : "null"));
-    // this.debug("ToSelect: " + (itemToSelect ? itemToSelect.getLabel() : "null"));
-
-    if (itemToSelect && this.getItemEnabled(itemToSelect))
-    {
-      // Update lead item to this new last selected item
-      this.setLeadItem(itemToSelect);
-
-      // Scroll new item into view
-      this.scrollItemIntoView(itemToSelect);
-
-      // Stop event handling
-      vDomEvent.preventDefault();
-
-      // Select a range
-      if (vDomEvent.isShiftPressed() && this.getMultiSelection())
-      {
-        // Make it a little bit more failsafe:
-        // Set anchor if not given already. Allows us to select
-        // a range without any previous selection.
-        if (aIndex == null) {
-          this.setAnchorItem(itemToSelect);
-        }
-
-        // Select new range (and clear up current selection first)
-        this._selectItemRange(this.getAnchorItem(), itemToSelect, true);
-      }
-      else if (!vDomEvent.isCtrlPressed())
-      {
-        // Clear current selection
-        this._deselectAll();
-
-        // Update new item to be selected
-        this.renderItemSelectionState(itemToSelect, true);
-
-        // Add item to new selection
-        this._selectedItems.add(itemToSelect);
-
-        // Update anchor to this new item
-        // (allows following shift range selection)
-        this.setAnchorItem(itemToSelect);
-      }
-      else if (vDomEvent.getKeyIdentifier() == "Space")
-      {
-        if (this._selectedItems.contains(itemToSelect))
-        {
-          // Update new item to be selected
-          this.renderItemSelectionState(itemToSelect, false);
-
-          // Add item to new selection
-          this._selectedItems.remove(itemToSelect);
-
-          // Fix anchor item
-          this.setAnchorItem(this._selectedItems.getFirst());
-        }
-        else
-        {
-          // Clear current selection
-          if (!vDomEvent.isCtrlPressed() || !this.getMultiSelection()) {
-            this._deselectAll();
-          }
-
-          // Update new item to be selected
-          this.renderItemSelectionState(itemToSelect, true);
-
-          // Add item to new selection
-          this._selectedItems.add(itemToSelect);
-
-          // Update anchor to this new item
-          // (allows following shift range selection)
-          this.setAnchorItem(itemToSelect);
-        }
-      }
-    }
-  }
-
-  // Recover change event status
-  this.setFireChange(oldFireChange);
-
-  // Dispatch change Event
-  if (oldFireChange && this._hasChanged(oldVal)) {
-    this._dispatchChange();
-  }
-}
-
-qx.Proto.getItemToSelect = function(vKeyboardEvent)
-{
-  // Don't handle ALT here
-  if (vKeyboardEvent.isAltPressed()) {
-    return null;
-  }
-
-  // Handle event by keycode
-  switch (vKeyboardEvent.getKeyIdentifier())
-  {
-    case "Home":
-      return this.getHome(this.getLeadItem());
-
-    case "End":
-      return this.getEnd(this.getLeadItem());
-
-
-    case "Down":
-      return this.getDown(this.getLeadItem());
-
-    case "Up":
-      return this.getUp(this.getLeadItem());
-
-
-    case "Left":
-      return this.getLeft(this.getLeadItem());
-
-    case "Right":
-      return this.getRight(this.getLeadItem());
-
-
-    case "PageUp":
-      return this.getPageUp(this.getLeadItem()) || this.getHome(this.getLeadItem());
-
-    case "PageDown":
-      return this.getPageDown(this.getLeadItem()) || this.getEnd(this.getLeadItem());
-
-
-    case "Space":
-      if (vKeyboardEvent.isCtrlPressed()) {
-        return this.getLeadItem();
-      }
-  }
-
-  return null;
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CHANGE HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._dispatchChange = function()
-{
-  if (!this.getFireChange()) {
-    return;
-  }
-
-  if (this.hasEventListeners("changeSelection")) {
-    this.dispatchEvent(new qx.event.type.DataEvent("changeSelection", this.getSelectedItems()), true);
-  }
-}
-
-qx.Proto._hasChanged = function(sOldValue) {
-  return sOldValue != this._getChangeValue();
-}
-
-qx.Proto._getChangeValue = function() {
-  return this._selectedItems.getChangeValue();
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  POSITION HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getHome = function() {
-  return this.getFirst();
-}
-
-qx.Proto.getEnd = function() {
-  return this.getLast();
-}
-
-qx.Proto.getDown = function(vItem)
-{
-  if (!vItem) {
-    return this.getFirst();
-  }
-
-  return this.getMultiColumnSupport() ? (this.getUnder(vItem) || this.getLast()) : this.getNext(vItem);
-}
-
-qx.Proto.getUp = function(vItem)
-{
-  if (!vItem) {
-    return this.getLast();
-  }
-
-  return this.getMultiColumnSupport() ? (this.getAbove(vItem) || this.getFirst()) : this.getPrevious(vItem);
-}
-
-qx.Proto.getLeft = function(vItem)
-{
-  if (!this.getMultiColumnSupport()) {
-    return null;
-  }
-
-  return !vItem ? this.getLast() : this.getPrevious(vItem);
-}
-
-qx.Proto.getRight = function(vItem)
-{
-  if (!this.getMultiColumnSupport()) {
-    return null;
-  }
-
-  return !vItem ? this.getFirst() : this.getNext(vItem);
-}
-
-qx.Proto.getAbove = function(vItem)
-{
-  throw new Error("getAbove(): Not implemented yet");
-}
-
-qx.Proto.getUnder = function(vItem)
-{
-  throw new Error("getUnder(): Not implemented yet");
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PAGE HANDLING
----------------------------------------------------------------------------
-*/
-
-/*!
-Jump a "page" up.
-
-#param vItem[qx.ui.core.Widget]: Relative to this widget
-*/
-qx.Proto.getPageUp = function(vItem)
-{
-  var vBoundedWidget = this.getBoundedWidget();
-  var vParentScrollTop = vBoundedWidget.getScrollTop();
-  var vParentClientHeight = vBoundedWidget.getClientHeight();
-
-  // Find next item
-  var newItem;
-  var nextItem = this.getLeadItem();
-  if (!nextItem) {
-    nextItem = this.getFirst();
-  }
-
-  // Normally we should reach the status "lead" for the
-  // nextItem after two iterations.
-  var tryLoops = 0;
-  while (tryLoops < 2)
-  {
-    while (nextItem && (this.getItemTop(nextItem) - this.getItemHeight(nextItem) >= vParentScrollTop)) {
-      nextItem = this.getUp(nextItem);
-    }
-
-    // This should never occour after the fix above
-    if (nextItem == null) {
-      break;
-    }
-
-    // If the nextItem is not anymore the leadItem
-    // Means: There has occured a change.
-    // We break here. This is normally the second step.
-    if (nextItem != this.getLeadItem())
-    {
-      // be sure that the top is reached
-      this.scrollItemIntoView(nextItem, true);
-      break;
-    }
-
-    // Update scrolling (this is normally the first step)
-    // this.debug("Scroll-Up: " + (vParentScrollTop + vParentClientHeight - 2 * this.getItemHeight(nextItem)));
-    vBoundedWidget.setScrollTop(vParentScrollTop - vParentClientHeight - this.getItemHeight(nextItem));
-
-    // Use the real applied value instead of the calulated above
-    vParentScrollTop = vBoundedWidget.getScrollTop();
-
-    // Increment counter
-    tryLoops++;
-  }
-
-  return nextItem;
-}
-
-/*!
-Jump a "page" down.
-
-#param vItem[qx.ui.core.Widget]: Relative to this widget
-*/
-qx.Proto.getPageDown = function(vItem)
-{
-  var vBoundedWidget = this.getBoundedWidget();
-  var vParentScrollTop = vBoundedWidget.getScrollTop();
-  var vParentClientHeight = vBoundedWidget.getClientHeight();
-
-  // this.debug("Bound: " + (vBoundedWidget._getTargetNode() != vBoundedWidget.getElement()));
-
-  // this.debug("ClientHeight-1: " + vBoundedWidget._getTargetNode().clientHeight);
-  // this.debug("ClientHeight-2: " + vBoundedWidget.getElement().clientHeight);
-
-  // Find next item
-  var newItem;
-  var nextItem = this.getLeadItem();
-  if (!nextItem) {
-    nextItem = this.getFirst();
-  }
-
-  // Normally we should reach the status "lead" for the
-  // nextItem after two iterations.
-  var tryLoops = 0;
-  while (tryLoops < 2)
-  {
-    // this.debug("Loop: " + tryLoops);
-    // this.debug("Info: " + nextItem + " :: " + (this.getItemTop(nextItem) + (2 * this.getItemHeight(nextItem))) + " <> " + (vParentScrollTop + vParentClientHeight));
-    // this.debug("Detail: " + vParentScrollTop + ", " + vParentClientHeight);
-
-    // Find next
-    while (nextItem && ((this.getItemTop(nextItem) + (2 * this.getItemHeight(nextItem))) <= (vParentScrollTop + vParentClientHeight))) {
-      nextItem = this.getDown(nextItem);
-    }
-
-    // This should never occour after the fix above
-    if (nextItem == null) {
-      break;
-    }
-
-    // If the nextItem is not anymore the leadItem
-    // Means: There has occured a change.
-    // We break here. This is normally the second step.
-    if (nextItem != this.getLeadItem()) {
-      break;
-    }
-
-    // Update scrolling (this is normally the first step)
-    // this.debug("Scroll-Down: " + (vParentScrollTop + vParentClientHeight - 2 * this.getItemHeight(nextItem)));
-    vBoundedWidget.setScrollTop(vParentScrollTop + vParentClientHeight - 2 * this.getItemHeight(nextItem));
-
-    // Use the real applied value instead of the calulated above
-    vParentScrollTop = vBoundedWidget.getScrollTop();
-
-    // Increment counter
-    tryLoops++;
-  }
-
-  //this.debug("Select: " + nextItem._labelObject.getHtml());
-
-  return nextItem;
-}
-
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSE
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  if (this._selectedItems)
-  {
-    this._selectedItems.dispose();
-    this._selectedItems = null;
-  }
-
-  return qx.core.Target.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/selection/TreeFullControlSelectionManager.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/selection/TreeFullControlSelectionManager.js
deleted file mode 100644 (file)
index 268160d..0000000
+++ /dev/null
@@ -1,208 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_treefullcontrol)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.manager.selection.TreeFullControlSelectionManager", qx.manager.selection.SelectionManager,
-function(vBoundedWidget) {
-  qx.manager.selection.SelectionManager.call(this, vBoundedWidget);
-});
-
-/*!
-Should multiple selection be allowed?
-*/
-qx.OO.changeProperty({ name : "multiSelection", type : "boolean", defaultValue : false });
-
-/*!
-Enable drag selection?
-*/
-qx.OO.changeProperty({ name : "dragSelection", type : "boolean", defaultValue : false });
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MAPPING TO BOUNDED WIDGET
----------------------------------------------------------------------------
-*/
-
-qx.Proto._getFirst = function() {
-  return qx.lang.Array.getFirst(this.getItems());
-}
-
-qx.Proto._getLast = function() {
-  return qx.lang.Array.getLast(this.getItems());
-}
-
-qx.Proto.getItems = function() {
-  return this.getBoundedWidget().getItems();
-}
-
-qx.Proto.getNext = function(vItem)
-{
-  if (vItem)
-  {
-    if (qx.ui.treefullcontrol.Tree.isOpenTreeFolder(vItem))
-    {
-      return vItem.getFirstVisibleChildOfFolder();
-    }
-    else if (vItem.isLastVisibleChild())
-    {
-      var vCurrent = vItem;
-
-      while(vCurrent && vCurrent.isLastVisibleChild()) {
-        vCurrent = vCurrent.getParentFolder();
-      }
-
-      if (vCurrent &&
-          vCurrent instanceof qx.ui.treefullcontrol.AbstractTreeElement &&
-          vCurrent.getNextVisibleSibling() &&
-          vCurrent.getNextVisibleSibling() instanceof qx.ui.treefullcontrol.AbstractTreeElement) {
-        return vCurrent.getNextVisibleSibling();
-      }
-    }
-    else
-    {
-      return vItem.getNextVisibleSibling();
-    }
-  }
-  else
-  {
-    return this.getBoundedWidget().getFirstTreeChild();
-  }
-}
-
-qx.Proto.getPrevious = function(vItem)
-{
-  if (vItem)
-  {
-    if (vItem == this.getBoundedWidget())
-    {
-      return;
-    }
-    else if (vItem.isFirstVisibleChild())
-    {
-      if (vItem.getParentFolder() instanceof qx.ui.treefullcontrol.TreeFolder) {
-        return vItem.getParentFolder();
-      }
-    }
-    else
-    {
-      var vPrev = vItem.getPreviousVisibleSibling();
-
-      if (vPrev instanceof qx.ui.treefullcontrol.AbstractTreeElement)
-      {
-        while (vPrev instanceof qx.ui.treefullcontrol.AbstractTreeElement)
-        {
-          if (qx.ui.treefullcontrol.Tree.isOpenTreeFolder(vPrev))
-          {
-            vPrev = vPrev.getLastVisibleChildOfFolder();
-          }
-          else
-          {
-            break;
-          }
-        }
-      }
-
-      return vPrev;
-    }
-  }
-  else
-  {
-    return this.getBoundedWidget().getLastTreeChild();
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MAPPING TO ITEM DIMENSIONS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getItemTop = function(vItem)
-{
-  // Alternate method:
-  // return qx.html.Location.getPageBoxTop(vItem.getElement()) - qx.html.Location.getPageInnerTop(this.getBoundedWidget().getElement());
-
-  var vBoundedWidget = this.getBoundedWidget();
-  var vElement = vItem.getElement();
-  var vOffset = 0;
-
-  while (vElement && vElement.qx_Widget != vBoundedWidget)
-  {
-    vOffset += vElement.offsetTop;
-    vElement = vElement.parentNode;
-  }
-
-  return vOffset;
-}
-
-qx.Proto.getItemHeight = function(vItem)
-{
-  if (vItem instanceof qx.ui.treefullcontrol.TreeFolder &&
-      vItem._horizontalLayout)
-  {
-    return vItem._horizontalLayout.getOffsetHeight();
-  }
-  else
-  {
-    return vItem.getOffsetHeight();
-  }
-}
-
-qx.Proto.scrollItemIntoView = function(vItem)
-{
-  if (vItem instanceof qx.ui.treefullcontrol.TreeFolder &&
-      vItem._horizontalLayout)
-  {
-    return vItem._horizontalLayout.scrollIntoView();
-  }
-  else
-  {
-    return vItem.scrollIntoView();
-  }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ITEM STATE MANAGMENT
----------------------------------------------------------------------------
-*/
-
-qx.Proto.renderItemSelectionState = function(vItem, vIsSelected) {
-  vItem.setSelected(vIsSelected);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/selection/TreeSelectionManager.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/selection/TreeSelectionManager.js
deleted file mode 100644 (file)
index d140a34..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_tree)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.manager.selection.TreeSelectionManager", qx.manager.selection.SelectionManager,
-function(vBoundedWidget) {
-  qx.manager.selection.SelectionManager.call(this, vBoundedWidget);
-});
-
-/*!
-Should multiple selection be allowed?
-*/
-qx.OO.changeProperty({ name : "multiSelection", type : "boolean", defaultValue : false });
-
-/*!
-Enable drag selection?
-*/
-qx.OO.changeProperty({ name : "dragSelection", type : "boolean", defaultValue : false });
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MAPPING TO BOUNDED WIDGET
----------------------------------------------------------------------------
-*/
-
-qx.Proto._getFirst = function() {
-  return qx.lang.Array.getFirst(this.getItems());
-}
-
-qx.Proto._getLast = function() {
-  return qx.lang.Array.getLast(this.getItems());
-}
-
-qx.Proto.getItems = function() {
-  return this.getBoundedWidget().getItems();
-}
-
-qx.Proto.getNext = function(vItem)
-{
-  if (vItem)
-  {
-    if (qx.ui.tree.Tree.isOpenTreeFolder(vItem))
-    {
-      return vItem.getFirstVisibleChildOfFolder();
-    }
-    else if (vItem.isLastVisibleChild())
-    {
-      var vCurrent = vItem;
-
-      while(vCurrent && vCurrent.isLastVisibleChild()) {
-        vCurrent = vCurrent.getParentFolder();
-      }
-
-      if (vCurrent && vCurrent instanceof qx.ui.tree.AbstractTreeElement && vCurrent.getNextVisibleSibling() && vCurrent.getNextVisibleSibling() instanceof qx.ui.tree.AbstractTreeElement) {
-        return vCurrent.getNextVisibleSibling();
-      }
-    }
-    else
-    {
-      return vItem.getNextVisibleSibling();
-    }
-  }
-  else
-  {
-    return this.getBoundedWidget().getFirstTreeChild();
-  }
-}
-
-qx.Proto.getPrevious = function(vItem)
-{
-  if (vItem)
-  {
-    if (vItem == this.getBoundedWidget())
-    {
-      return;
-    }
-    else if (vItem.isFirstVisibleChild())
-    {
-      if (vItem.getParentFolder() instanceof qx.ui.tree.TreeFolder) {
-        return vItem.getParentFolder();
-      }
-    }
-    else
-    {
-      var vPrev = vItem.getPreviousVisibleSibling();
-
-      while (vPrev instanceof qx.ui.tree.AbstractTreeElement)
-      {
-        if (qx.ui.tree.Tree.isOpenTreeFolder(vPrev))
-        {
-          vPrev = vPrev.getLastVisibleChildOfFolder();
-        }
-        else
-        {
-          break;
-        }
-      }
-
-      return vPrev;
-    }
-  }
-  else
-  {
-    return this.getBoundedWidget().getLastTreeChild();
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MAPPING TO ITEM DIMENSIONS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getItemTop = function(vItem)
-{
-  // Alternate method:
-  // return qx.html.Location.getPageBoxTop(vItem.getElement()) - qx.html.Location.getPageInnerTop(this.getBoundedWidget().getElement());
-
-  var vBoundedWidget = this.getBoundedWidget();
-  var vElement = vItem.getElement();
-  var vOffset = 0;
-
-  while (vElement && vElement.qx_Widget != vBoundedWidget)
-  {
-    vOffset += vElement.offsetTop;
-    vElement = vElement.parentNode;
-  }
-
-  return vOffset;
-}
-
-qx.Proto.getItemHeight = function(vItem)
-{
-  if (vItem instanceof qx.ui.tree.TreeFolder && vItem._horizontalLayout)
-  {
-    return vItem._horizontalLayout.getOffsetHeight();
-  }
-  else
-  {
-    return vItem.getOffsetHeight();
-  }
-}
-
-qx.Proto.scrollItemIntoView = function(vItem)
-{
-  if (vItem instanceof qx.ui.tree.TreeFolder && vItem._horizontalLayout)
-  {
-    return vItem._horizontalLayout.scrollIntoView();
-  }
-  else
-  {
-    return vItem.scrollIntoView();
-  }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ITEM STATE MANAGMENT
----------------------------------------------------------------------------
-*/
-
-qx.Proto.renderItemSelectionState = function(vItem, vIsSelected) {
-  vItem.setSelected(vIsSelected);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/selection/VirtualSelectionManager.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/manager/selection/VirtualSelectionManager.js
deleted file mode 100644 (file)
index f50f70c..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_listview)
-
-************************************************************************ */
-
-/*!
-  This class represents a selection and manage incoming events for widgets which need selection support.
-*/
-qx.OO.defineClass("qx.manager.selection.VirtualSelectionManager", qx.manager.selection.SelectionManager,
-function(vBoundedWidget) {
-  qx.manager.selection.SelectionManager.call(this, vBoundedWidget);
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MAPPING TO BOUNDED WIDGET
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getFirst = function() {
-  return qx.lang.Array.getFirst(this.getItems());
-}
-
-qx.Proto.getLast = function() {
-  return qx.lang.Array.getLast(this.getItems());
-}
-
-qx.Proto.getItems = function() {
-  return this.getBoundedWidget().getData();
-}
-
-qx.Proto.getNextSibling = function(vItem)
-{
-  var vData = this.getItems();
-  return vData[vData.indexOf(vItem)+1];
-}
-
-qx.Proto.getPreviousSibling = function(vItem)
-{
-  var vData = this.getItems();
-  return vData[vData.indexOf(vItem)-1];
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MAPPING TO ITEM PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getItemHashCode = function(oItem)
-{
-  if (oItem._hash) {
-    return oItem._hash;
-  }
-
-  return oItem._hash = qx.core.Object.toHashCode(oItem);
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MAPPING TO ITEM DIMENSIONS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.scrollItemIntoView = function(vItem, vTopLeft) {
-  this.getBoundedWidget().scrollItemIntoView(vItem, vTopLeft);
-}
-
-qx.Proto.getItemLeft = function(vItem) {
-  return this.getBoundedWidget().getItemLeft(vItem);
-}
-
-qx.Proto.getItemTop = function(vItem) {
-  return this.getBoundedWidget().getItemTop(vItem);
-}
-
-qx.Proto.getItemWidth = function(vItem) {
-  return this.getBoundedWidget().getItemWidth(vItem);
-}
-
-qx.Proto.getItemHeight = function(vItem) {
-  return this.getBoundedWidget().getItemHeight(vItem);
-}
-
-/*!
-  In a qx.ui.listview.ListView there are no disabled entries support currently.
-*/
-qx.Proto.getItemEnabled = function(vItem) {
-  return true;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ITEM STATE MANAGMENT
----------------------------------------------------------------------------
-*/
-
-qx.Proto.renderItemSelectionState = function(vItem, vIsSelected) {
-  this.getBoundedWidget()._updateSelectionState(vItem, vIsSelected);
-}
-
-qx.Proto.renderItemAnchorState = function(vItem, vIsAnchor) {
-  this.getBoundedWidget()._updateAnchorState(vItem, vIsAnchor);
-}
-
-qx.Proto.renderItemLeadState = function(vItem, vIsLead) {
-  this.getBoundedWidget()._updateLeadState(vItem, vIsLead);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/net/Http.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/net/Http.js
deleted file mode 100644 (file)
index d392aef..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* ************************************************************************\r
-\r
-   qooxdoo - the new era of web development\r
-\r
-   http://qooxdoo.org\r
-\r
-   Copyright:\r
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org\r
-\r
-   License:\r
-     LGPL: http://www.gnu.org/licenses/lgpl.html\r
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php\r
-     See the LICENSE file in the project's top-level directory for details.\r
-\r
-   Authors:\r
-     * Sebastian Werner (wpbasti)\r
-     * Andreas Ecker (ecker)\r
-\r
-************************************************************************ */\r
-\r
-/* ************************************************************************\r
-\r
-\r
-************************************************************************ */\r
-\r
-qx.OO.defineClass("qx.net.Http",\r
-{\r
-  METHOD_GET : "GET",\r
-  METHOD_POST : "POST",\r
-  METHOD_PUT : "PUT",\r
-  METHOD_HEAD : "HEAD",\r
-  METHOD_DELETE : "DELETE"\r
-});\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/net/HttpRequest.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/net/HttpRequest.js
deleted file mode 100644 (file)
index 66849b7..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.net.HttpRequest");
-
-/**
- * Return a new XMLHttpRequest object suitable for the client browser.
- *
- * TODO: extract detection of MSXML version (run once)
- *
- * @return {HttpRequest}
- */
-qx.Class.create = function() { return null };
-
-if (window.XMLHttpRequest)
-{
-  qx.Class.create = function()
-  {
-    return new XMLHttpRequest;
-  };
-}
-else if (window.ActiveXObject)
-{
-  qx.Class.create = function()
-  {
-    /*
-     According to information on the Microsoft XML Team's WebLog
-     it is recommended to check for availability of MSXML versions 6.0 and 3.0.
-     Other versions are included for completeness, 5.0 is excluded as it is
-     "off-by-default" in IE7 (which could trigger a goldbar).
-
-     http://blogs.msdn.com/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx
-     http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/aabe29a2-bad2-4cea-8387-314174252a74.asp
-
-     MSXML 3 is preferred over MSXML 6 because the IE7 native XMLHttpRequest returns
-     a MSXML 3 document and so does not properly work with other types of xml documents.
-    */
-    var vServers =
-    [
-      "MSXML2.XMLHTTP.3.0",
-      "MSXML2.XMLHTTP.6.0",
-      "MSXML2.XMLHTTP.4.0",
-      "MSXML2.XMLHTTP",    // v3.0
-      "Microsoft.XMLHTTP"  // v2.x
-    ];
-
-    var vObject;
-    var vServer;
-
-    for (var i=0, l=vServers.length; i<l; i++)
-    {
-      vServer = vServers[i];
-
-      try
-      {
-        vObject = new ActiveXObject(vServer);
-        break;
-      }
-      catch(ex)
-      {
-        vObject = null;
-      }
-    }
-    return vObject
-  };
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/net/Protocol.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/net/Protocol.js
deleted file mode 100644 (file)
index 68b584d..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/* ************************************************************************\r
-\r
-   qooxdoo - the new era of web development\r
-\r
-   http://qooxdoo.org\r
-\r
-   Copyright:\r
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org\r
-\r
-   License:\r
-     LGPL: http://www.gnu.org/licenses/lgpl.html\r
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php\r
-     See the LICENSE file in the project's top-level directory for details.\r
-\r
-   Authors:\r
-     * Sebastian Werner (wpbasti)\r
-     * Andreas Ecker (ecker)\r
-\r
-************************************************************************ */\r
-\r
-/* ************************************************************************\r
-\r
-\r
-************************************************************************ */\r
-\r
-qx.OO.defineClass("qx.net.Protocol",\r
-{\r
-  HTTP : "http",\r
-  HTTPS : "https",\r
-  FTP : "ftp",\r
-  FILE : "file",\r
-\r
-  URI_HTTP : "http://",\r
-  URI_HTTPS : "https://",\r
-  URI_FTP : "ftp://",\r
-  URI_FILE : "file://"\r
-});\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/border/Border.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/border/Border.js
deleted file mode 100644 (file)
index f5ac249..0000000
+++ /dev/null
@@ -1,1187 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#require(qx.core.Client)
-#require(qx.renderer.color.ColorCache)
-#load(qx.renderer.border.BorderObject)
-
-************************************************************************ */
-
-/*!
-  Border implementation for qx.ui.core.Widget instances.
-*/
-qx.OO.defineClass("qx.renderer.border.Border", qx.core.Object,
-function(vWidth, vStyle, vColor)
-{
-  qx.core.Object.call(this);
-
-  this._themedEdges = {};
-  this._initCache();
-
-  if (vWidth != null)
-  {
-    this.setWidth(vWidth);
-
-    if (vStyle != null) {
-      this.setStyle(vStyle);
-    }
-
-    if (vColor != null) {
-      this.setColor(vColor);
-    }
-  }
-});
-
-
-qx.Class.enhancedCrossBrowserMode = true;
-
-qx.Proto._needsCompilationTop = true;
-qx.Proto._needsCompilationRight = true;
-qx.Proto._needsCompilationBottom = true;
-qx.Proto._needsCompilationLeft = true;
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.addProperty({ name : "topWidth", type : "number", defaultValue : 0, impl : "borderTopProperty" });
-qx.OO.addProperty({ name : "rightWidth", type : "number", defaultValue : 0, impl : "borderRightProperty" });
-qx.OO.addProperty({ name : "bottomWidth", type : "number", defaultValue : 0, impl : "borderBottomProperty" });
-qx.OO.addProperty({ name : "leftWidth", type : "number", defaultValue : 0, impl : "borderLeftProperty" });
-
-qx.OO.addProperty({ name : "topStyle", type : "string", defaultValue : "none", impl : "borderTopProperty" });
-qx.OO.addProperty({ name : "rightStyle", type : "string", defaultValue : "none", impl : "borderRightProperty" });
-qx.OO.addProperty({ name : "bottomStyle", type : "string", defaultValue : "none", impl : "borderBottomProperty" });
-qx.OO.addProperty({ name : "leftStyle", type : "string", defaultValue : "none", impl : "borderLeftProperty" });
-
-qx.OO.addProperty({ name : "topColor", impl : "borderTopProperty", type : "object", instance : "qx.renderer.color.Color", convert : qx.renderer.color.ColorCache });
-qx.OO.addProperty({ name : "rightColor", impl : "borderRightProperty", type : "object", instance : "qx.renderer.color.Color", convert : qx.renderer.color.ColorCache });
-qx.OO.addProperty({ name : "bottomColor", impl : "borderBottomProperty", type : "object", instance : "qx.renderer.color.Color", convert : qx.renderer.color.ColorCache });
-qx.OO.addProperty({ name : "leftColor", impl : "borderLeftProperty", type : "object", instance : "qx.renderer.color.Color", convert : qx.renderer.color.ColorCache });
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITY
----------------------------------------------------------------------------
-*/
-
-qx.renderer.border.Border.fromString = function(vDefString)
-{
-  var vBorder = new qx.renderer.border.Border;
-  var vAllParts = vDefString.split(/\s+/);
-  var vPart, vTemp;
-
-  for (var i=0; i<vAllParts.length; i++)
-  {
-    switch(vPart = vAllParts[i])
-    {
-      case "groove":
-      case "ridge":
-      case "inset":
-      case "outset":
-      case "solid":
-      case "dotted":
-      case "dashed":
-      case "double":
-      case "none":
-        vBorder.setStyle(vPart);
-        break;
-
-      default:
-        vTemp = parseFloat(vPart);
-
-        if(vTemp == vPart || qx.lang.String.contains(vPart, "px"))
-        {
-          vBorder.setWidth(vTemp);
-        }
-        else
-        {
-          vPart = vPart.toLowerCase();
-          vBorder.setColor(new qx.renderer.color.Color(vPart));
-        }
-
-        break;
-    }
-  }
-
-  return vBorder;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  COMPATIBILITY TO qx.renderer.border.BorderOBJECT
----------------------------------------------------------------------------
-*/
-
-qx.Proto.addListenerWidget = qx.lang.Function.returnTrue;
-qx.Proto.removeListenerWidget = qx.lang.Function.returnTrue;
-
-qx.Proto._sync = qx.lang.Function.returnTrue;
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  COMBINED SETTERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.setWidth = function(vWidth)
-{
-  this.setTopWidth(vWidth);
-  this.setRightWidth(vWidth);
-  this.setBottomWidth(vWidth);
-  this.setLeftWidth(vWidth);
-
-  return true;
-}
-
-qx.Proto.setStyle = function(vStyle)
-{
-  this.setTopStyle(vStyle);
-  this.setRightStyle(vStyle);
-  this.setBottomStyle(vStyle);
-  this.setLeftStyle(vStyle);
-
-  return true;
-}
-
-qx.Proto.setColor = function(vColor)
-{
-  this.setTopColor(vColor);
-  this.setRightColor(vColor);
-  this.setBottomColor(vColor);
-  this.setLeftColor(vColor);
-
-  return true;
-}
-
-
-
-
-qx.Proto.setTop = function(vWidth, vStyle, vColor)
-{
-  this.setTopWidth(vWidth);
-  this.setTopStyle(vStyle);
-  this.setTopColor(vColor);
-
-  return true;
-}
-
-qx.Proto.setRight = function(vWidth, vStyle, vColor)
-{
-  this.setRightWidth(vWidth);
-  this.setRightStyle(vStyle);
-  this.setRightColor(vColor);
-
-  return true;
-}
-
-qx.Proto.setBottom = function(vWidth, vStyle, vColor)
-{
-  this.setBottomWidth(vWidth);
-  this.setBottomStyle(vStyle);
-  this.setBottomColor(vColor);
-
-  return true;
-}
-
-qx.Proto.setLeft = function(vWidth, vStyle, vColor)
-{
-  this.setLeftWidth(vWidth);
-  this.setLeftStyle(vStyle);
-  this.setLeftColor(vColor);
-
-  return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  INITIALISATION OF CACHE
----------------------------------------------------------------------------
-*/
-
-
-if (qx.core.Client.getInstance().isGecko())
-{
-  qx.Proto._initCache = function()
-  {
-    this._defsX =
-    {
-      borderLeft : "",
-      borderRight : "",
-
-      MozBorderLeftColors : "",
-      MozBorderRightColors : ""
-    }
-
-    this._defsY =
-    {
-      borderTop : "",
-      borderBottom : "",
-
-      MozBorderTopColors : "",
-      MozBorderBottomColors : ""
-    }
-  }
-}
-else
-{
-  qx.Proto._initCache = function()
-  {
-    this._defsX =
-    {
-      borderLeft : "",
-      borderRight : ""
-    }
-
-    this._defsY =
-    {
-      borderTop : "",
-      borderBottom : ""
-    }
-
-    if (qx.renderer.border.Border.enhancedCrossBrowserMode)
-    {
-      this._enhancedDefsX =
-      {
-        borderLeft : "",
-        borderRight : ""
-      }
-
-      this._enhancedDefsY =
-      {
-        borderTop : "",
-        borderBottom : ""
-      }
-    }
-  }
-}
-
-
-/*
----------------------------------------------------------------------------
-  BORDER MODIFIER AND SYNCER
----------------------------------------------------------------------------
-*/
-
-if (qx.core.Client.getInstance().isGecko() || qx.renderer.border.Border.enhancedCrossBrowserMode)
-{
-  qx.Proto._addToThemed3DColors = function(vProp)
-  {
-    var needRegistering = qx.lang.Object.isEmpty(this._themedEdges);
-
-    this._themedEdges[vProp] = true;
-
-    if (needRegistering)
-    {
-      (new qx.renderer.color.ColorObject("ThreeDDarkShadow")).add(this);
-      (new qx.renderer.color.ColorObject("ThreeDShadow")).add(this);
-      (new qx.renderer.color.ColorObject("ThreeDLightShadow")).add(this);
-      (new qx.renderer.color.ColorObject("ThreeDHighlight")).add(this);
-    }
-  }
-
-  qx.Proto._removeFromThemed3DColors = function(vProp)
-  {
-    delete this._themedEdges[vProp];
-
-    if (qx.lang.Object.isEmpty(this._themedEdges))
-    {
-      (new qx.renderer.color.ColorObject("ThreeDDarkShadow")).remove(this);
-      (new qx.renderer.color.ColorObject("ThreeDShadow")).remove(this);
-      (new qx.renderer.color.ColorObject("ThreeDLightShadow")).remove(this);
-      (new qx.renderer.color.ColorObject("ThreeDHighlight")).remove(this);
-    }
-  }
-}
-else
-{
-  qx.Proto._addToThemed3DColors = function(vProp)
-  {
-    var needRegistering = qx.lang.Object.isEmpty(this._themedEdges);
-
-    this._themedEdges[vProp] = true;
-
-    if (needRegistering)
-    {
-      (new qx.renderer.color.ColorObject("ThreeDLightShadow")).add(this);
-    }
-  }
-
-  qx.Proto._removeFromThemed3DColors = function(vProp)
-  {
-    delete this._themedEdges[vProp];
-
-    if (qx.lang.Object.isEmpty(this._themedEdges))
-    {
-      (new qx.renderer.color.ColorObject("ThreeDLightShadow")).remove(this);
-    }
-  }
-}
-
-
-
-
-
-qx.renderer.border.Border.data =
-{
-  1 :
-  {
-    outset :
-    {
-      top : [ "threedhighlight" ],
-      right : [ "threedshadow" ],
-      bottom : [ "threedshadow" ],
-      left : [ "threedhighlight" ]
-    },
-
-    inset :
-    {
-      top : [ "threedshadow" ],
-      right : [ "threedhighlight" ],
-      bottom : [ "threedhighlight" ],
-      left : [ "threedshadow" ]
-    }
-  },
-
-  2 :
-  {
-    outset :
-    {
-      top : [ "threedlightshadow", "threedhighlight" ],
-      right : [ "threeddarkshadow", "threedshadow" ],
-      bottom : [ "threeddarkshadow", "threedshadow" ],
-      left : [ "threedlightshadow", "threedhighlight" ]
-    },
-
-    inset :
-    {
-      top : [ "threedshadow", "threeddarkshadow" ],
-      right : [ "threedhighlight", "threedlightshadow" ],
-      bottom : [ "threedhighlight", "threedlightshadow" ],
-      left : [ "threedshadow", "threeddarkshadow" ]
-    },
-
-    ridge :
-    {
-      top : [ "threedhighlight", "threedshadow" ],
-      right : [ "threedshadow", "threedhighlight" ],
-      bottom : [ "threedshadow", "threedhighlight" ],
-      left : [ "threedhighlight", "threedshadow" ]
-    },
-
-    groove :
-    {
-      top : [ "threedshadow", "threedhighlight" ],
-      right : [ "threedhighlight", "threedshadow" ],
-      bottom : [ "threedhighlight", "threedshadow" ],
-      left : [ "threedshadow", "threedhighlight" ]
-    }
-  }
-}
-
-
-
-
-
-qx.Proto._generateDefString = function(vWidth, vStyle, vColor)
-{
-  if (typeof vWidth !== "number" || vWidth < 0) {
-    return "";
-  }
-
-  var vArr = [ vWidth + "px" ];
-
-  if (vStyle != null) {
-    vArr.push(vStyle);
-  }
-
-  if (vColor instanceof qx.renderer.color.Color) {
-    vColor = vColor.getStyle();
-  }
-
-  if (vColor != null) {
-    vArr.push(vColor);
-  }
-
-  return vArr.join(" ");
-}
-
-
-
-
-// TODO: Add more smartness ;)
-// Only update the border edges which depends on this color object
-qx.Proto._updateColors = function(vColorObject, vNewValue)
-{
-  this._needsCompilationTop = true;
-  this._needsCompilationRight = true;
-  this._needsCompilationBottom = true;
-  this._needsCompilationLeft = true;
-
-  this._sync("top");
-  this._sync("right");
-  this._sync("bottom");
-  this._sync("left");
-}
-
-
-
-
-
-
-
-qx.Proto._handleColorRegistration = function(propValue, propOldValue, propData)
-{
-  if (qx.lang.String.contains(propData.name, "Style"))
-  {
-    switch(propValue)
-    {
-      case "outset":
-      case "inset":
-      case "groove":
-      case "ridge":
-        this._addToThemed3DColors(propData.name);
-        break;
-
-      default:
-        this._removeFromThemed3DColors(propData.name);
-    }
-  }
-
-  if (qx.lang.String.contains(propData.name, "Color"))
-  {
-    if (propOldValue instanceof qx.renderer.color.ColorObject)
-    {
-      // detect if there are no other deps anymore
-      switch(propOldValue)
-      {
-        case this.getTopColor():
-        case this.getRightColor():
-        case this.getBottomColor():
-        case this.getLeftColor():
-          break;
-
-        default:
-          propOldValue.remove(this);
-      }
-    }
-
-    if (propValue instanceof qx.renderer.color.ColorObject)
-    {
-      // simply add, internal storage is a hash key so
-      // this is not a problem also if this is already
-      // registered there.
-      propValue.add(this);
-    }
-  }
-}
-
-
-
-
-
-
-
-
-qx.Proto._modifyBorderTopProperty = function(propValue, propOldValue, propData)
-{
-  this._handleColorRegistration(propValue, propOldValue, propData);
-
-  this._needsCompilationTop = true;
-  this._useEnhancedCrossBrowserMode = null;
-
-  this._sync("top");
-
-  return true;
-}
-
-qx.Proto._modifyBorderRightProperty = function(propValue, propOldValue, propData)
-{
-  this._handleColorRegistration(propValue, propOldValue, propData);
-
-  this._needsCompilationRight = true;
-  this._useEnhancedCrossBrowserMode = null;
-
-  this._sync("right");
-
-  return true;
-}
-
-qx.Proto._modifyBorderBottomProperty = function(propValue, propOldValue, propData)
-{
-  this._handleColorRegistration(propValue, propOldValue, propData);
-
-  this._needsCompilationBottom = true;
-  this._useEnhancedCrossBrowserMode = null;
-
-  this._sync("bottom");
-
-  return true;
-}
-
-qx.Proto._modifyBorderLeftProperty = function(propValue, propOldValue, propData)
-{
-  this._handleColorRegistration(propValue, propOldValue, propData);
-
-  this._needsCompilationLeft = true;
-  this._useEnhancedCrossBrowserMode = null;
-
-  this._sync("left");
-
-  return true;
-}
-
-
-
-
-
-
-
-
-
-qx.Proto.getUseEnhancedCrossBrowserMode = function()
-{
-  if (this._useEnhancedCrossBrowserMode == null) {
-    this._useEnhancedCrossBrowserMode = this._evalUseEnhancedCrossBrowserMode();
-  }
-
-  return this._useEnhancedCrossBrowserMode;
-}
-
-qx.Proto._evalUseEnhancedCrossBrowserMode = function()
-{
-  if (this.getTopWidth() == 2) {
-    switch(this.getTopStyle()) {
-      case "outset": case "inset": case "groove": case "ridge": return true;
-    }
-  }
-
-  if (this.getRightWidth() == 2) {
-    switch(this.getRightStyle()) {
-      case "outset": case "inset": case "groove": case "ridge": return true;
-    }
-  }
-
-  if (this.getBottomWidth() == 2) {
-    switch(this.getBottomStyle()) {
-      case "outset": case "inset": case "groove": case "ridge": return true;
-    }
-  }
-
-  if (this.getLeftWidth() == 2) {
-    switch(this.getLeftStyle()) {
-      case "outset": case "inset": case "groove": case "ridge": return true;
-    }
-  }
-
-  return false;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  BORDER APPLY IMPLEMENTATION
----------------------------------------------------------------------------
-*/
-
-qx.Proto._applyWidget = function(o)
-{
-  this._applyWidgetX(o);
-  this._applyWidgetY(o);
-}
-
-qx.Proto._resetWidget = function(o)
-{
-  this._resetWidgetX(o);
-  this._resetWidgetY(o);
-}
-
-qx.Proto._resetWidgetX = function(o) {
-  return qx.renderer.border.Border._resetBorderX(o);
-}
-
-qx.Proto._resetWidgetY = function(o) {
-  return qx.renderer.border.Border._resetBorderY(o);
-}
-
-qx.Proto._applyWidgetXCommon = function(vObject)
-{
-  if (this._needsCompilationLeft) {
-    this._compileLeft();
-  }
-
-  if (this._needsCompilationRight) {
-    this._compileRight();
-  }
-
-  for (var i in this._defsX) {
-    vObject._style[i] = this._defsX[i];
-  }
-
-  if (!qx.core.Client.getInstance().isGecko() && qx.renderer.border.Border.enhancedCrossBrowserMode)
-  {
-    if (this.getUseEnhancedCrossBrowserMode()) {
-      vObject._createElementForEnhancedBorder();
-    }
-
-    if (vObject._borderStyle)
-    {
-      for (var i in this._enhancedDefsX) {
-        vObject._borderStyle[i] = this._enhancedDefsX[i];
-      }
-    }
-  }
-}
-
-qx.Proto._applyWidgetYCommon = function(vObject)
-{
-  if (this._needsCompilationTop) {
-    this._compileTop();
-  }
-
-  if (this._needsCompilationBottom) {
-    this._compileBottom();
-  }
-
-  for (var i in this._defsY) {
-    vObject._style[i] = this._defsY[i];
-  }
-
-  if (!qx.core.Client.getInstance().isGecko() && qx.renderer.border.Border.enhancedCrossBrowserMode)
-  {
-    if (this.getUseEnhancedCrossBrowserMode()) {
-      vObject._createElementForEnhancedBorder();
-    }
-
-    if (vObject._borderStyle)
-    {
-      for (var i in this._enhancedDefsY) {
-        vObject._borderStyle[i] = this._enhancedDefsY[i];
-      }
-    }
-  }
-}
-
-if (qx.core.Client.getInstance().isGecko())
-{
-  qx.Proto._applyWidgetX = qx.Proto._applyWidgetXCommon;
-  qx.Proto._applyWidgetY = qx.Proto._applyWidgetYCommon;
-
-  qx.Proto._generateMozColorDefString = function(vWidth, vStyle, vEdge)
-  {
-    try
-    {
-      try {
-        var a = qx.renderer.border.Border.data[vWidth][vStyle][vEdge];
-      } catch(ex) {}
-
-      if (typeof a === "object")
-      {
-        for (var i=0, s=[], l=a.length; i<l; i++) {
-          s.push((new qx.renderer.color.ColorObject(a[i]).getStyle()));
-        }
-
-        return s.join(" ");
-      }
-    }
-    catch(ex) {
-      this.error("Failed to generate Mozilla Color Definition Strings", ex);
-    }
-
-    return "";
-  }
-
-  qx.Proto._compileTop = function()
-  {
-    var w=this.getTopWidth(), s=this.getTopStyle(), d=this._defsY;
-
-    d.borderTop = this._generateDefString(w, s, this.getTopColor());
-    d.MozBorderTopColors = this._generateMozColorDefString(w, s, "top");
-
-    this._needsCompilationTop = false;
-  }
-
-  qx.Proto._compileRight = function()
-  {
-    var w=this.getRightWidth(), s=this.getRightStyle(), d=this._defsX;
-
-    d.borderRight = this._generateDefString(w, s, this.getRightColor());
-    d.MozBorderRightColors = this._generateMozColorDefString(w, s, "right");
-
-    this._needsCompilationRight = false;
-  }
-
-  qx.Proto._compileBottom = function()
-  {
-    var w=this.getBottomWidth(), s=this.getBottomStyle(), d=this._defsY;
-
-    d.borderBottom = this._generateDefString(w, s, this.getBottomColor());
-    d.MozBorderBottomColors = this._generateMozColorDefString(w, s, "bottom");
-
-    this._needsCompilationBottom = false;
-  }
-
-  qx.Proto._compileLeft = function()
-  {
-    var w=this.getLeftWidth(), s=this.getLeftStyle(), d=this._defsX;
-
-    d.borderLeft = this._generateDefString(w, s, this.getLeftColor());
-    d.MozBorderLeftColors = this._generateMozColorDefString(w, s, "left");
-
-    this._needsCompilationLeft = false;
-  }
-
-  qx.renderer.border.Border._resetBorderX = function(o)
-  {
-    var s = o._style;
-    s.borderLeft = s.borderRight = s.MozBorderLeftColors = s.MozBorderRightColors = "";
-  }
-
-  qx.renderer.border.Border._resetBorderY = function(o)
-  {
-    var s = o._style;
-    s.borderTop = s.borderBottom = s.MozBorderTopColors = s.MozBorderBottomColors = "";
-  }
-}
-else
-{
-  qx.Proto._applyWidgetX = function(vObject)
-  {
-    this._applyWidgetXCommon(vObject);
-
-    if (qx.renderer.border.Border.enhancedCrossBrowserMode)
-    {
-      if (this.getUseEnhancedCrossBrowserMode()) {
-        vObject._createElementForEnhancedBorder();
-      }
-
-      if (vObject._borderStyle)
-      {
-        for (var i in this._enhancedDefsX) {
-          vObject._borderStyle[i] = this._enhancedDefsX[i];
-        }
-      }
-    }
-  }
-
-  qx.Proto._applyWidgetY = function(vObject)
-  {
-    this._applyWidgetYCommon(vObject);
-
-    if (qx.renderer.border.Border.enhancedCrossBrowserMode)
-    {
-      if (this.getUseEnhancedCrossBrowserMode()) {
-        vObject._createElementForEnhancedBorder();
-      }
-
-      if (vObject._borderStyle)
-      {
-        for (var i in this._enhancedDefsY) {
-          vObject._borderStyle[i] = this._enhancedDefsY[i];
-        }
-      }
-    }
-  }
-
-  qx.Proto._compileTop = function()
-  {
-    var vTopWidth = this.getTopWidth();
-    var vTopStyle = this.getTopStyle();
-    var vTopColor = this.getTopColor();
-
-    switch(vTopWidth)
-    {
-      case 1:
-        switch(vTopStyle)
-        {
-          case "outset":
-          case "inset":
-            vTopColor = (new qx.renderer.color.ColorObject(qx.renderer.border.Border.data[vTopWidth][vTopStyle]["top"][0]));
-            vTopStyle = "solid";
-        }
-
-        break;
-
-      case 2:
-        switch(vTopStyle)
-        {
-          case "outset":
-          case "inset":
-          case "groove":
-          case "ridge":
-            if (qx.renderer.border.Border.enhancedCrossBrowserMode)
-            {
-              try
-              {
-                var c = qx.renderer.border.Border.data[vTopWidth][vTopStyle]["top"];
-
-                if (typeof c === "object")
-                {
-                  vTopStyle = "solid";
-                  vTopWidth = 1;
-                  vTopColor = (new qx.renderer.color.ColorObject(c[1]));
-
-                  this._enhancedDefsY.borderTop = this._generateDefString(vTopWidth, vTopStyle, vTopColor);
-
-                  vTopColor = (new qx.renderer.color.ColorObject(c[0]));
-                }
-              }
-              catch(ex)
-              {
-                this.error("Failed to compile top border", ex);
-                this.warn("Details: Width=" + vTopWidth + ", Style=" + vTopStyle);
-              }
-            }
-            else
-            {
-              vTopColor = (new qx.renderer.color.ColorObject("threedlightshadow"));
-            }
-        }
-
-        break;
-    }
-
-    this._defsY.borderTop = this._generateDefString(vTopWidth, vTopStyle, vTopColor);
-    this._needsCompilationTop = false;
-  }
-
-  qx.Proto._compileRight = function()
-  {
-    var vRightWidth = this.getRightWidth();
-    var vRightStyle = this.getRightStyle();
-    var vRightColor = this.getRightColor();
-
-    switch(vRightWidth)
-    {
-      case 1:
-        switch(vRightStyle)
-        {
-          case "outset":
-          case "inset":
-            vRightColor = (new qx.renderer.color.ColorObject(qx.renderer.border.Border.data[vRightWidth][vRightStyle]["right"][0]));
-            vRightStyle = "solid";
-        }
-
-        break;
-
-      case 2:
-        switch(vRightStyle)
-        {
-          case "outset":
-          case "inset":
-          case "groove":
-          case "ridge":
-            if (qx.renderer.border.Border.enhancedCrossBrowserMode)
-            {
-              try
-              {
-                var c = qx.renderer.border.Border.data[vRightWidth][vRightStyle]["right"];
-
-                if (typeof c === "object")
-                {
-                  vRightStyle = "solid";
-                  vRightWidth = 1;
-                  vRightColor = (new qx.renderer.color.ColorObject(c[1]));
-
-                  this._enhancedDefsX.borderRight = this._generateDefString(vRightWidth, vRightStyle, vRightColor);
-
-                  vRightColor = (new qx.renderer.color.ColorObject(c[0]));
-                }
-              }
-              catch(ex)
-              {
-                this.error("Failed to compile right border", ex);
-                this.warn("Details: Width=" + vRightWidth + ", Style=" + vRightStyle);
-              }
-            }
-            else
-            {
-              vRightColor = (new qx.renderer.color.ColorObject("threedlightshadow"));
-            }
-        }
-
-        break;
-    }
-
-    this._defsX.borderRight = this._generateDefString(vRightWidth, vRightStyle, vRightColor);
-    this._needsCompilationRight = false;
-  }
-
-  qx.Proto._compileBottom = function()
-  {
-    var vBottomWidth = this.getBottomWidth();
-    var vBottomStyle = this.getBottomStyle();
-    var vBottomColor = this.getBottomColor();
-
-    switch(vBottomWidth)
-    {
-      case 1:
-        switch(vBottomStyle)
-        {
-          case "outset":
-          case "inset":
-            vBottomColor = (new qx.renderer.color.ColorObject(qx.renderer.border.Border.data[vBottomWidth][vBottomStyle]["bottom"][0]));
-            vBottomStyle = "solid";
-        }
-
-        break;
-
-      case 2:
-        switch(vBottomStyle)
-        {
-          case "outset":
-          case "inset":
-          case "groove":
-          case "ridge":
-            if (qx.renderer.border.Border.enhancedCrossBrowserMode)
-            {
-              try
-              {
-                var c = qx.renderer.border.Border.data[vBottomWidth][vBottomStyle]["bottom"];
-
-                if (typeof c === "object")
-                {
-                  vBottomStyle = "solid";
-                  vBottomWidth = 1;
-                  vBottomColor = (new qx.renderer.color.ColorObject(c[1]));
-
-                  this._enhancedDefsY.borderBottom = this._generateDefString(vBottomWidth, vBottomStyle, vBottomColor);
-
-                  vBottomColor = (new qx.renderer.color.ColorObject(c[0]));
-                }
-              }
-              catch(ex) {
-                this.error("Failed to compile bottom border", ex);
-                this.warn("Details: Width=" + vBottomWidth + ", Style=" + vBottomStyle);
-              }
-            }
-            else
-            {
-              vBottomColor = (new qx.renderer.color.ColorObject("threedlightshadow"));
-            }
-        }
-
-        break;
-    }
-
-    this._defsY.borderBottom = this._generateDefString(vBottomWidth, vBottomStyle, vBottomColor);
-    this._needsCompilationBottom = false;
-  }
-
-  qx.Proto._compileLeft = function()
-  {
-    var vLeftWidth = this.getLeftWidth();
-    var vLeftStyle = this.getLeftStyle();
-    var vLeftColor = this.getLeftColor();
-
-    switch(vLeftWidth)
-    {
-      case 1:
-        switch(vLeftStyle)
-        {
-          case "outset":
-          case "inset":
-            vLeftColor = (new qx.renderer.color.ColorObject(qx.renderer.border.Border.data[vLeftWidth][vLeftStyle]["left"][0]));
-            vLeftStyle = "solid";
-        }
-
-        break;
-
-      case 2:
-        switch(vLeftStyle)
-        {
-          case "outset":
-          case "inset":
-          case "groove":
-          case "ridge":
-            if (qx.renderer.border.Border.enhancedCrossBrowserMode)
-            {
-              try
-              {
-                var c = qx.renderer.border.Border.data[vLeftWidth][vLeftStyle]["left"];
-
-                if (typeof c === "object")
-                {
-                  vLeftStyle = "solid";
-                  vLeftWidth = 1;
-                  vLeftColor = (new qx.renderer.color.ColorObject(c[1]));
-
-                  this._enhancedDefsX.borderLeft = this._generateDefString(vLeftWidth, vLeftStyle, vLeftColor);
-
-                  vLeftColor = (new qx.renderer.color.ColorObject(c[0]));
-                }
-              }
-              catch(ex) {
-                this.error("Failed to compile left border", ex);
-                this.warn("Details: Width=" + vLeftWidth + ", Style=" + vLeftStyle);
-              }
-            }
-            else
-            {
-              vLeftColor = (new qx.renderer.color.ColorObject("threedlightshadow"));
-            }
-        }
-
-        break;
-    }
-
-    this._defsX.borderLeft = this._generateDefString(vLeftWidth, vLeftStyle, vLeftColor);
-    this._needsCompilationLeft = false;
-  }
-
-  qx.renderer.border.Border._resetBorderX = function(o)
-  {
-    var s = o._style;
-    s.borderLeft = s.borderRight = "0px none";
-
-    if (qx.renderer.border.Border.enhancedCrossBrowserMode)
-    {
-      s = o._borderStyle;
-      if (s) {
-        s.borderLeft = s.borderRight = "0px none";
-      }
-    }
-  }
-
-  qx.renderer.border.Border._resetBorderY = function(o)
-  {
-    var s = o._style;
-    s.borderTop = s.borderBottom = "0px none";
-
-    if (qx.renderer.border.Border.enhancedCrossBrowserMode)
-    {
-      s = o._borderStyle;
-      if (s) {
-        s.borderTop = s.borderBottom = "0px none";
-      }
-    }
-  }
-}
-
-
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  if (typeof this._defsX === "object") {
-    for (var i in this._defsX) {
-      delete this._defsX[i];
-    }
-  }
-
-  delete this._defsX;
-
-  if (typeof this._defsY === "object") {
-    for (var i in this._defsY) {
-      delete this._defsY[i];
-    }
-  }
-
-  delete this._defsY;
-
-  if (qx.renderer.border.Border.enhancedCrossBrowserMode)
-  {
-    if (typeof this._enhancedDefsX === "object") {
-      for (var i in this._enhancedDefsX) {
-        delete this._enhancedDefsX[i];
-      }
-    }
-
-    delete this._enhancedDefsX;
-
-    if (typeof this._enhancedDefsY === "object") {
-      for (var i in this._enhancedDefsY) {
-        delete this._enhancedDefsY[i];
-      }
-    }
-
-    delete this._enhancedDefsY;
-  }
-
-  delete this._themedEdges;
-
-  return qx.core.Object.prototype.dispose.call(this);
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PRESETS
----------------------------------------------------------------------------
-*/
-
-/*
-qx.Class.presets =
-{
-  black : new qx.Class(1, "solid", "black"),
-  white : new qx.Class(1, "solid", "white"),
-  none : new qx.Class(0, "none")
-}
-*/
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/border/BorderCache.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/border/BorderCache.js
deleted file mode 100644 (file)
index d8a9ac9..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.border.BorderCache");
-
-qx.renderer.border.BorderCache = function(propValue, propData)
-{
-  if (qx.util.Validation.isValidArray(propValue) && propValue.length > 1)
-  {
-    propString = "";
-
-    for (var i=0, l=propValue.length, p; i<l; i++)
-    {
-      p = propValue[i];
-
-      propString += p;
-
-      if (typeof p === "number") {
-        propString += "px";
-      }
-
-      if (i<(l-1)) {
-        propString += " ";
-      }
-    }
-
-    propValue = propString;
-  }
-  else if (qx.util.Validation.isInvalidString(propValue))
-  {
-    return propValue;
-  }
-
-  if (qx.renderer.border.BorderCache._data[propValue]) {
-    return qx.renderer.border.BorderCache._data[propValue];
-  }
-
-  return qx.renderer.border.BorderCache._data[propValue] = qx.renderer.border.BorderObject.fromString(propValue);
-}
-
-qx.renderer.border.BorderCache._data = {};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/border/BorderObject.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/border/BorderObject.js
deleted file mode 100644 (file)
index 89a963c..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.border.BorderObject", qx.renderer.border.Border,
-function(vWidth, vStyle, vColor)
-{
-  this._dependentObjects = {};
-
-  qx.renderer.border.Border.call(this, vWidth, vStyle, vColor);
-});
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITY
----------------------------------------------------------------------------
-*/
-
-qx.renderer.border.BorderObject.fromString = function(vDefString)
-{
-  var vBorder = new qx.renderer.border.BorderObject;
-  var vAllParts = vDefString.split(/\s+/);
-  var vPart, vTemp;
-
-  for (var i=0; i<vAllParts.length; i++)
-  {
-    vPart = vAllParts[i];
-
-    switch(vPart)
-    {
-      case "groove":
-      case "ridge":
-      case "inset":
-      case "outset":
-      case "solid":
-      case "dotted":
-      case "dashed":
-      case "double":
-      case "none":
-        vBorder.setStyle(vPart);
-        break;
-
-      default:
-        vTemp = parseFloat(vPart);
-
-        if(vTemp == vPart || qx.lang.String.contains(vPart, "px"))
-        {
-          vBorder.setWidth(vTemp);
-        }
-        else
-        {
-          vPart = vPart.toLowerCase();
-          vBorder.setColor(qx.renderer.color.Color.themedNames[vPart] ? new qx.renderer.color.ColorObject(vPart) : new qx.renderer.color.Color(vPart));
-        }
-
-        break;
-    }
-  }
-
-  return vBorder;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  WIDGET CONNECTION
----------------------------------------------------------------------------
-*/
-
-qx.Proto.addListenerWidget = function(o) {
-  this._dependentObjects[o.toHashCode()] = o;
-}
-
-qx.Proto.removeListenerWidget = function(o) {
-  delete this._dependentObjects[o.toHashCode()];
-}
-
-qx.Proto._sync = function(vEdge)
-{
-  var vAll = this._dependentObjects;
-  var vCurrent;
-
-  for (vKey in vAll)
-  {
-    vCurrent = vAll[vKey];
-
-    if (vCurrent.isCreated()) {
-      vCurrent._updateBorder(vEdge);
-    }
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  if (typeof this._dependentObjects === "object")
-  {
-    var vAll = this._dependentObjects;
-    for (vKey in vAll) {
-      delete vAll[vKey];
-    }
-
-    vAll = null;
-    delete this._dependentObjects;
-  }
-
-  return qx.renderer.border.Border.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/border/BorderPresets.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/border/BorderPresets.js
deleted file mode 100644 (file)
index 8ac7fbe..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-
-************************************************************************ */
-
-/*!
-  Some common used border styles.
-*/
-qx.OO.defineClass("qx.renderer.border.BorderPresets", qx.core.Object, function()
-{
-  qx.core.Object.call(this);
-
-  this.black = new qx.renderer.border.Border(1, "solid", "black");
-  this.white = new qx.renderer.border.Border(1, "solid", "white");
-  this.none = new qx.renderer.border.Border(0, "none");
-
-  this.inset = new qx.renderer.border.BorderObject(2, "inset");
-  this.outset = new qx.renderer.border.BorderObject(2, "outset");
-  this.groove = new qx.renderer.border.BorderObject(2, "groove");
-  this.ridge = new qx.renderer.border.BorderObject(2, "ridge");
-  this.thinInset = new qx.renderer.border.BorderObject(1, "inset");
-  this.thinOutset = new qx.renderer.border.BorderObject(1, "outset");
-
-  this.verticalDivider = new qx.renderer.border.BorderObject(1, "inset");
-  this.verticalDivider.setLeftWidth(0);
-  this.verticalDivider.setRightWidth(0);
-
-  this.horizontalDivider = new qx.renderer.border.BorderObject(1, "inset");
-  this.horizontalDivider.setTopWidth(0);
-  this.horizontalDivider.setBottomWidth(0);
-
-  this.shadow = new qx.renderer.border.BorderObject(1, "solid", "threedshadow");
-  this.lightShadow = new qx.renderer.border.BorderObject(1, "solid", "threedlightshadow");
-  this.info = new qx.renderer.border.BorderObject(1, "solid", "infotext");
-});
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/color/Color.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/color/Color.js
deleted file mode 100644 (file)
index 37af861..0000000
+++ /dev/null
@@ -1,669 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#require(qx.lang.Function)
-#load(qx.renderer.color.ColorObject)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.color.Color", qx.core.Object,
-function(vValue)
-{
-  if (vValue != null) {
-    this.setValue(vValue);
-  }
-
-  qx.core.Object.call(this);
-});
-
-
-
-
-
-/* ************************************************************************
-   Class data, properties and methods
-************************************************************************ */
-
-/*
----------------------------------------------------------------------------
-  CORE METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Class.rgb2style = function(r, g, b) {
-  return "rgb(" + r + "," + g + "," + b + ")";
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CORE DATA
----------------------------------------------------------------------------
-*/
-
-qx.renderer.color.Color.m_hex = [ "0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f" ];
-qx.renderer.color.Color.m_rgb = { 0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,b:11,c:12,d:13,e:14,f:15 }
-
-qx.renderer.color.Color.r_hex3 = /^#([0-9a-f]{1})([0-9a-f]{1})([0-9a-f]{1})$/;
-qx.renderer.color.Color.r_hex6 = /^#([0-9a-f]{1})([0-9a-f]{1})([0-9a-f]{1})([0-9a-f]{1})([0-9a-f]{1})([0-9a-f]{1})$/;
-qx.renderer.color.Color.r_cssrgb = /^rgb\(\s*([0-9]{1,3}\.{0,1}[0-9]*)\s*,\s*([0-9]{1,3}\.{0,1}[0-9]*)\s*,\s*([0-9]{1,3}\.{0,1}[0-9]*)\s*\)$/;
-
-qx.renderer.color.Color.r_rgb = /^[0-9]{1,3},[0-9]{1,3},[0-9]{1,3}$/;
-qx.renderer.color.Color.r_number = /^[0-9]{1,3}\.{0,1}[0-9]*$/;
-qx.renderer.color.Color.r_percent = /^[0-9]{1,3}\.{0,1}[0-9]*%$/;
-
-/**
- * CSS 3 colors (http://www.w3.org/TR/css3-color/#svg-color)
- *
- * This includes all classic HTML Color names (http://www.w3.org/TR/css3-color/#html4) and the <code>transparent</code> keyword.
- */
-qx.Class.htmlNames =
-{
-  transparent : [-1,-1,-1],
-  aliceblue : [ 240,248,255 ],
-  antiquewhite : [ 250,235,215 ],
-  aqua : [ 0,255,255 ],
-  aquamarine : [ 127,255,212 ],
-  azure : [ 240,255,255 ],
-  beige : [ 245,245,220 ],
-  bisque : [ 255,228,196 ],
-  black : [ 0,0,0 ],
-  blanchedalmond : [ 255,235,205 ],
-  blue : [ 0,0,255 ],
-  blueviolet : [ 138,43,226 ],
-  brown : [ 165,42,42 ],
-  burlywood : [ 222,184,135 ],
-  cadetblue : [ 95,158,160 ],
-  chartreuse : [ 127,255,0 ],
-  chocolate : [ 210,105,30 ],
-  coral : [ 255,127,80 ],
-  cornflowerblue : [ 100,149,237 ],
-  cornsilk : [ 255,248,220 ],
-  crimson : [ 220,20,60 ],
-  cyan : [ 0,255,255 ],
-  darkblue : [ 0,0,139 ],
-  darkcyan : [ 0,139,139 ],
-  darkgoldenrod : [ 184,134,11 ],
-  darkgray : [ 169,169,169 ],
-  darkgreen : [ 0,100,0 ],
-  darkgrey : [ 169,169,169 ],
-  darkkhaki : [ 189,183,107 ],
-  darkmagenta : [ 139,0,139 ],
-  darkolivegreen : [ 85,107,47 ],
-  darkorange : [ 255,140,0 ],
-  darkorchid : [ 153,50,204 ],
-  darkred : [ 139,0,0 ],
-  darksalmon : [ 233,150,122 ],
-  darkseagreen : [ 143,188,143 ],
-  darkslateblue : [ 72,61,139 ],
-  darkslategray : [ 47,79,79 ],
-  darkslategrey : [ 47,79,79 ],
-  darkturquoise : [ 0,206,209 ],
-  darkviolet : [ 148,0,211 ],
-  deeppink : [ 255,20,147 ],
-  deepskyblue : [ 0,191,255 ],
-  dimgray : [ 105,105,105 ],
-  dimgrey : [ 105,105,105 ],
-  dodgerblue : [ 30,144,255 ],
-  firebrick : [ 178,34,34 ],
-  floralwhite : [ 255,250,240 ],
-  forestgreen : [ 34,139,34 ],
-  fuchsia : [ 255,0,255 ],
-  gainsboro : [ 220,220,220 ],
-  ghostwhite : [ 248,248,255 ],
-  gold : [ 255,215,0 ],
-  goldenrod : [ 218,165,32 ],
-  gray : [ 128,128,128 ],
-  green : [ 0,128,0 ],
-  greenyellow : [ 173,255,47 ],
-  grey : [ 128,128,128 ],
-  honeydew : [ 240,255,240 ],
-  hotpink : [ 255,105,180 ],
-  indianred : [ 205,92,92 ],
-  indigo : [ 75,0,130 ],
-  ivory : [ 255,255,240 ],
-  khaki : [ 240,230,140 ],
-  lavender : [ 230,230,250 ],
-  lavenderblush : [ 255,240,245 ],
-  lawngreen : [ 124,252,0 ],
-  lemonchiffon : [ 255,250,205 ],
-  lightblue : [ 173,216,230 ],
-  lightcoral : [ 240,128,128 ],
-  lightcyan : [ 224,255,255 ],
-  lightgoldenrodyellow : [ 250,250,210 ],
-  lightgray : [ 211,211,211 ],
-  lightgreen : [ 144,238,144 ],
-  lightgrey : [ 211,211,211 ],
-  lightpink : [ 255,182,193 ],
-  lightsalmon : [ 255,160,122 ],
-  lightseagreen : [ 32,178,170 ],
-  lightskyblue : [ 135,206,250 ],
-  lightslategray : [ 119,136,153 ],
-  lightslategrey : [ 119,136,153 ],
-  lightsteelblue : [ 176,196,222 ],
-  lightyellow : [ 255,255,224 ],
-  lime : [ 0,255,0 ],
-  limegreen : [ 50,205,50 ],
-  linen : [ 250,240,230 ],
-  magenta : [ 255,0,255 ],
-  maroon : [ 128,0,0 ],
-  mediumaquamarine : [ 102,205,170 ],
-  mediumblue : [ 0,0,205 ],
-  mediumorchid : [ 186,85,211 ],
-  mediumpurple : [ 147,112,219 ],
-  mediumseagreen : [ 60,179,113 ],
-  mediumslateblue : [ 123,104,238 ],
-  mediumspringgreen : [ 0,250,154 ],
-  mediumturquoise : [ 72,209,204 ],
-  mediumvioletred : [ 199,21,133 ],
-  midnightblue : [ 25,25,112 ],
-  mintcream : [ 245,255,250 ],
-  mistyrose : [ 255,228,225 ],
-  moccasin : [ 255,228,181 ],
-  navajowhite : [ 255,222,173 ],
-  navy : [ 0,0,128 ],
-  oldlace : [ 253,245,230 ],
-  olive : [ 128,128,0 ],
-  olivedrab : [ 107,142,35 ],
-  orange : [ 255,165,0 ],
-  orangered : [ 255,69,0 ],
-  orchid : [ 218,112,214 ],
-  palegoldenrod : [ 238,232,170 ],
-  palegreen : [ 152,251,152 ],
-  paleturquoise : [ 175,238,238 ],
-  palevioletred : [ 219,112,147 ],
-  papayawhip : [ 255,239,213 ],
-  peachpuff : [ 255,218,185 ],
-  peru : [ 205,133,63 ],
-  pink : [ 255,192,203 ],
-  plum : [ 221,160,221 ],
-  powderblue : [ 176,224,230 ],
-  purple : [ 128,0,128 ],
-  red : [ 255,0,0 ],
-  rosybrown : [ 188,143,143 ],
-  royalblue : [ 65,105,225 ],
-  saddlebrown : [ 139,69,19 ],
-  salmon : [ 250,128,114 ],
-  sandybrown : [ 244,164,96 ],
-  seagreen : [ 46,139,87 ],
-  seashell : [ 255,245,238 ],
-  sienna : [ 160,82,45 ],
-  silver : [ 192,192,192 ],
-  skyblue : [ 135,206,235 ],
-  slateblue : [ 106,90,205 ],
-  slategray : [ 112,128,144 ],
-  slategrey : [ 112,128,144 ],
-  snow : [ 255,250,250 ],
-  springgreen : [ 0,255,127 ],
-  steelblue : [ 70,130,180 ],
-  tan : [ 210,180,140 ],
-  teal : [ 0,128,128 ],
-  thistle : [ 216,191,216 ],
-  tomato : [ 255,99,71 ],
-  turquoise : [ 64,224,208 ],
-  violet : [ 238,130,238 ],
-  wheat : [ 245,222,179 ],
-  white : [ 255,255,255 ],
-  whitesmoke : [ 245,245,245 ],
-  yellow : [ 255,255,0 ],
-  yellowgreen : [ 154,205,50 ]
-};
-
-/**
- * ActiveBorder: Active window border.
- * ActiveCaption: Active window caption.
- *
- * AppWorkspace: Background color of multiple document interface.
- * Background: Desktop background.
- *
- * ButtonFace: Face color for three-dimensional display elements.
- * ButtonHighlight: Highlight color for three-dimensional display elements (for edges facing away from the light source).
- * ButtonShadow: Shadow color for three-dimensional display elements.
- * ButtonText: Text on push buttons.
- *
- * CaptionText: Text in caption, size box, and scrollbar arrow box.
- * GrayText: Grayed (disabled) text.
- *
- * Highlight: Item(s) selected in a control.
- * HighlightText: Text of item(s) selected in a control.
- *
- * InactiveBorder: Inactive window border.
- * InactiveCaption: Inactive window caption.
- * InactiveCaptionText: Color of text in an inactive caption.
- *
- * InfoBackground: Background color for tooltip controls.
- * InfoText: Text color for tooltip controls.
- *
- * Menu: Menu background.
- * MenuText: Text in menus.
- *
- * Scrollbar: Scroll bar gray area.
- *
- * ThreeDDarkShadow: Dark shadow for three-dimensional display elements.
- * ThreeDFace: Face color for three-dimensional display elements.
- * ThreeDHighlight: Highlight color for three-dimensional display elements.
- * ThreeDLightShadow: Light color for three-dimensional display elements (for edges facing the light source).
- * ThreeDShadow: Dark shadow for three-dimensional display elements.
- *
- * Window: Window background.
- * WindowFrame: Window frame.
- * WindowText: Text in windows.
- */
-qx.Class.themedNames =
-{
-  activeborder : 1,
-  activecaption : 1,
-  appworkspace : 1,
-  background : 1,
-  buttonface : 1,
-  buttonhighlight : 1,
-  buttonshadow : 1,
-  buttontext : 1,
-  captiontext : 1,
-  graytext : 1,
-  highlight : 1,
-  highlighttext : 1,
-  inactiveborder : 1,
-  inactivecaption : 1,
-  inactivecaptiontext : 1,
-  infobackground : 1,
-  infotext : 1,
-  menu : 1,
-  menutext : 1,
-  scrollbar : 1,
-  threeddarkshadow : 1,
-  threedface : 1,
-  threedhighlight : 1,
-  threedlightshadow : 1,
-  threedshadow : 1,
-  window : 1,
-  windowframe : 1,
-  windowtext : 1
-}
-
-
-
-
-
-
-
-/* ************************************************************************
-   Instance data, properties and methods
-************************************************************************ */
-
-/*
----------------------------------------------------------------------------
-  UTILITY
----------------------------------------------------------------------------
-*/
-
-qx.Class.fromString = function(vDefString) {
-  return new qx.renderer.color.Color(vDefString);
-}
-
-qx.Class.fromRandom = function() {
-  return new qx.renderer.color.Color([Math.round(255*Math.random()), Math.round(255*Math.random()), Math.round(255*Math.random())]);
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DATA
----------------------------------------------------------------------------
-*/
-
-qx.Proto._value = null;
-qx.Proto._style = null;
-
-qx.Proto._isRgbColor = false;
-qx.Proto._isHtmlColor = false;
-qx.Proto._isThemedColor = false;
-
-qx.Proto._red = null;
-qx.Proto._green = null;
-qx.Proto._blue = null;
-
-qx.Proto._hex = null;
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  COMPATIBILITY METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.add = qx.lang.Function.returnTrue;
-qx.Proto.remove = qx.lang.Function.returnTrue;
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PUBLIC METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.isRgbColor = function() {
-  return this._isRgbColor;
-}
-
-qx.Proto.isHtmlColor = function() {
-  return this._isHtmlColor;
-}
-
-qx.Proto.isThemedColor = function() {
-  return this._isThemedColor;
-}
-
-
-
-
-qx.Proto.setValue = function(vValue)
-{
-  this._normalize(vValue);
-
-  if (this._isThemedColor) {
-    throw new Error("Please use qx.renderer.color.ColorObject for themed colors!");
-  }
-}
-
-qx.Proto.getValue = function() {
-  return this._value || "";
-}
-
-
-
-
-qx.Proto.getStyle = function()
-{
-  if (this._style == null) {
-    this._evalStyle();
-  }
-
-  return this._style;
-}
-
-qx.Proto._evalStyle = function()
-{
-  if (this._isRgbColor)
-  {
-    this._style = qx.renderer.color.Color.rgb2style(this._red, this._green, this._blue);
-  }
-  else if (this._isThemedColor)
-  {
-    this._applyThemedValue();
-  }
-  else if (this._isHtmlColor)
-  {
-    this._style = this._value;
-  }
-  else if (this._value != null)
-  {
-    this.error("Could not handle non-rgb colors :" + this.getValue() + "!");
-  }
-}
-
-
-
-
-qx.Proto.getHex = function()
-{
-  if (this._hex == null) {
-    this._evalHex();
-  }
-
-  return this._hex;
-}
-
-qx.Proto._evalHex = function()
-{
-  if (this._isRgbColor)
-  {
-    var a = ["#"];
-
-    var r = this.getRed();
-    a.push(qx.renderer.color.Color.m_hex[Math.floor(r/16)]);
-    a.push(qx.renderer.color.Color.m_hex[Math.floor(r%16)]);
-
-    var g = this.getGreen();
-    a.push(qx.renderer.color.Color.m_hex[Math.floor(g/16)]);
-    a.push(qx.renderer.color.Color.m_hex[Math.floor(g%16)]);
-
-    var b = this.getBlue();
-    a.push(qx.renderer.color.Color.m_hex[Math.floor(b/16)]);
-    a.push(qx.renderer.color.Color.m_hex[Math.floor(b%16)]);
-
-    this._hex = a.join("");
-  }
-  else
-  {
-    // TODO
-  }
-}
-
-
-
-
-qx.Proto.getRed = function()
-{
-  if (this._red == null) {
-    this._evalRgb();
-  }
-
-  return this._red;
-}
-
-qx.Proto.getGreen = function()
-{
-  if (this._green == null) {
-    this._evalRgb();
-  }
-
-  return this._green;
-}
-
-qx.Proto.getBlue = function()
-{
-  if (this._blue == null) {
-    this._evalRgb();
-  }
-
-  return this._blue;
-}
-
-
-
-
-qx.Proto._evalRgb = function()
-{
-  if (this._isThemedColor)
-  {
-    this._applyThemedValue();
-  }
-  else if (this._isHtmlColor)
-  {
-    var a = qx.renderer.color.Color.htmlNames[this._value];
-
-    this._red = a[0];
-    this._green = a[1];
-    this._blue = a[2];
-  }
-  else
-  {
-    throw new Error("_evalRgb needs implementation!");
-  }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PRIVATE METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._normalize = function(vInValue)
-{
-  this._isThemedColor = this._isRgbColor = this._isHtmlColor = false;
-  this._hex = null;
-
-  var invalid = new Error("Invalid color: " + vInValue);
-
-  switch(typeof vInValue)
-  {
-    case "string":
-      vInValue = vInValue.toLowerCase();
-
-      if (qx.renderer.color.Color.htmlNames[vInValue])
-      {
-        this._isHtmlColor = true;
-      }
-      else if (qx.renderer.color.Color.themedNames[vInValue])
-      {
-        this._isThemedColor = true;
-      }
-      else if (qx.renderer.color.Color.r_cssrgb.test(vInValue))
-      {
-        this._red   = parseInt(RegExp.$1);
-        this._green = parseInt(RegExp.$2);
-        this._blue  = parseInt(RegExp.$3);
-
-        this._isRgbColor = true;
-      }
-      else if (qx.renderer.color.Color.r_hex3.test(vInValue))
-      {
-        this._hex = vInValue;
-
-        this._red   = (qx.renderer.color.Color.m_rgb[RegExp.$1] * 16) + qx.renderer.color.Color.m_rgb[RegExp.$1];
-        this._green = (qx.renderer.color.Color.m_rgb[RegExp.$2] * 16) + qx.renderer.color.Color.m_rgb[RegExp.$2];
-        this._blue  = (qx.renderer.color.Color.m_rgb[RegExp.$3] * 16) + qx.renderer.color.Color.m_rgb[RegExp.$3];
-
-        this._isRgbColor = true;
-      }
-      else if (qx.renderer.color.Color.r_hex6.test(vInValue))
-      {
-        this._hex = vInValue;
-
-        this._red   = (qx.renderer.color.Color.m_rgb[RegExp.$1] * 16) + qx.renderer.color.Color.m_rgb[RegExp.$2];
-        this._green = (qx.renderer.color.Color.m_rgb[RegExp.$3] * 16) + qx.renderer.color.Color.m_rgb[RegExp.$4];
-        this._blue  = (qx.renderer.color.Color.m_rgb[RegExp.$5] * 16) + qx.renderer.color.Color.m_rgb[RegExp.$6];
-
-        this._isRgbColor = true;
-      }
-      else
-      {
-        throw invalid;
-      }
-
-      break;
-
-    case "number":
-      if (vInValue >= 0 && vInValue <= 255)
-      {
-        this._red = this._green = this._blue = vInValue;
-        this._isRgbColor = true;
-      }
-      else
-      {
-        throw invalid;
-      }
-
-      break;
-
-    case "object":
-      if (qx.util.Validation.isValidArray(vInValue) && vInValue.length == 3)
-      {
-        this._red = vInValue[0];
-        this._green = vInValue[1];
-        this._blue = vInValue[2];
-
-        this._isRgbColor = true;
-        break;
-      }
-
-    default:
-      throw invalid;
-  }
-
-  if (!this._isRgbColor)
-  {
-    this._red = this._green = this._blue = null;
-    this._style = this._isHtmlColor ? vInValue : null;
-  }
-  else
-  {
-    this._style = null;
-
-    if (!(this._red >= 0 && this._red <= 255 && this._green >= 0 && this._green <= 255 && this._blue >= 0 && this._blue <= 255)) {
-      throw invalid;
-    }
-  }
-
-  return this._value = vInValue;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  delete this._value;
-  delete this._style;
-
-  delete this._red;
-  delete this._green;
-  delete this._blue;
-
-  delete this._isRgbColor;
-  delete this._isHtmlColor;
-  delete this._isThemedColor;
-
-  return qx.core.Object.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/color/ColorCache.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/color/ColorCache.js
deleted file mode 100644 (file)
index 0ae7e91..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.color.ColorCache");
-
-qx.renderer.color.ColorCache = function(propValue)
-{
-  var propKey;
-  var propKeyAsStyle = false;
-
-  switch(typeof propValue)
-  {
-    case "string":
-      if (propValue != "") {
-        propValue = propKey = propValue.toLowerCase();
-        break;
-      }
-
-      return propValue;
-
-    case "number":
-      if (propValue >= 0 && propValue <= 255)
-      {
-        propKey = propValue.toString();
-        break;
-      }
-
-      return propValue;
-
-    case "object":
-      if (propValue == null || propValue instanceof qx.renderer.color.Color) {
-        return propValue;
-      }
-
-      // Try to detect array of RGB values
-      if (typeof propValue.join === "function" && propValue.length == 3)
-      {
-        propKey = "rgb(" + propValue.join(",") + ")";
-        propKeyAsStyle = true;
-        break;
-      }
-
-    default:
-      return propValue;
-  }
-
-  if (qx.renderer.color.ColorCache._data[propKey]) {
-    return qx.renderer.color.ColorCache._data[propKey];
-  }
-
-  // this.debug("Create new color instance: " + propKey);
-
-  var vColorObject = qx.renderer.color.ColorCache._data[propKey] = qx.renderer.color.Color.themedNames[propValue] ? new qx.renderer.color.ColorObject(propValue) : new qx.renderer.color.Color(propValue);
-
-  if (propKeyAsStyle) {
-    vColorObject._style = propKey;
-  }
-
-  return vColorObject;
-}
-
-qx.renderer.color.ColorCache._data = {};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/color/ColorObject.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/color/ColorObject.js
deleted file mode 100644 (file)
index 353c87c..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.color.ColorObject", qx.renderer.color.Color,
-function(vValue)
-{
-  // this.debug("Value: " + vValue);
-  this.setValue(vValue);
-
-  if(qx.manager.object.ColorManager.getInstance().has(this._value)) {
-    return qx.manager.object.ColorManager.getInstance().get(this._value);
-  }
-
-  qx.core.Object.call(this);
-
-  // Register this color object to manager instance
-  qx.manager.object.ColorManager.getInstance().add(this);
-
-  // Here will all objects with a dependency to this
-  // color stored.
-  this._dependentObjects = {};
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITY
----------------------------------------------------------------------------
-*/
-
-qx.renderer.color.ColorObject.fromString = function(vDefString) {
-  return new qx.renderer.color.ColorObject(vDefString);
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PUBLIC METHODS
----------------------------------------------------------------------------
-*/
-
-/*!
-  Set a new value from selected theme (only for Operating System Colors)
-*/
-qx.Proto._updateTheme = function(vTheme)
-{
-  if (!this._isThemedColor) {
-    throw new Error("Could not redefine themed value of non os colors!");
-  }
-
-  this._applyThemedValue();
-  this._syncObjects();
-}
-
-qx.Proto._applyThemedValue = function()
-{
-  var vTheme = qx.manager.object.ColorManager.getInstance().getColorTheme();
-  var vRgb = vTheme.getValueByName(this._value);
-
-  if (vRgb)
-  {
-    this._red = vRgb[0];
-    this._green = vRgb[1];
-    this._blue = vRgb[2];
-  }
-
-  this._style = vTheme.getStyleByName(this._value);
-  this._hex = null;
-}
-
-qx.Proto._syncObjects = function()
-{
-  for (var i in this._dependentObjects) {
-    this._dependentObjects[i]._updateColors(this, this._style);
-  }
-}
-
-qx.Proto.setValue = function(vValue)
-{
-  this._normalize(vValue);
-  this._syncObjects();
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  OBJECT MANAGMENT
----------------------------------------------------------------------------
-*/
-
-qx.Proto.add = function(vObject) {
-  this._dependentObjects[vObject.toHashCode()] = vObject;
-}
-
-qx.Proto.remove = function(vObject) {
-  delete this._dependentObjects[vObject.toHashCode()];
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  if (this._dependentObjects)
-  {
-    for (var i in this._dependentObjects) {
-      delete this._dependentObjects[i];
-    }
-
-    delete this._dependentObjects;
-  }
-
-  return qx.renderer.color.Color.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/font/Font.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/font/Font.js
deleted file mode 100644 (file)
index 816ca76..0000000
+++ /dev/null
@@ -1,220 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_basic)
-#load(qx.renderer.font.FontObject)
-
-************************************************************************ */
-
-/*!
-  Font implementation for qx.ui.core.Widget instances.
-*/
-
-qx.OO.defineClass("qx.renderer.font.Font", qx.core.Object,
-function(vSize, vName)
-{
-  qx.core.Object.call(this);
-
-  this._defs = {};
-
-  if (vSize != null) {
-    this.setSize(vSize);
-  }
-
-  if (vName != null) {
-    this.setName(vName);
-  }
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.addProperty({ name : "size", type : "number", impl : "style" });
-qx.OO.addProperty({ name : "name", type : "string", impl : "style" });
-qx.OO.addProperty({ name : "bold", type : "boolean", defaultValue : false, impl : "style" });
-qx.OO.addProperty({ name : "italic", type : "boolean", defaultValue : false, impl : "style" });
-qx.OO.addProperty({ name : "underline", type : "boolean", defaultValue : false, impl : "style" });
-qx.OO.addProperty({ name : "strikeout", type : "boolean", defaultValue : false, impl : "style" });
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyStyle = function(propValue, propOldValue, propData)
-{
-  this._needsCompilation = true;
-  return true;
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITY
----------------------------------------------------------------------------
-*/
-
-qx.renderer.font.Font.fromString = function(s)
-{
-  var vFont = new qx.renderer.font.Font;
-  var vAllParts = s.split(/\s+/);
-  var vName = [];
-  var vPart;
-
-  for (var i = 0; i < vAllParts.length; i++)
-  {
-    switch(vPart = vAllParts[i])
-    {
-      case "bold":
-        vFont.setBold(true);
-        break;
-
-      case "italic":
-        vFont.setItalic(true);
-        break;
-
-      case "underline":
-        vFont.setUnderline(true);
-        break;
-
-      case "strikeout":
-        vFont.setStrikeout(true);
-        break;
-
-      default:
-        var vTemp = parseFloat(vPart);
-
-        if(vTemp == vPart || qx.lang.String.contains(vPart, "px"))
-        {
-          vFont.setSize(vTemp);
-        }
-        else
-        {
-          vName.push(vPart);
-        }
-
-        break;
-    }
-  }
-
-  if(vName.length > 0) {
-    vFont.setName(vName.join(" "));
-  }
-
-  return vFont;
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITY
----------------------------------------------------------------------------
-*/
-
-qx.Proto._needsCompilation = true;
-
-qx.Proto._compile = function()
-{
-  var vName = this.getName();
-  var vSize = this.getSize();
-  var vBold = this.getBold();
-  var vItalic = this.getItalic();
-  var vUnderline = this.getUnderline();
-  var vStrikeout = this.getStrikeout();
-  var vDecoration = "";
-
-  if (this.getUnderline()) {
-    vDecoration = "underline";
-  }
-
-  if (this.getStrikeout()) {
-    vDecoration += " " + "strikeout";
-  }
-
-  this._defs.fontFamily = vName || "";
-  this._defs.fontSize = typeof vSize == "number" ? vSize + "px" : "";
-  this._defs.fontWeight = this.getBold() ? "bold" : "normal";
-  this._defs.fontStyle = this.getItalic() ? "italic" : "normal";
-  this._defs.textDecoration = vDecoration || "";
-
-  this._needsCompilation = false;
-}
-
-qx.Proto._applyWidget = function(vWidget)
-{
-  if (this._needsCompilation) {
-    this._compile();
-  }
-
-  vWidget.setStyleProperty("fontFamily", this._defs.fontFamily);
-  vWidget.setStyleProperty("fontSize", this._defs.fontSize);
-  vWidget.setStyleProperty("fontWeight", this._defs.fontWeight);
-  vWidget.setStyleProperty("fontStyle", this._defs.fontStyle);
-  vWidget.setStyleProperty("textDecoration", this._defs.textDecoration);
-}
-
-qx.Proto._resetWidget = function(vWidget)
-{
-  vWidget.removeStyleProperty("fontFamily");
-  vWidget.removeStyleProperty("fontSize");
-  vWidget.removeStyleProperty("fontWeight");
-  vWidget.removeStyleProperty("fontStyle");
-  vWidget.removeStyleProperty("textDecoration");
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  delete this._defs;
-
-  return qx.core.Object.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/font/FontCache.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/font/FontCache.js
deleted file mode 100644 (file)
index c734480..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_basic)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.font.FontCache");
-
-qx.renderer.font.FontCache = function(propValue, propData)
-{
-  var propKey;
-  var propKeyAsStyle = false;
-
-  switch(typeof propValue)
-  {
-    case "string":
-      if (propValue != "")
-      {
-        propValue = propKey = propValue.toLowerCase();
-        break;
-      }
-
-      return propValue;
-
-    case "number":
-      propKey = propValue.toString();
-      break;
-
-    case "object":
-      if (propValue == null || propValue instanceof qx.renderer.font.Font) {
-        return propValue;
-      }
-
-      // Try to detect array of RGB values
-      if (typeof propValue.join === "function")
-      {
-        propKey = propValue.join(" ").toLowerCase();
-        break;
-      }
-
-    default:
-      return propValue;
-  }
-
-  if (qx.renderer.font.FontCache._data[propKey]) {
-    return qx.renderer.font.FontCache._data[propKey];
-  }
-
-  return qx.renderer.font.FontCache._data[propKey] = qx.renderer.font.Font.fromString(propKey);
-}
-
-qx.renderer.font.FontCache._data = {};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/font/FontObject.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/font/FontObject.js
deleted file mode 100644 (file)
index d9ff4bb..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_basic)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.font.FontObject", qx.renderer.font.Font,
-function(vSize, vName)
-{
-  this._dependentObjects = {};
-
-  qx.renderer.font.Font.call(this, vSize, vName);
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  WIDGET CONNECTION
----------------------------------------------------------------------------
-*/
-
-qx.Proto.addListenerWidget = function(o) {
-  this._dependentObjects[o.toHashCode()] = o;
-}
-
-qx.Proto.removeListenerWidget = function(o) {
-  delete this._dependentObjects[o.toHashCode()];
-}
-
-qx.Proto._sync = function(vEdge)
-{
-  var vAll = this._dependentObjects;
-  var vCurrent;
-
-  for (vKey in vAll)
-  {
-    vCurrent = vAll[vKey];
-
-    if (vCurrent.isCreated()) {
-      vCurrent._updateFont(vEdge);
-    }
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  if (typeof this._dependentObjects === "object")
-  {
-    for (vKey in this._dependentObjects) {
-      delete this._dependentObjects[vKey];
-    }
-
-    delete this._dependentObjects;
-  }
-
-  return qx.renderer.font.Font.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/CanvasLayoutImpl.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/CanvasLayoutImpl.js
deleted file mode 100644 (file)
index aec420d..0000000
+++ /dev/null
@@ -1,299 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#module(ui_layout)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.layout.CanvasLayoutImpl", qx.renderer.layout.LayoutImpl,
-function(vWidget) {
-  qx.renderer.layout.LayoutImpl.call(this, vWidget);
-});
-
-
-
-/*!
-  Global Structure:
-  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
-  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
-  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
-  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
-  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
-  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
-  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
-  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
-  [09] FLUSH LAYOUT QUEUES OF CHILDREN
-  [10] LAYOUT CHILD
-  [11] DISPOSER
-
-
-  Inherits from qx.renderer.layout.LayoutImpl:
-  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
-  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
-  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
-  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
-  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
-  [09] FLUSH LAYOUT QUEUES OF CHILDREN
-  [11] DISPOSER
-*/
-
-
-
-/*
----------------------------------------------------------------------------
-  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
----------------------------------------------------------------------------
-*/
-
-/*!
-  Compute and return the box width of the given child
-*/
-qx.Proto.computeChildBoxWidth = function(vChild)
-{
-  var vValue = null;
-
-  if (vChild._computedLeftTypeNull || vChild._computedRightTypeNull)
-  {
-    vValue = vChild.getWidthValue();
-  }
-  else if (vChild._hasParent)
-  {
-    vValue = this.getWidget().getInnerWidth() - vChild.getLeftValue() - vChild.getRightValue();
-  }
-
-  return vValue || vChild._computeBoxWidthFallback();
-}
-
-/*!
-  Compute and return the box height of the given child
-*/
-qx.Proto.computeChildBoxHeight = function(vChild)
-{
-  var vValue = null;
-
-  if (vChild._computedTopTypeNull || vChild._computedBottomTypeNull)
-  {
-    vValue = vChild.getHeightValue();
-  }
-  else if (vChild._hasParent)
-  {
-    vValue = this.getWidget().getInnerHeight() - vChild.getTopValue() - vChild.getBottomValue();
-  }
-
-  return vValue || vChild._computeBoxHeightFallback();
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
----------------------------------------------------------------------------
-*/
-
-/*!
-  Compute and return the needed width of the given child
-*/
-qx.Proto.computeChildNeededWidth = function(vChild)
-{
-  var vLeft = vChild._computedLeftTypePercent ? null : vChild.getLeftValue();
-  var vRight = vChild._computedRightTypePercent ? null : vChild.getRightValue();
-  var vMinBox = vChild._computedMinWidthTypePercent ? null : vChild.getMinWidthValue();
-  var vMaxBox = vChild._computedMaxWidthTypePercent ? null : vChild.getMaxWidthValue();
-
-  if (vLeft != null && vRight != null)
-  {
-    var vBox = vChild.getPreferredBoxWidth() || 0;
-  }
-  else
-  {
-    var vBox = (vChild._computedWidthTypePercent ? null : vChild.getWidthValue()) || vChild.getPreferredBoxWidth() || 0;
-  }
-
-  return qx.lang.Number.limit(vBox, vMinBox, vMaxBox) + vLeft + vRight + vChild.getMarginLeft() + vChild.getMarginRight();
-}
-
-/*!
-  Compute and return the needed height of the given child
-*/
-qx.Proto.computeChildNeededHeight = function(vChild)
-{
-  var vTop = vChild._computedTopTypePercent ? null : vChild.getTopValue();
-  var vBottom = vChild._computedBottomTypePercent ? null : vChild.getBottomValue();
-  var vMinBox = vChild._computedMinHeightTypePercent ? null : vChild.getMinHeightValue();
-  var vMaxBox = vChild._computedMaxHeightTypePercent ? null : vChild.getMaxHeightValue();
-
-  if (vTop != null && vBottom != null)
-  {
-    var vBox = vChild.getPreferredBoxHeight() || 0;
-  }
-  else
-  {
-    var vBox = (vChild._computedHeightTypePercent ? null : vChild.getHeightValue()) || vChild.getPreferredBoxHeight() || 0;
-  }
-
-  return qx.lang.Number.limit(vBox, vMinBox, vMaxBox) + vTop + vBottom + vChild.getMarginTop() + vChild.getMarginBottom();
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
----------------------------------------------------------------------------
-*/
-
-/*!
-  Actions that should be done if the inner width of the widget was changed.
-  Normally this includes update to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerWidthChange = function(vChild)
-{
-  // this makes sure that both functions get executed before return
-  var vUpdatePercent = vChild._recomputePercentX();
-  var vUpdateRange = vChild._recomputeRangeX();
-
-  return vUpdatePercent || vUpdateRange;
-}
-
-/*!
-  Actions that should be done if the inner height of the widget was changed.
-  Normally this includes update to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerHeightChange = function(vChild)
-{
-  // this makes sure that both functions get executed before return
-  var vUpdatePercent = vChild._recomputePercentY();
-  var vUpdateRange = vChild._recomputeRangeY();
-
-  return vUpdatePercent || vUpdateRange;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [10] LAYOUT CHILD
----------------------------------------------------------------------------
-*/
-
-/*!
-  This is called from qx.ui.core.Widget and  it's task is to apply the layout
-  (excluding border and padding) to the child.
-*/
-qx.Proto.layoutChild = function(vChild, vJobs)
-{
-  this.layoutChild_sizeX_essentialWrapper(vChild, vJobs);
-  this.layoutChild_sizeY_essentialWrapper(vChild, vJobs);
-
-  this.layoutChild_sizeLimitX(vChild, vJobs);
-  this.layoutChild_sizeLimitY(vChild, vJobs);
-
-  this.layoutChild_locationX(vChild, vJobs);
-  this.layoutChild_locationY(vChild, vJobs);
-
-  this.layoutChild_marginX(vChild, vJobs);
-  this.layoutChild_marginY(vChild, vJobs);
-}
-
-if (qx.core.Client.getInstance().isMshtml() || qx.core.Client.getInstance().isOpera())
-{
-  qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
-  {
-    if (vJobs.initial || vJobs.width || vJobs.minWidth || vJobs.maxWidth || vJobs.left || vJobs.right)
-    {
-      if (vChild._computedMinWidthTypeNull && vChild._computedWidthTypeNull && vChild._computedMaxWidthTypeNull && !(!vChild._computedLeftTypeNull && !vChild._computedRightTypeNull))
-      {
-        vChild._resetRuntimeWidth();
-      }
-      else
-      {
-        vChild._applyRuntimeWidth(vChild.getBoxWidth());
-      }
-    }
-  }
-
-  qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
-  {
-    if (vJobs.initial || vJobs.height || vJobs.minHeight || vJobs.maxHeight || vJobs.top || vJobs.bottom)
-    {
-      if (vChild._computedMinHeightTypeNull && vChild._computedHeightTypeNull && vChild._computedMaxHeightTypeNull && !(!vChild._computedTopTypeNull && !vChild._computedBottomTypeNull))
-      {
-        vChild._resetRuntimeHeight();
-      }
-      else
-      {
-        vChild._applyRuntimeHeight(vChild.getBoxHeight());
-      }
-    }
-  }
-}
-else
-{
-  qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
-  {
-    if (vJobs.initial || vJobs.width) {
-      vChild._computedWidthTypeNull ? vChild._resetRuntimeWidth() : vChild._applyRuntimeWidth(vChild.getWidthValue());
-    }
-  }
-
-  qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
-  {
-    if (vJobs.initial || vJobs.height) {
-      vChild._computedHeightTypeNull ? vChild._resetRuntimeHeight() : vChild._applyRuntimeHeight(vChild.getHeightValue());
-    }
-  }
-}
-
-qx.Proto.layoutChild_locationX = function(vChild, vJobs)
-{
-  var vWidget = this.getWidget();
-
-  if (vJobs.initial || vJobs.left || vJobs.parentPaddingLeft) {
-    vChild._computedLeftTypeNull ? vChild._computedRightTypeNull && vWidget.getPaddingLeft() > 0 ? vChild._applyRuntimeLeft(vWidget.getPaddingLeft()) : vChild._resetRuntimeLeft() : vChild._applyRuntimeLeft(vChild.getLeftValue() + vWidget.getPaddingLeft());
-  }
-
-  if (vJobs.initial || vJobs.right || vJobs.parentPaddingRight) {
-    vChild._computedRightTypeNull ? vChild._computedLeftTypeNull && vWidget.getPaddingRight() > 0 ? vChild._applyRuntimeRight(vWidget.getPaddingRight()) : vChild._resetRuntimeRight() : vChild._applyRuntimeRight(vChild.getRightValue() + vWidget.getPaddingRight());
-  }
-}
-
-qx.Proto.layoutChild_locationY = function(vChild, vJobs)
-{
-  var vWidget = this.getWidget();
-
-  if (vJobs.initial || vJobs.top || vJobs.parentPaddingTop) {
-    vChild._computedTopTypeNull ? vChild._computedBottomTypeNull && vWidget.getPaddingTop() > 0 ? vChild._applyRuntimeTop(vWidget.getPaddingTop()) : vChild._resetRuntimeTop() : vChild._applyRuntimeTop(vChild.getTopValue() + vWidget.getPaddingTop());
-  }
-
-  if (vJobs.initial || vJobs.bottom || vJobs.parentPaddingBottom) {
-    vChild._computedBottomTypeNull ? vChild._computedTopTypeNull && vWidget.getPaddingBottom() > 0 ? vChild._applyRuntimeBottom(vWidget.getPaddingBottom()) : vChild._resetRuntimeBottom() : vChild._applyRuntimeBottom(vChild.getBottomValue() + vWidget.getPaddingBottom());
-  }
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/DockLayoutImpl.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/DockLayoutImpl.js
deleted file mode 100644 (file)
index 4c77209..0000000
+++ /dev/null
@@ -1,490 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_layout)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.layout.DockLayoutImpl", qx.renderer.layout.LayoutImpl,
-function(vWidget) {
-  qx.renderer.layout.LayoutImpl.call(this, vWidget);
-});
-
-
-/*!
-  Global Structure:
-  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
-  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
-  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
-  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
-  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
-  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
-  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
-  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
-  [09] FLUSH LAYOUT QUEUES OF CHILDREN
-  [10] LAYOUT CHILD
-  [11] DISPOSER
-
-
-  Inherits from qx.renderer.layout.LayoutImpl:
-  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
-  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
-  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
-  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
-  [11] DISPOSER
-*/
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [00] ADDITIONAL GLOBAL DATA AND METHODS
----------------------------------------------------------------------------
-*/
-
-qx.renderer.layout.DockLayoutImpl.METHOD_LOCATION = "layoutChild_location_";
-
-qx.renderer.layout.DockLayoutImpl._childRanking = {
-  vertical : function(c) { return c.getVerticalAlign() ? 1e6 : c.getHorizontalAlign() ? 2e6 : 3e6; },
-  horizontal : function(c) { return c.getHorizontalAlign() ? 1e6 : c.getVerticalAlign() ? 2e6 : 3e6; },
-  ordered : function(c) { return c.getHorizontalAlign() || c.getVerticalAlign() ? 1e6 : 2e6; }
-}
-
-qx.renderer.layout.DockLayoutImpl._childCheck =
-{
-  common : function(vChild) {
-    if (!(vChild._computedLeftTypeNull && vChild._computedRightTypeNull && vChild._computedTopTypeNull && vChild._computedBottomTypeNull)) {
-      throw new Error("qx.renderer.layout.DockLayoutImpl: It is not allowed to define any location values for children: " + vChild + "!");
-    }
-  },
-
-  horizontal : function(vChild)
-  {
-    if (!(vChild._computedMinHeightTypeNull && vChild._computedHeightTypeNull && vChild._computedMaxHeightTypeNull)) {
-      throw new Error("qx.renderer.layout.DockLayoutImpl: It is not allowed to define any vertical dimension for 'horizontal' placed children: " + vChild + "!");
-    }
-  },
-
-  vertical : function(vChild)
-  {
-    if (!(vChild._computedMinWidthTypeNull && vChild._computedWidthTypeNull && vChild._computedMaxWidthTypeNull)) {
-      throw new Error("qx.renderer.layout.DockLayoutImpl: It is not allowed to define any horizontal dimension for 'vertical' placed children: " + vChild + "!");
-    }
-  },
-
-  "default" : function(vChild)
-  {
-    qx.renderer.layout.DockLayoutImpl._childCheck.horizontal(vChild);
-    qx.renderer.layout.DockLayoutImpl._childCheck.vertical(vChild);
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
----------------------------------------------------------------------------
-*/
-
-/*!
-  Compute and return the box width of the given child
-*/
-qx.Proto.computeChildBoxWidth = function(vChild)
-{
-  if (this.getChildAlignMode(vChild) == "horizontal") {
-    return vChild.getWidthValue() || vChild._computeBoxWidthFallback();
-  }
-
-  return this.getWidget().getInnerWidth() - this._lastLeft - this._lastRight;
-}
-
-/*!
-  Compute and return the box height of the given child
-*/
-qx.Proto.computeChildBoxHeight = function(vChild)
-{
-  if (this.getChildAlignMode(vChild) == "vertical") {
-    return vChild.getHeightValue() || vChild._computeBoxHeightFallback();
-  }
-
-  return this.getWidget().getInnerHeight() - this._lastTop - this._lastBottom;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
----------------------------------------------------------------------------
-*/
-
-/*!
-  Actions that should be done if the inner width of the widget was changed.
-  Normally this includes update to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerWidthChange = function(vChild)
-{
-  vChild._recomputePercentX();
-  vChild.addToLayoutChanges("location");
-
-  // inform the caller if there were any notable changes occured
-  return true;
-}
-
-/*!
-  Actions that should be done if the inner height of the widget was changed.
-  Normally this includes update to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerHeightChange = function(vChild)
-{
-  vChild._recomputePercentY();
-  vChild.addToLayoutChanges("location");
-
-  // inform the caller if there were any notable changes occured
-  return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
----------------------------------------------------------------------------
-*/
-
-/*!
-  Invalidate and recompute things because of job in queue (before the rest of job handling will be executed).
-*/
-qx.Proto.updateSelfOnJobQueueFlush = qx.lang.Function.returnFalse;
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
----------------------------------------------------------------------------
-*/
-
-/*!
-  Updates children on special jobs
-*/
-qx.Proto.updateChildrenOnJobQueueFlush = function(vQueue)
-{
-  if (vQueue.mode || vQueue.addChild || vQueue.removeChild) {
-    this.getWidget()._addChildrenToLayoutQueue("location");
-  }
-}
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [09] FLUSH LAYOUT QUEUES OF CHILDREN
----------------------------------------------------------------------------
-*/
-
-/*!
-  This method have full control of the order in which the
-  registered (or also non-registered) children should be
-  layouted on the horizontal axis.
-*/
-qx.Proto.flushChildrenQueue = function(vChildrenQueue)
-{
-  var vWidget=this.getWidget(), vChildren=vWidget.getVisibleChildren(), vChildrenLength=vChildren.length, vMode=vWidget.getMode();
-
-  // reset layout
-  this._lastLeft = this._lastRight = this._lastTop = this._lastBottom = 0;
-
-  // sorting children
-  var vRankImpl = qx.renderer.layout.DockLayoutImpl._childRanking[vMode];
-  var vOrderedChildren = qx.lang.Array.copy(vChildren).sort(function(c1, c2) {
-    return (vRankImpl(c1) + vChildren.indexOf(c1)) - (vRankImpl(c2) + vChildren.indexOf(c2));
-  });
-
-  // flushing children
-  for (var i=0; i<vChildrenLength; i++) {
-    vWidget._layoutChild(vOrderedChildren[i]);
-  }
-}
-
-qx.Proto.getChildAlign = function(vChild) {
-  return vChild.getVerticalAlign() || vChild.getHorizontalAlign() || "default";
-}
-
-qx.Proto.getChildAlignMode = function(vChild) {
-  return vChild.getVerticalAlign() ? "vertical" : vChild.getHorizontalAlign() ? "horizontal" : "default";
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [10] LAYOUT CHILD
----------------------------------------------------------------------------
-*/
-
-/*!
-  This is called from qx.ui.core.Widget and  it's task is to apply the layout
-  (excluding border and padding) to the child.
-*/
-qx.Proto.layoutChild = function(vChild, vJobs)
-{
-  qx.renderer.layout.DockLayoutImpl._childCheck.common(vChild);
-  qx.renderer.layout.DockLayoutImpl._childCheck[this.getChildAlignMode(vChild)](vChild);
-
-  this.layoutChild_sizeX_essentialWrapper(vChild, vJobs);
-  this.layoutChild_sizeY_essentialWrapper(vChild, vJobs);
-
-  this.layoutChild_sizeLimitX(vChild, vJobs);
-  this.layoutChild_sizeLimitY(vChild, vJobs);
-
-  this[qx.renderer.layout.DockLayoutImpl.METHOD_LOCATION + this.getChildAlign(vChild)](vChild, vJobs);
-}
-
-qx.Proto.layoutChild_location_top = function(vChild, vJobs)
-{
-  vChild._applyRuntimeTop(this._lastTop);
-  vChild._applyRuntimeLeft(this._lastLeft);
-
-  this.layoutChild_location_horizontal(vChild);
-
-  this._lastTop += vChild.getBoxHeight();
-}
-
-qx.Proto.layoutChild_location_left = function(vChild, vJobs)
-{
-  vChild._applyRuntimeLeft(this._lastLeft);
-  vChild._applyRuntimeTop(this._lastTop);
-
-  this.layoutChild_location_vertical(vChild);
-
-  this._lastLeft += vChild.getBoxWidth();
-}
-
-
-
-
-
-
-
-if (qx.core.Client.getInstance().isMshtml() || qx.core.Client.getInstance().isOpera())
-{
-  qx.Proto._applyComputedWidth = function(vChild)
-  {
-    // direct recompute (need to be done, while layouting as the
-    // _last* variable changes during layout process)
-    vChild._recomputeBoxWidth();
-
-    // wrong: simple invalidates are enough here
-    // correct: needs recompute to inform children (to update centering for example)
-    vChild._recomputeOuterWidth();
-    vChild._recomputeInnerWidth();
-
-    // apply calculated width
-    vChild._applyRuntimeWidth(vChild.getBoxWidth());
-  }
-
-  qx.Proto._applyComputedHeight = function(vChild)
-  {
-    // direct recompute (need to be done, while layouting as the
-    // _last* variable changes during layout process)
-    vChild._recomputeBoxHeight();
-
-    // wrong: simple invalidates are enough here
-    // correct: needs recompute to inform children (to update centering for example)
-    vChild._recomputeOuterHeight();
-    vChild._recomputeInnerHeight();
-
-    // apply calculated height
-    vChild._applyRuntimeHeight(vChild.getBoxHeight());
-  }
-
-  qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
-  {
-    // We need to respect all dimension properties on the horizontal axis in internet explorer to set the 'width' style
-    if (vJobs.initial || vJobs.width || vJobs.minWidth || vJobs.maxWidth) {
-      vChild._computedWidthTypeNull && vChild._computedMinWidthTypeNull && vChild._computedMaxWidthTypeNull ? vChild._resetRuntimeWidth() : vChild._applyRuntimeWidth(vChild.getBoxWidth());
-    }
-  }
-
-  qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
-  {
-    // We need to respect all dimension properties on the vertical axis in internet explorer to set the 'height' style
-    if (vJobs.initial || vJobs.height || vJobs.minHeight || vJobs.maxHeight) {
-      vChild._computedHeightTypeNull && vChild._computedMinHeightTypeNull && vChild._computedMaxHeightTypeNull ? vChild._resetRuntimeHeight() : vChild._applyRuntimeHeight(vChild.getBoxHeight());
-    }
-  }
-
-  qx.Proto.layoutChild_location_horizontal = function(vChild) {
-    this._applyComputedWidth(vChild);
-  }
-
-  qx.Proto.layoutChild_location_vertical = function(vChild) {
-    this._applyComputedHeight(vChild);
-  }
-
-  qx.Proto.layoutChild_location_right = function(vChild, vJobs)
-  {
-    vChild._applyRuntimeLeft(this.getWidget().getInnerWidth() - this._lastRight - vChild.getBoxWidth());
-    vChild._applyRuntimeTop(this._lastTop);
-
-    this.layoutChild_location_vertical(vChild);
-
-    this._lastRight += vChild.getBoxWidth();
-  }
-
-  qx.Proto.layoutChild_location_bottom = function(vChild, vJobs)
-  {
-    vChild._applyRuntimeTop(this.getWidget().getInnerHeight() - this._lastBottom - vChild.getBoxHeight());
-    vChild._applyRuntimeLeft(this._lastLeft);
-
-    this.layoutChild_location_horizontal(vChild);
-
-    this._lastBottom += vChild.getBoxHeight();
-  }
-
-  qx.Proto.layoutChild_location_default = function(vChild, vJobs)
-  {
-    var vWidget = this.getWidget();
-
-    vChild._resetRuntimeRight();
-    vChild._resetRuntimeBottom();
-
-    vChild._applyRuntimeTop(this._lastTop);
-    vChild._applyRuntimeLeft(this._lastLeft);
-
-    this._applyComputedWidth(vChild);
-    this._applyComputedHeight(vChild);
-  }
-}
-else
-{
-  qx.Proto._applyComputedWidth = function(vChild)
-  {
-    // direct recompute (need to be done, while layouting as the
-    // _last* variable changes during layout process)
-    vChild._recomputeBoxWidth();
-
-    // wrong: simple invalidates are enough here
-    // correct: needs recompute to inform children (to update centering for example)
-    vChild._recomputeOuterWidth();
-    vChild._recomputeInnerWidth();
-  }
-
-  qx.Proto._applyComputedHeight = function(vChild)
-  {
-    // direct recompute (need to be done, while layouting as the
-    // _last* variable changes during layout process)
-    vChild._recomputeBoxHeight();
-
-    // wrong: simple invalidates are enough here
-    // correct: needs recompute to inform children (to update centering for example)
-    vChild._recomputeOuterHeight();
-    vChild._recomputeInnerHeight();
-  }
-
-  qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
-  {
-    if (vJobs.initial || vJobs.width) {
-      vChild._computedWidthTypeNull ? vChild._resetRuntimeWidth() : vChild._applyRuntimeWidth(vChild.getWidthValue());
-    }
-  }
-
-  qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
-  {
-    if (vJobs.initial || vJobs.height) {
-      vChild._computedHeightTypeNull ? vChild._resetRuntimeHeight() : vChild._applyRuntimeHeight(vChild.getHeightValue());
-    }
-  }
-
-  qx.Proto.layoutChild_location_horizontal = function(vChild)
-  {
-    this._applyComputedWidth(vChild);
-    vChild._applyRuntimeRight(this._lastRight);
-  }
-
-  qx.Proto.layoutChild_location_vertical = function(vChild)
-  {
-    this._applyComputedHeight(vChild);
-    vChild._applyRuntimeBottom(this._lastBottom);
-  }
-
-  qx.Proto.layoutChild_location_right = function(vChild, vJobs)
-  {
-    vChild._applyRuntimeRight(this._lastRight);
-    vChild._applyRuntimeTop(this._lastTop);
-
-    this.layoutChild_location_vertical(vChild);
-
-    this._lastRight += vChild.getBoxWidth();
-  }
-
-  qx.Proto.layoutChild_location_bottom = function(vChild, vJobs)
-  {
-    vChild._applyRuntimeBottom(this._lastBottom);
-    vChild._applyRuntimeLeft(this._lastLeft);
-
-    this.layoutChild_location_horizontal(vChild);
-
-    this._lastBottom += vChild.getBoxHeight();
-  }
-
-  qx.Proto.layoutChild_location_default = function(vChild, vJobs)
-  {
-    vChild._resetRuntimeWidth();
-    vChild._resetRuntimeHeight();
-
-    vChild._applyRuntimeTop(this._lastTop);
-    vChild._applyRuntimeRight(this._lastRight);
-    vChild._applyRuntimeBottom(this._lastBottom);
-    vChild._applyRuntimeLeft(this._lastLeft);
-
-    this._applyComputedWidth(vChild);
-    this._applyComputedHeight(vChild);
-  }
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/FlowLayoutImpl.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/FlowLayoutImpl.js
deleted file mode 100644 (file)
index 153356d..0000000
+++ /dev/null
@@ -1,428 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_layout)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.layout.FlowLayoutImpl", qx.renderer.layout.LayoutImpl,
-function(vWidget) {
-  qx.renderer.layout.LayoutImpl.call(this, vWidget);
-});
-
-qx.renderer.layout.FlowLayoutImpl.STR_FIRST = "getFirstVisibleChild";
-qx.renderer.layout.FlowLayoutImpl.STR_LAST = "getLastVisibleChild";
-qx.renderer.layout.FlowLayoutImpl.STR_NEXT = "getNextSibling";
-qx.renderer.layout.FlowLayoutImpl.STR_PREVIOUS = "getPreviousSibling";
-
-
-/*!
-  Global Structure:
-
-  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
-  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
-  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
-  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
-  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
-  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
-  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
-  [09] FLUSH LAYOUT QUEUES OF CHILDREN
-  [10] LAYOUT CHILD
-  [11] DISPOSER
-
-  Inherits from qx.renderer.layout.LayoutImpl:
-
-  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
-  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
-  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
-  [11] DISPOSER
-*/
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
----------------------------------------------------------------------------
-*/
-
-/*!
-  Compute and return the width needed by all children of this widget
-*/
-qx.Proto.computeChildrenNeededWidth = function()
-{
-  var w = this.getWidget();
-  return qx.renderer.layout.LayoutImpl.prototype.computeChildrenNeededWidth_sum.call(this) + ((w.getVisibleChildrenLength()-1) * w.getHorizontalSpacing());
-}
-
-/*!
-  Calculate the layout to get the needed height of the children
-*/
-qx.Proto.computeChildrenNeededHeight = function()
-{
-  var vWidget = this.getWidget();
-
-  var vInnerWidth = vWidget.getInnerWidth();
-
-  var vHorizontalSpacing = vWidget.getHorizontalSpacing();
-  var vVerticalSpacing = vWidget.getVerticalSpacing();
-  var vReversed = vWidget.getReverseChildrenOrder();
-
-  var vRowWidth = 0;
-  var vRowHeight = 0;
-
-  var vRowHeightSum = 0;
-
-  for (var i=0, ch=vWidget.getVisibleChildren(), chl=ch.length, chc; i<chl; i++)
-  {
-    chc = vReversed ? ch[chl-1-i] : ch[i];
-
-    vRowWidth += chc.getNeededWidth();
-
-    if (vRowWidth > vInnerWidth)
-    {
-      vRowHeightSum += vRowHeight + vVerticalSpacing;
-      vRowWidth = chc.getNeededWidth();
-      vRowHeight = chc.getNeededHeight();
-    }
-    else
-    {
-      vRowHeight = Math.max(vRowHeight, chc.getNeededHeight());
-    }
-
-    vRowWidth += vHorizontalSpacing;
-  }
-
-  return vRowHeightSum + vRowHeight;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
----------------------------------------------------------------------------
-*/
-
-/*!
-  Things to do and layout when any of the childs changes it's outer width.
-  Needed by layouts where the children depends on each-other, like flow- or box-layouts.
-*/
-qx.Proto.updateSelfOnChildOuterWidthChange = function(vChild)
-{
-  // If a child only change it's width also recompute the height
-  // as the layout flows around here
-  //this.getWidget()._recomputeNeededHeightHelper();
-  this.getWidget()._invalidatePreferredInnerHeight();
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
----------------------------------------------------------------------------
-*/
-
-/*!
-  Actions that should be done if the inner width of the widget was changed.
-  Normally this includes update to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerWidthChange = function(vChild)
-{
-  vChild._recomputePercentX();
-  vChild.addToLayoutChanges("location");
-
-  return true;
-}
-
-/*!
-  Actions that should be done if the inner height of the widget was changed.
-  Normally this includes update to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerHeightChange = function(vChild)
-{
-  vChild._recomputePercentY();
-  vChild.addToLayoutChanges("location");
-
-  return true;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
----------------------------------------------------------------------------
-*/
-
-/*!
-  Updates children on special jobs
-*/
-qx.Proto.updateChildrenOnJobQueueFlush = function(vQueue)
-{
-  if (vQueue.horizontalSpacing || vQueue.verticalSpacing || vQueue.reverseChildrenOrder || vQueue.horizontalChildrenAlign || vQueue.verticalChildrenAlign) {
-    this.getWidget()._addChildrenToLayoutQueue("location");
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
----------------------------------------------------------------------------
-*/
-
-/*!
-  This method combines calls of methods which should be done if a widget should be removed from the current layout.
-  Needed by layouts where the children depends on each-other, like flow- or box-layouts.
-*/
-qx.Proto.updateChildrenOnRemoveChild = function(vChild, vIndex)
-{
-  var w=this.getWidget(), ch=w.getVisibleChildren(), chl=ch.length, chc, i=-1;
-
-  if (w.getReverseChildrenOrder())
-  {
-    while((chc=ch[++i]) && i<vIndex) {
-      chc.addToLayoutChanges("location");
-    }
-  }
-  else
-  {
-    i+=vIndex;
-    while(chc=ch[++i]) {
-      chc.addToLayoutChanges("location");
-    }
-  }
-}
-
-/*!
-  This method combines calls of methods which should be done if a child should be moved
-  inside the same parent to a new positions.
-  Needed by layouts where the children depends on each-other, like flow- or box-layouts.
-*/
-qx.Proto.updateChildrenOnMoveChild = function(vChild, vIndex, vOldIndex)
-{
-  for (var i=Math.min(vIndex, vOldIndex), ch=this.getWidget().getVisibleChildren(), l=ch.length; i<l; i++) {
-    ch[i].addToLayoutChanges("location");
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [09] FLUSH LAYOUT QUEUES OF CHILDREN
----------------------------------------------------------------------------
-*/
-
-/*!
-  This method have full control of the order in which the
-  registered (or also non-registered) children should be
-  layouted on the horizontal axis.
-*/
-
-qx.Proto.flushChildrenQueue = function(vChildrenQueue)
-{
-  var w=this.getWidget(), ch=w.getVisibleChildren(), chl=ch.length, chc, chh;
-
-  if (w.getReverseChildrenOrder())
-  {
-    // layout all childs from the first child
-    // with an own layout request to the end
-    var i=chl, changed=false;
-    while(chc=ch[--i])
-    {
-      chh = chc.toHashCode();
-
-      if (changed || vChildrenQueue[chh])
-      {
-        w._layoutChild(chc);
-        changed = true;
-      }
-    }
-  }
-  else
-  {
-    // layout all childs from the first child
-    // with an own layout request to the end
-    var i=-1, changed=false;
-    while(chc=ch[++i])
-    {
-      chh = chc.toHashCode();
-
-      if (changed || vChildrenQueue[chh])
-      {
-        w._layoutChild(chc);
-        changed = true;
-      }
-    }
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [10] LAYOUT CHILD
----------------------------------------------------------------------------
-*/
-
-qx.Proto.layoutChild = function(vChild, vJobs)
-{
-  this.layoutChild_sizeX_essentialWrapper(vChild, vJobs);
-  this.layoutChild_sizeY_essentialWrapper(vChild, vJobs);
-
-  this.layoutChild_sizeLimitX(vChild, vJobs);
-  this.layoutChild_sizeLimitY(vChild, vJobs);
-
-  this.layoutChild_marginX(vChild, vJobs);
-  this.layoutChild_marginY(vChild, vJobs);
-
-  this.layoutChild_location(vChild, vJobs);
-}
-
-if (qx.core.Client.getInstance().isMshtml() || qx.core.Client.getInstance().isOpera())
-{
-  /*!
-    We need to respect all dimension properties on the horizontal axis in
-    internet explorer to set the 'width' style
-  */
-  qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
-  {
-    if (vJobs.initial || vJobs.width || vJobs.minWidth || vJobs.maxWidth) {
-      vChild._computedWidthTypeNull && vChild._computedMinWidthTypeNull && vChild._computedMaxWidthTypeNull ? vChild._resetRuntimeWidth() : vChild._applyRuntimeWidth(vChild.getBoxWidth());
-    }
-  }
-
-  /*!
-    We need to respect all dimension properties on the vertical axis in
-    internet explorer to set the 'height' style
-  */
-  qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
-  {
-    if (vJobs.initial || vJobs.height || vJobs.minHeight || vJobs.maxHeight) {
-      vChild._computedHeightTypeNull && vChild._computedMinHeightTypeNull && vChild._computedMaxHeightTypeNull ? vChild._resetRuntimeHeight() : vChild._applyRuntimeHeight(vChild.getBoxHeight());
-    }
-  }
-}
-else
-{
-  qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
-  {
-    if (vJobs.initial || vJobs.width) {
-      vChild._computedWidthTypeNull ? vChild._resetRuntimeWidth() : vChild._applyRuntimeWidth(vChild.getWidthValue());
-    }
-  }
-
-  qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
-  {
-    if (vJobs.initial || vJobs.height) {
-      vChild._computedHeightTypeNull ? vChild._resetRuntimeHeight() : vChild._applyRuntimeHeight(vChild.getHeightValue());
-    }
-  }
-}
-
-qx.Proto.layoutChild_location = function(vChild, vJobs)
-{
-  var vWidget = this.getWidget();
-  var vReverse = vWidget.getReverseChildrenOrder();
-
-  var vMethodBegin = vReverse ? qx.renderer.layout.FlowLayoutImpl.STR_LAST : qx.renderer.layout.FlowLayoutImpl.STR_FIRST;
-  var vMethodContinue = vReverse ? qx.renderer.layout.FlowLayoutImpl.STR_NEXT : qx.renderer.layout.FlowLayoutImpl.STR_PREVIOUS;
-
-  if (vChild == vWidget[vMethodBegin]())
-  {
-    vChild._cachedLocationHorizontal = vChild._cachedLocationVertical = vChild._cachedRow = 0;
-  }
-  else
-  {
-    var vTempChild = vChild[vMethodContinue]();
-
-    // stupidly update cache value (check them later)
-    vChild._cachedLocationHorizontal = vTempChild._cachedLocationHorizontal + vTempChild.getOuterWidth() + vWidget.getHorizontalSpacing();
-    vChild._cachedLocationVertical = vTempChild._cachedLocationVertical;
-    vChild._cachedRow = vTempChild._cachedRow;
-
-    // check now
-    if ((vChild._cachedLocationHorizontal + vChild.getOuterWidth()) > vWidget.getInnerWidth())
-    {
-      // evaluate width of previous row
-      vRowMax = vTempChild.getOuterHeight();
-      while((vTempChild = vTempChild[vMethodContinue]()) && vTempChild._cachedRow == vChild._cachedRow) {
-        vRowMax = Math.max(vRowMax, vTempChild.getOuterHeight());
-      }
-
-      // switch to new row
-      vChild._cachedLocationHorizontal = 0;
-      vChild._cachedLocationVertical += vWidget.getVerticalSpacing() + vRowMax;
-      vChild._cachedRow++;
-    }
-  }
-
-  // add margins and parent padding
-  if (vWidget.getHorizontalChildrenAlign() == "right")
-  {
-    vChild._resetRuntimeLeft();
-    vChild._applyRuntimeRight(vWidget.getPaddingRight() + vChild._cachedLocationHorizontal);
-  }
-  else
-  {
-    vChild._resetRuntimeRight();
-    vChild._applyRuntimeLeft(vWidget.getPaddingLeft() + vChild._cachedLocationHorizontal);
-  }
-
-  if (vWidget.getVerticalChildrenAlign() == "bottom")
-  {
-    vChild._resetRuntimeTop();
-    vChild._applyRuntimeBottom(vWidget.getPaddingBottom() + vChild._cachedLocationVertical);
-  }
-  else
-  {
-    vChild._resetRuntimeBottom();
-    vChild._applyRuntimeTop(vWidget.getPaddingTop() + vChild._cachedLocationVertical);
-  }
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/GridLayoutImpl.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/GridLayoutImpl.js
deleted file mode 100644 (file)
index e6079d3..0000000
+++ /dev/null
@@ -1,302 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_layout)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.layout.GridLayoutImpl", qx.renderer.layout.LayoutImpl,
-function(vWidget) {
-  qx.renderer.layout.LayoutImpl.call(this, vWidget);
-});
-
-
-
-
-/*!
-  Global Structure:
-
-  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
-  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
-  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
-  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
-  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
-  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
-  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
-  [09] FLUSH LAYOUT QUEUES OF CHILDREN
-  [10] LAYOUT CHILD
-  [11] DISPOSER
-
-  Inherits from qx.renderer.layout.LayoutImpl:
-
-  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
-  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
-  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
-  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
-  [09] FLUSH LAYOUT QUEUES OF CHILDREN
-  [11] DISPOSER
-*/
-
-
-
-/*
----------------------------------------------------------------------------
-  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
----------------------------------------------------------------------------
-*/
-
-/*!
-  Compute and return the box width of the given child.
-*/
-qx.Proto.computeChildBoxWidth = function(vChild)
-{
-  var vWidget = this.getWidget();
-  var vColWidth = vWidget.getColumnInnerWidth(vChild._col, vChild._row);
-
-  // extend colwidth to spanned area
-  if (vWidget.isSpanStart(vChild._col, vChild._row))
-  {
-    var vEntry = vWidget.getSpanEntry(vChild._col, vChild._row);
-    for (var i=1; i<vEntry.colLength; i++)
-    {
-      // right padding from the previous cell
-      vColWidth += vWidget.getComputedCellPaddingRight(vChild._col + i - 1, vChild._row);
-
-      // left padding from the current cell
-      vColWidth += vWidget.getComputedCellPaddingLeft(vChild._col + i, vChild._row);
-
-      // spacing between previous and current cell
-      vColWidth += vWidget.getHorizontalSpacing();
-
-      // inner width of the current cell plus
-      vColWidth += vWidget.getColumnInnerWidth(vChild._col + i, vChild._row);
-    }
-  }
-
-  return vChild.getAllowStretchX() ? vColWidth : Math.min(vChild.getWidthValue(), vColWidth);
-}
-
-/*!
-  Compute and return the box height of the given child.
-*/
-qx.Proto.computeChildBoxHeight = function(vChild)
-{
-  var vWidget = this.getWidget();
-  var vRowHeight = vWidget.getRowInnerHeight(vChild._col, vChild._row);
-
-  // extend colwidth to spanned area
-  if (vWidget.isSpanStart(vChild._col, vChild._row))
-  {
-    var vEntry = vWidget.getSpanEntry(vChild._col, vChild._row);
-    for (var i=1; i<vEntry.rowLength; i++)
-    {
-      // right padding from the previous cell
-      vRowHeight += vWidget.getComputedCellPaddingBottom(vChild._col, vChild._row + i - 1);
-
-      // left padding from the current cell
-      vRowHeight += vWidget.getComputedCellPaddingTop(vChild._col, vChild._row + i);
-
-      // spacing between previous and current cell
-      vRowHeight += vWidget.getVerticalSpacing();
-
-      // inner width of the current cell plus
-      vRowHeight += vWidget.getRowInnerHeight(vChild._col, vChild._row + i);
-    }
-  }
-
-  return vChild.getAllowStretchY() ? vRowHeight : Math.min(vChild.getHeightValue(), vRowHeight);
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
----------------------------------------------------------------------------
-*/
-
-/*!
-  Compute and return the width needed by all children of this widget
-  which is in a grid layout the width used by all columns.
-*/
-qx.Proto.computeChildrenNeededWidth = function()
-{
-  var vWidget = this.getWidget();
-  var vSpacingX = vWidget.getHorizontalSpacing();
-  var vSum = -vSpacingX;
-
-  for (var i=0, l=vWidget.getColumnCount(); i<l; i++) {
-    vSum += vWidget.getColumnBoxWidth(i) + vSpacingX;
-  }
-
-  return vSum;
-}
-
-/*!
-  Compute and return the height needed by all children of this widget
-  which is in a grid layout the height used by all rows.
-*/
-qx.Proto.computeChildrenNeededHeight = function()
-{
-  var vWidget = this.getWidget();
-  var vSpacingY = vWidget.getVerticalSpacing();
-  var vSum = -vSpacingY;
-
-  for (var i=0, l=vWidget.getRowCount(); i<l; i++) {
-    vSum += vWidget.getRowBoxHeight(i) + vSpacingY;
-  }
-
-  return vSum;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
----------------------------------------------------------------------------
-*/
-
-/*!
-  Actions that should be done if the inner width of the widget was changed.
-  Normally this includes update to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerWidthChange = function(vChild)
-{
-  vChild._recomputePercentX();
-  vChild.addToLayoutChanges("locationX");
-
-  return true;
-}
-
-/*!
-  Actions that should be done if the inner height of the widget was changed.
-  Normally this includes update to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerHeightChange = function(vChild)
-{
-  vChild._recomputePercentY();
-  vChild.addToLayoutChanges("locationY");
-
-  return true;
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [10] LAYOUT CHILD
----------------------------------------------------------------------------
-*/
-
-/*!
-  This is called from qx.ui.core.Widget and  it's task is to apply the layout
-  (excluding border and padding) to the child.
-*/
-
-qx.Proto.layoutChild = function(vChild, vJobs)
-{
-  var vWidget = this.getWidget();
-
-  this.layoutChild_sizeX(vChild, vJobs);
-  this.layoutChild_sizeY(vChild, vJobs);
-
-  this.layoutChild_sizeLimitX(vChild, vJobs);
-  this.layoutChild_sizeLimitY(vChild, vJobs);
-
-  this.layoutChild_marginX(vChild, vJobs);
-  this.layoutChild_marginY(vChild, vJobs);
-
-  this.layoutChild_locationX(vChild, vJobs);
-  this.layoutChild_locationY(vChild, vJobs);
-}
-
-qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
-{
-  vChild._applyRuntimeWidth(vChild.getBoxWidth());
-}
-
-qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
-{
-  vChild._applyRuntimeHeight(vChild.getBoxHeight());
-}
-
-qx.Proto.layoutChild_locationX = function(vChild, vJobs)
-{
-  var vWidget = this.getWidget();
-  var vSpacingX = vWidget.getHorizontalSpacing();
-  var vLocSumX = vWidget.getPaddingLeft() + vWidget.getComputedCellPaddingLeft(vChild._col, vChild._row);
-
-  for (var i=0; i<vChild._col; i++) {
-    vLocSumX += vWidget.getColumnBoxWidth(i) + vSpacingX;
-  }
-
-  switch(vChild.getHorizontalAlign() || vWidget.getColumnHorizontalAlignment(vChild._col) || vWidget.getRowHorizontalAlignment(vChild._row) || vWidget.getHorizontalChildrenAlign())
-  {
-    case "center":
-      vLocSumX += Math.round((vWidget.getColumnInnerWidth(vChild._col, vChild._row) - vChild.getBoxWidth()) / 2);
-      break;
-
-    case "right":
-      vLocSumX += vWidget.getColumnInnerWidth(vChild._col, vChild._row) - vChild.getBoxWidth();
-      break;
-  }
-
-  vChild._applyRuntimeLeft(vLocSumX);
-}
-
-qx.Proto.layoutChild_locationY = function(vChild, vJobs)
-{
-  var vWidget = this.getWidget();
-  var vSpacingY = vWidget.getVerticalSpacing();
-  var vLocSumY = vWidget.getPaddingTop() + vWidget.getComputedCellPaddingTop(vChild._col, vChild._row);
-
-  for (var i=0; i<vChild._row; i++) {
-    vLocSumY += vWidget.getRowBoxHeight(i) + vSpacingY;
-  }
-
-  switch(vChild.getVerticalAlign() || vWidget.getRowVerticalAlignment(vChild._row) || vWidget.getColumnVerticalAlignment(vChild._col) || vWidget.getVerticalChildrenAlign())
-  {
-    case "middle":
-      vLocSumY += Math.round((vWidget.getRowInnerHeight(vChild._col, vChild._row) - vChild.getBoxHeight()) / 2);
-      break;
-
-    case "bottom":
-      vLocSumY += vWidget.getRowInnerHeight(vChild._col, vChild._row) - vChild.getBoxHeight();
-      break;
-  }
-
-  vChild._applyRuntimeTop(vLocSumY);
-}
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/HorizontalBoxLayoutImpl.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/HorizontalBoxLayoutImpl.js
deleted file mode 100644 (file)
index 035b146..0000000
+++ /dev/null
@@ -1,865 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_basic)
-#module(ui_layout)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.layout.HorizontalBoxLayoutImpl", qx.renderer.layout.LayoutImpl,
-function(vWidget) {
-  qx.renderer.layout.LayoutImpl.call(this, vWidget);
-});
-
-qx.OO.addProperty({ name : "enableFlexSupport", type : "boolean", defaultValue : true });
-
-/*!
-  Global Structure:
-  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
-  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
-  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
-  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
-  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
-  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
-  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
-  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
-  [09] FLUSH LAYOUT QUEUES OF CHILDREN
-  [10] LAYOUT CHILD
-  [11] DISPOSER
-
-
-  Inherits from qx.renderer.layout.LayoutImpl:
-  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
-  [11] DISPOSER
-*/
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
----------------------------------------------------------------------------
-*/
-
-/*!
-  Compute and return the box width of the given child.
-*/
-qx.Proto.computeChildBoxWidth = function(vChild) {
-  return vChild.getWidthValue() || vChild._computeBoxWidthFallback();
-}
-
-/*!
-  Compute and return the box height of the given child.
-*/
-qx.Proto.computeChildBoxHeight = function(vChild)
-{
-  if (this.getWidget().getStretchChildrenOrthogonalAxis() && vChild._computedHeightTypeNull && vChild.getAllowStretchY()) {
-    return this.getWidget().getInnerHeight();
-  }
-
-  return vChild.getHeightValue() || vChild._computeBoxHeightFallback();
-}
-
-/*!
-  Computes the width of all flexible children.
-*/
-qx.Proto.computeChildrenFlexWidth = function()
-{
-  if (this._childrenFlexWidthComputed || !this.getEnableFlexSupport()) {
-    return;
-  }
-
-  this._childrenFlexWidthComputed = true;
-
-  // this.debug("computeChildrenFlexWidth");
-
-  var vWidget = this.getWidget();
-  var vChildren = vWidget.getVisibleChildren();
-  var vChildrenLength = vChildren.length;
-  var vCurrentChild;
-  var vFlexibleChildren = [];
-  var vAvailWidth = vWidget.getInnerWidth();
-  var vUsedWidth = vWidget.getSpacing() * (vChildrenLength-1);
-  var vIterator;
-
-
-  // *************************************************************
-  // 1. Compute the sum of all static sized children and finding
-  //    all flexible children.
-  // *************************************************************
-  for (vIterator=0; vIterator<vChildrenLength; vIterator++)
-  {
-    vCurrentChild = vChildren[vIterator];
-
-    if (vCurrentChild._computedWidthTypeFlex)
-    {
-      vFlexibleChildren.push(vCurrentChild);
-
-      if (vWidget._computedWidthTypeAuto) {
-        vUsedWidth += vCurrentChild.getPreferredBoxWidth();
-      }
-    }
-    else
-    {
-      vUsedWidth += vCurrentChild.getOuterWidth();
-    }
-  }
-
-  // this.debug("Width: " + vUsedWidth + "/" + vAvailWidth);
-  // this.debug("Flexible Count: " + vFlexibleChildren.length);
-
-
-  // *************************************************************
-  // 2. Compute the sum of all flexible children widths
-  // *************************************************************
-  var vRemainingWidth = vAvailWidth - vUsedWidth;
-  var vFlexibleChildrenLength = vFlexibleChildren.length;
-  var vPrioritySum = 0;
-
-  for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++) {
-    vPrioritySum += vFlexibleChildren[vIterator]._computedWidthParsed;
-  }
-
-
-  // *************************************************************
-  // 3. Calculating the size of each 'part'.
-  // *************************************************************
-  var vPartWidth = vRemainingWidth / vPrioritySum;
-
-
-  if (!vWidget.getUseAdvancedFlexAllocation())
-  {
-    // *************************************************************
-    // 4a. Computing the flex width value of each flexible child
-    //     and add the width to the usedWidth, so that we can
-    //     fix rounding problems later.
-    // *************************************************************
-    for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++)
-    {
-      vCurrentChild = vFlexibleChildren[vIterator];
-
-      vCurrentChild._computedWidthFlexValue = Math.round(vCurrentChild._computedWidthParsed * vPartWidth);
-      vUsedWidth += vCurrentChild._computedWidthFlexValue;
-    }
-  }
-  else
-  {
-    // *************************************************************
-    // 4b. Calculating the diff. Which means respect the min/max
-    //     width configuration in flex and store the higher/lower
-    //     data in a diff.
-    // *************************************************************
-
-    var vAllocationDiff = 0;
-    var vMinAllocationLoops, vFlexibleChildrenLength, vAdjust, vCurrentAllocationSum, vFactorSum, vComputedFlexibleWidth;
-
-    for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++)
-    {
-      vCurrentChild = vFlexibleChildren[vIterator];
-
-      vComputedFlexibleWidth = vCurrentChild._computedWidthFlexValue = vCurrentChild._computedWidthParsed * vPartWidth;
-      vAllocationDiff += vComputedFlexibleWidth - qx.lang.Number.limit(vComputedFlexibleWidth, vCurrentChild.getMinWidthValue(), vCurrentChild.getMaxWidthValue());
-    }
-
-    // Rounding diff
-    vAllocationDiff = Math.round(vAllocationDiff);
-
-    if (vAllocationDiff == 0)
-    {
-      // *************************************************************
-      // 5a. If the diff is equal zero we must not do anything more
-      //     and do nearly identical the same like in 4a. which means
-      //     to round the calculated flex value and add it to the
-      //     used width so we can fix rounding problems later.
-      // *************************************************************
-
-      // Rounding values and fixing rounding errors
-      for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++)
-      {
-        vCurrentChild = vFlexibleChildren[vIterator];
-
-        vCurrentChild._computedWidthFlexValue = Math.round(vCurrentChild._computedWidthFlexValue);
-        vUsedWidth += vCurrentChild._computedWidthFlexValue;
-      }
-    }
-    else
-    {
-      // *************************************************************
-      // 5b. Find maximum loops of each adjustable child to adjust
-      //     the width until the min/max width limits are reached.
-      // *************************************************************
-
-      var vUp = vAllocationDiff > 0;
-      for (vIterator=vFlexibleChildrenLength-1; vIterator>=0; vIterator--)
-      {
-        vCurrentChild = vFlexibleChildren[vIterator];
-
-        if (vUp)
-        {
-          vAdjust = (vCurrentChild.getMaxWidthValue() || Infinity) - vCurrentChild._computedWidthFlexValue;
-
-          if (vAdjust > 0)
-          {
-            vCurrentChild._allocationLoops = Math.floor(vAdjust / vCurrentChild._computedWidthParsed);
-          }
-          else
-          {
-            qx.lang.Array.removeAt(vFlexibleChildren, vIterator);
-
-            vCurrentChild._computedWidthFlexValue = Math.round(vCurrentChild._computedWidthFlexValue);
-            vUsedWidth += Math.round(vCurrentChild._computedWidthFlexValue + vAdjust);
-          }
-        }
-        else
-        {
-          vAdjust = qx.util.Validation.isValidNumber(vCurrentChild.getMinWidthValue()) ? vCurrentChild._computedWidthFlexValue - vCurrentChild.getMinWidthValue() : vCurrentChild._computedWidthFlexValue;
-
-          if (vAdjust > 0)
-          {
-            vCurrentChild._allocationLoops = Math.floor(vAdjust / vCurrentChild._computedWidthParsed);
-          }
-          else
-          {
-            qx.lang.Array.removeAt(vFlexibleChildren, vIterator);
-
-            vCurrentChild._computedWidthFlexValue = Math.round(vCurrentChild._computedWidthFlexValue);
-            vUsedWidth += Math.round(vCurrentChild._computedWidthFlexValue - vAdjust);
-          }
-        }
-      }
-
-      // *************************************************************
-      // 6. Try to reallocate the width between flexible children
-      //    so that the requirements through min/max limits
-      //    are satisfied.
-      // *************************************************************
-      while (vAllocationDiff != 0 && vFlexibleChildrenLength > 0)
-      {
-        vFlexibleChildrenLength = vFlexibleChildren.length;
-        vMinAllocationLoops = Infinity;
-        vFactorSum = 0;
-
-        // Find minimal loop amount
-        for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++)
-        {
-          vMinAllocationLoops = Math.min(vMinAllocationLoops, vFlexibleChildren[vIterator]._allocationLoops);
-          vFactorSum += vFlexibleChildren[vIterator]._computedWidthParsed;
-        }
-
-        // Be sure that the adjustment is not bigger/smaller than diff
-        vCurrentAllocationSum = Math.min(vFactorSum * vMinAllocationLoops, vAllocationDiff);
-
-        // this.debug("Diff: " + vAllocationDiff);
-        // this.debug("Min Loops: " + vMinAllocationLoops);
-        // this.debug("Sum: " + vCurrentAllocationSum);
-        // this.debug("Factor: " + vFactorSum);
-
-        // Reducing diff by current sum
-        vAllocationDiff -= vCurrentAllocationSum;
-
-        // Adding sizes to children to adjust
-        for (vIterator=vFlexibleChildrenLength-1; vIterator>=0; vIterator--)
-        {
-          vCurrentChild = vFlexibleChildren[vIterator];
-          vCurrentChild._computedWidthFlexValue += vCurrentAllocationSum / vFactorSum * vCurrentChild._computedWidthParsed;
-
-          if (vCurrentChild._allocationLoops == vMinAllocationLoops)
-          {
-            vCurrentChild._computedWidthFlexValue = Math.round(vCurrentChild._computedWidthFlexValue);
-
-            vUsedWidth += vCurrentChild._computedWidthFlexValue;
-            delete vCurrentChild._allocationLoops;
-            qx.lang.Array.removeAt(vFlexibleChildren, vIterator);
-          }
-          else
-          {
-            if (vAllocationDiff == 0)
-            {
-              vCurrentChild._computedWidthFlexValue = Math.round(vCurrentChild._computedWidthFlexValue);
-              vUsedWidth += vCurrentChild._computedWidthFlexValue;
-              delete vCurrentChild._allocationLoops;
-            }
-            else
-            {
-              vCurrentChild._allocationLoops -= vMinAllocationLoops;
-            }
-          }
-        }
-      }
-    }
-  }
-
-  // *************************************************************
-  // 7. Fix rounding errors
-  // *************************************************************
-  vCurrentChild._computedWidthFlexValue += vAvailWidth - vUsedWidth;
-}
-
-qx.Proto.invalidateChildrenFlexWidth = function() {
-  delete this._childrenFlexWidthComputed;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
----------------------------------------------------------------------------
-*/
-
-/*!
-  Compute and return the width needed by all children of this widget
-*/
-qx.Proto.computeChildrenNeededWidth = function()
-{
-  var w = this.getWidget();
-  return qx.renderer.layout.LayoutImpl.prototype.computeChildrenNeededWidth_sum.call(this) + ((w.getVisibleChildrenLength()-1) * w.getSpacing());
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
----------------------------------------------------------------------------
-*/
-
-/*!
-  Things to do and layout when any of the childs changes its outer width.
-  Needed by layouts where the children depends on each-other, like flow- or box-layouts.
-*/
-qx.Proto.updateSelfOnChildOuterWidthChange = function(vChild)
-{
-  // if a childrens outer width changes we need to update our accumulated
-  // width of all childrens (used for center or right alignments)
-  this.getWidget()._invalidateAccumulatedChildrenOuterWidth();
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
----------------------------------------------------------------------------
-*/
-
-/*!
-  Actions that should be done if the inner width of the widget was changed.
-  Normally this includes update to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerWidthChange = function(vChild)
-{
-  if (this.getWidget().getHorizontalChildrenAlign() == "center") {
-    vChild.addToLayoutChanges("locationX");
-  }
-
-  // use variables here to be sure to call both methods.
-  var vUpdatePercent = vChild._recomputePercentX();
-  var vUpdateFlex = vChild._recomputeFlexX();
-
-  // inform the caller if there were any notable changes occured
-  return vUpdatePercent || vUpdateFlex;
-}
-
-/*!
-  Actions that should be done if the inner height of the widget was changed.
-  Normally this includes update to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerHeightChange = function(vChild)
-{
-  // use variables here to be sure to call both methods.
-  var vUpdatePercent = vChild._recomputePercentY();
-  var vUpdateStretch = vChild._recomputeStretchingY();
-
-  // priority to childs internal alignment
-  if ((vChild.getVerticalAlign() || this.getWidget().getVerticalChildrenAlign()) == "middle") {
-    vChild.addToLayoutChanges("locationY");
-  }
-
-  // inform the caller if there were any notable changes occured
-  return vUpdatePercent || vUpdateStretch;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
----------------------------------------------------------------------------
-*/
-
-/*!
-  Invalidate and recompute things because of job in queue (before the rest of job handling will be executed).
-*/
-qx.Proto.updateSelfOnJobQueueFlush = function(vJobQueue)
-{
-  if (vJobQueue.addChild || vJobQueue.removeChild) {
-    this.getWidget()._invalidateAccumulatedChildrenOuterWidth();
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
----------------------------------------------------------------------------
-*/
-
-/*!
-  Updates children on special jobs
-*/
-qx.Proto.updateChildrenOnJobQueueFlush = function(vQueue)
-{
-  var vStretchX=false, vStretchY=false;
-  var vWidget = this.getWidget();
-
-  // switching the orientation need updates for stretching on both axis
-  if (vQueue.orientation) {
-    vStretchX = vStretchY = true;
-  }
-
-  // different updates depending from the current orientation (or the new one)
-  if (vQueue.spacing || vQueue.orientation || vQueue.reverseChildrenOrder || vQueue.horizontalChildrenAlign) {
-    vWidget._addChildrenToLayoutQueue("locationX");
-  }
-
-  if (vQueue.verticalChildrenAlign) {
-    vWidget._addChildrenToLayoutQueue("locationY");
-  }
-
-  if (vQueue.stretchChildrenOrthogonalAxis) {
-    vStretchY = true;
-  }
-
-  // if stretching should be reworked reset the previous one and add
-  // a layout job to update the width respectively height.
-  if (vStretchX)
-  {
-    vWidget._recomputeChildrenStretchingX();
-    vWidget._addChildrenToLayoutQueue("width");
-  }
-
-  if (vStretchY)
-  {
-    vWidget._recomputeChildrenStretchingY();
-    vWidget._addChildrenToLayoutQueue("height");
-  }
-
-  return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
----------------------------------------------------------------------------
-*/
-
-/*!
-  This method combines calls of methods which should be done if a widget should be removed from the current layout.
-  Needed by layouts where the children depends on each-other, like flow- or box-layouts.
-*/
-qx.Proto.updateChildrenOnRemoveChild = function(vChild, vIndex)
-{
-  var w=this.getWidget(), ch=w.getVisibleChildren(), chl=ch.length, chc, i=-1;
-
-  // Fix index to be at the first flex child
-  if (this.getEnableFlexSupport())
-  {
-    for (i=0; i<chl; i++)
-    {
-      chc = ch[i];
-      if (chc.getHasFlexX())
-      {
-        vIndex = Math.min(vIndex, i);
-        break;
-      }
-    }
-
-    i=-1;
-  }
-
-  // Handle differently depending on layout mode
-  switch(w.getLayoutMode())
-  {
-    case "right":
-    case "left-reversed":
-      while((chc=ch[++i]) && i<vIndex) {
-        chc.addToLayoutChanges("locationX");
-      }
-
-      break;
-
-    case "center":
-    case "center-reversed":
-      while(chc=ch[++i]) {
-        chc.addToLayoutChanges("locationX");
-      }
-
-      break;
-
-    default:
-      i+=vIndex;
-      while(chc=ch[++i]) {
-        chc.addToLayoutChanges("locationX");
-      }
-  }
-}
-
-/*!
-  This method combines calls of methods which should be done if a child should be moved
-  inside the same parent to a new positions.
-  Needed by layouts where the children depends on each-other, like flow- or box-layouts.
-*/
-qx.Proto.updateChildrenOnMoveChild = function(vChild, vIndex, vOldIndex)
-{
-  var vChildren = this.getWidget().getVisibleChildren();
-
-  var vStart = Math.min(vIndex, vOldIndex);
-  var vStop = Math.max(vIndex, vOldIndex)+1;
-
-  for (var i=vStart; i<vStop; i++) {
-    vChildren[i].addToLayoutChanges("locationX");
-  }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [09] FLUSH LAYOUT QUEUES OF CHILDREN
----------------------------------------------------------------------------
-*/
-
-/*!
-  This method have full control of the order in which the
-  registered (or also non-registered) children should be
-  layouted on the horizontal axis.
-*/
-qx.Proto.flushChildrenQueue = function(vChildrenQueue)
-{
-  var w=this.getWidget(), ch=w.getVisibleChildren(), chl=ch.length, chc, i;
-
-  // This block is needed for flex handling and
-  // will inform flex children if there was any
-  // change to the other content
-  if (this.getEnableFlexSupport())
-  {
-    this.invalidateChildrenFlexWidth();
-
-    for (i=0; i<chl; i++)
-    {
-      chc = ch[i];
-      if (chc.getHasFlexX())
-      {
-        chc._computedWidthValue = null;
-
-        if (chc._recomputeBoxWidth())
-        {
-          chc._recomputeOuterWidth();
-          chc._recomputeInnerWidth();
-        }
-
-        vChildrenQueue[chc.toHashCode()] = chc;
-        chc._layoutChanges.width = true;
-      }
-    }
-  }
-
-  switch(w.getLayoutMode())
-  {
-    case "right":
-    case "left-reversed":
-      // find the last child which has a layout request
-      for (var i=chl-1; i>=0 && !vChildrenQueue[ch[i].toHashCode()]; i--) {}
-
-      // layout all children before this last child
-      for (var j=0; j<=i; j++) {
-        w._layoutChild(chc=ch[j]);
-      }
-
-      break;
-
-    case "center":
-    case "center-reversed":
-      // re-layout all children
-      i = -1;
-      while(chc=ch[++i]) {
-        w._layoutChild(chc);
-      }
-
-      break;
-
-    default:
-      // layout all childs from the first child
-      // with an own layout request to the end
-      i = -1;
-      var changed=false;
-      while(chc=ch[++i])
-      {
-        if (changed || vChildrenQueue[chc.toHashCode()])
-        {
-          w._layoutChild(chc);
-          changed = true;
-        }
-      }
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [10] LAYOUT CHILD
----------------------------------------------------------------------------
-*/
-
-/*!
-  This is called from qx.ui.core.Widget and  it's task is to apply the layout
-  (excluding border and padding) to the child.
-*/
-qx.Proto.layoutChild = function(vChild, vJobs)
-{
-  this.layoutChild_sizeX(vChild, vJobs);
-  this.layoutChild_sizeY(vChild, vJobs);
-
-  this.layoutChild_sizeLimitX(vChild, vJobs);
-  this.layoutChild_sizeLimitY(vChild, vJobs);
-
-  this.layoutChild_locationX(vChild, vJobs);
-  this.layoutChild_locationY(vChild, vJobs);
-
-  this.layoutChild_marginX(vChild, vJobs);
-  this.layoutChild_marginY(vChild, vJobs);
-}
-
-if (qx.core.Client.getInstance().isMshtml() || qx.core.Client.getInstance().isOpera() || qx.core.Client.getInstance().isWebkit() )
-{
-  qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
-  {
-    if (vJobs.initial || vJobs.width || vJobs.minWidth || vJobs.maxWidth)
-    {
-      if (vChild._isWidthEssential() && (!vChild._computedWidthTypeNull || !vChild._computedMinWidthTypeNull || !vChild._computedMaxWidthTypeNull))
-      {
-        vChild._applyRuntimeWidth(vChild.getBoxWidth());
-      }
-      else
-      {
-        vChild._resetRuntimeWidth();
-      }
-    }
-  }
-
-  qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
-  {
-    if (vJobs.initial || vJobs.height || vJobs.minHeight || vJobs.maxHeight)
-    {
-      if ((vChild._isHeightEssential() && (!vChild._computedHeightTypeNull || !vChild._computedMinHeightTypeNull || !vChild._computedMaxHeightTypeNull)) || (vChild.getAllowStretchY() && this.getWidget().getStretchChildrenOrthogonalAxis()))
-      {
-        vChild._applyRuntimeHeight(vChild.getBoxHeight());
-      }
-      else
-      {
-        vChild._resetRuntimeHeight();
-      }
-    }
-  }
-}
-else
-{
-  qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
-  {
-    if (vJobs.initial || vJobs.width)
-    {
-      if (vChild._isWidthEssential() && !vChild._computedWidthTypeNull)
-      {
-        vChild._applyRuntimeWidth(vChild.getWidthValue());
-      }
-      else
-      {
-        vChild._resetRuntimeWidth();
-      }
-    }
-  }
-
-  qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
-  {
-    if (vJobs.initial || vJobs.height)
-    {
-      if (vChild._isHeightEssential() && !vChild._computedHeightTypeNull)
-      {
-        vChild._applyRuntimeHeight(vChild.getHeightValue());
-      }
-      else
-      {
-        vChild._resetRuntimeHeight();
-      }
-    }
-  }
-}
-
-qx.Proto.layoutChild_locationX = function(vChild, vJobs)
-{
-  var vWidget = this.getWidget();
-
-  // handle first child
-  if (vWidget.getFirstVisibleChild() == vChild)
-  {
-    switch(vWidget.getLayoutMode())
-    {
-      case "right":
-      case "left-reversed":
-        var vPos = vWidget.getPaddingRight() + vWidget.getAccumulatedChildrenOuterWidth() - vChild.getOuterWidth();
-        break;
-
-      case "center":
-      case "center-reversed":
-        var vPos = vWidget.getPaddingLeft() + Math.round((vWidget.getInnerWidth() - vWidget.getAccumulatedChildrenOuterWidth()) / 2);
-        break;
-
-      default:
-        var vPos = vWidget.getPaddingLeft();
-    }
-  }
-
-  // handle any following child
-  else
-  {
-    var vPrev = vChild.getPreviousVisibleSibling();
-
-    switch(vWidget.getLayoutMode())
-    {
-      case "right":
-      case "left-reversed":
-        var vPos = vPrev._cachedLocationHorizontal - vChild.getOuterWidth() - vWidget.getSpacing();
-        break;
-
-      default:
-        var vPos = vPrev._cachedLocationHorizontal + vPrev.getOuterWidth() + vWidget.getSpacing();
-    }
-  }
-
-  // store for next sibling
-  vChild._cachedLocationHorizontal = vPos;
-
-  // apply styles
-  switch(vWidget.getLayoutMode())
-  {
-    case "right":
-    case "right-reversed":
-    case "center-reversed":
-      // add relative positions (like 'position:relative' in css)
-      vPos += !vChild._computedRightTypeNull ? vChild.getRightValue() : !vChild._computedLeftTypeNull ? -(vChild.getLeftValue()) : 0;
-
-      vChild._resetRuntimeLeft();
-      vChild._applyRuntimeRight(vPos);
-      break;
-
-    default:
-      // add relative positions (like 'position:relative' in css)
-      vPos += !vChild._computedLeftTypeNull ? vChild.getLeftValue() : !vChild._computedRightTypeNull ? -(vChild.getRightValue()) : 0;
-
-      vChild._resetRuntimeRight();
-      vChild._applyRuntimeLeft(vPos);
-  }
-}
-
-qx.Proto.layoutChild_locationY = function(vChild, vJobs)
-{
-  var vWidget = this.getWidget();
-
-  // special stretching support
-  if (qx.core.Client.getInstance().isGecko() && vChild.getAllowStretchY() && vWidget.getStretchChildrenOrthogonalAxis() && vChild._computedHeightTypeNull)
-  {
-    vChild._applyRuntimeTop(vWidget.getPaddingTop() || 0);
-    vChild._applyRuntimeBottom(vWidget.getPaddingBottom() || 0);
-
-    return;
-  }
-
-  // priority to childs internal alignment
-  var vAlign = vChild.getVerticalAlign() || vWidget.getVerticalChildrenAlign();
-
-  // handle middle alignment
-  var vPos = vAlign == "middle" ? Math.round((vWidget.getInnerHeight() - vChild.getOuterHeight()) / 2) : 0;
-
-  // the bottom alignment use the real 'bottom' styleproperty to
-  // use the best available method in modern browsers
-  if (vAlign == "bottom")
-  {
-    // add parent padding
-    vPos += vWidget.getPaddingBottom();
-
-    // relative positions (like 'position:relative' in css)
-    if (!vChild._computedBottomTypeNull) {
-      vPos += vChild.getBottomValue();
-    }
-    else if (!vChild._computedTopTypeNull) {
-      vPos -= vChild.getTopValue();
-    }
-
-    // apply styles
-    vChild._resetRuntimeTop();
-    vChild._applyRuntimeBottom(vPos);
-  }
-  else
-  {
-    // add parent padding
-    vPos += vWidget.getPaddingTop();
-
-    // relative positions (like 'position:relative' in css)
-    if (!vChild._computedTopTypeNull) {
-      vPos += vChild.getTopValue();
-    }
-    else if (!vChild._computedBottomTypeNull) {
-      vPos -= vChild.getBottomValue();
-    }
-
-    // apply styles
-    vChild._resetRuntimeBottom();
-    vChild._applyRuntimeTop(vPos);
-  }
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/LayoutImpl.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/LayoutImpl.js
deleted file mode 100644 (file)
index ee78f0c..0000000
+++ /dev/null
@@ -1,551 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#module(ui_layout)
-#require(qx.core.Client)
-
-************************************************************************ */
-
-/**
- * Abstact base class of all layout implementations
- *
- * @param vWidget {qx.ui.core.Parent} reference to the associated widget
- */
-qx.OO.defineClass("qx.renderer.layout.LayoutImpl", qx.core.Object,
-function(vWidget)
-{
-  qx.core.Object.call(this);
-
-  this._widget = vWidget;
-});
-
-
-
-
-/**
- * Returns the associated widget
- *
- * @return {qx.ui.core.Parent} reference to the associated widget
- */
-qx.Proto.getWidget = function() {
-  return this._widget;
-}
-
-
-/*
-  Global Structure:
-  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
-  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
-  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
-  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
-  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
-  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
-  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
-  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
-  [09] FLUSH LAYOUT QUEUES OF CHILDREN
-  [10] LAYOUT CHILD
-  [11] DISPOSER
-*/
-
-
-/*
----------------------------------------------------------------------------
-  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
----------------------------------------------------------------------------
-*/
-
-/**
- * Compute and return the box width of the given child
- *
- * @param vChild {qx.ui.core.Widget}
- * @return {Integer} box width of the given child
- */
-qx.Proto.computeChildBoxWidth = function(vChild) {
-  return vChild.getWidthValue() || vChild._computeBoxWidthFallback();
-}
-
-/**
- * Compute and return the box height of the given child
- *
- * @param vChild {qx.ui.core.Widget}
- * @return {Integer} box height of the given child
- */
-qx.Proto.computeChildBoxHeight = function(vChild) {
-  return vChild.getHeightValue() || vChild._computeBoxHeightFallback();
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
----------------------------------------------------------------------------
-*/
-
-/**
- * Compute and return the needed width of the given child
- *
- * @param vChild {qx.ui.core.Widget}
- * @return {Integer} needed width
- */
-qx.Proto.computeChildNeededWidth = function(vChild)
-{
-  // omit ultra long lines, these two variables only needed once
-  // here, but this enhance the readability of the code :)
-  var vMinBox = vChild._computedMinWidthTypePercent ? null : vChild.getMinWidthValue();
-  var vMaxBox = vChild._computedMaxWidthTypePercent ? null : vChild.getMaxWidthValue();
-
-  var vBox = (vChild._computedWidthTypePercent || vChild._computedWidthTypeFlex ? null : vChild.getWidthValue()) || vChild.getPreferredBoxWidth() || 0;
-
-  return qx.lang.Number.limit(vBox, vMinBox, vMaxBox) + vChild.getMarginLeft() + vChild.getMarginRight();
-}
-
-/**
- * Compute and return the needed height of the given child
- *
- * @param vChild {qx.ui.core.Widget}
- * @return {Integer} needed height
- */
-qx.Proto.computeChildNeededHeight = function(vChild)
-{
-  // omit ultra long lines, these two variables only needed once
-  // here, but this enhance the readability of the code :)
-  var vMinBox = vChild._computedMinHeightTypePercent ? null : vChild.getMinHeightValue();
-  var vMaxBox = vChild._computedMaxHeightTypePercent ? null : vChild.getMaxHeightValue();
-
-  var vBox = (vChild._computedHeightTypePercent || vChild._computedHeightTypeFlex ? null : vChild.getHeightValue()) || vChild.getPreferredBoxHeight() || 0;
-
-  return qx.lang.Number.limit(vBox, vMinBox, vMaxBox) + vChild.getMarginTop() + vChild.getMarginBottom();
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
----------------------------------------------------------------------------
-*/
-
-/**
- * Calculate the maximum needed width of all children
- *
- * @return {Integer} maximum needed width of all children
- */
-qx.Proto.computeChildrenNeededWidth_max = function()
-{
-  for (var i=0, ch=this.getWidget().getVisibleChildren(), chl=ch.length, maxv=0; i<chl; i++) {
-    maxv = Math.max(maxv, ch[i].getNeededWidth());
-  }
-
-  return maxv;
-}
-
-/**
- * Calculate the maximum needed height of all children
- *
- * @return {Integer} maximum needed height of all children
- */
-qx.Proto.computeChildrenNeededHeight_max = function()
-{
-  for (var i=0, ch=this.getWidget().getVisibleChildren(), chl=ch.length, maxv=0; i<chl; i++) {
-    maxv = Math.max(maxv, ch[i].getNeededHeight());
-  }
-
-  return maxv;
-}
-
-/**
- * Compute and return the width needed by all children of this widget
- *
- * @return {Integer}
- */
-qx.Proto.computeChildrenNeededWidth_sum = function()
-{
-  for (var i=0, ch=this.getWidget().getVisibleChildren(), chl=ch.length, sumv=0; i<chl; i++) {
-    sumv += ch[i].getNeededWidth();
-  }
-
-  return sumv;
-}
-
-/**
- * Compute and return the height needed by all children of this widget
- *
- * @return {Integer} height needed by all children of this widget
- */
-qx.Proto.computeChildrenNeededHeight_sum = function()
-{
-  for (var i=0, ch=this.getWidget().getVisibleChildren(), chl=ch.length, sumv=0; i<chl; i++) {
-    sumv += ch[i].getNeededHeight();
-  }
-
-  return sumv;
-}
-
-/**
- * Compute and return the width needed by all children of this widget
- *
- * @return {Integer} width needed by all children of this widget
- */
-qx.Proto.computeChildrenNeededWidth = qx.Proto.computeChildrenNeededWidth_max;
-
-/**
- * Compute and return the height needed by all children of this widget
- *
- * @return {Integer} height needed by all children of this widget
- */
-qx.Proto.computeChildrenNeededHeight = qx.Proto.computeChildrenNeededHeight_max;
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
----------------------------------------------------------------------------
-*/
-
-/**
- * Things to do and layout when any of the childs changes its outer width.
- * Needed by layouts where the children depend on each other, like flow or box layouts.
- *
- * Subclasses might implement this method
- *
- * @param vChild {qx.ui.core.Widget} changed child widget
- */
-qx.Proto.updateSelfOnChildOuterWidthChange = function(vChild) {}
-
-/**
- * Things to do and layout when any of the childs changes its outer height.
- * Needed by layouts where the children depend on each other, like flow or box layouts.
- *
- * Subclasses might implement this method
- *
- * @param vChild {qx.ui.core.Widget} changed child widget
- */
-qx.Proto.updateSelfOnChildOuterHeightChange = function(vChild) {}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
----------------------------------------------------------------------------
-*/
-
-/**
- * Actions that should be done if the inner width of the layout widget has changed.
- * Normally this includes updates to percent values and ranges.
- *
- * Subclasses might implement this method
- *
- * @param vChild {qx.ui.core.Widget} changed child widget
- */
-qx.Proto.updateChildOnInnerWidthChange = function(vChild) {}
-
-/**
- * Actions that should be done if the inner height of the layout widget has changed.
- * Normally this includes updates to percent values and ranges.
- *
- * Subclasses might implement this method
- *
- * @param vChild {qx.ui.core.Widget} changed child widget
- */
-qx.Proto.updateChildOnInnerHeightChange = function(vChild) {}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
----------------------------------------------------------------------------
-*/
-
-/**
- * Invalidate and recompute cached data according to job queue.
- * This is executed at the beginning of the job queue handling.
- *
- * Subclasses might implement this method
- *
- * @param vJobQueue {Object}
- */
-qx.Proto.updateSelfOnJobQueueFlush = function(vJobQueue) {}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
----------------------------------------------------------------------------
-*/
-/**
- * Updates children on job queue flush.
- * This is executed at the end of the job queue handling.
- *
- * Subclasses might implement this method
- *
- * @param vJobQueue {Object}
- */
-qx.Proto.updateChildrenOnJobQueueFlush = function(vJobQueue) {}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
----------------------------------------------------------------------------
-*/
-
-/**
- * Add child to current layout. Rarely needed by some layout implementations.
- *
- * Subclasses might implement this method
- *
- * @param vChild {qx.ui.core.Widget} newly added child
- * @param vIndex {Integer} index of the child
- */
-qx.Proto.updateChildrenOnAddChild = function(vChild, vIndex) {}
-
-/**
- *Remove child from current layout.
- * Needed by layouts where the children depend on each other, like flow or box layouts.
- *
- * Subclasses might implement this method
- *
- * @param vChild {qx.ui.core.Widget} newly added child
- * @param vIndex {Integer} index of the child
- */
- qx.Proto.updateChildrenOnRemoveChild = function(vChild, vIndex) {}
-
-/**
- * Move child within its parent to a new position.
- *  Needed by layouts where the children depend on each other, like flow or box layouts.
- *
- * Subclasses might implement this method
- *
- * @param vChild {qx.ui.core.Widget} newly added child
- * @param vIndex {Integer} new index of the child
- * @param vOldIndex {Integer} old index of the child
- */
-qx.Proto.updateChildrenOnMoveChild = function(vChild, vIndex, vOldIndex) {}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [09] FLUSH LAYOUT QUEUES OF CHILDREN
----------------------------------------------------------------------------
-*/
-
-/**
- * Has full control of the order in which the registered
- * (or non-registered) children should be layouted.
- *
- * @param vChildrenQueue {Object}
- */
-qx.Proto.flushChildrenQueue = function(vChildrenQueue)
-{
-  var vWidget = this.getWidget();
-
-  for (var vHashCode in vChildrenQueue) {
-    vWidget._layoutChild(vChildrenQueue[vHashCode]);
-  }
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [10] LAYOUT CHILD
----------------------------------------------------------------------------
-*/
-
-/**
- * Called from qx.ui.core.Parent. Its task is to apply the layout
- * (excluding border and padding) to the child.
- *
- * @param vChild {qx.ui.core.Widget} child to layout
- * @param vJobs {Set} layout changes to perform
- */
-qx.Proto.layoutChild = function(vChild, vJobs) {}
-
-
-/**
- * Apply min-/max-width to the child. Direct usage of stylesheet properties.
- * This is only possible in modern capable clients (i.e. excluding all current
- *  versions of Internet Explorer)
- *
- * @param vChild {qx.ui.core.Widget} child to layout
- * @param vJobs {Set} layout changes to perform
- */
-qx.Proto.layoutChild_sizeLimitX = function(vChild, vJobs) {}
-
-/**
- * Apply min-/max-height to the child. Direct usage of stylesheet properties.
- * This is only possible in modern capable clients (i.e. excluding all current
- *  versions of Internet Explorer)
- *
- * @param vChild {qx.ui.core.Widget} child to layout
- * @param vJobs {Set} layout changes to perform
- */
-qx.Proto.layoutChild_sizeLimitY = function(vChild, vJobs) {}
-
-if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.Proto.layoutChild_sizeLimitX = qx.lang.Function.returnTrue;
-  qx.Proto.layoutChild_sizeLimitY = qx.lang.Function.returnTrue;
-}
-else
-{
-
-  qx.Proto.layoutChild_sizeLimitX = function(vChild, vJobs)
-  {
-    if (vJobs.minWidth) {
-      vChild._computedMinWidthTypeNull ? vChild._resetRuntimeMinWidth() : vChild._applyRuntimeMinWidth(vChild.getMinWidthValue());
-    }
-    else if (vJobs.initial && !vChild._computedMinWidthTypeNull) {
-      vChild._applyRuntimeMinWidth(vChild.getMinWidthValue());
-    }
-
-    if (vJobs.maxWidth) {
-      vChild._computedMaxWidthTypeNull ? vChild._resetRuntimeMaxWidth() : vChild._applyRuntimeMaxWidth(vChild.getMaxWidthValue());
-    }
-    else if (vJobs.initial && !vChild._computedMaxWidthTypeNull) {
-      vChild._applyRuntimeMaxWidth(vChild.getMaxWidthValue());
-    }
-  }
-
-  qx.Proto.layoutChild_sizeLimitY = function(vChild, vJobs)
-  {
-    if (vJobs.minHeight) {
-      vChild._computedMinHeightTypeNull ? vChild._resetRuntimeMinHeight() : vChild._applyRuntimeMinHeight(vChild.getMinHeightValue());
-    }
-    else if (vJobs.initial && !vChild._computedMinHeightTypeNull) {
-      vChild._applyRuntimeMinHeight(vChild.getMinHeightValue());
-    }
-
-    if (vJobs.maxHeight) {
-      vChild._computedMaxHeightTypeNull ? vChild._resetRuntimeMaxHeight() : vChild._applyRuntimeMaxHeight(vChild.getMaxHeightValue());
-    }
-    else if (vJobs.initial && !vChild._computedMaxHeightTypeNull) {
-      vChild._applyRuntimeMaxHeight(vChild.getMaxHeightValue());
-    }
-  }
-}
-
-/**
- * Apply the X margin values as pure stylesheet equivalent.
- *
- * @param vChild {qx.ui.core.Widget} child to layout
- * @param vJobs {Set} layout changes to perform
- */
-qx.Proto.layoutChild_marginX = function(vChild, vJobs)
-{
-  if (vJobs.marginLeft || vJobs.initial)
-  {
-    var vValueLeft = vChild.getMarginLeft();
-    vValueLeft != null ? vChild._applyRuntimeMarginLeft(vValueLeft) : vChild._resetRuntimeMarginLeft();
-  }
-
-  if (vJobs.marginRight || vJobs.initial)
-  {
-    var vValueRight = vChild.getMarginRight();
-    vValueRight != null ? vChild._applyRuntimeMarginRight(vValueRight) : vChild._resetRuntimeMarginRight();
-  }
-}
-
-/**
- * Apply the Y margin values as pure stylesheet equivalent.
- *
- * @param vChild {qx.ui.core.Widget} child to layout
- * @param vJobs {Set} layout changes to perform
- */
-qx.Proto.layoutChild_marginY = function(vChild, vJobs)
-{
-  if (vJobs.marginTop || vJobs.initial)
-  {
-    var vValueTop = vChild.getMarginTop();
-    vValueTop != null ? vChild._applyRuntimeMarginTop(vValueTop) : vChild._resetRuntimeMarginTop();
-  }
-
-  if (vJobs.marginBottom || vJobs.initial)
-  {
-    var vValueBottom = vChild.getMarginBottom();
-    vValueBottom != null ? vChild._applyRuntimeMarginBottom(vValueBottom) : vChild._resetRuntimeMarginBottom();
-  }
-}
-
-qx.Proto.layoutChild_sizeX_essentialWrapper = function(vChild, vJobs) {
-  return vChild._isWidthEssential() ? this.layoutChild_sizeX(vChild, vJobs) : vChild._resetRuntimeWidth();
-}
-
-qx.Proto.layoutChild_sizeY_essentialWrapper = function(vChild, vJobs) {
-  return vChild._isHeightEssential() ? this.layoutChild_sizeY(vChild, vJobs) : vChild._resetRuntimeHeight();
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [11] DISPOSER
----------------------------------------------------------------------------
-*/
-
-/*!
-  Dispose the layout implmentation and release the associated widget.
-*/
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  this._widget = null;
-
-  qx.core.Object.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/MenuButtonLayoutImpl.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/MenuButtonLayoutImpl.js
deleted file mode 100644 (file)
index a9c6f34..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_menu)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.layout.MenuButtonLayoutImpl", qx.renderer.layout.HorizontalBoxLayoutImpl,
-function(vWidget)
-{
-  qx.renderer.layout.HorizontalBoxLayoutImpl.call(this, vWidget);
-
-  // We don't need flex support, should make things a bit faster,
-  // as this omits some additional loops in qx.renderer.layout.HorizontalBoxLayoutImpl.
-  this.setEnableFlexSupport(false);
-});
-
-
-/*!
-  Global Structure:
-  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
-  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
-  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
-  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
-  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
-  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
-  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
-  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
-  [09] FLUSH LAYOUT QUEUES OF CHILDREN
-  [10] LAYOUT CHILD
-  [11] DISPOSER
-
-
-  Inherits from qx.renderer.layout.HorizontalBoxLayoutImpl:
-  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
-  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
-  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
-  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
-  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
-  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
-  [09] FLUSH LAYOUT QUEUES OF CHILDREN
-  [11] DISPOSER
-*/
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
----------------------------------------------------------------------------
-*/
-
-/*!
-  Compute and return the width needed by all children of this widget
-*/
-qx.Proto.computeChildrenNeededWidth = function()
-{
-  // Caching the widget reference
-  var vWidget = this.getWidget();
-
-  // Ignore the verticalBoxLayout inside qx.ui.menu.Menu
-  var vMenu = vWidget.getParent().getParent();
-
-  // Let the menu do the real hard things
-  return vMenu.getMenuButtonNeededWidth();
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
----------------------------------------------------------------------------
-*/
-
-/*!
-  Things to do and layout when any of the childs changes its outer width.
-  Needed by layouts where the children depends on each-other, like flow- or box-layouts.
-*/
-qx.Proto.updateSelfOnChildOuterWidthChange = function(vChild)
-{
-  // Caching the widget reference
-  var vWidget = this.getWidget();
-
-  // Ignore the verticalBoxLayout inside qx.ui.menu.Menu
-  var vMenu = vWidget.getParent().getParent();
-
-  // Send out invalidate signals
-  switch(vChild)
-  {
-    case vWidget._iconObject:
-      vMenu._invalidateMaxIconWidth();
-      break;
-
-    case vWidget._labelObject:
-      vMenu._invalidateMaxLabelWidth();
-      break;
-
-    case vWidget._shortcutObject:
-      vMenu._invalidateMaxShortcutWidth();
-      break;
-
-    case vWidget._arrowObject:
-      vMenu._invalidateMaxArrowWidth();
-      break;
-  }
-
-  // Call superclass implementation
-  return qx.renderer.layout.HorizontalBoxLayoutImpl.prototype.updateSelfOnChildOuterWidthChange.call(this, vChild);
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [10] LAYOUT CHILD
----------------------------------------------------------------------------
-*/
-
-qx.Proto.layoutChild_locationX = function(vChild, vJobs)
-{
-  // Caching the widget reference
-  var vWidget = this.getWidget();
-
-  // Ignore the verticalBoxLayout inside qx.ui.menu.Menu
-  var vMenu = vWidget.getParent().getParent();
-
-  // Left position of the child
-  var vPos = null;
-
-  // Ask the menu instance for the correct location
-  switch(vChild)
-  {
-    case vWidget._iconObject:
-      vPos = vMenu.getIconPosition();
-      break;
-
-    case vWidget._labelObject:
-      vPos = vMenu.getLabelPosition();
-      break;
-
-    case vWidget._shortcutObject:
-      vPos = vMenu.getShortcutPosition();
-      break;
-
-    case vWidget._arrowObject:
-      vPos = vMenu.getArrowPosition();
-      break;
-  }
-
-  if (vPos != null)
-  {
-    vPos += vWidget.getPaddingLeft();
-    vChild._applyRuntimeLeft(vPos);
-  }
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/MenuLayoutImpl.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/MenuLayoutImpl.js
deleted file mode 100644 (file)
index 14ef800..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_menu)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.layout.MenuLayoutImpl", qx.renderer.layout.VerticalBoxLayoutImpl,
-function(vWidget)
-{
-  qx.renderer.layout.VerticalBoxLayoutImpl.call(this, vWidget);
-
-  // We don't need flex support, should make things a bit faster,
-  // as this omits some additional loops in qx.renderer.layout.HorizontalBoxLayoutImpl.
-  this.setEnableFlexSupport(false);
-});
-
-
-/*!
-  Global Structure:
-  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
-  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
-  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
-  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
-  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
-  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
-  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
-  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
-  [09] FLUSH LAYOUT QUEUES OF CHILDREN
-  [10] LAYOUT CHILD
-  [11] DISPOSER
-
-
-  Inherits from qx.renderer.layout.VerticalBoxLayoutImpl:
-  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
-  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
-  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
-  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
-  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
-  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
-  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
-  [09] FLUSH LAYOUT QUEUES OF CHILDREN
-  [10] LAYOUT CHILD
-  [11] DISPOSER
-*/
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
----------------------------------------------------------------------------
-*/
-
-/*!
-  Updates children on special jobs
-*/
-qx.Proto.updateChildrenOnJobQueueFlush = function(vQueue)
-{
-  var vWidget = this.getWidget();
-  var ch, chc;
-
-  if (vQueue.preferredInnerWidth)
-  {
-    var ch = vWidget.getChildren(), chl = ch.length, chc;
-    var sch, schl;
-
-    for (var i=0; i<chl; i++)
-    {
-      chc = ch[i];
-      sch = chc.getChildren();
-      schl = sch.length;
-
-      for (var j=0; j<schl; j++) {
-        sch[j].addToLayoutChanges("locationX");
-      }
-    }
-  }
-
-  // Call superclass implementation
-  return qx.renderer.layout.VerticalBoxLayoutImpl.prototype.updateChildrenOnJobQueueFlush.call(this, vQueue);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/VerticalBoxLayoutImpl.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/layout/VerticalBoxLayoutImpl.js
deleted file mode 100644 (file)
index fe2eb8f..0000000
+++ /dev/null
@@ -1,868 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_basic)
-#module(ui_layout)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.layout.VerticalBoxLayoutImpl", qx.renderer.layout.LayoutImpl,
-function(vWidget) {
-  qx.renderer.layout.LayoutImpl.call(this, vWidget);
-});
-
-qx.OO.addProperty({ name : "enableFlexSupport", type : "boolean", defaultValue : true });
-
-
-
-/*!
-  Global Structure:
-  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
-  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
-  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
-  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
-  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
-  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
-  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
-  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
-  [09] FLUSH LAYOUT QUEUES OF CHILDREN
-  [10] LAYOUT CHILD
-  [11] DISPOSER
-
-
-  Inherits from qx.renderer.layout.LayoutImpl:
-  [02] COMPUTE NEEDED DIMENSIONS FOR AN INDIVIDUAL CHILD
-  [11] DISPOSER
-*/
-
-
-
-/*
----------------------------------------------------------------------------
-  [01] COMPUTE BOX DIMENSIONS FOR AN INDIVIDUAL CHILD
----------------------------------------------------------------------------
-*/
-
-/*!
-  Compute and return the box width of the given child.
-*/
-qx.Proto.computeChildBoxWidth = function(vChild)
-{
-  if (this.getWidget().getStretchChildrenOrthogonalAxis() && vChild._computedWidthTypeNull && vChild.getAllowStretchX()) {
-    return this.getWidget().getInnerWidth();
-  }
-
-  return vChild.getWidthValue() || vChild._computeBoxWidthFallback();
-}
-
-/*!
-  Compute and return the box height of the given child.
-*/
-qx.Proto.computeChildBoxHeight = function(vChild) {
-  return vChild.getHeightValue() || vChild._computeBoxHeightFallback();
-}
-
-/*!
-  Computes the height of all flexible children.
-*/
-qx.Proto.computeChildrenFlexHeight = function()
-{
-  if (this._childrenFlexHeightComputed || !this.getEnableFlexSupport()) {
-    return;
-  }
-
-  this._childrenFlexHeightComputed = true;
-
-  // this.debug("computeChildrenFlexHeight");
-
-  var vWidget = this.getWidget();
-  var vChildren = vWidget.getVisibleChildren();
-  var vChildrenLength = vChildren.length;
-  var vCurrentChild;
-  var vFlexibleChildren = [];
-  var vAvailHeight = vWidget.getInnerHeight();
-  var vUsedHeight = vWidget.getSpacing() * (vChildrenLength-1);
-  var vIterator;
-
-
-  // *************************************************************
-  // 1. Compute the sum of all static sized children and finding
-  //    all flexible children.
-  // *************************************************************
-  for (vIterator=0; vIterator<vChildrenLength; vIterator++)
-  {
-    vCurrentChild = vChildren[vIterator];
-
-    if (vCurrentChild._computedHeightTypeFlex)
-    {
-      vFlexibleChildren.push(vCurrentChild);
-
-      if (vWidget._computedHeightTypeAuto) {
-        vUsedHeight += vCurrentChild.getPreferredBoxHeight();
-      }
-    }
-    else
-    {
-      vUsedHeight += vCurrentChild.getOuterHeight();
-    }
-  }
-
-  // this.debug("Height: " + vUsedHeight + "/" + vAvailHeight);
-  // this.debug("Flexible Count: " + vFlexibleChildren.length);
-
-
-  // *************************************************************
-  // 2. Compute the sum of all flexible children heights
-  // *************************************************************
-  var vRemainingHeight = vAvailHeight - vUsedHeight;
-  var vFlexibleChildrenLength = vFlexibleChildren.length;
-  var vPrioritySum = 0;
-
-  for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++) {
-    vPrioritySum += vFlexibleChildren[vIterator]._computedHeightParsed;
-  }
-
-
-  // *************************************************************
-  // 3. Calculating the size of each 'part'.
-  // *************************************************************
-  var vPartHeight = vRemainingHeight / vPrioritySum;
-
-
-  if (!vWidget.getUseAdvancedFlexAllocation())
-  {
-    // *************************************************************
-    // 4a. Computing the flex height value of each flexible child
-    //     and add the height to the usedHeight, so that we can
-    //     fix rounding problems later.
-    // *************************************************************
-    for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++)
-    {
-      vCurrentChild = vFlexibleChildren[vIterator];
-
-      vCurrentChild._computedHeightFlexValue = Math.round(vCurrentChild._computedHeightParsed * vPartHeight);
-      vUsedHeight += vCurrentChild._computedHeightFlexValue;
-    }
-  }
-  else
-  {
-    // *************************************************************
-    // 4b. Calculating the diff. Which means respect the min/max
-    //     height configuration in flex and store the higher/lower
-    //     data in a diff.
-    // *************************************************************
-
-    var vAllocationDiff = 0;
-    var vMinAllocationLoops, vFlexibleChildrenLength, vAdjust, vCurrentAllocationSum, vFactorSum, vComputedFlexibleHeight;
-
-    for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++)
-    {
-      vCurrentChild = vFlexibleChildren[vIterator];
-
-      vComputedFlexibleHeight = vCurrentChild._computedHeightFlexValue = vCurrentChild._computedHeightParsed * vPartHeight;
-      vAllocationDiff += vComputedFlexibleHeight - qx.lang.Number.limit(vComputedFlexibleHeight, vCurrentChild.getMinHeightValue(), vCurrentChild.getMaxHeightValue());
-    }
-
-    // Rounding diff
-    vAllocationDiff = Math.round(vAllocationDiff);
-
-    if (vAllocationDiff == 0)
-    {
-      // *************************************************************
-      // 5a. If the diff is equal zero we must not do anything more
-      //     and do nearly identical the same like in 4a. which means
-      //     to round the calculated flex value and add it to the
-      //     used height so we can fix rounding problems later.
-      // *************************************************************
-
-      // Rounding values and fixing rounding errors
-      for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++)
-      {
-        vCurrentChild = vFlexibleChildren[vIterator];
-
-        vCurrentChild._computedHeightFlexValue = Math.round(vCurrentChild._computedHeightFlexValue);
-        vUsedHeight += vCurrentChild._computedHeightFlexValue;
-      }
-    }
-    else
-    {
-      // *************************************************************
-      // 5b. Find maximum loops of each adjustable child to adjust
-      //     the height until the min/max height limits are reached.
-      // *************************************************************
-
-      var vUp = vAllocationDiff > 0;
-      for (vIterator=vFlexibleChildrenLength-1; vIterator>=0; vIterator--)
-      {
-        vCurrentChild = vFlexibleChildren[vIterator];
-
-        if (vUp)
-        {
-          vAdjust = (vCurrentChild.getMaxHeightValue() || Infinity) - vCurrentChild._computedHeightFlexValue;
-
-          if (vAdjust > 0)
-          {
-            vCurrentChild._allocationLoops = Math.floor(vAdjust / vCurrentChild._computedHeightParsed);
-          }
-          else
-          {
-            qx.lang.Array.removeAt(vFlexibleChildren, vIterator);
-
-            vCurrentChild._computedHeightFlexValue = Math.round(vCurrentChild._computedHeightFlexValue);
-            vUsedHeight += Math.round(vCurrentChild._computedHeightFlexValue + vAdjust);
-          }
-        }
-        else
-        {
-          vAdjust = qx.util.Validation.isValidNumber(vCurrentChild.getMinHeightValue()) ? vCurrentChild._computedHeightFlexValue - vCurrentChild.getMinHeightValue() : vCurrentChild._computedHeightFlexValue;
-
-          if (vAdjust > 0)
-          {
-            vCurrentChild._allocationLoops = Math.floor(vAdjust / vCurrentChild._computedHeightParsed);
-          }
-          else
-          {
-            qx.lang.Array.removeAt(vFlexibleChildren, vIterator);
-
-            vCurrentChild._computedHeightFlexValue = Math.round(vCurrentChild._computedHeightFlexValue);
-            vUsedHeight += Math.round(vCurrentChild._computedHeightFlexValue - vAdjust);
-          }
-        }
-      }
-
-      // *************************************************************
-      // 6. Try to reallocate the height between flexible children
-      //    so that the requirements through min/max limits
-      //    are satisfied.
-      // *************************************************************
-      while (vAllocationDiff != 0 && vFlexibleChildrenLength > 0)
-      {
-        vFlexibleChildrenLength = vFlexibleChildren.length;
-        vMinAllocationLoops = Infinity;
-        vFactorSum = 0;
-
-        // Find minimal loop amount
-        for (vIterator=0; vIterator<vFlexibleChildrenLength; vIterator++)
-        {
-          vMinAllocationLoops = Math.min(vMinAllocationLoops, vFlexibleChildren[vIterator]._allocationLoops);
-          vFactorSum += vFlexibleChildren[vIterator]._computedHeightParsed;
-        }
-
-        // Be sure that the adjustment is not bigger/smaller than diff
-        vCurrentAllocationSum = Math.min(vFactorSum * vMinAllocationLoops, vAllocationDiff);
-
-        // this.debug("Diff: " + vAllocationDiff);
-        // this.debug("Min Loops: " + vMinAllocationLoops);
-        // this.debug("Sum: " + vCurrentAllocationSum);
-        // this.debug("Factor: " + vFactorSum);
-
-        // Reducing diff by current sum
-        vAllocationDiff -= vCurrentAllocationSum;
-
-        // Adding sizes to children to adjust
-        for (vIterator=vFlexibleChildrenLength-1; vIterator>=0; vIterator--)
-        {
-          vCurrentChild = vFlexibleChildren[vIterator];
-          vCurrentChild._computedHeightFlexValue += vCurrentAllocationSum / vFactorSum * vCurrentChild._computedHeightParsed;
-
-          if (vCurrentChild._allocationLoops == vMinAllocationLoops)
-          {
-            vCurrentChild._computedHeightFlexValue = Math.round(vCurrentChild._computedHeightFlexValue);
-
-            vUsedHeight += vCurrentChild._computedHeightFlexValue;
-            delete vCurrentChild._allocationLoops;
-            qx.lang.Array.removeAt(vFlexibleChildren, vIterator);
-          }
-          else
-          {
-            if (vAllocationDiff == 0)
-            {
-              vCurrentChild._computedHeightFlexValue = Math.round(vCurrentChild._computedHeightFlexValue);
-              vUsedHeight += vCurrentChild._computedHeightFlexValue;
-              delete vCurrentChild._allocationLoops;
-            }
-            else
-            {
-              vCurrentChild._allocationLoops -= vMinAllocationLoops;
-            }
-          }
-        }
-      }
-    }
-  }
-
-  // *************************************************************
-  // 7. Fix rounding errors
-  // *************************************************************
-  vCurrentChild._computedHeightFlexValue += vAvailHeight - vUsedHeight;
-}
-
-qx.Proto.invalidateChildrenFlexHeight = function() {
-  delete this._childrenFlexHeightComputed;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [03] COMPUTE NEEDED DIMENSIONS FOR ALL CHILDREN
----------------------------------------------------------------------------
-*/
-
-/*!
-  Compute and return the height needed by all children of this widget
-*/
-qx.Proto.computeChildrenNeededHeight = function()
-{
-  var w = this.getWidget();
-  return qx.renderer.layout.LayoutImpl.prototype.computeChildrenNeededHeight_sum.call(this) + ((w.getVisibleChildrenLength()-1) * w.getSpacing());
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [04] UPDATE LAYOUT WHEN A CHILD CHANGES ITS OUTER DIMENSIONS
----------------------------------------------------------------------------
-*/
-
-/*!
-  Things to do and layout when any of the childs changes its outer height.
-  Needed by layouts where the children depends on each-other, like flow- or box-layouts.
-*/
-qx.Proto.updateSelfOnChildOuterHeightChange = function(vChild)
-{
-  // if a childrens outer height changes we need to update our accumulated
-  // height of all childrens (used for middle or bottom alignments)
-  this.getWidget()._invalidateAccumulatedChildrenOuterHeight();
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [05] UPDATE CHILD ON INNER DIMENSION CHANGES OF LAYOUT
----------------------------------------------------------------------------
-*/
-
-/*!
-  Actions that should be done if the inner width of the widget was changed.
-  Normally this includes update to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerWidthChange = function(vChild)
-{
-  // use variables here to be sure to call both methods.
-  var vUpdatePercent = vChild._recomputePercentX();
-  var vUpdateStretch = vChild._recomputeStretchingX();
-
-  // priority to childs internal alignment
-  if ((vChild.getHorizontalAlign() || this.getWidget().getHorizontalChildrenAlign()) == "center") {
-    vChild.addToLayoutChanges("locationX");
-  }
-
-  // inform the caller if there were any notable changes occured
-  return vUpdatePercent || vUpdateStretch;
-}
-
-/*!
-  Actions that should be done if the inner height of the widget was changed.
-  Normally this includes update to percent values and ranges.
-*/
-qx.Proto.updateChildOnInnerHeightChange = function(vChild)
-{
-  if (this.getWidget().getVerticalChildrenAlign() == "middle") {
-    vChild.addToLayoutChanges("locationY");
-  }
-
-  // use variables here to be sure to call both methods.
-  var vUpdatePercent = vChild._recomputePercentY();
-  var vUpdateFlex = vChild._recomputeFlexY();
-
-  // inform the caller if there were any notable changes occured
-  return vUpdatePercent || vUpdateFlex;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [06] UPDATE LAYOUT ON JOB QUEUE FLUSH
----------------------------------------------------------------------------
-*/
-
-/*!
-  Invalidate and recompute things because of job in queue (before the rest of job handling will be executed).
-*/
-qx.Proto.updateSelfOnJobQueueFlush = function(vJobQueue)
-{
-  if (vJobQueue.addChild || vJobQueue.removeChild) {
-    this.getWidget()._invalidateAccumulatedChildrenOuterHeight();
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [07] UPDATE CHILDREN ON JOB QUEUE FLUSH
----------------------------------------------------------------------------
-*/
-
-/*!
-  Updates children on special jobs
-*/
-qx.Proto.updateChildrenOnJobQueueFlush = function(vQueue)
-{
-  var vStretchX=false, vStretchY=false;
-  var vWidget = this.getWidget();
-
-  // switching the orientation need updates for stretching on both axis
-  if (vQueue.orientation) {
-    vStretchX = vStretchY = true;
-  }
-
-  // different updates depending from the current orientation (or the new one)
-  if (vQueue.spacing || vQueue.orientation || vQueue.reverseChildrenOrder || vQueue.verticalChildrenAlign) {
-    vWidget._addChildrenToLayoutQueue("locationY");
-  }
-
-  if (vQueue.horizontalChildrenAlign) {
-    vWidget._addChildrenToLayoutQueue("locationX");
-  }
-
-  if (vQueue.stretchChildrenOrthogonalAxis) {
-    vStretchX = true;
-  }
-
-  // if stretching should be reworked reset the previous one and add
-  // a layout job to update the width respectively height.
-  if (vStretchX)
-  {
-    vWidget._recomputeChildrenStretchingX();
-    vWidget._addChildrenToLayoutQueue("width");
-  }
-
-  if (vStretchY)
-  {
-    vWidget._recomputeChildrenStretchingY();
-    vWidget._addChildrenToLayoutQueue("height");
-  }
-
-  return true;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [08] CHILDREN ADD/REMOVE/MOVE HANDLING
----------------------------------------------------------------------------
-*/
-
-/*!
-  This method combines calls of methods which should be done if a widget should be removed from the current layout.
-  Needed by layouts where the children depends on each-other, like flow- or box-layouts.
-*/
-qx.Proto.updateChildrenOnRemoveChild = function(vChild, vIndex)
-{
-  var w=this.getWidget(), ch=w.getVisibleChildren(), chl=ch.length, chc, i=-1;
-
-  // Fix index to be at the first flex child
-  if (this.getEnableFlexSupport())
-  {
-    for (var i=0; i<chl; i++)
-    {
-      chc = ch[i];
-      if (chc.getHasFlexY())
-      {
-        vIndex = Math.min(vIndex, i);
-        break;
-      }
-    }
-
-    i=-1;
-  }
-
-  // Handle differently depending on layout mode
-  switch(w.getLayoutMode())
-  {
-    case "bottom":
-    case "top-reversed":
-      while((chc=ch[++i]) && i<vIndex) {
-        chc.addToLayoutChanges("locationY");
-      }
-
-      break;
-
-    case "middle":
-    case "middle-reversed":
-      while(chc=ch[++i]) {
-        chc.addToLayoutChanges("locationY");
-      }
-
-      break;
-
-    default:
-      i+=vIndex;
-      while(chc=ch[++i]) {
-        chc.addToLayoutChanges("locationY");
-      }
-  }
-}
-
-/*!
-  This method combines calls of methods which should be done if a child should be moved
-  inside the same parent to a new positions.
-  Needed by layouts where the children depends on each-other, like flow- or box-layouts.
-*/
-qx.Proto.updateChildrenOnMoveChild = function(vChild, vIndex, vOldIndex)
-{
-  var vChildren = this.getWidget().getVisibleChildren();
-
-  var vStart = Math.min(vIndex, vOldIndex);
-  var vStop = Math.max(vIndex, vOldIndex)+1;
-
-  for (var i=vStart; i<vStop; i++) {
-    vChildren[i].addToLayoutChanges("locationY");
-  }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [09] FLUSH LAYOUT QUEUES OF CHILDREN
----------------------------------------------------------------------------
-*/
-
-/*!
-  This method have full control of the order in which the
-  registered (or also non-registered) children should be
-  layouted on the horizontal axis.
-*/
-qx.Proto.flushChildrenQueue = function(vChildrenQueue)
-{
-  var w=this.getWidget(), ch=w.getVisibleChildren(), chl=ch.length, chc, i;
-
-  // This block is needed for flex handling and
-  // will inform flex children if there was any
-  // change to the other content
-  if (this.getEnableFlexSupport())
-  {
-    this.invalidateChildrenFlexHeight();
-
-    for (i=0; i<chl; i++)
-    {
-      chc = ch[i];
-      if (chc.getHasFlexY())
-      {
-        chc._computedHeightValue = null;
-
-        if (chc._recomputeBoxHeight())
-        {
-          chc._recomputeOuterHeight();
-          chc._recomputeInnerHeight();
-        }
-
-        vChildrenQueue[chc.toHashCode()] = chc;
-        chc._layoutChanges.height = true;
-      }
-    }
-  }
-
-  switch(w.getLayoutMode())
-  {
-    case "bottom":
-    case "top-reversed":
-      // find the last child which has a layout request
-      for (var i=chl-1; i>=0 && !vChildrenQueue[ch[i].toHashCode()]; i--) {}
-
-      // layout all children before this last child
-      for (var j=0; j<=i; j++) {
-        w._layoutChild(chc=ch[j]);
-      }
-
-      break;
-
-    case "middle":
-    case "middle-reversed":
-      // re-layout all children
-      i = -1;
-      while(chc=ch[++i]) {
-        w._layoutChild(chc);
-      }
-
-      break;
-
-    default:
-      // layout all childs from the first child
-      // with an own layout request to the end
-      i = -1;
-      var changed=false;
-      while(chc=ch[++i])
-      {
-        if (changed || vChildrenQueue[chc.toHashCode()])
-        {
-          w._layoutChild(chc);
-          changed = true;
-        }
-      }
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  [10] LAYOUT CHILD
----------------------------------------------------------------------------
-*/
-
-/*!
-  This is called from qx.ui.core.Widget and  it's task is to apply the layout
-  (excluding border and padding) to the child.
-*/
-qx.Proto.layoutChild = function(vChild, vJobs)
-{
-  this.layoutChild_sizeX(vChild, vJobs);
-  this.layoutChild_sizeY(vChild, vJobs);
-
-  this.layoutChild_sizeLimitX(vChild, vJobs);
-  this.layoutChild_sizeLimitY(vChild, vJobs);
-
-  this.layoutChild_locationX(vChild, vJobs);
-  this.layoutChild_locationY(vChild, vJobs);
-
-  this.layoutChild_marginX(vChild, vJobs);
-  this.layoutChild_marginY(vChild, vJobs);
-}
-
-if (qx.core.Client.getInstance().isMshtml() || qx.core.Client.getInstance().isOpera() || qx.core.Client.getInstance().isWebkit())
-{
-  qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
-  {
-    if (vJobs.initial || vJobs.width || vJobs.minWidth || vJobs.maxWidth)
-    {
-      if ((vChild._isWidthEssential() && (!vChild._computedWidthTypeNull || !vChild._computedMinWidthTypeNull || !vChild._computedMaxWidthTypeNull)) || (vChild.getAllowStretchX() && this.getWidget().getStretchChildrenOrthogonalAxis()))
-      {
-        vChild._applyRuntimeWidth(vChild.getBoxWidth());
-      }
-      else
-      {
-        vChild._resetRuntimeWidth();
-      }
-    }
-  }
-
-  qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
-  {
-    if (vJobs.initial || vJobs.height || vJobs.minHeight || vJobs.maxHeight)
-    {
-      if (vChild._isHeightEssential() && (!vChild._computedHeightTypeNull || !vChild._computedMinHeightTypeNull || !vChild._computedMaxHeightTypeNull))
-      {
-        vChild._applyRuntimeHeight(vChild.getBoxHeight());
-      }
-      else
-      {
-        vChild._resetRuntimeHeight();
-      }
-    }
-  }
-}
-else
-{
-  qx.Proto.layoutChild_sizeX = function(vChild, vJobs)
-  {
-    if (vJobs.initial || vJobs.width)
-    {
-      if (vChild._isWidthEssential() && !vChild._computedWidthTypeNull)
-      {
-        vChild._applyRuntimeWidth(vChild.getWidthValue());
-      }
-      else
-      {
-        vChild._resetRuntimeWidth();
-      }
-    }
-  }
-
-  qx.Proto.layoutChild_sizeY = function(vChild, vJobs)
-  {
-    if (vJobs.initial || vJobs.height)
-    {
-      if (vChild._isHeightEssential() && !vChild._computedHeightTypeNull)
-      {
-        vChild._applyRuntimeHeight(vChild.getHeightValue());
-      }
-      else
-      {
-        vChild._resetRuntimeHeight();
-      }
-    }
-  }
-}
-
-qx.Proto.layoutChild_locationY = function(vChild, vJobs)
-{
-  var vWidget = this.getWidget();
-
-  // handle first child
-  if (vWidget.getFirstVisibleChild() == vChild)
-  {
-    switch(vWidget.getLayoutMode())
-    {
-      case "bottom":
-      case "top-reversed":
-        var vPos = vWidget.getPaddingBottom() + vWidget.getAccumulatedChildrenOuterHeight() - vChild.getOuterHeight();
-        break;
-
-      case "middle":
-      case "middle-reversed":
-        var vPos = vWidget.getPaddingTop() + Math.round((vWidget.getInnerHeight() - vWidget.getAccumulatedChildrenOuterHeight()) / 2);
-        break;
-
-      default:
-        var vPos = vWidget.getPaddingTop();
-    }
-  }
-
-  // handle any following child
-  else
-  {
-    var vPrev = vChild.getPreviousVisibleSibling();
-
-    switch(vWidget.getLayoutMode())
-    {
-      case "bottom":
-      case "top-reversed":
-        var vPos = vPrev._cachedLocationVertical - vChild.getOuterHeight() - vWidget.getSpacing();
-        break;
-
-      default:
-        var vPos = vPrev._cachedLocationVertical + vPrev.getOuterHeight() + vWidget.getSpacing();
-    }
-  }
-
-  // store for next sibling
-  vChild._cachedLocationVertical = vPos;
-
-  // apply styles
-  switch(this.getWidget().getLayoutMode())
-  {
-    case "bottom":
-    case "bottom-reversed":
-    case "middle-reversed":
-      // add relative positions (like 'position:relative' in css)
-      vPos += !vChild._computedBottomTypeNull ? vChild.getBottomValue() : !vChild._computedTopTypeNull ? -(vChild.getTopValue()) : 0;
-
-      vChild._resetRuntimeTop();
-      vChild._applyRuntimeBottom(vPos);
-      break;
-
-    default:
-      // add relative positions (like 'position:relative' in css)
-      vPos += !vChild._computedTopTypeNull ? vChild.getTopValue() : !vChild._computedBottomTypeNull ? -(vChild.getBottomValue()) : 0;
-
-      vChild._resetRuntimeBottom();
-      vChild._applyRuntimeTop(vPos);
-  }
-}
-
-qx.Proto.layoutChild_locationX = function(vChild, vJobs)
-{
-  var vWidget = this.getWidget();
-
-  // special stretching support
-  if (qx.core.Client.getInstance().isGecko() && vChild.getAllowStretchX() && vWidget.getStretchChildrenOrthogonalAxis() && vChild._computedWidthTypeNull)
-  {
-    vChild._applyRuntimeLeft(vWidget.getPaddingLeft() || 0);
-    vChild._applyRuntimeRight(vWidget.getPaddingRight() || 0);
-
-    return;
-  }
-
-  // priority to childs internal alignment
-  var vAlign = vChild.getHorizontalAlign() || vWidget.getHorizontalChildrenAlign();
-
-  // handle center alignment
-  var vPos = vAlign == "center" ? Math.round((vWidget.getInnerWidth() - vChild.getOuterWidth()) / 2) : 0;
-
-  // the right alignment use the real 'right' styleproperty to
-  // use the best available method in modern browsers
-  if (vAlign == "right")
-  {
-    // add parent padding
-    vPos += vWidget.getPaddingRight();
-
-    // relative positions (like 'position:relative' in css)
-    if (!vChild._computedRightTypeNull) {
-      vPos += vChild.getRightValue();
-    }
-    else if (!vChild._computedLeftTypeNull) {
-      vPos -= vChild.getLeftValue();
-    }
-
-    // apply styles
-    vChild._resetRuntimeLeft();
-    vChild._applyRuntimeRight(vPos);
-  }
-  else
-  {
-    // add parent padding
-    vPos += vWidget.getPaddingLeft();
-
-    // relative positions (like 'position:relative' in css)
-    if (!vChild._computedLeftTypeNull) {
-      vPos += vChild.getLeftValue();
-    }
-    else if (!vChild._computedRightTypeNull) {
-      vPos -= vChild.getRightValue();
-    }
-
-    // apply styles
-    vChild._resetRuntimeRight();
-    vChild._applyRuntimeLeft(vPos);
-  }
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/theme/AppearanceTheme.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/theme/AppearanceTheme.js
deleted file mode 100644 (file)
index cea49e8..0000000
+++ /dev/null
@@ -1,216 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-
-************************************************************************ */
-
-/**
- * Appearance Theme
- *
- * @param vTitle {String} anme of the appearance
- */
-qx.OO.defineClass("qx.renderer.theme.AppearanceTheme", qx.core.Object,
-function(vTitle)
-{
-  qx.core.Object.call(this);
-
-  this.setTitle(vTitle);
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/** name of the theme */
-qx.OO.addProperty({ name : "title", type : "string", allowNull : false, defaultValue : "" });
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DATA
----------------------------------------------------------------------------
-*/
-
-qx.Proto._appearances = {};
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CORE METHODS
----------------------------------------------------------------------------
-*/
-
-/**
- * Register an appearance for a given id
- *
- * vData has the following structure:
- * <pre>
- * {
- *   setup : function() {}
- *   initial : function(vTheme) {}
- *   state : function(vTheme, vStates) {}
- * }
- * </pre>
- * @param vId {String} id of the apperance (e.g. "button", "label", ...)
- * @param vData {Map}
- */
-qx.Proto.registerAppearance = function(vId, vData) {
-  this._appearances[vId] = vData;
-};
-
-
-/**
- * Return the apperance object for a specific apperance id.
- *
- * @param vId {String} id of the apperance (e.g. "button", "label", ...)
- * @return {Object} appearance map
- */
-qx.Proto.getAppearance = function(vId) {
-  return this._appearances[vId];
-}
-
-
-/**
- * Call the "setup" function of the apperance
- *
- * @param vAppearance {Object} appearance map
- */
-qx.Proto.setupAppearance = function(vAppearance)
-{
-  if (!vAppearance._setupDone)
-  {
-    if (vAppearance.setup) {
-      vAppearance.setup(this);
-    }
-
-    vAppearance._setupDone = true;
-  }
-};
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  WIDGET METHODS
----------------------------------------------------------------------------
-*/
-
-/**
- * Get the result of the "initial" function for a given id
- *
- * @param vId {String} id of the apperance (e.g. "button", "label", ...)
- * @return {Map} map of widget properties as returned by the "initial" function
- */
-qx.Proto.initialFrom = function(vId)
-{
-  var vAppearance = this.getAppearance(vId);
-  if (vAppearance)
-  {
-    this.setupAppearance(vAppearance);
-
-    try
-    {
-      return vAppearance.initial ? vAppearance.initial(this) : {}
-    }
-    catch(ex)
-    {
-      this.error("Couldn't apply initial appearance", ex);
-    }
-  }
-  else
-  {
-    return this.error("Missing appearance: " + vId);
-  }
-};
-
-
-/**
- * Get the result of the "state" function for a given id and states
- *
- * @param vId {String} id of the apperance (e.g. "button", "label", ...)
- * @param vStates {Map} hash map defining the set states
- * @return {Map} map of widget properties as returned by the "state" function
- */
-qx.Proto.stateFrom = function(vId, vStates)
-{
-  var vAppearance = this.getAppearance(vId);
-  if (vAppearance)
-  {
-    this.setupAppearance(vAppearance);
-
-    try
-    {
-      return vAppearance.state ? vAppearance.state(this, vStates) : {}
-    }
-    catch(ex)
-    {
-      this.error("Couldn't apply state appearance", ex);
-    }
-  }
-  else
-  {
-    return this.error("Missing appearance: " + vId);
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-/**
- * Disposer
- */
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this._appearances = null;
-
-  return qx.core.Object.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/theme/ColorTheme.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/theme/ColorTheme.js
deleted file mode 100644 (file)
index a8ad292..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#after(qx.manager.object.ColorManager)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.theme.ColorTheme", qx.core.Object,
-function(vTitle)
-{
-  qx.core.Object.call(this);
-
-  this._compiledColors = {};
-  this.setTitle(vTitle);
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.addProperty({ name : "title", type : "string", allowNull : false, defaultValue : "" });
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DATA
----------------------------------------------------------------------------
-*/
-
-qx.Proto._needsCompilation = true;
-qx.Proto._colors = {};
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PUBLIC METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getValueByName = function(vName) {
-  return this._colors[vName] || "";
-}
-
-qx.Proto.getStyleByName = function(vName) {
-  return this._compiledColors[vName] || "";
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PRIVATE METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.compile = function()
-{
-  if (!this._needsCompilation) {
-    return;
-  }
-
-  for (var vName in qx.renderer.color.Color.themedNames) {
-    this._compileValue(vName);
-  }
-
-  this._needsCompilation = false;
-}
-
-qx.Proto._compileValue = function(vName)
-{
-  var v = this._colors[vName];
-  this._compiledColors[vName] = v ? qx.renderer.color.Color.rgb2style.apply(this, this._colors[vName]) : vName;
-}
-
-qx.Proto._register = function() {
-  return qx.manager.object.ColorManager.getInstance().registerTheme(this);
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  delete this._colors;
-  delete this._compiledColors;
-
-  qx.core.Object.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/theme/IconTheme.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/theme/IconTheme.js
deleted file mode 100644 (file)
index d453843..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#after(qx.manager.object.ImageManager)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.theme.IconTheme", qx.core.Object,
-function(vTitle)
-{
-  qx.core.Object.call(this);
-
-  this.setTitle(vTitle);
-});
-
-qx.OO.addProperty({ name : "title", type : "string", allowNull : false, defaultValue : "" });
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/theme/WidgetTheme.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/renderer/theme/WidgetTheme.js
deleted file mode 100644 (file)
index 914c8db..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#after(qx.manager.object.ImageManager)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.renderer.theme.WidgetTheme", qx.core.Object,
-function(vTitle)
-{
-  qx.core.Object.call(this);
-
-  this.setTitle(vTitle);
-});
-
-qx.OO.addProperty({ name : "title", type : "string", allowNull : false, defaultValue : "" });
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/appearance/Classic.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/appearance/Classic.js
deleted file mode 100644 (file)
index 324a395..0000000
+++ /dev/null
@@ -1,2240 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
- * Til Schneider (til132)
-
- ************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#module(theme_appearance)
-#require(qx.manager.object.AppearanceManager)
-#optional(qx.renderer.color.Color)
-#optional(qx.renderer.color.ColorObject)
-#optional(qx.renderer.border.Border)
-#optional(qx.renderer.border.BorderObject)
-#optional(qx.renderer.font.Font)
-#optional(qx.renderer.font.FontObject)
-#embed(qx.static/image/dotted_white.gif)
-#embed(qx.static/image/blank.gif)
-
- ************************************************************************ */
-
-/**
- * The default qooxdoo appearance theme.
- *
- * @param vTitle {String?"qooxdoo default appearance"} appearance title
- */
-qx.OO.defineClass("qx.theme.appearance.Classic", qx.renderer.theme.AppearanceTheme,
-function(vTitle) {
-  qx.renderer.theme.AppearanceTheme.call(this, vTitle || "qooxdoo default appearance");
-});
-
-
-
-
-qx.Proto._appearances = qx.lang.Object.carefullyMergeWith( {
-  /*
-  ---------------------------------------------------------------------------
-    CORE
-  ---------------------------------------------------------------------------
-  */
-
-  "image" : {
-    initial : function(vTheme) {
-      return {
-        allowStretchX : false,
-        allowStretchY : false
-      }
-    }
-  },
-
-  "client-document" : {
-    setup : function() {
-      this.bgcolor = new qx.renderer.color.ColorObject("threedface");
-      this.color = new qx.renderer.color.ColorObject("windowtext");
-    },
-
-    initial : function(vTheme) {
-      return {
-        backgroundColor : this.bgcolor,
-        color : this.color,
-        hideFocus : true,
-        enableElementFocus : false
-      }
-    }
-  },
-
-  "blocker" : {
-    initial : function(vTheme) {
-      // You could also use: "static/image/dotted_white.gif" for example as backgroundImage here
-      // (Visible) background tiles could be dramatically slow down mshtml!
-      // A background image or color is always needed for mshtml to block the events successfully.
-      return {
-        cursor : "default",
-        backgroundImage : "static/image/blank.gif"
-      }
-    }
-  },
-
-  "atom" : {
-    initial : function(vTheme) {
-      return {
-        cursor : "default",
-        spacing : 4,
-        width : "auto",
-        height : "auto",
-        horizontalChildrenAlign : "center",
-        verticalChildrenAlign : "middle",
-        stretchChildrenOrthogonalAxis : false,
-        allowStretchY : false,
-        allowStretchX : false
-      }
-    }
-  },
-
-  "label" : {
-    setup : function() {
-      this.color_disabled = new qx.renderer.color.ColorObject("graytext");
-      this.font = new qx.renderer.font.Font(11, '"Segoe UI", Corbel, Calibri, Tahoma, "Lucida Sans Unicode", sans-serif');
-    },
-
-    initial : function(vTheme) {
-      return {
-        font: this.font,
-        wrap : false
-      }
-    },
-
-    state : function(vTheme, vStates) {
-      return {
-        color : vStates.disabled ? this.color_disabled : null
-      }
-    }
-  },
-
-  "htmlcontainer" : {
-    initial : function(vTheme) {
-      return vTheme.initialFrom("label");
-    },
-
-    state : function(vTheme, vStates) {
-      return vTheme.stateFrom("label", vStates);
-    }
-  },
-
-  "popup" : {
-    initial : function(vTheme) {
-      return {
-        width : "auto",
-        height : "auto"
-      }
-    }
-  },
-
-  "tool-tip" : {
-    setup : function() {
-      this.bgcolor = new qx.renderer.color.ColorObject("InfoBackground");
-      this.color = new qx.renderer.color.ColorObject("InfoText");
-    },
-
-    initial : function(vTheme) {
-      return qx.lang.Object.mergeWith(vTheme.initialFrom("popup"), {
-        backgroundColor : this.bgcolor,
-        color : this.color,
-        border : qx.renderer.border.BorderPresets.getInstance().info,
-        paddingTop : 1,
-        paddingRight : 3,
-        paddingBottom : 2,
-        paddingLeft : 3
-      });
-    }
-  },
-
-  "iframe" : {
-    initial : function(vTheme) {
-      return {
-        border : qx.renderer.border.BorderPresets.getInstance().inset
-      }
-    }
-  },
-
-
-
-
-
-
-  /*
-  ---------------------------------------------------------------------------
-    BUTTON
-  ---------------------------------------------------------------------------
-  */
-
-  "button" : {
-    setup : function() {
-      this.bgcolor_default = new qx.renderer.color.ColorObject("buttonface");
-      this.bgcolor_over = new qx.renderer.color.Color("#87BCE5");
-      this.bgcolor_left = new qx.renderer.color.Color("#FFF0C9");
-
-      this.border_pressed = qx.renderer.border.BorderPresets.getInstance().inset;
-      this.border_default = qx.renderer.border.BorderPresets.getInstance().outset;
-    },
-
-    initial : function(vTheme) {
-      return vTheme.initialFrom("atom");
-    },
-
-    state : function(vTheme, vStates) {
-      var vReturn = {
-        backgroundColor : vStates.abandoned ? this.bgcolor_left : vStates.over ? this.bgcolor_over : this.bgcolor_default,
-        border : vStates.pressed || vStates.checked || vStates.abandoned ? this.border_pressed : this.border_default
-      }
-
-      if (vStates.pressed || vStates.abandoned) {
-        vReturn.paddingTop = 4;
-        vReturn.paddingRight = 3;
-        vReturn.paddingBottom = 2;
-        vReturn.paddingLeft = 5;
-      }
-      else {
-        vReturn.paddingTop = vReturn.paddingBottom = 3;
-        vReturn.paddingRight = vReturn.paddingLeft = 4;
-      }
-
-      return vReturn;
-    }
-  },
-
-
-
-
-
-
-
-
-  /*
-  ---------------------------------------------------------------------------
-    TOOLBAR
-  ---------------------------------------------------------------------------
-  */
-
-  "toolbar" : {
-    setup : function() {
-      this.bgcolor = new qx.renderer.color.ColorObject("threedface");
-    },
-
-    initial : function(vTheme) {
-      return {
-        border : qx.renderer.border.BorderPresets.getInstance().thinOutset,
-        backgroundColor : this.bgcolor,
-        height : "auto"
-      }
-    }
-  },
-
-  "toolbar-part" : {
-    initial : function(vTheme) {
-      return {
-        width : "auto"
-      }
-    }
-  },
-
-  "toolbar-part-handle" : {
-    initial : function(vTheme) {
-      return {
-        width : 10
-      }
-    }
-  },
-
-  "toolbar-part-handle-line" : {
-    initial : function(vTheme) {
-      return {
-        top : 2,
-        left : 3,
-        bottom : 2,
-        width : 4,
-        border : qx.renderer.border.BorderPresets.getInstance().thinOutset
-      }
-    }
-  },
-
-  "toolbar-separator" : {
-    initial : function(vTheme) {
-      return {
-        width : 8
-      }
-    }
-  },
-
-  "toolbar-separator-line" : {
-    setup : function() {
-      var b = this.border = new qx.renderer.border.BorderObject;
-
-      b.setLeftColor("threedshadow");
-      b.setRightColor("threedhighlight");
-
-      b.setLeftStyle("solid");
-      b.setRightStyle("solid");
-
-      b.setLeftWidth(1);
-      b.setRightWidth(1);
-      b.setTopWidth(0);
-      b.setBottomWidth(0);
-    },
-
-    initial : function(vTheme) {
-      return {
-        top : 2,
-        left: 3,
-        width : 2,
-        bottom : 2,
-        border : this.border
-      }
-    }
-  },
-
-  "toolbar-button" : {
-    setup : function() {
-      this.bgcolor_default = new qx.renderer.color.ColorObject("buttonface");
-      this.bgcolor_left = new qx.renderer.color.Color("#FFF0C9");
-
-      this.border_pressed = qx.renderer.border.BorderPresets.getInstance().thinInset;
-      this.border_over = qx.renderer.border.BorderPresets.getInstance().thinOutset;
-      this.border_default = qx.renderer.border.BorderPresets.getInstance().none;
-
-      this.checked_background = "static/image/dotted_white.gif";
-    },
-
-    initial : function(vTheme) {
-      return {
-        cursor : "default",
-        spacing : 4,
-        width : "auto",
-        verticalChildrenAlign : "middle"
-      }
-    },
-
-    state : function(vTheme, vStates) {
-      var vReturn = {
-        backgroundColor : vStates.abandoned ? this.bgcolor_left : this.bgcolor_default,
-        backgroundImage : vStates.checked && !vStates.over ? this.checked_background : null
-      }
-
-      if (vStates.pressed || vStates.checked || vStates.abandoned) {
-        vReturn.border = this.border_pressed;
-
-        vReturn.paddingTop = 3;
-        vReturn.paddingRight = 2;
-        vReturn.paddingBottom = 1;
-        vReturn.paddingLeft = 4;
-      } else if (vStates.over) {
-        vReturn.border = this.border_over;
-
-        vReturn.paddingTop = vReturn.paddingBottom = 2;
-        vReturn.paddingLeft = vReturn.paddingRight = 3;
-      } else {
-        vReturn.border = this.border_default;
-
-        vReturn.paddingTop = vReturn.paddingBottom = 3;
-        vReturn.paddingLeft = vReturn.paddingRight = 4;
-      }
-
-      return vReturn;
-    }
-  },
-
-
-
-
-
-
-
-  /*
-  ---------------------------------------------------------------------------
-    BAR VIEW
-  ---------------------------------------------------------------------------
-  */
-
-  "bar-view" : {
-    setup : function() {
-      this.background = new qx.renderer.color.ColorObject("#FAFBFE");
-    },
-
-    initial : function(vTheme) {
-      return {
-        backgroundColor : this.background,
-        border : qx.renderer.border.BorderPresets.getInstance().shadow
-      }
-    }
-  },
-
-  "bar-view-pane" : {
-    state : function(vTheme, vStates) {
-      if (vStates.barHorizontal) {
-        return {
-          width : null,
-          height : "1*"
-        }
-      }
-      else {
-        return {
-          width : "1*",
-          height : null
-        }
-      }
-    }
-  },
-
-  "bar-view-page" : {
-    initial : function(vTheme) {
-      return {
-        left : 10,
-        right : 10,
-        top : 10,
-        bottom : 10
-      }
-    }
-  },
-
-  "bar-view-bar" : {
-    setup : function() {
-      this.background_color = new qx.renderer.color.ColorObject("#E1EEFF");
-
-      this.border_color = new qx.renderer.color.ColorObject("threedshadow");
-
-      this.border_top = new qx.renderer.border.BorderObject;
-      this.border_top.setBottom(1, "solid", this.border_color);
-
-      this.border_bottom = new qx.renderer.border.BorderObject;
-      this.border_bottom.setTop(1, "solid", this.border_color);
-
-      this.border_left = new qx.renderer.border.BorderObject;
-      this.border_left.setRight(1, "solid", this.border_color);
-
-      this.border_right = new qx.renderer.border.BorderObject;
-      this.border_right.setLeft(1, "solid", this.border_color);
-    },
-
-    initial : function(vTheme) {
-      return {
-        backgroundColor : this.background_color
-      }
-    },
-
-    state : function(vTheme, vStates) {
-      if (vStates.barTop) {
-        return {
-          paddingTop : 1,
-          paddingRight : 0,
-          paddingBottom : 1,
-          paddingLeft : 0,
-
-          border : this.border_top,
-          height : "auto",
-          width : null,
-          orientation : "horizontal"
-        };
-      }
-      else if (vStates.barBottom) {
-        return {
-          paddingTop : 1,
-          paddingRight : 0,
-          paddingBottom : 1,
-          paddingLeft : 0,
-
-          border : this.border_bottom,
-          height : "auto",
-          width : null,
-          orientation : "horizontal"
-        };
-      }
-      else if (vStates.barLeft) {
-        return {
-          paddingTop : 0,
-          paddingRight : 1,
-          paddingBottom : 0,
-          paddingLeft : 1,
-
-          border : this.border_left,
-          height : null,
-          width : "auto",
-          orientation : "vertical"
-        };
-      }
-      else if (vStates.barRight) {
-        return {
-          paddingTop : 0,
-          paddingRight : 1,
-          paddingBottom : 0,
-          paddingLeft : 1,
-
-          border : this.border_right,
-          height : null,
-          width : "auto",
-          orientation : "vertical"
-        };
-      }
-    }
-  },
-
-  "bar-view-button" : {
-    setup : function() {
-      this.background_color_normal = null;
-      this.background_color_checked = new qx.renderer.color.ColorObject("#FAFBFE");
-
-      this.border_color = new qx.renderer.color.ColorObject("threedshadow");
-      this.border_color_checked = new qx.renderer.color.ColorObject("#FEC83C");
-
-      this.border_top_checked = new qx.renderer.border.Border(1, "solid", this.border_color);
-      this.border_top_checked.setBottom(3, "solid", this.border_color_checked);
-
-      this.border_bottom_checked = new qx.renderer.border.Border(1, "solid", this.border_color);
-      this.border_bottom_checked.setTop(3, "solid", this.border_color_checked);
-
-      this.border_left_checked = new qx.renderer.border.Border(1, "solid", this.border_color);
-      this.border_left_checked.setRight(3, "solid", this.border_color_checked);
-
-      this.border_right_checked = new qx.renderer.border.Border(1, "solid", this.border_color);
-      this.border_right_checked.setLeft(3, "solid", this.border_color_checked);
-    },
-
-    initial : function(vTheme) {
-      return qx.lang.Object.mergeWith(vTheme.initialFrom("atom"), {
-        iconPosition : "top"
-      });
-    },
-
-    state : function(vTheme, vStates) {
-      var vReturn = {
-        backgroundColor : vStates.checked ? this.background_color_checked : this.background_color_normal,
-        allowStretchX : true,
-        allowStretchY : true
-      }
-
-      if (vStates.checked || vStates.over) {
-        if (vStates.barTop) {
-          vReturn.border = this.border_top_checked;
-          vReturn.paddingTop = 3;
-          vReturn.paddingRight = 6;
-          vReturn.paddingBottom = 1;
-          vReturn.paddingLeft = 6;
-        }
-        else if (vStates.barBottom) {
-          vReturn.border = this.border_bottom_checked;
-          vReturn.paddingTop = 1;
-          vReturn.paddingRight = 6;
-          vReturn.paddingBottom = 3;
-          vReturn.paddingLeft = 6;
-        }
-        else if (vStates.barLeft) {
-          vReturn.border = this.border_left_checked;
-          vReturn.paddingTop = 3;
-          vReturn.paddingRight = 4;
-          vReturn.paddingBottom = 3;
-          vReturn.paddingLeft = 6;
-        }
-        else if (vStates.barRight) {
-          vReturn.border = this.border_right_checked;
-          vReturn.paddingTop = 3;
-          vReturn.paddingRight = 6;
-          vReturn.paddingBottom = 3;
-          vReturn.paddingLeft = 4;
-        }
-      }
-      else {
-        vReturn.border = qx.renderer.border.BorderPresets.getInstance().none;
-        vReturn.paddingTop = vReturn.paddingBottom = 4;
-        vReturn.paddingRight = vReturn.paddingLeft = 7;
-      }
-
-      if (vStates.barTop || vStates.barBottom) {
-        vReturn.marginTop = vReturn.marginBottom = 0;
-        vReturn.marginRight = vReturn.marginLeft = 1;
-        vReturn.width = "auto";
-        vReturn.height = null;
-      }
-      else if (vStates.barLeft || vStates.barRight) {
-        vReturn.marginTop = vReturn.marginBottom = 1;
-        vReturn.marginRight = vReturn.marginLeft = 0;
-        vReturn.height = "auto";
-        vReturn.width = null;
-      }
-
-      return vReturn;
-    }
-  },
-
-
-
-
-
-
-
-
-
-  /*
-  ---------------------------------------------------------------------------
-    WINDOW
-  ---------------------------------------------------------------------------
-  */
-
-  "window" : {
-    setup : function() {
-      this.bgcolor = new qx.renderer.color.ColorObject("threedface");
-      this.color = new qx.renderer.color.ColorObject("windowtext");
-    },
-
-    initial : function(vTheme) {
-      return {
-        backgroundColor : this.bgcolor,
-        color : this.color,
-        paddingTop : 1,
-        paddingRight : 1,
-        paddingBottom : 1,
-        paddingLeft : 1
-      }
-    },
-
-    state : function(vTheme, vStates) {
-      return {
-        border : vStates.maximized ? qx.renderer.border.BorderPresets.getInstance().none : qx.renderer.border.BorderPresets.getInstance().outset
-      }
-    }
-  },
-
-  "window-captionbar" : {
-    setup : function() {
-      this.bgcolor_active = new qx.renderer.color.ColorObject("activecaption");
-      this.color_active = new qx.renderer.color.ColorObject("captiontext");
-      this.bgcolor_inactive = new qx.renderer.color.ColorObject("inactivecaption");
-      this.color_inactive = new qx.renderer.color.ColorObject("inactivecaptiontext");
-    },
-
-    initial : function(vTheme) {
-      return {
-        paddingTop : 1,
-        paddingRight : 2,
-        paddingBottom : 2,
-        paddingLeft : 2,
-        verticalChildrenAlign : "middle",
-        height : "auto",
-        overflow : "hidden"
-      }
-    },
-
-    state : function(vTheme, vStates) {
-      return {
-        backgroundColor : vStates.active ? this.bgcolor_active : this.bgcolor_inactive,
-        color : vStates.active ? this.color_active : this.color_inactive
-      }
-    }
-  },
-
-  "window-resize-frame" : {
-    initial : function(vTheme) {
-      return {
-        border : qx.renderer.border.BorderPresets.getInstance().shadow
-      }
-    }
-  },
-
-  "window-captionbar-icon" : {
-    initial : function(vTheme) {
-      return {
-        marginRight : 2
-      }
-    }
-  },
-
-  "window-captionbar-title" : {
-    setup : function() {
-      this.font = new qx.renderer.font.Font(11, '"Segoe UI", Corbel, Calibri, Tahoma, "Lucida Sans Unicode", sans-serif');
-      this.font.setBold(true);
-    },
-
-    initial : function(vTheme) {
-      return {
-        cursor : "default",
-        font : this.font,
-        marginRight : 2,
-        wrap : false
-      }
-    }
-  },
-
-  "window-captionbar-button" : {
-    initial : function(vTheme) {
-      return vTheme.initialFrom("button");
-    },
-
-    state : function(vTheme, vStates) {
-      var vReturn = vTheme.stateFrom("button", vStates);
-
-      if (vStates.pressed || vStates.abandoned) {
-        vReturn.paddingTop = 2;
-        vReturn.paddingRight = 1;
-        vReturn.paddingBottom = 0;
-        vReturn.paddingLeft = 3;
-      }
-      else {
-        vReturn.paddingTop = vReturn.paddingBottom = 1;
-        vReturn.paddingRight = vReturn.paddingLeft = 2;
-      }
-
-      return vReturn;
-    }
-  },
-
-  "window-captionbar-minimize-button" : {
-    initial : function(vTheme) {
-      return vTheme.initialFrom("window-captionbar-button");
-    },
-
-    state : function(vTheme, vStates) {
-      return vTheme.stateFrom("window-captionbar-button", vStates);
-    }
-  },
-
-  "window-captionbar-restore-button" : {
-    initial : function(vTheme) {
-      return vTheme.initialFrom("window-captionbar-button");
-    },
-
-    state : function(vTheme, vStates) {
-      return vTheme.stateFrom("window-captionbar-button", vStates);
-    }
-  },
-
-  "window-captionbar-maximize-button" : {
-    initial : function(vTheme) {
-      return vTheme.initialFrom("window-captionbar-button");
-    },
-
-    state : function(vTheme, vStates) {
-      return vTheme.stateFrom("window-captionbar-button", vStates);
-    }
-  },
-
-  "window-captionbar-close-button" : {
-    initial : function(vTheme) {
-      return qx.lang.Object.mergeWith(vTheme.initialFrom("window-captionbar-button"), {
-        marginLeft : 2
-      });
-    },
-
-    state : function(vTheme, vStates) {
-      return vTheme.stateFrom("window-captionbar-button", vStates);
-    }
-  },
-
-  "window-statusbar" : {
-    initial : function(vTheme) {
-      return {
-        border : qx.renderer.border.BorderPresets.getInstance().thinInset,
-        height : "auto"
-      }
-    }
-  },
-
-  "window-statusbar-text" : {
-    initial : function(vTheme) {
-      return {
-        paddingTop : 1,
-        paddingRight : 4,
-        paddingBottom : 1,
-        paddingLeft : 4,
-        cursor : "default"
-      }
-    }
-  },
-
-
-
-
-
-
-
-  /*
-  ---------------------------------------------------------------------------
-    RESIZER
-  ---------------------------------------------------------------------------
-  */
-
-  "resizer": {
-    initial: function(vTheme) {
-      return {
-        border : qx.renderer.border.BorderPresets.getInstance().outset
-      }
-    }
-  },
-
-  "resizer-frame" : {
-    initial : function(vTheme) {
-      return {
-        border : qx.renderer.border.BorderPresets.getInstance().shadow
-      }
-    }
-  },
-
-
-
-
-
-
-
-  /*
-  ---------------------------------------------------------------------------
-    MENU
-  ---------------------------------------------------------------------------
-  */
-
-  "menu" : {
-    setup : function() {
-      this.bgcolor = new qx.renderer.color.ColorObject("menu");
-    },
-
-    initial : function(vTheme) {
-      return {
-        width : "auto",
-        height : "auto",
-        backgroundColor : this.bgcolor,
-        border : qx.renderer.border.BorderPresets.getInstance().outset,
-        paddingTop : 1,
-        paddingRight : 1,
-        paddingBottom : 1,
-        paddingLeft : 1
-      }
-    }
-  },
-
-  "menu-layout" : {
-    initial : function(vTheme) {
-      return {
-        top : 0,
-        right : 0,
-        bottom : 0,
-        left : 0
-      }
-    }
-  },
-
-  "menu-button" : {
-    setup : function() {
-      this.BGCOLOR_OVER = new qx.renderer.color.ColorObject("highlight");
-      this.BGCOLOR_OUT = null;
-
-      this.COLOR_OVER = new qx.renderer.color.ColorObject("highlighttext");
-      this.COLOR_OUT = null;
-    },
-
-    initial : function(vTheme) {
-      return {
-        minWidth : "auto",
-        height : "auto",
-        spacing : 2,
-        paddingTop : 2,
-        paddingRight : 4,
-        paddingBottom : 2,
-        paddingLeft : 4,
-        cursor : "default",
-        verticalChildrenAlign : "middle",
-        allowStretchX : true
-      }
-    },
-
-    state : function(vTheme, vStates) {
-      return {
-        backgroundColor : vStates.over ? this.BGCOLOR_OVER : this.BGCOLOR_OUT,
-        color : vStates.over ? this.COLOR_OVER : this.COLOR_OUT
-      }
-    }
-  },
-
-  "menu-check-box" : {
-    initial : function(vTheme) {
-      return vTheme.initialFrom("menu-button");
-    },
-
-    state : function(vTheme, vStates) {
-      return vTheme.stateFrom("menu-button", vStates);
-    }
-  },
-
-  "menu-radio-button" : {
-    initial : function(vTheme) {
-      return vTheme.initialFrom("menu-button");
-    },
-
-    state : function(vTheme, vStates) {
-      return vTheme.stateFrom("menu-button", vStates);
-    }
-  },
-
-  "menu-separator" : {
-    initial : function(vTheme) {
-      return {
-        height : "auto",
-        marginTop : 3,
-        marginBottom : 2,
-        paddingLeft : 3,
-        paddingRight : 3
-      }
-    }
-  },
-
-  "menu-separator-line" : {
-    initial : function(vTheme) {
-      return {
-        right : 0,
-        left : 0,
-        height : "auto",
-        border : qx.renderer.border.BorderPresets.getInstance().verticalDivider
-      }
-    }
-  },
-
-
-
-
-
-
-
-
-  /*
-  ---------------------------------------------------------------------------
-    LIST
-  ---------------------------------------------------------------------------
-  */
-
-  "list" : {
-    setup : function() {
-      this.bgcolor = new qx.renderer.color.Color("white");
-    },
-
-    initial : function(vTheme) {
-      return {
-        overflow : "hidden",
-        border : qx.renderer.border.BorderPresets.getInstance().thinInset,
-        backgroundColor : this.bgcolor
-      }
-    }
-  },
-
-  "list-item" : {
-    setup : function() {
-      this.bgcolor_selected = new qx.renderer.color.ColorObject("highlight");
-      this.color_selected = new qx.renderer.color.ColorObject("highlighttext");
-    },
-
-    initial : function(vTheme) {
-      return {
-        cursor : "default",
-        height : "auto",
-        horizontalChildrenAlign : "left",
-        verticalChildrenAlign : "middle",
-        spacing : 4,
-        paddingTop : 3,
-        paddingRight : 5,
-        paddingBottom : 3,
-        paddingLeft : 5,
-        minWidth : "auto"
-      }
-    },
-
-    state : function(vTheme, vStates) {
-      return {
-        backgroundColor : vStates.selected ? this.bgcolor_selected : null,
-        color : vStates.selected ? this.color_selected : null
-      }
-    }
-  },
-
-
-
-
-
-
-
-
-  /*
-  ---------------------------------------------------------------------------
-    FIELDS
-  ---------------------------------------------------------------------------
-  */
-
-  "text-field" : {
-    setup : function() {
-      this.font = new qx.renderer.font.Font(11, '"Segoe UI", Corbel, Calibri, Tahoma, "Lucida Sans Unicode", sans-serif');
-    },
-
-    initial : function(vTheme) {
-      return {
-        hideFocus : true,
-        border : qx.renderer.border.BorderPresets.getInstance().inset,
-        paddingTop : 1,
-        paddingRight : 3,
-        paddingBottom : 1,
-        paddingLeft : 3,
-        allowStretchY : false,
-        allowStretchX : true,
-        font : this.font,
-        width : "auto",
-        height : "auto"
-      }
-    },
-
-    state : function(vTheme, vStates) {
-      return vTheme.stateFrom("label", vStates);
-    }
-  },
-
-  "text-area" : {
-    initial : function(vTheme) {
-      return qx.lang.Object.mergeWith(vTheme.initialFrom("text-field"), {
-        overflow : "auto",
-
-        // gecko automatically defines a marginTop/marginBottom of 1px. We need to reset these values.
-        marginTop : 0,
-        marginBottom : 0
-      });
-    },
-
-    state : function(vTheme, vStates) {
-      return vTheme.stateFrom("text-field", vStates);
-    }
-  },
-
-
-
-
-
-
-
-
-
-
-  /*
-  ---------------------------------------------------------------------------
-    COMBOBOX
-  ---------------------------------------------------------------------------
-  */
-
-  "combo-box" : {
-    setup : function() {
-      this.bgcolor = new qx.renderer.color.Color("white");
-    },
-
-    initial : function(vTheme) {
-      return {
-        minWidth : 40,
-        width : 120,
-        height : "auto",
-        border : qx.renderer.border.BorderPresets.getInstance().inset,
-        backgroundColor : this.bgcolor,
-        allowStretchY : false
-      }
-    }
-  },
-
-  "combo-box-ex" : {
-    setup : function() {
-      this.bgcolor = new qx.renderer.color.Color("white");
-    },
-
-    initial : function(vTheme) {
-      return {
-        width : "auto",
-        height : "auto",
-        border : qx.renderer.border.BorderPresets.getInstance().inset,
-        backgroundColor : this.bgcolor,
-        allowStretchY : false
-      }
-    }
-  },
-
-  "combo-box-list" : {
-    initial : function(vTheme) {
-      return qx.lang.Object.mergeWith(vTheme.initialFrom("list"), {
-        top : 0,
-        right : 0,
-        bottom : 0,
-        left : 0,
-        border : null,
-        overflow : "scrollY"
-      });
-    }
-  },
-
-  "combo-box-ex-list" : {
-    initial : function(vTheme) {
-      return qx.lang.Object.mergeWith(vTheme.initialFrom("list"), {
-    statusBarVisible: false,
-    columnVisibilityButtonVisible: false,
-    height: 'auto',
-    maxHeight: 150,
-        top : 0,
-        left : 0,
-        border : null
-      });
-    }
-  },
-
-  "combo-box-popup" : {
-    initial : function(vTheme) {
-      return qx.lang.Object.mergeWith(vTheme.initialFrom("list"), {
-        height : "auto",
-        maxHeight : 150,
-        border : qx.renderer.border.BorderPresets.getInstance().shadow
-      });
-    }
-  },
-
-  "combo-box-ex-popup" : {
-    initial : function(vTheme) {
-      return qx.lang.Object.mergeWith(vTheme.initialFrom("list"), {
-        width: "auto",
-        height : "auto",
-        border : qx.renderer.border.BorderPresets.getInstance().shadow
-      });
-    }
-  },
-
-  "combo-box-text-field" : {
-    setup : function() {
-      this.bgcolor = new qx.renderer.color.Color("transparent");
-    },
-
-    initial : function(vTheme) {
-      return qx.lang.Object.mergeWith(vTheme.initialFrom("text-field"), {
-        border : qx.renderer.border.BorderPresets.getInstance().none,
-        width : "1*",
-        backgroundColor : this.bgcolor
-      });
-    }
-  },
-
-  "combo-box-ex-text-field" : {
-    setup : function() {
-      this.bgcolor = new qx.renderer.color.Color("transparent");
-    },
-
-    initial : function(vTheme) {
-      return qx.lang.Object.mergeWith(vTheme.initialFrom("text-field"), {
-        border : qx.renderer.border.BorderPresets.getInstance().none,
-        minWidth : 30,
-        width : 100,
-        backgroundColor : this.bgcolor
-      });
-    }
-  },
-
-  // Used both for ComboBox and ComboBoxEx
-  "combo-box-button" : {
-    initial : function(vTheme) {
-      return qx.lang.Object.mergeWith(vTheme.initialFrom("button"), {
-        height : null,
-        allowStretchY : true
-      });
-    },
-
-    state : function(vTheme, vStates) {
-      return qx.lang.Object.mergeWith(vTheme.stateFrom("button", vStates), {
-        paddingTop : 0,
-        paddingRight : 3,
-        paddingBottom : 0,
-        paddingLeft : 2
-      });
-    }
-  },
-
-
-
-
-
-
-
-  /*
-  ---------------------------------------------------------------------------
-    TREEVIRTUAL
-  ---------------------------------------------------------------------------
-  */
-
-  "treevirtual-focus-indicator" : {
-  },
-
-
-
-  /*
-  ---------------------------------------------------------------------------
-    TREE
-  ---------------------------------------------------------------------------
-  */
-
-  "tree-element" : {
-    initial : function(vTheme) {
-      return {
-        height : 16,
-        verticalChildrenAlign : "middle"
-      }
-    }
-  },
-
-  "tree-element-icon" : {
-    initial : function(vTheme) {
-      return {
-        width : 16,
-        height : 16
-      }
-    }
-  },
-
-  "tree-element-label" : {
-    setup : function() {
-      this.bgcolor_selected = new qx.renderer.color.ColorObject("highlight");
-      this.color_selected = new qx.renderer.color.ColorObject("highlighttext");
-    },
-
-    initial : function(vTheme) {
-      return qx.lang.Object.mergeWith(vTheme.initialFrom("label"), {
-        cursor : "default",
-        marginLeft : 3,
-        height : 15,
-        paddingTop : 2,
-        paddingRight : 2,
-        paddingBottom : 2,
-        paddingLeft : 2,
-        allowStretchY : false
-      });
-    },
-
-    state : function(vTheme, vStates) {
-      return qx.lang.Object.mergeWith(vTheme.stateFrom("label", vStates), {
-        backgroundColor : vStates.selected ? this.bgcolor_selected : null,
-        color : vStates.selected ? this.color_selected : null
-      });
-    }
-  },
-
-  "tree-folder" : {
-    initial : function(vTheme) {
-      return vTheme.initialFrom("tree-element");
-    },
-
-    state : function(vTheme, vStates) {
-      return vTheme.stateFrom("tree-element", vStates);
-    }
-  },
-
-  "tree-folder-icon" : {
-    initial : function(vTheme) {
-      return {
-        width : 16,
-        height : 16
-      }
-    }
-  },
-
-  "tree-folder-label" : {
-    initial : function(vTheme) {
-      return vTheme.initialFrom("tree-element-label");
-    },
-
-    state : function(vTheme, vStates) {
-      return vTheme.stateFrom("tree-element-label", vStates);
-    }
-  },
-
-  "tree" : {
-    initial : function(vTheme) {
-      return vTheme.initialFrom("tree-folder");
-    },
-
-    state : function(vTheme, vStates) {
-      return vTheme.stateFrom("tree-folder", vStates);
-    }
-  },
-
-  "tree-icon" : {
-    initial : function(vTheme) {
-      return vTheme.initialFrom("tree-folder-icon");
-    },
-
-    state : function(vTheme, vStates) {
-      return vTheme.stateFrom("tree-folder-icon", vStates);
-    }
-  },
-
-  "tree-label" : {
-    initial : function(vTheme) {
-      return vTheme.initialFrom("tree-folder-label");
-    },
-
-    state : function(vTheme, vStates) {
-      return vTheme.stateFrom("tree-folder-label", vStates);
-    }
-  },
-
-  "tree-container" : {
-    initial : function(vTheme) {
-      return {
-        verticalChildrenAlign : "top"
-      }
-    }
-  },
-
-  "tree-folder-container" : {
-    initial : function(vTheme) {
-      return {
-        height : "auto",
-        verticalChildrenAlign : "top"
-      }
-    }
-  },
-
-
-
-
-
-
-
-  /*
-  ---------------------------------------------------------------------------
-    LISTVIEW
-  ---------------------------------------------------------------------------
-  */
-
-  "list-view" : {
-    initial : function(vTheme) {
-      return {
-        cursor : "default",
-        overflow: "hidden"
-      }
-    }
-  },
-
-  "list-view-pane" : {
-    initial : function(vTheme) {
-      return {
-        width : "1*",
-        horizontalSpacing : 1,
-        overflow : "hidden"
-      }
-    }
-  },
-
-  "list-view-header" : {
-    setup : function() {
-      this.border = new qx.renderer.border.Border;
-      this.border.setBottom(1, "solid", "#e2e2e2");
-
-      this.bgcolor = new qx.renderer.color.Color("#f2f2f2");
-    },
-
-    initial : function(vTheme) {
-      return {
-        height : "auto",
-        overflow: "hidden",
-        border : this.border,
-        backgroundColor : this.bgcolor
-      }
-    }
-  },
-
-  "list-view-header-cell" : {
-    setup : function() {
-      this.border_hover = new qx.renderer.border.Border;
-      this.border_hover.setBottom(2, "solid", "#F9B119");
-
-      this.bgcolor_hover = new qx.renderer.color.Color("white");
-    },
-
-    initial : function(vTheme) {
-      return {
-        overflow : "hidden",
-        paddingTop : 2,
-        paddingRight : 6,
-        paddingBottom : 2,
-        paddingLeft : 6,
-        spacing : 4
-      };
-    },
-
-    state : function(vTheme, vStates) {
-      if (vStates.over) {
-        return {
-          backgroundColor : this.bgcolor_hover,
-          paddingBottom : 0,
-          border : this.border_hover
-        };
-      }
-      else {
-        return {
-          backgroundColor : null,
-          paddingBottom : 2,
-          border : null
-        };
-      }
-    }
-  },
-
-  "list-view-header-separator" : {
-    setup : function() {
-      this.bgcolor = new qx.renderer.color.Color("#D6D5D9");
-    },
-
-    initial : function(vTheme) {
-      return {
-        backgroundColor : this.bgcolor,
-        width : 1,
-        marginTop : 1,
-        marginBottom : 1
-      };
-    }
-  },
-
-  "list-view-content-cell" : {
-    setup : function() {
-      this.bgcolor_selected = new qx.renderer.color.ColorObject("highlight");
-      this.color_selected = new qx.renderer.color.ColorObject("highlighttext");
-    },
-
-    state : function(vTheme, vStates) {
-      return {
-        backgroundColor : vStates.selected ? this.bgcolor_selected : null,
-        color : vStates.selected ? this.color_selected : null
-      };
-    }
-  },
-
-  "list-view-content-cell-image" : {
-    initial : function(vTheme) {
-      return {
-        paddingLeft : 6,
-        paddingRight : 6
-      };
-    },
-
-    state : function(vTheme, vStates) {
-      return vTheme.stateFrom("list-view-content-cell", vStates);
-    }
-  },
-
-  "list-view-content-cell-text" : {
-    initial : function(vTheme) {
-      return qx.lang.Object.mergeWith(vTheme.initialFrom("htmlcontainer"), {
-        overflow: "hidden",
-        paddingLeft : 6,
-        paddingRight : 6
-      });
-    },
-
-    state : function(vTheme, vStates) {
-      return qx.lang.Object.mergeWith(vTheme.stateFrom("htmlcontainer", vStates), vTheme.stateFrom("list-view-content-cell", vStates));
-    }
-  },
-
-  "list-view-content-cell-html" : {
-    initial : function(vTheme) {
-      return vTheme.initialFrom("list-view-content-cell-text");
-    },
-
-    state : function(vTheme, vStates) {
-      return vTheme.stateFrom("list-view-content-cell-text", vStates);
-    }
-  },
-
-  "list-view-content-cell-icon-html" : {
-    initial : function(vTheme) {
-      return vTheme.initialFrom("list-view-content-cell-text");
-    },
-
-    state : function(vTheme, vStates) {
-      return vTheme.stateFrom("list-view-content-cell-text", vStates);
-    }
-  },
-
-  "list-view-content-cell-link" : {
-    initial : function(vTheme) {
-      return vTheme.initialFrom("list-view-content-cell-text");
-    },
-
-    state : function(vTheme, vStates) {
-      return vTheme.stateFrom("list-view-content-cell-text", vStates);
-    }
-  },
-
-
-
-
-
-
-
-  /*
-  ---------------------------------------------------------------------------
-    TABVIEW
-  ---------------------------------------------------------------------------
-  */
-
-  "tab-view" : {
-    initial : function(vTheme) {
-      return {
-        spacing : -1
-      };
-    }
-  },
-
-  "tab-view-bar" : {
-    initial : function(vTheme) {
-      return {
-        height : "auto"
-      };
-    }
-  },
-
-  "tab-view-pane" : {
-    setup : function() {
-      this.border = new qx.renderer.border.Border(1, "solid", "#91A5BD");
-      this.bgcolor = new qx.renderer.color.ColorObject("#FAFBFE");
-    },
-
-    initial : function(vTheme) {
-      return {
-        height : "1*",
-        backgroundColor : this.bgcolor,
-        border : this.border,
-        paddingTop : 10,
-        paddingRight : 10,
-        paddingBottom : 10,
-        paddingLeft : 10
-      };
-    }
-  },
-
-  "tab-view-page" : {
-    initial : function(vTheme) {
-      return {
-        top : 0,
-        right : 0,
-        bottom : 0,
-        left : 0
-      };
-    }
-  },
-
-  "tab-view-button" : {
-    setup : function() {
-      this.bgcolor_normal = new qx.renderer.color.ColorObject("#E1EEFF");
-      this.bgcolor_checked = new qx.renderer.color.ColorObject("#FAFBFE");
-
-      this.border_top_normal = new qx.renderer.border.Border(1, "solid", "#91A5BD");
-      this.border_top_normal.setBottomWidth(0);
-
-      this.border_top_checked = new qx.renderer.border.Border(1, "solid", "#91A5BD");
-      this.border_top_checked.setBottomWidth(0);
-      this.border_top_checked.setTop(3, "solid", "#FEC83C");
-
-      this.border_bottom_normal = new qx.renderer.border.Border(1, "solid", "#91A5BD");
-      this.border_bottom_normal.setTopWidth(0);
-
-      this.border_bottom_checked = new qx.renderer.border.Border(1, "solid", "#91A5BD");
-      this.border_bottom_checked.setTopWidth(0);
-      this.border_bottom_checked.setBottom(3, "solid", "#FEC83C");
-    },
-
-    initial : function(vTheme) {
-      return vTheme.initialFrom("atom");
-    },
-
-    state : function(vTheme, vStates) {
-      var vReturn;
-
-      if (vStates.checked) {
-        vReturn = {
-          backgroundColor : this.bgcolor_checked,
-          zIndex : 1,
-          paddingTop : 2,
-          paddingBottom : 4,
-          paddingLeft : 7,
-          paddingRight : 8,
-          border : vStates.barTop ? this.border_top_checked : this.border_bottom_checked,
-          marginTop : 0,
-          marginBottom : 0,
-          marginRight : -1,
-          marginLeft : -2
-        }
-
-        if (vStates.alignLeft) {
-          if (vStates.firstChild) {
-            vReturn.paddingLeft = 6;
-            vReturn.paddingRight = 7;
-            vReturn.marginLeft = 0;
-          }
-        }
-        else {
-          if (vStates.lastChild) {
-            vReturn.paddingLeft = 8;
-            vReturn.paddingRight = 5;
-            vReturn.marginRight = 0;
-          }
-        }
-      }
-      else {
-        vReturn = {
-          backgroundColor : vStates.over ? this.bgcolor_checked : this.bgcolor_normal,
-          zIndex : 0,
-          paddingTop : 2,
-          paddingBottom : 2,
-          paddingLeft : 5,
-          paddingRight : 6,
-          marginRight : 1,
-          marginLeft : 0
-        }
-
-        if (vStates.alignLeft) {
-          if (vStates.firstChild) {
-            vReturn.paddingLeft = 6;
-            vReturn.paddingRight = 5;
-          }
-        }
-        else {
-          if (vStates.lastChild) {
-            vReturn.paddingLeft = 6;
-            vReturn.paddingRight = 5;
-            vReturn.marginRight = 0;
-          }
-        }
-
-        if (vStates.barTop) {
-          vReturn.border = this.border_top_normal;
-          vReturn.marginTop = 3;
-          vReturn.marginBottom = 1;
-        }
-        else {
-          vReturn.border = this.border_bottom_normal;
-          vReturn.marginTop = 1;
-          vReturn.marginBottom = 3;
-        }
-      }
-
-      return vReturn;
-    }
-  },
-
-
-
-
-
-
-  /*
-  ---------------------------------------------------------------------------
-    FIELDSET
-  ---------------------------------------------------------------------------
-  */
-
-  "field-set" : {
-    setup : function() {
-      this.bgcolor = new qx.renderer.color.ColorObject("threedface");
-    },
-
-    initial : function(vTheme) {
-      return {
-        backgroundColor : this.bgcolor
-      }
-    }
-  },
-
-  "field-set-legend" : {
-    setup : function() {
-      this.bgcolor = new qx.renderer.color.ColorObject("threedface");
-    },
-
-    initial : function(vTheme) {
-      return qx.lang.Object.mergeWith(vTheme.initialFrom("atom"), {
-        top : 1,
-        left : 10,
-        backgroundColor : this.bgcolor,
-        paddingRight : 3,
-        paddingLeft : 4,
-        marginRight: 10
-      });
-    }
-  },
-
-  "field-set-frame" : {
-    initial : function(vTheme) {
-      return {
-        top : 8,
-        left : 2,
-        right : 2,
-        bottom : 2,
-        paddingTop : 12,
-        paddingRight : 9,
-        paddingBottom : 12,
-        paddingLeft : 9,
-        border : qx.renderer.border.BorderPresets.getInstance().groove
-      }
-    }
-  },
-
-  "check-box-field-set-legend" : {
-    setup : function() {
-      this.bgcolor = new qx.renderer.color.ColorObject("threedface");
-    },
-
-    initial : function(vTheme) {
-      return qx.lang.Object.mergeWith(vTheme.initialFrom("atom"), {
-        top : 1,
-        left : 10,
-        backgroundColor : this.bgcolor,
-        paddingRight : 3
-      });
-    }
-  },
-
-  "radio-button-field-set-legend" : {
-    initial : function(vTheme) {
-      return vTheme.initialFrom("check-box-field-set-legend");
-    }
-  },
-
-
-
-
-
-
-
-  /*
-  ---------------------------------------------------------------------------
-    SPINNER
-  ---------------------------------------------------------------------------
-  */
-
-  "spinner" : {
-    setup : function() {
-      this.bgcolor = new qx.renderer.color.Color("white");
-    },
-
-    initial : function(vTheme) {
-      return {
-        width : 60,
-        height : 22,
-        border : qx.renderer.border.BorderPresets.getInstance().inset,
-        backgroundColor : this.bgcolor
-      }
-    }
-  },
-
-  "spinner-field" : {
-    initial : function(vTheme) {
-      return qx.lang.Object.mergeWith(vTheme.initialFrom("text-field"), {
-        width : "1*",
-        border : qx.renderer.border.BorderPresets.getInstance().none
-      });
-    },
-
-    state : function(vTheme, vStates) {
-      return vTheme.stateFrom("text-field", vStates);
-    }
-  },
-
-  "spinner-button-up" : {
-    initial : function(vTheme) {
-      return qx.lang.Object.mergeWith(vTheme.initialFrom("image"), {
-        height: "1*",
-        width: 16,
-        backgroundColor: new qx.renderer.color.ColorObject("threedface")
-      });
-    },
-
-    state : function(vTheme, vStates) {
-      return qx.lang.Object.mergeWith(vTheme.stateFrom("button", vStates), {
-        paddingTop : 0,
-        paddingRight : 0,
-        paddingBottom: 0,
-        paddingLeft : 3
-      });
-    }
-  },
-
-  "spinner-button-down" : {
-    initial : function(vTheme) {
-      return qx.lang.Object.mergeWith(vTheme.initialFrom("image"), {
-        height: "1*",
-        width: 16,
-        backgroundColor: new qx.renderer.color.ColorObject("threedface")
-      });
-    },
-
-    state : function(vTheme, vStates) {
-      return qx.lang.Object.mergeWith(vTheme.stateFrom("button", vStates), {
-        paddingTop : 1,
-        paddingRight : 0,
-        paddingBottom: 0,
-        paddingLeft : 3
-      });
-    }
-  },
-
-
-
-
-
-  /*
-  ---------------------------------------------------------------------------
-    COLORSELECTOR
-  ---------------------------------------------------------------------------
-  */
-
-  "colorselector" : {
-    setup : function() {
-      this.border = qx.renderer.border.BorderPresets.getInstance().outset;
-    },
-
-    initial : function(vTheme) {
-      return {
-        border : this.border,
-        width: "auto",
-        height: "auto"
-      }
-    },
-
-    state : function(vTheme, vStates) {
-
-    }
-  },
-
-
-
-
-
-  /*
-  ---------------------------------------------------------------------------
-    DATECHOOSER
-  ---------------------------------------------------------------------------
-  */
-
-  "datechooser-toolbar-button" : {
-    setup : function() {
-      this.bgcolor_default = new qx.renderer.color.ColorObject("buttonface");
-      this.bgcolor_left = new qx.renderer.color.Color("#FFF0C9");
-
-      this.border_pressed = qx.renderer.border.BorderPresets.getInstance().thinInset;
-      this.border_over = qx.renderer.border.BorderPresets.getInstance().thinOutset;
-      this.border_default = null;
-
-      this.checked_background = "static/image/dotted_white.gif";
-    },
-
-    initial : function(vTheme) {
-      return {
-        cursor : "default",
-        spacing : 4,
-        width : "auto",
-        verticalChildrenAlign : "middle"
-      }
-    },
-
-    state : function(vTheme, vStates) {
-      var vReturn = {
-        backgroundColor : vStates.abandoned ? this.bgcolor_left : this.bgcolor_default,
-        backgroundImage : (vStates.checked && !vStates.over) ? this.checked_background : null
-      }
-
-      if (vStates.pressed || vStates.checked || vStates.abandoned) {
-        vReturn.border = this.border_pressed;
-      } else if (vStates.over) {
-        vReturn.border = this.border_over;
-      } else {
-        vReturn.border = this.border_default;
-      }
-
-      if (vStates.pressed || vStates.checked || vStates.abandoned) {
-        vReturn.paddingTop = 2;
-        vReturn.paddingRight = 0;
-        vReturn.paddingBottom = 0;
-        vReturn.paddingLeft = 2;
-      } else if (vStates.over) {
-        vReturn.paddingTop = vReturn.paddingBottom = 1;
-        vReturn.paddingLeft = vReturn.paddingRight = 1;
-      } else {
-        vReturn.paddingTop = vReturn.paddingBottom = 2;
-        vReturn.paddingLeft = vReturn.paddingRight = 2;
-      }
-
-      return vReturn;
-    }
-  },
-
-
-  "datechooser-monthyear" : {
-    setup : function() {
-      this.font = new qx.renderer.font.Font(13, '"Segoe UI", Corbel, Calibri, Tahoma, "Lucida Sans Unicode", sans-serif');
-    },
-
-    initial : function(vTheme) {
-      return {
-        font : this.font,
-        textAlign: "center",
-        verticalAlign: "middle"
-      }
-    }
-  },
-
-
-  "datechooser-datepane" : {
-    setup : function() {
-      this.border = new qx.renderer.border.Border(1, "solid", "gray");
-      this.bgcolor = new qx.renderer.color.ColorObject("window");
-    },
-
-    initial : function(vTheme) {
-      return {
-        border : this.border,
-        backgroundColor : this.bgcolor
-      }
-    }
-  },
-
-
-  "datechooser-weekday" : {
-    setup : function() {
-      this.border = new qx.renderer.border.Border;
-      this.border.set({ bottomColor:"gray", bottomStyle :"solid", bottomWidth:1 });
-      this.color = new qx.renderer.color.ColorObject("window");
-      this.bgcolor = new qx.renderer.color.ColorObject("#6285BA");
-      this.font = new qx.renderer.font.Font(11, '"Segoe UI", Corbel, Calibri, Tahoma, "Lucida Sans Unicode", sans-serif');
-      this.font.setBold(true);
-    },
-
-    initial : function(vTheme) {
-      return {
-        border : this.border,
-        font : this.font,
-        textAlign : "center"
-      }
-    },
-
-    state : function(vTheme, vStates) {
-      return {
-        color : vStates.weekend ? this.bgcolor : this.color,
-        backgroundColor : vStates.weekend ? this.color : this.bgcolor
-      }
-    }
-
-  },
-
-
-  "datechooser-day" : {
-    setup : function() {
-      this.font = new qx.renderer.font.Font(11, '"Segoe UI", Corbel, Calibri, Tahoma, "Lucida Sans Unicode", sans-serif');
-
-      this.selectedColor = new qx.renderer.color.ColorObject("highlightText");
-      this.selectedBgColor = new qx.renderer.color.ColorObject("highlight");
-      this.color = new qx.renderer.color.ColorObject("windowText");
-      this.otherMonthColor = new qx.renderer.color.ColorObject("grayText");
-
-      this.transparentBorder = new qx.renderer.border.Border(1, "none");
-    },
-
-    initial : function(vTheme) {
-      return {
-        cursor : "default",
-        border : this.border,
-        color : this.color,
-        font : this.font,
-        textAlign : "center",
-        verticalAlign: "middle",
-        selectable: false
-      }
-    },
-
-    state : function(vTheme, vStates) {
-      return {
-        border : vStates.today ? qx.renderer.border.BorderPresets.getInstance().black : this.transparentBorder,
-        color : vStates.selected ? this.selectedColor :
-          (vStates.otherMonth ? this.otherMonthColor : this.color),
-          backgroundColor : vStates.selected ? this.selectedBgColor : null
-      }
-    }
-  },
-
-  "datechooser-week" : {
-    setup : function() {
-      this.border = new qx.renderer.border.Border;
-      this.border.set({ rightColor:"gray", rightStyle :"solid", rightWidth:1 });
-      this.headerBorder = new qx.renderer.border.Border;
-      this.headerBorder.set({ rightColor:"gray", rightStyle :"solid", rightWidth:1,
-      bottomColor:"gray", bottomStyle :"solid", bottomWidth:1 });
-      this.color = new qx.renderer.color.ColorObject("#6285BA");
-      this.font = new qx.renderer.font.Font(11, '"Segoe UI", Corbel, Calibri, Tahoma, "Lucida Sans Unicode", sans-serif');
-    },
-
-    initial : function(vTheme) {
-      return {
-        border : this.border,
-        font : this.font,
-        color: this.color,
-        paddingLeft : 2
-      }
-    },
-
-    state : function(vTheme, vStates) {
-      return {
-        border : vStates.header ? this.headerBorder : this.border
-      }
-    }
-  },
-
-
-
-
-
-
-  /*
-  ---------------------------------------------------------------------------
-    TABLE
-  ---------------------------------------------------------------------------
-  */
-
-  "table-focus-statusbar" : {
-    setup : function() {
-      this.font = new qx.renderer.font.Font(11, '"Segoe UI", Corbel, Calibri, Tahoma, "Lucida Sans Unicode", sans-serif');
-      this.border = new qx.renderer.border.Border;
-      this.border.set({ topColor:"threedshadow", topStyle :"solid", topWidth:1 });
-    },
-
-    initial : function(vTheme) {
-      return {
-        font: this.font,
-        border: this.border,
-        paddingLeft: 2,
-        paddingRight: 2
-      }
-    }
-  },
-
-
-  "table-focus-indicator" : {
-    setup : function() {
-      this.border = new qx.renderer.border.Border(3, "solid", "#b3d9ff");
-      this.blurBorder = new qx.renderer.border.Border(3, "solid", "#c5c8ca");
-      this.editingBorder = new qx.renderer.border.Border(2, "solid", "#b3d9ff");
-    },
-
-    state : function(vTheme, vStates) {
-      return {
-        border : vStates.editing ? this.editingBorder : (vStates.tableHasFocus ? this.border : this.blurBorder)
-      }
-    }
-  },
-
-
-  "table-editor-textfield" : {
-    setup : function() {
-      this.font = new qx.renderer.font.Font(11, '"Segoe UI", Corbel, Calibri, Tahoma, "Lucida Sans Unicode", sans-serif');
-    },
-
-    initial : function(vTheme) {
-      return {
-        font: this.font,
-        border: qx.renderer.border.BorderPresets.getInstance().none,
-        paddingLeft: 2,
-        paddingRight: 2,
-        paddingTop: 0,
-        paddingBottom: 0
-      }
-    }
-  },
-
-  "table-header-cell" : {
-    setup : function() {
-      this.border = new qx.renderer.border.Border;
-      this.border.set({ rightColor:"#d6d2c2", rightStyle :"solid", rightWidth:1,
-      bottomColor:"#d6d2c2", bottomStyle :"solid", bottomWidth:2 });
-
-      this.mouseOverBorder = new qx.renderer.border.Border;
-      this.mouseOverBorder.set({ rightColor:"#d6d2c2", rightStyle :"solid", rightWidth:1,
-      bottomColor:"#F9B119", bottomStyle :"solid", bottomWidth:2 });
-
-      this.mouseOverBackground = new qx.renderer.color.ColorObject("white");
-      this.background = new qx.renderer.color.ColorObject("#ebeadb");
-    },
-
-    initial : function(vTheme) {
-      return {
-        cursor : "default",
-        border : this.border,
-        paddingLeft : 2,
-        paddingRight : 2,
-        spacing:2,
-        overflow:"hidden",
-        selectable: false,
-        backgroundColor:this.background,
-        iconPosition:"right",
-        verticalChildrenAlign:"middle"
-      }
-    },
-
-    state : function(vTheme, vStates) {
-      return {
-        backgroundColor : vStates.mouseover ? this.mouseOverBackground : this.background,
-        border : vStates.mouseover ? this.mouseOverBorder : this.border
-      }
-    }
-  },
-
-
-
-
-  /*
-  ---------------------------------------------------------------------------
-    SPLITPANE
-  ---------------------------------------------------------------------------
-  */
-
-  "splitpane" :
-  {
-    initial : function(vTheme)
-    {
-      return {
-        overflow : "hidden"
-      }
-    }
-  },
-
-  "splitpane-glasspane" :
-  {
-    setup : function() {
-      this.background = new qx.renderer.color.ColorObject("threedshadow");
-    },
-
-    initial : function(vTheme)
-    {
-      return {
-        zIndex : 1e7,
-        backgroundColor : this.background
-      }
-    },
-
-    state : function(vTheme, vStates) {
-      return {
-        opacity : vStates.visible ? 0.2 : 0
-      }
-    }
-  },
-
-  "splitpane-splitter" :
-  {
-    initial : function(vTheme) {
-      return {
-        backgroundColor : "threedface"
-      }
-    },
-
-    state : function(vTheme, vStates)
-    {
-      return {
-        cursor : vStates.horizontal ? "col-resize" : "row-resize"
-      };
-    }
-  },
-
-  "splitpane-slider" :
-  {
-    initial : function(vTheme)
-    {
-      return {
-        opacity: 0.5,
-        zIndex : 1e8
-      }
-    },
-
-    state : function(vTheme, vStates)
-    {
-      return {
-        backgroundColor: vStates.dragging ? "threeddarkshadow" : "threedface"
-      }
-    }
-  },
-
-  "splitpane-knob" :
-  {
-    state : function(vTheme, vStates)
-    {
-      var vReturn = {
-        opacity: vStates.dragging ? 0.5 : 1.0
-      }
-
-      if (vStates.horizontal)
-      {
-        vReturn.top = "33%";
-        vReturn.left = null;
-        vReturn.marginLeft = -6;
-        vReturn.marginTop = 0;
-        vReturn.cursor = "col-resize";
-      }
-      else if (vStates.vertical)
-      {
-        vReturn.top = null;
-        vReturn.left = "33%";
-        vReturn.marginTop = -6;
-        vReturn.marginLeft = 0;
-        vReturn.cursor = "row-resize";
-      }
-
-      return vReturn;
-    }
-  }
-
-
-
-
-  /*
-  ---------------------------------------------------------------------------
-    END
-  ---------------------------------------------------------------------------
-  */
-}, qx.Super.prototype._appearances);
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
-
-
-
-/*
----------------------------------------------------------------------------
-  REGISTER TO MANAGER
----------------------------------------------------------------------------
-*/
-
-qx.manager.object.AppearanceManager.getInstance().registerAppearanceTheme(qx.Class);
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/color/System.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/color/System.js
deleted file mode 100644 (file)
index a73824d..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(theme_color)
-
-************************************************************************ */
-
-/**
- * System color theme
- */
-qx.OO.defineClass("qx.theme.color.System", qx.renderer.theme.ColorTheme,
-function() {
-  qx.renderer.theme.ColorTheme.call(this, "Operating System Default");
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  REGISTER TO MANAGER
----------------------------------------------------------------------------
-*/
-
-qx.manager.object.ColorManager.getInstance().registerColorTheme(qx.Class);
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/color/WindowsClassic.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/color/WindowsClassic.js
deleted file mode 100644 (file)
index 5d4f7e9..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(theme_color)
-
-************************************************************************ */
-
-
-/**
- * Windows classic color theme
- */
-qx.OO.defineClass("qx.theme.color.WindowsClassic", qx.renderer.theme.ColorTheme,
-function() {
-  qx.renderer.theme.ColorTheme.call(this, "Windows Classic");
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFINE COLORS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._colors = qx.lang.Object.carefullyMergeWith({
-  activeborder : [ 212,208,200 ],
-  activecaption : [ 10,36,106 ],
-  appworkspace : [ 128,128,128 ],
-  background : [ 58,110,165 ],
-  buttonface : [ 212,208,200 ],
-  buttonhighlight : [ 255,255,255 ],
-  buttonshadow : [ 128,128,128 ],
-  buttontext : [ 0,0,0 ],
-  captiontext : [ 255,255,255 ],
-  graytext : [ 128,128,128 ],
-  highlight : [ 10,36,106 ],
-  highlighttext : [ 255,255,255 ],
-  inactiveborder : [ 212,208,200 ],
-  inactivecaption : [ 128,128,128 ],
-  inactivecaptiontext : [ 212,208,200 ],
-  infobackground : [ 255,255,225 ],
-  infotext : [ 0,0,0 ],
-  menu : [ 212,208,200 ],
-  menutext : [ 0,0,0 ],
-  scrollbar : [ 212,208,200 ],
-  threeddarkshadow : [ 64,64,64 ],
-  threedface : [ 212,208,200 ],
-  threedhighlight : [ 255,255,255 ],
-  threedlightshadow : [ 212,208,200 ],
-  threedshadow : [ 128,128,128 ],
-  window : [ 255,255,255 ],
-  windowframe : [ 0,0,0 ],
-  windowtext : [ 0,0,0 ]
-}, qx.Super.prototype._colors);
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  REGISTER TO MANAGER
----------------------------------------------------------------------------
-*/
-
-qx.manager.object.ColorManager.getInstance().registerColorTheme(qx.Class);
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/color/WindowsLunaBlue.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/color/WindowsLunaBlue.js
deleted file mode 100644 (file)
index 0928f80..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(theme_color)
-
-************************************************************************ */
-
-/**
- * Windows luna blue color theme
- */
-qx.OO.defineClass("qx.theme.color.WindowsLunaBlue", qx.renderer.theme.ColorTheme,
-function() {
-  qx.renderer.theme.ColorTheme.call(this, "Windows Luna Blue");
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFINE COLORS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._colors = qx.lang.Object.carefullyMergeWith({
-  activeborder : [ 212,208,200 ],
-  activecaption : [ 0,84,227 ],
-  appworkspace : [ 128,128,128 ],
-  background : [ 0,78,152 ],
-  buttonface : [ 236,233,216 ],
-  buttonhighlight : [ 255,255,255 ],
-  buttonshadow : [ 172,168,153 ],
-  buttontext : [ 0,0,0 ],
-  captiontext : [ 255,255,255 ],
-  graytext : [ 172,168,153 ],
-  highlight : [ 49,106,197 ],
-  highlighttext : [ 255,255,255 ],
-  inactiveborder : [ 212,208,200 ],
-  inactivecaption : [ 122,150,223 ],
-  inactivecaptiontext : [ 216,228,248 ],
-  infobackground : [ 255,255,225 ],
-  infotext : [ 0,0,0 ],
-  menu : [ 255,255,255 ],
-  menutext : [ 0,0,0 ],
-  scrollbar : [ 212,208,200 ],
-  threeddarkshadow : [ 113,111,100 ],
-  threedface : [ 236,233,216 ],
-  threedhighlight : [ 255,255,255 ],
-  threedlightshadow : [ 241,239,226 ],
-  threedshadow : [ 172,168,153 ],
-  window : [ 255,255,255 ],
-  windowframe : [ 0,0,0 ],
-  windowtext : [ 0,0,0 ]
-}, qx.Super.prototype._colors);
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  REGISTER TO MANAGER
----------------------------------------------------------------------------
-*/
-
-qx.manager.object.ColorManager.getInstance().registerColorTheme(qx.Class);
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/color/WindowsLunaGreen.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/color/WindowsLunaGreen.js
deleted file mode 100644 (file)
index e558184..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(theme_color)
-
-************************************************************************ */
-
-/**
- * Windows luna green color theme
- */
-qx.OO.defineClass("qx.theme.color.WindowsLunaGreen", qx.renderer.theme.ColorTheme,
-function() {
-  qx.renderer.theme.ColorTheme.call(this, "Windows Luna Green");
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFINE COLORS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._colors = qx.lang.Object.carefullyMergeWith({
-  activeborder : [ 212,208,200 ],
-  activecaption : [ 139,161,105 ],
-  appworkspace : [ 128,128,128 ],
-  background : [ 157,172,189 ],
-  buttonface : [ 236,233,216 ],
-  buttonhighlight : [ 255,255,255 ],
-  buttonshadow : [ 172,168,153 ],
-  buttontext : [ 0,0,0 ],
-  captiontext : [ 255,255,255 ],
-  graytext : [ 172,168,153 ],
-  highlight : [ 147,160,112 ],
-  highlighttext : [ 255,255,255 ],
-  inactiveborder : [ 212,208,200 ],
-  inactivecaption : [ 212,214,186 ],
-  inactivecaptiontext : [ 255,255,255 ],
-  infobackground : [ 255,255,225 ],
-  infotext : [ 0,0,0 ],
-  menu : [ 255,255,255 ],
-  menutext : [ 0,0,0 ],
-  scrollbar : [ 212,208,200 ],
-  threeddarkshadow : [ 113,111,100 ],
-  threedface : [ 236,233,216 ],
-  threedhighlight : [ 255,255,255 ],
-  threedlightshadow : [ 241,239,226 ],
-  threedshadow : [ 172,168,153 ],
-  window : [ 255,255,255 ],
-  windowframe : [ 0,0,0 ],
-  windowtext : [ 0,0,0 ]
-}, qx.Super.prototype._colors);
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
-
-
-
-
-/*
----------------------------------------------------------------------------
-  REGISTER TO MANAGER
----------------------------------------------------------------------------
-*/
-
-qx.manager.object.ColorManager.getInstance().registerColorTheme(qx.Class);
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/color/WindowsLunaSilver.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/color/WindowsLunaSilver.js
deleted file mode 100644 (file)
index 8c160d9..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(theme_color)
-
-************************************************************************ */
-
-/**
- * Windows luna silver color theme
- */
-qx.OO.defineClass("qx.theme.color.WindowsLunaSilver", qx.renderer.theme.ColorTheme,
-function() {
-  qx.renderer.theme.ColorTheme.call(this, "Windows Luna Silver");
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFINE COLORS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._colors = qx.lang.Object.carefullyMergeWith({
-  activeborder : [ 212,208,200 ],
-  activecaption : [ 192,192,192 ],
-  appworkspace : [ 128,128,128 ],
-  background : [ 88,87,104 ],
-  buttonface : [ 224,223,227 ],
-  buttonhighlight : [ 255,255,255 ],
-  buttonshadow : [ 157,157,161 ],
-  buttontext : [ 0,0,0 ],
-  captiontext : [ 14,16,16 ],
-  graytext : [ 172,168,153 ],
-  highlight : [ 178,180,191 ],
-  highlighttext : [ 0,0,0 ],
-  inactiveborder : [ 212,208,200 ],
-  inactivecaption : [ 255,255,255 ],
-  inactivecaptiontext : [ 162,161,161 ],
-  infobackground : [ 255,255,225 ],
-  infotext : [ 0,0,0 ],
-  menu : [ 255,255,255 ],
-  menutext : [ 0,0,0 ],
-  scrollbar : [ 212,208,200 ],
-  threeddarkshadow : [ 113,111,100 ],
-  threedface : [ 224,223,227 ],
-  threedhighlight : [ 255,255,255 ],
-  threedlightshadow : [ 241,239,226 ],
-  threedshadow : [ 157,157,161 ],
-  window : [ 255,255,255 ],
-  windowframe : [ 0,0,0 ],
-  windowtext : [ 0,0,0 ]
-}, qx.Super.prototype._colors);
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
-
-
-
-
-/*
----------------------------------------------------------------------------
-  REGISTER TO MANAGER
----------------------------------------------------------------------------
-*/
-
-qx.manager.object.ColorManager.getInstance().registerColorTheme(qx.Class);
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/color/WindowsRoyale.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/color/WindowsRoyale.js
deleted file mode 100644 (file)
index b278631..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#module(theme_color)
-
-************************************************************************ */
-
-/**
- * Windows royale color theme
- */
-qx.OO.defineClass("qx.theme.color.WindowsRoyale", qx.renderer.theme.ColorTheme,
-function() {
-  qx.renderer.theme.ColorTheme.call(this, "Windows Royale");
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFINE COLORS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._colors = qx.lang.Object.carefullyMergeWith({
-  activeborder : [ 212,208,200 ],
-  activecaption : [ 51,94,168 ],
-  appworkspace : [ 128,128,128 ],
-  background : [ 0,0,64 ],
-  buttonface : [ 235,233,237 ],
-  buttonhighlight : [ 255,255,255 ],
-  buttonshadow : [ 167,166,170 ],
-  buttontext : [ 0,0,0 ],
-  captiontext : [ 255,255,255 ],
-  graytext : [ 167,166,170 ],
-  highlight : [ 51,94,168 ],
-  highlighttext : [ 255,255,255 ],
-  inactiveborder : [ 212,208,200 ],
-  inactivecaption : [ 111,161,217 ],
-  inactivecaptiontext : [ 255,255,255 ],
-  infobackground : [ 255,255,225 ],
-  infotext : [ 0,0,0 ],
-  menu : [ 255,255,255 ],
-  menutext : [ 0,0,0 ],
-  scrollbar : [ 212,208,200 ],
-  threeddarkshadow : [ 133,135,140 ],
-  threedface : [ 235,233,237 ],
-  threedhighlight : [ 255,255,255 ],
-  threedlightshadow : [ 220,223,228 ],
-  threedshadow : [ 167,166,170 ],
-  window : [ 255,255,255 ],
-  windowframe : [ 0,0,0 ],
-  windowtext : [ 0,0,0 ]
-}, qx.Super.prototype._colors);
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
-
-
-
-
-/*
----------------------------------------------------------------------------
-  REGISTER TO MANAGER
----------------------------------------------------------------------------
-*/
-
-qx.manager.object.ColorManager.getInstance().registerColorTheme(qx.Class);
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/icon/CrystalClear.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/icon/CrystalClear.js
deleted file mode 100644 (file)
index 839d2f6..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#module(theme_icon)
-#resource(icontheme:icon/CrystalClear)
-
-************************************************************************ */
-
-/**
- * Crystal Clear
- * Author: Everaldo (everaldo@everaldo.com)
- * License: LGPL
- * Home: http://www.kde-look.org/content/show.php?content=25668
- */
-qx.OO.defineClass("qx.theme.icon.CrystalClear", qx.renderer.theme.IconTheme,
-function() {
-  qx.renderer.theme.IconTheme.call(this, "CrystalClear");
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFAULT SETTINGS
----------------------------------------------------------------------------
-*/
-
-qx.Settings.setDefault("imageUri", qx.Settings.getValueOfClass("qx.manager.object.AliasManager", "resourceUri") + "/icon/CrystalClear");
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  REGISTER TO MANAGER
----------------------------------------------------------------------------
-*/
-
-qx.manager.object.ImageManager.getInstance().registerIconTheme(qx.Class);
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/icon/NuoveXT.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/icon/NuoveXT.js
deleted file mode 100644 (file)
index f5ea389..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#module(theme_icon)
-#resource(icontheme:icon/NuoveXT)
-
-************************************************************************ */
-
-/**
- * nuoveXT
- * Author: Alexandre Moore (alexandre.moore@gmail.com)
- * License: GPL & LGPL/EPL
- * Home: http://www.kde-look.org/content/show.php?content=26449
- */
-qx.OO.defineClass("qx.theme.icon.NuoveXT", qx.renderer.theme.IconTheme,
-function() {
-  qx.renderer.theme.IconTheme.call(this, "NuoveXT");
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFAULT SETTINGS
----------------------------------------------------------------------------
-*/
-
-qx.Settings.setDefault("imageUri", qx.Settings.getValueOfClass("qx.manager.object.AliasManager", "resourceUri") + "/icon/NuoveXT");
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  REGISTER TO MANAGER
----------------------------------------------------------------------------
-*/
-
-qx.manager.object.ImageManager.getInstance().registerIconTheme(qx.Class);
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/icon/Nuvola.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/icon/Nuvola.js
deleted file mode 100644 (file)
index 4e3b362..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(theme_icon)
-#resource(icontheme:icon/Nuvola)
-
-************************************************************************ */
-
-
-/**
- * Nuvola
- * Author: David Vignoni (david@icon-king.com)
- * License: LGPL
- * Home: http://www.kde-look.org/content/show.php?content=5358
- */
-qx.OO.defineClass("qx.theme.icon.Nuvola", qx.renderer.theme.IconTheme,
-function() {
-  qx.renderer.theme.IconTheme.call(this, "Nuvola");
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFAULT SETTINGS
----------------------------------------------------------------------------
-*/
-
-qx.Settings.setDefault("imageUri", qx.Settings.getValueOfClass("qx.manager.object.AliasManager", "resourceUri") + "/icon/Nuvola");
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  REGISTER TO MANAGER
----------------------------------------------------------------------------
-*/
-
-qx.manager.object.ImageManager.getInstance().registerIconTheme(qx.Class);
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/icon/VistaInspirate.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/icon/VistaInspirate.js
deleted file mode 100644 (file)
index 131f83e..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#module(theme_icon)
-#resource(icontheme:icon/VistaInspirate)
-
-************************************************************************ */
-
-/**
- * Vista-Inspirate
- * Author: Alexandre Moore (alexandre.moore@gmail.com)
- * License: GPL & LGPL/EPL
- * Home: http://www.kde-look.org/content/show.php?content=31585
- * Comment: Based on nuoveXT by the same author
- */
-qx.OO.defineClass("qx.theme.icon.VistaInspirate", qx.renderer.theme.IconTheme,
-function() {
-  qx.renderer.theme.IconTheme.call(this, "Vista Inspirate");
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFAULT SETTINGS
----------------------------------------------------------------------------
-*/
-
-qx.Settings.setDefault("imageUri", qx.Settings.getValueOfClass("qx.manager.object.AliasManager", "resourceUri") + "/icon/VistaInspirate");
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  REGISTER TO MANAGER
----------------------------------------------------------------------------
-*/
-
-qx.manager.object.ImageManager.getInstance().registerIconTheme(qx.Class);
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/widget/Windows.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/theme/widget/Windows.js
deleted file mode 100644 (file)
index d8efdcd..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#module(theme_widget)
-#resource(widgettheme:widget/windows)
-
-************************************************************************ */
-
-/**
- * Default qooxdoo widget theme
- */
-qx.OO.defineClass("qx.theme.widget.Windows", qx.renderer.theme.WidgetTheme,
-function() {
-  qx.renderer.theme.WidgetTheme.call(this, "Windows");
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFAULT SETTINGS
----------------------------------------------------------------------------
-*/
-
-qx.Settings.setDefault("imageUri", qx.Settings.getValueOfClass("qx.manager.object.AliasManager", "resourceUri") + "/widget/windows");
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  REGISTER TO MANAGER
----------------------------------------------------------------------------
-*/
-
-qx.manager.object.ImageManager.getInstance().registerWidgetTheme(qx.Class);
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/type/Range.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/type/Range.js
deleted file mode 100644 (file)
index 0a26c78..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-/**
- * This manager is used by all objects which needs ranges like qx.ui.form.Spinner, ...
- *
- * @event change {qx.event.type.Event}
- */
-qx.OO.defineClass("qx.type.Range", qx.core.Target,
-function() {
-  qx.core.Target.call(this);
-});
-
-/** current value of the Range object */
-qx.OO.addProperty({ name : "value", type : "number", defaultValue : 0 });
-
-/** minimal value of the Range object */
-qx.OO.addProperty({ name : "min", type : "number", defaultValue : 0 });
-
-/** maximal value of the Range object */
-qx.OO.addProperty({ name : "max", type : "number", defaultValue : 100 });
-
-/** Step size for increments/decrements of the value property */
-qx.OO.addProperty({ name : "step", type : "number", defaultValue : 1 });
-
-qx.Proto._checkValue = function(propValue) {
-  return Math.max(this.getMin(), Math.min(this.getMax(), Math.floor(propValue)));
-}
-
-qx.Proto._modifyValue = function(propValue, propOldValue, propData)
-{
-  if (this.hasEventListeners("change")) {
-    this.dispatchEvent(new qx.event.type.Event("change"), true);
-  }
-
-  return true;
-}
-
-qx.Proto._checkMax = function(propValue) {
-  return Math.floor(propValue);
-}
-
-qx.Proto._modifyMax = function(propValue, propOldValue, propData)
-{
-  this.setValue(Math.min(this.getValue(), propValue));
-
-  if (this.hasEventListeners("change")) {
-    this.dispatchEvent(new qx.event.type.Event("change"), true);
-  }
-
-  return true;
-}
-
-qx.Proto._checkMin = function(propValue) {
-  return Math.floor(propValue);
-}
-
-qx.Proto._modifyMin = function(propValue, propOldValue, propData)
-{
-  this.setValue(Math.max(this.getValue(), propValue));
-
-  if (this.hasEventListeners("change")) {
-    this.dispatchEvent(new qx.event.type.Event("change"), true);
-  }
-
-  return true;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/type/Selection.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/type/Selection.js
deleted file mode 100644 (file)
index e4025be..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-
-************************************************************************ */
-
-/**
- * Helper for qx.manager.selection.SelectionManager, contains data for selections
- *
- * @param vManager {Object} a class which implements a getItemHashCode(oItem) method
- */
-qx.OO.defineClass("qx.type.Selection", qx.core.Object,
-function(vManager)
-{
-  qx.core.Object.call(this);
-
-  this._manager = vManager;
-  this.removeAll();
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  USER METHODS
----------------------------------------------------------------------------
-*/
-
-/**
- * Add an item to the selection
- *
- * @param oItem {var} item to add
- */
-qx.Proto.add = function(oItem) {
-  this._storage[this.getItemHashCode(oItem)] = oItem;
-};
-
-
-/**
- * Remove an item from the selection
- *
- * @param oItem {var} item to remove
- */
-qx.Proto.remove = function(oItem) {
-  delete this._storage[this.getItemHashCode(oItem)];
-};
-
-
-/**
- * Remove all items from the selection
- */
-qx.Proto.removeAll = function() {
-  this._storage = {};
-};
-
-
-/**
- * Check whether the selection contains a given item
- *
- * @param oItem {var} item to check for
- * @return {Boolean} whether the selection contains the item
- */
-qx.Proto.contains = function(oItem) {
-  return this.getItemHashCode(oItem) in this._storage;
-};
-
-
-/**
- * Convert selection to an array
- *
- * @return {Array} array representation of the selection
- */
-qx.Proto.toArray = function()
-{
-  var res = [];
-
-  for (var key in this._storage) {
-    res.push(this._storage[key]);
-  }
-
-  return res;
-};
-
-
-/**
- * Return first element of the Selection
- *
- * @return {var} first item of the selection
- */
-qx.Proto.getFirst = function()
-{
-  for (var key in this._storage) {
-    return this._storage[key];
-  }
-}
-
-
-/**
- * Get a string representation of the Selection. The return value can be used to compare selections.
- *
- * @return {String} string representation of the Selection
- */
-qx.Proto.getChangeValue = function()
-{
-  var sb = [];
-
-  for (var hc in this._storage) {
-    sb.push(hc);
-  }
-
-  sb.sort();
-  return sb.join(";");
-};
-
-
-/**
- * Compute a hash code for an item using the manager
- *
- * @param oItem {var} the item
- * @return {var} unique hash code for the item
- */
-qx.Proto.getItemHashCode = function(oItem) {
-  return this._manager.getItemHashCode(oItem);
-};
-
-
-/**
- * Whether the selection is empty
- *
- * @return {Boolean} whether the selection is empty
- */
-qx.Proto.isEmpty = function() {
-  return qx.lang.Object.isEmpty(this._storage);
-};
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-/**
- * Destructor
- */
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this._storage = null;
-  this._manager = null;
-
-  qx.core.Object.prototype.dispose.call(this);
-};
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/type/Version.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/type/Version.js
deleted file mode 100755 (executable)
index 01ffc70..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the qooxdoo top-level directory for details
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-   ________________________________________________________________________
-
-   This class contains code based on the following work:
-
-     SWFObject: Javascript Flash Player detection and embed script
-     http://blog.deconcept.com/swfobject/
-     Version: 1.4.4
-
-     Copyright:
-       2006 Geoff Stearns
-
-     License:
-       MIT: http://www.opensource.org/licenses/mit-license.php
-
-       Permission is hereby granted, free of charge, to any person obtaining a
-       copy of this software and associated documentation files (the "Software"),
-       to deal in the Software without restriction, including without limitation
-       the rights to use, copy, modify, merge, publish, distribute, sublicense,
-       and/or sell copies of the Software, and to permit persons to whom the
-       Software is furnished to do so, subject to the following conditions:
-
-       The above copyright notice and this permission notice shall be included in
-       all copies or substantial portions of the Software.
-
-       THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-       IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-       FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-       AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-       LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-       FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-       DEALINGS IN THE SOFTWARE.
-
-     Authors:
-       * Geoff Stearns (geoff@deconcept.com)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-/**
- * Generic handling of version numbers based on a string representation of
- * major, minor and revision flags. A incoming version object can be compared
- * with the stored version string including checks to determine if this
- * version is smaller than or identical to the one stored.
- *
- * This class contains code based on the following work:<br/>
- *   SWFObject: Javascript Flash Player detection and embed script<br/>
- *   http://blog.deconcept.com/swfobject/<br/>
- *   Version: 1.4.4
- *
- * License:<br/>
- *   MIT: http://www.opensource.org/licenses/mit-license.php<br/>
- *   For more info, please see the corresponding source file.
- *
- * @param arrVersion {Array|String} array with three elements defining major,
- *   minor and revision number or an equivalent version string separated by '.'
- */
-qx.OO.defineClass("qx.type.Version", qx.core.Object,
-function(arrVersion)
-{
-  qx.core.Object.call(this);
-
-  if (typeof arrVersion === "string") {
-    arrVersion = arrVersion.split(".");
-  }
-
-  this._major = parseInt(arrVersion[0]) || 0;
-  this._minor = parseInt(arrVersion[1]) || 0;
-  this._rev = parseInt(arrVersion[2]) || 0;
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DATA FIELDS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._major = 0;
-qx.Proto._minor = 0;
-qx.Proto._rev = 0;
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  USER VERSION ACCESS
----------------------------------------------------------------------------
-*/
-
-/**
- * Comapres the Version with another version number.
- * Returns true if this version instance has a bigger version number
- *
- * @param fv {qx.type.Version} Version number to compare with
- * @return {Boolean} whether the version instance has a bigger version numbers.
- */
-qx.Proto.versionIsValid = function(fv)
-{
-  if (this.getMajor() < fv.getMajor()) return false;
-  if (this.getMajor() > fv.getMajor()) return true;
-
-  if (this.getMinor() < fv.getMinor()) return false;
-  if (this.getMinor() > fv.getMinor()) return true;
-
-  if (this.getRev() < fv.getRev()) return false;
-
-  return true;
-};
-
-
-/**
- * Return major version number
- *
- * @return {String|Integer} major version number
- */
-qx.Proto.getMajor = function() {
-  return this._major;
-};
-
-
-/**
- * Return minor version number
- *
- * @return {String|Integer} minor version number
- */
-qx.Proto.getMinor = function() {
-  return this._minor;
-};
-
-
-/**
- * Return revision number
- *
- * @return {String|Integer} revision number
- */
-qx.Proto.getRev = function() {
-  return this._rev;
-};
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-/** Destructor */
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this._major = this._minor = this._rev = null;
-
-  qx.core.Object.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/basic/Atom.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/basic/Atom.js
deleted file mode 100644 (file)
index e65fff4..0000000
+++ /dev/null
@@ -1,401 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_basic)
-#optional(qx.ui.embed.Flash)
-
-************************************************************************ */
-
-/**
- * A multi-purpose widget used by many more complex widgets.
- *
- * The intended purpose of qx.ui.basic.Atom is to easily align the common icon-text combination in different ways.
- * This is useful for all types of buttons, menuentries, tooltips, ...
- *
- * @param vLabel {String} label of the atom
- * @param vIcon {String?null} Icon of the atom
- * @param vIconWidth {Integer?null} desired width of the icon (the icon will be scaled to this size)
- * @param vIconHeight {Integer?null} desired height of the icon (the icon will be scaled to this size)
- * @param vFlash {qx.ui.embed.Flash?null} optional flash animation for the Atom. Needs valid width and height values.
- */
-qx.OO.defineClass("qx.ui.basic.Atom", qx.ui.layout.BoxLayout,
-function(vLabel, vIcon, vIconWidth, vIconHeight, vFlash)
-{
-  qx.ui.layout.BoxLayout.call(this);
-
-  if (this.getOrientation() == null) {
-    this.setOrientation("horizontal");
-  }
-
-  // Prohibit selection
-  this.setSelectable(false);
-
-  // Disable flex support
-  this.getLayoutImpl().setEnableFlexSupport(false);
-
-  // Apply constructor arguments
-  this.setLabel(vLabel);
-
-  // Simple flash wrapper
-  if (qx.OO.isAvailable("qx.ui.embed.Flash") && vFlash != null && vIconWidth != null && vIconHeight != null && qx.ui.embed.Flash.getPlayerVersion().getMajor() > 0)
-  {
-    this._flashMode = true;
-
-    this.setIcon(vFlash);
-
-    // flash needs explicit dimensions!
-    this.setIconWidth(vIconWidth);
-    this.setIconHeight(vIconHeight);
-  }
-  else if (vIcon != null)
-  {
-    this.setIcon(vIcon);
-
-    if (vIconWidth != null) {
-      this.setIconWidth(vIconWidth);
-    }
-
-    if (vIconHeight != null) {
-      this.setIconHeight(vIconHeight);
-    }
-  }
-});
-
-qx.ui.basic.Atom.SHOW_LABEL = "label";
-qx.ui.basic.Atom.SHOW_ICON = "icon";
-qx.ui.basic.Atom.SHOW_BOTH = "both";
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/*!
-  The label/caption/text of the qx.ui.basic.Atom instance
-*/
-qx.OO.addProperty({ name : "label" });
-
-/*!
-  Any URI String supported by qx.ui.basic.Image to display a icon
-*/
-qx.OO.addProperty({ name : "icon", type : "string" });
-
-/**
- * Any URI String supported by qx.ui.basic.Image to display a disabled icon.
- * <p>
- * If not set the normal icon is shown transparently.
- */
-qx.OO.addProperty({ name : "disabledIcon", type : "string" });
-
-/*!
-  Configure the visibility of the sub elements/widgets.
-  Possible values: both, text, icon, none
-*/
-qx.OO.addProperty({ name : "show", type : "string", defaultValue : "both", possibleValues : [ "both", "label", "icon", "none", null ] });
-
-/*!
-  The position of the icon in relation to the text.
-  Only useful/needed if text and icon is configured and 'show' is configured as 'both' (default)
-*/
-qx.OO.addProperty({ name : "iconPosition", type : "string", defaultValue : "left", possibleValues : [ "top", "right", "bottom", "left" ] });
-
-/*!
-  The width of the icon.
-  If configured, this makes qx.ui.basic.Atom a little bit faster as it does not need to wait until the image loading is finished.
-*/
-qx.OO.addProperty({ name : "iconWidth", type : "number" });
-
-/*!
-  The height of the icon
-  If configured, this makes qx.ui.basic.Atom a little bit faster as it does not need to wait until the image loading is finished.
-*/
-qx.OO.addProperty({ name : "iconHeight", type : "number" });
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "atom" });
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  SUB WIDGETS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._flashMode = false;
-
-qx.Proto._labelObject = null;
-qx.Proto._iconObject = null;
-
-qx.Proto._createLabel = function()
-{
-  var l = this._labelObject = new qx.ui.basic.Label(this.getLabel());
-
-  l.setAnonymous(true);
-  l.setEnabled(this.getEnabled());
-  l.setSelectable(false);
-
-  this.addAt(l, this._iconObject ? 1 : 0);
-}
-
-qx.Proto._createIcon = function()
-{
-  if (this._flashMode && qx.OO.isAvailable("qx.ui.embed.Flash"))
-  {
-    var i = this._iconObject = new qx.ui.embed.Flash(this.getIcon());
-  }
-  else
-  {
-    var i = this._iconObject = new qx.ui.basic.Image();
-  }
-
-  i.setAnonymous(true);
-
-  this._updateIcon();
-
-  this.addAt(i, 0);
-}
-
-qx.Proto._updateIcon = function() {
-  // NOTE: We have to check whether the properties "icon" and "disabledIcon"
-  //       exist, because some child classes remove them.
-  if (this._iconObject && this.getIcon && this.getDisabledIcon) {
-    var disabledIcon = this.getDisabledIcon();
-    if (disabledIcon) {
-      if (this.getEnabled()) {
-        this._iconObject.setSource(this.getIcon());
-      } else {
-        this._iconObject.setSource(disabledIcon);
-      }
-      this._iconObject.setEnabled(true);
-    } else {
-      this._iconObject.setSource(this.getIcon());
-      this._iconObject.setEnabled(this.getEnabled());
-    }
-  }
-}
-
-qx.Proto.getLabelObject = function() {
-  return this._labelObject;
-}
-
-qx.Proto.getIconObject = function() {
-  return this._iconObject;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
-{
-  this._updateIcon();
-
-  if (this._labelObject) {
-    this._labelObject.setEnabled(propValue);
-  }
-
-  return qx.ui.layout.BoxLayout.prototype._modifyEnabled.call(this, propValue, propOldValue, propData);
-}
-
-qx.Proto._modifyIconPosition = function(propValue, propOldValue, propData)
-{
-  switch(propValue)
-  {
-    case "top":
-    case "bottom":
-      this.setOrientation("vertical");
-      this.setReverseChildrenOrder(propValue == "bottom");
-      break;
-
-    default:
-      this.setOrientation("horizontal");
-      this.setReverseChildrenOrder(propValue == "right");
-      break;
-  }
-
-  return true;
-}
-
-qx.Proto._modifyShow = function(propValue, propOldValue, propData)
-{
-  this._handleIcon();
-  this._handleLabel();
-
-  return true;
-}
-
-qx.Proto._modifyLabel = function(propValue, propOldValue, propData)
-{
-  if (this._labelObject) {
-    this._labelObject.setHtml(propValue);
-  }
-
-  this._handleLabel();
-
-  return true;
-}
-
-qx.Proto._modifyIcon = function(propValue, propOldValue, propData)
-{
-  this._updateIcon();
-  this._handleIcon();
-
-  return true;
-}
-
-qx.Proto._modifyDisabledIcon = function(propValue, propOldValue, propData)
-{
-  this._updateIcon();
-  this._handleIcon();
-
-  return true;
-}
-
-qx.Proto._modifyIconWidth = function(propValue, propOldValue, propData)
-{
-  this._iconObject.setWidth(propValue);
-  return true;
-}
-
-qx.Proto._modifyIconHeight = function(propValue, propOldValue, propData)
-{
-  this._iconObject.setHeight(propValue);
-  return true;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._iconIsVisible = false;
-qx.Proto._labelIsVisible = false;
-
-qx.Proto._handleLabel = function()
-{
-  switch(this.getShow())
-  {
-    case qx.ui.basic.Atom.SHOW_LABEL:
-    case qx.ui.basic.Atom.SHOW_BOTH:
-      this._labelIsVisible = qx.util.Validation.isValidString(this.getLabel()) || this.getLabel() instanceof qx.locale.LocalizedString;
-      break;
-
-    default:
-      this._labelIsVisible = false;
-  }
-
-  if (this._labelIsVisible)
-  {
-    this._labelObject ? this._labelObject.setDisplay(true) : this._createLabel();
-  }
-  else if (this._labelObject)
-  {
-    this._labelObject.setDisplay(false);
-  }
-}
-
-qx.Proto._handleIcon = function()
-{
-  switch(this.getShow())
-  {
-    case qx.ui.basic.Atom.SHOW_ICON:
-    case qx.ui.basic.Atom.SHOW_BOTH:
-      this._iconIsVisible = qx.util.Validation.isValidString(this.getIcon());
-      break;
-
-    default:
-      this._iconIsVisible = false;
-  }
-
-  if (this._iconIsVisible)
-  {
-    this._iconObject ? this._iconObject.setDisplay(true) : this._createIcon();
-  }
-  else if (this._iconObject)
-  {
-    this._iconObject.setDisplay(false);
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CLONE
----------------------------------------------------------------------------
-*/
-
-// Omit recursive cloning
-qx.Proto._cloneRecursive = qx.lang.Function.returnTrue;
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  if (this._iconObject)
-  {
-    this._iconObject.dispose();
-    this._iconObject = null;
-  }
-
-  if (this._labelObject)
-  {
-    this._labelObject.dispose();
-    this._labelObject = null;
-  }
-
-  return qx.ui.layout.BoxLayout.prototype.dispose.call(this);
-}
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/basic/HorizontalSpacer.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/basic/HorizontalSpacer.js
deleted file mode 100644 (file)
index d1c6ade..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_basic)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.basic.HorizontalSpacer", qx.ui.basic.Terminator,
-function()
-{
-  qx.ui.basic.Terminator.call(this);
-
-  this.setWidth("1*");
-});
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/basic/Image.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/basic/Image.js
deleted file mode 100644 (file)
index 95f5079..0000000
+++ /dev/null
@@ -1,615 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_basic)
-#embed(qx.static/image/blank.gif)
-
-************************************************************************ */
-
-/**
- * This widget represents an image.
- *
- * @event error {qx.event.type.Event}
- */
-qx.OO.defineClass("qx.ui.basic.Image", qx.ui.basic.Terminator,
-function(vSource, vWidth, vHeight)
-{
-  qx.ui.basic.Terminator.call(this);
-
-  // Reset Alt and Title
-  this.setHtmlProperty("alt", "");
-  this.setHtmlProperty("title", "");
-
-  // Apply constructor arguments
-  this.setSource(vSource || "static/image/blank.gif");
-
-  // Dimensions
-  this.setWidth(vWidth !== undefined ? vWidth : "auto");
-  this.setHeight(vHeight !== undefined ? vHeight : "auto");
-
-  // Prohibit selection
-  this.setSelectable(false);
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/*!
-  The source uri of the image.
-*/
-qx.OO.addProperty({ name : "source", type : "string" });
-
-/*!
-  The assigned preloader instance of the image.
-*/
-qx.OO.addProperty({ name : "preloader", type : "object" });
-
-/*!
-  The loading status.
-
-  True if the image is loaded correctly. False if no image is loaded
-  or the one that should be loaded is currently loading or not available.
-*/
-qx.OO.addProperty({ name : "loaded", type : "boolean", defaultValue : false });
-
-/*!
-  Should the image be maxified in it's own container?
-*/
-qx.OO.addProperty({ name : "resizeToInner", type : "boolean", defaultValue : false });
-
-/*!
-  Appearance of the widget
-*/
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "image" });
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT MAPPERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onload = function() {
-  this.setLoaded(true);
-}
-
-qx.Proto._onerror = function()
-{
-  this.debug("Could not load: " + this.getSource());
-
-  this.setLoaded(false);
-
-  if (this.hasEventListeners("error")) {
-    this.dispatchEvent(new qx.event.type.Event("error"), true);
-  }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPLAYBLE HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._beforeAppear = function()
-{
-  var vSource = this.getSource();
-
-  if (qx.util.Validation.isValidString(vSource)) {
-    qx.manager.object.ImageManager.getInstance()._sources[vSource]++;
-  }
-
-  return qx.ui.basic.Terminator.prototype._beforeAppear.call(this);
-}
-
-qx.Proto._beforeDisappear = function()
-{
-  var vSource = this.getSource();
-
-  if (qx.util.Validation.isValidString(vSource))
-  {
-    if (qx.manager.object.ImageManager.getInstance()._sources[vSource] <= 1)
-    {
-      delete qx.manager.object.ImageManager.getInstance()._sources[vSource];
-    }
-    else
-    {
-      qx.manager.object.ImageManager.getInstance()._sources[vSource]--;
-    }
-  }
-
-  return qx.ui.basic.Terminator.prototype._beforeDisappear.call(this);
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifySource = function(propValue, propOldValue, propData)
-{
-  if (propValue && typeof qx.manager.object.ImageManager.getInstance()._sources[propValue] === "undefined") {
-    qx.manager.object.ImageManager.getInstance()._sources[propValue] = 0;
-  }
-
-  if (propOldValue)
-  {
-    if (qx.manager.object.ImageManager.getInstance()._sources[propOldValue] <= 1)
-    {
-      delete qx.manager.object.ImageManager.getInstance()._sources[propOldValue];
-    }
-    else
-    {
-      qx.manager.object.ImageManager.getInstance()._sources[propOldValue]--;
-    }
-  }
-
-  if (this.isCreated())
-  {
-    if (propValue)
-    {
-      this.setPreloader(qx.manager.object.ImagePreloaderManager.getInstance().create(qx.manager.object.AliasManager.getInstance().resolvePath(propValue)));
-    }
-    else if (propOldValue)
-    {
-      this._resetContent();
-      this.setPreloader(null);
-    }
-  }
-
-  return true;
-}
-
-qx.Proto._modifyPreloader = function(propValue, propOldValue, propData)
-{
-  if (propOldValue)
-  {
-    // remove event connection
-    propOldValue.removeEventListener("load", this._onload, this);
-    propOldValue.removeEventListener("error", this._onerror, this);
-  }
-
-  if (propValue)
-  {
-    // Register to image manager
-    qx.manager.object.ImageManager.getInstance().add(this);
-
-    // Omit  here, otherwise the later setLoaded(true)
-    // will not be executed (prevent recursion)
-
-    // Changed: Use forceLoaded instead of setLoaded => should be faster
-    this.forceLoaded(false);
-
-    if (propValue.isErroneous())
-    {
-      this._onerror();
-    }
-    else if (propValue.isLoaded())
-    {
-      this.setLoaded(true);
-    }
-    else
-    {
-      propValue.addEventListener("load", this._onload, this);
-      propValue.addEventListener("error", this._onerror, this);
-    }
-  }
-  else
-  {
-    // Remove from image manager
-    qx.manager.object.ImageManager.getInstance().remove(this);
-
-    this.setLoaded(false);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyLoaded = function(propValue, propOldValue, propData)
-{
-  if (propValue && this.isCreated())
-  {
-    this._applyContent();
-  }
-  else if (!propValue)
-  {
-    this._invalidatePreferredInnerWidth();
-    this._invalidatePreferredInnerHeight();
-  }
-
-  return true;
-}
-
-qx.Proto._modifyElement = function(propValue, propOldValue, propData)
-{
-  if (propValue)
-  {
-    if (!this._image)
-    {
-      try
-      {
-        // Create Image-Node
-        // Webkit has problems with "new Image". Maybe related to "new Function" with
-        // is also not working correctly.
-        if (qx.core.Client.getInstance().isWebkit())
-        {
-          this._image = document.createElement("img");
-        }
-        else
-        {
-          this._image = new Image;
-        }
-
-        // Possible alternative for MSHTML for PNG images
-        // But it seems not to be faster
-        // this._image = document.createElement("div");
-
-        // this costs much performance, move setup to blank gif to error handling
-        // is this SSL save?
-        // this._image.src = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
-
-        this._image.style.border = "0 none";
-        this._image.style.verticalAlign = "top";
-      }
-      catch(ex)
-      {
-        this.error("Failed while creating image #1", ex);
-      }
-
-      if (!qx.core.Client.getInstance().isMshtml()) {
-        this._applyEnabled();
-      }
-    }
-
-    propValue.appendChild(this._image);
-  }
-
-  // call widget implmentation
-  qx.ui.basic.Terminator.prototype._modifyElement.call(this, propValue, propOldValue, propData);
-
-  if (propValue)
-  {
-    try
-    {
-      // initialisize preloader
-      var vSource = this.getSource();
-      if (qx.util.Validation.isValidString(vSource))
-      {
-        //this.debug("Post-Create: " + vSource);
-        this.setPreloader(qx.manager.object.ImagePreloaderManager.getInstance().create(qx.manager.object.AliasManager.getInstance().resolvePath(vSource)));
-      }
-    }
-    catch(ex)
-    {
-      this.error("Failed while creating image #2", ex);
-    }
-  }
-
-  return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CLIENT OPTIMIZED MODIFIERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._postApply = function()
-{
-  if (!this.getLoaded()) {
-    this._updateContent(qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif"));
-    return;
-  }
-
-  this._postApplyDimensions();
-  this._updateContent();
-}
-
-if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
-  {
-    if (this._image) {
-      this._applyEnabled();
-    }
-
-    return qx.ui.basic.Terminator.prototype._modifyEnabled.call(this, propValue, propOldValue, propData);
-  }
-
-  qx.Proto._updateContent = function(vSource)
-  {
-    var i = this._image;
-    var pl = this.getPreloader();
-
-    if (pl.getIsPng() && this.getEnabled())
-    {
-      i.src = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
-      i.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + (vSource || pl.getSource()) + "',sizingMethod='scale')";
-    }
-    else
-    {
-      i.src = vSource || pl.getSource();
-      i.style.filter = this.getEnabled() ? "" : "Gray() Alpha(Opacity=30)";
-    }
-  }
-
-  qx.Proto._resetContent = function()
-  {
-    var i = this._image;
-
-    i.src = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
-    i.style.filter = "";
-  }
-
-  qx.Proto._applyEnabled = qx.Proto._postApply;
-}
-else
-{
-  qx.Proto._updateContent = function(vSource) {
-    this._image.src = vSource || this.getPreloader().getSource();
-  }
-
-  qx.Proto._resetContent = function() {
-    this._image.src = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
-  }
-
-  qx.Proto._applyEnabled = function()
-  {
-    if (this._image)
-    {
-      var o = this.getEnabled() ? "" : 0.3;
-      var s = this._image.style;
-
-      s.opacity = s.KhtmlOpacity = s.MozOpacity = o;
-    }
-  }
-
-  qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
-  {
-    if (this._image) {
-      this._applyEnabled();
-    }
-
-    return qx.ui.basic.Terminator.prototype._modifyEnabled.call(this, propValue, propOldValue, propData);
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PREFERRED DIMENSIONS: INNER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._computePreferredInnerWidth = function()
-{
-  if (this.getLoaded())
-  {
-    return this.getPreloader().getWidth();
-  }
-  else if (qx.util.Validation.isValidString(this.getSource()))
-  {
-    var vPreloader = qx.manager.object.ImagePreloaderManager.getInstance().get(qx.manager.object.AliasManager.getInstance().resolvePath(this.getSource()));
-
-    if (vPreloader && vPreloader.isLoaded()) {
-      return vPreloader.getWidth();
-    }
-  }
-
-  return 0;
-}
-
-qx.Proto._computePreferredInnerHeight = function()
-{
-  if (this.getLoaded())
-  {
-    return this.getPreloader().getHeight();
-  }
-  else if (qx.util.Validation.isValidString(this.getSource()))
-  {
-    var vPreloader = qx.manager.object.ImagePreloaderManager.getInstance().get(qx.manager.object.AliasManager.getInstance().resolvePath(this.getSource()));
-
-    if (vPreloader && vPreloader.isLoaded()) {
-      return vPreloader.getHeight();
-    }
-  }
-
-  return 0;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  APPLY
----------------------------------------------------------------------------
-*/
-
-qx.Proto._applyContent = function()
-{
-  qx.ui.basic.Terminator.prototype._applyContent.call(this);
-
-  // Images load asyncron, so we need to force flushing here
-  // to get an up-to-date view when an image is loaded.
-  qx.ui.core.Widget.flushGlobalQueues();
-}
-
-if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.Proto._postApplyDimensions = function()
-  {
-    try
-    {
-      var vImageStyle = this._image.style;
-
-      if (this.getResizeToInner())
-      {
-        vImageStyle.pixelWidth = this.getInnerWidth();
-        vImageStyle.pixelHeight = this.getInnerHeight();
-      }
-      else
-      {
-        vImageStyle.pixelWidth = this.getPreferredInnerWidth();
-        vImageStyle.pixelHeight = this.getPreferredInnerHeight();
-      }
-    }
-    catch(ex)
-    {
-      this.error("postApplyDimensions failed", ex);
-    }
-  }
-}
-else
-{
-  qx.Proto._postApplyDimensions = function()
-  {
-    try
-    {
-      var vImageNode = this._image;
-
-      if (this.getResizeToInner())
-      {
-        vImageNode.width = this.getInnerWidth();
-        vImageNode.height = this.getInnerHeight();
-      }
-      else
-      {
-        vImageNode.width = this.getPreferredInnerWidth();
-        vImageNode.height = this.getPreferredInnerHeight();
-      }
-    }
-    catch(ex)
-    {
-      this.error("postApplyDimensions failed", ex);
-    }
-  }
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CHANGES IN DIMENSIONS
----------------------------------------------------------------------------
-*/
-
-if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.Proto._changeInnerWidth = function(vNew, vOld)
-  {
-    if (this.getResizeToInner()) {
-      this._image.style.pixelWidth = vNew;
-    }
-  }
-
-  qx.Proto._changeInnerHeight = function(vNew, vOld)
-  {
-    if (this.getResizeToInner()) {
-      this._image.style.pixelHeight = vNew;
-    }
-  }
-}
-else
-{
-  qx.Proto._changeInnerWidth = function(vNew, vOld)
-  {
-    if (this.getResizeToInner()) {
-      this._image.width = vNew;
-    }
-  }
-
-  qx.Proto._changeInnerHeight = function(vNew, vOld)
-  {
-    if (this.getResizeToInner()) {
-      this._image.height = vNew;
-    }
-  }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  var vPreloader = this.getPreloader();
-  if (vPreloader)
-  {
-    // remove event connection
-    vPreloader.removeEventListener("load", this._onload, this);
-    vPreloader.removeEventListener("error", this._onerror, this);
-
-    this.forcePreloader(null);
-  }
-
-  if (this._image)
-  {
-    // Remove leaking filter attribute before leaving page
-    this._image.style.filter = "";
-    this._image = null;
-  }
-
-  qx.manager.object.ImageManager.getInstance().remove(this);
-
-  return qx.ui.basic.Terminator.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/basic/Inline.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/basic/Inline.js
deleted file mode 100644 (file)
index 593495c..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_basic)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.basic.Inline", qx.ui.layout.CanvasLayout,
-function(vId)
-{
-  qx.ui.layout.CanvasLayout.call(this);
-
-  this.setStyleProperty("position", "relative");
-
-  if (vId != null) {
-    this.setInlineNodeId(vId);
-  }
-});
-
-qx.OO.addProperty({ name : "inlineNodeId", type : "string" });
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/basic/Label.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/basic/Label.js
deleted file mode 100644 (file)
index 63690a7..0000000
+++ /dev/null
@@ -1,502 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_basic)
-#require(qx.renderer.font.FontCache)
-#after(qx.renderer.font.FontObject)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.basic.Label", qx.ui.basic.Terminator,
-function(vHtml, vMnemonic)
-{
-  qx.ui.basic.Terminator.call(this);
-
-  // Apply constructor arguments
-  if (vHtml != null) {
-    this.setHtml(vHtml);
-  }
-
-  if (vMnemonic != null) {
-    this.setMnemonic(vMnemonic);
-  }
-
-  // Prohibit stretching through layout handler
-  this.setAllowStretchX(false);
-  this.setAllowStretchY(false);
-
-  // Auto Sized
-  this.auto();
-});
-
-qx.Class._measureNodes = {};
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "label" });
-
-/*!
-  Any text string which can contain HTML, too
-*/
-qx.OO.addProperty({ name : "html" });
-
-/*!
-  The alignment of the text.
-*/
-qx.OO.addProperty({ name : "textAlign", type : "string", defaultValue : "left", possibleValues : [ "left", "center", "right", "justify" ] });
-
-/*!
-  The styles which should be copied
-*/
-qx.OO.addProperty({ name : "fontPropertiesProfile", type : "string", defaultValue : "default", possibleValues : [ "none", "default", "extended", "multiline", "extendedmultiline", "all" ] });
-
-/*!
-  A single character which will be underlined inside the text.
-*/
-qx.OO.addProperty({ name : "mnemonic", type : "string" });
-
-/*!
-  The font property describes how to paint the font on the widget.
-*/
-qx.OO.addProperty({ name : "font", type : "object", instance : "qx.renderer.font.Font", convert : qx.renderer.font.FontCache, allowMultipleArguments : true });
-
-/*!
-  Wrap the text?
-*/
-qx.OO.addProperty({ name : "wrap", type : "boolean", defaultValue : true });
-
-
-
-
-
-
-
-
-
-/* ************************************************************************
-   Class data, properties and methods
-************************************************************************ */
-
-/*
----------------------------------------------------------------------------
-  DATA
----------------------------------------------------------------------------
-*/
-
-qx.ui.basic.Label.SYMBOL_ELLIPSIS = String.fromCharCode(8230);
-qx.ui.basic.Label.SUPPORT_NATIVE_ELLIPSIS = qx.core.Client.getInstance().isMshtml();
-
-// these are the properties what will be copied to the measuring frame.
-qx.ui.basic.Label._fontProperties =
-{
-  "none" : [],
-
-  "default" : ["fontFamily", "fontSize", "fontStyle", "fontWeight", "textDecoration"],
-  "extended" : ["fontFamily", "fontSize", "fontStyle", "fontWeight", "letterSpacing", "textDecoration", "textTransform", "whiteSpace", "wordSpacing"],
-
-  "multiline" : ["fontFamily", "fontSize", "fontStyle", "fontWeight", "textDecoration", "lineHeight", "wordWrap"],
-  "extendedmultiline" : ["fontFamily", "fontSize", "fontStyle", "fontWeight", "letterSpacing", "textDecoration", "textTransform", "whiteSpace", "wordSpacing", "lineHeight", "wordBreak", "wordWrap", "quotes"],
-
-  "all" : ["fontFamily", "fontSize", "fontStyle", "fontVariant", "fontWeight", "letterSpacing", "lineBreak", "lineHeight", "quotes", "textDecoration", "textIndent", "textShadow", "textTransform", "textUnderlinePosition", "whiteSpace", "wordBreak", "wordSpacing", "wordWrap"]
-}
-
-
-qx.ui.basic.Label.createMeasureNode = function(vId)
-{
-  var vNode = qx.ui.basic.Label._measureNodes[vId];
-
-  if (!vNode)
-  {
-    vNode = document.createElement("div");
-    var vStyle = vNode.style;
-
-    vStyle.width = vStyle.height = "auto";
-    vStyle.visibility = "hidden";
-    vStyle.position = "absolute";
-    vStyle.zIndex = "-1";
-
-    document.body.appendChild(vNode);
-
-    qx.ui.basic.Label._measureNodes[vId] = vNode;
-  }
-
-  return vNode;
-}
-
-
-
-
-
-
-
-
-/* ************************************************************************
-   Instance data, properties and methods
-************************************************************************ */
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._localized = false;
-qx.Proto._htmlContent = "";
-qx.Proto._htmlMode = false;
-qx.Proto._hasMnemonic = false;
-qx.Proto._mnemonicHtml = "";
-qx.Proto._mnemonicTest = null;
-
-qx.Proto._modifyHtml = function(propValue, propOldValue, propData)
-{
-  this._localized = this.getHtml() instanceof qx.locale.LocalizedString;
-  this._updateHtml();
-  return true;
-}
-
-qx.Proto._updateHtml = function()
-{
-  if (this._localized)
-  {
-    this._htmlContent = this.getHtml().toString();
-    qx.locale.Manager.getInstance().addEventListener("changeLocale", this._updateHtml, this);
-  }
-  else
-  {
-    this._htmlContent = this.getHtml() || "";
-    qx.locale.Manager.getInstance().removeEventListener("changeLocale", this._updateHtml, this);
-  }
-
-  this._htmlMode = qx.util.Validation.isValidString(this._htmlContent) && this._htmlContent.match(/<.*>/) ? true : false;
-
-  if (this._isCreated) {
-    this._applyContent();
-  }
-};
-
-
-qx.Proto._modifyTextAlign = function(propValue, propOldValue, propData)
-{
-  this.setStyleProperty("textAlign", propValue);
-  return true;
-}
-
-qx.Proto._modifyMnemonic = function(propValue, propOldValue, propData)
-{
-  this._hasMnemonic = qx.util.Validation.isValidString(propValue) && propValue.length == 1;
-
-  this._mnemonicHtml = this._hasMnemonic ? "(<span style=\"text-decoration:underline\">" + propValue + "</span>)" : "";
-  this._mnemonicTest = this._hasMnemonic ? new RegExp("^(((<([^>]|" + propValue + ")+>)|(&([^;]|" + propValue + ")+;)|[^&" + propValue + "])*)(" + propValue + ")", "i") : null;
-
-  return true;
-}
-
-qx.Proto._modifyFont = function(propValue, propOldValue, propData)
-{
-  this._invalidatePreferredInnerDimensions();
-
-  if (propValue) {
-    propValue._applyWidget(this);
-  } else if (propOldValue) {
-    propOldValue._resetWidget(this);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyWrap = function(propValue, propOldValue, propData)
-{
-  this.setStyleProperty("whiteSpace", propValue ? "normal" : "nowrap");
-  return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  HELPER FOR PREFERRED DIMENSION
----------------------------------------------------------------------------
-*/
-
-qx.Proto._computeObjectNeededDimensions = function()
-{
-  // copy styles
-  var vNode = this._copyStyles();
-
-  // prepare html
-  var vHtml = this._htmlContent;
-
-  // test for mnemonic and fix content
-  if (this._hasMnemonic && !this._mnemonicTest.test(vHtml)) {
-    vHtml += this._mnemonicHtml;
-  }
-
-  // apply html
-  vNode.innerHTML = vHtml;
-
-  // store values
-  this._cachedPreferredInnerWidth = vNode.scrollWidth;
-  this._cachedPreferredInnerHeight = vNode.scrollHeight;
-}
-
-qx.Proto._copyStyles = function()
-{
-  var vProps = this.getFontPropertiesProfile();
-  var vNode = qx.ui.basic.Label.createMeasureNode(vProps);
-  var vUseProperties=qx.ui.basic.Label._fontProperties[vProps];
-  var vUsePropertiesLength=vUseProperties.length-1;
-  var vProperty=vUseProperties[vUsePropertiesLength--];
-
-  var vStyle = vNode.style;
-  var vTemp;
-
-  if (!vProperty) {
-    return vNode;
-  }
-
-  do {
-    vStyle[vProperty] = qx.util.Validation.isValid(vTemp = this.getStyleProperty([vProperty])) ? vTemp : "";
-  } while(vProperty=vUseProperties[vUsePropertiesLength--]);
-
-  return vNode;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PREFERRED DIMENSIONS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._computePreferredInnerWidth = function()
-{
-  this._computeObjectNeededDimensions();
-  return this._cachedPreferredInnerWidth;
-}
-
-qx.Proto._computePreferredInnerHeight = function()
-{
-  this._computeObjectNeededDimensions();
-  return this._cachedPreferredInnerHeight;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  LAYOUT APPLY
----------------------------------------------------------------------------
-*/
-
-qx.Proto._postApply = function()
-{
-  var vHtml = this._htmlContent;
-  var vElement = this._getTargetNode();
-  var vMnemonicMode = 0;
-
-  if (qx.util.Validation.isInvalidString(vHtml)) {
-    vElement.innerHTML = "";
-    return;
-  }
-
-  if (this._hasMnemonic) {
-    vMnemonicMode = this._mnemonicTest.test(vHtml) ? 1 : 2;
-  }
-
-  // works only with text, don't use when wrap is enabled
-  if (!this._htmlMode && !this.getWrap())
-  {
-    switch(this._computedWidthType)
-    {
-      case qx.ui.core.Widget.TYPE_PIXEL:
-      case qx.ui.core.Widget.TYPE_PERCENT:
-
-      //carstenl: enabled truncation code for flex sizing, too. Appears to work except for the
-      //          truncation code (gecko version), which I have disabled (see below).
-      case qx.ui.core.Widget.TYPE_FLEX:
-        var vNeeded = this.getPreferredInnerWidth();
-        var vInner = this.getInnerWidth();
-
-        if (vInner < vNeeded)
-        {
-          vElement.style.overflow = "hidden";
-
-          if (qx.ui.basic.Label.SUPPORT_NATIVE_ELLIPSIS)
-          {
-            vElement.style.textOverflow = "ellipsis";
-            vHtml += this._mnemonicHtml;
-          }
-          else
-          {
-            var vMeasureNode = this._copyStyles();
-
-            var vSplitString = vHtml.split(" ");
-            var vSplitLength = vSplitString.length;
-
-            var vWordIterator = 0;
-            var vCharaterIterator = 0;
-
-            var vPost = qx.ui.basic.Label.SYMBOL_ELLIPSIS;
-
-            var vUseInnerText = true;
-            if (vMnemonicMode == 2)
-            {
-              var vPost = this._mnemonicHtml + vPost;
-              vUseInnerText = false;
-            }
-
-            // Measure Words (if more than one)
-            if (vSplitLength > 1)
-            {
-              var vSplitTemp = [];
-
-              for (vWordIterator=0; vWordIterator<vSplitLength; vWordIterator++)
-              {
-                vSplitTemp.push(vSplitString[vWordIterator]);
-
-                var vLabelText = vSplitTemp.join(" ") + vPost;
-                if (vUseInnerText) {
-                  qx.dom.Element.setTextContent(vMeasureNode, vLabelText);
-                } else {
-                  vMeasureNode.innerHTML = vLabelText;
-                }
-
-                if ((vMeasureNode.scrollWidth > vInner)
-                  /* carstenl: The following code (truncate the text to fit in the available
-                   *           space, append ellipsis to indicate truncation) did not reliably
-                   *           work in my tests. Problem was that sometimes the measurer returned
-                   *           insanely high values for short texts, like "I..." requiring 738 px.
-                   *
-                   *           I don't have time to examine this code in detail. Since all of my
-                   *           tests used flex width and the truncation code never was intended
-                   *           for this, I am disabling truncation if flex is active.
-                   */
-                    && (this._computedWidthType != qx.ui.core.Widget.TYPE_FLEX)){
-                  break;
-                }
-              }
-
-              // Remove last word which does not fit
-              vSplitTemp.pop();
-
-              // Building new temportary array
-              vSplitTemp = [ vSplitTemp.join(" ") ];
-
-              // Extracting remaining string
-              vCharaterString = vHtml.replace(vSplitTemp[0], "");
-            }
-            else
-            {
-              var vSplitTemp = [];
-              vCharaterString = vHtml;
-            }
-
-            var vCharaterLength = vCharaterString.length;
-
-            // Measure Chars
-            for (var vCharaterIterator=0; vCharaterIterator<vCharaterLength; vCharaterIterator++)
-            {
-              vSplitTemp.push(vCharaterString.charAt(vCharaterIterator));
-
-              var vLabelText = vSplitTemp.join("") + vPost;
-              if (vUseInnerText) {
-                qx.dom.Element.setTextContent(vMeasureNode, vLabelText);
-              } else {
-                vMeasureNode.innerHTML = vLabelText;
-              }
-
-              if (vMeasureNode.scrollWidth > vInner) {
-                break;
-              }
-            }
-
-            // Remove last char which does not fit
-            vSplitTemp.pop();
-
-            // Add mnemonic and ellipsis symbol
-            vSplitTemp.push(vPost);
-
-            // Building Final HTML String
-            vHtml = vSplitTemp.join("");
-          }
-
-          break;
-        }
-        else
-        {
-          vHtml += this._mnemonicHtml;
-        }
-
-        // no break here
-
-      default:
-        vElement.style.overflow = "";
-
-        if (qx.ui.basic.Label.SUPPORT_NATIVE_ELLIPSIS) {
-          vElement.style.textOverflow = "";
-        }
-    }
-  }
-
-  if (vMnemonicMode == 1)
-  {
-    // re-test: needed to make ellipsis handling correct
-    this._mnemonicTest.test(vHtml);
-    vHtml = RegExp.$1 + "<span style=\"text-decoration:underline\">" + RegExp.$7 + "</span>" + RegExp.rightContext;
-  }
-
-  return this._postApplyHtml(vElement, vHtml, vMnemonicMode);
-}
-
-
-qx.Proto._postApplyHtml = function(vElement, vHtml, vMnemonicMode)
-{
-  if (this._htmlMode || vMnemonicMode > 0)
-  {
-    vElement.innerHTML = vHtml;
-  }
-  else
-  {
-    try {
-      qx.dom.Element.setTextContent(vElement, vHtml);
-    } catch(ex) {
-      vElement.innerHTML = vHtml;
-    }
-  }
-}
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/basic/Terminator.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/basic/Terminator.js
deleted file mode 100644 (file)
index 5d06ba4..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-
-************************************************************************ */
-
-/*!
-  This widget is the last widget of the current child chain.
-*/
-qx.OO.defineClass("qx.ui.basic.Terminator", qx.ui.core.Widget,
-function() {
-  qx.ui.core.Widget.call(this);
-});
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  APPLY PADDING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._applyPaddingX = function(vParent, vChanges, vStyle)
-{
-  if (vChanges.paddingLeft) {
-    this._applyRuntimePaddingLeft(this.getPaddingLeft());
-  }
-
-  if (vChanges.paddingRight) {
-    this._applyRuntimePaddingRight(this.getPaddingRight());
-  }
-}
-
-qx.Proto._applyPaddingY = function(vParent, vChanges, vStyle)
-{
-  if (vChanges.paddingTop) {
-    this._applyRuntimePaddingTop(this.getPaddingTop());
-  }
-
-  if (vChanges.paddingBottom) {
-    this._applyRuntimePaddingBottom(this.getPaddingBottom());
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  APPLY CONTENT
----------------------------------------------------------------------------
-*/
-
-qx.Proto._applyContent = function()
-{
-  // Small optimization: Only add innerPreferred jobs
-  // if we don't have a static width
-  if (this._computedWidthTypePixel) {
-    this._cachedPreferredInnerWidth = null;
-  } else {
-    this._invalidatePreferredInnerWidth();
-  }
-
-  // Small optimization: Only add innerPreferred jobs
-  // if we don't have a static height
-  if (this._computedHeightTypePixel) {
-    this._cachedPreferredInnerHeight = null;
-  } else {
-    this._invalidatePreferredInnerHeight();
-  }
-
-  // add load job
-  if (this._initialLayoutDone) {
-    this.addToJobQueue("load");
-  }
-}
-
-qx.Proto._layoutPost = function(vChanges) {
-  if (vChanges.initial || vChanges.load || vChanges.width || vChanges.height) {
-    this._postApply();
-  }
-}
-
-qx.Proto._postApply = qx.lang.Function.returnTrue;
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  BOX DIMENSION HELPERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._computeBoxWidthFallback = qx.Proto.getPreferredBoxWidth;
-qx.Proto._computeBoxHeightFallback = qx.Proto.getPreferredBoxHeight;
-
-qx.Proto._computePreferredInnerWidth = qx.lang.Function.returnZero;
-qx.Proto._computePreferredInnerHeight = qx.lang.Function.returnZero;
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  METHODS TO GIVE THE LAYOUTERS INFORMATIONS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._isWidthEssential = function()
-{
-  if (!this._computedLeftTypeNull && !this._computedRightTypeNull) {
-    return true;
-  }
-
-  if (!this._computedWidthTypeNull && !this._computedWidthTypeAuto) {
-    return true;
-  }
-
-  if (!this._computedMinWidthTypeNull && !this._computedMinWidthTypeAuto) {
-    return true;
-  }
-
-  if (!this._computedMaxWidthTypeNull && !this._computedMaxWidthTypeAuto) {
-    return true;
-  }
-
-  if (this._borderElement) {
-    return true;
-  }
-
-  return false;
-}
-
-qx.Proto._isHeightEssential = function()
-{
-  if (!this._computedTopTypeNull && !this._computedBottomTypeNull) {
-    return true;
-  }
-
-  if (!this._computedHeightTypeNull && !this._computedHeightTypeAuto) {
-    return true;
-  }
-
-  if (!this._computedMinHeightTypeNull && !this._computedMinHeightTypeAuto) {
-    return true;
-  }
-
-  if (!this._computedMaxHeightTypeNull && !this._computedMaxHeightTypeAuto) {
-    return true;
-  }
-
-  if (this._borderElement) {
-    return true;
-  }
-
-  return false;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/basic/VerticalSpacer.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/basic/VerticalSpacer.js
deleted file mode 100644 (file)
index 32f31f2..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_basic)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.basic.VerticalSpacer", qx.ui.basic.Terminator,
-function()
-{
-  qx.ui.basic.Terminator.call(this);
-
-  this.setHeight("1*");
-});
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/ColorPopup.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/ColorPopup.js
deleted file mode 100644 (file)
index b46e1a5..0000000
+++ /dev/null
@@ -1,395 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-
-************************************************************************ */
-
-/*!
-  A color popup
-*/
-qx.OO.defineClass("qx.ui.component.ColorPopup", qx.ui.popup.Popup,
-function(tables)
-{
-  qx.ui.popup.Popup.call(this);
-
-  this.setPadding(4);
-  this.auto();
-  this.setBorder(qx.renderer.border.BorderPresets.getInstance().outset);
-  this.setBackgroundColor("threedface");
-
-  this._tables = tables;
-
-  this._createLayout();
-  this._createAutoBtn();
-  this._createBoxes();
-  this._createPreview();
-  this._createSelectorBtn();
-
-  this.addEventListener("beforeAppear", this._onBeforeAppear);
-});
-
-qx.OO.addProperty({ name : "value", type : "object", instance : "qx.renderer.color.Color" });
-
-qx.OO.addProperty({ name : "red", type : "number", defaultValue : 0 });
-qx.OO.addProperty({ name : "green", type : "number", defaultValue : 0 });
-qx.OO.addProperty({ name : "blue", type : "number", defaultValue : 0 });
-
-qx.Proto._minZIndex = 1e5;
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CREATOR SUBS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._createLayout = function()
-{
-  this._layout = new qx.ui.layout.VerticalBoxLayout;
-  this._layout.setLocation(0, 0);
-  this._layout.auto();
-  this._layout.setSpacing(2);
-
-  this.add(this._layout);
-}
-
-qx.Proto._createAutoBtn = function()
-{
-  this._automaticBtn = new qx.ui.form.Button(this.tr("Automatic"));
-  this._automaticBtn.setWidth(null);
-  this._automaticBtn.setAllowStretchX(true);
-  this._automaticBtn.addEventListener("execute", this._onAutomaticBtnExecute, this);
-
-  this._layout.add(this._automaticBtn);
-}
-
-qx.Proto._recentTableId = "recent";
-qx.Proto._fieldWidth = 14;
-qx.Proto._fieldHeight = 14;
-qx.Proto._fieldNumber = 12;
-
-qx.Proto._createBoxes = function()
-{
-  this._boxes = {};
-
-  var tables = this._tables;
-  var table, box, boxLayout, field;
-
-  for (var tableId in tables)
-  {
-    table = tables[tableId];
-
-    box = new qx.ui.groupbox.GroupBox(table.label);
-    box.setHeight("auto");
-
-    this._boxes[tableId] = box;
-    this._layout.add(box);
-
-    boxLayout = new qx.ui.layout.HorizontalBoxLayout;
-    boxLayout.setLocation(0, 0);
-    boxLayout.setSpacing(1);
-    boxLayout.auto();
-    box.add(boxLayout);
-
-    for (var i=0; i<this._fieldNumber; i++)
-    {
-      field = new qx.ui.basic.Terminator;
-
-      field.setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
-      field.setBackgroundColor(table.values[i] || null);
-      field.setDimension(this._fieldWidth, this._fieldHeight);
-
-      field.addEventListener("mousedown", this._onFieldMouseDown, this);
-      field.addEventListener("mouseover", this._onFieldMouseOver, this);
-
-      boxLayout.add(field);
-    }
-  }
-}
-
-qx.Proto._createPreview = function()
-{
-  this._previewBox = new qx.ui.groupbox.GroupBox(this.tr("Preview (Old/New)"));
-  this._previewLayout = new qx.ui.layout.HorizontalBoxLayout;
-  this._selectedPreview = new qx.ui.basic.Terminator;
-  this._currentPreview = new qx.ui.basic.Terminator;
-
-  this._previewLayout.setHeight("auto");
-  this._previewLayout.setWidth("100%");
-  this._previewLayout.setSpacing(4);
-  this._previewLayout.add(this._selectedPreview, this._currentPreview);
-
-  this._previewBox.setHeight("auto");
-  this._previewBox.add(this._previewLayout);
-
-  this._layout.add(this._previewBox);
-
-  this._selectedPreview.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-  this._selectedPreview.setWidth("1*");
-  this._selectedPreview.setHeight(24);
-
-  this._currentPreview.setBorder(qx.renderer.border.BorderPresets.getInstance().inset);
-  this._currentPreview.setWidth("1*");
-  this._currentPreview.setHeight(24);
-}
-
-qx.Proto._createSelectorBtn = function()
-{
-  this._selectorButton = new qx.ui.form.Button(this.tr("Open ColorSelector"));
-  this._selectorButton.setWidth(null);
-  this._selectorButton.setAllowStretchX(true);
-  this._selectorButton.addEventListener("execute", this._onSelectorButtonExecute, this);
-
-  this._layout.add(this._selectorButton);
-}
-
-qx.Proto._createColorSelector = function()
-{
-  if (this._colorSelector) {
-    return;
-  }
-
-  this._colorSelectorWindow = new qx.ui.window.Window(this.tr("Color Selector"));
-  this._colorSelectorWindow.setMinWidth(null);
-  this._colorSelectorWindow.setMinHeight(null);
-  this._colorSelectorWindow.setResizeable(false);
-  this._colorSelectorWindow.auto();
-
-  this._colorSelector = new qx.ui.component.ColorSelector;
-  this._colorSelector.setBorder(null);
-  this._colorSelector.setLocation(0, 0);
-  this._colorSelector.addEventListener("dialogok", this._onColorSelectorOk, this);
-  this._colorSelector.addEventListener("dialogcancel", this._onColorSelectorCancel, this);
-
-  this._colorSelectorWindow.add(this._colorSelector);
-  this._colorSelectorWindow.addToDocument();
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyValue = function(propValue, propOldValue, propData)
-{
-  if (propValue === null)
-  {
-    this.setRed(null);
-    this.setGreen(null);
-    this.setBlue(null);
-  }
-  else
-  {
-    this.setRed(propValue.getRed());
-    this.setGreen(propValue.getGreen());
-    this.setBlue(propValue.getBlue());
-  };
-
-  this._selectedPreview.setBackgroundColor(propValue);
-  this._rotatePreviousColors();
-
-  return true;
-}
-
-qx.Proto._rotatePreviousColors = function()
-{
-  var vRecentTable = this._tables[this._recentTableId].values;
-  var vRecentBox = this._boxes[this._recentTableId];
-
-  if (!vRecentTable) {
-    return;
-  }
-
-  var newValue = this.getValue();
-
-  if (!newValue) {
-    return;
-  }
-
-  // use style compatible value (like the incoming value from the user or as RGB value string)
-  newValue = newValue.getStyle();
-
-  // Modifying incoming table
-  var vIndex = vRecentTable.indexOf(newValue);
-
-  if (vIndex != -1) {
-    qx.lang.Array.removeAt(vRecentTable, vIndex);
-  } else if (vRecentTable.length == this._fieldNumber) {
-    vRecentTable.shift();
-  }
-
-  vRecentTable.push(newValue);
-
-  // Sync to visible fields
-  var vFields = vRecentBox.getFrameObject().getFirstChild().getChildren();
-  for (var i=0; i<vFields.length; i++) {
-    vFields[i].setBackgroundColor(vRecentTable[i] || null);
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onFieldMouseDown = function(e)
-{
-  var vValue = this._currentPreview.getBackgroundColor();
-  this.setValue(vValue);
-
-  if (vValue) {
-    this.hide();
-  }
-}
-
-qx.Proto._onFieldMouseOver = function(e) {
-  this._currentPreview.setBackgroundColor(e.getTarget().getBackgroundColor());
-}
-
-qx.Proto._onAutomaticBtnExecute = function(e) {
-  this.setValue(null);
-  this.hide();
-}
-
-qx.Proto._onSelectorButtonExecute = function(e)
-{
-  this._createColorSelector();
-
-  this._colorSelectorWindow.setTop(qx.html.Location.getPageBoxTop(this._selectorButton.getElement()) + 10);
-  this._colorSelectorWindow.setLeft(qx.html.Location.getPageBoxLeft(this._selectorButton.getElement()) + 100);
-
-  this.hide();
-
-  this._colorSelectorWindow.open();
-}
-
-qx.Proto._onColorSelectorOk = function(e)
-{
-  var sel = this._colorSelector;
-  this.setValue(qx.renderer.color.ColorCache([sel.getRed(), sel.getGreen(), sel.getBlue()]));
-  this._colorSelectorWindow.close();
-}
-
-qx.Proto._onColorSelectorCancel = function(e) {
-  this._colorSelectorWindow.close();
-}
-
-qx.Proto._onBeforeAppear = function(e) {
-  this._currentPreview.setBackgroundColor(null);
-}
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this._tables = null;
-  this._boxes = null;
-
-  if (this._layout)
-  {
-    this._layout.dispose();
-    this._layout = null;
-  }
-
-  if (this._automaticBtn)
-  {
-    this._automaticBtn.dispose();
-    this._automaticBtn = null;
-  }
-
-  if (this._previewBox)
-  {
-    this._previewBox.dispose();
-    this._previewBox = null;
-  }
-
-  if (this._previewLayout)
-  {
-    this._previewLayout.dispose();
-    this._previewLayout = null;
-  }
-
-  if (this._selectedPreview)
-  {
-    this._selectedPreview.dispose();
-    this._selectedPreview = null;
-  }
-
-  if (this._currentPreview)
-  {
-    this._currentPreview.dispose();
-    this._currentPreview = null;
-  }
-
-  if (this._selectorButton)
-  {
-    this._selectorButton.dispose();
-    this._selectorButton = null;
-  }
-
-  if (this._colorSelectorWindow)
-  {
-    this._colorSelectorWindow.dispose();
-    this._colorSelectorWindow = null;
-  }
-
-  if (this._colorSelector)
-  {
-    this._colorSelector.dispose();
-    this._colorSelector = null;
-  }
-
-  return qx.ui.popup.Popup.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/ColorSelector.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/ColorSelector.js
deleted file mode 100644 (file)
index caf1dca..0000000
+++ /dev/null
@@ -1,1318 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#embed(qx.widgettheme/colorselector/*)
-#embed(qx.icontheme/16/actions/dialog-cancel.png)
-#embed(qx.icontheme/16/actions/dialog-ok.png)
-#embed(qx.static/image/dotted_white.gif)
-
-************************************************************************ */
-
-/**
- * A typical color selector as known from native applications.
- *
- * Includes support for RGB and HSB color areas.
- *
- * @event dialogok {qx.event.type.Event}
- * @event dialogcancel {qx.event.type.Event}
- */
-qx.OO.defineClass("qx.ui.component.ColorSelector", qx.ui.layout.VerticalBoxLayout,
-function(vPreviousRed, vPreviousGreen, vPreviousBlue)
-{
-  qx.ui.layout.VerticalBoxLayout.call(this);
-
-  // ********************************************
-  //   CREATE CHILDREN
-  // ********************************************
-
-  // 1. Base Structure (Vertical Split)
-  this._createControlBar();
-  this._createButtonBar();
-
-  // 2. Panes (Horizontal Split)
-  this._createControlPane();
-  this._createHueSaturationPane();
-  this._createBrightnessPane();
-
-  // 3. Control Pane Content
-  this._createPresetFieldSet();
-  this._createInputFieldSet();
-  this._createPreviewFieldSet();
-
-  // 4. Input FieldSet Content
-  this._createHexField();
-  this._createRgbSpinner();
-  this._createHsbSpinner();
-
-  // 5. Preview FieldSet Content
-  this._createPreviewContent();
-
-
-  // ********************************************
-  //   INIT COLORS
-  // ********************************************
-
-  if (arguments.length == 3) {
-    this.setPreviousColor(vPreviousRed, vPreviousGreen, vPreviousBlue);
-  }
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "colorselector" });
-
-qx.OO.addProperty({ name : "red", type : "number", defaultValue : 255 });
-qx.OO.addProperty({ name : "green", type : "number", defaultValue : 255 });
-qx.OO.addProperty({ name : "blue", type : "number", defaultValue : 255 });
-
-qx.OO.addProperty({ name : "hue", type : "number", defaultValue : 0 });
-qx.OO.addProperty({ name : "saturation", type : "number", defaultValue : 0 });
-qx.OO.addProperty({ name : "brightness", type : "number", defaultValue : 100 });
-
-/*
----------------------------------------------------------------------------
-  LOCALIZATION SUPPORT
----------------------------------------------------------------------------
-*/
-
-qx.Settings.setDefault("labelOK", "OK");
-qx.Settings.setDefault("labelCancel", "Cancel");
-qx.Settings.setDefault("labelPresets", "Presets");
-qx.Settings.setDefault("labelDetails", "Details");
-qx.Settings.setDefault("labelPreview", "Preview (Old/New)");
-qx.Settings.setDefault("labelRGB", "RGB");
-qx.Settings.setDefault("labelHSB", "HSB");
-qx.Settings.setDefault("labelHex", "Hex");
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CONTEXT HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._updateContext = null;
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CREATE #1: BASE STRUCTURE
----------------------------------------------------------------------------
-*/
-
-qx.Proto._createControlBar = function()
-{
-  this._controlBar = new qx.ui.layout.HorizontalBoxLayout;
-  this._controlBar.setHeight("auto");
-  this._controlBar.setParent(this);
-}
-
-qx.Proto._createButtonBar = function()
-{
-  this._btnbar = new qx.ui.layout.HorizontalBoxLayout;
-  this._btnbar.setHeight("auto");
-  this._btnbar.setSpacing(4);
-  this._btnbar.setHorizontalChildrenAlign("right");
-  this._btnbar.setPadding(2, 4);
-  this.add(this._btnbar);
-
-  this._btncancel = new qx.ui.form.Button(this.tr("Cancel"), "icon/16/actions/dialog-cancel.png");
-  this._btnok = new qx.ui.form.Button(this.tr("OK"), "icon/16/actions/dialog-ok.png");
-
-  this._btncancel.addEventListener("execute", this._onButtonCancelExecute, this);
-  this._btnok.addEventListener("execute", this._onButtonOkExecute, this);
-
-  this._btnbar.add(this._btncancel, this._btnok);
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CREATE #2: PANES
----------------------------------------------------------------------------
-*/
-
-qx.Proto._createControlPane = function()
-{
-  this._controlPane = new qx.ui.layout.VerticalBoxLayout;
-  this._controlPane.setWidth("auto");
-  this._controlPane.setPadding(4);
-  this._controlPane.setPaddingBottom(7);
-  this._controlPane.setParent(this._controlBar);
-}
-
-qx.Proto._createHueSaturationPane = function()
-{
-  this._hueSaturationPane = new qx.ui.layout.CanvasLayout;
-  this._hueSaturationPane.setWidth("auto");
-  this._hueSaturationPane.setPadding(6, 4);
-  this._hueSaturationPane.setParent(this._controlBar);
-
-  this._hueSaturationPane.addEventListener("mousewheel", this._onHueSaturationPaneMouseWheel, this);
-
-  this._hueSaturationField = new qx.ui.basic.Image("widget/colorselector/huesaturation-field.jpg");
-  this._hueSaturationField.setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
-  this._hueSaturationField.setMargin(5);
-  this._hueSaturationField.setParent(this._hueSaturationPane);
-
-  this._hueSaturationField.addEventListener("mousedown", this._onHueSaturationFieldMouseDown, this);
-
-  this._hueSaturationHandle = new qx.ui.basic.Image("widget/colorselector/huesaturation-handle.gif");
-  this._hueSaturationHandle.setLocation(0, 256);
-  this._hueSaturationHandle.setParent(this._hueSaturationPane);
-
-  this._hueSaturationHandle.addEventListener("mousedown", this._onHueSaturationHandleMouseDown, this);
-  this._hueSaturationHandle.addEventListener("mouseup", this._onHueSaturationHandleMouseUp, this);
-  this._hueSaturationHandle.addEventListener("mousemove", this._onHueSaturationHandleMouseMove, this);
-}
-
-qx.Proto._createBrightnessPane = function()
-{
-  this._brightnessPane = new qx.ui.layout.CanvasLayout;
-  this._brightnessPane.setWidth("auto");
-  this._brightnessPane.setPadding(6, 4);
-  this._brightnessPane.setParent(this._controlBar);
-
-  this._brightnessPane.addEventListener("mousewheel", this._onBrightnessPaneMouseWheel, this);
-
-  this._brightnessField = new qx.ui.basic.Image("widget/colorselector/brightness-field.jpg");
-  this._brightnessField.setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
-  this._brightnessField.setMargin(5, 7);
-  this._brightnessField.setParent(this._brightnessPane);
-
-  this._brightnessField.addEventListener("mousedown", this._onBrightnessFieldMouseDown, this);
-
-  this._brightnessHandle = new qx.ui.basic.Image("widget/colorselector/brightness-handle.gif");
-  this._brightnessHandle.setLocation(0, 0);
-  this._brightnessHandle.setParent(this._brightnessPane);
-
-  this._brightnessHandle.addEventListener("mousedown", this._onBrightnessHandleMouseDown, this);
-  this._brightnessHandle.addEventListener("mouseup", this._onBrightnessHandleMouseUp, this);
-  this._brightnessHandle.addEventListener("mousemove", this._onBrightnessHandleMouseMove, this);
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CREATE #3: CONTROL PANE CONTENT
----------------------------------------------------------------------------
-*/
-
-qx.Proto._createPresetFieldSet = function()
-{
-  this._presetFieldSet = new qx.ui.groupbox.GroupBox(this.tr("Presets"));
-  this._presetFieldSet.setHeight("auto");
-  this._presetFieldSet.setParent(this._controlPane);
-
-  this._presetGrid = new qx.ui.layout.GridLayout;
-  this._presetGrid.setHorizontalSpacing(2);
-  this._presetGrid.setVerticalSpacing(2);
-  this._presetGrid.setColumnCount(11);
-  this._presetGrid.setRowCount(4);
-  this._presetGrid.setColumnWidth(0, 18);
-  this._presetGrid.setColumnWidth(1, 18);
-  this._presetGrid.setColumnWidth(2, 18);
-  this._presetGrid.setColumnWidth(3, 18);
-  this._presetGrid.setColumnWidth(4, 18);
-  this._presetGrid.setColumnWidth(5, 18);
-  this._presetGrid.setColumnWidth(6, 18);
-  this._presetGrid.setColumnWidth(7, 18);
-  this._presetGrid.setColumnWidth(8, 18);
-  this._presetGrid.setColumnWidth(9, 18);
-
-  this._presetGrid.setRowHeight(0, 16);
-  this._presetGrid.setRowHeight(1, 16);
-  this._presetFieldSet.add(this._presetGrid);
-
-  this._presetTable = [ "maroon", "red", "orange", "yellow", "olive", "purple", "fuchsia", "lime", "green", "navy", "blue", "aqua", "teal", "black", "#333", "#666", "#999", "#BBB", "#EEE", "white" ];
-
-  var colorField;
-
-  for (var i=0; i<2; i++)
-  {
-    for (var j=0; j<10; j++)
-    {
-      colorField = new qx.ui.basic.Terminator;
-      colorField.setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
-      colorField.setBackgroundColor(this._presetTable[i*10+j]);
-      colorField.addEventListener("mousedown", this._onColorFieldClick, this);
-
-      this._presetGrid.add(colorField, j, i);
-    }
-  }
-}
-
-qx.Proto._createInputFieldSet = function()
-{
-  this._inputFieldSet = new qx.ui.groupbox.GroupBox(this.tr("Details"));
-  this._inputFieldSet.setHeight("auto");
-  this._inputFieldSet.setParent(this._controlPane);
-
-  this._inputLayout = new qx.ui.layout.VerticalBoxLayout;
-  this._inputLayout.setHeight("auto");
-  this._inputLayout.setSpacing(10);
-  this._inputLayout.setParent(this._inputFieldSet.getFrameObject());
-}
-
-qx.Proto._createPreviewFieldSet = function()
-{
-  this._previewFieldSet = new qx.ui.groupbox.GroupBox(this.tr("Preview (Old/New)"));
-  this._previewFieldSet.setHeight("1*");
-  this._previewFieldSet.setParent(this._controlPane);
-
-  this._previewLayout = new qx.ui.layout.HorizontalBoxLayout;
-  this._previewLayout.setHeight("100%");
-  this._previewLayout.setLocation(0, 0);
-  this._previewLayout.setRight(0);
-  this._previewLayout.setSpacing(10);
-  this._previewLayout.setParent(this._previewFieldSet.getFrameObject());
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CREATE #4: INPUT FIELDSET CONTENT
----------------------------------------------------------------------------
-*/
-
-qx.Proto._createHexField = function()
-{
-  this._hexLayout = new qx.ui.layout.HorizontalBoxLayout;
-  this._hexLayout.setHeight("auto");
-  this._hexLayout.setSpacing(4);
-  this._hexLayout.setVerticalChildrenAlign("middle");
-  this._hexLayout.setParent(this._inputLayout);
-
-  this._hexLabel = new qx.ui.basic.Label(this.tr("Hex"));
-  this._hexLabel.setWidth(25);
-  this._hexLabel.setParent(this._hexLayout);
-
-  this._hexHelper = new qx.ui.basic.Label("#");
-  this._hexHelper.setParent(this._hexLayout);
-
-  this._hexField = new qx.ui.form.TextField("FFFFFF");
-  this._hexField.setWidth(50);
-  this._hexField.setFont('11px "Bitstream Vera Sans Mono", monospace');
-  this._hexField.setParent(this._hexLayout);
-
-  this._hexField.addEventListener("changeValue", this._onHexFieldChange, this);
-}
-
-qx.Proto._createRgbSpinner = function()
-{
-  this._rgbSpinLayout = new qx.ui.layout.HorizontalBoxLayout;
-  this._rgbSpinLayout.setHeight("auto");
-  this._rgbSpinLayout.setSpacing(4);
-  this._rgbSpinLayout.setVerticalChildrenAlign("middle");
-  this._rgbSpinLayout.setParent(this._inputLayout);
-
-  this._rgbSpinLabel = new qx.ui.basic.Label(this.tr("RGB"));
-  this._rgbSpinLabel.setWidth(25);
-  this._rgbSpinLabel.setParent(this._rgbSpinLayout);
-
-  this._rgbSpinRed = new qx.ui.form.Spinner(0, 255, 255);
-  this._rgbSpinRed.setWidth(50);
-
-  this._rgbSpinGreen = new qx.ui.form.Spinner(0, 255, 255);
-  this._rgbSpinGreen.setWidth(50);
-
-  this._rgbSpinBlue = new qx.ui.form.Spinner(0, 255, 255);
-  this._rgbSpinBlue.setWidth(50);
-
-  this._rgbSpinLayout.add(this._rgbSpinRed, this._rgbSpinGreen, this._rgbSpinBlue);
-
-  this._rgbSpinRed.addEventListener("change", this._setRedFromSpinner, this);
-  this._rgbSpinGreen.addEventListener("change", this._setGreenFromSpinner, this);
-  this._rgbSpinBlue.addEventListener("change", this._setBlueFromSpinner, this);
-}
-
-qx.Proto._createHsbSpinner = function()
-{
-  this._hsbSpinLayout = new qx.ui.layout.HorizontalBoxLayout;
-  this._hsbSpinLayout.setHeight("auto");
-  this._hsbSpinLayout.setSpacing(4);
-  this._hsbSpinLayout.setVerticalChildrenAlign("middle");
-  this._hsbSpinLayout.setParent(this._inputLayout);
-
-  this._hsbSpinLabel = new qx.ui.basic.Label(this.tr("HSB"));
-  this._hsbSpinLabel.setWidth(25);
-  this._hsbSpinLayout.add(this._hsbSpinLabel);
-
-  this._hsbSpinHue = new qx.ui.form.Spinner(0, 0, 360);
-  this._hsbSpinHue.setWidth(50);
-
-  this._hsbSpinSaturation = new qx.ui.form.Spinner(0, 0, 100);
-  this._hsbSpinSaturation.setWidth(50);
-
-  this._hsbSpinBrightness = new qx.ui.form.Spinner(0, 100, 100);
-  this._hsbSpinBrightness.setWidth(50);
-
-  this._hsbSpinLayout.add(this._hsbSpinHue, this._hsbSpinSaturation, this._hsbSpinBrightness);
-
-  this._hsbSpinHue.addEventListener("change", this._setHueFromSpinner, this);
-  this._hsbSpinSaturation.addEventListener("change", this._setSaturationFromSpinner, this);
-  this._hsbSpinBrightness.addEventListener("change", this._setBrightnessFromSpinner, this);
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CREATE #5: PREVIEW CONTENT
----------------------------------------------------------------------------
-*/
-
-qx.Proto._createPreviewContent = function()
-{
-  this._oldColorPreview = new qx.ui.basic.Terminator;
-  this._oldColorPreview.setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
-  this._oldColorPreview.setWidth("1*");
-  this._oldColorPreview.setBackgroundImage("static/image/dotted_white.gif");
-  this._oldColorPreview.setParent(this._previewLayout);
-
-  this._newColorPreview = new qx.ui.basic.Terminator;
-  this._newColorPreview.setBorder(qx.renderer.border.BorderPresets.getInstance().thinInset);
-  this._newColorPreview.setWidth("1*");
-  this._newColorPreview.setBackgroundColor("white");
-  this._newColorPreview.setParent(this._previewLayout);
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  RGB MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyRed = function(propValue, propOldValue, propData)
-{
-  if (this._updateContext === null) {
-    this._updateContext = "redModifier";
-  }
-
-  if (this._updateContext !== "rgbSpinner") {
-    this._rgbSpinRed.setValue(propValue);
-  }
-
-  if (this._updateContext !== "hexField") {
-    this._setHexFromRgb();
-  }
-
-  switch(this._updateContext)
-  {
-    case "rgbSpinner":
-    case "hexField":
-    case "redModifier":
-      this._setHueFromRgb();
-  }
-
-  this._setPreviewFromRgb();
-
-  if (this._updateContext === "redModifier") {
-    this._updateContext = null;
-  }
-
-  return true;
-}
-
-qx.Proto._modifyGreen = function(propValue, propOldValue, propData)
-{
-  if (this._updateContext === null) {
-    this._updateContext = "greenModifier";
-  }
-
-  if (this._updateContext !== "rgbSpinner") {
-    this._rgbSpinGreen.setValue(propValue);
-  }
-
-  if (this._updateContext !== "hexField") {
-    this._setHexFromRgb();
-  }
-
-  switch(this._updateContext)
-  {
-    case "rgbSpinner":
-    case "hexField":
-    case "greenModifier":
-      this._setHueFromRgb();
-  }
-
-  this._setPreviewFromRgb();
-
-  if (this._updateContext === "greenModifier") {
-    this._updateContext = null;
-  }
-
-  return true;
-}
-
-qx.Proto._modifyBlue = function(propValue, propOldValue, propData)
-{
-  if (this._updateContext === null) {
-    this._updateContext = "blueModifier";
-  }
-
-  if (this._updateContext !== "rgbSpinner") {
-    this._rgbSpinBlue.setValue(propValue);
-  }
-
-  if (this._updateContext !== "hexField") {
-    this._setHexFromRgb();
-  }
-
-  switch(this._updateContext)
-  {
-    case "rgbSpinner":
-    case "hexField":
-    case "blueModifier":
-      this._setHueFromRgb();
-  }
-
-  this._setPreviewFromRgb();
-
-  if (this._updateContext === "blueModifier") {
-    this._updateContext = null;
-  }
-
-  return true;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  HSB MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyHue = function(propValue, propOldValue, propData)
-{
-  if (this._updateContext === null) {
-    this._updateContext = "hueModifier";
-  }
-
-  if (this._updateContext !== "hsbSpinner") {
-    this._hsbSpinHue.setValue(propValue);
-  }
-
-  if (this._updateContext !== "hueSaturationField")
-  {
-    if (this._hueSaturationHandle.isCreated())
-    {
-      this._hueSaturationHandle._applyRuntimeLeft(Math.round(propValue / 1.40625) + this._hueSaturationPane.getPaddingLeft());
-    }
-    else
-    {
-      this._hueSaturationHandle.setLeft(Math.round(propValue / 1.40625));
-    }
-  }
-
-  switch(this._updateContext)
-  {
-    case "hsbSpinner":
-    case "hueSaturationField":
-    case "hueModifier":
-      this._setRgbFromHue();
-  }
-
-  if (this._updateContext === "hueModifier") {
-    this._updateContext = null;
-  }
-
-  return true;
-}
-
-qx.Proto._modifySaturation = function(propValue, propOldValue, propData)
-{
-  if (this._updateContext === null) {
-    this._updateContext = "saturationModifier";
-  }
-
-  if (this._updateContext !== "hsbSpinner") {
-    this._hsbSpinSaturation.setValue(propValue);
-  }
-
-  if (this._updateContext !== "hueSaturationField")
-  {
-    if (this._hueSaturationHandle.isCreated())
-    {
-      this._hueSaturationHandle._applyRuntimeTop(256 - Math.round(propValue * 2.56) + this._hueSaturationPane.getPaddingTop());
-    }
-    else
-    {
-      this._hueSaturationHandle.setTop(256 - Math.round(propValue * 2.56));
-    }
-  }
-
-  switch(this._updateContext)
-  {
-    case "hsbSpinner":
-    case "hueSaturationField":
-    case "saturationModifier":
-      this._setRgbFromHue();
-  }
-
-  if (this._updateContext === "saturationModifier") {
-    this._updateContext = null;
-  }
-
-  return true;
-}
-
-qx.Proto._modifyBrightness = function(propValue, propOldValue, propData)
-{
-  if (this._updateContext === null) {
-    this._updateContext = "brightnessModifier";
-  }
-
-  if (this._updateContext !== "hsbSpinner") {
-    this._hsbSpinBrightness.setValue(propValue);
-  }
-
-  if (this._updateContext !== "brightnessField")
-  {
-    var topValue = 256 - Math.round(propValue * 2.56);
-
-    if (this._brightnessHandle.isCreated())
-    {
-      this._brightnessHandle._applyRuntimeTop(topValue + this._brightnessPane.getPaddingTop());
-    }
-    else
-    {
-      this._brightnessHandle.setTop(topValue);
-    }
-  }
-
-  switch(this._updateContext)
-  {
-    case "hsbSpinner":
-    case "brightnessField":
-    case "brightnessModifier":
-      this._setRgbFromHue();
-  }
-
-  if (this._updateContext === "brightnessModifier") {
-    this._updateContext = null;
-  }
-
-  return true;
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  BRIGHTNESS IMPLEMENTATION
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onBrightnessHandleMouseDown = function(e)
-{
-  // Activate Capturing
-  this._brightnessHandle.setCapture(true);
-
-  // Calculate subtract: Position of Brightness Field - Current Mouse Offset
-  this._brightnessSubtract = qx.html.Location.getPageOuterTop(this._brightnessField.getElement()) + (e.getPageY() - qx.html.Location.getPageBoxTop(this._brightnessHandle.getElement()));
-
-  // Block field event handling
-  e.setPropagationStopped(true);
-}
-
-qx.Proto._onBrightnessHandleMouseUp = function(e)
-{
-  // Disabling capturing
-  this._brightnessHandle.setCapture(false);
-}
-
-qx.Proto._onBrightnessHandleMouseMove = function(e)
-{
-  // Update if captured currently (through previous mousedown)
-  if (this._brightnessHandle.getCapture()) {
-    this._setBrightnessOnFieldEvent(e);
-  }
-}
-
-qx.Proto._onBrightnessFieldMouseDown = function(e)
-{
-  // Calculate substract: Half height of handler
-  this._brightnessSubtract = qx.html.Location.getPageOuterTop(this._brightnessField.getElement()) + Math.round(qx.html.Dimension.getBoxHeight(this._brightnessHandle.getElement()) / 2);
-
-  // Update
-  this._setBrightnessOnFieldEvent(e);
-
-  // Afterwards: Activate Capturing for handle
-  this._brightnessHandle.setCapture(true);
-}
-
-qx.Proto._onBrightnessPaneMouseWheel = function(e) {
-  this.setBrightness(qx.lang.Number.limit(this.getBrightness() + e.getWheelDelta(), 0, 100));
-}
-
-qx.Proto._setBrightnessOnFieldEvent = function(e)
-{
-  var vValue = qx.lang.Number.limit(e.getPageY() - this._brightnessSubtract, 0, 256);
-
-  this._updateContext = "brightnessField";
-
-  if (this._brightnessHandle.isCreated())
-  {
-    this._brightnessHandle._applyRuntimeTop(vValue + this._brightnessPane.getPaddingTop());
-  }
-  else
-  {
-    this._brightnessHandle.setTop(vValue);
-  }
-
-  this.setBrightness(100-Math.round(vValue / 2.56));
-
-  this._updateContext = null;
-}
-
-qx.Proto._onButtonOkExecute = function(e) {
-  this.createDispatchEvent("dialogok");
-}
-
-qx.Proto._onButtonCancelExecute = function(e) {
-  this.createDispatchEvent("dialogcancel");
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  HUE/SATURATION IMPLEMENTATION
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onHueSaturationHandleMouseDown = function(e)
-{
-  // Activate Capturing
-  this._hueSaturationHandle.setCapture(true);
-
-  // Calculate subtract: Position of HueSaturation Field - Current Mouse Offset
-  this._hueSaturationSubtractTop = qx.html.Location.getPageOuterTop(this._hueSaturationField.getElement()) + (e.getPageY() - qx.html.Location.getPageBoxTop(this._hueSaturationHandle.getElement()));
-  this._hueSaturationSubtractLeft = qx.html.Location.getPageOuterLeft(this._hueSaturationField.getElement()) + (e.getPageX() - qx.html.Location.getPageBoxLeft(this._hueSaturationHandle.getElement()));
-
-  // Block field event handling
-  e.setPropagationStopped(true);
-}
-
-qx.Proto._onHueSaturationHandleMouseUp = function(e)
-{
-  // Disabling capturing
-  this._hueSaturationHandle.setCapture(false);
-}
-
-qx.Proto._onHueSaturationHandleMouseMove = function(e)
-{
-  // Update if captured currently (through previous mousedown)
-  if (this._hueSaturationHandle.getCapture()) {
-    this._setHueSaturationOnFieldEvent(e);
-  }
-}
-
-qx.Proto._onHueSaturationFieldMouseDown = function(e)
-{
-  // Calculate substract: Half width/height of handler
-  this._hueSaturationSubtractTop = qx.html.Location.getPageOuterTop(this._hueSaturationField.getElement()) + Math.round(qx.html.Dimension.getBoxHeight(this._hueSaturationHandle.getElement()) / 2);
-  this._hueSaturationSubtractLeft = qx.html.Location.getPageOuterLeft(this._hueSaturationField.getElement()) + Math.round(qx.html.Dimension.getBoxWidth(this._hueSaturationHandle.getElement()) / 2);
-
-  // Update
-  this._setHueSaturationOnFieldEvent(e);
-
-  // Afterwards: Activate Capturing for handle
-  this._hueSaturationHandle.setCapture(true);
-}
-
-qx.Proto._onHueSaturationPaneMouseWheel = function(e) {
-  this.setSaturation(qx.lang.Number.limit(this.getSaturation() + e.getWheelDelta(), 0, 100));
-}
-
-qx.Proto._setHueSaturationOnFieldEvent = function(e)
-{
-  var vTop = qx.lang.Number.limit(e.getPageY() - this._hueSaturationSubtractTop, 0, 256);
-  var vLeft = qx.lang.Number.limit(e.getPageX() - this._hueSaturationSubtractLeft, 0, 256);
-
-  if (this._hueSaturationHandle.isCreated())
-  {
-    this._hueSaturationHandle._applyRuntimeTop(vTop + this._hueSaturationPane.getPaddingTop());
-    this._hueSaturationHandle._applyRuntimeLeft(vLeft + this._hueSaturationPane.getPaddingLeft());
-  }
-  else
-  {
-    this._hueSaturationHandle.setTop(vTop);
-    this._hueSaturationHandle.setLeft(vLeft);
-  }
-
-  this._updateContext = "hueSaturationField";
-
-  this.setSaturation(100-Math.round(vTop / 2.56));
-  this.setHue(Math.round(vLeft * 1.40625));
-
-  this._updateContext = null;
-}
-
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  RGB SPINNER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._setRedFromSpinner = function()
-{
-  if (this._updateContext !== null) {
-    return;
-  }
-
-  this._updateContext = "rgbSpinner";
-  this.setRed(this._rgbSpinRed.getValue());
-  this._updateContext = null;
-}
-
-qx.Proto._setGreenFromSpinner = function()
-{
-  if (this._updateContext !== null) {
-    return;
-  }
-
-  this._updateContext = "rgbSpinner";
-  this.setGreen(this._rgbSpinGreen.getValue());
-  this._updateContext = null;
-}
-
-qx.Proto._setBlueFromSpinner = function()
-{
-  if (this._updateContext !== null) {
-    return;
-  }
-
-  this._updateContext = "rgbSpinner";
-  this.setBlue(this._rgbSpinBlue.getValue());
-  this._updateContext = null;
-}
-
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  HSB SPINNER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._setHueFromSpinner = function()
-{
-  if (this._updateContext !== null) {
-    return;
-  }
-
-  this._updateContext = "hsbSpinner";
-  this.setHue(this._hsbSpinHue.getValue());
-  this._updateContext = null;
-}
-
-qx.Proto._setSaturationFromSpinner = function()
-{
-  if (this._updateContext !== null) {
-    return;
-  }
-
-  this._updateContext = "hsbSpinner";
-  this.setSaturation(this._hsbSpinSaturation.getValue());
-  this._updateContext = null;
-}
-
-qx.Proto._setBrightnessFromSpinner = function()
-{
-  if (this._updateContext !== null) {
-    return;
-  }
-
-  this._updateContext = "hsbSpinner";
-  this.setBrightness(this._hsbSpinBrightness.getValue());
-  this._updateContext = null;
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  HEX FIELD
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onHexFieldChange = function(e)
-{
-  if (this._updateContext !== null) {
-    return;
-  }
-
-  var vValue = this._hexField.getValue().toLowerCase();
-
-  var vRed = 0;
-  var vGreen = 0;
-  var vBlue = 0;
-
-  switch(vValue.length)
-  {
-    case 3:
-      vRed = qx.renderer.color.Color.m_rgb[vValue.charAt(0)];
-      vGreen = qx.renderer.color.Color.m_rgb[vValue.charAt(1)];
-      vBlue = qx.renderer.color.Color.m_rgb[vValue.charAt(2)];
-
-      vRed = (vRed * 16) + vRed;
-      vGreen = (vGreen * 16) + vGreen;
-      vBlue = (vBlue * 16) + vBlue;
-
-      break;
-
-    case 6:
-      vRed = (qx.renderer.color.Color.m_rgb[vValue.charAt(0)] * 16) + qx.renderer.color.Color.m_rgb[vValue.charAt(1)];
-      vGreen = (qx.renderer.color.Color.m_rgb[vValue.charAt(2)] * 16) + qx.renderer.color.Color.m_rgb[vValue.charAt(3)];
-      vBlue = (qx.renderer.color.Color.m_rgb[vValue.charAt(4)] * 16) + qx.renderer.color.Color.m_rgb[vValue.charAt(5)];
-
-      break;
-
-    default:
-      return false;
-  }
-
-  this._updateContext = "hexField";
-
-  this.setRed(vRed);
-  this.setGreen(vGreen);
-  this.setBlue(vBlue);
-
-  this._updateContext = null;
-}
-
-qx.Proto._setHexFromRgb = function() {
-  this._hexField.setValue(qx.lang.String.pad(this.getRed().toString(16).toUpperCase(), 2) + qx.lang.String.pad(this.getGreen().toString(16).toUpperCase(), 2) + qx.lang.String.pad(this.getBlue().toString(16).toUpperCase(), 2));
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  COLOR FIELD
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onColorFieldClick = function(e)
-{
-  var vColor = e.getTarget().getBackgroundColor();
-
-  if (!vColor) {
-    return this.error("Missing backgroundColor value for field: " + e.getTarget());
-  }
-
-  this.setRed(vColor.getRed());
-  this.setGreen(vColor.getGreen());
-  this.setBlue(vColor.getBlue());
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  RGB/HSB SYNC
----------------------------------------------------------------------------
-*/
-
-qx.Proto._setHueFromRgb = function()
-{
-  switch(this._updateContext)
-  {
-    case "hsbSpinner":
-    case "hueSaturationField":
-    case "brightnessField":
-      break;
-
-    default:
-      var vHsb = qx.util.ColorUtil.rgb2hsb(this.getRed(), this.getGreen(), this.getBlue());
-
-      this.setHue(vHsb.hue);
-      this.setSaturation(vHsb.saturation);
-      this.setBrightness(vHsb.brightness);
-  }
-}
-
-qx.Proto._setRgbFromHue = function()
-{
-  switch(this._updateContext)
-  {
-    case "rgbSpinner":
-    case "hexField":
-      break;
-
-    default:
-      var vRgb = qx.util.ColorUtil.hsb2rgb(this.getHue(), this.getSaturation(), this.getBrightness());
-
-      this.setRed(vRgb.red);
-      this.setGreen(vRgb.green);
-      this.setBlue(vRgb.blue);
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PREVIEW SYNC
----------------------------------------------------------------------------
-*/
-
-qx.Proto._setPreviewFromRgb = function()
-{
-  if (this._newColorPreview.isCreated())
-  {
-    // faster (omit qx.renderer.color.Color instances)
-    this._newColorPreview._style.backgroundColor = qx.renderer.color.Color.rgb2style(this.getRed(), this.getGreen(), this.getBlue());
-  }
-  else
-  {
-    this._newColorPreview.setBackgroundColor([this.getRed(), this.getGreen(), this.getBlue()]);
-  }
-}
-
-qx.Proto.setPreviousColor = function(vRed, vGreen, vBlue)
-{
-  this._oldColorPreview.setBackgroundImage(null);
-  this._oldColorPreview.setBackgroundColor([vRed, vGreen, vBlue]);
-
-  this.setRed(vRed);
-  this.setGreen(vGreen);
-  this.setBlue(vBlue);
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  if (this._controlBar)
-  {
-    this._controlBar.dispose();
-    this._controlBar = null;
-  }
-
-  if (this._btnbar)
-  {
-    this._btnbar.dispose();
-    this._btnbar = null;
-  }
-
-  if (this._btncancel)
-  {
-    this._btncancel.dispose();
-    this._btncancel = null;
-  }
-
-  if (this._btnok)
-  {
-    this._btnok.dispose();
-    this._btnok = null;
-  }
-
-  if (this._controlPane)
-  {
-    this._controlPane.dispose();
-    this._controlPane = null;
-  }
-
-  if (this._hueSaturationPane)
-  {
-    this._hueSaturationPane.removeEventListener("mousewheel", this._onHueSaturationPaneMouseWheel, this);
-    this._hueSaturationPane.dispose();
-    this._hueSaturationPane = null;
-  }
-
-  if (this._hueSaturationField)
-  {
-    this._hueSaturationField.removeEventListener("mousedown", this._onHueSaturationFieldMouseDown, this);
-    this._hueSaturationField.dispose();
-    this._hueSaturationField = null;
-  }
-
-  if (this._hueSaturationHandle)
-  {
-    this._hueSaturationHandle.removeEventListener("mousedown", this._onHueSaturationHandleMouseDown, this);
-    this._hueSaturationHandle.removeEventListener("mouseup", this._onHueSaturationHandleMouseUp, this);
-    this._hueSaturationHandle.removeEventListener("mousemove", this._onHueSaturationHandleMouseMove, this);
-    this._hueSaturationHandle.dispose();
-    this._hueSaturationHandle = null;
-  }
-
-  if (this._brightnessPane)
-  {
-    this._brightnessPane.removeEventListener("mousewheel", this._onBrightnessPaneMouseWheel, this);
-    this._brightnessPane.dispose();
-    this._brightnessPane = null;
-  }
-
-  if (this._brightnessField)
-  {
-    this._brightnessField.removeEventListener("mousedown", this._onBrightnessFieldMouseDown, this);
-    this._brightnessField.dispose();
-    this._brightnessField = null;
-  }
-
-  if (this._brightnessHandle)
-  {
-    this._brightnessHandle.removeEventListener("mousedown", this._onBrightnessHandleMouseDown, this);
-    this._brightnessHandle.removeEventListener("mouseup", this._onBrightnessHandleMouseUp, this);
-    this._brightnessHandle.removeEventListener("mousemove", this._onBrightnessHandleMouseMove, this);
-    this._brightnessHandle.dispose();
-    this._brightnessHandle = null;
-  }
-
-  if (this._presetFieldSet)
-  {
-    this._presetFieldSet.dispose();
-    this._presetFieldSet = null;
-  }
-
-  if (this._presetGrid)
-  {
-    this._presetGrid.dispose();
-    this._presetGrid = null;
-  }
-
-  this._presetTable = null;
-
-  if (this._inputFieldSet)
-  {
-    this._inputFieldSet.dispose();
-    this._inputFieldSet = null;
-  }
-
-  if (this._inputLayout)
-  {
-    this._inputLayout.dispose();
-    this._inputLayout = null;
-  }
-
-  if (this._previewFieldSet)
-  {
-    this._previewFieldSet.dispose();
-    this._previewFieldSet = null;
-  }
-
-  if (this._previewLayout)
-  {
-    this._previewLayout.dispose();
-    this._previewLayout = null;
-  }
-
-  if (this._hexLayout)
-  {
-    this._hexLayout.dispose();
-    this._hexLayout = null;
-  }
-
-  if (this._hexLabel)
-  {
-    this._hexLabel.dispose();
-    this._hexLabel = null;
-  }
-
-  if (this._hexHelper)
-  {
-    this._hexHelper.dispose();
-    this._hexHelper = null;
-  }
-
-  if (this._hexField)
-  {
-    this._hexField.addEventListener("changeValue", this._onHexFieldChange, this);
-    this._hexField.dispose();
-    this._hexField = null;
-  }
-
-  if (this._rgbSpinLayout)
-  {
-    this._rgbSpinLayout.dispose();
-    this._rgbSpinLayout = null;
-  }
-
-  if (this._rgbSpinLabel)
-  {
-    this._rgbSpinLabel.dispose();
-    this._rgbSpinLabel = null;
-  }
-
-  if (this._rgbSpinRed)
-  {
-    this._rgbSpinRed.removeEventListener("change", this._setRedFromSpinner, this);
-    this._rgbSpinRed.dispose();
-    this._rgbSpinRed = null;
-  }
-
-  if (this._rgbSpinGreen)
-  {
-    this._rgbSpinGreen.removeEventListener("change", this._setGreenFromSpinner, this);
-    this._rgbSpinGreen.dispose();
-    this._rgbSpinGreen = null;
-  }
-
-  if (this._rgbSpinBlue)
-  {
-    this._rgbSpinBlue.removeEventListener("change", this._setBlueFromSpinner, this);
-    this._rgbSpinBlue.dispose();
-    this._rgbSpinBlue = null;
-  }
-
-  if (this._hsbSpinLayout)
-  {
-    this._hsbSpinLayout.dispose();
-    this._hsbSpinLayout = null;
-  }
-
-  if (this._hsbSpinLabel)
-  {
-    this._hsbSpinLabel.dispose();
-    this._hsbSpinLabel = null;
-  }
-
-  if (this._hsbSpinHue)
-  {
-    this._hsbSpinHue.removeEventListener("change", this._setHueFromSpinner, this);
-    this._hsbSpinHue.dispose();
-    this._hsbSpinHue = null;
-  }
-
-  if (this._hsbSpinSaturation)
-  {
-    this._hsbSpinSaturation.removeEventListener("change", this._setSaturationFromSpinner, this);
-    this._hsbSpinSaturation.dispose();
-    this._hsbSpinSaturation = null;
-  }
-
-  if (this._hsbSpinBrightness)
-  {
-    this._hsbSpinBrightness.removeEventListener("change", this._setBrightnessFromSpinner, this);
-    this._hsbSpinBrightness.dispose();
-    this._hsbSpinBrightness = null;
-  }
-
-  if (this._oldColorPreview)
-  {
-    this._oldColorPreview.dispose();
-    this._oldColorPreview = null;
-  }
-
-  if (this._newColorPreview)
-  {
-    this._newColorPreview.dispose();
-    this._newColorPreview = null;
-  }
-
-  return qx.ui.layout.VerticalBoxLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/DateChooser.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/DateChooser.js
deleted file mode 100644 (file)
index cf32dcb..0000000
+++ /dev/null
@@ -1,510 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#require(qx.util.format.DateFormat)
-#embed(qx.widgettheme/datechooser/*)
-
-************************************************************************ */
-
-/**
- * Shows calendar and allows choosing a date.
- *
- * @param date {Date ? null} The initial date to show. If <code>null</code>
- *        the current day (today) is shown.
- *
- * @event select {qx.event.type.DataEvent} Fired when a date was selected. The
- *        event holds the new selected date in its data property.
- */
-qx.OO.defineClass("qx.ui.component.DateChooser", qx.ui.layout.BoxLayout,
-function(date) {
-  qx.ui.layout.BoxLayout.call(this);
-
-  this.setOrientation("vertical");
-
-  // Create the navigation bar
-  var navBar = new qx.ui.layout.BoxLayout;
-  navBar.set({ width:null, height:"auto", spacing:1 });
-
-  var lastYearBt = new qx.ui.toolbar.Button(null, "widget/datechooser/lastYear.png");
-  var lastMonthBt = new qx.ui.toolbar.Button(null, "widget/datechooser/lastMonth.png");
-  var monthYearLabel = new qx.ui.basic.Label;
-  var nextMonthBt = new qx.ui.toolbar.Button(null, "widget/datechooser/nextMonth.png");
-  var nextYearBt = new qx.ui.toolbar.Button(null, "widget/datechooser/nextYear.png");
-
-  lastYearBt.set({ show:'icon', toolTip:new qx.ui.popup.ToolTip(this.tr("Last year")), spacing:0 });
-  lastMonthBt.set({ show:'icon', toolTip:new qx.ui.popup.ToolTip(this.tr("Last month")) });
-  nextMonthBt.set({ show:'icon', toolTip:new qx.ui.popup.ToolTip(this.tr("Next month")) });
-  nextYearBt.set({ show:'icon', toolTip:new qx.ui.popup.ToolTip(this.tr("Next year")) });
-
-  lastYearBt.setAppearance("datechooser-toolbar-button");
-  lastMonthBt.setAppearance("datechooser-toolbar-button");
-  nextMonthBt.setAppearance("datechooser-toolbar-button");
-  nextYearBt.setAppearance("datechooser-toolbar-button");
-
-  lastYearBt.addEventListener("click", this._onNavButtonClicked, this);
-  lastMonthBt.addEventListener("click", this._onNavButtonClicked, this);
-  nextMonthBt.addEventListener("click", this._onNavButtonClicked, this);
-  nextYearBt.addEventListener("click", this._onNavButtonClicked, this);
-
-  this._lastYearBt = lastYearBt;
-  this._lastMonthBt = lastMonthBt;
-  this._nextMonthBt = nextMonthBt;
-  this._nextYearBt = nextYearBt;
-
-  monthYearLabel.setAppearance("datechooser-monthyear");
-  monthYearLabel.set({ width:"1*" });
-
-  navBar.add(lastYearBt, lastMonthBt, monthYearLabel, nextMonthBt, nextYearBt);
-  this._monthYearLabel = monthYearLabel;
-  navBar.setHtmlAttribute("id", "navBar");
-
-  // Calculate the cell width and height
-  var testLabel = new qx.ui.basic.Label;
-  var testParent = new qx.ui.layout.CanvasLayout;
-  testParent.add(testLabel);
-  testLabel.setHtml("Xx");
-  testLabel.set({ paddingLeft : 5, paddingRight : 5 });
-  testLabel.setAppearance("datechooser-weekday");
-  var cellWidth = testLabel.getBoxWidth();
-  var cellHeight = testLabel.getBoxHeight();
-  testLabel.dispose();
-  testParent.dispose();
-
-  // Create the date pane
-  var datePane = new qx.ui.layout.GridLayout;
-  datePane.setAppearance("datechooser-datepane");
-  datePane.set({ width:"100%", height:"auto" });
-  datePane.setColumnCount(8);
-  datePane.setRowCount(7);
-  for (var i = 0; i < datePane.getColumnCount(); i++) {
-    datePane.setColumnWidth(i, cellWidth);
-  }
-  for (var i = 0; i < datePane.getRowCount(); i++) {
-    datePane.setRowHeight(i, cellHeight);
-  }
-
-  // Create the weekdays
-  // Add an empty label as spacer for the week numbers
-  var label = new qx.ui.basic.Label;
-  label.setAppearance("datechooser-week");
-  label.set({ width:"100%", height:"100%" });
-  label.addState("header");
-  datePane.add(label, 0, 0);
-
-  this._weekdayLabelArr = [];
-  for (var i = 0; i < 7; i++) {
-    var label = new qx.ui.basic.Label;
-    label.setAppearance("datechooser-weekday");
-    label.set({ width:"100%", height:"100%" });
-    datePane.add(label, i + 1, 0);
-    this._weekdayLabelArr.push(label);
-  }
-
-  // Add the days
-  this._dayLabelArr = [];
-  this._weekLabelArr = [];
-  for (var y = 0; y < 6; y++) {
-    // Add the week label
-    var label = new qx.ui.basic.Label;
-    label.setAppearance("datechooser-week");
-    label.set({ width:"100%", height:"100%" });
-    datePane.add(label, 0, y + 1);
-    this._weekLabelArr.push(label);
-
-    // Add the day labels
-    for (var x = 0; x < 7; x++) {
-      var label = new qx.ui.basic.Label;
-      label.setAppearance("datechooser-day");
-      label.set({ width:"100%", height:"100%" });
-      label.addEventListener("mousedown", this._onDayClicked, this);
-      label.addEventListener("dblclick", this._onDayDblClicked, this);
-      datePane.add(label, x + 1, y + 1);
-      this._dayLabelArr.push(label);
-    }
-  }
-
-  // Make focusable
-  this.setTabIndex(1);
-  this.addEventListener("keypress", this._onkeypress);
-
-  // Show the right date
-  var shownDate = (date != null) ? date : new Date();
-  this.showMonth(shownDate.getMonth(), shownDate.getFullYear());
-
-  // listen for locale changes
-  qx.locale.Manager.getInstance().addEventListener("changeLocale", this._updateDatePane, this);
-
-  // Add the main widgets
-  this.add(navBar);
-  this.add(datePane);
-
-});
-
-
-// ***** Properties *****
-
-/** The currently shown month. 0 = january, 1 = february, and so on. */
-qx.OO.addProperty({ name:"shownMonth", type:"number", defaultValue:null });
-/** The currently shown year. */
-qx.OO.addProperty({ name:"shownYear", type:"number", defaultValue:null });
-/** {Date} The currently selected date. */
-qx.OO.addProperty({ name:"date", type:"object", defaultValue:null });
-
-
-// property checker
-qx.Proto._checkDate = function(propValue, propData) {
-  // Use a clone of the date internally since date instances may be changed
-  return (propValue == null) ? null : new Date(propValue.getTime());
-}
-
-
-// property modifier
-qx.Proto._modifyDate = function(propValue, propOldValue, propData) {
-  var DateChooser = qx.ui.component.DateChooser;
-
-  if ((propValue != null) && (this.getShownMonth() != propValue.getMonth()
-    || this.getShownYear() != propValue.getFullYear()))
-  {
-    // The new date is in another month -> Show that month
-    this.showMonth(propValue.getMonth(), propValue.getFullYear());
-  } else {
-    // The new date is in the current month -> Just change the states
-    var newDay = (propValue == null) ? -1 : propValue.getDate();
-    for (var i = 0; i < 6 * 7; i++) {
-      var dayLabel = this._dayLabelArr[i];
-
-      if (dayLabel.hasState("otherMonth")) {
-        if (dayLabel.hasState("selected")) {
-          dayLabel.removeState("selected");
-        }
-      } else {
-        var day = parseInt(dayLabel.getHtml());
-        if (day == newDay) {
-          dayLabel.addState("selected");
-        } else if (dayLabel.hasState("selected")) {
-          dayLabel.removeState("selected");
-        }
-      }
-    }
-  }
-
-  return true;
-}
-
-
-/**
- * Event handler. Called when a navigation button has been clicked.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onNavButtonClicked = function(evt) {
-  var year = this.getShownYear();
-  var month = this.getShownMonth();
-
-  switch(evt.getCurrentTarget()) {
-    case this._lastYearBt:
-      year--;
-      break;
-    case this._lastMonthBt:
-      month--;
-      if (month < 0) {
-        month = 11;
-        year--;
-      }
-      break;
-    case this._nextMonthBt:
-      month++;
-      if (month >= 12) {
-        month = 0;
-        year++;
-      }
-      break;
-    case this._nextYearBt:
-      year++;
-      break;
-  }
-
-  this.showMonth(month, year);
-}
-
-
-/**
- * Event handler. Called when a day has been clicked.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onDayClicked = function(evt) {
-  var time = evt.getCurrentTarget().dateTime;
-  this.setDate(new Date(time));
-}
-
-qx.Proto._onDayDblClicked = function() {
-  this.createDispatchDataEvent("select", this.getDate());
-}
-
-/**
- * Event handler. Called when a key was pressed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onkeypress = function(evt) {
-  var dayIncrement = null;
-  var monthIncrement = null;
-  var yearIncrement = null;
-  if (evt.getModifiers() == 0) {
-    switch(evt.getKeyIdentifier()) {
-      case "Left":
-        dayIncrement = -1;
-        break;
-      case "Right":
-        dayIncrement = 1;
-        break;
-      case "Up":
-        dayIncrement = -7;
-        break;
-      case "Down":
-        dayIncrement = 7;
-        break;
-      case "PageUp":
-        monthIncrement = -1;
-        break;
-      case "PageDown":
-        monthIncrement = 1;
-        break;
-      case "Escape":
-        if (this.getDate() != null) {
-          this.setDate(null);
-          return true;
-        }
-        break;
-      case "Enter":
-      case "Space":
-        if (this.getDate() != null) {
-          this.createDispatchDataEvent("select", this.getDate());
-        }
-        return;
-    }
-  } else if (evt.isShiftPressed()) {
-    switch(evt.getKeyIdentifier()) {
-      case "PageUp":
-        yearIncrement = -1;
-        break;
-      case "PageDown":
-        yearIncrement = 1;
-        break;
-    }
-  }
-
-  if (dayIncrement != null || monthIncrement != null || yearIncrement != null) {
-    var date = this.getDate();
-    if (date != null) {
-      date = new Date(date.getTime()); // TODO: Do cloning in getter
-    }
-    if (date == null) {
-      date = new Date();
-    } else {
-      if (dayIncrement != null)   date.setDate(date.getDate() + dayIncrement);
-      if (monthIncrement != null) date.setMonth(date.getMonth() + monthIncrement);
-      if (yearIncrement != null)  date.setFullYear(date.getFullYear() + yearIncrement);
-    }
-    this.setDate(date);
-  }
-}
-
-
-// ***** Methods *****
-
-
-/**
- * Shows a certain month.
- *
- * @param month {Integer ? null} the month to show (0 = january). If not set the month
- *    will remain the same.
- * @param year {Integer ? null} the year to show. If not set the year will remain the
- *    same.
- */
-qx.Proto.showMonth = function(month, year) {
-  if ((month != null && month != this.getShownMonth())
-    || (year != null && year != this.getShownYear()))
-  {
-    if (month != null) {
-      this.setShownMonth(month);
-    }
-    if (year != null) {
-      this.setShownYear(year);
-    }
-
-    this._updateDatePane();
-  }
-}
-
-
-/**
- * Updates the date pane.
- */
-qx.Proto._updateDatePane = function() {
-  var DateChooser = qx.ui.component.DateChooser;
-
-  var today = new Date();
-  var todayYear     = today.getFullYear();
-  var todayMonth    = today.getMonth();
-  var todayDayOfMonth = today.getDate();
-
-  var selDate = this.getDate();
-  var selYear     = (selDate == null) ? -1 : selDate.getFullYear();
-  var selMonth    = (selDate == null) ? -1 : selDate.getMonth();
-  var selDayOfMonth = (selDate == null) ? -1 : selDate.getDate();
-
-  var shownMonth = this.getShownMonth();
-  var shownYear  = this.getShownYear();
-
-  var startOfWeek = qx.locale.Date.getWeekStart();
-
-  // Create a help date that points to the first of the current month
-  var helpDate = new Date(this.getShownYear(), this.getShownMonth(), 1);
-
-  this._monthYearLabel.setHtml((new qx.util.format.DateFormat(DateChooser.MONTH_YEAR_FORMAT)).format(helpDate));
-
-  // Show the day names
-  var firstDayOfWeek = helpDate.getDay();
-  var firstSundayInMonth = (1 + 7 - firstDayOfWeek) % 7;
-  for (var i = 0; i < 7; i++) {
-    var day = (i + startOfWeek) % 7;
-
-    var dayLabel = this._weekdayLabelArr[i];
-
-    helpDate.setDate(firstSundayInMonth + day);
-    dayLabel.setHtml(DateChooser.WEEKDAY_FORMAT.format(helpDate));
-
-    if (qx.locale.Date.isWeekend(day)) {
-      dayLabel.addState("weekend");
-    } else {
-      dayLabel.removeState("weekend");
-    }
-  }
-
-  // Show the days
-  helpDate = new Date(shownYear, shownMonth, 1);
-  var nrDaysOfLastMonth = (7 + firstDayOfWeek - startOfWeek) % 7;
-  helpDate.setDate(helpDate.getDate() - nrDaysOfLastMonth);
-  for (var week = 0; week < 6; week++) {
-    this._weekLabelArr[week].setHtml(DateChooser.WEEK_FORMAT.format(helpDate));
-
-    for (var i = 0; i < 7; i++) {
-      var dayLabel = this._dayLabelArr[week * 7 + i];
-
-      var year     = helpDate.getFullYear();
-      var month    = helpDate.getMonth();
-      var dayOfMonth = helpDate.getDate();
-
-      var isSelectedDate = (selYear == year && selMonth == month && selDayOfMonth == dayOfMonth);
-      if (isSelectedDate) {
-        dayLabel.addState("selected");
-      } else {
-        dayLabel.removeState("selected");
-      }
-
-      if (month != shownMonth) {
-        dayLabel.addState("otherMonth");
-      } else {
-        dayLabel.removeState("otherMonth");
-      }
-
-      var isToday = (year == todayYear && month == todayMonth && dayOfMonth == todayDayOfMonth);
-      if (isToday) {
-        dayLabel.addState("today");
-      } else {
-        dayLabel.removeState("today");
-      }
-
-      dayLabel.setHtml("" + dayOfMonth);
-      dayLabel.dateTime = helpDate.getTime();
-
-      // Go to the next day
-      helpDate.setDate(helpDate.getDate() + 1);
-    }
-  }
-}
-
-
-/**
- * {string} The format for the date year
- * label at the top center.
- */
-qx.Class.MONTH_YEAR_FORMAT = qx.locale.Date.getDateTimeFormat("yyyyMMMM", "MMMM yyyy");
-
-/**
- * {qx.util.format.DateFormat} The format for the weekday
- * labels (the headers of the date table).
- */
-qx.Class.WEEKDAY_FORMAT = new qx.util.format.DateFormat("EE");
-
-/**
- * {qx.util.format.DateFormat} The format for the week labels.
- */
-qx.Class.WEEK_FORMAT = new qx.util.format.DateFormat("ww");
-
-
-// overridden
-qx.Proto.dispose = function() {
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  this._lastYearBt.removeEventListener("click", this._onNavButtonClicked, this);
-  this._lastMonthBt.removeEventListener("click", this._onNavButtonClicked, this);
-  this._nextMonthBt.removeEventListener("click", this._onNavButtonClicked, this);
-  this._nextYearBt.removeEventListener("click", this._onNavButtonClicked, this);
-
-  this._lastYearBt.dispose();
-  this._lastMonthBt.dispose();
-  this._nextMonthBt.dispose();
-  this._nextYearBt.dispose();
-
-  this._lastYearBt = null;
-  this._lastMonthBt = null;
-  this._nextMonthBt = null;
-  this._nextYearBt = null;
-
-  this._monthYearLabel.dispose();
-  this._monthYearLabel = null;
-
-  for (var i = 0; i < this._weekdayLabelArr.length; i++) {
-    this._weekdayLabelArr[i].dispose();
-  }
-  this._weekdayLabelArr = null;
-
-  for (var i = 0; i < this._dayLabelArr.length; i++) {
-    this._dayLabelArr[i].dispose();
-    this._dayLabelArr[i].removeEventListener("mousedown", this._onDayClicked, this);
-    this._dayLabelArr[i].removeEventListener("dblclick", this._onDayDblClicked, this);
-  }
-  this._dayLabelArr = null;
-
-  for (var i = 0; i < this._weekLabelArr.length; i++) {
-    this._weekLabelArr[i].dispose();
-  }
-  this._weekLabelArr = null;
-
-  this.removeEventListener("keypress", this._onkeypress);
-
-  return qx.ui.layout.BoxLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/DateChooserButton.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/DateChooserButton.js
deleted file mode 100644 (file)
index 6b19884..0000000
+++ /dev/null
@@ -1,356 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 Visionet GmbH, Germany, http://www.visionet.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Dietrich Streifert (level420)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#require(qx.ui.component.DateChooser)
-#require(qx.util.format.DateFormat)
-
-************************************************************************ */
-
-/**
- * A date chooser button widget which can be associated to a widget where the date value is synchronized
- * whith the selected date.
- *
- * @param vTargetWidget {qx.ui.core.Widget} the widget which is the target for the date value selection. The target widget must have a setValue and getValue method.
- * @param vChooserTitle {String} the title of the chooser window. The default value is held in property chooserTitle.
- * @param vButtonLabel {String} the label of the button. The default is null.
- * @param vIcon {String} the icon of the button. The default is 'icon/16/apps/accessories-date.png'.
- * @param vIconWidth {String} derived from qx.ui.form.Button.
- * @param vIconHeight {String} derived from qx.ui.form.Button.
- * @param vFlash {String} derived from qx.ui.form.Button.
- */
-qx.OO.defineClass("qx.ui.component.DateChooserButton", qx.ui.form.Button, function(vTargetWidget, vChooserTitle, vButtonLabel, vIcon, vIconWidth, vIconHeight, vFlash)
-{
-  if (!vIcon) {
-    vIcon = 'icon/16/apps/accessories-date.png';
-  }
-
-  qx.ui.form.Button.call(this, vButtonLabel, vIcon, vIconWidth, vIconHeight, vFlash);
-  this.set({ height : 20 });
-
-  // create the subwidgets
-  //
-  this._createChooser();
-  this._createChooserWindow();
-
-  // create dateFormat instance
-  //
-  this._dateFormat = new qx.util.format.DateFormat(qx.locale.Date.getDateFormat("short"));
-  qx.locale.Manager.getInstance().addEventListener("changeLocale", this._changeLocale, this);
-
-  if (vTargetWidget) {
-    this.setTargetWidget(vTargetWidget);
-  }
-
-  if (vChooserTitle) {
-    this.setChooserTitle(vChooserTitle);
-  }
-
-  this.addEventListener("execute", this._executeHandler, this);
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/** The target widget the selected Date should be synchronized with. */
-qx.OO.addProperty(
-{
-  name         : "targetWidget",
-  type         : "object",
-  instance     : "qx.ui.core.Widget",
-  defaultValue : null
-});
-
-/** The title of the date chooser window. */
-qx.OO.addProperty(
-{
-  name         : "chooserTitle",
-  defaultValue : qx.locale.Manager.tr("Choose a date")
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIERS
----------------------------------------------------------------------------
-*/
-
-/**
- * Modifier for property targetWidget.
- *
- * @type member
- * @name _modifyTargetWidget
- * @access protected
- * @param propValue {var} Current value
- * @param propOldValue {var} Previous value
- * @param propData {var} Property configuration map
- * @return {Boolean} true if modification succeeded
- * @throws exception if propValue is not instance of qx.ui.core.Widget or does not have setter and getter for property value
- */
-qx.Proto._modifyTargetWidget = function(propValue, propOldValue, propData)
-{
-  if (propValue instanceof qx.ui.core.Widget && qx.util.Validation.isValidFunction(propValue.setValue) && qx.util.Validation.isValidFunction(propValue.getValue)) {
-    return true;
-  } else {
-    throw new error("TargetWidget must be an instance of qx.ui.core.Widget and has setValue and getValue methods");
-  }
-};
-
-/**
- * Modifier for property chooserTitle.
- *
- * @type member
- * @name _modifyChooserTitle
- * @access protected
- * @param propValue {var} Current value
- * @param propOldValue {var} Previous value
- * @param propData {var} Property configuration map
- * @return {Boolean} true if modification succeeded
- */
-qx.Proto._modifyChooserTitle = function(propValue, propOldValue, propData)
-{
-  this._chooserWindow.setCaption(propValue);
-  return true;
-};
-
-
-
-
-/*
----------------------------------------------------------------------------
-  SUB WIDGET CREATION
----------------------------------------------------------------------------
-*/
-
-/**
- * Create the popup window with for the date chooser and add the date chooser to it.
- *
- * @type member
- * @name _createChooserWindow
- * @access protected
- * @return {void}
- */
-qx.Proto._createChooserWindow = function()
-{
-  var win = this._chooserWindow = new qx.ui.window.Window(this.getChooserTitle());
-
-  win.addEventListener("keydown", this._chooserWindowKeydownHandler, this);
-  win.addEventListener("appear", this._chooserWindowAppearHandler, this);
-
-  win.set(
-  {
-    top           : 50,
-    left          : 50,
-    modal         : true,
-    minWidth      : null,
-    minHeight     : null,
-    resizeable    : false,
-    allowMinimize : false,
-    allowMaximize : false,
-    showMaximize  : false,
-    showMinimize  : false
-  });
-
-  win.auto();
-  win.add(this._chooser);
-  win.addToDocument();
-};
-
-/**
- * Create the date chooser
- *
- * @type member
- * @name _createChooser
- * @access protected
- * @return {void}
- */
-qx.Proto._createChooser = function()
-{
-  var cp = this._chooser = new qx.ui.component.DateChooser;
-  cp.auto();
-  cp.setBorder(null);
-
-  cp.addEventListener("select", this._chooserSelectHandler, this);
-};
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-/**
- * Event hanlder for the execute event of the date chooser button.
- *
- * @type member
- * @name _executeHandler
- * @access protected
- * @param e {Event} the received event
- * @return {void}
- * @throws exception if the target widget is not instance of qx.ui.core.Widget or does not have setter and getter for property value
- */
-qx.Proto._executeHandler = function(e)
-{
-  if (qx.util.Validation.isInvalidObject(this.getTargetWidget())) {
-    throw new error("TargetWidget must be set which must be an instance of qx.ui.core.Widget and has setValue and getValue method.");
-  }
-
-  var date = null;
-
-  try {
-    date = this._dateFormat.parse(this.getTargetWidget().getValue());
-  } catch(ex) {}
-
-  // value from taget widget could not be parsed.
-  this._chooser.setDate(date);
-  this._chooserWindow.open();
-};
-
-
-/**
- * Handle locale changes. Update the date format of the target widget.
- *
- * @param e {Event} the received event
- */
-qx.Proto._changeLocale = function(e) {
-  if (qx.util.Validation.isInvalidObject(this.getTargetWidget())) {
-    throw new error("TargetWidget must be set which must be an instance of qx.ui.core.Widget and has setValue and getValue method.");
-  }
-
-  var date = null;
-
-  try {
-    date = this._dateFormat.parse(this.getTargetWidget().getValue());
-  } catch(ex) {}
-
-
-  this._dateFormat = new qx.util.format.DateFormat(qx.locale.Date.getDateFormat("short"));
-
-  if (!date) {
-    return;
-  }
-
-  this._chooser.setDate(date);
-  this.getTargetWidget().setValue(this._dateFormat.format(date));
-};
-
-
-/**
- * Event handler for keydown events of the chooser window. Closes the window on hitting the 'Escape' key.
- *
- * @type member
- * @name _chooserWindowKeydownHandler
- * @access protected
- * @param e {Event} the received key event
- * @return {void}
- */
-qx.Proto._chooserWindowKeydownHandler = function(e)
-{
-  switch(e.getKeyIdentifier())
-  {
-    case "Escape":
-      this._chooserWindow.close();
-      this.getTargetWidget().focus();
-      break;
-  }
-};
-
-/**
- * Event handler for chooser window appear event. Positions the window above the target widget.
- *
- * @type member
- * @name _chooserWindowAppearHandler
- * @access protected
- * @param e {Event} the received appear event
- * @return {void}
- */
-qx.Proto._chooserWindowAppearHandler = function(e)
-{
-  this._chooserWindow.positionRelativeTo(this.getTargetWidget());
-  this._chooser.focus();
-};
-
-/**
- * Event handler for the date chooser select event. Formats the selected date as string and sets the target widgets value.
- *
- * @type member
- * @name _chooserSelectHandler
- * @access protected
- * @param e {Event} the select event
- * @return {void}
- */
-qx.Proto._chooserSelectHandler = function(e)
-{
-  target = this.getTargetWidget();
-  target.setValue(this._dateFormat.format(this._chooser.getDate()));
-  this._chooserWindow.close();
-  target.focus();
-};
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-/**
- * Disposer. Removes all assigned event listeners and disposes the subwidgets.
- *
- * @type member
- * @name dispose
- * @access public
- * @return {void | call}
- */
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this._dateFormat.dispose();
-  this._dateFormat = null;
-
-  this._chooser.removeEventListener("select", this._chooserSelectHandler);
-  this._chooser.dispose();
-  this._chooser = null;
-
-  this._chooserWindow.removeEventListener("appear", this._chooserWindowAppearHandler);
-  this._chooserWindow.removeEventListener("keydown", this._chooserWindowKeydownHandler);
-  this._chooserWindow.dispose();
-  this._chooserWindow = null;
-
-  this.removeEventListener("execute", this._executeHandler);
-
-  return qx.ui.form.Button.prototype.dispose.call(this);
-};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/core/ClientDocument.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/core/ClientDocument.js
deleted file mode 100644 (file)
index e074cfb..0000000
+++ /dev/null
@@ -1,452 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#require(qx.html.StyleSheet)
-#require(qx.event.handler.EventHandler)
-#optional(qx.client.NativeWindow)
-#optional(qx.ui.window.Window)
-#optional(qx.manager.object.PopupManager)
-
-************************************************************************ */
-
-/**
- * This is the basic widget of all qooxdoo applications.
- *
- * qx.ui.core.ClientDocument is the parent of all children inside your application. It
- * also handles their resizing and focus navigation.
- *
- * @event windowblur {qx.event.type.Event} Fired when the window looses the
- *        focus. (Fired by {@link qx.event.handler.EventHandler})
- * @event windowfocus {qx.event.type.Event} Fired when the window gets the
- *        focus. (Fired by {@link qx.event.handler.EventHandler})
- * @event windowresize {qx.event.type.Event} Fired when the window has been
- *        resized. (Fired by {@link qx.event.handler.EventHandler})
- */
-qx.OO.defineClass("qx.ui.core.ClientDocument", qx.ui.layout.CanvasLayout,
-function()
-{
-  this._window = window;
-  this._document = window.document;
-
-  // Init element
-  this.setElement(this._document.body);
-
-  // Needed hard-coded because otherwise the client document
-  // would not be added initially to the state queue
-  this.addToStateQueue();
-
-  qx.ui.layout.CanvasLayout.call(this);
-
-  // Don't use widget styles
-  this._styleProperties = {};
-
-  // Configure as focus root
-  this.activateFocusRoot();
-
-  // Cache current size
-  this._cachedInnerWidth = this._document.body.offsetWidth;
-  this._cachedInnerHeight = this._document.body.offsetHeight;
-
-  // Add Resize Handler
-  this.addEventListener("windowresize", this._onwindowresize);
-
-  // Dialog Support
-  this._modalWidgets = [];
-  this._modalNativeWindow = null;
-
-  // Register as focus root
-  qx.event.handler.EventHandler.getInstance().setFocusRoot(this);
-
-
-  // Init Resize Helper
-  /*
-  if (qx.core.Client.getInstance().isGecko())
-  {
-    var o = this;
-    this._resizeHelper = window.setInterval(function() { o._onresizehelper() }, 100);
-  }
-  */
-});
-
-qx.OO.addProperty({ name : "globalCursor", type : "string" });
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "client-document" });
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFAULT SETTINGS
----------------------------------------------------------------------------
-*/
-
-qx.Settings.setDefault("enableApplicationLayout", true);
-qx.Settings.setDefault("boxModelCorrection", true);
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  OVERWRITE WIDGET FUNCTIONS/PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyParent = qx.lang.Function.returnTrue;
-qx.Proto._modifyVisible = qx.lang.Function.returnTrue;
-
-qx.Proto._modifyElement = function(propValue, propOldValue, propData)
-{
-  this._isCreated = qx.util.Validation.isValidElement(propValue);
-
-  if (propOldValue)
-  {
-    propOldValue.qx_Widget = null;
-  }
-
-  if (propValue)
-  {
-    // add reference to widget instance
-    propValue.qx_Widget = this;
-
-    // link element and style reference
-    this._element = propValue;
-    this._style = propValue.style;
-  }
-  else
-  {
-    this._element = null;
-    this._style = null;
-  }
-
-  return true;
-}
-
-qx.Proto.getTopLevelWidget = qx.lang.Function.returnThis;
-qx.Proto.getWindowElement = function() { return this._window; }
-qx.Proto.getDocumentElement = function() { return this._document; }
-
-qx.Proto.getParent = qx.Proto.getToolTip = qx.lang.Function.returnNull;
-qx.Proto.isMaterialized = qx.Proto.isSeeable = qx.lang.Function.returnTrue;
-
-qx.Proto._isDisplayable = true;
-qx.Proto._hasParent = false;
-qx.Proto._initialLayoutDone = true;
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  BLOCKER AND DIALOG SUPPORT
----------------------------------------------------------------------------
-*/
-
-/**
- * Returns the blocker widget if already created; otherwise create it first
- *
- * @return {ClientDocumentBlocker} the blocker widget.
- */
-qx.Proto._getBlocker = function()
-{
-  if (!this._blocker)
-  {
-    // Create blocker instance
-    this._blocker = new qx.ui.core.ClientDocumentBlocker;
-
-    // Add blocker events
-    this._blocker.addEventListener("mousedown", this.blockHelper, this);
-    this._blocker.addEventListener("mouseup", this.blockHelper, this);
-
-    // Add blocker to client document
-    this.add(this._blocker);
-  }
-
-  return this._blocker;
-};
-
-qx.Proto.blockHelper = function(e)
-{
-  if (this._modalNativeWindow)
-  {
-    try
-    {
-      this._modalNativeWindow._window.focus();
-    }
-    catch(ex)
-    {
-      this.debug("Window seems to be closed already! => Releasing Blocker: (" + e.getType() + ")", ex);
-      this.release(this._modalNativeWindow);
-    }
-  }
-}
-
-qx.Proto.block = function(vActiveChild)
-{
-  // this.debug("BLOCK: " + vActiveChild.toHashCode());
-
-  this._getBlocker().show();
-
-  if (qx.OO.isAvailable("qx.ui.window.Window") && vActiveChild instanceof qx.ui.window.Window)
-  {
-    this._modalWidgets.push(vActiveChild);
-
-    var vOrigIndex = vActiveChild.getZIndex();
-    this._getBlocker().setZIndex(vOrigIndex);
-    vActiveChild.setZIndex(vOrigIndex+1);
-  }
-  else if (qx.OO.isAvailable("qx.client.NativeWindow") && vActiveChild instanceof qx.client.NativeWindow)
-  {
-    this._modalNativeWindow = vActiveChild;
-    this._getBlocker().setZIndex(1e7);
-  }
-}
-
-qx.Proto.release = function(vActiveChild)
-{
-  // this.debug("RELEASE: " + vActiveChild.toHashCode());
-
-  if (vActiveChild)
-  {
-    if (qx.OO.isAvailable("qx.client.NativeWindow") && vActiveChild instanceof qx.client.NativeWindow)
-    {
-      this._modalNativeWindow = null;
-    }
-    else
-    {
-      qx.lang.Array.remove(this._modalWidgets, vActiveChild);
-    }
-  }
-
-  var l = this._modalWidgets.length;
-  if (l == 0)
-  {
-    this._getBlocker().hide();
-  }
-  else
-  {
-    var oldActiveChild = this._modalWidgets[l-1];
-
-    var o = oldActiveChild.getZIndex();
-    this._getBlocker().setZIndex(o);
-    oldActiveChild.setZIndex(o+1);
-  }
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CSS API
----------------------------------------------------------------------------
-*/
-
-qx.Proto.createStyleElement = function(vCssText) {
-  return qx.html.StyleSheet.createElement(vCssText);
-}
-
-qx.Proto.addCssRule = function(vSheet, vSelector, vStyle) {
-  return qx.html.StyleSheet.addRule(vSheet, vSelector, vStyle);
-}
-
-qx.Proto.removeCssRule = function(vSheet, vSelector) {
-  return qx.html.StyleSheet.removeRule(vSheet, vSelector);
-}
-
-qx.Proto.removeAllCssRules = function(vSheet) {
-  return qx.html.StyleSheet.removeAllRules(vSheet);
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CSS FIX
----------------------------------------------------------------------------
-*/
-if (qx.Settings.getValueOfClass("qx.ui.core.ClientDocument", "boxModelCorrection")) {
-  qx.html.StyleSheet.createElement("html,body{margin:0;border:0;padding:0;}" +
-    " html{border:0 none;} *{" + qx.core.Client.getInstance().getEngineBoxSizingAttribute() +
-    ":border-box;} img{" + qx.core.Client.getInstance().getEngineBoxSizingAttribute() +
-    ":content-box;}");
-}
-if (qx.Settings.getValueOfClass("qx.ui.core.ClientDocument", "enableApplicationLayout")) {
-  qx.html.StyleSheet.createElement("html,body{width:100%;height:100%;overflow:hidden;}");
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  GLOBAL CURSOR SUPPORT
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyGlobalCursor = function(propValue, propOldValue, propData)
-{
-  if (!this._globalCursorStyleSheet) {
-    this._globalCursorStyleSheet = this.createStyleElement();
-  }
-
-  // Selector based remove does not work with the "*" selector in mshtml
-  // this.removeCssRule(this._globalCursorStyleSheet, "*");
-
-  this.removeAllCssRules(this._globalCursorStyleSheet);
-
-  if (propValue) {
-    this.addCssRule(this._globalCursorStyleSheet, "*", "cursor:" + propValue + " !important");
-  }
-
-  return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  WINDOW RESIZE HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onwindowresize = function(e)
-{
-  // Hide popups, tooltips, ...
-  if (qx.OO.isAvailable("qx.manager.object.PopupManager")) {
-    qx.manager.object.PopupManager.getInstance().update();
-  }
-
-  // Update children
-  this._recomputeInnerWidth();
-  this._recomputeInnerHeight();
-
-  // Flush queues
-  qx.ui.core.Widget.flushGlobalQueues();
-}
-
-// This was an idea to allow mozilla more realtime document resize updates
-// but it seems so, that mozilla stops javascript execution while the user
-// resize windows. Bad.
-
-/*
-qx.Proto._onwindowresizehelper = function()
-{
-  // Test for changes
-  var t1 = this._recomputeInnerWidth();
-  var t2 = this._recomputeInnerHeight();
-
-  // Flush queues
-  if (t1 || t2) {
-    qx.ui.core.Widget.flushGlobalQueues();
-  }
-}
-*/
-
-qx.Proto._computeInnerWidth = function() {
-  return this._document.body.offsetWidth;
-}
-
-qx.Proto._computeInnerHeight = function() {
-  return this._document.body.offsetHeight;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  delete this._document;
-  delete this._modalWidgets;
-  delete this._modalNativeWindow;
-
-  // Remove Resize Handler
-  this.removeEventListener("windowresize", this._onwindowresize);
-
-  this._globalCursorStyleSheet = null;
-
-  if (this._blocker)
-  {
-    this._blocker.removeEventListener("mousedown", this.blockHelper, this);
-    this._blocker.removeEventListener("mouseup", this.blockHelper, this);
-
-    this._blocker.dispose();
-    this._blocker = null;
-  }
-
-  /*
-  if (this._resizeHelper)
-  {
-    window.clearInterval(this._resizeHelper);
-    this._resizeHelper = null;
-  }
-  */
-
-  return qx.ui.layout.CanvasLayout.prototype.dispose.call(this);
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/core/ClientDocumentBlocker.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/core/ClientDocumentBlocker.js
deleted file mode 100644 (file)
index a49b894..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-
-************************************************************************ */
-
-/*!
-  qx.ui.core.ClientDocumentBlocker blocks the inputs from the user.
-  This will be used internally to allow better modal dialogs for example.
-*/
-qx.OO.defineClass("qx.ui.core.ClientDocumentBlocker", qx.ui.basic.Terminator,
-function()
-{
-  qx.ui.basic.Terminator.call(this);
-
-  this.setEdge(0);
-  this.setZIndex(1e8);
-  this.setDisplay(false);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "blocker" });
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/core/Parent.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/core/Parent.js
deleted file mode 100644 (file)
index 649971b..0000000
+++ /dev/null
@@ -1,1255 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#optional(qx.event.handler.FocusHandler)
-#optional(qx.manager.object.ToolTipManager)
-#optional(qx.manager.object.PopupManager)
-#optional(qx.html.ElementFromPoint)
-
-************************************************************************ */
-
-/**
- * Abstract base class for all widget which have child widgets (e.g. layout manager)
- *
- * Don't instantiate this class directly.
- */
-qx.OO.defineClass("qx.ui.core.Parent", qx.ui.core.Widget,
-function()
-{
-  if (this.classname == qx.ui.core.Parent.ABSTRACT_CLASS) {
-    throw new Error("Please omit the usage of qx.ui.core.Parent directly. Choose between any widget which inherits from qx.ui.core.Parent and so comes with a layout implementation!");
-  }
-
-  qx.ui.core.Widget.call(this);
-
-  // Contains all children
-  this._children = [];
-
-  // Create instanceof layout implementation
-  this._layoutImpl = this._createLayoutImpl();
-});
-
-qx.ui.core.Parent.ABSTRACT_CLASS = "qx.ui.core.Parent";
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/** Individual focus handler for all child elements. */
-qx.OO.addProperty({ name : "focusHandler", type : "object", instance : "qx.event.handler.FocusHandler" });
-
-/** The current active child. */
-qx.OO.addProperty({ name : "activeChild", type : "object", instance : "qx.ui.core.Widget" });
-
-/** The current focused child. */
-qx.OO.addProperty({ name : "focusedChild", type : "object", instance : "qx.ui.core.Widget" });
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CACHED PRIVATE PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/** all visible child widgets */
-qx.OO.addCachedProperty({ name : "visibleChildren", defaultValue : null });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  FOCUS HANDLING
----------------------------------------------------------------------------
-*/
-
-/**
- * Wether the widget has its own focus handler or uses one of its parent's
- * focus handler.
- *
- * @return {Boolean} wether the widget has its own focus handler
- */
-qx.Proto.isFocusRoot = function() {
-  return this.getFocusHandler() != null;
-}
-
-
-/**
- * Return the responsible focus handler
- *
- * @return {qx.event.handler.FocusHandler}
- */
-qx.Proto.getFocusRoot = function()
-{
-  if (this.isFocusRoot()) {
-    return this;
-  }
-
-  if(this._hasParent) {
-    return this.getParent().getFocusRoot();
-  }
-
-  return null;
-}
-
-
-/**
- * Let the widget use its own focus handler
- */
-qx.Proto.activateFocusRoot = function() {
-  this.setFocusHandler(new qx.event.handler.FocusHandler(this));
-}
-
-
-/**
- * Delegate keyevent to the focus handler
- */
-qx.Proto._onfocuskeyevent = function(e) {
-  this.getFocusHandler()._onkeyevent(this, e);
-}
-
-qx.Proto._modifyFocusHandler = function(propValue, propOldValue, propData)
-{
-  if (propValue)
-  {
-    // Add Key Handler
-    this.addEventListener("keydown", this._onfocuskeyevent);
-    this.addEventListener("keypress", this._onfocuskeyevent);
-
-    // Activate focus handling (but keep already configured tabIndex)
-    if (this.getTabIndex() < 1) {
-      this.setTabIndex(1);
-    }
-
-    // But hide the focus outline
-    this.setHideFocus(true);
-
-    // Make myself the default
-    this.setActiveChild(this);
-  }
-  else
-  {
-    // Remove Key Handler
-    this.removeEventListener("keydown", this._onfocuskeyevent);
-    this.removeEventListener("keypress", this._onfocuskeyevent);
-
-    // Deactivate focus handling
-    this.setTabIndex(-1);
-
-    // Don't hide focus outline
-    this.setHideFocus(false);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyFocusedChild = function(propValue, propOldValue, propData)
-{
-  // this.debug("FocusedChild: " + propValue);
-
-  var vFocusValid = propValue != null;
-  var vBlurValid = propOldValue != null;
-
-  if (qx.OO.isAvailable("qx.manager.object.PopupManager") && vFocusValid)
-  {
-    var vMgr = qx.manager.object.PopupManager.getInstance();
-    if (vMgr) {
-      vMgr.update(propValue);
-    }
-  }
-
-  if (vBlurValid)
-  {
-    // Dispatch FocusOut
-    if (propOldValue.hasEventListeners("focusout"))
-    {
-      var vEventObject = new qx.event.type.FocusEvent("focusout", propOldValue);
-
-      if (vFocusValid) {
-        vEventObject.setRelatedTarget(propValue);
-      }
-
-      propOldValue.dispatchEvent(vEventObject);
-      vEventObject.dispose();
-    }
-  }
-
-  if (vFocusValid)
-  {
-    if (propValue.hasEventListeners("focusin"))
-    {
-      // Dispatch FocusIn
-      var vEventObject = new qx.event.type.FocusEvent("focusin", propValue);
-
-      if (vBlurValid) {
-        vEventObject.setRelatedTarget(propOldValue);
-      }
-
-      propValue.dispatchEvent(vEventObject);
-      vEventObject.dispose();
-    }
-  }
-
-  if (vBlurValid)
-  {
-    if (this.getActiveChild() == propOldValue && !vFocusValid) {
-      this.setActiveChild(null);
-    }
-
-    propOldValue.setFocused(false);
-
-    // Dispatch Blur
-    var vEventObject = new qx.event.type.FocusEvent("blur", propOldValue);
-
-    if (vFocusValid) {
-      vEventObject.setRelatedTarget(propValue);
-    }
-
-    propOldValue.dispatchEvent(vEventObject);
-
-    if (qx.OO.isAvailable("qx.manager.object.ToolTipManager"))
-    {
-      var vMgr = qx.manager.object.ToolTipManager.getInstance();
-      if (vMgr) {
-        vMgr.handleBlur(vEventObject);
-      }
-    }
-
-    vEventObject.dispose();
-  }
-
-  if (vFocusValid)
-  {
-    this.setActiveChild(propValue);
-    propValue.setFocused(true);
-    qx.event.handler.EventHandler.getInstance().setFocusRoot(this);
-
-    // Dispatch Focus
-    var vEventObject = new qx.event.type.FocusEvent("focus", propValue);
-
-    if (vBlurValid) {
-      vEventObject.setRelatedTarget(propOldValue);
-    }
-
-    propValue.dispatchEvent(vEventObject);
-
-    if (qx.OO.isAvailable("qx.manager.object.ToolTipManager"))
-    {
-      var vMgr = qx.manager.object.ToolTipManager.getInstance();
-      if (vMgr) {
-        vMgr.handleFocus(vEventObject);
-      }
-    }
-
-    vEventObject.dispose();
-  }
-
-  // Flush Queues
-  // Do we really need this?
-  // qx.ui.core.Widget.flushGlobalQueues();
-
-  return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  LAYOUT IMPLEMENTATION
----------------------------------------------------------------------------
-*/
-
-qx.Proto._layoutImpl = null;
-
-
-/**
- * abstract method. Create layout implementation.
- *
- * This method must be overwritten by all subclasses
- *
- * return {qx.renderer.layout.LayoutImpl}
- */
-qx.Proto._createLayoutImpl = function() {
-  return null;
-}
-
-/**
- * Return the layout implementation.
- *
- * return {qx.renderer.layout.LayoutImpl}
- */
-qx.Proto.getLayoutImpl = function() {
-  return this._layoutImpl;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CHILDREN MANAGMENT: MANAGE ALL
----------------------------------------------------------------------------
-*/
-
-/**
- * Return the array of all children
- *
- * @return {qx.ui.core.Widget[]} all children
- */
-qx.Proto.getChildren = function() {
-  return this._children;
-}
-
-/**
- * Get number of children
- *
- * @return {Integer} number of children
- */
-qx.Proto.getChildrenLength = function() {
-  return this.getChildren().length;
-}
-
-/**
- * Check if the widget has children
- *
- * @retun {boolean} wether the widget has children
- */
-qx.Proto.hasChildren = function() {
-  return this.getChildrenLength() > 0;
-}
-
-/**
- * Check if there are any childrens inside
- *
- * @return {Boolean} wether the number of children is 0
- */
-qx.Proto.isEmpty = function() {
-  return this.getChildrenLength() == 0;
-}
-
-/**
- * Get the index of a child widget.
- *
- * @param vChild {qx.ui.core.Widget}
- * @return {Integer} index of the child widget
- */
-qx.Proto.indexOf = function(vChild) {
-  return this.getChildren().indexOf(vChild);
-}
-
-/**
- * Check if the given widget is a child
- *
- * @param vWidget {qx.ui.core.Widget} The widget which should be checked.
- */
-qx.Proto.contains = function(vWidget)
-{
-  switch(vWidget)
-  {
-    case null:
-      return false;
-
-    case this:
-      return true;
-
-    default:
-      // try the next parent of the widget (recursive until found)
-      return this.contains(vWidget.getParent());
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CHILDREN MANAGMENT: MANAGE VISIBLE ONES
-
-  uses a cached private property
----------------------------------------------------------------------------
-*/
-
-/**
- * Return the array of all visible children
- * (which are configured as visible=true)
- *
- * @return {qx.ui.core.Widget[]} all visible children
- */
-qx.Proto._computeVisibleChildren = function()
-{
-  var vVisible = [];
-  var vChildren = this.getChildren();
-  var vLength = vChildren.length;
-
-  for (var i=0; i<vLength; i++)
-  {
-    var vChild = vChildren[i];
-    if (vChild._isDisplayable) {
-      vVisible.push(vChild);
-    }
-  }
-
-  return vVisible;
-}
-
-/*!
-  Get length of visible children
-*/
-qx.Proto.getVisibleChildrenLength = function() {
-  return this.getVisibleChildren().length;
-}
-
-/*!
-  Check if the widget has any visible children
-*/
-qx.Proto.hasVisibleChildren = function() {
-  return this.getVisibleChildrenLength() > 0;
-}
-
-/*!
-  Check if there are any visible childrens inside
-*/
-qx.Proto.isVisibleEmpty = function() {
-  return this.getVisibleChildrenLength() == 0;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CHILDREN MANAGMENT: ADD
----------------------------------------------------------------------------
-*/
-
-/*!
-  Add/Append another widget. Allows to add multiple at
-  one, a parameter could be a widget.
-*/
-qx.Proto.add = function()
-{
-  var vWidget;
-
-  for (var i=0, l=arguments.length; i<l; i++)
-  {
-    vWidget = arguments[i];
-
-    if (!(vWidget instanceof qx.ui.core.Parent) && !(vWidget instanceof qx.ui.basic.Terminator))
-    {
-      throw new Error("Invalid Widget: " + vWidget);
-    }
-    else
-    {
-      vWidget.setParent(this);
-    }
-  }
-
-  return this;
-}
-
-qx.Proto.addAt = function(vChild, vIndex)
-{
-  if (vIndex == null || vIndex < 0) {
-    throw new Error("Not a valid index for addAt(): " + vIndex);
-  }
-
-  if (vChild.getParent() == this)
-  {
-    var vChildren = this.getChildren();
-    var vOldIndex = vChildren.indexOf(vChild);
-
-    if (vOldIndex != vIndex)
-    {
-      if (vOldIndex != -1) {
-        qx.lang.Array.removeAt(vChildren, vOldIndex);
-      }
-
-      qx.lang.Array.insertAt(vChildren, vChild, vIndex);
-
-      if (this._initialLayoutDone)
-      {
-        this._invalidateVisibleChildren();
-        this.getLayoutImpl().updateChildrenOnMoveChild(vChild, vIndex, vOldIndex);
-      }
-    }
-  }
-  else
-  {
-    vChild._insertIndex = vIndex;
-    vChild.setParent(this);
-  }
-}
-
-qx.Proto.addAtBegin = function(vChild) {
-  return this.addAt(vChild, 0);
-}
-
-qx.Proto.addAtEnd = function(vChild)
-{
-  // we need to fix here, when the child is already inside myself, but
-  // want to change its position
-  var vLength = this.getChildrenLength();
-  return this.addAt(vChild, vChild.getParent() == this ? vLength - 1 : vLength);
-}
-
-/*!
-  Add a widget before another already inserted child
-*/
-qx.Proto.addBefore = function(vChild, vBefore)
-{
-  var vChildren = this.getChildren();
-  var vTargetIndex = vChildren.indexOf(vBefore);
-
-  if (vTargetIndex == -1) {
-    throw new Error("Child to add before: " + vBefore + " is not inside this parent.");
-  }
-
-  var vSourceIndex = vChildren.indexOf(vChild);
-
-  if (vSourceIndex == -1 || vSourceIndex > vTargetIndex) {
-    vTargetIndex++;
-  }
-
-  return this.addAt(vChild, Math.max(0, vTargetIndex-1));
-}
-
-/*!
-  Add a widget after another already inserted child
-*/
-qx.Proto.addAfter = function(vChild, vAfter)
-{
-  var vChildren = this.getChildren();
-  var vTargetIndex = vChildren.indexOf(vAfter);
-
-  if (vTargetIndex == -1) {
-    throw new Error("Child to add after: " + vAfter + " is not inside this parent.");
-  }
-
-  var vSourceIndex = vChildren.indexOf(vChild);
-
-  if (vSourceIndex != -1 && vSourceIndex < vTargetIndex) {
-    vTargetIndex--;
-  }
-
-  return this.addAt(vChild, Math.min(vChildren.length, vTargetIndex+1));
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CHILDREN MANAGMENT: REMOVE
----------------------------------------------------------------------------
-*/
-
-/*!
-  Remove one or multiple childrens.
-*/
-qx.Proto.remove = function()
-{
-  var vWidget;
-
-  for (var i=0, l=arguments.length; i<l; i++)
-  {
-    vWidget = arguments[i];
-
-    if (!(vWidget instanceof qx.ui.core.Parent) && !(vWidget instanceof qx.ui.basic.Terminator))
-    {
-      throw new Error("Invalid Widget: " + vWidget);
-    }
-    else if (vWidget.getParent() == this)
-    {
-      vWidget.setParent(null);
-    }
-  }
-}
-
-qx.Proto.removeAt = function(vIndex)
-{
-  var vChild = this.getChildren()[vIndex];
-
-  if (vChild)
-  {
-    delete vChild._insertIndex;
-
-    vChild.setParent(null);
-  }
-}
-
-/*!
-  Remove all childrens.
-*/
-qx.Proto.removeAll = function()
-{
-  var cs = this.getChildren();
-  var co = cs[0];
-
-  while (co)
-  {
-    this.remove(co);
-    co = cs[0];
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CHILDREN MANAGMENT: FIRST CHILD
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getFirstChild = function() {
-  return qx.lang.Array.getFirst(this.getChildren());
-}
-
-qx.Proto.getFirstVisibleChild = function() {
-  return qx.lang.Array.getFirst(this.getVisibleChildren());
-}
-
-qx.Proto.getFirstActiveChild = function(vIgnoreClasses) {
-  return qx.ui.core.Widget.getActiveSiblingHelper(null, this, 1, vIgnoreClasses, "first");
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CHILDREN MANAGMENT: LAST CHILD
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getLastChild = function() {
-  return qx.lang.Array.getLast(this.getChildren());
-}
-
-qx.Proto.getLastVisibleChild = function() {
-  return qx.lang.Array.getLast(this.getVisibleChildren());
-}
-
-qx.Proto.getLastActiveChild = function(vIgnoreClasses) {
-  return qx.ui.core.Widget.getActiveSiblingHelper(null, this, -1, vIgnoreClasses, "last");
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CHILDREN MANAGMENT: LOOP UTILS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.forEachChild = function(vFunc)
-{
-  var ch=this.getChildren(), chc, i=-1;
-  while(chc=ch[++i]) {
-    vFunc.call(chc, i);
-  }
-}
-
-qx.Proto.forEachVisibleChild = function(vFunc)
-{
-  var ch=this.getVisibleChildren(), chc, i=-1;
-  while(chc=ch[++i]) {
-    vFunc.call(chc, i);
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  APPEAR/DISAPPEAR MESSAGES FOR CHILDREN
----------------------------------------------------------------------------
-*/
-
-qx.Proto._beforeAppear = function()
-{
-  qx.ui.core.Widget.prototype._beforeAppear.call(this);
-
-  this.forEachVisibleChild(function() {
-    if (this.isAppearRelevant()) {
-      this._beforeAppear();
-    }
-  });
-}
-
-qx.Proto._afterAppear = function()
-{
-  qx.ui.core.Widget.prototype._afterAppear.call(this);
-
-  this.forEachVisibleChild(function() {
-    if (this.isAppearRelevant()) {
-      this._afterAppear();
-    }
-  });
-}
-
-qx.Proto._beforeDisappear = function()
-{
-  qx.ui.core.Widget.prototype._beforeDisappear.call(this);
-
-  this.forEachVisibleChild(function() {
-    if (this.isAppearRelevant()) {
-      this._beforeDisappear();
-    }
-  });
-}
-
-qx.Proto._afterDisappear = function()
-{
-  qx.ui.core.Widget.prototype._afterDisappear.call(this);
-
-  this.forEachVisibleChild(function() {
-    if (this.isAppearRelevant()) {
-      this._afterDisappear();
-    }
-  });
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  INSERTDOM/REMOVEDOM MESSAGES FOR CHILDREN
----------------------------------------------------------------------------
-*/
-
-qx.Proto._beforeInsertDom = function()
-{
-  qx.ui.core.Widget.prototype._beforeInsertDom.call(this);
-
-  this.forEachVisibleChild(function() {
-    if (this.isAppearRelevant()) {
-      this._beforeInsertDom();
-    }
-  });
-}
-
-qx.Proto._afterInsertDom = function()
-{
-  qx.ui.core.Widget.prototype._afterInsertDom.call(this);
-
-  this.forEachVisibleChild(function() {
-    if (this.isAppearRelevant()) {
-      this._afterInsertDom();
-    }
-  });
-}
-
-qx.Proto._beforeRemoveDom = function()
-{
-  qx.ui.core.Widget.prototype._beforeRemoveDom.call(this);
-
-  this.forEachVisibleChild(function() {
-    if (this.isAppearRelevant()) {
-      this._beforeRemoveDom();
-    }
-  });
-}
-
-qx.Proto._afterRemoveDom = function()
-{
-  qx.ui.core.Widget.prototype._afterRemoveDom.call(this);
-
-  this.forEachVisibleChild(function() {
-    if (this.isAppearRelevant()) {
-      this._afterRemoveDom();
-    }
-  });
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPLAYBLE HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._handleDisplayableCustom = function(vDisplayable, vParent, vHint)
-{
-  this.forEachChild(function() {
-    this._handleDisplayable();
-  });
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  STATE QUEUE
----------------------------------------------------------------------------
-*/
-
-qx.Proto._addChildrenToStateQueue = function()
-{
-  this.forEachVisibleChild(function() {
-    this.addToStateQueue();
-  });
-}
-
-qx.Proto.recursiveAddToStateQueue = function()
-{
-  this.addToStateQueue();
-
-  this.forEachVisibleChild(function() {
-    this.recursiveAddToStateQueue();
-  });
-}
-
-qx.Proto._recursiveAppearanceThemeUpdate = function(vNewAppearanceTheme, vOldAppearanceTheme)
-{
-  qx.ui.core.Widget.prototype._recursiveAppearanceThemeUpdate.call(this, vNewAppearanceTheme, vOldAppearanceTheme);
-
-  this.forEachVisibleChild(function() {
-    this._recursiveAppearanceThemeUpdate(vNewAppearanceTheme, vOldAppearanceTheme);
-  });
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CHILDREN QUEUE
----------------------------------------------------------------------------
-*/
-
-qx.Proto._addChildToChildrenQueue = function(vChild)
-{
-  if (!vChild._isInParentChildrenQueue && !vChild._isDisplayable) {
-    this.warn("Ignoring invisible child: " + vChild);
-  }
-
-  if (!vChild._isInParentChildrenQueue && vChild._isDisplayable)
-  {
-    qx.ui.core.Widget.addToGlobalLayoutQueue(this);
-
-    if (!this._childrenQueue) {
-      this._childrenQueue = {};
-    }
-
-    this._childrenQueue[vChild.toHashCode()] = vChild;
-  }
-}
-
-qx.Proto._removeChildFromChildrenQueue = function(vChild)
-{
-  if (this._childrenQueue && vChild._isInParentChildrenQueue)
-  {
-    delete this._childrenQueue[vChild.toHashCode()];
-
-    if (qx.lang.Object.isEmpty(this._childrenQueue)) {
-      qx.ui.core.Widget.removeFromGlobalLayoutQueue(this);
-    }
-  }
-}
-
-qx.Proto._flushChildrenQueue = function()
-{
-  if (!qx.lang.Object.isEmpty(this._childrenQueue))
-  {
-    this.getLayoutImpl().flushChildrenQueue(this._childrenQueue);
-    delete this._childrenQueue;
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  LAYOUT QUEUE
----------------------------------------------------------------------------
-*/
-
-qx.Proto._addChildrenToLayoutQueue = function(p)
-{
-  this.forEachChild(function() {
-    this.addToLayoutChanges(p);
-  });
-}
-
-qx.Proto._layoutChild = function(vChild)
-{
-  if (!vChild._isDisplayable)
-  {
-    this.warn("Want to render an invisible child: " + vChild + " -> omitting!");
-    return;
-  }
-
-  // APPLY LAYOUT
-  var vChanges = vChild._layoutChanges;
-
-  // this.debug("Layouting " + vChild + ": " + qx.lang.Object.getKeysAsString(vChanges));
-
-  try
-  {
-    if (vChanges.borderX) {
-      this._applyBorderX(vChild, vChanges);
-    }
-
-    if (vChanges.borderY) {
-      this._applyBorderY(vChild, vChanges);
-    }
-  }
-  catch(ex)
-  {
-    this.error("Could not apply border to child " + vChild, ex);
-  }
-
-  try
-  {
-    if (vChanges.paddingLeft || vChanges.paddingRight) {
-      vChild._applyPaddingX(this, vChanges);
-    }
-
-    if (vChanges.paddingTop || vChanges.paddingBottom) {
-      vChild._applyPaddingY(this, vChanges);
-    }
-  }
-  catch(ex)
-  {
-    this.error("Could not apply padding to child " + vChild, ex);
-  }
-
-
-  // WRAP TO LAYOUT ENGINE
-  try
-  {
-    this.getLayoutImpl().layoutChild(vChild, vChanges);
-  }
-  catch(ex)
-  {
-    this.error("Could not layout child " + vChild + " through layout handler", ex);
-  }
-
-
-  // POST LAYOUT
-  try
-  {
-    vChild._layoutPost(vChanges);
-  }
-  catch(ex)
-  {
-    this.error("Could not post layout child " + vChild, ex);
-  }
-
-
-  // DISPLAY DOM NODE
-  try
-  {
-    // insert dom node (if initial flag enabled)
-    if (vChanges.initial)
-    {
-      vChild._initialLayoutDone = true;
-      qx.ui.core.Widget.addToGlobalDisplayQueue(vChild);
-    }
-  }
-  catch(ex)
-  {
-    this.error("Could not handle display updates from layout flush for child " + vChild, ex);
-  }
-
-
-  // CLEANUP
-  vChild._layoutChanges = {};
-
-  delete vChild._isInParentLayoutQueue;
-  delete this._childrenQueue[vChild.toHashCode()];
-}
-
-qx.Proto._layoutPost = qx.lang.Function.returnTrue;
-
-/*!
-  Fix Operas Rendering Bugs
-*/
-if (qx.core.Client.getInstance().isOpera())
-{
-  qx.Proto._layoutChildOrig = qx.Proto._layoutChild;
-
-  qx.Proto._layoutChild = function(vChild)
-  {
-    if (!vChild._initialLayoutDone || !vChild._layoutChanges.borderX || !vChild._layoutChanges.borderY) {
-      return this._layoutChildOrig(vChild);
-    }
-
-    var vStyle = vChild.getElement().style;
-
-    var vOldDisplay = vStyle.display;
-    vStyle.display = "none";
-    var vRet = this._layoutChildOrig(vChild);
-    vStyle.display = vOldDisplay;
-
-    return vRet;
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DIMENSION CACHE
----------------------------------------------------------------------------
-*/
-
-qx.Proto._computePreferredInnerWidth = function() {
-  return this.getLayoutImpl().computeChildrenNeededWidth();
-}
-
-qx.Proto._computePreferredInnerHeight = function() {
-  return this.getLayoutImpl().computeChildrenNeededHeight();
-}
-
-qx.Proto._changeInnerWidth = function(vNew, vOld)
-{
-  var vLayout = this.getLayoutImpl();
-
-  if (vLayout.invalidateChildrenFlexWidth) {
-    vLayout.invalidateChildrenFlexWidth();
-  }
-
-  this.forEachVisibleChild(function()
-  {
-    if (vLayout.updateChildOnInnerWidthChange(this) && this._recomputeBoxWidth())
-    {
-      this._recomputeOuterWidth();
-      this._recomputeInnerWidth();
-    }
-  });
-}
-
-qx.Proto._changeInnerHeight = function(vNew, vOld)
-{
-  var vLayout = this.getLayoutImpl();
-
-  if (vLayout.invalidateChildrenFlexHeight) {
-    vLayout.invalidateChildrenFlexHeight();
-  }
-
-  this.forEachVisibleChild(function()
-  {
-    if (vLayout.updateChildOnInnerHeightChange(this) && this._recomputeBoxHeight())
-    {
-      this._recomputeOuterHeight();
-      this._recomputeInnerHeight();
-    }
-  });
-}
-
-qx.Proto.getInnerWidthForChild = function(vChild) {
-  return this.getInnerWidth();
-}
-
-qx.Proto.getInnerHeightForChild = function(vChild) {
-  return this.getInnerHeight();
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  WIDGET FROM POINT SUPPORT
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getWidgetFromPointHelper = function(x, y)
-{
-  var ch = this.getChildren();
-
-  for (var chl=ch.length, i=0; i<chl; i++) {
-    if (qx.html.ElementFromPoint.getElementAbsolutePointChecker(ch[i].getElement(), x, y)) {
-      return ch[i].getWidgetFromPointHelper(x, y);
-    }
-  }
-
-  return this;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CLONE
----------------------------------------------------------------------------
-*/
-
-qx.Proto._cloneRecursive = function(cloneInstance)
-{
-  var ch = this.getChildren();
-  var chl = ch.length;
-  var cloneChild;
-
-  for (var i=0; i<chl; i++)
-  {
-    cloneChild = ch[i].clone(true);
-    cloneInstance.add(cloneChild);
-  }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  REMAPPING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._remappingChildTable = [ "add", "remove", "addAt", "addAtBegin", "addAtEnd", "removeAt", "addBefore", "addAfter", "removeAll" ];
-qx.Proto._remapStart = "return this._remappingChildTarget.";
-qx.Proto._remapStop = ".apply(this._remappingChildTarget, arguments)";
-
-qx.Proto.remapChildrenHandlingTo = function(vTarget)
-{
-  var t = this._remappingChildTable;
-
-  this._remappingChildTarget = vTarget;
-
-  for (var i=0, l=t.length, s; i<l; i++) {
-    s = t[i]; this[s] = new Function(qx.ui.core.Parent.prototype._remapStart + s + qx.ui.core.Parent.prototype._remapStop);
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  if (this._layoutImpl)
-  {
-    this._layoutImpl.dispose();
-    this._layoutImpl = null;
-  }
-
-  for (var i in this._childrenQueue) {
-    delete this._childrenQueue[i];
-  }
-
-  this._childrenQueue = null;
-  this._remappingChildTable = null;
-  this._remappingChildTarget = null;
-
-  if (this._children)
-  {
-    var chl = this._children.length;
-
-    for (var i=chl-1; i>=0; i--)
-    {
-      this._children[i].dispose();
-      this._children[i] = null;
-    }
-
-    this._children = null;
-  }
-
-  delete this._cachedVisibleChildren;
-
-  // Remove Key Handler
-  if (this.getFocusHandler())
-  {
-    this.removeEventListener("keydown", this._onfocuskeyevent);
-    this.removeEventListener("keypress", this._onfocuskeyevent);
-
-    this.forceFocusHandler(null);
-  }
-
-  return qx.ui.core.Widget.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/core/ScrollBar.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/core/ScrollBar.js
deleted file mode 100644 (file)
index 51337b3..0000000
+++ /dev/null
@@ -1,262 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-/**
- * A scroll bar.
- *
- * @param horizontal {Boolean ? false} whether the scroll bar should be
- *    horizontal. If false it will be vertical.
- */
-qx.OO.defineClass("qx.ui.core.ScrollBar", qx.ui.layout.BoxLayout,
-function(horizontal) {
-  qx.ui.layout.BoxLayout.call(this, horizontal ? "horizontal" : "vertical");
-
-  this._horizontal = (horizontal == true);
-
-  this._scrollBar = new qx.ui.layout.CanvasLayout;
-  if (qx.core.Client.getInstance().isGecko()) {
-    // NOTE: We have to force not using position:absolute, because this causes
-    //     strange looking scrollbars in some cases (e.g. in Firefox under
-    //     Linux the horizontal scrollbar is too high)
-    this._scrollBar.setStyleProperty("position", "");
-  }
-  this._scrollBar.setOverflow(horizontal ? "scrollX" : "scrollY");
-  this._scrollBar.enableInlineEvent("scroll");
-  this._scrollBar.addEventListener("scroll", this._onscroll, this);
-
-  this._scrollContent = new qx.ui.basic.Terminator;
-  if (qx.core.Client.getInstance().isGecko()) {
-    this._scrollContent.setStyleProperty("position", "");
-  }
-  this._scrollBar.add(this._scrollContent);
-
-  if (this._horizontal) {
-    this._scrollContent.setHeight(5);
-    this._scrollBar.setWidth("100%");
-    this._scrollBar.setHeight(this._getScrollBarWidth());
-
-    // IE needs that the scrollbar element has a width of +1
-    if (qx.core.Client.getInstance().isMshtml()) {
-      this.setHeight(this._getScrollBarWidth());
-      this.setOverflow("hidden");
-      this._scrollBar.setHeight(this._getScrollBarWidth() + 1);
-      this._scrollBar.setTop(-1);
-    }
-  } else {
-    this._scrollContent.setWidth(5);
-    this._scrollBar.setHeight("100%");
-    this._scrollBar.setWidth(this._getScrollBarWidth());
-
-    // IE needs that the scrollbar element has a width of +1
-    if (qx.core.Client.getInstance().isMshtml()) {
-      this.setWidth(this._getScrollBarWidth());
-      this.setOverflow("hidden");
-      this._scrollBar.setWidth(this._getScrollBarWidth() + 1);
-      this._scrollBar.setLeft(-1);
-    }
-  }
-
-  this.add(this._scrollBar);
-
-  this.setMaximum(0);
-});
-
-/**
- * The current value of the scroll bar. This value is between 0 and
- * (maxium - size), where size is the width of a horizontal resp. the height of
- * a vertical scroll bar in pixels.
- *
- * @see #maximum
- */
-qx.OO.addProperty({ name:"value", type:"number", defaultValue:0, allowNull:false });
-
-/**
- * The maximum value of the scroll bar. Note that the size of the scroll bar is
- * substracted.
- *
- * @see #value
- */
-qx.OO.addProperty({ name:"maximum", type:"number", allowNull:false });
-
-/**
- * Whether to merge consecutive scroll event. If true, events will be collected
- * until the user stops scrolling, so the scroll bar itself will move smoothly
- * and the scrolled content will update asynchroniously.
- */
-qx.OO.addProperty({ name:"mergeEvents", type:"boolean", defaultValue:false, allowNull:false });
-
-
-// property checker
-qx.Proto._checkValue = function(propValue, propData) {
-  var innerSize = !this.getElement() ? 0 :
-    (this._horizontal ? this.getInnerWidth() : this.getInnerHeight());
-
-  // NOTE: We can't use Number.limit here because our maximum may get negative
-  //       (when the scrollbar isn't needed). In this case Number.limit returns
-  //       this negative maximum instead of 0. But we need that the minimum is
-  //       stronger than the maximum.
-  //       -> We use Math.max and Math.min
-  return Math.max(0, Math.min(this.getMaximum() - innerSize, propValue));
-}
-
-
-// property modifier
-qx.Proto._modifyValue = function(propValue, propOldValue, propData) {
-  if (! this._internalValueChange && this._isCreated) {
-    this._positionKnob(propValue);
-  }
-  return true;
-}
-
-
-// property modifier
-qx.Proto._modifyMaximum = function(propValue, propOldValue, propData) {
-  if (this._horizontal) {
-    this._scrollContent.setWidth(propValue);
-  } else {
-    this._scrollContent.setHeight(propValue);
-  }
-
-  // recheck the value
-  this.setValue(this._checkValue(this.getValue()));
-
-  return true;
-}
-
-
-// property modifier
-qx.Proto._modifyVisibility = function(propValue, propOldValue, propData) {
-  if (! propValue) {
-    this._positionKnob(0);
-  } else {
-    this._positionKnob(this.getValue());
-  }
-
-  return qx.ui.layout.BoxLayout.prototype._modifyVisibility.call(this, propValue, propOldValue, propData);
-};
-
-
-// overridden
-qx.Proto._computePreferredInnerWidth = function() {
-  return this._horizontal ? 0 : this._getScrollBarWidth();
-}
-
-
-// overridden
-qx.Proto._computePreferredInnerHeight = function() {
-  return this._horizontal ? this._getScrollBarWidth() : 0;
-}
-
-
-/**
- * Gets the width of vertical scroll bar.
- *
- * @return {Integer} the width in pixels.
- */
-qx.Proto._getScrollBarWidth = function() {
-  // Auto-detect the scrollbar width
-  if (qx.ui.core.ScrollBar._scrollBarWidth == null) {
-    var dummy = document.createElement("div");
-    dummy.style.width = "100px";
-    dummy.style.height = "100px";
-    dummy.style.overflow = "scroll";
-    dummy.style.visibility = "hidden";
-    document.body.appendChild(dummy);
-    qx.ui.core.ScrollBar._scrollBarWidth = dummy.offsetWidth - dummy.clientWidth;
-    document.body.removeChild(dummy);
-  }
-  return qx.ui.core.ScrollBar._scrollBarWidth;
-}
-
-
-/**
- * Event handler. Called when the user scrolled.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onscroll = function(evt) {
-  var value = this._horizontal ? this._scrollBar.getScrollLeft() : this._scrollBar.getScrollTop();
-  if (this.getMergeEvents()) {
-    this._lastScrollEventValue = value;
-    window.clearTimeout(this._setValueTimerId);
-    var self = this;
-    this._setValueTimerId = window.setTimeout(function() {
-      self._internalValueChange = true;
-      self.setValue(self._lastScrollEventValue);
-      self._internalValueChange = false;
-      qx.ui.core.Widget.flushGlobalQueues();
-    }, qx.ui.core.ScrollBar.EVENT_DELAY);
-  } else {
-    this._internalValueChange = true;
-    this.setValue(value);
-    this._internalValueChange = false;
-    qx.ui.core.Widget.flushGlobalQueues();
-  }
-}
-
-
-/**
- * Positions the scroll bar knob at a certain value.
- *
- * @param value {Integer} The value where to postion the scroll bar.
- */
-qx.Proto._positionKnob = function(value) {
-  if (this._horizontal) {
-    this._scrollBar.setScrollLeft(value);
-  } else {
-    this._scrollBar.setScrollTop(value);
-  }
-}
-
-
-// overridden
-qx.Proto._afterAppear = function() {
-  qx.ui.layout.BoxLayout.prototype._afterAppear.call(this);
-
-  //this.debug("Setting to value: " + this.getValue());
-  this._positionKnob(this.getValue());
-}
-
-
-// overridden
-qx.Proto.dispose = function() {
-  if (this.getDisposed()) {
-    return;
-  }
-
-  if (this._scrollContent) {
-    this._scrollContent.dispose();
-    this._scrollContent = null;
-  }
-
-  return qx.ui.layout.BoxLayout.prototype.dispose.call(this);
-}
-
-
-/**
- * The delay when to update the scroll bar value after a scroll event if
- * {@link #mergeEvents} is true (in milliseconds). All scroll events that arrive
- * in shorter time will be merged.
- */
-qx.Class.EVENT_DELAY = 250;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/core/Widget.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/core/Widget.js
deleted file mode 100644 (file)
index 4ee1b97..0000000
+++ /dev/null
@@ -1,5726 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#require(qx.renderer.color.ColorCache)
-#require(qx.renderer.border.BorderCache)
-#require(qx.manager.object.AppearanceManager)
-#after(qx.component.init.InterfaceInitComponent)
-#optional(qx.ui.core.Parent)
-#optional(qx.ui.form.Button)
-#optional(qx.client.Timer)
-#optional(qx.client.Command)
-#optional(qx.ui.popup.ToolTip)
-#optional(qx.ui.menu.Menu)
-#optional(qx.ui.basic.Inline)
-
-************************************************************************ */
-
-/**
- * This is the main widget, all visible objects in the application extend this.
- *
- * @event beforeAppear {qx.event.type.Event}
- * @event appear {qx.event.type.Event}
- * @event beforeDisappear {qx.event.type.Event}
- * @event disappear {qx.event.type.Event}
- * @event beforeInsertDom {qx.event.type.Event}
- * @event insertDom {qx.event.type.Event}
- * @event beforeRemoveDom {qx.event.type.Event}
- * @event removeDom {qx.event.type.Event}
- * @event create {qx.event.type.Event}
- * @event execute {qx.event.type.Event}
- * @event FADE_FINISHED {qx.event.type.DataEvent}
- * @event mouseover {qx.event.type.MouseEvent} (Fired by {@link qx.event.handler.EventHandler})
- * @event mousemove {qx.event.type.MouseEvent} (Fired by {@link qx.event.handler.EventHandler})
- * @event mouseout {qx.event.type.MouseEvent} (Fired by {@link qx.event.handler.EventHandler})
- * @event mousedown {qx.event.type.MouseEvent} (Fired by {@link qx.event.handler.EventHandler})
- * @event mouseup {qx.event.type.MouseEvent} (Fired by {@link qx.event.handler.EventHandler})
- * @event mousewheel {qx.event.type.MouseEvent} (Fired by {@link qx.event.handler.EventHandler})
- * @event click {qx.event.type.MouseEvent} (Fired by {@link qx.event.handler.EventHandler})
- * @event dblclick {qx.event.type.MouseEvent} (Fired by {@link qx.event.handler.EventHandler})
- * @event contextmenu {qx.event.type.MouseEvent} (Fired by {@link qx.event.handler.EventHandler})
- * @event keydown {qx.event.type.KeyEvent} (Fired by {@link qx.event.handler.EventHandler})
- * @event keypress {qx.event.type.KeyEvent} (Fired by {@link qx.event.handler.EventHandler})
- * @event keyinput {qx.event.type.KeyEvent} (Fired by {@link qx.event.handler.EventHandler})
- * @event keyup {qx.event.type.KeyEvent} (Fired by {@link qx.event.handler.EventHandler})
- * @event focusout {qx.event.type.FocusEvent} (Fired by {@link qx.ui.core.Parent})
- * @event focusin {qx.event.type.FocusEvent} (Fired by {@link qx.ui.core.Parent})
- * @event blur {qx.event.type.FocusEvent} (Fired by {@link qx.ui.core.Parent})
- * @event focus {qx.event.type.FocusEvent} (Fired by {@link qx.ui.core.Parent})
- * @event dragdrop {qx.event.type.DragEvent} (Fired by {@link qx.event.handler.DragAndDropHandler})
- * @event dragout {qx.event.type.DragEvent} (Fired by {@link qx.event.handler.DragAndDropHandler})
- * @event dragover {qx.event.type.DragEvent} (Fired by {@link qx.event.handler.DragAndDropHandler})
- * @event dragmove {qx.event.type.DragEvent} (Fired by {@link qx.event.handler.DragAndDropHandler})
- * @event dragstart {qx.event.type.DragEvent} (Fired by {@link qx.event.handler.DragAndDropHandler})
- * @event dragend {qx.event.type.DragEvent} (Fired by {@link qx.event.handler.DragAndDropHandler})
- */
-qx.OO.defineClass("qx.ui.core.Widget", qx.core.Target,
-function()
-{
-  if (this.classname == qx.ui.core.Widget.ABSTRACT_CLASS) {
-    throw new Error("Please omit the usage of qx.ui.core.Widget directly. Choose between qx.ui.core.Parent and qx.ui.basic.Terminator instead!");
-  }
-
-  qx.core.Target.call(this, true);
-
-
-  // ************************************************************************
-  //   HTML MAPPING DATA STRUCTURES
-  // ************************************************************************
-  // Allows the user to setup styles and attributes without a
-  // need to have the target element created already.
-  /*
-  this._htmlProperties = { className : this.classname }
-  this._htmlAttributes = { qxhashcode : this._hashCode }
-  */
-  this._styleProperties = { position : "absolute" }
-
-
-  // ************************************************************************
-  //   LAYOUT CHANGES
-  // ************************************************************************
-  this._layoutChanges = {};
-
-
-  // ************************************************************************
-  //   APPEARANCE
-  // ************************************************************************
-  this._states = {};
-  this._applyInitialAppearance();
-});
-
-qx.Class.ABSTRACT_CLASS = "qx.ui.core.Widget";
-
-// Will be calculated later (TODO: Move to qx.Dom?)
-qx.Class.SCROLLBAR_SIZE = 16;
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DEFAULT SETTINGS
----------------------------------------------------------------------------
-*/
-
-qx.Settings.setDefault("enableQueueDebug", false);
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  BASIC PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/*!
-  The parent widget (the real object, no ID or something)
-*/
-qx.OO.addProperty({ name : "parent", type : "object", instance : "qx.ui.core.Parent", defaultValue : null });
-
-/*!
-  The element node (if the widget is created, otherwise null)
-*/
-qx.OO.addProperty({ name : "element" });
-
-/*!
-  Simple and fast switch of the visibility of a widget.
-*/
-qx.OO.addProperty({ name : "visibility", type : "boolean", defaultValue : true });
-
-/*!
-  If the widget should be displayed. Use this property instead of visibility if the change
-  in visibility should have effects on the parent widget.
-*/
-qx.OO.addProperty({ name : "display", type : "boolean", defaultValue : true });
-
-/*!
-  If you switch this to true, the widget doesn't handle
-  events directly. It will redirect them to the parent
-  widget.
-*/
-qx.OO.addProperty({ name : "anonymous", type : "boolean", defaultValue : false, getAlias : "isAnonymous" });
-
-/*!
-  The tagname of the element which should automatically be created
-*/
-qx.OO.addProperty({ name : "tagName", type : "string", defaultValue : "div" });
-
-/*!
-  This is used by many layout managers to control the individual horizontal alignment of this widget inside this parent.
-
-  This should be used with caution since in some cases
-  this might give unrespected results.
-*/
-qx.OO.addProperty({ name : "horizontalAlign", type : "string" });
-
-/*!
-  This is used by many layout managers to control the individual vertical alignment of this widget inside this parent.
-
-  This should be used with caution since in some cases
-  this might give unrespected results.
-*/
-qx.OO.addProperty({ name : "verticalAlign", type : "string" });
-
-/*!
-  Should this widget be stretched on the x-axis if the layout handler will do this?
-  Used by some layout handlers (qx.ui.layout.BoxLayout, ...).
-*/
-qx.OO.addProperty({ name : "allowStretchX", type : "boolean", defaultValue : true });
-
-/*!
-  Should this widget be stretched on the y-axis if the layout handler will do this?
-  Used by some layout handlers (qx.ui.layout.BoxLayout, ...).
-*/
-qx.OO.addProperty({ name : "allowStretchY", type : "boolean", defaultValue : true });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  STYLE PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/*!
-  Mapping to native style property z-index.
-
-  This should be used with caution since in some cases
-  this might give unrespected results.
-*/
-qx.OO.addProperty({ name : "zIndex", type : "number" });
-
-/*!
-  The backgroundColor style property of the rendered widget.
-  As input are allowed any instance of qx.renderer.color.Color or a string which defines the color itself.
-*/
-qx.OO.addProperty({ name : "backgroundColor", type : "object", instance : "qx.renderer.color.Color", convert : qx.renderer.color.ColorCache, allowMultipleArguments : true });
-
-/*!
-  The color style property of the rendered widget.
-  As input are allowed any instance of qx.renderer.color.Color or a string which defines the color itself.
-*/
-qx.OO.addProperty({ name : "color", type : "object", instance : "qx.renderer.color.Color", convert : qx.renderer.color.ColorCache, allowMultipleArguments : true });
-
-/*!
-  The border property describes how to paint the border on the widget.
-
-  This should be used with caution since in some cases (mostly complex widgets)
-  this might give unrespected results.
-*/
-qx.OO.addProperty({ name : "border", type : "object", instance : "qx.renderer.border.Border", convert : qx.renderer.border.BorderCache, allowMultipleArguments : true });
-
-/*!
-  Mapping to native style property opacity.
-
-  The uniform opacity setting to be applied across an entire object. Behaves like the new CSS-3 Property.
-  Any values outside the range 0.0 (fully transparent) to 1.0 (fully opaque) will be clamped to this range.
-*/
-qx.OO.addProperty({ name : "opacity", type : "number" });
-
-/*!
-  Mapping to native style property cursor.
-
-  The name of the cursor to show when the mouse pointer is over the widget.
-  This is any valid CSS2 cursor name defined by W3C.
-
-  The following values are possible:
-  <ul><li>default</li>
-  <li>crosshair</li>
-  <li>pointer (hand is the ie name and will mapped to pointer in non-ie).</li>
-  <li>move</li>
-  <li>n-resize</li>
-  <li>ne-resize</li>
-  <li>e-resize</li>
-  <li>se-resize</li>
-  <li>s-resize</li>
-  <li>sw-resize</li>
-  <li>w-resize</li>
-  <li>nw-resize</li>
-  <li>text</li>
-  <li>wait</li>
-  <li>help </li>
-  <li>url([file]) = self defined cursor, file should be an ANI- or CUR-type</li>
-  </ul>
-*/
-qx.OO.addProperty({ name : "cursor", type : "string" });
-
-/*!
-  Mapping to native style property background-image.
-
-  The URI of the image file to use as background image.
-*/
-qx.OO.addProperty({ name : "backgroundImage", type : "string" });
-
-/**
- * Describes how to handle content that is too large to fit inside the widget.
- *
- * Overflow modes:
- * <table>
- * <tr><th>hidden</th><td>The content is clipped</td></tr>
- * <tr><th>auto</th><td>Scroll bars are shown as needed</td></tr>
- * <tr><th>scroll</th><td>Scroll bars are always shown. Even if there is enough room for the content inside the widget.</td></tr>
- * <tr><th>scrollX</th><td>Scroll bars for the X-Axis are always shown. Even if there is enough room for the content inside the widget.</td></tr>
- * <tr><th>scrollY</th><td>Scroll bars for the Y-Axis are always shown. Even if there is enough room for the content inside the widget.</td></tr>
- * </table>
- */
-qx.OO.addProperty({ name : "overflow", type : "string", addToQueue : true });
-
-/*!
-  Clipping of the widget (left)
-*/
-qx.OO.addProperty({ name : "clipLeft", type : "number", impl : "clip" });
-
-/*!
-  Clipping of the widget (top)
-*/
-qx.OO.addProperty({ name : "clipTop", type : "number", impl : "clip" });
-
-/*!
-  Clipping of the widget (width)
-*/
-qx.OO.addProperty({ name : "clipWidth", type : "number", impl : "clip" });
-
-/*!
-  Clipping of the widget (height)
-*/
-qx.OO.addProperty({ name : "clipHeight", type : "number", impl : "clip" });
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MANAGMENT PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/*!
-  Set this to a positive value makes the widget able to get the focus.
-  It even is reachable through the usage of the tab-key.
-
-  Widgets with the same tabIndex are handled through there position
-  in the document.
-*/
-qx.OO.addProperty({ name : "tabIndex", type : "number", defaultValue : -1 });
-
-/*!
-  If the focus outline should be hidden.
-*/
-qx.OO.addProperty({ name : "hideFocus", type : "boolean", defaultValue : false });
-
-/*!
-  Use DOM focussing (focus() and blur() methods of DOM nodes)
-*/
-qx.OO.addProperty({ name : "enableElementFocus", type : "boolean", defaultValue : true });
-
-/*!
-  Handle focus state of this widget.
-
-  someWidget.setFocused(true) set the current focus to this widget.
-  someWidget.setFocused(false) remove the current focus and leave it blank.
-
-  Normally you didn't need to set this directly.
-*/
-qx.OO.addProperty({ name : "focused", type : "boolean", defaultValue : false });
-
-/*!
-  Toggle the possibility to select the element of this widget.
-*/
-qx.OO.addProperty({ name : "selectable", type : "boolean", defaultValue : true, getAlias : "isSelectable" });
-
-/*!
-  Contains the tooltip object connected to the widget.
-*/
-qx.OO.addProperty({ name : "toolTip", type : "object", instance : "qx.ui.popup.ToolTip" });
-
-/*!
-  Contains the context menu object connected to the widget. (Need real implementation)
-*/
-qx.OO.addProperty({ name : "contextMenu", type : "object", instance : "qx.ui.menu.Menu" });
-
-/*!
-  Capture all events and map them to this widget
-*/
-qx.OO.addProperty({ name : "capture", type : "boolean", defaultValue : false });
-
-/*!
-  Contains the support drop types for drag and drop support
-*/
-qx.OO.addProperty({ name : "dropDataTypes" });
-
-/*!
-  A command called if the widget should be excecuted (a placeholder for buttons, ...)
-*/
-qx.OO.addProperty({ name : "command", type : "object", instance : "qx.client.Command" });
-
-/*!
-  Appearance of the widget
-*/
-qx.OO.addProperty({ name : "appearance", type : "string" });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MARGIN/PADDING PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/*!
-  Margin of the widget (top)
-*/
-qx.OO.addProperty({ name : "marginTop", type : "number", addToQueue : true, impl : "marginY" });
-
-/*!
-  Margin of the widget (right)
-*/
-qx.OO.addProperty({ name : "marginRight", type : "number", addToQueue : true, impl : "marginX" });
-
-/*!
-  Margin of the widget (bottom)
-*/
-qx.OO.addProperty({ name : "marginBottom", type : "number", addToQueue : true, impl : "marginY" });
-
-/*!
-  Margin of the widget (left)
-*/
-qx.OO.addProperty({ name : "marginLeft", type : "number", addToQueue : true, impl : "marginX" });
-
-
-/*!
-  Padding of the widget (top)
-*/
-qx.OO.addProperty({ name : "paddingTop", type : "number", addToQueue : true, impl : "paddingY" });
-
-/*!
-  Padding of the widget (right)
-*/
-qx.OO.addProperty({ name : "paddingRight", type : "number", addToQueue : true, impl : "paddingX" });
-
-/*!
-  Padding of the widget (bottom)
-*/
-qx.OO.addProperty({ name : "paddingBottom", type : "number", addToQueue : true, impl : "paddingY" });
-
-/*!
-  Padding of the widget (left)
-*/
-qx.OO.addProperty({ name : "paddingLeft", type : "number", addToQueue : true, impl : "paddingX" });
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  HORIZONAL DIMENSION PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/*!
-  The distance from the outer left border to the parent left area edge.
-
-  You could only set two of the three horizonal dimension properties (boxLeft, boxRight, boxWidth)
-  at the same time. This will be omitted during the setup of the new third value. To reset a value
-  you didn't want anymore, set it to null.
-*/
-qx.OO.addProperty({ name : "left", addToQueue : true, unitDetection : "pixelPercent" });
-
-/*!
-  The distance from the outer right border to the parent right area edge.
-
-  You could only set two of the three horizonal dimension properties (boxLeft, boxRight, boxWidth)
-  at the same time. This will be omitted during the setup of the new third value. To reset a value
-  you didn't want anymore, set it to null.
-*/
-qx.OO.addProperty({ name : "right", addToQueue : true, unitDetection : "pixelPercent" });
-
-/*!
-  The width of the box (including padding and border).
-
-  You could only set two of the three horizonal dimension properties (boxLeft, boxRight, boxWidth)
-  at the same time. This will be omitted during the setup of the new third value. To reset a value
-  you didn't want anymore, set it to null.
-*/
-qx.OO.addProperty({ name : "width", addToQueue : true, unitDetection : "pixelPercentAutoFlex" });
-
-/*!
-  The minimum width of the box (including padding and border).
-
-  Set this to omit the shrinking of the box width under this value.
-*/
-qx.OO.addProperty({ name : "minWidth", addToQueue : true, unitDetection : "pixelPercentAuto" });
-
-/*!
-  The maximum width of the box (including padding and border).
-
-  Set this to omit the expanding of the box width above this value.
-*/
-qx.OO.addProperty({ name : "maxWidth", addToQueue : true, unitDetection : "pixelPercentAuto" });
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  VERTICAL DIMENSION PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/*!
-  The distance from the outer top border to the parent top area edge.
-
-  You could only set two of the three vertical dimension properties (boxTop, boxBottom, boxHeight)
-  at the same time. This will be omitted during the setup of the new third value. To reset a value
-  you didn't want anymore, set it to null.
-*/
-qx.OO.addProperty({ name : "top", addToQueue : true, unitDetection : "pixelPercent" });
-
-/*!
-  The distance from the outer bottom border to the parent bottom area edge.
-
-  You could only set two of the three vertical dimension properties (boxTop, boxBottom, boxHeight)
-  at the same time. This will be omitted during the setup of the new third value. To reset a value
-  you didn't want anymore, set it to null.
-*/
-qx.OO.addProperty({ name : "bottom", addToQueue : true, unitDetection : "pixelPercent" });
-
-/*!
-  The height of the box (including padding and border).
-
-  You could only set two of the three vertical dimension properties (boxTop, boxBottom, boxHeight)
-  at the same time. This will be omitted during the setup of the new third value. To reset a value
-  you didn't want anymore, set it to null.
-*/
-qx.OO.addProperty({ name : "height", addToQueue : true, unitDetection : "pixelPercentAutoFlex" });
-
-/*!
-  The minimum height of the box (including padding and border).
-
-  Set this to omit the shrinking of the box height under this value.
-*/
-qx.OO.addProperty({ name : "minHeight", addToQueue : true, unitDetection : "pixelPercentAuto" });
-
-/*!
-  The maximum height of the box (including padding and border).
-
-  Set this to omit the expanding of the box height above this value.
-*/
-qx.OO.addProperty({ name : "maxHeight", addToQueue : true, unitDetection : "pixelPercentAuto" });
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTY GROUPS
----------------------------------------------------------------------------
-*/
-
-qx.OO.addPropertyGroup({ name : "location", members : [ "left", "top" ]});
-qx.OO.addPropertyGroup({ name : "dimension", members : [ "width", "height" ]});
-
-qx.OO.addPropertyGroup({ name : "space", members : [ "left", "width", "top", "height" ]});
-qx.OO.addPropertyGroup({ name : "edge", members : [ "top", "right", "bottom", "left" ], mode : "shorthand" });
-
-qx.OO.addPropertyGroup({ name : "padding", members : [ "paddingTop", "paddingRight", "paddingBottom", "paddingLeft" ], mode: "shorthand" });
-qx.OO.addPropertyGroup({ name : "margin", members : [ "marginTop", "marginRight", "marginBottom", "marginLeft" ], mode: "shorthand" });
-
-qx.OO.addPropertyGroup({ name : "heights", members : [ "minHeight", "height", "maxHeight" ]});
-qx.OO.addPropertyGroup({ name : "widths", members : [ "minWidth", "width", "maxWidth" ]});
-
-qx.OO.addPropertyGroup({ name : "align", members : [ "horizontalAlign", "verticalAlign" ]});
-qx.OO.addPropertyGroup({ name : "stretch", members : [ "stretchX", "stretchY" ]});
-
-qx.OO.addPropertyGroup({ name : "clipLocation", members : [ "clipLeft", "clipTop" ]});
-qx.OO.addPropertyGroup({ name : "clipDimension", members : [ "clipWidth", "clipHeight" ]});
-qx.OO.addPropertyGroup({ name : "clip", members : [ "clipLeft", "clipTop", "clipWidth", "clipHeight" ]});
-
-
-
-
-
-
-
-
-/* ************************************************************************
-   Class data, properties and methods
-************************************************************************ */
-
-/*
----------------------------------------------------------------------------
-  ALL QUEUES
----------------------------------------------------------------------------
-*/
-
-/**
- * Flush all global queues
- */
-qx.ui.core.Widget.flushGlobalQueues = function() {};
-
-if (qx.Settings.getValueOfClass("qx.ui.core.Widget", "enableQueueDebug"))
-{
-  qx.ui.core.Widget.flushGlobalQueues = function()
-  {
-    if (qx.ui.core.Widget._inFlushGlobalQueues || !qx.core.Init.getInstance().getComponent().isUiReady()) {
-      return;
-    }
-
-    if (!(qx.ui.core.Widget._globalWidgetQueue.length > 0 || qx.ui.core.Widget._globalElementQueue.length > 0 ||
-        qx.ui.core.Widget._globalStateQueue.length > 0  || qx.ui.core.Widget._globalJobQueue.length > 0 ||
-        qx.ui.core.Widget._globalLayoutQueue.length > 0 || qx.ui.core.Widget._fastGlobalDisplayQueue.length > 0 ||
-        !qx.lang.Object.isEmpty(qx.ui.core.Widget._lazyGlobalDisplayQueue))) {
-      return;
-    }
-
-    var globalWidgetQueueLength      = qx.ui.core.Widget._globalWidgetQueue.length;
-    var globalElementQueueLength     = qx.ui.core.Widget._globalElementQueue.length;
-    var globalStateQueueLength       = qx.ui.core.Widget._globalStateQueue.length;
-    var globalJobQueueLength         = qx.ui.core.Widget._globalJobQueue.length;
-    var globalLayoutQueueLength      = qx.ui.core.Widget._globalLayoutQueue.length;
-    var fastGlobalDisplayQueueLength = qx.ui.core.Widget._fastGlobalDisplayQueue.length;
-    var lazyGlobalDisplayQueueLength = qx.ui.core.Widget._lazyGlobalDisplayQueue ? qx.ui.core.Widget._lazyGlobalDisplayQueue.length : 0;
-
-    // Also used for inline event handling to seperate 'real' events
-    qx.ui.core.Widget._inFlushGlobalQueues = true;
-
-    var vStart;
-
-    vStart = (new Date).valueOf();
-    qx.ui.core.Widget.flushGlobalWidgetQueue();
-    var vWidgetDuration = (new Date).valueOf() - vStart;
-
-    vStart = (new Date).valueOf();
-    qx.ui.core.Widget.flushGlobalStateQueue();
-    var vStateDuration = (new Date).valueOf() - vStart;
-
-    vStart = (new Date).valueOf();
-    qx.ui.core.Widget.flushGlobalElementQueue();
-    var vElementDuration = (new Date).valueOf() - vStart;
-
-    vStart = (new Date).valueOf();
-    qx.ui.core.Widget.flushGlobalJobQueue();
-    var vJobDuration = (new Date).valueOf() - vStart;
-
-    vStart = (new Date).valueOf();
-    qx.ui.core.Widget.flushGlobalLayoutQueue();
-    var vLayoutDuration = (new Date).valueOf() - vStart;
-
-    vStart = (new Date).valueOf();
-    qx.ui.core.Widget.flushGlobalDisplayQueue();
-    var vDisplayDuration = (new Date).valueOf() - vStart;
-
-    var vSum = vWidgetDuration + vStateDuration + vElementDuration + vJobDuration + vLayoutDuration + vDisplayDuration;
-
-    if (vSum > 0)
-    {
-      var logger = qx.log.Logger.getClassLogger(qx.ui.core.Widget);
-      logger.debug("Flush Global Queues");
-      logger.debug("Widgets: " + vWidgetDuration + "ms (" + globalWidgetQueueLength + ")");
-      logger.debug("State: " + vStateDuration + "ms (" + globalStateQueueLength + ")");
-      logger.debug("Element: " + vElementDuration + "ms (" + globalElementQueueLength + ")");
-      logger.debug("Job: " + vJobDuration + "ms (" + globalJobQueueLength + ")");
-      logger.debug("Layout: " + vLayoutDuration + "ms (" + globalLayoutQueueLength + ")");
-      logger.debug("Display: " + vDisplayDuration + "ms (fast:" + fastGlobalDisplayQueueLength + ",lazy:" + lazyGlobalDisplayQueueLength + ")");
-
-      window.status = "Flush: Widget:" + vWidgetDuration + " State:" + vStateDuration + " Element:" + vElementDuration + " Job:" + vJobDuration + " Layout:" + vLayoutDuration + " Display:" + vDisplayDuration;
-    }
-
-    delete qx.ui.core.Widget._inFlushGlobalQueues;
-  }
-}
-else
-{
-  qx.ui.core.Widget.flushGlobalQueues = function()
-  {
-    if (qx.ui.core.Widget._inFlushGlobalQueues || !qx.core.Init.getInstance().getComponent().isUiReady()) {
-      return;
-    }
-
-    // Also used for inline event handling to seperate 'real' events
-    qx.ui.core.Widget._inFlushGlobalQueues = true;
-
-    qx.ui.core.Widget.flushGlobalWidgetQueue();
-    qx.ui.core.Widget.flushGlobalStateQueue();
-    qx.ui.core.Widget.flushGlobalElementQueue();
-    qx.ui.core.Widget.flushGlobalJobQueue();
-    qx.ui.core.Widget.flushGlobalLayoutQueue();
-    qx.ui.core.Widget.flushGlobalDisplayQueue();
-
-    delete qx.ui.core.Widget._inFlushGlobalQueues;
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  WIDGET QUEUE
-
-  Allows widgets to register to the widget queue to do multiple things
-  before the other queues will be flushed
----------------------------------------------------------------------------
-*/
-
-qx.ui.core.Widget._globalWidgetQueue = [];
-
-qx.ui.core.Widget.addToGlobalWidgetQueue = function(vWidget)
-{
-  if (!vWidget._isInGlobalWidgetQueue && vWidget._isDisplayable)
-  {
-    qx.ui.core.Widget._globalWidgetQueue.push(vWidget);
-    vWidget._isInGlobalWidgetQueue = true;
-  }
-}
-
-qx.ui.core.Widget.removeFromGlobalWidgetQueue = function(vWidget)
-{
-  if (vWidget._isInGlobalWidgetQueue)
-  {
-    qx.lang.Array.remove(qx.ui.core.Widget._globalWidgetQueue, vWidget);
-    delete vWidget._isInGlobalWidgetQueue;
-  }
-}
-
-qx.ui.core.Widget.flushGlobalWidgetQueue = function()
-{
-  var vQueue=qx.ui.core.Widget._globalWidgetQueue, vLength, vWidget;
-
-  while ((vLength=vQueue.length) > 0)
-  {
-    for (var i=0; i<vLength; i++)
-    {
-      vWidget = vQueue[i];
-
-      vWidget.flushWidgetQueue();
-      delete vWidget._isInGlobalWidgetQueue;
-    }
-
-    vQueue.splice(0, vLength);
-  }
-}
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ELEMENT QUEUE
-
-  Contains the widgets which should be (dom-)created
----------------------------------------------------------------------------
-*/
-
-qx.ui.core.Widget._globalElementQueue = [];
-
-qx.ui.core.Widget.addToGlobalElementQueue = function(vWidget)
-{
-  if (!vWidget._isInGlobalElementQueue && vWidget._isDisplayable)
-  {
-    qx.ui.core.Widget._globalElementQueue.push(vWidget);
-    vWidget._isInGlobalElementQueue = true;
-  }
-}
-
-qx.ui.core.Widget.removeFromGlobalElementQueue = function(vWidget)
-{
-  if (vWidget._isInGlobalElementQueue)
-  {
-    qx.lang.Array.remove(qx.ui.core.Widget._globalElementQueue, vWidget);
-    delete vWidget._isInGlobalElementQueue;
-  }
-}
-
-qx.ui.core.Widget.flushGlobalElementQueue = function()
-{
-  var vQueue=qx.ui.core.Widget._globalElementQueue, vLength, vWidget;
-
-  while ((vLength=vQueue.length) > 0)
-  {
-    for (var i=0; i<vLength; i++)
-    {
-      vWidget = vQueue[i];
-
-      vWidget._createElementImpl();
-      delete vWidget._isInGlobalElementQueue;
-    }
-
-    vQueue.splice(0, vLength);
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  STATE QUEUE
-
-  Contains the widgets which recently changed their state
----------------------------------------------------------------------------
-*/
-
-qx.ui.core.Widget._globalStateQueue = [];
-
-qx.ui.core.Widget.addToGlobalStateQueue = function(vWidget)
-{
-  if (!vWidget._isInGlobalStateQueue && vWidget._isDisplayable)
-  {
-    qx.ui.core.Widget._globalStateQueue.push(vWidget);
-    vWidget._isInGlobalStateQueue = true;
-  }
-}
-
-qx.ui.core.Widget.removeFromGlobalStateQueue = function(vWidget)
-{
-  if (vWidget._isInGlobalStateQueue)
-  {
-    qx.lang.Array.remove(qx.ui.core.Widget._globalStateQueue, vWidget);
-    delete vWidget._isInGlobalStateQueue;
-  }
-}
-
-qx.ui.core.Widget.flushGlobalStateQueue = function()
-{
-  var vQueue=qx.ui.core.Widget._globalStateQueue, vLength, vWidget;
-
-  while ((vLength=vQueue.length) > 0)
-  {
-    for (var i=0; i<vLength; i++)
-    {
-      vWidget = vQueue[i];
-
-      vWidget._applyStateAppearance();
-
-      delete vWidget._isInGlobalStateQueue;
-    }
-
-    vQueue.splice(0, vLength);
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  JOBS QUEUE
-
-  Contains the widgets which need a update after they were visible before
----------------------------------------------------------------------------
-*/
-
-qx.ui.core.Widget._globalJobQueue = [];
-
-qx.ui.core.Widget.addToGlobalJobQueue = function(vWidget)
-{
-  if (!vWidget._isInGlobalJobQueue && vWidget._isDisplayable)
-  {
-    qx.ui.core.Widget._globalJobQueue.push(vWidget);
-    vWidget._isInGlobalJobQueue = true;
-  }
-}
-
-qx.ui.core.Widget.removeFromGlobalJobQueue = function(vWidget)
-{
-  if (vWidget._isInGlobalJobQueue)
-  {
-    qx.lang.Array.remove(qx.ui.core.Widget._globalJobQueue, vWidget);
-    delete vWidget._isInGlobalJobQueue;
-  }
-}
-
-qx.ui.core.Widget.flushGlobalJobQueue = function()
-{
-  var vQueue=qx.ui.core.Widget._globalJobQueue, vLength, vWidget;
-
-  while ((vLength=vQueue.length) > 0)
-  {
-    for (var i=0; i<vLength; i++)
-    {
-      vWidget = vQueue[i];
-
-      vWidget._flushJobQueue(vWidget._jobQueue);
-      delete vWidget._isInGlobalJobQueue;
-    }
-
-    vQueue.splice(0, vLength);
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  LAYOUT QUEUE
-
-  Contains the parents (qx.ui.core.Parent) of the children which needs layout updates
----------------------------------------------------------------------------
-*/
-
-qx.ui.core.Widget._globalLayoutQueue = [];
-
-qx.ui.core.Widget.addToGlobalLayoutQueue = function(vParent)
-{
-  if (!vParent._isInGlobalLayoutQueue && vParent._isDisplayable)
-  {
-    qx.ui.core.Widget._globalLayoutQueue.push(vParent);
-    vParent._isInGlobalLayoutQueue = true;
-  }
-}
-
-qx.ui.core.Widget.removeFromGlobalLayoutQueue = function(vParent)
-{
-  if (vParent._isInGlobalLayoutQueue)
-  {
-    qx.lang.Array.remove(qx.ui.core.Widget._globalLayoutQueue, vParent);
-    delete vParent._isInGlobalLayoutQueue;
-  }
-}
-
-qx.ui.core.Widget.flushGlobalLayoutQueue = function()
-{
-  var vQueue=qx.ui.core.Widget._globalLayoutQueue, vLength, vParent;
-
-  while ((vLength=vQueue.length) > 0)
-  {
-    for (var i=0; i<vLength; i++)
-    {
-      vParent = vQueue[i];
-
-      vParent._flushChildrenQueue();
-      delete vParent._isInGlobalLayoutQueue;
-    }
-
-    vQueue.splice(0, vLength);
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPLAY QUEUE
-
-  Contains the widgets which should initially become visible
----------------------------------------------------------------------------
-*/
-
-qx.ui.core.Widget._fastGlobalDisplayQueue = [];
-qx.ui.core.Widget._lazyGlobalDisplayQueues = {};
-
-qx.ui.core.Widget.addToGlobalDisplayQueue = function(vWidget)
-{
-  if (!vWidget._isInGlobalDisplayQueue && vWidget._isDisplayable)
-  {
-    var vParent = vWidget.getParent();
-
-    if (vParent.isSeeable())
-    {
-      var vKey = vParent.toHashCode();
-
-      if (qx.ui.core.Widget._lazyGlobalDisplayQueues[vKey])
-      {
-        qx.ui.core.Widget._lazyGlobalDisplayQueues[vKey].push(vWidget);
-      }
-      else
-      {
-        qx.ui.core.Widget._lazyGlobalDisplayQueues[vKey] = [vWidget];
-      }
-    }
-    else
-    {
-      qx.ui.core.Widget._fastGlobalDisplayQueue.push(vWidget);
-    }
-
-    vWidget._isInGlobalDisplayQueue = true;
-  }
-}
-
-qx.ui.core.Widget.removeFromGlobalDisplayQueue = function(vWidget) {}
-
-qx.ui.core.Widget.flushGlobalDisplayQueue = function()
-{
-  var vKey, vLazyQueue, vWidget, vFragment;
-
-  var vFastQueue = qx.ui.core.Widget._fastGlobalDisplayQueue;
-  var vLazyQueues = qx.ui.core.Widget._lazyGlobalDisplayQueues;
-
-
-
-
-  /* -----------------------------------------------
-      Flush display queues
-  ----------------------------------------------- */
-
-  // Work on fast queue
-  for (var i=0, l=vFastQueue.length; i<l; i++)
-  {
-    vWidget = vFastQueue[i];
-    vWidget.getParent()._getTargetNode().appendChild(vWidget.getElement());
-  }
-
-
-  // Work on lazy queues: Inline widgets
-  if (qx.OO.isAvailable("qx.ui.basic.Inline"))
-  {
-    for (vKey in vLazyQueues)
-    {
-      vLazyQueue = vLazyQueues[vKey];
-
-      for (var i=0; i<vLazyQueue.length; i++)
-      {
-        vWidget = vLazyQueue[i];
-
-        if (vWidget instanceof qx.ui.basic.Inline)
-        {
-          vWidget._beforeInsertDom();
-
-          try
-          {
-            document.getElementById(vWidget.getInlineNodeId()).appendChild(vWidget.getElement());
-          }
-          catch(ex)
-          {
-            vWidget.debug("Could not append to inline id: " + vWidget.getInlineNodeId(), ex);
-          }
-
-          vWidget._afterInsertDom();
-          vWidget._afterAppear();
-
-          // Remove inline widget from queue and fix iterator position
-          qx.lang.Array.remove(vLazyQueue, vWidget);
-          i--;
-
-          // Reset display queue flag
-          delete vWidget._isInGlobalDisplayQueue;
-        }
-      }
-    }
-  }
-
-
-  // Work on lazy queues: Other widgets
-  for (vKey in vLazyQueues)
-  {
-    vLazyQueue = vLazyQueues[vKey];
-
-    // Speed enhancement: Choose a fairly small arbitrary value for the number
-    // of elements that should be added to the parent individually.  If more
-    // than this number of elements is to be added to the parent, we'll create
-    // a document fragment, add the elements to the document fragment, and
-    // then add the whole fragment to the parent en mass (assuming that
-    // creation of a document fragment is supported by the browser).
-    if (document.createDocumentFragment && vLazyQueue.length >= 3)
-    {
-      // creating new document fragment
-      vFragment = document.createDocumentFragment();
-
-      // appending all widget elements to fragment
-      for (var i=0, l=vLazyQueue.length; i<l; i++)
-      {
-        vWidget = vLazyQueue[i];
-
-        vWidget._beforeInsertDom();
-        vFragment.appendChild(vWidget.getElement());
-      }
-
-      // append all fragment data at once to
-      // the already visible parent widget element
-      vLazyQueue[0].getParent()._getTargetNode().appendChild(vFragment);
-
-      for (var i=0, l=vLazyQueue.length; i<l; i++)
-      {
-        vWidget = vLazyQueue[i];
-        vWidget._afterInsertDom();
-      }
-    }
-    else
-    {
-      // appending all widget elements (including previously added children)
-      // to the already visible parent widget element
-      for (var i=0, l=vLazyQueue.length; i<l; i++)
-      {
-        vWidget = vLazyQueue[i];
-
-        vWidget._beforeInsertDom();
-        vWidget.getParent()._getTargetNode().appendChild(vWidget.getElement());
-        vWidget._afterInsertDom();
-      }
-    }
-  }
-
-
-
-
-
-
-  /* -----------------------------------------------
-      Cleanup and appear signals
-  ----------------------------------------------- */
-
-  // Only need to do this with the lazy queues
-  // because through the recursion from qx.ui.core.Parent
-  // all others get also informed.
-  for (vKey in vLazyQueues)
-  {
-    vLazyQueue = vLazyQueues[vKey];
-
-    for (var i=0, l=vLazyQueue.length; i<l; i++)
-    {
-      vWidget = vLazyQueue[i];
-
-      if (vWidget.getVisibility()) {
-        vWidget._afterAppear();
-      }
-
-      // Reset display queue flag
-      delete vWidget._isInGlobalDisplayQueue;
-    }
-
-    delete vLazyQueues[vKey];
-  }
-
-  // Reset display queue flag for widgets in fastQueue
-  for (var i=0, l=vFastQueue.length; i<l; i++) {
-    delete vFastQueue[i]._isInGlobalDisplayQueue;
-  }
-
-  // Remove fast queue entries
-  qx.lang.Array.removeAll(vFastQueue);
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  GLOBAL HELPERS
----------------------------------------------------------------------------
-*/
-
-qx.ui.core.Widget.getActiveSiblingHelperIgnore = function(vIgnoreClasses, vInstance)
-{
-  for (var j=0; j<vIgnoreClasses.length; j++) {
-    if (vInstance instanceof vIgnoreClasses[j]) {
-      return true;
-    }
-  }
-
-  return false;
-}
-
-qx.ui.core.Widget.getActiveSiblingHelper = function(vObject, vParent, vCalc, vIgnoreClasses, vMode)
-{
-  if (!vIgnoreClasses) {
-    vIgnoreClasses = [];
-  }
-
-  var vChilds = vParent.getChildren();
-  var vPosition = vMode == null ? vChilds.indexOf(vObject) + vCalc : vMode === "first" ? 0 : vChilds.length-1;
-  var vInstance = vChilds[vPosition];
-
-  while(vInstance && (!vInstance.isEnabled() || qx.ui.core.Widget.getActiveSiblingHelperIgnore(vIgnoreClasses, vInstance)))
-  {
-    vPosition += vCalc;
-    vInstance = vChilds[vPosition];
-
-    if (!vInstance) {
-      return null;
-    }
-  }
-
-  return vInstance;
-}
-
-
-
-
-
-
-
-/* ************************************************************************
-   Instance data, properties and methods
-************************************************************************ */
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-/*!
-  If the widget is visible and rendered on the screen.
-*/
-qx.Proto.isMaterialized = function() {
-  var el=this._element;
-  return (this._initialLayoutDone &&
-          this._isDisplayable &&
-          qx.html.Style.getStyleProperty(el, "display") != "none" &&
-          qx.html.Style.getStyleProperty(el, "visibility") != "hidden" &&
-          el.offsetWidth > 0 && el.offsetHeight > 0);
-}
-
-/*!
-  A single setup to the current preferred pixel values of the widget
-*/
-qx.Proto.pack = function()
-{
-  this.setWidth(this.getPreferredBoxWidth());
-  this.setHeight(this.getPreferredBoxHeight());
-}
-
-/*!
-  A bounded setup to the preferred width/height of the widget. Keeps in
-  sync if the content or requirements of the widget changes
-*/
-qx.Proto.auto = function()
-{
-  this.setWidth("auto");
-  this.setHeight("auto");
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CHILDREN HANDLING: ALL
----------------------------------------------------------------------------
-*/
-
-/*!
-  Get an array of the current children
-*/
-qx.Proto.getChildren = qx.lang.Function.returnNull;
-
-/*!
-  Get the number of children
-*/
-qx.Proto.getChildrenLength = qx.lang.Function.returnZero;
-
-/*!
-  Get if the widget has any children
-*/
-qx.Proto.hasChildren = qx.lang.Function.returnFalse;
-
-/*!
-  Get if the widget has no children
-*/
-qx.Proto.isEmpty = qx.lang.Function.returnTrue;
-
-/*!
-  Return the position of the child inside
-*/
-qx.Proto.indexOf = qx.lang.Function.returnNegativeIndex;
-
-/*!
-  Test if this widget contains the given widget
-*/
-qx.Proto.contains = qx.lang.Function.returnFalse;
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CHILDREN HANDLING: VISIBLE ONES
----------------------------------------------------------------------------
-*/
-
-/*!
-  Get an array of the current visible children
-*/
-qx.Proto.getVisibleChildren = qx.lang.Function.returnNull;
-
-/*!
-  Get the number of children
-*/
-qx.Proto.getVisibleChildrenLength = qx.lang.Function.returnZero;
-
-/*!
-  If this widget has visible children
-*/
-qx.Proto.hasVisibleChildren = qx.lang.Function.returnFalse;
-
-/*!
-  Check if there are any visible children inside
-*/
-qx.Proto.isVisibleEmpty = qx.lang.Function.returnTrue;
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CORE MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._hasParent = false;
-qx.Proto._isDisplayable = false;
-
-qx.Proto.isDisplayable = function() {
-  return this._isDisplayable;
-}
-
-qx.Proto._checkParent = function(propValue, propOldValue, propData)
-{
-  if (this.contains(propValue)) {
-    throw new Error("Could not insert myself into a child " + propValue + "!");
-  }
-
-  return propValue;
-}
-
-qx.Proto._modifyParent = function(propValue, propOldValue, propData)
-{
-  if (propOldValue)
-  {
-    var vOldIndex = propOldValue.getChildren().indexOf(this);
-
-    // Reset cached dimension and location values
-    this._computedWidthValue = this._computedMinWidthValue = this._computedMaxWidthValue = this._computedLeftValue = this._computedRightValue = null;
-    this._computedHeightValue = this._computedMinHeightValue = this._computedMaxHeightValue = this._computedTopValue = this._computedBottomValue = null;
-
-    this._cachedBoxWidth = this._cachedInnerWidth = this._cachedOuterWidth = null;
-    this._cachedBoxHeight = this._cachedInnerHeight = this._cachedOuterHeight = null;
-
-    // Finally remove from children array
-    qx.lang.Array.removeAt(propOldValue.getChildren(), vOldIndex);
-
-    // Invalidate visible children cache
-    propOldValue._invalidateVisibleChildren();
-
-    // Remove child from old parent's children queue
-    propOldValue._removeChildFromChildrenQueue(this);
-
-    // The layouter adds some layout jobs
-    propOldValue.getLayoutImpl().updateChildrenOnRemoveChild(this, vOldIndex);
-
-    // Inform job queue
-    propOldValue.addToJobQueue("removeChild");
-
-    // Invalidate inner preferred dimensions
-    propOldValue._invalidatePreferredInnerDimensions();
-
-    // Store old parent (needed later by _handleDisplayable)
-    this._oldParent = propOldValue;
-  }
-
-  if (propValue)
-  {
-    this._hasParent = true;
-
-    if (typeof this._insertIndex == "number")
-    {
-      qx.lang.Array.insertAt(propValue.getChildren(), this, this._insertIndex);
-      delete this._insertIndex;
-    }
-    else
-    {
-      propValue.getChildren().push(this);
-    }
-  }
-  else
-  {
-    this._hasParent = false;
-  }
-
-  return this._handleDisplayable("parent");
-}
-
-qx.Proto._modifyDisplay = function(propValue, propOldValue, propData) {
-  return this._handleDisplayable("display");
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPLAYBLE HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._handleDisplayable = function(vHint)
-{
-  // Detect changes. Return if there is no change.
-  // Also handle the case if the displayable keeps true and the parent
-  // was changed then we must not return here.
-  var vDisplayable = this._computeDisplayable();
-  if (this._isDisplayable == vDisplayable && !(vDisplayable && vHint == "parent")) {
-    return true;
-  }
-
-  this._isDisplayable = vDisplayable;
-
-  var vParent = this.getParent();
-
-  // Invalidate visible children
-  if (vParent)
-  {
-    vParent._invalidateVisibleChildren();
-    vParent._invalidatePreferredInnerDimensions();
-  }
-
-  // Remove old parent's elements from DOM and delete old parent
-  if (vHint && this._oldParent && this._oldParent._initialLayoutDone)
-  {
-    var vElement = this.getElement();
-    if(vElement)
-    {
-      if (this.getVisibility()) {
-        this._beforeDisappear();
-      }
-
-      this._beforeRemoveDom();
-
-      this._oldParent._getTargetNode().removeChild(vElement);
-
-      this._afterRemoveDom();
-
-      if (this.getVisibility()) {
-        this._afterDisappear();
-      }
-    }
-
-    delete this._oldParent;
-  }
-
-  // Handle 'show'
-  if (vDisplayable)
-  {
-    /* --------------------------------
-       Update current parent
-    -------------------------------- */
-
-    // The layouter added some layout jobs
-    if (vParent._initialLayoutDone)
-    {
-      vParent.getLayoutImpl().updateChildrenOnAddChild(this, vParent.getChildren().indexOf(this));
-
-      // Inform parents job queue
-      vParent.addToJobQueue("addChild");
-    }
-
-    // Add to parents children queue
-    // (indirectly with a new layout request)
-    this.addToLayoutChanges("initial");
-
-    // Add to custom queues
-    this.addToCustomQueues(vHint);
-
-    // Handle beforeAppear signals
-    if (this.getVisibility()) {
-      this._beforeAppear();
-    }
-
-
-
-    /* --------------------------------
-       Add to global Queues
-    -------------------------------- */
-
-    // Add element (and create if not ready)
-    if (!this._isCreated) {
-      qx.ui.core.Widget.addToGlobalElementQueue(this);
-    }
-
-    // Add to global queues
-    qx.ui.core.Widget.addToGlobalStateQueue(this);
-
-    if (!qx.lang.Object.isEmpty(this._jobQueue)) {
-      qx.ui.core.Widget.addToGlobalJobQueue(this);
-    }
-
-    if (!qx.lang.Object.isEmpty(this._childrenQueue)) {
-      qx.ui.core.Widget.addToGlobalLayoutQueue(this);
-    }
-  }
-
-  // Handle 'hide'
-  else
-  {
-    // Removing from global queues
-    qx.ui.core.Widget.removeFromGlobalElementQueue(this);
-    qx.ui.core.Widget.removeFromGlobalStateQueue(this);
-    qx.ui.core.Widget.removeFromGlobalJobQueue(this);
-    qx.ui.core.Widget.removeFromGlobalLayoutQueue(this);
-
-    // Add to top-level tree queue
-    this.removeFromCustomQueues(vHint);
-
-    // only remove when itself want to be removed
-    // through a property change - not a parent signal
-    if (vParent && vHint)
-    {
-      if (this.getVisibility()) {
-        this._beforeDisappear();
-      }
-
-      // The layouter added some layout jobs
-      if (vParent._initialLayoutDone && this._initialLayoutDone)
-      {
-        vParent.getLayoutImpl().updateChildrenOnRemoveChild(this, vParent.getChildren().indexOf(this));
-
-        // Inform parent's job queue
-        vParent.addToJobQueue("removeChild");
-
-        // Before Remove DOM Event
-        this._beforeRemoveDom();
-
-        // DOM action
-        vParent._getTargetNode().removeChild(this.getElement());
-
-        // After Remove DOM Event
-        this._afterRemoveDom();
-      }
-
-      // Remove from parents children queue
-      vParent._removeChildFromChildrenQueue(this);
-
-      if (this.getVisibility()) {
-        this._afterDisappear();
-      }
-    }
-  }
-
-  this._handleDisplayableCustom(vDisplayable, vParent, vHint);
-
-  return true;
-}
-
-qx.Proto.addToCustomQueues = qx.lang.Function.returnTrue;
-qx.Proto.removeFromCustomQueues = qx.lang.Function.returnTrue;
-
-qx.Proto._handleDisplayableCustom = qx.lang.Function.returnTrue;
-
-qx.Proto._computeDisplayable = function() {
-  return this.getDisplay() && this._hasParent && this.getParent()._isDisplayable ? true : false;
-}
-
-qx.Proto._beforeAppear = function()
-{
-  // this.debug("_beforeAppear");
-  this.createDispatchEvent("beforeAppear");
-}
-
-qx.Proto._afterAppear = function()
-{
-  // this.debug("_afterAppear");
-  this._isSeeable = true;
-  this.createDispatchEvent("appear");
-}
-
-qx.Proto._beforeDisappear = function()
-{
-  // this.debug("_beforeDisappear");
-
-  // Remove any hover/pressed styles
-  this.removeState("over");
-
-  if (qx.OO.isAvailable("qx.ui.form.Button"))
-  {
-    this.removeState("pressed");
-    this.removeState("abandoned");
-  }
-
-  // this.debug("_beforeDisappear");
-  this.createDispatchEvent("beforeDisappear");
-}
-
-qx.Proto._afterDisappear = function()
-{
-  // this.debug("_afterDisappear");
-  this._isSeeable = false;
-  this.createDispatchEvent("disappear");
-}
-
-qx.Proto._isSeeable = false;
-
-/**
- * If the widget is currently seeable which means that it:
- *
- * * has a also seeable parent
- * * visibility is true
- * * display is true
- */
-qx.Proto.isSeeable = function() {
-  return this._isSeeable;
-}
-
-qx.Proto.isAppearRelevant = function() {
-  return this.getVisibility() && this._isDisplayable;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DOM SIGNAL HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._beforeInsertDom = function()
-{
-  // this.debug("_beforeInsertDom");
-  this.createDispatchEvent("beforeInsertDom");
-}
-
-qx.Proto._afterInsertDom = function()
-{
-  // this.debug("_afterInsertDom");
-  this.createDispatchEvent("insertDom");
-}
-
-qx.Proto._beforeRemoveDom = function()
-{
-  // this.debug("_beforeRemoveDom");
-  this.createDispatchEvent("beforeRemoveDom");
-}
-
-qx.Proto._afterRemoveDom = function()
-{
-  // this.debug("_afterRemoveDom");
-  this.createDispatchEvent("removeDom");
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  VISIBILITY HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyVisibility = function(propValue, propOldValue, propData)
-{
-  if (propValue)
-  {
-    if (this._isDisplayable) {
-      this._beforeAppear();
-    }
-
-    this.removeStyleProperty("display");
-
-    if (this._isDisplayable) {
-      this._afterAppear();
-    }
-  }
-  else
-  {
-    if (this._isDisplayable) {
-      this._beforeDisappear();
-    }
-
-    this.setStyleProperty("display", "none");
-
-    if (this._isDisplayable) {
-      this._afterDisappear();
-    }
-  }
-
-  return true;
-}
-
-qx.Proto.show = function()
-{
-  this.setVisibility(true);
-  this.setDisplay(true);
-}
-
-qx.Proto.hide = function() {
-  this.setVisibility(false);
-}
-
-qx.Proto.connect = function() {
-  this.setDisplay(true);
-}
-
-qx.Proto.disconnect = function() {
-  this.setDisplay(false);
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ENHANCED BORDER SUPPORT
----------------------------------------------------------------------------
-*/
-
-if (qx.core.Client.getInstance().isGecko())
-{
-  qx.Proto._createElementForEnhancedBorder = qx.lang.Function.returnTrue;
-}
-else
-{
-  qx.Proto._createElementForEnhancedBorder = function()
-  {
-    // Enhanced Border Test (for IE and Opera)
-    if (qx.renderer.border.Border.enhancedCrossBrowserMode &&
-        this.getTagName() == "div" &&
-        !this._borderElement)
-    {
-      var el = this.getElement();
-      var cl = this._borderElement = document.createElement("div");
-
-      var es = el.style;
-      var cs = this._borderStyle = cl.style;
-
-      cs.width = cs.height = "100%";
-      cs.position = "absolute";
-
-      for (var i in this._styleProperties)
-      {
-        switch(i)
-        {
-          case "position":
-          case "zIndex":
-          case "filter":
-          case "display":
-            break;
-
-          default:
-            cs[i] = this._styleProperties[i];
-            es[i] = "";
-        }
-      }
-
-      for (var i in this._htmlProperties)
-      {
-        switch(i)
-        {
-          case "unselectable":
-            cl.unselectable = this._htmlProperties[i];
-        }
-      }
-
-      // Move existing children
-      while(el.firstChild) {
-        cl.appendChild(el.firstChild);
-      }
-
-      el.appendChild(cl);
-    }
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DOM ELEMENT HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._isCreated = false;
-
-if (qx.core.Client.getInstance().isGecko())
-{
-  qx.Proto._getTargetNode = function() {
-    return this._element;
-  }
-}
-else
-{
-  qx.Proto._getTargetNode = function() {
-    return this._borderElement || this._element;
-  }
-}
-
-qx.Proto.addToDocument = function() {
-  qx.ui.core.ClientDocument.getInstance().add(this);
-}
-
-/**
- * Check if the widget is created (or the element is already available).
- *
- * @return {Boolean} whether the widget is already created.
- */
-qx.Proto.isCreated = function() {
-  return this._isCreated;
-}
-
-/*!
-  Create widget with empty element (of specified tagname).
-*/
-qx.Proto._createElementImpl = function() {
-  this.setElement(this.getTopLevelWidget().getDocumentElement().createElement(this.getTagName()));
-}
-
-qx.Proto._modifyElement = function(propValue, propOldValue, propData)
-{
-  this._isCreated = propValue != null;
-
-  if (propOldValue)
-  {
-    // reset reference to widget instance
-    propOldValue.qx_Widget = null;
-
-    // remove events
-    this._removeInlineEvents(propOldValue);
-  }
-
-  if (propValue)
-  {
-    // add reference to widget instance
-    propValue.qx_Widget = this;
-
-    // link element and style reference
-    this._element = propValue;
-    this._style = propValue.style;
-
-    this._applyStyleProperties(propValue);
-    this._applyHtmlProperties(propValue);
-    this._applyHtmlAttributes(propValue);
-    this._applyElementData(propValue);
-
-    // attach inline events
-    this._addInlineEvents(propValue);
-
-    // send out create event
-    this.createDispatchEvent("create");
-  }
-  else
-  {
-    this._element = this._style = null;
-  }
-
-  return true;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  JOBS QUEUE
----------------------------------------------------------------------------
-*/
-
-qx.Proto.addToJobQueue = function(p)
-{
-  if (this._hasParent) {
-    qx.ui.core.Widget.addToGlobalJobQueue(this);
-  }
-
-  if (!this._jobQueue) {
-    this._jobQueue = {};
-  }
-
-  this._jobQueue[p] = true;
-  return true;
-}
-
-qx.Proto._flushJobQueue = function(q)
-{
-  /* --------------------------------------------------------------------------------
-       1. Pre checks
-  -------------------------------------------------------------------------------- */
-
-  try
-  {
-    var vQueue = this._jobQueue;
-    var vParent = this.getParent();
-
-    if (!vParent || qx.lang.Object.isEmpty(vQueue)) {
-      return;
-    }
-
-    var vLayoutImpl = this instanceof qx.ui.core.Parent ? this.getLayoutImpl() : null;
-
-    if (vLayoutImpl) {
-      vLayoutImpl.updateSelfOnJobQueueFlush(vQueue);
-    }
-  }
-  catch(ex)
-  {
-    this.error("Flushing job queue (prechecks#1) failed", ex);
-  }
-
-
-
-
-
-  /* --------------------------------------------------------------------------------
-       2. Recompute dimensions
-  -------------------------------------------------------------------------------- */
-
-  try
-  {
-    var vFlushParentJobQueue = false;
-    var vRecomputeOuterWidth = vQueue.marginLeft || vQueue.marginRight;
-    var vRecomputeOuterHeight = vQueue.marginTop || vQueue.marginBottom;
-    var vRecomputeInnerWidth = vQueue.frameWidth;
-    var vRecomputeInnerHeight = vQueue.frameHeight;
-    var vRecomputeParentPreferredInnerWidth = (vQueue.frameWidth || vQueue.preferredInnerWidth) && this._recomputePreferredBoxWidth();
-    var vRecomputeParentPreferredInnerHeight = (vQueue.frameHeight || vQueue.preferredInnerHeight) && this._recomputePreferredBoxHeight();
-
-    if (vRecomputeParentPreferredInnerWidth)
-    {
-      var vPref = this.getPreferredBoxWidth();
-
-      if (this._computedWidthTypeAuto)
-      {
-        this._computedWidthValue = vPref;
-        vQueue.width = true;
-      }
-
-      if (this._computedMinWidthTypeAuto)
-      {
-        this._computedMinWidthValue = vPref;
-        vQueue.minWidth = true;
-      }
-
-      if (this._computedMaxWidthTypeAuto)
-      {
-        this._computedMaxWidthValue = vPref;
-        vQueue.maxWidth = true;
-      }
-    }
-
-    if (vRecomputeParentPreferredInnerHeight)
-    {
-      var vPref = this.getPreferredBoxHeight();
-
-      if (this._computedHeightTypeAuto)
-      {
-        this._computedHeightValue = vPref;
-        vQueue.height = true;
-      }
-
-      if (this._computedMinHeightTypeAuto)
-      {
-        this._computedMinHeightValue = vPref;
-        vQueue.minHeight = true;
-      }
-
-      if (this._computedMaxHeightTypeAuto)
-      {
-        this._computedMaxHeightValue = vPref;
-        vQueue.maxHeight = true;
-      }
-    }
-
-    if ((vQueue.width || vQueue.minWidth || vQueue.maxWidth || vQueue.left || vQueue.right) && this._recomputeBoxWidth()) {
-      vRecomputeOuterWidth = vRecomputeInnerWidth = true;
-    }
-
-    if ((vQueue.height || vQueue.minHeight || vQueue.maxHeight || vQueue.top || vQueue.bottom) && this._recomputeBoxHeight()) {
-      vRecomputeOuterHeight = vRecomputeInnerHeight = true;
-    }
-  }
-  catch(ex)
-  {
-    this.error("Flushing job queue (recompute#2) failed", ex);
-  }
-
-
-
-
-
-  /* --------------------------------------------------------------------------------
-       3. Signals to parent widgets
-  -------------------------------------------------------------------------------- */
-
-  try
-  {
-    if ((vRecomputeOuterWidth && this._recomputeOuterWidth()) ||
-        vRecomputeParentPreferredInnerWidth)
-    {
-      vParent._invalidatePreferredInnerWidth();
-      vParent.getLayoutImpl().updateSelfOnChildOuterWidthChange(this);
-
-      vFlushParentJobQueue = true;
-    }
-
-    if ((vRecomputeOuterHeight && this._recomputeOuterHeight()) ||
-        vRecomputeParentPreferredInnerHeight)
-    {
-      vParent._invalidatePreferredInnerHeight();
-      vParent.getLayoutImpl().updateSelfOnChildOuterHeightChange(this);
-
-      vFlushParentJobQueue = true;
-    }
-
-    if (vFlushParentJobQueue) {
-      vParent._flushJobQueue();
-    }
-  }
-  catch(ex)
-  {
-    this.error("Flushing job queue (parentsignals#3) failed", ex);
-  }
-
-
-
-
-
-  /* --------------------------------------------------------------------------------
-       4. Add layout jobs
-  -------------------------------------------------------------------------------- */
-
-  try
-  {
-    // add to layout queue
-    vParent._addChildToChildrenQueue(this);
-
-    // convert jobs to layout jobs
-    for (var i in vQueue) {
-      this._layoutChanges[i] = true;
-    }
-  }
-  catch(ex)
-  {
-    this.error("Flushing job queue (addjobs#4) failed", ex);
-  }
-
-
-
-
-
-  /* --------------------------------------------------------------------------------
-       5. Signals to children
-  -------------------------------------------------------------------------------- */
-
-  try
-  {
-    // inform children about padding change
-    if (this instanceof qx.ui.core.Parent &&
-        (vQueue.paddingLeft ||
-         vQueue.paddingRight ||
-         vQueue.paddingTop ||
-         vQueue.paddingBottom))
-    {
-      var ch=this.getChildren(), chl=ch.length;
-
-      if (vQueue.paddingLeft) {
-        for (var i=0; i<chl; i++) {
-          ch[i].addToLayoutChanges("parentPaddingLeft");
-        }
-      }
-
-      if (vQueue.paddingRight) {
-        for (var i=0; i<chl; i++) {
-          ch[i].addToLayoutChanges("parentPaddingRight");
-        }
-      }
-
-      if (vQueue.paddingTop) {
-        for (var i=0; i<chl; i++) {
-          ch[i].addToLayoutChanges("parentPaddingTop");
-        }
-      }
-
-      if (vQueue.paddingBottom) {
-        for (var i=0; i<chl; i++) {
-          ch[i].addToLayoutChanges("parentPaddingBottom");
-        }
-      }
-    }
-
-    if (vRecomputeInnerWidth) {
-      this._recomputeInnerWidth();
-    }
-
-    if (vRecomputeInnerHeight) {
-      this._recomputeInnerHeight();
-    }
-
-    if (this._initialLayoutDone)
-    {
-      if (vLayoutImpl) {
-        vLayoutImpl.updateChildrenOnJobQueueFlush(vQueue);
-      }
-    }
-  }
-  catch(ex)
-  {
-    this.error("Flushing job queue (childrensignals#5) failed", ex);
-  }
-
-
-
-  /* --------------------------------------------------------------------------------
-       5. Cleanup
-  -------------------------------------------------------------------------------- */
-
-  delete this._jobQueue;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  METHODS TO GIVE THE LAYOUTERS INFORMATION
----------------------------------------------------------------------------
-*/
-
-qx.Proto._isWidthEssential = qx.lang.Function.returnTrue;
-qx.Proto._isHeightEssential = qx.lang.Function.returnTrue;
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  APPLY LAYOUT STYLES
----------------------------------------------------------------------------
-*/
-
-qx.ui.core.Widget.initApplyMethods = function()
-{
-  var f = "_applyRuntime";
-  var r = "_resetRuntime";
-  var s = "this._style.";
-  var e = "=''";
-  var v = "=((v==null)?0:v)+'px'";
-  var vpar = "v";
-
-  var props = ["left", "right", "top", "bottom", "width", "height",
-               "minWidth", "maxWidth", "minHeight", "maxHeight"];
-  var propsup = ["Left", "Right", "Top", "Bottom", "Width", "Height",
-                 "MinWidth", "MaxWidth", "MinHeight", "MaxHeight"];
-
-  for (var i=0, fn=f+"Margin", rn=r+"Margin", sp=s+"margin"; i<4; i++)
-  {
-    qx.Proto[fn+propsup[i]] = new Function(vpar, sp + propsup[i] + v);
-    qx.Proto[rn+propsup[i]] = new Function(sp + propsup[i] + e);
-  }
-
-  var pad = "padding";
-  var upad = "Padding";
-
-  if (qx.core.Client.getInstance().isGecko())
-  {
-    for (var i=0, fn=f+upad, rn=r+upad, sp=s+pad; i<4; i++)
-    {
-      qx.Proto[fn+propsup[i]] = new Function(vpar, sp + propsup[i] + v);
-      qx.Proto[rn+propsup[i]] = new Function(sp + propsup[i] + e);
-    }
-  }
-  else
-  {
-    // need to use setStyleProperty to keep compatibility with enhanced cross browser borders
-    var s1="this.setStyleProperty('padding";
-    var s2="', ((v==null)?0:v)+'px')";
-    var s3="this.removeStyleProperty('padding";
-    var s4="')";
-
-    for (var i=0, fn=f+upad, rn=r+upad, sp=s+pad; i<4; i++)
-    {
-      qx.Proto[fn+propsup[i]] = new Function(vpar, s1 + propsup[i] + s2);
-      qx.Proto[rn+propsup[i]] = new Function(s3 + propsup[i] + s4);
-    }
-  }
-
-  /*
-    Use optimized method for internet explorer
-    to omit string concat and directly setup
-    the new layout property.
-
-    We could not use this to reset the value however.
-    It seems that is just doesn't work this way. And the
-    left/top always get priority. Tried: "", null, "auto".
-    Nothing helps.
-
-    Now I've switched back to the conventional method
-    to reset the value. This seems to work again.
-  */
-  if (qx.core.Client.getInstance().isMshtml())
-  {
-    for (var i=0, tpos="pos", vset="=v"; i<6; i++)
-    {
-      // to debug the values which will be applied use this instead of the
-      // first line:
-      // qx.Proto[f+propsup[i]] = new Function(vpar, "this.debug('v: ' + v); " + s + tpos + propsup[i] + vset);
-
-      qx.Proto[f+propsup[i]] = new Function(vpar, s + tpos + propsup[i] + vset);
-      qx.Proto[r+propsup[i]] = new Function(s + props[i] + e);
-    }
-  }
-  else
-  {
-    for (var i=0; i<10; i++)
-    {
-      // to debug the values which will be applied use this instead of the
-      // first line:
-      // qx.Proto[f+propsup[i]] = new Function(vpar, "this.debug('v: ' + v); " + s + props[i] + v);
-
-      qx.Proto[f+propsup[i]] = new Function(vpar, s + props[i] + v);
-      qx.Proto[r+propsup[i]] = new Function(s + props[i] + e);
-    }
-  }
-}
-
-qx.ui.core.Widget.initApplyMethods();
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DIMENSION CACHE
----------------------------------------------------------------------------
-*/
-
-/*
-  Add basic setter/getters
-*/
-
-qx.OO.addCachedProperty({ name : "innerWidth", defaultValue : null });
-qx.OO.addCachedProperty({ name : "innerHeight", defaultValue : null });
-qx.OO.addCachedProperty({ name : "boxWidth", defaultValue : null });
-qx.OO.addCachedProperty({ name : "boxHeight", defaultValue : null });
-qx.OO.addCachedProperty({ name : "outerWidth", defaultValue : null });
-qx.OO.addCachedProperty({ name : "outerHeight", defaultValue : null });
-
-qx.Proto._computeBoxWidthFallback = function() {
-  return 0;
-}
-
-qx.Proto._computeBoxHeightFallback = function() {
-  return 0;
-}
-
-qx.Proto._computeBoxWidth = function() {
-  var vLayoutImpl = this.getParent().getLayoutImpl();
-  return Math.max(0,
-                  qx.lang.Number.limit(vLayoutImpl.computeChildBoxWidth(this),
-                                       this.getMinWidthValue(),
-                                       this.getMaxWidthValue()));
-}
-
-qx.Proto._computeBoxHeight = function() {
-  var vLayoutImpl = this.getParent().getLayoutImpl();
-  return Math.max(0,
-                  qx.lang.Number.limit(vLayoutImpl.computeChildBoxHeight(this),
-                                       this.getMinHeightValue(),
-                                       this.getMaxHeightValue()));
-}
-
-qx.Proto._computeOuterWidth = function() {
-  return Math.max(0,
-                  (this.getMarginLeft() +
-                   this.getBoxWidth() +
-                   this.getMarginRight()));
-}
-
-qx.Proto._computeOuterHeight = function() {
-  return Math.max(0,
-                  (this.getMarginTop() +
-                   this.getBoxHeight() +
-                   this.getMarginBottom()));
-}
-
-qx.Proto._computeInnerWidth = function() {
-  return Math.max(0, this.getBoxWidth() - this.getFrameWidth());
-}
-
-qx.Proto._computeInnerHeight = function() {
-  return Math.max(0, this.getBoxHeight() - this.getFrameHeight());
-}
-
-qx.Proto.getNeededWidth = function() {
-  var vLayoutImpl = this.getParent().getLayoutImpl();
-  return Math.max(0, vLayoutImpl.computeChildNeededWidth(this));
-}
-
-qx.Proto.getNeededHeight = function() {
-  var vLayoutImpl = this.getParent().getLayoutImpl();
-  return Math.max(0, vLayoutImpl.computeChildNeededHeight(this));
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  RECOMPUTE FLEX VALUES
----------------------------------------------------------------------------
-*/
-
-qx.Proto._recomputeFlexX = function()
-{
-  if (!this.getHasFlexX()) {
-    return false;
-  }
-
-  if (this._computedWidthTypeFlex)
-  {
-    this._computedWidthValue = null;
-    this.addToLayoutChanges("width");
-  }
-
-  return true;
-}
-
-qx.Proto._recomputeFlexY = function()
-{
-  if (!this.getHasFlexY()) {
-    return false;
-  }
-
-  if (this._computedHeightTypeFlex)
-  {
-    this._computedHeightValue = null;
-    this.addToLayoutChanges("height");
-  }
-
-  return true;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  RECOMPUTE PERCENTS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._recomputePercentX = function()
-{
-  if (!this.getHasPercentX()) {
-    return false;
-  }
-
-  if (this._computedWidthTypePercent)
-  {
-    this._computedWidthValue = null;
-    this.addToLayoutChanges("width");
-  }
-
-  if (this._computedMinWidthTypePercent)
-  {
-    this._computedMinWidthValue = null;
-    this.addToLayoutChanges("minWidth");
-  }
-
-  if (this._computedMaxWidthTypePercent)
-  {
-    this._computedMaxWidthValue = null;
-    this.addToLayoutChanges("maxWidth");
-  }
-
-  if (this._computedLeftTypePercent)
-  {
-    this._computedLeftValue = null;
-    this.addToLayoutChanges("left");
-  }
-
-  if (this._computedRightTypePercent)
-  {
-    this._computedRightValue = null;
-    this.addToLayoutChanges("right");
-  }
-
-  return true;
-}
-
-qx.Proto._recomputePercentY = function()
-{
-  if (!this.getHasPercentY()) {
-    return false;
-  }
-
-  if (this._computedHeightTypePercent)
-  {
-    this._computedHeightValue = null;
-    this.addToLayoutChanges("height");
-  }
-
-  if (this._computedMinHeightTypePercent)
-  {
-    this._computedMinHeightValue = null;
-    this.addToLayoutChanges("minHeight");
-  }
-
-  if (this._computedMaxHeightTypePercent)
-  {
-    this._computedMaxHeightValue = null;
-    this.addToLayoutChanges("maxHeight");
-  }
-
-  if (this._computedTopTypePercent)
-  {
-    this._computedTopValue = null;
-    this.addToLayoutChanges("top");
-  }
-
-  if (this._computedBottomTypePercent)
-  {
-    this._computedBottomValue = null;
-    this.addToLayoutChanges("bottom");
-  }
-
-  return true;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  RECOMPUTE RANGES
----------------------------------------------------------------------------
-*/
-
-if (qx.core.Client.getInstance().isMshtml() || qx.core.Client.getInstance().isOpera())
-{
-  qx.Proto._recomputeRangeX = function()
-  {
-    if (this._computedLeftTypeNull || this._computedRightTypeNull) {
-      return false;
-    }
-
-    this.addToLayoutChanges("width");
-    return true;
-  }
-
-  qx.Proto._recomputeRangeY = function()
-  {
-    if (this._computedTopTypeNull || this._computedBottomTypeNull) {
-      return false;
-    }
-
-    this.addToLayoutChanges("height");
-    return true;
-  }
-}
-else
-{
-  qx.Proto._recomputeRangeX = function() {
-    return !(this._computedLeftTypeNull || this._computedRightTypeNull);
-  }
-
-  qx.Proto._recomputeRangeY = function() {
-    return !(this._computedTopTypeNull || this._computedBottomTypeNull);
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  RECOMPUTE STRETCHING
----------------------------------------------------------------------------
-*/
-
-if (qx.core.Client.getInstance().isMshtml() || qx.core.Client.getInstance().isOpera())
-{
-  qx.Proto._recomputeStretchingX = function()
-  {
-    if (this.getAllowStretchX() && this._computedWidthTypeNull)
-    {
-      this._computedWidthValue = null;
-      this.addToLayoutChanges("width");
-
-      return true;
-    }
-
-    return false;
-  }
-
-  qx.Proto._recomputeStretchingY = function()
-  {
-    if (this.getAllowStretchY() && this._computedHeightTypeNull)
-    {
-      this._computedHeightValue = null;
-      this.addToLayoutChanges("height");
-
-      return true;
-    }
-
-    return false;
-  }
-}
-else
-{
-  qx.Proto._recomputeStretchingX = function()
-  {
-    if (this.getAllowStretchX() && this._computedWidthTypeNull) {
-      return true;
-    }
-
-    return false;
-  }
-
-  qx.Proto._recomputeStretchingY = function()
-  {
-    if (this.getAllowStretchY() && this._computedHeightTypeNull) {
-      return true;
-    }
-
-    return false;
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  INTELLIGENT GETTERS FOR STANDALONE DIMENSIONS: HELPERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._computeValuePixel = function(v) {
-  return Math.round(v);
-}
-
-qx.Proto._computeValuePixelLimit = function(v) {
-  return Math.max(0, this._computeValuePixel(v));
-}
-
-qx.Proto._computeValuePercentX = function(v) {
-  return Math.round(this.getParent().getInnerWidthForChild(this) * v * 0.01);
-}
-
-qx.Proto._computeValuePercentXLimit = function(v) {
-  return Math.max(0, this._computeValuePercentX(v));
-}
-
-qx.Proto._computeValuePercentY = function(v) {
-  return Math.round(this.getParent().getInnerHeightForChild(this) * v * 0.01);
-}
-
-qx.Proto._computeValuePercentYLimit = function(v) {
-  return Math.max(0, this._computeValuePercentY(v));
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  INTELLIGENT GETTERS FOR STANDALONE DIMENSIONS: X-AXIS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getWidthValue = function()
-{
-  if (this._computedWidthValue != null) {
-    return this._computedWidthValue;
-  }
-
-  switch(this._computedWidthType)
-  {
-    case qx.ui.core.Widget.TYPE_PIXEL:
-      return this._computedWidthValue = this._computeValuePixelLimit(this._computedWidthParsed);
-
-    case qx.ui.core.Widget.TYPE_PERCENT:
-      return this._computedWidthValue = this._computeValuePercentXLimit(this._computedWidthParsed);
-
-    case qx.ui.core.Widget.TYPE_AUTO:
-      return this._computedWidthValue = this.getPreferredBoxWidth();
-
-    case qx.ui.core.Widget.TYPE_FLEX:
-      try{
-         this.getParent().getLayoutImpl().computeChildrenFlexWidth();
-      } catch (e){
-        if (this.getParent().getLayoutImpl()["computeChildrenFlexWidth"] == null){
-          throw new Error("Widget " + this + ": having flex size but parent layout does not support it");
-        } else {
-          throw e;
-        }
-      }
-      return this._computedWidthValue = this._computedWidthFlexValue;
-  }
-
-  return null;
-}
-
-qx.Proto.getMinWidthValue = function()
-{
-  if (this._computedMinWidthValue != null) {
-    return this._computedMinWidthValue;
-  }
-
-  switch(this._computedMinWidthType)
-  {
-    case qx.ui.core.Widget.TYPE_PIXEL:
-      return this._computedWidthValue = this._computeValuePixelLimit(this._computedMinWidthParsed);
-
-    case qx.ui.core.Widget.TYPE_PERCENT:
-      return this._computedWidthValue = this._computeValuePercentXLimit(this._computedMinWidthParsed);
-
-    case qx.ui.core.Widget.TYPE_AUTO:
-      return this._computedMinWidthValue = this.getPreferredBoxWidth();
-  }
-
-  return null;
-}
-
-qx.Proto.getMaxWidthValue = function()
-{
-  if (this._computedMaxWidthValue != null) {
-    return this._computedMaxWidthValue;
-  }
-
-  switch(this._computedMaxWidthType)
-  {
-    case qx.ui.core.Widget.TYPE_PIXEL:
-      return this._computedWidthValue = this._computeValuePixelLimit(this._computedMaxWidthParsed);
-
-    case qx.ui.core.Widget.TYPE_PERCENT:
-      return this._computedWidthValue = this._computeValuePercentXLimit(this._computedMaxWidthParsed);
-
-    case qx.ui.core.Widget.TYPE_AUTO:
-      return this._computedMaxWidthValue = this.getPreferredBoxWidth();
-  }
-
-  return null;
-}
-
-qx.Proto.getLeftValue = function()
-{
-  if (this._computedLeftValue != null) {
-    return this._computedLeftValue;
-  }
-
-  switch(this._computedLeftType)
-  {
-    case qx.ui.core.Widget.TYPE_PIXEL:
-      return this._computedLeftValue = this._computeValuePixel(this._computedLeftParsed);
-
-    case qx.ui.core.Widget.TYPE_PERCENT:
-      return this._computedLeftValue = this._computeValuePercentX(this._computedLeftParsed);
-  }
-
-  return null;
-}
-
-qx.Proto.getRightValue = function()
-{
-  if (this._computedRightValue != null) {
-    return this._computedRightValue;
-  }
-
-  switch(this._computedRightType)
-  {
-    case qx.ui.core.Widget.TYPE_PIXEL:
-      return this._computedRightValue = this._computeValuePixel(this._computedRightParsed);
-
-    case qx.ui.core.Widget.TYPE_PERCENT:
-      return this._computedRightValue = this._computeValuePercentX(this._computedRightParsed);
-  }
-
-  return null;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  INTELLIGENT GETTERS FOR STANDALONE DIMENSIONS: Y-AXIS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getHeightValue = function()
-{
-  if (this._computedHeightValue != null) {
-    return this._computedHeightValue;
-  }
-
-  switch(this._computedHeightType)
-  {
-    case qx.ui.core.Widget.TYPE_PIXEL:
-      return this._computedHeightValue = this._computeValuePixelLimit(this._computedHeightParsed);
-
-    case qx.ui.core.Widget.TYPE_PERCENT:
-      return this._computedHeightValue = this._computeValuePercentYLimit(this._computedHeightParsed);
-
-    case qx.ui.core.Widget.TYPE_AUTO:
-      return this._computedHeightValue = this.getPreferredBoxHeight();
-
-    case qx.ui.core.Widget.TYPE_FLEX:
-      try{
-        this.getParent().getLayoutImpl().computeChildrenFlexHeight();
-      } catch (e){
-        if (this.getParent().getLayoutImpl()["computeChildrenFlexHeight"] == null){
-          throw new Error("Widget " + this + ": having flex size but parent layout does not support it");
-        } else {
-          throw e;
-        }
-      }
-      return this._computedHeightValue = this._computedHeightFlexValue;
-  }
-
-  return null;
-}
-
-qx.Proto.getMinHeightValue = function()
-{
-  if (this._computedMinHeightValue != null) {
-    return this._computedMinHeightValue;
-  }
-
-  switch(this._computedMinHeightType)
-  {
-    case qx.ui.core.Widget.TYPE_PIXEL:
-      return this._computedMinHeightValue = this._computeValuePixelLimit(this._computedMinHeightParsed);
-
-    case qx.ui.core.Widget.TYPE_PERCENT:
-      return this._computedMinHeightValue = this._computeValuePercentYLimit(this._computedMinHeightParsed);
-
-    case qx.ui.core.Widget.TYPE_AUTO:
-      return this._computedMinHeightValue = this.getPreferredBoxHeight();
-  }
-
-  return null;
-}
-
-qx.Proto.getMaxHeightValue = function()
-{
-  if (this._computedMaxHeightValue != null) {
-    return this._computedMaxHeightValue;
-  }
-
-  switch(this._computedMaxHeightType)
-  {
-    case qx.ui.core.Widget.TYPE_PIXEL:
-      return this._computedMaxHeightValue = this._computeValuePixelLimit(this._computedMaxHeightParsed);
-
-    case qx.ui.core.Widget.TYPE_PERCENT:
-      return this._computedMaxHeightValue = this._computeValuePercentYLimit(this._computedMaxHeightParsed);
-
-    case qx.ui.core.Widget.TYPE_AUTO:
-      return this._computedMaxHeightValue = this.getPreferredBoxHeight();
-  }
-
-  return null;
-}
-
-qx.Proto.getTopValue = function()
-{
-  if (this._computedTopValue != null) {
-    return this._computedTopValue;
-  }
-
-  switch(this._computedTopType)
-  {
-    case qx.ui.core.Widget.TYPE_PIXEL:
-      return this._computedTopValue = this._computeValuePixel(this._computedTopParsed);
-
-    case qx.ui.core.Widget.TYPE_PERCENT:
-      return this._computedTopValue = this._computeValuePercentY(this._computedTopParsed);
-  }
-
-  return null;
-}
-
-qx.Proto.getBottomValue = function()
-{
-  if (this._computedBottomValue != null) {
-    return this._computedBottomValue;
-  }
-
-  switch(this._computedBottomType)
-  {
-    case qx.ui.core.Widget.TYPE_PIXEL:
-      return this._computedBottomValue = this._computeValuePixel(this._computedBottomParsed);
-
-    case qx.ui.core.Widget.TYPE_PERCENT:
-      return this._computedBottomValue = this._computeValuePercentY(this._computedBottomParsed);
-  }
-
-  return null;
-}
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  FRAME DIMENSIONS
----------------------------------------------------------------------------
-*/
-
-qx.OO.addCachedProperty({ name : "frameWidth", defaultValue : null, addToQueueRuntime : true });
-qx.OO.addCachedProperty({ name : "frameHeight", defaultValue : null, addToQueueRuntime : true });
-
-qx.Proto._computeFrameWidth = function()
-{
-  var fw = this._cachedBorderLeft + this.getPaddingLeft() + this.getPaddingRight() + this._cachedBorderRight;
-
-  switch(this.getOverflow())
-  {
-    case "scroll":
-    case "scrollY":
-      qx.ui.core.Widget.initOverflow();
-      fw += qx.ui.core.Widget.SCROLLBAR_SIZE;
-      break;
-
-    case "auto":
-      // This seems to be really hard to implement
-      // this.debug("Check Auto Scroll-X: " + this.getPreferredBoxHeight() + " :: " + this.getBoxHeight());
-      break;
-  }
-
-  return fw;
-}
-
-qx.Proto._computeFrameHeight = function()
-{
-  var fh = this._cachedBorderTop + this.getPaddingTop() + this.getPaddingBottom() + this._cachedBorderBottom;
-
-  switch(this.getOverflow())
-  {
-    case "scroll":
-    case "scrollX":
-      qx.ui.core.Widget.initOverflow();
-      fh += qx.ui.core.Widget.SCROLLBAR_SIZE;
-      break;
-
-    case "auto":
-      // This seems to be really hard to implement
-      // this.debug("Check Auto Scroll-Y: " + this.getPreferredBoxWidth() + " :: " + this.getBoxWidth());
-      break;
-  }
-
-  return fh;
-}
-
-qx.Proto._invalidateFrameDimensions = function()
-{
-  this._invalidateFrameWidth();
-  this._invalidateFrameHeight();
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PREFERRED DIMENSIONS: INNER
----------------------------------------------------------------------------
-*/
-
-qx.OO.addCachedProperty({ name : "preferredInnerWidth", defaultValue : null, addToQueueRuntime : true });
-qx.OO.addCachedProperty({ name : "preferredInnerHeight", defaultValue : null, addToQueueRuntime : true });
-
-qx.Proto._invalidatePreferredInnerDimensions = function()
-{
-  this._invalidatePreferredInnerWidth();
-  this._invalidatePreferredInnerHeight();
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PREFERRED DIMENSIONS: BOX
----------------------------------------------------------------------------
-*/
-
-qx.OO.addCachedProperty({ name : "preferredBoxWidth", defaultValue : null });
-qx.OO.addCachedProperty({ name : "preferredBoxHeight", defaultValue : null });
-
-qx.Proto._computePreferredBoxWidth = function()
-{
-  try {
-    return Math.max(0, this.getPreferredInnerWidth() + this.getFrameWidth());
-  } catch(ex) {
-    this.error("_computePreferredBoxWidth failed", ex);
-  }
-}
-
-qx.Proto._computePreferredBoxHeight = function()
-{
-  try {
-    return Math.max(0, this.getPreferredInnerHeight() + this.getFrameHeight());
-  } catch(ex) {
-    this.error("_computePreferredBoxHeight failed", ex);
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  LAYOUT QUEUE
----------------------------------------------------------------------------
-*/
-
-qx.Proto._initialLayoutDone = false;
-
-qx.Proto.addToLayoutChanges = function(p)
-{
-  if (this._isDisplayable) {
-    this.getParent()._addChildToChildrenQueue(this);
-  }
-
-  return this._layoutChanges[p] = true;
-}
-
-qx.Proto.addToQueue = function(p) {
-  this._initialLayoutDone ? this.addToJobQueue(p) : this.addToLayoutChanges(p);
-}
-
-qx.Proto.addToQueueRuntime = function(p) {
-  return !this._initialLayoutDone || this.addToJobQueue(p);
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  BORDER/MARGIN/PADDING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._applyBorderX = function(vChild, vChanges, vStyle)
-{
-  var vBorder = vChild.getBorder();
-  vBorder ? vBorder._applyWidgetX(vChild) : qx.renderer.border.Border._resetBorderX(vChild);
-}
-
-qx.Proto._applyBorderY = function(vChild, vChanges, vStyle)
-{
-  var vBorder = vChild.getBorder();
-  vBorder ? vBorder._applyWidgetY(vChild) : qx.renderer.border.Border._resetBorderY(vChild);
-}
-
-qx.Proto._applyPaddingX = qx.lang.Function.returnTrue;
-qx.Proto._applyPaddingY = qx.lang.Function.returnTrue;
-
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  LAYOUT AUTO/PERCENT CACHE
----------------------------------------------------------------------------
-*/
-
-qx.OO.addCachedProperty({ name : "hasPercentX", defaultValue : false });
-qx.OO.addCachedProperty({ name : "hasPercentY", defaultValue : false });
-qx.OO.addCachedProperty({ name : "hasAutoX", defaultValue : false });
-qx.OO.addCachedProperty({ name : "hasAutoY", defaultValue : false });
-qx.OO.addCachedProperty({ name : "hasFlexX", defaultValue : false });
-qx.OO.addCachedProperty({ name : "hasFlexY", defaultValue : false });
-
-qx.Proto._computeHasPercentX = function() {
-  return (this._computedLeftTypePercent ||
-          this._computedWidthTypePercent ||
-          this._computedMinWidthTypePercent ||
-          this._computedMaxWidthTypePercent ||
-          this._computedRightTypePercent);
-}
-
-qx.Proto._computeHasPercentY = function() {
-  return (this._computedTopTypePercent ||
-          this._computedHeightTypePercent ||
-          this._computedMinHeightTypePercent ||
-          this._computedMaxHeightTypePercent ||
-          this._computedBottomTypePercent);
-}
-
-qx.Proto._computeHasAutoX = function() {
-  return (this._computedWidthTypeAuto ||
-          this._computedMinWidthTypeAuto ||
-          this._computedMaxWidthTypeAuto);
-}
-
-qx.Proto._computeHasAutoY = function() {
-  return (this._computedHeightTypeAuto ||
-          this._computedMinHeightTypeAuto ||
-          this._computedMaxHeightTypeAuto);
-}
-
-qx.Proto._computeHasFlexX = function() {
-  return this._computedWidthTypeFlex;
-}
-
-qx.Proto._computeHasFlexY = function() {
-  return this._computedHeightTypeFlex;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  LAYOUT TYPE INDENTIFY HELPER METHODS
----------------------------------------------------------------------------
-*/
-
-qx.ui.core.Widget.TYPE_NULL = 0;
-qx.ui.core.Widget.TYPE_PIXEL = 1;
-qx.ui.core.Widget.TYPE_PERCENT = 2;
-qx.ui.core.Widget.TYPE_AUTO = 3;
-qx.ui.core.Widget.TYPE_FLEX = 4;
-
-qx.Proto._evalUnitsPixelPercentAutoFlex = function(propValue)
-{
-  switch(propValue)
-  {
-    case "auto":
-      return qx.ui.core.Widget.TYPE_AUTO;
-
-    case Infinity:
-    case -Infinity:
-      return qx.ui.core.Widget.TYPE_NULL;
-  }
-
-  switch(typeof propValue)
-  {
-    case "number":
-      return isNaN(propValue) ? qx.ui.core.Widget.TYPE_NULL : qx.ui.core.Widget.TYPE_PIXEL;
-
-    case "string":
-      return propValue.indexOf("%") != -1 ? qx.ui.core.Widget.TYPE_PERCENT : propValue.indexOf("*") != -1 ? qx.ui.core.Widget.TYPE_FLEX : qx.ui.core.Widget.TYPE_NULL;
-  }
-
-  return qx.ui.core.Widget.TYPE_NULL;
-}
-
-qx.Proto._evalUnitsPixelPercentAuto = function(propValue)
-{
-  switch(propValue)
-  {
-    case "auto":
-      return qx.ui.core.Widget.TYPE_AUTO;
-
-    case Infinity:
-    case -Infinity:
-      return qx.ui.core.Widget.TYPE_NULL;
-  }
-
-  switch(typeof propValue)
-  {
-    case "number":
-      return isNaN(propValue) ? qx.ui.core.Widget.TYPE_NULL : qx.ui.core.Widget.TYPE_PIXEL;
-
-    case "string":
-      return propValue.indexOf("%") != -1 ? qx.ui.core.Widget.TYPE_PERCENT : qx.ui.core.Widget.TYPE_NULL;
-  }
-
-  return qx.ui.core.Widget.TYPE_NULL;
-}
-
-qx.Proto._evalUnitsPixelPercent = function(propValue)
-{
-  switch(propValue)
-  {
-    case Infinity:
-    case -Infinity:
-      return qx.ui.core.Widget.TYPE_NULL;
-  }
-
-  switch(typeof propValue)
-  {
-    case "number":
-      return isNaN(propValue) ? qx.ui.core.Widget.TYPE_NULL : qx.ui.core.Widget.TYPE_PIXEL;
-
-    case "string":
-      return propValue.indexOf("%") != -1 ? qx.ui.core.Widget.TYPE_PERCENT : qx.ui.core.Widget.TYPE_NULL;
-  }
-
-  return qx.ui.core.Widget.TYPE_NULL;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  LAYOUT TYPE AND VALUE KEY PRE-CACHE
----------------------------------------------------------------------------
-*/
-
-qx.ui.core.Widget.layoutPropertyTypes = {};
-
-qx.ui.core.Widget.initLayoutProperties = function()
-{
-  var a = [ "width", "height",
-            "minWidth", "maxWidth",
-            "minHeight", "maxHeight",
-            "left", "right", "top", "bottom" ];
-
-  for (var i=0, l=a.length, p, b, t; i<l; i++)
-  {
-    p = a[i];
-    b = "_computed" + qx.lang.String.toFirstUp(p);
-    t = b + "Type";
-
-    qx.ui.core.Widget.layoutPropertyTypes[p] =
-    {
-      dataType : t,
-      dataParsed : b + "Parsed",
-      dataValue : b + "Value",
-
-      typePixel : t + "Pixel",
-      typePercent : t + "Percent",
-      typeAuto : t + "Auto",
-      typeFlex : t + "Flex",
-      typeNull : t + "Null"
-    }
-  }
-}
-
-qx.ui.core.Widget.initLayoutProperties();
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  LAYOUT TYPE AND VALUE STORAGE
----------------------------------------------------------------------------
-*/
-
-qx.Proto._unitDetectionPixelPercentAutoFlex = function(propData, propValue)
-{
-  var r = qx.ui.core.Widget.layoutPropertyTypes[propData.name];
-
-  var s = r.dataType;
-  var p = r.dataParsed;
-  var v = r.dataValue;
-
-  var s1 = r.typePixel;
-  var s2 = r.typePercent;
-  var s3 = r.typeAuto;
-  var s4 = r.typeFlex;
-  var s5 = r.typeNull;
-
-  var wasPercent = this[s2];
-  var wasAuto = this[s3];
-  var wasFlex = this[s4];
-
-  switch(this[s] = this._evalUnitsPixelPercentAutoFlex(propValue))
-  {
-    case qx.ui.core.Widget.TYPE_PIXEL:
-      this[s1] = true;
-      this[s2] = this[s3] = this[s4] = this[s5] = false;
-      this[p] = this[v] = Math.round(propValue);
-      break;
-
-    case qx.ui.core.Widget.TYPE_PERCENT:
-      this[s2] = true;
-      this[s1] = this[s3] = this[s4] = this[s5] = false;
-      this[p] = parseFloat(propValue);
-      this[v] = null;
-      break;
-
-    case qx.ui.core.Widget.TYPE_AUTO:
-      this[s3] = true;
-      this[s1] = this[s2] = this[s4] = this[s5] = false;
-      this[p] = this[v] = null;
-      break;
-
-    case qx.ui.core.Widget.TYPE_FLEX:
-      this[s4] = true;
-      this[s1] = this[s2] = this[s3] = this[s5] = false;
-      this[p] = parseFloat(propValue);
-      this[v] = null;
-      break;
-
-    default:
-      this[s5] = true;
-      this[s1] = this[s2] = this[s3] = this[s4] = false;
-      this[p] = this[v] = null;
-      break;
-  }
-
-  if (wasPercent != this[s2])
-  {
-    switch(propData.name)
-    {
-      case "minWidth":
-      case "maxWidth":
-      case "width":
-      case "left":
-      case "right":
-        this._invalidateHasPercentX();
-        break;
-
-      case "maxHeight":
-      case "minHeight":
-      case "height":
-      case "top":
-      case "bottom":
-        this._invalidateHasPercentY();
-        break;
-    }
-  }
-
-  // No ELSE because you can also switch from percent to auto
-  if (wasAuto != this[s3])
-  {
-    switch(propData.name)
-    {
-      case "minWidth":
-      case "maxWidth":
-      case "width":
-        this._invalidateHasAutoX();
-        break;
-
-      case "minHeight":
-      case "maxHeight":
-      case "height":
-        this._invalidateHasAutoY();
-        break;
-    }
-  }
-
-  // No ELSE because you can also switch from percent to auto
-  if (wasFlex != this[s4])
-  {
-    switch(propData.name)
-    {
-      case "width":
-        this._invalidateHasFlexX();
-        break;
-
-      case "height":
-        this._invalidateHasFlexY();
-        break;
-    }
-  }
-}
-
-qx.Proto._unitDetectionPixelPercentAuto = function(propData, propValue)
-{
-  var r = qx.ui.core.Widget.layoutPropertyTypes[propData.name];
-
-  var s = r.dataType;
-  var p = r.dataParsed;
-  var v = r.dataValue;
-
-  var s1 = r.typePixel;
-  var s2 = r.typePercent;
-  var s3 = r.typeAuto;
-  var s4 = r.typeNull;
-
-  var wasPercent = this[s2];
-  var wasAuto = this[s3];
-
-  switch(this[s] = this._evalUnitsPixelPercentAuto(propValue))
-  {
-    case qx.ui.core.Widget.TYPE_PIXEL:
-      this[s1] = true;
-      this[s2] = this[s3] = this[s4] = false;
-      this[p] = this[v] = Math.round(propValue);
-      break;
-
-    case qx.ui.core.Widget.TYPE_PERCENT:
-      this[s2] = true;
-      this[s1] = this[s3] = this[s4] = false;
-      this[p] = parseFloat(propValue);
-      this[v] = null;
-      break;
-
-    case qx.ui.core.Widget.TYPE_AUTO:
-      this[s3] = true;
-      this[s1] = this[s2] = this[s4] = false;
-      this[p] = this[v] = null;
-      break;
-
-    default:
-      this[s4] = true;
-      this[s1] = this[s2] = this[s3] = false;
-      this[p] = this[v] = null;
-      break;
-  }
-
-  if (wasPercent != this[s2])
-  {
-    switch(propData.name)
-    {
-      case "minWidth":
-      case "maxWidth":
-      case "width":
-      case "left":
-      case "right":
-        this._invalidateHasPercentX();
-        break;
-
-      case "minHeight":
-      case "maxHeight":
-      case "height":
-      case "top":
-      case "bottom":
-        this._invalidateHasPercentY();
-        break;
-    }
-  }
-
-  // No ELSE because you can also switch from percent to auto
-  if (wasAuto != this[s3])
-  {
-    switch(propData.name)
-    {
-      case "minWidth":
-      case "maxWidth":
-      case "width":
-        this._invalidateHasAutoX();
-        break;
-
-      case "minHeight":
-      case "maxHeight":
-      case "height":
-        this._invalidateHasAutoY();
-        break;
-    }
-  }
-}
-
-qx.Proto._unitDetectionPixelPercent = function(propData, propValue)
-{
-  var r = qx.ui.core.Widget.layoutPropertyTypes[propData.name];
-
-  var s = r.dataType;
-  var p = r.dataParsed;
-  var v = r.dataValue;
-
-  var s1 = r.typePixel;
-  var s2 = r.typePercent;
-  var s3 = r.typeNull;
-
-  var wasPercent = this[s2];
-
-  switch(this[s] = this._evalUnitsPixelPercent(propValue))
-  {
-    case qx.ui.core.Widget.TYPE_PIXEL:
-      this[s1] = true;
-      this[s2] = this[s3] = false;
-      this[p] = this[v] = Math.round(propValue);
-      break;
-
-    case qx.ui.core.Widget.TYPE_PERCENT:
-      this[s2] = true;
-      this[s1] = this[s3] = false;
-      this[p] = parseFloat(propValue);
-      this[v] = null;
-      break;
-
-    default:
-      this[s3] = true;
-      this[s1] = this[s2] = false;
-      this[p] = this[v] = null;
-      break;
-  }
-
-  if (wasPercent != this[s2])
-  {
-    switch(propData.name)
-    {
-      case "minWidth":
-      case "maxWidth":
-      case "width":
-      case "left":
-      case "right":
-        this._invalidateHasPercentX();
-        break;
-
-      case "minHeight":
-      case "maxHeight":
-      case "height":
-      case "top":
-      case "bottom":
-        this._invalidateHasPercentY();
-        break;
-    }
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  INLINE EVENTS
----------------------------------------------------------------------------
-*/
-
-if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.ui.core.Widget.inlineEventMap =
-  {
-    input : "onpropertychange",
-    select : "onselect",
-    scroll : "onscroll",
-    focus : "onfocus",
-    blur : "onblur"
-  }
-
-  qx.Proto.enableInlineEvent = function(vEventName)
-  {
-    var vEventType = qx.ui.core.Widget.inlineEventMap[vEventName];
-
-    if (!this._inlineEvents)
-    {
-      this._inlineEvents = [vEventType];
-    }
-    else
-    {
-      this._inlineEvents.push(vEventType);
-    }
-
-    if (this._isCreated) {
-      this.getElement()[vEventType] = qx.ui.core.Widget.__oninlineevent;
-    }
-  }
-
-  qx.Proto.disableInlineEvent = function(vEventName)
-  {
-    var vEventType = qx.ui.core.Widget.inlineEventMap[vEventName];
-
-    if (this._inlineEvents) {
-      qx.lang.Array.remove(this._inlineEvents, vEventType);
-    }
-
-    if (this._isCreated) {
-      this.getElement()[vEventType] = null;
-    }
-  }
-
-  qx.Proto._addInlineEvents = function(vElement)
-  {
-    if (this._inlineEvents)
-    {
-      for (var i=0, a=this._inlineEvents, l=a.length; i<l; i++) {
-        vElement[a[i]] = qx.ui.core.Widget.__oninlineevent;
-      }
-    }
-  }
-
-  qx.Proto._removeInlineEvents = function(vElement)
-  {
-    if (this._inlineEvents)
-    {
-      for (var i=0, a=this._inlineEvents, l=a.length; i<l; i++) {
-        vElement[a[i]] = null;
-      }
-    }
-  }
-}
-else
-{
-  qx.Proto.enableInlineEvent = function(vEventName)
-  {
-    if (!this._inlineEvents)
-    {
-      this._inlineEvents = [vEventName];
-    }
-    else
-    {
-      this._inlineEvents.push(vEventName);
-    }
-
-    if (this._isCreated) {
-      this.getElement().addEventListener(vEventName, qx.ui.core.Widget.__oninlineevent, false);
-    }
-  }
-
-  qx.Proto.disableInlineEvent = function(vEventName)
-  {
-    if (this._inlineEvents) {
-      qx.lang.Array.remove(this._inlineEvents, vEventName);
-    }
-
-    if (this._isCreated) {
-      this.getElement().removeEventListener(vEventName, qx.ui.core.Widget.__oninlineevent, false);
-    }
-  }
-
-  qx.Proto._addInlineEvents = function(vElement)
-  {
-    if (this._inlineEvents)
-    {
-      for (var i=0, a=this._inlineEvents, l=a.length; i<l; i++) {
-        vElement.addEventListener(a[i], qx.ui.core.Widget.__oninlineevent, false);
-      }
-    }
-  }
-
-  qx.Proto._removeInlineEvents = function(vElement)
-  {
-    if (this._inlineEvents)
-    {
-      for (var i=0, a=this._inlineEvents, l=a.length; i<l; i++) {
-        vElement.removeEventListener(a[i], qx.ui.core.Widget.__oninlineevent, false);
-      }
-    }
-  }
-}
-
-qx.ui.core.Widget.__oninlineevent = function(e)
-{
-  if (!e) {
-    e = window.event;
-  }
-
-  if (this.qx_Widget) {
-    return this.qx_Widget._oninlineevent(e);
-  }
-}
-
-qx.Proto._oninlineevent = function(e)
-{
-  if (qx.ui.core.Widget._inFlushGlobalQueues) {
-    return;
-  }
-
-  // this.debug("Inlineevent: " + e.type);
-
-  switch(e.type)
-  {
-    case "propertychange":
-      this._oninlineproperty(e);
-      break;
-
-    case "input":
-      this._oninlineinput(e);
-      break;
-
-    default:
-      this.createDispatchEvent(e.type);
-  }
-}
-
-qx.Proto._oninlineinput = function(e)
-{
-  this.createDispatchDataEvent("input", this.getComputedValue());
-
-  // Block parents from this event
-  if (e.stopPropagation) {
-    e.stopPropagation();
-  }
-
-  e.returnValue = -1;
-}
-
-qx.Proto._oninlineproperty = function(e)
-{
-  switch(e.propertyName)
-  {
-    case "value":
-      if (!this._inValueProperty) {
-        this._oninlineinput(e);
-      }
-
-      break;
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CHILDREN MANAGMENT
----------------------------------------------------------------------------
-*/
-
-/*!
-  The widget which is at the top level,
-  which contains all others (normally a
-  instance of qx.ui.core.ClientDocument).
-*/
-qx.Proto.getTopLevelWidget = function() {
-  return this._hasParent ? this.getParent().getTopLevelWidget() : null;
-}
-
-/*!
-  Move myself to immediately before another child of the same parent.
-*/
-qx.Proto.moveSelfBefore = function(vBefore) {
-  this.getParent().addBefore(this, vBefore);
-}
-
-/*!
-  Move myself to immediately after another child of the same parent.
-*/
-qx.Proto.moveSelfAfter = function(vAfter) {
-  this.getParent().addAfter(this, vAfter);
-}
-
-/*!
-  Move myself to the head of the list: make me the first child.
-*/
-qx.Proto.moveSelfToBegin = function() {
-  this.getParent().addAtBegin(this);
-}
-
-/*!
-  Move myself to the end of the list: make me the last child.
-*/
-qx.Proto.moveSelfToEnd = function() {
-  this.getParent().addAtEnd(this);
-}
-
-/*!
-  Returns the previous sibling.
-*/
-qx.Proto.getPreviousSibling = function()
-{
-  var p = this.getParent();
-
-  if(p == null) {
-    return null;
-  }
-
-  var cs = p.getChildren();
-  return cs[cs.indexOf(this) - 1];
-}
-
-/*!
-  Returns the next sibling.
-*/
-qx.Proto.getNextSibling = function()
-{
-  var p = this.getParent();
-
-  if(p == null) {
-    return null;
-  }
-
-  var cs = p.getChildren();
-  return cs[cs.indexOf(this) + 1];
-}
-
-/*!
-  Returns the previous visible sibling.
-*/
-qx.Proto.getPreviousVisibleSibling = function()
-{
-  if(!this._hasParent) {
-    return null;
-  }
-
-  var vChildren = this.getParent().getVisibleChildren();
-  return vChildren[vChildren.indexOf(this) - 1];
-}
-
-/*!
-  Returns the next visible sibling.
-*/
-qx.Proto.getNextVisibleSibling = function()
-{
-  if(!this._hasParent) {
-    return null;
-  }
-
-  var vChildren = this.getParent().getVisibleChildren();
-  return vChildren[vChildren.indexOf(this) + 1];
-}
-
-qx.Proto.getPreviousActiveSibling = function(vIgnoreClasses)
-{
-  var vPrev = qx.ui.core.Widget.getActiveSiblingHelper(this, this.getParent(), -1, vIgnoreClasses, null);
-  return vPrev ? vPrev : this.getParent().getLastActiveChild();
-}
-
-qx.Proto.getNextActiveSibling = function(vIgnoreClasses)
-{
-  var vNext = qx.ui.core.Widget.getActiveSiblingHelper(this, this.getParent(), 1, vIgnoreClasses, null);
-  return vNext ? vNext : this.getParent().getFirstActiveChild();
-}
-
-qx.Proto.isFirstChild = function() {
-  return this._hasParent && this.getParent().getFirstChild() == this;
-}
-
-qx.Proto.isLastChild = function() {
-  return this._hasParent && this.getParent().getLastChild() == this;
-}
-
-qx.Proto.isFirstVisibleChild = function() {
-  return this._hasParent && this.getParent().getFirstVisibleChild() == this;
-}
-
-qx.Proto.isLastVisibleChild = function() {
-  return this._hasParent && this.getParent().getLastVisibleChild() == this;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ENABLED MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
-{
-  if (propValue)
-  {
-    this.removeState("disabled");
-  }
-  else
-  {
-    this.addState("disabled");
-
-    // Also reset some states to be sure a pressed/hovered button gets reset
-    this.removeState("over");
-
-    if (qx.OO.isAvailable("qx.ui.form.Button"))
-    {
-      this.removeState("abandoned");
-      this.removeState("pressed");
-    }
-  }
-
-  return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  STATE HANDLING
----------------------------------------------------------------------------
-*/
-
-/**
- * Returns whether a state is set.
- *
- * @param vState {String} the state to check.
- * @return {Boolean} whether the state is set.
- */
-qx.Proto.hasState = function(vState) {
-  return this._states[vState] ? true : false;
-}
-
-/**
- * Sets a state.
- *
- * @param state {String} the state to set.
- */
-qx.Proto.addState = function(vState)
-{
-  if (! this._states[vState]) {
-    this._states[vState] = true;
-
-    if (this._hasParent) {
-      qx.ui.core.Widget.addToGlobalStateQueue(this);
-    }
-  }
-}
-
-/**
- * Clears a state.
- *
- * @param vState {String} the state to clear.
- */
-qx.Proto.removeState = function(vState)
-{
-  if (this._states[vState]) {
-    delete this._states[vState];
-
-    if (this._hasParent) {
-      qx.ui.core.Widget.addToGlobalStateQueue(this);
-    }
-  }
-}
-
-/**
- * Sets or clears a state.
- *
- * @param state {String} the state to set or clear.
- * @param enabled {Boolean} whether the state should be set.
- *        If false it will be cleared.
- */
-qx.Proto.setState = function(state, enabled) {
-  if (enabled) {
-    this.addState(state);
-  } else {
-    this.removeState(state);
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  APPEARANCE
----------------------------------------------------------------------------
-*/
-
-qx.Proto._applyInitialAppearance = function()
-{
-  var vAppearance = this.getAppearance();
-
-  if (vAppearance)
-  {
-    try
-    {
-      var r = qx.manager.object.AppearanceManager.getInstance().getAppearanceTheme().initialFrom(vAppearance);
-      if (r) {
-        this.set(r);
-      }
-    }
-    catch(ex)
-    {
-      this.error("Could not apply initial appearance", ex);
-    }
-  }
-}
-
-qx.Proto._applyStateAppearance = function()
-{
-  // HACK: Is there a cleaner way to implement this?
-  // Maybe not use the appearance for this, but a simple property and event handler combination?
-  this._applyStateStyleFocus(this._states);
-
-  var vAppearance = this.getAppearance();
-
-  if (vAppearance)
-  {
-    try
-    {
-      var r = qx.manager.object.AppearanceManager.getInstance().getAppearanceTheme().stateFrom(vAppearance, this._states);
-      if (r) {
-        this.set(r);
-      }
-    }
-    catch(ex)
-    {
-      this.error("Could not apply state appearance", ex);
-    }
-  }
-}
-
-qx.Proto._resetAppearanceThemeWrapper = function(vNewAppearanceTheme, vOldAppearanceTheme)
-{
-  var vAppearance = this.getAppearance();
-
-  if (vAppearance)
-  {
-    var vOldAppearanceThemeObject = qx.manager.object.AppearanceManager.getInstance().getThemeById(vOldAppearanceTheme);
-    var vNewAppearanceThemeObject = qx.manager.object.AppearanceManager.getInstance().getThemeById(vNewAppearanceTheme);
-
-    var vOldAppearanceProperties = qx.lang.Object.mergeWith(vOldAppearanceThemeObject.initialFrom(vAppearance), vOldAppearanceThemeObject.stateFrom(vAppearance, this._states));
-    var vNewAppearanceProperties = qx.lang.Object.mergeWith(vNewAppearanceThemeObject.initialFrom(vAppearance), vNewAppearanceThemeObject.stateFrom(vAppearance, this._states));
-
-    for (var vProp in vOldAppearanceProperties)
-    {
-      if (!(vProp in vNewAppearanceProperties)) {
-        this[qx.OO.resetter[vProp]]();
-      }
-    }
-
-    this.set(vNewAppearanceProperties);
-  }
-}
-
-if (qx.core.Client.getInstance().isMshtml())
-{
-  /*
-    Mshtml does not support outlines by css
-  */
-  qx.Proto._applyStateStyleFocus = function(vStates) {}
-}
-else if (qx.core.Client.getInstance().isGecko())
-{
-  qx.Proto._applyStateStyleFocus = function(vStates)
-  {
-    if (vStates.focused)
-    {
-      if (!qx.event.handler.FocusHandler.mouseFocus && !this.getHideFocus())
-      {
-        this.setStyleProperty("MozOutline", "1px dotted invert");
-      }
-    }
-    else
-    {
-      this.removeStyleProperty("MozOutline");
-    }
-  }
-}
-else
-{
-  qx.Proto._applyStateStyleFocus = function(vStates)
-  {
-    if (vStates.focused)
-    {
-      if (!qx.event.handler.FocusHandler.mouseFocus && !this.getHideFocus())
-      {
-        this.setStyleProperty("outline", "1px dotted invert");
-      }
-    }
-    else
-    {
-      this.setStyleProperty("outline", "0px none");
-    }
-  }
-}
-
-qx.Proto.addToStateQueue = function() {
-  qx.ui.core.Widget.addToGlobalStateQueue(this);
-}
-
-qx.Proto.recursiveAddToStateQueue = function() {
-  this.addToStateQueue();
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  APPEARANCE MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyAppearance = function(propValue, propOldValue, propData)
-{
-  var vAppearanceThemeObject = qx.manager.object.AppearanceManager.getInstance().getAppearanceTheme();
-
-  var vNewAppearanceProperties = vAppearanceThemeObject.initialFrom(propValue);
-
-  if (this.isCreated()) {
-    qx.lang.Object.mergeWith(vNewAppearanceProperties, vAppearanceThemeObject.stateFrom(propValue, this._states));
-  }
-
-  if (propOldValue)
-  {
-    var vOldAppearanceProperties = vAppearanceThemeObject.initialFrom(propOldValue);
-
-    if (this.isCreated()) {
-      qx.lang.Object.mergeWith(vOldAppearanceProperties, vAppearanceThemeObject.stateFrom(propOldValue, this._states));
-    }
-
-    for (var vProp in vOldAppearanceProperties)
-    {
-      if (!(vProp in vNewAppearanceProperties)) {
-        this[qx.OO.resetter[vProp]]();
-      }
-    }
-  }
-
-  this.set(vNewAppearanceProperties);
-
-  return true;
-}
-
-qx.Proto._recursiveAppearanceThemeUpdate = function(vNewAppearanceTheme, vOldAppearanceTheme)
-{
-  try
-  {
-    this._resetAppearanceThemeWrapper(vNewAppearanceTheme, vOldAppearanceTheme);
-  }
-  catch(ex)
-  {
-    this.error("Failed to update appearance theme", ex);
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ELEMENT DATA
----------------------------------------------------------------------------
-*/
-
-/*!
-  Placeholder method to add attributes and other content to element node
-*/
-qx.Proto._applyElementData = function(el) {}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  HTML PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.setHtmlProperty = function(propName, propValue)
-{
-  if (!this._htmlProperties) {
-    this._htmlProperties = {};
-  }
-
-  this._htmlProperties[propName] = propValue;
-
-  if (this._isCreated && this.getElement()[propName] != propValue) {
-    this.getElement()[propName] = propValue;
-  }
-
-  return true;
-}
-
-if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.Proto.removeHtmlProperty = function(propName)
-  {
-    if (!this._htmlProperties) {
-      return;
-    }
-
-    delete this._htmlProperties[propName];
-
-    if (this._isCreated) {
-      this.getElement().removeAttribute(propName);
-    }
-
-    return true;
-  }
-}
-else
-{
-  qx.Proto.removeHtmlProperty = function(propName)
-  {
-    if (!this._htmlProperties) {
-      return;
-    }
-
-    delete this._htmlProperties[propName];
-
-    if (this._isCreated)
-    {
-      this.getElement().removeAttribute(propName);
-      delete this.getElement()[propName];
-    }
-
-    return true;
-  }
-}
-
-qx.Proto.getHtmlProperty = function(propName)
-{
-  if (!this._htmlProperties) {
-    return "";
-  }
-
-  return this._htmlProperties[propName] || "";
-}
-
-qx.Proto._applyHtmlProperties = function(vElement)
-{
-  var vProperties = this._htmlProperties;
-
-  if (vProperties)
-  {
-    // this.debug("HTML-Properties: " + qx.lang.Object.getLength(vProperties));
-
-    var propName;
-
-    for (propName in vProperties) {
-      vElement[propName] = vProperties[propName];
-    }
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  HTML ATTRIBUTES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.setHtmlAttribute = function(propName, propValue)
-{
-  if (!this._htmlAttributes) {
-    this._htmlAttributes = {};
-  }
-
-  this._htmlAttributes[propName] = propValue;
-
-  if (this._isCreated) {
-    this.getElement().setAttribute(propName, propValue);
-  }
-
-  return true;
-}
-
-qx.Proto.removeHtmlAttribute = function(propName)
-{
-  if (!this._htmlAttributes) {
-    return;
-  }
-
-  delete this._htmlAttributes[propName];
-
-  if (this._isCreated) {
-    this.getElement().removeAttribute(propName);
-  }
-
-  return true;
-}
-
-qx.Proto.getHtmlAttribute = function(propName)
-{
-  if (!this._htmlAttributes) {
-    return "";
-  }
-
-  return this._htmlAttributes[propName] || "";
-}
-
-qx.Proto._applyHtmlAttributes = function(vElement)
-{
-  var vAttributes = this._htmlAttributes;
-
-  if (vAttributes)
-  {
-    // this.debug("HTML-Attributes: " + qx.lang.Object.getLength(vAttributes));
-
-    var propName;
-
-    for (propName in vAttributes) {
-      vElement.setAttribute(propName, vAttributes[propName]);
-    }
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  STYLE PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getStyleProperty = function(propName) {
-  return this._styleProperties[propName] || "";
-}
-
-qx.Proto.setStyleProperty = function(propName, propValue)
-{
-  this._styleProperties[propName] = propValue;
-
-  if (this._isCreated)
-  {
-    /*
-      The zIndex and filter properties should always be
-      applied on the "real" element node.
-    */
-    switch(propName)
-    {
-      case "zIndex":
-      case "filter":
-      case "display":
-      case "visibility":
-        var vElement = this.getElement();
-        break;
-
-      default:
-        var vElement = this._getTargetNode();
-    }
-
-    if (vElement) {
-      vElement.style[propName] = propValue;
-    }
-  }
-
-  return true;
-}
-
-qx.Proto.removeStyleProperty = function(propName)
-{
-  delete this._styleProperties[propName];
-
-  if (this._isCreated)
-  {
-    /*
-      The zIndex and filter properties should always be
-      applied on the "real" element node.
-    */
-    switch(propName)
-    {
-      case "zIndex":
-      case "filter":
-      case "display":
-      case "visibility":
-        var vElement = this.getElement();
-        break;
-
-      default:
-        var vElement = this._getTargetNode();
-    }
-
-    if (vElement) {
-      vElement.style[propName] = "";
-    }
-  }
-
-  return true;
-}
-
-qx.Proto._applyStyleProperties = function(vElement)
-{
-  var vProperties = this._styleProperties;
-  var propName;
-
-  var vBaseElement = vElement;
-  var vTargetElement = this._getTargetNode();
-
-  for (propName in vProperties)
-  {
-    /*
-      The zIndex and filter properties should always be
-      applied on the "real" element node.
-    */
-    switch(propName)
-    {
-      case "zIndex":
-      case "filter":
-        vElement = vBaseElement;
-        break;
-
-      default:
-        vElement = vTargetElement;
-    }
-
-    var value = vProperties[propName];
-    vElement.style[propName] = (value == null) ? "" : value;
-  }
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  FOCUS HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto.isFocusable = function() {
-  return this.isEnabled() && this.isSeeable() && this.getTabIndex() >= 0;
-}
-
-qx.Proto.isFocusRoot = function() {
-  return false;
-}
-
-qx.Proto.getFocusRoot = function()
-{
-  if(this._hasParent) {
-    return this.getParent().getFocusRoot();
-  }
-
-  return null;
-}
-
-qx.Proto.getActiveChild = function()
-{
-  var vRoot = this.getFocusRoot();
-  if (vRoot) {
-    return vRoot.getActiveChild();
-  }
-
-  return null;
-}
-
-qx.Proto._ontabfocus = qx.lang.Function.returnTrue;
-
-qx.Proto._modifyFocused = function(propValue, propOldValue, propData)
-{
-  if (!this.isCreated()) {
-    return true;
-  }
-
-  var vFocusRoot = this.getFocusRoot();
-
-  // this.debug("Focused: " + propValue);
-
-  if (vFocusRoot)
-  {
-    // may be undefined if this widget has been removed
-    if (propValue)
-    {
-      vFocusRoot.setFocusedChild(this);
-      this._visualizeFocus();
-    }
-    else
-    {
-      if (vFocusRoot.getFocusedChild() == this) {
-        vFocusRoot.setFocusedChild(null);
-      }
-
-      this._visualizeBlur();
-    }
-  }
-
-  return true;
-}
-
-qx.Proto._visualizeBlur = function()
-{
-  // Force blur, even if mouseFocus is not active because we
-  // need to be sure that the previous focus rect gets removed.
-  // But this only needs to be done, if there is no new focused element.
-  if (this.getEnableElementFocus() && (!this.getFocusRoot().getFocusedChild() || (this.getFocusRoot().getFocusedChild() && this.getFocusRoot().getFocusedChild().getEnableElementFocus())))
-  {
-    try {
-      this.getElement().blur();
-    } catch(ex) {};
-  }
-
-  this.removeState("focused");
-  return true;
-}
-
-qx.Proto._visualizeFocus = function()
-{
-  //this.info("_visualizeFocus: " + qx.event.handler.FocusHandler.mouseFocus);
-  if (!qx.event.handler.FocusHandler.mouseFocus && this.getEnableElementFocus())
-  {
-    try {
-      this.getElement().focus();
-    } catch(ex) {};
-  }
-
-  this.addState("focused");
-  return true;
-}
-
-qx.Proto.focus = function()
-{
-  delete qx.event.handler.FocusHandler.mouseFocus;
-  this.setFocused(true);
-}
-
-qx.Proto.blur = function()
-{
-  delete qx.event.handler.FocusHandler.mouseFocus;
-  this.setFocused(false);
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CAPTURE
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyCapture = function(propValue, propOldValue, propData)
-{
-  var vMgr = qx.event.handler.EventHandler.getInstance();
-
-  if (propOldValue)
-  {
-    vMgr.setCaptureWidget(null);
-  }
-  else if (propValue)
-  {
-    vMgr.setCaptureWidget(this);
-  }
-
-  return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ZINDEX
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyZIndex = function(propValue, propOldValue, propData) {
-  return this.setStyleProperty(propData.name, propValue);
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  TAB INDEX
----------------------------------------------------------------------------
-*/
-
-if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.Proto._modifyTabIndex = function(propValue, propOldValue, propData)
-  {
-    if (propValue < 0 || !this.getEnabled()) {
-      this.setHtmlProperty("unselectable",
-                           "on");
-    } else {
-      this.removeHtmlProperty("unselectable");
-    }
-
-    this.setHtmlProperty("tabIndex",
-                         propValue < 0 ? -1 : 1);
-
-    return true;
-  }
-}
-else if (qx.core.Client.getInstance().isGecko())
-{
-  qx.Proto._modifyTabIndex = function(propValue, propOldValue, propData)
-  {
-    this.setStyleProperty("MozUserFocus",
-                          (propValue < 0
-                           ? "ignore"
-                           : "normal"));
-
-    // be forward compatible (CSS 3 Draft)
-    this.setStyleProperty("userFocus",
-                          (propValue < 0
-                           ? "ignore"
-                           : "normal"));
-
-    return true;
-  }
-}
-else
-{
-  qx.Proto._modifyTabIndex = function(propValue, propOldValue, propData)
-  {
-    // CSS 3 Draft
-    this.setStyleProperty("userFocus",
-                          (propValue < 0
-                           ? "ignore"
-                           : "normal"));
-
-    // IE Backward Compatible
-    if (propValue < 0 || !this.getEnabled()) {
-      this.setHtmlProperty("unselectable",
-                           "on");
-    } else {
-      this.removeHtmlProperty("unselectable");
-    }
-
-    this.setHtmlProperty("tabIndex",
-                         propValue < 0 ? -1 : 1);
-
-    return true;
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CSS CLASS NAME
----------------------------------------------------------------------------
-*/
-
-qx.Proto.setCssClassName = function(propValue) {
-  this.setHtmlProperty("className", propValue);
-}
-
-qx.Proto.getCssClassName = function() {
-  return this.getHtmlProperty("className");
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  WIDGET FROM POINT
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getWidgetFromPoint = function(x, y)
-{
-  var ret = this.getWidgetFromPointHelper(x, y);
-  return ret && ret != this ? ret : null;
-}
-
-qx.Proto.getWidgetFromPointHelper = function(x, y) {
-  return this;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CAN SELECT
----------------------------------------------------------------------------
-*/
-
-if(qx.core.Client.getInstance().isMshtml())
-{
-  qx.Proto._modifySelectable = function(propValue, propOldValue, propData)
-  {
-    if (propValue)
-    {
-      return this.removeHtmlProperty("unselectable");
-    }
-    else
-    {
-      return this.setHtmlProperty("unselectable", "on");
-    }
-  }
-}
-else if(qx.core.Client.getInstance().isGecko())
-{
-  qx.Proto._modifySelectable = function(propValue, propOldValue, propData)
-  {
-    if (propValue)
-    {
-      this.removeStyleProperty("MozUserSelect");
-    }
-    else
-    {
-      this.setStyleProperty("MozUserSelect", "none");
-    }
-
-    return true;
-  };
-}
-else if (qx.core.Client.getInstance().isOpera())
-{
-  // No known method available for this client
-  qx.Proto._modifySelectable = function(propValue, propOldValue, propData) {
-    return true;
-  }
-}
-else if (qx.core.Client.getInstance().isKhtml() || qx.core.Client.getInstance().isWebkit())
-{
-  qx.Proto._modifySelectable = function(propValue, propOldValue, propData)
-  {
-    // Be forward compatible and use both userSelect and KhtmlUserSelect
-    if (propValue)
-    {
-      this.removeStyleProperty("KhtmlUserSelect");
-    }
-    else
-    {
-      this.setStyleProperty("KhtmlUserSelect", "none");
-    }
-
-    return true;
-  };
-}
-else
-{
-  qx.Proto._modifySelectable = function(propValue, propOldValue, propData)
-  {
-    if (propValue)
-    {
-      return this.removeStyleProperty("userSelect");
-    }
-    else
-    {
-      this.setStyleProperty("userSelect", "none");
-    }
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  OPACITY
----------------------------------------------------------------------------
-*/
-
-/*!
-Sets the opacity for the widget. Any child widget inside the widget will also
-become (semi-)transparent. The value should be a number between 0 and 1
-inclusive, where 1 means totally opaque and 0 invisible.
-*/
-if(qx.core.Client.getInstance().isMshtml())
-{
-  qx.Proto._modifyOpacity = function(propValue, propOldValue, propData)
-  {
-    if(propValue == null || propValue >= 1 || propValue < 0)
-    {
-      this.removeStyleProperty("filter");
-    }
-    else
-    {
-      this.setStyleProperty("filter",
-                            ("Alpha(Opacity=" +
-                             Math.round(propValue * 100) +
-                             ")"));
-    }
-
-    return true;
-  }
-}
-else
-{
-  qx.Proto._modifyOpacity = function(propValue, propOldValue, propData)
-  {
-    if(propValue == null || propValue > 1)
-    {
-      if (qx.core.Client.getInstance().isGecko())
-      {
-        this.removeStyleProperty("MozOpacity");
-      }
-      else if (qx.core.Client.getInstance().isKhtml())
-      {
-        this.removeStyleProperty("KhtmlOpacity");
-      }
-
-      this.removeStyleProperty("opacity");
-    }
-    else
-    {
-      propValue = qx.lang.Number.limit(propValue, 0, 1);
-
-      // should we omit gecko's flickering here
-      // and limit the max value to 0.99?
-
-      if (qx.core.Client.getInstance().isGecko())
-      {
-        this.setStyleProperty("MozOpacity", propValue);
-      }
-      else if (qx.core.Client.getInstance().isKhtml())
-      {
-        this.setStyleProperty("KhtmlOpacity", propValue);
-      }
-
-      this.setStyleProperty("opacity", propValue);
-    }
-
-    return true;
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CURSOR
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyCursor = function(propValue, propOldValue, propData)
-{
-  if (propValue)
-  {
-    if (propValue == "pointer" &&
-        qx.core.Client.getInstance().isMshtml()) {
-    this.setStyleProperty("cursor",
-                          "hand");
-    } else {
-    this.setStyleProperty("cursor",
-                          propValue);
-    }
-  }
-  else
-  {
-    this.removeStyleProperty("cursor");
-  }
-
-  return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  BACKGROUND IMAGE
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyBackgroundImage = function(propValue, propOldValue, propData)
-{
-  return qx.util.Validation.isValidString(propValue) ?
-    this.setStyleProperty("backgroundImage",
-      "url(" +
-      qx.manager.object.AliasManager.getInstance().resolvePath(propValue) +
-      ")") :
-    this.removeStyleProperty("backgroundImage");
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CLIPPING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyClip = function(propValue, propOldValue, propData) {
-  return this._compileClipString();
-}
-
-qx.Proto._compileClipString = function()
-{
-  var vLeft = this.getClipLeft();
-  var vTop = this.getClipTop();
-  var vWidth = this.getClipWidth();
-  var vHeight = this.getClipHeight();
-
-  var vRight, vBottom;
-
-  if(vLeft == null)
-  {
-    vRight = (vWidth == null
-              ? "auto"
-              : vWidth + "px");
-    vLeft = "auto";
-  }
-  else
-  {
-    vRight = (vWidth == null
-              ? "auto"
-              : vLeft + vWidth + "px");
-    vLeft = vLeft + "px";
-  }
-
-  if(vTop == null)
-  {
-    vBottom = (vHeight == null
-               ? "auto"
-               : vHeight + "px");
-    vTop = "auto";
-  }
-  else
-  {
-    vBottom = (vHeight == null
-               ? "auto"
-               : vTop + vHeight + "px");
-    vTop = vTop + "px";
-  }
-
-  return this.setStyleProperty("clip",
-                               ("rect(" +
-                                vTop +
-                                "," +
-                                vRight +
-                                "," +
-                                vBottom +
-                                "," +
-                                vLeft +
-                                ")"));
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  OVERFLOW
----------------------------------------------------------------------------
-*/
-
-/*
-  This will measure the typical native scrollbar size in the environment
-*/
-qx.ui.core.Widget.initOverflow = function()
-{
-  if (qx.ui.core.Widget.initOverflowDone) {
-    return;
-  }
-
-  var t = document.createElement("div");
-  var s = t.style;
-
-  s.height = s.width = "100px";
-  s.overflow = "scroll";
-
-  document.body.appendChild(t);
-
-  var c = qx.html.Dimension.getScrollBarSizeRight(t);
-  if (c) {
-    qx.ui.core.Widget.SCROLLBAR_SIZE = c;
-  }
-
-  document.body.removeChild(t);
-
-  qx.ui.core.Widget.initOverflowDone = true;
-}
-
-if (qx.core.Client.getInstance().isGecko())
-{
-  qx.Proto._modifyOverflow = function(propValue, propOldValue, propData)
-  {
-    var pv = propValue;
-    var pn = propData.name;
-
-    switch(pv)
-    {
-      case "hidden":
-        pv = "-moz-scrollbars-none";
-        break;
-
-      case "scrollX":
-        pv = "-moz-scrollbars-horizontal";
-        break;
-
-      case "scrollY":
-        pv = "-moz-scrollbars-vertical";
-        break;
-    }
-
-    return this._applyOverflow(pn, pv, propValue, propOldValue);
-  }
-}
-
-// Mshtml conforms here to CSS3 Spec. Eventually there will be multiple
-// browsers which support these new overflowX overflowY properties.
-else if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.Proto._modifyOverflow = function(propValue, propOldValue, propData)
-  {
-    var pv = propValue;
-    var pn = propData.name;
-
-    switch(pv)
-    {
-      case "scrollX":
-        pn = "overflowX";
-        pv = "scroll";
-        break;
-
-      case "scrollY":
-        pn = "overflowY";
-        pv = "scroll";
-        break;
-    }
-
-    // Clear up concurrenting rules
-    var a = [ "overflow",
-              "overflowX",
-              "overflowY" ];
-    for (var i=0; i<a.length; i++)
-    {
-      if (a[i]!=pn) {
-        this.removeStyleProperty(a[i]);
-      }
-    }
-
-    return this._applyOverflow(pn, pv, propValue, propOldValue);
-  }
-}
-
-// Opera/Khtml Mode...
-// hopefully somewhat of this is supported in the near future.
-
-// overflow-x and overflow-y are also not supported by Opera 9.0 Beta1
-// and also not if we switch to IE emulation mode
-else
-{
-  qx.Proto._modifyOverflow = function(propValue, propOldValue, propData)
-  {
-    var pv = propValue;
-    var pn = propData.name;
-
-    switch(pv)
-    {
-      case "scrollX":
-      case "scrollY":
-        pv = "scroll";
-        break;
-    }
-
-    return this._applyOverflow(pn, pv, propValue, propOldValue);
-  }
-}
-
-qx.Proto._applyOverflow = function(pn, pv, propValue, propOldValue)
-{
-  // Apply Style
-  this.setStyleProperty(pn, pv);
-
-  // Invalidate Frame
-  this._invalidateFrameWidth();
-  this._invalidateFrameHeight();
-
-  return true;
-}
-
-qx.Proto.getOverflowX = function()
-{
-  var vOverflow = this.getOverflow();
-  return vOverflow == "scrollY" ? "hidden" : vOverflow;
-}
-
-qx.Proto.getOverflowY = function()
-{
-  var vOverflow = this.getOverflow();
-  return vOverflow == "scrollX" ? "hidden" : vOverflow;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  HIDE FOCUS
----------------------------------------------------------------------------
-*/
-
-if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.Proto._modifyHideFocus = function(propValue, propOldValue, propData)
-  {
-    this.setHtmlProperty(propData.name, propValue);
-    return true;
-  }
-}
-
-// Need no implementation for others then mshtml, because
-// all these browsers support css outlines and do not
-// have an attribute "hideFocus" as IE.
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  COLORS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyBackgroundColor = function(propValue, propOldValue, propData)
-{
-  if (propOldValue) {
-    propOldValue.remove(this);
-  }
-
-  if (propValue)
-  {
-    this._applyBackgroundColor(propValue.getStyle());
-    propValue.add(this);
-  }
-  else
-  {
-    this._resetBackgroundColor();
-  }
-
-  return true;
-}
-
-qx.Proto._modifyColor = function(propValue, propOldValue, propData)
-{
-  if (propOldValue) {
-    propOldValue.remove(this);
-  }
-
-  if (propValue)
-  {
-    this._applyColor(propValue.getStyle());
-    propValue.add(this);
-  }
-  else
-  {
-    this._resetColor();
-  }
-
-  return true;
-}
-
-qx.Proto._updateColors = function(vColor, vNewValue)
-{
-  if (this.getColor() == vColor) {
-    this._applyColor(vNewValue);
-  }
-
-  if (this.getBackgroundColor() == vColor) {
-    this._applyBackgroundColor(vNewValue);
-  }
-}
-
-qx.Proto._applyColor = function(vNewValue) {
-  this.setStyleProperty("color", vNewValue);
-}
-
-qx.Proto._applyBackgroundColor = function(vNewValue) {
-  this.setStyleProperty("backgroundColor", vNewValue);
-}
-
-qx.Proto._resetColor = function(vNewValue) {
-  this.removeStyleProperty("color");
-}
-
-qx.Proto._resetBackgroundColor = function() {
-  this.removeStyleProperty("backgroundColor");
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  BORDER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._cachedBorderTop = 0;
-qx.Proto._cachedBorderRight = 0;
-qx.Proto._cachedBorderBottom = 0;
-qx.Proto._cachedBorderLeft = 0;
-
-qx.Proto._modifyBorder = function(propValue, propOldValue, propData)
-{
-  var vOldTop = this._cachedBorderTop;
-  var vOldRight = this._cachedBorderRight;
-  var vOldBottom = this._cachedBorderBottom;
-  var vOldLeft = this._cachedBorderLeft;
-
-  if (propOldValue) {
-    propOldValue.removeListenerWidget(this);
-  }
-
-  if (propValue)
-  {
-    propValue.addListenerWidget(this);
-
-    this._cachedBorderTop = propValue.getTopWidth();
-    this._cachedBorderRight = propValue.getRightWidth();
-    this._cachedBorderBottom = propValue.getBottomWidth();
-    this._cachedBorderLeft = propValue.getLeftWidth();
-  }
-  else
-  {
-    this._cachedBorderTop = this._cachedBorderRight = this._cachedBorderBottom = this._cachedBorderLeft = 0;
-  }
-
-
-
-  // ----------------
-  // X-AXIS
-  // ----------------
-  if ((vOldLeft + vOldRight) != (this._cachedBorderLeft + this._cachedBorderRight)) {
-    this._invalidateFrameWidth();
-  }
-
-  this.addToQueue("borderX");
-
-
-
-  // ----------------
-  // Y-AXIS
-  // ----------------
-  if ((vOldTop + vOldBottom) != (this._cachedBorderTop + this._cachedBorderBottom)) {
-    this._invalidateFrameHeight();
-  }
-
-  this.addToQueue("borderY");
-
-
-
-
-
-  return true;
-}
-
-qx.Proto.getCachedBorderTop = function() {
-  return this._cachedBorderTop;
-}
-
-qx.Proto.getCachedBorderRight = function() {
-  return this._cachedBorderRight;
-}
-
-qx.Proto.getCachedBorderBottom = function() {
-  return this._cachedBorderBottom;
-}
-
-qx.Proto.getCachedBorderLeft = function() {
-  return this._cachedBorderLeft;
-}
-
-qx.Proto._updateBorder = function(vEdge)
-{
-  // Small hack, remove later: TODO
-  // ?? Anybody have an idea about this TODO?
-  var vBorder = this.getBorder();
-  var vEdgeUp = qx.lang.String.toFirstUp(vEdge);
-
-  var vNewValue = vBorder["get" + vEdgeUp + "Width"]();
-  var vCacheName = "_cachedBorder" + vEdgeUp;
-  var vWidthChanged = this[vCacheName] != vNewValue;
-
-  this[vCacheName] = vNewValue;
-
-  switch(vEdge)
-  {
-    case "left":
-    case "right":
-      if (vWidthChanged) {
-        this.addToJobQueue("borderWidthX");
-      }
-
-      this.addToJobQueue("borderX");
-      break;
-
-    case "top":
-    case "bottom":
-      if (vWidthChanged) {
-        this.addToJobQueue("borderWidthY");
-      }
-
-      this.addToJobQueue("borderY");
-      break;
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PADDING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyPaddingX = function(propValue, propOldValue, propData)
-{
-  this._invalidateFrameWidth();
-  return true;
-}
-
-qx.Proto._modifyPaddingY = function(propValue, propOldValue, propData)
-{
-  this._invalidateFrameHeight();
-  return true;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CLONE
----------------------------------------------------------------------------
-*/
-
-qx.Proto._clonePropertyIgnoreList = "parent,element,visible";
-
-
-/*!
-Returns a cloned copy of the current instance of qx.ui.core.Widget.
-
-#param cloneRecursive[Boolean]: Should the widget cloned recursive (including all childs)?
-#param customPropertyList[Array]: Optional (reduced) list of properties to copy through
-*/
-
-// TODO: Needs modification to work with new codebase
-qx.Proto.clone = function(cloneRecursive, customPropertyList)
-{
-  var cloneInstance = new this.constructor;
-
-  var propertyName;
-  var propertyList = [];
-  var propertyIngoreList = this._clonePropertyIgnoreList.split(",");
-
-  // Build new filtered property list
-  var sourcePropertyList = customPropertyList != null ? customPropertyList : this._properties.split(",");
-  var sourcePropertyListLength = sourcePropertyList.length-1;
-  do {
-    propertyName = sourcePropertyList[sourcePropertyListLength];
-    if (!qx.lang.Array.contains(propertyIngoreList, propertyName)) {
-      propertyList.push(propertyName);
-    }
-  }
-  while(sourcePropertyListLength--);
-
-  // Apply properties to new clone instance
-  propertyListLength = propertyList.length-1;
-  do {
-    propertyName = qx.lang.String.toFirstUp(propertyList[propertyListLength]);
-    cloneInstance["set" + propertyName](this["get" + propertyName]());
-  }
-  while(propertyListLength--);
-
-  // post apply parent info
-  if (qx.lang.Array.contains(sourcePropertyList, "parent"))
-  {
-    var myParent = this.getParent();
-    if (myParent) {
-      cloneInstance.setParent(myParent);
-    }
-  }
-
-  // clone recursion
-  if (cloneRecursive) {
-    this._cloneRecursive(cloneInstance);
-  }
-
-  return cloneInstance;
-}
-
-qx.Proto._cloneRecursive = function(cloneInstance) {}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  COMMAND INTERFACE
----------------------------------------------------------------------------
-*/
-
-qx.Proto.execute = function()
-{
-  var vCommand = this.getCommand();
-  if (vCommand) {
-    vCommand.execute(this);
-  }
-
-  this.createDispatchEvent("execute");
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  NODE ALIASES
----------------------------------------------------------------------------
-*/
-
-qx.Proto._visualPropertyCheck = function()
-{
-  if (!this.isCreated()) {
-    throw new Error("Element must be created previously!");
-  }
-}
-
-qx.Proto.setScrollLeft = function(nScrollLeft)
-{
-  this._visualPropertyCheck();
-  this._getTargetNode().scrollLeft = nScrollLeft;
-}
-
-qx.Proto.setScrollTop = function(nScrollTop)
-{
-  this._visualPropertyCheck();
-  this._getTargetNode().scrollTop = nScrollTop;
-}
-
-qx.Proto.getOffsetLeft = function()
-{
-  this._visualPropertyCheck();
-  return qx.html.Offset.getLeft(this.getElement());
-}
-
-qx.Proto.getOffsetTop = function()
-{
-  this._visualPropertyCheck();
-  return qx.html.Offset.getTop(this.getElement());
-}
-
-qx.Proto.getScrollLeft = function()
-{
-  this._visualPropertyCheck();
-  return this._getTargetNode().scrollLeft;
-}
-
-qx.Proto.getScrollTop = function()
-{
-  this._visualPropertyCheck();
-  return this._getTargetNode().scrollTop;
-}
-
-qx.Proto.getClientWidth = function()
-{
-  this._visualPropertyCheck();
-  return this._getTargetNode().clientWidth;
-}
-
-qx.Proto.getClientHeight = function()
-{
-  this._visualPropertyCheck();
-  return this._getTargetNode().clientHeight;
-}
-
-qx.Proto.getOffsetWidth = function()
-{
-  this._visualPropertyCheck();
-  return this.getElement().offsetWidth;
-}
-
-qx.Proto.getOffsetHeight = function()
-{
-  this._visualPropertyCheck();
-  return this.getElement().offsetHeight;
-}
-
-qx.Proto.getScrollWidth = function()
-{
-  this._visualPropertyCheck();
-  return this.getElement().scrollWidth;
-}
-
-qx.Proto.getScrollHeight = function()
-{
-  this._visualPropertyCheck();
-  return this.getElement().scrollHeight;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  SCROLL INTO VIEW
----------------------------------------------------------------------------
-*/
-
-qx.Proto.scrollIntoView = function(vAlignTopLeft)
-{
-  this.scrollIntoViewX(vAlignTopLeft);
-  this.scrollIntoViewY(vAlignTopLeft);
-}
-
-qx.Proto.scrollIntoViewX = function(vAlignLeft)
-{
-  if (!this._isCreated || !this._isDisplayable) {
-    return false;
-  }
-
-  return qx.html.ScrollIntoView.scrollX(this.getElement(), vAlignLeft);
-}
-
-qx.Proto.scrollIntoViewY = function(vAlignTop)
-{
-  if (!this._isCreated || !this._isDisplayable) {
-    return false;
-  }
-
-  return qx.html.ScrollIntoView.scrollY(this.getElement(), vAlignTop);
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DRAG AND DROP SUPPORT
----------------------------------------------------------------------------
-*/
-
-qx.Proto.supportsDrop = function(vDragCache) {
-  return true;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  FADING PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/*!
-  The amount of steps for the fade.
- */
-qx.OO.addProperty({ name : 'fadeSteps', type : "number", allowNull : false, defaultValue : 10});
-/*!
-  The duration for the fade.
- */
-qx.OO.addProperty({ name : 'fadeTime', type : "number", allowNull : false, defaultValue : 400});
-/*!
-  The time between the fade steps.
- */
-qx.OO.addProperty({ name : 'fadeInterval', type : "number", allowNull : false, defaultValue : 40});
-/*!
-  The current state of a fade in progress.
- */
-qx.OO.addProperty({ name : 'fadeCounter', type : "number", allowNull : false, defaultValue : 0});
-/*!
-  The amount of oppacity changed on each fade step.
- */
-qx.OO.addProperty({ name : 'fadeUnit', type : "number", allowNull : false, defaultValue : 10});
-/*!
-  The maximum opacity for a fadeIn.
- */
-qx.OO.addProperty({ name : 'fadeMax', type : "number", allowNull : false, defaultValue : 100});
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  FADING SUPPORT
----------------------------------------------------------------------------
-*/
-qx.ui.core.Widget.FADE_IN = 'FADE_IN';
-qx.ui.core.Widget.FADE_OUT = 'FADE_OUT';
-qx.ui.core.Widget.FADE_FINISHED = 'FADE_FINISHED';
-
-
-qx.Proto.fadeIn = function(vSteps, vTime) {
-  if(vSteps) this.setFadeSteps(vSteps);
-  if(vTime) this.setFadeTime(vTime);
-  this._fadeMode = qx.ui.core.Widget.FADE_IN;
-  var timer = this.getFadeTimer();
-  timer.addEventListener("interval", this._onInterval, this);
-  timer.start();
-}
-
-qx.Proto.fadeOut = function(vSteps, vTime) {
-  if(vSteps) this.setFadeSteps(vSteps);
-  if(vTime) this.setFadeTime(vTime);
-  this._fadeMode = qx.ui.core.Widget.FADE_OUT;
-  var timer = this.getFadeTimer();
-  timer.addEventListener("interval", this._onInterval, this);
-  timer.start();
-};
-
-qx.Proto.getFadeTimer = function() {
-  if(this._fadeTimer){
-    this._fadeTimer.setInterval(this.getFadeInterval());
-  } else {
-    this._fadeTimer = new qx.client.Timer(this.getFadeInterval());
-  };
-  return this._fadeTimer;
-};
-
-qx.Proto.resetFader = function() {
-  this.setFadeCounter(0);
-  if(this.getFadeTimer()) {
-    this._fadeTimer.stop();
-    this._fadeTimer.dispose();
-  };
-  this._fadeTimer.dispose();
-  this._fadeTimer = null;
-};
-
-qx.Proto._onInterval = function(e) {
-  this.getFadeTimer().stop();
-  var counter = this.getFadeCounter();
-  switch (this._fadeMode){
-    case qx.ui.core.Widget.FADE_IN:
-      this.setFadeCounter(++counter);
-      if(counter <= this.getFadeSteps()){
-        this.setOpacity(this._computeFadeOpacity());
-        this.getFadeTimer().restart();
-      } else if(this.hasEventListeners(qx.ui.core.Widget.FADE_FINISHED)) {
-        this.createDispatchDataEvent(qx.ui.core.Widget.FADE_FINISHED, qx.ui.core.Widget.FADE_IN);
-      };
-    break;
-
-    case qx.ui.core.Widget.FADE_OUT:
-      this.setFadeCounter(--counter);
-      if(counter >= 0){
-        this.setOpacity(this._computeFadeOpacity());
-        this.getFadeTimer().restart();
-      } else if(this.hasEventListeners(qx.ui.core.Widget.FADE_FINISHED)) {
-        this.createDispatchDataEvent(qx.ui.core.Widget.FADE_FINISHED, qx.ui.core.Widget.FADE_OUT);
-      };
-      break;
-    };
-    qx.ui.core.Widget.flushGlobalQueues();
-};
-
-qx.Proto._modifyFadeSteps = function(propValue, propOldValue, propData) {
-  if(propValue < 1) return;
-  this.setFadeInterval(parseInt(this.getFadeTime() / propValue));
-  this.setFadeUnit(Math.round(this.getFadeMax()/propValue));
-  return true;
-};
-
-qx.Proto._modifyFadeTime = function(propValue, propOldValue, propData) {
-  if(propValue < 1) return;
-  this.setFadeInterval(parseInt(propValue / this.getFadeSteps()));
-  return true;
-};
-
-qx.Proto._modifyFadeUnit = function(propValue, propOldValue, propData) {
-  this.setFadeSteps(Math.round(this.getFadeMax()/propValue));
-  return true;
-};
-
-qx.Proto._modifyFadeMax = function(propValue, propOldValue, propData) {
-  this.setFadeUnit(Math.round(propValue / this.getFadeSteps()));
-  return true;
-};
-
-qx.Proto._computeFadeOpacity = function() {
-  var op = this.getFadeUnit() * this.getFadeCounter() / 100;
-  return(op);
-};
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-qx.Proto.dispose = function()
-{
-  if(this.getDisposed()) {
-    return;
-  }
-
-  var vElement = this.getElement();
-
-  if (vElement)
-  {
-    this._removeInlineEvents(vElement);
-
-    delete this._isCreated;
-
-    vElement.qx_Widget = null;
-
-    this._element = null;
-    this._style = null;
-  }
-
-  this._inlineEvents = null;
-  this._element = null;
-  this._style = null;
-  this._borderElement = null;
-  this._borderStyle = null;
-  this._oldParent = null;
-
-  // should be enough to remove the hashTables
-  delete this._styleProperties;
-  delete this._htmlProperties;
-  delete this._htmlAttributes;
-  delete this._states;
-
-  // remove queue content
-  for (var i in this._jobQueue) {
-    delete this._jobQueue[i];
-  }
-  delete this._jobQueue;
-
-  for (var i in this._layoutChanges) {
-    delete this._layoutChanges[i];
-  }
-  delete this._layoutChanges;
-
-  // dispose the fader
-  if(this._fadeTimer){
-    this._fadeTimer.dispose();
-    this._fadeTimer = null;
-  }
-
-  return qx.core.Target.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/Flash.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/Flash.js
deleted file mode 100644 (file)
index 4e8f3a4..0000000
+++ /dev/null
@@ -1,529 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-   ________________________________________________________________________
-
-   This class contains code based on the following work:
-
-     SWFObject: Javascript Flash Player detection and embed script
-     http://blog.deconcept.com/swfobject/
-     Version: 1.4.4
-
-     Copyright:
-       2006 Geoff Stearns
-
-     License:
-       MIT: http://www.opensource.org/licenses/mit-license.php
-
-       Permission is hereby granted, free of charge, to any person obtaining a
-       copy of this software and associated documentation files (the "Software"),
-       to deal in the Software without restriction, including without limitation
-       the rights to use, copy, modify, merge, publish, distribute, sublicense,
-       and/or sell copies of the Software, and to permit persons to whom the
-       Software is furnished to do so, subject to the following conditions:
-
-       The above copyright notice and this permission notice shall be included in
-       all copies or substantial portions of the Software.
-
-       THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-       IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-       FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-       AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-       LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-       FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-       DEALINGS IN THE SOFTWARE.
-
-     Authors:
-       * Geoff Stearns (geoff@deconcept.com)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-/**
- * Flash Player detection and embed.
- *
- * This class contains code based on the following work:<br/>
- *   SWFObject: Javascript Flash Player detection and embed script<br/>
- *   http://blog.deconcept.com/swfobject/</br>
- *   Version: 1.4.4
- *
- * License:<br/>
- *   MIT: http://www.opensource.org/licenses/mit-license.php<br/>
- *   For more info, please see the corresponding source file.
- *
- * @param vSource {String} Url of the SWF file to embed
- * @param vVersion {String} Flash version of the SWF file
- */
-qx.OO.defineClass("qx.ui.embed.Flash", qx.ui.basic.Terminator,
-function(vSource, vVersion)
-{
-  qx.ui.basic.Terminator.call(this);
-
-  // Use background handling of qx.ui.core.Widget instead
-  this._params = {};
-  this._variables = {};
-
-  if(vSource != null) {
-    this.setSource(vSource);
-  }
-
-  this.setVersion(vVersion != null ? vVersion : qx.ui.embed.Flash.MINREQUIRED);
-});
-
-qx.OO.addProperty({ name : "source", type : "string" });
-qx.OO.addProperty({ name : "version" });
-
-qx.OO.addProperty({ name : "enableExpressInstall", type : "boolean", defaultValue : false });
-qx.OO.addProperty({ name : "enableDetection", type : "boolean", defaultValue : true });
-qx.OO.addProperty({ name : "redirectUrl", type : "string" });
-
-qx.OO.addProperty({ name : "quality", type : "string", impl : "param", defaultValue : "high", possibleValues : [ "low", "autolow", "autohigh", "medium", "high", "best" ] });
-qx.OO.addProperty({ name : "scale", type : "string", impl : "param", defaultValue : "showall", possibleValues : [ "showall", "noborder", "excactfit", "noscale" ] });
-qx.OO.addProperty({ name : "wmode", type : "string", impl : "param", defaultValue : "", possibleValues : [ "window", "opaque", "transparent" ] });
-qx.OO.addProperty({ name : "play", type : "boolean", impl : "param", defaultValue : true });
-qx.OO.addProperty({ name : "loop", type : "boolean", impl : "param", defaultValue : true });
-qx.OO.addProperty({ name : "menu", type : "boolean", impl : "param", defaultValue : true });
-
-qx.ui.embed.Flash.EXPRESSINSTALL = [6,0,65];
-qx.ui.embed.Flash.MINREQUIRED = "1";
-qx.ui.embed.Flash.PLAYERVERSION = null;
-qx.ui.embed.Flash.PLUGINKEY = "Shockwave Flash";
-qx.ui.embed.Flash.ACTIVEXKEY = "ShockwaveFlash.ShockwaveFlash";
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PLAYER VERSION CACHE
----------------------------------------------------------------------------
-*/
-
-qx.ui.embed.Flash.getPlayerVersion = function()
-{
-  if (qx.ui.embed.Flash.PLAYERVERSION != null) {
-    return qx.ui.embed.Flash.PLAYERVERSION;
-  }
-
-  var vPlayerVersion = new qx.type.Version(0,0,0);
-
-  if(navigator.plugins && navigator.mimeTypes.length)
-  {
-    var x = navigator.plugins[qx.ui.embed.Flash.PLUGINKEY];
-
-    if(x && x.description) {
-      vPlayerVersion = new qx.type.Version(x.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split("."));
-    }
-  }
-  else if (window.ActiveXObject)
-  {
-    // do minor version lookup in IE, but avoid fp6 crashing issues
-    // see http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
-    try {
-      var axo = new ActiveXObject(qx.ui.embed.Flash.ACTIVEXKEY + ".7");
-    }
-    catch(e)
-    {
-      try {
-        var axo = new ActiveXObject(qx.ui.embed.Flash.ACTIVEXKEY + ".6");
-        vPlayerVersion = new qx.type.Version([6,0,21]);
-        axo.AllowScriptAccess = "always"; // throws if player version < 6.0.47 (thanks to Michael Williams @ Adobe for this code)
-      }
-      catch(e)
-      {
-        if (vPlayerVersion.major == 6) {
-          return vPlayerVersion;
-        }
-      }
-
-      try {
-        axo = new ActiveXObject(qx.ui.embed.Flash.ACTIVEXKEY);
-      } catch(e) {}
-    }
-
-    if (axo != null) {
-      vPlayerVersion = new qx.type.Version(axo.GetVariable("$version").split(" ")[1].split(","));
-    }
-  }
-
-  return qx.ui.embed.Flash.PLAYERVERSION = vPlayerVersion;
-};
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  BASICS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._version = null;
-qx.Proto._source = "";
-
-qx.Proto._applyElementData = function(el)
-{
-  qx.ui.basic.Terminator.prototype._applyElementData.call(this, el);
-
-  // Check for ExpressInstall
-  this._expressInstall = false;
-
-  if (this.getEnableExpressInstall())
-  {
-    // check to see if we need to do an express install
-    var expressInstallReqVer = new qx.type.Version(qx.ui.embed.Flash.EXPRESSINSTALL);
-    var installedVer = qx.ui.embed.Flash.getPlayerVersion();
-
-    if (installedVer.versionIsValid(expressInstallReqVer) && !installedVer.versionIsValid(this._version)) {
-      this._expressInstall = true;
-    }
-  }
-
-  // this.debug("ExpressInstall Enabled: " + this._expressInstall);
-
-  // Apply HTML
-  if(!this.getEnableDetection() || this._expressInstall || qx.ui.embed.Flash.getPlayerVersion().versionIsValid(this._version))
-  {
-    el.innerHTML = this.generateHTML();
-  }
-  else
-  {
-    var redir = this.getRedirectUrl();
-
-    if(redir != "") {
-      document.location.replace(redir);
-    }
-  }
-};
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifySource = function(propValue, propOldValue, propName)
-{
-  this._source = qx.util.Validation.isValidString(propValue) ? qx.manager.object.AliasManager.getInstance().resolvePath(propValue) : "";
-  return true;
-};
-
-qx.Proto._modifyVersion = function(propValue, propOldValue, propData)
-{
-  if (this._version)
-  {
-    this._version.dispose();
-    this._version = null;
-  }
-
-  if (qx.util.Validation.isValidString(propValue)) {
-    this._version = new qx.type.Version(propValue);
-  }
-
-  return true;
-};
-
-qx.Proto._modifyParam = function(propValue, propOldValue, propData)
-{
-  this.setParam(propData.name, propValue.toString());
-  return true;
-};
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  OVERWRITE BACKGROUND COLOR HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyBackgroundColor = function(propValue, propOldValue, propData)
-{
-  if (propOldValue) {
-    propOldValue.remove(this);
-  }
-
-  if (propValue)
-  {
-    this._applyBackgroundColor(propValue.getHex());
-    propValue.add(this);
-  }
-  else
-  {
-    this._resetBackgroundColor();
-  }
-
-  return true;
-};
-
-qx.Proto._applyBackgroundColor = function(vNewValue) {
-  this.setParam("bgcolor", vNewValue);
-};
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PARAMS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.setParam = function(name, value){
-  this._params[name] = value;
-};
-
-qx.Proto.getParam = function(name){
-  return this._params[name];
-};
-
-qx.Proto.getParams = function() {
-  return this._params;
-};
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  VARIABLES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.setVariable = function(name, value){
-  this._variables[name] = value;
-};
-
-qx.Proto.getVariable = function(name){
-  return this._variables[name];
-};
-
-qx.Proto.getVariables = function(){
-  return this._variables;
-};
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  HTML UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.generateParamTags = function()
-{
-  var vParams = this.getParams();
-  var vParamTags = [];
-
-  for (var vKey in vParams)
-  {
-    vParamTags.push("<param name='");
-    vParamTags.push(vKey);
-    vParamTags.push("' value='");
-    vParamTags.push(vParams[vKey]);
-    vParamTags.push("'/>");
-  }
-
-  return vParamTags.join("");
-};
-
-qx.Proto.getVariablePairs = function()
-{
-  var variables = this.getVariables();
-  var variablePairs = [];
-
-  for (var key in variables) {
-    variablePairs.push(key + "=" + variables[key]);
-  }
-
-  return variablePairs.join("&");
-};
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  HTML GENERATOR
----------------------------------------------------------------------------
-*/
-
-// Netscape Plugin Architecture
-if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length)
-{
-  qx.Proto.generateHTML = function()
-  {
-    var html = [];
-
-    // Express Install Handling
-    if (this._expressInstall)
-    {
-      document.title = document.title.slice(0, 47) + ' - Flash Player Installation';
-
-      this.addVariable('MMredirectURL', escape(window.location));
-      this.addVariable('MMdoctitle', document.title);
-      this.addVariable('MMplayerType', 'PlugIn');
-    }
-
-    html.push("<embed type='application/x-shockwave-flash' width='100%' height='100%' src='");
-    html.push(this._source);
-    html.push("'");
-
-    var params = this.getParams();
-
-    for (var key in params)
-    {
-      html.push(" ");
-      html.push(key);
-      html.push("=");
-      html.push("'");
-      html.push(params[key]);
-      html.push("'");
-    }
-
-    var pairs = this.getVariablePairs();
-
-    if (pairs.length > 0)
-    {
-      html.push(" ");
-      html.push("flashvars");
-      html.push("=");
-      html.push("'");
-      html.push(pairs);
-      html.push("'");
-    }
-
-    html.push("></embed>");
-
-    return html.join("");
-  };
-}
-else
-{
-  // Internet Explorer ActiveX Architecture
-  qx.Proto.generateHTML = function()
-  {
-    var html = [];
-
-    // Express Install Handling
-    if (this._expressInstall)
-    {
-      document.title = document.title.slice(0, 47) + ' - Flash Player Installation';
-
-      this.addVariable("MMredirectURL", escape(window.location));
-      this.addVariable("MMdoctitle", document.title);
-      this.addVariable("MMplayerType", "ActiveX");
-    }
-
-    html.push("<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' width='100%' height='100%'>");
-    html.push("<param name='movie' value='");
-    html.push(this._source);
-    html.push("'/>");
-
-    var tags = this.generateParamTags();
-
-    if(tags.length > 0) {
-      html.push(tags);
-    }
-
-    var pairs = this.getVariablePairs();
-
-    if(pairs.length > 0)
-    {
-      html.push("<param name='flashvars' value='");
-      html.push(pairs);
-      html.push("'/>");
-    }
-
-    html.push("</object>");
-
-    return html.join("");
-  };
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  METHODS TO GIVE THE LAYOUTERS INFORMATIONS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._isWidthEssential = qx.lang.Function.returnTrue;
-qx.Proto._isHeightEssential = qx.lang.Function.returnTrue;
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PREFERRED DIMENSIONS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._computePreferredInnerWidth = qx.lang.Function.returnZero;
-qx.Proto._computePreferredInnerHeight = qx.lang.Function.returnZero;
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  delete this._source;
-  delete this._params;
-  delete this._variables;
-
-  if (this._version)
-  {
-    this._version.dispose();
-    this._version = null;
-  }
-
-  qx.ui.basic.Terminator.prototype.dispose.call(this);
-};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/Gallery.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/Gallery.js
deleted file mode 100644 (file)
index 64864d4..0000000
+++ /dev/null
@@ -1,559 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#embed(qx.static/image/blank.gif)
-
-************************************************************************ */
-
-/**
- * @event beforeToolTipAppear {qx.event.type.Event}
- * @event loadComplete {qx.event.type.Event}
- */
-qx.OO.defineClass("qx.ui.embed.Gallery", qx.ui.basic.Terminator,
-function(vGalleryList)
-{
-  qx.ui.basic.Terminator.call(this);
-
-  this._blank = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
-  this._list = vGalleryList;
-  this._listSize = vGalleryList.length;
-  this._processedImages = 0;
-
-  this.setOverflow("auto");
-
-  this.setHtmlProperty("className", "qx_ui_embed_Gallery");
-
-  this._manager = new qx.manager.selection.DomSelectionManager(this);
-
-  this._manager.setMultiColumnSupport(true);
-
-  this.addEventListener("mousedown", this._onmousedown);
-  this.addEventListener("mouseup", this._onmouseup);
-  this.addEventListener("mousemove", this._onmousemove);
-
-  this.addEventListener("click", this._onclick);
-  this.addEventListener("dblclick", this._ondblclick);
-
-  this.addEventListener("keypress", this._onkeypress);
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.addProperty({ name : "thumbMaxWidth", type : "number", defaultValue : 100 });
-qx.OO.addProperty({ name : "thumbMaxHeight", type : "number", defaultValue : 100 });
-qx.OO.addProperty({ name : "decorHeight", type : "number", defaultValue : 40 });
-qx.OO.addProperty({ name : "showTitle", type : "boolean", defaultValue : true });
-qx.OO.addProperty({ name : "showComment", type : "boolean", defaultValue : true });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ELEMENT HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._applyElementData = function() {
-  this.getElement().appendChild(this.createView());
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getManager = function() {
-  return this._manager;
-}
-
-qx.Proto.getList = function() {
-  return this._list;
-}
-
-qx.Proto.update = function(vGalleryList)
-{
-  this._manager.deselectAll();
-
-  this._list = vGalleryList;
-
-  var el = this.getElement();
-  el.replaceChild(this.createView(), el.firstChild);
-}
-
-qx.Proto.removeAll = function()
-{
-  this._manager.deselectAll();
-  this.getElement().innerHTML = "";
-}
-
-qx.Proto.updateImageById = function(vId, vSrc, vWidth, vHeight) {
-  this.updateImageSrcById(vId, vSrc);
-  this.updateImageDimensionsById(vId, vWidth, vHeight);
-}
-
-qx.Proto.updateImageDimensionsById = function(vId, vWidth, vHeight) {
-  this.updateImageDimensionsByPosition(this.getPositionById(vId), vWidth, vHeight);
-}
-
-qx.Proto.updateImageDimensionsByPosition = function(vPos, vWidth, vHeight) {
-  // TBD: compare dimensions with max. thumb size and scale proportionally if necessary
-  if (vPos == -1) {
-    throw new Error("No valid Position: " + vPos);
-  }
-
-  var cnode = this.getNodeByPosition(vPos).getElementsByTagName("img")[0];
-
-  cnode.width = vWidth;
-  cnode.height = vHeight;
-
-  cnode.style.marginLeft = cnode.style.marginRight = Math.floor((this.getThumbMaxWidth()-vWidth)/2) + "px";
-  cnode.style.marginTop = cnode.style.marginBottom = Math.floor((this.getThumbMaxHeight()-vHeight)/2) + "px";
-
-  this._list[vPos].thumbWidth = vWidth;
-  this._list[vPos].thumbHeight = vHeight;
-}
-
-qx.Proto.updateImageSrcById = function(vId, vSrc) {
-  this.updateImageSrcByPosition(this.getPositionById(vId), vSrc);
-}
-
-qx.Proto.updateImageSrcByPosition = function(vPos, vSrc)
-{
-  if (vPos == -1) {
-    throw new Error("No valid Position: " + vPos);
-  }
-
-  var vNode = this.getNodeByPosition(vPos);
-
-  vNode.getElementsByTagName("img")[0].src = vSrc;
-  this._list[vPos].src = vSrc;
-}
-
-qx.Proto.deleteById = function(vId) {
-  this.deleteByPosition(this.getPositionById(vId));
-}
-
-qx.Proto.deleteByPosition = function(vPos)
-{
-  this._manager.deselectAll();
-
-  if (vPos == -1) {
-    throw new Error("No valid Position: " + vPos);
-  }
-
-  var vNode = this.getNodeByPosition(vPos);
-
-  if (vNode) {
-    vNode.parentNode.removeChild(vNode);
-  }
-
-  this._list.splice(vPos, 1);
-}
-
-qx.Proto.getPositionById = function(vId)
-{
-  for (var i=0, a=this._list, l=a.length; i<l; i++) {
-    if (a[i].id == vId) {
-      return i;
-    }
-  }
-
-  return -1;
-}
-
-qx.Proto.getEntryById = function(vId) {
-  return this.getEntryByPosition(this.getPositionById(vId));
-}
-
-qx.Proto.getNodeById = function(vId) {
-  return this.getNodeByPosition(this.getPositionById(vId));
-}
-
-qx.Proto.getEntryByPosition = function(vPosition) {
-  return vPosition == -1 ? null : this._list[vPosition];
-}
-
-qx.Proto.getNodeByPosition = function(vPosition) {
-  return vPosition == -1 ? null : this._frame.childNodes[vPosition];
-}
-
-qx.Proto.getEntryByNode = function(vNode) {
-  return this.getEntryById(vNode.id);
-}
-
-qx.Proto.addFromPartialList = function(vPartialList)
-{
-  this.concat(vPartialList);
-
-  for (var i=0, a=vPartialList, l=a.length; i<l; i++) {
-    this._frame.appendChild(this.createCell(a[i], i));
-  }
-}
-
-qx.Proto.addFromUpdatedList = function(vNewList)
-{
-  for (var a=vNewList, l=a.length, i=this._list.length; i<l; i++) {
-    this._frame.appendChild(this.createCell(a[i], i));
-  }
-
-  this._list = vNewList;
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmousedown = function(e)
-{
-  var vItem = this.getListItemTarget(e.getDomTarget());
-
-  if (vItem) {
-    this._manager.handleMouseDown(vItem, e);
-  }
-}
-
-qx.Proto._onmouseup = function(e)
-{
-  var vItem = this.getListItemTarget(e.getDomTarget());
-
-  if (vItem) {
-    this._manager.handleMouseUp(vItem, e);
-  }
-}
-
-qx.Proto._onmousemove = function(e)
-{
-  if (qx.OO.isAvailable("qx.manager.object.ToolTipManager")) {
-    return;
-  }
-
-  var vItem = this.getListItemTarget(e.getDomTarget());
-
-  if (vItem == this._lastItem) {
-    return;
-  }
-
-  if (this._lastItem)
-  {
-    var vEventObject = new qx.event.type.MouseEvent("mouseout", e, false, this._lastItem);
-    qx.manager.object.ToolTipManager.getInstance().handleMouseOut(vEventObject);
-    vEventObject.dispose();
-  }
-
-  if (vItem)
-  {
-    if (this.hasEventListeners("beforeToolTipAppear")) {
-      this.dispatchEvent(new qx.event.type.DataEvent("beforeToolTipAppear", vItem), true);
-    }
-
-    if (!this.getToolTip()) {
-      return;
-    }
-
-    var vEventObject = new qx.event.type.MouseEvent("mouseout", e, false, vItem);
-    qx.manager.object.ToolTipManager.getInstance().handleMouseOver(vEventObject);
-    vEventObject.dispose();
-
-    this.setToolTip(null);
-  }
-
-  this._lastItem = vItem;
-}
-
-qx.Proto._onclick = function(e)
-{
-  var vItem = this.getListItemTarget(e.getDomTarget());
-
-  if (vItem) {
-    this._manager.handleClick(vItem, e);
-  }
-}
-
-qx.Proto._ondblclick = function(e)
-{
-  var vItem = this.getListItemTarget(e.getDomTarget());
-
-  if (vItem) {
-    this._manager.handleDblClick(vItem, e);
-  }
-}
-
-qx.Proto._onkeypress = function(e) {
-  this._manager.handleKeyPress(e);
-}
-
-qx.Proto.getListItemTarget = function(dt)
-{
-  while(dt.className.indexOf("galleryCell") == -1 && dt.tagName.toLowerCase() != "body") {
-    dt = dt.parentNode;
-  }
-
-  if (dt.tagName.toLowerCase() == "body") {
-    return null;
-  }
-
-  return dt;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  SCROLL INTO VIEW
----------------------------------------------------------------------------
-*/
-
-qx.Proto.scrollItemIntoView = function(vItem)
-{
-  this.scrollItemIntoViewX(vItem);
-  this.scrollItemIntoViewY(vItem);
-}
-
-qx.Proto.scrollItemIntoViewX = function(vItem) {
-  qx.html.ScrollIntoView.scrollX(vItem);
-}
-
-qx.Proto.scrollItemIntoViewY = function(vItem) {
-  qx.html.ScrollIntoView.scrollY(vItem);
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MANAGER REQUIREMENTS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getItems = function() {
-  return this._frame.childNodes;
-}
-
-qx.Proto.getFirstChild = function() {
-  return this._frame.childNodes[0];
-}
-
-qx.Proto.getLastChild = function() {
-  return this._frame.childNodes[this._frame.childNodes.length-1];
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  INTERNALS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.createView = function()
-{
-  var s = (new Date).valueOf();
-
-  if (!this._protoCell) {
-    this.createProtoCell();
-  }
-
-  this._frame = document.createElement("div");
-  this._frame.className = "galleryFrame clearfix";
-
-  for (var i=0, a=this._list, l=a.length; i<l; i++) {
-    this._frame.appendChild(this.createCell(a[i], i));
-  }
-
-  return this._frame;
-}
-
-qx.Proto.createCell = function(d, i)
-{
-  var cframe = this._protoCell.cloneNode(true);
-
-  cframe.id = d.id;
-  cframe.pos = i;
-
-  if (this.getShowTitle())
-  {
-    cnode = cframe.childNodes[0];
-    cnode.firstChild.nodeValue = d.title;
-  }
-
-  var cnode = cframe.childNodes[this.getShowTitle() ? 1 : 0];
-  this.createImageCell(cnode, d);
-
-  if (this.getShowComment())
-  {
-    cnode = cframe.childNodes[this.getShowTitle() ? 2 : 1];
-    cnode.firstChild.nodeValue = d.comment;
-  }
-
-  return cframe;
-}
-
-qx.Proto._mshtml = qx.core.Client.getInstance().isMshtml();
-
-qx.Proto.createImageCell = function(inode, d)
-{
-  if (this.hasEventListeners("loadComplete"))
-  {
-    inode.onload = qx.ui.embed.Gallery.imageOnLoad;
-    inode.onerror = qx.ui.embed.Gallery.imageOnError;
-    inode.gallery = this;
-  }
-
-  if (this._mshtml) {
-    inode.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + d.src + "',sizingMethod='scale')";
-  } else {
-    inode.src = d.src;
-  }
-
-  inode.width = d.thumbWidth + 2;
-  inode.height = d.thumbHeight + 2;
-  inode.style.marginLeft = inode.style.marginRight = Math.floor((this.getThumbMaxWidth()-d.thumbWidth)/2) + "px";
-  inode.style.marginTop = inode.style.marginBottom = Math.floor((this.getThumbMaxHeight()-d.thumbHeight)/2) + "px";
-}
-
-qx.Proto.imageOnComplete = function()
-{
-  this._processedImages++;
-
-  if(this._processedImages == this._listSize) {
-    this.dispatchEvent(new qx.event.type.Event("loadComplete"), true);
-  }
-}
-
-qx.ui.embed.Gallery.imageOnLoad = function()
-{
-  this.gallery.imageOnComplete();
-  this.gallery = null;
-  this.onload = null;
-  this.onerror = null;
-}
-
-qx.ui.embed.Gallery.imageOnError = function()
-{
-  this.gallery.imageOnComplete();
-  this.gallery = null;
-  this.onload = null;
-  this.onerror = null;
-}
-
-qx.Proto.createProtoCell = function()
-{
-  var frame = this._protoCell = document.createElement("div");
-  frame.className = "galleryCell";
-  frame.unselectable = "on";
-  frame.style.width = (this.getThumbMaxWidth() + 2) + "px";
-  frame.style.height = (this.getThumbMaxHeight() + this.getDecorHeight() + 2) + "px";
-
-  if (this.getShowTitle())
-  {
-    var title = document.createElement("div");
-    title.className = "galleryTitle";
-    title.unselectable = "on";
-    var ttext = document.createTextNode("-");
-    title.appendChild(ttext);
-
-    frame.appendChild(title);
-  }
-
-  var image = new Image();
-  image.src = this._blank;
-  frame.appendChild(image);
-
-  if (this.getShowComment())
-  {
-    var comment = document.createElement("div");
-    comment.className = "galleryComment";
-    comment.unselectable = "on";
-    var ctext = document.createTextNode("-");
-    comment.appendChild(ctext);
-
-    frame.appendChild(comment);
-  }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  this._list = null;
-  this._protoCell = null;
-  this._frame = null;
-
-  if (this._manager)
-  {
-    this._manager.dispose();
-    this._manager = null;
-  }
-
-  this.removeEventListener("mousedown", this._onmousedown);
-  this.removeEventListener("mouseup", this._onmouseup);
-  this.removeEventListener("mousemove", this._onmousemove);
-
-  this.removeEventListener("click", this._onclick);
-  this.removeEventListener("dblclick", this._ondblclick);
-
-  this.removeEventListener("keypress", this._onkeypress);
-
-  return qx.ui.basic.Terminator.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/GalleryList.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/GalleryList.js
deleted file mode 100644 (file)
index 4c56a1c..0000000
+++ /dev/null
@@ -1,403 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#embed(qx.static/image/blank.gif)
-
-************************************************************************ */
-
-/**
- * @event loadComplete {qx.event.type.Event}
- */
-qx.OO.defineClass("qx.ui.embed.GalleryList", qx.ui.basic.Terminator,
-function(galleryList)
-{
-  qx.ui.basic.Terminator.call(this);
-
-  this._blank = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
-  this._list = galleryList;
-  this._listSize = galleryList.length;
-  this._processedImages = 0;
-
-  this.setOverflow("auto");
-
-  this.setHtmlProperty("className", "qx_ui_embed_GalleryList");
-
-  this._manager = new qx.manager.selection.DomSelectionManager(this);
-
-  this.addEventListener("mousedown", this._onmousedown);
-  this.addEventListener("mouseup", this._onmouseup);
-  this.addEventListener("click", this._onclick);
-  this.addEventListener("dblclick", this._ondblclick);
-  this.addEventListener("keypress", this._onkeypress);
-});
-
-qx.OO.addProperty({ name : "thumbMaxWidth", type : "number", defaultValue : 60 });
-qx.OO.addProperty({ name : "thumbMaxHeight", type : "number", defaultValue : 60 });
-qx.OO.addProperty({ name : "decorHeight", type : "number", defaultValue : 40 });
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ELEMENT HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._applyElementData = function() {
-  this.getElement().appendChild(this.createView());
-}
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getManager = function() {
-  return this._manager;
-}
-
-
-qx.Proto.update = function(vGalleryList)
-{
-  this._manager.deselectAll();
-
-  this._list = vGalleryList;
-
-  var el = this.getElement();
-  el.replaceChild(this.createView(), el.firstChild);
-}
-
-
-qx.Proto.removeAll = function()
-{
-  this._manager.deselectAll();
-  this.getElement().innerHTML = "";
-}
-
-
-/*
----------------------------------------------------------------------------
-  EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmousedown = function(e)
-{
-  var vItem = this.getListItemTarget(e.getDomTarget());
-
-  if (vItem) {
-    this._manager.handleMouseDown(vItem, e);
-  }
-}
-
-qx.Proto._onmouseup = function(e)
-{
-  var vItem = this.getListItemTarget(e.getDomTarget());
-
-  if (vItem) {
-    this._manager.handleMouseUp(vItem, e);
-  }
-}
-
-qx.Proto._onclick = function(e)
-{
-  var vItem = this.getListItemTarget(e.getDomTarget());
-
-  if (vItem) {
-    this._manager.handleClick(vItem, e);
-  }
-}
-
-qx.Proto._ondblclick = function(e)
-{
-  var vItem = this.getListItemTarget(e.getDomTarget());
-
-  if (vItem) {
-    this._manager.handleDblClick(vItem, e);
-  }
-}
-
-qx.Proto._onkeypress = function(e) {
-  this._manager.handleKeyPress(e);
-}
-
-qx.Proto.getListItemTarget = function(dt)
-{
-  while(dt.className.indexOf("galleryCell") == -1 && dt.tagName.toLowerCase() != "body") {
-    dt = dt.parentNode;
-  }
-
-  if (dt.tagName.toLowerCase() == "body") {
-    return null;
-  }
-
-  return dt;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  SCROLL INTO VIEW
----------------------------------------------------------------------------
-*/
-
-qx.Proto.scrollItemIntoView = function(vItem)
-{
-  this.scrollItemIntoViewX(vItem);
-  this.scrollItemIntoViewY(vItem);
-}
-
-qx.Proto.scrollItemIntoViewX = function(vItem) {
-  qx.html.ScrollIntoView.scrollX(vItem);
-}
-
-qx.Proto.scrollItemIntoViewY = function(vItem) {
-  qx.html.ScrollIntoView.scrollY(vItem);
-}
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  SELECTION MANAGER API
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getItems = function() {
-  return this._frame.childNodes;
-}
-
-qx.Proto.getFirstChild = function() {
-  return this._frame.childNodes[0];
-}
-
-qx.Proto.getLastChild = function() {
-  return this._frame.childNodes[this._frame.childNodes.length-1];
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CREATE VIEW
----------------------------------------------------------------------------
-*/
-
-qx.Proto.createView = function()
-{
-  var s = (new Date).valueOf();
-
-  var protoCell = this.createProtoCell(this.getThumbMaxHeight());
-  var frame = this._frame = document.createElement("div");
-
-  this._frame.className = "galleryFrame clearfix";
-
-  var cframe, cnode;
-
-  for (var i=0, a=this._list, l=a.length, d; i<l; i++)
-  {
-    d = a[i];
-
-    cframe = protoCell.cloneNode(true);
-
-    cframe.id = d.id;
-    cframe.pos = i;
-
-    cnode = cframe.childNodes[0];
-    cnode.firstChild.nodeValue = d.number;
-
-    cnode = cframe.childNodes[1].firstChild;
-    this.createImageCell(cnode, d);
-
-    cnode = cframe.childNodes[2].firstChild;
-    cnode.firstChild.nodeValue = d.title;
-
-    cnode = cframe.childNodes[2].lastChild;
-    cnode.firstChild.nodeValue = d.comment;
-
-    frame.appendChild(cframe);
-  }
-
-  return frame;
-}
-
-qx.Proto._mshtml = qx.core.Client.getInstance().isMshtml();
-
-qx.Proto.createImageCell = function(inode, d)
-{
-  if (this.hasEventListeners("loadComplete")) {
-    inode.onload = qx.ui.embed.GalleryList.imageOnLoad;
-    inode.onerror = qx.ui.embed.GalleryList.imageOnError;
-    inode.gallery = this;
-  }
-
-  inode.width = d.thumbWidth;
-  inode.height = d.thumbHeight;
-
-  if (this._mshtml) {
-    inode.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + d.src + "',sizingMethod='scale')";
-  } else {
-    inode.src = d.src;
-  }
-
-  inode.style.marginLeft = inode.style.marginRight = Math.floor((this.getThumbMaxWidth()-d.thumbWidth)/2) + "px";
-  inode.style.marginTop = inode.style.marginBottom = Math.floor((this.getThumbMaxHeight()-d.thumbHeight)/2) + "px";
-}
-
-qx.Proto.createProtoCell = function(tHeight)
-{
-  var frame = document.createElement("div");
-  frame.className = "galleryCell";
-  frame.unselectable = "on";
-  frame.style.height = (tHeight + 2) + "px";
-
-  var number = document.createElement("div");
-  number.className = "galleryNumber";
-  number.unselectable = "on";
-  var ntext = document.createTextNode("-");
-  number.appendChild(ntext);
-
-  var imageContainer = document.createElement("div");
-  imageContainer.className = "galleryImageContainer";
-  imageContainer.unselectable = "on";
-
-  var image = new Image();
-  image.src = this._blank;
-
-  imageContainer.appendChild(image);
-
-  var text = document.createElement("div");
-  text.className = "galleryText";
-  text.unselectable = "on";
-  text.style.width = (this.getWidth()-100-this.getThumbMaxWidth()) + "px";
-
-  var title = document.createElement("h3");
-  var ttext = document.createTextNode("-");
-  title.appendChild(ttext);
-  title.unselectable = "on";
-  text.appendChild(title);
-
-  var comment = document.createElement("p");
-  var ctext = document.createTextNode("-");
-  comment.appendChild(ctext);
-  comment.unselectable = "on";
-  text.appendChild(comment);
-
-
-  frame.appendChild(number);
-  frame.appendChild(imageContainer);
-  frame.appendChild(text);
-
-  return frame;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PRELOADING
----------------------------------------------------------------------------
-*/
-
-qx.Proto.imageOnComplete = function()
-{
-  this._processedImages++;
-
-  if(this._processedImages == this._listSize) {
-    this.dispatchEvent(new qx.event.type.Event("loadComplete"), true);
-  }
-}
-
-qx.ui.embed.GalleryList.imageOnLoad = function()
-{
-  this.gallery.imageOnComplete();
-  this.gallery = null;
-  this.onload = null;
-  this.onerror = null;
-}
-
-qx.ui.embed.GalleryList.imageOnError = function()
-{
-  this.gallery.imageOnComplete();
-  this.gallery = null;
-  this.onload = null;
-  this.onerror = null;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  this._list = null;
-  this._frame = null;
-
-  if (this._manager)
-  {
-    this._manager.dispose();
-    this._manager = null;
-  }
-
-  this.removeEventListener("mousedown", this._onmousedown);
-  this.removeEventListener("mouseup", this._onmouseup);
-  this.removeEventListener("click", this._onclick);
-  this.removeEventListener("dblclick", this._ondblclick);
-  this.removeEventListener("keydown", this._onkeydown);
-
-  return qx.ui.basic.Terminator.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/HtmlEmbed.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/HtmlEmbed.js
deleted file mode 100644 (file)
index 0e526f4..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_basic)
-#require(qx.renderer.font.FontCache)
-#after(qx.renderer.font.FontObject)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.embed.HtmlEmbed", qx.ui.basic.Terminator,
-function(vHtml)
-{
-  qx.ui.basic.Terminator.call(this);
-
-  if (vHtml != null) {
-    this.setHtml(vHtml);
-  }
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/*!
-  Any text string which can contain HTML, too
-*/
-qx.OO.addProperty({ name : "html", type : "string" });
-
-/*!
-  The font property describes how to paint the font on the widget.
-*/
-qx.OO.addProperty({ name : "font", type : "object", instance : "qx.renderer.font.Font", convert : qx.renderer.font.FontCache, allowMultipleArguments : true });
-
-/*!
-  Wrap the text?
-*/
-qx.OO.addProperty({ name : "wrap", type : "boolean", defaultValue : true });
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyHtml = function()
-{
-  if (this._isCreated) {
-    this._syncHtml();
-  }
-
-  return true;
-}
-
-qx.Proto._modifyFont = function(propValue, propOldValue, propData)
-{
-  if (propValue) {
-    propValue._applyWidget(this);
-  } else if (propOldValue) {
-    propOldValue._resetWidget(this);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyWrap = function(propValue, propOldValue, propData)
-{
-  this.setStyleProperty("whiteSpace", propValue ? "normal" : "nowrap");
-  return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ELEMENT HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._applyElementData = function() {
-  this._syncHtml();
-}
-
-qx.Proto._syncHtml = function() {
-  this.getElement().innerHTML = this.getHtml();
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/IconHtmlEmbed.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/IconHtmlEmbed.js
deleted file mode 100644 (file)
index 06f935b..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#embed(qx.static/image/blank.gif)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.embed.IconHtmlEmbed", qx.ui.embed.HtmlEmbed,
-function(vHtml, vIcon, vIconWidth, vIconHeight)
-{
-  qx.ui.embed.HtmlEmbed.call(this, vHtml);
-
-  if (vIcon != null)
-  {
-    this.setIcon(vIcon);
-
-    if (vIconWidth != null) {
-      this.setIconWidth(vIconWidth);
-    }
-
-    if (vIconHeight != null) {
-      this.setIconHeight(vIconWidth);
-    }
-  }
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/*!
-  Any URI String supported by qx.ui.basic.Image to display a icon
-*/
-qx.OO.addProperty({ name : "icon", type : "string", impl : "html" });
-
-/*!
-  The width of the icon.
-  If configured, this makes qx.ui.embed.IconHtmlEmbed a little bit faster as it does not need to wait until the image loading is finished.
-*/
-qx.OO.addProperty({ name : "iconWidth", type : "number", impl : "html" });
-
-/*!
-  The height of the icon
-  If configured, this makes qx.ui.embed.IconHtmlEmbed a little bit faster as it does not need to wait until the image loading is finished.
-*/
-qx.OO.addProperty({ name : "iconHeight", type : "number", impl : "html" });
-
-/*!
-  Space in pixels between the icon and the HTML.
-*/
-qx.OO.addProperty({ name : "spacing", type : "number", defaultValue : 4, impl : "html" });
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto._mshtml = qx.core.Client.getInstance().isMshtml();
-
-qx.Proto._syncHtml = function()
-{
-  var vHtml = [];
-
-  if (qx.util.Validation.isValidString(this.getIcon()))
-  {
-    vHtml.push("<img src=\"");
-    vHtml.push(qx.manager.object.AliasManager.getInstance().resolvePath(this._mshtml ? "static/image/blank.gif" : this.getIcon()));
-    vHtml.push("\" style=\"vertical-align:middle;");
-
-    if (this.getSpacing() != null)
-    {
-      vHtml.push("margin-right:");
-      vHtml.push(this.getSpacing());
-      vHtml.push("px;");
-    }
-
-    if (this.getIconWidth() != null)
-    {
-      vHtml.push("width:");
-      vHtml.push(this.getIconWidth());
-      vHtml.push("px;");
-    }
-
-    if (this.getIconHeight() != null)
-    {
-      vHtml.push("height:");
-      vHtml.push(this.getIconHeight());
-      vHtml.push("px;");
-    }
-
-    if (this._mshtml)
-    {
-      vHtml.push("filter:");
-      vHtml.push("progid:DXImageTransform.Microsoft.AlphaImageLoader(src='");
-      vHtml.push(qx.manager.object.AliasManager.getInstance().resolvePath(this.getIcon()));
-      vHtml.push("',sizingMethod='scale')");
-      vHtml.push(";");
-    }
-
-    vHtml.push("\"/>");
-  }
-
-  if (qx.util.Validation.isValidString(this.getHtml())) {
-    vHtml.push(this.getHtml());
-  }
-
-  this.getElement().innerHTML = vHtml.join("");
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/Iframe.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/Iframe.js
deleted file mode 100644 (file)
index 73dc8dc..0000000
+++ /dev/null
@@ -1,433 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#embed(qx.static/image/blank.gif)
-
-************************************************************************ */
-
-/**
- * @event load {qx.event.type.Event}
- */
-qx.OO.defineClass("qx.ui.embed.Iframe", qx.ui.basic.Terminator,
-function(vSource)
-{
-  // **********************************************************************
-  //   INIT
-  // **********************************************************************
-  qx.ui.basic.Terminator.call(this);
-
-  this.setSelectable(false);
-  this.setTabIndex(0);
-
-  var o = this;
-  this.__onreadystatechange = function(e) { return o._onreadystatechange(e); }
-  this.__onload = function(e) { return o._onload(e); }
-
-  if (vSource != undefined) {
-    this.setSource(vSource);
-  }
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "iframe" });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.addProperty({ name : "source", type : "string" });
-
-qx.OO.addProperty({ name : "frameName", type : "string" });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  INTERNAL PROPERTIES
----------------------------------------------------------------------------
-*/
-
-
-// iframe DOM node
-
-qx.Proto._iframeNode = null;
-
-qx.Proto.getIframeNode = function() {
-  return this._iframeNode;
-}
-
-qx.Proto.setIframeNode = function(vIframeNode) {
-  return this._iframeNode = vIframeNode;
-}
-
-
-// blocker div DOM node
-
-qx.Proto._blockerNode = null;
-
-qx.Proto.getBlockerNode = function() {
-  return this._blockerNode;
-}
-
-qx.Proto.setBlockerNode = function(vBlockerNode) {
-  return this._blockerNode = vBlockerNode;
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.reload = function() {
-  this._applySource();
-}
-
-
-qx.Proto.block = function()
-{
-  if (this._blockerNode) {
-    this._blockerNode.style.display = "";
-  }
-};
-
-qx.Proto.release = function()
-{
-  if (this._blockerNode) {
-    this._blockerNode.style.display = "none";
-  }
-};
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyElement = function(propValue, propOldValue, propData)
-{
-
-  var iframeNode = this.getIframeNode();
-
-  if (!iframeNode)
-  {
-
-    qx.ui.embed.Iframe.initIframe(this.getFrameName());
-
-    // clone proto element and assign iframe
-    iframeNode = this.setIframeNode(qx.ui.embed.Iframe._element.cloneNode(true));
-
-    qx.ui.embed.Iframe.initBlocker();
-
-    // clone proto blocker
-    var blockerNode = this.setBlockerNode(qx.ui.embed.Iframe._blocker.cloneNode(true));
-
-    if (qx.core.Client.getInstance().isMshtml()) {
-      iframeNode.onreadystatechange = this.__onreadystatechange;
-    } else {
-      iframeNode.onload = this.__onload;
-    }
-  }
-
-  this._applySource();
-
-  propValue.appendChild(iframeNode);
-  propValue.appendChild(blockerNode);
-
-  // create basic widget
-  qx.ui.basic.Terminator.prototype._modifyElement.call(this, propValue, propOldValue, propData);
-
-  return true;
-}
-
-
-qx.Proto._beforeAppear = function() {
-  qx.ui.basic.Terminator.prototype._beforeAppear.call(this);
-
-  // register to iframe manager as active widget
-  qx.manager.object.IframeManager.getInstance().add(this);
-};
-
-
-qx.Proto._beforeDisappear = function() {
-  qx.ui.basic.Terminator.prototype._beforeDisappear.call(this);
-
-  // deregister from iframe manager
-  qx.manager.object.IframeManager.getInstance().remove(this);
-};
-
-
-qx.Proto._modifySource = function(propValue, propOldValue, propData)
-{
-  if(this.isCreated()) {
-    this._applySource();
-  }
-
-  return true;
-}
-
-qx.Proto._applySource = function()
-{
-  var currentSource = this.getSource();
-
-  if (qx.util.Validation.isInvalidString(currentSource)) {
-    currentSource = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
-  }
-
-  this._isLoaded = false;
-  this.getIframeNode().src = currentSource;
-}
-
-qx.Proto._modifyFrameName = function (propValue, propOldValue, propName, uniqModIds)
-{
-  if( this.isCreated()) {
-    throw new Error("Not allowed to set frame name after it has been created");
-  }
-
-  return true;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onreadystatechange = function()
-{
-  if (this.getIframeNode().readyState == "complete") {
-    this.dispatchEvent(new qx.event.type.Event("load"), true);
-  }
-}
-
-qx.Proto._onload = function()
-{
-  this._isLoaded = true;
-  this.dispatchEvent(new qx.event.type.Event("load"), true);
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  WINDOW & DOCUMENT ACCESS
----------------------------------------------------------------------------
-*/
-
-if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.Proto.getContentWindow = function()
-  {
-    if (this.isCreated()) {
-      try { return this.getIframeNode().contentWindow; }
-      catch (ex) {}
-    }
-
-    return null;
-  }
-
-  qx.Proto.getContentDocument = function()
-  {
-    var win = this.getContentWindow();
-    if (win) {
-      try { return win.document; }
-      catch (ex) {}
-    }
-
-    return null;
-  }
-}
-else
-{
-  qx.Proto.getContentWindow = function()
-  {
-    var doc = this.getContentDocument();
-    return doc ? doc.defaultView : null;
-  }
-
-  qx.Proto.getContentDocument = function()
-  {
-    if (this.isCreated()) {
-      try { return this.getIframeNode().contentDocument; }
-      catch (ex) {}
-    }
-
-    return null;
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  LOAD STATUS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._isLoaded = false;
-
-if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.Proto.isLoaded = function()
-  {
-    var doc = this.getContentDocument();
-    return doc ? doc.readyState == "complete" : false;
-  }
-}
-else
-{
-  qx.Proto.isLoaded = function()
-  {
-    return this._isLoaded;
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSE
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this.__onreadystatechange = this.__onload = null;
-
-  if (this._iframeNode)
-  {
-    this._iframeNode.onreadystatechange = null;
-    this._iframeNode.onload = null;
-
-    this._iframeNode = null;
-  }
-
-  qx.ui.basic.Terminator.prototype.dispose.call(this);
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  INIT
----------------------------------------------------------------------------
-*/
-qx.ui.embed.Iframe.initIframe = function(vFrameName)
-{
-  if (qx.ui.embed.Iframe._element && !vFrameName) {
-    return;
-  }
-
-  if (vFrameName && qx.core.Client.getInstance().isMshtml()) {
-    var f = qx.ui.embed.Iframe._element = document.createElement('<iframe name="' + vFrameName + '"></iframe>');
-  } else {
-    var f = qx.ui.embed.Iframe._element = document.createElement("iframe");
-    if (vFrameName) {
-      f.name = vFrameName;
-    }
-   }
-
-  f.frameBorder = "0";
-  f.frameSpacing = "0";
-
-  f.marginWidth = "0";
-  f.marginHeight = "0";
-
-  f.width = "100%";
-  f.height = "100%";
-
-  f.hspace = "0";
-  f.vspace = "0";
-
-  f.border = "0";
-  f.scrolling = "auto";
-  f.unselectable = "on";
-  f.allowTransparency = "true";
-
-  f.style.position = "absolute";
-  f.style.top = 0;
-  f.style.left = 0;
- };
-
-qx.ui.embed.Iframe.initBlocker = function()
-{
-
-  if (qx.ui.embed.Iframe._blocker) {
-    return;
-  }
-
-  var b = qx.ui.embed.Iframe._blocker = document.createElement("div");
-
-  if (qx.core.Client.getInstance().isMshtml()) {
-    b.style.backgroundImage = "url(" + qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif") + ")";
-  }
-
-  b.style.position = "absolute";
-  b.style.top = 0;
-  b.style.left = 0;
-  b.style.width = "100%";
-  b.style.height = "100%";
-  b.style.zIndex = 1;
-  b.style.display = "none";
-};
-
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/LinkEmbed.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/LinkEmbed.js
deleted file mode 100644 (file)
index 9ea3398..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.embed.LinkEmbed", qx.ui.embed.HtmlEmbed,
-function(vHtml, vUri, vTarget)
-{
-  qx.ui.embed.HtmlEmbed.call(this, vHtml);
-
-  if (typeof vUri != "undefined") {
-    this.setUri(vUri);
-  }
-
-  if (typeof vTarget != "undefined") {
-    this.setTarget(vTarget);
-  }
-});
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/*!
-  Any valid html URI
-*/
-qx.OO.addProperty({ name : "uri", type : "string", defaultValue : "#", impl : "html" });
-
-/*!
-  Any valid html target
-*/
-qx.OO.addProperty({ name : "target", type : "string", defaultValue : "_blank", impl : "html" });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.ui.embed.LinkEmbed.LINK_START = "<a target='";
-qx.ui.embed.LinkEmbed.HREF_START = "' href='";
-qx.ui.embed.LinkEmbed.HREF_STOP = "'>";
-qx.ui.embed.LinkEmbed.LINK_STOP = "</a>";
-
-qx.Proto._syncHtml = function()
-{
-  var vHtml = [];
-
-  vHtml.push(qx.ui.embed.LinkEmbed.LINK_START);
-  vHtml.push(this.getTarget());
-  vHtml.push(qx.ui.embed.LinkEmbed.HREF_START);
-  vHtml.push(this.getUri());
-  vHtml.push(qx.ui.embed.LinkEmbed.HREF_STOP);
-  vHtml.push(this.getHtml());
-  vHtml.push(qx.ui.embed.LinkEmbed.LINK_STOP);
-
-  this.getElement().innerHTML = vHtml.join("");
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/NodeEmbed.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/NodeEmbed.js
deleted file mode 100644 (file)
index 3b8554a..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_basic)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.embed.NodeEmbed", qx.ui.basic.Terminator,
-function(vId)
-{
-  qx.ui.basic.Terminator.call(this);
-
-  if (vId != null) {
-    this.setSourceNodeId(vId);
-  }
-});
-
-qx.OO.addProperty({ name : "sourceNodeId", type : "string" });
-
-qx.Proto._createElementImpl = function()
-{
-  var vNode = document.getElementById(this.getSourceNodeId());
-
-  if (!vNode) {
-    throw new Error("Could not find source node with ID: " + this.getSourceNodeId());
-  }
-
-  vNode.style.display = "";
-
-  return this.setElement(vNode);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/TextEmbed.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/embed/TextEmbed.js
deleted file mode 100644 (file)
index a2554e3..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_basic)
-#require(qx.renderer.font.FontCache)
-#after(qx.renderer.font.FontObject)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.embed.TextEmbed", qx.ui.basic.Terminator,
-function(vText)
-{
-  qx.ui.basic.Terminator.call(this);
-
-  if (vText != null) {
-    this.setText(vText);
-  }
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/*!
-  Any text string which can contain TEXT, too
-*/
-qx.OO.addProperty({ name : "text", type : "string" });
-
-/*!
-  The font property describes how to paint the font on the widget.
-*/
-qx.OO.addProperty({ name : "font", type : "object", instance : "qx.renderer.font.Font", convert : qx.renderer.font.FontCache, allowMultipleArguments : true });
-
-/*!
-  Wrap the text?
-*/
-qx.OO.addProperty({ name : "wrap", type : "boolean", defaultValue : true });
-
-/** The horizontal alignment of the text. */
-qx.OO.addProperty({ name : "textAlign", type : "string", defaultValue : "left", possibleValues : [ "left", "center", "right", "justify" ], allowNull : false });
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyText = function()
-{
-  if (this._isCreated) {
-    this._syncText();
-  }
-
-  return true;
-}
-
-qx.Proto._modifyFont = function(propValue, propOldValue, propData)
-{
-  if (propValue) {
-    propValue._applyWidget(this);
-  } else if (propOldValue) {
-    propOldValue._resetWidget(this);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyWrap = function(propValue, propOldValue, propData)
-{
-  this.setStyleProperty("whiteSpace", propValue ? "normal" : "nowrap");
-  return true;
-}
-
-// property modifier
-qx.Proto._modifyTextAlign = function(propValue, propOldValue, propData) {
-  this.setStyleProperty("textAlign", propValue);
-  return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ELEMENT HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._applyElementData = function() {
-  this.getElement().appendChild(document.createTextNode(this.getText()));
-}
-
-qx.Proto._syncText = function() {
-  this.getElement().firstChild.nodeValue = this.getText();
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/Button.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/Button.js
deleted file mode 100644 (file)
index 858a1b8..0000000
+++ /dev/null
@@ -1,208 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-
-************************************************************************ */
-/**
- * A button.
- *
- * @state {abandoned}
- * @state {over}
- * @state {pressed}
- */
-qx.OO.defineClass("qx.ui.form.Button", qx.ui.basic.Atom,
-function(vText, vIcon, vIconWidth, vIconHeight, vFlash)
-{
-  // ************************************************************************
-  //   INIT
-  // ************************************************************************
-  qx.ui.basic.Atom.call(this, vText, vIcon, vIconWidth, vIconHeight, vFlash);
-
-  // Make focusable
-  this.setTabIndex(1);
-
-
-  // ************************************************************************
-  //   MOUSE EVENTS
-  // ************************************************************************
-  this.addEventListener("mouseover", this._onmouseover);
-  this.addEventListener("mouseout", this._onmouseout);
-  this.addEventListener("mousedown", this._onmousedown);
-  this.addEventListener("mouseup", this._onmouseup);
-
-
-  // ************************************************************************
-  //   KEY EVENTS
-  // ************************************************************************
-  this.addEventListener("keydown", this._onkeydown);
-  this.addEventListener("keyup", this._onkeyup);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "button" });
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmouseover = function(e)
-{
-  if (e.getTarget() != this) {
-    return;
-  }
-
-  if (this.hasState("abandoned"))
-  {
-    this.removeState("abandoned");
-    this.addState("pressed");
-  }
-
-  this.addState("over");
-}
-
-qx.Proto._onmouseout = function(e)
-{
-  if (e.getTarget() != this) {
-    return;
-  }
-
-  this.removeState("over");
-
-  if (this.hasState("pressed"))
-  {
-    // Activate capturing if the button get a mouseout while
-    // the button is pressed.
-    this.setCapture(true);
-
-    this.removeState("pressed");
-    this.addState("abandoned");
-  }
-}
-
-qx.Proto._onmousedown = function(e)
-{
-  if (e.getTarget() != this || !e.isLeftButtonPressed()) {
-    return;
-  }
-
-  this.removeState("abandoned");
-  this.addState("pressed");
-}
-
-qx.Proto._onmouseup = function(e)
-{
-  this.setCapture(false);
-
-  // We must remove the states before executing the command
-  // because in cases were the window lost the focus while
-  // executing we get the capture phase back (mouseout).
-  var hasPressed = this.hasState("pressed");
-  var hasAbandoned = this.hasState("abandoned");
-
-  if (hasPressed) {
-    this.removeState("pressed");
-  }
-
-  if (hasAbandoned) {
-    this.removeState("abandoned");
-  }
-
-  if (!hasAbandoned)
-  {
-    this.addState("over");
-
-    if (hasPressed) {
-      this.execute();
-    }
-  }
-}
-
-qx.Proto._onkeydown = function(e)
-{
-  switch(e.getKeyIdentifier())
-  {
-    case "Enter":
-    case "Space":
-      this.removeState("abandoned");
-      this.addState("pressed");
-  }
-}
-
-qx.Proto._onkeyup = function(e)
-{
-  switch(e.getKeyIdentifier())
-  {
-    case "Enter":
-    case "Space":
-      if (this.hasState("pressed"))
-      {
-        this.removeState("abandoned");
-        this.removeState("pressed");
-        this.execute();
-      }
-  }
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  // ************************************************************************
-  //   MOUSE EVENTS
-  // ************************************************************************
-  this.removeEventListener("mouseover", this._onmouseover, this);
-  this.removeEventListener("mouseout", this._onmouseout, this);
-  this.removeEventListener("mousedown", this._onmousedown, this);
-  this.removeEventListener("mouseup", this._onmouseup, this);
-
-
-  // ************************************************************************
-  //   KEY EVENTS
-  // ************************************************************************
-  this.removeEventListener("keydown", this._onkeydown, this);
-  this.removeEventListener("keyup", this._onkeyup, this);
-
-
-  // ************************************************************************
-  //   SUPER CLASS
-  // ************************************************************************
-  return qx.ui.basic.Atom.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/CheckBox.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/CheckBox.js
deleted file mode 100644 (file)
index 8a8c581..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.form.CheckBox", qx.ui.basic.Atom,
-function(vText, vValue, vName, vChecked)
-{
-  qx.ui.basic.Atom.call(this, vText);
-
-  this.setTabIndex(1);
-  this.setPadding(2, 3);
-
-  this._createIcon();
-
-  if (vValue != null) {
-    this.setValue(vValue);
-  }
-
-  if (vName != null) {
-    this.setName(vName);
-  }
-
-  if (vChecked != null) {
-    this.setChecked(vChecked);
-  } else {
-    this.setChecked(false);
-  }
-
-  this.addEventListener("click", this._onclick);
-  this.addEventListener("keydown", this._onkeydown);
-  this.addEventListener("keyup", this._onkeyup);
-});
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.OO.removeProperty({ name : "icon" });
-qx.OO.removeProperty({ name : "disabledIcon" });
-
-/*!
-  The HTML name of the form element used by the widget
-*/
-qx.OO.addProperty({ name : "name", type : "string" });
-
-/*!
-  The HTML value of the form element used by the widget
-*/
-qx.OO.addProperty({ name : "value", type : "string" });
-
-/*!
-  If the widget is checked
-*/
-qx.OO.addProperty({ name : "checked", type : "boolean", getAlias : "isChecked" });
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ICON HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto.INPUT_TYPE = "checkbox";
-
-qx.Proto._createIcon = function()
-{
-  var i = this._iconObject = new qx.ui.form.InputCheckSymbol;
-
-  i.setType(this.INPUT_TYPE);
-  i.setChecked(this.isChecked());
-  i.setEnabled(this.isEnabled());
-  i.setAnonymous(true);
-
-  this.addAtBegin(i);
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyChecked = function(propValue, propOldValue, propData)
-{
-  if (this._iconObject) {
-    this._iconObject.setChecked(propValue);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
-{
-  if (this._iconObject) {
-    this._iconObject.setEnabled(propValue);
-  }
-
-  return qx.ui.basic.Atom.prototype._modifyEnabled.call(this, propValue, propOldValue, propData);
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._handleIcon = function()
-{
-  switch(this.getShow())
-  {
-    case qx.ui.basic.Atom.SHOW_ICON:
-    case qx.ui.basic.Atom.SHOW_BOTH:
-      this._iconIsVisible = true;
-      break;
-
-    default:
-      this._iconIsVisible = false;
-  }
-
-  if (this._iconIsVisible)
-  {
-    this._iconObject ? this._iconObject.setDisplay(true) : this._createIcon();
-  }
-  else if (this._iconObject)
-  {
-    this._iconObject.setDisplay(false);
-  }
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT-HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onclick = function(e) {
-  this.toggleChecked();
-};
-
-
-qx.Proto._onkeydown = function(e)
-{
-  if(e.getKeyIdentifier() == "Enter" && !e.isAltPressed()) {
-    this.toggleChecked();
-  }
-};
-
-
-qx.Proto._onkeyup = function(e)
-{
-  if(e.getKeyIdentifier() == "Space") {
-    this.toggleChecked();
-  }
-};
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if(this.getDisposed()) {
-    return;
-  }
-
-  this.removeEventListener("click", this._onclick);
-  this.removeEventListener("keydown", this._onkeydown);
-  this.removeEventListener("keyup", this._onkeyup);
-
-  return qx.ui.basic.Atom.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ComboBox.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ComboBox.js
deleted file mode 100644 (file)
index 08a4582..0000000
+++ /dev/null
@@ -1,837 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-#embed(qx.widgettheme/arrows/down.gif)
-
-************************************************************************ */
-
-/**
- * A combo-box for qooxdoo.
- *
- * The major additional feature compared to typical select fields is that it allows
- * it to be editable. Also images are supported inside the popup list.
- *
- * Features:
- * <ul>
- * <li>Editable text field</li>
- * <li>Complete key-navigation</li>
- * <li>Images inside the list</li>
- * <li>Images and text inside the list</li>
- * </ul>
- *
- * @event beforeInitialOpen {qx.event.type.Event}
- */
-qx.OO.defineClass("qx.ui.form.ComboBox", qx.ui.layout.HorizontalBoxLayout,
-function()
-{
-  qx.ui.layout.HorizontalBoxLayout.call(this);
-
-
-  // ************************************************************************
-  //   LIST
-  // ************************************************************************
-  var l = this._list = new qx.ui.form.List;
-
-  l.setAppearance("combo-box-list");
-
-
-  // ************************************************************************
-  //   MANAGER
-  // ************************************************************************
-  var m = this._manager = this._list.getManager();
-
-  m.setMultiSelection(false);
-  m.setDragSelection(false);
-
-
-  // ************************************************************************
-  //   POPUP
-  // ************************************************************************
-  var p = this._popup = new qx.ui.popup.Popup;
-
-  p.setAppearance("combo-box-popup");
-  p.setAutoHide(false);
-
-  p.add(l);
-
-
-  // ************************************************************************
-  //   TEXTFIELD
-  // ************************************************************************
-  var f = this._field = new qx.ui.form.TextField;
-
-  f.setAppearance("combo-box-text-field");
-  f.setTabIndex(-1);
-
-  this.add(f);
-
-
-  // ************************************************************************
-  //   BUTTON
-  // ************************************************************************
-
-  // Use qx.ui.basic.Atom instead of qx.ui.form.Button here to omit the registration
-  // of the unneeded and complex button events.
-  var b = this._button = new qx.ui.basic.Atom(null, "widget/arrows/down.gif");
-
-  b.setAppearance("combo-box-button");
-  b.setTabIndex(-1);
-
-  this.add(b);
-
-
-  // ************************************************************************
-  //   BEHAVIOR
-  // ************************************************************************
-  this.setTabIndex(1);
-  this.setEditable(false);
-
-
-  // ************************************************************************
-  //   WIDGET MOUSE EVENTS
-  // ************************************************************************
-  this.addEventListener("mousedown", this._onmousedown);
-  this.addEventListener("mouseup", this._onmouseup);
-  this.addEventListener("mouseover", this._onmouseover);
-  this.addEventListener("mousewheel", this._onmousewheel);
-
-
-  // ************************************************************************
-  //   WIDGET KEY EVENTS
-  // ************************************************************************
-  this.addEventListener("keydown", this._onkeydown);
-  this.addEventListener("keypress", this._onkeypress);
-  this.addEventListener("keyinput", this._onkeyinput);
-
-
-  // ************************************************************************
-  //   WIDGET STATE EVENTS
-  // ************************************************************************
-  this.addEventListener("beforeDisappear", this._onbeforedisappear);
-
-
-  // ************************************************************************
-  //   CHILDREN EVENTS
-  // ************************************************************************
-  this._popup.addEventListener("appear", this._onpopupappear, this);
-  this._field.addEventListener("input", this._oninput, this);
-
-
-  // ************************************************************************
-  //   DOCUMENT EVENTS
-  // ************************************************************************
-  var vDoc = qx.ui.core.ClientDocument.getInstance();
-  vDoc.addEventListener("windowblur", this._onwindowblur, this);
-
-
-  // ************************************************************************
-  //   REMAPPING
-  // ************************************************************************
-  this.remapChildrenHandlingTo(l);
-});
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "combo-box" });
-
-qx.OO.addProperty({ name: "editable", type: "boolean", getAlias: "isEditable" });
-qx.OO.addProperty({ name: "selected", type: "object", instance : "qx.ui.form.ListItem" });
-qx.OO.addProperty({ name: "value", type : "string" });
-qx.OO.addProperty({ name: "pagingInterval", type: "number", defaultValue: 10 });
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getManager = function() {
-  return this._manager;
-}
-
-qx.Proto.getPopup = function() {
-  return this._popup;
-}
-
-qx.Proto.getList = function() {
-  return this._list;
-}
-
-qx.Proto.getField = function() {
-  return this._field;
-}
-
-qx.Proto.getButton = function() {
-  return this._button;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifySelected = function(propValue, propOldValue, propData)
-{
-  this._fromSelected = true;
-
-  // only do this if we called setSelected seperatly
-  // and not from the property "value".
-  if (!this._fromValue) {
-    this.setValue(propValue ? propValue.getLabel() : "");
-  }
-
-  // reset manager cache
-  this._manager.setLeadItem(propValue);
-  this._manager.setAnchorItem(propValue);
-
-  // sync to manager
-  if (propValue)
-  {
-    this._manager.setSelectedItem(propValue);
-  }
-  else
-  {
-    this._manager.deselectAll();
-  }
-
-  // reset hint
-  delete this._fromSelected;
-
-  return true;
-}
-
-qx.Proto._modifyValue = function(propValue, propOldValue, propData)
-{
-  this._fromValue = true;
-
-  // only do this if we called setValue seperatly
-  // and not from the event "input".
-  if (!this._fromInput)
-  {
-    if (this._field.getValue() == propValue) {
-      this._field.forceValue(null);
-    }
-
-    this._field.setValue(propValue);
-  }
-
-  // only do this if we called setValue seperatly
-  // and not from the property "selected".
-  if (!this._fromSelected)
-  {
-    // inform selected property
-    var vSelItem = this._list.findStringExact(propValue);
-
-    // ignore disabled items
-    if (vSelItem != null && !vSelItem.getEnabled()) {
-      vSelItem = null;
-    }
-
-    this.setSelected(vSelItem);
-  }
-
-  // reset hint
-  delete this._fromValue;
-
-  return true;
-}
-
-qx.Proto._modifyEditable = function(propValue, propOldValue, propData)
-{
-  var f = this._field;
-
-  f.setReadOnly(!propValue);
-  f.setCursor(propValue ? null : "default");
-  f.setSelectable(propValue);
-
-  return true;
-}
-
-qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
-{
-  if (this._button) {
-    this._button.setEnabled(propValue);
-  }
-
-  if (this._field) {
-    this._field.setEnabled(propValue);
-  }
-
-  return qx.ui.layout.HorizontalBoxLayout.prototype._modifyEnabled.call(this, propValue, propOldValue, propData);
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  POPUP HELPER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._oldSelected = null;
-
-qx.Proto._openPopup = function()
-{
-  var p = this._popup;
-  var el = this.getElement();
-
-  if (!p.isCreated()) {
-    this.createDispatchEvent("beforeInitialOpen");
-  }
-
-  if (this._list.getChildrenLength() == 0) {
-    return;
-  }
-
-  p.positionRelativeTo(el, 1, qx.html.Dimension.getBoxHeight(el));
-  p.setWidth(this.getBoxWidth()-2);
-
-  p.setParent(this.getTopLevelWidget());
-  p.show();
-
-  this._oldSelected = this.getSelected();
-
-  this.setCapture(true);
-}
-
-qx.Proto._closePopup = function()
-{
-  this._popup.hide();
-  this.setCapture(false);
-}
-
-qx.Proto._testClosePopup = function()
-{
-  if (this._popup.isSeeable()) {
-    this._closePopup();
-  }
-}
-
-qx.Proto._togglePopup = function() {
-  this._popup.isSeeable() ? this._closePopup() : this._openPopup();
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  OTHER EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onpopupappear = function(e)
-{
-  var vSelItem = this.getSelected();
-  if (vSelItem) {
-    vSelItem.scrollIntoView();
-  }
-}
-
-qx.Proto._oninput = function(e)
-{
-  // Hint for modifier
-  this._fromInput = true;
-
-  this.setValue(this._field.getComputedValue());
-
-  // be sure that the found item is in view
-  if (this.getPopup().isSeeable() && this.getSelected()) {
-    this.getSelected().scrollIntoView();
-  }
-
-  delete this._fromInput;
-}
-
-qx.Proto._onbeforedisappear = function(e)
-{
-  this._testClosePopup();
-}
-
-
-
-/*
----------------------------------------------------------------------------
-  MOUSE EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmousedown = function(e)
-{
-  var vTarget = e.getTarget();
-
-  switch(vTarget)
-  {
-    case this._field:
-      if (this.getEditable()) {
-        break;
-      }
-
-      // no break here
-
-    case this._button:
-      this._button.addState("pressed");
-      this._togglePopup();
-      break;
-
-    case this:
-    case this._list:
-      break;
-
-    default:
-      if (vTarget instanceof qx.ui.form.ListItem && vTarget.getParent() == this._list)
-      {
-        this._list._onmousedown(e);
-        this.setSelected(this._list.getSelectedItem());
-
-        this._closePopup();
-        this.setFocused(true);
-      }
-      else if (this._popup.isSeeable())
-      {
-        this._popup.hide();
-        this.setCapture(false);
-      }
-  }
-}
-
-qx.Proto._onmouseup = function(e)
-{
-  switch(e.getTarget())
-  {
-    case this._field:
-      if (this.getEditable()) {
-        break;
-      }
-
-      // no break here
-
-    default:
-      this._button.removeState("pressed");
-      break;
-  }
-}
-
-qx.Proto._onmouseover = function(e)
-{
-  var vTarget = e.getTarget();
-
-  if (vTarget instanceof qx.ui.form.ListItem)
-  {
-    var vManager = this._manager;
-
-    vManager.deselectAll();
-
-    vManager.setLeadItem(vTarget);
-    vManager.setAnchorItem(vTarget);
-
-    vManager.setSelectedItem(vTarget);
-  }
-}
-
-qx.Proto._onmousewheel = function(e)
-{
-  if (!this._popup.isSeeable())
-  {
-    var toSelect;
-
-    var isSelected = this.getSelected();
-
-    if (e.getWheelDelta() < 0)
-    {
-      toSelect = isSelected ? this._manager.getNext(isSelected) : this._manager.getFirst();
-    }
-    else
-    {
-      toSelect = isSelected ? this._manager.getPrevious(isSelected) : this._manager.getLast();
-    }
-
-    if (toSelect)
-    {
-      this.setSelected(toSelect);
-    }
-  }
-  /* close the popup if the event target is not the combobox or
-   * not one of the list items of the popup list
-   */
-  else {
-    var vTarget = e.getTarget();
-
-    if (vTarget!=this && vTarget.getParent()!=this._list) {
-      this._popup.hide();
-      this.setCapture(false);
-    }
-  }
-}
-
-
-
-/*
----------------------------------------------------------------------------
-  KEY EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onkeydown = function(e)
-{
-  var vManager = this._manager;
-  var vVisible = this._popup.isSeeable();
-
-  switch(e.getKeyIdentifier())
-  {
-    // Handle <ENTER>
-    case "Enter":
-      if (vVisible)
-      {
-        this.setSelected(this._manager.getSelectedItem());
-        this._closePopup();
-        this.setFocused(true);
-      }
-      else
-      {
-        this._openPopup();
-      }
-
-      return;
-
-    // Handle <ESC>
-    case "Escape":
-      if (vVisible)
-      {
-        vManager.setLeadItem(this._oldSelected);
-        vManager.setAnchorItem(this._oldSelected);
-
-        vManager.setSelectedItem(this._oldSelected);
-
-        this._field.setValue(this._oldSelected ? this._oldSelected.getLabel() : "");
-
-        this._closePopup();
-        this.setFocused(true);
-      }
-
-      return;
-
-    // Handle Alt+Down
-    case "Down":
-      if (e.isAltPressed())
-      {
-        this._togglePopup();
-        return;
-      }
-
-      break;
-  }
-};
-
-
-qx.Proto._onkeypress = function(e)
-{
-  var vVisible = this._popup.isSeeable();
-  var vManager = this._manager;
-
-  switch(e.getKeyIdentifier())
-  {
-    // Handle <PAGEUP>
-    case "PageUp":
-      if (!vVisible)
-      {
-        var vPrevious;
-        var vTemp = this.getSelected();
-
-        if (vTemp)
-        {
-          var vInterval = this.getPagingInterval();
-
-          do {
-            vPrevious = vTemp;
-          } while(--vInterval && (vTemp = vManager.getPrevious(vPrevious)));
-        }
-        else
-        {
-          vPrevious = vManager.getLast();
-        }
-
-        this.setSelected(vPrevious);
-
-        return;
-      }
-
-      break;
-
-    // Handle <PAGEDOWN>
-    case "PageDown":
-      if (!vVisible)
-      {
-        var vNext;
-        var vTemp = this.getSelected();
-
-        if (vTemp)
-        {
-          var vInterval = this.getPagingInterval();
-
-          do {
-            vNext = vTemp;
-          } while(--vInterval && (vTemp = vManager.getNext(vNext)));
-        }
-        else
-        {
-          vNext = vManager.getFirst();
-        }
-
-        this.setSelected(vNext);
-
-        return;
-      }
-
-      break;
-  }
-
-  // Default Handling
-  if (!this.isEditable() || vVisible)
-  {
-    this._list._onkeypress(e);
-
-    var vSelected = this._manager.getSelectedItem();
-
-    if (!vVisible)
-    {
-      this.setSelected(vSelected);
-    }
-    else if (vSelected)
-    {
-      this._field.setValue(vSelected.getLabel());
-    }
-  }
-};
-
-
-qx.Proto._onkeyinput = function(e)
-{
-  var vVisible = this._popup.isSeeable();
-  if (!this.isEditable() || vVisible)
-  {
-    this._list._onkeyinput(e);
-
-    var vSelected = this._manager.getSelectedItem();
-
-    if (!vVisible)
-    {
-      this.setSelected(vSelected);
-    }
-    else if (vSelected)
-    {
-      this._field.setValue(vSelected.getLabel());
-    }
-  }
-};
-
-
-
-/*
----------------------------------------------------------------------------
-  GLOBAL BLUR/FOCUS HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onwindowblur = qx.Proto._testClosePopup;
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  FOCUS HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._visualizeBlur = function()
-{
-  // Force blur, even if mouseFocus is not active because we
-  // need to be sure that the previous focus rect gets removed.
-  // But this only needs to be done, if there is no new focused element.
-  if (qx.core.Client.getInstance().isMshtml())
-  {
-    if (this.getEnableElementFocus() && !this.getFocusRoot().getFocusedChild())
-    {
-      try
-      {
-        if (this.getEditable())
-        {
-          this.getField().getElement().blur();
-        }
-        else
-        {
-          this.getElement().blur();
-        }
-      }
-      catch(ex) {};
-    }
-  }
-  else
-  {
-    if (this.getEnableElementFocus())
-    {
-      try
-      {
-        if (this.getEditable())
-        {
-          this.getField().getElement().blur();
-        }
-        else if (!this.getFocusRoot().getFocusedChild())
-        {
-          this.getElement().blur();
-        }
-      }
-      catch(ex) {};
-    }
-  }
-
-  this.removeState("focused");
-  return true;
-}
-
-qx.Proto._visualizeFocus = function()
-{
-  if (!qx.event.handler.FocusHandler.mouseFocus && this.getEnableElementFocus())
-  {
-    try
-    {
-      if (this.getEditable())
-      {
-        this.getField().getElement().focus();
-        this.getField()._ontabfocus();
-      }
-      else
-      {
-        this.getElement().focus();
-      }
-    }
-    catch(ex) {};
-  }
-
-  this.addState("focused");
-  return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSE
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  // ************************************************************************
-  //   WIDGET MOUSE EVENTS
-  // ************************************************************************
-  this.removeEventListener("mousedown", this._onmousedown);
-  this.removeEventListener("mouseup", this._onmouseup);
-  this.removeEventListener("mouseover", this._onmouseover);
-  this.removeEventListener("mousewheel", this._onmousewheel);
-
-
-  // ************************************************************************
-  //   WIDGET KEY EVENTS
-  // ************************************************************************
-  this.removeEventListener("keydown", this._onkeydown);
-  this.removeEventListener("keypress", this._onkeypress);
-  this.removeEventListener("keyinput", this._onkeyinput);
-
-  // ************************************************************************
-  //   DOCUMENT EVENTS
-  // ************************************************************************
-  var vDoc = qx.ui.core.ClientDocument.getInstance();
-  vDoc.removeEventListener("windowblur", this._onwindowblur, this);
-
-  if (this._popup)
-  {
-    this._popup.removeEventListener("appear", this._onpopupappear, this);
-    if (!qx.core.Object._disposeAll) {
-      this._popup.setParent(null);
-      // If this is not a page unload, we have to reset the parent. Otherwise,
-      // disposing a ComboBox that was clicked at least once would mean that
-      // the popup is still referenced by the parent. When an application
-      // repeatedly creates and disposes ComboBoxes, this would mean a memleak
-      // (and it would also mess with other things like focus management).
-    }
-    this._popup.dispose();
-    this._popup = null;
-  }
-
-  if (this._list)
-  {
-    this._list.dispose();
-    this._list = null;
-  }
-
-  if (this._manager)
-  {
-    this._manager.dispose();
-    this._manager = null;
-  }
-
-  if (this._field)
-  {
-    this._field.removeEventListener("input", this._oninput, this);
-    this._field.dispose();
-    this._field = null;
-  }
-
-  if (this._button)
-  {
-    this._button.dispose();
-    this._button = null;
-  }
-
-  return qx.ui.layout.HorizontalBoxLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ComboBoxEx.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ComboBoxEx.js
deleted file mode 100644 (file)
index 0300468..0000000
+++ /dev/null
@@ -1,1037 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * David Perez Carmona (david-perez), based on qx.ui.form.ComboBox
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_comboboxex)
-#require(qx.ui.table.Table)
-#embed(qx.widgettheme/arrows/down.gif)
-#embed(qx.icontheme/16/actions/edit-find.png)
-#embed(qx.icontheme/16/actions/dialog-ok.png)
-#embed(qx.icontheme/16/actions/dialog-cancel.png)
-
-************************************************************************ */
-
-/**
- * An enhanced combo-box for qooxdoo.
- *
- * <p>Features:</p>
- * <ul>
- * <li>Editable text field</li>
- * <li>Complete key-navigation</li>
- * <li>Mouse wheel navigation</li>
- * <li>Multicolumn display in list</li>
- * <li>If more than one column, headers are automatically shown</li>
- * <li>Can show the ID and/or description of each list item</li>
- * <li>Automatically calculating needed width</li>
- * <li>Popup list always shows full contents, and can be wider than text field</li>
- * <li>Search values through popup dialog</li>
- * <li>Internationalization support of messages</li>
- * </ul>
- * <p>Pending features:</p>
- * <ul>
- * <li>Images inside the list</li>
- * <li>Autocomplete on key input</li>
- * </ul>
- *
- * @event beforeInitialOpen {qx.event.type.Event}
- */
-qx.OO.defineClass('qx.ui.form.ComboBoxEx', qx.ui.layout.HorizontalBoxLayout, function() {
-  qx.ui.layout.HorizontalBoxLayout.call(this);
-
-  // ************************************************************************
-  //   POPUP
-  // ************************************************************************
-  var p = this._popup = new qx.ui.popup.Popup;
-  p.setAppearance('combo-box-ex-popup');
-
-  // ************************************************************************
-  //   LIST
-  // ************************************************************************
-  this._createList([ this.tr("ID"), this.tr("Description") ]);
-
-  // ************************************************************************
-  //   FIELD
-  // ************************************************************************
-  var f = this._field = new qx.ui.form.TextField;
-  f.setAppearance('combo-box-ex-text-field');
-  f.addEventListener("input", this._oninput, this);
-  this.add(f);
-  this.setEditable(false);
-
-  // ************************************************************************
-  //   BUTTON
-  // ************************************************************************
-
-  // Use qx.ui.basic.Atom instead of qx.ui.form.Button here to omit the registration
-  // of the unneeded and complex button events.
-  var b = this._button = new qx.ui.basic.Atom(null, "widget/arrows/down.gif");
-  b.set({
-    appearance: "combo-box-button",
-    tabIndex: -1
-  });
-  this.add(b);
-
-  // ************************************************************************
-  //   BEHAVIOR
-  // ************************************************************************
-  this.setTabIndex(1);
-
-  // ************************************************************************
-  //   WIDGET MOUSE EVENTS
-  // ************************************************************************
-  this.addEventListener("mousedown", this._onmousedown);
-  this.addEventListener("mouseup", this._onmouseup);
-  this.addEventListener("mousewheel", this._onmousewheel);
-  this.addEventListener("dblclick", function() {
-    if (this.getAllowSearch()) {
-      this.openSearchDialog();
-    }
-  });
-
-  // ************************************************************************
-  //   WIDGET KEY EVENTS
-  // ************************************************************************
-  this.addEventListener("keydown", this._onkeydown);
-  this.addEventListener("keypress", this._onkeypress);
-
-  // ************************************************************************
-  //   WIDGET STATE EVENTS
-  // ************************************************************************
-  this.addEventListener("beforeDisappear", this._testClosePopup);
-
-  // ************************************************************************
-  //   CHILDREN EVENTS
-  // ************************************************************************
-  this._popup.addEventListener("appear", this._onpopupappear, this);
-});
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "combo-box-ex" });
-
-/*!Is the text field component editable or the user can only select from the list?*/
-qx.OO.addProperty({ name: "editable", type: "boolean", getAlias: "isEditable" });
-
-/*!0 based. -1 means no selected index.  It retrieves always the value column of the selection, not the description.*/
-qx.OO.addProperty({ name: "value", type : "string" });
-
-/*!How many items to transverse with PageUp and PageDn.*/
-qx.OO.addProperty({ name: "pagingInterval", type: "number", defaultValue: 10 });
-
-/*!Show the ID column (column 0) of the selection data?*/
-qx.OO.addProperty({ name: "idColumnVisible", type: "boolean", getAlias: "isIdColumnVisible", defaultValue: false });
-
-/*!Only used when editable is false.  It determines what to show in the text field of the combo box.*/
-qx.OO.addProperty({ name: "showOnTextField", type: "string", defaultValue: 'description', possibleValues : [ 'description', 'idAndDescription'  ] });
-
-/*!Only used when editable is false and showOnTextField=='idAndDescription'.*/
-qx.OO.addProperty({ name: "idDescriptionSeparator", type: "string", defaultValue: '- ' });
-
-/*!Ensures that always an item is selected (in case the selection isn't empty). Only used when editable is false.*/
-qx.OO.addProperty({ name: 'ensureSomethingSelected', type: "boolean", defaultValue: true });
-
-/*!Allow the search dialog when double clicking the combo, or pressing special keys?.*/
-qx.OO.addProperty({ name: 'allowSearch', type: "boolean", defaultValue: true });
-
-/*!Maximum number of visible rows in the popup list.*/
-qx.OO.addProperty({ name: 'maxVisibleRows', type: "number", defaultValue: 10 });
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getPopup = function() {
-  return this._popup;
-}
-
-qx.Proto.getList = function() {
-  return this._list;
-}
-
-qx.Proto.getField = function() {
-  return this._field;
-}
-
-qx.Proto.getButton = function() {
-  return this._button;
-}
-
-qx.Proto._getComboSetting = function(key) {
-  return qx.Settings.getValueOfClass('qx.ui.form.ComboBoxEx', key);
-}
-
-/**Gets the current selected row of the selection.
- * @return null if nothing selected or an array*/
-qx.Proto.getSelectedRow = function() {
-  var ind = this.getSelectedIndex();
-  return ind < 0 ? null : this._model.getData()[ind];
-}
-
-/**Creates the list component.*/
-qx.Proto._createList = function(columns) {
-  this._model = new qx.ui.table.SimpleTableModel;
-  // Default column titles
-  this._model.setColumns(columns);
-  var l = this._list = new qx.ui.table.Table(this._model);
-  l.setFocusedCell = function() {}
-  l.setAppearance('combo-box-ex-list');
-  // We receive this: Modification of property "keepFirstVisibleRowComplete" failed with exception: TypeError - vCurrentChild has no properties or
-  // this: Modification of property "keepFirstVisibleRowComplete" failed with exception: TypeError - this.getParent() has no properties
-  l.forceKeepFirstVisibleRowComplete(false);
-  var selMan = l._getSelectionManager();
-  var oldHandle = selMan.handleMouseUp, me = this;
-  selMan.handleMouseUp = function(vItem, e) {
-    oldHandle.apply(selMan, arguments);
-    if (e.isLeftButtonPressed()) {
-    me._testClosePopup();
-    }
-  }
-  this._modifyIdColumnVisible(this.getIdColumnVisible());
-  this._manager = l.getSelectionModel();
-  this._manager.addEventListener('changeSelection', this._onChangeSelection, this);
-  // Avoid deselection from user
-  this._manager.removeSelectionInterval = function() {};
-  this._manager.setSelectionMode(qx.ui.table.SelectionModel.SINGLE_SELECTION);
-  this._popup.add(l);
-  // Invalidate calculation of column widths
-  delete this._calcDimensions;
-}
-
-
-/*
----------------------------------------------------------------------------
-  PSEUDO-PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/**Sets the header for each column.
- * @param columns {String[]}*/
-qx.Proto.setColumnHeaders = function(columns) {
-  if (!this._list || columns.length != this._model.getColumnCount()) {
-    if (this._list) {
-      var data = this._model.getData();
-      this._list.setParent(null);
-      this._list.dispose();
-      this._list = null;
-    }
-    this._createList(columns);
-    if (data && data.length) {
-      this._model.setData(data);
-    }
-  } else {
-    this._model.setColumns(columns);
-    this._list.getTableColumnModel().init(columns.length);
-    delete this._calcDimensions;
-  }
-  this._modifyIdColumnVisible(this.getIdColumnVisible());
-}
-
-/**Getter for {@link #setColumnHeaders}.
- * @return {String[]}*/
-qx.Proto.getColumnHeaders = function(propVal) {
-  var cols = [];
-  cols.length = this._model.getColumnCount();
-  for (var col = 0; col < cols.length; col++) {
-    cols[col] = this._model.getColumnName(col);
-  }
-  return cols;
-}
-
-/**Sets the list of selectable items.
- * @param data {var[][]} Array of values.  Its value is an array, with the following info:<ul>.
- * <li>Column 0 represents the ID, i.e. the value that is stored internally and used by the app.</li>
- * <li>Column 1 represents the description, the text that the end user normally sees.</li>
- * <li>Columns > 1 will also be shown in the popup list, it you have set the appropiate column headers with {@link #setColumnHeaders}.</li>
- * </ul>*/
-qx.Proto.setSelection = function(data) {
-  // Invalidate calculation of column widths
-  delete this._calcDimensions;
-  this._model.setData(data);
-  // Try to preserve currently selected value
-  if (!this.getEditable()) {
-    this._modifyValue(this.getValue());
-  }
-}
-
-/**Getter for {@link #setSelection}.
- * @return {Array}*/
-qx.Proto.getSelection = function() {
-  return this._model.getData();
-}
-
-/**Sets the index of the currently selected item in the list.
- * @param index {number} -1 means no selected index*/
-qx.Proto.setSelectedIndex = function(index) {
-  var items = this.getSelection().length;
-  if (items >= 0) {
-    if (index < 0 && !this.getEditable() && this.getEnsureSomethingSelected()) {
-      index = 0;
-    }
-    if (index >= 0) {
-      index = qx.lang.Number.limit(index, 0, items-1);
-      this._manager.setSelectionInterval(index, index);
-      if (this._popup.isSeeable()) {
-        this._list.scrollCellVisible(0, index);
-      }
-    } else {
-      this._manager.clearSelection();
-    }
-  }
-  return true;
-}
-
-/**Getter for {@link #setSelectedIndex}.*/
-qx.Proto.getSelectedIndex = function() {
-  var index = this._manager.getAnchorSelectionIndex();
-  return this._manager.isSelectedIndex(index) ? index:-1;
-}
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyShowOnTextField = function(propVal) {
-  if (!this.getEditable()) {
-    this.setSelectedIndex(this.getSelectedIndex());
-    delete this._calcDimensions;  // Invalidate this._neededTextFieldWidth
-  }
-  return true;
-}
-
-qx.Proto._modifyMaxVisibleRows = function() {
-  delete this._calcDimensions;  // Invalidate this._list.height
-  return true;
-}
-
-qx.Proto._checkIdDescriptionSeparator = function(propVal) {
-  // For measuring widths, it is better to replace spaces with non-breakable spaces
-  return String(propVal).replace(/ /g, '\u00A0')
-}
-
-qx.Proto._modifyIdDescriptionSeparator = function(propVal) {
-  if (!this.getEditable() && this.getShowOnTextField() == 'idAndDescription') {
-    this.setSelectedIndex(this.getSelectedIndex());
-    delete this._calcDimensions;  // Invalidate this._neededTextFieldWidth
-  }
-  return true;
-}
-
-qx.Proto._modifyIdColumnVisible = function(propVal) {
-  this._list.getTableColumnModel().setColumnVisible(0, propVal);
-  delete this._calcDimensions;
-  return true;
-}
-
-qx.Proto._modifyEditable = function(propValue/*, propOldValue, propData*/) {
-  var f = this._field;
-  f.setReadOnly(!propValue);
-  f.setCursor(propValue ? null : "default");
-  f.setSelectable(propValue);
-  return true;
-}
-
-qx.Proto._modifyValue = function(propValue/*, propOldValue, propData*/) {
-  this._fromValue = true;
-
-  var values = this._model.getData();
-  var i = -1;
-  if (propValue != null) {
-    for (var i = 0; i < values.length; i++) {
-      if (propValue == values[i][0]) {
-        break;
-      }
-    }
-    if (i == values.length) {
-      i = -1;
-    }
-  }
-  if (this.getEditable()) {
-    this._field.setValue(propValue);
-  }
-  // only do this if we called setValue separately
-  // and not from the property "selected".
-  if (!this._fromSelected) {
-    this.setSelectedIndex(i);
-  }
-  // reset hint
-  delete this._fromValue;
-  return true;
-}
-
-qx.Proto._modifyEnabled = function(propValue/*, propOldValue, propData*/) {
-  if (this._button) {
-    this._button.setEnabled(propValue);
-  }
-  if (this._field) {
-    this._field.setEnabled(propValue);
-  }
-  return qx.ui.layout.HorizontalBoxLayout.prototype._modifyEnabled.apply(this, arguments);
-}
-
-
-/*
----------------------------------------------------------------------------
-  POPUP HELPER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._oldSelected = null;
-
-qx.Proto._openPopup = function() {
-  if (this.isSearchInProgress()) {
-    return;
-  }
-  var p = this._popup;
-  p.setAutoHide(false);
-  var el = this.getElement();
-  if (!p.isCreated()) {
-    this.createDispatchEvent("beforeInitialOpen");
-  }
-  if (!this.getSelection().length) {
-    return;
-  }
-  p.positionRelativeTo(el, 1, qx.html.Dimension.getBoxHeight(el));
-  this._calculateDimensions();
-  p.setParent(this.getTopLevelWidget());
-  p.auto();
-  p.show();
-  this._oldSelected = this.getSelectedIndex();
-  window.setInterval(function() {
-    p.setAutoHide(true);
-  }, 0);
-}
-
-/**Hide the popup list.*/
-qx.Proto._closePopup = function() {
-  this._popup.hide();
-}
-
-/**Hide the popup list only when needed.*/
-qx.Proto._testClosePopup = function() {
-  if (this._popup.isSeeable()) {
-    this._closePopup();
-  }
-}
-
-/**Toggle the visibility of the popup list.*/
-qx.Proto._togglePopup = function() {
-  this._popup.isSeeable() ? this._closePopup() : this._openPopup();
-}
-
-/*
----------------------------------------------------------------------------
-  DIMENSIONING
----------------------------------------------------------------------------
-*/
-
-/**Sizes the width of the text field component to the needed value to show any selection item.*/
-qx.Proto.sizeTextFieldToContent = function() {
-  this._calculateDimensions();
-  this._field.setWidth(this._neededTextFieldWidth);
-}
-
-/**Calculates the needed dimensions for the text field and list components*/
-qx.Proto._calculateDimensions = function() {
-  if (this._calcDimensions) {
-    // Already calculated
-    return;
-  }
-  var data = this.getSelection();
-  var cols = this.getColumnHeaders(), nCols = cols.length;
-  var columnWidths = [];
-  this._neededTextFieldWidth = 0;
-  columnWidths.length = cols.length;
-  for (var col = 0; col < cols.length; col++) {
-    columnWidths[col] = 0;
-  }
-  var withDescript = this.getShowOnTextField() == 'idAndDescription';
-  for (var row = 0, rows = Math.min(data.length, 50); row < rows; row++) {
-    var r = data[row], wi0, wi1;
-    for (col = 0; col < nCols; col++) {
-      var wi = this._getTextWidth(r[col]);
-      if (col == 0) {
-        wi0 = wi;
-      } else if (col == 1) {
-        wi1 = wi;
-      }
-      columnWidths[col] = Math.max(wi, columnWidths[col]);
-    }
-    this._neededTextFieldWidth = Math.max(this._neededTextFieldWidth,
-      wi1+(withDescript ? wi0:0));
-  }
-  if (this.getShowOnTextField() == 'idAndDescription') {
-    this._neededTextFieldWidth += this._getTextWidth(this.getIdDescriptionSeparator());
-  }
-  this._neededTextFieldWidth += 8;  /*Extra margins*/
-  var maxRows = this.getMaxVisibleRows(),
-    // Only assign room for the vertical scrollbar when needed
-    width = data.length > maxRows ? (new qx.ui.core.ScrollBar)._getScrollBarWidth():0,
-    colModel = this._list.getTableColumnModel(),
-    countVisible = 0;
-
-  // ##Only show headers if we have more than 1 column visible
-  for (col = 0; col < nCols; col++) {
-    if (colModel.isColumnVisible(col)) {
-      countVisible++;
-    }
-  }
-  var hasHeaders = countVisible > 1;
-  this._list.getPaneScroller(0).getHeader().setHeight(hasHeaders ? 'auto' : 1);
-
-  // ##Size each column
-  for (col = 0; col < nCols; col++) {
-    if (colModel.isColumnVisible(col)) {
-      var w = columnWidths[col];
-      if (hasHeaders) {
-        w = Math.max(w, this._getTextWidth(cols[col]));
-      }
-      w += 8;
-      this._list.setColumnWidth(col, w);
-      width += w;
-    }
-  }
-
-  // ##Final width and height
-  this._list.set({
-    width: width,
-    height: this._list.getRowHeight()*
-      Math.min(maxRows, (hasHeaders ? 1:0)+data.length)+2+(hasHeaders ? 2:0)
-  });
-  // This denotes dimensions are already calculated
-  this._calcDimensions = true;
-}
-
-/**Calculates the width of the given text.
- * The default font is used.
- * @return {Integer}*/
-qx.Proto._getTextWidth = function(text) {
-  var lab = new qx.ui.basic.Label(text);
-  var res = lab.getPreferredBoxWidth();
-  lab.dispose();
-  return res;
-}
-
-
-/*
----------------------------------------------------------------------------
-  SEARCHING
----------------------------------------------------------------------------
-*/
-
-/**Does this combo have the searched dialog open?*/
-qx.Proto.isSearchInProgress = function() {
-  return !this._popup.contains(this._list);
-}
-
-/**Searches the given text.  Called from the search dialog.
- * @param startIndex  {number} Start index, 0 based
- * @param txt {String} Text to find
- * @param caseSens {Boolean} Case sensivity flag.*/
-qx.Proto._search = function(startIndex, txt, caseSens) {
-  if (txt == null || !txt.length) {
-    return;
-  }
-  var row = startIndex,
-    nCols = this._model.getColumnCount(),
-    nRows = this.getSelection().length,
-    data = this._model.getData();
-  if (!caseSens) {
-    txt = txt.toLowerCase();
-  }
-  var colModel = this._list.getTableColumnModel();
-  while (true) {
-    var dataRow = data[row];
-    if (dataRow) {
-    for (var col = 0; col < nCols; col++) {
-      if (colModel.isColumnVisible(col)) {
-        var txtCol = dataRow[col];
-        if (!caseSens) {
-          txtCol = txtCol.toLowerCase();
-        }
-        if (txtCol.indexOf(txt) >= 0) {
-          this._manager.setSelectionInterval(row, row);
-          this._list.scrollCellVisible(1, row);
-          return;
-        }
-      }
-    }
-    }
-    row = (row+1)% nRows;
-    if (row == startIndex) {
-      break;
-    }
-  }
-}
-
-/**Opens a popup search dialog, useful when the combo has a lot of items.
- * This dialog is triggered by double clicking the combo, pressing F3 or Ctrl+F.*/
-qx.Proto.openSearchDialog = function() {
-  var sel = this.getSelection();
-  if (!sel || !sel.length || this.isSearchInProgress()) {
-    return;
-  }
-  this._testClosePopup();
-
-  var me = this,
-    oldSelectedIndex = this.getSelectedIndex(),
-    startIndex = oldSelectedIndex;
-
-  //###searchField
-  function search() {
-    me._search(startIndex, searchField.getComputedValue(), checkCase.isChecked());
-  }
-  var searchField = new qx.ui.form.TextField;
-  searchField.set({
-    minWidth: this._field.getWidth(),
-    width: '100%'
-  });
-  searchField.addEventListener("input", function() {
-    search();
-  });
-
-  //###checkCase
-  var checkCase = new qx.ui.form.CheckBox(this.tr("Case sensitive"));
-  checkCase.set({
-    horizontalAlign: 'center',
-    marginBottom: 4
-  });
-
-  //###vbox
-  var vbox = new qx.ui.layout.VerticalBoxLayout;
-  vbox.set({
-    spacing: 6,
-    horizontalChildrenAlign: 'center',
-    height: '100%'
-  });
-  vbox.auto();
-  vbox.add(searchField, checkCase);
-
-  //###list, we reuse the same list in the popup
-  this._calculateDimensions();
-  var border = qx.renderer.border.BorderPresets.getInstance().inset;
-  var newListSettings = {
-    /*minHeight: border.getTopWidth()+this._list.getHeight()+border.getBottomWidth(),
-    height: '1*',*/
-    height: border.getTopWidth()+this._list.getHeight()+border.getBottomWidth(),
-    width: border.getLeftWidth()+this._list.getWidth()+border.getRightWidth(),
-    border: border,
-    parent: vbox
-  };
-  // Save old list settings
-  var oldListSettings = {};
-  for (var prop in newListSettings) {
-    oldListSettings[prop] = this._list[qx.OO.getter[prop]]();
-  }
-  this._list.set(newListSettings);
-
-  //###buttons
-  var butNext = new qx.ui.form.Button('', 'icon/16/actions/edit-find.png');
-  butNext.set({
-    toolTip: new qx.ui.popup.ToolTip(this.tr("Search next occurrence"))
-  });
-  butNext.addEventListener("execute", function() {
-    startIndex = (this.getSelectedIndex()+1) % sel.length;
-    search();
-  }, this);
-
-  var butOk = new qx.ui.form.Button('', 'icon/16/actions/dialog-ok.png');
-  butOk.addEventListener('execute', function() {
-    oldSelectedIndex = null;
-    win.close();
-  }, this);
-
-  var butCancel = new qx.ui.form.Button('', 'icon/16/actions/dialog-cancel.png');
-  butCancel.addEventListener('execute', function() {
-    win.close();
-  }, this);
-
-  var butBox = new qx.ui.layout.VerticalBoxLayout;
-  butBox.auto();
-  butBox.set({
-    spacing: 10
-  });
-  butBox.add(butNext, butOk, butCancel);
-
-  //###hbox
-  var hbox = new qx.ui.layout.BoxLayout;
-  hbox.auto();
-  hbox.setPadding(10);
-  hbox.set({
-    spacing: 8,
-    minHeight: 'auto',
-    height: '100%'
-  });
-  hbox.add(vbox, butBox);
-
-  //###Window
-  var win = new qx.ui.window.Window(this.tr("Search items in list"), 'icon/16/actions/edit-find.png');
-  win.add(hbox);
-  win.positionRelativeTo(this);
-  win.set({
-    autoHide: true,
-    allowMaximize: false,
-    showMaximize: false,
-    allowMinimize: false,
-    showMinimize: false
-  });
-  win.addEventListener("appear", function() {
-    searchField.focus();
-  });
-  win.addEventListener("disappear", function() {
-    if (oldSelectedIndex != null) {
-      // Hit Cancel button
-      this.setSelectedIndex(oldSelectedIndex);
-    }
-    this._list.set(oldListSettings);
-    this.focus();
-  }, this);
-  win.addEventListener("keydown", function(e) {
-    switch (e.getKeyIdentifier()) {
-      case "Enter":
-        butOk.createDispatchEvent('execute');
-        break;
-      case "Escape":
-        butCancel.createDispatchEvent('execute');
-        break;
-      case "F3":
-        butNext.createDispatchEvent('execute');
-        break;
-      default:
-        return;
-    }
-    e.preventDefault();
-  }, this);
-  win.auto();
-  win.addToDocument();
-  win.open();
-}
-
-/*
----------------------------------------------------------------------------
-  OTHER EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onChangeSelection = function(e) {
-  this._fromSelected = true;
-
-  // only do this if we called setValue separately
-  // and not from the event "input".
-  if (!this._fromInput) {
-    var index = this.getSelectedIndex();
-    if (index >= 0) {
-      var row = this._model.getData()[index];
-    }
-    if (row || !this.getEditable()) {
-      this.setValue(row && row[0]);
-    }
-    // In case of editable, this.setValue() already calls this._field.setValue()
-    if (!this.getEditable()) {
-      var val = "";
-      if (row) {
-        val = this.getShowOnTextField() == 'description' ?
-          row[1] :
-          (row[0] != null && row[0] != '' ? row[0] + this.getIdDescriptionSeparator() + row[1]:row[1]);
-      }
-      this._field.setValue(val);
-    }
-  }
-  // reset hint
-  delete this._fromSelected;
-}
-
-qx.Proto._onpopupappear = function(e) {
-  var index = this.getSelectedIndex();
-  if (index >= 0) {
-    this._list.scrollCellVisible(0, index);
-  }
-}
-
-qx.Proto._oninput = function(e) {
-  // Hint for modifier
-  this._fromInput = true;
-  this.setValue(this._field.getComputedValue());
-  delete this._fromInput;
-}
-
-
-/*
----------------------------------------------------------------------------
-  MOUSE EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmousedown = function(e) {
-  switch(e.getTarget()) {
-    case this._field:
-      if (this.getEditable()) {
-        break;
-      }
-      // no break here
-    case this._button:
-      this._button.addState("pressed");
-      this._togglePopup();
-      // Assure we receive the mouse up event
-      this.setCapture(true);
-      break;
-  }
-}
-
-qx.Proto._onmouseup = function(e) {
-  switch(e.getTarget()) {
-    case this._field:
-      if (this.getEditable()) {
-        break;
-      }
-      // no break here
-    default:
-      this._button.removeState("pressed");
-      break;
-  }
-  this.setCapture(false);
-}
-
-qx.Proto._onmousewheel = function(e) {
-  if (!this._popup.isSeeable()) {
-    this.setSelectedIndex(Math.max(0, this.getSelectedIndex()+(e.getWheelDelta() < 0 ? -1:1)));
-  }
-}
-
-
-/*
----------------------------------------------------------------------------
-  KEY EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onkeydown = function(e) {
-  var vVisible = this._popup.isSeeable();
-
-  switch (e.getKeyIdentifier()) {
-    case "Enter":
-      if (vVisible) {
-        this._closePopup();
-        this.setFocused(true);
-      } else {
-        this._openPopup();
-      }
-      break;
-
-    case "Escape":
-      if (vVisible) {
-        this.setSelectedIndex(this._oldSelected);
-        this._closePopup();
-        this.setFocused(true);
-      }
-      break;
-
-    case "Home":
-      this.setSelectedIndex(0);
-      break;
-
-    case "End":
-      var items = this.getSelection().length;
-      if (items) {
-        this.setSelectedIndex(items-1);
-      }
-      break;
-
-    case "Down":
-      if (e.isAltPressed()) {
-        this._togglePopup();
-      }
-      break;
-
-    case "F3":
-      if (this.getAllowSearch()) {
-        this.openSearchDialog();
-      }
-      break;
-
-    case "F":
-      if (e.isCtrlPressed()) {
-        if (this.getAllowSearch()) {
-          this.openSearchDialog();
-        }
-        break;
-      }
-      return;
-
-    default:
-      if (vVisible) {
-        this._list.dispatchEvent(e);
-      }
-      return;
-  }
-  e.preventDefault();
-}
-
-
-qx.Proto._onkeypress = function(e) {
-  var vVisible = this._popup.isSeeable();
-
-  switch (e.getKeyIdentifier()) {
-    case "Up":
-      this.setSelectedIndex(Math.max(0, this.getSelectedIndex()-1));
-      break;
-
-    case "Down":
-      this.setSelectedIndex(Math.max(0, this.getSelectedIndex()+1));
-      break;
-
-    case "PageUp":
-      this.setSelectedIndex(Math.max(0, this.getSelectedIndex()-this.getPagingInterval()));
-      break;
-
-    case "PageDown":
-      this.setSelectedIndex(this.getSelectedIndex()+this.getPagingInterval());
-      break;
-
-    default:
-      if (vVisible) {
-        this._list.dispatchEvent(e);
-      }
-      return;
-  }
-  e.preventDefault();
-
-  if (!this.isEditable() && this._list.isSeeable()) {
-    this._list.dispatchEvent(e);
-  }
-
-}
-
-
-/*
----------------------------------------------------------------------------
-  FOCUS HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._visualizeBlur = function() {
-  // Force blur, even if mouseFocus is not active because we
-  // need to be sure that the previous focus rect gets removed.
-  // But this only needs to be done, if there is no new focused element.
-  if (qx.core.Client.getInstance().isMshtml()) {
-    if (this.getEnableElementFocus() && !this.getFocusRoot().getFocusedChild()) {
-      try {
-        if (this.getEditable())  {
-          this.getField().getElement().blur();
-        } else {
-          this.getElement().blur();
-        }
-      }
-      catch(ex) {};
-    }
-  } else {
-    if (this.getEnableElementFocus()) {
-      try {
-        if (this.getEditable()) {
-          this.getField().getElement().blur();
-        } else if (!this.getFocusRoot().getFocusedChild()) {
-          this.getElement().blur();
-        }
-      }
-      catch(ex) {};
-    }
-  }
-  this.removeState("focused");
-  return true;
-}
-
-qx.Proto._visualizeFocus = function() {
-  if (!qx.event.handler.FocusHandler.mouseFocus && this.getEnableElementFocus()) {
-    try {
-      if (this.getEditable()) {
-        this.getField().getElement().focus();
-        this.getField()._ontabfocus();
-      } else {
-        this.getElement().focus();
-      }
-    } catch(ex) {
-    }
-  }
-  this.addState("focused");
-  return true;
-}
-
-/*
----------------------------------------------------------------------------
-  DISPOSE
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function() {
-  if (this.getDisposed()) {
-    return;
-  }
-
-  // ************************************************************************
-  //   WIDGET MOUSE EVENTS
-  // ************************************************************************
-  this.removeEventListener("mousedown", this._onmousedown);
-  this.removeEventListener("mouseup", this._onmouseup);
-  this.removeEventListener("mousewheel", this._onmousewheel);
-
-
-  // ************************************************************************
-  //   WIDGET KEY EVENTS
-  // ************************************************************************
-  this.removeEventListener("keydown", this._onkeydown);
-  this.removeEventListener("keypress", this._onkeypress);
-
-
-  this._model = null;
-  if (this._manager) {
-    this._manager.removeEventListener('changeSelection', this._onChangeSelection);
-    this._manager = null;
-  }
-  if (this._list) {
-    this._list.dispose();
-    this._list = null;
-  }
-  if (this._popup) {
-    this._popup.removeEventListener("appear", this._onpopupappear, this);
-    this._popup.dispose();
-    this._popup = null;
-  }
-  if (this._field) {
-    if (this.getEditable()) {
-      this._field.removeEventListener("input", this._oninput, this);
-    }
-    this._field.dispose();
-    this._field = null;
-  }
-  if (this._button) {
-    this._button.dispose();
-    this._button = null;
-  }
-  return qx.ui.layout.HorizontalBoxLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/InputCheckSymbol.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/InputCheckSymbol.js
deleted file mode 100644 (file)
index 32e269e..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.form.InputCheckSymbol", qx.ui.basic.Terminator,
-function()
-{
-  qx.ui.basic.Terminator.call(this);
-
-  this.setTagName("input");
-  this.setSelectable(false);
-
-  if (qx.core.Client.getInstance().isMshtml())
-  {
-    // Take control over size of element (mshtml)
-    this.setWidth(13);
-    this.setHeight(13);
-  }
-  else if (qx.core.Client.getInstance().isGecko())
-  {
-    // Remove gecko default margin
-    this.setMargin(0);
-  }
-
-  // we need to be sure that the dom protection of this is added
-  this.forceTabIndex(1);
-  this.setTabIndex(-1);
-  this.setChecked(false);
-});
-
-qx.OO.addProperty({ name : "name", type : "string", impl : "apply" });
-qx.OO.addProperty({ name : "value", impl : "apply" });
-qx.OO.addProperty({ name : "type", impl : "apply" });
-qx.OO.addProperty({ name : "checked", type : "boolean", impl : "apply", getAlias : "isChecked" });
-
-qx.Proto._modifyApply = function(propValue, propOldValue, propData) {
-  return this.setHtmlProperty(propData.name, propValue);
-}
-
-qx.Proto.getPreferredBoxWidth = function() {
-  return 13;
-}
-
-qx.Proto.getPreferredBoxHeight = function() {
-  return 13;
-}
-
-qx.Proto.getBoxWidth = qx.Proto.getPreferredBoxWidth;
-qx.Proto.getBoxHeight = qx.Proto.getPreferredBoxHeight;
-
-qx.Proto.getInnerWidth = qx.Proto.getPreferredBoxWidth;
-qx.Proto.getInnerHeight = qx.Proto.getPreferredBoxHeight;
-
-if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.Proto._afterAppear = function()
-  {
-    qx.ui.basic.Terminator.prototype._afterAppear.call(this);
-
-    var vElement = this.getElement();
-    vElement.checked = this.getChecked();
-
-    if (!this.getEnabled()) {
-      vElement.disabled = true;
-    }
-  }
-}
-
-qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
-{
-  propValue ? this.removeHtmlAttribute("disabled") : this.setHtmlAttribute("disabled", "disabled");
-  return qx.ui.basic.Terminator.prototype._modifyEnabled.call(this, propValue, propOldValue, propData);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/List.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/List.js
deleted file mode 100644 (file)
index 23f4051..0000000
+++ /dev/null
@@ -1,385 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.form.List", qx.ui.layout.VerticalBoxLayout,
-function()
-{
-  qx.ui.layout.VerticalBoxLayout.call(this);
-
-
-  // ************************************************************************
-  //   INITILISIZE MANAGER
-  // ************************************************************************
-  this._manager = new qx.manager.selection.SelectionManager(this);
-
-
-  // ************************************************************************
-  //   BEHAVIOR
-  // ************************************************************************
-  this.setSelectable(false);
-  this.setTabIndex(1);
-
-
-  // ************************************************************************
-  //   MOUSE EVENT LISTENER
-  // ************************************************************************
-  this.addEventListener("mouseover", this._onmouseover);
-  this.addEventListener("mousedown", this._onmousedown);
-  this.addEventListener("mouseup", this._onmouseup);
-  this.addEventListener("click", this._onclick);
-  this.addEventListener("dblclick", this._ondblclick);
-
-
-  // ************************************************************************
-  //   KEY EVENT LISTENER
-  // ************************************************************************
-  this.addEventListener("keydown", this._onkeydown);
-  this.addEventListener("keypress", this._onkeypress);
-  this.addEventListener("keyinput", this._onkeyinput);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "list" });
-
-qx.OO.addProperty({ name : "enableInlineFind", type : "boolean", defaultValue : true });
-qx.OO.addProperty({ name : "markLeadingItem", type : "boolean", defaultValue : false });
-
-qx.Proto._pressedString = "";
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MANAGER BINDING
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getManager = function() {
-  return this._manager;
-}
-
-qx.Proto.getListItemTarget = function(vItem)
-{
-  while (vItem != null && vItem.getParent() != this) {
-    vItem = vItem.getParent();
-  }
-
-  return vItem;
-}
-
-qx.Proto.getSelectedItem = function() {
-  return this.getSelectedItems()[0];
-}
-
-qx.Proto.getSelectedItems = function() {
-  return this._manager.getSelectedItems();
-}
-
-
-
-/*
----------------------------------------------------------------------------
-  MOUSE EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmouseover = function(e)
-{
-  var vItem = this.getListItemTarget(e.getTarget());
-
-  if (vItem) {
-    this._manager.handleMouseOver(vItem, e);
-  }
-}
-
-qx.Proto._onmousedown = function(e)
-{
-  var vItem = this.getListItemTarget(e.getTarget());
-
-  if (vItem) {
-    this._manager.handleMouseDown(vItem, e);
-  }
-}
-
-qx.Proto._onmouseup = function(e)
-{
-  var vItem = this.getListItemTarget(e.getTarget());
-
-  if (vItem) {
-    this._manager.handleMouseUp(vItem, e);
-  }
-}
-
-qx.Proto._onclick = function(e)
-{
-  var vItem = this.getListItemTarget(e.getTarget());
-
-  if (vItem) {
-    this._manager.handleClick(vItem, e);
-  }
-}
-
-qx.Proto._ondblclick = function(e)
-{
-  var vItem = this.getListItemTarget(e.getTarget());
-
-  if (vItem) {
-    this._manager.handleDblClick(vItem, e);
-  }
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  KEY EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onkeydown = function(e)
-{
-  // Execute action on press <ENTER>
-  if (e.getKeyIdentifier() == "Enter" && !e.isAltPressed())
-  {
-    var items = this.getSelectedItems();
-    var currentItem;
-
-    for (var i=0; i<items.length; i++) {
-      items[i].createDispatchEvent("action");
-    }
-  }
-};
-
-
-qx.Proto._onkeypress = function(e)
-{
-  // Give control to selectionManager
-  this._manager.handleKeyPress(e);
-};
-
-
-qx.Proto._lastKeyPress = 0;
-
-qx.Proto._onkeyinput = function(e)
-{
-  if (!this.getEnableInlineFind()) {
-    return;
-  }
-
-  // Reset string after a second of non pressed key
-  if (((new Date).valueOf() - this._lastKeyPress) > 1000) {
-    this._pressedString = "";
-  }
-
-  // Combine keys the user pressed to a string
-  this._pressedString += String.fromCharCode(e.getCharCode());
-
-  // Find matching item
-  var matchedItem = this.findString(this._pressedString, null);
-
-  if (matchedItem)
-  {
-    var oldVal = this._manager._getChangeValue();
-
-    // Temporary disable change event
-    var oldFireChange = this._manager.getFireChange();
-    this._manager.setFireChange(false);
-
-    // Reset current selection
-    this._manager._deselectAll();
-
-    // Update manager
-    this._manager.setItemSelected(matchedItem, true);
-    this._manager.setAnchorItem(matchedItem);
-    this._manager.setLeadItem(matchedItem);
-
-    // Scroll to matched item
-    matchedItem.scrollIntoView();
-
-    // Recover event status
-    this._manager.setFireChange(oldFireChange);
-
-    // Dispatch event if there were any changes
-    if (oldFireChange && this._manager._hasChanged(oldVal)) {
-      this._manager._dispatchChange();
-    }
-  }
-
-  // Store timestamp
-  this._lastKeyPress = (new Date).valueOf();
-  e.preventDefault();
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  FIND SUPPORT
----------------------------------------------------------------------------
-*/
-
-qx.Proto._findItem = function(vUserValue, vStartIndex, vType)
-{
-  var vAllItems = this.getChildren();
-
-  // If no startIndex given try to get it by current selection
-  if (vStartIndex == null)
-  {
-    vStartIndex = vAllItems.indexOf(this.getSelectedItem());
-
-    if (vStartIndex == -1) {
-      vStartIndex = 0;
-    }
-  }
-
-  var methodName = "matches" + vType;
-
-  // Mode #1: Find all items after the startIndex
-  for (var i=vStartIndex; i<vAllItems.length; i++) {
-    if (vAllItems[i][methodName](vUserValue)) {
-      return vAllItems[i];
-    }
-  }
-
-  // Mode #2: Find all items before the startIndex
-  for (var i=0; i<vStartIndex; i++) {
-    if (vAllItems[i][methodName](vUserValue)) {
-      return vAllItems[i];
-    }
-  }
-
-  return null;
-}
-
-qx.Proto.findString = function(vText, vStartIndex) {
-  return this._findItem(vText, vStartIndex || 0, "String");
-}
-
-qx.Proto.findStringExact = function(vText, vStartIndex) {
-  return this._findItem(vText, vStartIndex || 0, "StringExact");
-}
-
-qx.Proto.findValue = function(vText, vStartIndex) {
-  return this._findItem(vText, vStartIndex || 0, "Value");
-}
-
-qx.Proto.findValueExact = function(vText, vStartIndex) {
-  return this._findItem(vText, vStartIndex || 0, "ValueExact");
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  SORT SUPPORT
----------------------------------------------------------------------------
-*/
-
-qx.Proto._sortItemsCompare = function(a, b) {
-  return a.key < b.key ? -1 : a.key == b.key ? 0 : 1;
-}
-
-qx.Proto.sortItemsByString = function(vReverse)
-{
-  var sortitems = [];
-  var items = this.getChildren();
-
-  for(var i=0, l=items.length; i<l; i++) {
-    sortitems[i] = { key : items[i].getLabel(), item : items[i] }
-  }
-
-  sortitems.sort(this._sortItemsCompare);
-  if (vReverse) {
-    sortitems.reverse();
-  }
-
-  for(var i=0; i<l; i++) {
-    this.addAt(sortitems[i].item, i);
-  }
-}
-
-qx.Proto.sortItemsByValue = function(vReverse)
-{
-  var sortitems = [];
-  var items = this.getChildren();
-
-  for(var i=0, l=items.length; i<l; i++) {
-    sortitems[i] = { key : items[i].getValue(), item : items[i] }
-  }
-
-  sortitems.sort(this._sortItemsCompare);
-  if (vReverse) {
-    sortitems.reverse();
-  }
-
-  for(var i=0; i<l; i++) {
-    this.addAt(sortitems[i].item, i);
-  }
-}
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  if (this._manager)
-  {
-    this._manager.dispose();
-    this._manager = null;
-  }
-
-  this.removeEventListener("mouseover", this._onmouseover);
-  this.removeEventListener("mousedown", this._onmousedown);
-  this.removeEventListener("mouseup", this._onmouseup);
-  this.removeEventListener("click", this._onclick);
-  this.removeEventListener("dblclick", this._ondblclick);
-  this.removeEventListener("keydown", this._onkeydown);
-  this.removeEventListener("keypress", this._onkeypress);
-  this.removeEventListener("keyinput", this._onkeyinput);
-
-  return qx.ui.layout.VerticalBoxLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ListItem.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ListItem.js
deleted file mode 100644 (file)
index 4d8bc34..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-
-************************************************************************ */
-
-/**
- * @event action {qx.event.type.Event} (Fired by {@link qx.ui.form.List})
- */
-qx.OO.defineClass("qx.ui.form.ListItem", qx.ui.basic.Atom,
-function(vText, vIcon, vValue)
-{
-  qx.ui.basic.Atom.call(this, vText, vIcon);
-
-  if (vValue != null) {
-    this.setValue(vValue);
-  }
-
-
-  // ************************************************************************
-  //   EVENT LISTENER
-  // ************************************************************************
-  this.addEventListener("dblclick", this._ondblclick);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "list-item" });
-qx.OO.addProperty({ name : "value" });
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  STATE
----------------------------------------------------------------------------
-*/
-
-qx.Proto.handleStateChange = function()
-{
-  if (this.hasState("lead"))
-  {
-    this.setStyleProperty("MozOutline", "1px dotted invert");
-    this.setStyleProperty("outline", "1px dotted invert");
-  }
-  else
-  {
-    this.removeStyleProperty("MozOutline");
-    this.setStyleProperty("outline", "0px none");
-  }
-}
-
-// Remove default outline focus border
-qx.Proto._applyStateStyleFocus = function(vStates) {};
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.matchesString = function(vText) {
-  return vText != "" && this.getLabel().toLowerCase().indexOf(vText.toLowerCase()) == 0;
-}
-
-qx.Proto.matchesStringExact = function(vText) {
-  return vText != "" && this.getLabel().toLowerCase() == String(vText).toLowerCase();
-}
-
-qx.Proto.matchesValue = function(vText) {
-  return vText != "" && this.getValue().toLowerCase().indexOf(vText.toLowerCase()) == 0;
-}
-
-qx.Proto.matchesValueExact = function(vText) {
-  return vText != "" && this.getValue().toLowerCase() == String(vText).toLowerCase();
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._ondblclick = function(e)
-{
-  var vCommand = this.getCommand();
-  if (vCommand) {
-    vCommand.execute();
-  }
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/PasswordField.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/PasswordField.js
deleted file mode 100644 (file)
index 9c0bc3b..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.form.PasswordField", qx.ui.form.TextField,
-function(vText)
-{
-  qx.ui.form.TextField.call(this, vText);
-
-  this.setHtmlProperty("type", "password");
-});
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/RadioButton.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/RadioButton.js
deleted file mode 100644 (file)
index d17bd70..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.form.RadioButton", qx.ui.form.CheckBox,
-function(vText, vValue, vName, vChecked) {
-  qx.ui.form.CheckBox.call(this, vText, vValue, vName, vChecked);
-
-  this.addEventListener("keypress", this._onkeypress);
-});
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/*!
-  The assigned qx.manager.selection.RadioManager which handles the switching between registered buttons
-*/
-qx.OO.addProperty({ name : "manager", type : "object", instance : "qx.manager.selection.RadioManager", allowNull : true });
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ICON HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto.INPUT_TYPE = "radio";
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyChecked = function(propValue, propOldValue, propData)
-{
-  if (this._iconObject) {
-    this._iconObject.setChecked(propValue);
-  }
-
-  var vManager = this.getManager();
-  if (vManager) {
-    vManager.handleItemChecked(this, propValue);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyManager = function(propValue, propOldValue, propData)
-{
-  if (propOldValue) {
-    propOldValue.remove(this);
-  }
-
-  if (propValue) {
-    propValue.add(this);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyName = function(propValue, propOldValue, propData)
-{
-  if (this._iconObject) {
-    this._iconObject.setName(propValue);
-  }
-
-  if (this.getManager()) {
-    this.getManager().setName(propValue);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyValue = function(propValue, propOldValue, propData)
-{
-  if (this.isCreated() && this._iconObject) {
-    this._iconObject.setValue(propValue);
-  }
-
-  return true;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT-HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onkeydown = function(e)
-{
-  if (e.getKeyIdentifier() == "Enter" && !e.isAltPressed()) {
-    this.setChecked(true);
-  }
-};
-
-
-qx.Proto._onkeypress = function(e)
-{
- switch(e.getKeyIdentifier())
-  {
-    case "Left":
-    case "Up":
-      qx.event.handler.FocusHandler.mouseFocus = false;
-      // we want to have a focus border when using arrows to select
-      qx.event.handler.FocusHandler.mouseFocus = false;
-
-      return this.getManager() ? this.getManager().selectPrevious(this) : true;
-
-    case "Right":
-    case "Down":
-      // we want to have a focus border when using arrows to select
-      qx.event.handler.FocusHandler.mouseFocus = false;
-
-      return this.getManager() ? this.getManager().selectNext(this) : true;
-  }
-};
-
-
-qx.Proto._onclick = function(e) {
-  this.setChecked(true);
-}
-
-qx.Proto._onkeyup = function(e)
-{
-  if(e.getKeyIdentifier() == "Space") {
-    this.setChecked(true);
-  }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if(this.getDisposed()) {
-    return;
-  }
-
-  this.removeEventListener("keypress", this._onkeypress);
-  return qx.ui.form.CheckBox.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/RepeatButton.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/RepeatButton.js
deleted file mode 100755 (executable)
index bee201c..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-
-************************************************************************ */
-
-/**
- * @event execute {qx.event.type.Event}
- */
-qx.OO.defineClass("qx.ui.form.RepeatButton", qx.ui.form.Button,
-function(vText, vIcon, vIconWidth, vIconHeight, vFlash)
-{
-  qx.ui.form.Button.call(this, vText, vIcon, vIconWidth, vIconHeight, vFlash);
-
-  this._timer = new qx.client.Timer;
-  this._timer.setInterval(this.getInterval());
-  this._timer.addEventListener("interval", this._oninterval, this);
-});
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.addProperty({ name : "interval", type : "number", defaultValue : 100 });
-qx.OO.addProperty({ name : "firstInterval", type : "number", defaultValue : 500 });
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmousedown = function(e)
-{
-  if (e.getTarget() != this || !e.isLeftButtonPressed()) {
-    return;
-  }
-
-  this._executed = false;
-
-  this._timer.setInterval(this.getFirstInterval());
-  this._timer.start();
-
-  this.removeState("abandoned");
-  this.addState("pressed");
-}
-
-qx.Proto._onmouseup = function(e)
-{
-  this.setCapture(false);
-
-  if (!this.hasState("abandoned"))
-  {
-    this.addState("over");
-
-    if (this.hasState("pressed") && !this._executed) {
-      this.execute();
-    }
-  }
-
-  this._timer.stop();
-
-  this.removeState("abandoned");
-  this.removeState("pressed");
-}
-
-qx.Proto._oninterval = function(e)
-{
-  this._timer.stop();
-  this._timer.setInterval(this.getInterval());
-  this._timer.start();
-
-  this._executed = true;
-  this.createDispatchEvent("execute");
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  if (this._timer)
-  {
-    this._timer.stop();
-    this._timer.dispose();
-    this._timer = null;
-  }
-
-  return qx.ui.form.Button.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/Spinner.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/Spinner.js
deleted file mode 100644 (file)
index 651c173..0000000
+++ /dev/null
@@ -1,694 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-#embed(qx.widgettheme/arrows/up_small.gif)
-#embed(qx.widgettheme/arrows/down_small.gif)
-
-************************************************************************ */
-
-/**
- * @event change {qx.event.type.Event}
- */
-qx.OO.defineClass("qx.ui.form.Spinner", qx.ui.layout.HorizontalBoxLayout,
-function(vMin, vValue, vMax)
-{
-  qx.ui.layout.HorizontalBoxLayout.call(this);
-
-  // ************************************************************************
-  //   BEHAVIOR
-  // ************************************************************************
-  this.setTabIndex(-1);
-
-  if (qx.core.Client.getInstance().isMshtml()) {
-    this.setStyleProperty("fontSize", "0px");
-  }
-
-
-  // ************************************************************************
-  //   MANAGER
-  // ************************************************************************
-  this._manager = new qx.type.Range();
-
-
-  // ************************************************************************
-  //   TEXTFIELD
-  // ************************************************************************
-  this._textfield = new qx.ui.form.TextField;
-  this._textfield.setAppearance("spinner-field");
-  this._textfield.setValue(String(this._manager.getValue()));
-
-  this.add(this._textfield);
-
-
-  // ************************************************************************
-  //   BUTTON LAYOUT
-  // ************************************************************************
-  this._buttonlayout = new qx.ui.layout.VerticalBoxLayout;
-  this._buttonlayout.setWidth("auto");
-  this.add(this._buttonlayout);
-
-
-  // ************************************************************************
-  //   UP-BUTTON
-  // ************************************************************************
-  this._upbutton = new qx.ui.basic.Image("widget/arrows/up_small.gif");
-  this._upbutton.setAppearance("spinner-button-up");
-  this._buttonlayout.add(this._upbutton);
-
-
-  // ************************************************************************
-  //   DOWN-BUTTON
-  // ************************************************************************
-  this._downbutton = new qx.ui.basic.Image("widget/arrows/down_small.gif");
-  this._downbutton.setAppearance("spinner-button-down");
-  this._buttonlayout.add(this._downbutton);
-
-
-  // ************************************************************************
-  //   TIMER
-  // ************************************************************************
-  this._timer = new qx.client.Timer(this.getInterval());
-
-
-  // ************************************************************************
-  //   EVENTS
-  // ************************************************************************
-  this.addEventListener("keypress", this._onkeypress, this);
-  this.addEventListener("keydown", this._onkeydown, this);
-  this.addEventListener("keyup", this._onkeyup, this);
-  this.addEventListener("mousewheel", this._onmousewheel, this);
-
-  this._textfield.addEventListener("input", this._oninput, this);
-  this._textfield.addEventListener("blur", this._onblur, this);
-  this._upbutton.addEventListener("mousedown", this._onmousedown, this);
-  this._downbutton.addEventListener("mousedown", this._onmousedown, this);
-  this._manager.addEventListener("change", this._onchange, this);
-  this._timer.addEventListener("interval", this._oninterval, this);
-
-
-  // ************************************************************************
-  //   INITIALIZATION
-  // ************************************************************************
-
-  if(vMin != null) {
-    this.setMin(vMin);
-  }
-
-  if(vMax != null) {
-    this.setMax(vMax);
-  }
-
-  if(vValue != null) {
-    this.setValue(vValue);
-  }
-});
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "spinner" });
-
-/*!
-  The amount to increment on each event (keypress or mousedown).
-*/
-qx.OO.addProperty({ name : "incrementAmount", type : "number", defaultValue : 1 });
-
-/*!
-  The amount to increment on each event (keypress or mousedown).
-*/
-qx.OO.addProperty({ name : "wheelIncrementAmount", type : "number", defaultValue : 1 });
-
-/*!
-  The amount to increment on each pageup / pagedown keypress
-*/
-qx.OO.addProperty({ name : "pageIncrementAmount", type : "number", defaultValue : 10 });
-
-/*!
-  The current value of the interval (this should be used internally only).
-*/
-qx.OO.addProperty({ name : "interval", type : "number", defaultValue : 100 });
-
-/*!
-  The first interval on event based shrink/growth of the value.
-*/
-qx.OO.addProperty({ name : "firstInterval", type : "number", defaultValue : 500 });
-
-/*!
-  This configures the minimum value for the timer interval.
-*/
-qx.OO.addProperty({ name : "minTimer", type : "number", defaultValue : 20 });
-
-/*!
-  Decrease of the timer on each interval (for the next interval) until minTimer reached.
-*/
-qx.OO.addProperty({ name : "timerDecrease", type : "number", defaultValue : 2 });
-
-/*!
-  If minTimer was reached, how much the amount of each interval should growth (in relation to the previous interval).
-*/
-qx.OO.addProperty({ name : "amountGrowth", type : "number", defaultValue : 1.01 });
-
-
-qx.Proto._modifyIncrementAmount = function(propValue, propOldValue, propData)
-{
-  this._computedIncrementAmount = propValue;
-  return true;
-};
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PREFERRED DIMENSIONS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._computePreferredInnerWidth = function() {
-  return 50;
-}
-
-qx.Proto._computePreferredInnerHeight = function() {
-  return 14;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  KEY EVENT-HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onkeypress = function(e)
-{
-  var vIdentifier = e.getKeyIdentifier();
-
-  if (vIdentifier == "Enter" && !e.isAltPressed())
-  {
-    this._checkValue(true, false, false);
-    this._textfield.selectAll();
-  }
-  else
-  {
-    switch (vIdentifier)
-    {
-      case "Up":
-      case "Down":
-
-      case "Left":
-      case "Right":
-
-      case "Shift":
-      case "Control":
-      case "Alt":
-
-      case "Escape":
-      case "Delete":
-      case "Backspace":
-
-      case "Insert":
-
-      case "Home":
-      case "End":
-
-      case "PageUp":
-      case "PageDown":
-
-      case "NumLock":
-      case "Tab":
-        break;
-
-      default:
-        if (vIdentifier >= "0" && vIdentifier <= "9") {
-          return;
-        }
-
-        e.preventDefault();
-    }
-  }
-}
-
-qx.Proto._onkeydown = function(e)
-{
-  var vIdentifier = e.getKeyIdentifier();
-
-  if (this._intervalIncrease == null)
-  {
-    switch(vIdentifier)
-    {
-      case "Up":
-      case "Down":
-        this._intervalIncrease = vIdentifier == "Up";
-        this._intervalMode = "single";
-
-        this._resetIncrements();
-        this._checkValue(true, false, false);
-
-        this._increment();
-        this._timer.startWith(this.getFirstInterval());
-
-        break;
-
-      case "PageUp":
-      case "PageDown":
-        this._intervalIncrease = vIdentifier == "PageUp";
-        this._intervalMode = "page";
-
-        this._resetIncrements();
-        this._checkValue(true, false, false);
-
-        this._pageIncrement();
-        this._timer.startWith(this.getFirstInterval());
-
-        break;
-    }
-  }
-}
-
-qx.Proto._onkeyup = function(e)
-{
-  if (this._intervalIncrease != null)
-  {
-    switch(e.getKeyIdentifier())
-    {
-      case "Up":
-      case "Down":
-      case "PageUp":
-      case "PageDown":
-        this._timer.stop();
-
-        this._intervalIncrease = null;
-        this._intervalMode = null;
-    }
-  }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MOUSE EVENT-HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmousedown = function(e)
-{
-  if (!e.isLeftButtonPressed()) {
-    return;
-  }
-
-  this._checkValue(true);
-
-  var vButton = e.getCurrentTarget();
-
-  vButton.addState("pressed");
-
-  vButton.addEventListener("mouseup", this._onmouseup, this);
-  vButton.addEventListener("mouseout", this._onmouseup, this);
-
-  this._intervalIncrease = vButton == this._upbutton;
-  this._resetIncrements();
-  this._increment();
-
-  this._textfield.selectAll();
-
-  this._timer.setInterval(this.getFirstInterval());
-  this._timer.start();
-}
-
-qx.Proto._onmouseup = function(e)
-{
-  var vButton = e.getCurrentTarget();
-
-  vButton.removeState("pressed");
-
-  vButton.removeEventListener("mouseup", this._onmouseup, this);
-  vButton.removeEventListener("mouseout", this._onmouseup, this);
-
-  this._textfield.selectAll();
-  this._textfield.setFocused(true);
-
-  this._timer.stop();
-  this._intervalIncrease = null;
-}
-
-qx.Proto._onmousewheel = function(e)
-{
-  this._manager.setValue(this._manager.getValue() + this.getWheelIncrementAmount() * e.getWheelDelta());
-  this._textfield.selectAll();
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  OTHER EVENT-HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._oninput = function(e) {
-  this._checkValue(true, true);
-}
-
-qx.Proto._onchange = function(e)
-{
-  var vValue = this._manager.getValue();
-
-  this._textfield.setValue(String(vValue));
-
-  if (vValue == this.getMin())
-  {
-    this._downbutton.removeState("pressed");
-    this._downbutton.setEnabled(false);
-    this._timer.stop();
-  }
-  else
-  {
-    this._downbutton.setEnabled(true);
-  }
-
-  if (vValue == this.getMax())
-  {
-    this._upbutton.removeState("pressed");
-    this._upbutton.setEnabled(false);
-    this._timer.stop();
-  }
-  else
-  {
-    this._upbutton.setEnabled(true);
-  }
-
-  if (this.hasEventListeners("change")) {
-    this.dispatchEvent(new qx.event.type.Event("change"), true);
-  }
-}
-
-qx.Proto._onblur = function(e) {
-  this._checkValue(false);
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MAPPING TO RANGE MANAGER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.setValue = function(nValue) {
-  this._manager.setValue(nValue);
-}
-
-qx.Proto.getValue = function() {
-  this._checkValue(true);
-  return this._manager.getValue();
-}
-
-qx.Proto.resetValue = function() {
-  return this._manager.resetValue();
-}
-
-qx.Proto.setMax = function(vMax) {
-  return this._manager.setMax(vMax);
-}
-
-qx.Proto.getMax = function() {
-  return this._manager.getMax();
-}
-
-qx.Proto.setMin = function(vMin) {
-  return this._manager.setMin(vMin);
-}
-
-qx.Proto.getMin = function() {
-  return this._manager.getMin();
-}
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  INTERVAL HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._intervalIncrease = null;
-
-qx.Proto._oninterval = function(e)
-{
-  this._timer.stop();
-  this.setInterval(Math.max(this.getMinTimer(), this.getInterval()-this.getTimerDecrease()));
-
-  if (this._intervalMode == "page")
-  {
-    this._pageIncrement();
-  }
-  else
-  {
-    if (this.getInterval() == this.getMinTimer()) {
-      this._computedIncrementAmount = this.getAmountGrowth() * this._computedIncrementAmount;
-    }
-
-    this._increment();
-  }
-
-  switch(this._intervalIncrease)
-  {
-    case true:
-      if (this.getValue() == this.getMax()) {
-        return;
-      }
-
-    case false:
-      if (this.getValue() == this.getMin()) {
-        return;
-      }
-  }
-
-  this._timer.restartWith(this.getInterval());
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITY
----------------------------------------------------------------------------
-*/
-
-qx.Proto._checkValue = function(acceptEmpty, acceptEdit)
-{
-  var el = this._textfield.getElement();
-
-  if (!el) {
-    return;
-  }
-
-  if (el.value == "")
-  {
-    if (!acceptEmpty)
-    {
-      el.value = this.resetValue();
-      this._textfield.selectAll();
-
-      return;
-    }
-  }
-  else
-  {
-    // cache working variable
-    var val = el.value;
-
-    // fix leading '0'
-    if (val.length > 1)
-    {
-      while(val.charAt(0) == "0") {
-        val = val.substr(1, val.length);
-      }
-
-      var f1 = parseInt(val) || 0;
-
-      if (f1 != el.value) {
-        el.value = f1;
-        return;
-      }
-    }
-
-    // fix for negative integer handling
-    if (val == "-" && acceptEmpty && this.getMin() < 0)
-    {
-      if (el.value != val) {
-        el.value = val;
-      }
-
-      return;
-    }
-
-    // parse the string
-    val = parseInt(val);
-
-    // main check routine
-    var doFix = true;
-    var fixedVal = this._manager._checkValue(val);
-
-    if (isNaN(fixedVal)) {
-      fixedVal = this._manager.getValue();
-    }
-
-    // handle empty string
-    if (acceptEmpty && val == "")
-    {
-      doFix = false;
-    }
-    else if (!isNaN(val))
-    {
-      // check for editmode in keypress events
-      if (acceptEdit)
-      {
-        // fix min/max values
-        if (val > fixedVal && !(val > 0 && fixedVal <= 0) && String(val).length < String(fixedVal).length)
-        {
-          doFix = false;
-        }
-        else if (val < fixedVal && !(val < 0 && fixedVal >= 0) && String(val).length < String(fixedVal).length)
-        {
-          doFix = false;
-        }
-      }
-    }
-
-    // apply value fix
-    if (doFix && el.value != fixedVal) {
-      el.value = fixedVal;
-    }
-
-    // inform manager
-    if (!acceptEdit) {
-      this._manager.setValue(fixedVal);
-    }
-  }
-}
-
-qx.Proto._increment = function() {
-  this._manager.setValue(this._manager.getValue() + ((this._intervalIncrease ? 1 : - 1) * this._computedIncrementAmount));
-}
-
-qx.Proto._pageIncrement = function() {
-  this._manager.setValue(this._manager.getValue() + ((this._intervalIncrease ? 1 : - 1) * this.getPageIncrementAmount()));
-}
-
-qx.Proto._resetIncrements = function()
-{
-  this._computedIncrementAmount = this.getIncrementAmount();
-  this.resetInterval();
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this.removeEventListener("keypress", this._onkeypress, this);
-  this.removeEventListener("keydown", this._onkeydown, this);
-  this.removeEventListener("keyup", this._onkeyup, this);
-  this.removeEventListener("mousewheel", this._onmousewheel, this);
-
-  if (this._textfield)
-  {
-    this._textfield.removeEventListener("blur", this._onblur, this);
-    this._textfield.removeEventListener("input", this._oninput, this);
-    this._textfield.dispose();
-    this._textfield = null;
-  }
-
-  if (this._buttonlayout)
-  {
-    this._buttonlayout.dispose();
-    this._buttonlayout = null;
-  }
-
-  if (this._upbutton)
-  {
-    this._upbutton.removeEventListener("mousedown", this._onmousedown, this);
-    this._upbutton.dispose();
-    this._upbutton = null;
-  }
-
-  if (this._downbutton)
-  {
-    this._downbutton.removeEventListener("mousedown", this._onmousedown, this);
-    this._downbutton.dispose();
-    this._downbutton = null;
-  }
-
-  if (this._timer)
-  {
-    this._timer.removeEventListener("interval", this._oninterval, this);
-    this._timer.stop();
-    this._timer.dispose();
-    this._timer = null;
-  }
-
-  if (this._manager)
-  {
-    this._manager.removeEventListener("change", this._onchange, this);
-    this._manager.dispose();
-    this._manager = null;
-  }
-
-  return qx.ui.layout.HorizontalBoxLayout.prototype.dispose.call(this);
-}
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/TextArea.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/TextArea.js
deleted file mode 100644 (file)
index e3ceae4..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-
-************************************************************************ */
-
-/**
- * @param vValue {String} this string is ddisplayed as the value of the TextArea.
- */
-qx.OO.defineClass("qx.ui.form.TextArea", qx.ui.form.TextField,
-function(vValue)
-{
-  qx.ui.form.TextField.call(this, vValue);
-
-  this.setTagName("textarea");
-  this.removeHtmlProperty("type");
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "text-area" });
-
-qx.OO.addProperty({ name : "wrap", type : "boolean" });
-
-if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.Proto._modifyWrap = function(propValue, propOldValue, propData) {
-    return this.setStyleProperty("whiteSpace", propValue ? "normal" : "nowrap");
-  }
-}
-else
-{
-  qx.Proto._modifyWrap = function(propValue, propOldValue, propData) {
-    return this.setHtmlProperty("wrap", propValue ? "soft" : "off");
-  }
-}
-
-qx.Proto._computePreferredInnerHeight = function() {
-  return 60;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/TextField.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/TextField.js
deleted file mode 100644 (file)
index b11eeb1..0000000
+++ /dev/null
@@ -1,540 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-#require(qx.renderer.font.FontCache)
-#after(qx.renderer.font.FontObject)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.form.TextField", qx.ui.basic.Terminator,
-function(vValue)
-{
-  // ************************************************************************
-  //   INIT
-  // ************************************************************************
-  qx.ui.basic.Terminator.call(this);
-
-  if (typeof vValue === "string") {
-    this.setValue(vValue);
-  }
-
-
-  // ************************************************************************
-  //   BEHAVIOR
-  // ************************************************************************
-  this.setTagName("input");
-  this.setHtmlProperty("type", "text");
-  this.setHtmlAttribute("autocomplete", "OFF");
-  this.setTabIndex(1);
-  this.setSelectable(true);
-
-
-  // ************************************************************************
-  //   EVENTS
-  // ************************************************************************
-  this.enableInlineEvent("input");
-
-  this.addEventListener("blur", this._onblur);
-  this.addEventListener("focus", this._onfocus);
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "text-field" });
-
-qx.OO.addProperty({ name : "value", type : "string", defaultValue : "" });
-qx.OO.addProperty({ name : "maxLength", type : "number" });
-qx.OO.addProperty({ name : "readOnly", type : "boolean" });
-
-qx.OO.addProperty({ name : "selectionStart", type : "number" });
-qx.OO.addProperty({ name : "selectionLength", type : "number" });
-qx.OO.addProperty({ name : "selectionText", type : "string" });
-
-qx.OO.addProperty({ name : "validator", type : "function" });
-
-/*!
-  The font property describes how to paint the font on the widget.
-*/
-qx.OO.addProperty({ name : "font", type : "object", instance : "qx.renderer.font.Font", convert : qx.renderer.font.FontCache, allowMultipleArguments : true });
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CLONING
----------------------------------------------------------------------------
-*/
-
-// Extend ignore list with selection properties
-qx.Proto._clonePropertyIgnoreList += ",selectionStart,selectionLength,selectionText";
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
-{
-  propValue ? this.removeHtmlAttribute("disabled") : this.setHtmlAttribute("disabled", "disabled");
-  return qx.ui.basic.Terminator.prototype._modifyEnabled.call(this, propValue, propOldValue, propData);
-}
-
-qx.Proto._modifyValue = function(propValue, propOldValue, propData)
-{
-  this._inValueProperty = true;
-  this.setHtmlProperty(propData.name, propValue == null ? "" : propValue);
-  delete this._inValueProperty;
-
-  return true;
-}
-
-qx.Proto._modifyMaxLength = function(propValue, propOldValue, propData) {
-  return propValue ? this.setHtmlProperty(propData.name, propValue) : this.removeHtmlProperty(propData.name);
-}
-
-qx.Proto._modifyReadOnly = function(propValue, propOldValue, propData) {
-  return propValue ? this.setHtmlProperty(propData.name, propData.name) : this.removeHtmlProperty(propData.name);
-}
-
-qx.Proto._modifyFont = function(propValue, propOldValue, propData)
-{
-  this._invalidatePreferredInnerDimensions();
-
-  if (propValue) {
-    propValue._applyWidget(this);
-  } else if (propOldValue) {
-    propOldValue._resetWidget(this);
-  }
-
-  return true;
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getComputedValue = function(e)
-{
-  this._visualPropertyCheck();
-  return this.getElement().value;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  VALIDATION
----------------------------------------------------------------------------
-*/
-
-qx.ui.form.TextField.createRegExpValidator = function(vRegExp)
-{
-  return function(s) {
-    return vRegExp.test(s);
-  }
-}
-
-qx.Proto.isValid = function()
-{
-  var vValidator = this.getValidator();
-  return !vValidator || vValidator(this.getValue());
-}
-
-qx.Proto.isComputedValid = function()
-{
-  var vValidator = this.getValidator();
-  return !vValidator || vValidator(this.getComputedValue());
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PREFERRED DIMENSIONS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._computePreferredInnerWidth = function() {
-  return 120;
-}
-
-qx.Proto._computePreferredInnerHeight = function() {
-  return 15;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  BROWSER QUIRKS
----------------------------------------------------------------------------
-*/
-
-if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.Proto._firstInputFixApplied = false;
-
-  qx.Proto._afterAppear = function()
-  {
-    qx.ui.basic.Terminator.prototype._afterAppear.call(this);
-
-    if (!this._firstInputFixApplied) {
-      qx.client.Timer.once(this._ieFirstInputFix, this, 1);
-    }
-  }
-
-  /*!
-    Fix IE's input event for filled text fields
-  */
-  qx.Proto._ieFirstInputFix = function()
-  {
-    this._inValueProperty = true;
-    this.getElement().value = this.getValue() === null ? "" : this.getValue();
-    this._firstInputFixApplied = true;
-    delete this._inValueProperty;
-  }
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT-HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._textOnFocus = null;
-
-qx.Proto._ontabfocus = function(e) {
-  this.selectAll();
-}
-
-qx.Proto._onfocus = function(e) {
-  this._textOnFocus = this.getComputedValue();
-}
-
-qx.Proto._onblur = function(e)
-{
-  var vValue = this.getComputedValue().toString();
-
-  if (this._textOnFocus != vValue) {
-    this.setValue(vValue);
-  }
-
-  this.setSelectionLength(0);
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CROSS-BROWSER SELECTION HANDLING
----------------------------------------------------------------------------
-*/
-
-if (qx.core.Client.getInstance().isMshtml())
-{
-  /*!
-    Microsoft Documentation:
-    http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/createrange.asp
-    http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/obj_textrange.asp
-  */
-
-  qx.Proto._getRange = function()
-  {
-    this._visualPropertyCheck();
-    return this.getElement().createTextRange();
-  }
-
-  qx.Proto._getSelectionRange = function()
-  {
-    this._visualPropertyCheck();
-    return this.getTopLevelWidget().getDocumentElement().selection.createRange();
-  }
-
-  qx.Proto.setSelectionStart = function(vStart)
-  {
-    this._visualPropertyCheck();
-
-    var vText = this.getElement().value;
-
-    // a bit hacky, special handling for line-breaks
-    var i = 0;
-    while (i<vStart)
-    {
-      // find next line break
-      i = vText.indexOf("\r\n", i);
-
-      if (i == -1) {
-        break;
-      }
-
-      vStart--;
-      i++;
-    }
-
-    var vRange = this._getRange();
-
-    vRange.collapse();
-    vRange.move("character", vStart);
-    vRange.select();
-  }
-
-  qx.Proto.getSelectionStart = function()
-  {
-    this._visualPropertyCheck();
-
-    var vSelectionRange = this._getSelectionRange();
-
-    if (!this.getElement().contains(vSelectionRange.parentElement())) {
-      return -1;
-    }
-
-    var vRange = this._getRange();
-
-    vRange.setEndPoint("EndToStart", vSelectionRange);
-    return vRange.text.length;
-  }
-
-  qx.Proto.setSelectionLength = function(vLength)
-  {
-    this._visualPropertyCheck();
-
-    var vSelectionRange = this._getSelectionRange();
-
-    if (!this.getElement().contains(vSelectionRange.parentElement())) {
-      return;
-    }
-
-    vSelectionRange.collapse();
-    vSelectionRange.moveEnd("character", vLength);
-    vSelectionRange.select();
-  }
-
-  qx.Proto.getSelectionLength = function()
-  {
-    this._visualPropertyCheck();
-
-    var vSelectionRange = this._getSelectionRange();
-
-    if (!this.getElement().contains(vSelectionRange.parentElement())) {
-      return 0;
-    }
-
-    return vSelectionRange.text.length;
-  }
-
-  qx.Proto.setSelectionText = function(vText)
-  {
-    this._visualPropertyCheck();
-
-    var vStart = this.getSelectionStart();
-    var vSelectionRange = this._getSelectionRange();
-
-    if (!this.getElement().contains(vSelectionRange.parentElement())) {
-      return;
-    }
-
-    vSelectionRange.text = vText;
-
-    // apply text to internal storage
-    this.setValue(this.getElement().value);
-
-    // recover selection (to behave the same gecko does)
-    this.setSelectionStart(vStart);
-    this.setSelectionLength(vText.length);
-
-    return true;
-  }
-
-  qx.Proto.getSelectionText = function()
-  {
-    this._visualPropertyCheck();
-
-    var vSelectionRange = this._getSelectionRange();
-
-    if (!this.getElement().contains(vSelectionRange.parentElement())) {
-      return "";
-    }
-
-    return vSelectionRange.text;
-  }
-
-  qx.Proto.selectAll = function()
-  {
-    this._visualPropertyCheck();
-
-    if (this.getValue() != null)
-    {
-      this.setSelectionStart(0);
-      this.setSelectionLength(this.getValue().length);
-    }
-
-    // to be sure we get the element selected
-    this.getElement().select();
-  }
-
-  qx.Proto.selectFromTo = function(vStart, vEnd)
-  {
-    this._visualPropertyCheck();
-
-    this.setSelectionStart(vStart);
-    this.setSelectionLength(vEnd-vStart);
-  }
-}
-else
-{
-  qx.Proto.setSelectionStart = function(vStart)
-  {
-    this._visualPropertyCheck();
-    this.getElement().selectionStart = vStart;
-  }
-
-  qx.Proto.getSelectionStart = function()
-  {
-    this._visualPropertyCheck();
-    return this.getElement().selectionStart;
-  }
-
-  qx.Proto.setSelectionLength = function(vLength)
-  {
-    this._visualPropertyCheck();
-
-    var el = this.getElement();
-    if (qx.util.Validation.isValidString(el.value)) {
-      el.selectionEnd = el.selectionStart + vLength;
-    }
-  }
-
-  qx.Proto.getSelectionLength = function()
-  {
-    this._visualPropertyCheck();
-
-    var el = this.getElement();
-    return el.selectionEnd - el.selectionStart;
-  }
-
-  qx.Proto.setSelectionText = function(vText)
-  {
-    this._visualPropertyCheck();
-
-    var el = this.getElement();
-
-    var vOldText = el.value;
-    var vStart = el.selectionStart;
-
-    var vOldTextBefore = vOldText.substr(0, vStart);
-    var vOldTextAfter = vOldText.substr(el.selectionEnd);
-
-    var vValue = el.value = vOldTextBefore + vText + vOldTextAfter;
-
-    // recover selection
-    el.selectionStart = vStart;
-    el.selectionEnd = vStart + vText.length;
-
-    // apply new value to internal cache
-    this.setValue(vValue);
-
-    return true;
-  }
-
-  qx.Proto.getSelectionText = function()
-  {
-    this._visualPropertyCheck();
-
-    return this.getElement().value.substr(this.getSelectionStart(), this.getSelectionLength());
-  }
-
-  qx.Proto.selectAll = function()
-  {
-    this._visualPropertyCheck();
-
-    this.getElement().select();
-  }
-
-  qx.Proto.selectFromTo = function(vStart, vEnd)
-  {
-    this._visualPropertyCheck();
-
-    var el = this.getElement();
-    el.selectionStart = vStart;
-    el.selectionEnd = vEnd;
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this.removeEventListener("blur", this._onblur);
-  this.removeEventListener("focus", this._onfocus);
-
-  qx.ui.basic.Terminator.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/groupbox/CheckGroupBox.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/groupbox/CheckGroupBox.js
deleted file mode 100644 (file)
index eef3014..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.groupbox.CheckGroupBox", qx.ui.groupbox.GroupBox,
-function(vLegend) {
-  qx.ui.groupbox.GroupBox.call(this, vLegend);
-});
-
-qx.Proto._createLegendObject = function()
-{
-  this._legendObject = new qx.ui.form.CheckBox;
-  this._legendObject.setAppearance("check-box-field-set-legend");
-  this._legendObject.setChecked(true);
-
-  this.add(this._legendObject);
-}
-
-qx.Proto.setIcon = qx.Proto.getIcon = null;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/groupbox/GroupBox.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/groupbox/GroupBox.js
deleted file mode 100644 (file)
index 93651d6..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.groupbox.GroupBox", qx.ui.layout.CanvasLayout,
-function(vLegend, vIcon)
-{
-  qx.ui.layout.CanvasLayout.call(this);
-
-
-  // ************************************************************************
-  //   SUB WIDGETS
-  // ************************************************************************
-  this._createFrameObject();
-  this._createLegendObject();
-
-
-  // ************************************************************************
-  //   INIT
-  // ************************************************************************
-  this.setLegend(vLegend);
-
-  if (vIcon != null) {
-    this.setIcon(vIcon);
-  }
-
-
-  // ************************************************************************
-  //   REMAPPING
-  // ************************************************************************
-  this.remapChildrenHandlingTo(this._frameObject);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "field-set" });
-
-
-
-
-/*
----------------------------------------------------------------------------
-  SUB WIDGET CREATION
----------------------------------------------------------------------------
-*/
-
-qx.Proto._createLegendObject = function()
-{
-  this._legendObject = new qx.ui.basic.Atom;
-  this._legendObject.setAppearance("field-set-legend");
-
-  this.add(this._legendObject);
-}
-
-qx.Proto._createFrameObject = function()
-{
-  this._frameObject = new qx.ui.layout.CanvasLayout;
-  this._frameObject.setAppearance("field-set-frame");
-
-  this.add(this._frameObject);
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  GETTER FOR SUB WIDGETS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getFrameObject = function() {
-  return this._frameObject;
-}
-
-qx.Proto.getLegendObject = function() {
-  return this._legendObject;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  SETTER/GETTER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.setLegend = function(vLegend) {
-  this._legendObject.setLabel(vLegend);
-}
-
-qx.Proto.getLegend = function() {
-  return this._legendObject.getLabel();
-}
-
-qx.Proto.setIcon = function(vIcon) {
-  this._legendObject.setIcon(vIcon);
-}
-
-qx.Proto.getIcon = function() {
-  this._legendObject.getIcon();
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  if (this._legendObject)
-  {
-    this._legendObject.dispose();
-    this._legendObject = null;
-  }
-
-  if (this._frameObject)
-  {
-    this._frameObject.dispose();
-    this._frameObject = null;
-  }
-
-  return qx.ui.layout.CanvasLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/groupbox/RadioGroupBox.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/groupbox/RadioGroupBox.js
deleted file mode 100644 (file)
index 0761d78..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_form)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.groupbox.RadioGroupBox", qx.ui.groupbox.GroupBox,
-function(vLegend) {
-  qx.ui.groupbox.GroupBox.call(this, vLegend);
-});
-
-qx.Proto._createLegendObject = function()
-{
-  this._legendObject = new qx.ui.form.RadioButton;
-  this._legendObject.setAppearance("radio-button-field-set-legend");
-  this._legendObject.setChecked(true);
-
-  this.add(this._legendObject);
-}
-
-qx.Proto.setIcon = qx.Proto.getIcon = null;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/layout/BoxLayout.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/layout/BoxLayout.js
deleted file mode 100644 (file)
index 728b6c5..0000000
+++ /dev/null
@@ -1,275 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_basic)
-#module(ui_layout)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.layout.BoxLayout", qx.ui.core.Parent,
-function(vOrientation)
-{
-  qx.ui.core.Parent.call(this);
-
-  // apply orientation
-  if (vOrientation != null) {
-    this.setOrientation(vOrientation);
-  }
-});
-
-qx.ui.layout.BoxLayout.STR_REVERSED = "-reversed";
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/*!
-  The orientation of the layout control. Allowed values are "horizontal" (default) and "vertical".
-*/
-qx.OO.addProperty({ name : "orientation", type : "string", possibleValues : [ "horizontal", "vertical" ], addToQueueRuntime : true });
-
-/*!
-  The spacing between childrens. Could be any positive integer value.
-*/
-qx.OO.addProperty({ name : "spacing", type : "number", defaultValue : 0, addToQueueRuntime : true, impl : "layout" });
-
-/*!
-  The horizontal align of the children. Allowed values are: "left", "center" and "right"
-*/
-qx.OO.addProperty({ name : "horizontalChildrenAlign", type : "string", defaultValue : "left", possibleValues : [ "left", "center", "right" ], impl : "layoutOrder", addToQueueRuntime : true });
-
-/*!
-  The vertical align of the children. Allowed values are: "top", "middle" and "bottom"
-*/
-qx.OO.addProperty({ name : "verticalChildrenAlign", type : "string", defaultValue : "top", possibleValues : [ "top", "middle", "bottom" ], impl : "layoutOrder", addToQueueRuntime : true });
-
-/*!
-  Should the children be layouted in reverse order?
-*/
-qx.OO.addProperty({ name : "reverseChildrenOrder", type : "boolean", defaultValue : false, impl : "layoutOrder", addToQueueRuntime : true });
-
-/*!
-  Should the widgets be stretched to the available width (orientation==vertical) or height (orientation==horizontal)?
-  This only applies if the child has not configured a own value for this axis.
-*/
-qx.OO.addProperty({ name : "stretchChildrenOrthogonalAxis", type : "boolean", defaultValue : true, addToQueueRuntime : true });
-
-/*!
-  If there are min/max values in combination with flex try to optimize placement.
-  This is more complex and produces more time for the layouter but sometimes this feature is needed.
-*/
-qx.OO.addProperty({ name : "useAdvancedFlexAllocation", type : "boolean", defaultValue : false, addToQueueRuntime : true });
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  INIT LAYOUT IMPL
----------------------------------------------------------------------------
-*/
-
-/*!
-  This creates an new instance of the layout impl this widget uses
-*/
-qx.Proto._createLayoutImpl = function() {
-  return this.getOrientation() == "vertical" ? new qx.renderer.layout.VerticalBoxLayoutImpl(this) : new qx.renderer.layout.HorizontalBoxLayoutImpl(this);
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  HELPERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._layoutHorizontal = false;
-qx.Proto._layoutVertical = false;
-qx.Proto._layoutMode = "left";
-
-qx.Proto.isHorizontal = function() {
-  return this._layoutHorizontal;
-}
-
-qx.Proto.isVertical = function() {
-  return this._layoutVertical;
-}
-
-qx.Proto.getLayoutMode = function()
-{
-  if (this._layoutMode == null) {
-    this._updateLayoutMode();
-  }
-
-  return this._layoutMode;
-}
-
-qx.Proto._updateLayoutMode = function()
-{
-  this._layoutMode = this._layoutVertical ? this.getVerticalChildrenAlign() : this.getHorizontalChildrenAlign();
-
-  if (this.getReverseChildrenOrder()) {
-    this._layoutMode += qx.ui.layout.BoxLayout.STR_REVERSED;
-  }
-}
-
-qx.Proto._invalidateLayoutMode = function() {
-  this._layoutMode = null;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyOrientation = function(propValue, propOldValue, propData)
-{
-  // update fast access variables
-  this._layoutHorizontal = propValue == "horizontal";
-  this._layoutVertical = propValue == "vertical";
-
-  // Layout Implementation
-  if (this._layoutImpl)
-  {
-    this._layoutImpl.dispose();
-    this._layoutImpl = null;
-  }
-
-  if (qx.util.Validation.isValidString(propValue)) {
-    this._layoutImpl = this._createLayoutImpl();
-  }
-
-  // call other core modifier
-  return this._modifyLayoutOrder(propValue, propOldValue, propData);
-}
-
-qx.Proto._modifyLayoutOrder = function(propValue, propOldValue, propData)
-{
-  // update layout mode
-  this._invalidateLayoutMode();
-
-  // call other core modifier
-  return this._modifyLayout(propValue, propOldValue, propData);
-}
-
-qx.Proto._modifyLayout = function(propValue, propOldValue, propData)
-{
-  // invalidate inner preferred dimensions
-  this._invalidatePreferredInnerDimensions();
-
-  // accumulated width needs to be invalidated
-  this._invalidateAccumulatedChildrenOuterWidth();
-  this._invalidateAccumulatedChildrenOuterHeight();
-
-  // make property handling happy :)
-  return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ACCUMULATED CHILDREN WIDTH/HEIGHT
---------------------------------------------------------------------------------
-
-  Needed for center/middle and right/bottom alignment
-
----------------------------------------------------------------------------
-*/
-
-qx.OO.addCachedProperty({ name : "accumulatedChildrenOuterWidth", defaultValue : null });
-qx.OO.addCachedProperty({ name : "accumulatedChildrenOuterHeight", defaultValue : null });
-
-qx.Proto._computeAccumulatedChildrenOuterWidth = function()
-{
-  var ch=this.getVisibleChildren(), chc, i=-1, sp=this.getSpacing(), s=-sp;
-
-  while(chc=ch[++i]) {
-    s += chc.getOuterWidth() + sp;
-  }
-
-  return s;
-}
-
-qx.Proto._computeAccumulatedChildrenOuterHeight = function()
-{
-  var ch=this.getVisibleChildren(), chc, i=-1, sp=this.getSpacing(), s=-sp;
-
-  while(chc=ch[++i]) {
-    s += chc.getOuterHeight() + sp;
-  }
-
-  return s;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  STRETCHING SUPPORT
----------------------------------------------------------------------------
-*/
-
-qx.Proto._recomputeChildrenStretchingX = function()
-{
-  var ch=this.getVisibleChildren(), chc, i=-1;
-
-  while(chc=ch[++i])
-  {
-    if (chc._recomputeStretchingX() && chc._recomputeBoxWidth()) {
-      chc._recomputeOuterWidth();
-    }
-  }
-}
-
-qx.Proto._recomputeChildrenStretchingY = function()
-{
-  var ch=this.getVisibleChildren(), chc, i=-1;
-
-  while(chc=ch[++i])
-  {
-    if (chc._recomputeStretchingY() && chc._recomputeBoxHeight()) {
-      chc._recomputeOuterHeight();
-    }
-  }
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/layout/CanvasLayout.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/layout/CanvasLayout.js
deleted file mode 100644 (file)
index 9b27f57..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_core)
-#module(ui_layout)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.layout.CanvasLayout", qx.ui.core.Parent,
-function() {
-  qx.ui.core.Parent.call(this);
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  INIT LAYOUT IMPL
----------------------------------------------------------------------------
-*/
-
-/*!
-  This creates an new instance of the layout impl this widget uses
-*/
-qx.Proto._createLayoutImpl = function() {
-  return new qx.renderer.layout.CanvasLayoutImpl(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/layout/DockLayout.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/layout/DockLayout.js
deleted file mode 100644 (file)
index dc208a6..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_layout)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.layout.DockLayout", qx.ui.core.Parent,
-function() {
-  qx.ui.core.Parent.call(this);
-});
-
-/*!
-  The layout mode (in which order the children should be layouted)
-*/
-qx.OO.addProperty({ name : "mode", type : "string", defaultValue : "vertical", possibleValues : [ "vertical", "horizontal", "ordered" ], addToQueueRuntime : true });
-
-/*
-  Overwrite from qx.ui.core.Widget, we do not support 'auto' and 'flex'
-*/
-qx.OO.changeProperty({ name : "width", addToQueue : true, unitDetection : "pixelPercent" });
-qx.OO.changeProperty({ name : "minWidth", defaultValue : -Infinity, addToQueue : true, unitDetection : "pixelPercent" });
-qx.OO.changeProperty({ name : "minWidth", defaultValue : -Infinity, addToQueue : true, unitDetection : "pixelPercent" });
-qx.OO.changeProperty({ name : "height", addToQueue : true, unitDetection : "pixelPercent" });
-qx.OO.changeProperty({ name : "minHeight", defaultValue : -Infinity, addToQueue : true, unitDetection : "pixelPercent" });
-qx.OO.changeProperty({ name : "minHeight", defaultValue : -Infinity, addToQueue : true, unitDetection : "pixelPercent" });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  INIT LAYOUT IMPL
----------------------------------------------------------------------------
-*/
-
-/*!
-  This creates an new instance of the layout impl this widget uses
-*/
-qx.Proto._createLayoutImpl = function() {
-  return new qx.renderer.layout.DockLayoutImpl(this);
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ENHANCED CHILDREN FEATURES
----------------------------------------------------------------------------
-*/
-
-/*!
-  Add multiple childrens and make them left aligned
-*/
-qx.Proto.addLeft = function() {
-  this._addAlignedHorizontal("left", arguments);
-}
-
-/*!
-  Add multiple childrens and make them right aligned
-*/
-qx.Proto.addRight = function() {
-  this._addAlignedHorizontal("right", arguments);
-}
-
-/*!
-  Add multiple childrens and make them top aligned
-*/
-qx.Proto.addTop = function() {
-  this._addAlignedVertical("top", arguments);
-}
-
-/*!
-  Add multiple childrens and make them bottom aligned
-*/
-qx.Proto.addBottom = function() {
-  this._addAlignedVertical("bottom", arguments);
-}
-
-qx.Proto._addAlignedVertical = function(vAlign, vArgs)
-{
-  for (var i=0, l=vArgs.length; i<l; i++) {
-    vArgs[i].setVerticalAlign(vAlign);
-  }
-
-  this.add.apply(this, vArgs);
-}
-
-qx.Proto._addAlignedHorizontal = function(vAlign, vArgs)
-{
-  for (var i=0, l=vArgs.length; i<l; i++) {
-    vArgs[i].setHorizontalAlign(vAlign);
-  }
-
-  this.add.apply(this, vArgs);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/layout/FlowLayout.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/layout/FlowLayout.js
deleted file mode 100644 (file)
index 8bf343a..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_layout)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.layout.FlowLayout", qx.ui.core.Parent,
-function() {
-  qx.ui.core.Parent.call(this);
-});
-
-/*!
-  The spacing between childrens. Could be any positive integer value.
-*/
-qx.OO.addProperty({ name : "horizontalSpacing", type : "number", defaultValue : 0, addToQueueRuntime : true, impl : "layout" });
-
-/*!
-  The spacing between childrens. Could be any positive integer value.
-*/
-qx.OO.addProperty({ name : "verticalSpacing", type : "number", defaultValue : 0, addToQueueRuntime : true, impl : "layout" });
-
-/*!
-  The horizontal align of the children. Allowed values are: "left" and "right"
-*/
-qx.OO.addProperty({ name : "horizontalChildrenAlign", type : "string", defaultValue : "left", possibleValues : [ "left", "right" ], addToQueueRuntime : true });
-
-/*!
-  The vertical align of the children. Allowed values are: "top" and "bottom"
-*/
-qx.OO.addProperty({ name : "verticalChildrenAlign", type : "string", defaultValue : "top", possibleValues : [ "top", "bottom" ], addToQueueRuntime : true });
-
-/*!
-  Should the children be layouted in reverse order?
-*/
-qx.OO.addProperty({ name : "reverseChildrenOrder", type : "boolean", defaultValue : false, addToQueueRuntime : true, impl : "layout" });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  INIT LAYOUT IMPL
----------------------------------------------------------------------------
-*/
-
-/*!
-  This creates an new instance of the layout impl this widget uses
-*/
-qx.Proto._createLayoutImpl = function() {
-  return new qx.renderer.layout.FlowLayoutImpl(this);
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DIMENSION CACHE
----------------------------------------------------------------------------
-*/
-
-qx.Proto._changeInnerWidth = function(vNew, vOld)
-{
-  qx.ui.core.Parent.prototype._changeInnerWidth.call(this, vNew, vOld);
-
-  // allow 'auto' values for height to update when the inner width changes
-  this._invalidatePreferredInnerHeight();
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyLayout = function(propValue, propOldValue, propData)
-{
-  // invalidate inner preferred dimensions
-  this._invalidatePreferredInnerDimensions();
-
-  return true;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/layout/GridLayout.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/layout/GridLayout.js
deleted file mode 100644 (file)
index e8e980a..0000000
+++ /dev/null
@@ -1,866 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_layout)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.layout.GridLayout", qx.ui.core.Parent,
-function()
-{
-  qx.ui.core.Parent.call(this);
-
-  this._columnData = [];
-  this._rowData = [];
-
-  this._spans = [];
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/*!
-  The spacing between childrens. Could be any positive integer value.
-*/
-qx.OO.addProperty({ name : "horizontalSpacing", type : "number", defaultValue : 0, addToQueueRuntime : true, impl : "layout" });
-
-/*!
-  The spacing between childrens. Could be any positive integer value.
-*/
-qx.OO.addProperty({ name : "verticalSpacing", type : "number", defaultValue : 0, addToQueueRuntime : true, impl : "layout" });
-
-/*!
-  The horizontal align of the children. Allowed values are: "left", "center" and "right"
-*/
-qx.OO.addProperty({ name : "horizontalChildrenAlign", type : "string", defaultValue : "left", possibleValues : [ "left", "center", "right" ], addToQueueRuntime : true });
-
-/*!
-  The vertical align of the children. Allowed values are: "top", "middle" and "bottom"
-*/
-qx.OO.addProperty({ name : "verticalChildrenAlign", type : "string", defaultValue : "top", possibleValues : [ "top", "middle", "bottom" ], addToQueueRuntime : true });
-
-/*!
-  Cell padding top of all cells, if not locally defined
-*/
-qx.OO.addProperty({ name : "cellPaddingTop", type : "number" });
-
-/*!
-  Cell padding right of all cells, if not locally defined
-*/
-qx.OO.addProperty({ name : "cellPaddingRight", type : "number" });
-
-/*!
-  Cell padding bottom of all cells, if not locally defined
-*/
-qx.OO.addProperty({ name : "cellPaddingBottom", type : "number" });
-
-/*!
-  Cell padding left of all cells, if not locally defined
-*/
-qx.OO.addProperty({ name : "cellPaddingLeft", type : "number" });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  INIT LAYOUT IMPL
----------------------------------------------------------------------------
-*/
-
-/*!
-  This creates an new instance of the layout impl this widget uses
-*/
-qx.Proto._createLayoutImpl = function() {
-  return new qx.renderer.layout.GridLayoutImpl(this);
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CORE FUNCTIONS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.add = function(vChild, vCol, vRow)
-{
-  vChild._col = vCol;
-  vChild._row = vRow;
-
-  if (this.isFillCell(vCol, vRow)) {
-    throw new Error("Could not insert child " + vChild + " into a fill cell: " + vCol + "x" + vRow);
-  }
-
-  qx.ui.core.Parent.prototype.add.call(this, vChild);
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyLayout = function(propValue, propOldValue, propData)
-{
-  // invalidate inner preferred dimensions
-  this._invalidatePreferredInnerDimensions();
-
-  return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  GRID SETUP
----------------------------------------------------------------------------
-*/
-
-qx.Proto._syncDataFields = function(vData, vOldLength, vNewLength)
-{
-  if (vNewLength > vOldLength)
-  {
-    for (var i=vOldLength; i<vNewLength; i++) {
-      vData[i] = {};
-    }
-  }
-  else if (vOldLength > vNewLength)
-  {
-    vData.splice(vNewLength, vOldLength - vNewLength);
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  GRID SETUP: COLUMNS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._columnCount = 0;
-
-qx.Proto.setColumnCount = function(vCount)
-{
-  this._columnCount = vCount;
-  this._syncColumnDataFields();
-}
-
-qx.Proto.getColumnCount = function() {
-  return this._columnCount;
-}
-
-qx.Proto.addColumn = function()
-{
-  this._columnCount++;
-  this._syncColumnDataFields();
-}
-
-qx.Proto.removeColumn = function()
-{
-  if (this._columnCount > 0)
-  {
-    this._columnCount--;
-    this._syncColumnDataFields();
-  }
-}
-
-qx.Proto._syncColumnDataFields = function()
-{
-  var vData = this._columnData;
-  var vOldLength = vData.length;
-  var vNewLength = this._columnCount;
-
-  this._syncDataFields(vData, vOldLength, vNewLength);
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  GRID SETUP: ROWS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._rowCount = 0;
-
-qx.Proto.setRowCount = function(vCount)
-{
-  this._rowCount = vCount;
-  this._syncRowDataFields();
-}
-
-qx.Proto.getRowCount = function() {
-  return this._rowCount;
-}
-
-qx.Proto.addRow = function()
-{
-  this._rowCount++;
-  this._syncRowDataFields();
-}
-
-qx.Proto.removeRow = function()
-{
-  if (this._rowCount > 0)
-  {
-    this._rowCount--;
-    this._syncRowDataFields();
-  }
-}
-
-qx.Proto._syncRowDataFields = function()
-{
-  var vData = this._rowData;
-  var vOldLength = vData.length;
-  var vNewLength = this._rowCount;
-
-  this._syncDataFields(vData, vOldLength, vNewLength);
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DATA HANDLING: COLUMNS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._getColumnProperty = function(vColumnIndex, vProperty)
-{
-  try
-  {
-    return this._columnData[vColumnIndex][vProperty] || null;
-  }
-  catch(ex)
-  {
-    this.error("Error while getting column property (" + vColumnIndex + "|" + vProperty + ")", ex);
-    return null;
-  }
-}
-
-qx.Proto._setupColumnProperty = function(vColumnIndex, vProperty, vValue)
-{
-  this._columnData[vColumnIndex][vProperty] = vValue;
-  this._invalidateColumnLayout();
-}
-
-qx.Proto._removeColumnProperty = function(vColumnIndex, vProperty, vValue)
-{
-  delete this._columnData[vColumnIndex][vProperty];
-  this._invalidateColumnLayout();
-}
-
-qx.Proto._invalidateColumnLayout = function()
-{
-  if (!this._initialLayoutDone || !this._isDisplayable) {
-    return;
-  }
-
-  this.forEachVisibleChild(function() {
-    this.addToQueue("width");
-  });
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DATA HANDLING: ROWS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._getRowProperty = function(vRowIndex, vProperty)
-{
-  try
-  {
-    return this._rowData[vRowIndex][vProperty] || null;
-  }
-  catch(ex)
-  {
-    this.error("Error while getting row property (" + vRowIndex + "|" + vProperty + ")", ex);
-    return null;
-  }
-}
-
-qx.Proto._setupRowProperty = function(vRowIndex, vProperty, vValue)
-{
-  this._rowData[vRowIndex][vProperty] = vValue;
-  this._invalidateRowLayout();
-}
-
-qx.Proto._removeRowProperty = function(vRowIndex, vProperty, vValue)
-{
-  delete this._rowData[vRowIndex][vProperty];
-  this._invalidateRowLayout();
-}
-
-qx.Proto._invalidateRowLayout = function()
-{
-  if (!this._initialLayoutDone || !this._isDisplayable) {
-    return;
-  }
-
-  this.forEachVisibleChild(function() {
-    this.addToQueue("height");
-  });
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES: CELL DIMENSIONS
----------------------------------------------------------------------------
-*/
-
-// SETTER
-
-qx.Proto.setColumnWidth = function(vIndex, vValue)
-{
-  this._setupColumnProperty(vIndex, "widthValue", vValue);
-
-  var vType = qx.ui.core.Parent.prototype._evalUnitsPixelPercentAutoFlex(vValue);
-
-  this._setupColumnProperty(vIndex, "widthType", vType);
-
-  var vParsed, vComputed;
-
-  switch(vType)
-  {
-    case qx.ui.core.Widget.TYPE_PIXEL:
-      vParsed = vComputed = Math.round(vValue);
-      break;
-
-    case qx.ui.core.Widget.TYPE_PERCENT:
-    case qx.ui.core.Widget.TYPE_FLEX:
-      vParsed = parseFloat(vValue);
-      vComputed = null;
-      break;
-
-    case qx.ui.core.Widget.TYPE_AUTO:
-      vParsed = vComputed = null;
-      break;
-
-    default:
-      vParsed = vComputed = null;
-  }
-
-  this._setupColumnProperty(vIndex, "widthParsed", vParsed);
-  this._setupColumnProperty(vIndex, "widthComputed", vComputed);
-}
-
-qx.Proto.setRowHeight = function(vIndex, vValue)
-{
-  this._setupRowProperty(vIndex, "heightValue", vValue);
-
-  var vType = qx.ui.core.Widget.prototype._evalUnitsPixelPercentAutoFlex(vValue);
-  this._setupRowProperty(vIndex, "heightType", vType);
-
-  var vParsed, vComputed;
-
-  switch(vType)
-  {
-    case qx.ui.core.Widget.TYPE_PIXEL:
-      vParsed = vComputed = Math.round(vValue);
-      break;
-
-    case qx.ui.core.Widget.TYPE_PERCENT:
-    case qx.ui.core.Widget.TYPE_FLEX:
-      vParsed = parseFloat(vValue);
-      vComputed = null;
-      break;
-
-    case qx.ui.core.Widget.TYPE_AUTO:
-      vParsed = vComputed = null;
-      break;
-
-    default:
-      vParsed = vComputed = null;
-  }
-
-  this._setupRowProperty(vIndex, "heightParsed", vParsed);
-  this._setupRowProperty(vIndex, "heightComputed", vComputed);
-}
-
-
-
-// GETTER: BOX
-
-qx.Proto.getColumnBoxWidth = function(vIndex)
-{
-  var vComputed = this._getColumnProperty(vIndex, "widthComputed");
-
-  if (vComputed != null) {
-    return vComputed;
-  }
-
-  var vType = this._getColumnProperty(vIndex, "widthType");
-  var vParsed = this._getColumnProperty(vIndex, "widthParsed");
-  var vComputed = null;
-
-  switch(vType)
-  {
-    case qx.ui.core.Widget.TYPE_PIXEL:
-      vComputed = Math.max(0, vParsed);
-      break;
-
-    case qx.ui.core.Widget.TYPE_PERCENT:
-      vComputed = this.getInnerWidth() * Math.max(0, vParsed) * 0.01;
-      break;
-
-    case qx.ui.core.Widget.TYPE_AUTO:
-      // TODO
-      vComputed = null;
-      break;
-
-    case qx.ui.core.Widget.TYPE_FLEX:
-      // TODO
-      vComputed = null;
-      break;
-  }
-
-  this._setupColumnProperty(vIndex, "widthComputed", vComputed);
-  return vComputed;
-}
-
-qx.Proto.getRowBoxHeight = function(vIndex)
-{
-  var vComputed = this._getRowProperty(vIndex, "heightComputed");
-
-  if (vComputed != null) {
-    return vComputed;
-  }
-
-  var vType = this._getRowProperty(vIndex, "heightType");
-  var vParsed = this._getRowProperty(vIndex, "heightParsed");
-  var vComputed = null;
-
-  switch(vType)
-  {
-    case qx.ui.core.Widget.TYPE_PIXEL:
-      vComputed = Math.max(0, vParsed);
-      break;
-
-    case qx.ui.core.Widget.TYPE_PERCENT:
-      vComputed = this.getInnerHeight() * Math.max(0, vParsed) * 0.01;
-      break;
-
-    case qx.ui.core.Widget.TYPE_AUTO:
-      // TODO
-      vComputed = null;
-      break;
-
-    case qx.ui.core.Widget.TYPE_FLEX:
-      // TODO
-      vComputed = null;
-      break;
-  }
-
-  this._setupRowProperty(vIndex, "heightComputed", vComputed);
-  return vComputed;
-}
-
-
-// GETTER: PADDING
-
-qx.Proto.getComputedCellPaddingLeft = function(vCol, vRow) {
-  return this.getColumnPaddingLeft(vCol) || this.getRowPaddingLeft(vRow) || this.getCellPaddingLeft() || 0;
-}
-
-qx.Proto.getComputedCellPaddingRight = function(vCol, vRow) {
-  return this.getColumnPaddingRight(vCol) || this.getRowPaddingRight(vRow) || this.getCellPaddingRight() || 0;
-}
-
-qx.Proto.getComputedCellPaddingTop = function(vCol, vRow) {
-  return this.getRowPaddingTop(vRow) || this.getColumnPaddingTop(vCol) || this.getCellPaddingTop() || 0;
-}
-
-qx.Proto.getComputedCellPaddingBottom = function(vCol, vRow) {
-  return this.getRowPaddingBottom(vRow) || this.getColumnPaddingBottom(vCol) || this.getCellPaddingBottom() || 0;
-}
-
-
-// GETTER: INNER
-
-qx.Proto.getColumnInnerWidth = function(vCol, vRow) {
-  return this.getColumnBoxWidth(vCol) - this.getComputedCellPaddingLeft(vCol, vRow) - this.getComputedCellPaddingRight(vCol, vRow);
-}
-
-qx.Proto.getRowInnerHeight = function(vCol, vRow) {
-  return this.getRowBoxHeight(vRow) - this.getComputedCellPaddingTop(vCol, vRow) - this.getComputedCellPaddingBottom(vCol, vRow);
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES: CELL ALIGNMENT
----------------------------------------------------------------------------
-*/
-
-// SETTER
-
-qx.Proto.setColumnHorizontalAlignment = function(vIndex, vValue) {
-  this._setupColumnProperty(vIndex, "horizontalAlignment", vValue);
-}
-
-qx.Proto.setColumnVerticalAlignment = function(vIndex, vValue) {
-  this._setupColumnProperty(vIndex, "verticalAlignment", vValue);
-}
-
-qx.Proto.setRowHorizontalAlignment = function(vIndex, vValue) {
-  this._setupRowProperty(vIndex, "horizontalAlignment", vValue);
-}
-
-qx.Proto.setRowVerticalAlignment = function(vIndex, vValue) {
-  this._setupRowProperty(vIndex, "verticalAlignment", vValue);
-}
-
-
-
-// GETTER
-
-qx.Proto.getColumnHorizontalAlignment = function(vIndex) {
-  return this._getColumnProperty(vIndex, "horizontalAlignment");
-}
-
-qx.Proto.getColumnVerticalAlignment = function(vIndex) {
-  return this._getColumnProperty(vIndex, "verticalAlignment");
-}
-
-qx.Proto.getRowHorizontalAlignment = function(vIndex) {
-  return this._getRowProperty(vIndex, "horizontalAlignment");
-}
-
-qx.Proto.getRowVerticalAlignment = function(vIndex) {
-  return this._getRowProperty(vIndex, "verticalAlignment");
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES: CELL PADDING
----------------------------------------------------------------------------
-*/
-
-// SETTER
-
-qx.Proto.setColumnPaddingTop = function(vIndex, vValue) {
-  this._setupColumnProperty(vIndex, "paddingTop", vValue);
-}
-
-qx.Proto.setColumnPaddingRight = function(vIndex, vValue) {
-  this._setupColumnProperty(vIndex, "paddingRight", vValue);
-}
-
-qx.Proto.setColumnPaddingBottom = function(vIndex, vValue) {
-  this._setupColumnProperty(vIndex, "paddingBottom", vValue);
-}
-
-qx.Proto.setColumnPaddingLeft = function(vIndex, vValue) {
-  this._setupColumnProperty(vIndex, "paddingLeft", vValue);
-}
-
-qx.Proto.setRowPaddingTop = function(vIndex, vValue) {
-  this._setupRowProperty(vIndex, "paddingTop", vValue);
-}
-
-qx.Proto.setRowPaddingRight = function(vIndex, vValue) {
-  this._setupRowProperty(vIndex, "paddingRight", vValue);
-}
-
-qx.Proto.setRowPaddingBottom = function(vIndex, vValue) {
-  this._setupRowProperty(vIndex, "paddingBottom", vValue);
-}
-
-qx.Proto.setRowPaddingLeft = function(vIndex, vValue) {
-  this._setupRowProperty(vIndex, "paddingLeft", vValue);
-}
-
-
-
-// GETTER
-
-qx.Proto.getColumnPaddingTop = function(vIndex) {
-  return this._getColumnProperty(vIndex, "paddingTop");
-}
-
-qx.Proto.getColumnPaddingRight = function(vIndex) {
-  return this._getColumnProperty(vIndex, "paddingRight");
-}
-
-qx.Proto.getColumnPaddingBottom = function(vIndex) {
-  return this._getColumnProperty(vIndex, "paddingBottom");
-}
-
-qx.Proto.getColumnPaddingLeft = function(vIndex) {
-  return this._getColumnProperty(vIndex, "paddingLeft");
-}
-
-qx.Proto.getRowPaddingTop = function(vIndex) {
-  return this._getRowProperty(vIndex, "paddingTop");
-}
-
-qx.Proto.getRowPaddingRight = function(vIndex) {
-  return this._getRowProperty(vIndex, "paddingRight");
-}
-
-qx.Proto.getRowPaddingBottom = function(vIndex) {
-  return this._getRowProperty(vIndex, "paddingBottom");
-}
-
-qx.Proto.getRowPaddingLeft = function(vIndex) {
-  return this._getRowProperty(vIndex, "paddingLeft");
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DIMENSION CACHE
----------------------------------------------------------------------------
-*/
-
-qx.Proto._changeInnerWidth = function(vNew, vOld)
-{
-  for (var i=0, l=this.getColumnCount(); i<l; i++) {
-    if (this._getColumnProperty(i, "widthType") == qx.ui.core.Widget.TYPE_PERCENT) {
-      this._setupColumnProperty(i, "widthComputed", null);
-    }
-  }
-
-  qx.ui.core.Parent.prototype._changeInnerWidth.call(this, vNew, vOld);
-}
-
-qx.Proto._changeInnerHeight = function(vNew, vOld)
-{
-  for (var i=0, l=this.getRowCount(); i<l; i++) {
-    if (this._getRowProperty(i, "heightType") == qx.ui.core.Widget.TYPE_PERCENT) {
-      this._setupRowProperty(i, "heightComputed", null);
-    }
-  }
-
-  qx.ui.core.Parent.prototype._changeInnerHeight.call(this, vNew, vOld);
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DIMENSION CACHE
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getInnerWidthForChild = function(vChild) {
-  return this._getColumnProperty(vChild._col, "widthComputed");
-}
-
-qx.Proto.getInnerHeightForChild = function(vChild) {
-  return this._getRowProperty(vChild._row, "heightComputed");
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  SPAN CELLS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.mergeCells = function(vStartCol, vStartRow, vColLength, vRowLength)
-{
-  var vSpans = this._spans;
-  var vLength = vSpans.length;
-
-  // Find end cols/rows
-  var vEndCol = vStartCol + vColLength - 1;
-  var vEndRow = vStartRow + vRowLength - 1;
-
-  if (this._collidesWithSpans(vStartCol, vStartRow, vEndCol, vEndRow))
-  {
-    this.debug("Span collision detected!");
-
-    // Send out warning
-    return false;
-  }
-
-  // Finally store new span entry
-  vSpans.push({ startCol : vStartCol, startRow : vStartRow, endCol : vEndCol, endRow : vEndRow, colLength : vColLength, rowLength : vRowLength });
-
-  // Send out ok
-  return true;
-}
-
-qx.Proto.hasSpans = function() {
-  return this._spans.length > 0;
-}
-
-qx.Proto.getSpanEntry = function(vCol, vRow)
-{
-  for (var i=0, s=this._spans, l=s.length, c; i<l; i++)
-  {
-    c = s[i];
-
-    if (vCol >= c.startCol && vCol <= c.endCol && vRow >= c.startRow && vRow <= c.endRow) {
-      return c;
-    }
-  }
-
-  return null;
-}
-
-qx.Proto.isSpanStart = function(vCol, vRow)
-{
-  for (var i=0, s=this._spans, l=s.length, c; i<l; i++)
-  {
-    c = s[i];
-
-    if (c.startCol == vCol && c.startRow == vRow) {
-      return true;
-    }
-  }
-
-  return false;
-}
-
-qx.Proto.isSpanCell = function(vCol, vRow)
-{
-  for (var i=0, s=this._spans, l=s.length, c; i<l; i++)
-  {
-    c = s[i];
-
-    if (vCol >= c.startCol && vCol <= c.endCol && vRow >= c.startRow && vRow <= c.endRow) {
-      return true;
-    }
-  }
-
-  return false;
-}
-
-qx.Proto.isFillCell = function(vCol, vRow)
-{
-  for (var i=0, s=this._spans, l=s.length, c; i<l; i++)
-  {
-    c = s[i];
-
-    if (vCol >= c.startCol && vCol <= c.endCol && vRow >= c.startRow && vRow <= c.endRow && (vCol > c.startCol || vRow > c.startRow)) {
-      return true;
-    }
-  }
-
-  return false;
-}
-
-qx.Proto._collidesWithSpans = function(vStartCol, vStartRow, vEndCol, vEndRow)
-{
-  for (var i=0, s=this._spans, l=s.length, c; i<l; i++)
-  {
-    c = s[i];
-
-    if (vEndCol >= c.startCol && vStartCol <= c.endCol && vEndRow >= c.startRow && vStartRow <= c.endRow ) {
-      return true;
-    }
-  }
-
-  return false;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-
-  delete this._columnData;
-  delete this._rowData;
-
-  delete this._spans;
-
-  return qx.ui.core.Parent.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/layout/HorizontalBoxLayout.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/layout/HorizontalBoxLayout.js
deleted file mode 100644 (file)
index 637d9ea..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_basic)
-#module(ui_layout)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.layout.HorizontalBoxLayout", qx.ui.layout.BoxLayout,
-function() {
-  qx.ui.layout.BoxLayout.call(this, "horizontal");
-});
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/layout/VerticalBoxLayout.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/layout/VerticalBoxLayout.js
deleted file mode 100644 (file)
index 8135e9c..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_basic)
-#module(ui_layout)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.layout.VerticalBoxLayout", qx.ui.layout.BoxLayout,
-function() {
-  qx.ui.layout.BoxLayout.call(this, "vertical");
-});
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellHtml.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellHtml.js
deleted file mode 100644 (file)
index 53286a6..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_listview)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.listview.ContentCellHtml", qx.ui.embed.HtmlEmbed,
-function(vHtml)
-{
-  qx.ui.embed.HtmlEmbed.call(this, vHtml);
-
-  this.setSelectable(false);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "list-view-content-cell-html" });
-
-qx.ui.listview.ContentCellHtml.empty = {
-  html : ""
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellIconHtml.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellIconHtml.js
deleted file mode 100644 (file)
index 7cf839c..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_listview)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.listview.ContentCellIconHtml", qx.ui.embed.IconHtmlEmbed,
-function(vHtml, vIcon, vIconWidth, vIconHeight)
-{
-  qx.ui.embed.IconHtmlEmbed.call(this, vHtml, vIcon, vIconWidth, vIconHeight);
-
-  this.setSelectable(false);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "list-view-content-cell-icon-html" });
-
-qx.ui.listview.ContentCellIconHtml.empty =
-{
-  icon : "",
-  html : ""
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellImage.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellImage.js
deleted file mode 100644 (file)
index de9672c..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_listview)
-#embed(qx.static/image/blank.gif)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.listview.ContentCellImage", qx.ui.basic.Image,
-function(vSource, vWidth, vHeight) {
-  qx.ui.basic.Image.call(this, vSource, vWidth, vHeight);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "list-view-content-cell-image" });
-
-qx.ui.listview.ContentCellImage.empty = {
-  source : "static/image/blank.gif"
-}
-
-
-
-/*
----------------------------------------------------------------------------
-  CUSTOM SETTER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.setSource = function(vSource)
-{
-  if (this._initialLayoutDone)
-  {
-    return this._updateContent(qx.manager.object.AliasManager.getInstance().resolvePath(vSource == "" ? "static/image/blank.gif" : vSource));
-  }
-  else
-  {
-    return qx.ui.basic.Image.prototype.setSource.call(this, vSource);
-  }
-}
-
-// Omit dimension setup in list-view
-qx.Proto._postApplyDimensions = qx.lang.Function.returnTrue;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellLink.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellLink.js
deleted file mode 100644 (file)
index 3931cb3..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_listview)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.listview.ContentCellLink", qx.ui.embed.LinkEmbed,
-function(vHtml)
-{
-  qx.ui.embed.LinkEmbed.call(this, vHtml);
-
-  // selectable = false will break links in gecko based browsers
-  this.setSelectable(true);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "list-view-content-cell-link" });
-
-qx.ui.listview.ContentCellLink.empty =
-{
-  html : "",
-  uri : "#"
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellText.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/ContentCellText.js
deleted file mode 100644 (file)
index d77abf7..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_listview)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.listview.ContentCellText", qx.ui.embed.TextEmbed,
-function(vText)
-{
-  qx.ui.embed.TextEmbed.call(this, vText);
-
-  this.setStyleProperty("whiteSpace", "nowrap");
-  this.setStyleProperty("textOverflow", "ellipsis");
-
-  this.setSelectable(false);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "list-view-content-cell-text" });
-
-qx.ui.listview.ContentCellText.empty = {
-  text : ""
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/Header.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/Header.js
deleted file mode 100644 (file)
index 73824e5..0000000
+++ /dev/null
@@ -1,296 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_listview)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.listview.Header", qx.ui.layout.HorizontalBoxLayout,
-function(vColumns)
-{
-  qx.ui.layout.HorizontalBoxLayout.call(this);
-
-  // This fixes the innerWidth calculation difference between the grid(pane) and the head.
-  this.setPaddingRight(qx.ui.core.Widget.SCROLLBAR_SIZE);
-
-
-  // ************************************************************************
-  //   STORE REFERENCE TO CONFIG ENTRY
-  // ************************************************************************
-  this._columns = vColumns;
-
-
-  // ************************************************************************
-  //   CREATE HEADER CELLS
-  // ************************************************************************
-  var vHeadCell, vHeadSeparator;
-
-  for (var vCol in vColumns)
-  {
-    vHeadCell = new qx.ui.listview.HeaderCell(vColumns[vCol], vCol);
-    vHeadSeparator = new qx.ui.listview.HeaderSeparator;
-
-    this.add(vHeadCell, vHeadSeparator);
-
-    if (vColumns[vCol].align) {
-      vHeadCell.setHorizontalChildrenAlign(vColumns[vCol].align);
-
-      if (vColumns[vCol].align == "right") {
-        vHeadCell.setReverseChildrenOrder(true);
-      }
-    }
-
-    // store some additional data
-    vColumns[vCol].contentClass = qx.OO.classes["qx.ui.listview.ContentCell" + qx.lang.String.toFirstUp(vColumns[vCol].type || "text")];
-    vColumns[vCol].headerCell = vHeadCell;
-  }
-
-
-  // ************************************************************************
-  //   ADD EVENT LISTENERS
-  // ************************************************************************
-  this.addEventListener("mousemove", this._onmousemove);
-  this.addEventListener("mousedown", this._onmousedown);
-  this.addEventListener("mouseup", this._onmouseup);
-  this.addEventListener("mouseout", this._onmouseout);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "list-view-header" });
-
-
-
-/*
----------------------------------------------------------------------------
-  RESIZE SYNC
----------------------------------------------------------------------------
-*/
-
-qx.Proto._syncColumnWidth = function(vWidth)
-{
-  var vChildren = this.getChildren();
-  var vColumn = Math.ceil(vChildren.indexOf(this._resizeCell) / 2);
-
-  this.getParent().getPane().setColumnWidth(vColumn, vWidth);
-}
-
-qx.Proto._syncResizeLine = function()
-{
-  qx.ui.core.Widget.flushGlobalQueues();
-
-  var vParent = this.getParent();
-  var vLine = vParent.getResizeLine();
-  var vLeft = qx.html.Location.getPageBoxLeft(this._resizeSeparator.getElement()) - qx.html.Location.getPageInnerLeft(this.getElement());
-  var vTop = qx.html.Dimension.getBoxHeight(vParent.getHeader().getElement());
-  var vHeight = qx.html.Dimension.getBoxHeight(vParent.getElement()) - vTop;
-
-  vLine._applyRuntimeTop(vTop);
-  vLine._applyRuntimeHeight(vHeight);
-  vLine._applyRuntimeLeft(vLeft);
-
-  vLine.removeStyleProperty("visibility");
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._mshtml = qx.core.Client.getInstance().isMshtml();
-
-qx.Proto._onmousemove = function(e)
-{
-  if (!this.getParent().getResizable()) {
-    return;
-  }
-
-  if (this._resizingActive)
-  {
-    // Slow down mshtml a bit
-    if (this._mshtml)
-    {
-      if ((new Date).valueOf() - this._last < 50) {
-        return;
-      }
-
-      this._last = (new Date).valueOf();
-    }
-
-    var vNewLeft = e.getPageX();
-    var vSizeDiff = vNewLeft - this._resizeStart;
-    var vCell = this._resizeCell;
-
-    vCell.setWidth(Math.max(4, vCell.getWidth() + vSizeDiff));
-    this._resizeStart = vNewLeft;
-
-    if (this.getParent().getLiveResize())
-    {
-      this._syncColumnWidth(vCell._computeBoxWidth());
-    }
-    else
-    {
-      this._syncResizeLine();
-    }
-  }
-  else
-  {
-    var vTarget = e.getTarget();
-    var vEventPos = e.getPageX();
-    var vTargetPosLeft = qx.html.Location.getPageBoxLeft(vTarget.getElement());
-    var vTargetPosRight = vTargetPosLeft + qx.html.Dimension.getBoxWidth(vTarget.getElement());
-
-    var vResizeCursor = false;
-    var vResizeSeparator = null;
-
-    if (vTarget instanceof qx.ui.listview.HeaderSeparator)
-    {
-      vResizeCursor = true;
-      vResizeSeparator = vTarget;
-    }
-    else if ((vEventPos - vTargetPosLeft) <= 10)
-    {
-      // Ignore first column
-      if (!vTarget.isFirstChild())
-      {
-        vResizeCursor = true;
-        vResizeSeparator = vTarget.getPreviousSibling();
-      }
-    }
-    else if ((vTargetPosRight - vEventPos) <= 10)
-    {
-      vResizeCursor = true;
-      vResizeSeparator = vTarget.getNextSibling();
-    }
-
-    if (!(vResizeSeparator instanceof qx.ui.listview.HeaderSeparator))
-    {
-      vResizeSeparator = vTarget = vResizeCursor = null;
-    }
-
-    // Check if child is marked as resizable
-    else if (vResizeSeparator)
-    {
-      var vResizeCell = vResizeSeparator.getPreviousSibling();
-
-      if (vResizeCell && (vResizeCell._computedWidthTypePercent || vResizeCell._config.resizable == false)) {
-        vResizeSeparator = vTarget = vResizeCursor = null;
-      }
-    }
-
-    // Apply global cursor
-    this.getTopLevelWidget().setGlobalCursor(vResizeCursor ? "e-resize" : null);
-
-    // Store data for mousedown
-    this._resizeSeparator = vResizeSeparator;
-    this._resizeTarget = vTarget;
-  }
-}
-
-qx.Proto._onmousedown = function(e)
-{
-  if (!this._resizeSeparator) {
-    return;
-  }
-
-  this._resizingActive = true;
-  this._resizeStart = e.getPageX();
-  this._resizeCell = this._resizeSeparator.getPreviousSibling();
-
-  if (!this.getParent().getLiveResize()) {
-    this._syncResizeLine();
-  }
-
-  this.setCapture(true);
-}
-
-qx.Proto._onmouseup = function(e)
-{
-  if (!this._resizingActive) {
-    return;
-  }
-
-  this._syncColumnWidth(this._resizeCell.getBoxWidth());
-
-  this.setCapture(false);
-  this.getTopLevelWidget().setGlobalCursor(null);
-
-  // Remove hover effect
-  this._resizeTarget.removeState("over");
-
-  // Hide resize line
-  this.getParent().getResizeLine().setStyleProperty("visibility", "hidden");
-
-  this._cleanupResizing();
-}
-
-qx.Proto._onmouseout = function(e)
-{
-  if (!this.getCapture()) {
-    this.getTopLevelWidget().setGlobalCursor(null);
-  }
-}
-
-qx.Proto._cleanupResizing = function()
-{
-  delete this._resizingActive;
-
-  delete this._resizeSeparator;
-  delete this._resizeTarget;
-  delete this._resizeStart;
-  delete this._resizeCell;
-}
-
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this._cleanupResizing();
-
-  this.removeEventListener("mousemove", this._onmousemove);
-  this.removeEventListener("mousedown", this._onmousedown);
-  this.removeEventListener("mouseup", this._onmouseup);
-  this.removeEventListener("mouseout", this._onmouseout);
-
-  this._columns = null;
-
-  return qx.ui.layout.HorizontalBoxLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/HeaderCell.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/HeaderCell.js
deleted file mode 100644 (file)
index 3d0e21c..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_listview)
-#embed(qx.widgettheme/arrows/up.gif)
-#embed(qx.widgettheme/arrows/down.gif)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.listview.HeaderCell", qx.ui.basic.Atom,
-function(vConfig, vId)
-{
-  qx.ui.basic.Atom.call(this, vConfig.label, vConfig.icon, vConfig.iconWidth, vConfig.iconHeight, vConfig.flash);
-
-  // Text Overflow
-  this.setStyleProperty("textOverflow", "ellipsis");
-
-
-  // ************************************************************************
-  //   STORE REFERENCE TO CONFIG ENTRY
-  // ************************************************************************
-  this._config = vConfig;
-  this._id = vId;
-
-
-  // ************************************************************************
-  //   ARGUMENTS
-  // ************************************************************************
-  this.setWidth(typeof vConfig.width === "undefined" ? "auto" : vConfig.width);
-
-  if (vConfig.minWidth != null) {
-    this.setMinWidth(vConfig.minWidth);
-  }
-
-  if (vConfig.maxWidth != null) {
-    this.setMaxWidth(vConfig.maxWidth);
-  }
-
-
-  // ************************************************************************
-  //   ADDITIONAL CHILDREN
-  // ************************************************************************
-
-  // Re-Enable flex support
-  this.getLayoutImpl().setEnableFlexSupport(true);
-
-  this._spacer = new qx.ui.basic.HorizontalSpacer;
-
-  this._arrowup = new qx.ui.basic.Image("widget/arrows/up.gif");
-  this._arrowup.setVerticalAlign("middle");
-  this._arrowup.setDisplay(false);
-
-  this._arrowdown = new qx.ui.basic.Image("widget/arrows/down.gif");
-  this._arrowdown.setVerticalAlign("middle");
-  this._arrowdown.setDisplay(false);
-
-  this.add(this._spacer, this._arrowup, this._arrowdown);
-
-
-  // ************************************************************************
-  //   EVENTS
-  // ************************************************************************
-
-  this.addEventListener("mouseup", this._onmouseup);
-  this.addEventListener("mouseover", this._onmouseover);
-  this.addEventListener("mouseout", this._onmouseout);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "list-view-header-cell" });
-qx.OO.addProperty({ name : "sortOrder", type : "string", allowNull : true, possibleValues : [ "ascending", "descending" ] });
-
-qx.Class.C_SORT_ASCENDING = "ascending";
-qx.Class.C_SORT_DESCENDING = "descending";
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getView = function() {
-  return this.getParent().getParent();
-}
-
-qx.Proto.getNextSortOrder = function()
-{
-  var vCurrentSortOrder = this.getSortOrder();
-
-  switch(vCurrentSortOrder)
-  {
-    case qx.ui.listview.HeaderCell.C_SORT_ASCENDING:
-      return qx.ui.listview.HeaderCell.C_SORT_DESCENDING;
-
-    default:
-      return qx.ui.listview.HeaderCell.C_SORT_ASCENDING;
-  }
-}
-
-qx.Proto.updateSort = function()
-{
-
-  var vListView = this.getView();
-  var vData = vListView.getData();
-  var vFieldId = this._id;
-  var vSortProp = this._config.sortProp || "text";
-  var vSortMethod = this._config.sortMethod || qx.util.Compare.byString;
-
-  vData.sort(function(a, b) {
-    return vSortMethod(a[vFieldId][vSortProp], b[vFieldId][vSortProp]);
-  });
-
-  if (this.getSortOrder() == qx.ui.listview.HeaderCell.C_SORT_DESCENDING) {
-    vData.reverse();
-  }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifySortOrder = function(propValue, propOldValue, propData)
-{
-  var vListView = this.getView();
-
-  switch(propValue)
-  {
-    case qx.ui.listview.HeaderCell.C_SORT_ASCENDING:
-      this._arrowup.setDisplay(true);
-      this._arrowdown.setDisplay(false);
-
-      vListView.setSortBy(this._id);
-      break;
-
-    case qx.ui.listview.HeaderCell.C_SORT_DESCENDING:
-      this._arrowup.setDisplay(false);
-      this._arrowdown.setDisplay(true);
-
-      vListView.setSortBy(this._id);
-      break;
-
-    default:
-      this._arrowup.setDisplay(false);
-      this._arrowdown.setDisplay(false);
-
-      if (vListView.getSortBy() == this._id) {
-        vListView.setSortBy(null);
-      }
-  }
-
-  if (propValue)
-  {
-    this.updateSort();
-    vListView.update();
-  }
-
-  return true;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmouseover = function(e) {
-  this.addState("over");
-}
-
-qx.Proto._onmouseout = function(e) {
-  this.removeState("over");
-}
-
-qx.Proto._onmouseup = function(e)
-{
-  if (!this._config.sortable || this.getParent()._resizeSeparator) {
-    return;
-  }
-
-  this.setSortOrder(this.getNextSortOrder());
-  e.stopPropagation();
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  delete this._config;
-
-  if (this._spacer)
-  {
-    this._spacer.dispose();
-    this._spacer = null;
-  }
-
-  if (this._arrowup)
-  {
-    this._arrowup.dispose();
-    this._arrowup = null;
-  }
-
-  if (this._arrowdown)
-  {
-    this._arrowdown.dispose();
-    this._arrowdown = null;
-  }
-
-  this.removeEventListener("mouseup", this._onmouseup);
-  this.removeEventListener("mouseover", this._onmouseover);
-  this.removeEventListener("mouseout", this._onmouseout);
-
-  return qx.ui.basic.Atom.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/HeaderSeparator.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/HeaderSeparator.js
deleted file mode 100644 (file)
index b2124fd..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_listview)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.listview.HeaderSeparator", qx.ui.basic.Terminator,
-function() {
-  qx.ui.basic.Terminator.call(this);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "list-view-header-separator" });
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/ListView.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/ListView.js
deleted file mode 100644 (file)
index a4226b8..0000000
+++ /dev/null
@@ -1,375 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_listview)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.listview.ListView", qx.ui.layout.VerticalBoxLayout,
-function(vData, vColumns)
-{
-  // ************************************************************************
-  //   REFERENCES
-  // ************************************************************************
-
-  this._data = vData;
-  this._columns = vColumns;
-
-
-
-  // ************************************************************************
-  //   OBJECTS
-  // ************************************************************************
-
-  this._header = new qx.ui.listview.Header(vColumns);
-  this._frame = new qx.ui.layout.HorizontalBoxLayout;
-  this._pane = new qx.ui.listview.ListViewPane(vData, vColumns);
-  this._scroll = new qx.ui.layout.CanvasLayout;
-  this._scrollContent = new qx.ui.basic.Terminator;
-  this._resizeLine = new qx.ui.basic.Terminator;
-
-
-
-  // ************************************************************************
-  //   SUPERCLASS CONSTRUCTOR
-  // ************************************************************************
-
-  qx.ui.layout.VerticalBoxLayout.call(this);
-
-
-
-  // ************************************************************************
-  //   HEADER
-  // ************************************************************************
-
-  this._header.setParent(this);
-
-
-
-  // ************************************************************************
-  //   FRAME
-  // ************************************************************************
-
-  this._frame.setParent(this);
-  this._frame.setHeight("1*");
-  this._frame.setWidth(null);
-
-
-
-  // ************************************************************************
-  //   PANE
-  // ************************************************************************
-
-  this._pane.setParent(this._frame);
-
-
-
-  // ************************************************************************
-  //   SCROLL AREA
-  // ************************************************************************
-
-  this._scroll.setWidth("auto");
-  this._scroll.setOverflow("scrollY");
-  this._scroll.setParent(this._frame);
-  this._scroll.enableInlineEvent("scroll");
-  this._scroll.addEventListener("scroll", this._onscroll, this);
-
-
-
-  // ************************************************************************
-  //   SCROLL CONTENT
-  // ************************************************************************
-
-  this._scrollContent.setWidth(1);
-  this._scrollContent.setParent(this._scroll);
-
-
-
-
-  // ************************************************************************
-  //   RESIZE LINE
-  // ************************************************************************
-
-  this._resizeLine.setBackgroundColor("#D6D5D9");
-  this._resizeLine.setWidth(1);
-  this._resizeLine.setParent(this);
-
-
-
-  // ************************************************************************
-  //   EVENTS
-  // ************************************************************************
-
-  this.addEventListener("mousedown", this._onmousedown);
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "list-view" });
-
-qx.OO.addProperty({ name : "resizable", type : "boolean", defaultValue : true });
-qx.OO.addProperty({ name : "liveResize", type : "boolean", defaultValue : false });
-qx.OO.addProperty({ name : "sortBy", type : "string" });
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getData = function() {
-  return this._data;
-}
-
-qx.Proto.getColumns = function() {
-  return this._columns;
-}
-
-qx.Proto.getHeader = function() {
-  return this._header;
-}
-
-qx.Proto.getFrame = function() {
-  return this._frame;
-}
-
-qx.Proto.getPane = function() {
-  return this._pane;
-}
-
-qx.Proto.getScroll = function() {
-  return this._scroll;
-}
-
-qx.Proto.getScrollContent = function() {
-  return this._scrollContent;
-}
-
-qx.Proto.getResizeLine = function() {
-  return this._resizeLine;
-}
-
-qx.Proto.update = function()
-{
-  this.updateScrollBar();
-  this.updateContent();
-
-  // ignore updateLayout here, as it is mostly initially used
-}
-
-qx.Proto.updateScrollBar = function() {
-  this._scrollContent.setHeight((this._data.length * this._pane._rowHeight) + this._pane._rowHeight);
-}
-
-/*!
-  Bugfix for gecko 1.8 (the one released with firefox 1.5)
-  Overflow updates if content gets smaller are problematic
-  https://bugzilla.mozilla.org/show_bug.cgi?id=320106
-*/
-if (qx.core.Client.getInstance().isGecko() && qx.core.Client.getInstance().getVersion() >= 1.8)
-{
-  qx.Proto._updateScrollBar = qx.Proto.updateScrollBar;
-
-  qx.Proto.updateScrollBar = function()
-  {
-    this._updateScrollBar();
-
-    this._scroll.setStyleProperty("height", "0px");
-    this._scroll.forceHeight(0);
-    this._scroll.setHeight(null);
-  }
-}
-
-qx.Proto.updateContent = function() {
-  this.getPane()._updateRendering(true);
-}
-
-qx.Proto.updateLayout = function() {
-  this.getPane()._updateLayout();
-}
-
-qx.Proto.updateSort = function()
-{
-  var vSortBy = this.getSortBy();
-
-  if (!vSortBy) {
-    return;
-  }
-
-  var vCell = this._getHeaderCell(vSortBy);
-
-  if (vCell) {
-    vCell.updateSort();
-  }
-}
-
-qx.Proto._getHeaderCell = function(vCellId)
-{
-  var vNewEntry = this._columns[vCellId];
-  return vNewEntry ? vNewEntry.headerCell : null;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifySortBy = function(propValue, propOldValue, propData)
-{
-  if (propOldValue)
-  {
-    var vOldCell = this._getHeaderCell(propOldValue);
-
-    if (vOldCell) {
-      vOldCell.setSortOrder(null);
-    }
-  }
-
-  if (propValue)
-  {
-    var vNewCell = this._getHeaderCell(propValue);
-
-    if (vNewCell && vNewCell.getSortOrder() == null) {
-      vNewCell.setSortOrder(qx.ui.listview.HeaderCell.C_SORT_ASCENDING);
-    }
-  }
-
-  return true;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onscroll = function(e) {
-  this._pane._onscroll(e);
-}
-
-qx.Proto._onmousedown = function(e) {
-  this.getFocusRoot().setActiveChild(this.getPane());
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPLAYBLE HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._handleDisplayableCustom = function(vDisplayable, vParent, vHint)
-{
-  qx.ui.layout.VerticalBoxLayout.prototype._handleDisplayableCustom.call(this, vDisplayable, vParent, vHint);
-
-  if (vDisplayable)
-  {
-    this.updateLayout();
-    this.updateScrollBar();
-    this.updateContent();
-  }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  if (this._header)
-  {
-    this._header.dispose();
-    this._header = null;
-  }
-
-  if (this._frame)
-  {
-    this._frame.dispose();
-    this._frame = null;
-  }
-
-  if (this._pane)
-  {
-    this._pane.dispose();
-    this._pane = null;
-  }
-
-  if (this._scroll)
-  {
-    this._scroll.dispose();
-    this._scroll = null;
-  }
-
-  if (this._scrollContent)
-  {
-    this._scrollContent.dispose();
-    this._scrollContent = null;
-  }
-
-  if (this._resizeLine)
-  {
-    this._resizeLine.dispose();
-    this._resizeLine = null;
-  }
-
-  delete this._columns;
-  delete this._data;
-
-  this.removeEventListener("mousedown", this._onmousedown);
-
-  return qx.ui.layout.VerticalBoxLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/ListViewPane.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/listview/ListViewPane.js
deleted file mode 100644 (file)
index afd5077..0000000
+++ /dev/null
@@ -1,563 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_listview)
-#load(qx.ui.listview.ContentCellHtml)
-#load(qx.ui.listview.ContentCellIconHtml)
-#load(qx.ui.listview.ContentCellImage)
-#load(qx.ui.listview.ContentCellLink)
-#load(qx.ui.listview.ContentCellText)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.listview.ListViewPane", qx.ui.layout.GridLayout,
-function(vData, vColumns)
-{
-  qx.ui.layout.GridLayout.call(this);
-
-  // ************************************************************************
-  //   DATA
-  // ************************************************************************
-  // Add aliases for data tables
-  this._data = vData;
-  this._columns = vColumns;
-
-
-  // ************************************************************************
-  //   INITIALIZE MANAGER
-  // ************************************************************************
-  this._manager = new qx.manager.selection.VirtualSelectionManager(this);
-
-
-  // ************************************************************************
-  //   MOUSE EVENT LISTENER
-  // ************************************************************************
-  // Add handling for mouse wheel events
-  // Needed because the virtual scroll area does not fire browser
-  // understandable events above this pane.
-  this.addEventListener("mousewheel", this._onmousewheel);
-
-  this.addEventListener("mouseover", this._onmouseover);
-  this.addEventListener("mousedown", this._onmousedown);
-  this.addEventListener("mouseup", this._onmouseup);
-  this.addEventListener("click", this._onclick);
-  this.addEventListener("dblclick", this._ondblclick);
-
-
-  // ************************************************************************
-  //   KEY EVENT LISTENER
-  // ************************************************************************
-  this.addEventListener("keypress", this._onkeypress);
-});
-
-qx.OO.changeProperty({ name : "appearance",
-                       type : "string",
-                       defaultValue : "list-view-pane"
-                     });
-
-qx.Proto._rowHeight = 16;
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getView = function() {
-  return this.getParent().getParent();
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UPDATER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._lastRowCount = 0;
-
-qx.Proto._updateLayout = function(vUpdate)
-{
-  // this.debug("InnerHeight: " + this._computeInnerHeight());
-  // this.debug("BoxHeight: " + this._computeBoxHeight());
-  // return
-
-  var vColumns = this._columns;
-  var vRowCount = Math.ceil(this.getInnerHeight() / this._rowHeight);
-  var vData = this._data;
-  var vCell;
-
-  // this.debug("Row-Count: " + this._lastRowCount + " => " + vRowCount);
-
-  // Sync cells: Add new ones and configure them
-  if (vRowCount > this._lastRowCount)
-  {
-    for (var i=this._lastRowCount, j=0; i<vRowCount; i++, j=0)
-    {
-      for (var vCol in vColumns)
-      {
-        vCell = new vColumns[vCol].contentClass;
-
-        this.add(vCell, j++, i);
-
-        if (vColumns[vCol].align) {
-          vCell.setStyleProperty("textAlign",
-                                 vColumns[vCol].align);
-        }
-      }
-    }
-  }
-
-  // Sync cells: Remove existing ones and dispose them
-  else if (this._lastRowCount > vRowCount)
-  {
-    var vChildren = this.getChildren();
-    var vChildrenLength = vChildren.length - 1;
-
-    for (var i=this._lastRowCount; i>vRowCount; i--)
-    {
-      for (var vCol in vColumns)
-      {
-        vCell = vChildren[vChildrenLength--];
-        this.remove(vCell);
-        vCell.dispose();
-      }
-    }
-  }
-
-  // Update row and column count
-  this.setRowCount(vRowCount);
-  if (!vUpdate) {
-    this.setColumnCount(qx.lang.Object.getLength(vColumns));
-  }
-
-  // Apply height to all rows
-  for (var i=0; i<vRowCount; i++) {
-    this.setRowHeight(i, this._rowHeight);
-  }
-
-  if (!vUpdate)
-  {
-    // Apply width and alignment to all columns
-    var vCount = 0;
-    for (var vCol in vColumns)
-    {
-      this.setColumnHorizontalAlignment(vCount, vColumns[vCol].align);
-      this.setColumnWidth(vCount, vColumns[vCol].width);
-
-      vCount++;
-    }
-  }
-
-  // Store last row count
-  this._lastRowCount = vRowCount;
-}
-
-qx.Proto._currentScrollTop = -1;
-
-qx.Proto._updateRendering = function(vForce)
-{
-  if (this._updatingRendering) {
-    return;
-  }
-
-  var vScrollTop = (this._initialLayoutDone
-                    ? this.getView().getScroll().getScrollTop()
-                    : 0);
-
-  this._updatingRendering = true;
-  this._currentScrollTop = vScrollTop;
-
-  for (var i=0; i<this._rowCount; i++) {
-    this._updateRow(i);
-  }
-
-  delete this._updatingRendering;
-}
-
-qx.Proto._updateRow = function(vRelativeRow)
-{
-  var vData = this._data;
-  var vRowOffset = Math.floor(this._currentScrollTop / this._rowHeight);
-
-  var vColumnCount = this.getColumnCount();
-  var vColumns = this._columns;
-
-  var vChildren = this.getVisibleChildren();
-  var vChild, vEntry, vCol;
-
-  var j=0;
-
-  for (vCol in vColumns)
-  {
-    vEntry = vData[vRowOffset+vRelativeRow];
-    vChild = vChildren[vColumnCount*vRelativeRow+(j++)];
-
-    if (vChild)
-    {
-      if (vEntry && vEntry._selected) {
-        vChild.addState("selected");
-      } else {
-        vChild.removeState("selected");
-      }
-      vChild.set(vEntry
-                 ? vEntry[vCol]
-                 : vColumns[vCol].empty || vColumns[vCol].contentClass.empty);
-    }
-  }
-}
-
-qx.Proto._onscroll = function(e) {
-  this._updateRendering();
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DIMENSION CACHE
----------------------------------------------------------------------------
-*/
-
-qx.Proto._changeInnerHeight = function(vNew, vOld)
-{
-  this._updateLayout(true);
-  this._updateRendering(true);
-
-  return qx.ui.layout.GridLayout.prototype._changeInnerHeight.call(this,
-                                                                   vNew,
-                                                                   vOld);
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MANAGER BINDING
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getManager = function() {
-  return this._manager;
-}
-
-qx.Proto.getListViewTarget = function(e)
-{
-  var vEventTop = e.getPageY();
-  var vPaneTop = qx.html.Location.getPageInnerTop(this.getElement());
-  var vItemNo = Math.floor(this._currentScrollTop / this._rowHeight) +
-                Math.floor((vEventTop - vPaneTop) / this._rowHeight);
-
-  return this._data[vItemNo];
-}
-
-qx.Proto.getSelectedItem = function() {
-  return this.getSelectedItems()[0];
-}
-
-qx.Proto.getSelectedItems = function() {
-  return this._manager.getSelectedItems();
-}
-
-qx.Proto.getData = function() {
-  return this._data;
-}
-
-// use static row height
-qx.Proto.getItemHeight = function(vItem) {
-  return this._rowHeight;
-}
-
-// use the full inner width of the pane
-qx.Proto.getItemWidth = function(vItem) {
-  return qx.html.Dimension.getInnerWidth(this.getElement());
-}
-
-qx.Proto.getItemLeft = function(vItem) {
-  return 0;
-}
-
-qx.Proto.getItemTop = function(vItem) {
-  return this._data.indexOf(vItem) * this._rowHeight;
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MOUSE EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmousewheel = function(e)
-{
-  var vScroll = this.getView().getScroll();
-  vScroll.setScrollTop(vScroll.getScrollTop() - (e.getWheelDelta() * 20));
-}
-
-qx.Proto._onmouseover = function(e)
-{
-  var vTarget = this.getListViewTarget(e);
-  if (vTarget) {
-    this._manager.handleMouseOver(vTarget, e);
-  }
-}
-
-qx.Proto._onmousedown = function(e)
-{
-  var vTarget = this.getListViewTarget(e);
-  if (vTarget) {
-    this._manager.handleMouseDown(vTarget, e);
-  }
-}
-
-qx.Proto._onmouseup = function(e)
-{
-  var vTarget = this.getListViewTarget(e);
-  if (vTarget) {
-    this._manager.handleMouseUp(vTarget, e);
-  }
-}
-
-qx.Proto._onclick = function(e)
-{
-  var vTarget = this.getListViewTarget(e);
-  if (vTarget) {
-    this._manager.handleClick(vTarget, e);
-  }
-}
-
-qx.Proto._ondblclick = function(e)
-{
-  var vTarget = this.getListViewTarget(e);
-  if (vTarget) {
-    this._manager.handleDblClick(vTarget, e);
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  KEY EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onkeypress = function(e)
-{
-  this._manager.handleKeyPress(e);
-  e.preventDefault();
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MANAGER SELECTION
----------------------------------------------------------------------------
-*/
-
-qx.Proto._updateSelectionState = function(vItem, vIsSelected)
-{
-  vItem._selected = vIsSelected;
-  this._updateItem(vItem);
-}
-
-qx.Proto._updateAnchorState = function(vItem, vIsAnchor)
-{
-  vItem._anchor = vIsAnchor;
-  this._updateItem(vItem);
-}
-
-qx.Proto._updateLeadState = function(vItem, vIsLead)
-{
-  vItem._lead = vIsLead;
-  this._updateItem(vItem);
-}
-
-qx.Proto.scrollItemIntoView = function(vItem, vAlignLeftTop)
-{
-  this.scrollItemIntoViewX(vItem, vAlignLeftTop);
-  this.scrollItemIntoViewY(vItem, vAlignLeftTop);
-}
-
-qx.Proto.scrollItemIntoViewX = function(vItem, vAlignLeft) {
-  // this.error("Not implemented in qx.ui.listview.ListViewPane!");
-}
-
-qx.Proto.scrollItemIntoViewY = function(vItem, vAlignTop)
-{
-  var vItems = this._data;
-  var vOffset = vItems.indexOf(vItem) * this._rowHeight;
-  var vHeight = this._rowHeight;
-
-  // normalize client height (we want that the item is fully visible)
-  var vParentHeight = (Math.floor(this.getClientHeight() / this._rowHeight) *
-                       this._rowHeight);
-  var vParentScrollTop = this._currentScrollTop;
-
-  var vNewScrollTop = null;
-
-  if (vAlignTop)
-  {
-    vNewScrollTop = vOffset;
-  }
-  else if (vAlignTop == false)
-  {
-    vNewScrollTop = vOffset + vHeight - vParentHeight;
-  }
-  else if (vHeight > vParentHeight || vOffset < vParentScrollTop)
-  {
-    vNewScrollTop = vOffset;
-  }
-  else if ((vOffset + vHeight) > (vParentScrollTop + vParentHeight))
-  {
-    vNewScrollTop = vOffset + vHeight - vParentHeight;
-  }
-
-  if (vNewScrollTop != null) {
-    this.getView().getScroll().setScrollTop(vNewScrollTop);
-  }
-}
-
-qx.Proto.setScrollTop = function(vScrollTop)
-{
-  this.getView().getScroll().setScrollTop(vScrollTop);
-  this._updateRendering();
-}
-
-qx.Proto.getScrollTop = function() {
-  return this._currentScrollTop;
-}
-
-qx.Proto.setScrollLeft = function() {
-  this.error("Not implemented in qx.ui.listview.ListViewPane!");
-}
-
-qx.Proto.getScrollLeft = function() {
-  return 0;
-}
-
-qx.Proto.isItemVisible = function(vItem)
-{
-  var vIndex = this._data.indexOf(vItem);
-  var vRowStart = Math.floor(this._currentScrollTop / this._rowHeight);
-  var vRowLength = Math.ceil(this.getClientHeight() / this._rowHeight);
-
-  return vIndex >= vRowStart && vIndex <= (vRowStart + vRowLength);
-}
-
-qx.Proto.getRelativeItemPosition = function(vItem)
-{
-  var vIndex = this._data.indexOf(vItem);
-  var vRowStart = Math.floor(this._currentScrollTop / this._rowHeight);
-
-  return vIndex - vRowStart;
-}
-
-qx.Proto._updateItem = function(vItem)
-{
-  var vIndex = this._data.indexOf(vItem);
-  var vRowStart = Math.floor(this._currentScrollTop / this._rowHeight);
-  var vRowLength = Math.ceil(this.getClientHeight() / this._rowHeight);
-
-  if (vIndex < vRowStart || vIndex > (vRowStart + vRowLength)) {
-    return;
-  }
-
-  this._updateRow(vIndex - vRowStart);
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-
-  // ************************************************************************
-  //   MOUSE EVENT LISTENER
-  // ************************************************************************
-  this.removeEventListener("mousewheel", this._onmousewheel);
-  this.removeEventListener("mouseover", this._onmouseover);
-  this.removeEventListener("mousedown", this._onmousedown);
-  this.removeEventListener("mouseup", this._onmouseup);
-  this.removeEventListener("click", this._onclick);
-  this.removeEventListener("dblclick", this._ondblclick);
-
-
-  // ************************************************************************
-  //   KEY EVENT LISTENER
-  // ************************************************************************
-  this.removeEventListener("keypress", this._onkeypress);
-
-
-  // ************************************************************************
-  //   DATA
-  // ************************************************************************
-  delete this._data;
-  delete this._columns;
-
-
-  // ************************************************************************
-  //   MANAGER
-  // ************************************************************************
-  if (this._manager)
-  {
-    this._manager.dispose();
-    this._manager = null;
-  }
-
-  return qx.ui.layout.GridLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/menu/Button.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/menu/Button.js
deleted file mode 100644 (file)
index 55a8b57..0000000
+++ /dev/null
@@ -1,360 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_menu)
-#embed(qx.widgettheme/arrows/next.gif)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.menu.Button", qx.ui.layout.HorizontalBoxLayout,
-function(vLabel, vIcon, vCommand, vMenu)
-{
-  qx.ui.layout.HorizontalBoxLayout.call(this);
-
-
-  // ************************************************************************
-  //   LAYOUT
-  // ************************************************************************
-
-  var io = this._iconObject = new qx.ui.basic.Image;
-  io.setWidth(16);
-  io.setAnonymous(true);
-
-  var lo = this._labelObject = new qx.ui.basic.Label;
-  lo.setAnonymous(true);
-  lo.setSelectable(false);
-
-  var so = this._shortcutObject = new qx.ui.basic.Label;
-  so.setAnonymous(true);
-  so.setSelectable(false);
-
-  var ao = this._arrowObject = new qx.ui.basic.Image("widget/arrows/next.gif");
-  ao.setAnonymous(true);
-
-
-  // ************************************************************************
-  //   INIT
-  // ************************************************************************
-
-  if (vLabel != null) {
-    this.setLabel(vLabel);
-  }
-
-  if (vIcon != null) {
-    this.setIcon(vIcon);
-  }
-
-  if (vCommand != null) {
-    this.setCommand(vCommand);
-    qx.locale.Manager.getInstance().addEventListener("changeLocale", function(e) {
-      this._modifyCommand(vCommand, vCommand);
-    }, this)
-  }
-
-  if (vMenu != null) {
-    this.setMenu(vMenu);
-  }
-
-
-  // ************************************************************************
-  //   EVENTS
-  // ************************************************************************
-
-  this.addEventListener("mouseup", this._onmouseup);
-});
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "menu-button" });
-
-qx.OO.addProperty({ name : "icon", type : "string" });
-qx.OO.addProperty({ name : "label" });
-qx.OO.addProperty({ name : "menu", type : "object" });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto._hasIcon = false;
-qx.Proto._hasLabel = false;
-qx.Proto._hasShortcut = false;
-qx.Proto._hasMenu = false;
-
-qx.Proto.hasIcon = function() {
-  return this._hasIcon;
-}
-
-qx.Proto.hasLabel = function() {
-  return this._hasLabel;
-}
-
-qx.Proto.hasShortcut = function() {
-  return this._hasShortcut;
-}
-
-qx.Proto.hasMenu = function() {
-  return this._hasMenu;
-}
-
-qx.Proto.getIconObject = function() {
-  return this._iconObject;
-}
-
-qx.Proto.getLabelObject = function() {
-  return this._labelObject;
-}
-
-qx.Proto.getShortcutObject = function() {
-  return this._shortcutObject;
-}
-
-qx.Proto.getArrowObject = function() {
-  return this._arrowObject;
-}
-
-qx.Proto.getParentMenu = function()
-{
-  var vParent = this.getParent();
-  if (vParent)
-  {
-    vParent = vParent.getParent();
-
-    if (vParent && vParent instanceof qx.ui.menu.Menu) {
-      return vParent;
-    }
-  }
-
-  return null;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  INIT LAYOUT IMPL
----------------------------------------------------------------------------
-*/
-
-/*!
-  This creates an new instance of the layout impl this widget uses
-*/
-qx.Proto._createLayoutImpl = function() {
-  return new qx.renderer.layout.MenuButtonLayoutImpl(this);
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyEnabled = function(propValue, propOldValue, propData)
-{
-  if (this._iconObject) {
-    this._iconObject.setEnabled(propValue);
-  }
-
-  if (this._labelObject) {
-    this._labelObject.setEnabled(propValue);
-  }
-
-  if (this._shortcutObject) {
-     this._shortcutObject.setEnabled(propValue);
-  }
-
-  return qx.ui.layout.HorizontalBoxLayout.prototype._modifyEnabled.call(this, propValue, propOldValue, propData);
-}
-
-qx.Proto._modifyIcon = function(propValue, propOldValue, propData)
-{
-  this._iconObject.setSource(propValue);
-
-  if (qx.util.Validation.isValidString(propValue))
-  {
-    this._hasIcon = true;
-
-    if (qx.util.Validation.isInvalidString(propOldValue)) {
-      this.addAtBegin(this._iconObject);
-    }
-  }
-  else
-  {
-    this._hasIcon = false;
-    this.remove(this._iconObject);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyLabel = function(propValue, propOldValue, propData)
-{
-  this._labelObject.setHtml(propValue);
-
-  if ((typeof propValue == "string" && propValue != "") || propValue instanceof qx.locale.LocalizedString)
-  {
-    this._hasLabel = true;
-
-    if (!((typeof propOldValue == "string" && propOldValue != "") || propOldValue instanceof qx.locale.LocalizedString)) {
-      this.addAt(this._labelObject, this.getFirstChild() == this._iconObject ? 1 : 0);
-    }
-  }
-  else
-  {
-    this._hasLabel = false;
-    this.remove(this._labelObject);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyCommand = function(propValue, propOldValue, propData)
-{
-  var vHtml = propValue ? propValue.toString() : "";
-
-  this._shortcutObject.setHtml(vHtml);
-
-  if (qx.util.Validation.isValidString(vHtml))
-  {
-    this._hasShortcut = true;
-
-    var vOldHtml = propOldValue ? propOldValue.getShortcut() : "";
-
-    if (qx.util.Validation.isInvalidString(vOldHtml))
-    {
-      if (this.getLastChild() == this._arrowObject)
-      {
-        this.addBefore(this._shortcutObject, this._arrowObject);
-      }
-      else
-      {
-        this.addAtEnd(this._shortcutObject);
-      }
-    }
-  }
-  else
-  {
-    this._hasShortcut = false;
-    this.remove(this._shortcutObject);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyMenu = function(propValue, propOldValue, propData)
-{
-  if (propValue)
-  {
-    this._hasMenu = true;
-
-    if (qx.util.Validation.isInvalidObject(propOldValue)) {
-      this.addAtEnd(this._arrowObject);
-    }
-  }
-  else
-  {
-    this._hasMenu = false;
-    this.remove(this._arrowObject);
-  }
-
-  return true;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENTS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmouseup = function(e) {
-  this.execute();
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  // Dispose children
-  if (this._iconObject)
-  {
-    this._iconObject.dispose();
-    this._iconObject = null;
-  }
-
-  if (this._labelObject)
-  {
-    this._labelObject.dispose();
-    this._labelObject = null;
-  }
-
-  if (this._shortcutObject)
-  {
-    this._shortcutObject.dispose();
-    this._shortcutObject = null;
-  }
-
-  if (this._arrowObject)
-  {
-    this._arrowObject.dispose();
-    this._arrowObject = null;
-  }
-
-  // Remove event listeners
-  this.removeEventListener("mouseup", this._onmouseup);
-
-  return qx.ui.layout.HorizontalBoxLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/menu/CheckBox.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/menu/CheckBox.js
deleted file mode 100644 (file)
index efb02c0..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_menu)
-#embed(qx.widgettheme/menu/checkbox.gif)
-#embed(qx.static/image/blank.gif)
-
-************************************************************************ */
-
-/*!
-  A checkbox for the menu system.
-*/
-qx.OO.defineClass("qx.ui.menu.CheckBox", qx.ui.menu.Button,
-function(vLabel, vCommand, vChecked)
-{
-  qx.ui.menu.Button.call(this, vLabel, "static/image/blank.gif", vCommand);
-
-  if (vChecked != null) {
-    this.setChecked(vChecked);
-  }
-
-  qx.manager.object.ImageManager.getInstance().preload("widget/menu/checkbox.gif");
-});
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "menu-check-box" });
-qx.OO.addProperty({ name : "name", type : "string" });
-qx.OO.addProperty({ name : "value", type : "string" });
-qx.OO.addProperty({ name : "checked", type : "boolean", defaultValue : false, getAlias : "isChecked" });
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyChecked = function(propValue, propOldValue, propData)
-{
-  propValue ? this.addState("checked") : this.removeState("checked");
-  this.getIconObject().setSource(propValue ? "widget/menu/checkbox.gif" : "static/image/blank.gif");
-
-  return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EXECUTE
----------------------------------------------------------------------------
-*/
-
-qx.Proto.execute = function()
-{
-  this.setChecked(!this.getChecked());
-  qx.ui.menu.Button.prototype.execute.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/menu/Layout.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/menu/Layout.js
deleted file mode 100644 (file)
index 23b060d..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_menu)
-
-************************************************************************ */
-
-/*!
-  A small helper class to create a special layout handler for qx.ui.menu.Menus
-*/
-qx.OO.defineClass("qx.ui.menu.Layout", qx.ui.layout.VerticalBoxLayout,
-function()
-{
-  qx.ui.layout.VerticalBoxLayout.call(this);
-
-  this.setAnonymous(true);
-});
-
-
-/*!
-  Appearance of the widget
-*/
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "menu-layout" });
-
-
-
-
-/*
----------------------------------------------------------------------------
-  INIT LAYOUT IMPL
----------------------------------------------------------------------------
-*/
-
-/*!
-  This creates an new instance of the layout impl this widget uses
-*/
-qx.Proto._createLayoutImpl = function() {
-  return new qx.renderer.layout.MenuLayoutImpl(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/menu/Menu.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/menu/Menu.js
deleted file mode 100644 (file)
index bf4d584..0000000
+++ /dev/null
@@ -1,922 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_menu)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.menu.Menu", qx.ui.popup.Popup,
-function()
-{
-  qx.ui.popup.Popup.call(this);
-
-
-  // ************************************************************************
-  //   LAYOUT
-  // ************************************************************************
-
-  var l = this._layout = new qx.ui.menu.Layout;
-  this.add(l);
-
-
-  // ************************************************************************
-  //   TIMER
-  // ************************************************************************
-  this._openTimer = new qx.client.Timer(this.getOpenInterval());
-  this._openTimer.addEventListener("interval", this._onopentimer, this);
-
-  this._closeTimer = new qx.client.Timer(this.getCloseInterval());
-  this._closeTimer.addEventListener("interval", this._onclosetimer, this);
-
-
-  // ************************************************************************
-  //   EVENTS
-  // ************************************************************************
-
-  this.addEventListener("mouseover", this._onmouseover);
-  this.addEventListener("mousemove", this._onmouseover);
-  this.addEventListener("mouseout", this._onmouseout);
-
-  this.addEventListener("keydown", this._onkeydown);
-  this.addEventListener("keypress", this._onkeypress);
-
-
-  // ************************************************************************
-  //   REMAPPING
-  // ************************************************************************
-
-  this.remapChildrenHandlingTo(this._layout);
-});
-
-qx.Proto._remappingChildTable = [ "add", "remove", "addAt", "addAtBegin", "addAtEnd", "removeAt", "addBefore", "addAfter", "removeAll", "getFirstChild", "getFirstActiveChild", "getLastChild", "getLastActiveChild" ];
-qx.Proto._isFocusRoot = false;
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "menu" });
-
-qx.OO.addProperty({ name : "iconContentGap", type : "number", defaultValue : 4 });
-qx.OO.addProperty({ name : "labelShortcutGap", type : "number", defaultValue : 10 });
-qx.OO.addProperty({ name : "contentArrowGap", type : "number", defaultValue : 8 });
-qx.OO.addProperty({ name : "contentNonIconPadding", type : "number", defaultValue : 20 });
-qx.OO.addProperty({ name : "contentNonArrowPadding", type : "number", defaultValue : 8 });
-
-qx.OO.addProperty({ name : "hoverItem", type : "object" });
-qx.OO.addProperty({ name : "openItem", type : "object" });
-
-/** Widget that opened the menu */
-qx.OO.addProperty({ name : "opener", type : "object" });
-
-/** reference to the parent menu if the menu is a submenu */
-qx.OO.addProperty({ name : "parentMenu", type : "object" });
-
-qx.OO.addProperty({ name : "fastReopen", type : "boolean", defaultValue : false });
-qx.OO.addProperty({ name : "openInterval", type : "number", defaultValue : 250 });
-qx.OO.addProperty({ name : "closeInterval", type : "number", defaultValue : 250 });
-
-qx.OO.addProperty({ name : "subMenuHorizontalOffset", type : "number", defaultValue : -3 });
-qx.OO.addProperty({ name : "subMenuVerticalOffset", type : "number", defaultValue : -2 });
-
-qx.OO.addProperty({ name : "indentShortcuts", type : "boolean", defaultValue : true });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getLayout = function() {
-  return this._layout;
-}
-
-/**
- * Returns if the given element is a child of this menu
- *
- * @param vElement {Object} element to test
- * @param vButtonsOnly {boolean ? false} if true, child elements other than buttons
- *                                       will be ignored
- */
-qx.Proto.isSubElement = function(vElement, vButtonsOnly)
-{
-  if ((vElement.getParent() === this._layout)
-
-      //accept this as child, this can happen if a scrollbar is clicked upon in
-      //a context menu
-      ||((!vButtonsOnly) && (vElement === this))) {
-    return true;
-  }
-
-  for (var a=this._layout.getChildren(), l=a.length, i=0; i<l; i++)
-  {
-    if (a[i].getMenu && a[i].getMenu() && a[i].getMenu().isSubElement(vElement, vButtonsOnly)) {
-      return true;
-    }
-  }
-
-  return false;
-}
-
-
-/*
----------------------------------------------------------------------------
-  APPEAR/DISAPPEAR
----------------------------------------------------------------------------
-*/
-
-qx.Proto._beforeAppear = function()
-{
-  // Intentionally bypass superclass and call super.super._beforeAppear
-  qx.ui.layout.CanvasLayout.prototype._beforeAppear.call(this);
-
-  // register to menu manager as active widget
-  qx.manager.object.MenuManager.getInstance().add(this);
-
-  // zIndex handling
-  this.bringToFront();
-
-  //setup as global active widget
-  this._makeActive();
-}
-
-qx.Proto._beforeDisappear = function()
-{
-  // Intentionally bypass superclass and call super.super._beforeDisappear
-  qx.ui.layout.CanvasLayout.prototype._beforeDisappear.call(this);
-
-  // deregister as opened from qx.manager.object.MenuManager
-  qx.manager.object.MenuManager.getInstance().remove(this);
-
-  // reset global active widget
-  this._makeInactive();
-
-  // reset properties on close
-  this.setHoverItem(null);
-  this.setOpenItem(null);
-
-  // be sure that the opener button gets the correct state
-  var vOpener = this.getOpener();
-  if (vOpener) {
-    vOpener.removeState("pressed");
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyHoverItem = function(propValue, propOldValue, propData)
-{
-  if (propOldValue) {
-    propOldValue.removeState("over");
-  }
-
-  if (propValue) {
-    propValue.addState("over");
-  }
-
-  return true;
-}
-
-qx.Proto._modifyOpenItem = function(propValue, propOldValue, propData)
-{
-  var vMakeActive = false;
-
-  if (propOldValue)
-  {
-    var vOldSub = propOldValue.getMenu();
-
-    if (vOldSub)
-    {
-      vOldSub.setParentMenu(null);
-      vOldSub.setOpener(null);
-      vOldSub.hide();
-    }
-  }
-
-  if (propValue)
-  {
-    var vSub = propValue.getMenu();
-
-    if (vSub)
-    {
-      vSub.setOpener(propValue);
-      vSub.setParentMenu(this);
-
-      var pl = propValue.getElement();
-      var el = this.getElement();
-
-      vSub.setTop(qx.html.Location.getPageBoxTop(pl) + this.getSubMenuVerticalOffset());
-      vSub.setLeft(qx.html.Location.getPageBoxLeft(el) + qx.html.Dimension.getBoxWidth(el) + this.getSubMenuHorizontalOffset());
-
-      vSub.show();
-
-      qx.ui.core.Widget.flushGlobalQueues();
-    }
-  }
-
-  return true;
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  LOCATIONS AND DIMENSIONS OF CHILDRENS CHILDREN:
-  CREATE VARIABLES
----------------------------------------------------------------------------
-*/
-
-qx.OO.addCachedProperty({ name : "maxIconWidth" });
-qx.OO.addCachedProperty({ name : "maxLabelWidth" });
-qx.OO.addCachedProperty({ name : "maxLabelWidthIncShortcut" });
-qx.OO.addCachedProperty({ name : "maxShortcutWidth" });
-qx.OO.addCachedProperty({ name : "maxArrowWidth" });
-qx.OO.addCachedProperty({ name : "maxContentWidth" });
-
-qx.OO.addCachedProperty({ name : "iconPosition", defaultValue : 0 });
-qx.OO.addCachedProperty({ name : "labelPosition" });
-qx.OO.addCachedProperty({ name : "shortcutPosition" });
-qx.OO.addCachedProperty({ name : "arrowPosition" });
-
-qx.OO.addCachedProperty({ name : "menuButtonNeededWidth" });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  LOCATIONS AND DIMENSIONS OF CHILDRENS CHILDREN:
-  MAX WIDTH COMPUTERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._computeMaxIconWidth = function()
-{
-  var ch=this.getLayout().getChildren(), chl=ch.length, chc, m=0;
-
-  for (var i=0; i<chl; i++)
-  {
-    chc = ch[i];
-
-    if (chc.hasIcon()) {
-      // Make static as long as not supported well
-      // m = Math.max(m, chc.getIconObject().getPreferredBoxWidth());
-      m = Math.max(m, 16);
-    }
-  }
-
-  return m;
-}
-
-qx.Proto._computeMaxLabelWidth = function()
-{
-  var ch=this.getLayout().getChildren(), chl=ch.length, chc, m=0;
-
-  for (var i=0; i<chl; i++)
-  {
-    chc = ch[i];
-
-    if (chc.hasLabel()) {
-      m = Math.max(m, chc.getLabelObject().getPreferredBoxWidth());
-    }
-  }
-
-  return m;
-}
-
-qx.Proto._computeMaxLabelWidthIncShortcut = function()
-{
-  var ch=this.getLayout().getChildren(), chl=ch.length, chc, m=0;
-
-  for (var i=0; i<chl; i++)
-  {
-    chc = ch[i];
-
-    if (chc.hasLabel() && chc.hasShortcut()) {
-      m = Math.max(m, chc.getLabelObject().getPreferredBoxWidth());
-    }
-  }
-
-  return m;
-}
-
-qx.Proto._computeMaxShortcutWidth = function()
-{
-  var ch=this.getLayout().getChildren(), chl=ch.length, chc, m=0;
-
-  for (var i=0; i<chl; i++)
-  {
-    chc = ch[i];
-
-    if (chc.hasShortcut()) {
-      m = Math.max(m, chc.getShortcutObject().getPreferredBoxWidth());
-    }
-  }
-
-  return m;
-}
-
-qx.Proto._computeMaxArrowWidth = function()
-{
-  var ch=this.getLayout().getChildren(), chl=ch.length, chc, m=0;
-
-  for (var i=0; i<chl; i++)
-  {
-    chc = ch[i];
-
-    if (chc.hasMenu()) {
-      // Make static as long as not supported well
-      // m = Math.max(m, chc.getArrowObject().getPreferredBoxWidth());
-      m = Math.max(m, 4);
-    }
-  }
-
-  return m;
-}
-
-qx.Proto._computeMaxContentWidth = function()
-{
-  var vSum;
-
-  var lw = this.getMaxLabelWidth();
-  var sw = this.getMaxShortcutWidth();
-
-  if (this.getIndentShortcuts())
-  {
-    var vTemp = sw+this.getMaxLabelWidthIncShortcut();
-
-    if (sw > 0) {
-      vTemp += this.getLabelShortcutGap();
-    }
-
-    vSum = Math.max(lw, vTemp);
-  }
-  else
-  {
-    vSum = lw + sw;
-
-    if (lw > 0 && sw > 0) {
-      vSum += this.getLabelShortcutGap();
-    }
-  }
-
-  return vSum;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  LOCATIONS AND DIMENSIONS OF CHILDRENS CHILDREN:
-  POSITION COMPUTERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._computeIconPosition = function() {
-  return 0;
-}
-
-qx.Proto._computeLabelPosition = function()
-{
-  var v = this.getMaxIconWidth();
-  return v > 0 ? v + this.getIconContentGap() : this.getContentNonIconPadding();
-}
-
-qx.Proto._computeShortcutPosition = function() {
-  return this.getLabelPosition() + this.getMaxContentWidth() - this.getMaxShortcutWidth();
-}
-
-qx.Proto._computeArrowPosition = function()
-{
-  var v = this.getMaxContentWidth();
-  return this.getLabelPosition() + (v > 0 ? v + this.getContentArrowGap() : v);
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  LOCATIONS AND DIMENSIONS OF CHILDRENS CHILDREN:
-  INVALIDATION OF CACHE
----------------------------------------------------------------------------
-*/
-
-qx.Proto._invalidateMaxIconWidth = function()
-{
-  this._cachedMaxIconWidth = null;
-
-  this._invalidateLabelPosition();
-  this._invalidateMenuButtonNeededWidth();
-}
-
-qx.Proto._invalidateMaxLabelWidth = function()
-{
-  this._cachedMaxLabelWidth = null;
-
-  this._invalidateShortcutPosition();
-  this._invalidateMaxLabelWidthIncShortcut();
-  this._invalidateMaxContentWidth();
-  this._invalidateMenuButtonNeededWidth();
-}
-
-qx.Proto._invalidateMaxShortcutWidth = function()
-{
-  this._cachedMaxShortcutWidth = null;
-
-  this._invalidateArrowPosition();
-  this._invalidateMaxContentWidth();
-  this._invalidateMenuButtonNeededWidth();
-}
-
-qx.Proto._invalidateMaxLabelWidth = function()
-{
-  this._cachedMaxArrowWidth = null;
-  this._invalidateMenuButtonNeededWidth();
-}
-
-qx.Proto._invalidateLabelPosition = function()
-{
-  this._cachedLabelPosition = null;
-  this._invalidateShortcutPosition();
-}
-
-qx.Proto._invalidateShortcutPosition = function()
-{
-  this._cachedShortcutPosition = null;
-  this._invalidateArrowPosition();
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  LOCATIONS AND DIMENSIONS OF CHILDRENS CHILDREN:
-  NEEDED WIDTH COMPUTERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._computeMenuButtonNeededWidth = function()
-{
-  var vSum = 0;
-
-  var vMaxIcon = this.getMaxIconWidth();
-  var vMaxContent = this.getMaxContentWidth();
-  var vMaxArrow = this.getMaxArrowWidth();
-
-  if (vMaxIcon > 0)
-  {
-    vSum += vMaxIcon;
-  }
-  else
-  {
-    vSum += this.getContentNonIconPadding();
-  }
-
-  if (vMaxContent > 0)
-  {
-    if (vMaxIcon > 0) {
-      vSum += this.getIconContentGap();
-    }
-
-    vSum += vMaxContent;
-  }
-
-  if (vMaxArrow > 0)
-  {
-    if (vMaxIcon > 0 || vMaxContent > 0) {
-      vSum += this.getContentArrowGap();
-    }
-
-    vSum += vMaxArrow;
-  }
-  else
-  {
-    vSum += this.getContentNonArrowPadding();
-  }
-
-  return vSum;
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT-HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmouseover = function(e)
-{
-  /* ------------------------------
-    HANDLE PARENT MENU
-  ------------------------------ */
-
-  // look if we have a parent menu
-  // if so we need to stop the close event started there
-  var vParent = this.getParentMenu();
-
-  if (vParent)
-  {
-    // stop the close event
-    vParent._closeTimer.stop();
-
-    // look if we have a opener, too (normally this should be)
-    var vOpener = this.getOpener();
-
-    // then setup it to look hovered
-    if (vOpener) {
-      vParent.setHoverItem(vOpener);
-    }
-  }
-
-
-
-
-  /* ------------------------------
-    HANDLING FOR HOVERING MYSELF
-  ------------------------------ */
-
-  var t = e.getTarget();
-
-  if (t == this)
-  {
-    this._openTimer.stop();
-    this._closeTimer.start();
-
-    this.setHoverItem(null);
-
-    return;
-  }
-
-
-
-
-  /* ------------------------------
-    HANDLING FOR HOVERING ITEMS
-  ------------------------------ */
-
-  var vOpen = this.getOpenItem();
-
-  // if we have a open item
-  if (vOpen)
-  {
-    this.setHoverItem(t);
-    this._openTimer.stop();
-
-    // if the new one has also a sub menu
-    if (t.hasMenu())
-    {
-      // check if we should use fast reopen (this will open the menu instantly)
-      if (this.getFastReopen())
-      {
-        this.setOpenItem(t);
-        this._closeTimer.stop();
-      }
-
-      // otherwise we use the default timer interval
-      else
-      {
-        this._openTimer.start();
-      }
-    }
-
-    // otherwise start the close timer for the old menu
-    else
-    {
-      this._closeTimer.start();
-    }
-  }
-
-  // otherwise handle the mouseover and restart the timer
-  else
-  {
-    this.setHoverItem(t);
-
-    // stop timer for the last open request
-    this._openTimer.stop();
-
-    // and restart it if the new one has a menu, too
-    if (t.hasMenu()) {
-      this._openTimer.start();
-    }
-  }
-}
-
-qx.Proto._onmouseout = function(e)
-{
-  // stop the open timer (for any previous open requests)
-  this._openTimer.stop();
-
-  // start the close timer to hide a menu if needed
-  var t = e.getTarget();
-  if (t != this && t.hasMenu()) {
-    this._closeTimer.start();
-  }
-
-  // reset the current hover item
-  this.setHoverItem(null);
-}
-
-qx.Proto._onopentimer = function(e)
-{
-  // stop the open timer (we need only the first interval)
-  this._openTimer.stop();
-
-  // if we have a item which is currently hovered, open it
-  var vHover = this.getHoverItem();
-  if (vHover && vHover.hasMenu()) {
-    this.setOpenItem(vHover);
-  }
-}
-
-qx.Proto._onclosetimer = function(e)
-{
-  // stop the close timer (we need only the first interval)
-  this._closeTimer.stop();
-
-  // reset the current opened item
-  this.setOpenItem(null);
-}
-
-/*!
-  Wraps key events to target functions
-*/
-qx.Proto._onkeydown = function(e)
-{
-  if (e.getKeyIdentifier() == "Enter") {
-    this._onkeydown_enter(e);
-  }
-  e.preventDefault();
-};
-
-
-qx.Proto._onkeypress = function(e)
-{
-  switch(e.getKeyIdentifier())
-  {
-    case "Up":
-      this._onkeypress_up(e);
-      break;
-
-    case "Down":
-      this._onkeypress_down(e);
-      break;
-
-    case "Left":
-      this._onkeypress_left(e);
-      break;
-
-    case "Right":
-      this._onkeypress_right(e);
-      break;
-
-    default:
-      return;
-  }
-
-  // Stop all matching events
-  e.preventDefault();
-};
-
-
-qx.Proto._onkeypress_up = function(e)
-{
-  var vHover = this.getHoverItem();
-  var vPrev = vHover ? vHover.isFirstChild() ? this.getLastActiveChild() : vHover.getPreviousActiveSibling([qx.ui.menu.Separator]) : this.getLastActiveChild();
-
-  this.setHoverItem(vPrev);
-};
-
-qx.Proto._onkeypress_down = function(e)
-{
-  var vHover = this.getHoverItem();
-  var vNext = vHover ? vHover.isLastChild() ? this.getFirstActiveChild() : vHover.getNextActiveSibling([qx.ui.menu.Separator]) : this.getFirstActiveChild();
-
-  this.setHoverItem(vNext);
-};
-
-
-qx.Proto._onkeypress_left = function(e)
-{
-  var vOpener = this.getOpener();
-
-  // Jump to the "parent" qx.ui.menu.Menu
-  if (vOpener instanceof qx.ui.menu.Button)
-  {
-    var vOpenerParent = this.getOpener().getParentMenu();
-
-    vOpenerParent.setOpenItem(null);
-    vOpenerParent.setHoverItem(vOpener);
-
-    vOpenerParent._makeActive();
-  }
-
-  // Jump to the previous ToolBarMenuButton
-  else if (vOpener instanceof qx.ui.toolbar.MenuButton)
-  {
-    var vToolBar = vOpener.getParentToolBar();
-
-    // change active widget to new button
-    this.getFocusRoot().setActiveChild(vToolBar);
-
-    // execute toolbars keydown implementation
-    vToolBar._onkeypress(e);
-  }
-};
-
-
-qx.Proto._onkeypress_right = function(e)
-{
-  var vHover = this.getHoverItem();
-
-  if (vHover)
-  {
-    var vMenu = vHover.getMenu();
-
-    if (vMenu)
-    {
-      this.setOpenItem(vHover);
-
-      // mark first item in new submenu
-      vMenu.setHoverItem(vMenu.getFirstActiveChild());
-
-      return;
-    }
-  }
-  else if (!this.getOpenItem())
-  {
-    var vFirst = this.getLayout().getFirstActiveChild();
-
-    if (vFirst) {
-      vFirst.hasMenu() ? this.setOpenItem(vFirst) : this.setHoverItem(vFirst);
-    }
-  }
-
-  // Jump to the next ToolBarMenuButton
-  var vOpener = this.getOpener();
-
-  if (vOpener instanceof qx.ui.toolbar.MenuButton)
-  {
-    var vToolBar = vOpener.getParentToolBar();
-
-    // change active widget to new button
-    this.getFocusRoot().setActiveChild(vToolBar);
-
-    // execute toolbars keydown implementation
-    vToolBar._onkeypress(e);
-  }
-  else if (vOpener instanceof qx.ui.menu.Button && vHover)
-  {
-    // search for menubar if existing
-    // menu -> button -> menu -> button -> menu -> menubarbutton -> menubar
-
-    var vOpenerParent = vOpener.getParentMenu();
-
-    while (vOpenerParent && vOpenerParent instanceof qx.ui.menu.Menu)
-    {
-      vOpener = vOpenerParent.getOpener();
-
-      if (vOpener instanceof qx.ui.menu.Button)
-      {
-        vOpenerParent = vOpener.getParentMenu();
-      }
-      else
-      {
-        if (vOpener) {
-          vOpenerParent = vOpener.getParent();
-        }
-
-        break;
-      }
-    }
-
-    if (vOpenerParent instanceof qx.ui.toolbar.Part) {
-      vOpenerParent = vOpenerParent.getParent();
-    }
-
-    if (vOpenerParent instanceof qx.ui.toolbar.ToolBar)
-    {
-      // jump to next menubarbutton
-      this.getFocusRoot().setActiveChild(vOpenerParent);
-      vOpenerParent._onkeypress(e);
-    }
-  }
-}
-
-qx.Proto._onkeydown_enter = function(e)
-{
-  var vHover = this.getHoverItem();
-  if (vHover) {
-    vHover.execute();
-  }
-
-  qx.manager.object.MenuManager.getInstance().update();
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  if (this._layout)
-  {
-    this._layout.dispose();
-    this._layout = null;
-  }
-
-  if (this._openTimer)
-  {
-    this._openTimer.dispose();
-    this._openTimer = null;
-  }
-
-  if (this._closeTimer)
-  {
-    this._closeTimer.dispose();
-    this._closeTimer = null;
-  }
-
-  // Remove event listeners
-  this.removeEventListener("mouseover", this._onmouseover);
-  this.removeEventListener("mousemove", this._onmouseover);
-  this.removeEventListener("mouseout", this._onmouseout);
-
-  this.removeEventListener("keydown", this._onkeydown);
-  this.removeEventListener("keypress", this._onkeypress);
-
-
-  return qx.ui.popup.Popup.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/menu/RadioButton.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/menu/RadioButton.js
deleted file mode 100644 (file)
index 216b623..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_menu)
-#embed(qx.widgettheme/menu/radiobutton.gif)
-#embed(qx.static/image/blank.gif)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.menu.RadioButton", qx.ui.menu.CheckBox,
-function(vLabel, vCommand, vChecked)
-{
-  qx.ui.menu.CheckBox.call(this, vLabel, vCommand, vChecked);
-
-  qx.manager.object.ImageManager.getInstance().preload("widget/menu/radiobutton.gif");
-});
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "menu-radio-button" });
-
-/*!
-  The assigned qx.manager.selection.RadioManager which handles the switching between registered buttons
-*/
-qx.OO.addProperty({ name : "manager", type : "object", instance : "qx.manager.selection.RadioManager", allowNull : true });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyChecked = function(propValue, propOldValue, propData)
-{
-  var vManager = this.getManager();
-
-  if (vManager)
-  {
-    if (propValue)
-    {
-      vManager.setSelected(this);
-    }
-    else if (vManager.getSelected() == this)
-    {
-      vManager.setSelected(null);
-    }
-  }
-
-  propValue ? this.addState("checked") : this.removeState("checked");
-  this.getIconObject().setSource(propValue ? "widget/menu/radiobutton.gif" : "static/image/blank.gif");
-
-  return true;
-}
-
-qx.Proto._modifyManager = function(propValue, propOldValue, propData)
-{
-  if (propOldValue) {
-    propOldValue.remove(this);
-  }
-
-  if (propValue) {
-    propValue.add(this);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyName = function(propValue, propOldValue, propData)
-{
-  if (this.getManager()) {
-    this.getManager().setName(propValue);
-  }
-
-  return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EXECUTE
----------------------------------------------------------------------------
-*/
-
-qx.Proto.execute = function()
-{
-  this.setChecked(true);
-
-  // Intentionally bypass superclass and call super.super.execute
-  qx.ui.menu.Button.prototype.execute.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/menu/Separator.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/menu/Separator.js
deleted file mode 100644 (file)
index 16d4251..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_menu)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.menu.Separator", qx.ui.layout.CanvasLayout,
-function()
-{
-  qx.ui.layout.CanvasLayout.call(this);
-
-  // Fix IE Styling Issues
-  this.setStyleProperty("fontSize", "0");
-  this.setStyleProperty("lineHeight", "0");
-
-  // ************************************************************************
-  //   LINE
-  // ************************************************************************
-
-  this._line = new qx.ui.basic.Terminator;
-  this._line.setAnonymous(true);
-  this._line.setAppearance("menu-separator-line");
-  this.add(this._line);
-
-
-  // ************************************************************************
-  //   EVENTS
-  // ************************************************************************
-
-  // needed to stop the event, and keep the menu showing
-  this.addEventListener("mousedown", this._onmousedown);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "menu-separator" });
-
-qx.Proto.hasIcon = qx.lang.Function.returnFalse;
-qx.Proto.hasLabel = qx.lang.Function.returnFalse;
-qx.Proto.hasShortcut = qx.lang.Function.returnFalse;
-qx.Proto.hasMenu = qx.lang.Function.returnFalse;
-
-qx.Proto._onmousedown = function(e) {
-  e.stopPropagation();
-}
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  if (this._line)
-  {
-    this._line.dispose();
-    this._line = null;
-  }
-
-  return qx.ui.layout.CanvasLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/menubar/Button.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/menubar/Button.js
deleted file mode 100644 (file)
index 42bdac4..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_menu)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.menubar.Button", qx.ui.toolbar.MenuButton,
-function(vText, vMenu, vIcon, vIconWidth, vIconHeight, vFlash) {
-  qx.ui.toolbar.MenuButton.call(this, vText, vMenu, vIcon, vIconWidth, vIconHeight, vFlash);
-});
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/menubar/MenuBar.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/menubar/MenuBar.js
deleted file mode 100644 (file)
index 9671366..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_menu)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.menubar.MenuBar", qx.ui.toolbar.ToolBar,
-function() {
-  qx.ui.toolbar.ToolBar.call(this);
-});
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractBar.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractBar.js
deleted file mode 100755 (executable)
index 21f643a..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.pageview.AbstractBar", qx.ui.layout.BoxLayout,
-function()
-{
-  qx.ui.layout.BoxLayout.call(this);
-
-  this._manager = new qx.manager.selection.RadioManager;
-
-  this.addEventListener("mousewheel", this._onmousewheel);
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITY
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getManager = function() {
-  return this._manager;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENTS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._lastDate = (new Date(0)).valueOf();
-
-qx.Proto._onmousewheel = function(e)
-{
-  // Make it a bit lazier than it could be
-  // Hopefully this is a better behaviour for fast scrolling users
-  var vDate = (new Date).valueOf();
-
-  if ((vDate - 50) < this._lastDate) {
-    return;
-  }
-
-  this._lastDate = vDate;
-
-  var vManager = this.getManager();
-  var vItems = vManager.getEnabledItems();
-  var vPos = vItems.indexOf(vManager.getSelected());
-
-  if (this.getWheelDelta(e) > 0)
-  {
-    var vNext = vItems[vPos+1];
-
-    if (!vNext) {
-      vNext = vItems[0];
-    }
-  }
-  else if (vPos > 0)
-  {
-    var vNext = vItems[vPos-1];
-
-    if (!vNext) {
-      vNext = vItems[0];
-    }
-  }
-  else
-  {
-    vNext = vItems[vItems.length-1];
-  }
-
-  vManager.setSelected(vNext);
-}
-
-qx.Proto.getWheelDelta = function(e) {
-  return e.getWheelDelta();
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  if (this._manager)
-  {
-    this._manager.dispose();
-    this._manager = null;
-  }
-
-  this.removeEventListener("mousewheel", this._onmousewheel);
-
-  return qx.ui.layout.BoxLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractButton.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractButton.js
deleted file mode 100755 (executable)
index 3a130a1..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
- * Sebastian Werner (wpbasti)
- * Andreas Ecker (ecker)
-
- ************************************************************************ */
-
-/* ************************************************************************
-
-
- ************************************************************************ */
-
-qx.OO.defineClass("qx.ui.pageview.AbstractButton", qx.ui.basic.Atom,
-function(vText, vIcon, vIconWidth, vIconHeight, vFlash) {
-  qx.ui.basic.Atom.call(this, vText, vIcon, vIconWidth, vIconHeight, vFlash);
-
-  this.setTabIndex(1);
-
-  // ************************************************************************
-  //   MOUSE EVENTS
-  // ************************************************************************
-  this.addEventListener("mouseover", this._onmouseover);
-  this.addEventListener("mouseout", this._onmouseout);
-  this.addEventListener("mousedown", this._onmousedown);
-
-  // ************************************************************************
-  //   KEY EVENTS
-  // ************************************************************************
-  this.addEventListener("keydown", this._onkeydown);
-  this.addEventListener("keypress", this._onkeypress);
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
- */
-
-/*!
-  If this tab is the currently selected/active one
- */
-qx.OO.addProperty({ name : "checked", type : "boolean", defaultValue : false });
-
-/*!
-  The attached page of this tab
- */
-qx.OO.addProperty({ name : "page", type : "object" });
-
-/*!
-  The assigned qx.manager.selection.RadioManager which handles the switching between registered buttons
- */
-qx.OO.addProperty({ name : "manager", type : "object", instance : "qx.manager.selection.RadioManager", allowNull : true });
-
-/*!
-  The name of the radio group. All the radio elements in a group (registered by the same manager)
-  have the same name (and could have a different value).
- */
-qx.OO.addProperty({ name : "name", type : "string" });
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
- */
-
-qx.Proto.getView = function() {
-  return this.getParent().getParent();
-};
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
- */
-
-qx.Proto._modifyManager = function(propValue, propOldValue, propData) {
-  if (propOldValue) {
-    propOldValue.remove(this);
-  }
-
-  if (propValue) {
-    propValue.add(this);
-  }
-
-  return true;
-};
-
-qx.Proto._modifyParent = function(propValue, propOldValue, propData) {
-  if (propOldValue) {
-    propOldValue.getManager().remove(this);
-  }
-
-  if (propValue) {
-    propValue.getManager().add(this);
-  }
-
-  return qx.ui.basic.Atom.prototype._modifyParent.call(this, propValue, propOldValue, propData);
-};
-
-qx.Proto._modifyPage = function(propValue, propOldValue, propData) {
-  if (propOldValue) {
-    propOldValue.setButton(null);
-  }
-
-  if (propValue) {
-    propValue.setButton(this);
-    this.getChecked() ? propValue.show() : propValue.hide();
-  }
-
-  return true;
-};
-
-qx.Proto._modifyChecked = function(propValue, propOldValue, propData) {
-  if (this._hasParent) {
-    var vManager = this.getManager();
-    if (vManager) {
-      vManager.handleItemChecked(this, propValue);
-    }
-  }
-
-  propValue ? this.addState("checked") : this.removeState("checked");
-
-  var vPage = this.getPage();
-  if (vPage) {
-    this.getChecked() ? vPage.show() : vPage.hide();
-  }
-
-  return true;
-};
-
-qx.Proto._modifyName = function(propValue, propOldValue, propData) {
-  if (this.getManager()) {
-    this.getManager().setName(propValue);
-  }
-
-  return true;
-};
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT HANDLER
----------------------------------------------------------------------------
- */
-
-qx.Proto._onmousedown = function(e) {
-  this.setChecked(true);
-};
-
-qx.Proto._onmouseover = function(e) {
-  this.addState("over");
-};
-
-qx.Proto._onmouseout = function(e) {
-  this.removeState("over");
-};
-
-qx.Proto._onkeydown = function(e) {};
-qx.Proto._onkeypress = function(e) {};
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
- */
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-
-  // ************************************************************************
-  //   MOUSE EVENTS
-  // ************************************************************************
-  this.removeEventListener("mouseover", this._onmouseover);
-  this.removeEventListener("mouseout", this._onmouseout);
-  this.removeEventListener("mousedown", this._onmousedown);
-
-
-  // ************************************************************************
-  //   KEY EVENTS
-  // ************************************************************************
-  this.removeEventListener("keydown", this._onkeydown);
-  this.removeEventListener("keypress", this._onkeypress);
-
-
-  return qx.ui.basic.Atom.prototype.dispose.call(this);
-};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractPage.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractPage.js
deleted file mode 100755 (executable)
index fcf8a44..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.pageview.AbstractPage", qx.ui.layout.CanvasLayout,
-function(vButton)
-{
-  qx.ui.layout.CanvasLayout.call(this);
-
-  if (vButton != null) {
-    this.setButton(vButton);
-  }
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/*!
-  The attached tab of this page.
-*/
-qx.OO.addProperty({ name : "button", type : "object" });
-
-/*!
-  Make element displayed (if switched to true the widget will be created, if needed, too).
-  Instead of qx.ui.core.Widget, the default is false here.
-*/
-qx.OO.changeProperty({ name : "display", type : "boolean", defaultValue : false });
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyButton = function(propValue, propOldValue, propData)
-{
-  if (propOldValue) {
-    propOldValue.setPage(null);
-  }
-
-  if (propValue) {
-    propValue.setPage(this);
-  }
-
-  return true;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractPageView.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractPageView.js
deleted file mode 100755 (executable)
index 1119bd1..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.pageview.AbstractPageView", qx.ui.layout.BoxLayout,
-function(vBarClass, vPaneClass)
-{
-  qx.ui.layout.BoxLayout.call(this);
-
-  this._bar = new vBarClass;
-  this._pane = new vPaneClass;
-
-  this.add(this._bar, this._pane);
-  this.setOrientation("vertical");
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITY
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getPane = function() {
-  return this._pane;
-}
-
-qx.Proto.getBar = function() {
-  return this._bar;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  if (this._bar)
-  {
-    this._bar.dispose();
-    this._bar = null;
-  }
-
-  if (this._pane)
-  {
-    this._pane.dispose();
-    this._pane = null;
-  }
-
-  return qx.ui.layout.BoxLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractPane.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/AbstractPane.js
deleted file mode 100755 (executable)
index 6a97fef..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.pageview.AbstractPane", qx.ui.layout.CanvasLayout,
-function() {
-  qx.ui.layout.CanvasLayout.call(this);
-});
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Bar.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Bar.js
deleted file mode 100644 (file)
index 4a0cd8c..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_buttonview)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.pageview.buttonview.Bar", qx.ui.pageview.AbstractBar,
-function() {
-  qx.ui.pageview.AbstractBar.call(this);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "bar-view-bar" });
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENTS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getWheelDelta = function(e)
-{
-  var vWheelDelta = e.getWheelDelta();
-
-  switch(this.getParent().getBarPosition())
-  {
-    case "left":
-    case "right":
-      vWheelDelta *= -1;
-  }
-
-  return vWheelDelta;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  APPEARANCE ADDITIONS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._applyStateAppearance = function()
-{
-  var vPos = this.getParent().getBarPosition();
-
-  this._states.barLeft = vPos === "left";
-  this._states.barRight = vPos === "right";
-  this._states.barTop = vPos === "top";
-  this._states.barBottom = vPos === "bottom";
-
-  qx.ui.pageview.AbstractButton.prototype._applyStateAppearance.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Button.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Button.js
deleted file mode 100644 (file)
index 7d2ee71..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_buttonview)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.pageview.buttonview.Button", qx.ui.pageview.AbstractButton,
-function(vText, vIcon, vIconWidth, vIconHeight, vFlash) {
-  qx.ui.pageview.AbstractButton.call(this, vText, vIcon, vIconWidth, vIconHeight, vFlash);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "bar-view-button" });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onkeypress = function(e)
-{
-  switch(this.getView().getBarPosition())
-  {
-    case "top":
-    case "bottom":
-      switch(e.getKeyIdentifier())
-      {
-        case "Left":
-          var vPrevious = true;
-          break;
-
-        case "Right":
-          var vPrevious = false;
-          break;
-
-        default:
-          return;
-      }
-
-      break;
-
-    case "left":
-    case "right":
-      switch(e.getKeyIdentifier())
-      {
-        case "Up":
-          var vPrevious = true;
-          break;
-
-        case "Down":
-          var vPrevious = false;
-          break;
-
-        default:
-          return;
-      }
-
-      break;
-
-    default:
-      return;
-  }
-
-  var vChild = vPrevious ? this.isFirstChild() ? this.getParent().getLastChild() : this.getPreviousSibling() : this.isLastChild() ? this.getParent().getFirstChild() : this.getNextSibling();
-
-  // focus next/previous button
-  vChild.setFocused(true);
-
-  // and naturally also check it
-  vChild.setChecked(true);
-}
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  APPEARANCE ADDITIONS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._applyStateAppearance = function()
-{
-  var vPos = this.getView().getBarPosition();
-
-  this._states.barLeft = vPos === "left";
-  this._states.barRight = vPos === "right";
-  this._states.barTop = vPos === "top";
-  this._states.barBottom = vPos === "bottom";
-
-  qx.ui.pageview.AbstractButton.prototype._applyStateAppearance.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/ButtonView.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/ButtonView.js
deleted file mode 100644 (file)
index 4e35218..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_buttonview)
-
-************************************************************************ */
-
-/*!
-  One of the widgets which could be used to structurize the interface.
-
-  qx.ui.pageview.buttonview.ButtonView creates the typical apple-like tabview-replacements which could also
-  be found in more modern versions of the settings dialog in Mozilla Firefox.
-*/
-qx.OO.defineClass("qx.ui.pageview.buttonview.ButtonView", qx.ui.pageview.AbstractPageView,
-function()
-{
-  qx.ui.pageview.AbstractPageView.call(this, qx.ui.pageview.buttonview.Bar, qx.ui.pageview.buttonview.Pane);
-
-  this.setOrientation("vertical");
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.addProperty({ name : "barPosition", type : "string", defaultValue : "top", possibleValues : [ "top", "right", "bottom", "left" ] });
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "bar-view" });
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyBarPosition = function(propValue, propOldValue, propData)
-{
-  var vBar = this._bar;
-
-  // move bar around and change orientation
-  switch(propValue)
-  {
-    case "top":
-      vBar.moveSelfToBegin();
-      this.setOrientation("vertical");
-      break;
-
-    case "bottom":
-      vBar.moveSelfToEnd();
-      this.setOrientation("vertical");
-      break;
-
-    case "left":
-      vBar.moveSelfToBegin();
-      this.setOrientation("horizontal");
-      break;
-
-    case "right":
-      vBar.moveSelfToEnd();
-      this.setOrientation("horizontal");
-      break;
-  }
-
-  // force re-apply of states for bar and pane
-  this._addChildrenToStateQueue();
-
-  // force re-apply of states for all tabs
-  vBar._addChildrenToStateQueue();
-
-  return true;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Page.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Page.js
deleted file mode 100644 (file)
index b69fa88..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_buttonview)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.pageview.buttonview.Page", qx.ui.pageview.AbstractPage,
-function(vButton) {
-  qx.ui.pageview.AbstractPage.call(this, vButton);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "bar-view-page" });
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Pane.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/buttonview/Pane.js
deleted file mode 100644 (file)
index df8b1a5..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_buttonview)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.pageview.buttonview.Pane", qx.ui.pageview.AbstractPane,
-function() {
-  qx.ui.pageview.AbstractPane.call(this);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "bar-view-pane" });
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  APPEARANCE ADDITIONS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._applyStateAppearance = function()
-{
-  var vPos = this.getParent().getBarPosition();
-
-  this._states.barHorizontal = vPos === "top" || vPos === "bottom";
-
-  qx.ui.pageview.AbstractButton.prototype._applyStateAppearance.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Bar.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Bar.js
deleted file mode 100644 (file)
index 0ddc9a5..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_tabview)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.pageview.tabview.Bar", qx.ui.pageview.AbstractBar,
-function()
-{
-  qx.ui.pageview.AbstractBar.call(this);
-
-  this.setZIndex(2);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "tab-view-bar" });
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Button.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Button.js
deleted file mode 100644 (file)
index c9f22b2..0000000
+++ /dev/null
@@ -1,192 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_tabview)
-#embed(qx.icontheme/16/actions/dialog-cancel.png)
-
-************************************************************************ */
-
-/**
- * @event closetab {qx.event.type.DataEvent}
- */
-qx.OO.defineClass("qx.ui.pageview.tabview.Button", qx.ui.pageview.AbstractButton,
-function(vText, vIcon, vIconWidth, vIconHeight, vFlash) {
-  qx.ui.pageview.AbstractButton.call(this, vText, vIcon, vIconWidth, vIconHeight, vFlash);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "tab-view-button" });
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
- */
-
-/*!
-  default Close Tab Button
- */
-qx.OO.addProperty({ name : "showCloseButton", type : "boolean", defaultValue : false });
-
-/*!
-  Close Tab Icon
- */
-qx.OO.addProperty({ name : "closeButtonImage", type : "string", defaultValue : "icon/16/actions/dialog-cancel.png"});
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onkeydown = function(e)
-{
-  var identifier = e.getKeyIdentifier();
-  if (identifier == "Enter" || identifier == "Space") {
-      // there is no toggeling, just make it checked
-      this.setChecked(true);
-  }
-};
-
-
-qx.Proto._onkeypress = function(e)
-{
-  switch(e.getKeyIdentifier())
-  {
-    case "Left":
-      var vPrev = this.getPreviousActiveSibling();
-      if (vPrev && vPrev != this)
-      {
-        // we want to enable the outline border, because
-        // the user used the keyboard for activation
-        delete qx.event.handler.FocusHandler.mouseFocus;
-
-        // focus previous tab
-        vPrev.setFocused(true);
-
-        // and naturally make it also checked
-        vPrev.setChecked(true);
-      }
-      break;
-
-    case "Right":
-      var vNext = this.getNextActiveSibling();
-      if (vNext && vNext != this)
-      {
-        // we want to enable the outline border, because
-        // the user used the keyboard for activation
-        delete qx.event.handler.FocusHandler.mouseFocus;
-
-        // focus next tab
-        vNext.setFocused(true);
-
-        // and naturally make it also checked
-        vNext.setChecked(true);
-      }
-      break;
-  }
-};
-
-
-qx.Proto._ontabclose = function(e){
-  this.createDispatchDataEvent("closetab", this);
-}
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
- */
-
-qx.Proto._modifyShowCloseButton = function(propValue, propOldValue, propData) {
-
-  // if no image exists, then create one
-  if (!this._closeButtonImage) {
-    this._closeButtonImage = new qx.ui.basic.Image(this.getCloseButtonImage());
-  }
-  if (propValue) {
-    this._closeButtonImage.addEventListener("click", this._ontabclose, this);
-    this.add(this._closeButtonImage);
-  } else {
-    this.remove(this._closeButtonImage);
-    this._closeButtonImage.removeEventListener("click", this._ontabclose);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyCloseButtonImage = function(propValue, propOldValue, propData) {
-  if (this._closeButtonImage) {
-    this._closeButtonImage.setSource(propValue);
-  }
-
-  return true;
-}
-
-
-
-/*
----------------------------------------------------------------------------
-  APPEARANCE ADDITIONS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._applyStateAppearance = function()
-{
-  this._states.firstChild = this.isFirstVisibleChild();
-  this._states.lastChild = this.isLastVisibleChild();
-  this._states.alignLeft = this.getView().getAlignTabsToLeft();
-  this._states.barTop = this.getView().getPlaceBarOnTop();
-
-  qx.ui.pageview.AbstractButton.prototype._applyStateAppearance.call(this);
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
- */
-
-qx.Proto.dispose = function() {
-  if (this.getDisposed()) {
-    return;
-  }
-
-  if(this._closeButtonImage){
-    this._closeButtonImage.dispose();
-    this._closeButtonImage = null;
-  }
-
-  return qx.ui.pageview.AbstractButton.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Page.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Page.js
deleted file mode 100644 (file)
index beac8fe..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_tabview)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.pageview.tabview.Page", qx.ui.pageview.AbstractPage,
-function(vButton) {
-  qx.ui.pageview.AbstractPage.call(this, vButton);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "tab-view-page" });
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Pane.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/Pane.js
deleted file mode 100644 (file)
index 439d149..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_tabview)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.pageview.tabview.Pane", qx.ui.pageview.AbstractPane,
-function()
-{
-  qx.ui.pageview.AbstractPane.call(this);
-
-  this.setZIndex(1);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "tab-view-pane" });
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/TabView.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/pageview/tabview/TabView.js
deleted file mode 100644 (file)
index c0093b2..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_tabview)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.pageview.tabview.TabView", qx.ui.pageview.AbstractPageView,
-function() {
-  qx.ui.pageview.AbstractPageView.call(this, qx.ui.pageview.tabview.Bar, qx.ui.pageview.tabview.Pane);
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "tab-view" });
-
-qx.OO.addProperty({ name : "alignTabsToLeft", type : "boolean", defaultValue : true });
-qx.OO.addProperty({ name : "placeBarOnTop", type : "boolean", defaultValue : true });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyAlignTabsToLeft = function(propValue, propOldValue, propData)
-{
-  var vBar = this._bar;
-
-  vBar.setHorizontalChildrenAlign(propValue ? "left" : "right");
-
-  // force re-apply of states for all tabs
-  vBar._addChildrenToStateQueue();
-
-  return true;
-}
-
-qx.Proto._modifyPlaceBarOnTop = function(propValue, propOldValue, propData)
-{
-  // This does not work if we use flexible zones
-  // this.setReverseChildrenOrder(!propValue);
-
-  var vBar = this._bar;
-
-  // move bar around
-  if (propValue) {
-    vBar.moveSelfToBegin();
-  } else {
-    vBar.moveSelfToEnd();
-  }
-
-  // force re-apply of states for all tabs
-  vBar._addChildrenToStateQueue();
-
-  return true;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/popup/Popup.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/popup/Popup.js
deleted file mode 100644 (file)
index edf6cd4..0000000
+++ /dev/null
@@ -1,334 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_popup)
-#optional(qx.manager.object.MenuManager)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.popup.Popup", qx.ui.layout.CanvasLayout,
-function()
-{
-  qx.ui.layout.CanvasLayout.call(this);
-
-  this.setZIndex(this._minZIndex);
-
-  // Init Focus Handler
-  if (this._isFocusRoot) {
-    this.activateFocusRoot();
-  }
-});
-
-qx.Proto._isFocusRoot = true;
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "popup" });
-
-/*!
-  Whether to let the system decide when to hide the popup. Setting
-  this to false gives you better control but it also requires you
-  to handle the closing of the popup.
-*/
-qx.OO.addProperty({ name : "autoHide", type : "boolean", defaultValue : true });
-
-/*!
-  Make element displayed (if switched to true the widget will be created, if needed, too).
-  Instead of qx.ui.core.Widget, the default is false here.
-*/
-qx.OO.changeProperty({ name : "display", type : "boolean", defaultValue : false });
-
-/*!
-  Center the popup on open
-*/
-qx.OO.addProperty({ name : "centered", type : "boolean", defaultValue : false });
-
-/**
- * Whether the popup should be restricted to the visible area of the page when opened.
- */
-qx.OO.addProperty({ name : "restrictToPageOnOpen", type : "boolean", defaultValue : true });
-
-
-qx.Proto._showTimeStamp = (new Date(0)).valueOf();
-qx.Proto._hideTimeStamp = (new Date(0)).valueOf();
-
-
-/**
- * The minimum offset to the left of the page too keep when
- * {@link #restrictToPageOnOpen} is true (in pixels).
- */
-qx.Settings.setDefault("restrictToPageLeft", "0");
-
-/**
- * The minimum offset to the right of the page too keep when
- * {@link #restrictToPageOnOpen} is true (in pixels).
- */
-qx.Settings.setDefault("restrictToPageRight", "0");
-
-/**
- * The minimum offset to the top of the page too keep when
- * {@link #restrictToPageOnOpen} is true (in pixels).
- */
-qx.Settings.setDefault("restrictToPageTop", "0");
-
-/**
- * The minimum offset to the bottom of the page too keep when
- * {@link #restrictToPageOnOpen} is true (in pixels).
- */
-qx.Settings.setDefault("restrictToPageBottom", "0");
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  APPEAR/DISAPPEAR
----------------------------------------------------------------------------
-*/
-
-qx.Proto._beforeAppear = function()
-{
-  qx.ui.layout.CanvasLayout.prototype._beforeAppear.call(this);
-
-  if (this.getRestrictToPageOnOpen()) {
-    this._wantedLeft = this.getLeft();
-
-    if (this._wantedLeft != null) {
-      // Move the popup out of the view so its size could be calculated before
-      // it is positioned.
-      this.setLeft(10000);
-      if (this.getElement() != null) {
-        // The popup was already visible once before
-        // -> Move it immediately before it gets visible again
-        this.getElement().style.left = 10000;
-      }
-    }
-  }
-
-  qx.manager.object.PopupManager.getInstance().add(this);
-  qx.manager.object.PopupManager.getInstance().update(this);
-
-  this._showTimeStamp = (new Date).valueOf();
-  this.bringToFront();
-}
-
-qx.Proto._beforeDisappear = function()
-{
-  qx.ui.layout.CanvasLayout.prototype._beforeDisappear.call(this);
-
-  qx.manager.object.PopupManager.getInstance().remove(this);
-
-  this._hideTimeStamp = (new Date).valueOf();
-}
-
-qx.Proto._afterAppear = function() {
-  qx.ui.layout.CanvasLayout.prototype._afterAppear.call(this);
-
-  if (this.getRestrictToPageOnOpen()) {
-    var doc = qx.ui.core.ClientDocument.getInstance();
-    var docWidth = doc.getClientWidth();
-    var docHeight = doc.getClientHeight();
-    var restrictToPageLeft   = parseInt(qx.Settings.getValueOfClass("qx.ui.popup.Popup", "restrictToPageLeft"));
-    var restrictToPageRight  = parseInt(qx.Settings.getValueOfClass("qx.ui.popup.Popup", "restrictToPageRight"));
-    var restrictToPageTop    = parseInt(qx.Settings.getValueOfClass("qx.ui.popup.Popup", "restrictToPageTop"));
-    var restrictToPageBottom = parseInt(qx.Settings.getValueOfClass("qx.ui.popup.Popup", "restrictToPageBottom"));
-    var left   = (this._wantedLeft == null) ? this.getLeft() : this._wantedLeft;
-    var top    = this.getTop();
-    var width  = this.getBoxWidth();
-    var height = this.getBoxHeight();
-
-    var oldLeft = this.getLeft();
-    var oldTop = top;
-
-    // NOTE: We check right and bottom first, because top and left should have
-    //       priority, when both sides are violated.
-    if (left + width > docWidth - restrictToPageRight) {
-      left = docWidth - restrictToPageRight - width;
-    }
-    if (top + height > docHeight - restrictToPageBottom) {
-      top = docHeight - restrictToPageBottom - height;
-    }
-    if (left < restrictToPageLeft) {
-      left = restrictToPageLeft;
-    }
-    if (top < restrictToPageTop) {
-      top = restrictToPageTop;
-    }
-
-    if (left != oldLeft || top != oldTop) {
-      var self = this;
-      window.setTimeout(function() {
-        self.setLeft(left);
-        self.setTop(top);
-        qx.ui.core.Widget.flushGlobalQueues();
-      }, 0);
-    }
-  }
-};
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ACTIVE/INACTIVE
----------------------------------------------------------------------------
-*/
-
-qx.Proto._makeActive = function() {
-  this.getFocusRoot().setActiveChild(this);
-}
-
-qx.Proto._makeInactive = function()
-{
-  var vRoot = this.getFocusRoot();
-  var vCurrent = vRoot.getActiveChild();
-
-  if (vCurrent == this) {
-    vRoot.setActiveChild(vRoot);
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ZIndex Positioning
----------------------------------------------------------------------------
-*/
-
-qx.Proto._minZIndex = 1e6;
-
-qx.Proto.bringToFront = function()
-{
-  this.forceZIndex(Infinity);
-  this._sendTo();
-}
-
-qx.Proto.sendToBack = function()
-{
-  this.forceZIndex(-Infinity);
-  this._sendTo();
-}
-
-qx.Proto._sendTo = function()
-{
-  var vPopups = qx.lang.Object.getValues(qx.manager.object.PopupManager.getInstance().getAll());
-
-  if (qx.OO.isAvailable("qx.manager.object.MenuManager"))
-  {
-    var vMenus = qx.lang.Object.getValues(qx.manager.object.MenuManager.getInstance().getAll());
-    var vAll = vPopups.concat(vMenus).sort(qx.util.Compare.byZIndex);
-  }
-  else
-  {
-    var vAll = vPopups.sort(qx.util.Compare.byZIndex);
-  }
-
-  var vLength = vAll.length;
-  var vIndex = this._minZIndex;
-
-  for (var i=0; i<vLength; i++) {
-    vAll[i].setZIndex(vIndex++);
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  TIMESTAMP HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getShowTimeStamp = function() {
-  return this._showTimeStamp;
-}
-
-qx.Proto.getHideTimeStamp = function() {
-  return this._hideTimeStamp;
-}
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-/**
- * Positions the popup relative to some reference element.
- * @param el    {var} Reference DOM element/widget.
- * @param offsetX {Integer} Offset in pixels in X direction (optional).
- * @param offsetY {Integer} Offset in pixels in Y direction (optional).
- */
-qx.Proto.positionRelativeTo = function(el, offsetX, offsetY)
-{
-  if (el instanceof qx.ui.core.Widget) {
-    el = el.getElement();
-  }
-  if (el) {
-    var gecko = qx.core.Client.getInstance().isGecko();
-    var loc = qx.html.Location;
-    this.setLocation(loc.getClientAreaLeft(el) - (gecko ? qx.html.Style.getBorderLeft(el):0) + (offsetX || 0),
-      loc.getClientAreaTop(el) - (gecko ? qx.html.Style.getBorderTop(el):0) + (offsetY || 0));
-  } else {
-    this.warn('Missing reference element');
-  }
-}
-
-qx.Proto.centerToBrowser = function()
-{
-  var d = qx.ui.core.ClientDocument.getInstance();
-
-  var left = (d.getClientWidth() - this.getBoxWidth()) / 2;
-  var top = (d.getClientHeight() - this.getBoxHeight()) / 2;
-
-  this.setLeft(left < 0 ? 0 : left);
-  this.setTop(top < 0 ? 0 : top);
-}
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this._showTimeStamp = null;
-  this._hideTimeStamp = null;
-
-  return qx.ui.layout.CanvasLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/popup/PopupAtom.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/popup/PopupAtom.js
deleted file mode 100644 (file)
index 5dfe9ea..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_popup)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.popup.PopupAtom", qx.ui.popup.Popup,
-function(vLabel, vIcon)
-{
-  qx.ui.popup.Popup.call(this);
-
-  this._atom = new qx.ui.basic.Atom(vLabel, vIcon);
-  this._atom.setParent(this);
-});
-
-qx.Proto._isFocusRoot = false;
-
-qx.Proto.getAtom = function() {
-  return this._atom;
-}
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  if (this._atom)
-  {
-    this._atom.dispose();
-    this._atom = null;
-  }
-
-  return qx.ui.popup.Popup.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/popup/ToolTip.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/popup/ToolTip.js
deleted file mode 100644 (file)
index 271ce2b..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_popup)
-#load(qx.manager.object.ToolTipManager)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.popup.ToolTip", qx.ui.popup.PopupAtom,
-function(vLabel, vIcon)
-{
-  // ************************************************************************
-  //   INIT
-  // ************************************************************************
-
-  qx.ui.popup.PopupAtom.call(this, vLabel, vIcon);
-
-  // Apply shadow
-  this.setStyleProperty("filter", "progid:DXImageTransform.Microsoft.Shadow(color='Gray', Direction=135, Strength=4)");
-
-
-  // ************************************************************************
-  //   TIMER
-  // ************************************************************************
-
-  this._showTimer = new qx.client.Timer(this.getShowInterval());
-  this._showTimer.addEventListener("interval", this._onshowtimer, this);
-
-  this._hideTimer = new qx.client.Timer(this.getHideInterval());
-  this._hideTimer.addEventListener("interval", this._onhidetimer, this);
-
-
-  // ************************************************************************
-  //   EVENTS
-  // ************************************************************************
-  this.addEventListener("mouseover", this._onmouseover);
-  this.addEventListener("mouseout", this._onmouseover);
-});
-
-qx.Proto._minZIndex = 1e7;
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "tool-tip" });
-
-qx.OO.addProperty({ name : "hideOnHover", type : "boolean", defaultValue : true });
-
-qx.OO.addProperty({ name : "mousePointerOffsetX", type : "number", defaultValue : 1 });
-qx.OO.addProperty({ name : "mousePointerOffsetY", type : "number", defaultValue : 20 });
-
-qx.OO.addProperty({ name : "showInterval", type : "number", defaultValue : 1000 });
-qx.OO.addProperty({ name : "hideInterval", type : "number", defaultValue : 4000 });
-
-qx.OO.addProperty({ name : "boundToWidget", type : "object", instance : "qx.ui.core.Widget" });
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyHideInterval = function(propValue, propOldValue, propData)
-{
-  this._hideTimer.setInterval(propValue);
-  return true;
-}
-
-qx.Proto._modifyShowInterval = function(propValue, propOldValue, propData)
-{
-  this._showTimer.setInterval(propValue);
-  return true;
-}
-
-qx.Proto._modifyBoundToWidget = function(propValue, propOldValue, propData)
-{
-  if (propValue)
-  {
-    this.setParent(propValue.getTopLevelWidget());
-  }
-  else if (propOldValue)
-  {
-    this.setParent(null);
-  }
-
-  return true;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  APPEAR/DISAPPEAR
----------------------------------------------------------------------------
-*/
-
-qx.Proto._beforeAppear = function()
-{
-  qx.ui.popup.PopupAtom.prototype._beforeAppear.call(this);
-
-  this._stopShowTimer();
-  this._startHideTimer();
-}
-
-qx.Proto._beforeDisappear = function() {
-  qx.ui.popup.PopupAtom.prototype._beforeDisappear.call(this);
-
-  this._stopHideTimer();
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  TIMER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._startShowTimer = function()
-{
-  if(!this._showTimer.getEnabled()) {
-    this._showTimer.start();
-  }
-}
-
-qx.Proto._startHideTimer = function()
-{
-  if(!this._hideTimer.getEnabled()) {
-    this._hideTimer.start();
-  }
-}
-
-qx.Proto._stopShowTimer = function()
-{
-  if(this._showTimer.getEnabled()) {
-    this._showTimer.stop();
-  }
-}
-
-qx.Proto._stopHideTimer = function()
-{
-  if(this._hideTimer.getEnabled()) {
-    this._hideTimer.stop();
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENTS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmouseover = function(e)
-{
-  if(this.getHideOnHover()) {
-    this.hide();
-  }
-}
-
-qx.Proto._onshowtimer = function(e)
-{
-  this.setLeft(qx.event.type.MouseEvent.getPageX() + this.getMousePointerOffsetX());
-  this.setTop(qx.event.type.MouseEvent.getPageY() + this.getMousePointerOffsetY());
-
-  this.show();
-
-  // we need a manual flushing because it could be that
-  // there is currently no event which do this for us
-  // and so show the tooltip.
-  qx.ui.core.Widget.flushGlobalQueues();
-
-  return true;
-}
-
-qx.Proto._onhidetimer = function(e) {
-  return this.hide();
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if(this.getDisposed()) {
-    return;
-  }
-
-  this.removeEventListener("mouseover", this._onmouseover);
-  this.removeEventListener("mouseout", this._onmouseover);
-
-  if (this._showTimer)
-  {
-    this._showTimer.removeEventListener("interval", this._onshowtimer, this);
-    this._showTimer.dispose();
-    this._showTimer = null;
-  }
-
-  if (this._hideTimer)
-  {
-    this._hideTimer.removeEventListener("interval", this._onhidetimer, this);
-    this._hideTimer.dispose();
-    this._hideTimer = null;
-  }
-
-  return qx.ui.popup.PopupAtom.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/resizer/Resizer.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/resizer/Resizer.js
deleted file mode 100755 (executable)
index 1141534..0000000
+++ /dev/null
@@ -1,419 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * David Perez (david-perez)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_resizer)
-
-************************************************************************ */
-
-/**
- * This class acts as a wrapper for other child, and allows it to be resized (not moved), normally in
- * the right and/or bottom directions.  Child can be e.g. a qx.ui.form.TextArea,
- * qx.ui.table.Table or qx.ui.form.List.  It is an alternative to splitters.
- */
-qx.OO.defineClass('qx.ui.resizer.Resizer', qx.ui.layout.CanvasLayout,
-function(child)
-{
-  qx.ui.layout.CanvasLayout.call(this);
-
-  this._frame = new qx.ui.basic.Terminator;
-  this._frame.setAppearance("resizer-frame");
-
-  this._registerResizeEvents();
-
-  this.setAppearance('resizer');
-  this.setResizeableWest(false);
-  this.setResizeableNorth(false);
-
-  this.setMinWidth("auto");
-  this.setMinHeight("auto");
-  this.auto();
-
-  if (child)
-  {
-    // Remove child border, as the resizer has already its own border.
-    child.setBorder(new qx.renderer.border.Border(0));
-    this.add(this._child = child);
-  }
-});
-
-
-
-
-
-/*!
-  If the window is resizeable in the left direction.
-*/
-qx.OO.addProperty({ name : "resizeableWest", type : "boolean", defaultValue : true });
-/*!
-  If the window is resizeable in the top direction.
-*/
-qx.OO.addProperty({ name : "resizeableNorth", type : "boolean", defaultValue : true });
-/*!
-  If the window is resizeable in the right direction.
-*/
-qx.OO.addProperty({ name : "resizeableEast", type : "boolean", defaultValue : true });
-/*!
-  If the window is resizeable in the bottom direction.
-*/
-qx.OO.addProperty({ name : "resizeableSouth", type : "boolean", defaultValue : true });
-
-/*!
-  If the window is resizeable
-*/
-qx.OO.addPropertyGroup({ name : "resizeable", members : [ "west", "north", "east", "south" ], mode : "shorthand" });
-
-/*!
-  The resize method to use
-*/
-qx.OO.addProperty({ name : "resizeMethod", type : "string", defaultValue : "frame", possibleValues : [ "opaque", "lazyopaque", "frame", "translucent" ] });
-
-/*!
-  The resize method to use
-*/
-qx.OO.addProperty({ name : "resizeMethod", type : "string", defaultValue : "frame", possibleValues : [ "opaque", "lazyopaque", "frame", "translucent" ] });
-
-
-
-
-
-
-/**
- * Adjust so that it returns a boolean instead of an array.
- * @return {Boolean}
- */
-qx.Proto.isResizeable = qx.Proto.getResizeable = function() {
-  return this.getResizeableWest() || this.getResizeableEast() || this.getResizeableNorth() || this.getResizeableSouth();
-}
-
-qx.Proto._registerResizeEvents = function() {
-  this.addEventListener("mousedown", this._onmousedown);
-  this.addEventListener("mouseup", this._onmouseup);
-  this.addEventListener("mousemove", this._onmousemove);
-}
-
-qx.Proto._onmousedown = function(e)
-{
-  if (this._resizeNorth || this._resizeSouth || this._resizeWest || this._resizeEast)
-  {
-    // enable capturing
-    this.setCapture(true);
-
-    // activate global cursor
-    this.getTopLevelWidget().setGlobalCursor(this.getCursor());
-
-    // caching element
-    var el = this.getElement();
-
-    // measuring and caching of values for resize session
-    var pa = this.getTopLevelWidget();
-    var pl = pa.getElement();
-
-    var l = qx.html.Location.getPageAreaLeft(pl);
-    var t = qx.html.Location.getPageAreaTop(pl);
-    var r = qx.html.Location.getPageAreaRight(pl);
-    var b = qx.html.Location.getPageAreaBottom(pl);
-
-    // handle frame and translucently
-    switch(this.getResizeMethod())
-    {
-      case "translucent":
-        this.setOpacity(0.5);
-        break;
-
-      case "frame":
-        var f = this._frame;
-
-        if (f.getParent() != pa)
-        {
-          f.setParent(pa);
-          qx.ui.core.Widget.flushGlobalQueues();
-        }
-
-        f._applyRuntimeLeft(qx.html.Location.getPageBoxLeft(el) - l);
-        f._applyRuntimeTop(qx.html.Location.getPageBoxTop(el) - t);
-
-        f._applyRuntimeWidth(qx.html.Dimension.getBoxWidth(el));
-        f._applyRuntimeHeight(qx.html.Dimension.getBoxHeight(el));
-
-        f.setZIndex(this.getZIndex() + 1);
-
-        break;
-    }
-
-    // create resize session
-    var s = this._resizeSession = {};
-    var minRef = this._child;
-
-    if (this._resizeWest)
-    {
-      s.boxWidth = qx.html.Dimension.getBoxWidth(el);
-      s.boxRight = qx.html.Location.getPageBoxRight(el);
-    }
-
-    if (this._resizeWest || this._resizeEast)
-    {
-      s.boxLeft = qx.html.Location.getPageBoxLeft(el);
-
-      s.parentAreaOffsetLeft = l;
-      s.parentAreaOffsetRight = r;
-
-      s.minWidth = minRef.getMinWidthValue();
-      s.maxWidth = minRef.getMaxWidthValue();
-    }
-
-    if (this._resizeNorth)
-    {
-      s.boxHeight = qx.html.Dimension.getBoxHeight(el);
-      s.boxBottom = qx.html.Location.getPageBoxBottom(el);
-    }
-
-    if (this._resizeNorth || this._resizeSouth)
-    {
-      s.boxTop = qx.html.Location.getPageBoxTop(el);
-
-      s.parentAreaOffsetTop = t;
-      s.parentAreaOffsetBottom = b;
-
-      s.minHeight = minRef.getMinHeightValue();
-      s.maxHeight = minRef.getMaxHeightValue();
-    }
-  }
-  else
-  {
-    // cleanup resize session
-    delete this._resizeSession;
-  }
-
-  // stop event
-  e.stopPropagation();
-}
-
-qx.Proto._onmouseup = function(e)
-{
-  var s = this._resizeSession;
-
-  if (s)
-  {
-    // disable capturing
-    this.setCapture(false);
-
-    // deactivate global cursor
-    this.getTopLevelWidget().setGlobalCursor(null);
-
-    // sync sizes to frame
-    switch(this.getResizeMethod())
-    {
-      case "frame":
-        var o = this._frame;
-        if (!(o && o.getParent())) {
-          break;
-        }
-        // no break here
-
-      case "lazyopaque":
-        if (s.lastLeft != null) {
-          this.setLeft(s.lastLeft);
-        }
-
-        if (s.lastTop != null) {
-          this.setTop(s.lastTop);
-        }
-
-        if (s.lastWidth != null) {
-          var child = this.getChildren()[0];
-          if (child) {
-            child.setWidth(s.lastWidth);
-          }
-        }
-
-        if (s.lastHeight != null) {
-          var child = this.getChildren()[0];
-          if (child) {
-            child.setHeight(s.lastHeight);
-          }
-        }
-
-        if (this.getResizeMethod() == "frame") {
-          this._frame.setParent(null);
-        }
-        break;
-
-      case "translucent":
-        this.setOpacity(null);
-        break;
-    }
-
-    // cleanup session
-    delete this._resizeNorth;
-    delete this._resizeEast;
-    delete this._resizeSouth;
-    delete this._resizeWest;
-
-    delete this._resizeSession;
-  }
-
-  // stop event
-  e.stopPropagation();
-}
-
-qx.Proto._near = function(p, e) {
-  return e > (p - 5) && e < (p + 5);
-}
-
-qx.Proto._onmousemove = function(e)
-{
-  var s = this._resizeSession;
-
-  if (s)
-  {
-    if (this._resizeWest)
-    {
-      s.lastWidth = qx.lang.Number.limit(s.boxWidth + s.boxLeft - Math.max(e.getPageX(), s.parentAreaOffsetLeft), s.minWidth, s.maxWidth);
-      s.lastLeft = s.boxRight - s.lastWidth - s.parentAreaOffsetLeft;
-    }
-    else if (this._resizeEast)
-    {
-      s.lastWidth = qx.lang.Number.limit(Math.min(e.getPageX(), s.parentAreaOffsetRight) - s.boxLeft, s.minWidth, s.maxWidth);
-    }
-
-    if (this._resizeNorth)
-    {
-      s.lastHeight = qx.lang.Number.limit(s.boxHeight + s.boxTop - Math.max(e.getPageY(), s.parentAreaOffsetTop), s.minHeight, s.maxHeight);
-      s.lastTop = s.boxBottom - s.lastHeight - s.parentAreaOffsetTop;
-    }
-    else if (this._resizeSouth)
-    {
-      s.lastHeight = qx.lang.Number.limit(Math.min(e.getPageY(), s.parentAreaOffsetBottom) - s.boxTop, s.minHeight, s.maxHeight);
-    }
-
-    switch(this.getResizeMethod())
-    {
-      case "opaque":
-      case "translucent":
-        if (this._resizeWest || this._resizeEast)
-        {
-          this.setWidth(s.lastWidth);
-
-          if (this._resizeWest) {
-            this.setLeft(s.lastLeft);
-          }
-        }
-
-        if (this._resizeNorth || this._resizeSouth)
-        {
-          this.setHeight(s.lastHeight);
-
-          if (this._resizeNorth) {
-            this.setTop(s.lastTop);
-          }
-        }
-
-        break;
-
-      default:
-        var o = this.getResizeMethod() == "frame" ? this._frame : this;
-
-        if (this._resizeWest || this._resizeEast)
-        {
-          o._applyRuntimeWidth(s.lastWidth);
-
-          if (this._resizeWest) {
-            o._applyRuntimeLeft(s.lastLeft);
-          }
-        }
-
-        if (this._resizeNorth || this._resizeSouth)
-        {
-          o._applyRuntimeHeight(s.lastHeight);
-
-          if (this._resizeNorth) {
-            o._applyRuntimeTop(s.lastTop);
-          }
-        }
-    }
-  }
-  else
-  {
-    var resizeMode = "";
-    var el = this.getElement();
-
-    this._resizeNorth = this._resizeSouth = this._resizeWest = this._resizeEast = false;
-
-    if (this._near(qx.html.Location.getPageBoxTop(el), e.getPageY()))
-    {
-      if (this.getResizeableNorth()) {
-        resizeMode = "n";
-        this._resizeNorth = true;
-      }
-    }
-    else if (this._near(qx.html.Location.getPageBoxBottom(el), e.getPageY()))
-    {
-      if (this.getResizeableSouth()) {
-        resizeMode = "s";
-        this._resizeSouth = true;
-      }
-    }
-
-    if (this._near(qx.html.Location.getPageBoxLeft(el), e.getPageX()))
-    {
-      if (this.getResizeableWest()) {
-        resizeMode += "w";
-        this._resizeWest = true;
-      }
-    }
-    else if (this._near(qx.html.Location.getPageBoxRight(el), e.getPageX()))
-    {
-      if (this.getResizeableEast()) {
-        resizeMode += "e";
-        this._resizeEast = true;
-      }
-    }
-
-    if (this._resizeNorth || this._resizeSouth || this._resizeWest || this._resizeEast)
-    {
-      this.setCursor(resizeMode + "-resize");
-    }
-    else
-    {
-      this.setCursor(null);
-    }
-  }
-
-  // stop event
-  e.stopPropagation();
-}
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  if (this._frame)
-  {
-    this._frame.dispose();
-    this._frame = null;
-  }
-
-  return qx.ui.layout.CanvasLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/splitpane/HorizontalSplitPane.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/splitpane/HorizontalSplitPane.js
deleted file mode 100644 (file)
index 6ff0692..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Volker Pauli
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_splitpane)
-
-************************************************************************ */
-
-/**
- *
- * Creates a new instance of a horizontal SplitPane.<br /><br />
- *
- * new qx.ui.splitpane.HorizontalSplitPane()<br />
- * new qx.ui.splitpane.HorizontalSplitPane(firstSize, secondSize)
- *
- * @param firstSize {String} The size of the left pane. Allowed values are any by {@link qx.ui.core.Widget} supported unit.
- * @param secondSize {String} The size of the right pane. Allowed values are any by {@link qx.ui.core.Widget} supported unit.
- */
-qx.OO.defineClass("qx.ui.splitpane.HorizontalSplitPane", qx.ui.splitpane.SplitPane,
-function(firstSize, secondSize) {
-  qx.ui.splitpane.SplitPane.call(this, "horizontal", firstSize, secondSize);
-});
-
-
-
-
-
-/*
-------------------------------------------------------------------------------------
-  DISPOSER
-------------------------------------------------------------------------------------
- */
-
-/**
- * Garbage collection
- */
-qx.Proto.dispose = function() {
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  return qx.ui.splitpane.SplitPane.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/splitpane/SplitPane.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/splitpane/SplitPane.js
deleted file mode 100644 (file)
index 3ed9d4b..0000000
+++ /dev/null
@@ -1,762 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Volker Pauli (vpauli)
-     * Sebastian Werner (wpbasti)
-     * Carsten Lergenmueller (carstenL)
-
- ************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_splitpane)
-#embed(qx.widgettheme/splitpane/*)
-
- ************************************************************************ */
-
-
-/**
- * Creates a new instance of a SplitPane. It allows the user to dynamically resize
- * the areas dropping the border between.
- *
- * new qx.ui.splitpane.SplitPane(orientation)
- * new qx.ui.splitpane.SplitPane(orientation, firstSize, secondSize)
- *
- * @param orientation {String} The orientation of the splitpane control. Allowed values are "horizontal" (default) and "vertical". This is the same type as used in {@link qx.ui.layout.BoxLayout#orientation}.
- * @param firstSize {String} The size of the left (top) pane. Allowed values are any by {@link qx.ui.core.Widget} supported unit.
- * @param secondSize {String} The size of the right (bottom) pane. Allowed values are any by {@link qx.ui.core.Widget} supported unit.
- */
-qx.OO.defineClass("qx.ui.splitpane.SplitPane", qx.ui.layout.CanvasLayout,
-function(orientation, firstSize, secondSize)
-{
-  qx.ui.layout.CanvasLayout.call(this);
-
-  // CREATE INNER BOX LAYOUT
-  var box = this._box = new qx.ui.layout.BoxLayout;
-  box.setEdge(0);
-  this.add(box);
-
-  /*
-
-  the splitpane itself is a boxlayout resides on top of a canvas for easier computing of positional values
-
-  ---------------------------------------------------------------------------------------
-  |  canvas                                                                               |
-  |  -----------------------------------------------------------------------------------  |
-  | | box                                                                               | |
-  | | ---------------------------  ---  ----------------------------------------------- | |
-  | | |                         |  | |  |                                             | | |
-  | | | firstArea               |  |s|  | secondArea                                  | | |
-  | | |                         |  |p|  |                                             | | |
-  | | |                         |  |l|  |                                             | | |
-  | | |                         |  |i|  |                                             | | |
-  | | |                         |  |t|  |                                             | | |
-  | | |                         |  |t|  |                                             | | |
-  | | |                         |  |e|  |                                             | | |
-  | | |                         |  |r|  |                                             | | |
-  | | |                         |  | |  |                                             | | |
-  | | ---------------------------  ---  ----------------------------------------------- | |
-  |  -----------------------------------------------------------------------------------  |
-  |                                                                                       |
-  ---------------------------------------------------------------------------------------
-
-  */
-
-  // CREATE SLIDER
-  this._slider = new qx.ui.layout.CanvasLayout;
-  this._slider.setAppearance("splitpane-slider");
-  this._slider.setStyleProperty("fontSize", "0px");
-  this._slider.setStyleProperty("lineHeight", "0px");
-  this._slider.hide();
-  this._slider._pane = this;
-  this.add(this._slider);
-
-  // CREATE SPLITTER
-  this._splitter = new qx.ui.layout.CanvasLayout;
-  this._splitter.setStyleProperty("fontSize", "0px");
-  this._splitter.setStyleProperty("lineHeight", "0px");
-  this._splitter.setAppearance("splitpane-splitter");
-  this._splitter._pane = this;
-
-  // PATCH METHODS
-  this._slider._applyRuntimeLeft = this._splitter._applyRuntimeLeft = this._applyRuntimeLeftWrapper;
-  this._slider._applyRuntimeTop = this._splitter._applyRuntimeTop = this._applyRuntimeTopWrapper;
-
-  // CREATE KNOB
-  this._knob = new qx.ui.basic.Image;
-  this._knob.setAppearance("splitpane-knob");
-  this._knob.setVisibility(false);
-  this.add(this._knob);
-
-  // CREATE AREAS
-  this._firstArea = new qx.ui.layout.CanvasLayout;
-  this._secondArea = new qx.ui.layout.CanvasLayout;
-
-  // FILL BOX
-  box.add(this._firstArea, this._splitter, this._secondArea);
-
-  // APPLY DIMENSIONS
-  this.setFirstSize(firstSize || "1*");
-  this.setSecondSize(secondSize || "1*");
-
-  // APPLY ORIENTATION
-  this.setOrientation(orientation || "horizontal");
-});
-
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
- */
-
-/**
- * Appearance change
- */
-qx.OO.changeProperty({ name : "appearance", defaultValue : "splitpane" });
-
-/**
- * Show the knob
- */
-qx.OO.addProperty({ name : "showKnob", type : "boolean", allowNull : false, defaultValue : false });
-
-/**
- * The layout method for the splitpane. If true, the content will updated immediatly.
- */
-qx.OO.addProperty({ name : "liveResize", type : "boolean", allowNull : false, defaultValue : false, getAlias : "isLiveResize"});
-
-/**
- * The orientation of the splitpane control. Allowed values are "horizontal" (default) and "vertical".
- */
-qx.OO.addProperty({ name : "orientation", type : "string", possibleValues : [ "horizontal", "vertical" ] });
-
-/**
- * The size of the first (left/top) area.
- */
-qx.OO.addProperty({ name : "firstSize" });
-
-/**
- * The size of the second (right/bottom) area.
- */
-qx.OO.addProperty({ name : "secondSize" });
-
-/**
- * Size of the splitter
- */
-qx.OO.addProperty({ name : "splitterSize", defaultValue : 4 });
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PUBLIC METHODS
----------------------------------------------------------------------------
-*/
-
-
-/**
- * adds one or more widget(s) to the left pane
- *
- *@param widget {qx.ui.core.Parent}
- */
-qx.Proto.addLeft = function() {
-  var c = this.getFirstArea();
-  return c.add.apply(c, arguments);
-}
-
-/**
- * adds one or more widget(s) to the top pane
- *
- *@param widget {qx.ui.core.Parent}
- */
-qx.Proto.addTop = function() {
-  var c = this.getFirstArea();
-  return c.add.apply(c, arguments);
-}
-
-/**
- * adds one or more widget(s) to the right pane
- *
- *@param widget {qx.ui.core.Parent}
- */
-qx.Proto.addRight = function() {
-  var c = this.getSecondArea();
-  return c.add.apply(c, arguments);
-}
-
-/**
- * adds one or more widget(s) to the bottom pane
- *
- *@param widget {qx.ui.core.Parent}
- */
-qx.Proto.addBottom = function() {
-  var c = this.getSecondArea();
-  return c.add.apply(c, arguments);
-}
-
-/**
- * Returns the splitter.
- *
- * @return {qx.ui.core.Widget} The splitter.
- */
-qx.Proto.getSplitter = function() {
-  return this._splitter;
-}
-
-/**
- * Returns the knob.
- *
- * @return {qx.ui.core.Widget} The knob.
- */
-qx.Proto.getKnob = function() {
-  return this._knob;
-}
-
-
-
-
-
-
-/**
- * Returns the left area (CanvasLayout)
- *
- * @return {qx.ui.layout.CanvasLayout}
- */
-qx.Proto.getLeftArea = function() {
-  return this.getFirstArea();
-}
-
-/**
- * Returns the top area (CanvasLayout)
- *
- * @return {qx.ui.layout.CanvasLayout}
- */
-qx.Proto.getTopArea = function() {
-  return this.getFirstArea();
-}
-
-/**
- * Returns the right area (CanvasLayout)
- *
- * @return {qx.ui.layout.CanvasLayout}
- */
-qx.Proto.getRightArea = function() {
-  return this.getSecondArea();
-}
-
-/**
- * Returns the bottom area (CanvasLayout)
- *
- * @return {qx.ui.layout.CanvasLayout}
- */
-qx.Proto.getBottomArea = function() {
-  return this.getSecondArea();
-}
-
-/**
- * Returns the first area (CanvasLayout)
- *
- * @return {qx.ui.layout.CanvasLayout}
- */
-qx.Proto.getFirstArea = function() {
-  return this._firstArea;
-}
-
-/**
- * Returns the second area (CanvasLayout)
- *
- * @return {qx.ui.layout.CanvasLayout}
- */
-qx.Proto.getSecondArea = function() {
-  return this._secondArea;
-}
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyShowKnob = function(propValue, propOldValue, propData)
-{
-  this._knob.setVisibility(propValue);
-  return true;
-}
-
-qx.Proto._modifyOrientation = function(propValue, propOldValue, propData)
-{
-  // sync orientation to layout
-  this._box.setOrientation(propValue);
-
-  switch(propOldValue)
-  {
-    case "horizontal":
-      // remove old listeners
-      this._splitter.removeEventListener("mousedown", this._onSplitterMouseDownX, this);
-      this._splitter.removeEventListener("mousemove", this._onSplitterMouseMoveX, this);
-      this._splitter.removeEventListener("mouseup", this._onSplitterMouseUpX, this);
-      this._knob.removeEventListener("mousedown", this._onSplitterMouseDownX, this);
-      this._knob.removeEventListener("mousemove", this._onSplitterMouseMoveX, this);
-      this._knob.removeEventListener("mouseup", this._onSplitterMouseUpX, this);
-
-      // reconfigure states
-      this._splitter.removeState("horizontal");
-      this._knob.removeState("horizontal");
-
-      // reset old dimensions
-      this._firstArea.setWidth(null);
-      this._secondArea.setWidth(null);
-      this._splitter.setWidth(null);
-
-      break;
-
-    case "vertical":
-      // remove old listeners
-      this._splitter.removeEventListener("mousedown", this._onSplitterMouseDownY, this);
-      this._splitter.removeEventListener("mousemove", this._onSplitterMouseMoveY, this);
-      this._splitter.removeEventListener("mouseup", this._onSplitterMouseUpY, this);
-      this._knob.removeEventListener("mousedown", this._onSplitterMouseDownY, this);
-      this._knob.removeEventListener("mousemove", this._onSplitterMouseMoveY, this);
-      this._knob.removeEventListener("mouseup", this._onSplitterMouseUpY, this);
-
-      // reconfigure states
-      this._splitter.removeState("vertical");
-      this._knob.removeState("vertical");
-
-      // reset old dimensions
-      this._firstArea.setHeight(null);
-      this._secondArea.setHeight(null);
-      this._splitter.setHeight(null);
-
-      break;
-  }
-
-  switch(propValue)
-  {
-    case "horizontal":
-      // add new listeners
-      this._splitter.addEventListener("mousemove", this._onSplitterMouseMoveX, this);
-      this._splitter.addEventListener("mousedown", this._onSplitterMouseDownX, this);
-      this._splitter.addEventListener("mouseup", this._onSplitterMouseUpX, this);
-      this._knob.addEventListener("mousemove", this._onSplitterMouseMoveX, this);
-      this._knob.addEventListener("mousedown", this._onSplitterMouseDownX, this);
-      this._knob.addEventListener("mouseup", this._onSplitterMouseUpX, this);
-
-      // reconfigure states
-      this._splitter.addState("horizontal");
-      this._knob.addState("horizontal");
-
-      // apply images
-      this._knob.setSource("widget/splitpane/knob-horizontal.png");
-
-      break;
-
-    case "vertical":
-      // add new listeners
-      this._splitter.addEventListener("mousedown", this._onSplitterMouseDownY, this);
-      this._splitter.addEventListener("mousemove", this._onSplitterMouseMoveY, this);
-      this._splitter.addEventListener("mouseup", this._onSplitterMouseUpY, this);
-      this._knob.addEventListener("mousedown", this._onSplitterMouseDownY, this);
-      this._knob.addEventListener("mousemove", this._onSplitterMouseMoveY, this);
-      this._knob.addEventListener("mouseup", this._onSplitterMouseUpY, this);
-
-      // reconfigure states
-      this._splitter.addState("vertical");
-      this._knob.addState("vertical");
-
-      // apply images
-      this._knob.setSource("widget/splitpane/knob-vertical.png");
-
-      break;
-  }
-
-  // apply new dimensions
-  this._syncFirstSize();
-  this._syncSecondSize();
-  this._syncSplitterSize();
-
-  return true;
-};
-
-qx.Proto._modifyFirstSize = function(propValue, propOldValue, propData)
-{
-  this._syncFirstSize();
-  return true;
-}
-
-qx.Proto._modifySecondSize = function(propValue, propOldValue, propData)
-{
-  this._syncSecondSize();
-  return true;
-}
-
-qx.Proto._modifySplitterSize = function(propValue, propOldValue, propData)
-{
-  this._syncSplitterSize();
-  return true;
-}
-
-qx.Proto._syncFirstSize = function()
-{
-  switch(this.getOrientation())
-  {
-    case "horizontal":
-      this._firstArea.setWidth(this.getFirstSize());
-      break;
-
-    case "vertical":
-      this._firstArea.setHeight(this.getFirstSize());
-      break;
-  }
-}
-
-qx.Proto._syncSecondSize = function()
-{
-  switch(this.getOrientation())
-  {
-    case "horizontal":
-      this._secondArea.setWidth(this.getSecondSize());
-      break;
-
-    case "vertical":
-      this._secondArea.setHeight(this.getSecondSize());
-      break;
-  }
-}
-
-qx.Proto._syncSplitterSize = function()
-{
-  switch(this.getOrientation())
-  {
-    case "horizontal":
-      this._splitter.setWidth(this.getSplitterSize());
-      break;
-
-    case "vertical":
-      this._splitter.setHeight(this.getSplitterSize());
-      break;
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENTS
----------------------------------------------------------------------------
-*/
-
-/**
- * Initializes drag session in case of a mousedown event on splitter in a horizontal splitpane.
- *
- * @param e {qx.event.MouseEvent} The event itself.
- */
-qx.Proto._onSplitterMouseDownX = function(e)
-{
-  if (!e.isLeftButtonPressed()) {
-    return;
-  }
-
-  this._commonMouseDown();
-
-  // activate global cursor
-  this.getTopLevelWidget().setGlobalCursor("col-resize");
-  this._slider.addState("dragging");
-  this._knob.addState("dragging");
-
-  // initialize the drag session
-  this._dragMin = qx.html.Location.getPageInnerLeft(this._box.getElement());
-  this._dragMax = this._dragMin + this._box.getInnerWidth() - this._splitter.getBoxWidth();
-  this._dragOffset = e.getPageX() - qx.html.Location.getPageBoxLeft(this._splitter.getElement());
-}
-
-/**
- * Initializes drag session in case of a mousedown event on splitter in a vertical splitpane.
- *
- * @param e {qx.event.MouseEvent} The event itself.
- */
-qx.Proto._onSplitterMouseDownY = function(e)
-{
-  if (!e.isLeftButtonPressed()) {
-    return;
-  }
-
-  this._commonMouseDown();
-
-  // activate global cursor
-  this.getTopLevelWidget().setGlobalCursor("row-resize");
-  this._slider.addState("dragging");
-  this._knob.addState("dragging");
-
-  // initialize the drag session
-  // dragStart = position of layout + mouse offset on splitter
-  this._dragMin = qx.html.Location.getPageInnerTop(this._box.getElement());
-  this._dragMax = this._dragMin + this._box.getInnerHeight() - this._splitter.getBoxHeight();
-  this._dragOffset = e.getPageY() - qx.html.Location.getPageBoxTop(this._splitter.getElement());
-}
-
-qx.Proto._commonMouseDown = function()
-{
-  // enable capturing
-  this._splitter.setCapture(true);
-
-  // initialize the slider
-  if(!this.isLiveResize())
-  {
-    this._slider.setLeft(this._splitter.getOffsetLeft());
-    this._slider.setTop(this._splitter.getOffsetTop());
-    this._slider.setWidth(this._splitter.getBoxWidth());
-    this._slider.setHeight(this._splitter.getBoxHeight());
-
-    this._slider.show();
-  }
-}
-
-
-
-
-
-
-
-
-/**
- * Move the splitter in case of a mousemove event on splitter in a horizontal splitpane.
- *
- * @param e {qx.event.MouseEvent} The event itself.
- */
-qx.Proto._onSplitterMouseMoveX = function(e)
-{
-  if (!this._splitter.getCapture()) {
-    return;
-  }
-
-  this.isLiveResize() ? this._syncX(e) : this._slider._applyRuntimeLeft(this._normalizeX(e));
-  e.preventDefault();
-}
-
-/**
- * Move the splitter in case of a mousemove event on splitter in a vertical splitpane.
- *
- * @param e {qx.event.MouseEvent} The event itself.
- */
-qx.Proto._onSplitterMouseMoveY = function(e)
-{
-  if (!this._splitter.getCapture()) {
-    return;
-  }
-
-  this.isLiveResize() ? this._syncY(e) : this._slider._applyRuntimeTop(this._normalizeY(e));
-  e.preventDefault();
-}
-
-
-
-
-
-
-
-/**
- * Ends the drag session and computes the new dimensions of panes in case of a mouseup event on splitter in a horizontal splitpane.
- *
- * @param e {qx.event.MouseEvent} The event itself.
- */
-qx.Proto._onSplitterMouseUpX = function(e)
-{
-  if (!this._splitter.getCapture()) {
-    return;
-  }
-
-  if(!this.isLiveResize()) {
-    this._syncX(e);
-  }
-
-  this._commonMouseUp();
-}
-
-/**
- * Ends the drag session and computes the new dimensions of panes in case of a mouseup event on splitter in a vertical splitpane.
- *
- * @param e {qx.event.MouseEvent} The event itself.
- */
-qx.Proto._onSplitterMouseUpY = function(e)
-{
-  if (!this._splitter.getCapture()) {
-    return;
-  }
-
-  if(!this.isLiveResize()) {
-    this._syncY(e);
-  }
-
-  this._commonMouseUp();
-}
-
-qx.Proto._commonMouseUp = function()
-{
-  // hide helpers
-  this._slider.hide();
-
-  // disable capturing
-  this._splitter.setCapture(false);
-
-  // reset the global cursor
-  this.getTopLevelWidget().setGlobalCursor(null);
-
-  // cleanup dragsession
-  this._slider.removeState("dragging");
-  this._knob.removeState("dragging");
-}
-
-qx.Proto._syncX = function(e)
-{
-  var first = this._normalizeX(e);
-  var second = this._box.getInnerWidth() - this._splitter.getBoxWidth() - first;
-
-  this._syncCommon(first, second);
-}
-
-qx.Proto._syncY = function(e)
-{
-  var first = this._normalizeY(e);
-  var second = this._box.getInnerHeight() - this._splitter.getBoxHeight() - first;
-
-  this._syncCommon(first, second);
-}
-
-qx.Proto._syncCommon = function(first, second)
-{
-  this.setFirstSize(first + "*");
-  this.setSecondSize(second + "*");
-}
-
-qx.Proto._normalizeX = function(e) {
-  return qx.lang.Number.limit(e.getPageX() - this._dragOffset, this._dragMin, this._dragMax) - this._dragMin;
-}
-
-qx.Proto._normalizeY = function(e) {
-  return qx.lang.Number.limit(e.getPageY() - this._dragOffset, this._dragMin, this._dragMax) - this._dragMin;
-}
-
-qx.Proto._applyRuntimeLeftWrapper = function(v)
-{
-  if (this._pane.getOrientation() == "horizontal") {
-    this._pane._knob._applyRuntimeLeft(v);
-  }
-
-  return this.constructor.prototype._applyRuntimeLeft.call(this, v);
-}
-
-qx.Proto._applyRuntimeTopWrapper = function(v)
-{
-  if (this._pane.getOrientation() == "vertical") {
-    this._pane._knob._applyRuntimeTop(v);
-  }
-
-  return this.constructor.prototype._applyRuntimeTop.call(this, v);
-}
-
-
-
-
-
-/*
-------------------------------------------------------------------------------------
-  DISPOSER
-------------------------------------------------------------------------------------
- */
-
-/**
- * Garbage collection
- */
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  if(this._firstArea)
-  {
-    this._firstArea.dispose();
-    this._firstArea = null;
-  }
-
-  if(this._secondArea)
-  {
-    this._secondArea.dispose();
-    this._secondArea = null;
-  }
-
-  if (this._splitter)
-  {
-    this._splitter.removeEventListener("mousedown", this._onSplitterMouseDownX, this);
-    this._splitter.removeEventListener("mouseup", this._onSplitterMouseMoveX, this);
-    this._splitter.removeEventListener("mousemove", this._onSplitterMouseUpX, this);
-
-    this._splitter.removeEventListener("mousedown", this._onSplitterMouseDownY, this);
-    this._splitter.removeEventListener("mouseup", this._onSplitterMouseMoveY, this);
-    this._splitter.removeEventListener("mousemove", this._onSplitterMouseUpY, this);
-
-    this._splitter.dispose();
-    this._splitter._pane = null;
-    this._splitter = null;
-  }
-
-  if (this._slider)
-  {
-    this._slider.dispose();
-    this._slider._pane = null;
-    this._slider = null;
-  }
-
-  if (this._knob)
-  {
-    this._knob.removeEventListener("mousedown", this._onSplitterMouseDownX, this);
-    this._knob.removeEventListener("mouseup", this._onSplitterMouseMoveX, this);
-    this._knob.removeEventListener("mousemove", this._onSplitterMouseUpX, this);
-
-    this._knob.removeEventListener("mousedown", this._onSplitterMouseDownY, this);
-    this._knob.removeEventListener("mouseup", this._onSplitterMouseMoveY, this);
-    this._knob.removeEventListener("mousemove", this._onSplitterMouseUpY, this);
-
-    this._knob.dispose();
-    this._knob = null;
-  }
-
-  return qx.ui.layout.BoxLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/splitpane/VerticalSplitPane.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/splitpane/VerticalSplitPane.js
deleted file mode 100644 (file)
index a922450..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Volker Pauli
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_splitpane)
-
-************************************************************************ */
-
-/**
- *
- * Creates a new instance of a vertical SplitPane.<br /><br />
- *
- * new qx.ui.splitpane.VerticalSplitPane()<br />
- * new qx.ui.splitpane.VerticalSplitPane(firstSize, secondSize)
- *
- * @param firstSize {String} The size of the top pane. Allowed values are any by {@link qx.ui.core.Widget} supported unit.
- * @param secondSize {String} The size of the bottom pane. Allowed values are any by {@link qx.ui.core.Widget} supported unit.
- */
-qx.OO.defineClass("qx.ui.splitpane.VerticalSplitPane", qx.ui.splitpane.SplitPane,
-function(firstSize, secondSize) {
-  qx.ui.splitpane.SplitPane.call(this, "vertical", firstSize, secondSize);
-});
-
-
-
-
-
-/*
-------------------------------------------------------------------------------------
-  DISPOSER
-------------------------------------------------------------------------------------
- */
-
-/**
- * Garbage collection
- */
-qx.Proto.dispose = function() {
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  return qx.ui.splitpane.SplitPane.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/AbstractDataCellRenderer.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/AbstractDataCellRenderer.js
deleted file mode 100644 (file)
index 0e86e0f..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_table)
-
-************************************************************************ */
-
-/**
- * An abstract data cell renderer that does the basic coloring
- * (borders, selected look, ...).
- */
-qx.OO.defineClass("qx.ui.table.AbstractDataCellRenderer", qx.ui.table.DataCellRenderer,
-function() {
-  qx.ui.table.DataCellRenderer.call(this);
-});
-
-
-// overridden
-qx.Proto.createDataCellHtml = function(cellInfo) {
-  var AbstractDataCellRenderer = qx.ui.table.AbstractDataCellRenderer;
-  return AbstractDataCellRenderer.MAIN_DIV_START + this._getCellStyle(cellInfo)
-    + AbstractDataCellRenderer.MAIN_DIV_START_END
-    + this._getContentHtml(cellInfo) + AbstractDataCellRenderer.MAIN_DIV_END;
-}
-
-
-// overridden
-qx.Proto.updateDataCellElement = function(cellInfo, cellElement) {
-  cellElement.innerHTML = this._getContentHtml(cellInfo);
-}
-
-
-/**
- * Returns the CSS styles that should be applied to the main div of this cell.
- *
- * @param cellInfo {Map} The information about the cell.
- *        See {@link #createDataCellHtml}.
- * @return the CSS styles of the main div.
- */
-qx.Proto._getCellStyle = function(cellInfo) {
-  return cellInfo.style + qx.ui.table.AbstractDataCellRenderer.MAIN_DIV_STYLE;
-}
-
-
-/**
- * Returns the HTML that should be used inside the main div of this cell.
- *
- * @param cellInfo {Map} The information about the cell.
- *        See {@link #createDataCellHtml}.
- * @return {String} the inner HTML of the main div.
- */
-qx.Proto._getContentHtml = function(cellInfo) {
-  return cellInfo.value;
-}
-
-
-qx.Proto.createDataCellHtml_array_join = function(cellInfo, htmlArr) {
-  var AbstractDataCellRenderer = qx.ui.table.AbstractDataCellRenderer;
-
-  if (qx.ui.table.TablePane.USE_TABLE) {
-    htmlArr.push(AbstractDataCellRenderer.TABLE_TD);
-    htmlArr.push(cellInfo.styleHeight);
-    htmlArr.push("px");
-  } else {
-    htmlArr.push(AbstractDataCellRenderer.ARRAY_JOIN_MAIN_DIV_LEFT);
-    htmlArr.push(cellInfo.styleLeft);
-    htmlArr.push(AbstractDataCellRenderer.ARRAY_JOIN_MAIN_DIV_WIDTH);
-    htmlArr.push(cellInfo.styleWidth);
-    htmlArr.push(AbstractDataCellRenderer.ARRAY_JOIN_MAIN_DIV_HEIGHT);
-    htmlArr.push(cellInfo.styleHeight);
-    htmlArr.push("px");
-  }
-
-  this._createCellStyle_array_join(cellInfo, htmlArr);
-
-  htmlArr.push(AbstractDataCellRenderer.ARRAY_JOIN_MAIN_DIV_START_END);
-
-  this._createContentHtml_array_join(cellInfo, htmlArr);
-
-  if (qx.ui.table.TablePane.USE_TABLE) {
-    htmlArr.push(AbstractDataCellRenderer.TABLE_TD_END);
-  } else {
-    htmlArr.push(AbstractDataCellRenderer.ARRAY_JOIN_MAIN_DIV_END);
-  }
-}
-
-
-qx.Proto._createCellStyle_array_join = function(cellInfo, htmlArr) {
-  htmlArr.push(qx.ui.table.AbstractDataCellRenderer.MAIN_DIV_STYLE);
-}
-
-
-qx.Proto._createContentHtml_array_join = function(cellInfo, htmlArr) {
-  htmlArr.push(cellInfo.value);
-}
-
-
-qx.Class.MAIN_DIV_START = '<div style="';
-qx.Class.MAIN_DIV_START_END = '">';
-qx.Class.MAIN_DIV_END = '</div>';
-/** main style */
-qx.Class.MAIN_DIV_STYLE = ';overflow:hidden;white-space:nowrap;border-right:1px solid #eeeeee;border-bottom:1px solid #eeeeee;padding-left:2px;padding-right:2px;cursor:default'
-  + (qx.core.Client.getInstance().isMshtml() ? '' : ';-moz-user-select:none;');
-
-qx.Class.ARRAY_JOIN_MAIN_DIV_LEFT = '<div style="position:absolute;left:';
-qx.Class.ARRAY_JOIN_MAIN_DIV_WIDTH = 'px;top:0px;width:';
-qx.Class.ARRAY_JOIN_MAIN_DIV_HEIGHT = 'px;height:';
-qx.Class.ARRAY_JOIN_MAIN_DIV_START_END = '">';
-qx.Class.ARRAY_JOIN_MAIN_DIV_END = '</div>';
-
-qx.Class.TABLE_TD = '<td style="height:';
-qx.Class.TABLE_TD_END = '</td>';
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/AbstractResizeBehavior.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/AbstractResizeBehavior.js
deleted file mode 100644 (file)
index 004a810..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2007 Derrell Lipman
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Derrell Lipman (derrell)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(table)
-
-************************************************************************ */
-
-/**
- * An abstract resize behavior.  All resize behaviors should extend this
- * class.
- */
-qx.OO.defineClass("qx.ui.table.AbstractResizeBehavior",
-                  qx.core.Object,
-function()
-{
-  qx.core.Object.call(this);
-
-  this._resizeColumnData = [ ];
-});
-
-
-
-/**
- * Called when the ResizeTableColumnModel is initialized, and upon loading of
- * a new TableModel, to allow the Resize Behaviors to know how many columns
- * are in use.
- *
- * @param numColumns {Integer}
- *   The numbrer of columns in use.
- */
-qx.Proto._setNumColumns = function(numColumns)
-{
-  throw new Error("_setNumColumns is abstract");
-};
-
-
-/**
- * Called when the table has first been rendered.
- *
- * @param tableColumnModel {qx.ui.table.ResizeTableColumnModel}
- *   The table column model in use.  Of particular interest is the property
- *   <i>_table</i> which is a reference to the table widget.  This allows
- *   access to any other features of the table, for use in calculating widths
- *   of columns.
- *
- * @param event
- *   The <i>onappear</i> event object.
- */
-qx.Proto.onAppear = function(tableColumnModel, event)
-{
-  throw new Error("onAppear is abstract");
-};
-
-
-/**
- * Called when the table width changes due to either a window size change
- * or a parent object changing size causing the table to change size.
- *
- * @param tableColumnModel {qx.ui.table.ResizeTableColumnModel}
- *   The table column model in use.  Of particular interest is the property
- *   <i>_table</i> which is a reference to the table widget.  This allows
- *   access to any other features of the table, for use in calculating widths
- *   of columns.
- *
- * @param event
- *   The <i>ontablewidthchanged</i> event object.
- */
-qx.Proto.onTableWidthChanged = function(tableColumnModel, event)
-{
-  throw new Error("onTableWidthChanged is abstract");
-};
-
-
-/**
- * Called when a column width is changed.
- *
- * @param tableColumnModel {qx.ui.table.ResizeTableColumnModel}
- *   The table column model in use.  Of particular interest is the property
- *   <i>_table</i> which is a reference to the table widget.  This allows
- *   access to any other features of the table, for use in calculating widths
- *   of columns.
- *
- * @param event
- *   The <i>widthChanged</i> event object.  This event has data, obtained via
- *   event.getData(), which is an object with three properties: the column
- *   which changed width (data.col), the old width (data.oldWidth) and the new
- *   width (data.newWidth).
- */
-qx.Proto.onColumnWidthChanged = function(tableColumnModel, event)
-{
-  throw new Error("onColumnWidthChanged is abstract");
-};
-
-
-/**
- * Called when a column visibility is changed.
- *
- * @param tableColumnModel {qx.ui.table.ResizeTableColumnModel}
- *   The table column model in use.  Of particular interest is the property
- *   <i>_table</i> which is a reference to the table widget.  This allows
- *   access to any other features of the table, for use in calculating widths
- *   of columns.
- *
- * @param event
- *   The <i>visibilityChanged</i> event object.  This event has data, obtained
- *   via event.getData(), which is an object with two properties: the column
- *   which changed width (data.col) and the new visibility of the column
- *   (data.visible).
- */
-qx.Proto.onVisibilityChanged = function(tableColumnModel, event)
-{
-  throw new Error("onVisibilityChanged is abstract");
-};
-
-
-/*
- * Determine the inner width available to columns in the table.
- *
- * @param tableColumnModel {qx.ui.table.ResizeTableColumnModel}
- *   The table column model in use.
- *
- */
-qx.Proto._getAvailableWidth = function(tableColumnModel)
-{
-  // Get the inner width off the table
-  var el = tableColumnModel._table.getElement();
-  var width = qx.html.Dimension.getInnerWidth(el) - 2;
-
-  // Get the last meta column scroller
-  var scrollers = tableColumnModel._table._getPaneScrollerArr();
-  var lastScroller = scrollers[scrollers.length - 1];
-
-  // Update the scroll bar visibility so we can determine if the vertical bar
-  // is displayed.  If it is, we'll need to reduce available space by its
-  // width.
-  tableColumnModel._table._updateScrollBarVisibility();
-
-  // If the column visibility button is displayed or a verticalscroll bar is
-  // being displayed, then reduce the available width by the width of those.
-  if (tableColumnModel._table.getColumnVisibilityButtonVisible() ||
-      (lastScroller._verScrollBar.getVisibility() &&
-       lastScroller._verScrollBar.getWidth() == "auto"))
-  {
-    width -= 16;
-  }
-
-  return width;
-};
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/AbstractTableModel.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/AbstractTableModel.js
deleted file mode 100644 (file)
index ba5e750..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_table)
-
-************************************************************************ */
-
-/**
- * An abstract table model that performs the column handling, so subclasses only
- * need to care for row handling.
- */
-qx.OO.defineClass("qx.ui.table.AbstractTableModel", qx.ui.table.TableModel,
-function() {
-  qx.ui.table.TableModel.call(this);
-
-  this._columnIdArr = [];
-  this._columnNameArr = [];
-  this._columnIndexMap = {};
-});
-
-
-// overridden
-qx.Proto.getColumnCount = function() {
-  return this._columnIdArr.length;
-}
-
-
-// overridden
-qx.Proto.getColumnIndexById = function(columnId) {
-  return this._columnIndexMap[columnId];
-}
-
-
-// overridden
-qx.Proto.getColumnId = function(columnIndex) {
-  return this._columnIdArr[columnIndex];
-}
-
-
-// overridden
-qx.Proto.getColumnName = function(columnIndex) {
-  return this._columnNameArr[columnIndex];
-}
-
-
-/**
- * Sets the column IDs. These IDs may be used internally to identify a column.
- * <p>
- * Note: This will clear previously set column names.
- * </p>
- *
- * @param columnIdArr {String[]} the IDs of the columns.
- * @see #setColumns
- */
-qx.Proto.setColumnIds = function(columnIdArr) {
-  this._columnIdArr = columnIdArr;
-
-  // Create the reverse map
-  this._columnIndexMap = {};
-  for (var i = 0; i < columnIdArr.length; i++) {
-    this._columnIndexMap[columnIdArr[i]] = i;
-  }
-  this._columnNameArr = new Array(columnIdArr.length);
-
-  // Inform the listeners
-  if (!this._internalChange) {
-    this.createDispatchEvent(qx.ui.table.TableModel.EVENT_TYPE_META_DATA_CHANGED);
-  }
-}
-
-
-/**
- * Sets the column names. These names will be shown to the user.
- * <p>
- * Note: The column IDs have to be defined before.
- * </p>
- *
- * @param columnNameArr {String[]} the names of the columns.
- * @see #setColumnIds
- */
-qx.Proto.setColumnNamesByIndex = function(columnNameArr) {
-  if (this._columnIdArr.length != columnNameArr.length) {
-    throw new Error("this._columnIdArr and columnNameArr have different length: "
-      + this._columnIdArr.length + " != " + columnNameArr.length);
-  }
-  this._columnNameArr = columnNameArr;
-
-  // Inform the listeners
-  this.createDispatchEvent(qx.ui.table.TableModel.EVENT_TYPE_META_DATA_CHANGED);
-}
-
-
-/**
- * Sets the column names. These names will be shown to the user.
- * <p>
- * Note: The column IDs have to be defined before.
- * </p>
- *
- * @param columnNameMap {Map} a map containing the column IDs as keys and the
- *        column name as values.
- * @see #setColumnIds
- */
-qx.Proto.setColumnNamesById = function(columnNameMap) {
-  this._columnNameArr = new Array(this._columnIdArr.length);
-  for (var i = 0; i < this._columnIdArr.length; ++i) {
-    this._columnNameArr[i] = columnNameMap[this._columnIdArr[i]];
-  }
-}
-
-
-/**
- * Sets the columns.
- *
- * @param columnNameArr {String[]} The column names. These names will be shown to
- *        the user.
- * @param columnIdArr {String[] ? null} The column IDs. These IDs may be used
- *        internally to identify a column. If null, the column names are used as
- *        IDs.
- */
-qx.Proto.setColumns = function(columnNameArr, columnIdArr) {
-  if (columnIdArr == null) {
-    columnIdArr = columnNameArr;
-  }
-
-  if (columnIdArr.length != columnNameArr.length) {
-    throw new Error("columnIdArr and columnNameArr have different length: "
-      + columnIdArr.length + " != " + columnNameArr.length);
-  }
-
-  this._internalChange = true;
-  this.setColumnIds(columnIdArr);
-  this._internalChange = false;
-  this.setColumnNamesByIndex(columnNameArr);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/BooleanDataCellRenderer.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/BooleanDataCellRenderer.js
deleted file mode 100644 (file)
index 44ec0d8..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-     * Carsten Lergenmueller (carstenl)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_table)
-#embed(qx.widgettheme/table/boolean-true.png)
-#embed(qx.widgettheme/table/boolean-false.png)
-#embed(qx.static/image/blank.gif)
-
-************************************************************************ */
-
-/**
- * A data cell renderer for boolean values.
- */
-qx.OO.defineClass("qx.ui.table.BooleanDataCellRenderer", qx.ui.table.IconDataCellRenderer,
-function() {
-  qx.ui.table.IconDataCellRenderer.call(this);
-
-  this._iconUrlTrue  = qx.manager.object.AliasManager.getInstance().resolvePath("widget/table/boolean-true.png");
-  this._iconUrlFalse = qx.manager.object.AliasManager.getInstance().resolvePath("widget/table/boolean-false.png");
-  this._iconUrlNull  = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
-
-});
-
-//overridden
-qx.Proto._identifyImage = function(cellInfo) {
-  var IconDataCellRenderer = qx.ui.table.IconDataCellRenderer;
-  var imageHints = { imageWidth:11, imageHeight:11 };
-  switch (cellInfo.value) {
-    case true:  imageHints.url = this._iconUrlTrue;  break;
-    case false: imageHints.url = this._iconUrlFalse; break;
-    default:    imageHints.url = this._iconUrlNull;  break;
-  }
-  return imageHints;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/CellEditorFactory.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/CellEditorFactory.js
deleted file mode 100644 (file)
index 9d699ae..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_table)
-
-************************************************************************ */
-
-/**
- * A factory creating widgets to use for editing table cells.
- */
-qx.OO.defineClass("qx.ui.table.CellEditorFactory", qx.core.Object,
-function() {
-  qx.core.Object.call(this);
-});
-
-
-/**
- * Creates a cell editor.
- * <p>
- * The cellInfo map contains the following properties:
- * <ul>
- * <li>value (var): the cell's value.</li>
- * <li>row (int): the model index of the row the cell belongs to.</li>
- * <li>col (int): the model index of the column the cell belongs to.</li>
- * <li>xPos (int): the x position of the cell in the table pane.</li>
- * </ul>
- *
- * @param cellInfo {Map} A map containing the information about the cell to
- *    create.
- * @return {qx.ui.core.Widget} the widget that should be used as cell editor.
- */
-qx.Proto.createCellEditor = function(cellInfo) {
-  throw new Error("createCellEditor is abstract");
-}
-
-
-/**
- * Returns the current value of a cell editor.
- *
- * @param cellEditor {qx.ui.core.Widget} The cell editor formally created by
- *    {@link #createCellEditor}.
- * @return {var} the current value from the editor.
- */
-qx.Proto.getCellEditorValue = function(cellEditor) {
-  throw new Error("getCellEditorValue is abstract");
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/CheckBoxCellEditorFactory.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/CheckBoxCellEditorFactory.js
deleted file mode 100644 (file)
index cd9c461..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 David Perez
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * David Perez (david-perez)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_table)
-
-************************************************************************ */
-
-/**
- * For editing boolean data in a checkbox.  It is advisable to use this in conjuntion with BooleanDataCellRenderer.
- */
-qx.OO.defineClass("qx.ui.table.CheckBoxCellEditorFactory", qx.ui.table.CellEditorFactory, function() {
-  qx.ui.table.CellEditorFactory.call(this);
-});
-
-// overridden
-qx.Proto.createCellEditor = function(cellInfo) {
-  var editor = new qx.ui.form.CheckBox;
-  editor.setChecked(cellInfo.value);
-
-  return editor;
-}
-
-// overridden
-qx.Proto.getCellEditorValue = function(cellEditor) {
-   return cellEditor.getChecked();
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/DataCellRenderer.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/DataCellRenderer.js
deleted file mode 100644 (file)
index 553f071..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_table)
-
-************************************************************************ */
-
-/**
- * A cell renderer for data cells.
- */
-qx.OO.defineClass("qx.ui.table.DataCellRenderer", qx.core.Object,
-function() {
-  qx.core.Object.call(this);
-});
-
-
-/**
- * Creates the HTML for a data cell.
- * <p>
- * The cellInfo map contains the following properties:
- * <ul>
- * <li>value (var): the cell's value.</li>
- * <li>rowData (var): contains the row data for the row, the cell belongs to.
- *   The kind of this object depends on the table model, see
- *   {@link TableModel#getRowData()}</li>
- * <li>row (int): the model index of the row the cell belongs to.</li>
- * <li>col (int): the model index of the column the cell belongs to.</li>
- * <li>table (qx.ui.table.Table): the table the cell belongs to.</li>
- * <li>xPos (int): the x position of the cell in the table pane.</li>
- * <li>selected (boolean): whether the cell is selected.</li>
- * <li>focusedCol (boolean): whether the cell is in the same column as the
- *   focused cell.</li>
- * <li>focusedRow (boolean): whether the cell is in the same row as the
- *   focused cell.</li>
- * <li>editable (boolean): whether the cell is editable.</li>
- * <li>style (string): The CSS styles that should be applied to the outer HTML
- *   element.</li>
- * </ul>
- *
- * @param cellInfo {Map} A map containing the information about the cell to
- *    create.
- * @return {String} the HTML of the data cell.
- */
-qx.Proto.createDataCellHtml = function(cellInfo) {
-  throw new Error("createDataCellHtml is abstract");
-}
-
-
-/**
- * Updates the content of the pane.
- *
- * @param completeUpdate {Boolean ? false} if true a complete update is performed.
- *    On a complete update all cell widgets are recreated.
- * @param onlyRow {Integer ? null} if set only the specified row will be updated.
- * @param onlySelectionOrFocusChanged {Boolean ? false} if true, cell values won't
- *        be updated. Only the row background will.
- */
-qx.Proto.updateDataCellElement = function(cellInfo, cellElement) {
-  throw new Error("updateDataCellElement is abstract");
-}
-
-
-/**
- * Updates the content of the pane using array joins.
- *
- * @param completeUpdate {Boolean ? false} if true a complete update is performed.
- *    On a complete update all cell widgets are recreated.
- * @param onlyRow {Integer ? null} if set only the specified row will be updated.
- * @param onlySelectionOrFocusChanged {Boolean ? false} if true, cell values won't
- *        be updated. Only the row background will.
- */
-qx.Proto.createDataCellHtml_array_join = function(cellInfo, htmlArr) {
-  throw new Error("createDataCellHtml_array_join is abstract");
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/DataRowRenderer.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/DataRowRenderer.js
deleted file mode 100644 (file)
index 1dae6c8..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/* ************************************************************************\r
-\r
-   qooxdoo - the new era of web development\r
-\r
-   http://qooxdoo.org\r
-\r
-   Copyright:\r
-     2006 STZ-IDA, Germany, http://www.stz-ida.de\r
-\r
-   License:\r
-     LGPL: http://www.gnu.org/licenses/lgpl.html\r
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php\r
-     See the LICENSE file in the project's top-level directory for details.\r
-\r
-   Authors:\r
-     * Til Schneider (til132)\r
-\r
-************************************************************************ */\r
-\r
-/* ************************************************************************\r
-\r
-#module(ui_table)\r
-\r
-************************************************************************ */\r
-\r
-/**\r
- * A cell renderer for data rows.\r
- */\r
-qx.OO.defineClass("qx.ui.table.DataRowRenderer", qx.core.Object,\r
-function() {\r
-  qx.core.Object.call(this);\r
-});\r
-\r
-\r
-/**\r
- * Updates a data row.\r
- * <p>\r
- * The rowInfo map contains the following properties:\r
- * <ul>\r
- * <li>rowData (var): contains the row data for the row.\r
- *   The kind of this object depends on the table model, see\r
- *   {@link TableModel#getRowData()}</li>\r
- * <li>row (int): the model index of the row.</li>\r
- * <li>selected (boolean): whether a cell in this row is selected.</li>\r
- * <li>focusedRow (boolean): whether the focused cell is in this row.</li>\r
- * <li>table (qx.ui.table.Table): the table the row belongs to.</li>\r
- * </ul>\r
- *\r
- * @param rowInfo {Map} A map containing the information about the row to\r
- *    update. This map has the same structure as in {@link #createDataCell}.\r
- * @param rowElement {element} the DOM element that renders the data rot. This\r
- *    is the same element formally created by the HTML from {@link #createDataCell}.\r
- */\r
-qx.Proto.updateDataRowElement = function(rowInfo, rowElement) {\r
-  throw new Error("updateDataRowElement is abstract");\r
-}\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/DefaultDataCellRenderer.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/DefaultDataCellRenderer.js
deleted file mode 100644 (file)
index cffdde9..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_table)
-
-// This is needed because of the instantiation at the end of this file.
-// I don't think this is a good idea. (wpbasti)
-#require(qx.util.format.NumberFormat)
-
-************************************************************************ */
-
-/**
- * The default data cell renderer.
- */
-qx.OO.defineClass("qx.ui.table.DefaultDataCellRenderer", qx.ui.table.AbstractDataCellRenderer,
-function() {
-  qx.ui.table.AbstractDataCellRenderer.call(this);
-});
-
-
-/**
- * Whether the alignment should automatically be set according to the cell value.
- * If true numbers will be right-aligned.
- */
-qx.OO.addProperty({ name:"useAutoAlign", type:"boolean", defaultValue:true, allowNull:false });
-
-
-// overridden
-qx.Proto._getCellStyle = function(cellInfo) {
-  var style = qx.ui.table.AbstractDataCellRenderer.prototype._getCellStyle(cellInfo);
-
-  var stylesToApply = this._getStyleFlags(cellInfo);
-  if (stylesToApply & qx.ui.table.DefaultDataCellRenderer.STYLEFLAG_ALIGN_RIGHT){
-    style += ";text-align:right";
-  }
-  if (stylesToApply & qx.ui.table.DefaultDataCellRenderer.STYLEFLAG_BOLD){
-    style += ";font-weight:bold";
-  }
-  if (stylesToApply & qx.ui.table.DefaultDataCellRenderer.STYLEFLAG_ITALIC){
-    style += ";font-style:italic";
-  }
-
-  return style;
-}
-
-/**
- * Determines the styles to apply to the cell
- *
- * @param cellInfo {Object} cellInfo of the cell
- * @return the sum of any of the STYLEFLAGS defined below
- */
-qx.Proto._getStyleFlags = function(cellInfo) {
-  if (this.getUseAutoAlign()) {
-    if (typeof cellInfo.value == "number") {
-      return qx.ui.table.DefaultDataCellRenderer.STYLEFLAG_ALIGN_RIGHT;
-    }
-  }
-}
-
-
-// overridden
-qx.Proto._getContentHtml = function(cellInfo) {
-  return qx.html.String.escape(this._formatValue(cellInfo));
-}
-
-
-// overridden
-qx.Proto.updateDataCellElement = function(cellInfo, cellElement) {
-  var clazz = qx.ui.table.DefaultDataCellRenderer;
-  var style = cellElement.style;
-
-  var stylesToApply = this._getStyleFlags(cellInfo);
-  if (stylesToApply & clazz.STYLEFLAG_ALIGN_RIGHT){
-    style.textAlign = "right";
-  } else {
-    style.textAlign = "";
-  }
-
-  if (stylesToApply & clazz.STYLEFLAG_BOLD){
-    style.fontWeight = "bold";
-  } else {
-    style.fontWeight = "";
-  }
-
-  if (stylesToApply & clazz.STYLEFLAG_ITALIC){
-    style.fontStyle = "ital";
-  } else {
-    style.fontStyle = "";
-  }
-
-  var textNode = cellElement.firstChild;
-  if (textNode != null) {
-    textNode.nodeValue = this._formatValue(cellInfo);
-  } else {
-    cellElement.innerHTML = qx.html.String.escape(this._formatValue(cellInfo));
-  }
-}
-
-
-/**
- * Formats a value.
- *
- * @param cellInfo {Map} A map containing the information about the cell to
- *        create. This map has the same structure as in
- *        {@link DataCellRenderer#createDataCell}.
- * @return {String} the formatted value.
- */
-qx.Proto._formatValue = function(cellInfo) {
-  var value = cellInfo.value;
-  if (value == null) {
-    return "";
-  } else if (typeof value == "number") {
-    return qx.ui.table.DefaultDataCellRenderer._numberFormat.format(value);
-  } else if (value instanceof Date) {
-    return qx.util.format.DateFormat.getDateInstance().format(value);
-  } else {
-    return value;
-  }
-}
-
-
-qx.Proto._createCellStyle_array_join = function(cellInfo, htmlArr) {
-  qx.ui.table.AbstractDataCellRenderer.prototype._createCellStyle_array_join(cellInfo, htmlArr);
-
-  var stylesToApply = this._getStyleFlags(cellInfo);
-  if (stylesToApply & qx.ui.table.DefaultDataCellRenderer.STYLEFLAG_ALIGN_RIGHT){
-    htmlArr.push(";text-align:right");
-  }
-  if (stylesToApply & qx.ui.table.DefaultDataCellRenderer.STYLEFLAG_BOLD){
-    htmlArr.push(";font-weight:bold");
-  }
-  if (stylesToApply & qx.ui.table.DefaultDataCellRenderer.STYLEFLAG_ITALIC){
-    htmlArr.push(";font-style:italic");
-  }
-}
-
-
-qx.Proto._createContentHtml_array_join = function(cellInfo, htmlArr) {
-  htmlArr.push(qx.html.String.escape(this._formatValue(cellInfo)));
-}
-
-
-qx.Class._numberFormat = new qx.util.format.NumberFormat();
-qx.Class._numberFormat.setMaximumFractionDigits(2);
-
-qx.Class.STYLEFLAG_ALIGN_RIGHT = 1;
-qx.Class.STYLEFLAG_BOLD = 2;
-qx.Class.STYLEFLAG_ITALIC = 4;
-
-
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/DefaultDataRowRenderer.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/DefaultDataRowRenderer.js
deleted file mode 100644 (file)
index 193f9ce..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_table)
-
-************************************************************************ */
-
-/**
- * The default data row renderer.
- */
-qx.OO.defineClass("qx.ui.table.DefaultDataRowRenderer", qx.ui.table.DataRowRenderer,
-function() {
-  qx.ui.table.DataRowRenderer.call(this);
-
-  var Ddrr = qx.ui.table.DefaultDataRowRenderer;
-
-  // Initialize to the default colors.
-  this._colors =
-    {
-      bgcolFocusedSelected     : Ddrr.BGCOL_FOCUSED_SELECTED,
-      bgcolFocusedSelectedBlur : Ddrr.BGCOL_FOCUSED_SELECTED_BLUR,
-      bgcolFocused             : Ddrr.BGCOL_FOCUSED,
-      bgcolFocusedBlur         : Ddrr.BGCOL_FOCUSED_BLUR,
-      bgcolSelected            : Ddrr.BGCOL_SELECTED,
-      bgcolSelectedBlur        : Ddrr.BGCOL_SELECTED_BLUR,
-      bgcolEven                : Ddrr.BGCOL_EVEN,
-      bgcolOdd                 : Ddrr.BGCOL_ODD,
-      colSelected              : Ddrr.COL_SELECTED,
-      colNormal                : Ddrr.COL_NORMAL
-    };
-
-});
-
-
-/** Whether the focused row should be highlighted. */
-qx.OO.addProperty({ name:"highlightFocusRow", type:"boolean", allowNull:false, defaultValue:true});
-
-/**
- * Whether the focused row and the selection should be grayed out when the
- * table hasn't the focus.
- */
-qx.OO.addProperty({ name:"visualizeFocusedState", type:"boolean", allowNull:false, defaultValue:true});
-
-/** The font family used for the data row */
-qx.OO.addProperty({ name:"fontFamily", type:"string", allowNull:false, defaultValue:"'Segoe UI', Corbel, Calibri, Tahoma, 'Lucida Sans Unicode', sans-serif" });
-
-/** The font size used for the data row */
-qx.OO.addProperty({ name:"fontSize", type:"string", allowNull:false, defaultValue:"11px" });
-
-
-// overridden
-qx.Proto.updateDataRowElement = function(rowInfo, rowElem) {
-  rowElem.style.fontFamily = this.getFontFamily();
-  rowElem.style.fontSize   = this.getFontSize();
-
-  if (rowInfo.focusedRow && this.getHighlightFocusRow()) {
-    if (rowInfo.table.getFocused() || !this.getVisualizeFocusedState()) {
-      rowElem.style.backgroundColor = rowInfo.selected ? this._colors.bgcolFocusedSelected : this._colors.bgcolFocused;
-    } else {
-      rowElem.style.backgroundColor = rowInfo.selected ? this._colors.bgcolFocusedSelectedBlur : this._colors.bgcolFocusedBlur;
-    }
-  } else {
-    if (rowInfo.selected) {
-      if (rowInfo.table.getFocused() || !this.getVisualizeFocusedState()) {
-        rowElem.style.backgroundColor = this._colors.bgcolSelected;
-      } else {
-        rowElem.style.backgroundColor = this._colors.bgcolSelectedBlur;
-      }
-    } else {
-      rowElem.style.backgroundColor = (rowInfo.row % 2 == 0) ? this._colors.bgcolEven : this._colors.bgcolOdd;
-    }
-  }
-  rowElem.style.color = rowInfo.selected ? this._colors.colSelected : this._colors.colNormal;
-};
-
-
-// Array join test
-qx.Proto._createRowStyle_array_join = function(rowInfo, htmlArr) {
-  htmlArr.push(";font-family:");
-  htmlArr.push(this.getFontFamily());
-  htmlArr.push(";font-size:");
-  htmlArr.push(this.getFontSize());
-
-  htmlArr.push(";background-color:");
-  if (rowInfo.focusedRow && this.getHighlightFocusRow()) {
-    if (rowInfo.table.getFocused() || !this.getVisualizeFocusedState()) {
-      htmlArr.push(rowInfo.selected ? this._colors.bgcolFocusedSelected : this._colors.bgcolFocused);
-    } else {
-      htmlArr.push(rowInfo.selected ? this._colors.bgcolFocusedSelectedBlur : this._colors.bgcolFocusedBlur);
-    }
-  } else {
-    if (rowInfo.selected) {
-      if (rowInfo.table.getFocused() || !this.getVisualizeFocusedState()) {
-        htmlArr.push(this._colors.bgcolSelected);
-      } else {
-        htmlArr.push(this._colors.bgcolSelectedBlur);
-      }
-    } else {
-      htmlArr.push((rowInfo.row % 2 == 0) ? this._colors.bgcolEven : this._colors.bgcolOdd);
-    }
-  }
-  htmlArr.push(';color:');
-  htmlArr.push(rowInfo.selected ? this._colors.colSelected : this._colors.colNormal);
-};
-
-
-/**
- * Allow setting the table row colors.
- *
- * @param colors {Map}
- *    The value of each property in the map is a string containing either a
- *    number (e.g. "#518ad3") or color name ("white") representing the color
- *    for that type of display.  The map may contain any or all of the
- *    following properties:
- *    <ul>
- *      <li>bgcolFocusedSelected</li>
- *      <li>bgcolFocusedSelectedBlur</li>
- *      <li>bgcolFocused</li>
- *      <li>bgcolFocusedBlur</li>
- *      <li>bgcolSelected</li>
- *      <li>bgcolSelectedBlur</li>
- *      <li>bgcolEven</li>
- *      <li>bgcolOdd</li>
- *      <li>colSelected</li>
- *      <li>colNormal</li>
- *    </ul>
- */
-qx.Proto.setRowColors = function(colors)
-{
-  for (var color in colors)
-  {
-    this._colors[color] = colors[color];
-  }
-}
-
-qx.Class.BGCOL_FOCUSED_SELECTED = "#5a8ad3";
-qx.Class.BGCOL_FOCUSED_SELECTED_BLUR = "#b3bac6";
-qx.Class.BGCOL_FOCUSED = "#ddeeff";
-qx.Class.BGCOL_FOCUSED_BLUR = "#dae0e7";
-qx.Class.BGCOL_SELECTED = "#335ea8";
-qx.Class.BGCOL_SELECTED_BLUR = "#989ea8";
-qx.Class.BGCOL_EVEN = "#faf8f3";
-qx.Class.BGCOL_ODD = "white";
-qx.Class.COL_SELECTED = "white";
-qx.Class.COL_NORMAL = "black";
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/DefaultHeaderCellRenderer.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/DefaultHeaderCellRenderer.js
deleted file mode 100644 (file)
index 97b788b..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_table)
-#embed(qx.widgettheme/table/ascending.png)
-#embed(qx.widgettheme/table/descending.png)
-
-************************************************************************ */
-
-/**
- * The default header cell renderer.
- */
-qx.OO.defineClass("qx.ui.table.DefaultHeaderCellRenderer", qx.ui.table.HeaderCellRenderer,
-function() {
-  qx.ui.table.HeaderCellRenderer.call(this);
-});
-
-
-// overridden
-qx.Proto.createHeaderCell = function(cellInfo) {
-  var widget = new qx.ui.basic.Atom();
-  widget.setAppearance("table-header-cell");
-
-  this.updateHeaderCell(cellInfo, widget);
-
-  return widget;
-}
-
-
-// overridden
-qx.Proto.updateHeaderCell = function(cellInfo, cellWidget) {
-  var DefaultHeaderCellRenderer = qx.ui.table.DefaultHeaderCellRenderer;
-
-  cellWidget.setLabel(cellInfo.name);
-
-  cellWidget.setIcon(cellInfo.sorted ? (cellInfo.sortedAscending ? "widget/table/ascending.png" : "widget/table/descending.png") : null);
-  cellWidget.setState(DefaultHeaderCellRenderer.STATE_SORTED, cellInfo.sorted);
-  cellWidget.setState(DefaultHeaderCellRenderer.STATE_SORTED_ASCENDING, cellInfo.sortedAscending);
-}
-
-/**
- * (string) The state which will be set for header cells of sorted columns.
- */
-qx.Class.STATE_SORTED = "sorted";
-
-/**
- * (string) The state which will be set when sorting is ascending.
- */
-qx.Class.STATE_SORTED_ASCENDING = "sortedAscending";
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/DefaultResizeBehavior.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/DefaultResizeBehavior.js
deleted file mode 100644 (file)
index cfcd912..0000000
+++ /dev/null
@@ -1,621 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2007 Derrell Lipman
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Derrell Lipman (derrell)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(table)
-
-************************************************************************ */
-
-/**
- * The default resize behavior.  Until a resize model is loaded, the default
- * behavior is to:
- * <ol>
- *   <li>
- *     Upon the table initially appearing, and upon any window resize, divide
- *     the table space equally between the visible columns.
- *   </li>
- *   <li>
- *     When a column is increased in width, all columns to its right are
- *     pushed to the right with no change to their widths.  This may push some
- *     columns off the right edge of the table, causing a horizontal scroll
- *     bar to appear.
- *   </li>
- *   <li>
- *     When a column is decreased in width, if the total width of all columns
- *     is <i>greater than</i> the table width, no additional column wiidth
- *     changes are made.
- *   </li>
- *   <li>
- *     When a column is decreased in width, if the total width of all columns
- *     is <i>less than</i> the width of the table, the visible column
- *     immediately to the right of the column which decreased in width has its
- *     width increased to fill the remaining space.
- *   </li>
- * </ol>
- *
- * A resize model may be loaded to provide more guidance on how to adjust
- * column width upon each of the events: initial appear, window resize, and
- * column resize. *** TO BE FILLED IN ***
- */
-qx.OO.defineClass("qx.ui.table.DefaultResizeBehavior",
-                  qx.ui.table.AbstractResizeBehavior,
-function()
-{
-  qx.ui.table.AbstractResizeBehavior.call(this);
-});
-
-
-/*
- * A function to instantiate a resize behavior column data object.
- */
-qx.OO.addProperty(
-  {
-    name :
-      "newResizeBehaviorColumnData",
-    type :
-      "function",
-    setOnlyOnce :
-      true,
-    defaultValue:
-      function(obj)
-      {
-        return new qx.ui.table.ResizeBehaviorColumnData();
-      }
-  });
-
-
-/**
- * Set the width of a column.
- *
- * @param col {Integer}
- *   The column whose width is to be set
- *
- * @param width {Integer, String}
- *   The width of the specified column.  The width may be specified as integer
- *   number of pixels (e.g. 100), a string representing percentage of the
- *   inner width of the Table (e.g. "25%"), or a string representing a flex
- *   width (e.g. "1*").
- */
-qx.Proto.setWidth = function(col, width)
-{
-  // Ensure the column is within range
-  if (col >= this._resizeColumnData.length)
-  {
-    throw new Error("Column number out of range");
-  }
-
-  // Set the new width
-  this._resizeColumnData[col].setWidth(width);
-};
-
-
-/**
- * Set the minimum width of a column.
- *
- * @param col {Integer}
- *   The column whose minimum width is to be set
- *
- * @param width {Integer}
- *   The minimum width of the specified column.
- */
-qx.Proto.setMinWidth = function(col, width)
-{
-  // Ensure the column is within range
-  if (col >= this._resizeColumnData.length)
-  {
-    throw new Error("Column number out of range");
-  }
-
-  // Set the new width
-  this._resizeColumnData[col].setMinWidth(width);
-};
-
-
-/**
- * Set the maximum width of a column.
- *
- * @param col {Integer}
- *   The column whose maximum width is to be set
- *
- * @param width {Integer}
- *   The maximum width of the specified column.
- */
-qx.Proto.setMaxWidth = function(col, width)
-{
-  // Ensure the column is within range
-  if (col >= this._resizeColumnData.length)
-  {
-    throw new Error("Column number out of range");
-  }
-
-  // Set the new width
-  this._resizeColumnData[col].setMaxWidth(width);
-};
-
-
-/**
- * Set any or all of the width, minimum width, and maximum width of a column
- * in a single call.
- *
- * @param map {Map}
- *   A map containing any or all of the property names "width", "minWidth",
- *   and "maxWidth".  The property values are as described for
- *   {@link #setWidth}, {@link #setMinWidth} and {@link #setMaxWidth}
- *   respectively.
- */
-qx.Proto.set = function(col, map)
-{
-  for (var prop in map)
-  {
-    switch(prop)
-    {
-    case "width":
-      this.setWidth(col, map[prop]);
-      break;
-
-    case "minWidth":
-      this.setMinWidth(col, map[prop]);
-      break;
-
-    case "maxWidth":
-      this.setMaxWidth(col, map[prop]);
-      break;
-
-    default:
-      throw new Error("Unknown property: " + prop);
-    }
-  }
-};
-
-
-// overloaded
-qx.Proto.onAppear = function(tableColumnModel, event)
-{
-  // Get the initial available width so we know whether a resize caused an
-  // increase or decrease in the available space.
-  this._width = this._getAvailableWidth(tableColumnModel);
-
-  // Calculate column widths
-  this._computeColumnsFlexWidth(tableColumnModel, event);
-};
-
-
-// overloaded
-qx.Proto.onTableWidthChanged = function(tableColumnModel, event)
-{
-  // Calculate column widths
-  this._computeColumnsFlexWidth(tableColumnModel, event);
-};
-
-
-// overloaded
-qx.Proto.onColumnWidthChanged = function(tableColumnModel, event)
-{
-  // Extend the next column to fill blank space
-  this._extendNextColumn(tableColumnModel, event);
-};
-
-
-// overloaded
-qx.Proto.onVisibilityChanged = function(tableColumnModel, event)
-{
-  // Extend the last column to fill blank space
-  this._extendLastColumn(tableColumnModel, event);
-};
-
-
-// overloaded
-qx.Proto._setNumColumns = function(numColumns)
-{
-  // Are there now fewer (or the same number of) columns than there were
-  // previously?
-  if (numColumns <= this._resizeColumnData.length)
-  {
-    // Yup.  Delete the extras.
-    this._resizeColumnData.splice(numColumns);
-    return;
-  }
-
-  // There are more columns than there were previously.  Allocate more.
-  for (var i = this._resizeColumnData.length; i < numColumns; i++)
-  {
-    this._resizeColumnData[i] = this.getNewResizeBehaviorColumnData()();
-    this._resizeColumnData[i]._columnNumber = i;
-  }
-};
-
-
-/**
- * Computes the width of all flexible children (based loosely on the method of
- * the same name in HorizontalBoxLayoutImpl).
- *
- * @param tableColumnModel {qx.ui.table.ResizeTableColumnModel}
- *   The table column model in use.
- *
- * @param event
- *   The event object.
- */
-qx.Proto._computeColumnsFlexWidth = function(tableColumnModel, event)
-{
-  // Semi-permanent configuration settings
-  var debug = true;
-
-  if (debug)
-  {
-    this.debug("computeColumnsFlexWidth");
-  }
-
-  var visibleColumns = tableColumnModel._visibleColumnArr;
-  var visibleColumnsLength = visibleColumns.length;
-  var columnData;
-  var flexibleColumns = [ ];
-  var widthUsed = 0;
-  var i;
-
-  // Determine the available width
-  var width = this._getAvailableWidth(tableColumnModel);
-
-
-  // *************************************************************
-  // 1. Compute the sum of all static sized columns and find
-  //    all flexible columns.
-  // *************************************************************
-  for (i = 0; i < visibleColumnsLength; i++)
-  {
-    // Get the current column's column data
-    columnData = this._resizeColumnData[visibleColumns[i]];
-
-    // Is this column width type "auto"?
-    if (columnData._computedWidthTypeAuto)
-    {
-      // Yup.  Convert it to a Flex "1*"
-      columnData._computedWidthTypeAuto = false;
-      columnData._computedWidthTypeFlex = true;
-      columnData._computedWidthParsed = 1;
-    }
-
-    // Is this column a flex width?
-    if (columnData._computedWidthTypeFlex)
-    {
-      // Yup.  Save it for future processing.
-      flexibleColumns.push(columnData);
-    }
-    else if (columnData._computedWidthTypePercent)
-    {
-      // We can calculate the width of a Percent type right now.  Convert it
-      // to a Flex type that's already calculated (no further calculation
-      // required).
-      columnData._computedWidthPercentValue =
-        Math.round(width * (columnData._computedWidthParsed / 100));
-      widthUsed += columnData._computedWidthPercentValue;
-    }
-    else
-    {
-      // We have a fixed width.  Track width already allocated.
-      widthUsed += columnData.getWidth();
-    }
-  }
-
-  if (debug)
-  {
-    this.debug("Width: " + widthUsed + "/" + width);
-    this.debug("Flexible Count: " + flexibleColumns.length);
-  }
-
-
-  // *************************************************************
-  // 2. Compute the sum of all flexible column widths
-  // *************************************************************
-  var widthRemaining = width - widthUsed;
-  var flexibleColumnsLength = flexibleColumns.length;
-  var prioritySum = 0;
-
-  for (i = 0; i < flexibleColumnsLength; i++)
-  {
-    prioritySum += flexibleColumns[i]._computedWidthParsed;
-  }
-
-
-  // *************************************************************
-  // 3. Calculating the size of each 'part'.
-  // *************************************************************
-  var partWidth = widthRemaining / prioritySum;
-
-  // *************************************************************
-  // 4. Adjust flexible columns, taking min/max values into account
-  // *************************************************************
-  
-  bSomethingChanged = true;
-  for (flexibleColumnsLength = flexibleColumns.length;
-       bSomethingChanged && flexibleColumnsLength > 0;
-       flexibleColumnsLength = flexibleColumns.length)
-  {
-    // Assume nothing will change
-    bSomethingChanged = false;
-
-    for (i = flexibleColumnsLength - 1; i >= 0; i--)
-    {
-      columnData = flexibleColumns[i];
-
-      computedFlexibleWidth =
-        columnData._computedWidthFlexValue =
-        columnData._computedWidthParsed * partWidth;
-
-      // If the part is not within its specified min/max range, adjust it.
-      var min = columnData.getMinWidthValue();
-      var max = columnData.getMaxWidthValue();
-      if (min && computedFlexibleWidth < min)
-      {
-        columnData._computedWidthFlexValue = Math.round(min);
-        widthUsed += columnData._computedWidthFlexValue;
-        qx.lang.Array.removeAt(flexibleColumns, i);
-        bSomethingChanged = true;
-
-        // Don't round fixed-width columns (in step 5)
-        columnData = null;
-      }
-      else if (max && computedFlexibleWidth > max)
-      {
-        columnData._computedWidthFlexValue = Math.round(max);
-        widthUsed += columnData._computedWidthFlexValue;
-        qx.lang.Array.removeAt(flexibleColumns, i);
-        bSomethingChanged = true;
-
-        // Don't round fixed-width columns (in step 5)
-        columnData = null;
-      }
-    }
-  }
-
-  // If any flexible columns remain, then allocate the remaining space to them
-  if (flexibleColumns.length > 0)
-  {
-    // Recalculate the priority sum of the remaining flexible columns
-    prioritySum = 0;
-    for (i = 0; i < flexibleColumnsLength; i++)
-    {
-      prioritySum += flexibleColumns[i]._computedWidthParsed;
-    }
-
-    // Recalculate the width remaining and part width
-    widthRemaining = width - widthUsed;
-    partWidth = widthRemaining / prioritySum;
-
-    // If there's no width remaining...
-    if (widthRemaining <= 0)
-    {
-      // ... then use minimum width * priority for all remaining columns
-      for (i = 0; i < flexibleColumnsLength; i++)
-      {
-        columnData = flexibleColumns[i];
-
-        computedFlexibleWidth =
-          columnData._computedWidthFlexValue =
-          (qx.ui.table.DefaultResizeBehavior.MIN_WIDTH *
-           flexibleColumns[i]._computedWidthParsed);
-        columnData._computedWidthFlexValue = Math.round(computedFlexibleWidth);
-        widthUsed += columnData._computedWidthFlexValue;
-      }
-    }
-    else
-    {
-      // Assign widths of remaining flexible columns
-      for (i = 0; i < flexibleColumnsLength; i++)
-      {
-        columnData = flexibleColumns[i];
-
-        computedFlexibleWidth =
-        columnData._computedWidthFlexValue =
-        columnData._computedWidthParsed * partWidth;
-
-        // If the computed width is less than our hard-coded minimum...
-        if (computedFlexibleWidth <
-            qx.ui.table.DefaultResizeBehavior.MIN_WIDTH)
-        {
-          // ... then use the hard-coded minimum
-          computedFlexibleWidth = qx.ui.table.DefaultResizeBehavior.MIN_WIDTH;
-        }
-
-        columnData._computedWidthFlexValue = Math.round(computedFlexibleWidth);
-        widthUsed += columnData._computedWidthFlexValue;
-      }
-    }
-  }
-
-  // *************************************************************
-  // 5. Fix rounding errors
-  // *************************************************************
-  if (columnData != null && widthRemaining > 0)
-  {
-    columnData._computedWidthFlexValue += width - widthUsed;
-  }
-
-  // *************************************************************
-  // 6. Set the column widths to what we have calculated
-  // *************************************************************
-  for (i = 0; i < visibleColumnsLength; i++)
-  {
-    var colWidth;
-
-    // Get the current column's column data
-    columnData = this._resizeColumnData[visibleColumns[i]];
-
-    // Is this column a flex width?
-    if (columnData._computedWidthTypeFlex)
-    {
-      // Yup.  Set the width to the calculated width value based on flex
-      colWidth = columnData._computedWidthFlexValue;
-    }
-    else if (columnData._computedWidthTypePercent)
-    {
-      // Set the width to the calculated width value based on percent
-      colWidth = columnData._computedWidthPercentValue;
-    }
-    else
-    {
-      colWidth = columnData.getWidth();
-    }
-
-    // Now that we've calculated the width, set it.
-    tableColumnModel.setColumnWidth(visibleColumns[i], colWidth);
-
-    if (debug)
-    {
-      this.debug("col " + columnData._columnNumber + ": width=" + colWidth);
-    }
-  }
-};
-
-
-/**
- * Extend the visible column to right of the column which just changed width,
- * to fill any available space within the inner width of the table.  This
- * means that if the sum of the widths of all columns exceeds the inner width
- * of the table, no change is made.  If, on the other hand, the sum of the
- * widths of all columns is less than the inner width of the table, the
- * visible column to the right of the column which just changed width is
- * extended to take up the width available within the inner width of the
- * table.
- *
- * @param tableColumnModel {qx.ui.table.ResizeTableColumnModel}
- *   The table column model in use.
- *
- * @param event
- *   The event object.
- */
-qx.Proto._extendNextColumn = function(tableColumnModel, event)
-{
-  // Event data properties: col, oldWidth, newWidth
-  var data = event.getData();
-
-  var visibleColumns = tableColumnModel._visibleColumnArr;
-
-  // Determine the available width
-  var width = this._getAvailableWidth(tableColumnModel);
-
-  // Determine the number of visible columns
-  var numColumns = visibleColumns.length;
-
-  // Did this column become longer than it was?
-  if (data.newWidth > data.oldWidth)
-  {
-    // Yup.  Don't resize anything else.  The other columns will just get
-    // pushed off and require scrollbars be added (if not already there).
-    return;
-  }
-
-  // This column became shorter.  See if we no longer take up the full space
-  // that's available to us.
-  var i;
-  var nextCol;
-  var widthUsed = 0;
-  for (i = 0; i < numColumns; i++)
-  {
-    widthUsed +=
-      tableColumnModel.getColumnWidth(visibleColumns[i]);
-  }
-
-  // If the used width is less than the available width...
-  if (widthUsed < width)
-  {
-    // ... then determine the next visible column
-    for (i = 0; i < visibleColumns.length; i++)
-    {
-      if (visibleColumns[i] == data.col)
-      {
-        nextCol = visibleColumns[i + 1];
-        break;
-      }
-    }
-
-    if (nextCol)
-    {
-      // Make the next column take up the available space.
-      var oldWidth = tableColumnModel.getColumnWidth(nextCol);
-      var newWidth = (width - (widthUsed -
-                               tableColumnModel.getColumnWidth(nextCol)));
-      tableColumnModel.setColumnWidth(nextCol, newWidth);
-    }
-  }
-};
-
-
-/**
- * If a column was just made invisible, extend the last column to fill any
- * available space within the inner width of the table.  This means that if
- * the sum of the widths of all columns exceeds the inner width of the table,
- * no change is made.  If, on the other hand, the sum of the widths of all
- * columns is less than the inner width of the table, the last column is
- * extended to take up the width available within the inner width of the
- * table.
- *
- * @param tableColumnModel {qx.ui.table.ResizeTableColumnModel}
- *   The table column model in use.
- *
- * @param event
- *   The event object.
- */
-qx.Proto._extendLastColumn = function(tableColumnModel, event)
-{
-  // Event data properties: col, visible
-  var data = event.getData();
-
-  // If the column just became visible, don't make any width changes
-  if (data.visible)
-  {
-    return;
-  }
-
-  // Get the array of visible columns
-  var visibleColumns = tableColumnModel._visibleColumnArr;
-
-  // Determine the available width
-  var width = this._getAvailableWidth(tableColumnModel);
-
-  // Determine the number of visible columns
-  var numColumns = visibleColumns.length;
-
-  // See if we no longer take up the full space that's available to us.
-  var i;
-  var lastCol;
-  var widthUsed = 0;
-  for (i = 0; i < numColumns; i++)
-  {
-    widthUsed +=
-      tableColumnModel.getColumnWidth(visibleColumns[i]);
-  }
-
-  // If the used width is less than the available width...
-  if (widthUsed < width)
-  {
-    // ... then get the last visible column
-    lastCol = visibleColumns[visibleColumns.length - 1];
-
-    // Make the last column take up the available space.
-    var oldWidth = tableColumnModel.getColumnWidth(lastCol);
-    var newWidth = (width - (widthUsed -
-                             tableColumnModel.getColumnWidth(lastCol)));
-    tableColumnModel.setColumnWidth(lastCol, newWidth);
-  }
-};
-
-
-
-qx.Class.MIN_WIDTH = 10;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/HeaderCellRenderer.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/HeaderCellRenderer.js
deleted file mode 100644 (file)
index 8d66198..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_table)
-
-************************************************************************ */
-
-/**
- * A cell renderer for header cells.
- */
-qx.OO.defineClass("qx.ui.table.HeaderCellRenderer", qx.core.Object,
-function() {
-  qx.core.Object.call(this);
-});
-
-
-/**
- * Creates a header cell.
- * <p>
- * The cellInfo map contains the following properties:
- * <ul>
- * <li>col (int): the model index of the column.</li>
- * <li>xPos (int): the x position of the column in the table pane.</li>
- * <li>name (string): the name of the column.</li>
- * <li>editable (boolean): whether the column is editable.</li>
- * <li>sorted (boolean): whether the column is sorted.</li>
- * <li>sortedAscending (boolean): whether sorting is ascending.</li>
- * </ul>
- *
- * @param cellInfo {Map} A map containing the information about the cell to
- *    create.
- * @return {qx.ui.core.Widget} the widget that renders the header cell.
- */
-qx.Proto.createHeaderCell = function(cellInfo) {
-  throw new Error("createHeaderCell is abstract");
-}
-
-
-/**
- * Updates a header cell.
- *
- * @param cellInfo {Map} A map containing the information about the cell to
- *    create. This map has the same structure as in {@link #createHeaderCell}.
- * @param cellWidget {qx.ui.core.Widget} the widget that renders the header cell. This is
- *    the same widget formally created by {@link #createHeaderCell}.
- */
-qx.Proto.updateHeaderCell = function(cellInfo, cellWidget) {
-  throw new Error("updateHeaderCell is abstract");
-}
-
-
-/** The preferred height of cells created by this header renderer. */
-qx.OO.addProperty({ name:"prefferedCellHeight", type:"number", defaultValue:16, allowNull:false });
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/IconDataCellRenderer.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/IconDataCellRenderer.js
deleted file mode 100644 (file)
index 2e89779..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-     * Carsten Lergenmueller (carstenl)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_table)
-#embed(qx.static/image/blank.gif)
-
-************************************************************************ */
-
-/**
- * A data cell renderer for boolean values.
- */
-qx.OO.defineClass("qx.ui.table.IconDataCellRenderer", qx.ui.table.AbstractDataCellRenderer,
-function() {
-  qx.ui.table.AbstractDataCellRenderer.call(this);
-  this.IMG_BLANK_URL = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
-});
-
-
-/**
- * Identifies the Image to show.
- *
- * @param cellInfo {Map} The information about the cell.
- *        See {@link #createDataCellHtml}.
- * @return {Map} A map having the following attributes:
- *         <ul>
- *         <li>"url": (type string) must be the URL of the image to show.</li>
- *         <li>"imageWidth": (type int) the width of the image in pixels.</li>
- *         <li>"imageHeight": (type int) the height of the image in pixels.</li>
- *         <li>"tooltip": (type string) must be the image tooltip text.</li>
- *         </ul>
- */
-qx.Proto._identifyImage = function(cellInfo) {
-  throw new Error("_identifyImage is abstract");
-}
-
-
-/**
- * Retrieves the image infos.
- *
- * @param cellInfo {Map} The information about the cell.
- *        See {@link #createDataCellHtml}.
- * @return {Map} Map with an "url" attribute (type string)
- *               holding the URL of the image to show
- *               and a "tooltip" attribute
- *               (type string) being the tooltip text (or null if none was specified)
- *
- */
-qx.Proto._getImageInfos= function(cellInfo) {
-  // Query the subclass about image and tooltip
-  var urlAndTooltipMap = this._identifyImage(cellInfo);
-
-  // If subclass refuses to give map, construct it
-  if (urlAndTooltipMap == null || typeof urlAndTooltipMap == "string"){
-    urlAndTooltipMap = {url:urlAndTooltipMap, tooltip:null};
-  }
-
-  // If subclass gave null as url, replace with url to empty image
-  if (urlAndTooltipMap.url == null){
-    urlAndTooltipMap.url = this.IMG_BLANK_URL;
-  }
-
-  return urlAndTooltipMap;
-}
-
-// overridden
-qx.Proto._getCellStyle = function(cellInfo) {
-  var style = qx.ui.table.AbstractDataCellRenderer.prototype._getCellStyle(cellInfo);
-  style += qx.ui.table.IconDataCellRenderer.MAIN_DIV_STYLE;
-  return style;
-}
-
-
-// overridden
-qx.Proto._getContentHtml = function(cellInfo) {
-  var IconDataCellRenderer = qx.ui.table.IconDataCellRenderer;
-
-  var urlAndToolTip = this._getImageInfos(cellInfo);
-  var html = IconDataCellRenderer.IMG_START;
-  if (qx.core.Client.getInstance().isMshtml() && /\.png$/i.test(urlAndToolTip.url)) {
-    html += qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif")
-      + '" style="filter:' + "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + urlAndToolTip.url + "',sizingMethod='scale')";
-  } else {
-    html += urlAndToolTip.url + '" style="';
-  }
-
-  if (urlAndToolTip.imageWidth && urlAndToolTip.imageHeight) {
-    html += ';width:' + urlAndToolTip.imageWidth + 'px'
-         +  ';height:' + urlAndToolTip.imageHeight + 'px';
-  }
-
-  var tooltip = urlAndToolTip.tooltip;
-  if (tooltip != null){
-    html += IconDataCellRenderer.IMG_TITLE_START + tooltip;
-  }
-  html += IconDataCellRenderer.IMG_END;
-  return html;
-}
-
-
-// overridden
-qx.Proto.updateDataCellElement = function(cellInfo, cellElement) {
-  // Set image and tooltip text
-  var urlAndToolTip = this._getImageInfos(cellInfo);
-  var img = cellElement.firstChild;
-  if (qx.core.Client.getInstance().isMshtml()) {
-    if (/\.png$/i.test(urlAndToolTip.url)) {
-      img.src = qx.manager.object.AliasManager.getInstance().resolvePath("static/image/blank.gif");
-      img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + urlAndToolTip.url + "',sizingMethod='scale')";
-    } else {
-      img.src = urlAndToolTip.url;
-      img.style.filter = "";
-    }
-  } else {
-    img.src = urlAndToolTip.url;
-  }
-
-  if (urlAndToolTip.imageWidth && urlAndToolTip.imageHeight) {
-    img.style.width = urlAndToolTip.imageWidth + "px";
-    img.style.height = urlAndToolTip.imageHeight + "px";
-  }
-
-  if (urlAndToolTip.tooltip != null){
-    img.setAttribute("title", urlAndToolTip.tooltip);
-  }
-}
-
-
-// overridden
-qx.Proto._createCellStyle_array_join = function(cellInfo, htmlArr) {
-  qx.ui.table.AbstractDataCellRenderer.prototype._createCellStyle_array_join(cellInfo, htmlArr);
-
-  htmlArr.push(qx.ui.table.IconDataCellRenderer.MAIN_DIV_STYLE);
-}
-
-qx.Proto._createContentHtml_array_join = function(cellInfo, htmlArr) {
-  var IconDataCellRenderer = qx.ui.table.IconDataCellRenderer;
-
-  if (qx.ui.table.TablePane.USE_TABLE) {
-    htmlArr.push(IconDataCellRenderer.TABLE_DIV);
-    htmlArr.push(cellInfo.styleHeight - 2); // -1 for the border, -1 for the padding
-    htmlArr.push(IconDataCellRenderer.TABLE_DIV_CLOSE);
-  }
-
-  htmlArr.push(IconDataCellRenderer.IMG_START);
-  var urlAndToolTip = this._getImageInfos(cellInfo);
-  htmlArr.push(urlAndToolTip.url);
-  var tooltip = urlAndToolTip.tooltip;
-  if (tooltip != null){
-    IconDataCellRenderer.IMG_TITLE_START;
-    htmlArr.push(tooltip);
-  }
-  htmlArr.push(IconDataCellRenderer.IMG_END);
-
-  if (qx.ui.table.TablePane.USE_TABLE) {
-    htmlArr.push(IconDataCellRenderer.TABLE_DIV_END);
-  }
-}
-
-qx.Class.MAIN_DIV_STYLE = ';text-align:center;padding-top:1px;';
-qx.Class.IMG_START = '<img src="';
-qx.Class.IMG_END = '"/>';
-qx.Class.IMG_TITLE_START = '" title="';
-qx.Class.TABLE_DIV = '<div style="overflow:hidden;height:';
-qx.Class.TABLE_DIV_CLOSE = 'px">';
-qx.Class.TABLE_DIV_END = '</div>';
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/IconHeaderCellRenderer.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/IconHeaderCellRenderer.js
deleted file mode 100644 (file)
index fd646e8..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-     * Carsten Lergenmueller (carstenl)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_table)
-
-************************************************************************ */
-
-/**
- * A header cell renderer which renders an icon (only). The icon cannot be combined
- * with text.
- *
- * @param iconUrl {String} URL to the icon to show
- * @param tooltip {String ? ""} Text of the tooltip to show if the mouse hovers over the
- *                             icon
- *
- */
-qx.OO.defineClass("qx.ui.table.IconHeaderCellRenderer", qx.ui.table.DefaultHeaderCellRenderer,
-function(iconUrl, tooltip) {
-  qx.ui.table.DefaultHeaderCellRenderer.call(this);
-  if (iconUrl == null){
-    iconUrl = "";
-  }
-  this.setIconUrl(iconUrl);
-  this.setToolTip(tooltip);
-});
-
-/**
- * URL of the icon to show
- */
-qx.OO.addProperty({ name:"iconUrl", type:"string", defaultValue:"", allowNull:false });
-
-/**
- * ToolTip to show if the mouse hovers of the icon
- */
-qx.OO.addProperty({ name:"toolTip", type:"string", defaultValue:null, allowNull:true });
-
-// overridden
-qx.Proto.updateHeaderCell = function(cellInfo, cellWidget) {
-  qx.ui.table.DefaultHeaderCellRenderer.prototype.updateHeaderCell.call(this, cellInfo, cellWidget);
-
-  // Set URL to icon
-  var img = cellWidget.getUserData("qx_ui_table_IconHeaderCellRenderer_icon");
-  if (img == null){
-    img = new qx.ui.basic.Image();
-    cellWidget.setUserData("qx_ui_table_IconHeaderCellRenderer_icon", img);
-    cellWidget.addAtBegin(img);
-  }
-  img.setSource(this.getIconUrl());
-
-  // Set image tooltip if given
-  var widgetToolTip = cellWidget.getToolTip();
-  if (this.getToolTip() != null){
-
-    //Create tooltip if necessary
-    if (true || widgetToolTip == null ){
-      widgetToolTip = new qx.ui.popup.ToolTip(this.getToolTip());
-      cellWidget.setToolTip(widgetToolTip);
-      //this.debug("Creating tooltip");
-    }
-
-    //Set tooltip text
-    widgetToolTip.getAtom().setLabel(this.getToolTip());
-    //this.debug("Setting tooltip text " + this.getToolTip());
-  }
-
-}
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/RemoteTableModel.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/RemoteTableModel.js
deleted file mode 100644 (file)
index 1d59e1c..0000000
+++ /dev/null
@@ -1,453 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_table)
-
-************************************************************************ */
-
-/**
- * A table model that loads its data from a backend.
- * <p>
- * Only those  rows are loaded that are near the area the user is currently
- * viewing. If the user scrolls, the rows he will see soon are loaded
- * asynchroniously in the background. All loaded data is managed in a cache that
- * automatically removes the last resently used rows when it gets full.
- * <p>
- * This class is abstract: The actual loading of row data must be done by
- * subclasses.
- */
-qx.OO.defineClass("qx.ui.table.RemoteTableModel", qx.ui.table.AbstractTableModel,
-function() {
-  qx.ui.table.AbstractTableModel.call(this);
-
-  this._sortColumnIndex = -1;
-  this._sortAscending = true;
-  this._rowCount = -1;
-
-  this._lruCounter = 0;
-
-  // Holds the index of the first block that is currently loading.
-  // Is -1 if there is currently no request on its way.
-  this._firstLoadingBlock = -1;
-
-  // Holds the index of the first row that should be loaded when the response of
-  // the current request arrives. Is -1 we need no following request.
-  this._firstRowToLoad = -1;
-
-  // Counterpart to _firstRowToLoad
-  this._lastRowToLoad = -1;
-
-  // Holds whether the current request will bring obsolete data. When true the
-  // response of the current request will be ignored.
-  this._ignoreCurrentRequest = false;
-
-  this._rowBlockCache = {};
-  this._rowBlockCount = 0;
-});
-
-
-/** The number of rows that are stored in one cache block. */
-qx.OO.addProperty({ name:"blockSize", type:"number", defaultValue:50, allowNull:false });
-
-/** The maximum number of row blocks kept in the cache. */
-qx.OO.addProperty({ name:"maxCachedBlockCount", type:"number", defaultValue:15, allowNull:false });
-
-/**
- * Whether to clear the cache when some rows are removed.
- * If false the rows are removed locally in the cache.
- */
-qx.OO.addProperty({ name:"clearCacheOnRemove", type:"boolean", defaultValue:false, allowNull:false });
-
-
-// overridden
-qx.Proto.getRowCount = function() {
-  if (this._rowCount == -1) {
-    this._loadRowCount();
-
-    // NOTE: _loadRowCount may set this._rowCount
-    return (this._rowCount == -1) ? 0 : this._rowCount;
-  } else {
-    return this._rowCount;
-  }
-}
-
-
-/**
- * Loads the row count from the server.
- * <p>
- * Implementing classes have to call {@link _onRowDataLoaded()} when the server
- * response arrived. That method has to be called! Even when there was an error.
- */
-qx.Proto._loadRowCount = function() {
-  throw new Error("_loadRowCount is abstract");
-};
-
-
-/**
- * Sets the row count.
- * <p>
- * Has to be called by {@link _loadRowCount()}.
- *
- * @param rowCount {Integer} the number of rows in this model or null if loading.
- */
-qx.Proto._onRowCountLoaded = function(rowCount) {
-  // this.debug("row count loaded: " + rowCount);
-  if (rowCount == null) {
-    rowCount = 0;
-  }
-  this._rowCount = rowCount;
-
-  // Inform the listeners
-  var data = { firstRow:0, lastRow:rowCount - 1, firstColumn:0, lastColumn:this.getColumnCount() - 1 };
-  this.dispatchEvent(new qx.event.type.DataEvent(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED, data), true);
-};
-
-
-/**
- * Reloads the model and clears the local cache.
- */
-qx.Proto.reloadData = function() {
-  this.clearCache();
-
-  // If there is currently a request on its way, then this request will bring
-  // obsolete data -> Ignore it
-  if (this._firstLoadingBlock != -1) {
-    this._ignoreCurrentRequest = true;
-  }
-
-  // Forget a possibly outstanding request
-  // (_loadRowCount will tell the listeners anyway, that the whole table changed)
-  this._firstRowToLoad = -1;
-  this._lastRowToLoad = -1;
-
-  // NOTE: This will inform the listeners as soon as the new row count is known
-  this._loadRowCount();
-};
-
-
-/**
- * Clears the cache.
- */
-qx.Proto.clearCache = function() {
-  this._rowBlockCache = {};
-  this._rowBlockCount = 0;
-};
-
-
-// overridden
-qx.Proto.prefetchRows = function(firstRowIndex, lastRowIndex) {
-  // this.debug("Prefetch wanted: " + firstRowIndex + ".." + lastRowIndex);
-  if (this._firstLoadingBlock == -1) {
-    var blockSize = this.getBlockSize();
-    var totalBlockCount = Math.ceil(this._rowCount / blockSize);
-
-    // There is currently no request running -> Start a new one
-    // NOTE: We load one more block above and below to have a smooth
-    //       scrolling into the next block without blank cells
-    var firstBlock = parseInt(firstRowIndex / blockSize) - 1;
-    if (firstBlock < 0) {
-      firstBlock = 0;
-    }
-    var lastBlock = parseInt(lastRowIndex / blockSize) + 1;
-    if (lastBlock >= totalBlockCount) {
-      lastBlock = totalBlockCount - 1;
-    }
-
-    // Check which blocks we have to load
-    var firstBlockToLoad = -1;
-    var lastBlockToLoad = -1;
-    for (var block = firstBlock; block <= lastBlock; block++) {
-      if (this._rowBlockCache[block] == null || this._rowBlockCache[block].isDirty) {
-        // We don't have this block
-        if (firstBlockToLoad == -1) {
-          firstBlockToLoad = block;
-        }
-        lastBlockToLoad = block;
-      }
-    }
-
-    // Load the blocks
-    if (firstBlockToLoad != -1) {
-      this._firstRowToLoad = -1;
-      this._lastRowToLoad = -1;
-
-      this._firstLoadingBlock = firstBlockToLoad;
-
-      // this.debug("Starting server request. rows: " + firstRowIndex + ".." + lastRowIndex + ", blocks: " + firstBlockToLoad + ".." + lastBlockToLoad);
-      this._loadRowData(firstBlockToLoad * blockSize, (lastBlockToLoad + 1) * blockSize - 1);
-    }
-  } else {
-    // There is already a request running -> Remember this request
-    // so it can be executed after the current one is finished.
-    this._firstRowToLoad = firstRowIndex;
-    this._lastRowToLoad = lastRowIndex;
-  }
-};
-
-
-/**
- * Loads some row data from the server.
- * <p>
- * Implementing classes have to call {@link _onRowDataLoaded()} when the server
- * response arrived. That method has to be called! Even when there was an error.
- *
- * @param firstRow {Integer} The index of the first row to load.
- * @param lastRow {Integer} The index of the last row to load.
- */
-qx.Proto._loadRowData = function(firstRow, lastRow) {
-  throw new Error("_loadRowCount is abstract");
-};
-
-
-/**
- * Sets row data.
- * <p>
- * Has to be called by {@link _loadRowData()}.
- *
- * @param rowDataArr {Map[]} the loaded row data or null if there was an error.
- */
-qx.Proto._onRowDataLoaded = function(rowDataArr) {
-  if (rowDataArr != null && ! this._ignoreCurrentRequest) {
-    var blockSize = this.getBlockSize();
-    var blockCount = Math.ceil(rowDataArr.length / blockSize);
-    if (blockCount == 1) {
-      // We got one block -> Use the rowData directly
-      this._setRowBlockData(this._firstLoadingBlock, rowDataArr);
-    } else {
-      // We got more than one block -> We've to split the rowData
-      for (var i = 0; i < blockCount; i++) {
-        var rowOffset = i * blockSize;
-        var blockRowData = [];
-        var mailCount = Math.min(blockSize, rowDataArr.length - rowOffset);
-        for (var row = 0; row < mailCount; row++) {
-          blockRowData.push(rowDataArr[rowOffset + row]);
-        }
-
-        this._setRowBlockData(this._firstLoadingBlock + i, blockRowData);
-      }
-    }
-    // this.debug("Got server answer. blocks: " + this._firstLoadingBlock + ".." + (this._firstLoadingBlock + blockCount - 1) + ". mail count: " + rowDataArr.length + " block count:" + blockCount);
-
-    // Inform the listeners
-    var data = {
-      firstRow:this._firstLoadingBlock * blockSize,
-      lastRow:(this._firstLoadingBlock + blockCount + 1) * blockSize - 1,
-      firstColumn:0,
-      lastColumn:this.getColumnCount() - 1
-    };
-    this.dispatchEvent(new qx.event.type.DataEvent(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED, data), true);
-  }
-
-  // We're not loading any blocks any more
-  this._firstLoadingBlock = -1;
-  this._ignoreCurrentRequest = false;
-
-  // Check whether we have to start a new request
-  if (this._firstRowToLoad != -1) {
-    this.prefetchRows(this._firstRowToLoad, this._lastRowToLoad);
-  }
-};
-
-
-/**
- * Sets the data of one block.
- *
- * @param block {Integer} the index of the block.
- * @param rowDataArr {var[][]} the data to set.
- */
-qx.Proto._setRowBlockData = function(block, rowDataArr) {
-  if (this._rowBlockCache[block] == null) {
-    // This is a new block -> Check whether we have to remove another block first
-    this._rowBlockCount++;
-
-    while (this._rowBlockCount > this.getMaxCachedBlockCount()) {
-      // Find the last recently used block
-      // NOTE: We never remove block 0 and 1
-      var lruBlock;
-      var minLru = this._lruCounter;
-      for (var currBlock in this._rowBlockCache) {
-        var currLru = this._rowBlockCache[currBlock].lru;
-        if (currLru < minLru && currBlock > 1) {
-          minLru = currLru;
-          lruBlock = currBlock;
-        }
-      }
-
-      // Remove that block
-      // this.debug("Removing block: " + lruBlock + ". current LRU: " + this._lruCounter);
-      delete this._rowBlockCache[lruBlock];
-      this._rowBlockCount--;
-    }
-  }
-
-  this._rowBlockCache[block] = { lru:++this._lruCounter, rowDataArr:rowDataArr };
-};
-
-
-/**
- * Removes a rows from the model.
- *
- * @param rowIndex {Integer} the index of the row to remove.
- */
-qx.Proto.removeRow = function(rowIndex) {
-  if (this.getClearCacheOnRemove()) {
-    this.clearCache();
-
-    // Inform the listeners
-    var data = { firstRow:0, lastRow:rowCount - 1, firstColumn:0, lastColumn:this.getColumnCount() - 1 };
-    this.dispatchEvent(new qx.event.type.DataEvent(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED, data), true);
-  } else {
-    var blockSize = this.getBlockSize();
-    var blockCount = Math.ceil(this.getRowCount() / blockSize);
-    var startBlock = parseInt(rowIndex / blockSize);
-
-    // Remove the row and move the rows of all following blocks
-    for (var block = startBlock; block <= blockCount; block++) {
-      var blockData = this._rowBlockCache[block];
-      if (blockData != null) {
-        // Remove the row in the start block
-        // NOTE: In the other blocks the first row is removed
-        //       (This is the row that was)
-        var removeIndex = 0;
-        if (block == startBlock) {
-          removeIndex = rowIndex - block * blockSize;
-        }
-        blockData.rowDataArr.splice(removeIndex, 1);
-
-        if (block == blockCount - 1) {
-          // This is the last block
-          if (blockData.rowDataArr.length == 0) {
-            // It is empty now -> Remove it
-            delete this._rowBlockCache[block];
-          }
-        } else {
-          // Try to copy the first row of the next block to the end of this block
-          // so this block can stays clean
-          var nextBlockData = this._rowBlockCache[block + 1];
-          if (nextBlockData != null) {
-            blockData.rowDataArr.push(nextBlockData.rowDataArr[0]);
-          } else {
-            // There is no row to move -> Mark this block as dirty
-            blockData.isDirty = true;
-          }
-        }
-      }
-    }
-
-    if (this._rowCount != -1) {
-      this._rowCount--;
-    }
-
-    // Inform the listeners
-    if (this.hasEventListeners(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED)) {
-      var data = { firstRow:rowIndex, lastRow:this.getRowCount() - 1, firstColumn:0, lastColumn:this.getColumnCount() - 1 };
-      this.dispatchEvent(new qx.event.type.DataEvent(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED, data), true);
-    }
-  }
-};
-
-
-/**
- * <p>See overridden method for details.</p>
- *
- * @param rowIndex {Integer} the model index of the row.
- * @return {Object} Map containing a value for each column.
- */
-qx.Proto.getRowData = function(rowIndex) {
-  var blockSize = this.getBlockSize();
-  var block = parseInt(rowIndex / blockSize);
-  var blockData = this._rowBlockCache[block];
-  if (blockData == null) {
-    // This block is not (yet) loaded
-    return null;
-  } else {
-    var rowData = blockData.rowDataArr[rowIndex - (block * blockSize)];
-
-    // Update the last recently used counter
-    if (blockData.lru != this._lruCounter) {
-      blockData.lru = ++this._lruCounter;
-    }
-
-    return rowData;
-  }
-};
-
-
-// overridden
-qx.Proto.getValue = function(columnIndex, rowIndex) {
-  var rowData = this.getRowData(rowIndex);
-  if (rowData == null) {
-    return null;
-  } else {
-    var columnId = this.getColumnId(columnIndex);
-    return rowData[columnId];
-  }
-};
-
-
-/**
- * Sets whether a column is sortable.
- *
- * @param columnIndex {Integer} the column of which to set the sortable state.
- * @param sortable {Boolean} whether the column should be sortable.
- */
-qx.Proto.setColumnSortable = function(columnIndex, sortable) {
-  if (sortable != this.isColumnSortable(columnIndex)) {
-    if (this._sortableColArr == null) {
-      this._sortableColArr = [];
-    }
-    this._sortableColArr[columnIndex] = sortable;
-
-    this.createDispatchEvent(qx.ui.table.TableModel.EVENT_TYPE_META_DATA_CHANGED);
-  }
-}
-
-
-// overridden
-qx.Proto.isColumnSortable = function(columnIndex) {
-  return this._sortableColArr ? (this._sortableColArr[columnIndex] == true) : false;
-}
-
-
-// overridden
-qx.Proto.sortByColumn = function(columnIndex, ascending) {
-  if (this._sortColumnIndex != columnIndex || this._sortAscending != ascending) {
-    this._sortColumnIndex = columnIndex;
-    this._sortAscending = ascending;
-
-    this.clearCache();
-
-    // Inform the listeners
-    this.createDispatchEvent(qx.ui.table.TableModel.EVENT_TYPE_META_DATA_CHANGED);
-  }
-};
-
-
-// overridden
-qx.Proto.getSortColumnIndex = function() {
-  return this._sortColumnIndex;
-}
-
-
-// overridden
-qx.Proto.isSortAscending = function() {
-  return this._sortAscending;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/ResizeBehaviorColumnData.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/ResizeBehaviorColumnData.js
deleted file mode 100644 (file)
index ae940cd..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2007 Derrell Lipman
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Derrell Lipman (derrell)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(table)
-
-************************************************************************ */
-
-/**
- * All of the resizing information about a column.
- */
-qx.OO.defineClass("qx.ui.table.ResizeBehaviorColumnData",
-                  qx.ui.core.Widget,
-function()
-{
-  qx.ui.core.Widget.call(this);
-
-  // Assume equal flex width for all columns
-  this.setWidth("1*");
-});
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/ResizeTableColumnModel.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/ResizeTableColumnModel.js
deleted file mode 100644 (file)
index 329c3a1..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2007 Derrell Lipman
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Derrell Lipman (derrell)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(table)
-#require(qx.ui.table.DefaultResizeBehavior)
-#embed(qx.icontheme/16/actions/view-refresh.png)
-
-************************************************************************ */
-
-/**
- * A table column model that automagically resizes columns based on a
- * selected behavior.
- *
- * @see qx.ui.table.TableColumnModel
- */
-qx.OO.defineClass("qx.ui.table.ResizeTableColumnModel",
-                  qx.ui.table.TableColumnModel,
-function()
-{
-  qx.ui.table.TableColumnModel.call(this);
-
-  // We don't want to recursively call ourself based on our resetting of
-  // column sizes.  Track when we're resizing.
-  this._bInProgress = false;
-
-  // Track when the table has appeared.  We want to ignore resize events until
-  // then since we won't be able to determine the available width anyway.
-  this._bAppeared = false;
-});
-
-
-/*
- * The behavior to use.
- *
- * The provided behavior must extend {link @AbstractResizeBehavior} and
- * implement the <i>onAppear</i>, <i>onTableWidthChanged</i>,
- * <i>onColumnWidthChanged</i> and <i>onVisibilityChanged</i>methods.
- */
-qx.OO.addProperty(
-  {
-    name         : "behavior",
-    type         : "object",
-    defaultValue : new qx.ui.table.DefaultResizeBehavior()
-  });
-
-// Behavior modifier
-qx.Proto._modifyBehavior = function(propValue, propOldValue, propData)
-{
-  // Tell the new behavior how many columns there are
-  this.getBehavior()._setNumColumns(this._columnDataArr.length);
-  return true;
-};
-
-
-/**
- * Initializes the column model.
- *
- * @param colCount {Integer}
- *   The number of columns the model should have.
- *
- * @param table {qx.ui.table.Table}
- *   The table which this model is used for.  This allows us access to other
- *   aspects of the table, as the <i>behavior</i> sees fit.
- */
-qx.Proto.init = function(numColumns, table)
-{
-  // Call our superclass
-  qx.ui.table.TableColumnModel.prototype.init.call(this, numColumns);
-
-  // Save the table so we can get at its features, as necessary.
-  this._table = table;
-
-  // We'll do our column resizing when the table appears, ...
-  table.addEventListener("appear", this._onappear, this);
-
-  // ... when the inner width of the table changes, ...
-  table.addEventListener("tableWidthChanged", this._ontablewidthchanged, this);
-
-  // ... when columns are resized, ...
-  this.addEventListener("widthChanged", this._oncolumnwidthchanged, this);
-
-  // ... and when a column visibility changes.
-  this.addEventListener("visibilityChanged", this._onvisibilitychanged, this);
-
-  // We want to manipulate the button visibility menu
-  this._table.addEventListener("columnVisibilityMenuCreateEnd",
-                               this._addResetColumnWidthButton,
-                               this);
-
-  // Tell the behavior how many columns there are
-  this.getBehavior()._setNumColumns(numColumns);
-};
-
-
-/**
- * Reset the column widths to their "onappear" defaults.
- *
- * @param event {qx.event.type.DataEvent}
- *   The "columnVisibilityMenuCreateEnd" event indicating that the menu is
- *   being generated.  The data is a map containing propeties <i>table</i> and
- *   <i>menu</i>.
- */
-qx.Proto._addResetColumnWidthButton = function(event)
-{
-  var data = event.getData();
-  var menu = data.menu;
-  var o;
-
-  var Am = qx.manager.object.AliasManager;
-  var icon = Am.getInstance().resolvePath("icon/16/actions/view-refresh.png");
-
-  // Add a separator between the column names and our reset button
-  o= new qx.ui.menu.Separator();
-  menu.add(o);
-
-  // Add a button to reset the column widths
-  o = new qx.ui.menu.Button("Reset column widths", icon);
-  menu.add(o);
-  o.addEventListener("execute", this._onappear, this);
-};
-
-/**
- * Event handler for the "appear" event.
- *
- * @param event {qx.event.type.Event}
- *   The "onappear" event object.
- */
-qx.Proto._onappear = function(event)
-{
-  // Is this a recursive call?
-  if (this._bInProgress)
-  {
-    // Yup.  Ignore it.
-    return;
-  }
-
-  this._bInProgress = true;
-  this.debug("onappear");
-  this.getBehavior().onAppear(this, event);
-  this._bInProgress = false;
-
-  this._bAppeared = true;
-};
-
-
-/**
- * Event handler for the "tableWidthChanged" event.
- *
- * @param event {qx.event.type.Event}
- *   The "onwidowresize" event object.
- */
-qx.Proto._ontablewidthchanged = function(event)
-{
-  // Is this a recursive call or has the table not yet been rendered?
-  if (this._bInProgress || ! this._bAppeared)
-  {
-    // Yup.  Ignore it.
-    return;
-  }
-
-  this._bInProgress = true;
-  this.debug("ontablewidthchanged");
-  this.getBehavior().onTableWidthChanged(this, event);
-  this._bInProgress = false;
-};
-
-
-/**
- * Event handler for the "widthChanged" event.
- *
- * @param event {qx.event.type.DataEvent}
- *   The "widthChanged" event object.
- */
-qx.Proto._oncolumnwidthchanged = function(event)
-{
-  // Is this a recursive call or has the table not yet been rendered?
-  if (this._bInProgress || ! this._bAppeared)
-  {
-    // Yup.  Ignore it.
-    return;
-  }
-
-  this._bInProgress = true;
-  this.debug("oncolumnwidthchanged");
-  this.getBehavior().onColumnWidthChanged(this, event);
-  this._bInProgress = false;
-};
-
-
-/**
- * Event handler for the "visibilityChanged" event.
- *
- * @param event {qx.event.type.DataEvent}
- *   The "visibilityChanged" event object.
- */
-qx.Proto._onvisibilitychanged = function(event)
-{
-  // Is this a recursive call or has the table not yet been rendered?
-  if (this._bInProgress || ! this._bAppeared)
-  {
-    // Yup.  Ignore it.
-    return;
-  }
-
-  this._bInProgress = true;
-  this.debug("onvisibilitychanged");
-  this.getBehavior().onVisibilityChanged(this, event);
-  this._bInProgress = false;
-};
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/SelectionManager.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/SelectionManager.js
deleted file mode 100644 (file)
index 6f7fb11..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_table)
-
-************************************************************************ */
-
-/**
- * A selection manager. This is a helper class that handles all selection
- * related events and updates a SelectionModel.
- * <p>
- * Widgets that support selection should use this manager. This way the only
- * thing the widget has to do is mapping mouse or key events to indexes and
- * call the corresponding handler method.
- *
- * @see SelectionModel
- */
-qx.OO.defineClass("qx.ui.table.SelectionManager", qx.core.Object,
-function() {
-  qx.core.Object.call(this);
-});
-
-
-/**
- * The selection model where to set the selection changes.
- */
-qx.OO.addProperty({ name:"selectionModel", type:"object", instance:"qx.ui.table.SelectionModel" });
-
-
-/**
- * Handles the mouse down event.
- *
- * @param index {Integer} the index the mouse is pointing at.
- * @param evt {Map} the mouse event.
- */
-qx.Proto.handleMouseDown = function(index, evt) {
-  if (evt.isLeftButtonPressed()) {
-    var selectionModel = this.getSelectionModel();
-    if (!selectionModel.isSelectedIndex(index)) {
-      // This index is not selected -> We react when the mouse is pressed (because of drag and drop)
-      this._handleSelectEvent(index, evt);
-      this._lastMouseDownHandled = true;
-    } else {
-      // This index is already selected -> We react when the mouse is released (because of drag and drop)
-      this._lastMouseDownHandled = false;
-    }
-  } else if (evt.isRightButtonPressed() && evt.getModifiers() == 0) {
-    var selectionModel = this.getSelectionModel();
-    if (!selectionModel.isSelectedIndex(index)) {
-      // This index is not selected -> Set the selection to this index
-      selectionModel.setSelectionInterval(index, index);
-    }
-  }
-}
-
-
-/**
- * Handles the mouse up event.
- *
- * @param index {Integer} the index the mouse is pointing at.
- * @param evt {Map} the mouse event.
- */
-qx.Proto.handleMouseUp = function(index, evt) {
-  if (evt.isLeftButtonPressed() && !this._lastMouseDownHandled) {
-    this._handleSelectEvent(index, evt);
-  }
-}
-
-
-/**
- * Handles the mouse click event.
- *
- * @param index {Integer} the index the mouse is pointing at.
- * @param evt {Map} the mouse event.
- */
-qx.Proto.handleClick = function(index, evt) {
-}
-
-
-/**
- * Handles the key down event that is used as replacement for mouse clicks
- * (Normally space).
- *
- * @param index {Integer} the index that is currently focused.
- * @param evt {Map} the key event.
- */
-qx.Proto.handleSelectKeyDown = function(index, evt) {
-  this._handleSelectEvent(index, evt);
-};
-
-
-/**
- * Handles a key down event that moved the focus (E.g. up, down, home, end, ...).
- *
- * @param index {Integer} the index that is currently focused.
- * @param evt {Map} the key event.
- */
-qx.Proto.handleMoveKeyDown = function(index, evt) {
-  var selectionModel = this.getSelectionModel();
-  switch (evt.getModifiers()) {
-    case 0:
-      selectionModel.setSelectionInterval(index, index);
-      break;
-    case qx.event.type.DomEvent.SHIFT_MASK:
-      var anchor = selectionModel.getAnchorSelectionIndex();
-      if (anchor == -1) {
-        selectionModel.setSelectionInterval(index, index);
-      } else {
-        selectionModel.setSelectionInterval(anchor, index);
-      }
-      break;
-  }
-}
-
-
-/**
- * Handles a select event.
- *
- * @param index {Integer} the index the event is pointing at.
- * @param evt {Map} the mouse event.
- */
-qx.Proto._handleSelectEvent = function(index, evt) {
-  var selectionModel = this.getSelectionModel();
-  if (evt.isShiftPressed()) {
-    var leadIndex = selectionModel.getLeadSelectionIndex();
-    if (index != leadIndex || selectionModel.isSelectionEmpty()) {
-      // The lead selection index was changed
-      var anchorIndex = selectionModel.getAnchorSelectionIndex();
-      if (anchorIndex == -1) {
-          anchorIndex = index;
-      }
-      if (evt.isCtrlOrCommandPressed()) {
-        selectionModel.addSelectionInterval(anchorIndex, index);
-      } else {
-        selectionModel.setSelectionInterval(anchorIndex, index);
-      }
-    }
-  } else if (evt.isCtrlOrCommandPressed()) {
-    if (selectionModel.isSelectedIndex(index)) {
-      selectionModel.removeSelectionInterval(index, index);
-    } else {
-      selectionModel.addSelectionInterval(index, index);
-    }
-  } else {
-    selectionModel.setSelectionInterval(index, index);
-  }
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/SelectionModel.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/SelectionModel.js
deleted file mode 100644 (file)
index 2e03a1f..0000000
+++ /dev/null
@@ -1,431 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_table)
-
-************************************************************************ */
-
-/**
- * A selection model.
- *
- * @event changeSelection {qx.event.type.Event} Fired when the selection has
- *        changed.
- */
-qx.OO.defineClass("qx.ui.table.SelectionModel", qx.core.Target,
-function() {
-  qx.core.Target.call(this);
-
-  this._selectedRangeArr = [];
-  this._anchorSelectionIndex = -1;
-  this._leadSelectionIndex = -1;
-  this.hasBatchModeRefCount = 0;
-  this._hadChangeEventInBatchMode = false;
-});
-
-
-/** {int} The selection mode "none". Nothing can ever be selected. */
-qx.Class.NO_SELECTION = 1;
-
-/** {int} The selection mode "single". This mode only allows one selected item. */
-qx.Class.SINGLE_SELECTION = 2;
-
-/**
- * (int) The selection mode "single interval". This mode only allows one
- * continuous interval of selected items.
- */
-qx.Class.SINGLE_INTERVAL_SELECTION = 3;
-
-/**
- * (int) The selection mode "multiple interval". This mode only allows any
- * selection.
- */
-qx.Class.MULTIPLE_INTERVAL_SELECTION = 4;
-
-
-/**
- * (int) the selection mode.
- */
-qx.OO.addProperty({ name:"selectionMode", type:"number",
-  defaultValue:qx.Class.SINGLE_SELECTION,
-  allowNull:false,
-  possibleValues:[ qx.Class.NO_SELECTION,
-           qx.Class.SINGLE_SELECTION,
-           qx.Class.SINGLE_INTERVAL_SELECTION,
-           qx.Class.MULTIPLE_INTERVAL_SELECTION  ] });
-
-// selectionMode property modifier
-qx.Proto._modifySelectionMode = function(selectionMode) {
-  if (selectionMode == qx.ui.table.SelectionModel.NO_SELECTION) {
-    this.clearSelection();
-  }
-  return true;
-}
-
-
-/**
- * <p>Activates / Deactivates batch mode. In batch mode, no change events will be thrown but
- * will be collected instead. When batch mode is turned off again and any events have
- * been collected, one event is thrown to inform the listeners.</p>
- *
- * <p>This method supports nested calling, i. e. batch mode can be turned more than once.
- * In this case, batch mode will not end until it has been turned off once for each
- * turning on.</p>
- *
- * @param batchMode {Boolean} true to activate batch mode, false to deactivate
- * @return {Boolean} true if batch mode is active, false otherwise
- * @throws Error if batch mode is turned off once more than it has been turned on
- */
-qx.Proto.setBatchMode = function(batchMode) {
-  if (batchMode){
-    this.hasBatchModeRefCount += 1;
-  } else {
-    if (this.hasBatchModeRefCount == 0){
-      throw new Error("Try to turn off batch mode althoug it was not turned on.")
-    }
-    this.hasBatchModeRefCount -= 1;
-    if (this._hadChangeEventInBatchMode){
-      this._hadChangeEventInBatchMode = false;
-      this._fireChangeSelection();
-    }
-  }
-  return this.hasBatchMode();
-}
-
-
-/**
- * <p>Returns whether batch mode is active. See setter for a description of batch mode.</p>
- *
- * @return {Boolean} true if batch mode is active, false otherwise
- */
-qx.Proto.hasBatchMode = function() {
-  return this.hasBatchModeRefCount > 0;
-}
-
-
-/**
- * Returns the first argument of the last call to {@link #setSelectionInterval()},
- * {@link #addSelectionInterval()} or {@link #removeSelectionInterval()}.
- *
- * @return {Integer} the ancor selection index.
- */
-qx.Proto.getAnchorSelectionIndex = function() {
-  return this._anchorSelectionIndex;
-}
-
-
-/**
- * Returns the second argument of the last call to {@link #setSelectionInterval()},
- * {@link #addSelectionInterval()} or {@link #removeSelectionInterval()}.
- *
- * @return {Integer} the lead selection index.
- */
-qx.Proto.getLeadSelectionIndex = function() {
-  return this._leadSelectionIndex;
-}
-
-
-/**
- * Clears the selection.
- */
-qx.Proto.clearSelection = function() {
-  if (! this.isSelectionEmpty()) {
-    this._clearSelection();
-    this._fireChangeSelection();
-  }
-}
-
-
-/**
- * Returns whether the selection is empty.
- *
- * @return {Boolean} whether the selection is empty.
- */
-qx.Proto.isSelectionEmpty = function() {
-  return this._selectedRangeArr.length == 0;
-}
-
-
-/**
- * Returns the number of selected items.
- *
- * @return {Integer} the number of selected items.
- */
-qx.Proto.getSelectedCount = function() {
-  var selectedCount = 0;
-  for (var i = 0; i < this._selectedRangeArr.length; i++) {
-    var range = this._selectedRangeArr[i];
-    selectedCount += range.maxIndex - range.minIndex + 1;
-  }
-
-  return selectedCount;
-}
-
-
-/**
- * Returns whether a index is selected.
- *
- * @param index {Integer} the index to check.
- * @return {Boolean} whether the index is selected.
- */
-qx.Proto.isSelectedIndex = function(index) {
-  for (var i = 0; i < this._selectedRangeArr.length; i++) {
-    var range = this._selectedRangeArr[i];
-
-    if (index >= range.minIndex && index <= range.maxIndex) {
-      return true;
-    }
-  }
-
-  return false;
-}
-
-
-/**
- * Returns the selected ranges as an array. Each array element has a
- * <code>minIndex</code> and a <code>maxIndex</code> property.
- *
- * @return {Map[]} the selected ranges.
- */
-qx.Proto.getSelectedRanges = function() {
-  // clone the selection array and the individual elements - this prevents the
-  // caller from messing with the internal model
-  var retVal = [];
-  for (var i = 0; i < this._selectedRangeArr.length; i++) {
-    retVal.push({minIndex: this._selectedRangeArr[i].minIndex,
-                 maxIndex: this._selectedRangeArr[i].maxIndex});
-  }
-  return retVal;
-}
-
-
-/**
- * Calls a iterator function for each selected index.
- * <p>
- * Usage Example:
- * <pre>
- * var selectedRowData = [];
- * mySelectionModel.iterateSelection(function(index) {
- *   selectedRowData.push(myTableModel.getRowData(index));
- * });
- * </pre>
- *
- * @param iterator {Function} the function to call for each selected index.
- *        Gets the current index as parameter.
- * @param object {var ? null} the object to use when calling the handler.
- *        (this object will be available via "this" in the iterator)
- */
-qx.Proto.iterateSelection = function(iterator, object) {
-  for (var i = 0; i < this._selectedRangeArr.length; i++) {
-    for (var j = this._selectedRangeArr[i].minIndex; j <= this._selectedRangeArr[i].maxIndex; j++) {
-      iterator.call(object, j);
-    }
-  }
-};
-
-
-/**
- * Sets the selected interval. This will clear the former selection.
- *
- * @param fromIndex {Integer} the first index of the selection (including).
- * @param toIndex {Integer} the last index of the selection (including).
- */
-qx.Proto.setSelectionInterval = function(fromIndex, toIndex) {
-  var SelectionModel = qx.ui.table.SelectionModel;
-
-  switch(this.getSelectionMode()) {
-    case SelectionModel.NO_SELECTION:
-      return;
-    case SelectionModel.SINGLE_SELECTION:
-      fromIndex = toIndex;
-      break;
-  }
-
-  this._clearSelection();
-  this._addSelectionInterval(fromIndex, toIndex);
-
-  this._fireChangeSelection();
-}
-
-
-/**
- * Adds a selection interval to the current selection.
- *
- * @param fromIndex {Integer} the first index of the selection (including).
- * @param toIndex {Integer} the last index of the selection (including).
- */
-qx.Proto.addSelectionInterval = function(fromIndex, toIndex) {
-  var SelectionModel = qx.ui.table.SelectionModel;
-  switch (this.getSelectionMode()) {
-    case SelectionModel.NO_SELECTION:
-      return;
-    case SelectionModel.MULTIPLE_INTERVAL_SELECTION:
-      this._addSelectionInterval(fromIndex, toIndex);
-      this._fireChangeSelection();
-      break;
-    default:
-      this.setSelectionInterval(fromIndex, toIndex);
-      break;
-  }
-}
-
-
-/**
- * Removes a interval from the current selection.
- *
- * @param fromIndex {Integer} the first index of the interval (including).
- * @param toIndex {Integer} the last index of the interval (including).
- */
-qx.Proto.removeSelectionInterval = function(fromIndex, toIndex) {
-  this._anchorSelectionIndex = fromIndex;
-  this._leadSelectionIndex = toIndex;
-
-  var minIndex = Math.min(fromIndex, toIndex);
-  var maxIndex = Math.max(fromIndex, toIndex);
-
-  // Crop the affected ranges
-  for (var i = 0; i < this._selectedRangeArr.length; i++) {
-    var range = this._selectedRangeArr[i];
-
-    if (range.minIndex > maxIndex) {
-      // We are done
-      break;
-    } else if (range.maxIndex >= minIndex) {
-      // This range is affected
-      var minIsIn = (range.minIndex >= minIndex) && (range.minIndex <= maxIndex);
-      var maxIsIn = (range.maxIndex >= minIndex) && (range.maxIndex <= maxIndex);
-
-      if (minIsIn && maxIsIn) {
-        // This range is removed completely
-        this._selectedRangeArr.splice(i, 1);
-
-        // Check this index another time
-        i--;
-      } else if (minIsIn) {
-        // The range is cropped from the left
-        range.minIndex = maxIndex + 1;
-      } else if (maxIsIn) {
-        // The range is cropped from the right
-        range.maxIndex = minIndex - 1;
-      } else {
-        // The range is split
-        var newRange = { minIndex:maxIndex + 1, maxIndex:range.maxIndex }
-        this._selectedRangeArr.splice(i + 1, 0, newRange);
-
-        range.maxIndex = minIndex - 1;
-
-        // We are done
-        break;
-      }
-    }
-  }
-
-  //this._dumpRanges();
-
-  this._fireChangeSelection();
-}
-
-
-/**
- * Clears the selection, but doesn't inform the listeners.
- */
-qx.Proto._clearSelection = function() {
-  this._selectedRangeArr = [];
-  this._anchorSelectionIndex = -1;
-  this._leadSelectionIndex = -1;
-}
-
-
-/**
- * Adds a selection interval to the current selection, but doesn't inform
- * the listeners.
- *
- * @param fromIndex {Integer} the first index of the selection (including).
- * @param toIndex {Integer} the last index of the selection (including).
- */
-qx.Proto._addSelectionInterval = function(fromIndex, toIndex) {
-  this._anchorSelectionIndex = fromIndex;
-  this._leadSelectionIndex = toIndex;
-
-  var minIndex = Math.min(fromIndex, toIndex);
-  var maxIndex = Math.max(fromIndex, toIndex);
-
-  // Find the index where the new range should be inserted
-  var newRangeIndex = 0;
-  for (; newRangeIndex < this._selectedRangeArr.length; newRangeIndex++) {
-    var range = this._selectedRangeArr[newRangeIndex];
-    if (range.minIndex > minIndex) {
-      break;
-    }
-  }
-
-  // Add the new range
-  this._selectedRangeArr.splice(newRangeIndex, 0, { minIndex:minIndex, maxIndex:maxIndex });
-
-  // Merge overlapping ranges
-  var lastRange = this._selectedRangeArr[0];
-  for (var i = 1; i < this._selectedRangeArr.length; i++) {
-    var range = this._selectedRangeArr[i];
-
-    if (lastRange.maxIndex + 1 >= range.minIndex) {
-      // The ranges are overlapping -> merge them
-      lastRange.maxIndex = Math.max(lastRange.maxIndex, range.maxIndex);
-
-      // Remove the current range
-      this._selectedRangeArr.splice(i, 1);
-
-      // Check this index another time
-      i--;
-    } else {
-      lastRange = range;
-    }
-  }
-
-  //this._dumpRanges();
-}
-
-
-/**
- * Logs the current ranges for debug perposes.
- */
-qx.Proto._dumpRanges = function() {
-  var text = "Ranges:";
-  for (var i = 0; i < this._selectedRangeArr.length; i++) {
-    var range = this._selectedRangeArr[i];
-    text += " [" + range.minIndex + ".." + range.maxIndex + "]";
-  }
-  this.debug(text);
-}
-
-
-/**
- * Fires the "changeSelection" event to all registered listeners. If the selection model
- * currently is in batch mode, only one event will be thrown when batch mode is ended.
- */
-qx.Proto._fireChangeSelection = function() {
-  //In batch mode, remember event but do not throw (yet)
-  if (this.hasBatchMode()){
-    this._hadChangeEventInBatchMode = true;
-
-  //If not in batch mode, throw event
-  } else if (this.hasEventListeners("changeSelection")) {
-    this.dispatchEvent(new qx.event.type.Event("changeSelection"), true);
-  }
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/SimpleTableModel.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/SimpleTableModel.js
deleted file mode 100644 (file)
index 4db88dd..0000000
+++ /dev/null
@@ -1,337 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_table)
-
-************************************************************************ */
-
-/**
- * A simple table model that provides an API for changing the model data.
- */
-qx.OO.defineClass("qx.ui.table.SimpleTableModel", qx.ui.table.AbstractTableModel,
-function() {
-  qx.ui.table.AbstractTableModel.call(this);
-
-  this._rowArr = [];
-  this._sortColumnIndex = -1;
-  this._sortAscending;
-
-  this._editableColArr = null;
-});
-
-
-/**
- * <p>See overridden method for details.</p>
- *
- * @param rowIndex {Integer} the model index of the row.
- * @return {Array} Array containing a value for each column.
- */
-qx.Proto.getRowData = function(rowIndex) {
-  return this._rowArr[rowIndex];
-};
-
-
-/**
- * Returns the data of one row as map containing the column IDs as key and the
- * cell values as value.
- *
- * @param rowIndex {Integer} the model index of the row.
- * @return {Map} a Map containing the column values.
- */
-qx.Proto.getRowDataAsMap = function(rowIndex) {
-  var columnArr = this._rowArr[rowIndex];
-  var map = {};
-  for (var col = 0; col < this.getColumnCount(); col++) {
-    map[this.getColumnId(col)] = columnArr[col];
-  }
-  return map;
-};
-
-
-/**
- * Sets all columns editable or not editable.
- *
- * @param editable {Boolean} whether all columns are editable.
- */
-qx.Proto.setEditable = function(editable) {
-  this._editableColArr = [];
-  for (var col = 0; col < this.getColumnCount(); col++) {
-    this._editableColArr[col] = editable;
-  }
-
-  this.createDispatchEvent(qx.ui.table.TableModel.EVENT_TYPE_META_DATA_CHANGED);
-}
-
-
-/**
- * Sets whether a column is editable.
- *
- * @param columnIndex {Integer} the column of which to set the editable state.
- * @param editable {Boolean} whether the column should be editable.
- */
-qx.Proto.setColumnEditable = function(columnIndex, editable) {
-  if (editable != this.isColumnEditable(columnIndex)) {
-    if (this._editableColArr == null) {
-      this._editableColArr = [];
-    }
-    this._editableColArr[columnIndex] = editable;
-
-    this.createDispatchEvent(qx.ui.table.TableModel.EVENT_TYPE_META_DATA_CHANGED);
-  }
-}
-
-
-// overridden
-qx.Proto.isColumnEditable = function(columnIndex) {
-  return this._editableColArr ? (this._editableColArr[columnIndex] == true) : false;
-}
-
-
-// overridden
-qx.Proto.isColumnSortable = function(columnIndex) {
-  return true;
-}
-
-
-// overridden
-qx.Proto.sortByColumn = function(columnIndex, ascending) {
-  // NOTE: We use different comperators for ascending and descending,
-  //     because comperators should be really fast.
-  var comperator;
-  if (ascending) {
-    comperator = function(row1, row2) {
-      var obj1 = row1[columnIndex];
-      var obj2 = row2[columnIndex];
-      return (obj1 > obj2) ? 1 : ((obj1 == obj2) ? 0 : -1);
-    }
-  } else {
-    comperator = function(row1, row2) {
-      var obj1 = row1[columnIndex];
-      var obj2 = row2[columnIndex];
-      return (obj1 < obj2) ? 1 : ((obj1 == obj2) ? 0 : -1);
-    }
-  }
-
-  this._rowArr.sort(comperator);
-
-  this._sortColumnIndex = columnIndex;
-  this._sortAscending = ascending;
-
-  this.createDispatchEvent(qx.ui.table.TableModel.EVENT_TYPE_META_DATA_CHANGED);
-}
-
-
-/**
- * Clears the sorting.
- */
-qx.Proto._clearSorting = function() {
-  if (this._sortColumnIndex != -1) {
-    this._sortColumnIndex = -1;
-    this._sortAscending = true;
-
-    this.createDispatchEvent(qx.ui.table.TableModel.EVENT_TYPE_META_DATA_CHANGED);
-  }
-}
-
-
-// overridden
-qx.Proto.getSortColumnIndex = function() {
-  return this._sortColumnIndex;
-}
-
-
-// overridden
-qx.Proto.isSortAscending = function() {
-  return this._sortAscending;
-}
-
-
-// overridden
-qx.Proto.getRowCount = function() {
-  return this._rowArr.length;
-}
-
-
-// overridden
-qx.Proto.getValue = function(columnIndex, rowIndex) {
-  if (rowIndex < 0 || rowIndex >= this._rowArr.length) {
-    throw new Error("this._rowArr out of bounds: " + rowIndex + " (0.." + this._rowArr.length + ")");
-  }
-
-  return this._rowArr[rowIndex][columnIndex];
-}
-
-
-// overridden
-qx.Proto.setValue = function(columnIndex, rowIndex, value) {
-  if (this._rowArr[rowIndex][columnIndex] != value) {
-    this._rowArr[rowIndex][columnIndex] = value;
-
-    // Inform the listeners
-    if (this.hasEventListeners(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED)) {
-      var data = { firstRow:rowIndex, lastRow:rowIndex,
-                   firstColumn:columnIndex, lastColumn:columnIndex }
-      this.dispatchEvent(new qx.event.type.DataEvent(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED, data), true);
-    }
-
-    if (columnIndex == this._sortColumnIndex) {
-      this._clearSorting();
-    }
-  }
-}
-
-
-/**
- * Sets the whole data in a bulk.
- *
- * @param rowArr {var[][]} An array containing an array for each row. Each
- *        row-array contains the values in that row in the order of the columns
- *        in this model.
- */
-qx.Proto.setData = function(rowArr) {
-  this._rowArr = rowArr;
-
-  // Inform the listeners
-  if (this.hasEventListeners(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED)) {
-    this.createDispatchEvent(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED);
-  }
-
-  this._clearSorting();
-}
-
-
-/**
- * Returns the data of this model.
- * <p>
- * Warning: Do not alter this array! If you want to change the data use
- * {@link #setData}, {@link #setDataAsMapArray} or {@link #setValue} instead.
- *
- * @return {var[][]} An array containing an array for each row. Each
- *         row-array contains the values in that row in the order of the columns
- *         in this model.
- */
-qx.Proto.getData = function() {
-  return this._rowArr;
-};
-
-
-/**
- * Sets the whole data in a bulk.
- *
- * @param mapArr {Map[]} An array containing a map for each row. Each
- *        row-map contains the column IDs as key and the cell values as value.
- */
-qx.Proto.setDataAsMapArray = function(mapArr) {
-  this.setData(this._mapArray2RowArr(mapArr));
-};
-
-
-/**
- * Adds some rows to the model.
- * <p>
- * Warning: The given array will be altered!
- *
- * @param rowArr {var[][]} An array containing an array for each row. Each
- *        row-array contains the values in that row in the order of the columns
- *        in this model.
- * @param startIndex {Integer ? null} The index where to insert the new rows. If null,
- *        the rows are appended to the end.
- */
-qx.Proto.addRows = function(rowArr, startIndex) {
-  if (startIndex == null) {
-    startIndex = this._rowArr.length;
-  }
-
-  // Prepare the rowArr so it can be used for apply
-  rowArr.splice(0, 0, startIndex, 0);
-
-  // Insert the new rows
-  Array.prototype.splice.apply(this._rowArr, rowArr);
-
-  // Inform the listeners
-  if (this.hasEventListeners(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED)) {
-    var data = { firstRow:startIndex, lastRow:this._rowArr.length - 1, firstColumn:0, lastColumn:this.getColumnCount() - 1 };
-    this.dispatchEvent(new qx.event.type.DataEvent(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED, data), true);
-  }
-
-  this._clearSorting();
-};
-
-
-/**
- * Adds some rows to the model.
- * <p>
- * Warning: The given array (mapArr) will be altered!
- *
- * @param mapArr {Map[]} An array containing a map for each row. Each
- *        row-map contains the column IDs as key and the cell values as value.
- * @param startIndex {Integer ? null} The index where to insert the new rows. If null,
- *        the rows are appended to the end.
- */
-qx.Proto.addRowsAsMapArray = function(mapArr, startIndex) {
-  this.addRows(this._mapArray2RowArr(mapArr), startIndex);
-};
-
-
-/**
- * Removes some rows from the model.
- *
- * @param startIndex {Integer} the index of the first row to remove.
- * @param howMany {Integer} the number of rows to remove.
- */
-qx.Proto.removeRows = function(startIndex, howMany) {
-  this._rowArr.splice(startIndex, howMany);
-
-  // Inform the listeners
-  if (this.hasEventListeners(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED)) {
-    var data = { firstRow:startIndex, lastRow:this._rowArr.length - 1, firstColumn:0, lastColumn:this.getColumnCount() - 1 };
-    this.dispatchEvent(new qx.event.type.DataEvent(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED, data), true);
-  }
-
-  this._clearSorting();
-};
-
-
-/**
- * Creates an array of maps to an array of arrays.
- *
- * @param mapArr {Map[]} An array containing a map for each row. Each
- *        row-map contains the column IDs as key and the cell values as value.
- * @return {var[][]} An array containing an array for each row. Each
- *         row-array contains the values in that row in the order of the columns
- *         in this model.
- */
-qx.Proto._mapArray2RowArr = function(mapArr) {
-  var rowCount = mapArr.length;
-  var columnCount = this.getColumnCount();
-  var dataArr = new Array(rowCount);
-  var columnArr;
-  var j;
-  for (var i = 0; i < rowCount; ++i) {
-    columnArr = new Array(columnCount);
-    for (var j = 0; j < columnCount; ++j) {
-      columnArr[j] = mapArr[i][this.getColumnId(j)];
-    }
-    dataArr[i] = columnArr;
-  }
-
-  return dataArr;
-};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/Table.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/Table.js
deleted file mode 100644 (file)
index cfb7b09..0000000
+++ /dev/null
@@ -1,1282 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_table)
-#require(qx.ui.table.DefaultDataRowRenderer)
-#embed(qx.widgettheme/table/selectColumnOrder.png)
-
-************************************************************************ */
-
-/**
- * A table.
- *
- * @param tableModel {qx.ui.table.TableModel, null}
- *   The table model to read the data from.
- *
- * @event columnVisibilityMenuCreateStart {qx.event.type.DataEvent}
- *   Dispatched before adding the column list to the column visibility menu.
- *   The event data is a map with two properties: table and menu.  Listeners
- *   may add additional items to the menu, which appear at the top of the
- *   menu.
- *
- * @event columnVisibilityMenuCreateEnd {qx.event.type.DataEvent}
- *   Dispatched after adding the column list to the column visibility menu.
- *   The event data is a map with two properties: table and menu.  Listeners
- *   may add additional items to the menu, which appear at the bottom of the
- *   menu.
- *
- * @event tableWidthChanged {qx.event.type.Event}
- *   Dispatched when the inner width of the table has changed.
- */
-qx.OO.defineClass("qx.ui.table.Table", qx.ui.layout.VerticalBoxLayout,
-function(tableModel) {
-  qx.ui.layout.VerticalBoxLayout.call(this);
-
-  // Create the child widgets
-  this._scrollerParent = new qx.ui.layout.HorizontalBoxLayout;
-  this._scrollerParent.setDimension("100%", "1*");
-  this._scrollerParent.setSpacing(1);
-
-  this._statusBar = new qx.ui.basic.Label;
-  this._statusBar.setAppearance("table-focus-statusbar");
-  this._statusBar.setDimension("100%", "auto");
-
-  this.add(this._scrollerParent, this._statusBar);
-
-  this._columnVisibilityBt = new qx.ui.toolbar.Button(null, "widget/table/selectColumnOrder.png");
-  this._columnVisibilityBt.addEventListener("execute", this._onColumnVisibilityBtExecuted, this);
-
-  // Create the models
-  this._selectionManager = this.getNewSelectionManager()(this);
-  this.setSelectionModel(this.getNewSelectionModel()(this));
-  this.setTableColumnModel(this.getNewTableColumnModel()(this));
-
-  // If a table model was provided...
-  if (tableModel != null) {
-    // ... then save it.
-    this.setTableModel(tableModel);
-  }
-
-  // create the main meta column
-  this.setMetaColumnCounts([ -1 ]);
-
-  // Make focusable
-  this.setTabIndex(1);
-  this.addEventListener("keydown", this._onkeydown);
-  this.addEventListener("keypress", this._onkeypress);
-  this.addEventListener("changeFocused", this._onFocusChanged);
-
-  this._focusedCol = 0;
-  this._focusedRow = 0;
-});
-
-
-/** The default row renderer to use when {@link #dataRowRenderer} is null. */
-qx.Class.DEFAULT_DATA_ROW_RENDERER = new qx.ui.table.DefaultDataRowRenderer();
-
-
-/** The selection model. */
-qx.OO.addProperty({ name:"selectionModel", type:"object", instance : "qx.ui.table.SelectionModel" });
-
-/** The table model. */
-qx.OO.addProperty({ name:"tableModel", type:"object", instance : "qx.ui.table.TableModel" });
-
-/** The table column model. */
-qx.OO.addProperty({ name:"tableColumnModel", type:"object", instance : "qx.ui.table.TableColumnModel" });
-
-/** The height of the table rows. */
-qx.OO.addProperty({ name:"rowHeight", type:"number", defaultValue:15 });
-
-/** Whether to show the status bar */
-qx.OO.addProperty({ name:"statusBarVisible", type:"boolean", defaultValue:true });
-
-/** Whether to show the column visibility button */
-qx.OO.addProperty({ name:"columnVisibilityButtonVisible", type:"boolean", defaultValue:true });
-
-/**
- * {int[]} The number of columns per meta column. If the last array entry is -1,
- * this meta column will get the remaining columns.
- */
-qx.OO.addProperty({ name:"metaColumnCounts", type:"object" });
-
-/**
- * Whether the focus should moved when the mouse is moved over a cell. If false
- * the focus is only moved on mouse clicks.
- */
-qx.OO.addProperty({ name:"focusCellOnMouseMove", type:"boolean", defaultValue:false });
-
-/**
- * Whether the table should keep the first visible row complete. If set to false,
- * the first row may be rendered partial, depending on the vertical scroll value.
- */
-qx.OO.addProperty({ name:"keepFirstVisibleRowComplete", type:"boolean", defaultValue:true });
-
-/**
- * Whether the table cells should be updated when only the selection or the
- * focus changed. This slows down the table update but allows to react on a
- * changed selection or a changed focus in a cell renderer.
- */
-qx.OO.addProperty({ name:"alwaysUpdateCells", type:"boolean", defaultValue:false });
-
-/** The height of the header cells. */
-qx.OO.addProperty({ name:"headerCellHeight", type:"number", defaultValue:16, allowNull:false });
-
-/** The renderer to use for styling the rows. */
-qx.OO.addProperty({ name:"dataRowRenderer", type:"object", instance:"qx.ui.table.DataRowRenderer", defaultValue:qx.Class.DEFAULT_DATA_ROW_RENDERER, allowNull:false });
-
-/**
- * A function to instantiate a selection manager.  this allows subclasses of
- * Table to subclass this internal class.  To take effect, this property must
- * be set before calling the Table constructor.
- */
-qx.OO.addProperty(
-  {
-    name :
-      "newSelectionManager",
-    type :
-      "function",
-    setOnlyOnce :
-      true,
-    defaultValue:
-      function(obj)
-      {
-        return new qx.ui.table.SelectionManager(obj);
-      }
-  });
-
-/**
- * A function to instantiate a selection model.  this allows subclasses of
- * Table to subclass this internal class.  To take effect, this property must
- * be set before calling the Table constructor.
- */
-qx.OO.addProperty(
-  {
-    name :
-      "newSelectionModel",
-    type :
-      "function",
-    setOnlyOnce :
-      true,
-    defaultValue:
-      function(obj)
-      {
-        return new qx.ui.table.SelectionModel(obj);
-      }
-  });
-
-/**
- * A function to instantiate a selection model.  this allows subclasses of
- * Table to subclass this internal class.  To take effect, this property must
- * be set before calling the Table constructor.
- */
-qx.OO.addProperty(
-  {
-    name :
-      "newTableColumnModel",
-    type :
-      "function",
-    setOnlyOnce :
-      true,
-    defaultValue:
-      function(obj)
-      {
-        return new qx.ui.table.TableColumnModel(obj);
-      }
-  });
-
-/**
- * A function to instantiate a table pane.  this allows subclasses of Table to
- * subclass this internal class.  To take effect, this property must be set
- * before calling the Table constructor.
- */
-qx.OO.addProperty(
-  {
-    name :
-      "newTablePane",
-    type :
-      "function",
-    setOnlyOnce :
-      true,
-    defaultValue:
-      function(obj)
-      {
-        return new qx.ui.table.TablePane(obj);
-      }
-  });
-
-/**
- * A function to instantiate a table pane.  this allows subclasses of Table to
- * subclass this internal class.  To take effect, this property must be set
- * before calling the Table constructor.
- */
-qx.OO.addProperty(
-  {
-    name :
-      "newTablePaneHeader",
-    type :
-      "function",
-    setOnlyOnce :
-      true,
-    defaultValue:
-      function(obj)
-      {
-        return new qx.ui.table.TablePaneHeader(obj);
-      }
-  });
-
-/**
- * A function to instantiate a table pane scroller.  this allows subclasses of
- * Table to subclass this internal class.  To take effect, this property must
- * be set before calling the Table constructor.
- */
-qx.OO.addProperty(
-  {
-    name :
-      "newTablePaneScroller",
-    type :
-      "function",
-    setOnlyOnce :
-      true,
-    defaultValue:
-      function(obj)
-      {
-        return new qx.ui.table.TablePaneScroller(obj);
-      }
-  });
-
-/**
- * A function to instantiate a table pane model.  this allows subclasses of
- * Table to subclass this internal class.  To take effect, this property must
- * be set before calling the Table constructor.
- */
-qx.OO.addProperty(
-  {
-    name :
-      "newTablePaneModel",
-    type :
-      "function",
-    setOnlyOnce :
-      true,
-    defaultValue:
-      function(columnModel)
-      {
-        return new qx.ui.table.TablePaneModel(columnModel);
-      }
-  });
-
-// property modifier
-qx.Proto._modifySelectionModel = function(propValue, propOldValue, propData) {
-  this._selectionManager.setSelectionModel(propValue);
-
-  if (propOldValue != null) {
-    propOldValue.removeEventListener("changeSelection", this._onSelectionChanged, this);
-  }
-  propValue.addEventListener("changeSelection", this._onSelectionChanged, this);
-
-  return true;
-}
-
-
-// property modifier
-qx.Proto._modifyTableModel = function(propValue, propOldValue, propData) {
-  this.getTableColumnModel().init(propValue.getColumnCount(), this);
-
-  if (propOldValue != null) {
-    propOldValue.removeEventListener(qx.ui.table.TableModel.EVENT_TYPE_META_DATA_CHANGED, this._onTableModelMetaDataChanged, this);
-    propOldValue.removeEventListener(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED, this._onTableModelDataChanged, this);
-  }
-  propValue.addEventListener(qx.ui.table.TableModel.EVENT_TYPE_META_DATA_CHANGED, this._onTableModelMetaDataChanged, this);
-  propValue.addEventListener(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED, this._onTableModelDataChanged, this);
-
-  // Update the status bar
-  this._updateStatusBar();
-
-  return true;
-}
-
-
-// property modifier
-qx.Proto._modifyTableColumnModel = function(propValue, propOldValue, propData) {
-  if (propOldValue != null) {
-    propOldValue.removeEventListener("visibilityChanged", this._onColVisibilityChanged, this);
-    propOldValue.removeEventListener("widthChanged", this._onColWidthChanged, this);
-    propOldValue.removeEventListener("orderChanged", this._onColOrderChanged, this);
-  }
-  propValue.addEventListener("visibilityChanged", this._onColVisibilityChanged, this);
-  propValue.addEventListener("widthChanged", this._onColWidthChanged, this);
-  propValue.addEventListener("orderChanged", this._onColOrderChanged, this);
-
-  // Get the current table model
-  var tm = this.getTableModel();
-
-  // If one is already in effect...
-  if (tm)
-  {
-    // ... then initialize this new table column model now.
-    propValue.init(tm.getColumnCount(), this);
-  }
-
-  // Reset the table column model in each table pane model
-  var scrollerArr = this._getPaneScrollerArr();
-  for (var i = 0; i < scrollerArr.length; i++)
-  {
-    var paneScroller = scrollerArr[i];
-    var paneModel = paneScroller.getTablePaneModel();
-    paneModel._tableColumnModel = propValue;
-  }
-
-  return true;
-};
-
-
-// property modifier
-qx.Proto._modifyStatusBarVisible = function(propValue, propOldValue, propData) {
-  this._statusBar.setDisplay(propValue);
-
-  if (propValue) {
-    this._updateStatusBar();
-  }
-  return true;
-};
-
-
-// property modifier
-qx.Proto._modifyColumnVisibilityButtonVisible = function(propValue, propOldValue, propData) {
-  this._columnVisibilityBt.setDisplay(propValue);
-
-  return true;
-};
-
-
-// property modifier
-qx.Proto._modifyMetaColumnCounts = function(propValue, propOldValue, propData) {
-  var metaColumnCounts = propValue;
-  var scrollerArr = this._getPaneScrollerArr();
-
-  // Remove the panes not needed any more
-  this._cleanUpMetaColumns(metaColumnCounts.length);
-
-  // Update the old panes
-  var leftX = 0;
-  for (var i = 0; i < scrollerArr.length; i++) {
-    var paneScroller = scrollerArr[i];
-    var paneModel = paneScroller.getTablePaneModel();
-    paneModel.setFirstColumnX(leftX);
-    paneModel.setMaxColumnCount(metaColumnCounts[i]);
-    leftX += metaColumnCounts[i];
-  }
-
-  // Add the new panes
-  if (metaColumnCounts.length > scrollerArr.length) {
-    var selectionModel = this.getSelectionModel();
-    var tableModel = this.getTableModel();
-    var columnModel = this.getTableColumnModel();
-
-    for (var i = scrollerArr.length; i < metaColumnCounts.length; i++) {
-      var paneModel = this.getNewTablePaneModel()(columnModel);
-      paneModel.setFirstColumnX(leftX);
-      paneModel.setMaxColumnCount(metaColumnCounts[i]);
-      leftX += metaColumnCounts[i];
-
-      var paneScroller = this.getNewTablePaneScroller()(this);
-      paneScroller.setTablePaneModel(paneModel);
-
-      // Register event listener for vertical scrolling
-      paneScroller.addEventListener("changeScrollY", this._onScrollY, this);
-
-      this._scrollerParent.add(paneScroller);
-    }
-  }
-
-  // Update all meta columns
-  for (var i = 0; i < scrollerArr.length; i++) {
-    var paneScroller = scrollerArr[i];
-    var isLast = (i == (scrollerArr.length - 1));
-
-    // Set the right header height
-    paneScroller.getHeader().setHeight(this.getHeaderCellHeight());
-
-    // Put the _columnVisibilityBt in the top right corner of the last meta column
-    paneScroller.setTopRightWidget(isLast ? this._columnVisibilityBt : null);
-  }
-
-  this._updateScrollerWidths();
-  this._updateScrollBarVisibility();
-
-  return true;
-}
-
-
-// property modifier
-qx.Proto._modifyFocusCellOnMouseMove = function(propValue, propOldValue, propData) {
-  var scrollerArr = this._getPaneScrollerArr();
-  for (var i = 0; i < scrollerArr.length; i++) {
-    scrollerArr[i].setFocusCellOnMouseMove(propValue);
-  }
-  return true;
-};
-
-
-// property modifier
-qx.Proto._modifyKeepFirstVisibleRowComplete = function(propValue, propOldValue, propData) {
-  var scrollerArr = this._getPaneScrollerArr();
-  for (var i = 0; i < scrollerArr.length; i++) {
-    scrollerArr[i]._onKeepFirstVisibleRowCompleteChanged();
-  }
-  return true;
-};
-
-
-// property modifier
-qx.Proto._modifyHeaderCellHeight = function(propValue, propOldValue, propData) {
-  var scrollerArr = this._getPaneScrollerArr();
-  for (var i = 0; i < scrollerArr.length; i++) {
-    scrollerArr[i].getHeader().setHeight(propValue);
-  }
-  return true;
-};
-
-/**
- * Returns the selection manager.
- *
- * @return {SelectionManager} the selection manager.
- */
-qx.Proto._getSelectionManager = function() {
-  return this._selectionManager;
-};
-
-
-/**
- * Returns an array containing all TablePaneScrollers in this table.
- *
- * @return {TablePaneScroller[]} all TablePaneScrollers in this table.
- */
-qx.Proto._getPaneScrollerArr = function() {
-  return this._scrollerParent.getChildren();
-}
-
-
-/**
- * Returns a TablePaneScroller of this table.
- *
- * @param metaColumn {Integer} the meta column to get the TablePaneScroller for.
- * @return {TablePaneScroller} the TablePaneScroller.
- */
-qx.Proto.getPaneScroller = function(metaColumn) {
-  return this._getPaneScrollerArr()[metaColumn];
-}
-
-
-/**
- * Cleans up the meta columns.
- *
- * @param fromMetaColumn {Integer} the first meta column to clean up. All following
- *    meta columns will be cleaned up, too. All previous meta columns will
- *    stay unchanged. If 0 all meta columns will be cleaned up.
- */
-qx.Proto._cleanUpMetaColumns = function(fromMetaColumn) {
-  var scrollerArr = this._getPaneScrollerArr();
-  if (scrollerArr != null) {
-    for (var i = scrollerArr.length - 1; i >= fromMetaColumn; i--) {
-      var paneScroller = scrollerArr[i];
-      paneScroller.removeEventListener("changeScrollY", this._onScrollY, this);
-      this._scrollerParent.remove(paneScroller);
-      paneScroller.dispose();
-    }
-  }
-}
-
-
-/**
- * Event handler. Called when the selection has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onSelectionChanged = function(evt) {
-  var scrollerArr = this._getPaneScrollerArr();
-  for (var i = 0; i < scrollerArr.length; i++) {
-    scrollerArr[i]._onSelectionChanged(evt);
-  }
-
-  this._updateStatusBar();
-}
-
-
-/**
- * Event handler. Called when the table model meta data has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onTableModelMetaDataChanged = function(evt) {
-  var scrollerArr = this._getPaneScrollerArr();
-  for (var i = 0; i < scrollerArr.length; i++) {
-    scrollerArr[i]._onTableModelMetaDataChanged(evt);
-  }
-
-  this._updateStatusBar();
-}
-
-
-/**
- * Event handler. Called when the table model data has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onTableModelDataChanged = function(evt) {
-  var scrollerArr = this._getPaneScrollerArr();
-  for (var i = 0; i < scrollerArr.length; i++) {
-    scrollerArr[i]._onTableModelDataChanged(evt);
-  }
-
-  var rowCount = this.getTableModel().getRowCount();
-  if (rowCount != this._lastRowCount) {
-    this._lastRowCount = rowCount;
-
-    this._updateScrollBarVisibility();
-    this._updateStatusBar();
-  }
-};
-
-
-/**
- * Event handler. Called when a TablePaneScroller has been scrolled vertically.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onScrollY = function(evt) {
-  if (! this._internalChange) {
-    this._internalChange = true;
-
-    // Set the same scroll position to all meta columns
-    var scrollerArr = this._getPaneScrollerArr();
-    for (var i = 0; i < scrollerArr.length; i++) {
-      scrollerArr[i].setScrollY(evt.getData());
-    }
-
-    this._internalChange = false;
-  }
-}
-
-
-/**
- * Event handler. Called when a key was pressed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onkeydown = function(evt) {
-  if (! this.getEnabled()) {
-    return;
-  }
-
-  var identifier = evt.getKeyIdentifier();
-
-  var consumed = false;
-  var oldFocusedRow = this._focusedRow;
-  if (this.isEditing()) {
-    // Editing mode
-    if (evt.getModifiers() == 0) {
-      consumed = true;
-      switch (identifier) {
-        case "Enter":
-          this.stopEditing();
-          var oldFocusedRow = this._focusedRow;
-          this.moveFocusedCell(0, 1);
-          if (this._focusedRow != oldFocusedRow) {
-            this.startEditing();
-          }
-          break;
-        case "Escape":
-          this.cancelEditing();
-          this.focus();
-          break;
-        default:
-          consumed = false;
-          break;
-      }
-    }
-  } else {
-    // No editing mode
-
-    // Handle keys that are independant from the modifiers
-    consumed = true;
-    switch (identifier) {
-      case "Home":
-        this.setFocusedCell(this._focusedCol, 0, true);
-        break;
-      case "End":
-        var rowCount = this.getTableModel().getRowCount();
-        this.setFocusedCell(this._focusedCol, rowCount - 1, true);
-        break;
-      default:
-        consumed = false;
-        break;
-    }
-
-    // Handle keys that depend on modifiers
-    if (evt.getModifiers() == 0) {
-      consumed = true;
-      switch (identifier) {
-        case "F2":
-        case "Enter":
-          this.startEditing();
-          break;
-        default:
-          consumed = false;
-          break;
-      }
-    } else if (evt.isCtrlPressed()) {
-      consumed = true;
-      switch (identifier) {
-        case "A": // Ctrl + A
-          var rowCount = this.getTableModel().getRowCount();
-          if (rowCount > 0) {
-            this.getSelectionModel().setSelectionInterval(0, rowCount - 1);
-          }
-          break;
-        default:
-          consumed = false;
-          break;
-      }
-    }
-  }
-
-  if (oldFocusedRow != this._focusedRow) {
-    // The focus moved -> Let the selection manager handle this event
-    this._selectionManager.handleMoveKeyDown(this._focusedRow, evt);
-  }
-
-  if (consumed) {
-    evt.preventDefault();
-    evt.stopPropagation();
-  }
-};
-
-
-qx.Proto._onkeypress = function(evt)
-{
-  if (! this.getEnabled()) {
-    return;
-  }
-
-  if (this.isEditing()) { return }
-  // No editing mode
-  var oldFocusedRow = this._focusedRow;
-  var consumed = true;
-
-  // Handle keys that are independant from the modifiers
-  var identifier = evt.getKeyIdentifier();
-  switch (identifier) {
-    case "Space":
-      this._selectionManager.handleSelectKeyDown(this._focusedRow, evt);
-      break;
-
-    case "Left":
-      this.moveFocusedCell(-1, 0);
-      break;
-
-    case "Right":
-      this.moveFocusedCell(1, 0);
-      break;
-
-    case "Up":
-      this.moveFocusedCell(0, -1);
-      break;
-
-    case "Down":
-      this.moveFocusedCell(0, 1);
-      break;
-
-    case "PageUp":
-    case "PageDown":
-      var scroller = this.getPaneScroller(0);
-      var pane = scroller.getTablePane();
-      var rowCount = pane.getVisibleRowCount() - 1;
-      var rowHeight = this.getRowHeight();
-      var direction = (identifier == "PageUp") ? -1 : 1;
-      scroller.setScrollY(scroller.getScrollY() + direction * rowCount * rowHeight);
-      this.moveFocusedCell(0, direction * rowCount);
-      break;
-
-    default:
-      consumed = false;
-  }
-  if (oldFocusedRow != this._focusedRow) {
-    // The focus moved -> Let the selection manager handle this event
-    this._selectionManager.handleMoveKeyDown(this._focusedRow, evt);
-  }
-
-  if (consumed) {
-    evt.preventDefault();
-    evt.stopPropagation();
-  }
-};
-
-
-/**
- * Event handler. Called when the table gets the focus.
- */
-qx.Proto._onFocusChanged = function(evt) {
-  var scrollerArr = this._getPaneScrollerArr();
-  for (var i = 0; i < scrollerArr.length; i++) {
-    scrollerArr[i]._onFocusChanged(evt);
-  }
-};
-
-
-/**
- * Event handler. Called when the visibility of a column has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onColVisibilityChanged = function(evt) {
-  var scrollerArr = this._getPaneScrollerArr();
-  for (var i = 0; i < scrollerArr.length; i++) {
-    scrollerArr[i]._onColVisibilityChanged(evt);
-  }
-
-  this._updateScrollerWidths();
-  this._updateScrollBarVisibility();
-}
-
-
-/**
- * Event handler. Called when the width of a column has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onColWidthChanged = function(evt) {
-  var scrollerArr = this._getPaneScrollerArr();
-  for (var i = 0; i < scrollerArr.length; i++) {
-    scrollerArr[i]._onColWidthChanged(evt);
-  }
-
-  this._updateScrollerWidths();
-  this._updateScrollBarVisibility();
-}
-
-
-/**
- * Event handler. Called when the column order has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onColOrderChanged = function(evt) {
-  var scrollerArr = this._getPaneScrollerArr();
-  for (var i = 0; i < scrollerArr.length; i++) {
-    scrollerArr[i]._onColOrderChanged(evt);
-  }
-
-  // A column may have been moved between meta columns
-  this._updateScrollerWidths();
-  this._updateScrollBarVisibility();
-}
-
-
-/**
- * Gets the TablePaneScroller at a certain x position in the page. If there is
- * no TablePaneScroller at this postion, null is returned.
- *
- * @param pageX {Integer} the position in the page to check (in pixels).
- * @return {TablePaneScroller} the TablePaneScroller or null.
- *
- * @see TablePaneScrollerPool
- */
-qx.Proto.getTablePaneScrollerAtPageX = function(pageX) {
-  var metaCol = this._getMetaColumnAtPageX(pageX);
-  return (metaCol != -1) ? this.getPaneScroller(metaCol) : null;
-}
-
-
-/**
- * Sets the currently focused cell.
- *
- * @param col {Integer} the model index of the focused cell's column.
- * @param row {Integer} the model index of the focused cell's row.
- * @param scrollVisible {Boolean ? false} whether to scroll the new focused cell
- *        visible.
- *
- * @see TablePaneScrollerPool
- */
-qx.Proto.setFocusedCell = function(col, row, scrollVisible) {
-  if (!this.isEditing() && (col != this._focusedCol || row != this._focusedRow)) {
-    this._focusedCol = col;
-    this._focusedRow = row;
-
-    var scrollerArr = this._getPaneScrollerArr();
-    for (var i = 0; i < scrollerArr.length; i++) {
-      scrollerArr[i].setFocusedCell(col, row);
-    }
-
-    if (scrollVisible) {
-      this.scrollCellVisible(col, row);
-    }
-  }
-}
-
-
-/**
- * Returns the column of the currently focused cell.
- *
- * @return {Integer} the model index of the focused cell's column.
- */
-qx.Proto.getFocusedColumn = function() {
-  return this._focusedCol;
-};
-
-
-/**
- * Returns the row of the currently focused cell.
- *
- * @return {Integer} the model index of the focused cell's column.
- */
-qx.Proto.getFocusedRow = function() {
-  return this._focusedRow;
-};
-
-
-/**
- * Moves the focus.
- *
- * @param deltaX {Integer} The delta by which the focus should be moved on the x axis.
- * @param deltaY {Integer} The delta by which the focus should be moved on the y axis.
- */
-qx.Proto.moveFocusedCell = function(deltaX, deltaY) {
-  var col = this._focusedCol;
-  var row = this._focusedRow;
-
-  if (deltaX != 0) {
-    var columnModel = this.getTableColumnModel();
-    var x = columnModel.getVisibleX(col);
-    var colCount = columnModel.getVisibleColumnCount();
-    x = qx.lang.Number.limit(x + deltaX, 0, colCount - 1);
-    col = columnModel.getVisibleColumnAtX(x);
-  }
-
-  if (deltaY != 0) {
-    var tableModel = this.getTableModel();
-    row = qx.lang.Number.limit(row + deltaY, 0, tableModel.getRowCount() - 1);
-  }
-
-  this.setFocusedCell(col, row, true);
-}
-
-
-/**
- * Scrolls a cell visible.
- *
- * @param col {Integer} the model index of the column the cell belongs to.
- * @param row {Integer} the model index of the row the cell belongs to.
- */
-qx.Proto.scrollCellVisible = function(col, row) {
-  var columnModel = this.getTableColumnModel();
-  var x = columnModel.getVisibleX(col);
-
-  var metaColumn = this._getMetaColumnAtColumnX(x);
-  if (metaColumn != -1) {
-    this.getPaneScroller(metaColumn).scrollCellVisible(col, row);
-  }
-}
-
-
-/**
- * Returns whether currently a cell is editing.
- *
- * @return whether currently a cell is editing.
- */
-qx.Proto.isEditing = function() {
-  if (this._focusedCol != null) {
-    var x = this.getTableColumnModel().getVisibleX(this._focusedCol);
-    var metaColumn = this._getMetaColumnAtColumnX(x);
-    return this.getPaneScroller(metaColumn).isEditing();
-  }
-}
-
-
-/**
- * Starts editing the currently focused cell. Does nothing if already editing
- * or if the column is not editable.
- *
- * @return {Boolean} whether editing was started
- */
-qx.Proto.startEditing = function() {
-  if (this._focusedCol != null) {
-    var x = this.getTableColumnModel().getVisibleX(this._focusedCol);
-    var metaColumn = this._getMetaColumnAtColumnX(x);
-    return this.getPaneScroller(metaColumn).startEditing();
-  }
-  return false;
-}
-
-
-/**
- * Stops editing and writes the editor's value to the model.
- */
-qx.Proto.stopEditing = function() {
-  if (this._focusedCol != null) {
-    var x = this.getTableColumnModel().getVisibleX(this._focusedCol);
-    var metaColumn = this._getMetaColumnAtColumnX(x);
-    this.getPaneScroller(metaColumn).stopEditing();
-  }
-}
-
-
-/**
- * Stops editing without writing the editor's value to the model.
- */
-qx.Proto.cancelEditing = function() {
-  if (this._focusedCol != null) {
-    var x = this.getTableColumnModel().getVisibleX(this._focusedCol);
-    var metaColumn = this._getMetaColumnAtColumnX(x);
-    this.getPaneScroller(metaColumn).cancelEditing();
-  }
-}
-
-
-/**
- * Gets the meta column at a certain x position in the page. If there is no
- * meta column at this postion, -1 is returned.
- *
- * @param pageX {Integer} the position in the page to check (in pixels).
- * @return {Integer} the index of the meta column or -1.
- */
-qx.Proto._getMetaColumnAtPageX = function(pageX) {
-  var scrollerArr = this._getPaneScrollerArr();
-  for (var i = 0; i < scrollerArr.length; i++) {
-    var elem = scrollerArr[i].getElement();
-    if (pageX >= qx.html.Location.getPageBoxLeft(elem)
-      && pageX <= qx.html.Location.getPageBoxRight(elem))
-    {
-      return i;
-    }
-  }
-
-  return -1;
-}
-
-
-/**
- * Returns the meta column a column is shown in. If the column is not shown at
- * all, -1 is returned.
- *
- * @param visXPos {Integer} the visible x position of the column.
- * @return {Integer} the meta column the column is shown in.
- */
-qx.Proto._getMetaColumnAtColumnX = function(visXPos) {
-  var metaColumnCounts = this.getMetaColumnCounts();
-  var rightXPos = 0;
-  for (var i = 0; i < metaColumnCounts.length; i++) {
-    var counts = metaColumnCounts[i];
-    rightXPos += counts;
-
-    if (counts == -1 || visXPos < rightXPos) {
-      return i;
-    }
-  }
-
-  return -1;
-}
-
-
-/**
- * Updates the text shown in the status bar.
- */
-qx.Proto._updateStatusBar = function() {
-  if (this.getStatusBarVisible()) {
-    var selectedRowCount = this.getSelectionModel().getSelectedCount();
-    var rowCount = this.getTableModel().getRowCount();
-
-    var text;
-    if (selectedRowCount == 0) {
-      text = rowCount + ((rowCount == 1) ? " row" : " rows");
-    } else {
-      text = selectedRowCount + " of " + rowCount
-        + ((rowCount == 1) ? " row" : " rows") + " selected";
-    }
-    this._statusBar.setHtml(text);
-  }
-}
-
-
-/**
- * Updates the widths of all scrollers.
- */
-qx.Proto._updateScrollerWidths = function() {
-/*  no longer needed, per Til, and removing it does not appear to add problems.
- *  qx.ui.core.Widget.flushGlobalQueues();
- */
-
-  // Give all scrollers except for the last one the wanted width
-  // (The last one has a flex with)
-  var scrollerArr = this._getPaneScrollerArr();
-  for (var i = 0; i < scrollerArr.length; i++) {
-    var isLast = (i == (scrollerArr.length - 1));
-    var width = isLast ? "1*" : scrollerArr[i].getTablePaneModel().getTotalWidth();
-    scrollerArr[i].setWidth(width);
-  }
-}
-
-
-/**
- * Updates the visibility of the scrollbars in the meta columns.
- */
-qx.Proto._updateScrollBarVisibility = function() {
-  if (this.isSeeable()) {
-    var horBar = qx.ui.table.TablePaneScroller.HORIZONTAL_SCROLLBAR;
-    var verBar = qx.ui.table.TablePaneScroller.VERTICAL_SCROLLBAR;
-    var scrollerArr = this._getPaneScrollerArr();
-
-    // Check which scroll bars are needed
-    var horNeeded = false;
-    var verNeeded = false;
-    for (var i = 0; i < scrollerArr.length; i++) {
-      var isLast = (i == (scrollerArr.length - 1));
-
-      // Only show the last vertical scrollbar
-      var bars = scrollerArr[i].getNeededScrollBars(horNeeded, !isLast);
-
-      if (bars & horBar) {
-        horNeeded = true;
-      }
-      if (isLast && (bars & verBar)) {
-        verNeeded = true;
-      }
-    }
-
-    // Set the needed scrollbars
-    for (var i = 0; i < scrollerArr.length; i++) {
-      var isLast = (i == (scrollerArr.length - 1));
-
-      // Only show the last vertical scrollbar
-      scrollerArr[i].setHorizontalScrollBarVisible(horNeeded);
-      scrollerArr[i].setVerticalScrollBarVisible(isLast && verNeeded);
-    }
-  }
-}
-
-
-/**
- * Event handler. Called when the column visibiliy button was executed.
- */
-qx.Proto._onColumnVisibilityBtExecuted = function() {
-  if ((this._columnVisibilityMenuCloseTime == null)
-    || (new Date().getTime() > this._columnVisibilityMenuCloseTime + 200))
-  {
-    this._toggleColumnVisibilityMenu();
-  }
-}
-
-
-/**
- * Toggels the visibility of the menu used to change the visibility of columns.
- */
-qx.Proto._toggleColumnVisibilityMenu = function() {
-  if (this._columnVisibilityMenu == null || !this._columnVisibilityMenu.isSeeable()) {
-    if (! this.getEnabled()) {
-      return;
-    }
-
-    // Show the menu
-
-    // Create the new menu
-    var menu = new qx.ui.menu.Menu;
-
-    menu.addEventListener("disappear", function(evt) {
-      this._columnVisibilityMenuCloseTime = new Date().getTime();
-    }, this);
-
-    var tableModel = this.getTableModel();
-    var columnModel = this.getTableColumnModel();
-
-    // Inform listeners who may want to insert menu items at the beginning
-    if (this.hasEventListeners("columnVisibilityMenuCreateStart"))
-    {
-      var data =
-        {
-          table : this,
-          menu  : menu
-        };
-      var event =
-        new qx.event.type.DataEvent("columnVisibilityMenuCreateStart", data);
-      this.dispatchEvent(event, true);
-    }
-
-    for (var x = 0; x < columnModel.getOverallColumnCount(); x++) {
-      var col = columnModel.getOverallColumnAtX(x);
-      var visible = columnModel.isColumnVisible(col);
-      var cmd = { col:col }
-      var bt = new qx.ui.menu.CheckBox(tableModel.getColumnName(col), null, visible);
-
-      var handler = this._createColumnVisibilityCheckBoxHandler(col);
-      bt._handler = handler;
-      bt.addEventListener("execute", handler, this);
-
-      menu.add(bt);
-    }
-
-    // Inform listeners who may want to insert menu items at the end
-    if (this.hasEventListeners("columnVisibilityMenuCreateEnd"))
-    {
-      var data =
-        {
-          table : this,
-          menu  : menu
-        };
-      var event =
-        new qx.event.type.DataEvent("columnVisibilityMenuCreateEnd", data);
-      this.dispatchEvent(event, true);
-    }
-
-    menu.setParent(this.getTopLevelWidget());
-
-    this._columnVisibilityMenu = menu;
-
-    // Show the menu
-    var btElem = this._columnVisibilityBt.getElement();
-    menu.setRestrictToPageOnOpen(false);
-    menu.setTop(qx.html.Location.getClientBoxBottom(btElem));
-    menu.setLeft(-1000);
-
-    // NOTE: We have to show the menu in a timeout, otherwise it won't be shown
-    //       at all.
-    window.setTimeout(function() {
-      menu.show();
-      qx.ui.core.Widget.flushGlobalQueues();
-
-      menu.setLeft(qx.html.Location.getClientBoxRight(btElem) - menu.getOffsetWidth());
-      qx.ui.core.Widget.flushGlobalQueues();
-    }, 0);
-  } else {
-    // hide the menu
-    menu.hide();
-    this._cleanupColumnVisibilityMenu();
-  }
-}
-
-
-/**
- * Cleans up the column visibility menu.
- */
-qx.Proto._cleanupColumnVisibilityMenu = function() {
-  if (this._columnVisibilityMenu != null && ! this._columnVisibilityMenu.getDisposed()) {
-    this._columnVisibilityMenu.dispose();
-    this._columnVisibilityMenu = null;
-  }
-}
-
-
-/**
- * Creates a handler for a check box of the column visibility menu.
- *
- * @param col {Integer} the model index of column to create the handler for.
- */
-qx.Proto._createColumnVisibilityCheckBoxHandler = function(col) {
-  return function(evt) {
-    var columnModel = this.getTableColumnModel();
-    columnModel.setColumnVisible(col, !columnModel.isColumnVisible(col));
-  }
-}
-
-
-/**
- * Sets the width of a column.
- *
- * @param col {Integer} the model index of column.
- * @param width {Integer} the new width in pixels.
- */
-qx.Proto.setColumnWidth = function(col, width) {
-  this.getTableColumnModel().setColumnWidth(col, width);
-}
-
-
-// overridden
-qx.Proto._changeInnerWidth = function(newValue, oldValue) {
-  var self = this;
-  window.setTimeout(function() {
-    self.createDispatchEvent("tableWidthChanged");
-    self._updateScrollerWidths();
-    self._updateScrollBarVisibility();
-    qx.ui.core.Widget.flushGlobalQueues();
-  }, 0);
-
-  return qx.ui.layout.VerticalBoxLayout.prototype._changeInnerWidth.call(this, newValue, oldValue);
-}
-
-
-// overridden
-qx.Proto._changeInnerHeight = function(newValue, oldValue) {
-  var self = this;
-  window.setTimeout(function() {
-    self._updateScrollBarVisibility();
-    qx.ui.core.Widget.flushGlobalQueues();
-  }, 0);
-
-  return qx.ui.layout.VerticalBoxLayout.prototype._changeInnerHeight.call(this, newValue, oldValue);
-}
-
-
-// overridden
-qx.Proto._afterAppear = function() {
-  qx.ui.layout.VerticalBoxLayout.prototype._afterAppear.call(this);
-
-  this._updateScrollBarVisibility();
-}
-
-
-// overridden
-qx.Proto.dispose = function() {
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  if (this._tableModel) {
-    this._tableModel.removeEventListener(qx.ui.table.TableModel.EVENT_TYPE_META_DATA_CHANGED, this._onTableModelMetaDataChanged, this);
-  }
-
-  this._columnVisibilityBt.removeEventListener("execute", this._onColumnVisibilityBtExecuted, this);
-  this._columnVisibilityBt.dispose();
-
-  this._cleanupColumnVisibilityMenu();
-
-  this._cleanUpMetaColumns(0);
-
-  var selectionModel = this.getSelectionModel();
-  if (selectionModel != null) {
-    selectionModel.removeEventListener("changeSelection", this._onSelectionChanged, this);
-  }
-
-  var tableModel = this.getTableModel();
-  if (tableModel != null) {
-    tableModel.removeEventListener(qx.ui.table.TableModel.EVENT_TYPE_META_DATA_CHANGED, this._onTableModelMetaDataChanged, this);
-    tableModel.removeEventListener(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED, this._onTableModelDataChanged, this);
-  }
-
-  var tableColumnModel = this.getTableColumnModel();
-  if (tableColumnModel) {
-    tableColumnModel.removeEventListener("visibilityChanged", this._onColVisibilityChanged, this);
-    tableColumnModel.removeEventListener("widthChanged", this._onColWidthChanged, this);
-    tableColumnModel.removeEventListener("orderChanged", this._onColOrderChanged, this);
-  }
-
-  this.removeEventListener("keydown", this._onkeydown);
-  this.removeEventListener("keypress", this._onkeypress);
-
-  return qx.ui.layout.VerticalBoxLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/TableColumnModel.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/TableColumnModel.js
deleted file mode 100644 (file)
index 9a018d7..0000000
+++ /dev/null
@@ -1,401 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_table)
-
-// These are needed because of their instantiation at bottom. I don't think this
-// is a good idea. (wpbasti)
-#require(qx.ui.table.DefaultHeaderCellRenderer)
-#require(qx.ui.table.DefaultDataCellRenderer)
-#require(qx.ui.table.TextFieldCellEditorFactory)
-
-************************************************************************ */
-
-/**
- * A model that contains all meta data about columns, such as width, renderers,
- * visibility and order.
- *
- * @event widthChanged {qx.event.type.DataEvent} Fired when the width of a
- *        column has changed. The data property of the event is a map having the
- *        following attributes:
- *        <ul>
- *        <li>col: The model index of the column the width of which has changed.</li>
- *        <li>newWidth: The new width of the column in pixels.</li>
- *        <li>oldWidth: The old width of the column in pixels.</li>
- *        </ul>
- * @event visibilityChangedPre {qx.event.type.DataEvent} Fired when the
- *        visibility of a column has changed. This event is equal to
- *        "visibilityChanged", but is fired right before.
- * @event visibilityChanged {qx.event.type.DataEvent} Fired when the
- *        visibility of a column has changed. The data property of the
- *        event is a map having the following attributes:
- *        <ul>
- *        <li>col: The model index of the column the visibility of which has changed.</li>
- *        <li>visible: Whether the column is now visible.</li>
- *        </ul>
- * @event orderChanged {qx.event.type.DataEvent} Fired when the column order
- *        has changed. The data property of the
- *        event is a map having the following attributes:
- *        <ul>
- *        <li>col: The model index of the column that was moved.</li>
- *        <li>fromOverXPos: The old overall x position of the column.</li>
- *        <li>toOverXPos: The new overall x position of the column.</li>
- *        </ul>
- *
- * @see com.ptvag.webcomponent.ui.table.TableModel
- */
-qx.OO.defineClass("qx.ui.table.TableColumnModel", qx.core.Target,
-function() {
-  qx.core.Target.call(this);
-});
-
-
-/**
- * Initializes the column model.
- *
- * @param colCount {Integer} the number of columns the model should have.
- */
-qx.Proto.init = function(colCount) {
-  this._columnDataArr = [];
-
-  var width = qx.ui.table.TableColumnModel.DEFAULT_WIDTH;
-  var headerRenderer = qx.ui.table.TableColumnModel.DEFAULT_HEADER_RENDERER;
-  var dataRenderer = qx.ui.table.TableColumnModel.DEFAULT_DATA_RENDERER;
-  var editorFactory = qx.ui.table.TableColumnModel.DEFAULT_EDITOR_FACTORY;
-  this._overallColumnArr = [];
-  this._visibleColumnArr = [];
-  for (var col = 0; col < colCount; col++) {
-    this._columnDataArr[col] = { width:width, headerRenderer:headerRenderer,
-      dataRenderer:dataRenderer, editorFactory:editorFactory }
-    this._overallColumnArr[col] = col;
-    this._visibleColumnArr[col] = col;
-  }
-
-  this._colToXPosMap = null;
-}
-
-
-/**
- * Sets the width of a column.
- *
- * @param col {Integer} the model index of the column.
- * @param width {Integer} the new width the column should get in pixels.
- */
-qx.Proto.setColumnWidth = function(col, width) {
-  var oldWidth = this._columnDataArr[col].width;
-  if (oldWidth != width) {
-    this._columnDataArr[col].width = width;
-    if (this.hasEventListeners("widthChanged")) {
-      var data = { col:col, newWidth:width, oldWidth:oldWidth }
-      this.dispatchEvent(new qx.event.type.DataEvent("widthChanged", data), true);
-    }
-  }
-}
-
-
-/**
- * Returns the width of a column.
- *
- * @param col {Integer} the model index of the column.
- * @return {Integer} the width of the column in pixels.
- */
-qx.Proto.getColumnWidth = function(col) {
-  return this._columnDataArr[col].width;
-}
-
-
-/**
- * Sets the header renderer of a column.
- *
- * @param col {Integer} the model index of the column.
- * @param renderer {HeaderCellRenderer} the new header renderer the column
- *    should get.
- */
-qx.Proto.setHeaderCellRenderer = function(col, renderer) {
-  this._columnDataArr[col].headerRenderer = renderer;
-}
-
-
-/**
- * Returns the header renderer of a column.
- *
- * @param col {Integer} the model index of the column.
- * @return {HeaderCellRenderer} the header renderer of the column.
- */
-qx.Proto.getHeaderCellRenderer = function(col) {
-  return this._columnDataArr[col].headerRenderer;
-}
-
-
-/**
- * Sets the data renderer of a column.
- *
- * @param col {Integer} the model index of the column.
- * @param renderer {DataCellRenderer} the new data renderer the column should get.
- */
-qx.Proto.setDataCellRenderer = function(col, renderer) {
-  this._columnDataArr[col].dataRenderer = renderer;
-}
-
-
-/**
- * Returns the data renderer of a column.
- *
- * @param col {Integer} the model index of the column.
- * @return {DataCellRenderer} the data renderer of the column.
- */
-qx.Proto.getDataCellRenderer = function(col) {
-  return this._columnDataArr[col].dataRenderer;
-}
-
-
-/**
- * Sets the cell editor factory of a column.
- *
- * @param col {Integer} the model index of the column.
- * @param factory {CellEditorFactory} the new cell editor factory the column should get.
- */
-qx.Proto.setCellEditorFactory = function(col, factory) {
-  this._columnDataArr[col].editorFactory = factory;
-}
-
-
-/**
- * Returns the cell editor factory of a column.
- *
- * @param col {Integer} the model index of the column.
- * @return {CellEditorFactory} the cell editor factory of the column.
- */
-qx.Proto.getCellEditorFactory = function(col) {
-  return this._columnDataArr[col].editorFactory;
-}
-
-
-/**
- * Returns the map that translates model indexes to x positions.
- * <p>
- * The returned map contains for a model index (int) a map having two
- * properties: overX (the overall x position of the column, int) and
- * visX (the visible x position of the column, int). visX is missing for
- * hidden columns.
- *
- * @return the "column to x postion" map.
- */
-qx.Proto._getColToXPosMap = function() {
-  if (this._colToXPosMap == null) {
-    this._colToXPosMap = {};
-    for (var overX = 0; overX < this._overallColumnArr.length; overX++) {
-      var col = this._overallColumnArr[overX];
-      this._colToXPosMap[col] = { overX:overX }
-    }
-    for (var visX = 0; visX < this._visibleColumnArr.length; visX++) {
-      var col = this._visibleColumnArr[visX];
-      this._colToXPosMap[col].visX = visX;
-    }
-  }
-  return this._colToXPosMap;
-}
-
-
-/**
- * Returns the number of visible columns.
- *
- * @return {Integer} the number of visible columns.
- */
-qx.Proto.getVisibleColumnCount = function() {
-  return this._visibleColumnArr.length;
-}
-
-
-/**
- * Returns the model index of a column at a certain visible x position.
- *
- * @param visXPos {Integer} the visible x position of the column.
- * @return {Integer} the model index of the column.
- */
-qx.Proto.getVisibleColumnAtX = function(visXPos) {
-  return this._visibleColumnArr[visXPos];
-}
-
-
-/**
- * Returns the visible x position of a column.
- *
- * @param col {Integer} the model index of the column.
- * @return {Integer} the visible x position of the column.
- */
-qx.Proto.getVisibleX = function(col) {
-  return this._getColToXPosMap()[col].visX;
-}
-
-
-/**
- * Returns the overall number of columns (including hidden columns).
- *
- * @return {Integer} the overall number of columns.
- */
-qx.Proto.getOverallColumnCount = function() {
-  return this._overallColumnArr.length;
-}
-
-
-/**
- * Returns the model index of a column at a certain overall x position.
- *
- * @param overXPos {Integer} the overall x position of the column.
- * @return {Integer} the model index of the column.
- */
-qx.Proto.getOverallColumnAtX = function(overXPos) {
-  return this._overallColumnArr[overXPos];
-}
-
-
-/**
- * Returns the overall x position of a column.
- *
- * @param col {Integer} the model index of the column.
- * @return {Integer} the overall x position of the column.
- */
-qx.Proto.getOverallX = function(col) {
-  return this._getColToXPosMap()[col].overX;
-}
-
-
-/**
- * Returns whether a certain column is visible.
- *
- * @param col {Integer} the model index of the column.
- * @return {Boolean} whether the column is visible.
- */
-qx.Proto.isColumnVisible = function(col) {
-  return (this._getColToXPosMap()[col].visX != null);
-}
-
-
-/**
- * Sets whether a certain column is visible.
- *
- * @param col {Integer} the model index of the column.
- * @param visible {Boolean} whether the column should be visible.
- */
-qx.Proto.setColumnVisible = function(col, visible) {
-  if (visible != this.isColumnVisible(col)) {
-    if (visible) {
-      var colToXPosMap = this._getColToXPosMap();
-
-      var overX = colToXPosMap[col].overX;
-      if (overX == null) {
-        throw new Error("Showing column failed: " + col
-          + ". The column is not added to this TablePaneModel.");
-      }
-
-      // get the visX of the next visible column after the column to show
-      var nextVisX;
-      for (var x = overX + 1; x < this._overallColumnArr.length; x++) {
-        var currCol = this._overallColumnArr[x];
-        var currVisX = colToXPosMap[currCol].visX;
-        if (currVisX != null) {
-          nextVisX = currVisX;
-          break;
-        }
-      }
-
-      // If there comes no visible column any more, then show the column
-      // at the end
-      if (nextVisX == null) {
-        nextVisX = this._visibleColumnArr.length;
-      }
-
-      // Add the column to the visible columns
-      this._visibleColumnArr.splice(nextVisX, 0, col);
-    } else {
-      var visX = this.getVisibleX(col);
-      this._visibleColumnArr.splice(visX, 1);
-    }
-
-    // Invalidate the _colToXPosMap
-    this._colToXPosMap = null;
-
-    // Inform the listeners
-    if (! this._internalChange) {
-      if (this.hasEventListeners("visibilityChangedPre")) {
-        var data = { col:col, visible:visible }
-        this.dispatchEvent(new qx.event.type.DataEvent("visibilityChangedPre", data), true);
-      }
-      if (this.hasEventListeners("visibilityChanged")) {
-        var data = { col:col, visible:visible }
-        this.dispatchEvent(new qx.event.type.DataEvent("visibilityChanged", data), true);
-      }
-    }
-
-    //this.debug("setColumnVisible col:"+col+",visible:"+visible+",this._overallColumnArr:"+this._overallColumnArr+",this._visibleColumnArr:"+this._visibleColumnArr);
-  }
-}
-
-
-/**
- * Moves a column.
- *
- * @param fromOverXPos {Integer} the overall x postion of the column to move.
- * @param toOverXPos {Integer} the overall x postion of where the column should be
- *    moved to.
- */
-qx.Proto.moveColumn = function(fromOverXPos, toOverXPos) {
-  this._internalChange = true;
-
-  var col = this._overallColumnArr[fromOverXPos];
-  var visible = this.isColumnVisible(col);
-
-  if (visible) {
-    this.setColumnVisible(col, false);
-  }
-
-  this._overallColumnArr.splice(fromOverXPos, 1);
-  this._overallColumnArr.splice(toOverXPos, 0, col);
-
-  // Invalidate the _colToXPosMap
-  this._colToXPosMap = null;
-
-  if (visible) {
-    this.setColumnVisible(col, true);
-  }
-
-  this._internalChange = false;
-
-  // Inform the listeners
-  if (this.hasEventListeners("orderChanged")) {
-    var data = { col:col, fromOverXPos:fromOverXPos, toOverXPos:toOverXPos }
-    this.dispatchEvent(new qx.event.type.DataEvent("orderChanged", data), true);
-  }
-}
-
-
-/** {int} the default width of a column in pixels. */
-qx.Class.DEFAULT_WIDTH = 100;
-
-/** {DefaultDataCellRenderer} the default header cell renderer. */
-qx.Class.DEFAULT_HEADER_RENDERER = new qx.ui.table.DefaultHeaderCellRenderer;
-
-/** {DefaultDataCellRenderer} the default data cell renderer. */
-qx.Class.DEFAULT_DATA_RENDERER = new qx.ui.table.DefaultDataCellRenderer;
-
-/** {TextFieldCellEditorFactory} the default editor factory. */
-qx.Class.DEFAULT_EDITOR_FACTORY = new qx.ui.table.TextFieldCellEditorFactory;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/TableModel.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/TableModel.js
deleted file mode 100644 (file)
index 643aac3..0000000
+++ /dev/null
@@ -1,245 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_table)
-
-************************************************************************ */
-
-/**
- * The data model of a table.
- *
- * @event dataChanged {qx.event.type.DataEvent} Fired when the table data changed
- *        (the stuff shown in the table body). The data property of the event
- *        may be null or a map having the following attributes:
- *        <ul>
- *        <li>firstRow: The index of the first row that has changed.</li>
- *        <li>lastRow: The index of the last row that has changed.</li>
- *        <li>firstColumn: The model index of the first column that has changed.</li>
- *        <li>lastColumn: The model index of the last column that has changed.</li>
- *        </ul>
- * @event metaDataChanged {qx.event.type.Event} Fired when the meta data changed
- *        (the stuff shown in the table header).
- */
-qx.OO.defineClass("qx.ui.table.TableModel", qx.core.Target,
-function() {
-  qx.core.Target.call(this);
-});
-
-
-/**
- * Returns the number of rows in the model.
- *
- * @return {Integer} the number of rows.
- */
-qx.Proto.getRowCount = function() {
-  throw new Error("getRowCount is abstract");
-}
-
-
-/**
- * <p>Returns the data of one row. This function may be overriden by models which hold
- * all data of a row in one object. By using this function, clients have a way of
- * quickly retrieving the entire row data.</p>
- *
- * <p><b>Important:</b>Models which do not have their row data accessible in one object
- * may return null.</p>
- *
- * @param rowIndex {Integer} the model index of the row.
- * @return {Object} the row data as an object or null if the model does not support row data
- *                  objects. The details on the object returned are determined by the model
- *                  implementation only.
- */
-qx.Proto.getRowData = function(rowIndex) {
-  return null;
-}
-
-
-/**
- * Returns the number of columns in the model.
- *
- * @return {Integer} the number of columns.
- */
-qx.Proto.getColumnCount = function() {
-  throw new Error("getColumnCount is abstract");
-}
-
-
-/**
- * Returns the ID of column. The ID may be used to identify columns
- * independent from their index in the model. E.g. for being aware of added
- * columns when saving the width of a column.
- *
- * @param columnIndex {Integer} the index of the column.
- * @return {String} the ID of the column.
- */
-qx.Proto.getColumnId = function(columnIndex) {
-  throw new Error("getColumnId is abstract");
-}
-
-
-/**
- * Returns the index of a column.
- *
- * @param columnId {String} the ID of the column.
- * @return {Integer} the index of the column.
- */
-qx.Proto.getColumnIndexById = function(columnId) {
-  throw new Error("getColumnIndexById is abstract");
-}
-
-
-/**
- * Returns the name of a column. This name will be shown to the user in the
- * table header.
- *
- * @param columnIndex {Integer} the index of the column.
- * @return {String} the name of the column.
- */
-qx.Proto.getColumnName = function(columnIndex) {
-  throw new Error("getColumnName is abstract");
-}
-
-
-/**
- * Returns whether a column is editable.
- *
- * @param columnIndex {Integer} the column to check.
- * @return {Boolean} whether the column is editable.
- */
-qx.Proto.isColumnEditable = function(columnIndex) {
-  return false;
-}
-
-
-/**
- * Returns whether a column is sortable.
- *
- * @param columnIndex {Integer} the column to check.
- * @return {Boolean} whether the column is sortable.
- */
-qx.Proto.isColumnSortable = function(columnIndex) {
-  return false;
-}
-
-
-/**
- * Sorts the model by a column.
- *
- * @param columnIndex {Integer} the column to sort by.
- * @param ascending {Boolean} whether to sort ascending.
- */
-qx.Proto.sortByColumn = function(columnIndex, ascending) {
-}
-
-
-/**
- * Returns the column index the model is sorted by. If the model is not sorted
- * -1 is returned.
- *
- * @return {Integer} the column index the model is sorted by.
- */
-qx.Proto.getSortColumnIndex = function() {
-  return -1;
-}
-
-
-/**
- * Returns whether the model is sorted ascending.
- *
- * @return {Boolean} whether the model is sorted ascending.
- */
-qx.Proto.isSortAscending = function() {
-  return true;
-}
-
-
-/**
- * Prefetches some rows. This is a hint to the model that the specified rows
- * will be read soon.
- *
- * @param firstRowIndex {Integer} the index of first row.
- * @param lastRowIndex {Integer} the index of last row.
- */
-qx.Proto.prefetchRows = function(firstRowIndex, lastRowIndex) {
-}
-
-
-/**
- * Returns a cell value by column index.
- *
- * @param columnIndex {Integer} the index of the column.
- * @param rowIndex {Integer} the index of the row.
- * @return {var} The value of the cell.
- * @see #getValueById{}
- */
-qx.Proto.getValue = function(columnIndex, rowIndex) {
-  throw new Error("getValue is abstract");
-}
-
-
-/**
- * Returns a cell value by column ID.
- * <p>
- * Whenever you have the choice, use {@link #getValue()} instead,
- * because this should be faster.
- *
- * @param columnId {String} the ID of the column.
- * @param rowIndex {Integer} the index of the row.
- * @return {var} the value of the cell.
- */
-qx.Proto.getValueById = function(columnId, rowIndex) {
-  return this.getValue(this.getColumnIndexById(columnId), rowIndex);
-}
-
-
-/**
- * Sets a cell value by column index.
- *
- * @param columnIndex {Integer} The index of the column.
- * @param rowIndex {Integer} the index of the row.
- * @param value {var} The new value.
- * @see #setValueById{}
- */
-qx.Proto.setValue = function(columnIndex, rowIndex, value) {
-  throw new Error("setValue is abstract");
-}
-
-
-/**
- * Sets a cell value by column ID.
- * <p>
- * Whenever you have the choice, use {@link #setValue()} instead,
- * because this should be faster.
- *
- * @param columnId {String} The ID of the column.
- * @param rowIndex {Integer} The index of the row.
- * @param value {var} The new value.
- */
-qx.Proto.setValueById = function(columnId, rowIndex, value) {
-  return this.setValue(this.getColumnIndexById(columnId), rowIndex, value);
-}
-
-
-/** {string} The type of the event fired when the data changed. */
-qx.Class.EVENT_TYPE_DATA_CHANGED = "dataChanged";
-
-/** {string} The type of the event fired when the meta data changed. */
-qx.Class.EVENT_TYPE_META_DATA_CHANGED = "metaDataChanged";
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/TablePane.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/TablePane.js
deleted file mode 100644 (file)
index ffb4d9e..0000000
+++ /dev/null
@@ -1,511 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_table)
-
-************************************************************************ */
-
-/**
- * The table pane that shows a certain section from a table. This class handles
- * the display of the data part of a table and is therefore the base for virtual
- * scrolling.
- *
- * @param paneScroller {TablePaneScroller} the TablePaneScroller the header belongs to.
- */
-qx.OO.defineClass("qx.ui.table.TablePane", qx.ui.basic.Terminator,
-function(paneScroller) {
-  qx.ui.basic.Terminator.call(this);
-
-  this._paneScroller = paneScroller;
-
-  // this.debug("USE_ARRAY_JOIN:" + qx.ui.table.TablePane.USE_ARRAY_JOIN + ", USE_TABLE:" + qx.ui.table.TablePane.USE_TABLE);
-
-  this._lastColCount = 0;
-  this._lastRowCount = 0;
-});
-
-/** The index of the first row to show. */
-qx.OO.addProperty({ name:"firstVisibleRow", type:"number", defaultValue:0 });
-
-/** The number of rows to show. */
-qx.OO.addProperty({ name:"visibleRowCount", type:"number", defaultValue:0 });
-
-
-// property modifier
-qx.Proto._modifyFirstVisibleRow = function(propValue, propOldValue, propData) {
-  this._updateContent();
-  return true;
-}
-
-
-// property modifier
-qx.Proto._modifyVisibleRowCount = function(propValue, propOldValue, propData) {
-  this._updateContent();
-  return true;
-}
-
-
-// overridden
-qx.Proto._afterAppear = function() {
-  qx.ui.basic.Terminator.prototype._afterAppear.call(this);
-
-  if (this._updateWantedWhileInvisible) {
-    // We are visible now and an update was wanted while we were invisible
-    // -> Do the update now
-    this._updateContent();
-    this._updateWantedWhileInvisible = false;
-  }
-};
-
-
-/**
- * Returns the TablePaneScroller this pane belongs to.
- *
- * @return {TablePaneScroller} the TablePaneScroller.
- */
-qx.Proto.getPaneScroller = function() {
-  return this._paneScroller;
-};
-
-
-/**
- * Returns the table this pane belongs to.
- *
- * @return {Table} the table.
- */
-qx.Proto.getTable = function() {
-  return this._paneScroller.getTable();
-};
-
-
-/**
- * Sets the currently focused cell.
- *
- * @param col {Integer} the model index of the focused cell's column.
- * @param row {Integer} the model index of the focused cell's row.
- * @param massUpdate {Boolean ? false} Whether other updates are planned as well.
- *        If true, no repaint will be done.
- */
-qx.Proto.setFocusedCell = function(col, row, massUpdate) {
-  if (col != this._focusedCol || row != this._focusedRow) {
-    var oldCol = this._focusedCol;
-    var oldRow = this._focusedRow;
-    this._focusedCol = col;
-    this._focusedRow = row;
-
-    // Update the focused row background
-    if (row != oldRow && !massUpdate) {
-      // NOTE: Only the old and the new row need update
-      this._updateContent(false, oldRow, true);
-      this._updateContent(false, row, true);
-    }
-  }
-}
-
-
-/**
- * Event handler. Called when the selection has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onSelectionChanged = function(evt) {
-  this._updateContent(false, null, true);
-}
-
-
-/**
- * Event handler. Called when the table gets or looses the focus.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onFocusChanged = function(evt) {
-  this._updateContent(false, null, true);
-};
-
-
-/**
- * Event handler. Called when the width of a column has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onColWidthChanged = function(evt) {
-  this._updateContent(true);
-}
-
-
-/**
- * Event handler. Called the column order has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onColOrderChanged = function(evt) {
-  this._updateContent(true);
-}
-
-
-/**
- * Event handler. Called when the pane model has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onPaneModelChanged = function(evt) {
-  this._updateContent(true);
-}
-
-
-/**
- * Event handler. Called when the table model data has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onTableModelDataChanged = function(evt) {
-  var data = evt.getData ? evt.getData() : null;
-
-  var firstRow = this.getFirstVisibleRow();
-  var rowCount = this.getVisibleRowCount();
-  if (data == null || data.lastRow == -1
-    || data.lastRow >= firstRow && data.firstRow < firstRow + rowCount)
-  {
-    // The change intersects this pane
-    this._updateContent();
-  }
-}
-
-
-/**
- * Event handler. Called when the table model meta data has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onTableModelMetaDataChanged = function(evt) {
-  this._updateContent();
-}
-
-
-/**
- * Updates the content of the pane.
- *
- * @param completeUpdate {Boolean ? false} if true a complete update is performed.
- *    On a complete update all cell widgets are recreated.
- * @param onlyRow {Integer ? null} if set only the specified row will be updated.
- * @param onlySelectionOrFocusChanged {Boolean ? false} if true, cell values won't
- *        be updated. Only the row background will.
- */
-qx.Proto._updateContent = function(completeUpdate, onlyRow,
-  onlySelectionOrFocusChanged)
-{
-  if (! this.isSeeable()) {
-    this._updateWantedWhileInvisible = true;
-    return;
-  }
-
-  if (qx.ui.table.TablePane.USE_ARRAY_JOIN) {
-    this._updateContent_array_join(completeUpdate, onlyRow, onlySelectionOrFocusChanged);
-  } else {
-    this._updateContent_orig(completeUpdate, onlyRow, onlySelectionOrFocusChanged);
-  }
-}
-
-
-/**
- * Updates the content of the pane (implemented using array joins).
- *
- * @param completeUpdate {Boolean ? false} if true a complete update is performed.
- *    On a complete update all cell widgets are recreated.
- * @param onlyRow {Integer ? null} if set only the specified row will be updated.
- * @param onlySelectionOrFocusChanged {Boolean ? false} if true, cell values won't
- *        be updated. Only the row background will.
- */
-qx.Proto._updateContent_array_join = function(completeUpdate, onlyRow,
-  onlySelectionOrFocusChanged)
-{
-  var TablePane = qx.ui.table.TablePane;
-
-  var table = this.getTable();
-
-  var selectionModel = table.getSelectionModel();
-  var tableModel = table.getTableModel();
-  var columnModel = table.getTableColumnModel();
-  var paneModel = this.getPaneScroller().getTablePaneModel();
-  var rowRenderer = table.getDataRowRenderer();
-
-  var colCount = paneModel.getColumnCount();
-  var rowHeight = table.getRowHeight();
-
-  var firstRow = this.getFirstVisibleRow();
-  var rowCount = this.getVisibleRowCount();
-  var modelRowCount = tableModel.getRowCount();
-  if (firstRow + rowCount > modelRowCount) {
-    rowCount = Math.max(0, modelRowCount - firstRow);
-  }
-
-  var cellInfo = { table:table };
-  cellInfo.styleHeight = rowHeight;
-
-  var htmlArr = [];
-  var rowWidth = paneModel.getTotalWidth();
-
-  if (TablePane.USE_TABLE) {
-    // The table test
-    htmlArr.push('<table cellspacing\="0" cellpadding\="0" style\="table-layout:fixed;font-family:');
-    htmlArr.push(qx.ui.table.TablePane.CONTENT_ROW_FONT_FAMILY_TEST);
-    htmlArr.push(';font-size:');
-    htmlArr.push(qx.ui.table.TablePane.CONTENT_ROW_FONT_SIZE_TEST);
-    htmlArr.push(';width:');
-    htmlArr.push(rowWidth);
-    htmlArr.push('px"><colgroup>');
-
-    for (var x = 0; x < colCount; x++) {
-      var col = paneModel.getColumnAtX(x);
-
-      htmlArr.push('<col width="');
-      htmlArr.push(columnModel.getColumnWidth(col));
-      htmlArr.push('"/>');
-    }
-
-    htmlArr.push('</colgroup><tbody>');
-  }
-
-  tableModel.prefetchRows(firstRow, firstRow + rowCount - 1);
-  for (var y = 0; y < rowCount; y++) {
-    var row = firstRow + y;
-
-    cellInfo.row = row;
-    cellInfo.selected = selectionModel.isSelectedIndex(row);
-    cellInfo.focusedRow = (this._focusedRow == row);
-    cellInfo.rowData = tableModel.getRowData(row);
-
-    // Update this row
-    if (TablePane.USE_TABLE) {
-      htmlArr.push('<tr style\="height:');
-      htmlArr.push(rowHeight);
-    } else {
-      htmlArr.push('<div style\="position:absolute;left:0px;top:');
-      htmlArr.push(y * rowHeight);
-      htmlArr.push('px;width:');
-      htmlArr.push(rowWidth);
-      htmlArr.push('px;height:');
-      htmlArr.push(rowHeight);
-      htmlArr.push('px');
-    }
-
-    rowRenderer._createRowStyle_array_join(cellInfo, htmlArr);
-
-    htmlArr.push('">');
-
-    var left = 0;
-    for (var x = 0; x < colCount; x++) {
-      var col = paneModel.getColumnAtX(x);
-      cellInfo.xPos = x;
-      cellInfo.col = col;
-      cellInfo.editable = tableModel.isColumnEditable(col);
-      cellInfo.focusedCol = (this._focusedCol == col);
-      cellInfo.value = tableModel.getValue(col, row);
-      var cellWidth = columnModel.getColumnWidth(col);
-
-      cellInfo.styleLeft = left;
-      cellInfo.styleWidth = cellWidth;
-
-      var cellRenderer = columnModel.getDataCellRenderer(col);
-      cellRenderer.createDataCellHtml_array_join(cellInfo, htmlArr);
-
-      left += cellWidth;
-    }
-
-    if (TablePane.USE_TABLE) {
-      htmlArr.push('</tr>');
-    } else {
-      htmlArr.push('</div>');
-    }
-  }
-
-  if (TablePane.USE_TABLE) {
-    htmlArr.push('</tbody></table>');
-  }
-
-  var elem = this.getElement();
-  // this.debug(">>>" + htmlArr.join("") + "<<<")
-  elem.innerHTML = htmlArr.join("");
-
-  this.setHeight(rowCount * rowHeight);
-
-  this._lastColCount = colCount;
-  this._lastRowCount = rowCount;
-}
-
-
-/**
- * Updates the content of the pane (old implementation).
- *
- * @param completeUpdate {Boolean ? false} if true a complete update is performed.
- *    On a complete update all cell widgets are recreated.
- * @param onlyRow {Integer ? null} if set only the specified row will be updated.
- * @param onlySelectionOrFocusChanged {Boolean ? false} if true, cell values won't
- *        be updated. Only the row background will.
- */
-qx.Proto._updateContent_orig = function(completeUpdate, onlyRow,
-  onlySelectionOrFocusChanged)
-{
-  var TablePane = qx.ui.table.TablePane;
-
-  var table = this.getTable();
-
-  var alwaysUpdateCells = table.getAlwaysUpdateCells();
-
-  var selectionModel = table.getSelectionModel();
-  var tableModel = table.getTableModel();
-  var columnModel = table.getTableColumnModel();
-  var paneModel = this.getPaneScroller().getTablePaneModel();
-  var rowRenderer = table.getDataRowRenderer();
-
-  var colCount = paneModel.getColumnCount();
-  var rowHeight = table.getRowHeight();
-
-  var firstRow = this.getFirstVisibleRow();
-  var rowCount = this.getVisibleRowCount();
-  var modelRowCount = tableModel.getRowCount();
-  if (firstRow + rowCount > modelRowCount) {
-    rowCount = Math.max(0, modelRowCount - firstRow);
-  }
-
-  // Remove the rows that are not needed any more
-  if (completeUpdate || this._lastRowCount > rowCount) {
-    var firstRowToRemove = completeUpdate ? 0 : rowCount;
-    this._cleanUpRows(firstRowToRemove);
-  }
-
-  if (TablePane.USE_TABLE) {
-    throw new Error("Combination of USE_TABLE==true and USE_ARRAY_JOIN==false is not yet implemented");
-  }
-
-  var elem = this.getElement();
-  var childNodes = elem.childNodes;
-  var cellInfo = { table:table };
-  tableModel.prefetchRows(firstRow, firstRow + rowCount - 1);
-  for (var y = 0; y < rowCount; y++) {
-    var row = firstRow + y;
-    if ((onlyRow != null) && (row != onlyRow)) {
-      continue;
-    }
-
-    cellInfo.row = row;
-    cellInfo.selected = selectionModel.isSelectedIndex(row);
-    cellInfo.focusedRow = (this._focusedRow == row);
-    cellInfo.rowData = tableModel.getRowData(row);
-
-    // Update this row
-    var rowElem;
-    var recyleRowElem;
-    if (y < childNodes.length) {
-      rowElem = childNodes[y];
-      recyleRowElem = true
-    } else {
-      var rowElem = document.createElement("div");
-
-      //rowElem.style.position = "relative";
-      rowElem.style.position = "absolute";
-      rowElem.style.left = "0px";
-      rowElem.style.top = (y * rowHeight) + "px";
-
-      rowElem.style.height = rowHeight + "px";
-      elem.appendChild(rowElem);
-      recyleRowElem = false;
-    }
-
-    rowRenderer.updateDataRowElement(cellInfo, rowElem);
-
-    if (alwaysUpdateCells || !recyleRowElem || !onlySelectionOrFocusChanged) {
-      var html = "";
-      var left = 0;
-      for (var x = 0; x < colCount; x++) {
-        var col = paneModel.getColumnAtX(x);
-        cellInfo.xPos = x;
-        cellInfo.col = col;
-        cellInfo.editable = tableModel.isColumnEditable(col);
-        cellInfo.focusedCol = (this._focusedCol == col);
-        cellInfo.value = tableModel.getValue(col, row);
-        var width = columnModel.getColumnWidth(col);
-        cellInfo.style = 'position:absolute;left:' + left
-          + 'px;top:0px;width:' + width
-          + 'px; height:' + rowHeight + "px";
-
-        var cellRenderer = columnModel.getDataCellRenderer(col);
-        if (recyleRowElem) {
-          var cellElem = rowElem.childNodes[x];
-          cellRenderer.updateDataCellElement(cellInfo, cellElem);
-        } else {
-          html += cellRenderer.createDataCellHtml(cellInfo);
-        }
-
-        left += width;
-      }
-      if (! recyleRowElem) {
-        rowElem.style.width = left + "px";
-        rowElem.innerHTML = html;
-      }
-    }
-  }
-
-  this.setHeight(rowCount * rowHeight);
-
-  this._lastColCount = colCount;
-  this._lastRowCount = rowCount;
-}
-
-
-/**
- * Cleans up the row widgets.
- *
- * @param firstRowToRemove {Integer} the visible index of the first row to clean up.
- *    All following rows will be cleaned up, too.
- */
-qx.Proto._cleanUpRows = function(firstRowToRemove) {
-  var elem = this.getElement();
-  if (elem) {
-    var childNodes = this.getElement().childNodes;
-    var paneModel = this.getPaneScroller().getTablePaneModel();
-    var colCount = paneModel.getColumnCount();
-    for (var y = childNodes.length - 1; y >= firstRowToRemove; y--) {
-      elem.removeChild(childNodes[y]);
-    }
-  }
-}
-
-
-// overridden
-qx.Proto.dispose = function() {
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  this._cleanUpRows(0);
-
-  return qx.ui.basic.Terminator.prototype.dispose.call(this);
-}
-
-
-qx.Class.USE_ARRAY_JOIN = false;
-qx.Class.USE_TABLE = false;
-
-
-qx.Class.CONTENT_ROW_FONT_FAMILY_TEST = "'Segoe UI', Corbel, Calibri, Tahoma, 'Lucida Sans Unicode', sans-serif";
-qx.Class.CONTENT_ROW_FONT_SIZE_TEST = "11px";
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/TablePaneHeader.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/TablePaneHeader.js
deleted file mode 100644 (file)
index 6b7ffff..0000000
+++ /dev/null
@@ -1,277 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_table)
-
-************************************************************************ */
-
-/**
- * Shows the header of a table.
- *
- * @param paneScroller {TablePaneScroller} the TablePaneScroller the header belongs to.
- */
-qx.OO.defineClass("qx.ui.table.TablePaneHeader", qx.ui.layout.HorizontalBoxLayout,
-function(paneScroller) {
-  qx.ui.layout.HorizontalBoxLayout.call(this);
-
-  this._paneScroller = paneScroller;
-});
-
-
-/**
- * Returns the TablePaneScroller this header belongs to.
- *
- * @return {TablePaneScroller} the TablePaneScroller.
- */
-qx.Proto.getPaneScroller = function() {
-  return this._paneScroller;
-};
-
-
-/**
- * Returns the table this header belongs to.
- *
- * @return {Table} the table.
- */
-qx.Proto.getTable = function() {
-  return this._paneScroller.getTable();
-};
-
-
-/**
- * Event handler. Called when the width of a column has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onColWidthChanged = function(evt) {
-  var data = evt.getData();
-  this.setColumnWidth(data.col, data.newWidth);
-}
-
-
-/**
- * Event handler. Called the column order has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onColOrderChanged = function(evt) {
-  this._updateContent(true);
-}
-
-
-/**
- * Event handler. Called when the pane model has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onPaneModelChanged = function(evt) {
-  this._updateContent(true);
-}
-
-
-/**
- * Event handler. Called when the table model meta data has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onTableModelMetaDataChanged = function(evt) {
-  this._updateContent();
-}
-
-
-/**
- * Sets the column width. This overrides the width from the column model.
- *
- * @param col {Integer} the column to change the width for.
- * @param width {Integer} the new width.
- */
-qx.Proto.setColumnWidth = function(col, width) {
-  var x = this.getPaneScroller().getTablePaneModel().getX(col);
-  var children = this.getChildren();
-  if (children[x] != null) {
-    children[x].setWidth(width);
-  }
-}
-
-
-/**
- * Sets the column the mouse is currently over.
- *
- * @param col {Integer} the model index of the column the mouse is currently over or
- *    null if the mouse is over no column.
- */
-qx.Proto.setMouseOverColumn = function(col) {
-  if (col != this._lastMouseOverColumn) {
-    var paneModel = this.getPaneScroller().getTablePaneModel();
-    var children = this.getChildren();
-
-    if (this._lastMouseOverColumn != null) {
-      var widget = children[paneModel.getX(this._lastMouseOverColumn)];
-      if (widget != null) {
-        widget.removeState("mouseover");
-      }
-    }
-    if (col != null) {
-      children[paneModel.getX(col)].addState("mouseover");
-    }
-
-    this._lastMouseOverColumn = col;
-  }
-}
-
-
-/**
- * Shows the feedback shown while a column is moved by the user.
- *
- * @param col {Integer} the model index of the column to show the move feedback for.
- * @param x {Integer} the x position the left side of the feeback should have
- *    (in pixels, relative to the left side of the header).
- */
-qx.Proto.showColumnMoveFeedback = function(col, x) {
-  var elem = this.getElement();
-  if (this._moveFeedback == null) {
-    var xPos = this.getPaneScroller().getTablePaneModel().getX(col);
-    var cellWidget = this.getChildren()[xPos];
-
-    // Create the feedback
-    // Workaround: Since a cloned widget throws an exception when it is
-    //       added to another component we have to create a new one
-    //       using the renderer
-    //this._moveFeedback = cellWidget.clone();
-    var tableModel = this.getTable().getTableModel();
-    var columnModel = this.getTable().getTableColumnModel();
-    var cellInfo = { xPos:xPos, col:col, name:tableModel.getColumnName(col) }
-    var cellRenderer = columnModel.getHeaderCellRenderer(col);
-
-    var feedback = cellRenderer.createHeaderCell(cellInfo);
-    // Configure the feedback
-    feedback.setWidth(cellWidget.getBoxWidth());
-    feedback.setHeight(cellWidget.getBoxHeight());
-    feedback.setZIndex(1000000);
-    feedback.setOpacity(0.8);
-    feedback.setTop(qx.html.Location.getClientBoxTop(elem));
-    this.getTopLevelWidget().add(feedback);
-    this._moveFeedback = feedback;
-  }
-
-  this._moveFeedback.setLeft(qx.html.Location.getClientBoxLeft(elem) + x);
-}
-
-
-/**
- * Hides the feedback shown while a column is moved by the user.
- */
-qx.Proto.hideColumnMoveFeedback = function() {
-  if (this._moveFeedback != null) {
-    this.getTopLevelWidget().remove(this._moveFeedback);
-    this._moveFeedback.dispose();
-    this._moveFeedback = null;
-  }
-}
-
-
-/**
- * Returns whether the column move feedback is currently shown.
- */
-qx.Proto.isShowingColumnMoveFeedback = function() {
-  return this._moveFeedback != null;
-}
-
-
-/**
- * Updates the content of the header.
- *
- * @param completeUpdate {Boolean} if true a complete update is performed. On a
- *    complete update all header widgets are recreated.
- */
-qx.Proto._updateContent = function(completeUpdate) {
-  var tableModel = this.getTable().getTableModel();
-  var columnModel = this.getTable().getTableColumnModel();
-  var paneModel = this.getPaneScroller().getTablePaneModel();
-
-  var children = this.getChildren();
-  var oldColCount = children.length;
-  var colCount = paneModel.getColumnCount();
-
-  var sortedColum = tableModel.getSortColumnIndex();
-
-  // Remove all widgets on the complete update
-  if (completeUpdate) {
-    this._cleanUpCells();
-  }
-
-  // Update the header
-  var cellInfo = {};
-  cellInfo.sortedAscending = tableModel.isSortAscending();
-  for (var x = 0; x < colCount; x++) {
-    var col = paneModel.getColumnAtX(x);
-
-    var colWidth = columnModel.getColumnWidth(col);
-
-    // TODO: Get real cell renderer
-    var cellRenderer = columnModel.getHeaderCellRenderer(col);
-
-    cellInfo.xPos = x;
-    cellInfo.col = col;
-    cellInfo.name = tableModel.getColumnName(col);
-    cellInfo.editable = tableModel.isColumnEditable(col);
-    cellInfo.sorted = (col == sortedColum);
-
-    // Get the cached widget
-    var cachedWidget = children[x];
-
-    // Create or update the widget
-    if (cachedWidget == null) {
-      // We have no cached widget -> create it
-      cachedWidget = cellRenderer.createHeaderCell(cellInfo);
-      cachedWidget.set({ width:colWidth, height:"100%" });
-
-      this.add(cachedWidget);
-    } else {
-      // This widget already created before -> recycle it
-      cellRenderer.updateHeaderCell(cellInfo, cachedWidget);
-    }
-  }
-}
-
-
-/**
- * Cleans up all header cells.
- */
-qx.Proto._cleanUpCells = function() {
-  var children = this.getChildren();
-  for (var x = children.length - 1; x >= 0; x--) {
-    var cellWidget = children[x];
-    //this.debug("disposed:" + cellWidget.getDisposed() + ",has parent: " + (cellWidget.getParent() != null) + ",x:"+x);
-    this.remove(cellWidget);
-    cellWidget.dispose();
-  }
-}
-
-
-// overridden
-qx.Proto.dispose = function() {
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  return qx.ui.layout.HorizontalBoxLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/TablePaneModel.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/TablePaneModel.js
deleted file mode 100644 (file)
index 7e77757..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_table)
-
-************************************************************************ */
-
-/**
- * The model of a table pane. This model works as proxy to a
- * {@link TableColumnModel} and manages the visual order of the columns shown in
- * a {@link TablePane}.
- *
- * @param tableColumnModel {TableColumnModel} The TableColumnModel of which this
- *    model is the proxy.
- *
- * @event modelChanged {qx.event.type.Event} Fired when the model changed.
- */
-qx.OO.defineClass("qx.ui.table.TablePaneModel", qx.core.Target,
-function(tableColumnModel) {
-  qx.core.Target.call(this);
-
-  tableColumnModel.addEventListener("visibilityChangedPre", this._onColVisibilityChanged, this);
-
-  this._tableColumnModel = tableColumnModel;
-});
-
-
-/** The visible x position of the first column this model should contain. */
-qx.OO.addProperty({ name : "firstColumnX", type : "number", defaultValue : 0 });
-
-/**
- * The maximum number of columns this model should contain. If -1 this model will
- * contain all remaining columns.
- */
-qx.OO.addProperty({ name : "maxColumnCount", type : "number", defaultValue : -1 });
-
-
-// property modifier
-qx.Proto._modifyFirstColumnX = function(propValue, propOldValue, propData) {
-  this._columnCount = null;
-  this.createDispatchEvent(qx.ui.table.TablePaneModel.EVENT_TYPE_MODEL_CHANGED);
-  return true;
-}
-
-
-// property modifier
-qx.Proto._modifyMaxColumnCount = function(propValue, propOldValue, propData) {
-  this._columnCount = null;
-  this.createDispatchEvent(qx.ui.table.TablePaneModel.EVENT_TYPE_MODEL_CHANGED);
-  return true;
-}
-
-
-/**
- * Event handler. Called when the visibility of a column has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onColVisibilityChanged = function(evt) {
-  this._columnCount = null;
-
-  // TODO: Check whether the column is in this model (This is a little bit
-  //     tricky, because the column could _have been_ in this model, but is
-  //     not in it after the change)
-  this.createDispatchEvent(qx.ui.table.TablePaneModel.EVENT_TYPE_MODEL_CHANGED);
-}
-
-
-/**
- * Returns the number of columns in this model.
- *
- * @return {Integer} the number of columns in this model.
- */
-qx.Proto.getColumnCount = function() {
-  if (this._columnCount == null) {
-    var firstX = this.getFirstColumnX();
-    var maxColCount = this.getMaxColumnCount();
-    var totalColCount = this._tableColumnModel.getVisibleColumnCount();
-
-    if (maxColCount == -1 || (firstX + maxColCount) > totalColCount) {
-      this._columnCount = totalColCount - firstX;
-    } else {
-      this._columnCount = maxColCount;
-    }
-  }
-  return this._columnCount;
-}
-
-
-/**
- * Returns the model index of the column at the position <code>xPos</code>.
- *
- * @param xPos {Integer} the x postion in the table pane of the column.
- * @return {Integer} the model index of the column.
- */
-qx.Proto.getColumnAtX = function(xPos) {
-  var firstX = this.getFirstColumnX();
-  return this._tableColumnModel.getVisibleColumnAtX(firstX + xPos);
-}
-
-
-/**
- * Returns the x position of the column <code>col</code>.
- *
- * @param col {Integer} the model index of the column.
- * @return {Integer} the x postion in the table pane of the column.
- */
-qx.Proto.getX = function(col) {
-  var firstX = this.getFirstColumnX();
-  var maxColCount = this.getMaxColumnCount();
-
-  var x = this._tableColumnModel.getVisibleX(col) - firstX;
-  if (x >= 0 && (maxColCount == -1 || x < maxColCount)) {
-    return x;
-  } else {
-    return -1;
-  }
-}
-
-
-/**
- * Gets the position of the left side of a column (in pixels, relative to the
- * left side of the table pane).
- * <p>
- * This value corresponds to the sum of the widths of all columns left of the
- * column.
- *
- * @param col {Integer} the model index of the column.
- * @return the position of the left side of the column.
- */
-qx.Proto.getColumnLeft = function(col) {
-  var left = 0;
-  var colCount = this.getColumnCount();
-  for (var x = 0; x < colCount; x++) {
-    var currCol = this.getColumnAtX(x);
-    if (currCol == col) {
-      return left;
-    }
-
-    left += this._tableColumnModel.getColumnWidth(currCol);
-  }
-  return -1;
-}
-
-
-/**
- * Returns the total width of all columns in the model.
- *
- * @return {Integer} the total width of all columns in the model.
- */
-qx.Proto.getTotalWidth = function() {
-  var totalWidth = 0;
-  var colCount = this.getColumnCount();
-  for (var x = 0; x < colCount; x++) {
-    var col = this.getColumnAtX(x);
-    totalWidth += this._tableColumnModel.getColumnWidth(col);
-  }
-  return totalWidth;
-}
-
-
-/** {string} The type of the event fired when the model changed. */
-qx.Class.EVENT_TYPE_MODEL_CHANGED = "modelChanged";
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/TablePaneScroller.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/TablePaneScroller.js
deleted file mode 100644 (file)
index 9b60a9e..0000000
+++ /dev/null
@@ -1,1393 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_table)
-
-************************************************************************ */
-
-/**
- * Shows a whole meta column. This includes a {@link TablePaneHeader},
- * a {@link TablePane} and the needed scroll bars. This class handles the
- * virtual scrolling and does all the mouse event handling.
- *
- * @param table {Table} the table the scroller belongs to.
- */
-qx.OO.defineClass("qx.ui.table.TablePaneScroller", qx.ui.layout.VerticalBoxLayout,
-function(table) {
-  qx.ui.layout.VerticalBoxLayout.call(this);
-
-  this._table = table;
-
-  // init scrollbars
-  this._verScrollBar = new qx.ui.core.ScrollBar(false);
-  this._horScrollBar = new qx.ui.core.ScrollBar(true);
-
-  var scrollBarWidth = this._verScrollBar.getPreferredBoxWidth();
-
-  this._verScrollBar.setWidth("auto");
-  this._horScrollBar.setHeight("auto");
-  this._horScrollBar.setPaddingRight(scrollBarWidth);
-  //this._verScrollBar.setMergeEvents(true);
-
-  this._horScrollBar.addEventListener("changeValue", this._onScrollX, this);
-  this._verScrollBar.addEventListener("changeValue", this._onScrollY, this);
-
-  // init header
-  this._header = this.getTable().getNewTablePaneHeader()(this);
-  this._header.set({ width:"auto", height:"auto" });
-
-  this._headerClipper = new qx.ui.layout.CanvasLayout;
-  this._headerClipper.setDimension("1*", "auto");
-  this._headerClipper.setOverflow("hidden");
-  this._headerClipper.add(this._header);
-
-  this._spacer = new qx.ui.basic.Terminator;
-  this._spacer.setWidth(scrollBarWidth);
-
-  this._top = new qx.ui.layout.HorizontalBoxLayout;
-  this._top.setHeight("auto");
-  this._top.add(this._headerClipper, this._spacer);
-
-  // init pane
-  this._tablePane = this.getTable().getNewTablePane()(this);
-  this._tablePane.set({ width:"auto", height:"auto" });
-
-  this._focusIndicator = new qx.ui.layout.HorizontalBoxLayout;
-  this._focusIndicator.setAppearance("table-focus-indicator");
-  this._focusIndicator.hide();
-
-  // Workaround: If the _focusIndicator has no content if always gets a too
-  //       high hight in IE.
-  var dummyContent = new qx.ui.basic.Terminator;
-  dummyContent.setWidth(0);
-  this._focusIndicator.add(dummyContent);
-
-  this._paneClipper = new qx.ui.layout.CanvasLayout;
-  this._paneClipper.setWidth("1*");
-  this._paneClipper.setOverflow("hidden");
-  this._paneClipper.add(this._tablePane, this._focusIndicator);
-  this._paneClipper.addEventListener("mousewheel", this._onmousewheel, this);
-
-  // add all child widgets
-  var scrollerBody = new qx.ui.layout.HorizontalBoxLayout;
-  scrollerBody.setHeight("1*");
-  scrollerBody.add(this._paneClipper, this._verScrollBar);
-
-  this.add(this._top, scrollerBody, this._horScrollBar);
-
-  // init event handlers
-  this.addEventListener("mousemove", this._onmousemove, this);
-  this.addEventListener("mousedown", this._onmousedown, this);
-  this.addEventListener("mouseup",   this._onmouseup,   this);
-  this.addEventListener("click",     this._onclick,     this);
-  this.addEventListener("dblclick",  this._ondblclick,  this);
-  this.addEventListener("mouseout",  this._onmouseout,  this);
-});
-
-/** Whether to show the horizontal scroll bar */
-qx.OO.addProperty({ name:"horizontalScrollBarVisible", type:"boolean", defaultValue:true });
-
-/** Whether to show the vertical scroll bar */
-qx.OO.addProperty({ name:"verticalScrollBarVisible", type:"boolean", defaultValue:true });
-
-/** The table pane model. */
-qx.OO.addProperty({ name:"tablePaneModel", type:"object", instance:"qx.ui.table.TablePaneModel" });
-
-/** The current position of the the horizontal scroll bar. */
-qx.OO.addProperty({ name:"scrollX", type:"number", allowNull:false, defaultValue:0 });
-
-/** The current position of the the vertical scroll bar. */
-qx.OO.addProperty({ name:"scrollY", type:"number", allowNull:false, defaultValue:0 });
-
-/**
- * Whether column resize should be live. If false, during resize only a line is
- * shown and the real resize happens when the user releases the mouse button.
- */
-qx.OO.addProperty({ name:"liveResize", type:"boolean", defaultValue:false });
-
-/**
- * Whether the focus should moved when the mouse is moved over a cell. If false
- * the focus is only moved on mouse clicks.
- */
-qx.OO.addProperty({ name:"focusCellOnMouseMove", type:"boolean", defaultValue:false });
-
-/**
- * Whether to handle selections via the selection manager before setting the
- * focus.  The traditional behavior is to handle selections after setting the
- * focus, but setting the focus means redrawing portions of the table, and
- * some subclasses may want to modify the data to be displayed based on the
- * selection.
- */
-qx.OO.addProperty({ name:"selectBeforeFocus", type:"boolean", defaultValue:false });
-
-
-// property modifier
-qx.Proto._modifyHorizontalScrollBarVisible = function(propValue, propOldValue, propData) {
-  // Workaround: We can't use setDisplay, because the scroll bar needs its
-  //       correct height in order to check its value. When using
-  //       setDisplay(false) the height isn't relayouted any more
-  if (propValue) {
-    this._horScrollBar.setHeight("auto");
-  } else {
-    this._horScrollBar.setHeight(0);
-  }
-  this._horScrollBar.setVisibility(propValue);
-
-  // NOTE: We have to flush the queues before updating the content so the new
-  //     layout has been applied and _updateContent is able to work with
-  //     correct values.
-  qx.ui.core.Widget.flushGlobalQueues();
-  this._updateContent();
-
-  return true;
-}
-
-
-// property modifier
-qx.Proto._modifyVerticalScrollBarVisible = function(propValue, propOldValue, propData) {
-  // Workaround: See _modifyHorizontalScrollBarVisible
-  if (propValue) {
-    this._verScrollBar.setWidth("auto");
-  } else {
-    this._verScrollBar.setWidth(0);
-  }
-  this._verScrollBar.setVisibility(propValue);
-
-  var scrollBarWidth = propValue ? this._verScrollBar.getPreferredBoxWidth() : 0;
-  this._horScrollBar.setPaddingRight(scrollBarWidth);
-  this._spacer.setWidth(scrollBarWidth);
-
-  return true;
-}
-
-
-// property modifier
-qx.Proto._modifyTablePaneModel = function(propValue, propOldValue, propData) {
-  if (propOldValue != null) {
-    propOldValue.removeEventListener("modelChanged", this._onPaneModelChanged, this);
-  }
-  propValue.addEventListener("modelChanged", this._onPaneModelChanged, this);
-
-  return true;
-}
-
-
-// property modifier
-qx.Proto._modifyScrollX = function(propValue, propOldValue, propData) {
-  this._horScrollBar.setValue(propValue);
-  return true;
-}
-
-
-// property modifier
-qx.Proto._modifyScrollY = function(propValue, propOldValue, propData) {
-  this._verScrollBar.setValue(propValue);
-  return true;
-}
-
-
-/**
- * Returns the table this scroller belongs to.
- *
- * @return {Table} the table.
- */
-qx.Proto.getTable = function() {
-  return this._table;
-};
-
-
-/**
- * Event handler. Called when the visibility of a column has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onColVisibilityChanged = function(evt) {
-  this._updateHorScrollBarMaximum();
-  this._updateFocusIndicator();
-}
-
-
-/**
- * Event handler. Called when the width of a column has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onColWidthChanged = function(evt) {
-  this._header._onColWidthChanged(evt);
-  this._tablePane._onColWidthChanged(evt);
-
-  var data = evt.getData();
-  var paneModel = this.getTablePaneModel();
-  var x = paneModel.getX(data.col);
-  if (x != -1) {
-    // The change was in this scroller
-    this._updateHorScrollBarMaximum();
-    this._updateFocusIndicator();
-  }
-}
-
-
-/**
- * Event handler. Called when the column order has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onColOrderChanged = function(evt) {
-  this._header._onColOrderChanged(evt);
-  this._tablePane._onColOrderChanged(evt);
-
-  this._updateHorScrollBarMaximum();
-}
-
-
-/**
- * Event handler. Called when the table model has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onTableModelDataChanged = function(evt) {
-  this._tablePane._onTableModelDataChanged(evt);
-
-  var rowCount = this.getTable().getTableModel().getRowCount();
-  if (rowCount != this._lastRowCount) {
-    this._lastRowCount = rowCount;
-
-    this._updateVerScrollBarMaximum();
-    if (this.getFocusedRow() >= rowCount) {
-      if (rowCount == 0) {
-        this.setFocusedCell(null, null);
-      } else {
-        this.setFocusedCell(this.getFocusedColumn(), rowCount - 1);
-      }
-    }
-  }
-}
-
-
-/**
- * Event handler. Called when the selection has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onSelectionChanged = function(evt) {
-  this._tablePane._onSelectionChanged(evt);
-};
-
-
-/**
- * Event handler. Called when the table gets or looses the focus.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onFocusChanged = function(evt) {
-  this._focusIndicator.setState("tableHasFocus", this.getTable().getFocused());
-
-  this._tablePane._onFocusChanged(evt);
-};
-
-
-/**
- * Event handler. Called when the table model meta data has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onTableModelMetaDataChanged = function(evt) {
-  this._header._onTableModelMetaDataChanged(evt);
-  this._tablePane._onTableModelMetaDataChanged(evt);
-};
-
-
-/**
- * Event handler. Called when the pane model has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onPaneModelChanged = function(evt) {
-  this._header._onPaneModelChanged(evt);
-  this._tablePane._onPaneModelChanged(evt);
-};
-
-
-/**
- * Updates the maximum of the horizontal scroll bar, so it corresponds to the
- * total width of the columns in the table pane.
- */
-qx.Proto._updateHorScrollBarMaximum = function() {
-  this._horScrollBar.setMaximum(this.getTablePaneModel().getTotalWidth());
-}
-
-
-/**
- * Updates the maximum of the vertical scroll bar, so it corresponds to the
- * number of rows in the table.
- */
-qx.Proto._updateVerScrollBarMaximum = function() {
-  var rowCount = this.getTable().getTableModel().getRowCount();
-  var rowHeight = this.getTable().getRowHeight();
-
-  if (this.getTable().getKeepFirstVisibleRowComplete()) {
-    this._verScrollBar.setMaximum((rowCount + 1) * rowHeight);
-  } else {
-    this._verScrollBar.setMaximum(rowCount * rowHeight);
-  }
-}
-
-
-/**
- * Event handler. Called when the table property "keepFirstVisibleRowComplete"
- * changed.
- */
-qx.Proto._onKeepFirstVisibleRowCompleteChanged = function() {
-  this._updateVerScrollBarMaximum();
-  this._updateContent();
-};
-
-
-// overridden
-qx.Proto._changeInnerHeight = function(newValue, oldValue) {
-  // The height has changed -> Update content
-  this._postponedUpdateContent();
-
-  return qx.ui.layout.VerticalBoxLayout.prototype._changeInnerHeight.call(this, newValue, oldValue);
-}
-
-
-// overridden
-qx.Proto._afterAppear = function() {
-  qx.ui.layout.VerticalBoxLayout.prototype._afterAppear.call(this);
-
-  var self = this;
-  this.getElement().onselectstart = qx.lang.Function.returnFalse;
-
-  this._updateContent();
-  this._header._updateContent();
-  this._updateHorScrollBarMaximum();
-  this._updateVerScrollBarMaximum();
-}
-
-
-/**
- * Event handler. Called when the horizontal scroll bar moved.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onScrollX = function(evt) {
-  // Workaround: See _updateContent
-  this._header.setLeft(-evt.getData());
-
-  this._paneClipper.setScrollLeft(evt.getData());
-  this.setScrollX(evt.getData());
-}
-
-
-/**
- * Event handler. Called when the vertical scroll bar moved.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onScrollY = function(evt) {
-  this._postponedUpdateContent();
-  this.setScrollY(evt.getData());
-}
-
-
-/**
- * Event handler. Called when the user moved the mouse wheel.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onmousewheel = function(evt) {
-  var table = this.getTable();
-
-  if (! table.getEnabled()) {
-    return;
-  }
-
-  this._verScrollBar.setValue(this._verScrollBar.getValue()
-    - evt.getWheelDelta() * table.getRowHeight());
-
-  // Update the focus
-  if (this._lastMousePageX && this.getFocusCellOnMouseMove()) {
-    this._focusCellAtPagePos(this._lastMousePageX, this._lastMousePageY);
-  }
-}
-
-
-/**
- * Event handler. Called when the user moved the mouse.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onmousemove = function(evt) {
-  var table = this.getTable();
-
-  if (! table.getEnabled()) {
-    return;
-  }
-
-  var tableModel = table.getTableModel();
-  var columnModel = table.getTableColumnModel();
-
-  var useResizeCursor = false;
-  var mouseOverColumn = null;
-
-  var pageX = evt.getPageX();
-  var pageY = evt.getPageY();
-
-  // Workaround: In onmousewheel the event has wrong coordinates for pageX
-  //       and pageY. So we remember the last move event.
-  this._lastMousePageX = pageX;
-  this._lastMousePageY = pageY;
-
-  if (this._resizeColumn != null) {
-    // We are currently resizing -> Update the position
-    var minColumnWidth = qx.ui.table.TablePaneScroller.MIN_COLUMN_WIDTH;
-    var newWidth = Math.max(minColumnWidth, this._lastResizeWidth + pageX - this._lastResizeMousePageX);
-
-    if (this.getLiveResize()) {
-      columnModel.setColumnWidth(this._resizeColumn, newWidth);
-    } else {
-      this._header.setColumnWidth(this._resizeColumn, newWidth);
-
-      var paneModel = this.getTablePaneModel();
-      this._showResizeLine(paneModel.getColumnLeft(this._resizeColumn) + newWidth);
-    }
-
-    useResizeCursor = true;
-    this._lastResizeMousePageX += newWidth - this._lastResizeWidth;
-    this._lastResizeWidth = newWidth;
-  } else if (this._moveColumn != null) {
-    // We are moving a column
-
-    // Check whether we moved outside the click tolerance so we can start
-    // showing the column move feedback
-    // (showing the column move feedback prevents the onclick event)
-    var clickTolerance = qx.ui.table.TablePaneScroller.CLICK_TOLERANCE;
-    if (this._header.isShowingColumnMoveFeedback()
-      || pageX > this._lastMoveMousePageX + clickTolerance
-      || pageX < this._lastMoveMousePageX - clickTolerance)
-    {
-      this._lastMoveColPos += pageX - this._lastMoveMousePageX;
-
-      this._header.showColumnMoveFeedback(this._moveColumn, this._lastMoveColPos);
-
-      // Get the responsible scroller
-      var targetScroller = this._table.getTablePaneScrollerAtPageX(pageX);
-      if (this._lastMoveTargetScroller && this._lastMoveTargetScroller != targetScroller) {
-        this._lastMoveTargetScroller.hideColumnMoveFeedback();
-      }
-      if (targetScroller != null) {
-        this._lastMoveTargetX = targetScroller.showColumnMoveFeedback(pageX);
-      } else {
-        this._lastMoveTargetX = null;
-      }
-
-      this._lastMoveTargetScroller = targetScroller;
-      this._lastMoveMousePageX = pageX;
-    }
-  } else {
-    // This is a normal mouse move
-    var row = this._getRowForPagePos(pageX, pageY);
-    if (row == -1) {
-      // The mouse is over the header
-      var resizeCol = this._getResizeColumnForPageX(pageX);
-      if (resizeCol != -1) {
-        // The mouse is over a resize region -> Show the right cursor
-        useResizeCursor = true;
-      } else {
-        var col = this._getColumnForPageX(pageX);
-        if (col != null && tableModel.isColumnSortable(col)) {
-          mouseOverColumn = col;
-        }
-      }
-    } else if (row != null) {
-      // The mouse is over the data -> update the focus
-      if (this.getFocusCellOnMouseMove()) {
-        this._focusCellAtPagePos(pageX, pageY);
-      }
-    }
-  }
-
-  // Workaround: Setting the cursor to the right widget doesn't work
-  //this._header.setCursor(useResizeCursor ? "e-resize" : null);
-  this.getTopLevelWidget().setGlobalCursor(useResizeCursor ? qx.ui.table.TablePaneScroller.CURSOR_RESIZE_HORIZONTAL : null);
-
-  this._header.setMouseOverColumn(mouseOverColumn);
-}
-
-
-/**
- * Event handler. Called when the user pressed a mouse button.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onmousedown = function(evt) {
-  var table = this.getTable();
-
-  if (! table.getEnabled()) {
-    return;
-  }
-
-  var tableModel = table.getTableModel();
-  var columnModel = table.getTableColumnModel();
-
-  var pageX = evt.getPageX();
-  var pageY = evt.getPageY();
-  var row = this._getRowForPagePos(pageX, pageY);
-  if (row == -1) {
-    // mouse is in header
-    var resizeCol = this._getResizeColumnForPageX(pageX);
-    if (resizeCol != -1) {
-      // The mouse is over a resize region -> Start resizing
-      this._resizeColumn = resizeCol;
-      this._lastResizeMousePageX = pageX;
-      this._lastResizeWidth = columnModel.getColumnWidth(this._resizeColumn);
-      this.setCapture(true);
-    } else {
-      // The mouse is not in a resize region
-      var col = this._getColumnForPageX(pageX);
-      if (col != null) {
-        // Prepare column moving
-        this._moveColumn = col;
-        this._lastMoveMousePageX = pageX;
-        this._lastMoveColPos = this.getTablePaneModel().getColumnLeft(col);
-        this.setCapture(true);
-      }
-    }
-  } else if (row != null) {
-    var selectBeforeFocus = this.getSelectBeforeFocus();
-
-    if (selectBeforeFocus) {
-      table._getSelectionManager().handleMouseDown(row, evt);
-    }
-
-    // The mouse is over the data -> update the focus
-    if (! this.getFocusCellOnMouseMove()) {
-      this._focusCellAtPagePos(pageX, pageY);
-    }
-
-    if (! selectBeforeFocus) {
-      table._getSelectionManager().handleMouseDown(row, evt);
-    }
-  }
-}
-
-
-/**
- * Event handler. Called when the user released a mouse button.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onmouseup = function(evt) {
-  var table = this.getTable();
-
-  if (! table.getEnabled()) {
-    return;
-  }
-
-  var columnModel = table.getTableColumnModel();
-  var paneModel = this.getTablePaneModel();
-
-  if (this._resizeColumn != null) {
-    // We are currently resizing -> Finish resizing
-    if (! this.getLiveResize()) {
-      this._hideResizeLine();
-      columnModel.setColumnWidth(this._resizeColumn, this._lastResizeWidth);
-    }
-
-    this._resizeColumn = null;
-    this.setCapture(false);
-
-    this.getTopLevelWidget().setGlobalCursor(null);
-  } else if (this._moveColumn != null) {
-    // We are moving a column -> Drop the column
-    this._header.hideColumnMoveFeedback();
-    if (this._lastMoveTargetScroller) {
-      this._lastMoveTargetScroller.hideColumnMoveFeedback();
-    }
-
-    if (this._lastMoveTargetX != null) {
-      var fromVisXPos = paneModel.getFirstColumnX() + paneModel.getX(this._moveColumn);
-      var toVisXPos = this._lastMoveTargetX;
-      if (toVisXPos != fromVisXPos && toVisXPos != fromVisXPos + 1) {
-        // The column was really moved to another position
-        // (and not moved before or after itself, which is a noop)
-
-        // Translate visible positions to overall positions
-        var fromCol = columnModel.getVisibleColumnAtX(fromVisXPos);
-        var toCol   = columnModel.getVisibleColumnAtX(toVisXPos);
-        var fromOverXPos = columnModel.getOverallX(fromCol);
-        var toOverXPos = (toCol != null) ? columnModel.getOverallX(toCol) : columnModel.getOverallColumnCount();
-
-        if (toOverXPos > fromOverXPos) {
-          // Don't count the column itself
-          toOverXPos--;
-        }
-
-        // Move the column
-        columnModel.moveColumn(fromOverXPos, toOverXPos);
-      }
-    }
-
-    this._moveColumn = null;
-    this._lastMoveTargetX = null;
-    this.setCapture(false);
-  } else {
-    // This is a normal mouse up
-    var row = this._getRowForPagePos(evt.getPageX(), evt.getPageY());
-    if (row != -1 && row != null) {
-      table._getSelectionManager().handleMouseUp(row, evt);
-    }
-  }
-}
-
-
-/**
- * Event handler. Called when the user clicked a mouse button.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onclick = function(evt) {
-  var table = this.getTable();
-
-  if (! table.getEnabled()) {
-    return;
-  }
-
-  var tableModel = table.getTableModel();
-
-  var pageX = evt.getPageX();
-  var pageY = evt.getPageY();
-  var row = this._getRowForPagePos(pageX, pageY);
-  if (row == -1) {
-    // mouse is in header
-    var resizeCol = this._getResizeColumnForPageX(pageX);
-    if (resizeCol == -1) {
-      // mouse is not in a resize region
-      var col = this._getColumnForPageX(pageX);
-      if (col != null && tableModel.isColumnSortable(col)) {
-        // Sort that column
-        var sortCol = tableModel.getSortColumnIndex();
-        var ascending = (col != sortCol) ? true : !tableModel.isSortAscending();
-
-        tableModel.sortByColumn(col, ascending);
-        table.getSelectionModel().clearSelection();
-      }
-    }
-  } else if (row != null) {
-    table._getSelectionManager().handleClick(row, evt);
-  }
-}
-
-
-/**
- * Event handler. Called when the user double clicked a mouse button.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._ondblclick = function(evt) {
-  if (! this.isEditing()) {
-    this._focusCellAtPagePos(evt.getPageX(), evt.getPageY());
-    this.startEditing();
-  }
-}
-
-
-/**
- * Event handler. Called when the mouse moved out.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onmouseout = function(evt) {
-  var table = this.getTable();
-
-  if (! table.getEnabled()) {
-    return;
-  }
-
-  /*
-  // Workaround: See _onmousemove
-  this._lastMousePageX = null;
-  this._lastMousePageY = null;
-  */
-
-  // Reset the resize cursor when the mouse leaves the header
-  // If currently a column is resized then do nothing
-  // (the cursor will be reset on mouseup)
-  if (this._resizeColumn == null) {
-    this.getTopLevelWidget().setGlobalCursor(null);
-  }
-
-  this._header.setMouseOverColumn(null);
-}
-
-
-/**
- * Shows the resize line.
- *
- * @param x {Integer} the position where to show the line (in pixels, relative to
- *    the left side of the pane).
- */
-qx.Proto._showResizeLine = function(x) {
-  var resizeLine = this._resizeLine;
-  if (resizeLine == null) {
-    resizeLine = new qx.ui.basic.Terminator;
-    resizeLine.setBackgroundColor("#D6D5D9");
-    resizeLine.setWidth(3);
-    this._paneClipper.add(resizeLine);
-    qx.ui.core.Widget.flushGlobalQueues();
-
-    this._resizeLine = resizeLine;
-  }
-
-  resizeLine._applyRuntimeLeft(x - 2); // -1 for the width
-  resizeLine._applyRuntimeHeight(this._paneClipper.getBoxHeight() + this._paneClipper.getScrollTop());
-
-  this._resizeLine.removeStyleProperty("visibility");
-}
-
-
-/**
- * Hides the resize line.
- */
-qx.Proto._hideResizeLine = function() {
-  this._resizeLine.setStyleProperty("visibility", "hidden");
-}
-
-
-/**
- * Shows the feedback shown while a column is moved by the user.
- *
- * @param pageX {Integer} the x position of the mouse in the page (in pixels).
- * @return {Integer} the visible x position of the column in the whole table.
- */
-qx.Proto.showColumnMoveFeedback = function(pageX) {
-  var paneModel = this.getTablePaneModel();
-  var columnModel = this.getTable().getTableColumnModel();
-  var paneLeftX = qx.html.Location.getClientBoxLeft(this._tablePane.getElement());
-  var colCount = paneModel.getColumnCount();
-
-  var targetXPos = 0;
-  var targetX = 0;
-  var currX = paneLeftX;
-  for (var xPos = 0; xPos < colCount; xPos++) {
-    var col = paneModel.getColumnAtX(xPos);
-    var colWidth = columnModel.getColumnWidth(col);
-
-    if (pageX < currX + colWidth / 2) {
-      break;
-    }
-
-    currX += colWidth;
-    targetXPos = xPos + 1;
-    targetX = currX - paneLeftX;
-  }
-
-  // Ensure targetX is visible
-  var clipperLeftX = qx.html.Location.getClientBoxLeft(this._paneClipper.getElement());
-  var clipperWidth = this._paneClipper.getBoxWidth();
-  var scrollX = clipperLeftX - paneLeftX;
-  // NOTE: +2/-1 because of feedback width
-  targetX = qx.lang.Number.limit(targetX, scrollX + 2, scrollX + clipperWidth - 1);
-
-  this._showResizeLine(targetX);
-
-  // Return the overall target x position
-  return paneModel.getFirstColumnX() + targetXPos;
-}
-
-
-/**
- * Hides the feedback shown while a column is moved by the user.
- */
-qx.Proto.hideColumnMoveFeedback = function() {
-  this._hideResizeLine();
-}
-
-
-/**
- * Sets the focus to the cell that's located at the page position
- * <code>pageX</code>/<code>pageY</code>. If there is no cell at that position,
- * nothing happens.
- *
- * @param pageX {Integer} the x position in the page (in pixels).
- * @param pageY {Integer} the y position in the page (in pixels).
- */
-qx.Proto._focusCellAtPagePos = function(pageX, pageY) {
-  var row = this._getRowForPagePos(pageX, pageY);
-  if (row != -1 && row != null) {
-    // The mouse is over the data -> update the focus
-    var col = this._getColumnForPageX(pageX);
-    if (col != null) {
-      this._table.setFocusedCell(col, row);
-    }
-  }
-}
-
-
-/**
- * Sets the currently focused cell.
- *
- * @param col {Integer} the model index of the focused cell's column.
- * @param row {Integer} the model index of the focused cell's row.
- */
-qx.Proto.setFocusedCell = function(col, row) {
-  if (!this.isEditing()) {
-    this._tablePane.setFocusedCell(col, row, this._updateContentPlanned);
-
-    this._focusedCol = col;
-    this._focusedRow = row;
-
-    // Move the focus indicator
-    if (! this._updateContentPlanned) {
-      this._updateFocusIndicator();
-    }
-  }
-}
-
-
-/**
- * Returns the column of currently focused cell.
- *
- * @return {Integer} the model index of the focused cell's column.
- */
-qx.Proto.getFocusedColumn = function() {
-  return this._focusedCol;
-};
-
-
-/**
- * Returns the row of currently focused cell.
- *
- * @return {Integer} the model index of the focused cell's column.
- */
-qx.Proto.getFocusedRow = function() {
-  return this._focusedRow;
-};
-
-
-/**
- * Scrolls a cell visible.
- *
- * @param col {Integer} the model index of the column the cell belongs to.
- * @param row {Integer} the model index of the row the cell belongs to.
- */
-qx.Proto.scrollCellVisible = function(col, row) {
-  var paneModel = this.getTablePaneModel();
-  var xPos = paneModel.getX(col);
-
-  if (xPos != -1) {
-    var columnModel = this.getTable().getTableColumnModel();
-
-    var colLeft = paneModel.getColumnLeft(col);
-    var colWidth = columnModel.getColumnWidth(col);
-    var rowHeight = this.getTable().getRowHeight();
-    var rowTop = row * rowHeight;
-
-    var scrollX = this.getScrollX();
-    var scrollY = this.getScrollY();
-    var viewWidth = this._paneClipper.getBoxWidth();
-    var viewHeight = this._paneClipper.getBoxHeight();
-
-    // NOTE: We don't use qx.lang.Number.limit, because min should win if max < min
-    var minScrollX = Math.min(colLeft, colLeft + colWidth - viewWidth);
-    var maxScrollX = colLeft;
-    this.setScrollX(Math.max(minScrollX, Math.min(maxScrollX, scrollX)));
-
-    var minScrollY = rowTop + rowHeight - viewHeight;
-    if (this.getTable().getKeepFirstVisibleRowComplete()) {
-      minScrollY += rowHeight - 1;
-    }
-    var maxScrollY = rowTop;
-    this.setScrollY(Math.max(minScrollY, Math.min(maxScrollY, scrollY)));
-  }
-}
-
-
-/**
- * Returns whether currently a cell is editing.
- *
- * @return whether currently a cell is editing.
- */
-qx.Proto.isEditing = function() {
-  return this._cellEditor != null;
-}
-
-
-/**
- * Starts editing the currently focused cell. Does nothing if already editing
- * or if the column is not editable.
- *
- * @return {Boolean} whether editing was started
- */
-qx.Proto.startEditing = function() {
-  var tableModel = this.getTable().getTableModel();
-  var col   = this._focusedCol;
-
-  if (!this.isEditing() && (col != null) && tableModel.isColumnEditable(col)) {
-    var row   = this._focusedRow;
-    var xPos  = this.getTablePaneModel().getX(col);
-    var value = tableModel.getValue(col, row);
-
-    this._cellEditorFactory = this.getTable().getTableColumnModel().getCellEditorFactory(col);
-    var cellInfo = { col:col, row:row, xPos:xPos, value:value }
-    this._cellEditor = this._cellEditorFactory.createCellEditor(cellInfo);
-    this._cellEditor.set({ width:"100%", height:"100%" });
-
-    this._focusIndicator.add(this._cellEditor);
-    this._focusIndicator.addState("editing");
-
-    this._cellEditor.addEventListener("changeFocused", this._onCellEditorFocusChanged, this);
-
-    // Workaround: Calling focus() directly has no effect
-    var editor = this._cellEditor;
-    window.setTimeout(function() {
-      editor.focus();
-    }, 0);
-
-    return true;
-  }
-
-  return false;
-}
-
-
-/**
- * Stops editing and writes the editor's value to the model.
- */
-qx.Proto.stopEditing = function() {
-  this.flushEditor();
-  this.cancelEditing();
-}
-
-
-/**
- * Writes the editor's value to the model.
- */
-qx.Proto.flushEditor = function() {
-  if (this.isEditing()) {
-    var value = this._cellEditorFactory.getCellEditorValue(this._cellEditor);
-    this.getTable().getTableModel().setValue(this._focusedCol, this._focusedRow, value);
-
-    this._table.focus();
-  }
-}
-
-
-/**
- * Stops editing without writing the editor's value to the model.
- */
-qx.Proto.cancelEditing = function() {
-  if (this.isEditing()) {
-    this._focusIndicator.remove(this._cellEditor);
-    this._focusIndicator.removeState("editing");
-    this._cellEditor.dispose();
-
-    this._cellEditor.removeEventListener("changeFocused", this._onCellEditorFocusChanged, this);
-    this._cellEditor = null;
-    this._cellEditorFactory = null;
-  }
-}
-
-
-/**
- * Event handler. Called when the focused state of the cell editor changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onCellEditorFocusChanged = function(evt) {
-  if (!this._cellEditor.getFocused()) {
-    this.stopEditing();
-  }
-}
-
-
-/**
- * Returns the model index of the column the mouse is over or null if the mouse
- * is not over a column.
- *
- * @param pageX {Integer} the x position of the mouse in the page (in pixels).
- * @return {Integer} the model index of the column the mouse is over.
- */
-qx.Proto._getColumnForPageX = function(pageX) {
-  var headerLeftX = qx.html.Location.getClientBoxLeft(this._header.getElement());
-
-  var columnModel = this.getTable().getTableColumnModel();
-  var paneModel = this.getTablePaneModel();
-  var colCount = paneModel.getColumnCount();
-  var currX = headerLeftX;
-  for (var x = 0; x < colCount; x++) {
-    var col = paneModel.getColumnAtX(x);
-    var colWidth = columnModel.getColumnWidth(col);
-    currX += colWidth;
-
-    if (pageX < currX) {
-      return col;
-    }
-  }
-
-  return null;
-}
-
-
-/**
- * Returns the model index of the column that should be resized when dragging
- * starts here. Returns -1 if the mouse is in no resize region of any column.
- *
- * @param pageX {Integer} the x position of the mouse in the page (in pixels).
- * @return {Integer} the column index.
- */
-qx.Proto._getResizeColumnForPageX = function(pageX) {
-  var headerLeftX = qx.html.Location.getClientBoxLeft(this._header.getElement());
-
-  var columnModel = this.getTable().getTableColumnModel();
-  var paneModel = this.getTablePaneModel();
-  var colCount = paneModel.getColumnCount();
-  var currX = headerLeftX;
-  var regionRadius = qx.ui.table.TablePaneScroller.RESIZE_REGION_RADIUS;
-  for (var x = 0; x < colCount; x++) {
-    var col = paneModel.getColumnAtX(x);
-    var colWidth = columnModel.getColumnWidth(col);
-    currX += colWidth;
-
-    if (pageX >= (currX - regionRadius) && pageX <= (currX + regionRadius)) {
-      return col;
-    }
-  }
-
-  return -1;
-}
-
-
-/**
- * Returns the model index of the row the mouse is currently over. Returns -1 if
- * the mouse is over the header. Returns null if the mouse is not over any
- * column.
- *
- * @param pageX {Integer} the mouse x position in the page.
- * @param pageY {Integer} the mouse y position in the page.
- * @return {Integer} the model index of the row the mouse is currently over.
- */
-qx.Proto._getRowForPagePos = function(pageX, pageY) {
-  var paneClipperElem = this._paneClipper.getElement();
-  var paneClipperLeftX = qx.html.Location.getClientBoxLeft(paneClipperElem);
-  var paneClipperRightX = qx.html.Location.getClientBoxRight(paneClipperElem);
-  if (pageX < paneClipperLeftX || pageX > paneClipperRightX) {
-    // There was no cell or header cell hit
-    return null;
-  }
-
-  var paneClipperTopY = qx.html.Location.getClientBoxTop(paneClipperElem);
-  var paneClipperBottomY = qx.html.Location.getClientBoxBottom(paneClipperElem);
-  if (pageY >= paneClipperTopY && pageY <= paneClipperBottomY) {
-    // This event is in the pane -> Get the row
-    var rowHeight = this.getTable().getRowHeight();
-
-    var scrollY = this._verScrollBar.getValue();
-    if (this.getTable().getKeepFirstVisibleRowComplete()) {
-      scrollY = Math.floor(scrollY / rowHeight) * rowHeight;
-    }
-
-    var tableY = scrollY + pageY - paneClipperTopY;
-    var row = Math.floor(tableY / rowHeight);
-
-    var rowCount = this.getTable().getTableModel().getRowCount();
-    return (row < rowCount) ? row : null;
-  }
-
-  var headerElem = this._headerClipper.getElement();
-  if (pageY >= qx.html.Location.getClientBoxTop(headerElem)
-    && pageY <= qx.html.Location.getClientBoxBottom(headerElem)
-    && pageX <= qx.html.Location.getClientBoxRight(headerElem))
-  {
-    // This event is in the pane -> Return -1 for the header
-    return -1;
-  }
-
-  return null;
-}
-
-
-/**
- * Sets the widget that should be shown in the top right corner.
- * <p>
- * The widget will not be disposed, when this table scroller is disposed. So the
- * caller has to dispose it.
- *
- * @param widget {qx.ui.core.Widget} The widget to set. May be null.
- */
-qx.Proto.setTopRightWidget = function(widget) {
-  var oldWidget = this._topRightWidget;
-  if (oldWidget != null) {
-    this._top.remove(oldWidget);
-  }
-
-  if (widget != null) {
-    this._top.remove(this._spacer);
-    this._top.add(widget);
-  } else if (oldWidget != null) {
-    this._top.add(this._spacer);
-  }
-
-  this._topRightWidget = widget;
-}
-
-
-/**
- * Returns the header.
- *
- * @return {TablePaneHeader} the header.
- */
-qx.Proto.getHeader = function() {
-  return this._header;
-}
-
-
-/**
- * Returns the table pane.
- *
- * @return {TablePane} the table pane.
- */
-qx.Proto.getTablePane = function() {
-  return this._tablePane;
-}
-
-
-/**
- * Returns which scrollbars are needed.
- *
- * @param forceHorizontal {Boolean ? false} Whether to show the horizontal
- *    scrollbar always.
- * @param preventVertical {Boolean ? false} Whether tp show the vertical scrollbar
- *    never.
- * @return {Integer} which scrollbars are needed. This may be any combination of
- *    {@link #HORIZONTAL_SCROLLBAR} or {@link #VERTICAL_SCROLLBAR}
- *    (combined by OR).
- */
-qx.Proto.getNeededScrollBars = function(forceHorizontal, preventVertical) {
-  var barWidth = this._verScrollBar.getPreferredBoxWidth();
-
-  // Get the width and height of the view (without scroll bars)
-  var viewWidth = this._paneClipper.getInnerWidth();
-  if (this.getVerticalScrollBarVisible()) {
-    viewWidth += barWidth;
-  }
-  var viewHeight = this._paneClipper.getInnerHeight();
-  if (this.getHorizontalScrollBarVisible()) {
-    viewHeight += barWidth;
-  }
-
-  // Get the (virtual) width and height of the pane
-  var paneWidth = this.getTablePaneModel().getTotalWidth();
-  var paneHeight = this.getTable().getRowHeight() * this.getTable().getTableModel().getRowCount();
-
-  // Check which scrollbars are needed
-  var horNeeded = false;
-  var verNeeded = false;
-  if (paneWidth > viewWidth) {
-    horNeeded = true;
-    if (paneHeight > viewHeight - barWidth) {
-      verNeeded = true;
-    }
-  } else if (paneHeight > viewHeight) {
-    verNeeded = true;
-    if (!preventVertical && (paneWidth > viewWidth - barWidth)) {
-      horNeeded = true;
-    }
-  }
-
-  // Create the mask
-  var horBar = qx.ui.table.TablePaneScroller.HORIZONTAL_SCROLLBAR;
-  var verBar = qx.ui.table.TablePaneScroller.VERTICAL_SCROLLBAR;
-  return ((forceHorizontal || horNeeded) ? horBar : 0)
-     | ((preventVertical || !verNeeded) ? 0 : verBar);
-}
-
-
-/**
- * Does a postponed update of the content.
- *
- * @see #_updateContent
- */
-qx.Proto._postponedUpdateContent = function() {
-  if (! this._updateContentPlanned) {
-    var self = this;
-    window.setTimeout(function() {
-      self._updateContent();
-      self._updateContentPlanned = false;
-      qx.ui.core.Widget.flushGlobalQueues();
-    }, 0);
-    this._updateContentPlanned = true;
-  }
-}
-
-
-/**
- * Updates the content. Sets the right section the table pane should show and
- * does the scrolling.
- */
-qx.Proto._updateContent = function() {
-  var paneHeight = this._paneClipper.getInnerHeight();
-  var scrollX = this._horScrollBar.getValue();
-  var scrollY = this._verScrollBar.getValue();
-  var rowHeight = this.getTable().getRowHeight();
-
-  var firstRow = Math.floor(scrollY / rowHeight);
-  var oldFirstRow = this._tablePane.getFirstVisibleRow();
-  this._tablePane.setFirstVisibleRow(firstRow);
-
-  var rowCount = Math.ceil(paneHeight / rowHeight);
-  var paneOffset = 0;
-  if (! this.getTable().getKeepFirstVisibleRowComplete()) {
-    // NOTE: We don't consider paneOffset, because this may cause alternating
-    //       adding and deleting of one row when scolling. Instead we add one row
-    //       in every case.
-    rowCount++;
-    paneOffset = scrollY % rowHeight;
-  }
-  this._tablePane.setVisibleRowCount(rowCount);
-
-  if (firstRow != oldFirstRow) {
-    this._updateFocusIndicator();
-  }
-
-  // Workaround: We can't use scrollLeft for the header because IE
-  //       automatically scrolls the header back, when a column is
-  //       resized.
-  this._header.setLeft(-scrollX);
-  this._paneClipper.setScrollLeft(scrollX);
-  this._paneClipper.setScrollTop(paneOffset);
-
-  //this.debug("paneHeight:"+paneHeight+",rowHeight:"+rowHeight+",firstRow:"+firstRow+",rowCount:"+rowCount+",paneOffset:"+paneOffset);
-}
-
-
-/**
- * Updates the location and the visibility of the focus indicator.
- */
-qx.Proto._updateFocusIndicator = function() {
-  var table = this.getTable();
-
-  if (! table.getEnabled()) {
-    return;
-  }
-
-  if (this._focusedCol == null) {
-    this._focusIndicator.hide();
-  } else {
-    var xPos = this.getTablePaneModel().getX(this._focusedCol);
-    if (xPos == -1) {
-      this._focusIndicator.hide();
-    } else {
-      var columnModel = table.getTableColumnModel();
-      var paneModel = this.getTablePaneModel();
-
-      var firstRow = this._tablePane.getFirstVisibleRow();
-      var rowHeight = table.getRowHeight();
-
-      this._focusIndicator.setHeight(rowHeight + 3);
-      this._focusIndicator.setWidth(columnModel.getColumnWidth(this._focusedCol) + 3);
-      this._focusIndicator.setTop((this._focusedRow - firstRow) * rowHeight - 2);
-      this._focusIndicator.setLeft(paneModel.getColumnLeft(this._focusedCol) - 2);
-
-      this._focusIndicator.show();
-
-      // Force redisplay of the focus indicator right away.  Without this, it
-      // waits until the mouse stops moving for a while before updating, and
-      // appears as if it is slow to respond.
-      qx.ui.core.Widget.flushGlobalQueues();
-    }
-  }
-}
-
-
-// overridden
-qx.Proto.dispose = function() {
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  if (this.getElement() != null) {
-    this.getElement().onselectstart = null;
-  }
-
-  this._verScrollBar.dispose();
-  this._horScrollBar.dispose();
-  this._header.dispose();
-  this._headerClipper.dispose();
-  this._spacer.dispose();
-  this._top.dispose();
-  this._tablePane.dispose();
-  this._paneClipper.dispose();
-
-  if (this._resizeLine != null) {
-    this._resizeLine.dispose();
-  }
-
-  this.removeEventListener("mousemove", this._onmousemove, this);
-  this.removeEventListener("mousedown", this._onmousedown, this);
-  this.removeEventListener("mouseup", this._onmouseup, this);
-  this.removeEventListener("click", this._onclick, this);
-  this.removeEventListener("dblclick", this._ondblclick, this);
-  this.removeEventListener("mouseout", this._onmouseout, this);
-
-  var tablePaneModel = this.getTablePaneModel();
-  if (tablePaneModel != null) {
-    tablePaneModel.removeEventListener("modelChanged", this._onPaneModelChanged, this);
-  }
-
-  return qx.ui.layout.VerticalBoxLayout.prototype.dispose.call(this);
-}
-
-
-/** {int} The minimum width a colum could get in pixels. */
-qx.Class.MIN_COLUMN_WIDTH = 10;
-
-/** {int} The radius of the resize region in pixels. */
-qx.Class.RESIZE_REGION_RADIUS = 5;
-
-/**
- * (int) The number of pixels the mouse may move between mouse down and mouse up
- * in order to count as a click.
- */
-qx.Class.CLICK_TOLERANCE = 5;
-
-/**
- * (int) The mask for the horizontal scroll bar.
- * May be combined with {@link #VERTICAL_SCROLLBAR}.
- *
- * @see #getNeededScrollBars
- */
-qx.Class.HORIZONTAL_SCROLLBAR = 1;
-
-/**
- * (int) The mask for the vertical scroll bar.
- * May be combined with {@link #HORIZONTAL_SCROLLBAR}.
- *
- * @see #getNeededScrollBars
- */
-qx.Class.VERTICAL_SCROLLBAR = 2;
-
-/**
- * (string) The correct value for the CSS style attribute "cursor" for the
- * horizontal resize cursor.
- */
-qx.Class.CURSOR_RESIZE_HORIZONTAL = (qx.core.Client.getInstance().isGecko() && (qx.core.Client.getInstance().getMajor() > 1 || qx.core.Client.getInstance().getMinor() >= 8)) ? "ew-resize" : "e-resize";
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/TextFieldCellEditorFactory.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/table/TextFieldCellEditorFactory.js
deleted file mode 100644 (file)
index 5496904..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_table)
-
-************************************************************************ */
-
-/**
- * A cell editor factory creating text fields.
- */
-qx.OO.defineClass("qx.ui.table.TextFieldCellEditorFactory", qx.ui.table.CellEditorFactory,
-function() {
-  qx.ui.table.CellEditorFactory.call(this);
-});
-
-
-// overridden
-qx.Proto.createCellEditor = function(cellInfo) {
-  var cellEditor = new qx.ui.form.TextField;
-  cellEditor.setAppearance("table-editor-textfield");
-  cellEditor.originalValue = cellInfo.value;
-  cellEditor.setValue("" + cellInfo.value);
-
-  cellEditor.addEventListener("appear", function() {
-    this.selectAll();
-  });
-
-  return cellEditor;
-}
-
-
-// overridden
-qx.Proto.getCellEditorValue = function(cellEditor) {
-  // Workaround: qx.ui.form.TextField.getValue() delivers the old value, so we use the
-  //             value property of the DOM element directly
-  var value = cellEditor.getElement().value;
-
-  if (typeof cellEditor.originalValue == "number") {
-    value = parseFloat(value);
-  }
-  return value;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/toolbar/Button.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/toolbar/Button.js
deleted file mode 100644 (file)
index 4794537..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_toolbar)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.toolbar.Button", qx.ui.form.Button,
-function(vText, vIcon, vIconWidth, vIconHeight, vFlash)
-{
-  qx.ui.form.Button.call(this, vText, vIcon, vIconWidth, vIconHeight, vFlash);
-
-  // Omit focus
-  this.setTabIndex(-1);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "toolbar-button" });
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onkeydown = qx.lang.Function.returnTrue;
-qx.Proto._onkeyup = qx.lang.Function.returnTrue;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/toolbar/CheckBox.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/toolbar/CheckBox.js
deleted file mode 100644 (file)
index 4466bd1..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_toolbar)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.toolbar.CheckBox", qx.ui.toolbar.Button,
-function(vText, vIcon, vChecked)
-{
-  qx.ui.toolbar.Button.call(this, vText, vIcon);
-
-  if (vChecked != null) {
-    this.setChecked(vChecked);
-  }
-});
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.addProperty({ name : "checked", type : "boolean", defaultValue : false, getAlias:"isChecked" });
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyChecked = function(propValue, propOldValue, propData)
-{
-  propValue ? this.addState("checked") : this.removeState("checked");
-  return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENTS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmouseup = function(e)
-{
-  this.setCapture(false);
-
-  if (!this.hasState("abandoned"))
-  {
-    this.addState("over");
-    this.setChecked(!this.getChecked());
-    this.execute();
-  }
-
-  this.removeState("abandoned");
-  this.removeState("pressed");
-
-  e.stopPropagation();
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/toolbar/MenuButton.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/toolbar/MenuButton.js
deleted file mode 100644 (file)
index 0a890ce..0000000
+++ /dev/null
@@ -1,254 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_toolbar)
-#module(ui_menu)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.toolbar.MenuButton", qx.ui.toolbar.Button,
-function(vText, vMenu, vIcon, vIconWidth, vIconHeight, vFlash)
-{
-  qx.ui.toolbar.Button.call(this, vText, vIcon, vIconWidth, vIconHeight, vFlash);
-
-  if (vMenu != null) {
-    this.setMenu(vMenu);
-  }
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.addProperty({ name : "menu", type : "object", instance : "qx.ui.menu.Menu" });
-qx.OO.addProperty({ name : "direction", type : "string", allowNull : false, possibleValues : [ "up", "down" ], defaultValue : "down" });
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getParentToolBar = function()
-{
-  var vParent = this.getParent();
-
-  if (vParent instanceof qx.ui.toolbar.Part) {
-    vParent = vParent.getParent();
-  }
-
-  return vParent instanceof qx.ui.toolbar.ToolBar ? vParent : null;
-}
-
-qx.Proto._showMenu = function(vFromKeyEvent)
-{
-  var vMenu = this.getMenu();
-
-  if (vMenu)
-  {
-    // Caching common stuff
-    var vMenuParent = vMenu.getParent();
-    var vMenuParentElement = vMenuParent.getElement();
-    var vButtonElement = this.getElement();
-    var vButtonHeight = qx.html.Dimension.getBoxHeight(vButtonElement);
-
-    // Apply X-Location
-    var vMenuParentLeft = qx.html.Location.getPageBoxLeft(vMenuParentElement);
-    var vButtonLeft = qx.html.Location.getPageBoxLeft(vButtonElement);
-
-    vMenu.setLeft(vButtonLeft - vMenuParentLeft);
-
-    // Apply Y-Location
-    switch(this.getDirection())
-    {
-      case "up":
-        var vBodyHeight = qx.html.Dimension.getInnerHeight(document.body);
-        var vMenuParentBottom = qx.html.Location.getPageBoxBottom(vMenuParentElement);
-        var vButtonBottom = qx.html.Location.getPageBoxBottom(vButtonElement);
-
-        vMenu.setBottom(vButtonHeight + (vBodyHeight - vButtonBottom) - (vBodyHeight - vMenuParentBottom));
-        vMenu.setTop(null);
-        break;
-
-      case "down":
-        var vButtonTop = qx.html.Location.getPageBoxTop(vButtonElement);
-
-        vMenu.setTop(vButtonTop + vButtonHeight);
-        vMenu.setBottom(null);
-        break;
-    }
-
-    this.addState("pressed");
-
-    // If this show is called from a key event occured, we want to highlight
-    // the first menubutton inside.
-    if (vFromKeyEvent) {
-      vMenu.setHoverItem(vMenu.getFirstActiveChild());
-    }
-
-    vMenu.show();
-  }
-}
-
-qx.Proto._hideMenu = function()
-{
-  var vMenu = this.getMenu();
-
-  if (vMenu) {
-    vMenu.hide();
-  }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyMenu = function(propValue, propOldValue, propData)
-{
-  if (propOldValue)
-  {
-    propOldValue.setOpener(null);
-
-    propOldValue.removeEventListener("appear", this._onmenuappear, this);
-    propOldValue.removeEventListener("disappear", this._onmenudisappear, this);
-  }
-
-  if (propValue)
-  {
-    propValue.setOpener(this);
-
-    propValue.addEventListener("appear", this._onmenuappear, this);
-    propValue.addEventListener("disappear", this._onmenudisappear, this);
-  }
-
-  return true;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENTS: MOUSE
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmousedown = function(e)
-{
-  if (e.getTarget() != this || !e.isLeftButtonPressed()) {
-    return;
-  }
-
-  this.hasState("pressed") ? this._hideMenu() : this._showMenu();
-}
-
-qx.Proto._onmouseup = function(e) {}
-
-qx.Proto._onmouseout = function(e)
-{
-  if (e.getTarget() != this) {
-    return;
-  }
-
-  this.removeState("over");
-}
-
-qx.Proto._onmouseover = function(e)
-{
-  var vToolBar = this.getParentToolBar();
-
-  if (vToolBar)
-  {
-    var vMenu = this.getMenu();
-
-    switch(vToolBar.getOpenMenu())
-    {
-      case null:
-      case vMenu:
-        break;
-
-      default:
-        // hide other menus
-        qx.manager.object.MenuManager.getInstance().update();
-
-        // show this menu
-        this._showMenu();
-    }
-  }
-
-  return qx.ui.toolbar.Button.prototype._onmouseover.call(this, e);
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENTS: MENU
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmenuappear = function(e)
-{
-  var vToolBar = this.getParentToolBar();
-
-  if (!vToolBar) {
-    return;
-  }
-
-  var vMenu = this.getMenu();
-
-  vToolBar.setOpenMenu(vMenu);
-}
-
-qx.Proto._onmenudisappear = function(e)
-{
-  var vToolBar = this.getParentToolBar();
-
-  if (!vToolBar) {
-    return;
-  }
-
-  var vMenu = this.getMenu();
-
-  if (vToolBar.getOpenMenu() == vMenu) {
-    vToolBar.setOpenMenu(null);
-  }
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/toolbar/Part.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/toolbar/Part.js
deleted file mode 100644 (file)
index 7d7c164..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_toolbar)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.toolbar.Part", qx.ui.layout.HorizontalBoxLayout,
-function()
-{
-  qx.ui.layout.HorizontalBoxLayout.call(this);
-
-  this._handle = new qx.ui.toolbar.PartHandle;
-  this.add(this._handle);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "toolbar-part" });
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CLONE
----------------------------------------------------------------------------
-*/
-
-// Omit recursive cloning of qx.ui.toolbar.PartHandle
-qx.Proto._cloneRecursive = function(cloneInstance)
-{
-  var vChildren = this.getChildren();
-  var vLength = vChildren.length;
-
-  for (var i=0; i<vLength; i++) {
-    if (!(vChildren[i] instanceof qx.ui.toolbar.PartHandle)) {
-      cloneInstance.add(vChildren[i].clone(true));
-    }
-  }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  if (this._handle)
-  {
-    this._handle.dispose();
-    this._handle = null;
-  }
-
-  return qx.ui.layout.HorizontalBoxLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/toolbar/PartHandle.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/toolbar/PartHandle.js
deleted file mode 100644 (file)
index 280175d..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_toolbar)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.toolbar.PartHandle", qx.ui.layout.CanvasLayout,
-function()
-{
-  qx.ui.layout.CanvasLayout.call(this);
-
-  var l = new qx.ui.basic.Terminator;
-  l.setAppearance("toolbar-part-handle-line");
-  this.add(l);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "toolbar-part-handle" });
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/toolbar/RadioButton.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/toolbar/RadioButton.js
deleted file mode 100644 (file)
index 3ace945..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_toolbar)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.toolbar.RadioButton", qx.ui.toolbar.CheckBox,
-function(vText, vIcon, vChecked) {
-  qx.ui.toolbar.CheckBox.call(this, vText, vIcon, vChecked);
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/*!
-  The assigned qx.manager.selection.RadioManager which handles the switching between registered buttons
-*/
-qx.OO.addProperty({ name : "manager", type : "object", instance : "qx.manager.selection.RadioManager", allowNull : true });
-
-/*!
-  The name of the radio group. All the radio elements in a group (registered by the same manager)
-  have the same name (and could have a different value).
-*/
-qx.OO.addProperty({ name : "name", type : "string" });
-
-/*!
-  Prohibit the deselction of the checked radio button when clicked on it.
-*/
-qx.OO.addProperty({ name : "disableUncheck", type : "boolean", defaultValue : false });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyChecked = function(propValue, propOldValue, propData)
-{
-  qx.ui.toolbar.CheckBox.prototype._modifyChecked.call(this, propValue, propOldValue, propData);
-
-  var vManager = this.getManager();
-  if (vManager) {
-    vManager.handleItemChecked(this, propValue);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyManager = function(propValue, propOldValue, propData)
-{
-  if (propOldValue) {
-    propOldValue.remove(this);
-  }
-
-  if (propValue) {
-    propValue.add(this);
-  }
-
-  return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENTS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmouseup = function(e)
-{
-  this.setCapture(false);
-
-  if (!this.hasState("abandoned"))
-  {
-    this.addState("over");
-    this.setChecked(this.getDisableUncheck() || !this.getChecked());
-    this.execute();
-  }
-
-  this.removeState("abandoned");
-  this.removeState("pressed");
-
-  e.stopPropagation();
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/toolbar/Separator.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/toolbar/Separator.js
deleted file mode 100644 (file)
index 7984021..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_toolbar)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.toolbar.Separator", qx.ui.layout.CanvasLayout,
-function()
-{
-  qx.ui.layout.CanvasLayout.call(this);
-
-  var l = new qx.ui.basic.Terminator;
-  l.setAppearance("toolbar-separator-line");
-  this.add(l);
-});
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "toolbar-separator" });
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/toolbar/ToolBar.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/toolbar/ToolBar.js
deleted file mode 100644 (file)
index 6b62985..0000000
+++ /dev/null
@@ -1,244 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_toolbar)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.toolbar.ToolBar", qx.ui.layout.HorizontalBoxLayout,
-function()
-{
-  qx.ui.layout.HorizontalBoxLayout.call(this);
-
-  this.addEventListener("keypress", this._onkeypress);
-});
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.addProperty({ name : "openMenu", type : "object", instance : "qx.ui.menu.Menu" });
-
-/*!
-  Appearance of the widget
-*/
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "toolbar" });
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getAllButtons = function()
-{
-  var vChildren = this.getChildren();
-  var vLength = vChildren.length;
-  var vDeepChildren = [];
-  var vCurrent;
-
-  for (var i=0; i<vLength; i++)
-  {
-    vCurrent = vChildren[i];
-
-    if (vCurrent instanceof qx.ui.toolbar.MenuButton)
-    {
-      vDeepChildren.push(vCurrent);
-    }
-    else if (vCurrent instanceof qx.ui.toolbar.Part)
-    {
-      vDeepChildren = vDeepChildren.concat(vCurrent.getChildren());
-    }
-  }
-
-  return vDeepChildren;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENTS
----------------------------------------------------------------------------
-*/
-
-/*!
-  Wraps key events to target functions
-*/
-qx.Proto._onkeypress = function(e)
-{
-  switch(e.getKeyIdentifier())
-  {
-    case "Left":
-      return this._onkeypress_left();
-
-    case "Right":
-      return this._onkeypress_right();
-  }
-}
-
-qx.Proto._onkeypress_left = function()
-{
-  var vMenu = this.getOpenMenu();
-  if (!vMenu) {
-    return;
-  }
-
-  var vOpener = vMenu.getOpener();
-  if (!vOpener) {
-    return;
-  }
-
-  var vChildren = this.getAllButtons();
-  var vChildrenLength = vChildren.length;
-  var vIndex = vChildren.indexOf(vOpener);
-  var vCurrent;
-  var vPrevButton = null;
-
-  for (var i=vIndex-1; i>=0; i--)
-  {
-    vCurrent = vChildren[i];
-
-    if (vCurrent instanceof qx.ui.toolbar.MenuButton && vCurrent.getEnabled())
-    {
-      vPrevButton = vCurrent;
-      break;
-    }
-  }
-
-  // If none found, try again from the begin (looping)
-  if (!vPrevButton)
-  {
-    for (var i=vChildrenLength-1; i>vIndex; i--)
-    {
-      vCurrent = vChildren[i];
-
-      if (vCurrent instanceof qx.ui.toolbar.MenuButton && vCurrent.getEnabled())
-      {
-        vPrevButton = vCurrent;
-        break;
-      }
-    }
-  }
-
-  if (vPrevButton)
-  {
-    // hide other menus
-    qx.manager.object.MenuManager.getInstance().update();
-
-    // show previous menu
-    vPrevButton._showMenu(true);
-  }
-}
-
-qx.Proto._onkeypress_right = function()
-{
-  var vMenu = this.getOpenMenu();
-  if (!vMenu) {
-    return;
-  }
-
-  var vOpener = vMenu.getOpener();
-  if (!vOpener) {
-    return;
-  }
-
-  var vChildren = this.getAllButtons();
-  var vChildrenLength = vChildren.length;
-  var vIndex = vChildren.indexOf(vOpener);
-  var vCurrent;
-  var vNextButton = null;
-
-  for (var i=vIndex+1; i<vChildrenLength; i++)
-  {
-    vCurrent = vChildren[i];
-
-    if (vCurrent instanceof qx.ui.toolbar.MenuButton && vCurrent.getEnabled())
-    {
-      vNextButton = vCurrent;
-      break;
-    }
-  }
-
-  // If none found, try again from the begin (looping)
-  if (!vNextButton)
-  {
-    for (var i=0; i<vIndex; i++)
-    {
-      vCurrent = vChildren[i];
-
-      if (vCurrent instanceof qx.ui.toolbar.MenuButton && vCurrent.getEnabled())
-      {
-        vNextButton = vCurrent;
-        break;
-      }
-    }
-  }
-
-  if (vNextButton)
-  {
-    // hide other menus
-    qx.manager.object.MenuManager.getInstance().update();
-
-    // show next menu
-    vNextButton._showMenu(true);
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this.removeEventListener("keypress", this._onkeypress);
-
-  return qx.ui.layout.HorizontalBoxLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/tree/AbstractTreeElement.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/tree/AbstractTreeElement.js
deleted file mode 100644 (file)
index cbaf27f..0000000
+++ /dev/null
@@ -1,505 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_tree)
-#embed(qx.widgettheme/tree/*)
-#embed(qx.icontheme/16/actions/document-new.png)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.tree.AbstractTreeElement", qx.ui.layout.BoxLayout,
-function(vLabel, vIcon, vIconSelected)
-{
-  if (this.classname == qx.ui.tree.AbstractTreeElement.ABSTRACT_CLASS) {
-    throw new Error("Please omit the usage of qx.ui.tree.AbstractTreeElement directly. Choose between qx.ui.tree.TreeFolder and qx.ui.tree.TreeFile instead!");
-  }
-
-  // Precreate subwidgets
-  this._indentObject = new qx.ui.embed.HtmlEmbed;
-  this._iconObject = new qx.ui.basic.Image;
-  this._labelObject = new qx.ui.basic.Label;
-
-  // Make anonymous
-  this._indentObject.setAnonymous(true);
-  this._iconObject.setAnonymous(true);
-  this._labelObject.setAnonymous(true);
-
-  // Behaviour and Hard Styling
-  this._labelObject.setSelectable(false);
-  this._labelObject.setStyleProperty("lineHeight", "100%");
-
-  qx.ui.layout.BoxLayout.call(this, "horizontal");
-
-  this.setLabel(vLabel);
-
-  // Prohibit selection
-  this.setSelectable(false);
-
-  // Base URL used for indent images
-  this.BASE_URI = qx.manager.object.AliasManager.getInstance().resolvePath("widget/tree/");
-
-  // Adding subwidgets
-  this.add(this._indentObject, this._iconObject, this._labelObject);
-
-  // Set Icons
-  if (vIcon != null) {
-    this.setIcon(vIcon);
-    this.setIconSelected(vIcon);
-  }
-
-  if (vIconSelected != null) {
-    this.setIconSelected(vIconSelected);
-  }
-
-  // Setup initial icon
-  this._iconObject.setSource(this._evalCurrentIcon());
-
-  // Set Appearance
-  this._iconObject.setAppearance("tree-element-icon");
-  this._labelObject.setAppearance("tree-element-label");
-
-  // Register event listeners
-  this.addEventListener("mousedown", this._onmousedown);
-  this.addEventListener("mouseup", this._onmouseup);
-});
-
-qx.ui.tree.AbstractTreeElement.ABSTRACT_CLASS = "qx.ui.tree.AbstractTreeElement";
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "tree-element" });
-
-/*!
-  The icons
-*/
-qx.OO.addProperty({ name : "icon", type : "string" });
-qx.OO.addProperty({ name : "iconSelected", type : "string" });
-
-/*!
-  The label/caption/text of the qx.ui.basic.Atom instance
-*/
-qx.OO.addProperty({ name : "label" });
-
-/*!
-  Selected property
-*/
-qx.OO.addProperty({ name : "selected", type : "boolean", defaultValue : false });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyLabel = function(propValue, propOldValue, propData)
-{
-  if (this._labelObject) {
-    this._labelObject.setHtml(propValue);
-  }
-
-  return true;
-}
-
-qx.Proto._modifySelected = function(propValue, propOldValue, propData)
-{
-  propValue ? this.addState("selected") : this.removeState("selected");
-  propValue ? this._labelObject.addState("selected") : this._labelObject.removeState("selected");
-
-  var vTree = this.getTree();
-  if (!vTree._fastUpdate || (propOldValue && vTree._oldItem == this))
-  {
-    this._iconObject.setSource(this._evalCurrentIcon());
-
-    if (propValue) {
-      this._iconObject.addState("selected");
-    } else {
-      this._iconObject.removeState("selected");
-    }
-  }
-
-  var vManager = this.getTree().getManager();
-
-  if (propOldValue && vManager.getSelectedItem() == this)
-  {
-    vManager.deselectAll();
-  }
-  else if (propValue && vManager.getSelectedItem() != this)
-  {
-    vManager.setSelectedItem(this);
-  }
-
-  return true;
-}
-
-qx.Proto._evalCurrentIcon = function()
-{
-  if (this.getSelected() && this.getIconSelected()) {
-    return this.getIconSelected();
-  } else {
-    return this.getIcon() || "icon/16/actions/document-new.png";
-  }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getParentFolder = function()
-{
-  try {
-    return this.getParent().getParent();
-  } catch(ex) {}
-
-  return null;
-}
-
-qx.Proto.getLevel = function()
-{
-  var vParentFolder = this.getParentFolder();
-  return vParentFolder ? vParentFolder.getLevel() + 1 : null;
-}
-
-qx.Proto.getTree = function()
-{
-  var vParentFolder = this.getParentFolder();
-  return vParentFolder ? vParentFolder.getTree() : null;
-}
-
-qx.Proto.getIndentObject = function() {
-  return this._indentObject;
-}
-
-qx.Proto.getIconObject = function() {
-  return this._iconObject;
-}
-
-qx.Proto.getLabelObject = function() {
-  return this._labelObject;
-}
-
-/**
- * <p>deselects, disconnects, removes and disposes the
- *    current tree element and its content.
- * </p>
- *
- * <p>destroys the current item (TreeFile or TreeFolder)
- * and all its subitems. The destruction of the subitems
- * is done by calling destroyContent. This is done if the
- * subitem has the method destroyContent which is true if the
- * subitem is a TreeFolder (or one of its subclasses).
- * </p>
- *
- * <p>The method destroyContent is defined in the TreeFolder class.
- * </p>
- */
-qx.Proto.destroy = function() {
-   var manager = this.getTree() ? this.getTree().getManager() : null;
-  if(manager) {
-
-    // if the current destroyed item is
-    // selectd deselect the item. If we are
-    // in single selection mode we have to
-    // call deselectAll because setItemSelected
-    // refuses to deselect in this case
-    if(manager.getItemSelected(this)) {
-      if(manager.getMultiSelection()) {
-        manager.setItemSelected(this,false);
-      }
-      else {
-        manager.deselectAll();
-      }
-    }
-
-    // set the leadItem to null if the current
-    // destroyed item is the leadItem
-    if(manager.getLeadItem() == this) {
-      manager.setLeadItem(null);
-    }
-    // set the anchorItem to null if the current
-    // destroyed item is the anchorItem
-    if(manager.getAnchorItem() == this) {
-      manager.setAnchorItem(null);
-    }
-  }
-
-  // if the item has the method destroyContent defined
-  // then it is a TreeFolder (and it's subclasses)
-  // which potentially have content which also
-  // has to be destroyed
-  if(this.destroyContent) {
-    this.destroyContent();
-  }
-
-  // first disconnect the item so rendering
-  // of the tree lines can be done correctly
-  this.disconnect();
-
-  // remove the current item from
-  // the parent folder
-  var parentFolder = this.getParentFolder();
-  if(parentFolder) {
-    parentFolder.remove(this);
-  }
-
-  this.dispose();
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  QUEUE HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto.addToTreeQueue = function()
-{
-  var vTree = this.getTree();
-  if (vTree) {
-    vTree.addChildToTreeQueue(this);
-  }
-}
-
-qx.Proto.removeFromTreeQueue = function()
-{
-  var vTree = this.getTree();
-  if (vTree) {
-    vTree.removeChildFromTreeQueue(this);
-  }
-}
-
-qx.Proto.addToCustomQueues = function(vHint)
-{
-  this.addToTreeQueue();
-
-  qx.ui.layout.BoxLayout.prototype.addToCustomQueues.call(this, vHint);
-}
-
-qx.Proto.removeFromCustomQueues = function(vHint)
-{
-  this.removeFromTreeQueue();
-
-  qx.ui.layout.BoxLayout.prototype.removeFromCustomQueues.call(this, vHint);
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPLAYBLE HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyParent = function(propValue, propOldValue, propData)
-{
-  qx.ui.layout.BoxLayout.prototype._modifyParent.call(this, propValue, propOldValue, propData);
-
-  // Be sure to update previous folder also if it is closed currently (plus/minus symbol)
-  if (propOldValue && !propOldValue.isDisplayable() && propOldValue.getParent() && propOldValue.getParent().isDisplayable()) {
-    propOldValue.getParent().addToTreeQueue();
-  }
-
-  // Be sure to update new folder also if it is closed currently (plus/minus symbol)
-  if (propValue && !propValue.isDisplayable() && propValue.getParent() && propValue.getParent().isDisplayable()) {
-    propValue.getParent().addToTreeQueue();
-  }
-
-  return true;
-}
-
-qx.Proto._handleDisplayableCustom = function(vDisplayable, vParent, vHint)
-{
-  qx.ui.layout.BoxLayout.prototype._handleDisplayableCustom.call(this, vDisplayable, vParent, vHint);
-
-  if (vHint)
-  {
-    var vParentFolder = this.getParentFolder();
-    var vPreviousParentFolder = this._previousParentFolder;
-
-    if (vPreviousParentFolder)
-    {
-      if (this._wasLastVisibleChild)
-      {
-        vPreviousParentFolder._updateIndent();
-      }
-      else if (!vPreviousParentFolder.hasContent())
-      {
-        vPreviousParentFolder.addToTreeQueue();
-      }
-    }
-
-    if (vParentFolder && vParentFolder.isDisplayable() && vParentFolder._initialLayoutDone) {
-      vParentFolder.addToTreeQueue();
-    }
-
-    if (this.isLastVisibleChild())
-    {
-      var vPrev = this.getPreviousVisibleSibling();
-
-      if (vPrev && vPrev instanceof qx.ui.tree.AbstractTreeElement) {
-        vPrev._updateIndent();
-      }
-    }
-
-    if (vDisplayable) {
-      this._updateIndent();
-    }
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT LISTENERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmousedown = function(e)
-{
-  this.getTree().getManager().handleMouseDown(this, e);
-  e.stopPropagation();
-}
-
-qx.Proto._onmouseup = qx.lang.Function.returnTrue;
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  TREE FLUSH
----------------------------------------------------------------------------
-*/
-
-qx.Proto.flushTree = function()
-{
-  // store informations for update process
-  this._previousParentFolder = this.getParentFolder();
-  this._wasLastVisibleChild = this.isLastVisibleChild();
-
-  // generate html for indent area
-  var vLevel = this.getLevel();
-  var vTree = this.getTree();
-  var vImage;
-  var vHtml = [];
-  var vCurrentObject = this;
-
-  for (var i=0; i<vLevel; i++)
-  {
-    vImage = vCurrentObject.getIndentSymbol(vTree.getUseTreeLines(), i==0);
-
-    if (vImage)
-    {
-      vHtml.push("<img style=\"position:absolute;top:0px;left:");
-      vHtml.push((vLevel-i-1) * 19);
-      vHtml.push("px\" src=\"");
-      vHtml.push(this.BASE_URI);
-      vHtml.push(vImage);
-      vHtml.push(".");
-      vHtml.push("gif");
-      vHtml.push("\" />");
-    }
-
-    vCurrentObject = vCurrentObject.getParentFolder();
-  }
-
-  this._indentObject.setHtml(vHtml.join(""));
-  this._indentObject.setWidth(vLevel * 19);
-}
-
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  if (this._indentObject)
-  {
-    this._indentObject.dispose();
-    this._indentObject = null;
-  }
-
-  if (this._iconObject)
-  {
-    this._iconObject.dispose();
-    this._iconObject = null;
-  }
-
-  if (this._labelObject)
-  {
-    this._labelObject.dispose();
-    this._labelObject = null;
-  }
-
-  this._previousParentFolder = null;
-
-  this.removeEventListener("mousedown", this._onmousedown);
-  this.removeEventListener("mouseup", this._onmouseup);
-
-  return qx.ui.layout.BoxLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/tree/Tree.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/tree/Tree.js
deleted file mode 100644 (file)
index 850891e..0000000
+++ /dev/null
@@ -1,400 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_tree)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.tree.Tree", qx.ui.tree.TreeFolder,
-function(vLabel, vIcon, vIconSelected)
-{
-  qx.ui.tree.TreeFolder.call(this, vLabel, vIcon, vIconSelected);
-
-  // ************************************************************************
-  //   INITILISIZE MANAGER
-  // ************************************************************************
-  this._manager = new qx.manager.selection.TreeSelectionManager(this);
-
-
-  this._iconObject.setAppearance("tree-icon");
-  this._labelObject.setAppearance("tree-label");
-
-
-  // ************************************************************************
-  //   DEFAULT STATE
-  // ************************************************************************
-  // The tree should be open by default
-  this.setOpen(true);
-
-  // Fix vertical alignment of empty tree
-  this.addToFolder();
-
-
-  // ************************************************************************
-  //   KEY EVENT LISTENER
-  // ************************************************************************
-  this.addEventListener("keydown", this._onkeydown);
-  this.addEventListener("keypress", this._onkeypress);
-  this.addEventListener("keyup", this._onkeyup);
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.addProperty({ name : "useDoubleClick", type : "boolean", defaultValue : false, getAlias : "useDoubleClick" });
-qx.OO.addProperty({ name : "useTreeLines", type : "boolean", defaultValue : true, getAlias : "useTreeLines" });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MANAGER BINDING
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getManager = function() {
-  return this._manager;
-}
-
-qx.Proto.getSelectedElement = function() {
-  return this.getManager().getSelectedItem();
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  QUEUE HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto.addChildToTreeQueue = function(vChild)
-{
-  if (!vChild._isInTreeQueue && !vChild._isDisplayable) {
-    this.debug("Ignoring invisible child: " + vChild);
-  }
-
-  if (!vChild._isInTreeQueue && vChild._isDisplayable)
-  {
-    qx.ui.core.Widget.addToGlobalWidgetQueue(this);
-
-    if (!this._treeQueue) {
-      this._treeQueue = {};
-    }
-
-    this._treeQueue[vChild.toHashCode()] = vChild;
-
-    vChild._isInTreeQueue = true;
-  }
-}
-
-qx.Proto.removeChildFromTreeQueue = function(vChild)
-{
-  if (vChild._isInTreeQueue)
-  {
-    if (this._treeQueue) {
-      delete this._treeQueue[vChild.toHashCode()];
-    }
-
-    delete vChild._isInTreeQueue;
-  }
-}
-
-qx.Proto.flushWidgetQueue = function() {
-  this.flushTreeQueue();
-}
-
-qx.Proto.flushTreeQueue = function()
-{
-  if (!qx.lang.Object.isEmpty(this._treeQueue))
-  {
-    for (var vHashCode in this._treeQueue)
-    {
-      // this.debug("Flushing Tree Child: " + this._treeQueue[vHashCode]);
-      this._treeQueue[vHashCode].flushTree();
-      delete this._treeQueue[vHashCode]._isInTreeQueue;
-    }
-
-    delete this._treeQueue;
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyUseTreeLines = function(propValue, propOldValue, propData)
-{
-  if (this._initialLayoutDone) {
-    this._updateIndent();
-  }
-
-  return true;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getTree = function() {
-  return this;
-}
-
-qx.Proto.getParentFolder = function() {
-  return null;
-}
-
-qx.Proto.getLevel = function() {
-  return 0;
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  COMMON CHECKERS
----------------------------------------------------------------------------
-*/
-
-qx.ui.tree.Tree.isTreeFolder = function(vObject) {
-  return vObject && vObject instanceof qx.ui.tree.TreeFolder && !(vObject instanceof qx.ui.tree.Tree);
-};
-
-qx.ui.tree.Tree.isOpenTreeFolder = function(vObject) {
-  return vObject instanceof qx.ui.tree.TreeFolder && vObject.getOpen() && vObject.hasContent();
-};
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onkeydown = function(e)
-{
-  var vSelectedItem = this.getManager().getSelectedItem();
-
-  if (e.getKeyIdentifier() == "Enter") {
-    e.preventDefault();
-
-    if (qx.ui.tree.Tree.isTreeFolder(vSelectedItem)) {
-      return vSelectedItem.toggle();
-    }
-  }
-};
-
-
-qx.Proto._onkeypress = function(e)
-{
-  var vManager = this.getManager();
-  var vSelectedItem = vManager.getSelectedItem();
-
-  switch(e.getKeyIdentifier())
-  {
-    case "Left":
-      e.preventDefault();
-
-      if (qx.ui.tree.Tree.isTreeFolder(vSelectedItem))
-      {
-        if (!vSelectedItem.getOpen())
-        {
-          var vParent = vSelectedItem.getParentFolder();
-          if (vParent instanceof qx.ui.tree.TreeFolder) {
-            if (!(vParent instanceof qx.ui.tree.Tree)) {
-              vParent.close();
-            }
-
-            this.setSelectedElement(vParent);
-          }
-        }
-        else
-        {
-          return vSelectedItem.close();
-        }
-      }
-      else if (vSelectedItem instanceof qx.ui.tree.TreeFile)
-      {
-        var vParent = vSelectedItem.getParentFolder();
-        if (vParent instanceof qx.ui.tree.TreeFolder) {
-          if (!(vParent instanceof qx.ui.tree.Tree)) {
-            vParent.close();
-          }
-
-          this.setSelectedElement(vParent);
-        }
-      }
-
-      break;
-
-    case "Right":
-      e.preventDefault();
-
-      if (qx.ui.tree.Tree.isTreeFolder(vSelectedItem))
-      {
-        if (!vSelectedItem.getOpen())
-        {
-          return vSelectedItem.open();
-        }
-        else if (vSelectedItem.hasContent())
-        {
-          var vFirst = vSelectedItem.getFirstVisibleChildOfFolder();
-          this.setSelectedElement(vFirst);
-
-          if (vFirst instanceof qx.ui.tree.TreeFolder) {
-            vFirst.open();
-          }
-
-          return;
-        }
-      }
-
-      break;
-
-    default:
-      if (!this._fastUpdate)
-      {
-        this._fastUpdate = true;
-        this._oldItem = vSelectedItem;
-      }
-
-      vManager.handleKeyPress(e);
-  }
-};
-
-
-qx.Proto._onkeyup = function(e)
-{
-  if (this._fastUpdate)
-  {
-    var vOldItem = this._oldItem;
-    var vNewItem = this.getManager().getSelectedItem();
-
-    vNewItem.getIconObject().addState("selected");
-
-    delete this._fastUpdate;
-    delete this._oldItem;
-  }
-};
-
-
-qx.Proto.getLastTreeChild = function()
-{
-  var vLast = this;
-
-  while (vLast instanceof qx.ui.tree.AbstractTreeElement)
-  {
-    if (!(vLast instanceof qx.ui.tree.TreeFolder) || !vLast.getOpen()) {
-      return vLast;
-    }
-
-    vLast = vLast.getLastVisibleChildOfFolder();
-  }
-
-  return null;
-};
-
-
-qx.Proto.getFirstTreeChild = function() {
-  return this;
-};
-
-
-qx.Proto.setSelectedElement = function(vElement)
-{
-  var vManager = this.getManager();
-
-  vManager.setSelectedItem(vElement);
-  vManager.setLeadItem(vElement);
-};
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this.removeEventListener("keydown", this._onkeydown);
-  this.removeEventListener("keypress", this._onkeypress);
-  this.removeEventListener("keyup", this._onkeyup);
-
-  if (this._manager)
-  {
-    this._manager.dispose();
-    this._manager = null;
-  }
-
-  delete this._oldItem;
-
-  return qx.ui.tree.TreeFolder.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/tree/TreeFile.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/tree/TreeFile.js
deleted file mode 100644 (file)
index 8c74fa1..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_tree)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.tree.TreeFile", qx.ui.tree.AbstractTreeElement,
-function(vLabel, vIcon, vIconSelected) {
-  qx.ui.tree.AbstractTreeElement.call(this, vLabel, vIcon, vIconSelected);
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  INDENT HELPER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getIndentSymbol = function(vUseTreeLines, vIsLastColumn)
-{
-  if (vUseTreeLines)
-  {
-    if (vIsLastColumn)
-    {
-      return this.isLastChild() ? "end" : "cross";
-    }
-    else
-    {
-      return "line";
-    }
-  }
-
-  return null;
-}
-
-qx.Proto._updateIndent = function() {
-  this.addToTreeQueue();
-}
-
-qx.Proto.getItems = function() {
-  return [this];
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/tree/TreeFolder.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/tree/TreeFolder.js
deleted file mode 100644 (file)
index 236a776..0000000
+++ /dev/null
@@ -1,624 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_tree)
-#embed(qx.icontheme/16/status/folder-open.png)
-#embed(qx.icontheme/16/places/folder.png)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.tree.TreeFolder", qx.ui.tree.AbstractTreeElement,
-function(vLabel, vIcon, vIconSelected)
-{
-  qx.ui.tree.AbstractTreeElement.call(this, vLabel, vIcon, vIconSelected);
-
-  this._iconObject.setAppearance("tree-folder-icon");
-  this._labelObject.setAppearance("tree-folder-label");
-
-  this.addEventListener("dblclick", this._ondblclick);
-
-  // Remapping of add/remove methods
-  this.add = this.addToFolder;
-  this.addBefore = this.addBeforeToFolder;
-  this.addAfter = this.addAfterToFolder;
-  this.addAt = this.addAtToFolder;
-  this.addAtBegin = this.addAtBeginToFolder;
-  this.addAtEnd = this.addAtEndToFolder;
-  this.remove = this.removeFromFolder;
-});
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "tree-folder" });
-qx.OO.changeProperty({ name : "icon", type : "string" });
-qx.OO.changeProperty({ name : "iconSelected", type : "string" });
-
-qx.OO.addProperty({ name : "open", type : "boolean", defaultValue : false });
-qx.OO.addProperty({ name : "alwaysShowPlusMinusSymbol", type : "boolean", defaultValue : false });
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.hasContent = function() {
-  return this._containerObject && this._containerObject.getChildrenLength() > 0;
-}
-
-qx.Proto.open = function()
-{
-  if (this.getOpen()) {
-    return;
-  }
-
-  if (this.hasContent() && this.isSeeable())
-  {
-    this.getTopLevelWidget().setGlobalCursor("progress");
-    qx.client.Timer.once(this._openCallback, this, 0);
-  }
-  else
-  {
-    this.setOpen(true);
-  }
-}
-
-qx.Proto.close = function() {
-  this.setOpen(false);
-}
-
-qx.Proto.toggle = function() {
-  this.getOpen() ? this.close() : this.open();
-}
-
-qx.Proto._openCallback = function()
-{
-  this.setOpen(true);
-  qx.ui.core.Widget.flushGlobalQueues();
-  this.getTopLevelWidget().setGlobalCursor(null);
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CHILDREN HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._createChildrenStructure = function()
-{
-  this.setAppearance(this instanceof qx.ui.tree.Tree ? "tree-container" : "tree-folder-container");
-
-  if (!this._horizontalLayout)
-  {
-    this.setOrientation("vertical");
-
-    this._horizontalLayout = new qx.ui.layout.HorizontalBoxLayout;
-    this._horizontalLayout.setWidth(null);
-    this._horizontalLayout.setParent(this);
-    this._horizontalLayout.setAnonymous(true);
-    this._horizontalLayout.setAppearance(this instanceof qx.ui.tree.Tree ? "tree" : "tree-folder");
-
-    this._indentObject.setParent(this._horizontalLayout);
-    this._iconObject.setParent(this._horizontalLayout);
-    this._labelObject.setParent(this._horizontalLayout);
-  }
-
-  if (!this._containerObject)
-  {
-    this._containerObject = new qx.ui.layout.VerticalBoxLayout;
-    this._containerObject.setWidth(null);
-    this._containerObject.setAnonymous(true);
-
-    // it should be faster to first handle display,
-    // because the default display value is true and if we first
-    // setup the parent the logic do all to make the
-    // widget first visible and then, if the folder is not
-    // opened again invisible.
-    this._containerObject.setDisplay(this.getOpen());
-    this._containerObject.setParent(this);
-
-    // remap remove* functions
-    this.remapChildrenHandlingTo(this._containerObject);
-  }
-}
-
-qx.Proto._handleChildMove = function(vChild, vRelationIndex, vRelationChild)
-{
-  if (vChild.isDisplayable())
-  {
-    var vChildren = this._containerObject.getChildren();
-    var vOldChildIndex = vChildren.indexOf(vChild);
-
-    if (vOldChildIndex != -1)
-    {
-      if (vRelationChild) {
-        vRelationIndex = vChildren.indexOf(vRelationChild);
-      }
-
-      if (vRelationIndex == vChildren.length-1)
-      {
-        vChild._updateIndent();
-
-        // Update indent of previous last child
-        this._containerObject.getLastVisibleChild()._updateIndent();
-      }
-      else if (vChild._wasLastVisibleChild)
-      {
-        vChild._updateIndent();
-
-        // Update indent for new last child
-        var vPreviousSibling = vChild.getPreviousVisibleSibling();
-        if (vPreviousSibling) {
-          vPreviousSibling._updateIndent();
-        }
-      }
-    }
-  }
-}
-
-qx.Proto.addToFolder = function()
-{
-  this._createChildrenStructure();
-
-  if (this._containerObject) {
-    return this._containerObject.add.apply(this._containerObject, arguments);
-  }
-}
-
-qx.Proto.addBeforeToFolder = function(vChild, vBefore)
-{
-  this._createChildrenStructure();
-
-  if (this._containerObject)
-  {
-    this._handleChildMove(vChild, null, vBefore);
-    return this._containerObject.addBefore.apply(this._containerObject, arguments);
-  }
-}
-
-qx.Proto.addAfterToFolder = function(vChild, vAfter)
-{
-  this._createChildrenStructure();
-
-  if (this._containerObject)
-  {
-    this._handleChildMove(vChild, null, vAfter);
-    return this._containerObject.addAfter.apply(this._containerObject, arguments);
-  }
-}
-
-qx.Proto.addAtToFolder = function(vChild, vIndex)
-{
-  this._createChildrenStructure();
-
-  if (this._containerObject)
-  {
-    this._handleChildMove(vChild, vIndex);
-    return this._containerObject.addAt.apply(this._containerObject, arguments);
-  }
-}
-
-qx.Proto.addAtBeginToFolder = function(vChild) {
-  return this.addAtToFolder(vChild, 0);
-}
-
-qx.Proto.addAtEndToFolder = function(vChild)
-{
-  this._createChildrenStructure();
-
-  if (this._containerObject)
-  {
-    var vLast = this._containerObject.getLastChild();
-
-    if (vLast)
-    {
-      this._handleChildMove(vChild, null, vLast);
-      return this._containerObject.addAfter.call(this._containerObject, vChild, vLast);
-    }
-    else
-    {
-      return this.addAtBeginToFolder(vChild);
-    }
-  }
-}
-
-qx.Proto._remappingChildTable = [ "remove", "removeAt", "removeAll" ];
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CHILDREN UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getContainerObject = function() {
-  return this._containerObject;
-}
-
-qx.Proto.getHorizontalLayout = function() {
-  return this._horizontalLayout;
-}
-
-qx.Proto.getFirstVisibleChildOfFolder = function()
-{
-  if (this._containerObject) {
-    return this._containerObject.getFirstChild();
-  }
-}
-
-qx.Proto.getLastVisibleChildOfFolder = function()
-{
-  if (this._containerObject) {
-    return this._containerObject.getLastChild();
-  }
-}
-
-qx.Proto.getItems = function(recursive, invisible)
-{
-  var a = [this];
-
-  if (this._containerObject)
-  {
-    var ch = invisible == true ? this._containerObject.getChildren() : this._containerObject.getVisibleChildren();
-
-    if (recursive == false)
-    {
-      a = a.concat(ch);
-    }
-    else
-    {
-      for (var i=0, chl=ch.length; i<chl; i++) {
-        a = a.concat(ch[i].getItems(recursive, invisible));
-      }
-    }
-  }
-
-  return a;
-}
-
-/**
- * <p>deselects, disconnects, removes and disposes the
- *    content of the folder and its subfolders.
- * </p>
- *
- * <p>the current items subitems (and the subitems of each
- * subitem) are destroyed going top down the TreeFolder
- * hierarchy. The current item is left as is.
- * </p>
- */
-qx.Proto.destroyContent = function()
-{
-  if(!this.hasContent()) {
-    return;
-  }
-
-  var manager = this.getTree() ? this.getTree().getManager() : null;
-
-  var leadItem;
-  var anchorItem;
-  if(manager) {
-    leadItem = manager.getLeadItem();
-    anchorItem = manager.getAnchorItem();
-  }
-
-  // set the container objects display property
-  // to true so getChildren will retreive all
-  // children objects
-  this._containerObject.setDisplay(true);
-  var items = this._containerObject.getChildren();
-  var item;
-
-  for(var i=items.length-1;i>=0;--i) {
-    item = items[i];
-
-    // this.getItems seems to also contain "this".
-    // In order to avoid endless loops by calling
-    // recursively destroyContent we have to avoid
-    // destroying ourselves
-    if(item != this) {
-      if(manager) {
-        // set the leadItem to null if the current
-        // destroyed item is the leadItem
-        if(leadItem == item) {
-          manager.setLeadItem(null);
-        }
-        // set the anchorItem to null if the current
-        // destroyed item is the anchorItem
-        if(anchorItem == item) {
-          manager.setAnchorItem(null);
-        }
-
-        // if the current destroyed item is
-        // selected, deselect the item. If we are
-        // in single selection mode we have to
-        // call deselectAll because setItemSelected
-        // refuses to deselect in this case
-        if(manager.getItemSelected(item)) {
-          if(manager.getMultiSelection()) {
-            manager.setItemSelected(item,false);
-          }
-          else {
-            manager.deselectAll();
-          }
-        }
-
-        // if the item has the method destroyContent defined
-        // then it is a TreeFolder (and it's subclasses)
-        // which potentially have content which also
-        // has to be destroyed
-        if (item.destroyContent) {
-          item.destroyContent();
-        }
-      }
-
-      // first disconnect the item so rendering
-      // of the tree lines can be done correctly
-      item.removeFromTreeQueue();
-      item.disconnect();
-
-      // remove the item from the containerObject
-      this._containerObject.remove(item);
-      item.dispose();
-      delete items[i];
-    }
-  }
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._evalCurrentIcon = function()
-{
-  if (this.getSelected()) {
-    return this.getIconSelected() || "icon/16/status/folder-open.png";
-  } else {
-    return this.getIcon() || "icon/16/places/folder.png";
-  }
-}
-
-qx.Proto._modifyOpen = function(propValue, propOldValue, propData)
-{
-  this._updateLastColumn();
-
-  if (this._containerObject) {
-    this._containerObject.setDisplay(propValue);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyAlwaysShowPlusMinusSymbol = function(propValue, propOldValue, propData)
-{
-  this._updateLastColumn();
-
-  return true;
-}
-
-qx.Proto._updateLastColumn = function()
-{
-  if (this._indentObject)
-  {
-    var vElement = this._indentObject.getElement();
-
-    if (vElement && vElement.firstChild) {
-      vElement.firstChild.src = this.BASE_URI + this.getIndentSymbol(this.getTree().getUseTreeLines(), true) + ".gif";
-    }
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT LISTENERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmousedown = function(e)
-{
-  var vOriginalTarget = e.getOriginalTarget();
-
-  switch(vOriginalTarget)
-  {
-    case this._indentObject:
-      if (this._indentObject.getElement().firstChild == e.getDomTarget())
-      {
-        this.toggle();
-
-        // Only if we just get closed and the current selection is inside of this node.
-        if (!this.getOpen())
-        {
-          if(qx.lang.Array.contains(this.getItems(true, true), this.getTree().getSelectedElement())) {
-            this.getTree().getManager().handleMouseDown(this, e);
-          }
-        }
-      }
-
-      break;
-
-    case this._containerObject:
-      break;
-
-    case this:
-      if (this._containerObject) {
-        break;
-      }
-
-      // no break here
-
-    default:
-      this.getTree().getManager().handleMouseDown(this, e);
-  }
-
-  e.stopPropagation();
-}
-
-qx.Proto._onmouseup = function(e)
-{
-  var vOriginalTarget = e.getOriginalTarget();
-
-  switch(vOriginalTarget)
-  {
-    case this._indentObject:
-    case this._containerObject:
-    case this:
-      break;
-
-    default:
-      if (!this.getTree().getUseDoubleClick()) {
-        this.open();
-      }
-  }
-}
-
-qx.Proto._ondblclick = function(e)
-{
-  if (!this.getTree().getUseDoubleClick()) {
-    return;
-  }
-
-  this.toggle();
-  e.stopPropagation();
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  INDENT HELPER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getIndentSymbol = function(vUseTreeLines, vIsLastColumn)
-{
-  if (vIsLastColumn)
-  {
-    if (this.hasContent() || this.getAlwaysShowPlusMinusSymbol())
-    {
-      if (!vUseTreeLines)
-      {
-        return this.getOpen() ? "minus" : "plus";
-      }
-      else if (this.isLastChild())
-      {
-        return this.getOpen() ? "end_minus" : "end_plus";
-      }
-      else
-      {
-        return this.getOpen() ? "cross_minus" : "cross_plus";
-      }
-    }
-    else if (vUseTreeLines)
-    {
-      return this.isLastChild() ? "end" : "cross";
-    }
-  }
-  else
-  {
-    return vUseTreeLines && !this.isLastChild() ? "line" : null;
-  }
-}
-
-qx.Proto._updateIndent = function()
-{
-  // Intentionally bypass superclass; the _updateIndent we want is in TreeFile
-  qx.ui.tree.TreeFile.prototype._updateIndent.call(this);
-
-  if (!this._containerObject) {
-    return;
-  }
-
-  var ch = this._containerObject.getVisibleChildren();
-  for (var i=0, l=ch.length; i<l; i++) {
-    ch[i]._updateIndent();
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this.removeEventListener("dblclick", this._ondblclick);
-
-  if (this._horizontalLayout)
-  {
-    this._horizontalLayout.dispose();
-    this._horizontalLayout = null;
-  }
-
-  if (this._containerObject)
-  {
-    this._containerObject.dispose();
-    this._containerObject = null;
-  }
-
-  return qx.ui.tree.AbstractTreeElement.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/AbstractTreeElement.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/AbstractTreeElement.js
deleted file mode 100644 (file)
index 17a9ba8..0000000
+++ /dev/null
@@ -1,532 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-     2006 Derrell Lipman
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Derrell Lipman (derrell)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_treefullcontrol)
-#embed(qx.widgettheme/tree/*)
-#embed(qx.icontheme/16/actions/document-new.png)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.treefullcontrol.AbstractTreeElement", qx.ui.layout.BoxLayout,
-function(treeRowStructure)
-{
-  if (this.classname == qx.ui.treefullcontrol.AbstractTreeElement.ABSTRACT_CLASS) {
-    throw new Error("Please omit the usage of qx.ui.treefullcontrol.AbstractTreeElement directly. Choose between qx.ui.treefullcontrol.TreeFolder, qx.ui.treefullcontrol.TreeFolderSimple, qx.ui.treefullcontrol.TreeFile and qx.ui.treefullcontrol.TreeFileSimple instead!");
-  }
-
-  if (treeRowStructure !== qx.ui.treefullcontrol.TreeRowStructure.getInstance())
-  {
-    throw new Error("A qx.ui.treefullcontrol.TreeRowStructure parameter is required.");
-  }
-
-  // Precreate subwidgets
-  this._indentObject = treeRowStructure._indentObject;
-  this._iconObject = treeRowStructure._iconObject;
-  this._labelObject = treeRowStructure._labelObject;
-
-  // Make anonymous
-  this._indentObject.setAnonymous(true);
-  this._iconObject.setAnonymous(true);
-  this._labelObject.setAnonymous(true);
-
-  // Behaviour and Hard Styling
-  this._labelObject.setSelectable(false);
-  this._labelObject.setStyleProperty("lineHeight",
-                                     "100%");
-
-  qx.ui.layout.BoxLayout.call(this, "horizontal");
-
-  if (qx.util.Validation.isValid(treeRowStructure._label)) {
-    this.setLabel(treeRowStructure._label);
-  }
-
-  // Prohibit selection
-  this.setSelectable(false);
-
-  // Base URL used for indent images
-  this.BASE_URI = qx.manager.object.AliasManager.getInstance().resolvePath("widget/tree/");
-
-  /*
-   * Add all of the objects which are to be in the horizontal layout.
-   */
-  for (var i = 0; i < treeRowStructure._fields.length; i++)
-  {
-    this.add(treeRowStructure._fields[i]);
-  }
-
-  // Set Icons
-  if ((treeRowStructure._icons.unselected != null) &&
-      (qx.util.Validation.isValidString(treeRowStructure._icons.unselected))) {
-    this.setIcon(treeRowStructure._icons.unselected);
-    this.setIconSelected(treeRowStructure._icons.unselected);
-  }
-  if ((treeRowStructure._icons.selected != null) &&
-      (qx.util.Validation.isValidString(treeRowStructure._icons.selected))) {
-    this.setIconSelected(treeRowStructure._icons.selected);
-  }
-
-  // Setup initial icon
-  this._iconObject.setSource(this._evalCurrentIcon());
-
-  // Set Appearance
-  this._iconObject.setAppearance("tree-element-icon");
-  this._labelObject.setAppearance("tree-element-label");
-
-  // Register event listeners
-  this.addEventListener("mousedown", this._onmousedown);
-  this.addEventListener("mouseup", this._onmouseup);
-});
-
-qx.ui.treefullcontrol.AbstractTreeElement.ABSTRACT_CLASS = "qx.ui.treefullcontrol.AbstractTreeElement";
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.changeProperty({ name : "appearance",
-                       type : "string",
-                       defaultValue : "tree-element"
-                     });
-
-/*!
-  The icons
-*/
-qx.OO.addProperty({ name : "icon",
-                    type : "string"
-                  });
-
-qx.OO.addProperty({ name : "iconSelected",
-                    type : "string"
-                  });
-
-/*!
-  The label/caption/text of the qx.ui.basic.Atom instance
-*/
-qx.OO.addProperty({ name : "label"
-                  });
-
-/*!
-  Selected property
-*/
-qx.OO.addProperty({ name : "selected",
-                    type : "boolean",
-                    defaultValue : false
-                  });
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyLabel = function(propValue, propOldValue, propData)
-{
-  if (this._labelObject) {
-    this._labelObject.setHtml(propValue);
-  }
-
-  return true;
-}
-
-qx.Proto._modifySelected = function(propValue, propOldValue, propData)
-{
-  if (propValue) {
-    this.addState("selected");
-    this._labelObject.addState("selected");
-  } else {
-    this.removeState("selected");
-    this._labelObject.removeState("selected");
-  }
-
-  var vTree = this.getTree();
-  if (!vTree._fastUpdate ||
-      (propOldValue && vTree._oldItem == this)) {
-    this._iconObject.setSource(this._evalCurrentIcon());
-
-    if (propValue) {
-      this._iconObject.addState("selected");
-    } else {
-      this._iconObject.removeState("selected");
-    }
-  }
-
-  var vManager = this.getTree().getManager();
-
-  if (propOldValue && vManager.getSelectedItem() == this)
-  {
-    vManager.deselectAll();
-  }
-  else if (propValue && vManager.getSelectedItem() != this)
-  {
-    vManager.setSelectedItem(this);
-  }
-
-  return true;
-}
-
-qx.Proto._evalCurrentIcon = function()
-{
-  if (this.getSelected() && this.getIconSelected()) {
-    return this.getIconSelected();
-  } else {
-    return this.getIcon() || "icon/16/actions/document-new.png";
-  }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getParentFolder = function()
-{
-  try {
-    return this.getParent().getParent();
-  } catch(ex) {}
-
-  return null;
-}
-
-qx.Proto.getLevel = function()
-{
-  var vParentFolder = this.getParentFolder();
-  return vParentFolder ? vParentFolder.getLevel() + 1 : null;
-}
-
-qx.Proto.getTree = function()
-{
-  var vParentFolder = this.getParentFolder();
-  return vParentFolder ? vParentFolder.getTree() : null;
-}
-
-qx.Proto.getIndentObject = function() {
-  return this._indentObject;
-}
-
-qx.Proto.getIconObject = function() {
-  return this._iconObject;
-}
-
-qx.Proto.getLabelObject = function() {
-  return this._labelObject;
-}
-
-/**
- * Obtain the entire hierarchy of labels from the root down to the current
- * node.
- *
- * @param
- *   vArr -
- *     When called by the user, arr should typically be an empty array.  Each
- *     level from the current node upwards will push its label onto the array.
- */
-qx.Proto.getHierarchy = function(vArr) {
-  // Add our label to the array
-  if (this._labelObject) {
-    vArr.unshift(this._labelObject.getHtml());
-  }
-
-  // Get the parent folder
-  var parent = this.getParentFolder();
-
-  // If it exists...
-  if (parent) {
-    // ... then add it and its ancestors' labels to the array.
-    parent.getHierarchy(vArr);
-  }
-
-  // Give 'em what they came for
-  return vArr;
-}
-
-
-
-
-/*
----------------------------------------------------------------------------
-  QUEUE HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto.addToTreeQueue = function()
-{
-  var vTree = this.getTree();
-  if (vTree) {
-    vTree.addChildToTreeQueue(this);
-  }
-}
-
-qx.Proto.removeFromTreeQueue = function()
-{
-  var vTree = this.getTree();
-  if (vTree) {
-    vTree.removeChildFromTreeQueue(this);
-  }
-}
-
-qx.Proto.addToCustomQueues = function(vHint)
-{
-  this.addToTreeQueue();
-
-  qx.ui.layout.BoxLayout.prototype.addToCustomQueues.call(this, vHint);
-}
-
-qx.Proto.removeFromCustomQueues = function(vHint)
-{
-  this.removeFromTreeQueue();
-
-  qx.ui.layout.BoxLayout.prototype.removeFromCustomQueues.call(this, vHint);
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPLAYBLE HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyParent = function(propValue, propOldValue, propData)
-{
-  qx.ui.layout.BoxLayout.prototype._modifyParent.call(this, propValue, propOldValue, propData);
-
-  // Be sure to update previous folder also if it is closed currently
-  // (plus/minus symbol)
-  if (propOldValue &&
-      !propOldValue.isDisplayable() &&
-      propOldValue.getParent() &&
-      propOldValue.getParent().isDisplayable()) {
-    propOldValue.getParent().addToTreeQueue();
-  }
-
-  // Be sure to update new folder also if it is closed currently
-  // (plus/minus symbol)
-  if (propValue &&
-      !propValue.isDisplayable() &&
-      propValue.getParent() &&
-      propValue.getParent().isDisplayable()) {
-    propValue.getParent().addToTreeQueue();
-  }
-
-  return true;
-}
-
-qx.Proto._handleDisplayableCustom = function(vDisplayable, vParent, vHint)
-{
-  qx.ui.layout.BoxLayout.prototype._handleDisplayableCustom.call(this,
-                                                                 vDisplayable,
-                                                                 vParent,
-                                                                 vHint);
-
-  if (vHint)
-  {
-    var vParentFolder = this.getParentFolder();
-    var vPreviousParentFolder = this._previousParentFolder;
-
-    if (vPreviousParentFolder)
-    {
-      if (this._wasLastVisibleChild)
-      {
-        vPreviousParentFolder._updateIndent();
-      }
-      else if (!vPreviousParentFolder.hasContent())
-      {
-        vPreviousParentFolder.addToTreeQueue();
-      }
-    }
-
-    if (vParentFolder &&
-        vParentFolder.isDisplayable() &&
-        vParentFolder._initialLayoutDone) {
-      vParentFolder.addToTreeQueue();
-    }
-
-    if (this.isLastVisibleChild())
-    {
-      var vPrev = this.getPreviousVisibleSibling();
-
-      if (vPrev &&
-          vPrev instanceof qx.ui.treefullcontrol.AbstractTreeElement) {
-        vPrev._updateIndent();
-      }
-    }
-
-    if (vDisplayable) {
-      this._updateIndent();
-    }
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT LISTENERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmousedown = function(e)
-{
-  this.getTree().getManager().handleMouseDown(this, e);
-  e.stopPropagation();
-}
-
-qx.Proto._onmouseup = qx.lang.Function.returnTrue;
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  TREE FLUSH
----------------------------------------------------------------------------
-*/
-
-qx.Proto.flushTree = function()
-{
-  // store information for update process
-  this._previousParentFolder = this.getParentFolder();
-  this._wasLastVisibleChild = this.isLastVisibleChild();
-
-  // generate html for indent area
-  var vLevel = this.getLevel();
-  var vTree = this.getTree();
-  var vImage;
-  var vHtml = [];
-  var vCurrentObject = this;
-  var vMinLevel = 0;
-  var vMaxLevel = vLevel;
-
-  // If we're displaying the open/close button for the root node (normal)...
-  if (vTree.getRootOpenClose()) {
-    // ... then we need one more level
-    vMaxLevel = vLevel + 1;
-  }
-
-  // If we're not displaying the root node (creating virtual roots)...
-  if (vTree.hideNode()) {
-    // ... then start one level higher
-    vMinLevel = 1;
-  }
-
-  for (var i=vMinLevel; i<vMaxLevel; i++)
-  {
-    vImage = vCurrentObject.getIndentSymbol(vTree.getUseTreeLines(),
-                                            i,
-                                            vMinLevel,
-                                            vMaxLevel);
-
-    if (vImage)
-    {
-      vHtml.push("<img style=\"position:absolute;top:0px;left:");
-
-      // location of image; Root's image could be left of margin (invisible)
-      vHtml.push((vMaxLevel-i-1) * 19);
-
-      vHtml.push("px\" src=\"");
-      vHtml.push(this.BASE_URI);
-      vHtml.push(vImage);
-      vHtml.push(".");
-      vHtml.push("gif");
-      vHtml.push("\" />");
-    }
-
-    vCurrentObject = vCurrentObject.getParentFolder();
-  }
-
-  this._indentObject.setHtml(vHtml.join(""));
-  this._indentObject.setWidth((vMaxLevel - vMinLevel) * 19);
-}
-
-
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  if (this._indentObject)
-  {
-    this._indentObject.dispose();
-    this._indentObject = null;
-  }
-
-  if (this._iconObject)
-  {
-    this._iconObject.dispose();
-    this._iconObject = null;
-  }
-
-  if (this._labelObject)
-  {
-    this._labelObject.dispose();
-    this._labelObject = null;
-  }
-
-  this._previousParentFolder = null;
-
-  this.removeEventListener("mousedown", this._onmousedown);
-  this.removeEventListener("mouseup", this._onmouseup);
-
-  return qx.ui.layout.BoxLayout.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/Tree.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/Tree.js
deleted file mode 100644 (file)
index e29e067..0000000
+++ /dev/null
@@ -1,541 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-     2006 Derrell Lipman
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Derrell Lipman (derrell)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_treefullcontrol)
-
-************************************************************************ */
-
-/**
- * qx.ui.treefullcontrol.Tree objects are tree root nodes but act like
- * TreeFolder.
- *
- * @param treeRowStructure An instance of qx.ui.treefullcontrol.TreeRowStructure,
- *   defining the structure of this tree row.
- */
-qx.OO.defineClass("qx.ui.treefullcontrol.Tree", qx.ui.treefullcontrol.TreeFolder,
-function(treeRowStructure)
-{
-  qx.ui.treefullcontrol.TreeFolder.call(this, treeRowStructure);
-
-  // ************************************************************************
-  //   INITILISIZE MANAGER
-  // ************************************************************************
-  this._manager = new qx.manager.selection.TreeFullControlSelectionManager(this);
-
-
-  this._iconObject.setAppearance("tree-icon");
-  this._labelObject.setAppearance("tree-label");
-
-
-  // ************************************************************************
-  //   DEFAULT STATE
-  // ************************************************************************
-  // The tree should be open by default
-  this.setOpen(true);
-
-  // Fix vertical alignment of empty tree
-  this.addToFolder();
-
-
-  // ************************************************************************
-  //   KEY EVENT LISTENER
-  // ************************************************************************
-  this.addEventListener("keydown", this._onkeydown);
-  this.addEventListener("keypress", this._onkeypress);
-  this.addEventListener("keyup", this._onkeyup);
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-qx.OO.addProperty({ name : "useDoubleClick",
-                    type : "boolean",
-                    defaultValue : false,
-                    getAlias : "useDoubleClick"
-                  });
-
-qx.OO.addProperty({ name : "useTreeLines",
-                    type : "boolean",
-                    defaultValue : true,
-                    getAlias : "useTreeLines"
-                  });
-
-/*!
-  In specific applications, it is desirable to omit tree lines for only
-  certain indentation levels.  This property provides an array wherein the
-  index of the array corresponds to the indentation level, counted from left
-  to right; and the value of that element, if it contains, specifically, the
-  boolean value <i>true</i>, indicates that tree lines at that indentation
-  level are to be omitted.  Any value of that element other than <i>true</i>,
-  or if an indentation level's index does not exist in the array, means that
-  tree lines should be displayed for that indentation level.  (There are some
-  minor code efficiencies that are realized if this array is empty, so after
-  having set an element to <i>true</i> and desiring to reset the default
-  behavior, you should 'delete' the element rather than setting it to some
-  value other than <i>true</i>.)
-
-  If useTreeLines is <i>false</i>, then all tree lines are excluded and this
-  property is ignored.
-*/
-qx.OO.addProperty({ name : "excludeSpecificTreeLines",
-                    type : "object",
-                    defaultValue : []
-                  });
-
-/*!
-  Hide the root (Tree) node.  This differs from the visibility property in
-  that this property hides *only* the current node, not the node's children.
-*/
-qx.OO.addProperty({ name : "hideNode",
-                    type : "boolean",
-                    defaultValue : false,
-                    getAlias : "hideNode"
-                  });
-
-/*!
-  Whether the Root should have an open/close button.  This may also be
-  used in conjunction with the hideNode property to provide for virtual root
-  nodes.  In the latter case, be very sure that the virtual root nodes are
-  expanded programatically, since there will be no open/close button for the
-  user to open them.
-*/
-qx.OO.addProperty({ name : "rootOpenClose",
-                    type : "boolean",
-                    defaultValue : true
-                  });
-
-
-/*
----------------------------------------------------------------------------
-  MANAGER BINDING
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getManager = function() {
-  return this._manager;
-}
-
-qx.Proto.getSelectedElement = function() {
-  return this.getManager().getSelectedItems()[0];
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  QUEUE HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto.addChildToTreeQueue = function(vChild)
-{
-  if (!vChild._isInTreeQueue && !vChild._isDisplayable) {
-    this.debug("Ignoring invisible child: " + vChild);
-  }
-
-  if (!vChild._isInTreeQueue && vChild._isDisplayable)
-  {
-    qx.ui.core.Widget.addToGlobalWidgetQueue(this);
-
-    if (!this._treeQueue) {
-      this._treeQueue = {};
-    }
-
-    this._treeQueue[vChild.toHashCode()] = vChild;
-
-    vChild._isInTreeQueue = true;
-  }
-}
-
-qx.Proto.removeChildFromTreeQueue = function(vChild)
-{
-  if (vChild._isInTreeQueue)
-  {
-    if (this._treeQueue) {
-      delete this._treeQueue[vChild.toHashCode()];
-    }
-
-    delete vChild._isInTreeQueue;
-  }
-}
-
-qx.Proto.flushWidgetQueue = function() {
-  this.flushTreeQueue();
-}
-
-qx.Proto.flushTreeQueue = function()
-{
-  if (!qx.lang.Object.isEmpty(this._treeQueue))
-  {
-    for (var vHashCode in this._treeQueue)
-    {
-      // this.debug("Flushing Tree Child: " + this._treeQueue[vHashCode]);
-      this._treeQueue[vHashCode].flushTree();
-      delete this._treeQueue[vHashCode]._isInTreeQueue;
-    }
-
-    delete this._treeQueue;
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyUseTreeLines = function(propValue, propOldValue, propData)
-{
-  if (this._initialLayoutDone) {
-    this._updateIndent();
-  }
-
-  return true;
-}
-
-qx.Proto._modifyHideNode = function(propValue, propOldValue, propData)
-{
-  if (! propValue) {
-    this._horizontalLayout.setHeight(this._horizontalLayout.originalHeight);
-    this._horizontalLayout.show();
-  } else {
-    this._horizontalLayout.originalHeight = this._horizontalLayout.getHeight();
-    this._horizontalLayout.setHeight(0);
-    this._horizontalLayout.hide();
-  }
-
-  if (this._initialLayoutDone) {
-    this._updateIndent();
-  }
-
-  return true;
-}
-
-qx.Proto._modifyRootOpenClose = function(propValue, propOldValue, propData)
-{
-  if (this._initialLayoutDone) {
-    this._updateIndent();
-  }
-
-  return true;
-}
-
-// Override getter so we can return a clone of the array.  Otherwise, the
-// setter finds the identical array (after user modifications) and the modify
-// function doesn't get called.
-qx.Proto.getExcludeSpecificTreeLines = function()
-{
-  var vName = "excludeSpecificTreeLines";
-  var vUpName = qx.lang.String.toFirstUp(vName);
-  var vStorageField = "_value" + vUpName;
-
-  return this[vStorageField].slice(0);
-}
-
-qx.Proto._modifyExcludeSpecificTreeLines = function(propValue,
-                                                    propOldValue,
-                                                    propData)
-{
-  if (this._initialLayoutDone) {
-    this._updateIndent();
-  }
-
-  return true;
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getTree = function() {
-  return this;
-}
-
-qx.Proto.getParentFolder = function() {
-  return null;
-}
-
-qx.Proto.getLevel = function() {
-  return 0;
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  COMMON CHECKERS
----------------------------------------------------------------------------
-*/
-
-qx.ui.treefullcontrol.Tree.isTreeFolder = function(vObject) {
-  return (vObject &&
-          vObject instanceof qx.ui.treefullcontrol.TreeFolder &&
-          !(vObject instanceof qx.ui.treefullcontrol.Tree));
-}
-
-qx.ui.treefullcontrol.Tree.isOpenTreeFolder = function(vObject) {
-  return (vObject instanceof qx.ui.treefullcontrol.TreeFolder &&
-          vObject.getOpen() &&
-          vObject.hasContent());
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT HANDLER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onkeydown = function(e)
-{
-  var vManager = this.getManager();
-  var vSelectedItem = vManager.getSelectedItem();
-
-  if (e.getKeyIdentifier() == "Enter")
-  {
-      e.preventDefault();
-      if (qx.ui.treefullcontrol.Tree.isTreeFolder(vSelectedItem)) {
-        return vSelectedItem.toggle();
-      }
-  }
-}
-
-
-qx.Proto._onkeypress = function(e)
-{
-  var vManager = this.getManager();
-  var vSelectedItem = vManager.getSelectedItem();
-
-  switch(e.getKeyIdentifier())
-  {
-    case "Left":
-      e.preventDefault();
-
-      if (qx.ui.treefullcontrol.Tree.isTreeFolder(vSelectedItem))
-      {
-        if (!vSelectedItem.getOpen())
-        {
-          var vParent = vSelectedItem.getParentFolder();
-          if (vParent instanceof qx.ui.treefullcontrol.TreeFolder) {
-            if (!(vParent instanceof qx.ui.treefullcontrol.Tree)) {
-              vParent.close();
-            }
-
-            this.setSelectedElement(vParent);
-          }
-        }
-        else
-        {
-          return vSelectedItem.close();
-        }
-      }
-      else if (vSelectedItem instanceof qx.ui.treefullcontrol.TreeFile)
-      {
-        var vParent = vSelectedItem.getParentFolder();
-        if (vParent instanceof qx.ui.treefullcontrol.TreeFolder) {
-          if (!(vParent instanceof qx.ui.treefullcontrol.Tree)) {
-            vParent.close();
-          }
-
-          this.setSelectedElement(vParent);
-        }
-      }
-
-      break;
-
-    case "Right":
-      e.preventDefault();
-
-      if (qx.ui.treefullcontrol.Tree.isTreeFolder(vSelectedItem))
-      {
-        if (!vSelectedItem.getOpen())
-        {
-          return vSelectedItem.open();
-        }
-        else if (vSelectedItem.hasContent())
-        {
-          var vFirst = vSelectedItem.getFirstVisibleChildOfFolder();
-          this.setSelectedElement(vFirst);
-
-          if (vFirst instanceof qx.ui.tree.TreeFolder) {
-            vFirst.open();
-          }
-
-          return;
-        }
-      }
-
-      break;
-
-    default:
-      if (!this._fastUpdate)
-      {
-        this._fastUpdate = true;
-        this._oldItem = vSelectedItem;
-      }
-
-      vManager.handleKeyPress(e);
-  }
-};
-
-
-qx.Proto._onkeyup = function(e)
-{
-  if (this._fastUpdate)
-  {
-    var vNewItem = this.getManager().getSelectedItem();
-
-    if (! vNewItem) {
-      return;
-    }
-
-    vNewItem.getIconObject().addState("selected");
-
-    delete this._fastUpdate;
-    delete this._oldItem;
-  }
-}
-
-qx.Proto.getLastTreeChild = function()
-{
-  var vLast = this;
-
-  while (vLast instanceof qx.ui.treefullcontrol.AbstractTreeElement)
-  {
-    if (!(vLast instanceof qx.ui.treefullcontrol.TreeFolder) ||
-        !vLast.getOpen()) {
-      return vLast;
-    }
-
-    vLast = vLast.getLastVisibleChildOfFolder();
-  }
-
-  return null;
-}
-
-qx.Proto.getFirstTreeChild = function() {
-  return this;
-}
-
-qx.Proto.setSelectedElement = function(vElement)
-{
-  var vManager = this.getManager();
-
-  vManager.setSelectedItem(vElement);
-  vManager.setLeadItem(vElement);
-}
-
-/* Override getHierarchy: do not add label if root node is hidden */
-qx.Proto.getHierarchy = function(vArr)
-{
-  if (! this.hideNode() && this._labelObject) {
-    vArr.unshift(this._labelObject.getHtml());
-  }
-  return vArr;
-}
-
-
-qx.Proto.getIndentSymbol = function(vUseTreeLines, vColumn, vLastColumn)
-{
-  if (vColumn == vLastColumn &&
-      (this.hasContent() || this.getAlwaysShowPlusMinusSymbol()))
-  {
-    if (! vUseTreeLines)
-    {
-      return this.getOpen() ? "minus" : "plus";
-    }
-    else
-    {
-      return this.getOpen() ? "only_minus" : "only_plus";
-    }
-  }
-  else
-  {
-    return null;
-  }
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this.removeEventListener("keydown", this._onkeydown);
-  this.removeEventListener("keypress", this._onkeypress);
-  this.removeEventListener("keyup", this._onkeyup);
-
-  if (this._manager)
-  {
-    this._manager.dispose();
-    this._manager = null;
-  }
-
-  delete this._oldItem;
-
-  return qx.ui.treefullcontrol.TreeFolder.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/TreeFile.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/TreeFile.js
deleted file mode 100644 (file)
index cb1f6ef..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-     2006 Derrell Lipman
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Derrell Lipman (derrell)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_treefullcontrol)
-
-************************************************************************ */
-
-/**
- * qx.ui.treefullcontrol.TreeFile objects are terminal tree rows (i.e. no
- * sub-trees)
- *
- * @param
- * treeRowStructure -
- *   An instance of qx.ui.treefullcontrol.TreeRowStructure, defining the
- *   structure  of this tree row.
- */
-qx.OO.defineClass("qx.ui.treefullcontrol.TreeFile", qx.ui.treefullcontrol.AbstractTreeElement,
-function(treeRowStructure)
-{
-  qx.ui.treefullcontrol.AbstractTreeElement.call(this, treeRowStructure);
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  INDENT HELPER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getIndentSymbol = function(vUseTreeLines,
-                                    vColumn,
-                                    vFirstColumn,
-                                    vLastColumn)
-{
-  var vLevel = this.getLevel();
-  var vExcludeList = this.getTree().getExcludeSpecificTreeLines();
-  var vExclude = vExcludeList[vLastColumn - vColumn - 1];
-
-  if (vUseTreeLines && ! (vExclude === true))
-  {
-    if (vColumn == vFirstColumn)
-    {
-      return this.isLastChild() ? "end" : "cross";
-    }
-    else
-    {
-      return "line";
-    }
-  }
-
-  return null;
-}
-
-qx.Proto._updateIndent = function() {
-  this.addToTreeQueue();
-}
-
-qx.Proto.getItems = function() {
-  return [this];
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/TreeFolder.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/TreeFolder.js
deleted file mode 100644 (file)
index 0ca957e..0000000
+++ /dev/null
@@ -1,655 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-     2006 Derrell Lipman
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Derrell Lipman (derrell)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_treefullcontrol)
-#embed(qx.icontheme/16/status/folder-open.png)
-#embed(qx.icontheme/16/places/folder.png)
-
-************************************************************************ */
-
-/**
- * qx.ui.treefullcontrol.TreeFolder objects are tree rows which may contain
- * sub-trees
- *
- * @param
- * treeRowStructure -
- *   An instance of qx.ui.treefullcontrol.TreeRowStructure, defining the
- *   structure of this tree row.
- *
- * @event treeOpenWithContent {qx.event.type.DataEvent}
- * @event treeOpenWhileEmpty {qx.event.type.DataEvent}
- * @event treeClose {qx.event.type.DataEvent}
- */
-qx.OO.defineClass("qx.ui.treefullcontrol.TreeFolder", qx.ui.treefullcontrol.AbstractTreeElement,
-function(treeRowStructure)
-{
-  qx.ui.treefullcontrol.AbstractTreeElement.call(this, treeRowStructure);
-
-  // Save the tree row field order. We'll need it to create children structure.
-  this._treeRowStructureFields = treeRowStructure._fields;
-
-  this._iconObject.setAppearance("tree-folder-icon");
-  this._labelObject.setAppearance("tree-folder-label");
-
-  this.addEventListener("dblclick", this._ondblclick);
-
-  // Remapping of add/remove methods
-  this.add = this.addToFolder;
-  this.addBefore = this.addBeforeToFolder;
-  this.addAfter = this.addAfterToFolder;
-  this.addAt = this.addAtToFolder;
-  this.addAtBegin = this.addAtBeginToFolder;
-  this.addAtEnd = this.addAtEndToFolder;
-});
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-
-qx.OO.changeProperty({ name : "appearance",
-                       type : "string",
-                       defaultValue : "tree-folder"
-                     });
-
-qx.OO.changeProperty({ name : "icon",
-                       type : "string"
-                     });
-
-qx.OO.changeProperty({ name : "iconSelected",
-                       type : "string"
-                     });
-
-qx.OO.addProperty({ name : "open",
-                    type : "boolean",
-                    defaultValue : false
-                  });
-
-qx.OO.addProperty({ name : "alwaysShowPlusMinusSymbol",
-                    type : "boolean",
-                    defaultValue : false
-                  });
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.hasContent = function() {
-  return (this._containerObject &&
-          this._containerObject.getChildrenLength() > 0);
-}
-
-qx.Proto.open = function()
-{
-  if (this.getOpen()) {
-    return;
-  }
-
-  if (this.hasContent())
-  {
-    // If there are listeners waiting for a treeOpenWithContent event...
-    if (this.getTree().hasEventListeners("treeOpenWithContent")) {
-      // ... then issue the event
-      this.getTree().dispatchEvent(new qx.event.type.DataEvent("treeOpenWithContent", this), true);
-    }
-
-    this.getTopLevelWidget().setGlobalCursor("progress");
-    qx.client.Timer.once(this._openCallback, this, 0);
-  }
-  else
-  {
-    // If there are listeners waiting for a treeOpenWithContent event...
-    if (this.getTree().hasEventListeners("treeOpenWhileEmpty")) {
-      // ... then issue the event
-      this.getTree().dispatchEvent(new qx.event.type.DataEvent("treeOpenWhileEmpty", this), true);
-    }
-
-    this.setOpen(true);
-  }
-}
-
-qx.Proto.close = function()
-{
-  // If there are listeners waiting for a treeClose event...
-  if (this.getTree().hasEventListeners("treeClose")) {
-    // ... then issue the event
-    this.getTree().dispatchEvent(new qx.event.type.DataEvent("treeClose", this), true);
-  }
-
-  this.setOpen(false);
-}
-
-qx.Proto.toggle = function()
-{
-  this.getOpen() ? this.close() : this.open();
-}
-
-qx.Proto._openCallback = function()
-{
-  this.setOpen(true);
-  qx.ui.core.Widget.flushGlobalQueues();
-  this.getTopLevelWidget().setGlobalCursor(null);
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CHILDREN HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.Proto._createChildrenStructure = function()
-{
-  this.setAppearance(this instanceof qx.ui.treefullcontrol.Tree
-                     ? "tree-container"
-                     : "tree-folder-container");
-
-  if (!this._horizontalLayout)
-  {
-    this.setOrientation("vertical");
-
-    // Create a horizontal layout for this tree row
-    this._horizontalLayout = new qx.ui.layout.HorizontalBoxLayout;
-    this._horizontalLayout.setWidth(null);
-    this._horizontalLayout.setParent(this);
-    this._horizontalLayout.setAnonymous(true);
-    this._horizontalLayout.setAppearance(this instanceof qx.ui.treefullcontrol.Tree
-                                         ? "tree"
-                                         : "tree-folder");
-
-    // Move the row fields into the horizontal layout
-    for (var i = 0; i < this._treeRowStructureFields.length; i++)
-    {
-      this._treeRowStructureFields[i].setParent(this._horizontalLayout);
-    }
-
-    // We don't need the tree row structure any more.
-    this._treeRowStructureFields = null;
-  }
-
-  if (!this._containerObject)
-  {
-    // Create a veritcal box layout for all of this folder's children
-    this._containerObject = new qx.ui.layout.VerticalBoxLayout;
-    this._containerObject.setWidth(null);
-    this._containerObject.setAnonymous(true);
-
-    // it should be faster to first handle display,
-    // because the default display value is true and if we first
-    // setup the parent the logic do all to make the
-    // widget first visible and then, if the folder is not
-    // opened again invisible.
-    this._containerObject.setDisplay(this.getOpen());
-    this._containerObject.setParent(this);
-
-    // remap remove* functions
-    this.remapChildrenHandlingTo(this._containerObject);
-  }
-}
-
-qx.Proto._handleChildMove = function(vChild, vRelationIndex, vRelationChild)
-{
-  if (vChild.isDisplayable())
-  {
-    var vChildren = this._containerObject.getChildren();
-    var vOldChildIndex = vChildren.indexOf(vChild);
-
-    if (vOldChildIndex != -1)
-    {
-      if (vRelationChild) {
-        vRelationIndex = vChildren.indexOf(vRelationChild);
-      }
-
-      if (vRelationIndex == vChildren.length-1)
-      {
-        vChild._updateIndent();
-
-        // Update indent of previous last child
-        this._containerObject.getLastVisibleChild()._updateIndent();
-      }
-      else if (vChild._wasLastVisibleChild)
-      {
-        vChild._updateIndent();
-
-        // Update indent for new last child
-        var vPreviousSibling = vChild.getPreviousVisibleSibling();
-        if (vPreviousSibling) {
-          vPreviousSibling._updateIndent();
-        }
-      }
-    }
-  }
-}
-
-qx.Proto.addToFolder = function()
-{
-  this._createChildrenStructure();
-
-  if (this._containerObject) {
-    return this._containerObject.add.apply(this._containerObject, arguments);
-  }
-}
-
-qx.Proto.addBeforeToFolder = function(vChild, vBefore)
-{
-  this._createChildrenStructure();
-
-  if (this._containerObject)
-  {
-    this._handleChildMove(vChild, null, vBefore);
-    return this._containerObject.addBefore.apply(this._containerObject,
-                                                 arguments);
-  }
-}
-
-qx.Proto.addAfterToFolder = function(vChild, vAfter)
-{
-  this._createChildrenStructure();
-
-  if (this._containerObject)
-  {
-    this._handleChildMove(vChild, null, vAfter);
-    return this._containerObject.addAfter.apply(this._containerObject,
-                                                arguments);
-  }
-}
-
-qx.Proto.addAtToFolder = function(vChild, vIndex)
-{
-  this._createChildrenStructure();
-
-  if (this._containerObject)
-  {
-    this._handleChildMove(vChild, vIndex);
-    return this._containerObject.addAt.apply(this._containerObject, arguments);
-  }
-}
-
-qx.Proto.addAtBeginToFolder = function(vChild) {
-  return this.addAtToFolder(vChild, 0);
-}
-
-qx.Proto.addAtEndToFolder = function(vChild)
-{
-  this._createChildrenStructure();
-
-  if (this._containerObject)
-  {
-    var vLast = this._containerObject.getLastChild();
-
-    if (vLast)
-    {
-      this._handleChildMove(vChild, null, vLast);
-      return this._containerObject.addAfter.call(this._containerObject,
-                                                 vChild,
-                                                 vLast);
-    }
-    else
-    {
-      return this.addAtBeginToFolder(vChild);
-    }
-  }
-}
-
-qx.Proto._remappingChildTable = [ "remove", "removeAt", "removeAll" ];
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  CHILDREN UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getContainerObject = function()
-{
-  return this._containerObject;
-}
-
-qx.Proto.getHorizontalLayout = function()
-{
-  return this._horizontalLayout;
-}
-
-qx.Proto.getFirstVisibleChildOfFolder = function()
-{
-  if (this._containerObject) {
-    return this._containerObject.getFirstChild();
-  }
-}
-
-qx.Proto.getLastVisibleChildOfFolder = function()
-{
-  if (this._containerObject) {
-    return this._containerObject.getLastChild();
-  }
-}
-
-qx.Proto.getItems = function()
-{
-  var a = [this];
-
-  if (this._containerObject)
-  {
-    var ch = this._containerObject.getVisibleChildren();
-
-    for (var i=0, chl=ch.length; i<chl; i++) {
-      a = a.concat(ch[i].getItems());
-    }
-  }
-
-  return a;
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._evalCurrentIcon = function()
-{
-  if (this.getSelected()) {
-    return this.getIconSelected() || "icon/16/status/folder-open.png";
-  } else {
-    return this.getIcon() || "icon/16/places/folder.png";
-  }
-}
-
-qx.Proto._modifyOpen = function(propValue, propOldValue, propData)
-{
-  // we need the whole indent process if certain tree lines are to be excluded
-  if (this.getTree().getExcludeSpecificTreeLines().length > 0) {
-    this._updateIndent();
-  } else {
-    this._updateLastColumn();
-  }
-
-  if (this._containerObject) {
-    this._containerObject.setDisplay(propValue);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyAlwaysShowPlusMinusSymbol = function(propValue, propOldValue, propData)
-{
-  var t = this.getTree();
-  if (t) {
-    // we need the whole indent process if only certain tree lines are to be
-    // excluded
-    if (t.getExcludeSpecificTreeLines().length > 0) {
-      this._updateIndent();
-    } else {
-      this._updateLastColumn();
-    }
-  }
-
-  return true;
-}
-
-qx.Proto._updateLastColumn = function()
-{
-  if (this._indentObject)
-  {
-    var vElement = this._indentObject.getElement();
-
-    if (vElement && vElement.firstChild) {
-      vElement.firstChild.src =
-        (this.BASE_URI +
-         this.getIndentSymbol(this.getTree().getUseTreeLines(), 0, 0, 0) +
-         ".gif");
-    }
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT LISTENERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onmousedown = function(e)
-{
-  var vOriginalTarget = e.getOriginalTarget();
-
-  switch(vOriginalTarget)
-  {
-    case this._indentObject:
-      if (this._indentObject.getElement().firstChild == e.getDomTarget())
-      {
-        this.getTree().getManager().handleMouseDown(this, e);
-        this.toggle();
-      }
-
-      break;
-
-    case this._containerObject:
-      break;
-
-    case this:
-      if (this._containerObject) {
-        break;
-      }
-
-      // no break here
-
-    default:
-      this.getTree().getManager().handleMouseDown(this, e);
-  }
-
-  e.stopPropagation();
-}
-
-qx.Proto._onmouseup = function(e)
-{
-  var vOriginalTarget = e.getOriginalTarget();
-
-  switch(vOriginalTarget)
-  {
-    case this._indentObject:
-    case this._containerObject:
-    case this:
-      break;
-
-    default:
-      if (!this.getTree().getUseDoubleClick()) {
-        this.open();
-      }
-  }
-}
-
-qx.Proto._ondblclick = function(e)
-{
-  if (!this.getTree().getUseDoubleClick()) {
-    return;
-  }
-
-  this.toggle();
-  e.stopPropagation();
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  INDENT HELPER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getIndentSymbol = function(vUseTreeLines,
-                                    vColumn,
-                                    vFirstColumn,
-                                    vLastColumn)
-{
-  var vLevel = this.getLevel();
-  var vExcludeList = this.getTree().getExcludeSpecificTreeLines();
-  var vExclude = vExcludeList[vLastColumn - vColumn - 1];
-
-  if (vColumn == vFirstColumn)
-  {
-    if (this.hasContent() || this.getAlwaysShowPlusMinusSymbol())
-    {
-      // If tree lines were not requested, don't display them
-      if (!vUseTreeLines)
-      {
-        return this.getOpen() ? "minus" : "plus";
-      }
-
-
-      // If this is the first level under the root...
-      if (vLevel == 1) {
-        // ... and the root is not being displayed and this is the first
-        // child...
-        var vParentFolder = this.getParentFolder();
-        if (vParentFolder &&
-            !vParentFolder._horizontalLayout.getVisibility() &&
-            this.isFirstChild())
-        {
-          //... then if this is also the last (i.e. only) child, use no tree
-          // lines; otherwise, use descender lines but no ascender.
-          if (this.isLastChild() || vExclude === true)
-          {
-            return this.getOpen() ? "only_minus" : "only_plus";
-          }
-          else
-          {
-            return this.getOpen() ? "start_minus" : "start_plus";
-          }
-        }
-      }
-
-      if (vExclude === true)
-      {
-        return this.getOpen() ? "only_minus" : "only_plus";
-      }
-      else if (this.isLastChild())
-      {
-        return this.getOpen() ? "end_minus" : "end_plus";
-      }
-      else
-      {
-        return this.getOpen() ? "cross_minus" : "cross_plus";
-      }
-    }
-    else if (vUseTreeLines && ! (vExclude === true))
-    {
-      return this.isLastChild() ? "end" : "cross";
-    }
-  }
-  else
-  {
-    if (vUseTreeLines && ! this.isLastChild()) {
-      if (vExclude === true) {
-        return null;
-      }
-      return "line";
-    }
-    return null;
-  }
-}
-
-qx.Proto._updateIndent = function()
-{
-  // Intentionally bypass superclass; the _updateIndent we want is in TreeFile
-  qx.ui.treefullcontrol.TreeFile.prototype._updateIndent.call(this);
-
-  if (!this._containerObject) {
-    return;
-  }
-
-  var ch = this._containerObject.getVisibleChildren();
-  for (var i=0, l=ch.length; i<l; i++) {
-    ch[i]._updateIndent();
-  }
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return;
-  }
-
-  this.removeEventListener("dblclick", this._ondblclick);
-
-  if (this._horizontalLayout)
-  {
-    this._horizontalLayout.dispose();
-    this._horizontalLayout = null;
-  }
-
-  if (this._containerObject)
-  {
-    this._containerObject.dispose();
-    this._containerObject = null;
-  }
-
-  return qx.ui.treefullcontrol.AbstractTreeElement.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/TreeRowStructure.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treefullcontrol/TreeRowStructure.js
deleted file mode 100644 (file)
index 9eedf64..0000000
+++ /dev/null
@@ -1,268 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 Derrell Lipman
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Derrell Lipman (derrell)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_treefullcontrol)
-
-************************************************************************ */
-
-/**
- * The structure of a tree row.
- *
- * This is a singleton class.  The constructor is not accessed by users;
- * instead, to obtain the one and only TreeRowStructure object, call either
- *
- * <pre>qx.ui.treefullcontrol.TreeRowStructure.newRow()</pre>
- *
- * or
- *
- * <pre>qx.ui.treefullcontrol.TreeRowStructure.standard().</pre>
- *
- * The structure of a tree row is provided by a
- * qx.ui.treefullcontrol.TreeRowStructure.  The order of elements added to
- * this object is the order in which they will be presented in a tree row.
- *
- * The three standard parts of a tree: the indentation (and its associated
- * tree-lines, if enabled), the icon (selected or unselected), and the label
- * are added to the structure in the desired order by calling, respectively,
- * the methods addIndent(), addIcon() and addLabel().
- *
- * By default, indentation will appear at the beginning of the tree row.  This
- * can be changed by calling the addIndent() method after having calling other
- * add*() methods on this object.  If indentation is to be at the beginning of
- * the tree row, simply do not call addIndent().
- *
- * Any other object which is valid within a qx.ui.layout.HorizontalBoxLayout
- * may be added to the structure using addObject().  If the object has no
- * special treatment, it may be made anonymous with obj.SetAnonymous(true).
- * Otherwise, all handling for the object should be done by the application.
- *
- * A "standard" (traditional) tree row would be generated like this:
- *
- * <pre>
- * treeRowStructure = qx.ui.treefullcontrol.TreeRowStructure.standard("Trash");
- * </pre>
- *
- * which equates to issuing these commands:
- *
- * <pre>
- * treeRowStructure = qx.ui.treefullcontrol.TreeRowStructure.newRow();
- *
- * //treeRowStructure.addIndent()  // defaults to here; no need to call
- * treeRowStructure.addIcon();
- * treeRowStructure.addLabel("Trash");
- * </pre>
- *
- * The former method is typically preferred.
- *
- * An example of a more sophisticated structure:
- *
- * <pre>
- * treeRowStructure = qx.ui.treefullcontrol.TreeRowStructure.newRow();
- *
- * // A left-justified icon
- * obj = new qx.ui.basic.Image("icon/16/apps/accessories-alarm.png");
- * treeRowStructure.addObject(obj, true);
- *
- * // Here's our indentation and tree-lines
- * treeRowStructure.addIndent();
- *
- * // The standard tree icon follows
- * treeRowStructure.addIcon("icon/16/places/user-desktop.png","icon/16/apps/accessories-dictionary.png");
- *
- * // Right after the tree icon is a checkbox
- * obj = new qx.ui.form.CheckBox(null, 23, null, false);
- * obj.setPadding(0, 0);
- * treeRowStructure.addObject(obj, true);
- *
- * // The label
- * treeRowStructure.addLabel("Trash");
- *
- * // All else should be right justified
- * obj = new qx.ui.basic.HorizontalSpacer;
- * treeRowStructure.addObject(obj, true);
- *
- * // Add a file size, date and mode
- * obj = new qx.ui.basic.Label("23kb");
- * obj.setWidth(50);
- * treeRowStructure.addObject(obj, true);
- * obj = new qx.ui.basic.Label("11 Sept 1959");
- * obj.setWidth(150);
- * treeRowStructure.addObject(obj, true);
- * obj = new qx.ui.basic.Label("-rw-r--r--");
- * obj.setWidth(80);
- * treeRowStructure.addObject(obj, true);
- * </pre>
- */
-
-qx.OO.defineClass("qx.ui.treefullcontrol.TreeRowStructure", qx.core.Object,
-function()
-{
-  qx.core.Object.call(this);
-});
-
-
-/**
- * Prepare to define a new row.
- *
- * This reinitializes the singleton TreeRowStructure so that it is ready to
- * define a new tree row.
- *
- * @return The singleton itself, purely for convenience.
- */
-qx.Proto.newRow = function()
-{
-  /* Create the indent, icon, and label objects */
-  this._indentObject = new qx.ui.embed.HtmlEmbed;
-  this._iconObject = new qx.ui.basic.Image;
-  this._labelObject = new qx.ui.basic.Label;
-
-  /* Create an object to hold the ordering of row objects */
-  this._fields = new Array;
-
-  /* Create an object to hold the icon names */
-  this._icons = new Object;
-
-  /* Initially assume that indentation goes at the beginning of the row */
-  this._fields.push(this._indentObject);
-
-  /* Set initial flags */
-  this._indentAdded = false;
-  this._iconAdded = false;
-  this._labelAdded = false;
-
-  /* Return the singleton (from which we were called) */
-  return this;
-}
-
-/**
- * Define a new row with the 'standard' structure.
- *
- * This reinitializes the singleton TreeRowStructure to the state of a
- * standard'or traditional tree row:
- *   - indentation
- *   - icon
- *   - label
- *
- * The icon parameters may be omitted in which case the defaults will be
- * used.  If the label parameter is omitted, no label will appear.
- *
- * @param vLabel {String} The label text
- * @param vIcon {String} Relative path to the 'non-selected' icon
- * @param vIconSelected {String} Relative path to the 'selected' icon
- *
- * @return The singleton itself, purely for convenience.
- */
-qx.Proto.standard = function(vLabel, vIcon, vIconSelected)
-{
-  this.newRow();
-  this.addIcon(vIcon, vIconSelected);
-  this.addLabel(vLabel);
-
-  return this;
-}
-
-qx.Proto.addIndent = function()
-{
-  /* If the assumed indent object is in use... */
-  if (! this._indentAdded)
-  {
-    /* ... then remove it. */
-    this._fields.shift();
-    this._indentAdded = true;
-  }
-  else
-  {
-    throw new Error("Indent object added more than once.");
-  }
-
-  /* Add the indentation to the structure */
-  this._fields.push(this._indentObject);
-}
-
-qx.Proto.addIcon = function(vIcon, vIconSelected)
-{
-  /* Ensure only one standard icon is added */
-  if (! this._iconAdded)
-  {
-    this._iconAdded = true;
-  }
-  else
-  {
-    throw new Error("Icon object added more than once.");
-  }
-
-  /* Track the two icon names */
-  this._icons.unselected = vIcon;
-  this._icons.selected = vIconSelected;
-
-  /* Add the icon to the structure */
-  this._fields.push(this._iconObject);
-}
-
-qx.Proto.addLabel = function(vLabel)
-{
-  /* Ensure only one standard label is added */
-  if (! this._labelAdded)
-  {
-    this._labelAdded = true;
-  }
-  else
-  {
-    throw new Error("Label added more than once.");
-  }
-
-  /* Track the label text */
-  this._label = vLabel;
-
-  /* Add the label to the structure */
-  this._fields.push(this._labelObject);
-}
-
-/*
- * Add an object to the tree row structure.  For convenience, vAnonymous can
- * be provided, and if a boolean value is provided, vObj.setAnonymous() is
- * called with the provided value.  If the object has already been
- * setAnonymous or if there is no need to do so, then provide no value for
- * vAnonymous or pass 'null'.
- */
-qx.Proto.addObject = function(vObj, vAnonymous)
-{
-  /* Is requested, set this object's anonymous state */
-  if (typeof vAnonymous == "boolean")
-  {
-    vObj.setAnonymous(vAnonymous);
-  }
-
-  /* Add this user-specified object to the structure */
-  this._fields.push(vObj);
-}
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/DefaultDataCellRenderer.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/DefaultDataCellRenderer.js
deleted file mode 100644 (file)
index d089fdd..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2007 Derrell Lipman
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Derrell Lipman (derrell)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(treevirtual)
-
-************************************************************************ */
-
-/**
- * The default data cell renderer for a virtual tree (columns other than the
- * tree column)
- */
-qx.OO.defineClass("qx.ui.treevirtual.DefaultDataCellRenderer",
-                  qx.ui.table.DefaultDataCellRenderer,
-function()
-{
-  qx.ui.table.DefaultDataCellRenderer.call(this);
-});
-
-
-// overridden
-qx.Proto._getCellStyle = function(cellInfo)
-{
-  // Return the style for the div for the cell.  If there's cell-specific
-  // style information provided, append it.
-  var html =
-    cellInfo.style +
-    qx.ui.treevirtual.SimpleTreeDataCellRenderer.MAIN_DIV_STYLE;
-  return html;
-};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/SelectionManager.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/SelectionManager.js
deleted file mode 100644 (file)
index 94e5154..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2007 Derrell Lipman
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Derrell Lipman (derrell)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(treevirtual)
-
-************************************************************************ */
-
-/**
- * A selection manager. This is a helper class that handles all selection
- * related events and updates a SelectionModel.
- * <p>
- * This Selection Manager differs from its superclass in that we do not want
- * rows to be selected when moving around with the keyboard.
- */
-qx.OO.defineClass("qx.ui.treevirtual.SelectionManager",
-                  qx.ui.table.SelectionManager,
-function(table)
-{
-  qx.ui.table.SelectionManager.call(this);
-
-  this._table = table;
-});
-
-
-/**
- * Handles a key down event that moved the focus (E.g. up, down, home, end, ...).
- *
- * @param index {Integer} the index that is currently focused.
- * @param evt {Map} the key event.
- */
-qx.Proto.handleMoveKeyDown = function(index, evt)
-{
-  var selectionModel = this.getSelectionModel();
-
-  switch (evt.getModifiers())
-  {
-  case 0:
-    break;
-
-  case qx.event.type.DomEvent.SHIFT_MASK:
-    var anchor = selectionModel.getAnchorSelectionIndex();
-    
-    if (anchor == -1)
-    {
-      selectionModel.setSelectionInterval(index, index);
-    }
-    else
-    {
-      selectionModel.setSelectionInterval(anchor, index);
-    }
-    break;
-  }
-};
-
-
-/**
- * Handles a select event.  First we determine if the click was on the
- * open/close button and toggle the opened/closed state as necessary.  Then,
- * if the click was not on the open/close button or if the table's
- * "openCloseClickSelectsRow" property so indicates, call our superclass to
- * handle the actual row selection.
- *
- * @param index {Integer} the index the event is pointing at.
- * @param evt {Map} the mouse event.
- */
-qx.Proto._handleSelectEvent = function(index, evt)
-{
-  function handleOpenCloseClick(table, index, evt)
-  {
-    // Get the node to which this event applies
-    var node = table.getTableModel().getValue(table.getFocusedColumn(),
-                                              table.getFocusedRow());
-    if (! node)
-    {
-      return false;
-    }
-
-    // Was this a mouse event?
-    if (evt instanceof qx.event.type.MouseEvent)
-    {
-      // Yup.  Get the order of the columns
-      var tcm = table.getTableColumnModel();
-      var columnPositions = tcm._getColToXPosMap();
-
-      // Calculate the position of the beginning of the tree column
-      var treeCol = table.getTableModel().getTreeColumn();
-      var left = qx.html.Location.getClientBoxLeft(table.getElement());
-      for (i = 0; i < columnPositions[treeCol].visX; i++)
-      {
-        left += tcm.getColumnWidth(columnPositions[i].visX);
-      }
-
-      // Was the click on the open/close button?  That button begins at
-      // (node.level - 1) * 19 + 2 (the latter for padding), and has width 19.
-      // We add a bit of latitude to that.
-      var x = evt.getClientX();
-      var latitude = 2;
-
-      var buttonPos = left + (node.level - 1) * 19 + 2;
-
-      if (x >= buttonPos - latitude && x <= buttonPos + 19 + latitude)
-      {
-        // Yup.  Toggle the opened state for this node.
-        table.toggleOpened(node);
-        return table.openCloseClickSelectsRow() ? false : true;
-      }
-      else
-      {
-        return false;
-      }
-    }
-    else
-    {
-      // See which key generated the event
-      var identifier = evt.getKeyIdentifier();
-      switch (identifier)
-      {
-      case "Space":
-        // This should only select the row, not toggle the opened state
-        return false;
-
-      case "Enter":
-        // Toggle the open state if open/close is allowed
-        if (! node.bHideOpenClose)
-        {
-          table.toggleOpened(node);
-        }
-        return table.openCloseClickSelectsRow() ? false : true;
-
-      default:
-        // Unrecognized key.  Ignore it.
-        return true;
-      }
-    }
-  }
-
-  // Call our local method to toggle the open/close state, if necessary
-  var bNoSelect = handleOpenCloseClick(this._table, index, evt);
-
-  // If we haven't been told not to do the selection...
-  if (! bNoSelect)
-  {
-    // then call the Selection Manager's method to do it.
-    var Sm = qx.ui.table.SelectionManager;
-    Sm.prototype._handleSelectEvent.call(this, index, evt);
-  }
-};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/SimpleTreeDataCellRenderer.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/SimpleTreeDataCellRenderer.js
deleted file mode 100644 (file)
index ab217f7..0000000
+++ /dev/null
@@ -1,343 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2007 Derrell Lipman
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Derrell Lipman (derrell)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(treevirtual)
-#embed(qx.icontheme/16/status/folder-open.png)
-#embed(qx.icontheme/16/places/folder.png)
-#embed(qx.icontheme/16/actions/document-open.png)
-#embed(qx.icontheme/16/actions/document-new.png)
-#embed(qx.widgettheme/tree/*)
-#embed(qx.static/blank.gif)
-
-************************************************************************ */
-
-/**
- * A data cell renderer for the tree column of a simple tree
- */
-qx.OO.defineClass("qx.ui.treevirtual.SimpleTreeDataCellRenderer",
-                  qx.ui.table.AbstractDataCellRenderer,
-function()
-{
-  qx.ui.table.AbstractDataCellRenderer.call(this);
-
-  // Base URL used for indent images
-  var Am = qx.manager.object.AliasManager;
-  this.WIDGET_TREE_URI = Am.getInstance().resolvePath("widget/tree/");
-  this.STATIC_IMAGE_URI = Am.getInstance().resolvePath("static/image/")
-});
-
-
-/**
- * Set whether lines linking tree children shall be drawn on the tree.
- */
-qx.OO.addProperty({
-                    name         : "useTreeLines",
-                    type         : "boolean",
-                    defaultValue : true,
-                    getAlias     : "useTreeLines"
-                  });
-
-/*
- * When true, exclude only the first-level tree lines, creating, effectively,
- * multiple unrelated root nodes.
- */
-qx.OO.addProperty({
-                    name         : "excludeFirstLevelTreeLines",
-                    type         : "boolean",
-                    defaultValue : false
-                  });
-
-
-/**
- * Set whether the open/close button should be displayed on a branch, even if
- * the branch has no children.
- */
-qx.OO.addProperty({
-                    name         : "alwaysShowOpenCloseSymbol",
-                    type         : "boolean",
-                    defaultValue : false
-                  });
-
-
-
-
-// overridden
-qx.Proto._getCellStyle = function(cellInfo)
-{
-  var node = cellInfo.value;
-
-  // Return the style for the div for the cell.  If there's cell-specific
-  // style information provided, append it.
-  var html =
-    cellInfo.style +
-    qx.ui.treevirtual.SimpleTreeDataCellRenderer.MAIN_DIV_STYLE +
-    (node.cellStyle ? node.cellStyle + ";" : "");
-  return html;
-};
-
-
-// overridden
-qx.Proto._getContentHtml = function(cellInfo)
-{
-  var html = "";
-  var node = cellInfo.value;
-  var imageUrl;
-  var _this = this;
-  var Stdcr = qx.ui.treevirtual.SimpleTreeDataCellRenderer;
-
-  function addImage(urlAndToolTip)
-  {
-    var html = Stdcr.IMG_START;
-    var Am = qx.manager.object.AliasManager;
-
-    if (qx.core.Client.getInstance().isMshtml() &&
-        /\.png$/i.test(urlAndToolTip.url))
-    {
-      html +=
-        this.STATIC_IMAGE_URI + "blank.gif" +
-        '" style="filter:' +
-        "progid:DXImageTransform.Microsoft.AlphaImageLoader(" +
-        "  src='" +
-        Am.getInstance().resolvePath(urlAndToolTip.url) +
-        "',sizingMethod='scale')";
-    }
-    else
-    {
-      var imageUrl = Am.getInstance().resolvePath(urlAndToolTip.url);
-      html += imageUrl + '" style="';
-    }
-
-    if (urlAndToolTip.imageWidth && urlAndToolTip.imageHeight)
-    {
-      html +=
-        ';width:' + urlAndToolTip.imageWidth + 'px' +
-        ';height:' + urlAndToolTip.imageHeight + 'px';
-    }
-
-    var tooltip = urlAndToolTip.tooltip;
-    if (tooltip != null)
-    {
-      html += Stdcr.IMG_TITLE_START + tooltip;
-    }
-    html += Stdcr.IMG_END;
-
-    return html;
-  }
-
-  // Generate the indentation.  Obtain icon determination values once rather
-  // than each time through the loop.
-  var bUseTreeLines = this.getUseTreeLines();
-  var bExcludeFirstLevelTreeLines = this.getExcludeFirstLevelTreeLines();
-  var bAlwaysShowOpenCloseSymbol = this.getAlwaysShowOpenCloseSymbol();
-
-  for (var i = 0; i < node.level; i++)
-  {
-    imageUrl = this._getIndentSymbol(i,
-                                     node,
-                                     bUseTreeLines,
-                                     bAlwaysShowOpenCloseSymbol,
-                                     bExcludeFirstLevelTreeLines);
-    html += addImage({
-                       url         : imageUrl,
-                       imageWidth  : 19,
-                       imageHeight : 16
-                     });
-  }
-
-  // Add the node's icon
-  imageUrl = (node.bSelected ? node.iconSelected : node.icon);
-  if (! imageUrl)
-  {
-    if (node.type == qx.ui.treevirtual.SimpleTreeDataModel.Type.LEAF)
-    {
-      imageUrl = (node.bSelected
-                  ? "icon/16/actions/document-open.png"
-                  : "icon/16/actions/document-new.png");
-    }
-    else
-    {
-      imageUrl = (node.bSelected
-                  ? "icon/16/status/folder-open.png"
-                  : "icon/16/places/folder.png");
-    }
-  }
-  html += addImage({
-                     url         : imageUrl,
-                     imageWidth  : 16,
-                     imageHeight : 16
-                   });
-
-  // Add the node's label.  We calculate the "left" property with: each tree
-  // line (indentation) icon is 19 pixels wide; the folder icon is 16 pixels
-  // wide, there are two pixels of padding at the left, and we want 2 pixels
-  // between the folder icon and the label
-  html +=
-    '<div style="position:absolute;' +
-    'left:' + ((node.level * 19) + 16 + 2 + 2) + ';' +
-    'top:0' +
-    (node.labelStyle ? ";" + node.labelStyle : "") +
-    ';">' +
-    node.label +
-    '</div>';
-
-  return html;
-};
-
-
-/**
- * Determine the symbol to use for indentation of a tree row, at a particular
- * column.  The indentation to use may be just white space or may be a tree
- * line.  Tree lines come in numerous varieties, so the appropriate one is
- * selected.
- *
- * @param column {Integer}
- *   The column of indentation being requested, zero-relative
- *
- * @param node
- *   The node being displayed in the row.  The properties of a node are
- *   described in {@link qx.ui.treevirtual.SimpleTreeDataModel}
- *
- * @param bUseTreeLines {Boolean}
- *   Whether to find an appropriate tree line icon, or simply provide white
- *   space.
- *
- * @param bAlwaysShowOpenCloseSymbol {Boolean}
- *   Whether to display the open/close icon for a node even if it has no
- *   children.
- *
- * @param bExcludeFirstLevelTreeLines {Boolean}
- *   If bUseTreeLines is enabled, then further filtering of the left-most tree
- *   line may be specified here.  If <i>true</i> then the left-most tree line,
- *   between top-level siblings, will not be displayed.  If <i>false</i>, then
- *   the left-most tree line wiill be displayed just like all of the other
- *   tree lines.
- */
-qx.Proto._getIndentSymbol = function(column,
-                                     node,
-                                     bUseTreeLines,
-                                     bAlwaysShowOpenCloseSymbol,
-                                     bExcludeFirstLevelTreeLines)
-{
-  // If we're in column 0 and excludeFirstLevelTreeLines is enabled, then
-  // we treat this as if no tree lines were requested.
-  if (column == 0 && bExcludeFirstLevelTreeLines)
-  {
-    bUseTreeLines = false;
-  }
-
-  // If we're not on the final column...
-  if (column < node.level - 1)
-  {
-    // then return either a line or a blank icon, depending on bUseTreeLines
-    return (bUseTreeLines && ! node.lastChild[column]
-            ? this.WIDGET_TREE_URI + "line.gif"
-            : this.STATIC_IMAGE_URI + "blank.gif");
-  }
-
-  var bLastChild = node.lastChild[node.lastChild.length - 1];
-
-  // Is this a branch node that does not have the open/close button hidden?
-  if (node.type == qx.ui.treevirtual.SimpleTreeDataModel.Type.BRANCH &&
-      ! node.bHideOpenClose)
-  {
-    // Yup.  Determine if this node has any children
-    var child = null;
-    for (child in node.children)
-    {
-      // If we find even one, we're done here.
-      break;
-    }
-
-    // Does this node have any children, or do we always want the open/close
-    // symbol to be shown?
-    if (child !== null || bAlwaysShowOpenCloseSymbol)
-    {
-      // If we're not showing tree lines...
-      if (! bUseTreeLines)
-      {
-        // ... then just use a plus or minus
-        return (node.bOpened
-                ? this.WIDGET_TREE_URI + "minus.gif"
-                : this.WIDGET_TREE_URI + "plus.gif");
-      }
-
-      // Are we looking at a top-level, first child of its parent?
-      if (column == 0 && node.bFirstChild)
-      {
-        // Yup.  If it's also a last child...
-        if (bLastChild)
-        {
-          // ... then use no tree lines.
-          return (node.bOpened
-                  ? this.WIDGET_TREE_URI + "only_minus.gif"
-                  : this.WIDGET_TREE_URI + "only_plus.gif");
-        }
-        else
-        {
-          // otherwise, use descender lines but no ascender.
-          return (node.bOpened
-                  ? this.WIDGET_TREE_URI + "start_minus.gif"
-                  : this.WIDGET_TREE_URI + "start_plus.gif");
-        }
-      }
-
-      // It's not a top-level, first child.  Is this the last child of its
-      // parent?
-      if (bLastChild)
-      {
-        // Yup.   Return an ending plus or minus, or blank if node.bOpened so
-        // indicates.
-        return (node.bOpened
-                ? this.WIDGET_TREE_URI + "end_minus.gif"
-                : this.WIDGET_TREE_URI + "end_plus.gif");
-      }
-
-      // Otherwise, return a crossing plus or minus, or a blank if
-      // node.bOpened so indicates.
-      return (node.bOpened
-              ? this.WIDGET_TREE_URI + "cross_minus.gif"
-              : this.WIDGET_TREE_URI + "cross_plus.gif");
-    }
-  }
-
-  // This node does not have any children.  Return an end or cross, if we're
-  // using tree lines.
-  if (bUseTreeLines)
-  {
-    // If this is a last child, return and ending line; otherwise cross.
-    return (bLastChild
-            ? this.WIDGET_TREE_URI + "end.gif"
-            : this.WIDGET_TREE_URI + "cross.gif");
-  }
-
-  return this.STATIC_IMAGE_URI + "blank.gif";
-};
-
-
-qx.Class.MAIN_DIV_STYLE =
-  ';overflow:hidden;white-space:nowrap;border-right:1px solid #eeeeee;' +
-  'padding-left:2px;padding-right:2px;cursor:default' +
-  (qx.core.Client.getInstance().isMshtml() ? '' : ';-moz-user-select:none;');
-
-qx.Class.IMG_START = '<img src="';
-qx.Class.IMG_END = '"/>';
-qx.Class.IMG_TITLE_START = '" title="';
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/SimpleTreeDataModel.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/SimpleTreeDataModel.js
deleted file mode 100644 (file)
index 90e8ef5..0000000
+++ /dev/null
@@ -1,752 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2007 Derrell Lipman
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Derrell Lipman (derrell)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(treevirtual)
-
-************************************************************************ */
-
-
-
-/*
- * A simple tree data model used as the table model
- *
- * The object structure of a single node of the tree is:
- *
- * <pre>
- * {
- *   // USER-PROVIDED ATTRIBUTES
- *   // ------------------------
- *   type           : qx.ui.treevirtual.Type.LEAF,
- *   parentNodeId   : 23,    // index in _nodeArr of the parent node
- *   label          : "My Documents",
- *   bSelected      : true,  // true if node is selected; false otherwise
- *   bOpened        : true,  // true (-), false (+)
- *   bHideOpenClose : false, // whether to hide the open/close button
- *   icon           : "images/folder.gif",
- *   iconSelected   : "images/folder_selected.gif",
- *   children       : [ ],   // each value is an index into _nodeArr
- *
- *   cellStyle      : "background-color:cyan"
- *   labelStyle     : "background-color:red;color:white"
- *
- *   // INTERNALLY-CALCULATED ATTRIBUTES
- *   // --------------------------------
- *   // The following properties need not (and should not) be set by the
- *   // caller, but are automatically calculated.  Some are used internally,
- *   // while others may be of use to event listeners.
- *
- *   nodeId         : 42,   // The index in _nodeArr, useful to event listeners
- *
- *   level          : 2,    // The indentation level of this tree node
- *
- *   bFirstChild    : true,
- *   lastChild      : [ false ],  // Array where the index is the column of
- *                                // indentation, and the value is a boolean.
- *                                // These are used to locate the
- *                                // appropriate "tree line" icon.
- * }
- * </pre>
- */
-qx.OO.defineClass("qx.ui.treevirtual.SimpleTreeDataModel",
-                  qx.ui.table.AbstractTableModel,
-function()
-{
-  qx.ui.table.AbstractTableModel.call(this);
-
-  this._rowArr = [ ];           // rows, resorted into tree order as necessary
-  this._nodeArr = [ ];          // tree nodes, organized with hierarchy
-
-  this._nodeRowMap = [ ];       // map nodeArr index to rowArr index.  The
-                                // index of this array is the index of
-                                // _nodeArr, and the values in this array are
-                                // the indexes into _rowArr.
-
-
-  this._treeColumn = 0;         // default column for tree nodes
-
-  this._selections = { };       // list of indexes of selected nodes
-
-  this._nodeArr.push(           // the root node, needed to store its children
-    {
-      label     : "<virtual root>",
-      bOpened   : true,
-      children  : [ ]
-    });
-});
-
-
-// overridden
-qx.Proto.setEditable = function(editable)
-{
-  throw new Error("Tree columns can not be made editable");
-};
-
-
-// overridden
-qx.Proto.setColumnEditable = function(columnIndex, editable)
-{
-  throw new Error("Tree columns can not be made editable");
-};
-
-
-// overridden
-qx.Proto.isColumnEditable = function(columnIndex)
-{
-  return false;
-};
-
-
-// overridden
-qx.Proto.isColumnSortable = function(columnIndex)
-{
-  return false;
-};
-
-
-// overridden
-qx.Proto.sortByColumn = function(columnIndex, ascending)
-{
-  throw new Error("Trees can not be sorted by column");
-};
-
-
-/**
- * Returns the column index the model is sorted by. This model is never
- * sorted, so -1 is returned.
- *
- * @return {Integer}
- *   -1, to indicate that the model is not sorted.
- */
-qx.Proto.getSortColumnIndex = function()
-{
-  return -1;
-};
-
-
-/**
- * Specifies which column the tree is to be displayed in.  The tree is
- * displayed using the SimpleTreeDataCellRenderer.  Other columns may be
- * provided which use different cell renderers.
- *
- * @param columnIndex {Integer}
- *   The index of the column in which the tree should be displayed.
- */
-qx.Proto.setTreeColumn = function(columnIndex)
-{
-  this._treeColumn = columnIndex;
-};
-
-
-/**
- * Get the column in which the tree is to be displayed.
- *
- * @return {Integer}
- *   The column in whcih the tree is to be displayed
- */
-qx.Proto.getTreeColumn = function()
-{
-  return this._treeColumn;
-};
-
-
-// overridden
-qx.Proto.getRowCount = function()
-{
-  return this._rowArr.length;
-};
-
-
-// overridden
-qx.Proto.getRowData = function(rowIndex)
-{
-  return this._rowArr[rowIndex];
-};
-
-
-// overridden
-qx.Proto.getValue = function(columnIndex, rowIndex)
-{
-  if (rowIndex < 0 || rowIndex >= this._rowArr.length)
-  {
-    throw new Error ("this._rowArr row " +
-                     "(" + rowIndex + ") out of bounds: " +
-                     this._rowArr +
-                     " (0.." +
-                     (this._rowArr.length - 1) + ")");b
-  }
-
-  if (columnIndex < 0 || columnIndex >= this._rowArr[rowIndex].length)
-  {
-    throw new Error ("this._rowArr column " +
-                     "(" + columnIndex + ") out of bounds: " +
-                     this._rowArr[rowIndex] +
-                     " (0.." +
-                     (this._rowArr[rowIndex].length - 1) + ")");
-  }
-
-  return this._rowArr[rowIndex][columnIndex];
-};
-
-
-/**
- * Add a node to the tree.
- *
- * NOTE: This method is for <b>internal use</b> and should not be called by
- *       users of this class.  Instead, call {@link #addBranch} or {@link
- *       #addLeaf}.  There is no guarantee that the interface to this method
- *       will remain unchanged over time.
- *
- * @param parentNodeId {Integer}
- *   The node id of the parent of the node being added
- *
- * @param label {String}
- *   The string to display as the label for this node
- *
- * @param bOpened {Integer}
- *   <i>true</i> if the tree should be rendered in its opened state;
- *   <i>false</i> otherwise.
- *
- * @param bHideOpenCloseButton
- *   <i>true</i> if the open/close button should be hidden (not displayed);
- *   </i>false</i> to display the open/close button for this node.
- *
- * @param type {Integer}
- *   The type of node being added.  The type determines whether children may
- *   be added, and determines the default icons to use.  This parameter must
- *   be one of the following values:
- *   <dl>
- *     <dt>qx.ui.treevirtual.SimpleTreeDataModel.Type.BRANCH</dt>
- *     <dd>
- *       This node is a branch.  A branch node may have children.
- *     </dd>
- *     <dt>qx.ui.treevirtual.SimpleTreeDataModel.Type.LEAF</dt>
- *     <dd>
- *       This node is a leaf, and may not have children
- *     </dd>
- *   </dl>
- *
- * @param icon {String}
- *   The relative (subject to alias expansion) or full path of the icon to
- *   display for this node when it is not a selected node.
- *
- * @param iconSelected {String}
- *   The relative (subject to alias expansion) or full path of the icon to
- *   display for this node when it is a selected node.
- *
- * @return {Integer}
- *   The node id of the newly-added node.
- */
-qx.Proto._addNode = function(parentNodeId,
-                             label,
-                             bOpened,
-                             bHideOpenCloseButton,
-                             type,
-                             icon,
-                             iconSelected)
-{
-  var parentNode;
-
-  // Ensure that if parent was specified, it exists
-  if (parentNodeId)
-  {
-    parentNode = this._nodeArr[parentNodeId];
-    if (! parentNode)
-    {
-        throw new Error("Request to add a child to a non-existent parent");
-    }
-
-    // Ensure parent isn't a leaf
-    if (parentNode.type == qx.ui.treevirtual.SimpleTreeDataModel.Type.LEAF)
-    {
-      throw new Error("Sorry, a LEAF may not have children.");
-    }
-  }
-  else
-  {
-    // This is a child of the root
-    parentNode = this._nodeArr[0];
-    parentNodeId = 0;
-  }
-
-  // If this is a leaf, we don't present open/close icon
-  if (type == qx.ui.treevirtual.SimpleTreeDataModel.Type.LEAF)
-  {
-    // mask off the opened bit but retain the hide open/close button bit
-    bOpened = false;
-    bHideOpenClose = false;
-  }
-
-  // Determine the node id of this new node
-  var nodeId = this._nodeArr.length;
-
-  // Set the data for this node.
-  var node =
-    {
-      type           : type,
-      parentNodeId   : parentNodeId,
-      label          : label,
-      bSelected      : false,
-      bOpened        : bOpened,
-      bHideOpenClose : bHideOpenCloseButton,
-      icon           : icon,
-      iconSelected   : iconSelected,
-      children       : [ ],
-      columnData     : [ ]
-    };
-
-  // Add this node to the array
-  this._nodeArr.push(node);
-
-  // Add this node to its parent's child array.
-  parentNode.children.push(nodeId);
-
-  // Return the node id we just added
-  return nodeId;
-};
-
-
-
-/**
- * Add a branch to the tree.
- *
- * @param parentNodeId {Integer}
- *   The node id of the parent of the node being added
- *
- * @param label {String}
- *   The string to display as the label for this node
- *
- * @param bOpened {Boolean}
- *   <i>True</i> if the branch should be rendered in its opened state;
- *   <i>false</i> otherwise.
- *
- * @param bHideOpenCloseButton {Boolean}
- *   <i>True</i> if the open/close button should not be displayed;
- *   <i>false</i> if the open/close button should be displayed
- *
- * @param icon {String}
- *   The relative (subject to alias expansion) or full path of the icon to
- *   display for this node when it is not a selected node.
- *
- * @param iconSelected {String}
- *   The relative (subject to alias expansion) or full path of the icon to
- *   display for this node when it is a selected node.
- *
- * @return {Integer}
- *   The node id of the newly-added branch.
- */
-qx.Proto.addBranch = function(parentNodeId,
-                              label,
-                              bOpened,
-                              bHideOpenCloseButton,
-                              icon,
-                              iconSelected)
-{
-  return this._addNode(parentNodeId,
-                       label,
-                       bOpened,
-                       bHideOpenCloseButton,
-                       qx.ui.treevirtual.SimpleTreeDataModel.Type.BRANCH,
-                       icon,
-                       iconSelected);
-};
-
-
-/**
- * Add a leaf to the tree.
- *
- * @param parentNodeId {Integer}
- *   The node id of the parent of the node being added
- *
- * @param label {String}
- *   The string to display as the label for this node
- *
- * @param icon {String}
- *   The relative (subject to alias expansion) or full path of the icon to
- *   display for this node when it is not a selected node.
- *
- * @param iconSelected {String}
- *   The relative (subject to alias expansion) or full path of the icon to
- *   display for this node when it is a selected node.
- *
- * @return {Integer}
- *   The node id of the newly-added leaf.
- */
-qx.Proto.addLeaf = function(parentNodeId,
-                            label,
-                            icon,
-                            iconSelected)
-{
-  return this._addNode(parentNodeId,
-                       label,
-                       false,
-                       false,
-                       qx.ui.treevirtual.SimpleTreeDataModel.Type.LEAF,
-                       icon,
-                       iconSelected);
-};
-
-
-/**
- * Prune the tree by removing, recursively, all of a node's children.  If
- * requested, also remove the node itself.
- *
- * @param nodeId {Integer}
- *   The node id, previously returned by {@link #addLeaf} or {@link
- *   #addBranch}, of the node (and its children) to be pruned from the tree.
- *
- * @param bSelfAlso {Boolean}
- *   If <i>true</i> then remove the node identified by <i>nodeId</i> as well
- *   as all of the children.
- */
-qx.Proto.prune = function(nodeId, bSelfAlso)
-{
-  // First, recursively remove all children
-  for (var i = this._nodeArr[nodeId].children.length - 1; i >= 0; i--)
-  {
-    this.prune(this._nodeArr[nodeId].children[i], true);
-  }
-
-  if (bSelfAlso)
-  {
-    // Delete ourself from our parent's children list
-    var node = this._nodeArr[nodeId];
-    qx.lang.Array.remove(this._nodeArr[node.parentNodeId].children, nodeId);
-
-    // Delete ourself from the selections list, if we're in it.
-    if (this._selections[nodeId])
-    {
-      delete this._selections[nodeId];
-    }
-
-    // We can't splice the node itself out, because that would muck up the
-    // nodeId == index correspondence.  Instead, just replace the node with
-    // null so its index just becomes unused.
-    this._nodeArr[nodeId] = null;
-  }
-};
-
-
-
-/**
- * Sets the whole data en bulk, or notifies the data model that node
- * modifications are complete.
- *
- * @param nodeArr {Array | null}
- *   Pass either an Array of node objects, or null.
- *   </p><p>
- *   If non-null, nodeArr is an array of node objects containing the entire
- *   tree to be displayed.  If loading the whole data en bulk in this way, it
- *   is assumed that the data is correct!  No error checking or validation is
- *   done.  You'd better know what you're doing!  Caveat emptor.
- *   </p><p>
- *   If nodeArr is null, then this call is a notification that the user has
- *   completed building or modifying a tree by issuing a series of calls to
- *   {@link #addBranch} and/or {@link #addLeaf}.
- *   <p>
- */
-qx.Proto.setData = function(nodeArr)
-{
-  var _this = this;
-
-  function render()
-  {
-    var inorder = function(nodeId, level)
-    {
-      var child = null;
-      var childNodeId;
-
-      // For each child of the specified node...
-      var numChildren = _this._nodeArr[nodeId].children.length;
-      for (var i = 0; i < numChildren; i++)
-      {
-        // Determine the node id of this child
-        childNodeId = _this._nodeArr[nodeId].children[i];
-
-        // Get the child node
-        child = _this._nodeArr[childNodeId];
-
-        // Skip deleted nodes
-        if (child == null)
-        {
-          continue;
-        }
-
-        // Listeners will need to know a node's id when they receive an event
-        child.nodeId = childNodeId;
-
-        // (Re-)assign this node's level
-        child.level = level;
-
-        // Determine if we're the first child of our parent
-        child.bFirstChild = (i == 0);
-
-        // Determine if we're the last child of our parent
-        child.lastChild = [ i == numChildren - 1 ];
-
-        // Get our parent.
-        var parent = _this._nodeArr[child.parentNodeId];
-
-        // For each parent node, determine if it is a last child
-        while (parent.nodeId)
-        {
-          var bLast = parent.lastChild[parent.lastChild.length - 1];
-          child.lastChild.unshift(bLast);
-          parent = _this._nodeArr[parent.parentNodeId];
-        }
-
-        // Ensure there's an entry in the columnData array for each column
-        if (! child.columnData)
-        {
-          child.columnData = [ ];
-        }
-
-        if (child.columnData.length < _this.getColumnCount())
-        {
-          child.columnData[_this.getColumnCount() - 1] = null;
-        }
-
-        // Add this node to the row array.  Initialize a row data array.
-        var rowData = [ ];
-
-        // If additional column data is provided...
-        if (child.columnData)
-        {
-          // ... then add each column data.
-          for (var j = 0; j < child.columnData.length; j++)
-          {
-            // Is this the tree column?
-            if (j == _this._treeColumn)
-            {
-              // Yup.  Add the tree node data
-              rowData.push(child);
-            }
-            else
-            {
-              // Otherwise, add the column data verbatim.
-              rowData.push(child.columnData[j]);
-            }
-          }
-        }
-        else
-        {
-          // No column data.  Just add the tree node.
-          rowData.push(child);
-        }
-
-        // If this node is selected, ...
-        if (child.bSelected)
-        {
-          // ... indicate so for the row.
-          rowData.selected = true;
-        }
-
-        // Track the _rowArr index for each node so we can handle selections
-        _this._nodeRowMap[child.nodeId] = _this._rowArr.length;
-
-        // Add the row data to the row array
-        _this._rowArr.push(rowData)
-
-        // If this child is opened, ...
-        if (child.bOpened)
-        {
-          // ... then add its children too.
-          inorder(childNodeId, level + 1);
-        }
-      }
-    }
-
-    // Reset the row array
-    _this._rowArr = [];
-
-    // Reset the _nodeArr -> _rowArr map
-    _this._nodeRowMap = [ ];
-
-    // Begin in-order traversal of the tree from the root to regenerate _rowArr
-    inorder(0, 1);
-
-    // Inform the listeners
-    if (_this.hasEventListeners(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED))
-    {
-      var data =
-        {
-          firstRow        : 0,
-          lastRow         : _this._rowArr.length - 1,
-          firstColumn     : 0,
-          lastColumn      : _this.getColumnCount() - 1
-        };
-
-      _this.dispatchEvent(new qx.event.type.DataEvent(
-                            qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED,
-                            data),
-                          true);
-    }
-  }
-
-  if (nodeArr instanceof Array)
-  {
-    // Determine the set of selected nodes
-    for (i = 0; i < nodeArr.length; i++)
-    {
-      if (nodeArr[i].selected)
-      {
-        this._selections[i] = true;
-      }
-    }
-
-    // Save the user-supplied data.
-    this._nodeArr = nodeArr;
-  }
-  else if (nodeArr !== null && nodeArr !== undefined)
-  {
-    throw new Error("Expected array of node objects or null/undefined; got " +
-                    typeof(nodeArr));
-  }
-
-  // Re-render the row array
-  render();
-};
-
-
-/**
- * Return the array of node data.
- *
- * @return {Array}
- *   Array of node objects.  See {@link qx.ui.treevirtual.SimpleTreeDataModel}
- *   for a description nodes in this array.
- */
-qx.Proto.getData = function()
-{
-  return this._nodeArr;
-};
-
-
-
-/**
- * Add data to an additional column (a column other than the tree column) of
- * the tree.
- *
- * @param nodeId
- *   A node identifier, as previously returned by {@link #addBranch} or {@link
- *   addLeaf}.
- *
- * @param columnIndex
- *   The column number to which the provided data applies
- *
- * @param data
- *   The cell data for the specified column
- */
-qx.Proto.setColumnData = function(nodeId, columnIndex, data)
-{
-  this._nodeArr[nodeId].columnData[columnIndex] = data;
-}
-
-
-/**
- * Set state attributes of a node.
- *
- * @param nodeId {Integer}
- *   A node identifier, as previously returned by {@link #addBranch} or {@link
- *   addLeaf}.
- *
- * @param attributes {Map}
- *   Each property name in the map may correspond to the property names of a
- *   node which are specified as <i>USER-PROVIDED ATTRIBUTES</i> in {@link
- *   #SimpleTreeDataModel}.  Each property value will be assigned to the
- *   corresponding property of the node specified by nodeId.
- */
-qx.Proto.setState = function(nodeId, attributes)
-{
-  for (var attribute in attributes)
-  {
-    // If the selected state is changing...
-    if (attribute == "bSelected")
-    {
-      // ... then keep track of what is selected
-      if (attributes[attribute])
-      {
-        this._selections[nodeId] = true;
-      }
-      else
-      {
-        delete this._selections[nodeId];
-      }
-    }
-
-    this._nodeArr[nodeId][attribute] = attributes[attribute];
-  }
-};
-
-
-/**
- * Return the mapping of nodes to rendered rows.  This function is intended
- * for use by the cell renderer, not by users of this class.
- *
- * @return {Array}
- *   The array containing mappings of nodes to rendered rows.
- */
-qx.Proto.getNodeRowMap = function()
-{
-  return this._nodeRowMap;
-};
-
-
-/*
- * Clear all selections in the data model.  This method does not clear
- * selections displayed in the widget, and is intended for internal use, not
- * by users of this class.
- */
-qx.Proto._clearSelections = function()
-{
-  // Clear selected state for any selected nodes.
-  for (var selection in this._selections)
-  {
-    this._nodeArr[selection].bSelected = false;
-  }
-
-  // Reinitialize selections array.
-  this._selections = { };
-};
-
-
-/**
- * Return the nodes that are currently selected.
- *
- * @return {Array}
- *   An array containing the nodes that are currently selected.
- */
-qx.Proto.getSelectedNodes = function()
-{
-  var nodes = [ ];
-
-  for (var nodeId in this._selections)
-  {
-    nodes.push(this._nodeArr[nodeId]);
-  }
-
-  return nodes;
-};
-
-
-// We currently support these types of tree nodes
-qx.Class.Type = {};
-qx.Class.Type.LEAF            = 1;
-qx.Class.Type.BRANCH          = 2;
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/SimpleTreeDataRowRenderer.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/SimpleTreeDataRowRenderer.js
deleted file mode 100644 (file)
index 33ae271..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2007 Derrell Lipman
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Derrell Lipman (derrell)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(treevirtual)
-
-************************************************************************ */
-
-/**
- * A data row renderer for a simple tree row
- */
-qx.OO.defineClass("qx.ui.treevirtual.SimpleTreeDataRowRenderer",
-                  qx.ui.table.DefaultDataRowRenderer,
-function()
-{
-  qx.ui.table.DefaultDataRowRenderer.call(this);
-});
-
-
-// overridden
-qx.Proto.updateDataRowElement = function(rowInfo, rowElem)
-{
-  // If the node is selected, select the row
-  var tree = rowInfo.table;
-  var rowData = rowInfo.rowData;
-  var tableModel = tree.getTableModel();
-  var treeCol = tableModel.getTreeColumn();
-  var node = rowData[treeCol];
-
-  // Set the row's selected state based on the data model
-  rowInfo.selected = node.bSelected;
-
-  if (node.bSelected)
-  {
-    // Ensure that the selection model knows it's selected
-    var nodeRowMap = tableModel.getNodeRowMap();
-    var row = nodeRowMap[node.nodeId];
-    tree.getSelectionModel()._addSelectionInterval(row, row);
-  }
-
-  // Now call our superclass
-  var ddrr = qx.ui.table.DefaultDataRowRenderer;
-  ddrr.prototype.updateDataRowElement.call(this, rowInfo, rowElem);
-};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/TreeVirtual.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/treevirtual/TreeVirtual.js
deleted file mode 100644 (file)
index 3b7df7d..0000000
+++ /dev/null
@@ -1,824 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2007 Derrell Lipman
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Derrell Lipman (derrell)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(treevirtual)
-
-************************************************************************ */
-
-/**
- * A "virtual" tree
- *
- * @event treeOpenWithContent {qx.event.type.DataEvent}
- * @event treeOpenWhileEmpty {qx.event.type.DataEvent}
- * @event treeClose {qx.event.type.DataEvent}
- * @event changeSelection {qx.event.type.Event}
- *
- * WARNING: This widget is in active development and the interface to it is
- *          very likely to change, possibly on a daily basis, for a while.  Do
- *          not use this widget yet.
- *
- */
-qx.OO.defineClass("qx.ui.treevirtual.TreeVirtual", qx.ui.table.Table,
-function(headings)
-{
-  // Create a table model
-  var tableModel = new qx.ui.treevirtual.SimpleTreeDataModel();
-
-  // Specify the column headings.  We accept a single string (one single
-  // column) or an array of strings (one or more columns).
-  if (typeof(headings) == "string")
-  {
-    headings = [ headings ];
-  }
-  tableModel.setColumns(headings);
-
-  this.setNewSelectionManager(
-      function(obj)
-      {
-        return new qx.ui.treevirtual.SelectionManager(obj);
-      });
-
-  this.setNewTableColumnModel(
-      function(obj)
-      {
-        return new qx.ui.table.ResizeTableColumnModel(obj);
-      });
-
-  // Call our superclass constructor
-  qx.ui.table.Table.call(this, tableModel);
-
-  // By default, present the column visibility button only if there are
-  // multiple columns.
-  this.setColumnVisibilityButtonVisible(headings.length > 1);
-
-  // Set sizes
-  this.setRowHeight(16);
-  this.setMetaColumnCounts(headings.length > 1 ? [ 1, -1 ] : [ 1 ]);
-
-  // Set the data cell render.  We use the SimpleTreeDataCellRenderer for the
-  // tree column, and our DefaultDataCellRenderer for all other columns.
-  var stdcr = new qx.ui.treevirtual.SimpleTreeDataCellRenderer();
-  var ddcr = new qx.ui.treevirtual.DefaultDataCellRenderer();
-  var tcm = this.getTableColumnModel();
-  var treeCol = this.getTableModel().getTreeColumn();
-  for (var i = 0; i < headings.length; i++)
-  {
-    tcm.setDataCellRenderer(i, i == treeCol ? stdcr : ddcr);
-  }
-
-  // Set the data row renderer.
-  this.setDataRowRenderer(new qx.ui.treevirtual.SimpleTreeDataRowRenderer());
-
-  // We need our cell renderer called on selection change, to update the icon
-  this.setAlwaysUpdateCells(true);
-
-  // Move the focus with the mouse
-  this.setFocusCellOnMouseMove(true);
-
-  // Change focus colors.  Make them less obtrusive.
-  this.setRowColors(
-    {
-      bgcolFocused             : "#f0f0f0",
-      bgcolFocusedBlur         : "#f0f0f0"
-    });
-
-  // Set the cell focus color
-  this.setCellFocusAttributes({ backgroundColor : "lightblue" });
-
-/*
-  // Use this instead, to help determine which does what
-  this.setRowColors(
-    {
-      bgcolFocusedSelected     : "cyan",
-      bgcolFocusedSelectedBlur : "green",
-      bgcolFocused             : "yellow",
-      bgcolFocusedBlur         : "blue",
-      bgcolSelected            : "red",
-      bgcolSelectedBlur        : "pink",
-    });
-*/
-
-  // Get the list of pane scrollers
-  var scrollers = this._getPaneScrollerArr();
-
-  // For each scroller...
-  for (var i = 0; i < scrollers.length; i++)
-  {
-    // ... remove the outline on focus,
-    scrollers[i]._focusIndicator.setAppearance("treevirtual-focus-indicator");
-
-    // ... and set the pane scrollers to handle the selection before
-    // displaying the focus, so we can manipulate the selected icon.
-    scrollers[i].setSelectBeforeFocus(true);
-  }
-});
-
-
-/**
- * Whether a click on the open/close button should also cause selection of the
- * row.
- */
-qx.OO.addProperty(
-  {
-    name         : "openCloseClickSelectsRow",
-    type         : "boolean",
-    defaultValue : false,
-    getAlias     : "openCloseClickSelectsRow"
-  });
-
-
-/**
- * Return the data model for this tree.
- */
-qx.Proto.getDataModel = function()
-{
-  return this.getTableModel();
-};
-
-
-/**
- * Set whether lines linking tree children shall be drawn on the tree.
- *
- * @param b {Boolean}
- *   <i>true</i> if tree lines should be shown; <i>false</i> otherwise.
- */
-qx.Proto.setUseTreeLines = function(b)
-{
-  var stdcm = this.getTableModel();
-  var treeCol = stdcm.getTreeColumn();
-  var dcr = this.getTableColumnModel().getDataCellRenderer(treeCol);
-  dcr.setUseTreeLines(b);
-
-  // Inform the listeners
-  if (stdcm.hasEventListeners(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED))
-  {
-    var data =
-      {
-        firstRow        : 0,
-        lastRow         : stdcm._rowArr.length - 1,
-        firstColumn     : 0,
-        lastColumn      : stdcm.getColumnCount() - 1
-      };
-
-    stdcm.dispatchEvent(new qx.event.type.DataEvent(
-                          qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED,
-                          data),
-                        true);
-  }
-};
-
-
-/**
- * Get whether lines linking tree children shall be drawn on the tree.
- *
- * @return {Boolean}
- *   <i>true</i> if tree lines are in use; <i>false</i> otherwise.
- */
-qx.Proto.getUseTreeLines = function()
-{
-  var treeCol = this.getTableModel().getTreeColumn();
-  var dcr = this.getTableColumnModel().getDataCellRenderer(treeCol);
-  return dcr.getUseTreeLines();
-}
-
-
-/**
- * Set whether the open/close button should be displayed on a branch, even if
- * the branch has no children.
- *
- * @param b {Boolean}
- *   <i>true</i> if the open/close button should be shown; <i>false</i>
- *   otherwise.
- */
-qx.Proto.setAlwaysShowOpenCloseSymbol = function(b)
-{
-  var stdcm = this.getTableModel();
-  var treeCol = stdcm.getTreeColumn();
-  var dcr = this.getTableColumnModel().getDataCellRenderer(treeCol);
-  dcr.setAlwaysShowOpenCloseSymbol(b);
-
-  // Inform the listeners
-  if (stdcm.hasEventListeners(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED))
-  {
-    var data =
-      {
-        firstRow        : 0,
-        lastRow         : stdcm._rowArr.length - 1,
-        firstColumn     : 0,
-        lastColumn      : stdcm.getColumnCount() - 1
-      };
-
-    stdcm.dispatchEvent(new qx.event.type.DataEvent(
-                          qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED,
-                          data),
-                        true);
-  }
-};
-
-
-/**
- * Set whether drawing of first-level tree-node lines are disabled even if
- * drawing of tree lines is enabled.  (See also @link {#setUseTreeLines})
- *
- * @param b {Boolean}
- *   <i>true</i> if first-level tree lines should be disabled;
- *   <i>false</i> for normal operation.
- */
-qx.Proto.setExcludeFirstLevelTreeLines = function(b)
-{
-  var stdcm = this.getTableModel();
-  var treeCol = stdcm.getTreeColumn();
-  var dcr = this.getTableColumnModel().getDataCellRenderer(treeCol);
-  dcr.setExcludeFirstLevelTreeLines(b);
-
-  // Inform the listeners
-  if (stdcm.hasEventListeners(qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED))
-  {
-    var data =
-      {
-        firstRow        : 0,
-        lastRow         : stdcm._rowArr.length - 1,
-        firstColumn     : 0,
-        lastColumn      : stdcm.getColumnCount() - 1
-      };
-
-    stdcm.dispatchEvent(new qx.event.type.DataEvent(
-                          qx.ui.table.TableModel.EVENT_TYPE_DATA_CHANGED,
-                          data),
-                        true);
-  }
-};
-
-
-/**
- * Get whether drawing of first-level tree lines should be disabled even if
- * drawing of tree lines is enabled.  (See also {@link #getUseTreeLines})
- *
- * @return {Boolean}
- *   <i>true</i> if tree lines are in use; <i>false</i> otherwise.
- */
-qx.Proto.getExcludeFirstLevelTreeLines = function()
-{
-  var treeCol = this.getTableModel().getTreeColumn();
-  var dcr = this.getTableColumnModel().getDataCellRenderer(treeCol);
-  return dcr.getExcludeFirstLevelTreeLines();
-}
-
-
-/**
- * Set whether the open/close button should be displayed on a branch, even if
- * the branch has no children.
- *
- * @return {Boolean}
- *   <i>true</i> if tree lines are in use; <i>false</i> otherwise.
- */
-qx.Proto.getAlwaysShowOpenCloseSymbol = function()
-{
-  var treeCol = this.getTableModel().getTreeColumn();
-  var dcr = this.getTableColumnModel().getDataCellRenderer(treeCol);
-  return dcr.getAlwaysShowOpenCloseSymbol();
-};
-
-
-/**
- * Set the selection mode.
- *
- * @param mode {Integer}
- *   The selection mode to be used.  It may be any of:
- *   <pre>
- *     qx.ui.treevirtual.SelectionMode.NONE:
- *        Nothing can ever be selected.
- *
- *     qx.ui.treevirtual.SelectionMode.SINGLE
- *        Allow only one selected item.
- *
- *     qx.ui.treevirtual.SelectionMode.SINGLE_INTERVAL
- *        Allow one contiguous interval of selected items.
- *
- *     qx.ui.treevirtual.SelectionMode.MULTIPLE_INTERVAL
- *        Allow any selected items, whether contiguous or not.
- *   </pre>
- */
-qx.Proto.setSelectionMode = function(mode)
-{
-  this.getSelectionModel().setSelectionMode(mode);
-}
-
-/**
- * Get the selection mode currently in use.
- *
- * @return {Integer}
- *   One of the values documented in {@link #setSelectionMode}
- */
-qx.Proto.getSelectionMode = function(mode)
-{
-  return this.getSelectionModel().getSelectionMode();
-}
-
-
-/**
- * Toggle the opened state of the node: if the node is opened, close
- * it; if it is closed, open it.
- *
- * @param node {Object}
- *   The object representing the node to have its opened/closed state
- *   toggled.
- */
-qx.Proto.toggleOpened = function(node)
-{
-  // Are we opening or closing?
-  if (node.bOpened)
-  {
-    // We're closing.  If there are listeners, generate a treeClose event.
-    this.createDispatchDataEvent("treeClose", node);
-  }
-  else
-  {
-    // We're opening.  Are there any children?
-    if (node.children.length > 0)
-    {
-      // Yup.  If there any listeners, generate a "treeOpenWithContent" event.
-      this.createDispatchDataEvent("treeOpenWithContent", node);
-    }
-    else
-    {
-      // No children.  If there are listeners, generate a "treeOpenWhileEmpty"
-      // event.
-      this.createDispatchDataEvent("treeOpenWhileEmpty", node);
-    }
-  }
-
-  // Event handler may have modified the opened state.  Check before toggling.
-  if (! node.bHideOpenClose)
-  {
-    // It's still boolean.  Toggle the state
-    node.bOpened = ! node.bOpened;
-
-    // Get the selection model
-    var sm = this.getSelectionModel();
-
-    // Get the data model
-    var dm = this.getTableModel();
-
-    // Determine if this node was selected
-    var rowIndex = dm.getNodeRowMap()[node.nodeId];
-
-    // Clear the old selections in the tree
-    this.getSelectionModel()._clearSelection();
-  }
-
-  // Re-render the row data since formerly visible rows may now be invisible,
-  // or vice versa.
-  this.getTableModel().setData();
-};
-
-
-/**
- * Set state attributes of a tree node.
- *
- * @param nodeId {Integer}
- *   The node identifier (returned by addBranch() or addLeaf()) representing
- *   the node for which attributes are being set.
- *
- * @param attributes {Map}
- *   Map with the node properties to be set.  The map may contain any of the
- *   properties described in {@link qx.ui.treevirtual.SimpleTreeDataModel}
- */
-qx.Proto.setState = function(nodeId, attributes)
-{
-  this.getTableModel().setState(nodeId, attributes);
-};
-
-
-/**
- * Allow setting the tree row colors.
- *
- * @param colors {Map}
- *    The value of each property in the map is a string containing either a
- *    number (e.g. "#518ad3") or color name ("white") representing the color
- *    for that type of display.  The map may contain any or all of the
- *    following properties:
- *    <ul>
- *      <li>bgcolFocusedSelected</li>
- *      <li>bgcolFocusedSelectedBlur</li>
- *      <li>bgcolFocused</li>
- *      <li>bgcolFocusedBlur</li>
- *      <li>bgcolSelected</li>
- *      <li>bgcolSelectedBlur</li>
- *      <li>bgcolEven</li>
- *      <li>bgcolOdd</li>
- *      <li>colSelected</li>
- *      <li>colNormal</li>
- *    </ul>
- */
-qx.Proto.setRowColors = function(colors)
-{
-  this.getDataRowRenderer().setRowColors(colors);
-};
-
-
-/**
- * Set the attributes used to indicate the cell that has the focus.
- *
- * @param attributes {Map}
- *   The set of attributes that the cell focus indicator should have.  This is
- *   in the format required to call the <i>set()</i> method of a widget, e.g.
- *   <p>
- *   { backgroundColor: blue }
- *   <p>
- *   If not otherwise specified, the opacity is set to 0.2 so that the cell
- *   data can be seen "through" the cell focus indicator which overlays it.
- *   <p>
- *   For no visible focus indicator, use { backgroundColor : "transparent" }
- *   <p>
- *   The focus indicator is a box the size of the cell, which overlays the
- *   cell itself.  There is no text in the focus indicator itself, so it makes
- *   no sense to set the color attribute or any other attribute that affects
- *   fonts.
- */
-qx.Proto.setCellFocusAttributes = function(attributes)
-{
-  // Add an opacity attribute so what's below the focus can be seen
-  if (! attributes.opacity)
-  {
-    attributes.opacity = 0.2;
-  }
-
-  var scrollers = this._getPaneScrollerArr();
-  for (var i = 0; i < scrollers.length; i++)
-  {
-    scrollers[i]._focusIndicator.set(attributes);
-  }
-};
-
-
-/**
- * Event handler. Called when a key was pressed.
- *
- * We handle the Enter key to toggle opened/closed tree state.  All
- * other keydown events are passed to our superclass.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onkeydown = function(evt)
-{
-  if (! this.getEnabled()) {
-    return;
-  }
-
-  var identifier = evt.getKeyIdentifier();
-
-  var consumed = false;
-  var modifiers = evt.getModifiers();
-  if (modifiers == 0)
-  {
-    switch (identifier)
-    {
-    case "Enter":
-      // Get the data model
-      var dm = this.getTableModel();
-
-      // Get the focused node
-      var focusedRow = this.getFocusedRow();
-      var treeCol = dm.getTreeColumn();
-      var node = dm.getValue(treeCol, focusedRow);
-
-      if (! node.bHideOpenClose)
-      {
-        this.toggleOpened(node);
-      }
-      consumed = true;
-      break;
-
-    case "Left":
-      this.moveFocusedCell(-1, 0);
-      break;
-
-    case "Right":
-      this.moveFocusedCell(1, 0);
-      break;
-    }
-  }
-  else if (modifiers == qx.event.type.DomEvent.CTRL_MASK)
-  {
-    switch (identifier)
-    {
-    case "Left":
-      // Get the data model
-      var dm = this.getTableModel();
-
-      // Get the focused node
-      var focusedRow = this.getFocusedRow();
-      var treeCol = dm.getTreeColumn();
-      var node = dm.getValue(treeCol, focusedRow);
-
-      // If it's an open branch and open/close is allowed...
-      if (node.type == qx.ui.treevirtual.SimpleTreeDataModel.Type.BRANCH &&
-          ! node.bHideOpenClose &&
-          node.bOpened)
-      {
-        // ... then close it
-        this.toggleOpened(node);
-      }
-
-      // Reset the focus to the current node
-      this.setFocusedCell(treeCol, focusedRow, true);
-
-      consumed = true;
-      break;
-
-    case "Right":
-      // Get the data model
-      var dm = this.getTableModel();
-
-      // Get the focused node
-      var focusedRow = this.getFocusedRow();
-      var treeCol = dm.getTreeColumn();
-      var node = dm.getValue(treeCol, focusedRow);
-
-      // If it's a closed branch and open/close is allowed...
-      if (node.type == qx.ui.treevirtual.SimpleTreeDataModel.Type.BRANCH &&
-          ! node.bHideOpenClose &&
-          ! node.bOpened)
-      {
-        // ... then open it
-        this.toggleOpened(node);
-      }
-
-      // Reset the focus to the current node
-      this.setFocusedCell(treeCol, focusedRow, true);
-
-      consumed = true;
-      break;
-    }
-  }
-  else if (modifiers == qx.event.type.DomEvent.SHIFT_MASK)
-  {
-    switch (identifier)
-    {
-      case "Left":
-      // Get the data model
-      var dm = this.getTableModel();
-
-      // Get the focused node
-      var focusedRow = this.getFocusedRow();
-      var treeCol = dm.getTreeColumn();
-      var node = dm.getValue(treeCol, focusedRow);
-
-      // If we're not at the top-level already...
-      if (node.parentNodeId)
-      {
-        // Find out what rendered row our parent node is at
-        var rowIndex = dm.getNodeRowMap()[node.parentNodeId];
-
-        // Set the focus to our parent
-        this.setFocusedCell(this._focusedCol, rowIndex, true);
-      }
-
-      consumed = true;
-      break;
-
-      case "Right":
-      // Get the data model
-      var dm = this.getTableModel();
-
-      // Get the focused node
-      var focusedRow = this.getFocusedRow();
-      var treeCol = dm.getTreeColumn();
-      var node = dm.getValue(treeCol, focusedRow);
-
-      // If we're on a branch and open/close is allowed...
-      if (node.type == qx.ui.treevirtual.SimpleTreeDataModel.Type.BRANCH &&
-          ! node.bHideOpenClose)
-      {
-        // ... then first ensure the branch is open
-        if (! node.bOpened)
-        {
-          this.toggleOpened(node);
-        }
-
-        // If this node has children...
-        if (node.children.length > 0)
-        {
-          // ... then move the focus to the first child
-          this.moveFocusedCell(0, 1);
-        }
-      }
-
-      consumed = true;
-      break;
-    }
-  }
-
-  // Was this one of our events that we handled?
-  if (consumed)
-  {
-    // Yup.  Don't propagate it.
-    evt.preventDefault();
-    evt.stopPropagation();
-  }
-  else
-  {
-    // It's not one of ours.  Let our superclass handle this event
-    qx.ui.table.Table.prototype._onkeydown.call(this, evt);
-  }
-};
-
-
-qx.Proto._onkeypress = function(evt)
-{
-  if (! this.getEnabled()) {
-    return;
-  }
-
-  var consumed = false;
-
-  // Handle keys that are independant from the modifiers
-  var identifier = evt.getKeyIdentifier();
-  switch (identifier)
-  {
-    // Ignore events we already handled in _onkeydown
-    case "Left":
-    case "Right":
-      consumed = true;
-      break;
-  }
-
-  if (consumed)
-  {
-    evt.preventDefault();
-    evt.stopPropagation();
-  }
-  else
-  {
-    // Let our superclass handle this event
-    qx.ui.table.Table.prototype._onkeypress.call(this, evt);
-  }
-};
-
-
-
-/**
- * Event handler. Called when the selection has changed.
- *
- * @param evt {Map} the event.
- */
-qx.Proto._onSelectionChanged = function(evt)
-{
-  // Clear the old list of selected nodes
-  this.getTableModel()._clearSelections();
-
-  // If selections are allowed, pass an event to our listeners
-  if (this.getSelectionMode() !=
-      qx.ui.treevirtual.TreeVirtual.SelectionMode.NONE)
-  {
-    var selectedNodes = this._calculateSelectedNodes();
-
-    // Get the now-focused
-    this.createDispatchDataEvent("changeSelection", selectedNodes);
-  }
-
-  // Call the superclass method
-  qx.ui.table.Table.prototype._onSelectionChanged.call(this, evt);
-};
-
-
-/**
- * Obtain the entire hierarchy of labels from the root down to the specified
- * node.
- *
- * @param nodeId {Integer}
- *   The node id of the node for which the hierarchy is desired.
- *
- * @return {Array}
- *   The returned array contains one string for each label in the hierarchy of
- *   the node specified by the parameter.  Element 0 of the array contains the
- *   label of the root node, element 1 contains the label of the node
- *   immediately below root in the specified node's hierarchy, etc., down to
- *   the last element in the array contain the label of the node referenced by
- *   the parameter.
- */
-qx.Proto.getHierarchy = function(nodeId)
-{
-  var _this = this;
-  var components = [ ];
-
-  function addHierarchy(nodeId)
-  {
-    // If we're at the root...
-    if (! nodeId)
-    {
-      // ... then we're done
-      return;
-    }
-
-    // Get the requested node
-    var node = _this.getTableModel().getData()[nodeId];
-
-    // Add its label to the hierarchy components
-    components.unshift(node.label);
-
-    // Call recursively to our parent node.
-    addHierarchy(node.parentNodeId);
-  }
-
-  addHierarchy(nodeId);
-  return components;
-}
-
-
-/**
- * Calculate and return the set of nodes which are currently selected by the
- * user, on the screen.  In the process of calculating which nodes are
- * selected, the nodes corresponding to the selected rows on the screen are
- * marked as selected by setting their <i>bSelected</i> property to true, and
- * all previously-selected nodes have their <i>bSelected</i> property reset to
- * false.
- *
- * @return {Array}
- *   An array of nodes matching the set of rows which are selected on the
- *   screen.
- */
-qx.Proto._calculateSelectedNodes = function()
-{
-  // Create an array of nodes that are now selected
-  var stdcm = this.getTableModel();
-  var selectedRanges = this.getSelectionModel().getSelectedRanges();
-  var selectedNodes = [ ];
-  var node;
-
-  for (var i = 0; i < selectedRanges.length; i++)
-  {
-    for (var j = selectedRanges[i].minIndex;
-         j <= selectedRanges[i].maxIndex;
-         j++)
-    {
-      node = stdcm.getValue(stdcm.getTreeColumn(), j);
-      stdcm.setState(node.nodeId, { bSelected : true });
-      selectedNodes.push(node);
-    }
-  }
-
-  return selectedNodes;
-};
-
-
-/**
- * Return the nodes that are currently selected.
- *
- * @return {Array}
- *   An array containing the nodes that are currently selected.
- */
-qx.Proto.getSelectedNodes = function()
-{
-  return this.getTableModel().getSelectedNodes();
-};
-
-
-/*
- * Selection Modes {int}
- *
- *   NONE
- *     Nothing can ever be selected.
- *
- *   SINGLE
- *     Allow only one selected item.
- *
- *   SINGLE_INTERVAL
- *     Allow one contiguous interval of selected items.
- *
- *   MULTIPLE_INTERVAL
- *     Allow any set of selected items, whether contiguous or not.
- */
-qx.Class.SelectionMode =
-{
-  NONE              :
-    qx.ui.table.SelectionModel.NO_SELECTION,
-
-  SINGLE            :
-    qx.ui.table.SelectionModel.SINGLE_SELECTION,
-
-  SINGLE_INTERVAL   :
-    qx.ui.table.SelectionModel.SINGLE_INTERVAL_SELECTION,
-
-  MULTIPLE_INTERVAL :
-    qx.ui.table.SelectionModel.MULTIPLE_INTERVAL_SELECTION
-};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/window/Window.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/window/Window.js
deleted file mode 100644 (file)
index fa79b51..0000000
+++ /dev/null
@@ -1,1441 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(ui_window)
-#embed(qx.widgettheme/window/*)
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.ui.window.Window", qx.ui.popup.Popup,
-function(vCaption, vIcon, vWindowManager)
-{
-  qx.ui.popup.Popup.call(this);
-
-  // ************************************************************************
-  //   FUNCTIONAL STYLE
-  // ************************************************************************
-
-  this.setMinWidth("auto");
-  this.setMinHeight("auto");
-  this.setAutoHide(false);
-
-
-
-  // ************************************************************************
-  //   MANAGER
-  // ************************************************************************
-
-  // Init Window Manager
-  this.setWindowManager(vWindowManager || qx.ui.window.Window.getDefaultWindowManager());
-
-
-
-  // ************************************************************************
-  //   RESIZE AND MOVE FRAME
-  // ************************************************************************
-
-  var f = this._frame = new qx.ui.basic.Terminator;
-  f.setAppearance("window-resize-frame");
-
-
-  // ************************************************************************
-  //   LAYOUT
-  // ************************************************************************
-
-  var l = this._layout = new qx.ui.layout.VerticalBoxLayout;
-  l.setEdge(0);
-  this.add(l);
-
-
-  // ************************************************************************
-  //   CAPTIONBAR
-  // ************************************************************************
-
-  var cb = this._captionBar = new qx.ui.layout.HorizontalBoxLayout;
-  cb.setAppearance("window-captionbar");
-  l.add(cb);
-
-
-  // ************************************************************************
-  //   CAPTIONICON
-  // ************************************************************************
-
-  if (vIcon != null)
-  {
-    var ci = this._captionIcon = new qx.ui.basic.Image(vIcon);
-    ci.setAppearance("window-captionbar-icon");
-    cb.add(ci);
-  }
-
-
-  // ************************************************************************
-  //   CAPTIONTITLE
-  // ************************************************************************
-
-  var ct = this._captionTitle = new qx.ui.basic.Label(vCaption);
-  ct.setAppearance("window-captionbar-title");
-  ct.setSelectable(false);
-  cb.add(ct);
-
-
-  // ************************************************************************
-  //   CAPTIONFLEX
-  // ************************************************************************
-
-  var cf = this._captionFlex = new qx.ui.basic.HorizontalSpacer;
-  cb.add(cf);
-
-
-  // ************************************************************************
-  //   CAPTIONBUTTONS: MINIMIZE
-  // ************************************************************************
-
-  var bm = this._minimizeButton = new qx.ui.form.Button(null, "widget/window/minimize.gif");
-
-  bm.setAppearance("window-captionbar-minimize-button");
-  bm.setTabIndex(-1);
-
-  bm.addEventListener("execute", this._onminimizebuttonclick, this);
-  bm.addEventListener("mousedown", this._onbuttonmousedown, this);
-
-  cb.add(bm);
-
-
-  // ************************************************************************
-  //   CAPTIONBUTTONS: RESTORE
-  // ************************************************************************
-
-  var br = this._restoreButton = new qx.ui.form.Button(null, "widget/window/restore.gif");
-
-  br.setAppearance("window-captionbar-restore-button");
-  br.setTabIndex(-1);
-
-  br.addEventListener("execute", this._onrestorebuttonclick, this);
-  br.addEventListener("mousedown", this._onbuttonmousedown, this);
-
-  // don't add initially
-  // cb.add(br);
-
-
-  // ************************************************************************
-  //   CAPTIONBUTTONS: MAXIMIZE
-  // ************************************************************************
-
-  var bx = this._maximizeButton = new qx.ui.form.Button(null, "widget/window/maximize.gif");
-
-  bx.setAppearance("window-captionbar-maximize-button");
-  bx.setTabIndex(-1);
-
-  bx.addEventListener("execute", this._onmaximizebuttonclick, this);
-  bx.addEventListener("mousedown", this._onbuttonmousedown, this);
-
-  cb.add(bx);
-
-
-  // ************************************************************************
-  //   CAPTIONBUTTONS: CLOSE
-  // ************************************************************************
-
-  var bc = this._closeButton = new qx.ui.form.Button(null, "widget/window/close.gif");
-
-  bc.setAppearance("window-captionbar-close-button");
-  bc.setTabIndex(-1);
-
-  bc.addEventListener("execute", this._onclosebuttonclick, this);
-  bc.addEventListener("mousedown", this._onbuttonmousedown, this);
-
-  cb.add(bc);
-
-
-  // ************************************************************************
-  //   PANE
-  // ************************************************************************
-
-  var p = this._pane = new qx.ui.layout.CanvasLayout;
-  p.setHeight("1*");
-  p.setOverflow("hidden");
-  l.add(p);
-
-
-  // ************************************************************************
-  //   STATUSBAR
-  // ************************************************************************
-
-  var sb = this._statusBar = new qx.ui.layout.HorizontalBoxLayout;
-  sb.setAppearance("window-statusbar");
-
-
-  // ************************************************************************
-  //   STATUSTEXT
-  // ************************************************************************
-
-  var st = this._statusText = new qx.ui.basic.Label("Ready");
-  st.setAppearance("window-statusbar-text");
-  st.setSelectable(false);
-  sb.add(st);
-
-
-  // ************************************************************************
-  //   INIT
-  // ************************************************************************
-
-  this.setCaption(vCaption);
-  this.setIcon(vIcon);
-
-
-  // ************************************************************************
-  //   EVENTS: WINDOW
-  // ************************************************************************
-
-  this.addEventListener("mousedown", this._onwindowmousedown, this);
-  this.addEventListener("mouseup", this._onwindowmouseup, this);
-  this.addEventListener("mousemove", this._onwindowmousemove, this);
-  this.addEventListener("click", this._onwindowclick, this);
-
-
-  // ************************************************************************
-  //   EVENTS: CAPTIONBAR
-  // ************************************************************************
-
-  cb.addEventListener("mousedown", this._oncaptionmousedown, this);
-  cb.addEventListener("mouseup", this._oncaptionmouseup, this);
-  cb.addEventListener("mousemove", this._oncaptionmousemove, this);
-  cb.addEventListener("dblclick", this._oncaptiondblblick, this);
-
-
-  // ************************************************************************
-  //   REMAPPING
-  // ************************************************************************
-  this.remapChildrenHandlingTo(this._pane);
-});
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/*!
-  Appearance of the widget
-*/
-qx.OO.changeProperty({ name : "appearance", type : "string", defaultValue : "window" });
-
-/*!
-  The windowManager to use for.
-*/
-qx.OO.addProperty({ name : "windowManager", type : "object" });
-
-/*!
-  If the window is active, only one window in a single qx.manager.object.WindowManager could
-  have set this to true at the same time.
-*/
-qx.OO.addProperty({ name : "active", type : "boolean", defaultValue : false });
-
-/*!
-  Should be window be modal (this disable minimize and maximize buttons)
-*/
-qx.OO.addProperty({ name : "modal", type : "boolean", defaultValue : false });
-
-/*!
-  Should be window be modal (this disable minimize and maximize buttons)
-*/
-qx.OO.addProperty({ name : "mode", type : "string", defaultValue : null, possibleValues : [ "minimized", "maximized" ], allowNull : true });
-
-/*!
-  The opener (button) of the window
-*/
-qx.OO.addProperty({ name : "opener", type : "object" });
-
-/*!
-  The text of the caption
-*/
-qx.OO.addProperty({ name : "caption" });
-
-/*!
-  The icon of the caption
-*/
-qx.OO.addProperty({ name : "icon", type : "string" });
-
-/*!
-  The text of the statusbar
-*/
-qx.OO.addProperty({ name : "status", type : "string", defaultValue : "Ready" });
-
-/*!
-  Should the close button be shown
-*/
-qx.OO.addProperty({ name : "showClose", type : "boolean", defaultValue : true });
-
-/*!
-  Should the maximize button be shown
-*/
-qx.OO.addProperty({ name : "showMaximize", type : "boolean", defaultValue : true });
-
-/*!
-  Should the minimize button be shown
-*/
-qx.OO.addProperty({ name : "showMinimize", type : "boolean", defaultValue : true });
-
-/*!
-  Should the statusbar be shown
-*/
-qx.OO.addProperty({ name : "showStatusbar", type : "boolean", defaultValue : false });
-
-/*!
-  Should the user have the ability to close the window
-*/
-qx.OO.addProperty({ name : "allowClose", type : "boolean", defaultValue : true });
-
-/*!
-  Should the user have the ability to maximize the window
-*/
-qx.OO.addProperty({ name : "allowMaximize", type : "boolean", defaultValue : true });
-
-/*!
-  Should the user have the ability to minimize the window
-*/
-qx.OO.addProperty({ name : "allowMinimize", type : "boolean", defaultValue : true });
-
-/*!
-  If the text (in the captionbar) should be visible
-*/
-qx.OO.addProperty({ name : "showCaption", type : "boolean", defaultValue : true });
-
-/*!
-  If the icon (in the captionbar) should be visible
-*/
-qx.OO.addProperty({ name : "showIcon", type : "boolean", defaultValue : true });
-
-/*!
-  If the window is resizeable
-*/
-qx.OO.addProperty({ name : "resizeable", type : "boolean", defaultValue : true });
-
-/*!
-  If the window is moveable
-*/
-qx.OO.addProperty({ name : "moveable", type : "boolean", defaultValue : true });
-
-/*!
-  The resize method to use
-*/
-qx.OO.addProperty({ name : "resizeMethod", type : "string", defaultValue : "frame", possibleValues : [ "opaque", "lazyopaque", "frame", "translucent" ] });
-
-/*!
-  The move method to use
-*/
-qx.OO.addProperty({ name : "moveMethod", type : "string", defaultValue : "opaque", possibleValues : [ "opaque", "frame", "translucent" ] });
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MANAGER HANDLING
----------------------------------------------------------------------------
-*/
-
-qx.ui.window.Window.getDefaultWindowManager = function()
-{
-  if (!qx.ui.window.Window._defaultWindowManager) {
-    qx.ui.window.Window._defaultWindowManager = new qx.manager.object.WindowManager;
-  }
-
-  return qx.ui.window.Window._defaultWindowManager;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-qx.Proto.getPane = function() {
-  return this._pane;
-}
-
-qx.Proto.getCaptionBar = function() {
-  return this._captionBar;
-}
-
-qx.Proto.getStatusBar = function() {
-  return this._statusBar;
-}
-
-qx.Proto.close = function() {
-  this.hide();
-}
-
-qx.Proto.open = function(vOpener)
-{
-  if (vOpener != null) {
-    this.setOpener(vOpener);
-  }
-
-  if (this.getCentered()) {
-    this.centerToBrowser();
-  }
-
-  this.show();
-}
-
-qx.Proto.focus = function() {
-  this.setActive(true);
-}
-
-qx.Proto.blur = function() {
-  this.setActive(false);
-}
-
-qx.Proto.maximize = function() {
-  this.setMode("maximized");
-}
-
-qx.Proto.minimize = function() {
-  this.setMode("minimized");
-}
-
-qx.Proto.restore = function() {
-  this.setMode(null);
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  APPEAR/DISAPPEAR
----------------------------------------------------------------------------
-*/
-
-qx.Proto._beforeAppear = function()
-{
-  // Intentionally bypass superclass and call super.super._beforeAppear
-  qx.ui.layout.CanvasLayout.prototype._beforeAppear.call(this);
-
-  // Hide popups
-  qx.manager.object.PopupManager.getInstance().update();
-
-  // Configure the focus root to be the current opened window
-  qx.event.handler.EventHandler.getInstance().setFocusRoot(this);
-
-  this.getWindowManager().add(this);
-  this._makeActive();
-}
-
-qx.Proto._beforeDisappear = function()
-{
-  // Intentionally bypass superclass and call super.super._beforeDisappear
-  qx.ui.layout.CanvasLayout.prototype._beforeDisappear.call(this);
-
-  // Reset focus root
-  var vFocusRoot = qx.event.handler.EventHandler.getInstance().getFocusRoot();
-  if (vFocusRoot == this || this.contains(vFocusRoot)) {
-    qx.event.handler.EventHandler.getInstance().setFocusRoot(null);
-  }
-
-  // Be sure to disable any capturing inside invisible parts
-  // Is this to much overhead?
-  // Are there any other working solutions?
-  var vWidget = qx.event.handler.EventHandler.getInstance().getCaptureWidget();
-  if (vWidget && this.contains(vWidget)) {
-    vWidget.setCapture(false);
-  }
-
-  this.getWindowManager().remove(this);
-  this._makeInactive();
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  ZIndex Positioning
----------------------------------------------------------------------------
-*/
-
-qx.Proto._minZIndex = 1e5;
-
-qx.Proto._sendTo = function()
-{
-  var vAll = qx.lang.Object.getValues(this.getWindowManager().getAll()).sort(qx.util.Compare.byZIndex);
-  var vLength = vAll.length;
-  var vIndex = this._minZIndex;
-
-  for (var i=0; i<vLength; i++) {
-    vAll[i].setZIndex(vIndex++);
-  }
-}
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIERS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._modifyActive = function(propValue, propOldValue, propData)
-{
-  if (propOldValue)
-  {
-    if (this.getFocused()) {
-      this.setFocused(false);
-    }
-
-    if (this.getWindowManager().getActiveWindow() == this) {
-      this.getWindowManager().setActiveWindow(null);
-    }
-
-    this.removeState("active");
-    this._captionBar.removeState("active");
-  }
-  else
-  {
-    // Switch focus
-    // Also do this if gets inactive as this moved the focus outline
-    // away from any focused child.
-    if (!this.getFocusedChild()) {
-      this.setFocused(true);
-    }
-
-    this.getWindowManager().setActiveWindow(this);
-    this.bringToFront();
-
-    this.addState("active");
-    this._captionBar.addState("active");
-  }
-
-  return true;
-}
-
-qx.Proto._modifyModal = function(propValue, propOldValue, propData)
-{
-  // Inform blocker
-  if (this._initialLayoutDone && this.getVisibility() && this.getDisplay())
-  {
-    var vTop = this.getTopLevelWidget();
-    propValue ? vTop.block(this) : vTop.release(this);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyAllowClose = function(propValue, propOldValue, propData) {
-  return this._closeButtonManager();
-}
-
-qx.Proto._modifyAllowMaximize = function(propValue, propOldValue, propData) {
-  return this._maximizeButtonManager();
-}
-
-qx.Proto._modifyAllowMinimize = function(propValue, propOldValue, propData) {
-  return this._minimizeButtonManager();
-}
-
-qx.Proto._modifyMode = function(propValue, propOldValue, propData)
-{
-  switch(propValue)
-  {
-    case "minimized":
-      this._minimize();
-      break;
-
-    case "maximized":
-      this._maximize();
-      break;
-
-    default:
-      switch(propOldValue)
-      {
-        case "maximized":
-          this._restoreFromMaximized();
-          break;
-
-        case "minimized":
-          this._restoreFromMinimized();
-          break;
-      }
-  }
-
-  return true;
-}
-
-qx.Proto._modifyShowCaption = function(propValue, propOldValue, propData)
-{
-  if (propValue)
-  {
-    this._captionBar.addAt(this._captionTitle, this.getShowIcon() ? 1 : 0);
-  }
-  else
-  {
-    this._captionBar.remove(this._captionTitle);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyShowIcon = function(propValue, propOldValue, propData)
-{
-  if (propValue)
-  {
-    this._captionBar.addAtBegin(this._captionIcon);
-  }
-  else
-  {
-    this._captionBar.remove(this._captionIcon);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyShowStatusbar = function(propValue, propOldValue, propData)
-{
-  if (propValue)
-  {
-    this._layout.addAtEnd(this._statusBar);
-  }
-  else
-  {
-    this._layout.remove(this._statusBar);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyShowClose = function(propValue, propOldValue, propData)
-{
-  if (propValue)
-  {
-    this._captionBar.addAtEnd(this._closeButton);
-  }
-  else
-  {
-    this._captionBar.remove(this._closeButton);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyShowMaximize = function(propValue, propOldValue, propData)
-{
-  if (propValue)
-  {
-    var t = this.getMode() == "maximized" ? this._restoreButton : this._maximizeButton;
-
-    if (this.getShowMinimize())
-    {
-      this._captionBar.addAfter(t, this._minimizeButton);
-    }
-    else
-    {
-      this._captionBar.addAfter(t, this._captionFlex);
-    }
-  }
-  else
-  {
-    this._captionBar.remove(this._maximizeButton);
-    this._captionBar.remove(this._restoreButton);
-  }
-
-  return true;
-}
-
-qx.Proto._modifyShowMinimize = function(propValue, propOldValue, propData)
-{
-  if (propValue)
-  {
-    this._captionBar.addAfter(this._minimizeButton, this._captionFlex);
-  }
-  else
-  {
-    this._captionBar.remove(this._minimizeButton);
-  }
-
-  return true;
-}
-
-qx.Proto._minimizeButtonManager = function()
-{
-  this._minimizeButton.setEnabled(this.getAllowMinimize());
-
-  return true;
-}
-
-qx.Proto._closeButtonManager = function()
-{
-  this._closeButton.setEnabled(this.getAllowClose());
-
-  return true;
-}
-
-qx.Proto._maximizeButtonManager = function()
-{
-  var b = this.getAllowMaximize() && this.getResizeable() && this._computedMaxWidthTypeNull && this._computedMaxHeightTypeNull;
-
-  this._maximizeButton.setEnabled(b);
-  this._restoreButton.setEnabled(b);
-
-  return true;
-}
-
-qx.Proto._modifyStatus = function(propValue, propOldValue, propData)
-{
-  this._statusText.setHtml(propValue);
-
-  return true;
-}
-
-qx.Proto._modifyMaxWidth = function(propValue, propOldValue, propData) {
-  return this._maximizeButtonManager();
-}
-
-qx.Proto._modifyMaxHeight = function(propValue, propOldValue, propData) {
-  return this._maximizeButtonManager();
-}
-
-qx.Proto._modifyResizeable = function(propValue, propOldValue, propData) {
-  return this._maximizeButtonManager();
-}
-
-qx.Proto._modifyCaption = function(propValue, propOldValue, propData)
-{
-  this._captionTitle.setHtml(propValue);
-  return true;
-}
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  STATE LAYOUT IMPLEMENTATION
----------------------------------------------------------------------------
-*/
-
-qx.Proto._minimize = function()
-{
-  this.blur();
-  this.hide();
-}
-
-qx.Proto._restoreFromMaximized = function()
-{
-  // restore previous dimension and location
-  this.setLeft(this._previousLeft ? this._previousLeft : null);
-  this.setWidth(this._previousWidth ? this._previousWidth : null);
-  this.setRight(this._previousRight ? this._previousRight : null);
-
-  this.setTop(this._previousTop ? this._previousTop : null);
-  this.setHeight(this._previousHeight ? this._previousHeight : null);
-  this.setBottom(this._previousBottom ? this._previousBottom : null);
-
-  // update state
-  this.removeState("maximized");
-
-  // toggle button
-  if (this.getShowMaximize())
-  {
-    var cb = this._captionBar;
-    var v = cb.indexOf(this._restoreButton);
-
-    cb.remove(this._restoreButton);
-    cb.addAt(this._maximizeButton, v);
-  }
-
-  // finally focus the window
-  this.focus();
-}
-
-qx.Proto._restoreFromMinimized = function()
-{
-  if (this.hasState("maximized"))
-  {
-    this.setMode("maximized");
-  }
-
-  this.show();
-  this.focus();
-}
-
-qx.Proto._maximize = function()
-{
-  if (this.hasState("maximized"))
-  {
-    return;
-  }
-
-  // store current dimension and location
-  this._previousLeft = this.getLeft();
-  this._previousWidth = this.getWidth();
-  this._previousRight = this.getRight();
-  this._previousTop = this.getTop();
-  this._previousHeight = this.getHeight();
-  this._previousBottom = this.getBottom();
-
-  // setup new dimension and location
-  this.setWidth(null);
-  this.setLeft(0);
-  this.setRight(0);
-  this.setHeight(null);
-  this.setTop(0);
-  this.setBottom(0);
-
-  // update state
-  this.addState("maximized");
-
-  // toggle button
-  if (this.getShowMaximize())
-  {
-    var cb = this._captionBar;
-    var v = cb.indexOf(this._maximizeButton);
-
-    cb.remove(this._maximizeButton);
-    cb.addAt(this._restoreButton, v);
-  }
-
-  // finally focus the window
-  this.focus();
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENTS: WINDOW
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onwindowmousedown = function(e)
-{
-  this.focus();
-
-  if (this._resizeNorth || this._resizeSouth || this._resizeWest || this._resizeEast)
-  {
-    // enable capturing
-    this.setCapture(true);
-
-    // activate global cursor
-    this.getTopLevelWidget().setGlobalCursor(this.getCursor());
-
-    // caching element
-    var el = this.getElement();
-
-    // measuring and caching of values for resize session
-    var pa = this.getParent();
-    var pl = pa.getElement();
-
-    var l = qx.html.Location.getPageAreaLeft(pl);
-    var t = qx.html.Location.getPageAreaTop(pl);
-    var r = qx.html.Location.getPageAreaRight(pl);
-    var b = qx.html.Location.getPageAreaBottom(pl);
-
-    // handle frame and translucently
-    switch(this.getResizeMethod())
-    {
-      case "translucent":
-        this.setOpacity(0.5);
-        break;
-
-      case "frame":
-        var f = this._frame;
-
-        if (f.getParent() != this.getParent())
-        {
-          f.setParent(this.getParent());
-          qx.ui.core.Widget.flushGlobalQueues();
-        }
-
-        f._applyRuntimeLeft(qx.html.Location.getPageBoxLeft(el) - l);
-        f._applyRuntimeTop(qx.html.Location.getPageBoxTop(el) - t);
-
-        f._applyRuntimeWidth(qx.html.Dimension.getBoxWidth(el));
-        f._applyRuntimeHeight(qx.html.Dimension.getBoxHeight(el));
-
-        f.setZIndex(this.getZIndex() + 1);
-
-        break;
-    }
-
-    // create resize session
-    var s = this._resizeSession = {};
-
-    if (this._resizeWest)
-    {
-      s.boxWidth = qx.html.Dimension.getBoxWidth(el);
-      s.boxRight = qx.html.Location.getPageBoxRight(el);
-    }
-
-    if (this._resizeWest || this._resizeEast)
-    {
-      s.boxLeft = qx.html.Location.getPageBoxLeft(el);
-
-      s.parentAreaOffsetLeft = l;
-      s.parentAreaOffsetRight = r;
-
-      s.minWidth = this.getMinWidthValue();
-      s.maxWidth = this.getMaxWidthValue();
-    }
-
-    if (this._resizeNorth)
-    {
-      s.boxHeight = qx.html.Dimension.getBoxHeight(el);
-      s.boxBottom = qx.html.Location.getPageBoxBottom(el);
-    }
-
-    if (this._resizeNorth || this._resizeSouth)
-    {
-      s.boxTop = qx.html.Location.getPageBoxTop(el);
-
-      s.parentAreaOffsetTop = t;
-      s.parentAreaOffsetBottom = b;
-
-      s.minHeight = this.getMinHeightValue();
-      s.maxHeight = this.getMaxHeightValue();
-    }
-  }
-  else
-  {
-    // cleanup resize session
-    delete this._resizeSession;
-  }
-
-  // stop event
-  e.stopPropagation();
-}
-
-qx.Proto._onwindowmouseup = function(e)
-{
-  var s = this._resizeSession;
-
-  if (s)
-  {
-    // disable capturing
-    this.setCapture(false);
-
-    // deactivate global cursor
-    this.getTopLevelWidget().setGlobalCursor(null);
-
-    // sync sizes to frame
-    switch(this.getResizeMethod())
-    {
-      case "frame":
-        var o = this._frame;
-        if (!(o && o.getParent())) {
-          break;
-        }
-        // no break here
-
-      case "lazyopaque":
-        if (s.lastLeft != null) {
-          this.setLeft(s.lastLeft);
-        }
-
-        if (s.lastTop != null) {
-          this.setTop(s.lastTop);
-        }
-
-        if (s.lastWidth != null) {
-          this.setWidth(s.lastWidth);
-        }
-
-        if (s.lastHeight != null) {
-          this.setHeight(s.lastHeight);
-        }
-
-        if (this.getResizeMethod() == "frame") {
-          this._frame.setParent(null);
-        }
-        break;
-
-      case "translucent":
-        this.setOpacity(null);
-        break;
-    }
-
-    // cleanup session
-    delete this._resizeNorth;
-    delete this._resizeEast;
-    delete this._resizeSouth;
-    delete this._resizeWest;
-
-    delete this._resizeSession;
-  }
-
-  // stop event
-  e.stopPropagation();
-}
-
-qx.Proto._near = function(p, e) {
-  return e > (p - 5) && e < (p + 5);
-}
-
-qx.Proto._onwindowmousemove = function(e)
-{
-  if (!this.getResizeable() || this.getMode() != null) {
-    return;
-  }
-
-  var s = this._resizeSession;
-
-  if (s)
-  {
-    if (this._resizeWest)
-    {
-      s.lastWidth = qx.lang.Number.limit(s.boxWidth + s.boxLeft - Math.max(e.getPageX(), s.parentAreaOffsetLeft), s.minWidth, s.maxWidth);
-      s.lastLeft = s.boxRight - s.lastWidth - s.parentAreaOffsetLeft;
-    }
-    else if (this._resizeEast)
-    {
-      s.lastWidth = qx.lang.Number.limit(Math.min(e.getPageX(), s.parentAreaOffsetRight) - s.boxLeft, s.minWidth, s.maxWidth);
-    }
-
-    if (this._resizeNorth)
-    {
-      s.lastHeight = qx.lang.Number.limit(s.boxHeight + s.boxTop - Math.max(e.getPageY(), s.parentAreaOffsetTop), s.minHeight, s.maxHeight);
-      s.lastTop = s.boxBottom - s.lastHeight - s.parentAreaOffsetTop;
-    }
-    else if (this._resizeSouth)
-    {
-      s.lastHeight = qx.lang.Number.limit(Math.min(e.getPageY(), s.parentAreaOffsetBottom) - s.boxTop, s.minHeight, s.maxHeight);
-    }
-
-    switch(this.getResizeMethod())
-    {
-      case "opaque":
-      case "translucent":
-        if (this._resizeWest || this._resizeEast)
-        {
-          this.setWidth(s.lastWidth);
-
-          if (this._resizeWest) {
-            this.setLeft(s.lastLeft);
-          }
-        }
-
-        if (this._resizeNorth || this._resizeSouth)
-        {
-          this.setHeight(s.lastHeight);
-
-          if (this._resizeNorth) {
-            this.setTop(s.lastTop);
-          }
-        }
-
-        break;
-
-      default:
-        var o = this.getResizeMethod() == "frame" ? this._frame : this;
-
-        if (this._resizeWest || this._resizeEast)
-        {
-          o._applyRuntimeWidth(s.lastWidth);
-
-          if (this._resizeWest) {
-            o._applyRuntimeLeft(s.lastLeft);
-          }
-        }
-
-        if (this._resizeNorth || this._resizeSouth)
-        {
-          o._applyRuntimeHeight(s.lastHeight);
-
-          if (this._resizeNorth) {
-            o._applyRuntimeTop(s.lastTop);
-          }
-        }
-    }
-  }
-  else
-  {
-    var resizeMode = "";
-    var el = this.getElement();
-
-    this._resizeNorth = this._resizeSouth = this._resizeWest = this._resizeEast = false;
-
-    if (this._near(qx.html.Location.getPageBoxTop(el), e.getPageY()))
-    {
-      resizeMode = "n";
-      this._resizeNorth = true;
-    }
-    else if (this._near(qx.html.Location.getPageBoxBottom(el), e.getPageY()))
-    {
-      resizeMode = "s";
-      this._resizeSouth = true;
-    }
-
-    if (this._near(qx.html.Location.getPageBoxLeft(el), e.getPageX()))
-    {
-      resizeMode += "w";
-      this._resizeWest = true;
-    }
-    else if (this._near(qx.html.Location.getPageBoxRight(el), e.getPageX()))
-    {
-      resizeMode += "e";
-      this._resizeEast = true;
-    }
-
-    if (this._resizeNorth || this._resizeSouth || this._resizeWest || this._resizeEast)
-    {
-      this.setCursor(resizeMode + "-resize");
-    }
-    else
-    {
-      this.setCursor(null);
-    }
-  }
-
-  // stop event
-  e.stopPropagation();
-}
-
-qx.Proto._onwindowclick = function(e)
-{
-  // stop event
-  e.stopPropagation();
-};
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENTS: BUTTONS
----------------------------------------------------------------------------
-*/
-
-qx.Proto._onbuttonmousedown = function(e) {
-  e.stopPropagation();
-}
-
-qx.Proto._onminimizebuttonclick = function(e)
-{
-  this.minimize();
-
-  // we need to be sure that the button gets the right states after clicking
-  // because the button will move and does not get the mouseup event anymore
-  this._minimizeButton.removeState("pressed");
-  this._minimizeButton.removeState("abandoned");
-  this._minimizeButton.removeState("over");
-
-  e.stopPropagation();
-}
-
-qx.Proto._onrestorebuttonclick = function(e)
-{
-  this.restore();
-
-  // we need to be sure that the button gets the right states after clicking
-  // because the button will move and does not get the mouseup event anymore
-  this._restoreButton.removeState("pressed");
-  this._restoreButton.removeState("abandoned");
-  this._restoreButton.removeState("over");
-
-  e.stopPropagation();
-}
-
-qx.Proto._onmaximizebuttonclick = function(e)
-{
-  this.maximize();
-
-  // we need to be sure that the button gets the right states after clicking
-  // because the button will move and does not get the mouseup event anymore
-  this._maximizeButton.removeState("pressed");
-  this._maximizeButton.removeState("abandoned");
-  this._maximizeButton.removeState("over");
-
-  e.stopPropagation();
-}
-
-qx.Proto._onclosebuttonclick = function(e)
-{
-  this.close();
-
-  // we need to be sure that the button gets the right states after clicking
-  // because the button will move and does not get the mouseup event anymore
-  this._closeButton.removeState("pressed");
-  this._closeButton.removeState("abandoned");
-  this._closeButton.removeState("over");
-
-  e.stopPropagation();
-}
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENTS: CAPTIONBAR
----------------------------------------------------------------------------
-*/
-
-qx.Proto._oncaptionmousedown = function(e)
-{
-  if (!e.isLeftButtonPressed() || !this.getMoveable() || this.getMode() != null) {
-    return;
-  }
-
-  // enable capturing
-  this._captionBar.setCapture(true);
-
-  // element cache
-  var el = this.getElement();
-
-  // measuring and caching of values for drag session
-  var pa = this.getParent();
-  var pl = pa.getElement();
-
-  var l = qx.html.Location.getPageAreaLeft(pl);
-  var t = qx.html.Location.getPageAreaTop(pl);
-  var r = qx.html.Location.getPageAreaRight(pl);
-  var b = qx.html.Location.getPageAreaBottom(pl);
-
-  this._dragSession =
-  {
-    offsetX : e.getPageX() - qx.html.Location.getPageBoxLeft(el) + l,
-    offsetY : e.getPageY() - qx.html.Location.getPageBoxTop(el) + t,
-
-    parentAvailableAreaLeft : l + 5,
-    parentAvailableAreaTop : t + 5,
-    parentAvailableAreaRight : r - 5,
-    parentAvailableAreaBottom : b - 5
-  }
-
-  // handle frame and translucently
-  switch(this.getMoveMethod())
-  {
-    case "translucent":
-      this.setOpacity(0.5);
-      break;
-
-    case "frame":
-      var f = this._frame;
-
-      if (f.getParent() != this.getParent())
-      {
-        f.setParent(this.getParent());
-        qx.ui.core.Widget.flushGlobalQueues();
-      }
-
-      f._applyRuntimeLeft(qx.html.Location.getPageBoxLeft(el) - l);
-      f._applyRuntimeTop(qx.html.Location.getPageBoxTop(el) - t);
-
-      f._applyRuntimeWidth(qx.html.Dimension.getBoxWidth(el));
-      f._applyRuntimeHeight(qx.html.Dimension.getBoxHeight(el));
-
-      f.setZIndex(this.getZIndex() + 1);
-
-      break;
-  }
-}
-
-qx.Proto._oncaptionmouseup = function(e)
-{
-  var s = this._dragSession;
-
-  if (!s) {
-    return;
-  }
-
-  // disable capturing
-  this._captionBar.setCapture(false);
-
-  // move window to last position
-  if (s.lastX != null) {
-    this.setLeft(s.lastX);
-  }
-
-  if (s.lastY != null) {
-    this.setTop(s.lastY);
-  }
-
-  // handle frame and translucently
-  switch(this.getMoveMethod())
-  {
-    case "translucent":
-      this.setOpacity(null);
-      break;
-
-    case "frame":
-      this._frame.setParent(null);
-      break;
-  }
-
-  // cleanup session
-  delete this._dragSession;
-}
-
-qx.Proto._oncaptionmousemove = function(e)
-{
-  var s = this._dragSession;
-
-  // pre check for active session and capturing
-  if (!s || !this._captionBar.getCapture()) {
-    return;
-  }
-
-  // pre check if we go out of the available area
-  if (!qx.lang.Number.isBetweenRange(e.getPageX(), s.parentAvailableAreaLeft, s.parentAvailableAreaRight) || !qx.lang.Number.isBetweenRange(e.getPageY(), s.parentAvailableAreaTop, s.parentAvailableAreaBottom)) {
-    return;
-  }
-
-  // use the fast and direct dom methods
-  var o = this.getMoveMethod() == "frame" ? this._frame : this;
-
-  o._applyRuntimeLeft(s.lastX = e.getPageX() - s.offsetX);
-  o._applyRuntimeTop(s.lastY = e.getPageY() - s.offsetY);
-}
-
-qx.Proto._oncaptiondblblick = function()
-{
-  if (!this._maximizeButton.getEnabled()) {
-    return;
-  }
-
-  return this.getMode() == "maximized" ? this.restore() : this.maximize();
-}
-
-
-
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  if (this._layout)
-  {
-    this._layout.dispose();
-    this._layout = null;
-  }
-
-  if (this._frame)
-  {
-    this._frame.dispose();
-    this._frame = null;
-  }
-
-  if (this._captionBar)
-  {
-    this._captionBar.dispose();
-    this._captionBar = null;
-  }
-
-  if (this._captionIcon)
-  {
-    this._captionIcon.dispose();
-    this._captionIcon = null;
-  }
-
-  if (this._captionTitle)
-  {
-    this._captionTitle.dispose();
-    this._captionTitle = null;
-  }
-
-  if (this._captionFlex)
-  {
-    this._captionFlex.dispose();
-    this._captionFlex = null;
-  }
-
-  if (this._closeButton)
-  {
-    this._closeButton.dispose();
-    this._closeButton = null;
-  }
-
-  if (this._minimizeButton)
-  {
-    this._minimizeButton.dispose();
-    this._minimizeButton = null;
-  }
-
-  if (this._maximizeButton)
-  {
-    this._maximizeButton.dispose();
-    this._maximizeButton = null;
-  }
-
-  if (this._restoreButton)
-  {
-    this._restoreButton.dispose();
-    this._restoreButton = null;
-  }
-
-  if (this._pane)
-  {
-    this._pane.dispose();
-    this._pane = null;
-  }
-
-  if (this._statusBar)
-  {
-    this._statusBar.dispose();
-    this._statusBar = null;
-  }
-
-  if (this._statusText)
-  {
-    this._statusText.dispose();
-    this._statusText = null;
-  }
-
-  return qx.ui.popup.Popup.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/ColorUtil.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/ColorUtil.js
deleted file mode 100644 (file)
index f519fa4..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-/**
- * Methods to convert colors between ddiffernt color spaces.
- */
-qx.OO.defineClass("qx.util.ColorUtil");
-
-/**
- * Convert RGB colors to HSB
- *
- * @param vRed {Number} Red value. Range: 0..255
- * @param vGreen {Number} Green value. Range: 0..255
- * @param vBlue {Number} Blue value. Range: 0..255
- *
- * @return {Map} Map with the keys following keys:
- *     <ul>
- *       <li>'hue': range 0..360</li>
- *       <li>'saturation': range 0..100</li>
- *       <li>'brightness': range 0..100</li>
- *     </ul>
- */
-qx.Class.rgb2hsb = function(vRed, vGreen, vBlue)
-{
-  var vHue, vSaturation, vBrightness;
-
-  vRed = parseFloat(vRed);
-  vGreen = parseFloat(vGreen);
-  vBlue = parseFloat(vBlue);
-
-  var cmax = (vRed > vGreen) ? vRed : vGreen;
-  if (vBlue > cmax) {
-    cmax = vBlue;
-  }
-
-  var cmin = (vRed < vGreen) ? vRed : vGreen;
-  if (vBlue < cmin) {
-    cmin = vBlue;
-  }
-
-  vBrightness = cmax / 255.0;
-
-  if (cmax != 0)
-  {
-    vSaturation = (cmax - cmin) / cmax;
-  }
-  else
-  {
-    vSaturation = 0;
-  }
-
-  if (vSaturation == 0)
-  {
-    vHue = 0;
-  }
-  else
-  {
-    var redc = (cmax - vRed) / (cmax - cmin);
-    var greenc = (cmax - vGreen) / (cmax - cmin);
-    var bluec = (cmax - vBlue) / (cmax - cmin);
-
-    if (vRed == cmax)
-    {
-      vHue = bluec - greenc;
-    }
-    else if (vGreen == cmax)
-    {
-      vHue = 2.0 + redc - bluec;
-    }
-    else
-    {
-      vHue = 4.0 + greenc - redc;
-    }
-
-    vHue = vHue / 6.0;
-    if (vHue < 0) vHue = vHue + 1.0;
-  }
-
-  return {
-    hue : Math.round(vHue * 360),
-    saturation : Math.round(vSaturation * 100),
-    brightness : Math.round(vBrightness * 100)
-  }
-}
-
-
-/**
- * Convert HSB colors to RGB
- *
- * @param vHue {Number} Hue value. Range 0..360
- * @param vSaturation {Number} Saturation value. Range 0..100
- * @param vBrightness {Number} Brightness value. Range 0..100
- *
- * @return {Map} Map the the following keys:
- *     <ul>
- *       <li>'red': range 0..255</li>
- *       <li>'green': range 0..255</li>
- *       <li>'blue': range 0..255</li>
- *     </ul>
- */
-qx.Class.hsb2rgb = function(vHue, vSaturation, vBrightness)
-{
-  var i, f, p, q, t, vReturn;
-
-  vHue = parseFloat(vHue/360);
-  vSaturation = parseFloat(vSaturation/100);
-  vBrightness = parseFloat(vBrightness/100);
-
-  if(vHue >= 1.0) vHue %= 1.0;
-  if(vSaturation > 1.0) vSaturation = 1.0;
-  if(vBrightness > 1.0) vBrightness = 1.0;
-
-  var tov = Math.floor(255 * vBrightness);
-
-  var vReturn = {};
-
-  if(vSaturation == 0.0)
-  {
-    vReturn.red = vReturn.green = vReturn.blue = tov;
-  }
-  else
-  {
-    vHue *= 6.0;
-
-    i = Math.floor(vHue);
-
-    f = vHue - i;
-
-    p = Math.floor(tov * (1.0 - vSaturation));
-    q = Math.floor(tov * (1.0 - (vSaturation * f)));
-    t = Math.floor(tov * (1.0 - (vSaturation * (1.0  - f))));
-
-    switch(i)
-    {
-      case 0:
-        vReturn.red = tov;
-        vReturn.green = t;
-        vReturn.blue = p;
-        break;
-
-      case 1:
-        vReturn.red = q;
-        vReturn.green = tov;
-        vReturn.blue = p;
-        break;
-
-      case 2:
-        vReturn.red = p;
-        vReturn.green = tov;
-        vReturn.blue = t;
-        break;
-
-      case 3:
-        vReturn.red = p;
-        vReturn.green = q;
-        vReturn.blue = tov;
-        break;
-
-      case 4:
-        vReturn.red = t;
-        vReturn.green = p;
-        vReturn.blue = tov;
-        break;
-
-      case 5:
-        vReturn.red = tov;
-        vReturn.green = p;
-        vReturn.blue = q;
-        break;
-    }
-  }
-
-  return vReturn;
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/Compare.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/Compare.js
deleted file mode 100644 (file)
index 00b8971..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-/**
- * Collection of methods to compare two values.
- */
-qx.OO.defineClass("qx.util.Compare");
-
-
-/**
- * Compare two Strings
- *
- * @param a {String} first value
- * @param b {String} second value
- *
- * @return {Number}
- *     0 if both values are equal
- *     a number > 0 if the first value if greater than the second one
- *     a value < 0  otherwise
- */
-qx.util.Compare.byString = function(a, b) {
-  return a==b ? 0 : a > b ? 1 : -1;
-};
-
-
-/**
- * Compare two Strings ignoring the letter case.
- *
- * @param a {String} first value
- * @param b {String} second value
- *
- * @return {Number}
- *     0 if both values are equal
- *     a number > 0 if the first value if greater than the second one
- *     a value < 0  otherwise
- */
-
-qx.util.Compare.byStringCaseInsensitive = function(a, b) {
-  return qx.util.Compare.byString(a.toLowerCase(), b.toLowerCase());
-};
-
-
-/**
- * Compare two Strings but first convert umlauts to an ascii character.
- *
- * @param a {String} first value
- * @param b {String} second value
- *
- * @return {Number}
- *     0 if both values are equal
- *     a number > 0 if the first value if greater than the second one
- *     a value < 0  otherwise
- */
-qx.util.Compare.byStringUmlautsShort = function(a, b) {
-  return qx.util.Compare.byString(qx.util.Normalization.umlautsShort(a), qx.util.Normalization.umlautsShort(b));
-};
-
-
-/**
- * Compare two Strings but first convert umlauts to an ascii character and ignore letter case.
- *
- * @param a {String} first value
- * @param b {String} second value
- *
- * @return {Number}
- *     0 if both values are equal
- *     a number > 0 if the first value if greater than the second one
- *     a value < 0  otherwise
- */
-qx.util.Compare.byStringUmlautsShortCaseInsensitive = function(a, b) {
-  return qx.util.Compare.byString(qx.util.Normalization.umlautsShort(a).toLowerCase(), qx.util.Normalization.umlautsShort(b).toLowerCase());
-};
-
-
-/**
- * Compare two Strings but first convert umlauts to ascii characters.
- *
- * @param a {String} first value
- * @param b {String} second value
- *
- * @return {Number}
- *     0 if both values are equal
- *     a number > 0 if the first value if greater than the second one
- *     a value < 0  otherwise
- */
-qx.util.Compare.byStringUmlautsLong = function(a, b) {
-  return qx.util.Compare.byString(qx.util.Normalization.umlautsLong(a), qx.util.Normalization.umlautsLong(b));
-};
-
-
-/**
- * Compare two Strings but first convert umlauts to ascii characters and ignore letter case.
- *
- * @param a {String} first value
- * @param b {String} second value
- *
- * @return {Number}
- *     0 if both values are equal
- *     a number > 0 if the first value if greater than the second one
- *     a value < 0  otherwise
- */
-qx.util.Compare.byStringUmlautsLongCaseInsensitive = function(a, b) {
-  return qx.util.Compare.byString(qx.util.Normalization.umlautsLong(a).toLowerCase(), qx.util.Normalization.umlautsLong(b).toLowerCase());
-};
-
-
-/**
- * Compare two Float numbers.
- *
- * @param a {Float} first value
- * @param b {Float} second value
- *
- * @return {Number}
- *     0 if both values are equal
- *     a number > 0 if the first value if greater than the second one
- *     a value < 0  otherwise
- */
-qx.util.Compare.byFloat = function(a, b) {
-  return a - b;
-};
-
-qx.util.Compare.byInteger = qx.util.Compare.byNumber = qx.util.Compare.byFloat;
-
-
-/**
- * Compare two Strings representing integers. First convert the strings to  an interger.
- *
- * @param a {String} first value
- * @param b {String} second value
- *
- * @return {Number}
- *     0 if both values are equal
- *     a number > 0 if the first value if greater than the second one
- *     a value < 0  otherwise
- */
-qx.util.Compare.byIntegerString = function(a, b) {
-  return parseInt(a) - parseInt(b);
-};
-
-
-/**
- * Compare two Strings representing floats. First convert the strings to  an float.
- *
- * @param a {String} first value
- * @param b {String} second value
- *
- * @return {Number}
- *     0 if both values are equal
- *     a number > 0 if the first value if greater than the second one
- *     a value < 0  otherwise
- */
-qx.util.Compare.byFloatString = function(a, b) {
-  return parseFloat(a) - parseFloat(b);
-};
-
-qx.util.Compare.byNumberString = qx.util.Compare.byFloatString;
-
-
-/**
- * Compare two Strings representing IPv4 adresses.
- * Example: "192.168.1.2"
- *
- * @param a {String} first value
- * @param b {String} second value
- *
- * @return {Number}
- *     0 if both values are equal
- *     a number > 0 if the first value if greater than the second one
- *     a value < 0  otherwise
- */
-qx.util.Compare.byIPv4 = function(a, b)
-{
-  var ipa = a.split(".", 4);
-  var ipb = b.split(".", 4);
-
-  for (var i=0; i<3; i++)
-  {
-    a = parseInt(ipa[i]);
-    b = parseInt(ipb[i]);
-
-    if (a != b) {
-      return a - b;
-    }
-  }
-
-  return parseInt(ipa[3]) - parseInt(ipb[3]);
-};
-
-
-/**
- * Compare the zIndex property of two widgets.
- *
- * @param a {qx.ui.core.Widget} first value
- * @param b {qx.ui.core.Widget} second value
- *
- * @return {Number}
- *     0 if both values are equal
- *     a number > 0 if the first value if greater than the second one
- *     a value < 0  otherwise
- */
-qx.util.Compare.byZIndex = function(a, b) {
-  return a.getZIndex() - b.getZIndex();
-};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/GuiBuilder.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/GuiBuilder.js
deleted file mode 100644 (file)
index 59225f9..0000000
+++ /dev/null
@@ -1,492 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-/**
- * A class to generate a widget hierarchy from XML.
- *
- * WARNING: This class may not be up-to-date or fully functional since it
- *          it is not actively maintained. However, there are other
- *          (server-side) solutions for handling XML GUI descriptions.
- *          Please see the qooxdoo homepage for related projects or ask on
- *          the mailing list.
- *
- * @param flags {Map} map of flags. "flags.strict" sets strict mode.
- */
-qx.OO.defineClass("qx.util.GuiBuilder", qx.core.Target,
-function(flags)
-{
-  qx.core.Target.call(this);
-
-  // map<className, map<propertyName, function>>
-  this._propertyEditors = {};
-
-  this._registerDefaultPropertyEditors();
-
-  this._flags = flags || {};
-
-  // ensure the default flags are setup
-  if (this._flags.strict == null) {
-    // strick mode throws exceptions when
-    //  * widget setters don't exist
-    this._flags.strict = true;
-  }
-
-});
-
-/*
-------------------------------------------------------------------------------------
-  BUILD
-------------------------------------------------------------------------------------
-*/
-
-/**
- * Asynchronous method - fetches XML data from the URL then delegates to build to process the xml
- * Dispatches a qx.event.type.Event("done") after the hierarchy is built
- *
- * @param parent {qx.ui.core.Widget} can either be the application instance, or a widget to append the xml toplevel widgets to
- * @param url {String} URL of the XML files
- *
- */
-qx.Proto.buildFromUrl = function(parent, url) {
-  var req = new qx.io.remote.Request(url, "GET", qx.util.Mime.XML);
-  var self = this;
-  req.addEventListener("completed", function(e) {
-    self.build(parent, e.getData().getContent());
-    qx.ui.core.Widget.flushGlobalQueues();
-  });
-  req.send();
-}
-
-/**
- * parse the children of the xml and appending all widgets to the parent widget
- *
- * @param parent {qx.ui.core.Widget} can either be the application instance, or a widget to append the xml toplevel widgets to
- * @param node {String|Document|Element} can be either a xml string, or a xml dom document or fragment
- */
-qx.Proto.build = function(parent, node) {
-    // support embedding of an XML string within a textarea
-    if (typeof node == "object" && node.nodeName == 'TEXTAREA') {
-      node = node.value;
-    }
-
-    // parse strings in to XML DOM
-    if (typeof node == "string") {
-      node = qx.xml.Document.fromString(node);
-      // TODO handle parse errors
-    }
-    this._buildNodes(parent, node.childNodes);
-}
-
-qx.Proto._buildNodes = function(parent, nodes) {
-    var x = 0;
-    for (var i = 0; i < nodes.length; i++) {
-      var n = nodes[i];
-      // 1 = ELEMENT_NODE
-      if (n.nodeType == 1) {
-          this._buildWidgetFromNode(parent, n);
-      }
-    }
-}
-
-qx.Proto._buildEventListener = function(widget, args, text) {
-  if (typeof args.type !== "string") {
-    throw this._newError('eventListener requires a string type attribute');
-  }
-
-  var self = this;
-
-  // are we delegating ?
-  if (typeof args.delegate === "string") {
-
-    if (args.delegate.indexOf('.') > -1) {
-      // delegation to a global method
-      var p = args.delegate.split('.');
-      var o = p[0];
-      var m = p[1];
-      widget.addEventListener(args.type, function(e) {
-
-          if (!window[o]) {
-            throw self._newError('delegate not found', {delegate:args.delegate});
-          }
-
-          if (!window[o][m]) {
-            throw self._newError('delegate not found', {delegate:args.delegate});
-          }
-
-          window[o][m].apply(window[o], [e]);
-      });
-    }
-    else {
-
-      // delegation to a global method
-      widget.addEventListener(args.type, function(e) {
-
-        if (!window[args.delegate]) {
-          throw self._newError('delegate not found', {delegate:args.delegate});
-        }
-
-        window[args.delegate].apply(null, [e]);
-      });
-    }
-  }
-  else {
-
-    // build a function object using text as the function body
-    //
-    // the args attribute indicates the name of the event argument
-    // if not provided - use 'event' as the name
-    if (!args.args) {
-      args.args = "event";
-    }
-
-    var f = new Function(args.args, text);
-    widget.addEventListener(args.type, f);
-  }
-}
-
-
-/**
- * A node builder that will be used if no node builder is declared for a nodeName
- *
- * @param parent {qx.ui.core.Widget} can either be the application instance, or a widget to append the xml toplevel widgets to
- * @param node {String|Document|Element} can be either a xml string, or a xml dom document or fragment
- */
-
-qx.Proto._buildWidgetFromNode = function(parent, node) {
-
-  var className = this._extractClassName(node);
-
-  if (!className) {
-    throw this._newError("unrecognised node", {nodeName:node.nodeName});
-  }
-
-  if (className == "qx.client.builder.Container") {
-    // generic container node to allow xml to contain multiple toplevel nodes
-    this._buildNodes(parent, node.childNodes);
-    return;
-  }
-
-  if (className == "qx.client.builder.Script") {
-    var e = document.createElement("script");
-    var attribs = this._mapXmlAttribToObject(node);
-    if (attribs.type) {
-      e.type = attribs.type;
-    }
-    else {
-      e.type='text/javascript';
-    }
-
-    // e.innerHTML = node.firstChild.nodeValue;
-
-    // fix for Internet Explorer by Cristian Bica
-    if (qx.core.Client.getInstance().isMshtml())
-    {
-      e.innerHTML = eval(node.firstChild.nodeValue);
-    }
-    else
-    {
-      e.innerHTML = node.firstChild.nodeValue;
-    }
-
-    document.body.appendChild(e);
-    return;
-  }
-
-  if (className == "qx.client.builder.EventListener") {
-    var attribs = this._mapXmlAttribToObject(node);
-    var text;
-    if (node.firstChild) {
-      text = node.firstChild.nodeValue;
-    }
-    this._buildEventListener(parent, attribs, text);
-    return;
-  }
-
-
-  var classConstructor = qx.OO.classes[className];
-  if (!classConstructor) {
-    throw this._newError("constructor not found", {className:className});
-  }
-
-  // construct the widget instance - using the default constructor
-  var widget = new classConstructor();
-  var attribs = this._mapXmlAttribToObject(node, widget);
-  delete attribs['qxtype'];
-
-  var dummyWidget = attribs.id && attribs.id.indexOf("_") == 0;
-
-  if (attribs.id) {
-    // register a global refrence for this widget
-    window[attribs.id] = widget;
-    delete attribs.id;
-  }
-
-  // convert any on??  attribs into event listeners
-  for (var a in attribs) {
-
-    if (a.toLowerCase().indexOf('on') == 0 && a.length > 2) {
-
-      // there may be issues here for XHTML based attributes - due to their case
-      var type = a.substring(2);
-      type = type.charAt(0) + type.substring(1);
-
-      this._buildEventListener(widget, {type:type,args:'event'}, attribs[a]);
-
-      delete attribs[a];
-    }
-  }
-
-  for (var n in attribs) {
-    this._setWidgetProperty(widget, n, attribs[n]);
-  }
-
-  if(!dummyWidget) {
-    parent.add(widget);
-  }
-
-  // recurse to all of the nodes children, using the newly created widget as the parent
-  this._buildNodes(widget, node.childNodes);
-}
-
-/*
-------------------------------------------------------------------------------------
-  WIDGET PROPERTIES
-------------------------------------------------------------------------------------
-*/
-
-
-/*!
-  Set a widget's property using a propertyEditor
-*/
-qx.Proto._setWidgetProperty = function(widget, name, value) {
-  var editor = this._findPropertyEditor(widget.classname, name);
-  if (!editor) {
-    editor = this._coercePropertyEditor;
-  }
-  editor.set(widget, name, value);
-}
-
-qx.Proto._findPropertyEditor = function(className, propertyName) {
-  // get all defined propertyEditors for this widget's prototype
-  var m = this._propertyEditors[className];
-  // lookup the converter for this property name
-  if (m && m[propertyName]) {
-    return m[propertyName];
-  }
-
-  // try the widget's superclass
-  var w = qx.OO.classes[className];
-  if (w && w.superclass && w.superclass.prototype.classname) {
-    return this._findPropertyEditor(w.superclass.prototype.classname, propertyName);
-  }
-
-  return null;
-}
-
-qx.Proto.registerPropertyEditor = function(className, propertyName, editor) {
-  if (!this._propertyEditors[className]) this._propertyEditors[className] = {};
-  this._propertyEditors[className][propertyName] = editor;
-}
-
-qx.Proto._registerDefaultPropertyEditors = function() {
-  var self = this;
-
-  // a property editor that splits the values on a comma and coerces each one into a suitable type
-  var commaDelimitedPropertyEditor = {};
-  commaDelimitedPropertyEditor.set = function(widget, name, value) {
-      if (value == null || value == "") {
-        self._setProperty(widget, name, null);
-        return;
-      }
-
-      var s = value.split(",");
-      var v = [];
-      for (var i = 0; i < s.length; i++) {
-        v[i] = self._coerce(s[i]);
-      }
-
-      self._setProperties(widget, name, v);
-  }
-
-  var evalPropertyEditor = {};
-  evalPropertyEditor.set = function(widget, name, value) {
-      if (value == null || value == "") {
-        self._setProperty(widget, name, null);
-        return;
-      }
-
-      self._setProperty(widget, name, eval(value));
-  }
-
-  var referencePropertyEditor = {};
-  referencePropertyEditor.set = function(widget, name, value) {
-    self._setProperty(widget, name, window[value]);
-  }
-
-  this.registerPropertyEditor('qx.ui.core.Widget', 'location', commaDelimitedPropertyEditor);
-  this.registerPropertyEditor('qx.ui.core.Widget', 'dimension', commaDelimitedPropertyEditor);
-
-  this.registerPropertyEditor('qx.ui.core.Widget', 'space', commaDelimitedPropertyEditor);
-  this.registerPropertyEditor('qx.ui.core.Widget', 'edge', commaDelimitedPropertyEditor);
-
-  this.registerPropertyEditor('qx.ui.core.Widget', 'padding', commaDelimitedPropertyEditor);
-  this.registerPropertyEditor('qx.ui.core.Widget', 'margin', commaDelimitedPropertyEditor);
-
-  this.registerPropertyEditor('qx.ui.core.Widget', 'heights', commaDelimitedPropertyEditor);
-  this.registerPropertyEditor('qx.ui.core.Widget', 'widths', commaDelimitedPropertyEditor);
-
-  this.registerPropertyEditor('qx.ui.core.Widget', 'align', commaDelimitedPropertyEditor);
-  this.registerPropertyEditor('qx.ui.core.Widget', 'stretch', commaDelimitedPropertyEditor);
-
-  this.registerPropertyEditor('qx.ui.core.Widget', 'clipLocation', commaDelimitedPropertyEditor);
-  this.registerPropertyEditor('qx.ui.core.Widget', 'clipDimension', commaDelimitedPropertyEditor);
-  this.registerPropertyEditor('qx.ui.core.Widget', 'clip', commaDelimitedPropertyEditor);
-
-  this.registerPropertyEditor('qx.ui.core.Widget', 'backgroundColor', evalPropertyEditor);
-  this.registerPropertyEditor('qx.ui.core.Widget', 'color', evalPropertyEditor);
-  this.registerPropertyEditor('qx.ui.core.Widget', 'border', evalPropertyEditor);
-
-
-  this.registerPropertyEditor('qx.ui.menu.Button', 'menu', referencePropertyEditor);
-  this.registerPropertyEditor('qx.ui.form.RadioButton', 'manager', referencePropertyEditor);
-  this.registerPropertyEditor('qx.ui.menu.RadioButton', 'group', referencePropertyEditor);
-
-
-  // a property editor that just tries to coerce the string value into a suitable type
-  this._coercePropertyEditor = {};
-  this._coercePropertyEditor.set = function(widget, name, value) {
-      self._setProperty(widget, name, self._coerce(value));
-  }
-
-}
-
-
-qx.Proto._coerce = function(value) {
-
-  // don't really care if its null
-  if (value == null) return value;
-
-  // is it alreay a javascript type
-  if (typeof value == 'object') return value;
-  if (typeof value == 'function') return value;
-  if (typeof value == 'number') return value;
-  if (typeof value == 'boolean') return value;
-  if (typeof value == 'date') return value;
-  if (typeof value == 'array') return value;
-
-  // is it a number ?
-  var n = new Number(value);
-  if (!isNaN(n)) return n.valueOf();
-
-  // is it a boolean ?
-  if (value == "true") return true;
-  if (value == "false") return false;
-
-  // is it a date ?
-  var d = Date.parse(value);
-  if (d != null && !isNaN(d)) return d;
-
-  // leave it as a string
-  if (typeof value == 'string') {
-    // convert empty string into null
-    if (value == "") return null;
-  }
-
-  return value;
-}
-
-qx.Proto._setProperty = function(widget, name, value) {
-  this._setProperties(widget, name, [value]);
-}
-
-qx.Proto._setProperties = function(widget, name, value) {
-
-  // TODO : find a cheaper way to find the setter
-  // NOTE : the name is LOWERCASE - hence we iterate all properties of the widget
-  //         to try and find a matching one
-  var n = "set" + name;
-  for (var a in widget) {
-    if (n == a.toLowerCase()) {
-      var setter = widget[a];
-      break;
-    }
-  }
-  if (!setter && this._flags.strict) throw this._newError('no setter defined on widget instance', {widget:widget, property:name});
-  setter.apply(widget, value);
-}
-
-
-/*
-------------------------------------------------------------------------------------
-  UTILS
-------------------------------------------------------------------------------------
-*/
-
-/*
-2 format
-1. <qx.ui.basic.Atom/>
-3. <div qxtype="qx.ui.basic.Atom"/>
-*/
-qx.Proto._extractClassName = function(node) {
-  if (node.nodeName.toLowerCase() == "div") {
-    if (!node.attributes['qxtype'])
-      return null;
-    return node.attributes['qxtype'].value;
-  } else {
-    return node.nodeName;
-  }
-}
-
-qx.Proto._mapXmlAttribToObject = function(node) {
-  var r = {};
-  var c = node.attributes;
-  for (var i=0; i<c.length; i++) {
-    r[c[i].name.toLowerCase()] = c[i].value;
-  }
-  return r;
-}
-
-/*
-------------------------------------------------------------------------------------
-  EXCEPTION HANDLING / DEBUGGING
-------------------------------------------------------------------------------------
-*/
-
-qx.Proto._newError = function(message, data, exception) {
-  var m = message;
-  var joiner = "";
-  var d = "";
-  if (data) {
-    for (var p in data) {
-      d += joiner + p + "=" + data[p] + '';
-      joiner = " ";
-    }
-    m += " " + d + " ";
-  }
-  if (exception) {
-    m+= " error: " + exception + " ";
-  }
-  return new Error(m);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/Mime.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/Mime.js
deleted file mode 100644 (file)
index abb6741..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-/**
- * Mime type constants
- */
-qx.OO.defineClass("qx.util.Mime",
-{
-  JAVASCRIPT: "text/javascript",
-
-  /** this has been changed from text/json to application/json */
-  JSON: "application/json",
-
-  XML: "application/xml",
-  TEXT: "text/plain",
-  HTML: "text/html"
-});
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/Normalization.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/Normalization.js
deleted file mode 100644 (file)
index c246dfd..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-qx.OO.defineClass("qx.util.Normalization");
-
-
-
-
-
-/*
----------------------------------------------------------------------------
-  HANDLING OF UMLAUTS
----------------------------------------------------------------------------
-*/
-
-qx.util.Normalization._umlautsRegExp = /[\xE4\xF6\xFC\xDF\xC4\xD6\xDC]/g;
-
-qx.util.Normalization._umlautsShortData = { "\xC4": "A", "\xD6": "O", "\xDC": "U", "\xE4": "a", "\xF6": "o", "\xFC": "u", "\xDF": "s" };
-
-
-/**
- * Private helper
- *
- * @param vChar {String} char to convert
- * @return {String}
- */
-qx.util.Normalization._umlautsShort = function(vChar) {
-  return qx.util.Normalization._umlautsShortData[vChar];
-};
-
-
-/**
- * Converts (German) umlauts in the string to a one letter ASCI form.
- * Example: &Auml; -> A, &uuml; -> u, &szlig; -> s, ...
- *
- * @param vString {String} string to normalize
- * @return {String} normalized string
- */
-qx.util.Normalization.umlautsShort = function(vString) {
-  return vString.replace(qx.util.Normalization._umlautsRegExp, qx.util.Normalization._umlautsShort);
-};
-
-
-qx.util.Normalization._umlautsLongData = { "\xC4": "Ae", "\xD6": "Oe", "\xDC": "Ue", "\xE4": "ae", "\xF6": "oe", "\xFC": "ue", "\xDF": "ss" };
-
-
-/**
- * Private helper
- *
- * @param vChar {String} char to convert
- * @return {String}
- */
-qx.util.Normalization._umlautsLong = function(vChar) {
-  return qx.util.Normalization._umlautsLongData[vChar];
-};
-
-
-/**
- * Converts (German) umlauts in the string to a two letter ASCI form.
- * Example: &Auml; -> Ae, &uuml; -> ue, &szlig; -> ss, ...
- *
- * @param vString {String} string to normalize
- * @return {String} normalized string
- */
-qx.util.Normalization.umlautsLong = function(vString) {
-  return vString.replace(qx.util.Normalization._umlautsRegExp, qx.util.Normalization._umlautsLong);
-};
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/StringBuilder.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/StringBuilder.js
deleted file mode 100644 (file)
index 25e962a..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#require(qx.core.Client)
-
-************************************************************************ */
-
-/**
- * A string builder class
- * <p>
- * += operator is faster in Firefox and Opera.
- * Array push/join is faster in Internet Explorer
- * </p><p>
- * Even with this wrapper, which costs some time, this is
- * faster in Firefox than the alternative Array concat in
- * all browsers (which is in relation to IE's performance issues
- * only marginal). The IE performance loss caused by this
- * wrapper is not relevant.
- * </p><p>
- * So this class seems to be the best compromise to handle
- * string concatenation.</p>
- */
-qx.OO.defineClass("qx.util.StringBuilder", qx.core.Object,
-function()
-{
-  qx.core.Object.call(this);
-
-  this.init();
-  this.add.apply(this, arguments);
-});
-
-
-/**
- * Resets the contents of the Stringbuilder
- * equivalent to <pre>str = ""; </pre>
- */
-qx.Proto.clear = function() {}
-
-/**
- * Returns the contents of the concatenated string
- *
- * @return {String} string content
- */
-qx.Proto.get = function() {}
-
-/**
- * Append a variable number of string arguments
- *
- * @param varargs {String} variable number os strings to be added
- */
-qx.Proto.add = function(varargs) {}
-
-/**
- * Initializes the contents of the Stringbuilder
- * equivalent to <pre>str = ""; </pre>
- */
-qx.Proto.init = function() {}
-
-/** Destructor */
-qx.Proto.dispose = function() {}
-
-/**
- * Returns the contents of the concatenated string
- *
- * @return {String} string content
- */
-qx.Proto.toString = function() {}
-
-
-if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.Proto.clear = function() {
-    this._array = [];
-  }
-
-  qx.Proto.get = function() {
-    return this._array.join("");
-  }
-
-  qx.Proto.add = function() {
-    this._array.push.apply(this._array, arguments);
-  }
-
-  qx.Proto.init = function() {
-    this._array = [];
-  }
-
-  qx.Proto.dispose = function()
-  {
-    if (this.getDisposed()) {
-      return;
-    }
-
-    this._array = null;
-
-    qx.core.Object.prototype.dispose.call(this);
-  }
-}
-else
-{
-  qx.Proto.clear = function() {
-    this._string = "";
-  }
-
-  qx.Proto.get = function() {
-    return this._string;
-  }
-
-  qx.Proto.add = function() {
-    this._string += Array.prototype.join.call(arguments, "");
-  }
-
-  qx.Proto.init = function() {
-    this._string = "";
-  }
-
-  qx.Proto.dispose = function()
-  {
-    if (this.getDisposed()) {
-      return;
-    }
-
-    this._string = null;
-
-    qx.core.Object.prototype.dispose.call(this);
-  }
-}
-
-qx.Proto.toString = qx.Proto.get;
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/Validation.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/Validation.js
deleted file mode 100644 (file)
index 8dfb08b..0000000
+++ /dev/null
@@ -1,363 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-
-************************************************************************ */
-
-/**
- * Collection of validation methods.
- *
- * All methods use the strict comparison operators as all modern
- * browsers (needs support for JavaScript 1.3) support this.
- *
- * http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Operators:Comparison_Operators
- */
-qx.OO.defineClass("qx.util.Validation");
-
-/**
- * Whether a value is valid. Invalid values are:
- * <ul>
- *   <li>undefined</li>
- *   <li>null</li>
- *   <li>"" (empty string)</li>
- *   <li>Nan (not a number)</li>
- *   <li>false</li>
- * </ul>
- * All other values are considered valid.
- *
- * @param v {var} the value to validate.
- * @return {Boolean} whether the variable is valid
- */
-qx.util.Validation.isValid = function(v)
-{
-  switch(typeof v)
-  {
-    case "undefined":
-      return false;
-
-    case "object":
-      return v !== null;
-
-    case "string":
-      return v !== "";
-
-    case "number":
-      return !isNaN(v);
-
-    case "function":
-    case "boolean":
-      return true;
-  }
-
-  return false;
-};
-
-
-/**
- * Whether a value is invalid. Invalid values are:
- * <ul>
- *   <li>undefined</li>
- *   <li>null</li>
- *   <li>"" (empty string)</li>
- *   <li>Nan (not a number)</li>
- *   <li>false</li>
- * </ul>
- * All other values are considered valid.
- *
- * @param v {var} the value to validate.
- * @return {Boolean} whether the variable is invalid
- */
-qx.util.Validation.isInvalid = function(v)
-{
-  switch(typeof v)
-  {
-    case "undefined":
-      return true;
-
-    case "object":
-      return v === null;
-
-    case "string":
-      return v === "";
-
-    case "number":
-      return isNaN(v);
-
-    case "function":
-    case "boolean":
-      return false;
-  }
-
-  return true;
-};
-
-
-/**
- * Whether a value is a valid number. Valid numbers are:
- * <ul>
- *   <li>type is number</li>
- *   <li>not NaN</li>
- * </ul>
- *
- * @param v {var} the value to validate.
- * @return {Boolean} whether the variable is valid
- */
-qx.util.Validation.isValidNumber = function(v) {
-  return typeof v === "number" && !isNaN(v);
-};
-
-
-/**
- * Whether a value is an invalid number.
- *
- * @param v {var} the value to validate.
- * @return {Boolean} whether the variable is valid
- */
-qx.util.Validation.isInvalidNumber = function(v) {
-  return typeof v !== "number" || isNaN(v);
-};
-
-
-/**
- * Whether a value is valid string. Valid strings are:
- * <ul>
- *   <li>type is string</li>
- *   <li>not an empty string</li>
- * </ul>
- *
- * @param v {var} the value to validate.
- * @return {Boolean} whether the variable is valid
- */
-qx.util.Validation.isValidString = function(v) {
-  return typeof v === "string" && v !== "";
-};
-
-
-/**
- * Whether a value is an invalid string.
- *
- * @param v {var} the value to validate.
- * @return {Boolean} whether the variable is valid
- */
-qx.util.Validation.isInvalidString = function(v) {
-  return typeof v !== "string" || v === "";
-};
-
-
-/**
- * Whether a value is a valid array. Valid arrays are:
- * <ul>
- *   <li>type is object</li>
- *   <li>instance is Array</li>
- * </ul>
- *
- * @param v {var} the value to validate.
- * @return {Boolean} whether the variable is valid
- */
-qx.util.Validation.isValidArray = function(v) {
-  return typeof v === "object" && v !== null && v instanceof Array;
-};
-
-
-/**
- * Whether a value is an invalid array.
- *
- * @param v {var} the value to validate.
- * @return {Boolean} whether the variable is valid
- */
-qx.util.Validation.isInvalidArray = function(v) {
-  return typeof v !== "object" || v === null || !(v instanceof Array);
-};
-
-
-/**
- * Whether a value is a valid object. Valid object are:
- * <ul>
- *   <li>type is object</li>
- *   <li>instance != Array</li>
- * </ul>
- *
- * @param v {var} the value to validate.
- * @return {Boolean} whether the variable is valid
- */
-qx.util.Validation.isValidObject = function(v) {
-  return typeof v === "object" && v !== null && !(v instanceof Array);
-}
-
-
-/**
- * Whether a value is an invalid object.
- *
- * @param v {var} the value to validate.
- * @return {Boolean} whether the variable is valid
- */
-qx.util.Validation.isInvalidObject = function(v) {
-  return typeof v !== "object" || v === null || v instanceof Array;
-};
-
-
-/**
- * Whether a value is a valid DOM node. Valid nodes are:
- * <ul>
- *   <li>type is object</li>
- * </ul>
- *
- * @param v {var} the value to validate.
- * @return {Boolean} whether the variable is valid
- */
-qx.util.Validation.isValidNode = function(v) {
-  return typeof v === "object" && v !== null;
-};
-
-
-/**
- * Whether a value is an invalid node.
- *
- * @param v {var} the value to validate.
- * @return {Boolean} whether the variable is valid
- */
-qx.util.Validation.isInvalidNode = function(v) {
-  return typeof v !== "object" || v === null;
-};
-
-
-/**
- * Whether a value is valid DOM element number. Valid elements are:
- * <ul>
- *   <li>type is object</li>
- *   <li>v.nodeType === 1</li>
- * </ul>
- *
- * @param v {var} the value to validate.
- * @return {Boolean} whether the variable is valid
- */
-qx.util.Validation.isValidElement = function(v) {
-  return typeof v === "object" && v !== null || v.nodeType !== 1;
-};
-
-
-/**
- * Whether a value is not a DOM element.
- *
- * @param v {var} the value to validate.
- * @return {Boolean} whether the variable is valid
- */
-qx.util.Validation.isInvalidElement = function(v) {
-  return typeof v !== "object" || v === null || v.nodeType !== 1;
-};
-
-
-/**
- * Whether a value is a function.
- * <ul>
- *   <li>type is function</li>
- * </ul>
- *
- * @param v {var} the value to validate.
- * @return {Boolean} whether the variable is valid
- */
-qx.util.Validation.isValidFunction = function(v) {
-  return typeof v === "function";
-};
-
-
-/**
- * Whether a value is not a function.
- *
- * @param v {var} the value to validate.
- * @return {Boolean} whether the variable is valid
- */
-qx.util.Validation.isInvalidFunction = function(v) {
-  return typeof v !== "function";
-};
-
-
-/**
- * Whether a value is a boolean. Valid booleans are:
- * <ul>
- *   <li>type is boolean</li>
- * </ul>
- *
- * @param v {var} the value to validate.
- * @return {Boolean} whether the variable is valid
- */
-qx.util.Validation.isValidBoolean = function(v) {
-  return typeof v === "boolean";
-};
-
-
-/**
- * Whether a value is not boolean.
- *
- * @param v {var} the value to validate.
- * @return {Boolean} whether the variable is valid
- */
-qx.util.Validation.isInvalidBoolean = function(v) {
-  return typeof v !== "boolean";
-};
-
-
-/**
- * Whether a value is valid a non empty string or a valid number. Valid values are:
- * <ul>
- *   <li>type is string or number</li>
- *   <li>values is not "" or NaN</li>
- * </ul>
- *
- * @param v {var} the value to validate.
- * @return {Boolean} whether the variable is valid
- */
-qx.util.Validation.isValidStringOrNumber = function(v)
-{
-  switch(typeof v)
-  {
-    case "string":
-      return v !== "";
-
-    case "number":
-      return !isNaN(v);
-  }
-
-  return false;
-};
-
-
-/**
- * Whether a value not a valid string or number.
- *
- * @param v {var} the value to validate.
- * @return {Boolean} whether the variable is valid
- */
-qx.util.Validation.isInvalidStringOrNumber = function(v)
-{
-  switch(typeof v)
-  {
-    case "string":
-      return v === "";
-
-    case "number":
-      return isNaN(v);
-  }
-
-  return false;
-};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/format/DateFormat.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/format/DateFormat.js
deleted file mode 100644 (file)
index dd31073..0000000
+++ /dev/null
@@ -1,604 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#require(qx.locale.Date)
-
-************************************************************************ */
-
-/**
- * A formatter and parser for dates
- *
- * @param format {String} The format to use. If null, the
- *    {@link #DEFAULT_DATE_TIME_FORMAT} is used.
- * @param locale {String} optional locale to be used
- */
-qx.OO.defineClass("qx.util.format.DateFormat", qx.util.format.Format,
-function(format, locale) {
-  qx.util.format.Format.call(this);
-
-  if (format != null) {
-    this._format = format.toString()
-  } else {
-    this._format = qx.locale.Date.getDateFormat("long", locale) + " " + qx.locale.Date.getDateTimeFormat("HHmmss", "HH:mm:ss", locale);
-  }
-  this._locale = locale;
-});
-
-
-/**
- * Fills a number with leading zeros ("25" -> "0025").
- *
- * @param number {Integer} the number to fill.
- * @param minSize {Integer} the minimum size the returned string should have.
- * @return {String} the filled number as string.
- */
-qx.Proto._fillNumber = function(number, minSize) {
-  var str = "" + number;
-  while (str.length < minSize) {
-    str = "0" + str;
-  }
-  return str;
-}
-
-
-/**
- * Returns the day in year of a date.
- *
- * @param date {Date} the date.
- * @return {Integer} the day in year.
- */
-qx.Proto._getDayInYear = function(date) {
-  var helpDate = new Date(date.getTime());
-  var day = helpDate.getDate();
-  while (helpDate.getMonth() != 0) {
-    // Set the date to the last day of the previous month
-    helpDate.setDate(-1);
-    day += helpDate.getDate() + 1;
-  }
-  return day;
-}
-
-
-/**
- * Returns the thursday in the same week as the date.
- *
- * @param date {Date} the date to get the thursday of.
- * @return {Date} the thursday in the same week as the date.
- */
-qx.Proto._thursdayOfSameWeek = function(date) {
-  return new Date(date.getTime() + (3 - ((date.getDay() + 6) % 7)) * 86400000);
-}
-
-
-/**
- * Returns the week in year of a date.
- *
- * @param date {Date} the date to get the week in year of.
- * @return {Integer} the week in year.
- */
-qx.Proto._getWeekInYear = function(date) {
-  // This algorithm gets the correct calendar week after ISO 8601.
-  // This standard is used in almost all european countries.
-  // TODO: In the US week in year is calculated different!
-  // See http://www.merlyn.demon.co.uk/weekinfo.htm
-
-  // The following algorithm comes from http://www.salesianer.de/util/kalwoch.html
-
-  // Get the thursday of the week the date belongs to
-  var thursdayDate = this._thursdayOfSameWeek(date);
-  // Get the year the thursday (and therefor the week) belongs to
-  var weekYear = thursdayDate.getFullYear();
-  // Get the thursday of the week january 4th belongs to
-  // (which defines week 1 of a year)
-  var thursdayWeek1 = this._thursdayOfSameWeek(new Date(weekYear, 0, 4));
-  // Calculate the calendar week
-  return Math.floor(1.5 + (thursdayDate.getTime() - thursdayWeek1.getTime()) / 86400000 / 7)
-}
-
-
-/**
- * Formats a date.
- * <p>
- * Uses the same syntax as
- * <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html" target="_blank">
- * the SimpleDateFormat class in Java</a>.
- *
- * @param date {Date} The date to format.
- * @return {String} the formatted date.
- */
-qx.Proto.format = function(date) {
-  var DateFormat = qx.util.format.DateFormat;
-  var locale = this._locale;
-
-  var fullYear = date.getFullYear();
-  var month = date.getMonth();
-  var dayOfMonth = date.getDate();
-  var dayOfWeek = date.getDay();
-  var hours = date.getHours();
-  var minutes = date.getMinutes();
-  var seconds = date.getSeconds();
-  var ms = date.getMilliseconds();
-  var timezone = date.getTimezoneOffset() / 60;
-
-  // Create the output
-  this._initFormatTree();
-  var output = "";
-  for (var i = 0; i < this._formatTree.length; i++) {
-    var currAtom = this._formatTree[i];
-
-    if (currAtom.type == "literal") {
-      output += currAtom.text;
-    } else {
-      // This is a wildcard
-      var wildcardChar = currAtom.character;
-      var wildcardSize = currAtom.size;
-
-      // Get its replacement
-      var replacement = "?";
-      switch (wildcardChar) {
-        // TODO: G - Era designator (e.g. AD). Problem: Not covered by JScript Date class
-        // TODO: W - Week in month (e.g. 2)
-        // TODO: F - Day of week in month (e.g.   2). Problem: What is this?
-
-        case 'y': // Year
-          if (wildcardSize == 2) {
-            replacement = this._fillNumber(fullYear % 100, 2);
-          } else if (wildcardSize == 4) {
-            replacement = fullYear;
-          }
-          break;
-        case 'D': // Day in year (e.g. 189)
-          replacement = this._fillNumber(this._getDayInYear(date), wildcardSize); break;
-        case 'd': // Day in month
-          replacement = this._fillNumber(dayOfMonth, wildcardSize); break;
-        case 'w': // Week in year (e.g. 27)
-          replacement = this._fillNumber(this._getWeekInYear(date), wildcardSize); break;
-        case 'E': // Day in week
-          if (wildcardSize == 2) {
-            replacement = qx.locale.Date.getDayName("narrow", dayOfWeek, locale);
-          } else if (wildcardSize == 3) {
-            replacement = qx.locale.Date.getDayName("abbreviated", dayOfWeek, locale);
-          } else if (wildcardSize == 4) {
-            replacement = qx.locale.Date.getDayName("wide", dayOfWeek, locale);
-          }
-          break;
-        case 'M': // Month
-          if (wildcardSize == 1 || wildcardSize == 2) {
-            replacement = this._fillNumber(month + 1, wildcardSize);
-          } else if (wildcardSize == 3) {
-            replacement = qx.locale.Date.getMonthName("abbreviated",month, locale);
-          } else if (wildcardSize == 4) {
-            replacement = qx.locale.Date.getMonthName("wide", month, locale);
-          }
-          break;
-        case 'a': // am/pm marker
-          // NOTE: 0:00 is am, 12:00 is pm
-          replacement = (hours < 12) ? qx.locale.Date.getAmMarker(locale) : qx.locale.Date.getPmMarker(locale); break;
-        case 'H': // Hour in day (0-23)
-          replacement = this._fillNumber(hours, wildcardSize); break;
-        case 'k': // Hour in day (1-24)
-          replacement = this._fillNumber((hours == 0) ? 24 : hours, wildcardSize); break;
-        case 'K': // Hour in am/pm (0-11)
-          replacement = this._fillNumber(hours % 12, wildcardSize); break;
-        case 'h': // Hour in am/pm (1-12)
-          replacement = this._fillNumber(((hours % 12) == 0) ? 12 : (hours % 12), wildcardSize); break;
-        case 'm': // Minute in hour
-          replacement = this._fillNumber(minutes, wildcardSize); break;
-        case 's': // Second in minute
-          replacement = this._fillNumber(seconds, wildcardSize); break;
-        case 'S': // Millisecond
-          replacement = this._fillNumber(ms, wildcardSize); break;
-        case 'z': // Time zone
-          if (wildcardSize == 1) {
-            replacement = "GMT" + ((timezone < 0) ? "-" : "+") + this._fillNumber(timezone) + ":00";
-          } else if (wildcardSize == 2) {
-            replacement = DateFormat.MEDIUM_TIMEZONE_NAMES[timezone];
-          } else if (wildcardSize == 3) {
-            replacement = DateFormat.FULL_TIMEZONE_NAMES[timezone];
-          }
-          break;
-        case 'Z': // RFC 822 time zone
-          replacement = ((timezone < 0) ? "-" : "+") + this._fillNumber(timezone, 2) + "00";
-      }
-      output += replacement;
-    }
-  }
-
-  return output;
-}
-
-
-/**
- * Parses a date.
- * <p>
- * Uses the same syntax as
- * <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html" target="_blank">
- * the SimpleDateFormat class in Java</a>.
- *
- * @param dateStr {String} the date to parse.
- * @return {Date} the parsed date.
- * @throws If the format is not well formed or if the date string does not
- *     match to the format.
- */
-qx.Proto.parse = function(dateStr) {
-  this._initParseFeed();
-
-  // Apply the regex
-  var hit = this._parseFeed.regex.exec(dateStr);
-  if (hit == null) {
-    throw new Error("Date string '" + dateStr + "' does not match the date format: " + this._format);
-  }
-
-  // Apply the rules
-  var dateValues = { year:1970, month:0, day:1, hour:0, ispm:false, min:0, sec:0, ms:0 }
-  var currGroup = 1;
-  for (var i = 0; i < this._parseFeed.usedRules.length; i++) {
-    var rule = this._parseFeed.usedRules[i];
-
-    var value = hit[currGroup];
-    if (rule.field != null) {
-      dateValues[rule.field] = parseInt(value, 10);
-    } else {
-      rule.manipulator(dateValues, value);
-    }
-
-    currGroup += (rule.groups == null) ? 1 : rule.groups;
-  }
-
-  var date = new Date(dateValues.year, dateValues.month, dateValues.day,
-    (dateValues.ispm) ? (dateValues.hour + 12) : dateValues.hour,
-    dateValues.min, dateValues.sec, dateValues.ms);
-  if (dateValues.month != date.getMonth() || dateValues.year != date.getFullYear()) {
-    // TODO: check if this is also necessary for the time components
-    throw new Error("Error parsing date '" + dateStr + "': the value for day or month is too large");
-  }
-
-  return date;
-}
-
-
-
-/**
- * Helper method for {@link #format()} and {@link #parse()}.
- * Parses the date format.
- */
-qx.Proto._initFormatTree = function() {
-  if (this._formatTree != null) {
-    return;
-  }
-
-  this._formatTree = [];
-
-  var currWildcardChar;
-  var currWildcardSize = 0;
-  var currLiteral = "";
-  var format = this._format;
-
-  var state = "default"
-
-  var i = 0;
-  while (i < format.length) {
-    var currChar = format.charAt(i);
-
-    switch (state) {
-      case "quoted_literal":
-        // We are now inside a quoted literal
-        // Check whether the current character is an escaped "'" character
-        if (currChar == "'") {
-          if (i+1 >= format.length) {
-            // this is the last character
-            i++;
-            break;
-          }
-          var lookAhead = format.charAt(i+1);
-          if (lookAhead == "'") {
-            currLiteral += currChar;
-            i++;
-          } else {
-            // quoted literal ends
-            i++;
-            state = "unkown";
-          }
-        } else {
-          currLiteral += currChar;
-          i++;
-        }
-        break;
-      case "wildcard":
-        // Check whether the currChar belongs to that wildcard
-        if (currChar == currWildcardChar) {
-          // It does -> Raise the size
-          currWildcardSize++;
-          i++;
-        } else {
-          // It does not -> The current wildcard is done
-          this._formatTree.push({ type:"wildcard", character:currWildcardChar, size:currWildcardSize });
-          currWildcardChar = null;
-          currWildcardSize = 0;
-          state = "default";
-        }
-        break;
-      default:
-        // We are not (any more) in a wildcard or quoted literal -> Check what's starting here
-        if ((currChar >= 'a' && currChar <= 'z') || (currChar >= 'A' && currChar <= 'Z')) {
-          // This is a letter -> All letters are wildcards
-          // Start a new wildcard
-          currWildcardChar = currChar;
-          state = "wildcard";
-        } else if (currChar == "'") {
-          if (i+1 >= format.length) {
-            // this is the last character
-            currLiteral += currChar;
-            i++;
-            break;
-          }
-          var lookAhead = format.charAt(i+1);
-          if (lookAhead == "'") {
-            currLiteral += currChar;
-            i++;
-          }
-          i++;
-          state = "quoted_literal";
-        } else {
-          state = "default"
-        }
-        if (state != "default") {
-          // Add the literal
-          if (currLiteral.length > 0) {
-            this._formatTree.push({ type:"literal", text:currLiteral });
-            currLiteral = "";
-          }
-        } else {
-          // This is an unquoted literal -> Add it to the current literal
-          currLiteral += currChar;
-          i++;
-        }
-        break;
-    }
-  }
-
-  // Add the last wildcard or literal
-  if (currWildcardChar != null) {
-    this._formatTree.push({ type:"wildcard", character:currWildcardChar, size:currWildcardSize });
-  } else if (currLiteral.length > 0) {
-    this._formatTree.push({ type:"literal", text:currLiteral });
-  }
-}
-
-
-/**
- * Initializes the parse feed.
- * <p>
- * The parse contains everything needed for parsing: The regular expression
- * (in compiled and uncompiled form) and the used rules.
- *
- * @return {Map} the parse feed.
- */
-qx.Proto._initParseFeed = function() {
-  if (this._parseFeed != null) {
-    // We already have the farse feed
-    return;
-  }
-
-  var DateFormat = qx.util.format.DateFormat;
-  var format = this._format;
-
-  // Initialize the rules
-  this._initParseRules();
-  this._initFormatTree();
-
-  // Get the used rules and construct the regex pattern
-  var usedRules = [];
-  var pattern = "^";
-  for (var atomIdx = 0; atomIdx < this._formatTree.length; atomIdx++) {
-    var currAtom = this._formatTree[atomIdx];
-
-    if (currAtom.type == "literal") {
-      pattern += qx.lang.String.escapeRegexpChars(currAtom.text);
-    } else {
-      // This is a wildcard
-      var wildcardChar = currAtom.character;
-      var wildcardSize = currAtom.size;
-
-      // Get the rule for this wildcard
-      var wildcardRule;
-      for (var ruleIdx = 0; ruleIdx < DateFormat._parseRules.length; ruleIdx++) {
-        var rule = DateFormat._parseRules[ruleIdx];
-        if (wildcardChar == rule.pattern.charAt(0) && wildcardSize == rule.pattern.length) {
-          // We found the right rule for the wildcard
-          wildcardRule = rule;
-          break;
-        }
-      }
-
-      // Check the rule
-      if (wildcardRule == null) {
-        // We have no rule for that wildcard -> Malformed date format
-        var wildcardStr = "";
-        for (var i = 0; i < wildcardSize; i++) {
-          wildcardStr += wildcardChar;
-        }
-        throw new Error("Malformed date format: " + format + ". Wildcard "
-          + wildcardStr + " is not supported");
-      } else {
-        // Add the rule to the pattern
-        usedRules.push(wildcardRule);
-        pattern += wildcardRule.regex;
-      }
-    }
-  }
-  pattern += "$";
-
-  // Create the regex
-  var regex;
-  try {
-    regex = new RegExp(pattern);
-  }
-  catch (exc) {
-    throw new Error("Malformed date format: " + format);
-  }
-
-  // Create the this._parseFeed
-  this._parseFeed = { regex:regex, "usedRules":usedRules, pattern:pattern }
-}
-
-
-/**
- * Initializes the static parse rules.
- */
-qx.Proto._initParseRules = function() {
-  var DateFormat = qx.util.format.DateFormat;
-
-  if (DateFormat._parseRules != null) {
-    // The parse rules are already initialized
-    return;
-  }
-
-  DateFormat._parseRules = [];
-
-  var yearManipulator = function(dateValues, value) {
-    value = parseInt(value, 10);
-    if (value < DateFormat.ASSUME_YEAR_2000_THRESHOLD) {
-      value += 2000;
-    } else if (value < 100) {
-      value += 1900;
-    }
-
-    dateValues.year = value;
-  }
-
-  var monthManipulator = function(dateValues, value) {
-    dateValues.month = parseInt(value, 10) - 1;
-  }
-
-  var ampmManipulator = function(dateValues, value) {
-    dateValues.ispm = (value == DateFormat.PM_MARKER);
-  }
-
-  var noZeroHourManipulator = function(dateValues, value) {
-    dateValues.hour = parseInt(value, 10) % 24;
-  }
-
-  var noZeroAmPmHourManipulator = function(dateValues, value) {
-    dateValues.hour = parseInt(value, 10) % 12;
-  }
-
-  // Unsupported: w (Week in year), W (Week in month), D (Day in year),
-  // F (Day of week in month), z (time zone) reason: no setter in Date class,
-  // Z (RFC 822 time zone) reason: no setter in Date class
-
-  DateFormat._parseRules.push({ pattern:"yyyy", regex:"(\\d\\d(\\d\\d)?)",
-    groups:2, manipulator:yearManipulator } );
-  DateFormat._parseRules.push({ pattern:"yy",   regex:"(\\d\\d)",  manipulator:yearManipulator } );
-  // TODO: "MMMM", "MMM" (Month names)
-  DateFormat._parseRules.push({ pattern:"M",    regex:"(\\d\\d?)", manipulator:monthManipulator });
-  DateFormat._parseRules.push({ pattern:"MM",   regex:"(\\d\\d?)", manipulator:monthManipulator });
-  DateFormat._parseRules.push({ pattern:"dd",   regex:"(\\d\\d?)", field:"day" });
-  DateFormat._parseRules.push({ pattern:"d",    regex:"(\\d\\d?)", field:"day" });
-  // TODO: "EEEE", "EEE", "EE" (Day in week names)
-  DateFormat._parseRules.push({ pattern:"a",
-    regex:"(" + DateFormat.AM_MARKER + "|" + DateFormat.PM_MARKER + ")",
-    manipulator:ampmManipulator });
-  DateFormat._parseRules.push({ pattern:"HH",   regex:"(\\d\\d?)", field:"hour" });
-  DateFormat._parseRules.push({ pattern:"H",    regex:"(\\d\\d?)", field:"hour" });
-  DateFormat._parseRules.push({ pattern:"kk",   regex:"(\\d\\d?)", manipulator:noZeroHourManipulator });
-  DateFormat._parseRules.push({ pattern:"k",    regex:"(\\d\\d?)", manipulator:noZeroHourManipulator });
-  DateFormat._parseRules.push({ pattern:"KK",   regex:"(\\d\\d?)", field:"hour" });
-  DateFormat._parseRules.push({ pattern:"K",    regex:"(\\d\\d?)", field:"hour" });
-  DateFormat._parseRules.push({ pattern:"hh",   regex:"(\\d\\d?)", manipulator:noZeroAmPmHourManipulator });
-  DateFormat._parseRules.push({ pattern:"h",    regex:"(\\d\\d?)", manipulator:noZeroAmPmHourManipulator });
-  DateFormat._parseRules.push({ pattern:"mm",   regex:"(\\d\\d?)", field:"min" });
-  DateFormat._parseRules.push({ pattern:"m",    regex:"(\\d\\d?)", field:"min" });
-  DateFormat._parseRules.push({ pattern:"ss",   regex:"(\\d\\d?)", field:"sec" });
-  DateFormat._parseRules.push({ pattern:"s",    regex:"(\\d\\d?)", field:"sec" });
-  DateFormat._parseRules.push({ pattern:"SSS",  regex:"(\\d\\d?\\d?)", field:"ms" });
-  DateFormat._parseRules.push({ pattern:"SS",   regex:"(\\d\\d?\\d?)", field:"ms" });
-  DateFormat._parseRules.push({ pattern:"S",    regex:"(\\d\\d?\\d?)", field:"ms" });
-}
-
-
-/**
- * Returns a <code>DateFomat</code> instance that uses the
- * {@link #DEFAULT_DATE_TIME_FORMAT}.
- *
- * @return {String} the date/time instance.
- */
-qx.Class.getDateTimeInstance = function() {
-  var DateFormat = qx.util.format.DateFormat;
-
-  var format = qx.locale.Date.getDateFormat("long") + " " + qx.locale.Date.getDateTimeFormat("HHmmss", "HH:mm:ss");
-  if (
-    DateFormat._dateInstance == null ||
-    DateFormat._format != format
-  ) {
-    DateFormat._dateTimeInstance = new DateFormat();
-  }
-  return DateFormat._dateTimeInstance;
-}
-
-
-/**
- * Returns a <code>DateFomat</code> instance that uses the
- * {@link #DEFAULT_DATE_FORMAT}.
- *
- * @return {String} the date instance.
- */
-qx.Class.getDateInstance = function() {
-  var DateFormat = qx.util.format.DateFormat;
-
-  var format = qx.locale.Date.getDateFormat("short") + "";
-  if (
-    DateFormat._dateInstance == null ||
-    DateFormat._format != format
-  ) {
-    DateFormat._dateInstance = new DateFormat(format);
-  }
-  return DateFormat._dateInstance;
-}
-
-
-/**
- * (int) The threshold until when a year should be assumed to belong to the
- * 21st century (e.g. 12 -> 2012). Years over this threshold but below 100 will be
- * assumed to belong to the 20th century (e.g. 88 -> 1988). Years over 100 will be
- * used unchanged (e.g. 1792 -> 1792).
- */
-qx.Class.ASSUME_YEAR_2000_THRESHOLD = 30;
-
-/** {string} The date format used for logging. */
-qx.Class.LOGGING_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
-
-/** {string} The am marker. */
-qx.Class.AM_MARKER = "am"
-
-/** {string} The pm marker. */
-qx.Class.PM_MARKER = "pm";
-
-/** {string[]} The medium (three letter) timezone names. */
-qx.Class.MEDIUM_TIMEZONE_NAMES = [
-  "GMT" // TODO: fill up
-];
-
-/** {string[]} The full timezone names. */
-qx.Class.FULL_TIMEZONE_NAMES = [
-  "Greenwich Mean Time" // TODO: fill up
-];
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/format/Format.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/format/Format.js
deleted file mode 100644 (file)
index 5667491..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-/**
- * Superclass for formatters and parsers.
- */
-qx.OO.defineClass("qx.util.format.Format", qx.core.Object,
-function() {
-  qx.core.Object.call(this);
-});
-
-
-/**
- * Formats an object.
- *
- * @param obj {var} The object to format.
- * @return {String} the formatted object.
- */
-qx.Proto.format = function(obj) {
-  throw new Error("format is abstract");
-}
-
-
-/**
- * Parses an object.
- *
- * @param str {String} the string to parse.
- * @return {var} the parsed object.
- */
-qx.Proto.parse = function(str) {
-  throw new Error("parse is abstract");
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/format/NumberFormat.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/format/NumberFormat.js
deleted file mode 100644 (file)
index 0417e87..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006 STZ-IDA, Germany, http://www.stz-ida.de
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-* #require(qx.locale.Number)
-
-************************************************************************ */
-
-/**
- * A formatter and parser for numbers.
- *
- * @param locale {String} optional locale to be used
- */
-qx.OO.defineClass("qx.util.format.NumberFormat", qx.util.format.Format,
-function(locale) {
-  qx.util.format.Format.call(this);
-  this._locale = locale;
-});
-
-
-/**
- * The minimum number of integer digits (digits before the decimal separator).
- * Missing digits will be filled up with 0 ("19" -> "0019").
- */
-qx.OO.addProperty({ name:"minimumIntegerDigits", type:"number", defaultValue:0, allowNull:false });
-
-/**
- * The maximum number of integer digits (superfluos digits will be cut off
- * ("1923" -> "23").
- */
-qx.OO.addProperty({ name:"maximumIntegerDigits", type:"number", defaultValue:null });
-
-/**
- * The minimum number of fraction digits (digits after the decimal separator).
- * Missing digits will be filled up with 0 ("1.5" -> "1.500")
- */
-qx.OO.addProperty({ name:"minimumFractionDigits", type:"number", defaultValue:0, allowNull:false });
-
-/**
- * The maximum number of fraction digits (digits after the decimal separator).
- * Superflous digits will cause rounding ("1.8277" -> "1.83")
- */
-qx.OO.addProperty({ name:"maximumFractionDigits", type:"number", defaultValue:null });
-
-/** Whether thousand groupings should be used {e.g. "1,432,234.65"}. */
-qx.OO.addProperty({ name:"groupingUsed", type:"boolean", defaultValue:true, allowNull:false });
-
-/** The prefix to put before the number {"EUR " -> "EUR 12.31"}. */
-qx.OO.addProperty({ name:"prefix", type:"string", defaultValue:"", allowNull:false });
-
-/** Sets the postfix to put after the number {" %" -> "56.13 %"}. */
-qx.OO.addProperty({ name:"postfix", type:"string", defaultValue:"", allowNull:false });
-
-
-/**
- * Formats a number.
- *
- * @param num {number} the number to format.
- * @return {String} the formatted number as a string.
- */
-qx.Proto.format = function(num) {
-  var NumberFormat = qx.util.format.NumberFormat;
-
-  var negative = (num < 0);
-  if (negative) {
-    num = -num;
-  }
-  if (this.getMaximumFractionDigits() != null) {
-    // Do the rounding
-    var mover = Math.pow(10, this.getMaximumFractionDigits());
-    num = Math.round(num * mover) / mover;
-  }
-
-  if (num != 0) { // Math.log(0) = -Infinity
-    var integerDigits = Math.max(parseInt(Math.log(num) / Math.LN10) + 1, 1);
-  } else {
-    integerDigits = 1;
-  }
-
-  var numStr = "" + num;
-
-  // Prepare the integer part
-  var integerStr = numStr.substring(0, integerDigits);
-  while (integerStr.length < this.getMinimumIntegerDigits()) {
-    integerStr = "0" + integerStr;
-  }
-  if (this.getMaximumIntegerDigits() != null && integerStr.length > this.getMaximumIntegerDigits()) {
-    // NOTE: We cut off even though we did rounding before, because there
-    //     may be rounding errors ("12.24000000000001" -> "12.24")
-    integerStr = integerStr.substring(integerStr.length - this.getMaximumIntegerDigits());
-  }
-
-  // Prepare the fraction part
-  var fractionStr = numStr.substring(integerDigits + 1);
-  while (fractionStr.length < this.getMinimumFractionDigits()) {
-    fractionStr += "0";
-  }
-  if (this.getMaximumFractionDigits() != null && fractionStr.length > this.getMaximumFractionDigits()) {
-    // We have already rounded -> Just cut off the rest
-    fractionStr = fractionStr.substring(0, this.getMaximumFractionDigits());
-  }
-
-  // Add the thousand groupings
-  if (this.getGroupingUsed()) {
-    var origIntegerStr = integerStr;
-    integerStr = "";
-    var groupPos;
-    for (groupPos = origIntegerStr.length; groupPos > 3; groupPos -= 3) {
-      integerStr = "" + qx.locale.Number.getGroupSeparator(this._locale)
-        + origIntegerStr.substring(groupPos - 3, groupPos) + integerStr;
-    }
-    integerStr = origIntegerStr.substring(0, groupPos) + integerStr;
-  }
-
-  // Workaround: prefix and postfix are null even their defaultValue is "" and
-  //             allowNull is set to false?!?
-  var prefix  = this.getPrefix()  ? this.getPrefix()  : "";
-  var postfix = this.getPostfix() ? this.getPostfix() : "";
-
-  // Assemble the number
-  var str = prefix + (negative ? "-" : "") + integerStr;
-  if (fractionStr.length > 0) {
-    str += "" + qx.locale.Number.getDecimalSeparator(this._locale) + fractionStr;
-  }
-  str += postfix;
-
-  return str;
-};
-
-
-/**
- * Parses a number.
- *
- * @param str {String} the string to parse.
- *
- * @return {Double} the number.
- */
-qx.Proto.parse = function(str) {
-  var NumberFormat = qx.util.format.NumberFormat;
-
-  // use the escaped separators for regexp
-  var groupSepEsc = qx.lang.String.escapeRegexpChars(qx.locale.Number.getGroupSeparator(this._locale)+"");
-  var decimalSepEsc = qx.lang.String.escapeRegexpChars(qx.locale.Number.getDecimalSeparator(this._locale)+"");
-
-  var regex = new RegExp(qx.lang.String.escapeRegexpChars(this.getPrefix())
-    + '(-)?([0-9' + groupSepEsc + ']+)'
-    + '(' + decimalSepEsc + '\\d+)?'
-    + qx.lang.String.escapeRegexpChars(this.getPostfix()));
-
-  var hit = regex.exec(str);
-  if (hit == null) {
-    throw new Error("Number string '" + str + "' does not match the number format");
-  }
-
-  var negative = (hit[1] == "-");
-  var integerStr = hit[2];
-  var fractionStr = hit[3];
-
-  // Remove the thousand groupings
-  integerStr = integerStr.replace(new RegExp(groupSepEsc), "");
-
-  var asStr = (negative ? "-" : "") + integerStr;
-  if (fractionStr != null && fractionStr.length != 0) {
-    // Remove the leading decimal separator from the fractions string
-    fractionStr = fractionStr.replace(new RegExp(decimalSepEsc),"");
-    asStr += "." + fractionStr;
-  }
-  return parseFloat(asStr);
-};
-
-
-/**
- * Returns the default number format.
- *
- * @return {NumberFormat} the default number format.
- */
-qx.Class.getInstance = function() {
-  var NumberFormat = qx.util.format.NumberFormat;
-  if (NumberFormat._instance == null) {
-    NumberFormat._instance = new NumberFormat();
-  }
-  return NumberFormat._instance;
-};
-
-
-/**
- * Returns an integer number format.
- *
- * @return {NumberFormat} an integer number format.
- */
-qx.Class.getIntegerInstance = function() {
-  var NumberFormat = qx.util.format.NumberFormat;
-  if (NumberFormat._integerInstance == null) {
-    NumberFormat._integerInstance = new NumberFormat();
-    NumberFormat._integerInstance.setMaximumFractionDigits(0);
-  }
-  return NumberFormat._integerInstance;
-};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/fsm/FiniteStateMachine.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/fsm/FiniteStateMachine.js
deleted file mode 100644 (file)
index dd25b32..0000000
+++ /dev/null
@@ -1,1421 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006, 2007 Derrell Lipman
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Derrell Lipman (derrell)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(util_fsm)
-
-************************************************************************ */
-
-/**
- * A finite state machine.
- *
- * See {@link qx.util.finitestatemacine.State} for details on creating States,
- * and {@link qx.util.finitestatemacine.Transitions} for details on creating
- * transitions between states.
- *
- * @param machineName {String} The name of this finite state machine
- *
- */
-qx.OO.defineClass("qx.util.fsm.FiniteStateMachine", qx.core.Target,
-function(machineName)
-{
-  // Call our superclass' constructor
-  qx.core.Target.call(this);
-
-  // Save the machine name
-  this.setName(machineName);
-
-  // Initialize the states object
-  this._states = { };
-
-  // Initialize the saved-states stack
-  this._savedStates = [ ];
-
-  // Initialize the pending event queue
-  this._eventQueue = [ ];
-
-  // Initialize the blocked events queue
-  this._blockedEvents = [ ];
-
-  // Create the friendlyToObject" object.  Each object has as its property
-  // name, the friendly name of the object; and as its property value, the
-  // object itself.
-  this._friendlyToObject = { };
-
-  // Create the "friendlyToHash" object.  Each object has as its property
-  // name, the friendly name of the object; and as its property value, the
-  // hash code of the object.
-  this._friendlyToHash = { };
-
-  // Create the "hashToFriendly" object.  Each object has as its property
-  // name, the hash code of the object; and as its property value, the
-  // friendly name of the object.
-  this._hashToFriendly = { };
-
-  // Friendly names can be added to groups, for easy manipulation of enabling
-  // and disabling groups of widgets.  Track which friendly names are in which
-  // group.
-  this._groupToFriendly = { };
-
-  // We also need to be able to map back from friendly name to the groups it
-  // is in.
-  this._friendlyToGroups = { };
-});
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/**
- * The name of this finite state machine (for debug messages)
- */
-qx.OO.addProperty(
-  {
-    name         : "name",
-    type         : "string"
-  });
-
-/**
- * The current state of the finite state machine.
- */
-qx.OO.addProperty(
-  {
-    name         : "state",
-    type         : "string"
-  });
-
-/**
- * The previous state of the finite state machine, i.e. the state from which
- * we most recently transitioned.  Note that this could be the same as the
- * current state if a successful transition brought us back to the same
- * state.
- */
-qx.OO.addProperty(
-  {
-    name         : "previousState",
-    type         : "string"
-  });
-
-/**
- * The state to which we will be transitioning.  This property is valid only
- * during a Transition's ontransition function and a State's onexit function.
- * At all other times, it is null.
- */
-qx.OO.addProperty(
-  {
-    name         : "nextState",
-    type         : "string"
-  });
-
-
-/**
- * The maximum number of states which may pushed onto the state-stack.  It is
- * generally a poor idea to have very many states saved on a stack.  Following
- * program logic becomes very difficult, and the code can be highly
- * unmaintainable.  The default should be more than adequate.  You've been
- * warned.
- */
-qx.OO.addProperty(
-  {
-    name         : "maxSavedStates",
-    type         : "number",
-    defaultValue : 2
-  });
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-
-/**
- * Add a state to the finite state machine.
- *
- * @param state {qx.util.fsm.State}
- *   An object of class qx.util.fsm.State representing a state
- *   which is to be a part of this finite state machine.
- */
-qx.Proto.addState = function(state)
-{
-  // Ensure that we got valid state info
-  if (! state instanceof qx.util.fsm.State)
-  {
-    throw new Error("Invalid state: not an instance of " +
-                    "qx.util.fsm.State");
-  }
-
-  // Retrieve the name of this state
-  var stateName = state.getName();
-
-  // Ensure that the state name doesn't already exist
-  if (stateName in this._states)
-  {
-    throw new Error("State " + stateName + " already exists");
-  }
-
-  // Add the new state object to the finite state machine
-  this._states[stateName] = state;
-};
-
-
-/**
- * Replace a state in the finite state machine.  This is useful if initially
- * "dummy" states are created which load the real state table for a series of
- * operations (and possibly also load the gui associated with the new states
- * at the same time).  Having portions of the finite state machine and their
- * associated gui pages loaded at run time can help prevent long delays at
- * application start-up time.
- *
- * @param state {qx.util.fsm.State}
- *   An object of class qx.util.fsm.State representing a state
- *   which is to be a part of this finite state machine.
- *
- * @param bDispose {Boolean}
- *   If <i>true</i>, then dispose the old state object.  If <i>false</i>, the
- *   old state object is returned for disposing by the caller.
- *
- * @return {Object}
- *   The old state object if it was not disposed; otherwise null.
- */
-qx.Proto.replaceState = function(state, bDispose)
-{
-  // Ensure that we got valid state info
-  if (! state instanceof qx.util.fsm.State)
-  {
-    throw new Error("Invalid state: not an instance of " +
-                    "qx.util.fsm.State");
-  }
-
-  // Retrieve the name of this state
-  var stateName = state.getName();
-
-  // Save the old state object, so we can return it to be disposed
-  var oldState = this._states[stateName];
-
-  // Ensure the old state exists.  Otherwise, shouldn't be using replaceState()
-  if (! oldState)
-  {
-    throw new Error("Can not replace state " + stateName + ": " +
-                    "no existing state of that name.");
-  }
-
-  // Replace the old state with the new state object.
-  this._states[stateName] = state;
-
-  // Did they request that the old state be disposed?
-  if (bDispose)
-  {
-    // Yup.  Mark it to be disposed.
-    oldState._bNeedDispose = true;
-  }
-
-  return oldState;
-};
-
-
-
-/**
- * Add an object (typically a widget) that is to be accessed during state
- * transitions, to the finite state machine.
- *
- * @param friendlyName {String}
- *   The friendly name to used for access to the object being added.
- *
- * @param obj {Object}
- *   The object to associate with the specified friendly name
- *
- * @param groupNames {Array}
- *   An optional list of group names of which this object is a member.
- */
-qx.Proto.addObject = function(friendlyName, obj, groupNames)
-{
-  var hash = obj.toHashCode();
-  this._friendlyToHash[friendlyName] = hash;
-  this._hashToFriendly[hash] = friendlyName;
-  this._friendlyToObject[friendlyName] = obj;
-
-  // If no groupNames are specified, we're done.
-  if (! groupNames)
-  {
-    return;
-  }
-
-  // Allow either a single group name or an array of group names.  If the
-  // former, we convert it to the latter to make the subsequent code simpler.
-  if (typeof(groupNames) == "string")
-  {
-    groupNames = [ groupNames ];
-  }
-
-  // For each group that this friendly name is to be a member of...
-  for (var i = 0; i < groupNames.length; i++)
-  {
-    var groupName = groupNames[i];
-
-    // If the group name doesn't yet exist...
-    if (! this._groupToFriendly[groupName])
-    {
-      // ... then create it.
-      this._groupToFriendly[groupName] = { };
-    }
-
-    // Add the friendly name to the list of names in this group
-    this._groupToFriendly[groupName][friendlyName] = true;
-
-    // If the friendly name group mapping doesn't yet exist...
-    if (! this._friendlyToGroups[friendlyName])
-    {
-      // ... then create it.
-      this._friendlyToGroups[friendlyName] = [ ];
-    }
-
-    // Append this group name to the list of groups this friendly name is in
-    this._friendlyToGroups[friendlyName] =
-      this._friendlyToGroups[friendlyName].concat(groupNames);
-  }
-};
-
-
-/**
- * Remove an object which had previously been added by {@link #addObject}.
- *
- * @param friendlyName {String}
- *   The friendly name associated with an object, specifying which object is
- *   to be removed.
- */
-qx.Proto.removeObject = function(friendlyName)
-{
-  var hash = this._friendlyToHash[friendlyName];
-
-  // Delete references to any groupos this friendly name was in
-  if (this._friendlyToGroups[friendlyName])
-  {
-    for (groupName in this._friendlyToGroups[friendlyName])
-    {
-      delete this._groupToFriendly[groupName];
-    }
-
-    delete this._friendlyToGroups[friendlyName];
-  }
-
-  // Delete the friendly name
-  delete this._hashToFriendly[hash];
-  delete this._friendlyToHash[friendlyName];
-  delete this._friendlyToObject[friendlyName];
-};
-
-
-/**
- * Retrieve an object previously saved via {@link #addObject}, using its
- * Friendly Name.
- *
- * @param friendlyName {String}
- *   The friendly name of the object to be retrieved.
- *
- * @return {Object}
- *   The object which has the specified friendly name, or undefined if no
- *   object has been associated with that name.
- */
-qx.Proto.getObject = function(friendlyName)
-{
-  return this._friendlyToObject[friendlyName];
-};
-
-
-/**
- * Get the friendly name of an object.
- *
- * @param obj {Object} The object for which the friendly name is desired
- *
- * @return {String}
- *   If the object has been previously registered via {@link #addObject}, then
- *   the friendly name of the object is returned; otherwise, null.
- */
-qx.Proto.getFriendlyName = function(obj)
-{
-  var hash = obj.toHashCode();
-  return hash ? this._hashToFriendly[hash] : null;
-};
-
-
-/**
- * Retrieve the list of objects which have registered, via {@link addObject} as
- * being members of the specified group.
- *
- * @param groupName {String}
- *   The name of the group for which the member list is desired.
- *
- * @return {Array}
- *   An array containing the friendly names of any objects which are members
- *   of the specified group.  The resultant array may be empty.
- */
-qx.Proto.getGroupObjects = function(groupName)
-{
-  var a = [ ];
-
-  for (var name in this._groupToFriendly[groupName])
-  {
-    a.push(name);
-  }
-
-  return a;
-};
-
-
-/**
- * Display all of the saved objects and their reverse mappings.
- */
-qx.Proto.displayAllObjects = function()
-{
-  for (var friendlyName in this._friendlyToHash)
-  {
-    var hash = this._friendlyToHash[friendlyName];
-    var obj = this.getObject(friendlyName);
-    this.debug(friendlyName +
-               " => " +
-               hash);
-    this.debug("  " + hash +
-               " => " +
-               this._hashToFriendly[hash]);
-    this.debug("  " + friendlyName +
-               " => " +
-               this.getObject(friendlyName));
-    this.debug("  " + this.getObject(friendlyName) +
-               " => " +
-               this.getFriendlyName(obj));
-  }
-};
-
-
-/**
- * Recursively display an object (as debug messages)
- *
- * @param obj {Object}
- *   The object to be recursively displayed
- * @param initialMessage {String}
- *   The initial message to be displayed.
- */
-qx.Proto.debugObject = function(obj, initialMessage)
-{
-  thisClass = this;
-
-  var displayObj = function(obj, level)
-  {
-    var indentStr = "";
-    for (var i = 0; i < level; i++)
-    {
-      indentStr += "  ";
-    }
-
-    if (typeof(obj) != "object")
-    {
-      thisClass.debug(indentStr, obj);
-      return;
-    }
-
-    for (var prop in obj)
-    {
-      if (typeof(obj[prop]) == "object")
-      {
-        if (obj[prop] instanceof Array)
-        {
-          thisClass.debug(indentStr + prop + ": "  + "Array");
-        }
-        else
-        {
-          thisClass.debug(indentStr + prop + ": "  + "Object");
-        }
-
-        displayObj(obj[prop], level + 1);
-      }
-      else
-      {
-        thisClass.debug(indentStr + prop + ": " + obj[prop]);
-      }
-    }
-  }
-
-  if (initialMessage)
-  {
-    this.debug(initialMessage);
-  }
-
-  displayObj(obj, 0);
-};
-
-
-
-/**
- * Start (or restart, after it has terminated) the finite state machine from
- * the starting state.  The starting state is defined as the first state added
- * to the finite state machine.
- */
-qx.Proto.start = function()
-{
-  var stateName;
-
-  // Set the start state to be the first state which was added to the machine
-  for (stateName in this._states)
-  {
-    this.setState(stateName);
-    this.setPreviousState(null);
-    this.setNextState(null);
-    break;
-  }
-
-  if (! stateName)
-  {
-    throw new Error("Machine started with no available states");
-  }
-
-  var debugFunctions =
-    (qx.Settings.getValueOfClass("qx.util.fsm.FiniteStateMachine",
-                                 "debugFlags") &
-     qx.util.fsm.FiniteStateMachine.DebugFlags.FUNCTION_DETAIL);
-
-  // Run the actionsBeforeOnentry actions for the initial state
-  if (debugFunctions)
-  {
-    this.debug(this.getName() + "#" + stateName + "#actionsBeforeOnentry");
-  }
-  this._states[stateName].getAutoActionsBeforeOnentry()(this);
-
-  // Run the entry function for the new state, if one is specified
-  if (debugFunctions)
-  {
-    this.debug(this.getName() + "#" + stateName + "#entry");
-  }
-  this._states[stateName].getOnentry()(this, null);
-
-  // Run the actionsAfterOnentry actions for the initial state
-  if (debugFunctions)
-  {
-    this.debug(this.getName() + "#" + stateName + "#actionsAfterOnentry");
-  }
-  this._states[stateName].getAutoActionsAfterOnentry()(this);
-
-};
-
-
-/**
- * Save the current or previous state on the saved-state stack.  A future
- * transition can then provide, as its nextState value, the class constant:
- *
- *   qx.util.fsm.FiniteStateMachine.StateChange.POP_STATE_STACK
- *
- * which will cause the next state to be whatever is at the top of the
- * saved-state stack, and remove that top element from the saved-state stack.
- *
- * @param bCurrent {Boolean}
- *   When <i>true</i>, then push the current state onto the stack.  This might
- *   be used in a transition, before the state has changed.  When
- *   <i>false</i>, then push the previous state onto the stack.  This might be
- *   used in an on entry function to save the previous state to return to.
- */
-qx.Proto.pushState = function(bCurrent)
-{
-  // See if there's room on the state stack for a new state
-  if (this._savedStates.length >= this.getMaxSavedStates())
-  {
-    // Nope.  Programmer error.
-    throw new Error("Saved-state stack is full");
-  }
-
-  if (bCurrent)
-  {
-    // Push the current state onto the saved-state stack
-    this._savedStates.push(this.getState());
-  }
-  else
-  {
-    // Push the previous state onto the saved-state stack
-    this._savedStates.push(this.getPreviousState());
-  }
-};
-
-
-/**
- * Add the specified event to a list of events to be passed to the next state
- * following state transition.
- *
- * @param event {qx.event.type.Event}
- *   The event to add to the event queue for processing after state change.
- */
-qx.Proto.postponeEvent = function(event)
-{
-  // Add this event to the blocked event queue, so it will be passed to the
-  // next state upon transition.
-  this._blockedEvents.unshift(event);
-};
-
-
-/**
- * Copy an event
- *
- * @param event {qx.event.type.Event}
- *   The event to be copied
- *
- * @return {qx.event.type.Event}
- *   The new copy of the provided event
- */
-qx.Proto.copyEvent = function(event)
-{
-  var e = { };
-  for (var prop in event)
-  {
-    e[prop] = event[prop];
-  }
-
-  return e;
-};
-
-
-/**
- * Enqueue an event for processing
- *
- * @param event {qx.event.type.Event}
- *   The event to be enqueued
- *
- * @param bAddAtHead {Boolean}
- *   If <i>true</i>, put the event at the head of the queue for immediate
- *   processing.  If <i>false</i>, place the event at the tail of the queue so
- *   that it receives in-order processing.
- */
-qx.Proto.enqueueEvent = function(event, bAddAtHead)
-{
-  // Add the event to the event queue
-  if (bAddAtHead)
-  {
-    // Put event at the head of the queue
-    this._eventQueue.push(event);
-  }
-  else
-  {
-    // Put event at the tail of the queue
-    this._eventQueue.unshift(event);
-  }
-
-  if (qx.Settings.getValueOfClass("qx.util.fsm.FiniteStateMachine",
-                                  "debugFlags") &
-      qx.util.fsm.FiniteStateMachine.DebugFlags.EVENTS)
-  {
-    if (bAddAtHead)
-    {
-      this.debug(this.getName() + ": Pushed event: " + event.getType());
-    }
-    else
-    {
-      this.debug(this.getName() + ": Queued event: " + event.getType());
-    }
-  }
-};
-
-
-/**
- * Event listener for all event types in the finite state machine
- *
- * @param event {qx.event.type.Event}
- *   The event that was dispatched.
- */
-qx.Proto.eventListener = function(event)
-{
-  // Events are enqueued upon receipt.  Some events are then processed
-  // immediately; other events get processed later.  We need to allow the
-  // event dispatcher to free the source event upon our return, so we'll clone
-  // it and enqueue our clone.  The source event can then be disposed upon our
-  // return.
-  var e = this.copyEvent(event);
-
-  // Enqueue the new event on the tail of the queue
-  this.enqueueEvent(e, false);
-
-  // Process events
-  this._processEvents();
-};
-
-
-/**
- * Process all of the events on the event queue.
- */
-qx.Proto._processEvents = function()
-{
-  // eventListener() can potentially be called while we're processing events
-  if (this._eventProcessingInProgress)
-  {
-    // We were processing already, so don't process concurrently.
-    return;
-  }
-
-  // Track that we're processing events
-  this._eventProcessingInProgress = true;
-
-  // Process each of the events on the event queue
-  while (this._eventQueue.length > 0)
-  {
-    // Pull the next event from the pending event queue
-    var event = this._eventQueue.pop();
-
-    // Run the finite state machine with this event
-    var bDispose = this._run(event);
-
-    // If we didn't block (and re-queue) the event, dispose it.
-    if (bDispose)
-    {
-      event.dispose();
-    }
-  }
-
-  // We're no longer processing events
-  this._eventProcessingInProgress = false;
-};
-
-/**
- * Run the finite state machine to process a single event.
- *
- * @param event {qx.event.type.Event}
- *   An event that has been dispatched.  The event may be handled (if the
- *   current state handles this event type), queued (if the current state
- *   blocks this event type), or discarded (if the current state neither
- *   handles nor blocks this event type).
- *
- * @return {Boolean}
- *   Whether the event should be disposed.  If it was blocked, we've pushed it
- *   back onto the event queue, and it should not be disposed.
- */
-qx.Proto._run = function(event)
-{
-  // For use in generated functions...
-  var fsm = this;
-
-  // State name variables
-  var thisState;
-  var nextState;
-  var prevState;
-
-  // The current State object
-  var currentState;
-
-  // The transitions available in the current State
-  var transitions;
-
-  // Events handled by the current State
-  var e;
-
-  // The action to take place upon receipt of a particular event
-  var action;
-
-  // Get the debug flags
-  var debugFlags =
-    (qx.Settings.getValueOfClass("qx.util.fsm.FiniteStateMachine",
-                                 "debugFlags"));
-
-  // Allow slightly faster access to determine if debug is enableda
-  var debugEvents =
-     debugFlags & qx.util.fsm.FiniteStateMachine.DebugFlags.EVENTS;
-  var debugTransitions =
-    debugFlags & qx.util.fsm.FiniteStateMachine.DebugFlags.TRANSITIONS;
-  var debugFunctions =
-     debugFlags & qx.util.fsm.FiniteStateMachine.DebugFlags.FUNCTION_DETAIL;
-  var debugObjectNotFound =
-     debugFlags & qx.util.fsm.FiniteStateMachine.DebugFlags.OBJECT_NOT_FOUND;
-
-  if (debugEvents)
-  {
-    this.debug(this.getName() + ": Process event: " + event.getType());
-  }
-
-  // Get the current state name
-  thisState = this.getState();
-
-  // Get the current State object
-  currentState = this._states[thisState];
-
-  // Get a list of the transitions available from this state
-  transitions = currentState.transitions;
-
-  // Determine how to handle this event
-  e = currentState.getEvents()[event.getType()];
-
-  // See if we actually found this event type
-  if (! e)
-  {
-    if (debugEvents)
-    {
-      this.debug(this.getName() + ": Event '" + event.getType() + "'" +
-                 " not handled.  Ignoring.");
-    }
-    return true;
-  }
-
-  // We might have found a constant (PREDICATE or BLOCKED) or an object with
-  // each property name being the friendly name of a saved object, and the
-  // property value being one of the constants (PREDICATE or BLOCKED).
-  if (typeof(e) == "object")
-  {
-    // Individual objects are listed.  Ensure target is a saved object
-    var friendly = this.getFriendlyName(event.getTarget());
-    if (! friendly)
-    {
-      // Nope, it doesn't seem so.  Just discard it.
-      if (debugObjectNotFound)
-      {
-        this.debug(this.getName() + ": Could not find friendly name for '" +
-                   event.getType() + "' on '" + event.getTarget() + "'");
-      }
-      return true;
-    }
-
-    action = e[friendly];
-
-    // Do we handle this event type for the widget from which it originated?
-    if (! action)
-    {
-      // Nope.
-      if (debugEvents)
-      {
-        this.debug(this.getName() + ": Event '" + event.getType() + "'" +
-                   " not handled for target " + friendly + ".  Ignoring.");
-      }
-      return true;
-    }
-  }
-  else
-  {
-    action = e;
-  }
-
-  switch(action)
-  {
-    case qx.util.fsm.FiniteStateMachine.EventHandling.PREDICATE:
-      // Process this event.  One of the transitions should handle it.
-      break;
-
-    case qx.util.fsm.FiniteStateMachine.EventHandling.BLOCKED:
-      // This event is blocked.  Enqueue it for later, and get outta here.
-      if (debugEvents)
-      {
-        this.debug(this.getName() + ": Event '" + event.getType() + "'" +
-                   " blocked.  Re-queuing.");
-      }
-      this._blockedEvents.unshift(event);
-      return false;
-
-    default:
-      // See if we've been given an explicit transition name
-      if (typeof(action) == "string")
-      {
-        // Yup!  Ensure that it exists
-        if (transitions[action])
-        {
-          // Yup.  Create a transitions object containing only this transition.
-          var trans = transitions[action];
-          transitions = {  };
-          transitions[action] = trans;
-        }
-        else
-        {
-          throw new Error("Explicit transition " + action + " does not exist");
-        }
-
-        break;
-      }
-  }
-
-  // We handle the event.  Try each transition in turn until we find one that
-  // is acceptable.
-  for (var t in transitions)
-  {
-    var trans = transitions[t];
-
-    // Does the predicate allow use of this transition?
-    switch(trans.getPredicate()(this, event))
-    {
-    case true:
-      // Transition is allowed.  Proceed.
-      break;
-
-    case false:
-      // Transition is not allowed.  Try next transition.
-      continue;
-
-    case null:
-      // Transition indicates not to try further transitions
-      return true;
-
-    default:
-      throw new Error("Transition " + thisState + ":" + t +
-                      " returned a value other than true, false, or null.");
-    }
-
-    // We think we can transition to the next state.  Set next state.
-    nextState = trans.getNextState();
-    if (typeof(nextState) == "string")
-    {
-      // We found a literal state name.  Ensure it exists.
-      if (! nextState in this._states)
-      {
-        throw new Error("Attempt to transition to nonexistent state " +
-                        nextState);
-      }
-
-      // It exists.  Track it being the next state.
-      this.setNextState(nextState);
-    }
-    else
-    {
-      // If it's not a string, nextState must be a StateChange constant
-      switch(nextState)
-      {
-      case qx.util.fsm.FiniteStateMachine.StateChange.CURRENT_STATE:
-        // They want to remain in the same state.
-        nextState = thisState;
-        this.setNextState(nextState)
-        break;
-
-      case qx.util.fsm.FiniteStateMachine.StateChange.POP_STATE_STACK:
-        // Switch to the state at the top of the state stack.
-        if (this._savedStates.length == 0)
-        {
-          throw new Error("Attempt to transition to POP_STATE_STACK " +
-                          "while state stack is empty.");
-        }
-
-        // Pop the state stack to retrieve the state to transition to
-        nextState = this._savedStates.pop();
-        this.setNextState(nextState);
-        break;
-
-      default:
-        throw new Error("Internal error: invalid nextState");
-        break;
-      }
-    }
-
-    // Run the actionsBeforeOntransition actions for this transition
-    if (debugFunctions)
-    {
-      this.debug(this.getName() + "#" + thisState + "#" + t +
-                 "#autoActionsBeforeOntransition");
-    }
-    trans.getAutoActionsBeforeOntransition()(this);
-
-    // Run the 'ontransition' function
-    if (debugFunctions)
-    {
-      this.debug(this.getName() + "#" + thisState + "#" + t + "#ontransition");
-    }
-    trans.getOntransition()(this, event);
-
-    // Run the autoActionsAfterOntransition actions for this transition
-    if (debugFunctions)
-    {
-      this.debug(this.getName() + "#" + thisState + "#" + t +
-                 "#autoActionsAfterOntransition");
-    }
-    trans.getAutoActionsAfterOntransition()(this);
-
-    // Run the autoActionsBeforeOnexit actions for the old state
-    if (debugFunctions)
-    {
-      this.debug(this.getName() + "#" + thisState +
-                 "#autoActionsBeforeOnexit");
-    }
-    currentState.getAutoActionsBeforeOnexit()(this);
-
-    // Run the exit function for the old state
-    if (debugFunctions)
-    {
-      this.debug(this.getName() + "#" + thisState + "#exit");
-    }
-    currentState.getOnexit()(this, event);
-
-    // Run the autoActionsAfterOnexit actions for the old state
-    if (debugFunctions)
-    {
-      this.debug(this.getName() + "#" + thisState + "#autoActionsAfterOnexit");
-    }
-    currentState.getAutoActionsAfterOnexit()(this);
-
-    // If this state has been replaced and we're supposed to dispose it...
-    if (currentState._bNeedDispose)
-    {
-      // ... then dispose it now that it's no longer in use
-      currentState.dispose();
-    }
-
-    // Reset currentState to the new state object
-    currentState = this._states[this.getNextState()];
-
-    // set previousState and state, and clear nextState, for transition
-    this.setPreviousState(thisState);
-    this.setState(this.getNextState());
-    this.setNextState(null);
-    prevState = thisState;
-    thisState = nextState;
-    nextState = undefined;
-
-    // Run the autoActionsBeforeOnentry actions for the new state
-    if (debugFunctions)
-    {
-      this.debug(this.getName() + "#" + thisState +
-                 "#autoActionsBeforeOnentry");
-    }
-    currentState.getAutoActionsBeforeOnentry()(this);
-
-    // Run the entry function for the new state, if one is specified
-    if (debugFunctions)
-    {
-      this.debug(this.getName() + "#" + thisState + "#entry");
-    }
-    currentState.getOnentry()(this, event);
-
-    // Run the autoActionsAfterOnentry actions for the new state
-    if (debugFunctions)
-    {
-      this.debug(this.getName() + "#" + thisState +
-                 "#autoActionsAfterOnentry");
-    }
-    currentState.getAutoActionsAfterOnentry()(this);
-
-    // Add any blocked events back onto the pending event queue
-    var e;
-    for (var i = 0; i < this._blockedEvents.length; i++)
-    {
-      e = this._blockedEvents.pop();
-      this._eventQueue.unshift(e);
-    }
-
-    // Ensure that all actions have been flushed
-    qx.ui.core.Widget.flushGlobalQueues();
-
-    if (debugTransitions)
-    {
-      this.debug(this.getName() + "#" + prevState + " => " +
-                 this.getName() + "#" + thisState);
-    }
-
-    // See ya!
-    return true;
-  }
-
-  if (debugTransitions)
-  {
-    this.debug(this.getName() + "#" + thisState +
-               ": event '" + event.getType() + "'" +
-               ": no transition found.  No state change.");
-  }
-
-  return true;
-};
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT LISTENERS
----------------------------------------------------------------------------
-*/
-
-
-
-/*
----------------------------------------------------------------------------
-  CLASS CONSTANTS
----------------------------------------------------------------------------
-*/
-
-/**
- * Constants which may be values of the nextState member in the transitionInfo
- * parameter of the Transition constructor.
- */
-qx.Class.StateChange =
-{
-  /** When used as a nextState value, means remain in current state */
-  CURRENT_STATE   : 1,
-
-  /** When used as a nextState value, means go to most-recently pushed state */
-  POP_STATE_STACK : 2,
-
-  /** When used as a nextState value, means terminate this state machine */
-  TERMINATE       : 3
-};
-
-
-/**
- * Constants for use in the events member of the transitionInfo parameter of
- * the Transition constructor.
- */
-qx.Class.EventHandling =
-{
-  /**
-   * This event is handled by this state, but the predicate of a transition
-   * will determine whether to use that transition.
-   */
-  PREDICATE : 1,
-
-  /** Enqueue this event for possible use by the next state */
-  BLOCKED   : 2
-};
-
-/**
- * Debug bitmask values.  Set the debug flags from the application by or-ing
- * together bits, akin to this:
- *
- *   qx.Settings.setCustomOfClass(
- *     "qx.util.fsm.FiniteStateMachine",
- *     "debugFlags",
- *     (qx.util.fsm.FiniteStateMachine.DebugFlags.EVENTS |
- *      qx.util.fsm.FiniteStateMachine.DebugFlags.TRANSITIONS |
- *      qx.util.fsm.FiniteStateMachine.DebugFlags.FUNCTION_DETAIL |
- *      qx.util.fsm.FiniteStateMachine.DebugFlags.OBJECT_NOT_FOUND));
- */
-qx.Class.DebugFlags =
-{
-  /** Show events */
-  EVENTS           : 1,
-
-  /** Show transitions */
-  TRANSITIONS      : 2,
-
-  /** Show individual function invocations during transitions */
-  FUNCTION_DETAIL  : 4,
-
-  /** When object friendly names are referenced but not found, show message */
-  OBJECT_NOT_FOUND : 8
-};
-
-
-/*
----------------------------------------------------------------------------
-  CLASS DEFAULT SETTINGS
----------------------------------------------------------------------------
-*/
-
-/**
- * Debug flags: bitmap of DebugFlags (see Class Constants).
- */
-qx.Settings.setDefault(
-  "debugFlags",
-  (qx.util.fsm.FiniteStateMachine.DebugFlags.EVENTS |
-   qx.util.fsm.FiniteStateMachine.DebugFlags.TRANSITIONS |
-   qx.util.fsm.FiniteStateMachine.DebugFlags.OBJECT_NOT_FOUND));
-
-
-/*
----------------------------------------------------------------------------
-  CLASS FUNCTIONS
----------------------------------------------------------------------------
-*/
-
-/**
- * Common function used by {qx.util.fsm.State} and
- * {qx.util.fsm.Transition} for checking the value provided for
- * auto actions.
- *
- * Auto-action property values passed to us look akin to:
- *
- *     <pre>
- *     {
- *       // The name of a function.
- *       "setEnabled" :
- *       [
- *         {
- *           // The parameter value(s), thus "setEnabled(true);"
- *           "parameters"   : [ true ],
- *
- *           // The function would be called on each object:
- *           //  this.getObject("obj1").setEnabled(true);
- *           //  this.getObject("obj2").setEnabled(true);
- *           "objects" : [ "obj1", "obj2" ]
- *
- *           // And similarly for each object in each specified group.
- *           "groups"  : [ "group1", "group2" ],
- *         }
- *       ];
- *
- *       "setColor" :
- *       [
- *         {
- *           "parameters" : [ "blue" ]
- *           "groups"     : [ "group3", "group4" ],
- *           "objects"    : [ "obj3", "obj4" ]
- *         }
- *       ];
- *     };
- *     </pre>
- *
- * @param actionType {String}
- *   The name of the action being validated (for debug messages)
- *
- * @param propValue {Object}
- *   The property value which is being validated
- *
- * @param propData
- *   Not used
- */
-qx.Class._commonCheckAutoActions = function(actionType, propValue, propData)
-{
-  // Validate that we received an object property value
-  if (typeof(propValue) != "object")
-  {
-    throw new Error("Invalid " + actionType + " value: " + typeof(propValue));
-  }
-
-  // We'll create a function to do the requested actions.  Initialize the
-  // string into which we'll generate the common fragment added to the
-  // function for each object.
-  var funcFragment;
-
-  // Here, we'll keep the function body.  Initialize a try block.
-  var func =
-    "try" +
-    "{";
-
-  var param;
-  var objectAndGroupList;
-
-  // Retrieve the function request, e.g.
-  // "enabled" :
-  for (var f in propValue)
-  {
-    // Get the function request value object, e.g.
-    // "setEnabled" :
-    // [
-    //   {
-    //     "parameters"   : [ true ],
-    //     "objects" : [ "obj1", "obj2" ]
-    //     "groups"  : [ "group1", "group2" ],
-    //   }
-    // ];
-    var functionRequest = propValue[f];
-
-    // The function request value should be an object
-    if (! functionRequest instanceof Array)
-    {
-      throw new Error("Invalid function request type: " +
-                      "expected array, found " + typeof(functionRequest));
-    }
-
-    // For each function request...
-    for (var i = 0; i < functionRequest.length; i++)
-    {
-      // Retreive the object and group list object
-      objectAndGroupList = functionRequest[i];
-
-      // The object and group list should be an object, e.g.
-      // {
-      //   "parameters"   : [ true ],
-      //   "objects" : [ "obj1", "obj2" ]
-      //   "groups"  : [ "group1", "group2" ],
-      // }
-      if (typeof(objectAndGroupList) != "object")
-      {
-        throw new Error("Invalid function request parameter type: " +
-                        "expected object, found " +
-                        typeof(functionRequest[param]));
-      }
-
-      // Retrieve the parameter list
-      params = objectAndGroupList["parameters"];
-
-      // If it didn't exist, ...
-      if (! params)
-      {
-        // ... use an empty array.
-        params = [ ];
-      }
-      else
-      {
-        // otherwise, ensure we got an array
-        if (! params instanceof Array)
-        {
-          throw new Error("Invalid function parameters: " +
-                          "expected array, found " + typeof(params));
-        }
-      }
-
-      // Create the function to call on each object.  The object on which the
-      // function is called will be prepended later.
-      funcFragment = f + "(";
-
-      // For each parameter...
-      for (var j = 0; j < params.length; j++)
-      {
-        // If this isn't the first parameter, add a separator
-        if (j != 0)
-        {
-          funcFragment += ",";
-        }
-
-        if (typeof(params[j]) == "function")
-        {
-          // If the parameter is a function, arrange for it to be called
-          // at run time.
-          funcFragment += "(" + params[j] + ")(fsm)";
-        }
-        else if (typeof(params[j]) == "string")
-        {
-          // If the parameter is a string, quote it.
-          funcFragment += '"' + params[j] + '"';
-        }
-        else
-        {
-          // Otherwise, just add the parameter's literal value
-          funcFragment += params[j];
-        }
-      }
-
-      // Complete the function call
-      funcFragment += ")";
-
-      // Get the "objects" list, e.g.
-      //   "objects" : [ "obj1", "obj2" ]
-      var a = objectAndGroupList["objects"];
-
-      // Was there an "objects" list?
-      if (! a)
-      {
-        // Nope.  Simplify code by creating an empty array.
-        a = [ ];
-      }
-      else if (! a instanceof Array)
-      {
-        throw new Error("Invalid 'objects' list: expected array, got " +
-                        typeof(a));
-      }
-
-      for (var j = 0; j < a.length; j++)
-      {
-        // Ensure we got a string
-        if (typeof(a[j]) != "string")
-        {
-          throw new Error("Invalid friendly name in 'objects' list: " + a[j]);
-        }
-
-        func += " fsm.getObject('" + a[j] + "')." + funcFragment + ";";
-      }
-
-      // Get the "groups" list, e.g.
-      //   "groups" : [ "group1, "group2" ]
-      var g = objectAndGroupList["groups"];
-
-      // Was a "groups" list found?
-      if (g)
-      {
-        // Yup.  Ensure it's an array.
-        if (! g instanceof Array)
-        {
-          throw new Error("Invalid 'groups' list: expected array, got " +
-                          typeof(g));
-        }
-
-        for (var groupName in g)
-        {
-          // Arrange to call the function on each object in each group
-          func +=
-            "  var groupObjects = " +
-            "    fsm.getGroupObjects('" + g[groupName] + "');" +
-            "  for (var i = 0; i < groupObjects.length; i++)" +
-            "  {" +
-            "    var objName = groupObjects[i];" +
-            "    fsm.getObject(objName)." + funcFragment + ";" +
-            "  }";
-        }
-      }
-    }
-  }
-
-  // Terminate the try block for function invocations
-  func +=
-    "}" +
-    "catch(e)" +
-    "{" +
-    "  fsm.debug(e);" +
-    "}";
-
-//  o = new qx.core.Object();
-//  o.debug("Dynamically created " + actionType + "(fsm) { " + func + " }");
-
-  // We've now built the entire body of a function that implements calls to
-  // each of the requested automatic actions.  Create and return the function,
-  // which will become the property value.
-  return new Function("fsm", func);
-};
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  var e;
-  var s;
-
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  while (this._savedStates.length > 0)
-  {
-    s = this._savedStates.pop();
-    s = null;
-  }
-  this._savedStates = null;
-
-  while (this._eventQueue.length > 0)
-  {
-    e = this._eventQueue.pop();
-    e.dispose();
-    e = null;
-  }
-  this._eventQueue = null;
-
-  while (this._blockedEvents.length > 0)
-  {
-    e = this._blockedEvents.pop();
-    e.dispose();
-    e = null;
-  }
-
-  for (var s in this._states)
-  {
-    this._states[s].dispose();
-    this._states[s] = null;
-    delete this._states[s];
-  }
-  this._states = null;
-
-  return qx.core.Target.prototype.dispose.call(this);
-};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/fsm/State.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/fsm/State.js
deleted file mode 100644 (file)
index 6a3743a..0000000
+++ /dev/null
@@ -1,613 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006, 2007 Derrell Lipman
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Derrell Lipman (derrell)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(util_fsm)
-#require(qx.util.fsm.FiniteStateMachine)
-
-************************************************************************ */
-
-/**
- * Create a new state which may be added to a finite state machine.
- *
- * @param
- * stateName -
- *   The name of this state.  This is the name which may be referenced in
- *   objects of class qx.util.fsm.Transition, when passing of
- *   the the transition's predicate means transition to this state.
- *
- * @param
- * stateInfo -
- *   An object containing any of the following properties:
- *
- *     onentry -
- *       A function which is called upon entry to the state.  Its signature is
- *       function(fsm, event) and it is saved in the onentry property of the
- *       state object.  (This function is called after the Transition's action
- *       function and after the previous state's onexit function.)
- *
- *       In the onentry function:
- *
- *         fsm -
- *           The finite state machine object to which this state is attached.
- *
- *         event -
- *           The event that caused the finite state machine to run
- *
- *     onexit -
- *       A function which is called upon exit from the state.  Its signature
- *       is function(fsm, event) and it is saved in the onexit property of the
- *       state object.  (This function is called after the Transition's action
- *       function and before the next state's onentry function.)
- *
- *       In the onexit function:
- *
- *         fsm -
- *           The finite state machine object to which this state is attached.
- *
- *         event -
- *           The event that caused the finite state machine to run
- *
- *     autoActionsBeforeOnentry -
- *     autoActionsAfterOnentry -
- *     autoActionsBeforeOnexit -
- *     autoActionsAfterOnexit -
- *       Automatic actions which take place at the time specified by the
- *       property name.  In all cases, the action takes place immediately
- *       before or after the specified function.
- *
- *       The property value for each of these properties is an object which
- *       describes some number of functions to invoke on a set of specified
- *       objects (typically widgets).
- *
- *       An example, using autoActionsBeforeOnentry, might look like this:
- *
- *       "autoActionsBeforeOnentry" :
- *       {
- *         // The name of a function.
- *         "enabled" :
- *         [
- *           {
- *             // The parameter value, thus "setEnabled(true);"
- *             "parameters" : [ true ],
- *
- *             // The function would be called on each object:
- *             //  this.getObject("obj1").setEnabled(true);
- *             //  this.getObject("obj2").setEnabled(true);
- *             "objects" : [ "obj1", "obj2" ],
- *
- *             // And similarly for each object in each specified group.
- *             "groups"  : [ "group1", "group2" ]
- *           }
- *         ],
- *
- *         // The name of another function.
- *         "visible" :
- *         [
- *           {
- *             // The parameter value, thus "setEnabled(true);"
- *             "parameters" : [ false ],
- *
- *             // The function would be called on each object and group, as
- *             // described above.
- *             "objects" : [ "obj3", "obj4" ],
- *             "groups"  : [ "group3", "group4" ]
- *           }
- *         ]
- *       };
- *
- *
- *     events (required) -
- *       A description to the finite state machine of how to handle a
- *       particular event, optionally associated with a specific target object
- *       on which the event was dispatched.  This should be an object
- *       containing one property for each event which is either handled or
- *       blocked.  The property name should be the event name.  The property
- *       value should be one of:
- *
- *         (a) qx.util.fsm.FiniteStateMachine.EventHandling.PREDICATE
- *
- *         (b) qx.util.fsm.FiniteStateMachine.EventHandling.BLOCKED
- *
- *         (c) a string containing the name of an explicit Transition to use
- *
- *         (d) an object where each property name is the Friendly Name of an
- *             object (meaning that this rule applies if both the event and
- *             the event's target object's Friendly Name match), and its
- *             property value is one of (a), (b) or (c), above.
- *
- *       This object is saved in the events property of the state object.
- *
- *     Additional properties may be provided in stateInfo.  They will not be
- *     used by the finite state machine, but will be available via
- *     this.getUserData("<propertyName>") during the state's onentry and
- *     onexit functions.
- */
-qx.OO.defineClass("qx.util.fsm.State", qx.core.Object,
-function(stateName, stateInfo)
-{
-  // Call our superclass' constructor
-  qx.core.Object.call(this, true);
-
-  // Save the state name
-  this.setName(stateName);
-
-  // Ensure they passed in an object
-  if (typeof(stateInfo) != "object")
-  {
-    throw new Error("State info must be an object");
-  }
-
-  // Save data from the stateInfo object
-  for (var field in stateInfo)
-  {
-    // If we find one of our properties, call its setter.
-    switch(field)
-    {
-    case "onentry":
-      this.setOnentry(stateInfo[field]);
-      break;
-
-    case "onexit":
-      this.setOnexit(stateInfo[field]);
-      break;
-
-    case "autoActionsBeforeOnentry":
-      this.setAutoActionsBeforeOnentry(stateInfo[field]);
-      break;
-
-    case "autoActionsAfterOnentry":
-      this.setAutoActionsAfterOnentry(stateInfo[field]);
-      break;
-
-    case "autoActionsBeforeOnexit":
-      this.setAutoActionsBeforeOnexit(stateInfo[field]);
-      break;
-
-    case "autoActionsAfterOnexit":
-      this.setAutoActionsAfterOnexit(stateInfo[field]);
-      break;
-
-    case "events":
-      this.setEvents(stateInfo[field]);
-      break;
-
-    default:
-      // Anything else is user-provided data for their own use.  Save it.
-      this.setUserData(field, stateInfo[field]);
-
-      // Log it in case it was a typo and they intended a built-in field
-      this.debug("State " + stateName + ": " +
-                 "Adding user-provided field to state: " + field);
-
-      break;
-    }
-  }
-
-
-  // Check for required but missing properties
-  if (! this.getEvents())
-  {
-    throw new Error("The events object must be provided in new state info");
-  }
-
-
-  // Initialize the transition list
-  this.transitions = { };
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/**
- * The name of this state.  This name may be used as a Transition's nextState
- * value, or an explicit next state in the 'events' handling list in a State.
- */
-qx.OO.addProperty(
-  {
-    name         : "name",
-    type         : "string"
-  });
-
-/**
- * The onentry function for this state.  This is documented in the
- * constructor, and is typically provided through the constructor's stateInfo
- * object, but it is also possible (but highly NOT recommended) to change this
- * dynamically.
- */
-qx.OO.addProperty(
-  {
-    name         : "onentry",
-    defaultValue : function(fsm, event) { }
-  });
-
-/**
- * The onexit function for this state.  This is documented in the constructor,
- * and is typically provided through the constructor's stateInfo object, but
- * it is also possible (but highly NOT recommended) to change this
- * dynamically.
- */
-qx.OO.addProperty(
-  {
-    name         : "onexit",
-    defaultValue : function(fsm, event) { }
-  });
-
-/**
- * Automatic actions to take prior to calling the state's onentry function.
- *
- * The value passed to setAutoActionsBeforeOnentry() should like something
- * akin to:
- *
- *     "autoActionsBeforeOnentry" :
- *     {
- *       // The name of a function.  This would become "setEnabled("
- *       "enabled" :
- *       [
- *         {
- *           // The parameter value, thus "setEnabled(true);"
- *           "parameters" : [ true ],
- *
- *           // The function would be called on each object:
- *           //  this.getObject("obj1").setEnabled(true);
- *           //  this.getObject("obj2").setEnabled(true);
- *           "objects" : [ "obj1", "obj2" ]
- *
- *           // And similarly for each object in each specified group.
- *           "groups"  : [ "group1", "group2" ],
- *         }
- *       ];
- *     };
- */
-qx.OO.addProperty(
-  {
-    name         : "autoActionsBeforeOnentry",
-    defaultValue : function(fsm, event) { }
-  });
-
-/**
- * Automatic actions to take after return from the state's onentry function.
- *
- * The value passed to setAutoActionsAfterOnentry() should like something akin
- * to:
- *
- *     "autoActionsAfterOnentry" :
- *     {
- *       // The name of a function.  This would become "setEnabled("
- *       "enabled" :
- *       [
- *         {
- *           // The parameter value, thus "setEnabled(true);"
- *           "parameters" : [ true ],
- *
- *           // The function would be called on each object:
- *           //  this.getObject("obj1").setEnabled(true);
- *           //  this.getObject("obj2").setEnabled(true);
- *           "objects" : [ "obj1", "obj2" ]
- *
- *           // And similarly for each object in each specified group.
- *           "groups"  : [ "group1", "group2" ],
- *         }
- *       ];
- *     };
- */
-qx.OO.addProperty(
-  {
-    name         : "autoActionsAfterOnentry",
-    defaultValue : function(fsm, event) { }
-  });
-
-/**
- * Automatic actions to take prior to calling the state's onexit function.
- *
- * The value passed to setAutoActionsBeforeOnexit() should like something akin
- * to:
- *
- *     "autoActionsBeforeOnexit" :
- *     {
- *       // The name of a function.  This would become "setEnabled("
- *       "enabled" :
- *       [
- *         {
- *           // The parameter value, thus "setEnabled(true);"
- *           "parameters" : [ true ],
- *
- *           // The function would be called on each object:
- *           //  this.getObject("obj1").setEnabled(true);
- *           //  this.getObject("obj2").setEnabled(true);
- *           "objects" : [ "obj1", "obj2" ]
- *
- *           // And similarly for each object in each specified group.
- *           "groups"  : [ "group1", "group2" ],
- *         }
- *       ];
- *     };
- */
-qx.OO.addProperty(
-  {
-    name         : "autoActionsBeforeOnexit",
-    defaultValue : function(fsm, event) { }
-  });
-
-
-/**
- * Automatic actions to take after returning from the state's onexit function.
- *
- * The value passed to setAutoActionsAfterOnexit() should like something akin
- * to:
- *
- *     "autoActionsBeforeOnexit" :
- *     {
- *       // The name of a function.  This would become "setEnabled("
- *       "enabled" :
- *       [
- *         {
- *           // The parameter value, thus "setEnabled(true);"
- *           "parameters" : [ true ],
- *
- *           // The function would be called on each object:
- *           //  this.getObject("obj1").setEnabled(true);
- *           //  this.getObject("obj2").setEnabled(true);
- *           "objects" : [ "obj1", "obj2" ]
- *
- *           // And similarly for each object in each specified group.
- *           "groups"  : [ "group1", "group2" ],
- *         }
- *       ];
- *     };
- */
-qx.OO.addProperty(
-  {
-    name         : "autoActionsAfterOnexit",
-    defaultValue : function(fsm, event) { }
-  });
-
-
-/**
- * The object representing handled and blocked events for this state.  This is
- * documented in the constructor, and is typically provided through the
- * constructor's stateInfo object, but it is also possible (but highly NOT
- * recommended) to change this dynamically.
- */
-qx.OO.addProperty(
-  {
-    name         : "events"
-  });
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._checkName = function(propValue, propData)
-{
-  // Ensure that we got a valid state name
-  if (typeof(propValue) != "string" || propValue.length < 1)
-  {
-    throw new Error("Invalid state name");
-  }
-
-  return propValue;
-};
-
-qx.Proto._checkOnentry = function(propValue, propData)
-{
-  // Validate the onentry function
-  switch(typeof(propValue))
-  {
-  case "undefined":
-    // None provided.  Convert it to a null function
-    return function(fsm, event) {};
-
-  case "function":
-    // We're cool.  No changes required
-    return propValue;
-
-  default:
-    throw new Error("Invalid onentry type: " + typeof(propValue));
-    return null;
-  }
-};
-
-qx.Proto._checkOnexit = function(propValue, propData)
-{
-  // Validate the onexit function
-  switch(typeof(propValue))
-  {
-  case "undefined":
-    // None provided.  Convert it to a null function
-    return function(fsm, event) {};
-
-  case "function":
-    // We're cool.  No changes required
-    return propValue;
-
-  default:
-    throw new Error("Invalid onexit type: " + typeof(propValue));
-    return null;
-  }
-};
-
-qx.Proto._checkEvents = function(propValue, propData)
-{
-  // Validate that events is an object
-  if (typeof(propValue) != "object")
-  {
-    throw new Error("events must be an object");
-  }
-
-  // Confirm that each property is a valid value
-  // The property value should be one of:
-  //
-  // (a) qx.util.fsm.FiniteStateMachine.EventHandling.PREDICATE
-  //
-  // (b) qx.util.fsm.FiniteStateMachine.EventHandling.BLOCKED
-  //
-  // (c) a string containing the name of an explicit Transition to use
-  //
-  // (d) an object where each property name is the Friendly Name of an
-  //     object (meaning that this rule applies if both the event and
-  //     the event's target object's Friendly Name match), and its
-  //     property value is one of (a), (b) or (c), above.
-  for (var e in propValue)
-  {
-    var action = propValue[e];
-    if (typeof(action) == "number" &&
-        action != qx.util.fsm.FiniteStateMachine.EventHandling.PREDICATE &&
-        action != qx.util.fsm.FiniteStateMachine.EventHandling.BLOCKED)
-    {
-      throw new Error("Invalid numeric value in events object: " +
-                      e + ": " + action);
-    }
-    else if (typeof(action) == "object")
-    {
-      for (action_e in action)
-      {
-        if (typeof(action[action_e]) == "number" &&
-            action[action_e] !=
-              qx.util.fsm.FiniteStateMachine.EventHandling.PREDICATE &&
-            action[action_e] !=
-              qx.util.fsm.FiniteStateMachine.EventHandling.BLOCKED)
-        {
-          throw new Error("Invalid numeric value in events object " +
-                          "(" + e + "): " +
-                          action_e + ": " + action[action_e]);
-        }
-        else if (typeof(action[action_e]) != "string" &&
-                 typeof(action[action_e]) != "number")
-        {
-          throw new Error("Invalid value in events object " +
-                          "(" + e + "): " +
-                          action_e + ": " + action[action_e]);
-        }
-      }
-    }
-    else if (typeof(action) != "string" && typeof(action) != "number")
-    {
-      throw new Error("Invalid value in events object: " +
-                      e + ": " + propValue[e]);
-    }
-  }
-
-  // We're cool.  No changes required.
-  return propValue;
-};
-
-qx.Proto._checkAutoActionsBeforeOnentry = function(propValue, propData)
-{
-  return qx.util.fsm.FiniteStateMachine._commonCheckAutoActions(
-    "autoActionsBeforeOnentry",
-    propValue,
-    propData);
-};
-
-qx.Proto._checkAutoActionsAfterOnentry = function(propValue, propData)
-{
-  return qx.util.fsm.FiniteStateMachine._commonCheckAutoActions(
-    "autoActionsAfterOnentry",
-    propValue,
-    propData);
-};
-
-qx.Proto._checkAutoActionsBeforeOnexit = function(propValue, propData)
-{
-  return qx.util.fsm.FiniteStateMachine._commonCheckAutoActions(
-    "autoActionsBeforeOnexit",
-    propValue,
-    propData);
-};
-
-qx.Proto._checkAutoActionsAfterOnexit = function(propValue, propData)
-{
-  return qx.util.fsm.FiniteStateMachine._commonCheckAutoActions(
-    "autoActionsAfterOnexit",
-    propValue,
-    propData);
-};
-
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-/**
- * Add a transition to a state
- *
- * @param trans {qx.util.fsm.Transition}
- *   An object of class qx.util.fsm.Transition representing a
- *   transition which is to be a part of this state.
- */
-qx.Proto.addTransition = function(trans)
-{
-  // Ensure that we got valid transition info
-  if (! trans instanceof qx.util.fsm.Transition)
-  {
-    throw new Error("Invalid transition: not an instance of " +
-                    "qx.util.fsm.Transition");
-  }
-
-  // Add the new transition object to the state
-  this.transitions[trans.getName()] = trans;
-};
-
-
-
-
-/*
----------------------------------------------------------------------------
-  EVENT LISTENERS
----------------------------------------------------------------------------
-*/
-
-
-
-/*
----------------------------------------------------------------------------
-  CLASS CONSTANTS
----------------------------------------------------------------------------
-*/
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  return qx.core.Object.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/fsm/Transition.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/fsm/Transition.js
deleted file mode 100644 (file)
index 6854a9c..0000000
+++ /dev/null
@@ -1,381 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2006, 2007 Derrell Lipman
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Derrell Lipman (derrell)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(util_fsm)
-#require(qx.util.fsm.FiniteStateMachine)
-
-************************************************************************ */
-
-/**
- * Create a new possible transition from one state to another.
- *
- * @param transitionName {String}
- *   The name of this transition, used in debug messages.
- *
- * @param transitionInfo {Object}
- *   An object optionally containing any of the following properties:
- *
- *     predicate -
- *       A function which is called to determine whether this transition is
- *       acceptable.  An acceptable transition will cause the transition's
- *       "ontransition" function to be run, the current state's "onexit"
- *       function to be run, and the new state's "onentry" function to be run.
- *
- *       The predicate function's signature is function(fsm, event) and it is
- *       saved in the predicate property of the transition object.  In the
- *       predicate function:
- *
- *         fsm -
- *           The finite state machine object to which this state is attached.
- *
- *         event -
- *           The event that caused a run of the finite state machine
- *
- *       The predicate function should return one of the following three
- *       values:
- *
- *         - true means the transition is acceptable
- *
- *         - false means the transition is not acceptable, and the next
- *           transition (if one exists) should be tried to determine if it is
- *           acceptable
- *
- *         - null means that the transition determined that no further
- *           transitions should be tried.  This might be used when the
- *           transition ascertained that the event is for a target that is not
- *           available in the current state, and the event has called
- *           fsm.queueEvent() to have the event delivered upon state
- *           transition.
- *
- *       It is possible to create a default predicate -- one that will cause a
- *       transition to be acceptable always -- by either not providing a
- *       predicate property, or by explicitely either setting the predicate
- *       property to 'true' or setting it to a function that unconditionally
- *       returns 'true'.  This default transition should, of course, always be
- *       the last transition added to a state, since no transition added after
- *       it will ever be tried.
- *
- *     nextState -
- *       The state to which we transition, if the predicate returns true
- *       (meaning the transition is acceptable).  The value of nextState may
- *       be:
- *
- *         - a string, the state name of the state to transition to
- *
- *         - One of the constants:
- *           - qx.util.fsm.FiniteStateMachine.StateChange.CURRENT_STATE:
- *               Remain in whatever is the current state
- *           - qx.util.fsm.FiniteStateMachine.StateChange.POP_STATE_STACK:
- *               Transition to the state at the top of the saved-state stack,
- *               and remove the top element from the saved-state stack.
- *               Elements are added to the saved-state stack using
- *               fsm.pushState().  It is an error if no state exists on the
- *               saved-state stack.
- *           - qx.util.fsm.FiniteStateMachine.StateChange.TERMINATE:
- *               TBD
- *
- *     autoActionsBeforeOntransition -
- *     autoActionsAfterOntransition -
- *       Automatic actions which take place at the time specified by the
- *       property name.  In all cases, the action takes place immediately
- *       before or after the specified function.
- *
- *       The property value for each of these properties is an object which
- *       describes some number of functions to invoke on a set of specified
- *       objects (typically widgets).
- *
- *       See {@link qx.util.fsm.State} for an example of autoActions.
- *
- *     ontransition -
- *       A function which is called if the predicate function for this
- *       transition returns true.  Its signature is function(fsm, event) and
- *       it is saved in the ontransition property of the transition object.
- *       In the ontransition function:
- *
- *         fsm -
- *           The finite state machine object to which this state is attached.
- *
- *         event -
- *           The event that caused a run of the finite state machine
- *
- *     Additional properties may be provided in transInfo.  They will not be
- *     used by the finite state machine, but will be available via
- *     this.getUserData("<propertyName>") during the transition's predicate
- *     and ontransition functions.
- */
-qx.OO.defineClass("qx.util.fsm.Transition", qx.core.Object,
-function(transitionName, transitionInfo)
-{
-  // Call our superclass' constructor
-  qx.core.Object.call(this, true);
-
-  // Save the state name
-  this.setName(transitionName);
-
-  // Save data from the transitionInfo object
-  for (var field in transitionInfo)
-  {
-    // If we find one of our properties, call its setter.
-    switch(field)
-    {
-    case "predicate":
-      this.setPredicate(transitionInfo[field]);
-      break;
-
-    case "nextState":
-      this.setNextState(transitionInfo[field]);
-      break;
-
-    case "autoActionsBeforeOntransition":
-      this.setAutoActionsBeforeOntransition(transitionInfo[field]);
-      break;
-
-    case "autoActionsAfterOntransition":
-      this.setAutoActionsAfterOntransition(transitionInfo[field]);
-      break;
-
-    case "ontransition":
-      this.setOntransition(transitionInfo[field]);
-      break;
-
-    default:
-      // Anything else is user-provided data for their own use.  Save it.
-      this.setUserData(field, transitionInfo[field]);
-
-      // Log it in case it was a typo and they intended a built-in field
-      this.debug("Transition " + transitionName + ": " +
-                 "Adding user-provided field to transition: " + field);
-
-      break;
-    }
-  }
-});
-
-
-
-
-/*
----------------------------------------------------------------------------
-  PROPERTIES
----------------------------------------------------------------------------
-*/
-
-/**
- * The name of this transition
- */
-qx.OO.addProperty(
-  {
-    name         : "name",
-    type         : "string"
-  });
-
-/**
- * The predicate function for this transition.  This is documented in the
- * constructor, and is typically provided through the constructor's
- * transitionInfo object, but it is also possible (but highly NOT recommended)
- * to change this dynamically.
- */
-qx.OO.addProperty(
-  {
-    name         : "predicate",
-    defaultValue : function(fsm, event) { return true; }
-  });
-
-/**
- * The state to transition to, if the predicate determines that this
- * transition is acceptable.  This is documented in the constructor, and is
- * typically provided through the constructor's transitionInfo object, but it
- * is also possible (but highly NOT recommended) to change this dynamically.
- */
-qx.OO.addProperty(
-  {
-    name         : "nextState",
-    defaultValue : qx.util.fsm.FiniteStateMachine.StateChange.CURRENT_STATE
-  });
-
-/**
- * Automatic actions to take prior to calling the transition's ontransition
- * function.  This is documented in the constructor, and is typically provided
- * through the constructor's transitionInfo object, but it is also possible
- * (but highly NOT recommended) to change this dynamically.
- */
-qx.OO.addProperty(
-  {
-    name         : "autoActionsBeforeOntransition",
-    defaultValue : function(fsm, event) { }
-  });
-
-/**
- * Automatic actions to take immediately after calling the transition's
- * ontransition function.  This is documented in the constructor, and is
- * typically provided through the constructor's transitionInfo object, but it
- * is also possible (but highly NOT recommended) to change this dynamically.
- */
-qx.OO.addProperty(
-  {
-    name         : "autoActionsAfterOntransition",
-    defaultValue : function(fsm, event) { }
-  });
-
-
-/**
- * The function run when the transition is accepted.  This is documented in
- * the constructor, and is typically provided through the constructor's
- * transitionInfo object, but it is also possible (but highly NOT recommended)
- * to change this dynamically.
- */
-qx.OO.addProperty(
-  {
-    name         : "ontransition",
-    defaultValue : function(fsm, event) { }
-  });
-
-
-
-
-/*
----------------------------------------------------------------------------
-  MODIFIER
----------------------------------------------------------------------------
-*/
-
-qx.Proto._checkName = function(propValue, propData)
-{
-  // Ensure that we got a valid state name
-  if (typeof(propValue) != "string" || propValue.length < 1)
-  {
-    throw new Error("Invalid transition name");
-  }
-
-  return propValue;
-};
-
-qx.Proto._checkPredicate = function(propValue, propData)
-{
-  // Validate the predicate.  Convert all valid types to function.
-  switch(typeof(propValue))
-  {
-    case "undefined":
-      // No predicate means predicate passes
-      return function(fsm, event) { return true; };
-
-    case "boolean":
-      // Convert boolean predicate to a function which returns that value
-      return function(fsm, event) { return propValue; };
-
-    case "function":
-      // Use user-provided function.
-      return propValue;
-
-    default:
-      throw new Error("Invalid transition predicate type: " +
-                      typeof(propValue));
-      break;
-  }
-};
-
-qx.Proto._checkNextState = function(propValue, propData)
-{
-  // Validate nextState.  It must be a string or a number.
-  switch(typeof(propValue))
-  {
-  case "string":
-    return propValue;
-
-  case "number":
-    // Ensure that it's one of the possible state-change constants
-    switch(propValue)
-    {
-    case qx.util.fsm.FiniteStateMachine.StateChange.CURRENT_STATE:
-    case qx.util.fsm.FiniteStateMachine.StateChange.POP_STATE_STACK:
-    case qx.util.fsm.FiniteStateMachine.StateChange.TERMINATE:
-      return propValue;
-
-    default:
-      throw new Error("Invalid transition nextState value: " +
-                      propValue +
-                      ": nextState must be an explicit state name, " +
-                      "or one of the Fsm.StateChange constants");
-    }
-    break;
-
-  default:
-    throw new Error("Invalid transition nextState type: " + typeof(propValue));
-    break;
-  }
-};
-
-qx.Proto._checkOntransition = function(propValue, propData)
-{
-  // Validate the ontransition function.  Convert undefined to function.
-  switch(typeof(propValue) )
-  {
-  case "undefined":
-    // No provided function just means do nothing.  Use a null function.
-    return function(fsm, event) { };
-
-  case "function":
-    // Use user-provided function.
-    return propValue;
-
-  default:
-    throw new Error("Invalid ontransition type: " + typeof(propValue));
-    break;
-  }
-};
-
-/*
----------------------------------------------------------------------------
-  UTILITIES
----------------------------------------------------------------------------
-*/
-
-
-/*
----------------------------------------------------------------------------
-  EVENT LISTENERS
----------------------------------------------------------------------------
-*/
-
-
-
-/*
----------------------------------------------------------------------------
-  CLASS CONSTANTS
----------------------------------------------------------------------------
-*/
-
-
-
-/*
----------------------------------------------------------------------------
-  DISPOSER
----------------------------------------------------------------------------
-*/
-
-qx.Proto.dispose = function()
-{
-  if (this.getDisposed()) {
-    return true;
-  }
-
-  return qx.core.Object.prototype.dispose.call(this);
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/fsm/example.txt b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/util/fsm/example.txt
deleted file mode 100644 (file)
index 35e8282..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-var fsm;
-var state;
-var trans;
-
-// Create a new finite state machine called "Test Machine"
-fsm = new qx.util.fsm.FiniteStateMachine("Test machine");
-
-// State S1
-state = new qx.util.fsm.State(
-  // State name
-  "S1",
-
-  // Object with state information
-  {
-    // Function called on entry to this state
-    "onentry" :
-      function(fsm, event)
-      {
-        alert("Previous state: " + fsm.getPreviousState());
-      };
-
-    // Function called on exit from this state
-    "onexit" :
-      function(fsm, event) 
-      {
-        alert("Next state: " + fsm.getNextState());
-      };
-
-    // Automatic actions to take place before a (possibly) new state's onentry
-    // function is called.
-    "autoActionsBeforeOnentry" :
-    {
-      // The name of a function.
-      "setEnabled" :
-      [
-        {
-          // The parameter value(s), thus "setEnabled(true);"
-          "parameters"   : [ true ],
-
-          // The function would be called on each object:
-          //  this.getObject("obj1").setEnabled(true);
-          //  this.getObject("obj2").setEnabled(true);
-          "objects" : [ "obj1", "obj2" ]
-
-          // And similarly for each object in each specified group.
-          "groups"  : [ "group1", "group2" ],
-        }
-      ];
-
-      "setColor" :
-      [
-        {
-          "parameters" : [ "blue" ]
-          "groups"     : [ "group3", "group4" ],
-          "objects"    : [ "obj3", "obj4" ]
-        }
-      ];
-    };
-
-    // also available, in same format as actionsBeforeOnentry:
-    //   "autoActionsAfterOnentry",
-    //   "autoActionsBeforeOnexit"
-    //   "autoActionsAfterOnexit"
-
-    // Events handled by this state, or queued for processing by a future state
-    "events" :
-    {
-      // The event type "compete" is handled by one of the transitions in this
-      // state.  The transitions will be searched in order of their addition
-      // to the state, until the predicate for a transition returns true (or
-      // no predicate is specified for the transition, which is an implicit
-      // "true") That transition will be used.
-      "complete"  : qx.util.fsm.FiniteStateMachine.EventHandling.PREDICATE,
-
-      // The event type "interval" has two objects specified by their
-      // "friendly name".  The action when an event of type "interval" occurs
-      // depends on which object was the target of the event.
-      "interval"  :
-      {
-        // If the target of the event was the object to which we have given
-        // the friendly name "flash" then use a transition specified by name
-        "flash"   : "S1_S3_interval_flash",
-
-        // If the target of the event was the object to which we have given
-        // the friendly name "timeout", then enqueue this event for possible
-        // processing by a future state.
-        "timeout" : qx.util.fsm.FiniteStateMachine.EventHandling.BLOCKED
-      },
-
-        // The event type "execute", too, has two objects specified by their
-        // "friendly name".
-      "execute"   :
-      {
-        // If the target of the event was the object to which we have given
-        // the friend name "ok", search the transitions in order looking for
-        // one where the predicate is true
-        "ok"      : qx.util.fsm.FiniteStateMachine.EventHandling.PREDICATE
-
-        // If the target of the event was the object to which we have given
-        // the friendly name "restart", then enqueue this event for possible
-        // processing by a future state.
-        "restart" : qx.util.fsm.FiniteStateMachine.EventHandling.BLOCKED
-      }
-
-      // all events other than those which are handled or blocked are ignored.
-    };
-  });
-
-// Add State S1 to the finite state machine.
-fsm.addState(state);
-
-// Transition from S1 to S2 due to event 1
-trans = new qx.util.fsm.Transition(
-  // Transition name
-  "S1_S2_ev1",
-
-  // Object with transition information
-  {
-    // return TRUE to pass
-    "predicate" :
-      function(fsm, event)
-      {
-        var type = event.getType();
-        if (type == "somethingWeCareAbout")
-        {
-          return true;
-        }
-        else if (type == "somethingToHandleInAnotherState")
-        {
-          // reattempt event delivery following state transition
-          fsm.postponeEvent(event);
-
-          // do no further transition attempts for this event for now
-          return null;
-        }
-        else
-        {
-          return false;
-        }
-      },
-
-    // if event matches and predicate passes, pop the state stack and go to
-    // the state which was found at the top of the stack.  States are added to
-    // the state stack by calling fsm.pushState() during a state's onexit
-    // function or by a transition's action function.
-    "nextState" : qx.util.fsm.FiniteStateMachine.StateChange..POP_STATE_STACK,
-
-    // action taken during transisition
-    "action"    :
-      function(fsm, event)
-      {
-        // save current state so a future transition can get back to
-        // this saved state
-        fsm.pushState();
-      }
-  });
-state.addTransition(trans);
-
-// Default transition (any event): remain in current state
-trans = new qx.util.fsm.Transition(
-  "S1_S1_default",
-  {
-    // true or undefined : always pass
-    "predicate" :
-      function(fsm, event)
-      {
-        // This predicate does not pass, and we return null to tell the finite
-        // state machine that no additional transitions in the transition list
-        // should be tested.  (Note that the next transition is the one
-        // explicitly called for by the "interval" event on the object with
-        // friendly name "flash".  We do not want a predicate search to find
-        // it.
-        return null;
-      },
-              
-    // return to current state
-    "nextState" : qx.util.fsm.FiniteStateMachine.StateChange.CURRENT_STATE,
-  });
-state.addTransition(trans);
-
-// Transition from S1 to S2 due to event 2.  Since the previous transition
-// returned null in its predicate function, the only way to get to this
-// transition is when it is called out explicitly in the state's event list.
-// This one was specified for the "interval" event on the object with friendly
-// name "flash".
-trans = new qx.util.finitestatememachine.Transition(
-  "S1_S3_interval_flash",
-  {
-    // No predicate or a value of 'true' means that the predicate passes as if
-    // a predicate function returned true.
-    "predicate" : true,
-    
-    // if event matches, go to this state
-    "nextState" : "S2",
-    
-    // action taken during transisition
-    "action"    :
-      function(fsm, event)
-      {
-        alert(this.getName() + "action function");
-      }
-  });
-state.addTransition(trans);
-
-// We would, of course, need to add state S2 since it is specified in a
-// nextState property.  That is left as an exercise for the reader.
-
-
-// Initialize and start the machine running
-fsm.start();
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/xml/Document.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/xml/Document.js
deleted file mode 100644 (file)
index 2585b69..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-/**
- * XML Document
- *
- * Tested with IE6, Firefox 2.0, WebKit/Safari 3.0 and Opera 9
- *
- * http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/81f3de54-3b79-46dc-8e01-73ca2d94cdb5.asp
- * http://developer.mozilla.org/en/docs/Parsing_and_serializing_XML
- */
-qx.OO.defineClass("qx.xml.Document");
-
-/**
- * Create an XML document.
- * http://www.w3.org/TR/DOM-Level-2-Core/core.html#i-Document
- *
- * @param namespaceUri {String|null?null} The namespace URI of the document element to create or null.
- * @param qualifiedName {String|null?null} The qualified name of the document element to be created or null.
- *
- * @return {Document} empty XML document
- */
-qx.Class.create = function(namespaceUri, qualifiedName) {};
-
-if (document.implementation && document.implementation.createDocument) // The Mozilla style
-{
-  qx.Class.create = function(namespaceUri, qualifiedName)
-  {
-    return document.implementation.createDocument(namespaceUri || "", qualifiedName || "", null);
-  }
-}
-else if (qx.core.Client.getInstance().isMshtml())   // The Microsoft style
-{
-  qx.Class.create = function(namespaceUri, qualifiedName)
-  {
-    /*
-     According to information on the Microsoft XML Team's WebLog
-     it is recommended to check for availability of MSXML versions 6.0 and 3.0.
-     Other versions are included for completeness, 5.0 is excluded as it is
-     "off-by-default" in IE7 (which could trigger a goldbar).
-
-     http://blogs.msdn.com/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx
-     http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/aabe29a2-bad2-4cea-8387-314174252a74.asp
-
-    */
-    var vServers =
-    [
-      "MSXML2.DOMDocument.3.0",
-      "MSXML2.DOMDocument.6.0",
-      "MSXML2.DOMDocument.4.0",
-      "MSXML2.DOMDocument",  // v3.0
-      "MSXML.DOMDocument",   // v2.x
-      "Microsoft.XMLDOM"     // v2.x
-    ];
-
-    var vObject;
-
-    for (var i=0, l=vServers.length; i<l; i++)
-    {
-
-      try
-      {
-        vObject = new ActiveXObject(vServers[i]);
-        break;
-      }
-      catch(ex)
-      {
-        vObject = null;
-      }
-    }
-    if (qualifiedName && vObject) {
-      xmlStr = new qx.util.StringBuilder();
-      xmlStr.add("<?xml version='1.0' encoding='UTF-8'?>\n<");
-      xmlStr.add(qualifiedName);
-      if (namespaceUri) {
-        xmlStr.add(" xmlns='");
-        xmlStr.add(namespaceUri);
-        xmlStr.add("'");
-      }
-      xmlStr.add(" />");
-      vObject.loadXML(xmlStr.toString());
-    }
-    return vObject;
-  };
-}
-else
-{
-  throw new Error("This browser does not support xml dom creation.");
-}
-
-
-/**
- * The string passed in is parsed into a DOM document.
- *
- * @param str {String} the string to be parsed
- * @return {Document}
- *
- * TODO: move to create()
- */
-qx.Class.fromString = function(str) {};
-
-if (window.DOMParser)
-{
-  qx.Class.fromString = function(str) {
-    var dom = (new DOMParser()).parseFromString(str, "text/xml");
-    return dom;
-  };
-}
-else if (qx.core.Client.getInstance().isMshtml())   // The Microsoft style
-{
-  qx.Class.fromString = function(str) {
-    var dom = qx.xml.Document.create();
-    dom.loadXML(str);
-    return dom;
-  };
-}
-else
-{
-  throw new Error("This browser does not support xml dom creation from string.");
-}
-
-
-/**
- * Check whether an object is a Document instance
- *
- * @param obj {Object} object to check
- * @return {Boolean} whether the object is a Document instance
- */
-qx.Class.isDocument = function(obj) {
-  return (obj.nodeType == qx.dom.Node.DOCUMENT);
-};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/xml/Element.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/xml/Element.js
deleted file mode 100644 (file)
index c71c57b..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-
-************************************************************************ */
-
-/**
- * XML Element
- *
- * Tested with IE6, Firefox 2.0, WebKit/Safari 3.0 and Opera 9
- *
- * http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/81f3de54-3b79-46dc-8e01-73ca2d94cdb5.asp
- * http://developer.mozilla.org/en/docs/Parsing_and_serializing_XML
- */
-qx.OO.defineClass("qx.xml.Element");
-
-
-/**
- * The subtree rooted by the specified element or document is serialized to a string.
- *
- * @param element {Element|Document} The root of the subtree to be serialized. This could be any node, including a Document.
- * @return {String}
- */
-qx.Class.serialize = function(element) {}
-
-if (window.XMLSerializer) {
-  qx.Class.serialize = function(element) {
-    var element = qx.xml.Document.isDocument(element) ? element.documentElement : element;
-    return (new XMLSerializer()).serializeToString(element);
-  };
-}
-else
-{
-  qx.Class.serialize = function(element) {
-    var element = qx.xml.Document.isDocument(element) ? element.documentElement : element;
-    return element.xml || element.outerHTML;
-  };
-}
-
-
-/**
- * Selects the first XmlNode that matches the XPath expression.
- *
- * @param element {Element|Document} root element for the search
- * @param query {String}  XPath query
- * @return {Element} first matching element
- */
- qx.Class.selectSingleNode = function(element, query) {};
-
-if (window.XPathEvaluator)
-{
-  qx.Class.selectSingleNode = function(element, query) {
-    var xpe = new XPathEvaluator();
-    return xpe.evaluate(query, element, xpe.createNSResolver(element), XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
-  };
-}
-else if(qx.core.Client.getInstance().isMshtml() || document.selectSingleNode) // IE and Opera
-{
-  qx.Class.selectSingleNode = function(element, query) {
-    return element.selectSingleNode(query);
-  };
-}
-
-
-/**
- * Selects a list of nodes matching the XPath expression.
- *
- * @param element {Element|Document} root element for the search
- * @param query {String}  XPath query
- * @return {Element[]} List of matching elements
- */
- qx.Class.selectNodes = function(element, query) {};
-
-if (window.XPathEvaluator)
-{
-  qx.Class.selectNodes = function(element, query) {
-    var xpe = new XPathEvaluator();
-    var result = xpe.evaluate(query, element, xpe.createNSResolver(element), XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
-    var nodes = [];
-
-    for (var i=0; i<result.snapshotLength; i++) {
-      nodes[i] = result.snapshotItem(i);
-    }
-
-    return nodes;
-  };
-}
-else if(qx.core.Client.getInstance().isMshtml() || document.selectNodes) // IE and Opera
-{
-  qx.Class.selectNodes = function(element, query) {
-    return element.selectNodes(query);
-  };
-}
-
-
-/**
- * Returns a list of elements with the given tag name belonging to the given namespace (http://developer.mozilla.org/en/docs/DOM:element.getElementsByTagNameNS).
- *
- * @param element {Element|Document} the element from where the search should start.
- *     Note that only the descendants of this element are included in the search, not the node itself.
- * @param namespaceURI is the namespace URI of elements to look for . For example, if you need to look
- *     for XHTML elements, use the XHTML namespace URI, <tt>http://www.w3.org/1999/xhtml</tt>.
- * @param tagname {String} the tagname to look for
- * @return {Element[]} a list of found elements in the order they appear in the tree.
- */
-qx.Class.getElementsByTagNameNS = function(element, namespaceURI, tagname) {};
-
-if (document.getElementsByTagNameNS)
-{
-  qx.Class.getElementsByTagNameNS = function(element, namespaceURI, tagname) {
-   return element.getElementsByTagNameNS(namespaceURI, tagname);
-  };
-}
-else if (qx.core.Client.getInstance().isMshtml())
-{
-  qx.Class.getElementsByTagNameNS = function(element, namespaceURI, tagname) {
-    var doc = element.ownerDocument || element;
-    doc.setProperty("SelectionLanguage", "XPath");
-    doc.setProperty("SelectionNamespaces", "xmlns:ns='" + namespaceURI + "'");
-    return qx.xml.Element.selectNodes(element, '//ns:' + tagname);
-  };
-}
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/xml/Entity.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/xml/Entity.js
deleted file mode 100644 (file)
index d4ab84d..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#require(qx.lang.Object)
-
-************************************************************************ */
-
-/**
- * XML Entities
- */
-qx.OO.defineClass("qx.xml.Entity");
-
-
-/** Mapping of XML entity names to the corresponding char code */
-qx.Class.TO_CHARCODE = {
-  "quot": 34, // " - double-quote
-  "amp": 38, // &
-  "lt": 60, // <
-  "gt": 62, // >
-  "apos": 39 // XML apostrophe
-};
-
-
-/** Mapping of char codes to XML entity names */
-qx.Class.FROM_CHARCODE = qx.lang.Object.invert(qx.Class.TO_CHARCODE);
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/xml/Namespace.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/xml/Namespace.js
deleted file mode 100644 (file)
index 0a054c0..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/* ************************************************************************\r
-\r
-   qooxdoo - the new era of web development\r
-\r
-   http://qooxdoo.org\r
-\r
-   Copyright:\r
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org\r
-\r
-   License:\r
-     LGPL: http://www.gnu.org/licenses/lgpl.html\r
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php\r
-     See the LICENSE file in the project's top-level directory for details.\r
-\r
-   Authors:\r
-     * Sebastian Werner (wpbasti)\r
-     * Andreas Ecker (ecker)\r
-\r
-************************************************************************ */\r
-\r
-/* ************************************************************************\r
-\r
-\r
-************************************************************************ */\r
-\r
-qx.OO.defineClass("qx.xml.Namespace",\r
-{\r
-  SVG : "http://www.w3.org/2000/svg",\r
-  SMIL : "http://www.w3.org/2001/SMIL20/",\r
-  MML : "http://www.w3.org/1998/Math/MathML",\r
-  CML : "http://www.xml-cml.org",\r
-  XLINK : "http://www.w3.org/1999/xlink",\r
-  XHTML : "http://www.w3.org/1999/xhtml",\r
-  XUL : "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul",\r
-  XBL : "http://www.mozilla.org/xbl",\r
-  FO : "http://www.w3.org/1999/XSL/Format",\r
-  XSL : "http://www.w3.org/1999/XSL/Transform",\r
-  XSLT : "http://www.w3.org/1999/XSL/Transform",\r
-  XI : "http://www.w3.org/2001/XInclude",\r
-  XFORMS : "http://www.w3.org/2002/01/xforms",\r
-  SAXON : "http://icl.com/saxon",\r
-  XALAN : "http://xml.apache.org/xslt",\r
-  XSD : "http://www.w3.org/2001/XMLSchema",\r
-  DT: "http://www.w3.org/2001/XMLSchema-datatypes",\r
-  XSI : "http://www.w3.org/2001/XMLSchema-instance",\r
-  RDF : "http://www.w3.org/1999/02/22-rdf-syntax-ns#",\r
-  RDFS : "http://www.w3.org/2000/01/rdf-schema#",\r
-  RSS1 : "http://purl.org/rss/1.0/modules/content/",\r
-  DC : "http://purl.org/dc/elements/1.1/",\r
-  DCQ: "http://purl.org/dc/qualifiers/1.0",\r
-  SOAPENV : "http://schemas.xmlsoap.org/soap/envelope/",\r
-  WSDL : "http://schemas.xmlsoap.org/wsdl/",\r
-  ADOBESVGEXTENSIONS : "http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"\r
-});
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/xml/String.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/xml/String.js
deleted file mode 100644 (file)
index 5af99b8..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL: http://www.eclipse.org/org/documents/epl-v10.php
-     See the LICENSE file in the project's top-level directory for details.
-
-   Authors:
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#require(qx.lang.Object)
-
-************************************************************************ */
-
-/**
- * Escaping and unescaping of XML strings.
- */
-qx.OO.defineClass("qx.xml.String");
-
-
-/**
- * Escapes the characters in a <code>String</code> using XML entities.
- *
- * For example: <tt>"bread" & "butter"</tt> =>
- * <tt>&amp;quot;bread&amp;quot; &amp;amp; &amp;quot;butter&amp;quot;</tt>.
- *
- * Supports only the four basic XML entities (gt, lt, quot, amp).
- * Does not support DTDs or external entities.
- * Note that unicode characters greater than 0x7f are currently escaped to their numerical \\u equivalent.
- *
- * @see #unescape
- *
- * @param str {String} the string to be escaped
- * @return {String} the escaped string
- */
-qx.Class.escape = function(str) {
-  return qx.dom.String.escapeEntities(
-    str,
-    qx.xml.Entity.FROM_CHARCODE
-  );
-};
-
-
-/**
- * Unescapes a string containing XML entity escapes to a string
- * containing the actual Unicode characters corresponding to the
- * escapes.
- *
- * Supports only the four basic XML entities (gt, lt, quot, amp).
- * Does not support DTDs or external entities.
- *
- * @see #escape
- *
- * @param str {String} the string to be unescaped
- * @return {String} the unescaped string
- */
-qx.Class.unescape = function(str) {
-  return qx.dom.String.unescapeEntities(
-    str,
-    qx.xml.Entity.TO_CHARCODE
-  );
-};
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/C.xml b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/C.xml
deleted file mode 100644 (file)
index 4106a04..0000000
+++ /dev/null
@@ -1,2317 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/data/dtd/ldml.dtd">
-<ldml>
-  <!--
-    This is the default localization. I a key cannot be found in the desired locale the
-    information from this file is taken. It is basically a slightly modified "en.xml".
-  -->
-       <identity>
-               <version number="$Revision: 1.117 $"/>
-               <generation date="$Date: 2006/12/08 16:29:36 $"/>
-               <language type="C"/>
-       </identity>
-       <localeDisplayNames>
-               <languages>
-                       <language type="aa">Afar</language>
-                       <language type="ab">Abkhazian</language>
-                       <language type="ace">Achinese</language>
-                       <language type="ach">Acoli</language>
-                       <language type="ada">Adangme</language>
-                       <language type="ady">Adyghe</language>
-                       <language type="ae">Avestan</language>
-                       <language type="af">Afrikaans</language>
-                       <language type="afa">Afro-Asiatic (Other)</language>
-                       <language type="afh">Afrihili</language>
-                       <language type="ain">Ainu</language>
-                       <language type="ak">Akan</language>
-                       <language type="akk">Akkadian</language>
-                       <language type="ale">Aleut</language>
-                       <language type="alg">Algonquian Languages</language>
-                       <language type="alt">Southern Altai</language>
-                       <language type="am">Amharic</language>
-                       <language type="an">Aragonese</language>
-                       <language type="ang">Old English (ca.450-1100)</language>
-                       <language type="anp">Angika</language>
-                       <language type="apa">Apache Languages</language>
-                       <language type="ar">Arabic</language>
-                       <language type="arc">Aramaic</language>
-                       <language type="arn">Araucanian</language>
-                       <language type="arp">Arapaho</language>
-                       <language type="art">Artificial (Other)</language>
-                       <language type="arw">Arawak</language>
-                       <language type="as">Assamese</language>
-                       <language type="ast">Asturian</language>
-                       <language type="ath">Athapascan Languages</language>
-                       <language type="aus">Australian Languages</language>
-                       <language type="av">Avaric</language>
-                       <language type="awa">Awadhi</language>
-                       <language type="ay">Aymara</language>
-                       <language type="az">Azerbaijani</language>
-                       <language type="ba">Bashkir</language>
-                       <language type="bad">Banda</language>
-                       <language type="bai">Bamileke Languages</language>
-                       <language type="bal">Baluchi</language>
-                       <language type="ban">Balinese</language>
-                       <language type="bas">Basa</language>
-                       <language type="bat">Baltic (Other)</language>
-                       <language type="be">Belarusian</language>
-                       <language type="bej">Beja</language>
-                       <language type="bem">Bemba</language>
-                       <language type="ber">Berber</language>
-                       <language type="bg">Bulgarian</language>
-                       <language type="bh">Bihari</language>
-                       <language type="bho">Bhojpuri</language>
-                       <language type="bi">Bislama</language>
-                       <language type="bik">Bikol</language>
-                       <language type="bin">Bini</language>
-                       <language type="bla">Siksika</language>
-                       <language type="bm">Bambara</language>
-                       <language type="bn">Bengali</language>
-                       <language type="bnt">Bantu</language>
-                       <language type="bo">Tibetan</language>
-                       <language type="br">Breton</language>
-                       <language type="bra">Braj</language>
-                       <language type="bs">Bosnian</language>
-                       <language type="btk">Batak</language>
-                       <language type="bua">Buriat</language>
-                       <language type="bug">Buginese</language>
-                       <language type="byn">Blin</language>
-                       <language type="ca">Catalan</language>
-                       <language type="cad">Caddo</language>
-                       <language type="cai">Central American Indian (Other)</language>
-                       <language type="car">Carib</language>
-                       <language type="cau">Caucasian (Other)</language>
-                       <language type="cch">Atsam</language>
-                       <language type="ce">Chechen</language>
-                       <language type="ceb">Cebuano</language>
-                       <language type="cel">Celtic (Other)</language>
-                       <language type="ch">Chamorro</language>
-                       <language type="chb">Chibcha</language>
-                       <language type="chg">Chagatai</language>
-                       <language type="chk">Chuukese</language>
-                       <language type="chm">Mari</language>
-                       <language type="chn">Chinook Jargon</language>
-                       <language type="cho">Choctaw</language>
-                       <language type="chp">Chipewyan</language>
-                       <language type="chr">Cherokee</language>
-                       <language type="chy">Cheyenne</language>
-                       <language type="cmc">Chamic Languages</language>
-                       <language type="co">Corsican</language>
-                       <language type="cop">Coptic</language>
-                       <language type="cpe">Other English-based Creoles and Pidgins</language>
-                       <language type="cpf">Other French-based Creoles and Pidgins</language>
-                       <language type="cpp">Other Portuguese-based Creoles and Pidgins</language>
-                       <language type="cr">Cree</language>
-                       <language type="crh">Crimean Turkish; Crimean Tatar</language>
-                       <language type="crp">Creoles and Pidgins (Other)</language>
-                       <language type="cs">Czech</language>
-                       <language type="csb">Kashubian</language>
-                       <language type="cu">Church Slavic</language>
-                       <language type="cus">Cushitic (Other)</language>
-                       <language type="cv">Chuvash</language>
-                       <language type="cy">Welsh</language>
-                       <language type="da">Danish</language>
-                       <language type="dak">Dakota</language>
-                       <language type="dar">Dargwa</language>
-                       <language type="day">Dayak</language>
-                       <language type="de">German</language>
-                       <language type="de_AT">Austrian German</language>
-                       <language type="del">Delaware</language>
-                       <language type="den">Slave</language>
-                       <language type="dgr">Dogrib</language>
-                       <language type="din">Dinka</language>
-                       <language type="doi">Dogri</language>
-                       <language type="dra">Dravidian (Other)</language>
-                       <language type="dsb">Lower Sorbian</language>
-                       <language type="dua">Duala</language>
-                       <language type="dum">Middle Dutch</language>
-                       <language type="dv">Divehi</language>
-                       <language type="dyu">Dyula</language>
-                       <language type="dz">Dzongkha</language>
-                       <language type="ee">Ewe</language>
-                       <language type="efi">Efik</language>
-                       <language type="egy">Egyptian (Ancient)</language>
-                       <language type="eka">Ekajuk</language>
-                       <language type="el">Greek</language>
-                       <language type="elx">Elamite</language>
-                       <language type="en">English</language>
-                       <language type="en_AU">Australian English</language>
-                       <language type="en_CA">Canadian English</language>
-                       <language type="en_GB">British English</language>
-                       <language type="en_US">U.S. English</language>
-                       <language type="enm">Middle English</language>
-                       <language type="eo">Esperanto</language>
-                       <language type="es">Spanish</language>
-                       <language type="es_419">Latin American Spanish</language>
-                       <language type="et">Estonian</language>
-                       <language type="eu">Basque</language>
-                       <language type="ewo">Ewondo</language>
-                       <language type="fa">Persian</language>
-                       <language type="fan">Fang</language>
-                       <language type="fat">Fanti</language>
-                       <language type="ff">Fulah</language>
-                       <language type="fi">Finnish</language>
-                       <language type="fil">Filipino</language>
-                       <language type="fiu">Finno - Ugrian (Other)</language>
-                       <language type="fj">Fijian</language>
-                       <language type="fo">Faroese</language>
-                       <language type="fon">Fon</language>
-                       <language type="fr">French</language>
-                       <language type="fr_CA">Canadian French</language>
-                       <language type="fr_CH">Swiss French</language>
-                       <language type="frm">Middle French</language>
-                       <language type="fro">Old French</language>
-                       <language type="frr">Northern Frisian</language>
-                       <language type="frs">Eastern Frisian</language>
-                       <language type="fur">Friulian</language>
-                       <language type="fy">Western Frisian</language>
-                       <language type="ga">Irish</language>
-                       <language type="gaa">Ga</language>
-                       <language type="gay">Gayo</language>
-                       <language type="gba">Gbaya</language>
-                       <language type="gd">Scottish Gaelic</language>
-                       <language type="gem">Germanic (Other)</language>
-                       <language type="gez">Geez</language>
-                       <language type="gil">Gilbertese</language>
-                       <language type="gl">Galician</language>
-                       <language type="gmh">Middle High German</language>
-                       <language type="gn">Guarani</language>
-                       <language type="goh">Old High German</language>
-                       <language type="gon">Gondi</language>
-                       <language type="gor">Gorontalo</language>
-                       <language type="got">Gothic</language>
-                       <language type="grb">Grebo</language>
-                       <language type="grc">Ancient Greek</language>
-                       <language type="gsw">Swiss German</language>
-                       <language type="gu">Gujarati</language>
-                       <language type="gv">Manx</language>
-                       <language type="gwi">Gwichʼin</language>
-                       <language type="ha">Hausa</language>
-                       <language type="hai">Haida</language>
-                       <language type="haw">Hawaiian</language>
-                       <language type="he">Hebrew</language>
-                       <language type="hi">Hindi</language>
-                       <language type="hil">Hiligaynon</language>
-                       <language type="him">Himachali</language>
-                       <language type="hit">Hittite</language>
-                       <language type="hmn">Hmong</language>
-                       <language type="ho">Hiri Motu</language>
-                       <language type="hr">Croatian</language>
-                       <language type="hsb">Upper Sorbian</language>
-                       <language type="ht">Haitian</language>
-                       <language type="hu">Hungarian</language>
-                       <language type="hup">Hupa</language>
-                       <language type="hy">Armenian</language>
-                       <language type="hz">Herero</language>
-                       <language type="ia">Interlingua</language>
-                       <language type="iba">Iban</language>
-                       <language type="id">Indonesian</language>
-                       <language type="ie">Interlingue</language>
-                       <language type="ig">Igbo</language>
-                       <language type="ii">Sichuan Yi</language>
-                       <language type="ijo">Ijo</language>
-                       <language type="ik">Inupiaq</language>
-                       <language type="ilo">Iloko</language>
-                       <language type="inc">Indic (Other)</language>
-                       <language type="ine">Indo-European (Other)</language>
-                       <language type="inh">Ingush</language>
-                       <language type="io">Ido</language>
-                       <language type="ira">Iranian (Other)</language>
-                       <language type="iro">Iroquoian languages</language>
-                       <language type="is">Icelandic</language>
-                       <language type="it">Italian</language>
-                       <language type="iu">Inuktitut</language>
-                       <language type="ja">Japanese</language>
-                       <language type="jbo">Lojban</language>
-                       <language type="jpr">Judeo-Persian</language>
-                       <language type="jrb">Judeo-Arabic</language>
-                       <language type="jv">Javanese</language>
-                       <language type="ka">Georgian</language>
-                       <language type="kaa">Kara-Kalpak</language>
-                       <language type="kab">Kabyle</language>
-                       <language type="kac">Kachin</language>
-                       <language type="kaj">Jju</language>
-                       <language type="kam">Kamba</language>
-                       <language type="kar">Karen</language>
-                       <language type="kaw">Kawi</language>
-                       <language type="kbd">Kabardian</language>
-                       <language type="kcg">Tyap</language>
-                       <language type="kfo">Koro</language>
-                       <language type="kg">Kongo</language>
-                       <language type="kha">Khasi</language>
-                       <language type="khi">Khoisan (Other)</language>
-                       <language type="kho">Khotanese</language>
-                       <language type="ki">Kikuyu</language>
-                       <language type="kj">Kuanyama</language>
-                       <language type="kk">Kazakh</language>
-                       <language type="kl">Kalaallisut</language>
-                       <language type="km">Khmer</language>
-                       <language type="kmb">Kimbundu</language>
-                       <language type="kn">Kannada</language>
-                       <language type="ko">Korean</language>
-                       <language type="kok">Konkani</language>
-                       <language type="kos">Kosraean</language>
-                       <language type="kpe">Kpelle</language>
-                       <language type="kr">Kanuri</language>
-                       <language type="krc">Karachay-Balkar</language>
-                       <language type="krl">Karelian</language>
-                       <language type="kro">Kru</language>
-                       <language type="kru">Kurukh</language>
-                       <language type="ks">Kashmiri</language>
-                       <language type="ku">Kurdish</language>
-                       <language type="kum">Kumyk</language>
-                       <language type="kut">Kutenai</language>
-                       <language type="kv">Komi</language>
-                       <language type="kw">Cornish</language>
-                       <language type="ky">Kirghiz</language>
-                       <language type="la">Latin</language>
-                       <language type="lad">Ladino</language>
-                       <language type="lah">Lahnda</language>
-                       <language type="lam">Lamba</language>
-                       <language type="lb">Luxembourgish</language>
-                       <language type="lez">Lezghian</language>
-                       <language type="lg">Ganda</language>
-                       <language type="li">Limburgish</language>
-                       <language type="ln">Lingala</language>
-                       <language type="lo">Lao</language>
-                       <language type="lol">Mongo</language>
-                       <language type="loz">Lozi</language>
-                       <language type="lt">Lithuanian</language>
-                       <language type="lu">Luba-Katanga</language>
-                       <language type="lua">Luba-Lulua</language>
-                       <language type="lui">Luiseno</language>
-                       <language type="lun">Lunda</language>
-                       <language type="luo">Luo</language>
-                       <language type="lus">Lushai</language>
-                       <language type="lv">Latvian</language>
-                       <language type="mad">Madurese</language>
-                       <language type="mag">Magahi</language>
-                       <language type="mai">Maithili</language>
-                       <language type="mak">Makasar</language>
-                       <language type="man">Mandingo</language>
-                       <language type="map">Austronesian</language>
-                       <language type="mas">Masai</language>
-                       <language type="mdf">Moksha</language>
-                       <language type="mdr">Mandar</language>
-                       <language type="men">Mende</language>
-                       <language type="mg">Malagasy</language>
-                       <language type="mga">Middle Irish</language>
-                       <language type="mh">Marshallese</language>
-                       <language type="mi">Maori</language>
-                       <language type="mic">Micmac</language>
-                       <language type="min">Minangkabau</language>
-                       <language type="mis">Miscellaneous Languages</language>
-                       <language type="mk">Macedonian</language>
-                       <language type="mkh">Mon-Khmer (Other)</language>
-                       <language type="ml">Malayalam</language>
-                       <language type="mn">Mongolian</language>
-                       <language type="mnc">Manchu</language>
-                       <language type="mni">Manipuri</language>
-                       <language type="mno">Manobo Languages</language>
-                       <language type="mo">Moldavian</language>
-                       <language type="moh">Mohawk</language>
-                       <language type="mos">Mossi</language>
-                       <language type="mr">Marathi</language>
-                       <language type="ms">Malay</language>
-                       <language type="mt">Maltese</language>
-                       <language type="mul">Multiple Languages</language>
-                       <language type="mun">Munda Languages</language>
-                       <language type="mus">Creek</language>
-                       <language type="mwl">Mirandese</language>
-                       <language type="mwr">Marwari</language>
-                       <language type="my">Burmese</language>
-                       <language type="myn">Mayan languages</language>
-                       <language type="myv">Erzya</language>
-                       <language type="na">Nauru</language>
-                       <language type="nah">Nahuatl</language>
-                       <language type="nai">North American Indian (Other)</language>
-                       <language type="nap">Neapolitan</language>
-                       <language type="nb">Norwegian Bokmål</language>
-                       <language type="nd">North Ndebele</language>
-                       <language type="nds">Low German; Low Saxon</language>
-                       <language type="ne">Nepali</language>
-                       <language type="new">Newari</language>
-                       <language type="ng">Ndonga</language>
-                       <language type="nia">Nias</language>
-                       <language type="nic">Niger - Kordofanian (Other)</language>
-                       <language type="niu">Niuean</language>
-                       <language type="nl">Dutch</language>
-                       <language type="nl_BE">Flemish</language>
-                       <language type="nn">Norwegian Nynorsk</language>
-                       <language type="no">Norwegian</language>
-                       <language type="nog">Nogai</language>
-                       <language type="non">Norse, Old</language>
-                       <language type="nqo">N’Ko</language>
-                       <language type="nr">South Ndebele</language>
-                       <language type="nso">Northern Sotho</language>
-                       <language type="nub">Nubian Languages</language>
-                       <language type="nv">Navajo</language>
-                       <language type="nwc">Classical Newari</language>
-                       <language type="ny">Nyanja; Chichewa; Chewa</language>
-                       <language type="nym">Nyamwezi</language>
-                       <language type="nyn">Nyankole</language>
-                       <language type="nyo">Nyoro</language>
-                       <language type="nzi">Nzima</language>
-                       <language type="oc">Occitan (post 1500); Provençal</language>
-                       <language type="oj">Ojibwa</language>
-                       <language type="om">Oromo</language>
-                       <language type="or">Oriya</language>
-                       <language type="os">Ossetic</language>
-                       <language type="osa">Osage</language>
-                       <language type="ota">Ottoman Turkish</language>
-                       <language type="oto">Otomian Languages</language>
-                       <language type="pa">Punjabi</language>
-                       <language type="paa">Papuan (Other)</language>
-                       <language type="pag">Pangasinan</language>
-                       <language type="pal">Pahlavi</language>
-                       <language type="pam">Pampanga</language>
-                       <language type="pap">Papiamento</language>
-                       <language type="pau">Palauan</language>
-                       <language type="peo">Old Persian</language>
-                       <language type="phi">Philippine (Other)</language>
-                       <language type="phn">Phoenician</language>
-                       <language type="pi">Pali</language>
-                       <language type="pl">Polish</language>
-                       <language type="pon">Pohnpeian</language>
-                       <language type="pra">Prakrit Languages</language>
-                       <language type="pro">Old Provençal</language>
-                       <language type="ps" references="RP1">Pashto</language>
-                       <language type="ps" alt="variant">Pushto</language>
-                       <language type="pt">Portuguese</language>
-                       <language type="pt_BR">Brazilian Portuguese</language>
-                       <language type="qu">Quechua</language>
-                       <language type="raj">Rajasthani</language>
-                       <language type="rap">Rapanui</language>
-                       <language type="rar">Rarotongan</language>
-                       <language type="rm">Rhaeto-Romance</language>
-                       <language type="rn">Rundi</language>
-                       <language type="ro">Romanian</language>
-                       <language type="roa">Romance (Other)</language>
-                       <language type="rom">Romany</language>
-                       <language type="root">Root</language>
-                       <language type="ru">Russian</language>
-                       <language type="rup">Aromanian</language>
-                       <language type="rw">Kinyarwanda</language>
-                       <language type="sa">Sanskrit</language>
-                       <language type="sad">Sandawe</language>
-                       <language type="sah">Yakut</language>
-                       <language type="sai">South American Indian (Other)</language>
-                       <language type="sal">Salishan languages</language>
-                       <language type="sam">Samaritan Aramaic</language>
-                       <language type="sas">Sasak</language>
-                       <language type="sat">Santali</language>
-                       <language type="sc">Sardinian</language>
-                       <language type="scn">Sicilian</language>
-                       <language type="sco">Scots</language>
-                       <language type="sd">Sindhi</language>
-                       <language type="se">Northern Sami</language>
-                       <language type="sel">Selkup</language>
-                       <language type="sem">Semitic (Other)</language>
-                       <language type="sg">Sango</language>
-                       <language type="sga">Old Irish</language>
-                       <language type="sgn">Sign Languages</language>
-                       <language type="sh">Serbo-Croatian</language>
-                       <language type="shn">Shan</language>
-                       <language type="si">Sinhalese</language>
-                       <language type="sid">Sidamo</language>
-                       <language type="sio">Siouan Languages</language>
-                       <language type="sit">Sino-Tibetan (Other)</language>
-                       <language type="sk">Slovak</language>
-                       <language type="sl">Slovenian</language>
-                       <language type="sla">Slavic (Other)</language>
-                       <language type="sm">Samoan</language>
-                       <language type="sma">Southern Sami</language>
-                       <language type="smi">Sami languages (Other)</language>
-                       <language type="smj">Lule Sami</language>
-                       <language type="smn">Inari Sami</language>
-                       <language type="sms">Skolt Sami</language>
-                       <language type="sn">Shona</language>
-                       <language type="snk">Soninke</language>
-                       <language type="so">Somali</language>
-                       <language type="sog">Sogdien</language>
-                       <language type="son">Songhai</language>
-                       <language type="sq">Albanian</language>
-                       <language type="sr">Serbian</language>
-                       <language type="srn">Sranan Tongo</language>
-                       <language type="srr">Serer</language>
-                       <language type="ss">Swati</language>
-                       <language type="ssa">Nilo-Saharan (Other)</language>
-                       <language type="st">Southern Sotho</language>
-                       <language type="su">Sundanese</language>
-                       <language type="suk">Sukuma</language>
-                       <language type="sus">Susu</language>
-                       <language type="sux">Sumerian</language>
-                       <language type="sv">Swedish</language>
-                       <language type="sw">Swahili</language>
-                       <language type="syr">Syriac</language>
-                       <language type="ta">Tamil</language>
-                       <language type="tai">Tai (Other)</language>
-                       <language type="te">Telugu</language>
-                       <language type="tem">Timne</language>
-                       <language type="ter">Tereno</language>
-                       <language type="tet">Tetum</language>
-                       <language type="tg">Tajik</language>
-                       <language type="th">Thai</language>
-                       <language type="ti">Tigrinya</language>
-                       <language type="tig">Tigre</language>
-                       <language type="tiv">Tiv</language>
-                       <language type="tk">Turkmen</language>
-                       <language type="tkl">Tokelau</language>
-                       <language type="tl">Tagalog</language>
-                       <language type="tlh">Klingon</language>
-                       <language type="tli">Tlingit</language>
-                       <language type="tmh">Tamashek</language>
-                       <language type="tn">Tswana</language>
-                       <language type="to">Tonga (Tonga Islands)</language>
-                       <language type="tog">Tonga (Nyasa)</language>
-                       <language type="tpi">Tok Pisin</language>
-                       <language type="tr">Turkish</language>
-                       <language type="ts">Tsonga</language>
-                       <language type="tsi">Tsimshian</language>
-                       <language type="tt">Tatar</language>
-                       <language type="tum">Tumbuka</language>
-                       <language type="tup">Tupi languages</language>
-                       <language type="tut">Altaic (Other)</language>
-                       <language type="tvl">Tuvalu</language>
-                       <language type="tw">Twi</language>
-                       <language type="ty">Tahitian</language>
-                       <language type="tyv">Tuvinian</language>
-                       <language type="udm">Udmurt</language>
-                       <language type="ug">Uighur</language>
-                       <language type="uga">Ugaritic</language>
-                       <language type="uk">Ukrainian</language>
-                       <language type="umb">Umbundu</language>
-                       <language type="und">Unknown or Invalid Language</language>
-                       <language type="ur">Urdu</language>
-                       <language type="uz">Uzbek</language>
-                       <language type="vai">Vai</language>
-                       <language type="ve">Venda</language>
-                       <language type="vi">Vietnamese</language>
-                       <language type="vo">Volapük</language>
-                       <language type="vot">Votic</language>
-                       <language type="wa">Walloon</language>
-                       <language type="wak">Wakashan Languages</language>
-                       <language type="wal">Walamo</language>
-                       <language type="war">Waray</language>
-                       <language type="was">Washo</language>
-                       <language type="wen">Sorbian Languages</language>
-                       <language type="wo">Wolof</language>
-                       <language type="xal">Kalmyk</language>
-                       <language type="xh">Xhosa</language>
-                       <language type="yao">Yao</language>
-                       <language type="yap">Yapese</language>
-                       <language type="yi">Yiddish</language>
-                       <language type="yo">Yoruba</language>
-                       <language type="ypk">Yupik Languages</language>
-                       <language type="za">Zhuang</language>
-                       <language type="zap">Zapotec</language>
-                       <language type="zen">Zenaga</language>
-                       <language type="zh">Chinese</language>
-                       <language type="zh_Hans">Simplified Chinese</language>
-                       <language type="zh_Hant">Traditional Chinese</language>
-                       <language type="znd">Zande</language>
-                       <language type="zu">Zulu</language>
-                       <language type="zun">Zuni</language>
-                       <language type="zza">Zaza</language>
-                       <language type="zxx">No linguistic content</language>
-               </languages>
-               <scripts>
-                       <script type="Arab">Arabic</script>
-                       <script type="Armn">Armenian</script>
-                       <script type="Bali">Balinese</script>
-                       <script type="Batk">Batak</script>
-                       <script type="Beng">Bengali</script>
-                       <script type="Blis">Blissymbols</script>
-                       <script type="Bopo">Bopomofo</script>
-                       <script type="Brah">Brahmi</script>
-                       <script type="Brai">Braille</script>
-                       <script type="Bugi">Buginese</script>
-                       <script type="Buhd">Buhid</script>
-                       <script type="Cans">Unified Canadian Aboriginal Symbols</script>
-                       <script type="Cari">Carian</script>
-                       <script type="Cham" references="R1">Cham</script>
-                       <script type="Cher">Cherokee</script>
-                       <script type="Cirt">Cirth</script>
-                       <script type="Copt">Coptic</script>
-                       <script type="Cprt">Cypriot</script>
-                       <script type="Cyrl">Cyrillic</script>
-                       <script type="Cyrs">Cyrillic (Old Church Slavonic variant)</script>
-                       <script type="Deva">Devanagari</script>
-                       <script type="Dsrt">Deseret</script>
-                       <script type="Egyd">Egyptian demotic</script>
-                       <script type="Egyh">Egyptian hieratic</script>
-                       <script type="Egyp">Egyptian hieroglyphs</script>
-                       <script type="Ethi">Ethiopic</script>
-                       <script type="Geok">Khutsuri (Asomtavruli and Nuskhuri)</script>
-                       <script type="Geor">Georgian</script>
-                       <script type="Glag">Glagolitic</script>
-                       <script type="Goth">Gothic</script>
-                       <script type="Grek">Greek</script>
-                       <script type="Gujr">Gujarati</script>
-                       <script type="Guru">Gurmukhi</script>
-                       <script type="Hang">Hangul</script>
-                       <script type="Hani">Han</script>
-                       <script type="Hano">Hanunoo</script>
-                       <script type="Hans">Simplified Han</script>
-                       <script type="Hant">Traditional Han</script>
-                       <script type="Hebr">Hebrew</script>
-                       <script type="Hira">Hiragana</script>
-                       <script type="Hmng">Pahawh Hmong</script>
-                       <script type="Hrkt">Katakana or Hiragana</script>
-                       <script type="Hung">Old Hungarian</script>
-                       <script type="Inds">Indus (Harappan)</script>
-                       <script type="Ital">Old Italic</script>
-                       <script type="Jpan">Japanese</script>
-                       <script type="Java">Javanese</script>
-                       <script type="Kali">Kayah Li</script>
-                       <script type="Kana">Katakana</script>
-                       <script type="Khar">Kharoshthi</script>
-                       <script type="Khmr">Khmer</script>
-                       <script type="Knda">Kannada</script>
-                       <script type="Lana">Lanna</script>
-                       <script type="Laoo">Lao</script>
-                       <script type="Latf">Latin (Fraktur variant)</script>
-                       <script type="Latg">Latin (Gaelic variant)</script>
-                       <script type="Latn">Latin</script>
-                       <script type="Lepc">Lepcha (Róng)</script>
-                       <script type="Limb">Limbu</script>
-                       <script type="Lina">Linear A</script>
-                       <script type="Linb">Linear B</script>
-                       <script type="Lyci">Lycian</script>
-                       <script type="Lydi">Lydian</script>
-                       <script type="Mand">Mandaean</script>
-                       <script type="Maya">Mayan hieroglyphs</script>
-                       <script type="Mero">Meroitic</script>
-                       <script type="Mlym">Malayalam</script>
-                       <script type="Mong">Mongolian</script>
-                       <script type="Mymr">Myanmar</script>
-                       <script type="Nkoo">N’Ko</script>
-                       <script type="Ogam">Ogham</script>
-                       <script type="Olck">Ol Chiki</script>           
-                       <script type="Orkh">Orkhon</script>
-                       <script type="Orya">Oriya</script>
-                       <script type="Osma">Osmanya</script>
-                       <script type="Perm">Old Permic</script>
-                       <script type="Phag">Phags-pa</script>
-                       <script type="Phnx">Phoenician</script>
-                       <script type="Plrd">Pollard Phonetic</script>
-                       <script type="Qaai">Inherited</script>
-                       <script type="Rjng">Rejang</script>
-                       <script type="Roro">Rongorongo</script>
-                       <script type="Runr">Runic</script>
-                       <script type="Sara">Sarati</script>
-                       <script type="Saur">Saurashtra</script>
-                       <script type="Sgnw">SignWriting</script>
-                       <script type="Shaw">Shavian</script>
-                       <script type="Sinh">Sinhala</script>
-                       <script type="Sund">Sundanese</script> 
-                       <script type="Sylo">Syloti Nagri</script>
-                       <script type="Syrc">Syriac</script>
-                       <script type="Syre">Syriac (Estrangelo variant)</script>
-                       <script type="Syrj">Syriac (Western variant)</script>
-                       <script type="Syrn">Syriac (Eastern variant)</script>
-                       <script type="Tagb">Tagbanwa</script>
-                       <script type="Tale">Tai Le</script>
-                       <script type="Talu">New Tai Lue</script>
-                       <script type="Taml">Tamil</script>
-                       <script type="Telu">Telugu</script>
-                       <script type="Teng">Tengwar</script>
-                       <script type="Tfng">Tifinagh (Berber)</script>
-                       <script type="Tglg">Tagalog</script>
-                       <script type="Thaa">Thaana</script>
-                       <script type="Thai" references="R1">Thai</script>
-                       <script type="Tibt">Tibetan</script>
-                       <script type="Ugar">Ugaritic</script>
-                       <script type="Vaii">Vai</script>
-                       <script type="Visp">Visible Speech</script>
-                       <script type="Xpeo">Old Persian</script>
-                       <script type="Xsux">Sumero-Akkadian Cuneiform</script>
-                       <script type="Yiii">Yi</script>
-                       <script type="Zxxx">Unwritten</script>
-                       <script type="Zyyy">Common</script>
-                       <script type="Zzzz">Unknown or Invalid Script</script>
-               </scripts>
-               <territories>
-                       <territory type="001">World</territory>
-                       <!-- UN codes -->
-                       <territory type="002">Africa</territory>
-                       <territory type="003">North America</territory>
-                       <territory type="005">South America</territory>
-                       <territory type="009">Oceania</territory>
-                       <territory type="011">Western Africa</territory>
-                       <territory type="013">Central America</territory>
-                       <territory type="014">Eastern Africa</territory>
-                       <territory type="015">Northern Africa</territory>
-                       <territory type="017">Middle Africa</territory>
-                       <territory type="018">Southern Africa</territory>
-                       <territory type="019">Americas</territory>
-                       <territory type="021">Northern America</territory>
-                       <territory type="029">Caribbean</territory>
-                       <territory type="030">Eastern Asia</territory>
-                       <territory type="034">Southern Asia</territory>
-                       <territory type="035">South-Eastern Asia</territory>
-                       <territory type="039">Southern Europe</territory>
-                       <territory type="053">Australia and New Zealand</territory>
-                       <territory type="054">Melanesia</territory>
-                       <territory type="057">Micronesian Region</territory>
-                       <territory type="061">Polynesia</territory>
-                       <territory type="062">South-Central Asia</territory>
-                       <territory type="142">Asia</territory>
-                       <territory type="143">Central Asia</territory>
-                       <territory type="145">Western Asia</territory>
-                       <territory type="150">Europe</territory>
-                       <territory type="151">Eastern Europe</territory>
-                       <territory type="154">Northern Europe</territory>
-                       <territory type="155">Western Europe</territory>
-                       <territory type="172">Commonwealth of Independent States</territory>
-                       <territory type="200">Czechoslovakia</territory>
-                       <territory type="419">Latin America and the Caribbean</territory>
-                       <territory type="830">Channel Islands</territory>
-                       <territory type="AD">Andorra</territory>
-                       <territory type="AE">United Arab Emirates</territory>
-                       <territory type="AF">Afghanistan</territory>
-                       <territory type="AG">Antigua and Barbuda</territory>
-                       <territory type="AI">Anguilla</territory>
-                       <territory type="AL">Albania</territory>
-                       <territory type="AM">Armenia</territory>
-                       <territory type="AN">Netherlands Antilles</territory>
-                       <territory type="AO">Angola</territory>
-                       <territory type="AQ">Antarctica</territory>
-                       <territory type="AR">Argentina</territory>
-                       <territory type="AS">American Samoa</territory>
-                       <territory type="AT">Austria</territory>
-                       <territory type="AU">Australia</territory>
-                       <territory type="AW">Aruba</territory>
-                       <territory type="AX">Aland Islands</territory>
-                       <territory type="AZ">Azerbaijan</territory>
-                       <territory type="BA">Bosnia and Herzegovina</territory>
-                       <territory type="BB">Barbados</territory>
-                       <territory type="BD">Bangladesh</territory>
-                       <territory type="BE">Belgium</territory>
-                       <territory type="BF">Burkina Faso</territory>
-                       <territory type="BG">Bulgaria</territory>
-                       <territory type="BH">Bahrain</territory>
-                       <territory type="BI">Burundi</territory>
-                       <territory type="BJ">Benin</territory>
-                       <territory type="BM">Bermuda</territory>
-                       <territory type="BN">Brunei</territory>
-                       <territory type="BO">Bolivia</territory>
-                       <territory type="BQ">British Antarctic Territory</territory>
-                       <territory type="BR">Brazil</territory>
-                       <territory type="BS">Bahamas</territory>
-                       <territory type="BT">Bhutan</territory>
-                       <territory type="BV">Bouvet Island</territory>
-                       <territory type="BW">Botswana</territory>
-                       <territory type="BY">Belarus</territory>
-                       <territory type="BZ">Belize</territory>
-                       <territory type="CA">Canada</territory>
-                       <territory type="CC">Cocos (Keeling) Islands</territory>
-                       <territory type="CD">Congo (Kinshasa)</territory>
-                       <territory type="CF">Central African Republic</territory>
-                       <territory type="CG">Congo (Brazzaville)</territory>
-                       <territory type="CH">Switzerland</territory>
-                       <territory type="CI">Ivory Coast</territory>
-                       <territory type="CK">Cook Islands</territory>
-                       <territory type="CL">Chile</territory>
-                       <territory type="CM">Cameroon</territory>
-                       <territory type="CN">China</territory>
-                       <territory type="CO">Colombia</territory>
-                       <territory type="CR">Costa Rica</territory>
-                       <territory type="CS">Serbia And Montenegro</territory>
-                       <territory type="CT">Canton and Enderbury Islands</territory>
-                       <territory type="CU">Cuba</territory>
-                       <territory type="CV">Cape Verde</territory>
-                       <territory type="CX">Christmas Island</territory>
-                       <territory type="CY">Cyprus</territory>
-                       <territory type="CZ">Czech Republic</territory>
-                       <territory type="DD">East Germany</territory>
-                       <territory type="DE">Germany</territory>
-                       <territory type="DJ">Djibouti</territory>
-                       <territory type="DK">Denmark</territory>
-                       <territory type="DM">Dominica</territory>
-                       <territory type="DO">Dominican Republic</territory>
-                       <territory type="DZ">Algeria</territory>
-                       <territory type="EC">Ecuador</territory>
-                       <territory type="EE">Estonia</territory>
-                       <territory type="EG">Egypt</territory>
-                       <territory type="EH">Western Sahara</territory>
-                       <territory type="ER">Eritrea</territory>
-                       <territory type="ES">Spain</territory>
-                       <territory type="ET">Ethiopia</territory>
-                       <territory type="FI">Finland</territory>
-                       <territory type="FJ">Fiji</territory>
-                       <territory type="FK">Falkland Islands</territory>
-                       <territory type="FM">Micronesia</territory>
-                       <territory type="FO">Faroe Islands</territory>
-                       <territory type="FQ">French Southern and Antarctic Territories</territory>
-                       <territory type="FR">France</territory>
-                       <territory type="FX">Metropolitan France</territory>
-                       <territory type="GA">Gabon</territory>
-                       <territory type="GB">United Kingdom</territory>
-                       <territory type="GD">Grenada</territory>
-                       <territory type="GE">Georgia</territory>
-                       <territory type="GF">French Guiana</territory>
-                       <territory type="GG">Guernsey</territory>
-                       <territory type="GH">Ghana</territory>
-                       <territory type="GI">Gibraltar</territory>
-                       <territory type="GL">Greenland</territory>
-                       <territory type="GM">Gambia</territory>
-                       <territory type="GN">Guinea</territory>
-                       <territory type="GP">Guadeloupe</territory>
-                       <territory type="GQ">Equatorial Guinea</territory>
-                       <territory type="GR">Greece</territory>
-                       <territory type="GS">South Georgia and the South Sandwich Islands</territory>
-                       <territory type="GT">Guatemala</territory>
-                       <territory type="GU">Guam</territory>
-                       <territory type="GW">Guinea-Bissau</territory>
-                       <territory type="GY">Guyana</territory>
-                       <territory type="HK">Hong Kong SAR China</territory>
-                       <territory type="HM">Heard Island and McDonald Islands</territory>
-                       <territory type="HN">Honduras</territory>
-                       <territory type="HR">Croatia</territory>
-                       <territory type="HT">Haiti</territory>
-                       <territory type="HU">Hungary</territory>
-                       <territory type="ID">Indonesia</territory>
-                       <territory type="IE">Ireland</territory>
-                       <territory type="IL">Israel</territory>
-                       <territory type="IM">Isle of Man</territory>
-                       <territory type="IN">India</territory>
-                       <territory type="IO">British Indian Ocean Territory</territory>
-                       <territory type="IQ">Iraq</territory>
-                       <territory type="IR">Iran</territory>
-                       <territory type="IS">Iceland</territory>
-                       <territory type="IT">Italy</territory>
-                       <territory type="JE">Jersey</territory>
-                       <territory type="JM">Jamaica</territory>
-                       <territory type="JO">Jordan</territory>
-                       <territory type="JP">Japan</territory>
-                       <territory type="JT">Johnston Island</territory>
-                       <territory type="KE">Kenya</territory>
-                       <territory type="KG">Kyrgyzstan</territory>
-                       <territory type="KH">Cambodia</territory>
-                       <territory type="KI">Kiribati</territory>
-                       <territory type="KM">Comoros</territory>
-                       <territory type="KN">Saint Kitts and Nevis</territory>
-                       <territory type="KP">North Korea</territory>
-                       <territory type="KR">South Korea</territory>
-                       <territory type="KW">Kuwait</territory>
-                       <territory type="KY">Cayman Islands</territory>
-                       <territory type="KZ">Kazakhstan</territory>
-                       <territory type="LA">Laos</territory>
-                       <territory type="LB">Lebanon</territory>
-                       <territory type="LC">Saint Lucia</territory>
-                       <territory type="LI">Liechtenstein</territory>
-                       <territory type="LK">Sri Lanka</territory>
-                       <territory type="LR">Liberia</territory>
-                       <territory type="LS">Lesotho</territory>
-                       <territory type="LT">Lithuania</territory>
-                       <territory type="LU">Luxembourg</territory>
-                       <territory type="LV">Latvia</territory>
-                       <territory type="LY">Libya</territory>
-                       <territory type="MA">Morocco</territory>
-                       <territory type="MC">Monaco</territory>
-                       <territory type="MD">Moldova</territory>
-                       <territory type="ME">Montenegro</territory>
-                       <territory type="MG">Madagascar</territory>
-                       <territory type="MH">Marshall Islands</territory>
-                       <territory type="MI">Midway Islands</territory>
-                       <territory type="MK">Macedonia</territory>
-                       <territory type="ML">Mali</territory>
-                       <territory type="MM">Myanmar</territory>
-                       <territory type="MN">Mongolia</territory>
-                       <territory type="MO">Macao SAR China</territory>
-                       <territory type="MP">Northern Mariana Islands</territory>
-                       <territory type="MQ">Martinique</territory>
-                       <territory type="MR">Mauritania</territory>
-                       <territory type="MS">Montserrat</territory>
-                       <territory type="MT">Malta</territory>
-                       <territory type="MU">Mauritius</territory>
-                       <territory type="MV">Maldives</territory>
-                       <territory type="MW">Malawi</territory>
-                       <territory type="MX">Mexico</territory>
-                       <territory type="MY">Malaysia</territory>
-                       <territory type="MZ">Mozambique</territory>
-                       <territory type="NA">Namibia</territory>
-                       <territory type="NC">New Caledonia</territory>
-                       <territory type="NE">Niger</territory>
-                       <territory type="NF">Norfolk Island</territory>
-                       <territory type="NG">Nigeria</territory>
-                       <territory type="NI">Nicaragua</territory>
-                       <territory type="NL">Netherlands</territory>
-                       <territory type="NO">Norway</territory>
-                       <territory type="NP">Nepal</territory>
-                       <territory type="NQ">Dronning Maud Land</territory>
-                       <territory type="NR">Nauru</territory>
-                       <territory type="NT">Neutral Zone</territory>
-                       <territory type="NU">Niue</territory>
-                       <territory type="NZ">New Zealand</territory>
-                       <territory type="OM">Oman</territory>
-                       <territory type="PA">Panama</territory>
-                       <territory type="PC">Pacific Islands Trust Territory</territory>
-                       <territory type="PE">Peru</territory>
-                       <territory type="PF">French Polynesia</territory>
-                       <territory type="PG">Papua New Guinea</territory>
-                       <territory type="PH">Philippines</territory>
-                       <territory type="PK">Pakistan</territory>
-                       <territory type="PL">Poland</territory>
-                       <territory type="PM">Saint Pierre and Miquelon</territory>
-                       <territory type="PN">Pitcairn</territory>
-                       <territory type="PR">Puerto Rico</territory>
-                       <territory type="PS">Palestinian Territory</territory>
-                       <territory type="PT">Portugal</territory>
-                       <territory type="PU">U.S. Miscellaneous Pacific Islands</territory>
-                       <territory type="PW">Palau</territory>
-                       <territory type="PY">Paraguay</territory>
-                       <territory type="PZ">Panama Canal Zone</territory>
-                       <territory type="QA">Qatar</territory>
-                       <territory type="QO">Outlying Oceania</territory>
-                       <territory type="QU">European Union</territory>
-                       <territory type="RE">Reunion</territory>
-                       <territory type="RO">Romania</territory>
-                       <territory type="RS">Serbia</territory>
-                       <territory type="RU">Russia</territory>
-                       <territory type="RW">Rwanda</territory>
-                       <territory type="SA">Saudi Arabia</territory>
-                       <territory type="SB">Solomon Islands</territory>
-                       <territory type="SC">Seychelles</territory>
-                       <territory type="SD">Sudan</territory>
-                       <territory type="SE">Sweden</territory>
-                       <territory type="SG">Singapore</territory>
-                       <territory type="SH">Saint Helena</territory>
-                       <territory type="SI">Slovenia</territory>
-                       <territory type="SJ">Svalbard and Jan Mayen</territory>
-                       <territory type="SK">Slovakia</territory>
-                       <territory type="SL">Sierra Leone</territory>
-                       <territory type="SM">San Marino</territory>
-                       <territory type="SN">Senegal</territory>
-                       <territory type="SO">Somalia</territory>
-                       <territory type="SR">Suriname</territory>
-                       <territory type="ST">Sao Tome and Principe</territory>
-                       <territory type="SU">Union of Soviet Socialist Republics</territory>
-                       <territory type="SV">El Salvador</territory>
-                       <territory type="SY">Syria</territory>
-                       <territory type="SZ">Swaziland</territory>
-                       <territory type="TC">Turks and Caicos Islands</territory>
-                       <territory type="TD">Chad</territory>
-                       <territory type="TF">French Southern Territories</territory>
-                       <territory type="TG">Togo</territory>
-                       <territory type="TH">Thailand</territory>
-                       <territory type="TJ">Tajikistan</territory>
-                       <territory type="TK">Tokelau</territory>
-                       <territory type="TL">East Timor</territory>
-                       <territory type="TM">Turkmenistan</territory>
-                       <territory type="TN">Tunisia</territory>
-                       <territory type="TO">Tonga</territory>
-                       <territory type="TR">Turkey</territory>
-                       <territory type="TT">Trinidad and Tobago</territory>
-                       <territory type="TV">Tuvalu</territory>
-                       <territory type="TW">Taiwan</territory>
-                       <territory type="TZ">Tanzania</territory>
-                       <territory type="UA">Ukraine</territory>
-                       <territory type="UG">Uganda</territory>
-                       <territory type="UM">United States Minor Outlying Islands</territory>
-                       <territory type="US">United States</territory>
-                       <territory type="UY">Uruguay</territory>
-                       <territory type="UZ">Uzbekistan</territory>
-                       <territory type="VA">Vatican</territory>
-                       <territory type="VC">Saint Vincent and the Grenadines</territory>
-                       <territory type="VD">North Vietnam</territory>
-                       <territory type="VE">Venezuela</territory>
-                       <territory type="VG">British Virgin Islands</territory>
-                       <territory type="VI">U.S. Virgin Islands</territory>
-                       <territory type="VN">Vietnam</territory>
-                       <territory type="VU">Vanuatu</territory>
-                       <territory type="WF">Wallis and Futuna</territory>
-                       <territory type="WK">Wake Island</territory>
-                       <territory type="WS">Samoa</territory>
-                       <territory type="YD">People's Democratic Republic of Yemen</territory>
-                       <territory type="YE">Yemen</territory>
-                       <territory type="YT">Mayotte</territory>
-                       <territory type="ZA">South Africa</territory>
-                       <territory type="ZM">Zambia</territory>
-                       <territory type="ZW">Zimbabwe</territory>
-                       <territory type="ZZ">Unknown or Invalid Region</territory>
-               </territories>
-               <variants>
-                       <variant type="1901">Traditional German orthography</variant>
-                       <variant type="1996">German orthography of 1996</variant>
-                       <variant type="BOONT">Boontling</variant>
-                       <variant type="AREVELA">Eastern Armenian</variant>
-                       <variant type="AREVMDA">Western Armenian</variant>
-                       <variant type="GAULISH">Gaulish</variant>
-                       <variant type="GUOYU">Mandarin or Standard Chinese</variant>
-                       <variant type="HAKKA">Hakka</variant>
-                       <variant type="LOJBAN">Lojban</variant>
-                       <variant type="NEDIS">Natisone dialect</variant>
-                       <variant type="POLYTONI">Polytonic</variant>
-                       <variant type="POSIX">Computer</variant>
-                       <variant type="REVISED">Revised Orthography</variant>
-                       <variant type="ROZAJ">Resian</variant>
-                       <variant type="SAAHO">Saho</variant>
-                       <variant type="SCOUSE">Scouse</variant>
-                       <variant type="XIANG">Xiang or Hunanese</variant>
-               </variants>
-               <keys>
-                       <key type="calendar">Calendar</key>
-                       <key type="collation">Collation</key>
-                       <key type="currency">Currency</key>
-               </keys>
-               <types>
-                       <type type="big5han" key="collation">Traditional Chinese (Big5)</type>
-                       <type type="buddhist" key="calendar">Buddhist Calendar</type>
-                       <type type="chinese" key="calendar">Chinese Calendar</type>
-                       <type type="direct" key="collation">Direct Order</type>
-                       <type type="gb2312han" key="collation">Simplified Chinese (GB2312)</type>
-                       <type type="gregorian" key="calendar">Gregorian Calendar</type>
-                       <type type="hebrew" key="calendar">Hebrew Calendar</type>
-                       <type type="islamic" key="calendar">Islamic Calendar</type>
-                       <type type="islamic-civil" key="calendar">Islamic-Civil Calendar</type>
-                       <type type="japanese" key="calendar">Japanese Calendar</type>
-                       <type type="phonebook" key="collation">Phonebook Order</type>
-                       <type type="pinyin" key="collation">Pinyin Order</type>
-                       <type type="stroke" key="collation">Stroke Order</type>
-                       <type type="traditional" key="collation">Traditional</type>
-               </types>
-       </localeDisplayNames>
-       <characters>
-               <exemplarCharacters>[a-z]</exemplarCharacters>
-               <exemplarCharacters type="auxiliary">[á à ă â å ä ā æ ç é è ĕ ê ë ē í ì ĭ î ï ī ñ ó ò ŏ ô ö ø ō œ ß ú ù ŭ û ü ū ÿ]</exemplarCharacters>
-       </characters>
-       <delimiters>
-               <quotationStart>‘</quotationStart>
-               <quotationEnd>’</quotationEnd>
-               <alternateQuotationStart>“</alternateQuotationStart>
-               <alternateQuotationEnd>”</alternateQuotationEnd>
-       </delimiters>
-       <dates>
-               <calendars>
-                       <calendar type="gregorian">
-                               <months>
-                                       <monthContext type="format">
-                                               <monthWidth type="abbreviated">
-                                                       <month type="1">Jan</month>
-                                                       <month type="2">Feb</month>
-                                                       <month type="3">Mar</month>
-                                                       <month type="4">Apr</month>
-                                                       <month type="5">May</month>
-                                                       <month type="6">Jun</month>
-                                                       <month type="7">Jul</month>
-                                                       <month type="8">Aug</month>
-                                                       <month type="9">Sep</month>
-                                                       <month type="10">Oct</month>
-                                                       <month type="11">Nov</month>
-                                                       <month type="12">Dec</month>
-                                               </monthWidth>
-                                               <monthWidth type="wide">
-                                                       <month type="1">January</month>
-                                                       <month type="2">February</month>
-                                                       <month type="3">March</month>
-                                                       <month type="4">April</month>
-                                                       <month type="5">May</month>
-                                                       <month type="6">June</month>
-                                                       <month type="7">July</month>
-                                                       <month type="8">August</month>
-                                                       <month type="9">September</month>
-                                                       <month type="10">October</month>
-                                                       <month type="11">November</month>
-                                                       <month type="12">December</month>
-                                               </monthWidth>
-                                       </monthContext>
-                                       <monthContext type="stand-alone">
-                                               <monthWidth type="narrow">
-                                                       <month type="1">J</month>
-                                                       <month type="2">F</month>
-                                                       <month type="3">M</month>
-                                                       <month type="4">A</month>
-                                                       <month type="5">M</month>
-                                                       <month type="6">J</month>
-                                                       <month type="7">J</month>
-                                                       <month type="8">A</month>
-                                                       <month type="9">S</month>
-                                                       <month type="10">O</month>
-                                                       <month type="11">N</month>
-                                                       <month type="12">D</month>
-                                               </monthWidth>
-                                       </monthContext>
-                               </months>
-                               <days>
-                                       <dayContext type="format">
-                                               <dayWidth type="abbreviated">
-                                                       <day type="sun">Sun</day>
-                                                       <day type="mon">Mon</day>
-                                                       <day type="tue">Tue</day>
-                                                       <day type="wed">Wed</day>
-                                                       <day type="thu">Thu</day>
-                                                       <day type="fri">Fri</day>
-                                                       <day type="sat">Sat</day>
-                                               </dayWidth>
-                                               <dayWidth type="wide">
-                                                       <day type="sun">Sunday</day>
-                                                       <day type="mon">Monday</day>
-                                                       <day type="tue">Tuesday</day>
-                                                       <day type="wed">Wednesday</day>
-                                                       <day type="thu">Thursday</day>
-                                                       <day type="fri">Friday</day>
-                                                       <day type="sat">Saturday</day>
-                                               </dayWidth>
-                                       </dayContext>
-                                       <dayContext type="stand-alone">
-                                               <dayWidth type="narrow">
-                                                       <day type="sun">S</day>
-                                                       <day type="mon">M</day>
-                                                       <day type="tue">T</day>
-                                                       <day type="wed">W</day>
-                                                       <day type="thu">T</day>
-                                                       <day type="fri">F</day>
-                                                       <day type="sat">S</day>
-                                               </dayWidth>
-                                       </dayContext>
-                               </days>
-                               <quarters>
-                                       <quarterContext type="format">
-                                               <quarterWidth type="wide">
-                                                       <quarter type="1">1st quarter</quarter>
-                                                       <quarter type="2">2nd quarter</quarter>
-                                                       <quarter type="3">3rd quarter</quarter>
-                                                       <quarter type="4">4th quarter</quarter>
-                                               </quarterWidth>
-                                       </quarterContext>
-                               </quarters>
-                               <eras>
-                                       <eraNames>
-                                               <era type="0">Before Christ</era>
-                                               <era type="1">Anno Domini</era>
-                                       </eraNames>
-                                       <eraAbbr>
-                                               <era type="0">BC</era>
-                                               <era type="1">AD</era>
-                                       </eraAbbr>
-                               </eras>
-                               <dateFormats>
-                                       <dateFormatLength type="full">
-                                               <dateFormat>
-                                                       <pattern>EEEE, MMMM d, yyyy</pattern>
-                                               </dateFormat>
-                                       </dateFormatLength>
-                                       <dateFormatLength type="long">
-                                               <dateFormat>
-                                                       <pattern>MMMM d, yyyy</pattern>
-                                               </dateFormat>
-                                       </dateFormatLength>
-                                       <dateFormatLength type="medium">
-                                               <dateFormat>
-                                                       <pattern>MMM d, yyyy</pattern>
-                                               </dateFormat>
-                                       </dateFormatLength>
-                                       <dateFormatLength type="short">
-                                               <dateFormat>
-                                                       <pattern>M/d/yy</pattern>
-                                               </dateFormat>
-                                       </dateFormatLength>
-                               </dateFormats>
-                               <timeFormats>
-                                       <timeFormatLength type="full">
-                                               <timeFormat>
-                                                       <pattern>h:mm:ss a v</pattern>
-                                               </timeFormat>
-                                       </timeFormatLength>
-                                       <timeFormatLength type="long">
-                                               <timeFormat>
-                                                       <pattern>h:mm:ss a z</pattern>
-                                               </timeFormat>
-                                       </timeFormatLength>
-                                       <timeFormatLength type="medium">
-                                               <timeFormat>
-                                                       <pattern>h:mm:ss a</pattern>
-                                               </timeFormat>
-                                       </timeFormatLength>
-                                       <timeFormatLength type="short">
-                                               <timeFormat>
-                                                       <pattern>h:mm a</pattern>
-                                               </timeFormat>
-                                       </timeFormatLength>
-                               </timeFormats>
-                               <dateTimeFormats>
-                                       <availableFormats>
-                                               <dateFormatItem id="HHmm" draft="provisional">HH:mm</dateFormatItem>
-                                               <dateFormatItem id="HHmmss" draft="provisional">HH:mm:ss</dateFormatItem>
-                                               <dateFormatItem id="MMMMd" draft="provisional">MMMM d</dateFormatItem>
-                                               <dateFormatItem id="Md" draft="provisional">M/d</dateFormatItem>
-                                               <dateFormatItem id="mmss" draft="provisional">mm:ss</dateFormatItem>
-                                               <dateFormatItem id="yyMM" draft="provisional">MM/yy</dateFormatItem>
-                                               <dateFormatItem id="yyQQQQ" draft="provisional">QQQQ yy</dateFormatItem>
-                                               <dateFormatItem id="yyyyMMM" draft="provisional">MMM yyyy</dateFormatItem>
-                                       </availableFormats>
-                               </dateTimeFormats>
-                               <fields>
-                                       <field type="day">
-                                               <relative type="0">Today</relative>
-                                               <relative type="1">Tomorrow</relative>
-                                               <relative type="-1">Yesterday</relative>
-                                       </field>
-                                       <field type="dayperiod">
-                                               <displayName>AM/PM</displayName>
-                                       </field>
-                               </fields>
-                       </calendar>
-               </calendars>
-               <timeZoneNames>
-                       <zone type="America/Vancouver">
-                               <long>
-                                       <generic>Pacific Time (CA)</generic>
-                                       <standard>Pacific Standard Time (CA)</standard>
-                                       <daylight>Pacific Daylight Time (CA)</daylight>
-                               </long>
-                               <short>
-                                       <generic>PT (CA)</generic>
-                                       <standard>PST (CA)</standard>
-                                       <daylight>PDT (CA)</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Edmonton">
-                               <long>
-                                       <generic>Mountain Time (CA)</generic>
-                                       <standard>Mountain Standard Time (CA)</standard>
-                                       <daylight>Mountain Daylight Time (CA)</daylight>
-                               </long>
-                               <short>
-                                       <generic>MT (CA)</generic>
-                                       <standard>MST (CA)</standard>
-                                       <daylight>MDT (CA)</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Winnipeg">
-                               <long>
-                                       <generic>Central Time (CA)</generic>
-                                       <standard>Central Standard Time (CA)</standard>
-                                       <daylight>Central Daylight Time (CA)</daylight>
-                               </long>
-                               <short>
-                                       <generic>CT (CA)</generic>
-                                       <standard>CST (CA)</standard>
-                                       <daylight>CDT (CA)</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Montreal">
-                               <long>
-                                       <generic>Eastern Time (CA)</generic>
-                                       <standard>Eastern Standard Time (CA)</standard>
-                                       <daylight>Eastern Daylight Time (CA)</daylight>
-                               </long>
-                               <short>
-                                       <generic>ET (CA)</generic>
-                                       <standard>EST (CA)</standard>
-                                       <daylight>EDT (CA)</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Halifax">
-                               <long>
-                                       <generic>Atlantic Time</generic>
-                                       <standard>Atlantic Standard Time</standard>
-                                       <daylight>Atlantic Daylight Time</daylight>
-                               </long>
-                               <short>
-                                       <generic>AT</generic>
-                                       <standard>AST</standard>
-                                       <daylight>ADT</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/St_Johns">
-                               <long>
-                                       <generic>Newfoundland Time</generic>
-                                       <standard>Newfoundland Standard Time</standard>
-                                       <daylight>Newfoundland Daylight Time</daylight>
-                               </long>
-                               <short>
-                                       <generic>NT</generic>
-                                       <standard>NST</standard>
-                                       <daylight>NDT</daylight>
-                               </short>
-                               <exemplarCity>St. John’s</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Shanghai">
-                               <long>
-                                       <standard>China Standard Time</standard>
-                                       <daylight>China Daylight Time</daylight>
-                               </long>
-                       </zone>
-                       <zone type="Europe/Paris">
-                               <long>
-                                       <generic>Central European Time</generic>
-                                       <standard>Central European Standard Time</standard>
-                                       <daylight>Central European Daylight Time</daylight>
-                               </long>
-                               <short>
-                                       <generic>CET</generic>
-                                       <standard>CEST</standard>
-                                       <daylight>CEDT</daylight>
-                               </short>
-                               <exemplarCity>Paris</exemplarCity>
-                       </zone>
-                       <zone type="Europe/London">
-                               <long>
-                                       <standard>Greenwich Mean Time</standard>
-                                       <daylight>British Summer Time</daylight>
-                               </long>
-                               <short>
-                                       <standard>GMT</standard>
-                                       <daylight>BST</daylight>
-                               </short>
-                       </zone>
-                       <zone type="Europe/Dublin">
-                               <long>
-                                       <standard>Greenwich Mean Time</standard>
-                                       <daylight>Irish Summer Time</daylight>
-                               </long>
-                               <short>
-                                       <standard>GMT</standard>
-                                       <daylight>IST</daylight>
-                               </short>
-                               <exemplarCity>Dublin</exemplarCity>
-                       </zone>
-                       <!-- Note: the following is known to be sparse, and needs to be improved in the future -->
-                       <zone type="Asia/Jerusalem">
-                               <long>
-                                       <standard>Israel Standard Time</standard>
-                                       <daylight>Israel Daylight Time</daylight>
-                               </long>
-                               <exemplarCity>Jerusalem</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Tokyo">
-                               <long>
-                                       <standard>Japan Standard Time</standard>
-                                       <daylight>Japan Daylight Time</daylight>
-                               </long>
-                               <short>
-                                       <standard>JST</standard>
-                                       <daylight>JDT</daylight>
-                               </short>
-                               <exemplarCity>Tokyo</exemplarCity>
-                       </zone>
-                       <zone type="Europe/Bucharest">
-                               <long>
-                                       <standard>Eastern European Standard Time</standard>
-                                       <daylight>Eastern European Daylight Time</daylight>
-                               </long>
-                               <short>
-                                       <standard>EET</standard>
-                                       <daylight>EEST</daylight>
-                               </short>
-                               <exemplarCity>Bucharest</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Singapore">
-                               <long>
-                                       <standard>Singapore Standard Time</standard>
-                                       <daylight>Singapore Standard Time</daylight>
-                               </long>
-                               <short>
-                                       <standard>SST</standard>
-                                       <daylight>SST</daylight>
-                               </short>
-                               <exemplarCity>Singapore</exemplarCity>
-                       </zone>
-                       <zone type="Pacific/Honolulu">
-                               <long>
-                                       <generic>Hawaii Time</generic>
-                                       <standard>Hawaii Standard Time</standard>
-                                       <daylight>Hawaii Daylight Time</daylight>
-                               </long>
-                               <short>
-                                       <generic>HT</generic>
-                                       <standard>HST</standard>
-                                       <daylight>HDT</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Anchorage">
-                               <long>
-                                       <generic>Alaska Time</generic>
-                                       <standard>Alaska Standard Time</standard>
-                                       <daylight>Alaska Daylight Time</daylight>
-                               </long>
-                               <short>
-                                       <generic>AKT</generic>
-                                       <standard>AKST</standard>
-                               </short>
-                       </zone>
-                       <!-- Note: zones that don't use daylight time need further work -->
-                       <zone type="America/Los_Angeles">
-                               <long>
-                                       <generic>Pacific Time</generic>
-                                       <standard>Pacific Standard Time</standard>
-                                       <daylight>Pacific Daylight Time</daylight>
-                               </long>
-                               <short>
-                                       <generic>PT</generic>
-                                       <standard>PST</standard>
-                                       <daylight>PDT</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Denver">
-                               <long>
-                                       <generic>Mountain Time</generic>
-                                       <standard>Mountain Standard Time</standard>
-                                       <daylight>Mountain Daylight Time</daylight>
-                               </long>
-                               <short>
-                                       <generic>MT</generic>
-                                       <standard>MST</standard>
-                                       <daylight>MDT</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Chicago">
-                               <long>
-                                       <generic>Central Time</generic>
-                                       <standard>Central Standard Time</standard>
-                                       <daylight>Central Daylight Time</daylight>
-                               </long>
-                               <short>
-                                       <generic>CT</generic>
-                                       <standard>CST</standard>
-                                       <daylight>CDT</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/New_York">
-                               <long>
-                                       <generic>Eastern Time</generic>
-                                       <standard>Eastern Standard Time</standard>
-                                       <daylight>Eastern Daylight Time</daylight>
-                               </long>
-                               <short>
-                                       <generic>ET</generic>
-                                       <standard>EST</standard>
-                                       <daylight>EDT</daylight>
-                               </short>
-                       </zone>
-               </timeZoneNames>
-       </dates>
-       <numbers>
-               <symbols>
-                       <decimal>.</decimal>
-                       <group>,</group>
-               </symbols>      
-               <currencyFormats>
-                       <currencyFormatLength>
-                               <currencyFormat>
-                                       <pattern>¤#,##0.00</pattern>
-                               </currencyFormat>
-                       </currencyFormatLength>
-               </currencyFormats>
-               <currencies>
-                       <currency type="ADP">
-                               <displayName>Andorran Peseta</displayName>
-                       </currency>
-                       <currency type="AED">
-                               <displayName>United Arab Emirates Dirham</displayName>
-                       </currency>
-                       <currency type="AFA">
-                               <displayName>Afghani (1927-2002)</displayName>
-                       </currency>
-                       <currency type="AFN">
-                               <displayName>Afghani</displayName>
-                               <symbol>Af</symbol>
-                       </currency>
-                       <currency type="ALL">
-                               <displayName>Albanian Lek</displayName>
-                               <symbol>lek</symbol>
-                       </currency>
-                       <currency type="AMD">
-                               <displayName>Armenian Dram</displayName>
-                               <symbol>dram</symbol>
-                       </currency>
-                       <currency type="ANG">
-                               <displayName>Netherlands Antillan Guilder</displayName>
-                               <symbol>NA f.</symbol>
-                       </currency>
-                       <currency type="AOA">
-                               <displayName>Angolan Kwanza</displayName>
-                       </currency>
-                       <currency type="AOK">
-                               <displayName>Angolan Kwanza (1977-1990)</displayName>
-                       </currency>
-                       <currency type="AON">
-                               <displayName>Angolan New Kwanza (1990-2000)</displayName>
-                       </currency>
-                       <currency type="AOR">
-                               <displayName>Angolan Kwanza Reajustado (1995-1999)</displayName>
-                       </currency>
-                       <currency type="ARA">
-                               <displayName>Argentine Austral</displayName>
-                       </currency>
-                       <currency type="ARP">
-                               <displayName>Argentine Peso (1983-1985)</displayName>
-                       </currency>
-                       <currency type="ARS">
-                               <displayName>Argentine Peso</displayName>
-                               <symbol>Arg$</symbol>
-                       </currency>
-                       <currency type="ATS">
-                               <displayName>Austrian Schilling</displayName>
-                       </currency>
-                       <currency type="AUD">
-                               <displayName>Australian Dollar</displayName>
-                               <symbol>$A</symbol>
-                       </currency>
-                       <currency type="AWG">
-                               <displayName>Aruban Guilder</displayName>
-                       </currency>
-                       <currency type="AZM">
-                               <displayName>Azerbaijanian Manat (1993-2006)</displayName>
-                       </currency>
-                       <currency type="AZN">
-                               <displayName>Azerbaijanian Manat</displayName>
-                       </currency>
-                       <currency type="BAD">
-                               <displayName>Bosnia-Herzegovina Dinar</displayName>
-                       </currency>
-                       <currency type="BAM">
-                               <displayName>Bosnia-Herzegovina Convertible Mark</displayName>
-                               <symbol>KM</symbol>
-                       </currency>
-                       <currency type="BBD">
-                               <displayName>Barbados Dollar</displayName>
-                               <symbol>BDS$</symbol>
-                       </currency>
-                       <currency type="BDT">
-                               <displayName>Bangladesh Taka</displayName>
-                               <symbol>Tk</symbol>
-                       </currency>
-                       <currency type="BEC">
-                               <displayName>Belgian Franc (convertible)</displayName>
-                       </currency>
-                       <currency type="BEF">
-                               <displayName>Belgian Franc</displayName>
-                               <symbol>BF</symbol>
-                       </currency>
-                       <currency type="BEL">
-                               <displayName>Belgian Franc (financial)</displayName>
-                       </currency>
-                       <currency type="BGL">
-                               <displayName>Bulgarian Hard Lev</displayName>
-                               <symbol>lev</symbol>
-                       </currency>
-                       <currency type="BGN">
-                               <displayName>Bulgarian New Lev</displayName>
-                       </currency>
-                       <currency type="BHD">
-                               <displayName>Bahraini Dinar</displayName>
-                               <symbol>BD</symbol>
-                       </currency>
-                       <currency type="BIF">
-                               <displayName>Burundi Franc</displayName>
-                               <symbol>Fbu</symbol>
-                       </currency>
-                       <currency type="BMD">
-                               <displayName>Bermudan Dollar</displayName>
-                               <symbol>Ber$</symbol>
-                       </currency>
-                       <currency type="BND">
-                               <displayName>Brunei Dollar</displayName>
-                       </currency>
-                       <currency type="BOB">
-                               <displayName>Boliviano</displayName>
-                               <symbol>Bs</symbol>
-                       </currency>
-                       <currency type="BOP">
-                               <displayName>Bolivian Peso</displayName>
-                       </currency>
-                       <currency type="BOV">
-                               <displayName>Bolivian Mvdol</displayName>
-                       </currency>
-                       <currency type="BRB">
-                               <displayName>Brazilian Cruzeiro Novo (1967-1986)</displayName>
-                       </currency>
-                       <currency type="BRC">
-                               <displayName>Brazilian Cruzado</displayName>
-                       </currency>
-                       <currency type="BRE">
-                               <displayName>Brazilian Cruzeiro (1990-1993)</displayName>
-                       </currency>
-                       <currency type="BRL">
-                               <displayName>Brazilian Real</displayName>
-                               <symbol>R$</symbol>
-                       </currency>
-                       <currency type="BRN">
-                               <displayName>Brazilian Cruzado Novo</displayName>
-                       </currency>
-                       <currency type="BRR">
-                               <displayName>Brazilian Cruzeiro</displayName>
-                       </currency>
-                       <currency type="BSD">
-                               <displayName>Bahamian Dollar</displayName>
-                       </currency>
-                       <currency type="BTN">
-                               <displayName>Bhutan Ngultrum</displayName>
-                               <symbol>Nu</symbol>
-                       </currency>
-                       <currency type="BUK">
-                               <displayName>Burmese Kyat</displayName>
-                       </currency>
-                       <currency type="BWP">
-                               <displayName>Botswanan Pula</displayName>
-                       </currency>
-                       <currency type="BYB">
-                               <displayName>Belarussian New Ruble (1994-1999)</displayName>
-                       </currency>
-                       <currency type="BYR">
-                               <displayName>Belarussian Ruble</displayName>
-                               <symbol>Rbl</symbol>
-                       </currency>
-                       <currency type="BZD">
-                               <displayName>Belize Dollar</displayName>
-                               <symbol>BZ$</symbol>
-                       </currency>
-                       <currency type="CAD">
-                               <displayName>Canadian Dollar</displayName>
-                               <symbol>Can$</symbol>
-                       </currency>
-                       <currency type="CDF">
-                               <displayName>Congolese Franc Congolais</displayName>
-                       </currency>
-                       <currency type="CHE">
-                               <displayName>WIR Euro</displayName>
-                       </currency>
-                       <currency type="CHF">
-                               <displayName>Swiss Franc</displayName>
-                               <symbol>SwF</symbol>
-                       </currency>
-                       <currency type="CHW">
-                               <displayName>WIR Franc</displayName>
-                       </currency>
-                       <currency type="CLF">
-                               <displayName>Chilean Unidades de Fomento</displayName>
-                       </currency>
-                       <currency type="CLP">
-                               <displayName>Chilean Peso</displayName>
-                               <symbol>Ch$</symbol>
-                       </currency>
-                       <currency type="CNY">
-                               <displayName>Chinese Yuan Renminbi</displayName>
-                               <symbol>Y</symbol>
-                       </currency>
-                       <currency type="COP">
-                               <displayName>Colombian Peso</displayName>
-                               <symbol>Col$</symbol>
-                       </currency>
-                       <currency type="COU">
-                               <displayName>Unidad de Valor Real</displayName>
-                       </currency>
-                       <currency type="CRC">
-                               <displayName>Costa Rican Colon</displayName>
-                               <symbol>C</symbol>
-                       </currency>
-                       <currency type="CSD">
-                               <displayName>Serbian Dinar</displayName>
-                       </currency>
-                       <currency type="CSK">
-                               <displayName>Czechoslovak Hard Koruna</displayName>
-                       </currency>
-                       <currency type="CUP">
-                               <displayName>Cuban Peso</displayName>
-                       </currency>
-                       <currency type="CVE">
-                               <displayName>Cape Verde Escudo</displayName>
-                               <symbol>CVEsc</symbol>
-                       </currency>
-                       <currency type="CYP">
-                               <displayName>Cyprus Pound</displayName>
-                               <symbol>£C</symbol>
-                       </currency>
-                       <currency type="CZK">
-                               <displayName>Czech Republic Koruna</displayName>
-                       </currency>
-                       <currency type="DDM">
-                               <displayName>East German Ostmark</displayName>
-                       </currency>
-                       <currency type="DEM">
-                               <displayName>Deutsche Mark</displayName>
-                       </currency>
-                       <currency type="DJF">
-                               <displayName>Djibouti Franc</displayName>
-                               <symbol>DF</symbol>
-                       </currency>
-                       <currency type="DKK">
-                               <displayName>Danish Krone</displayName>
-                               <symbol>DKr</symbol>
-                       </currency>
-                       <currency type="DOP">
-                               <displayName>Dominican Peso</displayName>
-                               <symbol>RD$</symbol>
-                       </currency>
-                       <currency type="DZD">
-                               <displayName>Algerian Dinar</displayName>
-                               <symbol>DA</symbol>
-                       </currency>
-                       <currency type="ECS">
-                               <displayName>Ecuador Sucre</displayName>
-                       </currency>
-                       <currency type="ECV">
-                               <displayName>Ecuador Unidad de Valor Constante (UVC)</displayName>
-                       </currency>
-                       <currency type="EEK">
-                               <displayName>Estonian Kroon</displayName>
-                       </currency>
-                       <currency type="EGP">
-                               <displayName>Egyptian Pound</displayName>
-                       </currency>
-                       <currency type="EQE">
-                               <displayName>Ekwele</displayName>
-                       </currency>
-                       <currency type="ERN">
-                               <displayName>Eritrean Nakfa</displayName>
-                       </currency>
-                       <currency type="ESA">
-                               <displayName>Spanish Peseta (A account)</displayName>
-                       </currency>
-                       <currency type="ESB">
-                               <displayName>Spanish Peseta (convertible account)</displayName>
-                       </currency>
-                       <currency type="ESP">
-                               <displayName>Spanish Peseta</displayName>
-                               <symbol>₧</symbol>
-                       </currency>
-                       <currency type="ETB">
-                               <displayName>Ethiopian Birr</displayName>
-                               <symbol>Br</symbol>
-                       </currency>
-                       <currency type="EUR">
-                               <displayName>Euro</displayName>
-                       </currency>
-                       <currency type="FIM">
-                               <displayName>Finnish Markka</displayName>
-                       </currency>
-                       <currency type="FJD">
-                               <displayName>Fiji Dollar</displayName>
-                               <symbol>F$</symbol>
-                       </currency>
-                       <currency type="FKP">
-                               <displayName>Falkland Islands Pound</displayName>
-                       </currency>
-                       <currency type="FRF">
-                               <displayName>French Franc</displayName>
-                       </currency>
-                       <currency type="GBP">
-                               <displayName>British Pound Sterling</displayName>
-                       </currency>
-                       <currency type="GEK">
-                               <displayName>Georgian Kupon Larit</displayName>
-                       </currency>
-                       <currency type="GEL">
-                               <displayName>Georgian Lari</displayName>
-                               <symbol>lari</symbol>
-                       </currency>
-                       <currency type="GHC">
-                               <displayName>Ghana Cedi</displayName>
-                       </currency>
-                       <currency type="GIP">
-                               <displayName>Gibraltar Pound</displayName>
-                       </currency>
-                       <currency type="GMD">
-                               <displayName>Gambia Dalasi</displayName>
-                       </currency>
-                       <currency type="GNF">
-                               <displayName>Guinea Franc</displayName>
-                               <symbol>GF</symbol>
-                       </currency>
-                       <currency type="GNS">
-                               <displayName>Guinea Syli</displayName>
-                       </currency>
-                       <currency type="GQE">
-                               <displayName>Equatorial Guinea Ekwele Guineana</displayName>
-                       </currency>
-                       <currency type="GRD">
-                               <displayName>Greek Drachma</displayName>
-                       </currency>
-                       <currency type="GTQ">
-                               <displayName>Guatemala Quetzal</displayName>
-                               <symbol>Q</symbol>
-                       </currency>
-                       <currency type="GWE">
-                               <displayName>Portuguese Guinea Escudo</displayName>
-                       </currency>
-                       <currency type="GWP">
-                               <displayName>Guinea-Bissau Peso</displayName>
-                       </currency>
-                       <currency type="GYD">
-                               <displayName>Guyana Dollar</displayName>
-                               <symbol>G$</symbol>
-                       </currency>
-                       <currency type="HKD">
-                               <displayName>Hong Kong Dollar</displayName>
-                               <symbol>HK$</symbol>
-                       </currency>
-                       <currency type="HNL">
-                               <displayName>Hoduras Lempira</displayName>
-                               <symbol>L</symbol>
-                       </currency>
-                       <currency type="HRD">
-                               <displayName>Croatian Dinar</displayName>
-                       </currency>
-                       <currency type="HRK">
-                               <displayName>Croatian Kuna</displayName>
-                       </currency>
-                       <currency type="HTG">
-                               <displayName>Haitian Gourde</displayName>
-                       </currency>
-                       <currency type="HUF">
-                               <displayName>Hungarian Forint</displayName>
-                               <symbol>Ft</symbol>
-                       </currency>
-                       <currency type="IDR">
-                               <displayName>Indonesian Rupiah</displayName>
-                               <symbol>Rp</symbol>
-                       </currency>
-                       <currency type="IEP">
-                               <displayName>Irish Pound</displayName>
-                               <symbol>IR£</symbol>
-                       </currency>
-                       <currency type="ILP">
-                               <displayName>Israeli Pound</displayName>
-                       </currency>
-                       <currency type="ILS">
-                               <displayName>Israeli New Sheqel</displayName>
-                       </currency>
-                       <currency type="INR">
-                               <displayName>Indian Rupee</displayName>
-                       </currency>
-                       <currency type="IQD">
-                               <displayName>Iraqi Dinar</displayName>
-                               <symbol>ID</symbol>
-                       </currency>
-                       <currency type="IRR">
-                               <displayName>Iranian Rial</displayName>
-                               <symbol>RI</symbol>
-                       </currency>
-                       <currency type="ISK">
-                               <displayName>Icelandic Krona</displayName>
-                       </currency>
-                       <currency type="ITL">
-                               <displayName>Italian Lira</displayName>
-                       </currency>
-                       <currency type="JMD">
-                               <displayName>Jamaican Dollar</displayName>
-                               <symbol>J$</symbol>
-                       </currency>
-                       <currency type="JOD">
-                               <displayName>Jordanian Dinar</displayName>
-                               <symbol>JD</symbol>
-                       </currency>
-                       <currency type="JPY">
-                               <displayName>Japanese Yen</displayName>
-                       </currency>
-                       <currency type="KES">
-                               <displayName>Kenyan Shilling</displayName>
-                               <symbol>K Sh</symbol>
-                       </currency>
-                       <currency type="KGS">
-                               <displayName>Kyrgystan Som</displayName>
-                               <symbol>som</symbol>
-                       </currency>
-                       <currency type="KHR">
-                               <displayName>Cambodian Riel</displayName>
-                               <symbol>CR</symbol>
-                       </currency>
-                       <currency type="KMF">
-                               <displayName>Comoro Franc</displayName>
-                               <symbol>CF</symbol>
-                       </currency>
-                       <currency type="KPW">
-                               <displayName>North Korean Won</displayName>
-                       </currency>
-                       <currency type="KRW">
-                               <displayName>South Korean Won</displayName>
-                       </currency>
-                       <currency type="KWD">
-                               <displayName>Kuwaiti Dinar</displayName>
-                               <symbol>KD</symbol>
-                       </currency>
-                       <currency type="KYD">
-                               <displayName>Cayman Islands Dollar</displayName>
-                       </currency>
-                       <currency type="KZT">
-                               <displayName>Kazakhstan Tenge</displayName>
-                               <symbol>T</symbol>
-                       </currency>
-                       <currency type="LAK">
-                               <displayName>Laotian Kip</displayName>
-                       </currency>
-                       <currency type="LBP">
-                               <displayName>Lebanese Pound</displayName>
-                               <symbol>LL</symbol>
-                       </currency>
-                       <currency type="LKR">
-                               <displayName>Sri Lanka Rupee</displayName>
-                               <symbol>SL Re</symbol>
-                       </currency>
-                       <currency type="LRD">
-                               <displayName>Liberian Dollar</displayName>
-                       </currency>
-                       <currency type="LSL">
-                               <displayName>Lesotho Loti</displayName>
-                               <symbol>M</symbol>
-                       </currency>
-                       <currency type="LSM">
-                               <displayName>Maloti</displayName>
-                       </currency>
-                       <currency type="LTL">
-                               <displayName>Lithuanian Lita</displayName>
-                       </currency>
-                       <currency type="LTT">
-                               <displayName>Lithuanian Talonas</displayName>
-                       </currency>
-                       <currency type="LUC">
-                               <displayName>Luxembourg Convertible Franc</displayName>
-                       </currency>
-                       <currency type="LUF">
-                               <displayName>Luxembourg Franc</displayName>
-                       </currency>
-                       <currency type="LUL">
-                               <displayName>Luxembourg Financial Franc</displayName>
-                       </currency>
-                       <currency type="LVL">
-                               <displayName>Latvian Lats</displayName>
-                       </currency>
-                       <currency type="LVR">
-                               <displayName>Latvian Ruble</displayName>
-                       </currency>
-                       <currency type="LYD">
-                               <displayName>Libyan Dinar</displayName>
-                               <symbol>LD</symbol>
-                       </currency>
-                       <currency type="MAD">
-                               <displayName>Moroccan Dirham</displayName>
-                       </currency>
-                       <currency type="MAF">
-                               <displayName>Moroccan Franc</displayName>
-                       </currency>
-                       <currency type="MDL">
-                               <displayName>Moldovan Leu</displayName>
-                       </currency>
-                       <currency type="MGA">
-                               <displayName>Madagascar Ariary</displayName>
-                       </currency>
-                       <currency type="MGF">
-                               <displayName>Madagascar Franc</displayName>
-                       </currency>
-                       <currency type="MKD">
-                               <displayName>Macedonian Denar</displayName>
-                               <symbol>MDen</symbol>
-                       </currency>
-                       <currency type="MLF">
-                               <displayName>Mali Franc</displayName>
-                       </currency>
-                       <currency type="MMK">
-                               <displayName>Myanmar Kyat</displayName>
-                       </currency>
-                       <currency type="MNT">
-                               <displayName>Mongolian Tugrik</displayName>
-                               <symbol>Tug</symbol>
-                       </currency>
-                       <currency type="MOP">
-                               <displayName>Macao Pataca</displayName>
-                       </currency>
-                       <currency type="MRO">
-                               <displayName>Mauritania Ouguiya</displayName>
-                               <symbol>UM</symbol>
-                       </currency>
-                       <currency type="MTL">
-                               <displayName>Maltese Lira</displayName>
-                               <symbol>Lm</symbol>
-                       </currency>
-                       <currency type="MTP">
-                               <displayName>Maltese Pound</displayName>
-                       </currency>
-                       <currency type="MUR">
-                               <displayName>Mauritius Rupee</displayName>
-                       </currency>
-                       <currency type="MVR">
-                               <displayName>Maldive Islands Rufiyaa</displayName>
-                       </currency>
-                       <currency type="MWK">
-                               <displayName>Malawi Kwacha</displayName>
-                               <symbol>MK</symbol>
-                       </currency>
-                       <currency type="MXN">
-                               <displayName>Mexican Peso</displayName>
-                               <symbol>MEX$</symbol>
-                       </currency>
-                       <currency type="MXP">
-                               <displayName>Mexican Silver Peso (1861-1992)</displayName>
-                       </currency>
-                       <currency type="MXV">
-                               <displayName>Mexican Unidad de Inversion (UDI)</displayName>
-                       </currency>
-                       <currency type="MYR">
-                               <displayName>Malaysian Ringgit</displayName>
-                               <symbol>RM</symbol>
-                       </currency>
-                       <currency type="MZE">
-                               <displayName>Mozambique Escudo</displayName>
-                       </currency>
-                       <currency type="MZM">
-                               <displayName>Old Mozambique Metical</displayName>
-                               <symbol>Mt</symbol>
-                       </currency>
-                               <currency type="MZN">
-                               <displayName>Mozambique Metical</displayName>
-                               <symbol>MTn</symbol>
-                       </currency>
-                       <currency type="NAD">
-                               <displayName>Namibia Dollar</displayName>
-                               <symbol>N$</symbol>
-                       </currency>
-                       <currency type="NGN">
-                               <displayName>Nigerian Naira</displayName>
-                       </currency>
-                       <currency type="NIC">
-                               <displayName>Nicaraguan Cordoba</displayName>
-                       </currency>
-                       <currency type="NIO">
-                               <displayName>Nicaraguan Cordoba Oro</displayName>
-                       </currency>
-                       <currency type="NLG">
-                               <displayName>Netherlands Guilder</displayName>
-                       </currency>
-                       <currency type="NOK">
-                               <displayName>Norwegian Krone</displayName>
-                               <symbol>NKr</symbol>
-                       </currency>
-                       <currency type="NPR">
-                               <displayName>Nepalese Rupee</displayName>
-                               <symbol>Nrs</symbol>
-                       </currency>
-                       <currency type="NZD">
-                               <displayName>New Zealand Dollar</displayName>
-                               <symbol>$NZ</symbol>
-                       </currency>
-                       <currency type="OMR">
-                               <displayName>Oman Rial</displayName>
-                               <symbol>RO</symbol>
-                       </currency>
-                       <currency type="PAB">
-                               <displayName>Panamanian Balboa</displayName>
-                       </currency>
-                       <currency type="PEI">
-                               <displayName>Peruvian Inti</displayName>
-                       </currency>
-                       <currency type="PEN">
-                               <displayName>Peruvian Sol Nuevo</displayName>
-                       </currency>
-                       <currency type="PES">
-                               <displayName>Peruvian Sol</displayName>
-                       </currency>
-                       <currency type="PGK">
-                               <displayName>Papua New Guinea Kina</displayName>
-                       </currency>
-                       <currency type="PHP">
-                               <displayName>Philippine Peso</displayName>
-                               <symbol>Php</symbol>
-                       </currency>
-                       <currency type="PKR">
-                               <displayName>Pakistan Rupee</displayName>
-                               <symbol>Pra</symbol>
-                       </currency>
-                       <currency type="PLN">
-                               <displayName>Polish Zloty</displayName>
-                               <symbol>Zl</symbol>
-                       </currency>
-                       <currency type="PLZ">
-                               <displayName>Polish Zloty (1950-1995)</displayName>
-                       </currency>
-                       <currency type="PTE">
-                               <displayName>Portuguese Escudo</displayName>
-                       </currency>
-                       <currency type="PYG">
-                               <displayName>Paraguay Guarani</displayName>
-                       </currency>
-                       <currency type="QAR">
-                               <displayName>Qatari Rial</displayName>
-                               <symbol>QR</symbol>
-                       </currency>
-                       <currency type="RHD">
-                               <displayName>Rhodesian Dollar</displayName>
-                       </currency>
-                       <currency type="ROL">
-                               <displayName>Old Romanian Leu</displayName>
-                               <!-- FYI Lei is the plural form of Leu. The currency symbol should be considered for change too. -->
-                               <symbol>=0#Old lei|1#Old leu|1&lt;Old lei</symbol>
-                       </currency>
-                       <currency type="RON">
-                               <displayName>Romanian Leu</displayName>
-                               <symbol>=0#lei|1#leu|1&lt;lei</symbol>
-                       </currency>
-                       <currency type="RUB">
-                               <displayName>Russian Ruble</displayName>
-                       </currency>
-                       <currency type="RUR">
-                               <displayName>Russian Ruble (1991-1998)</displayName>
-                       </currency>
-                       <currency type="RWF">
-                               <displayName>Rwandan Franc</displayName>
-                       </currency>
-                       <currency type="SAR">
-                               <displayName>Saudi Riyal</displayName>
-                               <symbol>SRl</symbol>
-                       </currency>
-                       <currency type="SBD">
-                               <displayName>Solomon Islands Dollar</displayName>
-                               <symbol>SI$</symbol>
-                       </currency>
-                       <currency type="SCR">
-                               <displayName>Seychelles Rupee</displayName>
-                               <symbol>SR</symbol>
-                       </currency>
-                       <currency type="SDD">
-                               <displayName>Sudanese Dinar</displayName>
-                       </currency>
-                       <currency type="SDP">
-                               <displayName>Sudanese Pound</displayName>
-                       </currency>
-                       <currency type="SEK">
-                               <displayName>Swedish Krona</displayName>
-                               <symbol>SKr</symbol>
-                       </currency>
-                       <currency type="SGD">
-                               <displayName>Singapore Dollar</displayName>
-                               <symbol>S$</symbol>
-                       </currency>
-                       <currency type="SHP">
-                               <displayName>Saint Helena Pound</displayName>
-                       </currency>
-                       <currency type="SIT">
-                               <displayName>Slovenia Tolar</displayName>
-                       </currency>
-                       <currency type="SKK">
-                               <displayName>Slovak Koruna</displayName>
-                               <symbol>Sk</symbol>
-                       </currency>
-                       <currency type="SLL">
-                               <displayName>Sierra Leone Leone</displayName>
-                       </currency>
-                       <currency type="SOS">
-                               <displayName>Somali Shilling</displayName>
-                               <symbol>So. Sh.</symbol>
-                       </currency>
-                       <currency type="SRD">
-                               <displayName>Surinam Dollar</displayName>
-                       </currency>
-                       <currency type="SRG">
-                               <displayName>Suriname Guilder</displayName>
-                               <symbol>Sf</symbol>
-                       </currency>
-                       <currency type="STD">
-                               <displayName>Sao Tome and Principe Dobra</displayName>
-                               <symbol>Db</symbol>
-                       </currency>
-                       <currency type="SUR">
-                               <displayName>Soviet Rouble</displayName>
-                       </currency>
-                       <currency type="SVC">
-                               <displayName>El Salvador Colon</displayName>
-                       </currency>
-                       <currency type="SYP">
-                               <displayName>Syrian Pound</displayName>
-                               <symbol>LS</symbol>
-                       </currency>
-                       <currency type="SZL">
-                               <displayName>Swaziland Lilangeni</displayName>
-                               <symbol>E</symbol>
-                       </currency>
-                       <currency type="THB">
-                               <displayName>Thai Baht</displayName>
-                       </currency>
-                       <currency type="TJR">
-                               <displayName>Tajikistan Ruble</displayName>
-                       </currency>
-                       <currency type="TJS">
-                               <displayName>Tajikistan Somoni</displayName>
-                       </currency>
-                       <currency type="TMM">
-                               <displayName>Turkmenistan Manat</displayName>
-                       </currency>
-                       <currency type="TND">
-                               <displayName>Tunisian Dinar</displayName>
-                       </currency>
-                       <currency type="TOP">
-                               <displayName>Tonga Paʻanga</displayName>
-                               <symbol>T$</symbol>
-                       </currency>
-                       <currency type="TPE">
-                               <displayName>Timor Escudo</displayName>
-                       </currency>
-                       <currency type="TRL">
-                               <displayName>Turkish Lira</displayName>
-                               <symbol>TL</symbol>
-                       </currency>
-                       <currency type="TRY">
-                               <displayName>New Turkish Lira</displayName>
-                       </currency>
-                       <currency type="TTD">
-                               <displayName>Trinidad and Tobago Dollar</displayName>
-                               <symbol>TT$</symbol>
-                       </currency>
-                       <currency type="TWD">
-                               <displayName>Taiwan New Dollar</displayName>
-                               <symbol>NT$</symbol>
-                       </currency>
-                       <currency type="TZS">
-                               <displayName>Tanzanian Shilling</displayName>
-                               <symbol>T Sh</symbol>
-                       </currency>
-                       <currency type="UAH">
-                               <displayName>Ukrainian Hryvnia</displayName>
-                       </currency>
-                       <currency type="UAK">
-                               <displayName>Ukrainian Karbovanetz</displayName>
-                       </currency>
-                       <currency type="UGS">
-                               <displayName>Ugandan Shilling (1966-1987)</displayName>
-                       </currency>
-                       <currency type="UGX">
-                               <displayName>Ugandan Shilling</displayName>
-                               <symbol>U Sh</symbol>
-                       </currency>
-                       <currency type="USD">
-                               <displayName>US Dollar</displayName>
-                               <symbol>US$</symbol>
-                       </currency>
-                       <currency type="USN">
-                               <displayName>US Dollar (Next day)</displayName>
-                       </currency>
-                       <currency type="USS">
-                               <displayName>US Dollar (Same day)</displayName>
-                       </currency>
-                       <currency type="UYP">
-                               <displayName>Uruguay Peso (1975-1993)</displayName>
-                       </currency>
-                       <currency type="UYU">
-                               <displayName>Uruguay Peso Uruguayo</displayName>
-                               <symbol>Ur$</symbol>
-                       </currency>
-                       <currency type="UZS">
-                               <displayName>Uzbekistan Sum</displayName>
-                       </currency>
-                       <currency type="VEB">
-                               <displayName>Venezuelan Bolivar</displayName>
-                               <symbol>Be</symbol>
-                       </currency>
-                       <currency type="VND">
-                               <displayName>Vietnamese Dong</displayName>
-                       </currency>
-                       <currency type="VUV">
-                               <displayName>Vanuatu Vatu</displayName>
-                               <symbol>VT</symbol>
-                       </currency>
-                       <currency type="WST">
-                               <displayName>Western Samoa Tala</displayName>
-                       </currency>
-                       <currency type="XAF">
-                               <displayName>CFA Franc BEAC</displayName>
-                       </currency>
-                       <currency type="XAG">
-                               <displayName>Silver</displayName>
-                       </currency>
-                       <currency type="XAU">
-                               <displayName>Gold</displayName>
-                       </currency>
-                       <currency type="XBA">
-                               <displayName>European Composite Unit</displayName>
-                       </currency>
-                       <currency type="XBB">
-                               <displayName>European Monetary Unit</displayName>
-                       </currency>
-                       <currency type="XBC">
-                               <displayName>European Unit of Account (XBC)</displayName>
-                       </currency>
-                       <currency type="XBD">
-                               <displayName>European Unit of Account (XBD)</displayName>
-                       </currency>
-                       <currency type="XCD">
-                               <displayName>East Caribbean Dollar</displayName>
-                               <symbol>EC$</symbol>
-                       </currency>
-                       <currency type="XDR">
-                               <displayName>Special Drawing Rights</displayName>
-                       </currency>
-                       <currency type="XEU">
-                               <displayName>European Currency Unit</displayName>
-                       </currency>
-                       <currency type="XFO">
-                               <displayName>French Gold Franc</displayName>
-                       </currency>
-                       <currency type="XFU">
-                               <displayName>French UIC-Franc</displayName>
-                       </currency>
-                       <currency type="XOF">
-                               <displayName>CFA Franc BCEAO</displayName>
-                       </currency>
-                       <currency type="XPD">
-                               <displayName>Palladium</displayName>
-                       </currency>
-                       <currency type="XPF">
-                               <displayName>CFP Franc</displayName>
-                               <symbol>CFPF</symbol>
-                       </currency>
-                       <currency type="XPT">
-                               <displayName>Platinum</displayName>
-                       </currency>
-                       <currency type="XRE">
-                               <displayName>RINET Funds</displayName>
-                       </currency>
-                       <currency type="XTS">
-                               <displayName>Testing Currency Code</displayName>
-                       </currency>
-                       <currency type="XXX">
-                               <displayName>No Currency</displayName>
-                       </currency>
-                       <currency type="YDD">
-                               <displayName>Yemeni Dinar</displayName>
-                       </currency>
-                       <currency type="YER">
-                               <displayName>Yemeni Rial</displayName>
-                               <symbol>YRl</symbol>
-                       </currency>
-                       <currency type="YUD">
-                               <displayName>Yugoslavian Hard Dinar</displayName>
-                       </currency>
-                       <currency type="YUM">
-                               <displayName>Yugoslavian Noviy Dinar</displayName>
-                       </currency>
-                       <currency type="YUN">
-                               <displayName>Yugoslavian Convertible Dinar</displayName>
-                       </currency>
-                       <currency type="ZAL">
-                               <displayName>South African Rand (financial)</displayName>
-                       </currency>
-                       <currency type="ZAR">
-                               <displayName>South African Rand</displayName>
-                               <symbol>R</symbol>
-                       </currency>
-                       <currency type="ZMK">
-                               <displayName>Zambian Kwacha</displayName>
-                       </currency>
-                       <currency type="ZRN">
-                               <displayName>Zairean New Zaire</displayName>
-                       </currency>
-                       <currency type="ZRZ">
-                               <displayName>Zairean Zaire</displayName>
-                       </currency>
-                       <currency type="ZWD">
-                               <displayName>Zimbabwe Dollar</displayName>
-                               <symbol>Z$</symbol>
-                       </currency>
-               </currencies>
-       </numbers>
-       <references>
-               <reference type="R01" draft="unconfirmed"/>
-               <reference type="R02" draft="provisional"/>
-               <reference type="R03" uri="http://unstats.un.org/unsd/geoinfo/">UN Geographical Names</reference>
-               <reference type="R1">Special reference used only to prevent minimalization</reference>
-               <reference type="RP1" uri="isbn:0-321-18578-1">The Unicode Standard 4.0</reference>
-               <reference type="RP2">The Economist Style Guide</reference>
-       </references>
-</ldml>
-<!-- Comments without bases
-
- See the National Bank of Romania for details http://www.bnro.ro/def_en.htm     - was on: //ldml/numbers/currencies/currency[@type="RON"]/displayName[@alt="proposed"] 
--->
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/de.xml b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/de.xml
deleted file mode 100644 (file)
index c3b6d54..0000000
+++ /dev/null
@@ -1,2135 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/data/dtd/ldml.dtd">
-<ldml>
-       <identity>
-               <version number="$Revision: 1.79 $"/>
-               <generation date="$Date: 2006/12/08 16:29:35 $"/>
-               <language type="de"/>
-       </identity>
-       <localeDisplayNames>
-               <languages>
-                       <language type="aa">Afar</language>
-                       <language type="ab">Abchasisch</language>
-                       <language type="ace">Aceh-Sprache</language>
-                       <language type="ach">Acholi-Sprache</language>
-                       <language type="ada">Adangme</language>
-                       <language type="ady">Adygai</language>
-                       <language type="ae">Avestisch</language>
-                       <language type="af">Afrikaans</language>
-                       <language type="afa">Afro-Asiatische Sprachen  (Andere)</language>
-                       <language type="afh">Afrihili</language>
-                       <language type="ain" draft="provisional">Ainu-Sprache</language>
-                       <language type="ak">Akan</language>
-                       <language type="akk">Akkadisch</language>
-                       <language type="ale">Aleutisch</language>
-                       <language type="alg">Algonkin-Sprachen</language>
-                       <language type="alt" draft="provisional">Altaisch</language>
-                       <language type="am">Amharisch</language>
-                       <language type="an">Aragonesisch</language>
-                       <language type="ang">Altenglisch</language>
-                       <language type="apa">Apachen-Sprache</language>
-                       <language type="ar">Arabisch</language>
-                       <language type="arc">Aramäisch</language>
-                       <language type="arn">Araukanisch</language>
-                       <language type="arp">Arapaho-Sprache</language>
-                       <language type="art">Kunstsprachen (Andere)</language>
-                       <language type="arw">Arawak-Sprachen</language>
-                       <language type="as">Assamesisch</language>
-                       <language type="ast">Asturianisch</language>
-                       <language type="ath">Athapaskische Sprachen</language>
-                       <language type="aus">Australische Sprachen</language>
-                       <language type="av">Awarisch</language>
-                       <language type="awa">Awadhi</language>
-                       <language type="ay">Aymará-Sprache</language>
-                       <language type="ay" alt="proposed-u212-1" draft="provisional">Aymara</language>
-                       <language type="az">Aserbaidschanisch</language>
-                       <language type="ba">Baschkirisch</language>
-                       <language type="bad">Banda-Sprache</language>
-                       <language type="bai">Bamileke-Sprache</language>
-                       <language type="bal">Belutschisch</language>
-                       <language type="ban">Balinesisch</language>
-                       <language type="bas">Basaa-Sprache</language>
-                       <language type="bat">Baltische Sprachen (Andere)</language>
-                       <language type="be">Weißrussisch</language>
-                       <language type="bej">Bedauye</language>
-                       <language type="bej" alt="proposed-u45-1" draft="provisional">Bedja-Sprache</language>
-                       <language type="bem">Bemba-Sprache</language>
-                       <language type="ber">Berbersprachen (Andere)</language>
-                       <language type="bg">Bulgarisch</language>
-                       <language type="bh">Biharisch</language>
-                       <language type="bho">Bhodschpuri</language>
-                       <language type="bi">Bislama</language>
-                       <language type="bik">Bikol-Sprache</language>
-                       <language type="bin">Bini-Sprache</language>
-                       <language type="bla">Blackfoot-Sprache</language>
-                       <language type="bm">Bambara-Sprache</language>
-                       <language type="bn">Bengalisch</language>
-                       <language type="bnt">Bantusprachen (Andere)</language>
-                       <language type="bo">Tibetisch</language>
-                       <language type="br">Bretonisch</language>
-                       <language type="bra">Braj-Bhakha</language>
-                       <language type="bs">Bosnisch</language>
-                       <language type="btk">Batak (Indonesien)</language>
-                       <language type="bua">Burjatisch</language>
-                       <language type="bug">Buginesisch</language>
-                       <language type="byn">Blin</language>
-                       <language type="ca">Katalanisch</language>
-                       <language type="cad">Caddo</language>
-                       <language type="cai">Indianersprachen, Zentralamerika (Andere)</language>
-                       <language type="car">Karibische Sprachen</language>
-                       <language type="cau">Kaukasische Sprachen (Andere)</language>
-                       <language type="ce">Tschetschenisch</language>
-                       <language type="ceb">Cebuano</language>
-                       <language type="cel">Keltische Sprachen (Andere)</language>
-                       <language type="ch">Chamorro-Sprache</language>
-                       <language type="chb">Chibcha-Sprachen</language>
-                       <language type="chg">Tschagataisch</language>
-                       <language type="chk">Trukesisch</language>
-                       <language type="chm">Tscheremissisch</language>
-                       <language type="chn">Chinook</language>
-                       <language type="cho">Choctaw</language>
-                       <language type="chp">Chipewyan</language>
-                       <language type="chr">Cherokee</language>
-                       <language type="chy">Cheyenne</language>
-                       <language type="cmc">Cham-Sprachen</language>
-                       <language type="co">Korsisch</language>
-                       <language type="cop">Koptisch</language>
-                       <language type="cpe">Kreolisch-Englisch (Andere)</language>
-                       <language type="cpf">Kreolisch-Französisch (Andere)</language>
-                       <language type="cpp">Kreolisch-Portugiesisch (Andere)</language>
-                       <language type="cr">Cree</language>
-                       <language type="crh">Krimtatarisch</language>
-                       <language type="crp">Kreolische Sprachen</language>
-                       <language type="cs">Tschechisch</language>
-                       <language type="csb">Kaschubisch</language>
-                       <language type="cu">Kirchenslawisch</language>
-                       <language type="cus">Kuschitische Sprachen (Andere)</language>
-                       <language type="cv">Tschuwaschisch</language>
-                       <language type="cy">Kymrisch</language>
-                       <language type="da">Dänisch</language>
-                       <language type="dak">Dakota-Sprache</language>
-                       <language type="dar">Darginisch</language>
-                       <language type="day">Dajak</language>
-                       <language type="de">Deutsch</language>
-                       <language type="del">Delaware-Sprache</language>
-                       <language type="den">Slave (Athapaskische Sprachen)</language>
-                       <language type="dgr">Dogrib</language>
-                       <language type="din">Dinka-Sprache</language>
-                       <language type="doi">Dogri</language>
-                       <language type="dra">Drawidische Sprachen (Andere)</language>
-                       <language type="dsb">Niedersorbisch</language>
-                       <language type="dua">Duala</language>
-                       <language type="dum">Mittelniederländisch</language>
-                       <language type="dv">Maledivisch</language>
-                       <language type="dyu">Dyula-Sprache</language>
-                       <language type="dz">Bhutanisch</language>
-                       <language type="ee">Ewe-Sprache</language>
-                       <language type="efi">Efik</language>
-                       <language type="egy">Ägyptisch</language>
-                       <language type="eka">Ekajuk</language>
-                       <language type="el">Griechisch</language>
-                       <language type="elx">Elamisch</language>
-                       <language type="en">Englisch</language>
-                       <language type="enm">Mittelenglisch</language>
-                       <language type="eo">Esperanto</language>
-                       <language type="es">Spanisch</language>
-                       <language type="et">Estnisch</language>
-                       <language type="eu">Baskisch</language>
-                       <language type="ewo">Ewondo</language>
-                       <language type="fa">Persisch</language>
-                       <language type="fan">Pangwe-Sprache</language>
-                       <language type="fat">Fanti-Sprache</language>
-                       <language type="ff">Ful</language>
-                       <language type="fi">Finnisch</language>
-                       <language type="fil">Filipino</language>
-                       <language type="fiu">Finnougrische Sprachen (Andere)</language>
-                       <language type="fj">Fidschianisch</language>
-                       <language type="fo">Färöisch</language>
-                       <language type="fon">Fon-Sprache</language>
-                       <language type="fr">Französisch</language>
-                       <language type="frm">Mittelfranzösisch</language>
-                       <language type="fro">Altfranzösisch</language>
-                       <language type="fur">Friulisch</language>
-                       <language type="fy">Friesisch</language>
-                       <language type="ga">Irisch</language>
-                       <language type="gaa">Ga-Sprache</language>
-                       <language type="gay">Gayo</language>
-                       <language type="gba">Gbaya-Sprache</language>
-                       <language type="gd">Schottisch-Gälisch</language>
-                       <language type="gem">Germanische Sprachen (Andere)</language>
-                       <language type="gez">Geez</language>
-                       <language type="gil">Gilbertesisch</language>
-                       <language type="gl">Galizisch</language>
-                       <language type="gmh">Mittelhochdeutsch</language>
-                       <language type="gn">Guarani</language>
-                       <language type="goh">Althochdeutsch</language>
-                       <language type="gon">Gondi-Sprache</language>
-                       <language type="gor">Mongondou</language>
-                       <language type="got">Gotisch</language>
-                       <language type="grb">Grebo-Sprache</language>
-                       <language type="grc">Griechisch (bis 1453)</language>
-                       <language type="gu">Gujarati</language>
-                       <language type="gv">Manx</language>
-                       <language type="gwi">Kutchin-Sprache</language>
-                       <language type="ha">Hausa</language>
-                       <language type="hai">Haida-Sprache</language>
-                       <language type="haw">Hawaiianisch</language>
-                       <language type="he">Hebräisch</language>
-                       <language type="hi">Hindi</language>
-                       <language type="hil">Hiligaynon-Sprache</language>
-                       <language type="him">Himachali</language>
-                       <language type="hit">Hethitisch</language>
-                       <language type="hmn">Miao-Sprachen</language>
-                       <language type="ho">Hiri-Motu</language>
-                       <language type="hr">Kroatisch</language>
-                       <language type="hsb">Obersorbisch</language>
-                       <language type="ht">Kreolisch</language>
-                       <language type="hu">Ungarisch</language>
-                       <language type="hup">Hupa</language>
-                       <language type="hy">Armenisch</language>
-                       <language type="hz">Herero-Sprache</language>
-                       <language type="ia">Interlingua</language>
-                       <language type="iba">Iban</language>
-                       <language type="id">Indonesisch</language>
-                       <language type="ie">Interlingue</language>
-                       <language type="ig">Igbo-Sprache</language>
-                       <language type="ii">Sichuan Yi</language>
-                       <language type="ijo">Ijo-Sprache</language>
-                       <language type="ik">Inupiak</language>
-                       <language type="ilo">Ilokano-Sprache</language>
-                       <language type="inc">Indoarische Sprachen (Andere)</language>
-                       <language type="ine">Indogermanische Sprachen (Andere)</language>
-                       <language type="inh">Ingush</language>
-                       <language type="io">Ido-Sprache</language>
-                       <language type="ira">Iranische Sprachen (Andere)</language>
-                       <language type="iro">Irokesische Sprachen</language>
-                       <language type="is">Isländisch</language>
-                       <language type="it">Italienisch</language>
-                       <language type="iu">Inukitut</language>
-                       <language type="iu" alt="proposed-u45-1" draft="provisional">Inuktitut</language>
-                       <language type="ja">Japanisch</language>
-                       <language type="jbo">Lojban</language>
-                       <language type="jpr">Jüdisch-Persisch</language>
-                       <language type="jrb">Jüdisch-Arabisch</language>
-                       <language type="jv">Javanisch</language>
-                       <language type="ka">Georgisch</language>
-                       <language type="kaa">Karakalpakisch</language>
-                       <language type="kab">Kabylisch</language>
-                       <language type="kac">Kachin-Sprache</language>
-                       <language type="kam">Kamba</language>
-                       <language type="kar">Karenisch</language>
-                       <language type="kaw">Kawi</language>
-                       <language type="kbd">Kabardinisch</language>
-                       <language type="kg">Kongo</language>
-                       <language type="kha">Khasi-Sprache</language>
-                       <language type="khi">Khoisan-Sprachen (Andere)</language>
-                       <language type="kho">Sakisch</language>
-                       <language type="ki">Kikuyu-Sprache</language>
-                       <language type="kj">Kwanyama</language>
-                       <language type="kk">Kasachisch</language>
-                       <language type="kl">Grönländisch</language>
-                       <language type="km">Kambodschanisch</language>
-                       <language type="kmb">Kimbundu-Sprache</language>
-                       <language type="kn">Kannada</language>
-                       <language type="ko">Koreanisch</language>
-                       <language type="kok">Konkani</language>
-                       <language type="kos">Kosraeanisch</language>
-                       <language type="kpe">Kpelle-Sprache</language>
-                       <language type="kr">Kanuri-Sprache</language>
-                       <language type="krc">Karatschaiisch-Balkarisch</language>
-                       <language type="kro">Kru-Sprachen</language>
-                       <language type="kru">Oraon-Sprache</language>
-                       <language type="ks">Kaschmirisch</language>
-                       <language type="ku">Kurdisch</language>
-                       <language type="kum">Kumükisch</language>
-                       <language type="kut">Kutenai-Sprache</language>
-                       <language type="kv">Komi-Sprache</language>
-                       <language type="kw">Kornisch</language>
-                       <language type="ky">Kirgisisch</language>
-                       <language type="la">Latein</language>
-                       <language type="lad">Judenspanisch</language>
-                       <language type="lad" alt="proposed-u212-1" draft="unconfirmed">Ladino</language>
-                       <language type="lad" alt="proposed-u45-1" draft="provisional">Ladinisch</language>
-                       <language type="lah">Lahnda</language>
-                       <language type="lam">Lamba-Sprache</language>
-                       <language type="lb">Luxemburgisch</language>
-                       <language type="lez">Lesgisch</language>
-                       <language type="lg">Ganda-Sprache</language>
-                       <language type="li">Limburgisch</language>
-                       <language type="ln">Lingala</language>
-                       <language type="lo">Laotisch</language>
-                       <language type="lol">Mongo</language>
-                       <language type="loz">Rotse-Sprache</language>
-                       <language type="lt">Litauisch</language>
-                       <language type="lu">Luba</language>
-                       <language type="lua">Luba-Lulua</language>
-                       <language type="lui">Luiseno-Sprache</language>
-                       <language type="lun">Lunda-Sprache</language>
-                       <language type="luo">Luo-Sprache</language>
-                       <language type="lus">Lushai-Sprache</language>
-                       <language type="lv">Lettisch</language>
-                       <language type="mad">Maduresisch</language>
-                       <language type="mag">Khotta</language>
-                       <language type="mai">Maithili</language>
-                       <language type="mak">Makassarisch</language>
-                       <language type="man">Manding-Sprache</language>
-                       <language type="map">Austronesische Sprachen (Andere)</language>
-                       <language type="mas">Massai-Sprache</language>
-                       <language type="mdf">Moksha</language>
-                       <language type="mdr">Mandaresisch</language>
-                       <language type="men">Mende-Sprache</language>
-                       <language type="mg">Madagassisch</language>
-                       <language type="mg" alt="proposed-u45-1" draft="provisional">Malagassi-Sprache</language>
-                       <language type="mga">Mittelirisch</language>
-                       <language type="mh">Marschallesisch</language>
-                       <language type="mi">Maori</language>
-                       <language type="mic">Micmac-Sprache</language>
-                       <language type="min">Minangkabau-Sprache</language>
-                       <language type="mis">Verschiedene Sprachen</language>
-                       <language type="mk">Mazedonisch</language>
-                       <language type="mkh">Mon-Khmer-Sprachen (Andere)</language>
-                       <language type="ml">Malayalam</language>
-                       <language type="mn">Mongolisch</language>
-                       <language type="mnc">Mandschurisch</language>
-                       <language type="mni">Meithei-Sprache</language>
-                       <language type="mno">Manobo-Sprache</language>
-                       <language type="mo">Moldauisch</language>
-                       <language type="moh">Mohawk-Sprache</language>
-                       <language type="mos">Mossi-Sprache</language>
-                       <language type="mr">Marathi</language>
-                       <language type="ms">Malaiisch</language>
-                       <language type="mt">Maltesisch</language>
-                       <language type="mul">Polyglott</language>
-                       <language type="mun">Munda-Sprachen</language>
-                       <language type="mus">Muskogee-Sprachen</language>
-                       <language type="mwl" draft="provisional">Mirandesisch</language>
-                       <language type="mwr">Marwari</language>
-                       <language type="my">Birmanisch</language>
-                       <language type="myn">Maya-Sprachen</language>
-                       <language type="myv">Erzya</language>
-                       <language type="na">Nauruisch</language>
-                       <language type="nah">Nahuatl</language>
-                       <language type="nai">Indianersprachen, Nordamerika (Andere)</language>
-                       <language type="nap">Neapolitanisch</language>
-                       <language type="nb">Norwegisch Bokmål</language>
-                       <language type="nb" alt="proposed-u212-1" draft="provisional">Norwegisch (Bokmål)</language>
-                       <language type="nd">Ndebele-Sprache (Nord)</language>
-                       <language type="nds">Niederdeutsch</language>
-                       <language type="ne">Nepalesisch</language>
-                       <language type="new">Newari</language>
-                       <language type="ng">Ndonga</language>
-                       <language type="nia">Nias-Sprache</language>
-                       <language type="nic">Nigerkordofanische Sprachen (Andere)</language>
-                       <language type="niu">Niue-Sprache</language>
-                       <language type="nl">Niederländisch</language>
-                       <language type="nn">Norwegisch Nynorsk</language>
-                       <language type="nn" alt="proposed-u45-1" draft="provisional">Norwegisch (Nynorsk)</language>
-                       <language type="no">Norwegisch</language>
-                       <language type="nog">Nogai</language>
-                       <language type="non">Altnordisch</language>
-                       <language type="nr">Ndebele-Sprache (Süd)</language>
-                       <language type="nso">Sotho-Sprache (Nord)</language>
-                       <language type="nub">Nubische Sprachen</language>
-                       <language type="nv">Navajo-Sprache</language>
-                       <language type="nwc" draft="provisional">Alt-Newari</language>
-                       <language type="ny">Chewa-Sprache</language>
-                       <language type="nym">Nyamwezi-Sprache</language>
-                       <language type="nyn">Nyankole</language>
-                       <language type="nyo">Nyoro</language>
-                       <language type="nzi">Nzima</language>
-                       <language type="oc">Okzitanisch</language>
-                       <language type="oj">Ojibwa-Sprache</language>
-                       <language type="om">Oromo</language>
-                       <language type="or">Orija</language>
-                       <language type="os">Ossetisch</language>
-                       <language type="osa">Osage-Sprache</language>
-                       <language type="ota">Osmanisch</language>
-                       <language type="oto">Otomangue-Sprachen</language>
-                       <language type="pa">Pandschabisch</language>
-                       <language type="paa">Papuasprachen (Andere)</language>
-                       <language type="pag">Pangasinan-Sprache</language>
-                       <language type="pal">Mittelpersisch</language>
-                       <language type="pam">Pampanggan-Sprache</language>
-                       <language type="pap">Papiamento</language>
-                       <language type="pau">Palau</language>
-                       <language type="peo">Altpersisch</language>
-                       <language type="phi">Philippinen-Austronesisch (Andere)</language>
-                       <language type="phn">Phönikisch</language>
-                       <language type="pi">Pali</language>
-                       <language type="pl">Polnisch</language>
-                       <language type="pon">Ponapeanisch</language>
-                       <language type="pra">Prakrit</language>
-                       <language type="pro">Altprovenzalisch</language>
-                       <language type="ps">Afghanisch (Paschtu)</language>
-                       <language type="pt">Portugiesisch</language>
-                       <language type="qu">Quechua</language>
-                       <language type="raj">Rajasthani</language>
-                       <language type="rap">Osterinsel-Sprache</language>
-                       <language type="rar">Rarotonganisch</language>
-                       <language type="rm">Rätoromanisch</language>
-                       <language type="rn">Rundi-Sprache</language>
-                       <language type="ro">Rumänisch</language>
-                       <language type="roa">Romanische Sprachen (Andere)</language>
-                       <language type="rom">Zigeunersprache</language>
-                       <language type="root" draft="provisional">Root</language>
-                       <language type="ru">Russisch</language>
-                       <language type="rup" draft="provisional">Aromunisch</language>
-                       <language type="rw">Ruandisch</language>
-                       <language type="sa">Sanskrit</language>
-                       <language type="sad">Sandawe-Sprache</language>
-                       <language type="sah">Jakutisch</language>
-                       <language type="sai">Indianersprachen, Südamerika (Andere)</language>
-                       <language type="sal">Salish-Sprache</language>
-                       <language type="sam">Samaritanisch</language>
-                       <language type="sas">Sasak</language>
-                       <language type="sat">Santali</language>
-                       <language type="sc">Sardisch</language>
-                       <language type="scn" draft="provisional">Sizilianisch</language>
-                       <language type="sco">Schottisch</language>
-                       <language type="sd">Sindhi</language>
-                       <language type="se">Nord-Samisch</language>
-                       <language type="sel">Selkupisch</language>
-                       <language type="sem">Semitische Sprachen (Andere)</language>
-                       <language type="sg">Sango</language>
-                       <language type="sga">Altirisch</language>
-                       <language type="sgn">Gebärdensprache</language>
-                       <language type="sh">Serbo-Kroatisch</language>
-                       <language type="shn">Schan-Sprache</language>
-                       <language type="si">Singhalesisch</language>
-                       <language type="sid">Sidamo</language>
-                       <language type="sio">Sioux-Sprachen</language>
-                       <language type="sit">Sinotibetische Sprachen (Andere)</language>
-                       <language type="sk">Slowakisch</language>
-                       <language type="sl">Slowenisch</language>
-                       <language type="sla">Slawische Sprachen (Andere)</language>
-                       <language type="sm">Samoanisch</language>
-                       <language type="sma">Süd-Samisch</language>
-                       <language type="smi">Lappisch</language>
-                       <language type="smj">Lule-Lappisch</language>
-                       <language type="smn">Inari-Lappisch</language>
-                       <language type="sms">Skolt-Lappisch</language>
-                       <language type="sn">Shona</language>
-                       <language type="snk">Soninke-Sprache</language>
-                       <language type="so">Somali</language>
-                       <language type="sog">Sogdisch</language>
-                       <language type="son">Songhai-Sprache</language>
-                       <language type="sq">Albanisch</language>
-                       <language type="sr">Serbisch</language>
-                       <language type="srn" draft="provisional">Srananisch</language>
-                       <language type="srr">Serer-Sprache</language>
-                       <language type="ss">Swazi</language>
-                       <language type="ssa">Nilosaharanische Sprachen (Andere)</language>
-                       <language type="st">Süd-Sotho-Sprache</language>
-                       <language type="su">Sudanesisch</language>
-                       <language type="suk">Sukuma-Sprache</language>
-                       <language type="sus">Susu</language>
-                       <language type="sux">Sumerisch</language>
-                       <language type="sv">Schwedisch</language>
-                       <language type="sw">Suaheli</language>
-                       <language type="syr">Syrisch</language>
-                       <language type="ta">Tamilisch</language>
-                       <language type="tai">Thaisprachen (Andere)</language>
-                       <language type="te">Telugu</language>
-                       <language type="tem">Temne</language>
-                       <language type="ter">Tereno-Sprache</language>
-                       <language type="tet">Tetum-Sprache</language>
-                       <language type="tg">Tadschikisch</language>
-                       <language type="th">Thai</language>
-                       <language type="ti">Tigrinja</language>
-                       <language type="tig">Tigre</language>
-                       <language type="tiv">Tiv-Sprache</language>
-                       <language type="tk">Turkmenisch</language>
-                       <language type="tkl">Tokelauanisch</language>
-                       <language type="tl">Tagalog</language>
-                       <language type="tlh" draft="provisional">Klingonisch</language>
-                       <language type="tli">Tlingit-Sprache</language>
-                       <language type="tmh">Tamaseq</language>
-                       <language type="tn">Tswana-Sprache</language>
-                       <language type="to">Tongaisch</language>
-                       <language type="tog">Tonga (Nyasa)</language>
-                       <language type="tog" alt="proposed-u45-1" draft="provisional">Tsonga-Sprache</language>
-                       <language type="tpi">Neumelanesisch</language>
-                       <language type="tr">Türkisch</language>
-                       <language type="ts">Tsonga</language>
-                       <language type="tsi">Tsimshian-Sprache</language>
-                       <language type="tt">Tatarisch</language>
-                       <language type="tum">Tumbuka-Sprache</language>
-                       <language type="tup">Tupi-Sprachen</language>
-                       <language type="tut">Altaische Sprachen (Andere)</language>
-                       <language type="tvl">Elliceanisch</language>
-                       <language type="tw">Twi</language>
-                       <language type="ty">Tahitisch</language>
-                       <language type="tyv">Tuwinisch</language>
-                       <language type="udm">Udmurtisch</language>
-                       <language type="ug">Uigurisch</language>
-                       <language type="uga">Ugaritisch</language>
-                       <language type="uk">Ukrainisch</language>
-                       <language type="umb">Mbundu-Sprache</language>
-                       <language type="und">Sprache nicht ermittelt</language>
-                       <language type="ur">Urdu</language>
-                       <language type="uz">Usbekisch</language>
-                       <language type="vai">Vai-Sprache</language>
-                       <language type="ve">Venda-Sprache</language>
-                       <language type="vi">Vietnamesisch</language>
-                       <language type="vo">Volapük</language>
-                       <language type="vot">Wotisch</language>
-                       <language type="wa">Wallonisch</language>
-                       <language type="wak">Wakashanisch</language>
-                       <language type="wal">Walamo-Sprache</language>
-                       <language type="war">Waray</language>
-                       <language type="was">Washo-Sprache</language>
-                       <language type="wen">Sorbisch</language>
-                       <language type="wo">Wolof</language>
-                       <language type="xal">Kalmückisch</language>
-                       <language type="xh">Xhosa</language>
-                       <language type="yao">Yao-Sprache</language>
-                       <language type="yap">Yapesisch</language>
-                       <language type="yi">Jiddisch</language>
-                       <language type="yo">Joruba</language>
-                       <language type="ypk">Yupik-Sprache</language>
-                       <language type="za">Zhuang</language>
-                       <language type="zap">Zapotekisch</language>
-                       <language type="zen">Zenaga</language>
-                       <language type="zh">Chinesisch</language>
-                       <language type="znd">Zande-Sprache</language>
-                       <language type="zu">Zulu</language>
-                       <language type="zun">Zuni-Sprache</language>
-               </languages>
-               <scripts>
-                       <script type="Arab">Arabisch</script>
-                       <script type="Armn">Armenisch</script>
-                       <script type="Bali" draft="provisional">Balinesisch</script>
-                       <script type="Batk" draft="provisional">Battakisch</script>
-                       <script type="Beng">Bengalisch</script>
-                       <script type="Blis" draft="provisional">Bliss-Symbole</script>
-                       <script type="Bopo">Bopomofo</script>
-                       <script type="Brah" draft="provisional">Brahmi</script>
-                       <script type="Brai">Blindenschrift</script>
-                       <script type="Bugi" draft="provisional">Buginesisch</script>
-                       <script type="Buhd" draft="provisional">Buhid</script>
-                       <script type="Cans" draft="provisional">UCAS</script>
-                       <script type="Cham" draft="provisional">Cham</script>
-                       <script type="Cher">Cherokee</script>
-                       <script type="Cirt" draft="provisional">Cirth</script>
-                       <script type="Copt">Koptisch</script>
-                       <script type="Cprt">Zypriotisch</script>
-                       <script type="Cyrl">Kyrillisch</script>
-                       <script type="Cyrs" draft="provisional">Kyrillisch (Altkirchenslawische Variante)</script>
-                       <script type="Deva">Devanagari</script>
-                       <script type="Dsrt" draft="provisional">Deseret</script>
-                       <script type="Egyd" draft="provisional">Ägyptisch (Demotisch)</script>
-                       <script type="Egyh" draft="provisional">Ägyptisch (Hieratisch)</script>
-                       <script type="Egyp" draft="provisional">Ägyptische Hieroglyphen</script>
-                       <script type="Ethi">Äthiopisch</script>
-                       <script type="Geok" draft="provisional">Khutsuri (Asomtavruli und Nuskhuri)</script>
-                       <script type="Geor">Georgisch</script>
-                       <script type="Glag" draft="provisional">Glagolitisch</script>
-                       <script type="Goth">Gotisch</script>
-                       <script type="Grek">Griechisch</script>
-                       <script type="Gujr">Gujarati</script>
-                       <script type="Guru">Gurmukhi</script>
-                       <script type="Hang">Hangul</script>
-                       <script type="Hani">Chinesisch</script>
-                       <script type="Hano" draft="provisional">Hanunoo</script>
-                       <script type="Hans">Vereinfachte Chinesische Schrift</script>
-                       <script type="Hant">Traditionelle Chinesische Schrift</script>
-                       <script type="Hebr">Hebräisch</script>
-                       <script type="Hira">Hiragana</script>
-                       <script type="Hmng" draft="provisional">Pahawh Hmong</script>
-                       <script type="Hrkt" draft="provisional">Katakana oder Hiragana</script>
-                       <script type="Hung" draft="provisional">Altungarisch</script>
-                       <script type="Inds" draft="provisional">Indus (Harappan)</script>
-                       <script type="Ital">Altitalisch</script>
-                       <script type="Java" draft="provisional">Javanesisch</script>
-                       <script type="Kali" draft="provisional">Kayah Li</script>
-                       <script type="Kana">Katakana</script>
-                       <script type="Khar" draft="provisional">Kharoshthi</script>
-                       <script type="Khmr">Khmer</script>
-                       <script type="Knda">Kannada</script>
-                       <script type="Laoo">Laotisch</script>
-                       <script type="Latf" draft="provisional">Lateinisch (Fraktur-Variante)</script>
-                       <script type="Latg" draft="provisional">Lateinisch (Gälische Variante)</script>
-                       <script type="Latn">Lateinisch</script>
-                       <script type="Lepc" draft="provisional">Lepcha (Róng)</script>
-                       <script type="Limb">Limbu</script>
-                       <script type="Lina" draft="provisional">Linear A</script>
-                       <script type="Linb">Linear B</script>
-                       <script type="Mand" draft="provisional">Mandaean</script>
-                       <script type="Maya" draft="provisional">Maya-Hieroglyphen</script>
-                       <script type="Mero" draft="provisional">Meroitisch</script>
-                       <script type="Mlym">Malaysisch</script>
-                       <script type="Mong">Mongolisch</script>
-                       <script type="Mymr">Burmesisch</script>
-                       <script type="Nkoo" draft="provisional">N’Ko</script>
-                       <script type="Ogam">Ogham</script>
-                       <script type="Orkh" draft="provisional">Orchon-Runen</script>
-                       <script type="Orya">Oriya</script>
-                       <script type="Osma">Osmanisch</script>
-                       <script type="Perm" draft="provisional">Altpermisch</script>
-                       <script type="Phag" draft="provisional">Phags-pa</script>
-                       <script type="Phnx" draft="provisional">Phönizisch</script>
-                       <script type="Plrd" draft="provisional">Pollard Phonetisch</script>
-                       <script type="Qaai">Geerbter Schriftwert</script>
-                       <script type="Roro" draft="provisional">Rongorongo</script>
-                       <script type="Runr">Runenschrift</script>
-                       <script type="Sara" draft="provisional">Sarati</script>
-                       <script type="Shaw" draft="provisional">Shaw-Alphabet</script>
-                       <script type="Sinh">Singhalesisch</script>
-                       <script type="Sylo" draft="provisional">Syloti Nagri</script>
-                       <script type="Syrc">Syrisch</script>
-                       <script type="Syre" draft="provisional">Syrisch (Estrangelo-Variante)</script>
-                       <script type="Syrj" draft="provisional">Syrisch (Westliche Variante)</script>
-                       <script type="Syrn" draft="provisional">Syrisch (Östliche Variante)</script>
-                       <script type="Tagb" draft="provisional">Tagbanwa</script>
-                       <script type="Tale" draft="provisional">Tai Le</script>
-                       <script type="Talu" draft="provisional">Tai Lue</script>
-                       <script type="Taml">Tamilisch</script>
-                       <script type="Telu">Telugu</script>
-                       <script type="Teng" draft="provisional">Tengwar</script>
-                       <script type="Tfng" draft="provisional">Tifinagh (Berber)</script>
-                       <script type="Tglg">Tagalog</script>
-                       <script type="Thaa" draft="provisional">Thaana</script>
-                       <script type="Thai" draft="provisional">Thai</script>
-                       <script type="Tibt">Tibetisch</script>
-                       <script type="Ugar">Ugaritisch</script>
-                       <script type="Vaii" draft="provisional">Vai</script>
-                       <script type="Visp" draft="provisional">Visible Speech</script>
-                       <script type="Xpeo" draft="provisional">Altpersisch</script>
-                       <script type="Xsux" draft="provisional">Sumerisch-akkadische Keilschrift</script>
-                       <script type="Yiii">Yi</script>
-                       <script type="Zxxx" draft="provisional">Schriftlose Sprachen</script>
-                       <script type="Zyyy">Unbestimmt</script>
-                       <script type="Zzzz" draft="provisional">Uncodierte Schrift</script>
-               </scripts>
-               <territories>
-                       <territory type="001">Welt</territory>
-                       <territory type="002">Afrika</territory>
-                       <territory type="005">Südamerika</territory>
-                       <territory type="009">Ozeanien</territory>
-                       <territory type="011">Westafrika</territory>
-                       <territory type="013">Mittelamerika</territory>
-                       <territory type="014">Ostafrika</territory>
-                       <territory type="015">Nordafrika</territory>
-                       <territory type="017">Zentralafrika</territory>
-                       <territory type="018" draft="provisional">Südliches Afrika</territory>
-                       <territory type="019">Nord-, Mittel- und Südamerika</territory>
-                       <territory type="021">Nordamerika</territory>
-                       <territory type="029">Karibik</territory>
-                       <territory type="030">Ostasien</territory>
-                       <territory type="034">Südasien</territory>
-                       <territory type="035">Südostasien</territory>
-                       <territory type="039">Südeuropa</territory>
-                       <territory type="053">Australien und Neuseeland</territory>
-                       <territory type="054">Melanesien</territory>
-                       <territory type="057" draft="provisional">Mikronesien (Inselgebiet)</territory>
-                       <territory type="061">Polynesien</territory>
-                       <territory type="062">Süd-Zentralasien</territory>
-                       <territory type="142">Asien</territory>
-                       <territory type="143">Zentralasien</territory>
-                       <territory type="145">Westasien</territory>
-                       <territory type="150">Europa</territory>
-                       <territory type="151">Osteuropa</territory>
-                       <territory type="154">Nordeuropa</territory>
-                       <territory type="155">Westeuropa</territory>
-                       <territory type="172" draft="provisional">Gemeinschaft Unabhängiger Staaten</territory>
-                       <territory type="419">Lateinamerika und Karibik</territory>
-                       <territory type="830">Kanalinseln</territory>
-                       <territory type="IM">Insel Man</territory>
-                       <territory type="AD">Andorra</territory>
-                       <territory type="AE">Vereinigte Arabische Emirate</territory>
-                       <territory type="AF">Afghanistan</territory>
-                       <territory type="AG">Antigua und Barbuda</territory>
-                       <territory type="AI">Anguilla</territory>
-                       <territory type="AL">Albanien</territory>
-                       <territory type="AM">Armenien</territory>
-                       <territory type="AN">Niederländische Antillen</territory>
-                       <territory type="AO">Angola</territory>
-                       <territory type="AQ">Antarktis</territory>
-                       <territory type="AR">Argentinien</territory>
-                       <territory type="AS">Amerikanisch-Samoa</territory>
-                       <territory type="AT">Österreich</territory>
-                       <territory type="AU">Australien</territory>
-                       <territory type="AW">Aruba</territory>
-                       <territory type="AX">Alandinseln</territory>
-                       <territory type="AZ">Aserbaidschan</territory>
-                       <territory type="BA">Bosnien und Herzegowina</territory>
-                       <territory type="BB">Barbados</territory>
-                       <territory type="BD">Bangladesch</territory>
-                       <territory type="BE">Belgien</territory>
-                       <territory type="BF">Burkina Faso</territory>
-                       <territory type="BG">Bulgarien</territory>
-                       <territory type="BH">Bahrain</territory>
-                       <territory type="BI">Burundi</territory>
-                       <territory type="BJ">Benin</territory>
-                       <territory type="BM">Bermuda</territory>
-                       <territory type="BN">Brunei Darussalam</territory>
-                       <territory type="BO">Bolivien</territory>
-                       <territory type="BR">Brasilien</territory>
-                       <territory type="BS">Bahamas</territory>
-                       <territory type="BT">Bhutan</territory>
-                       <territory type="BV">Bouvetinsel</territory>
-                       <territory type="BW">Botsuana</territory>
-                       <territory type="BY">Belarus</territory>
-                       <territory type="BZ">Belize</territory>
-                       <territory type="CA">Kanada</territory>
-                       <territory type="CC">Kokosinseln (Keeling)</territory>
-                       <territory type="CD">Demokratische Republik Kongo</territory>
-                       <territory type="CF">Zentralafrikanische Republik</territory>
-                       <territory type="CG">Kongo</territory>
-                       <territory type="CH">Schweiz</territory>
-                       <territory type="CI">Côte d’Ivoire</territory>
-                       <territory type="CK">Cookinseln</territory>
-                       <territory type="CL">Chile</territory>
-                       <territory type="CM">Kamerun</territory>
-                       <territory type="CN">China</territory>
-                       <territory type="CO">Kolumbien</territory>
-                       <territory type="CR">Costa Rica</territory>
-                       <territory type="CS">Serbien und Montenegro</territory>
-                       <territory type="CU">Kuba</territory>
-                       <territory type="CV">Kap Verde</territory>
-                       <territory type="CX">Weihnachtsinsel</territory>
-                       <territory type="CY">Zypern</territory>
-                       <territory type="CZ">Tschechische Republik</territory>
-                       <territory type="DE">Deutschland</territory>
-                       <territory type="DJ">Dschibuti</territory>
-                       <territory type="DK">Dänemark</territory>
-                       <territory type="DM">Dominica</territory>
-                       <territory type="DO">Dominikanische Republik</territory>
-                       <territory type="DZ">Algerien</territory>
-                       <territory type="EC">Ecuador</territory>
-                       <territory type="EE">Estland</territory>
-                       <territory type="EG">Ägypten</territory>
-                       <territory type="EH">Westsahara</territory>
-                       <territory type="ER">Eritrea</territory>
-                       <territory type="ES">Spanien</territory>
-                       <territory type="ET">Äthiopien</territory>
-                       <territory type="FI">Finnland</territory>
-                       <territory type="FJ">Fidschi</territory>
-                       <territory type="FK">Falklandinseln</territory>
-                       <territory type="FM">Mikronesien</territory>
-                       <territory type="FO">Färöer</territory>
-                       <territory type="FR">Frankreich</territory>
-                       <territory type="GA">Gabun</territory>
-                       <territory type="GB">Vereinigtes Königreich</territory>
-                       <territory type="GD">Grenada</territory>
-                       <territory type="GE">Georgien</territory>
-                       <territory type="GF">Französisch-Guayana</territory>
-                       <territory type="GH">Ghana</territory>
-                       <territory type="GI">Gibraltar</territory>
-                       <territory type="GL">Grönland</territory>
-                       <territory type="GM">Gambia</territory>
-                       <territory type="GN">Guinea</territory>
-                       <territory type="GP">Guadeloupe</territory>
-                       <territory type="GQ">Äquatorialguinea</territory>
-                       <territory type="GR">Griechenland</territory>
-                       <territory type="GS">Südgeorgien und die Südlichen Sandwichinseln</territory>
-                       <territory type="GT">Guatemala</territory>
-                       <territory type="GU">Guam</territory>
-                       <territory type="GW">Guinea-Bissau</territory>
-                       <territory type="GY">Guyana</territory>
-                       <territory type="HK">Hong Kong S.A.R., China</territory>
-                       <territory type="HM">Heard und McDonaldinseln</territory>
-                       <territory type="HN">Honduras</territory>
-                       <territory type="HR">Kroatien</territory>
-                       <territory type="HT">Haiti</territory>
-                       <territory type="HU">Ungarn</territory>
-                       <territory type="ID">Indonesien</territory>
-                       <territory type="IE">Irland</territory>
-                       <territory type="IL">Israel</territory>
-                       <territory type="IN">Indien</territory>
-                       <territory type="IO">Britisches Territorium im Indischen Ozean</territory>
-                       <territory type="IQ">Irak</territory>
-                       <territory type="IR">Iran</territory>
-                       <territory type="IS">Island</territory>
-                       <territory type="IT">Italien</territory>
-                       <territory type="JM">Jamaika</territory>
-                       <territory type="JO">Jordanien</territory>
-                       <territory type="JP">Japan</territory>
-                       <territory type="KE">Kenia</territory>
-                       <territory type="KG">Kirgisistan</territory>
-                       <territory type="KH">Kambodscha</territory>
-                       <territory type="KI">Kiribati</territory>
-                       <territory type="KM">Komoren</territory>
-                       <territory type="KN">St. Kitts und Nevis</territory>
-                       <territory type="KP">Demokratische Volksrepublik Korea</territory>
-                       <territory type="KR">Republik Korea</territory>
-                       <territory type="KW">Kuwait</territory>
-                       <territory type="KY">Kaimaninseln</territory>
-                       <territory type="KZ">Kasachstan</territory>
-                       <territory type="LA">Laos</territory>
-                       <territory type="LB">Libanon</territory>
-                       <territory type="LC">St. Lucia</territory>
-                       <territory type="LI">Liechtenstein</territory>
-                       <territory type="LK">Sri Lanka</territory>
-                       <territory type="LR">Liberia</territory>
-                       <territory type="LS">Lesotho</territory>
-                       <territory type="LT">Litauen</territory>
-                       <territory type="LU">Luxemburg</territory>
-                       <territory type="LV">Lettland</territory>
-                       <territory type="LY">Libyen</territory>
-                       <territory type="MA">Marokko</territory>
-                       <territory type="MC">Monaco</territory>
-                       <territory type="MD">Republik Moldau</territory>
-                       <territory type="MG">Madagaskar</territory>
-                       <territory type="MH">Marshallinseln</territory>
-                       <territory type="MK">Mazedonien</territory>
-                       <territory type="ML">Mali</territory>
-                       <territory type="MM">Myanmar</territory>
-                       <territory type="MN">Mongolei</territory>
-                       <territory type="MO">Macau S.A.R., China</territory>
-                       <territory type="MP">Nördliche Marianen</territory>
-                       <territory type="MQ">Martinique</territory>
-                       <territory type="MR">Mauretanien</territory>
-                       <territory type="MS">Montserrat</territory>
-                       <territory type="MT">Malta</territory>
-                       <territory type="MU">Mauritius</territory>
-                       <territory type="MV">Malediven</territory>
-                       <territory type="MW">Malawi</territory>
-                       <territory type="MX">Mexiko</territory>
-                       <territory type="MY">Malaysia</territory>
-                       <territory type="MZ">Mosambik</territory>
-                       <territory type="NA">Namibia</territory>
-                       <territory type="NC">Neukaledonien</territory>
-                       <territory type="NE">Niger</territory>
-                       <territory type="NF">Norfolkinsel</territory>
-                       <territory type="NG">Nigeria</territory>
-                       <territory type="NI">Nicaragua</territory>
-                       <territory type="NL">Niederlande</territory>
-                       <territory type="NO">Norwegen</territory>
-                       <territory type="NP">Nepal</territory>
-                       <territory type="NR">Nauru</territory>
-                       <territory type="NU">Niue</territory>
-                       <territory type="NZ">Neuseeland</territory>
-                       <territory type="OM">Oman</territory>
-                       <territory type="PA">Panama</territory>
-                       <territory type="PE">Peru</territory>
-                       <territory type="PF">Französisch-Polynesien</territory>
-                       <territory type="PG">Papua-Neuguinea</territory>
-                       <territory type="PH">Philippinen</territory>
-                       <territory type="PK">Pakistan</territory>
-                       <territory type="PL">Polen</territory>
-                       <territory type="PM">St. Pierre und Miquelon</territory>
-                       <territory type="PN">Pitcairn</territory>
-                       <territory type="PR">Puerto Rico</territory>
-                       <territory type="PS">Palästinensische Gebiete</territory>
-                       <territory type="PT">Portugal</territory>
-                       <territory type="PW">Palau</territory>
-                       <territory type="PY">Paraguay</territory>
-                       <territory type="QA">Katar</territory>
-                       <territory type="QO">Äußeres Ozeanien</territory>
-                       <territory type="RE">Réunion</territory>
-                       <territory type="RO">Rumänien</territory>
-                       <territory type="RU">Russische Föderation</territory>
-                       <territory type="RW">Ruanda</territory>
-                       <territory type="SA">Saudi-Arabien</territory>
-                       <territory type="SB">Salomonen</territory>
-                       <territory type="SC">Seychellen</territory>
-                       <territory type="SD">Sudan</territory>
-                       <territory type="SE">Schweden</territory>
-                       <territory type="SG">Singapur</territory>
-                       <territory type="SH">St. Helena</territory>
-                       <territory type="SI">Slowenien</territory>
-                       <territory type="SJ">Svalbard und Jan Mayen</territory>
-                       <territory type="SK">Slowakei</territory>
-                       <territory type="SL">Sierra Leone</territory>
-                       <territory type="SM">San Marino</territory>
-                       <territory type="SN">Senegal</territory>
-                       <territory type="SO">Somalia</territory>
-                       <territory type="SR">Suriname</territory>
-                       <territory type="ST">São Tomé und Príncipe</territory>
-                       <territory type="SV">El Salvador</territory>
-                       <territory type="SY">Syrien</territory>
-                       <territory type="SZ">Swasiland</territory>
-                       <territory type="TC">Turks- und Caicosinseln</territory>
-                       <territory type="TD">Tschad</territory>
-                       <territory type="TF">Französische Süd- und Antarktisgebiete</territory>
-                       <territory type="TG">Togo</territory>
-                       <territory type="TH">Thailand</territory>
-                       <territory type="TJ">Tadschikistan</territory>
-                       <territory type="TK">Tokelau</territory>
-                       <territory type="TL">Osttimor</territory>
-                       <territory type="TM">Turkmenistan</territory>
-                       <territory type="TN">Tunesien</territory>
-                       <territory type="TO">Tonga</territory>
-                       <territory type="TR">Türkei</territory>
-                       <territory type="TT">Trinidad und Tobago</territory>
-                       <territory type="TV">Tuvalu</territory>
-                       <territory type="TW">Taiwan</territory>
-                       <territory type="TZ">Tansania</territory>
-                       <territory type="UA">Ukraine</territory>
-                       <territory type="UG">Uganda</territory>
-                       <territory type="UM">Amerikanisch-Ozeanien</territory>
-                       <territory type="US">Vereinigte Staaten</territory>
-                       <territory type="UY">Uruguay</territory>
-                       <territory type="UZ">Usbekistan</territory>
-                       <territory type="VA">Vatikanstadt</territory>
-                       <territory type="VC">St. Vincent und die Grenadinen</territory>
-                       <territory type="VE">Venezuela</territory>
-                       <territory type="VG">Britische Jungferninseln</territory>
-                       <territory type="VI">Amerikanische Jungferninseln</territory>
-                       <territory type="VN">Vietnam</territory>
-                       <territory type="VU">Vanuatu</territory>
-                       <territory type="WF">Wallis und Futuna</territory>
-                       <territory type="WS">Samoa</territory>
-                       <territory type="YE">Jemen</territory>
-                       <territory type="YT">Mayotte</territory>
-                       <territory type="ZA">Südafrika</territory>
-                       <territory type="ZA" alt="proposed-u212-1" draft="unconfirmed">Südafrika (Republik)</territory>
-                       <territory type="ZA" alt="proposed-u45-2" draft="provisional">Republik Südafrika</territory>
-                       <territory type="ZM">Sambia</territory>
-                       <territory type="ZW">Simbabwe</territory>
-               </territories>
-               <variants>
-                       <variant type="1901" draft="unconfirmed">alte deutsche Rechtschreibung</variant>
-                       <variant type="1996" draft="unconfirmed">neue deutsche Rechtschreibung</variant>
-                       <variant type="NEDIS" draft="provisional">Natisone-Dialekt</variant>
-                       <variant type="POLYTONI" draft="provisional">Polytonisch</variant>
-                       <variant type="POSIX">Posix</variant>
-                       <variant type="REVISED">Revidiert</variant>
-                       <variant type="ROZAJ" draft="provisional">Resianisch</variant>
-                       <variant type="SAAHO" draft="provisional">Saho</variant>
-               </variants>
-               <keys>
-                       <key type="calendar">Kalender</key>
-                       <key type="collation">Sortierung</key>
-                       <key type="currency">Währung</key>
-               </keys>
-               <types>
-                       <type type="big5han" key="collation" draft="provisional">Traditionelles Chinesisch (Big5)</type>
-                       <type type="buddhist" key="calendar">Buddhistischer Kalender</type>
-                       <type type="chinese" key="calendar">Chinesischer Kalender</type>
-                       <type type="direct" key="collation">Direkte Sortierregeln</type>
-                       <type type="gb2312han" key="collation" draft="provisional">Vereinfachtes Chinesisch (GB2312)</type>
-                       <type type="gregorian" key="calendar">Gregorianischer Kalender</type>
-                       <type type="hebrew" key="calendar">Hebräischer Kalender</type>
-                       <type type="islamic" key="calendar">Islamischer Kalender</type>
-                       <type type="islamic-civil" key="calendar">Bürgerlicher islamischer Kalender</type>
-                       <type type="japanese" key="calendar">Japanischer Kalender</type>
-                       <type type="phonebook" key="collation">Telefonbuch-Sortierregeln</type>
-                       <type type="pinyin" key="collation">Pinyin-Sortierregeln</type>
-                       <type type="stroke" key="collation">Strichfolge</type>
-                       <type type="traditional" key="collation">Traditionelle Sortierregeln</type>
-               </types>
-               <measurementSystemNames>
-                       <measurementSystemName type="US" references="RP11" draft="provisional">US-amerikanisch</measurementSystemName>
-                       <measurementSystemName type="metric" references="RP10" draft="unconfirmed">metrisch</measurementSystemName>
-               </measurementSystemNames>
-       </localeDisplayNames>
-       <characters>
-               <exemplarCharacters>[a ä b-o ö p-s ß t u ü v-z]</exemplarCharacters>
-       </characters>
-       <delimiters>
-               <quotationStart>‚</quotationStart>
-               <quotationEnd>‘</quotationEnd>
-               <alternateQuotationStart>„</alternateQuotationStart>
-               <alternateQuotationEnd>“</alternateQuotationEnd>
-       </delimiters>
-       <dates>
-               <localizedPatternChars>GjMtkHmsSEDFwWahKzJeugAZvcL</localizedPatternChars>
-               <calendars>
-                       <calendar type="gregorian">
-                               <months>
-                                       <monthContext type="format">
-                                               <monthWidth type="abbreviated">
-                                                       <month type="1">Jan</month>
-                                                       <month type="2">Feb</month>
-                                                       <month type="3">Mrz</month>
-                                                       <month type="3" alt="proposed-u45-1" draft="provisional">Mär</month>
-                                                       <month type="4">Apr</month>
-                                                       <month type="5">Mai</month>
-                                                       <month type="6">Jun</month>
-                                                       <month type="7">Jul</month>
-                                                       <month type="8">Aug</month>
-                                                       <month type="9">Sep</month>
-                                                       <month type="10">Okt</month>
-                                                       <month type="11">Nov</month>
-                                                       <month type="12">Dez</month>
-                                               </monthWidth>
-                                               <monthWidth type="wide">
-                                                       <month type="1">Januar</month>
-                                                       <month type="2">Februar</month>
-                                                       <month type="3">März</month>
-                                                       <month type="4">April</month>
-                                                       <month type="5">Mai</month>
-                                                       <month type="6">Juni</month>
-                                                       <month type="7">Juli</month>
-                                                       <month type="8">August</month>
-                                                       <month type="9">September</month>
-                                                       <month type="10">Oktober</month>
-                                                       <month type="11">November</month>
-                                                       <month type="12">Dezember</month>
-                                               </monthWidth>
-                                       </monthContext>
-                                       <monthContext type="stand-alone">
-                                               <monthWidth type="narrow">
-                                                       <month type="1">J</month>
-                                                       <month type="2">F</month>
-                                                       <month type="3">M</month>
-                                                       <month type="4">A</month>
-                                                       <month type="5">M</month>
-                                                       <month type="6">J</month>
-                                                       <month type="7">J</month>
-                                                       <month type="8">A</month>
-                                                       <month type="9">S</month>
-                                                       <month type="10">O</month>
-                                                       <month type="11">N</month>
-                                                       <month type="12">D</month>
-                                               </monthWidth>
-                                       </monthContext>
-                               </months>
-                               <days>
-                                       <dayContext type="format">
-                                               <dayWidth type="abbreviated">
-                                                       <day type="sun">So</day>
-                                                       <day type="mon">Mo</day>
-                                                       <day type="tue">Di</day>
-                                                       <day type="wed">Mi</day>
-                                                       <day type="thu">Do</day>
-                                                       <day type="fri">Fr</day>
-                                                       <day type="sat">Sa</day>
-                                               </dayWidth>
-                                               <dayWidth type="wide">
-                                                       <day type="sun">Sonntag</day>
-                                                       <day type="mon">Montag</day>
-                                                       <day type="tue">Dienstag</day>
-                                                       <day type="wed">Mittwoch</day>
-                                                       <day type="thu">Donnerstag</day>
-                                                       <day type="fri">Freitag</day>
-                                                       <day type="sat">Samstag</day>
-                                               </dayWidth>
-                                       </dayContext>
-                                       <dayContext type="stand-alone">
-                                               <dayWidth type="narrow">
-                                                       <day type="sun">S</day>
-                                                       <day type="mon">M</day>
-                                                       <day type="tue">D</day>
-                                                       <day type="wed">M</day>
-                                                       <day type="thu">D</day>
-                                                       <day type="fri">F</day>
-                                                       <day type="sat">S</day>
-                                               </dayWidth>
-                                       </dayContext>
-                               </days>
-                               <quarters>
-                                       <quarterContext type="format">
-                                               <quarterWidth type="wide">
-                                                       <quarter type="1">1. Quartal</quarter>
-                                                       <quarter type="2">2. Quartal</quarter>
-                                                       <quarter type="3">3. Quartal</quarter>
-                                                       <quarter type="4">4. Quartal</quarter>
-                                               </quarterWidth>
-                                       </quarterContext>
-                               </quarters>
-                               <am>vorm.</am>
-                               <pm>nachm.</pm>
-                               <eras>
-                                       <eraNames>
-                                               <era type="0">v. Chr.</era>
-                                               <era type="1">n. Chr.</era>
-                                       </eraNames>
-                                       <eraAbbr>
-                                               <era type="0">v. Chr.</era>
-                                               <era type="1">n. Chr.</era>
-                                       </eraAbbr>
-                               </eras>
-                               <dateFormats>
-                                       <dateFormatLength type="full">
-                                               <dateFormat>
-                                                       <pattern>EEEE, d. MMMM yyyy</pattern>
-                                               </dateFormat>
-                                       </dateFormatLength>
-                                       <dateFormatLength type="long">
-                                               <dateFormat>
-                                                       <pattern>d. MMMM yyyy</pattern>
-                                               </dateFormat>
-                                       </dateFormatLength>
-                                       <dateFormatLength type="medium">
-                                               <dateFormat>
-                                                       <pattern>dd.MM.yyyy</pattern>
-                                               </dateFormat>
-                                       </dateFormatLength>
-                                       <dateFormatLength type="short">
-                                               <dateFormat>
-                                                       <pattern>dd.MM.yy</pattern>
-                                               </dateFormat>
-                                       </dateFormatLength>
-                               </dateFormats>
-                               <timeFormats>
-                                       <timeFormatLength type="full">
-                                               <timeFormat>
-                                                       <pattern>H:mm' Uhr 'z</pattern>
-                                                       <pattern alt="proposed-u45-1" draft="provisional">H:mm' Uhr 'v</pattern>
-                                               </timeFormat>
-                                       </timeFormatLength>
-                               </timeFormats>
-                               <dateTimeFormats>
-                                       <availableFormats>
-                                               <dateFormatItem id="HHmm" draft="provisional">HH:mm</dateFormatItem>
-                                               <dateFormatItem id="HHmmss" draft="provisional">HH:mm:ss</dateFormatItem>
-                                               <dateFormatItem id="MMMMd" draft="provisional">d. MMMM</dateFormatItem>
-                                               <dateFormatItem id="MMdd" draft="provisional">dd.MM</dateFormatItem>
-                                               <dateFormatItem id="hhmm" draft="provisional">hh:mm a</dateFormatItem>
-                                               <dateFormatItem id="hhmmss" draft="provisional">hh:mm:ss a</dateFormatItem>
-                                               <dateFormatItem id="yyMM" draft="provisional">MM.yy</dateFormatItem>
-                                               <dateFormatItem id="yyQQQQ" draft="provisional">QQQQ yy</dateFormatItem>
-                                               <dateFormatItem id="yyyyMMMM" draft="provisional">MMMM yyyy</dateFormatItem>
-                                       </availableFormats>
-                               </dateTimeFormats>
-                               <fields>
-                                       <field type="era">
-                                               <displayName draft="provisional">Epoche</displayName>
-                                       </field>
-                                       <field type="year">
-                                               <displayName draft="provisional">Jahr</displayName>
-                                       </field>
-                                       <field type="month">
-                                               <displayName draft="provisional">Monat</displayName>
-                                       </field>
-                                       <field type="week">
-                                               <displayName draft="provisional">Woche</displayName>
-                                       </field>
-                                       <field type="day">
-                                               <displayName draft="provisional">Tag</displayName>
-                                       </field>
-                                       <field type="weekday">
-                                               <displayName draft="provisional">Wochentag</displayName>
-                                       </field>
-                                       <field type="dayperiod">
-                                               <displayName draft="provisional">Tageshälfte</displayName>
-                                       </field>
-                                       <field type="hour">
-                                               <displayName draft="provisional">Stunde</displayName>
-                                       </field>
-                                       <field type="second">
-                                               <displayName draft="provisional">Sekunde</displayName>
-                                       </field>
-                               </fields>
-                       </calendar>
-               </calendars>
-               <timeZoneNames>
-                       <zone type="Antarctica/South_Pole">
-                               <exemplarCity>Südpol</exemplarCity>
-                       </zone>
-                       <zone type="Antarctica/Vostok">
-                               <exemplarCity>Wostok</exemplarCity>
-                       </zone>
-                       <zone type="America/St_Johns">
-                               <exemplarCity>St. John's</exemplarCity>
-                       </zone>
-                       <!-- Chile -->
-                       <zone type="Pacific/Easter">
-                               <exemplarCity>Osterinsel</exemplarCity>
-                       </zone>
-                       <zone type="Europe/Berlin">
-                               <long>
-                                       <standard>Mitteleuropäische Zeit</standard>
-                                       <daylight>Mitteleuropäische Sommerzeit</daylight>
-                               </long>
-                               <short>
-                                       <standard>MEZ</standard>
-                                       <daylight>MESZ</daylight>
-                               </short>
-                               <exemplarCity>Berlin</exemplarCity>
-                       </zone>
-                       <!-- Spain -->
-                       <zone type="Atlantic/Canary">
-                               <exemplarCity>Kanaren</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Ulaanbaatar">
-                               <exemplarCity>Ulan-Bator</exemplarCity>
-                       </zone>
-                       <zone type="America/Mexico_City">
-                               <exemplarCity>Mexiko-Stadt</exemplarCity>
-                       </zone>
-                       <zone type="Atlantic/Azores">
-                               <exemplarCity>Azoren</exemplarCity>
-                       </zone>
-                       <zone type="Europe/Lisbon">
-                               <exemplarCity>Lissabon</exemplarCity>
-                       </zone>
-                       <zone type="Europe/Moscow">
-                               <exemplarCity>Moskau</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Yekaterinburg">
-                               <exemplarCity>Jekaterinburg</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Novosibirsk">
-                               <exemplarCity>Nowosibirsk</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Krasnoyarsk">
-                               <exemplarCity>Krasnojarsk</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Yakutsk">
-                               <exemplarCity>Jakutsk</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Vladivostok">
-                               <exemplarCity>Wladiwostok</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Sakhalin">
-                               <exemplarCity>Sachalin</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Kamchatka">
-                               <exemplarCity>Kamtschatka</exemplarCity>
-                       </zone>
-                       <!-- Ukraine -->
-                       <zone type="Europe/Uzhgorod">
-                               <exemplarCity>Uschgorod</exemplarCity>
-                       </zone>
-                       <zone type="Europe/Kiev">
-                               <exemplarCity>Kiew</exemplarCity>
-                       </zone>
-                       <zone type="Europe/Zaporozhye">
-                               <exemplarCity>Saporischja</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Tashkent">
-                               <exemplarCity>Taschkent</exemplarCity>
-                       </zone>
-               </timeZoneNames>
-       </dates>
-       <numbers>
-               <symbols>
-                       <decimal>,</decimal>
-                       <group>.</group>
-               </symbols>
-               <percentFormats>
-                       <percentFormatLength>
-                               <percentFormat>
-                                       <pattern draft="provisional">#,##0 %</pattern>
-                               </percentFormat>
-                       </percentFormatLength>
-               </percentFormats>
-               <currencies>
-                       <currency type="ADP">
-                               <displayName>Andorranische Pesete</displayName>
-                       </currency>
-                       <currency type="AED">
-                               <displayName>UAE Dirham</displayName>
-                       </currency>
-                       <currency type="AFA">
-                               <displayName>Afghani (1927-2002)</displayName>
-                       </currency>
-                       <currency type="AFN">
-                               <displayName>Afghani</displayName>
-                               <symbol>Af</symbol>
-                       </currency>
-                       <currency type="ALL">
-                               <displayName>Lek</displayName>
-                       </currency>
-                       <currency type="AMD">
-                               <displayName>Dram</displayName>
-                       </currency>
-                       <currency type="ANG">
-                               <displayName>Niederl. Antillen Gulden</displayName>
-                       </currency>
-                       <currency type="AOA">
-                               <displayName>Kwanza</displayName>
-                       </currency>
-                       <currency type="AOK">
-                               <displayName>Angolanischer Kwanza (1977-1990)</displayName>
-                       </currency>
-                       <currency type="AON">
-                               <displayName>Neuer Kwanza</displayName>
-                       </currency>
-                       <currency type="AOR">
-                               <displayName>Kwanza Reajustado</displayName>
-                       </currency>
-                       <currency type="ARA">
-                               <displayName>Argentinischer Austral</displayName>
-                       </currency>
-                       <currency type="ARP">
-                               <displayName>Argentinischer Peso (1983-1985)</displayName>
-                       </currency>
-                       <currency type="ARS">
-                               <displayName>Argentinischer Peso</displayName>
-                       </currency>
-                       <currency type="ATS">
-                               <displayName>Österreichischer Schilling</displayName>
-                               <symbol>öS</symbol>
-                       </currency>
-                       <currency type="AUD">
-                               <displayName>Australischer Dollar</displayName>
-                       </currency>
-                       <currency type="AWG">
-                               <displayName>Aruba Florin</displayName>
-                       </currency>
-                       <currency type="AZM">
-                               <displayName>Aserbeidschan Manat</displayName>
-                       </currency>
-                       <currency type="BAD">
-                               <displayName>Bosnien und Herzegowina Dinar</displayName>
-                       </currency>
-                       <currency type="BAM">
-                               <displayName>Konvertierbare Mark</displayName>
-                       </currency>
-                       <currency type="BBD">
-                               <displayName>Barbados-Dollar</displayName>
-                       </currency>
-                       <currency type="BDT">
-                               <displayName>Taka</displayName>
-                       </currency>
-                       <currency type="BEC">
-                               <displayName>Belgischer Franc (konvertibel)</displayName>
-                       </currency>
-                       <currency type="BEF">
-                               <displayName>Belgischer Franc</displayName>
-                       </currency>
-                       <currency type="BGL">
-                               <displayName>Lew (1962-1999)</displayName>
-                               <displayName references="RP10" alt="proposed-u212-2" draft="provisional">Bulgarischer Lew (1962-1999)</displayName>
-                       </currency>
-                       <currency type="BGN">
-                               <displayName>Lew</displayName>
-                               <displayName references="RP10" alt="proposed-u212-2" draft="unconfirmed">Bulgarischer Lew</displayName>
-                               <displayName alt="proposed-u45-1" draft="provisional">Neuer Bulgarischer Lew</displayName>
-                       </currency>
-                       <currency type="BHD">
-                               <displayName>Bahrain-Dinar</displayName>
-                       </currency>
-                       <currency type="BIF">
-                               <displayName>Burundi-Franc</displayName>
-                       </currency>
-                       <currency type="BMD">
-                               <displayName>Bermuda-Dollar</displayName>
-                       </currency>
-                       <currency type="BND">
-                               <displayName>Brunei-Dollar</displayName>
-                       </currency>
-                       <currency type="BOB">
-                               <displayName>Boliviano</displayName>
-                       </currency>
-                       <currency type="BOP">
-                               <displayName>Bolivianischer Peso</displayName>
-                       </currency>
-                       <currency type="BOV">
-                               <displayName>Mvdol</displayName>
-                       </currency>
-                       <currency type="BRB">
-                               <displayName>Brasilianischer Cruzeiro Novo (1967-1986)</displayName>
-                       </currency>
-                       <currency type="BRC">
-                               <displayName>Brasilianischer Cruzado</displayName>
-                       </currency>
-                       <currency type="BRE">
-                               <displayName>Brasilianischer Cruzeiro (1990-1993)</displayName>
-                       </currency>
-                       <currency type="BRL">
-                               <displayName>Real</displayName>
-                       </currency>
-                       <currency type="BRN">
-                               <displayName>Brasilianischer Cruzado Novo</displayName>
-                       </currency>
-                       <currency type="BRR">
-                               <displayName>Brasilianischer Cruzeiro</displayName>
-                       </currency>
-                       <currency type="BSD">
-                               <displayName>Bahama-Dollar</displayName>
-                       </currency>
-                       <currency type="BTN">
-                               <displayName>Ngultrum</displayName>
-                       </currency>
-                       <currency type="BUK">
-                               <displayName>Birmanischer Kyat</displayName>
-                       </currency>
-                       <currency type="BWP">
-                               <displayName>Pula</displayName>
-                       </currency>
-                       <currency type="BYB">
-                               <displayName>Belarus Rubel (alt)</displayName>
-                       </currency>
-                       <currency type="BYR">
-                               <displayName>Belarus Rubel (neu)</displayName>
-                       </currency>
-                       <currency type="BZD">
-                               <displayName>Belize-Dollar</displayName>
-                       </currency>
-                       <currency type="CAD">
-                               <displayName>Kanadischer Dollar</displayName>
-                       </currency>
-                       <currency type="CDF">
-                               <displayName>Franc congolais</displayName>
-                       </currency>
-                       <currency type="CHE">
-                               <displayName draft="provisional">WIR Euro</displayName>
-                       </currency>
-                       <currency type="CHF">
-                               <displayName>Schweizer Franken</displayName>
-                               <symbol>SFr.</symbol>
-                       </currency>
-                       <currency type="CHW">
-                               <displayName draft="provisional">WIR Franken</displayName>
-                       </currency>
-                       <currency type="CLF">
-                               <displayName>Unidades de Fomento</displayName>
-                       </currency>
-                       <currency type="CLP">
-                               <displayName>Chilenischer Peso</displayName>
-                       </currency>
-                       <currency type="CNY">
-                               <displayName>Renminbi Yuan</displayName>
-                       </currency>
-                       <currency type="COP">
-                               <displayName>Kolumbianischer Peso</displayName>
-                       </currency>
-                       <currency type="COU">
-                               <displayName draft="provisional">Unidad de Valor Real</displayName>
-                       </currency>
-                       <currency type="CRC">
-                               <displayName>Costa Rica Colon</displayName>
-                       </currency>
-                       <currency type="CSD">
-                               <displayName draft="provisional">Serbischer Dinar</displayName>
-                       </currency>
-                       <currency type="CSK">
-                               <displayName draft="provisional">Tschechoslowakische Krone</displayName>
-                       </currency>
-                       <currency type="CUP">
-                               <displayName>Kubanischer Peso</displayName>
-                       </currency>
-                       <currency type="CVE">
-                               <displayName>Kap Verde Escudo</displayName>
-                       </currency>
-                       <currency type="CYP">
-                               <displayName>Zypern Pfund</displayName>
-                       </currency>
-                       <currency type="CZK">
-                               <displayName>Tschechische Krone</displayName>
-                       </currency>
-                       <currency type="DDM">
-                               <displayName draft="provisional">Mark der DDR</displayName>
-                       </currency>
-                       <currency type="DEM">
-                               <displayName>Deutsche Mark</displayName>
-                               <symbol>DM</symbol>
-                       </currency>
-                       <currency type="DJF">
-                               <displayName>Dschibuti-Franc</displayName>
-                       </currency>
-                       <currency type="DKK">
-                               <displayName>Dänische Krone</displayName>
-                       </currency>
-                       <currency type="DOP">
-                               <displayName>Dominikanischer Peso</displayName>
-                       </currency>
-                       <currency type="DZD">
-                               <displayName>Algerischer Dinar</displayName>
-                       </currency>
-                       <currency type="ECS">
-                               <displayName>Ecuadorianischer Sucre</displayName>
-                       </currency>
-                       <currency type="ECV">
-                               <displayName>Verrechnungseinheit für EC</displayName>
-                       </currency>
-                       <currency type="EEK">
-                               <displayName>Estnische Krone</displayName>
-                       </currency>
-                       <currency type="EGP">
-                               <displayName>Ägyptisches Pfund</displayName>
-                       </currency>
-                       <currency type="EQE">
-                               <displayName draft="provisional">Ekwele</displayName>
-                       </currency>
-                       <currency type="ERN">
-                               <displayName>Nakfa</displayName>
-                       </currency>
-                       <currency type="ESA">
-                               <displayName references="RP10" draft="provisional">Spanische Peseta (A-Konten)</displayName>
-                       </currency>
-                       <currency type="ESB">
-                               <displayName references="RP10" draft="provisional">Spanische Peseta (konvertibel)</displayName>
-                       </currency>
-                       <currency type="ESP">
-                               <displayName>Spanische Pesete</displayName>
-                       </currency>
-                       <currency type="ETB">
-                               <displayName>Birr</displayName>
-                       </currency>
-                       <currency type="EUR">
-                               <displayName>Euro</displayName>
-                       </currency>
-                       <currency type="FIM">
-                               <displayName>Finnische Mark</displayName>
-                       </currency>
-                       <currency type="FJD">
-                               <displayName>Fidschi Dollar</displayName>
-                       </currency>
-                       <currency type="FKP">
-                               <displayName>Falkland Pfund</displayName>
-                       </currency>
-                       <currency type="FRF">
-                               <displayName>Französischer Franc</displayName>
-                               <symbol>FF</symbol>
-                       </currency>
-                       <currency type="GBP">
-                               <displayName>Pfund Sterling</displayName>
-                       </currency>
-                       <currency type="GEK">
-                               <displayName>Georgischer Kupon Larit</displayName>
-                       </currency>
-                       <currency type="GEL">
-                               <displayName>Georgischer Lari</displayName>
-                       </currency>
-                       <currency type="GHC">
-                               <displayName>Cedi</displayName>
-                       </currency>
-                       <currency type="GIP">
-                               <displayName>Gibraltar Pfund</displayName>
-                       </currency>
-                       <currency type="GMD">
-                               <displayName>Dalasi</displayName>
-                       </currency>
-                       <currency type="GNF">
-                               <displayName>Guinea Franc</displayName>
-                       </currency>
-                       <currency type="GNS">
-                               <displayName references="RP10" draft="provisional">Guineischer Syli</displayName>
-                       </currency>
-                       <currency type="GQE">
-                               <displayName>Äquatorialguinea Ekwele Guineana</displayName>
-                       </currency>
-                       <currency type="GRD">
-                               <displayName>Griechische Drachme</displayName>
-                       </currency>
-                       <currency type="GTQ">
-                               <displayName>Quetzal</displayName>
-                       </currency>
-                       <currency type="GWE">
-                               <displayName>Portugiesisch Guinea Escudo</displayName>
-                       </currency>
-                       <currency type="GWP">
-                               <displayName>Guinea Bissau Peso</displayName>
-                       </currency>
-                       <currency type="GYD">
-                               <displayName>Guyana Dollar</displayName>
-                       </currency>
-                       <currency type="HKD">
-                               <displayName>Hongkong Dollar</displayName>
-                       </currency>
-                       <currency type="HNL">
-                               <displayName>Lempira</displayName>
-                       </currency>
-                       <currency type="HRD">
-                               <displayName>Kroatischer Dinar</displayName>
-                       </currency>
-                       <currency type="HRK">
-                               <displayName>Kuna</displayName>
-                       </currency>
-                       <currency type="HTG">
-                               <displayName>Gourde</displayName>
-                       </currency>
-                       <currency type="HUF">
-                               <displayName>Forint</displayName>
-                       </currency>
-                       <currency type="IDR">
-                               <displayName>Rupiah</displayName>
-                       </currency>
-                       <currency type="IEP">
-                               <displayName>Irisches Pfund</displayName>
-                       </currency>
-                       <currency type="ILP">
-                               <displayName>Israelisches Pfund</displayName>
-                       </currency>
-                       <currency type="ILS">
-                               <displayName>Schekel</displayName>
-                       </currency>
-                       <currency type="INR">
-                               <displayName>Indische Rupie</displayName>
-                       </currency>
-                       <currency type="IQD">
-                               <displayName>Irak Dinar</displayName>
-                       </currency>
-                       <currency type="IRR">
-                               <displayName>Rial</displayName>
-                       </currency>
-                       <currency type="ISK">
-                               <displayName>Isländische Krone</displayName>
-                       </currency>
-                       <currency type="ITL">
-                               <displayName>Italienische Lire</displayName>
-                               <displayName alt="proposed-u45-1" draft="provisional">Italienische Lira</displayName>
-                       </currency>
-                       <currency type="JMD">
-                               <displayName>Jamaika Dollar</displayName>
-                       </currency>
-                       <currency type="JOD">
-                               <displayName>Jordanischer Dinar</displayName>
-                       </currency>
-                       <currency type="JPY">
-                               <displayName>Yen</displayName>
-                       </currency>
-                       <currency type="KES">
-                               <displayName>Kenia Schilling</displayName>
-                       </currency>
-                       <currency type="KGS">
-                               <displayName>Som</displayName>
-                               <symbol>som</symbol>
-                       </currency>
-                       <currency type="KHR">
-                               <displayName>Riel</displayName>
-                       </currency>
-                       <currency type="KMF">
-                               <displayName>Komoren Franc</displayName>
-                       </currency>
-                       <currency type="KPW">
-                               <displayName>Nordkoreanischer Won</displayName>
-                       </currency>
-                       <currency type="KRW">
-                               <displayName>Südkoreanischer Won</displayName>
-                       </currency>
-                       <currency type="KWD">
-                               <displayName>Kuwait Dinar</displayName>
-                       </currency>
-                       <currency type="KYD">
-                               <displayName>Kaiman-Dollar</displayName>
-                       </currency>
-                       <currency type="KZT">
-                               <displayName>Tenge</displayName>
-                       </currency>
-                       <currency type="LAK">
-                               <displayName>Kip</displayName>
-                       </currency>
-                       <currency type="LBP">
-                               <displayName>Libanesisches Pfund</displayName>
-                       </currency>
-                       <currency type="LKR">
-                               <displayName>Sri Lanka Rupie</displayName>
-                       </currency>
-                       <currency type="LRD">
-                               <displayName>Liberianischer Dollar</displayName>
-                       </currency>
-                       <currency type="LSL">
-                               <displayName>Loti</displayName>
-                       </currency>
-                       <currency type="LSM">
-                               <displayName draft="provisional">Maloti</displayName>
-                       </currency>
-                       <currency type="LTL">
-                               <displayName>Litauischer Litas</displayName>
-                       </currency>
-                       <currency type="LTT">
-                               <displayName>Litauischer Talonas</displayName>
-                       </currency>
-                       <currency type="LUC">
-                               <displayName draft="provisional">Luxemburgischer Franc (konvertibel)</displayName>
-                       </currency>
-                       <currency type="LUF">
-                               <displayName>Luxemburgischer Franc</displayName>
-                       </currency>
-                       <currency type="LUL">
-                               <displayName draft="provisional">Luxemburgischer Finanz-Franc</displayName>
-                       </currency>
-                       <currency type="LVL">
-                               <displayName>Lettischer Lats</displayName>
-                       </currency>
-                       <currency type="LVR">
-                               <displayName>Lettischer Rubel</displayName>
-                       </currency>
-                       <currency type="LYD">
-                               <displayName>Libyscher Dinar</displayName>
-                       </currency>
-                       <currency type="MAD">
-                               <displayName>Marokkanischer Dirham</displayName>
-                       </currency>
-                       <currency type="MAF">
-                               <displayName>Marokkanischer Franc</displayName>
-                       </currency>
-                       <currency type="MDL">
-                               <displayName>Moldau Leu</displayName>
-                       </currency>
-                       <currency type="MGA">
-                               <displayName>Madagaskar Ariary</displayName>
-                       </currency>
-                       <currency type="MGF">
-                               <displayName>Madagaskar Franc</displayName>
-                       </currency>
-                       <currency type="MKD">
-                               <displayName>Denar</displayName>
-                       </currency>
-                       <currency type="MLF">
-                               <displayName draft="provisional">Malischer Franc</displayName>
-                       </currency>
-                       <currency type="MMK">
-                               <displayName>Kyat</displayName>
-                       </currency>
-                       <currency type="MNT">
-                               <displayName>Tugrik</displayName>
-                       </currency>
-                       <currency type="MOP">
-                               <displayName>Pataca</displayName>
-                       </currency>
-                       <currency type="MRO">
-                               <displayName>Ouguiya</displayName>
-                       </currency>
-                       <currency type="MTL">
-                               <displayName>Maltesische Lira</displayName>
-                       </currency>
-                       <currency type="MTP">
-                               <displayName>Maltesisches Pfund</displayName>
-                       </currency>
-                       <currency type="MUR">
-                               <displayName>Mauritius Rupie</displayName>
-                       </currency>
-                       <currency type="MVR">
-                               <displayName>Rufiyaa</displayName>
-                       </currency>
-                       <currency type="MWK">
-                               <displayName>Malawi Kwacha</displayName>
-                       </currency>
-                       <currency type="MXN">
-                               <displayName>Mexikanischer Peso</displayName>
-                       </currency>
-                       <currency type="MXP">
-                               <displayName>Mexikanischer Silber-Peso (1861-1992)</displayName>
-                       </currency>
-                       <currency type="MXV">
-                               <displayName>Mexican Unidad de Inversion (UDI)</displayName>
-                       </currency>
-                       <currency type="MYR">
-                               <displayName>Malaysischer Ringgit</displayName>
-                       </currency>
-                       <currency type="MZE">
-                               <displayName draft="provisional">Mosambikanischer Escudo</displayName>
-                       </currency>
-                       <currency type="MZM">
-                               <displayName>Metical</displayName>
-                       </currency>
-                       <currency type="NAD">
-                               <displayName>Namibia Dollar</displayName>
-                       </currency>
-                       <currency type="NGN">
-                               <displayName>Naira</displayName>
-                       </currency>
-                       <currency type="NIC">
-                               <displayName>Cordoba</displayName>
-                       </currency>
-                       <currency type="NIO">
-                               <displayName>Gold-Cordoba</displayName>
-                       </currency>
-                       <currency type="NLG">
-                               <displayName>Holländischer Gulden</displayName>
-                       </currency>
-                       <currency type="NOK">
-                               <displayName>Norwegische Krone</displayName>
-                       </currency>
-                       <currency type="NPR">
-                               <displayName>Nepalesische Rupie</displayName>
-                       </currency>
-                       <currency type="NZD">
-                               <displayName>Neuseeland Dollar</displayName>
-                       </currency>
-                       <currency type="OMR">
-                               <displayName>Rial Omani</displayName>
-                       </currency>
-                       <currency type="PAB">
-                               <displayName>Balboa</displayName>
-                       </currency>
-                       <currency type="PEI">
-                               <displayName>Peruanischer Inti</displayName>
-                       </currency>
-                       <currency type="PEN">
-                               <displayName>Neuer Sol</displayName>
-                       </currency>
-                       <currency type="PES">
-                               <displayName>Sol</displayName>
-                       </currency>
-                       <currency type="PGK">
-                               <displayName>Kina</displayName>
-                       </currency>
-                       <currency type="PHP">
-                               <displayName>Philippinischer Peso</displayName>
-                       </currency>
-                       <currency type="PKR">
-                               <displayName>Pakistanische Rupie</displayName>
-                       </currency>
-                       <currency type="PLN">
-                               <displayName>Zloty</displayName>
-                       </currency>
-                       <currency type="PLZ">
-                               <displayName>Zloty (1950-1995)</displayName>
-                       </currency>
-                       <currency type="PTE">
-                               <displayName>Portugiesischer Escudo</displayName>
-                       </currency>
-                       <currency type="PYG">
-                               <displayName>Guarani</displayName>
-                       </currency>
-                       <currency type="QAR">
-                               <displayName>Katar Riyal</displayName>
-                       </currency>
-                       <currency type="RHD">
-                               <displayName draft="provisional">Rhodesischer Dollar</displayName>
-                       </currency>
-                       <currency type="ROL">
-                               <displayName>Leu</displayName>
-                       </currency>
-                       <currency type="RON">
-                               <displayName references="RP10" draft="provisional">Neuer Rumänischer Leu</displayName>
-                       </currency>
-                       <currency type="RUB">
-                               <displayName>Russischer Rubel (neu)</displayName>
-                       </currency>
-                       <currency type="RUR">
-                               <displayName>Russischer Rubel (alt)</displayName>
-                       </currency>
-                       <currency type="RWF">
-                               <displayName>Ruanda Franc</displayName>
-                       </currency>
-                       <currency type="SAR">
-                               <displayName>Saudi Riyal</displayName>
-                       </currency>
-                       <currency type="SBD">
-                               <displayName>Salomonen Dollar</displayName>
-                       </currency>
-                       <currency type="SCR">
-                               <displayName>Seychellen Rupie</displayName>
-                       </currency>
-                       <currency type="SDD">
-                               <displayName>Sudanesischer Dinar</displayName>
-                       </currency>
-                       <currency type="SDP">
-                               <displayName>Sudanesisches Pfund</displayName>
-                       </currency>
-                       <currency type="SEK">
-                               <displayName>Schwedische Krone</displayName>
-                       </currency>
-                       <currency type="SGD">
-                               <displayName>Singapur Dollar</displayName>
-                       </currency>
-                       <currency type="SHP">
-                               <displayName>St. Helena Pfund</displayName>
-                       </currency>
-                       <currency type="SIT">
-                               <displayName>Tolar</displayName>
-                       </currency>
-                       <currency type="SKK">
-                               <displayName>Slowakische Krone</displayName>
-                       </currency>
-                       <currency type="SLL">
-                               <displayName>Leone</displayName>
-                       </currency>
-                       <currency type="SOS">
-                               <displayName>Somalia Schilling</displayName>
-                       </currency>
-                       <currency type="SRD">
-                               <displayName references="RP10" draft="provisional">Surinamischer Dollar</displayName>
-                       </currency>
-                       <currency type="SRG">
-                               <displayName>Suriname Gulden</displayName>
-                       </currency>
-                       <currency type="STD">
-                               <displayName>Dobra</displayName>
-                       </currency>
-                       <currency type="SUR">
-                               <displayName>Sowjetischer Rubel</displayName>
-                       </currency>
-                       <currency type="SVC">
-                               <displayName>El Salvador Colon</displayName>
-                       </currency>
-                       <currency type="SYP">
-                               <displayName>Syrisches Pfund</displayName>
-                       </currency>
-                       <currency type="SZL">
-                               <displayName>Lilangeni</displayName>
-                       </currency>
-                       <currency type="THB">
-                               <displayName>Baht</displayName>
-                       </currency>
-                       <currency type="TJR">
-                               <displayName>Tadschikistan Rubel</displayName>
-                       </currency>
-                       <currency type="TJS">
-                               <displayName>Tadschikistan Somoni</displayName>
-                       </currency>
-                       <currency type="TMM">
-                               <displayName>Turkmenistan-Manat</displayName>
-                       </currency>
-                       <currency type="TND">
-                               <displayName>Tunesischer Dinar</displayName>
-                       </currency>
-                       <currency type="TOP">
-                               <displayName>Paʻanga</displayName>
-                       </currency>
-                       <currency type="TPE">
-                               <displayName>Timor Escudo</displayName>
-                       </currency>
-                       <currency type="TRL">
-                               <displayName>Türkische Lira</displayName>
-                       </currency>
-                       <currency type="TRY">
-                               <displayName>Neue Türkische Lira</displayName>
-                       </currency>
-                       <currency type="TTD">
-                               <displayName>Trinidad und Tobago Dollar</displayName>
-                       </currency>
-                       <currency type="TWD">
-                               <displayName>Neuer Taiwan Dollar</displayName>
-                       </currency>
-                       <currency type="TZS">
-                               <displayName>Tansania Schilling</displayName>
-                       </currency>
-                       <currency type="UAH">
-                               <displayName>Hryvnia</displayName>
-                       </currency>
-                       <currency type="UAK">
-                               <displayName>Ukrainischer Karbovanetz</displayName>
-                       </currency>
-                       <currency type="UGS">
-                               <displayName>Uganda Schilling (1966-1987)</displayName>
-                       </currency>
-                       <currency type="UGX">
-                               <displayName>Uganda Schilling</displayName>
-                       </currency>
-                       <currency type="USD">
-                               <displayName>US Dollar</displayName>
-                       </currency>
-                       <currency type="USN">
-                               <displayName>US Dollar (Nächster Tag)</displayName>
-                       </currency>
-                       <currency type="USS">
-                               <displayName>US Dollar (Gleicher Tag)</displayName>
-                       </currency>
-                       <currency type="UYP">
-                               <displayName references="RP10" draft="provisional">Uruguayischer Neuer Peso (1975-1993)</displayName>
-                       </currency>
-                       <currency type="UYU">
-                               <displayName>Uruguayischer Peso</displayName>
-                       </currency>
-                       <currency type="UZS">
-                               <displayName>Usbekistan Sum</displayName>
-                       </currency>
-                       <currency type="VEB">
-                               <displayName>Bolivar</displayName>
-                       </currency>
-                       <currency type="VND">
-                               <displayName>Dong</displayName>
-                       </currency>
-                       <currency type="VUV">
-                               <displayName>Vatu</displayName>
-                       </currency>
-                       <currency type="WST">
-                               <displayName>Tala</displayName>
-                       </currency>
-                       <currency type="XAF">
-                               <displayName>CFA Franc (Äquatorial)</displayName>
-                       </currency>
-                       <currency type="XAG">
-                               <displayName draft="provisional">Silber</displayName>
-                       </currency>
-                       <currency type="XAU">
-                               <displayName>Gold</displayName>
-                       </currency>
-                       <currency type="XBA">
-                               <displayName>Europäische Rechnungseinheit</displayName>
-                       </currency>
-                       <currency type="XBB">
-                               <displayName draft="provisional">Europäische Währungseinheit (XBB)</displayName>
-                       </currency>
-                       <currency type="XBC">
-                               <displayName>Europäische Rechnungseinheit (XBC)</displayName>
-                       </currency>
-                       <currency type="XBD">
-                               <displayName>Europäische Rechnungseinheit (XBD)</displayName>
-                       </currency>
-                       <currency type="XCD">
-                               <displayName>Ostkaribischer Dollar</displayName>
-                               <symbol>EC$</symbol>
-                       </currency>
-                       <currency type="XDR">
-                               <displayName>Sonderziehungsrechte</displayName>
-                       </currency>
-                       <currency type="XEU">
-                               <displayName draft="provisional">Europäische Währungseinheit (XEU)</displayName>
-                       </currency>
-                       <currency type="XFO">
-                               <displayName>Französischer Gold-Franc</displayName>
-                       </currency>
-                       <currency type="XFU">
-                               <displayName>Französischer UIC-Franc</displayName>
-                       </currency>
-                       <currency type="XOF">
-                               <displayName>CFA Franc (West)</displayName>
-                       </currency>
-                       <currency type="XPD">
-                               <displayName draft="provisional">Palladium</displayName>
-                       </currency>
-                       <currency type="XPF">
-                               <displayName>CFP Franc</displayName>
-                       </currency>
-                       <currency type="XPT">
-                               <displayName draft="provisional">Platin</displayName>
-                       </currency>
-                       <currency type="XRE">
-                               <displayName draft="provisional">RINET Funds</displayName>
-                       </currency>
-                       <currency type="XTS">
-                               <displayName draft="provisional">Testwährung</displayName>
-                       </currency>
-                       <currency type="XXX">
-                               <displayName draft="unconfirmed">keine Währung</displayName>
-                       </currency>
-                       <currency type="YDD">
-                               <displayName>Jemen Dinar</displayName>
-                       </currency>
-                       <currency type="YER">
-                               <displayName>Jemen Rial</displayName>
-                       </currency>
-                       <currency type="YUD">
-                               <displayName>Jugoslawischer Dinar (1966-1990)</displayName>
-                       </currency>
-                       <currency type="YUM">
-                               <displayName>Neuer Dinar</displayName>
-                       </currency>
-                       <currency type="YUN">
-                               <displayName>Jugoslawischer Dinar (konvertibel)</displayName>
-                       </currency>
-                       <currency type="ZAR">
-                               <displayName>Rand</displayName>
-                       </currency>
-                       <currency type="ZMK">
-                               <displayName>Kwacha</displayName>
-                       </currency>
-                       <currency type="ZRN">
-                               <displayName>Neuer Zaire</displayName>
-                       </currency>
-                       <currency type="ZRZ">
-                               <displayName>Zaire</displayName>
-                       </currency>
-                       <currency type="ZWD">
-                               <displayName>Simbabwe Dollar</displayName>
-                       </currency>
-               </currencies>
-       </numbers>
-       <posix>
-               <messages>
-                       <yesstr>ja:j</yesstr>
-                       <nostr>nein:n</nostr>
-               </messages>
-       </posix>
-       <references>
-               <reference type="RP1" uri="http://www2.bibliothek.uni-augsburg.de/kfe/kkb_mab_037.html">Languages</reference>
-               <reference type="RP10" uri="http://www.ids-mannheim.de/reform/regelwerk.pdf">German spelling, official new rules (for capitalization see pp. 51, 64-67 = §§ 60-64)</reference>
-               <reference type="RP11" uri="http://de.wikipedia.org/wiki/Angloamerikanisches_Ma%C3%9Fsystem">US measurement system in German</reference>
-               <reference type="RP2" uri="http://www.allegro-c.de/formate/sprachen.htm">Languages 2</reference>
-               <reference type="RP3" uri="http://www.metatab.de/meta_tags/sprachenkuerzel2.htm">Languages 3</reference>
-               <reference type="RP4" uri="http://www.auswaertiges-amt.de/www/de/infoservice/download/pdf/publikationen/staatennamen.pdf">Territories</reference>
-               <reference type="RP5" uri="http://de.wikipedia.org/wiki/Liste_der_Unicode-Blöcke">Scripts</reference>
-               <reference type="RP6" uri="http://www.oenb.at/ebusinesscodes/isocodes?lang=de&amp;mode=isocodes">Currencies</reference>
-               <reference type="RP7" uri="http://de.wikipedia.org/wiki/ISO_4217">Currencies 2</reference>
-               <reference type="RP8" uri="http://de.wikipedia.org/wiki/Prozent">Prozent</reference>
-               <reference type="RP9" uri="http://afrika.heim.at">Territories of Africa in German</reference>
-       </references>
-</ldml>
-<!-- Old Comments. See root.xml for more info.
-URL: http://oss.software.ibm.com/cvs/icu/icu/source/data/locales/de.txt?only_with_tag=final-update-LDML
-
-Country names in de, de_AT, and de_CH are short names from the
-list of names maintained by the German
-Federal Permanent Committee for Geographic Names,
-Sta"ndiger Ausschuss fu"r Geographische Namen (StAGN),
-as published at its web site at
-http://www.ifag.de/kartographie/Stagn/Staatennamen.htm
-Date there: 1999-apr-19
-Note 2003-sep-19: The site seems to have moved to
-http://www.bkg.bund.de/kartographie/stagn/Staatennamen.htm
-This shouldn't be used, but valid data should be here.
-vorm. -> vormittags -> in the morning
-nachm. -> nachmittags -> in the afternoon
-Currency display names
-See for example "W\u00e4hrungscodes" at
-http://www-cik.uni-paderborn.de/vddk/Dokumentationen/Dokumentation_IDM_1_3/ISO-Tabellen/Wahrungscodes/body_wahrungscodes.html
-(On the page it says "Quelle: gem\u00e4\u00df ISO 4217 3-alpha-code (Stand: Juli 2000)"
-and "Verzeichnis der ISO-Codes f\u00FCr W\u00e4hrung mit Land".)
-See also http://umrechnen.de/
-        BOV { "BOV", "Mvdol" } // financial instrument
-BY { "Belarus" }  // AKA Wei\u00DFrussland
-CI { "C\u00F4te d\u0092Ivoire" }
-RE { "R\u00E9union" }
-some entries that are not in the official list:
-For the languages, I am trying to use the adjective list in the
-official list of country names.
-Sometimes I am guessing.
-Markus Scherer, 2000jun01
-I just found http://suchfix.uni-muenster.de/vifanie/NedGuideDt/help/languagecode.html
-(which is not entirely reliable, contains some English names).
-Generally cross-checking with google.de (search for the language name + "Sprache")
-and with other CLDR data.
-Markus 2003-dec-12
-Fallback{ "en" } // commented out because it's too unreliable
-in  { "Indonesisch" }  // Use "id" instead
-iw { "Hebr\u00e4isch" }// Use he instead
-ji  { "Jiddisch" }  // Use "yi" instead
-jw  { "Javanisch" } // Use jv instead
-        jv  { "Javanisch" } // more google.de hits than Javanesisch
-        la  { "Latein" } // Lateinisch doesn't seem correct
-        ml  { "Malayalam" } // do not confuse with ms Malaiisch
-        ms  { "Malaiisch" } // less often: Malaysisch, Malayisch
-        nl  { "Niederl\u00e4ndisch" } // "Holl\u00e4ndisch" is not correct
-        om  { "Oromo" } // also mentioned: Afan, Oromiffa
-        rw  { "Rwanda-Sprache" } // Kinyarwanda?
-        sd  { "Sindhi" } // less often Zinti
-        sn  { "Shona" } // looks like Shona is a language in Zimbabwe while Schonisch is a Danish dialect
-        so  { "Somali" } // "Somalisch" is the adjectiv in the country list but less frequent on google.de
-        tk  { "Turkmenisch" } // "T\u00fcrkmenisch" is a typo
-        tn  { "Tswana-Sprache" } // language of Botswana, also Tswana, very rarely Tsuana; Sezuan is in China
-        tw  { "Twi" } // spoken in Ghana
-        wo  { "Wolof" } // in Senegal
-        xh  { "Xhosa" } // in South Africa
-        za  { "Zhuang" } // in China
-        zap { "Zapotekisch" } // in Mexico
-        "Latn",  // ISO 15924 Name 
-I "verified" each of these by searching www.google.de for
-"Bopomofo Schrift", "Koptische Schrift", etc.
-Ones that are commented out and have no further comment I don't know
-and could not find.
-Note: The script names in German that are used directly as English or
-native transliterated names are often used with a dash between them and
-"Schrift", e.g., "Kannada-Schrift".
-Other script names are used as in "Arabische Schrift".
-Sometimes I included "Schrift" in the display name here because it
-would not make any sense without it, even with "Schrift" in a higher-level
-menu or similar.
-markus 2003-nov-20
-Buhd { "Buhid" }
-Cans { "Unified Canadian Aboriginal Symbols" }
-Dsrt { "Deseret" }
-Hano { "Hanunoo" }
-Shaw { "Shavian" }
-Tagb { "Tagbanwa" }
-Tale { "Tai Le" }
-Thaa { "Thaana" }
-Thai { "Thai" } // Just happens to be a duplicate - in German, too
-
-Comments without bases
-
- Kiribati       - was on: /ldml/dates/timeZoneNames/zone[@type="Pacific/Enderbury"]
- Marshall Islands       - was on: /ldml/dates/timeZoneNames/zone[@type="Pacific/Kwajalein"]
- Mali   - was on: /ldml/dates/timeZoneNames/zone[@type="Africa/Bamako"]
- Ecuador        - was on: /ldml/dates/timeZoneNames/zone[@type="Pacific/Galapagos"]
- Indonesia      - was on: /ldml/dates/timeZoneNames/zone[@type="Asia/Jakarta"]
- Russia         - was on: /ldml/dates/timeZoneNames/zone[@type="Europe/Kaliningrad"]
- United States          - was on: /ldml/dates/timeZoneNames/zone[@type="America/Adak"]
- Kazakhstan     - was on: /ldml/dates/timeZoneNames/zone[@type="Asia/Aqtau"]
- Portugal       - was on: /ldml/dates/timeZoneNames/zone[@type="Atlantic/Madeira"]
- Brazil         - was on: /ldml/dates/timeZoneNames/zone[@type="America/Eirunepe"]
- Antarctica     - was on: /ldml/dates/timeZoneNames/zone[@type="Antarctica/Rothera"]
- Malaysia       - was on: /ldml/dates/timeZoneNames/zone[@type="Asia/Kuala_Lumpur"]
- Canada         - was on: /ldml/dates/timeZoneNames/zone[@type="America/Dawson"]
- Micronesia     - was on: /ldml/dates/timeZoneNames/zone[@type="Pacific/Yap"]
- Argentina      - was on: /ldml/dates/timeZoneNames/zone[@type="America/Argentina/Rio_Gallegos"]
- United States Minor Outlying Islands   - was on: /ldml/dates/timeZoneNames/zone[@type="Pacific/Midway"]
- Mexico         - was on: /ldml/dates/timeZoneNames/zone[@type="America/Tijuana"]
- Democratic Republic of the Congo       - was on: /ldml/dates/timeZoneNames/zone[@type="Africa/Kinshasa"]
- United Kingdom         - was on: /ldml/dates/timeZoneNames/zone[@type="Europe/Belfast"]
- French Polynesia       - was on: /ldml/dates/timeZoneNames/zone[@type="Pacific/Tahiti"]
- New Zealand    - was on: /ldml/dates/timeZoneNames/zone[@type="Pacific/Chatham"]
- Greenland      - was on: /ldml/dates/timeZoneNames/zone[@type="America/Thule"]
- Mongolia       - was on: /ldml/dates/timeZoneNames/zone[@type="Asia/Hovd"]
- Uzbekistan     - was on: /ldml/dates/timeZoneNames/zone[@type="Asia/Samarkand"]
- Svalbard and Jan Mayen         - was on: /ldml/dates/timeZoneNames/zone[@type="Atlantic/Jan_Mayen"]
- Australia      - was on: /ldml/dates/timeZoneNames/zone[@type="Australia/Perth"]
- China          - was on: /ldml/dates/timeZoneNames/zone[@type="Asia/Kashgar"]
-
-Comments without bases
-
- <territory type="057">Mikronesien</territory>          - was on: //ldml/localeDisplayNames/territories/territory[@type="057"][@alt="proposed-u212-1"]
--->
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/de_DE.xml b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/de_DE.xml
deleted file mode 100644 (file)
index 9064400..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/data/dtd/ldml.dtd">
-<ldml>
-       <identity>
-               <version number="$Revision: 1.40 $"/>
-               <generation date="$Date: 2006/12/08 16:29:35 $"/>
-               <language type="de"/>
-               <territory type="DE"/>
-       </identity>
-       <numbers>
-               <currencyFormats>
-                       <currencyFormatLength>
-                               <currencyFormat>
-                                       <pattern>#,##0.00 ¤</pattern>
-                               </currencyFormat>
-                       </currencyFormatLength>
-               </currencyFormats>
-       </numbers>
-</ldml>
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/en.xml b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/en.xml
deleted file mode 100644 (file)
index 1fc97d9..0000000
+++ /dev/null
@@ -1,2303 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/data/dtd/ldml.dtd">
-<ldml>
-       <identity>
-               <version number="$Revision: 1.117 $"/>
-               <generation date="$Date: 2006/12/08 16:29:36 $"/>
-               <language type="en"/>
-       </identity>
-       <localeDisplayNames>
-               <languages>
-                       <language type="aa">Afar</language>
-                       <language type="ab">Abkhazian</language>
-                       <language type="ace">Achinese</language>
-                       <language type="ach">Acoli</language>
-                       <language type="ada">Adangme</language>
-                       <language type="ady">Adyghe</language>
-                       <language type="ae">Avestan</language>
-                       <language type="af">Afrikaans</language>
-                       <language type="afa">Afro-Asiatic (Other)</language>
-                       <language type="afh">Afrihili</language>
-                       <language type="ain">Ainu</language>
-                       <language type="ak">Akan</language>
-                       <language type="akk">Akkadian</language>
-                       <language type="ale">Aleut</language>
-                       <language type="alg">Algonquian Languages</language>
-                       <language type="alt">Southern Altai</language>
-                       <language type="am">Amharic</language>
-                       <language type="an">Aragonese</language>
-                       <language type="ang">Old English (ca.450-1100)</language>
-                       <language type="anp">Angika</language>
-                       <language type="apa">Apache Languages</language>
-                       <language type="ar">Arabic</language>
-                       <language type="arc">Aramaic</language>
-                       <language type="arn">Araucanian</language>
-                       <language type="arp">Arapaho</language>
-                       <language type="art">Artificial (Other)</language>
-                       <language type="arw">Arawak</language>
-                       <language type="as">Assamese</language>
-                       <language type="ast">Asturian</language>
-                       <language type="ath">Athapascan Languages</language>
-                       <language type="aus">Australian Languages</language>
-                       <language type="av">Avaric</language>
-                       <language type="awa">Awadhi</language>
-                       <language type="ay">Aymara</language>
-                       <language type="az">Azerbaijani</language>
-                       <language type="ba">Bashkir</language>
-                       <language type="bad">Banda</language>
-                       <language type="bai">Bamileke Languages</language>
-                       <language type="bal">Baluchi</language>
-                       <language type="ban">Balinese</language>
-                       <language type="bas">Basa</language>
-                       <language type="bat">Baltic (Other)</language>
-                       <language type="be">Belarusian</language>
-                       <language type="bej">Beja</language>
-                       <language type="bem">Bemba</language>
-                       <language type="ber">Berber</language>
-                       <language type="bg">Bulgarian</language>
-                       <language type="bh">Bihari</language>
-                       <language type="bho">Bhojpuri</language>
-                       <language type="bi">Bislama</language>
-                       <language type="bik">Bikol</language>
-                       <language type="bin">Bini</language>
-                       <language type="bla">Siksika</language>
-                       <language type="bm">Bambara</language>
-                       <language type="bn">Bengali</language>
-                       <language type="bnt">Bantu</language>
-                       <language type="bo">Tibetan</language>
-                       <language type="br">Breton</language>
-                       <language type="bra">Braj</language>
-                       <language type="bs">Bosnian</language>
-                       <language type="btk">Batak</language>
-                       <language type="bua">Buriat</language>
-                       <language type="bug">Buginese</language>
-                       <language type="byn">Blin</language>
-                       <language type="ca">Catalan</language>
-                       <language type="cad">Caddo</language>
-                       <language type="cai">Central American Indian (Other)</language>
-                       <language type="car">Carib</language>
-                       <language type="cau">Caucasian (Other)</language>
-                       <language type="cch">Atsam</language>
-                       <language type="ce">Chechen</language>
-                       <language type="ceb">Cebuano</language>
-                       <language type="cel">Celtic (Other)</language>
-                       <language type="ch">Chamorro</language>
-                       <language type="chb">Chibcha</language>
-                       <language type="chg">Chagatai</language>
-                       <language type="chk">Chuukese</language>
-                       <language type="chm">Mari</language>
-                       <language type="chn">Chinook Jargon</language>
-                       <language type="cho">Choctaw</language>
-                       <language type="chp">Chipewyan</language>
-                       <language type="chr">Cherokee</language>
-                       <language type="chy">Cheyenne</language>
-                       <language type="cmc">Chamic Languages</language>
-                       <language type="co">Corsican</language>
-                       <language type="cop">Coptic</language>
-                       <language type="cpe">Other English-based Creoles and Pidgins</language>
-                       <language type="cpf">Other French-based Creoles and Pidgins</language>
-                       <language type="cpp">Other Portuguese-based Creoles and Pidgins</language>
-                       <language type="cr">Cree</language>
-                       <language type="crh">Crimean Turkish; Crimean Tatar</language>
-                       <language type="crp">Creoles and Pidgins (Other)</language>
-                       <language type="cs">Czech</language>
-                       <language type="csb">Kashubian</language>
-                       <language type="cu">Church Slavic</language>
-                       <language type="cus">Cushitic (Other)</language>
-                       <language type="cv">Chuvash</language>
-                       <language type="cy">Welsh</language>
-                       <language type="da">Danish</language>
-                       <language type="dak">Dakota</language>
-                       <language type="dar">Dargwa</language>
-                       <language type="day">Dayak</language>
-                       <language type="de">German</language>
-                       <language type="de_AT">Austrian German</language>
-                       <language type="del">Delaware</language>
-                       <language type="den">Slave</language>
-                       <language type="dgr">Dogrib</language>
-                       <language type="din">Dinka</language>
-                       <language type="doi">Dogri</language>
-                       <language type="dra">Dravidian (Other)</language>
-                       <language type="dsb">Lower Sorbian</language>
-                       <language type="dua">Duala</language>
-                       <language type="dum">Middle Dutch</language>
-                       <language type="dv">Divehi</language>
-                       <language type="dyu">Dyula</language>
-                       <language type="dz">Dzongkha</language>
-                       <language type="ee">Ewe</language>
-                       <language type="efi">Efik</language>
-                       <language type="egy">Egyptian (Ancient)</language>
-                       <language type="eka">Ekajuk</language>
-                       <language type="el">Greek</language>
-                       <language type="elx">Elamite</language>
-                       <language type="en">English</language>
-                       <language type="en_AU">Australian English</language>
-                       <language type="en_CA">Canadian English</language>
-                       <language type="en_GB">British English</language>
-                       <language type="en_US">U.S. English</language>
-                       <language type="enm">Middle English</language>
-                       <language type="eo">Esperanto</language>
-                       <language type="es">Spanish</language>
-                       <language type="es_419">Latin American Spanish</language>
-                       <language type="et">Estonian</language>
-                       <language type="eu">Basque</language>
-                       <language type="ewo">Ewondo</language>
-                       <language type="fa">Persian</language>
-                       <language type="fan">Fang</language>
-                       <language type="fat">Fanti</language>
-                       <language type="ff">Fulah</language>
-                       <language type="fi">Finnish</language>
-                       <language type="fil">Filipino</language>
-                       <language type="fiu">Finno - Ugrian (Other)</language>
-                       <language type="fj">Fijian</language>
-                       <language type="fo">Faroese</language>
-                       <language type="fon">Fon</language>
-                       <language type="fr">French</language>
-                       <language type="fr_CA">Canadian French</language>
-                       <language type="fr_CH">Swiss French</language>
-                       <language type="frm">Middle French</language>
-                       <language type="fro">Old French</language>
-                       <language type="frr">Northern Frisian</language>
-                       <language type="frs">Eastern Frisian</language>
-                       <language type="fur">Friulian</language>
-                       <language type="fy">Western Frisian</language>
-                       <language type="ga">Irish</language>
-                       <language type="gaa">Ga</language>
-                       <language type="gay">Gayo</language>
-                       <language type="gba">Gbaya</language>
-                       <language type="gd">Scottish Gaelic</language>
-                       <language type="gem">Germanic (Other)</language>
-                       <language type="gez">Geez</language>
-                       <language type="gil">Gilbertese</language>
-                       <language type="gl">Galician</language>
-                       <language type="gmh">Middle High German</language>
-                       <language type="gn">Guarani</language>
-                       <language type="goh">Old High German</language>
-                       <language type="gon">Gondi</language>
-                       <language type="gor">Gorontalo</language>
-                       <language type="got">Gothic</language>
-                       <language type="grb">Grebo</language>
-                       <language type="grc">Ancient Greek</language>
-                       <language type="gsw">Swiss German</language>
-                       <language type="gu">Gujarati</language>
-                       <language type="gv">Manx</language>
-                       <language type="gwi">Gwichʼin</language>
-                       <language type="ha">Hausa</language>
-                       <language type="hai">Haida</language>
-                       <language type="haw">Hawaiian</language>
-                       <language type="he">Hebrew</language>
-                       <language type="hi">Hindi</language>
-                       <language type="hil">Hiligaynon</language>
-                       <language type="him">Himachali</language>
-                       <language type="hit">Hittite</language>
-                       <language type="hmn">Hmong</language>
-                       <language type="ho">Hiri Motu</language>
-                       <language type="hr">Croatian</language>
-                       <language type="hsb">Upper Sorbian</language>
-                       <language type="ht">Haitian</language>
-                       <language type="hu">Hungarian</language>
-                       <language type="hup">Hupa</language>
-                       <language type="hy">Armenian</language>
-                       <language type="hz">Herero</language>
-                       <language type="ia">Interlingua</language>
-                       <language type="iba">Iban</language>
-                       <language type="id">Indonesian</language>
-                       <language type="ie">Interlingue</language>
-                       <language type="ig">Igbo</language>
-                       <language type="ii">Sichuan Yi</language>
-                       <language type="ijo">Ijo</language>
-                       <language type="ik">Inupiaq</language>
-                       <language type="ilo">Iloko</language>
-                       <language type="inc">Indic (Other)</language>
-                       <language type="ine">Indo-European (Other)</language>
-                       <language type="inh">Ingush</language>
-                       <language type="io">Ido</language>
-                       <language type="ira">Iranian (Other)</language>
-                       <language type="iro">Iroquoian languages</language>
-                       <language type="is">Icelandic</language>
-                       <language type="it">Italian</language>
-                       <language type="iu">Inuktitut</language>
-                       <language type="ja">Japanese</language>
-                       <language type="jbo">Lojban</language>
-                       <language type="jpr">Judeo-Persian</language>
-                       <language type="jrb">Judeo-Arabic</language>
-                       <language type="jv">Javanese</language>
-                       <language type="ka">Georgian</language>
-                       <language type="kaa">Kara-Kalpak</language>
-                       <language type="kab">Kabyle</language>
-                       <language type="kac">Kachin</language>
-                       <language type="kaj">Jju</language>
-                       <language type="kam">Kamba</language>
-                       <language type="kar">Karen</language>
-                       <language type="kaw">Kawi</language>
-                       <language type="kbd">Kabardian</language>
-                       <language type="kcg">Tyap</language>
-                       <language type="kfo">Koro</language>
-                       <language type="kg">Kongo</language>
-                       <language type="kha">Khasi</language>
-                       <language type="khi">Khoisan (Other)</language>
-                       <language type="kho">Khotanese</language>
-                       <language type="ki">Kikuyu</language>
-                       <language type="kj">Kuanyama</language>
-                       <language type="kk">Kazakh</language>
-                       <language type="kl">Kalaallisut</language>
-                       <language type="km">Khmer</language>
-                       <language type="kmb">Kimbundu</language>
-                       <language type="kn">Kannada</language>
-                       <language type="ko">Korean</language>
-                       <language type="kok">Konkani</language>
-                       <language type="kos">Kosraean</language>
-                       <language type="kpe">Kpelle</language>
-                       <language type="kr">Kanuri</language>
-                       <language type="krc">Karachay-Balkar</language>
-                       <language type="krl">Karelian</language>
-                       <language type="kro">Kru</language>
-                       <language type="kru">Kurukh</language>
-                       <language type="ks">Kashmiri</language>
-                       <language type="ku">Kurdish</language>
-                       <language type="kum">Kumyk</language>
-                       <language type="kut">Kutenai</language>
-                       <language type="kv">Komi</language>
-                       <language type="kw">Cornish</language>
-                       <language type="ky">Kirghiz</language>
-                       <language type="la">Latin</language>
-                       <language type="lad">Ladino</language>
-                       <language type="lah">Lahnda</language>
-                       <language type="lam">Lamba</language>
-                       <language type="lb">Luxembourgish</language>
-                       <language type="lez">Lezghian</language>
-                       <language type="lg">Ganda</language>
-                       <language type="li">Limburgish</language>
-                       <language type="ln">Lingala</language>
-                       <language type="lo">Lao</language>
-                       <language type="lol">Mongo</language>
-                       <language type="loz">Lozi</language>
-                       <language type="lt">Lithuanian</language>
-                       <language type="lu">Luba-Katanga</language>
-                       <language type="lua">Luba-Lulua</language>
-                       <language type="lui">Luiseno</language>
-                       <language type="lun">Lunda</language>
-                       <language type="luo">Luo</language>
-                       <language type="lus">Lushai</language>
-                       <language type="lv">Latvian</language>
-                       <language type="mad">Madurese</language>
-                       <language type="mag">Magahi</language>
-                       <language type="mai">Maithili</language>
-                       <language type="mak">Makasar</language>
-                       <language type="man">Mandingo</language>
-                       <language type="map">Austronesian</language>
-                       <language type="mas">Masai</language>
-                       <language type="mdf">Moksha</language>
-                       <language type="mdr">Mandar</language>
-                       <language type="men">Mende</language>
-                       <language type="mg">Malagasy</language>
-                       <language type="mga">Middle Irish</language>
-                       <language type="mh">Marshallese</language>
-                       <language type="mi">Maori</language>
-                       <language type="mic">Micmac</language>
-                       <language type="min">Minangkabau</language>
-                       <language type="mis">Miscellaneous Languages</language>
-                       <language type="mk">Macedonian</language>
-                       <language type="mkh">Mon-Khmer (Other)</language>
-                       <language type="ml">Malayalam</language>
-                       <language type="mn">Mongolian</language>
-                       <language type="mnc">Manchu</language>
-                       <language type="mni">Manipuri</language>
-                       <language type="mno">Manobo Languages</language>
-                       <language type="mo">Moldavian</language>
-                       <language type="moh">Mohawk</language>
-                       <language type="mos">Mossi</language>
-                       <language type="mr">Marathi</language>
-                       <language type="ms">Malay</language>
-                       <language type="mt">Maltese</language>
-                       <language type="mul">Multiple Languages</language>
-                       <language type="mun">Munda Languages</language>
-                       <language type="mus">Creek</language>
-                       <language type="mwl">Mirandese</language>
-                       <language type="mwr">Marwari</language>
-                       <language type="my">Burmese</language>
-                       <language type="myn">Mayan languages</language>
-                       <language type="myv">Erzya</language>
-                       <language type="na">Nauru</language>
-                       <language type="nah">Nahuatl</language>
-                       <language type="nai">North American Indian (Other)</language>
-                       <language type="nap">Neapolitan</language>
-                       <language type="nb">Norwegian Bokmål</language>
-                       <language type="nd">North Ndebele</language>
-                       <language type="nds">Low German; Low Saxon</language>
-                       <language type="ne">Nepali</language>
-                       <language type="new">Newari</language>
-                       <language type="ng">Ndonga</language>
-                       <language type="nia">Nias</language>
-                       <language type="nic">Niger - Kordofanian (Other)</language>
-                       <language type="niu">Niuean</language>
-                       <language type="nl">Dutch</language>
-                       <language type="nl_BE">Flemish</language>
-                       <language type="nn">Norwegian Nynorsk</language>
-                       <language type="no">Norwegian</language>
-                       <language type="nog">Nogai</language>
-                       <language type="non">Norse, Old</language>
-                       <language type="nqo">N’Ko</language>
-                       <language type="nr">South Ndebele</language>
-                       <language type="nso">Northern Sotho</language>
-                       <language type="nub">Nubian Languages</language>
-                       <language type="nv">Navajo</language>
-                       <language type="nwc">Classical Newari</language>
-                       <language type="ny">Nyanja; Chichewa; Chewa</language>
-                       <language type="nym">Nyamwezi</language>
-                       <language type="nyn">Nyankole</language>
-                       <language type="nyo">Nyoro</language>
-                       <language type="nzi">Nzima</language>
-                       <language type="oc">Occitan (post 1500); Provençal</language>
-                       <language type="oj">Ojibwa</language>
-                       <language type="om">Oromo</language>
-                       <language type="or">Oriya</language>
-                       <language type="os">Ossetic</language>
-                       <language type="osa">Osage</language>
-                       <language type="ota">Ottoman Turkish</language>
-                       <language type="oto">Otomian Languages</language>
-                       <language type="pa">Punjabi</language>
-                       <language type="paa">Papuan (Other)</language>
-                       <language type="pag">Pangasinan</language>
-                       <language type="pal">Pahlavi</language>
-                       <language type="pam">Pampanga</language>
-                       <language type="pap">Papiamento</language>
-                       <language type="pau">Palauan</language>
-                       <language type="peo">Old Persian</language>
-                       <language type="phi">Philippine (Other)</language>
-                       <language type="phn">Phoenician</language>
-                       <language type="pi">Pali</language>
-                       <language type="pl">Polish</language>
-                       <language type="pon">Pohnpeian</language>
-                       <language type="pra">Prakrit Languages</language>
-                       <language type="pro">Old Provençal</language>
-                       <language type="ps" references="RP1">Pashto</language>
-                       <language type="ps" alt="variant">Pushto</language>
-                       <language type="pt">Portuguese</language>
-                       <language type="pt_BR">Brazilian Portuguese</language>
-                       <language type="qu">Quechua</language>
-                       <language type="raj">Rajasthani</language>
-                       <language type="rap">Rapanui</language>
-                       <language type="rar">Rarotongan</language>
-                       <language type="rm">Rhaeto-Romance</language>
-                       <language type="rn">Rundi</language>
-                       <language type="ro">Romanian</language>
-                       <language type="roa">Romance (Other)</language>
-                       <language type="rom">Romany</language>
-                       <language type="root">Root</language>
-                       <language type="ru">Russian</language>
-                       <language type="rup">Aromanian</language>
-                       <language type="rw">Kinyarwanda</language>
-                       <language type="sa">Sanskrit</language>
-                       <language type="sad">Sandawe</language>
-                       <language type="sah">Yakut</language>
-                       <language type="sai">South American Indian (Other)</language>
-                       <language type="sal">Salishan languages</language>
-                       <language type="sam">Samaritan Aramaic</language>
-                       <language type="sas">Sasak</language>
-                       <language type="sat">Santali</language>
-                       <language type="sc">Sardinian</language>
-                       <language type="scn">Sicilian</language>
-                       <language type="sco">Scots</language>
-                       <language type="sd">Sindhi</language>
-                       <language type="se">Northern Sami</language>
-                       <language type="sel">Selkup</language>
-                       <language type="sem">Semitic (Other)</language>
-                       <language type="sg">Sango</language>
-                       <language type="sga">Old Irish</language>
-                       <language type="sgn">Sign Languages</language>
-                       <language type="sh">Serbo-Croatian</language>
-                       <language type="shn">Shan</language>
-                       <language type="si">Sinhalese</language>
-                       <language type="sid">Sidamo</language>
-                       <language type="sio">Siouan Languages</language>
-                       <language type="sit">Sino-Tibetan (Other)</language>
-                       <language type="sk">Slovak</language>
-                       <language type="sl">Slovenian</language>
-                       <language type="sla">Slavic (Other)</language>
-                       <language type="sm">Samoan</language>
-                       <language type="sma">Southern Sami</language>
-                       <language type="smi">Sami languages (Other)</language>
-                       <language type="smj">Lule Sami</language>
-                       <language type="smn">Inari Sami</language>
-                       <language type="sms">Skolt Sami</language>
-                       <language type="sn">Shona</language>
-                       <language type="snk">Soninke</language>
-                       <language type="so">Somali</language>
-                       <language type="sog">Sogdien</language>
-                       <language type="son">Songhai</language>
-                       <language type="sq">Albanian</language>
-                       <language type="sr">Serbian</language>
-                       <language type="srn">Sranan Tongo</language>
-                       <language type="srr">Serer</language>
-                       <language type="ss">Swati</language>
-                       <language type="ssa">Nilo-Saharan (Other)</language>
-                       <language type="st">Southern Sotho</language>
-                       <language type="su">Sundanese</language>
-                       <language type="suk">Sukuma</language>
-                       <language type="sus">Susu</language>
-                       <language type="sux">Sumerian</language>
-                       <language type="sv">Swedish</language>
-                       <language type="sw">Swahili</language>
-                       <language type="syr">Syriac</language>
-                       <language type="ta">Tamil</language>
-                       <language type="tai">Tai (Other)</language>
-                       <language type="te">Telugu</language>
-                       <language type="tem">Timne</language>
-                       <language type="ter">Tereno</language>
-                       <language type="tet">Tetum</language>
-                       <language type="tg">Tajik</language>
-                       <language type="th">Thai</language>
-                       <language type="ti">Tigrinya</language>
-                       <language type="tig">Tigre</language>
-                       <language type="tiv">Tiv</language>
-                       <language type="tk">Turkmen</language>
-                       <language type="tkl">Tokelau</language>
-                       <language type="tl">Tagalog</language>
-                       <language type="tlh">Klingon</language>
-                       <language type="tli">Tlingit</language>
-                       <language type="tmh">Tamashek</language>
-                       <language type="tn">Tswana</language>
-                       <language type="to">Tonga (Tonga Islands)</language>
-                       <language type="tog">Tonga (Nyasa)</language>
-                       <language type="tpi">Tok Pisin</language>
-                       <language type="tr">Turkish</language>
-                       <language type="ts">Tsonga</language>
-                       <language type="tsi">Tsimshian</language>
-                       <language type="tt">Tatar</language>
-                       <language type="tum">Tumbuka</language>
-                       <language type="tup">Tupi languages</language>
-                       <language type="tut">Altaic (Other)</language>
-                       <language type="tvl">Tuvalu</language>
-                       <language type="tw">Twi</language>
-                       <language type="ty">Tahitian</language>
-                       <language type="tyv">Tuvinian</language>
-                       <language type="udm">Udmurt</language>
-                       <language type="ug">Uighur</language>
-                       <language type="uga">Ugaritic</language>
-                       <language type="uk">Ukrainian</language>
-                       <language type="umb">Umbundu</language>
-                       <language type="und">Unknown or Invalid Language</language>
-                       <language type="ur">Urdu</language>
-                       <language type="uz">Uzbek</language>
-                       <language type="vai">Vai</language>
-                       <language type="ve">Venda</language>
-                       <language type="vi">Vietnamese</language>
-                       <language type="vo">Volapük</language>
-                       <language type="vot">Votic</language>
-                       <language type="wa">Walloon</language>
-                       <language type="wak">Wakashan Languages</language>
-                       <language type="wal">Walamo</language>
-                       <language type="war">Waray</language>
-                       <language type="was">Washo</language>
-                       <language type="wen">Sorbian Languages</language>
-                       <language type="wo">Wolof</language>
-                       <language type="xal">Kalmyk</language>
-                       <language type="xh">Xhosa</language>
-                       <language type="yao">Yao</language>
-                       <language type="yap">Yapese</language>
-                       <language type="yi">Yiddish</language>
-                       <language type="yo">Yoruba</language>
-                       <language type="ypk">Yupik Languages</language>
-                       <language type="za">Zhuang</language>
-                       <language type="zap">Zapotec</language>
-                       <language type="zen">Zenaga</language>
-                       <language type="zh">Chinese</language>
-                       <language type="zh_Hans">Simplified Chinese</language>
-                       <language type="zh_Hant">Traditional Chinese</language>
-                       <language type="znd">Zande</language>
-                       <language type="zu">Zulu</language>
-                       <language type="zun">Zuni</language>
-                       <language type="zza">Zaza</language>
-                       <language type="zxx">No linguistic content</language>
-               </languages>
-               <scripts>
-                       <script type="Arab">Arabic</script>
-                       <script type="Armn">Armenian</script>
-                       <script type="Bali">Balinese</script>
-                       <script type="Batk">Batak</script>
-                       <script type="Beng">Bengali</script>
-                       <script type="Blis">Blissymbols</script>
-                       <script type="Bopo">Bopomofo</script>
-                       <script type="Brah">Brahmi</script>
-                       <script type="Brai">Braille</script>
-                       <script type="Bugi">Buginese</script>
-                       <script type="Buhd">Buhid</script>
-                       <script type="Cans">Unified Canadian Aboriginal Symbols</script>
-                       <script type="Cari">Carian</script>
-                       <script type="Cham" references="R1">Cham</script>
-                       <script type="Cher">Cherokee</script>
-                       <script type="Cirt">Cirth</script>
-                       <script type="Copt">Coptic</script>
-                       <script type="Cprt">Cypriot</script>
-                       <script type="Cyrl">Cyrillic</script>
-                       <script type="Cyrs">Cyrillic (Old Church Slavonic variant)</script>
-                       <script type="Deva">Devanagari</script>
-                       <script type="Dsrt">Deseret</script>
-                       <script type="Egyd">Egyptian demotic</script>
-                       <script type="Egyh">Egyptian hieratic</script>
-                       <script type="Egyp">Egyptian hieroglyphs</script>
-                       <script type="Ethi">Ethiopic</script>
-                       <script type="Geok">Khutsuri (Asomtavruli and Nuskhuri)</script>
-                       <script type="Geor">Georgian</script>
-                       <script type="Glag">Glagolitic</script>
-                       <script type="Goth">Gothic</script>
-                       <script type="Grek">Greek</script>
-                       <script type="Gujr">Gujarati</script>
-                       <script type="Guru">Gurmukhi</script>
-                       <script type="Hang">Hangul</script>
-                       <script type="Hani">Han</script>
-                       <script type="Hano">Hanunoo</script>
-                       <script type="Hans">Simplified Han</script>
-                       <script type="Hant">Traditional Han</script>
-                       <script type="Hebr">Hebrew</script>
-                       <script type="Hira">Hiragana</script>
-                       <script type="Hmng">Pahawh Hmong</script>
-                       <script type="Hrkt">Katakana or Hiragana</script>
-                       <script type="Hung">Old Hungarian</script>
-                       <script type="Inds">Indus (Harappan)</script>
-                       <script type="Ital">Old Italic</script>
-                       <script type="Jpan">Japanese</script>
-                       <script type="Java">Javanese</script>
-                       <script type="Kali">Kayah Li</script>
-                       <script type="Kana">Katakana</script>
-                       <script type="Khar">Kharoshthi</script>
-                       <script type="Khmr">Khmer</script>
-                       <script type="Knda">Kannada</script>
-                       <script type="Lana">Lanna</script>
-                       <script type="Laoo">Lao</script>
-                       <script type="Latf">Latin (Fraktur variant)</script>
-                       <script type="Latg">Latin (Gaelic variant)</script>
-                       <script type="Latn">Latin</script>
-                       <script type="Lepc">Lepcha (Róng)</script>
-                       <script type="Limb">Limbu</script>
-                       <script type="Lina">Linear A</script>
-                       <script type="Linb">Linear B</script>
-                       <script type="Lyci">Lycian</script>
-                       <script type="Lydi">Lydian</script>
-                       <script type="Mand">Mandaean</script>
-                       <script type="Maya">Mayan hieroglyphs</script>
-                       <script type="Mero">Meroitic</script>
-                       <script type="Mlym">Malayalam</script>
-                       <script type="Mong">Mongolian</script>
-                       <script type="Mymr">Myanmar</script>
-                       <script type="Nkoo">N’Ko</script>
-                       <script type="Ogam">Ogham</script>
-                       <script type="Olck">Ol Chiki</script>           
-                       <script type="Orkh">Orkhon</script>
-                       <script type="Orya">Oriya</script>
-                       <script type="Osma">Osmanya</script>
-                       <script type="Perm">Old Permic</script>
-                       <script type="Phag">Phags-pa</script>
-                       <script type="Phnx">Phoenician</script>
-                       <script type="Plrd">Pollard Phonetic</script>
-                       <script type="Qaai">Inherited</script>
-                       <script type="Rjng">Rejang</script>
-                       <script type="Roro">Rongorongo</script>
-                       <script type="Runr">Runic</script>
-                       <script type="Sara">Sarati</script>
-                       <script type="Saur">Saurashtra</script>
-                       <script type="Sgnw">SignWriting</script>
-                       <script type="Shaw">Shavian</script>
-                       <script type="Sinh">Sinhala</script>
-                       <script type="Sund">Sundanese</script> 
-                       <script type="Sylo">Syloti Nagri</script>
-                       <script type="Syrc">Syriac</script>
-                       <script type="Syre">Syriac (Estrangelo variant)</script>
-                       <script type="Syrj">Syriac (Western variant)</script>
-                       <script type="Syrn">Syriac (Eastern variant)</script>
-                       <script type="Tagb">Tagbanwa</script>
-                       <script type="Tale">Tai Le</script>
-                       <script type="Talu">New Tai Lue</script>
-                       <script type="Taml">Tamil</script>
-                       <script type="Telu">Telugu</script>
-                       <script type="Teng">Tengwar</script>
-                       <script type="Tfng">Tifinagh (Berber)</script>
-                       <script type="Tglg">Tagalog</script>
-                       <script type="Thaa">Thaana</script>
-                       <script type="Thai" references="R1">Thai</script>
-                       <script type="Tibt">Tibetan</script>
-                       <script type="Ugar">Ugaritic</script>
-                       <script type="Vaii">Vai</script>
-                       <script type="Visp">Visible Speech</script>
-                       <script type="Xpeo">Old Persian</script>
-                       <script type="Xsux">Sumero-Akkadian Cuneiform</script>
-                       <script type="Yiii">Yi</script>
-                       <script type="Zxxx">Unwritten</script>
-                       <script type="Zyyy">Common</script>
-                       <script type="Zzzz">Unknown or Invalid Script</script>
-               </scripts>
-               <territories>
-                       <territory type="001">World</territory>
-                       <!-- UN codes -->
-                       <territory type="002">Africa</territory>
-                       <territory type="003">North America</territory>
-                       <territory type="005">South America</territory>
-                       <territory type="009">Oceania</territory>
-                       <territory type="011">Western Africa</territory>
-                       <territory type="013">Central America</territory>
-                       <territory type="014">Eastern Africa</territory>
-                       <territory type="015">Northern Africa</territory>
-                       <territory type="017">Middle Africa</territory>
-                       <territory type="018">Southern Africa</territory>
-                       <territory type="019">Americas</territory>
-                       <territory type="021">Northern America</territory>
-                       <territory type="029">Caribbean</territory>
-                       <territory type="030">Eastern Asia</territory>
-                       <territory type="034">Southern Asia</territory>
-                       <territory type="035">South-Eastern Asia</territory>
-                       <territory type="039">Southern Europe</territory>
-                       <territory type="053">Australia and New Zealand</territory>
-                       <territory type="054">Melanesia</territory>
-                       <territory type="057">Micronesian Region</territory>
-                       <territory type="061">Polynesia</territory>
-                       <territory type="062">South-Central Asia</territory>
-                       <territory type="142">Asia</territory>
-                       <territory type="143">Central Asia</territory>
-                       <territory type="145">Western Asia</territory>
-                       <territory type="150">Europe</territory>
-                       <territory type="151">Eastern Europe</territory>
-                       <territory type="154">Northern Europe</territory>
-                       <territory type="155">Western Europe</territory>
-                       <territory type="172">Commonwealth of Independent States</territory>
-                       <territory type="200">Czechoslovakia</territory>
-                       <territory type="419">Latin America and the Caribbean</territory>
-                       <territory type="830">Channel Islands</territory>
-                       <territory type="AD">Andorra</territory>
-                       <territory type="AE">United Arab Emirates</territory>
-                       <territory type="AF">Afghanistan</territory>
-                       <territory type="AG">Antigua and Barbuda</territory>
-                       <territory type="AI">Anguilla</territory>
-                       <territory type="AL">Albania</territory>
-                       <territory type="AM">Armenia</territory>
-                       <territory type="AN">Netherlands Antilles</territory>
-                       <territory type="AO">Angola</territory>
-                       <territory type="AQ">Antarctica</territory>
-                       <territory type="AR">Argentina</territory>
-                       <territory type="AS">American Samoa</territory>
-                       <territory type="AT">Austria</territory>
-                       <territory type="AU">Australia</territory>
-                       <territory type="AW">Aruba</territory>
-                       <territory type="AX">Aland Islands</territory>
-                       <territory type="AZ">Azerbaijan</territory>
-                       <territory type="BA">Bosnia and Herzegovina</territory>
-                       <territory type="BB">Barbados</territory>
-                       <territory type="BD">Bangladesh</territory>
-                       <territory type="BE">Belgium</territory>
-                       <territory type="BF">Burkina Faso</territory>
-                       <territory type="BG">Bulgaria</territory>
-                       <territory type="BH">Bahrain</territory>
-                       <territory type="BI">Burundi</territory>
-                       <territory type="BJ">Benin</territory>
-                       <territory type="BM">Bermuda</territory>
-                       <territory type="BN">Brunei</territory>
-                       <territory type="BO">Bolivia</territory>
-                       <territory type="BQ">British Antarctic Territory</territory>
-                       <territory type="BR">Brazil</territory>
-                       <territory type="BS">Bahamas</territory>
-                       <territory type="BT">Bhutan</territory>
-                       <territory type="BV">Bouvet Island</territory>
-                       <territory type="BW">Botswana</territory>
-                       <territory type="BY">Belarus</territory>
-                       <territory type="BZ">Belize</territory>
-                       <territory type="CA">Canada</territory>
-                       <territory type="CC">Cocos (Keeling) Islands</territory>
-                       <territory type="CD">Congo (Kinshasa)</territory>
-                       <territory type="CF">Central African Republic</territory>
-                       <territory type="CG">Congo (Brazzaville)</territory>
-                       <territory type="CH">Switzerland</territory>
-                       <territory type="CI">Ivory Coast</territory>
-                       <territory type="CK">Cook Islands</territory>
-                       <territory type="CL">Chile</territory>
-                       <territory type="CM">Cameroon</territory>
-                       <territory type="CN">China</territory>
-                       <territory type="CO">Colombia</territory>
-                       <territory type="CR">Costa Rica</territory>
-                       <territory type="CS">Serbia And Montenegro</territory>
-                       <territory type="CT">Canton and Enderbury Islands</territory>
-                       <territory type="CU">Cuba</territory>
-                       <territory type="CV">Cape Verde</territory>
-                       <territory type="CX">Christmas Island</territory>
-                       <territory type="CY">Cyprus</territory>
-                       <territory type="CZ">Czech Republic</territory>
-                       <territory type="DD">East Germany</territory>
-                       <territory type="DE">Germany</territory>
-                       <territory type="DJ">Djibouti</territory>
-                       <territory type="DK">Denmark</territory>
-                       <territory type="DM">Dominica</territory>
-                       <territory type="DO">Dominican Republic</territory>
-                       <territory type="DZ">Algeria</territory>
-                       <territory type="EC">Ecuador</territory>
-                       <territory type="EE">Estonia</territory>
-                       <territory type="EG">Egypt</territory>
-                       <territory type="EH">Western Sahara</territory>
-                       <territory type="ER">Eritrea</territory>
-                       <territory type="ES">Spain</territory>
-                       <territory type="ET">Ethiopia</territory>
-                       <territory type="FI">Finland</territory>
-                       <territory type="FJ">Fiji</territory>
-                       <territory type="FK">Falkland Islands</territory>
-                       <territory type="FM">Micronesia</territory>
-                       <territory type="FO">Faroe Islands</territory>
-                       <territory type="FQ">French Southern and Antarctic Territories</territory>
-                       <territory type="FR">France</territory>
-                       <territory type="FX">Metropolitan France</territory>
-                       <territory type="GA">Gabon</territory>
-                       <territory type="GB">United Kingdom</territory>
-                       <territory type="GD">Grenada</territory>
-                       <territory type="GE">Georgia</territory>
-                       <territory type="GF">French Guiana</territory>
-                       <territory type="GG">Guernsey</territory>
-                       <territory type="GH">Ghana</territory>
-                       <territory type="GI">Gibraltar</territory>
-                       <territory type="GL">Greenland</territory>
-                       <territory type="GM">Gambia</territory>
-                       <territory type="GN">Guinea</territory>
-                       <territory type="GP">Guadeloupe</territory>
-                       <territory type="GQ">Equatorial Guinea</territory>
-                       <territory type="GR">Greece</territory>
-                       <territory type="GS">South Georgia and the South Sandwich Islands</territory>
-                       <territory type="GT">Guatemala</territory>
-                       <territory type="GU">Guam</territory>
-                       <territory type="GW">Guinea-Bissau</territory>
-                       <territory type="GY">Guyana</territory>
-                       <territory type="HK">Hong Kong SAR China</territory>
-                       <territory type="HM">Heard Island and McDonald Islands</territory>
-                       <territory type="HN">Honduras</territory>
-                       <territory type="HR">Croatia</territory>
-                       <territory type="HT">Haiti</territory>
-                       <territory type="HU">Hungary</territory>
-                       <territory type="ID">Indonesia</territory>
-                       <territory type="IE">Ireland</territory>
-                       <territory type="IL">Israel</territory>
-                       <territory type="IM">Isle of Man</territory>
-                       <territory type="IN">India</territory>
-                       <territory type="IO">British Indian Ocean Territory</territory>
-                       <territory type="IQ">Iraq</territory>
-                       <territory type="IR">Iran</territory>
-                       <territory type="IS">Iceland</territory>
-                       <territory type="IT">Italy</territory>
-                       <territory type="JE">Jersey</territory>
-                       <territory type="JM">Jamaica</territory>
-                       <territory type="JO">Jordan</territory>
-                       <territory type="JP">Japan</territory>
-                       <territory type="JT">Johnston Island</territory>
-                       <territory type="KE">Kenya</territory>
-                       <territory type="KG">Kyrgyzstan</territory>
-                       <territory type="KH">Cambodia</territory>
-                       <territory type="KI">Kiribati</territory>
-                       <territory type="KM">Comoros</territory>
-                       <territory type="KN">Saint Kitts and Nevis</territory>
-                       <territory type="KP">North Korea</territory>
-                       <territory type="KR">South Korea</territory>
-                       <territory type="KW">Kuwait</territory>
-                       <territory type="KY">Cayman Islands</territory>
-                       <territory type="KZ">Kazakhstan</territory>
-                       <territory type="LA">Laos</territory>
-                       <territory type="LB">Lebanon</territory>
-                       <territory type="LC">Saint Lucia</territory>
-                       <territory type="LI">Liechtenstein</territory>
-                       <territory type="LK">Sri Lanka</territory>
-                       <territory type="LR">Liberia</territory>
-                       <territory type="LS">Lesotho</territory>
-                       <territory type="LT">Lithuania</territory>
-                       <territory type="LU">Luxembourg</territory>
-                       <territory type="LV">Latvia</territory>
-                       <territory type="LY">Libya</territory>
-                       <territory type="MA">Morocco</territory>
-                       <territory type="MC">Monaco</territory>
-                       <territory type="MD">Moldova</territory>
-                       <territory type="ME">Montenegro</territory>
-                       <territory type="MG">Madagascar</territory>
-                       <territory type="MH">Marshall Islands</territory>
-                       <territory type="MI">Midway Islands</territory>
-                       <territory type="MK">Macedonia</territory>
-                       <territory type="ML">Mali</territory>
-                       <territory type="MM">Myanmar</territory>
-                       <territory type="MN">Mongolia</territory>
-                       <territory type="MO">Macao SAR China</territory>
-                       <territory type="MP">Northern Mariana Islands</territory>
-                       <territory type="MQ">Martinique</territory>
-                       <territory type="MR">Mauritania</territory>
-                       <territory type="MS">Montserrat</territory>
-                       <territory type="MT">Malta</territory>
-                       <territory type="MU">Mauritius</territory>
-                       <territory type="MV">Maldives</territory>
-                       <territory type="MW">Malawi</territory>
-                       <territory type="MX">Mexico</territory>
-                       <territory type="MY">Malaysia</territory>
-                       <territory type="MZ">Mozambique</territory>
-                       <territory type="NA">Namibia</territory>
-                       <territory type="NC">New Caledonia</territory>
-                       <territory type="NE">Niger</territory>
-                       <territory type="NF">Norfolk Island</territory>
-                       <territory type="NG">Nigeria</territory>
-                       <territory type="NI">Nicaragua</territory>
-                       <territory type="NL">Netherlands</territory>
-                       <territory type="NO">Norway</territory>
-                       <territory type="NP">Nepal</territory>
-                       <territory type="NQ">Dronning Maud Land</territory>
-                       <territory type="NR">Nauru</territory>
-                       <territory type="NT">Neutral Zone</territory>
-                       <territory type="NU">Niue</territory>
-                       <territory type="NZ">New Zealand</territory>
-                       <territory type="OM">Oman</territory>
-                       <territory type="PA">Panama</territory>
-                       <territory type="PC">Pacific Islands Trust Territory</territory>
-                       <territory type="PE">Peru</territory>
-                       <territory type="PF">French Polynesia</territory>
-                       <territory type="PG">Papua New Guinea</territory>
-                       <territory type="PH">Philippines</territory>
-                       <territory type="PK">Pakistan</territory>
-                       <territory type="PL">Poland</territory>
-                       <territory type="PM">Saint Pierre and Miquelon</territory>
-                       <territory type="PN">Pitcairn</territory>
-                       <territory type="PR">Puerto Rico</territory>
-                       <territory type="PS">Palestinian Territory</territory>
-                       <territory type="PT">Portugal</territory>
-                       <territory type="PU">U.S. Miscellaneous Pacific Islands</territory>
-                       <territory type="PW">Palau</territory>
-                       <territory type="PY">Paraguay</territory>
-                       <territory type="PZ">Panama Canal Zone</territory>
-                       <territory type="QA">Qatar</territory>
-                       <territory type="QO">Outlying Oceania</territory>
-                       <territory type="QU">European Union</territory>
-                       <territory type="RE">Reunion</territory>
-                       <territory type="RO">Romania</territory>
-                       <territory type="RS">Serbia</territory>
-                       <territory type="RU">Russia</territory>
-                       <territory type="RW">Rwanda</territory>
-                       <territory type="SA">Saudi Arabia</territory>
-                       <territory type="SB">Solomon Islands</territory>
-                       <territory type="SC">Seychelles</territory>
-                       <territory type="SD">Sudan</territory>
-                       <territory type="SE">Sweden</territory>
-                       <territory type="SG">Singapore</territory>
-                       <territory type="SH">Saint Helena</territory>
-                       <territory type="SI">Slovenia</territory>
-                       <territory type="SJ">Svalbard and Jan Mayen</territory>
-                       <territory type="SK">Slovakia</territory>
-                       <territory type="SL">Sierra Leone</territory>
-                       <territory type="SM">San Marino</territory>
-                       <territory type="SN">Senegal</territory>
-                       <territory type="SO">Somalia</territory>
-                       <territory type="SR">Suriname</territory>
-                       <territory type="ST">Sao Tome and Principe</territory>
-                       <territory type="SU">Union of Soviet Socialist Republics</territory>
-                       <territory type="SV">El Salvador</territory>
-                       <territory type="SY">Syria</territory>
-                       <territory type="SZ">Swaziland</territory>
-                       <territory type="TC">Turks and Caicos Islands</territory>
-                       <territory type="TD">Chad</territory>
-                       <territory type="TF">French Southern Territories</territory>
-                       <territory type="TG">Togo</territory>
-                       <territory type="TH">Thailand</territory>
-                       <territory type="TJ">Tajikistan</territory>
-                       <territory type="TK">Tokelau</territory>
-                       <territory type="TL">East Timor</territory>
-                       <territory type="TM">Turkmenistan</territory>
-                       <territory type="TN">Tunisia</territory>
-                       <territory type="TO">Tonga</territory>
-                       <territory type="TR">Turkey</territory>
-                       <territory type="TT">Trinidad and Tobago</territory>
-                       <territory type="TV">Tuvalu</territory>
-                       <territory type="TW">Taiwan</territory>
-                       <territory type="TZ">Tanzania</territory>
-                       <territory type="UA">Ukraine</territory>
-                       <territory type="UG">Uganda</territory>
-                       <territory type="UM">United States Minor Outlying Islands</territory>
-                       <territory type="US">United States</territory>
-                       <territory type="UY">Uruguay</territory>
-                       <territory type="UZ">Uzbekistan</territory>
-                       <territory type="VA">Vatican</territory>
-                       <territory type="VC">Saint Vincent and the Grenadines</territory>
-                       <territory type="VD">North Vietnam</territory>
-                       <territory type="VE">Venezuela</territory>
-                       <territory type="VG">British Virgin Islands</territory>
-                       <territory type="VI">U.S. Virgin Islands</territory>
-                       <territory type="VN">Vietnam</territory>
-                       <territory type="VU">Vanuatu</territory>
-                       <territory type="WF">Wallis and Futuna</territory>
-                       <territory type="WK">Wake Island</territory>
-                       <territory type="WS">Samoa</territory>
-                       <territory type="YD">People's Democratic Republic of Yemen</territory>
-                       <territory type="YE">Yemen</territory>
-                       <territory type="YT">Mayotte</territory>
-                       <territory type="ZA">South Africa</territory>
-                       <territory type="ZM">Zambia</territory>
-                       <territory type="ZW">Zimbabwe</territory>
-                       <territory type="ZZ">Unknown or Invalid Region</territory>
-               </territories>
-               <variants>
-                       <variant type="1901">Traditional German orthography</variant>
-                       <variant type="1996">German orthography of 1996</variant>
-                       <variant type="BOONT">Boontling</variant>
-                       <variant type="AREVELA">Eastern Armenian</variant>
-                       <variant type="AREVMDA">Western Armenian</variant>
-                       <variant type="GAULISH">Gaulish</variant>
-                       <variant type="GUOYU">Mandarin or Standard Chinese</variant>
-                       <variant type="HAKKA">Hakka</variant>
-                       <variant type="LOJBAN">Lojban</variant>
-                       <variant type="NEDIS">Natisone dialect</variant>
-                       <variant type="POLYTONI">Polytonic</variant>
-                       <variant type="POSIX">Computer</variant>
-                       <variant type="REVISED">Revised Orthography</variant>
-                       <variant type="ROZAJ">Resian</variant>
-                       <variant type="SAAHO">Saho</variant>
-                       <variant type="SCOUSE">Scouse</variant>
-                       <variant type="XIANG">Xiang or Hunanese</variant>
-               </variants>
-               <keys>
-                       <key type="calendar">Calendar</key>
-                       <key type="collation">Collation</key>
-                       <key type="currency">Currency</key>
-               </keys>
-               <types>
-                       <type type="big5han" key="collation">Traditional Chinese (Big5)</type>
-                       <type type="buddhist" key="calendar">Buddhist Calendar</type>
-                       <type type="chinese" key="calendar">Chinese Calendar</type>
-                       <type type="direct" key="collation">Direct Order</type>
-                       <type type="gb2312han" key="collation">Simplified Chinese (GB2312)</type>
-                       <type type="gregorian" key="calendar">Gregorian Calendar</type>
-                       <type type="hebrew" key="calendar">Hebrew Calendar</type>
-                       <type type="islamic" key="calendar">Islamic Calendar</type>
-                       <type type="islamic-civil" key="calendar">Islamic-Civil Calendar</type>
-                       <type type="japanese" key="calendar">Japanese Calendar</type>
-                       <type type="phonebook" key="collation">Phonebook Order</type>
-                       <type type="pinyin" key="collation">Pinyin Order</type>
-                       <type type="stroke" key="collation">Stroke Order</type>
-                       <type type="traditional" key="collation">Traditional</type>
-               </types>
-       </localeDisplayNames>
-       <characters>
-               <exemplarCharacters>[a-z]</exemplarCharacters>
-               <exemplarCharacters type="auxiliary">[á à ă â å ä ā æ ç é è ĕ ê ë ē í ì ĭ î ï ī ñ ó ò ŏ ô ö ø ō œ ß ú ù ŭ û ü ū ÿ]</exemplarCharacters>
-       </characters>
-       <dates>
-               <calendars>
-                       <calendar type="gregorian">
-                               <months>
-                                       <monthContext type="format">
-                                               <monthWidth type="abbreviated">
-                                                       <month type="1">Jan</month>
-                                                       <month type="2">Feb</month>
-                                                       <month type="3">Mar</month>
-                                                       <month type="4">Apr</month>
-                                                       <month type="5">May</month>
-                                                       <month type="6">Jun</month>
-                                                       <month type="7">Jul</month>
-                                                       <month type="8">Aug</month>
-                                                       <month type="9">Sep</month>
-                                                       <month type="10">Oct</month>
-                                                       <month type="11">Nov</month>
-                                                       <month type="12">Dec</month>
-                                               </monthWidth>
-                                               <monthWidth type="wide">
-                                                       <month type="1">January</month>
-                                                       <month type="2">February</month>
-                                                       <month type="3">March</month>
-                                                       <month type="4">April</month>
-                                                       <month type="5">May</month>
-                                                       <month type="6">June</month>
-                                                       <month type="7">July</month>
-                                                       <month type="8">August</month>
-                                                       <month type="9">September</month>
-                                                       <month type="10">October</month>
-                                                       <month type="11">November</month>
-                                                       <month type="12">December</month>
-                                               </monthWidth>
-                                       </monthContext>
-                                       <monthContext type="stand-alone">
-                                               <monthWidth type="narrow">
-                                                       <month type="1">J</month>
-                                                       <month type="2">F</month>
-                                                       <month type="3">M</month>
-                                                       <month type="4">A</month>
-                                                       <month type="5">M</month>
-                                                       <month type="6">J</month>
-                                                       <month type="7">J</month>
-                                                       <month type="8">A</month>
-                                                       <month type="9">S</month>
-                                                       <month type="10">O</month>
-                                                       <month type="11">N</month>
-                                                       <month type="12">D</month>
-                                               </monthWidth>
-                                       </monthContext>
-                               </months>
-                               <days>
-                                       <dayContext type="format">
-                                               <dayWidth type="abbreviated">
-                                                       <day type="sun">Sun</day>
-                                                       <day type="mon">Mon</day>
-                                                       <day type="tue">Tue</day>
-                                                       <day type="wed">Wed</day>
-                                                       <day type="thu">Thu</day>
-                                                       <day type="fri">Fri</day>
-                                                       <day type="sat">Sat</day>
-                                               </dayWidth>
-                                               <dayWidth type="wide">
-                                                       <day type="sun">Sunday</day>
-                                                       <day type="mon">Monday</day>
-                                                       <day type="tue">Tuesday</day>
-                                                       <day type="wed">Wednesday</day>
-                                                       <day type="thu">Thursday</day>
-                                                       <day type="fri">Friday</day>
-                                                       <day type="sat">Saturday</day>
-                                               </dayWidth>
-                                       </dayContext>
-                                       <dayContext type="stand-alone">
-                                               <dayWidth type="narrow">
-                                                       <day type="sun">S</day>
-                                                       <day type="mon">M</day>
-                                                       <day type="tue">T</day>
-                                                       <day type="wed">W</day>
-                                                       <day type="thu">T</day>
-                                                       <day type="fri">F</day>
-                                                       <day type="sat">S</day>
-                                               </dayWidth>
-                                       </dayContext>
-                               </days>
-                               <quarters>
-                                       <quarterContext type="format">
-                                               <quarterWidth type="wide">
-                                                       <quarter type="1">1st quarter</quarter>
-                                                       <quarter type="2">2nd quarter</quarter>
-                                                       <quarter type="3">3rd quarter</quarter>
-                                                       <quarter type="4">4th quarter</quarter>
-                                               </quarterWidth>
-                                       </quarterContext>
-                               </quarters>
-                               <eras>
-                                       <eraNames>
-                                               <era type="0">Before Christ</era>
-                                               <era type="1">Anno Domini</era>
-                                       </eraNames>
-                                       <eraAbbr>
-                                               <era type="0">BC</era>
-                                               <era type="1">AD</era>
-                                       </eraAbbr>
-                               </eras>
-                               <dateFormats>
-                                       <dateFormatLength type="full">
-                                               <dateFormat>
-                                                       <pattern>EEEE, MMMM d, yyyy</pattern>
-                                               </dateFormat>
-                                       </dateFormatLength>
-                                       <dateFormatLength type="long">
-                                               <dateFormat>
-                                                       <pattern>MMMM d, yyyy</pattern>
-                                               </dateFormat>
-                                       </dateFormatLength>
-                                       <dateFormatLength type="medium">
-                                               <dateFormat>
-                                                       <pattern>MMM d, yyyy</pattern>
-                                               </dateFormat>
-                                       </dateFormatLength>
-                                       <dateFormatLength type="short">
-                                               <dateFormat>
-                                                       <pattern>M/d/yy</pattern>
-                                               </dateFormat>
-                                       </dateFormatLength>
-                               </dateFormats>
-                               <timeFormats>
-                                       <timeFormatLength type="full">
-                                               <timeFormat>
-                                                       <pattern>h:mm:ss a v</pattern>
-                                               </timeFormat>
-                                       </timeFormatLength>
-                                       <timeFormatLength type="long">
-                                               <timeFormat>
-                                                       <pattern>h:mm:ss a z</pattern>
-                                               </timeFormat>
-                                       </timeFormatLength>
-                                       <timeFormatLength type="medium">
-                                               <timeFormat>
-                                                       <pattern>h:mm:ss a</pattern>
-                                               </timeFormat>
-                                       </timeFormatLength>
-                                       <timeFormatLength type="short">
-                                               <timeFormat>
-                                                       <pattern>h:mm a</pattern>
-                                               </timeFormat>
-                                       </timeFormatLength>
-                               </timeFormats>
-                               <dateTimeFormats>
-                                       <availableFormats>
-                                               <dateFormatItem id="HHmm" draft="provisional">HH:mm</dateFormatItem>
-                                               <dateFormatItem id="HHmmss" draft="provisional">HH:mm:ss</dateFormatItem>
-                                               <dateFormatItem id="MMMMd" draft="provisional">MMMM d</dateFormatItem>
-                                               <dateFormatItem id="Md" draft="provisional">M/d</dateFormatItem>
-                                               <dateFormatItem id="mmss" draft="provisional">mm:ss</dateFormatItem>
-                                               <dateFormatItem id="yyMM" draft="provisional">MM/yy</dateFormatItem>
-                                               <dateFormatItem id="yyQQQQ" draft="provisional">QQQQ yy</dateFormatItem>
-                                               <dateFormatItem id="yyyyMMM" draft="provisional">MMM yyyy</dateFormatItem>
-                                       </availableFormats>
-                               </dateTimeFormats>
-                               <fields>
-                                       <field type="day">
-                                               <relative type="0">Today</relative>
-                                               <relative type="1">Tomorrow</relative>
-                                               <relative type="-1">Yesterday</relative>
-                                       </field>
-                                       <field type="dayperiod">
-                                               <displayName>AM/PM</displayName>
-                                       </field>
-                               </fields>
-                       </calendar>
-               </calendars>
-               <timeZoneNames>
-                       <zone type="America/Vancouver">
-                               <long>
-                                       <generic>Pacific Time (CA)</generic>
-                                       <standard>Pacific Standard Time (CA)</standard>
-                                       <daylight>Pacific Daylight Time (CA)</daylight>
-                               </long>
-                               <short>
-                                       <generic>PT (CA)</generic>
-                                       <standard>PST (CA)</standard>
-                                       <daylight>PDT (CA)</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Edmonton">
-                               <long>
-                                       <generic>Mountain Time (CA)</generic>
-                                       <standard>Mountain Standard Time (CA)</standard>
-                                       <daylight>Mountain Daylight Time (CA)</daylight>
-                               </long>
-                               <short>
-                                       <generic>MT (CA)</generic>
-                                       <standard>MST (CA)</standard>
-                                       <daylight>MDT (CA)</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Winnipeg">
-                               <long>
-                                       <generic>Central Time (CA)</generic>
-                                       <standard>Central Standard Time (CA)</standard>
-                                       <daylight>Central Daylight Time (CA)</daylight>
-                               </long>
-                               <short>
-                                       <generic>CT (CA)</generic>
-                                       <standard>CST (CA)</standard>
-                                       <daylight>CDT (CA)</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Montreal">
-                               <long>
-                                       <generic>Eastern Time (CA)</generic>
-                                       <standard>Eastern Standard Time (CA)</standard>
-                                       <daylight>Eastern Daylight Time (CA)</daylight>
-                               </long>
-                               <short>
-                                       <generic>ET (CA)</generic>
-                                       <standard>EST (CA)</standard>
-                                       <daylight>EDT (CA)</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Halifax">
-                               <long>
-                                       <generic>Atlantic Time</generic>
-                                       <standard>Atlantic Standard Time</standard>
-                                       <daylight>Atlantic Daylight Time</daylight>
-                               </long>
-                               <short>
-                                       <generic>AT</generic>
-                                       <standard>AST</standard>
-                                       <daylight>ADT</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/St_Johns">
-                               <long>
-                                       <generic>Newfoundland Time</generic>
-                                       <standard>Newfoundland Standard Time</standard>
-                                       <daylight>Newfoundland Daylight Time</daylight>
-                               </long>
-                               <short>
-                                       <generic>NT</generic>
-                                       <standard>NST</standard>
-                                       <daylight>NDT</daylight>
-                               </short>
-                               <exemplarCity>St. John’s</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Shanghai">
-                               <long>
-                                       <standard>China Standard Time</standard>
-                                       <daylight>China Daylight Time</daylight>
-                               </long>
-                       </zone>
-                       <zone type="Europe/Paris">
-                               <long>
-                                       <generic>Central European Time</generic>
-                                       <standard>Central European Standard Time</standard>
-                                       <daylight>Central European Daylight Time</daylight>
-                               </long>
-                               <short>
-                                       <generic>CET</generic>
-                                       <standard>CEST</standard>
-                                       <daylight>CEDT</daylight>
-                               </short>
-                               <exemplarCity>Paris</exemplarCity>
-                       </zone>
-                       <zone type="Europe/London">
-                               <long>
-                                       <standard>Greenwich Mean Time</standard>
-                                       <daylight>British Summer Time</daylight>
-                               </long>
-                               <short>
-                                       <standard>GMT</standard>
-                                       <daylight>BST</daylight>
-                               </short>
-                       </zone>
-                       <zone type="Europe/Dublin">
-                               <long>
-                                       <standard>Greenwich Mean Time</standard>
-                                       <daylight>Irish Summer Time</daylight>
-                               </long>
-                               <short>
-                                       <standard>GMT</standard>
-                                       <daylight>IST</daylight>
-                               </short>
-                               <exemplarCity>Dublin</exemplarCity>
-                       </zone>
-                       <!-- Note: the following is known to be sparse, and needs to be improved in the future -->
-                       <zone type="Asia/Jerusalem">
-                               <long>
-                                       <standard>Israel Standard Time</standard>
-                                       <daylight>Israel Daylight Time</daylight>
-                               </long>
-                               <exemplarCity>Jerusalem</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Tokyo">
-                               <long>
-                                       <standard>Japan Standard Time</standard>
-                                       <daylight>Japan Daylight Time</daylight>
-                               </long>
-                               <short>
-                                       <standard>JST</standard>
-                                       <daylight>JDT</daylight>
-                               </short>
-                               <exemplarCity>Tokyo</exemplarCity>
-                       </zone>
-                       <zone type="Europe/Bucharest">
-                               <long>
-                                       <standard>Eastern European Standard Time</standard>
-                                       <daylight>Eastern European Daylight Time</daylight>
-                               </long>
-                               <short>
-                                       <standard>EET</standard>
-                                       <daylight>EEST</daylight>
-                               </short>
-                               <exemplarCity>Bucharest</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Singapore">
-                               <long>
-                                       <standard>Singapore Standard Time</standard>
-                                       <daylight>Singapore Standard Time</daylight>
-                               </long>
-                               <short>
-                                       <standard>SST</standard>
-                                       <daylight>SST</daylight>
-                               </short>
-                               <exemplarCity>Singapore</exemplarCity>
-                       </zone>
-                       <zone type="Pacific/Honolulu">
-                               <long>
-                                       <generic>Hawaii Time</generic>
-                                       <standard>Hawaii Standard Time</standard>
-                                       <daylight>Hawaii Daylight Time</daylight>
-                               </long>
-                               <short>
-                                       <generic>HT</generic>
-                                       <standard>HST</standard>
-                                       <daylight>HDT</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Anchorage">
-                               <long>
-                                       <generic>Alaska Time</generic>
-                                       <standard>Alaska Standard Time</standard>
-                                       <daylight>Alaska Daylight Time</daylight>
-                               </long>
-                               <short>
-                                       <generic>AKT</generic>
-                                       <standard>AKST</standard>
-                               </short>
-                       </zone>
-                       <!-- Note: zones that don't use daylight time need further work -->
-                       <zone type="America/Los_Angeles">
-                               <long>
-                                       <generic>Pacific Time</generic>
-                                       <standard>Pacific Standard Time</standard>
-                                       <daylight>Pacific Daylight Time</daylight>
-                               </long>
-                               <short>
-                                       <generic>PT</generic>
-                                       <standard>PST</standard>
-                                       <daylight>PDT</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Denver">
-                               <long>
-                                       <generic>Mountain Time</generic>
-                                       <standard>Mountain Standard Time</standard>
-                                       <daylight>Mountain Daylight Time</daylight>
-                               </long>
-                               <short>
-                                       <generic>MT</generic>
-                                       <standard>MST</standard>
-                                       <daylight>MDT</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Chicago">
-                               <long>
-                                       <generic>Central Time</generic>
-                                       <standard>Central Standard Time</standard>
-                                       <daylight>Central Daylight Time</daylight>
-                               </long>
-                               <short>
-                                       <generic>CT</generic>
-                                       <standard>CST</standard>
-                                       <daylight>CDT</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/New_York">
-                               <long>
-                                       <generic>Eastern Time</generic>
-                                       <standard>Eastern Standard Time</standard>
-                                       <daylight>Eastern Daylight Time</daylight>
-                               </long>
-                               <short>
-                                       <generic>ET</generic>
-                                       <standard>EST</standard>
-                                       <daylight>EDT</daylight>
-                               </short>
-                       </zone>
-               </timeZoneNames>
-       </dates>
-       <numbers>
-               <currencyFormats>
-                       <currencyFormatLength>
-                               <currencyFormat>
-                                       <pattern>¤#,##0.00</pattern>
-                               </currencyFormat>
-                       </currencyFormatLength>
-               </currencyFormats>
-               <currencies>
-                       <currency type="ADP">
-                               <displayName>Andorran Peseta</displayName>
-                       </currency>
-                       <currency type="AED">
-                               <displayName>United Arab Emirates Dirham</displayName>
-                       </currency>
-                       <currency type="AFA">
-                               <displayName>Afghani (1927-2002)</displayName>
-                       </currency>
-                       <currency type="AFN">
-                               <displayName>Afghani</displayName>
-                               <symbol>Af</symbol>
-                       </currency>
-                       <currency type="ALL">
-                               <displayName>Albanian Lek</displayName>
-                               <symbol>lek</symbol>
-                       </currency>
-                       <currency type="AMD">
-                               <displayName>Armenian Dram</displayName>
-                               <symbol>dram</symbol>
-                       </currency>
-                       <currency type="ANG">
-                               <displayName>Netherlands Antillan Guilder</displayName>
-                               <symbol>NA f.</symbol>
-                       </currency>
-                       <currency type="AOA">
-                               <displayName>Angolan Kwanza</displayName>
-                       </currency>
-                       <currency type="AOK">
-                               <displayName>Angolan Kwanza (1977-1990)</displayName>
-                       </currency>
-                       <currency type="AON">
-                               <displayName>Angolan New Kwanza (1990-2000)</displayName>
-                       </currency>
-                       <currency type="AOR">
-                               <displayName>Angolan Kwanza Reajustado (1995-1999)</displayName>
-                       </currency>
-                       <currency type="ARA">
-                               <displayName>Argentine Austral</displayName>
-                       </currency>
-                       <currency type="ARP">
-                               <displayName>Argentine Peso (1983-1985)</displayName>
-                       </currency>
-                       <currency type="ARS">
-                               <displayName>Argentine Peso</displayName>
-                               <symbol>Arg$</symbol>
-                       </currency>
-                       <currency type="ATS">
-                               <displayName>Austrian Schilling</displayName>
-                       </currency>
-                       <currency type="AUD">
-                               <displayName>Australian Dollar</displayName>
-                               <symbol>$A</symbol>
-                       </currency>
-                       <currency type="AWG">
-                               <displayName>Aruban Guilder</displayName>
-                       </currency>
-                       <currency type="AZM">
-                               <displayName>Azerbaijanian Manat (1993-2006)</displayName>
-                       </currency>
-                       <currency type="AZN">
-                               <displayName>Azerbaijanian Manat</displayName>
-                       </currency>
-                       <currency type="BAD">
-                               <displayName>Bosnia-Herzegovina Dinar</displayName>
-                       </currency>
-                       <currency type="BAM">
-                               <displayName>Bosnia-Herzegovina Convertible Mark</displayName>
-                               <symbol>KM</symbol>
-                       </currency>
-                       <currency type="BBD">
-                               <displayName>Barbados Dollar</displayName>
-                               <symbol>BDS$</symbol>
-                       </currency>
-                       <currency type="BDT">
-                               <displayName>Bangladesh Taka</displayName>
-                               <symbol>Tk</symbol>
-                       </currency>
-                       <currency type="BEC">
-                               <displayName>Belgian Franc (convertible)</displayName>
-                       </currency>
-                       <currency type="BEF">
-                               <displayName>Belgian Franc</displayName>
-                               <symbol>BF</symbol>
-                       </currency>
-                       <currency type="BEL">
-                               <displayName>Belgian Franc (financial)</displayName>
-                       </currency>
-                       <currency type="BGL">
-                               <displayName>Bulgarian Hard Lev</displayName>
-                               <symbol>lev</symbol>
-                       </currency>
-                       <currency type="BGN">
-                               <displayName>Bulgarian New Lev</displayName>
-                       </currency>
-                       <currency type="BHD">
-                               <displayName>Bahraini Dinar</displayName>
-                               <symbol>BD</symbol>
-                       </currency>
-                       <currency type="BIF">
-                               <displayName>Burundi Franc</displayName>
-                               <symbol>Fbu</symbol>
-                       </currency>
-                       <currency type="BMD">
-                               <displayName>Bermudan Dollar</displayName>
-                               <symbol>Ber$</symbol>
-                       </currency>
-                       <currency type="BND">
-                               <displayName>Brunei Dollar</displayName>
-                       </currency>
-                       <currency type="BOB">
-                               <displayName>Boliviano</displayName>
-                               <symbol>Bs</symbol>
-                       </currency>
-                       <currency type="BOP">
-                               <displayName>Bolivian Peso</displayName>
-                       </currency>
-                       <currency type="BOV">
-                               <displayName>Bolivian Mvdol</displayName>
-                       </currency>
-                       <currency type="BRB">
-                               <displayName>Brazilian Cruzeiro Novo (1967-1986)</displayName>
-                       </currency>
-                       <currency type="BRC">
-                               <displayName>Brazilian Cruzado</displayName>
-                       </currency>
-                       <currency type="BRE">
-                               <displayName>Brazilian Cruzeiro (1990-1993)</displayName>
-                       </currency>
-                       <currency type="BRL">
-                               <displayName>Brazilian Real</displayName>
-                               <symbol>R$</symbol>
-                       </currency>
-                       <currency type="BRN">
-                               <displayName>Brazilian Cruzado Novo</displayName>
-                       </currency>
-                       <currency type="BRR">
-                               <displayName>Brazilian Cruzeiro</displayName>
-                       </currency>
-                       <currency type="BSD">
-                               <displayName>Bahamian Dollar</displayName>
-                       </currency>
-                       <currency type="BTN">
-                               <displayName>Bhutan Ngultrum</displayName>
-                               <symbol>Nu</symbol>
-                       </currency>
-                       <currency type="BUK">
-                               <displayName>Burmese Kyat</displayName>
-                       </currency>
-                       <currency type="BWP">
-                               <displayName>Botswanan Pula</displayName>
-                       </currency>
-                       <currency type="BYB">
-                               <displayName>Belarussian New Ruble (1994-1999)</displayName>
-                       </currency>
-                       <currency type="BYR">
-                               <displayName>Belarussian Ruble</displayName>
-                               <symbol>Rbl</symbol>
-                       </currency>
-                       <currency type="BZD">
-                               <displayName>Belize Dollar</displayName>
-                               <symbol>BZ$</symbol>
-                       </currency>
-                       <currency type="CAD">
-                               <displayName>Canadian Dollar</displayName>
-                               <symbol>Can$</symbol>
-                       </currency>
-                       <currency type="CDF">
-                               <displayName>Congolese Franc Congolais</displayName>
-                       </currency>
-                       <currency type="CHE">
-                               <displayName>WIR Euro</displayName>
-                       </currency>
-                       <currency type="CHF">
-                               <displayName>Swiss Franc</displayName>
-                               <symbol>SwF</symbol>
-                       </currency>
-                       <currency type="CHW">
-                               <displayName>WIR Franc</displayName>
-                       </currency>
-                       <currency type="CLF">
-                               <displayName>Chilean Unidades de Fomento</displayName>
-                       </currency>
-                       <currency type="CLP">
-                               <displayName>Chilean Peso</displayName>
-                               <symbol>Ch$</symbol>
-                       </currency>
-                       <currency type="CNY">
-                               <displayName>Chinese Yuan Renminbi</displayName>
-                               <symbol>Y</symbol>
-                       </currency>
-                       <currency type="COP">
-                               <displayName>Colombian Peso</displayName>
-                               <symbol>Col$</symbol>
-                       </currency>
-                       <currency type="COU">
-                               <displayName>Unidad de Valor Real</displayName>
-                       </currency>
-                       <currency type="CRC">
-                               <displayName>Costa Rican Colon</displayName>
-                               <symbol>C</symbol>
-                       </currency>
-                       <currency type="CSD">
-                               <displayName>Serbian Dinar</displayName>
-                       </currency>
-                       <currency type="CSK">
-                               <displayName>Czechoslovak Hard Koruna</displayName>
-                       </currency>
-                       <currency type="CUP">
-                               <displayName>Cuban Peso</displayName>
-                       </currency>
-                       <currency type="CVE">
-                               <displayName>Cape Verde Escudo</displayName>
-                               <symbol>CVEsc</symbol>
-                       </currency>
-                       <currency type="CYP">
-                               <displayName>Cyprus Pound</displayName>
-                               <symbol>£C</symbol>
-                       </currency>
-                       <currency type="CZK">
-                               <displayName>Czech Republic Koruna</displayName>
-                       </currency>
-                       <currency type="DDM">
-                               <displayName>East German Ostmark</displayName>
-                       </currency>
-                       <currency type="DEM">
-                               <displayName>Deutsche Mark</displayName>
-                       </currency>
-                       <currency type="DJF">
-                               <displayName>Djibouti Franc</displayName>
-                               <symbol>DF</symbol>
-                       </currency>
-                       <currency type="DKK">
-                               <displayName>Danish Krone</displayName>
-                               <symbol>DKr</symbol>
-                       </currency>
-                       <currency type="DOP">
-                               <displayName>Dominican Peso</displayName>
-                               <symbol>RD$</symbol>
-                       </currency>
-                       <currency type="DZD">
-                               <displayName>Algerian Dinar</displayName>
-                               <symbol>DA</symbol>
-                       </currency>
-                       <currency type="ECS">
-                               <displayName>Ecuador Sucre</displayName>
-                       </currency>
-                       <currency type="ECV">
-                               <displayName>Ecuador Unidad de Valor Constante (UVC)</displayName>
-                       </currency>
-                       <currency type="EEK">
-                               <displayName>Estonian Kroon</displayName>
-                       </currency>
-                       <currency type="EGP">
-                               <displayName>Egyptian Pound</displayName>
-                       </currency>
-                       <currency type="EQE">
-                               <displayName>Ekwele</displayName>
-                       </currency>
-                       <currency type="ERN">
-                               <displayName>Eritrean Nakfa</displayName>
-                       </currency>
-                       <currency type="ESA">
-                               <displayName>Spanish Peseta (A account)</displayName>
-                       </currency>
-                       <currency type="ESB">
-                               <displayName>Spanish Peseta (convertible account)</displayName>
-                       </currency>
-                       <currency type="ESP">
-                               <displayName>Spanish Peseta</displayName>
-                               <symbol>₧</symbol>
-                       </currency>
-                       <currency type="ETB">
-                               <displayName>Ethiopian Birr</displayName>
-                               <symbol>Br</symbol>
-                       </currency>
-                       <currency type="EUR">
-                               <displayName>Euro</displayName>
-                       </currency>
-                       <currency type="FIM">
-                               <displayName>Finnish Markka</displayName>
-                       </currency>
-                       <currency type="FJD">
-                               <displayName>Fiji Dollar</displayName>
-                               <symbol>F$</symbol>
-                       </currency>
-                       <currency type="FKP">
-                               <displayName>Falkland Islands Pound</displayName>
-                       </currency>
-                       <currency type="FRF">
-                               <displayName>French Franc</displayName>
-                       </currency>
-                       <currency type="GBP">
-                               <displayName>British Pound Sterling</displayName>
-                       </currency>
-                       <currency type="GEK">
-                               <displayName>Georgian Kupon Larit</displayName>
-                       </currency>
-                       <currency type="GEL">
-                               <displayName>Georgian Lari</displayName>
-                               <symbol>lari</symbol>
-                       </currency>
-                       <currency type="GHC">
-                               <displayName>Ghana Cedi</displayName>
-                       </currency>
-                       <currency type="GIP">
-                               <displayName>Gibraltar Pound</displayName>
-                       </currency>
-                       <currency type="GMD">
-                               <displayName>Gambia Dalasi</displayName>
-                       </currency>
-                       <currency type="GNF">
-                               <displayName>Guinea Franc</displayName>
-                               <symbol>GF</symbol>
-                       </currency>
-                       <currency type="GNS">
-                               <displayName>Guinea Syli</displayName>
-                       </currency>
-                       <currency type="GQE">
-                               <displayName>Equatorial Guinea Ekwele Guineana</displayName>
-                       </currency>
-                       <currency type="GRD">
-                               <displayName>Greek Drachma</displayName>
-                       </currency>
-                       <currency type="GTQ">
-                               <displayName>Guatemala Quetzal</displayName>
-                               <symbol>Q</symbol>
-                       </currency>
-                       <currency type="GWE">
-                               <displayName>Portuguese Guinea Escudo</displayName>
-                       </currency>
-                       <currency type="GWP">
-                               <displayName>Guinea-Bissau Peso</displayName>
-                       </currency>
-                       <currency type="GYD">
-                               <displayName>Guyana Dollar</displayName>
-                               <symbol>G$</symbol>
-                       </currency>
-                       <currency type="HKD">
-                               <displayName>Hong Kong Dollar</displayName>
-                               <symbol>HK$</symbol>
-                       </currency>
-                       <currency type="HNL">
-                               <displayName>Hoduras Lempira</displayName>
-                               <symbol>L</symbol>
-                       </currency>
-                       <currency type="HRD">
-                               <displayName>Croatian Dinar</displayName>
-                       </currency>
-                       <currency type="HRK">
-                               <displayName>Croatian Kuna</displayName>
-                       </currency>
-                       <currency type="HTG">
-                               <displayName>Haitian Gourde</displayName>
-                       </currency>
-                       <currency type="HUF">
-                               <displayName>Hungarian Forint</displayName>
-                               <symbol>Ft</symbol>
-                       </currency>
-                       <currency type="IDR">
-                               <displayName>Indonesian Rupiah</displayName>
-                               <symbol>Rp</symbol>
-                       </currency>
-                       <currency type="IEP">
-                               <displayName>Irish Pound</displayName>
-                               <symbol>IR£</symbol>
-                       </currency>
-                       <currency type="ILP">
-                               <displayName>Israeli Pound</displayName>
-                       </currency>
-                       <currency type="ILS">
-                               <displayName>Israeli New Sheqel</displayName>
-                       </currency>
-                       <currency type="INR">
-                               <displayName>Indian Rupee</displayName>
-                       </currency>
-                       <currency type="IQD">
-                               <displayName>Iraqi Dinar</displayName>
-                               <symbol>ID</symbol>
-                       </currency>
-                       <currency type="IRR">
-                               <displayName>Iranian Rial</displayName>
-                               <symbol>RI</symbol>
-                       </currency>
-                       <currency type="ISK">
-                               <displayName>Icelandic Krona</displayName>
-                       </currency>
-                       <currency type="ITL">
-                               <displayName>Italian Lira</displayName>
-                       </currency>
-                       <currency type="JMD">
-                               <displayName>Jamaican Dollar</displayName>
-                               <symbol>J$</symbol>
-                       </currency>
-                       <currency type="JOD">
-                               <displayName>Jordanian Dinar</displayName>
-                               <symbol>JD</symbol>
-                       </currency>
-                       <currency type="JPY">
-                               <displayName>Japanese Yen</displayName>
-                       </currency>
-                       <currency type="KES">
-                               <displayName>Kenyan Shilling</displayName>
-                               <symbol>K Sh</symbol>
-                       </currency>
-                       <currency type="KGS">
-                               <displayName>Kyrgystan Som</displayName>
-                               <symbol>som</symbol>
-                       </currency>
-                       <currency type="KHR">
-                               <displayName>Cambodian Riel</displayName>
-                               <symbol>CR</symbol>
-                       </currency>
-                       <currency type="KMF">
-                               <displayName>Comoro Franc</displayName>
-                               <symbol>CF</symbol>
-                       </currency>
-                       <currency type="KPW">
-                               <displayName>North Korean Won</displayName>
-                       </currency>
-                       <currency type="KRW">
-                               <displayName>South Korean Won</displayName>
-                       </currency>
-                       <currency type="KWD">
-                               <displayName>Kuwaiti Dinar</displayName>
-                               <symbol>KD</symbol>
-                       </currency>
-                       <currency type="KYD">
-                               <displayName>Cayman Islands Dollar</displayName>
-                       </currency>
-                       <currency type="KZT">
-                               <displayName>Kazakhstan Tenge</displayName>
-                               <symbol>T</symbol>
-                       </currency>
-                       <currency type="LAK">
-                               <displayName>Laotian Kip</displayName>
-                       </currency>
-                       <currency type="LBP">
-                               <displayName>Lebanese Pound</displayName>
-                               <symbol>LL</symbol>
-                       </currency>
-                       <currency type="LKR">
-                               <displayName>Sri Lanka Rupee</displayName>
-                               <symbol>SL Re</symbol>
-                       </currency>
-                       <currency type="LRD">
-                               <displayName>Liberian Dollar</displayName>
-                       </currency>
-                       <currency type="LSL">
-                               <displayName>Lesotho Loti</displayName>
-                               <symbol>M</symbol>
-                       </currency>
-                       <currency type="LSM">
-                               <displayName>Maloti</displayName>
-                       </currency>
-                       <currency type="LTL">
-                               <displayName>Lithuanian Lita</displayName>
-                       </currency>
-                       <currency type="LTT">
-                               <displayName>Lithuanian Talonas</displayName>
-                       </currency>
-                       <currency type="LUC">
-                               <displayName>Luxembourg Convertible Franc</displayName>
-                       </currency>
-                       <currency type="LUF">
-                               <displayName>Luxembourg Franc</displayName>
-                       </currency>
-                       <currency type="LUL">
-                               <displayName>Luxembourg Financial Franc</displayName>
-                       </currency>
-                       <currency type="LVL">
-                               <displayName>Latvian Lats</displayName>
-                       </currency>
-                       <currency type="LVR">
-                               <displayName>Latvian Ruble</displayName>
-                       </currency>
-                       <currency type="LYD">
-                               <displayName>Libyan Dinar</displayName>
-                               <symbol>LD</symbol>
-                       </currency>
-                       <currency type="MAD">
-                               <displayName>Moroccan Dirham</displayName>
-                       </currency>
-                       <currency type="MAF">
-                               <displayName>Moroccan Franc</displayName>
-                       </currency>
-                       <currency type="MDL">
-                               <displayName>Moldovan Leu</displayName>
-                       </currency>
-                       <currency type="MGA">
-                               <displayName>Madagascar Ariary</displayName>
-                       </currency>
-                       <currency type="MGF">
-                               <displayName>Madagascar Franc</displayName>
-                       </currency>
-                       <currency type="MKD">
-                               <displayName>Macedonian Denar</displayName>
-                               <symbol>MDen</symbol>
-                       </currency>
-                       <currency type="MLF">
-                               <displayName>Mali Franc</displayName>
-                       </currency>
-                       <currency type="MMK">
-                               <displayName>Myanmar Kyat</displayName>
-                       </currency>
-                       <currency type="MNT">
-                               <displayName>Mongolian Tugrik</displayName>
-                               <symbol>Tug</symbol>
-                       </currency>
-                       <currency type="MOP">
-                               <displayName>Macao Pataca</displayName>
-                       </currency>
-                       <currency type="MRO">
-                               <displayName>Mauritania Ouguiya</displayName>
-                               <symbol>UM</symbol>
-                       </currency>
-                       <currency type="MTL">
-                               <displayName>Maltese Lira</displayName>
-                               <symbol>Lm</symbol>
-                       </currency>
-                       <currency type="MTP">
-                               <displayName>Maltese Pound</displayName>
-                       </currency>
-                       <currency type="MUR">
-                               <displayName>Mauritius Rupee</displayName>
-                       </currency>
-                       <currency type="MVR">
-                               <displayName>Maldive Islands Rufiyaa</displayName>
-                       </currency>
-                       <currency type="MWK">
-                               <displayName>Malawi Kwacha</displayName>
-                               <symbol>MK</symbol>
-                       </currency>
-                       <currency type="MXN">
-                               <displayName>Mexican Peso</displayName>
-                               <symbol>MEX$</symbol>
-                       </currency>
-                       <currency type="MXP">
-                               <displayName>Mexican Silver Peso (1861-1992)</displayName>
-                       </currency>
-                       <currency type="MXV">
-                               <displayName>Mexican Unidad de Inversion (UDI)</displayName>
-                       </currency>
-                       <currency type="MYR">
-                               <displayName>Malaysian Ringgit</displayName>
-                               <symbol>RM</symbol>
-                       </currency>
-                       <currency type="MZE">
-                               <displayName>Mozambique Escudo</displayName>
-                       </currency>
-                       <currency type="MZM">
-                               <displayName>Old Mozambique Metical</displayName>
-                               <symbol>Mt</symbol>
-                       </currency>
-                               <currency type="MZN">
-                               <displayName>Mozambique Metical</displayName>
-                               <symbol>MTn</symbol>
-                       </currency>
-                       <currency type="NAD">
-                               <displayName>Namibia Dollar</displayName>
-                               <symbol>N$</symbol>
-                       </currency>
-                       <currency type="NGN">
-                               <displayName>Nigerian Naira</displayName>
-                       </currency>
-                       <currency type="NIC">
-                               <displayName>Nicaraguan Cordoba</displayName>
-                       </currency>
-                       <currency type="NIO">
-                               <displayName>Nicaraguan Cordoba Oro</displayName>
-                       </currency>
-                       <currency type="NLG">
-                               <displayName>Netherlands Guilder</displayName>
-                       </currency>
-                       <currency type="NOK">
-                               <displayName>Norwegian Krone</displayName>
-                               <symbol>NKr</symbol>
-                       </currency>
-                       <currency type="NPR">
-                               <displayName>Nepalese Rupee</displayName>
-                               <symbol>Nrs</symbol>
-                       </currency>
-                       <currency type="NZD">
-                               <displayName>New Zealand Dollar</displayName>
-                               <symbol>$NZ</symbol>
-                       </currency>
-                       <currency type="OMR">
-                               <displayName>Oman Rial</displayName>
-                               <symbol>RO</symbol>
-                       </currency>
-                       <currency type="PAB">
-                               <displayName>Panamanian Balboa</displayName>
-                       </currency>
-                       <currency type="PEI">
-                               <displayName>Peruvian Inti</displayName>
-                       </currency>
-                       <currency type="PEN">
-                               <displayName>Peruvian Sol Nuevo</displayName>
-                       </currency>
-                       <currency type="PES">
-                               <displayName>Peruvian Sol</displayName>
-                       </currency>
-                       <currency type="PGK">
-                               <displayName>Papua New Guinea Kina</displayName>
-                       </currency>
-                       <currency type="PHP">
-                               <displayName>Philippine Peso</displayName>
-                               <symbol>Php</symbol>
-                       </currency>
-                       <currency type="PKR">
-                               <displayName>Pakistan Rupee</displayName>
-                               <symbol>Pra</symbol>
-                       </currency>
-                       <currency type="PLN">
-                               <displayName>Polish Zloty</displayName>
-                               <symbol>Zl</symbol>
-                       </currency>
-                       <currency type="PLZ">
-                               <displayName>Polish Zloty (1950-1995)</displayName>
-                       </currency>
-                       <currency type="PTE">
-                               <displayName>Portuguese Escudo</displayName>
-                       </currency>
-                       <currency type="PYG">
-                               <displayName>Paraguay Guarani</displayName>
-                       </currency>
-                       <currency type="QAR">
-                               <displayName>Qatari Rial</displayName>
-                               <symbol>QR</symbol>
-                       </currency>
-                       <currency type="RHD">
-                               <displayName>Rhodesian Dollar</displayName>
-                       </currency>
-                       <currency type="ROL">
-                               <displayName>Old Romanian Leu</displayName>
-                               <!-- FYI Lei is the plural form of Leu. The currency symbol should be considered for change too. -->
-                               <symbol>=0#Old lei|1#Old leu|1&lt;Old lei</symbol>
-                       </currency>
-                       <currency type="RON">
-                               <displayName>Romanian Leu</displayName>
-                               <symbol>=0#lei|1#leu|1&lt;lei</symbol>
-                       </currency>
-                       <currency type="RUB">
-                               <displayName>Russian Ruble</displayName>
-                       </currency>
-                       <currency type="RUR">
-                               <displayName>Russian Ruble (1991-1998)</displayName>
-                       </currency>
-                       <currency type="RWF">
-                               <displayName>Rwandan Franc</displayName>
-                       </currency>
-                       <currency type="SAR">
-                               <displayName>Saudi Riyal</displayName>
-                               <symbol>SRl</symbol>
-                       </currency>
-                       <currency type="SBD">
-                               <displayName>Solomon Islands Dollar</displayName>
-                               <symbol>SI$</symbol>
-                       </currency>
-                       <currency type="SCR">
-                               <displayName>Seychelles Rupee</displayName>
-                               <symbol>SR</symbol>
-                       </currency>
-                       <currency type="SDD">
-                               <displayName>Sudanese Dinar</displayName>
-                       </currency>
-                       <currency type="SDP">
-                               <displayName>Sudanese Pound</displayName>
-                       </currency>
-                       <currency type="SEK">
-                               <displayName>Swedish Krona</displayName>
-                               <symbol>SKr</symbol>
-                       </currency>
-                       <currency type="SGD">
-                               <displayName>Singapore Dollar</displayName>
-                               <symbol>S$</symbol>
-                       </currency>
-                       <currency type="SHP">
-                               <displayName>Saint Helena Pound</displayName>
-                       </currency>
-                       <currency type="SIT">
-                               <displayName>Slovenia Tolar</displayName>
-                       </currency>
-                       <currency type="SKK">
-                               <displayName>Slovak Koruna</displayName>
-                               <symbol>Sk</symbol>
-                       </currency>
-                       <currency type="SLL">
-                               <displayName>Sierra Leone Leone</displayName>
-                       </currency>
-                       <currency type="SOS">
-                               <displayName>Somali Shilling</displayName>
-                               <symbol>So. Sh.</symbol>
-                       </currency>
-                       <currency type="SRD">
-                               <displayName>Surinam Dollar</displayName>
-                       </currency>
-                       <currency type="SRG">
-                               <displayName>Suriname Guilder</displayName>
-                               <symbol>Sf</symbol>
-                       </currency>
-                       <currency type="STD">
-                               <displayName>Sao Tome and Principe Dobra</displayName>
-                               <symbol>Db</symbol>
-                       </currency>
-                       <currency type="SUR">
-                               <displayName>Soviet Rouble</displayName>
-                       </currency>
-                       <currency type="SVC">
-                               <displayName>El Salvador Colon</displayName>
-                       </currency>
-                       <currency type="SYP">
-                               <displayName>Syrian Pound</displayName>
-                               <symbol>LS</symbol>
-                       </currency>
-                       <currency type="SZL">
-                               <displayName>Swaziland Lilangeni</displayName>
-                               <symbol>E</symbol>
-                       </currency>
-                       <currency type="THB">
-                               <displayName>Thai Baht</displayName>
-                       </currency>
-                       <currency type="TJR">
-                               <displayName>Tajikistan Ruble</displayName>
-                       </currency>
-                       <currency type="TJS">
-                               <displayName>Tajikistan Somoni</displayName>
-                       </currency>
-                       <currency type="TMM">
-                               <displayName>Turkmenistan Manat</displayName>
-                       </currency>
-                       <currency type="TND">
-                               <displayName>Tunisian Dinar</displayName>
-                       </currency>
-                       <currency type="TOP">
-                               <displayName>Tonga Paʻanga</displayName>
-                               <symbol>T$</symbol>
-                       </currency>
-                       <currency type="TPE">
-                               <displayName>Timor Escudo</displayName>
-                       </currency>
-                       <currency type="TRL">
-                               <displayName>Turkish Lira</displayName>
-                               <symbol>TL</symbol>
-                       </currency>
-                       <currency type="TRY">
-                               <displayName>New Turkish Lira</displayName>
-                       </currency>
-                       <currency type="TTD">
-                               <displayName>Trinidad and Tobago Dollar</displayName>
-                               <symbol>TT$</symbol>
-                       </currency>
-                       <currency type="TWD">
-                               <displayName>Taiwan New Dollar</displayName>
-                               <symbol>NT$</symbol>
-                       </currency>
-                       <currency type="TZS">
-                               <displayName>Tanzanian Shilling</displayName>
-                               <symbol>T Sh</symbol>
-                       </currency>
-                       <currency type="UAH">
-                               <displayName>Ukrainian Hryvnia</displayName>
-                       </currency>
-                       <currency type="UAK">
-                               <displayName>Ukrainian Karbovanetz</displayName>
-                       </currency>
-                       <currency type="UGS">
-                               <displayName>Ugandan Shilling (1966-1987)</displayName>
-                       </currency>
-                       <currency type="UGX">
-                               <displayName>Ugandan Shilling</displayName>
-                               <symbol>U Sh</symbol>
-                       </currency>
-                       <currency type="USD">
-                               <displayName>US Dollar</displayName>
-                               <symbol>US$</symbol>
-                       </currency>
-                       <currency type="USN">
-                               <displayName>US Dollar (Next day)</displayName>
-                       </currency>
-                       <currency type="USS">
-                               <displayName>US Dollar (Same day)</displayName>
-                       </currency>
-                       <currency type="UYP">
-                               <displayName>Uruguay Peso (1975-1993)</displayName>
-                       </currency>
-                       <currency type="UYU">
-                               <displayName>Uruguay Peso Uruguayo</displayName>
-                               <symbol>Ur$</symbol>
-                       </currency>
-                       <currency type="UZS">
-                               <displayName>Uzbekistan Sum</displayName>
-                       </currency>
-                       <currency type="VEB">
-                               <displayName>Venezuelan Bolivar</displayName>
-                               <symbol>Be</symbol>
-                       </currency>
-                       <currency type="VND">
-                               <displayName>Vietnamese Dong</displayName>
-                       </currency>
-                       <currency type="VUV">
-                               <displayName>Vanuatu Vatu</displayName>
-                               <symbol>VT</symbol>
-                       </currency>
-                       <currency type="WST">
-                               <displayName>Western Samoa Tala</displayName>
-                       </currency>
-                       <currency type="XAF">
-                               <displayName>CFA Franc BEAC</displayName>
-                       </currency>
-                       <currency type="XAG">
-                               <displayName>Silver</displayName>
-                       </currency>
-                       <currency type="XAU">
-                               <displayName>Gold</displayName>
-                       </currency>
-                       <currency type="XBA">
-                               <displayName>European Composite Unit</displayName>
-                       </currency>
-                       <currency type="XBB">
-                               <displayName>European Monetary Unit</displayName>
-                       </currency>
-                       <currency type="XBC">
-                               <displayName>European Unit of Account (XBC)</displayName>
-                       </currency>
-                       <currency type="XBD">
-                               <displayName>European Unit of Account (XBD)</displayName>
-                       </currency>
-                       <currency type="XCD">
-                               <displayName>East Caribbean Dollar</displayName>
-                               <symbol>EC$</symbol>
-                       </currency>
-                       <currency type="XDR">
-                               <displayName>Special Drawing Rights</displayName>
-                       </currency>
-                       <currency type="XEU">
-                               <displayName>European Currency Unit</displayName>
-                       </currency>
-                       <currency type="XFO">
-                               <displayName>French Gold Franc</displayName>
-                       </currency>
-                       <currency type="XFU">
-                               <displayName>French UIC-Franc</displayName>
-                       </currency>
-                       <currency type="XOF">
-                               <displayName>CFA Franc BCEAO</displayName>
-                       </currency>
-                       <currency type="XPD">
-                               <displayName>Palladium</displayName>
-                       </currency>
-                       <currency type="XPF">
-                               <displayName>CFP Franc</displayName>
-                               <symbol>CFPF</symbol>
-                       </currency>
-                       <currency type="XPT">
-                               <displayName>Platinum</displayName>
-                       </currency>
-                       <currency type="XRE">
-                               <displayName>RINET Funds</displayName>
-                       </currency>
-                       <currency type="XTS">
-                               <displayName>Testing Currency Code</displayName>
-                       </currency>
-                       <currency type="XXX">
-                               <displayName>No Currency</displayName>
-                       </currency>
-                       <currency type="YDD">
-                               <displayName>Yemeni Dinar</displayName>
-                       </currency>
-                       <currency type="YER">
-                               <displayName>Yemeni Rial</displayName>
-                               <symbol>YRl</symbol>
-                       </currency>
-                       <currency type="YUD">
-                               <displayName>Yugoslavian Hard Dinar</displayName>
-                       </currency>
-                       <currency type="YUM">
-                               <displayName>Yugoslavian Noviy Dinar</displayName>
-                       </currency>
-                       <currency type="YUN">
-                               <displayName>Yugoslavian Convertible Dinar</displayName>
-                       </currency>
-                       <currency type="ZAL">
-                               <displayName>South African Rand (financial)</displayName>
-                       </currency>
-                       <currency type="ZAR">
-                               <displayName>South African Rand</displayName>
-                               <symbol>R</symbol>
-                       </currency>
-                       <currency type="ZMK">
-                               <displayName>Zambian Kwacha</displayName>
-                       </currency>
-                       <currency type="ZRN">
-                               <displayName>Zairean New Zaire</displayName>
-                       </currency>
-                       <currency type="ZRZ">
-                               <displayName>Zairean Zaire</displayName>
-                       </currency>
-                       <currency type="ZWD">
-                               <displayName>Zimbabwe Dollar</displayName>
-                               <symbol>Z$</symbol>
-                       </currency>
-               </currencies>
-       </numbers>
-       <references>
-               <reference type="R01" draft="unconfirmed"/>
-               <reference type="R02" draft="provisional"/>
-               <reference type="R03" uri="http://unstats.un.org/unsd/geoinfo/">UN Geographical Names</reference>
-               <reference type="R1">Special reference used only to prevent minimalization</reference>
-               <reference type="RP1" uri="isbn:0-321-18578-1">The Unicode Standard 4.0</reference>
-               <reference type="RP2">The Economist Style Guide</reference>
-       </references>
-</ldml>
-<!-- Comments without bases
-
- See the National Bank of Romania for details http://www.bnro.ro/def_en.htm     - was on: //ldml/numbers/currencies/currency[@type="RON"]/displayName[@alt="proposed"] 
--->
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/en_US.xml b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/en_US.xml
deleted file mode 100644 (file)
index 95bd1f2..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/data/dtd/ldml.dtd">
-<ldml>
-       <identity>
-               <version number="$Revision: 1.44 $"/>
-               <generation date="$Date: 2006/12/08 16:29:36 $"/>
-               <language type="en"/>
-               <territory type="US"/>
-       </identity>
-       <numbers>
-               <currencyFormats>
-                       <currencyFormatLength>
-                               <currencyFormat>
-                                       <pattern>¤#,##0.00;(¤#,##0.00)</pattern>
-                               </currencyFormat>
-                       </currencyFormatLength>
-               </currencyFormats>
-               <currencies>
-                       <currency type="USD">
-                               <symbol>$</symbol>
-                       </currency>
-               </currencies>
-       </numbers>
-</ldml>
-<!-- Old Comments. See root.xml for more info.
-URL: http://oss.software.ibm.com/cvs/icu/icu/source/data/locales/en_US.txt?only_with_tag=final-update-LDML
-
-the PaperSize units are in mm
-these values are not exact .. they are rounded off
-        279, // height
-        216  // width 
-    MeasurementSystem:int{ 1 } // US system
--->
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/es.xml b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/es.xml
deleted file mode 100644 (file)
index ee71fb3..0000000
+++ /dev/null
@@ -1,2271 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/data/dtd/ldml.dtd">
-<ldml>
-       <identity>
-               <version number="$Revision: 1.80 $"/>
-               <generation date="$Date: 2006/12/08 16:29:36 $"/>
-               <language type="es"/>
-       </identity>
-       <localeDisplayNames>
-               <languages>
-                       <language type="aa">afar</language>
-                       <language type="ab">abjaso</language>
-                       <language type="ace">acehnés</language>
-                       <language type="ach">acoli</language>
-                       <language type="ada">adangme</language>
-                       <language type="ady">adigeo</language>
-                       <language type="ae">avéstico</language>
-                       <language type="af">afrikaans</language>
-                       <language type="afa">afroasiáticas (otras)</language>
-                       <language type="afh">afrihili</language>
-                       <language type="ain" references="RP1">ainu</language>
-                       <language type="ak">akan</language>
-                       <language type="akk">acadio</language>
-                       <language type="ale">aleutiano</language>
-                       <language type="alg">lenguas algonquinas</language>
-                       <language type="alt" references="RP3">altái meridional</language>
-                       <language type="am">amárico</language>
-                       <language type="an">aragonés</language>
-                       <language type="ang">inglés antiguo (450-1100 aprox.)</language>
-                       <language type="apa">lenguas apache</language>
-                       <language type="ar">árabe</language>
-                       <language type="arc">arameo</language>
-                       <language type="arn">araucano</language>
-                       <language type="arp">arapaho</language>
-                       <language type="art">artificiales (otras)</language>
-                       <language type="arw">arahuaco</language>
-                       <language type="as">asamés</language>
-                       <language type="ast">asturiano</language>
-                       <language type="ath">lenguas atabascas</language>
-                       <language type="aus">lenguas australianas</language>
-                       <language type="av">avar</language>
-                       <language type="awa">avadhi</language>
-                       <language type="ay">aymara</language>
-                       <language type="az">azerí</language>
-                       <language type="ba">bashkir</language>
-                       <language type="bad">banda</language>
-                       <language type="bai">lenguas bamileke</language>
-                       <language type="bal">baluchi</language>
-                       <language type="ban">balinés</language>
-                       <language type="bas">basa</language>
-                       <language type="bat">bálticas (otras)</language>
-                       <language type="be">bielorruso</language>
-                       <language type="bej">beja</language>
-                       <language type="bem">bemba</language>
-                       <language type="ber">bereberes (otras)</language>
-                       <language type="ber" alt="proposed-u167-1" draft="provisional">bereber</language>
-                       <language type="bg">búlgaro</language>
-                       <language type="bh">bihari</language>
-                       <language type="bho">bhojpuri</language>
-                       <language type="bi">bislama</language>
-                       <language type="bik">bicol</language>
-                       <language type="bin">bini</language>
-                       <language type="bla">siksika</language>
-                       <language type="bm">bambara</language>
-                       <language type="bn">bengalí</language>
-                       <language type="bnt">bantú</language>
-                       <language type="bo">tibetano</language>
-                       <language type="br">bretón</language>
-                       <language type="bra">braj</language>
-                       <language type="bs">bosnio</language>
-                       <language type="btk">batak</language>
-                       <language type="bua">buriat</language>
-                       <language type="bua" alt="proposed-u167-1" draft="provisional">buriato</language>
-                       <language type="bug">buginés</language>
-                       <language type="byn">blin</language>
-                       <language type="ca">catalán</language>
-                       <language type="cad">caddo</language>
-                       <language type="cai">indias centroamericanas (otras)</language>
-                       <language type="car">caribe</language>
-                       <language type="cau">caucásicas (otras)</language>
-                       <language type="ce">checheno</language>
-                       <language type="ceb">cebuano</language>
-                       <language type="cel">celtas (otras)</language>
-                       <language type="ch">chamorro</language>
-                       <language type="chb">chibcha</language>
-                       <language type="chg">chagatái</language>
-                       <language type="chk">trukés</language>
-                       <language type="chm">marí</language>
-                       <language type="chn">jerga chinuk</language>
-                       <language type="cho">choctaw</language>
-                       <language type="chp">chipewyan</language>
-                       <language type="chr">cherokee</language>
-                       <language type="chy">cheyene</language>
-                       <language type="cmc">lenguas chámicas</language>
-                       <language type="co">corso</language>
-                       <language type="cop">copto</language>
-                       <language type="cpe">criollas y pidgins, basadas en el inglés (otras)</language>
-                       <language type="cpf">criollas y pidgins, basadas en el francés (otras)</language>
-                       <language type="cpp">criollas y pidgins, basadas en el portugués (otras)</language>
-                       <language type="cr">cree</language>
-                       <language type="crh">tártaro de Crimea</language>
-                       <language type="crp">criollas y pidgins (otras)</language>
-                       <language type="cs">checo</language>
-                       <language type="csb">casubio</language>
-                       <language type="cu">eslavo eclesiástico</language>
-                       <language type="cus">cusitas (otras)</language>
-                       <language type="cv">chuvash</language>
-                       <language type="cy">galés</language>
-                       <language type="da">danés</language>
-                       <language type="dak">dakota</language>
-                       <language type="dar">dargva</language>
-                       <language type="day">dayak</language>
-                       <language type="de">alemán</language>
-                       <language type="del">delaware</language>
-                       <language type="den">slave (atabasca)</language>
-                       <language type="dgr">dogrib</language>
-                       <language type="din">dinka</language>
-                       <language type="doi">dogri</language>
-                       <language type="dra">dravídicas (otras)</language>
-                       <language type="dsb">sorbio inferior</language>
-                       <language type="dua">duala</language>
-                       <language type="dum">neerlandés medieval</language>
-                       <language type="dv">divehi</language>
-                       <language type="dyu">diula</language>
-                       <language type="dz" references="RP1">dzongkha</language>
-                       <language type="ee">ewe</language>
-                       <language type="efi">efik</language>
-                       <language type="egy">egipcio (antiguo)</language>
-                       <language type="eka">ekajuk</language>
-                       <language type="el">griego</language>
-                       <language type="elx">elamita</language>
-                       <language type="en">inglés</language>
-                       <language type="enm">inglés medieval</language>
-                       <language type="eo">esperanto</language>
-                       <language type="es">español</language>
-                       <language type="et">estonio</language>
-                       <language type="eu">vasco</language>
-                       <language type="ewo">ewondo</language>
-                       <language type="fa">farsi</language>
-                       <language type="fan">fang</language>
-                       <language type="fat">fanti</language>
-                       <language type="ff">fula</language>
-                       <language type="fi">finés</language>
-                       <language type="fil">filipino</language>
-                       <language type="fiu">finougrias (otras)</language>
-                       <language type="fj" references="RP1">fidjiano</language>
-                       <language type="fo">feroés</language>
-                       <language type="fr">francés</language>
-                       <language type="frm">francés medieval</language>
-                       <language type="fro">francés antiguo</language>
-                       <language type="fur">friulano</language>
-                       <language type="fy">frisón</language>
-                       <language type="ga">irlandés</language>
-                       <language type="gaa">ga</language>
-                       <language type="gay">gayo</language>
-                       <language type="gay" references="RP3" alt="proposed-u167-1" draft="provisional">gayón</language>
-                       <language type="gba">gbaya</language>
-                       <language type="gd">gaélico escocés</language>
-                       <language type="gem">germánicas (otras)</language>
-                       <language type="gez">geez</language>
-                       <language type="gil">gilbertés</language>
-                       <language type="gl">gallego</language>
-                       <language type="gmh">alemán de la alta edad media</language>
-                       <language type="gn">guaraní</language>
-                       <language type="goh">alemán de la alta edad antigua</language>
-                       <language type="gon">gondi</language>
-                       <language type="gor">gorontalo</language>
-                       <language type="got">gótico</language>
-                       <language type="grb">grebo</language>
-                       <language type="grc">griego antiguo</language>
-                       <language type="gu">gujarati</language>
-                       <language type="gv">gaélico manés</language>
-                       <language type="gwi">kutchin</language>
-                       <language type="ha">hausa</language>
-                       <language type="hai">haida</language>
-                       <language type="haw">hawaiano</language>
-                       <language type="he">hebreo</language>
-                       <language type="hi">hindi</language>
-                       <language type="hil">hiligaynon</language>
-                       <language type="him">himachali</language>
-                       <language type="hit">hitita</language>
-                       <language type="hmn">hmong</language>
-                       <language type="ho">hiri motu</language>
-                       <language type="hr">croata</language>
-                       <language type="hsb">sorbio superior</language>
-                       <language type="ht">haitiano</language>
-                       <language type="hu">húngaro</language>
-                       <language type="hup">hupa</language>
-                       <language type="hy">armenio</language>
-                       <language type="hz">herero</language>
-                       <language type="ia">interlingua</language>
-                       <language type="iba">iban</language>
-                       <language type="id">indonesio</language>
-                       <language type="ie">interlingue</language>
-                       <language type="ig">igbo</language>
-                       <language type="ii">sichuan yi</language>
-                       <language type="ik">inupiak</language>
-                       <language type="ilo">ilocano</language>
-                       <language type="inc">índicas (otras)</language>
-                       <language type="ine">indoeuropeas (otras)</language>
-                       <language type="inh">ingush</language>
-                       <language type="io">ido</language>
-                       <language type="ira">iranias (otras)</language>
-                       <language type="iro">lenguas iroquesas</language>
-                       <language type="is">islandés</language>
-                       <language type="it">italiano</language>
-                       <language type="iu">inuktitut</language>
-                       <language type="ja">japonés</language>
-                       <language type="jbo">lojban</language>
-                       <language type="jpr">judeo-persa</language>
-                       <language type="jrb">judeo-árabe</language>
-                       <language type="jv">javanés</language>
-                       <language type="ka">georgiano</language>
-                       <language type="kaa">karakalpako</language>
-                       <language type="kab">cabila</language>
-                       <language type="kac">kachin</language>
-                       <language type="kam">kamba</language>
-                       <language type="kar">karen</language>
-                       <language type="kaw">kawi</language>
-                       <language type="kbd">kabardiano</language>
-                       <language type="kg">kongo</language>
-                       <language type="kha">khasi</language>
-                       <language type="khi">khoisan (otras)</language>
-                       <language type="kho">kotanés</language>
-                       <language type="ki">kikuyu</language>
-                       <language type="kj">kuanyama</language>
-                       <language type="kk">kazajo</language>
-                       <language type="kl">groenlandés</language>
-                       <language type="km">jemer</language>
-                       <language type="kmb">kimbundu</language>
-                       <language type="kn">canarés</language>
-                       <language type="ko">coreano</language>
-                       <language type="kok">konkani</language>
-                       <language type="kos">kosraeano</language>
-                       <language type="kpe">kpelle</language>
-                       <language type="kr">kanuri</language>
-                       <language type="krc">karachay-balkar</language>
-                       <language type="kro">kru</language>
-                       <language type="kru">kurukh</language>
-                       <language type="ks">cachemiro</language>
-                       <language type="ku">kurdo</language>
-                       <language type="kum">kumyk</language>
-                       <language type="kut">kutenai</language>
-                       <language type="kv">komi</language>
-                       <language type="kw">córnico</language>
-                       <language type="ky">kirghiz</language>
-                       <language type="la">latín</language>
-                       <language type="lad">ladino</language>
-                       <language type="lah">lahnda</language>
-                       <language type="lam">lamba</language>
-                       <language type="lb">luxemburgués</language>
-                       <language type="lez">lezgiano</language>
-                       <language type="lg">ganda</language>
-                       <language type="li">limburgués</language>
-                       <language type="ln">lingala</language>
-                       <language type="lo">laosiano</language>
-                       <language type="lol">mongo</language>
-                       <language type="loz">lozi</language>
-                       <language type="lt">lituano</language>
-                       <language type="lu">luba-katanga</language>
-                       <language type="lua">luba-lulua</language>
-                       <language type="lui">luiseño</language>
-                       <language type="lun">lunda</language>
-                       <language type="lus">lushai</language>
-                       <language type="lv">letón</language>
-                       <language type="mad">madurés</language>
-                       <language type="mag">magahi</language>
-                       <language type="mai">maithili</language>
-                       <language type="mak">macasar</language>
-                       <language type="man">mandingo</language>
-                       <language type="map">austronesias (otras)</language>
-                       <language type="mas">masai</language>
-                       <language type="mdf">moksha</language>
-                       <language type="mdr">mandar</language>
-                       <language type="men">mende</language>
-                       <language type="mg">malgache</language>
-                       <language type="mga">irlandés medieval</language>
-                       <language type="mh">marshalés</language>
-                       <language type="mi">maorí</language>
-                       <language type="mic">micmac</language>
-                       <language type="min">minangkabau</language>
-                       <language type="mis">lenguas varias</language>
-                       <language type="mk">macedonio</language>
-                       <language type="mkh">mon-jemer (otras)</language>
-                       <language type="ml">malayalam</language>
-                       <language type="mn">mongol</language>
-                       <language type="mnc">manchú</language>
-                       <language type="mni">manipuri</language>
-                       <language type="mno">lenguas manobo</language>
-                       <language type="mo">moldavo</language>
-                       <language type="moh">mohawk</language>
-                       <language type="mos">mossi</language>
-                       <language type="mr">marathi</language>
-                       <language type="ms">malayo</language>
-                       <language type="mt">maltés</language>
-                       <language type="mul">lenguas múltiples</language>
-                       <language type="mun">lenguas munda</language>
-                       <language type="mus">creek</language>
-                       <language type="mwl" references="RP1">mirandés</language>
-                       <language type="mwr">marwari</language>
-                       <language type="my">birmano</language>
-                       <language type="myn">maya</language>
-                       <language type="myv">erzya</language>
-                       <language type="na">nauruano</language>
-                       <language type="nah">náhuatl</language>
-                       <language type="nai">indias norteamericanas (otras)</language>
-                       <language type="nap">napolitano</language>
-                       <language type="nb">bokmal noruego</language>
-                       <language type="nd">ndebele septentrional</language>
-                       <language type="nds">bajo alemán</language>
-                       <language type="ne">nepalí</language>
-                       <language type="new">newari</language>
-                       <language type="ng">ndonga</language>
-                       <language type="nia">nias</language>
-                       <language type="nic">níger-kordofanianas (otras)</language>
-                       <language type="niu">niueano</language>
-                       <language type="nl" draft="provisional">neerlandés</language>
-                       <language type="nn">nynorsk noruego</language>
-                       <language type="no">noruego</language>
-                       <language type="nog">nogai</language>
-                       <language type="non">nórdico antiguo</language>
-                       <language type="nr">ndebele meridional</language>
-                       <language type="nso">sotho septentrional</language>
-                       <language type="nub">lenguas nubias</language>
-                       <language type="nv">navajo</language>
-                       <language type="nwc" references="RP3">newari clásico</language>
-                       <language type="ny">nyanja</language>
-                       <language type="nym">nyamwezi</language>
-                       <language type="nyn">nyankole</language>
-                       <language type="nyo">nyoro</language>
-                       <language type="nzi">nzima</language>
-                       <language type="oc">occitano (después del 1500)</language>
-                       <language type="oj">ojibwa</language>
-                       <language type="om">oromo</language>
-                       <language type="or">oriya</language>
-                       <language type="os">osético</language>
-                       <language type="osa">osage</language>
-                       <language type="ota">turco otomano</language>
-                       <language type="oto">lenguas otomanas</language>
-                       <language type="pa">punjabí</language>
-                       <language type="paa">papúes (otras)</language>
-                       <language type="pag">pangasinán</language>
-                       <language type="pal">pahlavi</language>
-                       <language type="pam">pampanga</language>
-                       <language type="pap">papiamento</language>
-                       <language type="pau" references="RP1">palauano</language>
-                       <language type="peo">persa antiguo</language>
-                       <language type="phi">filipinas (otras)</language>
-                       <language type="phn">fenicio</language>
-                       <language type="pi">pali</language>
-                       <language type="pl">polaco</language>
-                       <language type="pon">pohnpeiano</language>
-                       <language type="pra" references="RP1">lenguas prácritas</language>
-                       <language type="pro">provenzal antiguo</language>
-                       <language type="ps">pashto</language>
-                       <language type="pt">portugués</language>
-                       <language type="qu">quechua</language>
-                       <language type="raj">rajasthani</language>
-                       <language type="rap">rapanui</language>
-                       <language type="rar">rarotongano</language>
-                       <language type="rm">reto-romance</language>
-                       <language type="rn">kiroundi</language>
-                       <language type="ro">rumano</language>
-                       <language type="roa">románicas (otras)</language>
-                       <language type="rom">romaní</language>
-                       <language type="root">raíz</language>
-                       <language type="ru">ruso</language>
-                       <language type="rup" references="RP1">arrumano</language>
-                       <language type="rw">kinyarwanda</language>
-                       <language type="sa">sánscrito</language>
-                       <language type="sad">sandawe</language>
-                       <language type="sah">yakut</language>
-                       <language type="sai">indias sudamericanas (otras)</language>
-                       <language type="sal">lenguas salish</language>
-                       <language type="sam">arameo samaritano</language>
-                       <language type="sas">sasak</language>
-                       <language type="sat">santali</language>
-                       <language type="sc">sardo</language>
-                       <language type="scn" references="RP1">siciliano</language>
-                       <language type="sco">escocés</language>
-                       <language type="sd">sindhi</language>
-                       <language type="se">sami septentrional</language>
-                       <language type="sel">selkup</language>
-                       <language type="sem">semíticas (otras)</language>
-                       <language type="sg">sango</language>
-                       <language type="sga">irlandés antiguo</language>
-                       <language type="sgn">lenguajes de signos</language>
-                       <language type="sh">serbocroata</language>
-                       <language type="shn">shan</language>
-                       <language type="si" references="RP3">cingalés</language>
-                       <language type="sid">sidamo</language>
-                       <language type="sio">lenguas sioux</language>
-                       <language type="sit">sino-tibetanas (otras)</language>
-                       <language type="sk">eslovaco</language>
-                       <language type="sl">esloveno</language>
-                       <language type="sla">eslavas (otras)</language>
-                       <language type="sm">samoano</language>
-                       <language type="sma">sami meridional</language>
-                       <language type="smi">lenguas sami (otras)</language>
-                       <language type="smj">sami lule</language>
-                       <language type="smn">sami inari</language>
-                       <language type="sms" references="RP3">sami skolt</language>
-                       <language type="sn">shona</language>
-                       <language type="snk">soninké</language>
-                       <language type="so">somalí</language>
-                       <language type="sog">sogdiano</language>
-                       <language type="son">songhai</language>
-                       <language type="sq">albanés</language>
-                       <language type="sr">serbio</language>
-                       <language type="srn" references="RP1">sranan tongo</language>
-                       <language type="srr">serer</language>
-                       <language type="ss">siswati</language>
-                       <language type="ssa">nilosaharianas (otras)</language>
-                       <language type="st">sesotho</language>
-                       <language type="su">sundanés</language>
-                       <language type="suk">sukuma</language>
-                       <language type="sus">susu</language>
-                       <language type="sux">sumerio</language>
-                       <language type="sv">sueco</language>
-                       <language type="sw">swahili</language>
-                       <language type="syr">siriaco</language>
-                       <language type="ta">tamil</language>
-                       <language type="tai">tai (otras)</language>
-                       <language type="te">telugu</language>
-                       <language type="tem">temne</language>
-                       <language type="ter">tereno</language>
-                       <language type="tet">tetún</language>
-                       <language type="tet" references="RP1" alt="proposed-u167-1" draft="provisional">tetun</language>
-                       <language type="tg">tayiko</language>
-                       <language type="th">tailandés</language>
-                       <language type="ti" references="RP1">tigriña</language>
-                       <language type="tig">tigré</language>
-                       <language type="tk" references="RP1">turcomano</language>
-                       <language type="tkl">tokelauano</language>
-                       <language type="tl">tagalo</language>
-                       <language type="tlh">klingon</language>
-                       <language type="tli">tlingit</language>
-                       <language type="tmh">tamashek</language>
-                       <language type="tn">setchwana</language>
-                       <language type="tn" references="RP3" alt="proposed-u167-1" draft="provisional">sechuanés</language>
-                       <language type="to">tonga (Islas Tonga)</language>
-                       <language type="tog">tonga (Niasa)</language>
-                       <language type="tpi">tok pisin</language>
-                       <language type="tr">turco</language>
-                       <language type="ts">tsonga</language>
-                       <language type="tsi">tsimshiano</language>
-                       <language type="tt" references="RP1">tártaro</language>
-                       <language type="tum">tumbuka</language>
-                       <language type="tup">lenguas tupí</language>
-                       <language type="tut">altaicas (otras)</language>
-                       <language type="tvl">tuvaluano</language>
-                       <language type="tw">twi</language>
-                       <language type="ty">tahitiano</language>
-                       <language type="tyv">tuviniano</language>
-                       <language type="udm">udmurt</language>
-                       <language type="ug">uigur</language>
-                       <language type="uga">ugarítico</language>
-                       <language type="uk">ucraniano</language>
-                       <language type="umb">umbundu</language>
-                       <language type="und">indeterminada</language>
-                       <language type="ur">urdu</language>
-                       <language type="uz">uzbeko</language>
-                       <language type="ve">venda</language>
-                       <language type="vi">vietnamita</language>
-                       <language type="vo" references="RP1">volapük</language>
-                       <language type="vot">vótico</language>
-                       <language type="wa">valón</language>
-                       <language type="wak">lenguas wakasha</language>
-                       <language type="wal">walamo</language>
-                       <language type="war">waray</language>
-                       <language type="was">washo</language>
-                       <language type="wen">lenguas sorbias</language>
-                       <language type="wo">uolof</language>
-                       <language type="wo" references="RP3" alt="proposed-u167-1" draft="provisional">wolof</language>
-                       <language type="xal">kalmyk</language>
-                       <language type="xh">xhosa</language>
-                       <language type="yap">yapés</language>
-                       <language type="yi" references="RP1">yídish</language>
-                       <language type="yo">yoruba</language>
-                       <language type="ypk">lenguas yupik</language>
-                       <language type="za">zhuang</language>
-                       <language type="zap">zapoteco</language>
-                       <language type="zen">zenaga</language>
-                       <language type="zh">chino</language>
-                       <language type="znd">zande</language>
-                       <language type="zu">zulú</language>
-                       <language type="zun">zuni</language>
-               </languages>
-               <scripts>
-                       <script type="Arab">árabe</script>
-                       <script type="Armn">armenio</script>
-                       <script type="Batk">batak</script>
-                       <script type="Beng">bengalí</script>
-                       <script type="Blis">símbolos blis</script>
-                       <script type="Bopo">bopomofo</script>
-                       <script type="Brah">brahmi</script>
-                       <script type="Brai">braille</script>
-                       <script type="Buhd">buhid</script>
-                       <script type="Cans">símbolos aborígenes canadienses unificados</script>
-                       <script type="Cher">cherokee</script>
-                       <script type="Cirt">cirth</script>
-                       <script type="Copt">copto</script>
-                       <script type="Cprt">chipriota</script>
-                       <script type="Cyrl">cirílico</script>
-                       <script type="Deva">devanagari</script>
-                       <script type="Dsrt">deseret</script>
-                       <script type="Egyd">egipcio demótico</script>
-                       <script type="Egyh">egipcio hierático</script>
-                       <script type="Egyp" references="RP2">jeroglíficos egipcios</script>
-                       <script type="Ethi" references="RP3">etiópico</script>
-                       <script type="Geor">georgiano</script>
-                       <script type="Goth">gótico</script>
-                       <script type="Grek">griego</script>
-                       <script type="Gujr">gujarati</script>
-                       <script type="Guru">gurmuji</script>
-                       <script type="Hang">hangul</script>
-                       <script type="Hani">han</script>
-                       <script type="Hano">hanunoo</script>
-                       <script type="Hans">han simplificado</script>
-                       <script type="Hant">han tradicional</script>
-                       <script type="Hebr">hebreo</script>
-                       <script type="Hira">hiragana</script>
-                       <script type="Hmng">pahawh hmong</script>
-                       <script type="Hrkt" references="RP1">katakana o hiragana</script>
-                       <script type="Hung" references="RP3">húngaro antiguo</script>
-                       <script type="Inds">Indio (harappan)</script>
-                       <script type="Ital">antigua bastardilla</script>
-                       <script type="Java" references="RP1">javanés</script>
-                       <script type="Kana">katakana</script>
-                       <script type="Khmr">jemer</script>
-                       <script type="Knda">canarés</script>
-                       <script type="Laoo">lao</script>
-                       <script type="Latf">latín (variante fraktur)</script>
-                       <script type="Latg">latín (variante gaélica)</script>
-                       <script type="Latn">latín</script>
-                       <script type="Limb">limbu</script>
-                       <script type="Lina">lineal A</script>
-                       <script type="Linb" references="RP3">lineal B</script>
-                       <script type="Maya" references="RP2">jeroglíficos mayas</script>
-                       <script type="Mero">meroítico</script>
-                       <script type="Mlym">malayálam</script>
-                       <script type="Mong" references="RP1">mongol</script>
-                       <script type="Mymr" references="RP3">birmano</script>
-                       <script type="Ogam">ogham</script>
-                       <script type="Orya">oriya</script>
-                       <script type="Osma">osmaniya</script>
-                       <script type="Phnx" references="RP3">fenicio</script>
-                       <script type="Qaai">heredado</script>
-                       <script type="Runr">rúnico</script>
-                       <script type="Shaw" references="RP1">shaviano</script>
-                       <script type="Sinh">binhala</script>
-                       <script type="Syrc">siriaco</script>
-                       <script type="Tagb">tagbanúa</script>
-                       <script type="Tale">tai le</script>
-                       <script type="Taml">tamil</script>
-                       <script type="Telu">telugu</script>
-                       <script type="Tglg">tagalo</script>
-                       <script type="Thaa">thaana</script>
-                       <script type="Thai">tailandés</script>
-                       <script type="Tibt">tibetano</script>
-                       <script type="Ugar">ugarítico</script>
-                       <script type="Yiii">yi</script>
-                       <script type="Zyyy">común</script>
-               </scripts>
-               <territories>
-                       <territory type="001">Mundo</territory>
-                       <territory type="002">África</territory>
-                       <territory type="005">Suramérica</territory>
-                       <territory type="009">Oceanía</territory>
-                       <territory type="011">África occidental</territory>
-                       <territory type="013">Centroamérica</territory>
-                       <territory type="014">África oriental</territory>
-                       <territory type="015">África septentrional</territory>
-                       <territory type="017">África central</territory>
-                       <territory type="018">África meridional</territory>
-                       <territory type="019">Américas</territory>
-                       <territory type="021">Norteamérica</territory>
-                       <territory type="029">Caribe</territory>
-                       <territory type="030">Asia oriental</territory>
-                       <territory type="034">Asia meridional</territory>
-                       <territory type="035">Sudeste asiático</territory>
-                       <territory type="039">Europa meridional</territory>
-                       <territory type="053">Australia y Nueva Zelanda</territory>
-                       <territory type="054">Melanesia</territory>
-                       <territory type="057">Micronesia [057]</territory>
-                       <territory type="061">Polinesia</territory>
-                       <territory type="142">Asia</territory>
-                       <territory type="143">Asia central</territory>
-                       <territory type="145">Asia occidental</territory>
-                       <territory type="150">Europa</territory>
-                       <territory type="151">Europa oriental</territory>
-                       <territory type="154">Europa septentrional</territory>
-                       <territory type="155">Europa occidental</territory>
-                       <territory type="172" draft="provisional">Commonwealth de Estados Independientes</territory>
-                       <territory type="419">Latinoamérica y el Caribe</territory>
-                       <territory type="AD">Andorra</territory>
-                       <territory type="AE">Emiratos Árabes Unidos</territory>
-                       <territory type="AF">Afganistán</territory>
-                       <territory type="AG">Antigua y Barbuda</territory>
-                       <territory type="AI">Anguila</territory>
-                       <territory type="AL">Albania</territory>
-                       <territory type="AM">Armenia</territory>
-                       <territory type="AN">Antillas Neerlandesas</territory>
-                       <territory type="AO">Angola</territory>
-                       <territory type="AQ">Antártida</territory>
-                       <territory type="AR">Argentina</territory>
-                       <territory type="AS">Samoa Americana</territory>
-                       <territory type="AT">Austria</territory>
-                       <territory type="AU">Australia</territory>
-                       <territory type="AW">Aruba</territory>
-                       <territory type="AX">Islas Åland</territory>
-                       <territory type="AZ">Azerbaiyán</territory>
-                       <territory type="BA">Bosnia-Herzegovina</territory>
-                       <territory type="BB">Barbados</territory>
-                       <territory type="BD">Bangladesh</territory>
-                       <territory type="BE">Bélgica</territory>
-                       <territory type="BF">Burkina Faso</territory>
-                       <territory type="BG">Bulgaria</territory>
-                       <territory type="BH" references="RP4">Bahréin</territory>
-                       <territory type="BI">Burundi</territory>
-                       <territory type="BJ">Benín</territory>
-                       <territory type="BM">Bermudas</territory>
-                       <territory type="BN">Brunéi</territory>
-                       <territory type="BO">Bolivia</territory>
-                       <territory type="BR">Brasil</territory>
-                       <territory type="BS">Bahamas</territory>
-                       <territory type="BT">Bután</territory>
-                       <territory type="BV">Isla Bouvet</territory>
-                       <territory type="BW">Botsuana</territory>
-                       <territory type="BY">Bielorrusia</territory>
-                       <territory type="BZ">Belice</territory>
-                       <territory type="CA">Canadá</territory>
-                       <territory type="CC">Islas Cocos (Keeling)</territory>
-                       <territory type="CD">República Democrática del Congo</territory>
-                       <territory type="CF">República Centroafricana</territory>
-                       <territory type="CG">Congo</territory>
-                       <territory type="CH">Suiza</territory>
-                       <territory type="CI">Costa de Marfil</territory>
-                       <territory type="CK">Islas Cook</territory>
-                       <territory type="CL">Chile</territory>
-                       <territory type="CM">Camerún</territory>
-                       <territory type="CN">China</territory>
-                       <territory type="CO">Colombia</territory>
-                       <territory type="CR">Costa Rica</territory>
-                       <territory type="CS">Serbia y Montenegro</territory>
-                       <territory type="CU">Cuba</territory>
-                       <territory type="CV">Cabo Verde</territory>
-                       <territory type="CX">Isla Navidad</territory>
-                       <territory type="CX" references="RP4" alt="proposed-u167-1" draft="provisional">Isla Christmas</territory>
-                       <territory type="CY">Chipre</territory>
-                       <territory type="CZ">República Checa</territory>
-                       <territory type="DE">Alemania</territory>
-                       <territory type="DJ">Yibuti</territory>
-                       <territory type="DK">Dinamarca</territory>
-                       <territory type="DM">Dominica</territory>
-                       <territory type="DO">República Dominicana</territory>
-                       <territory type="DZ">Argelia</territory>
-                       <territory type="EC">Ecuador</territory>
-                       <territory type="EE">Estonia</territory>
-                       <territory type="EG">Egipto</territory>
-                       <territory type="EH">Sáhara Occidental</territory>
-                       <territory type="ER">Eritrea</territory>
-                       <territory type="ES">España</territory>
-                       <territory type="ET">Etiopía</territory>
-                       <territory type="FI">Finlandia</territory>
-                       <territory type="FJ">Fiyi</territory>
-                       <territory type="FK">Islas Falkland (Malvinas)</territory>
-                       <territory type="FM">Micronesia</territory>
-                       <territory type="FO">Islas Feroe</territory>
-                       <territory type="FR">Francia</territory>
-                       <territory type="GA">Gabón</territory>
-                       <territory type="GB">Reino Unido</territory>
-                       <territory type="GD">Granada</territory>
-                       <territory type="GE">Georgia</territory>
-                       <territory type="GF">Guayana Francesa</territory>
-                       <territory type="GH">Ghana</territory>
-                       <territory type="GI">Gibraltar</territory>
-                       <territory type="GL">Groenlandia</territory>
-                       <territory type="GM">Gambia</territory>
-                       <territory type="GN">Guinea</territory>
-                       <territory type="GP">Guadalupe</territory>
-                       <territory type="GQ">Guinea Ecuatorial</territory>
-                       <territory type="GR">Grecia</territory>
-                       <territory type="GS">Islas Georgia del Sur y Sandwich del Sur</territory>
-                       <territory type="GT">Guatemala</territory>
-                       <territory type="GU">Guam</territory>
-                       <territory type="GW">Guinea-Bissau</territory>
-                       <territory type="GY">Guyana</territory>
-                       <territory type="HK">Hong-Kong, Región administrativa especial de China</territory>
-                       <territory type="HM">Islas Heard y McDonald</territory>
-                       <territory type="HN">Honduras</territory>
-                       <territory type="HR">Croacia</territory>
-                       <territory type="HT">Haití</territory>
-                       <territory type="HU">Hungría</territory>
-                       <territory type="ID">Indonesia</territory>
-                       <territory type="IE">Irlanda</territory>
-                       <territory type="IL">Israel</territory>
-                       <territory type="IN">India</territory>
-                       <territory type="IO" references="RP4">Territorio Británico del Océano Índico</territory>
-                       <territory type="IQ">Iraq</territory>
-                       <territory type="IR">Irán</territory>
-                       <territory type="IS">Islandia</territory>
-                       <territory type="IT">Italia</territory>
-                       <territory type="JM">Jamaica</territory>
-                       <territory type="JO">Jordania</territory>
-                       <territory type="JP">Japón</territory>
-                       <territory type="KE">Kenia</territory>
-                       <territory type="KG" references="RP4">Kirguistán</territory>
-                       <territory type="KH">Camboya</territory>
-                       <territory type="KI">Kiribati</territory>
-                       <territory type="KM">Comoras</territory>
-                       <territory type="KN">San Cristóbal y Nieves</territory>
-                       <territory type="KP">Corea del Norte</territory>
-                       <territory type="KR">Corea del Sur</territory>
-                       <territory type="KW">Kuwait</territory>
-                       <territory type="KY">Islas Caimán</territory>
-                       <territory type="KZ">Kazajstán</territory>
-                       <territory type="LA">Laos</territory>
-                       <territory type="LB">Líbano</territory>
-                       <territory type="LC">Saint Lucia</territory>
-                       <territory type="LI">Liechtenstein</territory>
-                       <territory type="LK">Sri Lanka</territory>
-                       <territory type="LR">Liberia</territory>
-                       <territory type="LS">Lesotho</territory>
-                       <territory type="LT">Lituania</territory>
-                       <territory type="LU">Luxemburgo</territory>
-                       <territory type="LV">Letonia</territory>
-                       <territory type="LY">Libia</territory>
-                       <territory type="MA">Marruecos</territory>
-                       <territory type="MC">Mónaco</territory>
-                       <territory type="MD" references="RP1">Moldavia</territory>
-                       <territory type="MG">Madagascar</territory>
-                       <territory type="MH">Islas Marshall</territory>
-                       <territory type="MK">Macedonia</territory>
-                       <territory type="ML">Malí</territory>
-                       <territory type="MM">Myanmar</territory>
-                       <territory type="MN">Mongolia</territory>
-                       <territory type="MO">Macao, Región administrativa especial de China</territory>
-                       <territory type="MP">Islas Marianas del Norte</territory>
-                       <territory type="MQ">Martinica</territory>
-                       <territory type="MR">Mauritania</territory>
-                       <territory type="MS">Montserrat</territory>
-                       <territory type="MT">Malta</territory>
-                       <territory type="MU">Mauricio</territory>
-                       <territory type="MV">Maldivas</territory>
-                       <territory type="MW">Malawi</territory>
-                       <territory type="MX">México</territory>
-                       <territory type="MY">Malasia</territory>
-                       <territory type="MZ">Mozambique</territory>
-                       <territory type="NA">Namibia</territory>
-                       <territory type="NC">Nueva Caledonia</territory>
-                       <territory type="NE">Níger</territory>
-                       <territory type="NF">Isla Norfolk</territory>
-                       <territory type="NG">Nigeria</territory>
-                       <territory type="NI">Nicaragua</territory>
-                       <territory type="NL">Países Bajos</territory>
-                       <territory type="NO">Noruega</territory>
-                       <territory type="NP">Nepal</territory>
-                       <territory type="NR">Nauru</territory>
-                       <territory type="NU">Isla Niue</territory>
-                       <territory type="NZ">Nueva Zelanda</territory>
-                       <territory type="OM">Omán</territory>
-                       <territory type="PA">Panamá</territory>
-                       <territory type="PE">Perú</territory>
-                       <territory type="PF">Polinesia Francesa</territory>
-                       <territory type="PG">Papúa Nueva Guinea</territory>
-                       <territory type="PH">Filipinas</territory>
-                       <territory type="PK">Pakistán</territory>
-                       <territory type="PL">Polonia</territory>
-                       <territory type="PM">San Pedro y Miquelón</territory>
-                       <territory type="PN">Pitcairn</territory>
-                       <territory type="PR">Puerto Rico</territory>
-                       <territory type="PS">Territorios Palestinos</territory>
-                       <territory type="PT">Portugal</territory>
-                       <territory type="PW">Palau</territory>
-                       <territory type="PY">Paraguay</territory>
-                       <territory type="QA">Qatar</territory>
-                       <territory type="QO">Territorios alejados de Oceanía</territory>
-                       <territory type="RE">Reunión</territory>
-                       <territory type="RO">Rumanía</territory>
-                       <territory type="RU">Rusia</territory>
-                       <territory type="RW">Ruanda</territory>
-                       <territory type="SA">Arabia Saudí</territory>
-                       <territory type="SB">Islas Salomón</territory>
-                       <territory type="SC">Seychelles</territory>
-                       <territory type="SD">Sudán</territory>
-                       <territory type="SE">Suecia</territory>
-                       <territory type="SG">Singapur</territory>
-                       <territory type="SH">Santa Elena</territory>
-                       <territory type="SI">Eslovenia</territory>
-                       <territory type="SJ">Svalbard y Jan Mayen</territory>
-                       <territory type="SK">Eslovaquia</territory>
-                       <territory type="SL">Sierra Leona</territory>
-                       <territory type="SM">San Marino</territory>
-                       <territory type="SN">Senegal</territory>
-                       <territory type="SO">Somalia</territory>
-                       <territory type="SR" references="RP4">Surinam</territory>
-                       <territory type="ST">Santo Tomé y Príncipe</territory>
-                       <territory type="SV">El Salvador</territory>
-                       <territory type="SY">Siria</territory>
-                       <territory type="SZ">Suazilandia</territory>
-                       <territory type="TC">Islas Turcas y Caicos</territory>
-                       <territory type="TD">Chad</territory>
-                       <territory type="TF">Territorios Australes Franceses</territory>
-                       <territory type="TG">Togo</territory>
-                       <territory type="TH">Tailandia</territory>
-                       <territory type="TJ">Tayikistán</territory>
-                       <territory type="TK">Islas Tokelau</territory>
-                       <territory type="TL">Timor Oriental</territory>
-                       <territory type="TM">Turkmenistán</territory>
-                       <territory type="TN">Túnez</territory>
-                       <territory type="TO">Tonga</territory>
-                       <territory type="TR">Turquía</territory>
-                       <territory type="TT">Trinidad y Tabago</territory>
-                       <territory type="TV">Tuvalu</territory>
-                       <territory type="TW">Taiwán</territory>
-                       <territory type="TZ">Tanzania</territory>
-                       <territory type="UA">Ucrania</territory>
-                       <territory type="UG">Uganda</territory>
-                       <territory type="UM">Islas menores alejadas de los Estados Unidos</territory>
-                       <territory type="US">Estados Unidos</territory>
-                       <territory type="UY">Uruguay</territory>
-                       <territory type="UZ">Uzbekistán</territory>
-                       <territory type="VA">Ciudad del Vaticano</territory>
-                       <territory type="VC">San Vicente y las Granadinas</territory>
-                       <territory type="VE">Venezuela</territory>
-                       <territory type="VG">Islas Vírgenes Británicas</territory>
-                       <territory type="VI">Islas Vírgenes de los Estados Unidos</territory>
-                       <territory type="VN">Vietnam</territory>
-                       <territory type="VU">Vanuatu</territory>
-                       <territory type="WF">Wallis y Futuna</territory>
-                       <territory type="WS">Samoa</territory>
-                       <territory type="YE">Yemen</territory>
-                       <territory type="YT">Mayotte</territory>
-                       <territory type="ZA">Sudáfrica</territory>
-                       <territory type="ZM">Zambia</territory>
-                       <territory type="ZW">Zimbabue</territory>
-               </territories>
-               <variants>
-                       <variant type="REVISED" references="RP3">Ortografía revisada</variant>
-               </variants>
-               <keys>
-                       <key type="calendar">calendario</key>
-                       <key type="collation">intercalación</key>
-                       <key type="currency">moneda</key>
-               </keys>
-               <types>
-                       <type type="buddhist" key="calendar">calendario budista</type>
-                       <type type="chinese" key="calendar">calendario chino</type>
-                       <type type="direct" key="collation">orden directo</type>
-                       <type type="gregorian" key="calendar">calendario gregoriano</type>
-                       <type type="hebrew" key="calendar">calendario hebreo</type>
-                       <type type="islamic" key="calendar">calendario islámico</type>
-                       <type type="islamic-civil" key="calendar">calendario civil islámico</type>
-                       <type type="japanese" key="calendar">calendario japonés</type>
-                       <type type="phonebook" key="collation">orden de listín telefónico</type>
-                       <type type="pinyin" key="collation">orden pinyin</type>
-                       <type type="stroke" key="collation" references="RP3">orden de los trazos</type>
-                       <type type="traditional" key="collation">orden tradicional</type>
-               </types>
-               <measurementSystemNames>
-                       <measurementSystemName type="US" references="RP3">estadounidense</measurementSystemName>
-                       <measurementSystemName type="metric" references="RP3">métrico</measurementSystemName>
-               </measurementSystemNames>
-       </localeDisplayNames>
-       <characters>
-               <exemplarCharacters>[a á b-e é f-i í j-n ñ o ó p-u ú ü v-z]</exemplarCharacters>
-               <exemplarCharacters type="auxiliary">[ü]</exemplarCharacters>
-       </characters>
-       <delimiters>
-               <quotationStart>‘</quotationStart>
-               <quotationEnd>’</quotationEnd>
-               <alternateQuotationStart>“</alternateQuotationStart>
-               <alternateQuotationEnd>”</alternateQuotationEnd>
-       </delimiters>
-       <dates>
-               <localizedPatternChars>GuMtkHmsSEDFwWahKzUeygAZvcL</localizedPatternChars>
-               <calendars>
-                       <calendar type="gregorian">
-                               <months>
-                                       <monthContext type="format">
-                                               <monthWidth type="abbreviated">
-                                                       <month type="1">ene</month>
-                                                       <month type="2">feb</month>
-                                                       <month type="3">mar</month>
-                                                       <month type="4">abr</month>
-                                                       <month type="5">may</month>
-                                                       <month type="6">jun</month>
-                                                       <month type="7">jul</month>
-                                                       <month type="8">ago</month>
-                                                       <month type="9">sep</month>
-                                                       <month type="10">oct</month>
-                                                       <month type="11">nov</month>
-                                                       <month type="12">dic</month>
-                                               </monthWidth>
-                                               <monthWidth type="wide">
-                                                       <month type="1">enero</month>
-                                                       <month type="2">febrero</month>
-                                                       <month type="3">marzo</month>
-                                                       <month type="4">abril</month>
-                                                       <month type="5">mayo</month>
-                                                       <month type="6">junio</month>
-                                                       <month type="7">julio</month>
-                                                       <month type="8">agosto</month>
-                                                       <month type="9">septiembre</month>
-                                                       <month type="10">octubre</month>
-                                                       <month type="11">noviembre</month>
-                                                       <month type="12">diciembre</month>
-                                               </monthWidth>
-                                       </monthContext>
-                                       <monthContext type="stand-alone">
-                                               <monthWidth type="narrow">
-                                                       <month type="1">E</month>
-                                                       <month type="2">F</month>
-                                                       <month type="3">M</month>
-                                                       <month type="4">A</month>
-                                                       <month type="5">M</month>
-                                                       <month type="6">J</month>
-                                                       <month type="7">J</month>
-                                                       <month type="8">A</month>
-                                                       <month type="9">S</month>
-                                                       <month type="10">O</month>
-                                                       <month type="11">N</month>
-                                                       <month type="12">D</month>
-                                               </monthWidth>
-                                       </monthContext>
-                               </months>
-                               <days>
-                                       <dayContext type="format">
-                                               <dayWidth type="abbreviated">
-                                                       <day type="sun">dom</day>
-                                                       <day type="mon">lun</day>
-                                                       <day type="tue">mar</day>
-                                                       <day type="wed">mié</day>
-                                                       <day type="thu">jue</day>
-                                                       <day type="fri">vie</day>
-                                                       <day type="sat">sáb</day>
-                                               </dayWidth>
-                                               <dayWidth type="wide">
-                                                       <day type="sun">domingo</day>
-                                                       <day type="mon">lunes</day>
-                                                       <day type="tue">martes</day>
-                                                       <day type="wed">miércoles</day>
-                                                       <day type="thu">jueves</day>
-                                                       <day type="fri">viernes</day>
-                                                       <day type="sat">sábado</day>
-                                               </dayWidth>
-                                       </dayContext>
-                                       <dayContext type="stand-alone">
-                                               <dayWidth type="narrow">
-                                                       <day type="sun">D</day>
-                                                       <day type="mon">L</day>
-                                                       <day type="tue">M</day>
-                                                       <day type="wed">M</day>
-                                                       <day type="thu">J</day>
-                                                       <day type="fri">V</day>
-                                                       <day type="sat">S</day>
-                                               </dayWidth>
-                                       </dayContext>
-                               </days>
-                               <quarters>
-                                       <quarterContext type="format">
-                                               <quarterWidth type="abbreviated">
-                                                       <quarter type="1">T1</quarter>
-                                                       <quarter type="2">T2</quarter>
-                                                       <quarter type="3">T3</quarter>
-                                                       <quarter type="4">T4</quarter>
-                                               </quarterWidth>
-                                               <quarterWidth type="wide">
-                                                       <quarter type="1">1er trimestre</quarter>
-                                                       <quarter type="2">2º trimestre</quarter>
-                                                       <quarter type="3">3er trimestre</quarter>
-                                                       <quarter type="4">4º trimestre</quarter>
-                                               </quarterWidth>
-                                       </quarterContext>
-                               </quarters>
-                               <am references="RP1">a.m.</am>
-                               <pm references="RP1">p.m.</pm>
-                               <eras>
-                                       <eraAbbr>
-                                               <era type="0">a.C.</era>
-                                               <era type="1">d.C.</era>
-                                       </eraAbbr>
-                               </eras>
-                               <dateFormats>
-                                       <dateFormatLength type="full">
-                                               <dateFormat>
-                                                       <pattern>EEEE d' de 'MMMM' de 'yyyy</pattern>
-                                               </dateFormat>
-                                       </dateFormatLength>
-                                       <dateFormatLength type="long">
-                                               <dateFormat>
-                                                       <pattern>d' de 'MMMM' de 'yyyy</pattern>
-                                               </dateFormat>
-                                       </dateFormatLength>
-                                       <dateFormatLength type="medium">
-                                               <dateFormat>
-                                                       <pattern>dd-MMM-yy</pattern>
-                                               </dateFormat>
-                                       </dateFormatLength>
-                                       <dateFormatLength type="short">
-                                               <dateFormat>
-                                                       <pattern>d/MM/yy</pattern>
-                                               </dateFormat>
-                                       </dateFormatLength>
-                               </dateFormats>
-                               <timeFormats>
-                                       <timeFormatLength type="full">
-                                               <timeFormat>
-                                                       <pattern>HH'H'mm''ss&quot; z</pattern>
-                                               </timeFormat>
-                                       </timeFormatLength>
-                               </timeFormats>
-                               <dateTimeFormats>
-                                       <availableFormats>
-                                               <dateFormatItem id="HHmm" draft="provisional">HH:mm</dateFormatItem>
-                                               <dateFormatItem id="HHmmss" draft="provisional">HH:mm:ss</dateFormatItem>
-                                               <dateFormatItem id="MMMdd" draft="provisional">dd-MMM</dateFormatItem>
-                                               <dateFormatItem id="MMd" draft="provisional">d/MM</dateFormatItem>
-                                               <dateFormatItem id="hhmm" draft="provisional">hh:mm a</dateFormatItem>
-                                               <dateFormatItem id="hhmmss" draft="provisional">hh:mm:ss a</dateFormatItem>
-                                               <dateFormatItem id="yyMM" draft="provisional">MM/yy</dateFormatItem>
-                                               <dateFormatItem id="yyMMM" draft="provisional">MMM-yy</dateFormatItem>
-                                               <dateFormatItem id="yyQQQQ" draft="provisional">QQQQ yy</dateFormatItem>
-                                       </availableFormats>
-                               </dateTimeFormats>
-                               <fields>
-                                       <field type="era">
-                                               <displayName>era</displayName>
-                                       </field>
-                                       <field type="year">
-                                               <displayName>año</displayName>
-                                       </field>
-                                       <field type="month">
-                                               <displayName>mes</displayName>
-                                       </field>
-                                       <field type="week">
-                                               <displayName>semana</displayName>
-                                       </field>
-                                       <field type="day">
-                                               <displayName>día</displayName>
-                                       </field>
-                                       <field type="weekday">
-                                               <displayName>día de la semana</displayName>
-                                       </field>
-                                       <field type="dayperiod">
-                                               <displayName>periodo del día</displayName>
-                                       </field>
-                                       <field type="hour">
-                                               <displayName>hora</displayName>
-                                       </field>
-                                       <field type="minute">
-                                               <displayName>minuto</displayName>
-                                       </field>
-                                       <field type="second">
-                                               <displayName>segundo</displayName>
-                                       </field>
-                                       <field type="zone">
-                                               <displayName>zona</displayName>
-                                       </field>
-                               </fields>
-                       </calendar>
-               </calendars>
-               <timeZoneNames>
-                       <zone type="Antarctica/South_Pole">
-                               <exemplarCity>Polo Sur</exemplarCity>
-                       </zone>
-                       <zone type="America/Argentina/Rio_Gallegos">
-                               <exemplarCity references="RP3">Río Gallegos</exemplarCity>
-                       </zone>
-                       <zone type="America/Argentina/Tucuman">
-                               <exemplarCity references="RP3">Tucumán</exemplarCity>
-                       </zone>
-                       <zone type="America/Cordoba">
-                               <exemplarCity>Córdoba</exemplarCity>
-                       </zone>
-                       <zone type="America/Halifax">
-                               <long>
-                                       <standard>Hora estándar del Atlántico</standard>
-                                       <daylight>Hora de verano del Atlántico</daylight>
-                               </long>
-                               <short>
-                                       <standard>AST</standard>
-                                       <daylight>ADT</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/St_Johns">
-                               <long>
-                                       <standard>Hora estándar de Newfoundland</standard>
-                                       <daylight>Hora de verano de Newfoundland</daylight>
-                               </long>
-                               <short>
-                                       <standard>CNT</standard>
-                               </short>
-                               <exemplarCity>St. Johns</exemplarCity>
-                       </zone>
-                       <!-- Chile -->
-                       <zone type="Pacific/Easter">
-                               <exemplarCity>Pascua</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Shanghai">
-                               <long>
-                                       <standard>Hora estándar de China</standard>
-                                       <daylight>Hora estándar de China</daylight>
-                               </long>
-                               <short>
-                                       <standard>CTT</standard>
-                               </short>
-                       </zone>
-                       <zone type="Pacific/Galapagos">
-                               <exemplarCity references="RP3">Galápagos</exemplarCity>
-                       </zone>
-                       <!-- Spain -->
-                       <zone type="Atlantic/Canary">
-                               <exemplarCity>Canarias</exemplarCity>
-                       </zone>
-                       <zone type="Europe/Paris">
-                               <long>
-                                       <standard>Hora estándar de Europa Central</standard>
-                                       <daylight>Hora de verano de Europa Central</daylight>
-                               </long>
-                               <short>
-                                       <standard>CET</standard>
-                                       <daylight>CEST</daylight>
-                               </short>
-                               <exemplarCity>París</exemplarCity>
-                       </zone>
-                       <zone type="Europe/London">
-                               <exemplarCity>Londres</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Jerusalem">
-                               <long>
-                                       <standard>Hora estándar de Israel</standard>
-                                       <daylight>Hora de verano de Israel</daylight>
-                               </long>
-                               <short>
-                                       <standard>IST</standard>
-                                       <daylight>IDT</daylight>
-                               </short>
-                               <exemplarCity>Jerusalén</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Tokyo">
-                               <long>
-                                       <standard>Hora estándar de Japón</standard>
-                                       <daylight>Hora estándar de Japón</daylight>
-                               </long>
-                               <short>
-                                       <standard>JST</standard>
-                                       <daylight>JST</daylight>
-                               </short>
-                               <exemplarCity>Tokio</exemplarCity>
-                       </zone>
-                       <zone type="Africa/Casablanca">
-                               <long>
-                                       <standard>Hora media de Greenwich</standard>
-                                       <daylight>Hora media de Greenwich</daylight>
-                               </long>
-                               <short>
-                                       <standard>GMT</standard>
-                                       <daylight>GMT</daylight>
-                               </short>
-                               <exemplarCity>Casablanca</exemplarCity>
-                       </zone>
-                       <zone type="America/Mexico_City">
-                               <exemplarCity>Ciudad de México</exemplarCity>
-                       </zone>
-                       <zone type="America/Merida">
-                               <exemplarCity>Mérida</exemplarCity>
-                       </zone>
-                       <zone type="America/Cancun">
-                               <exemplarCity>Cancún</exemplarCity>
-                       </zone>
-                       <!-- French Polynesia -->
-                       <zone type="Pacific/Tahiti">
-                               <exemplarCity>Tahití</exemplarCity>
-                       </zone>
-                       <zone type="Europe/Lisbon">
-                               <exemplarCity>Lisboa</exemplarCity>
-                       </zone>
-                       <zone type="Europe/Bucharest">
-                               <long>
-                                       <standard>Hora estándar de Europa del Este</standard>
-                                       <daylight>Hora de verano de Europa del Este</daylight>
-                               </long>
-                               <short>
-                                       <standard>EET</standard>
-                                       <daylight>EEST</daylight>
-                               </short>
-                               <exemplarCity>Bucarest</exemplarCity>
-                       </zone>
-                       <!-- Russia -->
-                       <zone type="Europe/Kaliningrad">
-                               <exemplarCity>Kaliningrado</exemplarCity>
-                       </zone>
-                       <zone type="Europe/Moscow">
-                               <exemplarCity>Moscú</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Yekaterinburg">
-                               <exemplarCity>Yekaterinburgo</exemplarCity>
-                       </zone>
-                       <zone type="Pacific/Honolulu">
-                               <long>
-                                       <standard>Hora estándar de Hawai</standard>
-                                       <daylight>Hora estándar de Hawai</daylight>
-                               </long>
-                               <short>
-                                       <standard>HST</standard>
-                                       <daylight>HST</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Anchorage">
-                               <long>
-                                       <standard>Hora estándar de Alaska</standard>
-                                       <daylight>Hora de verano de Alaska</daylight>
-                               </long>
-                               <short>
-                                       <standard>AKST</standard>
-                                       <daylight>AKDT</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Los_Angeles">
-                               <long>
-                                       <standard>Hora estándar del Pacífico</standard>
-                                       <daylight>Hora de verano del Pacífico</daylight>
-                               </long>
-                               <short>
-                                       <standard>PST</standard>
-                                       <daylight>PDT</daylight>
-                               </short>
-                               <exemplarCity>Los Ángeles</exemplarCity>
-                       </zone>
-                       <zone type="America/Phoenix">
-                               <long>
-                                       <standard>Hora estándar de Montaña</standard>
-                                       <daylight>Hora estándar de Montaña</daylight>
-                               </long>
-                               <short>
-                                       <standard>MST</standard>
-                                       <daylight>MST</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Denver">
-                               <long>
-                                       <standard>Hora estándar de Montaña</standard>
-                                       <daylight>Hora de verano de Montaña</daylight>
-                               </long>
-                               <short>
-                                       <standard>MST</standard>
-                                       <daylight>MDT</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Chicago">
-                               <long>
-                                       <standard>Hora estándar central</standard>
-                                       <daylight>Hora de verano central</daylight>
-                               </long>
-                               <short>
-                                       <standard>CST</standard>
-                                       <daylight>CDT</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Indianapolis">
-                               <exemplarCity>Indianápolis</exemplarCity>
-                       </zone>
-                       <zone type="America/New_York">
-                               <long>
-                                       <standard>Hora estándar oriental</standard>
-                                       <daylight>Hora de verano oriental</daylight>
-                               </long>
-                               <short>
-                                       <standard>EST</standard>
-                                       <daylight>EDT</daylight>
-                               </short>
-                               <exemplarCity>Nueva York</exemplarCity>
-                       </zone>
-               </timeZoneNames>
-       </dates>
-       <numbers>
-               <symbols>
-                       <decimal>,</decimal>
-                       <group>.</group>
-               </symbols>
-               <currencyFormats>
-                       <currencyFormatLength>
-                               <currencyFormat>
-                                       <pattern>¤#,##0.00;(¤#,##0.00)</pattern>
-                               </currencyFormat>
-                       </currencyFormatLength>
-               </currencyFormats>
-               <currencies>
-                       <currency type="ADP">
-                               <displayName>peseta andorrana</displayName>
-                       </currency>
-                       <currency type="AED">
-                               <displayName>dirham de los Emiratos Árabes Unidos</displayName>
-                       </currency>
-                       <currency type="AFA">
-                               <displayName>afgani (1927-2002)</displayName>
-                       </currency>
-                       <currency type="AFN">
-                               <displayName>afgani</displayName>
-                               <symbol>Af</symbol>
-                       </currency>
-                       <currency type="ALL">
-                               <displayName>lek albanés</displayName>
-                               <symbol>lek</symbol>
-                       </currency>
-                       <currency type="AMD">
-                               <displayName>dram armenio</displayName>
-                               <symbol>dram</symbol>
-                       </currency>
-                       <currency type="ANG">
-                               <displayName>florín de las Antillas Neerlandesas</displayName>
-                               <symbol>NA f.</symbol>
-                       </currency>
-                       <currency type="AOA">
-                               <displayName>kwanza angoleño</displayName>
-                       </currency>
-                       <currency type="AOK">
-                               <displayName>kwanza angoleño (1977-1990)</displayName>
-                       </currency>
-                       <currency type="AON">
-                               <displayName>nuevo kwanza angoleño (1990-2000)</displayName>
-                       </currency>
-                       <currency type="AOR">
-                               <displayName>kwanza reajustado angoleño (1995-1999)</displayName>
-                       </currency>
-                       <currency type="ARA">
-                               <displayName>austral argentino</displayName>
-                       </currency>
-                       <currency type="ARP">
-                               <displayName>peso argentino (1983-1985)</displayName>
-                       </currency>
-                       <currency type="ARS">
-                               <displayName>peso argentino</displayName>
-                               <symbol>Arg$</symbol>
-                       </currency>
-                       <currency type="ATS">
-                               <displayName>chelín austriaco</displayName>
-                       </currency>
-                       <currency type="AUD">
-                               <displayName>dólar australiano</displayName>
-                               <symbol>$A</symbol>
-                       </currency>
-                       <currency type="AWG">
-                               <displayName>florín de Aruba</displayName>
-                       </currency>
-                       <currency type="AZM">
-                               <displayName>manat azerí</displayName>
-                       </currency>
-                       <currency type="BAD">
-                               <displayName>dinar bosnio</displayName>
-                       </currency>
-                       <currency type="BAM">
-                               <displayName references="RP1">marco convertible de Bosnia-Herzegovina</displayName>
-                               <symbol>KM</symbol>
-                       </currency>
-                       <currency type="BBD">
-                               <displayName>dólar de Barbados</displayName>
-                               <symbol>BDS$</symbol>
-                       </currency>
-                       <currency type="BDT">
-                               <displayName>taka de Bangladesh</displayName>
-                               <symbol>Tk</symbol>
-                       </currency>
-                       <currency type="BEC">
-                               <displayName>franco belga (convertible)</displayName>
-                       </currency>
-                       <currency type="BEF">
-                               <displayName>franco belga</displayName>
-                               <symbol>BF</symbol>
-                       </currency>
-                       <currency type="BEL">
-                               <displayName>franco belga (financiero)</displayName>
-                       </currency>
-                       <currency type="BGL">
-                               <displayName>lev fuerte búlgaro</displayName>
-                               <symbol>lev</symbol>
-                       </currency>
-                       <currency type="BGN">
-                               <displayName>nuevo lev búlgaro</displayName>
-                       </currency>
-                       <currency type="BHD">
-                               <displayName>dinar bahreiní</displayName>
-                               <symbol>BD</symbol>
-                       </currency>
-                       <currency type="BIF">
-                               <displayName>franco de Burundi</displayName>
-                               <symbol>Fbu</symbol>
-                       </currency>
-                       <currency type="BMD">
-                               <displayName>dólar de Bermudas</displayName>
-                               <symbol>Ber$</symbol>
-                       </currency>
-                       <currency type="BND">
-                               <displayName>dólar de Brunéi</displayName>
-                       </currency>
-                       <currency type="BOB">
-                               <displayName>boliviano</displayName>
-                               <symbol>Bs</symbol>
-                       </currency>
-                       <currency type="BOP">
-                               <displayName>peso boliviano</displayName>
-                       </currency>
-                       <currency type="BOV">
-                               <displayName>MVDOL boliviano</displayName>
-                       </currency>
-                       <currency type="BRB">
-                               <displayName>nuevo cruceiro brasileño (1967-1986)</displayName>
-                       </currency>
-                       <currency type="BRC">
-                               <displayName>cruzado brasileño</displayName>
-                       </currency>
-                       <currency type="BRE">
-                               <displayName>cruceiro brasileño (1990-1993)</displayName>
-                       </currency>
-                       <currency type="BRL">
-                               <displayName>real brasileño</displayName>
-                               <symbol>R$</symbol>
-                       </currency>
-                       <currency type="BRN">
-                               <displayName>nuevo cruzado brasileño</displayName>
-                       </currency>
-                       <currency type="BRR">
-                               <displayName>cruceiro brasileño</displayName>
-                       </currency>
-                       <currency type="BSD">
-                               <displayName>dólar de las Bahamas</displayName>
-                       </currency>
-                       <currency type="BTN">
-                               <displayName>ngultrum butanés</displayName>
-                               <symbol>Nu</symbol>
-                       </currency>
-                       <currency type="BUK">
-                               <displayName>kyat birmano</displayName>
-                       </currency>
-                       <currency type="BWP">
-                               <displayName>pula botsuano</displayName>
-                       </currency>
-                       <currency type="BYB">
-                               <displayName>nuevo rublo bielorruso (1994-1999)</displayName>
-                       </currency>
-                       <currency type="BYR">
-                               <displayName>rublo bielorruso</displayName>
-                               <symbol>Rbl</symbol>
-                       </currency>
-                       <currency type="BZD">
-                               <displayName>dólar de Belice</displayName>
-                               <symbol>BZ$</symbol>
-                       </currency>
-                       <currency type="CAD">
-                               <displayName>dólar canadiense</displayName>
-                               <symbol>Can$</symbol>
-                       </currency>
-                       <currency type="CDF">
-                               <displayName>franco congoleño</displayName>
-                       </currency>
-                       <currency type="CHF">
-                               <displayName>franco suizo</displayName>
-                               <symbol>SwF</symbol>
-                       </currency>
-                       <currency type="CHW">
-                               <displayName references="RP3" draft="provisional">WIR franc</displayName>
-                       </currency>
-                       <currency type="CLF">
-                               <displayName>unidad de fomento chilena</displayName>
-                       </currency>
-                       <currency type="CLP">
-                               <displayName>peso chileno</displayName>
-                               <symbol>Ch$</symbol>
-                       </currency>
-                       <currency type="CNY">
-                               <displayName>yuan renminbi chino</displayName>
-                               <symbol>Y</symbol>
-                       </currency>
-                       <currency type="COP">
-                               <displayName>peso colombiano</displayName>
-                               <symbol>Col$</symbol>
-                       </currency>
-                       <currency type="COU">
-                               <displayName references="RP1">unidad de valor real colombiana</displayName>
-                       </currency>
-                       <currency type="CRC">
-                               <displayName>colón costarricense</displayName>
-                               <symbol>C</symbol>
-                       </currency>
-                       <currency type="CSD">
-                               <displayName references="RP1">dinar serbio</displayName>
-                       </currency>
-                       <currency type="CSK">
-                               <displayName>corona fuerte checoslovaca</displayName>
-                       </currency>
-                       <currency type="CUP">
-                               <displayName>peso cubano</displayName>
-                       </currency>
-                       <currency type="CVE">
-                               <displayName>escudo de Cabo Verde</displayName>
-                               <symbol>CVEsc</symbol>
-                       </currency>
-                       <currency type="CYP">
-                               <displayName>libra chipriota</displayName>
-                               <symbol>£C</symbol>
-                       </currency>
-                       <currency type="CZK">
-                               <displayName>corona checa</displayName>
-                       </currency>
-                       <currency type="DDM">
-                               <displayName>ostmark de Alemania del Este</displayName>
-                       </currency>
-                       <currency type="DEM">
-                               <displayName>marco alemán</displayName>
-                       </currency>
-                       <currency type="DJF">
-                               <displayName>franco de Yibuti</displayName>
-                               <symbol>DF</symbol>
-                       </currency>
-                       <currency type="DKK">
-                               <displayName>corona danesa</displayName>
-                               <symbol>DKr</symbol>
-                       </currency>
-                       <currency type="DOP">
-                               <displayName>peso dominicano</displayName>
-                               <symbol>RD$</symbol>
-                       </currency>
-                       <currency type="DZD">
-                               <displayName>dinar argelino</displayName>
-                               <symbol>DA</symbol>
-                       </currency>
-                       <currency type="ECS">
-                               <displayName>sucre ecuatoriano</displayName>
-                       </currency>
-                       <currency type="ECV">
-                               <displayName>unidad de valor constante (UVC) ecuatoriana</displayName>
-                       </currency>
-                       <currency type="EEK">
-                               <displayName>corona estonia</displayName>
-                       </currency>
-                       <currency type="EGP">
-                               <displayName>libra egipcia</displayName>
-                       </currency>
-                       <currency type="EQE">
-                               <displayName draft="provisional">ekwele</displayName>
-                       </currency>
-                       <currency type="ERN">
-                               <displayName>nakfa eritreo</displayName>
-                       </currency>
-                       <currency type="ESA">
-                               <displayName>peseta española (cuenta A)</displayName>
-                       </currency>
-                       <currency type="ESB">
-                               <displayName>peseta española (cuenta convertible)</displayName>
-                       </currency>
-                       <currency type="ESP">
-                               <displayName>peseta española</displayName>
-                               <symbol>₧</symbol>
-                       </currency>
-                       <currency type="ETB">
-                               <displayName>birr etíope</displayName>
-                               <symbol>Br</symbol>
-                       </currency>
-                       <currency type="EUR">
-                               <displayName>euro</displayName>
-                       </currency>
-                       <currency type="FIM">
-                               <displayName>marco finlandés</displayName>
-                       </currency>
-                       <currency type="FJD">
-                               <displayName>dólar de las Islas Fiyi</displayName>
-                               <symbol>F$</symbol>
-                       </currency>
-                       <currency type="FKP">
-                               <displayName>libra de las Islas Malvinas</displayName>
-                       </currency>
-                       <currency type="FRF">
-                               <displayName>franco francés</displayName>
-                       </currency>
-                       <currency type="GBP">
-                               <displayName>libra esterlina británica</displayName>
-                       </currency>
-                       <currency type="GEK">
-                               <displayName>kupon larit georgiano</displayName>
-                       </currency>
-                       <currency type="GEL">
-                               <displayName>lari georgiano</displayName>
-                               <symbol>lari</symbol>
-                       </currency>
-                       <currency type="GHC">
-                               <displayName>cedi ghanés</displayName>
-                       </currency>
-                       <currency type="GIP">
-                               <displayName>libra de Gibraltar</displayName>
-                       </currency>
-                       <currency type="GMD">
-                               <displayName>dalasi gambiano</displayName>
-                       </currency>
-                       <currency type="GNF">
-                               <displayName references="RP1">franco guineano</displayName>
-                               <symbol>GF</symbol>
-                       </currency>
-                       <currency type="GNS">
-                               <displayName>syli guineano</displayName>
-                       </currency>
-                       <currency type="GQE">
-                               <displayName>ekuele de Guinea Ecuatorial</displayName>
-                       </currency>
-                       <currency type="GRD">
-                               <displayName>dracma griego</displayName>
-                       </currency>
-                       <currency type="GTQ">
-                               <displayName>quetzal guatemalteco</displayName>
-                               <symbol>Q</symbol>
-                       </currency>
-                       <currency type="GWE">
-                               <displayName>escudo de Guinea Portuguesa</displayName>
-                       </currency>
-                       <currency type="GWP">
-                               <displayName>peso de Guinea-Bissáu</displayName>
-                       </currency>
-                       <currency type="GYD">
-                               <displayName>dólar guyanés</displayName>
-                               <symbol>G$</symbol>
-                       </currency>
-                       <currency type="HKD">
-                               <displayName>dólar de Hong Kong</displayName>
-                               <symbol>HK$</symbol>
-                       </currency>
-                       <currency type="HNL">
-                               <displayName>lempira hondureño</displayName>
-                               <symbol>L</symbol>
-                       </currency>
-                       <currency type="HRD">
-                               <displayName>dinar croata</displayName>
-                       </currency>
-                       <currency type="HRK">
-                               <displayName>kuna croata</displayName>
-                       </currency>
-                       <currency type="HTG">
-                               <displayName>gourde haitiano</displayName>
-                       </currency>
-                       <currency type="HUF">
-                               <displayName>florín húngaro</displayName>
-                               <symbol>Ft</symbol>
-                       </currency>
-                       <currency type="IDR">
-                               <displayName>rupia indonesia</displayName>
-                               <symbol>Rp</symbol>
-                       </currency>
-                       <currency type="IEP">
-                               <displayName>libra irlandesa</displayName>
-                               <symbol>IR£</symbol>
-                       </currency>
-                       <currency type="ILP">
-                               <displayName>libra israelí</displayName>
-                       </currency>
-                       <currency type="ILS">
-                               <displayName>nuevo sheqel israelí</displayName>
-                       </currency>
-                       <currency type="INR">
-                               <displayName>rupia india</displayName>
-                       </currency>
-                       <currency type="IQD">
-                               <displayName>dinar iraquí</displayName>
-                               <symbol>ID</symbol>
-                       </currency>
-                       <currency type="IRR">
-                               <displayName>rial iraní</displayName>
-                               <symbol>RI</symbol>
-                       </currency>
-                       <currency type="ISK">
-                               <displayName>corona islandesa</displayName>
-                       </currency>
-                       <currency type="ITL">
-                               <displayName>lira italiana</displayName>
-                       </currency>
-                       <currency type="JMD">
-                               <displayName>dólar de Jamaica</displayName>
-                               <symbol>J$</symbol>
-                       </currency>
-                       <currency type="JOD">
-                               <displayName>dinar jordano</displayName>
-                               <symbol>JD</symbol>
-                       </currency>
-                       <currency type="JPY">
-                               <displayName>yen japonés</displayName>
-                       </currency>
-                       <currency type="KES">
-                               <displayName>chelín keniata</displayName>
-                               <symbol>K Sh</symbol>
-                       </currency>
-                       <currency type="KGS">
-                               <displayName>som kirguís</displayName>
-                               <symbol>som</symbol>
-                       </currency>
-                       <currency type="KHR">
-                               <displayName>riel camboyano</displayName>
-                               <symbol>CR</symbol>
-                       </currency>
-                       <currency type="KMF">
-                               <displayName>franco comorense</displayName>
-                               <symbol>CF</symbol>
-                       </currency>
-                       <currency type="KPW">
-                               <displayName>won norcoreano</displayName>
-                       </currency>
-                       <currency type="KRW">
-                               <displayName>won surcoreano</displayName>
-                       </currency>
-                       <currency type="KWD">
-                               <displayName>dinar kuwaití</displayName>
-                               <symbol>KD</symbol>
-                       </currency>
-                       <currency type="KYD">
-                               <displayName>dólar de las Islas Caimán</displayName>
-                       </currency>
-                       <currency type="KZT">
-                               <displayName>tenge kazako</displayName>
-                               <symbol>T</symbol>
-                       </currency>
-                       <currency type="LAK">
-                               <displayName>kip laosiano</displayName>
-                       </currency>
-                       <currency type="LBP">
-                               <displayName>libra libanesa</displayName>
-                               <symbol>LL</symbol>
-                       </currency>
-                       <currency type="LKR">
-                               <displayName>rupia de Sri Lanka</displayName>
-                               <symbol>SL Re</symbol>
-                       </currency>
-                       <currency type="LRD">
-                               <displayName>dólar liberiano</displayName>
-                       </currency>
-                       <currency type="LSL">
-                               <displayName>loti lesothense</displayName>
-                               <symbol>M</symbol>
-                       </currency>
-                       <currency type="LSM">
-                               <displayName references="RP1" draft="provisional">maloti lesothense</displayName>
-                       </currency>
-                       <currency type="LTL">
-                               <displayName>litas lituano</displayName>
-                       </currency>
-                       <currency type="LTT">
-                               <displayName>talonas lituano</displayName>
-                       </currency>
-                       <currency type="LUC">
-                               <displayName>franco convertible luxemburgués</displayName>
-                       </currency>
-                       <currency type="LUF">
-                               <displayName>franco luxemburgués</displayName>
-                       </currency>
-                       <currency type="LUL">
-                               <displayName>franco financiero luxemburgués</displayName>
-                       </currency>
-                       <currency type="LVL">
-                               <displayName>lats letón</displayName>
-                       </currency>
-                       <currency type="LVR">
-                               <displayName>rublo letón</displayName>
-                       </currency>
-                       <currency type="LYD">
-                               <displayName>dinar libio</displayName>
-                               <symbol>LD</symbol>
-                       </currency>
-                       <currency type="MAD">
-                               <displayName>dirham marroquí</displayName>
-                       </currency>
-                       <currency type="MAF">
-                               <displayName>franco marroquí</displayName>
-                       </currency>
-                       <currency type="MDL">
-                               <displayName>leu moldavo</displayName>
-                       </currency>
-                       <currency type="MGA">
-                               <displayName>ariary malgache</displayName>
-                       </currency>
-                       <currency type="MGF">
-                               <displayName>franco malgache</displayName>
-                       </currency>
-                       <currency type="MKD">
-                               <displayName>dinar macedonio</displayName>
-                               <symbol>MDen</symbol>
-                       </currency>
-                       <currency type="MLF">
-                               <displayName>franco malí</displayName>
-                       </currency>
-                       <currency type="MMK">
-                               <displayName>kyat de Myanmar</displayName>
-                       </currency>
-                       <currency type="MNT">
-                               <displayName>tugrik mongol</displayName>
-                               <symbol>Tug</symbol>
-                       </currency>
-                       <currency type="MOP">
-                               <displayName>pataca de Macao</displayName>
-                       </currency>
-                       <currency type="MRO">
-                               <displayName>ouguiya mauritano</displayName>
-                               <symbol>UM</symbol>
-                       </currency>
-                       <currency type="MTL">
-                               <displayName>lira maltesa</displayName>
-                               <symbol>Lm</symbol>
-                       </currency>
-                       <currency type="MTP">
-                               <displayName>libra maltesa</displayName>
-                       </currency>
-                       <currency type="MUR">
-                               <displayName>rupia mauriciana</displayName>
-                       </currency>
-                       <currency type="MVR">
-                               <displayName>rufiyaa de Maldivas</displayName>
-                       </currency>
-                       <currency type="MWK">
-                               <displayName>kwacha de Malawi</displayName>
-                               <symbol>MK</symbol>
-                       </currency>
-                       <currency type="MXN">
-                               <displayName>peso mexicano</displayName>
-                               <symbol>MEX$</symbol>
-                       </currency>
-                       <currency type="MXP">
-                               <displayName>peso de plata mexicano (1861-1992)</displayName>
-                       </currency>
-                       <currency type="MXV">
-                               <displayName>unidad de inversión (UDI) mexicana</displayName>
-                       </currency>
-                       <currency type="MYR">
-                               <displayName>ringgit malasio</displayName>
-                               <symbol>RM</symbol>
-                       </currency>
-                       <currency type="MZE">
-                               <displayName>escudo mozambiqueño</displayName>
-                       </currency>
-                       <currency type="MZM">
-                               <displayName>metical mozambiqueño</displayName>
-                               <symbol>Mt</symbol>
-                       </currency>
-                       <currency type="NAD">
-                               <displayName>dólar de Namibia</displayName>
-                               <symbol>N$</symbol>
-                       </currency>
-                       <currency type="NGN">
-                               <displayName>naira nigeriano</displayName>
-                       </currency>
-                       <currency type="NIC">
-                               <displayName>córdoba nicaragüense</displayName>
-                       </currency>
-                       <currency type="NIO">
-                               <displayName>córdoba oro nicaragüense</displayName>
-                               <symbol references="R1">C$</symbol>
-                       </currency>
-                       <currency type="NLG">
-                               <displayName>florín neerlandés</displayName>
-                       </currency>
-                       <currency type="NOK">
-                               <displayName>corona noruega</displayName>
-                               <symbol>NKr</symbol>
-                       </currency>
-                       <currency type="NPR">
-                               <displayName>rupia nepalesa</displayName>
-                               <symbol>Nrs</symbol>
-                       </currency>
-                       <currency type="NZD">
-                               <displayName>dólar neozelandés</displayName>
-                               <symbol>$NZ</symbol>
-                       </currency>
-                       <currency type="OMR">
-                               <displayName>rial omaní</displayName>
-                               <symbol>RO</symbol>
-                       </currency>
-                       <currency type="PAB">
-                               <displayName>balboa panameño</displayName>
-                               <symbol draft="unconfirmed">B</symbol>
-                       </currency>
-                       <currency type="PEI">
-                               <displayName>inti peruano</displayName>
-                       </currency>
-                       <currency type="PEN">
-                               <displayName>nuevo sol peruano</displayName>
-                               <symbol draft="unconfirmed">S/</symbol>
-                       </currency>
-                       <currency type="PES">
-                               <displayName>sol peruano</displayName>
-                       </currency>
-                       <currency type="PGK">
-                               <displayName>kina de Papúa Nueva Guinea</displayName>
-                       </currency>
-                       <currency type="PHP">
-                               <displayName>peso filipino</displayName>
-                       </currency>
-                       <currency type="PKR">
-                               <displayName>rupia pakistaní</displayName>
-                               <symbol>Pra</symbol>
-                       </currency>
-                       <currency type="PLN">
-                               <displayName>zloty polaco</displayName>
-                               <symbol>Zl</symbol>
-                       </currency>
-                       <currency type="PLZ">
-                               <displayName>zloty polaco (1950-1995)</displayName>
-                       </currency>
-                       <currency type="PTE">
-                               <displayName>escudo portugués</displayName>
-                       </currency>
-                       <currency type="PYG">
-                               <displayName>guaraní paraguayo</displayName>
-                               <symbol draft="unconfirmed">G</symbol>
-                               <symbol references="R2" alt="variant" draft="unconfirmed">₲</symbol>
-                       </currency>
-                       <currency type="QAR">
-                               <displayName>riyal de Qatar</displayName>
-                               <symbol>QR</symbol>
-                       </currency>
-                       <currency type="RHD">
-                               <displayName references="RP3">dólar rodesiano</displayName>
-                       </currency>
-                       <currency type="ROL">
-                               <displayName references="RP3">antiguo leu rumano</displayName>
-                               <symbol>leu</symbol>
-                       </currency>
-                       <currency type="RON">
-                               <displayName references="RP1">leu rumano</displayName>
-                       </currency>
-                       <currency type="RUB">
-                               <displayName>rublo ruso</displayName>
-                       </currency>
-                       <currency type="RUR">
-                               <displayName>rublo ruso (1991-1998)</displayName>
-                       </currency>
-                       <currency type="RWF">
-                               <displayName>franco ruandés</displayName>
-                       </currency>
-                       <currency type="SAR">
-                               <displayName>riyal saudí</displayName>
-                               <symbol>SRl</symbol>
-                       </currency>
-                       <currency type="SBD">
-                               <displayName>dólar de las Islas Salomón</displayName>
-                               <symbol>SI$</symbol>
-                       </currency>
-                       <currency type="SCR">
-                               <displayName>rupia de Seychelles</displayName>
-                               <symbol>SR</symbol>
-                       </currency>
-                       <currency type="SDD">
-                               <displayName>dinar sudanés</displayName>
-                       </currency>
-                       <currency type="SDP">
-                               <displayName>libra sudanesa</displayName>
-                       </currency>
-                       <currency type="SEK">
-                               <displayName>corona sueca</displayName>
-                               <symbol>SKr</symbol>
-                       </currency>
-                       <currency type="SGD">
-                               <displayName>dólar singapurense</displayName>
-                               <symbol>S$</symbol>
-                       </currency>
-                       <currency type="SHP">
-                               <displayName>libra de Santa Elena</displayName>
-                       </currency>
-                       <currency type="SIT">
-                               <displayName>tólar esloveno</displayName>
-                       </currency>
-                       <currency type="SKK">
-                               <displayName>corona eslovaca</displayName>
-                               <symbol>Sk</symbol>
-                       </currency>
-                       <currency type="SLL">
-                               <displayName>leone de Sierra Leona</displayName>
-                       </currency>
-                       <currency type="SOS">
-                               <displayName>chelín somalí</displayName>
-                               <symbol>So. Sh.</symbol>
-                       </currency>
-                       <currency type="SRD">
-                               <displayName references="RP1">dólar surinamés</displayName>
-                       </currency>
-                       <currency type="SRG">
-                               <displayName>florín surinamés</displayName>
-                               <symbol>Sf</symbol>
-                       </currency>
-                       <currency type="STD">
-                               <displayName>dobra de Santo Tomé y Príncipe</displayName>
-                               <symbol>Db</symbol>
-                       </currency>
-                       <currency type="SUR">
-                               <displayName>rublo soviético</displayName>
-                       </currency>
-                       <currency type="SVC">
-                               <displayName>colón salvadoreño</displayName>
-                       </currency>
-                       <currency type="SYP">
-                               <displayName>libra siria</displayName>
-                               <symbol>LS</symbol>
-                       </currency>
-                       <currency type="SZL">
-                               <displayName>lilangeni suazi</displayName>
-                               <symbol>E</symbol>
-                       </currency>
-                       <currency type="THB">
-                               <displayName>baht tailandés</displayName>
-                       </currency>
-                       <currency type="TJR">
-                               <displayName>rublo tayiko</displayName>
-                       </currency>
-                       <currency type="TJS">
-                               <displayName>somoni tayiko</displayName>
-                       </currency>
-                       <currency type="TMM">
-                               <displayName>manat turcomano</displayName>
-                       </currency>
-                       <currency type="TND">
-                               <displayName>dinar tunecino</displayName>
-                       </currency>
-                       <currency type="TOP">
-                               <displayName>paʻanga tongano</displayName>
-                               <symbol>T$</symbol>
-                       </currency>
-                       <currency type="TPE">
-                               <displayName>escudo timorense</displayName>
-                       </currency>
-                       <currency type="TRL">
-                               <displayName>lira turca</displayName>
-                               <symbol>TL</symbol>
-                       </currency>
-                       <currency type="TRY">
-                               <displayName references="RP1">nueva lira turca</displayName>
-                       </currency>
-                       <currency type="TTD">
-                               <displayName>dólar de Trinidad y Tobago</displayName>
-                               <symbol>TT$</symbol>
-                       </currency>
-                       <currency type="TWD">
-                               <displayName>nuevo dólar taiwanés</displayName>
-                               <symbol>NT$</symbol>
-                       </currency>
-                       <currency type="TZS">
-                               <displayName>chelín tanzano</displayName>
-                               <symbol>T Sh</symbol>
-                       </currency>
-                       <currency type="UAH">
-                               <displayName>grivna ucraniana</displayName>
-                       </currency>
-                       <currency type="UAK">
-                               <displayName>karbovanet ucraniano</displayName>
-                       </currency>
-                       <currency type="UGS">
-                               <displayName>chelín ugandés (1966-1987)</displayName>
-                       </currency>
-                       <currency type="UGX">
-                               <displayName>chelín ugandés</displayName>
-                               <symbol>U Sh</symbol>
-                       </currency>
-                       <currency type="USD">
-                               <displayName>dólar estadounidense</displayName>
-                               <symbol>US$</symbol>
-                       </currency>
-                       <currency type="USN">
-                               <displayName>dólar estadounidense (día siguiente)</displayName>
-                       </currency>
-                       <currency type="USS">
-                               <displayName>dólar estadounidense (mismo día)</displayName>
-                       </currency>
-                       <currency type="UYP">
-                               <displayName>peso uruguayo (1975-1993)</displayName>
-                       </currency>
-                       <currency type="UYU">
-                               <displayName>peso uruguayo</displayName>
-                               <symbol>Ur$</symbol>
-                       </currency>
-                       <currency type="UZS">
-                               <displayName>sum uzbeko</displayName>
-                       </currency>
-                       <currency type="VEB">
-                               <displayName>bolívar venezolano</displayName>
-                               <symbol>Be</symbol>
-                       </currency>
-                       <currency type="VND">
-                               <displayName>dong vietnamita</displayName>
-                       </currency>
-                       <currency type="VUV">
-                               <displayName>vatu vanuatuense</displayName>
-                               <symbol>VT</symbol>
-                       </currency>
-                       <currency type="WST">
-                               <displayName>tala samoano</displayName>
-                       </currency>
-                       <currency type="XAF">
-                               <displayName>franco CFA BEAC</displayName>
-                       </currency>
-                       <currency type="XAG">
-                               <displayName references="RP1">plata</displayName>
-                       </currency>
-                       <currency type="XAU">
-                               <displayName>oro</displayName>
-                       </currency>
-                       <currency type="XBA">
-                               <displayName>unidad compuesta europea</displayName>
-                       </currency>
-                       <currency type="XBB">
-                               <displayName>unidad monetaria europea</displayName>
-                       </currency>
-                       <currency type="XBC">
-                               <displayName>unidad de cuenta europea (XBC)</displayName>
-                       </currency>
-                       <currency type="XBD">
-                               <displayName>unidad de cuenta europea (XBD)</displayName>
-                       </currency>
-                       <currency type="XCD">
-                               <displayName>dólar del Caribe Oriental</displayName>
-                               <symbol>EC$</symbol>
-                       </currency>
-                       <currency type="XDR">
-                               <displayName>derechos especiales de giro</displayName>
-                       </currency>
-                       <currency type="XEU">
-                               <displayName>unidad de moneda europea</displayName>
-                       </currency>
-                       <currency type="XFO">
-                               <displayName>franco oro francés</displayName>
-                       </currency>
-                       <currency type="XFU">
-                               <displayName>franco UIC francés</displayName>
-                       </currency>
-                       <currency type="XOF">
-                               <displayName>franco CFA BCEAO</displayName>
-                       </currency>
-                       <currency type="XPD">
-                               <displayName references="RP1">paladio</displayName>
-                       </currency>
-                       <currency type="XPF">
-                               <displayName>franco CFP</displayName>
-                               <symbol>CFPF</symbol>
-                       </currency>
-                       <currency type="XPT">
-                               <displayName references="RP1">platino</displayName>
-                       </currency>
-                       <currency type="XRE">
-                               <displayName references="RP3">fondos RINET</displayName>
-                       </currency>
-                       <currency type="XTS">
-                               <displayName references="RP1">código reservado para pruebas</displayName>
-                       </currency>
-                       <currency type="XXX">
-                               <displayName>Sin divisa</displayName>
-                       </currency>
-                       <currency type="YDD">
-                               <displayName>dinar yemení</displayName>
-                       </currency>
-                       <currency type="YER">
-                               <displayName>rial yemení</displayName>
-                               <symbol>YRl</symbol>
-                       </currency>
-                       <currency type="YUD">
-                               <displayName>dinar fuerte yugoslavo</displayName>
-                       </currency>
-                       <currency type="YUM">
-                               <displayName>super dinar yugoslavo</displayName>
-                       </currency>
-                       <currency type="YUN">
-                               <displayName>dinar convertible yugoslavo</displayName>
-                       </currency>
-                       <currency type="ZAL">
-                               <displayName>rand sudafricano (financiero)</displayName>
-                       </currency>
-                       <currency type="ZAR">
-                               <displayName>rand sudafricano</displayName>
-                               <symbol>R</symbol>
-                       </currency>
-                       <currency type="ZMK">
-                               <displayName>kwacha zambiano</displayName>
-                       </currency>
-                       <currency type="ZRN">
-                               <displayName>nuevo zaire zaireño</displayName>
-                       </currency>
-                       <currency type="ZRZ">
-                               <displayName>zaire zaireño</displayName>
-                       </currency>
-                       <currency type="ZWD">
-                               <displayName>dólar de Zimbabue</displayName>
-                               <symbol>Z$</symbol>
-                       </currency>
-               </currencies>
-       </numbers>
-       <posix>
-               <messages>
-                       <yesstr>sí:si:s</yesstr>
-               </messages>
-       </posix>
-       <references>
-               <reference type="R1" uri="http://www.bcn.gob.ni/">Banco Central de Nicaragua</reference>
-               <reference type="R2" uri="http://www.unicode.org/charts/PDF/U20A0.pdf">Unicode</reference>
-               <reference type="RP1" uri="http://es.wikipedia.org/wiki/Portada">Wikipedia (Spanish version)</reference>
-               <reference type="RP2" uri="http://www.rae.es/">Dictionary of the Real Academia Española</reference>
-               <reference type="RP3" uri="http://www.google.es/">Google search results</reference>
-               <reference type="RP4" uri="http://publications.eu.int/code/es/es-5000600.htm">Order of country codes (European Union Style Guide)</reference>
-       </references>
-</ldml>
-<!-- Old Comments. See root.xml for more info.
-URL: http://oss.software.ibm.com/cvs/icu/icu/source/data/locales/es.txt?only_with_tag=final-update-LDML
-
-                "a.C.",  // Said to be a.C. for antes de Cristo
-                "d.C.",  // Said to be d.C. for despu\u00E9s de Cristo
-CZ { "Chequia" } // Old value
-        FK { "Islas Falkland (Malvinas)" }    // alternate name { "Islas Malvinas" }
-FM { "Micronesia, Estados Federados de" }
-        KP { "Corea del Norte" }    // alternate name { "Corea, Rep\u00FAblica Popular Democr\u00E1tica de" }
-        KR { "Corea del Sur" }    // alternate name { "Corea, Rep\u00FAblica de " }
-LA { "Rep\u00FAblica Democr\u00E1tica Popular Lao" } // From translation center
-LC { "Santa Lucia" }
-MD { "Moldavia, Rep\u00FAblica de" }
-MK { "Macedonia, Antigua Rep\u00FAblica Yugoslava de" }    // alternate name { "Macedonia, Rep\u00FAblica de" }
-PH { "Islas Filipinas" }  // Original value
-RE { "Reuni\u00F3n" }
-RU { "Federaci\u00F3n Rusa" } // From translation center
-        SH { "Santa Elena" } // From translation center
-SR { "Surinam" }
-UM { "Islas Perif\u00E9ricas Menores de los Estados Unidos" } // Old value
-VA { "Santa Sede (Ciudad del Vaticano)" }
-Currency display names
-You may find this source useful too: http://publications.eu.int/code/es/es-5000500.htm
-XPS { "XPS", "libra esterlina" }
-XSS { "XSS", "chel\u00EDn esterlino" }
-Spanish does not capitalize the language names like English
-        root{"ra\u00EDz" }    // The only exception to ISO-639
-        gu  { "gujarati" } // If this changes, then change Gujr in Scripts too.
-        km  { "jemer" } // If this changes, then change Khmr in Scripts too.
-        kn  { "canar\u00e9s" } // If this changes, then change Knda in Scripts too.
-lv { "let\u00F3n" } // Old value
-        "Latn",  // ISO 15924 Name 
-u umlaut \u00fc is a rare character.
-It can be found in words like multilig\u00fce, ag\u00fcita and Itag\u00fc\u00ed
-        Cprt { "chipriota" } // grecochipriota?
-        Hans { "han simplificado" } // Not a formal part of ISO-15924 yet
-        Hant { "han tradicional" } // Not a formal part of ISO-15924 yet
-? Qaai { "inherited" } // PUA  Difficult to translate
-        Zyyy { "com\u00FAn" } // This may need to become "undetermined script"
-The following should probably be all lowercase.
-
-Comments without bases
-
- Kiribati       - was on: /ldml/dates/timeZoneNames/zone[@type="Pacific/Enderbury"]
- Marshall Islands       - was on: /ldml/dates/timeZoneNames/zone[@type="Pacific/Kwajalein"]
- Mali   - was on: /ldml/dates/timeZoneNames/zone[@type="Africa/Bamako"]
- Ecuador        - was on: /ldml/dates/timeZoneNames/zone[@type="Pacific/Galapagos"]
- Indonesia      - was on: /ldml/dates/timeZoneNames/zone[@type="Asia/Jakarta"]
- United States          - was on: /ldml/dates/timeZoneNames/zone[@type="America/Adak"]
- Kazakhstan     - was on: /ldml/dates/timeZoneNames/zone[@type="Asia/Aqtau"]
- Ukraine        - was on: /ldml/dates/timeZoneNames/zone[@type="Europe/Uzhgorod"]
- Portugal       - was on: /ldml/dates/timeZoneNames/zone[@type="Atlantic/Azores"]
- Brazil         - was on: /ldml/dates/timeZoneNames/zone[@type="America/Eirunepe"]
- Antarctica     - was on: /ldml/dates/timeZoneNames/zone[@type="Antarctica/Rothera"]
- Malaysia       - was on: /ldml/dates/timeZoneNames/zone[@type="Asia/Kuala_Lumpur"]
- Canada         - was on: /ldml/dates/timeZoneNames/zone[@type="America/Dawson"]
- Micronesia     - was on: /ldml/dates/timeZoneNames/zone[@type="Pacific/Yap"]
- Argentina      - was on: /ldml/dates/timeZoneNames/zone[@type="America/Argentina/Rio_Gallegos"]
- United States Minor Outlying Islands   - was on: /ldml/dates/timeZoneNames/zone[@type="Pacific/Midway"]
- Mexico         - was on: /ldml/dates/timeZoneNames/zone[@type="America/Tijuana"]
- Democratic Republic of the Congo       - was on: /ldml/dates/timeZoneNames/zone[@type="Africa/Kinshasa"]
- United Kingdom         - was on: /ldml/dates/timeZoneNames/zone[@type="Europe/Belfast"]
- New Zealand    - was on: /ldml/dates/timeZoneNames/zone[@type="Pacific/Chatham"]
- Greenland      - was on: /ldml/dates/timeZoneNames/zone[@type="America/Thule"]
- Mongolia       - was on: /ldml/dates/timeZoneNames/zone[@type="Asia/Hovd"]
- Uzbekistan     - was on: /ldml/dates/timeZoneNames/zone[@type="Asia/Samarkand"]
- Svalbard and Jan Mayen         - was on: /ldml/dates/timeZoneNames/zone[@type="Atlantic/Jan_Mayen"]
- Australia      - was on: /ldml/dates/timeZoneNames/zone[@type="Australia/Perth"]
- China          - was on: /ldml/dates/timeZoneNames/zone[@type="Asia/Kashgar"]
--->
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/es_ES.xml b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/es_ES.xml
deleted file mode 100644 (file)
index cbb37f3..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/data/dtd/ldml.dtd">
-<ldml>
-       <identity>
-               <version number="$Revision: 1.41 $"/>
-               <generation date="$Date: 2006/12/08 16:29:36 $"/>
-               <language type="es"/>
-               <territory type="ES"/>
-       </identity>
-       <localeDisplayNames>
-               <languages>
-                       <language type="chg" draft="provisional">chagatai</language>
-               </languages>
-               <scripts>
-                       <script type="Egyp" draft="provisional">gerogríficos egipcios</script>
-                       <script type="Ethi">etíope</script>
-                       <script type="Hung" draft="provisional">Húngaro antiguo</script>
-                       <script type="Ital" draft="provisional">antigua itálica</script>
-                       <script type="Latg" draft="provisional">Latín (variante gaélico)</script>
-                       <script type="Lina" draft="provisional">linear A</script>
-                       <script type="Maya" draft="provisional">gerogríficos mayas</script>
-                       <script type="Mong" draft="provisional">mongol</script>
-                       <script type="Phnx" draft="provisional">Fenicio</script>
-               </scripts>
-       </localeDisplayNames>
-       <dates>
-               <calendars>
-                       <calendar type="gregorian">
-                               <dateFormats>
-                                       <dateFormatLength type="medium">
-                                               <dateFormat>
-                                                       <pattern>dd/MM/yyyy</pattern>
-                                               </dateFormat>
-                                       </dateFormatLength>
-                                       <dateFormatLength type="short">
-                                               <dateFormat>
-                                                       <pattern>dd/MM/yy</pattern>
-                                               </dateFormat>
-                                       </dateFormatLength>
-                               </dateFormats>
-                               <timeFormats>
-                                       <timeFormatLength type="medium">
-                                               <timeFormat>
-                                                       <pattern>H:mm:ss</pattern>
-                                               </timeFormat>
-                                       </timeFormatLength>
-                                       <timeFormatLength type="short">
-                                               <timeFormat>
-                                                       <pattern>H:mm</pattern>
-                                               </timeFormat>
-                                       </timeFormatLength>
-                               </timeFormats>
-                               <dateTimeFormats>
-                                       <availableFormats>
-                                               <dateFormatItem id="MMdd" draft="provisional">dd/MM</dateFormatItem>
-                                               <dateFormatItem id="mmss" draft="provisional">mm:ss</dateFormatItem>
-                                               <dateFormatItem id="yyyyMM" draft="provisional">MM/yyyy</dateFormatItem>
-                                       </availableFormats>
-                               </dateTimeFormats>
-                       </calendar>
-               </calendars>
-       </dates>
-       <numbers>
-               <currencyFormats>
-                       <currencyFormatLength>
-                               <currencyFormat>
-                                       <pattern>#,##0.00 ¤</pattern>
-                               </currencyFormat>
-                       </currencyFormatLength>
-               </currencyFormats>
-               <currencies>
-                       <currency type="ESP">
-                               <pattern>#,##0 ¤;-#,##0 ¤</pattern>
-                               <decimal>,</decimal>
-                               <group>.</group>
-                       </currency>
-               </currencies>
-       </numbers>
-</ldml>
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/fr.xml b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/fr.xml
deleted file mode 100644 (file)
index 86c8ba2..0000000
+++ /dev/null
@@ -1,2562 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/data/dtd/ldml.dtd">
-<ldml>
-       <identity>
-               <version number="$Revision: 1.86 $"/>
-               <generation date="$Date: 2006/12/08 16:29:37 $"/>
-               <language type="fr"/>
-       </identity>
-       <localeDisplayNames>
-               <languages>
-                       <language type="aa">afar</language>
-                       <language type="ab">abkhaze</language>
-                       <language type="ace">aceh</language>
-                       <language type="ach">acoli</language>
-                       <language type="ada">adangme</language>
-                       <language type="ady">adyghéen</language>
-                       <language type="ae">avestique</language>
-                       <language type="af">afrikaans</language>
-                       <language type="afa">afro-asiatiques, autres langues</language>
-                       <language type="afa" alt="proposed-u148-1" draft="unconfirmed">langues afro-asiatiques (autres)</language>
-                       <language type="afh">afrihili</language>
-                       <language type="ain">aïnou</language>
-                       <language type="ak">akan</language>
-                       <language type="akk">akkadien</language>
-                       <language type="ale">aléoute</language>
-                       <language type="alg" references="RP1">algonquines, langues</language>
-                       <language type="alg" references="RP1" alt="proposed-u148-1" draft="unconfirmed">langues algonquines</language>
-                       <language type="alt">altaï du Sud</language>
-                       <language type="alt" alt="proposed-u148-1" draft="unconfirmed">altaï méridional</language>
-                       <language type="am">amharique</language>
-                       <language type="an">aragonais</language>
-                       <language type="ang" references="RP1">anglo-saxon (vers 450-1100)</language>
-                       <language type="apa" draft="unconfirmed">apaches, langues</language>
-                       <language type="ar">arabe</language>
-                       <language type="arc">araméen</language>
-                       <language type="arn">araukan</language>
-                       <language type="arp">arapaho</language>
-                       <language type="art">artificielles, autres langues</language>
-                       <language type="art" alt="proposed-u148-1" draft="unconfirmed">langues artificielles (autres)</language>
-                       <language type="arw">arawak</language>
-                       <language type="as">assamais</language>
-                       <language type="ast">asturien</language>
-                       <language type="ath" references="RP1" draft="unconfirmed">athapascanes, langues</language>
-                       <language type="aus" references="RP1" draft="unconfirmed">australiennes, langues</language>
-                       <language type="av">avar</language>
-                       <language type="awa">awadhi</language>
-                       <language type="ay">aymara</language>
-                       <language type="az">azéri</language>
-                       <language type="ba">bachkir</language>
-                       <language type="bad">banda</language>
-                       <language type="bai">bamilékés, langues</language>
-                       <language type="bai" alt="proposed-u148-1" draft="unconfirmed">langues bamilékées</language>
-                       <language type="bal">baloutchi</language>
-                       <language type="ban">balinais</language>
-                       <language type="bas">bassa</language>
-                       <language type="bat">baltiques, autres langues</language>
-                       <language type="bat" alt="proposed-u148-1" draft="unconfirmed">langues baltes (autres)</language>
-                       <language type="be">biélorusse</language>
-                       <language type="bej">bedja</language>
-                       <language type="bem">bemba</language>
-                       <language type="ber">berbère</language>
-                       <language type="bg">bulgare</language>
-                       <language type="bh">bihari</language>
-                       <language type="bho">bhojpuri</language>
-                       <language type="bho" alt="proposed-u148-1" draft="unconfirmed">bhojpurî</language>
-                       <language type="bi">bichlamar</language>
-                       <language type="bi" alt="proposed-u148-1" draft="unconfirmed">bichelamar, bislama</language>
-                       <language type="bik">bikol</language>
-                       <language type="bin">bini</language>
-                       <language type="bla">pieds-noirs</language>
-                       <language type="bla" references="RP1" alt="proposed-u169-1" draft="provisional">blackfoot</language>
-                       <language type="bm">bambara</language>
-                       <language type="bn">bengali</language>
-                       <language type="bnt">bantou</language>
-                       <language type="bo">tibétain</language>
-                       <language type="br">breton</language>
-                       <language type="bra">braj</language>
-                       <language type="bs">bosniaque</language>
-                       <language type="btk">batak</language>
-                       <language type="bua" draft="provisional">bouriate</language>
-                       <language type="bug">bugi</language>
-                       <language type="bug" alt="proposed-u148-1" draft="unconfirmed">bouguis</language>
-                       <language type="byn">blin</language>
-                       <language type="byn" alt="proposed-u148-1" draft="unconfirmed">blin, bilen</language>
-                       <language type="ca">catalan</language>
-                       <language type="cad">caddo</language>
-                       <language type="cai">indiennes d'Amérique centrale, autres langues</language>
-                       <language type="cai" alt="proposed-u148-1" draft="unconfirmed">langues amérindiennes centrales (autres)</language>
-                       <language type="car">caribe</language>
-                       <language type="cau">caucasiennes, autres langues</language>
-                       <language type="cau" alt="proposed-u148-1" draft="unconfirmed">langues caucasiennes (autres)</language>
-                       <language type="ce">tchétchène</language>
-                       <language type="ceb">cebuano</language>
-                       <language type="cel">celtiques, autres langues</language>
-                       <language type="cel" alt="proposed-u148-1" draft="unconfirmed">langues celtiques (autres)</language>
-                       <language type="ch">chamorro</language>
-                       <language type="chb">chibcha</language>
-                       <language type="chg">jagataic</language>
-                       <language type="chg" alt="proposed-u148-1" draft="unconfirmed">tchaghataï, djaghataï</language>
-                       <language type="chg" alt="proposed-u169-1" draft="provisional">djaghataï</language>
-                       <language type="chk">chuuk</language>
-                       <language type="chm">mari</language>
-                       <language type="chm" alt="proposed-u148-2" draft="unconfirmed">tchérémisse, mari</language>
-                       <language type="chn">jargon chinook</language>
-                       <language type="chn" references="RP1" alt="proposed-u169-1" draft="provisional">chinook, jargon</language>
-                       <language type="cho">choctaw</language>
-                       <language type="chp" draft="provisional">chipewyan</language>
-                       <language type="chr">cherokee</language>
-                       <language type="chy">cheyenne</language>
-                       <language type="cmc">langues chames</language>
-                       <language type="cmc" references="RP1" alt="proposed-u169-1" draft="provisional">chames, langues</language>
-                       <language type="co">corse</language>
-                       <language type="cop">copte</language>
-                       <language type="cpe">pidgin anglais (autre)</language>
-                       <language type="cpe" alt="proposed-u148-1" draft="unconfirmed">langues créoles et pidgins anglais (autres)</language>
-                       <language type="cpe" alt="proposed-u169-1" draft="provisional">créoles et pidgins anglais, autres</language>
-                       <language type="cpf">pidgin français (autre)</language>
-                       <language type="cpf" alt="proposed-u148-1" draft="unconfirmed">langues créoles et pidgins français (autres)</language>
-                       <language type="cpf" alt="proposed-u169-1" draft="provisional">créoles et pidgins français, autres</language>
-                       <language type="cpp">pidgin portugais (autre)</language>
-                       <language type="cpp" alt="proposed-u148-1" draft="unconfirmed">langues créoles et pidgins portugais (autres)</language>
-                       <language type="cpp" alt="proposed-u169-1" draft="provisional">créoles et pidgins portugais, autres</language>
-                       <language type="cr">cree</language>
-                       <language type="crh">turc de Crimée; tatar de Crimée</language>
-                       <language type="crh" alt="proposed-u148-1" draft="unconfirmed">turc de Crimée, tatar de Crimée</language>
-                       <language type="crh" alt="proposed-u169-1" draft="provisional">tatar de Crimée</language>
-                       <language type="crp">pidgins et langues créoles (autre)</language>
-                       <language type="crp" alt="proposed-u148-1" draft="unconfirmed">langues créoles et pidgins (autres)</language>
-                       <language type="crp" alt="proposed-u169-1" draft="provisional">créoles et pidgins divers, autres</language>
-                       <language type="cs">tchèque</language>
-                       <language type="csb">cashubian</language>
-                       <language type="csb" alt="proposed-u148-1" draft="provisional">kachoube</language>
-                       <language type="cu">slavon d’église</language>
-                       <language type="cus">couchitiques, autres langues</language>
-                       <language type="cus" alt="proposed-u148-1" draft="unconfirmed">langues couchitiques (autres)</language>
-                       <language type="cv">tchouvache</language>
-                       <language type="cy">gallois</language>
-                       <language type="da">danois</language>
-                       <language type="dak">dakota</language>
-                       <language type="dar">dargwa</language>
-                       <language type="day">dayak</language>
-                       <language type="de">allemand</language>
-                       <language type="del">delaware</language>
-                       <language type="den">slave (athapascan)</language>
-                       <language type="den" alt="proposed-u169-1" draft="provisional">esclave (athapascan)</language>
-                       <language type="dgr">dogrib</language>
-                       <language type="dgr" alt="proposed-u148-1" draft="unconfirmed">dogrib, tlicho</language>
-                       <language type="din">dinka</language>
-                       <language type="doi">dogra</language>
-                       <language type="doi" references="RP3" alt="proposed-u169-1" draft="provisional">dogri</language>
-                       <language type="dra">dravidiennes, autres langues</language>
-                       <language type="dra" alt="proposed-u148-1" draft="unconfirmed">langues dravidiennes (autres)</language>
-                       <language type="dsb">bas-sorabe</language>
-                       <language type="dua">douala</language>
-                       <language type="dum">néerlandais moyen (vers 1050-1350)</language>
-                       <language type="dv">maldivien</language>
-                       <language type="dv" alt="proposed-u148-1" draft="unconfirmed">divehi, maldivien</language>
-                       <language type="dyu" draft="provisional">dioula</language>
-                       <language type="dz">dzongkha</language>
-                       <language type="ee">éwé</language>
-                       <language type="efi">efik</language>
-                       <language type="egy">égyptien (ancien)</language>
-                       <language type="eka">ekajuk</language>
-                       <language type="el">grec</language>
-                       <language type="elx">élamite</language>
-                       <language type="en">anglais</language>
-                       <language type="enm">anglais moyen (1100-1500)</language>
-                       <language type="eo">espéranto</language>
-                       <language type="es">espagnol</language>
-                       <language type="et">estonien</language>
-                       <language type="eu">basque</language>
-                       <language type="ewo" draft="provisional">éwondo</language>
-                       <language type="fa">persan</language>
-                       <language type="fan">fang</language>
-                       <language type="fat">fanti</language>
-                       <language type="ff">peul</language>
-                       <language type="fi">finnois</language>
-                       <language type="fil">filipino</language>
-                       <language type="fil" alt="proposed-u148-1" draft="unconfirmed">pilipino</language>
-                       <language type="fiu">finno-ougriennes, autres langues</language>
-                       <language type="fiu" alt="proposed-u148-1" draft="unconfirmed">langues finno-ougriennes (autres)</language>
-                       <language type="fj">fidjien</language>
-                       <language type="fo">féroïen</language>
-                       <language type="fo" alt="proposed-u148-1" draft="unconfirmed">féringien</language>
-                       <language type="fr">français</language>
-                       <language type="frm">français moyen (ca.1400-1600)</language>
-                       <language type="frm" alt="proposed-u169-1" draft="provisional">français moyen (1400-1600)</language>
-                       <language type="fro">français ancien (842-vers 1400)</language>
-                       <language type="fur">frioulan</language>
-                       <language type="fy">frison</language>
-                       <language type="ga">irlandais</language>
-                       <language type="gaa">ga</language>
-                       <language type="gay">gayo</language>
-                       <language type="gba">gbaya</language>
-                       <language type="gd">gaélique écossais</language>
-                       <language type="gem">germaniques, autres langues</language>
-                       <language type="gem" alt="proposed-u148-1" draft="unconfirmed">langues germaniques (autres)</language>
-                       <language type="gez">guèze</language>
-                       <language type="gil">gilbertais</language>
-                       <language type="gil" alt="proposed-u148-1" draft="provisional">gilbertin</language>
-                       <language type="gl">galicien</language>
-                       <language type="gmh">allemand, moyen haut (vers 1050-1500)</language>
-                       <language type="gn">guarani</language>
-                       <language type="goh">allemand, vieux haut (ca. 750-1050)</language>
-                       <language type="goh" alt="proposed-u148-2" draft="unconfirmed">allemand ancien haut (vers 750-1050)</language>
-                       <language type="goh" alt="proposed-u169-1" draft="provisional">allemand, vieux haut (vers 750-1050)</language>
-                       <language type="gon">gondi</language>
-                       <language type="gon" alt="proposed-u148-1" draft="unconfirmed">gondî</language>
-                       <language type="gor">gorontalo</language>
-                       <language type="got">gotique</language>
-                       <language type="grb">grebo</language>
-                       <language type="grb" alt="proposed-u148-1" draft="unconfirmed">grébo</language>
-                       <language type="grc" references="RP1">grec ancien (jusqu'à 1453)</language>
-                       <language type="gu">goudjrati</language>
-                       <language type="gu" alt="proposed-u148-1" draft="unconfirmed">goudjarâtî, gujarâtî</language>
-                       <language type="gv">manx</language>
-                       <language type="gv" references="RP3" alt="proposed-u169-1" draft="provisional">mannois</language>
-                       <language type="gwi">gwichʼin</language>
-                       <language type="ha">haoussa</language>
-                       <language type="hai">haida</language>
-                       <language type="hai" alt="proposed-u148-1" draft="unconfirmed">haïda</language>
-                       <language type="haw">hawaïen</language>
-                       <language type="he">hébreu</language>
-                       <language type="hi">hindi</language>
-                       <language type="hi" alt="proposed-u148-1" draft="unconfirmed">hindî</language>
-                       <language type="hil">hiligaynon</language>
-                       <language type="hil" alt="proposed-u148-2" draft="unconfirmed">ilonggo, hiligaynon</language>
-                       <language type="him">himachali</language>
-                       <language type="hit">hittite</language>
-                       <language type="hmn">hmong</language>
-                       <language type="ho">hiri motu</language>
-                       <language type="hr">croate</language>
-                       <language type="hsb">haut-sorabe</language>
-                       <language type="ht">haïtien</language>
-                       <language type="hu">hongrois</language>
-                       <language type="hup">hupa</language>
-                       <language type="hy">arménien</language>
-                       <language type="hz">héréro</language>
-                       <language type="hz" references="RP1" alt="proposed-u169-1" draft="provisional">herero</language>
-                       <language type="ia">interlingua</language>
-                       <language type="iba">iban</language>
-                       <language type="id">indonésien</language>
-                       <language type="ie">interlingue</language>
-                       <language type="ig">igbo</language>
-                       <language type="ii">yi de Sichuan</language>
-                       <language type="ik">inupiaq</language>
-                       <language type="ilo" draft="unconfirmed">ilokano</language>
-                       <language type="inc">langue indo-aryenne (autre)</language>
-                       <language type="inc" alt="proposed-u148-1" draft="unconfirmed">langues indo-aryennes (autres)</language>
-                       <language type="inc" alt="proposed-u169-1" draft="provisional">indo-aryennes, autres langues</language>
-                       <language type="ine">langue indo-européenne (autre)</language>
-                       <language type="ine" alt="proposed-u148-1" draft="unconfirmed">langues indo-européennes (autres)</language>
-                       <language type="ine" alt="proposed-u169-1" draft="provisional">indo-européennes, autres langues</language>
-                       <language type="inh">ingouche</language>
-                       <language type="io">ido</language>
-                       <language type="ira">iranien</language>
-                       <language type="iro">langues iroquoiennes</language>
-                       <language type="iro" alt="proposed-u148-1" draft="unconfirmed">langues iroquoises</language>
-                       <language type="iro" references="RP3" alt="proposed-u169-1" draft="provisional">iroquoises, langues</language>
-                       <language type="is">islandais</language>
-                       <language type="it">italien</language>
-                       <language type="iu">inuktitut</language>
-                       <language type="ja">japonais</language>
-                       <language type="jbo">lojban</language>
-                       <language type="jpr">judéo-persan</language>
-                       <language type="jrb">judéo-arabe</language>
-                       <language type="jv">javanais</language>
-                       <language type="ka">géorgien</language>
-                       <language type="kaa" draft="provisional">karakalpak</language>
-                       <language type="kab">kabyle</language>
-                       <language type="kac">kachin</language>
-                       <language type="kac" alt="proposed-u148-1" draft="unconfirmed">jinghpo</language>
-                       <language type="kam">kamba</language>
-                       <language type="kar">karen</language>
-                       <language type="kar" alt="proposed-u148-1" draft="unconfirmed">karène</language>
-                       <language type="kaw">kawi</language>
-                       <language type="kaw" alt="proposed-u148-1" draft="unconfirmed">kavi</language>
-                       <language type="kbd">kabardine</language>
-                       <language type="kbd" alt="proposed-u148-1" draft="provisional">kabardien</language>
-                       <language type="kg">kongo</language>
-                       <language type="kha">khasi</language>
-                       <language type="kha" alt="proposed-u148-1" draft="unconfirmed">khasî</language>
-                       <language type="khi">khoisan (autre)</language>
-                       <language type="khi" alt="proposed-u148-1" draft="unconfirmed">langues khoïsans (autres)</language>
-                       <language type="khi" alt="proposed-u169-1" draft="provisional">khoïsan, autres langues</language>
-                       <language type="kho">khotanais</language>
-                       <language type="ki">kikuyu</language>
-                       <language type="ki" alt="proposed-u148-1" draft="unconfirmed">kikouyou, gikuyu</language>
-                       <language type="kj">kuanyama</language>
-                       <language type="kk">kazakh</language>
-                       <language type="kl">groenlandais</language>
-                       <language type="kl" alt="proposed-u148-1" draft="unconfirmed">kalaallisut, groenlandais</language>
-                       <language type="km">khmer</language>
-                       <language type="kmb">kiMboundou</language>
-                       <language type="kmb" alt="proposed-u148-1" draft="unconfirmed">kimboundou</language>
-                       <language type="kmb" alt="proposed-u169-1" draft="provisional">kimbundu</language>
-                       <language type="kn">kannada</language>
-                       <language type="kn" alt="proposed-u148-1" draft="unconfirmed">kannara, kannada</language>
-                       <language type="ko">coréen</language>
-                       <language type="kok">konkani</language>
-                       <language type="kok" alt="proposed-u148-1" draft="unconfirmed">konkânî</language>
-                       <language type="kos">kusaien</language>
-                       <language type="kos" alt="proposed-u148-1" draft="unconfirmed">kosraéen</language>
-                       <language type="kos" alt="proposed-u169-1" draft="provisional">kosrae</language>
-                       <language type="kpe">kpellé</language>
-                       <language type="kr">kanouri</language>
-                       <language type="krc" draft="provisional">karatchaï balkar</language>
-                       <language type="kro" draft="provisional">krou</language>
-                       <language type="kru">kurukh</language>
-                       <language type="ks">kashmiri</language>
-                       <language type="ks" alt="proposed-u148-1" draft="unconfirmed">kâshmîrî</language>
-                       <language type="ku">kurde</language>
-                       <language type="kum">koumyk</language>
-                       <language type="kut">kutenai</language>
-                       <language type="kut" alt="proposed-u148-1" draft="unconfirmed">kutenaï</language>
-                       <language type="kv">komi</language>
-                       <language type="kw">cornique</language>
-                       <language type="ky">kirghize</language>
-                       <language type="la">latin</language>
-                       <language type="lad">ladino</language>
-                       <language type="lad" alt="proposed-u148-1" draft="unconfirmed">judéo-espagnol, ladino</language>
-                       <language type="lad" references="RP1" alt="proposed-u169-1" draft="provisional">judéo-espagnol</language>
-                       <language type="lah">lahnda</language>
-                       <language type="lam">lamba</language>
-                       <language type="lb">luxembourgeois</language>
-                       <language type="lez">lezghien</language>
-                       <language type="lg">ganda</language>
-                       <language type="li">limbourgeois</language>
-                       <language type="ln">lingala</language>
-                       <language type="lo">lao</language>
-                       <language type="lol">mongo</language>
-                       <language type="loz">lozi</language>
-                       <language type="lt">lituanien</language>
-                       <language type="lu">luba-katanga</language>
-                       <language type="lua">luba-lulua</language>
-                       <language type="lui">luiseno</language>
-                       <language type="lun">lunda</language>
-                       <language type="lus">lushai</language>
-                       <language type="lus" alt="proposed-u148-1" draft="unconfirmed">lushaï</language>
-                       <language type="lv">letton</language>
-                       <language type="mad">madurais</language>
-                       <language type="mad" references="RP1" alt="proposed-u169-1" draft="provisional">madourais</language>
-                       <language type="mag">magahi</language>
-                       <language type="mag" alt="proposed-u148-1" draft="unconfirmed">magahî</language>
-                       <language type="mai">maithili</language>
-                       <language type="mai" alt="proposed-u148-1" draft="unconfirmed">maïthilî</language>
-                       <language type="mak" draft="provisional">makassar</language>
-                       <language type="man" references="RP1">mandingue</language>
-                       <language type="map">malayo-polynésien</language>
-                       <language type="mas">masai</language>
-                       <language type="mas" references="RP1" alt="proposed-u169-1" draft="provisional">massaï</language>
-                       <language type="mdf">moksa</language>
-                       <language type="mdf" alt="proposed-u148-1" draft="unconfirmed">moksha</language>
-                       <language type="mdr">mandar</language>
-                       <language type="men">mendé</language>
-                       <language type="mg">malgache</language>
-                       <language type="mga">irlandais moyen (900-1200)</language>
-                       <language type="mh">marshall</language>
-                       <language type="mh" alt="proposed-u148-1" draft="unconfirmed">marshallais</language>
-                       <language type="mi">maori</language>
-                       <language type="mic">micmac</language>
-                       <language type="min">minangkabau</language>
-                       <language type="mis">langues diverses</language>
-                       <language type="mis" references="RP1" alt="proposed-u169-1" draft="provisional">diverses, langues</language>
-                       <language type="mk">macédonien</language>
-                       <language type="mkh">mon-khmer (autre)</language>
-                       <language type="mkh" alt="proposed-u148-1" draft="unconfirmed">langues mon-khmères (autres)</language>
-                       <language type="mkh" alt="proposed-u169-1" draft="provisional">môn-khmer, autres langues</language>
-                       <language type="ml">malayalam</language>
-                       <language type="ml" alt="proposed-u148-1" draft="unconfirmed">malayâlam, malayî</language>
-                       <language type="mn">mongol</language>
-                       <language type="mnc">mandchou</language>
-                       <language type="mni">manipuri</language>
-                       <language type="mni" alt="proposed-u148-1" draft="unconfirmed">meitei, manipourî</language>
-                       <language type="mni" alt="proposed-u169-1" draft="provisional">meitei</language>
-                       <language type="mno">langues manobo</language>
-                       <language type="mno" alt="proposed-u148-1" draft="unconfirmed">langues manobos</language>
-                       <language type="mno" alt="proposed-u169-1" draft="provisional">manobo, langues</language>
-                       <language type="mo">moldave</language>
-                       <language type="moh">mohawk</language>
-                       <language type="mos" draft="provisional">moré</language>
-                       <language type="mr">marathe</language>
-                       <language type="mr" alt="proposed-u148-1" draft="unconfirmed">marâthî, marathe</language>
-                       <language type="mr" alt="proposed-u169-1" draft="provisional">marathi</language>
-                       <language type="ms">malais</language>
-                       <language type="mt">maltais</language>
-                       <language type="mul">langues multiples</language>
-                       <language type="mul" references="RP1" alt="proposed-u169-1" draft="provisional">multilingue</language>
-                       <language type="mun">langues mounda</language>
-                       <language type="mun" alt="proposed-u148-1" draft="unconfirmed">langues moundas</language>
-                       <language type="mun" alt="proposed-u169-1" draft="provisional">mounda, langues</language>
-                       <language type="mus">creek</language>
-                       <language type="mus" alt="proposed-u148-1" draft="unconfirmed">muskogee, creek</language>
-                       <language type="mus" references="RP1" alt="proposed-u169-1" draft="provisional">muskogee</language>
-                       <language type="mwl">mirandais</language>
-                       <language type="mwr" draft="unconfirmed">marwarî</language>
-                       <language type="my">birman</language>
-                       <language type="myn">maya, langues</language>
-                       <language type="myn" alt="proposed-u148-1" draft="unconfirmed">langues mayas</language>
-                       <language type="myv">erzya</language>
-                       <language type="myv" alt="proposed-u169-1" draft="provisional">erza</language>
-                       <language type="na">nauruan</language>
-                       <language type="nah">nahuatl</language>
-                       <language type="nai">indiennes d'Amérique du nord, autres langues</language>
-                       <language type="nai" alt="proposed-u148-1" draft="unconfirmed">langues amérindiennes du Nord (autres)</language>
-                       <language type="nap">napolitain</language>
-                       <language type="nb">bokmål norvégien</language>
-                       <language type="nb" alt="proposed-u148-1" draft="unconfirmed">norvégien littéraire</language>
-                       <language type="nb" alt="proposed-u169-1" draft="provisional">norvégien bokmal</language>
-                       <language type="nd">ndébélé du Nord</language>
-                       <language type="nds">bas allemand, bas saxon</language>
-                       <language type="nds" alt="proposed-u169-1" draft="provisional">bas allemand ; bas saxon</language>
-                       <language type="ne">népalais</language>
-                       <language type="new">newari</language>
-                       <language type="new" alt="proposed-u148-1" draft="unconfirmed">néware, nepâlbhâsa</language>
-                       <language type="ng">ndonga</language>
-                       <language type="nia">nias</language>
-                       <language type="nic">nigéro-congolaise (autre)</language>
-                       <language type="nic" alt="proposed-u148-1" draft="unconfirmed">langues nigéro-congolaises (autres)</language>
-                       <language type="nic" alt="proposed-u169-1" draft="provisional">nigéro-congolaises, autres langues</language>
-                       <language type="niu">niué</language>
-                       <language type="niu" alt="proposed-u148-1" draft="unconfirmed">niouéen</language>
-                       <language type="nl">néerlandais</language>
-                       <language type="nn">nynorsk norvégien</language>
-                       <language type="nn" alt="proposed-u148-1" draft="unconfirmed">néo-norvégien</language>
-                       <language type="nn" alt="proposed-u169-1" draft="provisional">norvégien nynorsk</language>
-                       <language type="no">norvégien</language>
-                       <language type="nog">nogaï, nogay</language>
-                       <language type="nog" references="RP3" alt="proposed-u169-1" draft="provisional">nogaï</language>
-                       <language type="non">vieux norrois</language>
-                       <language type="nr">ndébélé du Sud</language>
-                       <language type="nr" alt="proposed-u148-1" draft="unconfirmed">ndébélé méridional</language>
-                       <language type="nso" draft="provisional">sotho du Nord</language>
-                       <language type="nub">langues nubiennes</language>
-                       <language type="nub" alt="proposed-u169-1" draft="provisional">nubiennes, langues</language>
-                       <language type="nv">navaho</language>
-                       <language type="nwc">newari classique</language>
-                       <language type="nwc" alt="proposed-u148-1" draft="unconfirmed">newarî classique</language>
-                       <language type="ny">nyanja</language>
-                       <language type="ny" alt="proposed-u148-2" draft="unconfirmed">nyanja, chichewa, chewa</language>
-                       <language type="ny" alt="proposed-u169-1" draft="provisional">nyanja ; chichewa ; chewa</language>
-                       <language type="nym">nyamwezi</language>
-                       <language type="nyn">nyankolé</language>
-                       <language type="nyo">nyoro</language>
-                       <language type="nzi">nzema</language>
-                       <language type="oc">occitan (après 1500)</language>
-                       <language type="oc" alt="proposed-u148-1" draft="unconfirmed">occitan (après 1500), provençal</language>
-                       <language type="oc" alt="proposed-u169-1" draft="provisional">occitan (après 1500) ; provençal</language>
-                       <language type="oj">ojibwa</language>
-                       <language type="om">galla</language>
-                       <language type="om" alt="proposed-u148-1" draft="unconfirmed">oromo, galla</language>
-                       <language type="om" alt="proposed-u169-1" draft="provisional">oromo</language>
-                       <language type="or">oriya</language>
-                       <language type="os">ossète</language>
-                       <language type="osa">osage</language>
-                       <language type="ota">turc ottoman (1500-1928)</language>
-                       <language type="oto">langues otomangues</language>
-                       <language type="pa">pendjabi</language>
-                       <language type="pa" alt="proposed-u148-1" draft="unconfirmed">panjâbî</language>
-                       <language type="paa">papoues (autre)</language>
-                       <language type="paa" alt="proposed-u148-1" draft="unconfirmed">langues papoues (autres)</language>
-                       <language type="paa" alt="proposed-u169-1" draft="provisional">papoues, autres langues</language>
-                       <language type="pag">pangasinan</language>
-                       <language type="pal">pahlavi</language>
-                       <language type="pam" draft="provisional">pampangan</language>
-                       <language type="pap">papiamento</language>
-                       <language type="pau">palau</language>
-                       <language type="pau" alt="proposed-u148-1" draft="unconfirmed">paluan, palaosien</language>
-                       <language type="pau" alt="proposed-u169-1" draft="provisional">paluan</language>
-                       <language type="peo">vieux perser (ca. 600-400 av. J.-C.)</language>
-                       <language type="peo" alt="proposed-u148-2" draft="unconfirmed">persan ancien (vers 600-400 av. J.-C.)</language>
-                       <language type="peo" alt="proposed-u169-1" draft="provisional">perse, vieux (vers 600-400 av. J.-C.)</language>
-                       <language type="phi">philippines (autre)</language>
-                       <language type="phi" alt="proposed-u148-1" draft="unconfirmed">langues philippines (autres)</language>
-                       <language type="phi" alt="proposed-u169-1" draft="provisional">philippines, autres langues</language>
-                       <language type="phn">phénicien</language>
-                       <language type="pi">pali</language>
-                       <language type="pi" alt="proposed-u148-1" draft="unconfirmed">pâli</language>
-                       <language type="pl">polonais</language>
-                       <language type="pon">pohnpei</language>
-                       <language type="pra">langues prâkrit</language>
-                       <language type="pra" alt="proposed-u148-1" draft="unconfirmed">langues prâkrits</language>
-                       <language type="pra" alt="proposed-u169-1" draft="provisional">prâkrit</language>
-                       <language type="pro">vieux provençal (jusqu’à 1500)</language>
-                       <language type="pro" references="RP1" alt="proposed-u169-1" draft="provisional">provençal ancien (jusqu'à 1500)</language>
-                       <language type="ps">pachto</language>
-                       <language type="pt">portugais</language>
-                       <language type="qu">quechua</language>
-                       <language type="qu" alt="proposed-u148-1" draft="unconfirmed">langues quechuas</language>
-                       <language type="raj">rajasthani</language>
-                       <language type="raj" alt="proposed-u148-2" draft="unconfirmed">langues râjasthânîes</language>
-                       <language type="rap">rapanui</language>
-                       <language type="rar">Rarotonga</language>
-                       <language type="rar" alt="proposed-u148-1" draft="unconfirmed">rarotongien, maori des Îles Cook</language>
-                       <language type="rar" references="RP1" alt="proposed-u169-1" draft="provisional">rarotonga</language>
-                       <language type="rm">rhéto-roman</language>
-                       <language type="rn">roundi</language>
-                       <language type="ro">roumain</language>
-                       <language type="roa" references="RP1">romanes, autres langues</language>
-                       <language type="roa" references="RP1" alt="proposed-u148-1" draft="unconfirmed">langues romanes (autres)</language>
-                       <language type="rom">tzigane</language>
-                       <language type="rom" references="RP1" alt="proposed-u169-1" draft="provisional">tsigane</language>
-                       <language type="root">racine</language>
-                       <language type="root" alt="proposed-u148-1" draft="provisional">(racine)</language>
-                       <language type="ru">russe</language>
-                       <language type="rup" references="RP1">aroumain ; macédo-roumain</language>
-                       <language type="rup" references="RP1" alt="proposed-u148-2" draft="unconfirmed">aroumain, valaque, macédo-roumain</language>
-                       <language type="rw">rwanda</language>
-                       <language type="sa">sanskrit</language>
-                       <language type="sad">sandawe</language>
-                       <language type="sah">iakoute</language>
-                       <language type="sai" references="RP1">indiennes d'Amérique du Sud, autres langues</language>
-                       <language type="sai" references="RP1" alt="proposed-u148-2" draft="unconfirmed">langues amérindiennes du Sud (autres)</language>
-                       <language type="sal">langues salisha</language>
-                       <language type="sal" alt="proposed-u148-1" draft="unconfirmed">langues salishas</language>
-                       <language type="sal" references="RP1" alt="proposed-u169-1" draft="provisional">salish, langues</language>
-                       <language type="sam">samaritain</language>
-                       <language type="sam" alt="proposed-u148-1" draft="unconfirmed">araméen samaritain</language>
-                       <language type="sas">sasak</language>
-                       <language type="sat">santal</language>
-                       <language type="sat" alt="proposed-u148-1" draft="unconfirmed">santâlî</language>
-                       <language type="sc">sarde</language>
-                       <language type="scn">sicilien</language>
-                       <language type="sco">écossais</language>
-                       <language type="sd">sindhi</language>
-                       <language type="sd" alt="proposed-u148-1" draft="unconfirmed">sindhî</language>
-                       <language type="se">sami du Nord</language>
-                       <language type="sel">selkoupe</language>
-                       <language type="sem" references="RP1">sémitiques, autres langues</language>
-                       <language type="sem" references="RP1" alt="proposed-u148-1" draft="unconfirmed">langues sémitiques (autres)</language>
-                       <language type="sg">sango</language>
-                       <language type="sga">irlandais ancien (jusqu’à 900)</language>
-                       <language type="sgn">langues des signes</language>
-                       <language type="sh">serbo-croate</language>
-                       <language type="shn">chan</language>
-                       <language type="shn" alt="proposed-u148-1" draft="unconfirmed">taï shan</language>
-                       <language type="si">singhalais</language>
-                       <language type="sid">sidamo</language>
-                       <language type="sio" references="RP1" draft="unconfirmed">sioux, langues</language>
-                       <language type="sit" references="RP1">sino-tibétaines, autres langues</language>
-                       <language type="sit" references="RP1" alt="proposed-u148-1" draft="unconfirmed">langues sino-tibétaines (autres)</language>
-                       <language type="sk">slovaque</language>
-                       <language type="sl">slovène</language>
-                       <language type="sla" references="RP1">slaves, autres langues</language>
-                       <language type="sla" references="RP1" alt="proposed-u148-1" draft="unconfirmed">langues slaves (autres)</language>
-                       <language type="sm">samoan</language>
-                       <language type="sma">sami du Sud</language>
-                       <language type="sma" alt="proposed-u148-1" draft="unconfirmed">sami méridional</language>
-                       <language type="smi">sami (autre)</language>
-                       <language type="smi" alt="proposed-u148-1" draft="unconfirmed">langues samies (autres)</language>
-                       <language type="smi" references="RP1" alt="proposed-u169-1" draft="provisional">sami, autres langues</language>
-                       <language type="smj">sami de Lule</language>
-                       <language type="smn">sami d’Inari</language>
-                       <language type="sms">sami skolt</language>
-                       <language type="sn">shona</language>
-                       <language type="snk">soninké</language>
-                       <language type="so">somali</language>
-                       <language type="sog">sogdien</language>
-                       <language type="son">songhai</language>
-                       <language type="son" alt="proposed-u148-1" draft="unconfirmed">sonrhaï</language>
-                       <language type="sq">albanais</language>
-                       <language type="sr">serbe</language>
-                       <language type="srn" references="RP1" draft="provisional">sranan tongo</language>
-                       <language type="srr">sérère</language>
-                       <language type="ss">swati</language>
-                       <language type="ss" alt="proposed-u148-1" draft="unconfirmed">siswati, swati</language>
-                       <language type="ssa">nilo-sahariennes (autre)</language>
-                       <language type="ssa" alt="proposed-u148-1" draft="unconfirmed">langues nilo-sahariennes (autres)</language>
-                       <language type="ssa" references="RP1" alt="proposed-u169-1" draft="provisional">nilo-sahariennes, autres langues</language>
-                       <language type="st">sotho du Sud</language>
-                       <language type="st" alt="proposed-u148-1" draft="unconfirmed">sotho méridional</language>
-                       <language type="su">soundanais</language>
-                       <language type="suk">sukuma</language>
-                       <language type="sus">soussou</language>
-                       <language type="sux">sumérien</language>
-                       <language type="sv">suédois</language>
-                       <language type="sw">swahili</language>
-                       <language type="syr">syriaque</language>
-                       <language type="ta">tamoul</language>
-                       <language type="tai">thaïes, autres langues</language>
-                       <language type="tai" alt="proposed-u148-2" draft="unconfirmed">langues thaïes (autres)</language>
-                       <language type="te">télougou</language>
-                       <language type="tem">temne</language>
-                       <language type="ter">tereno</language>
-                       <language type="tet">tetum</language>
-                       <language type="tg">tadjik</language>
-                       <language type="th">thaï</language>
-                       <language type="ti">tigrigna</language>
-                       <language type="tig">tigré</language>
-                       <language type="tk">turkmène</language>
-                       <language type="tkl" draft="provisional">tokelauan</language>
-                       <language type="tl">tagalog</language>
-                       <language type="tlh">klingon</language>
-                       <language type="tli">tlingit</language>
-                       <language type="tmh">tamacheq</language>
-                       <language type="tn">setswana</language>
-                       <language type="tn" references="RP3" alt="proposed-u169-1" draft="provisional">tswana</language>
-                       <language type="to">tongan (Îles Tonga)</language>
-                       <language type="tog">tonga (Nyasa)</language>
-                       <language type="tog" alt="proposed-u148-1" draft="unconfirmed">tongan (Nyasa)</language>
-                       <language type="tpi">tok pisin</language>
-                       <language type="tr">turc</language>
-                       <language type="ts">tsonga</language>
-                       <language type="tsi">tsimshian</language>
-                       <language type="tt">tatar</language>
-                       <language type="tum">tumbuka</language>
-                       <language type="tup">langues tupi</language>
-                       <language type="tup" alt="proposed-u148-1" draft="unconfirmed">langues tupis</language>
-                       <language type="tup" references="RP1" alt="proposed-u169-1" draft="provisional">tupi, langues</language>
-                       <language type="tut" references="RP1">altaïques, autres langues</language>
-                       <language type="tut" references="RP1" alt="proposed-u148-2" draft="unconfirmed">langues altaïques (autres)</language>
-                       <language type="tvl" references="RP3" draft="provisional">tuvaluan</language>
-                       <language type="tw">twi</language>
-                       <language type="ty">tahitien</language>
-                       <language type="tyv">touva</language>
-                       <language type="udm">oudmourte</language>
-                       <language type="ug">ouïgour</language>
-                       <language type="uga">ougaritique</language>
-                       <language type="uk">ukrainien</language>
-                       <language type="umb">umbundu</language>
-                       <language type="und">indéterminé</language>
-                       <language type="ur">ourdou</language>
-                       <language type="uz">ouzbek</language>
-                       <language type="vai">vaï</language>
-                       <language type="ve">venda</language>
-                       <language type="vi">vietnamien</language>
-                       <language type="vo">volapük</language>
-                       <language type="vot">vote</language>
-                       <language type="wa">wallon</language>
-                       <language type="wak">langues wakashennes</language>
-                       <language type="wak" references="RP1" alt="proposed-u169-1" draft="provisional">wakashennes, langues</language>
-                       <language type="wal">walamo</language>
-                       <language type="war">waray</language>
-                       <language type="was">washo</language>
-                       <language type="wen">langues sorabes</language>
-                       <language type="wen" references="RP1" alt="proposed-u169-1" draft="provisional">sorabes, langues</language>
-                       <language type="wo">wolof</language>
-                       <language type="xal">kalmouk</language>
-                       <language type="xh">xhosa</language>
-                       <language type="yap">yapois</language>
-                       <language type="yi">yiddish</language>
-                       <language type="yo">yoruba</language>
-                       <language type="ypk">langues yupik</language>
-                       <language type="ypk" alt="proposed-u148-1" draft="unconfirmed">langues yupiks</language>
-                       <language type="ypk" references="RP1" alt="proposed-u169-1" draft="provisional">yupik, langues</language>
-                       <language type="za">zhuang</language>
-                       <language type="zap">zapotèque</language>
-                       <language type="zen">zenaga</language>
-                       <language type="zh">chinois</language>
-                       <language type="znd" references="RP1" draft="provisional">zandé</language>
-                       <language type="zu">zoulou</language>
-                       <language type="zun">zuni</language>
-               </languages>
-               <scripts>
-                       <script type="Arab">arabe</script>
-                       <script type="Armn">arménien</script>
-                       <script type="Bali" draft="provisional">balinais</script>
-                       <script type="Batk" draft="provisional">batak</script>
-                       <script type="Beng">bengâglî</script>
-                       <script type="Beng" alt="proposed-u148-1" draft="provisional">bengalî</script>
-                       <script type="Blis" references="RP5">symboles Bliss</script>
-                       <script type="Bopo">bopomofo</script>
-                       <script type="Brah" draft="provisional">brâhmî</script>
-                       <script type="Brai">braille</script>
-                       <script type="Bugi" references="RP5" draft="provisional">bouguis</script>
-                       <script type="Buhd">bouhide</script>
-                       <script type="Cans">syllabaire autochthone canadien unifié</script>
-                       <script type="Cans" references="RP5" alt="proposed-u169-1" draft="provisional">syllabaire autochtone canadien unifié</script>
-                       <script type="Cham" draft="provisional">cham</script>
-                       <script type="Cher">tchérokî</script>
-                       <script type="Cirt" draft="provisional">cirth</script>
-                       <script type="Copt">copte</script>
-                       <script type="Cprt" references="RP5">syllabaire chypriote</script>
-                       <script type="Cyrl">cyrillique</script>
-                       <script type="Cyrs" references="RP5">cyrillique (variante slavonne)</script>
-                       <script type="Deva">dévanâgarî</script>
-                       <script type="Dsrt">déséret</script>
-                       <script type="Egyd">démotique égyptien</script>
-                       <script type="Egyh">hiératique égyptien</script>
-                       <script type="Egyp">hiéroglyphes égyptiens</script>
-                       <script type="Ethi">éthiopique</script>
-                       <script type="Ethi" references="RP5" alt="proposed-u169-1" draft="provisional">éthiopien</script>
-                       <script type="Geok" draft="unconfirmed">khoutsouri (assomtavrouli et nuskhuri)</script>
-                       <script type="Geor">géorgien</script>
-                       <script type="Glag">glagolitique</script>
-                       <script type="Goth">gotique</script>
-                       <script type="Grek">grec</script>
-                       <script type="Gujr">goudjarâtî</script>
-                       <script type="Guru">gourmoukhî</script>
-                       <script type="Hang">hangûl</script>
-                       <script type="Hani" references="RP5">idéogrammes han</script>
-                       <script type="Hano">hanounóo</script>
-                       <script type="Hano" alt="proposed-u148-2" draft="unconfirmed">hanounoo</script>
-                       <script type="Hans" references="RP5">idéogrammes han (variante simplifiée)</script>
-                       <script type="Hant" references="RP5">idéogrammes han (variante traditionnelle)</script>
-                       <script type="Hebr">hébreu</script>
-                       <script type="Hira">hiragana</script>
-                       <script type="Hmng" draft="provisional">pahawh hmong</script>
-                       <script type="Hrkt">katakana ou hiragana</script>
-                       <script type="Hung" references="RP5" draft="provisional">ancien hongrois</script>
-                       <script type="Inds" draft="unconfirmed">indus (harappan)</script>
-                       <script type="Ital">ancien italique</script>
-                       <script type="Java" draft="provisional">javanais</script>
-                       <script type="Kali" references="RP5" draft="provisional">kayah li</script>
-                       <script type="Kana">katakana</script>
-                       <script type="Khar" references="RP5" draft="provisional">kharochthî</script>
-                       <script type="Khmr">khmer</script>
-                       <script type="Knda">kannara</script>
-                       <script type="Laoo" draft="provisional">lao</script>
-                       <script type="Latf" references="RP5">latin (variante brisée)</script>
-                       <script type="Latg">latin (variante gaélique)</script>
-                       <script type="Latn">latin</script>
-                       <script type="Lepc" draft="unconfirmed">lepcha (rong)</script>
-                       <script type="Limb">limbou</script>
-                       <script type="Lina">linéaire A</script>
-                       <script type="Linb">linéaire B</script>
-                       <script type="Mand" draft="provisional">mandéen</script>
-                       <script type="Maya">hiéroglyphes mayas</script>
-                       <script type="Mero" draft="provisional">méroïtique</script>
-                       <script type="Mlym">malayâlam</script>
-                       <script type="Mong">mongol</script>
-                       <script type="Mymr">birman</script>
-                       <script type="Nkoo" draft="provisional">n’ko</script>
-                       <script type="Ogam">ogam</script>
-                       <script type="Orkh" draft="provisional">orkhon</script>
-                       <script type="Orya">oriyâ</script>
-                       <script type="Osma">osmanais</script>
-                       <script type="Perm" draft="provisional">ancien permien</script>
-                       <script type="Phag" references="RP5" draft="provisional">phags pa</script>
-                       <script type="Phnx" draft="provisional">phénicien</script>
-                       <script type="Plrd" draft="provisional">phonétique de Pollard</script>
-                       <script type="Qaai">hérité</script>
-                       <script type="Qaai" alt="proposed-u148-1" draft="unconfirmed">(hérité)</script>
-                       <script type="Roro" draft="provisional">rongorongo</script>
-                       <script type="Runr">runique</script>
-                       <script type="Sara" references="RP5" draft="provisional">sarati</script>
-                       <script type="Shaw">shavien</script>
-                       <script type="Sinh">singhalais</script>
-                       <script type="Sylo" references="RP5" draft="provisional">sylotî nâgrî</script>
-                       <script type="Syrc">syriaque</script>
-                       <script type="Syre" references="RP5" draft="provisional">syriaque (variante estranghélo)</script>
-                       <script type="Syrj" draft="provisional">syriaque (variante occidentale)</script>
-                       <script type="Syrn" draft="provisional">syriaque (variante orientale)</script>
-                       <script type="Tagb">tagbanoua</script>
-                       <script type="Tale">taï-le</script>
-                       <script type="Talu" references="RP5" draft="provisional">nouveau taï-lue</script>
-                       <script type="Taml">tamoul</script>
-                       <script type="Telu">télougou</script>
-                       <script type="Teng" draft="provisional">tengwar</script>
-                       <script type="Tfng" draft="provisional">tifinagh (berbère)</script>
-                       <script type="Tglg">tagal</script>
-                       <script type="Thaa">thâna</script>
-                       <script type="Thai">thaï</script>
-                       <script type="Tibt">tibétain</script>
-                       <script type="Ugar">ougaritique</script>
-                       <script type="Vaii" draft="provisional">vaï</script>
-                       <script type="Visp" references="RP5" draft="provisional">parole visible</script>
-                       <script type="Xpeo" references="RP5">cunéiforme persépolitain</script>
-                       <script type="Xsux" references="RP5">cunéiforme suméro-akkadien</script>
-                       <script type="Yiii">yi</script>
-                       <script type="Zxxx" draft="unconfirmed">(codet pour les langues non écrites)</script>
-                       <script type="Zyyy" draft="unconfirmed">(commun)</script>
-                       <script type="Zzzz" references="RP5" draft="provisional">codet pour écriture non codée</script>
-               </scripts>
-               <territories>
-                       <territory type="001">Monde</territory>
-                       <territory type="002">Afrique</territory>
-                       <territory type="003">Amérique du Nord continentale</territory>
-                       <territory type="005">Amérique du Sud</territory>
-                       <territory type="009">Océanie</territory>
-                       <territory type="011">Afrique occidentale</territory>
-                       <territory type="013">Amérique centrale</territory>
-                       <territory type="014">Afrique orientale</territory>
-                       <territory type="015">Afrique septentrionale</territory>
-                       <territory type="017">Afrique centrale</territory>
-                       <territory type="018">Afrique australe</territory>
-                       <territory type="019">Amériques</territory>
-                       <territory type="021">Amérique du Nord</territory>
-                       <territory type="029">Caraïbes</territory>
-                       <territory type="030">Asie orientale</territory>
-                       <territory type="034">Asie du Sud</territory>
-                       <territory type="035">Asie du Sud-Est</territory>
-                       <territory type="039">Europe méridionale</territory>
-                       <territory type="053">Australie et Nouvelle-Zélande</territory>
-                       <territory type="054">Mélanésie</territory>
-                       <territory type="057">région micronésienne</territory>
-                       <territory type="061">Polynésie</territory>
-                       <territory type="062">Asie centrale et du Sud</territory>
-                       <territory type="142">Asie</territory>
-                       <territory type="143">Asie centrale</territory>
-                       <territory type="145">Asie occidentale</territory>
-                       <territory type="150">Europe</territory>
-                       <territory type="151">Europe orientale</territory>
-                       <territory type="154">Europe septentrionale</territory>
-                       <territory type="155">Europe occidentale</territory>
-                       <territory type="172">Communauté des États indépendants</territory>
-                       <territory type="419">Amérique latine et Caraïbes</territory>
-                       <territory type="830">anglo-normandes, îles</territory>
-                       <territory type="830" alt="proposed-u148-1" draft="unconfirmed">Iles anglo-normandes</territory>
-                       <territory type="IM">Île de Man</territory>
-                       <territory type="IM" alt="proposed-u148-1" draft="unconfirmed">Ile de Man</territory>
-                       <territory type="AD">Andorre</territory>
-                       <territory type="AE">Émirats arabes unis</territory>
-                       <territory type="AF">Afghanistan</territory>
-                       <territory type="AG">Antigua-et-Barbuda</territory>
-                       <territory type="AI">Anguilla</territory>
-                       <territory type="AL">Albanie</territory>
-                       <territory type="AM">Arménie</territory>
-                       <territory type="AN">Antilles néerlandaises</territory>
-                       <territory type="AO">Angola</territory>
-                       <territory type="AQ">Antarctique</territory>
-                       <territory type="AR">Argentine</territory>
-                       <territory type="AS">Samoa américaines</territory>
-                       <territory type="AT">Autriche</territory>
-                       <territory type="AU">Australie</territory>
-                       <territory type="AW">Aruba</territory>
-                       <territory type="AX" references="RP7">Åland, îles</territory>
-                       <territory type="AX" references="RP7" alt="proposed-u148-1" draft="unconfirmed">Iles Åland</territory>
-                       <territory type="AZ">Azerbaïdjan</territory>
-                       <territory type="BA">Bosnie-Herzégovine</territory>
-                       <territory type="BB">Barbade</territory>
-                       <territory type="BD">Bangladesh</territory>
-                       <territory type="BE">Belgique</territory>
-                       <territory type="BF">Burkina Faso</territory>
-                       <territory type="BG">Bulgarie</territory>
-                       <territory type="BH">Bahreïn</territory>
-                       <territory type="BI">Burundi</territory>
-                       <territory type="BJ">Bénin</territory>
-                       <territory type="BM">Bermudes</territory>
-                       <territory type="BN" references="RP6">Brunéi Darussalam</territory>
-                       <territory type="BO">Bolivie</territory>
-                       <territory type="BR">Brésil</territory>
-                       <territory type="BS">Bahamas</territory>
-                       <territory type="BT">Bhoutan</territory>
-                       <territory type="BV" references="RP7">Bouvet, île</territory>
-                       <territory type="BV" references="RP7" alt="proposed-u148-1" draft="unconfirmed">Ile Bouvet</territory>
-                       <territory type="BW">Botswana</territory>
-                       <territory type="BY">Bélarus</territory>
-                       <territory type="BZ">Belize</territory>
-                       <territory type="CA">Canada</territory>
-                       <territory type="CC" references="RP7">Cocos (Keeling), îles</territory>
-                       <territory type="CC" references="RP7" alt="proposed-u148-1" draft="unconfirmed">Iles Cocos (Keeling)</territory>
-                       <territory type="CD" references="RP6" draft="unconfirmed">Congo, la république démocratique du</territory>
-                       <territory type="CF" references="RP6" draft="unconfirmed">Centrafricaine, république</territory>
-                       <territory type="CG">Congo</territory>
-                       <territory type="CH">Suisse</territory>
-                       <territory type="CI">Côte d’Ivoire</territory>
-                       <territory type="CK" references="RP6">Cook, îles</territory>
-                       <territory type="CK" references="RP6" alt="proposed-u148-1" draft="unconfirmed">Iles Cook</territory>
-                       <territory type="CL">Chili</territory>
-                       <territory type="CM">Cameroun</territory>
-                       <territory type="CN">Chine</territory>
-                       <territory type="CO">Colombie</territory>
-                       <territory type="CR">Costa Rica</territory>
-                       <territory type="CS">Serbie-et-Monténégro</territory>
-                       <territory type="CU">Cuba</territory>
-                       <territory type="CV">Cap Vert</territory>
-                       <territory type="CX" references="RP6">Christmas, île</territory>
-                       <territory type="CX" references="RP6" alt="proposed-u148-1" draft="unconfirmed">Ile Christmas</territory>
-                       <territory type="CY">Chypre</territory>
-                       <territory type="CZ" references="RP6" draft="unconfirmed">Tchèque, république</territory>
-                       <territory type="DE">Allemagne</territory>
-                       <territory type="DJ">Djibouti</territory>
-                       <territory type="DK">Danemark</territory>
-                       <territory type="DM">Dominique</territory>
-                       <territory type="DO" references="RP6" draft="unconfirmed">Dominicaine, république</territory>
-                       <territory type="DZ">Algérie</territory>
-                       <territory type="EC">Équateur</territory>
-                       <territory type="EE">Estonie</territory>
-                       <territory type="EG">Égypte</territory>
-                       <territory type="EH">Sahara occidental</territory>
-                       <territory type="ER">Érythrée</territory>
-                       <territory type="ES">Espagne</territory>
-                       <territory type="ET">Éthiopie</territory>
-                       <territory type="FI">Finlande</territory>
-                       <territory type="FJ">Fidji</territory>
-                       <territory type="FK" references="RP6">Falkland, îles (Malvinas)</territory>
-                       <territory type="FK" references="RP6" alt="proposed-u148-2" draft="unconfirmed">Iles Falkland (Malouines)</territory>
-                       <territory type="FM" references="RP6">Micronésie, états fédérés de</territory>
-                       <territory type="FM" references="RP6" alt="proposed-u148-1" draft="unconfirmed">Micronésie, États fédérés de</territory>
-                       <territory type="FO" references="RP6">Féroé, îles</territory>
-                       <territory type="FO" references="RP6" alt="proposed-u148-1" draft="unconfirmed">Iles Féroé</territory>
-                       <territory type="FR">France</territory>
-                       <territory type="GA">Gabon</territory>
-                       <territory type="GB">Royaume-Uni</territory>
-                       <territory type="GD">Grenade</territory>
-                       <territory type="GE">Géorgie</territory>
-                       <territory type="GF">Guyane française</territory>
-                       <territory type="GH">Ghana</territory>
-                       <territory type="GI">Gibraltar</territory>
-                       <territory type="GL">Groenland</territory>
-                       <territory type="GM">Gambie</territory>
-                       <territory type="GN">Guinée</territory>
-                       <territory type="GP">Guadeloupe</territory>
-                       <territory type="GQ">Guinée équatoriale</territory>
-                       <territory type="GR">Grèce</territory>
-                       <territory type="GS" references="RP6">Géorgie du Sud et les îles Sandwich du Sud</territory>
-                       <territory type="GS" references="RP6" alt="proposed-u148-3" draft="unconfirmed">Géorgie du Sud et les iles Sandwich du Sud</territory>
-                       <territory type="GT">Guatemala</territory>
-                       <territory type="GU">Guam</territory>
-                       <territory type="GW">Guinée-Bissau</territory>
-                       <territory type="GY">Guyana</territory>
-                       <territory type="HK" references="RP6" draft="unconfirmed">Hong-Kong</territory>
-                       <territory type="HM" references="RP6">Heard, île et McDonald, îles</territory>
-                       <territory type="HM" references="RP6" alt="proposed-u148-2" draft="unconfirmed">Iles Heard et McDonald</territory>
-                       <territory type="HN">Honduras</territory>
-                       <territory type="HR">Croatie</territory>
-                       <territory type="HT">Haïti</territory>
-                       <territory type="HU">Hongrie</territory>
-                       <territory type="ID">Indonésie</territory>
-                       <territory type="IE">Irlande</territory>
-                       <territory type="IL">Israël</territory>
-                       <territory type="IN">Inde</territory>
-                       <territory type="IO" references="RP6" draft="unconfirmed">Océan indien, territoire britannique de l'</territory>
-                       <territory type="IQ">Iraq</territory>
-                       <territory type="IR">Iran</territory>
-                       <territory type="IS">Islande</territory>
-                       <territory type="IT">Italie</territory>
-                       <territory type="JM">Jamaïque</territory>
-                       <territory type="JO">Jordanie</territory>
-                       <territory type="JP">Japon</territory>
-                       <territory type="KE">Kenya</territory>
-                       <territory type="KG">Kirghizistan</territory>
-                       <territory type="KH">Cambodge</territory>
-                       <territory type="KI">Kiribati</territory>
-                       <territory type="KM">Comores</territory>
-                       <territory type="KN" references="RP6">Saint-Kitts-et-Nevis</territory>
-                       <territory type="KN" references="RP6" alt="proposed-u148-1" draft="unconfirmed">Saint-Christophe-et-Niévès</territory>
-                       <territory type="KP">Corée du Nord</territory>
-                       <territory type="KR">Corée du Sud</territory>
-                       <territory type="KW">Koweït</territory>
-                       <territory type="KY">Caïmanes, îles</territory>
-                       <territory type="KY" alt="proposed-u148-1" draft="unconfirmed">Iles Caïmanes</territory>
-                       <territory type="KZ">Kazakhstan</territory>
-                       <territory type="LA">Laos</territory>
-                       <territory type="LB">Liban</territory>
-                       <territory type="LC">Sainte-Lucie</territory>
-                       <territory type="LI">Liechtenstein</territory>
-                       <territory type="LK">Sri Lanka</territory>
-                       <territory type="LR">Libéria</territory>
-                       <territory type="LS">Lesotho</territory>
-                       <territory type="LT" references="RP6">Lituanie</territory>
-                       <territory type="LU">Luxembourg</territory>
-                       <territory type="LV">Lettonie</territory>
-                       <territory type="LY">Libye</territory>
-                       <territory type="MA">Maroc</territory>
-                       <territory type="MC">Monaco</territory>
-                       <territory type="MD" references="RP7">Moldavie</territory>
-                       <territory type="MG">Madagascar</territory>
-                       <territory type="MH" references="RP6">Marshall, îles</territory>
-                       <territory type="MH" references="RP6" alt="proposed-u148-1" draft="unconfirmed">Iles Marshall</territory>
-                       <territory type="MK">Macédoine</territory>
-                       <territory type="ML">Mali</territory>
-                       <territory type="MM">Myanmar</territory>
-                       <territory type="MN">Mongolie</territory>
-                       <territory type="MO" references="RP6" draft="unconfirmed">Macao</territory>
-                       <territory type="MP" references="RP6">Mariannes du Nord, îles</territory>
-                       <territory type="MP" references="RP6" alt="proposed-u148-1" draft="unconfirmed">Iles Mariannes du Nord</territory>
-                       <territory type="MQ">Martinique</territory>
-                       <territory type="MR">Mauritanie</territory>
-                       <territory type="MS">Montserrat</territory>
-                       <territory type="MT">Malte</territory>
-                       <territory type="MU">Maurice</territory>
-                       <territory type="MV">Maldives</territory>
-                       <territory type="MW">Malawi</territory>
-                       <territory type="MX">Mexique</territory>
-                       <territory type="MY">Malaisie</territory>
-                       <territory type="MZ">Mozambique</territory>
-                       <territory type="NA">Namibie</territory>
-                       <territory type="NC">Nouvelle-Calédonie</territory>
-                       <territory type="NE">Niger</territory>
-                       <territory type="NF" references="RP6">Norfolk, île</territory>
-                       <territory type="NF" references="RP6" alt="proposed-u148-1" draft="unconfirmed">Ile Norfolk</territory>
-                       <territory type="NG">Nigéria</territory>
-                       <territory type="NI">Nicaragua</territory>
-                       <territory type="NL">Pays-Bas</territory>
-                       <territory type="NO">Norvège</territory>
-                       <territory type="NP">Népal</territory>
-                       <territory type="NR">Nauru</territory>
-                       <territory type="NU">Nioué</territory>
-                       <territory type="NZ">Nouvelle-Zélande</territory>
-                       <territory type="OM">Oman</territory>
-                       <territory type="PA">Panama</territory>
-                       <territory type="PE">Pérou</territory>
-                       <territory type="PF">Polynésie française</territory>
-                       <territory type="PG">Papouasie-Nouvelle-Guinée</territory>
-                       <territory type="PH">Philippines</territory>
-                       <territory type="PK">Pakistan</territory>
-                       <territory type="PL">Pologne</territory>
-                       <territory type="PM">Saint-Pierre-et-Miquelon</territory>
-                       <territory type="PN">Pitcairn</territory>
-                       <territory type="PR">Porto Rico</territory>
-                       <territory type="PS">Territoire palestinien</territory>
-                       <territory type="PT">Portugal</territory>
-                       <territory type="PW">Palaos</territory>
-                       <territory type="PY">Paraguay</territory>
-                       <territory type="QA">Qatar</territory>
-                       <territory type="QO" draft="provisional">régions éloignées de l’Océanie</territory>
-                       <territory type="RE">Réunion</territory>
-                       <territory type="RO">Roumanie</territory>
-                       <territory type="RU">Russie</territory>
-                       <territory type="RW">Rwanda</territory>
-                       <territory type="SA">Arabie saoudite</territory>
-                       <territory type="SB">Salomon, îles</territory>
-                       <territory type="SB" alt="proposed-u148-1" draft="unconfirmed">Iles Salomon</territory>
-                       <territory type="SC">Seychelles</territory>
-                       <territory type="SD">Soudan</territory>
-                       <territory type="SE">Suède</territory>
-                       <territory type="SG">Singapour</territory>
-                       <territory type="SH">Sainte-Hélène</territory>
-                       <territory type="SI">Slovénie</territory>
-                       <territory type="SJ">Svalbard et Île Jan Mayen</territory>
-                       <territory type="SJ" alt="proposed-u148-1" draft="unconfirmed">Svalbard et Ile Jan Mayen</territory>
-                       <territory type="SK">Slovaquie</territory>
-                       <territory type="SL">Sierra Leone</territory>
-                       <territory type="SM">Saint-Marin</territory>
-                       <territory type="SN">Sénégal</territory>
-                       <territory type="SO">Somalie</territory>
-                       <territory type="SR">Suriname</territory>
-                       <territory type="ST">Sao Tomé-et-Principe</territory>
-                       <territory type="SV">El Salvador</territory>
-                       <territory type="SY">Syrie</territory>
-                       <territory type="SZ">Swaziland</territory>
-                       <territory type="TC" references="RP6">Turks et Caïques, îles</territory>
-                       <territory type="TC" references="RP6" alt="proposed-u148-1" draft="unconfirmed">Iles Turks et Caïques</territory>
-                       <territory type="TD">Tchad</territory>
-                       <territory type="TF">Terres australes françaises</territory>
-                       <territory type="TG">Togo</territory>
-                       <territory type="TH">Thaïlande</territory>
-                       <territory type="TJ">Tadjikistan</territory>
-                       <territory type="TK">Tokelau</territory>
-                       <territory type="TL">Timor-Leste</territory>
-                       <territory type="TM">Turkménistan</territory>
-                       <territory type="TN">Tunisie</territory>
-                       <territory type="TO">Tonga</territory>
-                       <territory type="TR">Turquie</territory>
-                       <territory type="TT">Trinité-et-Tobago</territory>
-                       <territory type="TV">Tuvalu</territory>
-                       <territory type="TW">Taïwan</territory>
-                       <territory type="TZ">Tanzanie</territory>
-                       <territory type="UA">Ukraine</territory>
-                       <territory type="UG">Ouganda</territory>
-                       <territory type="UM">Îles Mineures Éloignées des États-Unis</territory>
-                       <territory type="UM" alt="proposed-u148-1" draft="unconfirmed">Iles mineures éloignées des États-Unis</territory>
-                       <territory type="UM" references="RP6" alt="proposed-u169-1" draft="provisional">Îles mineures éloignées des États-Unis</territory>
-                       <territory type="US">États-Unis</territory>
-                       <territory type="UY">Uruguay</territory>
-                       <territory type="UZ">Ouzbékistan</territory>
-                       <territory type="VA">Saint-Siège (Etat de la Cité du Vatican)</territory>
-                       <territory type="VA" alt="proposed-u148-1" draft="provisional">Saint-Siège (État de la Cité du Vatican)</territory>
-                       <territory type="VC">Saint-Vincent-et-les Grenadines</territory>
-                       <territory type="VE" draft="provisional">Venezuela</territory>
-                       <territory type="VG">Îles Vierges britanniques</territory>
-                       <territory type="VG" alt="proposed-u148-1" draft="unconfirmed">Iles Vierges britanniques</territory>
-                       <territory type="VI">Îles Vierges des États-Unis</territory>
-                       <territory type="VI" alt="proposed-u148-1" draft="unconfirmed">Iles Vierges des États-Unis</territory>
-                       <territory type="VN">Viêt Nam</territory>
-                       <territory type="VU">Vanuatu</territory>
-                       <territory type="WF">Wallis-et-Futuna</territory>
-                       <territory type="WS">Samoa</territory>
-                       <territory type="YE">Yémen</territory>
-                       <territory type="YT">Mayotte</territory>
-                       <territory type="ZA">Afrique du Sud</territory>
-                       <territory type="ZM">Zambie</territory>
-                       <territory type="ZW">Zimbabwe</territory>
-               </territories>
-               <variants>
-                       <variant type="1901">orthographe allemande traditionnelle</variant>
-                       <variant type="1996">orthographe allemande de 1996</variant>
-                       <variant type="NEDIS">dialecte de Natisone</variant>
-                       <variant type="POLYTONI">polytonique</variant>
-                       <variant type="REVISED">orthographe révisée</variant>
-                       <variant type="ROZAJ">dialecte de Resia</variant>
-                       <variant type="SAAHO" draft="provisional">sialecte saho</variant>
-               </variants>
-               <keys>
-                       <key type="calendar">Calendrier</key>
-                       <key type="collation">Ordonnancement</key>
-                       <key type="currency">Devise</key>
-               </keys>
-               <types>
-                       <type type="big5han" key="collation">chinois traditionnel (Big5)</type>
-                       <type type="buddhist" key="calendar">Calendrier bouddhiste</type>
-                       <type type="chinese" key="calendar">Calendrier chinois</type>
-                       <type type="direct" key="collation">Ordre direct</type>
-                       <type type="gb2312han" key="collation">chinois simplifié (GB2312)</type>
-                       <type type="gregorian" key="calendar">Calendrier grégorien</type>
-                       <type type="hebrew" key="calendar">Calendrier hébraïque</type>
-                       <type type="islamic" key="calendar">Calendrier musulman</type>
-                       <type type="islamic-civil" key="calendar">Calendrier civil musulman</type>
-                       <type type="japanese" key="calendar">Calendrier japonais</type>
-                       <type type="phonebook" key="collation">Ordre de l’annuaire</type>
-                       <type type="pinyin" key="collation">Ordre pinyin</type>
-                       <type type="stroke" key="collation">Ordre des traits</type>
-                       <type type="traditional" key="collation">Ordre traditionnel</type>
-               </types>
-               <measurementSystemNames>
-                       <measurementSystemName type="US">américain</measurementSystemName>
-                       <measurementSystemName type="metric">métrique</measurementSystemName>
-               </measurementSystemNames>
-       </localeDisplayNames>
-       <characters>
-               <exemplarCharacters>[a à â æ b c ç d e é è ê ë f-i î ï j-o ô œ p-u ù û ü v-y ÿ z]</exemplarCharacters>
-               <exemplarCharacters type="auxiliary">[å ñ ó]</exemplarCharacters>
-       </characters>
-       <delimiters>
-               <quotationStart>«</quotationStart>
-               <quotationEnd>»</quotationEnd>
-               <alternateQuotationStart>“</alternateQuotationStart>
-               <alternateQuotationEnd>”</alternateQuotationEnd>
-       </delimiters>
-       <dates>
-               <localizedPatternChars>GaMjkHmsSEDFwWxhKzAeugXZvcL</localizedPatternChars>
-               <calendars>
-                       <calendar type="gregorian">
-                               <months>
-                                       <monthContext type="format">
-                                               <monthWidth type="abbreviated">
-                                                       <month type="1">janv.</month>
-                                                       <month type="2">févr.</month>
-                                                       <month type="3">mars</month>
-                                                       <month type="4">avr.</month>
-                                                       <month type="5">mai</month>
-                                                       <month type="6">juin</month>
-                                                       <month type="7">juil.</month>
-                                                       <month type="8">août</month>
-                                                       <month type="9">sept.</month>
-                                                       <month type="10">oct.</month>
-                                                       <month type="11">nov.</month>
-                                                       <month type="12">déc.</month>
-                                               </monthWidth>
-                                               <monthWidth type="wide">
-                                                       <month type="1">janvier</month>
-                                                       <month type="2">février</month>
-                                                       <month type="3">mars</month>
-                                                       <month type="4">avril</month>
-                                                       <month type="5">mai</month>
-                                                       <month type="6">juin</month>
-                                                       <month type="7">juillet</month>
-                                                       <month type="8">août</month>
-                                                       <month type="9">septembre</month>
-                                                       <month type="10">octobre</month>
-                                                       <month type="11">novembre</month>
-                                                       <month type="12">décembre</month>
-                                               </monthWidth>
-                                       </monthContext>
-                                       <monthContext type="stand-alone">
-                                               <monthWidth type="narrow">
-                                                       <month type="1">J</month>
-                                                       <month type="2">F</month>
-                                                       <month type="3">M</month>
-                                                       <month type="4">A</month>
-                                                       <month type="5">M</month>
-                                                       <month type="6">J</month>
-                                                       <month type="7">J</month>
-                                                       <month type="8">A</month>
-                                                       <month type="9">S</month>
-                                                       <month type="10">O</month>
-                                                       <month type="11">N</month>
-                                                       <month type="12">D</month>
-                                               </monthWidth>
-                                       </monthContext>
-                               </months>
-                               <days>
-                                       <dayContext type="format">
-                                               <dayWidth type="abbreviated">
-                                                       <day type="sun">dim.</day>
-                                                       <day type="mon">lun.</day>
-                                                       <day type="tue">mar.</day>
-                                                       <day type="wed">mer.</day>
-                                                       <day type="thu">jeu.</day>
-                                                       <day type="fri">ven.</day>
-                                                       <day type="sat">sam.</day>
-                                               </dayWidth>
-                                               <dayWidth type="wide">
-                                                       <day type="sun">dimanche</day>
-                                                       <day type="mon">lundi</day>
-                                                       <day type="tue">mardi</day>
-                                                       <day type="wed">mercredi</day>
-                                                       <day type="thu">jeudi</day>
-                                                       <day type="fri">vendredi</day>
-                                                       <day type="sat">samedi</day>
-                                               </dayWidth>
-                                       </dayContext>
-                                       <dayContext type="stand-alone">
-                                               <dayWidth type="narrow">
-                                                       <day type="sun">D</day>
-                                                       <day type="mon">L</day>
-                                                       <day type="tue">M</day>
-                                                       <day type="wed">M</day>
-                                                       <day type="thu">J</day>
-                                                       <day type="fri">V</day>
-                                                       <day type="sat">S</day>
-                                               </dayWidth>
-                                       </dayContext>
-                               </days>
-                               <quarters>
-                                       <quarterContext type="format">
-                                               <quarterWidth type="abbreviated">
-                                                       <quarter type="1">T1</quarter>
-                                                       <quarter type="2">T2</quarter>
-                                                       <quarter type="3">T3</quarter>
-                                                       <quarter type="4">T4</quarter>
-                                               </quarterWidth>
-                                               <quarterWidth type="wide">
-                                                       <quarter type="1">1er trimestre</quarter>
-                                                       <quarter type="2">2e trimestre</quarter>
-                                                       <quarter type="3">3e trimestre</quarter>
-                                                       <quarter type="4">4e trimestre</quarter>
-                                               </quarterWidth>
-                                       </quarterContext>
-                               </quarters>
-                               <eras>
-                                       <eraNames>
-                                               <era type="0">av. J.-C.</era>
-                                               <era type="1">ap. J.-C.</era>
-                                       </eraNames>
-                                       <eraAbbr>
-                                               <era type="0">av. J.-C.</era>
-                                               <era type="1">apr. J.-C.</era>
-                                       </eraAbbr>
-                               </eras>
-                               <dateFormats>
-                                       <dateFormatLength type="full">
-                                               <dateFormat>
-                                                       <pattern>EEEE d MMMM yyyy</pattern>
-                                               </dateFormat>
-                                       </dateFormatLength>
-                                       <dateFormatLength type="long">
-                                               <dateFormat>
-                                                       <pattern>d MMMM yyyy</pattern>
-                                               </dateFormat>
-                                       </dateFormatLength>
-                                       <dateFormatLength type="medium">
-                                               <dateFormat>
-                                                       <pattern>d MMM yy</pattern>
-                                               </dateFormat>
-                                       </dateFormatLength>
-                                       <dateFormatLength type="short">
-                                               <dateFormat>
-                                                       <pattern>dd/MM/yy</pattern>
-                                               </dateFormat>
-                                       </dateFormatLength>
-                               </dateFormats>
-                               <timeFormats>
-                                       <timeFormatLength type="full">
-                                               <timeFormat>
-                                                       <pattern>HH' h 'mm z</pattern>
-                                               </timeFormat>
-                                       </timeFormatLength>
-                               </timeFormats>
-                               <dateTimeFormats>
-                                       <availableFormats>
-                                               <dateFormatItem id="HHmm" draft="provisional">HH:mm</dateFormatItem>
-                                               <dateFormatItem id="HHmmss" draft="provisional">HH:mm:ss</dateFormatItem>
-                                               <dateFormatItem id="MMMMd" draft="provisional">d MMMM</dateFormatItem>
-                                               <dateFormatItem id="MMdd" draft="provisional">dd/MM</dateFormatItem>
-                                               <dateFormatItem id="hhmm" draft="provisional">hh:mm a</dateFormatItem>
-                                               <dateFormatItem id="hhmmss" draft="provisional">hh:mm:ss a</dateFormatItem>
-                                               <dateFormatItem id="yyMM" draft="provisional">MM/yy</dateFormatItem>
-                                               <dateFormatItem id="yyQQQQ" draft="provisional">QQQQ yy</dateFormatItem>
-                                               <dateFormatItem id="yyyyMMMM" draft="provisional">MMMM yyyy</dateFormatItem>
-                                       </availableFormats>
-                               </dateTimeFormats>
-                       </calendar>
-                       <calendar type="hebrew">
-                               <months>
-                                       <monthContext type="format">
-                                               <monthWidth type="wide">
-                                                       <month type="1">Tisseri</month>
-                                                       <month type="2">Hesvan</month>
-                                                       <month type="4">Tébeth</month>
-                                                       <month type="5">Schébat</month>
-                                                       <month type="6">Adar</month>
-                                                       <month type="7">Adar II</month>
-                                                       <month type="8">Nissan</month>
-                                                       <month type="11">Tamouz</month>
-                                                       <month type="12">Ab</month>
-                                                       <month type="13">Elloul</month>
-                                               </monthWidth>
-                                       </monthContext>
-                               </months>
-                       </calendar>
-                       <calendar type="islamic">
-                               <months>
-                                       <monthContext type="format">
-                                               <monthWidth type="wide">
-                                                       <month type="1">Mouharram</month>
-                                                       <month type="3">Rabiʻ-oul-Aououal</month>
-                                                       <month type="4">Rabiʻ-out-Tani</month>
-                                                       <month type="5">Djoumada-l-Oula</month>
-                                                       <month type="6">Djoumada-t-Tania</month>
-                                                       <month type="7">Radjab</month>
-                                                       <month type="8">Chaʻban</month>
-                                                       <month type="10">Chaououal</month>
-                                                       <month type="11">Dou-l-Qaʻda</month>
-                                                       <month type="12">Dou-l-Hidjja</month>
-                                               </monthWidth>
-                                       </monthContext>
-                               </months>
-                       </calendar>
-               </calendars>
-               <timeZoneNames>
-                       <gmtFormat draft="unconfirmed">HMG{0}</gmtFormat>
-                       <zone type="Africa/Timbuktu">
-                               <exemplarCity>Tombouctou</exemplarCity>
-                       </zone>
-                       <zone type="America/Argentina/ComodRivadavia">
-                               <exemplarCity>Comodoro Rivadavia</exemplarCity>
-                       </zone>
-                       <zone type="Antarctica/South_Pole">
-                               <exemplarCity>Pôle Sud</exemplarCity>
-                       </zone>
-                       <zone type="Antarctica/DumontDUrville">
-                               <exemplarCity>Dumont d'Urville</exemplarCity>
-                       </zone>
-                       <zone type="Antarctica/McMurdo">
-                               <exemplarCity>Mac Murdo</exemplarCity>
-                       </zone>
-                       <zone type="Australia/Adelaide">
-                               <exemplarCity>Adélaïde</exemplarCity>
-                       </zone>
-                       <zone type="America/Manaus">
-                               <exemplarCity>Manaos</exemplarCity>
-                       </zone>
-                       <zone type="America/Vancouver">
-                               <long>
-                                       <generic>Heure du Pacifique</generic>
-                                       <standard>Heure normale du Pacifique</standard>
-                                       <daylight>Heure avancée du Pacifique</daylight>
-                               </long>
-                               <short>
-                                       <generic>HP</generic>
-                                       <standard>HNP</standard>
-                                       <daylight>HAP</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Edmonton">
-                               <long>
-                                       <generic>Heure des Rocheuses</generic>
-                                       <standard>Heure normale des Rocheuses</standard>
-                                       <daylight>Heure avancée des Rocheuses</daylight>
-                               </long>
-                               <short>
-                                       <generic>HR</generic>
-                                       <standard>HNR</standard>
-                                       <daylight>HAR</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Winnipeg">
-                               <long>
-                                       <generic>Heure du Centre</generic>
-                                       <standard>Heure normale du Centre</standard>
-                                       <daylight>Heure avancée du Centre</daylight>
-                               </long>
-                               <short>
-                                       <generic>HC</generic>
-                               </short>
-                       </zone>
-                       <zone type="America/Montreal">
-                               <long>
-                                       <generic>Heure de l’Est</generic>
-                                       <standard>Heure normale de l’Est</standard>
-                                       <daylight>Heure avancée de l’Est</daylight>
-                               </long>
-                               <short>
-                                       <generic>HE</generic>
-                                       <standard>HNE</standard>
-                                       <daylight>HAE</daylight>
-                               </short>
-                               <exemplarCity>Montréal</exemplarCity>
-                       </zone>
-                       <zone type="America/Halifax">
-                               <long>
-                                       <generic>Heure de l’Atlantique</generic>
-                                       <standard>Heure normale de l’Atlantique</standard>
-                                       <daylight>Heure avancée de l’Atlantique</daylight>
-                               </long>
-                               <short>
-                                       <generic>HA</generic>
-                                       <standard>HNA</standard>
-                                       <daylight>HAA</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/St_Johns">
-                               <long>
-                                       <generic>Heure de Terre-Neuve</generic>
-                                       <standard>Heure normale de Terre-Neuve</standard>
-                                       <daylight>Heure avancée de Terre-Neuve</daylight>
-                               </long>
-                               <short>
-                                       <generic>HT</generic>
-                                       <standard>HNT</standard>
-                                       <daylight>HAT</daylight>
-                               </short>
-                               <exemplarCity>Saint-Jean de Terre-Neuve</exemplarCity>
-                       </zone>
-                       <!-- Chile -->
-                       <zone type="Pacific/Easter">
-                               <exemplarCity>Île de Pâques</exemplarCity>
-                       </zone>
-                       <!-- China -->
-                       <zone type="Asia/Kashgar">
-                               <exemplarCity>Kachgar</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Shanghai">
-                               <long>
-                                       <standard>Heure normale de Chine</standard>
-                                       <daylight>Heure avancée de Chine</daylight>
-                               </long>
-                               <short>
-                                       <standard>HNC</standard>
-                                       <daylight>HAC</daylight>
-                               </short>
-                       </zone>
-                       <!-- Spain -->
-                       <zone type="Atlantic/Canary">
-                               <exemplarCity>Îles Canaries</exemplarCity>
-                       </zone>
-                       <zone type="Europe/Paris">
-                               <long>
-                                       <generic>Heure de l’Europe centrale</generic>
-                                       <standard>Heure normale de l’Europe centrale</standard>
-                                       <daylight>Heure avancée de l’Europe centrale</daylight>
-                               </long>
-                               <short>
-                                       <generic>HEC</generic>
-                                       <standard>HNEC</standard>
-                                       <daylight>HAEC</daylight>
-                               </short>
-                               <exemplarCity>Paris</exemplarCity>
-                       </zone>
-                       <zone type="Europe/London">
-                               <exemplarCity>Londres</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Jerusalem">
-                               <long>
-                                       <standard>Heure normale d’Israël</standard>
-                                       <daylight>Heure avancée d’Israël</daylight>
-                               </long>
-                               <short>
-                                       <standard>HNI</standard>
-                                       <daylight>HAI</daylight>
-                               </short>
-                               <exemplarCity>Jérusalem</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Tokyo">
-                               <long>
-                                       <standard>Heure normale du Japon</standard>
-                                       <daylight>Heure avancée du Japon</daylight>
-                               </long>
-                               <short>
-                                       <standard>HNJ</standard>
-                                       <daylight>HAJ</daylight>
-                               </short>
-                               <exemplarCity>Tokyo</exemplarCity>
-                       </zone>
-                       <!-- Kazakhstan -->
-                       <zone type="Asia/Aqtau">
-                               <exemplarCity>Chevtchenko</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Oral">
-                               <exemplarCity>Ouralsk</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Aqtobe">
-                               <exemplarCity>Aktioubinsk</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Qyzylorda">
-                               <exemplarCity>Kzyl Orda</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Almaty">
-                               <exemplarCity>Alma Ata</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Ulaanbaatar">
-                               <exemplarCity>Oulan-Bator</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Choibalsan">
-                               <exemplarCity>Tchoïbalsan</exemplarCity>
-                       </zone>
-                       <zone type="America/Mexico_City">
-                               <exemplarCity>Mexico</exemplarCity>
-                       </zone>
-                       <zone type="Pacific/Marquesas">
-                               <exemplarCity>Marquises</exemplarCity>
-                       </zone>
-                       <!-- Portugal -->
-                       <zone type="Atlantic/Azores">
-                               <exemplarCity>Açores</exemplarCity>
-                       </zone>
-                       <zone type="Atlantic/Madeira">
-                               <exemplarCity>Madère</exemplarCity>
-                       </zone>
-                       <zone type="Europe/Lisbon">
-                               <exemplarCity>Lisbonne</exemplarCity>
-                       </zone>
-                       <zone type="Europe/Bucharest">
-                               <long>
-                                       <standard>Heure normale de l’Europe de l’Est</standard>
-                                       <daylight>Heure avancée de l’Europe de l’Est</daylight>
-                               </long>
-                               <short>
-                                       <standard>HEE</standard>
-                                       <daylight>HAEE</daylight>
-                               </short>
-                               <exemplarCity>Bucarest</exemplarCity>
-                       </zone>
-                       <zone type="Europe/Moscow">
-                               <exemplarCity>Moscou</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Yekaterinburg">
-                               <exemplarCity>Ekaterinbourg</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Novosibirsk">
-                               <exemplarCity>Novossibirsk</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Krasnoyarsk">
-                               <exemplarCity>Krasnoïarsk</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Irkutsk">
-                               <exemplarCity>Irkoutsk</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Yakutsk">
-                               <exemplarCity>Iakoutsk</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Sakhalin">
-                               <exemplarCity>Sakhaline</exemplarCity>
-                       </zone>
-                       <zone type="Asia/Kamchatka">
-                               <exemplarCity>Kamtchatka</exemplarCity>
-                       </zone>
-                       <!-- Ukraine -->
-                       <zone type="Europe/Uzhgorod">
-                               <exemplarCity>Oujgorod</exemplarCity>
-                       </zone>
-                       <zone type="Europe/Zaporozhye">
-                               <exemplarCity>Zaporojie</exemplarCity>
-                       </zone>
-                       <zone type="Pacific/Honolulu">
-                               <long>
-                                       <generic>Heure d’Hawaï</generic>
-                                       <standard>Heure normale d’Hawaï</standard>
-                                       <daylight>Heure avancée d’Hawaï</daylight>
-                               </long>
-                               <short>
-                                       <standard>HST</standard>
-                                       <daylight>HDT</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Anchorage">
-                               <long>
-                                       <generic>Heure de l’Alaska</generic>
-                                       <standard>Heure normale de l’Alaska</standard>
-                                       <daylight>Heure avancée de l’Alaska</daylight>
-                               </long>
-                               <short>
-                                       <generic>HAK</generic>
-                                       <standard>HNAK</standard>
-                                       <daylight>HAAK</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Los_Angeles">
-                               <long>
-                                       <generic>Heure du Pacifique (ÉUA)</generic>
-                                       <standard>Heure normale du Pacifique (ÉUA)</standard>
-                                       <daylight>Heure avancée du Pacifique (ÉUA)</daylight>
-                               </long>
-                               <short>
-                                       <generic>HP (ÉUA)</generic>
-                                       <standard>HNP (ÉUA)</standard>
-                                       <daylight>HAP (ÉUA)</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Denver">
-                               <long>
-                                       <generic>Heure des Rocheuses (ÉUA)</generic>
-                                       <standard>Heure normale des Rocheuses (ÉUA)</standard>
-                                       <daylight>Heure avancée des Rocheuses (ÉUA)</daylight>
-                               </long>
-                               <short>
-                                       <generic>HR (ÉUA)</generic>
-                                       <standard>HNR (ÉUA)</standard>
-                                       <daylight>HAR (ÉUA)</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Chicago">
-                               <long>
-                                       <generic>Heure du Centre (ÉUA)</generic>
-                                       <standard>Heure normale du Centre (ÉUA)</standard>
-                                       <daylight>Heure avancée du Centre (ÉUA)</daylight>
-                               </long>
-                               <short>
-                                       <generic>HC (ÉUA)</generic>
-                                       <standard>HNC (ÉUA)</standard>
-                                       <daylight>HAC (ÉUA)</daylight>
-                               </short>
-                       </zone>
-                       <zone type="America/Detroit">
-                               <exemplarCity>Détroit</exemplarCity>
-                       </zone>
-                       <zone type="America/New_York">
-                               <long>
-                                       <generic>Heure de l’Est (ÉUA)</generic>
-                                       <standard>Heure normale de l’Est (ÉUA)</standard>
-                                       <daylight>Heure avancée de l’Est (ÉUA)</daylight>
-                               </long>
-                               <short>
-                                       <generic>HE (ÉUA)</generic>
-                                       <standard>HNE (ÉUA)</standard>
-                                       <daylight>HAE (ÉUA)</daylight>
-                               </short>
-                       </zone>
-               </timeZoneNames>
-       </dates>
-       <numbers>
-               <symbols>
-                       <decimal>,</decimal>
-                       <group> </group>
-               </symbols>
-               <percentFormats>
-                       <percentFormatLength>
-                               <percentFormat>
-                                       <pattern>#,##0 %</pattern>
-                               </percentFormat>
-                       </percentFormatLength>
-               </percentFormats>
-               <currencyFormats>
-                       <currencyFormatLength>
-                               <currencyFormat>
-                                       <pattern>#,##0.00 ¤</pattern>
-                               </currencyFormat>
-                       </currencyFormatLength>
-               </currencyFormats>
-               <currencies>
-                       <currency type="ADP">
-                               <displayName>peseta andorrane</displayName>
-                       </currency>
-                       <currency type="AED">
-                               <displayName>dirham des Émirats arabes unis</displayName>
-                       </currency>
-                       <currency type="AFA">
-                               <displayName>afghani [AFA]</displayName>
-                       </currency>
-                       <currency type="AFN">
-                               <displayName>afghani</displayName>
-                               <symbol>Af</symbol>
-                       </currency>
-                       <currency type="ALL">
-                               <displayName references="RP8">lek</displayName>
-                               <symbol>lek</symbol>
-                       </currency>
-                       <currency type="AMD">
-                               <displayName>dram arménien</displayName>
-                               <symbol>dram</symbol>
-                       </currency>
-                       <currency type="ANG">
-                               <displayName references="RP8">florin des Antilles</displayName>
-                       </currency>
-                       <currency type="AOA">
-                               <displayName>kwanza angolais</displayName>
-                       </currency>
-                       <currency type="AOK">
-                               <displayName>kwanza angolais (1977-1990)</displayName>
-                       </currency>
-                       <currency type="AON">
-                               <displayName>nouveau kwanza angolais (1990-2000)</displayName>
-                       </currency>
-                       <currency type="AOR">
-                               <displayName>kwanza angolais réajusté (1995-1999)</displayName>
-                       </currency>
-                       <currency type="ARA">
-                               <displayName references="RP2">austral argentin</displayName>
-                       </currency>
-                       <currency type="ARP">
-                               <displayName>peso argentin (1983-1985)</displayName>
-                       </currency>
-                       <currency type="ARS">
-                               <displayName>peso argentin</displayName>
-                               <symbol>Arg$</symbol>
-                       </currency>
-                       <currency type="ATS">
-                               <displayName>schilling autrichien</displayName>
-                       </currency>
-                       <currency type="AUD">
-                               <displayName>dollar australien</displayName>
-                       </currency>
-                       <currency type="AWG">
-                               <displayName>florin d’Aruba</displayName>
-                       </currency>
-                       <currency type="AZM">
-                               <displayName>manat azéri</displayName>
-                       </currency>
-                       <currency type="BAD">
-                               <displayName>dinar de Bosnie-Herzegovine</displayName>
-                       </currency>
-                       <currency type="BAM">
-                               <displayName references="RP9">mark bosniaque convertible</displayName>
-                               <symbol>KM</symbol>
-                       </currency>
-                       <currency type="BBD">
-                               <displayName>dollar de Barbade</displayName>
-                       </currency>
-                       <currency type="BDT">
-                               <displayName>taka</displayName>
-                       </currency>
-                       <currency type="BEC">
-                               <displayName>franc belge (convertible)</displayName>
-                       </currency>
-                       <currency type="BEF">
-                               <displayName>franc belge</displayName>
-                               <symbol>FB</symbol>
-                       </currency>
-                       <currency type="BEL">
-                               <displayName>franc belge (financier)</displayName>
-                       </currency>
-                       <currency type="BGL">
-                               <displayName>lev</displayName>
-                       </currency>
-                       <currency type="BGN">
-                               <displayName references="RP2">nouveau lev</displayName>
-                       </currency>
-                       <currency type="BHD">
-                               <displayName references="RP8">dinar de Bahreïn</displayName>
-                       </currency>
-                       <currency type="BIF">
-                               <displayName>franc du Burundi</displayName>
-                       </currency>
-                       <currency type="BMD">
-                               <displayName>dollar des Bermudes</displayName>
-                       </currency>
-                       <currency type="BND">
-                               <displayName>dollar de Brunei</displayName>
-                       </currency>
-                       <currency type="BOB">
-                               <displayName>boliviano</displayName>
-                               <symbol>Bs</symbol>
-                       </currency>
-                       <currency type="BOP">
-                               <displayName>peso bolivien</displayName>
-                       </currency>
-                       <currency type="BOV">
-                               <displayName references="RP9">mvdol</displayName>
-                       </currency>
-                       <currency type="BRB">
-                               <displayName>nouveau cruzeiro (1967-1986)</displayName>
-                       </currency>
-                       <currency type="BRC">
-                               <displayName>cruzado</displayName>
-                       </currency>
-                       <currency type="BRE">
-                               <displayName>cruzeiro (1990-1993)</displayName>
-                       </currency>
-                       <currency type="BRL">
-                               <displayName>réal</displayName>
-                               <symbol>R$</symbol>
-                       </currency>
-                       <currency type="BRN">
-                               <displayName>nouveau cruzado</displayName>
-                       </currency>
-                       <currency type="BRR">
-                               <displayName>cruzeiro</displayName>
-                       </currency>
-                       <currency type="BSD">
-                               <displayName>dollar des Bahamas</displayName>
-                       </currency>
-                       <currency type="BTN">
-                               <displayName>ngultrum</displayName>
-                               <symbol>Nu</symbol>
-                       </currency>
-                       <currency type="BUK">
-                               <displayName>kyat [BUK]</displayName>
-                       </currency>
-                       <currency type="BWP">
-                               <displayName>pula</displayName>
-                       </currency>
-                       <currency type="BYB">
-                               <displayName>nouveau rouble biélorusse (1994-1999)</displayName>
-                       </currency>
-                       <currency type="BYR">
-                               <displayName>rouble biélorusse</displayName>
-                               <symbol>Rbl</symbol>
-                       </currency>
-                       <currency type="BZD">
-                               <displayName>dollar de Belize</displayName>
-                       </currency>
-                       <currency type="CAD">
-                               <displayName>dollar canadien</displayName>
-                       </currency>
-                       <currency type="CDF">
-                               <displayName>franc congolais</displayName>
-                       </currency>
-                       <currency type="CHE">
-                               <displayName>euro WIR</displayName>
-                       </currency>
-                       <currency type="CHF">
-                               <displayName>franc suisse</displayName>
-                               <symbol>sFr.</symbol>
-                       </currency>
-                       <currency type="CHW">
-                               <displayName>franc WIR</displayName>
-                       </currency>
-                       <currency type="CLF">
-                               <displayName>unité d’investissement chilienne</displayName>
-                       </currency>
-                       <currency type="CLP">
-                               <displayName>peso chilien</displayName>
-                       </currency>
-                       <currency type="CNY">
-                               <displayName>Yuan Ren-min-bi</displayName>
-                       </currency>
-                       <currency type="COP">
-                               <displayName>peso colombien</displayName>
-                       </currency>
-                       <currency type="COU">
-                               <displayName draft="unconfirmed">Unité de valeur réelle colombienne</displayName>
-                       </currency>
-                       <currency type="CRC">
-                               <displayName>colon de Costa Rica</displayName>
-                               <displayName alt="proposed-u148-1" draft="unconfirmed">colon costaricain</displayName>
-                       </currency>
-                       <currency type="CSD">
-                               <displayName>dinar serbe</displayName>
-                       </currency>
-                       <currency type="CSK">
-                               <displayName>couronne tchèque [CSK]</displayName>
-                               <displayName alt="proposed-u148-1" draft="unconfirmed">couronne forte tchécoslovaque</displayName>
-                               <displayName alt="proposed-u169-1" draft="provisional">couronne forte tchèque</displayName>
-                       </currency>
-                       <currency type="CUP">
-                               <displayName>peso cubain</displayName>
-                       </currency>
-                       <currency type="CVE">
-                               <displayName>escudo du Cap-Vert</displayName>
-                       </currency>
-                       <currency type="CYP">
-                               <displayName>livre cypriote</displayName>
-                       </currency>
-                       <currency type="CZK">
-                               <displayName>couronne tchèque</displayName>
-                       </currency>
-                       <currency type="DDM">
-                               <displayName>mark est-allemand</displayName>
-                       </currency>
-                       <currency type="DEM">
-                               <displayName>deutsche mark</displayName>
-                       </currency>
-                       <currency type="DJF">
-                               <displayName>franc de Djibouti</displayName>
-                               <symbol>DF</symbol>
-                       </currency>
-                       <currency type="DKK">
-                               <displayName>couronne danoise</displayName>
-                       </currency>
-                       <currency type="DOP">
-                               <displayName>peso dominicain</displayName>
-                       </currency>
-                       <currency type="DZD">
-                               <displayName>dinar algérien</displayName>
-                       </currency>
-                       <currency type="ECS">
-                               <displayName>sucre</displayName>
-                       </currency>
-                       <currency type="ECV">
-                               <displayName>unité de valeur constante équatoriale (UVC)</displayName>
-                       </currency>
-                       <currency type="EEK">
-                               <displayName>couronne estonienne</displayName>
-                       </currency>
-                       <currency type="EGP">
-                               <displayName>livre égyptienne</displayName>
-                       </currency>
-                       <currency type="EQE">
-                               <displayName references="RP2" draft="provisional">ekwele</displayName>
-                       </currency>
-                       <currency type="ERN">
-                               <displayName>Eritrean Nakfa</displayName>
-                               <displayName references="RP8" alt="proposed-u169-1" draft="provisional">nafka</displayName>
-                       </currency>
-                       <currency type="ESA">
-                               <displayName>peseta espagnole (compte A)</displayName>
-                       </currency>
-                       <currency type="ESB">
-                               <displayName>peseta espagnole (compte convertible)</displayName>
-                       </currency>
-                       <currency type="ESP">
-                               <displayName>peseta espagnole</displayName>
-                       </currency>
-                       <currency type="ETB">
-                               <displayName>birr</displayName>
-                               <displayName references="RP8" alt="proposed-u169-1" draft="provisional">birr éthiopien</displayName>
-                       </currency>
-                       <currency type="EUR">
-                               <displayName>euro</displayName>
-                       </currency>
-                       <currency type="FIM">
-                               <displayName>mark finlandais</displayName>
-                       </currency>
-                       <currency type="FJD">
-                               <displayName>dollar de Fidji</displayName>
-                       </currency>
-                       <currency type="FKP">
-                               <displayName>livre des Falkland (Malvinas)</displayName>
-                               <displayName alt="proposed-u148-1" draft="unconfirmed">livre des Falkland</displayName>
-                               <displayName references="RP8" alt="proposed-u169-1" draft="provisional">livre de Falkland</displayName>
-                       </currency>
-                       <currency type="FRF">
-                               <displayName>franc français</displayName>
-                               <symbol>F</symbol>
-                       </currency>
-                       <currency type="GBP">
-                               <displayName>livre sterling</displayName>
-                       </currency>
-                       <currency type="GEK">
-                               <displayName>Georgian Kupon Larit</displayName>
-                               <displayName alt="proposed-u148-1" draft="provisional">coupon de larit géorgien</displayName>
-                       </currency>
-                       <currency type="GEL">
-                               <displayName>lari</displayName>
-                               <symbol>lari</symbol>
-                       </currency>
-                       <currency type="GHC">
-                               <displayName>cédi</displayName>
-                               <displayName references="RP8" alt="proposed-u169-1" draft="provisional">cedi</displayName>
-                       </currency>
-                       <currency type="GIP">
-                               <displayName>livre de Gibraltar</displayName>
-                       </currency>
-                       <currency type="GMD">
-                               <displayName>dalasie</displayName>
-                               <displayName references="RP8" alt="proposed-u169-1" draft="provisional">dalasi</displayName>
-                       </currency>
-                       <currency type="GNF">
-                               <displayName>franc guinéen</displayName>
-                               <symbol>GF</symbol>
-                       </currency>
-                       <currency type="GNS">
-                               <displayName>syli</displayName>
-                       </currency>
-                       <currency type="GQE">
-                               <displayName>ekwélé</displayName>
-                               <displayName alt="proposed-u148-1" draft="unconfirmed">ekwélé de Guinée équatoriale</displayName>
-                               <displayName references="RP2" alt="proposed-u169-1" draft="provisional">ekwele de Guinée équatoriale</displayName>
-                       </currency>
-                       <currency type="GRD">
-                               <displayName>drachme</displayName>
-                       </currency>
-                       <currency type="GTQ">
-                               <displayName>quetzal</displayName>
-                       </currency>
-                       <currency type="GWE">
-                               <displayName references="RP2">escudo de Guinée portugaise</displayName>
-                       </currency>
-                       <currency type="GWP">
-                               <displayName>peso de Guinée-Bissau</displayName>
-                       </currency>
-                       <currency type="GYD">
-                               <displayName>dollar du Guyana</displayName>
-                               <symbol>G$</symbol>
-                       </currency>
-                       <currency type="HKD">
-                               <displayName>dollar de Hong Kong</displayName>
-                       </currency>
-                       <currency type="HNL">
-                               <displayName>lempira</displayName>
-                       </currency>
-                       <currency type="HRD">
-                               <displayName>dinar croate</displayName>
-                       </currency>
-                       <currency type="HRK">
-                               <displayName>kuna</displayName>
-                       </currency>
-                       <currency type="HTG">
-                               <displayName>gourde</displayName>
-                       </currency>
-                       <currency type="HUF">
-                               <displayName>forint</displayName>
-                       </currency>
-                       <currency type="IDR">
-                               <displayName>rupiah</displayName>
-                       </currency>
-                       <currency type="IEP">
-                               <displayName>livre irlandaise</displayName>
-                       </currency>
-                       <currency type="ILP">
-                               <displayName>livre israélienne</displayName>
-                       </currency>
-                       <currency type="ILS">
-                               <displayName references="RP10" draft="provisional">shekel</displayName>
-                       </currency>
-                       <currency type="INR">
-                               <displayName>roupie indienne</displayName>
-                       </currency>
-                       <currency type="IQD">
-                               <displayName references="RP8" draft="provisional">dinar iraquien</displayName>
-                       </currency>
-                       <currency type="IRR">
-                               <displayName>rial iranien</displayName>
-                       </currency>
-                       <currency type="ISK">
-                               <displayName>couronne islandaise</displayName>
-                       </currency>
-                       <currency type="ITL">
-                               <displayName>lire italienne</displayName>
-                       </currency>
-                       <currency type="JMD">
-                               <displayName>dollar jamaïcain</displayName>
-                       </currency>
-                       <currency type="JOD">
-                               <displayName>dinar jordanien</displayName>
-                       </currency>
-                       <currency type="JPY">
-                               <displayName>yen</displayName>
-                       </currency>
-                       <currency type="KES">
-                               <displayName>shilling du Kenya</displayName>
-                       </currency>
-                       <currency type="KGS">
-                               <displayName references="RP8">som</displayName>
-                               <symbol>som</symbol>
-                       </currency>
-                       <currency type="KHR">
-                               <displayName>riel</displayName>
-                       </currency>
-                       <currency type="KMF">
-                               <displayName>franc des Comores</displayName>
-                       </currency>
-                       <currency type="KPW">
-                               <displayName>won nord-coréen</displayName>
-                       </currency>
-                       <currency type="KRW">
-                               <displayName>won sud-coréen</displayName>
-                       </currency>
-                       <currency type="KWD">
-                               <displayName references="RP8" draft="provisional">dinar koweïtien</displayName>
-                       </currency>
-                       <currency type="KYD">
-                               <displayName>dollar des îles Caïmanes</displayName>
-                               <displayName alt="proposed-u148-1" draft="unconfirmed">dollar des iles Caïmanes</displayName>
-                       </currency>
-                       <currency type="KZT">
-                               <displayName>tenge du Kazakhstan</displayName>
-                               <displayName alt="proposed-u148-1" draft="unconfirmed">tengé kazakh</displayName>
-                               <displayName references="RP8" alt="proposed-u169-1" draft="provisional">tenge</displayName>
-                               <symbol>T</symbol>
-                       </currency>
-                       <currency type="LAK">
-                               <displayName>kip</displayName>
-                       </currency>
-                       <currency type="LBP">
-                               <displayName>livre libanaise</displayName>
-                       </currency>
-                       <currency type="LKR">
-                               <displayName>roupie de Sri Lanka</displayName>
-                       </currency>
-                       <currency type="LRD">
-                               <displayName>dollar libérien</displayName>
-                       </currency>
-                       <currency type="LSL">
-                               <displayName references="RP8">loti</displayName>
-                               <symbol>M</symbol>
-                       </currency>
-                       <currency type="LSM">
-                               <displayName references="RP2" draft="provisional">maloti</displayName>
-                       </currency>
-                       <currency type="LTL">
-                               <displayName references="RP8">litas lituanien</displayName>
-                               <displayName references="RP8" alt="proposed-u148-1" draft="unconfirmed">litas</displayName>
-                       </currency>
-                       <currency type="LTT">
-                               <displayName references="RP2">talonas</displayName>
-                       </currency>
-                       <currency type="LUC">
-                               <displayName>franc luxembourgeois convertible</displayName>
-                       </currency>
-                       <currency type="LUF">
-                               <displayName>franc luxembourgeois</displayName>
-                       </currency>
-                       <currency type="LUL">
-                               <displayName>franc luxembourgeois financier</displayName>
-                       </currency>
-                       <currency type="LVL">
-                               <displayName>lats letton</displayName>
-                       </currency>
-                       <currency type="LVR">
-                               <displayName>rouble letton</displayName>
-                       </currency>
-                       <currency type="LYD">
-                               <displayName references="RP8">dinar lybien</displayName>
-                               <symbol>LD</symbol>
-                       </currency>
-                       <currency type="MAD">
-                               <displayName>dirham marocain</displayName>
-                       </currency>
-                       <currency type="MAF">
-                               <displayName>franc marocain</displayName>
-                       </currency>
-                       <currency type="MDL">
-                               <displayName>leu moldave</displayName>
-                       </currency>
-                       <currency type="MGA">
-                               <displayName references="RP10">ariary</displayName>
-                       </currency>
-                       <currency type="MGF">
-                               <displayName>franc malgache</displayName>
-                       </currency>
-                       <currency type="MKD">
-                               <displayName references="RP8">denar</displayName>
-                               <symbol>MDen</symbol>
-                       </currency>
-                       <currency type="MLF">
-                               <displayName>franc malien</displayName>
-                       </currency>
-                       <currency type="MMK">
-                               <displayName>Myanmar Kyat</displayName>
-                               <displayName alt="proposed-u148-1" draft="unconfirmed">kyat de Myanmar</displayName>
-                               <displayName references="RP8" alt="proposed-u169-1" draft="provisional">kyat</displayName>
-                       </currency>
-                       <currency type="MNT">
-                               <displayName>tugrik</displayName>
-                       </currency>
-                       <currency type="MOP">
-                               <displayName>pataca</displayName>
-                       </currency>
-                       <currency type="MRO">
-                               <displayName>ouguija</displayName>
-                       </currency>
-                       <currency type="MTL">
-                               <displayName>lire maltaise</displayName>
-                               <symbol>Lm</symbol>
-                       </currency>
-                       <currency type="MTP">
-                               <displayName>livre maltaise</displayName>
-                       </currency>
-                       <currency type="MUR">
-                               <displayName references="RP2">roupie mauricienne</displayName>
-                       </currency>
-                       <currency type="MVR">
-                               <displayName>roupie des Maldives</displayName>
-                               <displayName references="RP8" alt="proposed-u169-1" draft="provisional">rufiyaa</displayName>
-                       </currency>
-                       <currency type="MWK">
-                               <displayName>kwacha [MWK]</displayName>
-                               <displayName references="RP9" alt="proposed-u169-1" draft="provisional">kwacha du Malawi</displayName>
-                       </currency>
-                       <currency type="MXN">
-                               <displayName references="RP8">peso mexicain</displayName>
-                       </currency>
-                       <currency type="MXP">
-                               <displayName>peso d’argent mexicain (1861-1992)</displayName>
-                       </currency>
-                       <currency type="MXV">
-                               <displayName>unité de conversion mexicaine (UDI)</displayName>
-                               <displayName references="RP2" alt="proposed-u169-1" draft="provisional">unidad de inversion</displayName>
-                       </currency>
-                       <currency type="MYR">
-                               <displayName>ringgit</displayName>
-                               <displayName alt="proposed-u148-1" draft="unconfirmed">ringgit malais</displayName>
-                               <displayName references="RP8" alt="proposed-u169-1" draft="provisional">ringgit de Malaisie</displayName>
-                       </currency>
-                       <currency type="MZE">
-                               <displayName>escudo du Mozambique</displayName>
-                       </currency>
-                       <currency type="MZM">
-                               <displayName>métical</displayName>
-                               <displayName references="RP3" alt="proposed-u169-1" draft="provisional">metical</displayName>
-                       </currency>
-                       <currency type="NAD">
-                               <displayName references="RP8">dollar namibien</displayName>
-                               <symbol>N$</symbol>
-                       </currency>
-                       <currency type="NGN">
-                               <displayName>naira</displayName>
-                       </currency>
-                       <currency type="NIC">
-                               <displayName>cordoba</displayName>
-                       </currency>
-                       <currency type="NIO">
-                               <displayName>cordoba d’or</displayName>
-                       </currency>
-                       <currency type="NLG">
-                               <displayName>florin néerlandais</displayName>
-                       </currency>
-                       <currency type="NOK">
-                               <displayName>couronne norvégienne</displayName>
-                       </currency>
-                       <currency type="NPR">
-                               <displayName>roupie du Népal</displayName>
-                       </currency>
-                       <currency type="NZD">
-                               <displayName>dollar néo-zélandais</displayName>
-                       </currency>
-                       <currency type="OMR">
-                               <displayName>rial omani</displayName>
-                       </currency>
-                       <currency type="PAB">
-                               <displayName>balboa</displayName>
-                       </currency>
-                       <currency type="PEI">
-                               <displayName references="RP2">inti péruvien</displayName>
-                       </currency>
-                       <currency type="PEN">
-                               <displayName>nouveau sol péruvien</displayName>
-                       </currency>
-                       <currency type="PES">
-                               <displayName>sol péruvien</displayName>
-                       </currency>
-                       <currency type="PGK">
-                               <displayName>kina</displayName>
-                       </currency>
-                       <currency type="PHP">
-                               <displayName>peso philippin</displayName>
-                       </currency>
-                       <currency type="PKR">
-                               <displayName>roupie du Pakistan</displayName>
-                       </currency>
-                       <currency type="PLN">
-                               <displayName>zloty</displayName>
-                       </currency>
-                       <currency type="PLZ">
-                               <displayName>zloty (1950-1995)</displayName>
-                       </currency>
-                       <currency type="PTE">
-                               <displayName>escudo portugais</displayName>
-                       </currency>
-                       <currency type="PYG">
-                               <displayName>guarani</displayName>
-                       </currency>
-                       <currency type="QAR">
-                               <displayName>rial du Qatar</displayName>
-                       </currency>
-                       <currency type="RHD">
-                               <displayName references="RP2">dollar rhodésien</displayName>
-                       </currency>
-                       <currency type="ROL">
-                               <displayName references="RP9">ancien leu roumain</displayName>
-                               <displayName references="RP9" alt="proposed-u148-1" draft="unconfirmed">ancien leu</displayName>
-                       </currency>
-                       <currency type="RON">
-                               <displayName references="RP9">nouveau leu roumain</displayName>
-                               <displayName references="RP9" alt="proposed-u148-1" draft="unconfirmed">nouveau leu</displayName>
-                       </currency>
-                       <currency type="RUB">
-                               <displayName>rouble</displayName>
-                       </currency>
-                       <currency type="RUR">
-                               <displayName>rouble de Russie (1991-1998)</displayName>
-                       </currency>
-                       <currency type="RWF">
-                               <displayName references="RP9">franc rwandais</displayName>
-                       </currency>
-                       <currency type="SAR">
-                               <displayName references="RP2">rial saoudien</displayName>
-                       </currency>
-                       <currency type="SBD">
-                               <displayName references="RP9">dollar des Îles Salomon</displayName>
-                       </currency>
-                       <currency type="SCR">
-                               <displayName>roupie des Seychelles</displayName>
-                       </currency>
-                       <currency type="SDD">
-                               <displayName>dinar soudanais</displayName>
-                       </currency>
-                       <currency type="SDP">
-                               <displayName>livre soudanaise</displayName>
-                       </currency>
-                       <currency type="SEK">
-                               <displayName>couronne suédoise</displayName>
-                       </currency>
-                       <currency type="SGD">
-                               <displayName>dollar de Singapour</displayName>
-                       </currency>
-                       <currency type="SHP">
-                               <displayName>livre de Sainte-Hélène</displayName>
-                       </currency>
-                       <currency type="SIT">
-                               <displayName references="RP8">tolar</displayName>
-                       </currency>
-                       <currency type="SKK">
-                               <displayName>couronne slovaque</displayName>
-                       </currency>
-                       <currency type="SLL">
-                               <displayName>léone</displayName>
-                               <displayName references="RP8" alt="proposed-u169-1" draft="provisional">leone</displayName>
-                       </currency>
-                       <currency type="SOS">
-                               <displayName>shilling de Somalie</displayName>
-                       </currency>
-                       <currency type="SRD">
-                               <displayName references="RP9">dollar surinamais</displayName>
-                       </currency>
-                       <currency type="SRG">
-                               <displayName>florin du Surinam</displayName>
-                       </currency>
-                       <currency type="STD">
-                               <displayName>dobra</displayName>
-                       </currency>
-                       <currency type="SUR">
-                               <displayName>rouble de C.E.I.</displayName>
-                       </currency>
-                       <currency type="SVC">
-                               <displayName references="RP9">colon salvadorien</displayName>
-                       </currency>
-                       <currency type="SYP">
-                               <displayName>livre syrienne</displayName>
-                       </currency>
-                       <currency type="SZL">
-                               <displayName>lilangeni</displayName>
-                       </currency>
-                       <currency type="THB">
-                               <displayName>baht</displayName>
-                       </currency>
-                       <currency type="TJR">
-                               <displayName>rouble du Tadjikistan</displayName>
-                               <displayName references="RP2" alt="proposed-u169-1" draft="provisional">rouble tadjik</displayName>
-                       </currency>
-                       <currency type="TJS">
-                               <displayName>somoni du Tadjikistan</displayName>
-                               <displayName alt="proposed-u148-1" draft="unconfirmed">somoni tadjik</displayName>
-                               <displayName references="RP8" alt="proposed-u169-1" draft="provisional">somoni</displayName>
-                       </currency>
-                       <currency type="TMM">
-                               <displayName>Turkmenistan Manat</displayName>
-                               <displayName alt="proposed-u148-1" draft="unconfirmed">manat turkmène</displayName>
-                               <displayName references="RP8" alt="proposed-u169-1" draft="provisional">manat</displayName>
-                       </currency>
-                       <currency type="TND">
-                               <displayName>dinar tunisien</displayName>
-                       </currency>
-                       <currency type="TOP">
-                               <displayName>paʻanga</displayName>
-                       </currency>
-                       <currency type="TPE">
-                               <displayName>escudo de Timor</displayName>
-                       </currency>
-                       <currency type="TRL">
-                               <displayName>livre turque</displayName>
-                               <symbol>TL</symbol>
-                       </currency>
-                       <currency type="TRY">
-                               <displayName references="RP9">nouvelle livre turque</displayName>
-                       </currency>
-                       <currency type="TTD">
-                               <displayName>dollar de la Trinité</displayName>
-                               <displayName references="RP9" alt="proposed-u169-1" draft="provisional">dollar de Trinité-et-Tobago</displayName>
-                       </currency>
-                       <currency type="TWD">
-                               <displayName>dollar taïwanais</displayName>
-                               <displayName alt="proposed-u148-1" draft="unconfirmed">nouveau dollar taïwanais</displayName>
-                               <displayName references="RP8" alt="proposed-u169-1" draft="provisional">nouveau dollar de Taïwan</displayName>
-                       </currency>
-                       <currency type="TZS">
-                               <displayName>shilling de Tanzanie</displayName>
-                       </currency>
-                       <currency type="UAH">
-                               <displayName>hryvnia</displayName>
-                       </currency>
-                       <currency type="UAK">
-                               <displayName>karbovanetz</displayName>
-                       </currency>
-                       <currency type="UGS">
-                               <displayName>shilling ougandais (1966-1987)</displayName>
-                       </currency>
-                       <currency type="UGX">
-                               <displayName>shilling ougandais</displayName>
-                               <symbol>U Sh</symbol>
-                       </currency>
-                       <currency type="USD">
-                               <displayName>dollar des États-Unis</displayName>
-                       </currency>
-                       <currency type="USN">
-                               <displayName>dollar des Etats-Unis (jour suivant)</displayName>
-                       </currency>
-                       <currency type="USS">
-                               <displayName>dollar des Etats-Unis (jour même)</displayName>
-                       </currency>
-                       <currency type="UYP">
-                               <displayName>peso uruguayen (1975-1993)</displayName>
-                       </currency>
-                       <currency type="UYU">
-                               <displayName>peso uruguayen</displayName>
-                               <symbol>Ur$</symbol>
-                       </currency>
-                       <currency type="UZS">
-                               <displayName>sum</displayName>
-                       </currency>
-                       <currency type="VEB">
-                               <displayName>bolivar</displayName>
-                       </currency>
-                       <currency type="VND">
-                               <displayName>dong</displayName>
-                       </currency>
-                       <currency type="VUV">
-                               <displayName>vatu</displayName>
-                       </currency>
-                       <currency type="WST">
-                               <displayName>tala</displayName>
-                       </currency>
-                       <currency type="XAF">
-                               <displayName>franc CFA (BEAC)</displayName>
-                       </currency>
-                       <currency type="XAG">
-                               <displayName references="RP8">argent</displayName>
-                       </currency>
-                       <currency type="XAU">
-                               <displayName>or</displayName>
-                       </currency>
-                       <currency type="XBA">
-                               <displayName references="RP8">unité européenne composée</displayName>
-                       </currency>
-                       <currency type="XBB">
-                               <displayName>unité monétaire européenne</displayName>
-                       </currency>
-                       <currency type="XBC">
-                               <displayName>unité de compte européenne (XBC)</displayName>
-                               <displayName references="RP8" alt="proposed-u169-1" draft="provisional">unité de compte 9</displayName>
-                       </currency>
-                       <currency type="XBD">
-                               <displayName>unité de compte européenne (XBD)</displayName>
-                               <displayName references="RP8" alt="proposed-u169-1" draft="provisional">unité de compte 17</displayName>
-                       </currency>
-                       <currency type="XCD">
-                               <displayName references="RP8">dollar des Caraïbes orientales</displayName>
-                       </currency>
-                       <currency type="XDR">
-                               <displayName references="RP8">droit de tirage spécial</displayName>
-                       </currency>
-                       <currency type="XEU">
-                               <displayName>unité de compte européenne (ECU)</displayName>
-                       </currency>
-                       <currency type="XFO">
-                               <displayName>franc or</displayName>
-                       </currency>
-                       <currency type="XFU">
-                               <displayName>franc UIC</displayName>
-                       </currency>
-                       <currency type="XOF">
-                               <displayName>franc CFA (BCEAO)</displayName>
-                       </currency>
-                       <currency type="XPD">
-                               <displayName references="RP8">palladium</displayName>
-                       </currency>
-                       <currency type="XPF">
-                               <displayName>franc CFP</displayName>
-                       </currency>
-                       <currency type="XPT">
-                               <displayName>platine</displayName>
-                       </currency>
-                       <currency type="XRE">
-                               <displayName references="RP2">type de fonds RINET</displayName>
-                       </currency>
-                       <currency type="YDD">
-                               <displayName>dinar du Yémen</displayName>
-                       </currency>
-                       <currency type="YER">
-                               <displayName>riyal du Yémen</displayName>
-                       </currency>
-                       <currency type="YUD">
-                               <displayName>nouveau dinar yougoslave</displayName>
-                       </currency>
-                       <currency type="YUM">
-                               <displayName>dinar yougoslave Noviy</displayName>
-                       </currency>
-                       <currency type="YUN">
-                               <displayName>dinar yougoslave convertible</displayName>
-                       </currency>
-                       <currency type="ZAL">
-                               <displayName>rand sud-africain (financier)</displayName>
-                       </currency>
-                       <currency type="ZAR">
-                               <displayName>rand</displayName>
-                       </currency>
-                       <currency type="ZMK">
-                               <displayName>kwacha</displayName>
-                               <displayName alt="proposed-u148-1" draft="unconfirmed">kwacha zambien</displayName>
-                               <displayName references="RP2" alt="proposed-u169-1" draft="provisional">kwacha de Zambie</displayName>
-                       </currency>
-                       <currency type="ZRN">
-                               <displayName>nouveau zaïre</displayName>
-                       </currency>
-                       <currency type="ZRZ">
-                               <displayName>zaïre</displayName>
-                       </currency>
-                       <currency type="ZWD">
-                               <displayName>dollar du Zimbabwe</displayName>
-                               <symbol>Z$</symbol>
-                       </currency>
-               </currencies>
-       </numbers>
-       <posix>
-               <messages>
-                       <yesstr>oui:o</yesstr>
-                       <nostr>non:n</nostr>
-               </messages>
-       </posix>
-       <references>
-               <reference type="RP1" uri="http://www.loc.gov/standards/iso639-2/englangn.html">ISO 639.2 Standard</reference>
-               <reference type="RP1" alt="proposed-u148-1" draft="unconfirmed">ISO 639.2 - Codes pour la représentation des noms de langues</reference>
-               <reference type="RP10" uri="http://fr.wikipedia.org/wiki/Codes_des_monnaies">Codes des monnaies (ISO 4217) - Wikipedia</reference>
-               <reference type="RP11" uri="http://atlas.gc.ca/site/francais/maps/reference/national/timezones/map.pdf">Canadian Timezones</reference>
-               <reference type="RP11" alt="proposed-u148-1" draft="unconfirmed">Fuseaux horaires canadiens (sur atlas.gc.ca)</reference>
-               <reference type="RP12" uri="http://meta.wikimedia.org/wiki/List_of_Wikipedias">List of Wikipedias on Meta (Wikimedia.org)</reference>
-               <reference type="RP13" uri="http://www.tlfi.fr/">Le Trésor de la langue française informatisé (CDROM)</reference>
-               <reference type="RP2" uri="http://www.google.fr">Results of Google searches</reference>
-               <reference type="RP2" alt="proposed-u148-1" draft="unconfirmed">Résultats des recherches sur Google (édition française)</reference>
-               <reference type="RP3" uri="http://fr.wikipedia.org/wiki/Accueil">Entries/articles on Wikipedia (French version)</reference>
-               <reference type="RP3" alt="proposed-u148-2" draft="unconfirmed">Articles de Wikipédia (édition francophone)</reference>
-               <reference type="RP4" uri="CD-Rom">Le Robert &amp; Collins (bilingual dictionary French-English)</reference>
-               <reference type="RP5" uri="http://www.unicode.org/iso15924/iso15924-fr.html">ISO 15924 Strandard for Scripts names</reference>
-               <reference type="RP5" alt="proposed-u148-1" draft="unconfirmed">ISO 15924 - Liste alphabétique des noms d’écriture en français</reference>
-               <reference type="RP6" uri="http://www.iso.org/iso/fr/prods-services/iso3166ma/02iso-3166-code-lists/list-fr1.html">ISO 3166 Standard for Territories</reference>
-               <reference type="RP6" alt="proposed-u148-1" draft="unconfirmed">ISO 3166 - Listes de codes et noms de pays (French country names and code elements)</reference>
-               <reference type="RP7" uri="http://fr.wikipedia.org/wiki/ISO_3166-1">ISO 3166-1 Standard for Territories (from Wikipedia)</reference>
-               <reference type="RP7" alt="proposed-u148-1" draft="unconfirmed">ISO 3166-1 (article de Wikipédia, édition francophone)</reference>
-               <reference type="RP8" uri="http://www.iso.org/iso/fr/prods-services/popstds/currencycodeslist.html">ISO 4217 Standard for Currencies</reference>
-               <reference type="RP8" alt="proposed-u148-1" draft="unconfirmed">ISO 4217 - Liste des codes des monnaies et des types de fonds</reference>
-               <reference type="RP9" uri="http://www.geocities.com/jusjih/iso3166-fr.html">ISO 4217 Standard for Currencies (from Geocities)</reference>
-       </references>
-</ldml>
-<!-- Old Comments. See root.xml for more info.
-URL: http://oss.software.ibm.com/cvs/icu/icu/source/data/locales/fr.txt?only_with_tag=final-update-LDML
-
-AH = Anno Hijri  (in root)
-http://www.iso.org/iso/en/prods-services/iso3166ma/index.html
-        KP { "Cor\u00E9e du Nord" }    // alternate name { "Cor\u00E9e, R\u00E9publique populaire d\u00E9mocratique de" }
-        KR { "Cor\u00E9e du Sud" }    // alternate name { "Cor\u00E9e, R\u00E9publique de" }
-MD { "Moldavie" }
-TL { "Timor" }
-DIF { "DIF", "franc de Djibouti" } ( unconfirmed )
-XPS { "XPS", "livre sterling" }
-XSS { "XSS", "shilling sterling" }
-http://lcweb.loc.gov/standards/iso639-2/frenchlangn.html
-Fallback { "en" }
-        Qaai { "h\u00E9rit\u00E9" } // PUA
-Zyyy { "commun" } // This could be "\u00E9criture ind\u00E9termin\u00E9e"
-
-Comments without bases
-
- Kiribati       - was on: /ldml/dates/timeZoneNames/zone[@type="Pacific/Enderbury"]
- Marshall Islands       - was on: /ldml/dates/timeZoneNames/zone[@type="Pacific/Kwajalein"]
- Mali   - was on: /ldml/dates/timeZoneNames/zone[@type="Africa/Bamako"]
- Ecuador        - was on: /ldml/dates/timeZoneNames/zone[@type="Pacific/Galapagos"]
- Indonesia      - was on: /ldml/dates/timeZoneNames/zone[@type="Asia/Jakarta"]
- Russia         - was on: /ldml/dates/timeZoneNames/zone[@type="Europe/Kaliningrad"]
- United States          - was on: /ldml/dates/timeZoneNames/zone[@type="America/Adak"]
- Brazil         - was on: /ldml/dates/timeZoneNames/zone[@type="America/Eirunepe"]
- Antarctica     - was on: /ldml/dates/timeZoneNames/zone[@type="Antarctica/Rothera"]
- Malaysia       - was on: /ldml/dates/timeZoneNames/zone[@type="Asia/Kuala_Lumpur"]
- Canada         - was on: /ldml/dates/timeZoneNames/zone[@type="America/Dawson"]
- Micronesia     - was on: /ldml/dates/timeZoneNames/zone[@type="Pacific/Yap"]
- Argentina      - was on: /ldml/dates/timeZoneNames/zone[@type="America/Argentina/Rio_Gallegos"]
- United States Minor Outlying Islands   - was on: /ldml/dates/timeZoneNames/zone[@type="Pacific/Midway"]
- Mexico         - was on: /ldml/dates/timeZoneNames/zone[@type="America/Tijuana"]
- Democratic Republic of the Congo       - was on: /ldml/dates/timeZoneNames/zone[@type="Africa/Kinshasa"]
- United Kingdom         - was on: /ldml/dates/timeZoneNames/zone[@type="Europe/Belfast"]
- French Polynesia       - was on: /ldml/dates/timeZoneNames/zone[@type="Pacific/Tahiti"]
- New Zealand    - was on: /ldml/dates/timeZoneNames/zone[@type="Pacific/Chatham"]
- Greenland      - was on: /ldml/dates/timeZoneNames/zone[@type="America/Thule"]
- Mongolia       - was on: /ldml/dates/timeZoneNames/zone[@type="Asia/Hovd"]
- Uzbekistan     - was on: /ldml/dates/timeZoneNames/zone[@type="Asia/Samarkand"]
- Svalbard and Jan Mayen         - was on: /ldml/dates/timeZoneNames/zone[@type="Atlantic/Jan_Mayen"]
- Australia      - was on: /ldml/dates/timeZoneNames/zone[@type="Australia/Perth"]
--->
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/fr_FR.xml b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/locale/fr_FR.xml
deleted file mode 100644 (file)
index 3500f24..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE ldml SYSTEM "http://www.unicode.org/cldr/data/dtd/ldml.dtd">
-<ldml>
-       <identity>
-               <version number="$Revision: 1.37 $"/>
-               <generation date="$Date: 2006/12/08 16:29:37 $"/>
-               <language type="fr"/>
-               <territory type="FR"/>
-       </identity>
-</ldml>
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/actions/help-contents.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/actions/help-contents.png
deleted file mode 100644 (file)
index 467f3cf..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/actions/help-contents.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/actions/system-search.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/actions/system-search.png
deleted file mode 100644 (file)
index 6177793..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/actions/system-search.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-alarm.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-alarm.png
deleted file mode 100644 (file)
index 2c38dd9..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-alarm.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-archiver.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-archiver.png
deleted file mode 100644 (file)
index 9b1bc8b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-archiver.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-clipboard.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-clipboard.png
deleted file mode 100644 (file)
index 879530d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-clipboard.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-dictionary.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-dictionary.png
deleted file mode 100644 (file)
index 60a698d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-dictionary.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-disk-usage.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-disk-usage.png
deleted file mode 100644 (file)
index 0835177..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-disk-usage.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-floppy.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-floppy.png
deleted file mode 100644 (file)
index f9ca3ea..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-floppy.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-magnifier.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-magnifier.png
deleted file mode 100644 (file)
index 75c7c72..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-magnifier.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-notes.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-notes.png
deleted file mode 100644 (file)
index 31e01eb..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-notes.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-terminal.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-terminal.png
deleted file mode 100644 (file)
index 0741bed..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-terminal.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-text-editor.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-text-editor.png
deleted file mode 100644 (file)
index 3ccd905..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-text-editor.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-time-tracking.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-time-tracking.png
deleted file mode 100644 (file)
index 4efad1b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-time-tracking.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-timer.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-timer.png
deleted file mode 100644 (file)
index 9c0ac3a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/accessories-timer.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/help-browser.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/help-browser.png
deleted file mode 100644 (file)
index c767aaf..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/help-browser.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/internet-download-manager.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/internet-download-manager.png
deleted file mode 100644 (file)
index b3fbdec..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/internet-download-manager.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/multimedia-movie-player.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/multimedia-movie-player.png
deleted file mode 100644 (file)
index 7db093a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/multimedia-movie-player.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/office-adobe-reader.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/office-adobe-reader.png
deleted file mode 100644 (file)
index f67c5d6..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/office-adobe-reader.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/office-organizer.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/office-organizer.png
deleted file mode 100644 (file)
index 36de4af..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/office-organizer.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/office-pim.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/office-pim.png
deleted file mode 100644 (file)
index b74f354..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/office-pim.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/preferences-desktop-font.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/preferences-desktop-font.png
deleted file mode 100644 (file)
index efbd423..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/preferences-desktop-font.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/preferences-desktop-multimedia.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/preferences-desktop-multimedia.png
deleted file mode 100644 (file)
index 564d1f8..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/preferences-desktop-multimedia.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/preferences-desktop-theme.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/preferences-desktop-theme.png
deleted file mode 100644 (file)
index 934a41b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/preferences-desktop-theme.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/system-file-manager.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/system-file-manager.png
deleted file mode 100644 (file)
index 67ca19f..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/system-file-manager.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/utilities-terminal.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/utilities-terminal.png
deleted file mode 100644 (file)
index a8ff70e..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/apps/utilities-terminal.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications-games.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications-games.png
deleted file mode 100644 (file)
index 206ef5b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications-games.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications-graphics.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications-graphics.png
deleted file mode 100644 (file)
index 516e3d5..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications-graphics.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications-internet.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications-internet.png
deleted file mode 100644 (file)
index 99d1fed..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications-internet.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications-multimedia.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications-multimedia.png
deleted file mode 100644 (file)
index 3d30da2..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications-multimedia.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications-office.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications-office.png
deleted file mode 100644 (file)
index 90d2d8f..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications-office.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications-utilities.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications-utilities.png
deleted file mode 100644 (file)
index 097983e..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications-utilities.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications.png
deleted file mode 100644 (file)
index 9ded07f..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/applications.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/preferences.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/preferences.png
deleted file mode 100644 (file)
index 8924ca1..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/preferences.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/system-help.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/system-help.png
deleted file mode 100644 (file)
index 467f3cf..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/categories/system-help.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/camera-photo.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/camera-photo.png
deleted file mode 100644 (file)
index b98eb0b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/camera-photo.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/camera-video.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/camera-video.png
deleted file mode 100644 (file)
index b98eb0b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/camera-video.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/drive-harddisk.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/drive-harddisk.png
deleted file mode 100644 (file)
index 1fb21b4..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/drive-harddisk.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/drive-optical.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/drive-optical.png
deleted file mode 100644 (file)
index 018a47e..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/drive-optical.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/drive-removable-media.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/drive-removable-media.png
deleted file mode 100644 (file)
index bdc54a7..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/drive-removable-media.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/input-mouse.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/input-mouse.png
deleted file mode 100644 (file)
index 2708fbc..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/input-mouse.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/media-flash.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/media-flash.png
deleted file mode 100644 (file)
index bdc54a7..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/media-flash.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/media-floppy.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/media-floppy.png
deleted file mode 100644 (file)
index 3918232..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/media-floppy.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/media-optical.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/media-optical.png
deleted file mode 100644 (file)
index caa027b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/media-optical.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/network-wired.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/network-wired.png
deleted file mode 100644 (file)
index 5bdc3b1..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/network-wired.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/network-wireless.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/network-wireless.png
deleted file mode 100644 (file)
index 5bdc3b1..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/network-wireless.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/printer.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/printer.png
deleted file mode 100644 (file)
index 53f5c02..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/printer.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/scanner.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/scanner.png
deleted file mode 100644 (file)
index 9832997..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/scanner.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/usb.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/usb.png
deleted file mode 100644 (file)
index 687ff5a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/usb.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/video-display.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/video-display.png
deleted file mode 100644 (file)
index 710a947..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/devices/video-display.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/application-pdf.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/application-pdf.png
deleted file mode 100644 (file)
index 6fcc0cf..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/application-pdf.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/application-quicktime.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/application-quicktime.png
deleted file mode 100644 (file)
index 619ecc3..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/application-quicktime.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/application-x-executable.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/application-x-executable.png
deleted file mode 100644 (file)
index 02cea51..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/application-x-executable.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/audio-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/audio-x-generic.png
deleted file mode 100644 (file)
index 2a567b1..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/audio-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/empty-x-locked.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/empty-x-locked.png
deleted file mode 100644 (file)
index d9e515e..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/empty-x-locked.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/empty-x-temporary.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/empty-x-temporary.png
deleted file mode 100644 (file)
index 2af1626..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/empty-x-temporary.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/image-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/image-x-generic.png
deleted file mode 100644 (file)
index 120072d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/image-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/package-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/package-x-generic.png
deleted file mode 100644 (file)
index c31476e..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/package-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/text-ascii.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/text-ascii.png
deleted file mode 100644 (file)
index 66e2f9c..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/text-ascii.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/text-html.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/text-html.png
deleted file mode 100644 (file)
index bec7479..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/text-html.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/text-x-generic-template.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/text-x-generic-template.png
deleted file mode 100644 (file)
index a9db744..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/text-x-generic-template.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/text-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/text-x-generic.png
deleted file mode 100644 (file)
index a9db744..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/text-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/text-x-script.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/text-x-script.png
deleted file mode 100644 (file)
index e635af7..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/text-x-script.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/unknown-x-temporary.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/unknown-x-temporary.png
deleted file mode 100644 (file)
index eca5fc4..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/unknown-x-temporary.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/video-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/video-x-generic.png
deleted file mode 100644 (file)
index 208bea5..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/video-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/x-office-calendar.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/x-office-calendar.png
deleted file mode 100644 (file)
index fcfb27c..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/x-office-calendar.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/x-office-spreadsheet.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/x-office-spreadsheet.png
deleted file mode 100644 (file)
index 771744a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/mimetypes/x-office-spreadsheet.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/archive-folder.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/archive-folder.png
deleted file mode 100644 (file)
index 28b69e5..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/archive-folder.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/document-folder.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/document-folder.png
deleted file mode 100644 (file)
index f124c84..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/document-folder.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/folder-remote.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/folder-remote.png
deleted file mode 100644 (file)
index ce82b77..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/folder-remote.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/html-folder.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/html-folder.png
deleted file mode 100644 (file)
index 44e1924..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/html-folder.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/network-server.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/network-server.png
deleted file mode 100644 (file)
index 4961ac2..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/network-server.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/network-workgroup.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/network-workgroup.png
deleted file mode 100644 (file)
index b0eec5d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/network-workgroup.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/user-trash-empty.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/user-trash-empty.png
deleted file mode 100644 (file)
index 7c5085f..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/user-trash-empty.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/user-trash-full.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/user-trash-full.png
deleted file mode 100644 (file)
index a0545dc..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/user-trash-full.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/user-trash.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/user-trash.png
deleted file mode 100644 (file)
index 7c5085f..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/user-trash.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/www.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/www.png
deleted file mode 100644 (file)
index 134261b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/128/places/www.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/alarm.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/alarm.png
deleted file mode 100644 (file)
index f81357e..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/alarm.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/application-exit.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/application-exit.png
deleted file mode 100644 (file)
index 6323241..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/application-exit.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/dialog-finish.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/dialog-finish.png
deleted file mode 100644 (file)
index d9947ec..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/dialog-finish.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/document-close.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/document-close.png
deleted file mode 100644 (file)
index 3bf5029..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/document-close.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/document-export.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/document-export.png
deleted file mode 100644 (file)
index c646254..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/document-export.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/document-print-quick.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/document-print-quick.png
deleted file mode 100644 (file)
index 6395934..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/document-print-quick.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/document-revert.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/document-revert.png
deleted file mode 100644 (file)
index f866ba1..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/document-revert.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/document-save-all.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/document-save-all.png
deleted file mode 100644 (file)
index 9d47a67..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/document-save-all.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/edit-add.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/edit-add.png
deleted file mode 100644 (file)
index e948508..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/edit-add.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/edit-undo.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/edit-undo.png
deleted file mode 100644 (file)
index 6129fa0..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/edit-undo.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/favorite-add.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/favorite-add.png
deleted file mode 100644 (file)
index 452da8d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/favorite-add.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/folder-new.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/folder-new.png
deleted file mode 100644 (file)
index 8109ed8..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/folder-new.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/go-bottom.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/go-bottom.png
deleted file mode 100644 (file)
index a762db3..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/go-bottom.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/go-top.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/go-top.png
deleted file mode 100644 (file)
index 3de9a44..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/go-top.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/help-contents.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/help-contents.png
deleted file mode 100644 (file)
index 5174045..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/help-contents.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/history-clear.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/history-clear.png
deleted file mode 100644 (file)
index 12bf37b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/history-clear.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/identity.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/identity.png
deleted file mode 100644 (file)
index 5e51272..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/identity.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-eject.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-eject.png
deleted file mode 100644 (file)
index 6574ac2..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-eject.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-playback-pause.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-playback-pause.png
deleted file mode 100644 (file)
index 99f4397..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-playback-pause.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-playback-start.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-playback-start.png
deleted file mode 100644 (file)
index 5ca372a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-playback-start.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-playback-stop.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-playback-stop.png
deleted file mode 100644 (file)
index d51735e..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-playback-stop.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-seek-backward.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-seek-backward.png
deleted file mode 100644 (file)
index 33b7979..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-seek-backward.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-seek-forward.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-seek-forward.png
deleted file mode 100644 (file)
index e0c4ba5..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-seek-forward.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-skip-backward.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-skip-backward.png
deleted file mode 100644 (file)
index d8f8b1f..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-skip-backward.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-skip-forward.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-skip-forward.png
deleted file mode 100644 (file)
index 56ada0f..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/media-skip-forward.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/start.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/start.png
deleted file mode 100644 (file)
index 67f8a37..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/start.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/system-lock-screen.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/system-lock-screen.png
deleted file mode 100644 (file)
index ed4914a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/system-lock-screen.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/system-search.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/system-search.png
deleted file mode 100644 (file)
index 284a344..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/system-search.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/view-pane-column.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/view-pane-column.png
deleted file mode 100644 (file)
index 083052d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/view-pane-column.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/view-pane-detailed.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/view-pane-detailed.png
deleted file mode 100644 (file)
index 89feaeb..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/view-pane-detailed.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/view-pane-icon.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/view-pane-icon.png
deleted file mode 100644 (file)
index be9effb..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/view-pane-icon.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/view-pane-remove.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/view-pane-remove.png
deleted file mode 100644 (file)
index 2253ae8..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/view-pane-remove.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/view-pane-text.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/view-pane-text.png
deleted file mode 100644 (file)
index c688d5f..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/view-pane-text.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/view-pane-tree.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/view-pane-tree.png
deleted file mode 100644 (file)
index 4c23c9a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/view-pane-tree.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/window-new.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/window-new.png
deleted file mode 100644 (file)
index 74d36bd..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/window-new.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/zoom-best-fit.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/zoom-best-fit.png
deleted file mode 100644 (file)
index fa590fb..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/zoom-best-fit.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/zoom-in.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/zoom-in.png
deleted file mode 100644 (file)
index f10b2ec..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/zoom-in.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/zoom-original.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/zoom-original.png
deleted file mode 100644 (file)
index 41b0d86..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/zoom-original.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/zoom-out.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/zoom-out.png
deleted file mode 100644 (file)
index f276ad5..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/zoom-out.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/zoom.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/zoom.png
deleted file mode 100644 (file)
index 6dd1931..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/actions/zoom.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-alarm.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-alarm.png
deleted file mode 100644 (file)
index fa1751a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-alarm.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-archiver.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-archiver.png
deleted file mode 100644 (file)
index e2b67dc..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-archiver.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-calculator.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-calculator.png
deleted file mode 100644 (file)
index 905db5c..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-calculator.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-clipboard.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-clipboard.png
deleted file mode 100644 (file)
index a2c0cfb..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-clipboard.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-dictionary.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-dictionary.png
deleted file mode 100644 (file)
index 2bfe4d8..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-dictionary.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-disk-usage.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-disk-usage.png
deleted file mode 100644 (file)
index 18e10cd..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-disk-usage.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-floppy.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-floppy.png
deleted file mode 100644 (file)
index f0a0524..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-floppy.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-magnifier.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-magnifier.png
deleted file mode 100644 (file)
index 02b3a5d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-magnifier.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-notes.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-notes.png
deleted file mode 100644 (file)
index 1e27e9c..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-notes.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-terminal.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-terminal.png
deleted file mode 100644 (file)
index b1366b1..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-terminal.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-text-editor.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-text-editor.png
deleted file mode 100644 (file)
index 61fc4e9..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-text-editor.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-time-tracking.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-time-tracking.png
deleted file mode 100644 (file)
index cba8248..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-time-tracking.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-timer.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-timer.png
deleted file mode 100644 (file)
index 0323fb1..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/accessories-timer.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/help-browser.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/help-browser.png
deleted file mode 100644 (file)
index 096b00c..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/help-browser.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/internet-download-manager.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/internet-download-manager.png
deleted file mode 100644 (file)
index 0bd2ab2..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/internet-download-manager.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/multimedia-movie-player.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/multimedia-movie-player.png
deleted file mode 100644 (file)
index e616061..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/multimedia-movie-player.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/office-adobe-reader.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/office-adobe-reader.png
deleted file mode 100644 (file)
index b50f4a7..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/office-adobe-reader.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/office-organizer.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/office-organizer.png
deleted file mode 100644 (file)
index 6c86544..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/office-organizer.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/office-pim.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/office-pim.png
deleted file mode 100644 (file)
index e4c5cdc..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/office-pim.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/preferences-desktop-font.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/preferences-desktop-font.png
deleted file mode 100644 (file)
index f45dae6..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/preferences-desktop-font.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/preferences-desktop-multimedia.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/preferences-desktop-multimedia.png
deleted file mode 100644 (file)
index 740cbd3..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/preferences-desktop-multimedia.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/preferences-desktop-theme.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/preferences-desktop-theme.png
deleted file mode 100644 (file)
index ced431a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/preferences-desktop-theme.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/system-file-manager.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/system-file-manager.png
deleted file mode 100644 (file)
index df01df2..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/system-file-manager.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/utilities-terminal.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/utilities-terminal.png
deleted file mode 100644 (file)
index 75ce701..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/apps/utilities-terminal.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-development.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-development.png
deleted file mode 100644 (file)
index df1fb74..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-development.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-games.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-games.png
deleted file mode 100644 (file)
index 4b78616..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-games.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-graphics.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-graphics.png
deleted file mode 100644 (file)
index 2382100..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-graphics.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-internet.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-internet.png
deleted file mode 100644 (file)
index 03ef9a5..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-internet.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-multimedia.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-multimedia.png
deleted file mode 100644 (file)
index 0bea4d8..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-multimedia.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-office.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-office.png
deleted file mode 100644 (file)
index 8a61aa0..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-office.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-system.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-system.png
deleted file mode 100644 (file)
index 7a750b9..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-system.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-utilities.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-utilities.png
deleted file mode 100644 (file)
index 0ec53c9..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications-utilities.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications.png
deleted file mode 100644 (file)
index ba4fb07..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/applications.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/preferences-system.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/preferences-system.png
deleted file mode 100644 (file)
index 7a750b9..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/preferences-system.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/preferences.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/preferences.png
deleted file mode 100644 (file)
index 8d8bd6f..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/preferences.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/system-help.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/system-help.png
deleted file mode 100644 (file)
index 5174045..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/categories/system-help.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/camera-photo.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/camera-photo.png
deleted file mode 100644 (file)
index 45d1436..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/camera-photo.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/camera-video.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/camera-video.png
deleted file mode 100644 (file)
index 45d1436..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/camera-video.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/drive-harddisk.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/drive-harddisk.png
deleted file mode 100644 (file)
index f570c51..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/drive-harddisk.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/drive-optical.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/drive-optical.png
deleted file mode 100644 (file)
index 49bea60..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/drive-optical.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/drive-removable-media.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/drive-removable-media.png
deleted file mode 100644 (file)
index eaafc2b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/drive-removable-media.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/input-mouse.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/input-mouse.png
deleted file mode 100644 (file)
index e8d2b45..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/input-mouse.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/media-flash.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/media-flash.png
deleted file mode 100644 (file)
index eaafc2b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/media-flash.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/media-floppy.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/media-floppy.png
deleted file mode 100644 (file)
index 68a4eab..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/media-floppy.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/media-optical.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/media-optical.png
deleted file mode 100644 (file)
index e2e3f67..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/media-optical.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/network-wired.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/network-wired.png
deleted file mode 100644 (file)
index f6a8dd5..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/network-wired.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/network-wireless.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/network-wireless.png
deleted file mode 100644 (file)
index f6a8dd5..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/network-wireless.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/printer.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/printer.png
deleted file mode 100644 (file)
index e22118c..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/printer.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/scanner.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/scanner.png
deleted file mode 100644 (file)
index fa0f83d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/scanner.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/usb.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/usb.png
deleted file mode 100644 (file)
index c778199..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/usb.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/video-display.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/video-display.png
deleted file mode 100644 (file)
index ffcc835..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/devices/video-display.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/application-pdf.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/application-pdf.png
deleted file mode 100644 (file)
index f4863cb..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/application-pdf.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/application-quicktime.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/application-quicktime.png
deleted file mode 100644 (file)
index f0bc57a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/application-quicktime.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/application-x-executable.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/application-x-executable.png
deleted file mode 100644 (file)
index 3f4def6..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/application-x-executable.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/audio-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/audio-x-generic.png
deleted file mode 100644 (file)
index 7f4d973..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/audio-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/empty-x-encrypted.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/empty-x-encrypted.png
deleted file mode 100644 (file)
index 8035712..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/empty-x-encrypted.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/empty-x-locked.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/empty-x-locked.png
deleted file mode 100644 (file)
index 24a8599..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/empty-x-locked.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/empty-x-temporary.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/empty-x-temporary.png
deleted file mode 100644 (file)
index fea2469..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/empty-x-temporary.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/image-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/image-x-generic.png
deleted file mode 100644 (file)
index 246a66c..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/image-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/package-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/package-x-generic.png
deleted file mode 100644 (file)
index 4a9fe17..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/package-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/text-ascii.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/text-ascii.png
deleted file mode 100644 (file)
index 8e771b7..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/text-ascii.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/text-html.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/text-html.png
deleted file mode 100644 (file)
index f56567f..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/text-html.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/text-x-generic-template.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/text-x-generic-template.png
deleted file mode 100644 (file)
index 3c3b4b0..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/text-x-generic-template.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/text-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/text-x-generic.png
deleted file mode 100644 (file)
index 3c3b4b0..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/text-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/text-x-script.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/text-x-script.png
deleted file mode 100644 (file)
index a2b8d2e..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/text-x-script.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/unknown-x-temporary.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/unknown-x-temporary.png
deleted file mode 100644 (file)
index 55ace49..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/unknown-x-temporary.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/video-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/video-x-generic.png
deleted file mode 100644 (file)
index dd51e90..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/video-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/x-office-calendar.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/x-office-calendar.png
deleted file mode 100644 (file)
index 9769146..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/x-office-calendar.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/x-office-spreadsheet.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/x-office-spreadsheet.png
deleted file mode 100644 (file)
index f7fa7b9..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/mimetypes/x-office-spreadsheet.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/archive-folder.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/archive-folder.png
deleted file mode 100644 (file)
index 2effa39..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/archive-folder.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/document-folder.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/document-folder.png
deleted file mode 100644 (file)
index 77ffd13..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/document-folder.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/favorite-folder.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/favorite-folder.png
deleted file mode 100644 (file)
index f0dc74a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/favorite-folder.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/folder-remote.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/folder-remote.png
deleted file mode 100644 (file)
index e8370f1..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/folder-remote.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/html-folder.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/html-folder.png
deleted file mode 100644 (file)
index 9eab023..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/html-folder.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/network-server.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/network-server.png
deleted file mode 100644 (file)
index dd5ba69..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/network-server.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/network-workgroup.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/network-workgroup.png
deleted file mode 100644 (file)
index f261e77..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/network-workgroup.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/user-trash-empty.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/user-trash-empty.png
deleted file mode 100644 (file)
index 1e9b810..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/user-trash-empty.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/user-trash-full.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/user-trash-full.png
deleted file mode 100644 (file)
index aa9d732..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/user-trash-full.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/user-trash.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/user-trash.png
deleted file mode 100644 (file)
index 1e9b810..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/user-trash.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/www.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/www.png
deleted file mode 100644 (file)
index 2d32c04..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/16/places/www.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/alarm.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/alarm.png
deleted file mode 100644 (file)
index 5da3da4..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/alarm.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/application-exit.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/application-exit.png
deleted file mode 100644 (file)
index 78a43ef..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/application-exit.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/dialog-finish.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/dialog-finish.png
deleted file mode 100644 (file)
index 82f3e71..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/dialog-finish.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/document-close.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/document-close.png
deleted file mode 100644 (file)
index d5abac8..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/document-close.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/document-export.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/document-export.png
deleted file mode 100644 (file)
index 83ae1ad..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/document-export.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/document-print-quick.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/document-print-quick.png
deleted file mode 100644 (file)
index c1a0894..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/document-print-quick.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/document-revert.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/document-revert.png
deleted file mode 100644 (file)
index 1c42494..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/document-revert.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/document-save-all.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/document-save-all.png
deleted file mode 100644 (file)
index ceb2cbf..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/document-save-all.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/edit-add.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/edit-add.png
deleted file mode 100644 (file)
index e2823ba..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/edit-add.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/edit-undo.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/edit-undo.png
deleted file mode 100644 (file)
index a1021b6..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/edit-undo.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/favorite-add.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/favorite-add.png
deleted file mode 100644 (file)
index 1b0dbda..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/favorite-add.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/folder-new.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/folder-new.png
deleted file mode 100644 (file)
index 4f61af7..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/folder-new.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-eject.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-eject.png
deleted file mode 100644 (file)
index 5233d98..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-eject.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-playback-pause.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-playback-pause.png
deleted file mode 100644 (file)
index 9669c90..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-playback-pause.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-playback-start.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-playback-start.png
deleted file mode 100644 (file)
index b41fa2b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-playback-start.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-playback-stop.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-playback-stop.png
deleted file mode 100644 (file)
index 682c322..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-playback-stop.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-seek-backward.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-seek-backward.png
deleted file mode 100644 (file)
index f6044ac..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-seek-backward.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-seek-forward.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-seek-forward.png
deleted file mode 100644 (file)
index f09ae8a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-seek-forward.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-skip-backward.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-skip-backward.png
deleted file mode 100644 (file)
index 5439dce..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-skip-backward.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-skip-forward.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-skip-forward.png
deleted file mode 100644 (file)
index 179509c..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/media-skip-forward.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/start.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/start.png
deleted file mode 100644 (file)
index 899f02e..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/start.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/system-lock-screen.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/system-lock-screen.png
deleted file mode 100644 (file)
index 7183202..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/system-lock-screen.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/system-search.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/system-search.png
deleted file mode 100644 (file)
index a7bff66..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/system-search.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/view-pane-column.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/view-pane-column.png
deleted file mode 100644 (file)
index b965f8d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/view-pane-column.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/view-pane-detailed.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/view-pane-detailed.png
deleted file mode 100644 (file)
index eea5649..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/view-pane-detailed.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/view-pane-icon.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/view-pane-icon.png
deleted file mode 100644 (file)
index aa6dea5..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/view-pane-icon.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/view-pane-remove.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/view-pane-remove.png
deleted file mode 100644 (file)
index 0e50c69..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/view-pane-remove.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/view-pane-text.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/view-pane-text.png
deleted file mode 100644 (file)
index c271063..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/view-pane-text.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/view-pane-tree.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/view-pane-tree.png
deleted file mode 100644 (file)
index 888a879..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/view-pane-tree.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/window-new.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/window-new.png
deleted file mode 100644 (file)
index a5e148d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/window-new.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/zoom-best-fit.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/zoom-best-fit.png
deleted file mode 100644 (file)
index 7d8ff85..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/zoom-best-fit.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/zoom-in.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/zoom-in.png
deleted file mode 100644 (file)
index 22c31ac..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/zoom-in.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/zoom-original.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/zoom-original.png
deleted file mode 100644 (file)
index ff1292f..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/zoom-original.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/zoom-out.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/zoom-out.png
deleted file mode 100644 (file)
index 911a5c0..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/zoom-out.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/zoom.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/zoom.png
deleted file mode 100644 (file)
index e845f6d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/actions/zoom.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-alarm.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-alarm.png
deleted file mode 100644 (file)
index 8ee2055..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-alarm.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-archiver.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-archiver.png
deleted file mode 100644 (file)
index 9135297..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-archiver.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-dictionary.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-dictionary.png
deleted file mode 100644 (file)
index 4037e12..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-dictionary.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-floppy.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-floppy.png
deleted file mode 100644 (file)
index fef0236..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-floppy.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-terminal.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-terminal.png
deleted file mode 100644 (file)
index 1fde442..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-terminal.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-text-editor.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-text-editor.png
deleted file mode 100644 (file)
index 9af6381..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-text-editor.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-time-tracking.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-time-tracking.png
deleted file mode 100644 (file)
index e6d4f18..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/accessories-time-tracking.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/help-browser.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/help-browser.png
deleted file mode 100644 (file)
index 37cdb27..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/help-browser.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/internet-download-manager.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/internet-download-manager.png
deleted file mode 100644 (file)
index 39fe16a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/internet-download-manager.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/office-adobe-reader.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/office-adobe-reader.png
deleted file mode 100644 (file)
index 1ba5a7f..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/office-adobe-reader.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/office-pim.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/office-pim.png
deleted file mode 100644 (file)
index f442448..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/office-pim.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/preferences-desktop-multimedia.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/preferences-desktop-multimedia.png
deleted file mode 100644 (file)
index dfe9bdb..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/preferences-desktop-multimedia.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/preferences-desktop-theme.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/preferences-desktop-theme.png
deleted file mode 100644 (file)
index 2a5f734..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/preferences-desktop-theme.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/system-file-manager.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/system-file-manager.png
deleted file mode 100644 (file)
index ef619d3..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/system-file-manager.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/utilities-terminal.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/utilities-terminal.png
deleted file mode 100644 (file)
index 1c4ca34..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/apps/utilities-terminal.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/applications-graphics.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/applications-graphics.png
deleted file mode 100644 (file)
index 246ce9e..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/applications-graphics.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/applications-internet.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/applications-internet.png
deleted file mode 100644 (file)
index 88d8e31..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/applications-internet.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/applications-multimedia.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/applications-multimedia.png
deleted file mode 100644 (file)
index 6c6d9e0..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/applications-multimedia.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/applications-office.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/applications-office.png
deleted file mode 100644 (file)
index 080dad3..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/applications-office.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/applications-utilities.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/applications-utilities.png
deleted file mode 100644 (file)
index 08d5366..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/applications-utilities.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/preferences.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/preferences.png
deleted file mode 100644 (file)
index d201e91..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/categories/preferences.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/camera-photo.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/camera-photo.png
deleted file mode 100644 (file)
index d9aaad7..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/camera-photo.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/camera-video.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/camera-video.png
deleted file mode 100644 (file)
index d9aaad7..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/camera-video.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/drive-harddisk.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/drive-harddisk.png
deleted file mode 100644 (file)
index 74fe0c7..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/drive-harddisk.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/drive-optical.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/drive-optical.png
deleted file mode 100644 (file)
index 35d52e8..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/drive-optical.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/drive-removable-media.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/drive-removable-media.png
deleted file mode 100644 (file)
index b48b553..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/drive-removable-media.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/input-mouse.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/input-mouse.png
deleted file mode 100644 (file)
index b058538..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/input-mouse.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/media-flash.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/media-flash.png
deleted file mode 100644 (file)
index b48b553..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/media-flash.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/media-floppy.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/media-floppy.png
deleted file mode 100644 (file)
index dc46878..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/media-floppy.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/media-optical.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/media-optical.png
deleted file mode 100644 (file)
index 2a7b970..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/media-optical.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/network-wired.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/network-wired.png
deleted file mode 100644 (file)
index 1405ee6..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/network-wired.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/network-wireless.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/network-wireless.png
deleted file mode 100644 (file)
index 1405ee6..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/network-wireless.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/scanner.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/scanner.png
deleted file mode 100644 (file)
index af1506e..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/scanner.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/usb.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/usb.png
deleted file mode 100644 (file)
index 2fee680..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/usb.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/video-display.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/video-display.png
deleted file mode 100644 (file)
index fd50b07..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/devices/video-display.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/application-pdf.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/application-pdf.png
deleted file mode 100644 (file)
index 30cf778..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/application-pdf.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/application-quicktime.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/application-quicktime.png
deleted file mode 100644 (file)
index d98c59d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/application-quicktime.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/application-x-executable.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/application-x-executable.png
deleted file mode 100644 (file)
index 984d511..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/application-x-executable.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/audio-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/audio-x-generic.png
deleted file mode 100644 (file)
index fcba408..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/audio-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/empty-x-encrypted.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/empty-x-encrypted.png
deleted file mode 100644 (file)
index b25238e..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/empty-x-encrypted.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/empty-x-temporary.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/empty-x-temporary.png
deleted file mode 100644 (file)
index dd5354d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/empty-x-temporary.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/image-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/image-x-generic.png
deleted file mode 100644 (file)
index 26f4688..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/image-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/package-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/package-x-generic.png
deleted file mode 100644 (file)
index 6e962c0..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/package-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/text-ascii.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/text-ascii.png
deleted file mode 100644 (file)
index 70f412a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/text-ascii.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/text-html.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/text-html.png
deleted file mode 100644 (file)
index 8766e83..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/text-html.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/text-x-generic-template.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/text-x-generic-template.png
deleted file mode 100644 (file)
index 263e619..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/text-x-generic-template.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/text-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/text-x-generic.png
deleted file mode 100644 (file)
index 263e619..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/text-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/text-x-script.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/text-x-script.png
deleted file mode 100644 (file)
index 552eeae..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/text-x-script.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/unknown-x-temporary.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/unknown-x-temporary.png
deleted file mode 100644 (file)
index bcbf0b4..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/unknown-x-temporary.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/video-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/video-x-generic.png
deleted file mode 100644 (file)
index 37c4b60..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/video-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/x-office-calendar.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/x-office-calendar.png
deleted file mode 100644 (file)
index a8a0666..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/x-office-calendar.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/x-office-spreadsheet.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/x-office-spreadsheet.png
deleted file mode 100644 (file)
index adbbc4c..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/mimetypes/x-office-spreadsheet.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/archive-folder.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/archive-folder.png
deleted file mode 100644 (file)
index 3869ee7..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/archive-folder.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/document-folder.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/document-folder.png
deleted file mode 100644 (file)
index f590068..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/document-folder.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/favorite-folder.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/favorite-folder.png
deleted file mode 100644 (file)
index b2273da..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/favorite-folder.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/folder-remote.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/folder-remote.png
deleted file mode 100644 (file)
index ee49d7b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/folder-remote.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/html-folder.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/html-folder.png
deleted file mode 100644 (file)
index bbb3684..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/html-folder.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/network-server.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/network-server.png
deleted file mode 100644 (file)
index 1929fe1..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/network-server.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/network-workgroup.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/network-workgroup.png
deleted file mode 100644 (file)
index 3c57029..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/network-workgroup.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/user-trash-empty.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/user-trash-empty.png
deleted file mode 100644 (file)
index 2b48848..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/user-trash-empty.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/user-trash-full.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/user-trash-full.png
deleted file mode 100644 (file)
index 56d90a4..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/user-trash-full.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/user-trash.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/user-trash.png
deleted file mode 100644 (file)
index 2b48848..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/user-trash.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/www.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/www.png
deleted file mode 100644 (file)
index 9cb3a2b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/22/places/www.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/application-exit.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/application-exit.png
deleted file mode 100644 (file)
index 08e97b4..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/application-exit.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/document-close.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/document-close.png
deleted file mode 100644 (file)
index 34eb16f..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/document-close.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/document-print-quick.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/document-print-quick.png
deleted file mode 100644 (file)
index 3c3d294..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/document-print-quick.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/document-revert.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/document-revert.png
deleted file mode 100644 (file)
index 8e3ac28..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/document-revert.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/document-save-all.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/document-save-all.png
deleted file mode 100644 (file)
index ff21ea5..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/document-save-all.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/edit-add.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/edit-add.png
deleted file mode 100644 (file)
index 90fec1d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/edit-add.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/edit-undo.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/edit-undo.png
deleted file mode 100644 (file)
index 28915c0..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/edit-undo.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/favorite-add.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/favorite-add.png
deleted file mode 100644 (file)
index 18f0a81..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/favorite-add.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/folder-new.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/folder-new.png
deleted file mode 100644 (file)
index a59c003..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/folder-new.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/go-top.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/go-top.png
deleted file mode 100644 (file)
index 63e8ebf..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/go-top.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/help-contents.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/help-contents.png
deleted file mode 100644 (file)
index c49ccab..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/help-contents.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/identity.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/identity.png
deleted file mode 100644 (file)
index b38168a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/identity.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-eject.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-eject.png
deleted file mode 100644 (file)
index cd7d184..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-eject.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-playback-pause.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-playback-pause.png
deleted file mode 100644 (file)
index 95fd2c2..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-playback-pause.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-playback-start.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-playback-start.png
deleted file mode 100644 (file)
index 1f7e5e3..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-playback-start.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-seek-backward.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-seek-backward.png
deleted file mode 100644 (file)
index e2578a1..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-seek-backward.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-seek-forward.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-seek-forward.png
deleted file mode 100644 (file)
index 62e6d36..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-seek-forward.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-skip-backward.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-skip-backward.png
deleted file mode 100644 (file)
index 7adb24c..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-skip-backward.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-skip-forward.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-skip-forward.png
deleted file mode 100644 (file)
index a6adece..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/media-skip-forward.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/start.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/start.png
deleted file mode 100644 (file)
index b8589b8..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/start.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/system-lock-screen.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/system-lock-screen.png
deleted file mode 100644 (file)
index ca94cb8..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/system-lock-screen.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/system-search.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/system-search.png
deleted file mode 100644 (file)
index e41a638..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/system-search.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/view-pane-column.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/view-pane-column.png
deleted file mode 100644 (file)
index 5230fba..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/view-pane-column.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/view-pane-detailed.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/view-pane-detailed.png
deleted file mode 100644 (file)
index 8c315cf..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/view-pane-detailed.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/view-pane-icon.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/view-pane-icon.png
deleted file mode 100644 (file)
index 2b5d655..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/view-pane-icon.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/view-pane-remove.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/view-pane-remove.png
deleted file mode 100644 (file)
index 9c2bedc..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/view-pane-remove.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/view-pane-text.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/view-pane-text.png
deleted file mode 100644 (file)
index ed6d2e0..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/view-pane-text.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/view-pane-tree.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/view-pane-tree.png
deleted file mode 100644 (file)
index b896d17..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/view-pane-tree.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/window-new.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/window-new.png
deleted file mode 100644 (file)
index 1eb9c82..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/window-new.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/zoom-best-fit.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/zoom-best-fit.png
deleted file mode 100644 (file)
index b4f5514..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/zoom-best-fit.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/zoom-in.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/zoom-in.png
deleted file mode 100644 (file)
index cfb5a19..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/zoom-in.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/zoom-original.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/zoom-original.png
deleted file mode 100644 (file)
index f0ca554..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/zoom-original.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/zoom-out.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/zoom-out.png
deleted file mode 100644 (file)
index 0dc9662..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/zoom-out.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/zoom.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/zoom.png
deleted file mode 100644 (file)
index de5ef3a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/actions/zoom.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-alarm.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-alarm.png
deleted file mode 100644 (file)
index a4fca9c..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-alarm.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-archiver.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-archiver.png
deleted file mode 100644 (file)
index 8dc0885..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-archiver.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-calculator.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-calculator.png
deleted file mode 100644 (file)
index 00b5426..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-calculator.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-clipboard.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-clipboard.png
deleted file mode 100644 (file)
index def2ea1..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-clipboard.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-dictionary.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-dictionary.png
deleted file mode 100644 (file)
index 9aa7d66..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-dictionary.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-disk-usage.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-disk-usage.png
deleted file mode 100644 (file)
index cf8e01b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-disk-usage.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-floppy.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-floppy.png
deleted file mode 100644 (file)
index 8769486..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-floppy.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-magnifier.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-magnifier.png
deleted file mode 100644 (file)
index 87a73a1..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-magnifier.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-notes.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-notes.png
deleted file mode 100644 (file)
index 0a9d209..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-notes.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-terminal.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-terminal.png
deleted file mode 100644 (file)
index 49dcd2c..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-terminal.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-text-editor.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-text-editor.png
deleted file mode 100644 (file)
index 951904d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-text-editor.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-time-tracking.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-time-tracking.png
deleted file mode 100644 (file)
index 2b9492e..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-time-tracking.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-timer.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-timer.png
deleted file mode 100644 (file)
index c07f30d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/accessories-timer.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/help-browser.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/help-browser.png
deleted file mode 100644 (file)
index c59d5a0..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/help-browser.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/internet-download-manager.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/internet-download-manager.png
deleted file mode 100644 (file)
index b342a42..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/internet-download-manager.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/multimedia-movie-player.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/multimedia-movie-player.png
deleted file mode 100644 (file)
index 68726f5..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/multimedia-movie-player.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/office-adobe-reader.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/office-adobe-reader.png
deleted file mode 100644 (file)
index 43670f7..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/office-adobe-reader.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/office-organizer.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/office-organizer.png
deleted file mode 100644 (file)
index d80fc95..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/office-organizer.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/office-pim.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/office-pim.png
deleted file mode 100644 (file)
index 966610d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/office-pim.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/preferences-desktop-font.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/preferences-desktop-font.png
deleted file mode 100644 (file)
index 559c738..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/preferences-desktop-font.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/preferences-desktop-multimedia.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/preferences-desktop-multimedia.png
deleted file mode 100644 (file)
index 542b3b0..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/preferences-desktop-multimedia.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/preferences-desktop-theme.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/preferences-desktop-theme.png
deleted file mode 100644 (file)
index ff1e6f2..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/preferences-desktop-theme.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/system-file-manager.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/system-file-manager.png
deleted file mode 100644 (file)
index e551d98..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/system-file-manager.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/utilities-terminal.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/utilities-terminal.png
deleted file mode 100644 (file)
index 290f723..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/apps/utilities-terminal.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-games.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-games.png
deleted file mode 100644 (file)
index 538e3ec..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-games.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-graphics.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-graphics.png
deleted file mode 100644 (file)
index cf1c60d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-graphics.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-internet.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-internet.png
deleted file mode 100644 (file)
index e164a9f..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-internet.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-multimedia.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-multimedia.png
deleted file mode 100644 (file)
index b34aa66..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-multimedia.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-office.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-office.png
deleted file mode 100644 (file)
index 1809632..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-office.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-system.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-system.png
deleted file mode 100644 (file)
index 6398704..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-system.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-utilities.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-utilities.png
deleted file mode 100644 (file)
index 885d476..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications-utilities.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications.png
deleted file mode 100644 (file)
index 105d21e..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/applications.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/preferences-system.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/preferences-system.png
deleted file mode 100644 (file)
index 6398704..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/preferences-system.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/preferences.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/preferences.png
deleted file mode 100644 (file)
index f37127e..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/preferences.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/system-help.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/system-help.png
deleted file mode 100644 (file)
index c49ccab..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/categories/system-help.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/camera-photo.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/camera-photo.png
deleted file mode 100644 (file)
index b41b44c..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/camera-photo.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/camera-video.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/camera-video.png
deleted file mode 100644 (file)
index b41b44c..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/camera-video.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/drive-harddisk.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/drive-harddisk.png
deleted file mode 100644 (file)
index bc399f2..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/drive-harddisk.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/drive-optical.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/drive-optical.png
deleted file mode 100644 (file)
index a80ba97..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/drive-optical.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/drive-removable-media.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/drive-removable-media.png
deleted file mode 100644 (file)
index d9fe05c..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/drive-removable-media.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/input-mouse.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/input-mouse.png
deleted file mode 100644 (file)
index 91ae19a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/input-mouse.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/media-flash.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/media-flash.png
deleted file mode 100644 (file)
index d9fe05c..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/media-flash.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/media-floppy.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/media-floppy.png
deleted file mode 100644 (file)
index 51c0b00..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/media-floppy.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/media-optical.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/media-optical.png
deleted file mode 100644 (file)
index 209af79..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/media-optical.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/network-wired.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/network-wired.png
deleted file mode 100644 (file)
index c71d9b7..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/network-wired.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/network-wireless.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/network-wireless.png
deleted file mode 100644 (file)
index c71d9b7..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/network-wireless.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/printer.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/printer.png
deleted file mode 100644 (file)
index f958cdc..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/printer.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/scanner.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/scanner.png
deleted file mode 100644 (file)
index 974635d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/scanner.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/usb.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/usb.png
deleted file mode 100644 (file)
index 2433889..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/usb.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/video-display.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/video-display.png
deleted file mode 100644 (file)
index a2d1c28..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/devices/video-display.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/application-pdf.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/application-pdf.png
deleted file mode 100644 (file)
index 5c1e8e2..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/application-pdf.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/application-quicktime.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/application-quicktime.png
deleted file mode 100644 (file)
index 3bea4d7..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/application-quicktime.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/application-x-executable.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/application-x-executable.png
deleted file mode 100644 (file)
index d417499..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/application-x-executable.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/audio-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/audio-x-generic.png
deleted file mode 100644 (file)
index 80f005b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/audio-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/empty-x-encrypted.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/empty-x-encrypted.png
deleted file mode 100644 (file)
index 36adbc8..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/empty-x-encrypted.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/empty-x-locked.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/empty-x-locked.png
deleted file mode 100644 (file)
index 977aa74..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/empty-x-locked.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/empty-x-temporary.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/empty-x-temporary.png
deleted file mode 100644 (file)
index 1b17bef..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/empty-x-temporary.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/image-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/image-x-generic.png
deleted file mode 100644 (file)
index b0f0c90..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/image-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/package-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/package-x-generic.png
deleted file mode 100644 (file)
index 7183a99..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/package-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/text-ascii.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/text-ascii.png
deleted file mode 100644 (file)
index 788d0e7..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/text-ascii.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/text-html.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/text-html.png
deleted file mode 100644 (file)
index ba0ee38..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/text-html.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/text-x-generic-template.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/text-x-generic-template.png
deleted file mode 100644 (file)
index 2ee0ef4..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/text-x-generic-template.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/text-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/text-x-generic.png
deleted file mode 100644 (file)
index 2ee0ef4..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/text-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/text-x-script.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/text-x-script.png
deleted file mode 100644 (file)
index eea60d0..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/text-x-script.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/unknown-x-temporary.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/unknown-x-temporary.png
deleted file mode 100644 (file)
index b5cb3ae..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/unknown-x-temporary.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/video-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/video-x-generic.png
deleted file mode 100644 (file)
index 68efea6..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/video-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/x-office-calendar.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/x-office-calendar.png
deleted file mode 100644 (file)
index 67498ea..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/x-office-calendar.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/x-office-spreadsheet.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/x-office-spreadsheet.png
deleted file mode 100644 (file)
index 366c67c..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/mimetypes/x-office-spreadsheet.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/archive-folder.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/archive-folder.png
deleted file mode 100644 (file)
index 174b86c..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/archive-folder.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/document-folder.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/document-folder.png
deleted file mode 100644 (file)
index 7b8851d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/document-folder.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/favorite-folder.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/favorite-folder.png
deleted file mode 100644 (file)
index 71d2865..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/favorite-folder.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/folder-remote.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/folder-remote.png
deleted file mode 100644 (file)
index 2aaaa90..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/folder-remote.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/html-folder.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/html-folder.png
deleted file mode 100644 (file)
index 9ba99ed..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/html-folder.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/network-server.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/network-server.png
deleted file mode 100644 (file)
index ac4c6ea..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/network-server.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/network-workgroup.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/network-workgroup.png
deleted file mode 100644 (file)
index 68afcb4..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/network-workgroup.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/user-trash-empty.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/user-trash-empty.png
deleted file mode 100644 (file)
index df07ab4..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/user-trash-empty.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/user-trash-full.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/user-trash-full.png
deleted file mode 100644 (file)
index f19899d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/user-trash-full.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/user-trash.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/user-trash.png
deleted file mode 100644 (file)
index df07ab4..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/user-trash.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/www.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/www.png
deleted file mode 100644 (file)
index bd24112..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/places/www.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/status/dialog-error.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/status/dialog-error.png
deleted file mode 100644 (file)
index b953dd7..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/status/dialog-error.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/status/dialog-information.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/status/dialog-information.png
deleted file mode 100644 (file)
index d8197d6..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/status/dialog-information.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/status/dialog-warning.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/status/dialog-warning.png
deleted file mode 100644 (file)
index d5f6551..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/32/status/dialog-warning.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/actions/help-contents.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/actions/help-contents.png
deleted file mode 100644 (file)
index 3cf6bb7..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/actions/help-contents.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/actions/system-search.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/actions/system-search.png
deleted file mode 100644 (file)
index cf6e248..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/actions/system-search.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-alarm.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-alarm.png
deleted file mode 100644 (file)
index 3b77e47..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-alarm.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-archiver.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-archiver.png
deleted file mode 100644 (file)
index 3393d26..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-archiver.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-calculator.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-calculator.png
deleted file mode 100644 (file)
index 8875263..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-calculator.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-clipboard.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-clipboard.png
deleted file mode 100644 (file)
index ea9c78e..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-clipboard.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-dictionary.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-dictionary.png
deleted file mode 100644 (file)
index f96a2aa..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-dictionary.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-disk-usage.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-disk-usage.png
deleted file mode 100644 (file)
index a3b93ff..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-disk-usage.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-floppy.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-floppy.png
deleted file mode 100644 (file)
index 96ecead..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-floppy.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-magnifier.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-magnifier.png
deleted file mode 100644 (file)
index 538d656..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-magnifier.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-notes.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-notes.png
deleted file mode 100644 (file)
index d0d7cba..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-notes.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-terminal.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-terminal.png
deleted file mode 100644 (file)
index aad1041..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-terminal.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-text-editor.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-text-editor.png
deleted file mode 100644 (file)
index 7cf4311..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-text-editor.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-time-tracking.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-time-tracking.png
deleted file mode 100644 (file)
index 49fa3df..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-time-tracking.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-timer.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-timer.png
deleted file mode 100644 (file)
index ccbae97..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/accessories-timer.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/help-browser.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/help-browser.png
deleted file mode 100644 (file)
index 614b0f9..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/help-browser.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/internet-download-manager.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/internet-download-manager.png
deleted file mode 100644 (file)
index a26ea68..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/internet-download-manager.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/multimedia-movie-player.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/multimedia-movie-player.png
deleted file mode 100644 (file)
index 59a8b19..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/multimedia-movie-player.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/office-adobe-reader.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/office-adobe-reader.png
deleted file mode 100644 (file)
index 1ed9165..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/office-adobe-reader.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/office-organizer.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/office-organizer.png
deleted file mode 100644 (file)
index 3aa37ad..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/office-organizer.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/office-pim.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/office-pim.png
deleted file mode 100644 (file)
index 75619bc..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/office-pim.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/preferences-desktop-font.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/preferences-desktop-font.png
deleted file mode 100644 (file)
index 6612906..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/preferences-desktop-font.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/preferences-desktop-multimedia.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/preferences-desktop-multimedia.png
deleted file mode 100644 (file)
index c64c98f..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/preferences-desktop-multimedia.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/preferences-desktop-theme.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/preferences-desktop-theme.png
deleted file mode 100644 (file)
index 22040c3..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/preferences-desktop-theme.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/system-file-manager.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/system-file-manager.png
deleted file mode 100644 (file)
index ebdeaa3..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/system-file-manager.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/utilities-terminal.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/utilities-terminal.png
deleted file mode 100644 (file)
index c7bdedf..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/apps/utilities-terminal.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-games.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-games.png
deleted file mode 100644 (file)
index f3a73f8..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-games.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-graphics.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-graphics.png
deleted file mode 100644 (file)
index 624d07f..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-graphics.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-internet.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-internet.png
deleted file mode 100644 (file)
index b5f28c4..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-internet.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-multimedia.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-multimedia.png
deleted file mode 100644 (file)
index 5a9c231..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-multimedia.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-office.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-office.png
deleted file mode 100644 (file)
index 318cc52..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-office.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-system.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-system.png
deleted file mode 100644 (file)
index 9962b4b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-system.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-utilities.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-utilities.png
deleted file mode 100644 (file)
index baac6ad..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications-utilities.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications.png
deleted file mode 100644 (file)
index 43f6a58..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/applications.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/preferences-system.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/preferences-system.png
deleted file mode 100644 (file)
index 9962b4b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/preferences-system.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/preferences.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/preferences.png
deleted file mode 100644 (file)
index 34dc628..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/preferences.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/system-help.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/system-help.png
deleted file mode 100644 (file)
index 3cf6bb7..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/categories/system-help.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/camera-photo.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/camera-photo.png
deleted file mode 100644 (file)
index 68046fa..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/camera-photo.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/camera-video.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/camera-video.png
deleted file mode 100644 (file)
index 68046fa..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/camera-video.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/drive-harddisk.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/drive-harddisk.png
deleted file mode 100644 (file)
index 046a530..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/drive-harddisk.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/drive-optical.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/drive-optical.png
deleted file mode 100644 (file)
index 8bac421..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/drive-optical.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/drive-removable-media.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/drive-removable-media.png
deleted file mode 100644 (file)
index 644446a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/drive-removable-media.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/input-mouse.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/input-mouse.png
deleted file mode 100644 (file)
index ba460dd..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/input-mouse.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/media-flash.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/media-flash.png
deleted file mode 100644 (file)
index 644446a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/media-flash.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/media-floppy.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/media-floppy.png
deleted file mode 100644 (file)
index 69d70f2..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/media-floppy.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/media-optical.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/media-optical.png
deleted file mode 100644 (file)
index 1b0a503..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/media-optical.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/network-wired.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/network-wired.png
deleted file mode 100644 (file)
index 20cd06b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/network-wired.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/network-wireless.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/network-wireless.png
deleted file mode 100644 (file)
index 20cd06b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/network-wireless.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/printer.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/printer.png
deleted file mode 100644 (file)
index 8313ecc..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/printer.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/scanner.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/scanner.png
deleted file mode 100644 (file)
index 71aed18..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/scanner.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/usb.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/usb.png
deleted file mode 100644 (file)
index f6336fb..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/usb.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/video-display.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/video-display.png
deleted file mode 100644 (file)
index 9c2740a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/devices/video-display.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/application-pdf.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/application-pdf.png
deleted file mode 100644 (file)
index 4e5e18e..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/application-pdf.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/application-quicktime.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/application-quicktime.png
deleted file mode 100644 (file)
index 004b077..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/application-quicktime.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/application-x-executable.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/application-x-executable.png
deleted file mode 100644 (file)
index a898930..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/application-x-executable.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/audio-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/audio-x-generic.png
deleted file mode 100644 (file)
index 6a9d422..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/audio-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/empty-x-encrypted.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/empty-x-encrypted.png
deleted file mode 100644 (file)
index 4d42a7e..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/empty-x-encrypted.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/empty-x-locked.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/empty-x-locked.png
deleted file mode 100644 (file)
index 9a0e37e..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/empty-x-locked.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/empty-x-temporary.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/empty-x-temporary.png
deleted file mode 100644 (file)
index 0d139c1..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/empty-x-temporary.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/image-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/image-x-generic.png
deleted file mode 100644 (file)
index 3d09494..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/image-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/package-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/package-x-generic.png
deleted file mode 100644 (file)
index a472fb3..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/package-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/text-ascii.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/text-ascii.png
deleted file mode 100644 (file)
index 884c362..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/text-ascii.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/text-html.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/text-html.png
deleted file mode 100644 (file)
index 017f9d3..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/text-html.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/text-x-generic-template.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/text-x-generic-template.png
deleted file mode 100644 (file)
index 8db7ba4..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/text-x-generic-template.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/text-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/text-x-generic.png
deleted file mode 100644 (file)
index 8db7ba4..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/text-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/text-x-script.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/text-x-script.png
deleted file mode 100644 (file)
index 85f8a89..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/text-x-script.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/unknown-x-temporary.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/unknown-x-temporary.png
deleted file mode 100644 (file)
index 78851f3..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/unknown-x-temporary.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/video-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/video-x-generic.png
deleted file mode 100644 (file)
index 29a1a8c..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/video-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/x-office-calendar.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/x-office-calendar.png
deleted file mode 100644 (file)
index f34f15a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/x-office-calendar.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/x-office-spreadsheet.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/x-office-spreadsheet.png
deleted file mode 100644 (file)
index 05f4aff..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/mimetypes/x-office-spreadsheet.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/archive-folder.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/archive-folder.png
deleted file mode 100644 (file)
index bf10afc..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/archive-folder.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/document-folder.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/document-folder.png
deleted file mode 100644 (file)
index e02294a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/document-folder.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/folder-remote.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/folder-remote.png
deleted file mode 100644 (file)
index 5ed1f07..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/folder-remote.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/html-folder.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/html-folder.png
deleted file mode 100644 (file)
index bc79044..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/html-folder.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/network-server.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/network-server.png
deleted file mode 100644 (file)
index 5bac406..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/network-server.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/network-workgroup.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/network-workgroup.png
deleted file mode 100644 (file)
index 86139f3..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/network-workgroup.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/user-trash-empty.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/user-trash-empty.png
deleted file mode 100644 (file)
index 37a8aa2..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/user-trash-empty.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/user-trash-full.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/user-trash-full.png
deleted file mode 100644 (file)
index 37b1486..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/user-trash-full.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/user-trash.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/user-trash.png
deleted file mode 100644 (file)
index 37a8aa2..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/user-trash.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/www.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/www.png
deleted file mode 100644 (file)
index cccc91c..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/48/places/www.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/actions/help-contents.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/actions/help-contents.png
deleted file mode 100644 (file)
index 64ed09d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/actions/help-contents.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/actions/system-search.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/actions/system-search.png
deleted file mode 100644 (file)
index 064e818..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/actions/system-search.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-alarm.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-alarm.png
deleted file mode 100644 (file)
index 71b07a2..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-alarm.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-archiver.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-archiver.png
deleted file mode 100644 (file)
index e976e46..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-archiver.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-calculator.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-calculator.png
deleted file mode 100644 (file)
index c5ee12e..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-calculator.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-clipboard.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-clipboard.png
deleted file mode 100644 (file)
index 300827a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-clipboard.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-dictionary.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-dictionary.png
deleted file mode 100644 (file)
index 4d2ecd2..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-dictionary.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-disk-usage.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-disk-usage.png
deleted file mode 100644 (file)
index f1aee77..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-disk-usage.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-floppy.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-floppy.png
deleted file mode 100644 (file)
index d0566bd..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-floppy.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-magnifier.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-magnifier.png
deleted file mode 100644 (file)
index ac682e1..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-magnifier.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-notes.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-notes.png
deleted file mode 100644 (file)
index 926ad8a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-notes.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-terminal.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-terminal.png
deleted file mode 100644 (file)
index 356600d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-terminal.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-text-editor.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-text-editor.png
deleted file mode 100644 (file)
index 191380f..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-text-editor.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-time-tracking.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-time-tracking.png
deleted file mode 100644 (file)
index 5964bc1..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/accessories-time-tracking.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/help-browser.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/help-browser.png
deleted file mode 100644 (file)
index ebb8462..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/help-browser.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/internet-download-manager.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/internet-download-manager.png
deleted file mode 100644 (file)
index 520bd4e..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/internet-download-manager.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/multimedia-movie-player.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/multimedia-movie-player.png
deleted file mode 100644 (file)
index a7d9457..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/multimedia-movie-player.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/office-adobe-reader.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/office-adobe-reader.png
deleted file mode 100644 (file)
index 63d4175..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/office-adobe-reader.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/office-organizer.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/office-organizer.png
deleted file mode 100644 (file)
index 055cafe..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/office-organizer.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/office-pim.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/office-pim.png
deleted file mode 100644 (file)
index af34fbe..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/office-pim.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/preferences-desktop-font.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/preferences-desktop-font.png
deleted file mode 100644 (file)
index cd8e821..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/preferences-desktop-font.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/preferences-desktop-multimedia.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/preferences-desktop-multimedia.png
deleted file mode 100644 (file)
index a3296d8..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/preferences-desktop-multimedia.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/preferences-desktop-theme.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/preferences-desktop-theme.png
deleted file mode 100644 (file)
index 54a6f19..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/preferences-desktop-theme.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/system-file-manager.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/system-file-manager.png
deleted file mode 100644 (file)
index b569517..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/system-file-manager.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/utilities-terminal.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/utilities-terminal.png
deleted file mode 100644 (file)
index f6d04d6..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/apps/utilities-terminal.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-games.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-games.png
deleted file mode 100644 (file)
index a040f39..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-games.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-graphics.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-graphics.png
deleted file mode 100644 (file)
index 417d2ff..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-graphics.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-internet.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-internet.png
deleted file mode 100644 (file)
index 2d0fdf9..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-internet.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-multimedia.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-multimedia.png
deleted file mode 100644 (file)
index 7e7afff..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-multimedia.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-office.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-office.png
deleted file mode 100644 (file)
index cf3f207..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-office.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-system.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-system.png
deleted file mode 100644 (file)
index ea8e84f..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-system.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-utilities.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-utilities.png
deleted file mode 100644 (file)
index 5b2af79..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications-utilities.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications.png
deleted file mode 100644 (file)
index d4c1c7f..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/applications.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/preferences-system.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/preferences-system.png
deleted file mode 100644 (file)
index ea8e84f..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/preferences-system.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/preferences.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/preferences.png
deleted file mode 100644 (file)
index 80e4689..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/preferences.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/system-help.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/system-help.png
deleted file mode 100644 (file)
index 64ed09d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/categories/system-help.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/camera-photo.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/camera-photo.png
deleted file mode 100644 (file)
index 9fa861b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/camera-photo.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/camera-video.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/camera-video.png
deleted file mode 100644 (file)
index 9fa861b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/camera-video.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/drive-harddisk.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/drive-harddisk.png
deleted file mode 100644 (file)
index b14dbbc..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/drive-harddisk.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/drive-optical.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/drive-optical.png
deleted file mode 100644 (file)
index 1391a42..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/drive-optical.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/drive-removable-media.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/drive-removable-media.png
deleted file mode 100644 (file)
index d8bb89d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/drive-removable-media.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/input-mouse.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/input-mouse.png
deleted file mode 100644 (file)
index 75e3d8e..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/input-mouse.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/media-flash.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/media-flash.png
deleted file mode 100644 (file)
index d8bb89d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/media-flash.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/media-floppy.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/media-floppy.png
deleted file mode 100644 (file)
index fac5eeb..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/media-floppy.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/media-optical.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/media-optical.png
deleted file mode 100644 (file)
index 95af804..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/media-optical.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/network-wired.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/network-wired.png
deleted file mode 100644 (file)
index 4e402f6..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/network-wired.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/network-wireless.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/network-wireless.png
deleted file mode 100644 (file)
index 4e402f6..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/network-wireless.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/printer.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/printer.png
deleted file mode 100644 (file)
index f2956f0..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/printer.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/scanner.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/scanner.png
deleted file mode 100644 (file)
index 372d90e..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/scanner.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/usb.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/usb.png
deleted file mode 100644 (file)
index 6bdf1da..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/usb.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/video-display.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/video-display.png
deleted file mode 100644 (file)
index 7c5f4ac..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/devices/video-display.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/application-pdf.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/application-pdf.png
deleted file mode 100644 (file)
index 4c90633..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/application-pdf.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/application-quicktime.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/application-quicktime.png
deleted file mode 100644 (file)
index f3e6647..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/application-quicktime.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/application-x-executable.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/application-x-executable.png
deleted file mode 100644 (file)
index 005d8c0..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/application-x-executable.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/audio-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/audio-x-generic.png
deleted file mode 100644 (file)
index aef284b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/audio-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/empty-x-locked.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/empty-x-locked.png
deleted file mode 100644 (file)
index 9efc85e..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/empty-x-locked.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/empty-x-temporary.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/empty-x-temporary.png
deleted file mode 100644 (file)
index 7fc780d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/empty-x-temporary.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/image-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/image-x-generic.png
deleted file mode 100644 (file)
index 6059559..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/image-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/package-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/package-x-generic.png
deleted file mode 100644 (file)
index 7a6aea1..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/package-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/text-ascii.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/text-ascii.png
deleted file mode 100644 (file)
index 3584b3f..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/text-ascii.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/text-html.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/text-html.png
deleted file mode 100644 (file)
index 2d408f4..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/text-html.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/text-x-generic-template.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/text-x-generic-template.png
deleted file mode 100644 (file)
index cb3eb41..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/text-x-generic-template.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/text-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/text-x-generic.png
deleted file mode 100644 (file)
index cb3eb41..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/text-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/text-x-script.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/text-x-script.png
deleted file mode 100644 (file)
index 8afcf55..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/text-x-script.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/unknown-x-temporary.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/unknown-x-temporary.png
deleted file mode 100644 (file)
index 1e92934..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/unknown-x-temporary.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/video-x-generic.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/video-x-generic.png
deleted file mode 100644 (file)
index bb54b53..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/video-x-generic.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/x-office-calendar.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/x-office-calendar.png
deleted file mode 100644 (file)
index 3e74ca5..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/x-office-calendar.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/x-office-spreadsheet.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/x-office-spreadsheet.png
deleted file mode 100644 (file)
index e1d4168..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/mimetypes/x-office-spreadsheet.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/archive-folder.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/archive-folder.png
deleted file mode 100644 (file)
index 398ff7a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/archive-folder.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/document-folder.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/document-folder.png
deleted file mode 100644 (file)
index 5cc7bd9..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/document-folder.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/folder-remote.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/folder-remote.png
deleted file mode 100644 (file)
index 3987a65..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/folder-remote.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/html-folder.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/html-folder.png
deleted file mode 100644 (file)
index 5ac69c4..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/html-folder.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/network-server.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/network-server.png
deleted file mode 100644 (file)
index d3f72be..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/network-server.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/network-workgroup.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/network-workgroup.png
deleted file mode 100644 (file)
index 8f62b8c..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/network-workgroup.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/user-trash-empty.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/user-trash-empty.png
deleted file mode 100644 (file)
index 47b6517..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/user-trash-empty.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/user-trash-full.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/user-trash-full.png
deleted file mode 100644 (file)
index 07d9337..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/user-trash-full.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/user-trash.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/user-trash.png
deleted file mode 100644 (file)
index 47b6517..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/user-trash.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/www.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/www.png
deleted file mode 100644 (file)
index 0ba7343..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/64/places/www.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/LICENSE b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/Nuvola/LICENSE
deleted file mode 100644 (file)
index b792c1b..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-Licensing Information
-=====================
-
-Icon Theme:
-  Nuvola
-  
-Author:
-  David Vignoni (david AT icon-king DOT com)
-
-License:
-  LGPL
-
-Home: 
-  http://www.kde-look.org/content/show.php?content=5358
-  http://www.icon-king.com
-
-
-Important Note For Projects That Need To Comply With EPL:
----------------------------------------------------------
-
-This icon theme is available only under the LGPL. Therefore, you have to select 
-another icon theme that is compatible to EPL. For more information, please see
-the LICENSE file in the qooxdoo top-level directory. 
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/README b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/icon/README
deleted file mode 100644 (file)
index 456efb1..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-***
-*** SAMBA CHANGES:
-***
-***  All icon directories other than the default, Nuvola, have been removed
-***  to save space.
-***
-***  Derrell
-***
-*** The remainder of this file is qooxdoo-original...
-
-Information On Available Icon Themes
-====================================
-
-Please make sure you read and understand the LICENSE file that is included in 
-each icon theme's directory.
-
-********************************************************************************
-
- * Vista-Inspirate
-   Directory: 
-     VistaInspirate
-   Author:
-     Alexandre Moore (alexandre DOT moore AT gmail DOT com)
-   License: 
-     GPL & LGPL/EPL
-   Home: 
-     http://www.kde-look.org/content/show.php?content=31585
-   Comment: 
-     Based on nuoveXT by the same author
-
-********************************************************************************
-
- * nuoveXT
-   Directory:
-     NuoveXT
-   Author:
-     Alexandre Moore (alexandre DOT moore AT gmail DOT com)
-   License:
-     GPL & LGPL/EPL
-   Home:
-     http://www.kde-look.org/content/show.php?content=26449
-
-********************************************************************************
-
- * Crystal Clear
-   Directory:
-     CrystalClear
-   Author:
-     Everaldo (everaldo AT everaldo DOT com)
-   License:
-     LGPL
-   Home:
-     http://www.kde-look.org/content/show.php?content=25668
-
-********************************************************************************
-
- * Nuvola
-
-   Directory:
-     Nuvola
-   Author: 
-     David Vignoni (david AT icon-king DOT com)
-   License:
-     LGPL
-   Home:
-     http://www.kde-look.org/content/show.php?content=5358
-
-********************************************************************************
-     
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/static/history/historyHelper.html b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/static/history/historyHelper.html
deleted file mode 100644 (file)
index 55a9427..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-<html>
-<head></head>
-<body onload="parent.qx.client.History.getInstance()._onHistoryLoad(window.location)"></body>
-</html>
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/static/image/blank.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/static/image/blank.gif
deleted file mode 100644 (file)
index 75b945d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/static/image/blank.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/colorselector/brightness-field.jpg b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/colorselector/brightness-field.jpg
deleted file mode 100644 (file)
index 008984d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/colorselector/brightness-field.jpg and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/colorselector/brightness-handle.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/colorselector/brightness-handle.gif
deleted file mode 100644 (file)
index 7cf8022..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/colorselector/brightness-handle.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/colorselector/huesaturation-field.jpg b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/colorselector/huesaturation-field.jpg
deleted file mode 100644 (file)
index 36d2d79..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/colorselector/huesaturation-field.jpg and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/colorselector/huesaturation-handle.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/colorselector/huesaturation-handle.gif
deleted file mode 100644 (file)
index 2fcaaec..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/colorselector/huesaturation-handle.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/datechooser/lastMonth.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/datechooser/lastMonth.png
deleted file mode 100644 (file)
index 1eb3f40..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/datechooser/lastMonth.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/datechooser/lastYear.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/datechooser/lastYear.png
deleted file mode 100644 (file)
index 147d427..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/datechooser/lastYear.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/datechooser/nextMonth.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/datechooser/nextMonth.png
deleted file mode 100644 (file)
index 05e5647..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/datechooser/nextMonth.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/datechooser/nextYear.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/datechooser/nextYear.png
deleted file mode 100644 (file)
index 79a6278..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/datechooser/nextYear.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/menu/menu-blank.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/menu/menu-blank.gif
deleted file mode 100644 (file)
index 40aeb6b..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/menu/menu-blank.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/splitpane/knob-horizontal.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/splitpane/knob-horizontal.png
deleted file mode 100644 (file)
index da5ade6..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/splitpane/knob-horizontal.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/splitpane/knob-vertical.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/splitpane/knob-vertical.png
deleted file mode 100644 (file)
index 945ad4d..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/splitpane/knob-vertical.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/table/ascending.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/table/ascending.png
deleted file mode 100644 (file)
index de27cce..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/table/ascending.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/table/boolean-false.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/table/boolean-false.png
deleted file mode 100644 (file)
index dce9d38..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/table/boolean-false.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/table/boolean-true.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/table/boolean-true.png
deleted file mode 100644 (file)
index 91817bb..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/table/boolean-true.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/table/descending.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/table/descending.png
deleted file mode 100644 (file)
index 9f4f955..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/table/descending.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/table/selectColumnOrder.png b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/table/selectColumnOrder.png
deleted file mode 100644 (file)
index cb5f151..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/table/selectColumnOrder.png and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/tree/only_minus.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/tree/only_minus.gif
deleted file mode 100644 (file)
index eea784a..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/tree/only_minus.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/tree/only_plus.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/tree/only_plus.gif
deleted file mode 100644 (file)
index 4fdec8c..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/tree/only_plus.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/tree/start_minus.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/tree/start_minus.gif
deleted file mode 100644 (file)
index f8e5ed7..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/tree/start_minus.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/tree/start_plus.gif b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/tree/start_plus.gif
deleted file mode 100644 (file)
index 722663c..0000000
Binary files a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/resource/widget/windows/tree/start_plus.gif and /dev/null differ
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/C.po b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/C.po
deleted file mode 100644 (file)
index 83b5c4f..0000000
+++ /dev/null
@@ -1,309 +0,0 @@
-# (Default)
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo framework\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-10 16:11+0100\n"
-"PO-Revision-Date: 2006-12-19 15:52+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ASCII\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#. TRANSLATION: short representation of key names
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:61
-msgid "key_short_Backspace"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:62
-msgid "key_short_Tab"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:63
-msgid "key_short_Space"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:64
-msgid "key_short_Enter"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:65
-msgid "key_short_Shift"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:66
-msgid "key_short_Control"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:67
-msgid "key_short_Alt"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:68
-msgid "key_short_CapsLock"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:69
-msgid "key_short_Meta"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:70
-msgid "key_short_Escape"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:71
-msgid "key_short_Left"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:72
-msgid "key_short_Up"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:73
-msgid "key_short_Right"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:74
-msgid "key_short_Down"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:75
-msgid "key_short_PageUp"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:76
-msgid "key_short_PageDown"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:77
-msgid "key_short_End"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:78
-msgid "key_short_Home"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:79
-msgid "key_short_Insert"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:80
-msgid "key_short_Delete"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:81
-msgid "key_short_NumLock"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:82
-msgid "key_short_PrintScreen"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:83
-msgid "key_short_Scroll"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:84
-msgid "key_short_Pause"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:85
-msgid "key_short_Win"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:86
-msgid "key_short_Apps"
-msgstr ""
-
-#. TRANSLATION: full/long representation of key names
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:89
-msgid "key_full_Backspace"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:90
-msgid "key_full_Tab"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:91
-msgid "key_full_Space"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:92
-msgid "key_full_Enter"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:93
-msgid "key_full_Shift"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:94
-msgid "key_full_Control"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:95
-msgid "key_full_Alt"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:96
-msgid "key_full_CapsLock"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:97
-msgid "key_full_Meta"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:98
-msgid "key_full_Escape"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:99
-msgid "key_full_Left"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:100
-msgid "key_full_Up"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:101
-msgid "key_full_Right"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:102
-msgid "key_full_Down"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:103
-msgid "key_full_PageUp"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:104
-msgid "key_full_PageDown"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:105
-msgid "key_full_End"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:106
-msgid "key_full_Home"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:107
-msgid "key_full_Insert"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:108
-msgid "key_full_Delete"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:109
-msgid "key_full_NumLock"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:110
-msgid "key_full_PrintScreen"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:111
-msgid "key_full_Scroll"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:112
-msgid "key_full_Pause"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:113
-msgid "key_full_Win"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/locale/Key.js:114
-msgid "key_full_Apps"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/ColorPopup.js:81
-msgid "Automatic"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/ColorPopup.js:135
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/ColorSelector.js:292
-msgid "Preview (Old/New)"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/ColorPopup.js:161
-msgid "Open ColorSelector"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/ColorPopup.js:175
-msgid "Color Selector"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/ColorSelector.js:143
-msgid "Cancel"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/ColorSelector.js:144
-msgid "OK"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/ColorSelector.js:236
-msgid "Presets"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/ColorSelector.js:280
-msgid "Details"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/ColorSelector.js:325
-msgid "Hex"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/ColorSelector.js:348
-msgid "RGB"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/ColorSelector.js:376
-msgid "HSB"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/DateChooser.js:52
-msgid "Last year"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/DateChooser.js:53
-msgid "Last month"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/DateChooser.js:54
-msgid "Next month"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/DateChooser.js:55
-msgid "Next year"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/component/DateChooserButton.js:91
-msgid "Choose a date"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "Description"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "ID"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:620
-msgid "Case sensitive"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:657
-msgid "Search next occurrence"
-msgstr ""
-
-#: ../qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:694
-msgid "Search items in list"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/ar.po b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/ar.po
deleted file mode 100644 (file)
index a729cfb..0000000
+++ /dev/null
@@ -1,309 +0,0 @@
-# Arabic
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo framework\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 10:36+0100\n"
-"PO-Revision-Date: 2006-12-19 16:16+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ASCII\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#. TRANSLATION: short representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:61
-msgid "key_short_Backspace"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:62
-msgid "key_short_Tab"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:63
-msgid "key_short_Space"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:64
-msgid "key_short_Enter"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:65
-msgid "key_short_Shift"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:66
-msgid "key_short_Control"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:67
-msgid "key_short_Alt"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:68
-msgid "key_short_CapsLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:69
-msgid "key_short_Meta"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:70
-msgid "key_short_Escape"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:71
-msgid "key_short_Left"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:72
-msgid "key_short_Up"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:73
-msgid "key_short_Right"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:74
-msgid "key_short_Down"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:75
-msgid "key_short_PageUp"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:76
-msgid "key_short_PageDown"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:77
-msgid "key_short_End"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:78
-msgid "key_short_Home"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:79
-msgid "key_short_Insert"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:80
-msgid "key_short_Delete"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:81
-msgid "key_short_NumLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:82
-msgid "key_short_PrintScreen"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:83
-msgid "key_short_Scroll"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:84
-msgid "key_short_Pause"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:85
-msgid "key_short_Win"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:86
-msgid "key_short_Apps"
-msgstr ""
-
-#. TRANSLATION: full/long representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:89
-msgid "key_full_Backspace"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:90
-msgid "key_full_Tab"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:91
-msgid "key_full_Space"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:92
-msgid "key_full_Enter"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:93
-msgid "key_full_Shift"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:94
-msgid "key_full_Control"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:95
-msgid "key_full_Alt"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:96
-msgid "key_full_CapsLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:97
-msgid "key_full_Meta"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:98
-msgid "key_full_Escape"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:99
-msgid "key_full_Left"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:100
-msgid "key_full_Up"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:101
-msgid "key_full_Right"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:102
-msgid "key_full_Down"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:103
-msgid "key_full_PageUp"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:104
-msgid "key_full_PageDown"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:105
-msgid "key_full_End"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:106
-msgid "key_full_Home"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:107
-msgid "key_full_Insert"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:108
-msgid "key_full_Delete"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:109
-msgid "key_full_NumLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:110
-msgid "key_full_PrintScreen"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:111
-msgid "key_full_Scroll"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:112
-msgid "key_full_Pause"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:113
-msgid "key_full_Win"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:114
-msgid "key_full_Apps"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:81
-msgid "Automatic"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:135
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:292
-msgid "Preview (Old/New)"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:161
-msgid "Open ColorSelector"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:175
-msgid "Color Selector"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:143
-msgid "Cancel"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:144
-msgid "OK"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:236
-msgid "Presets"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:280
-msgid "Details"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:325
-msgid "Hex"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:348
-msgid "RGB"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:376
-msgid "HSB"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:52
-msgid "Last year"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:53
-msgid "Last month"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:54
-msgid "Next month"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:55
-msgid "Next year"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooserButton.js:91
-msgid "Choose a date"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "Description"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "ID"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:620
-msgid "Case sensitive"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:657
-msgid "Search next occurrence"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:694
-msgid "Search items in list"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/de.po b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/de.po
deleted file mode 100644 (file)
index 7ec6f49..0000000
+++ /dev/null
@@ -1,314 +0,0 @@
-# translation of de.po to German
-# German
-#
-# Fabian Jakobs <fabian DOT jakobs AT 1und1 DOT de>, 2007.
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo framework\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 10:36+0100\n"
-"PO-Revision-Date: 2007-01-23 17:53+0100\n"
-"Last-Translator: Fabian Jakobs <fabian DOT jakobs AT 1und1 DOT de>\n"
-"Language-Team: German\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
-"X-Generator: KBabel 1.11.4\n"
-
-#. TRANSLATION: short representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:61
-msgid "key_short_Backspace"
-msgstr "Rück"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:62
-msgid "key_short_Tab"
-msgstr "Tab"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:63
-msgid "key_short_Space"
-msgstr "Leer"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:64
-msgid "key_short_Enter"
-msgstr "Enter"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:65
-msgid "key_short_Shift"
-msgstr "Umschalt"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:66
-msgid "key_short_Control"
-msgstr "Strg"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:67
-msgid "key_short_Alt"
-msgstr "Alt"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:68
-msgid "key_short_CapsLock"
-msgstr "Feststell"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:69
-msgid "key_short_Meta"
-msgstr "Meta"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:70
-msgid "key_short_Escape"
-msgstr "Esc"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:71
-msgid "key_short_Left"
-msgstr "Links"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:72
-msgid "key_short_Up"
-msgstr "Hoch"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:73
-msgid "key_short_Right"
-msgstr "Rechts "
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:74
-msgid "key_short_Down"
-msgstr "Runter"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:75
-msgid "key_short_PageUp"
-msgstr "Bild hoch"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:76
-msgid "key_short_PageDown"
-msgstr "Bild runter"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:77
-msgid "key_short_End"
-msgstr "Ende"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:78
-msgid "key_short_Home"
-msgstr "Pos1"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:79
-msgid "key_short_Insert"
-msgstr "Einfg"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:80
-msgid "key_short_Delete"
-msgstr "Entf"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:81
-msgid "key_short_NumLock"
-msgstr "Num"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:82
-#, fuzzy
-msgid "key_short_PrintScreen"
-msgstr "Drucken"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:83
-msgid "key_short_Scroll"
-msgstr "Rollen"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:84
-msgid "key_short_Pause"
-msgstr "Pause"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:85
-msgid "key_short_Win"
-msgstr "Win"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:86
-msgid "key_short_Apps"
-msgstr "Kontext"
-
-#. TRANSLATION: full/long representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:89
-msgid "key_full_Backspace"
-msgstr "Rücktaste"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:90
-msgid "key_full_Tab"
-msgstr "Tabulator"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:91
-msgid "key_full_Space"
-msgstr "Leertaste"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:92
-msgid "key_full_Enter"
-msgstr "Enter"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:93
-msgid "key_full_Shift"
-msgstr "Umschalttaste"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:94
-msgid "key_full_Control"
-msgstr "Steuerung"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:95
-msgid "key_full_Alt"
-msgstr "Alt"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:96
-msgid "key_full_CapsLock"
-msgstr "Feststelltaste"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:97
-msgid "key_full_Meta"
-msgstr "Meta"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:98
-msgid "key_full_Escape"
-msgstr "Escape"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:99
-msgid "key_full_Left"
-msgstr "Pfeil links"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:100
-msgid "key_full_Up"
-msgstr "Pfeil hoch"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:101
-msgid "key_full_Right"
-msgstr "Pfeil rechts"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:102
-msgid "key_full_Down"
-msgstr "Pfeil runter"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:103
-msgid "key_full_PageUp"
-msgstr "Bild hoch"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:104
-msgid "key_full_PageDown"
-msgstr "Bild runter "
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:105
-msgid "key_full_End"
-msgstr "Ende"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:106
-msgid "key_full_Home"
-msgstr "Position 1"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:107
-msgid "key_full_Insert"
-msgstr "Einfügen"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:108
-msgid "key_full_Delete"
-msgstr "Entfernen"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:109
-msgid "key_full_NumLock"
-msgstr "NumLock"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:110
-#, fuzzy
-msgid "key_full_PrintScreen"
-msgstr "Drucken"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:111
-msgid "key_full_Scroll"
-msgstr "Rollen"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:112
-msgid "key_full_Pause"
-msgstr "Pause"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:113
-msgid "key_full_Win"
-msgstr "Windowstaste"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:114
-msgid "key_full_Apps"
-msgstr "Kontextmenü"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:81
-msgid "Automatic"
-msgstr "Automatisch"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:135
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:292
-msgid "Preview (Old/New)"
-msgstr "Vorschau (alt/neu)"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:161
-msgid "Open ColorSelector"
-msgstr "Öffne Farbauswahl"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:175
-msgid "Color Selector"
-msgstr "Farbauswahl"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:143
-msgid "Cancel"
-msgstr "Abbruch"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:144
-msgid "OK"
-msgstr "OK"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:236
-msgid "Presets"
-msgstr "Voreinstellungen"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:280
-msgid "Details"
-msgstr "Details"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:325
-msgid "Hex"
-msgstr "Hex"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:348
-msgid "RGB"
-msgstr "RGB"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:376
-msgid "HSB"
-msgstr "HSB"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:52
-msgid "Last year"
-msgstr "Vorheriges Jahr"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:53
-msgid "Last month"
-msgstr "Vorheriger Monat"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:54
-msgid "Next month"
-msgstr "Nächster Monat"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:55
-msgid "Next year"
-msgstr "Nächstes Jahr"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooserButton.js:91
-msgid "Choose a date"
-msgstr "Datum auswählen"
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "Description"
-msgstr "Beschreibung"
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "ID"
-msgstr "ID"
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:620
-msgid "Case sensitive"
-msgstr "Groß-/Kleinschreibung"
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:657
-msgid "Search next occurrence"
-msgstr "Weiter suchen"
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:694
-msgid "Search items in list"
-msgstr "Liste durchsuchen"
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/de_AT.po b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/de_AT.po
deleted file mode 100644 (file)
index 551813a..0000000
+++ /dev/null
@@ -1,309 +0,0 @@
-# German (Austria)
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo framework\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 10:36+0100\n"
-"PO-Revision-Date: 2006-12-15 17:22+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ASCII\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#. TRANSLATION: short representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:61
-msgid "key_short_Backspace"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:62
-msgid "key_short_Tab"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:63
-msgid "key_short_Space"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:64
-msgid "key_short_Enter"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:65
-msgid "key_short_Shift"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:66
-msgid "key_short_Control"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:67
-msgid "key_short_Alt"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:68
-msgid "key_short_CapsLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:69
-msgid "key_short_Meta"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:70
-msgid "key_short_Escape"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:71
-msgid "key_short_Left"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:72
-msgid "key_short_Up"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:73
-msgid "key_short_Right"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:74
-msgid "key_short_Down"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:75
-msgid "key_short_PageUp"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:76
-msgid "key_short_PageDown"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:77
-msgid "key_short_End"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:78
-msgid "key_short_Home"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:79
-msgid "key_short_Insert"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:80
-msgid "key_short_Delete"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:81
-msgid "key_short_NumLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:82
-msgid "key_short_PrintScreen"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:83
-msgid "key_short_Scroll"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:84
-msgid "key_short_Pause"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:85
-msgid "key_short_Win"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:86
-msgid "key_short_Apps"
-msgstr ""
-
-#. TRANSLATION: full/long representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:89
-msgid "key_full_Backspace"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:90
-msgid "key_full_Tab"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:91
-msgid "key_full_Space"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:92
-msgid "key_full_Enter"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:93
-msgid "key_full_Shift"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:94
-msgid "key_full_Control"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:95
-msgid "key_full_Alt"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:96
-msgid "key_full_CapsLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:97
-msgid "key_full_Meta"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:98
-msgid "key_full_Escape"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:99
-msgid "key_full_Left"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:100
-msgid "key_full_Up"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:101
-msgid "key_full_Right"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:102
-msgid "key_full_Down"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:103
-msgid "key_full_PageUp"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:104
-msgid "key_full_PageDown"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:105
-msgid "key_full_End"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:106
-msgid "key_full_Home"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:107
-msgid "key_full_Insert"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:108
-msgid "key_full_Delete"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:109
-msgid "key_full_NumLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:110
-msgid "key_full_PrintScreen"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:111
-msgid "key_full_Scroll"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:112
-msgid "key_full_Pause"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:113
-msgid "key_full_Win"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:114
-msgid "key_full_Apps"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:81
-msgid "Automatic"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:135
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:292
-msgid "Preview (Old/New)"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:161
-msgid "Open ColorSelector"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:175
-msgid "Color Selector"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:143
-msgid "Cancel"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:144
-msgid "OK"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:236
-msgid "Presets"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:280
-msgid "Details"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:325
-msgid "Hex"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:348
-msgid "RGB"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:376
-msgid "HSB"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:52
-msgid "Last year"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:53
-msgid "Last month"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:54
-msgid "Next month"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:55
-msgid "Next year"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooserButton.js:91
-msgid "Choose a date"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "Description"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "ID"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:620
-msgid "Case sensitive"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:657
-msgid "Search next occurrence"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:694
-msgid "Search items in list"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/de_DE.po b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/de_DE.po
deleted file mode 100644 (file)
index f6c16b0..0000000
+++ /dev/null
@@ -1,309 +0,0 @@
-# German (Germany)
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo framework\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 10:36+0100\n"
-"PO-Revision-Date: 2006-12-15 17:22+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ASCII\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#. TRANSLATION: short representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:61
-msgid "key_short_Backspace"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:62
-msgid "key_short_Tab"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:63
-msgid "key_short_Space"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:64
-msgid "key_short_Enter"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:65
-msgid "key_short_Shift"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:66
-msgid "key_short_Control"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:67
-msgid "key_short_Alt"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:68
-msgid "key_short_CapsLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:69
-msgid "key_short_Meta"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:70
-msgid "key_short_Escape"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:71
-msgid "key_short_Left"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:72
-msgid "key_short_Up"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:73
-msgid "key_short_Right"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:74
-msgid "key_short_Down"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:75
-msgid "key_short_PageUp"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:76
-msgid "key_short_PageDown"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:77
-msgid "key_short_End"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:78
-msgid "key_short_Home"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:79
-msgid "key_short_Insert"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:80
-msgid "key_short_Delete"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:81
-msgid "key_short_NumLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:82
-msgid "key_short_PrintScreen"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:83
-msgid "key_short_Scroll"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:84
-msgid "key_short_Pause"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:85
-msgid "key_short_Win"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:86
-msgid "key_short_Apps"
-msgstr ""
-
-#. TRANSLATION: full/long representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:89
-msgid "key_full_Backspace"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:90
-msgid "key_full_Tab"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:91
-msgid "key_full_Space"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:92
-msgid "key_full_Enter"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:93
-msgid "key_full_Shift"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:94
-msgid "key_full_Control"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:95
-msgid "key_full_Alt"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:96
-msgid "key_full_CapsLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:97
-msgid "key_full_Meta"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:98
-msgid "key_full_Escape"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:99
-msgid "key_full_Left"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:100
-msgid "key_full_Up"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:101
-msgid "key_full_Right"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:102
-msgid "key_full_Down"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:103
-msgid "key_full_PageUp"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:104
-msgid "key_full_PageDown"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:105
-msgid "key_full_End"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:106
-msgid "key_full_Home"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:107
-msgid "key_full_Insert"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:108
-msgid "key_full_Delete"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:109
-msgid "key_full_NumLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:110
-msgid "key_full_PrintScreen"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:111
-msgid "key_full_Scroll"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:112
-msgid "key_full_Pause"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:113
-msgid "key_full_Win"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:114
-msgid "key_full_Apps"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:81
-msgid "Automatic"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:135
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:292
-msgid "Preview (Old/New)"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:161
-msgid "Open ColorSelector"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:175
-msgid "Color Selector"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:143
-msgid "Cancel"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:144
-msgid "OK"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:236
-msgid "Presets"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:280
-msgid "Details"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:325
-msgid "Hex"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:348
-msgid "RGB"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:376
-msgid "HSB"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:52
-msgid "Last year"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:53
-msgid "Last month"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:54
-msgid "Next month"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:55
-msgid "Next year"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooserButton.js:91
-msgid "Choose a date"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "Description"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "ID"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:620
-msgid "Case sensitive"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:657
-msgid "Search next occurrence"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:694
-msgid "Search items in list"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/en.po b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/en.po
deleted file mode 100644 (file)
index d2babaf..0000000
+++ /dev/null
@@ -1,309 +0,0 @@
-# English
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo framework\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 10:36+0100\n"
-"PO-Revision-Date: 2006-12-15 17:22+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ASCII\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#. TRANSLATION: short representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:61
-msgid "key_short_Backspace"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:62
-msgid "key_short_Tab"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:63
-msgid "key_short_Space"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:64
-msgid "key_short_Enter"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:65
-msgid "key_short_Shift"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:66
-msgid "key_short_Control"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:67
-msgid "key_short_Alt"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:68
-msgid "key_short_CapsLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:69
-msgid "key_short_Meta"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:70
-msgid "key_short_Escape"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:71
-msgid "key_short_Left"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:72
-msgid "key_short_Up"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:73
-msgid "key_short_Right"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:74
-msgid "key_short_Down"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:75
-msgid "key_short_PageUp"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:76
-msgid "key_short_PageDown"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:77
-msgid "key_short_End"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:78
-msgid "key_short_Home"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:79
-msgid "key_short_Insert"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:80
-msgid "key_short_Delete"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:81
-msgid "key_short_NumLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:82
-msgid "key_short_PrintScreen"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:83
-msgid "key_short_Scroll"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:84
-msgid "key_short_Pause"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:85
-msgid "key_short_Win"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:86
-msgid "key_short_Apps"
-msgstr ""
-
-#. TRANSLATION: full/long representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:89
-msgid "key_full_Backspace"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:90
-msgid "key_full_Tab"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:91
-msgid "key_full_Space"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:92
-msgid "key_full_Enter"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:93
-msgid "key_full_Shift"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:94
-msgid "key_full_Control"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:95
-msgid "key_full_Alt"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:96
-msgid "key_full_CapsLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:97
-msgid "key_full_Meta"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:98
-msgid "key_full_Escape"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:99
-msgid "key_full_Left"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:100
-msgid "key_full_Up"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:101
-msgid "key_full_Right"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:102
-msgid "key_full_Down"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:103
-msgid "key_full_PageUp"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:104
-msgid "key_full_PageDown"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:105
-msgid "key_full_End"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:106
-msgid "key_full_Home"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:107
-msgid "key_full_Insert"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:108
-msgid "key_full_Delete"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:109
-msgid "key_full_NumLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:110
-msgid "key_full_PrintScreen"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:111
-msgid "key_full_Scroll"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:112
-msgid "key_full_Pause"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:113
-msgid "key_full_Win"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:114
-msgid "key_full_Apps"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:81
-msgid "Automatic"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:135
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:292
-msgid "Preview (Old/New)"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:161
-msgid "Open ColorSelector"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:175
-msgid "Color Selector"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:143
-msgid "Cancel"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:144
-msgid "OK"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:236
-msgid "Presets"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:280
-msgid "Details"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:325
-msgid "Hex"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:348
-msgid "RGB"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:376
-msgid "HSB"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:52
-msgid "Last year"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:53
-msgid "Last month"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:54
-msgid "Next month"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:55
-msgid "Next year"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooserButton.js:91
-msgid "Choose a date"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "Description"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "ID"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:620
-msgid "Case sensitive"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:657
-msgid "Search next occurrence"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:694
-msgid "Search items in list"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/en_US.po b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/en_US.po
deleted file mode 100644 (file)
index 290dcab..0000000
+++ /dev/null
@@ -1,309 +0,0 @@
-# English (US)
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo framework\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 10:36+0100\n"
-"PO-Revision-Date: 2006-12-15 17:22+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ASCII\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#. TRANSLATION: short representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:61
-msgid "key_short_Backspace"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:62
-msgid "key_short_Tab"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:63
-msgid "key_short_Space"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:64
-msgid "key_short_Enter"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:65
-msgid "key_short_Shift"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:66
-msgid "key_short_Control"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:67
-msgid "key_short_Alt"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:68
-msgid "key_short_CapsLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:69
-msgid "key_short_Meta"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:70
-msgid "key_short_Escape"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:71
-msgid "key_short_Left"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:72
-msgid "key_short_Up"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:73
-msgid "key_short_Right"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:74
-msgid "key_short_Down"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:75
-msgid "key_short_PageUp"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:76
-msgid "key_short_PageDown"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:77
-msgid "key_short_End"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:78
-msgid "key_short_Home"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:79
-msgid "key_short_Insert"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:80
-msgid "key_short_Delete"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:81
-msgid "key_short_NumLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:82
-msgid "key_short_PrintScreen"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:83
-msgid "key_short_Scroll"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:84
-msgid "key_short_Pause"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:85
-msgid "key_short_Win"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:86
-msgid "key_short_Apps"
-msgstr ""
-
-#. TRANSLATION: full/long representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:89
-msgid "key_full_Backspace"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:90
-msgid "key_full_Tab"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:91
-msgid "key_full_Space"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:92
-msgid "key_full_Enter"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:93
-msgid "key_full_Shift"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:94
-msgid "key_full_Control"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:95
-msgid "key_full_Alt"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:96
-msgid "key_full_CapsLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:97
-msgid "key_full_Meta"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:98
-msgid "key_full_Escape"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:99
-msgid "key_full_Left"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:100
-msgid "key_full_Up"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:101
-msgid "key_full_Right"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:102
-msgid "key_full_Down"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:103
-msgid "key_full_PageUp"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:104
-msgid "key_full_PageDown"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:105
-msgid "key_full_End"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:106
-msgid "key_full_Home"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:107
-msgid "key_full_Insert"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:108
-msgid "key_full_Delete"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:109
-msgid "key_full_NumLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:110
-msgid "key_full_PrintScreen"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:111
-msgid "key_full_Scroll"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:112
-msgid "key_full_Pause"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:113
-msgid "key_full_Win"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:114
-msgid "key_full_Apps"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:81
-msgid "Automatic"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:135
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:292
-msgid "Preview (Old/New)"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:161
-msgid "Open ColorSelector"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:175
-msgid "Color Selector"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:143
-msgid "Cancel"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:144
-msgid "OK"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:236
-msgid "Presets"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:280
-msgid "Details"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:325
-msgid "Hex"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:348
-msgid "RGB"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:376
-msgid "HSB"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:52
-msgid "Last year"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:53
-msgid "Last month"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:54
-msgid "Next month"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:55
-msgid "Next year"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooserButton.js:91
-msgid "Choose a date"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "Description"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "ID"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:620
-msgid "Case sensitive"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:657
-msgid "Search next occurrence"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:694
-msgid "Search items in list"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/es.po b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/es.po
deleted file mode 100644 (file)
index b9e4b45..0000000
+++ /dev/null
@@ -1,310 +0,0 @@
-# Spanish
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo framework\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 10:36+0100\n"
-"PO-Revision-Date: 2006-12-19 00:49-0500\n"
-"Last-Translator: Camilo Aguilar <camilo.aguilar@gmail.com>\n"
-"Language-Team:  <camilo.aguilar@gmail.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Spanish\n"
-"X-Poedit-Country: COLOMBIA\n"
-
-#. TRANSLATION: short representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:61
-msgid "key_short_Backspace"
-msgstr "Retroceso"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:62
-msgid "key_short_Tab"
-msgstr "Tab"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:63
-msgid "key_short_Space"
-msgstr "Espacio"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:64
-msgid "key_short_Enter"
-msgstr "Intro"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:65
-msgid "key_short_Shift"
-msgstr "Mayús"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:66
-msgid "key_short_Control"
-msgstr "Ctrl"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:67
-msgid "key_short_Alt"
-msgstr "Alt"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:68
-msgid "key_short_CapsLock"
-msgstr "BloqMayús"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:69
-msgid "key_short_Meta"
-msgstr "Meta"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:70
-msgid "key_short_Escape"
-msgstr "Esc"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:71
-msgid "key_short_Left"
-msgstr "Izquierda"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:72
-msgid "key_short_Up"
-msgstr "Arriba"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:73
-msgid "key_short_Right"
-msgstr "Derecha"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:74
-msgid "key_short_Down"
-msgstr "Abajo"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:75
-msgid "key_short_PageUp"
-msgstr "RePág"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:76
-msgid "key_short_PageDown"
-msgstr "AvPág"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:77
-msgid "key_short_End"
-msgstr "Fin"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:78
-msgid "key_short_Home"
-msgstr "Inicio"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:79
-msgid "key_short_Insert"
-msgstr "Insert"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:80
-msgid "key_short_Delete"
-msgstr "Supr"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:81
-msgid "key_short_NumLock"
-msgstr "BloqNum"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:82
-msgid "key_short_PrintScreen"
-msgstr "ImprPant"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:83
-msgid "key_short_Scroll"
-msgstr "BloqDespl"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:84
-msgid "key_short_Pause"
-msgstr "Pausa"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:85
-msgid "key_short_Win"
-msgstr "Win"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:86
-msgid "key_short_Apps"
-msgstr "Aplic"
-
-#. TRANSLATION: full/long representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:89
-msgid "key_full_Backspace"
-msgstr "Retroceso"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:90
-msgid "key_full_Tab"
-msgstr "Tabulador"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:91
-msgid "key_full_Space"
-msgstr "Espacio"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:92
-msgid "key_full_Enter"
-msgstr "Intro"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:93
-msgid "key_full_Shift"
-msgstr "Mayúscula"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:94
-msgid "key_full_Control"
-msgstr "Control"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:95
-msgid "key_full_Alt"
-msgstr "Alt"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:96
-msgid "key_full_CapsLock"
-msgstr "Bloqueo Mayúsculas"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:97
-msgid "key_full_Meta"
-msgstr "Meta"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:98
-msgid "key_full_Escape"
-msgstr "Escape"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:99
-msgid "key_full_Left"
-msgstr "Flecha izquierda"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:100
-msgid "key_full_Up"
-msgstr "Flecha arriba"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:101
-msgid "key_full_Right"
-msgstr "Flecha derecha"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:102
-msgid "key_full_Down"
-msgstr "Flecha abajo"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:103
-msgid "key_full_PageUp"
-msgstr "Retroceder Página"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:104
-msgid "key_full_PageDown"
-msgstr "Avanzar Página"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:105
-msgid "key_full_End"
-msgstr "Fin"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:106
-msgid "key_full_Home"
-msgstr "Inicio"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:107
-msgid "key_full_Insert"
-msgstr "Insertar"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:108
-msgid "key_full_Delete"
-msgstr "Suprimir"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:109
-msgid "key_full_NumLock"
-msgstr "Bloqueo Numérico"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:110
-msgid "key_full_PrintScreen"
-msgstr "Imprimir Pantalla"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:111
-msgid "key_full_Scroll"
-msgstr "Bloq. Despl."
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:112
-msgid "key_full_Pause"
-msgstr "Pausa"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:113
-msgid "key_full_Win"
-msgstr "Windows"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:114
-msgid "key_full_Apps"
-msgstr "Aplicaciones"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:81
-msgid "Automatic"
-msgstr "Automático"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:135
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:292
-msgid "Preview (Old/New)"
-msgstr "Vista previa (viejo/nuevo)"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:161
-msgid "Open ColorSelector"
-msgstr "Abrir selector de color"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:175
-msgid "Color Selector"
-msgstr "Selector de color"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:143
-msgid "Cancel"
-msgstr "Cancelar"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:144
-msgid "OK"
-msgstr "Aceptar"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:236
-msgid "Presets"
-msgstr "Preselecciones"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:280
-msgid "Details"
-msgstr "Detalles"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:325
-msgid "Hex"
-msgstr "Hex"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:348
-msgid "RGB"
-msgstr "RGB"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:376
-msgid "HSB"
-msgstr "HSB"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:52
-msgid "Last year"
-msgstr "Último año"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:53
-msgid "Last month"
-msgstr "Último mes"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:54
-msgid "Next month"
-msgstr "Mes siguiente"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:55
-msgid "Next year"
-msgstr "Año siguiente"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooserButton.js:91
-msgid "Choose a date"
-msgstr "Seleccione una fecha"
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "Description"
-msgstr "Descripción"
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "ID"
-msgstr "Código"
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:620
-msgid "Case sensitive"
-msgstr "Sensible a mayúscula"
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:657
-msgid "Search next occurrence"
-msgstr "Buscar siguiente"
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:694
-msgid "Search items in list"
-msgstr "Buscar elementos en la lista"
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/es_ES.po b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/es_ES.po
deleted file mode 100644 (file)
index a20d056..0000000
+++ /dev/null
@@ -1,309 +0,0 @@
-# Spanish (Spain)
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo framework\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 10:36+0100\n"
-"PO-Revision-Date: 2006-12-18 14:30+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ASCII\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#. TRANSLATION: short representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:61
-msgid "key_short_Backspace"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:62
-msgid "key_short_Tab"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:63
-msgid "key_short_Space"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:64
-msgid "key_short_Enter"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:65
-msgid "key_short_Shift"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:66
-msgid "key_short_Control"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:67
-msgid "key_short_Alt"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:68
-msgid "key_short_CapsLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:69
-msgid "key_short_Meta"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:70
-msgid "key_short_Escape"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:71
-msgid "key_short_Left"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:72
-msgid "key_short_Up"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:73
-msgid "key_short_Right"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:74
-msgid "key_short_Down"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:75
-msgid "key_short_PageUp"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:76
-msgid "key_short_PageDown"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:77
-msgid "key_short_End"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:78
-msgid "key_short_Home"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:79
-msgid "key_short_Insert"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:80
-msgid "key_short_Delete"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:81
-msgid "key_short_NumLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:82
-msgid "key_short_PrintScreen"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:83
-msgid "key_short_Scroll"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:84
-msgid "key_short_Pause"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:85
-msgid "key_short_Win"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:86
-msgid "key_short_Apps"
-msgstr ""
-
-#. TRANSLATION: full/long representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:89
-msgid "key_full_Backspace"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:90
-msgid "key_full_Tab"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:91
-msgid "key_full_Space"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:92
-msgid "key_full_Enter"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:93
-msgid "key_full_Shift"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:94
-msgid "key_full_Control"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:95
-msgid "key_full_Alt"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:96
-msgid "key_full_CapsLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:97
-msgid "key_full_Meta"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:98
-msgid "key_full_Escape"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:99
-msgid "key_full_Left"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:100
-msgid "key_full_Up"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:101
-msgid "key_full_Right"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:102
-msgid "key_full_Down"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:103
-msgid "key_full_PageUp"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:104
-msgid "key_full_PageDown"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:105
-msgid "key_full_End"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:106
-msgid "key_full_Home"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:107
-msgid "key_full_Insert"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:108
-msgid "key_full_Delete"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:109
-msgid "key_full_NumLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:110
-msgid "key_full_PrintScreen"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:111
-msgid "key_full_Scroll"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:112
-msgid "key_full_Pause"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:113
-msgid "key_full_Win"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:114
-msgid "key_full_Apps"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:81
-msgid "Automatic"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:135
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:292
-msgid "Preview (Old/New)"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:161
-msgid "Open ColorSelector"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:175
-msgid "Color Selector"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:143
-msgid "Cancel"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:144
-msgid "OK"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:236
-msgid "Presets"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:280
-msgid "Details"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:325
-msgid "Hex"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:348
-msgid "RGB"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:376
-msgid "HSB"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:52
-msgid "Last year"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:53
-msgid "Last month"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:54
-msgid "Next month"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:55
-msgid "Next year"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooserButton.js:91
-msgid "Choose a date"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "Description"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "ID"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:620
-msgid "Case sensitive"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:657
-msgid "Search next occurrence"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:694
-msgid "Search items in list"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/fr.po b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/fr.po
deleted file mode 100644 (file)
index d5ad55e..0000000
+++ /dev/null
@@ -1,309 +0,0 @@
-# French
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo framework\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 10:36+0100\n"
-"PO-Revision-Date: 2006-12-18 14:41-0500\n"
-"Last-Translator: Daniel Gagnon <redalastor@gmail.com>\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-
-#. TRANSLATION: short representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:61
-msgid "key_short_Backspace"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:62
-msgid "key_short_Tab"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:63
-msgid "key_short_Space"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:64
-msgid "key_short_Enter"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:65
-msgid "key_short_Shift"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:66
-msgid "key_short_Control"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:67
-msgid "key_short_Alt"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:68
-msgid "key_short_CapsLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:69
-msgid "key_short_Meta"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:70
-msgid "key_short_Escape"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:71
-msgid "key_short_Left"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:72
-msgid "key_short_Up"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:73
-msgid "key_short_Right"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:74
-msgid "key_short_Down"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:75
-msgid "key_short_PageUp"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:76
-msgid "key_short_PageDown"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:77
-msgid "key_short_End"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:78
-msgid "key_short_Home"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:79
-msgid "key_short_Insert"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:80
-msgid "key_short_Delete"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:81
-msgid "key_short_NumLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:82
-msgid "key_short_PrintScreen"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:83
-msgid "key_short_Scroll"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:84
-msgid "key_short_Pause"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:85
-msgid "key_short_Win"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:86
-msgid "key_short_Apps"
-msgstr ""
-
-#. TRANSLATION: full/long representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:89
-msgid "key_full_Backspace"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:90
-msgid "key_full_Tab"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:91
-msgid "key_full_Space"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:92
-msgid "key_full_Enter"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:93
-msgid "key_full_Shift"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:94
-msgid "key_full_Control"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:95
-msgid "key_full_Alt"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:96
-msgid "key_full_CapsLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:97
-msgid "key_full_Meta"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:98
-msgid "key_full_Escape"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:99
-msgid "key_full_Left"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:100
-msgid "key_full_Up"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:101
-msgid "key_full_Right"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:102
-msgid "key_full_Down"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:103
-msgid "key_full_PageUp"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:104
-msgid "key_full_PageDown"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:105
-msgid "key_full_End"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:106
-msgid "key_full_Home"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:107
-msgid "key_full_Insert"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:108
-msgid "key_full_Delete"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:109
-msgid "key_full_NumLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:110
-msgid "key_full_PrintScreen"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:111
-msgid "key_full_Scroll"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:112
-msgid "key_full_Pause"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:113
-msgid "key_full_Win"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:114
-msgid "key_full_Apps"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:81
-msgid "Automatic"
-msgstr "Automatique"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:135
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:292
-msgid "Preview (Old/New)"
-msgstr "Aperçu (Nouveau/Ancien)"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:161
-msgid "Open ColorSelector"
-msgstr "Ouvrir le sélecteur de couleurs"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:175
-msgid "Color Selector"
-msgstr "Sélecteur de couleur"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:143
-msgid "Cancel"
-msgstr "Annuller"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:144
-msgid "OK"
-msgstr "OK"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:236
-msgid "Presets"
-msgstr "Pré-réglages"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:280
-msgid "Details"
-msgstr "Détails"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:325
-msgid "Hex"
-msgstr "HEX"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:348
-msgid "RGB"
-msgstr "RVB"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:376
-msgid "HSB"
-msgstr "TSL"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:52
-msgid "Last year"
-msgstr "Année précédente"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:53
-msgid "Last month"
-msgstr "Mois précédant"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:54
-msgid "Next month"
-msgstr "Mois suivant"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:55
-msgid "Next year"
-msgstr "Année suivante"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooserButton.js:91
-msgid "Choose a date"
-msgstr "Choisissez une date"
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "Description"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "ID"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:620
-msgid "Case sensitive"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:657
-msgid "Search next occurrence"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:694
-msgid "Search items in list"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/fr_FR.po b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/fr_FR.po
deleted file mode 100644 (file)
index 475648a..0000000
+++ /dev/null
@@ -1,309 +0,0 @@
-# French (France)
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo framework\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 10:36+0100\n"
-"PO-Revision-Date: 2006-12-15 17:22+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ASCII\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#. TRANSLATION: short representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:61
-msgid "key_short_Backspace"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:62
-msgid "key_short_Tab"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:63
-msgid "key_short_Space"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:64
-msgid "key_short_Enter"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:65
-msgid "key_short_Shift"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:66
-msgid "key_short_Control"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:67
-msgid "key_short_Alt"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:68
-msgid "key_short_CapsLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:69
-msgid "key_short_Meta"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:70
-msgid "key_short_Escape"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:71
-msgid "key_short_Left"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:72
-msgid "key_short_Up"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:73
-msgid "key_short_Right"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:74
-msgid "key_short_Down"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:75
-msgid "key_short_PageUp"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:76
-msgid "key_short_PageDown"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:77
-msgid "key_short_End"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:78
-msgid "key_short_Home"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:79
-msgid "key_short_Insert"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:80
-msgid "key_short_Delete"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:81
-msgid "key_short_NumLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:82
-msgid "key_short_PrintScreen"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:83
-msgid "key_short_Scroll"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:84
-msgid "key_short_Pause"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:85
-msgid "key_short_Win"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:86
-msgid "key_short_Apps"
-msgstr ""
-
-#. TRANSLATION: full/long representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:89
-msgid "key_full_Backspace"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:90
-msgid "key_full_Tab"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:91
-msgid "key_full_Space"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:92
-msgid "key_full_Enter"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:93
-msgid "key_full_Shift"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:94
-msgid "key_full_Control"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:95
-msgid "key_full_Alt"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:96
-msgid "key_full_CapsLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:97
-msgid "key_full_Meta"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:98
-msgid "key_full_Escape"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:99
-msgid "key_full_Left"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:100
-msgid "key_full_Up"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:101
-msgid "key_full_Right"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:102
-msgid "key_full_Down"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:103
-msgid "key_full_PageUp"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:104
-msgid "key_full_PageDown"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:105
-msgid "key_full_End"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:106
-msgid "key_full_Home"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:107
-msgid "key_full_Insert"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:108
-msgid "key_full_Delete"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:109
-msgid "key_full_NumLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:110
-msgid "key_full_PrintScreen"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:111
-msgid "key_full_Scroll"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:112
-msgid "key_full_Pause"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:113
-msgid "key_full_Win"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:114
-msgid "key_full_Apps"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:81
-msgid "Automatic"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:135
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:292
-msgid "Preview (Old/New)"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:161
-msgid "Open ColorSelector"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:175
-msgid "Color Selector"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:143
-msgid "Cancel"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:144
-msgid "OK"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:236
-msgid "Presets"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:280
-msgid "Details"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:325
-msgid "Hex"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:348
-msgid "RGB"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:376
-msgid "HSB"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:52
-msgid "Last year"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:53
-msgid "Last month"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:54
-msgid "Next month"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:55
-msgid "Next year"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooserButton.js:91
-msgid "Choose a date"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "Description"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "ID"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:620
-msgid "Case sensitive"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:657
-msgid "Search next occurrence"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:694
-msgid "Search items in list"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/it.po b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/it.po
deleted file mode 100644 (file)
index 92f5a0e..0000000
+++ /dev/null
@@ -1,312 +0,0 @@
-# translation of it.po to Italiano
-# Italian
-#
-# Alessandro Sala <alessandro.sala@mclink.net>, 2007.
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo framework\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 10:36+0100\n"
-"PO-Revision-Date: 2007-01-06 13:26+0100\n"
-"Last-Translator: Alessandro Sala <alessandro.sala@mclink.net>\n"
-"Language-Team: Italiano <it@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
-
-#. TRANSLATION: short representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:61
-msgid "key_short_Backspace"
-msgstr "Backspace"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:62
-msgid "key_short_Tab"
-msgstr "Tab"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:63
-msgid "key_short_Space"
-msgstr "Spazio"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:64
-msgid "key_short_Enter"
-msgstr "Invio"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:65
-msgid "key_short_Shift"
-msgstr "Maiusc"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:66
-msgid "key_short_Control"
-msgstr "Ctrl"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:67
-msgid "key_short_Alt"
-msgstr "Alt"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:68
-msgid "key_short_CapsLock"
-msgstr "Bloc Maiusc"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:69
-msgid "key_short_Meta"
-msgstr "Meta"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:70
-msgid "key_short_Escape"
-msgstr "Esc"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:71
-msgid "key_short_Left"
-msgstr "Sinistra"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:72
-msgid "key_short_Up"
-msgstr "Su"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:73
-msgid "key_short_Right"
-msgstr "Destra"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:74
-msgid "key_short_Down"
-msgstr "Giù"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:75
-msgid "key_short_PageUp"
-msgstr "Pag Su"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:76
-msgid "key_short_PageDown"
-msgstr "Pag Giù"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:77
-msgid "key_short_End"
-msgstr "Fine"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:78
-msgid "key_short_Home"
-msgstr "Inizio"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:79
-msgid "key_short_Insert"
-msgstr "Ins"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:80
-msgid "key_short_Delete"
-msgstr "Canc"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:81
-msgid "key_short_NumLock"
-msgstr "Bloc Num"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:82
-msgid "key_short_PrintScreen"
-msgstr "Stamp"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:83
-msgid "key_short_Scroll"
-msgstr "Bloc Scorr"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:84
-msgid "key_short_Pause"
-msgstr "Pausa"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:85
-msgid "key_short_Win"
-msgstr "Win"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:86
-msgid "key_short_Apps"
-msgstr "Menu"
-
-#. TRANSLATION: full/long representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:89
-msgid "key_full_Backspace"
-msgstr "Backspace"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:90
-msgid "key_full_Tab"
-msgstr "Tabulazione"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:91
-msgid "key_full_Space"
-msgstr "Spazio"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:92
-msgid "key_full_Enter"
-msgstr "Invio"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:93
-msgid "key_full_Shift"
-msgstr "Maiuscole"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:94
-msgid "key_full_Control"
-msgstr "Control"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:95
-msgid "key_full_Alt"
-msgstr "Alt"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:96
-msgid "key_full_CapsLock"
-msgstr "Blocca Maiuscole"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:97
-msgid "key_full_Meta"
-msgstr "Meta"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:98
-msgid "key_full_Escape"
-msgstr "Escape"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:99
-msgid "key_full_Left"
-msgstr "Freccia Sinistra"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:100
-msgid "key_full_Up"
-msgstr "Freccia Su"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:101
-msgid "key_full_Right"
-msgstr "Freccia Destra"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:102
-msgid "key_full_Down"
-msgstr "Freccia Giù"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:103
-msgid "key_full_PageUp"
-msgstr "Pagina Su"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:104
-msgid "key_full_PageDown"
-msgstr "Pagina Giù"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:105
-msgid "key_full_End"
-msgstr "Fine"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:106
-msgid "key_full_Home"
-msgstr "Inizio"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:107
-msgid "key_full_Insert"
-msgstr "Inserisci"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:108
-msgid "key_full_Delete"
-msgstr "Cancella"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:109
-msgid "key_full_NumLock"
-msgstr "Blocca Numeri"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:110
-msgid "key_full_PrintScreen"
-msgstr "Stampa Schermo"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:111
-msgid "key_full_Scroll"
-msgstr "Blocca Scorrimento"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:112
-msgid "key_full_Pause"
-msgstr "Pausa"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:113
-msgid "key_full_Win"
-msgstr "Tasto Windows"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:114
-msgid "key_full_Apps"
-msgstr "Tasto Menu"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:81
-msgid "Automatic"
-msgstr "Automatico"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:135
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:292
-msgid "Preview (Old/New)"
-msgstr "Anteprima (Vecchio/Nuovo)"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:161
-msgid "Open ColorSelector"
-msgstr "Apri il Selettore dei Colori"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:175
-msgid "Color Selector"
-msgstr "Selettore dei Colori"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:143
-msgid "Cancel"
-msgstr "Annulla"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:144
-msgid "OK"
-msgstr "OK"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:236
-msgid "Presets"
-msgstr "Predefiniti"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:280
-msgid "Details"
-msgstr "Dettagli"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:325
-msgid "Hex"
-msgstr "Hex"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:348
-msgid "RGB"
-msgstr "RGB"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:376
-msgid "HSB"
-msgstr "TSL"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:52
-msgid "Last year"
-msgstr "Anno precedente"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:53
-msgid "Last month"
-msgstr "Mese precedente"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:54
-msgid "Next month"
-msgstr "Mese successivo"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:55
-msgid "Next year"
-msgstr "Anno successivo"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooserButton.js:91
-msgid "Choose a date"
-msgstr "Scegli una data"
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "Description"
-msgstr "Descrizione"
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "ID"
-msgstr "ID"
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:620
-msgid "Case sensitive"
-msgstr "Maiuscole/minuscole"
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:657
-msgid "Search next occurrence"
-msgstr "Cerca la prossima occorrenza"
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:694
-msgid "Search items in list"
-msgstr "Cerca tra le voci della lista"
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/ru.po b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/ru.po
deleted file mode 100644 (file)
index b21d38c..0000000
+++ /dev/null
@@ -1,309 +0,0 @@
-# Russian
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo framework\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 10:36+0100\n"
-"PO-Revision-Date: 2006-12-20 23:13+0200\n"
-"Last-Translator:  <zindel@gammacenter.com>\n"
-"Language-Team:  <en@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-
-#. TRANSLATION: short representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:61
-msgid "key_short_Backspace"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:62
-msgid "key_short_Tab"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:63
-msgid "key_short_Space"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:64
-msgid "key_short_Enter"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:65
-msgid "key_short_Shift"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:66
-msgid "key_short_Control"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:67
-msgid "key_short_Alt"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:68
-msgid "key_short_CapsLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:69
-msgid "key_short_Meta"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:70
-msgid "key_short_Escape"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:71
-msgid "key_short_Left"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:72
-msgid "key_short_Up"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:73
-msgid "key_short_Right"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:74
-msgid "key_short_Down"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:75
-msgid "key_short_PageUp"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:76
-msgid "key_short_PageDown"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:77
-msgid "key_short_End"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:78
-msgid "key_short_Home"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:79
-msgid "key_short_Insert"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:80
-msgid "key_short_Delete"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:81
-msgid "key_short_NumLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:82
-msgid "key_short_PrintScreen"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:83
-msgid "key_short_Scroll"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:84
-msgid "key_short_Pause"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:85
-msgid "key_short_Win"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:86
-msgid "key_short_Apps"
-msgstr ""
-
-#. TRANSLATION: full/long representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:89
-msgid "key_full_Backspace"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:90
-msgid "key_full_Tab"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:91
-msgid "key_full_Space"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:92
-msgid "key_full_Enter"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:93
-msgid "key_full_Shift"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:94
-msgid "key_full_Control"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:95
-msgid "key_full_Alt"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:96
-msgid "key_full_CapsLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:97
-msgid "key_full_Meta"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:98
-msgid "key_full_Escape"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:99
-msgid "key_full_Left"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:100
-msgid "key_full_Up"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:101
-msgid "key_full_Right"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:102
-msgid "key_full_Down"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:103
-msgid "key_full_PageUp"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:104
-msgid "key_full_PageDown"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:105
-msgid "key_full_End"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:106
-msgid "key_full_Home"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:107
-msgid "key_full_Insert"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:108
-msgid "key_full_Delete"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:109
-msgid "key_full_NumLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:110
-msgid "key_full_PrintScreen"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:111
-msgid "key_full_Scroll"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:112
-msgid "key_full_Pause"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:113
-msgid "key_full_Win"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:114
-msgid "key_full_Apps"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:81
-msgid "Automatic"
-msgstr "Автоматически"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:135
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:292
-msgid "Preview (Old/New)"
-msgstr "Предварительный просмотр"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:161
-msgid "Open ColorSelector"
-msgstr "Выбор цвета"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:175
-msgid "Color Selector"
-msgstr "Выбор цвета"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:143
-msgid "Cancel"
-msgstr "Отмена"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:144
-msgid "OK"
-msgstr "ОК"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:236
-msgid "Presets"
-msgstr "Настройки"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:280
-msgid "Details"
-msgstr "Детали"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:325
-msgid "Hex"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:348
-msgid "RGB"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:376
-msgid "HSB"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:52
-msgid "Last year"
-msgstr "Пред. год"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:53
-msgid "Last month"
-msgstr "Пред. месяц"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:54
-msgid "Next month"
-msgstr "След. месяц"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:55
-msgid "Next year"
-msgstr "След. год"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooserButton.js:91
-msgid "Choose a date"
-msgstr "Выберите дату"
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "Description"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "ID"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:620
-msgid "Case sensitive"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:657
-msgid "Search next occurrence"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:694
-msgid "Search items in list"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/sv.po b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/sv.po
deleted file mode 100644 (file)
index 66cb30e..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-# Swedish
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo framework\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 10:36+0100\n"
-"PO-Revision-Date: 2006-12-19 11:01+0100\n"
-"Last-Translator: Henric Johansson <henric.johansson@mindset.se>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#. TRANSLATION: short representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:61
-msgid "key_short_Backspace"
-msgstr "BS"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:62
-msgid "key_short_Tab"
-msgstr "Tabb"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:63
-msgid "key_short_Space"
-msgstr "Space"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:64
-msgid "key_short_Enter"
-msgstr "Enter"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:65
-msgid "key_short_Shift"
-msgstr "Shift"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:66
-msgid "key_short_Control"
-msgstr "CTRL"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:67
-msgid "key_short_Alt"
-msgstr "Alt"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:68
-msgid "key_short_CapsLock"
-msgstr "Caps"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:69
-msgid "key_short_Meta"
-msgstr "Meta"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:70
-msgid "key_short_Escape"
-msgstr "ESC"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:71
-msgid "key_short_Left"
-msgstr "Vänster"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:72
-msgid "key_short_Up"
-msgstr "Upp"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:73
-msgid "key_short_Right"
-msgstr "Höger"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:74
-msgid "key_short_Down"
-msgstr "Ner"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:75
-msgid "key_short_PageUp"
-msgstr "PGUP"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:76
-msgid "key_short_PageDown"
-msgstr "PGDN"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:77
-msgid "key_short_End"
-msgstr "END"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:78
-msgid "key_short_Home"
-msgstr "HOME"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:79
-msgid "key_short_Insert"
-msgstr "INS"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:80
-msgid "key_short_Delete"
-msgstr "DEL"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:81
-msgid "key_short_NumLock"
-msgstr "NUM"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:82
-msgid "key_short_PrintScreen"
-msgstr "PRNSCN"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:83
-msgid "key_short_Scroll"
-msgstr "SCL"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:84
-msgid "key_short_Pause"
-msgstr "Pause"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:85
-msgid "key_short_Win"
-msgstr "Win"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:86
-msgid "key_short_Apps"
-msgstr "Apps"
-
-#. TRANSLATION: full/long representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:89
-msgid "key_full_Backspace"
-msgstr "Backspace"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:90
-msgid "key_full_Tab"
-msgstr "Tabb"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:91
-msgid "key_full_Space"
-msgstr "Blanksteg"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:92
-msgid "key_full_Enter"
-msgstr "Enter"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:93
-msgid "key_full_Shift"
-msgstr "Shift"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:94
-msgid "key_full_Control"
-msgstr "Control"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:95
-msgid "key_full_Alt"
-msgstr "Alt"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:96
-msgid "key_full_CapsLock"
-msgstr "CapsLock"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:97
-msgid "key_full_Meta"
-msgstr "Meta"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:98
-msgid "key_full_Escape"
-msgstr "Escape"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:99
-msgid "key_full_Left"
-msgstr "Vänster"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:100
-msgid "key_full_Up"
-msgstr "Upp"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:101
-msgid "key_full_Right"
-msgstr "Höger"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:102
-msgid "key_full_Down"
-msgstr "Ner"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:103
-msgid "key_full_PageUp"
-msgstr "PageUp"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:104
-msgid "key_full_PageDown"
-msgstr "PageDown"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:105
-msgid "key_full_End"
-msgstr "End"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:106
-msgid "key_full_Home"
-msgstr "Home"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:107
-msgid "key_full_Insert"
-msgstr "Insert"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:108
-msgid "key_full_Delete"
-msgstr "Delete"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:109
-msgid "key_full_NumLock"
-msgstr "NumLock"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:110
-msgid "key_full_PrintScreen"
-msgstr "PrintScreen"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:111
-msgid "key_full_Scroll"
-msgstr "Scroll"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:112
-msgid "key_full_Pause"
-msgstr "Pause"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:113
-msgid "key_full_Win"
-msgstr "Win"
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:114
-msgid "key_full_Apps"
-msgstr "Apps"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:81
-msgid "Automatic"
-msgstr "Automatiskt"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:135
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:292
-msgid "Preview (Old/New)"
-msgstr "Förhandsgranska (Gammal/Ny)"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:161
-msgid "Open ColorSelector"
-msgstr "Öppna färgväljare"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:175
-msgid "Color Selector"
-msgstr "Färgväljare"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:143
-msgid "Cancel"
-msgstr "Avbryt"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:144
-msgid "OK"
-msgstr "OK"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:236
-msgid "Presets"
-msgstr "Förinställningar"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:280
-msgid "Details"
-msgstr "Detaljer"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:325
-msgid "Hex"
-msgstr "Hex"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:348
-msgid "RGB"
-msgstr "RGB"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:376
-msgid "HSB"
-msgstr "HSB"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:52
-msgid "Last year"
-msgstr "Föregående år"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:53
-msgid "Last month"
-msgstr "Föregående månad"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:54
-msgid "Next month"
-msgstr "Nästa månad"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:55
-msgid "Next year"
-msgstr "Nästa år"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooserButton.js:91
-msgid "Choose a date"
-msgstr "Välj ett datum"
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "Description"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "ID"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:620
-msgid "Case sensitive"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:657
-msgid "Search next occurrence"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:694
-msgid "Search items in list"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/tr.po b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/tr.po
deleted file mode 100644 (file)
index 00747a6..0000000
+++ /dev/null
@@ -1,311 +0,0 @@
-# Turkish
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo framework\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 10:36+0100\n"
-"PO-Revision-Date: 2006-12-18 21:14+0200\n"
-"Last-Translator: Fatih Tolga Ata <fatih@diyezon.com>\n"
-"Language-Team:  <fatih@tullab.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Turkish\n"
-"X-Poedit-Country: TURKEY\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-#. TRANSLATION: short representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:61
-msgid "key_short_Backspace"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:62
-msgid "key_short_Tab"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:63
-msgid "key_short_Space"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:64
-msgid "key_short_Enter"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:65
-msgid "key_short_Shift"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:66
-msgid "key_short_Control"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:67
-msgid "key_short_Alt"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:68
-msgid "key_short_CapsLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:69
-msgid "key_short_Meta"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:70
-msgid "key_short_Escape"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:71
-msgid "key_short_Left"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:72
-msgid "key_short_Up"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:73
-msgid "key_short_Right"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:74
-msgid "key_short_Down"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:75
-msgid "key_short_PageUp"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:76
-msgid "key_short_PageDown"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:77
-msgid "key_short_End"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:78
-msgid "key_short_Home"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:79
-msgid "key_short_Insert"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:80
-msgid "key_short_Delete"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:81
-msgid "key_short_NumLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:82
-msgid "key_short_PrintScreen"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:83
-msgid "key_short_Scroll"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:84
-msgid "key_short_Pause"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:85
-msgid "key_short_Win"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:86
-msgid "key_short_Apps"
-msgstr ""
-
-#. TRANSLATION: full/long representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:89
-msgid "key_full_Backspace"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:90
-msgid "key_full_Tab"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:91
-msgid "key_full_Space"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:92
-msgid "key_full_Enter"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:93
-msgid "key_full_Shift"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:94
-msgid "key_full_Control"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:95
-msgid "key_full_Alt"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:96
-msgid "key_full_CapsLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:97
-msgid "key_full_Meta"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:98
-msgid "key_full_Escape"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:99
-msgid "key_full_Left"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:100
-msgid "key_full_Up"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:101
-msgid "key_full_Right"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:102
-msgid "key_full_Down"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:103
-msgid "key_full_PageUp"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:104
-msgid "key_full_PageDown"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:105
-msgid "key_full_End"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:106
-msgid "key_full_Home"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:107
-msgid "key_full_Insert"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:108
-msgid "key_full_Delete"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:109
-msgid "key_full_NumLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:110
-msgid "key_full_PrintScreen"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:111
-msgid "key_full_Scroll"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:112
-msgid "key_full_Pause"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:113
-msgid "key_full_Win"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:114
-msgid "key_full_Apps"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:81
-msgid "Automatic"
-msgstr "Otomatik"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:135
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:292
-msgid "Preview (Old/New)"
-msgstr "Önizleme (Eski/Yeni)"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:161
-msgid "Open ColorSelector"
-msgstr "RenkSeçiciyi Aç"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:175
-msgid "Color Selector"
-msgstr "Renk Seçici"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:143
-msgid "Cancel"
-msgstr "İptal"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:144
-msgid "OK"
-msgstr "Tamam"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:236
-msgid "Presets"
-msgstr "Hazırlar"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:280
-msgid "Details"
-msgstr "Ayrıntılar"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:325
-msgid "Hex"
-msgstr "Onaltılık"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:348
-msgid "RGB"
-msgstr "RGB"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:376
-msgid "HSB"
-msgstr "HSB"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:52
-msgid "Last year"
-msgstr "Geçen yıl"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:53
-msgid "Last month"
-msgstr "Geçen ay"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:54
-msgid "Next month"
-msgstr "Sonraki ay"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:55
-msgid "Next year"
-msgstr "Sonraki yıl"
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooserButton.js:91
-msgid "Choose a date"
-msgstr "Bir tarih seç"
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "Description"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "ID"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:620
-msgid "Case sensitive"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:657
-msgid "Search next occurrence"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:694
-msgid "Search items in list"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/zh.po b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/translation/zh.po
deleted file mode 100644 (file)
index a0081c2..0000000
+++ /dev/null
@@ -1,309 +0,0 @@
-# Chinese
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: qooxdoo framework\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-01-26 10:36+0100\n"
-"PO-Revision-Date: 2006-12-19 16:16+0100\n"
-"Last-Translator: Automatically generated\n"
-"Language-Team: none\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ASCII\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#. TRANSLATION: short representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:61
-msgid "key_short_Backspace"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:62
-msgid "key_short_Tab"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:63
-msgid "key_short_Space"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:64
-msgid "key_short_Enter"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:65
-msgid "key_short_Shift"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:66
-msgid "key_short_Control"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:67
-msgid "key_short_Alt"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:68
-msgid "key_short_CapsLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:69
-msgid "key_short_Meta"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:70
-msgid "key_short_Escape"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:71
-msgid "key_short_Left"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:72
-msgid "key_short_Up"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:73
-msgid "key_short_Right"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:74
-msgid "key_short_Down"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:75
-msgid "key_short_PageUp"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:76
-msgid "key_short_PageDown"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:77
-msgid "key_short_End"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:78
-msgid "key_short_Home"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:79
-msgid "key_short_Insert"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:80
-msgid "key_short_Delete"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:81
-msgid "key_short_NumLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:82
-msgid "key_short_PrintScreen"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:83
-msgid "key_short_Scroll"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:84
-msgid "key_short_Pause"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:85
-msgid "key_short_Win"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:86
-msgid "key_short_Apps"
-msgstr ""
-
-#. TRANSLATION: full/long representation of key names
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:89
-msgid "key_full_Backspace"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:90
-msgid "key_full_Tab"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:91
-msgid "key_full_Space"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:92
-msgid "key_full_Enter"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:93
-msgid "key_full_Shift"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:94
-msgid "key_full_Control"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:95
-msgid "key_full_Alt"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:96
-msgid "key_full_CapsLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:97
-msgid "key_full_Meta"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:98
-msgid "key_full_Escape"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:99
-msgid "key_full_Left"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:100
-msgid "key_full_Up"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:101
-msgid "key_full_Right"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:102
-msgid "key_full_Down"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:103
-msgid "key_full_PageUp"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:104
-msgid "key_full_PageDown"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:105
-msgid "key_full_End"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:106
-msgid "key_full_Home"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:107
-msgid "key_full_Insert"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:108
-msgid "key_full_Delete"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:109
-msgid "key_full_NumLock"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:110
-msgid "key_full_PrintScreen"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:111
-msgid "key_full_Scroll"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:112
-msgid "key_full_Pause"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:113
-msgid "key_full_Win"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/locale/Key.js:114
-msgid "key_full_Apps"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:81
-msgid "Automatic"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:135
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:292
-msgid "Preview (Old/New)"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:161
-msgid "Open ColorSelector"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorPopup.js:175
-msgid "Color Selector"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:143
-msgid "Cancel"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:144
-msgid "OK"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:236
-msgid "Presets"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:280
-msgid "Details"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:325
-msgid "Hex"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:348
-msgid "RGB"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/ColorSelector.js:376
-msgid "HSB"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:52
-msgid "Last year"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:53
-msgid "Last month"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:54
-msgid "Next month"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooser.js:55
-msgid "Next year"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/component/DateChooserButton.js:91
-msgid "Choose a date"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "Description"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:67
-msgid "ID"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:620
-msgid "Case sensitive"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:657
-msgid "Search next occurrence"
-msgstr ""
-
-#: ../../../frontend/framework/source/class/qx/ui/form/ComboBoxEx.js:694
-msgid "Search items in list"
-msgstr ""
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/generator.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/generator.py
deleted file mode 100755 (executable)
index 76df2d9..0000000
+++ /dev/null
@@ -1,1083 +0,0 @@
-#!/usr/bin/env python
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Andreas Ecker (ecker)
-#    * Fabian Jakobs (fjakobs)
-#    * Alessandro Sala (asala)
-#
-################################################################################
-
-import sys, re, os, optparse, math
-
-# reconfigure path to import own modules from modules subfolder
-sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(sys.argv[0])), "modules"))
-
-import config, tokenizer, loader, api, tree, treegenerator, settings, resources
-import filetool, stringoptimizer, optparseext, variableoptimizer, obfuscator, compiler
-import migrator, textutil, graph
-
-
-
-
-
-
-def getparser():
-  parser = optparse.OptionParser("usage: %prog [options]", option_class=optparseext.ExtendAction)
-
-
-  #################################################################################
-  # GENERAL
-  #################################################################################
-
-  # From/To File
-  parser.add_option("--from-file", dest="fromFile", metavar="FILENAME", help="Read options from FILENAME.")
-  parser.add_option("--export-to-file", dest="exportToFile", metavar="FILENAME", help="Store options to FILENAME.")
-
-  # Directories (Lists, Match using index)
-  parser.add_option("--class-path", action="extend", dest="classPath", metavar="DIRECTORY", type="string", default=[], help="Define a script input directory.")
-  parser.add_option("--class-uri", action="extend", dest="classUri", metavar="PATH", type="string", default=[], help="Define a script path for the source version.")
-  parser.add_option("--class-encoding", action="extend", dest="classEncoding", metavar="ENCODING", type="string", default=[], help="Define the encoding for a script input directory.")
-  parser.add_option("--resource-input", action="extend", dest="resourceInput", metavar="DIRECTORY", type="string", default=[], help="Define a resource input directory.")
-  parser.add_option("--resource-output", action="extend", dest="resourceOutput", metavar="DIRECTORY", type="string", default=[], help="Define a resource output directory.")
-
-  # Available Actions
-  parser.add_option("--generate-compiled-script", action="store_true", dest="generateCompiledScript", default=False, help="Compile source files.")
-  parser.add_option("--generate-source-script", action="store_true", dest="generateSourceScript", default=False, help="Generate source version.")
-  parser.add_option("--generate-api-documentation", action="store_true", dest="generateApiDocumentation", default=False, help="Generate API documentation.")
-  parser.add_option("--copy-resources", action="store_true", dest="copyResources", default=False, help="Copy resource files.")
-  parser.add_option("--fix-source", action="store_true", dest="fixSource", default=False, help="Fix source files")
-  parser.add_option("--pretty-print", action="store_true", dest="prettyPrint", default=False, help="Pretty print source code.")
-  parser.add_option("--migrate-source", action="store_true", dest="migrateSource", default=False, help="Migrate existing code to new version.")
-
-  # Debug Actions
-  parser.add_option("--store-tokens", action="store_true", dest="storeTokens", default=False, help="Store tokenized content of source files. (Debugging)")
-  parser.add_option("--store-tree", action="store_true", dest="storeTree", default=False, help="Store tree content of source files. (Debugging)")
-  parser.add_option("--print-files", action="store_true", dest="printFiles", default=False, help="Output known files. (Debugging)")
-  parser.add_option("--print-modules", action="store_true", dest="printModules", default=False, help="Output known modules. (Debugging)")
-  parser.add_option("--print-files-without-modules", action="store_true", dest="printFilesWithoutModules", default=False, help="Output files which have no module connection. (Debugging)")
-  parser.add_option("--print-includes", action="store_true", dest="printIncludes", default=False, help="Output sorted file list. (Debugging)")
-  parser.add_option("--print-dependencies", action="store_true", dest="printDeps", default=False, help="Output dependencies of files. (Debugging)")
-  parser.add_option("--dependencies-graphviz-file", dest="depDotFile", metavar="FILENAME", help="Save dependencies as graphviz dot file. (Debugging)")
-
-  # Output files
-  parser.add_option("--source-script-file", dest="sourceScriptFile", metavar="FILENAME", help="Name of output file from source build process.")
-  parser.add_option("--source-template-input-file", dest="sourceTemplateInputFile", metavar="FILENAME", help="Name of a template file to patch")
-  parser.add_option("--source-template-output-file", dest="sourceTemplateOutputFile", metavar="FILENAME", help="Name of the resulting file to store the modified template to.")
-  parser.add_option("--source-template-replace", dest="sourceTemplateReplace", default="<!-- qooxdoo-script-block -->", metavar="CODE", help="Content of the template which should be replaced with the script block.")
-  parser.add_option("--compiled-script-file", dest="compiledScriptFile", metavar="FILENAME", help="Name of output file from compiler.")
-  parser.add_option("--api-documentation-json-file", dest="apiDocumentationJsonFile", metavar="FILENAME", help="Name of JSON API file.")
-  parser.add_option("--api-documentation-xml-file", dest="apiDocumentationXmlFile", metavar="FILENAME", help="Name of XML API file.")
-  parser.add_option("--settings-script-file", dest="settingsScriptFile", metavar="FILENAME", help="Name of settings script file.")
-
-  # Encoding
-  parser.add_option("--script-output-encoding", dest="scriptOutputEncoding", default="utf-8", metavar="ENCODING", help="Defines the encoding used for script output files.")
-  parser.add_option("--xml-output-encoding", dest="xmlOutputEncoding", default="utf-8", metavar="ENCODING", help="Defines the encoding used for XML output files.")
-
-
-
-  #################################################################################
-  # OPTIONS
-  #################################################################################
-
-  # General options
-  parser.add_option("-q", "--quiet", action="store_false", dest="verbose", default=False, help="Quiet output mode.")
-  parser.add_option("-v", "--verbose", action="store_true", dest="verbose", help="Verbose output mode.")
-  parser.add_option("-d", "--debug", action="store_true", dest="enableDebug", help="Enable debug mode.")
-  parser.add_option("--version", dest="version", default="0.0", metavar="VERSION", help="Version number of qooxdoo")
-  parser.add_option("--package-id", dest="packageId", default="", metavar="ID", help="Defines a package ID (required for string optimization etc.)")
-  parser.add_option("--disable-internal-check", action="store_true", dest="disableInternalCheck", default=False, help="Disable check of modifications to internal files.")
-
-  # Options for source and compiled version
-  parser.add_option("--define-runtime-setting", action="append", dest="defineRuntimeSetting", metavar="NAMESPACE.KEY:VALUE", default=[], help="Define a setting.")
-  parser.add_option("--add-new-lines", action="store_true", dest="addNewLines", default=False, help="Keep newlines in compiled files.")
-
-  # Options for compiled version
-  parser.add_option("--add-file-ids", action="store_true", dest="addFileIds", default=False, help="Add file IDs to compiled output.")
-  parser.add_option("--optimize-strings", action="store_true", dest="optimizeStrings", default=False, help="Optimize strings. Increase mshtml performance.")
-  parser.add_option("--optimize-variables", action="store_true", dest="optimizeVariables", default=False, help="Optimize variables. Reducing size.")
-  parser.add_option("--optimize-variables-skip-prefix", action="store", dest="optimizeVariablesSkipPrefix", metavar="PREFIX", default="", help="Skip optimization of variables beginning with PREFIX [default: optimize all variables].")
-  parser.add_option("--obfuscate-identifiers", action="store_true", dest="obfuscateIdentifiers", default=False, help="Obfuscate public names like function names. (ALPHA!)")
-
-  # Options for resource copying
-  parser.add_option("--enable-resource-filter", action="store_true", dest="enableResourceFilter", default=False, help="Enable filtering of resource files used by classes (based on #embed).")
-
-  # Options for token/tree storage
-  parser.add_option("--token-output-directory", dest="tokenOutputDirectory", metavar="DIRECTORY", help="Define output directory for tokenizer result of the incoming JavaScript files. (Debugging)")
-  parser.add_option("--tree-output-directory", dest="treeOutputDirectory", metavar="DIRECTORY", help="Define output directory for generated tree of the incoming JavaScript files. (Debugging)")
-
-  # Cache Directory
-  parser.add_option("--cache-directory", dest="cacheDirectory", metavar="DIRECTORY", help="If this is defined the loader trys to use cache to optimize the performance.")
-
-  # Options for migration support
-  parser.add_option("--migration-target", dest="migrationTarget", metavar="VERSION", help="Define the target for migration of source code.")
-  parser.add_option("--migration-input", action="extend", dest="migrationInput", metavar="DIRECTORY", type="string", default=[], help="Define additional directories for to directories to migrate e.g. HTML files, ...")
-
-
-
-
-  #################################################################################
-  # INCLUDE/EXCLUDE
-  #################################################################################
-
-  # Include/Exclude
-  parser.add_option("-i", "--include", action="extend", dest="includeWithDeps", metavar="ID", type="string", default=[], help="Include ID")
-  parser.add_option("-e", "--exclude", action="extend", dest="excludeWithDeps", metavar="ID", type="string", default=[], help="Exclude ID")
-  parser.add_option("--include-without-dependencies", action="extend", dest="includeWithoutDeps", metavar="ID", type="string", default=[], help="Include ID")
-  parser.add_option("--exclude-without-dependencies", action="extend", dest="excludeWithoutDeps", metavar="ID", type="string", default=[], help="Exclude ID")
-
-  # Include/Exclude options
-  parser.add_option("--disable-auto-dependencies", action="store_false", dest="enableAutoDependencies", default=True, help="Disable detection of dependencies.")
-
-  return parser
-
-
-
-
-
-
-def argparser(cmdlineargs):
-
-  # Parse arguments
-  (options, args) = getparser().parse_args(cmdlineargs)
-
-  # Export to file
-  if options.exportToFile != None:
-    print
-    print "  EXPORTING:"
-    print "----------------------------------------------------------------------------"
-
-    print "  * Translating options..."
-
-    optionString = "# Exported configuration from build.py\n\n"
-    ignoreValue = True
-    lastWasKey = False
-
-    for arg in cmdlineargs:
-      if arg == "--export-to-file":
-        ignoreValue = True
-
-      elif arg.startswith("--"):
-        if lastWasKey:
-          optionString += "\n"
-
-        optionString += arg[2:]
-        ignoreValue = False
-        lastWasKey = True
-
-      elif arg.startswith("-"):
-        print "     - Could not export short argument: %s" % arg
-        optionString += "\n# Ignored short argument %s\n" % arg
-        ignoreValue = True
-
-      elif not ignoreValue:
-        optionString += " = %s\n" % arg
-        ignoreValue = True
-        lastWasKey = False
-
-
-
-    print "  * Export to file: %s" % options.exportToFile
-    filetool.save(options.exportToFile, optionString)
-
-    sys.exit(0)
-
-  # Read from file
-  elif options.fromFile != None:
-
-    print
-    print "  INITIALIZATION:"
-    print "----------------------------------------------------------------------------"
-
-    print "  * Reading configuration..."
-
-    # Convert file content into arguments
-    fileargs = {}
-    fileargpos = 0
-    fileargid = "default"
-    currentfileargs = []
-    fileargs[fileargid] = currentfileargs
-
-    alternativeFormatBegin = re.compile("\s*\[\s*")
-    alternativeFormatEnd = re.compile("\s*\]\s*=\s*")
-    emptyLine = re.compile("^\s*$")
-
-    for line in file(options.fromFile).read().split("\n"):
-      line = line.strip()
-
-      if emptyLine.match(line) or line.startswith("#") or line.startswith("//"):
-        continue
-
-      # Translating...
-      line = alternativeFormatBegin.sub(" = ", line)
-      line = alternativeFormatEnd.sub(":", line)
-
-      # Splitting line
-      line = line.split("=")
-
-      # Extract key element
-      key = line.pop(0).strip()
-
-      # Separate packages
-      if key == "package":
-        fileargpos += 1
-        fileargid = line[0].strip()
-
-        print "    - Found package: %s" % fileargid
-
-        currentfileargs = []
-        fileargs[fileargid] = currentfileargs
-        continue
-
-      currentfileargs.append("--%s" % key)
-
-      if len(line) > 0:
-        value = line[0].strip()
-        currentfileargs.append(value)
-
-    # Parse
-    defaultargs = fileargs["default"]
-
-    if len(fileargs) > 1:
-      (fileDb, moduleDb) = load(getparser().parse_args(defaultargs)[0])
-
-      if options.obfuscateIdentifiers:
-        sharednames = {}
-
-        for filearg in fileargs:
-          if filearg == "default":
-            continue
-
-          combinedargs = []
-          combinedargs.extend(defaultargs)
-          combinedargs.extend(fileargs[filearg])
-
-          options = getparser().parse_args(defaultargs)[0]
-          findnames(fileDb, moduleDb, options, sharednames)
-
-        names = obfuscator.sort(sharednames)
-
-      for filearg in fileargs:
-        if filearg == "default":
-          continue
-
-        print
-        print
-        print
-        print
-        print "  PACKAGE: %s" % filearg
-        print "----------------------------------------------------------------------------"
-
-        combinedargs = []
-        combinedargs.extend(defaultargs)
-        combinedargs.extend(fileargs[filearg])
-
-        options = getparser().parse_args(combinedargs)[0]
-
-        if options.obfuscateIdentifiers:
-          execute(fileDb, moduleDb, options, filearg, names)
-        else:
-          execute(fileDb, moduleDb, options, filearg)
-
-    else:
-      options = getparser().parse_args(defaultargs)[0]
-      (fileDb, moduleDb) = load(options)
-
-      if options.obfuscateIdentifiers:
-        execute(fileDb, moduleDb, options, "", obfuscator.sort(findnames(fileDb, moduleDb, options)))
-      else:
-        execute(fileDb, moduleDb, options, "")
-
-  else:
-    print
-    print "  INITIALIZATION:"
-    print "----------------------------------------------------------------------------"
-
-    print "  * Processing arguments..."
-
-    (fileDb, moduleDb) = load(options)
-
-    if options.obfuscateIdentifiers:
-      execute(fileDb, moduleDb, options, options.packageId, obfuscator.sort(findnames(fileDb, moduleDb, options)))
-    else:
-      execute(fileDb, moduleDb, options, options.packageId)
-
-
-
-
-
-
-
-def main():
-  if len(sys.argv[1:]) == 0:
-    basename = os.path.basename(sys.argv[0])
-    print "usage: %s [options]" % basename
-    print "Try '%s -h' or '%s --help' to show the help message." % (basename, basename)
-    sys.exit(1)
-
-  argparser(sys.argv[1:])
-
-
-
-
-
-
-def load(options):
-
-  ######################################################################
-  #  SOURCE LOADER
-  ######################################################################
-
-  print
-  print "  SOURCE LOADER:"
-  print "----------------------------------------------------------------------------"
-
-  if options.classPath == None or len(options.classPath) == 0:
-    if len(options.migrationInput) == 0:
-      basename = os.path.basename(sys.argv[0])
-      print "You must define at least one script input directory!"
-      print "usage: %s [options]" % basename
-      print "Try '%s -h' or '%s --help' to show the help message." % (basename, basename)
-      sys.exit(1)
-
-  (fileDb, moduleDb) = loader.indexScriptInput(options)
-
-
-
-
-
-  ######################################################################
-  #  DEBUG OUTPUT JOBS
-  ######################################################################
-
-  if options.printFiles:
-    print
-    print "  OUTPUT OF KNOWN FILES:"
-    print "----------------------------------------------------------------------------"
-    print "  * These are all known files:"
-    for fileEntry in fileDb:
-      print "    - %s (%s)" % (fileEntry, fileDb[fileEntry]["path"])
-
-  if options.printModules:
-    print
-    print "  OUTPUT OF KNOWN MODULES:"
-    print "----------------------------------------------------------------------------"
-    print "  * These are all known modules:"
-    for moduleEntry in moduleDb:
-      print "    * %s" % moduleEntry
-      for fileEntry in moduleDb[moduleEntry]:
-        print "      - %s" % fileEntry
-
-  if options.printFilesWithoutModules:
-    print
-    print "  OUTPUT OF FILES WHICH HAVE NO MODULE CONNECTION:"
-    print "----------------------------------------------------------------------------"
-    print "  * These are all files without a module connection:"
-    for fileEntry in fileDb:
-      fileFound = False
-
-      for moduleEntry in moduleDb:
-        for moduleFile in moduleDb[moduleEntry]:
-          if moduleFile == fileEntry:
-            fileFound = True
-            break
-
-      if not fileFound:
-        print "    - %s" % fileEntry
-
-
-
-  return fileDb, moduleDb
-
-
-
-
-
-def findnames(fileDb, moduleDb, options, names={}):
-
-  print
-  print "  SEARCHING FOR IDENTIFIERS:"
-  print "----------------------------------------------------------------------------"
-
-  if options.verbose:
-    print "  * Searching..."
-  else:
-    print "  * Searching: ",
-
-
-  sortedIncludeList = loader.getSortedList(options, fileDb, moduleDb)
-
-  for fileId in sortedIncludeList:
-    if options.verbose:
-      print "    - %s" % fileId
-
-    else:
-      sys.stdout.write(".")
-      sys.stdout.flush()
-
-    obfuscator.search(loader.getTree(fileDb, fileId, options), names)
-
-  if not options.verbose:
-    print
-
-  return names
-
-
-
-
-
-
-
-
-def execute(fileDb, moduleDb, options, pkgid="", names=[]):
-
-  additionalOutput = []
-
-
-  ######################################################################
-  #  SORT OF INCLUDE LIST
-  ######################################################################
-
-  print
-  print "  SORT OF INCLUDE LIST:"
-  print "----------------------------------------------------------------------------"
-
-  if options.verbose:
-    print "  * Include (with dependencies): %s" % options.includeWithDeps
-    print "  * Include (without dependencies): %s" % options.includeWithoutDeps
-    print "  * Exclude (with dependencies): %s" % options.excludeWithDeps
-    print "  * Exclude (without dependencies): %s" % options.excludeWithoutDeps
-
-  print "  * Sorting %s classes..." % len(fileDb)
-
-  sortedIncludeList = loader.getSortedList(options, fileDb, moduleDb)
-
-  if len(sortedIncludeList) == 0:
-       print "    - No class files to include. Exciting!"
-       sys.exit(1)
-  else:
-       print "    - Including %s classes" % len(sortedIncludeList)
-
-  if options.printIncludes:
-    print
-    print "  PRINT OF INCLUDE ORDER:"
-    print "----------------------------------------------------------------------------"
-    print "  * The files will be included in this order:"
-    for fileId in sortedIncludeList:
-      print "    - %s" % fileId
-
-  if options.printDeps:
-    print
-    print "  OUTPUT OF DEPENDENCIES:"
-    print "----------------------------------------------------------------------------"
-    print "  * These are all included files with their dependencies:"
-    for fileId in sortedIncludeList:
-      print "    - %s" % fileId
-      if len(fileDb[fileId]["loadtimeDeps"]) > 0:
-        print "      - Loadtime: "
-        for depEntry in fileDb[fileId]["loadtimeDeps"]:
-          print "        - %s" % depEntry
-
-      if len(fileDb[fileId]["afterDeps"]) > 0:
-        print "      - After: "
-        for depEntry in fileDb[fileId]["afterDeps"]:
-          print "        - %s" % depEntry
-
-      if len(fileDb[fileId]["runtimeDeps"]) > 0:
-        print "      - Runtime: "
-        for depEntry in fileDb[fileId]["runtimeDeps"]:
-          print "        - %s" % depEntry
-
-      if len(fileDb[fileId]["loadDeps"]) > 0:
-        print "      - Load: "
-        for depEntry in fileDb[fileId]["loadDeps"]:
-          print "        - %s" % depEntry
-
-      if len(fileDb[fileId]["optionalDeps"]) > 0:
-        print "      - Optional: "
-        for depEntry in fileDb[fileId]["optionalDeps"]:
-          print "        - %s" % depEntry
-
-
-
-
-
-  ######################################################################
-  #  GRAPHVIZ OUTPUT
-  ######################################################################
-
-  if options.depDotFile:
-    graph.store(fileDb, sortedIncludeList, options)
-
-
-
-
-
-
-  ######################################################################
-  #  SOURCE MIGRATION
-  ######################################################################
-
-  if options.migrateSource:
-    print
-    print "  SOURCE MIGRATION:"
-    print "----------------------------------------------------------------------------"
-
-    print "  * Migrate Source Code..."
-
-    migrator.handle(sortedIncludeList, fileDb, options)
-
-    # Return after migration: Ignore other jobs
-    return
-
-
-
-
-
-  ######################################################################
-  #  GENERATION OF PRETTY PRINTED CODE
-  ######################################################################
-
-  if options.fixSource:
-    print
-    print "  FIX SOURCE CODE:"
-    print "----------------------------------------------------------------------------"
-
-    if options.verbose:
-      print "  * Fixing code..."
-    else:
-      print "  * Fixing code: ",
-
-    for fileId in sortedIncludeList:
-      if options.verbose:
-        print "    - Reading %s" % fileId
-
-      fileEntry = fileDb[fileId]
-
-      filePath = fileEntry["path"]
-      fileEncoding = fileEntry["encoding"]
-
-      fileContent = filetool.read(filePath, fileEncoding)
-      fixedContent = textutil.removeTrailingSpaces(textutil.tab2Space(textutil.any2Unix(fileContent), 2))
-
-      if fixedContent != fileContent:
-        if options.verbose:
-          print "      - Storing modifications..."
-        else:
-          sys.stdout.write("!")
-          sys.stdout.flush()
-
-        filetool.save(filePath, fixedContent, fileEncoding)
-
-      elif not options.verbose:
-        sys.stdout.write(".")
-        sys.stdout.flush()
-
-    if not options.verbose:
-      print
-
-    # Return after fixing: Ignore other jobs
-    return
-
-
-
-
-
-
-  ######################################################################
-  #  GENERATION OF PRETTY PRINTED CODE
-  ######################################################################
-
-  if options.prettyPrint:
-    print
-    print "  GENERATION OF PRETTY PRINTED CODE:"
-    print "----------------------------------------------------------------------------"
-
-    if options.verbose:
-      print "  * Pretty printing..."
-    else:
-      print "  * Pretty printing: ",
-
-    for fileId in sortedIncludeList:
-      if options.verbose:
-        print "    - Compiling %s" % fileId
-      else:
-        sys.stdout.write(".")
-        sys.stdout.flush()
-
-      prettyFileContent = compiler.compile(loader.getTree(fileDb, fileId, options), True)
-
-      if not prettyFileContent.endswith("\n"):
-        prettyFileContent += "\n"
-
-      filetool.save(fileDb[fileId]["path"], prettyFileContent)
-
-    if not options.verbose:
-      print
-
-    # Return after pretty print: Ignore other jobs
-    return
-
-
-
-  ######################################################################
-  #  STRING OPTIMIZATION
-  ######################################################################
-
-  if options.optimizeStrings:
-    print
-    print "  STRING OPTIMIZATION:"
-    print "----------------------------------------------------------------------------"
-
-    if options.verbose:
-      print "  * Searching strings..."
-    else:
-      print "  * Searching strings: ",
-
-    stringMap = {}
-
-    for fileId in sortedIncludeList:
-      if options.verbose:
-        print "    - %s" % fileId
-      else:
-        sys.stdout.write(".")
-        sys.stdout.flush()
-
-      localMap = loader.getStrings(fileDb, fileId, options)
-
-      for value in localMap:
-        if value in stringMap:
-          stringMap[value] += localMap[value]
-        else:
-          stringMap[value] = localMap[value]
-
-    if not options.verbose:
-      print
-
-    counter = 0
-    for value in stringMap:
-      counter += stringMap[value]
-
-    stringList = stringoptimizer.sort(stringMap)
-
-    print "  * Found %s strings (used %s times)" % (len(stringMap), counter)
-
-    if options.verbose:
-      print "  * Replacing strings..."
-    else:
-      print "  * Replacing strings: ",
-
-    for fileId in sortedIncludeList:
-      if options.verbose:
-        print "    - %s" % fileId
-      else:
-        sys.stdout.write(".")
-        sys.stdout.flush()
-
-      stringoptimizer.replace(loader.getTree(fileDb, fileId, options), stringList, "$" + pkgid, options.verbose)
-
-    if not options.verbose:
-      print
-
-    print "  * Generating replacement..."
-    additionalOutput.append(stringoptimizer.replacement(stringList, "$" + pkgid))
-
-
-
-
-
-
-  ######################################################################
-  #  LOCAL VARIABLE OPTIMIZATION
-  ######################################################################
-
-  if options.optimizeVariables:
-    print
-    print "  LOCAL VARIABLE OPTIMIZATION:"
-    print "----------------------------------------------------------------------------"
-
-    if options.verbose:
-      print "  * Optimizing variables..."
-    else:
-      print "  * Optimizing variables: ",
-
-    for fileId in sortedIncludeList:
-      if options.verbose:
-        print "    - %s" % fileId
-      else:
-        sys.stdout.write(".")
-        sys.stdout.flush()
-
-      variableoptimizer.search(loader.getTree(fileDb, fileId, options), [], 0, "$", skipPrefix = options.optimizeVariablesSkipPrefix, debug = options.enableDebug)
-
-    if not options.verbose:
-      print
-
-
-
-
-
-
-  ######################################################################
-  #  NAME OBFUSCATION
-  ######################################################################
-
-  if options.obfuscateIdentifiers:
-    print
-    print "  OBFUSCATE IDENTIFIERS:"
-    print "----------------------------------------------------------------------------"
-
-    if options.verbose:
-      print "  * Obfuscating identifiers..."
-    else:
-      print "  * Obfuscating identifiers: ",
-
-    counter = 0
-
-    for fileId in sortedIncludeList:
-      if options.verbose:
-        print "    - %s" % fileId
-      else:
-        sys.stdout.write(".")
-        sys.stdout.flush()
-
-      counter += obfuscator.update(loader.getTree(fileDb, fileId, options), names, "$$")
-
-    if not options.verbose:
-      print
-
-    print "  * Updated %s names" % counter
-
-
-
-
-
-
-  ######################################################################
-  #  TOKEN STORAGE
-  ######################################################################
-
-  if options.storeTokens:
-    print
-    print "  TOKEN STORAGE:"
-    print "----------------------------------------------------------------------------"
-
-    if options.tokenOutputDirectory == None:
-      print "  * You must define the token output directory!"
-      sys.exit(1)
-
-    if options.verbose:
-      print "  * Storing tokens..."
-    else:
-      print "  * Storing tokens: ",
-
-    for fileId in sortedIncludeList:
-      tokenString = tokenizer.convertTokensToString(loader.getTokens(fileDb, fileId, options))
-
-      if options.verbose:
-        print "    * writing tokens for %s (%s KB)..." % (fileIdm, len(tokenString) / 1000.0)
-      else:
-        sys.stdout.write(".")
-        sys.stdout.flush()
-
-      filetool.save(os.path.join(filetool.normalize(options.tokenOutputDirectory), fileId + config.TOKENEXT), tokenString)
-
-    if not options.verbose:
-      print
-
-
-
-
-  ######################################################################
-  #  TREE STORAGE
-  ######################################################################
-
-  if options.storeTree:
-    print
-    print "  TREE STORAGE:"
-    print "----------------------------------------------------------------------------"
-
-    if options.treeOutputDirectory == None:
-      print "  * You must define the tree output directory!"
-      sys.exit(1)
-
-    if options.verbose:
-      print "  * Storing tree..."
-    else:
-      print "  * Storing tree: ",
-
-    for fileId in sortedIncludeList:
-      treeString = "<?xml version=\"1.0\" encoding=\"" + options.xmlOutputEncoding + "\"?>\n" + tree.nodeToXmlString(loader.getTree(fileDb, fileId, options))
-
-      if options.verbose:
-        print "    * writing tree for %s (%s KB)..." % (fileId, len(treeString) / 1000.0)
-      else:
-        sys.stdout.write(".")
-        sys.stdout.flush()
-
-      filetool.save(os.path.join(filetool.normalize(options.treeOutputDirectory), fileId + config.XMLEXT), treeString)
-
-    if not options.verbose:
-      print
-
-
-
-
-
-  ######################################################################
-  #  GENERATION OF API
-  ######################################################################
-
-  if options.generateApiDocumentation:
-    print
-    print "  GENERATION OF API:"
-    print "----------------------------------------------------------------------------"
-
-    if options.apiDocumentationJsonFile == None and options.apiDocumentationXmlFile == None:
-      print "  * You must define one of JSON or XML API documentation file!"
-
-    docTree = None
-
-    if options.verbose:
-      print "  * Generating API tree..."
-    else:
-      print "  * Generating API tree: ",
-
-    for fileId in sortedIncludeList:
-      if options.verbose:
-        print "    - %s" % fileId
-      else:
-        sys.stdout.write(".")
-        sys.stdout.flush()
-
-      docTree = api.createDoc(loader.getTree(fileDb, fileId, options), docTree)
-
-    if not options.verbose:
-      print
-
-    if docTree:
-      print "  * Finalizing tree..."
-      api.postWorkPackage(docTree, docTree)
-
-    if options.apiDocumentationXmlFile != None:
-      print "  * Writing XML API file to %s" % options.apiDocumentationXmlFile
-
-      xmlContent = "<?xml version=\"1.0\" encoding=\"" + options.xmlOutputEncoding + "\"?>\n"
-
-      if options.addNewLines:
-        xmlContent += "\n" + tree.nodeToXmlString(docTree)
-      else:
-        xmlContent += tree.nodeToXmlString(docTree, "", "", "")
-
-      filetool.save(options.apiDocumentationXmlFile, xmlContent, options.xmlOutputEncoding)
-
-    if options.apiDocumentationJsonFile != None:
-      print "  * Writing JSON API file to %s" % options.apiDocumentationJsonFile
-
-      if options.addNewLines:
-        jsonContent = tree.nodeToJsonString(docTree)
-      else:
-        jsonContent = tree.nodeToJsonString(docTree, "", "", "")
-
-      filetool.save(options.apiDocumentationJsonFile, jsonContent, options.scriptOutputEncoding)
-
-
-
-
-
-  ######################################################################
-  #  CREATE COPY OF RESOURCES
-  ######################################################################
-
-  if options.copyResources:
-
-    print
-    print "  CREATE COPY OF RESOURCES:"
-    print "----------------------------------------------------------------------------"
-
-    resources.copy(options, sortedIncludeList, fileDb)
-
-
-
-
-
-
-  ######################################################################
-  #  GENERATION OF SETTINGS
-  ######################################################################
-
-  if options.generateSourceScript or options.generateCompiledScript:
-    settingsStr = ""
-
-    if len(options.defineRuntimeSetting) != 0:
-      print
-      print "  GENERATION OF SETTINGS:"
-      print "----------------------------------------------------------------------------"
-
-      print "  * Processing input data..."
-      settingsStr = settings.generate(options)
-
-      if options.settingsScriptFile:
-        print "   * Storing result to %s" % options.settingsScriptFile
-        filetool.save(options.settingsScriptFile, settingsStr)
-
-        # clear settings for build and source
-        settingsStr = ""
-
-
-
-
-
-  ######################################################################
-  #  GENERATION OF SOURCE VERSION
-  ######################################################################
-
-  if options.generateSourceScript:
-    print
-    print "  GENERATION OF SOURCE SCRIPT:"
-    print "----------------------------------------------------------------------------"
-
-    if options.sourceScriptFile == None and (options.sourceTemplateInputFile == None or options.sourceTemplateOutputFile == None):
-      print "  * You must define at least one source script file or template input/output."
-      sys.exit(1)
-
-    if options.sourceScriptFile:
-      options.sourceScriptFile = os.path.normpath(options.sourceScriptFile)
-
-    if options.sourceTemplateInputFile:
-      options.sourceTemplateInputFile = os.path.normpath(options.sourceTemplateInputFile)
-
-    if options.sourceTemplateOutputFile:
-      options.sourceTemplateOutputFile = os.path.normpath(options.sourceTemplateOutputFile)
-
-
-    print "  * Generating script block..."
-
-    # Handling line feed setting
-    sourceLineFeed = "";
-    if options.addNewLines:
-      sourceLineFeed = "\n";
-
-
-    # Generating inline code...
-    inlineCode = ""
-    inlineCode += settingsStr + sourceLineFeed
-    inlineCode += "qx.IS_SOURCE=true;%s" % sourceLineFeed
-    inlineCode += "qx.VERSION=\"%s\";%s" % (options.version, sourceLineFeed)
-    inlineCode += "".join(additionalOutput)
-
-
-    # Generating script block
-    scriptBlocks = ""
-    scriptBlocks += '<script type="text/javascript">%s</script>' % inlineCode
-    for fileId in sortedIncludeList:
-      if fileDb[fileId]["classUri"] == None:
-        print "  * Missing class URI definition for class path %s." % fileDb[fileId]["classPath"]
-        sys.exit(1)
-
-      scriptBlocks += '<script type="text/javascript" src="%s%s"></script>' % (os.path.join(fileDb[fileId]["classUri"], fileDb[fileId]["pathId"].replace(".", os.sep)), config.JSEXT)
-      scriptBlocks += sourceLineFeed
-
-
-
-    if options.sourceScriptFile != None:
-      print "  * Storing includer as %s..." % options.sourceScriptFile
-      sourceScript = "document.write('%s');" % scriptBlocks.replace("'", "\\'")
-      if options.addNewLines:
-        sourceScript = sourceScript.replace("\n", "\\\n")
-      filetool.save(options.sourceScriptFile, sourceScript, options.scriptOutputEncoding)
-
-    if options.sourceTemplateInputFile != None and options.sourceTemplateOutputFile != None:
-      print "  * Patching template: %s => %s" % (options.sourceTemplateInputFile, options.sourceTemplateOutputFile)
-      tmpl = filetool.read(options.sourceTemplateInputFile)
-      res = tmpl.replace(options.sourceTemplateReplace, scriptBlocks)
-      filetool.save(options.sourceTemplateOutputFile, res, options.scriptOutputEncoding)
-
-
-
-
-
-  ######################################################################
-  #  GENERATION OF COMPILED VERSION
-  ######################################################################
-
-  if options.generateCompiledScript:
-    print
-    print "  GENERATION OF COMPILED SCRIPT:"
-    print "----------------------------------------------------------------------------"
-
-    buildLineFeed = "";
-    if options.addNewLines:
-      buildLineFeed = "\n";
-
-    inlineCode = ""
-    inlineCode += settingsStr + buildLineFeed
-    inlineCode += "qx.IS_SOURCE=false;%s" % buildLineFeed
-    inlineCode += "qx.VERSION=\"%s\";%s" % (options.version, buildLineFeed)
-    inlineCode += "".join(additionalOutput)
-
-    compiledOutput = inlineCode
-
-    if options.compiledScriptFile == None:
-      print "  * You must define the compiled script file!"
-      sys.exit(1)
-
-    if options.verbose:
-      print "  * Compiling..."
-    else:
-      print "  * Compiling: ",
-
-    for fileId in sortedIncludeList:
-      if options.verbose:
-        print "    - Compiling %s" % fileId
-      else:
-        sys.stdout.write(".")
-        sys.stdout.flush()
-
-      compiledFileContent = compiler.compile(loader.getTree(fileDb, fileId, options), False, options.addNewLines, options.enableDebug)
-
-      if options.addFileIds:
-        compiledOutput += "\n\n\n/* ID: " + fileId + " */\n" + compiledFileContent + "\n"
-      else:
-        compiledOutput += compiledFileContent
-
-      if not compiledOutput.endswith(";") and not compiledOutput.endswith("\n"):
-        compiledOutput += ";"
-
-    if not options.verbose:
-      print
-
-    print "  * Storing output as %s..." % options.compiledScriptFile
-    filetool.save(options.compiledScriptFile, compiledOutput, options.scriptOutputEncoding)
-
-
-
-
-
-
-
-######################################################################
-#  MAIN LOOP
-######################################################################
-
-if __name__ == '__main__':
-  try:
-    main()
-
-  except KeyboardInterrupt:
-    print
-    print "  * Keyboard Interrupt"
-    sys.exit(1)
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/data/freedesktop_spec.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/data/freedesktop_spec.dat
deleted file mode 100644 (file)
index 28093ba..0000000
+++ /dev/null
@@ -1,273 +0,0 @@
-################################################################################
-#
-# Freedesktop Icon Naming Specification 0.8
-# http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html
-#
-################################################################################
-
-actions/address-book-new
-actions/application-exit
-actions/appointment-new
-actions/contact-new
-actions/dialog-cancel
-actions/dialog-close
-actions/dialog-ok
-actions/document-new
-actions/document-open
-actions/document-open-recent
-actions/document-page-setup
-actions/document-print
-actions/document-print-preview
-actions/document-properties
-actions/document-revert
-actions/document-save
-actions/document-save-as
-actions/edit-copy
-actions/edit-cut
-actions/edit-delete
-actions/edit-find
-actions/edit-find-replace
-actions/edit-paste
-actions/edit-redo
-actions/edit-select-all
-actions/edit-undo
-actions/folder-new
-actions/format-indent-less
-actions/format-indent-more
-actions/format-justify-center
-actions/format-justify-fill
-actions/format-justify-left
-actions/format-justify-right
-actions/format-text-direction-ltr
-actions/format-text-direction-rtl
-actions/format-text-bold
-actions/format-text-italic
-actions/format-text-underline
-actions/format-text-strikethrough
-actions/go-bottom
-actions/go-down
-actions/go-first
-actions/go-home
-actions/go-jump
-actions/go-last
-actions/go-next
-actions/go-previous
-actions/go-top
-actions/go-up
-actions/help-about
-actions/help-contents
-actions/help-faq
-actions/insert-image
-actions/insert-link
-actions/insert-object
-actions/insert-text
-actions/list-add
-actions/list-remove
-actions/mail-forward
-actions/mail-mark-important
-actions/mail-mark-junk
-actions/mail-mark-notjunk
-actions/mail-mark-read
-actions/mail-mark-unread
-actions/mail-message-new
-actions/mail-reply-all
-actions/mail-reply-sender
-actions/mail-send
-actions/mail-send-receive
-actions/media-eject
-actions/media-playback-pause
-actions/media-playback-start
-actions/media-playback-stop
-actions/media-record
-actions/media-seek-backward
-actions/media-seek-forward
-actions/media-skip-backward
-actions/media-skip-forward
-actions/object-flip-horizontal
-actions/object-flip-vertical
-actions/object-rotate-left
-actions/object-rotate-right
-actions/system-lock-screen
-actions/system-log-out
-actions/system-run
-actions/system-search
-actions/tools-check-spelling
-actions/view-fullscreen
-actions/view-refresh
-actions/view-restore
-actions/view-sort-ascending
-actions/view-sort-descending
-actions/window-close
-actions/window-new
-actions/zoom-best-fit
-actions/zoom-in
-actions/zoom-original
-actions/zoom-out
-apps/accessories-calculator
-apps/accessories-character-map
-apps/accessories-dictionary
-apps/accessories-text-editor
-apps/help-browser
-apps/multimedia-volume-control
-apps/preferences-desktop-accessibility
-apps/preferences-desktop-font
-apps/preferences-desktop-keyboard
-apps/preferences-desktop-locale
-apps/preferences-desktop-multimedia
-apps/preferences-desktop-screensaver
-apps/preferences-desktop-theme
-apps/preferences-desktop-wallpaper
-apps/system-file-manager
-apps/system-software-update
-apps/utilities-system-monitor
-apps/utilities-terminal
-categories/applications-accessories
-categories/applications-development
-categories/applications-engineering
-categories/applications-games
-categories/applications-graphics
-categories/applications-internet
-categories/applications-multimedia
-categories/applications-office
-categories/applications-other
-categories/applications-science
-categories/applications-system
-categories/applications-utilities
-categories/preferences-desktop
-categories/preferences-desktop-peripherals
-categories/preferences-desktop-personal
-categories/preferences-other
-categories/preferences-system
-categories/preferences-system-network
-categories/system-help
-devices/audio-card
-devices/audio-input-microphone
-devices/battery
-devices/camera-photo
-devices/camera-video
-devices/computer
-devices/drive-harddisk
-devices/drive-optical
-devices/drive-removable-media
-devices/input-gaming
-devices/input-keyboard
-devices/input-mouse
-devices/media-flash
-devices/media-floppy
-devices/media-optical
-devices/media-tape
-devices/modem
-devices/multimedia-player
-devices/network-wired
-devices/network-wireless
-devices/printer
-devices/video-display
-emblems/emblem-default
-emblems/emblem-documents
-emblems/emblem-downloads
-emblems/emblem-favorite
-emblems/emblem-important
-emblems/emblem-mail
-emblems/emblem-photos
-emblems/emblem-readonly
-emblems/emblem-shared
-emblems/emblem-symbolic-link
-emblems/emblem-synchronized
-emblems/emblem-system
-emblems/emblem-unreadable
-emotes/face-angel
-emotes/face-crying
-emotes/face-devil-grin
-emotes/face-devil-sad
-emotes/face-glasses
-emotes/face-kiss
-emotes/face-monkey
-emotes/face-plain
-emotes/face-sad
-emotes/face-smile
-emotes/face-smile-big
-emotes/face-smirk
-emotes/face-surprise
-emotes/face-wink
-mimetypes/mimetypes/application-x-executable
-mimetypes/audio-x-generic
-mimetypes/font-x-generic
-mimetypes/image-x-generic
-mimetypes/package-x-generic
-mimetypes/text-html
-mimetypes/text-x-generic
-mimetypes/text-x-generic-template
-mimetypes/text-x-script
-mimetypes/video-x-generic
-mimetypes/x-office-address-book
-mimetypes/x-office-calendar
-mimetypes/x-office-document
-mimetypes/x-office-presentation
-mimetypes/x-office-spreadsheet
-places/folder
-places/folder-remote
-places/network-server
-places/network-workgroup
-places/start-here
-places/user-desktop
-places/user-home
-places/user-trash
-status/appointment-missed
-status/appointment-soon
-status/audio-volume-high
-status/audio-volume-low
-status/audio-volume-medium
-status/audio-volume-muted
-status/battery-caution
-status/battery-low
-status/dialog-error
-status/dialog-information
-status/dialog-password
-status/dialog-question
-status/dialog-warning
-status/folder-drag-accept
-status/folder-open
-status/folder-visiting
-status/image-loading
-status/image-missing
-status/mail-attachment
-status/mail-unread
-status/mail-read
-status/mail-replied
-status/mail-signed
-status/mail-signed-verified
-status/media-playlist-repeat
-status/media-playlist-shuffle
-status/network-error
-status/network-idle
-status/network-offline
-status/network-receive
-status/network-transmit
-status/network-transmit-receive
-status/printer-error
-status/printer-printing
-status/security-high
-status/security-medium
-status/security-low
-status/software-update-available
-status/software-update-urgent
-status/sync-error
-status/sync-synchronizing
-status/task-due
-status/task-passed-due
-status/user-away
-status/user-idle
-status/user-offline
-status/user-online
-status/user-trash-full
-status/weather-clear
-status/weather-clear-night
-status/weather-few-clouds
-status/weather-few-clouds-night
-status/weather-fog
-status/weather-overcast
-status/weather-severe-alert
-status/weather-showers
-status/weather-showers-scattered
-status/weather-snow
-status/weather-storm
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/data/kde_freedesktop.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/data/kde_freedesktop.dat
deleted file mode 100644 (file)
index 79ce476..0000000
+++ /dev/null
@@ -1,355 +0,0 @@
-################################################################################
-#
-# ICON MAPPING Freedesktop<->KDE
-#
-################################################################################
-
--actions/address-book-new
-+actions/application-exit=actions/exit
--actions/appointment-new
--actions/contact-new
-+actions/dialog-cancel=actions/button_cancel
--actions/dialog-close
-+actions/dialog-ok=actions/button_ok
-*actions/dialog-apply=actions/apply
-*actions/dialog-finish=actions/finish
-+actions/dialog-no=actions/no
-+actions/document-new=actions/filenew
-+actions/document-open=actions/fileopen
--actions/document-open-recent
--actions/document-page-setup
-+actions/document-print=actions/fileprint
--actions/document-print-preview
-*actions/document-print-quick=actions/filequickprint
--actions/document-properties
-+actions/document-revert=actions/revert
-+actions/document-save=actions/filesave
-+actions/document-save-as=actions/filesaveas
-*actions/document-save-all=actions/save_all
-*actions/document-close=actions/fileclose
-*actions/document-export=actions/fileexport
-*actions/document-import=actions/fileimport
-*actions/edit=actions/edit
-*actions/edit-add=actions/edit_add
-+actions/edit-copy=actions/editcopy
-+actions/edit-cut=actions/editcut
-+actions/edit-delete=actions/editdelete
-+actions/edit-find=actions/find
--actions/edit-find-replace
-+actions/edit-paste=actions/editpaste
-+actions/edit-redo=actions/redo
--actions/edit-select-all
-*actions/edit-trash=actions/edittrash
-+actions/edit-undo=actions/undo
-*actions/execute=actions/exec
-*actions/decrypt=actions/decrypted
-*actions/encrypt=actions/encrypted
-*actions/favorite-add=actions/bookmark_add
-+actions/folder-new=actions/folder_new
--actions/format-indent-less
--actions/format-indent-more
--actions/format-justify-center
--actions/format-justify-fill
--actions/format-justify-left
--actions/format-justify-right
--actions/format-text-direction-ltr
--actions/format-text-direction-rtl
--actions/format-text-bold
--actions/format-text-italic
--actions/format-text-underline
--actions/format-text-strikethrough
-*actions/format-color=actions/colorize
-+actions/go-bottom=actions/bottom
-+actions/go-down=actions/down
--actions/go-first
-+actions/go-home=actions/gohome
--actions/go-jump
--actions/go-last
-+actions/go-next=actions/forward
-+actions/go-previous=actions/back
-+actions/go-top=actions/top
-+actions/go-up=actions/up
-*actions/go-left=actions/1leftarrow
-*actions/go-right=actions/1rightarrow
-+actions/help-about=actions/help
-+actions/help-contents=apps/help_index
-+actions/help-faq=apps/khelpcenter
-*actions/history=actions/history
-*actions/history-clear=actions/history_clear
-*actions/idea=actions/idea
-*actions/identity=actions/identity
-*actions/alarm=actions/kalarm
--actions/insert-image
--actions/insert-link
--actions/insert-object
--actions/insert-text
--actions/list-add
--actions/list-remove
-*actions/mail=actions/mail_generic
--actions/mail-forward
--actions/mail-mark-important
--actions/mail-mark-junk
--actions/mail-mark-notjunk
--actions/mail-mark-read
--actions/mail-mark-unread
--actions/mail-message-new
--actions/mail-reply-all
--actions/mail-reply-sender
--actions/mail-send
--actions/mail-send-receive
-+actions/media-eject=actions/player_eject
-+actions/media-playback-pause=actions/player_pause
-+actions/media-playback-start=actions/player_play
-+actions/media-playback-stop=actions/player_stop
--actions/media-record
-+actions/media-seek-backward=actions/player_rew
-+actions/media-seek-forward=actions/player_fwd
-+actions/media-skip-backward=actions/player_start
-+actions/media-skip-forward=actions/player_end
--actions/object-flip-horizontal
--actions/object-flip-vertical
--actions/object-rotate-left
--actions/object-rotate-right
-+actions/system-lock-screen=actions/lock
--actions/system-log-out
-+actions/system-run=actions/run
-+actions/system-search=actions/filefind
-*actions/start=actions/start
-*actions/stop=actions/stop
-+actions/tools-check-spelling=actions/spellcheck
--actions/view-fullscreen
-+actions/view-refresh=actions/reload
--actions/view-restore
--actions/view-sort-ascending
--actions/view-sort-descending
--actions/window-close
-+actions/window-new=actions/window_new
-+actions/zoom-best-fit=actions/viewmagfit
-+actions/zoom-in=actions/viewmag+
-+actions/zoom-original=actions/viewmag1
-+actions/zoom-out=actions/viewmag-
-*actions/zoom=actions/viewmag
-*actions/view-pane-detailed=actions/view_detailed
-*actions/view-pane-icon=actions/view_icon
-*actions/view-pane-column=actions/view_multicolumn
-*actions/view-pane-text=actions/view_text
-*actions/view-pane-tree=actions/view_tree
-*actions/view-pane-remove=actions/view_remove
-+apps/accessories-calculator=apps/kcalc
-+apps/accessories-character-map=apps/kcharselect
-+apps/accessories-clipboard=apps/klipper
-+apps/accessories-dictionary=apps/kdict
-+apps/accessories-text-editor=apps/kedit
-*apps/accessories-archiver=apps/ark
-*apps/accessories-clock=apps/clock
-*apps/accessories-date=apps/date
-*apps/accessories-alarm=apps/kalarm
-*apps/accessories-time-tracking=apps/karm
-*apps/accessories-disk-usage=apps/kdf
-*apps/accessories-floppy=apps/kfloppy
-*apps/accessories-notes=apps/knotes
-*apps/accessories-terminal=apps/konsole
-*apps/accessories-timer=apps/ktimer
-*apps/accessories-tip=apps/ktip
-*apps/accessories-magnifier=apps/xmag
-+apps/help-browser=apps/khelpcenter
-+apps/multimedia-volume-control=apps/kmix
-*apps/multimedia-movie-player=apps/aktion
-*apps/preferences=actions/configure
-+apps/preferences-desktop-accessibility=apps/access
-+apps/preferences-desktop-font=apps/kcmfontinst
--apps/preferences-desktop-keyboard
--apps/preferences-desktop-locale
-+apps/preferences-desktop-multimedia=apps/artscontrol
--apps/preferences-desktop-screensaver
-+apps/preferences-desktop-theme=apps/kthememgr
-+apps/preferences-desktop-wallpaper=apps/background
-*apps/preferences-desktop-theme-icon=apps/iconthemes
-+apps/system-file-manager=apps/file-manager
-+apps/system-software-update=apps/kpackage
-+apps/system-users=apps/kuser
--apps/utilities-system-monitor
-+apps/utilities-terminal=apps/terminal
-*apps/office-adobe-reader=apps/acroread
-*apps/office-pim=apps/kontact
-*apps/office-organizer=apps/korganizer
-*apps/internet-general=apps/internet
-*apps/internet-web-browser=apps/browser
-*apps/internet-download-manager=apps/download_manager
-*apps/internet-email-client=apps/email
-*apps/graphics-snapshot=apps/ksnapshot
-*apps/graphics-image-viewer=apps/kview
-*categories/applications=apps/package_applications
--categories/applications-accessories
-+categories/applications-development=apps/package_development
--categories/applications-engineering
-+categories/applications-games=apps/package_games
-+categories/applications-graphics=apps/package_graphics
-+categories/applications-internet=apps/package_network
-+categories/applications-multimedia=apps/package_multimedia
-+categories/applications-office=apps/package_wordprocessing
--categories/applications-other
--categories/applications-science
-+categories/applications-system=apps/package_system
-+categories/applications-utilities=apps/package_utilities
-+categories/applications-favorite=apps/package_favorite
-*categories/preferences=apps/package_settings
-+categories/preferences-desktop=apps/display
--categories/preferences-desktop-peripherals
-+categories/preferences-desktop-personal=apps/looknfeel
--categories/preferences-other
-+categories/preferences-system=apps/package_system
-+categories/preferences-system-network=apps/network
-+categories/system-help=apps/help_index
--devices/audio-card
--devices/audio-input-microphone
--devices/battery
-+devices/camera-photo=devices/camera
-+devices/camera-video=devices/camera
-+devices/computer=apps/mycomputer
-+devices/drive-harddisk=devices/hdd_unmount
-+devices/drive-optical=devices/dvd_unmount
-+devices/drive-removable-media=devices/usbpendrive_unmount
--devices/input-gaming=devices/joystick
--devices/input-keyboard
-+devices/input-mouse=devices/mouse
-+devices/media-flash=devices/usbpendrive_unmount
-+devices/media-floppy=devices/3floppy_unmount
-+devices/media-optical=devices/cdrom_unmount
--devices/media-tape
--devices/modem
-*devices/scanner=devices/scanner
--devices/multimedia-player
-+devices/network-wired=devices/nfs_unmount
-+devices/network-wireless=devices/nfs_unmount
-+devices/printer=devices/printer1
-+devices/video-display=devices/tv
-*devices/usb=apps/usb
--emblems/emblem-default
--emblems/emblem-documents
--emblems/emblem-downloads
--emblems/emblem-favorite
--emblems/emblem-important
--emblems/emblem-mail
--emblems/emblem-photos
--emblems/emblem-readonly
--emblems/emblem-shared
--emblems/emblem-symbolic-link
--emblems/emblem-synchronized
--emblems/emblem-system
--emblems/emblem-unreadable
--emotes/face-angel
--emotes/face-crying
--emotes/face-devil-grin
--emotes/face-devil-sad
--emotes/face-glasses
--emotes/face-kiss
--emotes/face-monkey
--emotes/face-plain
--emotes/face-sad
--emotes/face-smile
--emotes/face-smile-big
--emotes/face-smirk
--emotes/face-surprise
--emotes/face-wink
-+mimetypes/application-x-executable=mimetypes/binary
-+mimetypes/audio-x-generic=mimetypes/sound
-+mimetypes/font-x-generic=mimetypes/font
-+mimetypes/image-x-generic=mimetypes/image
-+mimetypes/package-x-generic=mimetypes/tgz
-+mimetypes/text-html=mimetypes/html
-*mimetypes/text-ascii=mimetypes/ascii
-+mimetypes/text-x-generic=mimetypes/txt
-+mimetypes/text-x-generic-template=mimetypes/txt
-+mimetypes/text-x-script=mimetypes/shellscript
-+mimetypes/video-x-generic=mimetypes/video
--mimetypes/x-office-address-book
-+mimetypes/x-office-calendar=mimetypes/vcalendar
--mimetypes/x-office-document
--mimetypes/x-office-presentation
-+mimetypes/x-office-spreadsheet=mimetypes/spreadsheet
-*mimetypes/application-pdf=mimetypes/pdf
-*mimetypes/application-quicktime=mimetypes/quicktime
-*mimetypes/empty-x-generic=mimetypes/empty
-*mimetypes/empty-x-encrypted=mimetypes/encrypted
-*mimetypes/empty-x-locked=mimetypes/file_locked
-*mimetypes/empty-x-temporary=mimetypes/file_temporary
-*mimetypes/unknown-x-temporary=mimetypes/unknown
-*mimetypes/misc-x-generic=mimetypes/misc
-+places/folder=filesystems/folder
-+places/folder-remote=filesystems/ftp
-+places/network-server=filesystems/network
-+places/network-workgroup=filesystems/network_local
--places/start-here
-+places/user-desktop=filesystems/desktop
-+places/user-home=filesystems/folder_home
-+places/user-trash=filesystems/trashcan_empty
-*places/user-trash-empty=filesystems/trashcan_empty
-*places/user-trash-full=filesystems/trashcan_full
-*places/favorite-folder=actions/bookmark_folder
-*places/image-folder=filesystems/folder_image
-*places/html-folder=filesystems/folder_html
-*places/music-folder=filesystems/folder_music
-*places/document-folder=filesystems/folder_txt
-*places/archive-folder=filesystems/folder_tar
-*places/www=filesystems/www
-*places/services=filesystems/services
--status/appointment-missed
--status/appointment-soon
--status/audio-volume-high
--status/audio-volume-low
--status/audio-volume-medium
--status/audio-volume-muted
--status/battery-caution
--status/battery-low
-+status/dialog-error=actions/messagebox_critical
-*status/dialog-information=actions/messagebox_info
-+status/dialog-password=apps/password
--status/dialog-question
-*status/dialog-warning=actions/messagebox_warning
--status/folder-drag-accept
-+status/folder-open=filesystems/folder_open
--status/folder-visiting
--status/image-loading
--status/image-missing
--status/mail-attachment
--status/mail-unread
--status/mail-read
--status/mail-replied
--status/mail-signed
--status/mail-signed-verified
--status/media-playlist-repeat
--status/media-playlist-shuffle
--status/network-error
--status/network-idle
--status/network-offline
--status/network-receive
--status/network-transmit
--status/network-transmit-receive
--status/printer-error
--status/printer-printing
--status/security-high
--status/security-medium
--status/security-low
--status/software-update-available
--status/software-update-urgent
--status/sync-error
--status/sync-synchronizing
--status/task-due
--status/task-passed-due
--status/user-away
--status/user-idle
--status/user-offline
--status/user-online
--status/user-trash-full
--status/weather-clear
--status/weather-clear-night
--status/weather-few-clouds
--status/weather-few-clouds-night
--status/weather-fog
--status/weather-overcast
--status/weather-severe-alert
--status/weather-showers
--status/weather-showers-scattered
--status/weather-snow
--status/weather-storm
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/data/kde_normalize.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/data/kde_normalize.dat
deleted file mode 100644 (file)
index 5d588d2..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-actions/messagebox_info=actions/info
-actions/cancel=actions/button_cancel
-actions/ok=actions/button_ok
-filesystems/folder_images=filesystems/folder_image
-filesystems/folder_music=filesystems/folder_sound
-filesystems/folder_favorites=filesystems/folder_favorite
-filesystems/folder_favourite=filesystems/folder_favorite
-filesystems/folder_games=filesystems/folder_game
-devices/printer2=devices/printer
-devices/network_local=devices/nfs_unmount
-mimetypes/mime_ascii=mimetypes/ascii
-mimetypes/misc=mimetypes/mime
-filesystems/folder_home2=filesystems/folder_home
-apps/mail=apps/email
-apps/mail=apps/kmail
-apps/tux=apps/toys
-filesystems/exec=actions/exec
-actions/filefind=actions/kfind
-actions/kfind=actions/find
-actions/no
-actions/filefind=actions/find
-actions/fileimport=actions/compfile
-actions/fonts=apps/fonts
-actions/help=actions/idea
-apps/back=actions/back
-devices/camera=actions/camera
-devices/camera=apps/camera
-apps/harddrive=devices/hdd_unmount
-apps/home=filesystems/folder_home
-apps/internet=apps/network
-mimetypes/mime-colorset=mimetypes/mime_colorset
-apps/my_documents=apps/mydocuments
-apps/miscellaneous=apps/miscellaneous2
-apps/calendars=apps/vcalendar
-actions/mix_volume=actions/player_volume
-actions/color_fill=actions/fill
-apps/miscellaneous2=apps/miscellaneous
-apps/miscellaneous=apps/miscellaneous
-apps/Login=apps/login
-apps/Logout=apps/logout
-apps/Network=apps/network
-apps/networksettings=apps/network_settings
-apps/package_favourite=apps/package_favorite
-apps/calc=apps/kcalc
-apps/cal=apps/calendar
-apps/cal=apps/calendars
-apps/calendars=apps/calendar
-apps/kpdf=apps/pdf
-apps/mymac=apps/mycomputer
-apps/help_index=apps/help
-apps/help_index=apps/helpcenter
-apps/kcalc=apps/calc
-apps/kcalc=actions/calc
-apps/kcmfontinst=actions/fonts
-apps/knotes=apps/notes
-apps/knotes=actions/notes
-apps/korganizer=apps/organizer
-apps/looknfeel=apps/iconthemes
-apps/Session=apps/smserver
-apps/toys=apps/tux
-mimetypes/mime_empty=mimetypes/mime
-apps/keyboard=devices/keyboard
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/data/qooxdoo_freedesktop.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/data/qooxdoo_freedesktop.dat
deleted file mode 100644 (file)
index 12c777c..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-#
-# Mapping of qooxdoo icon names to Tango icons
-#
-
-accessibility = apps/preferences-desktop-accessibility
-adobe-reader = apps/office-adobe-reader
-alarm = apps/accessories-alarm
-applications = categories/applications
-apply = actions/dialog-ok
-attach = actions/mail-message-attach
-back = actions/go-previous
-background = apps/preferences-desktop-wallpaper
-bell
-bitmapgraphics
-bookmark-add = actions/favorite-add
-bookmark-folder = actions/bookmark_folder
-bookmark-toolbar
-bookmark
-bug
-button-cancel = actions/dialog-cancel
-button-ok = actions/dialog-ok
-cache
-calculator = apps/accessories-calculator
-camera = devices/camera-photo
-cancel = actions/dialog-cancel
-cdrom = devices/media-optical
-char-device
-chart
-clipboard = apps/accessories-clipboard
-clock = apps/accessories-clock
-color-fill
-color-line
-colors = actions/format-color
-configure = apps/preferences
-connect-creating
-connect-established
-connect-no = status/network-offline
-control-center = apps/preferences-system
-cookie
-core
-date = apps/accessories-date
-decrypted = actions/decrypt
-desktop = places/user-desktop
-devices = devices/drive-harddisk
-dictionary = apps/accessories-dictionary
-display = devices/video-display
-down = actions/go-down
-edit-copy = actions/edit-copy
-edit-cut = actions/edit-cut
-edit-delete = actions/edit-delete
-edit-paste = actions/edit-paste
-edit = actions/edit
-editor = apps/accessories-text-editor
-email = apps/internet-mail
-encrypted = actions/encrypt
-energy
-error = status/dialog-error
-exec = actions/execute
-exit = actions/application-exit
-file-manager = apps/system-file-manager
-file-new = actions/document-new
-file-open = actions/document-open
-file-print = actions/document-print
-file-save-as = actions/document-save-as
-file-save = actions/document-save
-find = actions/edit-find
-floppy = devices/media-floppy
-flowchart
-folder-favorite = status/folder-favorite
-folder-important
-folder-locked = places/folder-locked
-folder-open = status/folder-open
-folder = places/folder
-fonts = apps/preferences-desktop-font
-forward = actions/go-next
-games = categories/applications-games
-graphics = categories/applications-graphics
-harddrive = devices/drive-harddisk
-hardware-info
-help-center = apps/help-browser
-help = actions/help-about
-history-clear = actions/history-clear
-history = actions/history
-home = actions/go-home
-icons = apps/preferences-desktop-theme-icon
-iconthemes = apps/preferences-desktop-theme-icon
-important = emblems/emblem-important
-info = status/dialog-information
-joystick = devices/input-gaming
-keyboard-layout = apps/preferences-desktop-keyboard
-locale = apps/preferences-desktop-locale
-look-and-feel = apps/preferences-desktop-theme
-magnifier = actions/zoom
-mail-delete = actions/mail-message-delete
-mail-find = actions/mail-find
-mail-forward = actions/mail-forward
-mail-get = actions/mail-receive
-mail-new = actions/mail-message-new
-mail-reply-all = actions/mail-reply-all
-mail-reply = actions/mail-reply-sender
-mail-send = actions/mail-send
-mail = apps/internet-email-client
-memory = devices/memory
-mime-archive = mimetypes/package-x-generic
-mime-binary = mimetypes/application-x-executable
-mime-calendar = mimetypes/x-office-calendar
-mime-card = mimetypes/x-office-address-book
-mime-color = actions/format-color
-mime-document = mimetypes/x-office-document
-mime-html = mimetypes/text-html
-mime-image = mimetypes/image-x-generic
-mime-manual
-mime-multimedia = mimetypes/audio-x-generic
-mime-pdf = mimetypes/application-pdf
-mime-quicktime = mimetypes/application-quicktime
-mime-rpm
-mime-script = mimetypes/text-x-script
-mime-shellscript = mimetypes/text-x-script
-mime-sourcecode = mimetypes/empty-x-generic
-mime-spreadsheet = mimetypes/x-office-spreadsheet
-mime-text = mimetypes/text-x-generic
-mime-video = mimetypes/video-x-generic
-misc = actions/execute
-mixer = apps/multimedia-volume-control
-modem = devices/modem
-mouse = devices/input-mouse
-movieplayer = apps/multimedia-movie-player
-multimedia = categories/applications-multimedia
-mycomputer = devices/computer
-netscape = mimetypes/text-html
-network = categories/applications-internet
-no
-notes = apps/accessories-notes
-notify
-ok = actions/dialog-ok
-opera = apps/internet-browser-opera
-organizer = apps/office-organizer
-paint
-partitions
-password = status/dialog-password
-pda
-pipe
-presentation
-printer = devices/printer
-queue
-redo = actions/edit-redo
-reload = actions/view-refresh
-rotate = actions/object-rotate-left
-run = actions/system-run
-scanner = devices/scanner
-services = places/services
-settings = categories/preferences
-signature
-spellcheck = actions/tools-check-spelling
-stop = actions/stop
-style
-system = categories/applications-system
-tab-duplicate
-tab-new-raised
-tab-new
-tab-remove
-tablet = devices/input-tablet
-terminal = apps/utilities-terminal
-themes = apps/preferences-desktop-theme
-toys = categories/applications-toys
-trashcan-empty = places/user-trash
-trashcan-full = places/user-trash-full
-tv = devices/video-display
-undo = actions/edit-undo
-up = actions/go-up
-user = apps/system-users
-utilities = categories/applications-utilities
-view-bottom
-view-choose
-view-detailed = actions/view-pane-detailed
-view-icon = actions/view-pane-icon
-view-left-right
-view-multicolumn = actions/view-pane-column
-view-remove = actions/view-pane-remove
-view-right
-view-sidetree
-view-text = actions/view-pane-text
-view-top-bottom
-view-tree = actions/view-pane-tree
-viewmag-fit = actions/zoom-best-fit
-viewmag-minus = actions/zoom-out
-viewmag-original = actions/zoom-original
-viewmag-plus = actions/zoom-in
-viewmag = actions/zoom
-wizard
-wordprocessor
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/data/qooxdoo_whitelist.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/data/qooxdoo_whitelist.dat
deleted file mode 100644 (file)
index 891d983..0000000
+++ /dev/null
@@ -1,816 +0,0 @@
-128x128/actions/help-contents.png
-128x128/actions/help-faq.png
-128x128/apps/accessories-alarm.png
-128x128/apps/accessories-archiver.png
-128x128/apps/accessories-character-map.png
-128x128/apps/accessories-clipboard.png
-128x128/apps/accessories-clock.png
-128x128/apps/accessories-date.png
-128x128/apps/accessories-dictionary.png
-128x128/apps/accessories-disk-usage.png
-128x128/apps/accessories-floppy.png
-128x128/apps/accessories-magnifier.png
-128x128/apps/accessories-notes.png
-128x128/apps/accessories-terminal.png
-128x128/apps/accessories-text-editor.png
-128x128/apps/accessories-timer.png
-128x128/apps/accessories-time-tracking.png
-128x128/apps/accessories-tip.png
-128x128/apps/graphics-image-viewer.png
-128x128/apps/graphics-snapshot.png
-128x128/apps/help-browser.png
-128x128/apps/internet-download-manager.png
-128x128/apps/internet-email-client.png
-128x128/apps/internet-web-browser.png
-128x128/apps/multimedia-movie-player.png
-128x128/apps/multimedia-volume-control.png
-128x128/apps/office-adobe-reader.png
-128x128/apps/office-organizer.png
-128x128/apps/office-pim.png
-128x128/apps/preferences-desktop-accessibility.png
-128x128/apps/preferences-desktop-font.png
-128x128/apps/preferences-desktop-multimedia.png
-128x128/apps/preferences-desktop-theme.png
-128x128/apps/preferences-desktop-wallpaper.png
-128x128/apps/system-file-manager.png
-128x128/apps/system-software-update.png
-128x128/apps/system-users.png
-128x128/apps/utilities-terminal.png
-128x128/categories/applications-games.png
-128x128/categories/applications-graphics.png
-128x128/categories/applications-internet.png
-128x128/categories/applications-multimedia.png
-128x128/categories/applications-office.png
-128x128/categories/applications.png
-128x128/categories/applications-utilities.png
-128x128/categories/preferences-desktop-personal.png
-128x128/categories/preferences-desktop.png
-128x128/categories/preferences.png
-128x128/categories/preferences-system-network.png
-128x128/categories/system-help.png
-128x128/devices/camera-photo.png
-128x128/devices/camera-video.png
-128x128/devices/computer.png
-128x128/devices/drive-harddisk.png
-128x128/devices/drive-optical.png
-128x128/devices/drive-removable-media.png
-128x128/devices/input-mouse.png
-128x128/devices/media-flash.png
-128x128/devices/media-floppy.png
-128x128/devices/media-optical.png
-128x128/devices/network-wired.png
-128x128/devices/network-wireless.png
-128x128/devices/printer.png
-128x128/devices/scanner.png
-128x128/devices/usb.png
-128x128/devices/video-display.png
-128x128/mimetypes/application-pdf.png
-128x128/mimetypes/application-quicktime.png
-128x128/mimetypes/application-x-executable.png
-128x128/mimetypes/audio-x-generic.png
-128x128/mimetypes/empty-x-encrypted.png
-128x128/mimetypes/empty-x-generic.png
-128x128/mimetypes/empty-x-locked.png
-128x128/mimetypes/empty-x-temporary.png
-128x128/mimetypes/font-x-generic.png
-128x128/mimetypes/image-x-generic.png
-128x128/mimetypes/package-x-generic.png
-128x128/mimetypes/text-ascii.png
-128x128/mimetypes/text-html.png
-128x128/mimetypes/text-x-generic.png
-128x128/mimetypes/text-x-generic-template.png
-128x128/mimetypes/text-x-script.png
-128x128/mimetypes/unknown-x-temporary.png
-128x128/mimetypes/video-x-generic.png
-128x128/mimetypes/x-office-calendar.png
-128x128/mimetypes/x-office-spreadsheet.png
-128x128/places/archive-folder.png
-128x128/places/document-folder.png
-128x128/places/folder.png
-128x128/places/folder-remote.png
-128x128/places/html-folder.png
-128x128/places/network-server.png
-128x128/places/network-workgroup.png
-128x128/places/services.png
-128x128/places/user-desktop.png
-128x128/places/user-home.png
-128x128/places/user-trash-empty.png
-128x128/places/user-trash-full.png
-128x128/places/user-trash.png
-128x128/places/www.png
-128x128/status/dialog-password.png
-16x16/actions/alarm.png
-16x16/actions/application-exit.png
-16x16/actions/decrypt.png
-16x16/actions/dialog-apply.png
-16x16/actions/dialog-cancel.png
-16x16/actions/dialog-finish.png
-16x16/actions/dialog-no.png
-16x16/actions/dialog-ok.png
-16x16/actions/document-close.png
-16x16/actions/document-export.png
-16x16/actions/document-new.png
-16x16/actions/document-open.png
-16x16/actions/document-print.png
-16x16/actions/document-print-quick.png
-16x16/actions/document-revert.png
-16x16/actions/document-save-all.png
-16x16/actions/document-save-as.png
-16x16/actions/document-save.png
-16x16/actions/edit-add.png
-16x16/actions/edit-copy.png
-16x16/actions/edit-cut.png
-16x16/actions/edit-delete.png
-16x16/actions/edit-find.png
-16x16/actions/edit-paste.png
-16x16/actions/edit.png
-16x16/actions/edit-redo.png
-16x16/actions/edit-trash.png
-16x16/actions/edit-undo.png
-16x16/actions/encrypt.png
-16x16/actions/favorite-add.png
-16x16/actions/folder-new.png
-16x16/actions/format-color.png
-16x16/actions/go-bottom.png
-16x16/actions/go-down.png
-16x16/actions/go-home.png
-16x16/actions/go-left.png
-16x16/actions/go-next.png
-16x16/actions/go-previous.png
-16x16/actions/go-right.png
-16x16/actions/go-top.png
-16x16/actions/go-up.png
-16x16/actions/help-about.png
-16x16/actions/help-contents.png
-16x16/actions/help-faq.png
-16x16/actions/history-clear.png
-16x16/actions/history.png
-16x16/actions/identity.png
-16x16/actions/mail.png
-16x16/actions/media-eject.png
-16x16/actions/media-playback-pause.png
-16x16/actions/media-playback-start.png
-16x16/actions/media-playback-stop.png
-16x16/actions/media-seek-backward.png
-16x16/actions/media-seek-forward.png
-16x16/actions/media-skip-backward.png
-16x16/actions/media-skip-forward.png
-16x16/actions/start.png
-16x16/actions/stop.png
-16x16/actions/system-lock-screen.png
-16x16/actions/system-run.png
-16x16/actions/tools-check-spelling.png
-16x16/actions/view-pane-column.png
-16x16/actions/view-pane-detailed.png
-16x16/actions/view-pane-icon.png
-16x16/actions/view-pane-remove.png
-16x16/actions/view-pane-text.png
-16x16/actions/view-pane-tree.png
-16x16/actions/view-refresh.png
-16x16/actions/window-new.png
-16x16/actions/zoom-best-fit.png
-16x16/actions/zoom-in.png
-16x16/actions/zoom-original.png
-16x16/actions/zoom-out.png
-16x16/actions/zoom.png
-16x16/apps/accessories-alarm.png
-16x16/apps/accessories-archiver.png
-16x16/apps/accessories-calculator.png
-16x16/apps/accessories-character-map.png
-16x16/apps/accessories-clipboard.png
-16x16/apps/accessories-clock.png
-16x16/apps/accessories-date.png
-16x16/apps/accessories-dictionary.png
-16x16/apps/accessories-disk-usage.png
-16x16/apps/accessories-floppy.png
-16x16/apps/accessories-magnifier.png
-16x16/apps/accessories-notes.png
-16x16/apps/accessories-terminal.png
-16x16/apps/accessories-text-editor.png
-16x16/apps/accessories-timer.png
-16x16/apps/accessories-time-tracking.png
-16x16/apps/accessories-tip.png
-16x16/apps/graphics-image-viewer.png
-16x16/apps/graphics-snapshot.png
-16x16/apps/help-browser.png
-16x16/apps/internet-download-manager.png
-16x16/apps/internet-email-client.png
-16x16/apps/internet-web-browser.png
-16x16/apps/multimedia-movie-player.png
-16x16/apps/multimedia-volume-control.png
-16x16/apps/office-adobe-reader.png
-16x16/apps/office-organizer.png
-16x16/apps/office-pim.png
-16x16/apps/preferences-desktop-accessibility.png
-16x16/apps/preferences-desktop-font.png
-16x16/apps/preferences-desktop-multimedia.png
-16x16/apps/preferences-desktop-theme.png
-16x16/apps/preferences-desktop-wallpaper.png
-16x16/apps/preferences.png
-16x16/apps/system-file-manager.png
-16x16/apps/system-software-update.png
-16x16/apps/system-users.png
-16x16/apps/utilities-terminal.png
-16x16/categories/applications-development.png
-16x16/categories/applications-games.png
-16x16/categories/applications-graphics.png
-16x16/categories/applications-internet.png
-16x16/categories/applications-multimedia.png
-16x16/categories/applications-office.png
-16x16/categories/applications.png
-16x16/categories/applications-system.png
-16x16/categories/applications-utilities.png
-16x16/categories/preferences-desktop-personal.png
-16x16/categories/preferences-desktop.png
-16x16/categories/preferences.png
-16x16/categories/preferences-system-network.png
-16x16/categories/preferences-system.png
-16x16/categories/system-help.png
-16x16/devices/camera-photo.png
-16x16/devices/camera-video.png
-16x16/devices/computer.png
-16x16/devices/drive-harddisk.png
-16x16/devices/drive-optical.png
-16x16/devices/drive-removable-media.png
-16x16/devices/input-mouse.png
-16x16/devices/media-flash.png
-16x16/devices/media-floppy.png
-16x16/devices/media-optical.png
-16x16/devices/network-wired.png
-16x16/devices/network-wireless.png
-16x16/devices/printer.png
-16x16/devices/scanner.png
-16x16/devices/usb.png
-16x16/devices/video-display.png
-16x16/mimetypes/application-pdf.png
-16x16/mimetypes/application-quicktime.png
-16x16/mimetypes/application-x-executable.png
-16x16/mimetypes/audio-x-generic.png
-16x16/mimetypes/empty-x-encrypted.png
-16x16/mimetypes/empty-x-generic.png
-16x16/mimetypes/empty-x-locked.png
-16x16/mimetypes/empty-x-temporary.png
-16x16/mimetypes/font-x-generic.png
-16x16/mimetypes/image-x-generic.png
-16x16/mimetypes/package-x-generic.png
-16x16/mimetypes/text-ascii.png
-16x16/mimetypes/text-html.png
-16x16/mimetypes/text-x-generic.png
-16x16/mimetypes/text-x-generic-template.png
-16x16/mimetypes/text-x-script.png
-16x16/mimetypes/unknown-x-temporary.png
-16x16/mimetypes/video-x-generic.png
-16x16/mimetypes/x-office-calendar.png
-16x16/mimetypes/x-office-spreadsheet.png
-16x16/places/archive-folder.png
-16x16/places/document-folder.png
-16x16/places/favorite-folder.png
-16x16/places/folder.png
-16x16/places/folder-remote.png
-16x16/places/html-folder.png
-16x16/places/network-server.png
-16x16/places/network-workgroup.png
-16x16/places/services.png
-16x16/places/user-desktop.png
-16x16/places/user-home.png
-16x16/places/user-trash-empty.png
-16x16/places/user-trash-full.png
-16x16/places/user-trash.png
-16x16/places/www.png
-16x16/status/dialog-password.png
-16x16/status/folder-open.png
-22x22/actions/alarm.png
-22x22/actions/application-exit.png
-22x22/actions/decrypt.png
-22x22/actions/dialog-apply.png
-22x22/actions/dialog-cancel.png
-22x22/actions/dialog-finish.png
-22x22/actions/dialog-ok.png
-22x22/actions/document-close.png
-22x22/actions/document-export.png
-22x22/actions/document-new.png
-22x22/actions/document-open.png
-22x22/actions/document-print.png
-22x22/actions/document-print-quick.png
-22x22/actions/document-revert.png
-22x22/actions/document-save-all.png
-22x22/actions/document-save-as.png
-22x22/actions/document-save.png
-22x22/actions/edit-add.png
-22x22/actions/edit-copy.png
-22x22/actions/edit-cut.png
-22x22/actions/edit-delete.png
-22x22/actions/edit-find.png
-22x22/actions/edit-paste.png
-22x22/actions/edit.png
-22x22/actions/edit-redo.png
-22x22/actions/edit-trash.png
-22x22/actions/edit-undo.png
-22x22/actions/encrypt.png
-22x22/actions/favorite-add.png
-22x22/actions/folder-new.png
-22x22/actions/format-color.png
-22x22/actions/go-down.png
-22x22/actions/go-home.png
-22x22/actions/go-left.png
-22x22/actions/go-next.png
-22x22/actions/go-previous.png
-22x22/actions/go-right.png
-22x22/actions/go-up.png
-22x22/actions/help-about.png
-22x22/actions/help-faq.png
-22x22/actions/history.png
-22x22/actions/mail.png
-22x22/actions/media-eject.png
-22x22/actions/media-playback-pause.png
-22x22/actions/media-playback-start.png
-22x22/actions/media-playback-stop.png
-22x22/actions/media-seek-backward.png
-22x22/actions/media-seek-forward.png
-22x22/actions/media-skip-backward.png
-22x22/actions/media-skip-forward.png
-22x22/actions/start.png
-22x22/actions/stop.png
-22x22/actions/system-lock-screen.png
-22x22/actions/system-run.png
-22x22/actions/tools-check-spelling.png
-22x22/actions/view-pane-column.png
-22x22/actions/view-pane-detailed.png
-22x22/actions/view-pane-icon.png
-22x22/actions/view-pane-remove.png
-22x22/actions/view-pane-text.png
-22x22/actions/view-pane-tree.png
-22x22/actions/view-refresh.png
-22x22/actions/window-new.png
-22x22/actions/zoom-best-fit.png
-22x22/actions/zoom-in.png
-22x22/actions/zoom-original.png
-22x22/actions/zoom-out.png
-22x22/actions/zoom.png
-22x22/apps/accessories-alarm.png
-22x22/apps/accessories-archiver.png
-22x22/apps/accessories-character-map.png
-22x22/apps/accessories-clock.png
-22x22/apps/accessories-date.png
-22x22/apps/accessories-dictionary.png
-22x22/apps/accessories-floppy.png
-22x22/apps/accessories-terminal.png
-22x22/apps/accessories-text-editor.png
-22x22/apps/accessories-time-tracking.png
-22x22/apps/accessories-tip.png
-22x22/apps/graphics-image-viewer.png
-22x22/apps/graphics-snapshot.png
-22x22/apps/help-browser.png
-22x22/apps/internet-download-manager.png
-22x22/apps/internet-email-client.png
-22x22/apps/internet-web-browser.png
-22x22/apps/multimedia-volume-control.png
-22x22/apps/office-adobe-reader.png
-22x22/apps/office-pim.png
-22x22/apps/preferences-desktop-accessibility.png
-22x22/apps/preferences-desktop-multimedia.png
-22x22/apps/preferences-desktop-theme.png
-22x22/apps/preferences-desktop-wallpaper.png
-22x22/apps/preferences.png
-22x22/apps/system-file-manager.png
-22x22/apps/system-users.png
-22x22/apps/utilities-terminal.png
-22x22/categories/applications-graphics.png
-22x22/categories/applications-internet.png
-22x22/categories/applications-multimedia.png
-22x22/categories/applications-office.png
-22x22/categories/applications-utilities.png
-22x22/categories/preferences-desktop.png
-22x22/categories/preferences.png
-22x22/categories/preferences-system-network.png
-22x22/devices/camera-photo.png
-22x22/devices/camera-video.png
-22x22/devices/computer.png
-22x22/devices/drive-harddisk.png
-22x22/devices/drive-optical.png
-22x22/devices/drive-removable-media.png
-22x22/devices/input-mouse.png
-22x22/devices/media-flash.png
-22x22/devices/media-floppy.png
-22x22/devices/media-optical.png
-22x22/devices/network-wired.png
-22x22/devices/network-wireless.png
-22x22/devices/scanner.png
-22x22/devices/usb.png
-22x22/devices/video-display.png
-22x22/mimetypes/application-pdf.png
-22x22/mimetypes/application-quicktime.png
-22x22/mimetypes/application-x-executable.png
-22x22/mimetypes/audio-x-generic.png
-22x22/mimetypes/empty-x-encrypted.png
-22x22/mimetypes/empty-x-generic.png
-22x22/mimetypes/empty-x-temporary.png
-22x22/mimetypes/font-x-generic.png
-22x22/mimetypes/image-x-generic.png
-22x22/mimetypes/package-x-generic.png
-22x22/mimetypes/text-ascii.png
-22x22/mimetypes/text-html.png
-22x22/mimetypes/text-x-generic.png
-22x22/mimetypes/text-x-generic-template.png
-22x22/mimetypes/text-x-script.png
-22x22/mimetypes/unknown-x-temporary.png
-22x22/mimetypes/video-x-generic.png
-22x22/mimetypes/x-office-calendar.png
-22x22/mimetypes/x-office-spreadsheet.png
-22x22/places/archive-folder.png
-22x22/places/document-folder.png
-22x22/places/favorite-folder.png
-22x22/places/folder.png
-22x22/places/folder-remote.png
-22x22/places/html-folder.png
-22x22/places/network-server.png
-22x22/places/network-workgroup.png
-22x22/places/services.png
-22x22/places/user-desktop.png
-22x22/places/user-home.png
-22x22/places/user-trash-empty.png
-22x22/places/user-trash-full.png
-22x22/places/user-trash.png
-22x22/places/www.png
-22x22/status/dialog-password.png
-32x32/actions/application-exit.png
-32x32/actions/decrypt.png
-32x32/actions/dialog-apply.png
-32x32/actions/dialog-cancel.png
-32x32/actions/dialog-ok.png
-32x32/actions/document-close.png
-32x32/actions/document-new.png
-32x32/actions/document-open.png
-32x32/actions/document-print.png
-32x32/actions/document-print-quick.png
-32x32/actions/document-revert.png
-32x32/actions/document-save-all.png
-32x32/actions/document-save-as.png
-32x32/actions/document-save.png
-32x32/actions/edit-add.png
-32x32/actions/edit-copy.png
-32x32/actions/edit-cut.png
-32x32/actions/edit-delete.png
-32x32/actions/edit-find.png
-32x32/actions/edit-paste.png
-32x32/actions/edit.png
-32x32/actions/edit-redo.png
-32x32/actions/edit-trash.png
-32x32/actions/edit-undo.png
-32x32/actions/encrypt.png
-32x32/actions/favorite-add.png
-32x32/actions/folder-new.png
-32x32/actions/format-color.png
-32x32/actions/go-down.png
-32x32/actions/go-home.png
-32x32/actions/go-left.png
-32x32/actions/go-next.png
-32x32/actions/go-previous.png
-32x32/actions/go-right.png
-32x32/actions/go-top.png
-32x32/actions/go-up.png
-32x32/actions/help-about.png
-32x32/actions/help-contents.png
-32x32/actions/help-faq.png
-32x32/actions/history.png
-32x32/actions/identity.png
-32x32/actions/mail.png
-32x32/actions/media-eject.png
-32x32/actions/media-playback-pause.png
-32x32/actions/media-playback-start.png
-32x32/actions/media-seek-backward.png
-32x32/actions/media-seek-forward.png
-32x32/actions/media-skip-backward.png
-32x32/actions/media-skip-forward.png
-32x32/actions/start.png
-32x32/actions/stop.png
-32x32/actions/system-lock-screen.png
-32x32/actions/system-run.png
-32x32/actions/tools-check-spelling.png
-32x32/actions/view-pane-column.png
-32x32/actions/view-pane-detailed.png
-32x32/actions/view-pane-icon.png
-32x32/actions/view-pane-remove.png
-32x32/actions/view-pane-text.png
-32x32/actions/view-pane-tree.png
-32x32/actions/view-refresh.png
-32x32/actions/window-new.png
-32x32/actions/zoom-best-fit.png
-32x32/actions/zoom-in.png
-32x32/actions/zoom-original.png
-32x32/actions/zoom-out.png
-32x32/actions/zoom.png
-32x32/apps/accessories-alarm.png
-32x32/apps/accessories-archiver.png
-32x32/apps/accessories-calculator.png
-32x32/apps/accessories-character-map.png
-32x32/apps/accessories-clipboard.png
-32x32/apps/accessories-clock.png
-32x32/apps/accessories-date.png
-32x32/apps/accessories-dictionary.png
-32x32/apps/accessories-disk-usage.png
-32x32/apps/accessories-floppy.png
-32x32/apps/accessories-magnifier.png
-32x32/apps/accessories-notes.png
-32x32/apps/accessories-terminal.png
-32x32/apps/accessories-text-editor.png
-32x32/apps/accessories-timer.png
-32x32/apps/accessories-time-tracking.png
-32x32/apps/accessories-tip.png
-32x32/apps/graphics-image-viewer.png
-32x32/apps/graphics-snapshot.png
-32x32/apps/help-browser.png
-32x32/apps/internet-download-manager.png
-32x32/apps/internet-email-client.png
-32x32/apps/internet-web-browser.png
-32x32/apps/multimedia-movie-player.png
-32x32/apps/multimedia-volume-control.png
-32x32/apps/office-adobe-reader.png
-32x32/apps/office-organizer.png
-32x32/apps/office-pim.png
-32x32/apps/preferences-desktop-accessibility.png
-32x32/apps/preferences-desktop-font.png
-32x32/apps/preferences-desktop-multimedia.png
-32x32/apps/preferences-desktop-theme.png
-32x32/apps/preferences-desktop-wallpaper.png
-32x32/apps/preferences.png
-32x32/apps/system-file-manager.png
-32x32/apps/system-software-update.png
-32x32/apps/system-users.png
-32x32/apps/utilities-terminal.png
-32x32/categories/applications-games.png
-32x32/categories/applications-graphics.png
-32x32/categories/applications-internet.png
-32x32/categories/applications-multimedia.png
-32x32/categories/applications-office.png
-32x32/categories/applications.png
-32x32/categories/applications-system.png
-32x32/categories/applications-utilities.png
-32x32/categories/preferences-desktop-personal.png
-32x32/categories/preferences-desktop.png
-32x32/categories/preferences.png
-32x32/categories/preferences-system-network.png
-32x32/categories/preferences-system.png
-32x32/categories/system-help.png
-32x32/devices/camera-photo.png
-32x32/devices/camera-video.png
-32x32/devices/computer.png
-32x32/devices/drive-harddisk.png
-32x32/devices/drive-optical.png
-32x32/devices/drive-removable-media.png
-32x32/devices/input-mouse.png
-32x32/devices/media-flash.png
-32x32/devices/media-floppy.png
-32x32/devices/media-optical.png
-32x32/devices/network-wired.png
-32x32/devices/network-wireless.png
-32x32/devices/printer.png
-32x32/devices/scanner.png
-32x32/devices/usb.png
-32x32/devices/video-display.png
-32x32/mimetypes/application-pdf.png
-32x32/mimetypes/application-quicktime.png
-32x32/mimetypes/application-x-executable.png
-32x32/mimetypes/audio-x-generic.png
-32x32/mimetypes/empty-x-encrypted.png
-32x32/mimetypes/empty-x-generic.png
-32x32/mimetypes/empty-x-locked.png
-32x32/mimetypes/empty-x-temporary.png
-32x32/mimetypes/font-x-generic.png
-32x32/mimetypes/image-x-generic.png
-32x32/mimetypes/package-x-generic.png
-32x32/mimetypes/text-ascii.png
-32x32/mimetypes/text-html.png
-32x32/mimetypes/text-x-generic.png
-32x32/mimetypes/text-x-generic-template.png
-32x32/mimetypes/text-x-script.png
-32x32/mimetypes/unknown-x-temporary.png
-32x32/mimetypes/video-x-generic.png
-32x32/mimetypes/x-office-calendar.png
-32x32/mimetypes/x-office-spreadsheet.png
-32x32/places/archive-folder.png
-32x32/places/document-folder.png
-32x32/places/favorite-folder.png
-32x32/places/folder.png
-32x32/places/folder-remote.png
-32x32/places/html-folder.png
-32x32/places/network-server.png
-32x32/places/network-workgroup.png
-32x32/places/services.png
-32x32/places/user-desktop.png
-32x32/places/user-home.png
-32x32/places/user-trash-empty.png
-32x32/places/user-trash-full.png
-32x32/places/user-trash.png
-32x32/places/www.png
-32x32/status/dialog-error.png
-32x32/status/dialog-information.png
-32x32/status/dialog-password.png
-32x32/status/dialog-warning.png
-48x48/actions/help-contents.png
-48x48/actions/help-faq.png
-48x48/apps/accessories-alarm.png
-48x48/apps/accessories-archiver.png
-48x48/apps/accessories-calculator.png
-48x48/apps/accessories-character-map.png
-48x48/apps/accessories-clipboard.png
-48x48/apps/accessories-clock.png
-48x48/apps/accessories-date.png
-48x48/apps/accessories-dictionary.png
-48x48/apps/accessories-disk-usage.png
-48x48/apps/accessories-floppy.png
-48x48/apps/accessories-magnifier.png
-48x48/apps/accessories-notes.png
-48x48/apps/accessories-terminal.png
-48x48/apps/accessories-text-editor.png
-48x48/apps/accessories-timer.png
-48x48/apps/accessories-time-tracking.png
-48x48/apps/accessories-tip.png
-48x48/apps/graphics-image-viewer.png
-48x48/apps/graphics-snapshot.png
-48x48/apps/help-browser.png
-48x48/apps/internet-download-manager.png
-48x48/apps/internet-email-client.png
-48x48/apps/internet-web-browser.png
-48x48/apps/multimedia-movie-player.png
-48x48/apps/multimedia-volume-control.png
-48x48/apps/office-adobe-reader.png
-48x48/apps/office-organizer.png
-48x48/apps/office-pim.png
-48x48/apps/preferences-desktop-accessibility.png
-48x48/apps/preferences-desktop-font.png
-48x48/apps/preferences-desktop-multimedia.png
-48x48/apps/preferences-desktop-theme.png
-48x48/apps/preferences-desktop-wallpaper.png
-48x48/apps/system-file-manager.png
-48x48/apps/system-software-update.png
-48x48/apps/system-users.png
-48x48/apps/utilities-terminal.png
-48x48/categories/applications-games.png
-48x48/categories/applications-graphics.png
-48x48/categories/applications-internet.png
-48x48/categories/applications-multimedia.png
-48x48/categories/applications-office.png
-48x48/categories/applications.png
-48x48/categories/applications-system.png
-48x48/categories/applications-utilities.png
-48x48/categories/preferences-desktop-personal.png
-48x48/categories/preferences-desktop.png
-48x48/categories/preferences.png
-48x48/categories/preferences-system-network.png
-48x48/categories/preferences-system.png
-48x48/categories/system-help.png
-48x48/devices/camera-photo.png
-48x48/devices/camera-video.png
-48x48/devices/computer.png
-48x48/devices/drive-harddisk.png
-48x48/devices/drive-optical.png
-48x48/devices/drive-removable-media.png
-48x48/devices/input-mouse.png
-48x48/devices/media-flash.png
-48x48/devices/media-floppy.png
-48x48/devices/media-optical.png
-48x48/devices/network-wired.png
-48x48/devices/network-wireless.png
-48x48/devices/printer.png
-48x48/devices/scanner.png
-48x48/devices/usb.png
-48x48/devices/video-display.png
-48x48/mimetypes/application-pdf.png
-48x48/mimetypes/application-quicktime.png
-48x48/mimetypes/application-x-executable.png
-48x48/mimetypes/audio-x-generic.png
-48x48/mimetypes/empty-x-encrypted.png
-48x48/mimetypes/empty-x-generic.png
-48x48/mimetypes/empty-x-locked.png
-48x48/mimetypes/empty-x-temporary.png
-48x48/mimetypes/font-x-generic.png
-48x48/mimetypes/image-x-generic.png
-48x48/mimetypes/package-x-generic.png
-48x48/mimetypes/text-ascii.png
-48x48/mimetypes/text-html.png
-48x48/mimetypes/text-x-generic.png
-48x48/mimetypes/text-x-generic-template.png
-48x48/mimetypes/text-x-script.png
-48x48/mimetypes/unknown-x-temporary.png
-48x48/mimetypes/video-x-generic.png
-48x48/mimetypes/x-office-calendar.png
-48x48/mimetypes/x-office-spreadsheet.png
-48x48/places/archive-folder.png
-48x48/places/document-folder.png
-48x48/places/folder.png
-48x48/places/folder-remote.png
-48x48/places/html-folder.png
-48x48/places/network-server.png
-48x48/places/network-workgroup.png
-48x48/places/services.png
-48x48/places/user-desktop.png
-48x48/places/user-home.png
-48x48/places/user-trash-empty.png
-48x48/places/user-trash-full.png
-48x48/places/user-trash.png
-48x48/places/www.png
-48x48/status/dialog-password.png
-64x64/actions/help-contents.png
-64x64/actions/help-faq.png
-64x64/apps/accessories-alarm.png
-64x64/apps/accessories-archiver.png
-64x64/apps/accessories-calculator.png
-64x64/apps/accessories-character-map.png
-64x64/apps/accessories-clipboard.png
-64x64/apps/accessories-clock.png
-64x64/apps/accessories-date.png
-64x64/apps/accessories-dictionary.png
-64x64/apps/accessories-disk-usage.png
-64x64/apps/accessories-floppy.png
-64x64/apps/accessories-magnifier.png
-64x64/apps/accessories-notes.png
-64x64/apps/accessories-terminal.png
-64x64/apps/accessories-text-editor.png
-64x64/apps/accessories-time-tracking.png
-64x64/apps/accessories-tip.png
-64x64/apps/graphics-image-viewer.png
-64x64/apps/graphics-snapshot.png
-64x64/apps/help-browser.png
-64x64/apps/internet-download-manager.png
-64x64/apps/internet-email-client.png
-64x64/apps/internet-web-browser.png
-64x64/apps/multimedia-movie-player.png
-64x64/apps/multimedia-volume-control.png
-64x64/apps/office-adobe-reader.png
-64x64/apps/office-organizer.png
-64x64/apps/office-pim.png
-64x64/apps/preferences-desktop-accessibility.png
-64x64/apps/preferences-desktop-font.png
-64x64/apps/preferences-desktop-multimedia.png
-64x64/apps/preferences-desktop-theme.png
-64x64/apps/preferences-desktop-wallpaper.png
-64x64/apps/system-file-manager.png
-64x64/apps/system-software-update.png
-64x64/apps/system-users.png
-64x64/apps/utilities-terminal.png
-64x64/categories/applications-games.png
-64x64/categories/applications-graphics.png
-64x64/categories/applications-internet.png
-64x64/categories/applications-multimedia.png
-64x64/categories/applications-office.png
-64x64/categories/applications.png
-64x64/categories/applications-system.png
-64x64/categories/applications-utilities.png
-64x64/categories/preferences-desktop-personal.png
-64x64/categories/preferences-desktop.png
-64x64/categories/preferences.png
-64x64/categories/preferences-system-network.png
-64x64/categories/preferences-system.png
-64x64/categories/system-help.png
-64x64/devices/camera-photo.png
-64x64/devices/camera-video.png
-64x64/devices/computer.png
-64x64/devices/drive-harddisk.png
-64x64/devices/drive-optical.png
-64x64/devices/drive-removable-media.png
-64x64/devices/input-mouse.png
-64x64/devices/media-flash.png
-64x64/devices/media-floppy.png
-64x64/devices/media-optical.png
-64x64/devices/network-wired.png
-64x64/devices/network-wireless.png
-64x64/devices/printer.png
-64x64/devices/scanner.png
-64x64/devices/usb.png
-64x64/devices/video-display.png
-64x64/mimetypes/application-pdf.png
-64x64/mimetypes/application-quicktime.png
-64x64/mimetypes/application-x-executable.png
-64x64/mimetypes/audio-x-generic.png
-64x64/mimetypes/empty-x-encrypted.png
-64x64/mimetypes/empty-x-generic.png
-64x64/mimetypes/empty-x-locked.png
-64x64/mimetypes/empty-x-temporary.png
-64x64/mimetypes/font-x-generic.png
-64x64/mimetypes/image-x-generic.png
-64x64/mimetypes/package-x-generic.png
-64x64/mimetypes/text-ascii.png
-64x64/mimetypes/text-html.png
-64x64/mimetypes/text-x-generic.png
-64x64/mimetypes/text-x-generic-template.png
-64x64/mimetypes/text-x-script.png
-64x64/mimetypes/unknown-x-temporary.png
-64x64/mimetypes/video-x-generic.png
-64x64/mimetypes/x-office-calendar.png
-64x64/mimetypes/x-office-spreadsheet.png
-64x64/places/archive-folder.png
-64x64/places/document-folder.png
-64x64/places/folder.png
-64x64/places/folder-remote.png
-64x64/places/html-folder.png
-64x64/places/network-server.png
-64x64/places/network-workgroup.png
-64x64/places/services.png
-64x64/places/user-desktop.png
-64x64/places/user-home.png
-64x64/places/user-trash-empty.png
-64x64/places/user-trash-full.png
-64x64/places/user-trash.png
-64x64/places/www.png
-64x64/status/dialog-password.png
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/freedesktop-to-qooxdoo.sh b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/freedesktop-to-qooxdoo.sh
deleted file mode 100755 (executable)
index 2469874..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/usr/bin/env bash
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-INPUT=themes/freedesktop/use
-OUTPUT=themes/qooxdoo/use
-
-echo ">>> Cleanup..."
-rm -rf ${OUTPUT}/*
-
-echo ">>> Converting themes..."
-for DIR in `find ${INPUT} -maxdepth 1 -mindepth 1 -type d ! -name .svn`
-do
-  THEME=`basename $DIR`
-  echo "  - $THEME"
-
-  for ITEM in `cat data/qooxdoo_whitelist.dat`
-  do
-    SIZE=`echo $ITEM | cut -d"x" -f1`
-    SUBPATH=`echo $ITEM | cut -d"/" -f2-`
-
-    SOURCE=${INPUT}/${THEME}/${ITEM}
-    TARGET=${OUTPUT}/${THEME}/${SIZE}/${SUBPATH}
-    TARGETDIR=`dirname $TARGET`
-
-    if [ -r ${SOURCE} ]
-    then
-      if [ ! -r $TARGETDIR ]; then
-        mkdir -p $TARGETDIR
-      fi
-      cp -f ${SOURCE} ${TARGET}
-    else
-      echo "    - Missing icon: $ITEM (Malformed whitelist!)"
-    fi
-  done
-done
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/generate-whitelist.sh b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/generate-whitelist.sh
deleted file mode 100755 (executable)
index 71ef709..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env bash
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-echo ">>> Indexing themes..."
-mkdir -p temp
-echo -n "" > temp/fd_content_all.txt
-COUNT=0
-for DIR in `find themes/freedesktop/use -maxdepth 1 -mindepth 1 -type d ! -name .svn`
-do
-  THEMENAME=`basename $DIR`
-  echo "  - $THEMENAME"
-  find $DIR -name "*.png" | cut -d"/" -f5- >> temp/fd_content_all.txt
-  COUNT=$[$COUNT+1]
-done
-
-echo ">>> Normalizing..."
-cat temp/fd_content_all.txt | sort | uniq -c | grep "${COUNT} " | cut -d" " -f8 > data/qooxdoo_whitelist.dat
-
-echo ">>> Result..."
-wc -l data/qooxdoo_whitelist.dat
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/kde-to-freedesktop.sh b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/kde-to-freedesktop.sh
deleted file mode 100755 (executable)
index 95486c6..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/env bash
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-OUTPUT=themes/freedesktop/use
-CONVERT=./modules/kde-to-freedesktop.py
-
-echo ">>> Converting themes..."
-chmod +x $CONVERT
-mkdir -p $OUTPUT
-for DIR in `find themes/kde/use -maxdepth 1 -mindepth 1 -type d ! -name .svn`
-do
-  THEMENAME=`basename $DIR`
-  echo "  * $THEMENAME"
-  ${CONVERT} -i $DIR -o ${OUTPUT}/${THEMENAME}
-done
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/modules/fix-names.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/modules/fix-names.py
deleted file mode 100755 (executable)
index f52d881..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-#!/usr/bin/env python
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-# encoding: utf-8
-"""
-fix-names.py
-"""
-
-import os
-import sys
-import getopt
-
-
-help_message = '''
-The help message goes here.
-'''
-
-
-class Usage(Exception):
-    def __init__(self, msg):
-        self.msg = msg
-
-def get_migration_patch(qx_to_tango_map, qx_not_in_tango, qx_in_tango_without_image, qx_icon_path, tango_icon_path):
-       re = ""
-       for qx in qx_to_tango_map:
-                       re += "(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\\\"\\'])%s\\.png([\\\"\\'])=\\1%s.png\\2\n" % (qx, qx_to_tango_map[qx])
-       return re
-
-
-def get_migration_info(qx_to_tango_map, qx_not_in_tango, qx_in_tango_without_image, qx_icon_path, tango_icon_path):
-       re = ""
-       for qx in qx_not_in_tango:
-               re += "(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)     [/\\\"\\']%s\\.png[\\\"\\']=The image '%s.png' is no longer supported! Try to use a different icon.\n" % (qx, qx)
-               #re += "[/\\\"\\']%s\\.png[\\\"\\']=The image '%s.png' is no longer supported! Try to use a different icon.\n" % (qx, qx)
-
-       re += "\n"
-
-       for qx in qx_in_tango_without_image:
-               re += "(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\\\"\\']%s\\.png[\\\"\\']=The image '%s.png' is no longer supported! Try to use a different icon.\n" % (qx, qx)
-               #re += "\\b%s\\.png[\\\"\\']=The image '%s.png' should be renamed to '%s' but currently no icon for the default icon set exists!\n" % (qx, qx, qx_in_tango_without_image[qx])
-
-       return re
-
-
-def get_html(qx_to_tango_map, qx_not_in_tango, qx_in_tango_without_image, qx_icon_path, tango_icon_path):
-       html = """
-       <html>
-       <body>
-       %s
-       </body>
-       </html>
-       """
-       qx_to_tango_table = """
-       <h2>qooxdoo to Tango mapping</h2>
-       <table>
-       %s
-       </table>
-       """
-       rows = ""
-       for qx in qx_to_tango_map:
-               tango = qx_to_tango_map[qx]
-               rows += "<tr><td><img src='%s/%s.png'></img>%s</td><td><img src='%s/%s.png'></img>%s</td></tr>\n" % (qx_icon_path, qx, qx, tango_icon_path, tango, tango)
-       qx_to_tango_table = qx_to_tango_table % rows
-
-       no_tango_icon_table = """
-       <h2>qoxxdoo images tango equivalent but no tango icon</h2>
-       <table>
-       %s
-       </table>
-       """
-       rows = ""
-       keys = qx_in_tango_without_image.keys()
-       keys.sort()
-       for qx in keys:
-               rows += "<tr><td><img src='%s/%s.png'></img>%s</td><td>%s</td></tr>\n" % (qx_icon_path, qx, qx, qx_in_tango_without_image[qx])
-       no_tango_icon_table = no_tango_icon_table % rows
-
-       no_tango_list = "<h2>qoxxdoo images without tango equivalent</h2>"
-       for qx in qx_not_in_tango:
-               no_tango_list += "<img src='%s/%s.png'></img>%s<br>\n" % (qx_icon_path, qx, qx)
-
-       return html % (qx_to_tango_table + no_tango_icon_table + no_tango_list)
-
-def print_migration(qx_to_tango_map, qx_not_in_tango, qx_in_tango_without_image):
-       pass
-
-def search_tango(filename, path):
-       for dirpath, dirs, files in os.walk(path):
-               if filename + ".png" in files: return os.path.join(dirpath.split(os.sep)[-1], filename)
-       return ""
-
-def fix_names(qx_icon_path, tango_icon_path):
-       qx_to_tango_map = {}
-       qx_not_in_tango = []
-       qx_in_tango_without_image = {}
-
-       lines = open(os.path.join(os.path.dirname(sys.argv[0]), "..", "data", "qooxdoo_freedesktop.dat")).readlines()
-       for line in lines:
-               line = line.strip();
-               if line == "" or line[0] == "#": continue
-               if not "=" in line:
-                       qx_not_in_tango.append(line)
-                       continue
-                       #qx = line
-                       #tango = line
-               
-               (qx, tango) = map(lambda x: x.strip(), line.split("="))
-
-               if os.path.exists(os.path.join(tango_icon_path, tango + ".png")):
-                       qx_to_tango_map[qx] = tango
-               else:
-                       qx_in_tango_without_image[qx] = tango
-
-       return (
-               qx_to_tango_map,
-               qx_not_in_tango,
-               qx_in_tango_without_image
-       )
-
-def main(argv=None):
-    tool_path = os.path.join(os.path.dirname(sys.argv[0]), "..")
-    if argv is None:
-        argv = sys.argv
-    try:
-        try:
-            opts, args = getopt.getopt(argv[1:], "ho:t:q:v", ["help", "output=", "tango-icon-path=", "qooxdoo-icon-path="])
-        except getopt.error, msg:
-            raise Usage(msg)
-
-        # option processing
-        tango_icon_path = os.path.join(tool_path, "themes/qooxdoo/nuvola/16x16")
-        qx_icon_path = os.path.join(tool_path, "../../source/resource/icon/nuvola/16")
-        output = ""
-        for option, value in opts:
-            if option == "-v":
-                verbose = True
-            if option in ("-h", "--help"):
-                raise Usage(help_message)
-            if option in ("-o", "--output"):
-                output = value
-            if option in ("-t", "--tango-icon-path"):
-                tango_icon_path = value
-            if option in ("-q", "--qooxdoo-icon-path"):
-                qx_icon_path = value
-
-        if not output in ["html", "patch", "info", "debug"]:
-            raise Usage("invalid parameter for output.")
-                       
-        (qx_to_tango_map, qx_not_in_tango, qx_in_tango_without_image) = fix_names(qx_icon_path, tango_icon_path)
-
-        if output == "html":
-            print get_html(qx_to_tango_map, qx_not_in_tango, qx_in_tango_without_image, qx_icon_path, tango_icon_path)
-        elif output == "info":
-            print get_migration_info(qx_to_tango_map, qx_not_in_tango, qx_in_tango_without_image, qx_icon_path, tango_icon_path)
-        elif output == "patch":
-            print get_migration_patch(qx_to_tango_map, qx_not_in_tango, qx_in_tango_without_image, qx_icon_path, tango_icon_path)
-        elif output == "debug":
-            print qx_not_in_tango
-
-    except Usage, err:
-        print >> sys.stderr, sys.argv[0].split("/")[-1] + ": " + str(err.msg)
-        print >> sys.stderr, "\t for help use --help"
-        return 2
-
-
-if __name__ == "__main__":
-    sys.exit(main())
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/modules/kde-to-freedesktop.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/modules/kde-to-freedesktop.py
deleted file mode 100755 (executable)
index 51310bd..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-#!/usr/bin/env python
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#
-################################################################################
-
-import os
-import sys
-import shutil
-import optparse
-
-def rmgeneric(path, __func__):
-  try:
-    __func__(path)
-  except OSError, (errno, strerror):
-    print ERROR_STR % {'path' : path, 'error': strerror }
-
-
-def removeall(path):
-  if not os.path.isdir(path):
-    return
-
-  files=os.listdir(path)
-
-  for x in files:
-    fullpath=os.path.join(path, x)
-    if os.path.isfile(fullpath):
-      f=os.remove
-      rmgeneric(fullpath, f)
-    elif os.path.isdir(fullpath):
-      removeall(fullpath)
-      f=os.rmdir
-      rmgeneric(fullpath, f)
-
-
-
-def copy_file(kde, fd, options):
-  img_sizes = [16, 22, 32, 48, 64, 72, 96, 128]
-  found = []
-  notfound = []
-
-  if options.verbose:
-    print "    - Processing: %s -> %s" % (kde, fd)
-
-  for size in img_sizes:
-    kde_file = "%s/%sx%s/%s.png" % (options.input, size, size, kde)
-    fd_file = "%s/%sx%s/%s.png" % (options.output, size, size, fd)
-
-    if os.path.exists(kde_file):
-      fd_dir = os.path.dirname(fd_file)
-      if not os.path.exists(fd_dir):
-        os.makedirs(fd_dir)
-
-      shutil.copyfile(kde_file, fd_file)
-      found.append(size)
-
-    else:
-      notfound.append(size)
-
-  if options.verbose:
-    dbg = "      "
-    for size in img_sizes:
-      if size in found:
-        ret = "Y"
-      else:
-        ret = "N"
-      dbg += " [%s] %s" % (ret, size)
-
-    print dbg
-
-
-
-def main():
-  parser = optparse.OptionParser("usage: %prog [options]")
-  parser.add_option("-q", "--quiet", action="store_false", dest="verbose", default=False, help="Quiet output mode.")
-  parser.add_option("-v", "--verbose", action="store_true", dest="verbose", help="Verbose output mode.")
-  parser.add_option("--input", "-i", action="store", dest="input", metavar="DIRECTORY", help="Input directory")
-  parser.add_option("--output", "-o", action="store", dest="output", metavar="DIRECTORY", help="Output directory")
-
-  (options, args) = parser.parse_args(sys.argv[1:])
-
-  if options.input == None or options.output == None:
-    basename = os.path.basename(sys.argv[0])
-    print "You must define both, the input and output folders!"
-    print "usage: %s [options]" % basename
-    print "Try '%s -h' or '%s --help' to show the help message." % (basename, basename)
-    sys.exit(1)
-
-  print "    - Cleaning up..."
-  removeall(options.output)
-
-  dat = open("%s/../data/kde_freedesktop.dat" % os.path.dirname(sys.argv[0]))
-
-  print "    - Copying files..."
-  for line in dat.readlines():
-    line = line.strip();
-
-    if line == "" or line[0] == "#":
-      continue
-
-    if not line[0] in ["+", "*"]:
-      continue
-
-    line = line[1:]
-
-    (fd, kde) = map(lambda x: x.strip(), line.split("="))
-    copy_file(kde, fd, options)
-
-
-
-if __name__ == "__main__":
-    sys.exit(main())
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/normalize-kde-themes.sh b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/normalize-kde-themes.sh
deleted file mode 100755 (executable)
index 976c466..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/env bash
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-SIZES="16 22 24 32 48 64 72 96 128"
-
-echo ">>> Cleaning up old symlinks"
-find themes/kde/use -type l | xargs rm -f
-
-echo ">>> Symlinking identical images..."
-for DIR in `find themes/kde/use -maxdepth 1 -mindepth 1 -type d ! -name .svn`
-do
-  THEMENAME=`basename $DIR`
-  echo "  * $THEMENAME"
-
-  for SIZE in $SIZES
-  do
-    for ITEM in `cat data/kde_normalize.dat`
-    do
-      NAME1=`echo $ITEM | cut -d"=" -f1`
-      NAME2=`echo $ITEM | cut -d"=" -f2 | sed s:"=":"":g`
-
-      FILE1=$DIR/${SIZE}x${SIZE}/$NAME1.png
-      FILE2=$DIR/${SIZE}x${SIZE}/$NAME2.png
-
-      if [ -r ${FILE1} ]
-      then
-        if [ ! -r ${FILE2} -a ! -L ${FILE2} ]; then
-          echo "    - Linking: $SIZE/$NAME1 -> $SIZE/$NAME2"
-          mkdir -p `dirname ${FILE2}`
-          ln -s ${FILE1} ${FILE2}
-        fi
-      fi
-
-      if [ -r ${FILE2} ]
-      then
-        if [ ! -r ${FILE1} -a ! -L ${FILE1} ]; then
-          echo "    - Linking: $SIZE/$NAME2 -> $SIZE/$NAME1"
-          mkdir -p `dirname ${FILE1}`
-          ln -s ${FILE2} ${FILE1}
-        fi
-      fi
-    done
-  done
-done
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/prepare-kde-themes.sh b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/prepare-kde-themes.sh
deleted file mode 100755 (executable)
index 62c8073..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/env bash
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-BASESIZES="16 22 32"
-
-echo ">>> Indexing themes..."
-mkdir -p temp
-echo -n "" > temp/kde_content_all.txt
-COUNT=0
-for DIR in `find themes/kde/use -maxdepth 1 -mindepth 1 -type d ! -name .svn`
-do
-  THEMENAME=`basename $DIR`
-  echo "  - $THEMENAME"
-  find $DIR -name "*.png" | cut -d"/" -f5- >> temp/kde_content_all.txt
-  COUNT=$[$COUNT+1]
-done
-
-echo ">>> Building common list..."
-cat temp/kde_content_all.txt | sort | uniq -c | sort > temp/kde_content_count.txt
-cat temp/kde_content_count.txt | grep "$COUNT " | cut -d" " -f8 | cut -d"." -f1 > temp/kde_content_common.txt
-cat temp/kde_content_count.txt | grep "$[$COUNT-1] " | cut -d" " -f8 | cut -d"." -f1 > temp/kde_content_common_less.txt
-
-echo ">>> Building list for base sizes..."
-echo -n "" > temp/kde_content_common_base_temp.txt
-for BASESIZE in $BASESIZES; do
-  echo "  * $BASESIZE"
-  grep ${BASESIZE}x${BASESIZE} temp/kde_content_common.txt | cut -d"/" -f2- | sort | uniq > temp/kde_content_common_${BASESIZE}.txt
-  cat temp/kde_content_common_${BASESIZE}.txt >> temp/kde_content_common_base_temp.txt
-done
-
-echo ">>> Normalizing list..."
-cat temp/kde_content_common_base_temp.txt | sort | uniq > temp/kde_content_common_base.txt
-
-echo ">>> Preparing replacement map..."
-cat data/kde_freedesktop.dat | cut -s -d"=" -f2 | sort | uniq > temp/kde_content_assigned.txt
-
-echo ">>> Finding differences..."
-diff temp/kde_content_common_base.txt temp/kde_content_assigned.txt > temp/kde_content_assigned.diff
-
-echo ">>> Unassigned images..."
-grep "^<" temp/kde_content_assigned.diff | cut -d" " -f2-
-
-echo ">>> Unavailable images (hopefully empty)..."
-grep "^>" temp/kde_content_assigned.diff | cut -d" " -f2-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/scalable-to-png.sh b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/icon/scalable-to-png.sh
deleted file mode 100755 (executable)
index f0fd420..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/usr/bin/env bash
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-which rsvg-convert > /dev/null || exit 1
-
-SIZES="16 22 24 32 48 64 72 96 128"
-FORMAT=png
-
-for TYPE in kde
-do
-  INPUT=themes/${TYPE}/scalable
-  OUTPUT=themes/${TYPE}/use
-
-  for THEME in `find $INPUT -maxdepth 1 -mindepth 1 -type d ! -name .svn`
-  do
-    THEMENAME=`basename $THEME`
-    echo ">>> Processing $THEMENAME ($TYPE)"
-
-    mkdir -p $OUTPUT
-
-    for DIR in `find ${THEME}/scalable -maxdepth 1 -mindepth 1 -type d ! -name .svn`
-    do
-      CAT=`basename $DIR`
-      echo "  * Category ${CAT}"
-
-      echo "    - Creating directories..."
-      for SIZE in $SIZES; do
-        mkdir -p ${OUTPUT}/${THEMENAME}/${SIZE}x${SIZE}/${CAT}
-      done
-
-      echo "    - Rendering files..."
-      for SVG in `find $DIR -name "*.svg"`
-      do
-        SVGNAME=`basename $SVG`
-        RENNAME=`echo $SVGNAME | sed s:svg:$FORMAT:g`
-
-        for SIZE in $SIZES; do
-          rsvg-convert $SVG -o ${OUTPUT}/${THEMENAME}/${SIZE}x${SIZE}/${CAT}/${RENNAME} -a -w $SIZE -h $SIZE -f $FORMAT
-        done
-      done
-    done
-  done
-done
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/make/apiviewer.mk b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/make/apiviewer.mk
deleted file mode 100644 (file)
index 535770c..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-################################################################################\r
-#\r
-#  qooxdoo - the new era of web development\r
-#\r
-#  http://qooxdoo.org\r
-#\r
-#  Copyright:\r
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org\r
-#\r
-#  License:\r
-#    LGPL: http://www.gnu.org/licenses/lgpl.html\r
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php\r
-#    See the LICENSE file in the project's top-level directory for details.\r
-#\r
-#  Authors:\r
-#    * Sebastian Werner (wpbasti)\r
-#    * Andreas Ecker (ecker)\r
-#    * Fabian Jakobs (fjakobs)\r
-#\r
-################################################################################\r
-\r
-#\r
-# API Paths\r
-#\r
-APIVIEWER_NAMESPACE = apiviewer\r
-APIVIEWER_PATH = $(QOOXDOO_PATH)/frontend/application/apiviewer\r
-APIVIEWER_SOURCE_PATH = $(APIVIEWER_PATH)/source\r
-APIVIEWER_FILES = index.html\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/make/application.mk b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/make/application.mk
deleted file mode 100644 (file)
index 94d1f9b..0000000
+++ /dev/null
@@ -1,385 +0,0 @@
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Andreas Ecker (ecker)
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-###################################################################################
-# INCLUDE EXTERNAL MAKEFILES
-###################################################################################
-
-include $(QOOXDOO_PATH)/frontend/framework/tool/make/framework.mk
-include $(QOOXDOO_PATH)/frontend/framework/tool/make/apiviewer.mk
-
-
-
-####################################################################################
-# BASIC SETTINGS
-####################################################################################
-
-#
-# Location of your qooxdoo distribution
-# Could be relative from this location or absolute
-#
-ifndef QOOXDOO_PATH
-  QOOXDOO_PATH = PLEASE_DEFINE_QOOXDOO_PATH
-endif
-
-#
-# The same as above, but from the webserver point of view
-# Starting point is the application HTML file of the source folder.
-# In most cases just add a "/.." compared to above
-#
-ifndef QOOXDOO_URI
-  QOOXDOO_URI = $(QOOXDOO_PATH)/..
-endif
-
-#
-# Namespace of your application e.g. custom
-#
-ifndef APPLICATION_NAMESPACE
-  APPLICATION_NAMESPACE = custom
-endif
-
-#
-# Titles used in your API viewer and during the build process
-#
-ifndef APPLICATION_MAKE_TITLE
-  APPLICATION_MAKE_TITLE = CUSTOM
-endif
-
-ifndef APPLICATION_API_TITLE
-  APPLICATION_API_TITLE = Custom
-endif
-
-#
-# Files that will be copied into the build directory
-# (space separated list) (no default)
-#
-# ifndef APPLICATION_FILES
-#   APPLICATION_FILES = index.html
-# endif
-
-#
-# Locales to use (space separated list)
-#
-ifndef APPLICATION_LOCALES
-  APPLICATION_LOCALES = C
-else
-  APPLICATION_LOCALES += C
-endif
-
-
-
-
-
-
-####################################################################################
-# ADVANCED SETTINGS
-####################################################################################
-
-#
-# Define folder path
-#
-ifndef APPLICATION_PATH
-  APPLICATION_PATH = .
-endif
-
-#
-# Define deep folder paths
-#
-ifndef APPLICATION_SOURCE_PATH
-  APPLICATION_SOURCE_PATH = $(APPLICATION_PATH)/source
-endif
-
-ifndef APPLICATION_BUILD_PATH
-  APPLICATION_BUILD_PATH = $(APPLICATION_PATH)/build
-endif
-
-ifndef APPLICATION_API_PATH
-  APPLICATION_API_PATH = $(APPLICATION_PATH)/api
-endif
-
-#
-# Define the publishing location
-# Could be any rsync compatible url/path
-#
-ifndef APPLICATION_PUBLISH_PATH
-  APPLICATION_PUBLISH_PATH = $(APPLICATION_PATH)/publish
-endif
-
-#
-# Define the debug location
-# Could be any rsync compatible url/path
-#
-ifndef APPLICATION_DEBUG_PATH
-  APPLICATION_DEBUG_PATH = $(APPLICATION_PATH)/debug
-endif
-
-#
-# Relation from HTML file to the top level directory (source or build).
-#
-ifndef APPLICATION_PAGE_TO_TOPLEVEL
-  APPLICATION_PAGE_TO_TOPLEVEL = .
-endif
-
-#
-# Configure resource handling
-#
-ifndef APPLICATION_RESOURCE_FILTER
-  APPLICATION_RESOURCE_FILTER = false
-endif
-
-#
-# Customize your build
-#
-ifndef APPLICATION_COMPLETE_BUILD
-  APPLICATION_COMPLETE_BUILD = false
-endif
-
-ifndef APPLICATION_COMPLETE_SOURCE
-  APPLICATION_COMPLETE_SOURCE = true
-endif
-
-ifndef APPLICATION_COMPLETE_API
-  APPLICATION_COMPLETE_API = true
-endif
-
-#
-# Customize your build
-#
-ifndef APPLICATION_LINEBREAKS_BUILD
-  APPLICATION_LINEBREAKS_BUILD = true
-endif
-
-ifndef APPLICATION_LINEBREAKS_SOURCE
-  APPLICATION_LINEBREAKS_SOURCE = true
-endif
-
-#
-# Configure optimizer
-#
-ifndef APPLICATION_OPTIMIZE_STRINGS
-  APPLICATION_OPTIMIZE_STRINGS = true
-endif
-
-ifndef APPLICATION_OPTIMIZE_VARIABLES
-  APPLICATION_OPTIMIZE_VARIABLES = true
-endif
-
-#
-# Include support for widgets
-#
-ifndef APPLICATION_ENABLE_GUI
-  APPLICATION_ENABLE_GUI = true
-endif
-
-#
-# Redefine folder names (inside build/source)
-# It is not recommended to change these fundamental settings.
-#
-ifndef APPLICATION_SCRIPT_FOLDERNAME
-  APPLICATION_SCRIPT_FOLDERNAME = script
-endif
-
-ifndef APPLICATION_CLASS_FOLDERNAME
-  APPLICATION_CLASS_FOLDERNAME = class
-endif
-
-ifndef APPLICATION_TRANSLATION_FOLDERNAME
-  APPLICATION_TRANSLATION_FOLDERNAME = translation
-endif
-
-#
-# Name of the generated script
-#
-ifndef APPLICATION_SCRIPT_FILENAME
-  APPLICATION_SCRIPT_FILENAME = $(APPLICATION_NAMESPACE).js
-endif
-
-#
-# Full application classname
-#
-ifndef APPLICATION_CLASSNAME
-  APPLICATION_CLASSNAME = $(APPLICATION_NAMESPACE).Application
-endif
-
-#
-# Translation path
-#
-ifndef APPLICATION_TRANSLATION_PATH
-  APPLICATION_TRANSLATION_PATH = $(APPLICATION_SOURCE_PATH)/$(APPLICATION_TRANSLATION_FOLDERNAME)
-endif
-
-#
-# Namespace of translation classes
-#
-ifndef APPLICATION_TRANSLATION_CLASS_NAMESPACE
-  APPLICATION_TRANSLATION_CLASS_NAMESPACE = $(APPLICATION_NAMESPACE).$(APPLICATION_TRANSLATION_FOLDERNAME)
-endif
-
-#
-# Directory of translation classes
-#
-ifndef APPLICATION_TRANSLATION_CLASS_PATH
-  APPLICATION_TRANSLATION_CLASS_PATH = $(APPLICATION_SOURCE_PATH)/$(APPLICATION_CLASS_FOLDERNAME)/$(APPLICATION_NAMESPACE)/$(APPLICATION_TRANSLATION_FOLDERNAME)
-endif
-
-#
-# Settings for more advanced users
-#
-ifndef APPLICATION_ADDITIONAL_CLASS_PATH
-  APPLICATION_ADDITIONAL_CLASS_PATH =
-endif
-
-ifndef APPLICATION_ADDITIONAL_CLASS_URI
-  APPLICATION_ADDITIONAL_CLASS_URI =
-endif
-
-ifndef APPLICATION_ADDITIONAL_RESOURCE
-  APPLICATION_ADDITIONAL_RESOURCE =
-endif
-
-#
-# Template to patch (e.g. XHTML mode)
-#
-
-# (no default)
-
-#ifndef APPLICATION_TEMPLATE_INPUT
-#  APPLICATION_TEMPLATE_INPUT =
-#endif
-
-ifndef APPLICATION_TEMPLATE_OUTPUT
-  APPLICATION_TEMPLATE_OUTPUT = $(APPLICATION_TEMPLATE_INPUT).out
-endif
-
-ifndef APPLICATION_TEMPLATE_REPLACE
-  APPLICATION_TEMPLATE_REPLACE = <!-- qooxdoo-script-block -->
-endif
-
-
-
-
-
-
-###################################################################################
-# COMPUTED DEFAULTS
-###################################################################################
-
-COMPUTED_COMMON_INIT =
-
-COMPUTED_SOURCE_INCLUDE =
-COMPUTED_SOURCE_LINEBREAKS =
-
-COMPUTED_BUILD_INCLUDE =
-COMPUTED_BUILD_OPTIMIZATIONS =
-COMPUTED_BUILD_LINEBREAKS =
-
-COMPUTED_API_INCLUDE =
-
-
-
-
-
-
-###################################################################################
-# PROCESSING APPLICATION SETTINGS
-###################################################################################
-
-COMPUTED_CLASS_PATH = --class-path $(FRAMEWORK_SOURCE_PATH)/class \
-  --class-path $(APPLICATION_SOURCE_PATH)/$(APPLICATION_CLASS_FOLDERNAME) \
-  $(APPLICATION_ADDITIONAL_CLASS_PATH)
-
-COMPUTED_CLASS_URI = --class-uri $(FRAMEWORK_SOURCE_URI)/class \
-  --class-uri $(APPLICATION_PAGE_TO_TOPLEVEL)/$(APPLICATION_CLASS_FOLDERNAME) \
-  $(APPLICATION_ADDITIONAL_CLASS_URI)
-
-COMPUTED_RESOURCE = --copy-resources \
-  --resource-input $(FRAMEWORK_SOURCE_PATH)/resource \
-  --resource-output $(APPLICATION_BUILD_PATH)/resource/qx \
-  --define-runtime-setting qx.manager.object.AliasManager.resourceUri:$(APPLICATION_PAGE_TO_TOPLEVEL)/resource/qx \
-  --resource-input $(APPLICATION_SOURCE_PATH)/resource \
-  --resource-output $(APPLICATION_BUILD_PATH)/resource/$(APPLICATION_NAMESPACE) \
-  --define-runtime-setting $(APPLICATION_CLASSNAME).resourceUri:$(APPLICATION_PAGE_TO_TOPLEVEL)/resource/$(APPLICATION_NAMESPACE) \
-  $(APPLICATION_ADDITIONAL_RESOURCE)
-
-
-COMPUTED_FRAMEWORK_LOCALE_INCLUDE := $(APPLICATION_LOCALES:%= --include qx.locale.data.% )
-COMPUTED_FRAMEWORK_TRANSLATION_INCLUDE := $(APPLICATION_LOCALES:%= --include $(FRAMEWORK_TRANSLATION_CLASS_NAMESPACE).% )
-COMPUTED_APPLICATION_TRANSLATION_INCLUDE := $(APPLICATION_LOCALES:%= --include $(APPLICATION_TRANSLATION_CLASS_NAMESPACE).% )
-
-
-ifeq ($(APPLICATION_COMPLETE_SOURCE),false)
-  COMPUTED_SOURCE_INCLUDE = --include $(APPLICATION_CLASSNAME) \
-    $(COMPUTED_FRAMEWORK_LOCALE_INCLUDE) \
-    $(COMPUTED_FRAMEWORK_TRANSLATION_INCLUDE) \
-    $(COMPUTED_APPLICATION_TRANSLATION_INCLUDE)
-endif
-
-ifneq ($(APPLICATION_COMPLETE_BUILD),true)
-  COMPUTED_BUILD_INCLUDE = --include $(APPLICATION_CLASSNAME) \
-    $(COMPUTED_FRAMEWORK_LOCALE_INCLUDE) \
-    $(COMPUTED_FRAMEWORK_TRANSLATION_INCLUDE) \
-    $(COMPUTED_APPLICATION_TRANSLATION_INCLUDE)
-endif
-
-ifeq ($(APPLICATION_COMPLETE_API),false)
-  COMPUTED_API_INCLUDE = --include $(APPLICATION_CLASSNAME)
-endif
-
-ifeq ($(APPLICATION_OPTIMIZE_STRINGS),true)
-  COMPUTED_BUILD_OPTIMIZATIONS += --optimize-strings
-endif
-
-ifeq ($(APPLICATION_OPTIMIZE_VARIABLES),true)
-  COMPUTED_BUILD_OPTIMIZATIONS += --optimize-variables
-endif
-
-ifeq ($(APPLICATION_ENABLE_GUI),false)
-  COMPUTED_COMMON_INIT = --define-runtime-setting qx.core.Init.component:qx.component.init.BasicInitComponent
-endif
-
-ifeq ($(APPLICATION_RESOURCE_FILTER),true)
-  COMPUTED_RESOURCE += --enable-resource-filter
-endif
-
-ifeq ($(APPLICATION_LINEBREAKS_SOURCE),true)
-  COMPUTED_SOURCE_LINEBREAKS = --add-new-lines --add-file-ids
-endif
-
-ifeq ($(APPLICATION_LINEBREAKS_BUILD),true)
-  COMPUTED_BUILD_LINEBREAKS = --add-new-lines --add-file-ids
-endif
-
-ifneq ($(APPLICATION_TEMPLATE_INPUT),)
-  COMPUTED_TEMPLATE = --source-template-input-file $(APPLICATION_SOURCE_PATH)/$(APPLICATION_TEMPLATE_INPUT) --source-template-output-file $(APPLICATION_SOURCE_PATH)/$(APPLICATION_TEMPLATE_OUTPUT)
-
-  ifneq ($(APPLICATION_TEMPLATE_REPLACE),)
-    COMPUTED_TEMPLATE += --source-template-replace "$(APPLICATION_TEMPLATE_REPLACE)"
-  endif
-endif
-
-
-
-
-###################################################################################
-# INCLUDE EXTERNAL MAKEFILES
-###################################################################################
-
-include $(QOOXDOO_PATH)/frontend/framework/tool/make/impl.mk
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/make/framework.mk b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/make/framework.mk
deleted file mode 100644 (file)
index d38594f..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-################################################################################\r
-#\r
-#  qooxdoo - the new era of web development\r
-#\r
-#  http://qooxdoo.org\r
-#\r
-#  Copyright:\r
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org\r
-#\r
-#  License:\r
-#    LGPL: http://www.gnu.org/licenses/lgpl.html\r
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php\r
-#    See the LICENSE file in the project's top-level directory for details.\r
-#\r
-#  Authors:\r
-#    * Sebastian Werner (wpbasti)\r
-#    * Andreas Ecker (ecker)\r
-#    * Fabian Jakobs (fjakobs)\r
-#\r
-################################################################################\r
-\r
-#\r
-# Framework paths\r
-#\r
-FRAMEWORK_PATH = $(QOOXDOO_PATH)/frontend/framework\r
-FRAMEWORK_NAMESPACE = qx\r
-FRAMEWORK_SOURCE_PATH = $(FRAMEWORK_PATH)/source\r
-FRAMEWORK_CACHE_PATH = $(FRAMEWORK_PATH)/.cache\r
-FRAMEWORK_CLASS_FOLDERNAME = class\r
-\r
-FRAMEWORK_LOCALE_PATH = $(FRAMEWORK_SOURCE_PATH)/locale\r
-FRAMEWORK_LOCALE_CLASS_PATH = $(FRAMEWORK_SOURCE_PATH)/$(FRAMEWORK_CLASS_FOLDERNAME)/$(FRAMEWORK_NAMESPACE)/locale/data\r
-\r
-FRAMEWORK_TRANSLATION_PATH = $(FRAMEWORK_SOURCE_PATH)/translation\r
-FRAMEWORK_TRANSLATION_CLASS_NAMESPACE = $(FRAMEWORK_NAMESPACE).locale.translation\r
-FRAMEWORK_TRANSLATION_CLASS_PATH = $(FRAMEWORK_SOURCE_PATH)/$(FRAMEWORK_CLASS_FOLDERNAME)/$(FRAMEWORK_NAMESPACE)/locale/translation\r
-\r
-FRAMEWORK_TOOL_PATH = $(FRAMEWORK_PATH)/tool\r
-\r
-\r
-#\r
-# Framework config\r
-#\r
-FRAMEWORK_VERSION := $(shell cat $(QOOXDOO_PATH)/VERSION)\r
-FRAMEWORK_SVNINFO := $(shell python $(FRAMEWORK_TOOL_PATH)/modules/svninfo.py `dirname $(QOOXDOO_PATH)`)\r
-\r
-ifneq ($(FRAMEWORK_SVNINFO),"")\r
-  FRAMEWORK_FULL_VERSION = $(FRAMEWORK_VERSION) $(FRAMEWORK_SVNINFO)\r
-else\r
-  FRAMEWORK_FULL_VERSION = $(FRAMEWORK_VERSION)\r
-endif\r
-\r
-\r
-\r
-#\r
-# Framework URIs\r
-#\r
-FRAMEWORK_URI = $(QOOXDOO_URI)/frontend/framework\r
-FRAMEWORK_SOURCE_URI = $(FRAMEWORK_URI)/source\r
-FRAMEWORK_CLDR_DOWNLOAD_URI = http://unicode.org/cldr/data/common/main\r
-\r
-\r
-#\r
-# Configure commands\r
-#\r
-CMD_LINE = echo "----------------------------------------------------------------------------"\r
-CMD_NICE = nice -n 10\r
-CMD_PYTHON = $(CMD_NICE) python\r
-CMD_GENERATOR = $(CMD_PYTHON) $(FRAMEWORK_TOOL_PATH)/generator.py --cache-directory $(FRAMEWORK_CACHE_PATH) --version "$(FRAMEWORK_FULL_VERSION)"\r
-CMD_CLDR =  $(CMD_PYTHON) $(FRAMEWORK_TOOL_PATH)/modules/cldr.py\r
-CMD_MSGFMT = $(CMD_PYTHON) $(FRAMEWORK_TOOL_PATH)/modules/msgfmt.py\r
-CMD_CHECKLOCALES = $(CMD_PYTHON) $(FRAMEWORK_TOOL_PATH)/modules/checklocales.py\r
-CMD_REMOVE = $(CMD_NICE) rm -rf\r
-CMD_FIND = $(CMD_NICE) find\r
-CMD_ZIP = $(CMD_NICE) zip\r
-CMD_TAR = $(CMD_NICE) tar\r
-CMD_ZIP_CREATE = $(CMD_ZIP) -rq\r
-CMD_TAR_CREATE = $(CMD_TAR) cfzp\r
-CMD_DIR = $(CMD_NICE) mkdir -p\r
-CMD_ANY2DOS = | xargs $(CMD_PYTHON) $(FRAMEWORK_TOOL_PATH)/modules/textutil.py --command any2Dos\r
-CMD_ANY2UNIX = | xargs $(CMD_PYTHON) $(FRAMEWORK_TOOL_PATH)/modules/textutil.py --command any2Unix\r
-CMD_MKEXEC = $(CMD_NICE) chmod a+rx\r
-\r
-# Optimized for remote sync (ssh etc.)\r
-CMD_SYNC_ONLINE = $(CMD_NICE) rsync --checksum --compress --recursive --delete --inplace --links --safe-links --exclude .svn\r
-\r
-# Optimized for local sync (same computer, filesystem)\r
-CMD_SYNC_OFFLINE = $(CMD_NICE) rsync --recursive --delete --inplace --links --safe-links --exclude .svn\r
-\r
-\r
-\r
-\r
-#\r
-# Configure files\r
-#\r
-FILES_TEXT = \( -name "*.py" -o -name "*.sh" -o -name "*.js" -o -name "*.html" -o -name "*.css" -o -name "*.xml" -o -name Makefile -o -name AUTHORS -o -name LICENSE -o -name README -o -name RELEASENOTES -o -name TODO \)\r
-FILES_TEMP = \( -name "*.pyc" -o -name "*.bak" -o -name "*.old" -o -name "*~" -o -name "messages.pot" \)\r
-FILES_EXEC = \( -name "*.py" -o -name "*.sh" \)\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/make/impl.mk b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/make/impl.mk
deleted file mode 100644 (file)
index 1b51792..0000000
+++ /dev/null
@@ -1,431 +0,0 @@
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Andreas Ecker (ecker)
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-###################################################################################
-# EXEC TARGETS
-###################################################################################
-
-#
-# Cleanup targets
-#
-
-
-exec-clean:
-       @echo "  * Cleaning up..."
-       @$(CMD_REMOVE) $(APPLICATION_SOURCE_PATH)/$(APPLICATION_SCRIPT_FOLDERNAME)/$(APPLICATION_SCRIPT_FILENAME)
-       @$(CMD_REMOVE) $(APPLICATION_BUILD_PATH)/$(APPLICATION_SCRIPT_FOLDERNAME)/$(APPLICATION_SCRIPT_FILENAME)
-       @$(CMD_REMOVE) $(APPLICATION_TRANSLATION_PATH)/messages.pot
-       @$(CMD_REMOVE) $(FRAMEWORK_TRANSLATION_PATH)/messages.pot
-
-exec-distclean:
-       @echo "  * Cleaning up..."
-       @$(CMD_FIND) . $(FILES_TEMP) -exec $(CMD_REMOVE) {} \;
-       @$(CMD_REMOVE) $(APPLICATION_SOURCE_PATH)/$(APPLICATION_SCRIPT_FOLDERNAME)
-       @$(CMD_REMOVE) $(APPLICATION_BUILD_PATH)
-       @$(CMD_REMOVE) $(APPLICATION_API_PATH)
-       @$(CMD_REMOVE) $(APPLICATION_DEBUG_PATH)
-       @$(CMD_REMOVE) $(APPLICATION_TRANSLATION_CLASS_PATH)
-       @$(CMD_REMOVE) $(APPLICATION_TRANSLATION_PATH)/messages.pot
-       @$(CMD_REMOVE) $(FRAMEWORK_TRANSLATION_PATH)/messages.pot
-       @$(CMD_REMOVE) $(FRAMEWORK_CACHE_PATH)
-       @$(CMD_REMOVE) $(FRAMEWORK_LOCALE_CLASS_PATH)
-       @$(CMD_REMOVE) $(FRAMEWORK_TRANSLATION_CLASS_PATH)
-
-
-
-
-
-#
-# Generator targets
-#
-
-exec-script-source:
-       @$(CMD_GENERATOR) \
-         $(COMPUTED_COMMON_INIT) \
-         $(COMPUTED_CLASS_PATH) \
-         $(COMPUTED_CLASS_URI) \
-         --generate-source-script \
-         $(COMPUTED_TEMPLATE) \
-         --source-script-file $(APPLICATION_SOURCE_PATH)/$(APPLICATION_SCRIPT_FOLDERNAME)/$(APPLICATION_SCRIPT_FILENAME) \
-         --define-runtime-setting $(FRAMEWORK_NAMESPACE).manager.object.AliasManager.resourceUri:$(FRAMEWORK_SOURCE_URI)/resource \
-         $(COMPUTED_SOURCE_INCLUDE) \
-         $(COMPUTED_SOURCE_LINEBREAKS)
-
-exec-script-build:
-       @$(CMD_GENERATOR) \
-         $(COMPUTED_COMMON_INIT) \
-         $(COMPUTED_CLASS_PATH) \
-         $(COMPUTED_RESOURCE) \
-         --generate-compiled-script \
-         --compiled-script-file $(APPLICATION_BUILD_PATH)/$(APPLICATION_SCRIPT_FOLDERNAME)/$(APPLICATION_SCRIPT_FILENAME) \
-         $(COMPUTED_BUILD_INCLUDE) \
-         $(COMPUTED_BUILD_OPTIMIZATIONS) \
-         $(COMPUTED_BUILD_LINEBREAKS)
-
-exec-resources-build:
-       @$(CMD_GENERATOR) \
-         $(COMPUTED_COMMON_INIT) \
-         $(COMPUTED_CLASS_PATH) \
-         $(COMPUTED_RESOURCE) \
-         $(COMPUTED_BUILD_INCLUDE)
-
-
-
-
-#
-# Utility targets
-#
-exec-pretty:
-       @$(CMD_GENERATOR) \
-         --include-without-dependencies $(APPLICATION_NAMESPACE).* \
-         --pretty-print \
-         $(COMPUTED_CLASS_PATH)
-
-exec-fix:
-       @$(CMD_GENERATOR) \
-         --include-without-dependencies $(APPLICATION_NAMESPACE).* \
-         --fix-source \
-         $(COMPUTED_CLASS_PATH)
-
-
-
-
-
-
-
-#
-# Debug targets
-#
-exec-tokenizer:
-       @$(CMD_GENERATOR) \
-         --include-without-dependencies $(APPLICATION_NAMESPACE).* \
-         --store-tokens \
-    --token-output-directory $(APPLICATION_DEBUG_PATH)/tokens \
-         $(COMPUTED_CLASS_PATH)
-
-exec-treegenerator:
-       @$(CMD_GENERATOR) \
-         --include-without-dependencies $(APPLICATION_NAMESPACE).* \
-         --store-tree \
-    --tree-output-directory $(APPLICATION_DEBUG_PATH)/tree \
-         $(COMPUTED_CLASS_PATH)
-
-
-
-
-
-
-
-check-locales:
-       @echo $(APPLICATION_LOCALES) | $(CMD_CHECKLOCALES)
-
-ifdef APPLICATION_LOCALES
-
-exec-localization: check-locales exec-framework-localization
-exec-translation: check-locales exec-framework-translation exec-application-translation
-
-else
-
-exec-localization: exec-none
-exec-translation: exec-none
-
-endif
-
-
-
-
-
-exec-framework-localization:
-       @echo
-       @echo "  PREPARING LOCALIZATION"
-       @$(CMD_LINE)
-       @mkdir -p $(FRAMEWORK_CACHE_PATH)
-       @mkdir -p $(FRAMEWORK_LOCALE_CLASS_PATH)
-       @echo "  * Processing locales..."
-       @for LOC in $(APPLICATION_LOCALES); do \
-         echo "    - Locale: $$LOC"; \
-         mod=0; \
-         if [ ! -r $(FRAMEWORK_CACHE_PATH)/$$LOC.xml -a -r $(FRAMEWORK_LOCALE_PATH)/$$LOC.xml ]; then \
-           echo "      - Copying $$LOC.xml..."; \
-           cp -f $(FRAMEWORK_LOCALE_PATH)/$$LOC.xml $(FRAMEWORK_CACHE_PATH)/$$LOC.xml; \
-           mod=1; \
-         fi; \
-         if [ ! -r $(FRAMEWORK_CACHE_PATH)/$$LOC.xml ]; then \
-           echo "      - Downloading $$LOC.xml..."; \
-           (which wget > /dev/null 2>&1 && wget $(FRAMEWORK_CLDR_DOWNLOAD_URI)/$$LOC.xml -q -P $(FRAMEWORK_CACHE_PATH)) || \
-        (which curl > /dev/null 2>&1 && curl $(FRAMEWORK_CLDR_DOWNLOAD_URI)/$$LOC.xml -s -o $(FRAMEWORK_CACHE_PATH)/$$LOC.xml); \
-           mod=1; \
-                 if [ ! -r $(FRAMEWORK_CACHE_PATH)/$$LOC.xml ]; then \
-                   echo "        - Download failed! Please install wget (preferred) or curl."; \
-                   exit 1; \
-                 fi; \
-         fi; \
-         if [ ! -r $(FRAMEWORK_LOCALE_CLASS_PATH)/$$LOC.js -o $$mod -eq 1 ]; then \
-           echo "      - Generating $$LOC.js..."; \
-           $(CMD_CLDR) -o $(FRAMEWORK_LOCALE_CLASS_PATH) $(FRAMEWORK_CACHE_PATH)/$$LOC.xml; \
-         fi; \
-       done
-
-exec-framework-translation:
-       @echo
-       @echo "  PREPARING FRAMEWORK TRANSLATION"
-       @$(CMD_LINE)
-       @echo "  * Processing source code..."
-       @which xgettext > /dev/null 2>&1 || (echo "    - Please install gettext tools (xgettext)" && exit 1)
-       @which msginit > /dev/null 2>&1 || (echo "    - Please install gettext tools (msginit)" && exit 1)
-       @which msgmerge > /dev/null 2>&1 || (echo "    - Please install gettext tools (msgmerge)" && exit 1)
-
-       @mkdir -p $(FRAMEWORK_TRANSLATION_PATH)
-       @mkdir -p $(FRAMEWORK_TRANSLATION_CLASS_PATH)
-
-       @rm -f $(FRAMEWORK_TRANSLATION_PATH)/messages.pot
-       @touch $(FRAMEWORK_TRANSLATION_PATH)/messages.pot
-       @for file in `find $(FRAMEWORK_SOURCE_PATH)/$(FRAMEWORK_CLASS_FOLDERNAME) -name "*.js"`; do \
-         LC_ALL=C xgettext --language=Java --from-code=UTF-8 \
-         -kthis.trc -kthis.tr -kthis.marktr -kthis.trn:1,2 \
-         -kManager.trc -kManager.tr -kManager.marktr -kManager.trn:1,2 \
-         --sort-by-file --add-comments=TRANSLATION \
-         -o $(FRAMEWORK_TRANSLATION_PATH)/messages.pot \
-         `find $(FRAMEWORK_SOURCE_PATH)/$(FRAMEWORK_CLASS_FOLDERNAME) -name "*.js"` 2>&1 | grep -v warning; \
-         break; done
-
-       @echo "  * Processing translations..."
-       @for LOC in $(APPLICATION_LOCALES); do \
-         echo "    - Translation: $$LOC"; \
-         if [ ! -r $(FRAMEWORK_TRANSLATION_PATH)/$$LOC.po ]; then \
-           echo "      - Generating initial translation file..."; \
-           msginit --locale $$LOC --no-translator -i $(FRAMEWORK_TRANSLATION_PATH)/messages.pot -o $(FRAMEWORK_TRANSLATION_PATH)/$$LOC.po > /dev/null 2>&1; \
-         else \
-           echo "      - Merging translation file..."; \
-           msgmerge --update -q $(FRAMEWORK_TRANSLATION_PATH)/$$LOC.po $(FRAMEWORK_TRANSLATION_PATH)/messages.pot; \
-         fi; \
-         echo "      - Generating catalog..."; \
-         mkdir -p $(FRAMEWORK_TRANSLATION_PATH); \
-         $(CMD_MSGFMT) \
-           -n $(FRAMEWORK_TRANSLATION_CLASS_NAMESPACE) \
-           -d $(FRAMEWORK_TRANSLATION_CLASS_PATH) \
-           $(FRAMEWORK_TRANSLATION_PATH)/$$LOC.po; \
-       done
-       @rm -rf $(FRAMEWORK_TRANSLATION_PATH)/*~
-
-exec-application-translation:
-       @echo
-       @echo "  PREPARING APPLICATION TRANSLATION"
-       @$(CMD_LINE)
-       @echo "  * Processing source code..."
-
-       @which xgettext > /dev/null 2>&1 || (echo "    - Please install gettext tools (xgettext)" && exit 1)
-       @which msginit > /dev/null 2>&1 || (echo "    - Please install gettext tools (msginit)" && exit 1)
-       @which msgmerge > /dev/null 2>&1 || (echo "    - Please install gettext tools (msgmerge)" && exit 1)
-
-       @mkdir -p $(APPLICATION_TRANSLATION_PATH)
-       @mkdir -p $(APPLICATION_TRANSLATION_CLASS_PATH)
-
-       @rm -f $(APPLICATION_TRANSLATION_PATH)/messages.pot
-       @touch $(APPLICATION_TRANSLATION_PATH)/messages.pot
-       @for file in `find $(APPLICATION_SOURCE_PATH)/$(APPLICATION_CLASS_FOLDERNAME) -name "*.js"`; do \
-         LC_ALL=C xgettext --language=Java --from-code=UTF-8 \
-         -kthis.trc -kthis.tr -kthis.marktr -kthis.trn:1,2 \
-         -kManager.trc -kManager.tr -kManager.marktr -kManager.trn:1,2 \
-         --sort-by-file --add-comments=TRANSLATION \
-         -o $(APPLICATION_TRANSLATION_PATH)/messages.pot \
-         `find $(APPLICATION_SOURCE_PATH)/$(APPLICATION_CLASS_FOLDERNAME) -name "*.js"` 2>&1 | grep -v warning; \
-         break; done
-
-       @echo "  * Processing translations..."
-       @for LOC in $(APPLICATION_LOCALES); do \
-         echo "    - Translation: $$LOC"; \
-         if [ ! -r $(APPLICATION_TRANSLATION_PATH)/$$LOC.po ]; then \
-           echo "      - Generating initial translation file..."; \
-           msginit --locale $$LOC --no-translator -i $(APPLICATION_TRANSLATION_PATH)/messages.pot -o $(APPLICATION_TRANSLATION_PATH)/$$LOC.po > /dev/null 2>&1; \
-         else \
-           echo "      - Merging translation file..."; \
-           msgmerge --update -q $(APPLICATION_TRANSLATION_PATH)/$$LOC.po $(APPLICATION_TRANSLATION_PATH)/messages.pot; \
-         fi; \
-         echo "      - Generating catalog..."; \
-         mkdir -p $(APPLICATION_TRANSLATION_PATH); \
-         $(CMD_MSGFMT) \
-           -n $(APPLICATION_TRANSLATION_CLASS_NAMESPACE) \
-           -d $(APPLICATION_TRANSLATION_CLASS_PATH) \
-           $(APPLICATION_TRANSLATION_PATH)/$$LOC.po; \
-       done
-       @rm -rf $(APPLICATION_TRANSLATION_PATH)/*~
-
-
-
-
-
-
-
-#
-# File copy targets
-#
-
-exec-files-build:
-       @echo
-       @echo "  COPYING OF FILES"
-       @$(CMD_LINE)
-       @echo "  * Copying files..."
-       @mkdir -p $(APPLICATION_BUILD_PATH)
-       @for file in $(APPLICATION_FILES); do \
-               echo "    - Processing $$file"; \
-               cp -Rf $(APPLICATION_SOURCE_PATH)/$$file $(APPLICATION_BUILD_PATH)/$$file; \
-       done
-
-exec-files-api:
-       @echo
-       @echo "  COPYING OF FILES"
-       @$(CMD_LINE)
-       @echo "  * Copying files..."
-       @mkdir -p $(APPLICATION_API_PATH)
-       @for file in $(APIVIEWER_FILES); do \
-               echo "    - Processing $$file"; \
-               cp -Rf $(APIVIEWER_SOURCE_PATH)/$$file $(APPLICATION_API_PATH)/$$file; \
-  done
-
-
-
-
-
-
-
-#
-# API targets
-#
-
-exec-api-data:
-       @$(CMD_GENERATOR) \
-         --generate-api-documentation \
-         --api-documentation-json-file $(APPLICATION_API_PATH)/script/apidata.js \
-         $(COMPUTED_CLASS_PATH) \
-         $(COMPUTED_API_INCLUDE)
-
-exec-api-build:
-       @$(CMD_GENERATOR) \
-         --class-path $(FRAMEWORK_SOURCE_PATH)/class \
-         --class-path $(APIVIEWER_SOURCE_PATH)/class \
-         --include apiviewer \
-         --generate-compiled-script \
-         --compiled-script-file $(APPLICATION_API_PATH)/script/$(APIVIEWER_NAMESPACE).js \
-         --optimize-strings --optimize-variables \
-         --copy-resources \
-         --resource-input $(FRAMEWORK_SOURCE_PATH)/resource \
-         --resource-output $(APPLICATION_API_PATH)/resource/$(FRAMEWORK_NAMESPACE) \
-         --resource-input $(APIVIEWER_SOURCE_PATH)/resource \
-         --resource-output $(APPLICATION_API_PATH)/resource/$(APIVIEWER_NAMESPACE) \
-         --enable-resource-filter \
-         --define-runtime-setting $(FRAMEWORK_NAMESPACE).manager.object.AliasManager.resourceUri:resource/$(FRAMEWORK_NAMESPACE) \
-         --define-runtime-setting $(APIVIEWER_NAMESPACE).Application.resourceUri:resource/$(APIVIEWER_NAMESPACE) \
-         --define-runtime-setting $(APIVIEWER_NAMESPACE).Viewer.title:$(APPLICATION_API_TITLE)
-
-
-
-
-
-
-
-#
-# Publish targets
-#
-exec-publish:
-       @echo "  * Syncing files..."
-       @$(CMD_SYNC_ONLINE) $(APPLICATION_BUILD_PATH)/* $(APPLICATION_PUBLISH_PATH)
-
-
-
-
-
-
-
-#
-# None helper target
-#
-exec-none:
-       @true
-
-
-
-
-
-
-###################################################################################
-# INFO TARGETS
-###################################################################################
-
-info-build:
-       @echo
-       @echo "****************************************************************************"
-       @echo "  GENERATING BUILD VERSION OF $(APPLICATION_MAKE_TITLE)"
-       @echo "****************************************************************************"
-
-info-source:
-       @echo
-       @echo "****************************************************************************"
-       @echo "  GENERATING SOURCE VERSION OF $(APPLICATION_MAKE_TITLE)"
-       @echo "****************************************************************************"
-
-info-api:
-       @echo
-       @echo "****************************************************************************"
-       @echo "  GENERATING API VIEWER FOR $(APPLICATION_MAKE_TITLE)"
-       @echo "****************************************************************************"
-
-info-pretty:
-       @echo
-       @echo "****************************************************************************"
-       @echo "  PRETTIFYING $(APPLICATION_MAKE_TITLE) CLASSES"
-       @echo "****************************************************************************"
-
-info-fix:
-       @echo
-       @echo "****************************************************************************"
-       @echo "  FIXING $(APPLICATION_MAKE_TITLE) CLASSES"
-       @echo "****************************************************************************"
-
-info-help:
-       @echo
-       @echo "****************************************************************************"
-       @echo "  HELP FOR $(APPLICATION_MAKE_TITLE)"
-       @echo "****************************************************************************"
-
-info-clean:
-       @echo
-       @echo "****************************************************************************"
-       @echo "  CLEANING UP $(APPLICATION_MAKE_TITLE)"
-       @echo "****************************************************************************"
-
-info-distclean:
-       @echo
-       @echo "****************************************************************************"
-       @echo "  CLEANING UP $(APPLICATION_MAKE_TITLE)" COMPLETELY
-       @echo "****************************************************************************"
-
-info-publish:
-       @echo
-       @echo "****************************************************************************"
-       @echo "  PUBLISHING $(APPLICATION_MAKE_TITLE)"
-       @echo "****************************************************************************"
-
-info-debug:
-       @echo
-       @echo "****************************************************************************"
-       @echo "  CREATING DEBUG DATA FOR $(APPLICATION_MAKE_TITLE)"
-       @echo "****************************************************************************"
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/make/project.mk b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/make/project.mk
deleted file mode 100644 (file)
index 6e850cd..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Andreas Ecker (ecker)
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-warning:
-       @echo
-       @echo "****************************************************************************"
-       @echo "  WARNING"
-       @echo "----------------------------------------------------------------------------"
-       @echo "  This file 'project.mk' has been renamed to 'application.mk'." 
-       @echo "  between release 0.6.4 and 0.6.5. You have to migrate manually:"
-       @echo "  Please replace all occurrences of 'project.mk' in your Makefiles with"
-       @echo "  'application.mk'."
-       @echo "****************************************************************************"
-
-
-
-source: warning
-build: warning
-api: warning
-all: warning
-
-include $(QOOXDOO_PATH)/frontend/framework/tool/make/application.mk
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/make/targets.mk b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/make/targets.mk
deleted file mode 100644 (file)
index d785d86..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Andreas Ecker (ecker)
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-###################################################################################
-# TARGETS
-###################################################################################
-
-#
-# Target definitions
-#
-
-.PHONY: source build api all locales pretty fix help clean distclean publish debug
-
-source: info-source exec-localization exec-translation exec-script-source
-build: info-build exec-localization exec-translation exec-script-build exec-files-build
-api: info-api exec-localization exec-translation exec-api-build exec-api-data exec-files-api
-all: source build api
-
-locales: exec-localization exec-translation
-
-pretty: info-pretty exec-pretty
-fix: info-fix exec-fix
-
-help: info-help
-
-clean: info-clean exec-clean
-distclean: info-distclean exec-distclean
-
-publish: build info-publish exec-publish
-
-debug: info-debug exec-tokenizer exec-treegenerator
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.5.2/info/01-changes.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.5.2/info/01-changes.dat
deleted file mode 100644 (file)
index 5d3870e..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-QxWindowManager=QxWindowManager was converted from a singleton to a normal class to allow multiple usage. This is useful for example to implement something like virtual desktops.
-QxAtom=Was renamed to QxFooBar (Only a test)
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.1/info/01-windowevents.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.1/info/01-windowevents.dat
deleted file mode 100644 (file)
index 2555ce0..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-\.addEventListener\(\s*"resize"=Possible use of old resize event. When used to detect a window resize it must be renamed to "windowresize".\r
-\.addEventListener\(\s*"focus"=Possible use of old focus event. When used to detect a window resize it must be renamed to "windowfocus".\r
-\.addEventListener\(\s*"blur"=Possible use of old blur event. When used to detect a window resize it must be renamed to "windowblur".\r
-\.removeEventListener\(\s*"resize"=Possible use of old resize event. When used to detect a window resize it must be renamed to "windowresize".\r
-\.removeEventListener\(\s*"focus"=Possible use of old focus event. When used to detect a window resize it must be renamed to "windowfocus".\r
-\.removeEventListener\(\s*"blur"=Possible use of old blur event. When used to detect a window resize it must be renamed to "windowblur".\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.1/patches/01-xml.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.1/patches/01-xml.dat
deleted file mode 100644 (file)
index 9bdd530..0000000
+++ /dev/null
@@ -1 +0,0 @@
-\bqx\.lang\.XmlEmu\.createXmlDom\b=qx.lang.Xml.createXmlDom\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.1/patches/02-application.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.1/patches/02-application.dat
deleted file mode 100644 (file)
index 5f71764..0000000
+++ /dev/null
@@ -1 +0,0 @@
-\bqx\.core\.Init\.getInstance\(\)\.setApplication\(\s*new\s+=qx.core.Init.getInstance().setApplication(\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.2/info/01-nativewindow.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.2/info/01-nativewindow.dat
deleted file mode 100644 (file)
index e7d408a..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-\bqx\.client\.NativeWindow\b=NativeWindow now also supports "load" and "close" events.
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.2/info/02-functionextension.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.2/info/02-functionextension.dat
deleted file mode 100644 (file)
index 8e901f6..0000000
+++ /dev/null
@@ -1 +0,0 @@
-\.closure\s*\(=Extension Function.prototype.closure has been removed.
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.2/patches/01-parent.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.2/patches/01-parent.dat
deleted file mode 100644 (file)
index e5d5aec..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-\.getFocusManager\s*\(=.getFocusHandler(
-\.setFocusManager\s*\(=.setFocusHandler(
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/01-constants.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/01-constants.dat
deleted file mode 100644 (file)
index 763a7b9..0000000
+++ /dev/null
@@ -1,293 +0,0 @@
-\bqx\.constant\.Core\.EMPTY\b=""\r
-\bqx\.constant\.Core\.SPACE\b=" "\r
-\bqx\.constant\.Core\.SLASH\b="/"\r
-\bqx\.constant\.Core\.DOT\b="."\r
-\bqx\.constant\.Core\.ZERO\b="0"\r
-\bqx\.constant\.Core\.QUOTE='"'\r
-\bqx\.constant\.Core\.NEWLINE\b="\\n"\r
-\bqx\.constant\.Core\.SINGLEQUOTE\b="'"\r
-\bqx\.constant\.Core\.STAR\b="*"\r
-\bqx\.constant\.Core\.PLUS\b="+"\r
-\bqx\.constant\.Core\.MINUS\b="-"\r
-\bqx\.constant\.Core\.COMMA\b=","\r
-\bqx\.constant\.Core\.DASH\b="-"\r
-\bqx\.constant\.Core\.UNDERLINE\b="_"\r
-\bqx\.constant\.Core\.SEMICOLON\b=";"\r
-\bqx\.constant\.Core\.COLON\b=":"\r
-\bqx\.constant\.Core\.EQUAL\b="\="\r
-\bqx\.constant\.Core\.AMPERSAND\b="&"\r
-\bqx\.constant\.Core\.QUESTIONMARK\b="?"\r
-\bqx\.constant\.Core\.HASH\b="#"\r
-\bqx\.constant\.Core\.SMALLER\b="<"\r
-\bqx\.constant\.Core\.BIGGER\b=">"\r
-\bqx\.constant\.Core\.PERCENT\b="%"\r
-\bqx\.constant\.Core\.PIXEL\b="px"\r
-\bqx\.constant\.Core\.MILLISECONDS\b="ms"\r
-\bqx\.constant\.Core\.FLEX\b="1*"\r
-\bqx\.constant\.Core\.ZEROPIXEL\b="0px"\r
-\bqx\.constant\.Core\.HUNDREDPERCENT\b="100%"\r
-\bqx\.constant\.Core\.YES\b="yes"\r
-\bqx\.constant\.Core\.NO\b="no"\r
-\bqx\.constant\.Core\.ON\b="on"\r
-\bqx\.constant\.Core\.OFF\b="off"\r
-\bqx\.constant\.Core\.SET\b="set"\r
-\bqx\.constant\.Core\.GET\b="get"\r
-\bqx\.constant\.Core\.DEFAULT\b="default"\r
-\bqx\.constant\.Core\.AUTO\b="auto"\r
-\bqx\.constant\.Core\.NONE\b="none"\r
-\bqx\.constant\.Core\.DISABLED\b="disabled"\r
-\bqx\.constant\.Core\.HIDDEN\b="hidden"\r
-\r
-\r
-\r
-\bqx\.constant\.Event\.MOUSEOVER\b="mouseover"\r
-\bqx\.constant\.Event\.MOUSEMOVE\b="mousemove"\r
-\bqx\.constant\.Event\.MOUSEOUT\b="mouseout"\r
-\bqx\.constant\.Event\.MOUSEDOWN\b="mousedown"\r
-\bqx\.constant\.Event\.MOUSEUP\b="mouseup"\r
-\bqx\.constant\.Event\.MOUSEWHEEL\b="mousewheel"\r
-\bqx\.constant\.Event\.CLICK\b="click"\r
-\bqx\.constant\.Event\.DBLCLICK\b="dblclick"\r
-\bqx\.constant\.Event\.CONTEXTMENU\b="contextmenu"\r
-\bqx\.constant\.Event\.KEYDOWN\b="keydown"\r
-\bqx\.constant\.Event\.KEYPRESS\b="keypress"\r
-\bqx\.constant\.Event\.KEYINPUT\b="keyinput"\r
-\bqx\.constant\.Event\.KEYUP\b="keyup"\r
-\bqx\.constant\.Event\.BLUR\b="blur"\r
-\bqx\.constant\.Event\.FOCUS\b="focus"\r
-\bqx\.constant\.Event\.FOCUSIN\b="focusin"\r
-\bqx\.constant\.Event\.FOCUSOUT\b="focusout"\r
-\bqx\.constant\.Event\.SELECT\b="select"\r
-\bqx\.constant\.Event\.SCROLL\b="scroll"\r
-\bqx\.constant\.Event\.INPUT\b="input"\r
-\bqx\.constant\.Event\.CHANGE\b="change"\r
-\bqx\.constant\.Event\.RESIZE\b="resize"\r
-\bqx\.constant\.Event\.CHANGESELECTION\b="changeSelection"\r
-\bqx\.constant\.Event\.INTERVAL\b="interval"\r
-\bqx\.constant\.Event\.EXECUTE\b="execute"\r
-\bqx\.constant\.Event\.CREATE\b="create"\r
-\bqx\.constant\.Event\.LOAD\b="load"\r
-\bqx\.constant\.Event\.ERROR\b="error"\r
-\bqx\.constant\.Event\.SUBMIT\b="submit"\r
-\bqx\.constant\.Event\.UNLOAD\b="unload"\r
-\bqx\.constant\.Event\.BEFOREUNLOAD\b="beforeunload"\r
-\bqx\.constant\.Event\.TREEOPENWITHCONTENT\b="treeOpenWithContent"\r
-\bqx\.constant\.Event\.TREEOPENWHILEEMPTY\b="treeOpenWhileEmpty"\r
-\bqx\.constant\.Event\.TREECLOSE\b="treeClose"\r
-\bqx\.constant\.Event\.BEFOREAPPEAR\b="beforeAppear"\r
-\bqx\.constant\.Event\.APPEAR\b="appear"\r
-\bqx\.constant\.Event\.BEFOREDISAPPEAR\b="beforeDisappear"\r
-\bqx\.constant\.Event\.DISAPPEAR\b="disappear"\r
-\bqx\.constant\.Event\.BEFOREINSERTDOM\b="beforeInsertDom"\r
-\bqx\.constant\.Event\.INSERTDOM\b="insertDom"\r
-\bqx\.constant\.Event\.BEFOREREMOVEDOM\b="beforeRemoveDom"\r
-\bqx\.constant\.Event\.REMOVEDOM\b="removeDom"\r
-\bqx\.constant\.Event\.DRAGDROP\b="dragdrop"\r
-\bqx\.constant\.Event\.DRAGOVER\b="dragover"\r
-\bqx\.constant\.Event\.DRAGOUT\b="dragout"\r
-\bqx\.constant\.Event\.DRAGMOVE\b="dragmove"\r
-\bqx\.constant\.Event\.DRAGSTART\b="dragstart"\r
-\bqx\.constant\.Event\.DRAGEND\b="dragend"\r
-\bqx\.constant\.Event\.CREATED\b="created"\r
-\bqx\.constant\.Event\.CONFIGURED\b="configured"\r
-\bqx\.constant\.Event\.QUEUED\b="queued"\r
-\bqx\.constant\.Event\.SENDING\b="sending"\r
-\bqx\.constant\.Event\.RECEIVING\b="receiving"\r
-\bqx\.constant\.Event\.COMPLETED\b="completed"\r
-\bqx\.constant\.Event\.ABORTED\b="aborted"\r
-\bqx\.constant\.Event\.FAILED\b="failed"\r
-\bqx\.constant\.Event\.TIMEOUT\b="timeout"\r
-\bqx\.constant\.Event\.DIALOGOK\b="dialogok"\r
-\bqx\.constant\.Event\.DIALOGCANCEL\b="dialogcancel"\r
-\bqx\.constant\.Event\.DIALOGCLOSE\b="dialogclose"\r
-\bqx\.constant\.Event\.DIALOGPREVIOUS\b="dialogprevious"\r
-\bqx\.constant\.Event\.DIALOGNEXT\b="dialognext"\r
-\bqx\.constant\.Event\.DIALOGFIRST\b="dialogfirst"\r
-\bqx\.constant\.Event\.DIALOGLAST\b="dialoglast"\r
-\r
-\r
-\r
-\bqx\.constant\.Html\.AMPERSAND\b="&amp;"\r
-\bqx\.constant\.Html\.SMALLER\b="&lt;"\r
-\bqx\.constant\.Html\.BIGGER\b="&gt;"\r
-\bqx\.constant\.Html\.QUOTE\b="&quot;"\r
-\bqx\.constant\.Html\.SPACE\b="&nbsp;"\r
-\r
-\r
-\r
-\bqx\.constant\.Layout\.ORIENTATION_HORIZONTAL\b="horizontal"\r
-\bqx\.constant\.Layout\.ORIENTATION_VERTICAL\b="vertical"\r
-\bqx\.constant\.Layout\.ALIGN_LEFT\b="left"\r
-\bqx\.constant\.Layout\.ALIGN_LEFT_REVERSED\b="left-reversed"\r
-\bqx\.constant\.Layout\.ALIGN_CENTER\b="center"\r
-\bqx\.constant\.Layout\.ALIGN_CENTER_REVERSED\b="center-reversed"\r
-\bqx\.constant\.Layout\.ALIGN_RIGHT\b="right"\r
-\bqx\.constant\.Layout\.ALIGN_RIGHT_REVERSED\b="right-reversed"\r
-\bqx\.constant\.Layout\.ALIGN_TOP\b="top"\r
-\bqx\.constant\.Layout\.ALIGN_TOP_REVERSED\b="top-reversed"\r
-\bqx\.constant\.Layout\.ALIGN_MIDDLE\b="middle"\r
-\bqx\.constant\.Layout\.ALIGN_MIDDLE_REVERSED\b="middle-reversed"\r
-\bqx\.constant\.Layout\.ALIGN_BOTTOM\b="bottom"\r
-\bqx\.constant\.Layout\.ALIGN_BOTTOM_REVERSED\b="bottom-reversed"\r
-\r
-\r
-\r
-\bqx\.constant\.Mime\.JAVASCRIPT\b="text/javascript"\r
-\bqx\.constant\.Mime\.JSON\b="text/json"\r
-\bqx\.constant\.Mime\.XML\b="application/xml"\r
-\bqx\.constant\.Mime\.TEXT\b="text/plain"\r
-\bqx\.constant\.Mime\.HTML\b="text/html"\r
-\r
-\r
-\r
-\bqx\.constant\.Net\.NAMESPACE_SVG\b=qx.xml.Namespace.SVG\r
-\bqx\.constant\.Net\.NAMESPACE_SMIL\b=qx.xml.Namespace.SMIL\r
-\bqx\.constant\.Net\.NAMESPACE_MML\b=qx.xml.Namespace.MML\r
-\bqx\.constant\.Net\.NAMESPACE_CML\b=qx.xml.Namespace.CML\r
-\bqx\.constant\.Net\.NAMESPACE_XLINK\b=qx.xml.Namespace.XLINK\r
-\bqx\.constant\.Net\.NAMESPACE_XHTML\b=qx.xml.Namespace.XHTML\r
-\bqx\.constant\.Net\.NAMESPACE_XUL\b=qx.xml.Namespace.XUL\r
-\bqx\.constant\.Net\.NAMESPACE_XBL\b=qx.xml.Namespace.XBL\r
-\bqx\.constant\.Net\.NAMESPACE_FO\b=qx.xml.Namespace.FO\r
-\bqx\.constant\.Net\.NAMESPACE_XSL\b=qx.xml.Namespace.XSL\r
-\bqx\.constant\.Net\.NAMESPACE_XSLT\b=qx.xml.Namespace.XSLT\r
-\bqx\.constant\.Net\.NAMESPACE_XI\b=qx.xml.Namespace.XI\r
-\bqx\.constant\.Net\.NAMESPACE_XFORMS\b=qx.xml.Namespace.XFORMS\r
-\bqx\.constant\.Net\.NAMESPACE_SAXON\b=qx.xml.Namespace.SAXON\r
-\bqx\.constant\.Net\.NAMESPACE_XALAN\b=qx.xml.Namespace.XALAN\r
-\bqx\.constant\.Net\.NAMESPACE_XSD\b=qx.xml.Namespace.XSD\r
-\bqx\.constant\.Net\.NAMESPACE_DT\b=qx.xml.Namespace.DT\r
-\bqx\.constant\.Net\.NAMESPACE_XSI\b=qx.xml.Namespace.XSI\r
-\bqx\.constant\.Net\.NAMESPACE_RDF\b=qx.xml.Namespace.RDF\r
-\bqx\.constant\.Net\.NAMESPACE_RDFS\b=qx.xml.Namespace.RDFS\r
-\bqx\.constant\.Net\.NAMESPACE_DC\b=qx.xml.Namespace.DC\r
-\bqx\.constant\.Net\.NAMESPACE_DCQ\b=qx.xml.Namespace.DCQ\r
-\bqx\.constant\.Net\.NAMESPACE_SOAPENV\b=qx.xml.Namespace.SOAPENV\r
-\bqx\.constant\.Net\.NAMESPACE_WSDL\b=qx.xml.Namespace.WSDL\r
-\bqx\.constant\.Net\.NAMESPACE_ADOBESVGEXTENSIONS\b=qx.xml.Namespace.ADOBESVGEXTENSIONS\r
-\bqx\.constant\.Net\b=qx.xml.Namespace\r
-\bqx\.constant\.Net\.STATE_CREATED\b="created"\r
-\bqx\.constant\.Net\.STATE_CONFIGURED\b="configured"\r
-\bqx\.constant\.Net\.STATE_QUEUED\b="queued"\r
-\bqx\.constant\.Net\.STATE_SENDING\b="sending"\r
-\bqx\.constant\.Net\.STATE_RECEIVING\b="receiving"\r
-\bqx\.constant\.Net\.STATE_COMPLETED\b="completed"\r
-\bqx\.constant\.Net\.STATE_ABORTED\b="aborted"\r
-\bqx\.constant\.Net\.STATE_FAILED\b="failed"\r
-\bqx\.constant\.Net\.STATE_TIMEOUT\b="timeout"\r
-\bqx\.constant\.Net\.PROTOCOL_HTTP\b=qx.net.Protocol.HTTP\r
-\bqx\.constant\.Net\.PROTOCOL_HTTPS\b=qx.net.Protocol.HTTPS\r
-\bqx\.constant\.Net\.PROTOCOL_FTP\b=qx.net.Protocol.FTP\r
-\bqx\.constant\.Net\.PROTOCOL_FILE\b=qx.net.Protocol.FILE\r
-\bqx\.constant\.Net\.URI_HTTP\b=qx.net.Protocol.URI_HTTP\r
-\bqx\.constant\.Net\.URI_HTTPS\b=qx.net.Protocol.URI_HTTPS\r
-\bqx\.constant\.Net\.URI_FTP\b=qx.net.Protocol.URI_FTP\r
-\bqx\.constant\.Net\.URI_FILE\b=qx.net.Protocol.URI_FILE\r
-\bqx\.constant\.Net\.METHOD_GET\b=qx.net.Http.METHOD_GET\r
-\bqx\.constant\.Net\.METHOD_POST\b=qx.net.Http.METHOD_POST\r
-\bqx\.constant\.Net\.METHOD_PUT\b=qx.net.Http.METHOD_PUT\r
-\bqx\.constant\.Net\.METHOD_HEAD\b=qx.net.Http.METHOD_HEAD\r
-\bqx\.constant\.Net\.METHOD_DELETE\b=qx.net.Http.METHOD_DELETE\r
-\bqx\.constant\.Net\b=qx.net.Protocol\r
-\r
-\r
-\r
-\bqx\.constant\.Style\.PROPERTY_FILTER\b="filter"\r
-\bqx\.constant\.Style\.PROPERTY_ZINDEX\b="zIndex"\r
-\bqx\.constant\.Style\.PROPERTY_DISPLAY\b="display"\r
-\bqx\.constant\.Style\.PROPERTY_POSITION\b="position"\r
-\bqx\.constant\.Style\.PROPERTY_VISIBILITY\b="visibility"\r
-\bqx\.constant\.Style\.PROPERTY_DISABLED\b="disabled"\r
-\bqx\.constant\.Style\.PROPERTY_LINEHEIGHT\b="lineHeight"\r
-\bqx\.constant\.Style\.PROPERTY_TEXTALIGN\b="textAlign"\r
-\bqx\.constant\.Style\.PROPERTY_WHITESPACE\b="whiteSpace"\r
-\bqx\.constant\.Style\.PROPERTY_COLOR\b="color"\r
-\bqx\.constant\.Style\.PROPERTY_BACKGROUNDCOLOR\b="backgroundColor"\r
-\bqx\.constant\.Style\.PROPERTY_HEIGHT\b="height"\r
-\bqx\.constant\.Style\.PROPERTY_WIDTH\b="width"\r
-\bqx\.constant\.Style\.PROPERTY_TOP\b="top"\r
-\bqx\.constant\.Style\.PROPERTY_BOTTOM\b="bottom"\r
-\bqx\.constant\.Style\.PROPERTY_LEFT\b="left"\r
-\bqx\.constant\.Style\.PROPERTY_RIGHT\b="right"\r
-\bqx\.constant\.Style\.PROPERTY_PADDING\b="padding"\r
-\bqx\.constant\.Style\.PROPERTY_PADDINGTOP\b="paddingTop"\r
-\bqx\.constant\.Style\.PROPERTY_PADDINGRIGHT\b="paddingRight"\r
-\bqx\.constant\.Style\.PROPERTY_PADDINGBOTTOM\b="paddingBottom"\r
-\bqx\.constant\.Style\.PROPERTY_PADDINGLEFT\b="paddingLeft"\r
-\bqx\.constant\.Style\.PROPERTY_MARGIN\b="margin"\r
-\bqx\.constant\.Style\.PROPERTY_MARGINTOP\b="marginTop"\r
-\bqx\.constant\.Style\.PROPERTY_MARGINRIGHT\b="marginRight"\r
-\bqx\.constant\.Style\.PROPERTY_MARGINBOTTOM\b="marginBottom"\r
-\bqx\.constant\.Style\.PROPERTY_MARGINLEFT\b="marginLeft"\r
-\bqx\.constant\.Style\.PROPERTY_OVERFLOW_BOTH\b="overflow"\r
-\bqx\.constant\.Style\.PROPERTY_OVERFLOW_TEXT\b="textOverflow"\r
-\bqx\.constant\.Style\.PROPERTY_OVERFLOW_HORIZONTAL\b="overflowX"\r
-\bqx\.constant\.Style\.PROPERTY_OVERFLOW_VERTICAL\b="overflowY"\r
-\bqx\.constant\.Style\.POSITION_ABSOLUTE\b="absolute"\r
-\bqx\.constant\.Style\.POSITION_RELATIVE\b="relative"\r
-\bqx\.constant\.Style\.POSITION_STATIC\b="static"\r
-\bqx\.constant\.Style\.POSITION_FIXED\b="fixed"\r
-\bqx\.constant\.Style\.CURSOR_WAIT\b="wait"\r
-\bqx\.constant\.Style\.CURSOR_PROGRESS\b="progress"\r
-\bqx\.constant\.Style\.CURSOR_DEFAULT\b="default"\r
-\bqx\.constant\.Style\.OVERFLOW_AUTO\b="auto"\r
-\bqx\.constant\.Style\.OVERFLOW_HIDDEN\b="hidden"\r
-\bqx\.constant\.Style\.OVERFLOW_BOTH\b="scroll"\r
-\bqx\.constant\.Style\.OVERFLOW_HORIZONTAL\b="scrollX"\r
-\bqx\.constant\.Style\.OVERFLOW_VERTICAL\b="scrollY"\r
-\bqx\.constant\.Style\.OVERFLOW_ELLIPSIS\b="ellipsis"\r
-\bqx\.constant\.Style\.OVERFLOW_MOZ_NONE\b="-moz-scrollbars-none"\r
-\bqx\.constant\.Style\.OVERFLOW_MOZ_HORIZONTAL\b="-moz-scrollbars-horizontal"\r
-\bqx\.constant\.Style\.OVERFLOW_MOZ_VERTICAL\b="-moz-scrollbars-vertical"\r
-\bqx\.constant\.Style\.FOCUS_OUTLINE\b="1px dotted invert"\r
-\r
-\r
-\r
-\bqx\.constant\.Tags\.H1\b="h1"\r
-\bqx\.constant\.Tags\.H2\b="h2"\r
-\bqx\.constant\.Tags\.H3\b="h3"\r
-\bqx\.constant\.Tags\.H4\b="h4"\r
-\bqx\.constant\.Tags\.H5\b="h5"\r
-\bqx\.constant\.Tags\.H6\b="h6"\r
-\bqx\.constant\.Tags\.P\b="p"\r
-\bqx\.constant\.Tags\.DIV\b="div"\r
-\bqx\.constant\.Tags\.SPAN\b="span"\r
-\bqx\.constant\.Tags\.BODY\b="body"\r
-\bqx\.constant\.Tags\.EM\b="em"\r
-\bqx\.constant\.Tags\.I\b="i"\r
-\bqx\.constant\.Tags\.STRONG\b="strong"\r
-\bqx\.constant\.Tags\.B\b="b"\r
-\bqx\.constant\.Tags\.UL\b="ul"\r
-\bqx\.constant\.Tags\.OL\b="ol"\r
-\bqx\.constant\.Tags\.LI\b="li"\r
-\bqx\.constant\.Tags\.TABLE\b="table"\r
-\bqx\.constant\.Tags\.TD\b="td"\r
-\bqx\.constant\.Tags\.TR\b="tr"\r
-\bqx\.constant\.Tags\.THEAD\b="thead"\r
-\bqx\.constant\.Tags\.TBODY\b="tbody"\r
-\bqx\.constant\.Tags\.TFOOT\b="tfoot"\r
-\r
-\r
-\r
-\bqx\.constant\.Type\.UNDEFINED\b="undefined"\r
-\bqx\.constant\.Type\.NUMBER\b="number"\r
-\bqx\.constant\.Type\.STRING\b="string"\r
-\bqx\.constant\.Type\.BOOLEAN\b="boolean"\r
-\bqx\.constant\.Type\.FUNCTION\b="function"\r
-\bqx\.constant\.Type\.OBJECT\b="object"\r
-\r
-\r
-\r
-\bqx\.constant\.Node\.ELEMENT=qx.dom.DomNode.ELEMENT\r
-\bqx\.constant\.Node\.ATTRIBUTE=qx.dom.DomNode.ATTRIBUTE\r
-\bqx\.constant\.Node\.TEXT=qx.dom.DomNode.TEXT\r
-\bqx\.constant\.Node\.CDATA_SECTION=qx.dom.DomNode.CDATA_SECTION\r
-\bqx\.constant\.Node\.ENTITY_REFERENCE=qx.dom.DomNode.ENTITY_REFERENCE\r
-\bqx\.constant\.Node\.ENTITY=qx.dom.DomNode.ENTITY\r
-\bqx\.constant\.Node\.PROCESSING_INSTRUCTION=qx.dom.DomNode.PROCESSING_INSTRUCTION\r
-\bqx\.constant\.Node\.COMMENT=qx.dom.DomNode.COMMENT\r
-\bqx\.constant\.Node\.DOCUMENT=qx.dom.DomNode.DOCUMENT\r
-\bqx\.constant\.Node\.DOCUMENT_TYPE=qx.dom.DomNode.DOCUMENT_TYPE\r
-\bqx\.constant\.Node\.DOCUMENT_FRAGMENT=qx.dom.DomNode.DOCUMENT_FRAGMENT\r
-\bqx\.constant\.Node\.NOTATION=qx.dom.DomNode.NOTATION\r
-  
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/02-oo.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/02-oo.dat
deleted file mode 100644 (file)
index 5b5b92e..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-\bqx\.OO\.PROPERTY_WIDTH\b="width"\r
-\bqx\.OO\.PROPERTY_HEIGHT\b="height"\r
-\bqx\.OO\.PROPERTY_MINWIDTH\b="minWidth"\r
-\bqx\.OO\.PROPERTY_MINHEIGHT\b="minHeight"\r
-\bqx\.OO\.PROPERTY_MAXWIDTH\b="maxWidth"\r
-\bqx\.OO\.PROPERTY_MAXHEIGHT\b="maxHeight"\r
-\bqx\.OO\.PROPERTY_LEFT\b="left"\r
-\bqx\.OO\.PROPERTY_RIGHT\b="right"\r
-\bqx\.OO\.PROPERTY_TOP\b="top"\r
-\bqx\.OO\.PROPERTY_BOTTOM\b="bottom"\r
-\bqx\.OO\.PROPERTY_VISIBILITY\b="visibility"\r
-\bqx\.OO\.PROPERTY_DISPLAY\b="display"\r
-\bqx\.OO\.PROPERTY_PARENT\b="parent"\r
-\bqx\.OO\.PROPERTY_ZINDEX\b="zIndex"\r
-\r
-\bqx\.OO\.C_SET\b="set"\r
-\bqx\.OO\.C_GET\b="get"\r
-\bqx\.OO\.C_APPLY\b="apply"\r
-\bqx\.OO\.C_RESET\b="reset"\r
-\bqx\.OO\.C_FORCE\b="force"\r
-\bqx\.OO\.C_TOGGLE\b="toggle"\r
-\bqx\.OO\.C_CHANGE\b="change"\r
-\bqx\.OO\.C_STORE\b="store"\r
-\bqx\.OO\.C_RETRIEVE\b="retrieve"\r
-\bqx\.OO\.C_PRIVATECHANGE\b="_change"\r
-\bqx\.OO\.C_INVALIDATE\b="_invalidate"\r
-\bqx\.OO\.C_INVALIDATED\b="_invalidated"\r
-\bqx\.OO\.C_RECOMPUTE\b="_recompute"\r
-\bqx\.OO\.C_CACHED\b="_cached"\r
-\bqx\.OO\.C_COMPUTE\b="_compute"\r
-\bqx\.OO\.C_COMPUTED\b="_computed"\r
-\bqx\.OO\.C_UNITDETECTION\b="_unitDetection"\r
-\r
-\bqx\.OO\.C_GLOBALPROPERTYREF\b="PROPERTY_"\r
-\r
-\bqx\.OO\.C_UNIT_VALUE\b="Value"\r
-\bqx\.OO\.C_UNIT_PARSED\b="Parsed"\r
-\bqx\.OO\.C_UNIT_TYPE\b="Type"\r
-\bqx\.OO\.C_UNIT_TYPE_NULL\b="TypeNull"\r
-\bqx\.OO\.C_UNIT_TYPE_PIXEL\b="TypePixel"\r
-\bqx\.OO\.C_UNIT_TYPE_PERCENT\b="TypePercent"\r
-\bqx\.OO\.C_UNIT_TYPE_AUTO\b="TypeAuto"\r
-\bqx\.OO\.C_UNIT_TYPE_FLEX\b="TypeFlex"\r
-\r
-\bqx\.OO\.C_GETDEFAULT\b="getDefault"\r
-\bqx\.OO\.C_SETDEFAULT\b="setDefault"\r
-\bqx\.OO\.C_RETRIEVEDEFAULT\b="retrieveDefault"\r
-\bqx\.OO\.C_STOREDEFAULT\b="storeDefault"\r
-\r
-\bqx\.OO\.C_VALUE\b="_value"\r
-\bqx\.OO\.C_NULL\b="_null"\r
-\bqx\.OO\.C_EVAL\b="_eval"\r
-\bqx\.OO\.C_CHECK\b="_check"\r
-\bqx\.OO\.C_MODIFY\b="_modify"\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/03-widget.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/03-widget.dat
deleted file mode 100644 (file)
index 763f17b..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-\bqx\.ui\.core\.Widget\.JOB_INITIAL\b="initial"\r
-\bqx\.ui\.core\.Widget\.JOB_VISIBLE\b="visible"\r
-\bqx\.ui\.core\.Widget\.JOB_LOCATION\b="location"\r
-\bqx\.ui\.core\.Widget\.JOB_LOCATIONX\b="locationX"\r
-\bqx\.ui\.core\.Widget\.JOB_LOCATIONY\b="locationY"\r
-\bqx\.ui\.core\.Widget\.JOB_ADDCHILD\b="addChild"\r
-\bqx\.ui\.core\.Widget\.JOB_REMOVECHILD\b="removeChild"\r
-\bqx\.ui\.core\.Widget\.JOB_FRAMEWIDTH\b="frameWidth"\r
-\bqx\.ui\.core\.Widget\.JOB_FRAMEHEIGHT\b="frameHeight"\r
-\bqx\.ui\.core\.Widget\.JOB_PREFERREDINNERWIDTH\b="preferredInnerWidth"\r
-\bqx\.ui\.core\.Widget\.JOB_PREFERREDINNERHEIGHT\b="preferredInnerHeight"\r
-\bqx\.ui\.core\.Widget\.PROPERTY_CLASSNAME\b="className"\r
-\bqx\.ui\.core\.Widget\.PROPERTY_BORDERX\b="borderX"\r
-\bqx\.ui\.core\.Widget\.PROPERTY_BORDERWIDTHX\b="borderWidthX"\r
-\bqx\.ui\.core\.Widget\.PROPERTY_BORDERY\b="borderY"\r
-\bqx\.ui\.core\.Widget\.PROPERTY_BORDERWIDTHY\b="borderWidthY"\r
-\bqx\.ui\.core\.Widget\.PROPERTY_PARENT_PADDINGLEFT\b="parentPaddingLeft"\r
-\bqx\.ui\.core\.Widget\.PROPERTY_PARENT_PADDINGRIGHT\b="parentPaddingRight"\r
-\bqx\.ui\.core\.Widget\.PROPERTY_PARENT_PADDINGTOP\b="parentPaddingTop"\r
-\bqx\.ui\.core\.Widget\.PROPERTY_PARENT_PADDINGBOTTOM\b="parentPaddingBottom"\r
-\bqx\.ui\.core\.Widget\.STATE_OVER\b="over"\r
-\bqx\.ui\.core\.Widget\.STATE_FOCUSED\b="focused"\r
-\bqx\.ui\.core\.Widget\.STATE_DISABLED\b="disabled"\r
-\bqx\.ui\.core\.Widget\.FOCUS_OUTLINE\b="1px dotted invert"\r
-\bqx\.ui\.core\.Widget\.FOCUS_NONE\b="0px none"\r
-\bqx\.ui\.core\.Widget\.TAB_PROPERTY_UNSELECTABLE\b="unselectable"\r
-\bqx\.ui\.core\.Widget\.TAB_PROPERTY_TABINDEX\b="tabIndex"\r
-\bqx\.ui\.core\.Widget\.TAB_PROPERTY_USERFOCUS\b="userFocus"\r
-\bqx\.ui\.core\.Widget\.TAB_PROPERTY_MOZUSERFOCUS\b="MozUserFocus"\r
-\bqx\.ui\.core\.Widget\.TAB_VALUE_IGNORE\b="ignore"\r
-\bqx\.ui\.core\.Widget\.TAB_VALUE_NORMAL\b="normal"\r
-\bqx\.ui\.core\.Widget\.TAB_VALUE_ON\b="on"\r
-\bqx\.ui\.core\.Widget\.SEL_VALUE_ON\b="on"\r
-\bqx\.ui\.core\.Widget\.SEL_PROPERTY_UNSELECTABLE\b="unselectable"\r
-\bqx\.ui\.core\.Widget\.SEL_PROPERTY_USERSELECT\b="userSelect"\r
-\bqx\.ui\.core\.Widget\.SEL_PROPERTY_MOZUSERSELECT\b="MozUserSelect"\r
-\bqx\.ui\.core\.Widget\.SEL_PROPERTY_KHTMLUSERSELECT\b="KhtmlUserSelect"\r
-\bqx\.ui\.core\.Widget\.OPACITY_FILTER_START\b="Alpha(Opacity\="\r
-\bqx\.ui\.core\.Widget\.OPACITY_FILTER_STOP\b=")"\r
-\bqx\.ui\.core\.Widget\.OPACITY_FILTER_REGEXP = /Alpha\(Opacity\=([0-9]{1,3})\)/\r
-\bqx\.ui\.core\.Widget\.OPACITY_PROPERTY_CSS3\b="opacity"\r
-\bqx\.ui\.core\.Widget\.OPACTIY_PROPERTY_MOZ\b="MozOpacity"\r
-\bqx\.ui\.core\.Widget\.OPACITY_PROPERTY_MOZ\b="MozOpacity"\r
-\bqx\.ui\.core\.Widget\.OPACITY_PROPERTY_KHTML\b="KhtmlOpacity"\r
-\bqx\.ui\.core\.Widget\.CURSOR_PROPERTY\b="cursor"\r
-\bqx\.ui\.core\.Widget\.CURSOR_VALUE_POINTER\b="pointer"\r
-\bqx\.ui\.core\.Widget\.CURSOR_VALUE_HAND\b="hand"\r
-\bqx\.ui\.core\.Widget\.BACKGROUNDIMG_PROPERTY\b="backgroundImage"\r
-\bqx\.ui\.core\.Widget\.BACKGROUNDIMG_VALUE_START\b="url("\r
-\bqx\.ui\.core\.Widget\.BACKGROUNDIMG_VALUE_STOP\b=")"\r
-\bqx\.ui\.core\.Widget\.BACKGROUNDIMG_REGEXP1 = /^url\(/i\r
-\bqx\.ui\.core\.Widget\.BACKGROUNDIMG_REGEXP2 = /\)$/\r
-\bqx\.ui\.core\.Widget\.CLIP_PROPERTY\b="clip"\r
-\bqx\.ui\.core\.Widget\.CLIP_VALUE_START\b="rect("\r
-\bqx\.ui\.core\.Widget\.CLIP_VALUE_STOP\b=")"\r
-\bqx\.ui\.core\.Widget\.SCROLL_PROPERTY\b="overflow"\r
-\bqx\.ui\.core\.Widget\.SCROLL_PROPERTYX\b="overflowX"\r
-\bqx\.ui\.core\.Widget\.SCROLL_PROPERTYY\b="overflowY"\r
-\bqx\.ui\.core\.Widget\.SCROLL_VALUE_AUTO\b="auto"\r
-\bqx\.ui\.core\.Widget\.SCROLL_VALUE_HIDDEN\b="hidden"\r
-\bqx\.ui\.core\.Widget\.SCROLL_VALUE_SCROLL\b="scroll"\r
-\bqx\.ui\.core\.Widget\.SCROLL_VALUE_SCROLLX\b="scrollX"\r
-\bqx\.ui\.core\.Widget\.SCROLL_VALUE_SCROLLY\b="scrollY"\r
-\bqx\.ui\.core\.Widget\.SCROLL_VALUE_MOZNONE\b="-moz-scrollbars-none"\r
-\bqx\.ui\.core\.Widget\.SCROLL_VALUE_MOZSCROLLX\b="-moz-scrollbars-horizontal"\r
-\bqx\.ui\.core\.Widget\.SCROLL_VALUE_MOZSCROLLY\b="-moz-scrollbars-vertical"\r
-\bqx\.ui\.core\.Widget\.INLINE_EVENTTYPE\b="propertychange"\r
-\bqx\.ui\.core\.Widget\.INLINE_EVENTTYPE_PROPERTY\b="value"\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/04-nativewindow.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/04-nativewindow.dat
deleted file mode 100644 (file)
index 6d3a136..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-\bqx\.client\.NativeWindow\.PROPERTY_DEPENDENT\b="dependent"\r
-\bqx\.client\.NativeWindow\.PROPERTY_WIDTH\b="width"\r
-\bqx\.client\.NativeWindow\.PROPERTY_HEIGHT\b="height"\r
-\bqx\.client\.NativeWindow\.PROPERTY_LEFT\b="left"\r
-\bqx\.client\.NativeWindow\.PROPERTY_TOP\b="top"\r
-\bqx\.client\.NativeWindow\.PROPERTY_RESIZABLE\b="resizable"\r
-\bqx\.client\.NativeWindow\.PROPERTY_STATUS\b="status"\r
-\bqx\.client\.NativeWindow\.PROPERTY_LOCATION\b="location"\r
-\bqx\.client\.NativeWindow\.PROPERTY_MENUBAR\b="menubar"\r
-\bqx\.client\.NativeWindow\.PROPERTY_TOOLBAR\b="toolbar"\r
-\bqx\.client\.NativeWindow\.PROPERTY_SCROLLBARS\b="scrollbars"\r
-\bqx\.client\.NativeWindow\.PROPERTY_MODAL\b="modal"
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/05-font.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/05-font.dat
deleted file mode 100644 (file)
index 63cefba..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-\bqx\.renderer\.font\.Font\.STYLE_BOLD\b="bold"\r
-\bqx\.renderer\.font\.Font\.STYLE_NORMAL\b="normal"\r
-\bqx\.renderer\.font\.Font\.STYLE_ITALIC\b="italic"\r
-\bqx\.renderer\.font\.Font\.STYLE_UNDERLINE\b="underline"\r
-\bqx\.renderer\.font\.Font\.STYLE_STRIKEOUT\b="strikeout"\r
-\bqx\.renderer\.font\.Font\.PROPERTY_FAMILY\b="fontFamily"\r
-\bqx\.renderer\.font\.Font\.PROPERTY_SIZE\b="fontSize"\r
-\bqx\.renderer\.font\.Font\.PROPERTY_WEIGHT\b="fontWeight"\r
-\bqx\.renderer\.font\.Font\.PROPERTY_STYLE\b="fontStyle"\r
-\bqx\.renderer\.font\.Font\.PROPERTY_DECORATION\b="textDecoration"\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/06-border.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/06-border.dat
deleted file mode 100644 (file)
index 58ed0f2..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-\bqx\.renderer\.border\.Border\.STYLE_GROOVE\b="groove"\r
-\bqx\.renderer\.border\.Border\.STYLE_RIDGE\b="ridge"\r
-\bqx\.renderer\.border\.Border\.STYLE_INSET\b="inset"\r
-\bqx\.renderer\.border\.Border\.STYLE_OUTSET\b="outset"\r
-\bqx\.renderer\.border\.Border\.STYLE_SOLID\b="solid"\r
-\bqx\.renderer\.border\.Border\.STYLE_DOTTED\b="dotted"\r
-\bqx\.renderer\.border\.Border\.STYLE_DASHED\b="dashed"\r
-\bqx\.renderer\.border\.Border\.STYLE_DOUBLE\b="double"\r
-\bqx\.renderer\.border\.Border\.STYLE_NONE\b="none"\r
-\bqx\.renderer\.border\.Border\.POSITION_TOP\b="top"\r
-\bqx\.renderer\.border\.Border\.POSITION_RIGHT\b="right"\r
-\bqx\.renderer\.border\.Border\.POSITION_BOTTOM\b="bottom"\r
-\bqx\.renderer\.border\.Border\.POSITION_LEFT\b="left"\r
-\bqx\.renderer\.border\.Border\.BORDER_NONE\b="0px none"\r
-\bqx\.renderer\.border\.Border\.baseColor\b="threedlightshadow"\r
-\bqx\.renderer\.border\.Border\.stylePart\b="Style"\r
-\bqx\.renderer\.border\.Border\.colorPart\b="Color"\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/07-color.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/07-color.dat
deleted file mode 100644 (file)
index 30003e9..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-\bqx\.renderer\.color\.Color\.RGBCSS_START\b="rgb("\r
-\bqx\.renderer\.color\.Color\.RGBCSS_STOP\b=")"\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/08-image.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/08-image.dat
deleted file mode 100644 (file)
index 5bf6e48..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-qx\.ui\.basic\.Image\.ATTR_ALT\b="alt"\r
-qx\.ui\.basic\.Image\.ATTR_TITLE\b="title"\r
-qx\.ui\.basic\.Image\.BORDER_NONE\b="0 none"\r
-qx\.ui\.basic\.Image\.RESET_VALIGN\b="top"\r
-qx\.ui\.basic\.Image\.IMGLOADER_START\b="progid:DXImageTransform.Microsoft.AlphaImageLoader(src\='"\r
-qx\.ui\.basic\.Image\.IMGLOADER_STOP\b="',sizingMethod\='scale')"\r
-qx\.ui\.basic\.Image\.FILTER_GRAY\b="Gray() Alpha(Opacity\=30)"\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/09-tree.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/09-tree.dat
deleted file mode 100644 (file)
index 6b8e84b..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-\bqx\.ui\.tree\.AbstractTreeElement\.INDENT_CODE_1\b="<img style\=\"position:absolute;top:0px;left:"\r
-\bqx\.ui\.tree\.AbstractTreeElement\.INDENT_CODE_2\b="px\" src\=\""\r
-\bqx\.ui\.tree\.AbstractTreeElement\.INDENT_CODE_3\b="\" />"\r
-\bqx\.ui\.tree\.AbstractTreeElement\.IMG_EXTENSION\b="gif"\r
-\bqx\.ui\.treefullcontrol\.AbstractTreeElement\.INDENT_CODE_1\b="<img style\=\"position:absolute;top:0px;left:"\r
-\bqx\.ui\.treefullcontrol\.AbstractTreeElement\.INDENT_CODE_2\b="px\" src\=\""\r
-\bqx\.ui\.treefullcontrol\.AbstractTreeElement\.INDENT_CODE_3\b="\" />"\r
-\bqx\.ui\.treefullcontrol\.AbstractTreeElement\.IMG_EXTENSION\b="gif"\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/10-table.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/10-table.dat
deleted file mode 100644 (file)
index ed63f48..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-\bqx\.ui\.table\.DefaultDataCellRenderer\.INTERNAL_STYLE_ALIGN_RIGHT=";text-align:right"\r
-\bqx\.ui\.table\.DefaultDataCellRenderer\.INTERNAL_STYLE_BOLD=";font-weight:bold"\r
-\bqx\.ui\.table\.DefaultDataCellRenderer\.INTERNAL_STYLE_ITALIC=";font-style:italic"\r
-\r
-\bqx\.ui\.table\.TablePane\.ARRAY_JOIN_ROW_DIV_START\b='<div style\="position:absolute;font-family:\'Segoe UI\', Corbel, Calibri, Tahoma, \'Lucida Sans Unicode\', sans-serif;font-size:11px;left:0px;top:'\r
-\bqx\.ui\.table\.TablePane\.ARRAY_JOIN_ROW_DIV_WIDTH\b='px;width:'\r
-\bqx\.ui\.table\.TablePane\.ARRAY_JOIN_ROW_DIV_HEIGHT\b='px;height:'\r
-\bqx\.ui\.table\.TablePane\.ARRAY_JOIN_ROW_DIV_BG_COLOR\b='px;background-color:'\r
-\bqx\.ui\.table\.TablePane\.ARRAY_JOIN_ROW_DIV_COLOR\b=';color:'\r
-\bqx\.ui\.table\.TablePane\.ARRAY_JOIN_ROW_DIV_START_END\b='">'\r
-\bqx\.ui\.table\.TablePane\.ARRAY_JOIN_ROW_DIV_END\b='</div>'\r
-\r
-\bqx\.ui\.table\.TablePane\.CONTENT_CELL_STYLE_LEFT\b='position:absolute;left:'\r
-\bqx\.ui\.table\.TablePane\.CONTENT_CELL_STYLE_WIDTH\b='px;top:0px;width:'\r
-\bqx\.ui\.table\.TablePane\.CONTENT_CELL_STYLE_HEIGHT\b='px; height:'\r
-\r
-\bqx\.ui\.table\.TablePane\.TABLE_START\b='<table cellspacing\="0" cellpadding\="0" style\="table-layout:fixed;font-family:\'Segoe UI\', Corbel, Calibri, Tahoma, \'Lucida Sans Unicode\', sans-serif;font-size:11px;width:'\r
-\bqx\.ui\.table\.TablePane\.TABLE_COLGROUP\b='px"><colgroup>'\r
-\bqx\.ui\.table\.TablePane\.TABLE_COL\b='<col width\="'\r
-\bqx\.ui\.table\.TablePane\.TABLE_COLEND\b='"/>'\r
-\bqx\.ui\.table\.TablePane\.TABLE_TBODY\b='</colgroup><tbody>'\r
-\bqx\.ui\.table\.TablePane\.TABLE_TR\b='<tr style\="height:'\r
-\bqx\.ui\.table\.TablePane\.TABLE_BGCOLOR\b='px;background-color:'\r
-\bqx\.ui\.table\.TablePane\.TABLE_TR_END\b='</tr>'\r
-\bqx\.ui\.table\.TablePane\.TABLE_TBODY_END\b='</tbody></table>'\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/11-embed.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/11-embed.dat
deleted file mode 100644 (file)
index bc740fc..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-\bqx\.ui\.embed\.IconHtmlEmbed\.START_IMAGE\b="<img src\=\""\r
-\bqx\.ui\.embed\.IconHtmlEmbed\.START_STYLE\b="\" style\=\"vertical-align:middle;"\r
-\bqx\.ui\.embed\.IconHtmlEmbed\.STYLE_MARGIN\b="margin-right:"\r
-\bqx\.ui\.embed\.IconHtmlEmbed\.STYLE_WIDTH\b="width:"\r
-\bqx\.ui\.embed\.IconHtmlEmbed\.STYLE_HEIGHT\b="height:"\r
-\bqx\.ui\.embed\.IconHtmlEmbed\.PIXEL_UNIT\b="px;"\r
-\bqx\.ui\.embed\.IconHtmlEmbed\.FILTER_START\b="filter:"\r
-\bqx\.ui\.embed\.IconHtmlEmbed\.STOP_IMAGE\b="\"/>"
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/12-label.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/12-label.dat
deleted file mode 100644 (file)
index 32cb319..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-\bqx\.ui\.basic\.Label\.COPY_STYLEPROPERTY\b="styleproperty"\r
-\bqx\.ui\.basic\.Label\.COPY_COMPUTEDELEMENT\b="computedelement"\r
-\bqx\.ui\.basic\.Label\.COPY_LOCALELEMENT\b="localelement"\r
-\bqx\.ui\.basic\.Label\.OVERFLOW_HIDDEN\b="hidden"\r
-\bqx\.ui\.basic\.Label\.OVERFLOW_ELLIPSIS\b="ellipsis"\r
-\bqx\.ui\.basic\.Label\.INNER_TEXT\b="innerText"\r
-\bqx\.ui\.basic\.Label\.INNER_HTML\b="innerHTML"\r
-\bqx\.ui\.basic\.Label\.MNEMONIC_OUT_START\b="(<span style\=\"text-decoration:underline\">"\r
-\bqx\.ui\.basic\.Label\.MNEMONIC_OUT_STOP\b="</span>)"\r
-\bqx\.ui\.basic\.Label\.MNEMONIC_IN_START\b="<span style\=\"text-decoration:underline\">"\r
-\bqx\.ui\.basic\.Label\.MNEMONIC_IN_STOP\b="</span>"\r
-\bqx\.ui\.basic\.Label\.MNEMONIC_TEST1\b="^(((<([^>]|"\r
-\bqx\.ui\.basic\.Label\.MNEMONIC_TEST2\b=")+>)|(&([^;]|"\r
-\bqx\.ui\.basic\.Label\.MNEMONIC_TEST3\b=")+;)|[^&"\r
-\bqx\.ui\.basic\.Label\.MNEMONIC_TEST4\b="])*)("\r
-\bqx\.ui\.basic\.Label\.MNEMONIC_TEST5\b=")"\r
-\bqx\.ui\.basic\.Label\.MNEMONIC_REGMODE\b="i"\r
-\bqx\.ui\.basic\.Label\.BR\b="<br/>"\r
-\bqx\.ui\.basic\.Label\.CODE1\b="&#x"\r
-\bqx\.ui\.basic\.Label\.CODE2\b="&#"\r
-\bqx\.ui\.basic\.Label\.TOSTRHELPER\b="0x"
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/13-window.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/13-window.dat
deleted file mode 100644 (file)
index 99c71f2..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-\bqx\.ui\.window\.Window\.MODE_OPAQUE\b="opaque"\r
-\bqx\.ui\.window\.Window\.MODE_LAZYOPAQUE\b="lazyopaque"\r
-\bqx\.ui\.window\.Window\.MODE_FRAME\b="frame"\r
-\bqx\.ui\.window\.Window\.MODE_TRANSLUCENT\b="translucent"\r
-\bqx\.ui\.window\.Window\.MODE_MINIMIZED\b="minimized"\r
-\bqx\.ui\.window\.Window\.MODE_MAXIMIZED\b="maximized"\r
-\bqx\.ui\.window\.Window\.STATE_ACTIVE\b="active"\r
-\bqx\.ui\.window\.Window\.STATE_MAXIMIZED\b="maximized"\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/14-colorselector.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/14-colorselector.dat
deleted file mode 100644 (file)
index 1741ceb..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-\bqx\.ui\.component\.ColorSelector\.CONTEXT_RED_MODIFIER\b="redModifier"\r
-\bqx\.ui\.component\.ColorSelector\.CONTEXT_GREEN_MODIFIER\b="greenModifier"\r
-\bqx\.ui\.component\.ColorSelector\.CONTEXT_BLUE_MODIFIER\b="blueModifier"\r
-\bqx\.ui\.component\.ColorSelector\.CONTEXT_HUE_MODIFIER\b="hueModifier"\r
-\bqx\.ui\.component\.ColorSelector\.CONTEXT_SATURATION_MODIFIER\b="saturationModifier"\r
-\bqx\.ui\.component\.ColorSelector\.CONTEXT_BRIGHTNESS_MODIFIER\b="brightnessModifier"\r
-\bqx\.ui\.component\.ColorSelector\.CONTEXT_HSB_SPINNER\b="hsbSpinner"\r
-\bqx\.ui\.component\.ColorSelector\.CONTEXT_RGB_SPINNER\b="rgbSpinner"\r
-\bqx\.ui\.component\.ColorSelector\.CONTEXT_HEX_FIELD\b="hexField"\r
-\bqx\.ui\.component\.ColorSelector\.CONTEXT_HUE_SATURATION_FIELD\b="hueSaturationField"\r
-\bqx\.ui\.component\.ColorSelector\.CONTEXT_BRIGHTNESS_FIELD\b="brightnessField"
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/15-datechooser.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/15-datechooser.dat
deleted file mode 100644 (file)
index cd78f33..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-\bqx\.ui\.component\.DateChooser\.STATE_HEADER\b="header"\r
-\bqx\.ui\.component\.DateChooser\.STATE_WEEKEND\b="weekend"\r
-\bqx\.ui\.component\.DateChooser\.STATE_OTHER_MONTH\b="otherMonth"\r
-\bqx\.ui\.component\.DateChooser\.STATE_SELECTED\b="selected"\r
-\bqx\.ui\.component\.DateChooser\.STATE_TODAY\b="today"\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/16-button.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/16-button.dat
deleted file mode 100644 (file)
index 953137b..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-\bqx\.ui\.form\.Button\.STATE_CHECKED\b="checked"\r
-\bqx\.ui\.form\.Button\.STATE_PRESSED\b="pressed"\r
-\bqx\.ui\.form\.Button\.STATE_ABANDONED\b="abandoned"\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/17-selection.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/17-selection.dat
deleted file mode 100644 (file)
index 5dcc375..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-\bqx\.manager\.selection\.SelectionManager\.STATE_SELECTED\b="selected"\r
-\bqx\.manager\.selection\.SelectionManager\.STATE_ANCHOR\b="anchor"\r
-\bqx\.manager\.selection\.SelectionManager\.STATE_LEAD\b="lead"\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/40-classnames.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.3/patches/40-classnames.dat
deleted file mode 100644 (file)
index 5b43fdb..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-\bqx\.dom\.DomDimension\b=qx.dom.Dimension\r
-\bqx\.dom\.DomElement\b=qx.dom.Element\r
-\bqx\.dom\.DomElementFromPoint\b=qx.dom.ElementFromPoint\r
-\bqx\.dom\.DomEventRegistration\b=qx.dom.EventRegistration\r
-\bqx\.dom\.DomIframe\b=qx.dom.Iframe\r
-\bqx\.dom\.DomLocation\b=qx.dom.Location\r
-\bqx\.dom\.DomNode\b=qx.dom.Node\r
-\bqx\.dom\.DomOffset\b=qx.dom.Offset\r
-\bqx\.dom\.DomScroll\b=qx.dom.Scroll\r
-\bqx\.dom\.DomScrollIntoView\b=qx.dom.ScrollIntoView\r
-\bqx\.dom\.DomStyle\b=qx.dom.Style\r
-\bqx\.dom\.DomStyleSheet\b=qx.dom.StyleSheet\r
-\bqx\.dom\.DomWindow\b=qx.dom.Window\r
-\r
-\bqx\.io\.image\.ImagePreloaderSystem\b=qx.io.image.PreloaderSystem\r
-\bqx\.io\.image\.ImagePreloader\b=qx.io.image.Preloader\r
-\r
-\bqx\.io\.remote\.RemoteExchange\b=qx.io.remote.Exchange\r
-\bqx\.io\.remote\.RemoteRequest\b=qx.io.remote.Request\r
-\bqx\.io\.remote\.RemoteRequestQueue\b=qx.io.remote.RequestQueue\r
-\bqx\.io\.remote\.RemoteResponse\b=qx.io.remote.Response\r
-\r
-\bqx\.lang\.Xml\b=qx.xml.Core\r
-\r
-\bqx\.theme\.appearance\.DefaultAppearanceTheme\b=qx.theme.appearance.Classic\r
-\bqx\.theme\.color\.SystemColorTheme\b=qx.theme.color.System\r
-\bqx\.theme\.color\.WindowsClassicColorTheme\b=qx.theme.color.WindowsClassic\r
-\bqx\.theme\.color\.WindowsLunaBlueColorTheme\b=qx.theme.color.WindowsLunaBlue\r
-\bqx\.theme\.color\.WindowsLunaGreenColorTheme\b=qx.theme.color.WindowsLunaGreen\r
-\bqx\.theme\.color\.WindowsLunaSilverColorTheme\b=qx.theme.color.WindowsLunaSilver\r
-\bqx\.theme\.color\.WindowsRoyaleColorTheme\b=qx.theme.color.WindowsRoyale\r
-\bqx\.theme\.icon\.NuvolaIconTheme\b=qx.theme.icon.Nuvola\r
-\bqx\.theme\.icon\.CrystalSvgIconTheme\b=qx.theme.icon.CrystalSvg\r
-\bqx\.theme\.widget\.WindowsWidgetTheme\b=qx.theme.widget.Windows\r
-\r
-\bqx\.ui\.listview\.ListViewHeaderSeparator\b=qx.ui.listview.HeaderSeparator\r
-\bqx\.ui\.listview\.ListViewHeaderCell\b=qx.ui.listview.HeaderCell\r
-\bqx\.ui\.listview\.ListViewHeader\b=qx.ui.listview.Header\r
-\bqx\.ui\.listview\.ListViewContentCellText\b=qx.ui.listview.ContentCellText\r
-\bqx\.ui\.listview\.ListViewContentCellLink\b=qx.ui.listview.ContentCellLink\r
-\bqx\.ui\.listview\.ListViewContentCellImage\b=qx.ui.listview.ContentCellImage\r
-\bqx\.ui\.listview\.ListViewContentCellIconHtml\b=qx.ui.listview.ContentCellIconHtml\r
-\bqx\.ui\.listview\.ListViewContentCellHtml\b=qx.ui.listview.ContentCellHtml\r
-\r
-\bqx\.ui\.menu\.MenuRadioButton\b=qx.ui.menu.RadioButton\r
-\bqx\.ui\.menu\.MenuLayout\b=qx.ui.menu.Layout\r
-\bqx\.ui\.menu\.MenuCheckBox\b=qx.ui.menu.CheckBox\r
-\bqx\.ui\.menu\.MenuButton\b=qx.ui.menu.Button\r
-\bqx\.ui\.menu\.MenuSeparator\b=qx.ui.menu.Separator\r
-\bqx\.ui\.menu\.MenuBar\b=qx.ui.menubar.MenuBar\r
-\bqx\.ui\.menu\.MenuBarButton\b=qx.ui.menubar.Button\r
-\r
-\bqx\.ui\.pageview\.buttonview\.ButtonViewPage\b=qx.ui.pageview.buttonview.Page\r
-\bqx\.ui\.pageview\.buttonview\.ButtonViewPane\b=qx.ui.pageview.buttonview.Pane\r
-\bqx\.ui\.pageview\.buttonview\.ButtonViewBar\b=qx.ui.pageview.buttonview.Bar\r
-\bqx\.ui\.pageview\.buttonview\.ButtonViewButton\b=qx.ui.pageview.buttonview.Button\r
-\r
-\bqx\.ui\.pageview\.tabview\.TabViewBar\b=qx.ui.pageview.tabview.Bar\r
-\bqx\.ui\.pageview\.tabview\.TabViewButton\b=qx.ui.pageview.tabview.Button\r
-\bqx\.ui\.pageview\.tabview\.TabViewPage\b=qx.ui.pageview.tabview.Page\r
-\bqx\.ui\.pageview\.tabview\.TabViewPane\b=qx.ui.pageview.tabview.Pane\r
-\r
-\bqx\.ui\.toolbar\.ToolBarButton\b=qx.ui.toolbar.Button\r
-\bqx\.ui\.toolbar\.ToolBarCheckBox\b=qx.ui.toolbar.CheckBox\r
-\bqx\.ui\.toolbar\.ToolBarMenuButton\b=qx.ui.toolbar.MenuButton\r
-\bqx\.ui\.toolbar\.ToolBarPart\b=qx.ui.toolbar.Part\r
-\bqx\.ui\.toolbar\.ToolBarPartHandle\b=qx.ui.toolbar.PartHandle\r
-\bqx\.ui\.toolbar\.ToolBarRadioButton\b=qx.ui.toolbar.RadioButton\r
-\bqx\.ui\.toolbar\.ToolBarSeparator\b=qx.ui.toolbar.Separator\r
-\r
-\bqx\.ui\.pageview\.AbstractPageViewBar\b=qx.ui.pageview.AbstractBar\r
-\bqx\.ui\.pageview\.AbstractPageViewButton\b=qx.ui.pageview.AbstractButton\r
-\bqx\.ui\.pageview\.AbstractPageViewPage\b=qx.ui.pageview.AbstractPage\r
-\bqx\.ui\.pageview\.AbstractPageViewPane\b=qx.ui.pageview.AbstractPane\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.4/info/01-locale.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.4/info/01-locale.dat
deleted file mode 100644 (file)
index 4725935..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-\bqx\.ui\.component\.DateChooser\.getStartOfWeek\b=Property startOfWeek has been removed. Please use the new localization features instead.
-\bqx\.ui\.component\.DateChooser\.setStartOfWeek\b=Property startOfWeek has been removed. Please use the new localization features instead.
-
-\bqx\.util\.format\.NumberFormat\.GROUPING_SEPARATOR\b=The static field GROUPING_SEPARATOR has been removed. Use qx.locale.Number.getGroupSeperator() instead.
-
-\bqx\.util\.format\.NumberFormat\.SHORT_DATE_FORMAT\b=The static fields of NumberFormat have been removed. Please use the localized method qx.locale.Date.getDateFormat(”short”) instead.
-\bqx\.util\.format\.NumberFormat\.SHORT_DATE_FORMAT\b=The static fields of NumberFormat have been removed. Please use the localized method qx.locale.Date.getDateFormat(”short”) instead.
-\bqx\.util\.format\.NumberFormat\.MEDIUM_DATE_FORMAT\b=The static fields of NumberFormat have been removed. Please use the localized method qx.locale.Date.getDateFormat(”medium”) instead.
-\bqx\.util\.format\.NumberFormat\.LONG_DATE_FORMAT\b=The static fields of NumberFormat have been removed. Please use the localized method qx.locale.Date.getDateFormat(”long”) instead.
-\bqx\.util\.format\.NumberFormat\.FULL_DATE_FORMAT\b=The static fields of NumberFormat have been removed. Please use the localized method qx.locale.Date.getDateFormat(”full”) instead.
-\bqx\.util\.format\.NumberFormat\.SHORT_TIME_FORMAT\b=The static fields of NumberFormat have been removed. Please use the localized method qx.locale.Date.getDateTimeFormat(”HHmm”, “HH:mm”) instead.
-\bqx\.util\.format\.NumberFormat\.MEDIUM_TIME_FORMAT\b=The static fields of NumberFormat have been removed. Please use the localized method qx.locale.Date.getDateTimeFormat(”HHmm”, “HH:mm”) instead.
-\bqx\.util\.format\.NumberFormat\.LONG_TIME_FORMAT\b=The static fields of NumberFormat have been removed. Please use the localized method qx.locale.Date.getDateTimeFormat(”HHmmss”, “HH:mm:ss”) instead.
-\bqx\.util\.format\.NumberFormat\.FULL_TIME_FORMAT\b=The static fields of NumberFormat have been removed. Please use the localized method qx.locale.Date.getDateTimeFormat(”HHmmsszz”, “HH:mm:ss zz”) instead.
-\bqx\.util\.format\.NumberFormat\.SHORT_DATE_TIME_FORMAT\b=The static fields of NumberFormat have been removed. Please use the localized qx.locale.Date.getDateFormat(”short”) + " " + qx.locale.Date.getDateTimeFormat(”HHmm”, “HH:mm”) instead.
-\bqx\.util\.format\.NumberFormat\.MEDIUM_DATE_TIME_FORMAT\b=The static fields of NumberFormat have been removed. Please use the localized qx.locale.Date.getDateFormat(”medium”) + " " + qx.locale.Date.getDateTimeFormat(”HHmm”, “HH:mm”) instead.
-\bqx\.util\.format\.NumberFormat\.LONG_DATE_TIME_FORMAT\b=The static fields of NumberFormat have been removed. Please use the localized qx.locale.Date.getDateFormat(”long”) + " " + qx.locale.Date.getDateTimeFormat(”HHmmss”, “HH:mm:ss”) instead.
-\bqx\.util\.format\.NumberFormat\.FULL_DATE_TIME_FORMAT\b=The static fields of NumberFormat have been removed. Please use the localized method qx.locale.Date.getDateFormat(”full”) + " " + qx.locale.Date.getDateTimeFormat(”HHmmsszz”, “HH:mm:ss zz”) instead.
-\bqx\.util\.format\.NumberFormat\.FULL_MONTH_NAMES\b=The static fields of NumberFormat have been removed. Please use the localized method qx.locale.Date.getMonthNames(”wide”) instead.
-\bqx\.util\.format\.NumberFormat\.SHORT_MONTH_NAMES\b=The static fields of NumberFormat have been removed. Please use the localized method qx.locale.Date.getMonthNames(”abbreviated”) instead.
-\bqx\.util\.format\.NumberFormat\.SHORT_DAY_OF_WEEK_NAMES\b=The static fields of NumberFormat have been removed. Please use the localized method qx.locale.Date.getDayNames(”narrow”) instead.
-\bqx\.util\.format\.NumberFormat\.MEDIUM_DAY_OF_WEEK_NAMES\b=The static fields of NumberFormat have been removed. Please use the localized method qx.locale.Date.getDayNames(”abbreviated”) instead.
-\bqx\.util\.format\.NumberFormat\.FULL_DAY_OF_WEEK_NAMES\b=The static fields of NumberFormat have been removed. Please use the localized method qx.locale.Date.getDayNames(”wide”) instead.
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.4/info/02-deprecated.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.4/info/02-deprecated.dat
deleted file mode 100644 (file)
index f67b0d6..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-\b\.getKeyCode\b=The use of the keyCode property of qx.client.Command and qx.event.type.KeyEvent is deprecated. Use keyIdentifier instead!
-\b\.setKeyCode\b=The use of the keyCode property of qx.client.Command and qx.event.type.KeyEvent is deprecated. Use keyIdentifier instead!
-
-\b\.getCtrlKey\b=The use of the getCtrlKey method of qx.event.type.DomEvent is deprecated. Use isCtrlPressed instead!
-\b\.getAltKey\b=The use of the getAltKey method of qx.event.type.DomEvent is deprecated. Use isAltPressed instead!
-\b\.getShiftKey\b=The use of the getShiftKey method of qx.event.type.DomEvent is deprecated. Use isShiftPressed instead!
-
-\bqx\.event\.type\.KeyEvent\.keys\b=Deprecated. Convert Your code to use keyIdentifier if possible.
-\b\.getMaxTotalRequests\b=The use of the maxTotalRequests property of qx.io.remote.RequestQueue is deprecated. It will be removed in release 0.7!
-
-\bqx\.util\.Textile"\b=Deprecated module. Will be removed with qooxdoo 0.7.
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/info/01-mime.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/info/01-mime.dat
deleted file mode 100644 (file)
index 681428b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-(?<!type = )(?<!type=)[\"\']text\/javascript[\"\']=Better use qx.util.Mime.JAVASCRIPT (Please ignore for <script> tags)
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/info/02-iconcleanup.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/info/02-iconcleanup.dat
deleted file mode 100644 (file)
index 6c52cd3..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-128/3d.png[\"\']=This icon was deprecated because of theme compatibility considerations
-128/antivirus.png[\"\']=This icon was deprecated because of theme compatibility considerations
-128/babelfish.png[\"\']=This icon was deprecated because of theme compatibility considerations
-128/back.png[\"\']=This icon was deprecated because of theme compatibility considerations
-128/block-device.png[\"\']=This icon was deprecated because of theme compatibility considerations
-128/down.png[\"\']=This icon was deprecated because of theme compatibility considerations
-128/favourite.png[\"\']=This icon was deprecated because of theme compatibility considerations
-128/file-print.png[\"\']=This icon was deprecated because of theme compatibility considerations
-128/forward.png[\"\']=This icon was deprecated because of theme compatibility considerations
-128/home.png[\"\']=This icon was deprecated because of theme compatibility considerations
-128/mac.png[\"\']=This icon was deprecated because of theme compatibility considerations
-128/penguin.png[\"\']=This icon was deprecated because of theme compatibility considerations
-128/reload.png[\"\']=This icon was deprecated because of theme compatibility considerations
-128/tux.png[\"\']=This icon was deprecated because of theme compatibility considerations
-128/up.png[\"\']=This icon was deprecated because of theme compatibility considerations
-128/vectorgraphics.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/3d.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/antivirus.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/appearance.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/appointment.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/babelfish.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/block-device.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/cam.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/comment.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/contents.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/context-help.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/database.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/delete-table-cell.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/delete-table-col.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/delete-table.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/delete-table-row.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/documentinfo.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/emoticon.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/favorites.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/favourite.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/file-find.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/fileshare.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/flag.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/font-size-down.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/font-size-up.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/format-decrease-indent.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/format-increase-indent.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/funct.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/goto.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/group-event.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/hardware.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/idea.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/inbox.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/insert-table-col.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/insert-table.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/insert-table-row.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/instant-available.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/instant-away.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/launch.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/mac.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/mousecursor.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/outbox.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/penguin.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/remove-comment.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/search.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/server.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/sound.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/text-bottom.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/text-color.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/text-strike.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/text-sub.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/text-super.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/text-top.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/trash.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/tux.png[\"\']=This icon was deprecated because of theme compatibility considerations
-16/vectorgraphics.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/antivirus.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/appearance.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/appointment.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/babelfish.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/block-device.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/contents.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/delete-table-col.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/delete-table-row.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/effect.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/favourite.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/file-find.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/flowchart.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/font-size-down.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/font-size-up.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/format-decrease-indent.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/format-increase-indent.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/funct.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/idea.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/inbox.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/insert-table-col.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/insert-table-row.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/instant-available.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/instant-away.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/launch.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/look-and-feel.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/mac.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/movieplayer.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/outbox.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/penguin.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/search.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/server.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/services.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/text-strike.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/tux.png[\"\']=This icon was deprecated because of theme compatibility considerations
-22/vectorgraphics.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/3d.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/antivirus.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/appearance.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/appointment.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/babelfish.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/block-device.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/cam.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/delete-table-col.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/delete-table-row.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/favorites.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/favourite.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/file-find.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/fileshare.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/funct.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/goto.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/hardware.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/inbox.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/insert-table-col.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/insert-table-row.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/instant-available.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/instant-away.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/launch.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/mac.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/outbox.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/penguin.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/search.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/server.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/sound.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/tux.png[\"\']=This icon was deprecated because of theme compatibility considerations
-32/vectorgraphics.png[\"\']=This icon was deprecated because of theme compatibility considerations
-48/3d.png[\"\']=This icon was deprecated because of theme compatibility considerations
-48/antivirus.png[\"\']=This icon was deprecated because of theme compatibility considerations
-48/babelfish.png[\"\']=This icon was deprecated because of theme compatibility considerations
-48/block-device.png[\"\']=This icon was deprecated because of theme compatibility considerations
-48/favorites.png[\"\']=This icon was deprecated because of theme compatibility considerations
-48/favourite.png[\"\']=This icon was deprecated because of theme compatibility considerations
-48/fileshare.png[\"\']=This icon was deprecated because of theme compatibility considerations
-48/hardware.png[\"\']=This icon was deprecated because of theme compatibility considerations
-48/inbox.png[\"\']=This icon was deprecated because of theme compatibility considerations
-48/instant-available.png[\"\']=This icon was deprecated because of theme compatibility considerations
-48/instant-away.png[\"\']=This icon was deprecated because of theme compatibility considerations
-48/mac.png[\"\']=This icon was deprecated because of theme compatibility considerations
-48/outbox.png[\"\']=This icon was deprecated because of theme compatibility considerations
-48/penguin.png[\"\']=This icon was deprecated because of theme compatibility considerations
-48/server.png[\"\']=This icon was deprecated because of theme compatibility considerations
-48/tux.png[\"\']=This icon was deprecated because of theme compatibility considerations
-48/vectorgraphics.png[\"\']=This icon was deprecated because of theme compatibility considerations
-64/3d.png[\"\']=This icon was deprecated because of theme compatibility considerations
-64/antivirus.png[\"\']=This icon was deprecated because of theme compatibility considerations
-64/babelfish.png[\"\']=This icon was deprecated because of theme compatibility considerations
-64/back.png[\"\']=This icon was deprecated because of theme compatibility considerations
-64/block-device.png[\"\']=This icon was deprecated because of theme compatibility considerations
-64/down.png[\"\']=This icon was deprecated because of theme compatibility considerations
-64/favourite.png[\"\']=This icon was deprecated because of theme compatibility considerations
-64/file-print.png[\"\']=This icon was deprecated because of theme compatibility considerations
-64/fileshare.png[\"\']=This icon was deprecated because of theme compatibility considerations
-64/forward.png[\"\']=This icon was deprecated because of theme compatibility considerations
-64/hardware.png[\"\']=This icon was deprecated because of theme compatibility considerations
-64/home.png[\"\']=This icon was deprecated because of theme compatibility considerations
-64/mac.png[\"\']=This icon was deprecated because of theme compatibility considerations
-64/penguin.png[\"\']=This icon was deprecated because of theme compatibility considerations
-64/reload.png[\"\']=This icon was deprecated because of theme compatibility considerations
-64/tux.png[\"\']=This icon was deprecated because of theme compatibility considerations
-64/up.png[\"\']=This icon was deprecated because of theme compatibility considerations
-64/vectorgraphics.png[\"\']=This icon was deprecated because of theme compatibility considerations
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/info/03-icons.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/info/03-icons.dat
deleted file mode 100644 (file)
index 3e427c0..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]bell\.png[\"\'\)]=The image 'bell.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]bitmapgraphics\.png[\"\'\)]=The image 'bitmapgraphics.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]bookmark-toolbar\.png[\"\'\)]=The image 'bookmark-toolbar.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]bookmark\.png[\"\'\)]=The image 'bookmark.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]bug\.png[\"\'\)]=The image 'bug.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]cache\.png[\"\'\)]=The image 'cache.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]char-device\.png[\"\'\)]=The image 'char-device.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]chart\.png[\"\'\)]=The image 'chart.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]color-fill\.png[\"\'\)]=The image 'color-fill.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]color-line\.png[\"\'\)]=The image 'color-line.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]connect-creating\.png[\"\'\)]=The image 'connect-creating.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]connect-established\.png[\"\'\)]=The image 'connect-established.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]cookie\.png[\"\'\)]=The image 'cookie.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]core\.png[\"\'\)]=The image 'core.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]energy\.png[\"\'\)]=The image 'energy.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]flowchart\.png[\"\'\)]=The image 'flowchart.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]folder-important\.png[\"\'\)]=The image 'folder-important.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]mime-manual\.png[\"\'\)]=The image 'mime-manual.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]mime-rpm\.png[\"\'\)]=The image 'mime-rpm.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]no\.png[\"\'\)]=The image 'no.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]notify\.png[\"\'\)]=The image 'notify.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]paint\.png[\"\'\)]=The image 'paint.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]partitions\.png[\"\'\)]=The image 'partitions.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]pda\.png[\"\'\)]=The image 'pda.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]pipe\.png[\"\'\)]=The image 'pipe.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]presentation\.png[\"\'\)]=The image 'presentation.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]queue\.png[\"\'\)]=The image 'queue.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]signature\.png[\"\'\)]=The image 'signature.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]style\.png[\"\'\)]=The image 'style.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]tab-duplicate\.png[\"\'\)]=The image 'tab-duplicate.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]tab-new-raised\.png[\"\'\)]=The image 'tab-new-raised.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]tab-new\.png[\"\'\)]=The image 'tab-new.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]tab-remove\.png[\"\'\)]=The image 'tab-remove.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]view-bottom\.png[\"\'\)]=The image 'view-bottom.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]view-choose\.png[\"\'\)]=The image 'view-choose.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]view-left-right\.png[\"\'\)]=The image 'view-left-right.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]view-right\.png[\"\'\)]=The image 'view-right.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]view-sidetree\.png[\"\'\)]=The image 'view-sidetree.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]view-top-bottom\.png[\"\'\)]=The image 'view-top-bottom.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]wizard\.png[\"\'\)]=The image 'wizard.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]wordprocessor\.png[\"\'\)]=The image 'wordprocessor.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]control-center\.png[\"\'\)]=The image 'control-center.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]locale\.png[\"\'\)]=The image 'locale.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]folder-locked\.png[\"\'\)]=The image 'folder-locked.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]misc\.png[\"\'\)]=The image 'misc.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]mail-forward\.png[\"\'\)]=The image 'mail-forward.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]toys\.png[\"\'\)]=The image 'toys.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]mime-document\.png[\"\'\)]=The image 'mime-document.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]mail-send\.png[\"\'\)]=The image 'mail-send.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]mail-get\.png[\"\'\)]=The image 'mail-get.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]icons\.png[\"\'\)]=The image 'icons.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]mail-delete\.png[\"\'\)]=The image 'mail-delete.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]bookmark-folder\.png[\"\'\)]=The image 'bookmark-folder.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]attach\.png[\"\'\)]=The image 'attach.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]memory\.png[\"\'\)]=The image 'memory.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]mail-find\.png[\"\'\)]=The image 'mail-find.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]keyboard-layout\.png[\"\'\)]=The image 'keyboard-layout.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]exec\.png[\"\'\)]=The image 'exec.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]iconthemes\.png[\"\'\)]=The image 'iconthemes.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]important\.png[\"\'\)]=The image 'important.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]connect-no\.png[\"\'\)]=The image 'connect-no.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]mail-reply-all\.png[\"\'\)]=The image 'mail-reply-all.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]mail-reply\.png[\"\'\)]=The image 'mail-reply.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]info\.png[\"\'\)]=The image 'info.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]mime-card\.png[\"\'\)]=The image 'mime-card.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]rotate\.png[\"\'\)]=The image 'rotate.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]tablet\.png[\"\'\)]=The image 'tablet.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]opera\.png[\"\'\)]=The image 'opera.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]email\.png[\"\'\)]=The image 'email.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]mail-new\.png[\"\'\)]=The image 'mail-new.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]joystick\.png[\"\'\)]=The image 'joystick.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]modem\.png[\"\'\)]=The image 'modem.png' is no longer supported! Try to use a different icon.
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)[/\"\'\(]folder-favorite\.png[\"\'\)]=The image 'folder-favorite.png' is no longer supported! Try to use a different icon.
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/patches/01-locale.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/patches/01-locale.dat
deleted file mode 100644 (file)
index d7a06cf..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-\bqx\.locale\.Number\.getDecimalSeperator\b=qx.locale.Number.getDecimalSeparator
-\bqx\.locale\.Number\.getGroupSeperator\b=qx.locale.Number.getGroupSeparator
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/patches/02-spinner.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/patches/02-spinner.dat
deleted file mode 100644 (file)
index 45afa1d..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-\bqx\.setComputedIncrementAmount\b=.setIncrementAmount
-\bqx\.getComputedIncrementAmount\b=.getIncrementAmount
-
-\bqx\.setWheelComputedIncrementAmount\b=.setWheelIncrementAmount
-\bqx\.getWheelComputedIncrementAmount\b=.getWheelIncrementAmount
-
-\bqx\.setPageComputedIncrementAmount\b=.setPageIncrementAmount
-\bqx\.getPageComputedIncrementAmount\b=.getPageIncrementAmount
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/patches/03-api.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/patches/03-api.dat
deleted file mode 100644 (file)
index b2a33f7..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-@param\s+([a-zA-Z0-9_\$]+)\s*\((.*?)\)=@param \1 {\2}\r
-@return\s+\((.*?)\)=@return {\1}\r
-\r
-@return\s+{string=@return {String\r
-@return\s+{float=@return {Float\r
-@return\s+{int=@return {Integer\r
-@return\s+{integer=@return {Integer\r
-@return\s+{boolean=@return {Boolean\r
-@return\s+{float=@return {Float\r
-@return\s+{double=@return {Double\r
-@return\s+{object=@return {Object\r
-@return\s+{map=@return {Map\r
-\r
-@param\s+([a-zA-Z0-9_$]+)\s+{string=@param \1 {String\r
-@param\s+([a-zA-Z0-9_$]+)\s+{float=@param \1 {Float\r
-@param\s+([a-zA-Z0-9_$]+)\s+{int=@param \1 {Integer\r
-@param\s+([a-zA-Z0-9_$]+)\s+{integer=@param \1 {Integer\r
-@param\s+([a-zA-Z0-9_$]+)\s+{boolean=@param \1 {Boolean\r
-@param\s+([a-zA-Z0-9_$]+)\s+{float=@param \1 {Float\r
-@param\s+([a-zA-Z0-9_$]+)\s+{double=@param \1 {Double\r
-@param\s+([a-zA-Z0-9_$]+)\s+{object=@param \1 {Object\r
-@param\s+([a-zA-Z0-9_$]+)\s+{map=@param \1 {Map\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/patches/04-string.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/patches/04-string.dat
deleted file mode 100644 (file)
index 0e01e77..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-\bqx\.lang\.String\.add\b=qx.lang.String.addListItem
-\bqx\.lang\.String\.remove\b=qx.lang.String.removeListItem
-
-\bqx\.ui\.table\.DefaultDataCellRenderer\.escapeHtml\b=qx.util.StringEscape.escapeHtml
-\bqx\.lang\.String\.escapeRegexpChars\b=qx.util.StringEscape.escapeRegexpChars
-
-# StringUtil never existed, so correct this mistake afterwards
-\bqx\.ui\.basic\.Label\.htmlToText\b=qx.util.StringUtil.htmlToText
-\bqx\.ui\.basic\.Label\.textToHtml\b=qx.util.StringUtil.textToHtml
-\bqx\.util\.StringUtil\.htmlToText\b=qx.html.String.toText
-\bqx\.util\.StringUtil\.textToHtml\b=qx.html.String.fromText
-
-\bqx\.ui\.basic\.Label\.htmlToText\b=qx.html.String.toText
-\bqx\.ui\.basic\.Label\.textToHtml\b=qx.html.String.fromText
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/patches/05-xml.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/patches/05-xml.dat
deleted file mode 100644 (file)
index 65f88d0..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-#################
-# qx.html.String
-#################
-
-\bqx\.util\.StringEscape\.HTML_ENTITIES_TO_CHARCODE\b=qx.html.Entity.TO_CHARCODE
-\bqx\.util\.StringEscape\.HTML_CHARCODE_TO_ENTITIES\b=qx.html.Entity.FROM_CHARCODE
-
-\bqx\.util\.StringEscape\.escapeHtml\b=qx.html.String.escape
-\bqx\.util\.StringEscape\.unescapeHtml\b=qx.html.String.unescape
-
-\bqx\.util\.StringEscape\.textToHtml\b=qx.html.String.fromText
-\bqx\.util\.StringEscape\.htmlToText\b=qx.html.String.toText
-
-
-################
-# qx.xml.String
-################
-
-\bqx\.util\.StringEscape\.XML_ENTITIES_TO_CHARCODE\b=qx.xml.Entity.TO_CHARCODE
-\bqx\.util\.StringEscape\.XML_CHARCODE_TO_ENTITIES\b=qx.xml.Entity.FROM_CHARCODE
-
-\bqx\.util\.StringEscape\.escapeXml\b=qx.xml.String.escape
-\bqx\.util\.StringEscape\.unescapeXml\b=qx.xml.String.unescape
-
-
-################
-# qx.dom.String
-################
-
-\bqx\.util\.StringEscape\._escape\b=qx.dom.String.escapeEntities
-\bqx\.util\.StringEscape\._unescape\b=qx.dom.String.unescapeEntities
-
-\bqx\.lang\.String\.stripTags\b=qx.dom.String.stripTags
-
-
-#################
-# qx.lang.String
-#################
-
-\bqx\.util\.StringEscape\.escapeRegexpChars\b=qx.lang.String.escapeRegexpChars
-
-
-#####################
-# qx.dom --> qx.html
-#####################
-
-\bqx\.dom\.Dimension\b=qx.html.Dimension
-\bqx\.dom\.ElementFromPoint\b=qx.html.ElementFromPoint
-\bqx\.dom\.EventRegistration\b=qx.html.EventRegistration
-\bqx\.dom\.Iframe\b=qx.html.Iframe
-\bqx\.dom\.Location\b=qx.html.Location
-\bqx\.dom\.Offset\b=qx.html.Offset
-\bqx\.dom\.ScrollIntoView\b=qx.html.ScrollIntoView
-\bqx\.dom\.Scroll\b=qx.html.Scroll
-\bqx\.dom\.Style\b=qx.html.Style
-\bqx\.dom\.StyleSheet\b=qx.html.StyleSheet
-\bqx\.dom\.Window\b=qx.html.Window
-
-
-###############
-# xml.Document
-###############
-
-\bqx\.xml\.Core\.createXmlDocument\b=qx.xml.Document.create
-\bqx\.xml\.Core\.isDocument\b=qx.xml.Document.isDocument
-\bqx\.xml\.Core\.parse\b=qx.xml.Document.fromString
-
-
-##############
-# xml.Element
-##############
-
-\bqx\.xml\.Core\.serialize\b=qx.xml.Element.serialize
-\bqx\.xml\.Core\.selectSingleNode\b=qx.xml.Element.selectSingleNode
-\bqx\.xml\.Core\.selectNodes\b=qx.xml.Element.selectNodes
-\bqx\.xml\.Core\.getElementsByTagNameNS\b=qx.xml.Element.getElementsByTagNameNS
-
-##############
-# xml.Element
-##############
-
-\bqx\.xml\.Core\.getTextContent\b=qx.dom.Element.getTextContent
-
-
-##################
-# net.HttpRequest
-##################
-
-\bqx\.xml\.Core\.createXmlHttpRequest\b=qx.net.HttpRequest.create
-
-
-#############
-# html.Form
-#############
-
-\bqx\.util\.FormUtil\b=qx.html.Form
-
-
-###############
-# html.Textile
-###############
-
-\bqx\.util\.Textile\b=qx.html.Textile
-
-
-################
-# lang.Function
-################
-
-\bqx\.util\.Return\b=qx.lang.Function
-
-
-#####################
-# util.StringBuilder
-#####################
-
-\bqx\.type\.StringBuilder\b=qx.util.StringBuilder
-
-
-##############
-# core.Client
-##############
-
-\bqx\.sys\.Client\b=qx.core.Client
-
-
-##################
-# util.GuiBuilder
-##################
-
-\bqx\.client\.Builder\b=qx.util.GuiBuilder
-
-
-######
-# log
-######
-
-\bqx\.dev\.log\b=qx.log
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/patches/06-mime.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/patches/06-mime.dat
deleted file mode 100644 (file)
index fd39428..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-(?<!JSON: )[\"\']text\/json[\"\']=qx.util.Mime.JSON
-(?<!JSON: )[\"\']application\/json[\"\']=qx.util.Mime.JSON
-(?<!XML: )[\"\']application\/xml[\"\']=qx.util.Mime.XML
-(?<!TEXT: )[\"\']text\/plain[\"\']=qx.util.Mime.TEXT
-(?<!HTML: )[\"\']text\/html[\"\']=qx.util.Mime.HTML
-
-# text/javascript is not autmatically replaced with application/javascript.
-# Instead, a info warning is given, see info/ folder.
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/patches/07-icons.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/patches/07-icons.dat
deleted file mode 100644 (file)
index 55a018e..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])help\.png([\"\'\)])=\1actions/help-about.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])encrypted\.png([\"\'\)])=\1actions/encrypt.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])mime-image\.png([\"\'\)])=\1mimetypes/image-x-generic.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])themes\.png([\"\'\)])=\1apps/preferences-desktop-theme.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])colors\.png([\"\'\)])=\1actions/format-color.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])view-text\.png([\"\'\)])=\1actions/view-pane-text.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])find\.png([\"\'\)])=\1actions/edit-find.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])spellcheck\.png([\"\'\)])=\1actions/tools-check-spelling.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])movieplayer\.png([\"\'\)])=\1apps/multimedia-movie-player.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])desktop\.png([\"\'\)])=\1places/user-desktop.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])terminal\.png([\"\'\)])=\1apps/utilities-terminal.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])view-remove\.png([\"\'\)])=\1actions/view-pane-remove.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])mail\.png([\"\'\)])=\1apps/internet-email-client.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])folder\.png([\"\'\)])=\1places/folder.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])look-and-feel\.png([\"\'\)])=\1apps/preferences-desktop-theme.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])mime-archive\.png([\"\'\)])=\1mimetypes/package-x-generic.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])mime-html\.png([\"\'\)])=\1mimetypes/text-html.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])background\.png([\"\'\)])=\1apps/preferences-desktop-wallpaper.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])view-tree\.png([\"\'\)])=\1actions/view-pane-tree.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])file-open\.png([\"\'\)])=\1actions/document-open.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])mime-quicktime\.png([\"\'\)])=\1mimetypes/application-quicktime.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])password\.png([\"\'\)])=\1status/dialog-password.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])button-ok\.png([\"\'\)])=\1actions/dialog-ok.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])decrypted\.png([\"\'\)])=\1actions/decrypt.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])mycomputer\.png([\"\'\)])=\1devices/computer.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])edit\.png([\"\'\)])=\1actions/edit.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])notes\.png([\"\'\)])=\1apps/accessories-notes.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])fonts\.png([\"\'\)])=\1apps/preferences-desktop-font.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])reload\.png([\"\'\)])=\1actions/view-refresh.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])button-cancel\.png([\"\'\)])=\1actions/dialog-cancel.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])file-new\.png([\"\'\)])=\1actions/document-new.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])settings\.png([\"\'\)])=\1categories/preferences.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])adobe-reader\.png([\"\'\)])=\1apps/office-adobe-reader.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])file-save\.png([\"\'\)])=\1actions/document-save.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])edit-cut\.png([\"\'\)])=\1actions/edit-cut.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])back\.png([\"\'\)])=\1actions/go-previous.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])devices\.png([\"\'\)])=\1devices/drive-harddisk.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])home\.png([\"\'\)])=\1actions/go-home.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])file-print\.png([\"\'\)])=\1actions/document-print.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])network\.png([\"\'\)])=\1categories/applications-internet.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])clock\.png([\"\'\)])=\1apps/accessories-clock.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])mime-text\.png([\"\'\)])=\1mimetypes/text-x-generic.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])multimedia\.png([\"\'\)])=\1categories/applications-multimedia.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])viewmag-plus\.png([\"\'\)])=\1actions/zoom-in.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])clipboard\.png([\"\'\)])=\1apps/accessories-clipboard.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])exit\.png([\"\'\)])=\1actions/application-exit.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])run\.png([\"\'\)])=\1actions/system-run.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])dictionary\.png([\"\'\)])=\1apps/accessories-dictionary.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])undo\.png([\"\'\)])=\1actions/edit-undo.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])mime-calendar\.png([\"\'\)])=\1mimetypes/x-office-calendar.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])trashcan-full\.png([\"\'\)])=\1places/user-trash-full.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])ok\.png([\"\'\)])=\1actions/dialog-ok.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])file-save-as\.png([\"\'\)])=\1actions/document-save-as.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])harddrive\.png([\"\'\)])=\1devices/drive-harddisk.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])mixer\.png([\"\'\)])=\1apps/multimedia-volume-control.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])tv\.png([\"\'\)])=\1devices/video-display.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])games\.png([\"\'\)])=\1categories/applications-games.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])folder-open\.png([\"\'\)])=\1status/folder-open.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])edit-copy\.png([\"\'\)])=\1actions/edit-copy.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])viewmag\.png([\"\'\)])=\1actions/zoom.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])viewmag-minus\.png([\"\'\)])=\1actions/zoom-out.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])down\.png([\"\'\)])=\1actions/go-down.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])services\.png([\"\'\)])=\1places/services.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])trashcan-empty\.png([\"\'\)])=\1places/user-trash.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])mime-shellscript\.png([\"\'\)])=\1mimetypes/text-x-script.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])cancel\.png([\"\'\)])=\1actions/dialog-cancel.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])apply\.png([\"\'\)])=\1actions/dialog-ok.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])redo\.png([\"\'\)])=\1actions/edit-redo.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])history-clear\.png([\"\'\)])=\1actions/history-clear.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])scanner\.png([\"\'\)])=\1devices/scanner.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])mime-color\.png([\"\'\)])=\1actions/format-color.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])system\.png([\"\'\)])=\1categories/applications-system.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])camera\.png([\"\'\)])=\1devices/camera-photo.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])editor\.png([\"\'\)])=\1apps/accessories-text-editor.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])forward\.png([\"\'\)])=\1actions/go-next.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])mime-sourcecode\.png([\"\'\)])=\1mimetypes/empty-x-generic.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])mime-multimedia\.png([\"\'\)])=\1mimetypes/audio-x-generic.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])mime-video\.png([\"\'\)])=\1mimetypes/video-x-generic.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])configure\.png([\"\'\)])=\1apps/preferences.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])floppy\.png([\"\'\)])=\1devices/media-floppy.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])viewmag-fit\.png([\"\'\)])=\1actions/zoom-best-fit.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])bookmark-add\.png([\"\'\)])=\1actions/favorite-add.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])graphics\.png([\"\'\)])=\1categories/applications-graphics.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])cdrom\.png([\"\'\)])=\1devices/media-optical.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])mime-spreadsheet\.png([\"\'\)])=\1mimetypes/x-office-spreadsheet.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])netscape\.png([\"\'\)])=\1mimetypes/text-html.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])view-icon\.png([\"\'\)])=\1actions/view-pane-icon.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])edit-paste\.png([\"\'\)])=\1actions/edit-paste.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])view-multicolumn\.png([\"\'\)])=\1actions/view-pane-column.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])up\.png([\"\'\)])=\1actions/go-up.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])help-center\.png([\"\'\)])=\1apps/help-browser.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])mime-script\.png([\"\'\)])=\1mimetypes/text-x-script.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])file-manager\.png([\"\'\)])=\1apps/system-file-manager.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])display\.png([\"\'\)])=\1devices/video-display.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])history\.png([\"\'\)])=\1actions/history.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])edit-delete\.png([\"\'\)])=\1actions/edit-delete.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])mime-binary\.png([\"\'\)])=\1mimetypes/application-x-executable.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])calculator\.png([\"\'\)])=\1apps/accessories-calculator.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])accessibility\.png([\"\'\)])=\1apps/preferences-desktop-accessibility.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])organizer\.png([\"\'\)])=\1apps/office-organizer.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])mouse\.png([\"\'\)])=\1devices/input-mouse.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])printer\.png([\"\'\)])=\1devices/printer.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])stop\.png([\"\'\)])=\1actions/stop.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])viewmag-original\.png([\"\'\)])=\1actions/zoom-original.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])utilities\.png([\"\'\)])=\1categories/applications-utilities.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])applications\.png([\"\'\)])=\1categories/applications.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])user\.png([\"\'\)])=\1apps/system-users.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])mime-pdf\.png([\"\'\)])=\1mimetypes/application-pdf.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])date\.png([\"\'\)])=\1apps/accessories-date.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])alarm\.png([\"\'\)])=\1apps/accessories-alarm.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])view-detailed\.png([\"\'\)])=\1actions/view-pane-detailed.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])magnifier\.png([\"\'\)])=\1actions/zoom.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])info\.png([\"\'\)])=\1status/dialog-information.png\2
-(?<!actions)(?<!apps)(?<!categories)(?<!devices)(?<!mimetypes)(?<!places)(?<!status)([/\"\'\(])error\.png([\"\'\)])=\1status/dialog-error.png\2
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/patches/08-genvar.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6.5/patches/08-genvar.dat
deleted file mode 100644 (file)
index 03ab1d1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-\bqx\.SOURCE_BUILD\b=qx.IS_SOURCE
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6/info/01-prototypes.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6/info/01-prototypes.dat
deleted file mode 100644 (file)
index 2cdd4ad..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-\.copy\b=Maybe old use of prototype function. Please use qx.lang.Array instead.\r
-\.clone\b=Maybe old use of prototype function. Please use qx.lang.Array instead.\r
-\.getFirst\b=Maybe old use of prototype function. Please use qx.lang.Array instead.\r
-\.getLast\b=Maybe old use of prototype function. Please use qx.lang.Array instead.\r
-\.insertAt\b=Maybe old use of prototype function. Please use qx.lang.Array instead.\r
-\.insertBefore\b=Maybe old use of prototype function. Please use qx.lang.Array instead.\r
-\.insertAfter\b=Maybe old use of prototype function. Please use qx.lang.Array instead.\r
-\.removeAt\b=Maybe old use of prototype function. Please use qx.lang.Array instead.\r
-\.removeAll\b=Maybe old use of prototype function. Please use qx.lang.Array instead.\r
-\.append\b=Maybe old use of prototype function. Please use qx.lang.Array instead.\r
-\.remove\b=Maybe old use of prototype function. Please use qx.lang.Array instead.\r
-\.contains\b=Maybe old use of prototype function. Please use qx.lang.Array/qx.lang.String instead.\r
-\r
-\.toCamelCase\b=Maybe old use of prototype function. Please use qx.lang.String instead.\r
-\.trimLeft\b=Maybe old use of prototype function. Please use qx.lang.String instead.\r
-\.trimRight\b=Maybe old use of prototype function. Please use qx.lang.String instead.\r
-\.trim\b=Maybe old use of prototype function. Please use qx.lang.String instead.\r
-\.stripTags\b=Maybe old use of prototype function. Please use qx.lang.String instead.\r
-\.startsWith\b=Maybe old use of prototype function. Please use qx.lang.String instead.\r
-\.endsWith\b=Maybe old use of prototype function. Please use qx.lang.String instead.\r
-\.pad\b=Maybe old use of prototype function. Please use qx.lang.String instead.\r
-\.toFirstUp\b=Maybe old use of prototype function. Please use qx.lang.String instead.\r
-\.escapeRegexpChars\b=Maybe old use of prototype function. Please use qx.lang.String instead.\r
-\r
-# All widget add/remove is affected. It's generally better to hide these because the string\r
-# methods are relatively rarely used.\r
-#\.add\b=Maybe old use of prototype function. Please use qx.lang.String instead.\r
-#\.remove\b=Maybe old use of prototype function. Please use qx.lang.String instead.\r
-\r
-\.isInRange\b=Maybe old use of prototype function. Please use qx.lang.Number instead.\r
-\.isBetweenRange\b=Maybe old use of prototype function. Please use qx.lang.Number instead.\r
-\.limit\b=Maybe old use of prototype function. Please use qx.lang.Number instead.\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6/info/02-obsolete.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6/info/02-obsolete.dat
deleted file mode 100644 (file)
index 65e5496..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-\bQxSet\b=Does not exist anymore. Maybe qx.manager.object.ObjectManager can be used instead.\r
-\bQxTransport\b=Does not exist anymore. Please use qx.io.remote.RemoteRequest now.\r
-\bQxXmlHttpTransport\b=Does not exist anymore. Please use qx.io.remote.RemoteRequest now.\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6/patches/01-classnames.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6/patches/01-classnames.dat
deleted file mode 100644 (file)
index 4545fe3..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-\bQxConst\b=qx.Const
-\bQxClient\b=qx.sys.Client
-
-\bQxDefaultSettings\b=qx.core.DefaultSettings
-\bQxSettings\b=qx.core.Settings
-\bQxMain\b=qx.core.Main
-\bQxObject\b=qx.core.Object
-\bQxTarget\b=qx.core.Target
-\bQxApplication\b=qx.core.Init
-
-\bQxRangeManager\b=qx.type.Range
-\bQxSelectionStorage\b=qx.type.Selection
-\bQxFlashPlayerVersion\b=qx.type.Version
-
-\bQxTimer\b=qx.client.Timer
-\bQxNativeWindow\b=qx.client.NativeWindow
-\bQxClientWindow\b=qx.client.ClientWindow
-\bQxCommand\b=qx.client.Command
-\bQxBuilder\b=qx.client.Builder
-
-\bQxDebug\b=qx.dev.Debug
-\bQxTimeTracker\b=qx.dev.TimeTracker
-
-\bQxXmlExtras\b=qx.lang.Xml
-
-\bQxDataEvent\b=qx.event.type.DataEvent
-\bQxDomEvent\b=qx.event.type.DomEvent
-\bQxDragEvent\b=qx.event.type.DragEvent
-\bQxEvent\b=qx.event.type.Event
-\bQxFocusEvent\b=qx.event.type.FocusEvent
-\bQxKeyEvent\b=qx.event.type.KeyEvent
-\bQxMouseEvent\b=qx.event.type.MouseEvent
-
-\bQxDragAndDropManager\b=qx.event.handler.DragAndDropHandler
-\bQxEventManager\b=qx.event.handler.EventHandler
-\bQxFocusManager\b=qx.event.handler.FocusHandler
-
-\bQxRequest\b=qx.io.remote.RemoteRequest
-\bQxRequestQueue\b=qx.io.remote.RemoteRequestQueue
-\bQxResponse\b=qx.io.remote.RemoteResponse
-\bQxCommonTransport\b=qx.io.remote.AbstractRemoteTransport
-\bQxIframeTransport\b=qx.io.remote.IframeTransport
-\bQxXmlhttpTransport\b=qx.io.remote.XmlhttpTransport
-
-\bQxCookie\b=qx.io.local.CookieApi
-\bQxCookieStorage\b=qx.io.local.CookieTransport
-
-\bQxImagePreloader\b=qx.io.image.ImagePreloader
-\bQxImagePreloaderSystem\b=qx.io.image.ImagePreloaderSystem
-
-\bQxParent\b=qx.ui.core.Parent
-\bQxWidget\b=qx.ui.core.Widget
-\bQxClientDocument\b=qx.ui.core.ClientDocument
-\bQxBlocker\b=qx.ui.core.ClientDocumentBlocker
-
-\bQxAtom\b=qx.ui.basic.Atom
-\bQxImage\b=qx.ui.basic.Image
-\bQxLabel\b=qx.ui.basic.Label
-\bQxTerminator\b=qx.ui.basic.Terminator
-\bQxInline\b=qx.ui.basic.Inline
-\bQxHorizontalSpacer\b=qx.ui.basic.HorizontalSpacer
-\bQxVerticalSpacer\b=qx.ui.basic.VerticalSpacer
-
-\bQxBoxLayout\b=qx.ui.layout.BoxLayout
-\bQxCanvasLayout\b=qx.ui.layout.CanvasLayout
-\bQxDockLayout\b=qx.ui.layout.DockLayout
-\bQxFlowLayout\b=qx.ui.layout.FlowLayout
-\bQxHorizontalBoxLayout\b=qx.ui.layout.HorizontalBoxLayout
-\bQxVerticalBoxLayout\b=qx.ui.layout.VerticalBoxLayout
-\bQxGridLayout\b=qx.ui.layout.GridLayout
-
-\bQxTextField\b=qx.ui.form.TextField
-\bQxTextArea\b=qx.ui.form.TextArea
-\bQxPasswordField\b=qx.ui.form.PasswordField
-\bQxSpinner\b=qx.ui.form.Spinner
-\bQxButton\b=qx.ui.form.Button
-\bQxRepeatButton\b=qx.ui.form.RepeatButton
-\bQxComboBox\b=qx.ui.form.ComboBox
-\bQxList\b=qx.ui.form.List
-\bQxCheckBox\b=qx.ui.form.CheckBox
-\bQxRadioButton\b=qx.ui.form.RadioButton
-\bQxListItem\b=qx.ui.form.ListItem
-\bQxInputCheckIcon\b=qx.ui.form.InputCheckSymbol
-
-\bQxFieldSet\b=qx.ui.groupbox.GroupBox
-\bQxCheckBoxFieldSet\b=qx.ui.groupbox.CheckGroupBox
-\bQxRadioButtonFieldSet\b=qx.ui.groupbox.RadioGroupBox
-
-\bQxListView\b=qx.ui.listview.ListView
-\bQxListViewContentCellHtml\b=qx.ui.listview.ListViewContentCellHtml
-\bQxListViewContentCellIconHtml\b=qx.ui.listview.ListViewContentCellIconHtml
-\bQxListViewContentCellImage\b=qx.ui.listview.ListViewContentCellImage
-\bQxListViewContentCellLink\b=qx.ui.listview.ListViewContentCellLink
-\bQxListViewContentCellText\b=qx.ui.listview.ListViewContentCellText
-\bQxListViewHeader\b=qx.ui.listview.ListViewHeader
-\bQxListViewHeaderCell\b=qx.ui.listview.ListViewHeaderCell
-\bQxListViewHeaderSeparator\b=qx.ui.listview.ListViewHeaderSeparator
-\bQxListViewPane\b=qx.ui.listview.ListViewPane
-
-\bQxWindow\b=qx.ui.window.Window
-
-\bQxPopup\b=qx.ui.popup.Popup
-\bQxPopupAtom\b=qx.ui.popup.PopupAtom
-\bQxToolTip\b=qx.ui.popup.ToolTip
-
-\bQxMenu\b=qx.ui.menu.Menu
-\bQxMenuBar\b=qx.ui.menu.MenuBar
-\bQxMenuBarButton\b=qx.ui.menu.MenuBarButton
-\bQxMenuButton\b=qx.ui.menu.MenuButton
-\bQxMenuCheckBox\b=qx.ui.menu.MenuCheckBox
-\bQxMenuLayout\b=qx.ui.menu.MenuLayout
-\bQxMenuRadioButton\b=qx.ui.menu.MenuRadioButton
-\bQxMenuSeparator\b=qx.ui.menu.MenuSeparator
-
-\bQxCommonView\b=qx.ui.pageview.AbstractPageView
-\bQxCommonViewBar\b=qx.ui.pageview.AbstractPageViewBar
-\bQxCommonViewButton\b=qx.ui.pageview.AbstractPageViewButton
-\bQxCommonViewPage\b=qx.ui.pageview.AbstractPageViewPage
-\bQxCommonViewPane\b=qx.ui.pageview.AbstractPageViewPane
-
-\bQxTabView\b=qx.ui.pageview.tabview.TabView
-\bQxTabViewBar\b=qx.ui.pageview.tabview.TabViewBar
-\bQxTabViewButton\b=qx.ui.pageview.tabview.TabViewButton
-\bQxTabViewPage\b=qx.ui.pageview.tabview.TabViewPage
-\bQxTabViewPane\b=qx.ui.pageview.tabview.TabViewPane
-
-\bQxBarView\b=qx.ui.pageview.buttonview.ButtonView
-\bQxBarViewBar\b=qx.ui.pageview.buttonview.ButtonViewBar
-\bQxBarViewButton\b=qx.ui.pageview.buttonview.ButtonViewButton
-\bQxBarViewPage\b=qx.ui.pageview.buttonview.ButtonViewPage
-\bQxBarViewPane\b=qx.ui.pageview.buttonview.ButtonViewPane
-
-\bQxToolBar\b=qx.ui.toolbar.ToolBar
-\bQxToolBarButton\b=qx.ui.toolbar.ToolBarButton
-\bQxToolBarCheckBox\b=qx.ui.toolbar.ToolBarCheckBox
-\bQxToolBarMenuButton\b=qx.ui.toolbar.ToolBarMenuButton
-\bQxToolBarPart\b=qx.ui.toolbar.ToolBarPart
-\bQxToolBarPartHandle\b=qx.ui.toolbar.ToolBarPartHandle
-\bQxToolBarRadioButton\b=qx.ui.toolbar.ToolBarRadioButton
-\bQxToolBarSeparator\b=qx.ui.toolbar.ToolBarSeparator
-
-\bQxTree\b=qx.ui.tree.Tree
-\bQxTreeElement\b=qx.ui.tree.AbstractTreeElement
-\bQxTreeFile\b=qx.ui.tree.TreeFile
-\bQxTreeFolder\b=qx.ui.tree.TreeFolder
-
-\bQxColorSelector\b=qx.ui.component.ColorSelector
-
-\bQxCanvasLayoutImpl\b=qx.renderer.layout.CanvasLayoutImpl
-\bQxDockLayoutImpl\b=qx.renderer.layout.DockLayoutImpl
-\bQxFlowLayoutImpl\b=qx.renderer.layout.FlowLayoutImpl
-\bQxGridLayoutImpl\b=qx.renderer.layout.GridLayoutImpl
-\bQxHorizontalBoxLayoutImpl\b=qx.renderer.layout.HorizontalBoxLayoutImpl
-\bQxLayoutImpl\b=qx.renderer.layout.LayoutImpl
-\bQxMenuButtonLayoutImpl\b=qx.renderer.layout.MenuButtonLayoutImpl
-\bQxMenuLayoutImpl\b=qx.renderer.layout.MenuLayoutImpl
-\bQxVerticalBoxLayoutImpl\b=qx.renderer.layout.VerticalBoxLayoutImpl
-
-\bQxBorder\.presets\b=qx.renderer.border.BorderPresets
-\bQxBorderObject\.presets\b=qx.renderer.border.BorderPresets
-\bQxBorder\b=qx.renderer.border.Border
-\bQxBorderCache\b=qx.renderer.border.BorderCache
-\bQxBorderObject\b=qx.renderer.border.BorderObject
-\bQxBorderPresets\b=qx.renderer.border.BorderPresets
-
-\bQxColor\b=qx.renderer.color.Color
-\bQxColorCache\b=qx.renderer.color.ColorCache
-\bQxColorObject\b=qx.renderer.color.ColorObject
-\bQxColorUtil\b=qx.util.ColorUtil
-
-\bQxFont\b=qx.renderer.font.Font
-\bQxFontCache\b=qx.renderer.font.FontCache
-\bQxFontObject\b=qx.renderer.font.FontObject
-
-\bQxAppearanceTheme\b=qx.renderer.theme.AppearanceTheme
-\bQxColorTheme\b=qx.renderer.theme.ColorTheme
-\bQxIconTheme\b=qx.renderer.theme.IconTheme
-\bQxWidgetTheme\b=qx.renderer.theme.WidgetTheme
-
-\bQxManager\b=qx.manager.object.ObjectManager
-\bQxAppearanceManager\b=qx.manager.object.AppearanceManager
-\bQxColorManager\b=qx.manager.object.ColorManager
-\bQxPopupManager\b=qx.manager.object.PopupManager
-\bQxMenuManager\b=qx.manager.object.MenuManager
-\bQxToolTipManager\b=qx.manager.object.ToolTipManager
-\bQxWindowManager\b=qx.manager.object.WindowManager
-\bQxImageManager\b=qx.manager.object.ImageManager
-\bQxImagePreloaderManager\b=qx.manager.object.ImagePreloaderManager
-
-\bQxSelectionManager\b=qx.manager.selection.SelectionManager
-\bQxDomSelectionManager\b=qx.manager.selection.DomSelectionManager
-\bQxTreeSelectionManager\b=qx.manager.selection.TreeSelectionManager
-\bQxVirtualSelectionManager\b=qx.manager.selection.VirtualSelectionManager
-\bQxRadioManager\b=qx.manager.selection.RadioManager
-
-\bQxFlash\b=qx.ui.embed.Flash
-\bQxIframe\b=qx.ui.embed.Iframe
-\bQxGallery\b=qx.ui.embed.Gallery
-\bQxGalleryList\b=qx.ui.embed.GalleryList
-\bQxHtml\b=qx.ui.embed.HtmlEmbed
-\bQxIconHtml\b=qx.ui.embed.IconHtmlEmbed
-\bQxLink\b=qx.ui.embed.LinkEmbed
-\bQxText\b=qx.ui.embed.TextEmbed
-\bQxNode\b=qx.ui.embed.NodeEmbed
-
-\bQxTextile\b=qx.util.Textile.textilize
-\bQxCompare\b=qx.util.Compare
-\bQxFormUtils\b=qx.util.FormUtil
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6/patches/02-domapi.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6/patches/02-domapi.dat
deleted file mode 100644 (file)
index bae7bf0..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-qx.dom.getComputedOuter=qx.dom.DomDimension.getOuter
-qx.dom.getComputedInner=qx.dom.DomDimension.getInner
-qx.dom.getComputedArea=qx.dom.DomDimension.getArea
-qx.dom.getComputedBox=qx.dom.DomDimension.getBox
-qx.dom.getComputedInset=qx.dom.DomDimension.getInset
-qx.dom.getComputedScrollBar=qx.dom.DomDimension.getScrollBar
-
-qx.dom.cleanElementWhitespace=qx.dom.DomElement.cleanWhitespace
-qx.dom.isElementEmpty=qx.dom.DomElement.isEmpty
-
-qx.dom.getElementFromPoint=qx.dom.DomElementFromPoint.getElementFromPoint
-qx.dom.getElementAbsolutePointChecker=qx.dom.DomElementFromPoint.getElementAbsolutePointChecker
-
-qx.dom.addEventListener=qx.dom.DomEventRegistration.addEventListener
-qx.dom.removeEventListener=qx.dom.DomEventRegistration.removeEventListener
-
-qx.dom.getIframe=qx.dom.DomIframe.get
-
-qx.dom.getComputedPage=qx.dom.DomLocation.getPage
-qx.dom.getComputedClient=qx.dom.DomLocation.getClient
-qx.dom.getComputedScreen=qx.dom.DomLocation.getScreen
-
-qx.dom.getOffset=qx.dom.DomOffset.get
-qx.dom.getScroll=qx.dom.DomScroll.get
-qx.dom.scrollIntoView=qx.dom.DomScrollIntoView.scroll
-
-qx.dom.getComputedStyle=qx.dom.DomStyle.getStyle
-qx.dom.getComputedBorder=qx.dom.DomStyle.getBorder
-qx.dom.getComputedMargin=qx.dom.DomStyle.getMargin
-qx.dom.getComputedPadding=qx.dom.DomStyle.getPadding
-
-qx.dom.createStyleElement=qx.dom.DomStyleSheet.createElement
-qx.dom.addCssRule=qx.dom.DomStyleSheet.addRule
-qx.dom.removeCssRule=qx.dom.DomStyleSheet.removeRule
-qx.dom.removeAllCssRules=qx.dom.DomStyleSheet.removeAllRules
-
-qx.dom.getWindowInner=qx.dom.DomWindow.getInner
-qx.dom.getClientScroll=qx.dom.DomWindow.getScroll
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6/patches/03-const.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6/patches/03-const.dat
deleted file mode 100644 (file)
index ab9a842..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-qx.Const.NAMESPACE_=qx.constant.Net.NAMESPACE_
-qx.Const.REQUEST_STATE_=qx.constant.Net.STATE_
-qx.Const.PROTOCOL_=qx.constant.Net.PROTOCOL_
-qx.Const.URI_=qx.constant.Net.URI_
-qx.Const.METHOD_=qx.constant.Net.METHOD_
-qx.Const.CORE_=qx.constant.Core.
-qx.Const.NODE_=qx.constant.Node.
-qx.Const.BORDER_STYLE_=qx.renderer.border.Border.STYLE_
-qx.Const.FONT_STYLE_=qx.renderer.font.Font.STYLE_
-qx.Const.HTML_=qx.constant.Html.
-qx.Const.TYPEOF_=qx.constant.Type.
-qx.Const.IMAGE_BLANK=qx.manager.object.ImageManager.BLANK
-qx.Const.CURSOR_=qx.constant.Style.CURSOR_
-qx.Const.OVERFLOW_VALUE_=qx.constant.Style.OVERFLOW_
-qx.Const.MIMETYPE_=qx.constant.Mime.
-qx.Const.ORIENTATION_=qx.constant.Layout.ORIENTATION_
-qx.Const.ALIGN_=qx.constant.Layout.ALIGN_
-qx.Const.STATE_OVER=qx.ui.core.Widget.STATE_OVER
-qx.Const.STATE_FOCUSED=qx.ui.core.Widget.STATE_FOCUSED
-qx.Const.STATE_DISABLED=qx.ui.core.Widget.STATE_DISABLED
-qx.Const.STATE_CHECKED=qx.ui.form.Button.STATE_CHECKED
-qx.Const.STATE_PRESSED=qx.ui.form.Button.STATE_PRESSED
-qx.Const.STATE_ABANDONED=qx.ui.form.Button.STATE_ABANDONED
-qx.Const.STATE_SELECTED=qx.manager.selection.SelectionManager.STATE_SELECTED
-qx.Const.STATE_ANCHOR=qx.manager.selection.SelectionManager.STATE_ANCHOR
-qx.Const.STATE_LEAD=qx.manager.selection.SelectionManager.STATE_LEAD
-qx.Const.STATE_ACTIVE=qx.ui.window.Window.STATE_ACTIVE
-qx.Const.STATE_MAXIMIZED=qx.ui.window.Window.STATE_MAXIMIZED
-
-qx.Const.PROPERTY_CLASSNAME=qx.ui.core.Widget.PROPERTY_CLASSNAME
-qx.Const.PROPERTY_BORDERX=qx.ui.core.Widget.PROPERTY_BORDERX
-qx.Const.PROPERTY_BORDERY=qx.ui.core.Widget.PROPERTY_BORDERY
-qx.Const.PROPERTY_BORDERWIDTHX=qx.ui.core.Widget.PROPERTY_BORDERWIDTHX
-qx.Const.PROPERTY_BORDERWIDTHY=qx.ui.core.Widget.PROPERTY_BORDERWIDTHY
-qx.Const.PROPERTY_PARENT_PADDINGLEFT=qx.ui.core.Widget.PROPERTY_PARENT_PADDINGLEFT
-qx.Const.PROPERTY_PARENT_PADDINGRIGHT=qx.ui.core.Widget.PROPERTY_PARENT_PADDINGRIGHT
-qx.Const.PROPERTY_PARENT_PADDINGTOP=qx.ui.core.Widget.PROPERTY_PARENT_PADDINGTOP
-qx.Const.PROPERTY_PARENT_PADDINGBOTTOM=qx.ui.core.Widget.PROPERTY_PARENT_PADDINGBOTTOM
-
-qx.Const.PROPERTY_FILTER=qx.constant.Style.PROPERTY_FILTER
-qx.Const.PROPERTY_DISPLAY=qx.constant.Style.PROPERTY_DISPLAY
-qx.Const.PROPERTY_POSITION=qx.constant.Style.PROPERTY_POSITION
-qx.Const.PROPERTY_VISIBILITY=qx.constant.Style.PROPERTY_VISIBILITY
-qx.Const.PROPERTY_DISABLED=qx.constant.Style.PROPERTY_DISABLED
-qx.Const.PROPERTY_LINEHEIGHT=qx.constant.Style.PROPERTY_LINEHEIGHT
-qx.Const.PROPERTY_TEXTALIGN=qx.constant.Style.PROPERTY_TEXTALIGN
-qx.Const.PROPERTY_WHITESPACE=qx.constant.Style.PROPERTY_WHITESPACE
-qx.Const.PROPERTY_PADDING=qx.constant.Style.PROPERTY_PADDING
-qx.Const.PROPERTY_OVERFLOW_BOTH=qx.constant.Style.PROPERTY_OVERFLOW_BOTH
-qx.Const.PROPERTY_OVERFLOW_TEXT=qx.constant.Style.PROPERTY_OVERFLOW_TEXT
-qx.Const.PROPERTY_OVERFLOW_HORIZONTAL=qx.constant.Style.PROPERTY_OVERFLOW_HORIZONTAL
-qx.Const.PROPERTY_OVERFLOW_VERTICAL=qx.constant.Style.PROPERTY_OVERFLOW_VERTICAL
-
-# Should be the last one
-qx.Const.PROPERTY_=qx.OO.PROPERTY_
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6/patches/04-events.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6/patches/04-events.dat
deleted file mode 100644 (file)
index 7bdd26f..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-qx.Const.EVENT_TYPE_MOUSEOVER=qx.constant.Event.MOUSEOVER
-qx.Const.EVENT_TYPE_MOUSEMOVE=qx.constant.Event.MOUSEMOVE
-qx.Const.EVENT_TYPE_MOUSEOUT=qx.constant.Event.MOUSEOUT
-qx.Const.EVENT_TYPE_MOUSEDOWN=qx.constant.Event.MOUSEDOWN
-qx.Const.EVENT_TYPE_MOUSEUP=qx.constant.Event.MOUSEUP
-qx.Const.EVENT_TYPE_MOUSEWHEEL=qx.constant.Event.MOUSEWHEEL
-qx.Const.EVENT_TYPE_CLICK=qx.constant.Event.CLICK
-qx.Const.EVENT_TYPE_DBLCLICK=qx.constant.Event.DBLCLICK
-qx.Const.EVENT_TYPE_CONTEXTMENU=qx.constant.Event.CONTEXTMENU
-qx.Const.EVENT_TYPE_KEYDOWN=qx.constant.Event.KEYDOWN
-qx.Const.EVENT_TYPE_KEYPRESS=qx.constant.Event.KEYPRESS
-qx.Const.EVENT_TYPE_KEYUP=qx.constant.Event.KEYUP
-
-qx.Const.EVENT_TYPE_BLUR=qx.constant.Event.BLUR
-qx.Const.EVENT_TYPE_FOCUS=qx.constant.Event.FOCUS
-qx.Const.EVENT_TYPE_SELECT=qx.constant.Event.SELECT
-qx.Const.EVENT_TYPE_SCROLL=qx.constant.Event.SCROLL
-qx.Const.EVENT_TYPE_INPUT=qx.constant.Event.INPUT
-qx.Const.EVENT_TYPE_CHANGE=qx.constant.Event.CHANGE
-
-qx.Const.EVENT_TYPE_ERROR=qx.constant.Event.ERROR
-qx.Const.EVENT_TYPE_RESIZE=qx.constant.Event.RESIZE
-qx.Const.EVENT_TYPE_INTERVAL=qx.constant.Event.INTERVAL
-qx.Const.EVENT_TYPE_EXECUTE=qx.constant.Event.EXECUTE
-qx.Const.EVENT_TYPE_CREATE=qx.constant.Event.CREATE
-
-qx.Const.EVENT_TYPE_BEFOREAPPEAR=qx.constant.Event.BEFOREAPPEAR
-qx.Const.EVENT_TYPE_APPEAR=qx.constant.Event.APPEAR
-qx.Const.EVENT_TYPE_BEFOREDISAPPEAR=qx.constant.Event.BEFOREDISAPPEAR
-qx.Const.EVENT_TYPE_DISAPPEAR=qx.constant.Event.DISAPPEAR
-qx.Const.EVENT_TYPE_BEFOREINSERTDOM=qx.constant.Event.BEFOREINSERTDOM
-qx.Const.EVENT_TYPE_INSERTDOM=qx.constant.Event.INSERTDOM
-qx.Const.EVENT_TYPE_BEFOREREMOVEDOM=qx.constant.Event.BEFOREREMOVEDOM
-qx.Const.EVENT_TYPE_REMOVEDOM=qx.constant.Event.REMOVEDOM
-
-qx.Const.EVENT_TYPE_LOAD=qx.constant.Event.LOAD
-qx.Const.EVENT_TYPE_UNLOAD=qx.constant.Event.UNLOAD
-qx.Const.EVENT_TYPE_BEFOREUNLOAD=qx.constant.Event.BEFOREUNLOAD
-qx.Const.EVENT_TYPE_SUBMIT=qx.constant.Event.SUBMIT
-
-qx.Const.EVENT_TYPE_CREATED=qx.constant.Event.CREATED
-qx.Const.EVENT_TYPE_CONFIGURED=qx.constant.Event.CONFIGURED
-qx.Const.EVENT_TYPE_QUEUED=qx.constant.Event.QUEUED
-qx.Const.EVENT_TYPE_SENDING=qx.constant.Event.SENDING
-qx.Const.EVENT_TYPE_RECEIVING=qx.constant.Event.RECEIVING
-qx.Const.EVENT_TYPE_COMPLETED=qx.constant.Event.COMPLETED
-qx.Const.EVENT_TYPE_ABORTED=qx.constant.Event.ABORTED
-qx.Const.EVENT_TYPE_FAILED=qx.constant.Event.FAILED
-qx.Const.EVENT_TYPE_TIMEOUT=qx.constant.Event.TIMEOUT
-
-qx.Const.EVENT_TYPE_DRAGDROP=qx.constant.Event.DRAGDROP
-qx.Const.EVENT_TYPE_DRAGOVER=qx.constant.Event.DRAGOVER
-qx.Const.EVENT_TYPE_DRAGOUT=qx.constant.Event.DRAGOUT
-qx.Const.EVENT_TYPE_DRAGMOVE=qx.constant.Event.DRAGMOVE
-qx.Const.EVENT_TYPE_DRAGSTART=qx.constant.Event.DRAGSTART
-qx.Const.EVENT_TYPE_DRAGEND=qx.constant.Event.DRAGEND
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6/patches/05-util.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6/patches/05-util.dat
deleted file mode 100644 (file)
index d26a57a..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-\bQxUtil\.returnTrue\b = qx.util.Return.returnTrue
-\bQxUtil\.returnFalse\b = qx.util.Return.returnFalse
-\bQxUtil\.returnNull\b = qx.util.Return.returnNull
-\bQxUtil\.returnThis\b = qx.util.Return.returnThis
-\bQxUtil\.returnZero\b = qx.util.Return.returnZero
-\bQxUtil\.returnNegativeIndex\b = qx.util.Return.returnNegativeIndex
-
-\bQxUtil\.isValid\b = qx.util.Validation.isValid
-\bQxUtil\.isInvalid\b = qx.util.Validation.isInvalid
-\bQxUtil\.isValidNumber\b = qx.util.Validation.isValidNumber
-\bQxUtil\.isInvalidNumber\b = qx.util.Validation.isInvalidNumber
-\bQxUtil\.isValidString\b = qx.util.Validation.isValidString
-\bQxUtil\.isInvalidString\b = qx.util.Validation.isInvalidString
-\bQxUtil\.isValidArray\b = qx.util.Validation.isValidArray
-\bQxUtil\.isInvalidArray\b = qx.util.Validation.isInvalidArray
-\bQxUtil\.isValidObject\b = qx.util.Validation.isValidObject
-\bQxUtil\.isInvalidObject\b = qx.util.Validation.isInvalidObject
-\bQxUtil\.isValidNode\b = qx.util.Validation.isValidNode
-\bQxUtil\.isInvalidNode\b = qx.util.Validation.isInvalidNode
-\bQxUtil\.isValidElement\b = qx.util.Validation.isValidElement
-\bQxUtil\.isInvalidElement\b = qx.util.Validation.isInvalidElement
-\bQxUtil\.isValidFunction\b = qx.util.Validation.isValidFunction
-\bQxUtil\.isInvalidFunction\b = qx.util.Validation.isInvalidFunction
-\bQxUtil\.isValidBoolean\b = qx.util.Validation.isValidBoolean
-\bQxUtil\.isInvalidBoolean\b = qx.util.Validation.isInvalidBoolean
-\bQxUtil\.isValidStringOrNumber\b = qx.util.Validation.isValidStringOrNumber
-\bQxUtil\.isInvalidStringOrNumber\b = qx.util.Validation.isInvalidStringOrNumber
-
-\bQxUtil\._normalizeUmlautsRegExp\b = qx.util.Normalization._umlautsRegExp
-\bQxUtil\._normalizeUmlautsShortData\b = qx.util.Normalization._umlautsShortData
-\bQxUtil\._normalizeUmlautsShort\b = qx.util.Normalization._umlautsShort
-\bQxUtil\.normalizeUmlautsShort\b = qx.util.Normalization.umlautsShort
-\bQxUtil\._normalizeUmlautsLongData\b = qx.util.Normalization._umlautsLongData
-\bQxUtil\._normalizeUmlautsLong\b = qx.util.Normalization._umlautsLong
-\bQxUtil\.normalizeUmlautsLong\b = qx.util.Normalization.umlautsLong
-
-\bQxUtil\.isObjectEmpty\b = qx.lang.Object.isEmpty
-\bQxUtil\.isObjectMinLength\b = qx.lang.Object.hasMinLength
-\bQxUtil\.getObjectLength\b = qx.lang.Object.getLength
-\bQxUtil\.convertObjectKeysToArray\b = qx.lang.Object.getKeys
-\bQxUtil\.convertObjectKeysToString\b = qx.lang.Object.getKeysAsString
-\bQxUtil\.convertObjectValuesToArray\b = qx.lang.Object.getValues
-\bQxUtil\.convertArgumentsToArray\b = qx.lang.Array.fromArguments
-\bQxUtil\.convertShortHandToArray\b = qx.lang.Array.fromShortHand
-\bQxUtil\.mergeObjectWith\b = qx.lang.Object.mergeWith
-\bQxUtil\.mergeObjects\b = qx.lang.Object.merge
-\bQxUtil\.copyObject\b = qx.lang.Object.copy
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6/patches/06-main.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.6/patches/06-main.dat
deleted file mode 100644 (file)
index acbd2a6..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-window.application.main\s*\=\s*function\(\)[^\0]*?\{\s* = qx.core.Init.getInstance().defineMain(function() {\n
-
-\}\;[\n\s]*<\/script> = });</script>
-
-#this\.getClientWindow\(\)\.getClientDocument\(\) = qx.ui.core.ClientDocument.getInstance()
-
-#this\.add = qx.ui.core.ClientDocument.getInstance().add
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.7/patch.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/migration/0.7/patch.py
deleted file mode 100755 (executable)
index 885cafd..0000000
+++ /dev/null
@@ -1,381 +0,0 @@
-#!/usr/bin/env python
-
-import sys, os
-
-# reconfigure path to import modules from modules subfolder
-sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(sys.argv[0])), "../../modules"))
-
-import tree, compiler, comment
-
-
-
-
-
-
-def getAssignment(elem):
-  if elem.parent.type == "right" and elem.parent.parent.type == "assignment":
-    return elem.parent.parent
-
-  return None
-
-
-def getName(elem):
-  # find last identifier
-  last = elem.getLastChild(False, True)
-
-  if last.type == "identifier":
-    return last.get("name")
-
-
-def getMode(var, classname):
-  # find last identifier
-  last = var.getLastChild(False, True)
-  prev = last.getPreviousSibling(False, True)
-
-  if prev.type == "identifier":
-    mode = prev.get("name")
-
-    if mode == "Proto":
-      return "members"
-    elif mode == "Class":
-      return "statics"
-
-  combined = []
-  length = var.getChildrenLength(True)
-  pos = length - 1
-  for iden in var.children:
-    if iden.type == "identifier":
-      combined.append(iden.get("name"))
-
-      # if variable starts with the classname and has one unique identifier afterwards
-      if ".".join(combined) == classname and pos == 1:
-        return "statics"
-
-      pos -= 1
-
-  return None
-
-
-def getNameOfAssignment(elem):
-  name = None
-
-  if elem.hasChild("left"):
-    left = elem.getChild("left")
-
-    if left.hasChild("variable"):
-      name = getName(left.getChild("variable"))
-
-  return name
-
-
-def getModeOfAssignment(elem, classname):
-  mode = None
-
-  if elem.hasChild("left"):
-    left = elem.getChild("left")
-
-    if left.hasChild("variable"):
-      var = left.getChild("variable")
-      mode = getMode(var, classname)
-
-  return mode
-
-
-def getAndRemovePropertyName(definition):
-  for keyValue in definition.children:
-    if keyValue.type == "keyvalue" and keyValue.get("key") == "name":
-      name = keyValue.getChild("value").getChild("constant").get("value")
-      keyValue.parent.removeChild(keyValue)
-      return name
-
-  print " * Could not extract property name!"
-  return None
-
-
-def createPair(key, value, commentParent=None):
-  par = tree.Node("keyvalue")
-  sub = tree.Node("value")
-
-  par.set("key", key)
-  par.addChild(sub)
-  sub.addChild(value)
-
-  if commentParent and commentParent.hasChild("commentsBefore"):
-    par.addChild(commentParent.getChild("commentsBefore"))
-
-  return par
-
-
-def patch(id, node):
-  if not node.hasChildren():
-    return False
-
-  classDefine, className, classMap, settingsMap, propertiesMap, membersMap, staticsMap = createClassDefine(id)
-  errorCounter = 0
-  pos = 0
-
-  while node.hasChildren() and pos < len(node.children):
-    child = node.children[pos]
-    breakBefore = child.get("breakBefore")
-    pos += 1
-
-    # Add instance and static methods
-    if child.type == "assignment":
-      if child.hasChild("right"):
-        right = child.getChild("right")
-        elem = right.getFirstChild(True, True)
-
-        name = getNameOfAssignment(child)
-        mode = getModeOfAssignment(child, id)
-
-        if mode in [ "members", "statics" ]:
-          if mode == "members":
-            pair = createPair(name, elem, child)
-            
-            if breakBefore:
-              pair.set("breakBefore", True)
-              
-            membersMap.addChild(pair)
-
-          elif mode == "statics":
-            # Special Handling of old singleton definition
-            if name == "getInstance":
-              pair = createPair("singleton", createConstant("boolean", "true"))
-              pair.addChild(createBlockComment("singleton"))
-
-              if breakBefore:
-                pair.set("breakBefore", True)
-
-              classMap.addChild(pair, 1)
-              
-            else:
-              pair = createPair(name, elem, child)
-  
-              if breakBefore:
-                pair.set("breakBefore", True)
-  
-              staticsMap.addChild(pair)
-
-          node.removeChild(child)
-          pos -= 1
-
-    elif child.type == "call":
-      oper = child.getChild("operand")
-      var = oper.getChild("variable")
-
-      if var:
-        lastIdentifier = var.getLastChild(False, True)
-        if lastIdentifier.type == "identifier":
-          name = lastIdentifier.get("name")
-          params = child.getChild("params")
-
-          if name in [ "addProperty", "changeProperty", "addCachedProperty", "addFastProperty" ]:
-            definition = params.getFirstChild(False, True)
-
-            if definition.type == "map":
-              if lastIdentifier.get("name") == "addFastProperty":
-                definition.addChild(createPair("fast", createConstant("boolean", "true")))
-              elif lastIdentifier.get("name") == "addCachedProperty":
-                definition.addChild(createPair("cached", createConstant("boolean", "true")))
-
-              name = getAndRemovePropertyName(definition)
-              pair = createPair(name, definition, child)
-              
-              if breakBefore:
-                pair.set("breakBefore", True)
-                            
-              propertiesMap.addChild(pair)
-    
-              node.removeChild(child)
-              pos -= 1
-              
-          elif name == "setDefault":
-            nameNode = params.getChildByPosition(0, True)
-            valueNode = params.getChildByPosition(1, True)
-            
-            name = nameNode.get("value")
-            
-            pair = createPair(name, valueNode, child)
-            
-            if breakBefore:
-              pair.set("breakBefore", True)
-
-            settingsMap.addChild(pair)
-
-            node.removeChild(child)
-            pos -= 1            
-
-          elif name == "defineClass":
-            if params.getFirstChild(False, True).get("value") != id:
-              print "    - The class seems to have a wrong definition!"
-              
-            # 3 params = name, superclass, constructor
-            # 2 params = name, map
-            # 1 param = name
-            
-            # Move class comment
-            if child.hasChild("commentsBefore"):
-              classDefine.addChild(child.getChild("commentsBefore"))
-
-            childrenLength = params.getChildrenLength(True)
-
-            if childrenLength == 2:
-              statics_new = params.getChildByPosition(1, True, True)
-
-              while statics_new.hasChildren():
-                staticsMap.addChild(statics_new.getFirstChild())
-
-              node.removeChild(child)
-              pos -= 1
-
-            elif childrenLength == 3:
-              ext = params.getChildByPosition(1, True, True)
-              construct = params.getChildByPosition(2, True, True)
-
-              extendPair = createPair("extend", ext)
-              constructPair = createPair("construct", construct)
-              
-              extendPair.addChild(createBlockComment("superclass"))
-              constructPair.addChild(createBlockComment("constructor"))              
-              
-              classMap.addChild(extendPair, 0)
-              classMap.addChild(constructPair, 1)
-
-              node.removeChild(child)
-              pos -= 1
-              
-          elif name == "define":
-            print "      - Class is already up-to-date."
-            return False
-
-    # Post-Check
-    if child.parent == node:
-      # print "      - Could not move element %s at line %s" % (child.type, child.get("line"))
-      errorCounter += 1
-
-
-  # Remove empty maps
-  if settingsMap.getChildrenLength() == 0:
-    keyvalue = settingsMap.parent.parent
-    classMap.removeChild(keyvalue)
-      
-  if propertiesMap.getChildrenLength() == 0:
-    keyvalue = propertiesMap.parent.parent
-    classMap.removeChild(keyvalue)
-
-  if membersMap.getChildrenLength() == 0:
-    keyvalue = membersMap.parent.parent
-    classMap.removeChild(keyvalue)
-
-  if staticsMap.getChildrenLength() == 0:
-    keyvalue = staticsMap.parent.parent
-    classMap.removeChild(keyvalue)
-
-  # Add new class definition
-  node.addChild(classDefine, 0)
-  
-  
-  
-  
-  if errorCounter > 0:
-    print "      - Could not convert %s elements." % errorCounter
-
-  # Debug
-  # print compiler.compile(node)
-  # print tree.nodeToXmlString(node)
-
-  # Return Modification
-  return True
-
-
-def createConstant(type, value):
-  constant = tree.Node("constant")
-  constant.set("constantType", type)
-  constant.set("value", value)
-
-  if type == "string":
-    constant.set("detail", "doublequotes")
-
-  return constant
-
-
-
-def createVariable(l):
-  var = tree.Node("variable")
-
-  for name in l:
-    iden = tree.Node("identifier")
-    iden.set("name", name)
-    var.addChild(iden)
-
-  return var
-
-def createClassDefineCore(id):
-  call = tree.Node("call")
-  oper = tree.Node("operand")
-  para = tree.Node("params")
-  con = createConstant("string", id)
-  args = tree.Node("map")
-
-  call.addChild(oper)
-  call.addChild(para)
-
-  oper.addChild(createVariable(["qx", "Clazz", "define"]))
-
-  para.addChild(con)
-  para.addChild(args)
-
-  return call, con, args
-
-
-def createClassDefine(id):
-  classDefine, className, classMap = createClassDefineCore(id)
-
-  settingsMap = tree.Node("map")
-  settingsPair = createPair("settings", settingsMap)
-
-  propertiesMap = tree.Node("map")
-  propertiesPair = createPair("properties", propertiesMap)
-
-  membersMap = tree.Node("map")
-  membersPair = createPair("members", membersMap)
-
-  staticsMap = tree.Node("map")
-  staticsPair = createPair("statics", staticsMap)
-  
-  settingsPair.addChild(createBlockComment("settings"))
-  propertiesPair.addChild(createBlockComment("properties"))
-  membersPair.addChild(createBlockComment("members"))
-  staticsPair.addChild(createBlockComment("statics"))
-
-  classMap.addChild(settingsPair)
-  classMap.addChild(propertiesPair)
-  classMap.addChild(membersPair)
-  classMap.addChild(staticsPair)
-
-  return classDefine, className, classMap, settingsMap, propertiesMap, membersMap, staticsMap
-
-
-def createBlockComment(txt):
-  l = "*****************************************************************************"
-  
-  s = ""
-  s += "/*\n"
-  s += "%s\n" % l
-  s += "**** %s %s\n" % (txt.upper(), "*" * (len(l) - len(txt) - 6))
-  s += "%s\n" % l
-  s += "*/"
-  
-  bef = tree.Node("commentsBefore")
-  com = tree.Node("comment")
-  
-  bef.addChild(com)
-  
-  com.set("multiline", True)
-  com.set("connection", "before")
-  com.set("text", s)
-  com.set("detail", comment.getFormat(s))
-  
-  return bef
-
-  
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/ElementPath.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/ElementPath.py
deleted file mode 100644 (file)
index 558b560..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-#
-# ElementTree
-# $Id: ElementPath.py 1858 2004-06-17 21:31:41Z Fredrik $
-#
-# limited xpath support for element trees
-#
-# history:
-# 2003-05-23 fl   created
-# 2003-05-28 fl   added support for // etc
-# 2003-08-27 fl   fixed parsing of periods in element names
-#
-# Copyright (c) 2003-2004 by Fredrik Lundh.  All rights reserved.
-#
-# fredrik@pythonware.com
-# http://www.pythonware.com
-#
-# --------------------------------------------------------------------
-# The ElementTree toolkit is
-#
-# Copyright (c) 1999-2004 by Fredrik Lundh
-#
-# By obtaining, using, and/or copying this software and/or its
-# associated documentation, you agree that you have read, understood,
-# and will comply with the following terms and conditions:
-#
-# Permission to use, copy, modify, and distribute this software and
-# its associated documentation for any purpose and without fee is
-# hereby granted, provided that the above copyright notice appears in
-# all copies, and that both that copyright notice and this permission
-# notice appear in supporting documentation, and that the name of
-# Secret Labs AB or the author not be used in advertising or publicity
-# pertaining to distribution of the software without specific, written
-# prior permission.
-#
-# SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD
-# TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANT-
-# ABILITY AND FITNESS.  IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR
-# BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
-# DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-# WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
-# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
-# OF THIS SOFTWARE.
-# --------------------------------------------------------------------
-
-##
-# Implementation module for XPath support.  There's usually no reason
-# to import this module directly; the <b>ElementTree</b> does this for
-# you, if needed.
-##
-
-import re
-
-xpath_tokenizer = re.compile(
-    "(::|\.\.|\(\)|[/.*:\[\]\(\)@=])|((?:\{[^}]+\})?[^/:\[\]\(\)@=\s]+)|\s+"
-    ).findall
-
-class xpath_descendant_or_self:
-    pass
-
-##
-# Wrapper for a compiled XPath.
-
-class Path:
-
-    ##
-    # Create an Path instance from an XPath expression.
-
-    def __init__(self, path):
-        tokens = xpath_tokenizer(path)
-        # the current version supports 'path/path'-style expressions only
-        self.path = []
-        self.tag = None
-        if tokens and tokens[0][0] == "/":
-            raise SyntaxError("cannot use absolute path on element")
-        while tokens:
-            op, tag = tokens.pop(0)
-            if tag or op == "*":
-                self.path.append(tag or op)
-            elif op == ".":
-                pass
-            elif op == "/":
-                self.path.append(xpath_descendant_or_self())
-                continue
-            else:
-                raise SyntaxError("unsupported path syntax (%s)" % op)
-            if tokens:
-                op, tag = tokens.pop(0)
-                if op != "/":
-                    raise SyntaxError(
-                        "expected path separator (%s)" % (op or tag)
-                        )
-        if self.path and isinstance(self.path[-1], xpath_descendant_or_self):
-            raise SyntaxError("path cannot end with //")
-        if len(self.path) == 1 and isinstance(self.path[0], type("")):
-            self.tag = self.path[0]
-
-    ##
-    # Find first matching object.
-
-    def find(self, element):
-        tag = self.tag
-        if tag is None:
-            nodeset = self.findall(element)
-            if not nodeset:
-                return None
-            return nodeset[0]
-        for elem in element:
-            if elem.tag == tag:
-                return elem
-        return None
-
-    ##
-    # Find text for first matching object.
-
-    def findtext(self, element, default=None):
-        tag = self.tag
-        if tag is None:
-            nodeset = self.findall(element)
-            if not nodeset:
-                return default
-            return nodeset[0].text or ""
-        for elem in element:
-            if elem.tag == tag:
-                return elem.text or ""
-        return default
-
-    ##
-    # Find all matching objects.
-
-    def findall(self, element):
-        nodeset = [element]
-        index = 0
-        while 1:
-            try:
-                path = self.path[index]
-                index = index + 1
-            except IndexError:
-                return nodeset
-            set = []
-            if isinstance(path, xpath_descendant_or_self):
-                try:
-                    tag = self.path[index]
-                    if not isinstance(tag, type("")):
-                        tag = None
-                    else:
-                        index = index + 1
-                except IndexError:
-                    tag = None # invalid path
-                for node in nodeset:
-                    new = list(node.getiterator(tag))
-                    if new and new[0] is node:
-                        set.extend(new[1:])
-                    else:
-                        set.extend(new)
-            else:
-                for node in nodeset:
-                    for node in node:
-                        if path == "*" or node.tag == path:
-                            set.append(node)
-            if not set:
-                return []
-            nodeset = set
-
-_cache = {}
-
-##
-# (Internal) Compile path.
-
-def _compile(path):
-    p = _cache.get(path)
-    if p is not None:
-        return p
-    p = Path(path)
-    if len(_cache) >= 100:
-        _cache.clear()
-    _cache[path] = p
-    return p
-
-##
-# Find first matching object.
-
-def find(element, path):
-    return _compile(path).find(element)
-
-##
-# Find text for first matching object.
-
-def findtext(element, path, default=None):
-    return _compile(path).findtext(element, default)
-
-##
-# Find all matching objects.
-
-def findall(element, path):
-    return _compile(path).findall(element)
-
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/ElementTree.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/ElementTree.py
deleted file mode 100644 (file)
index 98d0208..0000000
+++ /dev/null
@@ -1,1254 +0,0 @@
-#
-# ElementTree
-# $Id: ElementTree.py 2326 2005-03-17 07:45:21Z fredrik $
-#
-# light-weight XML support for Python 1.5.2 and later.
-#
-# history:
-# 2001-10-20 fl   created (from various sources)
-# 2001-11-01 fl   return root from parse method
-# 2002-02-16 fl   sort attributes in lexical order
-# 2002-04-06 fl   TreeBuilder refactoring, added PythonDoc markup
-# 2002-05-01 fl   finished TreeBuilder refactoring
-# 2002-07-14 fl   added basic namespace support to ElementTree.write
-# 2002-07-25 fl   added QName attribute support
-# 2002-10-20 fl   fixed encoding in write
-# 2002-11-24 fl   changed default encoding to ascii; fixed attribute encoding
-# 2002-11-27 fl   accept file objects or file names for parse/write
-# 2002-12-04 fl   moved XMLTreeBuilder back to this module
-# 2003-01-11 fl   fixed entity encoding glitch for us-ascii
-# 2003-02-13 fl   added XML literal factory
-# 2003-02-21 fl   added ProcessingInstruction/PI factory
-# 2003-05-11 fl   added tostring/fromstring helpers
-# 2003-05-26 fl   added ElementPath support
-# 2003-07-05 fl   added makeelement factory method
-# 2003-07-28 fl   added more well-known namespace prefixes
-# 2003-08-15 fl   fixed typo in ElementTree.findtext (Thomas Dartsch)
-# 2003-09-04 fl   fall back on emulator if ElementPath is not installed
-# 2003-10-31 fl   markup updates
-# 2003-11-15 fl   fixed nested namespace bug
-# 2004-03-28 fl   added XMLID helper
-# 2004-06-02 fl   added default support to findtext
-# 2004-06-08 fl   fixed encoding of non-ascii element/attribute names
-# 2004-08-23 fl   take advantage of post-2.1 expat features
-# 2005-02-01 fl   added iterparse implementation
-# 2005-03-02 fl   fixed iterparse support for pre-2.2 versions
-#
-# Copyright (c) 1999-2005 by Fredrik Lundh.  All rights reserved.
-#
-# fredrik@pythonware.com
-# http://www.pythonware.com
-#
-# --------------------------------------------------------------------
-# The ElementTree toolkit is
-#
-# Copyright (c) 1999-2005 by Fredrik Lundh
-#
-# By obtaining, using, and/or copying this software and/or its
-# associated documentation, you agree that you have read, understood,
-# and will comply with the following terms and conditions:
-#
-# Permission to use, copy, modify, and distribute this software and
-# its associated documentation for any purpose and without fee is
-# hereby granted, provided that the above copyright notice appears in
-# all copies, and that both that copyright notice and this permission
-# notice appear in supporting documentation, and that the name of
-# Secret Labs AB or the author not be used in advertising or publicity
-# pertaining to distribution of the software without specific, written
-# prior permission.
-#
-# SECRET LABS AB AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD
-# TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANT-
-# ABILITY AND FITNESS.  IN NO EVENT SHALL SECRET LABS AB OR THE AUTHOR
-# BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
-# DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-# WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
-# ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
-# OF THIS SOFTWARE.
-# --------------------------------------------------------------------
-
-__all__ = [
-    # public symbols
-    "Comment",
-    "dump",
-    "Element", "ElementTree",
-    "fromstring",
-    "iselement", "iterparse",
-    "parse",
-    "PI", "ProcessingInstruction",
-    "QName",
-    "SubElement",
-    "tostring",
-    "TreeBuilder",
-    "VERSION", "XML",
-    "XMLTreeBuilder",
-    ]
-
-##
-# The <b>Element</b> type is a flexible container object, designed to
-# store hierarchical data structures in memory. The type can be
-# described as a cross between a list and a dictionary.
-# <p>
-# Each element has a number of properties associated with it:
-# <ul>
-# <li>a <i>tag</i>. This is a string identifying what kind of data
-# this element represents (the element type, in other words).</li>
-# <li>a number of <i>attributes</i>, stored in a Python dictionary.</li>
-# <li>a <i>text</i> string.</li>
-# <li>an optional <i>tail</i> string.</li>
-# <li>a number of <i>child elements</i>, stored in a Python sequence</li>
-# </ul>
-#
-# To create an element instance, use the {@link #Element} or {@link
-# #SubElement} factory functions.
-# <p>
-# The {@link #ElementTree} class can be used to wrap an element
-# structure, and convert it from and to XML.
-##
-
-import string, sys, re
-
-class _SimpleElementPath:
-    # emulate pre-1.2 find/findtext/findall behaviour
-    def find(self, element, tag):
-        for elem in element:
-            if elem.tag == tag:
-                return elem
-        return None
-    def findtext(self, element, tag, default=None):
-        for elem in element:
-            if elem.tag == tag:
-                return elem.text or ""
-        return default
-    def findall(self, element, tag):
-        if tag[:3] == ".//":
-            return element.getiterator(tag[3:])
-        result = []
-        for elem in element:
-            if elem.tag == tag:
-                result.append(elem)
-        return result
-
-try:
-    import ElementPath
-except ImportError:
-    # FIXME: issue warning in this case?
-    ElementPath = _SimpleElementPath()
-
-# TODO: add support for custom namespace resolvers/default namespaces
-# TODO: add improved support for incremental parsing
-
-VERSION = "1.2.6"
-
-##
-# Internal element class.  This class defines the Element interface,
-# and provides a reference implementation of this interface.
-# <p>
-# You should not create instances of this class directly.  Use the
-# appropriate factory functions instead, such as {@link #Element}
-# and {@link #SubElement}.
-#
-# @see Element
-# @see SubElement
-# @see Comment
-# @see ProcessingInstruction
-
-class _ElementInterface:
-    # <tag attrib>text<child/>...</tag>tail
-
-    ##
-    # (Attribute) Element tag.
-
-    tag = None
-
-    ##
-    # (Attribute) Element attribute dictionary.  Where possible, use
-    # {@link #_ElementInterface.get},
-    # {@link #_ElementInterface.set},
-    # {@link #_ElementInterface.keys}, and
-    # {@link #_ElementInterface.items} to access
-    # element attributes.
-
-    attrib = None
-
-    ##
-    # (Attribute) Text before first subelement.  This is either a
-    # string or the value None, if there was no text.
-
-    text = None
-
-    ##
-    # (Attribute) Text after this element's end tag, but before the
-    # next sibling element's start tag.  This is either a string or
-    # the value None, if there was no text.
-
-    tail = None # text after end tag, if any
-
-    def __init__(self, tag, attrib):
-        self.tag = tag
-        self.attrib = attrib
-        self._children = []
-
-    def __repr__(self):
-        return "<Element %s at %x>" % (self.tag, id(self))
-
-    ##
-    # Creates a new element object of the same type as this element.
-    #
-    # @param tag Element tag.
-    # @param attrib Element attributes, given as a dictionary.
-    # @return A new element instance.
-
-    def makeelement(self, tag, attrib):
-        return Element(tag, attrib)
-
-    ##
-    # Returns the number of subelements.
-    #
-    # @return The number of subelements.
-
-    def __len__(self):
-        return len(self._children)
-
-    ##
-    # Returns the given subelement.
-    #
-    # @param index What subelement to return.
-    # @return The given subelement.
-    # @exception IndexError If the given element does not exist.
-
-    def __getitem__(self, index):
-        return self._children[index]
-
-    ##
-    # Replaces the given subelement.
-    #
-    # @param index What subelement to replace.
-    # @param element The new element value.
-    # @exception IndexError If the given element does not exist.
-    # @exception AssertionError If element is not a valid object.
-
-    def __setitem__(self, index, element):
-        assert iselement(element)
-        self._children[index] = element
-
-    ##
-    # Deletes the given subelement.
-    #
-    # @param index What subelement to delete.
-    # @exception IndexError If the given element does not exist.
-
-    def __delitem__(self, index):
-        del self._children[index]
-
-    ##
-    # Returns a list containing subelements in the given range.
-    #
-    # @param start The first subelement to return.
-    # @param stop The first subelement that shouldn't be returned.
-    # @return A sequence object containing subelements.
-
-    def __getslice__(self, start, stop):
-        return self._children[start:stop]
-
-    ##
-    # Replaces a number of subelements with elements from a sequence.
-    #
-    # @param start The first subelement to replace.
-    # @param stop The first subelement that shouldn't be replaced.
-    # @param elements A sequence object with zero or more elements.
-    # @exception AssertionError If a sequence member is not a valid object.
-
-    def __setslice__(self, start, stop, elements):
-        for element in elements:
-            assert iselement(element)
-        self._children[start:stop] = list(elements)
-
-    ##
-    # Deletes a number of subelements.
-    #
-    # @param start The first subelement to delete.
-    # @param stop The first subelement to leave in there.
-
-    def __delslice__(self, start, stop):
-        del self._children[start:stop]
-
-    ##
-    # Adds a subelement to the end of this element.
-    #
-    # @param element The element to add.
-    # @exception AssertionError If a sequence member is not a valid object.
-
-    def append(self, element):
-        assert iselement(element)
-        self._children.append(element)
-
-    ##
-    # Inserts a subelement at the given position in this element.
-    #
-    # @param index Where to insert the new subelement.
-    # @exception AssertionError If the element is not a valid object.
-
-    def insert(self, index, element):
-        assert iselement(element)
-        self._children.insert(index, element)
-
-    ##
-    # Removes a matching subelement.  Unlike the <b>find</b> methods,
-    # this method compares elements based on identity, not on tag
-    # value or contents.
-    #
-    # @param element What element to remove.
-    # @exception ValueError If a matching element could not be found.
-    # @exception AssertionError If the element is not a valid object.
-
-    def remove(self, element):
-        assert iselement(element)
-        self._children.remove(element)
-
-    ##
-    # Returns all subelements.  The elements are returned in document
-    # order.
-    #
-    # @return A list of subelements.
-    # @defreturn list of Element instances
-
-    def getchildren(self):
-        return self._children
-
-    ##
-    # Finds the first matching subelement, by tag name or path.
-    #
-    # @param path What element to look for.
-    # @return The first matching element, or None if no element was found.
-    # @defreturn Element or None
-
-    def find(self, path):
-        return ElementPath.find(self, path)
-
-    ##
-    # Finds text for the first matching subelement, by tag name or path.
-    #
-    # @param path What element to look for.
-    # @param default What to return if the element was not found.
-    # @return The text content of the first matching element, or the
-    #     default value no element was found.  Note that if the element
-    #     has is found, but has no text content, this method returns an
-    #     empty string.
-    # @defreturn string
-
-    def findtext(self, path, default=None):
-        return ElementPath.findtext(self, path, default)
-
-    ##
-    # Finds all matching subelements, by tag name or path.
-    #
-    # @param path What element to look for.
-    # @return A list or iterator containing all matching elements,
-    #    in document order.
-    # @defreturn list of Element instances
-
-    def findall(self, path):
-        return ElementPath.findall(self, path)
-
-    ##
-    # Resets an element.  This function removes all subelements, clears
-    # all attributes, and sets the text and tail attributes to None.
-
-    def clear(self):
-        self.attrib.clear()
-        self._children = []
-        self.text = self.tail = None
-
-    ##
-    # Gets an element attribute.
-    #
-    # @param key What attribute to look for.
-    # @param default What to return if the attribute was not found.
-    # @return The attribute value, or the default value, if the
-    #     attribute was not found.
-    # @defreturn string or None
-
-    def get(self, key, default=None):
-        return self.attrib.get(key, default)
-
-    ##
-    # Sets an element attribute.
-    #
-    # @param key What attribute to set.
-    # @param value The attribute value.
-
-    def set(self, key, value):
-        self.attrib[key] = value
-
-    ##
-    # Gets a list of attribute names.  The names are returned in an
-    # arbitrary order (just like for an ordinary Python dictionary).
-    #
-    # @return A list of element attribute names.
-    # @defreturn list of strings
-
-    def keys(self):
-        return self.attrib.keys()
-
-    ##
-    # Gets element attributes, as a sequence.  The attributes are
-    # returned in an arbitrary order.
-    #
-    # @return A list of (name, value) tuples for all attributes.
-    # @defreturn list of (string, string) tuples
-
-    def items(self):
-        return self.attrib.items()
-
-    ##
-    # Creates a tree iterator.  The iterator loops over this element
-    # and all subelements, in document order, and returns all elements
-    # with a matching tag.
-    # <p>
-    # If the tree structure is modified during iteration, the result
-    # is undefined.
-    #
-    # @param tag What tags to look for (default is to return all elements).
-    # @return A list or iterator containing all the matching elements.
-    # @defreturn list or iterator
-
-    def getiterator(self, tag=None):
-        nodes = []
-        if tag == "*":
-            tag = None
-        if tag is None or self.tag == tag:
-            nodes.append(self)
-        for node in self._children:
-            nodes.extend(node.getiterator(tag))
-        return nodes
-
-# compatibility
-_Element = _ElementInterface
-
-##
-# Element factory.  This function returns an object implementing the
-# standard Element interface.  The exact class or type of that object
-# is implementation dependent, but it will always be compatible with
-# the {@link #_ElementInterface} class in this module.
-# <p>
-# The element name, attribute names, and attribute values can be
-# either 8-bit ASCII strings or Unicode strings.
-#
-# @param tag The element name.
-# @param attrib An optional dictionary, containing element attributes.
-# @param **extra Additional attributes, given as keyword arguments.
-# @return An element instance.
-# @defreturn Element
-
-def Element(tag, attrib={}, **extra):
-    attrib = attrib.copy()
-    attrib.update(extra)
-    return _ElementInterface(tag, attrib)
-
-##
-# Subelement factory.  This function creates an element instance, and
-# appends it to an existing element.
-# <p>
-# The element name, attribute names, and attribute values can be
-# either 8-bit ASCII strings or Unicode strings.
-#
-# @param parent The parent element.
-# @param tag The subelement name.
-# @param attrib An optional dictionary, containing element attributes.
-# @param **extra Additional attributes, given as keyword arguments.
-# @return An element instance.
-# @defreturn Element
-
-def SubElement(parent, tag, attrib={}, **extra):
-    attrib = attrib.copy()
-    attrib.update(extra)
-    element = parent.makeelement(tag, attrib)
-    parent.append(element)
-    return element
-
-##
-# Comment element factory.  This factory function creates a special
-# element that will be serialized as an XML comment.
-# <p>
-# The comment string can be either an 8-bit ASCII string or a Unicode
-# string.
-#
-# @param text A string containing the comment string.
-# @return An element instance, representing a comment.
-# @defreturn Element
-
-def Comment(text=None):
-    element = Element(Comment)
-    element.text = text
-    return element
-
-##
-# PI element factory.  This factory function creates a special element
-# that will be serialized as an XML processing instruction.
-#
-# @param target A string containing the PI target.
-# @param text A string containing the PI contents, if any.
-# @return An element instance, representing a PI.
-# @defreturn Element
-
-def ProcessingInstruction(target, text=None):
-    element = Element(ProcessingInstruction)
-    element.text = target
-    if text:
-        element.text = element.text + " " + text
-    return element
-
-PI = ProcessingInstruction
-
-##
-# QName wrapper.  This can be used to wrap a QName attribute value, in
-# order to get proper namespace handling on output.
-#
-# @param text A string containing the QName value, in the form {uri}local,
-#     or, if the tag argument is given, the URI part of a QName.
-# @param tag Optional tag.  If given, the first argument is interpreted as
-#     an URI, and this argument is interpreted as a local name.
-# @return An opaque object, representing the QName.
-
-class QName:
-    def __init__(self, text_or_uri, tag=None):
-        if tag:
-            text_or_uri = "{%s}%s" % (text_or_uri, tag)
-        self.text = text_or_uri
-    def __str__(self):
-        return self.text
-    def __hash__(self):
-        return hash(self.text)
-    def __cmp__(self, other):
-        if isinstance(other, QName):
-            return cmp(self.text, other.text)
-        return cmp(self.text, other)
-
-##
-# ElementTree wrapper class.  This class represents an entire element
-# hierarchy, and adds some extra support for serialization to and from
-# standard XML.
-#
-# @param element Optional root element.
-# @keyparam file Optional file handle or name.  If given, the
-#     tree is initialized with the contents of this XML file.
-
-class ElementTree:
-
-    def __init__(self, element=None, file=None):
-        assert element is None or iselement(element)
-        self._root = element # first node
-        if file:
-            self.parse(file)
-
-    ##
-    # Gets the root element for this tree.
-    #
-    # @return An element instance.
-    # @defreturn Element
-
-    def getroot(self):
-        return self._root
-
-    ##
-    # Replaces the root element for this tree.  This discards the
-    # current contents of the tree, and replaces it with the given
-    # element.  Use with care.
-    #
-    # @param element An element instance.
-
-    def _setroot(self, element):
-        assert iselement(element)
-        self._root = element
-
-    ##
-    # Loads an external XML document into this element tree.
-    #
-    # @param source A file name or file object.
-    # @param parser An optional parser instance.  If not given, the
-    #     standard {@link XMLTreeBuilder} parser is used.
-    # @return The document root element.
-    # @defreturn Element
-
-    def parse(self, source, parser=None):
-        if not hasattr(source, "read"):
-            source = open(source, "rb")
-        if not parser:
-            parser = XMLTreeBuilder()
-        while 1:
-            data = source.read(32768)
-            if not data:
-                break
-            parser.feed(data)
-        self._root = parser.close()
-        return self._root
-
-    ##
-    # Creates a tree iterator for the root element.  The iterator loops
-    # over all elements in this tree, in document order.
-    #
-    # @param tag What tags to look for (default is to return all elements)
-    # @return An iterator.
-    # @defreturn iterator
-
-    def getiterator(self, tag=None):
-        assert self._root is not None
-        return self._root.getiterator(tag)
-
-    ##
-    # Finds the first toplevel element with given tag.
-    # Same as getroot().find(path).
-    #
-    # @param path What element to look for.
-    # @return The first matching element, or None if no element was found.
-    # @defreturn Element or None
-
-    def find(self, path):
-        assert self._root is not None
-        if path[:1] == "/":
-            path = "." + path
-        return self._root.find(path)
-
-    ##
-    # Finds the element text for the first toplevel element with given
-    # tag.  Same as getroot().findtext(path).
-    #
-    # @param path What toplevel element to look for.
-    # @param default What to return if the element was not found.
-    # @return The text content of the first matching element, or the
-    #     default value no element was found.  Note that if the element
-    #     has is found, but has no text content, this method returns an
-    #     empty string.
-    # @defreturn string
-
-    def findtext(self, path, default=None):
-        assert self._root is not None
-        if path[:1] == "/":
-            path = "." + path
-        return self._root.findtext(path, default)
-
-    ##
-    # Finds all toplevel elements with the given tag.
-    # Same as getroot().findall(path).
-    #
-    # @param path What element to look for.
-    # @return A list or iterator containing all matching elements,
-    #    in document order.
-    # @defreturn list of Element instances
-
-    def findall(self, path):
-        assert self._root is not None
-        if path[:1] == "/":
-            path = "." + path
-        return self._root.findall(path)
-
-    ##
-    # Writes the element tree to a file, as XML.
-    #
-    # @param file A file name, or a file object opened for writing.
-    # @param encoding Optional output encoding (default is US-ASCII).
-
-    def write(self, file, encoding="us-ascii"):
-        assert self._root is not None
-        if not hasattr(file, "write"):
-            file = open(file, "wb")
-        if not encoding:
-            encoding = "us-ascii"
-        elif encoding != "utf-8" and encoding != "us-ascii":
-            file.write("<?xml version='1.0' encoding='%s'?>\n" % encoding)
-        self._write(file, self._root, encoding, {})
-
-    def _write(self, file, node, encoding, namespaces):
-        # write XML to file
-        tag = node.tag
-        if tag is Comment:
-            file.write("<!-- %s -->" % _escape_cdata(node.text, encoding))
-        elif tag is ProcessingInstruction:
-            file.write("<?%s?>" % _escape_cdata(node.text, encoding))
-        else:
-            items = node.items()
-            xmlns_items = [] # new namespaces in this scope
-            try:
-                if isinstance(tag, QName) or tag[:1] == "{":
-                    tag, xmlns = fixtag(tag, namespaces)
-                    if xmlns: xmlns_items.append(xmlns)
-            except TypeError:
-                _raise_serialization_error(tag)
-            file.write("<" + _encode(tag, encoding))
-            if items or xmlns_items:
-                items.sort() # lexical order
-                for k, v in items:
-                    try:
-                        if isinstance(k, QName) or k[:1] == "{":
-                            k, xmlns = fixtag(k, namespaces)
-                            if xmlns: xmlns_items.append(xmlns)
-                    except TypeError:
-                        _raise_serialization_error(k)
-                    try:
-                        if isinstance(v, QName):
-                            v, xmlns = fixtag(v, namespaces)
-                            if xmlns: xmlns_items.append(xmlns)
-                    except TypeError:
-                        _raise_serialization_error(v)
-                    file.write(" %s=\"%s\"" % (_encode(k, encoding),
-                                               _escape_attrib(v, encoding)))
-                for k, v in xmlns_items:
-                    file.write(" %s=\"%s\"" % (_encode(k, encoding),
-                                               _escape_attrib(v, encoding)))
-            if node.text or len(node):
-                file.write(">")
-                if node.text:
-                    file.write(_escape_cdata(node.text, encoding))
-                for n in node:
-                    self._write(file, n, encoding, namespaces)
-                file.write("</" + _encode(tag, encoding) + ">")
-            else:
-                file.write(" />")
-            for k, v in xmlns_items:
-                del namespaces[v]
-        if node.tail:
-            file.write(_escape_cdata(node.tail, encoding))
-
-# --------------------------------------------------------------------
-# helpers
-
-##
-# Checks if an object appears to be a valid element object.
-#
-# @param An element instance.
-# @return A true value if this is an element object.
-# @defreturn flag
-
-def iselement(element):
-    # FIXME: not sure about this; might be a better idea to look
-    # for tag/attrib/text attributes
-    return isinstance(element, _ElementInterface) or hasattr(element, "tag")
-
-##
-# Writes an element tree or element structure to sys.stdout.  This
-# function should be used for debugging only.
-# <p>
-# The exact output format is implementation dependent.  In this
-# version, it's written as an ordinary XML file.
-#
-# @param elem An element tree or an individual element.
-
-def dump(elem):
-    # debugging
-    if not isinstance(elem, ElementTree):
-        elem = ElementTree(elem)
-    elem.write(sys.stdout)
-    tail = elem.getroot().tail
-    if not tail or tail[-1] != "\n":
-        sys.stdout.write("\n")
-
-def _encode(s, encoding):
-    try:
-        return s.encode(encoding)
-    except AttributeError:
-        return s # 1.5.2: assume the string uses the right encoding
-
-if sys.version[:3] == "1.5":
-    _escape = re.compile(r"[&<>\"\x80-\xff]+") # 1.5.2
-else:
-    _escape = re.compile(eval(r'u"[&<>\"\u0080-\uffff]+"'))
-
-_escape_map = {
-    "&": "&amp;",
-    "<": "&lt;",
-    ">": "&gt;",
-    '"': "&quot;",
-}
-
-_namespace_map = {
-    # "well-known" namespace prefixes
-    "http://www.w3.org/XML/1998/namespace": "xml",
-    "http://www.w3.org/1999/xhtml": "html",
-    "http://www.w3.org/1999/02/22-rdf-syntax-ns#": "rdf",
-    "http://schemas.xmlsoap.org/wsdl/": "wsdl",
-}
-
-def _raise_serialization_error(text):
-    raise TypeError(
-        "cannot serialize %r (type %s)" % (text, type(text).__name__)
-        )
-
-def _encode_entity(text, pattern=_escape):
-    # map reserved and non-ascii characters to numerical entities
-    def escape_entities(m, map=_escape_map):
-        out = []
-        append = out.append
-        for char in m.group():
-            text = map.get(char)
-            if text is None:
-                text = "&#%d;" % ord(char)
-            append(text)
-        return string.join(out, "")
-    try:
-        return _encode(pattern.sub(escape_entities, text), "ascii")
-    except TypeError:
-        _raise_serialization_error(text)
-
-#
-# the following functions assume an ascii-compatible encoding
-# (or "utf-16")
-
-def _escape_cdata(text, encoding=None, replace=string.replace):
-    # escape character data
-    try:
-        if encoding:
-            try:
-                text = _encode(text, encoding)
-            except UnicodeError:
-                return _encode_entity(text)
-        text = replace(text, "&", "&amp;")
-        text = replace(text, "<", "&lt;")
-        text = replace(text, ">", "&gt;")
-        return text
-    except (TypeError, AttributeError):
-        _raise_serialization_error(text)
-
-def _escape_attrib(text, encoding=None, replace=string.replace):
-    # escape attribute value
-    try:
-        if encoding:
-            try:
-                text = _encode(text, encoding)
-            except UnicodeError:
-                return _encode_entity(text)
-        text = replace(text, "&", "&amp;")
-        text = replace(text, "'", "&apos;") # FIXME: overkill
-        text = replace(text, "\"", "&quot;")
-        text = replace(text, "<", "&lt;")
-        text = replace(text, ">", "&gt;")
-        return text
-    except (TypeError, AttributeError):
-        _raise_serialization_error(text)
-
-def fixtag(tag, namespaces):
-    # given a decorated tag (of the form {uri}tag), return prefixed
-    # tag and namespace declaration, if any
-    if isinstance(tag, QName):
-        tag = tag.text
-    namespace_uri, tag = string.split(tag[1:], "}", 1)
-    prefix = namespaces.get(namespace_uri)
-    if prefix is None:
-        prefix = _namespace_map.get(namespace_uri)
-        if prefix is None:
-            prefix = "ns%d" % len(namespaces)
-        namespaces[namespace_uri] = prefix
-        if prefix == "xml":
-            xmlns = None
-        else:
-            xmlns = ("xmlns:%s" % prefix, namespace_uri)
-    else:
-        xmlns = None
-    return "%s:%s" % (prefix, tag), xmlns
-
-##
-# Parses an XML document into an element tree.
-#
-# @param source A filename or file object containing XML data.
-# @param parser An optional parser instance.  If not given, the
-#     standard {@link XMLTreeBuilder} parser is used.
-# @return An ElementTree instance
-
-def parse(source, parser=None):
-    tree = ElementTree()
-    tree.parse(source, parser)
-    return tree
-
-##
-# Parses an XML document into an element tree incrementally, and reports
-# what's going on to the user.
-#
-# @param source A filename or file object containing XML data.
-# @param events A list of events to report back.  If omitted, only "end"
-#     events are reported.
-# @return A (event, elem) iterator.
-
-class iterparse:
-
-    def __init__(self, source, events=None):
-        if not hasattr(source, "read"):
-            source = open(source, "rb")
-        self._file = source
-        self._events = []
-        self._index = 0
-        self.root = self._root = None
-        self._parser = XMLTreeBuilder()
-        # wire up the parser for event reporting
-        parser = self._parser._parser
-        append = self._events.append
-        if events is None:
-            events = ["end"]
-        for event in events:
-            if event == "start":
-                try:
-                    parser.ordered_attributes = 1
-                    parser.specified_attributes = 1
-                    def handler(tag, attrib_in, event=event, append=append,
-                                start=self._parser._start_list):
-                        append((event, start(tag, attrib_in)))
-                    parser.StartElementHandler = handler
-                except AttributeError:
-                    def handler(tag, attrib_in, event=event, append=append,
-                                start=self._parser._start):
-                        append((event, start(tag, attrib_in)))
-                    parser.StartElementHandler = handler
-            elif event == "end":
-                def handler(tag, event=event, append=append,
-                            end=self._parser._end):
-                    append((event, end(tag)))
-                parser.EndElementHandler = handler
-            elif event == "start-ns":
-                def handler(prefix, uri, event=event, append=append):
-                    try:
-                        uri = _encode(uri, "ascii")
-                    except UnicodeError:
-                        pass
-                    append((event, (prefix or "", uri)))
-                parser.StartNamespaceDeclHandler = handler
-            elif event == "end-ns":
-                def handler(prefix, event=event, append=append):
-                    append((event, None))
-                parser.EndNamespaceDeclHandler = handler
-
-    def next(self):
-        while 1:
-            try:
-                item = self._events[self._index]
-            except IndexError:
-                if self._parser is None:
-                    self.root = self._root
-                    try:
-                        raise StopIteration
-                    except NameError:
-                        raise IndexError
-                # load event buffer
-                del self._events[:]
-                self._index = 0
-                data = self._file.read(16384)
-                if data:
-                    self._parser.feed(data)
-                else:
-                    self._root = self._parser.close()
-                    self._parser = None
-            else:
-                self._index = self._index + 1
-                return item
-
-    try:
-        iter
-        def __iter__(self):
-            return self
-    except NameError:
-        def __getitem__(self, index):
-            return self.next()
-
-##
-# Parses an XML document from a string constant.  This function can
-# be used to embed "XML literals" in Python code.
-#
-# @param source A string containing XML data.
-# @return An Element instance.
-# @defreturn Element
-
-def XML(text):
-    parser = XMLTreeBuilder()
-    parser.feed(text)
-    return parser.close()
-
-##
-# Parses an XML document from a string constant, and also returns
-# a dictionary which maps from element id:s to elements.
-#
-# @param source A string containing XML data.
-# @return A tuple containing an Element instance and a dictionary.
-# @defreturn (Element, dictionary)
-
-def XMLID(text):
-    parser = XMLTreeBuilder()
-    parser.feed(text)
-    tree = parser.close()
-    ids = {}
-    for elem in tree.getiterator():
-        id = elem.get("id")
-        if id:
-            ids[id] = elem
-    return tree, ids
-
-##
-# Parses an XML document from a string constant.  Same as {@link #XML}.
-#
-# @def fromstring(text)
-# @param source A string containing XML data.
-# @return An Element instance.
-# @defreturn Element
-
-fromstring = XML
-
-##
-# Generates a string representation of an XML element, including all
-# subelements.
-#
-# @param element An Element instance.
-# @return An encoded string containing the XML data.
-# @defreturn string
-
-def tostring(element, encoding=None):
-    class dummy:
-        pass
-    data = []
-    file = dummy()
-    file.write = data.append
-    ElementTree(element).write(file, encoding)
-    return string.join(data, "")
-
-##
-# Generic element structure builder.  This builder converts a sequence
-# of {@link #TreeBuilder.start}, {@link #TreeBuilder.data}, and {@link
-# #TreeBuilder.end} method calls to a well-formed element structure.
-# <p>
-# You can use this class to build an element structure using a custom XML
-# parser, or a parser for some other XML-like format.
-#
-# @param element_factory Optional element factory.  This factory
-#    is called to create new Element instances, as necessary.
-
-class TreeBuilder:
-
-    def __init__(self, element_factory=None):
-        self._data = [] # data collector
-        self._elem = [] # element stack
-        self._last = None # last element
-        self._tail = None # true if we're after an end tag
-        if element_factory is None:
-            element_factory = _ElementInterface
-        self._factory = element_factory
-
-    ##
-    # Flushes the parser buffers, and returns the toplevel documen
-    # element.
-    #
-    # @return An Element instance.
-    # @defreturn Element
-
-    def close(self):
-        assert len(self._elem) == 0, "missing end tags"
-        assert self._last != None, "missing toplevel element"
-        return self._last
-
-    def _flush(self):
-        if self._data:
-            if self._last is not None:
-                text = string.join(self._data, "")
-                if self._tail:
-                    assert self._last.tail is None, "internal error (tail)"
-                    self._last.tail = text
-                else:
-                    assert self._last.text is None, "internal error (text)"
-                    self._last.text = text
-            self._data = []
-
-    ##
-    # Adds text to the current element.
-    #
-    # @param data A string.  This should be either an 8-bit string
-    #    containing ASCII text, or a Unicode string.
-
-    def data(self, data):
-        self._data.append(data)
-
-    ##
-    # Opens a new element.
-    #
-    # @param tag The element name.
-    # @param attrib A dictionary containing element attributes.
-    # @return The opened element.
-    # @defreturn Element
-
-    def start(self, tag, attrs):
-        self._flush()
-        self._last = elem = self._factory(tag, attrs)
-        if self._elem:
-            self._elem[-1].append(elem)
-        self._elem.append(elem)
-        self._tail = 0
-        return elem
-
-    ##
-    # Closes the current element.
-    #
-    # @param tag The element name.
-    # @return The closed element.
-    # @defreturn Element
-
-    def end(self, tag):
-        self._flush()
-        self._last = self._elem.pop()
-        assert self._last.tag == tag,\
-               "end tag mismatch (expected %s, got %s)" % (
-                   self._last.tag, tag)
-        self._tail = 1
-        return self._last
-
-##
-# Element structure builder for XML source data, based on the
-# <b>expat</b> parser.
-#
-# @keyparam target Target object.  If omitted, the builder uses an
-#     instance of the standard {@link #TreeBuilder} class.
-# @keyparam html Predefine HTML entities.  This flag is not supported
-#     by the current implementation.
-# @see #ElementTree
-# @see #TreeBuilder
-
-class XMLTreeBuilder:
-
-    def __init__(self, html=0, target=None):
-        try:
-            from xml.parsers import expat
-        except ImportError:
-            raise ImportError(
-                "No module named expat; use SimpleXMLTreeBuilder instead"
-                )
-        self._parser = parser = expat.ParserCreate(None, "}")
-        if target is None:
-            target = TreeBuilder()
-        self._target = target
-        self._names = {} # name memo cache
-        # callbacks
-        parser.DefaultHandlerExpand = self._default
-        parser.StartElementHandler = self._start
-        parser.EndElementHandler = self._end
-        parser.CharacterDataHandler = self._data
-        # let expat do the buffering, if supported
-        try:
-            self._parser.buffer_text = 1
-        except AttributeError:
-            pass
-        # use new-style attribute handling, if supported
-        try:
-            self._parser.ordered_attributes = 1
-            self._parser.specified_attributes = 1
-            parser.StartElementHandler = self._start_list
-        except AttributeError:
-            pass
-        encoding = None
-        if not parser.returns_unicode:
-            encoding = "utf-8"
-        # target.xml(encoding, None)
-        self._doctype = None
-        self.entity = {}
-
-    def _fixtext(self, text):
-        # convert text string to ascii, if possible
-        try:
-            return _encode(text, "ascii")
-        except UnicodeError:
-            return text
-
-    def _fixname(self, key):
-        # expand qname, and convert name string to ascii, if possible
-        try:
-            name = self._names[key]
-        except KeyError:
-            name = key
-            if "}" in name:
-                name = "{" + name
-            self._names[key] = name = self._fixtext(name)
-        return name
-
-    def _start(self, tag, attrib_in):
-        fixname = self._fixname
-        tag = fixname(tag)
-        attrib = {}
-        for key, value in attrib_in.items():
-            attrib[fixname(key)] = self._fixtext(value)
-        return self._target.start(tag, attrib)
-
-    def _start_list(self, tag, attrib_in):
-        fixname = self._fixname
-        tag = fixname(tag)
-        attrib = {}
-        if attrib_in:
-            for i in range(0, len(attrib_in), 2):
-                attrib[fixname(attrib_in[i])] = self._fixtext(attrib_in[i+1])
-        return self._target.start(tag, attrib)
-
-    def _data(self, text):
-        return self._target.data(self._fixtext(text))
-
-    def _end(self, tag):
-        return self._target.end(self._fixname(tag))
-
-    def _default(self, text):
-        prefix = text[:1]
-        if prefix == "&":
-            # deal with undefined entities
-            try:
-                self._target.data(self.entity[text[1:-1]])
-            except KeyError:
-                from xml.parsers import expat
-                raise expat.error(
-                    "undefined entity %s: line %d, column %d" %
-                    (text, self._parser.ErrorLineNumber,
-                    self._parser.ErrorColumnNumber)
-                    )
-        elif prefix == "<" and text[:9] == "<!DOCTYPE":
-            self._doctype = [] # inside a doctype declaration
-        elif self._doctype is not None:
-            # parse doctype contents
-            if prefix == ">":
-                self._doctype = None
-                return
-            text = string.strip(text)
-            if not text:
-                return
-            self._doctype.append(text)
-            n = len(self._doctype)
-            if n > 2:
-                type = self._doctype[1]
-                if type == "PUBLIC" and n == 4:
-                    name, type, pubid, system = self._doctype
-                elif type == "SYSTEM" and n == 3:
-                    name, type, system = self._doctype
-                    pubid = None
-                else:
-                    return
-                if pubid:
-                    pubid = pubid[1:-1]
-                self.doctype(name, pubid, system[1:-1])
-                self._doctype = None
-
-    ##
-    # Handles a doctype declaration.
-    #
-    # @param name Doctype name.
-    # @param pubid Public identifier.
-    # @param system System identifier.
-
-    def doctype(self, name, pubid, system):
-        pass
-
-    ##
-    # Feeds data to the parser.
-    #
-    # @param data Encoded data.
-
-    def feed(self, data):
-        self._parser.Parse(data, 0)
-
-    ##
-    # Finishes feeding data to the parser.
-    #
-    # @return An element structure.
-    # @defreturn Element
-
-    def close(self):
-        self._parser.Parse("", 1) # end of data
-        tree = self._target.close()
-        del self._target, self._parser # get rid of circular references
-        return tree
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/api.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/api.py
deleted file mode 100755 (executable)
index d636205..0000000
+++ /dev/null
@@ -1,987 +0,0 @@
-#!/usr/bin/env python
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Andreas Ecker (ecker)
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-import sys, os, re, optparse
-import tree, treegenerator, tokenizer, comment
-
-
-
-########################################################################################
-#
-#  MAIN
-#
-########################################################################################
-
-class DocException (Exception):
-  def __init__ (self, msg, syntaxItem):
-    Exception.__init__(self, msg)
-    self.node = syntaxItem
-
-
-
-def createDoc(syntaxTree, docTree = None):
-  if not docTree:
-    docTree = tree.Node("doctree")
-
-  try:
-    currClassNode = None
-    if not syntaxTree.hasChildren():
-      return docTree
-
-    for item in syntaxTree.children:
-      if item.type == "assignment":
-        leftItem = item.getFirstListChild("left")
-        rightItem = item.getFirstListChild("right")
-        if leftItem.type == "variable":
-          if currClassNode and len(leftItem.children) == 3 and leftItem.children[0].get("name") == "qx":
-
-            if leftItem.children[1].get("name") == "Proto" and rightItem.type == "function":
-              # It's a method definition
-              handleMethodDefinitionOld(item, False, currClassNode)
-
-            elif leftItem.children[1].get("name") == "Class":
-              if rightItem.type == "function":
-                handleMethodDefinitionOld(item, True, currClassNode)
-
-              elif leftItem.children[2].get("name").isupper():
-                handleConstantDefinition(item, currClassNode)
-
-          elif currClassNode and assembleVariable(leftItem).startswith(currClassNode.get("fullName")):
-            # This is definition of the type "mypackage.MyClass.bla = ..."
-            if rightItem.type == "function":
-              handleMethodDefinitionOld(item, True, currClassNode)
-
-            elif leftItem.children[len(leftItem.children) - 1].get("name").isupper():
-              handleConstantDefinition(item, currClassNode)
-
-      elif item.type == "call":
-        operand = item.getChild("operand", False)
-        if operand:
-          var = operand.getChild("variable", False)
-
-          # qooxdoo < 0.7 (DEPRECATED)
-          if var and len(var.children) == 3 and var.children[0].get("name") == "qx" and var.children[1].get("name") == "OO":
-            methodName = var.children[2].get("name")
-
-            if methodName == "defineClass":
-              currClassNode = handleClassDefinitionOld(docTree, item)
-
-            elif methodName in [ "addProperty", "addFastProperty" ]:
-              # these are private and should be marked if listed, otherwise just hide them (wpbasti)
-              #or methodName == "addCachedProperty" or methodName == "changeProperty":
-              handlePropertyDefinitionOld(item, currClassNode)
-
-          # qooxdoo >= 0.7
-          elif var and len(var.children) == 3 and var.children[0].get("name") == "qx" and var.children[1].get("name") in [ "Class", "Clazz", "Locale", "Interface", "Mixin" ] and var.children[2].get("name") == "define":
-            currClassNode = handleClassDefinition(docTree, item, var.children[1].get("name").lower())
-
-
-  except Exception:
-    exc = sys.exc_info()[1]
-    msg = ""
-
-    if hasattr(exc, "node"):
-      (line, column) = getLineAndColumnFromSyntaxItem(exc.node)
-      file = getFileFromSyntaxItem(exc.node)
-      if line != None or file != None:
-        msg = str(exc) + "\n      " + str(file) + ", Line: " + str(line) + ", Column: " + str(column)
-
-    if msg == "":
-      raise exc
-
-    else:
-      print
-      print "    - Failed: %s" % msg
-      sys.exit(1)
-
-  return docTree
-
-
-
-
-
-
-
-
-
-
-########################################################################################
-#
-#  COMPATIBLE TO 0.7 STYLE ONLY!
-#
-########################################################################################
-
-def handleClassDefinition(docTree, item, variant):
-  params = item.getChild("params")
-
-  className = params.children[0].get("value")
-  classMap = params.children[1]
-  classNode = getClassNode(docTree, className)
-
-  #print className
-
-  try:
-      children = classMap.children
-  except AttributeError:
-      return
-
-  for keyvalueItem in children:
-    key = keyvalueItem.get("key")
-    valueItem = keyvalueItem.getChild("value").getFirstChild()
-
-    # print "KEY: %s = %s" % (key, valueItem.type)
-
-    if key == "extend":
-      if variant in [ "class", "clazz" ]:
-        superClassName = assembleVariable(valueItem)
-        superClassNode = getClassNode(docTree, superClassName)
-        childClasses = superClassNode.get("childClasses", False)
-
-        if childClasses:
-          childClasses += "," + className
-        else:
-          childClasses = className
-
-        superClassNode.set("childClasses", childClasses)
-
-        classNode.set("superClass", superClassName)
-
-      elif variant == "interface":
-        pass
-
-      elif variant == "mixin":
-        pass
-
-    elif key == "include":
-      handleMixins(valueItem, classNode)
-
-    elif key == "implement":
-      handleInterfaces(valueItem, classNode)
-
-    elif key == "init":
-      handleConstructor(valueItem, classNode)
-
-    elif key == "statics":
-      handleStatics(valueItem, classNode)
-
-    elif key == "properties":
-       handleProperties(valueItem, classNode)
-
-    elif key == "members":
-      handleMembers(valueItem, classNode)
-
-def handleMixins(item, classNode):
-  #print "  - Found Mixin"
-  pass
-
-def handleInterfaces(item, classNode):
-  #print "  - Found Interface"
-  pass
-
-def handleConstructor(item, classNode):
-  #print "  - Found Constructor"
-  pass
-
-def handleStatics(item, classNode):
-  if item.hasChildren():
-    for keyvalue in item.children:
-      key = keyvalue.get("key")
-      value = keyvalue.getFirstChild(True, True).getFirstChild(True, True)
-      commentAttributes = comment.parseNode(keyvalue)
-
-      # print "  - Found Static: %s = %s" % (key, value.type)
-
-      # Function
-      if value.type == "function":
-        node = handleFunction(value, commentAttributes, classNode)
-        node.set("name", key)
-        node.set("isStatic", True)
-
-        classNode.addListChild("methods-static", node)
-
-      # Constant
-      elif key.isupper():
-        handleConstantDefinition(keyvalue, classNode)
-
-def handleProperties(item, classNode):
-  if item.hasChildren():
-    for keyvalue in item.children:
-      key = keyvalue.get("key")
-      value = keyvalue.getFirstChild(True, True).getFirstChild(True, True)
-      # print "  - Found Property: %s" % key
-
-      # TODO: New handling for new properties needed
-      handlePropertyDefinitionOldCommon(keyvalue, classNode, key, value)
-
-def handleMembers(item, classNode):
-  if item.hasChildren():
-    for keyvalue in item.children:
-      key = keyvalue.get("key")
-      value = keyvalue.getFirstChild(True, True).getFirstChild(True, True)
-      commentAttributes = comment.parseNode(keyvalue)
-
-      # print "  - Found Member: %s = %s" % (key, value.type)
-
-      # Function
-      if value.type == "function":
-
-        node = handleFunction(value, commentAttributes, classNode)
-        node.set("name", key)
-
-        classNode.addListChild("methods", node)
-
-
-
-
-
-
-########################################################################################
-#
-#  COMPATIBLE TO 0.6 STYLE ONLY!
-#
-########################################################################################
-
-def handleClassDefinitionOld(docTree, item):
-  params = item.getChild("params")
-
-  paramsLen = len(params.children);
-  if paramsLen == 1:
-    superClassName = "Object"
-    ctorItem = None
-  elif paramsLen == 2:
-    superClassName = "Object"
-    ctorItem = params.children[1]
-  elif paramsLen == 3:
-    superClassName = assembleVariable(params.children[1])
-    ctorItem = params.children[2]
-  else:
-    raise DocException("defineClass call has more than three parameters: " + str(len(params.children)), item)
-
-  className = params.children[0].get("value")
-  classNode = getClassNode(docTree, className)
-  
-  if superClassName != "Object":
-    superClassNode = getClassNode(docTree, superClassName)
-    childClasses = superClassNode.get("childClasses", False)
-    if childClasses:
-      childClasses += "," + className
-    else:
-      childClasses = className
-    superClassNode.set("childClasses", childClasses)
-
-    classNode.set("superClass", superClassName)
-
-  commentAttributes = comment.parseNode(item)
-  
-  for attrib in commentAttributes:
-    if attrib["category"] == "event":
-      # Add the event
-      if comment.attribHas(attrib, "name") and comment.attribHas(attrib, "type"):
-        addEventNode(classNode, item, attrib);
-      else:
-        addError(classNode, "Documentation contains malformed event attribute.", item)
-    elif attrib["category"] == "description":
-      if attrib.has_key("text"):
-        descNode = tree.Node("desc").set("text", attrib["text"])
-        classNode.addChild(descNode)
-
-  # Add the constructor
-  if ctorItem and ctorItem.type == "function":
-    ctor = handleFunction(ctorItem, commentAttributes, classNode)
-    ctor.set("isCtor", True)
-    classNode.addListChild("constructor", ctor)
-
-    # Check for methods defined in the constructor
-    # (for method definition style that supports real private methods)
-    ctorBlock = ctorItem.getChild("body").getChild("block")
-
-    if ctorBlock.hasChildren():
-      for item in ctorBlock.children:
-        if item.type == "assignment":
-          leftItem = item.getFirstListChild("left")
-          rightItem = item.getFirstListChild("right")
-
-          # It's a method definition
-          if leftItem.type == "variable" and len(leftItem.children) == 2 and (leftItem.children[0].get("name") == "this" or leftItem.children[0].get("name") == "self") and rightItem.type == "function":
-            handleMethodDefinitionOld(item, False, classNode)
-
-  elif ctorItem and ctorItem.type == "map":
-    for keyvalueItem in ctorItem.children:
-      if keyvalueItem.type == "keyvalue":
-        valueItem = keyvalueItem.getChild("value").getFirstChild()
-        if (valueItem.type == "function"):
-          handleMethodDefinitionOld(keyvalueItem, True, classNode)
-        else:
-          handleConstantDefinition(keyvalueItem, classNode)
-
-  return classNode
-
-def handlePropertyDefinitionOld(item, classNode):
-  paramsMap = item.getChild("params").getChild("map")
-  propertyName = paramsMap.getChildByAttribute("key", "name").getChild("value").getChild("constant").get("value")
-
-  handlePropertyDefinitionOldCommon(item, classNode, propertyName, paramsMap)
-
-def handlePropertyDefinitionOldCommon(item, classNode, propertyName, paramsMap):
-  node = tree.Node("property")
-  node.set("name", propertyName)
-
-  propType = paramsMap.getChildByAttribute("key", "type", False)
-  if propType:
-    node.set("type", getType(propType.getChild("value").getFirstChild()))
-
-  allowNull = paramsMap.getChildByAttribute("key", "allowNull", False)
-  if allowNull:
-    node.set("allowNull", allowNull.getChild("value").getChild("constant").get("value"))
-
-  defaultValue = paramsMap.getChildByAttribute("key", "defaultValue", False)
-  if defaultValue:
-    node.set("defaultValue", getValue(defaultValue.getFirstListChild("value")))
-
-  getAlias = paramsMap.getChildByAttribute("key", "getAlias", False)
-  if getAlias:
-    node.set("getAlias", getAlias.getChild("value").getChild("constant").get("value"))
-
-  setAlias = paramsMap.getChildByAttribute("key", "setAlias", False)
-  if setAlias:
-    node.set("setAlias", setAlias.getChild("value").getChild("constant").get("value"))
-
-  unitDetection = paramsMap.getChildByAttribute("key", "unitDetection", False)
-  if unitDetection:
-    node.set("unitDetection", unitDetection.getChild("value").getChild("constant").get("value"))
-
-  instance = paramsMap.getChildByAttribute("key", "instance", False)
-  if instance:
-    node.set("instance", instance.getChild("value").getChild("constant").get("value"))
-
-  classname = paramsMap.getChildByAttribute("key", "classname", False)
-  if classname:
-    node.set("classname", classname.getChild("value").getChild("constant").get("value"))
-
-  possibleValues = paramsMap.getChildByAttribute("key", "possibleValues", False)
-  if possibleValues:
-    array = possibleValues.getChild("value").getChild("array")
-    values = ""
-    for arrayItem in array.children:
-      if len(values) != 0:
-        values += ", "
-      values += getValue(arrayItem)
-    node.set("possibleValues", values)
-
-  # If the description has a type specified then take this type
-  # (and not the one extracted from the paramsMap)
-  commentAttributes = comment.parseNode(item)
-  addTypeInfo(node, comment.getAttrib(commentAttributes, "description"), item)
-
-  classNode.addListChild("properties", node)
-
-def handleMethodDefinitionOld(item, isStatic, classNode):
-  if item.type == "assignment":
-    # This is a "normal" method definition
-    leftItem = item.getFirstListChild("left")
-    name = leftItem.children[len(leftItem.children) - 1].get("name")
-    functionItem = item.getFirstListChild("right")
-  elif item.type == "keyvalue":
-    # This is a method definition of a map-style class (like qx.Const)
-    name = item.get("key")
-    functionItem = item.getFirstListChild("value")
-
-  commentAttributes = comment.parseNode(item)
-
-  node = handleFunction(functionItem, commentAttributes, classNode)
-  node.set("name", name)
-
-  isPublic = name[0] != "_"
-  listName = "methods"
-  if isStatic:
-    node.set("isStatic", True)
-    listName += "-static"
-
-  classNode.addListChild(listName, node)
-
-
-
-
-
-
-
-
-########################################################################################
-#
-#  COMPATIBLE TO BOTH, 0.6 and 0.7 style
-#
-########################################################################################
-
-def handleConstantDefinition(item, classNode):
-  if (item.type == "assignment"):
-    # This is a "normal" constant definition
-    leftItem = item.getFirstListChild("left")
-    name = leftItem.children[len(leftItem.children) - 1].get("name")
-    valueNode = item.getChild("right")
-  elif (item.type == "keyvalue"):
-    # This is a constant definition of a map-style class (like qx.Const)
-    name = item.get("key")
-    valueNode = item.getChild("value")
-
-  if not name.isupper():
-    return
-  
-  node = tree.Node("constant")      
-  node.set("name", name)
-  
-  value = None
-  if valueNode.hasChild("constant"):
-      node.set("value", valueNode.getChild("constant").get("value"))
-      node.set("type", valueNode.getChild("constant").get("constantType").capitalize())
-
-  commentAttributes = comment.parseNode(item)
-  description = comment.getAttrib(commentAttributes, "description")
-  addTypeInfo(node, description, item)
-
-  classNode.addListChild("constants", node)
-
-def handleFunction(funcItem, commentAttributes, classNode):
-  if funcItem.type != "function":
-    raise DocException("'funcItem' is no function", funcItem)
-
-  node = tree.Node("method")
-
-  # Read the parameters
-  params = funcItem.getChild("params", False)
-  if params and params.hasChildren():
-    for param in params.children:
-      paramNode = tree.Node("param")
-      paramNode.set("name", param.getFirstChild().get("name"))
-      node.addListChild("params", paramNode)
-
-  # Check whether the function is abstract
-  bodyBlockItem = funcItem.getChild("body").getFirstChild();
-  if bodyBlockItem.type == "block" and bodyBlockItem.hasChildren():
-    firstStatement = bodyBlockItem.children[0];
-    if firstStatement.type == "throw":
-      # The first statement of the function is a throw statement
-      # -> The function is abstract
-      node.set("isAbstract", True)
-
-  if len(commentAttributes) == 0:
-    addError(node, "Documentation is missing.", funcItem)
-    return node
-
-  # Read all description, param and return attributes
-  for attrib in commentAttributes:
-    # Add description
-    if attrib["category"] == "description":
-      if attrib.has_key("text"):
-        descNode = tree.Node("desc").set("text", attrib["text"])
-        node.addChild(descNode)
-
-    elif attrib["category"] == "see":
-      if not attrib.has_key("name"):
-        raise DocException("Missing target for see.", funcItem)
-
-      seeNode = tree.Node("see").set("name", attrib["name"])
-      node.addChild(seeNode)
-
-    elif attrib["category"] == "param":
-      if not attrib.has_key("name"):
-        raise DocException("Missing name of parameter.", funcItem)
-
-      # Find the matching param node
-      paramName = attrib["name"]
-      paramNode = node.getListChildByAttribute("params", "name", paramName, False)
-
-      if not paramNode:
-        addError(node, "Contains information for a non-existing parameter <code>%s</code>." % paramName, funcItem)
-        continue
-
-      addTypeInfo(paramNode, attrib, funcItem)
-
-    elif attrib["category"] == "return":
-      returnNode = tree.Node("return")
-      node.addChild(returnNode)
-
-      addTypeInfo(returnNode, attrib, funcItem)
-
-  # Check for documentation errors
-  # Check whether all parameters have been documented
-  if node.hasChild("params"):
-    paramsListNode = node.getChild("params");
-    for paramNode in paramsListNode.children:
-      if not paramNode.getChild("desc", False):
-        addError(node, "Parameter %s is not documented." % paramNode.get("name"), funcItem)
-
-  return node
-
-
-
-
-
-
-
-
-
-
-########################################################################################
-#
-#  COMMON STUFF
-#
-#######################################################################################
-
-
-def variableIsClassName(varItem):
-  length = len(varItem.children)
-  for i in range(length):
-    varChild = varItem.children[i]
-    if not varChild.type == "identifier":
-      return False
-    if i < length - 1:
-      # This is not the last identifier -> It must a package (= lowercase)
-      if not varChild.get("name").islower():
-        return False
-    else:
-      # This is the last identifier -> It must the class name (= first letter uppercase)
-      if not varChild.get("name")[0].isupper():
-        return False
-  return True
-
-
-
-def assembleVariable(variableItem):
-  if variableItem.type != "variable":
-    raise DocException("'variableItem' is no variable", variableItem)
-
-  assembled = ""
-  for child in variableItem.children:
-    if len(assembled) != 0:
-      assembled += "."
-    assembled += child.get("name")
-
-  return assembled
-
-
-
-def getValue(item):
-  value = None
-  if item.type == "constant":
-    if item.get("constantType") == "string":
-      value = '"' + item.get("value") + '"'
-    else:
-      value = item.get("value")
-  elif item.type == "variable":
-    value = assembleVariable(item)
-  elif item.type == "operation" and item.get("operator") == "SUB":
-    # E.g. "-1" or "-Infinity"
-    value = "-" + getValue(item.getChild("first").getFirstChild())
-  if value == None:
-    value = "[Unsupported item type: " + item.type + "]"
-
-  return value
-
-
-
-def addTypeInfo(node, commentAttrib=None, item=None):
-  if commentAttrib == None:
-    if node.type == "constant" and node.get("value", False):
-        pass
-    
-    elif node.type == "param":
-      addError(node, "Parameter <code>%s</code> in not documented." % commentAttrib.get("name"), item)
-
-    elif node.type == "return":
-      addError(node, "Return value is not documented.", item)
-
-    else:
-      addError(node, "Documentation is missing.", item)
-
-    return
-
-  # add description
-  if commentAttrib.has_key("text"):
-    node.addChild(tree.Node("desc").set("text", commentAttrib["text"]))
-
-  # add types
-  if commentAttrib.has_key("type"):
-    typesNode = tree.Node("types")
-    node.addChild(typesNode)
-
-    for item in commentAttrib["type"]:
-      itemNode = tree.Node("entry")
-      typesNode.addChild(itemNode)
-
-      itemNode.set("type", item["type"])
-
-      if item["dimensions"] != 0:
-        itemNode.set("dimensions", item["dimensions"])
-
-  # add default value
-  if commentAttrib.has_key("default"):
-    defaultValue = commentAttrib["default"]
-    if defaultValue != None:
-      # print "defaultValue: %s" % defaultValue
-      node.set("defaultValue", defaultValue)
-
-
-
-def addEventNode(classNode, classItem, commentAttrib):
-  node = tree.Node("event")
-
-  node.set("name", commentAttrib["name"])
-
-  if commentAttrib.has_key("text"):
-    node.addChild(tree.Node("desc").set("text", commentAttrib["text"]))
-
-  # add types
-  if commentAttrib.has_key("type"):
-    typesNode = tree.Node("types")
-    node.addChild(typesNode)
-
-    for item in commentAttrib["type"]:
-      itemNode = tree.Node("entry")
-      typesNode.addChild(itemNode)
-
-      itemNode.set("type", item["type"])
-
-      if item["dimensions"] != 0:
-        itemNode.set("dimensions", item["dimensions"])
-
-  classNode.addListChild("events", node)
-
-
-
-def addError(node, msg, syntaxItem):
-  # print ">>> %s" % msg
-
-  errorNode = tree.Node("error")
-  errorNode.set("msg", msg)
-
-  (line, column) = getLineAndColumnFromSyntaxItem(syntaxItem)
-  if line:
-    errorNode.set("line", line)
-
-    if column:
-      errorNode.set("column", column)
-
-  node.addListChild("errors", errorNode)
-  node.set("hasError", True)
-
-
-
-def getLineAndColumnFromSyntaxItem(syntaxItem):
-  line = None
-  column = None
-
-  while line == None and column == None and syntaxItem:
-    line = syntaxItem.get("line", False)
-    column = syntaxItem.get("column", False)
-
-    if syntaxItem.hasParent():
-      syntaxItem = syntaxItem.parent
-    else:
-      syntaxItem = None
-
-  return line, column
-
-
-def getFileFromSyntaxItem(syntaxItem):
-  file = None
-  while file == None and syntaxItem:
-    file = syntaxItem.get("file", False)
-    if hasattr(syntaxItem, "parent"):
-      syntaxItem = syntaxItem.parent
-    else:
-      syntaxItem = None
-  return file
-
-
-def getType(item):
-  if item.type == "constant" and item.get("constantType") == "string":
-    val = item.get("value").capitalize()
-    return val
-
-  else:
-    raise DocException("Can't gess type. type is neither string nor variable: " + item.type, item)
-
-
-def getClassNode(docTree, className):
-  splits = className.split(".")
-
-  currPackage = docTree
-  length = len(splits)
-  for i in range(length):
-    split = splits[i]
-
-    if (i < length - 1):
-      # This is a package name -> Get the right package
-      childPackage = currPackage.getListChildByAttribute("packages", "name", split, False)
-      if not childPackage:
-        childPackageName = ".".join(splits[:-(length-i-1)])
-
-        # The package does not exist -> Create it
-        childPackage = tree.Node("package")
-        childPackage.set("name", split)
-        childPackage.set("fullName", childPackageName)
-        childPackage.set("packageName", childPackageName.replace("." + split, ""))
-
-        currPackage.addListChild("packages", childPackage)
-
-      # Update current package
-      currPackage = childPackage
-
-    else:
-      # This is a class name -> Get the right class
-      classNode = currPackage.getListChildByAttribute("classes", "name", split, False)
-      if not classNode:
-        # The class does not exist -> Create it
-        classNode = tree.Node("class")
-        classNode.set("name", split)
-        classNode.set("fullName", className)
-        classNode.set("packageName", className.replace("." + split, ""))
-        currPackage.addListChild("classes", classNode)
-
-      return classNode
-
-
-
-def postWorkPackage(docTree, packageNode):
-  childHasError = False
-
-  packages = packageNode.getChild("packages", False)
-  if packages:
-    packages.children.sort(nameComparator)
-    for node in packages.children:
-      hasError = postWorkPackage(docTree, node)
-      if hasError:
-        childHasError = True
-
-  classes = packageNode.getChild("classes", False)
-  if classes:
-    classes.children.sort(nameComparator)
-    for node in classes.children:
-      hasError = postWorkClass(docTree, node)
-      if hasError:
-        childHasError = True
-
-  if childHasError:
-    packageNode.set("hasWarning", True)
-
-  return childHasError
-
-
-
-def postWorkClass(docTree, classNode):
-  # Sort child classes
-  childClasses = classNode.get("childClasses", False)
-  if childClasses:
-    classArr = childClasses.split(",")
-    classArr.sort()
-    childClasses = ",".join(classArr)
-    classNode.set("childClasses", childClasses)
-
-  # Remove the property-modifier-methods
-  removePropertyModifiers(classNode)
-
-  # Mark overridden items
-  postWorkItemList(docTree, classNode, "properties", True)
-  postWorkItemList(docTree, classNode, "events", False)
-  postWorkItemList(docTree, classNode, "methods", True)
-  postWorkItemList(docTree, classNode, "methods-static", False)
-
-  # Check whether the class is static
-  superClassName = classNode.get("superClass", False)
-  if (superClassName == None or superClassName == "qx.core.Object") \
-    and classNode.getChild("properties", False) == None \
-    and classNode.getChild("methods", False) == None:
-    # This class is static
-    classNode.set("isStatic", True)
-
-  # Check whether the class is abstract
-  if isClassAbstract(docTree, classNode, {}):
-    classNode.set("isAbstract", True)
-
-  # Check for errors
-  childHasError = listHasError(classNode, "constructor") or listHasError(classNode, "properties") \
-    or listHasError(classNode, "methods") or listHasError(classNode, "methods-static") \
-    or listHasError(classNode, "constants")
-
-  if childHasError:
-    classNode.set("hasWarning", True)
-
-  return childHasError
-
-
-
-def isClassAbstract(docTree, classNode, visitedMethodNames):
-  if containsAbstractMethods(classNode.getChild("methods", False), visitedMethodNames):
-    # One of the methods is abstract
-    return True
-
-  # No abstract methods found -> Check whether the super class has abstract
-  # methods that haven't been overridden
-  superClassName = classNode.get("superClass", False)
-  if superClassName:
-    superClassNode = getClassNode(docTree, superClassName)
-    return isClassAbstract(docTree, superClassNode, visitedMethodNames)
-
-
-
-def containsAbstractMethods(methodListNode, visitedMethodNames):
-  if methodListNode:
-    for methodNode in methodListNode.children:
-      name = methodNode.get("name")
-      if not name in visitedMethodNames:
-        visitedMethodNames[name] = True
-        if methodNode.get("isAbstract", False):
-          return True
-
-  return False
-
-
-
-def removePropertyModifiers(classNode):
-  propertiesList = classNode.getChild("properties", False)
-  methodsList = classNode.getChild("methods", False)
-  if propertiesList and methodsList:
-    for propNode in propertiesList.children:
-      name = propNode.get("name")
-      upperName = name[0].upper() + name[1:]
-
-      modifyNode = methodsList.getChildByAttribute("name", "_modify" + upperName, False)
-      if modifyNode:
-        methodsList.removeChild(modifyNode);
-
-      changeNode = methodsList.getChildByAttribute("name", "_change" + upperName, False)
-      if changeNode:
-        methodsList.removeChild(changeNode);
-
-      checkNode = methodsList.getChildByAttribute("name", "_check" + upperName, False)
-      if checkNode:
-        methodsList.removeChild(checkNode);
-
-    if not methodsList.hasChildren():
-      classNode.removeChild(methodsList)
-
-
-
-def postWorkItemList(docTree, classNode, listName, overridable):
-  """Does the post work for a list of properties or methods."""
-
-  # Sort the list
-  sortByName(classNode, listName)
-
-  # Post work all items
-  listNode = classNode.getChild(listName, False)
-  if listNode:
-    for itemNode in listNode.children:
-      name = itemNode.get("name")
-
-      # Check whether this item is overridden and try to inherit the
-      # documentation from the next matching super class
-      if overridable:
-        superClassName = classNode.get("superClass", False)
-        overriddenFound = False
-        docFound = (itemNode.getChild("desc", False) != None)
-        while superClassName and (not overriddenFound or not docFound):
-          superClassNode = getClassNode(docTree, superClassName)
-          superItemNode = superClassNode.getListChildByAttribute(listName, "name", name, False)
-
-          if superItemNode:
-            if not docFound:
-              # This super item has a description
-              # -> Check whether the parameters match
-              # NOTE: paramsMatch works for properties, too
-              #       (Because both compared properties always have no params)
-              if paramsMatch(itemNode, superItemNode):
-                # The parameters match -> We can use the documentation of the super class
-                itemNode.set("docFrom", superClassName)
-                docFound = (superItemNode.getChild("desc", False) != None)
-
-                # Remove previously recorded documentation errors from the item
-                # (Any documentation errors will be recorded in the super class)
-                removeErrors(itemNode)
-            if not overriddenFound:
-              # This super class has the item defined -> Add a overridden attribute
-              itemNode.set("overriddenFrom", superClassName)
-              overriddenFound = True
-
-          # Check the next superclass
-          superClassName = superClassNode.get("superClass", False)
-
-        if not docFound and itemNode.get("overriddenFrom", False):
-          # This item is overridden, but we didn't find any documentation in the
-          # super classes -> Add a warning
-          itemNode.set("hasWarning", True)
-
-
-
-def paramsMatch(methodNode1, methodNode2):
-  params1 = methodNode1.getChild("params1", False)
-  params2 = methodNode1.getChild("params2", False)
-
-  if params1 == None or params2 == None:
-    # One method has no parameters -> The params match if both are None
-    return params1 == params2
-  elif len(params1.children) != len(params2.children):
-    # The param count is different -> The params don't match
-    return False
-  else:
-    for i in range(len(params1.children)):
-      par1 = params1.children[i]
-      par2 = params2.children[i]
-      if (par1.get("name") != par2.get("name")):
-        # These parameters don't match
-        return False
-
-    # All tests passed
-    return True
-
-
-
-def removeErrors(node):
-  errors = node.getChild("errors", False)
-  if errors:
-    node.removeChild(errors)
-    node.remove("hasError")
-
-
-
-def sortByName(node, listName):
-  listNode = node.getChild(listName, False)
-  if listNode:
-    listNode.children.sort(nameComparator)
-
-
-
-def nameComparator(node1, node2):
-  name1 = node1.get("name").lower()
-  name2 = node2.get("name").lower()
-  return cmp(name1, name2)
-
-
-
-def listHasError(node, listName):
-  listNode = node.getChild(listName, False)
-  if listNode:
-    for childNode in listNode.children:
-      if childNode.get("hasError", False):
-        return True
-
-  return False
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/checklocales.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/checklocales.py
deleted file mode 100644 (file)
index 81254c2..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/env python
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-import sys
-
-"""
-checks whether the locale string is correct.
-"""
-
-errormsg = """
-****************************************************************************
-  ERROR
-----------------------------------------------------------------------------
-  The locale '%(locale)s' is defined in APPLICATION_LOCALES, but not '%(lang)s'!
-
-  If a locale with a territory code is set ('%(locale)s'), the corresponding
-  locale without territory code must be included as well ('%(lang)s').
-  
-  Please add '%(lang)s' to APPLICATION_LOCALES in your Makefile.
-****************************************************************************
-"""
-
-def main():
-       line = sys.stdin.read()
-       locales = line.split()
-       for locale in locales:
-               if locale.find("_") >= 0:
-                       lang = locale.split("_")[0]
-                       if not lang in locales:
-                               print errormsg % {"lang": lang, "locale": locale}
-                               sys.exit(1)
-       sys.exit(0)
-       
-if __name__ == "__main__":
-       main()
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/cldr.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/cldr.py
deleted file mode 100644 (file)
index 2614f08..0000000
+++ /dev/null
@@ -1,230 +0,0 @@
-#!/usr/bin/env python
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-# encoding: utf-8
-"""
-extract_cldr.py
-"""
-
-import os
-import sys
-import getopt
-import ElementTree
-
-help_message = '''
-The help message goes here.
-'''
-
-
-class Usage(Exception):
-    def __init__(self, msg):
-        self.msg = msg
-
-
-def getJavaScript(data, locale, language, territory="", namespace="qx.locale.data"):
-       str = "/*\n"
-       if territory != "":
-               str += "#load(%s.%s)\n" % (namespace, language)
-       str += '''#require(qx.Locale)
-*/
-qx.Locale.define("%s.%s", {
-''' % (namespace, locale)
-       lines = []
-       keys = data.keys()
-       keys.sort()
-       for key in keys:
-               lines.append('  cldr_%s: "%s"' % (key.replace("-", "_"), data[key].encode("UTF-8").replace("\n", "\n" + 4 * " ").replace('"', '\\"')) )
-               
-       body = ",\n".join(lines)
-       str += "%s\n});" % body
-       return str
-       
-
-def getLocale(calendarElement):
-       locale = calendarElement.find("identity/language").attrib["type"]
-       territoryNode = calendarElement.find("identity/territory")
-       territory = ""
-       if territoryNode != None:
-               territory = territoryNode.attrib["type"]
-       return (locale, territory)
-       
-
-def extractMonth(calendarElement):
-       data = {}
-       for monthContext in calendarElement.findall(".//monthContext"):
-               for monthWidth in monthContext.findall("monthWidth"):
-                       monthType = monthWidth.attrib["type"]
-                       for month in monthWidth.findall("month"):
-                               if month.attrib.has_key("alt"): continue
-                               data["month_%s_%s" % (monthType, month.attrib["type"])] = month.text
-       return data
-
-
-def extractDay(calendarElement):
-       data = {}
-       for dayWidth in calendarElement.findall(".//dayWidth"):
-               dayType = dayWidth.attrib["type"]
-               for day in dayWidth.findall("day"):
-                       if day.attrib.has_key("alt"): continue
-                       data['day_%s_%s' % (dayType, day.attrib["type"])] = day.text
-       return data
-       
-def extractQuarter(calendarElement):
-       return {'': ''}
-
-       
-def extractAmPm(calendarElement):
-       data = {}
-
-       amNode = calendarElement.find(".//am")
-       if amNode != None:
-               data['am'] = amNode.text
-               
-       pmNode = calendarElement.find(".//pm")
-       if pmNode != None:
-               data["pm"] = pmNode.text
-
-       return data
-
-       
-def extractDateFormat(calendarElement):
-       data = {}
-       for dateFormatLength in calendarElement.findall(".//dateFormatLength"):
-               dateType = dateFormatLength.attrib["type"]
-               for dateFormat in dateFormatLength.findall("dateFormat/pattern"):
-                       if dateFormat.attrib.has_key("alt"): continue
-                       data['date_format_%s'% dateType] = dateFormat.text
-       return data
-
-
-def extractTimeFormat(calendarElement):
-       data = {}
-       for timeFormatLength in calendarElement.findall(".//timeFormatLength"):
-               timeType = timeFormatLength.attrib["type"]
-               for timeFormat in timeFormatLength.findall("timeFormat/pattern"):
-                       if timeFormat.attrib.has_key("alt"): continue
-                       data['time_format_%s' % timeType] = timeFormat.text
-       return data
-
-               
-def extractDateTimeFormat(calendarElement):
-       data = {}
-       for dateTimeFormat in calendarElement.findall(".//dateFormatItem"):
-               data["date_time_format_%s" % dateTimeFormat.attrib["id"]] = dateTimeFormat.text
-       return data
-
-       
-def extractFields(calendarElement):
-       fields = {}
-       for field in calendarElement.findall(".//fields/field"):
-               if not field.find("displayName"): break
-               fields[field.attrib["type"]] = field.find("displayName").text
-               
-       return fields
-       
-
-def extractDelimiter(tree):
-       delimiters = {}
-       for delimiter in tree.findall("delimiters/*"):
-               delimiters[delimiter.tag] = delimiter.text
-       
-       return delimiters
-
-               
-def extractNumber(tree):
-       data = {}
-       
-       decimalSeparatorNode = tree.find("numbers/symbols/decimal")
-       if decimalSeparatorNode != None:
-               data['number_decimal_separator'] = decimalSeparatorNode.text
-       
-       groupSeparator = ","
-       groupSeparatorNode = tree.find("numbers/symbols/group")
-       if groupSeparatorNode != None:
-               data['number_group_separator'] = groupSeparatorNode.text
-       
-       percentFormatNode = tree.find("numbers/percentFormats/percentFormatLength/percentFormat/pattern")
-       if percentFormatNode != None:
-               data['number_percent_format'] = percentFormatNode.text
-
-       return data
-
-       
-def parseCldrFile(filename, outputDirectory=None):
-       tree = ElementTree.parse(filename)
-       
-       language, territory = getLocale(tree)
-       data = {}
-       
-       for cal in tree.findall('dates/calendars/calendar'):
-               if not cal.attrib.has_key("type"): continue
-               if cal.attrib["type"] != "gregorian": continue
-               data.update(extractMonth(cal))
-               data.update(extractDay(cal))
-               #data.update(extractQuarter(cal))
-               data.update(extractAmPm(cal))
-               data.update(extractDateFormat(cal))
-               data.update(extractTimeFormat(cal))
-               data.update(extractDateTimeFormat(cal))
-               data.update(extractFields(cal))
-               
-       data.update(extractDelimiter(tree))
-       data.update(extractNumber(tree))
-
-       locale = language
-       if territory != "":
-               locale += "_" + territory
-
-       code = getJavaScript(data, locale, language, territory)
-       if outputDirectory != None:
-               outfile = os.path.join(outputDirectory, locale + ".js");
-               open(outfile, "w").write(code)
-       else:
-               print code
-
-
-def main(argv=None):
-    if argv is None:
-        argv = sys.argv
-    try:
-        try:
-            opts, args = getopt.getopt(argv[1:], "ho:v", ["help", "output="])
-        except getopt.error, msg:
-            raise Usage(msg)
-    
-        output = None
-        for option, value in opts:
-            if option == "-v":
-                verbose = True
-            if option in ("-h", "--help"):
-                raise Usage(help_message)
-            if option in ("-o", "--output"):
-                output = value
-                       
-        for arg in args:
-            parseCldrFile(arg, output)
-    
-    except Usage, err:
-        print >> sys.stderr, sys.argv[0].split("/")[-1] + ": " + str(err.msg)
-        print >> sys.stderr, "\t for help use --help"
-        return 2
-
-
-if __name__ == "__main__":
-    sys.exit(main())
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/comment.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/comment.py
deleted file mode 100755 (executable)
index a5e1d02..0000000
+++ /dev/null
@@ -1,942 +0,0 @@
-#!/usr/bin/env python
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-import sys, string, re
-import config, tree, textile
-
-
-
-S_INLINE_COMMENT = "//.*"
-R_INLINE_COMMENT = re.compile("^" + S_INLINE_COMMENT + "$")
-
-R_INLINE_COMMENT_TIGHT = re.compile("^//\S+")
-R_INLINE_COMMENT_PURE = re.compile("^//")
-
-
-
-S_BLOCK_COMMENT = "/\*([^*]|[\n]|(\*+([^*/]|[\n])))*\*+/"
-R_BLOCK_COMMENT = re.compile("^" + S_BLOCK_COMMENT + "$")
-
-R_BLOCK_COMMENT_JAVADOC = re.compile("^/\*\*")
-R_BLOCK_COMMENT_QTDOC = re.compile("^/\*!")
-R_BLOCK_COMMENT_AREA = re.compile("^/\*\n\s*\*\*\*\*\*")
-R_BLOCK_COMMENT_DIVIDER = re.compile("^/\*\n\s*----")
-R_BLOCK_COMMENT_HEADER = re.compile("^/\* \*\*\*\*")
-
-R_BLOCK_COMMENT_TIGHT_START = re.compile("^/\*\S+")
-R_BLOCK_COMMENT_TIGHT_END = re.compile("\S+\*/$")
-R_BLOCK_COMMENT_PURE_START = re.compile("^/\*")
-R_BLOCK_COMMENT_PURE_END = re.compile("\*/$")
-
-R_ATTRIBUTE = re.compile(r'[^{]@(\w+)\s*')
-R_JAVADOC_STARS = re.compile(r'^\s*\*')
-
-
-
-R_NAMED_TYPE = re.compile(r'^\s*([a-zA-Z0-9_\.#]+)\s*({([^}]+)})?')
-R_SIMPLE_TYPE = re.compile(r'^\s*({([^}]+)})?')
-
-
-
-
-VARPREFIXES = {
-  "a" : "Array",
-  "b" : "Boolean",
-  "d" : "Date",
-  "f" : "Function",
-  "i" : "Integer",
-  "h" : "Map",
-  "m" : "Map",
-  "n" : "Number",
-  "o" : "Object",
-  "r" : "RegExp",
-  "s" : "String",
-  "v" : "var",
-  "w" : "Widget"
-}
-
-VARNAMES = {
-  "a" : "Array",
-  "arr" : "Array",
-
-  "doc" : "Document",
-
-  "e" : "Event",
-  "ev" : "Event",
-  "evt" : "Event",
-
-  "el" : "Element",
-  "elem" : "Element",
-  "elm" : "Element",
-
-  "ex" : "Exception",
-  "exc" : "Exception",
-
-  "flag" : "Boolean",
-  "force" : "Boolean",
-
-  "f" : "Function",
-  "func" : "Function",
-
-  "h" : "Map",
-  "hash" : "Map",
-  "map" : "Map",
-
-  "node" : "Node",
-
-  "n" : "Number",
-  "num" : "Number",
-
-  "o" : "Object",
-  "obj" : "Object",
-
-  "reg" : "RegExp",
-
-  "s" : "String",
-  "str" : "String",
-
-  "win" : "Window"
-}
-
-VARDESC = {
-  "propValue" : "Current value",
-  "propOldValue" : "Previous value",
-  "propData" : "Property configuration map"
-}
-
-
-
-
-def outdent(source, indent):
-  return re.compile("\n\s{%s}" % indent).sub("\n", source)
-
-
-
-def indent(source, indent):
-  return re.compile("\n").sub("\n" + (" " * indent), source)
-
-
-
-def correctInline(source):
-  if R_INLINE_COMMENT_TIGHT.match(source):
-    return R_INLINE_COMMENT_PURE.sub("// ", source)
-
-  return source
-
-
-
-def correctBlock(source):
-  if not getFormat(source) in [ "javadoc", "qtdoc" ]:
-    if R_BLOCK_COMMENT_TIGHT_START.search(source):
-      source = R_BLOCK_COMMENT_PURE_START.sub("/* ", source)
-
-    if R_BLOCK_COMMENT_TIGHT_END.search(source):
-      source = R_BLOCK_COMMENT_PURE_END.sub(" */", source)
-
-  return source
-
-
-
-def correct(source):
-  if source.startswith("//"):
-    return correctInline(source)
-  else:
-    return correctBlock(source)
-
-
-
-def isMultiLine(source):
-  return source.find("\n") != -1
-
-
-
-def getFormat(source):
-  if R_BLOCK_COMMENT_JAVADOC.search(source):
-    return "javadoc"
-  elif R_BLOCK_COMMENT_QTDOC.search(source):
-    return "qtdoc"
-  elif R_BLOCK_COMMENT_AREA.search(source):
-    return "area"
-  elif R_BLOCK_COMMENT_DIVIDER.search(source):
-    return "divider"
-  elif R_BLOCK_COMMENT_HEADER.search(source):
-    return "header"
-
-  return "block"
-
-
-
-
-
-
-
-
-def hasThrows(node):
-  if node.type == "throw":
-    return True
-
-  if node.hasChildren():
-    for child in node.children:
-      if hasThrows(child):
-        return True
-
-  return False
-
-
-
-
-def getReturns(node, found):
-  if node.type == "function":
-    pass
-
-  elif node.type == "return":
-    if node.getChildrenLength(True) > 0:
-      val = "var"
-    else:
-      val = "void"
-
-    if node.hasChild("expression"):
-      expr = node.getChild("expression")
-      if expr.hasChild("variable"):
-        var = expr.getChild("variable")
-        if var.getChildrenLength(True) == 1 and var.hasChild("identifier"):
-          val = nameToType(var.getChild("identifier").get("name"))
-        else:
-          val = "var"
-
-      elif expr.hasChild("constant"):
-        val = expr.getChild("constant").get("constantType")
-
-        if val == "number":
-          val = expr.getChild("constant").get("detail")
-
-      elif expr.hasChild("array"):
-        val = "Array"
-
-      elif expr.hasChild("map"):
-        val = "Map"
-
-      elif expr.hasChild("function"):
-        val = "Function"
-
-      elif expr.hasChild("call"):
-        val = "call"
-
-    if not val in found:
-      found.append(val)
-
-  elif node.hasChildren():
-    for child in node.children:
-      getReturns(child, found)
-
-  return found
-
-
-
-def nameToType(name):
-  typ = "var"
-
-  # Evaluate type from name
-  if name in VARNAMES:
-    typ = VARNAMES[name]
-
-  elif len(name) > 1:
-    if name[1].isupper():
-      if name[0] in VARPREFIXES:
-        typ = VARPREFIXES[name[0]]
-
-  return typ
-
-
-
-def nameToDescription(name):
-  desc = "TODOC"
-
-  if name in VARDESC:
-    desc = VARDESC[name]
-
-  return desc
-
-
-
-
-def qt2javadoc(text):
-  attribList = parseText(text, False)
-  res = "/**"
-
-  desc = getAttrib(attribList, "description")["text"]
-
-  if "\n" in desc:
-    res += "\n"
-
-    for line in desc.split("\n"):
-      res += " * %s\n" % line
-
-    res += " "
-
-  else:
-    res += " %s " % desc
-
-  res += "*/"
-
-  return res
-
-
-def parseNode(node):
-  """Takes the last doc comment from the commentsBefore child, parses it and
-  returns a Node representing the doc comment"""
-
-  # Find the last doc comment
-  commentsBefore = node.getChild("commentsBefore", False)
-  if commentsBefore and commentsBefore.hasChildren():
-    for child in commentsBefore.children:
-      if child.type == "comment" and child.get("detail") in [ "javadoc", "qtdoc" ]:
-        return parseText(child.get("text"))
-
-  return []
-
-
-
-def parseText(intext, format=True):
-  # print "Parse: " + intext
-
-  # Strip "/**", "/*!" and "*/"
-  intext = intext[3:-2]
-
-  # Strip leading stars in every line
-  text = ""
-  for line in intext.split("\n"):
-    text += R_JAVADOC_STARS.sub("", line) + "\n"
-
-  # Autodent
-  text = autoOutdent(text)
-
-  # Search for attributes
-  desc = { "category" : "description", "text" : "" }
-  attribs = [ desc ]
-  pos = 0
-
-  while True:
-    mtch = R_ATTRIBUTE.search(text, pos)
-
-    if mtch == None:
-      prevText = text[pos:].rstrip()
-
-      if len(attribs) == 0:
-        desc["text"] = prevText
-      else:
-        attribs[-1]["text"] = prevText
-
-      break
-
-    prevText = text[pos:mtch.start(0)].rstrip()
-    pos = mtch.end(0)
-
-    if len(attribs) == 0:
-      desc["text"] = prevText
-    else:
-      attribs[-1]["text"] = prevText
-
-    attribs.append({ "category" : mtch.group(1), "text" : "" })
-
-  # parse details
-  for attrib in attribs:
-    parseDetail(attrib, format)
-
-  return attribs
-
-
-
-def parseDetail(attrib, format=True):
-  text = attrib["text"]
-
-  if attrib["category"] in [ "param", "event", "see" ]:
-    mtch = R_NAMED_TYPE.search(text)
-  else:
-    mtch = R_SIMPLE_TYPE.search(text)
-
-  if mtch:
-    text = text[mtch.end(0):]
-
-    if attrib["category"] in [ "param", "event", "see" ]:
-      attrib["name"] = mtch.group(1)
-      # print ">>> NAME: %s" % mtch.group(1)
-      remain = mtch.group(3)
-    else:
-      remain = mtch.group(2)
-
-    if remain != None:
-      defIndex = remain.rfind("?")
-      if defIndex != -1:
-        attrib["default"] = remain[defIndex+1:].strip()
-        remain = remain[0:defIndex].strip()
-        # print ">>> DEFAULT: %s" % attrib["default"]
-
-      typValues = []
-      for typ in remain.split("|"):
-        typValue = typ.strip()
-        arrayIndex = typValue.find("[")
-
-        if arrayIndex != -1:
-          arrayValue = (len(typValue) - arrayIndex) / 2
-          typValue = typValue[0:arrayIndex]
-        else:
-          arrayValue = 0
-
-        typValues.append({ "type" : typValue, "dimensions" : arrayValue })
-
-      if len(typValues) > 0:
-        attrib["type"] = typValues
-        # print ">>> TYPE: %s" % attrib["type"]
-
-  if format:
-    attrib["text"] = formatText(text)
-  else:
-    attrib["text"] = cleanupText(text)
-
-  if attrib["text"] == "":
-    del attrib["text"]
-
-
-
-
-def autoOutdent(text):
-  lines = text.split("\n")
-
-  if len(lines) <= 1:
-    return text.strip()
-
-  for line in lines:
-    if len(line) > 0 and line[0] != " ":
-      return text
-
-  result = ""
-  for line in lines:
-    if len(line) >= 0:
-      result += line[1:]
-
-    result += "\n"
-
-  return result
-
-
-
-def cleanupText(text):
-  #print "============= INTEXT ========================="
-  #print text
-
-  text = text.replace("<p>", "\n")
-  text = text.replace("<br/>", "\n")
-  text = text.replace("<br>", "\n")
-  text = text.replace("</p>", " ")
-
-  newline = False
-  lines = text.split("\n")
-  text = u""
-
-  for line in lines:
-    if line == "":
-      if not newline:
-        newline = True
-
-    else:
-      if text != "":
-        text += "\n"
-
-      if newline:
-        text += "\n"
-        newline = False
-
-      text += line
-
-  #print "============= OUTTEXT ========================="
-  #print text
-
-  return text
-
-
-
-def formatText(text):
-  text = cleanupText(text)
-
-  #if "\n" in text:
-  #  print
-  #  print "------------- ORIGINAL ----------------"
-  #  print text
-
-  text = text.replace("<pre", "\n\n<pre").replace("</pre>", "</pre>\n\n")
-
-  # encode to ascii leads into a translation of umlauts to their XML code.
-  text = unicode(textile.textile(text.encode("utf-8"), output="ascii"))
-
-  #if "\n" in text:
-  #  print "------------- TEXTILED ----------------"
-  #  print text
-
-  return text
-
-
-
-
-
-
-
-
-def getAttrib(attribList, category):
-  for attrib in attribList:
-    if attrib["category"] == category:
-      return attrib
-
-
-
-def getParam(attribList, name):
-  for attrib in attribList:
-    if attrib["category"] == "param":
-      if attrib.has_key("name") and attrib["name"] == name:
-        return attrib
-
-
-
-def attribHas(attrib, key):
-  if attrib != None and attrib.has_key(key) and not attrib[key] in [ "", None ]:
-    return True
-
-  return False
-
-
-
-def splitText(orig, attrib=True):
-  res = ""
-  first = True
-
-  for line in orig.split("\n"):
-    if attrib:
-      if first:
-        res += " %s\n" % line
-      else:
-        res += " *   %s\n" % line
-
-    else:
-      res += " * %s\n" % line
-
-    first = False
-
-  if not res.endswith("\n"):
-    res += "\n"
-
-  return res
-
-
-
-def parseType(vtype):
-  typeText = ""
-
-  firstType = True
-  for entry in vtype:
-    if not firstType:
-      typeText += " | "
-
-    typeText += entry["type"]
-
-    if entry.has_key("dimensions") and entry["dimensions"] > 0:
-      typeText += "[]" * entry["dimensions"]
-
-    firstType = False
-
-  return typeText
-
-
-
-
-def fromNode(node, assignType, name, alternative, old=[]):
-  #
-  # description
-  ##############################################################
-  oldDesc = getAttrib(old, "description")
-
-  if attribHas(oldDesc, "text"):
-    newText = oldDesc["text"]
-  else:
-    newText = "{var} TODOC"
-
-  if "\n" in newText:
-    s = "/**\n%s\n-*/" % splitText(newText, False)
-  else:
-    s = "/** %s */" % newText
-
-
-  #
-  # other @attributes
-  ##############################################################
-
-  for attrib in old:
-    cat = attrib["category"]
-
-    if cat != "description":
-      print " * Found unallowed attribute %s in comment for %s (node)" % (cat, name)
-
-  return s
-
-
-
-
-def fromFunction(func, assignType, name, alternative, old=[]):
-  #
-  # open comment
-  ##############################################################
-  s = "/**\n"
-
-
-  #
-  # description
-  ##############################################################
-  oldDesc = getAttrib(old, "description")
-
-  if attribHas(oldDesc, "text"):
-    newText = oldDesc["text"]
-  else:
-    newText = "TODOC"
-
-  s += splitText(newText, False)
-  s += " *\n"
-
-
-
-
-  #
-  # add @type
-  ##############################################################
-  if assignType != None:
-    s += " * @type %s\n" % assignType
-  else:
-    s += " * @type unknown TODOC\n"
-
-
-
-
-  #
-  # add @name and @access
-  ##############################################################
-  if name != None and name != "construct":
-    s += " * @name %s\n" % name
-
-    if name.startswith("__"):
-      s += " * @access private\n"
-    elif name.startswith("_"):
-      s += " * @access protected\n"
-    else:
-      s += " * @access public\n"
-
-
-
-  #
-  # add @alternative
-  ##############################################################
-  oldAlternative = getAttrib(old, "alternative")
-
-  if alternative:
-    if attribHas(oldAlternative, "text"):
-      newText = oldDesc["text"]
-    else:
-      newText = "TODOC"
-
-    s += " * @alternative%s" % splitText(newText)
-
-    if not s.endswith("\n"):
-      s += "\n"
-
-  elif oldAlternative:
-    print " * Removing old @alternative for %s" % name
-
-
-
-
-  #
-  # add @abstract
-  ##############################################################
-  oldAbstract = getAttrib(old, "abstract")
-
-  first = func.getChild("body").getChild("block").getFirstChild(False, True)
-  abstract = first and first.type == "throw"
-
-  if abstract:
-    if attribHas(oldAbstract, "text"):
-      newText = oldDesc["text"]
-    else:
-      newText = ""
-
-    s += " * @abstract%s" % splitText(newText)
-
-    if not s.endswith("\n"):
-      s += "\n"
-
-  elif oldAbstract:
-    print " * Removing old @abstract for %s" % name
-
-
-
-
-
-
-  #
-  # add @param
-  ##############################################################
-  params = func.getChild("params")
-  if params.hasChildren():
-    for child in params.children:
-      if child.type == "variable":
-        newName = child.getChild("identifier").get("name")
-        newType = newTypeText = nameToType(newName)
-        newDefault = ""
-        newText = nameToDescription(newName)
-
-        oldParam = getParam(old, newName)
-
-        # Get type and text from old content
-        if oldParam:
-          if attribHas(oldParam, "type"):
-            newTypeText = parseType(oldParam["type"])
-
-          if attribHas(oldParam, "defaultValue"):
-            newDefault = oldParam["defaultValue"]
-
-          if attribHas(oldParam, "text"):
-            newText = oldParam["text"].strip()
-
-        s += " * @param %s {%s%s}%s" % (newName, newTypeText, newDefault, splitText(newText))
-
-        if not s.endswith("\n"):
-          s += "\n"
-
-
-
-
-
-  #
-  # add @return
-  ##############################################################
-  if name != "construct":
-    oldReturn = getAttrib(old, "return")
-
-    newType = "void"
-    newText = ""
-
-    # Get type and text from old content
-    if oldReturn:
-      if attribHas(oldReturn, "type"):
-        newType = parseType(oldReturn["type"])
-
-      if attribHas(oldReturn, "text"):
-        newText = oldReturn["text"].strip()
-
-    # Try to autodetect the type
-    if newType == "void":
-      returns = getReturns(func.getChild("body"), [])
-
-      if len(returns) > 0:
-        newType = " | ".join(returns)
-      elif name != None and name.startswith("is") and name[3].isupper():
-        newType = "boolean"
-
-    # Add documentation hint in non void cases
-    if newType != "void" and newText == "":
-      newText = "TODOC"
-
-    s += " * @return {%s}%s" % (newType, splitText(newText))
-
-    if not s.endswith("\n"):
-      s += "\n"
-
-
-
-
-
-
-  #
-  # add @throws
-  ##############################################################
-  oldThrows = getAttrib(old, "throws")
-
-  if hasThrows(func):
-    if oldThrows and attribHas(oldThrows, "text"):
-      newText = oldThrows["text"]
-    elif abstract:
-      newText = "the abstract function warning."
-    else:
-      newText = "TODOC"
-
-    s += " * @throws%s" % splitText(newText)
-
-    if not s.endswith("\n"):
-      s += "\n"
-
-  elif oldThrows:
-    print " * Removing old @throw attribute in comment for %s" % name
-
-
-
-
-  #
-  # other @attributes
-  ##############################################################
-
-  for attrib in old:
-    cat = attrib["category"]
-
-    if cat in [ "see", "author", "deprecated", "exception", "since", "version", "abstract", "overridden" ]:
-      s += " * @%s" % cat
-
-      if attribHas(attrib, "text"):
-        s += splitText(attrib["text"])
-
-      if not s.endswith("\n"):
-        s += "\n"
-
-    elif not cat in [ "description", "type", "name", "access", "alternative", "abstract", "param", "return", "throws" ]:
-      print " * Found unallowed attribute %s in comment for %s (function)" % (cat, name)
-
-
-
-
-
-  #
-  # close comment
-  ##############################################################
-  s += " */"
-
-  return s
-
-
-
-def fill(node):
-  if node.type in [ "comment", "commentsBefore", "commentsAfter" ]:
-    return
-
-  if node.hasParent():
-    target = node
-
-    if node.type == "function":
-      name = node.get("name", False)
-    else:
-      name = ""
-
-    alternative = False
-    assignType = None
-
-    if name != None:
-      assignType = "function"
-
-    # move to hook operation
-    while target.parent.type in [ "first", "second", "third" ] and target.parent.parent.type == "operation" and target.parent.parent.get("operator") == "HOOK":
-      alternative = True
-      target = target.parent.parent
-
-    # move comment to assignment
-    while target.parent.type == "right" and target.parent.parent.type == "assignment":
-      target = target.parent.parent
-      if target.hasChild("left"):
-        left = target.getChild("left")
-        if left and left.hasChild("variable"):
-          var = left.getChild("variable")
-          last = var.getLastChild(False, True)
-          if last and last.type == "identifier":
-            name = last.get("name")
-            assignType = "object"
-
-          for child in var.children:
-            if child.type == "identifier":
-              if child.get("name") in [ "prototype", "Proto" ]:
-                assignType = "member"
-              elif child.get("name") in [ "class", "base", "Class" ]:
-                assignType = "static"
-
-      elif target.parent.type == "definition":
-        name = target.parent.get("identifier")
-        assignType = "definition"
-
-    # move to definition
-    if target.parent.type == "assignment" and target.parent.parent.type == "definition" and target.parent.parent.parent.getChildrenLength(True) == 1:
-      target = target.parent.parent.parent
-      assignType = "function"
-
-
-    # move comment to keyvalue
-    if target.parent.type == "value" and target.parent.parent.type == "keyvalue":
-      target = target.parent.parent
-      name = target.get("key")
-      assignType = "map"
-
-      if name == "construct":
-        assignType = "constructor"
-
-      if target.parent.type == "map" and target.parent.parent.type == "value" and target.parent.parent.parent.type == "keyvalue":
-        paname = target.parent.parent.parent.get("key")
-
-        if paname == "members":
-          assignType = "member"
-
-        elif paname == "statics":
-          assignType = "static"
-
-    # filter stuff, only add comments to member and static values and to all functions
-    if assignType in [ "member", "static" ] or node.type == "function":
-
-      if not hasattr(target, "documentationAdded") and target.parent.type != "params":
-        old = []
-
-        # create commentsBefore
-        if target.hasChild("commentsBefore"):
-          commentsBefore = target.getChild("commentsBefore")
-
-          if commentsBefore.hasChild("comment"):
-            for child in commentsBefore.children:
-              if child.get("detail") in [ "javadoc", "qtdoc" ]:
-                old = parseText(child.get("text"), False)
-                commentsBefore.removeChild(child)
-                break
-
-        else:
-          commentsBefore = tree.Node("commentsBefore")
-          target.addChild(commentsBefore)
-
-        # create comment node
-        commentNode = tree.Node("comment")
-
-        if node.type == "function":
-          commentNode.set("text", fromFunction(node, assignType, name, alternative, old))
-        else:
-          commentNode.set("text", fromNode(node, assignType, name, alternative, old))
-
-        commentNode.set("detail", "javadoc")
-        commentNode.set("multiline", True)
-
-        commentsBefore.addChild(commentNode)
-
-        # in case of alternative methods, use the first one, ignore the others
-        target.documentationAdded = True
-
-
-
-
-
-  if node.hasChildren():
-    for child in node.children:
-      fill(child)
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/compiler.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/compiler.py
deleted file mode 100755 (executable)
index 9f697e0..0000000
+++ /dev/null
@@ -1,1495 +0,0 @@
-#!/usr/bin/env python
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Alessandro Sala (asala)
-#
-################################################################################
-
-import sys, string, re, optparse
-import config, tokenizer, filetool, treegenerator, variableoptimizer, comment, tree
-
-KEY = re.compile("^[A-Za-z0-9_]+$")
-INDENTSPACES = 2
-
-
-
-def compileToken(name, compact=False):
-  global pretty
-
-
-  if name in [ "INC", "DEC", "TYPEOF" ]:
-    pass
-
-  elif name in [ "INSTANCEOF", "IN" ]:
-    space()
-
-  elif not compact and pretty:
-    space()
-
-
-
-  if name == None:
-    write("=")
-
-  elif name in [ "TYPEOF", "INSTANCEOF", "IN" ]:
-    write(name.lower())
-
-  else:
-    for key in config.JSTOKENS:
-      if config.JSTOKENS[key] == name:
-        write(key)
-
-
-
-  if name in [ "INC", "DEC" ]:
-    pass
-
-  elif name in [ "TYPEOF", "INSTANCEOF", "IN" ]:
-    space()
-
-  elif not compact and pretty:
-    space()
-
-
-def space(force=True):
-  global indent
-  global result
-  global pretty
-  global afterLine
-  global afterBreak
-
-  if not force and not pretty:
-    return
-
-  if afterBreak or afterLine or result.endswith(" ") or result.endswith("\n"):
-    return
-
-  result += " "
-
-
-def write(txt=""):
-  global indent
-  global result
-  global pretty
-  global breaks
-  global afterLine
-  global afterBreak
-  global afterDivider
-  global afterArea
-
-  # strip remaining whitespaces
-  if (afterLine or afterBreak or afterDivider or afterArea) and result.endswith(" "):
-    result = result.rstrip()
-
-  if pretty:
-    # handle new line wishes
-    if afterArea:
-      nr = 9
-    elif afterDivider:
-      nr = 5
-    elif afterBreak:
-      nr = 2
-    elif afterLine:
-      nr = 1
-    else:
-      nr = 0
-
-    while not result.endswith("\n" * nr):
-      result += "\n"
-
-  elif breaks and not result.endswith("\n"):
-    if afterArea or afterDivider or afterBreak or afterLine:
-      result += "\n"
-
-  # reset
-  afterLine = False
-  afterBreak = False
-  afterDivider = False
-  afterArea = False
-
-  # add indent (if needed)
-  if pretty and result.endswith("\n"):
-    result += (" " * (INDENTSPACES * indent))
-
-  # append given text
-  result += txt
-
-
-def area():
-  global afterArea
-  afterArea = True
-
-
-def divide():
-  global afterDivider
-  afterDivider = True
-
-
-def sep():
-  global afterBreak
-  afterBreak = True
-
-
-def nosep():
-  global afterBreak
-  afterBreak = False
-
-
-def line():
-  global afterLine
-  afterLine = True
-
-
-def noline():
-  global afterLine
-  global afterBreak
-  global afterDivider
-  global afterArea
-
-  afterLine = False
-  afterBreak = False
-  afterDivider = False
-  afterArea = False
-
-
-def plus():
-  global indent
-  indent += 1
-
-
-def minus():
-  global indent
-  indent -= 1
-
-
-def semicolon():
-  global result
-  global breaks
-
-  noline()
-
-  if not (result.endswith("\n") or result.endswith(";")):
-    write(";")
-
-    if breaks:
-      result += "\n"
-
-
-def commentNode(node):
-  global pretty
-
-  if not pretty:
-    return
-
-  commentText = ""
-  commentIsInline = False
-
-  comment = node.getChild("commentsAfter", False)
-
-  if comment and not comment.get("inserted", False):
-    for child in comment.children:
-      if not child.isFirstChild():
-        commentText += " "
-
-      commentText += child.get("text")
-
-      if child.get("detail") == "inline":
-        commentIsInline = True
-
-    if commentText != "":
-      space()
-      write(commentText)
-
-      if commentIsInline:
-        line()
-      else:
-        space()
-
-      comment.set("inserted", True)
-
-
-
-def postProcessMap(m):
-  if m.get("maxKeyLength", False) != None:
-    return
-
-  maxKeyLength = 0
-  alignValues = True
-
-  if m.hasChildren():
-    for keyvalue in m.children:
-      if keyvalue.type != "keyvalue":
-        continue
-
-      currKeyLength = len(keyvalue.get("key"))
-
-      if keyvalue.get("quote", False) != None:
-        currKeyLength += 2
-
-      if currKeyLength > maxKeyLength:
-        maxKeyLength = currKeyLength
-
-      if alignValues and keyvalue.getChild("value").isComplex():
-        alignValues = False
-
-  m.set("maxKeyLength", maxKeyLength)
-  m.set("alignValues", alignValues)
-
-
-
-
-
-def compile(node, enablePretty=True, enableBreaks=False, enableDebug=False):
-  global indent
-  global result
-  global pretty
-  global debug
-  global breaks
-  global afterLine
-  global afterBreak
-  global afterDivider
-  global afterArea
-
-  indent = 0
-  result = u""
-  pretty = enablePretty
-  debug = enableDebug
-  breaks = enableBreaks
-  afterLine = False
-  afterBreak = False
-  afterDivider = False
-  afterArea = False
-
-  if enablePretty:
-    comment.fill(node)
-
-  compileNode(node)
-
-  return result
-
-
-
-
-
-
-
-
-
-
-def compileNode(node):
-
-  global pretty
-  global indent
-
-
-
-
-  #####################################################################################################################
-  # Recover styling
-  #####################################################################################################################
-
-  if pretty:
-    # Recover exclicit breaks
-    if node.get("breakBefore", False) and not node.isFirstChild(True):
-      sep()
-
-    # Additional explicit break before complex blocks
-    if node.hasParent() and not node.isFirstChild(True) and node.parent.type in [ "block", "file"] and node.isComplex():
-      sep()
-
-
-
-  #####################################################################################################################
-  # Insert comments before
-  #####################################################################################################################
-
-  if pretty:
-    if node.getChild("commentsBefore", False) != None:
-      commentCounter = 0
-      commentsBefore = node.getChild("commentsBefore")
-      isFirst = node.isFirstChild()
-      previous = node.getPreviousSibling(False, True)
-
-      if previous and previous.type in [ "case", "default" ]:
-        inCase = True
-      else:
-        inCase = False
-
-      inOperation = node.parent.type in [ "first", "second", "third" ] and node.parent.parent.type == "operation"
-
-      for child in commentsBefore.children:
-        docComment = child.get("detail") in [ "javadoc", "qtdoc" ]
-        headComment = child.get("detail") == "header"
-        areaComment = child.get("detail") == "area"
-        divComment = child.get("detail") == "divider"
-        blockComment = child.get("detail") ==  "block"
-        singleLineBlock = child.get("detail") != "inline" and child.get("multiline") == False
-
-        if not child.isFirstChild():
-          pass
-
-        elif inCase:
-          pass
-
-        elif singleLineBlock:
-          if child.get("begin"):
-            sep()
-          else:
-            space()
-
-        elif areaComment and not isFirst:
-          area()
-
-        elif divComment and not isFirst:
-          divide()
-
-        elif not isFirst:
-          sep()
-
-        elif inOperation:
-          sep()
-
-        elif not headComment:
-          line()
-
-        # reindenting first
-        text = child.get("text")
-
-        if child.get("detail") == "qtdoc":
-          text = comment.qt2javadoc(text)
-
-        write(comment.indent(text, INDENTSPACES * indent))
-
-        if singleLineBlock:
-          if child.get("detail") in [ "javadoc", "qtdoc" ]:
-            line()
-          elif child.get("end"):
-            sep()
-          else:
-            space()
-
-        # separator after divider/head comments and after block comments which are not for documentation
-        elif headComment or areaComment or divComment or blockComment:
-          sep()
-
-        else:
-          line()
-
-
-
-
-
-
-  #####################################################################################################################
-  # Opening...
-  #####################################################################################################################
-
-  #
-  # OPEN: FINALLY
-  ##################################
-
-  if node.type == "finally":
-    write("finally")
-
-
-  #
-  # OPEN: DELETE
-  ##################################
-
-  elif node.type == "delete":
-    write("delete")
-    space()
-
-
-  #
-  # OPEN: THROW
-  ##################################
-
-  elif node.type == "throw":
-    write("throw")
-    space()
-
-
-  #
-  # OPEN: NEW
-  ##################################
-
-  elif node.type == "instantiation":
-    write("new")
-    space()
-
-
-  #
-  # OPEN: RETURN
-  ##################################
-
-  elif node.type == "return":
-    write("return")
-
-    if node.hasChildren():
-      space()
-
-
-  #
-  # OPEN: DEFINITION LIST
-  ##################################
-
-  elif node.type == "definitionList":
-    write("var")
-    space()
-
-
-  #
-  # OPEN: BREAK
-  ##################################
-
-  elif node.type == "break":
-    write("break")
-
-    if node.get("label", False):
-      space()
-      write(node.get("label", False))
-
-
-  #
-  # OPEN: CONTINUE
-  ##################################
-
-  elif node.type == "continue":
-    write("continue")
-
-    if node.get("label", False):
-      space()
-      write(node.get("label", False))
-
-
-  #
-  # OPEN: FUNCTION
-  ##################################
-
-  elif node.type == "function":
-    write("function")
-
-    functionName = node.get("name", False)
-    if functionName != None:
-      space()
-      write(functionName)
-
-
-  #
-  # OPEN: IDENTIFIER
-  ##################################
-
-  elif node.type == "identifier":
-    name = node.get("name", False)
-    if name != None:
-      write(name)
-
-
-  #
-  # OPEN: DEFINITION
-  ##################################
-
-  elif node.type == "definition":
-    if node.parent.type != "definitionList":
-      write("var")
-      space()
-
-    write(node.get("identifier"))
-
-
-  #
-  # OPEN: CONSTANT
-  ##################################
-
-  elif node.type == "constant":
-    if node.get("constantType") == "string":
-      if node.get("detail") == "singlequotes":
-        write("'")
-      else:
-        write('"')
-
-      write(node.get("value"))
-
-      if node.get("detail") == "singlequotes":
-        write("'")
-      else:
-        write('"')
-
-    else:
-      write(node.get("value"))
-
-
-  #
-  # OPEN: COMMENT
-  ##################################
-
-  elif node.type == "comment":
-    if pretty:
-      # insert a space before and no newline in the case of after comments
-      if node.get("connection") == "after":
-        noline()
-        space()
-
-      write(node.get("text"))
-
-      # new line after inline comment (for example for syntactical reasons)
-      if node.get("detail") == "inline":
-        line()
-
-      else:
-        space()
-
-
-  #
-  # OPEN: RIGHT
-  ##################################
-
-  elif node.type == "right":
-    if node.parent.type == "accessor":
-      write(".")
-
-
-
-
-
-
-  #
-  # OPEN: ASSIGNMENT
-  ##################################
-
-  elif node.type == "assignment":
-    if node.parent.type == "definition":
-      oper = node.get("operator", False)
-
-      realNode = node.parent.parent
-
-      # be compact in for-loops
-      compact = realNode.hasParent() and realNode.parent.type in [ "first", "second", "third" ] and realNode.parent.parent.type == "loop" and realNode.parent.parent.get("loopType") == "FOR"
-      compileToken(oper, compact)
-
-
-
-
-
-  #
-  # OPEN: KEY
-  ##################################
-
-  elif node.type == "key":
-    if node.parent.type == "accessor":
-      write("[")
-
-
-  #
-  # OPEN: GROUP
-  ##################################
-
-  elif node.type == "group":
-    write("(")
-
-
-  #
-  # OPEN: VOID
-  ##################################
-
-  elif node.type == "void":
-    write("void")
-    write("(")
-
-
-  #
-  # OPEN: ARRAY
-  ##################################
-
-  elif node.type == "array":
-    write("[")
-
-    if node.hasChildren(True):
-      space(False)
-
-
-  #
-  # OPEN: PARAMS
-  ##################################
-
-  elif node.type == "params":
-    noline()
-    write("(")
-
-
-
-
-
-
-
-
-  #
-  # OPEN: CASE
-  ##################################
-
-  elif node.type == "case":
-    if pretty:
-      # force double new lines
-      if not node.isFirstChild() and not node.getPreviousSibling(True).type == "case":
-        sep()
-
-      minus()
-      line()
-
-    write("case")
-    space()
-
-
-  #
-  # OPEN: DEFAULT
-  ##################################
-
-  elif node.type == "default":
-    if pretty:
-      minus()
-
-      # force double new lines
-      if not node.getPreviousSibling(True).type == "case":
-        sep()
-
-    write("default")
-    write(":")
-
-    if pretty:
-      plus()
-      line()
-
-
-
-
-
-
-  #
-  # OPEN: TRY
-  ##################################
-
-  elif node.type == "switch":
-    # Additional new line before each switch/try
-    if not node.isFirstChild(True) and not node.getChild("commentsBefore", False):
-      prev = node.getPreviousSibling(False, True)
-
-      # No separation after case statements
-      if prev != None and prev.type in [ "case", "default" ]:
-        pass
-      else:
-        sep()
-
-    if node.get("switchType") == "catch":
-      write("try")
-    elif node.get("switchType") == "case":
-      write("switch")
-
-
-  #
-  # OPEN: CATCH
-  ##################################
-
-  elif node.type == "catch":
-    if pretty:
-      # If this statement block or the previous try were not complex, be not complex here, too
-      if not node.getChild("statement").getChild("block").isComplex() and not node.parent.getChild("statement").getChild("block").isComplex():
-        noline()
-        space()
-
-    write("catch")
-
-
-
-
-
-
-
-  #
-  # OPEN: MAP
-  ##################################
-
-  elif node.type == "map":
-    par = node.parent
-
-    if pretty:
-      postProcessMap(node)
-
-    if pretty:
-      # No break before return statement
-      if node.hasParent() and node.parent.type == "expression" and node.parent.parent.type == "return":
-        pass
-
-      elif node.isComplex():
-        line()
-
-    write("{")
-
-    if pretty:
-      if node.isComplex():
-        line()
-        plus()
-
-      elif node.hasChildren(True):
-        space()
-
-
-  #
-  # OPEN: KEYVALUE
-  ##################################
-
-  elif node.type == "keyvalue":
-    keyString = node.get("key")
-    keyQuote = node.get("quote", False)
-
-    if keyQuote != None:
-      # print "USE QUOTATION"
-      if keyQuote == "doublequotes":
-        keyString = '"' + keyString + '"'
-      else:
-        keyString = "'" + keyString + "'"
-
-    elif keyString in config.JSPROTECTED or not KEY.match(keyString):
-      print "Warning: Auto protect key: %s" % keyString
-      keyString = "\"" + keyString + "\""
-
-    if pretty and not node.isFirstChild(True) and not node.hasChild("commentsBefore") and node.getChild("value").isComplex():
-      sep()
-
-    write(keyString)
-    space(False)
-
-    # Fill with spaces
-    # Do this only if the parent is complex (many entries)
-    # But not if the value itself is complex
-    if pretty and node.parent.isComplex() and node.parent.get("alignValues"):
-      write(" " * (node.parent.get("maxKeyLength") - len(keyString)))
-
-    write(":")
-    space(False)
-
-
-
-
-
-
-
-  #
-  # OPEN: BLOCK
-  ##################################
-
-  elif node.type == "block":
-    if pretty:
-      if node.isComplex():
-        line()
-      else:
-        space()
-
-    write("{")
-
-    if pretty:
-      if node.hasChildren():
-        plus()
-        line()
-
-
-  #
-  # OPEN: LOOP
-  ##################################
-
-  elif node.type == "loop":
-    # Additional new line before each loop
-    if not node.isFirstChild(True) and not node.getChild("commentsBefore", False):
-      prev = node.getPreviousSibling(False, True)
-
-      # No separation after case statements
-      if prev != None and prev.type in [ "case", "default" ]:
-        pass
-      elif node.hasChild("elseStatement") or node.getChild("statement").hasBlockChildren():
-        sep()
-      else:
-        line()
-
-    loopType = node.get("loopType")
-
-    if loopType == "IF":
-      write("if")
-      space(False)
-
-    elif loopType == "WHILE":
-      write("while")
-      space(False)
-
-    elif loopType == "FOR":
-      write("for")
-      space(False)
-
-    elif loopType == "DO":
-      write("do")
-      space(False)
-
-    elif loopType == "WITH":
-      write("with")
-      space(False)
-
-    else:
-      print "Warning: Unknown loop type: %s" % loopType
-
-
-
-  #
-  # OPEN: ELSE
-  ##################################
-
-  elif node.type == "elseStatement":
-    if node.hasChild("commentsBefore"):
-      pass
-
-    elif pretty:
-      if not node.hasChild("block") and not node.hasChild("loop"):
-        pass
-
-      elif not node.isComplex():
-        noline()
-        space()
-
-    write("else")
-
-    # This is a elseStatement without a block around (a set of {})
-    if not node.hasChild("block"):
-      space()
-
-
-  #
-  # OPEN: EXPRESSION
-  ##################################
-
-  elif node.type == "expression":
-    if node.parent.type == "loop":
-      loopType = node.parent.get("loopType")
-
-      # only do-while loops
-      if loopType == "DO":
-        if pretty:
-          stmnt = node.parent.getChild("statement")
-          compact = stmnt.hasChild("block") and not stmnt.getChild("block").isComplex()
-
-          if compact:
-            noline()
-            space()
-
-        write("while")
-
-        if pretty:
-          space()
-
-      # open expression block of IF/WHILE/DO-WHILE/FOR statements
-      write("(")
-
-    elif node.parent.type == "catch":
-      # open expression block of CATCH statement
-      write("(")
-
-    elif node.parent.type == "switch" and node.parent.get("switchType") == "case":
-      # open expression block of SWITCH statement
-      write("(")
-
-
-  #
-  # OPEN: FIRST
-  ##################################
-
-  elif node.type == "first":
-    # for loop
-    if node.parent.type == "loop" and node.parent.get("loopType") == "FOR":
-      write("(")
-
-    # operation
-    elif node.parent.type == "operation":
-      # operation (var a = -1)
-      if node.parent.get("left", False) == True:
-        compileToken(node.parent.get("operator"), True)
-
-
-
-  #
-  # OPEN: SECOND
-  ##################################
-
-  elif node.type == "second":
-    # for loop
-    if node.parent.type == "loop" and node.parent.get("loopType") == "FOR":
-      if not node.parent.hasChild("first"):
-        write("(;")
-
-    # operation
-    elif node.parent.type == "operation":
-      if node.isComplex():
-        # (?: hook operation)
-        if node.parent.get("operator") == "HOOK":
-          sep()
-        else:
-          line()
-
-
-
-
-
-  #
-  # OPEN: THIRD
-  ##################################
-
-  elif node.type == "third":
-    # for loop
-    if node.parent.type == "loop" and node.parent.get("loopType") == "FOR":
-      if not node.parent.hasChild("second"):
-        if node.parent.hasChild("first"):
-          write(";")
-          space(False)
-        else:
-          write("(;;")
-
-    # operation
-    elif node.parent.type == "operation":
-      # (?: hook operation)
-      if node.parent.get("operator") == "HOOK":
-        if node.isComplex():
-          sep()
-
-
-  #
-  # OPEN: STATEMENT
-  ##################################
-
-  elif node.type == "statement":
-    # for loop
-    if node.parent.type == "loop" and node.parent.get("loopType") == "FOR":
-      if node.parent.get("forVariant") == "iter":
-        if not node.parent.hasChild("first") and not node.parent.hasChild("second") and not node.parent.hasChild("third"):
-          write("(;;");
-
-        elif not node.parent.hasChild("second") and not node.parent.hasChild("third"):
-          write(";")
-
-      write(")")
-
-      if not node.hasChild("block"):
-        space(False)
-
-
-
-
-
-
-
-
-
-
-
-
-
-  #####################################################################################################################
-  # Children content
-  #####################################################################################################################
-
-  if node.hasChildren():
-    for child in node.children:
-      if not node.type in [ "commentsBefore", "commentsAfter" ]:
-        compileNode(child)
-
-
-
-
-
-
-
-
-
-  #####################################################################################################################
-  # Closing node
-  #####################################################################################################################
-
-  #
-  # CLOSE: IDENTIFIER
-  ##################################
-
-  if node.type == "identifier":
-    if node.hasParent() and node.parent.type == "variable" and not node.isLastChild(True):
-      write(".")
-    elif node.hasParent() and node.parent.type == "label":
-      write(":")
-
-
-  #
-  # CLOSE: ACCESSOR
-  ##################################
-
-  elif node.type == "accessor":
-    if node.hasParent() and node.parent.type == "variable" and not node.isLastChild(True):
-      write(".")
-
-
-  #
-  # CLOSE: KEYVALUE
-  ##################################
-
-  elif node.type == "keyvalue":
-    if node.hasParent() and node.parent.type == "map" and not node.isLastChild(True):
-      noline()
-      write(",")
-
-      if pretty:
-        commentNode(node)
-
-        if node.getChild("value").isComplex():
-          sep()
-        elif node.parent.isComplex():
-          line()
-        else:
-          space()
-
-
-  #
-  # CLOSE: DEFINITION
-  ##################################
-
-  elif node.type == "definition":
-    if node.hasParent() and node.parent.type == "definitionList" and not node.isLastChild(True):
-      write(",")
-
-      if pretty:
-        commentNode(node)
-
-        if node.hasComplexChildren():
-          line()
-        else:
-          space()
-
-
-  #
-  # CLOSE: LEFT
-  ##################################
-
-  elif node.type == "left":
-    if node.hasParent() and node.parent.type == "assignment":
-      oper = node.parent.get("operator", False)
-
-      if node.parent.parent.type == "statementList":
-        realNode = node.parent.parent
-      else:
-        realNode = node.parent
-
-      # be compact in for-loops
-      compact = realNode.hasParent() and realNode.parent.type in [ "first", "second", "third" ] and realNode.parent.parent.type == "loop" and realNode.parent.parent.get("loopType") == "FOR"
-      compileToken(oper, compact)
-
-
-
-
-
-
-  #
-  # CLOSE: KEY
-  ##################################
-
-  elif node.type == "key":
-    if node.hasParent() and node.parent.type == "accessor":
-      write("]")
-
-
-  #
-  # CLOSE: GROUP
-  ##################################
-
-  elif node.type == "group":
-    if node.getChildrenLength(True) == 1:
-      noline()
-
-    write(")")
-
-
-  #
-  # CLOSE: VOID
-  ##################################
-
-  elif node.type == "void":
-    if node.getChildrenLength(True) == 1:
-      noline()
-
-    write(")")
-
-
-  #
-  # CLOSE: ARRAY
-  ##################################
-
-  elif node.type == "array":
-    if node.hasChildren(True):
-      space(False)
-
-    write("]")
-
-
-  #
-  # CLOSE: PARAMS
-  ##################################
-
-  elif node.type == "params":
-    write(")")
-
-
-  #
-  # CLOSE: MAP
-  ##################################
-
-  elif node.type == "map":
-    if pretty:
-      if node.isComplex():
-        line()
-        minus()
-
-      elif node.hasChildren(True):
-        space()
-
-    write("}")
-
-
-
-
-
-
-  #
-  # CLOSE: SWITCH
-  ##################################
-
-  elif node.type == "switch":
-    if node.get("switchType") == "case":
-      if pretty:
-        minus()
-        minus()
-        line()
-
-      write("}")
-
-      if pretty:
-        commentNode(node)
-        line()
-
-    # Force a additinal line feed after each switch/try
-    if pretty and not node.isLastChild():
-      sep()
-
-
-  #
-  # CLOSE: CASE
-  ##################################
-
-  elif node.type == "case":
-    write(":")
-
-    if pretty:
-      commentNode(node)
-      plus()
-      line()
-
-
-
-
-
-
-
-
-  #
-  # CLOSE: BLOCK
-  ##################################
-
-  elif node.type == "block":
-    if pretty and node.hasChildren():
-      minus()
-      line()
-
-    write("}")
-
-    if pretty:
-      commentNode(node)
-
-      if node.hasChildren():
-        # Newline afterwards
-        if node.parent.type == "body" and node.parent.parent.type == "function":
-
-          # But only when this isn't a function block inside a assignment
-          if node.parent.parent.parent.type in [ "right", "params" ]:
-            pass
-
-          elif node.parent.parent.parent.type == "value" and node.parent.parent.parent.parent.type == "keyvalue":
-            pass
-
-          else:
-            line()
-
-        else:
-          line()
-
-
-  #
-  # CLOSE: LOOP
-  ##################################
-
-  elif node.type == "loop":
-    if node.get("loopType") == "DO":
-      semicolon()
-
-    if pretty:
-      commentNode(node)
-
-      # Force a additinal line feed after each loop
-      if not node.isLastChild():
-        if node.hasChild("elseStatement"):
-          sep()
-        elif node.getChild("statement").hasBlockChildren():
-          sep()
-        else:
-          line()
-
-
-  #
-  # CLOSE: FUNCTION
-  ##################################
-
-  elif node.type == "function":
-    if pretty:
-      commentNode(node)
-
-      if not node.isLastChild() and node.hasParent() and node.parent.type in [ "block", "file" ]:
-        sep()
-
-
-  #
-  # CLOSE: EXPRESSION
-  ##################################
-
-  elif node.type == "expression":
-    if node.parent.type == "loop":
-      write(")")
-
-      # e.g. a if-construct without a block {}
-      if node.parent.getChild("statement").hasChild("block"):
-        pass
-
-      elif node.parent.type == "loop" and node.parent.get("loopType") == "DO":
-        pass
-
-      else:
-        space(False)
-
-    elif node.parent.type == "catch":
-      write(")")
-
-    elif node.parent.type == "switch" and node.parent.get("switchType") == "case":
-      write(")")
-
-      if pretty:
-        commentNode(node)
-        line()
-
-      write("{")
-
-      if pretty:
-        plus()
-        plus()
-
-
-  #
-  # CLOSE: FIRST
-  ##################################
-
-  elif node.type == "first":
-    # for loop
-    if node.parent.type == "loop" and node.parent.get("loopType") == "FOR":
-      if node.parent.get("forVariant") == "iter":
-        write(";")
-
-        if node.parent.hasChild("second"):
-          space(False)
-
-    # operation
-    elif node.parent.type == "operation" and node.parent.get("left", False) != True:
-      oper = node.parent.get("operator")
-
-      if node.parent.parent.type == "statementList":
-        realNode = node.parent.parent
-      else:
-        realNode = node.parent
-
-      compact = realNode.hasParent() and realNode.parent.type in [ "first", "second", "third" ] and realNode.parent.parent.type == "loop" and realNode.parent.parent.get("loopType") == "FOR"
-      compileToken(oper, compact)
-
-
-  #
-  # CLOSE: SECOND
-  ##################################
-
-  elif node.type == "second":
-    # for loop
-    if node.parent.type == "loop" and node.parent.get("loopType") == "FOR":
-      write(";")
-
-      if node.parent.hasChild("third"):
-        space(False)
-
-    # operation
-    elif node.parent.type == "operation":
-      # (?: hook operation)
-      if node.parent.get("operator") == "HOOK":
-        noline()
-        space(False)
-        write(":")
-        space(False)
-
-
-
-
-
-
-
-
-
-  #
-  # CLOSE: OTHER
-  ##################################
-
-  if node.hasParent() and not node.type in [ "comment", "commentsBefore", "commentsAfter" ]:
-
-    # Add comma dividers between statements in these parents
-    if node.parent.type in [ "array", "params", "statementList" ]:
-      if not node.isLastChild(True):
-        write(",")
-
-        if pretty:
-          commentNode(node)
-
-          if node.isComplex():
-            line()
-          else:
-            space()
-
-    # Semicolon handling
-    elif node.type in [ "group", "block", "assignment", "call", "operation", "definitionList", "return", "break", "continue", "delete", "accessor", "instantiation", "throw", "variable" ]:
-
-      # Default semicolon handling
-      if node.parent.type in [ "block", "file" ]:
-        semicolon()
-
-        if pretty:
-          commentNode(node)
-          line()
-
-          if node.isComplex() and not node.isLastChild():
-            sep()
-
-      # Special handling for switch statements
-      elif node.parent.type == "statement" and node.parent.parent.type == "switch" and node.parent.parent.get("switchType") == "case":
-        semicolon()
-
-        if pretty:
-          commentNode(node)
-          line()
-
-          if node.isComplex() and not node.isLastChild():
-            sep()
-
-      # Special handling for loops (e.g. if) without blocks {}
-      elif node.parent.type in [ "statement", "elseStatement" ] and not node.parent.hasChild("block") and node.parent.parent.type == "loop":
-        semicolon()
-
-        if pretty:
-          commentNode(node)
-          line()
-
-          if node.isComplex() and not node.isLastChild():
-            sep()
-
-
-  #
-  # CLOSE: OTHER
-  ##################################
-
-  if pretty:
-    # Rest of the after comments (not inserted previously)
-    commentNode(node)
-
-
-
-
-
-
-
-
-
-
-
-def main():
-  parser = optparse.OptionParser()
-
-  parser.add_option("-w", "--write", action="store_true", dest="write", default=False, help="Writes file to incoming fileName + EXTENSION.")
-  parser.add_option("-e", "--extension", dest="extension", metavar="EXTENSION", help="The EXTENSION to use", default="")
-  parser.add_option("-c", "--compress", action="store_true", dest="compress", help="Enable compression", default=False)
-  parser.add_option("--optimize-variables", action="store_true", dest="optimizeVariables", default=False, help="Optimize variables. Reducing size.")
-  parser.add_option("--encoding", dest="encoding", default="utf-8", metavar="ENCODING", help="Defines the encoding expected for input files.")
-
-  (options, args) = parser.parse_args()
-
-  if len(args) == 0:
-    print "Needs one or more arguments (files) to compile!"
-    sys.exit(1)
-
-  for fileName in args:
-    if options.write:
-      print "Compiling %s => %s%s" % (fileName, fileName, options.extension)
-    else:
-      print "Compiling %s => stdout" % fileName
-
-    restree = treegenerator.createSyntaxTree(tokenizer.parseFile(fileName, "", options.encoding))
-
-    if options.optimizeVariables:
-      variableoptimizer.search(restree, [], 0, "$")
-
-    compiledString = compile(restree, not options.compress)
-    if options.write:
-      if compiledString != "" and not compiledString.endswith("\n"):
-        compiledString += "\n"
-        
-      filetool.save(fileName + options.extension, compiledString)
-
-    else:
-      try:
-        print compiledString
-
-      except UnicodeEncodeError:
-        print "  * Could not encode result to ascii. Use '-w' instead."
-        sys.exit(1)
-
-
-
-if __name__ == '__main__':
-  try:
-    main()
-
-  except KeyboardInterrupt:
-    print
-    print "  * Keyboard Interrupt"
-    sys.exit(1)
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/config.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/config.py
deleted file mode 100755 (executable)
index 19c3077..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-#!/usr/bin/env python
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#
-################################################################################
-
-import re
-
-
-
-
-#
-# FILE EXTENSIONS
-#
-
-JSEXT = ".js"
-PYEXT = ".py"
-XMLEXT = ".xml"
-TOKENEXT = ".txt"
-DIRIGNORE = [ ".svn", "CVS" ]
-
-
-
-
-#
-# QOOXDOO HEADER SUPPORT
-#
-
-QXHEAD = {
-  # TODO: Obsolete since 0.7
-  "defineClass" : re.compile('qx.OO.defineClass\(\s*["\']([\.a-zA-Z0-9_-]+)["\'](\s*\,\s*([\.a-zA-Z0-9_-]+))?', re.M),
-
-  # 0.7 API
-  "classDefine" : re.compile('qx.(Clazz|Locale|Mixin|Interface).define\(\s*["\']([\.a-zA-Z0-9_-]+)["\']?', re.M),
-  "superClass" : re.compile('extend\s*:\s*([\.a-zA-Z0-9_-]+)', re.M),
-
-  "id" : re.compile("#id\(\s*([\.a-zA-Z0-9_-]+?)\s*\)", re.M),
-  "module" : re.compile("#module\(\s*([\.a-zA-Z0-9_-]+?)\s*\)", re.M),
-  "require" : re.compile("#require\(\s*([\.a-zA-Z0-9_-]+?)\s*\)", re.M),
-  "use" : re.compile("#use\(\s*([\.a-zA-Z0-9_-]+?)\s*\)", re.M),
-  "after" : re.compile("#after\(\s*([\.a-zA-Z0-9_-]+?)\s*\)", re.M),
-  "load" : re.compile("#load\(\s*([\.a-zA-Z0-9_-]+?)\s*\)", re.M),
-  "optional" : re.compile("#optional\(\s*([\.a-zA-Z0-9_-]+?)\s*\)", re.M),
-  "resource" : re.compile("#resource\(\s*(.*?):(.*?)\s*\)", re.M),
-  "embed" : re.compile("#embed\(\s*([a-zA-Z0-9]+?)\.([a-zA-Z0-9]+?)/(.+?)\s*\)", re.M)
-}
-
-
-
-
-
-#
-# JAVASCRIPT SUPPORT
-#
-
-JSBUILTIN = [ "Object", "Array", "RegExp", "Math", "String", "Number", "Error" ]
-
-JSTOKENS = {
-  "." : "DOT",
-  "," : "COMMA",
-  ":" : "COLON",
-  "?" : "HOOK",
-  ";" : "SEMICOLON",
-  "!" : "NOT",
-  "~" : "BITNOT",
-  "\\" : "BACKSLASH",
-
-  "+" : "ADD",
-  "-" : "SUB",
-  "*" : "MUL",
-  "/" : "DIV",
-  "%" : "MOD",
-
-  "{" : "LC",
-  "}" : "RC",
-  "(" : "LP",
-  ")" : "RP",
-  "[" : "LB",
-  "]" : "RB",
-
-  "<" : "LT",
-  "<=" : "LE",
-  ">" : "GT",
-  ">=" : "GE",
-  "==" : "EQ",
-  "!=" : "NE",
-  "===" : "SHEQ",
-  "!==" : "SHNE",
-
-  "=" : "ASSIGN",
-
-  "+=" : "ASSIGN_ADD",
-  "-=" : "ASSIGN_SUB",
-  "*=" : "ASSIGN_MUL",
-  "/=" : "ASSIGN_DIV",
-  "%=" : "ASSIGN_MOD",
-
-  "|=" : "ASSIGN_BITOR",
-  "^=" : "ASSIGN_BITXOR",
-  "&=" : "ASSIGN_BITAND",
-  "<<=" : "ASSIGN_LSH",
-  ">>=" : "ASSIGN_RSH",
-  ">>>=" : "ASSIGN_URSH",
-
-  "&&" : "AND",
-  "||" : "OR",
-
-  "|" : "BITOR",
-  "^|" : "BITXOR",
-  "&" : "BITAND",
-
-  "^" : "POWEROF",
-
-  "<<" : "LSH",
-  ">>" : "RSH",
-  ">>>" : "URSH",
-
-  "++" : "INC",
-  "--" : "DEC",
-
-  "::" : "COLONCOLON",
-  ".." : "DOTDOT",
-
-  "@" : "XMLATTR",
-
-  "//" : "SINGLE_COMMENT",
-  "/*" : "COMMENT_START",
-  "*/" : "COMMENT_STOP",
-  "/*!" : "DOC_START"
-}
-
-JSPROTECTED = {
-  "null" : "NULL",
-  "Infinity" : "INFINITY",
-  "true" : "TRUE",
-  "false" : "FALSE",
-
-  "this" : "THIS",
-  "var" : "VAR",
-  "new" : "NEW",
-  "prototype" : "PROTOTYPE",
-  "return" : "RETURN",
-  "function" : "FUNCTION",
-
-  "while" : "WHILE",
-  "if" : "IF",
-  "else" : "ELSE",
-  "switch" : "SWITCH",
-  "case" : "CASE",
-  "default" : "DEFAULT",
-  "break" : "BREAK",
-  "continue" : "CONTINUE",
-  "goto" : "GOTO",
-  "do" : "DO",
-  "delete" : "DELETE",
-  "for" : "FOR",
-  "in" : "IN",
-  "with" : "WITH",
-  "try" : "TRY",
-  "catch" : "CATCH",
-  "finally" : "FINALLY",
-  "throw" : "THROW",
-  "instanceof" : "INSTANCEOF",
-  "typeof" : "TYPEOF",
-  "void" : "VOID",
-  "call" : "CALL",
-  "apply" : "APPLY"
-}
-
-JSSPACE_BEFORE = [ "INSTANCEOF", "IN" ]
-JSSPACE_AFTER = [ "VAR", "NEW", "GOTO", "INSTANCEOF", "TYPEOF", "DELETE", "IN", "THROW", "CASE" ]
-JSSPACE_AFTER_USAGE = [ "RETURN", "FUNCTION" ]
-JSPARANTHESIS_BEFORE = [ "ELSE", "FINALLY", "CATCH", "WHILE" ]
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/filetool.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/filetool.py
deleted file mode 100755 (executable)
index 0cf2361..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/usr/bin/env python
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#
-################################################################################
-
-import os, codecs, cPickle, sys
-import textutil
-
-def save(filePath, content="", encoding="utf-8"):
-  # Normalize
-  filePath = normalize(filePath)
-
-  # Create directory
-  directory(os.path.dirname(filePath))
-
-  # Writing file
-  try:
-    outputFile = codecs.open(filePath, encoding=encoding, mode="w", errors="replace")
-    outputFile.write(content)
-  except IOError, (errno, strerror):
-    print "  * I/O error(%s): %s" % (errno, strerror)
-    sys.exit(1)
-  except UnicodeDecodeError:
-    print "  * Could not decode result to %s" % encoding
-    sys.exit(1)
-  except:
-    print "  * Unexpected error:", sys.exc_info()[0]
-    sys.exit(1)
-
-  outputFile.flush()
-  outputFile.close()
-
-
-def directory(dirname):
-  # Normalize
-  dirname = normalize(dirname)
-
-  # Check/Create directory
-  if dirname != "" and not os.path.exists(dirname):
-    os.makedirs(dirname)
-
-
-def normalize(filename):
-  return os.path.normcase(os.path.normpath(filename))
-
-
-def read(filePath, encoding="utf_8"):
-  try:
-    ref = codecs.open(filePath, encoding=encoding, mode="r")
-    content = ref.read()
-    ref.close()
-
-    return textutil.any2Unix(unicode(content))
-
-  except IOError, (errno, strerror):
-    print "  * I/O error(%s): %s" % (errno, strerror)
-    sys.exit(1)
-
-  except ValueError:
-    print "  * Invalid Encoding. Required encoding %s in %s" % (encoding, filePath)
-    sys.exit(1)
-
-  except:
-    print "  * Unexpected error:", sys.exc_info()[0]
-    sys.exit(1)
-
-
-def storeCache(cachePath, data):
-  try:
-    cPickle.dump(data, open(cachePath, 'wb'), 2)
-
-  except EOFError or PickleError or PicklingError:
-    print "  * Could not store cache to %s" % cachePath
-    sys.exit(1)
-
-
-def readCache(cachePath):
-  try:
-    return cPickle.load(open(cachePath, 'rb'))
-
-  except EOFError or PickleError or UnpicklingError:
-    print "  * Could not read cache from %s" % cachePath
-    sys.exit(1)
-
-
-def checkCache(filePath, cachePath, internalModTime):
-  fileModTime = os.stat(filePath).st_mtime
-
-  try:
-    cacheModTime = os.stat(cachePath).st_mtime
-  except OSError:
-    cacheModTime = 0
-
-  if internalModTime > cacheModTime:
-    # print "Invalid cache: %s" % filePath
-    # print "%s > %s" % (internalModTime, cacheModTime)
-    return True
-
-  return fileModTime > cacheModTime
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/graph.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/graph.py
deleted file mode 100755 (executable)
index b5bac4c..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-import os
-import math
-import filetool
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-# Write dependencies to a Graphviz compatible file (http://www.graphviz.org/)
-
-def dotLine(fileDb, fileId, depEntry, largetFileSize):
-  file = fileId.split(".")
-  dep = depEntry.split(".")
-  weight = 1
-
-  for i in range(len(file)):
-    if file[i] == dep[i]:
-      weight += 1
-    else:
-      break
-
-  size = os.path.getsize(fileDb[fileId]["path"])
-
-  content = '  "%s" [color="%s %s 1.000"];\n' % (fileId, math.log(size)/math.log(largetFileSize), math.log(size)/math.log(largetFileSize))
-  content += '  "%s" -> "%s" [weight=%s];\n' % (fileId, depEntry, weight)
-
-  return content
-
-
-def store(fileDb, sortedIncludeList, options):
-  content = '''digraph "qooxdoo" {
-node [style=filled];
-'''
-
-  largest = 0
-  for fileId in sortedIncludeList:
-      size = os.path.getsize(fileDb[fileId]["path"])
-      if size > largest:
-          largest = size
-
-  for fileId in sortedIncludeList:
-    if len(fileDb[fileId]["loadtimeDeps"]) > 0:
-      for depEntry in fileDb[fileId]["loadtimeDeps"]:
-        content += dotLine(fileDb, fileId, depEntry, largest)
-
-    if len(fileDb[fileId]["afterDeps"]) > 0:
-      for depEntry in fileDb[fileId]["afterDeps"]:
-        content += dotLine(fileDb, fileId, depEntry, largest)
-
-    if len(fileDb[fileId]["runtimeDeps"]) > 0:
-      for depEntry in fileDb[fileId]["runtimeDeps"]:
-        content += dotLine(fileDb, fileId, depEntry, largest)
-
-    if len(fileDb[fileId]["loadDeps"]) > 0:
-      for depEntry in fileDb[fileId]["loadDeps"]:
-        content += dotLine(fileDb, fileId, depEntry, largest)
-
-  content += '}'
-  filetool.save(options.depDotFile, content)
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/loader.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/loader.py
deleted file mode 100755 (executable)
index 309a558..0000000
+++ /dev/null
@@ -1,827 +0,0 @@
-#!/usr/bin/env python
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#
-################################################################################
-
-import sys, string, re, os, random, cPickle, codecs
-import config, tokenizer, treegenerator, filetool, stringoptimizer, textutil
-
-internalModTime = 0
-
-
-def validateFiles():
-
-  global internalModTime
-
-  base = os.path.dirname(os.path.abspath(sys.argv[0]))
-  if base.endswith("modules"):
-    path = base
-  else:
-    path = os.path.join(base, "modules")
-
-  maxFileModTime = os.stat(os.path.join(path, ".." + os.path.sep + "generator.py")).st_mtime
-
-  for root, dirs, files in os.walk(path):
-
-    # Filter ignored directories
-    for ignoredDir in config.DIRIGNORE:
-      if ignoredDir in dirs:
-        dirs.remove(ignoredDir)
-
-    # Searching for files
-    for fileName in files:
-      if os.path.splitext(fileName)[1] != config.PYEXT:
-        continue
-
-      filePath = os.path.join(root, fileName)
-      fileModTime = os.stat(filePath).st_mtime
-
-      if fileModTime > maxFileModTime:
-        maxFileModTime = fileModTime
-
-
-  internalModTime = maxFileModTime
-
-
-
-def getInternalModTime(options):
-
-  global internalModTime
-
-  if internalModTime == 0 and not options.disableInternalCheck:
-    validateFiles()
-
-  return internalModTime
-
-
-
-def extractFileContentId(data):
-  # TODO: Obsolete with 0.7
-  for item in config.QXHEAD["defineClass"].findall(data):
-    return item[0]
-
-  for item in config.QXHEAD["id"].findall(data):
-    return item
-
-  for item in config.QXHEAD["classDefine"].findall(data):
-    return item[1]
-
-  return None
-
-
-def extractSuperClass(data):
-  # TODO: Obsolete with 0.7
-  for item in config.QXHEAD["defineClass"].findall(data):
-    return item[2]
-
-  for item in config.QXHEAD["superClass"].findall(data):
-    return item
-
-  return None
-
-
-def extractLoadtimeDeps(data, fileId=""):
-  deps = []
-
-  # qooxdoo specific:
-  # store inheritance deps
-  superClass = extractSuperClass(data)
-  if superClass != None and superClass != "" and not superClass in config.JSBUILTIN:
-    deps.append("qx.OO")
-    deps.append(superClass)
-  elif "qx.OO.defineClass(" in data:
-    deps.append("qx.OO")
-
-
-  # Adding explicit requirements
-  for item in config.QXHEAD["require"].findall(data):
-    if item == fileId:
-      print "    - Self-referring load dependency: %s" % item
-    elif item in deps:
-      print "    - Double definition of load dependency: %s" % item
-    else:
-      deps.append(item)
-
-  return deps
-
-
-def extractAfterDeps(data, fileId=""):
-  deps = []
-
-  # Adding explicit after requirements
-  for item in config.QXHEAD["after"].findall(data):
-    if item == fileId:
-      print "    - Self-referring load dependency: %s" % item
-    elif item in deps:
-      print "    - Double definition of load dependency: %s" % item
-    else:
-      deps.append(item)
-
-  return deps
-
-
-def extractRuntimeDeps(data, fileId=""):
-  deps = []
-
-  # Adding explicit runtime requirements
-  for item in config.QXHEAD["use"].findall(data):
-    if item == fileId:
-      print "    - Self-referring runtime dependency: %s" % item
-    elif item in deps:
-      print "    - Double definition of runtime dependency: %s" % item
-    else:
-      deps.append(item)
-
-  return deps
-
-
-def extractLoadDeps(data, fileId=""):
-  deps = []
-
-  # Adding before requirements
-  for item in config.QXHEAD["load"].findall(data):
-    if item == fileId:
-      print "    - Self-referring runtime dependency: %s" % item
-    elif item in deps:
-      print "    - Double definition of runtime dependency: %s" % item
-    else:
-      deps.append(item)
-
-  return deps
-
-
-def extractOptional(data):
-  deps = []
-
-  # Adding explicit requirements
-  for item in config.QXHEAD["optional"].findall(data):
-    if not item in deps:
-      deps.append(item)
-
-  return deps
-
-
-def extractModules(data):
-  mods = []
-
-  for item in config.QXHEAD["module"].findall(data):
-    if not item in mods:
-      mods.append(item)
-
-  return mods
-
-
-def extractResources(data, fileId):
-  res = []
-
-  for item in config.QXHEAD["resource"].findall(data):
-    res.append({ "namespace" : fileId[0:fileId.find(".")], "id" : item[0], "entry" : item[1] })
-
-  return res
-
-
-def extractEmbeds(data):
-  emb = []
-
-  for item in config.QXHEAD["embed"].findall(data):
-    emb.append({ "namespace" : item[0], "id" : item[1], "entry" : item[2] })
-
-  return emb
-
-
-
-def getTokens(fileDb, fileId, options):
-  if not fileDb[fileId].has_key("tokens"):
-    if options.verbose:
-      print "    - Generating tokens for %s..." % fileId
-
-    useCache = False
-    loadCache = False
-
-    fileEntry = fileDb[fileId]
-
-    filePath = fileEntry["path"]
-    fileEncoding = fileEntry["encoding"]
-
-    if options.cacheDirectory != None:
-      cachePath = os.path.join(filetool.normalize(options.cacheDirectory), fileId + "-tokens.pcl")
-      useCache = True
-
-      if not filetool.checkCache(filePath, cachePath, getInternalModTime(options)):
-        loadCache = True
-
-    if loadCache:
-      tokens = filetool.readCache(cachePath)
-    else:
-      fileContent = filetool.read(filePath, fileEncoding)
-      tokens = tokenizer.parseStream(fileContent, fileId)
-
-      if useCache:
-        if options.verbose:
-          print "    - Caching tokens for %s..." % fileId
-
-        filetool.storeCache(cachePath, tokens)
-
-    fileDb[fileId]["tokens"] = tokens
-
-  return fileDb[fileId]["tokens"]
-
-
-
-
-def getTree(fileDb, fileId, options):
-  if not fileDb[fileId].has_key("tree"):
-    if options.verbose:
-      print "    - Generating tree for %s..." % fileId
-
-    useCache = False
-    loadCache = False
-
-    fileEntry = fileDb[fileId]
-    filePath = fileEntry["path"]
-
-    if options.cacheDirectory != None:
-      cachePath = os.path.join(filetool.normalize(options.cacheDirectory), fileId + "-tree.pcl")
-      useCache = True
-
-      if not filetool.checkCache(filePath, cachePath, getInternalModTime(options)):
-        loadCache = True
-
-    if loadCache:
-      tree = filetool.readCache(cachePath)
-    else:
-      tree = treegenerator.createSyntaxTree(getTokens(fileDb, fileId, options))
-
-      if useCache:
-        if options.verbose:
-          print "    - Caching tree for %s..." % fileId
-
-        filetool.storeCache(cachePath, tree)
-
-    fileDb[fileId]["tree"] = tree
-
-  return fileDb[fileId]["tree"]
-
-
-
-
-
-def getStrings(fileDb, fileId, options):
-  if not fileDb[fileId].has_key("strings"):
-    if options.verbose:
-      print "    - Searching for strings in %s..." % fileId
-
-    useCache = False
-    loadCache = False
-
-    fileEntry = fileDb[fileId]
-    filePath = fileEntry["path"]
-
-    if options.cacheDirectory != None:
-      cachePath = os.path.join(filetool.normalize(options.cacheDirectory), fileId + "-strings.pcl")
-      useCache = True
-
-      if not filetool.checkCache(filePath, cachePath, getInternalModTime(options)):
-        loadCache = True
-
-    if loadCache:
-      strings = filetool.readCache(cachePath)
-    else:
-      strings = stringoptimizer.search(getTree(fileDb, fileId, options), options.verbose)
-
-      if useCache:
-        if options.verbose:
-          print "    - Caching strings for %s..." % fileId
-
-        filetool.storeCache(cachePath, strings)
-
-    fileDb[fileId]["strings"] = strings
-
-  return fileDb[fileId]["strings"]
-
-
-
-
-
-def resolveAutoDeps(fileDb, options):
-  ######################################################################
-  #  DETECTION OF AUTO DEPENDENCIES
-  ######################################################################
-
-  if options.verbose:
-    print "  * Resolving dependencies..."
-  else:
-    print "  * Resolving dependencies: ",
-
-  knownIds = []
-  depCounter = 0
-  hasMessage = False
-
-  for fileId in fileDb:
-    knownIds.append(fileId)
-
-  for fileId in fileDb:
-    fileEntry = fileDb[fileId]
-
-    if fileEntry["autoDeps"] == True:
-      continue
-
-    if not options.verbose:
-      sys.stdout.write(".")
-      sys.stdout.flush()
-
-    hasMessage = False
-
-    fileTokens = getTokens(fileDb, fileId, options)
-    fileDeps = []
-
-    assembledName = ""
-
-    for token in fileTokens:
-      if token["type"] == "name" or token["type"] == "builtin":
-        if assembledName == "":
-          assembledName = token["source"]
-        else:
-          assembledName += ".%s" % token["source"]
-
-        if assembledName in knownIds:
-          if assembledName != fileId and not assembledName in fileDeps:
-            fileDeps.append(assembledName)
-
-          assembledName = ""
-
-      elif not (token["type"] == "token" and token["source"] == "."):
-        if assembledName != "":
-          assembledName = ""
-
-        if token["type"] == "string" and token["source"] in knownIds and token["source"] != fileId and not token["source"] in fileDeps:
-          fileDeps.append(token["source"])
-
-
-    if options.verbose:
-      print "    - Analysing %s..." % fileId
-
-    # Updating lists...
-    optionalDeps = fileEntry["optionalDeps"]
-    loadtimeDeps = fileEntry["loadtimeDeps"]
-    runtimeDeps = fileEntry["runtimeDeps"]
-
-    # Removing optional deps from list
-    for dep in optionalDeps:
-      if dep in fileDeps:
-        fileDeps.remove(dep)
-
-    if options.verbose:
-
-      # Checking loadtime dependencies
-      for dep in loadtimeDeps:
-        if not dep in fileDeps:
-          print "    - Could not confirm #require(%s) in %s!" % (dep, fileId)
-
-      # Checking runtime dependencies
-      for dep in runtimeDeps:
-        if not dep in fileDeps:
-          print "    - Could not confirm #use(%s) in %s!" % (dep, fileId)
-
-    # Adding new content to runtime dependencies
-    for dep in fileDeps:
-      if not dep in runtimeDeps and not dep in loadtimeDeps:
-        if options.verbose:
-          print "      - Adding dependency: %s" % dep
-
-        runtimeDeps.append(dep)
-        depCounter += 1
-
-    # store flag to omit it the next run
-    fileEntry["autoDeps"] = True
-
-  if not hasMessage and not options.verbose:
-    print
-
-  # print "  * Added %s dependencies" % depCounter
-
-
-
-
-def storeEntryCache(fileDb, options):
-  cacheCounter = 0
-  ignoreDbEntries = [ "tokens", "tree", "path", "pathId", "encoding", "resourceInput", "resourceOutput", "listIndex", "classPath", "classUri" ]
-
-  for fileId in fileDb:
-    fileEntry = fileDb[fileId]
-
-    if fileEntry["cached"] == True:
-      continue
-
-    # Store flag
-    fileEntry["cached"] = True
-
-    # Copy entries
-    fileEntryCopy = {}
-    for key in fileEntry:
-      if not key in ignoreDbEntries:
-        fileEntryCopy[key] = fileEntry[key]
-
-    filetool.storeCache(fileEntry["cachePath"], fileEntryCopy)
-    cacheCounter += 1
-
-  if cacheCounter == 0:
-    print "  * No classes were modified"
-  else:
-    print "  * %s classes were modified" % cacheCounter
-
-
-
-
-def indexFile(filePath, filePathId, classPath, listIndex, classEncoding, classUri, resourceInput, resourceOutput, options, fileDb={}, moduleDb={}):
-
-  ########################################
-  # Checking cache
-  ########################################
-
-  useCache = False
-  loadCache = False
-  cachePath = None
-
-  if options.cacheDirectory != None:
-    cachePath = os.path.join(filetool.normalize(options.cacheDirectory), filePathId + "-entry.pcl")
-    useCache = True
-
-    if not filetool.checkCache(filePath, cachePath, getInternalModTime(options)):
-      loadCache = True
-
-
-
-  ########################################
-  # Loading file content / cache
-  ########################################
-
-  if loadCache:
-    fileEntry = filetool.readCache(cachePath)
-    fileId = filePathId
-
-  else:
-    fileContent = filetool.read(filePath, classEncoding)
-
-    # Extract ID
-    fileContentId = extractFileContentId(fileContent)
-
-    # Search for valid ID
-    if fileContentId == None:
-      print "    - Could not extract ID from file: %s. Fallback to path %s!" % (filePath, filePathId)
-      fileId = filePathId
-
-    else:
-      fileId = fileContentId
-
-    if fileId != filePathId:
-      print "    - ID mismatch: CONTENT=%s != PATH=%s" % (fileContentId, filePathId)
-      sys.exit(1)
-
-    fileEntry = {
-      "autoDeps" : False,
-      "cached" : False,
-      "cachePath" : cachePath,
-      "optionalDeps" : extractOptional(fileContent),
-      "loadtimeDeps" : extractLoadtimeDeps(fileContent, fileId),
-      "runtimeDeps" : extractRuntimeDeps(fileContent, fileId),
-      "afterDeps" : extractAfterDeps(fileContent, fileId),
-      "loadDeps" : extractLoadDeps(fileContent, fileId),
-      "resources" : extractResources(fileContent, fileId),
-      "embeds" : extractEmbeds(fileContent),
-      "modules" : extractModules(fileContent)
-    }
-
-
-
-  ########################################
-  # Additional data
-  ########################################
-
-  # We don't want to cache these items
-  fileEntry["path"] = filePath
-  fileEntry["pathId"] = filePathId
-  fileEntry["encoding"] = classEncoding
-  fileEntry["resourceInput"] = resourceInput
-  fileEntry["resourceOutput"] = resourceOutput
-  fileEntry["classUri"] = classUri
-  fileEntry["listIndex"] = listIndex
-  fileEntry["classPath"] = classPath
-
-
-  ########################################
-  # Registering file
-  ########################################
-
-  # Register to file database
-  fileDb[fileId] = fileEntry
-
-  # Register to module database
-  for moduleId in fileEntry["modules"]:
-    if moduleDb.has_key(moduleId):
-      moduleDb[moduleId].append(fileId)
-    else:
-      moduleDb[moduleId] = [ fileId ]
-
-
-
-
-
-def indexSingleScriptInput(classPath, listIndex, options, fileDb={}, moduleDb={}):
-  classPath = filetool.normalize(classPath)
-  counter = 0
-
-  # Search for other indexed lists
-  if len(options.classEncoding) > listIndex:
-    classEncoding = options.classEncoding[listIndex]
-  else:
-    classEncoding = "utf-8"
-
-  if len(options.classUri) > listIndex:
-    classUri = options.classUri[listIndex]
-  else:
-    classUri = None
-
-  if len(options.resourceInput) > listIndex:
-    resourceInput = options.resourceInput[listIndex]
-  else:
-    resourceInput = None
-
-  if len(options.resourceOutput) > listIndex:
-    resourceOutput = options.resourceOutput[listIndex]
-  else:
-    resourceOutput = None
-
-  for root, dirs, files in os.walk(classPath):
-
-    # Filter ignored directories
-    for ignoredDir in config.DIRIGNORE:
-      if ignoredDir in dirs:
-        dirs.remove(ignoredDir)
-
-    # Searching for files
-    for fileName in files:
-      if os.path.splitext(fileName)[1] == config.JSEXT:
-        filePath = os.path.join(root, fileName)
-        filePathId = filePath.replace(classPath + os.sep, "").replace(config.JSEXT, "").replace(os.sep, ".")
-
-        indexFile(filePath, filePathId, classPath, listIndex, classEncoding, classUri, resourceInput, resourceOutput, options, fileDb, moduleDb)
-        counter += 1
-
-  return counter
-
-
-def indexScriptInput(options):
-  if options.cacheDirectory != None:
-    filetool.directory(options.cacheDirectory)
-
-  print "  * Indexing class paths... "
-
-  fileDb = {}
-  moduleDb = {}
-  listIndex = 0
-
-  for classPath in options.classPath:
-    print "    - Indexing: %s" % classPath
-    counter = indexSingleScriptInput(classPath, listIndex, options, fileDb, moduleDb)
-    print "      - %s classes were found" % counter
-    listIndex += 1
-
-  if options.enableAutoDependencies:
-    resolveAutoDeps(fileDb, options)
-
-  if options.cacheDirectory != None:
-    storeEntryCache(fileDb, options)
-
-  return fileDb, moduleDb
-
-
-
-
-
-"""
-Simple resolver, just try to add items and put missing stuff around
-the new one.
-"""
-def addIdWithDepsToSortedList(sortedList, fileDb, fileId):
-  if not fileDb.has_key(fileId):
-    print "    * Error: Couldn't find required file: %s" % fileId
-    return False
-
-  # Test if already in
-  if not fileId in sortedList:
-
-    # Including loadtime dependencies
-    for loadtimeDepId in fileDb[fileId]["loadtimeDeps"]:
-      if loadtimeDepId == fileId: break;
-      addIdWithDepsToSortedList(sortedList, fileDb, loadtimeDepId)
-
-    # Including after dependencies
-    for afterDepId in fileDb[fileId]["afterDeps"]:
-      if afterDepId == fileId: break;
-      addIdWithDepsToSortedList(sortedList, fileDb, afterDepId)
-
-    # Add myself
-    if not fileId in sortedList:
-      sortedList.append(fileId)
-
-    # Include runtime dependencies
-    for runtimeDepId in fileDb[fileId]["runtimeDeps"]:
-      addIdWithDepsToSortedList(sortedList, fileDb, runtimeDepId)
-
-    # Include load dependencies
-    for loadDepId in fileDb[fileId]["loadDeps"]:
-      addIdWithDepsToSortedList(sortedList, fileDb, loadDepId)
-
-
-
-
-
-"""
-Search for dependencies, but don't add them. Just use them to put
-the new class after the stuff which is required (if it's included, too)
-"""
-def addIdWithoutDepsToSortedList(sortedList, fileDb, fileId):
-  if not fileDb.has_key(fileId):
-    print "    * Error: Couldn't find required file: %s" % fileId
-    return False
-
-  # Test if already in
-  if not fileId in sortedList:
-
-    # Search sortedList for files which needs this one and are already included
-    lowestIndex = None
-    currentIndex = 0
-    for lowId in sortedList:
-      for lowDepId in getResursiveLoadDeps([], fileDb, lowId, lowId):
-        if lowDepId == fileId and (lowestIndex == None or currentIndex < lowestIndex):
-          lowestIndex = currentIndex
-
-      currentIndex += 1
-
-    # Insert at defined index or just append new entry
-    if lowestIndex != None:
-      sortedList.insert(lowestIndex, fileId)
-    else:
-      sortedList.append(fileId)
-
-
-
-
-def getResursiveLoadDeps(deps, fileDb, fileId, ignoreId=None):
-  if fileId in deps:
-    return
-
-  if fileId != ignoreId:
-    deps.append(fileId)
-
-  # Including loadtime dependencies
-  for loadtimeDepId in fileDb[fileId]["loadtimeDeps"]:
-    getResursiveLoadDeps(deps, fileDb, loadtimeDepId)
-
-  # Including after dependencies
-  for afterDepId in fileDb[fileId]["afterDeps"]:
-    getResursiveLoadDeps(deps, fileDb, afterDepId)
-
-  return deps
-
-
-
-
-
-def getSortedList(options, fileDb, moduleDb):
-  includeWithDeps = []
-  excludeWithDeps = []
-  includeWithoutDeps = []
-  excludeWithoutDeps = []
-
-  sortedIncludeList = []
-  sortedExcludeList = []
-
-
-
-  # INCLUDE
-
-  # Add Modules and Files (with deps)
-  if options.includeWithDeps:
-    for include in options.includeWithDeps:
-      if include in moduleDb:
-        includeWithDeps.extend(moduleDb[include])
-
-      else:
-        regexp = textutil.toRegExp(include)
-
-        for fileId in fileDb:
-          if regexp.search(fileId):
-            if not fileId in includeWithDeps:
-              includeWithDeps.append(fileId)
-
-
-  # Add Modules and Files (without deps)
-  if options.includeWithoutDeps:
-    for include in options.includeWithoutDeps:
-      if include in moduleDb:
-        includeWithoutDeps.extend(moduleDb[include])
-
-      else:
-        regexp = textutil.toRegExp(include)
-
-        for fileId in fileDb:
-          if regexp.search(fileId):
-            if not fileId in includeWithoutDeps:
-              includeWithoutDeps.append(fileId)
-
-
-
-
-
-
-  # Add all if both lists are empty
-  if len(options.includeWithDeps) == 0 and len(options.includeWithoutDeps) == 0:
-    for fileId in fileDb:
-      includeWithDeps.append(fileId)
-
-  # Sorting include (with deps)
-  for fileId in includeWithDeps:
-    addIdWithDepsToSortedList(sortedIncludeList, fileDb, fileId)
-
-  # Sorting include (without deps)
-  for fileId in includeWithoutDeps:
-    addIdWithoutDepsToSortedList(sortedIncludeList, fileDb, fileId)
-
-
-
-  # EXCLUDE
-
-  # Add Modules and Files (with deps)
-  if options.excludeWithDeps:
-    for exclude in options.excludeWithDeps:
-      if exclude in moduleDb:
-        excludeWithDeps.extend(moduleDb[exclude])
-
-      else:
-        regexp = textutil.toRegExp(exclude)
-
-        for fileId in fileDb:
-          if regexp.search(fileId):
-            if not fileId in excludeWithDeps:
-              excludeWithDeps.append(fileId)
-
-
-  # Add Modules and Files (without deps)
-  if options.excludeWithoutDeps:
-    for exclude in options.excludeWithoutDeps:
-      if exclude in moduleDb:
-        excludeWithoutDeps.extend(moduleDb[exclude])
-
-      else:
-        regexp = textutil.toRegExp(exclude)
-
-        for fileId in fileDb:
-          if regexp.search(fileId):
-            if not fileId in excludeWithDeps:
-              excludeWithoutDeps.append(fileId)
-
-
-
-
-
-
-  # Sorting exclude (with deps)
-  for fileId in excludeWithDeps:
-    addIdWithDepsToSortedList(sortedExcludeList, fileDb, fileId)
-
-  # Sorting exclude (without deps)
-  for fileId in excludeWithoutDeps:
-    addIdWithoutDepsToSortedList(sortedExcludeList, fileDb, fileId)
-
-
-
-
-  # MERGE
-
-  # Remove excluded files from included files list
-  for fileId in sortedExcludeList:
-    if fileId in sortedIncludeList:
-      sortedIncludeList.remove(fileId)
-
-
-
-  # RETURN
-
-  return sortedIncludeList
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/mapper.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/mapper.py
deleted file mode 100755 (executable)
index 58fb4f4..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/env python
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#
-################################################################################
-
-table = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
-
-def convert(current):
-  # Possibilities with each character
-  # 1: 36 = 36
-  # 2: 36*36 = 1296
-  # 3: 36*36*36 = 46656
-
-  res = ""
-  length = len(table) - 1
-
-  if current / length > 0:
-    res += convert(current / length)
-
-  res += table[current % length]
-
-  return res
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/migrator.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/migrator.py
deleted file mode 100755 (executable)
index 26bd145..0000000
+++ /dev/null
@@ -1,326 +0,0 @@
-#!/usr/bin/env python
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Andreas Ecker (ecker)
-#
-################################################################################
-
-import sys, re, os
-import config, filetool, treegenerator, tokenizer, compiler, textutil
-
-def entryCompiler(line):
-  # protect escaped equal symbols
-  line = line.replace("\=", "----EQUAL----")
-
-  splitLine = line.split("=")
-
-  if len(splitLine) != 2:
-    print "        - Malformed entry: %s" % line
-    return
-
-  orig = splitLine[0].strip()
-  repl = splitLine[1].strip()
-
-  #print "%s :: %s" % (orig, value)
-
-  # recover protected equal symbols
-  orig = orig.replace("----EQUAL----", "=")
-  repl = repl.replace("----EQUAL----", "=")
-
-  return {"expr":re.compile(orig), "orig":orig, "repl":repl}
-
-
-
-
-def regtool(content, regs, patch, options):
-  for patchEntry in regs:
-    matches = patchEntry["expr"].findall(content)
-    itercontent = content
-    line = 1
-
-    for fragment in matches:
-
-      # Replacing
-      if patch:
-        content = patchEntry["expr"].sub(patchEntry["repl"], content, 1)
-        # Debug
-        if options.verbose:
-          print "      - Replacing pattern '%s' to '%s'" % (patchEntry["orig"], patchEntry["repl"])
-          
-      else:
-        # Search for first match position
-        pos = itercontent.find(fragment)
-        pos = patchEntry["expr"].search(itercontent).start()
-    
-        # Update current line
-        line += len((itercontent[:pos] + fragment).split("\n")) - 1
-    
-        # Removing leading part til matching part
-        itercontent = itercontent[pos+len(fragment):]
-    
-        # Debug
-        if options.verbose:
-          print "      - Matches %s in %s" % (patchEntry["orig"], line)
-
-        print "      - line %s : (%s)" % (line, patchEntry["orig"])
-        print "        %s" % patchEntry["repl"]
-
-  return content
-
-
-
-
-def getHtmlList(options):
-  htmlList = []
-
-  for htmlDir in options.migrationInput:
-    for root, dirs, files in os.walk(htmlDir):
-
-      # Filter ignored directories
-      for ignoredDir in config.DIRIGNORE:
-        if ignoredDir in dirs:
-          dirs.remove(ignoredDir)
-
-      # Searching for files
-      for fileName in files:
-        if os.path.splitext(fileName)[1] in [ ".js", ".html", ".htm", ".php", ".asp", ".jsp" ]:
-          htmlList.append(os.path.join(root, fileName))
-
-  return htmlList
-
-
-
-def handle(fileList, fileDb, options):
-  confPath = os.path.join(os.path.join(os.path.dirname(os.path.abspath(sys.argv[0])), "migration"), options.migrationTarget)
-
-  infoPath = os.path.join(confPath, "info")
-  patchPath = os.path.join(confPath, "patches")
-
-  importedModule = False
-  infoList = []
-  patchList = []
-  htmlList = getHtmlList(options)
-
-
-
-
-  print "  * Number of script input files: %s" % len(fileList)
-  print "  * Number of HTML input files: %s" % len(htmlList)
-  print "  * Update to version: %s" % options.migrationTarget
-
-
-
-  print "  * Searching for patch module..."
-
-  for root, dirs, files in os.walk(confPath):
-
-    # Filter ignored directories
-    for ignoredDir in config.DIRIGNORE:
-      if ignoredDir in dirs:
-        dirs.remove(ignoredDir)
-
-    # Searching for files
-    for fileName in files:
-      filePath = os.path.join(root, fileName)
-
-      if os.path.splitext(fileName)[1] != config.PYEXT:
-        continue
-
-      if fileName == "patch.py":
-        print "    - Importing..."
-
-        if not root in sys.path:
-          sys.path.insert(0, root)
-
-        import patch
-        importedModule = True
-
-
-
-
-
-
-
-  emptyLine = re.compile("^\s*$")
-
-
-
-  print "  * Searching for info expression data..."
-
-  for root, dirs, files in os.walk(infoPath):
-
-    # Filter ignored directories
-    for ignoredDir in config.DIRIGNORE:
-      if ignoredDir in dirs:
-        dirs.remove(ignoredDir)
-
-    # Searching for files
-    for fileName in files:
-      filePath = os.path.join(root, fileName)
-
-      fileContent = textutil.any2Unix(filetool.read(filePath, "utf-8"))
-      infoList.append({"path":filePath, "content":fileContent.split("\n")})
-
-      if options.verbose:
-        print "    - %s" % filePath
-
-  print "    - Number of info files: %s" % len(infoList)
-
-  print "    - Compiling expressions..."
-
-  compiledInfos = []
-
-  for infoFile in infoList:
-    print "      - %s" % os.path.basename(infoFile["path"])
-    for line in infoFile["content"]:
-      if emptyLine.match(line) or line.startswith("#") or line.startswith("//"):
-        continue
-
-      compiled = entryCompiler(line)
-      if compiled != None:
-        compiledInfos.append(compiled)
-
-  print "    - Number of infos: %s" % len(compiledInfos)
-
-
-
-
-  print "  * Searching for patch expression data..."
-
-  for root, dirs, files in os.walk(patchPath):
-
-    # Filter ignored directories
-    for ignoredDir in config.DIRIGNORE:
-      if ignoredDir in dirs:
-        dirs.remove(ignoredDir)
-
-    # Searching for files
-    for fileName in files:
-      filePath = os.path.join(root, fileName)
-
-      fileContent = textutil.any2Unix(filetool.read(filePath, "utf-8"))
-      patchList.append({"path":filePath, "content":fileContent.split("\n")})
-
-      if options.verbose:
-        print "    - %s" % filePath
-
-  print "    - Number of patch files: %s" % len(patchList)
-
-  print "    - Compiling expressions..."
-
-  compiledPatches = []
-
-  for patchFile in patchList:
-    print "      - %s" % os.path.basename(patchFile["path"])
-    for line in patchFile["content"]:
-      if emptyLine.match(line) or line.startswith("#") or line.startswith("//"):
-        continue
-
-      compiled = entryCompiler(line)
-      if compiled != None:
-        compiledPatches.append(compiled)
-
-  print "    - Number of patches: %s" % len(compiledPatches)
-
-
-
-
-
-
-
-
-  print
-  print "  FILE PROCESSING:"
-  print "----------------------------------------------------------------------------"
-
-  if len(fileList) > 0:
-    print "  * Processing script files:"
-
-    for fileId in fileList:
-      fileEntry = fileDb[fileId]
-
-      filePath = fileEntry["path"]
-      fileEncoding = fileEntry["encoding"]
-
-      print "    - %s" % fileId
-
-      # Read in original content
-      fileContent = filetool.read(filePath, fileEncoding)
-      patchedContent = fileContent
-
-      # Apply patches
-      if importedModule:
-        tree = treegenerator.createSyntaxTree(tokenizer.parseStream(patchedContent))
-
-        # If there were any changes, compile the result
-        if patch.patch(fileId, tree):
-          patchedContent = compiler.compile(tree, True)
-
-      patchedContent = regtool(patchedContent, compiledPatches, True, options)
-      patchedContent = regtool(patchedContent, compiledInfos, False, options)
-
-      # Write file
-      if patchedContent != fileContent:
-        print "      - Store modifications..."
-        filetool.save(filePath, patchedContent, fileEncoding)
-
-    print "  * Done"
-
-
-
-  if len(htmlList) > 0:
-    print "  * Processing HTML files:"
-
-    for filePath in htmlList:
-      print "    - %s" % filePath
-
-      # Read in original content
-      fileContent = filetool.read(filePath)
-
-      patchedContent = fileContent
-      patchedContent = regtool(patchedContent, compiledPatches, True, options)
-      patchedContent = regtool(patchedContent, compiledInfos, False, options)
-
-      # Write file
-      if patchedContent != fileContent:
-        print "      - Store modifications..."
-        filetool.save(filePath, patchedContent)
-
-    print "  * Done"
-
-
-
-
-
-
-
-
-
-
-
-######################################################################
-#  MAIN LOOP
-######################################################################
-
-if __name__ == '__main__':
-  try:
-    main()
-
-  except KeyboardInterrupt:
-    print
-    print "  * Keyboard Interrupt"
-    sys.exit(1)
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/msgfmt.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/msgfmt.py
deleted file mode 100755 (executable)
index 2503357..0000000
+++ /dev/null
@@ -1,273 +0,0 @@
-#!/usr/bin/env python
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-# -*- coding: iso-8859-1 -*-
-# Written by Martin v. Lwis <loewis@informatik.hu-berlin.de>
-# Plural forms support added by alexander smishlajev <alex@tycobka.lv>
-
-"""
-Generate qooxdoo message catalog from textual translation description.
-
-This program converts a textual Uniforum-style message catalog (.po file) into
-a qooxdoo JavaScript catalog (.js file).  This is essentially the same function as the
-GNU msgfmt program, however, it is a simpler implementation.
-
-Usage: msgfmt.py [OPTIONS] filename.po
-
-Options:
-    -d directory
-    --output-directory=directory
-        Specify the output directory to write to.  If omitted, output will the current directory
-
-    -n namespace
-    --namespace=namespace
-        JavaScript target namespace
-
-    -h
-    --help
-        Print this message and exit.
-
-    -V
-    --version
-        Display version information and exit.
-"""
-
-import sys
-import os
-import getopt
-import struct
-import array
-
-__version__ = "1.1"
-
-MESSAGES = {}
-
-
-def usage (ecode, msg=''):
-    """
-    Print usage and msg and exit with given code.
-    """
-    print >> sys.stderr, __doc__
-    if msg:
-        print >> sys.stderr, msg
-    sys.exit(ecode)
-
-
-def add (msgid, transtr, fuzzy):
-    """
-    Add a non-fuzzy translation to the dictionary.
-    """
-    global MESSAGES
-    if not fuzzy and transtr and not transtr.startswith('\0'):
-        MESSAGES[msgid] = transtr
-
-
-def escapeJS(str):
-       str = str.replace('"', '\\"')
-       str = str.replace("'", "\\'")
-       return str
-
-
-def generate(infile, languageCode, namespace):
-       global MESSAGES
-       if namespace != "": namespace += "."
-       if len(languageCode.split("_")) > 1:
-               requireString = "#require(%s%s)" % (namespace, languageCode.split("_")[0])
-       else:
-               requireString = ""
-
-       output = '''/* ************************************************************************
-
-   qooxdoo - the new era of web development
-
-   http://qooxdoo.org
-
-   Copyright:
-     2004-2007 by 1&1 Internet AG, Germany, http://www.1and1.org
-
-   License:
-     LGPL: http://www.gnu.org/licenses/lgpl.html
-     EPL 1.0: http://www.eclipse.org/org/documents/epl-v10.php
-
-   Authors:
-     * Sebastian Werner (wpbasti)
-     * Andreas Ecker (ecker)
-     * Fabian Jakobs (fjakobs)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#require(qx.Locale)
-%s
-************************************************************************ */
-
-/*
-WARNING: This file is generated by the gettext tools from %s. Do not edit it by hand.
-*/
-
-qx.Locale.define("%s%s",
-{
-''' % (requireString, infile, namespace, languageCode)
-
-       translations = []
-       normalizedMessages = {}
-       for msg in MESSAGES:
-               keys = msg.split("\0");
-               if len(keys) <= 1:
-                       normalizedMessages[msg] = MESSAGES[msg]
-                       continue
-               values = MESSAGES[msg].split("\0");
-               for i in range(len(keys)):
-                       normalizedMessages[keys[i]] = values[i]
-
-       for msg in normalizedMessages:
-               if msg == "": continue
-               translations.append('  "%s": "%s"' % (msg, escapeJS(normalizedMessages[msg])))
-       output += (",\n").join(translations)
-       output += "\n});"
-       #print output
-       return output
-
-
-def make (filename, outdir, namespace):
-    ID = 1
-    STR = 2
-    global MESSAGES
-    MESSAGES = {}
-
-    # Compute .mo name from .po name and arguments
-    if filename.endswith('.po'):
-        infile = filename
-    else:
-        infile = filename + '.po'
-
-    basename = os.path.splitext(os.path.basename(infile))[0]
-    outfile = os.path.join(outdir, basename + '.js')
-
-    try:
-        lines = open(infile).readlines()
-    except IOError, msg:
-        print >> sys.stderr, msg
-        sys.exit(1)
-
-    section = None
-    fuzzy = 0
-
-    # Parse the catalog
-    msgid = msgstr = ''
-    lno = 0
-    for l in lines:
-        lno += 1
-        # If we get a comment line after a msgstr, this is a new entry
-        if l[0] == '#' and section == STR:
-            add(msgid, msgstr, fuzzy)
-            section = None
-            fuzzy = 0
-        # Record a fuzzy mark
-        if l[:2] == '#,' and (l.find('fuzzy') >= 0):
-            fuzzy = 1
-        # Skip comments
-        if l[0] == '#':
-            continue
-        # Start of msgid_plural section, separate from singular form with \0
-        if l.startswith('msgid_plural'):
-            msgid += '\0'
-            l = l[12:]
-        # Now we are in a msgid section, output previous section
-        elif l.startswith('msgid'):
-            if section == STR:
-                add(msgid, msgstr, fuzzy)
-            section = ID
-            l = l[5:]
-            msgid = msgstr = ''
-        # Now we are in a msgstr section
-        elif l.startswith('msgstr'):
-            section = STR
-            l = l[6:]
-            # Check for plural forms
-            if l.startswith('['):
-                # Separate plural forms with \0
-                if not l.startswith('[0]'):
-                    msgstr += '\0'
-                # Ignore the index - must come in sequence
-                l = l[l.index(']') + 1:]
-        # Skip empty lines
-        l = l.strip()
-        if not l:
-            continue
-        # XXX: Does this always follow Python escape semantics?
-        l = eval(l)
-        if section == ID:
-            msgid += l
-        elif section == STR:
-            msgstr += l
-        else:
-            print >> sys.stderr, 'Syntax error on %s:%d' % (infile, lno), \
-                  'before:'
-            print >> sys.stderr, l
-            sys.exit(1)
-    # Add last entry
-    if section == STR:
-        add(msgid, msgstr, fuzzy)
-
-    # Compute output
-    output = generate(infile, basename, namespace)
-
-
-    try:
-        open(outfile,"w").write(output)
-    except IOError,msg:
-        print >> sys.stderr, msg
-
-
-
-def main ():
-    try:
-        opts, args = getopt.getopt(sys.argv[1:], 'hVd:n:',
-                                   ['help', 'version', 'output-directory=', 'namespace='])
-    except getopt.error, msg:
-        usage(1, msg)
-
-    outdir = "."
-    ns = ""
-    # parse options
-    for opt, arg in opts:
-        if opt in ('-h', '--help'):
-            usage(0)
-        elif opt in ('-V', '--version'):
-            print >> sys.stderr, "msgfmt.py", __version__
-            sys.exit(0)
-        elif opt in ('-d', '--output-directory'):
-            outdir = arg
-        elif opt in ('-n', '--namespace'):
-            ns = arg
-    # do it
-    if not args:
-        print >> sys.stderr, 'No input file given'
-        print >> sys.stderr, "Try `msgfmt --help' for more information."
-        return
-
-    for filename in args:
-        make(filename, outdir, ns)
-
-
-if __name__ == '__main__':
-    main()
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/obfuscator.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/obfuscator.py
deleted file mode 100755 (executable)
index dd69f45..0000000
+++ /dev/null
@@ -1,456 +0,0 @@
-#!/usr/bin/env python
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#
-################################################################################
-
-import tree, mapper
-
-qooxdooStart = [
-  # Properties
-  "_modify", "_check", "_unitDetection",
-
-  # Layout
-  "_applyRuntime",
-
-  # Cache Properties
-  "_resetRuntime", "_compute", "_change", "_invalidate", "_recompute",
-
-  # Property Methods
-  "set", "get", "force", "reset"
-]
-
-qooxdooNames = [
-  # Demos
-  "ROOT_LOGGER", "removeAllAppenders", "addAppender", "DivAppender",
-
-  # qx.ui.core.Widget.initApplyMethods
-  "_style",
-  "setStyleProperty", "removeStyleProperty",
-  "constant", "Core",
-
-  # Inheritance
-  "qx", "Proto", "Class"
-]
-
-systemNames = [
-  # Statement
-  "break","catch","continue","do","for","in","finally","function","if","else","return","switch","case","default",
-  "this","throw","try","var","while","with",
-
-  # Operator
-  "delete","false","instanceof","new","null","true","typeof","void",
-
-  # Function
-  "GetObject","ScriptEngine","ScriptEngineBuildVersion","ScriptEngineMajorVersion","ScriptEngineMinorVersion",
-
-  # Objects
-  "ActiveXObject","Arguments","Array","Boolean","Date","Dictionary","Enumerator","Error","FileSystemObject",
-  "Function","Global","Image","Math","Number","Object","RegExp","String","VBArray",
-
-  # Property
-  "$1","$2","$3","$4","$5",
-  "$6","$7","$8","$9","arguments","arity","callee","caller","constructor","description","E","global","ignoreCase",
-  "index","Infinity","input","lastIndex","leftContext","length","LN2","LN10","LOG2E","LOG10E","MAX_VALUE",
-  "MIN_VALUE","message","multiline","name","NaN","NEGATIVE_INFINITY","number","PI","POSITIVE_INFINITY",
-  "prototype","rightContext","source","SQRT1_2","SQRT2","undefined",
-
-  # Methods
-  "abs","acos","anchor","apply","asin",
-  "atan","atan2","atEnd","big","blink","bold","call","ceil","charAt","charCodeAt","compile","concat","cos",
-  "decodeURI","decodeURIComponent","dimensions","encodeURI","encodeURIComponent","escape","eval","exec",
-  "exp","fixed","floor","fontcolor","fontsize","fromCharCode","getDate","getDay","getFullYear","getHours",
-  "getItem","getMilliseconds","getMinutes","getMonth","getSeconds","getTime","getTimezoneOffset","getUTCDate",
-  "getUTCDay","getUTCFullYear","getUTCHours","getUTCMilliseconds","getUTCMinutes","getUTCMonth","getUTCSeconds",
-  "getVarDate","getYear","hasOwnProperty","indexOf","isFinite","isNaN","isPrototypeOf","italics","item","join",
-  "lastIndexOf","lastMatch","lastParen","lbound","link","localeCompare","log","match","max","min","moveFirst",
-  "moveNext","parse","parseFloat","parseInt","pop","pow","propertyIsEnumerable","push","random","replace",
-  "reverse","round","search","setDate","setFullYear","setHours","setMilliseconds","setMinutes","setMonth",
-  "setSeconds","setTime","setUTCDate","setUTCFullYear","setUTCHours","setUTCMilliseconds","setUTCMinutes",
-  "setUTCMonth","setUTCSeconds","setYear","shift","sin","slice","small","sort","splice","split","sqrt","strike",
-  "sub","substr","substring","sup","tan","test","toArray","toDateString","toExponential","toFixed","toGMTString",
-  "toLocaleDateString","toLocaleLowerCase","toLocaleString","toLocaleTimeString","toLocaleUpperCase","toLowerCase",
-  "toPrecision","toString","toTimeString","toUpperCase","toUTCString","ubound","unescape","unshift","unwatch","UTC",
-  "valueOf","watch",
-
-  # HTML Entity
-  "nbsp","lt","gt","amp","apos","quot","cent","pound","yen","sect","copy","reg","times","divide",
-
-  # DHTML Constant
-  "ATTRIBUTE_NODE","CDATA_SECTION_NODE","COMMENT_NODE","DOCUMENT_FRAGMENT_NODE","DOCUMENT_NODE","DOCUMENT_TYPE_NODE",
-  "ELEMENT_NODE","ENTITY_NODE","ENTITY_REFERENCE_NODE","NOTATION_NODE","PROCESSING_INSTRUCTION_NODE","TEXT_NODE",
-  "NOTATION_FRAGMENT_NODE","DOMSTRING_SIZE_ERR","HIERARCHY_REQUEST_ERR","INDEX_SIZE_ERR","INUSE_ATTRIBUTE_ERR",
-  "INVALID_ACCESS_ERR","INVALID_CHARACTER_ERR","INVALID_MODIFICATION_ERR","INVALID_STATE_ERR","NAMESPACE_ERR",
-  "NOT_FOUND_ERR","NOT_SUPPORTED_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","SYNTAX_ERR",
-  "WRONG_DOCUMENT_ERR","ABORT","BLUR","CLICK","CHANGE","DBLCLICK","DRAGDROP","ERROR","FOCUS","KEYDOWN","KEYPRESS",
-  "KEYUP","LOAD","MOUSEDOWN","MOUSEMOVE","MOUSEOUT","MOUSEOVER","MOUSEUP","MOVE","RESET","RESIZE","SELECT","SUBMIT",
-  "UNLOAD","NODE_BEFORE","NODE_AFTER","NODE_BEFORE_AND_AFTER","NODE_INSIDE","START_TO_START","START_TO_END",
-  "END_TO_END","END_TO_START","BAD_BOUNDARYPOINTS_ERR","INVALID_NODE_TYPE_ERR","UNKNOWN_RULE","STYLE_RULE",
-  "CHARSET_RULE","IMPORT_RULE","MEDIA_RULE","FONT_FACE_RULE","PAGE_RULE","CSS_UNKNOWN","CSS_NUMBER","CSS_PERCENTAGE",
-  "CSS_EMS","CSS_EXS","CSS_PX","CSS_CM","CSS_MM","CSS_IN","CSS_PT","CSS_PC","CSS_DEG","CSS_RAD","CSS_GRAD","CSS_MS",
-  "CSS_S","CSS_HZ","CSS_KHZ","CSS_DIMENSION","CSS_STRING","CSS_URI","CSS_IDENT","CSS_ATTR","CSS_COUNTER","CSS_RECT",
-  "CSS_RGBCOLOR","CSS_INHERIT","CSS_PRIMITIVE_VALUE","CSS_VALUE_LIST","CSS_CUSTOM","STATE_MAXIMIZED","STATE_MINIMIZED",
-  "STATE_NORMAL","DOCUMENT_POSITION_DISCONNECTED","DOCUMENT_POSITION_PRECEDING","DOCUMENT_POSITION_FOLLOWING",
-  "DOCUMENT_POSITION_CONTAINS","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC",
-  "CAPTURING_PHASE","AT_TARGET","BUBBLING_PHASE","MOUSEDOWN","MOUSEUP","MOUSEOVER","MOUSEOUT","MOUSEMOVE",
-  "MOUSEDRAG","CLICK","DBLCLICK","KEYDOWN","KEYUP","KEYPRESS","DRAGDROP","FOCUS","BLUR","SELECT","CHANGE",
-  "RESET","SUBMIT","SCROLL","LOAD","UNLOAD","XFER_DONE","ABORT","ERROR","LOCATE","MOVE","RESIZE","FORWARD",
-  "HELP","BACK","TEXT","ALT_MASK","CONTROL_MASK","SHIFT_MASK","META_MASK","SCROLL_PAGE_UP","SCROLL_PAGE_DOWN",
-  "DOM_VK_CANCEL","DOM_VK_HELP","DOM_VK_BACK_SPACE","DOM_VK_TAB","DOM_VK_CLEAR","DOM_VK_RETURN","DOM_VK_ENTER",
-  "DOM_VK_SHIFT","DOM_VK_CONTROL","DOM_VK_ALT","DOM_VK_PAUSE","DOM_VK_CAPS_LOCK","DOM_VK_ESCAPE","DOM_VK_SPACE",
-  "DOM_VK_PAGE_UP","DOM_VK_PAGE_DOWN","DOM_VK_END","DOM_VK_HOME","DOM_VK_LEFT","DOM_VK_UP","DOM_VK_RIGHT","DOM_VK_DOWN",
-  "DOM_VK_PRINTSCREEN","DOM_VK_INSERT","DOM_VK_DELETE","DOM_VK_0","DOM_VK_1","DOM_VK_2","DOM_VK_3","DOM_VK_4","DOM_VK_5",
-  "DOM_VK_6","DOM_VK_7","DOM_VK_8","DOM_VK_9","DOM_VK_SEMICOLON","DOM_VK_EQUALS","DOM_VK_A","DOM_VK_B","DOM_VK_C",
-  "DOM_VK_D","DOM_VK_E","DOM_VK_F","DOM_VK_G","DOM_VK_H","DOM_VK_I","DOM_VK_J","DOM_VK_K","DOM_VK_L","DOM_VK_M",
-  "DOM_VK_N","DOM_VK_O","DOM_VK_P","DOM_VK_Q","DOM_VK_R","DOM_VK_S","DOM_VK_T","DOM_VK_U","DOM_VK_V","DOM_VK_W",
-  "DOM_VK_X","DOM_VK_Y","DOM_VK_Z","DOM_VK_CONTEXT_MENU","DOM_VK_NUMPAD0","DOM_VK_NUMPAD1","DOM_VK_NUMPAD2",
-  "DOM_VK_NUMPAD3","DOM_VK_NUMPAD4","DOM_VK_NUMPAD5","DOM_VK_NUMPAD6","DOM_VK_NUMPAD7","DOM_VK_NUMPAD8","DOM_VK_NUMPAD9",
-  "DOM_VK_MULTIPLY","DOM_VK_ADD","DOM_VK_SEPARATOR","DOM_VK_SUBTRACT","DOM_VK_DECIMAL","DOM_VK_DIVIDE","DOM_VK_F1",
-  "DOM_VK_F2","DOM_VK_F3","DOM_VK_F4","DOM_VK_F5","DOM_VK_F6","DOM_VK_F7","DOM_VK_F8","DOM_VK_F9","DOM_VK_F10",
-  "DOM_VK_F11","DOM_VK_F12","DOM_VK_F13","DOM_VK_F14","DOM_VK_F15","DOM_VK_F16","DOM_VK_F17","DOM_VK_F18","DOM_VK_F19",
-  "DOM_VK_F20","DOM_VK_F21","DOM_VK_F22","DOM_VK_F23","DOM_VK_F24","DOM_VK_NUM_LOCK","DOM_VK_SCROLL_LOCK","DOM_VK_COMMA",
-  "DOM_VK_PERIOD","DOM_VK_SLASH","DOM_VK_BACK_QUOTE","DOM_VK_OPEN_BRACKET","DOM_VK_BACK_SLASH","DOM_VK_CLOSE_BRACKET",
-  "DOM_VK_QUOTE","DOM_VK_META","MODIFICATION","ADDITION","REMOVAL","INVALID_EXPRESSION_ERR","TYPE_ERR","ANY_TYPE",
-  "NUMBER_TYPE","STRING_TYPE","BOOLEAN_TYPE","UNORDERED_NODE_ITERATOR_TYPE","ORDERED_NODE_ITERATOR_TYPE",
-  "UNORDERED_NODE_SNAPSHOT_TYPE","ORDERED_NODE_SNAPSHOT_TYPE","ANY_UNORDERED_NODE_TYPE","FIRST_ORDERED_NODE_TYPE",
-  "UNSPECIFIED_EVENT_TYPE_ERR",
-
-  # DHTML Object
-  "a","AbstractView","acronym","address","applet","area","Attr","attribute","b",
-  "BarProp","base","baseFont","bdo","BeforeUnloadEvent","bgSound","big","blockQuote","body","br","button",
-  "CanvasGradient","CanvasPattern","CanvasRenderingContext2D","caption","CDATASection","center","CharacterData",
-  "ChromeWindow","cite","clientInformation","clipboardData","code","col","colGroup","comment","Comment","Counter",
-  "CSS2Properties","CSSCharsetRule","CSSFontFaceRule","CSSImportRule","CSSMediaRule","CSSPageRule","CSSPrimitiveValue",
-  "CSSRGBColor","CSSRule","CSSRuleList","CSSStyleDeclaration","CSSStyleRule","CSSStyleSheet","CSSUnknownRule",
-  "CSSValue","CSSValueList","currentStyle","custom","dataTransfer","dd","defaults","del","dfn","dir","div","dl",
-  "document","Document","DocumentCSS","DocumentEvent","DocumentFragment","DocumentRange","DocumentStyle",
-  "DocumentType","DocumentView","DOMException","DOMImplementation","DOMImplementationCSS","DOMParser",
-  "DOMStringList","dt","Element","ElementCSSInlineStyle","em","embed","Entity","EntityReference","event",
-  "Event","EventException","EventListener","EventTarget","external","fieldSet","font","form","frame","frameSet",
-  "h","head","history","History","hr","html","HTMLAnchorElement","HTMLAppletElement","HTMLAreaElement",
-  "HTMLBRElement","HTMLBaseElement","HTMLBaseFontElement","HTMLBodyElement","HTMLButtonElement","HTMLCanvasElement",
-  "HTMLCollection","HTMLDListElement","HTMLDirectoryElement","HTMLDivElement","HTMLDocument","HTMLDOMImplementation",
-  "HTMLElement","HTMLEmbedElement","HTMLFieldSetElement","HTMLFontElement","HTMLFormElement","HTMLFrameElement",
-  "HTMLFrameSetElement","HTMLHRElement","HTMLHeadElement","HTMLHeadingElement","HTMLHtmlElement","HTMLIFrameElement",
-  "HTMLImageElement","HTMLInputElement","HTMLIsIndexElement","HTMLLIElement","HTMLLabelElement","HTMLLegendElement",
-  "HTMLLinkElement","HTMLMapElement","HTMLMenuElement","HTMLMetaElement","HTMLModElement","HTMLOListElement",
-  "HTMLObjectElement","HTMLOptGroupElement","HTMLOptionElement","HTMLOptionsCollection","HTMLParagraphElement",
-  "HTMLParamElement","HTMLPreElement","HTMLQuoteElement","HTMLScriptElement","HTMLSelectElement","HTMLStyleElement",
-  "HTMLTableCaptionElement","HTMLTableCellElement","HTMLTableColElement","HTMLTableElement","HTMLTableRowElement",
-  "HTMLTableSectionElement","HTMLTextAreaElement","HTMLTitleElement","HTMLUListElement","i","iframe","ImageDocument",
-  "img","implementation","IMPORT","input","ins","isIndex","kbd","KeyboardEvent","KeyEvent","label","legend","li",
-  "link","LinkStyle","listing","location","Location","map","marquee","MediaList","menu","meta","MimeType",
-  "MimeTypeArray","MouseEvent","MutationEvent","NamedNodeMap","NameList","namespace","navigator","Navigator",
-  "nextID","noBR","Node","NodeList","noFrames","noScript","Notation","NSDocument","NSEvent","NSHTMLAnchorElement",
-  "NSHTMLAreaElement","NSHTMLButtonElement","NSHTMLDocument","NSHTMLElement","NSHTMLFormElement","NSHTMLFrameElement",
-  "NSHTMLHRElement","NSHTMLImageElement","NSHTMLInputElement","NSHTMLOptionElement","NSHTMLSelectElement",
-  "NSHTMLTextAreaElement","NSRange","NSUIEvent","object","ol","optGroup","option","p","page","PageTransitionEvent",
-  "param","plainText","Plugin","PluginArray","popup","PopupBlockedEvent","pre","ProcessingInstruction","q","Range",
-  "RangeException","Rect","RGBColor","rt","ruby","rule","runtimeStyle","s","samp","SchemaLoader","screen","Screen",
-  "script","select","selection","Selection","small","SmartCardEvent","span","strike","strong","style","styleSheet",
-  "StyleSheet","StyleSheetList","sub","sup","Supports","table","TableSectionElement","tBody","td","Text","textArea",
-  "TextNode","TextRange","TextRectangle","tFoot","th","tHead","title","tr","TreeWalker","tt","u","UIEvent","ul",
-  "userProfile","URI","var","ViewCSS","wbr","WebBrowser","WebNavigation","window","Window","Window2","WindowCollection",
-  "WindowInternal","xml","XMLDocument","XMLHttpRequest","XMLSerializer","xmp","XPathEvaluator","XPathException",
-  "XPathExpression","XPathNSResolver","XPathResult","XPointerResult","XSLTProcessor",
-
-  # DHTML Property
-  "_content","abbr","accelerator",
-  "accept","acceptCharset","accessKey","action","activeElement","additive","align","aLink","alinkColor","allowTransparency",
-  "alt","altHTML","altKey","altLeft","anchorNode","anchorOffset","appCodeName","APPLICATION","appMinorVersion","appName",
-  "appVersion","archive","async","ATOMICSELECTION","attrChange","attrName","autocomplete","availHeight","availLeft",
-  "availTop","availWidth","azimuth","axis","background","backgroundAttachment","backgroundColor","backgroundImage",
-  "backgroundPosition","backgroundPositionX","backgroundPositionY","backgroundRepeat","balance","Banner",
-  "BannerAbstract","BaseHref","baseURI","behavior","bgColor","BGCOLOR","bgProperties","blockDirection","blue",
-  "booleanValue","border","borderBottom","borderBottomColor","borderBottomStyle","borderBottomWidth","borderCollapse",
-  "borderColor","borderColorDark","borderColorLight","borderLeft","borderLeftColor","borderLeftStyle","borderLeftWidth",
-  "borderRight","borderRightColor","borderRightStyle","borderRightWidth","borderSpacing","borderStyle","borderTop",
-  "borderTopColor","borderTopStyle","borderTopWidth","borderWidth","borderWidths","bottom","bottomMargin","boundingHeight",
-  "boundingLeft","boundingTop","boundingWidth","browserDOMWindow","browserLanguage","bubbles","bufferDepth","button",
-  "cancelable","cancelBubble","canHaveChildren","canHaveHTML","canvas","caption","captionSide","cellIndex","cellPadding",
-  "cellSpacing","ch","channel","charCode","charset","checked","characterSet","chOff","cite","classid","className",
-  "clear","clientHeight","clientLeft","clientTop","clientWidth","clientX","clientY","clip","clipBottom","clipLeft",
-  "clipRight","clipTop","cloneContents","closed","code","codeBase","codeType","collapsed","color","colorDepth","cols",
-  "colSpan","columnNumber","commonAncestorContainer","compact","compatMode","complete","content","contentDocument",
-  "contentEditable","contentOverflow","contentType","contentWindow","cookie","cookieEnabled","coords","Count",
-  "counterIncrement","counterReset","cpuClass","crypto","cssFloat","cssRules","cssText","cssValueType","ctrlKey",
-  "ctrlLeft","cue","cueAfter","cueBefore","current","currentNode","currentTarget","cursor","data","dataFld","DATAFLD",
-  "dataFormatAs","DATAFORMATAS","dataPageSize","dataSrc","DATASRC","dateTime","declare","defaultCharset",
-  "defaultChecked","defaultSelected","defaultStatus","defaultValue","defaultView","defer","description","designMode",
-  "detail","deviceXDPI","deviceYDPI","dialogArguments","dialogHeight","dialogLeft","dialogTop","dialogWidth","dir",
-  "direction","directories","disabled","display","displays","doctype","document","documentElement","documentURI",
-  "domain","domConfig","dropEffect","dynsrc","effectAllowed","elevation","emptyCells","enabledPlugin","encoding",
-  "enctype","endContainer","endOffset","entities","event","eventPhase","expandEntityReferences","expando",
-  "explicitOriginalTarget","face","fgColor","FieldDelim","fileCreatedDate","fileModifiedDate","filename","fileSize",
-  "fileUpdatedDate","fillStyle","filter","firstChild","focusNode","focusOffset","font","fontFamily","fontSize",
-  "fontSizeAdjust","fontSmoothingEnabled","fontStretch","fontStyle","fontVariant","fontWeight","form","formName",
-  "frame","frameBorder","frameElement","frameSpacing","fromElement","fullScreen","galleryImg","globalAlpha",
-  "globalCompositeOperation","green","hash","hasLayout","headers","height","hidden","hideFocus","history","host",
-  "hostname","href","hreflang","hspace","htmlFor","htmlText","httpEquiv","id","identifier","imageIsOverflowing",
-  "imageIsResized","imageRequest","imageResizingEnabled","imeMode","implementation","indeterminate","index","inner",
-  "innerHeight","innerHTML","innerText","innerWidth","inputEncoding","internalSubset","invalidIteratorState","isChar",
-  "isCollapsed","isContentEditable","isDisabled","isMap","isMultiLine","isOpen","isTextEdit","isTrusted","keyCode",
-  "label","lang","language","lastChild","lastModified","layerX","layerY","layoutFlow","layoutGrid","layoutGridChar",
-  "layoutGridLine","layoutGridMode","layoutGridType","left","leftMargin","length","letterSpacing","lineBreak","lineCap",
-  "lineHeight","lineJoin","lineNumber","lineWidth","link","linkColor","listStyle","listStyleImage","listStylePosition",
-  "listStyleType","localName","location","locationbar","logicalXDPI","logicalYDPI","longDesc","loop","loop","lowsrc",
-  "lowSrc","margin","marginBottom","marginHeight","marginLeft","marginRight","margins","marginTop","marginWidth",
-  "markerOffset","marks","maxHeight","maxLength","maxWidth","media","mediaText","menuArguments","menubar","message",
-  "metaKey","method","Methods","minHeight","minWidth","miterLimit","MozAppearance","MozBackgroundClip",
-  "MozBackgroundInlinePolicy","MozBackgroundOrigin","MozBinding","MozBorderBottomColors","MozBorderLeftColors",
-  "MozBorderRadius","MozBorderRadiusBottomleft","MozBorderRadiusBottomright","MozBorderRadiusTopleft",
-  "MozBorderRadiusTopright","MozBorderRightColors","MozBorderTopColors","MozBoxAlign","MozBoxDirection","MozBoxFlex",
-  "MozBoxOrdinalGroup","MozBoxOrient","MozBoxPack","MozBoxSizing","MozColumnCount","MozColumnGap","MozColumnWidth",
-  "MozFloatEdge","MozForceBrokenImageIcon","MozImageRegion","MozMarginEnd","MozMarginStart","MozOpacity","MozOutline",
-  "MozOutlineColor","MozOutlineOffset","MozOutlineRadius","MozOutlineRadiusBottomleft","MozOutlineRadiusBottomright",
-  "MozOutlineRadiusTopleft","MozOutlineRadiusTopright","MozOutlineStyle","MozOutlineWidth","MozPaddingEnd",
-  "MozPaddingStart","MozUserFocus","MozUserInput","MozUserModify","MozUserSelect","multipart","multiple","name",
-  "nameProp","namespaceURI","naturalHeight","naturalWidth","navigator","newValue","next","nextPage","nextSibling",
-  "nodeName","nodeType","nodeValue","noHref","noResize","noShade","notationName","notations","noWrap","numberValue",
-  "object","offscreenBuffering","offsetHeight","offsetLeft","offsetParent","offsetTop","offsetWidth","offsetX",
-  "offsetY","onBefore","onLine","opacity","opener","originalTarget","orphans","oscpu","outerHeight","outerHTML",
-  "outerText","outerWidth","outline","outlineColor","outlineOffset","outlineStyle","outlineWidth","overflow","overflowX",
-  "overflowY","ownerDocument","ownerElement","ownerNode","ownerRule","owningElement","padding","paddingBottom",
-  "paddingLeft","paddingRight","paddings","paddingTop","page","pageBreakAfter","pageBreakBefore","pageBreakInside",
-  "pageX","pageXOffset","pageY","pageYOffset","palette","parent","parentElement","parentNode","parentRule",
-  "parentStyleSheet","parentTextEdit","parentWindow","pathname","pause","pauseAfter","pauseBefore","persisted",
-  "personalbar","pitch","pitchRange","pixelBottom","pixelDepth","pixelHeight","pixelLeft","pixelRight","pixelTop",
-  "pixelWidth","pkcs11","platform","playDuring","pluginspage","popupWindowFeatures","popupWindowURI","port","posBottom",
-  "posHeight","position","posLeft","posRight","posTop","posWidth","preferredStylesheetSet","prefix","previous",
-  "previousSibling","prevValue","primitiveType","product","productSub","profile","prompt","prompter","propertyName",
-  "protocol","pseudoClass","publicId","qualifier","quotes","rangeCount","rangeOffset","rangeParent","readOnly",
-  "readyState","reason","recordNumber","recordset","red","referrer","rel","relatedNode","relatedTarget","repeat",
-  "requestingWindowURI","responseText","responseXML","result","resultType","returnValue","rev","richness","right",
-  "rightMargin","root","rowIndex","rows","rowSpan","rubyAlign","rubyOverhang","rubyPosition","rules","saveType",
-  "scheme","scope","scopeName","screen","screenLeft","screenTop","screenX","screenY","scroll","scrollAmount",
-  "scrollbar3dLightColor","scrollbarArrowColor","scrollbarBaseColor","scrollbarDarkShadowColor","scrollbarFaceColor",
-  "scrollbarHighlightColor","scrollbars","scrollbarShadowColor","scrollbarTrackColor","scrollDelay","scrollHeight",
-  "scrolling","scrollLeft","scrollMaxX","scrollMaxY","scrollTop","scrollX","scrollY","scrollWidth","search",
-  "sectionRowIndex","SECURITY","securityPolicy","selected","selectedIndex","selectionEnd","selectionStart","selector",
-  "selectorText","self","separator","shape","sheet","shadowBlur","shadowColor","shadowOffsetX","shadowOffsetY",
-  "shiftKey","shiftLeft","sidebar","singleNodeValue","size","snapshotLength","sourceIndex","span","speak","speakHeader",
-  "speakNumeral","speakPunctuation","specified","speechRate","src","srcElement","srcFilter","srcUrn","standby","start",
-  "startContainer","startOffset","status","statusbar","statusText","stress","strictErrorChecking","stringValue",
-  "strokeStyle","style","STYLE","styleFloat","styleSheet","suffixes","summary","systemId","systemLanguage","tabIndex",
-  "tableLayout","tabStop","tagName","tagUrn","target","text","textAlign","textAlignLast","textAutospace","textContent",
-  "textDecoration","textDecorationBlink","textDecorationLineThrough","textDecorationNone","textDecorationOverline",
-  "textDecorationUnderline","textIndent","textJustify","textKashidaSpace","textLength","textOverflow","textShadow",
-  "textTransform","textUnderlinePosition","textZoom","tFoot","tHead","timeStamp","title","tmpRealOriginalTarget",
-  "toElement","tokenName","toolbar","top","topMargin","trueSpeed","type","typeDetail","unicodeBidi","uniqueID","units",
-  "unselectable","UNSELECTABLE","updateInterval","URL","URLUnencoded","urn","useMap","userAgent","userLanguage","vAlign",
-  "value","valueType","vcard_name","vendor","vendorSub","version","verticalAlign","view","viewInheritStyle","viewLink",
-  "viewMasterTab","visibility","visible","vLink","vlinkColor","voiceFamily","volume","vspace","whatToShow","wheelDelta",
-  "which","whiteSpace","widows","width","window","windowRoot","windowState","wordBreak","wordSpacing","wordWrap","wrap",
-  "writingMode","x","XMLDocument","xmlEncoding","XMLNS","xmlStandalone","xmlVersion","XSLDocument","y","zIndex","zoom",
-
-  # DHTML Method
-  "abort","add","addBehavior","addBinding","addColorStop","addEventListener","AddChannel","AddDesktopComponent",
-  "addElement","AddFavorite","addImport","addPageRule","addRange","addReadRequest","addRule","adoptNode","alert",
-  "appendChild","appendData","appendMedium","applyElement","arc","arcTo","assign","atob","attachEvent",
-  "AutoCompleteSaveForm","AutoScan","back","beginPath","bezierCurveTo","blur","btoa","captureEvents","ChooseColorDlg",
-  "clear","clearAttributes","clearData","clearInterval","clearParameters","clearRect","clearRequest","clearTimeout",
-  "click","clip","cloneNode","cloneRange","close","closePath","collapse","collapseToEnd","collapseToStart",
-  "compareBoundaryPoints","compareDocumentPosition","compareEndPoints","compareNode","comparePoint","componentFromPoint",
-  "confirm","contains","containsNode","containsNS","createAttribute","createAttributeNS","createCaption",
-  "createCDATASection","createComment","createContextualFragment","createControlRange","createCSSStyleSheet",
-  "createDocument","createDocumentFragment","createDocumentType","createElement","createElementNS",
-  "createEntityReference","createEvent","createEventObject","createExpression","createLinearGradient",
-  "createHTMLDocument","createNodeIterator","createNSResolver","createPattern","createPopup",
-  "createProcessingInstruction","createRadialGradient","createRange","createRangeCollection","createStyleSheet",
-  "createTextNode","createTextRange","createTFoot","createTHead","createTreeWalker","deleteCaption","deleteCell",
-  "deleteContents","deleteData","deleteFromDocument","deleteMedium","deleteRow","deleteRule","deleteTFoot",
-  "deleteTHead","detach","detachEvent","disableExternalCapture","dispatchEvent","doImport","doReadRequest",
-  "doScroll","dragDrop","drawImage","dump","duplicate","elementFromPoint","enableExternalCapture","empty",
-  "escape","evaluate","evaluateFIXptr","evaluateWithContext","evaluateXPointer","execCommand","execCommandShowHelp",
-  "execScript","expand","extend","extractContents","fill","fillRect","find","findText","fireEvent","firstPage",
-  "focus","forward","getAdjacentText","getAllResponseHeaders","getAnonymousElementByAttribute","getAnonymousNodes",
-  "getAttention","getAttentionWithCycleCount","getAttribute","getAttributeNode","getAttributeNodeNS","getAttributeNS",
-  "getBindingParent","getBookmark","getBoundingClientRect","getBoxObjectFor","getCharset","getClientRects",
-  "getComputedStyle","getContext","getCounterValue","getData","getElementById","getElementsByName","getElementsByTagName",
-  "getElementsByTagNameNS","getExpression","getFeature","getFloatValue","getName","getNamedItem","getNamedItemNS",
-  "getNamespaceURI","getOverrideStyle","getParameter","getPreventDefault","getPropertyCSSValue","getPropertyPriority",
-  "getPropertyValue","getRangeAt","getRectValue","getResponseHeader","getRGBColorValue","getSelection","getStringValue",
-  "getSVGDocument","getUserData","go","hasAttribute","hasAttributeNS","hasAttributes","hasChildNodes","hasFeature",
-  "hasFocus","hide","home","ImportExportFavorites","importNode","importStylesheet","Init","initEvent","initKeyEvent",
-  "initMouseEvent","initMutationEvent","initPageTransitionEvent","initPopupBlockedEvent","initUIEvent","inRange",
-  "insertNode","insertAdjacentElement","insertAdjacentHTML","insertAdjacentText","insertBefore","insertCell","insertData",
-  "insertRow","insertRule","intersectsNode","isDefaultNamespace","isEqual","isEqualNode","isPointInRange","isSameNode",
-  "IsSubscribed","isSupported","item","Item","iterateNext","javaEnabled","lastPage","lineTo","load","loadAsync",
-  "loadBindingDocument","loadOverlay","lookupNamespaceURI","lookupPrefix","maximize","mergeAttributes","minimize",
-  "move","moveBy","moveEnd","moveRow","moveStart","moveTo","moveToBookmark","moveToElementText","moveToPoint",
-  "namedItem","namedRecordset","navigate","NavigateAndFind","nextNode","nextPage","normalize","normalizeDocument",
-  "nSDetach","open","openDialog","openRequest","overrideMimeType","parentElement","parseFromBuffer","parseFromStream",
-  "parseFromString","pasteHTML","preference","preventBubble","preventCapture","preventDefault","previousNode",
-  "previousPage","print","processSchemaElement","prompt","quadraticCurveTo","queryCommandEnabled","queryCommandIndeterm",
-  "queryCommandState","queryCommandSupported","queryCommandText","queryCommandValue","recalc","rect","refresh",
-  "releaseCapture","releaseEvents","reload","remove","removeAllRanges","removeAttribute","removeAttributeNode",
-  "removeAttributeNS","removeBehavior","removeBinding","removeChild","removeEventListener","removeExpression",
-  "removeNamedItem","removeNamedItemNS","removeNode","removeParameter","removeProperty","removeRange","removeRule",
-  "renameNode","replace","replaceAdjacentText","replaceChild","replaceData","replaceNode","reset","resizeBy",
-  "resizeTo","restore","restoreImage","restoreImageTo","rotate","routeEvent","save","scale","scroll","scrollBy",
-  "scrollByLines","scrollByPages","scrollIntoView","scrollTo","select","selectAllChildren","selectionLanguageChange",
-  "selectNode","selectNodeContents","send","serializeToStream","serializeToString","setActive","setAttribute",
-  "setAttributeNode","setAttributeNodeNS","setAttributeNS","setBoxObjectFor","setCapture","setCursor","setData",
-  "setEnd","setEndAfter","setEndBefore","setEndPoint","setExpression","setFloatValue","setInterval","setNamedItem",
-  "setNamedItemNS","setParameter","setProperty","setPropertyPriority","setRequestHeader","setResizable",
-  "setSelectionRange","setStart","setStartAfter","setStartBefore","setStringValue","setTimeout","setUserData",
-  "show","ShowBrowserUI","showHelp","showModalDialog","showModelessDialog","shrinkToFit","sizeToContent",
-  "snapshotItem","splitText","start","stop","stopPropagation","stroke","strokeRect","submit","substringData",
-  "supports","surroundContents","swapNode","tags","taintEnabled","toggleImageSize","transformToDocument",
-  "transformToFragment","translate","unescape","updateCommands","urns","write","writeln",
-
-  # DHTML Event
-  "onabort","onactivate",
-  "onafterprint","onafterupdate","onbeforeactivate","onbeforecopy","onbeforecut","onbeforedeactivate","onbeforeeditfocus",
-  "onbeforepaste","onbeforeprint","onbeforeunload","onbeforeupdate","onblur","onbounce","oncellchange","onchange",
-  "onclick","onclose","oncontextmenu","oncontrolselect","oncopy","oncut","ondataavailable","ondatasetchanged",
-  "ondatasetcomplete","ondblclick","ondeactivate","ondrag","ondragdrop","ondragend","ondragenter","ondragleave",
-  "ondragover","ondragstart","ondrop","onerror","onerrorupdate","onfilterchange","onfinish","onfocus","onfocusin",
-  "onfocusout","onhelp","onkeydown","onkeypress","onkeyup","onlayoutcomplete","onload","onlosecapture","onmousedown",
-  "onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onmove","onmoveend",
-  "onmovestart","onpaint","onpaste","onprogress","onpropertychange","onreadystatechange","onreset","onresize",
-  "onresizeend","onresizestart","onrowenter","onrowexit","onrowsdelete","onrowsinserted","onscroll","onselect",
-  "onselectionchange","onselectstart","onstart","onstop","onsubmit","onunload",
-
-  # DHTML Collection
-  "all","anchors","applets","areas",
-  "attributes","behaviorUrns","blockFormats","bookmarks","boundElements","cells","childNodes","children","classes",
-  "Components","controllers","controlRange","elements","embeds","filters","fonts","forms","frames","ids","images",
-  "imports","interfaces","layers","links","mimeTypes","namespaces","options","pages","plugins","rows","rules","scripts",
-  "styleSheets","tBodies","TextRange","TextRectangle",
-
-  # IE Default Behavior
-  "anchorClick","anim","clientCaps","download","homePage","httpFolder",
-  "mediaBar","saveFavorite","saveHistory","saveSnapshot","userData",
-
-  # IE Default Behavior Object
-  "MediaItem","PlaylistInfo",
-
-  # IE Default Behavior Property
-  "attributeCount",
-  "availHeight","availWidth","bufferDepth","colorDepth","connectionType","cookieEnabled","cpuClass","currentItem",
-  "disabledUI","duration","enabled","expires","folder","hasNextItem","height","image","javaEnabled","name","nextItem",
-  "openState","platform","playlistInfo","playState","sound","sourceURL","statics","systemLanguage","target",
-  "userLanguage","width","XMLDocument",
-
-  # IE Default Behavior Method
-  "addComponentRequest","addDABehavior","clearComponentRequest","compareVersions",
-  "doComponentRequest","getAttribute","getAttributeName","getComponentVersion","getItemInfo","isComponentInstalled",
-  "isHomePage","load","navigate","navigateFrame","navigateHomePage","playNext","playURL","removeAttribute",
-  "removeDABehavior","save","setAttribute","setHomePage","startDownload","stop",
-
-  # IE Default Behavior Event
-  "onhide","onload","onopenstatechange",
-  "onplaystatechange","onsave","onshow",
-
-  # XMLHTTP Object Property
-  "onreadystatechange","readyState","responseBody","responseStream","responseText",
-  "responseXML","status","statusText",
-
-  # XMLHTTP Object Method
-  "abort","getAllResponseHeaders","getResponseHeader","open","send",
-  "setRequestHeader"
-]
-
-
-def search(node, names):
-
-  if node.type == "assignment":
-    left = node.getChild("left", False)
-
-    if left:
-      variable = left.getChild("variable", False)
-
-      if variable:
-        last = variable.getLastChild()
-        first = variable.getFirstChild()
-
-        if last == first:
-          if last.type == "identifier":
-            pass
-
-        elif last.type == "identifier":
-          name = last.get("name")
-
-          ignore = False
-
-          if name in systemNames or name in qooxdooNames:
-            ignore = True
-
-          if not ignore:
-            for item in qooxdooStart:
-              if name.startswith(item):
-                ignore = True
-
-          # only apply to names which starts with an underscore
-          if not name.startswith("_"):
-            ignore = True
-
-          if not ignore:
-            if not names.has_key(name):
-              # print "Add %s" % name
-
-              names[name] = 1
-            else:
-              names[name] += 1
-
-  if node.hasChildren():
-    for child in node.children:
-      search(child, names)
-
-  return names
-
-
-
-
-def update(node, list, prefix):
-  counter = 0
-
-  if node.type == "identifier":
-    idenName = node.get("name", False)
-
-    if idenName != None and idenName in list:
-      replName = "%s%s" % (prefix, mapper.convert(list.index(idenName)))
-      node.set("name", replName)
-      counter += 1
-
-      # print "  - Replaced '%s' with '%s'" % (idenName, replName)
-
-  if node.hasChildren():
-    for child in node.children:
-      counter += update(child, list, prefix)
-
-  return counter
-
-
-
-def sort(names):
-  temp = []
-
-  for name in names:
-    temp.append({ "name" : name, "number" : names[name] })
-
-  temp.sort(lambda x, y: y["number"]-x["number"])
-
-  list = []
-
-  for item in temp:
-    list.append(item["name"])
-
-  print "  * Found %s names" % len(list)
-
-  return list
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/optparseext.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/optparseext.py
deleted file mode 100755 (executable)
index 8184413..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/usr/bin/env python
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Andreas Ecker (ecker)
-#
-################################################################################
-
-from optparse import *
-
-class ExtendAction(Option):
-  ACTIONS = Option.ACTIONS + ("extend",)
-  STORE_ACTIONS = Option.STORE_ACTIONS + ("extend",)
-  TYPED_ACTIONS = Option.TYPED_ACTIONS + ("extend",)
-
-  def take_action(self, action, dest, opt, value, values, parser):
-    if action == "extend":
-      lvalue = value.split(",")
-      values.ensure_value(dest, []).extend(lvalue)
-    else:
-      Option.take_action(
-        self, action, dest, opt, value, values, parser)
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/resources.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/resources.py
deleted file mode 100755 (executable)
index 58cc154..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-#!/usr/bin/env python
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#
-################################################################################
-
-import os, shutil, re
-import config, textutil
-
-
-
-
-def copy(options, sortedIncludeList, fileDb):
-  if options.enableResourceFilter:
-    print "  * Processing embeds..."
-
-    definedEmbeds = {}
-    compiledEmbeds = {}
-
-    for fileId in sortedIncludeList:
-      fileEmbeds = fileDb[fileId]["embeds"]
-
-
-      if len(fileEmbeds) > 0:
-        print "    - Found %i embeds in %s" % (len(fileEmbeds), fileId)
-
-        for fileEmbed in fileEmbeds:
-          resourceNS = fileEmbed["namespace"]
-          resourceId = fileEmbed["id"]
-          embedEntry = fileEmbed["entry"]
-
-          if not definedEmbeds.has_key(resourceNS):
-            definedEmbeds[resourceNS] = {}
-
-          if not definedEmbeds[resourceNS].has_key(resourceId):
-            definedEmbeds[resourceNS][resourceId] = []
-
-          if not embedEntry in definedEmbeds[resourceNS][resourceId]:
-            definedEmbeds[resourceNS][resourceId].append(embedEntry)
-
-
-    # We must do this in a separate step because otherwise the string compare
-    # above does not work (how to compare compiled regexp?)
-
-    print "  * Compiling embeds..."
-
-    for resourceNS in definedEmbeds:
-      for resourceId in definedEmbeds[resourceNS]:
-        for embedEntry in definedEmbeds[resourceNS][resourceId]:
-          if not compiledEmbeds.has_key(resourceNS):
-            compiledEmbeds[resourceNS] = {}
-
-          if not compiledEmbeds[resourceNS].has_key(resourceId):
-            compiledEmbeds[resourceNS][resourceId] = []
-
-          compiledEmbeds[resourceNS][resourceId].append(textutil.toRegExp(embedEntry))
-
-
-
-  print "  * Syncing files..."
-
-  for fileId in sortedIncludeList:
-    filePath = fileDb[fileId]["path"]
-    fileResources = fileDb[fileId]["resources"]
-
-    if len(fileResources) > 0:
-      print "    - Found %i resources in %s" % (len(fileResources), fileId)
-
-      for fileResource in fileResources:
-        resourceNS = fileResource["namespace"]
-        resourceId = fileResource["id"]
-        resourceEntry = fileResource["entry"]
-
-        if options.enableResourceFilter:
-          if compiledEmbeds.has_key(resourceNS) and compiledEmbeds[resourceNS].has_key(resourceId):
-            resourceFilter = compiledEmbeds[resourceNS][resourceId]
-          else:
-            resourceFilter = []
-
-
-
-        # Preparing source directory
-
-        sourceDirectory = os.path.join(fileDb[fileId]["resourceInput"], resourceEntry)
-
-        try:
-          os.listdir(sourceDirectory)
-        except OSError:
-          print "        - Source directory isn't readable! Ignore resource!"
-          continue
-
-
-        # Preparing destination directory
-
-        destinationDirectory = os.path.join(fileDb[fileId]["resourceOutput"], resourceEntry)
-
-
-
-
-
-        print "      - Copying %s [%s.%s]" % (resourceEntry, resourceNS, resourceId)
-
-        for root, dirs, files in os.walk(sourceDirectory):
-
-          # Filter ignored directories
-          for ignoredDir in config.DIRIGNORE:
-            if ignoredDir in dirs:
-              dirs.remove(ignoredDir)
-
-          # Searching for items (resource files)
-          for itemName in files:
-
-            # Generate absolute source file path
-            itemSourcePath = os.path.join(root, itemName)
-
-            # Extract relative path and directory
-            itemRelPath = itemSourcePath.replace(sourceDirectory + os.sep, "")
-            itemRelDir = os.path.dirname(itemRelPath)
-
-            # Filter items
-            if options.enableResourceFilter:
-              include = False
-
-              for filterEntry in resourceFilter:
-                if filterEntry.search(itemRelPath):
-                  include = True
-                  break
-
-              if not include:
-                continue
-
-            # Generate destination directory and file path
-            itemDestDir = os.path.join(destinationDirectory, itemRelDir)
-            itemDestPath = os.path.join(itemDestDir, itemName)
-
-            # Check/Create destination directory
-            if not os.path.exists(itemDestDir):
-              os.makedirs(itemDestDir)
-
-            # Copy file
-            if options.verbose:
-              print "        - Copying file: %s" % itemRelPath
-
-            shutil.copyfile(itemSourcePath, itemDestPath)
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/settings.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/settings.py
deleted file mode 100755 (executable)
index aee16e5..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/usr/bin/env python
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#
-################################################################################
-
-import sys, re, os, optparse
-import filetool
-
-
-
-
-def generate(options):
-  if len(options.defineRuntimeSetting) == 0:
-    return ""
-
-  typeFloat = re.compile("^([0-9\-]+\.[0-9]+)$")
-  typeNumber = re.compile("^([0-9\-])$")
-
-  settingsStr = ""
-
-  settingsStr += 'if(!window.qx)qx={};'
-
-  if options.addNewLines:
-    settingsStr += "\n"
-
-  settingsStr += 'if(!qx.Settings)qx.Settings={};'
-
-  if options.addNewLines:
-    settingsStr += "\n"
-
-  settingsStr += 'if(!qx.Settings._customSettings)qx.Settings._customSettings={};'
-
-  if options.addNewLines:
-    settingsStr += "\n"
-
-  for setting in options.defineRuntimeSetting:
-    settingSplit = setting.split(":")
-    settingKey = settingSplit.pop(0)
-    settingValue = ":".join(settingSplit)
-
-    settingKeySplit = settingKey.split(".")
-    settingKeyName = settingKeySplit.pop()
-    settingKeySpace = ".".join(settingKeySplit)
-
-    checkStr = 'if(!qx.Settings._customSettings["%s"])qx.Settings._customSettings["%s"]={};' % (settingKeySpace, settingKeySpace)
-    if not checkStr in settingsStr:
-      settingsStr += checkStr
-
-      if options.addNewLines:
-        settingsStr += "\n"
-
-    settingsStr += 'qx.Settings._customSettings["%s"]["%s"]=' % (settingKeySpace, settingKeyName)
-
-    if settingValue == "false" or settingValue == "true" or typeFloat.match(settingValue) or typeNumber.match(settingValue):
-      settingsStr += '%s' % settingValue
-
-    else:
-      settingsStr += '"%s"' % settingValue.replace("\"", "\\\"")
-
-    settingsStr += ";"
-
-    if options.addNewLines:
-      settingsStr += "\n"
-
-  return settingsStr
-
-
-
-
-def main():
-  parser = optparse.OptionParser()
-
-  parser.add_option("-d", "--define-runtime-setting", action="append", dest="defineRuntimeSetting", metavar="NAMESPACE.KEY:VALUE", default=[], help="Define a setting.")
-  parser.add_option("-s", "--settings-script-file", dest="settingsScriptFile", metavar="FILENAME", help="Name of settings script file.")
-  parser.add_option("-n", "--add-new-lines", action="store_true", dest="addNewLines", default=False, help="Keep newlines in compiled files.")
-
-  (options, args) = parser.parse_args()
-
-  if options.settingsScriptFile == None:
-    print "  * Please define the output file!"
-    sys.exit(1)
-
-  if len(options.defineRuntimeSetting) == 0:
-    print "  * Please define at least one runtime setting!"
-    sys.exit(1)
-
-  print "   * Saving settings to %s" % options.settingsScriptFile
-  filetool.save(options.settingsScriptFile, generate(options))
-
-
-
-
-if __name__ == '__main__':
-  try:
-    main()
-
-  except KeyboardInterrupt:
-    print
-    print "  * Keyboard Interrupt"
-    sys.exit(1)
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/stringoptimizer.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/stringoptimizer.py
deleted file mode 100755 (executable)
index 3796192..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-#!/usr/bin/env python
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-import tree
-
-
-def search(node, verbose=False):
-  return search_loop(node, {}, verbose)
-
-
-def search_loop(node, stringMap={}, verbose=False):
-  if node.type == "constant" and node.get("constantType") == "string":
-
-    if verbose:
-      pvalue = node.get("value")
-      if isinstance(pvalue, unicode):
-        pvalue = pvalue.encode("utf-8")
-      print "    - Found: %s" % pvalue
-
-    if node.get("detail") == "singlequotes":
-      quote = "'"
-    elif node.get("detail") == "doublequotes":
-      quote = '"'
-
-    value = "%s%s%s" % (quote, node.get("value"), quote)
-
-    if value in stringMap:
-      stringMap[value] += 1
-    else:
-      stringMap[value] = 1
-
-  if check(node, verbose):
-    for child in node.children:
-      search_loop(child, stringMap, verbose)
-
-  return stringMap
-
-
-
-def check(node, verbose=False):
-  # Needs children
-  if not node.hasChildren():
-    return False
-
-  # Try to find all output statements
-  if node.type == "call":
-    cu = node
-    nx = cu.getChild("operand", False)
-
-    if nx != None:
-      cu = nx
-
-    all = cu.getAllChildrenOfType("identifier")
-
-    for ch in all:
-      if ch.get("name", False) in [ "Error", "debug", "info", "warning", "error", "alert" ]:
-        if verbose:
-          print "    - Ignore output statement at line: %s" % ch.get("line")
-        return False
-
-  # Try to find all constant assignments (ns.UPPER = string)
-  elif node.type == "assignment":
-    left = node.getChild("left", False)
-    if left != None:
-      var = left.getChild("variable", False)
-
-      if var != None:
-        last = var.getLastChild()
-
-        if last.type == "identifier" and last.get("name").isupper():
-          if verbose:
-            print "    - Ignore constant assignment at line: %s" % last.get("line")
-          return False
-
-  # Try to find all constant assignments from Maps ({ UPPER : string })
-  elif node.type == "keyvalue":
-    if node.get("key").isupper():
-      if verbose:
-        print "    - Ignore constant key value at line: %s" % node.get("line")
-      return False
-
-  return True
-
-
-
-def sort(stringMap):
-  stringList = []
-
-  for value in stringMap:
-    stringList.append({ "value" : value, "number" : stringMap[value] })
-
-  stringList.sort(lambda x, y: y["number"]-x["number"])
-
-  return stringList
-
-
-
-
-def replace(node, stringList, var="$", verbose=False):
-  if node.type == "constant" and node.get("constantType") == "string":
-    if node.get("detail") == "singlequotes":
-      quote = "'"
-    elif node.get("detail") == "doublequotes":
-      quote = '"'
-
-    oldvalue = "%s%s%s" % (quote, node.get("value"), quote)
-
-    pos = 0
-    for item in stringList:
-      if item["value"] == oldvalue:
-        newvalue = "%s[%s]" % (var, pos)
-
-        if verbose:
-          poldvalue = oldvalue
-          if isinstance(poldvalue, unicode):
-            poldvalue = poldvalue.encode("utf-8")
-          print "    - Replace: %s => %s" % (poldvalue, newvalue)
-
-        line = node.get("line")
-
-
-        # GENERATE IDENTIFIER
-
-        newidentifier = tree.Node("identifier")
-        newidentifier.set("line", line)
-
-        childidentifier = tree.Node("identifier")
-        childidentifier.set("line", line)
-        childidentifier.set("name", var)
-
-        newidentifier.addChild(childidentifier)
-
-
-
-        # GENERATE KEY
-
-        newkey = tree.Node("key")
-        newkey.set("line", line)
-
-        newconstant = tree.Node("constant")
-        newconstant.set("line", line)
-        newconstant.set("constantType", "number")
-        newconstant.set("value", "%s" % pos)
-
-        newkey.addChild(newconstant)
-
-
-
-        # COMBINE CHILDREN
-
-        newnode = tree.Node("accessor")
-        newnode.set("line", line)
-        newnode.set("optimized", True)
-        newnode.set("original", oldvalue)
-        newnode.addChild(newidentifier)
-        newnode.addChild(newkey)
-
-
-        # REPLACE NODE
-
-        node.parent.replaceChild(node, newnode)
-        break
-
-      pos += 1
-
-  if check(node, verbose):
-    for child in node.children:
-      replace(child, stringList, var, verbose)
-
-
-
-def replacement(stringList, var="$"):
-  repl = "%s=[" % var
-
-  for item in stringList:
-    repl += "%s," % (item["value"])
-
-  repl = repl[:-1] + "];"
-
-  return repl
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/svninfo.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/svninfo.py
deleted file mode 100755 (executable)
index 9e7025d..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/usr/bin/env python
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#
-################################################################################
-
-import os, sys, re, optparse
-import filetool
-
-
-
-DIRINFO = re.compile("dir\n([0-9]+)\nhttps://.*/svnroot/qooxdoo/(\w+)/(\w+)/", re.M | re.S)
-
-
-
-def query(path):
-  if os.path.exists(path):
-    entries = os.path.join(path, ".svn", "entries")
-
-    if os.path.exists(entries):
-      content = filetool.read(entries)
-
-      mtch = DIRINFO.search(content)
-      if mtch:
-        folder = mtch.group(2)
-        if folder in [ "tags", "branches" ]:
-          folder = mtch.group(3)
-
-        revision = mtch.group(1)
-
-        return revision, folder
-
-  return None, None
-
-
-
-def format(revision, folder):
-  return "(r%s) [%s]" % (revision, folder)
-
-
-
-if __name__ == '__main__':
-  try:
-    parser = optparse.OptionParser()
-
-    (options, args) = parser.parse_args()
-
-    revision, folder = query(args[0])
-    if revision != None:
-      print format(revision, folder)
-
-
-  except KeyboardInterrupt:
-    print
-    print "  * Keyboard Interrupt"
-    sys.exit(1)
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/textile.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/textile.py
deleted file mode 100755 (executable)
index cc6f287..0000000
+++ /dev/null
@@ -1,2910 +0,0 @@
-#!/usr/bin/env python
-# _*_ coding: latin1 _*_
-
-"""This is Textile
-A Humane Web Text Generator
-
-TODO:
-* Make it work with Python 2.1.
-* Make it work with Python 1.5.2? Or that's too optimistic?
-
----
-To get an overview of all PyTextile's features, simply
-type 'tell me about textile.' in a single line.
-"""
-
-__authors__ = ["Roberto A. F. De Almeida (roberto@dealmeida.net)",
-               "Mark Pilgrim (f8dy@diveintomark.org)"]
-__version__ = "2.0.10"
-__date__ = "2004/10/06"
-__copyright__ = """
-Copyright (c) 2004, Roberto A. F. De Almeida, http://dealmeida.net/
-Copyright (c) 2003, Mark Pilgrim, http://diveintomark.org/
-All rights reserved.
-
-Original PHP version:
-Version 1.0
-21 Feb, 2003
-
-Copyright (c) 2003, Dean Allen, www.textism.com
-All rights reserved.
-
-Parts of the documentation and some of the regular expressions are (c) Brad
-Choate, http://bradchoate.com/. Thanks, Brad!
-"""
-__license__ = """
-Redistribution and use in source and binary forms, with or without 
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice, 
-  this list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright notice,
-  this list of conditions and the following disclaimer in the documentation
-  and/or other materials provided with the distribution.
-
-* Neither the name Textile nor the names of its contributors may be used to
-  endorse or promote products derived from this software without specific
-  prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-"""
-__history__ = """
-1.0 - 2003/03/19 - MAP - initial release
-1.01 - 2003/03/19 - MAP - don't strip whitespace within <pre> tags;
-  map high-bit ASCII to HTML numeric entities
-1.02 - 2003/03/19 - MAP - changed hyperlink qtag expression to only
-  match valid URL characters (per RFC 2396); fixed preg_replace to
-  not match across line breaks (solves lots of problems with
-  mistakenly matching overlapping inline markup); fixed whitespace
-  stripping to only strip whitespace from beginning and end of lines,
-  not immediately before and after HTML tags.
-1.03 - 2003/03/20 - MAP - changed hyperlink qtag again to more
-  closely match original Textile (fixes problems with links
-  immediately followed by punctuation -- somewhere Dean is
-  grinning right now); handle curly apostrophe with "ve"
-  contraction; clean up empty titles at end.
-1.04 - 2003/03/23 - MAP - lstrip input to deal with extra spaces at
-  beginning of first line; tweaked list loop to handle consecutive lists
-1.1 - 2003/06/06 - MAP - created initial test suite for links and images,
-  and fixed a bunch of related bugs to pass them
-1.11 - 2003/07/20 - CL - don't demoronise unicode strings; handle
-  "they're" properly
-1.12 - 2003/07/23 - GW - print debug messages to stderr; handle bq(cite).
-1.13 - 2003/07/23 - MAP - wrap bq. text in <p>...</p>
-2 - 2004/03/26 - RAFA - rewritten from (almost) scratch to include
-  all features from Textile 2 and a little bit more.
-2.0.1 - 2004/04/02 - RAFA - Fixed validating function that uses uTidyLib.
-2.0.2 - 2004/04/02 - RAFA - Fixed problem with caps letters in URLs.
-2.0.3 - 2004/04/19 - RAFA - Multiple classes are allowed, thanks to Dave
-  Anderson. The "lang" attribute is now removed from <code>, to be valid
-  XHTML. Fixed <span class="caps">UCAS</span> problem.
-2.0.4 - 2004/05/20 - RAFA, CLB - Added inline formatting to table cells.
-  Curt Bergmann fixed a bug with the colspan formatting. Added Amazon
-  Associated id.
-2.0.5 - 2004/06/01 - CL - Applied patch from Chris Lawrence to (1) fix
-  that Amazon associates ID was being added to all search URIs, (2)
-  customize the Amazon site used with the AMAZON variable, and (3) added
-  an "isbn" URI type that links directly to an Amazon product by ISBN or
-  Amazon ASIN.
-2.0.6 - 2004/06/02 - RAFA - Fixed CAPS problem, again. I hope this is
-  the last time.
-2.0.7 - 2004/06/04 - RAFA, MW - Fixed bullet macro, thanks to Adam
-  Messinger. Added patch from Michal Wallace changing {}.pop() for
-  compatibility with Python 2.2.x.
-2.0.8 - 2004/06/25 - RAFA - Strip tags when adding the content from a
-  footnote to the reference link. Escaped '<' and '>' in the self-
-  generated documentation.
-2.0.9 - 2004/10/04 - RAFA - In images, if ALT is not defined, add an
-  empty attribute. Added "LaTeX" style open/close quotes. Fixed a bug 
-  where the acronym definition was being formatted with inline rules. 
-  Handle "broken" lines correctly, removing the <br /> from inside
-  split HTML tags.
-2.0.10 - 2004/10/06 - RAFA, LO - Escape all non-escaped ampersands.
-  Applied "trivial patch" from Ludvig Omholt to remove newline right
-  after the <pre> tag.
-"""
-
-# Set your encoding here.
-ENCODING = 'utf-8'
-
-# Output? Non-ASCII characters will be automatically
-# converted to XML entities if you choose ASCII.
-OUTPUT = 'utf-8'
-
-# PyTextile can optionally validate the generated
-# XHTML code. We can use either mxTidy or uTidyLib.
-# You can change the default behaviour here.
-VALIDATE = 0
-
-# If you want h1. to be translated to something other
-# than <h1>, change this offset. You can also pass it
-# as an argument to textile().
-HEAD_OFFSET = 0
-
-# If you want to use itex2mml, specify the full path
-# to the binary here. You can download it from here:
-# http://golem.ph.utexas.edu/~distler/blog/files/itexToMML.tar.gz
-itex2mml = None
-#itex2mml = '/usr/local/bin/itex2MML'
-#itex2mml = '/usr/people/almeida/bin/itex2MML'
-
-# PyTextile can optionally sanitize the generated XHTML,
-# which is good for weblog comments or if you don't trust
-# yourself.
-SANITIZE = 1
-
-# Turn debug on?
-DEBUGLEVEL = 0
-
-# Amazon associate for links: "keywords":amazon
-# If you don't have one, please consider leaving mine here as
-# a small compensation for writing PyTextile. It's commented
-# off as default.
-#amazon_associate_id = 'bomtempo-21'
-amazon_associate_id = None 
-
-#AMAZON = 'www.amazon.co.uk'
-AMAZON = 'www.amazon.com'
-
-import re
-import sys
-import os
-import sgmllib
-import unicodedata
-
-
-def _in_tag(text, tag):
-    """Extracts text from inside a tag.
-
-    This function extracts the text from inside a given tag.
-    It's useful to get the text between <body></body> or
-    <pre></pre> when using the validators or the colorizer.
-    """
-    if text.count('<%s' % tag):
-        text = text.split('<%s' % tag, 1)[1]
-        if text.count('>'):
-            text = text.split('>', 1)[1]
-    if text.count('</%s' % tag):
-        text = text.split('</%s' % tag, 1)[0]
-
-    text = text.strip().replace('\r\n', '\n')
-    
-    return text
-
-
-# If you want PyTextile to automatically colorize
-# your Python code, you need the htmlizer module
-# from Twisted. (You can just grab this file from
-# the distribution, it has no other dependencies.)
-try:
-    #from twisted.python import htmlizer
-    import htmlizer
-    from StringIO import StringIO
-
-    def _color(code):
-        """Colorizer Python code.
-
-        This function wraps a text string in a StringIO,
-        and passes it to the htmlizer function from
-        Twisted.
-        """
-        # Fix line continuations.
-        code = preg_replace(r' \\\n', ' \\\\\n', code)
-        
-        code_in  = StringIO(code)
-        code_out = StringIO()
-
-        htmlizer.filter(code_in, code_out)
-
-        # Remove <pre></pre> from input.
-        code = _in_tag(code_out.getvalue(), 'pre')
-
-        # Fix newlines.
-        code = code.replace('<span class="py-src-newline">\n</span>', '<span class="py-src-newline"></span>\n')
-
-        return code
-
-except ImportError:
-    htmlizer = None
-
-
-# PyTextile can optionally validate the generated
-# XHTML code using either mxTidy or uTidyLib.
-try:
-    # This is mxTidy.
-    from mx.Tidy import Tidy
-    
-    def _tidy1(text):
-        """mxTidy's XHTML validator.
-
-        This function is a wrapper to mxTidy's validator.
-        """
-        nerrors, nwarnings, text, errortext = Tidy.tidy(text, output_xhtml=1, numeric_entities=1, wrap=0)
-        return _in_tag(text, 'body')
-
-    _tidy = _tidy1
-
-except ImportError:
-    try:
-        # This is uTidyLib.
-        import tidy
-
-        def _tidy2(text):
-            """uTidyLib's XHTML validator.
-
-            This function is a wrapper to uTidyLib's validator.
-            """
-            text = tidy.parseString(text,  output_xhtml=1, add_xml_decl=0, indent=0, tidy_mark=0)
-            return _in_tag(str(text), 'body')
-
-        _tidy = _tidy2
-
-    except ImportError:
-        _tidy = None
-    
-
-# This is good for debugging.
-def _debug(s, level=1):
-    """Outputs debug information to sys.stderr.
-
-    This function outputs debug information if DEBUGLEVEL is
-    higher than a given treshold.
-    """
-    if DEBUGLEVEL >= level: print >> sys.stderr, s
-
-
-#############################
-# Useful regular expressions.
-parameters = {
-    # Horizontal alignment.
-    'align':    r'''(?:(?:<>|[<>=])                 # Either '<>', '<', '>' or '='
-                    (?![^\s]*(?:<>|[<>=])))         # Look-ahead to ensure it happens once
-                 ''',
-
-    # Horizontal padding.
-    'padding':  r'''(?:[\(\)]+)                     # Any number of '(' and/or ')'
-                 ''',
-
-    # Class and/or id.
-    'classid':  r'''(                               #
-                        (?:\(\#[\w]+\))             # (#id)
-                        |                           #
-                        (?:\((?:[\w]+(?:\s[\w]+)*)  #
-                            (?:\#[\w]+)?\))         # (class1 class2 ... classn#id) or (class1 class2 ... classn)
-                    )                               #
-                    (?![^\s]*(?:\([\w#]+\)))        # must happen once
-                 ''',
-           
-    # Language.
-    'lang':     r'''(?:\[[\w-]+\])                  # [lang]
-                    (?![^\s]*(?:\[.*?\]))           # must happen once
-                 ''',
-
-    # Style.
-    'style':    r'''(?:{[^\}]+})                    # {style}
-                    (?![^\s]*(?:{.*?}))             # must happen once
-                 ''',
-}
-
-res = {
-    # Punctuation.
-    'punct': r'''[\!"#\$%&'()\*\+,\-\./:;<=>\?@\[\\\]\^_`{\|}\~]''',
-        
-    # URL regular expression.
-    'url':   r'''(?=[a-zA-Z0-9./#])                         # Must start correctly
-                 (?:                                        # Match the leading part (proto://hostname, or just hostname)
-                     (?:ftp|https?|telnet|nntp)             #     protocol
-                     ://                                    #     ://
-                     (?:                                    #     Optional 'username:password@'
-                         \w+                                #         username
-                         (?::\w+)?                          #         optional :password
-                         @                                  #         @
-                     )?                                     # 
-                     [-\w]+(?:\.\w[-\w]*)+                  #     hostname (sub.example.com)
-                 |                                          #
-                     (?:mailto:)?                           #     Optional mailto:
-                     [-\+\w]+                               #     username
-                     \@                                     #     at
-                     [-\w]+(?:\.\w[-\w]*)+                  #     hostname
-                 |                                          #
-                     (?:[a-z0-9](?:[-a-z0-9]*[a-z0-9])?\.)+ #     domain without protocol
-                     (?:com\b                               #     TLD
-                     |  edu\b                               #
-                     |  biz\b                               #
-                     |  gov\b                               #
-                     |  in(?:t|fo)\b                        #     .int or .info
-                     |  mil\b                               #
-                     |  net\b                               #
-                     |  org\b                               #
-                     |  museum\b                            #
-                     |  aero\b                              #
-                     |  coop\b                              #
-                     |  name\b                              #
-                     |  pro\b                               #
-                     |  [a-z][a-z]\b                        #     two-letter country codes
-                     )                                      #
-                 )?                                         #
-                 (?::\d+)?                                  # Optional port number
-                 (?:                                        # Rest of the URL, optional
-                     /?                                     #     Start with '/'
-                     [^.!,?;:"'<>()\[\]{}\s\x7F-\xFF]*      #     Can't start with these
-                     (?:                                    #
-                         [.!,?;:]+                          #     One or more of these
-                         [^.!,?;:"'<>()\[\]{}\s\x7F-\xFF]+  #     Can't finish with these
-                         #'"                                #     # or ' or "
-                     )*                                     #
-                 )?                                         #
-              ''',
-
-
-    # Block attributes.
-    'battr': r'''(?P<parameters>                            # 
-                     (?: %(align)s                          # alignment
-                     |   %(classid)s                        # class and/or id
-                     |   %(padding)s                        # padding tags
-                     |   %(lang)s                           # [lang]
-                     |   %(style)s                          # {style}
-                     )+                                     #
-                 )?                                         #
-              ''' % parameters,
-
-    # (Un)ordered list attributes.
-    'olattr': r'''(?P<olparameters>                         # 
-                      (?: %(align)s                         # alignment
-                      | ((?:\(\#[\w]+\))                    # (#id)
-                          |                                 #
-                          (?:\((?:[\w]+(?:\s[\w]+)*)        #
-                            (?:\#[\w]+)?\))                 # (class1 class2 ... classn#id) or (class1 class2 ... classn)
-                      )                                     #
-                      |   %(padding)s                       # padding tags
-                      |   %(lang)s                          # [lang]
-                      |   %(style)s                         # {style}
-                      )+                                    #
-                  )?                                        #
-              ''' % parameters,
-
-    # List item attributes.
-    'liattr': r'''(?P<liparameters>                         # 
-                      (?: %(align)s                         # alignment
-                      |   %(classid)s                       # class and/or id
-                      |   %(padding)s                       # padding tags
-                      |   %(lang)s                          # [lang]
-                      |   %(style)s                         # {style}
-                      )+                                    #
-                  )?                                        #
-              ''' % parameters,
-
-    # Qtag attributes.
-    'qattr': r'''(?P<parameters>                            #
-                     (?: %(classid)s                        # class and/or id
-                     |   %(lang)s                           # [lang]
-                     |   %(style)s                          # {style}
-                     )+                                     #
-                 )?                                         #
-              ''' % parameters,
-
-    # Link attributes.
-    'lattr': r'''(?P<parameters>                            # Links attributes
-                     (?: %(align)s                          # alignment
-                     |   %(classid)s                        # class and/or id
-                     |   %(lang)s                           # [lang]
-                     |   %(style)s                          # {style}
-                     )+                                     #
-                 )?                                         #
-              ''' % parameters,
-
-    # Image attributes.
-    'iattr': r'''(?P<parameters>                            #
-                     (?:                                    #
-                     (?: [<>]+                              # horizontal alignment tags
-                         (?![^\s]*(?:[<>])))                #     (must happen once)
-                     |                                      # 
-                     (?: [\-\^~]+                           # vertical alignment tags
-                         (?![^\s]*(?:[\-\^~])))             #     (must happen once)
-                     | %(classid)s                          # class and/or id
-                     | %(padding)s                          # padding tags
-                     | %(style)s                            # {style}
-                     )+                                     #
-                 )?                                         #
-              ''' % parameters,
-
-    # Resize attributes.
-    'resize': r'''(?:                                       #
-                      (?:([\d]+%?)x([\d]+%?))               # 20x10
-                      |                                     #
-                      (?:                                   # or
-                          (?:([\d]+)%?w\s([\d]+)%?h)        #     10h 20w
-                          |                                 #     or
-                          (?:([\d]+)%?h\s([\d]+)%?w)        #     20w 10h 
-                      )                                     #
-                  )?                                        #
-               ''',
-
-    # Table attributes.
-    'tattr': r'''(?P<parameters>                            #
-                     (?:                                    #
-                     (?: [\^~]                              # vertical alignment
-                         (?![^\s]*(?:[\^~])))               #     (must happen once)
-                     |   %(align)s                          # alignment
-                     |   %(lang)s                           # [lang]
-                     |   %(style)s                          # {style}
-                     |   %(classid)s                        # class and/or id
-                     |   %(padding)s                        # padding
-                     |   _                                  # is this a header row/cell?
-                     |   \\\d+                              # colspan
-                     |   /\d+                               # rowspan
-                     )+                                     #
-                 )?                                         #
-              ''' % parameters,
-}
-
-
-def preg_replace(pattern, replacement, text):
-    """Alternative re.sub that handles empty groups.
-
-    This acts like re.sub, except it replaces empty groups with ''
-    instead of raising an exception.
-    """
-
-    def replacement_func(matchobj):
-        counter = 1
-        rc = replacement
-        _debug(matchobj.groups())
-        for matchitem in matchobj.groups():
-            if not matchitem:
-                matchitem = ''
-
-            rc = rc.replace(r'\%s' % counter, matchitem)
-            counter += 1
-
-        return rc
-        
-    p = re.compile(pattern)
-    _debug(pattern)
-
-    return p.sub(replacement_func, text)
-
-
-def html_replace(pattern, replacement, text):
-    """Replacement outside HTML tags.
-
-    Does a preg_replace only outside HTML tags.
-    """
-    # If there is no html, do a simple search and replace.
-    if not re.search(r'''<.*>''', text):
-        return preg_replace(pattern, replacement, text)
-
-    else:
-        lines = []
-        # Else split the text into an array at <>.
-        for line in re.split('(<.*?>)', text):
-            if not re.match('<.*?>', line):
-                line = preg_replace(pattern, replacement, line)
-
-            lines.append(line)
-
-        return ''.join(lines)
-
-
-# PyTextile can optionally sanitize the generated XHTML,
-# which is good for weblog comments. This code is from
-# Mark Pilgrim's feedparser.
-class _BaseHTMLProcessor(sgmllib.SGMLParser):
-    elements_no_end_tag = ['area', 'base', 'basefont', 'br', 'col', 'frame', 'hr',
-      'img', 'input', 'isindex', 'link', 'meta', 'param']
-    
-    def __init__(self):
-        sgmllib.SGMLParser.__init__(self)
-    
-    def reset(self):
-        self.pieces = []
-        sgmllib.SGMLParser.reset(self)
-
-    def normalize_attrs(self, attrs):
-        # utility method to be called by descendants
-        attrs = [(k.lower(), sgmllib.charref.sub(lambda m: unichr(int(m.groups()[0])), v).strip()) for k, v in attrs]
-        attrs = [(k, k in ('rel', 'type') and v.lower() or v) for k, v in attrs]
-        return attrs
-    
-    def unknown_starttag(self, tag, attrs):
-        # called for each start tag
-        # attrs is a list of (attr, value) tuples
-        # e.g. for <pre class="screen">, tag="pre", attrs=[("class", "screen")]
-        strattrs = "".join([' %s="%s"' % (key, value) for key, value in attrs])
-        if tag in self.elements_no_end_tag:
-            self.pieces.append("<%(tag)s%(strattrs)s />" % locals())
-        else:
-            self.pieces.append("<%(tag)s%(strattrs)s>" % locals())
-        
-    def unknown_endtag(self, tag):
-        # called for each end tag, e.g. for </pre>, tag will be "pre"
-        # Reconstruct the original end tag.
-        if tag not in self.elements_no_end_tag:
-            self.pieces.append("</%(tag)s>" % locals())
-
-    def handle_charref(self, ref):
-        # called for each character reference, e.g. for "&#160;", ref will be "160"
-        # Reconstruct the original character reference.
-        self.pieces.append("&#%(ref)s;" % locals())
-
-    def handle_entityref(self, ref):
-        # called for each entity reference, e.g. for "&copy;", ref will be "copy"
-        # Reconstruct the original entity reference.
-        self.pieces.append("&%(ref)s;" % locals())
-
-    def handle_data(self, text):
-        # called for each block of plain text, i.e. outside of any tag and
-        # not containing any character or entity references
-        # Store the original text verbatim.
-        self.pieces.append(text)
-
-    def handle_comment(self, text):
-        # called for each HTML comment, e.g. <!-- insert Javascript code here -->
-        # Reconstruct the original comment.
-        self.pieces.append("<!--%(text)s-->" % locals())
-
-    def handle_pi(self, text):
-        # called for each processing instruction, e.g. <?instruction>
-        # Reconstruct original processing instruction.
-        self.pieces.append("<?%(text)s>" % locals())
-
-    def handle_decl(self, text):
-        # called for the DOCTYPE, if present, e.g.
-        # <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-        #     "http://www.w3.org/TR/html4/loose.dtd">
-        # Reconstruct original DOCTYPE
-        self.pieces.append("<!%(text)s>" % locals())
-
-    def output(self):
-        """Return processed HTML as a single string"""
-        return "".join(self.pieces)
-
-
-class _HTMLSanitizer(_BaseHTMLProcessor):
-    acceptable_elements = ['a', 'abbr', 'acronym', 'address', 'area', 'b', 'big',
-      'blockquote', 'br', 'button', 'caption', 'center', 'cite', 'code', 'col',
-      'colgroup', 'dd', 'del', 'dfn', 'dir', 'div', 'dl', 'dt', 'em', 'fieldset',
-      'font', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img', 'input',
-      'ins', 'kbd', 'label', 'legend', 'li', 'map', 'menu', 'ol', 'optgroup',
-      'option', 'p', 'pre', 'q', 's', 'samp', 'select', 'small', 'span', 'strike',
-      'strong', 'sub', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th',
-      'thead', 'tr', 'tt', 'u', 'ul', 'var']
-
-    acceptable_attributes = ['abbr', 'accept', 'accept-charset', 'accesskey',
-      'action', 'align', 'alt', 'axis', 'border', 'cellpadding', 'cellspacing',
-      'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'clear', 'cols',
-      'colspan', 'color', 'compact', 'coords', 'datetime', 'dir', 'disabled',
-      'enctype', 'for', 'frame', 'headers', 'height', 'href', 'hreflang', 'hspace',
-      'id', 'ismap', 'label', 'lang', 'longdesc', 'maxlength', 'media', 'method',
-      'multiple', 'name', 'nohref', 'noshade', 'nowrap', 'prompt', 'readonly',
-      'rel', 'rev', 'rows', 'rowspan', 'rules', 'scope', 'selected', 'shape', 'size',
-      'span', 'src', 'start', 'summary', 'tabindex', 'target', 'title', 'type',
-      'usemap', 'valign', 'value', 'vspace', 'width']
-    
-    unacceptable_elements_with_end_tag = ['script', 'applet'] 
-    
-    # This if for MathML.
-    mathml_elements = ['math', 'mi', 'mn', 'mo', 'mrow', 'msup']
-    mathml_attributes = ['mode', 'xmlns']
-
-    acceptable_elements = acceptable_elements + mathml_elements
-    acceptable_attributes = acceptable_attributes + mathml_attributes
-                  
-    def reset(self):
-        _BaseHTMLProcessor.reset(self)
-        self.unacceptablestack = 0
-        
-    def unknown_starttag(self, tag, attrs):
-        if not tag in self.acceptable_elements:
-            if tag in self.unacceptable_elements_with_end_tag:
-                self.unacceptablestack += 1
-            return
-        attrs = self.normalize_attrs(attrs)
-        attrs = [(key, value) for key, value in attrs if key in self.acceptable_attributes]
-        _BaseHTMLProcessor.unknown_starttag(self, tag, attrs)
-
-    def unknown_endtag(self, tag):
-        if not tag in self.acceptable_elements:
-            if tag in self.unacceptable_elements_with_end_tag:
-                self.unacceptablestack -= 1
-            return
-        _BaseHTMLProcessor.unknown_endtag(self, tag)
-
-    def handle_pi(self, text):
-        pass
-
-    def handle_decl(self, text):
-        pass
-
-    def handle_data(self, text):
-        if not self.unacceptablestack:
-            _BaseHTMLProcessor.handle_data(self, text)
-
-
-class Textiler:
-    """Textile formatter.
-
-    This is the base class for the PyTextile text processor.
-    """
-    def __init__(self, text=''):
-        """Instantiate the class, passing the text to be formatted.
-            
-        Here we pre-process the text and collect all the link
-        lookups for later.
-        """
-        self.text = text
-
-        # Basic regular expressions.
-        self.res = res
-
-        # Smart searches.
-        self.searches = {}
-        self.searches['imdb']   = 'http://www.imdb.com/Find?for=%s'
-        self.searches['google'] = 'http://www.google.com/search?q=%s'
-        self.searches['python'] = 'http://www.python.org/doc/current/lib/module-%s.html'
-        if amazon_associate_id:
-            self.searches['isbn']   = ''.join(['http://', AMAZON, '/exec/obidos/ASIN/%s/', amazon_associate_id])
-            self.searches['amazon'] = ''.join(['http://', AMAZON, '/exec/obidos/external-search?mode=blended&keyword=%s&tag=', amazon_associate_id])
-        else:
-            self.searches['isbn']   = ''.join(['http://', AMAZON, '/exec/obidos/ASIN/%s'])
-            self.searches['amazon'] = ''.join(['http://', AMAZON, '/exec/obidos/external-search?mode=blended&keyword=%s'])
-
-        # These are the blocks we know.
-        self.signatures = [
-                           # Paragraph.
-                           (r'''^p                       # Paragraph signature
-                                %(battr)s                # Paragraph attributes
-                                (?P<dot>\.)              # .
-                                (?P<extend>\.)?          # Extended paragraph denoted by a second dot
-                                \s                       # whitespace
-                                (?P<text>.*)             # text
-                             ''' % self.res, self.paragraph),
-   
-                           # Pre-formatted text.
-                           (r'''^pre                     # Pre signature
-                                %(battr)s                # Pre attributes
-                                (?P<dot>\.)              # .
-                                (?P<extend>\.)?          # Extended pre denoted by a second dot
-                                \s                       # whitespace
-                                (?P<text>.*)             # text
-                             ''' % self.res, self.pre),
-   
-                           # Block code.
-                           (r'''^bc                      # Blockcode signature
-                                %(battr)s                # Blockcode attributes
-                                (?P<dot>\.)              # .
-                                (?P<extend>\.)?          # Extended blockcode denoted by a second dot
-                                \s                       # whitespace
-                                (?P<text>.*)             # text
-                             ''' % self.res, self.bc),
-   
-                           # Blockquote.
-                           (r'''^bq                      # Blockquote signature
-                                %(battr)s                # Blockquote attributes
-                                (?P<dot>\.)              # .
-                                (?P<extend>\.)?          # Extended blockquote denoted by a second dot
-                                (:(?P<cite>              # Optional cite attribute
-                                (                        #
-                                    %(url)s              #     URL
-                                |   "[\w]+(?:\s[\w]+)*"  #     "Name inside quotes"
-                                ))                       #
-                                )?                       #
-                                \s                       # whitespace
-                                (?P<text>.*)             # text
-                             ''' % self.res, self.blockquote),
-   
-                           # Header.
-                           (r'''^h                       # Header signature
-                                (?P<header>\d)           # Header number
-                                %(battr)s                # Header attributes
-                                (?P<dot>\.)              # .
-                                (?P<extend>\.)?          # Extended header denoted by a second dot
-                                \s                       # whitespace
-                                (?P<text>.*)             # text
-                             ''' % self.res, self.header),
-   
-                           # Footnote.
-                           (r'''^fn                      # Footnote signature
-                                (?P<footnote>[\d]+)      # Footnote number
-                                (?P<dot>\.)              # .
-                                (?P<extend>\.)?          # Extended footnote denoted by a second dot
-                                \s                       # whitespace
-                                (?P<text>.*)             # text
-                             ''', self.footnote),
-   
-                           # Definition list.
-                           (r'''^dl                      # Definition list signature
-                                %(battr)s                # Definition list attributes
-                                (?P<dot>\.)              # .
-                                (?P<extend>\.)?          # Extended definition list denoted by a second dot
-                                \s                       # whitespace
-                                (?P<text>.*)             # text
-                             ''' % self.res, self.dl),
-                           
-                           # Ordered list (attributes to first <li>).
-                           (r'''^%(olattr)s              # Ordered list attributes
-                                \#                       # Ordered list signature
-                                %(liattr)s               # List item attributes
-                                (?P<dot>\.)?             # .
-                                \s                       # whitespace
-                                (?P<text>.*)             # text
-                             ''' % self.res, self.ol),
-   
-                           # Unordered list (attributes to first <li>).
-                           (r'''^%(olattr)s              # Unrdered list attributes
-                                \*                       # Unordered list signature
-                                %(liattr)s               # Unordered list attributes
-                                (?P<dot>\.)?             # .
-                                \s                       # whitespace
-                                (?P<text>.*)             # text
-                             ''' % self.res, self.ul),
-   
-                           # Escaped text.
-                           (r'''^==?(?P<text>.*?)(==)?$  # Escaped text
-                             ''', self.escape),
-
-                           (r'''^(?P<text><.*)$          # XHTML tag
-                             ''', self.escape),
-   
-                           # itex code.
-                           (r'''^(?P<text>               # itex code
-                                \\\[                     # starts with \[
-                                .*?                      # complicated mathematical equations go here
-                                \\\])                    # ends with \]
-                             ''', self.itex),
-   
-                           # Tables.
-                           (r'''^table                   # Table signature
-                                %(tattr)s                # Table attributes
-                                (?P<dot>\.)              # .
-                                (?P<extend>\.)?          # Extended blockcode denoted by a second dot
-                                \s                       # whitespace
-                                (?P<text>.*)             # text
-                             ''' % self.res, self.table),
-                           
-                           # Simple tables.
-                           (r'''^(?P<text>
-                                \|
-                                .*)
-                             ''', self.table),
-   
-                           # About.
-                           (r'''^(?P<text>tell\sme\sabout\stextile\.)$''', self.about),
-                          ]
-
-
-    def protectPre(self, text):
-        regexps = re.compile(r'''^<pre>?(?P<text>.*?)</pre>?$''', re.VERBOSE | re.DOTALL | re.M)
-        counter = 0
-        self.protectedPres = []
-        
-        for item in regexps.findall(text):
-          text = text.replace(item, "[[[[[REPL%s]]]]]" % counter, 1)
-          self.protectedPres.append(item)    
-          counter += 1  
-          
-        #if len(self.protectedPres) > 0:
-        #  print ">>>> PREPROCESSED: %s items" % len(self.protectedPres)  
-          
-        return text    
-
-
-    def preprocess(self):
-        """Pre-processing of the text.
-
-        Remove whitespace, fix carriage returns.
-        """
-        # Remove whitespace.
-        self.text = self.text.strip()
-
-        # Zap carriage returns.
-        self.text = self.text.replace("\r\n", "\n")
-        self.text = self.text.replace("\r", "\n")
-
-        # Protect existing pre blocks
-        self.text = self.protectPre(self.text)
-
-        # Minor sanitizing.
-        self.text = self.sanitize(self.text)
-        
-
-    def postprocess(self, text):
-        counter = 0
-        
-        #if len(self.protectedPres) > 0:
-        #  print ">>>> POSTPROCESS: %s items" % len(self.protectedPres)
-      
-        for entry in self.protectedPres:
-          text = text.replace("[[[[[REPL%s]]]]]" % counter, entry, 1)        
-          counter += 1
-        
-        return text
-        
-
-    def grab_links(self):
-        """Grab link lookups.
-
-        Check the text for link lookups, store them in a 
-        dictionary, and clean them up.
-        """
-        # Grab links like this: '[id]example.com'
-        links = {}
-        p = re.compile(r'''(?:^|\n)\[([\w]+?)\](%(url)s)(?:$|\n)''' % self.res, re.VERBOSE)
-        for key, link in p.findall(self.text):
-            links[key] = link
-
-        # And clear them from the text.
-        self.text = p.sub('', self.text)
-
-        return links
-
-
-    def process(self, head_offset=HEAD_OFFSET, validate=VALIDATE, sanitize=SANITIZE, output=OUTPUT, encoding=ENCODING):
-        """Process the text.
-
-        Here we actually process the text, splitting the text in
-        blocks and applying the corresponding function to each
-        one of them.
-        """
-        # Basic global changes.
-        self.preprocess()
-
-        # Grab lookup links and clean them from the text.
-        self._links = self.grab_links()
-
-        # Offset for the headers.
-        self.head_offset = head_offset
-
-        # Process each block.
-        self.blocks = self.split_text()
-
-        text = []
-        for [function, captures] in self.blocks:
-            text.append(function(**captures))
-
-        text = '\n\n'.join(text)
-
-        # Add titles to footnotes.
-        text = self.footnotes(text)
-
-        # Convert to desired output.
-        text = unicode(text, encoding)
-        text = text.encode(output, 'xmlcharrefreplace')
-        
-        # Postprocess
-        text = self.postprocess(text)
-
-        # Sanitize?
-        if sanitize:
-            p = _HTMLSanitizer()
-            p.feed(text)
-            text = p.output()
-
-        # Validate output.
-        if _tidy and validate:
-            text = _tidy(text)
-
-        return text
-
-
-    def sanitize(self, text):
-        """Fix single tags.
-
-        Fix tags like <img />, <br /> and <hr />.
-
-        ---
-        h1. Sanitizing
-
-        Textile can help you generate valid XHTML(eXtensible HyperText Markup Language).
-        It will fix any single tags that are not properly closed, like
-        @<img />@, @<br />@ and @<hr />@.
-
-        If you have "mx.Tidy":http://www.egenix.com/files/python/mxTidy.html
-        and/or "&micro;TidyLib":http://utidylib.sourceforge.net/ installed,
-        it also can optionally validade the generated code with these wrappers
-        to ensure 100% valid XHTML(eXtensible HyperText Markup Language).
-        """
-        # Fix single tags like <img /> and <br />.
-        text = preg_replace(r'''<(img|br|hr)(.*?)(?:\s*/?\s*)?>''', r'''<\1\2 />''', text)
-
-        # Remove ampersands.
-        text = preg_replace(r'''&(?!#?[xX]?(?:[0-9a-fA-F]+|\w{1,8});)''', r'''&amp;''', text)
-
-        return text
-
-
-    def split_text(self):
-        """Process the blocks from the text.
-
-        Split the blocks according to the signatures, join extended
-        blocks and associate each one of them with a function to
-        process them.
-
-        ---
-        h1. Blocks
-
-        Textile process your text by dividing it in blocks. Each block
-        is identified by a signature and separated from other blocks by
-        an empty line.
-
-        All signatures should end with a period followed by a space. A
-        header @<h1></h1>@ can be done this way:
-
-        pre. h1. This is a header 1.
-
-        Blocks may continue for multiple paragraphs of text. If you want
-        a block signature to stay "active", use two periods after the
-        signature instead of one. For example:
-
-        pre.. bq.. This is paragraph one of a block quote.
-
-        This is paragraph two of a block quote.
-
-        =p. Now we're back to a regular paragraph.
-
-        p. Becomes:
-        
-        pre.. <blockquote>
-        <p>This is paragraph one of a block quote.</p>
-
-        <p>This is paragraph two of a block quote.</p>
-        </blockquote>
-
-        <p>Now we&#8217;re back to a regular paragraph.</p>
-
-        p. The blocks can be customised by adding parameters between the
-        signature and the period. These include:
-
-        dl. {style rule}:A CSS(Cascading Style Sheets) style rule.
-        [ll]:A language identifier (for a "lang" attribute).
-        (class) or (#id) or (class#id):For CSS(Cascading Style Sheets) class and id attributes.
-        &gt;, &lt;, =, &lt;&gt;:Modifier characters for alignment. Right-justification, left-justification, centered, and full-justification. The paragraph will also receive the class names "right", "left", "center" and "justify", respectively.
-        ( (one or more):Adds padding on the left. 1em per "(" character is applied. When combined with the align-left or align-right modifier, it makes the block float. 
-        ) (one or more):Adds padding on the right. 1em per ")" character is applied. When combined with the align-left or align-right modifier, it makes the block float.
-
-        Here's an overloaded example:
-
-        pre. p(())>(class#id)[en]{color:red}. A simple paragraph.
-
-        Becomes:
-
-        pre. <p lang="en" style="color:red;padding-left:2em;padding-right:2em;float:right;" class="class right" id="id">A simple paragraph.</p>
-        """
-        # Clear signature.
-        clear_sig = r'''^clear(?P<alignment>[<>])?\.$'''
-        clear = None
-
-        extending  = 0
-        
-        
-
-        # We capture the \n's because they are important inside "pre..".
-        blocks = re.split(r'''((\n\s*){2,})''', self.text)
-        output = []
-        for block in blocks:
-            # Check for the clear signature.
-            m = re.match(clear_sig, block)
-            if m:
-                clear = m.group('alignment')
-                if clear:
-                    clear = {'<': 'clear:left;', '>': 'clear:right;'}[clear]
-                else:
-                    clear = 'clear:both;'
-
-            else:
-                # Check each of the code signatures.
-                for regexp, function in self.signatures:
-                    p = re.compile(regexp, (re.VERBOSE | re.DOTALL))
-                    m = p.match(block)
-                    if m:
-                        # Put everything in a dictionary.
-                        captures = m.groupdict()
-
-                        # If we are extending a block, we require a dot to
-                        # break it, so we can start lines with '#' inside
-                        # an extended <pre> without matching an ordered list.
-                        if extending and not captures.get('dot', None):
-                            output[-1][1]['text'] += block
-                            break 
-                        elif captures.has_key('dot'):
-                            del captures['dot']
-                            
-                        # If a signature matches, we are not extending a block.
-                        extending = 0
-
-                        # Check if we should extend this block.
-                        if captures.has_key('extend'):
-                            extending = captures['extend']
-                            del captures['extend']
-                            
-                        # Apply head_offset.
-                        if captures.has_key('header'):
-                            captures['header'] = int(captures['header']) + self.head_offset
-
-                        # Apply clear.
-                        if clear:
-                            captures['clear'] = clear
-                            clear = None
-
-                        # Save the block to be processed later.
-                        output.append([function, captures])
-
-                        break
-
-                else:
-                    if extending:
-                        # Append the text to the last block.
-                        output[-1][1]['text'] += block
-                    elif block.strip():
-                        output.append([self.paragraph, {'text': block}])
-    
-        return output
-
-
-    def parse_params(self, parameters, clear=None, align_type='block'):
-        """Parse the parameters from a block signature.
-
-        This function parses the parameters from a block signature,
-        splitting the information about class, id, language and
-        style. The positioning (indentation and alignment) is parsed
-        and stored in the style.
-
-        A paragraph like:
-
-            p>(class#id){color:red}[en]. Paragraph.
-
-        or:
-            
-            p{color:red}[en](class#id)>. Paragraph.
-
-        will have its parameters parsed to:
-
-            output = {'lang' : 'en',
-                      'class': 'class',
-                      'id'   : 'id',
-                      'style': 'color:red;text-align:right;'}
-
-        Note that order is not important.
-        """
-        if not parameters:
-            if clear:
-                return {'style': clear}
-            else:
-                return {}
-
-        output = {}
-        
-        # Match class from (class) or (class#id).
-        m = re.search(r'''\((?P<class>[\w]+(\s[\w]+)*)(\#[\w]+)?\)''', parameters)
-        if m: output['class'] = m.group('class')
-
-        # Match id from (#id) or (class#id).
-        m = re.search(r'''\([\w]*(\s[\w]+)*\#(?P<id>[\w]+)\)''', parameters)
-        if m: output['id'] = m.group('id')
-
-        # Match [language].
-        m = re.search(r'''\[(?P<lang>[\w-]+)\]''', parameters)
-        if m: output['lang'] = m.group('lang')
-
-        # Match {style}.
-        m = re.search(r'''{(?P<style>[^\}]+)}''', parameters)
-        if m:
-            output['style'] = m.group('style').replace('\n', '')
-
-            # If necessary, apppend a semi-comma to the style.
-            if not output['style'].endswith(';'):
-                output['style'] += ';'
-
-        # Clear the block?
-        if clear:
-            output['style'] = output.get('style', '') + clear
-
-        # Remove classes, ids, langs and styles. This makes the 
-        # regular expression for the positioning much easier.
-        parameters = preg_replace(r'''\([\#\w\s]+\)''', '', parameters)
-        parameters = preg_replace(r'''\[[\w-]+\]''', '', parameters)
-        parameters = preg_replace(r'''{[\w:;#%-]+}''', '', parameters)
-
-        style = []
-        
-        # Count the left indentation.
-        l_indent = parameters.count('(')
-        if l_indent: style.append('padding-left:%dem;' % l_indent)
-
-        # Count the right indentation.
-        r_indent = parameters.count(')')
-        if r_indent: style.append('padding-right:%dem;' % r_indent)
-
-        # Add alignment.
-        if align_type == 'image':
-            align = [('<', 'float:left;', ' left'),
-                     ('>', 'float:right;', ' right')]
-
-            valign = [('^', 'vertical-align:text-top;', ' top'),
-                      ('-', 'vertical-align:middle;', ' middle'),
-                      ('~', 'vertical-align:text-bottom;', ' bottom')]
-
-            # Images can have both a vertical and a horizontal alignment.
-            for alignments in [align, valign]:
-                for _align, _style, _class in alignments:
-                    if parameters.count(_align):
-                        style.append(_style)
-                        
-                        # Append a class name related to the alignment.
-                        output['class'] = output.get('class', '') + _class
-                        break
-
-        elif align_type == 'table':
-            align = [('<', 'left'),
-                     ('>', 'right'),
-                     ('=', 'center'),
-                     ('<>', 'justify')]
-
-            valign = [('^', 'top'),
-                      ('~', 'bottom')]
-
-            # Horizontal alignment.
-            for _align, _style, in align:
-                if parameters.count(_align):
-                    output['align'] = _style
-            
-            # Vertical alignment.
-            for _align, _style, in valign:
-                if parameters.count(_align):
-                    output['valign'] = _style
-
-            # Colspan and rowspan.
-            m = re.search(r'''\\(\d+)''', parameters)
-            if m:
-                #output['colspan'] = m.groups()
-                output['colspan'] = int(m.groups()[0])
-
-            m = re.search(r'''/(\d+)''', parameters)
-            if m:
-                output['rowspan'] = int(m.groups()[0])
-
-        else:
-            if l_indent or r_indent:
-                alignments = [('<>', 'text-align:justify;', ' justify'),
-                              ('=', 'text-align:center;', ' center'),
-                              ('<', 'float:left;', ' left'),
-                              ('>', 'float:right;', ' right')]
-            else:
-                alignments = [('<>', 'text-align:justify;', ' justify'),
-                              ('=', 'text-align:center;', ' center'),
-                              ('<', 'text-align:left;', ' left'),
-                              ('>', 'text-align:right;', ' right')]
-
-            for _align, _style, _class in alignments:
-                if parameters.count(_align):
-                    style.append(_style)
-
-                    # Append a class name related to the alignment.
-                    output['class'] = output.get('class', '') + _class
-                    break
-
-        # Join all the styles.
-        output['style'] = output.get('style', '') + ''.join(style)
-
-        # Remove excess whitespace.
-        if output.has_key('class'):
-            output['class'] = output['class'].strip()
-
-        return output 
-        
-
-    def build_open_tag(self, tag, attributes={}, single=0):
-        """Build the open tag with specified attributes.
-
-        This function is used by all block builders to 
-        generate the opening tags with the attributes of
-        the block.
-        """
-        # Open tag.
-        open_tag = ['<%s' % tag]
-        for k,v in attributes.items():
-            # The ALT attribute can be empty.
-            if k == 'alt' or v: open_tag.append(' %s="%s"' % (k, v))
-
-        if single:
-            open_tag.append(' /')
-
-        # Close tag.
-        open_tag.append('>')
-
-        return ''.join(open_tag)
-
-
-    def paragraph(self, text, parameters=None, attributes=None, clear=None):
-        """Process a paragraph.
-
-        This function processes the paragraphs, enclosing the text in a 
-        <p> tag and breaking lines with <br />. Paragraphs are formatted
-        with all the inline rules.
-
-        ---
-        h1. Paragraph
-        
-        This is how you write a paragraph:
-
-        pre. p. This is a paragraph, although a short one.
-        
-        Since the paragraph is the default block, you can safely omit its
-        signature ([@p@]). Simply write:
-
-        pre. This is a paragraph, although a short one.
-
-        Text in a paragraph block is wrapped in @<p></p>@ tags, and
-        newlines receive a <br /> tag. In both cases Textile will process
-        the text to:
-
-        pre. <p>This is a paragraph, although a short one.</p>
-
-        Text in a paragraph block is processed with all the inline rules.
-        """
-        # Split the lines.
-        lines = re.split('\n{2,}', text)
-        
-        # Get the attributes.
-        attributes = attributes or self.parse_params(parameters, clear)
-
-        output = []
-        for line in lines:
-            if line:
-                # Clean the line.
-                line = line.strip()
-                 
-                # Build the tag.
-                open_tag = self.build_open_tag('p', attributes)
-                close_tag = '</p>'
-
-                # Pop the id because it must be unique.
-                if attributes.has_key('id'): del attributes['id']
-
-                # Break lines. 
-                # line = preg_replace(r'(<br />|\n)+', '<br />\n', line)
-
-                # Remove <br /> from inside broken HTML tags.
-                line = preg_replace(r'(<[^>]*)<br />\n(.*?>)', r'\1 \2', line)
-
-                # Inline formatting.
-                line = self.inline(line)
-
-                output.append(open_tag + line + close_tag)
-
-        return '\n\n'.join(output)
-
-
-    def pre(self, text, parameters=None, clear=None):
-        """Process pre-formatted text.
-
-        This function processes pre-formatted text into a <pre> tag.
-        No HTML is added for the lines, but @<@ and @>@ are translated into
-        HTML entities.
-
-        ---
-        h1. Pre-formatted text
-
-        Pre-formatted text can be specified using the @pre@ signature.
-        Inside a "pre" block, whitespace is preserved and @<@ and @>@ are
-        translated into HTML(HyperText Markup Language) entities
-        automatically.
-
-        Text in a "pre" block is _not processed_ with any inline rule.
-
-        Here's a simple example:
-
-        pre. pre. This text is pre-formatted.
-        Nothing interesting happens inside here...
-        
-        Will become:
-
-        pre. <pre>
-        This text is pre-formatted.
-        Nothing interesting happens inside here...
-        </pre>
-        """
-
-        # Remove trailing whitespace.
-        text = text.rstrip()
-
-        # Get the attributes.
-        attributes = self.parse_params(parameters, clear)
-
-        # Build the tag.
-        #open_tag = self.build_open_tag('pre', attributes) + '\n'
-        open_tag = self.build_open_tag('pre', attributes)
-        close_tag = '\n</pre>'
-
-        # Replace < and >.
-        text = text.replace('<', '&lt;')
-        text = text.replace('>', '&gt;')
-
-        return open_tag + text + close_tag
-
-
-    def bc(self, text, parameters=None, clear=None):
-        """Process block code.
-
-        This function processes block code into a <code> tag inside a
-        <pre>. No HTML is added for the lines, but @<@ and @>@ are translated
-        into HTML entities.
-
-        ---
-        h1. Block code
-
-        A block code, specified by the @bc@ signature, is a block of
-        pre-formatted text which also receives a @<code></code>@ tag. As
-        with "pre", whitespace is preserved and @<@ and @>@ are translated
-        into HTML(HyperText Markup Language) entities automatically.
-
-        Text in a "bc" code is _not processed_ with the inline rules.
-        
-        If you have "Twisted":http://www.twistedmatrix.com/ installed,
-        Textile can automatically colorize your Python code if you
-        specify its language as "Python":
-        
-        pre. bc[python]. from twisted.python import htmlizer
-
-        This will become:
-
-        pre. <pre>
-        <code lang="python">
-        <span class="py-src-keyword">from</span> <span class="py-src-variable">twisted</span><span class="py-src-op">.</span><span class="py-src-variable">python</span> <span class="py-src-keyword">import</span> <span class="py-src-variable">htmlizer</span>
-        </code>
-        </pre>
-
-        The colors can be specified in your CSS(Cascading Style Sheets)
-        file. If you don't want to install Twisted, you can download just
-        the @htmlizer@ module "independently":http://dealmeida.net/code/htmlizer.py.txt.
-        """
-
-        # Get the attributes.
-        attributes = self.parse_params(parameters, clear)
-
-        # XHTML <code> can't have the attribute lang.
-        if attributes.has_key('lang'):
-            lang = attributes['lang']
-            del attributes['lang']
-        else:
-            lang = None
-
-        # Build the tag.
-        open_tag = '<pre>\n' + self.build_open_tag('code', attributes) + '\n'
-        close_tag = '\n</code>\n</pre>'
-
-        # Colorize Python code?
-        if htmlizer and lang == 'python':
-            text = _color(text)
-        else:
-            # Replace < and >.
-            text = text.replace('<', '&lt;')
-            text = text.replace('>', '&gt;')
-
-        return open_tag + text + close_tag
-
-
-    def dl(self, text, parameters=None, clear=None):
-        """Process definition list.
-
-        This function process definition lists. The text inside
-        the <dt> and <dd> tags is processed for inline formatting.
-
-        ---
-        h1. Definition list
-
-        A definition list starts with the signature @dl@, and has
-        its items separated by a @:@. Here's a simple example:
-
-        pre. dl. name:Sir Lancelot of Camelot.
-        quest:To seek the Holy Grail.
-        color:Blue.
-
-        Becomes:
-
-        pre. <dl>
-        <dt>name</dt>
-        <dd>Sir Lancelot of Camelot.</dd>
-        <dt>quest</dt>
-        <dd>To seek the Holy Grail.</dd>
-        <dt>color</dt>
-        <dd>Blue.</dd>
-        </dl>
-        """
-        # Get the attributes.
-        attributes = self.parse_params(parameters, clear)
-
-        # Build the tag.
-        open_tag = self.build_open_tag('dl', attributes) + '\n'
-        close_tag = '\n</dl>'
-
-        lines = text.split('\n')
-        output = []
-        for line in lines:
-            if line.count(':'):
-                [dt, dd] = line.split(':', 1)
-            else:
-                dt,dd = line, ''
-
-            if dt: output.append('<dt>%s</dt>\n<dd>%s</dd>' % (dt, dd))
-
-        text = '\n'.join(output)
-
-        text = self.inline(text)
-
-        return open_tag + text + close_tag
-
-
-    def blockquote(self, text, parameters=None, cite=None, clear=None):
-        """Process block quote.
-
-        The block quote is inserted into a <blockquote> tag, and
-        processed as a paragraph. An optional cite attribute can
-        be appended on the last line after two dashes (--), or
-        after the period following ':' for compatibility with the
-        Perl version.
-
-        ---
-        h1. Blockquote
-
-        A blockquote is denoted by the signature @bq@. The text in this
-        block will be enclosed in @<blockquote></blockquote>@ and @<p></p>@,
-        receiving the same formatting as a paragraph. For example:
-
-        pre. bq. This is a blockquote.
-
-        Becomes:
-
-        pre. <blockquote>
-        <p>This is a blockquote.</p>
-        </blockquote>
-
-        You can optionally specify the @cite@ attribute of the blockquote,
-        using the following syntax:
-
-        pre. bq.:http://example.com Some text.
-
-        pre. bq.:"John Doe" Some other text.
-
-        Becomes:
-
-        pre. <blockquote cite="http://example.com">
-        <p>Some text.</p>
-        </blockquote>
-
-        pre. <blockquote cite="John Doe">
-        <p>Some other text.</p>
-        </blockquote>
-
-        You can also specify the @cite@ using a pair of dashes on the
-        last line of the blockquote:
-
-        pre. bq. Some text.
-        -- http://example.com
-        """
-
-        # Get the attributes.
-        attributes = self.parse_params(parameters, clear)
-
-        if cite:
-            # Remove the quotes?
-            cite = cite.strip('"')
-            attributes['cite'] = cite
-        else:
-            # The citation should be on the last line.
-            text = text.split('\n')
-            if text[-1].startswith('-- '):
-                attributes['cite'] = text.pop()[3:]    
-        
-            text = '\n'.join(text)
-
-        # Build the tag.
-        open_tag = self.build_open_tag('blockquote', attributes) + '\n'
-        close_tag = '\n</blockquote>'
-
-        # Process the paragraph, passing the attributes.
-        # Does it make sense to pass the id, class, etc. to
-        # the paragraph instead of applying it to the
-        # blockquote tag?
-        text = self.paragraph(text)
-        
-        return open_tag + text + close_tag
-
-
-    def header(self, text, parameters=None, header=1, clear=None):
-        """Process a header.
-
-        The header number is captured by the regular 
-        expression and lives in header. If head_offset is
-        set, it is adjusted accordingly.
-
-        ---
-        h1. Header
-
-        A header is produced by the signature @hn@, where @n@ goes
-        from 1 to 6. You can adjust the relative output of the headers
-        passing a @head_offset@ attribute when calling @textile()@.
-
-        To make a header:
-
-        pre. h1. This is a header.
-
-        Becomes:
-
-        pre. <h1>This is a header.</h1>
-        """
-        # Get the attributes.
-        attributes = self.parse_params(parameters, clear)
-
-        # Get the header number and limit it between 1 and 6.
-        n = header
-        n = min(n,6)
-        n = max(n,1)
-
-        # Build the tag.
-        open_tag = self.build_open_tag('h%d' % n, attributes)
-        close_tag = '</h%d>' % n
-
-        text = self.inline(text)
-
-        return open_tag + text + close_tag
-
-
-    def footnote(self, text, parameters=None, footnote=1, clear=None):
-        """Process a footnote.
-
-        A footnote is formatted as a paragraph of class
-        'footnote' and id 'fn%d', starting with the footnote
-        number in a <sup> tag. Here we just build the
-        attributes and pass them directly to self.paragraph().
-
-        ---
-        h1. Footnote
-
-        A footnote is produced by the signature @fn@ followed by
-        a number. Footnotes are paragraphs of a special CSS(Cascading Style Sheets)
-        class. An example:
-
-        pre. fn1. This is footnote number one.
-
-        Will produce this:
-
-        pre. <p class="footnote" id="fn1"><sup>1</sup> This is footnote number one.</p>
-
-        This footnote can be referenced anywhere on the text by the
-        following way:
-
-        pre. This is a reference[1] to footnote number one.
-
-        Which becomes:
-
-        pre. <p>This is a reference<sup class="footnote"><a href="#fn1" title="This is footnote number one.">1</a></sup> to footnote number 1.</p>
-
-        Note that the text from the footnote appears in the @title@ of the
-        link pointing to it.
-        """
-        # Get the number.
-        n = int(footnote)
-
-        # Build the attributes to the paragraph.
-        attributes = self.parse_params(parameters, clear)
-        attributes['class'] = 'footnote'
-        attributes['id']    = 'fn%d' % n
-
-        # Build the paragraph text.
-        text = ('<sup>%d</sup> ' % n) + text
-
-        # And return the paragraph.
-        return self.paragraph(text=text, attributes=attributes)
-
-
-    def build_li(self, items, liattributes):
-        """Build the list item.
-
-        This function build the list item of an (un)ordered list. It
-        works by peeking at the next list item, and searching for a
-        multi-list. If a multi-list is found, it is processed and 
-        appended inside the list item tags, as it should be.
-        """
-        lines = []
-        while len(items):
-            item = items.pop(0)
-
-            # Clean the line.
-            item = item.lstrip()
-            item = item.replace('\n', '<br />\n')
-
-            # Get list item attributes.
-            p = re.compile(r'''^%(liattr)s\s''' % self.res, re.VERBOSE)
-            m = p.match(item)
-            if m:
-                c = m.groupdict('')
-                liparameters = c['liparameters']
-                item = p.sub('', item)
-            else:
-                liparameters = ''
-
-            liattributes = liattributes or self.parse_params(liparameters)
-            
-            # Build the item tag.
-            open_tag_li = self.build_open_tag('li', liattributes) 
-
-            # Reset the attributes, which should be applied
-            # only to the first <li>.
-            liattributes = {}
-
-            # Build the closing tag.
-            close_tag_li = '</li>'
-
-            # Multi-list recursive routine.
-            # Here we check the _next_ items for a multi-list. If we
-            # find one, we extract all items of the multi-list and
-            # process them recursively.
-            if len(items):
-                inlist = []
-
-                # Grab all the items that start with # or *.
-                n_item = items.pop(0)
-
-                # Grab the <ol> parameters.
-                p = re.compile(r'''^%(olattr)s''' % self.res, re.VERBOSE)
-                m = p.match(n_item)
-                if m:
-                    c = m.groupdict('')
-                    olparameters = c['olparameters']
-                    tmp = p.sub('', n_item)
-                else:
-                    olparameters = ''
-
-                # Check for an ordered list inside this one.
-                if tmp.startswith('#'):
-                    n_item = tmp
-                    inlist.append(n_item)
-                    while len(items):
-                        # Peek into the next item.
-                        n_item = items.pop(0)
-                        if n_item.startswith('#'):
-                            inlist.append(n_item)
-                        else:
-                            items.insert(0, n_item)
-                            break
-                        
-                    inlist = self.ol('\n'.join(inlist), olparameters=olparameters)
-                    item = item + '\n' + inlist + '\n'
-
-                # Check for an unordered list inside this one.
-                elif tmp.startswith('*'):
-                    n_item = tmp
-                    inlist.append(n_item)
-                    while len(items):
-                        # Peek into the next item.
-                        n_item = items.pop(0)
-                        if n_item.startswith('*'):
-                            inlist.append(n_item)
-                        else:
-                            items.insert(0, n_item)
-                            break
-
-                    inlist = self.ul('\n'.join(inlist), olparameters=olparameters)
-                    item = item + '\n' + inlist + '\n'
-
-                # Otherwise we just put it back in the list.
-                else:
-                    items.insert(0, n_item)
-
-            item = self.inline(item)
-
-            item = open_tag_li + item + close_tag_li
-            lines.append(item)
-
-        return '\n'.join(lines)
-
-
-    def ol(self, text, liparameters=None, olparameters=None, clear=None):
-        """Build an ordered list.
-
-        This function basically just sets the <ol></ol> with the
-        right attributes, and then pass everything inside to 
-        _build_li, which does the real tough recursive job.
-
-        ---
-        h1. Ordered lists
-
-        Ordered lists can be constructed this way:
-
-        pre. # Item number 1.
-        # Item number 2.
-        # Item number 3.
-
-        And you get:
-
-        pre. <ol>
-        <li>Item number 1.</li>
-        <li>Item number 2.</li>
-        <li>Item number 3.</li>
-        </ol>
-
-        If you want a list to "break" an extended block, you should
-        add a period after the hash. This is useful for writing 
-        Python code:
-
-        pre.. bc[python].. #!/usr/bin/env python
-
-        # This is a comment, not an ordered list!
-        # So this won't break the extended "bc".
-
-        p. Lists can be nested:
-
-        pre. # Item number 1.
-        ## Item number 1a.
-        ## Item number 1b.
-        # Item number 2.
-        ## Item number 2a.
-
-        Textile will transform this to:
-
-        pre. <ol>
-        <li>Item number 1.
-        <ol>
-        <li>Item number 1a.</li>
-        <li>Item number 1b.</li>
-        </ol>
-        </li>
-        <li>Item number 2.
-        <ol>
-        <li>Item number 2a.</li>
-        </ol>
-        </li>
-        </ol>
-
-        You can also mix ordered and unordered lists:
-
-        pre. * To write well you need:
-        *# to read every day
-        *# to write every day
-        *# and X
-
-        You'll get this:
-
-        pre. <ul>
-        <li>To write well you need:
-        <ol>
-        <li>to read every day</li>
-        <li>to write every day</li>
-        <li>and X</li>
-        </ol>
-        </li>
-        </ul>
-
-        To style a list, the parameters should go before the hash if you want
-        to set the attributes on the @<ol>@ tag:
-
-        pre. (class#id)# one
-        # two
-        # three
-
-        If you want to customize the firsr @<li>@ tag, apply the parameters
-        after the hash:
-
-        pre. #(class#id) one
-        # two
-        # three
-        """
-        # Get the attributes.
-        olattributes = self.parse_params(olparameters, clear)
-        liattributes = self.parse_params(liparameters)
-
-        # Remove list depth.
-        if text.startswith('#'):
-            text = text[1:]
-
-        items = text.split('\n#')
-
-        # Build the open tag.
-        open_tag = self.build_open_tag('ol', olattributes) + '\n'
-
-        close_tag = '\n</ol>'
-
-        # Build the list items.
-        text = self.build_li(items, liattributes)
-
-        return open_tag + text + close_tag
-
-
-    def ul(self, text, liparameters=None, olparameters=None, clear=None):
-        """Build an unordered list.
-
-        This function basically just sets the <ul></ul> with the
-        right attributes, and then pass everything inside to 
-        _build_li, which does the real tough recursive job.
-
-        ---
-        h1. Unordered lists
-
-        Unordered lists behave exactly like the ordered lists, and are
-        defined using a star:
-
-        pre. * Python
-        * Perl
-        * PHP
-
-        Becomes:
-
-        pre. <ul>
-        <li>Python</li>
-        <li>Perl</li>
-        <li><span class="caps">PHP</span></li>
-        </ul>
-        """
-        # Get the attributes.
-        olattributes = self.parse_params(olparameters, clear)
-        liattributes = self.parse_params(liparameters)
-
-        # Remove list depth.
-        if text.startswith('*'):
-            text = text[1:]
-
-        items = text.split('\n*')
-
-        # Build the open tag.
-        open_tag = self.build_open_tag('ul', olattributes) + '\n'
-
-        close_tag = '\n</ul>'
-
-        # Build the list items.
-        text = self.build_li(items, liattributes)
-
-        return open_tag + text + close_tag
-    
-
-    def table(self, text, parameters=None, clear=None):
-        """Build a table.
-
-        To build a table we split the text in lines to get the
-        rows, and split the rows between '|' to get the individual
-        cells.
-
-        ---
-        h1. Tables
-
-        Making a simple table is as easy as possible:
-
-        pre. |a|b|c|
-        |1|2|3|
-
-        Will be processed into:
-
-        pre. <table>
-        <tr>
-        <td>a</td>
-        <td>b</td>
-        <td>c</td>
-        </tr>
-        <tr>
-        <td>1</td>
-        <td>2</td>
-        <td>3</td>
-        </tr>
-        </table>
-
-        If you want to customize the @<table>@ tag, you must use the
-        @table@ signature:
-
-        pre. table(class#id)[en]. |a|b|c|
-        |1|2|3|
-
-        To customize a row, apply the modifier _before_ the first @|@:
-
-        pre. table. (class)<>|a|b|c|
-        |1|2|3|
-
-        Individual cells can by customized by adding the parameters _after_
-        the @|@, proceded by a period and a space:
-
-        pre. |(#id). a|b|c|
-        |1|2|3|
-
-        The allowed modifiers are:
-
-        dl. {style rule}:A CSS(Cascading Style Sheets) style rule. 
-        (class) or (#id) or (class#id):A CSS(Cascading Style Sheets) class and/or id attribute. 
-        ( (one or more):Adds 1em of padding to the left for each '(' character. 
-        ) (one or more):Adds 1em of padding to the right for each ')' character. 
-        &lt;:Aligns to the left (floats to left for tables if combined with the ')' modifier). 
-        &gt;:Aligns to the right (floats to right for tables if combined with the '(' modifier). 
-        =:Aligns to center (sets left, right margins to 'auto' for tables). 
-        &lt;&gt;:For cells only. Justifies text. 
-        ^:For rows and cells only. Aligns to the top. 
-        ~ (tilde):For rows and cells only. Aligns to the bottom. 
-        _ (underscore):Can be applied to a table row or cell to indicate a header row or cell. 
-        \\2 or \\3 or \\4, etc.:Used within cells to indicate a colspan of 2, 3, 4, etc. columns. When you see "\\", think "push forward". 
-        /2 or /3 or /4, etc.:Used within cells to indicate a rowspan of 2, 3, 4, etc. rows. When you see "/", think "push downward". 
-        
-        When a cell is identified as a header cell and an alignment is
-        specified, that becomes the default alignment for cells below it.
-        You can always override this behavior by specifying an alignment
-        for one of the lower cells.
-        """
-        attributes = self.parse_params(parameters, clear, align_type='table')
-        #attributes['cellspacing'] = '0'
-
-        # Build the <table>.
-        open_tag = self.build_open_tag('table', attributes) + '\n'
-        close_tag = '</table>'
-
-        output = []
-        default_align = {}
-        rows = re.split(r'''\n+''', text)
-        for row in rows:
-            # Get the columns.
-            columns = row.split('|')
-
-            # Build the <tr>.
-            parameters = columns.pop(0)
-
-            rowattr = self.parse_params(parameters, align_type='table')
-            open_tr = self.build_open_tag('tr', rowattr) + '\n'
-            output.append(open_tr)
-
-            # Does the row define headers?
-            if parameters.count('_'):
-                td_tag = 'th'
-            else:
-                td_tag = 'td'
-                
-            col = 0
-            for cell in columns[:-1]:
-                p = re.compile(r'''(?:%(tattr)s\.\s)?(?P<text>.*)''' % self.res, re.VERBOSE)
-                m = p.match(cell)
-                if m:
-                    c = m.groupdict('')
-                    cellattr = self.parse_params(c['parameters'], align_type='table')
-
-                    # Get the width of this cell.
-                    width = cellattr.get('colspan', 1)
-
-                    # Is this a header?
-                    if c['parameters'].count('_'):
-                        td_tag = 'th'
-
-                    # If it is a header, let's set the default alignment.
-                    if td_tag == 'th':
-                        # Set the default aligment for all cells below this one.
-                        # This is a little tricky because this header can have
-                        # a colspan set.
-                        for i in range(col, col+width):
-                            default_align[i] = cellattr.get('align', None)
-
-                    else:
-                        # Apply the default align, if any.
-                        cellattr['align'] = cellattr.get('align', default_align.get(col, None))
-
-                    open_td = self.build_open_tag(td_tag, cellattr)
-                    close_td = '</%s>\n' % td_tag
-
-                    #output.append(open_td + c['text'].strip() + close_td)
-                    output.append(open_td + self.inline(c['text'].strip()) + close_td)
-
-                col += width
-
-            output.append('</tr>\n')
-
-        text = open_tag + ''.join(output) + close_tag
-
-        return text
-
-
-    def escape(self, text):
-        """Do nothing.
-
-        This is used to match escaped text. Nothing to see here!
-
-        ---
-        h1. Escaping
-
-        If you don't want Textile processing a block, you can simply
-        enclose it inside @==@:
-
-        pre. p. Regular paragraph
-
-        pre. ==
-        Escaped portion -- will not be formatted
-        by Textile at all
-        ==
-
-        pre. p. Back to normal.
-
-        This can also be used inline, disabling the formatting temporarily:
-
-        pre. p. This is ==*a test*== of escaping.
-        """
-        return text
-
-
-    def itex(self, text):
-        """Convert itex to MathML.
-
-        If the itex2mml binary is set, we use it to convert the
-        itex to MathML. Otherwise, the text is unprocessed and 
-        return as is.
-
-        ---
-        h1. itex
-
-        Textile can automatically convert itex code to MathML(Mathematical Markup Language)
-        for you, if you have the itex2MML binary (you can download it
-        from the "Movable Type plugin":http://golem.ph.utexas.edu/~distler/blog/files/itexToMML.tar.gz).
-
-        Block equations should be enclosed inbetween @\[@ and @\]@:
-
-        pre. \[ e^{i\pi} + 1 = 0 \]
-
-        Will be translated to:
-
-        pre. <math xmlns='http://www.w3.org/1998/Math/MathML' mode='display'>
-        <msup><mi>e</mi> <mrow><mi>i</mi>
-        <mi>&amp;pi;</mi></mrow></msup>
-        <mo>+</mo><mn>1</mn><mo>=</mo><mn>0</mn>
-        </math>
-
-        Equations can also be displayed inline:
-
-        pre. Euler's formula, $e^{i\pi}+1=0$, ...
-
-        (Note that if you want to display MathML(Mathematical Markup Language)
-        your content must be served as @application/xhtml+xml@, which is not
-        accepted by all browsers.)
-        """
-        if itex2mml:
-            try:
-                text = os.popen("echo '%s' | %s" % (text, itex2mml)).read()
-            except:
-                pass
-
-        return text
-
-
-    def about(self, text=None):
-        """Show PyTextile's functionalities.
-
-        An introduction to PyTextile. Can be called when running the
-        main script or if you write the following line:
-
-            'tell me about textile.'
-
-        But keep it a secret!
-        """
-
-        about = []
-        about.append(textile('h1. This is Textile', head_offset=self.head_offset))
-        about.append(textile(__doc__.split('---', 1)[1], head_offset=self.head_offset))
-
-        functions = [(self.split_text, 1),
-                     (self.paragraph,  2),
-                     (self.pre,        2),
-                     (self.bc,         2),
-                     (self.blockquote, 2),
-                     (self.dl,         2),
-                     (self.header,     2),
-                     (self.footnote,   2),
-                     (self.escape,     2),
-                     (self.itex,       2),
-                     (self.ol,         2),
-                     (self.ul,         2),
-                     (self.table,      2),
-                     (self.inline,     1),
-                     (self.qtags,      2),
-                     (self.glyphs,     2),
-                     (self.macros,     2),
-                     (self.acronym,    2),
-                     (self.images,     1),
-                     (self.links,      1),
-                     (self.sanitize,   1),
-                    ]
-
-        for function, offset in functions:
-            doc = function.__doc__.split('---', 1)[1]
-            doc = doc.split('\n')
-            lines = []
-            for line in doc:
-                line = line.strip()
-                lines.append(line)
-                
-            doc = '\n'.join(lines)
-            about.append(textile(doc, head_offset=self.head_offset+offset))
-
-        about = '\n'.join(about)
-        about = about.replace('<br />', '')
-
-        return about
-
-
-    def acronym(self, text):
-        """Process acronyms.
-
-        Acronyms can have letters in upper and lower caps, or even numbers,
-        provided that the numbers and upper caps are the same in the
-        abbreviation and in the description. For example:
-
-            XHTML(eXtensible HyperText Markup Language)
-            OPeNDAP(Open source Project for a Network Data Access Protocol)
-            L94(Levitus 94)
-
-        are all valid acronyms.
-
-        ---
-        h1. Acronyms
-
-        You can define acronyms in your text the following way:
-
-        pre. This is XHTML(eXtensible HyperText Markup Language).
-
-        The resulting code is:
-
-        pre. <p><acronym title="eXtensible HyperText Markup Language"><span class="caps">XHTML</span></acronym></p>
-
-        Acronyms can have letters in upper and lower caps, or even numbers,
-        provided that the numbers and upper caps are the same in the
-        abbreviation and in the description. For example:
-
-        pre. XHTML(eXtensible HyperText Markup Language)
-        OPeNDAP(Open source Project for a Network Data Access Protocol)
-        L94(Levitus 94)
-
-        are all valid acronyms.
-        """
-        # Find the acronyms.
-        acronyms = r'''(?P<acronym>[\w]+)\((?P<definition>[^\(\)]+?)\)'''
-
-        # Check all acronyms.
-        for acronym, definition in re.findall(acronyms, text):
-            caps_acronym = ''.join(re.findall('[A-Z\d]+', acronym))
-            caps_definition = ''.join(re.findall('[A-Z\d]+', definition))
-            if caps_acronym and caps_acronym == caps_definition:
-                text = text.replace('%s(%s)' % (acronym, definition), '<acronym title="%s">%s</acronym>' % (definition, acronym))
-        
-        text = html_replace(r'''(^|\s)([A-Z]{3,})\b(?!\()''', r'''\1<span class="caps">\2</span>''', text)
-
-        return text
-
-
-    def footnotes(self, text):
-        """Add titles to footnotes references.
-
-        This function searches for footnotes references like this [1], and 
-        adds a title to the link containing the first paragraph of the
-        footnote.
-        """
-        # Search for footnotes.
-        p = re.compile(r'''<p class="footnote" id="fn(?P<n>\d+)"><sup>(?P=n)</sup>(?P<note>.*)</p>''')
-        for m in p.finditer(text):
-            n = m.group('n')
-            note = m.group('note').strip()
-
-            # Strip HTML from note.
-            note = re.sub('<.*?>', '', note)
-
-            # Add the title.
-            text = text.replace('<a href="#fn%s">' % n, '<a href="#fn%s" title="%s">' % (n, note))
-
-        return text
-
-
-    def macros(self, m):
-        """Quick macros.
-
-        This function replaces macros inside brackets using a built-in
-        dictionary, and also unicode names if the key doesn't exist.
-
-        ---
-        h1. Macros
-
-        Textile has support for character macros, which should be enclosed
-        in curly braces. A few useful ones are:
-
-        pre. {C=} or {=C}: euro sign
-        {+-} or {-+}: plus-minus sign
-        {L-} or {-L}: pound sign.
-
-        You can also make accented characters:
-
-        pre. Expos{e'}
-
-        Becomes:
-
-        pre. <p>Expos&amp;#233;</p>
-
-        You can also specify Unicode names like:
-
-        pre. {umbrella}
-        {white smiling face}
-        """
-        entity = m.group(1)
-
-        macros = {'c|': '&#162;',       # cent sign
-                  '|c': '&#162;',       # cent sign
-                  'L-': '&#163;',       # pound sign
-                  '-L': '&#163;',       # pound sign
-                  'Y=': '&#165;',       # yen sign
-                  '=Y': '&#165;',       # yen sign
-                  '(c)': '&#169;',      # copyright sign
-                  '<<': '&#171;',       # left-pointing double angle quotation
-                  '(r)': '&#174;',      # registered sign
-                  '+_': '&#177;',       # plus-minus sign
-                  '_+': '&#177;',       # plus-minus sign
-                  '>>': '&#187;',       # right-pointing double angle quotation
-                  '1/4': '&#188;',      # vulgar fraction one quarter
-                  '1/2': '&#189;',      # vulgar fraction one half
-                  '3/4': '&#190;',      # vulgar fraction three quarters
-                  'A`': '&#192;',       # latin capital letter a with grave
-                  '`A': '&#192;',       # latin capital letter a with grave
-                  'A\'': '&#193;',      # latin capital letter a with acute
-                  '\'A': '&#193;',      # latin capital letter a with acute
-                  'A^': '&#194;',       # latin capital letter a with circumflex
-                  '^A': '&#194;',       # latin capital letter a with circumflex
-                  'A~': '&#195;',       # latin capital letter a with tilde
-                  '~A': '&#195;',       # latin capital letter a with tilde
-                  'A"': '&#196;',       # latin capital letter a with diaeresis
-                  '"A': '&#196;',       # latin capital letter a with diaeresis
-                  'Ao': '&#197;',       # latin capital letter a with ring above
-                  'oA': '&#197;',       # latin capital letter a with ring above
-                  'AE': '&#198;',       # latin capital letter ae
-                  'C,': '&#199;',       # latin capital letter c with cedilla
-                  ',C': '&#199;',       # latin capital letter c with cedilla
-                  'E`': '&#200;',       # latin capital letter e with grave
-                  '`E': '&#200;',       # latin capital letter e with grave
-                  'E\'': '&#201;',      # latin capital letter e with acute
-                  '\'E': '&#201;',      # latin capital letter e with acute
-                  'E^': '&#202;',       # latin capital letter e with circumflex
-                  '^E': '&#202;',       # latin capital letter e with circumflex
-                  'E"': '&#203;',       # latin capital letter e with diaeresis
-                  '"E': '&#203;',       # latin capital letter e with diaeresis
-                  'I`': '&#204;',       # latin capital letter i with grave
-                  '`I': '&#204;',       # latin capital letter i with grave
-                  'I\'': '&#205;',      # latin capital letter i with acute
-                  '\'I': '&#205;',      # latin capital letter i with acute
-                  'I^': '&#206;',       # latin capital letter i with circumflex
-                  '^I': '&#206;',       # latin capital letter i with circumflex
-                  'I"': '&#207;',       # latin capital letter i with diaeresis
-                  '"I': '&#207;',       # latin capital letter i with diaeresis
-                  'D-': '&#208;',       # latin capital letter eth
-                  '-D': '&#208;',       # latin capital letter eth
-                  'N~': '&#209;',       # latin capital letter n with tilde
-                  '~N': '&#209;',       # latin capital letter n with tilde
-                  'O`': '&#210;',       # latin capital letter o with grave
-                  '`O': '&#210;',       # latin capital letter o with grave
-                  'O\'': '&#211;',      # latin capital letter o with acute
-                  '\'O': '&#211;',      # latin capital letter o with acute
-                  'O^': '&#212;',       # latin capital letter o with circumflex
-                  '^O': '&#212;',       # latin capital letter o with circumflex
-                  'O~': '&#213;',       # latin capital letter o with tilde
-                  '~O': '&#213;',       # latin capital letter o with tilde
-                  'O"': '&#214;',       # latin capital letter o with diaeresis
-                  '"O': '&#214;',       # latin capital letter o with diaeresis
-                  'O/': '&#216;',       # latin capital letter o with stroke
-                  '/O': '&#216;',       # latin capital letter o with stroke
-                  'U`':  '&#217;',      # latin capital letter u with grave
-                  '`U':  '&#217;',      # latin capital letter u with grave
-                  'U\'': '&#218;',      # latin capital letter u with acute
-                  '\'U': '&#218;',      # latin capital letter u with acute
-                  'U^': '&#219;',       # latin capital letter u with circumflex
-                  '^U': '&#219;',       # latin capital letter u with circumflex
-                  'U"': '&#220;',       # latin capital letter u with diaeresis
-                  '"U': '&#220;',       # latin capital letter u with diaeresis
-                  'Y\'': '&#221;',      # latin capital letter y with acute
-                  '\'Y': '&#221;',      # latin capital letter y with acute
-                  'a`': '&#224;',       # latin small letter a with grave
-                  '`a': '&#224;',       # latin small letter a with grave
-                  'a\'': '&#225;',      # latin small letter a with acute
-                  '\'a': '&#225;',      # latin small letter a with acute
-                  'a^': '&#226;',       # latin small letter a with circumflex
-                  '^a': '&#226;',       # latin small letter a with circumflex
-                  'a~': '&#227;',       # latin small letter a with tilde
-                  '~a': '&#227;',       # latin small letter a with tilde
-                  'a"': '&#228;',       # latin small letter a with diaeresis
-                  '"a': '&#228;',       # latin small letter a with diaeresis
-                  'ao': '&#229;',       # latin small letter a with ring above
-                  'oa': '&#229;',       # latin small letter a with ring above
-                  'ae': '&#230;',       # latin small letter ae
-                  'c,': '&#231;',       # latin small letter c with cedilla
-                  ',c': '&#231;',       # latin small letter c with cedilla
-                  'e`': '&#232;',       # latin small letter e with grave
-                  '`e': '&#232;',       # latin small letter e with grave
-                  'e\'': '&#233;',      # latin small letter e with acute
-                  '\'e': '&#233;',      # latin small letter e with acute
-                  'e^': '&#234;',       # latin small letter e with circumflex
-                  '^e': '&#234;',       # latin small letter e with circumflex
-                  'e"': '&#235;',       # latin small letter e with diaeresis
-                  '"e': '&#235;',       # latin small letter e with diaeresis
-                  'i`': '&#236;',       # latin small letter i with grave
-                  '`i': '&#236;',       # latin small letter i with grave
-                  'i\'': '&#237;',      # latin small letter i with acute
-                  '\'i': '&#237;',      # latin small letter i with acute
-                  'i^': '&#238;',       # latin small letter i with circumflex
-                  '^i': '&#238;',       # latin small letter i with circumflex
-                  'i"': '&#239;',       # latin small letter i with diaeresis
-                  '"i': '&#239;',       # latin small letter i with diaeresis
-                  'n~': '&#241;',       # latin small letter n with tilde
-                  '~n': '&#241;',       # latin small letter n with tilde
-                  'o`': '&#242;',       # latin small letter o with grave
-                  '`o': '&#242;',       # latin small letter o with grave
-                  'o\'': '&#243;',      # latin small letter o with acute
-                  '\'o': '&#243;',      # latin small letter o with acute
-                  'o^': '&#244;',       # latin small letter o with circumflex
-                  '^o': '&#244;',       # latin small letter o with circumflex
-                  'o~': '&#245;',       # latin small letter o with tilde
-                  '~o': '&#245;',       # latin small letter o with tilde
-                  'o"': '&#246;',       # latin small letter o with diaeresis
-                  '"o': '&#246;',       # latin small letter o with diaeresis
-                  ':-': '&#247;',       # division sign
-                  '-:': '&#247;',       # division sign
-                  'o/': '&#248;',       # latin small letter o with stroke
-                  '/o': '&#248;',       # latin small letter o with stroke
-                  'u`': '&#249;',       # latin small letter u with grave
-                  '`u': '&#249;',       # latin small letter u with grave
-                  'u\'': '&#250;',      # latin small letter u with acute
-                  '\'u': '&#250;',      # latin small letter u with acute
-                  'u^': '&#251;',       # latin small letter u with circumflex
-                  '^u': '&#251;',       # latin small letter u with circumflex
-                  'u"': '&#252;',       # latin small letter u with diaeresis
-                  '"u': '&#252;',       # latin small letter u with diaeresis
-                  'y\'': '&#253;',      # latin small letter y with acute
-                  '\'y': '&#253;',      # latin small letter y with acute
-                  'y"': '&#255',        # latin small letter y with diaeresis
-                  '"y': '&#255',        # latin small letter y with diaeresis
-                  'OE': '&#338;',       # latin capital ligature oe
-                  'oe': '&#339;',       # latin small ligature oe
-                  '*': '&#8226;',       # bullet
-                  'Fr': '&#8355;',      # french franc sign
-                  'L=': '&#8356;',      # lira sign
-                  '=L': '&#8356;',      # lira sign
-                  'Rs': '&#8360;',      # rupee sign
-                  'C=': '&#8364;',      # euro sign
-                  '=C': '&#8364;',      # euro sign
-                  'tm': '&#8482;',      # trade mark sign
-                  '<-': '&#8592;',      # leftwards arrow
-                  '->': '&#8594;',      # rightwards arrow
-                  '<=': '&#8656;',      # leftwards double arrow
-                  '=>': '&#8658;',      # rightwards double arrow
-                  '=/': '&#8800;',      # not equal to
-                  '/=': '&#8800;',      # not equal to
-                  '<_': '&#8804;',      # less-than or equal to
-                  '_<': '&#8804;',      # less-than or equal to
-                  '>_': '&#8805;',      # greater-than or equal to
-                  '_>': '&#8805;',      # greater-than or equal to
-                  ':(': '&#9785;',      # white frowning face
-                  ':)': '&#9786;',      # white smiling face
-                  'spade': '&#9824;',   # black spade suit
-                  'club': '&#9827;',    # black club suit
-                  'heart': '&#9829;',   # black heart suit
-                  'diamond': '&#9830;', # black diamond suit
-                 }
-
-        try:
-            # Try the key.
-            entity = macros[entity]
-        except KeyError:
-            try:
-                # Try a unicode entity.
-                entity = unicodedata.lookup(entity)
-                entity = entity.encode('ascii', 'xmlcharrefreplace')
-            except:
-                # Return the unmodified entity.
-                entity = '{%s}' % entity
-
-        return entity
-
-
-    def glyphs(self, text):
-        """Glyph formatting.
-
-        This function replaces quotations marks, dashes and a few other
-        symbol for numerical entities. The em/en dashes use definitions
-        comes from http://alistapart.com/articles/emen/.
-
-        ---
-        h1. Glyphs
-
-        Textile replaces some of the characters in your text with their
-        equivalent numerical entities. These include:
-
-        * Replace single and double primes used as quotation marks with HTML(HyperText Markup Language) entities for opening and closing quotation marks in readable text, while leaving untouched the primes required within HTML(HyperText Markup Language) tags.
-        * Replace double hyphens (==--==) with an em-dash (&#8212;) entity.
-        * Replace triple hyphens (==---==) with two em-dash (&#8212;&#8212;) entities.
-        * Replace single hyphens surrounded by spaces with an en-dash (&#8211;) entity.
-        * Replace triplets of periods (==...==) with an ellipsis (&#8230;) entity.
-        * Convert many nonstandard characters to browser-safe entities corresponding to keyboard input.
-        * Convert ==(TM)==, ==(R)==, and  ==(C)== to &#8482;, &#174;, and &#169;.
-        * Convert the letter x to a dimension sign: 2==x==4 to 2x4 and 8 ==x== 10 to 8x10.
-        """
-        glyphs = [(r'''"(?<!\w)\b''', r'''&#8220;'''),                              # double quotes
-                  (r'''"''', r'''&#8221;'''),                                       # double quotes
-                  (r"""\b'""", r'''&#8217;'''),                                     # single quotes
-                  (r"""'(?<!\w)\b""", r'''&#8216;'''),                              # single quotes
-                  (r"""'""", r'''&#8217;'''),                                       # single single quote
-                  (r'''(\b|^)( )?\.{3}''', r'''\1&#8230;'''),                       # ellipsis
-                  (r'''\b---\b''', r'''&#8212;&#8212;'''),                          # double em dash
-                  (r'''\s?--\s?''', r'''&#8212;'''),                                # em dash
-                  (r'''(\d+)-(\d+)''', r'''\1&#8211;\2'''),                         # en dash (1954-1999)
-                  (r'''(\d+)-(\W)''', r'''\1&#8212;\2'''),                          # em dash (1954--)
-                  (r'''\s-\s''', r''' &#8211; '''),                                 # en dash
-                  (r'''(\d+) ?x ?(\d+)''', r'''\1&#215;\2'''),                      # dimension sign
-                  (r'''\b ?(\((tm|TM)\))''', r'''&#8482;'''),                       # trademark
-                  (r'''\b ?(\([rR]\))''', r'''&#174;'''),                           # registered
-                  (r'''\b ?(\([cC]\))''', r'''&#169;'''),                           # copyright
-                  (r'''([^\s])\[(\d+)\]''',                                         #
-                       r'''\1<sup class="footnote"><a href="#fn\2">\2</a></sup>'''),# footnote
-                  ]
-
-        # Apply macros.
-        text = re.sub(r'''{([^}]+)}''', self.macros, text)
-
-        # LaTeX style quotes.
-        text = text.replace('\x60\x60', '&#8220;')
-        text = text.replace('\xb4\xb4', '&#8221;')
-
-        # Linkify URL and emails.
-        url = r'''(?=[a-zA-Z0-9./#])                          # Must start correctly
-                  ((?:                                        # Match the leading part (proto://hostname, or just hostname)
-                      (?:ftp|https?|telnet|nntp)              #     protocol
-                      ://                                     #     ://
-                      (?:                                     #     Optional 'username:password@'
-                          \w+                                 #         username
-                          (?::\w+)?                           #         optional :password
-                          @                                   #         @
-                      )?                                      # 
-                      [-\w]+(?:\.\w[-\w]*)+                   #     hostname (sub.example.com)
-                  )                                           #
-                  (?::\d+)?                                   # Optional port number
-                  (?:                                         # Rest of the URL, optional
-                      /?                                      #     Start with '/'
-                      [^.!,?;:"'<>()\[\]{}\s\x7F-\xFF]*       #     Can't start with these
-                      (?:                                     #
-                          [.!,?;:]+                           #     One or more of these
-                          [^.!,?;:"'<>()\[\]{}\s\x7F-\xFF]+   #     Can't finish with these
-                          #'"                                 #     # or ' or "
-                      )*                                      #
-                  )?)                                         #
-               '''
-
-        email = r'''(?:mailto:)?            # Optional mailto:
-                    ([-\+\w]+               # username
-                    \@                      # at
-                    [-\w]+(?:\.\w[-\w]*)+)  # hostname
-                 '''
-
-        # If there is no html, do a simple search and replace.
-        if not re.search(r'''<.*>''', text):
-            for glyph_search, glyph_replace in glyphs:
-                text = preg_replace(glyph_search, glyph_replace, text)
-
-            # Linkify.
-            text = re.sub(re.compile(url, re.VERBOSE), r'''<a href="\1">\1</a>''', text)
-            text = re.sub(re.compile(email, re.VERBOSE), r'''<a href="mailto:\1">\1</a>''', text)
-
-        else:
-            lines = []
-            # Else split the text into an array at <>.
-            for line in re.split('(<.*?>)', text):
-                if not re.match('<.*?>', line):
-                    for glyph_search, glyph_replace in glyphs:
-                        line = preg_replace(glyph_search, glyph_replace, line)
-
-                    # Linkify.
-                    line = re.sub(re.compile(url, re.VERBOSE), r'''<a href="\1">\1</a>''', line)
-                    line = re.sub(re.compile(email, re.VERBOSE), r'''<a href="mailto:\1">\1</a>''', line)
-
-                lines.append(line)
-
-            text = ''.join(lines)
-
-        return text
-
-
-    def qtags(self, text):
-        """Quick tags formatting.
-
-        This function does the inline formatting of text, like
-        bold, italic, strong and also itex code.
-
-        ---
-        h1. Quick tags
-
-        Quick tags allow you to format your text, making it bold, 
-        emphasized or small, for example. The quick tags operators
-        include:
-
-        dl. ==*strong*==:Translates into @<strong>strong</strong>@.
-        ==_emphasis_==:Translates into @<em>emphasis</em>@. 
-        ==**bold**==:Translates into @<b>bold</b>@. 
-        ==__italics__==:Translates into @<i>italics</i>@. 
-        ==++bigger++==:Translates into @<big>bigger</big>@. 
-        ==--smaller--==:Translates into: @<small>smaller</small>@. 
-        ==-deleted text-==:Translates into @<del>deleted text</del>@. 
-        ==+inserted text+==:Translates into @<ins>inserted text</ins>@. 
-        ==^superscript^==:Translates into @<sup>superscript</sup>@. 
-        ==~subscript~==:Translates into @<sub>subscript</sub>@. 
-        ==%span%==:Translates into @<span>span</span>@. 
-        ==@code@==:Translates into @<code>code</code>@. 
-        
-        Note that within a "==@==...==@==" section, @<@ and @>@ are
-        translated into HTML entities automatically. 
-
-        Inline formatting operators accept the following modifiers:
-
-        dl. {style rule}:A CSS(Cascading Style Sheets) style rule. 
-        [ll]:A language identifier (for a "lang" attribute). 
-        (class) or (#id) or (class#id):For CSS(Cascading Style Sheets) class and id attributes. 
-        """
-        # itex2mml.
-        text = re.sub('\$(.*?)\$', lambda m: self.itex(m.group()), text)
-
-        # Add span tags to upper-case words which don't have a description.
-        #text = preg_replace(r'''(^|\s)([A-Z]{3,})\b(?!\()''', r'''\1<span class="caps">\2</span>''', text)
-        
-        # Quick tags.
-        qtags = [('**', 'b',      {'qf': '(?<!\*)\*\*(?!\*)', 'cls': '\*'}),
-                 ('__', 'i',      {'qf': '(?<!_)__(?!_)', 'cls': '_'}),
-                 ('??', 'cite',   {'qf': '\?\?(?!\?)', 'cls': '\?'}),
-                 ('-',  'del',    {'qf': '(?<!\-)\-(?!\-)', 'cls': '-'}),
-                 ('+',  'ins',    {'qf': '(?<!\+)\+(?!\+)', 'cls': '\+'}),
-                 ('*',  'strong', {'qf': '(?<!\*)\*(?!\*)', 'cls': '\*'}),
-                 ('_',  'em',     {'qf': '(?<!_)_(?!_)', 'cls': '_'}),
-                 ('++', 'big',    {'qf': '(?<!\+)\+\+(?!\+)', 'cls': '\+\+'}),
-                 ('--', 'small',  {'qf': '(?<!\-)\-\-(?!\-)', 'cls': '\-\-'}),
-                 ('~',  'sub',    {'qf': '(?<!\~)\~(?!(\\\/~))', 'cls': '\~'}),
-                 ('@',  'code',   {'qf': '(?<!@)@(?!@)', 'cls': '@'}),
-                 ('%',  'span',   {'qf': '(?<!%)%(?!%)', 'cls': '%'}),
-                ]
-
-        # Superscript.
-        text = re.sub(r'''(?<!\^)\^(?!\^)(.+?)(?<!\^)\^(?!\^)''', r'''<sup>\1</sup>''', text)
-
-        # This is from the perl version of Textile.
-        for qtag, htmltag, redict in qtags:
-            self.res.update(redict)
-            p = re.compile(r'''(?:                          #
-                                   ^                        # Start of string
-                                   |                        #
-                                   (?<=[\s>'"])             # Whitespace, end of tag, quotes
-                                   |                        #
-                                   (?P<pre>[{[])            # Surrounded by [ or {
-                                   |                        #
-                                   (?<=%(punct)s)           # Punctuation
-                               )                            #
-                               %(qf)s                       # opening tag
-                               %(qattr)s                    # attributes
-                               (?P<text>[^%(cls)s\s].*?)    # text
-                               (?<=\S)                      # non-whitespace
-                               %(qf)s                       # 
-                               (?:                          #
-                                   $                        # End of string
-                                   |                        #
-                                   (?P<post>[\]}])          # Surrounded by ] or }
-                                   |                        # 
-                                   (?=%(punct)s{1,2}|\s)    # punctuation
-                                )                           #
-                             ''' % self.res, re.VERBOSE)
-
-            def _replace(m):
-                c = m.groupdict('')
-
-                attributes = self.parse_params(c['parameters'])
-                open_tag  = self.build_open_tag(htmltag, attributes) 
-                close_tag = '</%s>' % htmltag
-
-                # Replace < and > inside <code></code>.
-                if htmltag == 'code':
-                    c['text'] = c['text'].replace('<', '&lt;')
-                    c['text'] = c['text'].replace('>', '&gt;')
-         
-                return open_tag + c['text'] + close_tag
-
-            text = p.sub(_replace, text)
-
-        return text
-
-
-    def images(self, text):
-        """Process images.
-
-        This function process images tags, with or without links. Images
-        can have vertical and/or horizontal alignment, and can be resized
-        unefficiently using width and height tags.
-
-        ---
-        h1. Images
-
-        An image is generated by enclosing the image source in @!@:
-
-        pre. !/path/to/image!
-
-        You may optionally specify an alternative text for the image, which
-        will also be used as its title:
-
-        pre. !image.jpg (Nice picture)!
-
-        Becomes:
-
-        pre. <p><img src="image.jpg" alt="Nice picture" title="Nice picture" /></p>
-
-        If you want to make the image point to a link, simply append a
-        comma and the URL(Universal Republic of Love) to the image:
-
-        pre. !image.jpg!:http://diveintopython.org
-
-        Images can also be resized. These are all equivalent:
-
-        pre. !image.jpg 10x20!
-        !image.jpg 10w 20h!
-        !image.jpg 20h 10w!
-
-        The image @image.jpg@ will be resized to width 10 and height 20.
-
-        Modifiers to the @<img>@ tag go after the opening @!@:
-
-        pre. !(class#id)^image.jpg!
-
-        Allowed modifiers include:
-        
-        dl. &lt;:Align the image to the left (causes the image to float if CSS options are enabled). 
-        &gt;:Align the image to the right (causes the image to float if CSS options are enabled). 
-        - (dash):Aligns the image to the middle. 
-        ^:Aligns the image to the top. 
-        ~ (tilde):Aligns the image to the bottom. 
-        {style rule}:Applies a CSS style rule to the image. 
-        (class) or (#id) or (class#id):Applies a CSS class and/or id to the image. 
-        ( (one or more):Pads 1em on the left for each '(' character. 
-        ) (one or more):Pads 1em on the right for each ')' character. 
-
-        Images receive the class "top" when using top alignment, "bottom" 
-        for bottom alignment and "middle" for middle alignment.
-        """
-        # Compile the beast.
-        p = re.compile(r'''\!               # Opening !
-                           %(iattr)s        # Image attributes
-                           (?P<src>%(url)s) # Image src
-                           \s?              # Optional whitesapce
-                           (                #
-                               \(           #
-                               (?P<alt>.*?) # Optional (alt) attribute
-                               \)           #
-                           )?               #
-                           \s?              # Optional whitespace
-                           %(resize)s       # Resize parameters
-                           \!               # Closing !
-                           (                # Optional link
-                               :            #    starts with ':'
-                               (?P<link>    #    
-                               %(url)s      #    link HREF
-                               )            #
-                           )?               #
-                        ''' % self.res, re.VERBOSE)
-
-        for m in p.finditer(text):
-            c = m.groupdict('')
-
-            # Build the parameters for the <img /> tag.
-            attributes = self.parse_params(c['parameters'], align_type='image')
-            attributes.update(c)
-            if attributes['alt']:
-                attributes['title'] = attributes['alt']
-
-            # Append height and width.
-            attributes['width'] = m.groups()[5] or m.groups()[7] or m.groups()[10]
-            attributes['height'] = m.groups()[6] or m.groups()[8] or m.groups()[9]
-
-            # Create the image tag.
-            tag = self.image(attributes)
-
-            text = text.replace(m.group(), tag)
-        
-        return text
-
-
-    def image(self, attributes):
-        """Process each image.
-
-        This method builds the <img> tag for each image in the text. It's
-        separated from the 'images' method so it can be easily overriden when
-        subclassing Textiler. Useful if you want to download and/or process
-        the images, for example.
-        """
-        link = attributes['link']
-        del attributes['link']
-        del attributes['parameters']
-
-        # Build the tag.
-        tag = self.build_open_tag('img', attributes, single=1)
-
-        if link:
-            href = preg_replace('&(?!(#|amp))', '&amp;', link)
-            tag = '<a href="%s">%s</a>' % (href, tag)
-
-        return tag
-
-
-    def links(self, text):
-        """Process links.
-
-        This function is responsible for processing links. It has
-        some nice shortcuts to Google, Amazon and IMDB queries.
-
-        ---
-        h1. Links
-
-        A links is done the following way:
-
-        pre. "This is the text link":http://example.com
-
-        The result from this markup is:
-
-        pre. <p><a href="http://example.com">This is the text link</a></p>
-
-        You can add an optional @title@ attribute:
-
-        pre. "This is the text link(This is the title)":http://example.com
-
-        The link can be customised as well:
-
-        pre. "(nospam)E-mail me please":mailto:someone@example.com
-
-        You can use either single or double quotes. They must be enclosed in
-        whitespace, punctuation or brackets:
-
-        pre. You["gotta":http://example.com]seethis!
-
-        If you are going to reference the same link a couple of times, you
-        can define a lookup list anywhere on your document:
-
-        pre. [python]http://www.python.org
-
-        Links to the Python website can then be defined the following way:
-
-        pre. "Check this":python
-
-        There are also shortcuts for Amazon, IMDB(Internet Movie DataBase) and
-        Google queries:
-
-        pre. "Has anyone seen this guy?":imdb:Stephen+Fry
-        "Really nice book":amazon:Goedel+Escher+Bach
-        "PyBlosxom":google
-        ["Using Textile and Blosxom with Python":google:python blosxom textile]
-
-        Becomes:
-
-        pre. <a href="http://www.imdb.com/Find?for=Stephen+Fry">Has anyone seen this guy?</a>
-        <a href="http://www.amazon.com/exec/obidos/external-search?index=blended&amp;keyword=Goedel+Escher+Bach">Really nice book</a>
-        <a href="http://www.google.com/search?q=PyBlosxom">PyBlosxom</a>
-        <a href="http://www.google.com/search?q=python+blosxom+textile">Using Textile and Blosxom with Python</a>
-        """
-        linkres = [r'''\[                           # [
-                       (?P<quote>"|')               # Opening quotes
-                       %(lattr)s                    # Link attributes
-                       (?P<text>[^"]+?)             # Link text
-                       \s?                          # Optional whitespace
-                       (?:\((?P<title>[^\)]+?)\))?  # Optional (title)
-                       (?P=quote)                   # Closing quotes
-                       :                            # :
-                       (?P<href>[^\]]+)             # HREF
-                       \]                           # ]
-                    ''' % self.res,
-                   r'''(?P<quote>"|')               # Opening quotes
-                       %(lattr)s                    # Link attributes
-                       (?P<text>[^"]+?)             # Link text
-                       \s?                          # Optional whitespace
-                       (?:\((?P<title>[^\)]+?)\))?  # Optional (title)
-                       (?P=quote)                   # Closing quotes
-                       :                            # :
-                       (?P<href>%(url)s)            # HREF
-                    ''' % self.res]
-
-        for linkre in linkres:
-            p = re.compile(linkre, re.VERBOSE)
-            for m in p.finditer(text):
-                c = m.groupdict('')
-
-                attributes = self.parse_params(c['parameters'])
-                attributes['title'] = c['title'].replace('"', '&quot;')
-
-                # Search lookup list.
-                link = self._links.get(c['href'], None) or c['href']
-
-                # Hyperlinks for Amazon, IMDB and Google searches.
-                parts = link.split(':', 1)
-                proto = parts[0]
-                if len(parts) == 2:
-                    query = parts[1]
-                else:
-                    query = c['text']
-
-                query = query.replace(' ', '+')
-
-                # Look for smart search.
-                if self.searches.has_key(proto):
-                    link = self.searches[proto] % query
-                
-                # Fix URL.
-                attributes['href'] = preg_replace('&(?!(#|amp))', '&amp;', link)
-
-                open_tag = self.build_open_tag('a', attributes)
-                close_tag = '</a>'
-
-                repl = open_tag + c['text'] + close_tag
-
-                text = text.replace(m.group(), repl)
-
-        return text
-
-
-    def format(self, text):
-        """Text formatting.
-
-        This function basically defines the order on which the 
-        formatting is applied.
-        """
-        text = self.qtags(text)
-        text = self.images(text)
-        text = self.links(text)
-        text = self.acronym(text)
-        text = self.glyphs(text)
-
-        return text
-
-
-    def inline(self, text):
-        """Inline formatting.
-
-        This function calls the formatting on the inline text,
-        taking care to avoid the escaped parts.
-
-        ---
-        h1. Inline 
-
-        Inline formatting is applied within a block of text.
-        """
-        if not re.search(r'''==(.*?)==''', text):
-            text = self.format(text)
-
-        else:
-            lines = []
-            # Else split the text into an array at <>.
-            for line in re.split('(==.*?==)', text):
-                if not re.match('==.*?==', line):
-                    line = self.format(line)
-                else:
-                    line = line[2:-2]
-
-                lines.append(line)
-            
-            text = ''.join(lines)
-
-        return text
-            
-
-def textile(text, **args):
-    """This is Textile.
-
-    Generates XHTML from a simple markup developed by Dean Allen.
-
-    This function should be called like this:
-    
-        textile(text, head_offset=0, validate=0, sanitize=0,
-                encoding='latin-1', output='ASCII')
-    """
-    return Textiler(text).process(**args)
-
-
-if __name__ == '__main__':
-    print textile('tell me about textile.', head_offset=1)
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/textutil.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/textutil.py
deleted file mode 100644 (file)
index 4498413..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-#!/usr/bin/env python
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#
-################################################################################
-
-import sys, string, re, optparse
-import config, filetool, comment
-
-
-
-
-def convertMac2Unix(content):
-  return content.replace("\r", "\n")
-
-def convertMac2Dos(content):
-  return content.replace("\r", "\r\n")
-
-def convertDos2Unix(content):
-  return content.replace("\r\n", "\n")
-
-def convertDos2Mac(content):
-  return content.replace("\r\n", "\r")
-
-def convertUnix2Dos(content):
-  return content.replace("\n", "\r\n")
-
-def convertUnix2Mac(content):
-  return content.replace("\n", "\r")
-
-
-
-
-def any2Unix(content):
-  # DOS must be first, because it is a combination of Unix & Mac
-  return convertMac2Unix(convertDos2Unix(content))
-
-def any2Dos(content):
-  # to protect old DOS breaks first, we need to convert to
-  # a line ending with single character first e.g. Unix
-  return convertUnix2Dos(any2Unix(content))
-
-def any2Mac(content):
-  # to protect old DOS breaks first, we need to convert to
-  # a line ending with single character first e.g. Unix
-  return convertUnix2Mac(any2Unix(content))
-
-
-
-def getLineEndingName(content):
-  if "\r\n" in content:
-    return "dos"
-
-  if "\r" in content:
-    return "mac"
-
-  # defaults to unix
-  return "unix"
-
-def getLineEndingSequence(content):
-  if "\r\n" in content:
-    return "\r\n"
-
-  if "\r" in content:
-    return "\r"
-
-  # defaults to unix
-  return "\n"
-
-
-
-def tab2Space(content, spaces=2):
-  return content.replace("\t", " " * spaces)
-
-def spaces2Tab(content, spaces=2):
-  return content.replace(" " * spaces, "\t")
-
-
-
-def removeTrailingSpaces(content):
-  ending = getLineEndingSequence(content)
-  lines = content.split(ending)
-  length = len(lines)
-  pos = 0
-
-  while pos < length:
-    lines[pos] = lines[pos].rstrip()
-    pos += 1
-
-  return ending.join(lines)
-
-
-def toRegExp(text):
-  return re.compile("^(" + text.replace('.', '\\.').replace('*', '.*').replace('?', '.?') + ")$")
-
-
-
-
-
-
-
-
-
-
-
-def main():
-  allowed = [ "any2Dos", "any2Mac", "any2Unix", "convertDos2Mac", "convertDos2Unix", "convertMac2Dos", "convertMac2Unix", "convertUnix2Dos", "convertUnix2Mac", "spaces2Tab", "tab2Space" ]
-  
-  parser = optparse.OptionParser()
-
-  parser.add_option("-q", "--quiet", action="store_false", dest="verbose", default=False, help="Quiet output mode.")
-  parser.add_option("-v", "--verbose", action="store_true", dest="verbose", help="Verbose output mode.")
-  parser.add_option("-c", "--command", dest="command", default="normalize", help="Normalize a file")
-  parser.add_option("--encoding", dest="encoding", default="utf-8", metavar="ENCODING", help="Defines the encoding expected for input files.")
-
-  (options, args) = parser.parse_args()
-  
-  if not options.command in allowed:
-    print "Unallowed command: %s" % options.command
-    sys.exit(1)
-
-  if len(args) == 0:
-    print "Needs one or more arguments (files) to modify!"
-    sys.exit(1)
-    
-  for fileName in args:
-    if options.verbose:
-      print "  * Running %s on: %s" % (options.command, fileName)
-    
-    origFileContent = filetool.read(fileName, options.encoding)
-    patchedFileContent = eval(options.command + "(origFileContent)")
-    
-    if patchedFileContent != origFileContent:
-      filetool.save(fileName, patchedFileContent, options.encoding)
-
-
-
-
-
-if __name__ == '__main__':
-  try:
-    main()
-
-  except KeyboardInterrupt:
-    print
-    print "  * Keyboard Interrupt"
-    sys.exit(1)
-    
\ No newline at end of file
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/tokenizer.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/tokenizer.py
deleted file mode 100755 (executable)
index 9537677..0000000
+++ /dev/null
@@ -1,372 +0,0 @@
-#!/usr/bin/env python
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Alessandro Sala (asala)
-#
-################################################################################
-
-import sys, string, re, optparse
-import config, filetool, comment
-
-R_WHITESPACE = re.compile(r"(\s+)")
-R_NONWHITESPACE = re.compile("\S+")
-R_NUMBER = re.compile("^[0-9]+")
-R_NEWLINE = re.compile(r"(\n)")
-
-# Ideas from: http://www.regular-expressions.info/examplesprogrammer.html
-# Multicomment RegExp inspired by: http://ostermiller.org/findcomment.html
-
-# builds regexp strings
-S_STRING_A = "'[^'\\\n]*(\\.|\n[^'\\\n]*)*'"
-S_STRING_B = '"[^"\\\n]*(\\.|\n[^"\\\n]*)*"'
-
-S_FLOAT = "([0-9]+\.[0-9]+)"
-
-S_OPERATORS_2 = r"(==)|(!=)|(\+\+)|(--)|(-=)|(\+=)|(\*=)|(/=)|(%=)|(&&)|(\|\|)|(\>=)|(\<=)|(>>)|(<<)|(\^\|)|(\|=)|(\^=)|(&=)|(::)|(\.\.)"
-S_OPERATORS_3 = r"(===)|(!==)|(\<\<=)|(\>\>=)|(\>\>\>)"
-S_OPERATORS_4 = r"(\>\>\>=)"
-S_OPERATORS = "(" + S_OPERATORS_4 + "|" + S_OPERATORS_3 + "|" + S_OPERATORS_2 + ")"
-
-S_REGEXP = "(\/[^\t\n\r\f\v\/]+?\/[mgi]*)"
-S_REGEXP_A = "\.(match|search|split)\s*\(\s*\(*\s*" + S_REGEXP + "\s*\)*\s*\)"
-S_REGEXP_B = "\.(replace)\s*\(\s*\(*\s*" + S_REGEXP + "\s*\)*\s*?,?"
-S_REGEXP_C = "\s*\(*\s*" + S_REGEXP + "\)*\.(test|exec)\s*\(\s*"
-S_REGEXP_D = "(:|=|\?)\s*\(*\s*" + S_REGEXP + "\s*\)*"
-S_REGEXP_ALL = S_REGEXP_A + "|" + S_REGEXP_B + "|" + S_REGEXP_C + "|" + S_REGEXP_D
-
-S_ALL = "(" + comment.S_BLOCK_COMMENT + "|" + comment.S_INLINE_COMMENT + "|" + S_STRING_A + "|" + S_STRING_B + "|" + S_REGEXP_ALL + "|" + S_FLOAT + "|" + S_OPERATORS + ")"
-
-# compile regexp strings
-R_STRING_A = re.compile("^" + S_STRING_A + "$")
-R_STRING_B = re.compile("^" + S_STRING_B + "$")
-R_FLOAT = re.compile("^" + S_FLOAT + "$")
-R_OPERATORS = re.compile(S_OPERATORS)
-R_REGEXP = re.compile(S_REGEXP)
-R_REGEXP_A = re.compile(S_REGEXP_A)
-R_REGEXP_B = re.compile(S_REGEXP_B)
-R_REGEXP_C = re.compile(S_REGEXP_C)
-R_REGEXP_D = re.compile(S_REGEXP_D)
-R_ALL = re.compile(S_ALL)
-
-
-
-
-parseLine = 1
-parseColumn = 1
-parseUniqueId = ""
-
-
-
-def protectEscape(s):
-  return s.replace("\\\\", "__$ESCAPE0$__").replace("\\\"", "__$ESCAPE1$__").replace("\\\'", "__$ESCAPE2__").replace("\/", "__$ESCAPE3__").replace("\!", "__$ESCAPE4__")
-
-
-
-def recoverEscape(s):
-  return s.replace("__$ESCAPE0$__", "\\\\").replace("__$ESCAPE1$__", "\\\"").replace("__$ESCAPE2__", "\\'").replace("__$ESCAPE3__", "\/").replace("__$ESCAPE4__", "\!")
-
-
-
-def parseElement(element):
-  global parseUniqueId
-  global parseLine
-  global parseColumn
-
-  if config.JSPROTECTED.has_key(element):
-    # print "PROTECTED: %s" % PROTECTED[content]
-    obj = { "type" : "protected", "detail" : config.JSPROTECTED[element], "source" : element, "line" : parseLine, "column" : parseColumn, "id" : parseUniqueId }
-
-  elif element in config.JSBUILTIN:
-    # print "BUILTIN: %s" % content
-    obj = { "type" : "builtin", "detail" : "", "source" : element, "line" : parseLine, "column" : parseColumn, "id" : parseUniqueId }
-
-  elif R_NUMBER.search(element):
-    # print "NUMBER: %s" % content
-    obj = { "type" : "number", "detail" : "int", "source" : element, "line" : parseLine, "column" : parseColumn, "id" : parseUniqueId }
-
-  elif element.startswith("_"):
-    # print "PRIVATE NAME: %s" % content
-    obj = { "type" : "name", "detail" : "private", "source" : element, "line" : parseLine, "column" : parseColumn, "id" : parseUniqueId }
-
-  elif len(element) > 0:
-    # print "PUBLIC NAME: %s" % content
-    obj = { "type" : "name", "detail" : "public", "source" : element, "line" : parseLine, "column" : parseColumn, "id" : parseUniqueId }
-
-  parseColumn += len(element)
-
-  return obj
-
-
-def parsePart(part):
-  global parseUniqueId
-  global parseLine
-  global parseColumn
-
-  tokens = []
-  element = ""
-
-  for line in R_NEWLINE.split(part):
-    if line == "\n":
-      tokens.append({ "type" : "eol", "source" : "", "detail" : "", "line" : parseLine, "column" : parseColumn, "id" : parseUniqueId })
-      parseColumn = 1
-      parseLine += 1
-
-    else:
-      for item in R_WHITESPACE.split(line):
-        if item == "":
-          continue
-
-        if not R_NONWHITESPACE.search(item):
-          parseColumn += len(item)
-          continue
-
-        # print "ITEM: '%s'" % item
-
-        for char in item:
-          # work on single character tokens, otherwise concat to a bigger element
-          if config.JSTOKENS.has_key(char):
-            # convert existing element
-            if element != "":
-              if R_NONWHITESPACE.search(element):
-                tokens.append(parseElement(element))
-
-              element = ""
-
-            # add character to token list
-            tokens.append({ "type" : "token", "detail" : config.JSTOKENS[char], "source" : char, "line" : parseLine, "column" : parseColumn, "id" : parseUniqueId })
-            parseColumn += 1
-
-          else:
-            element += char
-
-        # convert remaining stuff to tokens
-        if element != "":
-          if R_NONWHITESPACE.search(element):
-            tokens.append(parseElement(element))
-
-          element = ""
-
-  return tokens
-
-
-
-def parseFragmentLead(content, fragment, tokens):
-  pos = content.find(fragment)
-
-  if pos > 0:
-    tokens.extend(parsePart(recoverEscape(content[0:pos])))
-
-  return content[pos+len(fragment):]
-
-
-
-def hasLeadingContent(tokens):
-  pos = len(tokens) - 1
-  while pos > 0:
-    if tokens[pos]["type"] == "eol":
-      break
-
-    else:
-      return True
-
-  return False
-
-
-
-
-
-def parseStream(content, uniqueId=""):
-  # make global variables available
-  global parseLine
-  global parseColumn
-  global parseUniqueId
-
-  # reset global stuff
-  parseColumn = 1
-  parseLine = 1
-  parseUniqueId = uniqueId
-
-  # prepare storage
-  tokens = []
-  content = protectEscape(content)
-
-  # print "      * searching for patterns..."
-  all = R_ALL.findall(content)
-
-  # print "      * structuring..."
-  for item in all:
-    fragment = item[0]
-
-    # print "Found: '%s'" % fragment
-
-    if comment.R_BLOCK_COMMENT.match(fragment):
-      source = recoverEscape(fragment)
-      format = comment.getFormat(source)
-      multiline = comment.isMultiLine(source)
-
-      # print "Type:MultiComment"
-      content = parseFragmentLead(content, fragment, tokens)
-
-      atBegin = not hasLeadingContent(tokens)
-      if re.compile("^\s*\n").search(content):
-        atEnd = True
-      else:
-        atEnd = False
-
-      # print "Begin: %s, End: %s" % (atBegin, atEnd)
-
-      # Fixing source content
-      if atBegin:
-        source = comment.outdent(source, parseColumn - 1)
-
-      source = comment.correct(source)
-
-      connection = "before"
-
-      if atEnd and not atBegin:
-        connection = "after"
-      else:
-        connection = "before"
-
-      tokens.append({ "type" : "comment", "detail" : format, "multiline" : multiline, "connection" : connection, "source" : source, "id" : parseUniqueId, "line" : parseLine, "column" : parseColumn, "begin" : atBegin, "end" : atEnd })
-      parseLine += len(fragment.split("\n")) - 1
-
-    elif comment.R_INLINE_COMMENT.match(fragment):
-      # print "Type:SingleComment"
-      source = recoverEscape(fragment)
-      content = parseFragmentLead(content, fragment, tokens)
-
-      atBegin = hasLeadingContent(tokens)
-      atEnd = True
-
-      if atBegin:
-        connection = "after"
-      else:
-        connection = "before"
-
-      source = comment.correct(source)
-
-      tokens.append({ "type" : "comment", "detail" : "inline", "multiline" : False, "connection" : connection, "source" : source, "id" : parseUniqueId, "line" : parseLine, "column" : parseColumn, "begin" : atBegin, "end" : atEnd })
-
-    elif R_STRING_A.match(fragment):
-      # print "Type:StringA: %s" % fragment
-      content = parseFragmentLead(content, fragment, tokens)
-      source = recoverEscape(fragment)[1:-1]
-      tokens.append({ "type" : "string", "detail" : "singlequotes", "source" : source.replace("\\\n",""), "id" : parseUniqueId, "line" : parseLine, "column" : parseColumn })
-      parseLine += source.count("\\\n");
-
-    elif R_STRING_B.match(fragment):
-      # print "Type:StringB: %s" % fragment
-      content = parseFragmentLead(content, fragment, tokens)
-      source = recoverEscape(fragment)[1:-1]
-      tokens.append({ "type" : "string", "detail" : "doublequotes", "source" : source.replace("\\\n",""), "id" : parseUniqueId, "line" : parseLine, "column" : parseColumn })
-      parseLine += source.count("\\\n");
-
-    elif R_FLOAT.match(fragment):
-      # print "Type:Float: %s" % fragment
-      content = parseFragmentLead(content, fragment, tokens)
-      tokens.append({ "type" : "number", "detail" : "float", "source" : fragment, "id" : parseUniqueId, "line" : parseLine, "column" : parseColumn })
-
-    elif R_OPERATORS.match(fragment):
-      # print "Type:Operator: %s" % fragment
-      content = parseFragmentLead(content, fragment, tokens)
-      tokens.append({ "type" : "token", "detail" : config.JSTOKENS[fragment], "source" : fragment, "id" : parseUniqueId, "line" : parseLine, "column" : parseColumn })
-
-    else:
-      fragresult = R_REGEXP.search(fragment)
-
-      if fragresult:
-        # print "Type:RegExp: %s" % fragresult.group(0)
-
-        if R_REGEXP_A.match(fragment) or R_REGEXP_B.match(fragment) or R_REGEXP_C.match(fragment) or R_REGEXP_D.match(fragment):
-          content = parseFragmentLead(content, fragresult.group(0), tokens)
-          tokens.append({ "type" : "regexp", "detail" : "", "source" : recoverEscape(fragresult.group(0)), "id" : parseUniqueId, "line" : parseLine, "column" : parseColumn })
-
-        else:
-          print "Bad regular expression: %s" % fragresult.group(0)
-
-      else:
-        print "Type:None!"
-
-  tokens.extend(parsePart(recoverEscape(content)))
-  tokens.append({ "type" : "eof", "source" : "", "detail" : "", "id" : parseUniqueId, "line" : parseLine, "column" : parseColumn })
-
-  return tokens
-
-
-
-def parseFile(fileName, uniqueId="", encoding="utf-8"):
-  return parseStream(filetool.read(fileName, encoding), uniqueId)
-
-
-
-
-def convertTokensToString(tokens):
-  tokenizedString = ""
-
-  for token in tokens:
-    tokenizedString += "%s%s" % (token, "\n")
-
-  return tokenizedString
-
-
-
-
-
-def main():
-  parser = optparse.OptionParser()
-
-  parser.add_option("-w", "--write", action="store_true", dest="write", default=False, help="Writes file to incoming fileName + EXTENSION.")
-  parser.add_option("-e", "--extension", dest="extension", metavar="EXTENSION", help="The EXTENSION to use", default=".tokenized")
-  parser.add_option("--encoding", dest="encoding", default="utf-8", metavar="ENCODING", help="Defines the encoding expected for input files.")
-
-  (options, args) = parser.parse_args()
-
-  if len(args) == 0:
-    print "Needs one or more arguments (files) to tokenize!"
-    sys.exit(1)
-
-  for fileName in args:
-    if options.write:
-      print "Compiling %s => %s%s" % (fileName, fileName, options.extension)
-    else:
-      print "Compiling %s => stdout" % fileName
-
-    tokenString = convertTokensToString(parseFile(fileName, "", options.encoding))
-
-    if options.write:
-      filetool.save(fileName + options.extension, tokenString, options.encoding)
-      
-    else:
-      try:
-        print tokenString
-
-      except UnicodeEncodeError:
-        print "  * Could not encode result to ascii. Use '-w' instead."
-        sys.exit(1)
-
-
-
-
-if __name__ == '__main__':
-  try:
-    main()
-
-  except KeyboardInterrupt:
-    print
-    print "  * Keyboard Interrupt"
-    sys.exit(1)
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/tree.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/tree.py
deleted file mode 100755 (executable)
index ab99773..0000000
+++ /dev/null
@@ -1,582 +0,0 @@
-#!/usr/bin/env python
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Fabian Jakobs (fjakobs)
-#
-################################################################################
-
-class NodeAccessException (Exception):
-  def __init__ (self, msg, node):
-    Exception.__init__(self, msg)
-    self.node = node
-
-
-class Node:
-  def __init__ (self, type):
-    self.type = type
-
-
-
-
-
-  def hasAttributes(self):
-    return hasattr(self, "attributes")
-
-  def set(self, key, value):
-    """Sets an attribute"""
-    if not isinstance(value, (basestring, int, long, float, complex, bool)):
-      raise NodeAccessException("'value' is no string or number: " + str(value), self)
-    if not self.hasAttributes():
-      self.attributes = {}
-    self.attributes[key] = value
-    return self
-
-  def get(self, key, mandatory = True):
-    value = None
-    if hasattr(self, "attributes") and key in self.attributes:
-      value = self.attributes[key]
-
-    if value != None:
-      return value
-    elif mandatory:
-      raise NodeAccessException("Node " + self.type + " has no attribute " + key, self)
-
-  def remove(self, key):
-    del self.attributes[key]
-    if len(self.attributes) == 0:
-      del self.attributes
-
-
-
-
-
-
-
-  def hasParent(self):
-    return hasattr(self, "parent") and self.parent != None
-
-  def hasChildren(self, ignoreComments = False):
-    if not ignoreComments:
-      return hasattr(self, "children") and len(self.children) > 0
-    else:
-      if not hasattr(self, "children"):
-        return False
-
-      for child in self.children:
-        if child.type != "comment" and child.type != "commentsBefore" and child.type != "commentsAfter":
-          return True
-
-  def addChild(self, childNode, index = None):
-    if childNode:
-      if not self.hasChildren():
-        self.children = []
-
-      if childNode.hasParent():
-        childNode.parent.removeChild(childNode)
-
-      if index != None:
-        self.children.insert(index, childNode)
-      else:
-        self.children.append(childNode)
-      childNode.parent = self
-    return self
-
-  def removeChild(self, childNode):
-    if self.hasChildren():
-      self.children.remove(childNode)
-      childNode.parent = None
-      if len(self.children) == 0:
-        del self.children
-
-  def replaceChild(self, oldChild, newChild):
-    if self.hasChildren():
-      if newChild.hasParent():
-        newChild.parent.removeChild(newChild)
-
-      self.children.insert(self.children.index(oldChild), newChild)
-      newChild.parent = self
-      self.children.remove(oldChild)
-
-
-
-
-
-
-  def getChild(self, type, mandatory = True):
-    if self.hasChildren():
-      for child in self.children:
-        if child.type == type:
-          return child
-    if mandatory:
-      raise NodeAccessException("Node " + self.type + " has no child with type " + type, self)
-
-  def hasChildRecursive(self, type):
-    if isinstance(type, basestring):
-      if self.type == type:
-        return True
-    elif isinstance(type, list):
-      if self.type in type:
-        return True
-
-    if self.hasChildren():
-      for child in self.children:
-        if child.hasChildRecursive(type):
-          return True
-
-    return False
-
-  def hasChild(self, type):
-    if self.hasChildren():
-      for child in self.children:
-        if isinstance(type, basestring):
-          if child.type == type:
-            return True
-        elif isinstance(type, list):
-          if child.type in type:
-            return True
-
-    return False
-
-  def getChildrenLength(self, ignoreComments=False):
-    if self.hasChildren():
-      if ignoreComments:
-        counter = 0
-        for child in self.children:
-          if not child.type in [ "comment", "commentsBefore", "commentsAfter" ]:
-            counter += 1
-        return counter
-
-      else:
-        return len(self.children)
-
-    return 0
-
-
-
-  def makeComplex(self):
-    makeComplex = self.get("makeComplex", False)
-
-    if makeComplex != None:
-      return makeComplex
-
-    else:
-      makeComplex = False
-
-
-
-    if self.type == "comment":
-      makeComplex = True
-
-    elif self.type == "block":
-      if self.hasChildren():
-        counter = 0
-        for child in self.children:
-          if child.type != "commentsAfter":
-            counter += 1
-            if counter > 1:
-              makeComplex = True
-
-    elif self.type == "loop":
-      if self.get("loopType") == "IF" and self.hasParent() and self.parent.type == "elseStatement":
-        pass
-      else:
-        makeComplex = True
-
-    elif self.type == "function":
-      makeComplex = self.getChild("body").hasChild("block") and self.getChild("body").getChild("block").getChildrenLength() > 0
-
-    elif self.type in [ "loop", "switch" ]:
-      makeComplex = True
-
-    elif self.hasChild("commentsBefore"):
-      makeComplex = True
-
-
-
-    # Final test: Ask the children (slower)
-    if not makeComplex and not self.type in [ "comment", "commentsBefore", "commentsAfter" ]:
-      makeComplex = self.isComplex()
-
-
-    self.set("makeComplex", makeComplex)
-
-    # print "makeComplex: %s = %s" % (self.type, makeComplex)
-
-    return makeComplex
-
-
-
-  def isComplex(self):
-    isComplex = self.get("isComplex", False)
-
-    if isComplex != None:
-      return isComplex
-
-    else:
-      isComplex = False
-
-
-
-    if not self.hasChildren():
-      isComplex = False
-
-    elif self.type == "block":
-      counter = 0
-      if self.hasChildren():
-        for child in self.children:
-          if child.type != "commentsAfter":
-            counter += 1
-
-            if child.hasChild("commentsBefore"):
-              counter += 1
-
-            if counter > 1:
-              break
-
-      if counter > 1:
-        isComplex = True
-
-      else:
-        if self.getChildrenLength() == 0:
-          isComplex = False
-
-        # in else, try to find the mode of the previous if first
-        elif self.hasParent() and self.parent.type == "elseStatement":
-          isComplex = self.parent.parent.getChild("statement").hasComplexBlock()
-
-        # in if, try to find the mode of the parent if (if existent)
-        elif self.hasParent() and self.parent.type == "statement" and self.parent.parent.type == "loop" and self.parent.parent.get("loopType") == "IF":
-          if self.parent.parent.hasParent() and self.parent.parent.parent.hasParent():
-            if self.parent.parent.parent.parent.type == "loop":
-              isComplex = self.parent.parent.parent.parent.getChild("statement").hasComplexBlock()
-
-        # in catch/finally, try to find the mode of the try statement
-        elif self.hasParent() and self.parent.hasParent() and self.parent.parent.type in [ "catch", "finally" ]:
-          isComplex = self.parent.parent.parent.getChild("statement").hasComplexBlock()
-
-    elif self.type == "elseStatement":
-      if self.hasComplexBlock():
-        isComplex = True
-      elif self.hasChild("loop") and self.getChild("loop").getChild("statement").hasComplexBlock():
-        isComplex = True
-
-    elif self.type == "array" :
-      if self.getChildrenLength(True) > 5:
-        isComplex = True
-
-    elif self.type == "map" :
-      ml = self.getChildrenLength(True)
-      if ml > 1:
-        isComplex = True
-
-    # Final test: Ask the children (slower)
-    if not (self.type == "elseStatement" and self.hasChild("loop")):
-      if not isComplex and self.hasComplexChildren():
-        isComplex = True
-
-    # print self.type + " :: %s" % isComplex
-    self.set("isComplex", isComplex)
-
-    # print "isComplex: %s = %s" % (self.type, isComplex)
-
-    return isComplex
-
-
-
-  def hasComplexChildren(self):
-    if self.hasChildren():
-      for child in self.children:
-        if child.makeComplex():
-          return True
-
-    return False
-
-
-  def hasComplexBlock(self):
-    if self.hasChild("block"):
-      return self.getChild("block").isComplex()
-
-    return False
-
-
-  def hasBlockChildren(self):
-    if self.hasChild("block"):
-      return self.getChild("block").hasChildren()
-
-    return False
-
-
-  def getChildPosition(self, searchedChild, ignoreComments = False):
-    if self.hasChildren() and searchedChild in self.children:
-      if ignoreComments:
-        counter = 0
-        for child in self.children:
-          if child == searchedChild:
-            return counter
-
-          if not child.type in [ "comment", "commentsBefore", "commentsAfter" ]:
-            counter += 1
-
-      else:
-        return self.children.index(searchedChild)
-
-    return -1
-
-
-
-  def getChildByPosition(self, pos, mandatory = True, ignoreComments = False):
-    if self.hasChildren():
-      i = 0
-      for child in self.children:
-        if ignoreComments and child.type in [ "comment", "commentsBefore", "commentsAfter" ]:
-          continue
-
-        if i == pos:
-          return child
-
-        i += 1
-
-    if mandatory:
-      raise NodeAccessException("Node " + self.type + " has no child as position %s" % pos, self)
-
-
-
-  def getChildByAttribute(self, key, value, mandatory = True):
-    if self.hasChildren():
-      for child in self.children:
-        if child.get(key) == value:
-          return child
-
-    if mandatory:
-      raise NodeAccessException("Node " + self.type + " has no child with attribute " + key + " = " + value, self)
-
-  def getChildByTypeAndAttribute(self, type, key, value, mandatory = True):
-    if self.hasChildren():
-      for child in self.children:
-        if child.type == type and child.get(key) == value:
-          return child
-
-    if mandatory:
-      raise NodeAccessException("Node " + self.type + " has no child with type " + type + " and attribute " + key + " = " + value, self)
-
-  def getFirstChild(self, mandatory = True, ignoreComments = False):
-    if self.hasChildren():
-      for child in self.children:
-        if ignoreComments and child.type in [ "comment", "commentsBefore", "commentsAfter" ]:
-          continue
-
-        return child
-
-    if mandatory:
-      raise NodeAccessException("Node " + self.type + " has no children", self)
-
-  def getLastChild(self, mandatory = True, ignoreComments = False):
-    if self.hasChildren():
-      if not ignoreComments:
-        return self.children[-1]
-      else:
-        pos = len(self.children) - 1
-        while pos >= 0:
-          child = self.children[pos]
-
-          if ignoreComments and child.type in [ "comment", "commentsBefore", "commentsAfter" ]:
-            pos -= 1
-            continue
-
-          return child
-
-    if mandatory:
-      raise NodeAccessException("Node " + self.type + " has no children", self)
-
-  def getPreviousSibling(self, mandatory = True, ignoreComments = False):
-    if self.hasParent():
-      prev = None
-      for child in self.parent.children:
-
-        if ignoreComments and child.type in [ "comment", "commentsBefore", "commentsAfter" ]:
-          continue
-
-        if child == self:
-          if prev != None:
-            return prev
-          else:
-            break
-
-        prev = child
-
-    if mandatory:
-      raise NodeAccessException("Node " + self.type + " has no previous sibling", self)
-
-  def getFollowingSibling(self, mandatory = True, ignoreComments = False):
-    if self.hasParent():
-      prev = None
-
-      for child in self.parent.children:
-        if ignoreComments and child.type in [ "comment", "commentsBefore", "commentsAfter" ]:
-          continue
-
-        if prev != None:
-          return child
-
-        if child == self:
-          prev = child
-
-    if mandatory:
-      raise NodeAccessException("Node " + self.type + " has no following sibling", self)
-
-  def isFirstChild(self, ignoreComments = False):
-    if not self.hasParent():
-      return False
-
-    return self.parent.getFirstChild(False, ignoreComments) == self
-
-  def isLastChild(self, ignoreComments = False):
-    if not self.hasParent():
-      return False
-
-    return self.parent.getLastChild(False, ignoreComments) == self
-
-  def addListChild(self, listName, childNode):
-    listNode = self.getChild(listName, False)
-    if not listNode:
-      listNode = Node(listName)
-      self.addChild(listNode)
-    listNode.addChild(childNode)
-
-  def getListChildByAttribute(self, listName, key, value, mandatory = True):
-    listNode = self.getChild(listName, False)
-    if listNode:
-      return listNode.getChildByAttribute(key, value, mandatory)
-
-    if mandatory:
-      raise NodeAccessException("Node " + self.type + " has no child " + listName, self)
-
-  def getFirstListChild(self, listName, mandatory = True):
-    listNode = self.getChild(listName, False)
-    if listNode:
-      return listNode.getFirstChild(mandatory)
-
-    if mandatory:
-      raise NodeAccessException("Node " + self.type + " has no child " + listName, self)
-
-  def getAllChildrenOfType(self, type):
-    return self._getAllChildrenOfType(type, [])
-
-  def _getAllChildrenOfType(self, type, found=[]):
-    if self.hasChildren():
-      for child in self.children:
-        if child.type == type:
-          found.append(child)
-
-        child._getAllChildrenOfType(type, found)
-
-    return found
-
-
-
-
-def nodeToXmlString(node, prefix = "", childPrefix = "  ", newLine="\n", encoding="utf-8"):
-  hasText = False
-  asString = prefix + "<" + node.type
-  if node.hasAttributes():
-    for key in node.attributes:
-      if key == "text":
-        hasText = True
-      else:
-        asString += " " + key + "=\"" + escapeXmlChars(node.attributes[key], True, encoding) + "\""
-
-  if not node.hasChildren() and not hasText:
-    asString += "/>" + newLine
-  else:
-    asString += ">"
-
-    if hasText:
-      if node.hasChildren():
-        asString += newLine + prefix + childPrefix
-      else:
-        asString += newLine + prefix + childPrefix
-
-      asString += "<text>" + escapeXmlChars(node.attributes["text"], False, encoding) + "</text>" + newLine
-
-    if node.hasChildren():
-      asString += newLine
-      for child in node.children:
-        asString += nodeToXmlString(child, prefix + childPrefix, childPrefix, newLine, encoding)
-
-    asString += prefix + "</" + node.type + ">" + newLine
-
-  return asString
-
-
-
-def nodeToJsonString(node, prefix = "", childPrefix = "  ", newLine="\n"):
-  asString = prefix + '{type:"' + escapeJsonChars(node.type) + '"'
-
-  if node.hasAttributes():
-    asString += ',attributes:{'
-    firstAttribute = True
-    for key in node.attributes:
-      if not firstAttribute:
-        asString += ','
-      asString += '"' + key + '":"' + escapeJsonChars(node.attributes[key]) + '"'
-      firstAttribute = False
-    asString += '}'
-
-  if node.hasChildren():
-    asString += ',children:[' + newLine
-
-    firstChild = True
-    prefix = prefix + childPrefix
-    for child in node.children:
-      asString += nodeToJsonString(child, prefix, childPrefix, newLine) + ',' + newLine
-      firstChild = False
-
-    # NOTE We remove the ',\n' of the last child
-    if newLine == "":
-      asString = asString[:-1] + prefix + ']'
-    else:
-      asString = asString[:-2] + newLine + prefix + ']'
-
-  asString += '}'
-
-  return asString
-
-
-
-def escapeXmlChars(text, inAttribute, encoding="utf-8"):
-  if isinstance(text, basestring):
-    text = text.replace("&", "&amp;").replace("<", "&lt;").replace(">", "&gt;")
-    if inAttribute:
-      text = text.replace("\"", "&quot;")
-  elif isinstance(text, bool):
-    text = str(text).lower()
-  else:
-    text = str(text)
-
-  return text
-
-
-
-def escapeJsonChars(text):
-  if isinstance(text, basestring):
-    text = text.replace('"', '\\"').replace('\n', '\\n').replace('\r', '\\r')
-  elif isinstance(text, bool):
-    text = str(text).lower()
-  else:
-    text = str(text)
-
-  return text
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/treegenerator.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/treegenerator.py
deleted file mode 100755 (executable)
index aa6f13b..0000000
+++ /dev/null
@@ -1,1039 +0,0 @@
-#!/usr/bin/env python
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#
-################################################################################
-
-import sys, optparse
-import tokenizer, tree, filetool, variableoptimizer
-
-
-SINGLE_LEFT_OPERATORS = [ "NOT", "BITNOT", "ADD", "SUB", "INC", "DEC" ]
-
-SINGLE_RIGHT_OPERATORS = [ "INC", "DEC" ]
-
-MULTI_TOKEN_OPERATORS = [ "HOOK", "ADD", "SUB", "MUL", "DIV", "MOD", \
-  "LT", "LE", "GT", "GE", "EQ", "NE", "SHEQ", "SHNE", \
-  "AND", "OR", "BITOR", "BITXOR", "BITAND", "POWEROF", \
-  "LSH", "RSH", "URSH" ]
-
-MULTI_PROTECTED_OPERATORS = [ "INSTANCEOF", "IN" ]
-
-ASSIGN_OPERATORS = [ "ASSIGN", "ASSIGN_ADD", "ASSIGN_SUB", "ASSIGN_MUL", \
-  "ASSIGN_DIV", "ASSIGN_MOD", "ASSIGN_BITOR", "ASSIGN_BITXOR", "ASSIGN_BITAND", \
-  "ASSIGN_LSH", "ASSIGN_RSH", "ASSIGN_URSH" ]
-
-LOOP_KEYWORDS = [ "WHILE", "IF", "FOR", "WITH" ]
-
-
-class TokenStream:
-  def __init__ (self, tokens):
-    self.tokens = tokens
-    self.commentsBefore = None
-    self.parsepos = -1
-    self.eolBefore = False
-
-  def curr (self):
-    """Returns the current token."""
-    return self.tokens[self.parsepos]
-
-  def currType (self):
-    return self.curr()["type"]
-
-  def currDetail (self):
-    return self.curr()["detail"]
-
-  def currSource (self):
-    return self.curr()["source"]
-
-  def currLine (self):
-    return self.curr()["line"]
-
-  def currColumn (self):
-    return self.curr()["column"]
-
-  def currMultiline (self):
-    return self.curr()["multiline"]
-
-  def currConnection (self):
-    return self.curr()["connection"]
-
-  def currIsType (self, tokenType, tokenDetail = None):
-    if self.currType() != tokenType:
-      return False
-    else:
-      if tokenDetail == None:
-        return True
-      elif type(tokenDetail) == list:
-        return self.currDetail() in tokenDetail
-      else:
-        return self.currDetail() == tokenDetail
-
-  def expectCurrType (self, tokenType, tokenDetail = None):
-    if not self.currIsType(tokenType, tokenDetail):
-      expectedDesc = tokenType
-      if type(tokenDetail) == str:
-        expectedDesc += "/" + tokenDetail
-      raiseSyntaxException(self.curr(), expectedDesc)
-
-  def finished (self):
-    # NOTE: the last token is end of file
-    return self.parsepos >= len(self.tokens) - 1
-
-  def next (self, item=None, after=False):
-    length = len(self.tokens)
-    self.eolBefore = False
-    self.breakBefore = False
-
-    token = None
-    while self.parsepos < length - 1:
-      self.parsepos += 1
-
-      token = self.tokens[self.parsepos]
-
-      if token["type"] == "eol":
-        if self.eolBefore:
-          self.breakBefore = True
-
-        self.eolBefore = True
-        # ignore end of line
-        pass
-
-      elif token["type"] == "comment":
-        # After current item
-        if token["connection"] == "after":
-          if not token.has_key("inserted") or not token["inserted"]:
-            if item:
-              commentNode = tree.Node("comment")
-              commentNode.set("line", token["line"])
-              commentNode.set("column", token["column"])
-              commentNode.set("text", token["source"])
-              commentNode.set("detail", token["detail"])
-              commentNode.set("multiline", token["multiline"])
-              commentNode.set("connection", token["connection"])
-              commentNode.set("begin", token["begin"])
-              commentNode.set("end", token["end"])
-
-              if after:
-                item.addListChild("commentsAfter", commentNode)
-              else:
-                item.addChild(commentNode)
-
-              self.eolBefore = False
-              self.breakBefore = False
-
-            else:
-              print "Found unresolved after comment in line %s, column %s" % (token["line"], token["column"])
-              print token["source"]
-              pass
-
-        # Documentation and Block comments of next item
-        else:
-          if not self.commentsBefore:
-            self.commentsBefore = []
-
-          commentNode = tree.Node("comment")
-          commentNode.set("line", token["line"])
-          commentNode.set("column", token["column"])
-          commentNode.set("text", token["source"])
-          commentNode.set("detail", token["detail"])
-          commentNode.set("multiline", token["multiline"])
-          commentNode.set("connection", token["connection"])
-          commentNode.set("begin", token["begin"])
-          commentNode.set("end", token["end"])
-
-          self.commentsBefore.append(commentNode)
-
-          self.eolBefore = False
-          self.breakBefore = False
-
-      else:
-        break
-
-    #print "next token: " + str(token)
-
-    if token == None:
-      # return end of file token
-      return self.tokens[length - 1]
-    else:
-      return token
-
-  # alternative to use, when we want to check if the next token
-  # is a comment, but are not able to use next() because if there is
-  # no comment we want to leave in our position
-  def comment (self, item, after=False):
-    length = len(self.tokens)
-
-    token = None
-    pos = self.parsepos
-
-    while pos < length - 1:
-      pos += 1
-      token = self.tokens[pos]
-
-      if token["type"] == "comment" and token["connection"] == "after" and (not token.has_key("inserted") or not token["inserted"]):
-        commentNode = tree.Node("comment")
-        commentNode.set("line", token["line"])
-        commentNode.set("column", token["column"])
-        commentNode.set("text", token["source"])
-        commentNode.set("detail", token["detail"])
-        commentNode.set("multiline", token["multiline"])
-        commentNode.set("connection", token["connection"])
-        commentNode.set("begin", token["begin"])
-        commentNode.set("end", token["end"])
-
-        token["inserted"] = True
-
-        if after:
-          item.addListChild("commentsAfter", commentNode)
-        else:
-          item.addChild(commentNode)
-
-      else:
-        break
-
-  def hadEolBefore(self):
-    return self.eolBefore
-
-  def hadBreakBefore(self):
-    return self.breakBefore
-
-  def clearCommentsBefore(self):
-    commentsBefore = self.commentsBefore
-    self.commentsBefore = None
-    return commentsBefore
-
-
-
-class SyntaxException (Exception):
-  pass
-
-
-
-def createItemNode(type, stream):
-  # print "CREATE %s" % type
-
-  node = tree.Node(type)
-  node.set("line", stream.currLine())
-  node.set("column", stream.currColumn())
-
-  commentsBefore = stream.clearCommentsBefore()
-  if commentsBefore:
-    for comment in commentsBefore:
-      node.addListChild("commentsBefore", comment)
-
-  return node
-
-
-
-def raiseSyntaxException (token, expectedDesc = None):
-  if expectedDesc:
-    msg = "Expected " + expectedDesc + " but found "
-  else:
-    msg = "Unexpected "
-
-  msg += token["type"]
-
-  if token["detail"]:
-    msg += "/" + token["detail"]
-
-  msg += ": '" + token["source"] + "'. file:" + \
-    token["id"] + ", line:" + str(token["line"]) + \
-    ", column:" + str(token["column"])
-
-  raise SyntaxException(msg)
-
-
-
-def createSyntaxTree (tokenArr):
-  """Creates a syntax tree from a token stream.
-
-  tokens: the token stream."""
-
-  stream = TokenStream(tokenArr)
-  stream.next()
-
-  rootBlock = tree.Node("file")
-  rootBlock.set("file", stream.curr()["id"])
-
-  while not stream.finished():
-    rootBlock.addChild(readStatement(stream))
-
-  return rootBlock
-
-
-
-def readExpression (stream):
-  return readStatement(stream, True)
-
-
-
-def readStatement (stream, expressionMode = False, overrunSemicolon = True, inStatementList = False):
-  item = None
-
-  eolBefore = stream.hadEolBefore()
-  breakBefore = stream.hadBreakBefore()
-
-  # print "PROGRESS: %s - %s (%s) [expr=%s]" % (stream.currType(), stream.currDetail(), stream.currLine(), expressionMode)
-
-  if currIsIdentifier(stream, True):
-    # statement starts with an identifier
-    variable = readVariable(stream, True)
-    variable = readObjectOperation(stream, variable)
-
-    if stream.currIsType("token", ASSIGN_OPERATORS):
-      # This is an assignment
-      item = createItemNode("assignment", stream)
-      item.set("operator", stream.currDetail())
-      stream.next(item)
-
-      item.addListChild("left", variable)
-      item.addListChild("right", readExpression(stream))
-    elif stream.currIsType("token", "COLON") and not expressionMode:
-      # This is a label
-      item = variable
-      item.type = "label"
-      stream.next(variable)
-    else:
-      # Something else comes after the variable -> It's a sole variable
-      item = variable
-
-    # Any comments found for the variable belong to the extracted item
-    commentsChild = variable.getChild("commentsBefore", False)
-    if item and commentsChild != None:
-      variable.removeChild(commentsChild)
-      item.addChild(commentsChild, 0)
-  elif stream.currIsType("protected", "FUNCTION"):
-    item = createItemNode("function", stream)
-    stream.next(item)
-
-    # Read optional function name
-    if stream.currIsType("name"):
-      item.set("name", stream.currSource())
-      stream.next(item)
-
-    readParamList(item, stream)
-    item.addListChild("body", readBlock(stream))
-
-    # Check for direct execution: function() {}()
-    if stream.currIsType("token", "LP"):
-      # The function is executed directly
-      functionItem = item
-      item = createItemNode("call", stream)
-      item.addListChild("operand", functionItem)
-      readParamList(item, stream)
-      item = readObjectOperation(stream, item)
-  elif stream.currIsType("protected", "VOID"):
-    stream.next(item)
-    item = createItemNode("void", stream)
-    stream.next(item)
-    item.addChild(readStatement(stream, expressionMode))
-    stream.expectCurrType("token", "RP")
-    stream.next(item, True)
-    item = readObjectOperation(stream, item)
-  elif stream.currIsType("token", "LP"):
-    igroup = createItemNode("group", stream)
-    stream.next(igroup)
-    igroup.addChild(readStatement(stream, expressionMode))
-    stream.expectCurrType("token", "RP")
-    stream.next(igroup, True)
-    oper = readObjectOperation(stream, igroup)
-
-    # supports e.g. (this.editor.object || this.editor.iframe).style.marginTop = null;
-    if stream.currIsType("token", ASSIGN_OPERATORS):
-      # This is an assignment
-      item = createItemNode("assignment", stream)
-      item.set("operator", stream.currDetail())
-      stream.next(item)
-
-      item.addListChild("left", oper)
-      item.addListChild("right", readExpression(stream))
-    else:
-      # Something else comes after the variable -> It's a sole variable
-      item = oper
-
-  elif stream.currIsType("string"):
-    item = createItemNode("constant", stream)
-    item.set("constantType", "string")
-    item.set("value", stream.currSource())
-    item.set("detail", stream.currDetail())
-    stream.next(item, True)
-    # This is a member accessor (E.g. "bla.blubb")
-    item = readObjectOperation(stream, item)
-  elif stream.currIsType("number"):
-    item = createItemNode("constant", stream)
-    item.set("constantType", "number")
-    item.set("value", stream.currSource())
-    item.set("detail", stream.currDetail())
-    stream.next(item, True)
-    # This is a member accessor (E.g. "bla.blubb")
-    item = readObjectOperation(stream, item)
-  elif stream.currIsType("regexp"):
-    item = createItemNode("constant", stream)
-    item.set("constantType", "regexp")
-    item.set("value", stream.currSource())
-    stream.next(item, True)
-    # This is a member accessor (E.g. "bla.blubb")
-    item = readObjectOperation(stream, item)
-  elif expressionMode and (stream.currIsType("protected", "TRUE") or stream.currIsType("protected", "FALSE")):
-    item = createItemNode("constant", stream)
-    item.set("constantType", "boolean")
-    item.set("value", stream.currSource())
-    stream.next(item, True)
-  elif expressionMode and stream.currIsType("protected", "NULL"):
-    item = createItemNode("constant", stream)
-    item.set("constantType", "null")
-    item.set("value", stream.currSource())
-    stream.next(item, True)
-  elif expressionMode and stream.currIsType("token", "LC"):
-    item = readMap(stream)
-  elif expressionMode and stream.currIsType("token", "LB"):
-    item = readArray(stream)
-  elif stream.currIsType("token", SINGLE_LEFT_OPERATORS):
-    item = createItemNode("operation", stream)
-    item.set("operator", stream.currDetail())
-    item.set("left", True)
-    stream.next(item)
-    item.addListChild("first", readExpression(stream))
-  elif stream.currIsType("protected", "TYPEOF"):
-    item = createItemNode("operation", stream)
-    item.set("operator", "TYPEOF")
-    item.set("left", True)
-    stream.next(item)
-    item.addListChild("first", readExpression(stream))
-  elif stream.currIsType("protected", "NEW"):
-    item = readInstantiation(stream)
-    item = readObjectOperation(stream, item)
-  elif not expressionMode and stream.currIsType("protected", "VAR"):
-    item = createItemNode("definitionList", stream)
-    stream.next(item)
-    finished = False
-    while not finished:
-      if not currIsIdentifier(stream, False):
-        raiseSyntaxException(stream.curr(), "identifier")
-
-      childitem = createItemNode("definition", stream)
-      childitem.set("identifier", stream.currSource())
-      stream.next(childitem)
-      if stream.currIsType("token", "ASSIGN"):
-        assign = createItemNode("assignment", stream)
-        childitem.addChild(assign)
-        stream.next(assign)
-        assign.addChild(readExpression(stream))
-
-      item.addChild(childitem)
-
-      # Check whether anothe definition follows, e.g. "var a, b=1, c=4"
-      if stream.currIsType("token", "COMMA"):
-        stream.next(item)
-      else:
-        finished = True
-
-    stream.comment(item, True)
-
-  elif not expressionMode and stream.currIsType("protected", LOOP_KEYWORDS):
-    item = readLoop(stream)
-  elif not expressionMode and stream.currIsType("protected", "DO"):
-    item = readDoWhile(stream)
-  elif not expressionMode and stream.currIsType("protected", "SWITCH"):
-    item = readSwitch(stream)
-  elif not expressionMode and stream.currIsType("protected", "TRY"):
-    item = readTryCatch(stream)
-  elif not expressionMode and stream.currIsType("token", "LC"):
-    item = readBlock(stream)
-  elif not expressionMode and stream.currIsType("protected", "RETURN"):
-    item = createItemNode("return", stream)
-    stream.next(item)
-    # NOTE: The expression after the return keyword is optional
-    if not stream.currIsType("token", "SEMICOLON") and not stream.currIsType("token", "RC"):
-      item.addListChild("expression", readExpression(stream))
-      stream.comment(item, True)
-  elif not expressionMode and stream.currIsType("protected", "THROW"):
-    item = createItemNode("throw", stream)
-    stream.next(item)
-    item.addListChild("expression", readExpression(stream))
-    stream.comment(item, True)
-  elif not expressionMode and stream.currIsType("protected", "DELETE"):
-    item = createItemNode("delete", stream)
-    stream.next(item)
-    item.addListChild("expression", readExpression(stream))
-    stream.comment(item, True)
-  elif not expressionMode and stream.currIsType("protected", "BREAK"):
-    item = createItemNode("break", stream)
-    stream.next(item)
-    # NOTE: The label after the break keyword is optional
-    if not stream.hadEolBefore() and stream.currIsType("name"):
-      item.set("label", stream.currSource())
-      # As the label is an attribute, we need to put following comments into after
-      # to differenciate between comments before and after the label
-      stream.next(item, True)
-  elif not expressionMode and stream.currIsType("protected", "CONTINUE"):
-    item = createItemNode("continue", stream)
-    stream.next(item)
-    # NOTE: The label after the continue keyword is optional
-    if not stream.hadEolBefore() and stream.currIsType("name"):
-      item.set("label", stream.currSource())
-      stream.next(item, True)
-
-  if not item:
-    if stream.currIsType("token", "SEMICOLON") and not expressionMode:
-      # This is an empty statement
-      item = createItemNode("emptyStatement", stream)
-      stream.next(item)
-    else:
-      if expressionMode:
-        expectedDesc = "expression"
-      else:
-        expectedDesc = "statement"
-      raiseSyntaxException(stream.curr(), expectedDesc)
-
-  # check whether this is an operation
-  if stream.currIsType("token", MULTI_TOKEN_OPERATORS) or stream.currIsType("protected", MULTI_PROTECTED_OPERATORS) or (stream.currIsType("token", SINGLE_RIGHT_OPERATORS) and not stream.hadEolBefore()):
-    # its an operation -> We've already parsed the first operand (in item)
-    parsedItem = item
-
-    oper = stream.currDetail()
-
-    item = createItemNode("operation", stream)
-    item.addListChild("first", parsedItem)
-    item.set("operator", oper)
-    stream.next(item)
-
-    if oper in MULTI_TOKEN_OPERATORS or oper in MULTI_PROTECTED_OPERATORS:
-      # It's a multi operator -> There must be a second argument
-      item.addListChild("second", readExpression(stream))
-      if oper == "HOOK":
-        # It's a "? :" operation -> There must be a third argument
-        stream.expectCurrType("token", "COLON")
-        stream.next(item)
-        item.addListChild("third", readExpression(stream))
-
-    # Deep scan on single right operators e.g. if(i-- > 4)
-    if oper in SINGLE_RIGHT_OPERATORS and stream.currIsType("token", MULTI_TOKEN_OPERATORS) and expressionMode:
-      paroper = stream.currDetail()
-
-      paritem = createItemNode("operation", stream)
-      paritem.addListChild("first", item)
-      paritem.set("operator", paroper)
-      stream.next(item)
-
-      if paroper in MULTI_TOKEN_OPERATORS or paroper in MULTI_PROTECTED_OPERATORS:
-        # It's a multi operator -> There must be a second argument
-        paritem.addListChild("second", readExpression(stream))
-        if paroper == "HOOK":
-          # It's a "? :" operation -> There must be a third argument
-          stream.expectCurrType("token", "COLON")
-          stream.next(item)
-          paritem.addListChild("third", readExpression(stream))
-
-      # return parent item
-      item = paritem
-
-
-
-  # check whether this is a combined statement, e.g. "bla(), i++"
-  if not expressionMode and not inStatementList and stream.currIsType("token", "COMMA"):
-    statementList = createItemNode("statementList", stream)
-    statementList.addChild(item)
-    while stream.currIsType("token", "COMMA"):
-      stream.next(statementList)
-      statementList.addChild(readStatement(stream, False, False, True))
-    item = statementList
-
-  # go over the optional semicolon
-  if not expressionMode and overrunSemicolon and stream.currIsType("token", "SEMICOLON"):
-    stream.next(item, True)
-
-
-  item.set("eolBefore", eolBefore)
-  item.set("breakBefore", breakBefore)
-
-  return item
-
-
-
-def currIsIdentifier (stream, allowThis):
-  det = stream.currDetail()
-  return stream.currIsType("name") or stream.currIsType("builtin") \
-    or (stream.currIsType("protected") and \
-       (det == "INFINITY" or det == "PROTOTYPE" or det == "CALL" or \
-        det == "APPLY" or (allowThis and det == "THIS")))
-
-
-
-def readVariable (stream, allowArrays):
-  # Note: keywords may be used as identifiers, too
-  item = createItemNode("variable", stream)
-
-  done = False
-  firstIdentifier = True
-  while not done:
-    if not currIsIdentifier(stream, firstIdentifier):
-      raiseSyntaxException(stream.curr(), "identifier")
-
-    identifier = createItemNode("identifier", stream)
-    identifier.set("name", stream.currSource())
-    stream.next(identifier)
-
-    if allowArrays:
-      while stream.currIsType("token", "LB"):
-        accessor = createItemNode("accessor", stream)
-        stream.next(accessor)
-        accessor.addListChild("identifier", identifier)
-        accessor.addListChild("key", readExpression(stream))
-
-        stream.expectCurrType("token", "RB")
-        stream.next(accessor, True)
-
-        identifier = accessor
-
-    item.addChild(identifier)
-
-    firstIdentifier = False
-
-    if stream.currIsType("token", "DOT"):
-      stream.next(item)
-    else:
-      done = True
-
-  return item
-
-
-
-def readObjectOperation(stream, operand, onlyAllowMemberAccess = False):
-  if stream.currIsType("token", "DOT"):
-    # This is a member accessor (E.g. "bla.blubb")
-    item = createItemNode("accessor", stream)
-    stream.next(item)
-    item.addListChild("left", operand)
-
-    # special mode for constants which should be assigned to an accessor first
-    if operand.type == "constant":
-      item.addListChild("right", readVariable(stream, False))
-      item = readObjectOperation(stream, item)
-    else:
-      item.addListChild("right", readObjectOperation(stream, readVariable(stream, False)))
-
-  elif stream.currIsType("token", "LP"):
-    # This is a function call (E.g. "bla(...)")
-    item = createItemNode("call", stream)
-    item.addListChild("operand", operand)
-    readParamList(item, stream)
-    item = readObjectOperation(stream, item)
-  elif stream.currIsType("token", "LB"):
-    # This is an array access (E.g. "bla[...]")
-    item = createItemNode("accessor", stream)
-    stream.next(item)
-    item.addListChild("identifier", operand)
-    item.addListChild("key", readExpression(stream))
-
-    stream.expectCurrType("token", "RB")
-    stream.next(item, True)
-    item = readObjectOperation(stream, item)
-  else:
-    item = operand
-
-  # Any comments found for the operand belong to the item
-  if operand != item:
-    commentsChild = operand.getChild("commentsBefore", False)
-    if commentsChild != None:
-      operand.removeChild(commentsChild)
-      item.addChild(commentsChild, 0)
-
-  return item
-
-
-
-def readParamList (node, stream):
-  stream.expectCurrType("token", "LP")
-
-  params = createItemNode("params", stream)
-  node.addChild(params)
-
-  stream.next(params)
-
-  firstParam = True
-  lastExpr = None
-  while not stream.currIsType("token", "RP"):
-    if firstParam:
-      firstParam = False
-    else:
-      stream.expectCurrType("token", "COMMA")
-      stream.next(lastExpr, True)
-
-    lastExpr = readExpression(stream)
-    params.addChild(lastExpr)
-
-  # Has an end defined by the loop above
-  # This means that all comments following are after item
-  stream.next(params, True)
-
-
-def readBlock(stream):
-  stream.expectCurrType("token", "LC")
-  item = createItemNode("block", stream)
-
-  # Iterate through children
-  stream.next(item)
-  while not stream.currIsType("token", "RC"):
-    item.addChild(readStatement(stream))
-
-  # Has an end defined by the loop above
-  # This means that all comments following are after item
-  stream.next(item, True)
-
-  return item
-
-
-def readMap(stream):
-  stream.expectCurrType("token", "LC")
-
-  item = createItemNode("map", stream)
-  stream.next(item)
-
-  # NOTE: We use our own flag for checking whether the array already has entries
-  #       and not item.hasChildren(), because item.hasChildren() is also true
-  #       when there are comments before the array
-  hasEntries = False
-
-  while not stream.currIsType("token", "RC"):
-    if hasEntries:
-      stream.expectCurrType("token", "COMMA")
-      stream.next(item)
-
-    if not currIsIdentifier(stream, True) and not stream.currIsType("string") and not stream.currIsType("number"):
-      raiseSyntaxException(stream.curr(), "map key (identifier, string or number)")
-
-    keyvalue = createItemNode("keyvalue", stream)
-    keyvalue.set("key", stream.currSource())
-
-    if stream.currIsType("string"):
-      keyvalue.set("quote", stream.currDetail())
-
-    stream.next(keyvalue)
-    stream.expectCurrType("token", "COLON")
-    stream.next(keyvalue, True)
-    keyvalue.addListChild("value", readExpression(stream))
-
-    item.addChild(keyvalue)
-
-    hasEntries = True
-
-  # Has an end defined by the loop above
-  # This means that all comments following are after item
-  stream.next(item, True)
-
-  return item
-
-
-
-def readArray(stream):
-  stream.expectCurrType("token", "LB")
-
-  item = createItemNode("array", stream)
-  stream.next(item)
-
-  # NOTE: We use our own flag for checking whether the array already has entries
-  #       and not item.hasChildren(), because item.hasChildren() is also true
-  #       when there are comments before the array
-  hasEntries = False
-  while not stream.currIsType("token", "RB"):
-    if hasEntries:
-      stream.expectCurrType("token", "COMMA")
-      stream.next(item)
-
-    item.addChild(readExpression(stream))
-    hasEntries = True
-
-  # Has an end defined by the loop above
-  # This means that all comments following are after item
-  stream.next(item, True)
-
-  # Support constructs like [ "foo", "bar" ].join("")
-  item = readObjectOperation(stream, item)
-
-  return item
-
-
-
-def readInstantiation(stream):
-  stream.expectCurrType("protected", "NEW")
-
-  item = createItemNode("instantiation", stream)
-  stream.next(item)
-
-  # Could be a simple variable or a just-in-time function declaration (closure)
-  # Read this as expression
-  stmnt = readStatement(stream, True, False)
-  item.addListChild("expression", stmnt)
-
-  return item
-
-
-
-def readLoop(stream):
-  stream.expectCurrType("protected", LOOP_KEYWORDS)
-
-  loopType = stream.currDetail()
-
-  item = createItemNode("loop", stream)
-  item.set("loopType", loopType)
-
-  stream.next(item)
-  stream.expectCurrType("token", "LP")
-
-  if loopType == "FOR":
-    stream.next(item)
-
-    if not stream.currIsType("token", "SEMICOLON"):
-      # Read the optional first statement
-      first = createItemNode("first", stream)
-      item.addChild(first)
-      first.addChild(readStatement(stream, False, False))
-      stream.comment(first, True)
-
-    if stream.currIsType("token", "SEMICOLON"):
-      # It's a for (;;) loop
-      item.set("forVariant", "iter")
-
-      stream.next(item)
-      if not stream.currIsType("token", "SEMICOLON"):
-        # Read the optional second expression
-        second = createItemNode("second", stream)
-        item.addChild(second)
-        second.addChild(readExpression(stream))
-        stream.comment(second, True)
-
-      stream.expectCurrType("token", "SEMICOLON")
-      stream.next(item)
-
-      if not stream.currIsType("token", "RP"):
-        # Read the optional third statement
-        third = createItemNode("third", stream)
-        item.addChild(third)
-        third.addChild(readStatement(stream, False, False))
-        stream.comment(third, True)
-
-    elif stream.currIsType("token", "RP"):
-      # It's a for ( in ) loop
-      item.set("forVariant", "in")
-      pass
-
-    else:
-      raiseSyntaxException(stream.curr(), "semicolon or in")
-
-    stream.expectCurrType("token", "RP")
-
-  else:
-    expr = createItemNode("expression", stream)
-    stream.next(expr)
-    expr.addChild(readExpression(stream))
-    item.addChild(expr)
-    stream.comment(expr, True)
-    stream.expectCurrType("token", "RP")
-
-  # comments should be already completed from the above code
-  stmnt = createItemNode("statement", stream)
-  item.addChild(stmnt)
-  stream.next()
-  stmnt.addChild(readStatement(stream))
-
-  if loopType == "IF" and stream.currIsType("protected", "ELSE"):
-    elseStmnt = createItemNode("elseStatement", stream)
-    item.addChild(elseStmnt)
-    stream.next(elseStmnt)
-    elseStmnt.addChild(readStatement(stream))
-
-  return item
-
-
-
-def readDoWhile(stream):
-  stream.expectCurrType("protected", "DO")
-
-  item = createItemNode("loop", stream)
-  item.set("loopType", "DO")
-  stream.next(item)
-
-  stmnt = createItemNode("statement", stream)
-  item.addChild(stmnt)
-  stmnt.addChild(readStatement(stream))
-
-  stream.expectCurrType("protected", "WHILE")
-  stream.next(item)
-
-  stream.expectCurrType("token", "LP")
-
-  expr = createItemNode("expression", stream)
-  item.addChild(expr)
-  stream.next(expr)
-
-  expr.addChild(readExpression(stream))
-
-  stream.expectCurrType("token", "RP")
-  stream.next(item, True)
-
-  return item
-
-
-def readSwitch(stream):
-  stream.expectCurrType("protected", "SWITCH")
-
-  item = createItemNode("switch", stream)
-  item.set("switchType", "case")
-
-  stream.next(item)
-  stream.expectCurrType("token", "LP")
-
-  expr = createItemNode("expression", stream)
-  stream.next(expr)
-  item.addChild(expr)
-  expr.addChild(readExpression(stream))
-
-  stream.expectCurrType("token", "RP")
-  stream.next(expr, True)
-
-  stream.expectCurrType("token", "LC")
-  stmnt = createItemNode("statement", stream)
-  item.addChild(stmnt)
-  stream.next(stmnt)
-
-  while not stream.currIsType("token", "RC"):
-    if stream.currIsType("protected", "CASE"):
-      caseItem = createItemNode("case", stream)
-      stream.next(caseItem)
-      caseItem.addListChild("expression", readExpression(stream))
-      stmnt.addChild(caseItem)
-
-      stream.expectCurrType("token", "COLON")
-      stream.next(caseItem, True)
-
-    elif stream.currIsType("protected", "DEFAULT"):
-      defaultItem = createItemNode("default", stream)
-      stmnt.addChild(defaultItem)
-      stream.next(defaultItem)
-
-      stream.expectCurrType("token", "COLON")
-      stream.next(defaultItem, True)
-
-    else:
-      raiseSyntaxException(stream.curr(), "case or default")
-
-    while not stream.currIsType("token", "RC") and not stream.currIsType("protected", "CASE") and not stream.currIsType("protected", "DEFAULT"):
-      stmnt.addChild(readStatement(stream))
-
-  stream.next(stmnt, True)
-
-  return item
-
-
-def readTryCatch(stream):
-  stream.expectCurrType("protected", "TRY")
-
-  item = createItemNode("switch", stream)
-  item.set("switchType", "catch")
-  stream.next(item)
-
-  item.addListChild("statement", readStatement(stream))
-
-  while stream.currIsType("protected", "CATCH"):
-    catchItem = createItemNode("catch", stream)
-    stream.next(catchItem)
-
-    stream.expectCurrType("token", "LP")
-
-    exprItem = createItemNode("expression", stream)
-    catchItem.addChild(exprItem)
-    stream.next(exprItem)
-    exprItem.addChild(readExpression(stream))
-
-    stream.expectCurrType("token", "RP")
-    stream.next(exprItem, True)
-
-    stmnt = createItemNode("statement", stream)
-    catchItem.addChild(stmnt)
-    stmnt.addChild(readStatement(stream))
-
-    item.addChild(catchItem)
-
-  if stream.currIsType("protected", "FINALLY"):
-    finallyItem = createItemNode("finally", stream)
-    stream.next(finallyItem)
-
-    stmnt = createItemNode("statement", stream)
-    finallyItem.addChild(stmnt)
-    stmnt.addChild(readStatement(stream))
-
-    item.addChild(finallyItem)
-
-  return item
-
-
-
-
-
-
-
-
-
-def main():
-  parser = optparse.OptionParser()
-
-  parser.add_option("-w", "--write", action="store_true", dest="write", default=False, help="Writes file to incoming fileName + EXTENSION.")
-  parser.add_option("-e", "--extension", dest="extension", metavar="EXTENSION", help="The EXTENSION to use", default=".compiled")
-  parser.add_option("--optimize-variables", action="store_true", dest="optimizeVariables", default=False, help="Optimize variables. Reducing size.")
-  parser.add_option("--encoding", dest="encoding", default="utf-8", metavar="ENCODING", help="Defines the encoding expected for input files.")
-
-  (options, args) = parser.parse_args()
-
-  if len(args) == 0:
-    print "Needs one or more arguments (files) to compile!"
-    sys.exit(1)
-
-  for fileName in args:
-    if options.write:
-      print "Generating tree of %s => %s%s" % (fileName, fileName, options.extension)
-    else:
-      print "Generating tree of %s => stdout" % fileName
-
-    restree = createSyntaxTree(tokenizer.parseFile(fileName, "", options.encoding))
-
-    if options.optimizeVariables:
-      variableoptimizer.search(restree, [], 0, "$")
-
-    compiledString = tree.nodeToXmlString(restree)
-    if options.write:
-      filetool.save(fileName + options.extension, compiledString)
-
-    else:
-      try:
-        print compiledString
-
-      except UnicodeEncodeError:
-        print "  * Could not encode result to ascii. Use '-w' instead."
-        sys.exit(1)
-
-
-
-if __name__ == '__main__':
-  try:
-    main()
-
-  except KeyboardInterrupt:
-    print
-    print "  * Keyboard Interrupt"
-    sys.exit(1)
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/variableoptimizer.py b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/modules/variableoptimizer.py
deleted file mode 100644 (file)
index eb85bd4..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-#!/usr/bin/env python
-################################################################################
-#
-#  qooxdoo - the new era of web development
-#
-#  http://qooxdoo.org
-#
-#  Copyright:
-#    2006-2007 1&1 Internet AG, Germany, http://www.1and1.org
-#
-#  License:
-#    LGPL: http://www.gnu.org/licenses/lgpl.html
-#    EPL: http://www.eclipse.org/org/documents/epl-v10.php
-#    See the LICENSE file in the project's top-level directory for details.
-#
-#  Authors:
-#    * Sebastian Werner (wpbasti)
-#    * Alessandro Sala (asala)
-#
-################################################################################
-
-import tree, mapper
-
-def skip(name, prefix):
-       return len(prefix) > 0 and name[:len(prefix)] == prefix
-
-def search(node, found, level=0, prefix="$", skipPrefix="", register=False, debug=False):
-  if node.type == "function":
-    if register:
-      name = node.get("name", False)
-      if name != None and not name in found:
-        # print "Name: %s" % name
-        found.append(name)
-
-    foundLen = len(found)
-    register = True
-
-    if debug:
-      print "\n%s<scope line='%s'>" % (("  " * level), node.get("line"))
-
-  # e.g. func(name1, name2);
-  elif register and node.type == "variable" and node.hasChildren() and len(node.children) == 1:
-    if node.parent.type == "params" and node.parent.parent.type != "call":
-      first = node.getFirstChild()
-
-      if first.type == "identifier":
-        name = first.get("name")
-
-        if not name in found:
-          # print "Name: %s" % name
-          found.append(name)
-
-  # e.g. var name1, name2 = "foo";
-  elif register and node.type == "definition":
-    name = node.get("identifier", False)
-
-    if name != None:
-      if not name in found:
-        # print "Name: %s" % name
-        found.append(name)
-
-  # Iterate over children
-  if node.hasChildren():
-    if node.type == "function":
-      for child in node.children:
-        search(child, found, level+1, prefix, skipPrefix, register, debug)
-
-    else:
-      for child in node.children:
-        search(child, found, level, prefix, skipPrefix, register, debug)
-
-  # Function closed
-  if node.type == "function":
-
-    # Debug
-    if debug:
-      for item in found:
-        print "  %s<item>%s</item>" % (("  " * level), item)
-      print "%s</scope>" % ("  " * level)
-
-    # Iterate over content
-    # Replace variables in current scope
-    update(node, found, prefix, skipPrefix, debug)
-    del found[foundLen:]
-
-
-
-def update(node, found, prefix="$", skipPrefix="", debug=False):
-
-  # Handle all identifiers
-  if node.type == "identifier":
-
-    isFirstChild = False
-    isVariableMember = False
-
-    if node.parent.type == "variable":
-      isVariableMember = True
-      varParent = node.parent.parent
-
-      if not (varParent.type == "right" and varParent.parent.type == "accessor"):
-        isFirstChild = node.parent.getFirstChild(True, True) == node
-
-    elif node.parent.type == "identifier" and node.parent.parent.type == "accessor":
-      isVariableMember = True
-      accessor = node.parent.parent
-      isFirstChild = accessor.parent.getFirstChild(True, True) == accessor
-
-    # inside a variable parent only respect the first member
-    if not isVariableMember or isFirstChild:
-      idenName = node.get("name", False)
-
-      if idenName != None and idenName in found and not skip(idenName, skipPrefix):
-        replName = "%s%s" % (prefix, mapper.convert(found.index(idenName)))
-        node.set("name", replName)
-
-        if debug:
-          print "  - Replaced '%s' with '%s'" % (idenName, replName)
-
-  # Handle variable definition
-  elif node.type == "definition":
-    idenName = node.get("identifier", False)
-
-    if idenName != None and idenName in found and not skip(idenName, skipPrefix):
-      replName = "%s%s" % (prefix, mapper.convert(found.index(idenName)))
-      node.set("identifier", replName)
-
-      if debug:
-        print "  - Replaced '%s' with '%s'" % (idenName, replName)
-
-  # Handle function definition
-  elif node.type == "function":
-    idenName = node.get("name", False)
-
-    if idenName != None and idenName in found and not skip(idenName, skipPrefix):
-      replName = "%s%s" % (prefix, mapper.convert(found.index(idenName)))
-      node.set("name", replName)
-
-      if debug:
-        print "  - Replaced '%s' with '%s'" % (idenName, replName)
-
-  # Iterate over children
-  if node.hasChildren():
-    for child in node.children:
-      update(child, found, prefix, skipPrefix, debug)
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/presets/core.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/presets/core.dat
deleted file mode 100755 (executable)
index cf7fdcc..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-###########################################################################\r
-#\r
-# Generates a compiled qooxdoo core JavaScript file\r
-#\r
-###########################################################################\r
-\r
-class-path = framework/source/class\r
-cache-directory = framework/.cache\r
-include = core\r
-generate-compiled-script\r
-compiled-script-file = core.js\r
-optimize-strings\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/presets/io.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/presets/io.dat
deleted file mode 100644 (file)
index 2b0f8d0..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-###########################################################################\r
-#\r
-# Generates a compiled qooxdoo io JavaScript file\r
-#\r
-###########################################################################\r
-\r
-class-path = framework/source/class\r
-cache-directory = framework/.cache\r
-include = qx.io.remote.*\r
-generate-compiled-script\r
-compiled-script-file = io.js\r
-optimize-strings\r
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/presets/packages.dat b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/tool/presets/packages.dat
deleted file mode 100755 (executable)
index d141954..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-###########################################################################\r
-#\r
-# Generates 3 JavaScript files with different include configuration\r
-#\r
-###########################################################################\r
-\r
-class-path = framework/source/class\r
-cache-directory = framework/.cache\r
-generate-compiled-script\r
-optimize-strings\r
-\r
-package = core\r
-include = core\r
-compiled-script-file = pkg-core.js\r
-\r
-package = ui_core\r
-include = ui_core\r
-exclude = core\r
-compiled-script-file = pkg-ui_core.js\r
-\r
-package = ui_basic\r
-include = ui_basic\r
-exclude = core\r
-exclude = ui_core\r
-compiled-script-file = pkg-ui_basic.js\r
diff --git a/webapps/swat/Makefile b/webapps/swat/Makefile
deleted file mode 100644 (file)
index afff059..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-################################################################################
-# REQUIRED SETTINGS
-################################################################################
-
-#
-# Path to the folder of your qooxdoo distribution.
-# Can either be
-# a) a path relative to the location of this Makefile (preferred) or
-# b) an absolute path starting at the root of your file system
-# Example: If you put the skeleton folder next to the qooxdoo SDK folder,
-# you can use the following relative path:
-# QOOXDOO_PATH = ../qooxdoo-0.6.5-sdk
-#
-QOOXDOO_PATH = ../qooxdoo-0.6.5-sdk
-
-#
-# Similar to above, but from the webserver point of view.
-# Starting point is now the application HTML file of the source folder
-# (source/index.html by default). In most cases just prepend a "../" to
-# QOOXDOO_PATH from above.
-# Example: QOOXDOO_URI = ../../qooxdoo-0.6.5-sdk
-#
-QOOXDOO_URI = ../../qooxdoo-0.6.5-sdk
-
-
-
-
-
-
-################################################################################
-# BASIC SETTINGS
-################################################################################
-
-#
-# Full namespace of your application
-#
-APPLICATION_NAMESPACE = swat
-
-#
-# Titles used in your API viewer and during the build process
-#
-APPLICATION_MAKE_TITLE = SWAT
-APPLICATION_API_TITLE = Swat
-
-#
-# Additional static files of your application (space separated list)
-#
-APPLICATION_FILES = index.html
-
-#
-# Locales to build (space separated list)
-# To set a specific locale like "en_US" the generic locale "en" has to be added as well
-# Example: APPLICATION_LOCALES = en en_US de de_DE es
-#
-APPLICATION_LOCALES =
-
-
-
-
-
-
-################################################################################
-# ADVANCED SETTINGS
-################################################################################
-
-#
-# Please take a look at $(QOOXDOO_PATH)/frontend/framework/tool/make/application.mk
-# for an overview of available options
-#
-
-include $(QOOXDOO_PATH)/frontend/framework/tool/make/apiviewer.mk
-
-APPLICATION_CLASSNAME = $(APPLICATION_NAMESPACE).main.Main
-APPLICATION_LINEBREAKS_BUILD = true
-APPLICATION_LINEBREAKS_SOURCE = true
-APPLICATION_OPTIMIZE_STRINGS = false
-APPLICATION_OPTIMIZE_VARIABLES = false
-APPLICATION_ADDITIONAL_CLASS_PATH = \
-  --class-path $(APIVIEWER_PATH)/source/class \
-  --class-uri $(APIVIEWER_PATH)/source/class
-APPLICATION_ADDITIONAL_RESOURCE = \
-  --resource-input $(APIVIEWER_PATH)/source/resource \
-  --resource-output $(APPLICATION_BUILD_PATH)/resource/apiviewer \
-  --define-runtime-setting apiviewer.resourceUri:$(APPLICATION_PAGE_TO_TOPLEVEL)/resource/apiviewer
-APPLICATION_RESOURCE_FILTER = true
-APPLICATION_COMPLETE_SOURCE = false
-
-# Typically, we just need a "build"
-.PHONY: default
-
-default:       build
-
-
-################################################################################
-# INCLUDE CORE
-################################################################################
-
-ifneq ($(QOOXDOO_PATH),PLEASE_DEFINE_QOOXDOO_PATH)
-include $(QOOXDOO_PATH)/frontend/framework/tool/make/targets.mk
-include $(QOOXDOO_PATH)/frontend/framework/tool/make/application.mk
-endif
-
-error:
-       @echo "  * Please configure QOOXDOO_PATH"
diff --git a/webapps/swat/source/.ignore b/webapps/swat/source/.ignore
deleted file mode 100644 (file)
index 84f7e31..0000000
+++ /dev/null
@@ -1 +0,0 @@
-script
diff --git a/webapps/swat/source/class/swat/main/AbstractModule.js b/webapps/swat/source/class/swat/main/AbstractModule.js
deleted file mode 100644 (file)
index bf61a86..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * Copyright:
- *   (C) 2006 by Derrell Lipman
- *       All rights reserved
- *
- * License:
- *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
- */
-
-/**
- * Abstract Module class.  All modules should extend this class.
- */
-qx.OO.defineClass("swat.main.AbstractModule", qx.core.Object,
-function()
-{
-  qx.core.Object.call(this);
-  this.debug("AbstractModule constructor");
-});
-
-
-/**
- * Build the initial finite state machine.
- *
- * In order to prevent long load times, as minimal as possible of an initial
- * FSM should be created.  The FSM will receive an "appear" event when the
- * module is first selected (and each subsequent time), and the FSM can use
- * that event to build the complete FSM.
- *
- * @param module {swat.main.Module}
- *    The module descriptor for the module.
- */
-qx.Proto.buildInitialFsm = function(module)
-{
-  // Create a new finite state machine
-  var fsm = new qx.util.fsm.FiniteStateMachine(module.name);
-
-  // For this simple example application, show all debug messages.
-  qx.Settings.setCustomOfClass(
-    "qx.util.fsm.FiniteStateMachine",
-    "debugFlags",
-    (qx.util.fsm.FiniteStateMachine.DebugFlags.EVENTS |
-     qx.util.fsm.FiniteStateMachine.DebugFlags.TRANSITIONS |
-     qx.util.fsm.FiniteStateMachine.DebugFlags.FUNCTION_DETAIL |
-     qx.util.fsm.FiniteStateMachine.DebugFlags.OBJECT_NOT_FOUND));
-
-  /*
-   * State: Idle
-   *
-   * Transition on:
-   *  "appear" on swat.main.canvas
-   */
-  var state = new qx.util.fsm.State(
-    "State_Idle",
-    {
-      "events" :
-        {
-          // When we get an appear event the first time, run the transition
-          // that will load the module's finite state machine and graphical
-          // user interface.
-          "appear"  :
-          {
-            "swat.main.canvas" :
-              "Transition_Idle_to_Idle_Load_Gui"
-          }
-        }
-    });
-  fsm.addState(state);
-
-  /*
-   * Transition: Idle to (replaced) Idle
-   *
-   * Cause: "appear" on canvas for the first time
-   *
-   * Action:
-   *  Load module's finite state machine and graphical user interface
-   */
-  var thisModule = this;
-  var newModule = module;
-  var trans = new qx.util.fsm.Transition(
-    "Transition_Idle_to_Idle_Load_Gui",
-    {
-      "nextState" :
-        qx.util.fsm.FiniteStateMachine.StateChange.CURRENT_STATE,
-
-      "ontransition" :
-        function(fsm, event)
-        {
-          // Call the module's initialAppear function to build FSM and GUI.
-          // That function should *replace* this state, State_Idle, to which
-          // we'll transition.
-          var canvas = fsm.getObject("swat.main.canvas");
-          canvas.getTopLevelWidget().setGlobalCursor("progress");
-          if (! newModule.bLoaded)
-          {
-            window.setTimeout(
-              function()
-              {
-                // Call the module's initial appear handler
-                thisModule.initialAppear(newModule);
-
-                // Regenerate the appear event, since the original one got
-                // lost by doing this code inside of the timeout.
-                canvas.createDispatchEvent("appear");
-
-                // Reset the cursor to the default
-                canvas.getTopLevelWidget().setGlobalCursor(null);
-
-              }, 0);
-            newModule.bLoaded = true;
-          }
-        }
-    });
-  state.addTransition(trans);
-
-  // Save the finite state machine for this module
-  module.fsm = fsm;
-
-  // Save the module descriptor in the finite state machine
-  fsm.addObject("swat.main.module", module);
-
-  // Create an RPC object for use by this module
-  module.rpc = new qx.io.remote.Rpc();
-  module.rpc.setUrl("/services/");
-  module.rpc.setTimeout(10000);
-  module.rpc.setCrossDomain(false);
-  module.rpc.addEventListener("completed", fsm.eventListener, fsm);
-  module.rpc.addEventListener("failed", fsm.eventListener, fsm);
-  module.rpc.addEventListener("timeout", fsm.eventListener, fsm);
-  module.rpc.addEventListener("aborted", fsm.eventListener, fsm);
-  fsm.addObject("swat.main.rpc", module.rpc);
-
-  // Start the finite state machine
-  fsm.start();
-};
-
-/**
- * Build the initial graphical user interface.
- *
- * Generally, this is a no-op.
- *
- * @param module {Object}
- *   An object containing at least the following properties:
- *     fsm -
- *       The finite state machine for this module.  It should be filled in
- *       by this function.
- *     canvas -
- *       The canvas on which to create the gui for this module
- *     name -
- *       The name of this module
- *     clazz -
- *       The class for this module
- *
- */
-qx.Proto.buildInitialGui = function(module)
-{
-  // nothing to do
-};
-
-qx.Proto.finalize = function(module)
-{
-  this.debug("AbstractModule.finalize()");
-};
-
-
-/*
----------------------------------------------------------------------------
-  DEFER SINGLETON INSTANCE
----------------------------------------------------------------------------
-*/
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/swat/source/class/swat/main/AbstractModuleFsm.js b/webapps/swat/source/class/swat/main/AbstractModuleFsm.js
deleted file mode 100644 (file)
index 3cf4187..0000000
+++ /dev/null
@@ -1,715 +0,0 @@
-/*
- * Copyright:
- *   (C) 2006 by Derrell Lipman
- *       All rights reserved
- *
- * License:
- *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
- */
-
-/**
- * Common facilities for modules' finite state machines.  Each module's FSM
- * should extend this class.
- */
-qx.OO.defineClass("swat.main.AbstractModuleFsm", qx.core.Object, function()
-{
-  qx.core.Object.call(this);
-
-  // Create an array for pushing request objects
-  this._requests = [ ];
-});
-
-
-qx.Proto.buildFsm = function(module)
-{
-  throw new Error("Module must overload buildFsm() " +
-                  "to build its custom finite state machine.");
-};
-
-qx.Proto.addAwaitRpcResultState = function(module, blockedEvents)
-{
-  var fsm = module.fsm;
-  var _this = this;
-
-  /*
-   * State: AwaitRpcResult
-   *
-   * Actions upon entry:
-   *  - enable any objects in group "swat.main.fsmUtils.enable_during_rpc"
-   *  - disable any objects in group "swat.main.fsmUtils.disable_during_rpc"
-   *
-   * Actions upon exit:
-   *   - disable any objects in group "swat.main.fsmUtils.enable_during_rpc"
-   *   - enable any objects in group "swat.main.fsmUtils.disable_during_rpc"
-   *
-   * Transition on:
-   *  "completed" (on RPC)
-   *  "failed" (on RPC)
-   *  "execute" on swat.main.fsmUtils.abort_rpc
-   */
-
-  var stateInfo =
-  {
-    "autoActionsBeforeOnentry" :
-    {
-      // The name of a function.
-      "setEnabled" :
-      [
-        {
-          // We want to enable objects in the group
-          // swat.main.fsmUtils.enable_during_rpc
-          "parameters" : [ true ],
-
-          // Call this.getObject(<object>).setEnabled(true) on
-          // state entry, for each <object> in the group called
-          // "swat.main.fsmUtils.enable_during_rpc".
-          "groups"      : [ "swat.main.fsmUtils.enable_during_rpc" ]
-        },
-
-        {
-          // We want to disable objects in the group
-          // swat.main.fsmUtils.disable_during_rpc
-          "parameters" : [ false ],
-
-          // Call this.getObject(<object>).setEnabled(false) on
-          // state entry, for each <object> in the group called
-          // "swat.main.fsmUtils.disable_during_rpc".
-          "groups"      : [ "swat.main.fsmUtils.disable_during_rpc" ]
-        }
-      ]
-    },
-
-    "autoActionsBeforeOnexit" :
-    {
-      // The name of a function.
-      "setEnabled" :
-      [
-        {
-          // We want to re-disable objects we had enabled, in the group
-          // swat.main.fsmUtils.enable_during_rpc
-          "parameters" : [ false ],
-
-          // Call this.getObject(<object>).setEnabled(false) on
-          // state entry, for each <object> in the group called
-          // "swat.main.fsmUtils.enable_during_rpc".
-          "groups"      : [ "swat.main.fsmUtils.enable_during_rpc" ]
-        },
-
-        {
-          // We want to re-enable objects we had disabled, in the group
-          // swat.main.fsmUtils.disable_during_rpc
-          "parameters" : [ true ],
-
-          // Call this.getObject(<object>).setEnabled(true) on
-          // state entry, for each <object> in the group called
-          // "swat.main.fsmUtils.disable_during_rpc".
-          "groups"      : [ "swat.main.fsmUtils.disable_during_rpc" ]
-        }
-      ]
-    },
-
-    "onentry" :
-      function(fsm, event)
-      {
-        var bAuthCompleted = false;
-
-        // Change the cursor to indicate RPC in progress
-        var canvas = fsm.getObject("swat.main.canvas");
-        canvas.getTopLevelWidget().setGlobalCursor("progress");
-        
-        // See if we just completed an authentication
-        if (fsm.getPreviousState() == "State_Authenticate" &&
-            event.getType() == "complete")
-        {
-          bAuthCompleted = true;
-        }
-
-        // If we didn't just complete an authentication and we're coming
-        // from some other state...
-        if (! bAuthCompleted &&
-            fsm.getPreviousState() != "State_AwaitRpcResult")
-        {
-          // ... then push the previous state onto the state stack
-          fsm.pushState(false);
-        }
-      },
-
-    "onexit" :
-      function(fsm, event)
-      {
-        // If we're returning to the calling state (not going to the
-        // Authenticate state)...
-        var nextState = fsm.getNextState();
-        if (nextState != "State_Authenticate" &&
-            nextState != "State_AwaitRpcResult")
-        {
-          // ... then set the cursor back to normal
-          var canvas = fsm.getObject("swat.main.canvas");
-          canvas.getTopLevelWidget().setGlobalCursor(null);
-        }
-      },
-
-    "events" :
-    {
-      "execute"  :
-      {
-        "swat.main.fsmUtils.abort_rpc" :
-          "Transition_AwaitRpcResult_to_AwaitRpcResult_via_button_abort"
-      },
-
-      "completed" :
-        "Transition_AwaitRpcResult_to_PopStack_via_complete",
-
-      "failed" :
-        qx.util.fsm.FiniteStateMachine.EventHandling.PREDICATE
-    }
-  };
-
-  // If there are blocked events specified...
-  if (blockedEvents)
-  {
-    // ... then add them to the state info events object
-    for (var blockedEvent in blockedEvents)
-    {
-      // Ensure it's not already there.  Avoid programmer headaches.
-      if (stateInfo["events"][blockedEvent])
-      {
-        throw new Error("Attempt to add blocked event " +
-                        blockedEvent + " but it is already handled");
-      }
-
-      // Add the event.
-      stateInfo["events"][blockedEvent] = blockedEvents[blockedEvent];
-    }
-  }
-
-  var state = new qx.util.fsm.State( "State_AwaitRpcResult", stateInfo);
-  fsm.addState(state);
-
-  /*** Transitions that use a PREDICATE appear first ***/
-
-  /*
-   * Transition: AwaitRpcResult to GetAuthInfo
-   *
-   * Cause: "failed" (on RPC) where reason is PermissionDenied
-   */
-  var trans = new qx.util.fsm.Transition(
-    "Transition_AwaitRpcResult_to_Authenticate",
-    {
-      "nextState" :
-        "State_Authenticate",
-
-      "predicate" :
-        function(fsm, event)
-        {
-          var error = event.getData(); // retrieve the JSON-RPC error
-
-          // Did we get get origin=Server, and either
-          // code=NotLoggedIn or code=SessionExpired ? 
-          var origins = swat.main.AbstractModuleFsm.JsonRpc_Origin;
-          var serverErrors = swat.main.AbstractModuleFsm.JsonRpc_ServerError;
-          if (error.origin == origins.Server &&
-              (error.code == serverErrors.NotLoggedIn ||
-               error.code == serverErrors.SessionExpired))
-          {
-            return true;
-          }
-
-          // fall through to next transition, also for "failed"
-          return false;
-        },
-
-      "ontransition" :
-        function(fsm, event)
-        {
-          var caption;
-
-          var error = event.getData(); // retrieve the JSON-RPC error
-          var serverErrors = swat.main.AbstractModuleFsm.JsonRpc_ServerError;
-
-          switch(error.code)
-          {
-          case serverErrors.NotLoggedIn:
-            caption = "Please log in.";
-            break;
-
-          case serverErrors.SessionExpired:
-          default:
-            caption = "Session Expired.  Please log in.";
-            break;
-          }
-
-          // Retrieve the modal authentication window.
-          var loginWin = swat.main.Authenticate.getInstance();
-
-          // Ensure that it's saved in the current finite state machine
-          loginWin.addToFsm(fsm);
-
-          // Set the caption
-          loginWin.setCaption(caption);
-
-          // Set the domain info
-          loginWin.setInfo(error.info);
-
-          // Open the authentication window
-          loginWin.open();
-        }
-    });
-  state.addTransition(trans);
-
-  /*
-   * Transition: AwaitRpcResult to PopStack
-   *
-   * Cause: "failed" (on RPC)
-   */
-  var trans = new qx.util.fsm.Transition(
-    "Transition_AwaitRpcResult_to_PopStack_via_failed",
-    {
-      "nextState" :
-        qx.util.fsm.FiniteStateMachine.StateChange.POP_STATE_STACK,
-
-      "ontransition" :
-        function(fsm, event)
-        {
-          // Get the request object
-          var rpcRequest = _this.getCurrentRpcRequest();
-          
-          // Generate the result for a completed request
-          rpcRequest.setUserData("result",
-                                  {
-                                      type : "failed",
-                                      data : event.getData()
-                                  });
-        }
-    });
-  state.addTransition(trans);
-
-  /*** Remaining transitions are accessed via the jump table ***/
-
-  /*
-   * Transition: AwaitRpcResult to AwaitRpcResult
-   *
-   * Cause: "execute" on swat.main.fsmUtils.abort_rpc
-   */
-  var trans = new qx.util.fsm.Transition(
-    "Transition_AwaitRpcResult_to_AwaitRpcResult_via_button_abort",
-    {
-      "nextState" :
-        "State_AwaitRpcResult",
-
-      "ontransition" :
-        function(fsm, event)
-        {
-          // Get the request object
-          var rpcRequest = _this.getCurrentRpcRequest();
-
-          // Issue an abort for the pending request
-          rpcRequest.request.abort();
-        }
-    });
-  state.addTransition(trans);
-
-  /*
-   * Transition: AwaitRpcResult to PopStack
-   *
-   * Cause: "complete" (on RPC)
-   */
-  var trans = new qx.util.fsm.Transition(
-    "Transition_AwaitRpcResult_to_PopStack_via_complete",
-    {
-      "nextState" :
-        qx.util.fsm.FiniteStateMachine.StateChange.POP_STATE_STACK,
-
-      "ontransition" :
-        function(fsm, event)
-        {
-          // Get the request object
-          var rpcRequest = _this.getCurrentRpcRequest();
-          
-          // Generate the result for a completed request
-          rpcRequest.setUserData("result",
-                                  {
-                                      type : "complete",
-                                      data : event.getData()
-                                  });
-        }
-    });
-  state.addTransition(trans);
-
-  /*
-   * State: Authenticate
-   *
-   * Transition on:
-   *  "execute" on login_button
-   */
-  var state = new qx.util.fsm.State(
-    "State_Authenticate",
-    {
-      "onentry" :
-        function(fsm, event)
-        {
-          // Retrieve the login window object
-          var win = fsm.getObject("login_window");
-
-          // Clear the password field
-          win.password.setValue("");
-
-          // If there's no value selected for domain...
-          if (win.domain.getValue() == null)
-          {
-            // ... then select the first value
-            win.domain.setSelected(win.domain.getList().getFirstChild());
-          }
-
-          // Retrieve the current RPC request
-          var rpcRequest = _this.getCurrentRpcRequest();
-
-          // Did we just return from an RPC request and was it a login request?
-          if (fsm.getPreviousState() == "State_AwaitRpcResult" &&
-              rpcRequest.service == "samba.system" &&
-              rpcRequest.params.length > 1 &&
-              rpcRequest.params[1] == "login")
-          {
-            // Yup.  Display the result.  Pop the old request off the stack
-            var loginRequest = _this.popRpcRequest();
-
-            // Retrieve the result
-            var result = loginRequest.getUserData("result");
-
-            // Did we succeed?
-            if (result.type == "failed")
-            {
-              // Nope.  Just reset the caption, and remain in this state.
-              win.setCaption("Login Failed.  Try again.");
-            }
-            else
-            {
-              // Login was successful.  Generate an event that will transition
-              // us back to the AwaitRpcResult state to again await the result
-              // of the original RPC request.
-              win.dispatchEvent(new qx.event.type.Event("complete"), true);
-
-              // Reissue the original request.  (We already popped the login
-              // request off the stack, so the current request is the original
-              // one.)
-              var origRequest = _this.getCurrentRpcRequest();
-              
-              // Retrieve the RPC object */
-              var rpc = fsm.getObject("swat.main.rpc");
-
-              // Set the service name
-              rpc.setServiceName(origRequest.service);
-
-              // Reissue the request
-              origRequest.request =
-                qx.io.remote.Rpc.prototype.callAsyncListeners.apply(
-                  rpc,
-                  origRequest.params);
-
-              // Clear the password field, for good measure
-              win.password.setValue("");
-
-              // Close the login window
-              win.close();
-            }
-
-            // Dispose of the login request
-            loginRequest.request.dispose();
-            loginRequest.request = null;
-          }
-        },
-
-      "events" :
-      {
-        "execute"  :
-        {
-          "login_button" :
-            "Transition_Authenticate_to_AwaitRpcResult_via_button_login"
-        },
-
-        "complete"  :
-        {
-          "login_window" :
-            "Transition_Authenticate_to_AwaitRpcResult_via_complete"
-        }
-      }
-    });
-  fsm.addState(state);
-
-  /*
-   * Transition: Authenticate to AwaitRpcResult
-   *
-   * Cause: "execute" on login_button
-   */
-  var trans = new qx.util.fsm.Transition(
-    "Transition_Authenticate_to_AwaitRpcResult_via_button_login",
-    {
-      "nextState" :
-        "State_AwaitRpcResult",
-
-      "ontransition" :
-        function(fsm, event)
-        {
-          // Retrieve the login window object
-          var win = fsm.getObject("login_window");
-
-          // Issue a Login call
-          _this.callRpc(fsm,
-                        "samba.system",
-                        "login",
-                        [
-                          win.userName.getValue(),
-                          win.password.getValue(),
-                          win.domain.getValue()
-                        ]);
-        }
-    });
-  state.addTransition(trans);
-
-  /*
-   * Transition: Authenticate to AwaitRpcResult
-   *
-   * Cause: "complete" on login_window
-   *
-   * We've already re-issued the original request, so we have nothing to do
-   * here but transition back to the AwaitRpcResult state to again await the
-   * result of the original request.
-   */
-  var trans = new qx.util.fsm.Transition(
-    "Transition_Authenticate_to_AwaitRpcResult_via_complete",
-    {
-      "nextState" :
-        "State_AwaitRpcResult"
-    });
-  state.addTransition(trans);
-};
-
-
-/**
- * Issue a remote procedure call.
- *
- * @param fsm {qx.util.fsm.FiniteStateMachine}
- *   The finite state machine issuing this remote procedure call.
- *
- * @param service {String}
- *   The name of the remote service which provides the specified method.
- *
- * @param method {String}
- *   The name of the method within the specified service.
- *
- * @param params {Array}
- *   The parameters to be passed to the specified method.
- *
- * @return {Object}
- *   The request object for the just-issued RPC request.
- */
-qx.Proto.callRpc = function(fsm, service, method, params)
-{
-  // Create an object to hold a copy of the parameters.  (We need a
-  // qx.core.Object() to be able to store this in the finite state machine.)
-  var rpcRequest = new qx.core.Object();
-
-  // Save the service name
-  rpcRequest.service = service;
-
-  // Copy the parameters; we'll prefix our copy with additional params
-  rpcRequest.params = params.slice(0);
-
-  // Prepend the method
-  rpcRequest.params.unshift(method);
-
-  // Prepend the flag indicating to coalesce failure events
-  rpcRequest.params.unshift(true);
-
-  // Retrieve the RPC object */
-  var rpc = fsm.getObject("swat.main.rpc");
-
-  // Set the service name
-  rpc.setServiceName(rpcRequest.service);
-
-  // Issue the request
-  rpcRequest.request =
-    qx.io.remote.Rpc.prototype.callAsyncListeners.apply(rpc,
-                                                        rpcRequest.params);
-
-  // Make the rpc request object available to the AwaitRpcResult state
-  this.pushRpcRequest(rpcRequest);
-
-  // Give 'em what they came for
-  return rpcRequest;
-};
-
-
-/**
- * Push an RPC request onto the request stack.
- *
- * @param request {Object}
- *   The just-issued rpc request object
- */
-qx.Proto.pushRpcRequest = function(rpcRequest)
-{
-  this._requests.push(rpcRequest);
-};
-
-
-/**
- * Retrieve the most recent RPC request from the request stack and pop the
- * stack.
- *
- * @return {Object}
- *   The rpc request object from the top of the request stack
- */
-qx.Proto.popRpcRequest = function()
-{
-  if (this._requests.length == 0)
-  {
-    throw new Error("Attempt to pop an RPC request when list is empty.");
-  }
-
-  var rpcRequest = this._requests.pop();
-  return rpcRequest;
-};
-
-
-/**
- * Retrieve the most recent RPC request.
- *
- * @return {Object}
- *   The rpc request object at the top of the request stack
- */
-qx.Proto.getCurrentRpcRequest = function()
-{
-  if (this._requests.length == 0)
-  {
-    throw new Error("Attempt to retrieve an RPC request when list is empty.");
-  }
-
-  return this._requests[this._requests.length - 1];
-};
-
-
-/**
- * JSON-RPC error origins
- */
-qx.Class.JsonRpc_Origin =
-{
-  Server              : 1,
-  Application         : 2,
-  Transport           : 3,
-  Client              : 4
-};
-
-
-/**
- * JSON-RPC Errors for origin == Server
- */
-qx.Class.JsonRpc_ServerError =
-{
-  /**
-   * Error code, value 0: Unknown Error
-   *
-   * The default error code, used only when no specific error code is passed
-   * to the JsonRpcError constructor.  This code should generally not be used.
-   */
-  Unknown               : 0,
-
-  /**
-   * Error code, value 1: Illegal Service
-   *
-   * The service name contains illegal characters or is otherwise deemed
-   * unacceptable to the JSON-RPC server.
-   */
-  IllegalService        : 1,
-
-  /**
-   * Error code, value 2: Service Not Found
-   *
-   * The requested service does not exist at the JSON-RPC server.
-   */
-  ServiceNotFound       : 2,
-
-  /**
-   * Error code, value 3: Class Not Found
-   *
-   * If the JSON-RPC server divides service methods into subsets (classes),
-   * this indicates that the specified class was not found.  This is slightly
-   * more detailed than "Method Not Found", but that error would always also
-   * be legal (and true) whenever this one is returned. (Not used in this
-   * implementation)
-   */
-  ClassNotFound         : 3, // not used in this implementation
-
-  /**
-   * Error code, value 4: Method Not Found
-   *
-   * The method specified in the request is not found in the requested
-   * service.
-   */
-  MethodNotFound        : 4,
-
-  /*
-   * Error code, value 5: Parameter Mismatch
-   *
-   * If a method discovers that the parameters (arguments) provided to it do
-   * not match the requisite types for the method's parameters, it should
-   * return this error code to indicate so to the caller.
-   *
-   * This error is also used to indicate an illegal parameter value, in server
-   * scripts.
-   */
-  ParameterMismatch     : 5,
-
-  /**
-   * Error code, value 6: Permission Denied
-   *
-   * A JSON-RPC service provider can require authentication, and that
-   * authentication can be implemented such the method takes authentication
-   * parameters, or such that a method or class of methods requires prior
-   * authentication.  If the caller has not properly authenticated to use the
-   * requested method, this error code is returned.
-   */
-  PermissionDenied      : 6,
-
-  /*** Errors generated by this server which are not qooxdoo-standard ***/
-
-  /*
-   * Error code, value 1000: Unexpected Output
-   *
-   * The called method illegally generated output to the browser, which would
-   * have preceeded the JSON-RPC data.
-   */
-  UnexpectedOutput      : 1000,
-
-  /*
-   * Error code, value 1001: Resource Error
-   *
-   * Too many resources were requested, a system limitation on the total number
-   * of resources has been reached, or a resource or resource id was misused.
-   */
-  ResourceError         : 1001,
-
-  /*
-   * Error code, value 1002: Not Logged In
-   *
-   * The user has logged out and must re-authenticate, or this is a brand new
-   * session and the user must log in.
-   *
-   */
-  NotLoggedIn           : 1002,
-
-  /*
-   * Error code, value 1003: Session Expired
-   *
-   * The session has expired and the user must re-authenticate.
-   *
-   */
-  SessionExpired        : 1003,
-
-  /*
-   * Error code, value 1004: Login Failed
-   *
-   * An attempt to log in failed.
-   *
-   */
-  LoginFailed           : 1004
-};
diff --git a/webapps/swat/source/class/swat/main/Authenticate.js b/webapps/swat/source/class/swat/main/Authenticate.js
deleted file mode 100644 (file)
index 83e20ce..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Copyright:
- *   (C) 2007 by Derrell Lipman
- *       All rights reserved
- *
- * License:
- *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
- */
-
-/**
- * Swat authentication window class
- */
-qx.OO.defineClass("swat.main.Authenticate", qx.ui.window.Window,
-function()
-{
-  var o;
-
-  qx.ui.window.Window.call(this);
-
-  var addCaptionedWidget = function(caption, dest, addWidget)
-  {
-    // Add a row to the destination grid
-    dest.addRow();
-    var row = dest.getRowCount() - 1;
-    dest.setRowHeight(row, 24);
-
-    // Add the caption
-    var o = new qx.ui.basic.Label(caption);
-    dest.add(o, 0, row);
-
-    // Add the widget
-    o = addWidget();
-    o.setHeight(24);
-    dest.add(o, 1, row);
-
-    // Give 'em the varying data label
-    return o;
-  };
-
-
-  // Set characteristics of this window
-  this.set({
-             width         : 380,
-             height        : 200,
-             modal         : true,
-             centered      : true,
-             showClose     : false,
-             showMaximize  : false,
-             showMinimize  : false,
-             showStatusbar : false,
-             allowClose    : false,
-             allowMaximize : false,
-             allowMinimize : false,
-             resizeable    : false,
-             moveable      : false,
-             zIndex        : 10000
-           });
-
-
-  // Create a grid layout
-  var grid = new qx.ui.layout.GridLayout();
-  grid.setLocation(14, 14);
-  grid.setDimension("90%", "90%");
-  grid.setVerticalSpacing(14);
-  grid.setPadding(14, 14);
-  grid.setRowCount(0);
-  grid.setColumnCount(2);
-  grid.setColumnWidth(0, 100);
-  grid.setColumnWidth(1, 200);
-
-
-  // Add an input box for the user name
-  this.userName = addCaptionedWidget("User Name", grid,
-                                     function()
-                                     {
-                                       return new qx.ui.form.TextField();
-                                     });
-
-  // Add an input box for the password
-  this.password = addCaptionedWidget("Password", grid,
-                                     function()
-                                     {
-                                       return new qx.ui.form.PasswordField();
-                                     });
-
-  // Add an input box for the password
-  this.domain = addCaptionedWidget("Domain", grid,
-                                   function()
-                                   {
-                                     // Create a combo box for for the domain
-                                     var combo = new qx.ui.form.ComboBox();
-                                     combo.setEditable(false);
-                                     return combo;
-                                   });
-
-  // Add a login button
-  this.login = addCaptionedWidget("", grid,
-                                  function()
-                                  {
-                                    return new qx.ui.form.Button("Login");
-                                  });
-
-  // Add the grid to the window
-  this.add(grid);
-
-  // Add this window to the document
-  this.addToDocument();
-});
-
-
-qx.Proto.addToFsm = function(fsm)
-{
-  // Have we already been here for this fsm?
-  if (fsm.getObject("login_window"))
-  {
-    // Yup.  Everything's already done.  See ya!
-    return;
-  }
-
-  // Save the login button since we receive events on it
-  fsm.addObject("login_button", this.login);
-
-  // We want to receive "execute" events on this button
-  this.login.addEventListener("execute", fsm.eventListener, fsm);
-
-  // Save the window object
-  fsm.addObject("login_window", this);
-
-  // We want to receive "complete" events on this window (which we generate)
-  this.addEventListener("complete", fsm.eventListener, fsm);
-};
-
-
-qx.Proto.setInfo = function(info)
-{
-  this.debug(info);
-
-  // Remove everythingn from the domain list
-  this.domain.removeAll();
-
-  // Add the available domains
-  for (var i = 0; i < info.length; i++)
-  {
-    var item = new qx.ui.form.ListItem(info[i]);
-    this.domain.add(item);
-  }
-};
-
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/swat/source/class/swat/main/Gui.js b/webapps/swat/source/class/swat/main/Gui.js
deleted file mode 100644 (file)
index 142b8dc..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-/*
- * Copyright:
- *   (C) 2006 by Derrell Lipman
- *       All rights reserved
- *
- * License:
- *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
- */
-
-/**
- * The graphical user interface for the main menu
- */
-qx.OO.defineClass("swat.main.Gui");
-
-qx.Class.currentCanvas = null;
-
-qx.Class.buildGui = function(moduleList)
-{
-  var o;
-
-  // Header colors
-  var topColor = new qx.renderer.color.Color("#ffff64");
-  var bottomColor = new qx.renderer.color.Color("#3878cd");
-
-  // Create the yellow bar at the top
-  o = new qx.ui.basic.Terminator();
-  o.set({
-            top: 0,
-            left: 0,
-            right: 0,
-            height: 40
-        });
-  o.setBackgroundColor(topColor);
-  o.addToDocument();
-
-  // Create the tag line
-  var title = new qx.ui.basic.Label("Samba Web Administration Tool");
-  title.set({
-            top: 12,
-            left: 20
-        });
-  title.setBackgroundColor(topColor);
-  title.setFont("bold");
-  title.addToDocument();
-
-  // Create a small black separator between the yellow and blue bars
-  o = new qx.ui.basic.Terminator();
-  o.set({
-            top: 40,
-            left: 0,
-            right: 0,
-            height: 1
-        });
-  o.setBackgroundColor("black");
-  o.addToDocument();
-
-  // Create the yellow bar at the top
-  o = new qx.ui.basic.Terminator();
-  o.set({
-            top: 41,
-            left: 0,
-            right: 0,
-            height: 60
-        });
-  o.setBackgroundColor(bottomColor);
-  o.addToDocument();
-
-  // Create the "Samba" image
-  o = new qx.ui.basic.Image("../../../images/logo.png");
-  o.set({
-            top: 16,
-            right: 20
-        });
-  o.setZIndex(100000000);
-  o.addToDocument();
-
-  // Create a menu bar
-  var menubar = new qx.ui.toolbar.ToolBar();
-  menubar.set({
-                  top: 100,
-                  height: 20,
-                  left: 0,
-                  right: 0
-              });
-  menubar.addToDocument();
-      
-  // Create a menu item for selecting the requested module 
-  var menubutton = new qx.ui.toolbar.MenuButton("Modules");
-  menubar.add(menubutton);
-
-  // Create a Command to be executed upon any menu selection
-  var command = new qx.client.Command();
-  //  command.addEventListener("execute", fsm.eventListener, fsm);
-      
-  // Create a radio manager for selecting one of the modules
-  var moduleManager = new qx.manager.selection.RadioManager("main.gui.Module");
-
-  // Create a menu containing the subitems
-  var menu = new qx.ui.menu.Menu();
-
-  // We'll also track the current module's canvas in the modules object
-  swat.main.Gui.currentCanvas = null;
-
-  // For each menu item...
-  for (moduleName in moduleList)
-  {
-    // create a radio button menu item
-    o = new qx.ui.menu.RadioButton(moduleName, command, false);
-
-    // Associate this button menu item with the module list
-    o.moduleName = moduleName;
-
-    // Associate the menu item with the radio manager
-    moduleManager.add(o);
-
-    // Create this module's canvas
-    var canvas = new qx.ui.layout.CanvasLayout();
-    canvas.set({
-                   top: 120,
-                   bottom: 0,
-                   left: 0,
-                   right: 0
-               });
-    canvas.setBackgroundColor("white");
-    canvas.setDisplay(false); // initially not displayed
-
-    var fsm = moduleList[moduleName].fsm;
-    fsm.addObject("swat.main.canvas", canvas);
-    canvas.addEventListener("appear", fsm.eventListener, fsm);
-    canvas.addEventListener("disappear", fsm.eventListener, fsm);
-
-    // Save the canvas
-    moduleList[moduleName].canvas = canvas;
-
-    // Add the canvas to the document
-    canvas.addToDocument();
-
-    // When a Module menu item is selected:
-    o.addEventListener("changeChecked", function(e)
-                       {
-                         var canvas = moduleList[this.moduleName].canvas;
-
-                         // If there's a current canvas, ...
-                         if (swat.main.Gui.currentCanvas)
-                         {
-                           // ... then remove display of it.
-                           swat.main.Gui.currentCanvas.setDisplay(false);
-                           
-                           // Dispatch an event on the canvas to notify old
-                           // module it's coming into disuse.
-                           canvas.createDispatchEvent("disappear");
-                         }
-
-                         // If we are being selected...
-                         if (e.getData())
-                         {
-                           // then display our canvas
-                           var canvas = moduleList[this.moduleName].canvas;
-                           canvas.setDisplay(true);
-
-                           // Track the current canvas (now ours)
-                           swat.main.Gui.currentCanvas = canvas;
-
-                           // Dispatch an event on the canvas to notify new
-                           // module it's coming into use.
-                           canvas.createDispatchEvent("appear");
-
-                           // Set the application title
-                           title.setHtml("<span>" +
-                                         "Samba Web Administration Tool" +
-                                         " &raquo; " +
-                                         this.moduleName +
-                                         "</span>");
-                           
-                           // Set the browser title as well
-                           document.title =
-                             "Swat: " + this.moduleName;
-                         }
-                       });
-
-    // Add the menu item to the menu
-    menu.add(o);
-  }
-
-  // We've built a complete menu.  Add it to the document.
-  menu.addToDocument();
-
-  // Specify that the menu is to be displayed upon menu button selection
-  menubutton.setMenu(menu);
-
-  // Create a menu item for selecting debug options
-  var menubutton = new qx.ui.toolbar.MenuButton("Debug");
-  menubar.add(menubutton);
-
-  // Create a menu containing the subitems
-  var menu = new qx.ui.menu.Menu;
-  var menu_01 = new qx.ui.menu.Button("Show Debug Window", null, command);
-  menu.add(menu_01);
-  menu.addToDocument();
-
-  // Specify that the menu is to be displayed upon menu button selection
-  menubutton.setMenu(menu);
-
-};
diff --git a/webapps/swat/source/class/swat/main/Main.js b/webapps/swat/source/class/swat/main/Main.js
deleted file mode 100644 (file)
index 9e65896..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright:
- *   (C) 2006 by Derrell Lipman
- *       All rights reserved
- *
- * License:
- *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
- */
-
-/*
-#require(swat.main.Module)
-#require(swat.main.AbstractModule)
-#require(swat.main.Authenticate);
-*/
-
-/**
- * Swat main menu
- */
-qx.OO.defineClass("swat.main.Main", qx.component.AbstractApplication,
-function()
-{
-  qx.component.AbstractApplication.call(this);
-});
-
-/*
- * Register our supported modules.  The order listed here is the order they
- * will appear in the Modules menu.
- */
-
-//#require(swat.module.statistics.Statistics)
-new swat.main.Module("Status and Statistics",
-                     swat.module.statistics.Statistics);
-
-//#require(swat.module.ldbbrowse.LdbBrowse)
-new swat.main.Module("LDB Browser",
-                     swat.module.ldbbrowse.LdbBrowse);
-
-//#require(swat.module.netmgr.NetManager)
-new swat.main.Module("Net Manager",
-                     swat.module.netmgr.NetManager);
-
-//#require(swat.module.documentation.Documentation)
-//#require(apiviewer.Viewer)
-new swat.main.Module("API Documentation",
-                     swat.module.documentation.Documentation);
-
-
-/*
----------------------------------------------------------------------------
-  METHODS
----------------------------------------------------------------------------
-*/
-
-qx.Proto.initialize = function()
-{
-  // Set the resource URI
-  qx.Settings.setCustom("resourceUri", "./resource");
-
-  // Turn on JSON debugging for the time being
-  qx.Settings.setCustomOfClass("qx.io.Json", "enableDebug", true);
-
-  // For each module...
-  var moduleList = swat.main.Module.getList();
-  for (moduleName in moduleList)
-  {
-    // ... call the module's buildInitialFsm() function
-    var module = moduleList[moduleName]["clazz"].getInstance();
-    module.buildInitialFsm(moduleList[moduleName]);
-  }
-};
-
-
-qx.Proto.main = function()
-{
-  var moduleList = swat.main.Module.getList();
-
-  // Initialize the gui for the main menu
-  swat.main.Gui.buildGui(moduleList);
-
-  // Similarly, now that we have a canvas for each module, ...
-  for (moduleName in moduleList)
-  {
-    // ... call the module's buildInitialGui() function
-    var module = moduleList[moduleName]["clazz"].getInstance();
-    module.buildInitialGui(moduleList[moduleName]);
-  }
-};
-
-
-qx.Proto.finalize = function()
-{
-  // Call each module's finalization function
-  var moduleList = swat.main.Module.getList();
-  for (moduleName in moduleList)
-  {
-    var module = moduleList[moduleName]["clazz"].getInstance();
-    module.finalize(moduleList[moduleName]);
-  }
-};
-
diff --git a/webapps/swat/source/class/swat/main/Module.js b/webapps/swat/source/class/swat/main/Module.js
deleted file mode 100644 (file)
index 160e6f6..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright:
- *   (C) 2006 by Derrell Lipman
- *       All rights reserved
- *
- * License:
- *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
- */
-
-/**
- * This class defines a module descriptor (the registration of a module) and
- * maintains the list of modules that have been registered.
- *
- * A Module object contains the following public properties which may be
- * accessed directly by name:
- *
- *   fsm -
- *     The finite state machine for this module.
- *
- *   canvas -
- *     The canvas on which to create the gui for this module
- *
- *   name -
- *     The name of this module
- *
- *   class -
- *     The class for this module
- *
- * @param moduleName {String}
- *   The name of the module being registered.  This is the name that will
- *   appear in the Modules menu.
- *
- * @param clazz {clazz}
- *   The class which contains the module implementation.  That class must
- *   extend swat.main.AbstractModule and implement a singleton interface
- *   that provides a public method called initialAppear() which takes this
- *   Module object as a parameter, and creates the finite state machine for
- *   the module (if applicable) and builds the graphical user interface for
- *   the module.
- */
-qx.OO.defineClass("swat.main.Module", qx.core.Object,
-function(moduleName, clazz)
-{
-  qx.core.Object.call(this);
-
-  // Initialize commonly-used properties of a module
-  this.canvas = null;
-  this.fsm = null;
-  this.gui = null;
-
-  // Save the module name
-  this.name = moduleName;
-
-  // Save this class name
-  this.clazz = clazz;
-
-  // Add this new module to the module list.
-  swat.main.Module._list[moduleName] = this;
-});
-
-
-/**
- * Return the list of modules
- */
-qx.Class.getList = function()
-{
-  return swat.main.Module._list;
-};
-
-
-/**
- * The list of modules which have been registered.
- */
-qx.Class._list = { };
diff --git a/webapps/swat/source/class/swat/module/documentation/Documentation.js b/webapps/swat/source/class/swat/module/documentation/Documentation.js
deleted file mode 100644 (file)
index 696a7f0..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright:
- *   (C) 2006 by Derrell Lipman
- *       All rights reserved
- *
- * License:
- *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
- */
-
-/*
-#embed(apiviewer.css/*)
-#embed(apiviewer.image/*)
-*/
-
-
-/**
- * Swat statistics class
- */
-qx.OO.defineClass("swat.module.documentation.Documentation",
-                  swat.main.AbstractModule,
-function()
-{
-  swat.main.AbstractModule.call(this);
-});
-
-
-/**
- * Load the documentation data
- *
- * This function is called the first time a module is actually selected to
- * appear.  Creation of the module's GUI has been deferred until it was
- * actually needed (now), so we need to create it.
- *
- * @param module {swat.main.Module}
- *   The module descriptor for the module.
- */
-qx.Proto.initialAppear = function(module)
-{
-  // Define alias for custom resource path
-  var am = qx.manager.object.AliasManager.getInstance();
-  am.add("api", qx.Settings.getValueOfClass("apiviewer", "resourceUri"));
-
-  // Include CSS file
-  qx.html.StyleSheet.includeFile(am.resolvePath("api/css/apiviewer.css"));
-  am.add("apiviewer", "./resource/image");
-
-  // avoid redundant naming by api viewer
-  qx.Settings.setCustomOfClass("apiviewer.Viewer", "title", ""); 
-
-  var viewer = new apiviewer.Viewer();
-  module.canvas.add(viewer);
-  viewer.load("script/data.js");
-
-  // Replace the existing (temporary) finite state machine with a null one
-  swat.module.documentation.Fsm.getInstance().buildFsm(module);
-};
-
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/swat/source/class/swat/module/documentation/Fsm.js b/webapps/swat/source/class/swat/module/documentation/Fsm.js
deleted file mode 100644 (file)
index b58f57c..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright:
- *   (C) 2006 by Derrell Lipman
- *       All rights reserved
- *
- * License:
- *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
- */
-
-/**
- * Swat statistics class finite state machine
- */
-qx.OO.defineClass("swat.module.documentation.Fsm",
-                  swat.main.AbstractModuleFsm,
-function()
-{
-  swat.main.AbstractModuleFsm.call(this);
-});
-
-
-qx.Proto.buildFsm = function(module)
-{
-  var fsm = module.fsm;
-
-  /*
-   * State: Idle
-   *
-   *   This is a null state to replace the one that loads the API viewer.  The
-   *   API viewer does not use the finite state machine.
-   */
-  var state = new qx.util.fsm.State(
-    "State_Idle",
-    {
-      "events" :
-        {
-          // We need at least one event listed due to FSM requirements
-          "appear" :
-          {
-            "swat.main.canvas" :
-              "Transition_Idle_to_Idle_via_appear"
-          }
-        }
-    });
-
-  // Replace the initial Idle state with this one
-  fsm.replaceState(state, true);
-
-  /*
-   * Transition: Idle to Idle
-   *
-   * Cause: "appear" on canvas
-   *
-   * Action:
-   *  None.
-   */
-  var trans = new qx.util.fsm.Transition(
-    "Transition_Idle_to_Idle_via_appear",
-    {
-      "nextState" :
-        "State_Idle"
-    });
-  state.addTransition(trans);
-
-};
-
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/swat/source/class/swat/module/ldbbrowse/Fsm.js b/webapps/swat/source/class/swat/module/ldbbrowse/Fsm.js
deleted file mode 100644 (file)
index 02aada9..0000000
+++ /dev/null
@@ -1,516 +0,0 @@
-/*
- * Copyright:
- *   (C) 2006 by Derrell Lipman
- *       All rights reserved
- *
- * License:
- *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
- */
-
-/**
- * Swat LDB Browser class finite state machine
- */
-qx.OO.defineClass("swat.module.ldbbrowse.Fsm", swat.main.AbstractModuleFsm,
-function()
-{
-  swat.main.AbstractModuleFsm.call(this);
-});
-
-
-qx.Proto.buildFsm = function(module)
-{
-  var fsm = module.fsm;
-  var _this = this;
-
-  /*
-   * State: Idle
-   *
-   * Actions upon entry
-   *   - if returning from RPC, display the result
-   *
-   * Transition on:
-   *   "execute" on search button
-   *   "treeopenwhileempty" on tree
-   *   "changeselection" on tree
-   */
-  var state = new qx.util.fsm.State(
-    "State_Idle",
-    {
-      "onentry" :
-        function(fsm, event)
-        {
-          // Did we just return from an RPC request?
-          if (fsm.getPreviousState() == "State_AwaitRpcResult")
-          {
-            // Yup.  Display the result.  We need to get the request object
-            var rpcRequest = _this.popRpcRequest();
-
-            // Display the result
-            var gui = swat.module.ldbbrowse.Gui.getInstance();
-
-            // Did we get a Resource Not Found error?  We'll get this after a
-            // session timeout, because the request is retried but can't
-            // succeed because the database has been closed by the session
-            // timing out.
-            var result = rpcRequest.getUserData("result");
-            var origins = swat.main.AbstractModuleFsm.JsonRpc_Origin;
-            var serverErrors = swat.main.AbstractModuleFsm.JsonRpc_ServerError;
-            if (result.type == "failed" &&
-                result.data.origin == origins.Server &&
-                result.data.code == serverErrors.ResourceError)
-            {
-              // Yup.  Re-open the database
-              var dbName = fsm.getObject("dbName");
-              dbName.dispatchEvent(new qx.event.type.Event("changeSelected"),
-                                   true);
-            }
-            else
-            {
-              // Otherwise, display the result
-              gui.displayData(module, rpcRequest);
-            }
-
-            // Dispose of the request
-            rpcRequest.request.dispose();
-            rpcRequest.request = null;
-          }
-        },
-
-      "events" :
-        {
-          // If the search button is activated, issue a search request
-          "execute" :
-          {
-            "search" :
-              "Transition_Idle_to_AwaitRpcResult_via_search",
-
-            "commit" :
-              "Transition_Idle_to_AwaitRpcResult_via_commit",
-
-            "delete" :
-              "Transition_Idle_to_AwaitRpcResult_via_delete"
-          },
-
-          // If a previously unexpanded tree node is expanded, issue a request
-          // to retrieve its contents.
-          "treeOpenWhileEmpty":
-          {
-            "tree" :
-              "Transition_Idle_to_AwaitRpcResult_via_tree_open"
-          },
-
-          // If the selection changes, issue a request to retrieve contents to
-          // populate the attribute/value table.
-          "changeSelection":
-          {
-            "tree" :
-              "Transition_Idle_to_AwaitRpcResult_via_tree_selection_changed"
-
-          },
-
-         // If another database is selected, try to open it and refresh
-          // the tree
-          "changeSelected":
-          {
-            "dbName":
-              "Transition_Idle_to_AwaitRpcResult_via_db_changed"
-          }
-        }
-    });
-
-  // Replace the initial Idle state with this one
-  fsm.replaceState(state, true);
-  
-  /*
-   * Transition: Idle to AwaitRpcResult
-   *
-   * Cause: "execute" on search button
-   *
-   * Action:
-   *  Issue a search request
-   */
-  var trans = new qx.util.fsm.Transition(
-    "Transition_Idle_to_AwaitRpcResult_via_search",
-    {
-      "nextState" :
-        "State_AwaitRpcResult",
-
-      "ontransition" :
-        function(fsm, event)
-        {
-          // Get our module descriptor
-          var module = fsm.getObject("swat.main.module");
-
-          // Retrieve the database handle
-          var dbHandle = module.dbHandle;
-
-          // Retrieve the search expression
-          var searchExpr = fsm.getObject("searchExpr").getValue();
-
-          // Retrieve the base DN
-          var baseDN = fsm.getObject("baseDN").getValue();
-
-          // Retrieve the selected scope
-          var scope = fsm.getObject("scope").getValue();
-
-          // We want all attributes
-          var attributes = [ "*" ];
-
-          // Issue a Search call
-          var request = _this.callRpc(fsm,
-                                      "samba.ldb",
-                                      "search",
-                                      [
-                                       dbHandle,
-                                       searchExpr,
-                                       baseDN,
-                                       scope,
-                                       attributes
-                                      ]);
-
-          // When we get the result, we'll need to know what type of request
-          // we made.
-          request.setUserData("requestType", "search");
-        }
-    });
-  state.addTransition(trans);
-
-  /*
-   * Transition: Idle to AwaitRpcResult
-   *
-   * Cause: "execute" on OK button
-   *
-   * Action:
-   *  Commit modification or add new record to ldb
-   */
-  var trans = new qx.util.fsm.Transition(
-    "Transition_Idle_to_AwaitRpcResult_via_commit",
-    {
-      "nextState" :
-        "State_AwaitRpcResult",
-
-      "ontransition" :
-        function(fsm, event)
-        {
-          // Get our module descriptor
-          var module = fsm.getObject("swat.main.module");
-
-          // Retrieve the database handle
-          var dbHandle = module.dbHandle;
-
-          // Retrieve the ldbmod object
-          var ldbmod = fsm.getObject("ldbmod");
-
-          var ldif = ldbmod.getLdif();
-
-          // Issue a Search call
-          var request = _this.callRpc(fsm,
-                                      "samba.ldb",
-                                      ldbmod.getOpType(),
-                                     [ dbHandle, ldif ]);
-
-          // When we get the result, we'll need to know what type of request
-          // we made.
-          request.setUserData("requestType", ldbmod.getOpType());
-        }
-    });
-  state.addTransition(trans);
-
-  /*
-   * Transition: Idle to AwaitRpcResult
-   *
-   * Cause: "execute" on OK button
-   *
-   * Action:
-   *  Delete a record from ldb
-   */
-  var trans = new qx.util.fsm.Transition(
-    "Transition_Idle_to_AwaitRpcResult_via_delete",
-    {
-      "nextState" :
-        "State_AwaitRpcResult",
-
-      "ontransition" :
-        function(fsm, event)
-        {
-          // Get our module descriptor
-          var module = fsm.getObject("swat.main.module");
-
-          // Retrieve the database handle
-          var dbHandle = module.dbHandle;
-
-          // Retrieve the ldbmod object
-          var ldbmod = fsm.getObject("ldbmod");
-
-          // Issue a Search call
-          var request = _this.callRpc(fsm,
-                                      "samba.ldb",
-                                      "del",
-                                     [ dbHandle, ldbmod.getBase() ]);
-
-          // When we get the result, we'll need to know what type of request
-          // we made.
-          request.setUserData("requestType", "delete");
-        }
-    });
-  state.addTransition(trans);
-
-  /*
-   * Transition: Idle to AwaitRpcResult
-   *
-   * Cause: "treeOpenWhileEmpty" on tree
-   *
-   * Action:
-   *  Issue a search request
-   */
-  var trans = new qx.util.fsm.Transition(
-    "Transition_Idle_to_AwaitRpcResult_via_tree_open",
-    {
-      "nextState" :
-        "State_AwaitRpcResult",
-
-      "ontransition" :
-        function(fsm, event)
-        {
-          // Get the tree object
-          var tree = fsm.getObject("tree");
-
-          // Get the node on which the event occurred
-          var node = event.getData();
-
-          // Obtain the full hierarchy for this node
-          var hierarchy = tree.getHierarchy(node.nodeId);
-
-          tree.debug("Requesting children for node id " + node.nodeId + ": " +
-                     hierarchy.join("/") + "...");
-
-          // Strip off the root node
-          hierarchy.shift();
-
-          // Determine the children.  Differs depending on root or otherwise
-          var attributes;
-          var scope;
-          var baseDN;
-            
-          // If parent is the root...
-          if (node.parentNodeId == 0)
-          {
-            // ... then we want the defaultNamingContext, ...
-            attributes = [ "defaultNamingContext", "namingContexts" ];
-
-            // ... and we want only base scope
-            scope = "base";
-
-            // ... and an empty base DN
-            baseDN = "";
-          }
-          else
-          {
-            // otherwise, retrieve the DN,
-            attributes = [ "dn" ];
-
-            // ... and we want one level of scope
-            scope = "one";
-
-            // ... and base DN is the parent
-            baseDN = hierarchy.reverse().join(",");
-          }
-
-          // Build the search expression
-          var searchExpr = "";
-
-          // Get our module descriptor
-          var module = fsm.getObject("swat.main.module");
-
-          // Retrieve the database handle
-          var dbHandle = module.dbHandle;
-
-          // Issue a Get Statistics call
-          var request = _this.callRpc(fsm,
-                                      "samba.ldb",
-                                      "search",
-                                      [
-                                       dbHandle,
-                                       searchExpr,
-                                       baseDN,
-                                       scope,
-                                       attributes
-                                      ]);
-
-          // When we get the result, we'll need to know what type of request
-          // we made.
-          request.setUserData("requestType", "tree_open");
-
-          // We'll also need some of our parameters
-          request.setUserData("parentNode", node);
-          request.setUserData("attributes", attributes);
-        }
-    });
-  state.addTransition(trans);
-
-  /*
-   * Transition: Idle to AwaitRpcResult
-   *
-   * Cause: "changeSelection" on tree
-   *
-   * Action:
-   *  Issue a search request
-   */
-  var trans = new qx.util.fsm.Transition(
-    "Transition_Idle_to_AwaitRpcResult_via_tree_selection_changed",
-    {
-      "nextState" :
-        "State_AwaitRpcResult",
-
-      "predicate" :
-        function(fsm, event)
-        {
-          // Get the tree object
-          var tree = fsm.getObject("tree");
-
-          // Get the list of selected nodes.  We're in single-selection mode,
-          // so there will be only one of them.
-          var nodes = event.getData();
-          var node = nodes[0];
-
-          var hierarchy = tree.getHierarchy(node.nodeId);
-
-          // Strip off the root node
-          hierarchy.shift();
-
-          // If element is the root...
-          if (node.parentNodeId == 0)
-          {
-            // ... then just clear out the attribute/value table.
-            var tableModel = fsm.getObject("tableModel:browse");
-            tableModel.setData([]);
-            return null;        // don't search additional transitions
-          }
-
-          return true;
-        },
-
-      "ontransition" :
-        function(fsm, event)
-        {
-          // Get the tree object
-          var tree = fsm.getObject("tree");
-
-          // Get the list of selected nodes.  We're in single-selection mode,
-          // so there will be only one of them.
-          var nodes = event.getData();
-          var node = nodes[0];
-
-          var hierarchy = tree.getHierarchy(node.nodeId);
-
-          // Strip off the root node
-          hierarchy.shift();
-
-          // Determine the children.  Differs depending on root or otherwise
-          var attributes;
-          var scope;
-          var baseDN;
-            
-          // We want all attributes
-          attributes = [ "*" ];
-
-          // We want the attributes only for the current element
-          scope = "base";
-
-          // Base DN is the current element
-          baseDN = hierarchy.reverse().join(",");
-
-          // Build the search expression
-          var searchExpr = "";
-
-          // Get our module descriptor
-          var module = fsm.getObject("swat.main.module");
-
-          // Retrieve the database handle
-          var dbHandle = module.dbHandle;
-
-          // Issue a Get Statistics call
-          var request = _this.callRpc(fsm,
-                                      "samba.ldb",
-                                      "search",
-                                      [
-                                       dbHandle,
-                                       searchExpr,
-                                       baseDN,
-                                       scope,
-                                       attributes
-                                      ]);
-
-          // When we get the result, we'll need to know what type of request
-          // we made.
-          request.setUserData("requestType", "tree_selection_changed");
-        }
-    });
-  state.addTransition(trans);
-
-  /*
-   * Transition: Idle to AwaitRpcResult
-   *
-   * Cause: "changeSelection" on dbName
-   *
-   * Action:
-   *  Issue a connect request
-   */
-  var trans = new qx.util.fsm.Transition(
-    "Transition_Idle_to_AwaitRpcResult_via_db_changed",
-    {
-      "nextState" :
-        "State_AwaitRpcResult",
-
-      "ontransition" :
-        function(fsm, event)
-        {
-          // Obtain the name of the database to be connected to
-          var dbName = fsm.getObject("dbName").getValue();
-
-          // Issue a Get Statistics call
-          var request = _this.callRpc(fsm,
-                                      "samba.ldb",
-                                      "connect",
-                                      [ dbName ]);
-
-          // When we get the result, we'll need to know what type of request
-          // we made.
-          request.setUserData("requestType", "database_name_changed");
-        }
-    });
-  state.addTransition(trans);
-
-  // Create the list of events that should be blocked while we're awaiting the
-  // results of another RPC request
-  blockedEvents =
-  {
-    // If a previously unexpanded tree node is expanded, issue a request
-    // to retrieve its contents.
-    "treeOpenWhileEmpty":
-    {
-      "tree" :
-        qx.util.fsm.FiniteStateMachine.EventHandling.BLOCKED
-    },
-
-    // If the selection changes, issue a request to retrieve contents to
-    // populate the attribute/value table.
-    "changeSelection":
-    {
-      "tree" : 
-        qx.util.fsm.FiniteStateMachine.EventHandling.BLOCKED,
-
-      "dbName":
-        qx.util.fsm.FiniteStateMachine.EventHandling.BLOCKED
-    }
-  }
-
-  // Add the AwaitRpcResult state and all of its transitions
-  this.addAwaitRpcResultState(module, blockedEvents);
-};
-
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/swat/source/class/swat/module/ldbbrowse/Gui.js b/webapps/swat/source/class/swat/module/ldbbrowse/Gui.js
deleted file mode 100644 (file)
index c901518..0000000
+++ /dev/null
@@ -1,750 +0,0 @@
-/*
- * Copyright:
- *   (C) 2006 by Derrell Lipman
- *       All rights reserved
- *
- * License:
- *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
- */
-
-/**
- * Swat LDB Browser class graphical user interface
- */
-qx.OO.defineClass("swat.module.ldbbrowse.Gui", qx.core.Object,
-function()
-{
-  qx.core.Object.call(this);
-});
-
-//qx.OO.addProperty({ name : "_table", type : "object" });
-//qx.OO.addProperty({ name : "_ldbmod", type : "object" });
-
-/**
- * Build the raw graphical user interface.
- */
-qx.Proto.buildGui = function(module)
-{
-  var o;
-  var fsm = module.fsm;
-
-  // We need a horizontal box layout for the database name
-  var hlayout = new qx.ui.layout.HorizontalBoxLayout();
-  hlayout.set({
-                  top: 20,
-                  left: 20,
-                  right: 20,
-                  height: 30
-              });
-
-  // Create a label for the database name
-  o = new qx.ui.basic.Atom("Database:");
-  o.setWidth(100);
-  o.setHorizontalChildrenAlign("right");
-
-  // Add the label to the horizontal layout
-  hlayout.add(o);
-
-  // Create a combo box for for the database name
-  o = new qx.ui.form.ComboBox();
-  o.getField().setWidth("100%");
-  o.setEditable(false);
-
-  // Add our global database name (the only option, for now)
-  var item = new qx.ui.form.ListItem(module.dbFile);
-  o.add(item);
-
-  // We want to be notified if the selection changes
-  o.addEventListener("changeSelected", fsm.eventListener, fsm);
-
-  // Save the database name object so we can react to changes
-  fsm.addObject("dbName", o);
-    
-  // Add the combo box to the horizontal layout
-  hlayout.add(o);
-
-  // Add the database name selection to the canvas
-  module.canvas.add(hlayout);
-
-  // Create and position the tabview
-  var tabView_ = new qx.ui.pageview.tabview.TabView;
-  tabView_.set({
-                   top: 60,
-                   left: 20,
-                   right: 20,
-                   bottom: 20
-               });
-
-  // Create each of the tabs
-  var tabView_Browse =
-  new qx.ui.pageview.tabview.Button("Browse");
-  var tabView_Search =
-  new qx.ui.pageview.tabview.Button("Search");
-
-  // Specify the initially-selected tab
-  tabView_Browse.setChecked(true);
-
-  // Add each of the tabs to the tabview
-  tabView_.getBar().add(tabView_Browse, tabView_Search);
-
-  // Create the pages to display when each tab is selected
-  var tabViewPage_Browse =
-  new qx.ui.pageview.tabview.Page(tabView_Browse);
-  var tabViewPage_Search =
-  new qx.ui.pageview.tabview.Page(tabView_Search);
-
-  // Build the browse page
-  this._buildPageBrowse(module, tabViewPage_Browse);
-
-  // Build the search page
-  this._buildPageSearch(module, tabViewPage_Search);
-
-  // Add the pages to the tabview
-  tabView_.getPane().add(tabViewPage_Browse, tabViewPage_Search);
-
-  // Add the tabview to our canvas
-  module.canvas.add(tabView_);
-};
-
-
-/**
- * Populate the graphical user interface with the specified data
- *
- * @param module {swat.main.Module}
- *   The module descriptor for the module.
- *
- * @result {Object}
- *   The result returned by SAMBA to our request.  We display the data
- *   provided by this result.
- */
-qx.Proto.displayData = function(module, rpcRequest)
-{
-  var gui = module.gui;
-  var fsm = module.fsm;
-  var result = rpcRequest.getUserData("result")
-  var requestType = rpcRequest.getUserData("requestType");
-
-  // Did the request fail?
-  if (result.type == "failed")
-  {
-    // Yup.  We're not going to do anything particularly elegant...
-    alert("Async(" + result.id + ") exception: " + result.data);
-    return;
-  }
-
-  // Dispatch to the appropriate handler, depending on the request type
-  switch(requestType)
-  {
-  case "search":
-    this._displaySearchResults(module, rpcRequest);
-    break;
-
-  case "modify":
-    this._displayModifyResults(module, rpcRequest);
-    break;
-
-  case "add":
-    this._displayAddResults(module, rpcRequest);
-    break;
-  case "delete":
-    this._displayDeleteResults(module, rpcRequest);
-    break;
-  case "tree_open":
-    this._displayTreeOpenResults(module, rpcRequest);
-    break;
-
-  case "tree_selection_changed":
-
-    // Always update the table, even if it is not visible
-    this._displayTreeSelectionChangedResults(module, rpcRequest);
-
-    // Update the base field in ldbmod
-    this._displayLdbmodBaseChanged(module, rpcRequest);
-
-    break;
-
-  case "database_name_changed":
-    this._clearAllFields(module, rpcRequest);
-    break;
-
-  default:
-    throw new Error("Unexpected request type: " + requestType);
-  }
-
-  // Force flushing of pending DOM updates.  This is actually a
-  // work-around for a bug.  Without this, occasionally, updates to the
-  // gui aren't displayed until some 'action' takes place, e.g. key
-  // press or mouse movement.
-  qx.ui.core.Widget.flushGlobalQueues();
-};
-
-
-qx.Proto._setAppearances = function()
-{
-    // Modify the default appearance of a ComboBox for use in Search tab:
-    //   use more of the available width.
-    //
-    // If we had multiple uses, we'd create a new appearance which didn't
-    // contain a width.  That way, we'd be able to assign a specific width to
-    // each ComboBox instance.  Since we don't have multiple of them, we can
-    // just modify this default appearance.
-    //
-    // See http://qooxdoo.org/documentation/user_manual/appearance for an
-    // explanation of what's going on here.  The missing significant point in
-    // the discussion is that in the current qooxdoo appearance
-    // implementation, it's not possible to override a specific widget's
-    // appearance with explicit settings just for that widget (stupid!).  I
-    // expect that to change in a future version.
-    var appMgr = qx.manager.object.AppearanceManager.getInstance();
-    var theme = appMgr.getAppearanceTheme();
-    var appearance = theme._appearances["combo-box"];
-    if (! appearance)
-    {
-        return;
-    }
-    var oldInitial = appearance.initial;
-    appearance.initial = function(vTheme)
-    {
-        var res = oldInitial ? oldInitial.apply(this, arguments) : {};
-        res.width = "80%";
-        return res;
-    }
-};
-
-
-qx.Proto._buildPageSearch = function(module, page)
-{
-  var fsm = module.fsm;
-
-  // We need a vertical box layout for the various input fields
-  var vlayout = new qx.ui.layout.VerticalBoxLayout();
-  vlayout.set({
-               overflow: "hidden",
-               height: 120,
-               top: 10,
-               left: 0,
-               right: 0,
-               bottom: 10
-           });
-
-  // Create a label for the list of required attributes
-  var label = new qx.ui.basic.Atom("Search Expression");
-  label.setHorizontalChildrenAlign("left");
-
-  // Add the label to the horizontal layout
-  vlayout.add(label);
-
-  // Create a combo box for entry of the search expression
-  var filter = new qx.ui.form.TextField();
-  filter.set({ width:300 });
-  fsm.addObject("searchExpr", filter);
-    
-  // Add the combo box to the horizontal layout
-  vlayout.add(filter);
-
-  // Create a label for the list of required attributes
-  var label = new qx.ui.basic.Atom("Base");
-  label.setHorizontalChildrenAlign("left");
-
-  // Add the label to the horizontal layout
-  vlayout.add(label);
-
-  // Create a combo box for entry of the search expression
-  var base = new qx.ui.form.TextField();
-  base.set({ width:300 });
-  fsm.addObject("baseDN", base);
-    
-  // Add the combo box to the horizontal layout
-  vlayout.add(base);
-
-  // Create a label for the list of required attributes
-  var label = new qx.ui.basic.Atom("Scope");
-  label.setWidth(100);
-  label.setHorizontalChildrenAlign("left");
-
-  // Add the label to the scope vertical layout
-  vlayout.add(label);
-
-  // Use a horizontal box layout to keep the search button aligned
-  var hlayout = new qx.ui.layout.HorizontalBoxLayout();
-  hlayout.setWidth(300);
-  hlayout.setHeight(30);
-
-  var cbScope = new qx.ui.form.ComboBoxEx();
-  cbScope.setSelection([ ["subtree", "Subtree"], ["one", "One Level"], ["base", "Base"]]);
-  cbScope.setSelectedIndex(0);
-
-  fsm.addObject("scope", cbScope);
-
-  hlayout.add(cbScope);
-
-  // Add a spacer
-  hlayout.add(new qx.ui.basic.HorizontalSpacer());
-
-  // Create the 'Search' button
-  var search = new qx.ui.form.Button('Search');
-  search.setWidth(100);
-  search.addEventListener("execute", fsm.eventListener, fsm);
-
-  // We'll be receiving events on the search object, so save its friendly name
-  fsm.addObject("search", search, "swat.main.fsmUtils.disable_during_rpc");
-
-  // Add the search button to the vertical layout
-  hlayout.add(search);
-
-  vlayout.add(hlayout);
-
-  // Add the vlayout to the page
-  page.add(vlayout);
-
-  var ldifview = new swat.module.ldbbrowse.LdifViewer();
-  ldifview.set({
-               top: 130,
-               left: 10,
-               right: 10,
-               bottom: 10
-           });
-
-  fsm.addObject("LdifView", ldifview);
-
-  // Add the output area to the page
-  page.add(ldifview);
-};
-
-qx.Proto._buildPageBrowse = function(module, page)
-{
-  var fsm = module.fsm;
-
-  // Create a horizontal splitpane for tree (left) and table (right)
-  var splitpane = new qx.ui.splitpane.HorizontalSplitPane("1*", "2*");
-  splitpane.setEdge(0);
-
-  // We need a vertical box layout for the tree and the buttons
-  var vlayout = new qx.ui.layout.VerticalBoxLayout();
-  vlayout.set({
-               height: "100%",
-               top: 5,
-               left: 5,
-               right: 5,
-               bottom: 5,
-               spacing: 10
-           });
-
-  // Create the tree and set its characteristics
-  var tree = new qx.ui.treevirtual.TreeVirtual(["Browse"]);
-  tree.set({
-             backgroundColor: 255,
-             border : qx.renderer.border.BorderPresets.getInstance().thinInset,
-             overflow: "hidden",
-             width: "100%",
-             height: "1*",
-             alwaysShowOpenCloseSymbol: true
-           });
-
-  // We've only got one column, so we don't need cell focus indication.
-  tree.setCellFocusAttributes({ backgroundColor : "transparent" });
-
-  // Get the data model
-  var dataModel = tree.getDataModel();
-
-  // Add the database file as the first node
-  dataModel.addBranch(null, module.dbFile, false);
-
-  // We're finished adding nodes.
-  dataModel.setData();
-
-  // Create event listeners
-  tree.addEventListener("treeOpenWhileEmpty", fsm.eventListener, fsm);
-  tree.addEventListener("changeSelection", fsm.eventListener, fsm);
-
-  // We'll be receiving events on the tree object, so save its friendly name,
-  // and cause the tree to be disabled during remote procedure calls.
-  fsm.addObject("tree", tree, "swat.main.fsmUtils.disable_during_rpc");
-
-  // Add the tree to the vlayout.
-  vlayout.add(tree);
-
-  // Add an horizonatl layout for the "New" and "Modify" buttons
-  // We need a vertical box layout for the tree and the buttons
-  var hlayout = new qx.ui.layout.HorizontalBoxLayout();
-  hlayout.set({
-               height: "auto",
-               spacing: 10
-           });
-
-  // Add the "New" button
-  this._newb = new qx.ui.form.Button("New");
-  this._newb.addEventListener("execute", this._switchToNewrecord, this);
-
-  // Add the button to the hlayout
-  hlayout.add(this._newb);
-
-  // Add the "New" button
-  this._modb = new qx.ui.form.Button("Modify");
-  this._modb.addEventListener("execute", this._switchToModrecord, this);
-
-  // Add the button to the hlayout
-  hlayout.add(this._modb);
-
-  hlayout.add(new qx.ui.basic.HorizontalSpacer());
-
-  // Add the "Delete" button
-  this._delb = new qx.ui.form.Button("Delete");
-  this._delb.addEventListener("execute", this._confirmDeleteRecord, this);
-
-  // Add the button to the hlayout
-  hlayout.add(this._delb);
-  
-  // Add the hlayout to the vlayout.
-  vlayout.add(hlayout);
-
-  //Add the left vlayout to the splitpane
-  splitpane.addLeft(vlayout);
-
-  // Create a simple table model
-  var tableModel = new qx.ui.table.SimpleTableModel();
-  tableModel.setColumns([ "Attribute", "Value" ]);
-
-  tableModel.setColumnEditable(0, false);
-  tableModel.setColumnEditable(1, false);
-  fsm.addObject("tableModel:browse", tableModel);
-
-  // Create a table
-  this._table = new qx.ui.table.Table(tableModel);
-  this._table.set({
-                top: 10,
-                left: 0,
-                right: 0,
-                bottom: 10,
-                statusBarVisible: false,
-                columnVisibilityButtonVisible: false
-            });
-  this._table.setColumnWidth(0, 180);
-  this._table.setColumnWidth(1, 320);
-  this._table.setMetaColumnCounts([1, -1]);
-  fsm.addObject("table:browse", this._table);
-
-  //table.setDisplay(false);
-
-  // Add the table to the bottom portion of the splitpane
-  splitpane.addRight(this._table);
-
-  // Build the create/modify widget
-  this._ldbmod = new swat.module.ldbbrowse.LdbModify(fsm);
-  this._ldbmod.set({
-                top: 10,
-                left: 0,
-                right: 0,
-                bottom: 10
-            });
-  // Not displayed by default
-  this._ldbmod.setDisplay(false);
-
-  fsm.addObject("ldbmod", this._ldbmod);
-
-  splitpane.addRight(this._ldbmod);
-
-  // Add the first splitpane to the page
-  page.add(splitpane);
-};
-
-qx.Proto._switchToNormal = function()
-{
-  this._table.setDisplay(true);
-  this._ldbmod.setDisplay(false);
-  this._newb.setEnabled(true);
-  this._modb.setEnabled(true);
-  this._delb.setEnabled(true);
-};
-
-qx.Proto._switchToNewrecord = function()
-{
-  this._table.setDisplay(false);
-  this._ldbmod.setDisplay(true);
-  this._newb.setEnabled(false);
-  this._modb.setEnabled(false);
-  this._delb.setEnabled(false);
-  this._ldbmod.initNew(this._switchToNormal, this);
-};
-
-qx.Proto._switchToModrecord = function()
-{
-  this._table.setDisplay(false);
-  this._ldbmod.setDisplay(true);
-  this._newb.setEnabled(false);
-  this._modb.setEnabled(false);
-  this._delb.setEnabled(false);
-  this._ldbmod.initMod(this._table.getTableModel(), this._switchToNormal, this);
-};
-
-qx.Proto._confirmDeleteRecord = function()
-{
-  
-  this._ldbmod.showConfirmDelete();
-};
-
-qx.Proto._displayModifyResults = function(module, rpcRequest)
-{
-  var tree = module.fsm.getObject("tree");
-  tree.createDispatchDataEvent("changeSelection", tree.getSelectedNodes());
-
-  alert("Object successfully modified!");
-
-  this._switchToNormal();
-  //this._ldbmod.postCleanUp();
-}
-
-qx.Proto._displayAddResults = function(module, rpcRequest)
-{
-  var result = rpcRequest.getUserData("result");
-
-  var tree = module.fsm.getObject("tree");
-  var node = tree.getSelectedNodes()[0];
-  
-  tree.getDataModel().prune(node.nodeId, false);
-  node.bOpened = false;
-  tree.toggleOpened(node);
-
-  alert("Object successfully added!");
-
-  this._switchToNormal();
-  //this._ldbmod.postCleanUp();
-};
-
-qx.Proto._displayDeleteResults = function(module, rpcRequest, type)
-{
-  var result = rpcRequest.getUserData("result");
-
-  var tree = module.fsm.getObject("tree");
-  var dataModel = tree.getDataModel();
-  var node = dataModel.getData()[tree.getSelectedNodes()[0].parentNodeId];
-  
-  dataModel.prune(node.nodeId, false);
-  node.bOpened = false;
-  tree.toggleOpened(node);
-
-  alert("Object Successfully deleted!");
-
-  this._ldbmod.setBase("");
-
-  // just clear the attribute/value table.
-  var tableModel = module.fsm.getObject("tableModel:browse");
-  tableModel.setData([]);
-};
-
-qx.Proto._displaySearchResults = function(module, rpcRequest)
-{
-  var fsm = module.fsm;
-
-  // Obtain the ldif object
-  var ldifview = fsm.getObject("LdifView");
-
-  ldifview.reset();
-
-  // Obtain the result object
-  result = rpcRequest.getUserData("result").data;
-
-  if (result && result["length"])
-  {
-    len = result["length"];
-    for (var i = 0; i < result["length"]; i++)
-    {
-      var obj = result[i];
-      if (typeof(obj) != "object")
-      {
-        alert("Found unexpected result, type " +
-              typeof(obj) +
-              ", " +
-              obj +
-              "\n");
-        continue;
-      }
-      ldifview.appendObject(obj);
-    }
-  }
-  else
-  {
-    alert("No results.");
-  }
-};
-
-
-qx.Proto._displayTreeOpenResults = function(module, rpcRequest)
-{
-  var t;
-  var child;
-  var fsm = module.fsm;
-
-  // Get the tree object
-  var tree = fsm.getObject("tree");
-  var dataModel = tree.getDataModel();
-
-  // Obtain the result object
-  var result = rpcRequest.getUserData("result").data;
-
-  // We also need some of the original parameters passed to the request
-  var parentNode = rpcRequest.getUserData("parentNode");
-  var attributes = rpcRequest.getUserData("attributes");
-
-  // Remove any existing children, they will be replaced by the result of this call (refresh)
-  dataModel.setData();
-
-  // Any children?
-  if (! result || result["length"] == 0)
-  {
-    // Nope.  Remove parent's expand/contract button.
-    dataModel.setState(parentNode.nodeId, { bHideOpenClose : true });
-    return;
-  }
-
-  // base object, add naming contexts to the root
-  if ((result.length == 1) &&
-      ((result[0]["dn"] == "") ||
-       (result[0]["dn"].toLowerCase() == "cn=rootdse")))
-  {
-    defnc = result[0]["defaultNamingContext"];
-
-    // Build a tree row for the defaultNamingContext
-    if (defnc)
-    {
-      dataModel.addBranch(parentNode.nodeId, defnc, false);
-    }
-
-    var ncs = result[0]["namingContexts"];
-
-    // If it's multi-valued (type is an array) we have other naming contexts
-    // to show
-    if (typeof(ncs) == "object")
-    {
-      for (var i = 0; i < ncs.length; i++)
-      {
-        if (ncs[i] != defnc)
-        {
-          //skip default naming context
-          dataModel.addBranch(parentNode.nodeId, ncs[i], false);
-        }
-      }
-    }
-  }
-  else
-  {
-    for (var i = 0; i < result.length; i++)
-    {
-      var name;
-  
-      child = result[i];
-  
-      name = child["dn"].split(",")[0];
-  
-      // Build a standard tree row
-      dataModel.addBranch(parentNode.nodeId, name, false);
-    }
-  }
-
-  // Cause the tree changes to be rendered
-  dataModel.setData();
-};
-
-qx.Proto._displayLdbmodBaseChanged = function(module, rpcRequest)
-{
-  var fsm = module.fsm;
-
-  // Obtain the result object
-  var result = rpcRequest.getUserData("result").data;
-
-  // If we received an empty list, ...
-  if (result == null)
-  {
-    // ... then ??
-    return;
-  }
-
-  this._ldbmod.setBase(result[0]["dn"]);
-};
-
-qx.Proto._displayTreeSelectionChangedResults = function(module, rpcRequest)
-{
-  var fsm = module.fsm;
-
-  // Obtain the result object
-  var result = rpcRequest.getUserData("result").data;
-
-  var tree = fsm.getObject("tree");
-  var dataModel = tree.getDataModel();
-
-  // If we received an empty list, ...
-  if (result == null)
-  {
-    // ... then just clear the attribute/value table.
-    dataModel.setData([ ]);
-    return;
-  }
-
-  // Start with an empty table dataset
-  var rowData = [ ];
-
-  // The result contains a single object: attributes
-  var attributes = result[0];
-
-  // Track the maximum length of the attribute values
-  var maxLen = 0;
-
-  // For each attribute we received...
-  for (var attr in attributes)
-  {
-    // If it's multi-valued (type is an array)...
-    if (typeof(attributes[attr]) == "object")
-    {
-      // ... then add each value with same name
-      var a = attributes[attr];
-      for (var i = 0; i < a.length; i++)
-      {
-        if (a[i].length > maxLen)
-        {
-          maxLen = a[i].length;
-        }
-        rowData.push([ attr, a[i] ]);
-      }
-    }
-    else    // single-valued
-    {
-      // ... add its name and value to the table dataset
-      if (attributes[attr].length > maxLen)
-      {
-        maxLen = attributes[attr].length;
-      }
-      rowData.push([ attr, attributes[attr] ]);
-    }
-  }
-
-  // Obtain the table and tableModel objects
-  var table = fsm.getObject("table:browse");
-  var tableModel = fsm.getObject("tableModel:browse");
-
-  // Adjust the width of the value column based on maxLen
-  table.setColumnWidth(1, maxLen * 7);
-
-  // Add the dataset to the table
-  tableModel.setData(rowData);
-};
-
-
-qx.Proto._clearAllFields = function(module, rpcRequest)
-{
-  // Obtain the result object
-  var result = rpcRequest.getUserData("result").data;
-
-  // Retrieve the database handle
-  module.dbHandle = result;
-
-  // In the future, when we support more than one database, we'll want to
-  // clear all fields here.  For now, there's no need.
-};
-
-
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/swat/source/class/swat/module/ldbbrowse/LdbBrowse.js b/webapps/swat/source/class/swat/module/ldbbrowse/LdbBrowse.js
deleted file mode 100644 (file)
index 7e3f96c..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright:
- *   (C) 2006 by Derrell Lipman
- *       All rights reserved
- *
- * License:
- *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
- */
-
-/**
- * Swat LDB Browser class
- */
-qx.OO.defineClass("swat.module.ldbbrowse.LdbBrowse",
-                  swat.main.AbstractModule,
-function()
-{
-  swat.main.AbstractModule.call(this);
-});
-
-
-/**
- * Create the module's finite state machine and graphical user interface.
- *
- * This function is called the first time a module is actually selected to
- * appear.  Creation of the module's actual FSM and GUI have been deferred
- * until they were actually needed (now) so we need to create them.
- *
- * @param module {swat.main.Module}
- *   The module descriptor for the module.
- */
-qx.Proto.initialAppear = function(module)
-{
-  // Initial database to open
-  module.dbFile = "sam.ldb";
-
-  // Replace the existing (temporary) finite state machine with the real one
-  swat.module.ldbbrowse.Fsm.getInstance().buildFsm(module);
-
-  // Create the real gui
-  swat.module.ldbbrowse.Gui.getInstance().buildGui(module);
-
-  // Force the global database to be opened
-  var dbName = module.fsm.getObject("dbName");
-  dbName.setSelected(dbName.getList().getFirstChild());
-};
-
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/swat/source/class/swat/module/ldbbrowse/LdbModify.js b/webapps/swat/source/class/swat/module/ldbbrowse/LdbModify.js
deleted file mode 100644 (file)
index aff8ec0..0000000
+++ /dev/null
@@ -1,494 +0,0 @@
-/*                                                                                                                    
- * Copyright::                                                                                                         
- *   (C) 2006 by Simo Sorce
- * 
- * License: 
- *   GPL v2 or later
- */
-
-/**
- * Ldb Modifier Class
- */
-
-qx.OO.defineClass("swat.module.ldbbrowse.LdbModify", qx.ui.layout.VerticalBoxLayout,
-function(fsm)
-{
-  qx.ui.layout.VerticalBoxLayout.call(this);
-
-  this._fsm = fsm;
-
-  this._mainArea = new qx.ui.layout.VerticalBoxLayout();
-  this._mainArea.set({
-                     overflow: "auto",
-                     height: "1*",
-                     spacing: 5
-                    });
-
-  // Add an horizonatl layout for the "New" and "Modify" buttons
-  // We need a vertical box layout for the tree and the buttons
-  this._hlayout = new qx.ui.layout.HorizontalBoxLayout();
-  this._hlayout.set({
-               height: "auto",
-               spacing: 10
-           });
-
-  // add a spacer to align buttons to the right
-  this._leftSpacer = new qx.ui.basic.HorizontalSpacer();
-
-  // Add the "Cancel" button
-  this._cancelbtn = new qx.ui.form.Button("Cancel");
-  this._cancelbtn.addEventListener("execute", this._cancelOp, this);
-
-  // Add the "OK" button
-  this._okbtn = new qx.ui.form.Button("OK");
-  this._okbtn.addEventListener("execute", this._fsm.eventListener, this._fsm);
-
-  // We'll be receiving events on the object, so save its friendly name
-  this._fsm.addObject("commit", this._okbtn, "swat.main.fsmUtils.disable_during_rpc");
-
-  // Add the buttons to the hlayout
-  this._hlayout.add(this._leftSpacer, this._cancelbtn, this._okbtn);
-  
-  // Add the hlayout to the vlayout.
-  this.add(this._mainArea, this._hlayout);
-
-  // By default this is a new record creator
-  this._type = "add";
-
-  // By default this is inactive
-  this._active = false;
-
-  this.basedn = "";
-
-  this._dmw = null;
-});
-
-qx.OO.addProperty({ name : "basedn", type : "string" });
-
-/**
- * Set the type of operation
- * 
- * @param type {String}
- *   A string containing "new" or "modify"
- *
- * @param data {Object}
- *   An LDB object with the current object parameters
- *   Used only if type = "modify"
- *
- */
-
-qx.Proto.isActive = function() {
-  if (this._active == true) {
-    return true;
-  }
-}
-
-/** 
- * Set the base of the object to add
- *
- * @param type {String}
- *   A string containing the base DN
- */
-
-qx.Proto.setBase = function(base) {
-
-  this.basedn = base;
-
-  if (this._active) {
-    if (this._type == "add") {
-
-      this._basedn.setHtml(this.basedn);
-    }
-  }
-}
-
-qx.Proto.getBase = function() {
-
-  return this.basedn;
-
-}
-
-qx.Proto.initNew = function(callback, obj) {
-
-  this._setExitCallback(callback, obj);
-
-  if (this.basedn == "") {
-    alert("Please select the parent node in the tree first!");
-    this._callExitCallback();
-    return;
-  }
-
-  this._active = true;
-  this._type = "add";
-
-  var hlayout = new qx.ui.layout.HorizontalBoxLayout();
-  hlayout.set({ height: "auto", spacing: 10 });
-
-  var dnlabel = new qx.ui.basic.Label("DN: ");
-
-  // The name of the new/modified object
-  // TODO: add validator
-  this._rdn = new qx.ui.form.TextField(""); 
-  this._rdn.setWidth(128);
-
-  var dnsep = new qx.ui.basic.Label(",");
-
-  // The basedn of the object
-  // TODO: add validator
-  this._basedn = new qx.ui.basic.Label(this.basedn);
-
-  hlayout.add(dnlabel, this._rdn, dnsep, this._basedn);
-
-  this._mainArea.add(hlayout);
-
-  this._createAttributesArea();
-
-  return;
-}
-
-qx.Proto.initMod = function(tablemodel, callback, obj) {
-
-  this._setExitCallback(callback, obj);
-
-  if (this.basedn == "") {
-    this._callExitCallback();
-    return;
-  }
-
-  this._active = true;
-  this._type = "modify";
-
-  this._dn = new qx.ui.basic.Label("DN: " + this.basedn);
-
-  this._mainArea.add(this._dn);
-
-  this._createAttributesArea();
-
-  this._modBaseHash = new Array();
-
-  // for each entry in the table, add new entries in the object
-  var count = tablemodel.getRowCount();
-  for (var i = 0; i < count; i++) {
-    var row = tablemodel.getRowData(i);
-    this._addNewAttribute(row[0], row[1]);
-    if (this._modBaseHash[row[0]] == null) {
-      this._modBaseHash[row[0]] = new Array();
-    }
-    this._modBaseHash[row[0]].push(row[1]);
-  }
-}
-
-qx.Proto._setExitCallback = function(vFunction, vObject) {
-
-  if(typeof vFunction !== "function") {
-    throw new Error("swat.module.ldbbrowse.LdbModify: setExitCallback(" + vFunction + "' is not a function!");
-  }
-
-  this._exitCallback = {
-      handler : vFunction,
-      object : vObject
-    }
-}
-
-qx.Proto._callExitCallback = function() {
-
-  // Shortcuts for handler and object
-  vFunction = this._exitCallback.handler;
-  vObject = this._exitCallback.object;
-
-  // Call object function
-  try
-  {
-    if(typeof vFunction === "function") {
-      vFunction.call(qx.util.Validation.isValid(vObject) ? vObject : this);
-    }
-  }
-  catch(ex)
-  {
-    this.error("swat.module.ldbbrowse.LdbModify: Could not call exit callback: ", ex);
-  }
-}
-
-qx.Proto._reset = function() {
-
-  // Remove existing attributes
-  this._mainArea.removeAll();
-  this._active = false;
-  this._type = "null";
-}
-
-qx.Proto.postCleanUp = function() {
-  this._reset();
-}
-
-qx.Proto._cancelOp = function() {
-
-  this._reset();
-  this._callExitCallback();
-}
-
-qx.Proto._addNewAttribute = function(name, value, before) {
-
-  var hlayout = new qx.ui.layout.HorizontalBoxLayout();
-  hlayout.set({ width: "auto", height: "auto", spacing: 10 });
-
-  var aButton = new qx.ui.form.Button("+");
-  aButton.set({ width: 15, height: 15});
-  aButton.addEventListener("execute", function() {
-    this._addNewAttribute(name, null, hlayout);
-  }, this);
-
-  var aNameTextField = new qx.ui.form.TextField(name);
-  aNameTextField.setWidth(150);
-
-  var aValTextField = new qx.ui.form.TextField(value);
-  aValTextField.setWidth(250);
-
-  var rButton = new qx.ui.form.Button("-");
-  rButton.set({ left: 5, width: 15, height: 15});
-  rButton.addEventListener("execute", function() {
-    hlayout.setParent(null);
-  }, this);
-
-  hlayout.add(aButton, aNameTextField, aValTextField, rButton);
-  hlayout.setUserData("attrName", aNameTextField);
-  hlayout.setUserData("attrVal", aValTextField);
-
-  if (before) {
-    this._attrArea.addAfter(hlayout, before);
-  } else {
-    //TODO: check the same attribute is not already present, if so just add a new value instead
-    this._attrArea.addBefore(hlayout, this._attrAddButton);
-  }
-}
-
-qx.Proto._createAttributesArea = function() {
-
-  this._attrArea = new qx.ui.layout.VerticalBoxLayout();
-
-  this._attrAddButton = new qx.ui.form.Button("+");
-  this._attrAddButton.set({ width: 15, height: 15});
-  this._attrAddButton.addEventListener("execute", this._addNewAttribute, this);
-
-  this._attrArea.add(this._attrAddButton);
-
-  this._mainArea.add(this._attrArea);
-}
-
-qx.Proto.getOpType = function() {
-  return this._type;
-}
-
-qx.Proto.getLdif = function() {
-
-  if (this._active != true) {
-    return null;
-  }
-
-  c = this._attrArea.getChildren();
-
-  switch (this._type) {
-
-  case "add":
-
-    var ldif = "dn: " + this._rdn.getValue() + "," + this.basedn + "\n";
-
-    for (var i = 0; i < c.length; i++) {
-      if (c[i] instanceof qx.ui.layout.HorizontalBoxLayout) {
-        ldif = ldif + c[i].getUserData("attrName").getComputedValue() + ": " + c[i].getUserData("attrVal").getComputedValue() + "\n";
-      }
-    }
-    break;
-
-  case "modify":
-
-    var ldif = "dn: " + this.basedn + "\n";
-
-    ldif = ldif + "changetype: modify\n";
-
-    var submAttrs = new Array();
-
-    // Build an array of the submitted data
-    for (var i = 0; i < c.length; i++) {
-      if (c[i] instanceof qx.ui.layout.HorizontalBoxLayout) {
-
-        var attrName = c[i].getUserData("attrName").getComputedValue();
-        var attrVal = c[i].getUserData("attrVal").getComputedValue();
-        
-        if (submAttrs[attrName] == null) {
-          submAttrs[attrName] = new Array();
-        }
-        submAttrs[attrName].push(attrVal);
-      }
-    }
-
-    // compare arrays and find out what changed, built an hash of the modifications
-    var modAttrs = new Array();
-
-    for (var i in this._modBaseHash) {
-      modAttrs[i] = new Array();
-      modAttrs[i][0] = "skip";
-
-      if (submAttrs[i] == null) {
-        modAttrs[i][0] = "delete";
-      } else {
-        // check if the arrays are identical
-        if (this._modBaseHash[i].length <= submAttrs[i].length) {
-          for (var j = 0; j < this._modBaseHash[i].length; j++) {
-            for (var k = 0; k < submAttrs[i].length; k++) {
-              if (this._modBaseHash[i][j] == submAttrs[i][k]) {
-                break;
-              }
-            }
-            if (k >= submAttrs[i].length) {
-              modAttrs[i][0] = "replace";
-              break;
-            }
-          }
-          // if all the attributes in base hash are contained in sumbAttr
-          // it means only additions were done, sort out what was addedd
-          if (modAttrs[i][0] != "replace") {
-            for (var j = 0; j < submAttrs[i].length; j++) {
-              for (var k = 0; k < this._modBaseHash[i].length; k++) {
-                if (submAttrs[i][j] == this._modBaseHash[i][k]) break;
-              }
-              // this element was not found in original array
-              if (k >= this._modBaseHash[i].length) {
-                if (modAttrs[i][0] != "add") {
-                  modAttrs[i][0] = "add";
-                }
-                modAttrs[i].push(submAttrs[i][j]);
-              }
-            }
-          }
-        } else {
-          modAttrs[i] = [ "replace" ];
-        }
-      }
-      // if they differ replace the whole content
-      if (modAttrs[i][0] == "replace") {
-        for (var j = 0; j < submAttrs[i].length; j++) {
-          modAttrs[i].push(submAttrs[i][j]);
-        }
-      }
-
-      // wipe out attr from sumbAttr, so that we can later found truly new attrs addedd to the array
-      submAttrs[i] = null;
-    }
-
-    for (var i in submAttrs) {
-      if (submAttrs[i] != null) {
-        modAttrs[i] = new Array();
-        modAttrs[i][0] = "add";
-
-        for (var j = 0; j < submAttrs[i].length; j++) {
-          modAttrs[i].push(submAttrs[i][j]);
-        }
-      }
-    }
-
-    //track if we did any mod at all
-    var nmods = 0;
-
-    for (var i in modAttrs) {
-      switch (modAttrs[i][0]) {
-
-      case "delete":
-        nmods++;
-        ldif = ldif + "delete: " + i + "\n";
-        break;
-
-      case "add":
-        nmods++;
-        ldif = ldif + "add: " + i + "\n";
-        for (var j = 1; j < modAttrs[i].length; j++) {
-          ldif = ldif + i + ": " + modAttrs[i][j] + "\n";
-        }
-        break;
-
-      case "replace":
-        nmods++;
-        ldif = ldif + "replace: " + i + "\n";
-        for (var j = 1; j < modAttrs[i].length; j++) {
-          ldif = ldif + i + ": " + modAttrs[i][j] + "\n";
-        }
-        break;
-
-      default:
-        //skip
-        break;
-      }
-    }
-
-    if (nmods == 0) {
-      alert("No modifications?");
-    }
-
-    break;
-
-  default:
-
-    return null;
-
-  }
-
-  // terminate ldif record
-  ldif = ldif + "\n";
-
-  return ldif;
-};
-
-qx.Proto.showConfirmDelete = function() {
-
-  var main = qx.ui.core.ClientDocument.getInstance();
-
-  if (this._dmw == null) {
-    this._dmw = new qx.ui.window.Window("-- DELETE Object --");
-    this._dmw.set({
-      width: 300,
-      height: 125,
-      modal: true,
-      centered: true,
-      restrictToPageOnOpen: true,
-      showMinimize: false,
-      showMaximize: false,
-      showClose: false,
-      resizeable: false
-    });
-
-    var warningLabel = new qx.ui.basic.Label("Error Dialog not initialized!");
-    this._dmw.add(warningLabel);
-    this._dmw.setUserData("label", warningLabel);
-
-    var cancelButton = new qx.ui.form.Button("Cancel");
-    cancelButton.addEventListener("execute", function() {
-      this._dmw.close();
-    }, this);
-    cancelButton.set({ top: 45, left: 32 }); 
-    this._dmw.add(cancelButton);
-
-    this._dmw.addEventListener("appear",function() { 
-      cancelButton.focus();
-    }, this._dmw);
-
-    main.add(this._dmw);
-    var okButton = new qx.ui.form.Button("OK");
-    okButton.addEventListener("execute", function() {
-      this._dmw.close();
-    }, this);
-    // We'll be receiving events on the object, so save its friendly name
-    this._fsm.addObject("delete", okButton, "swat.main.fsmUtils.disable_during_rpc");
-    okButton.addEventListener("execute", this._fsm.eventListener, this._fsm);
-      
-    okButton.set({ top: 45, right: 32 });
-    this._dmw.add(okButton);
-
-    main.add(this._dmw);
-  }
-
-  var label = this._dmw.getUserData("label");
-
-  label.setHtml("<pre>Do you really want to delete\n" + this.basedn + " ?</pre>");
-
-  this._dmw.open();
-};
diff --git a/webapps/swat/source/class/swat/module/ldbbrowse/LdifViewer.js b/webapps/swat/source/class/swat/module/ldbbrowse/LdifViewer.js
deleted file mode 100644 (file)
index 5732b94..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-/*                                                                                                                    
- * Copyright::                                                                                                         
- *   (C) 2006 by Simo Sorce
- * 
- * License: 
- *   GPL v2 or later
- */
-
-/**
- * Ldif Viewer Class
- */
-qx.OO.defineClass("swat.module.ldbbrowse.LdifViewer", qx.ui.embed.HtmlEmbed,
-function()
-{
-  qx.ui.embed.HtmlEmbed.call(this, "");
-
-  this.setStyleProperty("whiteSpace", "nowrap");
-  this.setStyleProperty("textOverflow", "ellipsis");
-
-  this.setOverflow("auto");
-  this.setSelectable(true);
-
-  this.innerText = "";
-});
-
-qx.OO.addProperty({ name : "innerText", type : "string" });
-
-qx.Proto._update = function() {
-  this.setHtml("<pre>" + this.innerText + "</pre>");
-}
-
-/**
- * Reset the ldif contents and return to an empty page
- */
-qx.Proto.reset = function() {
-  this.innerText = "";
-  this.setHtml("");
-}
-
-/**
- * Add a comment to the ldif output
- *
- * @param aText {String}
- *   A string to show up as an ldif Comment
- */
-qx.Proto.appendComment = function(aText) {
-  this.innerText = this.innerText + "# " + a Text + "\n\n";
-  this._update();
-}
-
-/**
- * Append an object to be shown
- *
- * @param o {Object}
- *   An Object returned by an ldb search
- */
-qx.Proto.appendObject = function(o) {
-
-  // First print the Object name as comment
-  // TODO: Prettify it later
-  var ldifRecord = "# " + o["dn"] + "\n";
-
-  // Now the dn
-  ldifRecord = ldifRecord + "dn: " + o["dn"] + "\n";
-
-  // Now the attributes;
-  for (var field in o)
-  {
-
-    // If it's multi-valued (type is an array)...
-    if (typeof(o[field]) == "object")
-    {
-      // ... then add each value with same name
-      var a = o[field];
-      for (var i = 0; i < a.length; i++)
-      {
-        ldifRecord = ldifRecord + field + ": " + a[i] + "\n";
-      }
-    }
-    else    // single-valued
-    {
-      ldifRecord = ldifRecord + field + ": " + o[field] + "\n";
-    }
-  }
-
-  // Terminate the record with an empty line
-  ldifRecord = ldifRecord + "\n";
-
-  this.innerText = this.innerText + ldifRecord;
-  this._update();
-}
diff --git a/webapps/swat/source/class/swat/module/netmgr/Fsm.js b/webapps/swat/source/class/swat/module/netmgr/Fsm.js
deleted file mode 100644 (file)
index c2e499a..0000000
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Copyright (C)  Rafal Szczesniak 2007
- */
-
-/**
- * Swat Net Manager class finite state machine
- */
-qx.OO.defineClass("swat.module.netmgr.Fsm", swat.main.AbstractModuleFsm,
-function()
-{
-  swat.main.AbstractModuleFsm.call(this);
-});
-
-
-qx.Proto.buildFsm = function(module)
-{
-  var fsm = module.fsm;
-  var _this = this;
-
-  /*
-   * State: Idle
-   *
-   * Actions upon entry
-   *   - if returning from RPC, display the result
-   *
-   * Transition on:
-   *   "changeselection" on tree
-   */
-  var state = new qx.util.fsm.State(
-    "State_Idle",
-    {
-      "onentry" :
-        function(fsm, event)
-       {
-         if (fsm.getPreviousState() == "State_AwaitRpcResult")
-         {
-           var rpcRequest = _this.popRpcRequest();
-           var result = rpcRequest.getUserData("result");
-           var origins = swat.main.AbstractModuleFsm.JsonRpc_Origin;
-           var serverErrors = swat.main.AbstractModuleFsm.JsonRpc_ServerError;
-
-           if (result.type == "failed" &&
-               result.data.origin == origins.Server &&
-               result.data.code == serverErrors.ResourceError)
-           {
-             alert("Error when receiving rpc: '" + result.id + "'" + " exception: " + result.data);
-           }
-           else
-           {
-             // get the result of the call and apply it
-              var gui = swat.module.netmgr.Gui.getInstance();
-             gui.displayData(module, rpcRequest);
-           }
-           
-           rpcRequest.request.dispose();
-           rpcRequest.request = null;
-         }
-       },
-
-      "events" :
-        {
-          "appear" :
-          {
-            "swat.main.canvas" :
-              "Transition_Idle_to_AwaitRpcResult_via_canvas_appear",
-            "vlayout":
-              "Transition_Idle_to_AwaitRpcResult_via_vlayout_appear"
-          },
-
-         "changeSelection" :
-         {
-           "tree" :
-             "Transition_Idle_to_Idle_via_tree_selection_changed"
-          },
-
-          "changeSelected":
-          {
-            // this one is dispatched from UsersView widget
-           "domainName":
-              "Transition_Idle_to_AwaitRpcResult_via_domainName_changed"
-          },
-        
-         "changeNetCtx" :
-         {
-           "swat.module.netmgr.Gui" :
-             "Transition_Idle_to_AwaitRpcResult_via_netCtx_changed"
-         }
-        }
-    });
-
-  // Replace the initial Idle state with this one
-  fsm.replaceState(state, true);
-
-  var trans = new qx.util.fsm.Transition(
-    "Transition_Idle_to_AwaitRpcResult_via_canvas_appear",
-    {
-      "nextState" : "State_AwaitRpcResult",
-
-      "ontransition" : function(fsm, event)
-      {
-       // Create default NetContext
-        var request = _this.callRpc(fsm, "samba.ejsnet", "NetContext", []);
-       request.setUserData("requestType", "NetContext");
-      }
-    });
-
-  // Add the new transition
-  state.addTransition(trans);
-
-  var trans = new qx.util.fsm.Transition(
-    "Transition_Idle_to_AwaitRpcResult_via_vlayout_appear",
-    {
-      "nextState" : "State_AwaitRpcResult",
-
-      "ontransition" :
-        function(fsm, event)
-        {
-         // Request our netbios name to add proper node to the tree
-         var request = _this.callRpc(fsm, "samba.config", "lp_get", [ "netbios name" ]);
-         request.setUserData("requestType", "hostname");
-        }
-    });
-
-  // Add the new transition
-  state.addTransition(trans);
-
-  var trans = new qx.util.fsm.Transition(
-    "Transition_Idle_to_Idle_via_tree_selection_changed",
-    {
-      "nextState" : "State_Idle",
-
-      "ontransition" : function(fsm, event)
-      {
-       var nodes = event.getData();
-       var selectedNode = nodes[0];
-
-       var gui = swat.module.netmgr.Gui.getInstance();
-       var parentNode = gui.getParentNode(module, selectedNode);
-
-       // Change current NetContext if necessary for this host
-       if (parentNode.netCtx != undefined)
-        {
-         module.setNetCtx(parentNode.netCtx);
-       }
-       
-       var domainName = parentNode.label;
-       var nodeName = selectedNode.label;
-
-       switch (nodeName)
-        {
-       case "Users":
-         gui.openUserManager(module, domainName);
-         break;
-
-       case "Groups":
-       case "Domain":
-       case "Services":
-         alert("View not implemented yet");
-         break;
-
-       default:
-         alert("Undefined call selected for node=['" + nodeName + "']");
-       }
-      }
-      
-    });
-
-  // Add the new transition
-  state.addTransition(trans);
-
-  var trans = new qx.util.fsm.Transition(
-    "Transition_Idle_to_AwaitRpcResult_via_domainName_changed",
-    {
-      "nextState" : "State_AwaitRpcResult",
-
-      "ontransition" : function(fsm, event)
-      {
-       var domainName = fsm.getObject("domainName").getValue();
-       var netCtxId = swat.module.netmgr.Gui.getInstance().getNetCtx();
-       
-       var req = _this.callRpc(fsm, "samba.ejsnet", "UserMgr", [ netCtxId, domainName ]);
-       req.setUserData("requestType", "UserMgr");
-      }
-    });
-
-  // Add the new transition
-  state.addTransition(trans);
-  
-  var trans = new qx.util.fsm.Transition(
-    "Transition_Idle_to_AwaitRpcResult_via_netCtx_changed",
-    {
-      "nextState" : "State_AwaitRpcResult",
-
-      "ontransition" : function(fsm, event)
-      {
-       var netCtxId = swat.module.netmgr.Gui.getInstance().getNetCtx();
-
-       var req = _this.callRpc(fsm, "samba.ejsnet", "NetContextCreds", [ netCtxId ]);
-       req.setUserData("requestType", "NetContextCreds");
-      }
-    });
-
-  state.addTransition(trans);
-
-  blockedEvents =
-  {
-    "appear":
-    {
-      "tree" : qx.util.fsm.FiniteStateMachine.EventHandling.BLOCKED,
-      "vlayout" : qx.util.fsm.FiniteStateMachine.EventHandling.BLOCKED
-    }
-  }
-
-  // Add blocked events
-  this.addAwaitRpcResultState(module, blockedEvents);
-  
-};
-
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/swat/source/class/swat/module/netmgr/Gui.js b/webapps/swat/source/class/swat/module/netmgr/Gui.js
deleted file mode 100644 (file)
index ee366e6..0000000
+++ /dev/null
@@ -1,285 +0,0 @@
-/*
- * Copyright (C)  Rafal Szczesniak 2007
- */
-
-
-/**
- * Swat Net Manager class graphical user interface
- */
-qx.OO.defineClass("swat.module.netmgr.Gui", qx.core.Target,
-function()
-{
-  qx.core.Target.call(this);
-});
-
-
-//qx.OO.addProperty({ name : "_tree", type : "object" });
-//qx.OO.addProperty({ name : "_panel", type : "object" });
-//qx.OO.addProperty({ name : "_txtDomain", type : "object" });
-//qx.OO.addProperty({ name : "_txtUsername", type : "object" });
-
-/* NetContex resource number assigned on the server side.
-   Necessary for every ejsnet call */
-qx.OO.addProperty({ name : "netCtx", type : "number" });
-
-
-qx.Proto.buildGui = function(module)
-{
-  var fsm = module.fsm;
-  
-  // Main layout composing the whole form
-  var vlayout = new qx.ui.layout.VerticalBoxLayout();
-  vlayout.set({
-                top: 10,
-                left: 10,
-                right: 10,
-                bottom: 20
-              });
-
-  // Horizontal layout holding TreeView and a "panel" for ListView
-  var hlayout = new qx.ui.layout.HorizontalBoxLayout();
-  hlayout.set({
-                top: 0,
-                left: 0,
-                right: 0,
-               height: "80%"
-              });
-
-  // Create a hosts tree
-  this._tree = new qx.ui.treevirtual.TreeVirtual(["Hosts"]);
-  var tree = this._tree;
-
-  // Set the tree's properties
-  tree.set({
-             backgroundColor: 255,
-            border: qx.renderer.border.BorderPresets.getInstance().thinInset,
-             overflow: "hidden",
-             width: "20%",
-             height: "100%",
-             alwaysShowOpenCloseSymbol: true
-           });
-
-  tree.setCellFocusAttributes({ backgroundColor : "transparent" });
-
-  // Create event listener
-  tree.addEventListener("appear", fsm.eventListener, fsm);
-
-  // Give a tree widget nicer name to handle
-  fsm.addObject("tree", tree, "swat.main.fsmUtils.disable_during_rpc");
-
-  // "Panel" for list view
-  this._panel = new qx.ui.layout.VerticalBoxLayout();
-  var panel = this._panel;
-
-  // TODO: Find out what's causing this bug - specifying 'width' works fine,
-  // but setting 'right' instead does not which makes impossible to position
-  // the panel against right boundary of a box
-  panel.set({
-              top: 0,
-              left: 10,
-              width:"80%",
-              height: "100%"
-            });
-
-  // Add the tree view and panel for list view to the layout
-  hlayout.add(tree);
-  hlayout.add(panel);
-
-  // Status layout containing informative labels and status information
-  var statusLayout = new qx.ui.layout.HorizontalBoxLayout();
-  statusLayout.set({
-                     top: 10,
-                     left: 0,
-                     width: "100%",
-                     height: "20%"
-                   });
-
-  // First "column" of status fields
-  var colALayout = new qx.ui.layout.VerticalBoxLayout();
-  colALayout.set({
-                  top: 0,
-                  left: 0,
-                  width: "25%",
-                  height: "100%"
-                });
-
-  // Domain name (credentials) - label and text box
-  var statusDomain = new qx.ui.layout.HorizontalBoxLayout();
-  statusDomain.set({ top: 0, left: 0, width: "100%", height: "auto",
-                      verticalChildrenAlign: "middle" });
-  
-  var lblDomain = new qx.ui.basic.Atom();
-  lblDomain.setLabel("Domain:");
-  lblDomain.set({ width: 70, right: 5, horizontalChildrenAlign: "right" });
-
-  var txtDomain = new qx.ui.form.TextField();
-  txtDomain.set({ width: 80, readOnly: true });
-  this._txtDomain = txtDomain;
-
-  statusDomain.add(lblDomain);
-  statusDomain.add(txtDomain);
-  
-  // Username (credentials) - label and text box
-  var statusUsername = new qx.ui.layout.HorizontalBoxLayout();
-  statusUsername.set({ top: 0, left: 0, width: "100%", height: "auto",
-                       verticalChildrenAlign: "middle" });
-
-  var lblUsername = new qx.ui.basic.Atom();
-  lblUsername.setLabel("Username:");
-  lblUsername.set({ width: 70, right: 5, horizontalChildrenAlign: "right" });
-  
-  var txtUsername = new qx.ui.form.TextField();
-  txtUsername.set({ width: 80, readOnly: true });
-  this._txtUsername = txtUsername;
-  
-  statusUsername.add(lblUsername);
-  statusUsername.add(txtUsername);
-  
-  colALayout.add(statusDomain);
-  colALayout.add(statusUsername);
-
-  statusLayout.add(colALayout);
-  
-  vlayout.add(hlayout);
-  vlayout.add(statusLayout);
-
-  vlayout.addEventListener("appear", fsm.eventListener, fsm);
-  fsm.addObject("vlayout", vlayout);
-
-  // place everything on canvas
-  module.canvas.add(vlayout);
-
-  // Add event handler to netCtx property change
-  this.addEventListener("changeNetCtx", fsm.eventListener, fsm);
-  fsm.addObject("swat.module.netmgr.Gui", this);
-};
-
-
-qx.Proto.displayData = function(module, rpcRequest)
-{
-  var gui = module.gui;
-  var fsm = module.fsm;
-  var result = rpcRequest.getUserData("result");
-  var requestType = rpcRequest.getUserData("requestType");
-
-  // Something went wrong
-  if (result.type == "failed")
-  {
-    alert("Async(" + result.id + ") exception: " + result.data);
-    return;
-  }
-
-  switch (requestType)
-  {
-    case "hostname":
-    // Add local host node
-    this._addHostNode(module, rpcRequest, true);
-    break;
-
-    case "NetContext":
-    this._initNetContext(module, rpcRequest);
-    break;
-
-    case "NetContextCreds":
-    this._updateNetContextCreds(module, rpcRequest);
-    break;
-
-    case "UserMgr":
-    this._initUserManager(module, rpcRequest);
-    break;
-  }
-
-  qx.ui.core.Widget.flushGlobalQueues();
-};
-
-
-qx.Proto.getParentNode = function(module, node)
-{
-  var tree = this._tree;
-  var nodes = tree.getTableModel().getData();
-  if (nodes == undefined)
-  {
-    return undefined;
-  }
-
-  if (node.parentNodeId == 0)
-  {
-    // there is no parent node
-    return node;
-  }
-  
-  var parentNode = nodes[node.parentNodeId];
-  return parentNode;
-};
-
-
-qx.Proto.openUserManager = function(module, domainName)
-{
-  // Remove existing panel if there is any - there can be only one at the time
-  if (this._panel.hasChildren())
-  {
-    this._panel.removeAll();
-  }
-
-  // Create user view, pass the context and the view to the panel
-  var view = new swat.module.netmgr.UsersView(module.fsm, domainName);
-  this._panel.add(view);
-};
-
-
-qx.Proto._addHostNode = function(module, rpcRequest, local)
-{
-  var fsm = module.fsm;
-  var hostname = rpcRequest.getUserData("result").data;
-
-  // Get the tree widget
-  var tree = this._tree;
-  var dataModel = tree.getDataModel();
-  
-  // Add new host and its service leaves
-  var hostNodeId = dataModel.addBranch(null, hostname, false);
-  
-  var domainNodeId = dataModel.addLeaf(hostNodeId, "Domain", false);
-  var usersNodeId = dataModel.addLeaf(hostNodeId, "Users", false);
-  var groupsNodeId = dataModel.addLeaf(hostNodeId, "Groups", false);
-  var srvcsNodeId = dataModel.addLeaf(hostNodeId, "Services", false);
-  
-  dataModel.setData();
-  tree.addEventListener("changeSelection", fsm.eventListener, fsm);
-
-  var hostNode = dataModel.getData()[hostNodeId];
-
-  // Set host-specific properties
-  hostNode.netCtx = undefined;
-  hostNode.local = local;
-};
-
-
-qx.Proto._initNetContext = function(module, rpcRequest)
-{
-  // Gather obtained NetContext handle
-  var result = rpcRequest.getUserData("result").data;
-  this.setNetCtx(result);
-};
-
-
-qx.Proto._updateNetContextCreds = function(module, rpcRequest)
-{
-  // Get requested credentials from the current NetContext
-  var result = rpcRequest.getUserData("result").data;
-  this._txtUsername.setValue(result.username);
-  this._txtDomain.setValue(result.domain);
-};
-
-
-qx.Proto._initUserManager = function(module, rpcRequest)
-{
-  // Get obtained usrCtx handle
-  var usrCtx = rpcRequest.getUserData("result").data;
-};
-
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/swat/source/class/swat/module/netmgr/NetManager.js b/webapps/swat/source/class/swat/module/netmgr/NetManager.js
deleted file mode 100644 (file)
index cdb9ba4..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright (C)  Rafal Szczesniak 2007
- */
-
-/**
- * Swat Net Manager class
- */
-qx.OO.defineClass("swat.module.netmgr.NetManager",
-                 swat.main.AbstractModule,
-function()
-{
-  swat.main.AbstractModule.call(this);
-});
-
-
-qx.Proto.initialAppear = function(module)
-{
-  // Replace the existing (temporary) finite state machine with the real one
-  swat.module.netmgr.Fsm.getInstance().buildFsm(module);
-
-  // Create the real gui
-  swat.module.netmgr.Gui.getInstance().buildGui(module);
-};
-
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/swat/source/class/swat/module/netmgr/UsersView.js b/webapps/swat/source/class/swat/module/netmgr/UsersView.js
deleted file mode 100644 (file)
index a54bbf5..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright (C)  Rafal Szczesniak 2007
- */
-
-//qx.OO.addProperty({ name: "_fsm", type: "object"});
-//qx.OO.addProperty({ name: "_columns", type: "object"});
-//qx.OO.addProperty({ name: "_items", type: "object"});
-//qx.OO.addProperty({ name: "_view", type: "object" });
-
-/**
- * Users View 
- */
-qx.OO.defineClass("swat.module.netmgr.UsersView", qx.ui.layout.HorizontalBoxLayout,
-function(fsm, domainName)
-{
-  qx.ui.layout.HorizontalBoxLayout.call(this);
-
-  this._fsm = fsm;
-  
-  // Set the whole view panel size and spacing between boxes
-  this.set({ top: 0, left: 0, width: "100%", height: "100%" });
-  this.setSpacing(5);
-
-  // Provide vertical positioning of combo box and list view
-  var innerBox = new qx.ui.layout.VerticalBoxLayout();
-  innerBox.set({ top: 0, left: 0, width: "100%", height: "100%"});
-
-  // horizontal box for domain selection label and combo box
-  var selectDomainBox = new qx.ui.layout.HorizontalBoxLayout();
-  selectDomainBox.set({ top: 0, left: 0, width: "auto", height: "10%" });
-  selectDomainBox.setVerticalChildrenAlign("middle");
-  selectDomainBox.setSpacing(5);
-  
-  // Setup domain selection combo box
-  var lblDomain = new qx.ui.basic.Atom("Domain:");
-  lblDomain.setHorizontalChildrenAlign("right");
-  
-  var cmbDomain = new qx.ui.form.ComboBox();
-  cmbDomain.setEditable(false);
-
-  // there's always BUILTIN domain so add it to the list
-  var item = new qx.ui.form.ListItem("BUILTIN");
-  cmbDomain.add(item);
-
-  var selectedItem = undefined;
-  
-  // Simply add the domain name if it is passed as a string
-  if (typeof(domainName) == "string")
-  {
-    item = new qx.ui.form.ListItem(domainName);
-    cmbDomain.add(item);
-
-    selectedItem = item;
-  }
-  else // if it's not a string we assume it is a list of strings
-  {
-    for (var s in domainName)
-    {
-      item = new qx.ui.form.ListItem(s);
-      cmbDomain.add(s);
-    }
-
-    selectedItem = new qx.ui.form.ListItem(domainName[0]);
-  }
-
-  // Add event handling
-  cmbDomain.addEventListener("changeSelected", fsm.eventListener, fsm);
-  fsm.addObject("domainName", cmbDomain);
-
-  // Set default selection and dispatch the respective event to initialise the view
-  cmbDomain.setSelected(selectedItem);
-
-  // Create an empty list view with sample column
-  this._columns = { username : { label: "Username", width: 150, type: "text" }};
-  this._items = [];
-  this._view = new qx.ui.listview.ListView(this._items, this._columns);
-  var view = this._view;
-  view.set({ top: 0, left: 0, width: "90%", height: "90%" });
-  view.setBorder(qx.renderer.border.BorderPresets.getInstance().shadow);
-
-  // Arrange widgets and boxes
-  selectDomainBox.add(lblDomain);
-  selectDomainBox.add(cmbDomain);
-
-  innerBox.add(selectDomainBox);
-  innerBox.add(view);
-
-  // place the inner box in the UsersView box
-  this.add(innerBox);
-});
-
-
-// UsrMgr context is required for any operation on user accounts
-qx.OO.addProperty({ name : "usrCtx", type : "number" });
-
-
-qx.Proto.refreshView = function()
-{
-}
-
-
-qx.Proto._initUserManager = function(module, rpcRequest)
-{
-  // Get obtained UsrCtx handle
-  var usrCtx = rpcRequest.getUserData("result").data;
-};
diff --git a/webapps/swat/source/class/swat/module/statistics/Fsm.js b/webapps/swat/source/class/swat/module/statistics/Fsm.js
deleted file mode 100644 (file)
index c23cfb0..0000000
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * Copyright:
- *   (C) 2006 by Derrell Lipman
- *       All rights reserved
- *
- * License:
- *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
- */
-
-/**
- * Swat statistics class finite state machine
- */
-qx.OO.defineClass("swat.module.statistics.Fsm", swat.main.AbstractModuleFsm,
-function()
-{
-  swat.main.AbstractModuleFsm.call(this);
-});
-
-
-/**
- * Start the redisplay timer.
- *
- * @param fsm {qx.util.fsm.FiniteStateMachine}
- *   The finite state machine in use by this module
- *
- * @param msInterval {Integer}
- *   The number of milliseconds before the timer should expire
- */
-qx.Class._startTimer = function(fsm, msInterval)
-{
-
-  // First, for good house keeping, ensure no timer exists
-  swat.module.statistics.Fsm._stopTimer(fsm);
-
-  // Create a timer instance to expire in the specified amount of time
-  var timer = new qx.client.Timer(msInterval);
-  timer.addEventListener("interval", fsm.eventListener, fsm);
-  fsm.addObject("timer", timer);
-  timer.start();
-};
-
-
-/**
- * Stop the redisplay timer.
- *
- * @param fsm {qx.util.fsm.FiniteStateMachine}
- *   The finite state machine in use by this module
- */
-qx.Class._stopTimer = function(fsm)
-{
-  // ... then stop the timer.  Get the timer object.
-  var timer = fsm.getObject("timer");
-            
-  // If it still exists...
-  if (timer)
-  {
-    // ... then dispose of it.
-    timer.dispose();
-    fsm.removeObject("timer");
-  }
-};
-
-
-qx.Proto.buildFsm = function(module)
-{
-  var fsm = module.fsm;
-  var _this = this;
-  var _module = module;
-
-  /*
-   * State: Idle
-   *
-   * Actions upon entry
-   *   - if returning from RPC, display the result
-   *   - start an interval timer to request statistics again in a while
-   *
-   * Transition on:
-   *  "interval" on interval_timer
-   */
-  var state = new qx.util.fsm.State(
-    "State_Idle",
-    {
-      "onentry" :
-        function(fsm, event)
-        {
-          // Did we just return from an RPC request?
-          if (fsm.getPreviousState() == "State_AwaitRpcResult")
-          {
-            // Yup.  Display the result.  We need to get the request object
-            var rpcRequest = _this.popRpcRequest();
-
-            // Display the result
-            var gui = swat.module.statistics.Gui.getInstance();
-            gui.displayData(module, rpcRequest.getUserData("result"));
-
-            // Dispose of the request
-            rpcRequest.request.dispose();
-            rpcRequest.request = null;
-
-            // Restart the timer.
-            if (_module.visible)
-            {
-              // Give it a reasonable interval before we redisplay
-              swat.module.statistics.Fsm._startTimer(fsm, 5000);
-            }
-          }
-        },
-
-      "onexit" :
-        function(fsm, event)
-        {
-          // If we're not coming right back into this state...
-          if (fsm.getNextState() != "State_Idle")
-          {
-            // ... then stop the timer.
-            swat.module.statistics.Fsm._stopTimer(fsm);
-          }
-        },
-
-      "events" :
-        {
-          // If the timer expires, send a new statistics request
-          "interval" :
-          {
-            "timer" :
-              "Transition_Idle_to_AwaitRpcResult_via_request_statistics"
-          },
-
-          // When we get an appear event, start our timer
-          "appear" :
-          {
-            "swat.main.canvas" :
-              "Transition_Idle_to_Idle_via_appear"
-          },
-
-          // When we get a disappear event, stop our timer
-          "disappear" :
-          {
-            "swat.main.canvas" :
-              "Transition_Idle_to_Idle_via_disappear"
-          }
-        }
-    });
-
-  // Replace the initial Idle state with this one
-  fsm.replaceState(state, true);
-  
-  /*
-   * Transition: Idle to AwaitRpcResult
-   *
-   * Cause: "interval" on timer
-   *
-   * Action:
-   *  Issue a Get Statistics request
-   */
-  var trans = new qx.util.fsm.Transition(
-    "Transition_Idle_to_AwaitRpcResult_via_request_statistics",
-    {
-      "nextState" :
-        "State_AwaitRpcResult",
-
-      "ontransition" :
-        function(fsm, event)
-        {
-          // Issue a Get Statistics call
-          _this.callRpc(fsm,
-                        "samba.management",
-                        "get_statistics",
-                        [ true, true ]);
-        }
-    });
-  state.addTransition(trans);
-
-  /*
-   * Transition: Idle to Idle
-   *
-   * Cause: "appear" on canvas
-   *
-   * Action:
-   *  Start our timer
-   */
-  var trans = new qx.util.fsm.Transition(
-    "Transition_Idle_to_Idle_via_appear",
-    {
-      "nextState" :
-        "State_Idle",
-
-      "ontransition" :
-        function(fsm, event)
-        {
-          _module.visible = true;
-
-          // Redisplay immediately
-          swat.module.statistics.Fsm._startTimer(fsm, 0);
-        }
-    });
-  state.addTransition(trans);
-
-  /*
-   * Transition: Idle to Idle
-   *
-   * Cause: "disappear" on canvas
-   *
-   * Action:
-   *  Stop our timer
-   */
-  var trans = new qx.util.fsm.Transition(
-    "Transition_Idle_to_Idle_via_disappear",
-    {
-      "nextState" :
-        "State_Idle",
-
-      "ontransition" :
-        function(fsm, event)
-        {
-          _module.visible = false;
-          swat.module.statistics.Fsm._stopTimer(fsm);
-        }
-    });
-  state.addTransition(trans);
-
-  // Add the AwaitRpcResult state and all of its transitions
-  this.addAwaitRpcResultState(module);
-};
-
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/swat/source/class/swat/module/statistics/Gui.js b/webapps/swat/source/class/swat/module/statistics/Gui.js
deleted file mode 100644 (file)
index bad55b7..0000000
+++ /dev/null
@@ -1,469 +0,0 @@
-/*
- * Copyright:
- *   (C) 2006 by Derrell Lipman
- *       All rights reserved
- *
- * License:
- *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
- */
-
-/**
- * Swat statistics class graphical user interface
- */
-qx.OO.defineClass("swat.module.statistics.Gui", qx.core.Object,
-function()
-{
-  qx.core.Object.call(this);
-});
-
-
-/*
- * The result of our request for statistics is in this form:
- *
- *     rpc: Object
- *       status: INACTIVE
- *     smb: Object
- *       tcons: Array
- *         0: Object
- *           share_name: tmp
- *           last_use_time: 1167186771
- *           client_ip: 127.0.0.1
- *           tid: 10928
- *           connect_time: 1167186757
- *       connections: 1
- *       sessions: Array
- *         0: Object
- *           auth_time: 1167186757
- *           vuid: 24588
- *           last_use_time: 1167186771
- *           client_ip: 127.0.0.1
- *           connect_time: 1167186757
- *           account_name: Administrator
- *           domain_name: WORKGROUP
- *       status: RUNNING
- *     ldap: Object
- *       status: INACTIVE
- *     wins: Object
- *       status: DISABLED
- *     nbt: Object
- *       status: RUNNING
- *       statistics: Object
- *         total_received: 32
- *         total_sent: 4
- *         query_count: 0
- *         release_count: 0
- *         register_count: 0
- *     kdc: Object
- *       status: INACTIVE
- *     cldap: Object
- *       status: RUNNING
- */
-
-/**
- * Build the raw graphical user interface.
- */
-qx.Proto.buildGui = function(module)
-{
-  var o;
-  var fsm = module.fsm;
-  var canvas = module.canvas;
-
-  canvas.setOverflow("auto");
-
-  // Create a gui object where we'll put each widget handle that has varying
-  // data to be displayed.
-  module.gui = { };
-
-  var addCaptionedText = function(caption, dest)
-  {
-    // Add a row to the destination grid
-    dest.addRow();
-    var row = dest.getRowCount() - 1;
-    dest.setRowHeight(row, 16);
-
-    // Add the caption
-    var o = new qx.ui.basic.Label(caption);
-    dest.add(o, 0, row);
-
-    // Add the text field that will contain varying data
-    o = new qx.ui.basic.Label("");
-    dest.add(o, 1, row);
-
-    // Give 'em the varying data label
-    return o;
-  };
-
-  var addGroup = function(legend, top, height, width, left, right, dest)
-  {
-    // Add a groupbox
-    var group = new qx.ui.groupbox.GroupBox(legend);
-    group.setTop(top);
-    if (left >= 0)
-    {
-      group.setLeft(left);
-    }
-    if (right >= 0)
-    {
-      group.setRight(right);
-    }
-    if (height >= 0)
-    {
-      group.setHeight(height);
-    }
-    if (typeof(width) == "string" || width >= 0)
-    {
-      group.setWidth(width);
-    }
-    group.setBackgroundColor("white");
-    group.getLegendObject().setBackgroundColor("white");
-
-    var grid = new qx.ui.layout.GridLayout();
-    grid.setLocation(0, 0);
-    grid.setDimension("100%", "100%");
-    grid.setPadding(0, 0);
-    grid.setRowCount(0);
-    grid.setColumnCount(2);
-    grid.setColumnWidth(0, 100);
-    grid.setColumnWidth(1, 200);
-
-    group.add(grid);
-    dest.add(group);
-    
-    return grid;
-  };
-
-  // Add the RPC Service group box and its status
-  var group = addGroup("RPC Service", 40, 60, "46%", 20, -1, canvas);
-  module.gui.rpc =
-  {
-    status : addCaptionedText("Status:", group)
-  };
-
-  // Add the KDC Service group box and its status
-  var group = addGroup("KDC Service", 40, 60, "46%", -1, 20, canvas);
-  module.gui.kdc =
-  {
-    status : addCaptionedText("Status:", group)
-  };
-
-  // Add the LDAP Service group box and its status
-  var group = addGroup("LDAP Service", 120, 60, "46%", 20, -1, canvas);
-  module.gui.ldap =
-  {
-    status : addCaptionedText("Status:", group)
-  };
-
-  // Add the CLDAP Service group box and its status
-  var group = addGroup("CLDAP Service", 120, 60, "46%", -1, 20, canvas);
-  module.gui.cldap =
-  {
-    status : addCaptionedText("Status:", group)
-  };
-
-  // Add the WINS Service group box and its status
-  var group = addGroup("WINS Service", 200, 60, "46%", 20, -1, canvas);
-  module.gui.wins =
-  {
-    status : addCaptionedText("Status:", group)
-  };
-
-  // Add the NBT Service group box and its status, and the statistics
-  var group = addGroup("NBT Service", 200, 140, "46%", -1, 20, canvas);
-  module.gui.nbt = 
-  {
-    status         : addCaptionedText("Status:", group),
-    total_received : addCaptionedText("Total received:", group),
-    total_sent     : addCaptionedText("Total sent:", group),
-    query_count    : addCaptionedText("Query count:", group),
-    release_count  : addCaptionedText("Release count:", group),
-    register_count : addCaptionedText("Register count:", group)
-  };
-
-  // Add the SMB Service group box (sans grid) and its status
-  var group = new qx.ui.groupbox.GroupBox("SMB Service");
-  group.set({
-                top:    360,
-                height: 400,
-                left:   20,
-                right:  20
-            });
-  group.setBackgroundColor("white");
-  group.getLegendObject().setBackgroundColor("white");
-
-  // Create the Status block
-  o = new qx.ui.basic.Label("Status:");
-  o.set({
-            top    : 0,
-            left   : 0,
-            width  : 100
-        });
-  group.add(o);
-
-  o = new qx.ui.basic.Label("");
-  o.set({
-            top    : 0,
-            left   : 100,
-            width  : 200
-        });
-  group.add(o);
-
-  // Add the status and create the table models for sessions and connections
-  module.gui.smb =
-  {
-    status   : o,
-    sessions : new qx.ui.table.SimpleTableModel(),
-    tcons    : new qx.ui.table.SimpleTableModel()
-  };
-
-  // Begin the Sessions section
-  o = new qx.ui.basic.Label("Sessions");
-  o.set({
-            top    : 20,
-            left   : 20
-        });
-  group.add(o);
-
-  // Set column labels
-  var tableModel = module.gui.smb.sessions;
-  tableModel.setColumns([
-                          "User",
-                          "Client",
-                          "Connected at",
-                          "Authenticated at",
-                          "Last used at",
-                          "VUID"
-                        ]);
-  tableModel.setData([ ]);
-
-  // Create the table for sessions
-  var table = new qx.ui.table.Table(tableModel);
-  table.set({
-                top    : 40,
-                left   : 20,
-                right  : 20,
-                height : 160
-            });
-  table.setMetaColumnCounts([1, -1]);
-  table.setStatusBarVisible(false);
-  table.setColumnVisibilityButtonVisible(false);
-  table.setColumnWidth(0, 260);
-  table.setColumnWidth(1, 80);
-  table.setColumnWidth(2, 120);
-  table.setColumnWidth(3, 120);
-  table.setColumnWidth(4, 120);
-  table.setColumnWidth(5, 60);
-
-  // Add the table to the groupbox
-  group.add(table);
-  canvas.add(group);
-
-  // Begin the Connections section
-  o = new qx.ui.basic.Label("Connections");
-  o.set({
-            top    : 220,
-            left   : 20
-        });
-  group.add(o);
-
-  // Create the table model for tcons
-  var tableModel = module.gui.smb.tcons;
-  tableModel.setColumns([
-                          "Share",
-                          "Client",
-                          "Connected at",
-                          "Last used at",
-                          "TID"
-                        ]);
-  tableModel.setData([ ]);
-
-  // Create the table for sessions
-  var table = new qx.ui.table.Table(tableModel);
-  table.set({
-                top    : 240,
-                left   : 20,
-                right  : 20,
-                bottom : 20
-            });
-  table.setMetaColumnCounts([1, -1]);
-  table.setStatusBarVisible(false);
-  table.setColumnVisibilityButtonVisible(false);
-  table.setColumnWidth(0, 260);
-  table.setColumnWidth(1, 80);
-  table.setColumnWidth(2, 120);
-  table.setColumnWidth(3, 120);
-  table.setColumnWidth(4, 60);
-
-  // Add the table to the groupbox
-  group.add(table);
-  canvas.add(group);
-
-};
-
-
-/**
- * Populate the graphical user interface with the specified data
- *
- * @param module {swat.main.Module}
- *   The module descriptor for the module.
- *
- * @result {Object}
- *   The result returned by SAMBA to our request for statistics.  We display
- *   the data provided by this result.
- */
-qx.Proto.displayData = function(module, result)
-{
-  var gui = module.gui;
-
-  if (result.type == "failed")
-  {
-    // Have we already put up the FAILED message?
-    if (gui.failed)
-    {
-      // Yup.
-      gui.failed.setDisplay(true);
-      return;
-    }
-
-    // Create a semi-transparent layover o which to display a failure message
-    gui.failed = new qx.ui.layout.CanvasLayout();
-    gui.failed.set({
-                   top: 0,
-                   bottom: 0,
-                   left: 0,
-                   right: 0
-               });
-    gui.failed.setBackgroundColor("white");
-    gui.failed.setDisplay(true); // initially displayed
-    gui.failed.setOpacity(0.7);  // semi-transparent
-
-    // Add the failure message
-    var style =
-      "color: red;" +
-      "font-size: large;" +
-      "font-weight: bold;";
-    var o = new qx.ui.basic.Label("<span style='" + style + "'>" +
-                                  "Communication with SAMBA failed!",
-                                  "</span>");
-    o.set({
-              top    : 0,
-              left   : 20
-          });
-    gui.failed.add(o);
-
-    // Add the failed layover to the canvas
-    module.canvas.add(gui.failed);
-
-    return;
-  }
-
-  // Successful RPC request.
-  // If the failure message was displayed, we no longer need it.
-  if (gui.failed)
-  {
-    gui.failed.setDisplay(false);
-  }
-
-  // Create a function for formatting dates
-  var dateFormat = function(unixepoch)
-  {
-    if (unixepoch == 0)
-    {
-      return "";
-    }
-
-    var d = new Date(unixepoch * 1000);
-    return (d.getFullYear() + "-" +
-            ("0" + (d.getMonth() + 1)).substr(-2) + "-" +
-            ("0" + d.getDate()).substr(-2) + " " +
-            ("0" + d.getHours()).substr(-2) + ":" +
-            ("0" + d.getMinutes()).substr(-2));
-  }
-
-  // Set the status values
-  gui.rpc.status.setHtml(result.data.rpc.status);
-  gui.kdc.status.setHtml(result.data.kdc.status);
-  gui.ldap.status.setHtml(result.data.ldap.status);
-  gui.cldap.status.setHtml(result.data.cldap.status);
-  gui.wins.status.setHtml(result.data.wins.status);
-  gui.nbt.status.setHtml(result.data.nbt.status);
-  gui.smb.status.setHtml(result.data.smb.status);
-
-  // If the NBT service is running...
-  if (result.data.nbt.status == "RUNNING")
-  {
-    // ... then output the statistics
-    gui.nbt.total_received.setHtml(
-      result.data.nbt.statistics.total_received.toString());
-    gui.nbt.total_sent.setHtml(
-      result.data.nbt.statistics.total_sent.toString());
-    gui.nbt.query_count.setHtml(
-      result.data.nbt.statistics.query_count.toString());
-    gui.nbt.release_count.setHtml(
-      result.data.nbt.statistics.release_count.toString());
-    gui.nbt.register_count.setHtml(
-      result.data.nbt.statistics.register_count.toString());
-  }
-  else
-  {
-    // otherwise, clear the statistics fields
-    gui.nbt.total_received.setHtml("");
-    gui.nbt.total_sent.setHtml("");
-    gui.nbt.query_count.setHtml("");
-    gui.nbt.release_count.setHtml("");
-    gui.nbt.register_count.setHtml("");
-  }
-
-  // Initialize data for sessions list
-  var rowData = [];
-
-  // If there are any sessions...
-  if (result.data.smb.sessions instanceof Array)
-  {
-    // ... then for each session...
-    for (var i = 0; i < result.data.smb.sessions.length; i++)
-    {
-      // ... add its info to the table data
-      var sess = result.data.smb.sessions[i];
-      rowData.push([
-                     sess.account_name + "/" + sess.domain_name,
-                     sess.client_ip,
-                     dateFormat(sess.connect_time),
-                     dateFormat(sess.auth_time),
-                     dateFormat(sess.last_use_time),
-                     sess.vuid.toString()
-                   ]);
-    }
-  }
-
-  // Whether there were sessions or not, reset the session table data
-  gui.smb.sessions.setData(rowData);
-
-  // Initialize data for tcons list
-  var rowData = [];
-
-  // If there are any tcons...
-  if (result.data.smb.tcons instanceof Array)
-  {
-    // ... then for each tcon...
-    for (var i = 0; i < result.data.smb.tcons.length; i++)
-    {
-      // ... add its info to the table data
-      var conn = result.data.smb.tcons[i];
-      rowData.push([
-                     conn.share_name,
-                     conn.client_ip,
-                     dateFormat(conn.connect_time),
-                     dateFormat(conn.last_use_time),
-                     conn.tid.toString()
-                   ]);
-    }
-  }
-
-  // Whether there were tcons or not, reset the tcon table data
-  gui.smb.tcons.setData(rowData);
-};
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/swat/source/class/swat/module/statistics/Statistics.js b/webapps/swat/source/class/swat/module/statistics/Statistics.js
deleted file mode 100644 (file)
index 9952860..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Copyright:
- *   (C) 2006 by Derrell Lipman
- *       All rights reserved
- *
- * License:
- *   LGPL 2.1: http://creativecommons.org/licenses/LGPL/2.1/
- */
-
-/**
- * Swat statistics class
- */
-qx.OO.defineClass("swat.module.statistics.Statistics",
-                  swat.main.AbstractModule,
-function()
-{
-  swat.main.AbstractModule.call(this);
-});
-
-
-/**
- * Create the module's finite state machine and graphical user interface.
- *
- * This function is called the first time a module is actually selected to
- * appear.  Creation of the module's actual FSM and GUI have been deferred
- * until they were actually needed (now) so we need to create them.
- *
- * @param module {swat.main.Module}
- *   The module descriptor for the module.
- */
-qx.Proto.initialAppear = function(module)
-{
-  // Replace the existing (temporary) finite state machine with the real one
-  swat.module.statistics.Fsm.getInstance().buildFsm(module);
-
-  // Create the real gui
-  swat.module.statistics.Gui.getInstance().buildGui(module);
-};
-
-
-/**
- * Singleton Instance Getter
- */
-qx.Class.getInstance = qx.lang.Function.returnInstance;
diff --git a/webapps/swat/source/index.html b/webapps/swat/source/index.html
deleted file mode 100644 (file)
index ea7bcfe..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<html>
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>Swat</title>
-    <script type="text/javascript" src="script/swat.js"></script>
-  </head>
-  <body>
-    <script type="text/javascript">
-
-    qx.core.Init.getInstance().setApplication(swat.main.Main);
-
-    </script>
-  </body>
-</html>